CN1219252C - 支持可变长度指令执行的方法和设备 - Google Patents

支持可变长度指令执行的方法和设备 Download PDF

Info

Publication number
CN1219252C
CN1219252C CNB018164684A CN01816468A CN1219252C CN 1219252 C CN1219252 C CN 1219252C CN B018164684 A CNB018164684 A CN B018164684A CN 01816468 A CN01816468 A CN 01816468A CN 1219252 C CN1219252 C CN 1219252C
Authority
CN
China
Prior art keywords
instruction
sub
impact
processor
impact damper
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
CNB018164684A
Other languages
English (en)
Other versions
CN1466714A (zh
Inventor
T·托玛滋恩
W·C·安德森
C·P·洛斯
K·查尔马斯
J·G·雷维拉
R·P·辛格
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 CN1466714A publication Critical patent/CN1466714A/zh
Application granted granted Critical
Publication of CN1219252C publication Critical patent/CN1219252C/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
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/3816Instruction alignment, e.g. cache line crossing

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)
  • Image Processing (AREA)

Abstract

在一个实施例中,数字信号处理器包括超前逻辑,以减少在处理流水线中嵌入的泡的数量。处理器在多个缓冲器中接收包含指令的数据,并解码第一指令的大小。根据第一指令的大小,确定第二指令的起始。解码第二指令的大小,并且处理器确定加载第二指令是否将耗尽多个缓冲器中的一个。

Description

支持可变长度指令执行的方法和设备
                            技术领域
本发明涉及数字信号处理器,尤其涉及数字信号处理器中的可变宽度指令的对准。
                            背景技术
数字信号处理涉及采用数字形式的信号表现,以及使用数字计算来转换或处理这种数字表现。在无线通信、联网和多媒体等领域中,数字信号处理是当今许多高科技产品的核心技术。数字信号处理技术流行的一个原因一直是开发了成本低且功能强大的数字信号处理器(DSP),数字信号处理器为工程师提供了可靠的计算能力以廉价并有效地实现这些产品。自从开发了第一种DSP以来,DSP的构造和设计已发展到可以对视频速率序列执行十分复杂精密的实时处理的程度。
DSP经常用于诸如数字视频、成像和音频之类的各种多媒体应用。DSP可以对数字信号进行操作,以创建和打开这类多媒体文件。
MPEG-1(运动图像专家组)、MPEG-2、MPEG-4和H.263是数字视频压缩标准和文件格式。这些标准通过主要存储从一个视频帧到另一个视频帧的变化,而不是存储每个完整的帧,来实现数字视频信号的高压缩比。然后,可以使用许多不同的技术来进一步压缩视频信息。
压缩期间,可以使用DSP来对视频信息执行各种操作。这些操作可以包括运动搜索和空间内插算法。主要目的是测量相邻帧内的块之间的失真。这些操作是计算密集的,可能要求高的数据吞吐量。
MPEG标准家族正在不断发展,以跟上对多媒体应用和文件的日益增加的带宽要求。该标准的每个新版本都表现出更加复杂的算法,这些算法对适合MPEG的视频处理设备中所用的DSP提出更多的处理要求。
视频处理设备制造商经常依靠为MPEG和H.263标准下的视频编码定制的专用集成电路(ASIC)。但是,ASIC的设计复杂,造价昂贵,其应用不如通用DSP灵活。
                            发明内容
