CN1382274A - 微处理机的延迟时隙控制机构 - Google Patents

微处理机的延迟时隙控制机构 Download PDF

Info

Publication number
CN1382274A
CN1382274A CN00813118A CN00813118A CN1382274A CN 1382274 A CN1382274 A CN 1382274A CN 00813118 A CN00813118 A CN 00813118A CN 00813118 A CN00813118 A CN 00813118A CN 1382274 A CN1382274 A CN 1382274A
Authority
CN
China
Prior art keywords
delay
microprocessor
slot
instruction
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN00813118A
Other languages
English (en)
Other versions
CN1153131C (zh
Inventor
R·布卢姆
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.)
Intel Germany Holding GmbH
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1382274A publication Critical patent/CN1382274A/zh
Application granted granted Critical
Publication of CN1153131C publication Critical patent/CN1153131C/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

一种由微处理机在运行时间插入动态数量的隐含nop指令的方法。该隐含nop指令是未在该程序本身中置入实际nop指令由该微处理机执行的非操作指令。本发明的方法使得为每个多周期指令的出现自动地计算并执行适当数量的隐含nop指令。以后,词自动地是指没有程序员或高级语言编译程序直接干预而产生的过程。由微处理机通过从所需的延迟时隙的总数减去该IDSI的数量自动地计算隐含nop指令的该适当数量。最好由汇编程序确定该IDSI的数量,然后,使该微处理机可以得到。更好的是,由该汇编程序将这个数量放置在编码指令中的延迟时隙区里,然后由该微处理机从该延迟时隙区中检索。因此,本发明的方法使微处理机能够自动地插入需要数量的隐含nop指令,不需要额外的存储器资源,也不迫使程序员或高级语言编译程序向每个未用延迟时隙中插入nop指令。

Description

