协助处理密码消息的指令的制作方法

文档序号:6480556阅读:123来源:国知局
专利名称:协助处理密码消息的指令的制作方法
技术领域
本发明涉及计算机系统体系结构,具体地说,涉及对新指令的处理,所述指令扩充了IBMz/Architecture并且能够由其他体系结构来仿真。
背景技术
在本发明之前,通过许多高度天才的工程师的工作,从开始于二十世纪六十年代的称为IBM System 360的计算机至今,IBM创建了一种特殊的体系结构,由于该体系结构对于计算系统的本质特性,其被称为“大型机”,它的操作原理通过描述指令规定了计算机的体系结构,所述指令可以在指令的“大型机”实现上来执行,所述指令由IBM的发明者所发明并且(由于它们对改进由所述“大型机”所代表的计算机器的状态的显著贡献)被采纳为显著贡献(通过包含在如多年来所陈述的IBM的操作原理中)。在2000年12月出版的《z/Architecture操作原理》(z/ArchitecturePrinciples of Operation)的第一版已成为标准的公开参考,即SA22-7832-00。
如这里所描述的,我们确定更多的新指令将有助于本领域并可以被包括在z/Architecture计算机中,并且还可以由他人在更简单的计算机中进行仿真。

发明内容
本发明提供了一种如权利要求1中所要求的方法。