本发明提供一种在处理器中对准指令的方法,包括:对准第一指令;解码第一指令的大小;基于第一指令的大小,确定第二指令的起始;解码第二指令的大小;确定处理第二指令是否将取空多个缓冲器中的一个;以及如果处理第二指令取空多个缓冲器中的一个,则指示多个缓冲器中的这一个去接收其它的指令数据。
本发明还提供一种在处理器内的处理指令的方法,包括:在等于一高速缓存等待时间的若干周期内预测是否多个缓冲器中的一个将被取空指令数据;如果多个缓冲器中的一个将被取空,则准备多个缓冲器中的这一个缓冲器加载其它的指令数据。
本发明提供一种处理器,包括:适合存储包括多条指令的第一指令数据的多个缓冲器;适合对准多条用于执行的指令的指令请求单元;适合确定多条指令的宽度的解码器;适合预测多个缓冲器中的一个何时将被取空的转换检测器,该转换检测器适合发送一信号来指示多个缓冲器中的一个来载入第二指令数据。
本发明还提供一种设备,包括驻留于机器可读存储介质上的指令,用于在机器系统中对准处理器中的指令,这些指令使机器:在多个缓冲器中接收包含指令的数据;解码第一指令的大小;根据第一指令的大小,确定第二指令的起始;解码第二指令的大小;确定处理第二指令是否将取空多个缓冲器中的一个;以及如果处理第二指令取空多个缓冲器的一个,则指示多个缓冲器的这一个去接收其它的指令数据。
                            附图说明
通过阅读以下详细的描述并参考附图,本发明的这些和其他的特征与优点将会更加一目了然。
图1是根据本发明的一个实施例的一种利用处理器的移动视频设备的框图。
图2是根据本发明的一实施例的信号处理系统的框图。
图3是根据本发明的一实施例的一种替代的信号处理系统的框图。
图4说明了根据本发明的一实施例的图1中的处理器的示范流水线站。
图5是根据本发明的一个实施例的在对准多路复用器中的数据流的逻辑图。
图6是根据本发明的一个实施例的指令请求单元的框图。
                            具体实施方式
