CN100409180C - 用于处理指令循环的方法和系统 - Google Patents

用于处理指令循环的方法和系统 Download PDF

Info

Publication number
CN100409180C
CN100409180C CNB2004800284525A CN200480028452A CN100409180C CN 100409180 C CN100409180 C CN 100409180C CN B2004800284525 A CNB2004800284525 A CN B2004800284525A CN 200480028452 A CN200480028452 A CN 200480028452A CN 100409180 C CN100409180 C CN 100409180C
Authority
CN
China
Prior art keywords
instruction
robin
round
circulation
once
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.)
Expired - Fee Related
Application number
CNB2004800284525A
Other languages
English (en)
Other versions
CN1860436A (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.)
Starcore LLC
Original Assignee
Starcore LLC
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 Starcore LLC filed Critical Starcore LLC
Publication of CN1860436A publication Critical patent/CN1860436A/zh
Application granted granted Critical
Publication of CN100409180C publication Critical patent/CN100409180C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

一种信息处理系统,用于处理指令循环。响应于检测出在所述循环的通过期间内对特定指令的处理,该系统启动被编程在所述循环开始处的初始指令的读取,并且存储被编程在所述初始指令和所述特定指令之间的不同指令的标识。根据所述已存储标识,响应于检测出在所述循环的再次通过期间内对所述不同指令的处理,启动对所述初始指令的再次读取。

Description