微处理机的延迟时隙控制机构
发明的领域和背景
本发明是一种用于将灵活数量的有用指令插入延迟时隙的方法,具体地是用于自动地和动态地确定要插入到执行多周期指令的延迟时隙的附加nop(非操作)指令的数量,实际上不将现行的nop指令置入该程序本身,而同时将有用的指令置入延迟时隙。本发明的方法减少了存储该程序所需的存储器中的空间量,并且由于减少了读取操作的数量而节省了功耗。在取得这些好处的同时仍使这些延迟时隙被使用。
大约在二十五年前引入了微处理机,已迅速扩展到许多不同的技术领域。实时微处理机技术的进步,特别是在通信领域中的发展,促进了诸如蜂窝电话,应答机和声频系统等复杂设备的批量生产。现在正继续地寻找生产这些设备的更有效的方法,以便增加其技术性能,同时减少开发和生产的成本。
微处理机执行机器码指令,它们是从由程序员或码产生器书写的程序码中得到的。在单个时钟周期里执行许多现行微处理机的指令。然而,一些指令需要多于一个的时钟周期来执行,称之为多周期指令。通常的多周期指令包括条件转移指令和其它程序流指令。在多周期指令生效之前经过的时钟周期被浪费了。将这些时钟周期称为延迟时隙。
图1表示背景技术程序的指令序列10,表明了为多周期指令14的三个所需空周期12的插入所浪费的时间。每个空周期12并不产生单周期指令16的执行,只是插入使多周期指令14执行。很清楚,指令序列10代表为了使多周期指令14执行的比较低效的方法。
开发了微处理机的流水线体系结构以便以更大的效率并行执行更多的指令。流水线微处理机能够同时运行多个指令,使得该微处理机在这些空余时隙期间不空闲。可由程序员将其它的指令插入到这些延迟时隙,以便使用以前浪费的为执行多周期指令所需的时间。该微处理机在这些延迟时隙期间单独地读取这些延迟时隙指令,将这些指令装载到管道(pipe),然后同时执行这些指令。这些插入指令通常与为其原来产生延迟时隙的多周期指令无关。而这些指令执行诸如控制功能,对于随后指令的装入的登记等其它任务。
图2表示由具有根据背景技术的流水线体系结构的微处理机执行的重写的图1的程序。现在该程序的指令序列18以在多周期指令14的周期4,5和6中执行的三个指令20为特征。因此执行图2的程序比执行图1的更有效。
然而,当前该流水线微处理机体系结构具有许多缺点。例如,如果不将有用的指令插入这些延迟时隙,则由多周期指令浪费了保持该程序的时间和空间。如果只是这些,还不是全部,用有用的指令填充延迟时隙,必须用nop(非操作)指令装入当前未用的延迟时隙。Nop指令需要存储空间但却不执行任何有用的功能。因为经常需要这种nop指令,故只是减轻了该延迟时隙问题,但并未解决。因此,在所需的附加存储器空间与浪费的时间量之间有一个折衷选择。
除了浪费时间和存储器空间的问题之外,还必须考虑程序员的需要。该程序员应以有用的指令填充尽可能多的延迟时隙,以便最佳化性能,但发现有用的指令很少是简单的。插入有用的指令到所有的延迟时隙的过程是费时间的,很难作成文献并很难保持。程序员花费大量的时间寻找置入这些时隙中的有用指令。而且,诸如C编译程序的比较高级语言编译程序必定试图利用有用指令填充延迟时隙。即使用最佳算法,这种编译程序也不能使用所有的延迟时隙,从而浪费了存储该程序所需的额外空间。
程序流指令是这种多周期指令的一个例子,并且在通常的通信应用中平均每18个单周期指令出现1个程序流指令。可将这个速率用于计算预期的浪费存储器的量,根据下面的公式1可知一个平均程序流指令产生3个需要的nop指令:
公式1表示例如一个18kb大小的程序浪费了3Kb的存储器,而不包括由其它类型的多周期指令所浪费的存储器。这种存储器浪费减小了相关设备的工作效率,并增加了生产成本。因此,多周期指令产生三种问题,包括浪费时间和程序存储器,并增加了程序员试图使用这些延迟时隙用于指令所需的时间量。
以比较高的速率出现的多周期指令突出了该流水线微处理机体系结构的缺点。现在,在现有技术中可利用两种不同的处理多周期指令的方法。第一种方法不使用任何延迟时隙,从而浪费了时间但却节省了存储器,因为该微处理机可运行不明显包括在该程序中的nop指令。第二种方法需要通过插入现行指令或nop指令而使用的所有延迟时隙。如果nop指令增加则使所需要的存储器空间增加。然而,如果有效地插入了这些现行指令,则使执行该程序所需的时间量减少。
当不要求该程序执行的高性能(对于时间)时选择第一现有技术的方法。该程序执行的高性能,执行该程序所需的时间量换取了存储器节约和程序员编程的容易。设计第二现有技术的方法用于必须有效执行的高性能应用。程序员所关心的是程序的快速有效执行,因此必须将有用的指令插入到所有的延迟时隙。如果使用所有的延迟时隙这是一个可获得性能有效性并因而减少执行该程序所需的时间量的乏味的工作,但是如果通常所用的不是所有的延迟时隙则产生了存储该程序所需的扩展存储量的负担。未能使用所有的延迟时隙使得将nop指令插入到其余未用的所有延迟时隙中。因此,没有一个处理多周期指令的现有技术方法提供所有这三个优点:速度、存储器的经济和有效使用,和编程容易。
因此,通过只将明显有用的指令由程序员或高级语言编译程序插入延迟时隙的更有效的处理延迟时隙的方法,将是需要和有用的,使得在该微处理机的操作期间以基本上自动的方法,将隐含的nop指令插入,来完成剩余延迟时隙的数量,并使得更有效地使用与该微处理机相联系的存储器空间,同时改善了性能并减少了开发时间和成本,同时在保持这些有用指令的附加存储器空间的需要与在程序执行期间由这些隐含nop指令浪费的时间量之间提供了最佳的均衡。
发明的概述
本发明是在运行时间由微处理机插入动态数据的隐含nop指令的方法。该隐含nop指令是由微处理机执行的非操作指令,在该程序本身中不放置现行的nop指令。本发明的方法使得能自动地计算适当数量的nop指令,并在每当多周期指令出现时执行。以后,词“自动”是指没有程序员或代码产生器的直接干预而产生的过程。由微处理机通过从需要的延迟时隙的总数减去插入的延迟时隙指令(IDSI)的数量,来自动地计算适当数据的隐含nop指令。
本发明的方法具有优点:减少了存储该程序所需的存储器空间的数量;因为减少了读取操作而节省了功耗。而且,本发明在为保持这些指令的附加存储器空间的需求与在程序执行中浪费的时间量之间,以及在nop指令的插入与程序员插入有用的延迟时隙指令所需的附加时间之间,提供了最佳的均衡。最好由汇编程序计算该插入延迟时隙指令的数量,则该微处理机是可以做的。更好的是,由该汇编程序将这个数量置入延迟时隙区。然后由微处理机从该延迟时隙区中检索。因此,与图1的现有技术相比,本发明的方法使微处理机能够自动地插入所需数量的隐含nop指令,填充该多周期指令实施所需的周期,不需要额外的存储器资源,不强迫程序员或代码产生器(比如高级语言编译程序)插入nop指令到每个未用的延迟时隙中。在它们不是nop指令,隐含的或其它的意义上对于该多周期指令的插入延迟时隙指令是有用指令。
根据本发明,提供一种在多个指令的执行期间由微处理机自动地插入所需数量的nop指令的方法,该多个指令包括至少一个多周期指令,对于该至少一个多周期指令所需的延迟时隙的总数,该方法包括步骤:(a)确定与该至少一个多周期指令相关的插入延迟时隙指令(IDSI)的数量;(b)由微处理机通过从该延迟时隙的总数减去该IDSI的数量来计算所需的nop指令的数量;(c)由该微处理机执行该所需数量的nop指令。
最好,该至少一个多周期指令所需的延迟时隙的总数依赖于硬件。而且最好该方法还包括步骤:提供一个汇编程序,用于接收该多个指令并用于准备由该微处理机执行的该多个指令,在执行步骤(a)之前执行提供该汇编程序的步骤,其中步骤(a)还包括步骤:(I)在该至少一个多周期指令中提供一个延迟时隙区;(II)由汇编程序将该数量的IDSI放置在该延迟时隙区中;和(III)由该微处理机从该延迟时隙区检索该数量的IDSI。
根据本发明的另一实施方案,提供一种在多指令执行期间由微处理机自动地插入需要数量的nop指令的方法,该多个指令包括至少一个多周期指令,该方法包括步骤:(a)提供一种汇编程序,用于接收该多个指令;(b)向该微处理机提供该至少一个多周期指令所需的延迟时时隙的总数;(c)由该汇编程序确定与该至少一个多周期指令相关的IDSI的数量;(d)将该数量的IDSI传送给该微处理机;(e)由该微处理机通过从该延迟时隙的总数减去该数量的IDSI来计算所需的nop指令的数量;和(f)由该微处理机执行这些所需数量的nop指令。此后,词“高级语言编译程序”是指编程语言的编译程序,例如C或C++,它比汇编编程语言更高级。
附图简述
从下面参考附图的本发明最佳实施方案的详细描述将会更好地了解其上述和其它目的,方面和优点,其中:
图1是用于处理多周期指令的第一现有技术方法的示意框图,没有延迟时隙;
图2是用于处理多周期指令的第二现有技术方法的示意框图,具有延迟时隙;
图3是说明根据本发明的有效延迟时隙使用的方法的示意框图;
图4是通过与图2所示的类似结构(尽管未使用所有的延迟时隙)执行图3的指令的较少有效的现有技术方法的示意框图;和
图5A是根据本发明插入nop延迟时隙的示例方法的流程图;
图5B是根据图5A中所示的方法构成的示例性程序的部分的表示。
参考附图及其描述可更好地理解根据本发明的有效延迟时隙使用的方法的原理和操作,应知道,这些图只用于说明的目的而不是对本发明的限定。
现在参考附图,是表示根据本发明的有效延迟时隙使用的方法的示意框图。如图所示,所示的指令序列22至少代表程序的一部分,以多周期指令24为特征。指令序列22的特征在于只有一个插入的延迟时隙指令(IDSI)26,在多周期指令24的延迟时隙期间执行它。用动态数量的隐含nop指令来填充其余的延迟时隙。隐含nop指令是未置入该程序中的nop指令,使得未用的这些延迟时隙不需要将nop指令插入到存储器中。该隐含nop指令的数量动态地变化为等于该未用延迟时隙的数量。因此,程序员或高级语言编译程序用IDSI或nop指令不完全填充所有的延迟时隙。
插入动态数量的隐含nop指令的优点包括能够只插入与要求一样多的有用延迟时隙,从而在减少程序的所需存储器数量的同时减少了浪费的周期。另外,程序员能够更快更有效地编程和调试这些指令,因为只是利用有用的延迟时隙指令部分地使用了延迟时隙,从而减少了开发时间量开发特定产品所需的工时。
相比之下,执行这种多周期指令的当前现有技术方法是明显的低效。例如,图4是表示图3指令的根据现有技术的示意框图,而不实施本发明的方法。如图所示,所示的指令序列28的特征也在于多周期指令24和一个延迟时隙指令26。然而,为了填充多周期指令24的预定数量的延迟时隙,该现有技术方法需要插入两个nop指令30,从而浪费了两个延迟时隙。因此,很明显图4的现有技术方法与本发明的方法相比是低效的。
图5A是表示通过微处理机操作的本发明方法的一例的流程图。为了使该微处理机执行多周期指令,则对于每个延迟时隙该微处理机必须插入延迟时隙指令或nop指令。对于本发明,这些nop指令是根据图5A中所示的方法确定的动态确定数量的隐含nop指令。
简而言之,如步骤1中所示,对于该微处理机可得到多周期指令所需延迟时隙的总数量(TOS)。该所需延迟时隙的总数量是依赖于硬件的。在步骤2,该汇编程序确定对于该多周期指令的插入延迟时隙指令(IDSI)的数量。在它们不是nop指令,隐含的或其它的意义上,这些是有用的指令。当多周期指令执行时,隐含nop指令的目的是填充IDSI未使用的时间。
最好,该汇编程序通过对该多周期指令的每个插入的有用延迟时隙指令进行计数未确定插入的延迟时隙指令的数量(该IDSI数量)。
在步骤3,最好该汇编程序将该IDSI数量(使用的延迟时隙的数量)置入该编码多周期指令的延迟时隙区中。该指令的延迟时隙区是优选的用于存储该IDSI数量的附加区,通常(尽管不是必须的)是2-3比特长。
在步骤4,由该汇编程序将该对于该多周期指令的IDSI数量给到该微处理机。最好,该微处理机通过在运行期间检查该编码指令的延迟时隙区获取该IDSI数量以计算所需的隐含nop指令的数量(该UUDS数量,即未用延迟时隙的数量)。
在步骤5,该微处理机通过从该TDS数量(所需的延迟时隙的总数)减去该IDSI数量(插入的延迟时隙指令的数量)来计算该UUDS数量,如公式2所示:UUDS=TDS-IDSI。
在步骤6,该微处理机在该多周期指令的执行期间插入所需数量的隐含nop指令。
现在对于图5B描述图5A方法操作的例子。图5B表示具有主程序34和子程序36的程序32的一部分。同时示出多个单时隙指令38。示出了调用指令40,它用名称Routine-name调用子程序36(第2程序)。通过返回指令42终止子程序36的操作。例如调用指令40,它在转移之前存储当前环境,以调用指令40生效之前需要四个时钟周期。调用指令40的代码需要一个周期,三个延迟时隙需要三个时钟周期。在主程序34恢复控制之前,返回指令42必须还原该环境,需要例如六个时钟周期。该返回指令42的代码需要一个时钟周期,五个延迟时隙需要五个时钟周期。因此,调用指令40和返回指令42都是多周期指令。
为了计算对于调用指令40和返回指令42的操作所需的隐含nop指令的数量,该微处理机应知道对于每个多周期指令的出现插入延迟时隙的延迟时隙指令的数量。正如对于图5A所描述的,该微处理机从该编码指令的延迟时隙区检索这个数量。
在这个例子中,在该三个所需的延迟时隙之外,由程序员为调用指令40插入了单个的有用延迟时隙指令(IDSI)44。在该五个所需延迟时隙之外为返回指令42插入了两个有用的延迟时隙指令44。
在编译程序32的该过程中,该汇编程序对为调用指令40插入的延迟时隙指令44的数量进行计数,在此例中例如为数量1。因此,该汇编程序将数量1装入调用指令40的该延迟时隙区。将这个信息装入存储器,用于在执行期间与该微处理机通信。因为需要三个延迟时隙,该微处理机执行两个隐含nop指令,如对于图5A所述的。
同样,该汇编程序还对为返回指令42插入的延迟时隙指令44的数量进行计数,在这个例子中是数量2。因此,该汇编程序将该数量2装入返回指令42的延迟时隙区。因为需要五个延迟时隙,该微处理机执行三个隐含的nop指令,也如对于图5A所述的。
因此,本发明的用于延迟时隙控制机构的方法具有如下的优点。第一本发明的方法使该程序的性能与该程序所需的存储器空间的量之间的折衷最佳化。而本发明提供了在保持这些有用指令的附加存储器空间的需要与在程序执行期间所浪费的时间量之间的最佳均衡,以及在nop指令的插入与程序员插入有用延迟时隙指令所需的附加时间之间的最佳均衡。
第二,本发明的方法避免了要求程序员,高级语言编译程序或其它自动机器语言代码编程工具为不包含有用延迟时隙指令的每个延g迟时隙插入nop指令的损失,使程序员能够只将该程序需要的有用延迟时隙指令插入。因此,在避免用IDSI不填充所有延迟时隙的损失与仍得到使用至少一部分IDSI可用的延迟时隙的好处之间保持均衡。
应理解,上面的描述只是作为例子,在本发明的精神和范围内可有许多其它的实施方案。