图1说明了根据本发明的一实施例的包括处理器的一种移动视频设备100。移动视频设备100可以是一种手持设备,它显示产生于从天线105或数字视频存储介质120(例如,数字化视频光盘(DVD)或记忆卡)接收的编码视频信号的视频图像。处理器110与可以为处理器操作存储指令和数据的存储器115(可以是高速缓冲存储器)进行通信。处理器110可以是微处理器、数字信号处理器(DSP)、控制从属的DSP的微处理器、或具有混合式微处理器/DSP架构的处理器。出于本申请的目的,处理器110在下文中将被称作DSP 110。
DSP 110可以对编码的视频信号执行各种操作,包括例如,模拟-数字转换、解调、滤波、数据恢复和解码。DSP 110可以根据各种数字视频压缩标准(例如,MPEG标准家族和H.263标准)之一来对压缩的数字视频信号解码。然后,解码的视频信号可以输入到显示驱动器130,以便在显示器125上生成视频图像。
手持设备的电源供给通常有限。此外,视频解码操作在计算上是密集的。因此,用于这种设备中的处理器最好速度较高、功率较低。
DSP 110可以具有一种深流水线、负载/存储架构。通过采用流水线技术,相对于非流水线DSP而言,可以增强DSP的性能。流水线DSP不是获取第一条指令,执行该第一条指令,然后获取第二条指令,而是使第二条指令的获取和第一条指令的执行同时发生,从而提高了指令吞吐量。此外,流水线DSP的时钟周期可比非流水线DSP的时钟周期短,在非流水线DSP中必须在同一时钟周期内获取和执行指令。
这种DSP 110可以用于视频可携式摄像机、电信会议、PC视频卡和高清晰度电视(HDTV)。此外,DSP 110也可以结合利用数字信号处理(例如,移动电话技术、语音识别中所用的语音处理)的其他技术和其他应用来加以运用。
现在参考图2,示出了根据一实施例的包括DSP 110的一种信号处理系统200的框图。一个或多个模拟信号可以由外部源(例如,天线105)提供给信号调节器202。信号调节器202可以对这些模拟信号执行某些预处理功能。示范的预处理功能可包括将这些模拟信号中的几个模拟信号混合在一起、滤波、放大等。如上所述,模数转换器(ADC)204可以被耦合,以便从信号调节器202接收经预处理的模拟信号并将预处理过的模拟信号转换为由采样组成的数字信号。可以根据由信号调节器202所接收的模拟信号的特性所确定的采样率来进行采样。DSP 110可以被耦合以便接收ADC 204的输出端上的数字信号。DSP 110可以对所接收的数字信号执行所需的信号转换,产生一个或多个输出数字信号。数字-模拟转换器(DAC)206可以被耦合,以便从DSP 110接收输出数字信号。DAC 206将输出数字信号转换为输出模拟信号。然后,将输出模拟信号传递给另一个信号调节器208。该信号调节器208对输出模拟信号执行后处理功能。示范的后处理功能类似于以上所列出的预处理功能。注意,信号调节器202和208、ADC 204以及DAC 206的各种替换方法是众所周知的。这些设备的任何合适的布置都可以被耦合于具有DSP 110的信号处理系统200中。
接下来参考图3,示出了根据另一个实施例的一种信号处理系统300。在这个实施例中,可以安排数字接收器302接收一个或多个数字信号,并将所接收的数字信号传递给DSP 110。和图2中所示的实施例一样,DSP 110可对所接收的数字信号执行所需的信号转换,以产生一个或多个输出数字信号。被耦合以接收输出数字信号的可以是数字信号发送器304。在一个示范应用中,信号处理系统300是一种数字音频设备,其中数字接收器302将表示存储在数字存储设备120上的数据的数字信号传递给DSP 110。然后,DSP 110处理数字信号,并将所产生的输出数字信号传递给数字发送器304。数字发送器304随后使这些输出数字信号的值传送到显示驱动器130,以便在显示器125上生成视频图像。
图4所示的流水线包括8个站,它们可包括指令获取402-403、解码404、地址计算405、执行406-408以及反写409这些站。指令i可在一个时钟周期内被获取,然后在随后的时钟周期内在流水线中被加以操作和执行,与此同时,获取新的指令(例如,i+1和i+2)。
流水线技术可能会引入额外的协调问题并有损于处理器的性能。程序流程中的跳转可能会在流水线中产生空隙或“泡”。引起要采取条件转移或要产生异常或中断的情况可能会改变指令的顺序流。发生这类事件后,可在连续的程序流之外获取一条新的指令,使流水线中的其余的指令互不相关。可以采用数据发送、分支预测、以及将有效位与流水线中的指令地址相关联之类的方法,来处理这些复杂情况。
图5是根据本发明的一个实施例的对准多路复用器中的数据流500逻辑图。在数据流500中,把指令载入存储器505中。存储器505包括多个缓冲器510、515来存储指令。在一个实施例中,缓冲器510、515是64位缓冲器。第一缓冲器510被分成多个较小的16位缓冲器(buf)520、525、530和535。第二缓冲器515也被分成多个较小的16位的缓冲器540、545、550和555。较小的16位缓冲器520-555中的每一个分别连接到多个选择多路复用器(mux)560、565、570和575。选择多路复用器560、565、570和575中的每一个都连接到一选择线580,来选择多路复用器560、565、570和575的输出。多路复用器560、565、570和575中的每一个输出一16位信号,这些信号存储在多个在流水线中使用的触发器585、587、590和592中。
存储在多个触发器585、587、590和592中的信号可表示要在流水线中执行的指令。如果指令是16位或更短,则只有第一触发器585可包含数据。随着指令大小增加,触发器585-592中更多的触发器将包含数据。例如,32位指令可在第一触发器585和第二触发器587中含有数据,而64位指令可在所有触发器585-592中具有数据。
一单独的指令最初可在多个16位缓冲器520-555中被拆分。例如,一64位指令可开始于第三缓冲器530中而结束于第六缓冲器545中。图5的对准多路复用器通过将数据传送到多个多路复用器560-575并且接着选择适当的数据来发送到触发器585-592,确保指令在流水线中处理之前得到对准。为了减少在流水线中插入泡的风险,一旦缓冲器510、515中的所有指令数据被调度到流水线,对准复用器就重新加载存储器505中的缓冲器510、515。在一个实施例中,存储器505可以是高速缓冲存储器。
本发明采用提供64位或更短的指令的64位指令寄存器来加以描述。当然,本发明可以在提供(N位)或更短的指令的任意大小的指令寄存器(N位)上得到实现。另外,尽管用两个缓冲器510、515来描述本发明,但是可按比例将本发明缩放成任意大小来容纳任何数量的缓冲器。
图6是根据本发明的一个实施例的指令请求单元600的框图。指令请求单元600可超前若干周期来判定缓冲器510、515将被清空,使得在该特定实施例中缓冲器510、515可被重新加载而不将任何泡引入到流水线中。将用两个周期的高速缓冲存储器等待时间来描述指令请求单元600的实施例。从而,指令请求单元应该超前两个周期来确保缓冲器510、515被连续地重新加载。可以理解的是本发明可用于具有多种高速缓存等待时间的系统中,指令请求单元600将需要超前至少等于该高速缓存等待时间的若干周期来确保不会嵌入泡。当然,指令请求单元600可超前少于高速缓存等待时间。在这个实施例中,泡可被嵌入到流水线中。
指令请求单元600接收来自缓冲器510、515的指令数据,输入到一对准多路复用器615中。对准多路复用器615可将从缓冲器510、515接收的当前指令数据对准,并且输出从该指令数据中解析出的个别指令。在对准多路复用器615中的数据流在上面关于图5得到描述。当接收来自对准多路复用器615的一单个指令时,指令被预解码以产生宽度位。在块620中,从与该指令相关联的宽度位中解码指令的宽度(cur-width)。在一个实施例中,宽度位是2位信号,指示当前指令的宽度。对于2位信号,有四种可能的宽度值。例如,00宽度位表示指令无效,01宽度位表示16位指令,10宽度位表示32位指令,11宽度位表示64-位指令。
多路复用器628接收分支目标地址和缓冲器510、515中的指令位置的当前状态(cstate)。多路复用器628选择分支目标地址或者当前状态来用可能变为当前状态的任一分支目标地址的当前状态来载入触发器630。然后,在块625中该当前状态与当前指令的宽度结合。通过将当前状态与当前宽度结合,可确定下一条指令的起始位置(nstate)。这个位置信息接着被供应给第二对准多路复用器635,用于对准该下一条指令。该下一条指令位置信息还可在下一个时钟周期反馈到触发器630。在下一个时钟周期,该下一条指令位置变成当前指令位置,并且这个信息在触发器630中被更新。该下一条指令位置还被提供到转换块645,以帮助确定是否从第一缓冲器510到第二缓冲器515的转换已经发生。
第二对准多路复用器635接收来自缓冲器510′和515′的指令数据作为输入。缓冲器510′和515′可以和缓冲器510和515相同,或可包含新的数据。如果缓冲器510和515已经被取尽,缓冲器510′和515′可为下一条指令包含新数据。第二对准缓冲器635对准下一条指令的方法和第一对准缓冲器615对准第一指令的方法相同。该下一条指令的宽度然后在块640中被预解码,来确定对应的宽度位。然后,宽度信息(next_width)提供到块645中的转换逻辑。
转换逻辑判定在处理了下一条指令后,缓冲器510和515中的任一个是否将被清空。转换块645包括下一个状态位置和下一条指令宽度作为输入。转换块645然后根据该下一个状态位置和指令宽度判定在该下一条指令后缓冲器510′和515中的任一个是否将被取尽。例如,如果该下一个所指示的状态位置是16位缓冲器530的起始,以及该下一条指令宽度是64位,则转换块645判定指令将从16位缓冲器530、535、540和545中被取走,从而完全清空第一缓冲器510。转换块645可随后发送一信号到触发器650,指示第一缓冲器510能够被重新加载,该触发器可能产生一请求,请求存储器填充空的缓冲器510。
转换块645也可通过比较指向缓冲器520-555的指针的最高有效位(MSB)来确定缓冲器510、515被取尽。例如,16位缓冲器520-555中的每一个可具有一相关联的指针。因为有八个16位缓冲器,所述使用三位指针来唯一标识各个缓冲器。在一个实施例中,缓冲器520具有指针值为000,缓冲器525具有的指针值为001,缓冲器530具有的指针值为010,缓冲器535具有的指针值为011,缓冲器540具有的指针值为100,缓冲器545具有的指针值为101,缓冲器550具有的指针值为110,以及缓冲器555具有的指针值为111。从而,组成更大的缓冲器510的每个16位缓冲器520、525、530和535具有最高有效位是“0”的指针值。组成更大的缓冲器515的每个16位缓冲器540、545、550和555具有最高有效位是“1”的指针值。
如上所述,一指令可能占据多个16位缓冲器520-555。例如,一64位指令可能开始于缓冲器525中,结束于缓冲器540中。缓冲器525的指针值在指令的起始是001,而缓冲器540的指针值在指令的结尾是100。从而,缓冲器指针的最高有效位从“0”变化到“1”,从而,指示出从缓冲器510到缓冲器515的转换。通过比较指向缓冲器520-555的指针的最高有效位,可确定缓冲器510和515之间的转换。
在发明的另一个实施例中,使用计数器来管理为加载缓冲器而作出的请求的数量。每次作出一加载请求时,就使计数器加1。当缓冲器被清空时,计数器减1。当计数器的值等于缓冲器的数量时,本发明停止作出请求。因此,在发出一加载请求之前,可检查计数器来确定缓冲器是否能够接收数据。
本领域的技术人员将容易明白本发明的许多变化和修改。因此,在不脱离本发明的精神或本质特征的前提下,可以用其他具体形式来实施本发明。

