会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 密码体制 / 一种面向密码体制的32位CPU

一种面向密码体制的32位CPU

申请号 CN01110396.5 申请日 2001-04-11 公开(公告)号 CN1379376A 公开(公告)日 2002-11-13
申请人 北京国芯安集成电路设计有限公司; 发明人 赵云琪; 章永兴; 王庆军; 薛一鸣; 张为民;
摘要 这是一种面向密码体制的32位CPU,它针对密码的加密/解密运算量,尤其是乘法和乘加运算量大、数据交换频繁等特点,面向栈式结构的设计思想,通过模块化的设计方式并且利用高速的乘法部件,使CPU具有:指令执行速度快且并行处理、指令格式简单固定且面向高级语言、数据调动方便快捷,访存操作少,系统易于扩充等优点,从而为数据的加密、解密算法提供了一个易用、高效、灵活的硬件平台。
权利要求

1.一种面向密码体制的32位CPU,采用了模块化设计方法、设计了栈式结构、具有焦点聚合的低功耗内总线结构和超标量指令结构与多种寻址方式,其特征在于:所述的CPU包括逻辑与时序控制模块(1)、算术逻辑运算模块(2)、寄存器模块(3)、参数栈模块(4)、返回栈模块(5)、存储器地址端口模块(6)、存储器数据端口模块(7)及存储器模块(8)多个单元,存储器数据端口模块(7)通过双向数据总线与存储器模块(8)、算术逻辑运算模块(2)、寄存器模块(3)相连,完成算术逻辑运算模块(2)、寄存器模块(3)与存储器模块(8)之间的数据交换功能,存储器数据端口模块(7)还与逻辑与时序控制模块(1)相连接,将存储器取来的指令传送至逻辑与时序控制模块(1);算术逻辑运算模块(2)与存储器数据端口模块(7)、寄存器模块(3)相连,存储器数据端口模块(7)、寄存器模块(3)传递的数据构成算术逻辑运算模块(2)的操作数;参数栈模块(4)与寄存器模块(3)相连接,同时参数栈模块(4)与返回栈模块(5)通过双向数据总线互连,实现返回栈数据与参数栈数据相互交换,返回栈模块(5)同时与存储器地址端口模块(6)相连;存储器地址端口模块(6)与寄存器模块(3)、参数栈模块(4)、存储器模块(8)相连,存储器地址端口模块(6)输出数据作为存储器模块(8)的地址。

2.根据权利要求1的CPU,其特征在于其各模块之间功能相对独立,系统根据需要可方便地扩展。

3.根据权利要求1的CPU,其特征在于其参数栈模块(4)、返回栈模块(5)分别由两部分构成,即由寄存器构成的逻辑栈和由RAM组成的物理栈。

4.根据权利要求1的CPU,其特征在于寄存器模块(3)包括栈顶、次栈顶寄存器。

5.根据权利要求1或3的CPU,其特征在于参数栈模块(4)与返回栈模块(5)采用了现场自动保护结构设计,分别实现现场数据、地址的自动入栈保护。

6.根据权利要求1的CPU,其特征在于寄存器模块(3)和算术逻辑运算模块(2)之间的总线采用了焦点聚合的内总线结构。

7.根据权利要求1的CPU,其特征在于其算术逻辑运算模块(2)采用了面向安全处理的准确运算结构,在运算中将余数全部保留。

8.根据权利要求1的CPU,其特征在于其算术逻辑运算模块(2),采用了多种操作数寻址方式。

9.根据权利要求1的CPU,其特征在于其逻辑与时序控制模块(1)采用超标量指令结构,在指令执行过程中同时控制完成算术逻辑运算、数据存取、数据移位等多种操作,实现了指令多域并行操作控制。

10.根据权利要求1的CPU,其特征在于存储器数据端口模块(7)设计了指令预取部件,在CPU执行当前指令时,指令预取部件将下一条将要执行的指令取出。

11.根据权利要求1的CPU,其特征在于根据块数据传送和处理的要求,寄存器模块(3)和逻辑与时序控制模块(1)采用了指令重复执行结构。

说明书全文

一种面向密码体制的32位CPU

本发明涉及面向密码体制的32位CPU,更具体说本发明涉及的CPU适于数据通讯领域需要对传送和接收的数据实时加密、解密,数据频繁运算、交换且又须具备高度安全性的场合。