用于处理指令循环的方法和系统
技术领域
本发明一般涉及信息处理系统,尤其涉及一种用于处理指令循环的方法和系统。
背景技术
在信息处理系统的发展过程中,期望有兼容性,以便系统的后期版本可以有效地处理原来为该系统的早期版本准备的软件程序(“旧软件程序”)。例如,该系统可以处理指令循环。对于该循环的一次重复通过(pass),该系统会遇到在该循环的开始处重复地读取指令的需求。这种需求可能由(a)对系统的指令读取缓冲器的尺寸的实际约束和/或(b)循环中的大量指令所导致。
为了降低由于这种反复读取而产生延迟的可能性,一种技术采用了特定类型的指令,用于在该循环的通过期间内在适当的时刻触发重复读取。然而,在软件程序内,这种指令的布局适用于该系统的特定版本。不同的系统版本可能会较为低效率地处理该软件程序,除非针对该不同版本修改这种指令的布局。不幸的是,软件程序的这种修改可能是费时、昂贵的,另外效率较低。
因此需要一种用于处理指令循环的方法和系统,能够克服现有技术的各种缺点。例如,需要一种用于处理指令循环的方法和系统,能够更有效地处理旧软件程序。
发明内容
因此一个实施方式提供一种用于处理指令循环的信息处理系统。响应于检测出在所述循环的通过期间内对特定指令的处理,系统启动被编程在所述循环开始处的初始指令的读取,并且存储被编程在所述初始指令和所述特定指令之间的不同指令的标识。根据所述已存储标识,响应于检测出在所述循环的再次通过期间内对所述不同指令的处理,系统启动对所述初始指令的再次读取。
该实施方式的基本优点在于,克服了现有技术的各种缺点,能更有效地处理旧软件程序。
附图说明
图1是例举实施方式的示例性系统的方框图;
图2是图1的系统的程序定序器单元的方框图;
图3是由图1的系统所处理的指令嵌套循环的例子的概念图;
图4是图2的程序定序器单元的循环结束指令检测单元的操作的流程图;
图5是图2的程序定序器单元的循环结束地址寄存器文件的操作的流程图;
图6是图2的程序定序器单元的循环结束地址检测单元的操作的流程图;
图7是图2的程序定序器单元的循环控制逻辑的操作的流程图。
具体实施方式
图1是例举实施方式的用于处理信息(例如指令、数据、信号)的示例性系统(概括地用10表示)的方框图。在例举实施方式中,系统10由各种电路部件形成。从而系统10包括各种单元、寄存器、缓冲器、存储器和其它部件,它们(a)通过总线彼此耦合,(b)由一个或多个半导体芯片中的集成电路来形成,(c)封装在一个或者多个插件中。
如图1所示,系统10包括虚线框12所示的核心单元,用于执行以下结合图1-7所述的各种操作。核心单元12包括:(a)程序定序器单元14;(b)资源停顿(stall)单元16;(c)地址发生单元(“AGU”),用虚线框18表示;以及(d)数据算术逻辑单元(“DALU”),用虚线框20表示。AGU包括多个算术地址单元(“AAU”)22、位屏蔽单元(“BMU”)24和地址发生器寄存器文件26。DALU包括多个算术逻辑单元(“ALU”)28和DALU寄存器文件30。程序定序器单元14、资源停顿单元16、AGU18(包括其各种单元和文件)以及DALU20(包括其各种单元和文件)如图1所示互连。
另外,如图1所示,核心单元12与程序高速缓冲存储器32、数据高速缓冲存储器34和统一指令/数据存储器36相连接。程序高速缓冲存储器32和数据高速缓冲存储器34与二级存储器38连接。这些存储器36和38与系统10的其它部件40连接。
而且,调试&仿真单元42耦合在程序定序器单元14和联合测试行动组(“JTAG”:Joint Test Action Group)端口之间,用于按照传统的JTAG技术来调试和仿真该系统10的各种操作。而且,如图1所示,一个或多个附加执行单元44可选择地与核心单元12、数据高速缓冲存储器34和存储器36连接。
为了执行其各种操作,系统10包括为了清楚起见没有在图1中清楚示出的各种其它互连、部件(例如,存储器管理电路)和其它细节。例如,各种地址总线除了传输地址信号之外,还传输适当的控制信号。同样,各种数据总线除了传输数据信号之外,还传输适当的控制信号。
资源停顿单元16负责控制系统10的互锁流水线。响应来自指令执行总线的信息,该资源停顿单元16存储有关核心单元12的各种部件的状况(或状态)的信息。响应这种状况(或状态)信息,资源停顿单元16通过向系统10的程序定序器单元14、AGU18、DALU20和各种其它部件输出适当的信息来解决在流水线中的冲突和危险。
例如,响应来自资源停顿单元16的信息,程序定序器单元14按照其编程顺序来读取并调度指令。为了读取指令,程序定序器单元14通过32位指令地址总线向程序高速缓冲存储器32和存储器36输出适当的指令地址。同样,响应来自资源停顿单元16和多个AAU22的信息,地址发生器寄存器文件26通过指令地址总线向程序高速缓冲存储器32和存储器36输出适当的指令地址,例如响应来自程序定序器单元14的循环、中断或者分支或跳离的各种类型的流变化(“COF”)指令,输出指令地址序列。(通过指令地址总线从程序定序器单元14或地址发生器寄存器文件26接收到的)这些地址指示用于存储由系统10执行的指令的顺序(“寻址指令”)的适当的存储器单元。
因此,响应于这些地址:(a)如果这些地址在程序高速缓冲存储器32中被当前(then-current)地索引,则程序高速缓冲存储器32通过128位指令读取总线向程序定序器单元14输出寻址指令;或者(b)否则,存储器36通过指令读取总线向程序定序器单元14输出寻址指令。程序定序器单元14接收并且存储这些指令。响应于这些所读取的指令,并且响应于从资源停顿单元16接收到的信息,程序定序器单元14经由指令执行总线在适当的时刻向资源停顿单元16、多个AAU22、BMU22、多个ALU28和一个或多个执行单元44输出(或调度)这些指令。程序定序器单元14还包括用于执行支持异常处理的操作的电路。
系统10包括多个用于执行指令的单元,即多个AAU22、BMU24、多个ALU28和一个或多个执行单元44。响应于来自资源停顿单元16的状况(或状态)信息,这些单元根据各种指令类型(例如根据指令的特定操作类型)执行一个或多个指令。例如,采用整数运算,多个AAU22执行各种指令、例如COF指令的地址计算操作。BMU24执行用于移位和屏蔽操作数中的位的各种指令。多个ALU28执行用于对操作数执行算术和逻辑操作(例如,数值加法、减法、乘法和除法)的各种指令。一个或多个执行单元44执行用于以加速方式对操作数执行专用操作的各种指令。
在适当的时候,多个AAU22通过接收来自地址发生器寄存器文件26的源操作数信息(并且输出作为结果的目标操作数信息以存储到地址发生器寄存器文件26)来与地址发生器寄存器文件26进行通信(反之亦然)。同样,在适当的时候,多个ALU28通过接收来自DALU寄存器文件30的源操作数信息(并且输出作为结果的目标操作数信息以存储到DALU寄存器文件30)来与DALU寄存器文件30进行通信(反之亦然)。
同样,在适当的时候,BMU24、地址发生器寄存器文件26、DALU寄存器文件30和一个或多个执行单元44通过经由64位操作数1和操作数2数据总线从数据高速缓冲存储器34和/或存储器36接收源操作数信息(并且输出作为结果的目标操作数信息以存储到数据高速缓冲存储器34和/或存储器36)来与数据高速缓冲存储器34和/或存储器36进行通信(反之亦然)。响应于来自多个AAU22的信息,经由相应的32位操作数1和操作数2地址总线从地址发生器寄存器文件26输出这种操作数信息的地址。
程序高速缓冲存储器32和数据高速缓冲存储器34从二级存储器38接收并且存储所选信息的拷贝。与二级存储器38相比,程序高速缓冲存储器32和数据高速缓冲存储器34为速度更高、相对较小的存储器。程序高速缓冲存储器32和数据高速缓冲存储器34中的信息是可修改的。因此,在适当的时候,系统10从程序高速缓冲存储器32和数据高速缓冲存储器34将这种修改信息复制回二级存储器38中的相关入口以便存储,从而保持了这种修改信息的一致性。
同样,经由系统10的其它部件40,二级存储器38接收并且存储来自存储器36的所选信息的拷贝。与存储器36相比,二级存储器38为速度更高、相对较小的存储器。例如当系统10从程序高速缓冲存储器32和数据高速缓冲存储器34将修改信息复制回二级存储器38的相关联部分时,二级存储器38中的信息是可修改的。因此,在适当的时候,系统10从二级存储器38将这种修改信息复制回存储器36中的相关联入口以便存储,从而保持了这种修改信息的一致性。
系统10通过在多个AAU22、BMU24、多个ALU28和一个或多个执行单元44的各个单元处同时处理多个指令来实现高性能。例如,系统10按照互锁流水线阶段的顺序来处理每个指令。相应地,系统10与其它指令的各个阶段平行地处理特定指令的每个阶段。
一般来说,系统10以每个阶段一个机器周期(“周期”)的方式进行操作(例如,任意阶段的持续时间为单个的机器周期)。但是,一些指令(例如,ACS、MAC、MPY和SAD,如表1中所述)会需要多个机器周期来执行(即,这些指令仅在系统10的多个机器周期中是可执行的)。而且,存储器存取(例如,指令读取或操作数加载)会需要系统10的几个机器周期。响应于指令之间的冲突(例如,读取/写入冲突),资源停顿单元16在完成特定指令的执行阶段的过程中有选择地引入一个或多个延迟(或停顿(stall))。
表1:具有两个机器周期来执行的指令
  指令&示例性汇编语法   示例性操作(由DALU20执行)
  相加比较选择(“ACS”)ACS2Da.X,Db.Y,Dc,Dn   在操作数寄存器(Da,Db,Dc,Dn)的高部分(“HP”)和低部分(“LP”)内容的选择之间执行四个(4)加法/减法操作。比较并找出开头两个操作的结果的最大值,并将最大结果写入操作数寄存器(Dn.H)的HP.比较并找出最后两个操作的结果的最大值,并将最大结果写入操作数寄存器(Dn.L)的LP。如果第一操作结果大于第二操作结果,则将目标操作数寄存器中的位32(Dn[32])清零;否则,设定该位。如果第三操作结果大于第四操作结果,则将目标操作数寄存器中的位33(Dn[33])清零;否则,设定该位。将目标寄存器的两个HP和LP限制为16位。在溢出的情况下,使这些结果饱和至16位最大或最小值。该结果的扩展字节未定义。
  使带符号分数相乘并累积(“MAC”)MAC Da,Db,Dn   对两个16位带符号操作数(Da.H/L和Db.H/L)执行带符号分数乘法;然后将乘积加到目标操作数寄存器(Dn)上或从其中将该乘积减去。一个操作数为操作数寄存器的HP或LP。另一个操作数为操作数寄存器的HP或LP或者16位带符号直接数据。
  使带符号分数相乘(“MPY”)MPY Da,Db,Dn   对两个操作数寄存器(Da和Db)的高部分或低部分执行带符号分数乘法,并且将乘积存储在目标操作数寄存器(Dn)中。
  绝对字节差值的总和(“SAD”)SAD4 Da,Db,Dn   在位7和8、15和16以及23和24之间禁止借位的情况下执行从Db减去源寄存器Da的32位减法,从而每个寄存器的四个字节独立地被无符号地减去。每个减法的绝对值被加到目标寄存器Dn的LP上。该结果的扩展字节和HP为零扩展。