Claims (24)

1.一种在处理器中对准指令的方法,其特征在于包括:
对准第一指令;
解码第一指令的大小;
基于第一指令的大小,确定第二指令的起始;
解码第二指令的大小;
确定处理第二指令是否将取空多个缓冲器中的一个;以及
如果处理第二指令取空多个缓冲器中的一个,则指示多个缓冲器中的这一个去接收其它的指令数据。
2.如权利要求1所述的方法,其特征在于,所述多个缓冲器划分成多个子缓冲器,所述方法还包括在所述多个子缓冲器中存储多条指令。
3.如权利要求2所述的方法,其特征在于还包括把指向多个子缓冲器的第一子缓冲器的指针的最高有效位与指向该多个子缓冲器中的第二子缓冲器的指针的最高有效位相比较,来判定处理多条指令中的一条是否将取空缓冲器。
4.如权利要求2所述的方法,其特征在于还包括在处理指令之前,跨越多个子缓冲器存储第一指令。
5.如权利要求1所述的方法,其特征在于还包括把第一指令的长度添加到当前指令位置,以确定第二指令的起始。
6.如权利要求1所述的方法,其特征在于还包括超前等于一高速缓存等待时间的若干数目的周期进行对准。
7.如权利要求1所述的方法,其特征在于所述处理器是数字信号处理器。
8.如权利要求1所述的方法,其特征在于还包括向存储器发出请求,请求重新加载多个缓冲器。
9.一种在处理器内的处理指令的方法,其特征在于包括:
在等于一高速缓存等待时间的若干周期内预测是否多个缓冲器中的一个将被取空指令数据;
如果多个缓冲器中的一个将被取空,则准备多个缓冲器中的这一个缓冲器加载其它的指令数据。
10.如权利要求9所述的方法,其特征在于还包括解码指令数据中第一指令的长度;
根据该第一指令的大小和位置,确定指令数据中第二指令的起始;以及
解码该第二指令的大小。
11.如权利要求9所述的方法,其特征在于多个缓冲器被划分为多个子缓冲器。
12.如权利要求11所述的方法,其特征在于通过把指向多个子缓冲器的第一个子缓冲器的指针的最高有效位与指向多个子缓冲器的第二个子缓冲器的指针的最高有效位相比较,来完成预测,以确定处理多条指令中的一条是否将取空多个缓冲器中的一个。
13.如权利要求9所述的方法,其特征在于还包括对准指令数据。
14.如权利要求9所述的方法,其特征在于所述处理器是数字信号处理器。
15.如权利要求9所述的方法,其特征在于还包括发出一请求,以重新加载多个缓冲器。
16.一种处理器,其特征在于包括:
适合存储包括多条指令的第一指令数据的多个缓冲器;
适合对准多条用于执行的指令的指令请求单元;
适合确定多条指令的宽度的解码器;
适合预测多个缓冲器中的一个何时将被取空的转换检测器,该转换检测器适合发送一信号来指示多个缓冲器中的一个来载入第二指令数据。
17.如权利要求16所述的处理器,其特征在于所述多个缓冲器被划分为多个子缓冲器。
18.如权利要求17所述的处理器,其特征在于转换检测器把指向多个子缓冲器的第一个子缓冲器的指针的最高有效位与指向多个子缓冲器的第二个子缓冲器的指针的最高有效位相比较,来确定处理多条指令中的一条是否将取空缓冲器。
19.如权利要求16所述的处理器,其特征在于处理器超前等于一高速缓存等待时间的若干周期而进行对准。
20.如权利要求16所述的处理器,其特征在于处理器是数字信号处理器。
21.一种设备,包括驻留于机器可读存储介质上的指令,用于在机器系统中对准处理器中的指令,其特征在于这些指令使机器:
在多个缓冲器中接收包含指令的数据;
解码第一指令的大小;
根据第一指令的大小,确定第二指令的起始;
解码第二指令的大小;
确定处理第二指令是否将取空多个缓冲器中的一个;以及
如果处理第二指令取空多个缓冲器的一个,则指示多个缓冲器的这一个去接收其它的指令数据。
22.如权利要求21所述的设备,其特征在于所述多个缓冲器划分成多个子缓冲器,所述多条指令存储在所述多个子缓冲器中。
23.如权利要求22所述的设备,其特征在于把指向多个子缓冲器的第一子缓冲器的指针的最高有效位与指向多个子缓冲器的第二子缓冲器的指针的最高有效位相比较,来确定处理多条指令中的一条是否将取空缓冲器。
24.如权利要求22所述的设备,其特征在于在处理指令之前,跨越多个子缓冲器存储第一指令。
CNB018164684A 2000-09-28 2001-09-26 支持可变长度指令执行的方法和设备 Expired - Fee Related CN1219252C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/675,817 2000-09-28
US09/675,817 US7082516B1 (en) 2000-09-28 2000-09-28 Aligning instructions using a variable width alignment engine having an intelligent buffer refill mechanism
PCT/US2001/030318 WO2002027473A2 (en) 2000-09-28 2001-09-26 Method and apparatus supporting variable length instruction execution

