acm-header
登录

ACM通信

研究突出了

OpenPiton:一个供你研究的开源硬件平台


芯片生产,插图照片

来源:盖蒂图片社

工业界正在建立更大、更复杂、多核的处理器,以强大的机构知识为基础,但学术项目面临复制这种规模的困难。为了减轻这些困难并开发和共享知识,社区需要为模拟、芯片设计和软件探索提供开放的体系结构框架,支持可扩展性、可伸缩性和可配置性,同时还需要建立验证工具和受支持软件的基础。在本文中,我们介绍了OpenPiton,这是一个开源框架,用于构建可扩展的架构研究原型,从一个核心到5亿个核心。OpenPiton是世界上第一个开源的、通用的、多线程的多核处理器和框架。OpenPiton是高度可配置的,提供了一个丰富的设计空间,跨越了研究人员可以更改的各种硬件参数。OpenPiton的设计可以在fpga上模拟,在fpga上可以运行全栈多用户Debian Linux。OpenPiton被设计成可扩展到非常大的核心结构,使研究人员能够测量操作系统、编译器和软件的可伸缩性。成熟的代码库反映了工业级设计的复杂性,并为构建新芯片提供了必要的脚本,使OpenPiton成为计算机辅助设计(CAD)研究的自然选择。OpenPiton已经通过一个名为Piton的25核芯片原型进行了验证,并由一个具有数千个测试的验证套件支持,为测试新的硬件设计提供了一个环境,同时验证整个系统的正确性。OpenPiton在普林斯顿内部和更广泛的社区的研究中被积极使用,也被教育、工业和政府机构采用。

回到顶部

1.简介

为学术研究目的构建处理器可能是一个有风险的提议。特别是随着处理器尺寸的增长,以及对多核和多核处理器的关注,171920.2114226芯片制造的潜在故障点急剧增加。为了解决这个问题,社区需要经过良好测试的、开放源码的、可扩展的框架,这些框架可以作为他们工作和比较的基线。为了减少“学术发布时间”,这些框架必须提供健壮的软件工具,成熟的全系统软件栈,依赖于行业标准语言,并提供完整的测试套件。此外,为了支持广泛领域的研究,这些框架必须是高度可配置的,可合成的FPGA和ASIC原型目的,并为其他人提供基础,磁带(制造)自己的,修改的学术芯片。建造和支持这样的基础设施是一项重大的任务,它阻止了这种先前的设计。我们的框架OpenPiton应对了这一挑战,并提供了所有这些特性,甚至更多。

OpenPiton是世界上第一个开源的、通用的、多线程的多核处理器。OpenPiton是可扩展和可移植的;该架构支持最多5亿个核心的寻址,支持一个芯片内和多个芯片之间的共享内存,并被设计为可以轻松启用超过1000个核心的高性能微处理器。该设计是在工业标准Verilog HDL中实现的,不需要使用任何新的语言。OpenPiton支持从小到大的研究,演示了从精简的单核PicoPiton(在售价160美元的29.5MHz的Xilinx Artix 7上模拟)到25核的Piton处理器(针对1GHz的工作点,最近已被验证和彻底表征)的实现。1213

中的OpenPiton平台图1是一个现代的,贴片的,多核心的设计,包括一个64位的架构,使用成熟的SPARC v9 ISA和P-Mesh:我们的可扩展的缓存一致性协议和芯片网络(NoC)。OpenPiton构建于业界公认的开源OpenSPARC T1之上15118核心,但运动一个完全scratch构建的非核心(缓存,缓存一致性协议,noc,基于noc的I/O桥,等),一个新的和现代的模拟框架,可配置和可移植的FPGA脚本,一套完整的脚本,使合成和实现现成的芯片,以及全堆栈多用户Debian Linux支持。OpenPiton可以在以下网站下载http://www.openpiton.org

f1.jpg
图1。OpenPiton架构。多个多核芯片通过芯片组逻辑和网络连接在一起,构建可扩展的大型多核系统。OpenPiton的缓存一致性协议扩展到芯片之外。

OpenPiton被设计为一个支持大规模研究的平台。OpenPiton的一个明确的设计目标是它应该易于其他研究人员使用。为了支持这一点,OpenPiton提供了高度的集成和可配置性,如表1.与许多其他设计不同的是,这些设计提供了各个部分,但这取决于用户如何将它们组合在一起,OpenPiton设计时将所有组件集成到相同的、易于使用的、构建的基础设施中按钮可伸缩性。研究人员可以轻松地部署OpenPiton的源代码,添加修改,并在一个完全工作的系统设置中探索他们新颖的研究想法。提供了数千个有针对性的、高覆盖率的测试用例,以使研究人员能够通过确保功能得到维护的安全网进行创新。OpenPiton的开源特性也使得发布修改和复制以前的工作以进行比较或重用变得很容易。

