CN100416495C - 硬件环路 - Google Patents

硬件环路 Download PDF

Info

Publication number
CN100416495C
CN100416495C CNB018180892A CN01818089A CN100416495C CN 100416495 C CN100416495 C CN 100416495C CN B018180892 A CNB018180892 A CN B018180892A CN 01818089 A CN01818089 A CN 01818089A CN 100416495 C CN100416495 C CN 100416495C
Authority
CN
China
Prior art keywords
loop
instruction
register
hardware
zero offset
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
CNB018180892A
Other languages
English (en)
Other versions
CN1471667A (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 CN1471667A publication Critical patent/CN1471667A/zh
Application granted granted Critical
Publication of CN100416495C publication Critical patent/CN100416495C/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/32Address formation of the next instruction, e.g. by incrementing the instruction 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/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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • 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

Abstract

本发明的一个实施例设置了一个可编程序处理器,用以支持环路设置指令。可将所述环路设置指令解码,还可从此环路设置指令检测零偏移环路。随后,就可立刻将该指令串中的下一条指令作为环路中的第1指令发送出去。此环路设置指令还可用来检测单条指令环路。

Description

硬件环路
发明背景
本发明涉及可编程序处理器中所用的硬件环路(loops)。
在诸如数字信号处理(DSP)系统之类的可编程序处理器的设计中,有二个对立的设计指标:处理速度和消耗功率。传统的处理器包括用来提高软件指令执行速度的各种硬件。但是,这种附加的硬件通常会增大处理器的消耗功率。
用来提高可编程序处理器速度的一顶部项技术就是“硬件环路”,它可以是用来在环路结构内加快软件执行的硬件。硬件环路可以通过局域寄存器中的高速存储指令来减少执行软件所用的同步脉冲周期的个数,因此可使需要从存储装置或者高速指令存储器中读取同一指令的次数减少许多。
硬件环路引来了一些问题。这些问题包括要避免诸如设置(setup)损失或者转移损失之类的损失。设置损失是与设置硬件环路相关的功率损失(通常是处理时间的增加)。同样,转移损失是与转移分支相关的功能损失(通常也是处理时间的增加)。
发明内容
本发明提供一种方法,包括:
在流水线处理器中解码环路设置指令,所述环路设置指令定义一硬件环路的开始指令和结束指令;
在环路设置指令中检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
如果检测到零偏移环路,将接在环路设置指令后的下一条指令作为硬件环路中的第一指令。
本发明还提供一种装置,包括:
一控制单元,适于用来在一流水线处理器中从环路设置指令中检测零偏移环路,所述环路设置指令定义一硬件环路的开始指令和结束指令,在环路设置指令中检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
环路硬件,用于存储来自零偏移环路的指令;
其中所述零偏移环路在环路条件被写入到一组用于非零偏移环路的寄存器之前被检测。
本发明还提供一个系统,它包括:
SRAM存储装置;以及
与该存储装置相连的流水线处理器,所述流水线处理器适于:
将环路设置指令解码,所述环路设置指令定义一硬件环路的开始指令和结束指令;
从环路设置指令检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
如果检测到零偏移环路,发送环路设置指令后的下一条指令作为硬件环路中的第一指令;
其中所述流水线处理器包括控制单元和硬件环路,所述控制单元适于在硬件环路的环路条件被写入到一组用于非零偏移环路的寄存器之前检测零偏移环路。
本发明还提供一种方法,包括:
在流水线处理器中解码环路设置指令,所述环路设置指令定义一硬件环路的顶部和底部;
从环路设置指令检测到所述硬件环路的顶部和底部正指向一零偏移环路的同一指令;以及
在检测之后立即执行单一指令环路。
本发明还提供一种装置,包括:
控制单元,适于用来从环路设置指令检测到环路的顶部和底部正指向一零偏移环路的同一条指令,并之后立即执行一单条指令环路;以及
环路硬件,用于存储所述单条指令。
本发明还提供一种系统,包括:
一SRAM存储装置;以及
一与有存储装置相连的流水线处理器,该流水线处理器适于用来:
解码环路设置指令,所述环路设置指令定义一硬件环路的顶部和底部;
从环路设置指令检测到硬件环路的顶部和底部正指向一零偏移环路的同一指令;以及
在检测之后立即执行单条指令环路。
附图说明
图1是表示本发明一个实施例的流水线可编程序处理器的一个例子的方框图。
图2是表示本发明一个实施例的一个执行流水线例子的方框图。
图3是表示本发明一个实施例的可装入早(early)寄存器时的示例性时间变化过程的流程图。
图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)指向环路的顶部指令时。硬件环路的退出可以发生在最后“底部匹配”时。底部匹配可以发生在程序计数器指向环路的底部指令时。
通过将数值预置到最初顶部匹配并将数值减小到各个底部匹配,该硬件就可保持当它遇到了最后底部匹配时的轨迹。这样,环路的状态:顶部、底部和计算就可决定硬件环路的进入和退出状态。
处理器2可以包括执行流水线4和控制单元6。控制单元6可以在同一脉冲周期中控制通过流水线4的指令和/或数据资料的流程。例如,在处理一指令时,控制单元6可以指定流水线的各个组件来解码指令,并正确执行包括例如将结果写回到存储器中在内的相应的运作。
可将指令装入流水线4的第1级中并在随后的各级中进行处理。在系统的一个周期中数据资料可在流水线4中的多级间通过。指令的结果可以快速地呈现在流水线4的末端。
控制单元6可以包括下述可使硬件环路加速而又不过分增加处理器2的消耗功率的硬件环路单元8。
图2是表示示例流水线的方框图。流水线10具有有利于在单个同步脉冲周期中执行多项指令的多个级。在流水线10中,一条指令可以在最初同步脉冲周期中进入到指令读取(IF)级12。然后,在随后的同步脉冲周期中该指令可以继续沿着流水线往下走。在前一条指令执行之后,另一条指令就可进入IF级12。这样,通常另一条指令是在随后的一个同步脉冲周期中进入IF级12、且接着在随后的同步脉冲周期中往下走。同样,附加指令分别在随后的同步脉冲周期中进入IF级12。流水线中级的数目决定了该流水线可以同时提供服务的指令数目。
流水线的不同级可以如下运作。可以通过读取单元13在IF级12中读取指令,并在DEC级14中从指令寄存器15来进行解码。在AC级18中,数据地址发生器19可计算任何用于运作的存储地址。
在执行级(EX1-EXn)22和28中,执行单元23和29可以执行特殊的运作,例如将二个数字相加或相乘。执行单元可以包含用于运作的特殊硬件,这些运作可包括例如1个或多个算术逻辑单元(ALU)、浮动点单元(FPU)和桶形移位器,尽管本发明的范围并不只限于此方面内容。各种数据-例如数据地址发生器所产生的地址,从存储器检索到的数据或者从数据寄存器检索到的数据等都可用于执行单元。在写回级(WB)30,其结果可写入到存储器位置、或输出到流水线的数据寄存器、或诸如结构寄存器32之类的流水线中的数据寄存器中。流水线10的各级可以包括一个或多个诸如触发器之类的、用于储存数据资料的储存电路。
如上所述,处理器2可以支持环路设置指令。通过将硬件环路的边界(例如顶部和底部)写入流水线中的结构寄存器32,环路设置指令就可以预置硬件环路。环路设置指令也可将一个数值预置到结构寄存器32中,表明该环路要执行的次数。此外,该环路设置指令还可确定一个偏移值,表明在该环路到达顶部之前随从该环路设置指令的指令数目。在预置了硬件环路之后,该硬件环路就可在流水线10中运作,直到满足该环路的退出状态(例如数值等于零的底部匹配)时为止。
结构寄存器32通常是在例如WB级30结束时指令指定后装入。因此,储存在结构寄存器32中的进入和退出状态要从环路设置指令进入流水线10起经过几个同步脉冲周期之后才会被更新。因为进入和退出状态要经过几个同步脉冲周期之后才会被更新,所以还存在着设置硬件环路的限制条件。例如,如果在环路设置指令指定之前环路中的最初指令进入流水线10的话,结构寄存器不会被设置成可将该指令作为环路的一部分。而且,此问题会随着流水线深度的加大而加重。
在一个实施例中,通过将流水线中的一组早计寄存器34、35、36予以保持,处理器2可以克服这些限制。如图2所示,早计寄存器ETop34和EBot35可以保留在解码级而Ecnt36可保留在AC级。
安置一组早计寄存器34、35和36可以通过减小或避免环路设置损失来提高处理器2的处理速度。如上所述,几个同步脉冲周期可以在环路设置指令进入流水线时间和结构寄存器被写入时间之间通过。不过,早计寄存器可以在环路设置指令写入到结构寄存器中之前就先装入。由于这个原因,采用早计寄存器可以减少用于设置硬件环路所用的时间。
早计寄存器可以是用来预报或推测结构寄存器之数值的推测寄存器。推测寄存器与结构寄存器不同,它并不可被系统的指令组支持。因此,不能用程序码来通入推测寄存器。由于这个原因,程序员就不能用对待结构寄存器同样的方法来将数据资料送入推测寄存器或从其中取出。
可以用几种不同的方法来装载早计寄存器。例如,早计寄存器可以简单地通过将常规指令寄存器移动到结构寄存器处来完成装载。换言之,系统可以指令结构寄存器为另一个寄存器装入某些内容,其结果是,可以更新早计寄存器。而装载寄存器的另一种方法是从存储器中“弹出”。换句话说,系统可从存储器中取出数据资料,将此数据资料装入结构寄存器中,并将早计寄存器更新。
但是,常规的寄存器出现的问题是它们会引起环路设置损失。由于系统在取得移动的数据资料而将之写入以前一直是阻止流水线工作的,这就会产生这些损失。为了避免这些损失,可以在结构寄存器被写入之前用环路设置指令来装载早计寄存器。
下列示例表示用于产生示例性的环路设置机器指令的语句:
LSETUP(PC Relative TOP,PC Relative Bottom)Counter=X
PC Relative TOP表明从当前的指令到环路起动(起动偏移)的距离。PCRelative Bottom表明从当前的指令到环路终结(终结偏移)的距离。此外,所采用的计数器(Counter)可以是一个计数寄存器和一个表明环路中反复循环数目的环路数值。
图3是表示本发明一个实施例可装入早计寄存器时的示例性时间变化过程的流程图。如上所述,环路设置指令可包含以计数值、顶部值和底部值形式来表示的环路状态。这三个数值合起来可确定硬件环路的进入和退出状态。
计算值可表示环路将作的反复循环次数。在步骤38,一旦环路设置指令进入AC,在步骤39,该计算值就可写入ECnt寄存器。可通过寄存器从包含在不同流水线中的数据资料寄存器移动来完成对ECnt寄存器的初始写入。在一种运作模式中,可以用包含在DAG流水线中的PREG寄存器(参见图6)的数据资料来写入该ECnt寄存器。
顶部值和底部值可以表明哪条指令是环路的顶部以及哪条指令是环路的底部。但是,环路设置指令中的顶部值和底部值可以是与程序计数器(PC)相关的。因此,在AC级中的计算(40)可用来获得分别要被写入到ETop34和EBot35寄存器中的顶部值和底部值。在环路设置指令进入到EX1(41)后,就可将顶部值和底部值写入ETop34和EBot35寄存器(42)。
ETop寄存器34可被装载成指示环路的最初指令(环路顶部)。EBot寄存器35可被装载成指示环路的最后指令(环路底部)。ECnt寄存器36可被装载成指明电流要经过环路的次数。在一个实施例中,当电流经过环路时ECnt36向下计数而减小。
图4是表示当接收到环路设置指令并由流水线10处理时硬件环路单元8的一种运作模式的流程图。根据一种格式,环路设置指令可以表明包括启动偏移(S-Offset)和终止偏移(S-Offset)在内的几个设置变量。起动偏移可表明在指令串中从环路设置指令到环路中最初指令的距离。同样,终止偏移可表明在指令串中从环路设置指令到环路中最后指令的距离。
例如,如果环路中的该最初指令是紧接在环路设置指令后的指令,那么该起动偏移就是环路设置指令的宽度。如果,在指令串中,在环路设置指令和环路中的最初指令之间有一条指令的话,那么该起动偏移将会是环路设置指令和这一条指令的宽度。同样,如果在环路设置指令和最初指令之间有二条指令的话,那么该起动偏移将会是环路设置指令和这二条指令的宽度。
如图4所示,起动偏移和终止偏移通常都是由环路设置指令(44)来确定的。不过,环路设置指令确定相对于程序计数器(PC)的偏移。因此,PC值也必须确定45。随后,用该PC值和起动偏移来计算ETop寄存器数据(46)。此外,用该PC值和终止偏移来计算EBot寄存器数据(47)。一旦计算好了,就可将早计寄器数据资料写入到早计寄存器(48)中。
将图4和图2作一比较,可表示出在写入ETop和EBot寄存器时的示例性时间变化过程。在DEC级14中会发生步骤44和45。在AC级18中会发生步骤46和47。因此,在EX1级22中还可发生写入步骤48,尽管本发明的范围并不限于这方面内容。
一旦装入早计寄存器后,就可用它来设置硬件环路。图5是表示将一个硬件环路单元8连接到指令取出(IF)单元50和流水线10的解码单元52上的一个实施例的方框图。在这个实施例中,可用早计寄存器检测指令串57中的环路。然后,将一个或多个环路指令装入环路硬件54。一旦装入了环路指令,就可一次又一次地从环路硬件发送环路指令。这样,如果早计寄存器检测到一条指令环路,那么,可用IF单元50将一个或多个环路指令读取一次,而随后就反复地从硬件单元8发送。
采用早计寄存器会引起几个问题。例如,由于早计寄存器数据资料需要调整,就会产生由于采用早计寄存器而引起的问题。如果流水线必定要为信号转换服务,那么流水线的当前运作就要中止。如果这一中止发生在早计寄存器已经写入之后但在其各个结构寄存器写入之前,那么该早计寄存器的数据资料就会要调整。换句话说,由于早计寄存器早已写入,在环路完成之前要在流水线中中止就要求对早计寄存器的数据资料作一调整。
图6是表示包括早计寄存器的调整在内的运作模式的流程图。图6特别表示出包括在ETop、EBot、ECnt寄存器调整中的时间变化过程。
如图6所示,早计寄存器可被写入76。在图6的一个实施例中,早计寄存器特定为ETop、EBot和ECnt寄存器(如图2所示)。如果在结构寄存器被写入之前82就发生流水线中的中止,那么,不中断的指令可从流水线83中发送出来,且可通过写入包含在其各结构计算部件84中的数据资料来调整早计寄存器。
在处理背对背(back-to-back)的硬件环路时,图6所示的运作模式将特别有用。例如,如果在它完成之前第2环路中止了,则第1环路可能仍然要执行其流水线中的其余指令。图6中的调整技术提供了一种通过相应地调整早计寄存器值来处理这个变动的方法。
图7表示用早计(ECnt)数据资料来更新结构寄存器值的方法。数据资料可以以上述的任何一种方式写入到ECnt寄存器90中。然后,ECnt寄存器资料可沿着流水线92向下送,以使它在WB级中写入到结构寄存器93中。而后,在环路94的每个随后的反复循环中可减小ECnt寄存器数据96并再沿流水线92向下发送。这个过程可继续下去直到该环路完成其最后的反复循环98。
图8表示更新结构计数寄存器的另一种方法。图8所示的运作模式并不在环路的每次反复循环之后将ECnt数据资料沿流水线向下发送,而是将ECnt数据资料发送一次。接着,在随后的环路反复循环中再发送单个有效缩减比特用以调整结构计数寄存器。
在图8中,数据资料可以用上述任何一种方式写入到ECnt寄存器90中。而后,ECnt寄存器数据资料可沿流水线92向下发送,这样它就可在WB级中被写入到结构计数寄存器中。在随后的环路反复循环中,可发送单个有效缩减比特102用以使结构计数寄存器104数值减小。该过程可以持续进行直到环路完成其最后反复循环98为止。
图9是表示由于采用了早计寄存器而获得的时间变化过程的优化。如图9所示,可将环路的进入/退出状态装入到一组早计寄存器120中。而后在环路设置指令124实施之前就可检测进入/退出状态122。
ECnt寄存器的调整会出现另外的一些问题。ECnt寄存器的调整可以在环路完成之前流水线出现中止的任何时刻来进行。这是由于有效指令还会在流水线之中且这些有效指令在它们一旦实施了后就会调整结构计数寄存器值的缘故。
一种对ECnt寄存器在中止后的数据资料进行修正的方法,其使指令在中止之前就完成且随后即用其结构对应值来写入ECnt寄存器。不过,如果转移损失小于它排离流水线所用时间,就会增加附加损失。
图10表示一种调整早计计算值的有效方法。如图所示,在环路设置指令进入AC级180后,就可写入早计寄存器182。在此时刻ECnt数据资料可沿流水线184向下发送。如果发生了中止185,未受阻止的指令可送出186且可用其结构对应物187中的数据资料来写入ECnt寄存器。
在这个底部匹配190处可将一有效缩减比特沿流水线192向下发送。当产生有效的信息容量以供发送的指令退出各流水线级194时,有效的缩减比特就会从该退出流水线级196移离。换句话说,在发送有效的信息容量时(例如在192)计数器数值就增大,并且在产生有效缩减比特以供发送的指令退出该流水线级时,单个的计数器数值就减小(例如在196)。
如果在流水线198中发生中止,就可用在中止级处的计数器中的有效缩减信息容量的数字来调整早计寄存器188。该调整值还会在流水线中、比发生中止时的那个级更后一些的各流水线级的多个计数器上出现。图10的各个步骤可自动反复直到所有的环路指令都退出流水线200为止。
ECnt寄存器可以在各个底部匹配(例如用于每次经过环路)处减小数值。但是,仅仅是单个有效缩减比特沿流水线向下发送,而不是在每次底部匹配后将整个ECnt值向下沿流水线传播开去。这样,就可在DSP系统中实现减少硬件。计数器组可监视有效的信息容量以及产生这些信息容量以供发送的相关指令。如此,计数器组就可连续监视早计寄存器和其结构对应物之间的动态差异。
图11是表示电路中的计数器的方框图。如图所示,计数器可保持在DEC
210,211,212和213以后的流水线的各级上。因此,可将单个有效缩减比特沿着流水线传播下去用以考虑在早计寄存器和其结构对应物之间的差异,计数器可与多路转换器相连接。多路复用器220可确定用哪个计数器(如果有的话)来调整早计寄存器36。
在另一些实施例中,在某些级上不会发生中止,或者当有某条指令留在某个级中时中止可被抑制住。在这些实施例中,可通过在抑制中止的级中安置计数器来减少电路硬件。
计数器210、211、212和213的宽度可根据需要来改变。例如,计数器210可以是个1比特计数器而计数器211可以是一个2比特计数器。计数器212和213的最小深度取决于流水线执行级n的个数。计数器210可以是个1比特计数器,因为它总是为数值1或0。例如,如果其时在AC中是底部匹配指令则它的数值为1。当该指令离开了AC时,计数器回复到0。
计数器211和下一个计数器(例如用于级EX2的)可以是2比特计数器,尽管本发明的范围在这方面并无限制。这是由于计数器211(例如EX1计数器)可具有一个最大值2,而EX2计数器可具有一个最大值3。EX3计数器可具有一个最大值4,故它就需要3比特。同样,以下的三个计数器(例如EX4-EX6)可以是能够分别表示5-7之间数值的3比特计数器。
通过考虑计数器所要保有的最大值就可确定各级计数器的宽度。这就相当于环路是个单一指令环路的情况。因此,计数器的深度就相当于在该计数器和AC之间的级的个数。不过,其尺寸大小也取决于在特定的级中是否发生中止,故某些级可无需计数器。
另一种运作模式是调整早计寄器的混合方法。如果与排离流水线相关的损失大于转移损失,则可用停留在所选流水线的级上的计数器来调整早计寄存器。然而,如果了流水线损失小于或等于转移损失的话,那么就可以施行流水线中的指令,而从其结构对应物来调整早计寄存器。可根据流水线中发生中止的地方来选择系统的运作。在一种情况中,如果中止发生在EX3级或WB级中,那么可排离具有3个执行级的流水线,但如果中止发生在EX3级之前,那么就可不排离流水线而调整早计计数器。
图12表示混合运作模式的流程图。如图所示,如果中止230发生在第n级之前,则计数器可调整早计计算值228。但如果中止230发生在第n级之后,那么流水线的指令可流过流水线并施行232。而后再用它们结构对应物233中的数据资料来更新早计寄存器。变量n可限定允许通过流水线的指令化费小于或等于转移损失234的时间总量的时刻。
图13表示在前n-1执行级具有计数器的混合电路。如果指令已进入第n执行级,则电路可使流水线能够在中止之后执行其指令。但是,如果指令尚未进入第n执行级,则电路在中止后会调整早计寄存器。另外,变量n可限定允许通过流水线的指令数量小于或等于转移损失之时间总量的时刻。在其他的情况中,变量n可早就保留在流水线中(例如在转移损失较大之处)。
诸如环路寄存器和环路缓冲器之类的附加环路硬件会改进快速硬件环路。在此所说的环路硬件具有一些优点。在某些设施中,环路硬件会遮盖掉转移损失。此外,还可免除每次环路反复循环都要用到诸如高速缓冲存储器或SRAM之类的存储装置而可使环路硬件节省能源。另外,下面将叙述的环路硬件会具有极少的编程限制。同时,环路硬件还可免除在编程存储器中出现的对接限制。
再参见图1,图1表示出一个具有执行流水线4和控制单元6的可编程序处理器2。控制单元6包括硬件环路单元8。
硬件环路单元8可包括串连连接的一组或多组环路缓冲器。除此之外,硬件环路单元还包括一个或多个单条指令环路寄存器。一个环路缓冲器和/或环路寄存器的组群可合在一起而成为环路硬件。该组群会改进快速硬件环路。
再参照图5,图5是表示硬件环路单元8与流水线10的指令读取单元50和解码单元52相连接的方框图。指令读取单元50可将许多的输入中的一个提供给硬件环路单元8。硬件环路单元8包括与环路硬件54相连接的一多路转换器56。环路硬件54包括一组或多组环路缓冲器和/或多个环路寄存器。此外,这些环路缓冲器组包括串联连接的给定个数的缓冲器。每一组环路缓冲器具有一个相关的环路寄存器。
图14是表示硬件环路单元8的一个实施例的另一方框图。硬件环路单元8可与指令读取单元50和解码器(未图示)相连接。
硬件环路单元8包括一个与环路硬件相连接的多路转移器260。环路硬件包括一组串联连接的环路缓冲器271、272、273和274。这些缓冲器给另一个多路转移器280提供输入。多路转移器260和280依次将输入提供给多路转移器290。多路转移器290的输出与环路寄存器296相连,该寄存器反过来又与多路转移器260的输入相连。硬件环路单元8的输出给解码器提供输入。
多路转移器260可具有多个输入。这些输入包括来自寄存器(例如仿真器指令寄存器)的输入和来自读取单元50的输入。此外,多路转移器260还可具有来自环路指令寄存器的输入和来自一个或多个其他硬件环路单元的输入。
图14示例性地示出由深度为4的一组环路缓冲器和单条指令寄存器所组成的环路硬件。但是,在其他的一些实施例中也可采用任意个数的缓冲器和/或单条指令寄存器。
在所示例的运作模式中,环路缓冲器用于二种不同的情况。在一种情况中,环路中的每项指令都与环路缓冲器相适应。而在另一种情况中,并非每项指令都与环路缓冲器相应。下面依次对每种情况进行讨论。
图15是一种情况的说明图。如图所示,深度为4的环路缓冲器组可装入3指令环路(I2-I4)。如此环路缓冲器和VTop寄存器中的一个不可装入任何数据资料。指令I2-I4可多次执行直到出现环路退出状态为止。如图所示,退出状态可在每当I4指令从环路缓冲器发出时进行校核。
图16是表示一种情况的流程图。如图所示,可以发送指令300,可将指令装入到环路缓冲器302,和阻断存储装置。阻断存储器可以节省输向DSP系统的功率。在将指令装入到缓冲器组后302,随后就可将指令从缓冲器组发送出去306。指令可一次次地不断发送,直到出现环路退出状态为止(308)。
图17是表示一种情况的另一种流程图。如图所示,可以发送指令(310),可将指令装入到环路缓冲器中(314),可将存储装置阻断(316),并且可将环路计数值预置好(312)。只要不出现环路退出状态(318),环路计数值就可自减(320),且可从一组环将缓冲器发送指令(322)。可将存储装置阻断直到环路计数值到达给定的数X为止(316)。而且,X可定为当环路2完成后在读取单元中环路之后的下一条指令可立即准备就绪。这样就可避免环路退出损失。
在另一些实施例中,环路值预置为零(312)。而后,调整320是增加环路值而不是如图17所示的减小。还有一些实施例可藉助于图15-17了解清楚。
图18是另一种情况的说明图。如图所示,深度为4的环路缓冲器组可装入4个环路指令(I2-I5)。此外,VTop寄存器可装环路中的下一条指令的地址。VTop可为驻留在流水线中的地址寄存器(参见图2、37)。在环路随后的反复循环中,在读取了I6时就可执行指令I2-I5。在I5执行之后I6当即就准备执行。在环路的反复循环中可核校退出状态。
图19是表示图18情况的流程图。如图所示,当发送了第一分组指令时(332),就可将第一分组指令装入到一组缓冲器中(330)。接着,第二分组指令即可装入到寄存器中334。且可发送到第二分组指令336。在随后环路的反复循环中(反复循环的数目系由退出状态决定338),当读取了第二分组指令时342,就可将第一分组指令从缓冲器组发送出去340。而后就可发送第二分组指令344。
按照图19的运作模式可有几个好处。例如,每当第一分组指令从缓冲器组发送时,如果不启动存储装置就可节省功率。此外,在发送第一分组指令时读取第二分组指令可使环路损失最小化。在一个实施例中,环路缓冲器具有的深度至少可与转移损失相当。这样,与读取第二分组指令相关的损失可被发送第一分组指令所掩盖。这就可加快DSP系统的速度。不过,在其他的、节省功率为更重要的设计特征的(例如用于由电池供电装置的电路)实施例中,深度更深的缓冲器将更为有用。
第一分组指令可以是与环路缓冲器组相适应的指令个数。而第二分组指令则可以是接在缓冲器中所装入的那些指令之后的环路中的下一条指令。或者,第二分组指令也可以是接在缓冲器中所装入的那些指令之后的多条指令。
图20是表示上述情况的更大体的流程图。如图所示,可将第一分组指令装入缓冲器组之中350且将之发送出去352。如果环路的所有的指令都与环路缓冲器相匹配354,那么,存储装置就会阻断355,且这些指令就可从缓冲器组中连续发送出去356,直到出现退出状态为止358。
如果并非所有环路指令都与环路缓冲器相匹配354,那么,就可发送第二分组指令360,且可将这些指令的起动地址装入到寄存器之中362。在随后的环路反复循环中(如同由退出状态所决定的那样364),当从存储器中读取了第二分组指令时368,就可从缓冲器组中发送第一分组指令366。而后就可发送第二分组指令370。
在图18的情况中,每当有一个底部匹配时就会对VTop所指的地址作一次访问。这样,在读取第二分组指令时就可传送第一分组指令。
在环路中的第一分组指令发送出去之前已将高速缓冲存储器接通、并将对接缓冲器装填的第二分组指令。对接缓冲器可持有多条指令(取决于多条指令的宽度)。如果第二分组指令包括多条指令,则可将此多条指令对接到对接缓冲器中,其中,第二分组指令的第一条指令为一个与VTop寄存器相关的指令。
运作还包括在与VTop相关的指令传送时访问在与VTop相关的的指令后的下一条指令。例如,在一种运作模式中,与VTop相关的指令是一个64比特的指令。当此64比特指令传送时,就读取下一个64比特的指令(如同由存储器中的对接所决定的那样)。通过一再地将此重复,DSP系统就可快速高效地传送指令。
传统的装有硬件环路的可编程序处理器系统对其运作数码有诸多限制。然而,却又极其希望要提供具有很少的编程限制的硬件环路。根据本发明的一个系统的实施例可只有一个编程限制。此单个限制是系统在其环路底部部没有分支。
快速硬件环路会有环路缓冲器要求成为失效的情况,这些情况可包括在环路缓冲器塞满了条件分支时的失效。这样,在一种运作模式中,如果在环路中的前n条指令中的一个为条件分支的话,一组环路缓冲器就会失效。变量n由环路缓冲器组的深度来决定。
环路缓冲器会要求失效的另一种情况是在装载环路缓冲器时收到转换信号。此外,环路缓冲器会在用于自调整码的C-SYNC之后要求失效。这样,其他运作模式还包括在上述二种情况中出现其一种时而使环路缓中器失效。
零偏移环路还会引起其他问题。偏移会涉及到环路设置指令和环路中的最初或最后指令之间的距离。在传统领域的系统中,必须要有偏移来促进硬件环路的设置或者用来考虑系统中的编程异常情况。但是,由于零偏移环路可以减小处理时间,所以设置零偏移环路是非常有利的。
即使在没有早计寄存器和环路缓冲器的系统中,零偏移环路也会带来问题。例如,在上述的系统中,在写入早计寄存器之前(例如在EX-1中),零偏移环路的第一条指令已经在AC之中了。这样,由于甚至在ETop和EBot被写入之前环路之初就已存在DEC了,故电路极易“错过”顶部匹配。
已设计了特殊运作模式和电路装置来检测和处理零偏移环路,在一种运作模式中,将环路设置指令中的起动偏移(S-偏移)与一个已知值比较用以检测零偏移。这样就建成了零偏移的早期检测。在一个特定的实施例中,系将S-偏移与4来作比较。(此处,4系指32比特指令的4个比特)。一旦完成检测,即使在早计寄存器被写入之前也能够设置零偏移环路。
图21是表示用于检测零偏移环路的运作模式的流程图。如图所示,可将一环路设置指令解码380。而后,将S-偏移与给定数字比较382(该给定的数字相当于环路设置指令的宽度)。这样,即使在早计寄存器被写入之前也可检测零偏移环路。如果检测到了零偏移环路384的话,如上所述,就可将环路中的下面n条指令发送出去并装入环路缓冲器386。
图22是表示用以检测和处理单条指令零偏移环路特殊情况的运作模式的流程图。如图所示,可将环路设置指令解码388。如果检测到了零偏移390,并且起动偏移与终止偏移相等392,那么,即可实施单条指令环路394。在S-偏移与环路设置指令宽度相等时可检测到零偏移。而当S-偏移与e-偏移相等时可检测到单条指令环路。
特殊的硬件促进尽快地设置和执行单条指令环路。再参见图14,可将环路寄存器296用于这些特殊情况。这样,可通过给环路硬件(诸如环路寄存器296)装载单条指令、且将该指令反复地送出硬件环路单元8直到出现单条指令环路的退出状态为止来完成步骤394。
可通过将一特殊环路指令寄存器296中的解码器指令保持住(参见图14)来检测单条指令环路而后又执行之。此外,存储装置不会接通,且其上游各级都被阻断,用以节省功率。而且,由于单条指令环路被发送到环路指令寄存器296以外,故指令读取单元50可自由读取下一条指令(例如,来自一高速缓冲器的)。这样,当单条指令环路已结束执行时,下一个指已经处在指令读取单元50之中了,从而可形成零环路退出。
类似地,零偏移硬件环路可分为三种情况。在第一种情况中,零偏移条指令环路可通过环路指令寄存器立即发送到解码器以外。在第二种情况中,零偏移n-指令环路可立即被检测到并完全装载到一个深度为n的环路缓冲器组中。而在第三种情况中,零偏移环路可立即被检测到并且该环路的第一n-指令被装入到一个深度为n的环路缓冲器组中。下一条指令可以与VTop寄存器相关连。
在一个实施例中,如上所述,环路硬件可安设在流水线中。这就比将缓冲器安设在高速缓冲存储器中要好得多。
在一种运作模式中,环路指令可存储在环路硬件中,而使其与指令边界相对接。这就比将指令与地址边界对接要好得多。一旦与环路硬件中的指令边界对接了,在它们随后从环路硬件发送出来时就无须再作指令对接了。
为了将指令与指令边界对接,可将一组指令以执行命令的方式装入到环路硬件中去,且可将下一条指令的地址存储在地址寄存器中。此外,可将第二组指令以执行命令的方式装入到存储装置中去。将指令以执行命令的方式装入到环路硬件中去可包括将n个随后的指令装入到n个缓冲器中,这里n是个正整数。而且,此n个随后的指令可以是任意的随后的指令,它包括最初的n个环路指令或者最后的n个环路指令。
在其他的实施例中(如图23A-23C所示)可设置许多硬件环路单元。任意个数的硬件环路单元的输出都可与一个或多个其他的硬件环路单元的各个输入相连接。这样,可通过第一硬件环路单元的输出来装载第二硬件环路单元。这样,对装载第二硬件环路单元也可同存储装置不启动同样地节省功率。
在某些情况中,可用多个环路单元来作嵌套环路(或者是套管环路)运作。内部硬件环路单元可保持住一个或多个在外部硬件环路单元中对接好的指令。而且,还可将对接的指令从外部硬件环路单元发送到内部硬件环路单元的输入上来装载内部硬件环路单元。
在又一些其他实施例中,安设有多个独立的硬件环路单元。但是,如果在相同的DSP系统中采用二个或二个以上的独立的硬件环路单元的话,要加以限制条件。例如,当二个环路都具有相同的底部指令时,该二环路中之一要规定为外部环路。如果无此限制则电路就会有二个底部匹配,就不知道该把哪一个的数值减小。
另外的又一种运行模式包括硬件环路的功率管制。当使硬件环路工作时,将ETop寄存器去与PC作比较,用以考虑各个顶部匹配。类似地,将EBot寄存器去与PC作比较,用以考虑各个底部匹配。但是,当硬件环路不工作时,只有比较器电路中的开关动作才消耗功率。因此,在硬件环路不工作时使底部匹配和顶部匹配比较器电路也不工作将会是有好处的。通过在硬件环路工作时选择给比较器的输入来停止比较器的运作可节省功率。
图24是表示功率节省电路的一个示例性的实施例。ETop寄存器400和EBot寄存器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也示出一个用于使ECnt寄存器418的数值增加的示例性电路。在该环路的各通道上,多路转换器420可使ECnt寄存器的数值减小。不过,如果必须,调整信号(例如修整值422)可相应地调整ECnt。一旦环路完成了它的最后反复循环,比较器424就发送表明它的信号425。
图24说明如何检测底部匹配和顶部匹配。当比较器410检测到程序计数器412和ETop寄存器具有相同值时,就发送一个顶部匹配值428。当比较器408检测到程序计数器和EBot寄存器具有相同值时,就发送出一个底部匹配信号430。
最后,图24表示设置在流水线中的VTop寄存器432。如所述,VTop可以是地址寄存器,它可将接在多个装入环路硬件(未图示)的指令之后的下一条指令的地址保持住。
以上已描述了本发明的各种实施例。例如,已描述了多种用于设置在处理器中的硬件环路的技术。处理器可设置在各种系统中,这些系统包括通用的计算机系统、数字处理系统、超小型计算机,个人数字处理装置(PDA)以及蜂窝电话。在本文中,以上所讨论的硬件环路可便于提高处理速度而不致过大地增加消耗功率。在这种系统中,可将处理器与一个存储装置连用,该存储装置可以是诸如快速存储装置或储存有一个运作系统和其他应用软件的统计随机过程存储器(SRAM)。这些实施例和其他实施例都被包括在下述权利要求的范围之内。