通用的CPU部件,通常对算术运算的数据结果存在取舍,这样就不可能对数据正确地进行解密,有些国外CPU尽管设计技术先进但却存在着严重的安全隐患,同样不能满足数据通讯高可靠性、高安全性的要求。

本发明的目的在于提供一种面向密码体制的32位CPU,采用先进的设计方法,满足数据的高效高速处理要求特别是对数据的加密、解密要求,从而实现数据通讯及相关领域通讯的高安全性。

为实现上述目的,本发明提供了一种高安全性的先进的CPU,所述的CPU采用了栈式结构、设计了焦点聚合的低功耗内总线结构同时实现了超标量指令结构与多种寻址方式,其特征在于:CPU包括逻辑与时序控制模块、算术逻辑运算模块、寄存器模块、参数栈模块、返回栈模块、存储器地址端口模块、存储器数据端口模块及存储器模块等多个单元。存储器数据端口模块通过双向数据总线与存储器模块、算术逻辑运算模块、寄存器模块相连,完成算术逻辑运算模块、寄存器模块与存储器模块之间的数据交换功能,存储器数据端口模块还与逻辑与时序控制模块相连接,将存储器取来的指令传送至逻辑与时序控制模块;算术逻辑运算模块与存储器数据端口模块、寄存器模块相连,寄存器模块、存储器数据端口模块传递的数据构成算术逻辑运算的操作数;参数栈模块与寄存器模块相连接,同时参数栈模块与返回栈模块通过双向数据总线互连,实现返回栈数据与参数栈数据相互交换,返回栈模块同时与存储器地址端口模块相连,传递的数据作为存储器模块的地址。

下面将参照附图对本发明的优选实施方式进行详细的描述,从而本发明的优点和特点将更加具体而明确。附图中图1是CPU总体结构图,图2是存储器数据端口模块结构图,图3是算术逻辑运算模块结构图,图4是寄存器模块结构图,图5是参数栈模块结构图,图6是返回栈模块结构图,图7是存储器地址端口模块结构图,图1是CPU总体结构图,CPU包括逻辑与时序控制模块(1)、算术逻辑运算模块(2)、寄存器模块(3)、参数栈模块(4)、返回栈模块(5)、存储器地址端口模块(6)、存储器数据端口模块(7)及存储器模块(8)多个单元。存储器地址端口模块(6)产生读写存储器模块(8)的地址,在逻辑与时序控制模块(1)的作用下,将从存储器中模块(8)读出的指令锁存至存储器数据端口模块(7)的指令寄存器中,逻辑与时序控制模块(1)对指令进行译码,并产生相应的控制逻辑,驱动算术逻辑模块(2)、参数栈模块(5)、返回栈模块(6)等功能模块完成特定的操作。顺序操作时,存储器地址端口模块(6)输出的地址依次加1;当产生中断或程序跳转时逻辑与时序控制模块(1)控制存储器地址端口模块(6)生成特定的存储器地址。

本发明在结构上分为操作部件和控制系统两大部分,控制系统产生CPU的内部时钟和中断、译码等控制逻辑。操作部件由算术逻辑运算模块(2)、参数栈模块(4)、返回栈模块(5)、存储器数据端口模块(7)、存储器地址端口模块(6)等多模块组成。整个系统由于采用了模块化的设计使系统具备了高度的紧凑性、良好的扩展性和完善的兼容性。

存储器数据端口模块(7)与算术逻辑运算模块(2)间采用内置式总线,有效防止总线数据的被探测和被截取。算术逻辑运算模块(2)内采用了自主开发了通用算法的硬部件,有效提高安全处理的速度和效率。同时采用了面向安全处理的准确运算结构,运算中将余数全部保留,便于数据的加密、解密处理。

本发明设置了参数栈模块(4)和返回栈模块(5),参数栈方便了操作数的存取和中间结果的暂存,使数据的处理非常灵活。返回栈简化了对地址的管理,可以实现程序的多重嵌套,对中断和程序跳转的处理简单而又快捷,同时实现了中断现场的自动保护。栈结构由物理栈和栈顶寄存器两部分组成,运用映象技术将栈顶寄存器和物理栈融为一体,性能上完全等同于通用寄存器且又具备了管理简单、扩充容易的特点。