t1.jpg
表1。支持OpenPiton配置选项。粗体表示默认值。(结合性减少到最小大小的2路)。

OpenPiton不仅仅是一个由计算机架构师设计供计算机架构师使用的平台,它还使操作系统(OS)、安全、编译器、运行时工具、系统和计算机辅助设计(CAD)工具等其他领域的研究人员能够进行大规模的研究。为了支持如此广泛的应用,OpenPiton是可配置和可扩展的。核心的数量、附加的I/O、缓存的大小、核心内参数和网络拓扑都可以通过命令行选项或配置文件进行配置。OpenPiton很容易扩展;一个记录良好的核心,一个记录良好的一致性协议,和一个易于界面的NoC的存在,使添加研究功能直截了当。OpenPiton的研究扩展已经建立,包括几个新的内存系统探索,一个健忘RAM控制器,和一个新的核内线程调度器。经过验证和成熟的ISA和软件生态系统支持操作系统和编译器研究。OpenPiton用于FPGA模拟和芯片制造的脚本的发布使得其他人可以轻松地移植到新的FPGA或半导体工艺技术。特别是,这使得CAD研究人员能够大规模地评估他们的算法。

回到顶部

2.Openpiton平台

OpenPiton是一个平铺的、多核心的架构,如图所示图1.采用P-Mesh高速缓存相干系统,实现了片内和片间的可扩展性。

片内瓦片通过三个P-Mesh片上网络(NoCs)在一个可扩展的2D网格拓扑中连接(默认情况下)。NoC路由器地址空间支持在单个OpenPiton芯片(64K核/芯片)内每个维度最多扩展256块瓷砖。

对于芯片间通信,芯片桥接将三个noc扩展到芯片外,将磁片阵列(通过左上角的磁片)连接到芯片外逻辑(芯片组)。该芯片组可以作为独立的芯片在FPGA上实现,也可以集成到OpenPiton芯片中。

P-Mesh NoCs芯片外的扩展允许多个OpenPiton芯片无缝连接,以创建一个更大的系统,如图所示图1.OpenPiton的缓存一致性也扩展到了芯片外,支持跨多个芯片共享内存,用于研究更大的多核共享内存系统。

*2.1.瓷砖

瓷砖的结构如图所示图2一个.一个tile由一个核心,一个L1.5缓存,一个L2缓存,一个浮点单元(FPU),一个cpu -缓存Crossbar (CCX)仲裁器,一个内存到达间时间流量整形器(MITTS),和三个P-Mesh NoC路由器组成。

f2.jpg
图2。(a)瓦和(b)芯片组的结构。

L2和L1.5缓存直接连接到所有三个NoC路由器,所有进入和离开tile的消息都要遍历这些接口。CCX是OpenSPARC T1中用于连接核心、L2缓存、FPU、I/O等的交叉接口。1在OpenPiton中,L1.5和FPU通过CCX连接到核心。

*2.2.核心

OpenPiton使用开源的OpenSPARC T115核心与修改。选择这个核心是因为它的工业硬化设计、多线程能力、简单性和适当的硅面积要求。同样重要的是,OpenSPARC框架具有稳定的代码库,实现了一个具有编译器和操作系统支持的成熟ISA,并附带了一个大型测试套件。

在OpenPiton的默认配置中(就像在Piton中使用的那样),线程的数量从4个减少到2个,流处理单元(SPU)从核心中删除以保存区域。默认的Translation Lookaside Buffer (TLB)大小是16个条目,但可以增加到32或64,或减少到8个条目。

添加了额外的配置寄存器以支持核心内的可扩展性。它们可用于为核心添加可从软件配置的额外功能,例如启用/禁用功能、配置不同的操作模式等。

*2.3.缓存层次结构

OpenPiton的缓存层次结构由三个缓存级别组成。OpenPiton中的每个tile都包含私有的L1和L1.5缓存,以及分布的、共享的L2缓存的一部分。缓存层次结构的数据路径显示在图3

f3.jpg
图3。OpenPiton的内存层次数据路径。

内存子系统使用我们的coherence协议(称为P-Mesh)来保持缓存的一致性。它遵循OpenSPARC T1使用的内存一致性模型。L1.5缓存和L2缓存之间的一致消息通过三个noc通信,精心设计以确保无死锁操作。

L1缓存。L1缓存从OpenSPARC T1设计中重用,并扩展了可配置性。它们由独立的L1指令和L1数据缓存组成,都是write-through和4路set-associative。L1数据缓存默认为8KB,行大小默认为16字节。16KB的L1指令缓存有32字节的行大小。

L1.5数据缓存。L1.5(类似于其他处理器的L2缓存)将OpenSPARC T1的CCX协议转换为P-Mesh的NoC一致性数据包格式,并充当回写层,缓存从write-through L1数据缓存的存储。其参数默认与L1数据缓存匹配。

