更全的杂志信息网

计算存储一体的体系结构研究与实现

更新时间:2009-03-28

0 引 言

随着大数据时代的到来,计算机需要处理的数据量在飞速增长,由于存储器访问速率的限制,在数据存取比例越来越大的情况下,传统的计算体系结构面临着越来越大的延迟和带宽的限制,同时功耗的问题也越来越严重。传统的以计算为中心的体系结构越来越不能适用于现在的应用需求。针对这种问题,世界上许多著名的学府和公司都对新的计算体系结构的研究投入大量人力和物力,分别提出了几种不同的结构,影响较大的有:IRAM、FlexRAM、Smart Memories和DIVA等。这些不同结构都是将计算逻辑和存储逻辑设计在同一芯片内,由于计算逻辑与存储器实现的工艺有很大差别,这种设计在当时甚至现在实现起来都是非常困难的。在这种大数据应用需求以及技术背景下,提出了一种计算存储一体的体系结构(processing in memory,PIM)。这种结构中设计的计算单元为一个独立的微处理器核,利用3D封装TSV(through silicon via)技术或者系统级封装技术(system in a package,SIP)可以将计算单元和存储器封装在一起,从而真正地实现计算存储一体[1-3]

1 PIM体系结构

计算存储一体的体系结构提供了一种可以突破冯诺依曼瓶颈的可行方式[4]。在PIM体系结构中,整个系统分成了两大部分,CPU主控逻辑和PIM计算存储逻辑。由CPU主控逻辑来实现对计算单元和存储器的控制管理。将计算单元和存储器集成在一起,可以实现计算单元对存储器的直接访问。这样可以大大缩短数据访问路径,提高数据访问速率。而且在这种结构中,计算主要集中在计算单元,CPU只需负责少量控制即可,不但可以减小CPU的面积,还可以大量减少传统架构中CPU和存储器的数据交换,并减少由此所带来的大量功耗。根据这样的思想,设计了如图1所示的PIM体系结构。

  

图1 PIM结构

在主控逻辑上,集成了主控处理器CPU、cache、总线、DDR物理接口,以及TLB来实现虚拟地址到物理地址的转换。在PIM逻辑上,集成了计算处理器PIM核以及CPU和PIM共用的DDR。在DDR上面预留出部分区域用于数据交换,CPU通过DMA和内存控制器来控制数据的访问以及交换。

CPU上可以单纯的负责控制程序流,或者是运行操作系统。

2 PIM核的设计

在PIM系统中采用自主研发的处理器Lotus作为PIM核。Lotus支持ARM指令集,并在单核中实现了双发射顺序超标量和六发射超长指令字两种分发模式。两种模式在整个流水线的运行中唯一的不同发生在指令分发部分,两种模式共用其余的流水线级,如图2所示。

  

图2 混合架构的设计理念

ZC702开发板上集成有两块低引线数FMC接口(LPC),ZC706开发板分别集成了LPC和高引线数FMC接口(HPC)各一块。FMC中的GTX收发器不适用于本设计。所以我们选择LPC和HPC中的单端信号模式来实现开发板之间的连接。单端信号的传输速率能达到大约200 Mbit/s,因为ZC702仅支持LPC,于是在设计中共有68个LPC和HPC共有的接口可用[7,8]

其中表示通信拓扑子图的邻接矩阵Aσ的元素;M表示系统所有可能的通信拓扑情况.通过构造代价指标T,可展开对编队系统模型优劣性的分析,从而证明本文所提脉冲控制方法在节约时间和能量方面的优越性.

  

图3 模式切换

3 PIM系统的FPGA实现

当集成了两块PIM时,主CPU分配任务让两块PIM核协作完成。当PIM核运行任务结束后或者出现异常,将产生中断信号传递到主板上的中断控制器。PIM核在运行过程中通过DMA来访问DDR。此外,主CPU也可以直接发送DDR访问请求,通过位于从板的PS部分中的内存控制器来访问DDR。

  

图4 PIM总线

如图4所示,在Xilinx ZC702开发板上实现主控逻辑,使用PS部分的一个A9处理器(包含在图中的ZYNQ器件之中)作为主控CPU,并运行Linux操作系统,控制PIM逻辑的运行。在PL部分设计AXI总线接口以及中断控制器[7]

在Xilinx ZC706开发板上实现PIM逻辑,在PL部分并行设计实现两块实验室自主开发的处理器作为PIM核,图4中可以看到有两块PIM核,实际上在设计过程中分别实现了只有一个PIM核和有两个PIM核两种情况用以实验对比。同时设计实现了DMA并配置了内存控制器[8]。主CPU和PIM核共用ZC706上PL部分的DDR。两块开发板上都集成有片到片模块(chip2chip module,C2C),数据及控制信号通过这两个C2C模块传递,同时将两个C2C模块的接口配置到FPGA Mezzanine Card(FMC)接口的引脚上来实现通信。

