《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 多态并行处理器中的SIMD控制器设计与实现
多态并行处理器中的SIMD控制器设计与实现
来源:电子技术应用2013年第11期
蒲 林1,李 涛1,易学渊2,韩俊刚2
1.西安邮电大学 电子工程学院,陕西 西安710061; 2.西安邮电大学 计算机学院,陕西 西安710061
摘要: 设计和实现了一种多态并行处理器中的SIMD控制器。为满足图像并行处理的需要,以实现高效的数据级并行计算为目标,采用状态机实现了行、列、簇控制器的设计,完成了SIMD指令的发送、数据的加载和远程数据的传输。在阵列机上分区并发实现了SIMD和MIMD两种计算模式,能够实现两种计算模式的切换。专用的硬件电路设计提高了该处理器处理并行数据的能力。
中图分类号: TN492
文献标识码: A
文章编号: 0258-7998(2013)11-0053-03
Design and implementation of SIMD controller in polymorphism parallel processor
Pu Lin1,Li Tao1,Yi Xueyuan2,Han Jungang2
1.School of Electronic Engineering,Xi′an University of Posts & Telecommunications,Xi′an 710061,China; 2.School of Computer Science & Technology, Xi′an University of Posts & Telecommunications,Xi′an 710061,China
Abstract: The designed and implementation of a SIMD controller for a polymorphism parallel processor are presented in the paper. To meet the need for parallel processing and aiming at efficient data level parallel computation, we use the state machine approach to design the row, column and cluster controllers. The row controller sends SIMD instructions to processing elements, the column controller performs data and program loading and remote data access. The polymorphous machine employs two computation modes, the SIMD mode and the MIMD mode. The controllers are mainly used for the SIMD mode of computation. A dedicated hardware circuit design improves the ability to handle parallel data of the processor.
Key words : polymorphism parallel processor;SIMD controller;data level parallel;array machine

    图形图像处理技术是信息处理领域中的一项热门技术,在计算机视觉、气象信息、地球资源勘测等领域得到广泛的应用[1]。随着人们对图形图像信息应用需求的扩大和计算机技术的飞速发展,提高处理的速度成为了图形图像处理中需要解决的难点之一。并行处理[2]是解决大规模图形图像处理问题的有效手段,但由于体积大、功耗高和难以维护等特点,使以多处理系统为代表的很多图形图像处理系统难以得到广泛应用[3]。多态并行处理器实现了单指令多数据(SIMD)和多指令多数据(MIMD)计算模式的混合,其结构简单,功耗低,同时在阵列机上分区并发实现该两种模式,并且能够在两种模式间实现一步转换[4-5]。其中SIMD控制器能够针对图形图像处理算法开发出更多的数据并行性[6],提高图形图像的处理性能。

1 多态并行处理器
    本文设计了一种新型的多态并行处理器中的SIMD控制器。该多态并行处理器是一个阵列机,由多个处理器簇组成,每个簇是由处理单元(PE)组成的二维阵列,是一种较常见的阵列结构,这种簇结构可以分层次构成。如图1所示,一个基本簇是由16个PE组成的4×4阵列,处理单元通过近邻互联组成二维阵列。每一行有行控制器(RC),每一列有列控制器(CC),整个簇由簇控制器进行控制。
    多态并行处理器包含1个前端处理器、4个F簇、4个S簇、一些专用硬件加速器、一个带有缓存的片上SRAM存储和内部互联通道,如图2所示。F簇处理单元包含浮点处理器和定点处理器,S簇只包含定点处理器。
    如图3所示,单个处理单元由带有路由器(RU)的ALU、数据存储(D-mem)、指令存储(I-mem)、邻接共享存储和SIMD接口控制器(ICTL)构成。

    在多态并行处理器中,各PE的数据和程序的加载均由SIMD控制器控制,SIMD控制器设计的好坏直接影响到各PE的执行效率及并行度。
2 SIMD控制器的硬件设计
    SIMD控制器主要由1个簇控制器模块、4个行控制器模块和4个列控制器模块构成,如图1所示。各模块功能:簇控制器模块主要完成整个簇中处理单元的控制,包括协调程序和数据的加载以及控制整个簇实现SIMD计算;行控制器模块主要功能是将一行的PE重构成SIMD模式,进行数据级并行计算以及初始化SIMD指令;列控制器模块主要完成对簇内共享存储和互联数据通道的控制。

    状态跳转说明如下:
    (1)IDLE:空闲状态。接收到初始化请求后,跳转至INIT_DATA状态,开始加载数据/指令。
    (2)INIT_DATA:初始化指令/数据到簇缓存状态。簇缓存大小有限,指令/数据的加载需分批进行,待当前批的指令/数据加载完成后,跳转到SEND_DATA状态。
    (3)SEND_DATA:发送指令/数据状态。指令/数据加载完成后,簇控制器将簇缓存中的指令/数据广播给行、列控制器,若检测到数据包头信息为写操作,则发送完相应指令/数据后,跳回IDLE状态;若检测到为读操作,则跳转至RD_DATA。
    (4)RD_DATA:读数据状态。根据包头所含数据大小信息,待接收完列控制器发送的所需数据后,跳转至IDLE状态。