通过以下结合附图对本发明的详细描述,本发明的优选实施例的特征对本领域的技术人员将是显而易见的,这些附图是图1是RRE指令格式的密码消息(KM)指令;图2是RRE指令格式的带链接的密码消息(KMC)指令;图3是示出了图1的密码消息指令的功能码的表格;图4是示出了图2的带链接的密码消息指令的功能码的表格;图5是用于KM和KMC指令的通用寄存器赋值的表示;图6示出了用于逐位异或的符号;图7示出了用于DEA加密和解密的符号;图8示出了用于KM-Query的参数块的格式;图9示出了KM-DEA的参数块;图10示出了KM-DEA加密操作;图11示出了KM-DEA解密操作;图12示出了用于KM-TDA-128的参数块的格式;图13示出了KM-TDEA-128加密操作;图14示出了KM-TDEA-128解密操作;图15示出了用于KM-TDEA-192的参数块的格式;图16示出了KM-TDEA-192加密操作;图17示出了KM-TDEA-192解密操作;图18示出了用于KMC-Query的参数块的格式;图19示出了用于KMC-DEA的参数块的格式;图20示出了KMC-DEA加密操作;图21示出了KMC-DEA解密操作;图22示出了用于KMC-TDEA-128的参数块的格式;图23示出了KMC-TDEA-128加密操作;图24示出了KMC-TDEA-128解密操作;图25示出了用于KMC-TDEA-128的参数块的格式;图26示出了KMC-TDEA-192加密操作;
图27示出了KMC-TDEA-192解密操作;图28是示出了KM和KMC的执行优先级的表格;图29示出了我们的加密协处理器;以及图30示出了计算机存储器存储的通用优选实施例,所述存储包含根据所述优选实施例的指令和数据,以及这样的机制,所述机制用于在采用这些架构的指令的计算机系统上或在对我们的架构的指令的仿真中取出、解码和执行这些指令。
具体实施例方式
首先将讨论密码消息(KM)指令和带链接的密码消息(KMC)指令,随后讨论用于执行这些指令的优选计算机系统。替代地,将讨论第二优选计算机系统,所述第二优选计算机系统仿真另一计算机系统以便执行这些指令。
密码消息(KM)图1是RRE指令格式的密码消息(KM)指令。
带链接的密码消息(KMC)图2是RRE指令格式的带链接的密码消息(KMC)指令。
由通用寄存器0中的功能码所指定的功能被执行。
所述指令的位16-23被忽略。通用寄存器0的位单元57-63包含功能码。图3和4分别示出了用于密码消息和带链接的密码消息的已分配的功能码。所有其他功能码未被分配。对于密码功能,位56是指定将执行加密还是解密操作的修改位。对于所有其他功能,此修改位被忽略。通用寄存器0的所有其他位被忽略。通用寄存器1包含存储器中的参数块的最左侧字节的逻辑地址。在24位寻址模式中,通用寄存器1的位单元40-63的内容构成了该地址,而位单元0-39的内容被忽略。在31位寻址模式中,通用寄存器1的位单元33-63的内容构成了该地址,而位单元0-32的内容被忽略。
在64位寻址模式中,通用寄存器1的位单元0-63的内容构成了该地址。
图3中示出了用于密码消息的功能码。
图4中示出了用于带链接的密码消息的功能码。
所有其他功能码未被分配。查询功能提供了指示其他功能的可用性的方法。对于查询功能,通用寄存器R1、R2和R1+1的内容被忽略。
对于所有其他功能,如功能码所指定的,使用参数块中的密钥来加密第二操作数,并将结果放置在第一操作数位置中。对于带链接的加密消息,加密还使用参数块中的初始链接值,并且作为该操作的一部分,更新该链接值。
R1字段指定一个通用寄存器并且必须指定一个偶数编号的寄存器;否则会识别为指定异常。
R2字段指定一对奇偶通用寄存器并且必须指定一个偶数编号的寄存器;否则会识别为指定异常。
由通用寄存器R1和R2的内容来分别指定第一和第二操作数的最左侧字节的位置。在通用寄存器R2+1中指定第二操作数位置中的字节数。第一操作数与第二操作数具有相同的长度。
作为操作的一部分,通用寄存器R1和R2中的地址以所处理的字节数递增,而通用寄存器R2+1中的长度以同一数字递减。地址和长度的形成和更新取决于寻址模式。
在24位寻址模式中,通用寄存器R1和R2的位单元40-63的内容分别构成了第一和第二操作数的地址,而位单元0-39的内容被忽略;更新后的地址的位40-63替换了通用寄存器R1和R2中的相应位,更新后的地址的位单元40的进位输出被忽略,并且通用寄存器R1和R2的位单元32-39的内容被设置为零。在31位寻址模式中,通用寄存器R1和R2的位单元33-63的内容分别构成了第一和第二操作数的地址,而位单元0-32的内容被忽略;更新后的地址的位33-63替换了通用寄存器R1和R2中的相应位,更新后的地址的位单元33的进位输出被忽略,并且通用寄存器R1和R2的位单元32的内容被设置为零。在64位寻址模式中,通用寄存器R1和R2的位单元0-63的内容分别构成了第一和第二操作数的地址;更新后的地址的位0-63替换了通用寄存器R1和R2的内容,并且位单元0的进位输出被忽略。
在24位和31位两种寻址模式中,通用寄存器R2+1的位单元32-63的内容构成了一个32位无符号二进制整数,该整数指定了第一和第二操作数中的字节数,而位单元0-31的内容被忽略;更新后的值的位32-63替换了通用寄存器R2+1中的相应位。在64位寻址模式中,通用寄存器R2+1的位单元0-63的内容构成了一个64位无符号二进制整数,该整数指定了第一和第二操作数中的字节数;并且更新后的值替换了通用寄存器R2+1的内容。
在24位或31位寻址模式中,通用寄存器R1、R2和R2+1的位单元0-31的内容始终保持不变。图5示出了刚才描述的通用寄存器的内容。
在存取寄存器模式中,存取寄存器1、R1和R2分别指定了包含参数块、第一和第二操作数的地址空间。
获得结果,如同处理从第一和第二操作数的左端逐块继续到右端那样。当第二操作数中如通用寄存器R2+1所指定的字节数已被处理并被放置在第一操作数位置时(称为正常完成)或当小于第二操作数长度的CPU确定的块数已被处理时(称为部分完成),所述操作终止。CPU确定的块数取决于模型,并且在每次执行指令时可以是不同的数。CPU确定的块数通常是非零的。在某些非正常情况下,该数可以是零,并且条件码3可在无进展的情况下被设置。但是,CPU会阻止此无进展情况的无限重复出现。
如果出现下列任一情况,则第一操作数位置和链接值字段中的结果是不可预知的1.密钥字段与第一操作数的任何部分重叠。
2.链接值字段与第一操作数或第二操作数的任何部分重叠。
3.第一与第二操作数破坏性地重叠。假定处理从左向右进行,一次一个字节,当数据已被移动到第一操作数位置中后,该第一操作数位置被用作一个源时,则操作数被称为破坏性地重叠。
当由于正常完成而终止操作时,条件码0被设置,并且R2+1中的结果值是零。当由于部分完成而终止操作时,条件码3被设置,并且R2+1中的结果值是非零。
当识别到存储交替(storage-alteration)PER事件时,在该事件被报告之前,将小于4K的额外字节存储在第一操作数位置中。
当第二操作数长度初始为零时,不存取参数块、第一和第二操作数,不改变通用寄存器R1、R2和R2+1,并且条件码0被设置。
当R1和R2字段的内容相同时,指定的寄存器的内容只以所处理的字节数来递增,而不以所处理的字节数的两倍来递增。
如其他CPU和通道程序所观察的,对参数块和存储操作数的引用可以是多存取引用,对这些存储单元的存取不一定是块并行的,并且这些存取或引用的顺序没有被定义。
在某些非正常情况下,可以通过设置条件码3来完成指令执行,而无需更新寄存器和链接值以反映所处理的第一和第二操作数的最后单元。在这种情况中所处理的单元的大小取决于状态和模型,但此大小是有限的,以使已被处理但尚未报告的第一和第二操作数的部分不会在存储器中重叠。在所有情况下,当适用时,对于所处理的所有第一操作数位置,更改位被设置并且PER存储交替事件被报告。
对于比在指令的单次执行中所处理的部分更大的操作数部分,可以报告存取异常;但是,对于超过操作数长度的位置或超过正在被处理的当前位置多于4K字节的位置,不会识别到存取异常。
功能描述中使用的符号下列符号被用于随后对密码消息和带链接的密码消息功能的描述中。对于数据加密算法(DEA)功能,DEA密钥的每个字节中的DEA密钥奇偶检验位被忽略,并且操作正常进行,与所述密钥的DEA密钥奇偶校验无关。数据加密算法的更多描述可在《数据加密算法》(“Data EncryptionAlgorithm”,ANSI-X3.92.1981,用于信息系统的美国国家标准)中找到。
图6示出了用于逐位异或的符号,图7示出了用于DEA加密和解密的符号。
KM-Query(KM功能码0)由指令使用的操作数和地址的位置如图5所示。
用于功能KM-Query的参数块具有如图8所示的格式。
一个128位状态字被存储在参数块中。此字段的位0-127分别对应于密码消息指令的功能码0-127。当某一位为1时,相应的功能被安装;否则,该功能没有被安装。
当KM-Query功能的执行完成时,条件码0被设置;条件码3不适用于此功能。
KM-DEA(KM功能码1)由指令使用的操作数和地址的位置如图5所示。
用于功能KM-DEA的参数块具有如图9所示的格式。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的64位密钥的DEA算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。每个明文块被独立地加密;即,在没有链接的情况下执行加密操作。在操作数1中存储密文块(C1,C2,…,Cn)。图10中示出了该操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的64位密钥的DEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。每个密文块被独立地解密;即,在没有链接的情况下执行解密操作。在操作数1中存储明文块(P1,P2,…,Pn)。图11中示出了该KM-DEA解密操作。
KM-TDEA-128(KM功能码2)由指令使用的操作数和地址的位置如图5所示。用于KM-TDEA-128功能的参数块如图12所示。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的两个64位密钥的TDEA(三重DEA)算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。每个明文块被独立地加密;即,在没有链接的情况下执行加密操作。在操作数1中存储密文块(C1,C2,…,Cn)。图13中示出了该KM-TDEA-128加密操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的两个64位密钥的TDEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。每个密文块被独立地解密;即,在没有链接的情况下执行解密操作。在操作数1中存储明文块(P1,P2,…,Pn)。图14中示出了该KM-TDEA-128解密操作。
KM-TDEA-192(KM功能码3)由指令使用的操作数和地址的位置如图5所示。
用于KM-TDEA-192功能的参数块具有如图15所示的格式。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的三个64位密钥的TDEA算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。每个明文块被独立地加密;即,在没有链接的情况下执行加密操作。在操作数1中存储密文块(C1,C2,…,Cn)。图16中示出了该KM-TDEA-192加密操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的三个64位密钥的TDEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。每个密文块被独立地解密;即,在没有链接的情况下执行解密操作。在操作数1中存储明文块(P1,P2,…,Pn)。图17中示出了该KM-TDEA-192解密操作。
KMC-Query(KMC功能码0)由指令使用的操作数和地址的位置如图5所示。
用于KMC-Query功能的参数块具有如图18所示的格式。
一个128位状态字被存储在参数块中。此字段的位0-127分别对应于带链接的密码消息指令的功能码0-127。当某一位为1时,相应的功能被安装;否则,该功能没有被安装。
当KMC-Query功能的执行完成时,条件码0被设置;条件码3不适用于此功能。
KMC-DEA(KMC功能码1)
由指令使用的操作数和地址的位置如图5所示。
用于KMC-DEA功能的参数块具有如图19所示的格式。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的64位密钥和64位链接值的DEA算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。
用于导出第一个密文块的链接值(称为初始链接值(ICV))是参数块中的链接值;用于导出每个后续密文块的链接值是相应的之前的密文块。密文块(C1,C2,…,Cn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图20中示出了该KMC-DEA加密操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的64位密钥和64位链接值的DEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。
用于导出第一个明文块的链接值(称为初始链接值(ICV))在参数块中;用于导出每个后续明文块的链接值是相应的之前的密文块。明文块(P1,P2,…,Pn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图21中示出了该KMC-DEA解密操作。
KMC-TDEA-128(KMC功能码2)由指令使用的操作数和地址的位置如图5所示。
用于KMC-TDEA-128功能的参数块具有如图22所示的格式。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的两个64位密钥和64位链接值的TDEA算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。
用于导出第一个密文块的链接值(称为初始链接值(ICV))是参数块中的链接值;用于导出每个后续密文块的链接值是相应的之前的密文块。密文块(C1,C2,…,Cn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图23中示出了该KMC-TDEA-128加密操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的两个64位密钥和64位链接值的TDEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。
用于导出第一个明文块的链接值(称为初始链接值(ICV))在参数块中;用于导出每个后续明文块的链接值是相应的之前的密文块。明文块(P1,P2,…,Pn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图24中示出了该KMC-TDEA-128操作。
KMC-TDEA-192(KMC功能码3)由指令使用的操作数和地址的位置如图5所示。
用于KMC-TDEA-192功能的参数块具有如图25所示的格式。
当通用寄存器0中的修改位为0时,执行加密操作。使用具有参数块中的三个64位密钥和64位链接值的TDEA算法来加密操作数2中的8字节明文块(P1,P2,…,Pn)。
用于导出第一个密文块的链接值(称为初始链接值(ICV))是参数块中的链接值;用于导出每个后续密文块的链接值是相应的之前的密文块。密文块(C1,C2,…,Cn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图26中示出了该KMC-TDEA-192加密操作。
当通用寄存器0中的修改位为1时,执行解密操作。使用具有参数块中的三个64位密钥和64位链接值的TDEA算法来解密操作数2中的8字节密文块(C1,C2,…,Cn)。
用于导出第一个明文块的链接值(称为初始链接值(ICV))在参数块中;用于导出每个后续明文块的链接值是相应的之前的密文块。明文块(P1,P2,…,Pn)被存储在操作数1中。最后一个密文块是输出链接值(OCV)并被存储在参数块的链接值字段中。图27中示出了该KMC-TDEA-192解密操作。
KM和KMC的特殊条件如果出现任一下列情况,指定异常被识别并且不会采取其他操作1.通用寄存器0的位57-63指定了一个未分配或未安装的功能码。
2.R1或R2字段指定了一个奇数的寄存器或通用寄存器0。
3.第二操作数长度不是指定功能的数据块大小的倍数(参见页7-35的图7-3以确定用于密码消息功能的数据块大小;参见页7-35的图7-4以确定用于带链接的密码消息功能的数据块大小)。此指定异常条件不适用于查询功能。
结果条件码0正常完成1--2--3部分完成程序异常存取(取出,操作数2和密钥;存储,操作数1;取出和存储,链接值)操作(如果没有安装消息安全协助)指定图28是示出了KM和KMC的执行优先级的表格。
编程注释1.当条件码3被设置时,包含参数块中的操作数地址和长度并且对于带链接的密码消息还包含链接值的通用寄存器通常会被更新,以使程序能够简单地转移回指令以便继续操作。
对于非正常情况,CPU会阻止无进展情况的无限重复出现,并且当将被再次处理的第一和第二操作数的部分在存储器中重叠时还会阻止设置条件码3。因此,无论何时条件码3被设置,程序都能够安全地转移回指令,且不会受到无限循环以及不正确地重试指令的影响。
2.如果初始地第二操作数的长度不为零并且条件码0被设置,则以与用于条件码3的方式相同的方式来更新寄存器。对于带链接的密码消息,这种情况中链接值是,以使附加的操作数能够被处理,好像它们是同一链接的一部分那样。
3.为节约存储器,第一与第二操作数可精确地重叠,或者第一操作数的起始点可以在第二操作数的起始点的左侧。在任一情况下,所述重叠都不是破坏性的。
加密协处理器优选实施例提供了一种加密协处理器,其能够与这里所述的指令一同使用,并被用于执行密码消息和协助各种链接消息任务,所述链接消息任务能够与适当的指令一同用于链接的和加密的使用。
图29示出了我们的加密协处理器,其与对通用微处理器上的所有内部执行单元是公共的数据路径直接相连并具有多个执行管道。对所有其他执行单元是公共的微处理器内部总线(1)被连接到加密控制单元(2),并且所述控制单元监视该总线上其应该执行的处理器指令。
所述加密控制单元提供了一种加密协处理器,该加密协处理器与对通用微处理器上的中央处理单元的所有内部执行单元是公共的数据路径直接相连,所述通用微处理器为该中央处理单元提供了可用的硬件(E0...En,或在具有多个执行管道的优选实施例中,来自它们的组合)。当在命令寄存器(3)中遇到加密指令时,控制单元(2)从可用硬件中调用适当的算法。通过输入FIFO寄存器(4)在同一内部微处理器总线上传送操作数数据。当操作完成时,在状态寄存器(6)中设置标记,并且可以从输出FIFO寄存器(5)来读出结果。
所说明的本发明的优选实施例被设计成是可扩展的,以便包括如特定实现所需的硬件引擎(取决于系统的性能目标)。在所有引擎之间,到输入和输出寄存器(7)的数据路径是公共的。
本发明的加密功能的优选实施例在CPU上的执行单元硬件中实现,并且这种实现对于调用和执行加密操作能够实现较少的等待时间并提高了效率。
在频繁进行许多加密操作的系统中,这种减少的等待时间极大地提高了通用处理器的性能,特别是当只涉及少量数据时。这允许这样的实现,所述实现能够显著地加速进行安全联机事务中所涉及的诸过程。保护联机事务的最常用的方法涉及一组三个算法。第一个算法在会话中仅使用一次,且可以以硬件或软件来实现,而其他操作随该会话的每次事务被调用,并且借助本发明,同时消除了调用外部硬件的等待时间成本以及在软件中执行该算法的时间成本。
在图30中,我们已从概念上示出了如何实现我们在优选实施例中所具有的,所述优选实施例在具有上述微处理器的大型机中实现,所述微处理器可以被有效地用在(如我们在IBM内根据实验已证明的)长位移工具计算机架构的指令格式的商业实现中,所述指令由程序员(现今通常为“C”程序员)所使用。存储在存储介质中的这些指令格式可以在z/ArchitectureIBM服务器中被本地执行,或者可替代地,在执行其他体系结构的计算机中执行。在现有和将来的IBM主机服务器和IBM的其他计算机(例如,pSeries Server和xSeries Server)中可以对它们进行仿真。它们可以在运行Linux的计算机中或使用由IBM、Intel、AMD、Sun Microsystems以及其他公司生产的硬件的各种计算机上执行。除了在z/Architecture下的硬件上执行外,还可以使用Linux以及使用由Hercules、UMX、FXI或Platform Solutions仿真的计算机,其中通常执行处于仿真模式。在仿真模式中,解码被仿真的特定指令,并建立子例程以实现各个指令,如在“C”子例程或驱动程序中那样,或者在理解了优选实施例的描述之后,如在本领域的技术人员的范围之内,使用某些其他为特定硬件提供驱动程序的方法。各种软件和硬件仿真专利包括,但不限于,US 5551013、US 6009261、US 5574873、US 6308255、US 6463582以及US 5790825,这些专利示出了实现用于不同计算机架构的指令格式的仿真(用于本领域的技术人员可得到的目标计算机)的各种已知方法,以及示出了由以上参考所使用的那些商业软件技术。
在所述优选实施例中,通过对基址寄存器与12位无符号位移求和或对基址寄存器、变址寄存器与12位无符号位移求和,现有的用于非超标量指令的在先长位移指令格式构成了操作数存储地址,而通过对基址寄存器与20位带符号位移求和或对基址寄存器、变址寄存器与20位带符号位移求和,新的长位移指令格式构成了操作数存储地址。
如图30所示,这些指令在硬件中由处理器来执行,或者通过在具有不同本地指令集的计算机上执行的软件对所述指令集进行仿真来执行。
在图30中,#501示出了包含指令和数据的计算机存储器存储。本发明中描述的长位移指令初始地将被存储在此计算机中。#502示出了用于从计算机存储器取出指令的机制并且还可以包含其所取出的这些指令的本地缓冲。然后未处理的指令被传输给指令解码器(#503),指令解码器确定所取出的指令的类型。#504示出了用于执行指令的机制。这可以包括将数据从存储器(#501)加载到寄存器中、将数据从寄存器存回存储器或执行某种类型的算术或逻辑运算。将被执行的运算的确切类型已由指令解码器在先前确定。在此处将执行本发明中描述的长位移指令。如果所述长位移指令在计算机系统上正在被本地地执行,则如上所述此图被完成。但是,如果正在另一计算机上仿真包含长位移指令的指令集体系结构,则将在主机(#505)上的软件中实现上述过程。在此情况下,上述机制通常将被实现为仿真器软件内的一个或多个软件子例程。在以上两种情况中,指令都被取出、解码和执行。
更具体地说,这些架构的指令可以与具有现有指令格式的计算机体系结构一起使用,所述指令格式具有用于构成操作数存储地址的12位无符号位移,并且还可以与具有其他指令格式的计算机体系结构一起使用,所述指令格式提供了附加的位移位(优选地,20位),该附加的位移位包括用于构成操作数存储地址的扩展的带符号位移。这些计算机架构的指令包括存储在计算机存储介质中的计算机软件,用于产生在使用该计算机软件的处理器上运行的代码,以及包括由存储在计算机存储介质501中的编译器或仿真器/解释器所使用的指令代码,并且其中所述指令代码的第一部分包括指定将被执行的操作的操作码,第二部分指定了用于参与的操作数。借助使用长位移工具指令,长位移指令允许额外的地址被直接寻址。
如图30所示,这些指令在硬件中由处理器来执行,或者通过在具有不同本地指令集的计算机上执行的软件对所述指令集进行仿真来执行。
根据所述优选实施例的计算机体系结构,位移字段被定义成具有两个部分,12位的最低有效部分(称为DL),对于操作数1为DL1或者对于操作数2为DL2,以及8位的最高有效部分(称为DH),对于操作数1为DH1或者对于操作数2为DH2。
此外,优选的计算机体系结构具有这样的指令格式,以使操作码位于位单元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位无符号位移的指令格式,并且在新的指令格式中现在被定义成具有现有的12位无符号位移值(当位移和字段DH的高次8位都为零时),或者具有20位带符号的值(当位移和字段DH的高次8位都为非零时)。
一种用于加密或解密计算环境的存储器的装置,所述装置包括用于通过指令指定将被加密或解密的存储单元的装置;以及用于加密或解密所述存储单元的装置。
权利要求
1.一种加密或解密计算环境的存储器的方法,所述方法包括通过指令指定将被加密或解密的存储单元;以及加密或解密所述存储单元。
2.根据权利要求1的方法,其中所述指定包括提供与所述存储单元关联的数据结构的位置信息。
3.根据权利要求2的方法,其中所述位置信息包括所述数据结构的起始地址。
4.根据权利要求3的方法,其中所述位置信息还包括所述数据结构的表项的索引,所述表项对应于所述存储单元。
5.根据权利要求1的方法,其中所述加密或解密包括通过所述指令提供密钥。
6.根据权利要求1的方法,其中所述存储单元包括存储段和存储区中的一个,并且其中所述数据结构包括段数据结构和区数据结构中的一个。
7.根据权利要求1的方法,其中所述加密或解密通过所述指令来执行。
8.根据权利要求1的方法,其中所述加密或解密包括设置与所述存储单元关联的密钥。
9.根据权利要求1的方法,其中所述数据结构包括多个表项,并且其中所述加密或解密还包括采用索引来获得与所述将被加密或解密的存储单元关联的表项,所述表项具有所述密钥。
10.根据权利要求1的方法,其中所述存储单元包括存储段,所述存储段包括多个存储页。
11.根据权利要求1的方法,其中所述存储单元包括存储区,所述存储区包括多个存储段,一个存储段包括多个存储页。
12.根据权利要求1的方法,其中所述指定包括指定多个存储单元,并且所述加密或解密包括加密或解密所述多个存储单元。
13.根据权利要求12的方法,其中所述加密或解密包括用于加密或解密所述多个存储单元的链接操作。
14.根据权利要求1的方法,其中所述存储器包括虚拟存储器。
15.根据权利要求1的方法,其中所述指令以硬件、固件和软件中的至少一种来实现。
16.根据权利要求1的方法,其中所述指令由仿真所述指令的体系结构的处理单元来执行,所述指令的体系结构与所述处理单元的体系结构不同。
17.一种用于加密或解密计算环境的存储器的系统,所述系统包括用于执行任何上述方法权利要求的步骤的装置。
18.一种计算机程序产品,包括至少一个计算机可用介质,所述计算机可用介质具有用于执行任何上述方法权利要求的所述方法的计算机可读程序代码。
全文摘要
一种用于通过指令指定将被加密或解密的存储单元来加密或解密计算环境的存储器的方法、系统和程序产品。
文档编号G06F9/318GK1764881SQ200480007807
公开日2006年4月26日 申请日期2004年5月4日 优先权日2003年5月12日
发明者S·伦德瓦尔, R·史密斯, P·C-C·耶 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1