L1.5通过CCX总线与核心通信,CCX总线保存在OpenSPARC T1中。当一个内存请求导致一个miss时,L1.5将其转换并通过NoC通道转发给L2。一般来说,L1.5在NoC1上发出请求,在NoC2上接收数据,并在NoC3上写回修改过的缓存行,如下所示图3

L1.5包含L1数据缓存;每一个都可以使用独立的驱逐策略进行独立的规模调整。为了空间和性能,L1.5不缓存指令——这些缓存行被直接绕过到L2缓存。

L2缓存。L2缓存(类似于其他处理器中的最后一级L3缓存)是一个分布式的、由所有磁贴共享的回写缓存。默认的缓存配置是每个tile 64KB, 4路设置关联性,但缓存大小和关联性都是可配置的。缓存行大小为64字节,比层次结构中较低的缓存的行大小大。集成的目录缓存每个条目有64位,因此它可以在默认情况下精确地跟踪多达64个共享器。

L2缓存包括私有缓存(L1和L1.5)。L1.5和L2之间的缓存线路映射是独立的,完全受每个缓存的替换策略的影响。由于L2是分布式的,所以在L1.5中连续映射的缓存线很可能分布在多个L2块上(L2块指的是在单个块上分布的L2缓存的一部分)。

L2是所有可缓存内存请求的一致性点。所有可缓存内存操作(包括原子操作,如比较和交换)都是有序的,L2在处理请求时严格遵循这个顺序。根据OpenSPARC T1的原始设计,L2还保持指令和数据缓存的一致性。当一条线出现在核心的L1指令缓存中并被作为数据加载时,L2会在加载之前向相关的指令缓存发送无效消息。

*2.4.P-Mesh网络芯片上的

OpenPiton芯片中有三个P-Mesh noc。noc为块之间的缓存一致性、I/O、内存流量和核间中断提供通信。它们还将去往芯片外的流量路由到芯片桥。数据包格式包含29位核心可寻址性,使其可扩展到5亿个核心。

为了保证无死锁操作,L1.5缓存、L2缓存和内存控制器对不同的NoC通道给予不同的优先级;NoC3优先级最高,其次是NoC2, NoC1优先级最低。因此,NoC3将永远不会被阻止。此外,所有硬件组件的设计都是这样的:使用高优先级的数据包不会依赖于低优先级的流量。

类的相干操作映射到NoCs基于以下规则,如图3

  • NoC1消息由从私有缓存(L1.5)到共享缓存(L2)的请求发起。
  • NoC2消息由共享缓存(L2)初始化到私有缓存(L1.5)或内存控制器。
  • NoC3消息是私有缓存(L1.5)或内存控制器对共享缓存(L2)的响应。

*2.5.芯片组

中所示的芯片组图2 b,包含I/O、DRAM控制器、芯片桥接器、P-Mesh芯片组crossbar和P-Mesh芯片间网络路由器。芯片桥接器将来自附加芯片的流量解复用回三个物理noc。然后,通信流通过一个包过滤器(未显示),该过滤器根据请求中的内存地址和芯片组上的设备集修改包目的地址。然后,芯片组交叉条(修改后的网络路由器)将数据包路由到正确的目标设备。如果流量不是本芯片组的目标,它将被传递到芯片间网络路由器,由路由器根据芯片间路由协议将流量路由到另一个芯片组。去往附加芯片的流量通过类似的路径返回到芯片桥。

Inter-chip路由。芯片间网络路由器可在路由器等级、路由算法、缓冲区大小等方面进行配置。这使得可以灵活地探索不同的路由器配置和网络拓扑。目前,我们已经实现和验证了交叉网格,二维网格,三维网格,蝴蝶网。可以通过重新配置网络路由器来探索自定义拓扑。

*2.6.可配置性

OpenPiton被设计成一个可配置的平台,使得它对许多应用程序都很有用。表1显示了OpenPiton的可配置选项,突出了它提供的大设计空间。

Verilog PyHP。为了提供Verilog RTL的低工作量可配置性,我们使用了一个Python预处理器,Python超文本处理器(PyHP)。16PyHP最初是为Python动态网页生成而设计的,它类似于PHP。我们对它进行了调整,以便与Verilog代码一起使用。参数可以传递到PyHP,并且可以使用任意的Python代码来生成测试平台或模块。PyHP支持比仅使用Verilog生成语句更广泛的可配置性。

核心和缓存可配置性。OpenPiton的核心可配置参数如表1.默认参数以粗体显示。OpenPiton保留了OpenSPARC T1修改TLB大小(从8到64,以2为幂)、线程计数(从1到4)以及是否存在FPU和SPU的能力。此外,OpenPiton的L1数据和指令缓存可以在大小上翻倍或减半(当减小大小时,结合性下降到2)。