2.3 行控制器
    行控制器分为两个部分进行设计:一是初始化SIMD指令;二是将行控制器所在行的PE重构成SIMD模式进行数据并行计算,如图5所示。

    各状态说明如下:
    (1)IDLE:空闲状态。若检测到初始化使能及数据有效信号,则开始解析数据包,状态跳转到RECV_INSTR_
PACK;若检测到路由器请求信号,则跳转到RECV_RT状态,同时给路由器一个接收数据包响应信号。
    (2)RECV_INSTR_PACK:接收指令包状态。若数据经检测不是加载给本控制器,则跳回至IDLE状态;若是加载给本行控制器且是写操作,则跳转到INIT状态。
    (3)INIT:指令初始化状态。指令加载完成后,跳转回IDLE状态。
    (4)RECV_RT:接收路由器包状态。若检测到CALLC指令,则给行控制器所在行的PE发送请求,同时状态跳转到WAIT;若路由器传来的数据包有误,则跳回IDLE状态。
    (5)WAIT:等待状态。给行控制器所在行的4个PE发送SIMD请求信号后,PE停止取址,待流水线中的指令排空且4个PE均返回了响应信号后,跳转至SEND_INSTR状态。
    (6)SEND_INSTR:发送指令状态。将从解析出的起始地址开始的指令同时发送给所在行的4个PE以执行SIMD运行模式,待检测到RETC指令后,停止发送指令,给路由器发送请求信号,同时给4个PE一个结束信号(PE则继续之前的MIMD取址),此时跳转到SEND_RT状态。
    (7)SEND_RT:发送路由器包状态。接收到路由器响应信号后,行控制器发送数据包,同时跳转回IDLE状态。
2.4 列控制器

 


    列控制器模块的设计分为4个部分:(1)初始化程序/数据的加载;(2)簇控制器对列控制器存储中计算结果的读取;(3)将PE计算结果写入到列存储中;(4)从列存储中动态读取数据。状态机如图6所示。

    各状态说明如下:
    (1)IDLE:空闲状态。若检测到广播的初始化使能及数据有效信号,则开始解析数据包,同时跳转到RECV_PACK状态;若检测到路由器请求信号,则跳转到RECV_RT_PACK状态。
    (2)RECV_PACK:接收初始化数据包结束状态。若检测到不是发送给本列控制器的数据,则下一状态跳转回IDLE,继续等待下一个广播包头;否则,若操作类为写,则状态跳转到INIT_DATA,若为读,则跳转到RD_DATA状态。
    (3)INIT_DATA:初始化数据状态。将初始化数据广播给对应列存储和4个PE,待初始化数据完成,跳回IDLE状态。
    (4)RD_DATA:读数据状态。根据包头中信息,簇控制器从列存储读取数据,待数据读取完成,跳回IDLE状态。
    (5)RECV_RT_PACK:接收路由器包头状态。开始接收由路由器传来的数据包头,此时有两种不同的数据包格式,一种用于动态读取数据(MVF指令),另一种用于将数据写入列存储(MVT指令)。若检测到是MVT指令,则跳转到RECV_DATA状态;若检测到是MVF指令,则跳转到WAIT_ACK状态。
    (6)RECV_DATA:将PE计算结果写入列存储。数据写入完成后,跳转到IDLE状态。
    (7)WAIT_ACK:等待路由器响应状态。请求使用路由器传输数据后,必须等待路由器空闲才能得到响应,等到响应信号后跳转到SEND_DATA状态。
    (8)SEND_DATA:发送数据状态。根据数据包头中包含的数据起始地址和大小动态读取列存储内数据,当请求的数据读取完成后跳转到IDLE状态。
    本文采用状态机设计和实现了SIMD控制器,并对电路进行了功能验证与DC综合以及FPGA验证。结果表明,SIMD控制器电路工作正常且电路具有良好的可扩展性,实用性强,能够满足多态并行处理器的要求。
参考文献
[1] 李勇.一种SIMD多DSP数字图像处理系统研究与设计[J]. 电子技术应用,2007,33(11):71-73.
[2] BOYD C.Data parallel computing[J].ACM Queue,2008,6(2):30-39.
[3] 李强.32位图像向量处理器关键技术研究与设计[D].大连:大连理工大学,2009.
[4] 李涛.面向图形和图像处理的轻核阵列机结构[J].西安邮电学院学报,2012,17(3):41-47.
[5] Li Tao.A polymorphic array architecture for graphics and image processing[C].2012 Fifth International Symposium on PAAP,2012:242-249.
[6] MAROWKA A,GAN R.Back to thin-core massively parallel processors[J].IEEE Computer,2011,44(12):49-54.

此内容为AET网站原创,未经授权禁止转载。