Claims (8)

1.一种在多个指令的执行期间由微处理机自动地插入所需数量的nop(非操作)指令的方法,该多个指令包括至少一个多周期指令,该至少一个多周期指令所需的延迟时隙的总数量,该方法包括步骤:
(a)确定与该至少一个多周期指令相关的插入延迟时隙指令(IDSI)的数量;
(b)由该微处理机通过从该延迟时隙的总数减去所述的IDSI的数量来计算该所需的nop指令的数量;
(c)由该微处理机执行这些所需数量的nop指令。
2.根据权利要求1的方法,该至少一个多周期指令所需的延迟时隙的总数是依赖于硬件的。
3.根据权利要求1的方法,还包括步骤:提供汇编程序,用于接收该多个指令和准备由该微处理机执行的该多个指令;提供在所述步骤(a)执行之前执行的所述汇编程序,其中步骤(a)还包括步骤:
(i)由所述汇编程序对所述数量的IDSI进行计数;和
(ii)传送所述数量的IDSI给该微处理机。
4.根据权利要求3的方法,其中将所述数量的IDSI传送给该微处理机的步骤还包括步骤:
(I)在该至少一个多周期指令中提供延迟时隙区;
(II)由所述汇编程序将所述数量的IDSI置入所述的延迟时隙区;和
(III)由该微处理机从所述延迟时隙区检索所述数量的IDSI。
5.一种在多个指令执行期间由微处理机自动地插入需要数量的nop指令的方法,该多个指令包括至少一个多周期指令,该方法包括步骤:
(a)提供一种汇编程序,用于接收该多个指令;
(b)向该微处理机提供该至少一个多周期指令所要求的延迟时隙的总数;
(c)由所述汇编程序确定与该至少一个多周期指令相关的IDSI的数量;
(d)传送所述数量的IDSI给该微处理机;
(e)由该微处理机通过从所述延迟时隙的总数减去所述IDSI的数量来计算所需的nop指令的数量;和
(f)由该微处理机执行该所需数量的nop指令。
6.根据权利要求5的方法,其中该至少一个多周期指令所需的延迟时隙的总数是依赖于硬件的。
7.根据权利要求5的方法,其中步骤(a)还包括步骤:
(i)由所述的汇编程序对所述数量的IDSI进行计数。
8.根据权利要求7的方法,其中将所述数量的IDSI传送给该微处理器的步骤还包括步骤:
(i)在该至少一个多周期指令中提供延迟时隙区;
(ii)由所述汇编程序将所述数量的IDSI置入所述延迟时隙区;和
(iii)由该微处理机从所述的延迟时隙区检索所述数量的IDSI。
CNB00813118XA 1999-05-26 2000-04-27 用于在多个指令的执行期间由微处理机自动插入所需数量的空操作指令的方法 Expired - Fee Related CN1153131C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/318,631 1999-05-26
US09/318,631 US6275929B1 (en) 1999-05-26 1999-05-26 Delay-slot control mechanism for microprocessors