在例举实施方式中,系统10如表2所述按10个互锁流水线阶段的顺序处理指令,从而按相同的阶段顺序处理每个指令。在每个流水线阶段期间,系统10为其下一个阶段准备指令。在系统10启动指令的处理之后,系统10在随后的时间(例如,一个机器周期之后)启动紧接着的指令的处理。这样,系统10同时处理多个指令的各个阶段。
系统10的多阶段流水线包括多个执行阶段。例如,在如表2所述的例举实施方式中,该流水线包括第一执行阶段(E阶段)和第二执行阶段(M阶段)。在可选实施方式中,该流水线包括第一和第二执行阶段再加上至少一个附加执行阶段。在这样的可选实施方式中,根据该系统10的各种目的适当地建立多个执行阶段的相应操作,从而通过多个执行阶段中的适当的一个或多个来代替地(或另外地)执行(在表2中描述并且另外在下面结合图2-7描述的)E阶段或M阶段操作中的一个或多个。
例如,在第一可选实施方式中,附加执行阶段在该例举实施方式的第一执行阶段之前,从而该附加执行阶段将紧接着在表2中的C阶段之后,并且将相应地执行操作。在第二可选实施方式中,附加执行阶段在例举实施方式的第二执行阶段之后,从而该附加执行阶段将紧接着在表2中的W阶段之前,并且相应地执行操作。在第三可选实施方式中,附加执行阶段中的一个或多个在该例举实施方式的第一执行阶段之前,并且该附加执行阶段中的一个或多个在该例举实施方式的第二执行阶段之后,从而:(a)附加执行阶段中的至少一个将紧接着在表2中的C阶段之后并且将相应地执行操作;并且(b)附加执行阶段中的至少一个将紧接着在表2中的W阶段之前并且将相应地执行操作。这样,与该例举实施方式类似,这些可选实施方式同样受益于以下所述的技术(结合图2-7),并且这些技术同样适用于这些可选实施方式。
表2:流水线阶段概述
  流水线阶段   符号   说明
  程序地址   P阶段   在该机器周期期间,通过指令地址总线,将适当的指令地址输出给程序高速缓冲存储器32和存储器36。
  读取存储器   R阶段   在该机器周期期间,响应于在P阶段期间输出的指令地址,在程序高速缓冲存储器32和/或存储器36中存取指令,并且根据该指令地址是否在程序高速缓冲存储器32中被当前地索引而经由指令读取总线从程序高速缓冲存储器32和/或存储器36输出指令的十六个(16)顺序字节。
  读取   F阶段   在该机器周期期间,经由指令读取总线,程序定序器单元14接收并且存储在R阶段期间输出的指令的十六个(16)顺序字节。
  VLES调度   V阶段   在该机器周期期间,程序定序器单元14经由指令执行总线将变长执行集(“VLES”)指令调度给适当的执行单元(即,多个AAU22、BMU24、多个ALU28和一个或多个执行单元44)。如果该指令为用于修改系统10处理后续指令的方式(例如,如果后续指令为可选指令集的一部分,可以由一个或多个执行单元44执行以执行专用操作)的前置指令,则在该机器周期期间相应地由程序定序器单元14对该前置指令进行解码。
  解码   D阶段   在该机器周期期间,由指令的执行单元(即,将执行该指令的执行单元)对所调度的指令进行解码。
  地址发生   A阶段   在该机器周期期间,经由操作数1和操作数2地址总线,AGU18(从其地址发生器寄存器文件26)将源操作数信息和目标操作数信息的地址输出给数据高速缓冲存储器34和存储器36。
  存储器存取   C阶段   在该机器周期期间,响应于在A阶段期间输出的地址,在数据高速缓冲存储器34和/或存储器36中存取源操作数信息,并且根据该源操作数信息的地址是否在数据高速缓冲存储器34中被当前地索引而经由操作数1和操作数2数据总线从数据高速缓冲存储器34和/或存储器36输出源操作数信息。
  执行   E阶段   在该机器周期期间,通过操作数1和操作数2数据总线,指令的执行单元接收在C阶段期间输出的源操作数信息。并且,在该机器周期期间,指令的执行单元执行该指令。
  Mac   M阶段   在该机器周期期间,如果该指令需要两个机器周期来执行,则该指令的执行单元完成执行该指令。相反,如果该指令只需要一个机器周期来执行,并且在E阶段期间被执行,则系统10为其W阶段准备指令,否则在该机器周期期间响应于该指令而执行空操作(“NOP”)。
  回写   W阶段   在该机器周期期间,经由操作数1和操作数2数据总线,指令的执行单元根据目标操作数信息的地址是否在数据高速缓冲存储器34中被当前地索引而将目标操作数信息输出(或写入或存储)到数据高速缓冲存储器34和/或存储器36。