OpenPiton利用PyHP,为模拟或FPGA模拟提供可参数化的内存。此外,定制或专有存储器可以很容易地用于芯片开发。此参数化使缓存参数具有可配置性。L1.5和L2缓存的大小和结合性是可配置的,但行大小保持静态。

的冲击可伸缩性。PyHP还支持创建可伸缩的核心网格,大大减少了原始OpenSPARC T1中某些区域的代码大小和复杂性。OpenPiton自动生成所有核心实例,并将它们从一个模板实例连接起来。这减少了代码的复杂性,提高了可读性,节省了修改设计的时间,并使大型网格的创建直观。最大256 × 256块的大型二维网格互连的创建被减少到单个实例。网格可以是任何矩形结构,尺寸不需要是2的幂。这是5 × 5(25核)Piton处理器的必要功能。

NoC拓扑可配置性。P-Mesh提供了除OpenPiton中使用的默认二维网格之外的其他NoC连接拓扑。一致性协议只要求消息按顺序从一个点传递到另一个点。由于没有节点间的订购要求,NoC可以很容易地被交换为交叉杆、更高维度的路由器或更高基数的设计。我们的可配置P-Mesh路由器可以被重新配置为如下所示的许多拓扑表1.对于芯片内部使用,OpenPiton可以配置为使用crossbar,它已经用4核和8核进行了测试,没有测试回归。其他NoC研究原型可以很容易地集成,它们的性能、能量和其他特性可以通过RTL、门级仿真或FPGA仿真确定。

芯片组可配置性。P-Mesh芯片组横杆可根据连接OpenPiton用户可能拥有的无数设备的端口数量进行配置。只有一个XML文件,其中指定了芯片组设备及其地址范围,因此连接新设备只需要一个Verilog实例化和一个XML条目。PyHP用于自动连接必要的P-Mesh NoC连接和包过滤器。

到目前为止,我们已经通过芯片组上的P-Mesh连接了多种设备。这些包括DRAM,以太网,UART, SD, SDHC, VGA, PS/2键盘,甚至MIAOW开源GPU。2这些设备由OpenPiton核心驱动,并在必要时执行它们自己的DMA,在芯片组交叉条上路由。

Multi-chip可伸缩性。与片上网格类似,PyHP允许从单个芯片的实例化开始生成芯片网络。OpenPiton为多达8192个芯片提供地址空间,每个芯片有65,536核。利用OpenPiton内置的可扩展P-Mesh缓存一致性机制,可以构建5亿个核心系统。这种可配置性使构建大型系统能够大规模地测试想法。

回到顶部

3.验证

*3.1.平台稳定

OpenPiton的优点之一是它的稳定性、成熟度和积极的支持。其中大部分代码继承自OpenSPARC T1核心,该核心拥有稳定的代码库,并经过多年的研究,允许许多人审查代码并修复错误。此外,它还实现了一个成熟的、商业的、开放的ISA SPARC V9。这意味着OpenPiton有完整的工具链支持,包括Debian Linux OS支持、一个编译器和一个汇编器。很多操作系统都支持SPARC,包括Debian Linux, Oracle的Linux for SPARC,一个以及OpenSolaris(及其后继产品)。移植OpenSPARC T1管理程序所需的更改少于10条指令,更新的Debian Linux发行版使用开源的、现成的、作为Lockbox一部分编写的OpenSPARC T1特定补丁进行了修改。3.4

OpenPiton在继承自OpenSPARC T1的基础上提供了额外的稳定性。工具流程被更新为现代工具,并移植到现代Xilinx fpga。OpenPiton也被广泛用于普林斯顿内部的研究。这意味着OpenPiton得到了积极的支持,代码也在不断地改进和优化,在过去几年里定期发布版本。此外,OpenPiton的开源也加强了它作为一个社区的稳定性。

验证。在设计大型处理器时,必须对硬件设计进行仿真。OpenPiton支持一个开源和多个商业Verilog模拟器,它可以模拟OpenPiton设计,速率可达数十或数百千赫兹。OpenPiton继承并扩展了OpenSPARC T1的大型测试套件,包括数以千计的定向组装测试、随机组装测试生成器和用c编写的测试。这不仅包括对核心的测试,还包括对内存系统、I/O、缓存一致性协议等的测试。此外,像执行起草(ExecD)(章节4.1.1)这样的扩展有它们自己的测试套件。在对OpenPiton进行研究修改时,研究人员可以依赖已建立的测试套件来确保他们的修改不会引入任何回归。另外,OpenPiton文档详细说明了如何添加新的测试来验证修改和扩展现有的测试套件。研究人员还可以使用我们的脚本并行运行大型回归(以处理较慢的个体执行),自动生成通过/失败报告和覆盖报告(如图4),并运行synthesis以验证已经使用了synthesis-safe Verilog。我们的脚本支持广泛使用的SLURM作业调度器,并与Jenkins集成以进行持续集成测试。

f4.jpg
图4。测试套件覆盖结果由模块(默认的OpenPiton配置)。

