适于矩阵求逆的超长指令集微处理系统的制作方法

文档序号:6481472阅读:269来源:国知局
专利名称:适于矩阵求逆的超长指令集微处理系统的制作方法
技术领域
本发明属于数字通信及数字信号处理领域,涉及一种适用于矩阵求逆的超长 指令集(VLIW)微处理系统的体系结构。
背景技术
在许多数字通信及数字信号处理系统中都需要用到大量的矩阵运算,其中运 算量最大的操作是矩阵求逆。为了满足矩阵求逆操作实时应用的需求,因而对整 个处理系统硬件实现提出了非常高的要求。目前主流的处理系统有三种实现方 式, 一种是采用通用的DSP芯片作为平台,用软件编程的方式实现相关的处 理。第二种是采用FPGA芯片,以状态机电路作为数据流控制部件配合相关的运 算电路,完全以硬件的方式实现所需的处理算法。第三种是采用超长指令集的微 处理系统。其中
以DSP器件为核心构成的处理系统,所能实现的性能指标依赖DSP器件的 性能, 一旦所要求的运算数据流量超出芯片的指标,实现起来就变得比较复杂。 虽然可以采用多片DSP处理器并行处理的解决方案,但并行处理的程度不会很 高,同时各个DSP处理器之间的数据共享与通信也是必须要解决的问题。此外 每片DSP芯片还必须配备相关的数据/程序存储器和I/O接口器件,因此系统结 构和电路设计的复杂程度大幅提高,造成PCB板布局/布线难度大、系统的功耗 和体积大等缺点。
采用FPGA器件完全以硬件的方法构建DSP处理系统,能够充分利用 FPGA内部的电路资源,开发出专门的运算部件,在单片FPGA芯片内实现高度 并行化的处理。但这种方法的缺点是电路设计非常复杂,能够实现的运算单 一,运算参数难以更改,复用性差, 一旦算法改变,就必须重新设计全部电路。 另外由于运算中全部数据流均由硬件状态机控制,因而只能实现数据流程相对简 单的处理。
超长指令集微处理系统,目前主要有两种体系结构 一是单寄存器文件结
构,如图l所示;二是分族寄存器文件结构,如图2所示。这两种结构的主要区
别在于寄存器单元的构成形式不同,其中单寄存器文件结构是由所有的运算单元
4共享一个单独的寄存器文件,该结构的优点是可以减少各个运算单元之间的数据通信,进而提高处理速度,但它的不足之处在于电路规模大,占用资源多;分族寄存器文件结构的每个运算单元都有自己本地的寄存器单元,这种结构的优点在于电路规模小,但是它需要花费较多的时钟周期来完成各个运算单元之间的数据通信。

发明内容
本发明的目的在于克服上述已有处理系统的不足,提供一种适于矩阵求逆的超长指令集微处理系统,以减小电路规模和占用资源,以及各个运算单元之间数据通信的时钟周期,提高运算速度。
为实现上述目的,本发明的超长指令集微处系统,包括四组运算单元、全局寄存器单元、两组本地寄存器单元、数据地址产生单元、程序定序单元和数据输入/输出存储器单元,其中
数据输入/输出存储器单元与四组运算单元之间连接有全局寄存器单元,用于为四组运算单元提供操作数和暂存运算结果数据,以及与输入/输出存储器单元交换数据;
第一组运算单元1与第二组运算单元2之间连接有第一本地寄存器单元A,用于暂存第一组运算单元1和第二组运算单元2的中间结果数据;
第三组运算单元3与第四组运算单元4之间连接有第二本地寄存器单元B,用于暂存第三组运算单元3和第四组运算单元4的中间结果数据。
所述的全局寄存器单元由16个16-Bit的寄存器组成。
所述的第一本地寄存器单元A与第二本地寄存器单元B结构相同,分别由8个16-Bit的寄存器组成。
所述的四组运算单元用于完成操作数的算术、逻辑和乘法和除法运算;所述的数据地址产生单元实现算术运算结果在数据输入/输出存储器单元
中存取地址的寻址,以及与寄存器单元进行数据交换的地址寻址;所述的程序定序单元用于控制所述各单元的程序执行;所述的数据输入/输出存储器单元用于高速缓存系统中的局部数据。本发明由于在数据输入/输出存储器单元与四组运算单元之间连接有全局寄
存器单元,可以有效地减少各个运算单元之间的数据通信,从而提高处理速度;同时由于在第一组运算单元1与第二组运算单元2之间连接有第一本地寄存器单元A,在第三组运算单元3与第四组运算单元4之间连接有第二本地寄存器单元B,可以有效地减少电路规模和占用资源。


