向量异常码的制作方法_6

文档序号:9240054阅读:来源:国知局
如由z/Architec化re长位移工具(facility)所例示的,其中该指令定义了基 寄存器、索引寄存器和立即字段(位移字段),它们加到一起,W提供例如存储器中的操作 数的地址。除非另外指明,此处的位置典型地意味着主存储器(主存储设备)中的位置。
[0237] 参考图15C,处理器使用加载/存储单元5060访问存储器。加载/存储单元5060 可W通过获取存储器5053中的目标操作数的地址并将操作数加载到寄存器5059或其他存 储器5053位置中,来执行加载操作,或可W通过获取存储器5053中的目标操作数的地址并 将从寄存器5059或另一个存储器5053位置获得的数据存储在存储器5053中的目标操作 数位置,来执行存储操作。加载/存储单元5060可W是推测性的,且可WW相对于指令顺 序来说无序的顺序访问存储器,但是加载/存储单元5060将向程序维持指令按顺序执行的 外观。加载/存储单元5060可与通用寄存器5059、解密/分派单元5056、高速缓存/存储 器接口 5053或其他元件5083通信,且包括各种寄存器电路、ALU5085和控制逻辑5090W 计算存储器地址并提供流水线顺序W使操作保持次序。一些操作可不按顺序,但加载/存 储单元提供功能W使不按顺序执行的操作对程序看起来如已按顺序执行一样,如本领域所 熟知的。
[023引优选地,应用程序"看到的"地址通常被称为虚拟地址。虚拟地址有时候被称为"逻 辑地址"和"有效地址"。该些虚拟地址之所W虚拟,在于它们由多种动态地址转换(DAT) 技术中的一种重定向到物理存储器位置,所述动态地址转换技术包括但不限于简单地给 用偏移值给虚拟地址加前缀、经由一个或多个转换表转换虚拟地址,所述转换表优选地包 括至少一个段表和一个页表(单独地或组合地),优选地,段表具有指向页表的项。在Z/ Architec化re中,提供转换分级结构,包括区域第一表、区域第二表、区域第S表、段表和可 选的页表。地址转换的性能通常通过利用转换后备缓冲器(TLB)被改善,该转换后备缓冲 器包括将虚拟地址映射到相关的物理存储位置的项。当DAT使用转换表转换虚拟地址时, 创建项。于是,虚拟地址的随后使用可利用快的TLB的项,而不是慢的顺序转换表访问。TLB 内容可由包括LRU(最少最近使用)的多个替换算法来管理。
[0239] 在处理器是多处理器系统的处理器的情况下,每个处理器具有保持共享资源的责 任,所述共享资源诸如I/O、高速缓存、TLB和存储器,它们互锁W实现一致性。典型地,"窥 探"技术将被用于维持高速缓存一致性。在窥探环境中,每个高速缓存线可被标记为正处于 共享状态、独占状态、改变状态、无效状态等中的一个,W便有助于共享。
[0240] I/O单元5054(图14)向处理器提供用于附加到例如包括磁带、盘、打印机、显示 器和网络的外围设备的装置。I/O单元通常由软件驱动器向计算机程序呈现。在诸如来自 IBM的SystemZ的大型计算机中,通道适配器和开放系统适配器是提供操作系统和外围设 备之间的通信的大型计算机的I/O单元。
[0241] 而且,其他类型的计算环境可受益于本发明的一个或多个方面。作为例子,环境可 包括仿真器(例如,软件或其他仿真机制),其中特定架构(包括例如指令执行、诸如地址转 换的架构功能、W及架构寄存器)或其子集被仿真(例如,在具有处理器和存储器的本机计 算机系统中)。在该样的环境中,仿真器的一个或多个仿真功能可实施本发明的一个或多个 方面,即使执行仿真器的计算机可具有与正被仿真的能力不同的架构。作为一个例子,在仿 真模式中,解码正被仿真的特定指令或操作,且建立合适的仿真功能W实施单个指令或操 作。
[0242] 在仿真环境中,主计算机包括例如存储器W存储指令和数据;指令获取单元W从 存储器获取指令,且可选地,提供用于获取的指令的本地缓冲;指令解码单元W接收获取的 指令并确定已被获取的指令的类型;W及指令执行单元W执行该指令。执行可包括将数据 从存储器加载到寄存器;从寄存器将数据存储回存储器;或执行如由解码单元确定的某些 类型的算术或逻辑运算。在一个例子中,每个单元在软件中实现。例如,被所述单元执行的 操作被实现为仿真器软件中的一个或多个子例程。
[0243] 更具体地,在大型计算机中,程序员(通常是如今的"C"程序员)一般通过编译器 应用使用架构机器指令。存储在存储介质中的该些指令可W在z/Archi化CtureIBJVl風 服务器中本机地执行,或在执行其他架构的机器中执行。它们可在现有的和未来的IBM?, 大型计算机服务器W及IBM?'的其他机器(例如,PowerSystems服务器和SystemX?, 服务器)中被仿真。它们可在使用由IBM⑩、Intel⑩、AMD?等制造的硬件的各种机器 上运行Linux的机器中被执行。除了在z/Architec化re下的该硬件上执行,Linux也可被 用于该样的机器,其使用由Hercules、UMX或FSI(F^mdamentalSoftware,Inc)(其中一般 地执行是处于仿真模式中)提供的仿真。在仿真模式中,仿真软件由本机处理器执行W仿 真被仿真处理器的架构。
[0244] 本机处理器典型地执行仿真软件,其包括固件或本机操作系统,W执行被仿真处 理器的仿真程序。仿真软件负责获取并执行被仿真处理器架构的指令。仿真软件维护仿 真的程序计数器W保持跟踪指令界限。仿真软件可一次获取一个或多个仿真的机器指令, 并将所述一个或多个仿真的机器指令转换为对应的本机机器指令组,W由本机处理器执 行。该些转换的指令可被高速缓存,该样可完成更快的转换。仿真软件将维持被仿真的处 理器架构的架构规则W保证为被仿真处理器编写的操作系统和应用正确操作。而且,仿真 软件将提供由被仿真的处理器架构确定的资源,包括但不限于控制寄存器、通用寄存器、浮 点寄存器、例如包括段表和页表的动态地址转换功能、中断机制、上下文转换机制、日中时 间(TOD)时钟和到I/O子系统的架构接口,该样被设计为在被仿真处理器上运行的操作系 统或应用程序可在具有仿真软件的本机处理器上运行。
[0245] 解码正被仿真的特定指令,且调用子例程W执行该单个指令的功能。仿真被仿 真处理器的功能的仿真软件功能例如在"C"子例程或驱动器中实现,或由提供用于特定 硬件的驱动器的其他方法实现,如本领域技术人员在理解一个或多个实施例的描述后 将理解的。包括但不限于Beausoleil等人的标题为"MultiprocessorforHardware Emulation"的美国专利证书号5, 551, 013 ;W及Scalzi等人的标题为"Preprocessing ofStoredTargetRoutinesforEmulatingIncompatibleInstructionsonaTarget Processor"的美国专利证书号6, 009, 261 ;臥及Davidian等人的标题为"Decoding GuestInstructiontoDirectlyAccessEmulationRoutinesthatEmulatethe 加estInstructions"的美国专利证书号,5, 574, 873 ;臥及Gorishek等人的标题为 "SymmetricalMultiprocessingBusandChipsetUsedforCoprocessorSupport AllowingNon-NativeCodetoRuninaSystem"的美国专利证书号 6, 308, 255;?及 Lethin等人的标题为"DynamicOptimizingObjectCodeTranslatorforArchitecture EmulationandDynamicOptimizingObjectCodeTranslationMethod"的美国专利证书 号 6, 463, 582,;W及化icTraut的标题为"MethodforEmulatingGuestInstructions onaHostComputerThroughDynamicRecompilationofHostInstructions"的美国专 利证书号5, 790, 825 (该些专利的全部内容在此纳入作为参考);W及许多其他专利的各种 软件和硬件仿真专利示出各种已知的方式来实现针对可为本领域技术人员获得的目标机 器对为不同机器进行架构设计的指令格式的仿真。
[0246] 在图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'的功能。
[0247] 在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的, 单数形式"一"、"一个"和"该"也旨在包括复数形式,除非上下文另外清楚地指明。还将理 解,当在说明书中使用时,术语"包括"和/或"包含"指明存在所述的特征、整体、步骤、操 作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/ 或组件。
[024引所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作W及等 价物,如有的话,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述 功能的任何结构、材料或操作。呈现一个或多个方面的说明是为了示出和描述的作用,但不 是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说 是明显的,且不脱离一个或多个方面的范围和精神。选择和描述实施例是为了最佳地解释 一个或多个方面的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用 途的具有各种修改的各种实施例理解一个或多个方面。
【主权项】
1. 一种用于促进异常处理的计算机程序产品,所述计算机程序产品包括: 计算机可读存储介质,其可被处理电路读取并且存储由所述处理电路执行以执行一种 方法的指令,所述方法包括: 由处理器确定在计算环境内执行的指令已经导致异常,所述指令针对包括多个元素的 向量寄存器执行操作;以及 基于所述异常获得向量异常码,所述向量异常码包括所述向量寄存器的所述多个元素 中导致所述异常的元素的位置。2. 根据权利要求1所述的计算机程序产品,其中所述位置包括所述向量寄存器内与导 致所述异常的所述元素对应的索引。3. 根据权利要求1所述的计算机程序产品,其中所述位置包括所述向量寄存器中导致 所述异常的最低索引元素。4. 根据权利要求1所述的计算机程序产品,其中所述获得基于导致中断的所述异常。5. 根据权利要求1所述的计算机程序产品,其中所述向量异常码包括用于指定所述位 置的第一部分以及用于指定向量中断码的第二部分。6. 根据权利要求5所述的计算机程序产品,其中所述位置包括所述向量寄存器中导致 所述异常的最低索引元素。7. 根据权利要求5所述的计算机程序产品,其中所述向量中断码包括指示无效操作、 除以0、上溢、下溢或不准确结果中的一个的值。8. 根据权利要求1所述的计算机程序产品,其中所述方法进一步包括确定所述向量 寄存器中的哪个或哪些元素导致了所述异常,以及基于确定哪个或哪些元素导致了所述异 常,获得将被包括在所述向量异常码中的所述位置。9. 根据权利要求8所述的计算机程序产品,其中获得所述位置包括确定导致所述异常 的一个或多个元素的最低索引元素,以及使用所述最低索引元素的索引作为所述位置。10. -种用于促进异常处理的计算机系统,所述计算机系统包括: 存储器;以及 处理器,其与所述存储器通信,其中所述计算机系统被配置为执行一种方法,所述方法 包括: 由处理器确定在计算环境内执行的指令已经导致异常,所述指令针对包括多个元素的 向量寄存器执行操作;以及 基于所述异常获得向量异常码,所述向量异常码包括所述向量寄存器的所述多个元素 中导致所述异常的元素的位置。11. 根据权利要求10所述的计算机系统,其中所述位置包括所述向量寄存器内与导致 所述异常的所述元素对应的索引。12. 根据权利要求10所述的计算机系统,其中所述向量异常码包括用于指定所述位置 的第一部分以及用于指定向量中断码的第二部分。13. 根据权利要求12所述的计算机系统,其中所述位置包括所述向量寄存器内与导致 所述异常的所述元素对应的索引。14. 根据权利要求12所述的计算机系统,其中所述向量中断码包括指示无效操作、除 以0、上溢、下溢或不准确结果中的一个的值。15. 根据权利要求10所述的计算机系统,其中所述方法进一步包括确定所述向量寄存 器中的哪个或哪些元素导致了所述异常,以及基于确定哪个或哪些元素导致了所述异常, 获得将被包括在所述向量异常码中的所述位置,并且其中获得所述位置包括确定导致所述 异常的一个或多个元素的最低索引元素,以及使用所述最低索引元素的索引作为所述位 置。16. -种促进异常处理的方法,所述方法包括: 由处理器确定在计算环境内执行的指令已经导致异常,所述指令针对包括多个元素的 向量寄存器执行操作;以及 基于所述异常获得向量异常码,所述向量异常码包括所述向量寄存器的所述多个元素 中导致所述异常的元素的位置。17. 根据权利要求16所述的方法,其中所述位置包括所述向量寄存器中导致所述异常 的最低索引元素。18. 根据权利要求16所述的方法,其中所述向量异常码包括用于指定所述位置的第一 部分以及用于指定向量中断码的第二部分。19. 根据权利要求18所述的方法,其中所述向量中断码包括指示无效操作、除以0、上 溢、下溢或不准确结果中的一个的值。20. 根据权利要求16所述的方法,进一步包括确定所述向量寄存器中的哪个或哪些元 素导致了所述异常,以及基于确定哪个或哪些元素导致了所述异常,获得将被包括在所述 向量异常码中的所述位置,并且其中获得所述位置包括确定导致所述异常的一个或多个元 素的最低索引元素,以及使用所述最低索引元素的索引作为所述位置。
【专利摘要】促进向量异常处理。执行针对向量寄存器的一个或多个元素执行操作的向量指令。当在指令执行期间遇到异常时,提供向量异常码,所述异常码指示所述向量寄存器内导致所述异常的位置。所述向量异常码还包括所述异常的原因。
【IPC分类】G06F17/16
【公开号】CN104956364
【申请号】CN201380071197
【发明人】J·D·布拉德伯里, E·M·施瓦茨, T·什莱格尔, M·K·克施温德
【申请人】国际商业机器公司
【公开日】2015年9月30日
【申请日】2013年12月6日
【公告号】CA2895653A1, EP2948870A1, US20140208086, US20150143074, WO2014115002A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1