Publications (2)

Publication Number Publication Date
CN1382274A true CN1382274A (zh) 2002-11-27
CN1153131C CN1153131C (zh) 2004-06-09

Family

ID=23238969

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB00813118XA Expired - Fee Related CN1153131C (zh) 1999-05-26 2000-04-27 用于在多个指令的执行期间由微处理机自动插入所需数量的空操作指令的方法

Country Status (6)

Country Link
US (1) US6275929B1 (zh)
EP (1) EP1190308A1 (zh)
JP (1) JP3639557B2 (zh)
KR (1) KR100479281B1 (zh)
CN (1) CN1153131C (zh)
WO (1) WO2000073896A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425053B (zh) * 2007-11-02 2010-08-18 北京中电华大电子设计有限责任公司 一种cpu周期寄存器的实现方法
CN101866281A (zh) * 2010-06-13 2010-10-20 清华大学 一种多周期指令执行方法和装置
CN105808211A (zh) * 2013-02-11 2016-07-27 想象力科技有限公司 推测性加载分发

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564316B1 (en) * 1998-09-10 2003-05-13 Parthusceva Ltd. Method and apparatus for reducing code size by executing no operation instructions that are not explicitly included in code using programmable delay slots
US6883166B1 (en) * 2000-11-21 2005-04-19 Hewlett-Packard Development Company, L.P. Method and apparatus for performing correctness checks opportunistically
US6880072B1 (en) * 2001-05-08 2005-04-12 Lsi Logic Corporation Pipelined processor and method using a profile register storing the return from exception address of an executed instruction supplied by an exception program counter chain for code profiling
JP3738842B2 (ja) * 2002-06-04 2006-01-25 富士通株式会社 遅延分岐機能を備えた情報処理装置
US20050071830A1 (en) * 2003-09-30 2005-03-31 Starcore, Llc Method and system for processing a sequence of instructions
JP2005149297A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp プロセッサおよびそのアセンブラ
US7310741B2 (en) * 2004-08-17 2007-12-18 Hewlett-Packard Development Company, L.P. Phase adjusted delay loop executed by determining a number of NOPs based on a modulus value
US7318478B2 (en) * 2005-06-01 2008-01-15 Tiw Corporation Downhole ball circulation tool
US7434625B2 (en) * 2005-06-01 2008-10-14 Tiw Corporation Downhole flapper circulation tool
JP4680876B2 (ja) * 2006-12-11 2011-05-11 ルネサスエレクトロニクス株式会社 情報処理装置及び命令フェッチ制御方法
KR100867269B1 (ko) 2007-02-22 2008-11-06 삼성전자주식회사 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서
KR100875836B1 (ko) 2007-03-23 2008-12-24 삼성전자주식회사 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법
US20140180848A1 (en) * 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Estimating Point Of Sale Wait Times
KR20180031266A (ko) * 2016-09-19 2018-03-28 삼성전자주식회사 전자 장치, vliw 프로세서 및 그 제어 방법들

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
JP3532975B2 (ja) * 1993-09-27 2004-05-31 株式会社ルネサステクノロジ マイクロコンピュータおよびそれを用いて命令を実行する方法
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts
WO1998006042A1 (en) * 1996-08-07 1998-02-12 Sun Microsystems, Inc. Wide instruction unpack method and apparatus
US5958044A (en) * 1997-01-24 1999-09-28 Texas Instruments Incorporated Multicycle NOP
US5964867A (en) * 1997-11-26 1999-10-12 Digital Equipment Corporation Method for inserting memory prefetch operations based on measured latencies in a program optimizer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425053B (zh) * 2007-11-02 2010-08-18 北京中电华大电子设计有限责任公司 一种cpu周期寄存器的实现方法
CN101866281A (zh) * 2010-06-13 2010-10-20 清华大学 一种多周期指令执行方法和装置
CN101866281B (zh) * 2010-06-13 2013-05-22 清华大学 一种多周期指令执行方法和装置
CN105808211A (zh) * 2013-02-11 2016-07-27 想象力科技有限公司 推测性加载分发
CN105808211B (zh) * 2013-02-11 2019-01-25 美普思技术有限责任公司 用于将程序中的加载指令分发到数据高速缓存的方法和设备