图2为程序定序器单元14的方框图。如图2所示,程序定序器单元14包括指令读取缓冲器50、循环结束指令检测单元52,循环结束地址寄存器文件54、延迟逻辑56、循环结束地址检测单元58、循环控制逻辑60、程序地址控制逻辑62、地址缓冲器64以及当前地址寄存器66程序定序器单元14的这些元件执行如下面结合图2-7所描述的各种操作。
为了执行其各种操作,程序定序器单元14包括为了清楚起见没有在图2中清楚示出的各种其他互连(例如,与资源停顿单元16的互连)、部件和其他细节。例如,程序地址控制逻辑62与图1的指令地址总线连接,并且执行程序定序器单元14的P阶段操作。在指令的P阶段期间,如果程序地址控制逻辑62或AGU18响应于COF指令而输出指令地址,则地址缓冲器64接收并且缓冲(或存储)该指令地址,至少直到当前地址寄存器66从地址缓冲器64接收到该指令地址。
指令读取缓冲器50耦合在图1的指令读取总线和图1的指令执行总线之间。响应于执行P阶段操作的程序地址控制逻辑62:(a)在紧接着的下面的机器周期期间,执行相应的R阶段操作;并且(b)在执行了R阶段操作之后,在紧接着的下面的机器周期期间,指令读取缓冲器50执行程序定序器单元14的相应的F阶段操作。指令读取缓冲器50从指令读取总线接收并且缓冲至指令的六十四(64)个字节。
在没有来自AGU18的相反信息的情况下(在COF指令的情况下):(a)在指令读取缓冲器50执行一个或多个指令的V阶段时,当前地址寄存器66使其锁存地址增加当前地址寄存器66从指令读取缓冲器50接收到的所调度指令的字节数(即,该字节数可以是从2至16字节的偶数,因为这些指令为VLES指令);并且(b)在如此执行指令的V阶段的过程中,如果响应于COF指令来处理该指令,则当前地址寄存器66接收并且锁存来自地址缓冲器64的下一个指令地址。在如此接收和锁存来自地址缓冲器64的下一个指令地址之后,当前地址寄存器66在必要时递增,以确保其锁存地址与其V阶段正在由指令读取缓冲器50执行的指令相关联。
该指令读取缓冲器50作为先进先出队列进行操作。在该例举实施方式中,系统10按照大体上避免完全充满指令读取缓冲器50的方式来协调指令的F阶段和V阶段。然而,即使指令读取缓冲器50被充满,如果它执行具有指令的至少十六(16)个字节的V阶段,则它不再被充满。这是因为在这种V阶段期间,指令读取缓冲器50向指令执行总线输出这些被缓冲的指令。
在没有来自循环控制逻辑60(或者在COF指令的情况下为AGU18)的相反信息的情况下,程序地址控制逻辑62通过输出从其最近输出的指令地址递增后的指令地址来执行P阶段操作。这个增量为十六(16)(即,在F阶段期间由指令读取缓冲器50从指令读取总线接收到的字节数)。
当前地址寄存器66将其锁存指令地址输出给循环结束指令检测单元52、延迟逻辑56和循环结束地址检测单元58。延迟逻辑56:(a)从当前地址寄存器66接收当前指令地址;(b)响应于此,存储(或锁存)这个地址;并且(c)在延迟的基础上将它输出给循环结束地址寄存器文件54。这个延迟为预选择的整数量q个机器周期。下面结合图3-7对循环结束指令检测单元52、循环结束地址寄存器文件54、延迟逻辑56、循环结束地址检测单元58和循环控制逻辑60的附加操作进行说明。
图3为由图1的系统处理的指令嵌套循环的例子的概念图。图3示出十九(19)个指令(即指令1至指令19)的序列,它们存储在十九(19)个分别相关联的地址(即,地址1至地址19)中。在图3的例子中,该序列包括四(4)个指令嵌套循环,即:
(a)循环1,由指令3-18形成;
(b)循环2,由指令4-16形成;
(c)循环3,由指令6-15形成;以及
(d)循环4,由指令8-10形成。
如图3所示,循环4嵌套在循环3内,从而该循环3包括所有循环4的指令。同样,循环3嵌套在循环2内,从而循环2包括所有循环3的指令。而且,循环2嵌套在循环1内,从而循环1包括所有循环2的指令。
在当前的基础上,系统10在直到这些嵌套循环的固定数目(例如,四(4)个)的范围内处理指令。为此,程序定序器单元14包括并且操作用于存储以下内容的寄存器:(a)直到固定数目的循环开始地址;以及(b)直到固定数目的循环计数。相应地,循环开始地址寄存器分别与这些嵌套循环相关联。同样,循环计数寄存器分别与嵌套循环相关联。
因此,如果指令的地址被存储在循环的相关联的起始地址寄存器中,则该指令是该循环的通过期间内的循环的第一(或初始)指令。在图3的例子中,循环起始地址寄存器分别存储有:(a)循环1的循环起始地址,它为地址3;(b)循环2的循环起始地址,它为地址4;(c)循环3的循环起始地址,它为地址6;以及(d)循环4的循环起始地址,它为地址8。同样,循环计数寄存器分别存储有:(a)循环1已经被完全处理的次数;(b)循环2已经被完全处理的次数;(c)循环3已经被完全处理的次数;以及(d)循环4已经被完全处理的次数。
在第一循环(例如,相对靠“里面”的循环,例如循环3)被嵌套在第二循环(例如,相对靠“外面”的循环,例如循环2或循环1)内,并且如果第一循环由系统10终止,则在重复第二循环的过程中仍然可以由系统10重复处理第一循环。在没有异常或COF指令的情况下,在处理该循环外面的指令之前,系统10在多次通过中重复处理该循环,直到该循环被终止。在该循环内,指令可以规定该循环的终止在该循环已经被完全处理过特定通过次数(从该循环的最近一次终止开始,如果有的话)之后出现。因此,该循环的相关联循环计数寄存器可用于管理该循环的终止,并且系统10响应于该终止而使该计数寄存器复位。
如图3所示,每个循环具有相关联的循环结束(“EOL”)标记,该标记以清楚的或暗示的方式标记出循环的结束。例如,(a)循环1的相关联EOL标记位于指令18处;(b)循环2的相关联EOL标记位于指令16处;(c)循环3的相关联EOL标记位于指令15处;并且(d)循环4的相关联EOL标记位于指令10处。因此,如果该循环的相关联EOL标记位于一个指令处,则这个指令为该循环的一次通过期间内的该循环的最终指令。
还参照图2,程序定序器单元14在循环的指令的初始处理中执行P阶段操作。但是随后,即使当系统10在多次通过中重复处理该循环时,并且在没有异常或COF指令的情况下,如果一个循环的指令的总的大小小于或等于六十四(64)个字节(即,指令读取缓冲器50的大小),则:(a)程序定序器单元14继续将该循环的所有指令缓冲在指令读取缓冲器50中,直到该循环被终止;并且(b)在该期间内,程序定序器单元14不针对该循环的指令重复(或重新进行)P阶段操作。在图3中,循环4为这种循环的一个例子。
相反,如果一个循环的指令的总的大小大于六十四(64)个字节,并且如果系统10在多次通过中重复处理该循环,则程序定序器单元14针对该循环的指令中的一个或多个重复执行P阶段操作。在图3中,循环1、2和3为这种循环的例子。P阶段(及其相应的R阶段和F阶段操作)的这种重新执行会延迟(或停顿)系统10的操作,因为存储器存取(例如,指令读取)需要比当前所处理的指令序列(例如,旧指令序列)所预期的更多的机器周期。
系统10最好减少这种延迟。因此,如果该循环是当前活动(active)的,则在系统10处理位于该循环的相关联EOL标记附近的指令时,程序定序器单元14在循环的起始地址处启动指令的P阶段操作的重新执行(这也导致在紧接着的后面的机器周期期间内相应的R阶段和F阶段操作的重新执行,如上面有关指令读取缓冲器50和程序地址控制逻辑62的说明)。
当前活动循环是最内层嵌套循环,它:(a)包含从当前地址寄存器66输出的当前指令地址;并且(b)被当前调度为在处理位于该循环外面的指令之前在另一次通过中重复(例如,在没有异常或COF指令的情况下,并且如果该循环的相关联循环计数寄存器指示该循环还没有被处理其规定的次数,如上面结合图3的描述)。
这个启动适合在系统10在该循环的起始地址处重复这些指令的其它阶段之前出现。这种提前启动有助于降低可能由于这种P阶段操作的重新执行而导致的延迟。
在图3中,通过所选指令中的EOL警报来触发这种提前启动。循环4没有EOL警报,因为程序定序器单元14没有在循环4被终止之前重复循环4的指令的P阶段操作,如上面结合图3所述。通过比较,(a)循环3在指令13中具有相关联EOL警报;(b)循环2在指令14中具有相关联EOL警报;并且(c)循环1在指令16中具有相关联EOL警报。
从而,在图3的例子中,一个循环的相关联EOL警报位于该循环的倒数第三个指令中。然而,如下面结合图4-7所述,程序定序器单元14被配置成在循环的起始地址处更快地启动指令的P阶段操作的重新执行,从而:(a)P阶段操作及其相应的R阶段和F阶段操作更可能在指令读取缓冲器50准备好执行这些指令的相应V阶段操作之前结束;并且(b)从而更不容易出现停顿。
在一个例子中,程序定序器单元14配置成在循环的相关联EOL警报之前启动这种重新执行的q个指令,其中q为预先选择的整数(例如,1)。这个特征在以下情况中是有利的:(a)旧指令序列在该循环的倒数第n个指令中包括相关联EOL警报,但是其中通过响应于该循环的倒数第k个指令而触发这种提前启动来进一步提高系统10的性能,其中k和n为整数,并且其中k比n大预先选择的整数量q;并且(b)旧指令序列的重新编译或重新编程是昂贵的、不合时宜的、效率低或者不实际的。
图4为循环结束指令检测单元52的操作的流程图。该操作在步骤70处开始。在步骤70中,循环结束指令检测单元52识别(或确定)当前活动的循环。在步骤70之后,该操作前进至步骤72。
在步骤72中,循环结束指令检测单元52将当前活动循环的标识输出给循环结束地址寄存器文件54和循环控制逻辑60。在步骤72之后,该操作前进至步骤74。在步骤74中,循环结束指令检测单元52经由指令执行总线从指令读取缓冲器50接收其V阶段当前正在由指令读取缓冲器50执行的指令。在步骤74之后,该操作前进至步骤76。
在步骤76中,循环结束指令检测单元52确定(经由指令执行总线从指令读取缓冲器50接收到的)这个指令是否包括与当前活动循环相关联的EOL警报。如果没有,则操作返回到步骤70。相反,如果这个指令包括与当前活动循环相关联的EOL警报,则该操作前进至步骤78。在步骤78中,循环结束指令检测单元52向循环结束地址寄存器文件54和循环控制逻辑60输出信号。在步骤78中,操作返回到步骤70。
图5为循环结束地址寄存器文件54的操作的流程图。该操作在步骤80处开始。在步骤80中,循环结束地址寄存器文件54确定它是否(在当前活动循环的当前通过期间内)已经接收到来自循环结束指令检测单元52的信号。如果没有,则该操作在步骤80中自循环。相反,如果(在当前活动循环的当前通过期间内)循环地址寄存器文件54接收到来自循环结束指令检测单元52的信号,则该操作前进至步骤82。
在步骤82中,循环结束地址寄存器文件54从循环结束指令检测单元52接收当前活动循环的标识。在步骤82之后,该操作前进至步骤84。在步骤84中,循环结束地址寄存器文件54:(a)存储当前活动循环的标识(“已存储循环标识”);(b)接收来自延迟逻辑56的地址输出;并且(c)存储与已存储循环标识相关联的这种地址。例如,在步骤84中,如果当前活动循环的相关联EOL警报位于该循环的倒数第n个指令中,则延迟逻辑56向循环结束地址寄存器文件54输出该循环的倒数第k个地址,其中k和n为整数,并且其中k比n大预先选择的整数量q。在步骤84之后,该操作返回到步骤80。
这样,循环结束地址寄存器文件54存储到预定数目(例如,4个)地址,每个都与相应的已存储循环标识相关联。如果循环结束地址寄存器文件54在执行步骤84之前已经存储有预定数量的地址,则循环结束地址寄存器文件54在循环结束地址寄存器文件54执行步骤84时在最近使用(“LRU”)的基础上重写它们中的一个。(在步骤84中被写入循环结束地址寄存器文件54中的)已存储地址及其相关联的已存储循环标识在该循环的每次通过期间内被写入循环结束地址寄存器文件54中。这样,即使已存储地址及其相关联的已存储循环标识被重写(例如,在系统10对中断指令序列进行处理的期间内),这种地址及其相关联的循环标识在该循环的下一次通过期间内被重新存储在循环结束地址寄存器文件54中。
在一个例子中,如果系统10在第一组通过之后终止第一循环,则系统10在第二组通过中仍然重复处理第一循环(例如在重复执行第二相对靠“外面”的循环的过程中),在该终止之后并且在第二组通过的开始和结束的整个过程中,(在第一组通过期间内在步骤84中被写入循环结束地址寄存器文件54中的)已存储地址及其相关联的已存储循环标识仍然存储在循环结束地址寄存器文件54中。
图6为循环结束地址检测单元58的操作的流程图。该操作在步骤90处开始,在该步骤中,循环结束地址检测单元58从当前地址寄存器66接收当前指令地址。在步骤90之后,该操作前进至步骤92。
在步骤92中,循环结束地址检测单元58确定该当前指令地址是否与存储在循环结束地址寄存器文件54中的地址相匹配。如果不匹配,则操作返回到步骤90。相反,如果当前指令地址与存储在循环结束地址寄存器文件54中的地址相匹配,则操作前进至步骤94。
在步骤94中,循环结束地址检测单元58:(a)从循环结束地址寄存器文件54中读取与该地址相关联的已存储循环标识;并且(b)向循环控制逻辑60输出已存储循环标识和信号。在循环结束地址检测单元58执行步骤94时,已存储循环标识不一定标识该当前活动循环,因为该当前活动循环自从已存储循环标识被写入循环结束地址寄存器文件54中后可能已经改变。在步骤94之后,操作返回到步骤90。
图7为循环控制逻辑60的操作的流程图。该操作在步骤100处开始,在该步骤中,循环控制逻辑60确定它是否(在当前活动循环的当前通过期间内)已经接收到来自循环结束地址检测单元58的信号。如果没有,则操作前进至步骤102。
在步骤102中,循环控制逻辑60确定它是否(在当前活动循环的当前通过期间内)已经接收到来自循环结束指令检测单元52的信号。如果没有,则操作返回到步骤100。相反,如果(在当前活动循环的当前通过期间内)循环控制逻辑60接收到来自循环结束指令检测单元52的信号,则该操作前进至步骤104。
在步骤104中,循环控制逻辑60向程序地址控制逻辑62输出(用于识别当前活动循环的)信号。响应于这个信号,程序地址控制逻辑62(从该当前活动循环的相关联起始地址寄存器)读取当前活动循环的起始地址,并且启动在该当前活动循环的起始地址处的指令的P阶段操作的重新执行。在步骤104之后,该操作返回到步骤100。
在步骤100中,如果(在当前活动循环的当前通过期间内)循环控制逻辑60从循环结束地址检测单元58接收到该信号(表示该当前指令地址与存储在循环结束地址寄存器文件54中的地址相匹配),则操作前进至步骤106。在步骤106中,循环控制逻辑60接收由循环结束地址检测单元58输出的已存储循环标识(图6的步骤94)。在循环控制逻辑60执行步骤106时,已存储循环标识不一定标识该当前活动循环,因为该当前活动循环自从已存储循环标识被写入循环结束地址寄存器文件54中后可能已经改变。
在步骤106之后,操作前进至步骤108。在步骤108中,循环控制逻辑60从循环结束指令检测单元52接收当前活动循环的标识。在步骤108之后,操作前进至步骤110。
在步骤110中,循环控制逻辑60确定(在步骤106中接收到的)已存储循环标识是否与(在步骤108中接收到的)当前活动循环的标识相匹配。如果不匹配,则操作前进至步骤102。相反,如果已存储循环标识与该当前活动循环的标识相匹配,则循环控制逻辑60从循环结束地址检测单元58接收到(步骤100)的信号是当前有效的,并且操作前进至步骤104。
在可选实施方式中,在步骤76中(图4),循环结束指令检测单元52还确定该当前活动循环的相关联EOL标记是否位于(经由指令执行总线从指令读取缓冲器50接收到的)指令处。如果是,则操作前进至步骤78。在这个可选实施方式的一个修改版本中,如果当前活动循环的相关联EOL标记位于该指令处,则该操作前进至步骤78,但是只有在循环结束指令检测单元52在该当前通过期间之前还没有遇到(与当前活动循环相关联)的EOL警报的情况下。在这个可选实施方式的另一个修改版本中,即使该操作响应于位于该指令处的当前活动循环的相关联EOL标记而前进至步骤78,延迟逻辑56(在图5的步骤84中)也输出该循环的倒数第k个地址(如上所述),从而循环结束地址寄存器文件54接收该地址并且与已存储循环标识相关联地进行存储。因此,即使指令序列没有包括任何EOL警报,这种可选实施方式的版本也实现了上述各种优点。
总之,如上所述,系统10处理一个或多个指令循环。响应于循环结束指令检测单元52检测出在当前活动循环的通过期间内对特定指令(例如,包括当前活动循环的相关联EOL警报的指令和/或当前活动循环的相关联EOL标记所在的指令)的处理,程序定序器单元14:(a)启动被编程在当前活动循环的开始处的初始指令(即,存储在当前活动循环的相关联起始地址处的指令)的读取;(b)存储被编程在初始指令和特定指令(即存储在当前活动循环的倒数第k个地址处的指令)之间的不同指令(例如,当前活动循环的倒数第k个指令)的标识(例如,地址)。根据已存储标识,响应于循环结束地址检测单元58检测出在当前活动循环的再次通过期间内对不同指令的处理,程序定序器单元14在再次通过期间内处理当前活动循环的最终指令之前启动初始指令的再次读取。
虽然已经示出并且描述了例举实施方式,但是可以在上述公开内容中想到许多修改、变化和替换,并且在某些情况中,可以在不相应地使用其它特征的情况下应用这些实施方式的一些特征。因此,按照与这里所公开的实施方式的范围一致的方式并且广义地解释所附权利要求是适当的。

