APP下载

多态并行处理器中的SIMD控制器设计与实现*

2013-08-30易学渊韩俊刚

电子技术应用 2013年11期
关键词:图形图像多态路由器

蒲 林 ,李 涛 ,易学渊 ,韩俊刚

(1.西安邮电大学 电子工程学院,陕西 西安710061;2.西安邮电大学 计算机学院,陕西 西安710061)

图形图像处理技术是信息处理领域中的一项热门技术,在计算机视觉、气象信息、地球资源勘测等领域得到广泛的应用[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)构成。

图1 基本簇结构

图2 多态并行处理器整体结构

图3 处理器结构

在多态并行处理器中,各PE的数据和程序的加载均由SIMD控制器控制,SIMD控制器设计的好坏直接影响到各PE的执行效率及并行度。

2 SIMD控制器的硬件设计

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

2.1 数据包格式

各模块间以包进行数据传输,数据包格式如表1所示,其中包头格式如表2所示。

表1 数据包格式

表2 包头格式

数据包包头[31]位表示读/写操作(1=写/0=读),[30]位表示指令/数据(1=指令/0=数据),[29:27]位为传输的数据大小,一次最多可传8个字的数据;[26:0]位表示目标地址,可在128 MB范围内寻址。PE、行、列控制器统一编址,[14:10]表示 PE/行控制器号,当[26:15]全为 0且[14]位为 1时表示对 PE进行操作,[13:10]则为 PE编号,[9:0]为PE内存储地址。当[26:14]全为0时,表示对行控制器进行操作,[13:12]为行控制器编号,此时[11:0]为行控制器内存储地址。当[26:15]不全为0时,表示对列存储器进行操作。

用于SIMD操作的专用指令有CALLC和RETC,其数据包格式分别如表3、表4所示。

表3 CALLC数据包格式

表4 RETC数据包格式

表3数据包为两个 32 bit,tID为目标线程 ID号,Addr为目标地址,Ctrl为目标行控制器号,mask为掩码,rID为源线程ID号,rPE为源PE号,rAddr为源地址。当CALLC结束后,需要给发送CALLC指令的PE发去一个如表4所示的RETC数据包。

2.2 簇控制器

簇控制器的设计分为两部分:一是初始化程序和数据,二是动态读取程序和数据,如图4所示。

图4 簇控制器模块状态机

状态跳转说明如下:

(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所示。

图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所示。

图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.

猜你喜欢

图形图像多态路由器
买千兆路由器看接口参数
Photoshop图形图像处理线上线下混合式教学模式探究
维持生命
路由器每天都要关
路由器每天都要关
参差多态而功不唐捐
浅析计算机图形图像处理技术偏技术
网页设计与图形图像处理技术探析
《C++面向对象程序设计》中引用类型的教学实践
面向工艺设计的图形图像处理系统研究与实现