近年来的理论研究以及企业实践表明,理论界一般都是采用数学建模的方法来对供应链信息共享研究,并且大多数集中于信息共享的价值问题研究上。很多学者运用DEA方法面向供应链管理的研究,但大多集中于对供应链环境效益的影响研究、供应链知识共享评价、信息技术管理、供应链风险管理等领域,几乎没有学者用该方法在供应链信息共享领域进行研究,由此表明了本文的研究价值所在。

对上述系统使用MapReduce程序进行仿真测试。Map-Reduce在大数据并行计算方面是认可度很高的编程架构[10],但由于其规模过大不利于测试上述系统,于是使用C语言实现了MapReduce的算法。使用其中4个测试程序,包括wordcount,histogram,string-match 和 matrix-multiply,并将数据量设为1 MB~10 MB的增量。为更清楚地显示出PIM系统的优势,测试了3种不同模式,即仅CPU,PIM1和PIM2模式。仅CPU模式即为传统CPU架构,PIM1模式为带有一个PIM核的PIM架构,PIM2模式为带有两个PIM核的PIM架构。

 

1 板间交互信号

  

FMC1接口信号定义0enable存储器访问使能信号,在存储器访问期间需始终保持低电平1read_valid值为1时,表明主CPU发起了一个有效读请求2write_valid值为1时,表明主CPU发起了一个有效写请求3read/write值为1时,表明这是一个读操作,值为0时,表明这是一个写操作4address/data值为1时,表明端口5-30为数据,值为0时,表明端口5-30为地址5-30address/data共26个端口,地址和数据分时复用这些端口FMC2接口信号定义0read_ready值为1时,表明PIM部分读就绪1write_ready值为1时,表明PIM部分写就绪2-5intr共4个接口,表明了中断类型6-30address/data共27个端口,地址和数据分时复用这些端口

为实现包括主控逻辑加PIM逻辑两部分的整个系统的验证,我们使用Xilinx公司的两块开发板ZC702和ZC706。在每块开发板中都集成了ZYNQ器件,ZYNQ器件中有处理系统部分(processing system,PS)和编程逻辑部分(programmable logic,PL),PS包括两个ARM Cortex-A9处理器。使用Xilinx的Vivado工具完成整个系统的设计,图4为在PIM系统的设计结构框架。

服务特点:I)在科学技术与医学领域内最权威的在线检索与获取全文的服务商之一,尤其是nature系列期刊、提供pdf预览功能;II)提供优先出版服务(快速,比纸本期刊更快看到最新的研究);III)提供投稿、审稿服务(需登陆且需实际投稿才能一一体验)

超长指令字的分发宽度往往更大,二者指令分发的原则也不相同。顺序超标量依靠寄存器锁定标识判断指令的分发,而超长指令字模式则通过指令包的指令类型顺序进行分发[5]

4 实验验证

PIM系统的运行由主CPU控制。主板上的CPU可以发送控制信号到从板,通过从板上的PS部分可以启动或者停止PIM核的运行。为了实现两板的控制与交互,定义了板间交互信号,包括数据、地址以及中断信号等,见表1。该PIM系统的数据地址带宽为32位,FPGA开发板上集成的C2C模块对数据进行封包解包操作,压缩数据节省接口[9]

Lotus采用十级流水线,可以分为4个部分,分别为指令的获取、分发、解码以及执行。执行级根据指令的不同可能占用一级到三级流水线。双模式架构处理器的模式切换由软件决定。我们在当前程序状态寄存器(current program status register,CPSR)的保留位中选择了第23位作为模式标志位。当该位被清零时,处理器运行于超标量模式,当该位被置1时,处理器运行于超长指令字模式。在ARM指令集中,通过MRS和MSR两条指令来实现CPSR中标志位的改写[5,6]。模式切换过程如图3所示,在程序主体部分以顺序超标量模式执行,并在数据密集处设置模式切换的入口进入超长指令字模式执行,从而加快数据的处理。在控制密集处设置出口切换回超标量模式。

图5表示3种模式下的性能比较,可以看出,数据量的增加会造成运行时间的增加。对于wordcount和histogram程序,性能总是PIM2优于PIM1优于仅CPU,同时随着数据量的增加,性能的差距越来越大。对于matrix-multiply程序,当数据量大于4 MB时PIM模式的性能才会优于仅CPU模式,该程序是有关矩阵的计算,当数据量较小时,计算所消耗的时间在程序中所占的比例较大而非存储器访问。而PIM2的性能总是优于PIM1的性能。对于string-match程序,PIM1的性能总是差于仅CPU模式,这是由于这个程序内对于存储器的访问率较低。而PIM2的性能总是优于仅CPU模式。

  

图5 性能对比

  

图6 功耗对比