*3.2.FPGA原型

OpenPiton也可以在FPGA上进行仿真,这为设计原型提供了机会,以几十兆赫的频率进行仿真,在运行我们的测试套件或更复杂的代码(如交互式操作系统)时提高吞吐量。三种Xilinx FPGA平台积极支持OpenPiton: Artix-7 (Digilent Nexys Video)、Kintex-7 (Digilent Genesys 2)和Virtex-7 (VC707评估板)。还为Zynq-7000 (ZC706评估板)维护了一个外部端口。图5展示了为Artix-7 FPGA (Digilent Nexys 4 DDR)实现的最小化“PicoPiton”核心的区域分解。

f5.jpg
图5。FPGA PicoPiton的瓷砖区域击穿。

OpenPiton设计具有与Piton处理器相同的功能,验证了特定设计的可行性(多核功能等),并可以包括通过FPGA mezz卡(FMC)链路连接多个FPGA的芯片桥接。所有FPGA原型都具有一个完整的系统(芯片加芯片组),使用与用于测试Piton处理器的芯片组相同的代码库。

FPGA上的OpenPiton可以通过串口加载裸金属程序,并可以从SD/SDHC卡启动全栈多用户Debian Linux。在Genesys2板上运行87.5MHz的Debian只需要不到4分钟(并且引导到bash shell只需要1分钟),而最初的OpenSPARC T1需要45分钟,它依赖于一个固定的MicroBlaze来处理内存和I/O请求。在测试操作系统或硬件修改时,这种启动时间的改进与我们的按钮FPGA合成和实现脚本相结合,大大提高了生产率。

*3.3.普林斯顿Piton处理器

Piton处理器原型1213于2015年3月在IBM的32纳米SOI工艺上制造,目标时钟频率为1GHz。它的特点是25个5 × 5网格的瓷砖在6mm × 6mm (36 mm2)死亡。每个贴图都是双向线程,包括三个研究项目:ExecD、11CDR,8和手套,23而一个舞台7芯片级包含控制器。Piton处理器为OpenPiton作为一个研究平台提供了验证,并表明想法可以通过OpenPiton从一开始到实现。

使用Piton,我们还生产了第一个详细的功率和能量表征的开源多核设计,在硅实现。13这包括表征每条指令的能量、NoC能量、电压与频率比例、热表征和存储系统能量等特性。所有这些都是在我们的实验室中完成的,运行在FPGA上实现的Piton处理器和OpenPiton芯片组上。通过这样的描述,我们对重新计算和数据移动之间的平衡、不同操作数值的能量消耗以及对早期结果的确认产生了新的见解9这表明NoCs并没有主导许多核心处理器的功耗。我们的研究还产生了我们认为是最详细的区域分解的开源manycore,我们复制图6.来自我们研究的所有表征数据,以及芯片印刷电路板(PCB)的设计,现已在http://www.openpiton.org

f6.jpg
图6。岩钉在芯片,瓷砖和核心级别的详细区域分解。转载自McKeown等人。13

*3.4.综合和后端支持

OpenPiton提供脚本来帮助合成和后端物理设计,以生成真实的区域结果或制造基于OpenPiton的新芯片。这些脚本与用来胶带化Piton处理器的脚本是相同的,但是这些脚本的工艺是不可知的,并且由于涉及到专有的铸造知识产权问题,对使用的特定技术的引用被删除了。OpenPiton中包含了说明,描述了如何移植到一个新的铸造套件。这允许用户下载OpenPiton,链接到必要的流程开发工具包文件,并运行我们的完整工具流程,为OpenPiton的新实例生成芯片布局。在这个意义上,OpenPiton是跨工艺技术的可移植的,并提供了一个完整的生态系统来实现、测试、原型和磁带制作(制造)研究芯片。

回到顶部

4.应用程序

表2介绍了开源处理器的分类,重点介绍了研究的重要参数。自从OpenPiton在2015年第一次发布以来,它已经被广泛的应用和研究领域使用,其中一些将在本节中描述。

t2.jpg
表2。开源处理器差异的分类(表数据最后一次检查是在2018年4月)。

*4.1.内部研究案例研究

执行起草。执行起草11(ExecD)是一种用于多线程处理器的节能微架构技术,它利用了重复计算。ExecD从OpenSPARC T1线程选择策略中接管线程选择决策,并对前端进行检测以实现节能。ExecD需要修改OpenSPARC T1核心,因此不像在OpenPiton系统中插入独立模块那么简单。需要理解核心微架构,实现与核心紧密集成。在OpenPiton中实现ExecD揭示了几个在模拟中被抽象掉的实现细节,比如线程同步机制中棘手的分歧条件。这再次强调了在OpenPiton这样的基础设施中进行研究设计的重要性。