本发明设计了数据选择、算术逻辑运算、参数栈与返回栈、移位部件等多套功能部件,指令中设置了相应的数据选择、运算选择、参数栈与返回栈动作、移位判断等多控制域,实现了五种操作并行执行。开发了完整的指令集,指令系统借鉴了CISC、RISC指令的特点,其寻址方式克服了CISC寻址过于复杂、RISC寻址方式过于简单的缺点,大多数指令都在单周期内完成。同时数据寻址等关键操作采用了多种方式实现了冗余设计。

图2为存储器数据端口模块。主要实现芯片与存储器之间的数据交换功能,从存储器取来的指令和数据通过该模块送入到芯片内部进行处理,处理后的结果也将通过存储器数据端口模块写入到存储器中;另外,字查找和字符串比较指令的主要操作也在存储器数据端口模块内完成。

存储器数据端口模块从结构上可分成两部分,即数据输入部分和数据输出部分,其中数据输入部分又由三个电路部件组成,即指令锁存部件,数据锁存部件和字符串相等比较部件。芯片复位时,指令锁存部件被置成空操作指令NOP的代码;在CPU取指时将数据总线上的指令(下一条将要执行的指令)存入到指令锁存部件中;在执行多周期指令时,指令寄存器还可以保存该寄存器中的内容不被更新。指令锁存部件中的指令将被传送到译码器进行译码,从而产生用于指令操作的各种控制信号。芯片复位时,数据锁存电路被置成全零;在CPU取数时将数据总线上的数据存入到数据锁存部件中;数据锁存部件中内容可以传送到CPU的数据栈寄存器,也可以作为操作数送到ALU部件进行各种运算操作。字符相等比较电路主要用于配合完成字查找指令和字符串比较指令的实现。

输出数据选通电路用于选通将栈顶寄存器T或内部数据汇集寄存器BY,在CPU进行写操作时,在控制信号的作用下,将其选通结果输出到CPU的输出数据总线DB上,然后写入存储器单元中。其操作原理简述如下:(1)取指操作在CPU时钟CLK的低电平,从存储器中取来的指令呈现在输入数据总线DI上,并进入到芯片内的存储器数据端口模块,实现指令的予取功能,指令寄存器中的指令在某些条件下可以保持,如多周期指令或该指令需重复被执行时。(2)取数操作在CPU时钟CLK的低电平,从存储器中取来的数据呈现在输入数据总线DI上,并进入到芯片内的存储器数据端口模块,数据寄存器中的数据可以依据指令的控制作为运算的操作数,也可以送到芯片内部指定的寄存器中。(3)存数操作芯片内部寄存器中的数据可通过存储器数据端口的数据输出电路送到CPU的输出数据总线DB上。(4)字符查找及字符串比较操作当执行字查找指令时,所要查找的字予存在当执行字查找指令时,所要查找的字予存在参数栈寄存器N中,然后与存储单元中取来的数据进行比较;当执行字符串比较指令时,字符串予存在存储器的两区间,CPU逐字取出进行比较,若不相同即退出比较,否则一直比较直至字符串结束。

图3为算术逻辑运算模块。主要实现芯片内部数据的算术运算功能和各种逻辑操作。参数栈、返回栈和内部寄存器的数据通过该模块进行处理,处理后的结果返回到参数栈和返回栈。算术逻辑运算电路由多路选通器、32位带进位加法器部件和逻辑部件组成,加法器第一操作数永远是参数栈栈顶寄存器T(或T非),多路选通器完成加法器第二操作数的选择,它可以是任意内部寄存器的数据;加法器部件完成两个操作数的加法操作;逻辑部件完成两个操作数的逻辑运算。算术逻辑运算模块主要的操作原理简述如下:(1)算术运算操作算术运算操作由32位算术运算单元ALU来完成,ALU采用了准确运算结构,运算中将余数全部保留,适于加密、解密处理。ALU实现了加法操作ADD,带进位的加法操作ADC,减法操作SUB,带借位的减法操作SUC,带交换的减法操作SWAPSUB,带借位带交换的减法操作SWAPSUC六种操作。这些指令均为单周期指令。(2)乘法操作乘法操作由算术运算单元ALU和寄存器模块联合操作实现。

乘法操作为寄存器MD与参数栈次栈顶N进行乘法操作,结果高字节送参数栈顶寄存器T,结果低字节送参数栈次栈顶寄存器N;进行乘法操作时,首先进行上数预操作,通过指令把数据送MD,通过指令把数据送N,通过指令把乘法周期数32送TMS寄存器,乘法操作是通过移位加来实现的,其中移位操作是由寄存器模块完成,加操作由算术逻辑运算模块完成。(3)除操作除法操作由算术运算单元ALU和寄存器模块联合操作实现。

