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

文档序号:9240015阅读:来源:国知局
ATTRIBUTE(提取高速缓存属性)指令,其返回高速缓存线的字 节大小。模型也可提供PR邸ETCHDATA(预取数据)和PR邸ETCHDATARELATIVELONG(预 取较长数据)指令,其实现存储到数据或指令高速缓存中的预取,或数据从高速缓存的释 放。
[0234] 存储器被视为位的长水平串。对于大部分操作来说,W从左到右的顺序进行对存 储器的访问。位串被细分为八个位的单位。八位单位被称为字节,其是所有信息格式的基 本构件。存储器中的每个字节位置由唯一的非负整数标识,该非负整数是该字节位置的地 址,或简称为字节地址。相邻的字节位置具有连续的地址,在左边从0开始且W从左到右的 顺序进行。地址是无符号二进制整数,且是24、31或64位。
[02巧]信息一次一个字节或一组字节地在存储器和CPU或通道子系统之间传递。除非另 有指定,例如在z/Architec化re中,存储器中的一组字节由该组的最左边的字节寻址。组 中的字节的数量可由将被执行的操作暗示或显式地指定。当在CPU操作中使用时,一组字 节被称为字段。在字节的每个组内,例如在z/Architecture中,位W从左到右的顺序被编 号。在z/Architecture中,最左边的位有时候被称为"高阶"位且最右边的位被称为"低 阶"位。但是,位数不是存储器地址。仅字节可被寻址。为了操作存储器中的字节的单个 位,访问整个字节。字节上的位从左到右被编号为0到7(例如在z/Architecture中)。对 于24位地址,地址中的位被编号为8-31或40-63,对于31位地址,编号为1-31或33-63, 对于64位地址,编号为0-63。在多个字节的任何其他的固定长度的格式中,构成格式的位 从0开始被连续编号。为了错误检测,且优选地为了校正,一个或多个校验位可与每一个字 节或一组字节一起被传递。该样的校验位由机器自动生成且不能被程序直接控制。存储容 量W字节的数量来表示。当存储器操作数字段的长度由指令的操作码暗示时,字段被称为 具有固定长度,其可W是一个、两个、四个、八个或十六个字节。可为某些指令暗示更大的字 段。当存储器操作数字段的长度没有被暗示,而是被显式地表示时,该字段被称为具有可变 长度。可变长度的操作数可W-个字节的增量(或者对于一些指令,W两个字节倍数或其 他倍数)在长度上可变。当信息被放在存储器中时,仅替换被包括在指定的字段中的那些 字节位置的内容,即使到存储器的物理路径的宽度可能大于正被存储的字段的长度。
[0236] 某些信息单元位于存储器中的整数界限上。对于信息单元,当其存储器地址是W 字节表示的单元长度的倍数时,界限被称为是整数的。特定的名称被给予整数界限上的2、 4、8和16字节的字段。半字是两字节边界上的一组两个连续的字节,且是指令的基本构件。 字是四字节边界上的一组四个连续的字节。双字是八字节边界上一组八个连续的字节。四 倍长字(quadword)是16字节边界上的一组16个连续的字节。当存储器地址指定半字、字、 双字和四倍长字时,地址的二进制表示分别包括一个、两个、=个或四个最右边的零位。指 令将位于二字节整数边界上。大多数指令的存储器操作数不具有界限对准要求。
[0237]在为指令和数据操作数实现单独的高速缓存的设备上,如果程序在高速缓存线中 存储且指令被随后从该高速缓存线获取,可经历显著的延迟,不管该存储是否改变随后被 获取的指令。
[023引在一个实施例中,本发明可被软件(有时候被称为许可的内部代码、固件、微代 码、毫代码、微微代码(PiCO-COde)等,其任何一个都将符合一个或多个方面)实施。参考 图11,体现一个或多个方面的软件程序代码可典型地由主系统5000的处理器5001从长期 存储介质设备5011(诸如CD-ROM驱动器、磁带驱动或硬盘驱动器)访问。软件程序代码可 体现在与数据处理系统一起使用的各种已知介质(诸如软磁盘、硬盘驱动或CD-ROM)中的 任何一个上。代码可在该样的介质上被分发,或可从一个计算机系统的计算机存储器5002 或存储设备通过网络5010被分发给其他计算机系统的用户,W由该样的其他系统的用户 使用。
[0239] 软件程序代码包括操作系统,其控制各种计算机组件和一个或多个应用程序的功 能和交互。程序代码通常可从存储介质设备5011调页到相对更高速的计算机存储器5002, 在此它对于处理器5001是可用的。用于在存储器中、物理介质上体现软件程序代码和/或 经由网络分发软件代码的技术和方法是熟知的,且不会在此被进一步讨论。当程序代码被 创建并存储在有形介质(包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等) 上时,其经常被称为"计算机程序产品"。计算机程序产品介质典型地可由优选地位于计算 机系统中的处理电路读取W由处理电路执
[0240] 图12示出了可在其中实施一个或多个方面的代表性工作站或服务器硬件系统。 图12的系统5020包括代表性基本计算机系统化asecomputersystem) 5021,诸如个人计 算机、工作站或服务器,包括可选的外围设备。根据已知技术,基本计算机系统5021包括一 个或多个处理器5026W及被用于连接并使能处理器5026和系统5021的其他组件之间的 通信的总线。总线将处理器5026连接到存储器5025W及可包括例如硬盘驱动器(例如, 包括磁介质、CD、DVD和闪存中的任何一个)或磁带驱动器的长期存储器5027。系统5021 也可包括用户接口适配器,其经由总线将微处理器5026连接到一个或多个接口设备,诸如 键盘5024、鼠标5023、打印机/扫描仪5030和/或其他接口设备,其可W是任何用户接口 设备,诸如触摸敏感屏、数字化输入垫(digitizedentrypad)等。总线也可经由显示适配 器将诸如LCD屏幕或监视器的显示设备5022连接到微处理器5026。
[0241] 系统5021可通过能与网络5029通信5028的网络适配器与其他计算机或计算机 网络通信。示例性网络适配器是通信通道、令牌环网、W太网或调制解调器。或者,系统5021 可使用诸如CDPD(蜂窝数字分组数据)卡的无线接口来通信。系统5021可与局域网(LAN) 或广域网(WAN)中的该样的其他计算机关联,或系统5021可W是与另一个计算机的客户机 /服务器安排中的客户机等。所有该些配置W及合适的通信硬件和软件在本领域中是已知 的。
[0242] 图13示出了其中可实施一个或多个方面的数据处理网络5040。数据处理网 络5040可包括多个单独的网络,诸如无线网和有线网,其每个可包括多个单独的工作站 5041、5042、5043、5044。此外,本领域技术人员将理解,可包括一个或多个LAN,其中LAN可 包括多个禪合到主处理机的智能工作站。
[0243] 仍然参考图13,网络也可包括大型计算机或服务器,诸如网关计算机(客户机服 务器5046)或应用服务器(远程服务器5048,其可访问数据储存库,且也可直接从工作站 5045被访问)。网关计算机5046用作到每个单独网络的进入点。当将一个联网协议连接 到另一个时,需要网关。网关5046可通过通信链路优选地禪合到另一个网络(例如因特 网5047)。也可使用通信链路将网关5046直接禪合到一个或多个工作站5041、5042、5043、 5044。可W利用可从国际商业机器公司获得的IBMeServerTMSystemZ服务器来实现网关 计算机。
[0244] 同时参考图12和13,可体现本发明的一个或多个方面的软件编程代码可被系统 5020的处理器5026从诸如CD-ROM驱动器或硬盘驱动器的长期存储介质5027访问。软件 编程代码可被体现在与数据处理系统一起使用的各种已知介质(诸如软盘、硬盘驱动器或 CD-ROM)中的任一个上。代码可在该样的介质上被分发,或从一个计算机系统的存储器或存 储设备通过网络被分发到其他计算机系统的用户5050、5051,W供该样的其他系统的用户 使用。
[0245] 或者,编程代码可体现在存储器5025中,且由处理器5026使用处理器总线访问。 该样的编程代码包括操作系统,其控制各种计算机组件和一个或多个应用程序5032的功 能和交互。程序代码通常从存储介质5027调页到高速存储器5025,在此它可用于由处理器 5026进行处理。用于在存储器中、在物理介质上体现软件编程代码和/或经由网络分发软 件代码的技术和方法是公知的,不会在此进一步讨论。程序代码,当其被创建且在有形介质 (包括但不限于电子存储模块(RAM)、闪存、光盘(CD)、DVD、磁带等)上存储时,通常被称为 "计算机程序产品"。计算机程序产品介质典型地可W被优选地位于计算机系统中的处理电 路读取W由处理电路执行。
[0246] 最容易被处理器使用的高速缓存(通常比处理器的其他高速缓存更快更小)是最 低级(LI或级别1)高速缓存,且主存储(主存储器)是最高级高速缓存(如果有S个级别 的话是L3)。最低级高速缓存经常被分为保持将被执行的机器指令的指令缓存(I-高速缓 存),和保持数据操作数的数据高速缓存(D-高速缓存)。
[0247] 参考图14,为处理器5026示出了示例性处理器实施例。典型地,使用一个或多个 级别的高速缓存5053来缓冲存储器块,W便改善处理器性能。高速缓存5053是高速缓冲 器,其保持很可能被使用的存储器数据的高速缓存线。典型的高速缓存线是64、128或256 字节的存储器数据。通常使用单独的高速缓存W用于缓存指令而不是缓存数据。高速缓存 一致性(存储器和高速缓存中的线的副本的同步)通常由本领域中熟知的各种"窥探"算 法提供。处理器系统的主存储器5025通常被称为高速缓存。在具有4个级别的高速缓存 5053的处理器系统中,主存储器5025有时候被称为级别5 (L5)高速缓存,因为它典型地更 快,且仅保持可被计算机系统使用的非易失性存储器(DASD、磁带等)的一部分。主存储器 5025可"高速缓存"由操作系统向主存储器5025调页入或从其调页出的数据页。
[0248] 程序计数器(指令计数器)5061保持跟踪将被执行的当前指令的地址。Z/ Architec化re处理器中的程序计数器是64位的,且可被截短为31或24位W支持先前的 寻址界限。程序计数器典型地体现在计算机的PSW(程序状态字)中,该样它可在上下文转 换中持续。因此,具有程序计数器值的进行中的程序可被例如操作系统中断(从程序环境 到操作系统环境的上下文转换)。当程序不活动时,程序的PSW维持程序计数器值,且在操 作系统执行时,操作系统的(PSW中的)程序计数器被使用。典型地,程序计数器W等于当 前指令的字节数的量增量。RISC(精简指令集计算)指令典型地是固定长度,而CISC(复 杂指令集计算)指令典型地是可变长度。IBMz/Architec化re的指令是具有长度为2、4或 6字节的CISC指令。程序计数器5061被例如上下文转换操作或分支指令的分支采取操作 修改。在上下文转换操作中,当前的程序计数器值与关于正被执行的程序的其他状态信息 (诸如条件码)一起被保存在程序状态字中,且新程序计数器值被载入并指向将被执行的 新程序模块的指令。执行分支采取操作,W通过将分支指令的结果加载到程序计数器5061 中而允许程序进行决定或在程序内循环。
[0249] 典型地,使用指令获取单元5055代表处理器5026获取指令。获取单元可获取"下 一序列指令"、分支采取指令的目标指令或上下文转换后的程序的第一指令。现在的指令获 取单元通常使用预取技术基于被预取的指令将被使用的可能性来推测性地预取指令。例 如,获取单元可获取16字节的指令,其包括下一顺序指令W及进一步的顺序指令的额外字 节。
[0巧0] 获取的指令随后被处理器5026执行。在一实施例中,获取的指令被传递给获取 单元的分派单元5056。分派单元解码指令并将关于解码的指令的信息转送给合适的单元 5057、5058、5060。执行单元5057将典型地从指令获取单元5055接收关于解码的算术指令 的信息,并将根据指令的操作码对操作数执行算术操作。优选地从存储器5025、架构寄存器 5059或从正被执行的指令的立即字段(immediatefield)向执行单元5057提供操作数。 执行的结果,当被存储时,被存储在存储器5025、寄存器5059或其他机器硬件(诸如控制寄 存器、PSW寄存器等)中。
[0巧1] 处理器5026典型地具有一个或多个用于执行指令的功能的单元5057、5058、 5060。参考图15A,执行单元5057可通过接口逻辑5071与架构通用寄存器5059、解码/分 派单元5056、加载存储单元5060和其他5065处理器单元通信。执行单元5057可使用几个 寄存器电路5067、5068、5069来保持算术逻辑单元(ALU)5066将操作的信息。ALU执行诸 如加减乘除的算术操作,W及诸如和、或W及异或狂OR)、旋转和移位的逻辑运算。优选地, ALU支持依赖于设计的专口操作。其他电路可提供其他架构工具5072,例如包括条件码和 恢复支持逻辑。典型地,ALU操作的结果被保持在输出寄存电路5070中,该输出寄存器电 路可将结果转送到多种其他处理功能。有许多处理器单元安排,本说明书仅旨在提供对一 个实施例的代表性理解。
[0252] 例如,ADD指令将在具有算术和逻辑功能的执行单元5057中被执行,而例如浮点 指令将在具有专用浮点能力的浮点执行中被执行。优选地,执行单元通过在操作数上执行 操作码定义的功能在由指令标识的操作数上操作。例如,ADD指令可被执行单元5057在由 指令的寄存器字段标识的两个寄存器5059中发现的操作数上执行。
[0253] 执行单元5057对两个操作数执行算术加法,并在第=操作数中存储结果,其中第 =操作数可W是第=寄存器或两个源寄存器中的一个。执行单元优选地利用算术逻辑单 元(ALU) 5066,其能执行多种逻辑功能,诸如移位、旋转、和、或、异或,W及多种代数函数,包 括加减乘除中的任何一个。有些ALU5066被设计为用于标量运算,有些用于浮点。根据架 构,数据可W是大端化igendien)(其中最低有效字节位于最高字节地址)或小端(little endien)(其中最低有效字节位于最低字节地址)。IBMz/Architec化re是大端。根据架 构,带符号字段可W是符号和幅度、1的补码或2的补码。2的补码数是有利的,其在于ALU 不需要设计减法能力,因为不管是2的补码中的负值还是正值,都仅要求ALU中的加法。 数字通常W速记描述,其中12位的字段定义了 4096字节块的地址,且通常被描述为例如 4肺八6 (千字节)块。
[0巧4] 参考图15B,用于执行分支指令的分支指令信息典型地被发送到分支单元5058, 该分支单元经常使用诸如分支历史表5082的分支预测算法,在其他条件运算完成前预测 分支结果。在条件运算完成前,当前分支指令的目标将被获取并推测性地执行。当条件运算 完成时,基于条件运算的条件和推测的结果,推测性执行的分支指令或被完成或被丢弃。典 型的分支指令可测试条件码,W及如果条件码满足分支指令的分支要求,分支到目标地址, 分支地址可基于若干数被计算,所述数包括例如在寄存器字段或是指令的立即字段中找到 的数。分支单元5058可利用具有多个输入寄存器电路5075、5076、5077和一个输出寄存器 电路5080的ALU5074。分支单元5058可与例如通用寄存器5059、解码分派单元5056或 其他电路5073通信。
[0巧5] -组指令的执行可由于多个原因中断,所述原因包括例如由操作系统发起的上下 文转换、引起上下文转换的程序异常或错误、引起上下文转换的I/O中断信号或多个程序 (在多线程环境中)的多线程活动。优选地,上下文转换动作保存关于当前执行的程序的状 态信息,且随后加载关于正被调用的另一个程序的状态信息。状态信息可被存储在例如硬 件寄存器或存储器中。状态信息优选地包括指向将被执行的下一个指令的程序计数器值、 条件码、存储器转换信息和架构寄存器内容。上下文转换活动可被硬件电路、应用程序、操 作系统程序或固件代码(微代码、微微代码或许可内部码(LIC))单独地或其组合实现。
[0巧6] 处理器根据指令定义的方法而访问操作数。指令可使用指令的一部分的值提供立 即操作数,可提供一个或多个寄存器字段,其显式地指向通用寄存器或专用寄存器(例如 浮点寄存器)。指令可利用由操作码字段确定的暗示的寄存器作为操作数。指令可利用用 于操作数的存储器位置。可由寄存器、立即字段或寄存器和立即字段的组合提供操作数的 存储器位置,如由z/Architec化re长位移工具(facility)所例示的,其中该指令定义了基 寄存器、索引寄存器和立即字段(位移字段),它们加到一起,W提供例如存储器中的操作 数的地址。除非另外指明,此处的位置典型地意味着主存储器(主存储设备)中的位置。
[0巧7] 参考图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使不按顺序执行的操作对程序看起来如已按顺序执行一样,如本领域所
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1