支持ExecD的操作系统必须启用ExecD。我们的公共Linux内核和OpenPiton管理程序存储库包含旨在增加对ExecD支持的补丁。这些补丁是作为一个单学期本科生操作系统研究项目的一部分开发的。

相干域限制。相干域限制8(CDR)是一种新型的缓存一致性框架,旨在以较低的存储和能量开销实现大规模共享内存。CDR将应用程序或页面的缓存一致性限制到一个核心子集,而不是在可能数百万个核心上保持全局一致性。为了在OpenPiton中实现它,TLB被增加了额外的字段,L1.5和L2缓存都被修改,以使CDR符合现有的缓存一致性协议。CDR是专门为大型共享内存系统(如OpenPiton)设计的。事实上,OpenPiton的百万核可伸缩性在没有CDR的情况下是不可行的,因为不断增加的目录存储开销。

内存到达间隔时间流量整形器。内存到达间隔时间流量整形器23(MITTS)使多核系统或IaaS云系统能够以每个核或每个应用程序的内存请求到达间隔时间分布的形式提供内存带宽。运行时系统配置MITTS旋钮以优化不同的指标(例如,吞吐量,公平性)。MITTS位于L1.5缓存的出口,监视内存请求,并在L1.5使用超出其分配的带宽时暂停它。MITTS已经与OpenPiton集成在一起,并且工作在每核粒度上,尽管它可以很容易地修改为每线程操作。

MITTS也需要操作系统支持。我们的公共Linux内核和OpenPiton管理程序存储库包含支持MITTS硬件的补丁。通过这些补丁(作为本科毕业论文项目开发),可以为Linux进程分配内存到达间时间分布,就像在IaaS环境中那样,在IaaS环境中,客户为与其应用程序行为相对应的特定分布付费。操作系统配置MITTS容器,使其与每个进程分配的分发相对应,MITTS据此强制执行分发。

*4.2.外部研究使用

许多外部研究人员已经大量使用了OpenPiton。在CAD环境中,Lerner等人。10提出了一种基于OpenPiton和gem5模拟器的提高处理器寿命的开发工作流,该工作流能够将设计的可靠性时间提高4.1倍。

OpenPiton还被用于安全环境中,作为硬件木马检测的试验台。OpenPiton的FPGA仿真启用了Elnaggar等人。5启动全栈Debian Linux并在运行SPEC基准测试时提取性能计数器信息。这个项目在几个月内从采用OpenPiton迅速发展到一个公认的出版物,这在一定程度上要感谢可以在FPGA上模拟的完整栈OpenPiton系统。

无视RAM(舞台)7是一种用来消除存储器侧通道的存储器控制器。25核Piton处理器集成了ORAM控制器,为安全访问芯片外DRAM提供了机会。控制器直接连接到OpenPiton的NoC,使集成变得简单。它只需要少量的文件来包装现有的ORAM实现,一旦连接起来,它的集成将在模拟中使用OpenPiton测试套件进行验证。

*4.3.教学使用

我们一直在普林斯顿的课程中使用OpenPiton,特别是我们的大四计算机架构和研究生并行计算课程。这里描述了一些最终的学生项目。

核心更换。在内部,我们已经测试了OpenSPARC T1核心与其他两个开源核心的替换。这些修改替换了CCX接口到L1.5缓存的垫片,转换为L1.5的接口信号。这些垫片需要很少的逻辑,但通过P-Mesh为核心提供完全缓存一致的内存访问。我们正在使用这些核心来研究具有异构isa的多核处理器。

多芯片网络拓扑探索。一个大四的本科毕业论文项目研究了芯片间网络拓扑对大型多核处理器的影响。图7显示多个fpga通过高速串行接口连接,以每秒9千兆的速度携带标准P-Mesh数据包。该学生为这个项目开发了一个可配置的P-Mesh路由器,该路由器现在已经集成为一个标准的OpenPiton组件。

f7.jpg
图7。三个OpenPiton fpga通过每秒9千兆的串行P-Mesh链路连接。

猫叫。一个学生项目集成了MIAOW开源GPU2OpenPiton。OpenPiton核心和MIAOW核心都可以适合VC707 FPGA, OpenPiton核心作为主机,而不是在最初的MIAOW版本中使用的Microblaze。学生们将MIAOW添加到芯片组crossbar中,在其XML配置中只有一个条目。一旦他们实现了一个原生的P-Mesh接口来取代原来的axis - lite接口,MIAOW就可以直接从内存中访问数据和指令,而无需核心的帮助。

硬件事务内存。另一个学生项目是在OpenPiton中实现一个硬件事务存储系统。学生们从OpenPiton文档中了解了P-Mesh缓存一致性协议,然后对其进行修改,包括在L1.5缓存中添加额外的状态,并在短短六周内制作出一个功能强大的原型。OpenPiton测试套件对于验证流程中是否维护了现有功能至关重要。

