向量伽罗瓦域乘法求和与累加指令的制作方法_6

文档序号:9240015阅读:来源:国知局
熟知的。
[0巧引优选地,应用程序"看到的"地址通常被称为虚拟地址。虚拟地址有时候被称为"逻 辑地址"和"有效地址"。该些虚拟地址之所W虚拟,在于它们由多种动态地址转换(DAT) 技术中的一种重定向到物理存储器位置,所述动态地址转换技术包括但不限于简单地给 用偏移值给虚拟地址加前缀、经由一个或多个转换表转换虚拟地址,所述转换表优选地包 括至少一个段表和一个页表(单独地或组合地),优选地,段表具有指向页表的项。在Z/ Architec化re中,提供转换分级结构,包括区域第一表、区域第二表、区域第S表、段表和可 选的页表。地址转换的性能通常通过利用转换后备缓冲器(TLB)被改善,该转换后备缓冲 器包括将虚拟地址映射到相关的物理存储位置的项。当DAT使用转换表转换虚拟地址时, 创建项。于是,虚拟地址的随后使用可利用快的TLB的项,而不是慢的顺序转换表访问。TLB 内容可由包括LRU(最少最近使用)的多个替换算法来管理。
[0巧9] 在处理器是多处理器系统的处理器的情况下,每个处理器具有保持共享资源的责 任,所述共享资源诸如I/O、高速缓存、TLB和存储器,它们互锁W实现一致性。典型地,"窥 探"技术将被用于维持高速缓存一致性。在窥探环境中,每个高速缓存线可被标记为正处于 共享状态、独占状态、改变状态、无效状态等中的一个,W便有助于共享。
[0260]I/O单元5054(图14)向处理器提供用于附加到例如包括磁带、盘、打印机、显示 器和网络的外围设备的装置。I/O单元通常由软件驱动器向计算机程序呈现。在诸如来自 IBM的SystemZ的大型计算机中,通道适配器和开放系统适配器是提供操作系统和外围设 备之间的通信的大型计算机的I/O单元。
[0%1] 而且,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,环境可 包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括例如指令执行、诸如地址转 换的架构功能、W及架构寄存器)或其子集被仿真(例如,在具有处理器和存储器的本机计 算机系统中)。在该样的环境中,仿真器的一个或多个仿真功能可实施本发明的一个或多个 方面,即使执行仿真器的计算机可具有与正被仿真的能力不同的架构。作为一个例子,在仿 真模式中,解码正被仿真的特定指令或操作,且建立合适的仿真功能W实施单个指令或操 作。
[0262] 在仿真环境中,主计算机包括例如存储器W存储指令和数据;指令获取单元W从 存储器获取指令,且可选地,提供用于获取的指令的本地缓冲;指令解码单元W接收获取的 指令并确定已被获取的指令的类型;W及指令执行单元W执行该指令。执行可包括将数据 从存储器加载到寄存器;从寄存器将数据存储回存储器;或执行如由解码单元确定的某些 类型的算术或逻辑运算。在一个例子中,每个单元在软件中实现。例如,被所述单元执行的 操作被实现为仿真器软件中的一个或多个子例程。
[0%3] 更具体地,在大型计算机中,程序员(通常是如今的"C"程序员)一般通过编译器 应用使用架构机器指令。存储在存储介质中的该些指令可W在z/ArchhecturelBM風 服务器中本机地执行,或在执行其他架构的机器中执行。它们可在现有的和未来的化M?, 大型计算机服务器W及!BM?的其他机器(例如,PowerSystems服务器和SystemX⑧ 服务器)中被仿真。它们可在使用由IBlVl⑩、In化1⑩、AMD?等制造的硬件的各种机器 上运行Linux的机器中被执行。除了在z/Architec化re下的该硬件上执行,Linux也可被 用于该样的机器,其使用由Hercules、UMX或FSI(F^mdamentalSoftware,Inc)(其中一般 地执行是处于仿真模式中)提供的仿真。在仿真模式中,仿真软件由本机处理器执行W仿 真被仿真处理器的架构。
[0264]本机处理器典型地执行仿真软件,其包括固件或本机操作系统,W执行被仿真处 理器的仿真程序。仿真软件负责获取并执行被仿真处理器架构的指令。仿真软件维护仿 真的程序计数器W保持跟踪指令界限。仿真软件可一次获取一个或多个仿真的机器指令, 并将所述一个或多个仿真的机器指令转换为对应的本机机器指令组,W由本机处理器执 行。该些转换的指令可被高速缓存,该样可完成更快的转换。仿真软件将维持被仿真的处 理器架构的架构规则W保证为被仿真处理器编写的操作系统和应用正确操作。而且,仿真 软件将提供由被仿真的处理器架构确定的资源,包括但不限于控制寄存器、通用寄存器、浮 点寄存器、例如包括段表和页表的动态地址转换功能、中断机制、上下文转换机制、日中时 间(TOD)时钟和到I/O子系统的架构接口,该样被设计为在被仿真处理器上运行的操作系 统或应用程序可在具有仿真软件的本机处理器上运行。
[0265] 解码正被仿真的特定指令,且调用子例程W执行该单个指令的功能。仿真被仿 真处理器的功能的仿真软件功能例如在"C"子例程或驱动器中实现,或由提供用于特定 硬件的驱动器的其他方法实现,如本领域技术人员在理解一个或多个实施例的描述后 将理解的。包括但不限于Beausoleil等人的标题为"MultiprocessorforHardware Emulation"的美国专利证书号5, 551, 013 ;W及Scalzi等人的标题为"Preprocessing ofStoredTargetRoutinesforEmulatingIncompatibleInstructionsonaTarget Processor"的美国专利证书号6, 009, 261 ;W及Davidian等人的标题为"Decoding GuestInstructiontoDirectlyAccessEmulationRoutinesthatEmulatethe GuestInstructions"的美国专利证书号,5, 574, 873 ;W及Gorishek等人的标题为 "SymmetricalMultiprocessingBusandChipsetUsedforCoprocessorSupport AllowingNon-NativeCodetoRuninaSystem"的美国专利证书号 6, 308, 255;W及 Lethin等人的标题为"DynamicOptimizingObjectCodeTranslatorforArchitecture EmulationandDynamicOptimizingObjectCodeTranslationMethod"的美国专利证书 号 6, 463, 582,;W及化icTraut的标题为"MethodforEmulatingGuestInstructions onaHostComputerThroughDynamicRecompilationofHostInstructions"的美国专 利证书号5, 790, 825 (该些专利的全部内容在此纳入作为参考);W及许多其他专利的各种 软件和硬件仿真专利示出各种已知的方式来实现针对可为本领域技术人员获得的目标机 器对为不同机器进行架构设计的指令格式的仿真。
[0%6] 在图16中,提供了仿真主计算机系统5092的例子,其仿真主架构的主计算机系统 5000'。在仿真主计算机系统5092中,主处理器(CPU) 5091是仿真主处理器(或虚拟主处 理器),并包括具有与主计算机5000'的处理器5091不同的本机指令集架构的仿真处理器 5093。仿真主计算机系统5092具有可被仿真处理器5093访问的存储器5094。在示例性实 施例中,存储器5094被分区为主计算机存储器5096部分和仿真例程5097部分。根据主计 算机架构,主计算机存储器5096对于仿真主计算机5092的程序来说是可用的。仿真处理器 5093执行与被仿真处理器5091不同架构的架构指令集的本机指令(即来自仿真程序处理 器5097的本机指令),且可通过使用从顺序和访问/解码例程获得的一个或多个指令从主 计算机存储器5096中的程序访问用于执行的主机指令,所述顺序和访问/解码例程可解码 访问的主机指令,W确定用于仿真被访问的主机指令的功能的本机指令执行例程。被定义 用于主计算机系统5000'架构的其他工具可被架构工具例程仿真,所述架构工具例程包括 诸如通用寄存器、控制寄存器、动态地址转换和1/0子系统支持和处理器高速缓存等工具。 仿真例程也可利用在仿真处理器5093中可获得的功能(诸如通用寄存器和虚拟地址的动 态转换)W改善仿真例程的性能。也可提供专用硬件和卸载引擎W辅助处理器5093来仿 真主计算机5000'的功能。
[0%7] 在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的, 单数形式"一"、"一个"和"该"也旨在包括复数形式,除非上下文另外清楚地指明。还将理 解,当在说明书中使用时,术语"包括"和/或"包含"指明存在所述的特征、整体、步骤、操 作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/ 或组件。
[0268] 所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作W及等 价物,如有的话,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述 功能的任何结构、材料或操作。呈现一个或多个方面的说明是为了示出和描述的作用,但不 是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说 是明显的,且不脱离一个或多个方面的范围和精神。选择和描述实施例是为了最佳地解释 一个或多个方面的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用 途的具有各种修改的各种实施例理解一个或多个方面。
【主权项】
1. 一种用于在中央处理单元中执行机器指令的计算机系统,所述计算机系统包括: 存储器;以及 处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一种方法,所述方法 包括: 由处理器获得用于执行的机器指令,所述机器指令被定义为用于根据计算机架构的计 算机执行,所述机器指令包括: 至少一个操作码字段,其提供操作码,所述操作码标识向量伽罗瓦域乘法求和与累加 操作; 第一寄存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数; 第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数; 第三寄存器字段,其被用于指定第三寄存器,所述第三寄存器包括第三操作数; 第四寄存器字段,其被用于指定第四寄存器,所述第四寄存器包括第四操作数;以及 执行所述机器指令,所述执行包括: 使用无进位乘法将所述第二操作数的一个或多个元素与所述第三操作数的一个或多 个元素相乘以获得多个乘积; 针对所述多个乘积执行第一数学运算以获得第一结果; 针对所述第一结果和所述第四操作数的一个或多个选定元素执行第二数学运算以获 得第二结果;以及 将所述第二结果放入所述第一操作数内。2. 根据权利要求1所述的计算机系统,其中所述相乘包括使用无进位乘法将所述第二 操作数的每个元素与所述第三操作数的对应元素相乘,从而产生奇-偶双元素大小的乘积 对。3. 根据权利要求2所述的计算机系统,其中所述第一数学运算包括异或运算,并且其 中所述奇-偶双元素大小的乘积对被相互异或以获得所述第一结果。4. 根据权利要求3所述的计算机系统,其中所述第二数学运算包括异或运算,并且其 中将所述第一结果与所述第四操作数的对应双宽元素进行异或以获得所述第二结果。5. 根据权利要求1所述的计算机系统,其中所述机器指令进一步包括用于指定所述机 器指令的所述第一操作数、所述第二操作数、所述第三操作数或所述第四操作数中的一个 或多个的元素的大小的掩码字段。6. 根据权利要求5所述的计算机系统,其中所述掩码字段指定所述机器指令的所述第 二操作数和所述第三操作数的所述元素的大小,并且其中所述第一操作数和所述第四操作 数的所述元素的大小是所述第二操作数和所述第三操作数的所述元素的大小的两倍。7. 根据权利要求1所述的计算机系统,其中所述机器指令进一步包括被用于指定一个 或多个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一部分相组 合以指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组合以指定 所述第二寄存器,所述第三寄存器字段与所述扩展字段的第三部分相组合以指定所述第三 寄存器,以及所述第四寄存器字段与所述扩展字段的第四部分相组合以指定所述第四寄存 器。8. -种用于在中央处理单元中执行机器指令的方法,所述方法包括: 由处理器获得用于执行的机器指令,所述机器指令被定义为用于根据计算机架构的计 算机执行,所述机器指令包括: 至少一个操作码字段,其提供操作码,所述操作码标识向量伽罗瓦域乘法求和与累加 操作; 第一寄存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数; 第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数; 第三寄存器字段,其被用于指定第三寄存器,所述第三寄存器包括第三操作数; 第四寄存器字段,其被用于指定第四寄存器,所述第四寄存器包括第四操作数;以及 执行所述机器指令,所述执行包括: 使用无进位乘法将所述第二操作数的一个或多个元素与所述第三操作数的一个或多 个元素相乘以获得多个乘积; 针对所述多个乘积执行第一数学运算以获得第一结果; 针对所述第一结果和所述第四操作数的一个或多个选定元素执行第二数学运算以获 得第二结果;以及 将所述第二结果放入所述第一操作数内。9. 根据权利要求8所述的方法,其中所述机器指令进一步包括用于指定所述机器指令 的所述第一操作数、所述第二操作数、所述第三操作数或所述第四操作数中的一个或多个 的元素的大小的掩码字段。10. 根据权利要求8所述的方法,其中所述机器指令进一步包括被用于指定一个或多 个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一部分相组合以 指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组合以指定所述 第二寄存器,所述第三寄存器字段与所述扩展字段的第三部分相组合以指定所述第三寄存 器,以及所述第四寄存器字段与所述扩展字段的第四部分相组合以指定所述第四寄存器。11. 一种用于在中央处理单元中执行机器指令的计算机程序产品,所述计算机程序产 品包括: 计算机可读存储介质,其可被处理电路读取并且存储由所述处理电路执行以执行一种 方法的指令,所述方法包括: 由处理器获得用于执行的机器指令,所述机器指令被定义为用于根据计算机架构的计 算机执行,所述机器指令包括: 至少一个操作码字段,其提供操作码,所述操作码标识向量伽罗瓦域乘法求和与累加 操作; 第一寄存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作数; 第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包括第二操作数; 第三寄存器字段,其被用于指定第三寄存器,所述第三寄存器包括第三操作数; 第四寄存器字段,其被用于指定第四寄存器,所述第四寄存器包括第四操作数;以及 执行所述机器指令,所述执行包括: 使用无进位乘法将所述第二操作数的一个或多个元素与所述第三操作数的一个或多 个元素相乘以获得多个乘积; 针对所述多个乘积执行第一数学运算以获得第一结果; 针对所述第一结果和所述第四操作数的一个或多个选定元素执行第二数学运算以获 得第二结果;以及 将所述第二结果放入所述第一操作数内。12. 根据权利要求11所述的计算机程序产品,其中所述相乘包括使用无进位乘法将所 述第二操作数的每个元素与所述第三操作数的对应元素相乘,从而产生奇-偶双元素大小 的乘积对。13. 根据权利要求12所述的计算机程序产品,其中所述无进位乘法的阶数为2。14. 根据权利要求12所述的计算机程序产品,其中所述第一数学运算包括异或运算, 并且其中所述奇-偶双元素大小的乘积对被相互异或以获得所述第一结果。15. 根据权利要求14所述的计算机程序产品,其中所述第二数学运算包括异或运算, 并且其中将所述第一结果与所述第四操作数的对应双宽元素进行异或以获得所述第二结 果。16. 根据权利要求15所述的计算机程序产品,其中所述放入包括将所述第二结果放入 所述第一操作数的双宽元素内。17. 根据权利要求11所述的计算机程序产品,其中所述机器指令进一步包括用于指定 所述机器指令的所述第一操作数、所述第二操作数、所述第三操作数或所述第四操作数中 的一个或多个的元素的大小的掩码字段。18. 根据权利要求17所述的计算机程序产品,其中所述掩码字段指定所述机器指令的 所述第二操作数和所述第三操作数的所述元素的大小。19. 根据权利要求18所述的计算机程序产品,其中所述第一操作数和所述第四操作数 的所述元素的大小是所述第二操作数和所述第三操作数的所述元素的大小的两倍。20. 根据权利要求11所述的计算机程序产品,其中所述机器指令进一步包括被用于指 定一个或多个寄存器的扩展字段,并且其中所述第一寄存器字段与所述扩展字段的第一部 分相组合以指定所述第一寄存器,所述第二寄存器字段与所述扩展字段的第二部分相组合 以指定所述第二寄存器,所述第三寄存器字段与所述扩展字段的第三部分相组合以指定所 述第三寄存器,以及所述第四寄存器字段与所述扩展字段的第四部分相组合以指定所述第 四寄存器。
【专利摘要】一种向量伽罗瓦域乘法求和与累加指令。将所述指令的第二操作数的每个元素在伽罗瓦域中与第三操作数的对应元素相乘以提供一个或多个乘积。所述一个或多个乘积被相互异或并且被与所述指令的第四操作数的对应元素进行异或。结果被放入选定操作数内。
【IPC分类】G06F9/30
【公开号】CN104956323
【申请号】CN201480005770
【发明人】J·D·布拉德伯里
【申请人】国际商业机器公司
【公开日】2015年9月30日
【申请日】2014年1月7日
【公告号】CA2895649A1, EP2948844A1, US20140208079, US20150074383, WO2014115046A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1