Claims (20)

1. 一种由信息处理系统在处理指令循环时执行的方法,包括:
响应于检测出在所述循环的通过期间内对特定指令的处理,启动对于被编程在所述循环开始处的初始指令的读取,并且存储被编程在所述初始指令和所述特定指令之间的不同指令的标识;并且
根据所述已存储标识,响应于检测出在所述循环的再次通过期间内对所述不同指令的处理,启动对所述初始指令的再次读取。
2. 如权利要求1所述的方法,其中启动所述读取的步骤包括:
响应于检测出在所述循环的所述通过期间内对所述特定指令的处理,在所述通过期间内处理最终指令之前启动所述读取,其中所述最终指令被编程在所述循环的结束处。
3. 如权利要求1所述的方法,其中启动所述再次读取的步骤包括:
响应于检测出在所述循环的所述再次通过期间内对所述不同指令的处理,在所述再次通过期间内处理最终指令之前启动所述再次读取,其中所述最终指令被编程在所述循环的结束处。
4. 如权利要求1所述的方法,其中所述特定指令为包括与所述循环相关联的循环结束警报的指令。
5. 如权利要求1所述的方法,其中所述特定指令为与所述循环相关联的循环结束标记所在的指令。
6. 如权利要求1所述的方法,其中所述循环为第一循环,并且其中所述信息处理系统处理包括所述第一循环和第二循环的多个指令循环,并且其中启动所述读取的步骤包括:
响应于检测出在所述循环的所述通过期间内对所述特定指令的处理,如果所述第一循环是包含所述特定指令的最内层嵌套循环、并且被调度为在处理位于所述第一循环外面的指令之前在所述再次通过中重复,则启动所述读取。
7. 如权利要求6所述的方法,其中启动所述再次读取的步骤包括:
响应于检测出在所述循环的所述再次通过期间内对所述不同指令的处理,如果所述第一循环是包含所述不同指令的最内层嵌套循环、并且被调度为在处理位于所述第一循环外面的指令之前在另一次通过中重复,则启动所述再次读取。
8. 如权利要求7所述的方法,其中所述特定指令为第一特定指令,所述初始指令为第一初始指令,所述不同指令为第一不同指令,并且所述已存储标识为第一已存储标识,并且所述方法包括:
响应于检测出在所述第二循环的通过期间内对第二特定指令的处理,启动被编程在所述第二循环的开始处的第二初始指令的读取,并且存储被编程在所述第二初始指令和所述第二特定指令之间的第二不同指令的第二标识;并且
根据所述第二已存储标识,响应于检测出在所述第二循环的再次通过期间内对所述第二不同指令的处理,启动所述第二初始指令的再次读取。
9. 如权利要求8所述的方法,其中启动所述第二初始指令的读取的步骤包括:
响应于检测出在所述第二循环的所述通过期间内对所述第二特定指令的处理,如果所述第二循环为包含所述第二特定指令的最内层嵌套循环、并且被调度为在处理位于所述第二循环外面的指令之前在所述再次通过中重复,则启动所述读取。
10. 如权利要求9所述的方法,其中启动所述第二初始指令的所述再次读取的步骤包括:
响应于检测出在所述第二循环的所述再次通过期间内对所述第二不同指令的处理,如果所述第二循环为包含所述第二不同指令的最内层嵌套循环、并且被调度为在处理位于所述第二循环外面的指令之前在另一次通过中重复,则启动所述再次读取。
11. 一种用于处理指令循环的系统,包括:
程序定序器单元,用于:
响应于检测出在所述循环的通过期间内对特定指令的处理,启动被编程在所述循环开始处的初始指令的读取,并且存储被编程在所述初始指令和所述特定指令之间的不同指令的标识;并且
根据所述已存储标识,响应于检测出在所述循环的再次通过期间内对所述不同指令的处理,启动对所述初始指令的再次读取。
12. 如权利要求11所述的系统,其中所述程序定序器单元用于:
响应于检测出在所述循环的所述通过期间内对所述特定指令的处理,在所述通过期间内处理最终指令之前启动所述读取,其中所述最终指令被编程在所述循环的结束处。
13. 如权利要求11所述的系统,其中所述程序定序器单元用于:
响应于检测出在所述循环的所述再次通过期间内对所述不同指令的处理,在所述再次通过期间内处理最终指令之前启动所述再次读取,其中所述最终指令被编程在所述循环的结束处。
14. 如权利要求11所述的系统,其中所述特定指令为包括与所述循环相关联的循环结束警报的指令。
15. 如权利要求11所述的系统,其中所述特定指令为与所述循环相关联的循环结束标记所在的指令。
16. 如权利要求11所述的系统,其中所述循环为第一循环,并且其中所述系统处理包括所述第一循环和第二循环的多个指令循环,并且其中所述程序定序器单元用于:
响应于检测出在所述循环的所述通过期间内对所述特定指令的处理,如果所述第一循环是包含所述特定指令的最内层嵌套循环、并且被调度为在处理位于所述第一循环外面的指令之前在所述再次通过中重复,则启动所述读取。
17. 如权利要求16所述的系统,其中所述程序定序器单元用于:
响应于检测出在所述循环的所述再次通过期间内对所述不同指令的处理,如果所述第一循环是包含所述不同指令的最内层嵌套循环、并且被调度为在处理位于所述第一循环外面的指令之前在另一次通过中重复,则启动所述再次读取。
18. 如权利要求17所述的系统,其中所述特定指令为第一特定指令,所述初始指令为第一初始指令,所述不同指令为第一不同指令,并且所述已存储标识为第一已存储标识,并且其中所述程序定序器单元用于:
响应于检测出在所述第二循环的通过期间内对第二特定指令的处理,启动被编程在所述第二循环的开始处的第二初始指令的读取,并且存储被编程在所述第二初始指令和所述第二特定指令之间的第二不同指令的第二标识;并且
根据所述第二已存储标识,响应于检测出在所述第二循环的再次通过期间内对所述第二不同指令的处理,启动所述第二初始指令的再次读取。
19. 如权利要求18所述的系统,其中所述程序定序器单元用于:
响应于检测出在所述第二循环的所述通过期间内对所述第二特定指令的处理,如果所述第二循环为包含所述第二特定指令的最内层嵌套循环、并且被调度为在处理位于所述第二循环外面的指令之前在所述再次通过中重复,则启动所述第二初始指令的所述读取。
20. 如权利要求19所述的系统,其中所述程序定序器单元用于:
响应于检测出在所述第二循环的所述再次通过期间内对所述第二不同指令的处理,如果所述第二循环为包含所述第二不同指令的最内层嵌套循环、并且被调度为在处理位于所述第二循环外面的指令之前在另一次通过中重复,则启动所述第二初始指令的所述再次读取。
CNB2004800284525A 2003-09-30 2004-09-28 用于处理指令循环的方法和系统 Expired - Fee Related CN100409180C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/675,092 US7020769B2 (en) 2003-09-30 2003-09-30 Method and system for processing a loop of instructions
US10/675,092 2003-09-30