Claims (34)

1. 一种方法,其特征在于,包括:
在流水线处理器中解码环路设置指令,所述环路设置指令定义一硬件环路的开始指令和结束指令;
在环路设置指令中检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
如果检测到零偏移环路,将接在环路设置指令后的下一条指令作为硬件环路中的第一指令。
2. 如权利要求1所述的方法,其特征在于,该方法还包括:
如果检测到零偏移环路,将指令装入环路硬件,装入环路硬件中的第1条指令是接在环路设置指令后的下一条指令。
3. 如权利要求2所述的方法,其特征在于,该方法还包括:
在环路随后的反复循环过程中从环路硬件发送至少几条指令。
4. 如权利要求1所述的方法,其特征在于,该方法还包括:
从环路设置指令检测单条指令环路。
5. 如权利要求4所述的方法,其特征在于,该方法还包括:
将环路设置指令后的下一条指令装入环路寄存器。
6. 如权利要求5所述的方法,其特征在于,该方法还包括:
如果检测到单条指令环路,则在环路随后的反复循环过程中从环路寄存器来发送下一条指令。
7. 如权利要求1所述的方法,其特征在于,
通过将环路设置指令中的起动偏移值与预定数值比较来检测零偏移。
8. 如权利要求7所述的方法,其特征在于,
通过将环路设置指令中的起动偏移与环路设置指令的宽度比较来检测零偏移。
9. 一种装置,其特征在于,包括:
一控制单元,适于用来在一流水线处理器中从环路设置指令中检测零偏移环路,所述环路设置指令定义一硬件环路的开始指令和结束指令,在环路设置指令中检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
环路硬件,用于存储来自零偏移环路的指令;
其中所述零偏移环路在环路条件被写入到一组用于非零偏移环路的寄存器之前被检测。
10. 如权利要求9所述的装置,其特征在于,
环路硬件包括至少两个并联连接的环路缓冲器;并且,
该控制单元适于用来发送指令并将至少几条指令装入至少两个环路缓冲器;装入缓冲器的第一指令是跟随在检测到零偏移环路后的环路设置指令后的下一条指令。
11. 如权利要求10所述的装置,其特征在于,
该控制单元适于用来从环路缓冲器发送指令以使环路反复循环。
12. 如权利要求9所述的装置,其特征在于,
该控制单元适于用来检测单条指令环路。
13. 如权利要求12所述的装置,其特征在于,
环路硬件包括单条指令环路寄存器,而控制单元适于用来在环路设置指令后发送下一条指令并在检测到零偏移单条指令环路后,将该下一条指令装入单条指令环路寄存器。
14. 如权利要求13所述的装置,其特征在于,
该控制单元适于用来从单条指令环路寄存器发送下一个有关环路随后作反复循环的指令。
15. 一个系统,其特征在于,它包括:
SRAM存储装置;以及
与该存储装置相连的流水线处理器,所述流水线处理器适于:
将环路设置指令解码,所述环路设置指令定义一硬件环路的开始指令和结束指令;
从环路设置指令检测零偏移环路,所述零偏移环路具有所述环路设置指令和所述开始指令之间的零指令;以及
如果检测到零偏移环路,发送环路设置指令后的下一条指令作为硬件环路中的第一指令;
其中所述流水线处理器包括控制单元和硬件环路,所述控制单元适于在硬件环路的环路条件被写入到一组用于非零偏移环路的寄存器之前检测零偏移环路。
16. 如权利要求15所述的系统,其特征在于,
该控制单元适于将指令装入环路硬件,装入环路硬件的第1指令是接在环路设置指令后的下一条指令。
17. 如权利要求16所述的系统,其特征在于,
该控制单元适于在环路随后的反复循环过程中从环路硬件发送至少一几条指令。
18. 如权利要求15所述的系统,其特征在于,
该控制单元适于用来从环路设置指令检测单条指令环路。
19. 如权利要求18所述的系统,该系统还包括一个环路寄存器,其特征在于,
该控制单元适于用来在检测到单条指令零偏移后将下一条指令装入环路寄存器中。
20. 如权利要求19所述的系统,其特征在于,
该控制单元适于用来在随后环路的反复循环过程中从环路存储器发送下一条指令。
21. 如权利要求15所述的系统,其特征在于,
该控制单元适于用来通过将环路设置指令中的起始偏移值与给定数字比较而来检测零偏移。
22. 如权利要求21所述的系统,其特征在于,
该给定的数字相当于环路设置指令的宽度。
23. 一种方法,其特征在于,包括:
在流水线处理器中解码环路设置指令,所述环路设置指令定义一硬件环路的顶部和底部;
从环路设置指令检测到所述硬件环路的顶部和底部正指向一零偏移环路的同一指令;以及
在检测之后立即执行单一指令环路。
24. 如权利要求23所述的方法,其特征在于,执行单一指令环路包括:
将所述单条指令发送到解码级之外;
将该单条指令装入环路寄存器;以及
从该环路寄存器重新再发送该单条指令。
25. 如权利要求24所述的方法,其特征在于,还包括:
读取接在该单条指令环路后的第2指令。
26. 如权利要求25所述的系统,还包括:
在从环路寄存器再发送单条指令给定次数以后再发送第二指令。
27. 如权利要求23所述的方法,其特征在于,
环路设置指令包括起动偏移和终止偏移;并且其中,
表示环路的顶部和底部正指向同一指令的环路设置指令的检测包括:确定起动偏移和终止偏移相等。
28. 一种装置,其特征在于,包括:
控制单元,适于用来从环路设置指令检测到环路的顶部和底部正指向一零偏移环路的同一条指令,并之后立即执行一单条指令环路;以及
环路硬件,用于存储所述单条指令。
29. 如权利要求28所述的装置,其特征在于,
环路硬件包括至少一个单条指令环路寄存器,并且其中,
控制单元适于在对表示环路的顶部和底部正指向同一指令的环路设置指令的检测之后,将指令装入单条指令环路寄存器。
30. 如权利要求29所述的装置,其特征在于,
该控制单元适于用来从单条指令环路寄存器发送有关使环路作反复循环的指令。
31. 一种系统,其特征在于,包括:
一SRAM存储装置;以及
一与有存储装置相连的流水线处理器,该流水线处理器适于用来:
解码环路设置指令,所述环路设置指令定义一硬件环路的顶部和底部;
从环路设置指令检测到硬件环路的顶部和底部正指向一零偏移环路的同一指令;以及
在检测之后立即执行单条指令环路。
32. 如权利要求31所述的系统,该系统还包括单条指令环路寄存器,其中,单条指令寄存器包括:
将环路指令发送到解码级以外;
将环路指令装入环路寄存器;以及
从环路寄存器再发送环路指令。
33. 如权利要求32所述的系统,其特征在于,
环路指令是第一指令,该控制单元还适于:
读取接在单条指令环路后的第二指令。
34. 如权利要求33所述的系统,其特征在于,
该控制单元还适于:
在从环路寄存器发送第一指令给定数字的次数后发送第二指令。
CNB018180892A 2000-11-02 2001-10-31 硬件环路 Expired - Fee Related CN100416495C (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1471667A CN1471667A (zh) 2004-01-28
CN100416495C true CN100416495C (zh) 2008-09-03

Family

ID=24832533

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018180892A Expired - Fee Related CN100416495C (zh) 2000-11-02 2001-10-31 硬件环路

Country Status (6)

Country Link
US (1) US6748523B1 (zh)
JP (1) JP3737802B2 (zh)
KR (1) KR100551544B1 (zh)
CN (1) CN100416495C (zh)
TW (1) TW586071B (zh)
WO (1) WO2002042905A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003019356A1 (en) * 2001-08-22 2003-03-06 Adelante Technologies B.V. Pipelined processor and instruction loop execution method
US20050102659A1 (en) * 2003-11-06 2005-05-12 Singh Ravi P. Methods and apparatus for setting up hardware loops in a deeply pipelined processor
US7406590B2 (en) * 2004-02-25 2008-07-29 Analog Devices, Inc. Methods and apparatus for early loop bottom detection in digital signal processors
WO2005110685A2 (en) * 2004-05-11 2005-11-24 Alliss George E Vegetation trimmer apparatus
TW200821923A (en) * 2006-11-08 2008-05-16 Ite Tech Inc Data processing apparatus for loop operation and method thereof
US9772851B2 (en) 2007-10-25 2017-09-26 International Business Machines Corporation Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer
US20100122066A1 (en) * 2008-11-12 2010-05-13 Freescale Semiconductor, Inc. Instruction method for facilitating efficient coding and instruction fetch of loop construct
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
WO2014047828A1 (en) * 2012-09-27 2014-04-03 Intel Corporation Method and apparatus to schedule store instructions across atomic regions in binary translation
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0511484A2 (en) * 1991-03-20 1992-11-04 Hitachi, Ltd. Loop control in a data processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0221741A3 (en) 1985-11-01 1991-01-16 Advanced Micro Devices, Inc. Computer microsequencers
JP3102027B2 (ja) * 1990-11-20 2000-10-23 日本電気株式会社 ループ制御のネスティング管理機構
US5303355A (en) * 1991-03-27 1994-04-12 Motorola, Inc. Pipelined data processor which conditionally executes a predetermined looping instruction in hardware
US6016538A (en) * 1993-11-30 2000-01-18 Texas Instruments Incorporated Method, apparatus and system forming the sum of data in plural equal sections of a single data word
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US5727194A (en) * 1995-06-07 1998-03-10 Hitachi America, Ltd. Repeat-bit based, compact system and method for implementing zero-overhead loops
US6003128A (en) * 1997-05-01 1999-12-14 Advanced Micro Devices, Inc. Number of pipeline stages and loop length related counter differential based end-loop prediction
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
FR2770659A1 (fr) 1997-10-31 1999-05-07 Sgs Thomson Microelectronics Processeur de traitement perfectionne

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0511484A2 (en) * 1991-03-20 1992-11-04 Hitachi, Ltd. Loop control in a data processor

Also Published As

Publication number Publication date
JP2004514985A (ja) 2004-05-20
WO2002042905A8 (en) 2002-10-03
US6748523B1 (en) 2004-06-08
CN1471667A (zh) 2004-01-28
WO2002042905A3 (en) 2003-05-01
KR20030048095A (ko) 2003-06-18
WO2002042905A2 (en) 2002-05-30
JP3737802B2 (ja) 2006-01-25
TW586071B (en) 2004-05-01
KR100551544B1 (ko) 2006-02-13
WO2002042905A9 (en) 2003-11-13

Similar Documents

Publication Publication Date Title
CN100416495C (zh) 硬件环路
US11928512B2 (en) Quiesce reconfigurable data processor
CN1104680C (zh) 计算机系统内部处理指令的装置
CN100447738C (zh) 含有多级寄存器文件的数字数据处理设备
CN101320360B (zh) 用于并行集成电路结构的消息排队系统和相关操作方法
CN100527089C (zh) 信息处理装置中的功率控制装置
CN104346223A (zh) 基于类型的优先化指令
CN101799750B (zh) 一种数据处理的方法与装置
CN101369224B (zh) 超线程微处理器中经线程优先级提供服务质量的设备
US7457970B2 (en) VLIW processor with power saving
CN109697185A (zh) 多瓦片处理阵列中的同步
CN102855121A (zh) 分支处理方法与系统
CN101021779A (zh) 一种针对流处理器的指令控制方法
CN108052347A (zh) 一种执行指令选择的装置、方法及指令映射方法
CN101122851A (zh) 一种数据处理方法及处理器
CN102253919A (zh) 基于gpu和cpu协同运算的并行数值模拟方法和系统
CN101021832A (zh) 支持局部寄存和条件执行的64位浮点整数融合运算群
CN105808351B (zh) 一种多模式自适应切换处理器
CN1523496A (zh) 终止处理器中非必要处理的条件指令的方法与系统
CN103119555A (zh) 下一指令类型字段
US5966515A (en) Parallel emulation system and method
CN100380316C (zh) 硬件环路
WO2017016590A1 (en) Scheduling heterogenous processors
CN100432968C (zh) 存储器直接存取装置及其数据传输方法
CN103984525A (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: 20090220

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: 20090220

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

Granted publication date: 20080903

Termination date: 20201031

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