CN1967470A - 处理安全消息认证控制指令 - Google Patents
处理安全消息认证控制指令 Download PDFInfo
- Publication number
- CN1967470A CN1967470A CNA2006101538089A CN200610153808A CN1967470A CN 1967470 A CN1967470 A CN 1967470A CN A2006101538089 A CNA2006101538089 A CN A2006101538089A CN 200610153808 A CN200610153808 A CN 200610153808A CN 1967470 A CN1967470 A CN 1967470A
- Authority
- CN
- China
- Prior art keywords
- operand
- instruction
- field
- symbol
- moving device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000006073 displacement reaction Methods 0.000 title claims description 43
- 238000004590 computer program Methods 0.000 claims abstract 3
- 230000008569 process Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 31
- 239000003054 catalyst Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000003607 modifier Substances 0.000 description 3
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Optimization (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Multi Processors (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Control Of Ac Motors In General (AREA)
- Communication Control (AREA)
- Massaging Devices (AREA)
- Percussion Or Vibration Massage (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
Abstract
一种用于为计算环境的存储器中的数据计算消息认证码的方法、系统和计算机程序产品。一条指令指定将为其计算认证码的存储单元。一计算操作为该存储单元计算认证码。
Description
本申请是国际申请号为PCT/GB2004/001925、国际申请日为2004年4月30日、中国国家申请号为200480012737.X、发明名称为“处理安全消息认证控制指令”的PCT专利申请的分案申请。
技术领域
本发明涉及计算机系统体系结构,尤其涉及扩充IBM z/体系结构并能被其他体系结构仿真的新指令。
背景技术
在本发明之前,从20世纪60年代被称为IBM系统360的机器开始,到目前为止,通过许多有高度才能的工程师们的工作,IBM已创建了一特殊的体系结构,因为它具有对于计算系统是基本的这样一种性质,而被称为“大型机”,其操作原理通过描述可在指令的该“大型机”实现上执行的指令而规定该机器的体系结构,这些指令由IBM的发明家发明,并且由于它们对改进由“大型机”所代表的计算机器的状况做出重大的贡献,所以被采纳为重大贡献而被包括在多年所规定的IBM的操作原理中。《z/体系结构操作原理》的第一版在2000年12月出版,并已作为SA22-7832-00,而成为标准的出版参考书。
我们确定,如此处所描述的,进一步的新的指令将有助于本技术领域并能被包括进z/体系结构机器中,也能被较简单机器中的其他体系结构仿真。
发明内容
本发明提供一种如权利要求1所要求的方法。
附图说明
从下面结合附图所作的详细的描述中,对技术熟练的人来说,本发明的优选实施例的特征将会是显然的,在附图中:
图1是一个RRE指令格式的计算消息认证码(KMAC)指令的图示;
图2是一个示出图1中KMAC指令的功能码的表;
图3是一个图1中KMAC指令的通用寄存器分配的图示;
图4示出用于按位异或的符号;
图5示出用于DEA加密和解密的符号;
图6示出KMAC-Query的参数块的格式;
图7示出KMAC-DEA的参数块的格式;
图8示出KMAC-DEA的操作;
图9示出KMAC-TDEA-128的参数块的格式;
图10示出KMAC-TDEA-128的操作;
图11示出KMAC-TDEA-192的参数块的格式;
图12示出KMAC-TDEA-192的操作;
图13是一个示出KMAC的执行优先级的表;
图14示出本发明的密码协处理器;以及
图15示出包含根据优选实施例的指令和数据的计算机存储器、以及用于或者在采用这些体系结构指令的计算机系统上或者在仿真本发明的体系结构指令时读取、解码和执行这些指令的机制的一般化优选实施例。
具体实施方式
将首先讨论计算消息认证码(KMAC)指令,然后讨论优选的计算机系统,或者可选地,讨论仿真具有用于执行该指令的不同体系结构的计算机系统的计算机系统。
计算消息认证码(KMAC)
图1示出RRE指令格式的计算消息认证码(KMAC)指令。
执行通用寄存器0中的功能码指定的功能。忽略该指令的位16-23和R1字段。
通用寄存器0的位位置57-63包含功能码。图2示出已分配的功能码。所有其它功能码未被分配。通用寄存器0的位56必须为0;否则,认可一规定异常(specification exception)。忽略通用寄存器0的所有其它位。
通用寄存器1包含存储器中参数块最左侧字节的逻辑地址。在24位寻址模式中,通用寄存器1的位位置40-63的内容构成地址,忽略位位置0-39的内容。在31位寻址模式中,通用寄存器1的位位置33-63的内容构成地址,忽略位位置0-32的内容。
在64位寻址模式中,通用寄存器1的位位置0-63的内容组成地址。
图2示出计算消息认证码的功能码。
所有其他的功能码未被分配。查询功能提供了表明其它功能的可用性的手段。忽略通用寄存器R2和R2+1的内容。
对于所有其他的功能,按照功能码所指定的,使用参数块中的初始链值对第二操作数进行处理,并用结果替换该链值。该操作也使用参数块中的密钥。该操作继续进行,直到到达第二操作数位置的末尾,或者处理完CPU确定的字节数,不管哪一个首先发生。结果在条件码中表明。R2字段指定一对寄-偶通用寄存器,并且必须指定一偶数寄存器;否则,认可一规定异常。
第二操作数的最左侧字节的位置由通用寄存器R2的内容指定。第二操作数位置中的字节数在通用寄存器R2+1中指定。
作为操作的一部分,通用寄存器R2的地址随着第二操作数中被处理的字节数递增,而通用寄存器R2+1的长度随着相同的数递减。地址和长度的形成和更新取决于寻址模式。
在24位寻址模式中,通用寄存器R2的位位置40-63的内容构成第二操作数的地址,并被忽略;更新地址的40-63位替换通用寄存器R_的相应位,忽略来自更新地址的位位置40的进位,并且将通用寄存器R_的位位置32-39的内容设为0。在31位寻址模式中,通用寄存器R_的位位置33-63的内容构成第二操作数的地址,而位位置0-32的内容被忽略;更新地址的33-63位替换通用寄存器R_的相应位,忽略来自更新地址的位位置33的进位,并且将通用寄存器R_的位位置32的内容设为0。在64位寻址模式中,通用寄存器R_的位位置0-63的内容构成第二操作数的地址;更新地址的0-63位替换通用寄存器R_的内容,并忽略来自更新地址的位位置0的进位。
在24位和31位两种寻址模式中,通用寄存器R2+1的位位置32-63的内容构成一个32位无符号二进制整数,该整数指定第二操作数中的字节数;且更新值替换通用寄存器R2+1的位位置32-63的内容。在64位寻址模式中,通用寄存器R2+1的位位置0-63的内容构成一个64位无符号二进制整数,该二进制整数指定第二操作数中的字节数;且更新值替换通用寄存器R2+1的内容。
在24位或31位寻址模式中,通用寄存器R2和R2+1的位位置0-31的内容一直保持不变。
图3示出刚才所描述的通用寄存器的内容。
在访问寄存器模式中,访问寄存器1和R2分别指定包含参数块和第二操作数的地址空间。
就如同处理从第二操作数的左端开始逐块地一直进行到右边那样获得结果。当处理完第二操作数的所有源字节时(称为正常完成),或当处理完CPU确定的少于第二操作数长度的块数时(称为部分完成),该操作结束。该CPU确定的块数取决于型号,且可能在每次执行指令时是一个不同的数。该CPU确定的块数通常为非0。在某些不寻常的情况下,该数有可能为0,且可将条件码3设置为无进展。但是,CPU防止这种无进展情况的无止境的重复发生。
当链值字段与第二操作数的任何部分重叠时,链值字段中的结果不可预知。
正常完成发生在通用寄存器R+1中所指定的第二操作数中的字节数被处理完时。
当由于正常完成操作结束时,设置条件码0并且R2+1中的结果值为0。在由于部分完成操作结束时,设置条件码3并且R2+1中的结果值为非0。
在第二操作数长度初始为0时,不访问第二操作数和参数块,不改变通用寄存器R2和R2+1,且设置条件码0。
如根据其他CPU和通道程序所观察的,对参数块和存储操作数的引用可以是多路访问引用,对这些存储器位置的访问不必是块并发的,并且这些访问或引用的次序是未定义的。
对于第二操作数的比在指令的单个执行中处理的更大的部分,可报告访问异常;但是,对于超出第二操作数长度的位置不认可访问异常,对于超出正在处理的当前位置4K字节以上的位置也不认可访问异常。
功能描述中所使用的符号
图4和图5的符号被用在随后的计算消息认证码功能的描述中。对于数据加密算法(DEA)功能,DEA密钥的每个字节中的DEA密钥奇偶位被忽略,并且不管该密钥的DEA密钥奇偶性,操作正常继续进行。
该数据加密算法的进一步的描述可参见Data Encryption Algorithm(数据加密算法),ANSI-X3.92.1981,American National Standard forInformation System(美国信息系统国家标准)。
KMAC-Query(功能码0)
图3中示出指令所使用的操作数和地址的位置。用于KMAC-Query功能的参数块其格式在图6中示出。
128位状态字存储在参数块中,该字段的位0-127分别相应于KMAC指令的功能码0-127。当一个位为1时,将安装相应的功能;否则,不安装该功能。
在KMAC-Query功能的执行完成时,对条件码0进行设置;条件码3不适用于该功能。
KMAC-DEA(功能码1)
图3中示出该指令所使用的操作数和地址的位置。
用于KMAC-DEA功能的参数块其格式在图7中示出。使用DEA算法及参数块中一个64位密钥和一个64位链值来计算操作数2中的8字节消息块(M1,M2,…,Mn)的消息认证码。
消息认证码,也称输出链值(OCV),被存储在参数块的链值字段中。KMAC-DEA操作在图8中示出。
KMAC-TDEA-128(功能码2)
图3中示出指令所使用的操作数和地址的位置。
用于KMAC-TDEA-128功能的参数块其格式在图9中示出。
使用TDEA算法及参数块中两个64位密钥和一个64位链值来计算操作数2中8字节消息块(M1,M2,…,Mn)的消息认证码。
消息认证码,也称输出链值(OCV),被存储在参数块的链值字段中。KMAC-TDEA-128操作在图10中示出。
KMAC-TDEA-192(功能码3)
图3中示出指令所使用的操作数和地址的位置。
用于KMAC-TDEA-192功能的参数块其格式在图11中示出。
使用TDEA算法及参数块中三个64位密钥和一个64位链值来计算操作数2中的8字节消息块(M1,M2,…,Mn)的消息认证码。
消息认证码,也称输出链值(OCV),被存储在参数块的链值字段中。KMAC-TDEA-192操作在图12中示出。
KMAC的特殊条件
如果发生下列任何情况,则认可规定异常,且不采取任何其它动作:
1.通用寄存器0的位56为非0。
2.通用寄存器0的位57-63指定一个未分配的或未安装的功能码。
3.R字段指定一个奇数寄存器或通用寄存器0。
4.第二操作数长度不是指定功能的数据块大小的倍数(参见第7-92页图7-54以确定用于计算消息认证码功能的数据块大小)。
结果条件代码:
0正常完成
1—
2—
3部分完成
程序异常:
·访问(读取,操作数2,密钥;读取和存储,链值)
·操作(若没有安装消息安全帮助)
·规定
编程注释:
1.通用寄存器0的位56保留用于将来的扩展,且应当设为0。
2.当设置条件码3时,通用寄存器R2和R2+1中相应的第二操作数地址与长度以及参数块中的链值通常被更新,以便程序可以简单分支回到该指令以继续操作。对于不寻常的情形,CPU防止无进展情况下无止境的重复发生。这样,每当设置了条件码3,程序都能安全分支回到该指令,而不会进入无止境循环。
3.如果第二操作数的长度初始为非0,且设置条件码0,则以与对于条件码3同样的方式更新寄存器;此种情况下的链值是这样的,即可以对附加的操作数进行处理就像它们是同一链中的部分。
4.在处理消息的第一部分之前,程序必须为链值字段设置初始值。为遵守ANSI X9.9或X9.19,初始链值应被设为全部为二进制0。
密码协处理器:
优选的实施例提供了密码协处理器,该密码协处理器可与此处所描述的指令一起使用,并执行密码消息,以及协助各种链式消息任务,所述链式消息任务可与适当指令一起用于链式和密码用途。
图14示出该密码协处理器,它直接附接于数据通路上,该数据通路为具有多个执行流水线的通用微处理器上的所有内部执行单元公用。微处理器内部总线(1)对于所有其他附接于密码控制单元(2)的执行单元公用,且该控制单元监视总线上它应执行的处理器指令。
密码控制单元提供密码协处理器,该密码协处理器直接附接于数据通路,该数据通路对通用微处理器上的中央处理单元的所有内部执行单元公用,该通用微处理器为该中央处理单元提供了可用的硬件(在具有多个执行流水线的优选实施例中的E0…En,或它们的组合)。当在命令寄存器(3)中遇到密码指令时,控制单元(2)从可用的硬件中调用适当的算法。操作数数据经过输入FIFO寄存器(4)在同一内部微处理器总线上进行传递。当操作完成时,在状态寄存器(6)中设置一个标志,且结果可从输出FIFO寄存器(5)中读出。
本发明的示出的优选实施例被设计成可扩展的,以便包括根据系统的性能目标特定实现所需要的那样多的硬件引擎。到输入和输出寄存器(7)的数据通路在所有的引擎中是公用的。
本发明的密码功能的优选实施例在CPU上的执行单元硬件中实现,并且此实现能够降低调用和执行加密操作的等待时间并提高效率。
这种减少的等待时间大幅度提高了频繁进行很多加密操作的系统中通用处理器的性能,尤其是当仅涉及小量数据时。这允许这样一实现,该实现能显著加速在进行安全在线交易中涉及的过程。保证在线交易安全的最常用的方法包括一组3个算法。第一个算法在一会话中仅使用一次,且可在硬件中或软件中被实现,而其它操作在该会话的每个交易中被调用,并且使用本发明消除了调用外部硬件的等待时间的成本以及在软件中执行算法的时间上的成本。
在图15中,已概念性地示出如何在具有上述可以有效使用的微处理器的大型计算机上实现已在一优选的实施例中实现的功能,这一点我们已在IBM内在长位移工具计算机体系结构指令格式的一商业实现中实验地证明了,这些指令由程序员,通常是现在的“C”程序员使用。这些存储在存储介质中的指令格式可以在一台Z/体系结构IBM服务器中本机执行,或者可选地在执行其他体系结构的机器中执行。它们可以在现存及将来的IBM大型机服务器中和IBM的其它机器(例如p系列服务器和x系列服务器)上被仿真。它们可以在运行Linux的机器上执行,运行Linux的多种机器使用由IBM、Intel、AMD、Sun Microsystems和其它厂商制造的硬件。除在z/体系结构下的硬件上执行之外,也可以使用Linux执行,以及在使用Hercules、UMX、FXI或Platform Solutions的仿真的机器上执行,在这些机器上一般以一种仿真模式执行。在仿真模式中对被仿真的特定指令解码,并构建一子例程以实现该个别指令,如在一“C”子例程或驱动程序中,或使用为特定硬件提供驱动程序的某种其它方法,如本领域的技术人员在理解了优选实施例的描述后所能掌握的。各种软件和硬件仿真专利包括不限于US5551013、US6009261、US5574873、US6308255、US6463582、和US5790825,它们示出了实现对为不同机器进行体系结构设计的指令格式的仿真、以用于本领域的那些技术人员可用的目标机器的各种已知方法,以及以上引用的这些专利使用的商业软件技术。
在优选的实施例中,用于非超标量指令的现有的先前长位移指令格式由基址寄存器和12位无符号位移之和或基址寄存器、变址寄存器、及12位无符号位移之和构成操作数存储器地址,而新的长位移指令格式由基址寄存器和20位有符号位移之和或基址寄存器、变址寄存器、及20位有符号位移之和构成操作数存储器地址。
由图15所示,这些指令由处理器在硬件中执行,或通过所述指令集由在具有不同的本机指令集的计算机中执行的软件仿真来执行。在图15中,#501示出了包含指令和数据的计算机存储器。本发明中所描述的长位移指令最初将存储在这台计算机中。#502示出用于从计算机存储器中读取指令的机制,并也可以包含它已读取的这些指令的本地缓冲。然后将这些未处理的指令传送到指令解码器503,该指令解码器503确定所读取的指令类型。#504示出执行指令的机制。这可包括从存储器#501将数据加载到寄存器中,从寄存器将数据存回存储器中,或执行某种类型的算术或逻辑操作。这种要执行的操作的准确类型已先前由指令解码器确定。本发明中所描述的长位移指令将在此处被执行。如果长位移指令正在计算机系统中本机执行,那么这个图就按以上所述完成。然而,如果包含长位移指令的指令集体系结构正在另一台计算机上被仿真,以上的过程将在主计算机#505上的软件中被实现。在这种情况下,上述的机制通常将作为仿真器软件内的一个或多个软件子例程被实现。在两种情况下,指令都被读取、解码和执行。
更具体地说,这些体系结构化的指令可以用于这样的计算机体系结构中,该计算机体系结构具有现有的指令格式,这些格式具有用于构成操作数存储器地址的12位无符号位移,也具有附加的指令格式,这些格式提供附加的位移位,优选为20位,这些位组成扩展的用于构成操作数存储器地址的有符号位移。这些计算机体系结构化指令构成计算机软件,该软件存储在存储介质中,用于产生利用该计算机软件的处理器的代码运行,且包括由存储在计算机存储介质501中的编译器或仿真器/解释器所使用的指令码,其中该指令码的第一部分包括一操作码,该操作码指定要被执行的操作,而第二部分指定参与的操作数。长位移指令允许使用所述长位移工具指令直接寻址附加的地址。
如由图15示出的,这些指令在硬件中由处理器执行,或由在具有不同本机指令集的计算机上执行的软件仿真所述指令集而执行。
根据优选实施例的计算机体系结构,位移字段被定义为分两部分,低位部分是12位,称为DL,DL1用于操作数1或DL2用于操作数2,而高位部分是8位,称为DH,DH1用于操作数1或DH2用于操作数2。
此外,优选的计算机体系结构有这样的指令格式,即操作码在位位置0-7和位位置40-47,称为R1的目标寄存器在位位置8-11,称为X2的变址寄存器在位位置12-15,称为B2的基址寄存器在位位置16-19,位移由两部分组成,称为DL2的第一部分在位位置20-31,而称为DH2的第二部分在位位置32-39。
该计算机体系结构有这样的指令格式,即操作码在位位置0-7和位位置40-47,称为R1的目标寄存器在位位置8-11,称为R3的源寄存器在位位置12-15,称为B2的基址寄存器在位位置16-19,位移由两部分组成,称为DL2的第一部分在位位置20-31,而称为DH2的第二部分在位位置32-39。
此外,具有长位移工具的本计算机体系结构指令有这样的指令格式,即操作码在位位置0-7和位位置40-47,称为R1的目标寄存器在位位置8-11,称为M3的掩码值在位位置12-15,称为B2的基址寄存器在位位置16-19,位移由两部分组成,称为DL2的第一部分在位位置20-31,而称为DH2的第二部分在位位置32-39。
如所示出的,该优选的具有长位移工具的计算机体系结构有这样的指令格式,即操作码在位位置0-7和位置40-47,称为I2的立即值在位位置8-15,称为B2的基址寄存器在位位置16-19,位移由两部分组成,称为DL1的第一部分在位位置20-31,而称为DH1的第二部分在位位置32-39。
当我们的长位移工具计算机体系结构使用创建的新的指令时,会有效地操作,这些新指令仅使用具有新的20位无符号位移的指令格式。
我们的计算机体系结构的特定实施例利用现有的指令,这些指令具有仅有12位无符号位移的指令格式,并且现在被定义成新的指令格式,这样或者当位移的高8位,即字段DH,全为0时,具有现存的12位无符号位移值,或者当位移的高8位,即字段DH,为非0时,具有20位有符号值。
一种用于为计算环境的存储器中的数据计算消息认证码的装置,该装置包括:
用于通过指令来指定将为其计算认证码的存储单元的装置;
用于为该存储单元计算认证码的装置。
Claims (14)
1.一种用于在中央处理单元中执行机器指令的方法,该方法包括以下步骤:
读取有符号位移机器指令以便执行,该有符号位移机器指令是根据一计算机体系结构为计算机执行定义的,该有符号位移机器指令包括操作码字段、操作数基地址字段和包含有符号位移值的有符号位移字段;
从由所述操作数基地址字段指定的位置获得操作数基地址;
如果所述有符号位移字段包含具有大小的负的位移值,则从所述操作数基地址算术地减去所述有符号位移值的大小,来确定操作数的地址;
如果所述有符号位移字段包含具有大小的正的位移值,则向所述操作数基地址算术地加上所述有符号位移值的大小,来确定操作数的地址;以及
执行由所述操作码字段定义的功能,其中所述功能使用所述被确定的地址处的操作数。
2.根据权利要求1的方法,还包括以下步骤:
从所述有符号位移字段检索所述有符号位移字段值;
从所述操作数基地址字段检索基地址字段值,该基地址字段值包括所述操作数基地址在存储器中的位置;
基于所述操作码字段值确定将执行的功能;
如果所述操作数是源操作数,则:
读取在所述被确定的地址处的操作数;
在所读取的操作数上执行所述被确定将执行的功能,来确定第一结果操作数的第一结果值;以及
存储所述执行步骤的所述第一结果操作数的第一结果值;
如果所述操作数是结果操作数,则:
读取源操作数;
在所读取的源操作数上执行所述被确定将执行的功能,来确定所述操作数的第二结果值;以及
在所述被确定的地址处存储所述执行步骤的所述操作数的第二结果值。
3.根据权利要求1的方法,其中所述有符号的位移字段包括有符号部分和无符号部分。
4.根据权利要求3的方法,其中所述有符号部分包括8位最高有效位部分,并且所述无符号部分包括12位最低有效位部分。
5.根据权利要求3的方法,其中所述有符号部分包括所述有符号位移字段的较低阶位。
6.根据权利要求3的方法,其中所述有符号位移机器指令的无符号部分占据与同一体系结构的无符号位移机器指令中的无符号位移字段相同的位位置。
7.根据权利要求1的方法,其中所述有符号位移机器指令包括48位,其中所述操作码包括:位0-7和40-47,第一操作数位置字段包括位8-11,第二操作数位置字段包括位12-15,所述基地址字段包括位16-19,所述有符号位移字段的最低有效部分包括位20-31,以及所述有符号位移字段的最高有效部分包括位32-39。
8.根据权利要求1的方法,其中为所述计算机体系结构定义的有符号位移机器指令是由另一计算机体系结构的中央处理单元读取和执行的,该方法还包括以下步骤:
解释所述有符号位移机器指令以识别用于仿真该有符号位移机器指令的操作的预定的软件子例程;以及
执行所述预定的软件子例程,以完成用于执行有符号位移机器指令的方法的步骤。
9.根据权利要求1的方法,其中所述计算机体系结构包括IBM z/Architecture,其中所述有符号位移机器指令格式包括RXY、RSY或SIY中的任何一个。
10.根据权利要求1的方法,其中所述有符号位移机器指令还包括第三操作数字段、掩码字段、或索引字段中的任何一个。
11.根据权利要求1的方法,其中所述被确定将执行的功能还使用这样的值,该值包括所述有符号位移机器指令的立即字段值、所述有符号位移机器指令的掩码字段值或这样的通用寄存器值中的任何一个,所述通用寄存器值是从由所述有符号位移机器指令的寄存器字段的值所确定的通用寄存器位置获得的。
12.一种用于在中央处理单元中执行机器指令的方法,该方法包括以下步骤:
读取有符号位移机器指令以便执行,该有符号位移机器指令是根据一计算机体系结构为计算机执行定义的,该有符号位移机器指令包括操作码字段、操作数基地址字段和包含有符号位移值的有符号位移字段,其特征在于该有符号位移值的符号位于该值的两部分之间;
从由所述操作数基地址字段指定的位置获得操作数基地址;
如果所述有符号位移字段包含具有大小的负的位移值,则从所述操作数基地址算术地减去所述有符号位移值的大小,来确定操作数的地址;
如果所述有符号位移字段包含具有大小的正的位移值,则向所述操作数基地址算术地加上所述有符号位移值的大小,来确定操作数的地址;以及
执行由所述操作码字段定义的功能,其中该功能使用所述被确定的地址处的操作数。
13.一种计算机程序,包括用于当所述计算机程序在计算机系统上被执行时执行根据上述任何方法权利要求的方法的所有步骤的指令。
14.一种系统,包括适应于执行根据上述任何权利要求的方法的所有步骤的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/435,910 | 2003-05-12 | ||
US10/435,910 US7356710B2 (en) | 2003-05-12 | 2003-05-12 | Security message authentication control instruction |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200480012737XA Division CN100363887C (zh) | 2003-05-12 | 2004-04-30 | 为计算环境的存储器的数据计算消息认证码的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1967470A true CN1967470A (zh) | 2007-05-23 |
CN100561423C CN100561423C (zh) | 2009-11-18 |
Family
ID=33417040
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101538089A Expired - Lifetime CN100561423C (zh) | 2003-05-12 | 2004-04-30 | 处理安全消息认证控制指令 |
CNB200480012737XA Expired - Lifetime CN100363887C (zh) | 2003-05-12 | 2004-04-30 | 为计算环境的存储器的数据计算消息认证码的方法和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200480012737XA Expired - Lifetime CN100363887C (zh) | 2003-05-12 | 2004-04-30 | 为计算环境的存储器的数据计算消息认证码的方法和系统 |
Country Status (15)
Country | Link |
---|---|
US (2) | US7356710B2 (zh) |
EP (2) | EP1588255B1 (zh) |
KR (2) | KR100745889B1 (zh) |
CN (2) | CN100561423C (zh) |
AT (2) | ATE373264T1 (zh) |
AU (1) | AU2004236860B2 (zh) |
CA (1) | CA2522995C (zh) |
DE (2) | DE602004004079T2 (zh) |
ES (1) | ES2278317T3 (zh) |
GB (2) | GB2414840B (zh) |
IL (1) | IL171907A0 (zh) |
PL (1) | PL1588255T3 (zh) |
RU (2) | RU2327204C2 (zh) |
TW (2) | TWI332158B (zh) |
WO (1) | WO2004099976A2 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802108B1 (en) * | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US8300806B2 (en) * | 2005-02-03 | 2012-10-30 | Yottamark, Inc. | Duo codes for product authentication |
US8155313B2 (en) * | 2005-02-03 | 2012-04-10 | Yottamark, Inc. | Systems and methods for employing duo codes for product authentication |
US7614546B2 (en) | 2005-02-03 | 2009-11-10 | Yottamark, Inc. | Method and system for deterring product counterfeiting, diversion and piracy |
US8649512B2 (en) * | 2005-02-03 | 2014-02-11 | Yottamark, Inc. | Duo codes for product authentication |
KR101123742B1 (ko) * | 2005-12-23 | 2012-03-16 | 삼성전자주식회사 | 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치 |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
US8887990B2 (en) | 2007-09-07 | 2014-11-18 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
US8342393B2 (en) * | 2007-09-07 | 2013-01-01 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
MX2010002554A (es) | 2007-09-07 | 2010-04-01 | Yottamark Inc | Metodos y sistemas de atribucion de informacion de cosecha con identificadores unicos. |
US8196827B1 (en) | 2009-05-22 | 2012-06-12 | Yottamark, Inc. | Case labeling for field-packed produce |
US8210430B1 (en) | 2011-02-24 | 2012-07-03 | Yottamark, Inc. | Methods for assigning traceability information to and retrieving traceability information from a store shelf |
US8428773B1 (en) | 2008-02-12 | 2013-04-23 | Yottamark, Inc. | Systems and methods of associating individual packages with harvest crates |
US8240564B2 (en) * | 2008-07-11 | 2012-08-14 | Yottamark, Inc. | Mobile table for implementing clamshell-to-case association |
US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2458331A1 (de) | 1973-12-13 | 1975-06-19 | Honeywell Inf Systems | Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes |
JPS56121138A (en) | 1980-02-28 | 1981-09-22 | Nippon Telegr & Teleph Corp <Ntt> | Buffer memory controlling system |
JPS56149645A (en) * | 1980-04-21 | 1981-11-19 | Nec Corp | Instruction word deciphering device of information processor |
US4578530A (en) | 1981-06-26 | 1986-03-25 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
US4432053A (en) * | 1981-06-29 | 1984-02-14 | Burroughs Corporation | Address generating apparatus and method |
JPS6110411A (ja) * | 1984-06-19 | 1986-01-17 | Daicel Chem Ind Ltd | 樹脂組成物 |
EP0206653B1 (en) * | 1985-06-28 | 1992-10-21 | Hewlett-Packard Company | Method and means for loading and storing data in a reduced instruction set computer |
US4829424A (en) | 1985-06-28 | 1989-05-09 | Hewlett-Packard Company | Maximal length immediates with fixed sign position |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
DE68926200T2 (de) | 1988-08-11 | 1996-10-17 | Ibm | Geheime Datenübertragung mittels Steuervektoren |
US5666411A (en) | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
US5673319A (en) | 1995-02-06 | 1997-09-30 | International Business Machines Corporation | Block cipher mode of operation for secure, length-preserving encryption |
US5765030A (en) * | 1996-07-19 | 1998-06-09 | Symantec Corp | Processor emulator module having a variable pre-fetch queue size for program execution |
US5787302A (en) | 1996-05-15 | 1998-07-28 | Philips Electronic North America Corporation | Software for producing instructions in a compressed format for a VLIW processor |
US20010025337A1 (en) | 1996-06-10 | 2001-09-27 | Frank Worrell | Microprocessor including a mode detector for setting compression mode |
JPH11249873A (ja) | 1998-03-02 | 1999-09-17 | Mitsubishi Electric Corp | ドライバ機能の動的管理方式及び動的管理方法 |
WO2001011818A2 (en) | 1999-08-09 | 2001-02-15 | Qualcomm Incorporated | Method and apparatus for generating a message authentication code |
US6542981B1 (en) * | 1999-12-28 | 2003-04-01 | Intel Corporation | Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
US20030002666A1 (en) | 2001-06-13 | 2003-01-02 | Takahashi Richard J. | Method and apparatus for creating a message digest using a parallel, one-way hash algorithm |
US7266703B2 (en) * | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
US20030028765A1 (en) | 2001-07-31 | 2003-02-06 | Cromer Daryl Carvis | Protecting information on a computer readable medium |
US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
-
2003
- 2003-05-12 US US10/435,910 patent/US7356710B2/en active Active
-
2004
- 2004-04-30 GB GB0518900A patent/GB2414840B/en not_active Expired - Fee Related
- 2004-04-30 AU AU2004236860A patent/AU2004236860B2/en not_active Expired
- 2004-04-30 EP EP04730603A patent/EP1588255B1/en not_active Expired - Lifetime
- 2004-04-30 ES ES04730603T patent/ES2278317T3/es not_active Expired - Lifetime
- 2004-04-30 RU RU2005138549/09A patent/RU2327204C2/ru active
- 2004-04-30 KR KR1020057019453A patent/KR100745889B1/ko active IP Right Grant
- 2004-04-30 DE DE602004004079T patent/DE602004004079T2/de not_active Expired - Lifetime
- 2004-04-30 AT AT05108499T patent/ATE373264T1/de not_active IP Right Cessation
- 2004-04-30 CA CA2522995A patent/CA2522995C/en not_active Expired - Lifetime
- 2004-04-30 GB GB0516205A patent/GB2413877B/en not_active Expired - Lifetime
- 2004-04-30 KR KR1020067015918A patent/KR20060103282A/ko not_active Application Discontinuation
- 2004-04-30 WO PCT/GB2004/001925 patent/WO2004099976A2/en active IP Right Grant
- 2004-04-30 PL PL04730603T patent/PL1588255T3/pl unknown
- 2004-04-30 AT AT04730603T patent/ATE350701T1/de active
- 2004-04-30 CN CNB2006101538089A patent/CN100561423C/zh not_active Expired - Lifetime
- 2004-04-30 DE DE602004008933T patent/DE602004008933D1/de not_active Withdrawn - After Issue
- 2004-04-30 CN CNB200480012737XA patent/CN100363887C/zh not_active Expired - Lifetime
- 2004-04-30 EP EP05108499A patent/EP1650648B1/en not_active Expired - Lifetime
- 2004-05-07 TW TW095132760A patent/TWI332158B/zh not_active IP Right Cessation
- 2004-05-07 TW TW093113009A patent/TWI354929B/zh not_active IP Right Cessation
-
2005
- 2005-11-10 IL IL171907A patent/IL171907A0/en active IP Right Grant
-
2007
- 2007-06-26 RU RU2007123775/09A patent/RU2007123775A/ru not_active Application Discontinuation
-
2008
- 2008-02-12 US US12/029,514 patent/US7770024B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1967470A (zh) | 处理安全消息认证控制指令 | |
JP4817185B2 (ja) | 埋め込み符号を持ったコンピュータ命令値フィールド | |
US10635823B2 (en) | Compiling techniques for hardening software programs against branching programming exploits | |
CN104040484B (zh) | 浮点缩放处理器、方法、系统和指令 | |
RU2334268C2 (ru) | Команды для поддержки обработки шифрованного сообщения | |
CN107077321A (zh) | 用于执行融合的单个周期递增‑比较‑跳转的指令和逻辑 | |
CN108139896A (zh) | 扩展虚拟机指令集体系架构 | |
CN108885551B (zh) | 存储器复制指令、处理器、方法和系统 | |
TWI781588B (zh) | 包含用於控制流向終止的模式特定結束分支之設備、系統及方法 | |
CN103109261B (zh) | 用于通用逻辑操作的方法和设备 | |
CN104335166A (zh) | 用于执行混洗和操作(混洗-操作)的系统、装置和方法 | |
JP6760935B2 (ja) | 多倍長整数(big integer)の算術演算を実行するための方法および装置 | |
CN108292220A (zh) | 用于加速图形分析的装置和方法 | |
CN104011665A (zh) | 超级乘加(超级madd)指令 | |
CN104951278A (zh) | 用于执行多个乘法操作的方法和装置 | |
JP2021515314A (ja) | コンパイルデバイス及び方法 | |
CN104050415A (zh) | 用于系统调用的稳健且高性能的指令 | |
US8707013B2 (en) | On-demand predicate registers | |
CN101030149A (zh) | 快速的基于补丁的方法调用 | |
JP4141112B2 (ja) | プロセッサおよびプロセッサシステム | |
TWI729033B (zh) | 控制轉移強制執行中的非追蹤控制轉移的方法及處理器 | |
US20080301654A1 (en) | Program processing apparatus, program processing method and computer readable information recording medium | |
CN114647443A (zh) | Isa操作码参数化和操作码空间布局随机化 | |
CN109344576B (zh) | 一种应用程序处理方法、装置、电子设备及可读存储介质 | |
CN116187228A (zh) | 一种指令解码模块及其生成方法、装置、芯片架构模拟器 |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20091118 |
|
CX01 | Expiry of patent term |