缓存替换策略。许多学生团体已经修改了L1.5和L2缓存的缓存替换策略。OpenPiton使他们能够在一个能够运行复杂应用程序的全栈系统上下文中,在多个缓存大小和关联上研究替换策略的性能和区域权衡。

*4.4.工业和政府用途

到目前为止,我们知道有多个CAD供应商在内部使用OpenPiton进行测试和教学。这些用户提供了额外的信心,认为为OpenPiton编写的RTL将得到工业CAD工具的良好支持,因为供应商经常缺乏大规模的设计来验证他们的工具的功能。在政府使用方面,DARPA已将OpenPiton确定为POSH项目使用的基准。

回到顶部

5.未来

OpenPiton有着光明的未来。它不仅有普林斯顿研究人员的积极支持,而且有一个充满活力的外部用户基础和开发社区。OpenPiton团队已经在主要会议上运行了四个教程,并在感兴趣的大学中运行了大量教程,并将继续运行更多教程。OpenPiton未来的路线图包括增加额外的可配置性,支持更多的FPGA平台和供应商,通过使用Amazon AWS F1实例在云中模拟的能力,插入到OpenPiton基础设施的更多核心类型,以及与其他新兴的开源硬件项目的集成。OpenPiton已经展示了以硬件速度、规模和跨计算研究不同领域进行研究的能力。OpenPiton和其他新兴的开源硬件项目不仅有可能对我们进行研究和教育学生产生重大影响,而且还可能对商业和政府应用设计芯片产生重大影响。

*致谢

本材料基于美国国家科学基金会(NSF)资助的研究。CNS-1823222, CCF-1217553, CCF-1453112和CCF-1438980, AFOSR批准号。FA9550-14-1-0148,美国空军研究实验室(AFRL)和国防高级研究计划局(DARPA)根据协议编号。FA8650-18-2-7846和FA8650-18-2-7852和DARPA赠款编号。n66001 - 14 - 1 - 4040和hr0011 - 13 - 2 - 0005。美国政府被授权为政府目的复制和分发重印本,尽管其上有版权标记。本文所包含的观点和结论仅代表作者的观点和结论,不应被解释为必然代表空军研究实验室(AFRL)和国防高级研究计划局(DARPA)、NSF、AFOSR、DARPA或美国政府的官方政策或认可,无论是明示还是暗示。我们感谢Paul Jackson、Ting-Jung Chang、Ang Li、Fei Gao、Katie Lim、Felix Madutsa和Kathleen Feng对OpenPiton的重要贡献。

回到顶部

参考文献

1.OpenSPARC T1微架构规范。加州圣克拉拉,2006年。

2.Balasubramanian, R., Gangadhar, V., Guo, Z., Ho c.h。,Joseph, C., Menon, J., Drumond, M.P., Paul, R., Prasad, S., Valathol, P., Sankaralingam, K. Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU.ACM反式。Archit。Optim代码。12,2(2015年6月)。

3.比特曼博士、卡佩利斯博士、朗博士介绍SeaOS。在2014信息科学与应用国际会议, 2014年5月13日。

4.Capelis, D.J.Lockbox:帮助电脑保守你的秘密。技术报告UCSC-WASP-15-022015年11月,加州大学圣克鲁兹分校。

5.Elnaggar, R., Chakrabarty, K., Tahoori, M.B.运行时硬件木马检测使用性能计数器。在2017 IEEE国际测试大会(ITC), 2017年10月。

6.Esmaeilzadeh, H, Blem, E, St. Amant, R., Sankaralingam, K., Burger, D.黑暗硅和多核缩放的结束。在第38届计算机体系结构国际年会论文集, ISCA’11 (New York, NY, USA, 2011), ACM, 365376。

7.弗莱彻,c.w., Ren, L., Kwon, A., van Dijk, M., Devadas, S.自由递归ORAM:[几乎]自由递归和基于位置的无关ram的完整性验证。在第二十届编程语言和操作系统体系结构支持国际会议论文集, ASPLOS’15(纽约,纽约,美国,2015),ACM, 103116,。

8.傅艳,阮德敏,阮德敏,邓文忠。大尺度系统的相干域约束。在第48届微架构国际研讨会论文集, MICRO-48 (New York, NY, USA, 2015), ACM, 686698,。

9.Kim, j.s., Taylor, m.b., Miller, J., Wentzlaff, D.具有片上网络的平铺架构处理器的能量特性。在2003年国际低功耗电子与设计研讨会论文集, isped '03(纽约,纽约,美国,2003),ACM, 4427。

10.Lerner, S., Taskin, B.用于多核物联网处理器寿命改进的工作负载感知ASIC流程。在2017第十八届优质电子设计国际研讨会(ISQED), 2017年3月,379384。

11.McKeown, M., Balkind, J., Wentzlaff, D.执行起草:通过计算重复数据删除实现能源效率。在2014第47届IEEE/ACM微架构国际研讨会(MICRO), 2014年12月,432444。

