面向通信和多媒体应用的单指令多数据处理器电路结构的制作方法

文档序号:6602844阅读:408来源:国知局
专利名称:面向通信和多媒体应用的单指令多数据处理器电路结构的制作方法
技术领域
本发明属于高性能并行计算处理器技术领域,具体为一种面向通信和多媒体应 用,适用于众核片上网络的新型单指令多数据(SIMD)处理器电路结构。
背景技术
单指令多数据(SIMD)是Single Instruction Multiple Data 的缩写。SIMD 这 一概念最早由Flyrm提出。后来基于这一思想,也就是一条指令对多条数据通路执行运算, 研制了一系列的并行运算架构,包括最早的vector processor,被广泛运用在早期的超大 型计算机研制中。上世纪80年代,由Lockheed Martin开发的GAPP架构获得广泛认可, GAPP (Geometric-Arithmetic Parallel Processor)处理器基于 SB 架构,在目前的视频、 音频处理领域得到很好的应用。上世纪90年代,SIMD作为一种技术被广泛用于通用处理器 的扩展,用于增强通用处理器的多媒体处理能力。其中包括Intel公司的MMX,SSE,SSE2, AMD的3Dnow !,IBM公司也和Motorola公司、Apple公司联合开发了基于PowerPC的SIMD 扩展技术VMX,以及Freescale公司专有的Altivec SIMD处理器。用以增强原有通用处理 器的并行数据处理能力。以ARM公司,MIPS公司为代表的嵌入式处理器设计厂家,也在其 相应的处理器解决方案上,提出了多媒体、DSP扩展指令集架构以及相应的SIMD技术,例如 ARM公司的NE0N技术和MIPS的DSP扩展、3D扩展技术。众核处理器(Many-core Processor)是近几年出现的新型处理器解决方案,与传 统的单核处理器相比,并行计算能力更强,可扩展性与可配置性也更好,功耗水平也有一定 的优势。与传统的专用集成电路相比,灵活性更强,可以支持多种标准和算法,因此近年来 得到广泛关注。众核处理器本质上是采用一定的网络拓扑结构将一定数量的微处理器联接 起来,采用特定的路由算法负责不同微处理器之间的通信,以获得更好的并行计算能力。另 外,在众核处理器中所使用的单个微处理器与传统的微处理器还有所不同,需要面向众核 通信架构作一定的架构修改,本发明就是基于面向众核处理器架构所提出的一款SIMD处 理器内核,主要面向通信和多媒体应用。