Publications (2)

Publication Number Publication Date
CN1860436A CN1860436A (zh) 2006-11-08
CN100409180C true CN100409180C (zh) 2008-08-06

Family

ID=34377046

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800284525A Expired - Fee Related CN100409180C (zh) 2003-09-30 2004-09-28 用于处理指令循环的方法和系统

Country Status (5)

Country Link
US (1) US7020769B2 (zh)
EP (1) EP1668492A4 (zh)
CN (1) CN100409180C (zh)
IL (1) IL174312A (zh)
WO (1) WO2005033862A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8049760B2 (en) * 2006-02-06 2011-11-01 Via Technologies, Inc. System and method for vector computations in arithmetic logic units (ALUs)
US20090327674A1 (en) * 2008-06-27 2009-12-31 Qualcomm Incorporated Loop Control System and Method
US20100122066A1 (en) * 2008-11-12 2010-05-13 Freescale Semiconductor, Inc. Instruction method for facilitating efficient coding and instruction fetch of loop construct
US20120185714A1 (en) * 2011-12-15 2012-07-19 Jaewoong Chung Method, apparatus, and system for energy efficiency and energy conservation including code recirculation techniques
US8898433B2 (en) 2012-04-26 2014-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Efficient extraction of execution sets from fetch sets
US10339057B2 (en) * 2016-12-20 2019-07-02 Texas Instruments Incorporated Streaming engine with flexible streaming engine template supporting differing number of nested loops with corresponding loop counts and loop offsets
CN107844322B (zh) * 2017-07-20 2020-08-04 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206144A (zh) * 1997-06-30 1999-01-27 松下电器产业株式会社 能够减少转移故障的具有小尺寸电路的流水线处理器
US6014741A (en) * 1997-06-12 2000-01-11 Advanced Micro Devices, Inc. Apparatus and method for predicting an end of a microcode loop
CN1372190A (zh) * 2001-01-31 2002-10-02 斯罗扬有限公司 对处理器中循环的处理
US6505295B1 (en) * 1997-02-17 2003-01-07 Hitachi, Ltd. Data processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4876642A (en) * 1988-01-19 1989-10-24 Gibson Glenn A Rules and apparatus for a loop capturing code buffer that prefetches instructions
EP0374419A3 (en) * 1988-12-21 1991-04-10 International Business Machines Corporation Method and apparatus for efficient loop constructs in hardware and microcode
US5727194A (en) * 1995-06-07 1998-03-10 Hitachi America, Ltd. Repeat-bit based, compact system and method for implementing zero-overhead loops
US6671799B1 (en) * 2000-08-31 2003-12-30 Stmicroelectronics, Inc. System and method for dynamically sizing hardware loops and executing nested loops in a digital signal processor
US6564313B1 (en) * 2001-12-20 2003-05-13 Lsi Logic Corporation System and method for efficient instruction prefetching based on loop periods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505295B1 (en) * 1997-02-17 2003-01-07 Hitachi, Ltd. Data processor
US6014741A (en) * 1997-06-12 2000-01-11 Advanced Micro Devices, Inc. Apparatus and method for predicting an end of a microcode loop
CN1206144A (zh) * 1997-06-30 1999-01-27 松下电器产业株式会社 能够减少转移故障的具有小尺寸电路的流水线处理器
CN1372190A (zh) * 2001-01-31 2002-10-02 斯罗扬有限公司 对处理器中循环的处理