Publications (2)

Publication Number Publication Date
CN1466714A CN1466714A (zh) 2004-01-07
CN1219252C true CN1219252C (zh) 2005-09-14

Family

ID=24712086

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018164684A Expired - Fee Related CN1219252C (zh) 2000-09-28 2001-09-26 支持可变长度指令执行的方法和设备

Country Status (6)

Country Link
US (2) US7082516B1 (zh)
JP (1) JP3701652B2 (zh)
KR (1) KR100545499B1 (zh)
CN (1) CN1219252C (zh)
TW (1) TW569137B (zh)
WO (1) WO2002027473A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458762C (zh) * 2004-08-04 2009-02-04 松下电器产业株式会社 阵列式运算装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
US7376152B2 (en) * 2004-03-30 2008-05-20 Via Telecom Co., Ltd. Method and/or architecture implemented in hardware for the adjustment of messages with indeterministic length
US8416793B2 (en) * 2005-03-29 2013-04-09 Alcatel Lucent Method and apparatus for queue depth detection in a memory system
US8243798B2 (en) * 2006-12-20 2012-08-14 Intel Corporation Methods and apparatus for scalable video bitstreams
RU2556364C1 (ru) * 2014-03-18 2015-07-10 Федеральное государственное бюджетное учреждение науки Научно-исследовательский институт системных исследований Российской академии наук (НИИСИ РАН) Гибридный микропроцессор

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
JPS60117335A (ja) 1983-11-30 1985-06-24 Hitachi Ltd 情報処理装置
US5113515A (en) 1989-02-03 1992-05-12 Digital Equipment Corporation Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
DE69030648T2 (de) 1990-01-02 1997-11-13 Motorola Inc Verfahren zum sequentiellen Vorabruf von 1-Wort-, 2-Wort oder 3-Wort-Befehlen
US5809272A (en) * 1995-11-29 1998-09-15 Exponential Technology Inc. Early instruction-length pre-decode of variable-length instructions in a superscalar processor
US5822559A (en) * 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5845099A (en) 1996-06-28 1998-12-01 Intel Corporation Length detecting unit for parallel processing of variable sequential instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
JP3641327B2 (ja) * 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6367003B1 (en) * 1998-03-04 2002-04-02 Micron Technology, Inc. Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method
US6260134B1 (en) * 1998-11-02 2001-07-10 Advanced Micro Devices, Inc. Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte
IT1303866B1 (it) 1998-11-25 2001-03-01 Italtel Spa Filtro disaccoppiante per rice-trasmittitori ad alta frequenzaautocompensato in temperatura
EP1050796A1 (en) 1999-05-03 2000-11-08 STMicroelectronics S.A. A decode unit and method of decoding
US6981127B1 (en) * 1999-05-26 2005-12-27 Infineon Technologies North America Corp. Apparatus and method for aligning variable-width instructions with a prefetch buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458762C (zh) * 2004-08-04 2009-02-04 松下电器产业株式会社 阵列式运算装置

