当前位置:论文网 > 论文宝库 > 信息科技类 > 应用电子技术论文 > 正文

谈一种基于嵌入式微处理器SIMD核的可重构数据总线的布局

来源:UC论文网2015-12-15 22:54

摘要:

摘要:提出了一种基于可重构总线的数据并行体系结构。首先,针对现代多媒体处理中存在的问题,提出了一种基于可重构总线的一维处理单元阵列体系结构;其次,设计各处理单元之

 摘要:提出了一种基于可重构总线的数据并行体系结构。首先,针对现代多媒体处理中存在的问题,提出了一种基于可重构总线的一维处理单元阵列体系结构;其次,设计各处理单元之间的通信模块以及处理元之间的数据传递方式,即可重构数据总线的设计;最后,通过对几种常用的图像处理算法的验证,表明基于可重构总线的一维SIMD体系结构在逻辑上具有可行性。
  关键词:可重构总线;数据并行体系结构;FPGA;SIMD
  DOI: 10.3969/j.issn.1005-5517.2012.11.007
  前言
  由于近些年来消费类设备需求的猛增,如数码相机和数字摄像机等设备,计算机对图像的处理能力近年来成为大家关注的热点[1]。但是,传统的处理器已经不能满足人们对日益增长的处理能力的要求。本文的体系结构正是针对数字图像处理的特点,结合并行处理和可重构技术,提高处理器在图像处理方面的能力[2]。
  SIMD计算机是由M.J.Flynn[3]在对计算机系统的分类中提出。根据SIMD结构上的不同,可将其分类为两种。一种是PE-to-Memory结构的SIMD计算机,PE不含局部存储器,而由若干存储器模块通过对准网络与 PE相连,各存储模块为各PE共享,所以这种结构又称为共享存储结构的SIMD计算机。另一种是PE-to-PE,即PE由ALU和局部存储器组成,PE间通过互联网络连结,完成PE之间的数据通讯。这种结构也被称为分布式局部存储结构SIMD计算机,在已研究成的SIMD机器中占绝大多数,本文中提出的SIMD核也采用此结构。
  基于可重构总线的SIMD体系结构
  体系结构模型
  基于可重构总线的SIMD体系结构模型如图1所示,由宿主机(Host)、协处理器(coprocessor)以及数据总线组成。
  该模型的存储结构采用哈佛结构[4],从而在寻址等一系列方面存在优势[5]。由上图可以看出该体系结构的主要部分在于PE阵列,共有32个PE,并且相邻两个PE之间增加了可重构总线,用于负责PE之间的通信[6],从而引入了邻居本地化,配置总线指令等相关内容,增强了PE之间通信的灵活性。另外,在PE阵列中,该模型还为每个PE设计了DRAM,为每个处理元提供片上内存,减少了与宿主机的I/ O次数,从而提高了PE阵列的处理能力[7-8]。
  本体系结构模型可形式化定义为一个四元组(N,C,I,F),其中:
  (1)N(Number of PE)表示处理元的数目,可以根据体系结构所面向的应用做调整,N可以取2的幂次方;
  (2)C(Controllor Instuction Set)表示控制器执行指令集,包括程序控制、全局存储读写、数据分发、汇总等;
  (3)I(Instruction Set)即指令集,默认为处理元执行的阵列指令,包含算术、逻辑、移位、比较、读写、通信、总线配置等操作指令;
  (4)F(Interconnect functions)代表处理元间通信连接的函数集,即可重构总线的配置方案,函数根据应用的不同做相应改变。
  处理元阵列与控制器之间的连接方式,以及处理元阵列内部各PE的连接方式如图2所示。
  可重构总线
  处理元之间的通信是通过可重构总线来完成的,如图2所示,每个处理元都有三个端口(segment_L,segment_R,LR_insidecon)。通过这些端口的打开与闭合,将可重构总线根据不同的需要划分为独立的段总线,从而增强PE之间通信的灵活性[9]。
  可重构总线的可重构特性实际上就是依靠PE的东、西端口来实现得。通过东、西端口的闭合和断开来控制PE与总线的连接状态。如图3所示在本文所提出的一维SIMD阵列体系结构中,每两个相邻的PE之间都有一个可重构的段总线将二者相连。正是这些段总线将PE阵列串联起来,保证了PE之间通信的灵活性、可配置性[10]。
  图4所示的是由4个PE所组成的一维处理元阵列。在图中共有3段可重构总线将PE串联起来。由图中可清晰地看出,所谓的可重构总线并不是一个数据总线,而是多个段总线组合而成。正是因为这种组合结构以及每个 PE内端口的存在,才使得总线有了可重构的特性。
  软件仿真
  按照执行单元的不同,指令可以分为控制器指令、PE指令。由控制器负责执行的指令都为标量指令,因为控制器内部并没有并行执行单元。对于由PE执行的指令来说,既有标量指令又有向量指令。本小节将从标量指令、向量指令两个方面来总结用Xilinx ISE对PE主要指令进行仿真的结果。
  标量指令仿真
  PE中的标量指令都是条件判断执行指令。这类指令的特点是先从控制器内部的主解码器中得到指令相关的信号量,但各PE是否响应这些信号量还取决于各PE内部独立的PSR。判断PSR是否满足条件,满足则PE响应该指令的相关信号量,不满足则PE忽略该指令。
  下面测试标量指令中的可重构总线与Router之间的传输指令。用到的指令有西端口发送、东端口条件接收指令,以此来说明PE之间的通信方式以及各指令之间的配合使用。测试代码如下:
  PRST;总线复位指令
  PCONIEW;东西端口内部断开指令
  PRINDEX R1;读取PE序号至R1寄存器中
  PADDI R2, R0,1 ;立即数加法:[R2] = [R0] + 1
  PCMPIE R1, R2;判断R1寄存器中的值是否等于R2寄存器中的值
  PMOVRT R1;将R1寄存器中的值写入Router中

  PSNDW;西端口发送指令
  PRCVEC;东端口条件接收指令

 仿真结果如图5。由图5可以看出,虽然PE1,PE2的西端口都收到了上一PE发送的数据,但只有PE1真正将收到的数据写入Router,只有写入Router中才算是真正接收数据。这是因为只有PE1满足西端口接收的条件,即R1中的数据等于R2中的数据。
  向量指令仿真
  根据指令功能的不同,我们将PE的向量指令分为:算术逻辑操作指令、比较操作指令、寄存器与DRAM之间的传输指令、寄存器与Router之间的传输指令、可重构总线与Router之间的传输指令、总线配置指令。下面将以可重构总线与Router之间的传送指令为例,来说明指令的执行过程与仿真结果。测试代码如下:PRST;总线复位PDCONIEW;东西端口内部断开
  PRINDEX R1;将PE序号写入R1寄存器
  PMOVRT R1;将R1的值送往Router
  PSNDE;东端口发送
  PRCVW;西端口接收
  仿真结果如图6。由图6可见,PE1的Router中最先保存的是PE1的R1寄存器发送的数据1,然后从其西端口接收到PE0的Router发送的数据0,并将其保存至PE1的Router。
   FPGA验证
  下面将整个体系结构和用于测试的程序下载到FPGA开发板上进行硬件验证。我们选用的是Xinlinx公司的Spartan 3E开发板。主要特性:50万门,XC3S500E-4FG320C芯片;50MHz晶体时钟振荡器;128Mbit并行Flash,16Mbit SPI Flash,64MByte DDR SDRM。
  为了便于观看FPGA开发板上程序的运行情况,我们选用Xilinx公司的ChipScope工具进行抓取结果。
  将ChipScope的抓取结果与程序的仿真结果相对比,可以看出PE3的 DRAM写入数据都为46,而其计算过程均为先自身计算得到13,而后加上PE2发送的数据12,从而得到25。接着收到PE1发送的计算结果21后,与之相加得到46。
  由图7和图8的对比可以看出,FPGA开发板上的动迁结果与程序仿真得到的结果一致,证明了本系统结构的设计在逻辑上的正确性。
  总结
  本文以数据并行体系结构的关键技术为研究对象,针对于图像处理算法,以并行运算和可重构总线为技术支撑,提出了区别于传统体系结构且能满足变化需求的SIMD体系结构。通过对体系结构内部各重要模块的分析和研究,在不断实验、总结的过程中,完善体系结构本身的设计,增加处理元阵列中的数据通信,并根据实现过程中遇到的问题修改指令集,使图像处理的并行算法有了进一步优化的根基,为后续体系结构的扩展以及SIMD核的广泛应用打下了牢固的基础。
  参考文献:
  [1] 史元春,徐光祐.中国多媒体技术研究[J].中国图像图形学报,2010,(7)
  [2] Todman T J, Constantinides G A, Wilton S J E. Reconfigurable Computing: Architectures and Design methods[J]. IEE Proceedings: Computers and Digital Techniques, 2005, 152(2):193-207.
  [3] M.J.Flynn, Some Computer Organizations and Their Effectiveness[J].Computers, IEEE Transactions, 1972
  [4] Ikuo Yasui. Microprocessor with Harvard Architecture[P]. US Patent 5,034,887, 1991
  [5] 李静梅.现代计算机体系结构[M].北京:清华大学出版社,2009:120-124
  [6] Hatem M. El-Boghdadi, Ramachandran Vaidyanathan, Jerry L. Trahan and Suresh Rai. On the Communication Capability of the Self-Reconfigurable Gate Array Architecture[J]. 9th Reconfigurable Architectures Workshop in Proc. Int. Parallel and Distrib. Proc. Symp. 2002
  [7] Patterson D, Anderson T, Fromm R, et al.A Case for Intelligent RAM: IRAM[J]. Micro, IEEE,1997,28,(06):211-214
  [8] Elliott D. Computational-RAM: The Case for SIMD Computing in Memory[J]. ISCA’97 Workshop on Mixing Logic and DRAM,1997, 27,(06):301-307
  [9] El-Boghdadi, Hatem Mahmoud El-Sayed. On Implementing Dynamically Reconfigurable Architectures[J]. Electrical and Computer Engineering of Louisiana State University, 2003
  [10] Guo-chang Zhou, Zhong Wang, De-liang Che and Guo-chen Feng. The Improved Design of Embeded SIMD Coprocessor[J]. Computer Engineering and Applications, 2004, 40,(31): 13-16

核心期刊推荐