Also Published As

Publication number Publication date
US20050071615A1 (en) 2005-03-31
WO2005033862A2 (en) 2005-04-14
IL174312A0 (en) 2006-08-01
US7020769B2 (en) 2006-03-28
EP1668492A2 (en) 2006-06-14
WO2005033862A3 (en) 2006-02-16
EP1668492A4 (en) 2008-06-04
IL174312A (en) 2010-11-30
CN1860436A (zh) 2006-11-08

Similar Documents

Publication Publication Date Title
US11340908B2 (en) Reducing data hazards in pipelined processors to provide high processor utilization
US6567895B2 (en) Loop cache memory and cache controller for pipelined microprocessors
EP0111776B1 (en) Interrupt processor
US8935515B2 (en) Method and apparatus for vector execution on a scalar machine
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5958048A (en) Architectural support for software pipelining of nested loops
KR100731371B1 (ko) 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체
US4991078A (en) Apparatus and method for a pipelined central processing unit in a data processing system
US4587632A (en) Lookahead stack oriented computer
JPH04313121A (ja) インストラクションメモリ装置
US7480783B2 (en) Systems for loading unaligned words and methods of operating the same
CN102508635A (zh) 一种处理器装置及其循环处理方法
US20210334103A1 (en) Nested loop control
US6324639B1 (en) Instruction converting apparatus using parallel execution code
US20030120882A1 (en) Apparatus and method for exiting from a software pipeline loop procedure in a digital signal processor
CN100409180C (zh) 用于处理指令循环的方法和系统
US20050071565A1 (en) Method and system for reducing power consumption in a cache memory
JPH03233630A (ja) 情報処理装置
CN100356318C (zh) 用于指令对准的方法和设备
US8631173B2 (en) Semiconductor device
JP3490005B2 (ja) 命令制御装置及びその方法
KR19980024622A (ko) 프로그램 실행 방법 및 그 방법을 이용한 장치
US6032249A (en) Method and system for executing a serializing instruction while bypassing a floating point unit pipeline
CN1860683B (zh) 用于保存逻辑状态的方法和电路
US20050071830A1 (en) Method and system for processing a sequence of instructions

Legal Events

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

Granted publication date: 20080806

Termination date: 20140928

EXPY Termination of patent right or utility model