图1为现有的单寄存器文件结构图2为现有的分族寄存器文件结构图3为本发明的寄存器堆互连的多族寄存器结构图4为本发明的由寄存器堆互连的多族寄存器构成的超长指令集微处理系统结构框图5为本发明采用的运算单元结构框图6为本发明采用的数据地址产生单元的变址寻址方式示意图。
具体实施例方式
下面结合附图对本发明进行详细说明。
参照图3和图4,本发明适于矩阵求逆运算的超长指令集微处理系统主要由四组运算单元、全局寄存器单元、第一本地寄存器单元A、第二本地寄存器单元B、数据地址产生单元、程序定序单元和数据输入/输出存储器单元构成。其中
四组运算单元,主要完成操作数的算术、逻辑、乘法和除法运算。其在FPGA中有两种实现方式, 一种是采用FPGA内部可配置宏模块来构建,另一种是自行设计各种所需运算电路,由FPGA内部的可编程逻辑单元来实现。前一种实现方式的优点在于电路设计工作量小,运算速度高,但要求所选FPGA芯片具备相关的宏模块资源,这只有采用先进生产工艺制造的少数新型号芯片才具备。后一种实现方式电路设计复杂程度较高,运算速度相对较慢,但其对FPGA的选择无特殊要求,可以在低成本的FPGA中实现,因此适用于大规模生产的产品中。本发明采用的运算单元如图5所示,它包括逻辑运算模块、移位运算模块、超前进位加法模块、乘法器控制模块、除法器模块、状态信号产生模块、数据控制模块7个模块。所有的运算单元操作都只能从寄存器单元中读取数据,完成算术逻辑运算。运算单元不允许直接访问外部存储单元。逻辑运算模块用于实现操作数的各种逻辑运算,该模块的输入操作数采用16-Bit,输出结果为16-Bit。移位运算模块用于实现运算过程中的移位操作运算,该模块的输入操作数采用16-Bit,输出结果为16-Bit。运算单元中有一个17-bit的超前进位加法模块,主要完成数据的加/减运算,该模块的输入操作数采用16-Bit,输出结果为16-Bit。乘法控制模块完成16-bit的有符号数乘法,该模块的输入操作数采用16-Bit,输出结果为32-Bit。除法器模块主要完成有符号数的除法操作,该模块的输入操作数采用16-Bit,输出结果为16-Bit。状态信号产生模块根据计算结果产生相应的标志位结果为O用"Z"表示、结果为负用"N"表示、结果进位用"C"表示、运算结果溢出用"V"表示。数据控制模块根据操作指令选择相应的操作单元和操作数,并根据操作类型从各运算单元的运算结果中选择相应的结果作为逻辑单元的输出,其中位逻辑运算、移位运算、加/减运算结果存入寄存器AR中。乘法控制电路与加法器电路组合在一起构成了一个典型的移位式乘法器,为了尽可能地提高乘法的运算速度,乘法控制电路采用了修正的Booth电路,乘法运算结果的高16位存入乘积结果寄存器的高位MH中,低16位存入乘积结果寄存器的低位ML中。
全局寄存器单元,主要用于为运算单元提供操作数和暂存运算结果数据,与输入/输出存储器单元交换数据,同时它还是运算单元与输入/输出存储器单元之间进行数据交换的"桥梁"。该全局寄存器单元由16个16-Bit的数据寄存器组成,通过寄存器组名R00-R15进行访问。第一本地寄存单元A用于暂存第一组运算单元1和第二组运算单元2的中间运算结果,其由8个16-BU的数据寄存器组成,通过寄存器组名R16-R23进行访问;第二本地寄存单元B用于暂存第三组运算单元3和第四组运算单元4的中间运算结果,其由8个16-Bit的数据寄存器组成,通过寄存器组名R24-R31进行访问。
数据地址产生单元,负责实现操作数和运算结果在寄存器单元中的寻址,以及全局寄存器单元与数据输入/输出存储器单元进行数据交换时的地址寻址,其包括地址索引寄存器和地址更改寄存器,每当执行完一次存储器存取后,将地址更改寄存器的内容与地址索引寄存器的内容相加,并将相加得到的结果回写到地址索引寄存器中,该地址索引寄存器中的内容即为下一次存储器访问的实际地址, 一共设置了4套地址生成寄存器组,分别由地址索引寄存器IO+更改寄存器M0、索引寄存器I1+更改寄存器M1、索引寄存器I2+更改寄存器M2、索引寄存器13 +更改寄存器M3获得。程序定序单元,主要用以控制专用指令集微处理系统程序的执行,用它来提供下一条指令在程序存储器中的地址。其具体实现的功能有
(1) 程序指令顺序执行;
(2) 程序的无条件/有条件跳转,该程序的有条件跳转的判定依据为运算单元中的4种状态标志"Z" 、 "N" 、 "C"和"V",以及由此派生的"大于"、"小于"、"大于等于"和"小于等于"4种条件,但该4种条件的条件跳转指令必须紧跟在一条减法指令之后;
(3) 子程序的调用与返回,该调用与返回设置有4级返回地址的堆栈,自动
保存子程序的返回地址,允许4级子程序嵌套;
(4) 无附加开销程序循环,该程序循环有专门的硬件电路记录循环体的起始和终止地址,循环的结束条件为循环计数器值递减为"0",循环体允许两重循环嵌套;
(5) 程序休眠及外部事件唤醒,该功能主要为程序执行与外部实时事件之间提供特定的同步机制,以此来实现实时的数字信号处理应用。
数据输入/输出存储器单元,是针对数字通信和数字信号处理的应用特点及输入/输出数据结构进行设计。由于数字通信及数字信号处理系统的实时性要求,为了保证处理时间,采用输入数据存储器和输出数据存储器两页面乒乓操作的双端口存储器形式来构建该专用指令集微处理系统的相关存储器,以流水线的方式来实现原始数据存储一存储数据处理一处理后数据输出的工作,且所有存储器均为双端口形式,从而保证实时数据输入/输出的连续性。
需要特别说明的是超长指令集微处理系统在实际应用时主要由FPGA器件来实现,而且往往是以多个运算单元并行处理的方式来构成高速实时的信号处理系统。为了最大限度地开发指令集的并行性,需要尽可能地降低每一个功能单元的电路复杂程度。本发明中超长指令集微处理系统的指令集及其相关电路体系结构在设计上也考虑了电路实现的规模问题,但在设计时主要考虑的是该设计的可重复利用性,即要使设计具有一定的通用型。因此电路结构和规模针对某一具体应用而言并不是最优的,需要根据具体的应用在原有指令集和相关的电路实现结构上进行进 步的优化与裁减,以达到针对具体应用而"量身定做"的目标。
本发明系统的传输关系和工作过程如下-全局寄存器单元与数据输入/输出存储器单元、四组运算单元之间双向连接,其用于为运算单元提供操作数和暂存运算结果数据;第一本地寄存器单元A与第一组运算单元1和第二组运算单元2双向连接,用于暂存第一组运算单元1和第二组运算单元2的中间结果数据;第二本地寄存器单元B与第三组运算单元3和第四组运算单元4双向连接,用于暂存第三组运算单元3和第四组运算单元4的中间结果数据;程序定序单元分别与全局寄存器单元、两组本地寄存器单元、数据地址产生单元和四组运算单元单向连接,用于输出下一条执行指令的地址。
程序定序单元接收程序指令后进行指令译码,并同时向全局寄存器单元、第一本地寄存器单元A、第二本地寄存器单元B、数据地址产生单元和四组运算单元单向发送指令代码;数据地址产生单元根据程序定序单元发送的指令对寄存器迸行寄存器名寻址,对输入/输出存储器单元进行变址寻址;全局寄存器单元从输入/输出存储器中读取相应的操作数,此操作数送往四组运算单元进行相应运算;运算的中间结果送回全局寄存器单元或两组本地寄存器单元,并将最终运算结果存入输入/输出存储单元中,以便输出。
以上仅为本发明的一个实例,并不构成对本发明的任何限制,显然在本发明的构思和精神下,任何人均可做出不同的改变,但这些均在本发明的保护之列。
9
权利要求
1.一种适于矩阵求逆的超长指令集微处理系统,包括四组运算单元、全局寄存器单元、两组本地寄存器单元、数据地址产生单元、程序定序单元和数据输入/输出存储器单元,其特征在于数据输入/输出存储器单元与四组运算单元之间连接有全局寄存器单元,用于为运算单元提供操作数和暂存运算结果数据,以及与输入/输出存储器单元交换数据;第一组运算单元(1)与第二组运算单元(2)之间连接有第一本地寄存器单元(A),用于暂存第一组运算单元(1)和第二组运算单元(2)的中间结果数据;第三组运算单元(3)与第四组运算单元(4)之间连接有第二本地寄存器单元(B),用于暂存第三组运算单元(3)和第四组运算单元(4)的中间结果数据。
2. 根据权利要求1所述的超长指令集微处理系统,其特征在于全局寄存器单元由16个16-Bit的寄存器组成。
3. 根据权利要求1所述的超长指令集微处理系统,其特征在于第一本地寄存器单元(A)与第二本地寄存器单元(B)结构相同,分别由8个16-Bit的寄存器组成。
4. 根据权利要求1所述的超长指令集微处理系统,其特征在于四组运算单元,包括逻辑运算模块用于实现操作数的各种逻辑运算,该模块的输入操作数采用16陽Bit,输出结果为16-Bit;移位运算模块用于实现运算过程中的移位操作运算,该模块的输入操作数采用16-Bit,输出结果为16-Bit;超前进位加法模块用于完成数据的加/减运算,该模块的输入操作数采用16-Bit,输出结果为16-Bit;乘法器控制模块用于实现有符号数乘法,该模块的输入操作数采用16-Bit, 输出结果为32-Bit;除法器模块用于实现有符号数除法,该模块的输入操作数采用16-Bit,输出结果为16-Bit;状态信号产生模块根据所述计算结果产生相应的状态标志位;数据控制模块根据操作码选择相应的操作单元和操作数。
5. 根据权利要求1所述的超长指令集微处理系统,其特征在于全局寄存器单元分别与数据输入/输出存储器单元和四组运算单元双向连接。
6. 根据权利要求1所述的超长指令集微处理系统,其特征在于第一本地寄存器单元(A)分别与第一组运算单元(1)和第二组运算单元(2)双向连接,第二本地寄存器单元(B)分别与第三组运算单元(3)和第四组运算单元(4)双向连接。
7. 根据权利要求1所述的超长指令集微处理系统,其特征在于所述的数据地址产生单元,包括地址索引寄存器和地址更改寄存器,每当执行完一次数据输入/输出存储器存取后,将地址更改寄存器的内容与地址索引寄存器的内容相加,并将相加得到的结果回写到地址索引寄存器中,该地址索引寄存器中的内容即为下一次数据输入/输出存储器访问的实际地址。
8. 根据权利要求1所述的超长指令集微处理系统,其特征在于数据输入/输出存储器单元包括输入数据存储器区和输出数据存储器区两部分,每一部分均由两页面乒乓操作的双端口存储器构成,依次实现输入数据与处理后数据的高速实时输入-处理-输出。
9. 根据权利要求1所述的超长指令集微处理系统,其特征在于所述的程序定序单元分别与全局寄存器单元、两组本地寄存器单元、数据地址产生单元和四组运算单元单向连接,用于输出下一条执行指令的地址。
全文摘要
本发明公开了一种适于矩阵求逆的超长指令集微处理系统,主要解决现有的电路规模大,运算速度慢的问题。该系统包括四组运算单元、全局寄存器单元、两组本地寄存器单元、数据地址产生单元、程序定序单元和数据输入/输出存储器单元,其中数据输入/输出存储器单元与四组运算单元之间连接有全局寄存器单元,为运算单元提供操作数和暂存运算结果;第一组运算单元(1)与第二组运算单元(2)之间连接有第一本地寄存器单元(A),第三组运算单元(3)与第四组运算单元(4)之间连接有第二本地寄存器单元(B),用于暂存相应运算单元的中间结果。本发明具有处理速度快和电路规模小的优点,可用于数字通信及数字信号处理。
文档编号G06F9/38GK101667114SQ20091002417
公开日2010年3月10日 申请日期2009年9月30日 优先权日2009年9月30日
发明者刘仍稳, 犁 张, 李双飞, 赞 殷, 石光明, 雯 罗 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1