12.McKeown, M., Fu, Y., Nguyen, T., Zhou, Y., Balkind, J., Lavrov, A., Shahrad, M., Payne, S., Wentzlaff, D. Piton:多租户云的多核处理器。IEEE微37,(2)(2017年3月),7080。

13.McKeown, M., Lavrov, A., Shahrad, M., Jackson, P., Fu, Y., Balkind, J., Nguyen, T., Lim, K., Zhou, Y., Wentzlaff, D.开源25核多核处理器的功率和能量表征。在IEEE高性能计算机体系结构国际研讨会, 2018年。

14.米勒,B., Brasili, D., Kiszely, T., Kuhn, R., Mehrotra, R., Salvi, M., Kulkarni, M., Varadharajan, A., Yin s.h。,Lin, W., Hughes, A., Stysiack, B., Kandadi, V., Pragaspathi, I., Hartman, D., Carlson, D., Yalala, V., Xanthopoulos, T., Meninger, S., Crain, E., Spaeth, M., Aina, A., Balasubramanian, S., Vulih, J., Tiwary, P., Lin, D., Kessler, R., Fishbein, B., Jain, A. A 32-core RISC microprocessor with network accelerators, power management and testability features. InIEEE国际固态电路会议技术论文文摘, 2012年2月,5860。

15.Oracle。OpenSPARC T1。http://www.oracle.com/technetwork/systems/opensparc/opensparc-t1-page-1444609.html

16.PyHP。PyHP官方主页。http://pyhp.sourceforge.net

17.Seiler, L., Carmean, D., Sprangle, E., Forsyth, T., Abrash, M., Dubey, P., Junkins, S., Lake, A., Sugerman, J., Cavin, R., Espasa, R., Grochowski, E., Juan, T., Hanrahan, P. Larrabee:用于视觉计算的多核x86架构。ACM反式。图。27,(3)(2008年8月),18:118:15。

18.泽弗,J.,张伟,陈盈盈。,Champagne, D., Chan, K., Li, W., Cheung, R., Lee, R. Rapid single-chip secure processor prototyping on the OpenSPARC FPGA platform. In2011第22届IEEE快速系统原型技术国际研讨会, 2011年5月,3844。

19.万加尔,s.r.,霍华德,J.,鲁尔,G.,迪格,S.,威尔逊,H., Tschanz, J.,费南,D.,辛格,A.,雅各布,T.,贾恩,S.等。80瓦低于100瓦的teraops处理器,采用65纳米CMOS。固体电路43,1(2008), 2941。

20.Wentzlaff, D., Griffin, P., Hoffmann, H., Bao, L., Edwards, B., Ramey, C., Mattina, M., Miao。, Brown III, j.f., Agarwal, A. Tile Processor的片上互连架构。IEEE微27,(5)(2007年9月),1531。

21.Wentzlaff, D., Jackson, c.j., Griffin, P., Agarwal, A.多核处理器虚拟化的可配置细粒度保护。在计算机体系结构国际年会论文集(美国华盛顿特区,2012),464475。

22.Woo, d.h., Lee, h.h.s .在多核时代扩展Amdahl的节能计算定律。电脑12(2008), 2431。

23.周勇,王志强,王志勇。内存到达间隔时间流量整形。在第43届计算机体系结构国际研讨会论文集, ISCA’16 (Piscataway, NJ, USA, 2016), IEEE出版社,532544。

回到顶部

作者

德乔纳森·鲍坎德jbalkind@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

迈克尔部mmckeown@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

Yaosheng Fu *yfu@nvidia.com), NVIDIA, Santa Clara, CA, USA。

三阮trin@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

焉耆周*zhouyanqi@baidu.com),美国加利福尼亚州森尼维尔市百度SVAIL。

Alexey拉夫罗夫alavrov@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

穆罕默德Shahradmshahrad@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

Adi福克斯adif@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

塞缪尔·佩恩*spayne@nvidia.com), NVIDIA, Santa Clara, CA, USA。

小华梁*xialian@microsoft.com),微软,雷德蒙德,西澳,美国。

马修Matl *mmatl@eecs.berkeley.edu),美国加州大学伯克利分校。

大卫Wentzlaffwentzlaf@princeton.edu),普林斯顿大学,普林斯顿,美国新泽西州。

回到顶部

脚注

a. Linux for SPARC的主机位于https://oss.oracle.com/projects/linux-sparc/

本文的原文标题为:OpenPiton:一个开源多核心研究框架发表在ASPLOS 2016论文集2016年4月26日,亚特兰大,佐治亚州,ACM。

这项研究是在普林斯顿大学完成的。


版权由作者/所有者持有。授权给ACM的出版权。
请求发布的权限permissions@acm.org

数字图书馆是由计算机协会出版的。版权所有©2019 ACM股份有限公司


没有发现记录

Baidu
map