图6对比了3种模式下的功耗。从图6中可以看出,对于4种程序PIM1和PIM2模式的功耗基本相同,这是由于在PIM2模式中的两个相同的PIM核协作完成执行任务,相比于PIM1模式来说,PIM2模式下运行时间较短,但功率较高,综合起来功耗是近似的。随着数据量的增加,PIM1和PIM2模式下功耗会有少量的增加,而在仅CPU模式下功耗会有大幅度的增加。这是因为随着数据量的增加,CPU访问存储器所带来的功耗远大于数据计算。可以看出PIM系统可以有效降低计算机的功耗。

5 结束语

本文提出了一种计算存储一体的体系结构,该结构相比于传统的计算体系结构,可以有效地提升计算性能并大幅降低功耗,并且在现有的技术水平下可以物理实现。同时针对该体系结构,设计了一款适用于该结构的处理器内核。该处理器同时支持超标量和超长指令字两种模式,顺序超标量模式执行程序中的存取、跳转等指令,超长指令字模式执行程序中的计算类指令。这种双模式架构能够有效地降低单核处理器的功耗,提高性能。在后续的开发中,可以进一步测试deep learning等程序,挖掘更广的应用场景。

姜夔词素以清空峭拔称名,其中《点绛唇·燕雁无心》更是白石词风的代表杰作,抒发了词人对身世的感慨嗟叹。在《点绛唇》中,关于首句“燕雁无心”一直有不同的释义:《全宋词》中,注释“燕雁”为“自北方飞来之雁”;《唐宋词鉴赏辞典》中,释“燕雁”为“北来之雁”;《唐宋词选释》中,俞平伯先生注:“‘燕雁’有两说:一.‘燕’指玄鸟。仄声。二.燕为地名,幽燕之燕,平声”……在当下学术论文中,也有两种释义的偏倚。那么到底是“北地之雁”?还是“燕与大雁”?究其原词,我们或可得解。

1.3 调查方法 根据黑老虎的物候期、种植分布和病虫害发生特点,采用踏查、 走访、 询问等方式确定病虫害种类、 危害程度及防治水平。在有代表性的黑老虎样地按对角线法5点取样,每点选取10株进行调查,每5 d调查1次,定点定株全期调查。调查期间详细记录病虫害的发生时间、发生地点、危害部位及特点,并拍摄病虫图片,采集病虫标本,编号并带回实验室分类鉴定,确定病虫害种类。

参考文献

[1]Scrbak M,Islam M,Kavi KM,et al.Processing-in-memory:Exploring the design space[C]//International Conference on Architecture of Computing Systems.Berlin:Springer International Publishing,2015:43-54.

[2]Khan N,Yu LH,Tan SP,et al.3-D packaging with through-silicon via (TSV) for electrical and fluidic interconnections[J].IEEE Transactions on Components Packaging & Manufacturing Technology,2013,3(2):221-228.

[3]Lau JH,Tang GY.Effects of TSVs(through-silicon vias) on thermal performances of 3D IC integration system-in-package(SiP)[J].Microelectronics Reliability,2012,52(11):2660-2669.

[4]Di Ventra M,Pershin YV.The parallel approach[J].Nature Physics,2013,9(4):200-202.

[5]JohoL Hennessy,DavidA Patterson.Computer architecture:A quantitative approach[M].Beijing:Posts & Telecom Press,2012(in Chinese).[JohoL Hennessy,DavidA Patterson.计算机体系结构:量化研究方法[M].北京:人民邮电出版社,2012.]

[6]ARM Limited.ARM architecture reference manual:ARMv7-A and ARMv7-R edition[DB/OL].[2012-06-24].https://silver.arm.com/download/ARM_and_AMBA_Architecture/AR570-DA-70000-r0p0-00rel2/DDI0406C_C_arm_architecture_reference_manual.pdf.

[7]Xilinx.Inc.ZC702 evaluation board for the Zynq-7000 XC7Z020 all programmable SoC user guide (v1.5)[DB/OL].[2015-09-04].https://www.xilinx.com/support/documentation/boards_and_kits/zc702_zvik/ug850-zc702-eval-bd.pdf.

[8]Xilinx.Inc.ZC706 evaluation board for the Zynq-7000 XC7Z045 all programmable SoC user guide(v1.6)[DB/OL].[2016-03-29].https://www.xilinx.com/support/documentation/boards_and_kits/zc706/ug954-zc706-eval-board-xc7z045-ap-soc.pdf.

[9]Xilinx.Inc.AXI chip2chip product guide(v4.2)[DB/OL].[2015-11-08].https://www.xilinx.com/support/documentation/ip_documentation/axi_chip2chip/v4_2/pg067-axi-chip2chip.pdf.

[10]Dittrich J,Quiané-Ruiz JA.Efficient big data processing in Hadoop MapReduce[J].Proceedings of the Vldb Endowment,2012,5(12):2014-2015.

 
马千里,侯毓敏,何虎
《计算机工程与设计》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号