发明内容
本发明目的在于提供一种适用于下一代众核处理器,面向通信和多媒体应用的新 型单指令多数据处理器电路结构。本发明基于开源精简指令集(RISC)处理器架构,根据众核处理器片上网络(NoC, Network-on-Chip)特征与通信多媒体应用运算特征,提出了一种新的SIMD处理器电路结 构。能够更好地适用于众核架构下的处理器核通信,并从指令层次提升了内部的并行计算 能力,主要由SIMD整数运算单元,流水线控制单元,处理器异常控制单元,SIMD乘除法运算 单元,扩展寄存器文件单元共计五个模块组成。关于SIMD运算模式的定义一般较为宽泛,在本发明针对的多媒体通信应用领域 中,所处理数据的位宽一般为8比特(例如快速傅里叶变换FFT,Reed-Solomn纠错码编解码计算,LDPC纠错码编解码计算等),因此充分利用现有寄存器位宽资源,引入SIMD的设计 理念,可以提升数据的并行处理能力。因此引入4比特,8比特和16比特三种新的位宽模 式,与开源RISC架构下的32比特位宽模式融合,以获得更优秀的并行数据处理能力,这也 是本发明的核心。详见图-1。除依据数据的位宽分类外,SIMD指令根据参与运算数据逻辑关系可分为标量_标 量模式和向量_标量模式。标量_标量模式下,在SIMD算术逻辑运算单元、乘除法运算单 元和数据移位单元中,数据根据对应比特位确定逻辑关系参加运算,为一对一的形式。而在 向量-标量模式下,数据的逻辑关系由指令显式指定,可以实现多对一的运算效果。同时, 配套增加向量_标量模式下的寄存器传输,数据访问指令以及相应的跳转控制指令。关于 标量_标量和标量_向量运算模式详见图_2和图-3。每一个模块都充分考虑对原有开源RISC指令集与新添加SIMD指令的支持。SIMD 整数运算单元,支持SIMD指令与普通RISC指令两种模式的运算。流水线控制单元,适用于 SIMD指令与普通指令模式下,对指令流水中的数据相关、控制相关和结构相关进行判定并 对指令流水做相应的调整。处理器异常控制单元,适用于SIMD指令与普通指令模式下,对 指令流水中的中断、异常指令等意外情况作相应处理。SIMD乘除法运算单元,负责普通指令 和SIMD指令的乘除法运算、乘加乘减运算,以及SIMD指令模式下多对一向量-标量乘法运 算。适用于SIMD运算的扩展寄存器文件单元,在现有开源RISC架构寄存器文件基础上,将 地址空间由32个扩展到64个,并添加相应的映射表配置映射关系,适用于SIMD指令运算, 增加SIMD指令的并行计算能力。关于五个组成模块的系统架构,如图3所示,输入输出信 号如表-1所示。当指令被发射到SIMD处理器内核中,首先被SIMD整数运算单元获取,经过其内部 的译码模块得到相应控制信号。控制信号将传输到流水线控制单元和处理器异常控制单 元,得到相应的流水线控制操作。同时根据具体的指令,SIMD乘除法单元将获得输入操作 数与操作模式信号,给出运算结果。扩展寄存器文件单元将根据每条指令的需求读出或写 入具体寄存器单元的值。关于指令的流水线示意,如图_4所示。(1) SIMD整数运算单元SIMD整数运算单元,是SIMD处理器核心组成部分,是获取数据、进行运算并返回 运算结果的重要功能单元。如图_5所示,该运算单元由取指模块、译码模块、SIMD移位模 块、SIMD算术逻辑运算模块、逻辑1计数模块、数据前推模块、数据获取模块和数据对齐模 块共计8个模块组成。取指模块根据发射的指令判断是否取入下一条指令,当流水线控制模块要求插入 空指令或重复执行上一条指令时,取指模块不接受下一条指令输入。当完成取值后,指令将 流入译码模块。译码模块根据指令编码判断为普通的RISC架构指令或者为添加的SIMD运 算指令,产生相应的控制信号。之后指令将流入数据运算通路,根据指令和译码信号产生的 结果访问适用于SIMD指令的扩展寄存器文件单元取得操作数,或者通过数据获取模块访 问内存获得操作数,之后通过SIMD算术逻辑运算模块、移位模块、逻辑1计数模块或者SIMD 乘除法模块对数据进行运算。数据前推模块判断指令间的相关性,以实现相应的数据前推 和数据转发,以消除指令的数据相关与结构相关。最后运算结果将经过数据对齐模块,放回 寄存器堆中或者内存中。数据对齐模块的作用是将待存放的数据按照内存所要求的格式对齐,再存放到存储器中。其中SIMD移位模块和SIMD算术逻辑运算模块是SIMD整数运算单元的核心组成 部分。SIMD移位模块不仅支持开源RISC架构下的移位指令,同时支持SIMD模式下4比特, 8比特和16比特移位功能。包含逻辑左移,逻辑右移和算术右移。其支持的SIMD指令详见 表-2。SIMD算术逻辑运算单元模块是整个SIMD处理器数据通路的关键,负责执行加、减、 与、或、异或和或非等原子运算。与SIMD移位模块类似,SIMD算术逻辑运算不仅支持开源 RISC架构下的运算指令,也支持SIMD模式下的4比特,8比特,16比特运算指令。SIMD算 术逻辑运算模块支持的SIMD指令详见表_3(2)流水线控制单元和处理器异常控制单元流水线控制单元负责SIMD处理器中流水线控制信号的产生。在指令流水中,数据 相关、控制相关和结构相关是常见的相关类型。特别是增加SIMD指令,并且将原先的32个 寄存器扩展到64个寄存器后,流水线控制单元需要做相应的修改。具体的方法是,增加对 SIMD指令相关性的判断逻辑,同时将原先针对32个寄存器的相关性判断逻辑转变为针对 64个寄存器的判断逻辑。处理器异常控制单元负责处理SIMD处理器中异常指令、外部中断和程序跳转失 效等异常情况。在SIMD模式下,我们新增了 SIMD跳转指令,因此需要将开源RISC处理器 架构下的异常控制单元做一定的扩展。(3) SIMD乘除法运算单元SIMD乘除法运算单元支持标量_标量和向量_向量两种模式的乘除法运算,支持 4比特、8比特、16比特和32比特四种位宽模式的SIMD指令运算。在本发明中,我们对SIMD 乘除法运算单元采取可重构设计理念。在保证灵活性的同时,节约了硬件开销。同时本发 明优化了 SIMD乘除法运算单元数据通路,去除了通信多媒体领域不常用的32比特与32比 特相乘运算,引入了实用性更强的SIMD运算指令,于是有效提升了该运算单元的性能,减 小了相应的延迟等待。(4)扩展寄存器文件单元为了更好的发挥出SIMD指令在通信多媒体应用领域中的强大性能,在众核处理 器架构中减少处理器核对内存的访问以降低功耗,本发明引入了扩展的寄存器文件,将原 先的32个寄存器扩展为现在64个寄存器。同时为便于众核处理器架构下处理器核与路由 之间利用FIFO的通信效率,本发明将FIFO读端口和写端口映射到第63和64号寄存器中, 加快了 FIFO的通信效率。此外,由于本发明沿用开源RISC指令集架构,需要在指令集架构 中实现32个虚寄存器与64个实寄存器的映射。本发明提出了基于映射表的粗细粒度结合 的映射配置方法,在保证配置灵活性的同时也实现了映射规则的规范性和易用性。 综上所述,上述发明内容,提出了一种适用于未来众核处理器架构的,面向通信和 多媒体应用领域的SIMD处理器电路架构。通过对处理器关键模块的设计和SIMD指令的设 计,能够高效的实现多种通信和多媒体应用,做到通用性与高性能兼备。根据对本发明的初 步评估,可以在本发明方案中,高效实现多种通信内接收机纠错码算法,并且实现的性能指 标与面向特定应用的专用集成电路相差无几,实现了设计目标。附表说明表-1新型SIMD处理器电路架构输入输出信号说明。
表-2 SIMD移位模块支持SIMD指令一览。表-3 SIMD算术逻辑运算模块支持的SIMD指令。表-4新型SIMD处理器支持的SIMD指令一览。表-5寄存器扩展配置_复位指令一览。