Also Published As

Publication number Publication date
US7082516B1 (en) 2006-07-25
US7360059B2 (en) 2008-04-15
KR100545499B1 (ko) 2006-01-24
TW569137B (en) 2004-01-01
US20060149928A1 (en) 2006-07-06
WO2002027473A3 (en) 2002-08-22
WO2002027473A9 (en) 2003-07-17
KR20030036855A (ko) 2003-05-09
WO2002027473A2 (en) 2002-04-04
JP3701652B2 (ja) 2005-10-05
CN1466714A (zh) 2004-01-07
JP2004510244A (ja) 2004-04-02

Similar Documents

Publication Publication Date Title
US7036000B2 (en) Valid bit generation and tracking in a pipelined processor
US7360059B2 (en) Variable width alignment engine for aligning instructions based on transition between buffers
CN1288551C (zh) 流水线处理器中的指令地址生成和跟踪
JP3818965B2 (ja) ソフトウェアおよびハードウェアのループ圧縮を有するfifo書込み/lifo読取り追跡バッファ
US6976151B1 (en) Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination
CN1543603A (zh) 基于指令宽度的高效仿真调度
CN1261864C (zh) 指令解码的多个源
US7069420B1 (en) Decode and dispatch of multi-issue and multiple width instructions
JP3844465B2 (ja) イベント・ベクトル・テーブルのオーバーライド
KR20050026810A (ko) 비트스트림 데이터 처리를 위한 인터페이스 장치 및 방법

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050914

Termination date: 20200926