一种协处理器的制作方法

文档序号:6371346阅读:114来源:国知局
专利名称:一种协处理器的制作方法
技术领域
本发明涉及集成电路设计领域,具体涉及一种实现可重构浮点矩阵算法的协处理器。
背景技术
随着科学技术的进步,人们对计算性能的要求越来越高,高性能浮点矩阵算法越来越广泛地应用于媒体处理、科学计算以及工业控制等领域。针对高性能浮点矩阵算法的ASIC (Application Specific Integrated Circuit,专用集成电路)设计,存在设计周期 长、成本高、灵活性和可扩展性差的问题。现有的通用处理器,包括CPU (Central Processing Unit,中央处理器)和DSP (Digital Signal Processing,数字信号处理),也可以完成高性能浮点矩阵算法的实现,但是存在两个方面的问题第一是通用处理器为了实现通用性,结构较为复杂,用于浮点矩阵运算需要付出较大的功耗和面积代价;第二是通用处理器主要面向标量计算设计,同时由于“存储墙”问题的存在,使得浮点矩阵算法在通用处理器的运算需要付出较长的时间代价。

发明内容
为了克服现有处理器在浮点矩阵运算领域的不足,本发明旨在提出了一种结构简单、配置灵活、扩展性强的可应用于重构浮点矩阵算法的协处理器。根据本发明实施例的协处理器,包括以下部分外部设备接口,用于连接外部设备;以及协处理器电路,用于进行协处理操作,其中,协处理器电路进一步包括输入输出控制模块,用于通过外部设备接口与外部设备进行数据交互;存储模块,用于数据存储;可重构协处理器控制器模块,用于根据存储模块内的指令产生控制信号,控制浮点运算单元阵列进行操作;以及浮点运算单元阵列,用于接收控制信号,并根据控制信号从存储模块中读入源操作数,并将计算结果存入存储模块中。另外,根据本发明上述实施例的协处理器还可以具有如下附加的技术特征在本发明的一个实施例中,夕卜部设备接口进一步包括输入时钟信号端,用于为协处理器提供工作时钟;输入复位信号端,用于为协处理器的存储模块恢复初始状态;数据输入输出总线端,用于统一的模块内外数据交互;DMA输入输出总线端,用于集中的模块内外数据交互;以及输出中断信号端,用于协处理器向外部设备发送中断请求。在本发明的一个实施例中,输入输出控制模块进一步包括总线控制器模块,用于解析数据输入输出总线信号协议,通过外部总线进行统一的模块内外数据交互;DMA控制器模块,用于直接存储器数据存取,通过DMA总线进行集中的模块内外数据交互;以及中断信号产生模块,用于判断浮点矩阵算法执行完毕,向外部设备发送中断请求信号。在本发明的一个实施例中,存储模块进一步包括可重构指令队列存储模块,用于存储描述浮点矩阵算法执行的二进制指令;局部寄存器堆模块,用于存储浮点运算单元阵列中运算单元计算所需的源操作数以及计算结果数据;控制寄存器,用于存储外部设备对协处理器的控制信息;以及状态寄存器,用于存储协处理器的状态信息。在本发明的一个实施例中,可重构协处理器控制器模块,用于从可重构指令队列存储模块中依次读取指令,对指令进行译码产生控制信号,并将控制信号发送到浮点运算单元阵列,控制运算单元进行运算操作;可重构协处理器控制器模块从控制寄存器中读出外部设备对协处理器的控制信息,并控制协处理器执行浮点矩阵算法二进制程序的开始、中间状态、结束以及产生中断等过程;可重构协处理器控制器模块监控协处理器执行浮点矩阵算法二进制程序的状态,并将状态信息存储到状态寄存器中。 在本发明的一个实施例中,浮点运算单元阵列进一步包括第一浮点乘加单元,用于完成浮点操作数加减类型的运算;第二浮点乘加单元,用于完成浮点操作数乘法类型的运算;第三浮点乘加单元,用于完成浮点操作数绝对值类型的运算;第四浮点乘加单元,用 于完成浮点操作数乘加类型的运算;浮点除法单元,用于完成浮点操作数除法类型的运算;浮点开方单元,用于完成浮点操作数开方类型的运算;浮点比较单元,用于完成浮点操作数比较大小类型的运算;以及选择单元,用于根据控制信号在两个浮点操作数中选择其中一个输出类型的运算。在本发明的一个实施例中,协处理器还包括交叉互连开关,浮点运算单元阵列与局部寄存器堆模块通过交叉互连开关相连接;交叉互连开关包括与可重构协处理器控制器相连接的第一读写端口,当运算中需要常数量或者立即数量作为浮点运算单元的源操作数时,由可重构协处理器控制器通过第一读写端口写入局部寄存器堆中,可重构协处理器控制器可以通过第一读写端口读出浮点运算单元计算的结果值;交叉互连开关包括与输入输出控制模块相连接的第二读写端口,外部设备可以通过第二读写端口将数据写入局部寄存器堆中,也可以通过第二读写端口读出浮点运算单元计算的结果值。本发明所述的可重构浮点矩阵算法的协处理器电路与现有技术相比较具有以下优点和有益效果(I)相比于定点数据,浮点数据支持的数据动态范围更大,能够提供更高的计算精度,所述可重构浮点矩阵算法协处理器可以根据要求配置支持的数据类型为单精度或者双精度浮点操作数;(2)浮点矩阵算法运算速度快,可重构浮点矩阵算法协处理器针对浮点矩阵算法的特点,采用并行计算的方式来加速浮点矩阵算法的执行;(3)具有较大的灵活性,可重构浮点矩阵算法协处理器可以面向各种不同的浮点矩阵算法,用户在需要更换算法时,只需将算法编码成协处理器可执行的二进制代码并通过外部接口输入进协处理器即可,而不必更换芯片;(4)具有较强的扩展性,在需要提升可重构浮点矩阵算法协处理器的性能时,可以通过增加浮点运算单元阵列中的运算部件的数量实现,无需变更整个协处理器电路的体系结构,只需对其他相关部件进行简单扩展即可。本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中图I是本发明的协处理器的结构框图;图2是本发明的协处理器的结构示意图;图3是本发明的浮点运算单元阵列及局部寄存器堆模块互连结构图;图4是本发明的控制寄存器区段示意图;以及图5是本发明的状态寄存器区段示意图。
具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。如图I所示,本发明的协处理器包括用于连接外部设备的外部设备接口 I和用于进行协处理操作的协处理器电路2。其中,协处理器电路2进一步包括输入输出控制模块21、存储模块22、可重构协处理器控制器模块23以及运算单元阵列24。图2中显示了本发明的协处理器的更多细节。本发明的协处理器中,具体地,外部设备接口 I进一步包括输入时钟信号端11,用于为协处理器提供工作时钟;输入复位信号端12,用于为协处理器的存储模块22恢复初始状态;数据输入输出总线端13,用于统一的模块内外数据交互,包括内部寄存器和外部存储器、外部处理设备之间的数据交互;DMA输入输出总线端14,用于集中的模块内外数据交互,包括内部存储器和外部存储器之间大块连续的数据交互;以及输出中断信号端15,用于协处理器向外部设备发送中断请求。输入输出控制模块21用于通过外部设备接口 I与外部设备进行数据交互。输入输出控制模块21包括总线控制器模块211、DMA控制器模块212和中断信号产生模块213 ;其中总线控制器模块211用于解析数据输入输出总线13的信号协议,通过外部总线进行统一的模块内外数据交互,包括内部寄存器和外部存储器、外部处理设备之间的数据交互;DMA控制器模块212用于直接存储器数据存取,用于集中的模块内外数据交互,包括内部存储器和外部存储器之间大块连续的数据交互。DMA控制器模块212中包含有源地 址寄存器、目标地址寄存器和数据大小寄存器。外部设备通过将外部存储器中数据起始地址写入源地址寄存器,将数据在存储模块22中的地址写入目标地址寄存器,数据大小写入数据大小寄存器,并发起DMA请求来启动并完成数据从外部存储器到协处理器中存储模块22的传输;协处理器将计算结果在存储模块22中存储的起始地址写入源地址寄存器,将数据将要传输到外部存储器中的地址写入目标地址寄存器,将结果数据大小写入数据大小寄存器,并发起DMA请求来启动并完成结果数据从协处理器到外部存储器的传输;中断信号产生模块213用于判断浮点矩阵算法执行完毕,向外部设备发送中断请求信号;描述浮点矩阵算法的二进制指令队列的最后一条指令必须是结束指令,当可重构协处理器控制器模块23执行到本条指令时,将计算结束状态位写入存储模块22中的状态寄存器224中;中断信号产生模块213通过判断状态寄存器224中的计算结束状态位来判断浮点矩阵算法是否执行完毕,当判断浮点矩阵算法执行完毕时,产生中断请求信号发送到外部设备。存储模块22用于浮点矩阵算法协处理器的数据存储,存储模块22中的存储空间都是统一编址,便于和外部设备之间的数据交互;存储模块22包括可重构指令队列存储模块221、局部寄存器堆模块222、控制寄存器223和状态寄存器224 ;其中,可重构指令队列存储模块221用于存储描述浮点矩阵算法执行的二进制指令,采用FIFO (First In Fist Out,先进先出)的队列形式;协处理器通过控制浮点运算单元阵列执行二进制指令队列完成浮点矩阵算法的运算;二进制指令初始存储在系统中的外部存储器中,有两种方法输入到可重构指令队列存储模块221中第一种方法是外部设备通过数据输入输出总线13将描述浮点矩阵算法执行的二进制指令输入到可重构指令队列存储模块221中;第二种方法是外部设备将描述浮点矩阵算法执行的二进制指令在外部存储器空间中的存储地址和存储长度输入到DMA控制器模块212中,由DMA控制器通过DMA输入输出总线14将描述浮点矩阵算法执行的二进制指令从外部存储器输入到可重构指令队列存储模块221中;当需要转换算法的时候,只需通过上述两种方法将描述新算法的二进制代码输入到可重构指令队列存储模块221即可;局部寄存器堆模块222用于存储浮点运算单元阵列24中运算单元计算所需的源操作数以及计算结果数据;如图3所示,局部寄存器堆模块222由20个分布式寄存器堆组成,分布式寄存器堆的写端口连接到互连交叉开关网络,在每一个时钟周期由可重构协处理器控制器模块23控制写入的数据;分布式寄存器堆的读端口连接到浮点运算单元阵列24中的运算模块,其中,LRFOl、LRF02、LRF03连接到第一浮点乘加单元241,为第一浮点乘加单元241提供三个源操作数;LRF04、LRF05、LRF06连接到第二浮点乘加单元242,为第二浮点乘加单元242提供三个源操作数;LRF07、LRF08、LRF09连接到第三浮点乘加单元243,为第三浮点乘加单元243提供三个源操作数;LRF10、LRFlI、LRF12连接到第四浮点乘加单元244,为第四浮点乘加单元244提供三个源操作数;LRF13、LRF14连接到浮点除法单元245,为浮点除法单元245提供两个源操作数;LRF15连接到浮点开方单元246,为浮点开方单元246提供一个源操作数;LRF16、LRF17连接到浮点比较单元247,为浮点比较单元247提供两个源操作数;LRF18、LRF19、LRF20连接到选择单元248,为选择单元248提供三个源操作数;分布式寄存器堆的大小可以根据算法的需要配置,在协处理器的一种实现中,单个分布式寄存器堆设计容量为1024位,配置成双精度浮点算法的组织形式为16 X 64位,配置成单精度浮点算法的组织形式为32X32位;当需要对浮点运算单元阵列进行扩展时,相应的局部寄存器堆模块也需要进行扩展,通过增加分布式寄存器堆的数量和扩展交叉开关网络的网格数目来实现;控制寄存器223用于存储外部设备对协处理器的控制信息;控制寄存器223是一 个32位寄存器,外部设备可通过数据输入输出总线13进行读写操作;控制寄存器223域描述如图4所示,在协处理器的一种实现中,各个域参数及功能描述如下表所示
权利要求
1.一种协处理器,其特征在于,包括 外部设备接口,用于连接外部设备;以及 协处理器电路,用于进行协处理操作,其中,所述协处理器电路进一步包括 输入输出控制模块,用于通过外部设备接口与外部设备进行数据交互; 存储模块,用于数据存储; 可重构协处理器控制器模块,用于根据所述存储模块内的指令产生控制信号,控制浮点运算单元阵列进行操作;以及 所述浮点运算单元阵列,用于接收所述控制信号,并根据所述控制信号从所述存储模块中读入源操作数,并将计算结果存入所述存储模块中。
2.如权利要求I所述的可重构浮点矩阵算法协处理器,其特征在于,所述外部设备接口进一步包括 输入时钟信号端,用于为所述协处理器提供工作时钟; 输入复位信号端,用于为所述协处理器的所述存储模块恢复初始状态; 数据输入输出总线端,用于统一的模块内外数据交互; DMA输入输出总线端,用于集中的模块内外数据交互;以及 输出中断信号端,用于所述协处理器向所述外部设备发送中断请求。
3.如权利要求2所述的协处理器,其特征在于,所述输入输出控制模块进一步包括 总线控制器模块,用于解析数据输入输出总线信号协议,通过外部总线进行统一的模块内外数据交互; DMA控制器模块,用于直接存储器数据存取,通过DMA总线进行集中的模块内外数据交互;以及 中断信号产生模块,用于判断浮点矩阵算法执行完毕,向所述外部设备发送中断请求信号。
4.如权利要求3所述的协处理器,其特征在于,所述存储模块进一步包括 可重构指令队列存储模块,用于存储描述浮点矩阵算法执行的二进制指令; 局部寄存器堆模块,用于存储所述浮点运算单元阵列中运算单元计算所需的源操作数以及计算结果数据; 控制寄存器,用于存储所述外部设备对所述协处理器的控制信息;以及 状态寄存器,用于存储所述协处理器的状态信息。
5.如权利要求4所述的协处理器,其特征在于,所述可重构协处理器控制器模块,用于从所述可重构指令队列存储模块中依次读取指令,对所述指令进行译码产生控制信号,并将所述控制信号发送到所述浮点运算单元阵列,控制运算单元进行运算操作;所述可重构协处理器控制器模块从所述控制寄存器中读出所述外部设备对所述协处理器的控制信息,并控制所述协处理器执行浮点矩阵算法二进制程序的开始、中间状态、结束以及产生中断等过程;所述可重构协处理器控制器模块监控所述协处理器执行浮点矩阵算法二进制程序的状态,并将状态信息存储到所述状态寄存器中。
6.如权利要求5所述的协处理器,其特征在于,所述浮点运算单元阵列进一步包括 第一浮点乘加单元,用于完成浮点操作数加减类型的运算; 第二浮点乘加单元,用于完成浮点操作数乘法类型的运算;第三浮点乘加单元,用于完成浮点操作数绝对值类型的运算; 第四浮点乘加单元,用于完成浮点操作数乘加类型的运算; 浮点除法单元,用于完成浮点操作数除法类型的运算; 浮点开方单元,用于完成浮点操作数开方类型的运算; 浮点比较单元,用于完成浮点操作数比较大小类型的运算;以及 选择单元,用于根据所述控制信号在两个浮点操作数中选择其中一个输出类型的运笪
7.如权利要求6所述的协处理器,其特征在于,还包括交叉互连开关,所述浮点运算单元阵列与所述局部寄存器堆模块通过所述交叉互连开关相连接;所述交叉互连开关包括与所述可重构协处理器控制器相连接的第一读写端口,当运算中需要常数量或者立即数量作为浮点运算单元的源操作数时,由可重构协处理器控制器通过所述第一读写端口写入局部寄存器堆中,可重构协处理器控制器可以通过所述第一读写端口读出浮点运算单元计算的结果值;所述交叉互连开关包括与所述输入输出控制模块相连接的第二读写端口,所述外部设备可以通过所述第二读写端口将数据写入局部寄存器堆中,也可以通过所述第二读写端口读出浮点运算单元计算的结果值。
全文摘要
本发明提出一种协处理器,包括外部设备接口,用于连接外部设备;以及协处理器电路,用于进行协处理操作,其中,协处理器电路进一步包括输入输出控制模块,用于通过外部设备接口与外部设备进行数据交互;存储模块,用于数据存储;可重构协处理器控制器模块,用于根据存储模块内的指令产生控制信号,控制运算单元阵列进行操作;以及运算单元阵列,用于接收可重构协处理器控制器模块产生的控制信号,并根据控制信号从存储模块中读入源操作数,并将计算结果存入存储模块中。根据本发明的协处理器可应用于浮点矩阵运算,具有运算速度快、结构相对简单、配置灵活、扩展性强的优点。
文档编号G06F7/57GK102750127SQ201210193758
公开日2012年10月24日 申请日期2012年6月12日 优先权日2012年6月12日
发明者李兆麟, 李圣龙, 王芳 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1