CN101667114A - 适于矩阵求逆的超长指令集微处理系统 - Google Patents
适于矩阵求逆的超长指令集微处理系统 Download PDFInfo
- Publication number
- CN101667114A CN101667114A CN200910024172A CN200910024172A CN101667114A CN 101667114 A CN101667114 A CN 101667114A CN 200910024172 A CN200910024172 A CN 200910024172A CN 200910024172 A CN200910024172 A CN 200910024172A CN 101667114 A CN101667114 A CN 101667114A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- group
- arithmetic element
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种适于矩阵求逆的超长指令集微处理系统,主要解决现有的电路规模大,运算速度慢的问题。该系统包括:四组运算单元、全局寄存器单元、两组本地寄存器单元、数据地址产生单元、程序定序单元和数据输入/输出存储器单元,其中数据输入/输出存储器单元与四组运算单元之间连接有全局寄存器单元,为运算单元提供操作数和暂存运算结果;第一组运算单元(1)与第二组运算单元(2)之间连接有第一本地寄存器单元(A),第三组运算单元(3)与第四组运算单元(4)之间连接有第二本地寄存器单元(B),用于暂存相应运算单元的中间结果。本发明具有处理速度快和电路规模小的优点,可用于数字通信及数字信号处理。
Description
技术领域
本发明属于数字通信及数字信号处理领域,涉及一种适用于矩阵求逆的超长指令集(VLIW)微处理系统的体系结构。
背景技术
在许多数字通信及数字信号处理系统中都需要用到大量的矩阵运算,其中运算量最大的操作是矩阵求逆。为了满足矩阵求逆操作实时应用的需求,因而对整个处理系统硬件实现提出了非常高的要求。目前主流的处理系统有三种实现方式,一种是采用通用的DSP芯片作为平台,用软件编程的方式实现相关的处理。第二种是采用FPGA芯片,以状态机电路作为数据流控制部件配合相关的运算电路,完全以硬件的方式实现所需的处理算法。第三种是采用超长指令集的微处理系统。其中:
以DSP器件为核心构成的处理系统,所能实现的性能指标依赖DSP器件的性能,一旦所要求的运算数据流量超出芯片的指标,实现起来就变得比较复杂。虽然可以采用多片DSP处理器并行处理的解决方案,但并行处理的程度不会很高,同时各个DSP处理器之间的数据共享与通信也是必须要解决的问题。此外每片DSP芯片还必须配备相关的数据/程序存储器和I/O接口器件,因此系统结构和电路设计的复杂程度大幅提高,造成PCB板布局/布线难度大、系统的功耗和体积大等缺点。
采用FPGA器件完全以硬件的方法构建DSP处理系统,能够充分利用FPGA内部的电路资源,开发出专门的运算部件,在单片FPGA芯片内实现高度并行化的处理。但这种方法的缺点是:电路设计非常复杂,能够实现的运算单一,运算参数难以更改,复用性差,一旦算法改变,就必须重新设计全部电路。另外由于运算中全部数据流均由硬件状态机控制,因而只能实现数据流程相对简单的处理。
超长指令集微处理系统,目前主要有两种体系结构:一是单寄存器文件结构,如图1所示;二是分族寄存器文件结构,如图2所示。这两种结构的主要区别在于寄存器单元的构成形式不同,其中单寄存器文件结构是由所有的运算单元共享一个单独的寄存器文件,该结构的优点是可以减少各个运算单元之间的数据通信,进而提高处理速度,但它的不足之处在于:电路规模大,占用资源多;分族寄存器文件结构的每个运算单元都有自己本地的寄存器单元,这种结构的优点在于电路规模小,但是它需要花费较多的时钟周期来完成各个运算单元之间的数据通信。
发明内容
本发明的目的在于克服上述已有处理系统的不足,提供一种适于矩阵求逆的超长指令集微处理系统,以减小电路规模和占用资源,以及各个运算单元之间数据通信的时钟周期,提高运算速度。
为实现上述目的,本发明的超长指令集微处系统,包括:四组运算单元、全局寄存器单元、两组本地寄存器单元、数据地址产生单元、程序定序单元和数据输入/输出存储器单元,其中:
数据输入/输出存储器单元与四组运算单元之间连接有全局寄存器单元,用于为四组运算单元提供操作数和暂存运算结果数据,以及与输入/输出存储器单元交换数据;
第一组运算单元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。状态信号产生模块根据计算结果产生相应的标志位:结果为0用“Z”表示、结果为负用“N”表示、结果进位用“C”表示、运算结果溢出用“V”表示。数据控制模块根据操作指令选择相应的操作单元和操作数,并根据操作类型从各运算单元的运算结果中选择相应的结果作为逻辑单元的输出,其中位逻辑运算、移位运算、加/减运算结果存入寄存器AR中。乘法控制电路与加法器电路组合在一起构成了一个典型的移位式乘法器,为了尽可能地提高乘法的运算速度,乘法控制电路采用了修正的Booth电路,乘法运算结果的高16位存入乘积结果寄存器的高位MH中,低16位存入乘积结果寄存器的低位ML中。
全局寄存器单元,主要用于为运算单元提供操作数和暂存运算结果数据,与输入/输出存储器单元交换数据,同时它还是运算单元与输入/输出存储器单元之间进行数据交换的“桥梁”。该全局寄存器单元由16个16-Bit的数据寄存器组成,通过寄存器组名R00-R15进行访问。第一本地寄存单元A用于暂存第一组运算单元1和第二组运算单元2的中间运算结果,其由8个16-Bit的数据寄存器组成,通过寄存器组名R16-R23进行访问;第二本地寄存单元B用于暂存第三组运算单元3和第四组运算单元4的中间运算结果,其由8个16-Bit的数据寄存器组成,通过寄存器组名R24-R31进行访问。
数据地址产生单元,负责实现操作数和运算结果在寄存器单元中的寻址,以及全局寄存器单元与数据输入/输出存储器单元进行数据交换时的地址寻址,其包括地址索引寄存器和地址更改寄存器,每当执行完一次存储器存取后,将地址更改寄存器的内容与地址索引寄存器的内容相加,并将相加得到的结果回写到地址索引寄存器中,该地址索引寄存器中的内容即为下一次存储器访问的实际地址,一共设置了4套地址生成寄存器组,分别由地址索引寄存器I0+更改寄存器M0、索引寄存器I1+更改寄存器M1、索引寄存器I2+更改寄存器M2、索引寄存器I3+更改寄存器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、数据地址产生单元和四组运算单元单向发送指令代码;数据地址产生单元根据程序定序单元发送的指令对寄存器进行寄存器名寻址,对输入/输出存储器单元进行变址寻址;全局寄存器单元从输入/输出存储器中读取相应的操作数,此操作数送往四组运算单元进行相应运算;运算的中间结果送回全局寄存器单元或两组本地寄存器单元,并将最终运算结果存入输入/输出存储单元中,以便输出。
以上仅为本发明的一个实例,并不构成对本发明的任何限制,显然在本发明的构思和精神下,任何人均可做出不同的改变,但这些均在本发明的保护之列。
Claims (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所述的超长指令集微处理系统,其特征在于:所述的程序定序单元分别与全局寄存器单元、两组本地寄存器单元、数据地址产生单元和四组运算单元单向连接,用于输出下一条执行指令的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100241721A CN101667114B (zh) | 2009-09-30 | 2009-09-30 | 适于矩阵求逆的超长指令集微处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100241721A CN101667114B (zh) | 2009-09-30 | 2009-09-30 | 适于矩阵求逆的超长指令集微处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101667114A true CN101667114A (zh) | 2010-03-10 |
CN101667114B CN101667114B (zh) | 2012-07-04 |
Family
ID=41803741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100241721A Expired - Fee Related CN101667114B (zh) | 2009-09-30 | 2009-09-30 | 适于矩阵求逆的超长指令集微处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101667114B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978904A (zh) * | 2015-06-29 | 2015-10-14 | 刘兴华 | 一种可变速旋转的led显示系统及其显示方法 |
CN110688158A (zh) * | 2017-07-20 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 计算装置以及神经网络的处理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1102163A3 (en) * | 1999-11-15 | 2005-06-29 | Texas Instruments Incorporated | Microprocessor with improved instruction set architecture |
CN101178644B (zh) * | 2006-11-10 | 2012-01-25 | 上海海尔集成电路有限公司 | 一种基于复杂指令集计算机结构的微处理器架构 |
-
2009
- 2009-09-30 CN CN2009100241721A patent/CN101667114B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978904A (zh) * | 2015-06-29 | 2015-10-14 | 刘兴华 | 一种可变速旋转的led显示系统及其显示方法 |
CN104978904B (zh) * | 2015-06-29 | 2018-11-16 | 深圳市悦创空间科技有限公司 | 一种可变速旋转的led显示系统及其显示方法 |
CN110688158A (zh) * | 2017-07-20 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 计算装置以及神经网络的处理系统 |
CN110688158B (zh) * | 2017-07-20 | 2022-02-22 | 上海寒武纪信息科技有限公司 | 计算装置以及神经网络的处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101667114B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101504599A (zh) | 适于数字信号处理应用的专用指令集微处理系统 | |
CN101201644B (zh) | 指数处理方法与系统 | |
CN101615173B (zh) | 处理任何数个不同格式数据的串流处理器及其方法及模块 | |
CN1886744B (zh) | 在可扩展的处理器架构中增加高级指令所用的方法和装置 | |
CN101533387A (zh) | 基于fpga的边角块稀疏矩阵并行lu分解器 | |
CN102541809B (zh) | 一种动态可重构处理器 | |
CN102043761B (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
US20050204118A1 (en) | Method for inter-cluster communication that employs register permutation | |
CN103150146A (zh) | 基于可扩展处理器架构的专用指令集处理器及其实现方法 | |
CN101021832A (zh) | 支持局部寄存和条件执行的64位浮点整数融合运算群 | |
CN102141974A (zh) | 一种多核处理器核间通信方法及其电路结构 | |
CN101833441A (zh) | 并行向量处理引擎结构 | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
CN102306139A (zh) | 用于ofdm无线通信系统的异构多核数字信号处理器 | |
CN101211256A (zh) | 一种专用双流水线risc指令系统及其操作方法 | |
CN101441616B (zh) | 基于寄存器文件的快速数据交换结构及其管理方法 | |
CN102262611B (zh) | 一种16位的risc cpu系统结构 | |
CN101667114B (zh) | 适于矩阵求逆的超长指令集微处理系统 | |
CN100367191C (zh) | 一种快速流水线型除法器 | |
CN103235715A (zh) | 一种片上系统SoC命令处理的方法、装置及芯片 | |
CN103761213A (zh) | 基于循环流水计算的片上阵列系统 | |
CN102298568A (zh) | 一种动态可重构阵列的配置信息切换方法及装置 | |
CN203276274U (zh) | 基于寄存器窗口互相重叠的多核间数据交换装置 | |
CN101393530A (zh) | 基于超立方体结构的cmp任务分配方法 | |
Lipovski et al. | A fetch-and-op implementation for parallel computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20170930 |