CN1275142C - 用于执行硬件环路的方法、装置和系统 - Google Patents

用于执行硬件环路的方法、装置和系统 Download PDF

Info

Publication number
CN1275142C
CN1275142C CNB018184286A CN01818428A CN1275142C CN 1275142 C CN1275142 C CN 1275142C CN B018184286 A CNB018184286 A CN B018184286A CN 01818428 A CN01818428 A CN 01818428A CN 1275142 C CN1275142 C CN 1275142C
Authority
CN
China
Prior art keywords
loop
instruction
group
hardware
subclass
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
CNB018184286A
Other languages
English (en)
Other versions
CN1503941A (zh
Inventor
R·P·辛格
C·P·罗斯
G·A·奥弗坎普
Original Assignee
Analog Devices Inc
Intel 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 Analog Devices Inc, Intel Corp filed Critical Analog Devices Inc
Publication of CN1503941A publication Critical patent/CN1503941A/zh
Application granted granted Critical
Publication of CN1275142C publication Critical patent/CN1275142C/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 or look ahead
    • 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 or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Power Sources (AREA)

Abstract

在一种实施例中,一种可编程序的处理机适于包含增加信息处理速度、而不致使功耗显著增加的环路硬件。在第一次通过环路期间,第一子集系列指令可输入到环路硬件。然后,在随后通过环路期间,第一子集可从环路硬件发出,而第二子集从存贮器件检索。以这种方式,在第一子集发出后,第二子集可以发出而没有附加补偿。

Description

用于执行硬件环路的方法、装置和系统
技术领域
本发明涉及在可编程序处理机中构成的硬件环路。
背景技术
在设计可编程处理机(例如数字信号处理(DSP)系统)时,两种竞争设计的目标是信息处理的速度和功耗。通常的处理机包括各种各样的硬件,其设计用来提高执行软件指令的速度。然而,其它的硬件一般增加处理机的功耗。
一种提高可编程序处理机速度的技术是“硬件环路”,它是为加速环路结构内执行软件指令而设计的专用硬件。硬件环路可减少用于执行软件环路同步脉冲周期数,在局部寄存器中贮藏指令,从而减少从存贮器中取出同样指令或指令贮藏多次的需要。
硬件环路提出了几项挑战,这些挑战包括避免损失,例如装配损失或支线损失。装配损失是与安装硬件环路相联系的性能的衰减(通常增加处理时间)。同样,支线损失是与支线相联系的性能的衰减(同样,通常增加了处理时间)。
发明内容
根据本发明的第一方面,提供一种用于处理硬件内环路的方法,该方法包括:将第一子集系列的指令装载到环路硬件内,作为通过环路的第一通路的一部分,其中,所述环路是包含第一子集和第二子集的指令序列;从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路;以及作为通过所述环路的后续通路的一部分,在第一子集发出时,从存贮器件检索所述第二子集系列的指令。
根据本发明的第二方面,提供一种用于执行硬件环路的装置,该装置包括:控制单元,它包括:指令取出单元;以及与所述指令取出单元偶合的环路硬件,和与所述指令取出单元及所述环路硬件偶合的译码器,其中,所述控制单元用来将第一子集指令装载到所述环路硬件内,作为通过环路的第一通路的一部分,其中,所述环路是包含所述第一子集和第二子集的指令序列;从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路的一部分;并且作为通过所述环路的后续通路的一部分,在发出所述第一子集时,从存贮器件中检索出所述第二子集系列指令。
根据本发明的第三方面,提供一种用于执行硬件环路的系统,它包括:SRAM存贮器件;环路硬件;和与所述存贮器件偶合的处理机,其中,所述处理机包括一控制单元,用来:将第一子集系列指令装载到所述环路硬件内,作为通过环路的第一通路,其中,所述环路是包含所述第一子集和第二子集的指令序列;从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路的一部分;以及作为通过所述环路的后续通路的一部分,在发出第一集时,从存贮器件中检索出所述第二子集系列指令。
根据本发明的第四方面,提供一种用于处理硬件内环路的方法,它包括:将第一子集系列的指令装载到一组缓存器内,作为通过环路的第一通路的一部分;从一组缓存器发出第一子集,作为通过所述环路的后续通路的一部分,其中,所述环路是包含所述第一子集和第二子集的指令序列;作为通过所述环路的后续通路的一部分,在发出第一子集时,从存贮器件检索出第二子集系列的指令;以及在已经发出第一子集后,发出第二子集,作为通过所述环路的后续通路的一部分。
根据本发明的第五方面,提供一种用于处理硬件内环路的方法,它包括:在第一次通过环路期间,将代表某一环路的一系列指令中的开头n个指令装载到环路硬件内,其中,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,而所述环路硬件用来缓冲至少部分所述指令序列;从所述环路硬件发出开头n个指令中的至少一个;以及在以后通过环路期间,在发出开头n个指令的同时,检索第(n+1)条指令。
根据本发明的第六方面,提供一种用于执行硬件环路的装置,它包括:控制单元,用来在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装载到环路硬件内,其中,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述控制单元用来装载至少部分指令序列,且所述控制单元用来在以后通过环路期间,在发出开头n条指令的同时,检索第(n+1)条指令,所述控制单元包括:指令取出单元;以及与所述取出单元相连的环路硬件;以及与所述控制单元相连的译码器。
根据本发明的第七方面,提供一种用于执行硬件环路的系统,它包括:SRAM存贮器件;环路硬件;以及与所述存贮器件偶合的处理机,其中,所述处理机包括一个控制单元,用来:在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装置到所述环路硬件中,这里,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述控制单元用来装载至少部分所述指令序列,且所述控制单元用来在以后通过所述环路期间,在发出开头n条指令的同时,检索第(n+1)条指令。
根据本发明的第八方面,提供一种用于处理硬件内环路的方法,它包括:在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装载到所述环路硬件内,这里,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述环路硬件用来缓冲至少部分所述指令序列,且所述所述控制单元用来在以后通过所述环路期间,在发出开头n条指令的同时,检索第(n+1)条指令;在第一次通过环路期间,将第(n+1)条指令的地址装载到指令地址寄存器内;在存贮器件中排列接下来的(m)条指令,这里,m为正整数;在以后通过环路期间,从所述环路硬件发出开头n条指令;在以后通过环路期间,在发出开头n条指令的同时,使用在指令地址寄存器中装载的地址,检索第(n+1)条指令;发出第(n+1)条指令;和在发出第(n+1)条指令的同时,检索第(n+2)条指令。
根据本发明的第九方面,提供一种方法,它包括:将一组指令装载到第一组环路缓存器内;将至少某些组指令从第一组环路缓存器装载到第二组环路缓存器内。
根据本发明的第十方面,提供一种用于执行硬件环路的装置,它包括:控制单元,它包括:指令取出单元;并联偶合且连接到所述指令取出单元的第一组环路缓存器;以及并联偶合且连接到所述指令取出单元和第一组环路缓存器的第二组环路缓存器,其中,所述第二组环路缓存器用来从所述第一组环路缓存器接收指令;以及连接到所述指令取出单元和第一及第二组环路缓存器的译码器。
根据本发明的第十一方面,提供一种用于执行硬件环路的系统,它包括:SRAM存贮器件;第一组环路缓存器;第二组环路缓存器,与所述第一组环路缓冲器耦合并用来从所述第一组缓存器接收指令;以及与存贮器件偶合的处理机。
根据本发明的第十二方面,提供一种用于处理硬件内环路的方法,它包括:将一组指令按执行顺序装载到所述环路硬件内;以及在以后通过所述环路期间,将下一个指令的地址存贮入地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来汲取部分所述指令序列。
根据本发明的第十三方面,提供一种用于执行硬件环路的装置,它包括:控制单元,用来将一组指令按执行顺序装载到所述环路硬件内,并将下一条指令的地址贮存在地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来在以后通过所述环路期间汲取部分所述指令序列,所述控制单元包括:指令取出单元;与所述取出单元相连接的所述地址寄存器;以及与所述取出单元相连接的环路硬件;以及与所述指令取出单元和环路硬件相连接的译码器。
根据本发明的第十四方面,提供一种用于执行硬件环路的系统,它包括:SRAM存贮器件;环路硬件;地址寄存器;和与所述存贮器偶合的处理机,其中,所述处理机包括控制单元,用来:将一组指令按执行顺序装载到环路硬件内;以及将下一个指令的地址贮存入地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来在以后通过所述环路期间汲取部分所述指令序列。
根据本发明的第十五方面,提供一种用于执行硬件环路的装置,它包括:控制单元,其中,所述控制单元用来将某一单指令循环中的某一单指令保持在至少一个单指令寄存器中,用于执行所述单指令循环,所述控制单元包括:环路硬件,包括至少一组缓存器和所述至少一个单指令寄存器,以及与所述环路硬件偶合的译码器。
附图说明
图1是按照本发明一个实施例的管线可编程序处理机实例的方块图。
图2是表示依据本发明一个实施例的可编程序处理机的执行管线实例的方块图。
图3是依据本发明一个实施例可装载的早期寄存器的典型定时的流程图。
图4是依据本发明一个实施例的用来确定环路装配指令如何用来测定早期寄存器值的流程图。
图5是一个硬件环路单元一个实施例的电路方块图。
图6是依据本发明包括调节早期寄存器的操作模式的流程图。
图7是依据本发明一个实施例更新结构寄存器值的方法的流程图。
图8是依据本发明的实施例更新结构计数寄存器值的另一种方法的流程图。
图9是依据本发明一个实施例用早期寄存器实现的定时优点的流程图。
图10是依据本发明一个实施例调整早期计数值有效方法的流程图。
图11是依据本发明一个实施例电路中计数器的方块图。
图12是依据本发明一个实施例的混合操作模式的流程图。
图13是依据本发明一个实施例仅在开头n-1个执行阶段中具有计数器的混合电路的方块图。
图14是依据本发明一个实施例硬件环路单元的方块图。
图15是依据本发明一个实施例一种情况的图。
图16是依据本发明一个实施例一种情况的图。
图17是依据本发明一个实施例一种情况另一流程图。
图18是依据本发明一个实施例另一种情况的图。
图19是描述其它情况的流程图。
图20是依据本发明一种实施例两种情况的流程图。
图21是依据本发明一个实施例检测零偏移环路操作模式的流程图。
图22是依据本发明一个实施例检测和处理单指令零偏移环路的操作模式的流程图。
图23A~23C是依据本发明一个实施例相互连接的硬件环路单元数的方框图。
图24是按照本发明一个实施例的节电电路的方块图。
具体实施方式
图1是方块图,它示出可编程序的处理机2,其配置能支撑高效的硬件环路而不致使功耗有明显的增加。
为了支撑硬件环路,通过设置环路的输入和输出条件,处理机2可支撑环路设置环路。输入和输出条件被环路条件所确定:顶、底和计数。顶条件定义为环路的第一指令(或顶),底条件定义为环路的最后指令(或底)。计数条件定义为环路的迭代次数。
硬件环路的输入可在“第一顶匹配”处发生。当程序计数器(PC)指向环路的顶指令时,顶匹配可发生。硬件环路的输出可以最后的底匹配发生,当PC指向环路的底指令时,底匹配可发生。
在第一顶匹配预置计数,在每一个底匹配减缩计数,当它遇到最后的底匹配时,硬件可以记录下来。以这种方式,环路条件的顶、底和计数可以规定硬件环路的输入和输出条件。
处理机2包括一个执行管线4和控制单元6。控制单元6可控制指令和(或)在同步脉冲周期内通过管线4的数据的流程。例如,在处理指令期间,控制单元6可直接使管线的各组成部分把指令解码,并正确实现相应的操作内容,例如,把写入结果返回到存贮器中。
指令可以输入到管线4的第一级,并在随后级进行处理。一个级处理可以与其它级同时发生。在系统循环期间,数据可以在管线4的级之间通过。指令的结果可迅速连续地出现在管线4的末端。
控制单元6可包括下述硬件环路单元8,它可简化快速硬件环路,而不致使处理机2的功耗有明显的增加。
图2表示3管线实例的方块图。管线10具有多重级,它可简化单个同步脉冲周期内多重指令的实施。在管线10中,指令可进入第一个同步脉冲周期内的指令取(IF)级12,因而在随后的同步脉冲周期内,指令可连续沿管线而下。在上述指令输出后,另一个指令可进入IF级12。因此在随后的同步脉冲周期内,典型的另一个指令进入IF级12,从而在随后的同步脉冲周期内,连续沿管线而下。同样地,在随后的同步脉冲周期内,附加的指令分别进入IF级12。管线中的许多级可确定管线能同时操作的指令数。
管线的不同级操作如下:在IF级12,通过取出单元13可取出指令,并可在DEC级14从指令寄存器15解码。在AC级18期间,地址数据发生器19可计算用来完成操作的任一存贮器号码。
在执行级(EX1~EXn)22和28期间,执行单元23和29可完成特殊操作,例如添加或增加二个号码。执行单元可含有完成操作的特种硬件,如包括一个或多个算术逻辑单元(ALU),浮点单元(FPU)和筒形移相器虽然本发明范围在这方面没有加以限制。各种数据可应用到执行单元,例如通过地址数据发生器提供地址,从存贮器中检索数据或从数据寄存器中检索数据。在写入后级(WB)30,其结果可写入到管线外的存贮器单元或数据寄存器中,或者写入到管线中的数据寄存器,例如结构寄存器32。管线10的级可包括存贮数据的一个或多个存贮电路,例如触发电路。
如上所述,处理机2可支撑环路安装的指令。把硬件环路的界限(例如顶和底)写入到管线中的结构寄存器32中,该环路安装的指令就可预置硬件环路。该环路安装的指令也可预置结构寄存器32的读数,这情况表明环路已经完成。另外,环路安装的指令可确定偏移,它表明,在环路顶达到前,指令数遵循环路安装的指令。在硬件环路预置后,硬件环路可在管线10中运行。直到环路的输出条件满足(例如底匹配计数等于零)。
一旦指令委托,结构寄存器32通常被装载,例如WB级30的最后结果。因而当环路安装的指令进入管线10中时,贮存在结构寄存器32中的输入和输出条件不可修改指令,直到若干同步脉冲周期通过。因为输入和输出条件不可修改指令,直到若干同步脉冲周期通过调节硬件环路就可能存在限制。例如在环路安装的指令委托前,如果环路中的第一指令进入管线10中,则结构寄存器不能通过调节来识别环路部分的指令。况且,当管线的深度增加时,这个问题可随之增加。
在一种实施例中,通过维护管线中的一组早期寄存器34、35和36,则处理机2可克服这些限制。如图2所示,早期寄存器E34和E35可存在于解码阶段,而E36可存在于AC阶段。
实施一组早期寄存器34、35和36,通过降低或避免环路引起恶化,可使处理机2提供高处理速度。如上所述,在环路安装的指令进行管线的时间和结构寄存器被写入的时间之间,若干同步脉冲周期可以通过。然而,在环路安装的指令写入到结构寄存器之前,早期寄存器可长时间输入。基于这个原因,实施的早期寄存器可以缩减安装硬件环路所需的时间。
早期寄存器是可推测的寄存器(speculative register),它是用于预测或推测结构寄存器数值,与结构寄存器不同,推测寄存器不能通过系统指令的调节得到保证。因而,程序编码不能用来存取推测寄存器。基于这个原因,程序装置不能改动推测寄存器内外的数据,同样道理,对结构寄存器也是如此。
输入早期寄存器可用几种不同的方法。例如,由于实施有规则的指令寄存器改向结构寄存器。其结果,早期寄存器可简单地输入。换言之,系统可指令结构寄存器输入到某些其它寄存器一定量。结果,早期寄存器可修改指令。然而,使寄存器输入的另一种方法是通过存贮器“上托”(pop),换言之,系统可以存贮器取出数据对结构寄存器以该数据输入,则使早期寄存器修改指令。
然而,规则寄存器“改向”或“上托”的问题是,它们能引起环路安装的恶化(penalty)。这些恶化可能发生,因为系统可能使管线失速,直到“改向”或“上托”数据被有效写入。为避免这些恶化,在结构寄存器得到写入前,环路安装指令可用来对早期寄存器输入。
下面的实例描述,为调用典型环路安装机指令而用的语法。
LSETUP(PC相对于顶,PC相对于底)计数器=X
相对于顶PC的规定,从电流指令到环路起始的距离(起始偏离),相对于底PC的规定,从电流指令到环路末端的距离(未端偏离)。另外,可变计数器规定,计数寄存器和环路计数表明环路内的相互作用数。
图3是依据本发明一个实施例的早期寄存器当得到输入时其时序的流程图。如上所述,环路安装指令可以含有计数值、顶值和底值的形式的环路条件。总起来说,这三种数值可以确定硬件环路的输入和输出条件。
该计数值可望表示构成环路的相互作用数。一旦环路安装的指令输入AC(38),计数值就写入到E寄存器(39)中,原先写入到E寄存器,可以从包含在不同管线中的数据寄存器通过寄存器移向达到。在一种操作模式中,E寄存器可以以DAG管线中的PREG寄存器吕含有的数据写入(见图6)。
顶值和底值表明,其指令是环路的顶和指令是环路的底。然而,在环路的安装指令中的顶值和底值,可以是相关的程序计数器(PC)。因而,在AC级的计算(40)可用于获得顶值和底值,它们将分别写入到E34和E35的寄存器中。环路的安装指令进入EX1(41),顶值一底值可写入到E34和E35的寄存器中。环路的安装指令进入EX1(41),顶值和底值可写入到E34和E35寄存器(42)中。
E寄存器34可以输入到环路的第一指令点(或环路的顶),E35寄存器可以输入到环路的最后指令点(或环路的底)。E寄存器36的输入,确定了电路通过环路的时间。在一种实施例中,E36计数向F,当电路通过环路时缩减。
图4是表示硬件环路单元8的一种操作模式的流程图,这时接收到环路的安装指令并由管线10处理,按照信息按排格式,环路的安装指令可以确定若干安装变数,包括起始偏移(S-偏移)和终端偏移(E-偏移)。S-偏移可以确定指令流中从环路的安装指令到环路的第一指令之间的距离,同样地,E-偏移可以确定指令流中从环路的安装指令到环路的最后指令之间的距离。
例如,如果环路的第一指令是瞬间追随环路安装指令的指令,则S-偏移将是环路安装指令的宽度。在指令流中,如果环路安装指令和环路中的第一指令之间有一个指令,则S-偏移将是环路安装指令和一个指令的宽度。同样地,如果环路安装指令和第一指令之间有两个指令,则S偏移将是环路安装指令和两个指令的宽度。
如图4所示,S-偏移和E-偏移通过环路安装指令(44)可典型的确定。然而,环路的安装指令确定相对于程序计数器(PC)的偏移。因而,也必须测定PC值(45)。这样,PC值和S-偏移可用来计算E寄存器数据(46)。况且,PC值和E-偏移可用来计算E寄存器数据(47)。一经算出,该早期寄存器数据可写入到早期寄存器(48)中。
比较图4和图2,表明了当写入E顶和E底寄存器时的典型时限。在DEC级14,步骤(44)和(45)可能发生。计算步骤(46)和(47)可发生在AC级18中。因而,写入步骤(48)可发生在EX1阶段22,虽然本发明范围在这方面没有加以限制。
一经装载,早期寄存器可用来建立硬件环路。图5是方块图。它表明了硬件环路单元8与指令取出(IF)单元50和管线10的译码单元52相连接的一种实施例。在一种实施例中,早期寄存器可用来检测指令流57中的环路。因此,环路硬件54以一个或多个环路指令输入。一俟输入,环路指令可从环路硬件中反复产生。这样,如果早期寄存器检测指令环路,则一个或多个环路指令的取出,只有通过IF单元50,并从硬件环路单元8中重复产生。
实施早期寄存器可引起若干需求。例如,由于用早期寄存器引起的一种要求上升了。因为早期寄存器数据需要加以调整。如果管线必须服务于一件大事,则管线的电流操作需要终止。如果这种终止发生在早期寄存器写入后,但在它相应的结构寄存器写入前,则早期寄存器数据需要加以调整。换言之,因为早期寄存器写入早,在环路委托前,管线的终止就需要调整早期寄存器数据。
图6是流程图。它表明包括调整早期寄存器的一种操作模式。图6特别表明了包括调整E、E和E等寄存器的时限。
如图6所示,早期寄存器可写入(76),在图6的实施例中,早期寄存器具体是E、E和E寄存器(如图2所示)。如果管线(80)的终止发生在结构寄存器写入前(82),则无故障指令可从管线(83)中消耗,通过写入包含在它们相应的结构对应装载(84)的数据,早期寄存器可以调节。当处理背对背硬件环路时,图6所示的操作模式特别有用。例如,如果第二个环路在它委托前终止,则第一环路仍旧需要执行其管线中保持的指令。图6的调整技术通过调整相应早期寄存器值,提供了处理这种转变的一种方法。
图7示出用早期计数(E)数据,修改结构寄存器指令的一种方法。数据可以任一方式,写入到上述E寄存器(90)中。然后E寄存器数据发送到管线(92),使之能写入到WB级的结构计数寄存器(93)中。这样,在环路(94)每一次随后的重复中,E计寄存器数据可缩减(96),并重新发送到管线(92)中。该过程可延续到环路完成它最后的重复为止(98)。
图8表示了更新结构计数寄存器指令的另一种方法。在每次环路重复后,图8所示的操作模式一旦发送E数据,则宁可把E数据发送到管线。这样,在随后的环路重复中,简单而有效的缩减存贮位数可以发送,以调整结构计数寄存器。
图8中,数据可以任一方式写入到E寄存器(90)。然后,E寄存器数据可发送到管线(92),使它在WB级能写入到结构计数寄存器(93)中。在随后的环路(94)重复中,简单而有效的缩减存贮位数可发送(102)到结构计数寄存器(104)。该过程可继续到环路完成它最后的重复(98)为止。
图9是流程图。它表示用早期寄存器实现的定时优点。如图9所示,环路的输入/输出条件可输入一组早期寄存器(120)中。在环路安装的指令委托(124)前,这些早期输入/输出条件就可检测(122)。
调整E寄存器,带来附加的要求。E寄存器的调整可以任一时间进行。管线的终止先于环路完成之前。这可能因为有效的指令仍然在管线中,一旦它们委托,这些有效指令即可调节结构计数寄存器值。
终止后校正E寄存器数据的一种方法是,允许指令在终止前委托,然后以其结构对应装载写入E寄存器。然而,如果支线损耗小于管线所耗费的时间,这可能带来附加的损失。
图10表明调整早期计数值的一种有效方法。如图所示,在环路安装的指令进入AC级(180)后,早期计数寄存器可以写入(182)。基于这点,E数据可以送到管线(184)。如果发生终止(185),无故障指令会被消耗(186),且E寄存器可以其结构对应装载(187)的数据写入。
在每一个底匹配(190),有效缩减存贮位数可发送到管线(192)。在每一个管线级194),当引起有效存贮位数发送的指令存在时,则有效缩减的存贮位数可从管级(196)存在的计数器中消除。换言之,当有效存贮位数发送(例192),计数器可以增加;当引起有效缩减存贮位数发送的指令存在于管级时,则个别的计数器可以减少(例196)。
如果终止发生在管线(198)中,则在终止级通过许多有效缩减计数器中的存贮位数,使早期计数寄存器得到调整(188)。这种调整值也意味着管线中存在于每个管级相应的计数器,它此发生终止的级来得晚。图10的步骤可重复进行,直到所有的环路指令存在于管线(200)中。
在每次底匹配(例如,每次通过环路)时,E寄存器可以缩减。然而,在每次底匹配后,宁愿传播整个E值到管线,只有简单有效的缩减存贮位数发送到管线。以这种方式,硬件的衰减可在DSP系统中实现。一组计数器可以监控有效地缩减存贮位数及引起那些位数发送的相关指令。这样,一组计数器使早期计数寄存器和它的结构不对应装载之间的差异保持运行记录。
图11是方块图。它表示电路中的计数器。如图所示,计数器可以保持在DEC后管线的每个级(210,211,212和213)。因而,简单有效的缩减位数可以传播到管线,以解释早期计数寄存器和它的结构对应装载之间的差异。计数器可以连接到多路传输的输入端220。如果,任一计数器用于调整,多路传输220可决定早期计数寄存器36。
在其它的实施例中,在某些级终止不能发生。或者,当某些指令存在于特定的级时,可加以限制。在这种实施例中,于终止受到限制的级,如不执行计数器,则电路硬件可以简化。
计数器210,211,212和213的宽度可以随需要而变。例如,计数器210可以是1比特计数器,和212可以是2比特计数器。计数器212和213最小的深度取决于管线中执行级数n。计数器210可以是1比特计数器,因为它常具有的值是1或零。例如,如果底匹配指令通常在AC,则它具有的值为1。当指令离开AC,则计数器返回到零。
计数器211和随后的计数器(例如在EX2阶段)可以是2比特计数器,虽然本发明范围在这方面没有加以限制。这是因为计数器211(例Ex1计数器)可具有最大值2,EX2计数器可以具有最大值3。EX3计数器具有最大值4,因此它需要3比特。同样,随后的3个计数器(例EX4~EX6)可以是3比特计数器,能分别表示5~7之间的值。
通过考虑计数器需要持有的最大值,可决定每一级计数器的宽度。这种场合可相应的环路是一简单的指令环路。因此,计数器的深度可简单相应于计数器和AC间的级数。然而,其大小也取决于在个别级是否发生终止,由此某些级可能不需要计数器。
操作的另一种模式是调整早期计数寄存器的混合方式。如果与管线消耗相联系的损失大于支线损失,则存在于管线所选择阶段的计数器可用于调整早期计数寄存器。然而,如果消耗损失小于或等于支线损失,则管线中的指令允许委托,使早期计数寄存器可依据其结构对应装载作调整。系统操作的选择取决于管线中终止的发生处。在一种场合下,如查终止发生在EX3级或WB级,则具有执行级3的管线可被消耗;但管线没有消耗,如果终止发生在EX3级前,则早期计数器可以调整。
图12是表示操作的混合模式的流程图。如图所示,如果终止(230)发生在第n级前,则计数器可调整早期计数值(228)。然而,如果终止发生在第n级后,则管线中的指令容许流动,通过管线并委托(232)。因而早期寄存器可以用其结构对应装载(233)的数据来修改指令。变数n可以确定,容许指令通过管线流动的点,管线所需的相当量的时间小于或等于支线损失。
图13表示在第一个n-1执行级具有计数器的混合电路。该电路容许管线执行它随后终止的指令,如果指信已进入第n个级阶段。然而,如果指令没有进入第n个执行级,则电路可以调整随后终止的早期计数寄存器。又,变数n可以确定容话指令通过管线流动的点,管线所需的相当量的时间小于或等于支线损失。在其他场合下,变数n可存在于早得多的管线中(例如支线损失较大处)。
另外的环路硬件,例如环路寄存器和环路缓存器,可使快速硬件环路简化。如本文所述,环路硬件可提供若干优点。在某些实施例中,环路硬件可能潜伏支线损失。另外,对于环路的每次重复来说,离开接近存贮器件(例如缓存器或SRAM)的需要,环路硬件便可节省能耗。而且,环路硬件可离开调准的限制,可按其他方式存在于可编程序的存贮器中。
再参考图1所示的可编程序的处理机2,它具有执行管线4和控制单元6。控制单元可包括硬件环路单元8。
硬件环路单元8包括一组或多组串联的环路缓存器。另外,硬件环路单元可包括一个或多个单指令环路寄存器。环路缓存器和/或环路寄存器的聚焦,总起来说是环路硬件。这种聚焦可以简化快速硬件环路。
再参考图5所示方框图,它表示出硬件环路单元8与指令取出单元50和管线10的译码单元52相连接的实施例。指令检出单元50可提供若干输入端之一到硬件环路单元8。硬件环路单元8包括与环路硬件54连接的多路复用器56。环路硬件54可含有一组或多组环路缓存器和/或一个或多个环路寄存器。而且,系列环路缓存器可包括串联的确定数量的缓存器。每一系列环路缓存器可具有一个相连的环路寄存器。
图14是表示硬件环路单元8具体设备的方块图。又,硬件环路单元8与指令检出单元50和译码器(图中未出)连接。
硬件环路单元8包括与环路硬件相连接的多路复用器260。环路硬件包括串联一起的一组环路缓存器271、272、273和274。这些缓存器可提供输入端到另一个多路复用器。多路复用器260和280,依次可提供输入端到多路复用器290。多路复用器290的输出端,与环路寄存器296相连,后者可连接回多路复用器260的输入端。硬件环路单元8的输出端提供输入端到译码器。
多路复用器260具有多个输入端,这些输入端包括一个从寄存器来的输入端(例如仿真指令寄存器)和一个从检出单元50来的输入端。另外,多路复用器260具有一个从环路指令寄存器来的输入端和从一个或多个其他硬件环路单元来的输入端。
图14实例表示了环路硬件,它包括四组密集的环路缓存器和单个指令寄存器。然而,任一数量的缓存器和/或指令寄存器能用于其它的实施例中。
在典型的操作模式中,环路缓冲存贮以两种不同的方案实施。在一种方案中,环路中的每一个指令适应环路缓存器。在另一种方案中,环路中的每一个指令不适应环路缓存器。每种方案将依次讨论。
图15图示了一种方案。如图所示,4组密集的环路缓存器可以装载3-指令环路(I2-I4)输入。这样,一个环路缓存器和E寄存器不能以任一数据输入。指令12~14可再三执行,直到环路的输出条件满足为止。如图所示,输出条件可检验每次由环路缓存器所产生14个指令。
图16是表示一种方案的流程图。如图所示,指令可以产生(300),指令可输入到一组环路缓存器(302),并且存贮器件可能出故障。存贮器出故障对DSP系统使能耗节省。指令输入到一组缓存器(302)后,指令可以随后由一组缓存器(306)产生。指令可以多次产生,直到环路的输出条件满足为止(308)。
图17是表示一种方案的另一个流程图。如图所示,指令可以产生(310),指令可输入到一组环路缓存器(314),存贮器件可以出故障(316),且环路计数可预置(312)。只要环路的输出条件不满足(318),则环路计数缩减(320),且指令可由一组环路缓存器产生(322)。存贮器件可能出故障,直到环路计数达到一确定值X为止(316)。况且,X可这样确定,以致当环路完成时于检出单元,在环路后的下一个指令可瞬间准备。以这种方式,可以避免环路输出损失。
在其他的实施例中,环路计数预置到零(312),再调整(320)增量,环路计数宁可如图17所示缩量。还有其他的主要设备根据图15~17变得明显。
图18是另一种方案图,如图所示,4组密集的环路缓存器可以用4个环路指令输入(12~15)。另外,E寄存器可以用下一环路指令的地址输入。E可以是存在于管线中的地址寄存器(参阅图2,37)。在随后的环路重复期间,指令12~15可执行,而指令16检出。在指令15完成后,指令16立刻作执行准备。在环路重复期间,可以核对输出条件。
图19是图18方案所示的流程图,如图所示,当首个子集指令发出时(332),首个子集指令可输入到一组缓存器(330)。其次当第二个子集指令发出时(336),第二个子集指令的起始地址可输入到寄存器(334)。在随后环路的重复期间(重复数数据输出条件(338)确定,首个子集指令可由一组缓存器(340)产生,而第二个子集被取出(342),然后第2个子集发出(344)。
依据图19的操作模式,可实现若干优点。例如,每次第一个子集由一组缓存器产生,如存贮器件没有启动,可节省能耗。另外,当第一个子集发出时,取出第二个子集可减少环路损失。在一个实施例中,环路缓存存贮器可具有至少相应于支线损失的深度。因而,与取出第二个子集有关的损失,它可潜伏在第一子集指令发出的后面。这可增加DSP系统的速度。然而,在另一个具体设备中,节能是更重要的设计特点(例如,在电池供能器件中实施的电路),较深的缓存器更有用。
第一子集指令可以是满足一组环路缓存存贮器的许多指令。第二个子集指令可以是下一个随后在缓存器中输入的环路中的指令。两选一,第二个子集可以是许多指令,它们在缓存器中输入。
图20是表示上述方案更为一般的流程图。如图所示,第一子集指令可输入到一组缓存器(350)并发出(352)。如果环路的所有指令满足环路缓存器(354),则存贮器件可能出故障(355),并且指令可以由一组缓存器(356)连续发出,直到输出条件满足为止(358)。
如果环路的所有指令不能满足环路缓存器(354),则第二个子集指令可能发出(360),且这些指令的起始地起可输入到寄存器(362)。在环路随后的重复中(由输出条件(364)所确定),第一子集指令可由一组缓存器(366)产生,而第二子集从存贮器(368)取出,因而第二子集可以发出(370)。
在图18方案中,由E表明的地址的需要可以构成,每次有底匹配。以这种方式,第一个子集指令可被发送,而取出第二个子集指令。
这时环路中的第一子集指令被发送,高速缓存器/存贮器可已被存取,校准的缓存器预先准备好第二子集指令。该校准的缓存器可持有多重指令(取决于每个指令的宽度)。如果第二子集包括许多指令,该许多指令可在准直的缓存器中排成行,其第二子集的第一指令是与E寄存器相关连的指令。
操作进一步包括需要跟随与E相关的下一个指令,而与E相关的指令被发送。例如,在一种操作模式中,与E相关的指令是64位指令。这样,64位指令被发送,下一个64位指令被取出(通过存贮器的校准确定)。通过再三重复,DSP系统能以快速而有效的方式发送指令。
实施硬件环路的现有技术的可编程序消息处理机系统,在操作模式上受到许多限制,然而,十分需要提供具很少程序限制的硬件环路。在一种实施例中,依据本发明系统,仅有一种程序限制。这简单的限制可以是,在环路底,系统不能有支线。
快速硬件环路可能有环路缓存器要求无效的情况,这些情况可能包括环路缓存器随有条件的支线增中而无效。因此,在一种操作模式中,如果环路中的第一n指令之一是有条件的支线,一组环路缓存器可能无效。变数n可确定一组环路缓存器的深度。
另一种环路缓存器可能需要无效的情况是,当接收到事件而环路缓存器输入时。另外,环路缓存器可能需要无效紧随的是自改进的C_SYNC模式。因此,其他的操作模式包括无效的环路缓存器,当这两种情况之一发生时。
零偏移环路引起附加的要求。这偏移与环路安装的指令及环路中第一或最后一个指令两者之间的距离有关。在现有技术的系统中,偏移必须简化硬件环路的安装或说明系统的程序例外性。然而,简化成零偏差环路,是非常有利的,因为它可减少处理时间。
即使在实施早期寄存器和环路缓存器的系统中,零偏移提出了要求。例如在上述系统中,根据早期寄存器写入(例如EX1)的时间,零偏移环路的第一指令可能已处于AC。因此,即使环路输出DEC开始,甚至在E和E写入前,电路能非常好的顶匹配。
已设计检测和处理零偏移环路的操作和电路结构的特定模式。在一种操作模式中,环路安装指令中的起始偏移(S-偏移)与检测零偏移的已知值相比。以这种方式,简化了零偏移环路的早期检测。在一个特定的实施例中,S-偏移与4相比,该4被看到是32毕特指令的4位。一旦检测,零偏移环路可以置位,甚至在早期寄存器写入之前。
图21是一流程图,它表示检测零偏移环路的操作模式。如图所示,可以检测环路安装指令(380)。因而S-偏移可以与一确定数(382)比较(该确定数相应于环路安装指令的宽度)。以这种方式,零偏移环路可以检测,甚至在早期寄存器写入前。如果检测零偏移环路(384),如上所述,则环路中下一个n指令可以发出,并输入到环路缓存器(386)。
图22是表示操作模式的流程图,它用于检测和处理单指令零偏移环路的特种场合。如图所示,环路安装指令可以译码(388)。如果检测为零偏移,(390),且起始偏移等于终端偏移(392),则单指令环路可立刻实现(394)。当S-偏移等于环路安装指令的宽度时,可以检测出零偏移。当s-偏移与e-偏移相同时,可以检测出单指令环路。
特定硬件可以简化装置,并尽可能快地完成单指令环路。再参阅图14,环路寄存器296可用于这特种场合。因此,以单指令输入环路硬件(例如环路寄存器296),步骤(394)可以实现,并重复发出硬件环路单元8的指令,直至单指令环路的输出条件满足为止。
单指令环路可以检测,在特种环路指令寄存器296中,持有译码指令即可实现(图14)。另外,存贮器件可能不存取,和凡事往上对节能可能不顺利。而且,因单指令环路可由环路指令寄存器296发出,故指令取出单元50可自由地取出下一个指令(例如从高速缓存器中)。因此,当单指令环路完成时,下一个指令可能已经在指令取出单元50中,导致零损失环路输出。
总之,零偏移硬件环路分为三种情况。在第一种情况中,零偏移单指令环路经过环路指令寄存器立刻发出译码。在第二种情况中,零偏移n-指令环路可立刻检测,并完全输入到n深环路组缓存器。第三种情况是,零偏移环路可立刻检测,且环路的第一n指令输入到n-深环路组缓存器,故下一个指令可能与E顶寄存器有关。
在一种实施例中,环路硬件如已描述的那样,可以管线来实施。这比在高速缓存器实施,要有利得多。
在一种操作模式中,环路指令可贮存在环路硬件中,以致于指令排列成指令边界。一旦在环路硬件中排列成指令边界,则当它们随后从环路硬件发出时,没有排列成行的指令可能是必需的。
为使指令排列到指令边界,一组指令可以按执行的顺序输入到环路硬件,并且下一个指令的地址可以贮存在地址寄存器中。另外,第二组指令可按执行的顺序,输入到存贮器件中,以执行顺序将指令输入到环路硬件,可包括将n个顺序的指令输入到n个缓存器,其中n为正整数。况且,这n个顺序的指令可以是任一顺序的指令,包括环路的开头的n个指令或环路的最后n个指令。
在其它的实施例中(如图23A~23C所示),可以构成许多硬件环路单元。许多硬件环路单元的任一输出端可以与一个或多个其他的硬件环路单元相应的输入端相连。以这种方式,第二个硬件环路单元可能通过第一个硬件环路单元的输出端来输入。再者,这还可节能,在此范围内,存贮器件不会起动、输入到第二个硬件环路单元。
在某些情况下,许多环路单元可用作套式环路(或重合环路)。一个内部的硬件环路单元可以持有一个或多个指令,排列成一个外部的硬件环路单元。而且,这内部的硬件环路单元,可从外部的硬件环路单元把排列的指令输入到内部的硬件环路单元的输入端。
在还有其他的实施例中,可实施独立的多个硬件环路单元。然而,如果2个或多个独立的硬件环路单元用在同样的DSP系统,则应用受到限制。例如,当两个环路具有同样的底指令时,环路中的一个可能被定作为外环路。在没有这种限制的情况下,电路可能遭到两种底匹配,并且不清楚哪一个是需要递减的。
然而,另一种操作模式包括硬件环路的能源管理。当硬件环路启动时,E寄存器可与PC相比,以说明每个顶匹配。同样,E寄存器可与PC相比,以说明每个底匹配。然而,当硬件环路截止时,比较电路中的任一开关纯粹是耗费能源。因而,当硬件环路截止时,它可能是有助于截止底匹配和顶匹配比较电路。当硬件环路截止时,通过选择到比较器的输入端,以截止比较器,则可保存能源。
图24是表示节能电路的典型的实施例。E寄存器400和E寄存器402分别提供一输入端到多路复用器404和406。多路复用器404和406的输出端可以是比较器408和410的输入端口。到比较器408和410的其他输入端可来自多路复用器412的输出端。多路复用器412的输入端可来自程序计数器414。并且环路截止信号416来自控制单元。多路复用器404、406和412的排列是这样的,以改当硬件环路截止时,多路复用器412的输出端不同于多路复用器404和406的输出端。这能保证当硬件环路截止时,在比较器408或410中没有开关发生。
在一种实施例中,同样的环路截止信号416可发送到多路复用器404、406和412。然而,一反转器(图中未示)在多路复用器412接收信号前可反转一比特。以这种方法,当环路截止信号发送到电路时,多路复用器412的输出端不同于多路复用器404和406。
图24也示出了用来增加E寄存器418的一个典型电路。当环路通过时,多路复用器420可缩减E寄存器。然而,如果必须调整,则调整信号(例如克老勃计数422)可相应地调整E。一旦环路完成它最后的重复,则比较器424就可如此明确地发送信号425。
图24也表示了底匹配和顶匹配如何检测。当比较器410检测时,程序计数器412和E寄存器具有相同值,而顶匹配信号428可以发送。当比较器408检测时,这程序计数器和E寄存器具有相同值,而底匹配信号430可以发送。
最后,图24也表示了E寄存器432在管线中的实施。如文中所述,E可以是一个地址寄存器,它持有下一个指令的地址,该指令跟随着输入到环路硬件(未图示)的许多指令。
上文中描述了本发明的各种实施例。例如,描述了实施处理机的许多硬件环路技术。处理机可以在各种系统中实施,包括通常用途的计算机系统、数字信息处理系统、laptop计算机、个人数字助理(PDA)和蜂窝状电话。由于这个原因,上述硬件环路的讨论可容易地用来增加信息处理速度而不致使功耗有明显的增加。在这种系统中,处理机可以与存贮器件偶合,例如闪烁(FIASH)存贮器件或静态随机存取存贮器(SRAM),它贮存一种操作系统和其他软件的应用。这些和其他具体设备均在随后的权利要求范围内。

Claims (92)

1.一种用于处理硬件内环路的方法,其特征在于,该方法包括:
将第一子集系列的指令装载到环路硬件内,作为通过环路的第一通路的一部分,其中,所述环路是包含第一子集和第二子集的指令序列;
从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路;以及
作为通过所述环路的后续通路的一部分,
在第一子集发出时,从存贮器件检索所述第二子集系列的指令。
2.如权利要求1所述的方法,其特征在于,该方法进一步包括在发出第一子集以后,发出第二子集。
3.如权利要求1所述的方法,其特征在于,该方法进一步包括从所述环路硬件发出第一子集,作为通过所述环路的每一后续通路的一部分;以及
在发出所述第一子集时,从所述存贮器件检索第二子集系列指令,作为通过所述环路的每一后续通路的一部分。
4.如权利要求1所述的方法,其特征在于,从存贮器检索第二子集系列的指令包括从缓存存贮器检索第二子集系列的指令。
5.如权利要求1所述的方法,其特征在于,从存贮器件检索第二子集系列指令包括从静态随机存取存贮器检索第二子集系列指令。
6.如权利要求1所述的方法,其特征在于,将第一子集系列的指令装载到环路硬件内,作为通过环路的第一通路的一部分,以及
从环路硬件发出所述第一子集作为通过所述环路的后续通路的一部分包括:
将第一子集系列的指令装载到一组环路缓冲存储器内,作为通过某一环路的第一通路的一部分,以及
从一组环路缓存器发出所述第一子集,作为通过所述环路的后续通路的一部分。
7.如权利要求1所述的方法,其特征在于,在发出所述第一子集时,从所述存贮器件检索第二子集系列的指令,作为通过所述环路的后续通路的一部分,包括下述步骤:
在发出第一子集时,从存贮器件中紧随所述第一子集,检索出一系列指令中的下一个指令。
8.如权利要求1所述的方法,其特征在于,它包括:在已经发出第一子集的指令前,完成第二子集的检索。
9.如权利要求1所述的方法,其特征在于,检索第二子集包括,检索出许多指令,而其中的第一指令在数量上是紧随第一子集的一系列指令中的下一个指令。
10.一种用于执行硬件环路的装置,其特征在于,该装置包括:
控制单元,它包括:
指令取出单元;以及
与所述指令取出单元偶合的环路硬件,和
与所述指令取出单元及所述环路硬件偶合的译码器,
其中,所述控制单元用来
将第一子集指令装载到所述环路硬件内,作为通过环路的第一通路的一部分,其中,所述环路是包含所述第一子集和第二子集的指令序列;
从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路的一部分;并且
作为通过所述环路的后续通路的一部分,
在发出所述第一子集时,从存贮器件中检索出所述第二子集系列指令。
11.如权利要求10所述的装置,其特征在于,所述环路硬件包括至少一组并联偶合的缓存器。
12.如权利要求12所述的装置,其特征在于,所述一组缓存器组环路缓存器。
13.如权利要求12所述的装置,其特征在于,该装置进一步包括一存贮器件,其中,所述指令取出单元与存贮器件相偶合。
14.如权利要求13所述的装置,其特征在于,所述存贮器件是高速缓存器。
15.如权利要求10所述的装置,其特征在于,所述控制单元还用来在已经发出第一子集后,发出第二子集。
16.如权利要求10所述的装置,其特征在于,所述控制单元还用来:
从所述环路硬件发出第一子集,作为通过所述环路的每一后续通路;以及
在发出所述第一子集时,从存贮器件中检索出所述第二子集系列指令,作为通过所述环路的每一后续通路。
17.一种用于执行硬件环路的系统,其特征在于,它包括:
SRAM存贮器件;
环路硬件;和
与所述存贮器件偶合的处理机,其中,所述处理机包括一控制单元,用来:
将第一子集系列指令装载到所述环路硬件内,作为通过环路的第一通路,其中,所述环路是包含所述第一子集和第二子集的指令序列;
从所述环路硬件发出所述第一子集,作为通过所述环路的后续通路的一部分;以及
作为通过所述环路的后续通路的一部分,
在发出第一集时,从存贮器件中检索出所述第二子集系列指令。
18.如权利要求17所述的系统,其特征在于,所述控制单元还用来在发出第一子集后,发出第二子集。
19.如权利要求17所述的系统,其特征在于,所述控制单元还用来:
从所述环路硬件发出所述第一子集,作为通过所述环路的每一后续通路;以及
在发出第一子集时,从所述存贮器件检索出第二子集系列的指令,作为通过所述环路的每一后续通路的一部分。
20.如权利要求17所述的系统,其特征在于,所述环路硬件包括至少一组缓存器。
21.如权利要求20所述的系统,其特征在于,所述一组缓存器是环路缓存器。
22.一种用于处理硬件内环路的方法,其特征在于,它包括:
将第一子集系列的指令装载到一组缓存器内,作为通过环路的第一通路的一部分;
从一组缓存器发出第一子集,作为通过所述环路的后续通路的一部分,其中,所述环路是包含所述第一子集和第二子集的指令序列;
作为通过所述环路的后续通路的一部分,在发出第一子集时,从存贮器件检索出第二子集系列的指令;以及
在已经发出第一子集后,发出第二子集,作为通过所述环路的后续通路的一部分。
23.如权利要求22所述的方法,其特征在于,从所述存贮器件中检索出第二子集系列指令包括从高速缓存器检索第二子集系列指令。
24.如权利要求22所述的方法,其特征在于,在发出第一子集时,从存贮器件检索出第二子集系列指令,作为通过所述环路的后续通路的一部分,包括:
在发出第一子集时,从存贮器件检索紧随第一子集后的指令系列中的下一个指令,作为通过所述环路的后续通路的一部分。
25.如权利要求22所述的方法,其特征在于,所述方法包括在已经发出第一子集的指令前,完成第二子集的检索。
26.如权利要求22所述的方法,其特征在于,检索第二子集包括检索许多指令,第一指令在数量上是紧随第一子集后的指令系列中的下一个指令。
27.一种用于处理硬件内环路的方法,其特征在于,它包括:
在第一次通过环路期间,将代表某一环路的一系列指令中的开头n个指令装载到环路硬件内,其中,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,而所述环路硬件用来缓冲至少部分所述指令序列;
从所述环路硬件发出开头n个指令中的至少一个;以及
在以后通过环路期间,在发出开头n个指令的同时,检索第(n+1)条指令。
28.如权利要求27所述的方法,其特征在于,它还包括在第一次通过环路期间,将第(n+1)指令的地址装载到指令地址寄存器内。
29.如权利要求28所述的方法,其特征在于,它进一步包括在以后通过环路期间,从环路硬件发出所述开头n个指令。
30.如权利要求29所述的方法,其特征在于,进一步包括在以后每次通过所述环路期间,从所述环路硬件发出指令。
31.如权利要求28所述的方法,其特征在于,进一步包括存贮器件中排列接下来的(m)条指令,其中,m为正整数。
32.如权利要求31所述的方法,其特征在于,进一步包括:
发出第(n+1)条指令;以及
在发出第(n+1)条指令的同时,检索第(n+2)条指令。
33.如权利要求32所述的方法,其特征在于,进一步包括:
发出第(n+2)条指令;以及
在发出第(n+2)条指令的同时,检索第(n+3)条指令。
34.如权利要求27所述的方法,其特征在于,进一步包括:
在从所述环路硬件发出至少一条指令时,是不访问存贮器件的。
35.一种用于执行硬件环路的装置,其特征在于,它包括:
控制单元,用来在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装载到环路硬件内,其中,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述控制单元用来装载至少部分指令序列,且所述控制单元用来在以后通过环路期间,在发出开头n条指令的同时,检索第(n+1)条指令,所述控制单元包括:
指令取出单元;以及
与所述取出单元相连的环路硬件;以及
与所述控制单元相连的译码器。
36.如权利要求35所述的装置,其特征在于,进一步包括与所述指令取出单元相连的存贮器件。
37.如权利要求36所述的装置,其特征在于,所述存贮器件是缓存器。
38.如权利要求35所述的装置,其特征在于,进一步包括指令地址寄存器,其中,所述控制单元在第一次通过环路期间,用来将第(n+1)条指令的地址装载到指令地址寄存器内。
39.如权利要求38所述的装置,其特征在于,所述控制单元用来在以后通过环路期间,从环路硬件发出开头的n条指令。
40.如权利要求39所述的装置,其特征在于,所述控制单元用来在以后每次通过环路期间,从环路硬件发出所述指令。
41.如权利要求36所述的装置,其特征在于,进一步包括一指令地址寄存器,其中,所述控制单元用来在第一次通过环路并使存贮器件中的接下来的(m)条指令排列期间,将第(n+1)条指令的地址装载到所述指令地址寄存器内,其中,m为正整数。
42.如权利要求41所述的装置,其特征在于,所述控制单元用来:
发出第(n+1)条指令;以及
在发出第(n+1)条指令的同时,检索第(n+2)条指令。
43.如权利要求42所述的装置,其特征在于,所述控制单元用来:
发出第(n+2)条指令;以及
在发出第(n+2)条指令的同时,检索第(n+3)条指令。
44.如权利要求36所述的装置,其特征在于,在从环路硬件发出指令时,所述是不访问所述存贮器件的。
45.如权利要求35所述的装置,其特征在于,所述环路硬件包括至少一组并联偶合的缓存器。
46.如权利要求45所述的装置,其特征在于,所述一组缓存器是环路缓存器。
47.一种用于执行硬件环路的系统,其特征在于,它包括:
SRAM存贮器件;
环路硬件;以及
与所述存贮器件偶合的处理机,其中,所述处理机包括一个控制单元,用来:
在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装置到所述环路硬件中,这里,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述控制单元用来装载至少部分所述指令序列,且所述控制单元用来在以后通过所述环路期间,在发出开头n条指令的同时,检索第(n+1)条指令。
48.如权利要求47所述的系统,其特征在于,所述环路硬件包括至少一组并联偶合的缓存器。
49.如权利要求47所述的系统,其特征在于,所述系统还包括指令地址寄存器,其中,所述控制单元用来在第一次通过环路期间,将第(n+1)条指令的地址装载到所述指令地址寄存器内。
50.如权利要求49所述的系统,其特征在于,所述控制单元用来在以后通过所述环路期间,从环路硬件发出开头n条指令。
51.如权利要求50所述的系统,其特征在于,所述控制单元用来在以后每次通过环路期间,从环路硬件发出所述开头n条指令。
52.如权利要求49所述的系统,其特征在于,所述控制单元用来在所述存贮器件中排列接下来的(m)条指令,这里,m为正整数。
53.如权利要求52所述的系统,其特征在于,所述控制单元用来:
发出第(n+1)条指令;和
在发出开头(n+1)条指令的同时,检索第(n+2)条指令。
54.如权利要求53所述的系统,其特征在于,所述控制单元用来:
发出第(n+2)条指令;和
在发出(n+2)条指令的同时,检索第(n+3)条指令。
55.如权利要求49所述的系统,其特征在于,所述系统用来在从环路硬件发出指令时,访问所述存贮器件。
56.一种用于处理硬件内环路的方法,其特征在于,它包括:
在第一次通过环路期间,将代表某一环路的一系列指令中的开头n条指令装载到所述环路硬件内,这里,所述环路由包括所述开头n个指令和至少一个附加指令的指令序列表示,n为正整数,所述环路硬件用来缓冲至少部分所述指令序列,且所述所述控制单元用来在以后通过所述环路期间,在发出开头n条指令的同时,检索第(n+1)条指令;
在第一次通过环路期间,将第(n+1)条指令的地址装载到指令地址寄存器内;
在存贮器件中排列接下来的(m)条指令,这里,m为正整数;
在以后通过环路期间,从所述环路硬件发出开头n条指令;
在以后通过环路期间,在发出开头n条指令的同时,使用在指令地址寄存器中装载的地址,检索第(n+1)条指令;
发出第(n+1)条指令;和
在发出第(n+1)条指令的同时,检索第(n+2)条指令。
57.如权利要求56所述的方法,其特征在于,它进一步包括:
发出第(n+2)条指令;和
在发出第(n+2)条指令的同时,检索第(n+3)条指令。
58.一种方法,其特征在于,它包括:
将一组指令装载到第一组环路缓存器内;
将至少某些组指令从第一组环路缓存器装载到第二组环路缓存器内。
59.如权利要求58所述的方法,其特征在于,将一组指令装载到第一组环路缓存器内包括将一组指令从存贮器件装载到第一组环路缓存器内。
60.如权利要求58所述的方法,其特征在于,装载到第一组环路缓冲器内的指令是第一环路的一部分,而且装载到第二组环路缓存器内的指令是第二环路的一部分。
61.如权利要求60所述的方法,其特征在于,第二环路的第一指令装载到第一组环路缓存器内。
62.如权利要求60所述的方法,其特征在于,第一环路的第一指令装载到第二组环路缓存器内。
63.一种用于执行硬件环路的装置,其特征在于,它包括:
控制单元,它包括:
指令取出单元;
并联偶合且连接到所述指令取出单元的第一组环路缓存器;以及
并联偶合且连接到所述指令取出单元和第一组环路缓存器的第二组环路缓存器,其中,所述第二组环路缓存器用来从所述第一组环路缓存器接收指令;以及
连接到所述指令取出单元和第一及第二组环路缓存器的译码器。
64.如权利要求63所述的装置,其特征在于,控制单元用来:
将一组指令装载到第一组环路缓存器内;以及
将至少某些组指令从第一组环路缓存器装载到第二组环路缓存器内。
65.如权利要求63所述的装置,其特征在于,它进一步包括与指令汲取单元相连接的存贮器件,其中,所述控制单元用来将一组指令从存贮器装载到第一组环路缓存器内。
66.如权利要求65所述的装置,其特征在于,所述存贮器件是高速缓存器。
67.如权利要求63所述的装置,其特征在于,它进一步包括并联偶合且连接到取出单元、第一组环路缓存器和第二组环路缓存器的第三组环路缓存器。
68.如权利要求67所述的装置,其特征在于,它还包含并联偶合且连接到取出单元、第一组环路缓存器、第二组环路缓存器和第三组环路缓存器的第四组环路缓存器。
69.一种用于执行硬件环路的系统,其特征在于,它包括:
SRAM存贮器件;
第一组环路缓存器;
第二组环路缓存器,与所述第一组环路缓冲器耦合并用来从所述第一组缓存器接收指令;以及
与存贮器件偶合的处理机。
70.如权利要求69所述的系统,其特征在于,所述处理机包括控制单元,用来:
将一组指令装载到第一组缓存器内;
将至少某些组指令从第一组环路缓存器装载到第二组环路缓存器内。
71.如权利要求69所述的系统,其特征在于,它进一步包括第三组缓存器。
72.如权利要求71所述的系统,其特征在于,它进一步包括第四组缓存器。
73.一种用于处理硬件内环路的方法,其特征在于,它包括:
将一组指令按执行顺序装载到所述环路硬件内;以及
在以后通过所述环路期间,将下一个指令的地址存贮入地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来汲取部分所述指令序列。
74.如权利要求73所述的方法,其特征在于,所述指令组是第一组指令,所述方法进一步包括:
将第二组指令按执行顺序装载到存贮器件内,其中,所述第二组指令是代表所述环路的所述指令序列的一部分。
75.如权利要求73所述的方法,其特征在于,将第二组指令按执行顺序装载到存贮器件内包括将第二组指令按执行顺序装载到高速缓存器内,其中,所述第二组指令是代表所述环路的所述指令序列的一部分。
76.如权利要求73所述的方法,其特征在于,将一组指令按执行顺序装载到所述环路硬件内包括将一组指令按执行顺序装载到一组缓存器内。
77.如权利要求76所述的方法,其特征在于,所述缓存器组包括并联偶合的n个缓存器,n为正整数,并且
其中,将一组指令按执行次序装载到所述环路硬件内包括将n个系列指令装载到n个缓存器内。
78.如权利要求73所述的方法,其特征在于,将n条系列指令装载到n个缓存器内包括将环路的开头n条指令装载到n个缓存器内。
79.如权利要求78所述的方法,其特征在于,将n条系列指令装载到n个缓存器内包括将环路中最后的n条指令装载到n个缓冲存储器内。
80.如权利要求73所述的方法,其特征在于,它进一步包括从所述环路硬件发出所述指令组。
81.一种用于执行硬件环路的装置,其特征在于,它包括:
控制单元,用来将一组指令按执行顺序装载到所述环路硬件内,并将下一条指令的地址贮存在地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来在以后通过所述环路期间汲取部分所述指令序列,所述控制单元包括:
指令取出单元;
与所述取出单元相连接的所述地址寄存器;以及
与所述取出单元相连接的环路硬件;以及
与所述指令取出单元和环路硬件相连接的译码器。
82.如权利要求81所述的装置,其特征在于,它还包含与所述控制单元相连接的存贮器件,
其中,所述指令组是第一组指令,并且所述控制单元用来将第二组指令按执行顺序装载到存贮器件内,其中,所述第二组指令是代表所述环路的所述指令序列的一部分。
83.如权利要求82所述的装置,其特征在于,所述环路硬件包括一组缓存器。
84.如权利要求83所述的装置,其特征在于,所述缓存器组包括n个并联偶合的缓存器,n为正整数,并且
其中,将一组指令按执行顺序装载到环路硬件内包括将n个系列指令装载到n个缓存器内。
85.一种用于执行硬件环路的系统,其特征在于,它包括:
SRAM存贮器件;
环路硬件;
地址寄存器;和
与所述存贮器偶合的处理机,其中,所述处理机包括控制单元,用来:
将一组指令按执行顺序装载到环路硬件内;以及
将下一个指令的地址贮存入地址寄存器内,其中,所述下一个指令是代表某一环路的指令序列中的下一个指令,而所述地址寄存器用来在以后通过所述环路期间汲取部分所述指令序列。
86.如权利要求85所述的系统,其特征在于,所述环路硬件包括至少一组环路缓存器。
87.如权利要求86所述的系统,其特征在于,所述缓存器组包括n个并联偶合的缓存器,n为正整数,并且
其中,所述控制单元用来将n个系列指令装载到n个缓存器内。
88.一种用于执行硬件环路的装置,其特征在于,它包括:
控制单元,其中,所述控制单元用来将某一单指令循环中的某一单指令保持在至少一个单指令寄存器中,用于执行所述单指令循环,所述控制单元包括:
环路硬件,包括至少一组缓存器和所述至少一个单指令寄存器,以及
与所述环路硬件偶合的译码器。
89.如权利要求88所述的装置,其特征在于,所述控制单元用来将所述缓存器组中至少一个缓存器的内容装载到所述单指令寄存器内。
90.如权利要求88所述的装置,其特征在于,它还包含与所述环路硬件连接的第一多路复用器,其中,所述控制单元用来通过第一多路复用器装载单指令环路寄存器。
91.如权利要求88所述的装置,其特征在于,它还包含与所述环路硬件连接的第一多路复用器和在环路硬件内包含的第二多路复用器,其中,所述第二多路复用器的输入端来自于缓存器组。
92.如权利要求91所述的装置,其特征在于,它进一步包括包含在所述环路硬件内的第三多数调制器,其中,所述第三多路复用器的输入端来自所述第一和第二多路复用器的输出端;并且所述第三多路复用器的输出端与所述单指令寄存器连接。
CNB018184286A 2000-11-02 2001-10-30 用于执行硬件环路的方法、装置和系统 Expired - Fee Related CN1275142C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/705,088 2000-11-02
US09/705,088 US6898693B1 (en) 2000-11-02 2000-11-02 Hardware loops

Publications (2)

Publication Number Publication Date
CN1503941A CN1503941A (zh) 2004-06-09
CN1275142C true CN1275142C (zh) 2006-09-13

Family

ID=24831986

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018184286A Expired - Fee Related CN1275142C (zh) 2000-11-02 2001-10-30 用于执行硬件环路的方法、装置和系统

Country Status (6)

Country Link
US (1) US6898693B1 (zh)
JP (1) JP3787329B2 (zh)
KR (1) KR100580851B1 (zh)
CN (1) CN1275142C (zh)
TW (1) TWI236623B (zh)
WO (1) WO2002037271A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1346279A1 (en) * 2000-12-07 2003-09-24 Koninklijke Philips Electronics N.V. Digital signal processing apparatus
US20050102659A1 (en) * 2003-11-06 2005-05-12 Singh Ravi P. Methods and apparatus for setting up hardware loops in a deeply pipelined processor
JP4086885B2 (ja) * 2004-11-25 2008-05-14 松下電器産業株式会社 命令供給装置
US7669042B2 (en) * 2005-02-17 2010-02-23 Samsung Electronics Co., Ltd. Pipeline controller for context-based operation reconfigurable instruction set processor
US7832257B2 (en) * 2007-10-05 2010-11-16 Halliburton Energy Services Inc. Determining fluid rheological properties
US8266414B2 (en) * 2008-08-19 2012-09-11 Freescale Semiconductor, Inc. Method for executing an instruction loop and a device having instruction loop execution capabilities
US9274794B2 (en) 2011-09-23 2016-03-01 Electronics And Telecommunications Research Institute Processor and instruction processing method in processor
KR101538425B1 (ko) * 2011-09-23 2015-07-22 한국전자통신연구원 프로세서 및 프로세서에서의 명령 처리방법
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9063974B2 (en) * 2012-10-02 2015-06-23 Oracle International Corporation Hardware for table scan acceleration
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3466613A (en) 1967-01-13 1969-09-09 Ibm Instruction buffering system
US3593306A (en) 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
JP2690921B2 (ja) 1987-12-25 1997-12-17 株式会社日立製作所 情報処理装置
JPH07160585A (ja) 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
US5524223A (en) 1994-01-31 1996-06-04 Motorola, Inc. Instruction accelerator for processing loop instructions with address generator using multiple stored increment values
JPH0991136A (ja) 1995-09-25 1997-04-04 Toshiba Corp 信号処理装置

Also Published As

Publication number Publication date
WO2002037271A2 (en) 2002-05-10
JP2004513427A (ja) 2004-04-30
KR100580851B1 (ko) 2006-05-17
TWI236623B (en) 2005-07-21
KR20030048094A (ko) 2003-06-18
WO2002037271A3 (en) 2003-05-22
US6898693B1 (en) 2005-05-24
JP3787329B2 (ja) 2006-06-21
CN1503941A (zh) 2004-06-09

Similar Documents

Publication Publication Date Title
CN1275142C (zh) 用于执行硬件环路的方法、装置和系统
CN1262944C (zh) 处理器结构
KR101685247B1 (ko) 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
CN1279442C (zh) 选择性存取不同指令缓冲阶层的装置及方法
CN1191524C (zh) 预取指令的执行方法和设备
US9519484B1 (en) Picoengine instruction that controls an intelligent packet data register file prefetch function
CN1655118A (zh) 处理器和编译器
CN1877532A (zh) 编译装置
CN1717654A (zh) 数据处理器的循环控制电路
CN1892636A (zh) 双模计算机处理器中索引式载入及储存操作的系统及方法
CN1142485C (zh) 流水线控制相关延迟消除方法
CN1016383B (zh) 基于操作数长度和对位的微码转移
WO2017030674A1 (en) Power efficient fetch adaptation
CN1105350C (zh) 能够减少转移故障的具有小尺寸电路的流水线处理器
CN1217261C (zh) 用于处理器流水线分段法及再装配的方法以及装置
CN1149472C (zh) 更名装置及处理器
CN1471667A (zh) 硬件环路
US8176297B2 (en) Adaptive fetch advance control for a low power processor
CN1257450C (zh) 节省资源的硬件环路
CN1473294A (zh) 硬件环路
CN1289212A (zh) 用于运动估计算法的分层可编程并行视频信号处理器结构
CN1716182A (zh) 地址创建器和算术电路
CN1650257A (zh) 互换地址寄存器所存内容的方法和设备
CN1144124C (zh) 程序执行方法及利用该方法的装置

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20090109

Address after: Massachusetts, USA

Patentee after: ANALOG DEVICES, Inc.

Address before: California, USA

Co-patentee before: ANALOG DEVICES, Inc.

Patentee before: INTEL Corp.

ASS Succession or assignment of patent right

Owner name: ANALOG DEVICES, INC.

Free format text: FORMER OWNER: INTEL CORP

Effective date: 20090109

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060913

Termination date: 20171030

CF01 Termination of patent right due to non-payment of annual fee