被除数存在参数栈栈顶寄存器T与次栈顶寄存器N中,除数在寄存器MD结果商送N,余数送T;进行除法操作时,首先进行上数预操作,通过指令把除数送MD,然后通过指令把被除数送栈顶寄存器T与次栈顶寄存器N,通过指令把除法周期数32送TMS,除法操作是通过移位减来实现的,其中移位操作是由寄存器模块完成,减操作由算术逻辑运算模块完成。(4)逻辑运算操作逻辑运算操作由逻辑运算单元来完成。主要完成非操作NOT,与操作AND,异或操作XOR,或操作OR,逻辑运算均在一个周期内完成。(5)比较操作比较操作可以完成大于,小于,等于和不等于操作。

图4为寄存器模块结构图。寄存器模块由栈顶寄存器T单元、次栈顶寄存器N单元和特殊寄存器组成。

特殊寄存器电路由多路选通器和寄存器组构成,这些寄存器的内容可以做为算术逻辑运算的第二操作数,也可用于数据输入、输出的暂存。特殊寄存器和算术逻辑运算模块间采用了焦点聚合的内总线结构,与通用三态内总线结构相比,有效降低了CPU的功耗,满足CPU高速和低功耗要求。

栈顶寄存器单元由多路选通器和栈顶桶形移位器构成,完成栈顶寄存器的多路数据源选择和移位操作处理。多路选通器选择进入栈顶寄存器数据源。选通控制信号有效时选择新数据进入栈顶寄存器或保持原栈顶寄存器数据。栈顶桶形移位器可形成进入栈顶数据的移位操作处理—包括左移一位、右移一位、左移二位、T与N联合左移一位、T与N循环移位、数据保持及置位操作。数据在时钟CLK下一周期上升沿打入栈顶寄存器T。次栈顶寄存器单元完成次栈顶寄存器的多路数据源选择和移位操作处理。由多路选通器和次栈顶桶形移位器构成。数据选通单元选择进入次栈顶寄存器的数据源,选通控制信号有效时选择新数据进入次栈顶寄存器或保持原次栈顶寄存器数据。次栈顶桶形移位器可对数据进行左移一位,右移一位,左移二位操作。数据在时钟CLK下一周期上升沿打入次栈顶寄存器N。其操作原理简述如下T数据重载控制信号将数据选通后送入栈顶桶形移位器。当移位信号无效时,数据在下一周期打入栈顶寄存器T;反之,当移位信号有效时,对载入的数据进行移位操作,在下一周期移位后的数据打入栈顶寄存器T。选择不同的数据源数据源可完成参数栈出栈、返回栈出栈、数据到T、算术运算操作(求和或差)、逻辑操作AND、OR、NOT等多种操作。N数据重载控制信号将选通的数据送入次栈顶桶形移位器。数据在下一周期打入次栈顶寄存器N;当移位信号有效时对载入前数据进行移位操作,在下一周期移位后的数据,打入次栈顶寄存器N。选择不同的数据源可完成数据保持、参数栈入栈或出栈、特殊寄存器到N等多种操作。

将栈顶寄存器T和次栈顶寄存器N设置多种根据移位方式,可满足不同操作的需要,有效提高运算的速度。

图5为参数栈模块结构图。该模块通过对指针的管理,完成参数栈的入栈和出栈操作,以及参数栈次次栈顶寄存器的操作处理。由三部分电路构成:次次栈顶寄存器及其控制电路、参数栈指针(SP)电路与物理栈。物理栈由RAM构成,RAM的读写控制信号(RPN、WRN)作为参数栈出栈、压栈的控制信号。参数栈指针电路控制参数栈的指针变化,由多路选通器、加1、减1器、寄存器和溢出中断电路组成。多路选通器选取参数栈指针的信号源。加1、减1器完成指针加、减1操作,出栈时指针加一;入栈时指针减一;伪入操作时,指针不变。当溢出中断电路判断参数栈溢出时,参数栈溢出信号有效。次次栈顶寄存器及其控制电路实现参数栈出栈和入栈以及次次栈顶寄存器处理。多路选通器来控制次次栈顶寄存器的数据源,在时钟沿有效时将选通器的输出锁存至次次栈顶寄存器。