图-1新型SIMD处理器SIMD指令运算模式示意图(一个32比特的寄存器可看做 8个4比特子寄存器,或者4个8比特子寄存器,或者2个16比特子寄存器,或者1个32比
特寄存器)
图-2 SIMD指令运算向量-标量模式示意图。
图-3 SIMD指令运算标量-标量模式示意图。
图-4面向通信多媒体应用的新型SIMD处理器流水线示意图。
图-5面向通信多媒体应用的新型SIMD处理器架构示意图。
图-6扩展寄存器单元设计示意图。
图-7 SIMD移位模块psll.o指令运算示意图。
图-8 SIMD乘除法运算单元工作模式示意图。
具体实施例方式根据发明内容中的方案,面向多媒体和通信多媒体应用的单指令多数据处理器电 路结构的具体实施方式
如下(1)指令集架构设计指令集包括开源RISC架构指令和SIMD指令两部分,本发明在原有开源RISC架构 指令集基础上,增加了 SIMD指令。为了便于记忆,增添的指令命名规则如下标量-标量类型xxx. d 表示32比特X 32比特指令,这类指令也就是开源RISC所支持的指令xxx. h 表示16比特X 16比特算术逻辑运算指令或32比特*16比特乘除法运算 指令,指令高六位是111100xxx. o表示8比特X8比特算术逻辑运算指令或16比特*16比特乘除法运算指 令,指令高六位是110100xxx. q 表示4比特X 4比特算术逻辑运算指令或8比特*8比特乘除法运算指令, 指令高六位是101100向量-标量类型pxxx. h 表示多对一模式下16比特X 16比特算术逻辑运算指令,指令高六位是 111100pxxx. o 表示多对一模式下的8比特X8比特算术逻辑运算指令或16比特X 16 比特MDU指令,指令高六位是111100pxxx. q 表示多对一模式下的4比特X4比特算术逻辑运算指令或8比特*8比特 乘除法运算指令,指令高六位是111100条件跳转,判断置位类型
xxx. o 表示8比特模式下的条件跳转和判断置位指令。在通信和多媒体应用领域,需要运算的数据格式通常为8比特,因此目前只实现8 比特模式下的条件跳转和判断置位指令。处理器支持的SIMD指令详见表-4。(2)关键模块设计SIMD处理器中关键模块的设计主要分为3个部分进行SIMD算术逻辑运算模块, SIMD移位模块,SIMD乘除法运算单元。i. SIMD算术逻辑运算模块灵活配置内部数据运算通路。SIMD算术逻辑运算模块 可配合指令实现下列四种SIMD运算模式。模式=00,4比特*8组模式=01,8比特*4组模式=10,16比特*2组模式=11,32比特组ii. SIMD移位模块除支持开源RISC架构下指令的移位指令,也支持SIMD运算模式 下移位指令。如下所示逻辑左移指令PSLL.o/PSLL. h (packed shift left logical)逻辑右移指令PSRL.o/PSRL. h (packed shift right logical)算术右移指令PSRA.o/PSRA. h (packed shift right arithmetic byte/word).图-7以psll. o为例,说明了移位运算情况,指令格式为psll. o rd,rt,sard为目标寄存器,rt为源寄存器,sa是移位的偏移量。iii. SIMD乘除法运算单元支持4种SIMD模式的乘法运算模式=00,4组8比特*8比特模式=01,2组16比特*16比特模式=10,1组32比特*16比特 模式=11,1组32比特*32比特图-8以两个操作数A = A3A2A1A0, B = B3B2B1B0为例,说明在各种模式下SIMD 乘除法运算单元的运算情况。SIMD乘除法运算单元采取三级流水线,通过对部分积的调度实现不同的运算模 式M 级产生 A3B3,A3B2. . . A0B0 共 16 个 16bit 部分积;A级不同模式下,对部分积采用不同的组合叠加方式,得到结果并进行乘加乘 减;W级写回寄存器。(3)扩展寄存器单元设计与先入先出队列(FIFO)寄存器地址映射为了更好的发挥出SIMD指令在通信多媒体应用领域中的强大性能,在众核处理 器架构中减少处理器核对内存的访问以降低功耗,本发明引入了扩展的寄存器文件,将原 先的32个寄存器扩展为现在64个寄存器,包含原先的32个核心寄存器和32个扩展寄存 器。如图_6所示。此外,由于本发明沿用开源RISC指令集架构,需要在指令中显式定义32 个虚寄存器与64个实寄存器的映射,通过配置指令实现对映射表进行实时配置,以充分利 用64个实寄存器。此外,本发明提出了基于映射表的粗细粒度结合的映射配置方法,在保 证配置灵活性的同时也实现了映射规则的规范性和易用性。关于具体的映射规则,请参加 表-5。因为本发明面向未来众核处理器架构,因此需要考虑到处理器核与众核网络的通信问题。在众核处理器中,处理器通过路由相互连接成一个大的NoC(Network-on-Chip)。 而处理器与路由通信的端口即为FIFO 口。FIFO通常采取异步FIFO,连接起路由时钟域和 处理器时钟域,通过一个读口和一个写口实现数据交换。传统的方法是将读口和写口映射 到内存地址空间中,通过对内存地址的访问来实现FIFO数据交换。这种做法的缺点是速度 慢首先需计算内存地址,然后再去寻址访问FIFO。另外,访存指令的功耗水平也较高。由 此,我们将FIFO的读端口和写端口映射到第63和64号实寄存器中,这样讲内存地址映射 改为寄存器地址映射,可以加快了 FIFO的通信效率,减少功耗开销。同时,我们为FIFO映 射关系专门增加快速配置与复位指令。请参加表_5。(4)架构综合设计此外,还需要针对SIMD指令设计译码模块、数据前推模块、流水线控制单元和处 理器异常控制单元,以保证对SIMD指令相关性的正确判断,保证指令的正常流水。完成上述四个阶段,就实现了整个单指令多数据处理器电路结构。本发明借鉴开 源RISC处理器架构,在其基础上增加了 SIMD指令,扩展寄存器文件,并将众核网络FIFO通 信地址映射到寄存器文件中。通过这些改进,本发明可以很好地适用于众核处理器,应用于 通信和多媒体领域。根据仿真结果,本方案能够适用于Reed-Solomon纠错编解码,LDPC纠 错编解码,DVB-H, DVB-T以及HDTV等通信多媒体应用领域。附表 表-1新型SIMD处理器电路架构输入输出信号说明 表-2 SIMD移位模块支持SIMD指令一览
表-3 SIMD算术逻辑运算模块支持的SIMD指令 表-4新型SIMD处理器支持的SIMD指令一览
。 表-5寄存器扩展配置_复位指令一览。
权利要求
一种面向通信和多媒体应用的单指令多数据处理器电路结构,其特征在于,由SIMD整数运算单元,流水线控制单元,处理器异常控制单元,SIMD乘除法运算单元,扩展寄存器文件单元共计五个模块组成;SIMD整数运算单元,支持SIMD指令与普通RISC指令两种模式的运算,其中SIMD指令定义为,单条指令对多个数据同时运算;流水线控制单元,适用于SIMD指令与普通指令模式下,对指令流水中的数据相关、控制相关和结构相关进行判定并对指令流水做相应的调整;处理器异常控制单元,适用于SIMD指令与普通指令模式下,对指令流水中的中断、异常指令情况作相应处理;SIMD乘除法运算单元,负责普通指令和SIMD指令的标量-标量乘除法运算、乘加乘减运算,以及SIMD指令模式下向量-标量乘法运算;适用于SIMD运算的扩展寄存器文件单元,在现有开源RISC架构寄存器文件基础上,将地址空间由32个扩展到64个,并添加相应的映射表配置映射关系,适用于SIMD指令运算,增加SIMD指令的并行计算能力;当指令被发射到SIMD处理器内核中,首先被SIMD整数运算单元获取,经过其内部的译码模块得到相应控制信号;控制信号将传输到流水线控制单元和处理器异常控制单元,得到相应的流水线控制操作;同时根据具体的指令,SIMD乘除法单元将获得输入操作数与操作模式信号,给出运算结果;扩展寄存器文件单元将根据每条指令的需求读出或写入具体寄存器单元的值。
2.根据权利要求1所述的电路结构,其特征在于,SIMD整数运算单元可以同时兼容开 源精简指令集(RISC)架构指令与新添加的SIMD指令,它由取指模块,译码模块,SIMD移位 模块,SIMD算术逻辑运算模块,逻辑1计数模块,数据前推模块,数据获取模块,数据对齐模 块组成;其中取指模块根据发射的指令判断是否取入下一条指令,当流水线控制模块要求插入空指 令或重复执行上一条指令时,取指模块不接受下一条指令输入;当完成取值后,指令将流入 译码模块;译码模块根据指令编码判断为普通的RISC架构指令或者为添加的SIMD运算指 令,产生相应的控制信号;之后指令将流入数据运算通路,根据指令和译码信号产生的结果 访问适用于SIMD指令的扩展寄存器文件单元取得操作数,或者通过数据获取模块访问内 存获得操作数,之后通过SIMD算术逻辑运算模块、移位模块、逻辑1计数模块或者SIMD乘 除法模块对数据进行运算;流水线控制单元和处理器异常控制单元根据指令和译码模块产 生的控制信号,判断指令的相关性和合法性,对指令流水线做相应调整;数据的运算结果通 过数据对齐模块按照规范的存储格式重新存放,然后根据指令写入SIMD寄存器文件模块 或者写入内存;最后,为了适用于多核互联,增添相应的与多核网络路由器通信的先入先出 队列(FIFO)端口,并且将FIFO端口映射到扩展的寄存器文件地址空间中,加快处理器与 FIFO通信的效率。
3.根据权利要求1所述的电路结构,其特征在于,SIMD算术逻辑运算单元、乘除法运算 单元和数据移位单元同时支持开源RISC架构下乘除法运算指令执行,也支持新添加SIMD 指令的执行;SIMD模式分为4比特,8比特,16比特和32比特四种位宽模式,其中32比特 模式为开源RISC架构指令集运算模式;在SIMD模式下,一个32比特的寄存器看做8个4比特子寄存器,或者4个8比特子寄存器,或者2个16比特子寄存器;SIMD指令利用已有 的32比特寄存器位宽,在不同位宽模式下将其看成多个特定位宽的数据,实施单条指令对 多个数据的并行操作。除依据数据的位宽分类外,SIMD指令根据参与运算数据逻辑关系,分为标量_标量模 式和向量-标量模式;标量_标量模式下,在SIMD算术逻辑运算单元、乘除法运算单元和数 据移位单元中,数据根据对应比特位确定逻辑关系参加运算,为一对一的形式;在向量_标 量模式下,数据的逻辑关系由指令显式指定,实现多对一的运算;同时,配套增加向量-标 量模式下的寄存器传输,数据访问指令以及相应的跳转控制指令;此外,SIMD算术逻辑运算单元、乘除法运算单元采用可重构设计方法,最大程度地复用 硬件,保证了灵活性的同时节省了硬件开销。
4.根据权利要求1所述的电路结构,其特征在于,寄存器文件单元由开源RISC架构下 的32个增加到64个;其中第63号和第64号寄存器作为FIFO的映射端口 ;在开源RISC架 构下,寄存器文件地址寻址域支持最多32个寄存器,因此采取映射表来实现32个虚寄存器 地址与64个实寄存器间的逻辑关系映射;通过显式地通过指令配置映射表,实现虚实寄存 器间的映射关系切换;配置指令分为细粒度配置与粗粒度配置结合的方式;前者用以修改 单个虚寄存器映射关系,后者用以同时修改4组、8组、16组、32组虚寄存器的映射关系;通 过细粒度和粗粒度配置指令结合的方式,方便地配置虚实寄存器映射关系。
5.根据权利要求1所述的电路结构,其特征在于,流水线控制单元为面向SIMD指令的 控制逻辑,内部采用实寄存器地址判断相关性,实现对指令流水的正确控制,处理器异常控 制模块负责开源RISC指令与SIMD指令中的指令异常,对及时给予处理。
6.根据权利要求1至5之一所述的电路结构,其特征在于SIMD处理器为面向众核片 上网络的新型架构,在扩展寄存器文件地址中预留两个寄存器地址作为FIFO的映射地址; FIFO为先入先出电路逻辑,负责跨时钟域的数据交换;FIFO将处理器核与片上网络路由器 相连,负责不同处理器核之间的数据收发;将FIFO映射到寄存器地址空间中,以减少访存 次数,减少通过FIFO通信的延迟等待时间,提高处理器核之间的通信效率;另外,将FIFO的 读口映射为第63号实寄存器,将FIFO的写口映射为第64号实寄存器,通过调用寄存器地 址空间,以实现对FIFO的快捷访问,减少FIFO通信开销。
全文摘要
本发明属于高性能并行计算处理器技术领域,具体为一种面向通信和多媒体应用的单指令多数据处理器电路结构。包括SIMD整数运算单元、流水线控制单元、处理器异常控制单元、SIMD乘除法运算单元和适用于SIMD运算的扩展寄存器文件单元。其中,SIMD整数运算单元,在常规整数运算单元基础上增加SIMD相关数据通路,实现单条指令同时对多个数据进行运算;寄存器文件地址空间由32个扩展到64个,添加相应的映射表配置映射关系,构成适用于SIMD运算的扩展寄存器文件单元。本发明根据现有的开源精简指令集处理器架构,从SIMD角度挖掘指令内部的并行性,提出了一套面向众核片上网络的处理器架构。经过验证,运算效率显著提升。
文档编号G06F15/80GK101876892SQ201010179340
公开日2010年11月3日 申请日期2010年5月20日 优先权日2010年5月20日
发明者曾晓洋, 权衡, 肖瑞瑾, 虞志益 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1