CN1178941A - 通过合并存储操作进行集中存储的处理机及方法 - Google Patents

通过合并存储操作进行集中存储的处理机及方法 Download PDF

Info

Publication number
CN1178941A
CN1178941A CN97117589A CN97117589A CN1178941A CN 1178941 A CN1178941 A CN 1178941A CN 97117589 A CN97117589 A CN 97117589A CN 97117589 A CN97117589 A CN 97117589A CN 1178941 A CN1178941 A CN 1178941A
Authority
CN
China
Prior art keywords
storage
instruction
cache
data
logic
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
Application number
CN97117589A
Other languages
English (en)
Other versions
CN1098486C (zh
Inventor
拉杰谢·B·帕特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1178941A publication Critical patent/CN1178941A/zh
Application granted granted Critical
Publication of CN1098486C publication Critical patent/CN1098486C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

识别目标对向超高速缓存中一个或多个单元的第一存储指令和第二存储指令。判定该超高速缓存是否忙碌。根据确定该超高速缓存为忙碌,由第一及第二存储指令规定的操作合并成单个存储操作,其包含由第一和第二存储指令规定的存储操作。然后,执行该单存储操作。

Description

通过合并存储操作进行集中存储的处理机及方法
本说明书的技术领域一般地涉及数据处理的方法和系统,尤其涉及用于把数据存储到数据处理系统中的存储器的一种处理机和方法。再更具体地,其技术领域涉及用于通过合并存储指令进行集中存储的一种处理机和方法。
现有技术的典型处理机包括多个执行部件,它们各优化成执行相应类型的指令。这样,例如,一个处理机可包括分别用于执行定点指令、浮点指令、转移指令和装入及存储指令的定点部件(FXU)、浮点部件(FPU)、转移处理部件(BPU)和装入-存储部件(LSU)。
当从存储器检索一条由处理机执行的存储指令时,首先译码该指令以确定该指令要调度到的执行部件。在存储指令被译码之后,该存储指令被调度到LSU以供执行。执行一条存储指令需要计算和该存储指令关联的数据要写到的存储单元的有效地址(EA)。在一条存储指令结束之后,即计算出该存储指令的EA之后,通过把和该存储指令关联的数据提交给存储队列完成该存储指令,该数据将从存储队列写到规定的存储单元。
为了减少存储及检索数据所需的周期数量,处理机通常装备机载高级数据高速缓存。这种高级数据高速缓存允许少至在单个周期内执行数据存取。由于对超高速缓存数据的数据存取伴随着最小数据等待时间,对存储器中相同双字的多次相继存储只在性能效率上造成小的影响。但是在不具有超高速缓存或者其存储指令是超高速缓存禁止的或是直写的数据处理系统结构下,由于附加的总线访向的等待时间对相同双字的多次相继存储会造成性能效率低下。
从而,需要为在数据处理系统中对存储器存储数据提供一种对同一双字进行多次存储访问所需的周期数据为最小的有效方法和系统。
从而本公开的一个目的是提供一种用于数据处理的方法和系统。
本公开的另一个目的是为在数据处理系统中把数据存储到存储器中提供一种改进的处理机及方法。
本公开的再一个目的是提供一种用于通过合并存储指令进行集中存储的处理机和方法。
如现要所说明的那样达到上述目的。标记以超高速缓存中的一个或多个单元为目标的第一和第二存储指令。判定该超高速缓存是否忙碌。响应判定超高速缓存为忙碌,由第一和第二存储指令规定的操作被合并到一个单个的包含着由第一及第二存储指令规定的存储操作的存储操作中。然后,执行该单个的存储操作。
在下述详细的书面说明中,上述以及其它的目的、特点和优点将变为清晰。
在附属权利要求书中叙述所确信的本发明的新颖特性。而本发明本身,其使用的最佳方式以及其它目的和优点可通过参考与附图连带在一起的对示范实施方式的下述详细说明得到最好的理解。附图是:
图1是一种利用集中存储以增强对存储器的存储访问性能的处理机的一种最佳实施方式。
图2是表示图1中所示的处理机的装入-存储部件(LSU)的更详尽方块图;
图3A和3B是流程图,说明图1中所示的处理机采用的集中存储的方法;
图4A-4C表示图2中所示的装入-存储部件(LSU)的存储队列中的集中存储。
图5是一个时序图,说明集中存储操作中不同事件的时序。
现参考各附图尤其参考图1,图1中表示一种概括地在10处表示的处理机的示范性实施方式,该处理机用于根据在附属权利要求书中所叙述的本发明处理信息。在所示的示范性实施方式中,处理机10由一个单块集成电路的超标量微处理机构成。因此,如下面进一步讨论的,处理机10包括各种用集成电路形成的执行部件、寄存器、缓冲器、存储器以及其它功能部件。处理机10最好由可从IBM公司微电子部购到的PowerPC系列中的一种微处理机组成,这种系列的微处理机是按照精简指令系统计算(RISC)技术运行的;不过,熟练的技术人员可从下述说明中意识到可使用其它合适的处理机。如图1中所示,处理机10通过处理机10之内的总线接口部件(BIU)12和系统总线11连接。通过参与总线仲裁,BIU12控制处理机10和其它与系统总线11连接的设备(诸如未示出的主存储器)之间的信息传送。处理机、系统总线11以及其它和系统总线11连接的设备一起构成一个主机数据处理系统。
BIU12和处理机10内的指令高速缓存及MMU(存储管理部件)14和数据高速缓存及MMU16连接。例如在指令高速缓存及MMU14和数据高速缓存及MMU16中的这种高速缓存器可使处理机10以相对快的存取时间访问事先从主存储器传送到超高速缓存中的数据或指令子集,从而提高了主机数据处理系统的运行速度。指令高速缓存及MMU14还和顺序取出器17连接,后者在每个周期内从指令高速缓存和MMU14中取出供执行的指令。顺序取出器17把从指令高速缓存及MMU14中取出的转移指令发送到转移处理部件(BPU)18以供执行,但是在指令队列19中临时性地存储顺序指令以供处理机10内的其它执行电路执行。
在所示的示范性实施方式中,除BPU18之外,处理机10的执行电路含有多个用于执行顺序指令的执行部件,包括定点部件(FXU)22、装入-存储部件(LSU)28以及浮点部件(FPU)30。每个执行部件22、28和30一般在每个处理机周期之内执行一种特定类型的顺序指令中的一条或几条指令。例如,FXU22进行定点数学和逻辑运算,诸如利用从规定的通用寄存器(GPRs)32或者GPR更名缓冲器33接收的源操作数进行加法、减法、“与”操作、“或”操作和“异或”操作等运算。在执行一条定点指令之后,FXU22把该指令的数据结果输出到GPR更名缓冲器33,后者在通过把结果数据从GPR更名缓冲器33传送到一个或多个GPRS32以完成该指令之前为结果数据提供暂时的存储。相反地,FPU30一般对从浮点寄存器(FPRs)36或FPR更名缓冲器37接收的源操作数进行单、双精度浮点算术运算和逻辑运算,诸如浮点乘法和除法。FPU30把执行浮点指令产生的数据输出到选定的FPR更名缓冲器37,后者在通过把结果数据从FPR更名缓冲器37传送到FPR36以完成指令执行之前暂时存储结果数据。如其名字所意味的,LSU28一般执行浮点和定点指令,这些指令或者把数据从存储器(即数据高速缓存及MMU16或主存储器中的一个)装入到选定的GPRs32或FPRs36,或者把来自选定的一个GPRs32,GPR更名缓冲器、FPRs36或FPR更名缓冲器37中的数据存储到存储器。
处理机10利用流水线技术和不按序的指令执行进一步改进其超标量体系结构的性能。因此,只要保持数据相关性可以按任何次序由FXU22、LSU28和FPU30执行指令。另外,按流水线各阶段的顺序由各个FXU22、LSU28和FPU30处理指令。作为典型的高性能处理机,每条指令按五个不同的流水线阶段得到处理,这些阶段即为取出、译码/调度、执行、结束和完成。
在取出阶段,顺序取出器17从指令高速缓存及MMU14检索一个或多个涉及一个或多个存储器地址的指令。顺序取出器17把从指令高速缓存及MMU14中取出的顺序指令存储到指令队列19中。但是,顺序取出器17从指令流中去掉(分出)转移指令并把转移指令送到BPU18以供执行。BPU18包括转移预测机制,一种实施方式里的这种机制含有例如转移历史表的动态预测机制,它使BPU18通过预测是否要采取该转移推测式地执行未定的条件转移指令。
在译码/调度阶段,调度部件20典型地按程序次序对来自指令队列19的一个或多个指令进行译码并调度到执行部件22、28和30。此外,调度部件20把GPR更名缓冲器组33或FPR更名缓冲器组37中的一个更名缓冲器分配给每个调度后的指令的结果数据。一旦调度后,还把指令存储到完成部件40的多槽完成缓冲器中以等待完成。按照所示的示范性实施方式,处理机10利用唯一指令标识符在不按序的执行期间跟踪被调度指令的程序次序。
在执行阶段,执行部件22、28和30可能在得到指明指令的操作数和执行资源时执行从调度部件20接收的指令。执行部件22、28和30中的每个最好装备一个保留站,用于在可得到操作数或执行资源前存储调度到该执行部件的指令。在一条指令的执行终止之后,如果有数据结果,执行部件22、28和30根据指令类型把数据结果存储到GPR更名缓冲器33或FPR更名缓冲器37中的一个里。接着,执行部件22、28和30通知完成部件40哪条指令已结束执行。最后,把按程序次序完成的指令脱离完成部件40的完成缓冲器。通过把指令的数据结果从GPR更名缓冲器33和FPR更名缓冲器37分别传送到GPRs32和FPRs36,完成FXU22和FPU30执行的指令。通过把结束的指令传送到完成存储队列中或者完成装入队列中完成由LSU28执行的装入和存储指令,从这两个队列将进行指令所指示的装入和存储操作。
现参照图2,图中表示图1所示的装入-存储部件(LSU)28的执行电路的较详细方块图。如所示,LSU28包括控制由调度部件20调度给LSU28的装入和存储指令的执行的执行控制单元50。执行控制单元50包括用于译码装入和存储指令的操作码的逻辑线路以及用于比较存储指令地址和属性以确定是否合并存储指令的逻辑线路。LSU28还包括地址计算单元52,该单元接收伴随每条装入和存储指令的32位地址操作数。利用加法器70,地址计算单元52对地址操作数求和以生成相关指令的32位有效地址(EA)。LSU28还包括存储队列54和装入队列55,它们管理EA、数据以及伴随调度到LSU28的装入和存储指令的其它指令信息。
存储队列54由结束存储队列(FSQ)58和完成存储队列(CSQ)60以及其它电路和调整逻辑62和多路复用器64、66组成,FSQ58和CSQ60各包括一个多项的先进先出子队列。如所示,FSQ58和CSQ60中的每项包括一个32位的存储地址计算单元52生成的EA的EA字段,一个规定那个(或那些)GPR32或FPR36存储着和该存储指令相关的数据的数据源字段,以及一个64位的容纳要存储的数据的数据字段。FSQ58和CSQ60的每个项的EA字段和数据字段的有效性分别由有效字段中有效位的状态指示。FSQ58和CSQ60中的每个项还包含几个属性字段,包括一个指示数据的字节尺寸的数据量字段、一个规定那些数据字节包含着有效数据的字节启用(BE)字段、一个含有与数据的格式属性有关的格式字段以及一个指示数据的MMU属性的MMU属性字段。除了存储在FSQ58的一项的EA字段中之外,为每条存储指令由地址计算单元52生成的EA还传送到执行控制单元50,如下文中详细说明的那样,执行控制单元50利用该EA确定该相关的存储指令能否和另一条存储指令合并以便提高处理机的效率。如在参考数字59处所示,执行控制单元50还和FSQ58连接,从而执行控制单元50可以读FSQ58的底项,以把底项中存储指令的EA和属性与另一条存储指令的EA和属性进行比较来确定这两条存储指令是否可以合并。在把一条存储指令存储到FSQ58时,该存储指令的EA被传送到数据高速缓存MMU16的地址转换单元80,以便把该存储指令的EA转换成物理地址并且判定该存储指令是否产生异常。由地址转换单元80回送到FSQ58的物理地址位(位0-20)被存储到FSQ58中适当项的EA字段中。
仍参照存储队列54,如果一条存储指令出现在FSQ58的底项内,该存储指令被认为是用于在一个周期内完成的。在一种实施方式中,仅当一条存储指令是处理机10之中最老的指令才完成该存储指令,即,若该存储指令存储在完成部件40的底部完成缓冲器存储槽时;但是,在别的实施方式中允许推测式的完成,在其它的完成缓冲器槽中的存储指令可以被完成。一旦一条存储指令证实成要完成,该存储指令的EA和数据被从FSQ58的底部项中移出并分别传送到多路复用器64和66。除了该存储指令的32位EA之外,多路复用器64还接收第二个输入,该输入由和000位衔接的存储指令EA的29个高位构成,000位是每个64位双字的三个低位地址位。这样,在执行控制单元50的控制下,多路复用器64选择从FSQ58中传送过来的EA或者选择64位双字的EA中的一个EA,该双字包含着由规定EA定址的存储位置。然后,多路复用器64把选定的EA存储到CSQ60中的一项里。
多路复用器66的输入包括一个旁路输入68、一个反馈输入70和一个FSQ输入72,FSQ输入72提供来自FSQ58的底项中的数据字段的数据。为了避免不必要的LSU空闲周期,当FSQ58空时旁路输入68允许存储指令数据绕过FSQ58。另一方面,反馈输入70提供存储在CSQ60的底项的64位数据字段里的数据,用于选择或者可能和多路复用器66的其它数据输入组合。根据从执行控制单元50接收到的控制信号,多路复用器66选择FSQ输入72或者旁路输入68中的一个里的各数据位,而且若要合并存储指令则选择反馈输入70中的零个或者更多的位。在由多路复用器66选择和组合数据位之后,这些数据位被存储到CSQ60的一项的64位数据字段中。在FSQ58和CSQ60中采用64位数据字段可允许多路复用器66合并单精度及双精度数据,从而使完成集中存储所需的附加硬件为最少。例如,FSQ58和CSQ60中的每项能存储单个64位的双精度数据字。此外,如下面参照图4A-4C详细说明的那样,CSQ60中的各项可以存储两个不同的指向数据高速缓存82中连续地址的32位单精度数据字。
如所示,存储队列54还包括调整逻辑线路62,如果一条存储指令和别的存储指令合并该线路适当地修改和该指令有关的数据源字段、数据量字段以及字节启用字段。当从FSQ58向CSQ60传送一条存储指令时,执行控制单元50向完成部件40发送结束报文86以指示那条存储指令已结束。接着当该存储指令存储在完成缓冲器的底存储槽内时完成部件40从完成缓冲器中去掉该指明的存储指令。
仍请参照图2,CSQ60包括一个存储已完成的但它们所标明的存储操作尚待进行的存储指令的队列。如在参考数字61处所示,类似于FSQ58,CSQ60也和执行控制单元50连接,从而执行控制单元50可以读CSQ60的底项,以把底项中存储指令的EA和属性与FSQ58中一条指令的EA和属性进行比较来判定是否可以合并这两条存储指令。CSQ60还和数据高速缓存及MMU16中的地址转换单元80及数据高速缓存82连接。在要进行一次存储操作时,例如在低总线使用阶段期间,如果该存储是能高速缓存的,则CSQ60的底项的EA字段中的物理地址连同存储在CSQ60的底项中的数据一起传送到数据高速缓存82。接着数据高速缓存82中的高速缓存控制器管理数据高速缓存82中的数据存储。如果和该物理地址关联的数据未驻留在数据高速缓存82中或者如果这次存储是高速缓存禁止的,则把该物理地址和数据传送到BIU12,BIU12通过系统总线把该数据存储到主存储器。如所示,当数据高速缓存82忙碌从而不能支持单周期数据存储时,数据高速缓存82向执行控制单元50提供忙信号84以进行指示。
现参照图3A和3B,图中表示两个逻辑示意图,它们一起说明根据图1中所示的处理机的示范性实施方式的一种集中存储方法的示范性实施方式。熟练的技术人员可以理解,尽管图3A和3B表示了一种合并存储指令的方法的备步骤的逻辑顺序,最好并行地进行多个所示的步骤。图3A和3B所示的方法将在图4A-4C所示的示例集中存储操作以及图5中所示的时序图的情况下得到说明。
首先参照图3A,处理在块100开始然后进入块102,块102表示执行控制单元50判定是否已通过LS028从调度部件20接收第一存储指令(以下称为STA)。如果没有,处理在块102重复直至接收到STA。现参照图5,如果STA由LSU28接收,在周期1由地址计算单元52计算STA的EA。另外,向数据高速缓存及MMU16发送一个存储请求以把EA变换成物理地址并且检查EA有否异常。在计算STA的EA之后,在周期2的起点在FSQ58中的STA的EA是有效的,如图4A和图5中所示。如图4A中所示,FSQ58的示例项的EA字段、长度字段和字节启用(BE)字段表示该STA是一次32位存储,以一个八字节双字的四个最低有效(最右)字节为目标。该FSQ58的示例项的数据源字段还规定与STA相关的数据位于GPRs32中的寄存器31里。但是,如有效值V0所示,和STA相关的数据尚未在FSQ58中有效。
回到图3A和3B,在把存储队列54中的一项分配给STA之后,接着在周期2执行控制单元50在块104-116进行几次判定以弄清STA能否和相继的存储指令合并。这样,在块104,执行控制单元50从数据高速缓存及MMU16回送的异常信息确定STA是否引起异常。如果引起,处理返回到块102并等待另一条STA指令。但是,如果在块104确定该STA不造成异常,处理进入块106,该块表示确定STA是否位于完成部件40的完成缓冲器的底存储槽中。如上面所述,在块106进行的判定反映处理机10的一种示范性实施方式,这种方式只完成处理机10中最老的那些存储指令;处理机10的其它实施方式可以允许不按序地完成存储指令。如果确定出该STA不在完成缓冲器的底槽中,则在块106重复处理过程直到STA位于完成缓冲器的底槽中的时刻。接着处理从块106进入块108,块108表示判定LSU28是否已从调度部件20接收相继的存储指令STB。如果没有,处理经页面连接符B进入图3B的块124。但是,如果在周期2期间LSU28接收STB,如图5所示在周期2计算STB的EA。
回到图3A,处理从块108进入块110,块110表示判定是否允许集中存储。在处理机10内通过缺省或者通过执行一条设定处理机10中一个未示出的控制寄存器的集中存储位的指令可允许集中存储。如果不允许集中存储,按已说明的方式处理从块110进入图3B的块124。但是,如果允许集中存储,处理从块110进入块112,块112表示判定执行STA所指示的存储操作是否要求经系统总线11把数据写到主存储器。块112处进行的判定表示不论存储操作是否是可高速缓存的合并对主存储器的存储操作在数据等待时间上和总线使用上具有效率上的好处。如果STA请求经系统总线11对主存储器的存储操作,例如,如果STA为直写存储或者是禁止高速缓存的,处理进入下面要说明的块115。但是,如果由STA指示的存储操作不要求对主存储器写数据,处理从块112进入块114。
块114表示通过检测忙信号84的状态判定周期3期间数据高速缓存82是否忙碌。如果数据高速缓存82不忙,处理经页面连接符进入块124。从而,对于不必经系统总线11对主存储器写的可高速缓存的存储,所描述的执行控制单元50的实施方式仅在忙信号84表示数据高速缓存82在周期3期间忙碌时才预先地判定STA和STB可否合并(块116中所示)。在数据高速缓存82在二个或更多的周期连续忙的情况下(如图5中所示),因为可在单个周期中执行多个通常每个至少各需要一个周期的存储,集中存储导致性能上的优越。在数据高速缓存在周期3期间忙碌的情况下,所示的集中存储的方法还具有使数据高速缓存82的功耗最小的优点。因为只允许数据高速缓存82用于合并的可高速缓存的存储而不是用于STA和STB,功率得到节省。
为了明显地减少数据高速缓存82的功耗,执行控制单元50的备择的实施方式可省略掉块114处所述的判定并且甚至在数据高速缓冲不忙碌时从而在最多造成单个周期数据等待时间下潜在地合并可高速缓存的存储。例如,在处理机10的低功率实现下,由把多个可高速缓存的存储合并成单个存储操作导致的最小附加数据等待时间经常优于允许数据高速缓存82分别进行各次存储所造成的功率消耗。再次参照块114,如果确定出在周期3数据高速缓存82会忙碌,处理进入块115,块115表示判定CSQ60在周期3是否是空的或将是空的(除用于STA之外)。如果不空,按已说明的方式处理进入块124。但是,如果在周期3内CSQ60是空的或将是空的(除用于STA之外),处理经页面连接将A进入图3B的块116。
块116表示第一次比较,其比较STA和STB的EA变址位(位21-28)和可使用的数据格式属性。存储指令的数据格式属性包括,例如,该数据是否表示定点或浮点值、数据量、该数量处于大的还是小的终止格式,以及该数据是否表示图形信息。如果STA和STB的EA的变址位以及可使用的数据格式属性彼此匹配,执行控制单元50封锁STA直到最终判定是否合并STA和STB,如图5中所示。但是,如果两个EA的变址位或者STA和STB的可使用数据格式属性不匹配,处理从块116进入到块124,块124表示由LSU28分别执行STA和STB指示的存储操作。因为只有在数据高速缓存82忙从而不能立即执行STA指示的存储操作时块116所示的第一次比较对非经系统总线11对存储器写的可高速缓存的存储进行,所以块116处的STA和STB的不匹配不会造成性能损失。
现参照图4B,在周期2中进行STA和STB之间的第一次比较后,不加修改地把STA的EA、数据及属性传送给CSQ60。从而,在周期3期间,STA变成在CSQ60中是有效的,而STB的EA变成在FSQ58中是有效的。在周期3期间执行控制单元50还判定在图3B的块118-122中所示的第二组集中存储条件是否满足。现参照图3B的块118和120,执行控制单元50判定STB是否造成异常以及STB是否位于完成部件40的完成缓冲器的底槽内。如果STB造成异常或者如果STB不在完成缓冲器的底槽里,处理进入块124,块124表示LSU28分别执行STA和STB。但是,如果STB不造成异常并且存储在完成缓冲器的底槽里,处理进入块122,块122表示执行控制单元50进行对STA和STB的第二次比较,以判定STA和STB的实地址位(位0-19)是否匹配以及STA和STB的MMU属性是否匹配。在该示范性最佳实施方式中,STA和STB的MMU属性可以包括一个直写值、一个禁止高速缓存位、一个强制被访存储单元相关性的存储器相关性位以及一个防止从被访存储单元推测性地装入和预取出的保护位。如果STA和STB的实地址位以及STA和STB的MMU属性不全匹配,处理从块122进入已说明过的块124。但是,如果STA和STB的实地址位以及STA和STB的MMU属性都匹配,处理从块122进入块126,块126表示执行控制单元50如图5所示在周期4合并STA和STB。因为在周期2中不能得到STB的实地址位,处理机10的示范性实施方式分别在周期2中和周期3中独立地进行第一比较和第二比较。如上面所述,在周期2中进行第一次局部比较允许处理机10在数据高速缓存82忙碌的情况下避免STA和STB之间的不匹配造成的性能损失。但是,在别的实施方式下可以进行对STA和STB的单次比较。
为了如图3B的块126处所示合并STA和STB,执行控制单元50断言一个或几个控制信号以使多路复用器64选择规定一个双字EA的输入。接着把该双字EA写入到CSQ60的底项的地址字段中以代替STA的EA。另外,执行控制单元50断言一个或几个控制信号以使多路复用器66合并由反馈输入70(STA数据)和FSQ输入72(STB数据)提供的数据并且把结果的合并数据存储到CSQ60的底项的数据字段里。
现参照图4B和4C,它们分别描述周期3中和周期5中FSQ58和CSQ60的内容,从而说明STA和STB的合并。如图4B中所示,FSQ58包含STB的32位EA,该EA规定一个双字边界的地址单元。如进一步所示,和STB相关的数据包含GPRs32的寄存器4中,为4字节长,并且将在8字节数据总线的4个高位字节上写入到存储器中。STA包含在CSQ60的项0内,并且在和与STB的EA相同的双字中具有它的EA。和STA相关的数据包含在GPRs32的寄存器31中,为4字节长,并将在该总线的4个低位字节上写入到存储器中。
在周期4中合并STA和STB之后,CSQ60的项0看起来如图4中所描述。如所示,合并后的存储指令的EA和STB的EA相同,因为STA和STB都瞄向由STB的EA规定的双字内的存储单元。还如图4C中所示,和STA及STB相关的数据已合并,从而在执行由合并后的存储指令所指示的存储操作之后存储器被访双字所保持的数据将和按程序次序执行由STA和STB指示的存储操作所具有的数据相同。另外,CSQ60的项0的数据源字段、数据量字段以及字节启用字段已由调整逻辑电路62调整,并反映和合并后的存储指令相关的数据包含在GPRs32的寄存器4和31中,为8字节长,并且将利用数据总线的所有8个字节写入到存储器中。CSQ60的项0中的数据源字段也由调整逻辑电路62修改,以指示数据源用于STA和STB。尽管图4A-4C表示一个在其中由合并后的存储指令写的存储地址不重叠的集中存储的例子,熟练的技术人员可从本文提供的说明中认识到图2中所述的LSU28的示范性实施方式还可以合并对重叠的存储地址写入的存储指令。如上面参照图2所述的那样,和面向重叠地址的存储指令相关的数据根据执行控制单元50生成的控制信号由多路复用器66合并。
再参照图3B,在块126中STA和STB合并之后,处理进入块128,块128表示进行由合并的存储指令指示的存储操作。这样,如图5中所示,在周期5和6中合并的数据写入到存储器。
然后,图3B中所示的处理在块130终止。
如可从上面的说明中理解的那样,通过选择性地组合存储指令,所说明的集中存储机制改进了处理机的性能。尽管集中存储的方法是通过参考一个在其中集中两个单精度存储的示范性集中存储操作说明的,从上述的说明中可以理解,利用上面所说明的示范性实施方式单精度和双精度存储都可以集中。此外,还可以理解,由于减少系统总线的等待时间,对于直写存储指令和高速缓存禁止的存储指令集中存储对处理机性能提供最大的增强。例如,如果不集中的存储指令各需要7个周期的总线访问,进行两次存储需要14个周期。相反,如果合并存储指令,仅需要7个周期的总线访问,从而明显地减少所需的总线时间。
尽管具体地显示了和说明了一种示范性的实施方式。熟练的技术人员可以理解在不违背该示范性实施方式的精神和范围的前提下在形式上和细节上可对它进行各种修改。

Claims (25)

1.一种在其中具有附属超高速缓存的处理机内集中存储的方法,所述方法包括:
识别目标对着所述超高速缓存中的一个或多个单元的第一存储指令和第二存储指令;
判定所述超高速缓存是否忙碌;
根据确定所述超高速缓存忙碌,把所述第一和所述第二存储指令合并为一个单存储操作;以及
然后,执行所述单存储操作。
2.权利要求1的方法,其特征在于,所述第二指令按相继的次序紧接在所述第一指令的后面。
3.权利要求1的方法,其特征在于,还包括根据判定所述超高速缓存中的所有所述一个或多个单元是否可由所述单存储操作写入判定是否合并所述第一和所述第二存储指令的步骤。
4.权利要求1的方法,其特征在于,所述一个或多个单元的至少一个单元是由所述第一以及所述第二存储指令作为目标的。
5.权利要求1的方法,其特征在于,把所述第一和所述第二存储指令合并成所述单存储操作的所述步骤包括:
从由所述第一和所述第二存储指令中的至少一个指令规定的地址中确定所述单存储操作的目标地址;以及
按照所述第一和所述第二存储指令的顺序次序通过组合和所述第一及所述第二存储指令相关的数据确定和所述单存储操作相关的数据。
6.权利要求1的方法,其特征在于还包括:
在所述单存储操作之前禁用所述超高速缓存;以及
为所述单存储操作允许仅启用一次所述超高速缓存。
7.权利要求1的方法,其特征在于,所述第一和所述第二存储指令各关联着目标对着所述超高速缓存中相邻地址区的单精度数据,而所述单存储操作关联着双精度数据。
8.一种其中带有一个超高速缓存的处理机,所述处理机包括:
执行控制逻辑线路,用于识别目标对着所述超高速缓存中的一个或多个单元的第一存储指令和第二存储指令;
和所述执行控制逻辑线路连接的合并逻辑线路,其中所述合并逻辑线路根据确定所述超高速缓存忙碌把所述第一和所述第二存储指令合并成一个单存储操作;以及
和所述合并逻辑线路连接的存储器存取逻辑线路,其中所述存储器存取逻辑线路执行所述单存储操作。
9.权利要求8的处理机,其特征在于,所述执行控制逻辑线路还包括用于判定所述超高速缓存中的所述一个或多个单元是否可由所述单存储操作写的逻辑线路。
10.权利要求8的处理机,其特征在于,所述合并逻辑线路包括:
地址选择逻辑线路,其中所述地址选择逻辑线路为所述单存储操作从所述第一和所述第二存储指令中至少一个指令的地址中选择目标地址;以及
数据组合逻辑线路,其中所述数据组合逻辑线路按照所述第一和所述第二存储指令的顺序次序组合和所述第一及所述第二存储指令相关的数据。
11.权利要求8的处理机,其特征在于,所述存储器存取逻辑线路包括对向所述超高速缓存存储数据进行管理的一个存储管理单元。
12.权利要求11的处理机,其特征在于,所述存储管理单元包括超高速缓存启用逻辑线路,其中所述超高速缓存启用逻辑在所述单存储操作之前禁用所述超高速缓存并且为所述单存储操作仅允许启用所述超高速缓存一次。
13.权利要求8的处理机,其特征在于还包括:
具有至少一个表项的第一队列,所述第一队列和所述合并逻辑线路的一个输入端连接,其中所述第一队列的所述至少一个表项暂时存储所述第二存储指令;以及
具有至少一个表项的第二队列,所述第二队列和所述合并逻辑线路的一个输出端连接,其中所述第二队列的所述至少一个表项在所述第一和所述第二存储指令的所述合并之前暂时存储所述第一存储指令。
14.权利要求13的处理机,其特征在于,所述第二队列的所述至少一表项在所述第一和所述第二存储指令的所述合并后暂时存储所述单存储操作。
15.权利要求8的处理机,其特征在于,所述第一和所述第二存储指令各关联着对着所述存储器中相邻地址区的单精度数据,而所述第二队列的所述至少一表项包括一个用于暂时存储和所述单存储操作相关的双精度数据的数据字段。
16.权利要求8的处理机,其特征在于,所述一个或多个单元的至少一个单元是由所述第一和所述第二存储指令作为目标的。
17.一种数据处理系统,包括:
一个超高速缓存;
一个和所述超高速缓存连接的处理机;所述处理机包括:
执行控制逻辑线路,用于识别目标对着所述超高速缓存中一个或多个单元的第一存储指令和第二存储指令;
和所述执行控制逻辑线路连接的合并逻辑线路,其中所述合并逻辑线路根据确定所述超高速缓存忙碌把所述第一和所述第二存储指令合并成一个单存储操作;以及
和所述合并逻辑线路连接的存储器存取逻辑线路,其中所述存储器存取逻辑线路执行所述单存储操作。
18.权利要求17的数据处理系统,其特征在于,所述执行控制逻辑线路还包括用于判定是否可由所述单存储操作对所述超高速缓存中的所述一个或多个单元进行写的逻辑线路。
19.权利要求17的数据处理系统,其特征在于,所述合并逻辑线路包括:
地址选择逻辑线路,其中所述地址选择逻辑线路为所述单存储操作从所述第一和所述第二存储指令的至少一条指令的地址中选择目标地址;以及
数据组合逻辑线路,其中所述数据组合逻辑线路按照所述第一和所述第二存储指令的顺序次序组合和所述第一及所述第二存储指令相关的数据。
20.权利要求17的数据处理系统,其特征在于,所述存储器存取逻辑线路包括对向所述超高速缓存存储数据进行管理的存储管理单元。
21.权利要求20的数据处理系统,其特征在于,所述存储管理单元包括超高速缓存启用逻辑线路,其中所述超高速缓存启用逻辑线路在所述单存储操作之前禁用所述超高速缓存并且对所述单存储操作仅允许启用所述超高速缓存一次。
22.权利要求17的数据处理系统,其特征在于还包括:
具有至少一表项的第一队列,所述第一队列和所述合并逻辑线路的一个输入端连接,其中所述第一队列的所述至少一表项暂时存储所述第二存储指令;以及
具有至少一表项的第二队列,所述第二队列和所述合并逻辑线路的一个输出端连接,其中所述第二队列的所述至少一表项在所述第一和所述第二存储指令的所述合并之前暂时存储所述第一存储指令。
23.权利要求22的数据处理系统,其特征在于,所述第二队列的所述至少一表项在所述第一和所述第二存储指令的所述合并后暂时存储所述单存储操作。
24.权利要求23的数据处理系统,其特征在于,所述第一和所述第二存储指令各关联着对着所述超高速缓存中相邻地址区的单精度数据,而所述第二队列的所述至少一表项包括一个用于暂时存储和所述单存储操作相关的双精度数据的数据字段。
25.权利要求17的数据处理系统,其特征在于,所述一个或多个单元中的至少一个单元是由所述第一以及所述第二存储指令作为目标的。
CN97117589A 1996-10-07 1997-09-04 通过合并存储操作进行集中存储的处理机及方法 Expired - Fee Related CN1098486C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US726,736 1996-10-07
US726736 1996-10-07
US08/726,736 US5860107A (en) 1996-10-07 1996-10-07 Processor and method for store gathering through merged store operations

Publications (2)

Publication Number Publication Date
CN1178941A true CN1178941A (zh) 1998-04-15
CN1098486C CN1098486C (zh) 2003-01-08

Family

ID=24919792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97117589A Expired - Fee Related CN1098486C (zh) 1996-10-07 1997-09-04 通过合并存储操作进行集中存储的处理机及方法

Country Status (3)

Country Link
US (1) US5860107A (zh)
JP (1) JPH10124391A (zh)
CN (1) CN1098486C (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102171650A (zh) * 2008-11-24 2011-08-31 英特尔公司 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置
US8316370B2 (en) 2008-09-24 2012-11-20 International Business Machines Corporation Method and apparatus for accessing a shared data structure in parallel by multiple threads
CN102929727A (zh) * 2012-10-18 2013-02-13 浪潮(北京)电子信息产业有限公司 一种同步接口上数据的处理方法和系统
CN103282877A (zh) * 2010-12-25 2013-09-04 英特尔公司 用于将程序自动分解成多个并行线程的硬件和软件系统的系统、设备和方法
CN103870243A (zh) * 2008-10-30 2014-06-18 英特尔公司 有效提升指令融合的技术
CN104049945A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于融合指令以在多个测试源上提供或(or)测试和与(and)测试功能的方法和装置
US9189233B2 (en) 2008-11-24 2015-11-17 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
CN105593809A (zh) * 2013-08-06 2016-05-18 甲骨文国际公司 灵活配置硬件流传输单元
CN106909522A (zh) * 2015-12-22 2017-06-30 中国电信股份有限公司 Gpu写请求数据的延迟控制方法、装置以及云计算系统
CN107181636A (zh) * 2016-03-10 2017-09-19 阿里巴巴集团控股有限公司 一种负载均衡系统中的健康检查方法及装置
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
CN108572932A (zh) * 2017-12-29 2018-09-25 贵阳忆芯科技有限公司 多平面nvm命令融合方法与装置
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US10649746B2 (en) 2011-09-30 2020-05-12 Intel Corporation Instruction and logic to perform dynamic binary translation
CN114780031A (zh) * 2022-04-15 2022-07-22 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926831A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and apparatus for control of speculative memory accesses
EP1182558A1 (en) 2000-08-21 2002-02-27 Texas Instruments Incorporated MME descriptor having big/little endian bit to control the transfer data between devices
JP4234361B2 (ja) * 2002-06-28 2009-03-04 富士通株式会社 記憶制御装置およびデータ格納方法
JP4252828B2 (ja) * 2003-03-19 2009-04-08 株式会社日立製作所 キャッシュ制御方法、ノード装置、プログラム
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7484045B2 (en) * 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US7366851B2 (en) * 2004-08-19 2008-04-29 International Business Machines Corporation Processor, method, and data processing system employing a variable store gather window
US7676513B2 (en) * 2006-01-06 2010-03-09 Microsoft Corporation Scheduling of index merges
US8904151B2 (en) * 2006-05-02 2014-12-02 International Business Machines Corporation Method and apparatus for the dynamic identification and merging of instructions for execution on a wide datapath
US20080059722A1 (en) * 2006-08-31 2008-03-06 Arm Limited Handling data processing requests
US7849290B2 (en) * 2007-07-09 2010-12-07 Oracle America, Inc. Store queue architecture for a processor that supports speculative execution
JP4771431B2 (ja) * 2007-09-20 2011-09-14 Kddi株式会社 オペレーティングシステムに基づくイベント処理機能搭載装置及びプログラム
US8166246B2 (en) * 2008-01-31 2012-04-24 International Business Machines Corporation Chaining multiple smaller store queue entries for more efficient store queue usage
US8468306B2 (en) * 2008-02-15 2013-06-18 International Business Machines Corporation Microprocessor and method for deferred store data forwarding for store background data in a system with no memory model restrictions
US7934080B2 (en) * 2008-05-28 2011-04-26 Oracle America, Inc. Aggressive store merging in a processor that supports checkpointing
JP5522731B2 (ja) * 2010-08-19 2014-06-18 エヌイーシーコンピュータテクノ株式会社 ストアマージ装置、情報処理装置、ストアマージ方法およびプログラム
US9705730B1 (en) 2013-05-07 2017-07-11 Axcient, Inc. Cloud storage using Merkle trees
US8954544B2 (en) 2010-09-30 2015-02-10 Axcient, Inc. Cloud-based virtual machines and offices
US10284437B2 (en) 2010-09-30 2019-05-07 Efolder, Inc. Cloud-based virtual machines and offices
JP6011194B2 (ja) * 2012-09-21 2016-10-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9785647B1 (en) 2012-10-02 2017-10-10 Axcient, Inc. File system virtualization
US9852140B1 (en) * 2012-11-07 2017-12-26 Axcient, Inc. Efficient file replication
US9397907B1 (en) 2013-03-07 2016-07-19 Axcient, Inc. Protection status determinations for computing devices
US11119935B2 (en) * 2019-05-24 2021-09-14 Texas Instruments Incorporated Methods and apparatus to facilitate atomic compare and swap in cache for a coherent level 1 data cache system
US20220019436A1 (en) * 2020-07-20 2022-01-20 International Business Machines Corporation Fusion of microprocessor store instructions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59136859A (ja) * 1983-01-27 1984-08-06 Nec Corp バツフア制御装置
US4750154A (en) * 1984-07-10 1988-06-07 Prime Computer, Inc. Memory alignment system and method
US4805098A (en) * 1986-05-05 1989-02-14 Mips Computer Systems, Inc. Write buffer
US5046000A (en) * 1989-01-27 1991-09-03 International Business Machines Corporation Single-FIFO high speed combining switch
US5357622A (en) * 1990-09-27 1994-10-18 Dell U.S.A., L.P. Apparatus for queing and storing data writes into valid word patterns
US5551002A (en) * 1993-07-01 1996-08-27 Digital Equipment Corporation System for controlling a write cache and merging adjacent data blocks for write operations
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5644752A (en) * 1994-06-29 1997-07-01 Exponential Technology, Inc. Combined store queue for a master-slave cache system
US5550774A (en) * 1995-09-05 1996-08-27 Motorola, Inc. Memory cache with low power consumption and method of operation

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316370B2 (en) 2008-09-24 2012-11-20 International Business Machines Corporation Method and apparatus for accessing a shared data structure in parallel by multiple threads
US9690591B2 (en) 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter
US10649783B2 (en) 2008-10-30 2020-05-12 Intel Corporation Multicore system for fusing instructions queued during a dynamically adjustable time window
CN103870243A (zh) * 2008-10-30 2014-06-18 英特尔公司 有效提升指令融合的技术
CN101901128B (zh) * 2008-10-30 2016-04-27 英特尔公司 用于有效提升指令融合的装置、方法和系统
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
CN102171650A (zh) * 2008-11-24 2011-08-31 英特尔公司 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置
US9189233B2 (en) 2008-11-24 2015-11-17 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10725755B2 (en) 2008-11-24 2020-07-28 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
CN103282877A (zh) * 2010-12-25 2013-09-04 英特尔公司 用于将程序自动分解成多个并行线程的硬件和软件系统的系统、设备和方法
CN103282877B (zh) * 2010-12-25 2017-03-29 英特尔公司 用于将程序自动分解成多个并行线程的硬件和软件系统的系统、设备和方法
US10649746B2 (en) 2011-09-30 2020-05-12 Intel Corporation Instruction and logic to perform dynamic binary translation
CN102929727A (zh) * 2012-10-18 2013-02-13 浪潮(北京)电子信息产业有限公司 一种同步接口上数据的处理方法和系统
CN104049945A (zh) * 2013-03-15 2014-09-17 英特尔公司 用于融合指令以在多个测试源上提供或(or)测试和与(and)测试功能的方法和装置
CN104049945B (zh) * 2013-03-15 2018-11-30 英特尔公司 用于融合指令以在多个测试源上提供或(or)测试和与(and)测试功能的方法和装置
CN105593809A (zh) * 2013-08-06 2016-05-18 甲骨文国际公司 灵活配置硬件流传输单元
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
CN106909522B (zh) * 2015-12-22 2020-03-20 中国电信股份有限公司 Gpu写请求数据的延迟控制方法、装置以及云计算系统
CN106909522A (zh) * 2015-12-22 2017-06-30 中国电信股份有限公司 Gpu写请求数据的延迟控制方法、装置以及云计算系统
CN107181636A (zh) * 2016-03-10 2017-09-19 阿里巴巴集团控股有限公司 一种负载均衡系统中的健康检查方法及装置
CN108572932A (zh) * 2017-12-29 2018-09-25 贵阳忆芯科技有限公司 多平面nvm命令融合方法与装置
CN108572932B (zh) * 2017-12-29 2020-05-19 贵阳忆芯科技有限公司 多平面nvm命令融合方法与装置
CN114780031A (zh) * 2022-04-15 2022-07-22 北京志凌海纳科技有限公司 一种基于单机存储引擎的数据处理方法和装置

Also Published As

Publication number Publication date
US5860107A (en) 1999-01-12
CN1098486C (zh) 2003-01-08
JPH10124391A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
CN1098486C (zh) 通过合并存储操作进行集中存储的处理机及方法
CN1045024C (zh) 在超标量处理机系统中提高指令调度效率的方法
JP3841131B2 (ja) 浮動小数点演算システム
US5584009A (en) System and method of retiring store data from a write buffer
US6457120B1 (en) Processor and method including a cache having confirmation bits for improving address predictable branch instruction target predictions
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US6122721A (en) Reservation station for a floating point processing unit
US7293161B1 (en) Deferring loads and stores when a load buffer or store buffer fills during execute-ahead mode
CN101281460B (zh) 处理多个线程的方法和设备
US7484080B2 (en) Entering scout-mode when stores encountered during execute-ahead mode exceed the capacity of the store buffer
KR0124812B1 (ko) 독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
CN1340760A (zh) 分区的发送队列和分配策略
JP2004537084A (ja) 電力管理のための性能抑制機構を採用するマイクロプロセッサ
CN1188932A (zh) 多线程处理器中指令和关联读取请求的后台完成
CN1196997C (zh) 不按序执行指令的装置和检测不按序指令的方法
US5761105A (en) Reservation station including addressable constant store for a floating point processing unit
KR100493126B1 (ko) 데이터정밀도모드표시기를구비한다중파이프라인형마이크로프로세서
EP0651331A1 (en) A write buffer for a superpipelined, superscalar microprocessor
CN100557562C (zh) 在一个处理系统中处理多条存储指令完成的方法和系统
US7130990B2 (en) Efficient instruction scheduling with lossy tracking of scheduling information
JP3793155B2 (ja) データ処理装置におけるソースレジスタのロッキング
US6889314B2 (en) Method and apparatus for fast dependency coordinate matching
US5751946A (en) Method and system for detecting bypass error conditions in a load/store unit of a superscalar processor
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030108

Termination date: 20091009