Also Published As

Publication number Publication date
CN1153131C (zh) 2004-06-09
EP1190308A1 (en) 2002-03-27
JP2003521761A (ja) 2003-07-15
KR20020003882A (ko) 2002-01-15
WO2000073896A1 (en) 2000-12-07
JP3639557B2 (ja) 2005-04-20
US6275929B1 (en) 2001-08-14
KR100479281B1 (ko) 2005-03-29

Similar Documents

Publication Publication Date Title
CN1153131C (zh) 用于在多个指令的执行期间由微处理机自动插入所需数量的空操作指令的方法
CN1221892C (zh) 流水线微处理器的循环高速缓冲存储器及高速缓存控制器
US8990827B2 (en) Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels
CN1306399C (zh) 用于网络处理器的虚拟机
Appel et al. Optimal spilling for CISC machines with few registers
Martorell et al. Thread fork/join techniques for multi-level parallelism exploitation in NUMA multiprocessors
CN102053817B (zh) 用于执行乘法累加运算的设备和方法
US20030200539A1 (en) Function unit based finite state automata data structure, transitions and methods for making the same
CN101814039A (zh) 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
EP0428560A1 (en) Machine process for translating programs in binary machine language into another binary machine language
CN106843993B (zh) 一种逆向解析gpu指令的方法及系统
JPH04330527A (ja) プログラムの最適化方法及びコンパイラ・システム
CN102880449B (zh) 一种超长指令字结构下延迟槽调度方法及其系统
Plevyak et al. Type directed cloning for object-oriented programs
WO2020181670A1 (en) Control flow optimization in graphics processing unit
CN112487092A (zh) 一种基于区块链的智能合约调用方法及装置
Hall et al. XTAL: new concepts in program system design
RU2206119C2 (ru) Способ получения объектного кода
CN1235139C (zh) 基于j2ee的构件并行编译方法
Hamdan et al. A scheme for nesting algorithmic skeletons
CN100359471C (zh) 二进制翻译中的库函数调用处理方法
Iqbal Partitioning problems in heterogeneous computer systems
CN106325973B (zh) 虚拟机指令的解释执行方法和装置
CN1627253A (zh) 条件控制管理装置及方法
JP2629474B2 (ja) 並列パイプライン命令処理装置の命令実行処理方式

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: INFINEON TECHNOLOGIES AG