本模块实现与参数栈相关的栈操作。将次次栈顶寄存器作为物理栈顶的映像,为了使次次栈顶寄存器与栈顶一致,压栈时,先压栈,后改变指针;出栈时,先改变指针,后出栈;参数栈伪入操作也在本模块中实现。这种结构的设计思想是由于寄存器较栈操作更具灵活性,理论上是栈操作,保持栈式结构的特点,而实际是寄存器的操作,使次次栈顶的操作处理更方便。

图6为返回栈模块结构图。主要实现返回栈的栈操作,即通过对指针的管理,实现返回栈的压入和弹出操作。同时可实现返回栈与参数栈的数据交换操作。它由三部分构成:返回栈寄存器单元、栈指针处理电路、物理栈。物理栈由RAM组成。栈指针处理电路控制返回栈的指针变化,它由多路选通器、加1、减1器、寄存器构成。该电路多路选通器的数据源包括:原指针、原指针加1,原指针减1。加1、减1器完成指针加、减1操作,即返回栈出栈、压栈操作。同时该电路在判断返回栈溢出时,发出中断申请。返回栈寄存器单元及其控制电路完成返回栈寄存器单元的数据存取、物理栈出栈与压栈的控制信号的产生。返回栈出栈、压栈的控制信号做为物理栈(RAM)的读写信号。

本模块的操作原理:初始时,所有寄存器为0;压栈指针减1,出栈指针加1;溢出时RSO有效。

返回栈寄存器I中数据可传递给地址模块作为地址数据,也可传递给参数栈作为指针地址,或作为返回栈栈顶数据与参数栈栈顶数据相互交换。当系统产生中断时,逻辑与时序控制模块产生相应的控制信号选通PC压入返回栈寄存器,并将其他特殊寄存器的内容入栈,实现了现场的自动保护,中断返回时,又自动将相应的数据弹出。

图7存储器地址端口模块结构图。主要实现存储器输出地址的选通功能,以便支持芯片的各种寻址方式;完成程序指针PC的增量及偏移量运算;另外,还具有地址断点匹配功能。地址端口模块由四个电路部件组成,即地址选通单元,地址增量运算单元,地址偏量运算单元和地址相等比较单元。地址选通单元完成的功能相当于一个16位的六选一多路开关,地址来源分别是程序指针PC,返回栈栈寄存器I,栈顶寄存器T,地址增量运算结果,指令中的绝对地址IL和中断向量地址AINT。该电路可根据指令中的寻址方式的要求控制选通相应的数据来源作为访存的地址。地址增量运算单元包括一个16位的加1器,一个二选一器件和一个寄存器。该电路将地址选通电路的输出地址进行加1的增量运算,当需要更新程序指针时,将增量运算结果打入到PC寄存器中;否则,PC寄存器可通过二选一器件所选通的PC反馈信号来保持其先前的内容。地址偏量运算单元包括一个符号扩展器件和一个16位的全加器。在本发明的指令功能中,转移地址有两种情况,一种是绝对地址转移;另一种是相对地址转移如条件转移指令和循环指令,地址偏移量与程序指针PC进行运算。地址相等比较单元由一个二选一器件,一个寄存器和一个16位相等比较器组成。通过选通器可将总线上的数据打入到断点寄存器中,该寄存器中的内容可以与地址选通单元的输出进行相等比较操作,若相等则置BPI信号为高电平。

其操作原理简述如下:(1)顺序取指操作一般情况下,CPU总是顺序地从存储器中取出指令执行,这时,地址选通单元选通程序指针PC作为地址输出,并在同周期内将PC加1进行更新。(2)转移取指操作在绝对地址转移时,由地址选通单元选通地址偏移运算单元的输出作为地址输出;另外,在CPU处理中断时,选通中断向量作为地址,即转移到中断处理程序进行取指操作。(3)读写数据的地址操作对存储器进行数据存取访问的地址可来自程序指针寄存器PC、返回栈寄存器I和栈顶寄存器T。在执行32位立即数指令时,选通PC;在执行其他访存指令时,可根据具体指令来选通T寄存器或I寄存器。(4)地址断点比较操作通过控制可以预先将某个地址设置在断点寄存器中,当执行后续指令时,若地址选通结果与断点寄存器中的内容相等时,则BPI信号有效,该信号作为中断源之一送到芯片的中断处理模块进行处理。此功能可以方便对程序进行调试。