CN101131719A - 一种用于密码学运算的微处理器内核 - Google Patents
一种用于密码学运算的微处理器内核 Download PDFInfo
- Publication number
- CN101131719A CN101131719A CNA2006101125423A CN200610112542A CN101131719A CN 101131719 A CN101131719 A CN 101131719A CN A2006101125423 A CNA2006101125423 A CN A2006101125423A CN 200610112542 A CN200610112542 A CN 200610112542A CN 101131719 A CN101131719 A CN 101131719A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- instructions
- sub
- instruction
- 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
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
一种用于密码学运算的微处理器内核,涉及信息安全领域的密码学技术。本发明与程序存储器及数据存储器相互连接,用于加速密码学的运算。本发明包括:指令寄存器,指令译码单元,包括程序计数器、堆栈指针、数据指针、加速模块指针、数据寄存器、索引寄存器、比较寄存器和位寄存器的寄存器堆,数据运算单元,程序地址产生单元,程序存储器接口,数据存储器接口,密码学加速模块接口和密码学加速模块。同现有技术相比,本发明通过软硬件结合的方式,既可以获得较高的运算速度,又能获得算法功能的灵活性和通用性,具有成本低,性能高,功能可配置,灵活通用的特点。
Description
技术领域
本发明涉及信息安全领域的密码学技术,特别是用于密码学运算的微处理器内核。
背景技术
密码学是现代信息技术中的一项基础技术,广泛应用于数据加密、身份识别、电子交易等涉及信息安全的各个领域,高效、安全的密码学运算功能是组成一个安全***的重要部件。基本的密码学算法大致可以分为对称密钥算法(如DES和AES)、非对称密钥算法(如RSA和ECC)、文摘算法(如MD5和SHA-1),这几类算法在现代安全***(例如公共密钥架构,PKI)中都是必不可少的运算功能。
现有技术中,一般的密码学算法的共同特点是:1)算法的程序规模小,流程、结构简单,通常的算法都是以相同或相近的处理流程进行若干次循环。2)算法的数据规模小,但访问密度大。待处理的数据一般为几个至几十个字,程序反复的对其读取、运算和回写。3)算法中既会用到普通处理器的算术逻辑功能,例如加、减、移位、逻辑等操作,同时也可能用到特定算法所要求的特殊运算功能。普通的处理器指令都不直接提供特殊运算功能,而用硬件则非常容易实现,例如DES中的置位操作,用硬件实现只需若干连线,但用软件实现则需要大量的代码。所以说,密码学算法的软件实现和硬件实现各有其优缺点。
在软件实现方式中,算法程序与***的其它程序运行在同一个通用的处理器上,其优点是成本低(仅仅是密码学软件开发成本),程序便于移植,便于实现多种算法,以及算法功能灵活(参数易于设置),缺点是程序只能使用通用的指令,实现特殊运算功能代价大,而且一条指令只能完成单一的功能,无法做到在硬件实现中常用的并行流水线处理方式,因此运算速度低;同时,由于密码学程序和其它程序运行在同一处理器上,密钥和数据都存储在普通存储器中,易于受到攻击,安全性低;另外也无法在嵌入式应用中使用(如智能卡)。
在硬件实现方式中,专用的硬件模块实现所需的密码学算法,可以根据算法特点将若干子步骤进行并行和流水线处理,从而大大提供运算速度;同时密码学运算是在硬件内部完成,不易受到外部攻击,安全性高;缺点是硬件加速模块通常只针对一种加密算法设计,而且算法的参数不易改变(例如,对于RSA算法只能提供固定长度的运算),缺乏灵活性和通用性。另外,当需要多种算法就必须针对各种算法设计各自的加速硬件,不同硬件内的相同或相似功能难以共享,使得***的成本变高。
发明内容
为了克服上述现有技术中的缺点,本发明的目的是提供一种用于密码学运算的微处理器内核。它通过软硬件结合的方式,既可以获得较高的运算速度,又能获得算法功能的灵活性和通用性,具有成本低,性能高,功能可配置,灵活通用的特点。
为了达到上述发明目的,本发明的技术方案以如下方式实现:
一种用于密码学运算的微处理器内核,它与程序存储器及数据存储器相互连接,用于加速密码学的运算。其结构特点是,它包括:
指令寄存器,存储当前执行的程序指令字并将指令发送给指令译码单元;
指令译码单元,译码并执行指令寄存器中的程序指令字,生成对微处理器内核中各部分电路的控制信号;
寄存器堆,包括程序计数器、堆栈指针、数据指针、加速模块指针、数据寄存器、索引寄存器、比较寄存器和位寄存器;
数据运算单元,对寄存器堆中的寄存器进行各种运算操作;
程序地址产生单元,产生下一条程序指令在程序存储器中的存储地址;
程序存储器接口,实现指令寄存器或数据寄存器从程序存储器的数据读取;
数据存储器接口,实现数据寄存器和数据存储器之间的数据交换;
密码学加速模块接口,实现数据寄存器和密码学加速模块之间的数据交换;
密码学加速模块,包含一个供DES程序调用的DES算法加速模块,实现DES算法硬件加速功能;还包含一个供AES算法程序调用的AES算法加速模块,实现AES算法硬件加速功能。
在上述的微处理器内核中,所述指令译码单元的子单元包括:
程序控制子指令译码单元,译码并执行挂起指令、绝对地址跳转指令、程序调用指令和程序返回指令;
存储器访问子指令译码单元,译码并执行存储器读子指令和存储器写子指令;
加速模块访问子指令译码单元,生成目标地址,并将数据输入到相应的加速模块,将运算结果存储到数据寄存器;
寄存器拷贝子指令译码单元,执行数据寄存器拷贝子指令、指针拷贝子指令和索引拷贝子指令;
算术逻辑子指令译码单元,对一个或两个数据寄存器进行数学或逻辑运算;
索引更新子指令译码单元,对索引寄存器执行清零、加一和减一操作;
条件跳转子指令译码单元,判断条件满足时,跳转到与下一条指令的相对偏移量为指定值的地址,否则执行下一条指令。
上述各子指令译码单元采用并行工作方式,对一条指令中的各自对应的子指令同时译码,各子指令功能在同一个时钟周期内同时完成。
本发明的结构形式是一种硬件实现方案,但采用了软件实现的思想。其核心是一个针对密码学算法特点特殊设计的处理器内核,它可以在一条指令中同时执行诸如存储器访问、寄存器拷贝、算术逻辑运算、循环变量递增/递减、条件判断和跳转等操作。这些密码学算法中最常用到的基本功能能够以并行的方式执行,使得算法可以采用流水线的方式对数据进行处理。同时可以对不易于处理器指令实现的特殊的运算功能设计专用的硬件加速模块,处理器通过加速模块接口访问其运算功能,这样既拥有软件实现的灵活性和通用性,又可获得接近硬件实现的速度。在具体实现时可以权衡硬件代价和速度要求,根据***的需求决定软、硬件之间的功能分配。本发明由于处理器架构不是针对特定算法设计的,具有通用性,因此不同的应用可以选择配置不同的软件程序,使得***集成非常方便。由于各个算法程序可以共享处理器内核和存储器资源,并且拥有与***其它部分统一的数据交换接口,因此在多算法应用中可以降低***整体成本。同现有技术相比,本发明提供了一种低成本,高性能,功能可配置,灵活通用的支持多种密码学功能的硬件实现方案,尤其适合于需要多种密码学算法的嵌入式应用。
下面结合附图和具体实施方式对本发明做进一步说明。
说明书附图
图1是本发明的结构连接示意图
图2是本发明指令译码单元的结构连接示意图;
图3是本发明用于密码学运算***的连接示意图;;
图4是本发明与程序存储器及数据存储器的信号传递关系图。
具体实施方式
参看图1和图2,本发明包括指令寄存器11、指令译码单元12、寄存器堆13、数据运算单元14、程序地址产生单元15、程序存储器接口16、数据存储器接口17、密码学加速模块接口18、包含DES密码学加速模块191和AES密码学加速模块192的密码学加速模块19。其中寄存器堆13中包含有程序计数器131、堆栈指针132、数据指针133、加速模块指针134、数据寄存器135、索引寄存器136、比较寄存器137和位寄存器138。指令译码单元12中包含有程序控制子指令译码单元121、存储器访问子指令译码单元122、加速模块访问子指令译码单元123、寄存器拷贝子指令译码单元124、算术逻辑子指令译码单元125、索引更新子指令译码单元126和条件跳转子指令译码单元127。
将本发明应用于密码学运算***中,采用型号为8051的主控制器20通过共享数据存储器3的方式进行程序调用和数据交互,同时主控制器20还可以通过本发明微处理器内核1的控制/状态信号端口进行直接控制,如图3所示。本发明微处理器内核1将地址和控制信号信息传输给程序存储器2及数据存储器3,微处理器内核1根据程序存储器2的内容控制微处理器内核1与数据存储器3数据交互,如图4所示。
本发明微处理器内核1中各部分的工作原理如下:
指令寄存器11,通过程序存储器接口16实现与程序存储器2之间的通讯,输入程序存储器2中的程序指令,存储当前执行的程序指令字,并将指令发送给指令译码单元12。
指令译码单元12,译码并执行指令寄存器11中的程序指令字,产生微处理器内核1中各部分电路的各种控制信号,并将特定的控制信号发送给寄存器堆13、数据运算单元14、通过密码学加速模块接口18送给密码学加速模块19、程序地址产生单元15、通过程序存储器接口16送给程序存储器2和通过数据存储器接口17数据存储器3。指令译码单元12将程序指令字分解成若干子指令分别由特定的子指令译码单元121-127执行。各子指令译码单元121-127采用并行工作方式,对一条指令中各自对应的子指令同时译码,除4条程序控制指令外,各子指令功能在同一个时钟周期内同时完成。在一般的微处理器设计中,一条指令只能完成单一的功能,而在本发明中,每条指令可被分为若干个功能不同的子指令,各子指令在同一个时钟周期内同时完成,因此实现了多个功能的并行处理,大大提高了运算速度。
并行工作的各子指令译码单元121-127的逻辑工作步骤为:
[1]程序控制子指令译码单元121译码执行4条程序控制子指令,包括:A.挂起指令使得微处理器内核1进入挂起状态,停止执行程序,保持各寄存器的值,当启动信号有效后,从当前程序地址继续执行。B.绝对地址跳转指令用指令中的16位值更新程序计数器131,即跳转到指定的绝对地址。C.程序调用指令将当前的程序计数器131和堆栈指针132写入调用者的栈底,更新程序计数器131指向被调用者的栈底,并用指令中的16位值更新程序计数器131,跳转到指定的绝对地址。D.程序返回指令用当前程序栈底数据写入恢复程序计数器131和堆栈指针132,从而返回到调用者运行程序调用指令的入口点。
[2]存储器访问子指令译码单元122译码执行存储器访问子指令,包括:A.存储器读子指令,以数据指针133、堆栈指针132或程序计数器131作为基地址,以索引寄存器136或子指令中的4位立即数作为偏移量,相加产生目标地址,从数据存储器3或程序存储器2中读取一个字的数据存储到数据寄存器135中。B.存储器写子指令,以数据指针133或堆栈指针132作为基地址,以索引寄存器136或子指令中的4位立即数作为偏移量,相加产生目标地址,将数据寄存器135中的数据写入到数据存储器3中。
[3]加速模块访问子指令译码单元123译码执行加速模块访问子指令,以加速模块指针134作为基地址,以索引寄存器136或子指令中的4位立即数作为偏移量,相加产生目标地址,将数据寄存器135中的数据输入到相应的加速模块,将运算结果存储到数据寄存器135中。
[4]寄存器拷贝子指令译码单元124译码执行寄存器拷贝子指令,进行同类寄存器之间的拷贝操作,包括:数据寄存器135拷贝子指令,进行数据寄存器135之间的拷贝操作;指针拷贝子指令,进行数据指针133、堆栈指针132和程序计数器131之间的拷贝操作;索引拷贝子指令索引寄存器,进行比较寄存器137之间的拷贝操作。
[5]算术逻辑子指令译码单元125译码执行算术逻辑子指令,对一个或两个数据寄存器135进行数学或逻辑运算,包括带位加、减、左移、右移、与、或、半字交换、乘、位操作等。
[6]索引运算子指令译码单元126译码执行索引运算子指令,包括对索引寄存器136清零、加一和减一操作。
[7]条件跳转子指令译码单元127译码执行条件跳转子指令,当判断条件满足时,跳转到与下一条指令的相对偏移量为指定值的地址,否则执行下一条指令。
参看表1,表1列举了指令译码单元12中各子指令类型及编码位置,除程序控制指令占用指令编码的全部32位外,其余子指令各占用32指令编码的特定位置。因此,编码位置(在纵向上)不重叠的子指令可以并行处理。
31 28 | 27 23 | 22 19 | 1812 | 110 |
存储器访问(索引偏移量寻址) | 索引运算 | 位运算 | 寄存器拷贝 | 条件跳转 |
加速模块访问 | ||||
存储器访问(立即数偏移量寻址) | 算术逻辑运算 | |||
程序控制 |
表1
程序地址产生单元15,根据程序计数器131的值,并接收程序控制子指令译码单元121和/或条件跳转子指令译码单元127产生的控制信号,产生下一条程序指令在程序存储器2中的存储器地址,通过程序存储器接口16将地址输出到程序存储器2。在每条指令执行完成后对寄存器堆13中的程序计数器131加一,或者根据条件跳转子指令或程序控制子指令将目标地址存储到程序计数器131。
寄存器堆13,处理器指令可访问到的寄存器集合,接收指令译码单元12发来的指令,实现和数据运算单元14、程序存储器2、数据存储器3及密码学加速模块19的双向通讯,保存各种数据、产生各种目标地址。数据寄存器135用来保存各种源数据、中间数据和结果数据,它通过程序存储器接口16读取程序存储器2的数据;它通过微处理器内核1中相应的接口与数据存储器3、密码学加速模块19进行双向通讯,输入数据或把数据输出到数据存储器3和/或密码学加速模块19;并与微处理器内核1中的数据运算单元14实现双向通讯,进行各种数据的输入与输出。程序计数器131用来保存当前程序指令地址。堆栈指针132用来保存当前堆栈地址,在执行程序调用或程序返回指令时自动更新。数据指针133用来保存存储器寻址的基地址,与索引寄存器136的值相加产生存储器寻址的目标地址。加速模块指针134保存加速模块地址的基地址,与索引寄存器136的值相加产生加速模块地址的目标地址。索引寄存器136用来保存存储器寻址的偏移地址,与数据指针133或加速模块指针134的值相加产生存储器寻址或加速模块访问的目标地址。比较寄存器137保存与索引寄存器136相比较的参考数值,用于条件跳转子指令中的条件判断。位寄存器138用于保存程序运行时的状态位。
参看表2,表2中列举了寄存器堆13中各寄存器的定义,寄存器堆13中的各个寄存器的名称(在程序中使用)、编号及其组成。例如编号为13的字寄存器的名称为Rab,是由Pa和Pb这2个指针寄存器组合而成的。
数据寄存器 | 索引寄存器 | 指针寄存器 | |
编号 助记符 | 编 助记符(及构号 成) | 助记编号符 | 助记编号符 |
R0 R0R1 RsR2 RaR3 RbR4 RmR5 RnR6 RuR7 Rv | R8 Rc0R9 Rc1Ri1={l,k,j,iR10}R11 Rgh={Pe,h,g}R12 Rcs={Pc,Ps}R13 Rab={Pb,Pa}R14 Rmn={Pn,Pm}R15 Ruv={Pv,Pu} | I0 iI1 jI2 kI3 lI4 gI5 hRs.BI60Rs.BI71 | P0 PcP1 PsP2 PaP3 PbP4 PmP5 PnP6 PuP7 Pv |
表1
在表2中,寄存器堆13中包含:
16个32位的数据寄存器R0~R15,都可以作为算术逻辑子指令的操作数及寄存器拷贝子指令的源或目标,其它子指令的源和目标寄存器则有限定。R10~R15实际上由若干个索引寄存器136或指针寄存器组合而成。
9个16-bit指针寄存器,用作访问存储器或加速模块时目标地址的基址。其中Pc(P0)是程序计数器131,用于访问程序;Ps(P1)是堆栈指针132,用于访问栈数据;Pe是加速模块指针134;其它是普通的数据指针133。
8个8-bit索引寄存器,分成三类:偏移量索引寄存器i、j、k和l(I0~I3)用作访问存储器或加速模块时目标地址的偏移量,索引寄存器136操作中的对象,条件判断中的比较对象,以及索引寄存器136拷贝中的源或目标寄存器;参考索引寄存器g和h(I4~I5)用作条件判断中的参考对象,以及索引寄存器拷贝中的源寄存器;Rs.B0和Rs.B1(I6~I7)是Rs寄存器的低2个字节,用作索引寄存器拷贝中的源寄存器。
数据运算单元14,接收指令译码单元12发出的指令,更确切的说,是接收算术逻辑子指令译码单元125发出的指令,执行寄存器相关的各种运算,如:寄存器之间的数据拷贝,包括数据寄存器135之间的拷贝,指针寄存器之间的拷贝,索引寄存器136及比较寄存器137之间的拷贝;算术逻辑操作,包括加法、减法、左移、右移、与、或、异或、半字交换操作;索引寄存器的加一、减一及清零操作;位寄存器138的清零和置位操作。数据运算单元14执行的各种运算都是最常用基本运算,而这些运算用处理器指令非常容易实现,因此灵活性高、利用率高。
程序存储器接口16,实现指令寄存器11或数据寄存器135从程序存储器2的数据读取。
数据存储器接口17,实现数据寄存器135和数据存储器3之间的数据交换。
密码学加速模块19,满足密码学加速模块接口18的数据时序要求。
各种密码学算法都有其各自的特点,但各种算法都会涉及到一些最常用的基本功能,如:存储器访问、寄存器拷贝、算术逻辑运算、循环变量递增/递减、条件判断和跳转等操作等,在本发明中,这些通用功能通过微处理器内核1中的指令译码单元12、寄存器堆13和数据运算单元14以并行的方式执行,算法可以采用流水线的方式对数据进行处理;而对于那些各密码学算法特定的功能,处理器指令难于处理或处理起来代价较高、速度较慢,则通过特定的密码学加速模块19来完成。
参看表3,表3中以一个多字节大整数加法为例,演示微处理器内核1的工作步骤:
程序存储器
表3
在数据存储器3存放两个输入和一个输出数据:加数A、加数B及结果M=A+B,A、B、M分别是占用N字数据,即它们是长度为32×N位的整数。数据的高有效字存储在低地址,低有效字存储在高地址。程序存储器2存储多字加法程序指令,图5中详细列出了其中的运算部分。在未详细列出的初始化的程序中对用到的各个寄存器赋初值,其中Pa、Pb和Pm是三个指针寄存器,分别指向A、B和M在数据存储器3中的起始地址(高有效字地址);i和j是两个初始值均为字长N的索引寄存器136,在循环中分别用来访问输出和输入数据的某个字,i同时作为循环控制变量;Pc是程序计数器131,指向当前运行的程序指令地址。Ra、Rb和Rs是三个数据寄存器135,Ra和Rb分别用来读取A和B,Rs用来进行单字的加法运算,并将结果写入到M中。
执行运算部分程序时,Pc指向第1行程序,微处理器内核1将第1行程序的指令编码通过程序存储器接口16加载到指令寄存器11中,指令译码单元12对该指令进行译码。该指令包含2条子指令:存储器读子指令(Ra=Pa[j])的功能是从地址为(Pa+j)的数据存储器3中读取一个字加载到数据寄存器Ra中,该子指令由存储器访问子指令译码单元122译码,并通过输出给数据存储器接口17和寄存器堆13的控制信号完成其功能;另一条是位操作子指令(C=O),功能是将数据运算单元14中的进位标志C清零,该子指令由算术逻辑子指令译码单元125译码,并通过输出给数据运算单元14和寄存器堆13的控制信号完成其功能。这两条子指令的译码和功能在一个周期内一起完成,同时Pc自动加一,指向第2行程序,微处理器内核1继续进行读取指令和译码执行。第2行程序包括3条子指令,分别是存储器读子指令(Rb=Pb[j]:读取B的一个字到Rb)、寄存器拷贝子指令(Rs=Ra:将Ra的值复制到Rs)和索引运算子指令(j--:将索引寄存器j减一以指向下一个输入数据字)。第3行程序计算单字的带进位加法(a[j]+b[j]),结果保存在Rs中,同时读取下一轮循环中A的数据字(Ra=Pa[j])。第4行程序将Rs中的数值写入到地址为(Pm+i)的数据存储器中(Pm[i]=Rs),即M的第i个字,并将索引寄存器i减一(i--)以指向下一个输出数据字;同时执行条件跳转子指令(jump LOOP unless i==0),判断i是否等于0,若非0则将Pc减去2,跳转到标号为“LOOP”的第2条程序,开始下一轮循环,若为0则继续执行后面的指令。
由上述这段程序可以看出,子指令的并行运行使得存储器访问、算术运算、寄存器拷贝、数据地址更新和条件判断及跳转这些基本的程序功能可以用流水线的方式进行。循环部分只有3条指令,但包含了8个数据处理功能,使得一个大整数加法的运算所需时间是3×N(除去常数项),如果每条指令只能完成一项处理功能,则循环部分需要7条指令(i和j可以合并),加法的运算时间是7×N。对于字长对复杂度影响更大的算法(如模乘的复杂度与N的平方成正比),子指令的并行处理对对算法效率的提高更显著。
上述列举的本发明的几个实现方案中,对一些本领域技术人员公知技术的过程、元件和步骤并没有详细说明,因为对本领域的技术人员来说,没有这些具体描述,或使用替代的元件和方法,也能实施本发明。
Claims (2)
1.一种用于密码学运算的微处理器内核,它与程序存储器(2)及数据存储器(3)相互连接,用于加速密码学的运算,其特征在于,它包括:
指令寄存器(11),存储当前执行的程序指令字并将指令发送给指令译码单元(12);
指令译码单元(12),译码并执行指令寄存器(11)中的程序指令字,产生微处理器内核(1)中各部分电路的控制信号;
寄存器堆(13),包括程序计数器(131)、堆栈指针(132)、数据指针(133)、加速模块指针(134)、数据寄存器(135)、索引寄存器(136)、比较寄存器(137)和位寄存器(138);
数据运算单元(14),对寄存器堆(13)中的寄存器进行各种运算操作;
程序地址产生单元(15),产生下一条程序指令在程序存储器(2)中的存储地址;
程序存储器接口(16),实现指令寄存器(11)或数据寄存器(135)从程序存储器(2)的数据读取;
数据存储器接口(17),实现数据寄存器(135)和数据存储器(3)之间的数据交换;
密码学加速模块接口(18),实现数据寄存器(135)和密码学加速模块(19)之间的数据交换;
密码学加速模块(19),包含一个供DES程序调用的DES算法加速模块(191),实现DES算法硬件加速功能;还包含一个供AES算法程序调用的AES算法加速模块(192),实现AES算法硬件加速功能。
2.如权利要求1所述的用于密码学运算的微处理器内核,其特征在于,所述指令译码单元(12)的子单元包括:
程序控制子指令译码单元(121),译码并执行挂起指令、绝对地址跳转指令、程序调用指令和程序返回指令;
存储器访问子指令译码单元(122),译码并执行存储器读子指令和存储器写子指令;
加速模块访问子指令译码单元(123),生成目标地址,并将数据输入到相应的加速模块,将运算结果存储到数据寄存器(135);
寄存器拷贝子指令译码单元(124),执行数据寄存器拷贝子指令、指针拷贝子指令和索引拷贝子指令;
算术逻辑子指令译码单元(125),对一个或两个数据寄存器(135)进行数学或逻辑运算;
索引更新子指令译码单元(126),对索引寄存器(136)执行清零、加一和减一操作;
条件跳转子指令译码单元(127),判断条件满足时,跳转到与下一条指令的相对偏移量为指定值的地址,否则执行下一条指令;
上述各子指令译码单元(121~127)采用并行工作方式,对一条指令中的各自对应的子指令同时译码,各子指令功能在同一个时钟周期内同时完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101125423A CN100470571C (zh) | 2006-08-23 | 2006-08-23 | 一种用于密码学运算的微处理器内核装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101125423A CN100470571C (zh) | 2006-08-23 | 2006-08-23 | 一种用于密码学运算的微处理器内核装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101131719A true CN101131719A (zh) | 2008-02-27 |
CN100470571C CN100470571C (zh) | 2009-03-18 |
Family
ID=39128984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101125423A Active CN100470571C (zh) | 2006-08-23 | 2006-08-23 | 一种用于密码学运算的微处理器内核装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100470571C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355348A (zh) * | 2011-06-28 | 2012-02-15 | 中国人民解放军国防科学技术大学 | 一种容错的des算法加速器 |
CN103973431A (zh) * | 2014-04-16 | 2014-08-06 | 华南师范大学 | 一种基于OpenCL的AES并行化实现方法 |
CN104050415A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于***调用的稳健且高性能的指令 |
CN108563465A (zh) * | 2012-09-28 | 2018-09-21 | 英特尔公司 | 用于响应于单个指令来执行循环和异或的***、装置和方法 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN112217643A (zh) * | 2019-07-09 | 2021-01-12 | 华为技术有限公司 | 运算方法、装置及设备 |
CN112348182A (zh) * | 2016-04-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 一种神经网络maxout层计算装置 |
CN112396186A (zh) * | 2019-08-12 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 执行方法、装置及相关产品 |
CN117971320A (zh) * | 2024-03-28 | 2024-05-03 | 集创北方(珠海)科技有限公司 | 用于显示***的微处理器及寄存器写入方法 |
-
2006
- 2006-08-23 CN CNB2006101125423A patent/CN100470571C/zh active Active
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355348A (zh) * | 2011-06-28 | 2012-02-15 | 中国人民解放军国防科学技术大学 | 一种容错的des算法加速器 |
CN108563465A (zh) * | 2012-09-28 | 2018-09-21 | 英特尔公司 | 用于响应于单个指令来执行循环和异或的***、装置和方法 |
CN108563465B (zh) * | 2012-09-28 | 2022-09-20 | 元平台公司 | 用于响应于单个指令来执行循环和异或的***、装置和方法 |
CN104050415A (zh) * | 2013-03-15 | 2014-09-17 | 英特尔公司 | 用于***调用的稳健且高性能的指令 |
CN104050415B (zh) * | 2013-03-15 | 2017-10-13 | 英特尔公司 | 用于***调用的稳健且高性能的指令 |
CN103973431A (zh) * | 2014-04-16 | 2014-08-06 | 华南师范大学 | 一种基于OpenCL的AES并行化实现方法 |
CN103973431B (zh) * | 2014-04-16 | 2017-04-05 | 华南师范大学 | 一种基于OpenCL的AES并行化实现方法 |
CN112348182A (zh) * | 2016-04-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 一种神经网络maxout层计算装置 |
CN112348182B (zh) * | 2016-04-19 | 2024-01-12 | 中科寒武纪科技股份有限公司 | 一种神经网络maxout层计算装置 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111857822B (zh) * | 2016-08-05 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN112217643A (zh) * | 2019-07-09 | 2021-01-12 | 华为技术有限公司 | 运算方法、装置及设备 |
CN112217643B (zh) * | 2019-07-09 | 2021-12-10 | 华为技术有限公司 | 运算方法、装置及设备 |
US11868485B2 (en) | 2019-07-09 | 2024-01-09 | Huawei Technologies Co., Ltd. | Operation method, operation apparatus, and device |
CN112396186A (zh) * | 2019-08-12 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 执行方法、装置及相关产品 |
CN112396186B (zh) * | 2019-08-12 | 2024-05-03 | 上海寒武纪信息科技有限公司 | 执行方法、装置及相关产品 |
CN117971320A (zh) * | 2024-03-28 | 2024-05-03 | 集创北方(珠海)科技有限公司 | 用于显示***的微处理器及寄存器写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100470571C (zh) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100470571C (zh) | 一种用于密码学运算的微处理器内核装置 | |
US20200201789A1 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
CN104781803B (zh) | 用于架构不同核的线程迁移支持 | |
CN109478139B (zh) | 用于共享存储器中的访问同步的装置、方法和*** | |
TWI512531B (zh) | 用以處理blake安全雜湊演算法的方法、設備、系統及製品 | |
CN109690475A (zh) | 用于转移操作的硬件加速器和方法 | |
US20220382885A1 (en) | Cryptographic computing using encrypted base addresses and used in multi-tenant environments | |
CN110018850A (zh) | 用于可配置空间加速器中的多播的设备、方法和*** | |
CN104813294B (zh) | 用于任务可切换的同步硬件加速器的装置和方法 | |
CN104126170B (zh) | 打包数据操作掩码寄存器算术组合处理器、方法、***及指令 | |
TWI808869B (zh) | 硬體處理器及處理器 | |
TWI663545B (zh) | 執行置換運算的處理器 | |
KR20150112781A (ko) | 정렬 가속화 프로세서들, 방법들, 시스템들 및 명령어들 | |
CN106547518A (zh) | 用于加速器的低等待时间调用的装置和方法 | |
TWI550508B (zh) | 用於複製資料結構之設備及方法 | |
CN113051626A (zh) | 基于动态密钥推导的多密钥全存储器加密的方法和装置 | |
CN105051682B (zh) | 用于硬件设备的软件接口 | |
CN108351786A (zh) | 在指令集架构中对数据进行排序并且合并经排序数据 | |
CN104583940B (zh) | 用于skein256 sha3算法的处理器、方法、数据处理***和设备 | |
GB2496934A (en) | Multi-stage register renaming using dependency removal and renaming maps. | |
TW201732734A (zh) | 用於加速圖形分析的設備及方法 | |
CN200941211Y (zh) | 用于密码学运算的微处理器内核 | |
CN102521535A (zh) | 通过特定指令集来进行相关运算的信息安全协处理器 | |
CN108369510A (zh) | 用于以无序加载的置换的指令和逻辑 | |
WO2016024508A1 (ja) | マルチプロセッサ装置 |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 100083 Beijing City, Haidian District Wudaokou Wangzhuang Road No. 1 Tongfang Technology Plaza D floor 18 West Patentee after: Beijing Tongfang Microelectronics Company Address before: 100083 Beijing Tsinghua Tongfang science and Technology Square A block 2901 Patentee before: Beijing Tongfang Microelectronics Company |