Free format text: FORMER OWNER: INFENNIAN TECHNOLOGIES AG

Effective date: 20110411

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: INFINEON TECHNOLOGIES WIRELESS COMMUNICATION SOLUT

Free format text: FORMER NAME: INFINEON TECHNOLOGIES AG

Owner name: LANTIQ DEUTSCHLAND GMBH

Free format text: FORMER NAME: INFINEON TECHNOLOGIES WIRELESS COMMUNICATION SOLUTIONS CO., LTD.

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: MUNICH, GERMANY TO: NEUBIBERG, GERMANY

CP01 Change in the name or title of a patent holder

Address after: German Neubiberg

Patentee after: Lantiq Deutschland GmbH

Address before: German Neubiberg

Patentee before: Infineon Technologies Wireless Solutions Ltd.

Address after: German Neubiberg

Patentee after: Infineon Technologies Wireless Solutions Ltd.

Address before: German Neubiberg

Patentee before: Infineon Technologies AG

TR01 Transfer of patent right

Effective date of registration: 20110411

Address after: German Neubiberg

Patentee after: Infineon Technologies AG

Address before: Munich, Germany

Patentee before: INFINEON TECHNOLOGIES AG

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180510

Address after: German Neubiberg

Patentee after: LANTIQ BETEILIGUNGS GmbH & Co.KG

Address before: German Neubiberg

Patentee before: Lantiq Deutschland GmbH

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

Termination date: 20180427