CN1777875B - 指令高速缓存管理的方法、高速缓冲存储器以及集成电路 - Google Patents

指令高速缓存管理的方法、高速缓冲存储器以及集成电路 Download PDF

Info

Publication number
CN1777875B
CN1777875B CN2004800109564A CN200480010956A CN1777875B CN 1777875 B CN1777875 B CN 1777875B CN 2004800109564 A CN2004800109564 A CN 2004800109564A CN 200480010956 A CN200480010956 A CN 200480010956A CN 1777875 B CN1777875 B CN 1777875B
Authority
CN
China
Prior art keywords
instruction
cache
program flow
speed cache
memory
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
CN2004800109564A
Other languages
English (en)
Other versions
CN1777875A (zh
Inventor
R·维斯特
G·A·斯拉文布格
J·-W·范德瓦尔德
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.)
Nytell Software LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1777875A publication Critical patent/CN1777875A/zh
Application granted granted Critical
Publication of CN1777875B publication Critical patent/CN1777875B/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

高速缓冲存储器中断服务例程(ISR)影响它们中断的指令流(301)的必要指令的置换;它被称为″指令高速缓存垃圾化″,因为在执行ISR(302)之前指令高速缓存(102)中所含的指令是通过ISR指令来重写的。为了降低指令高速缓冲存储器垃圾化,在执行期间将指令高速缓存动态地分区成第一存储器部分(501a)和第二存储器部分(501b)。第一存储器部分(501a)用于存储当前指令流(301)的指令,而第二存储器部分(501b)用于存储ISR(302)的指令。因此,ISR(302)仅仅影响第二存储器部分(501b)并且保持存储在第一存储器部分(501a)内的数据原封不动。这种指令高速缓存(102)的分区减少了处理器取出操作并且也降低了指令高速缓冲存储器(102)的功耗。

Description

指令高速缓存管理的方法、高速缓冲存储器以及集成电路
技术领域
本发明涉及处理器高速缓存的领域,更具体而言涉及处理器指令高速缓存的领域。
背景技术
在计算机系统中,使用高速缓冲存储器来减少处理器(CPU)对存储在只读存储器(ROM)或随机存取存储器(RAM)形式的主存储器内的数据和指令形式的信息的访问时间。高速缓存是包含存储在主存储器中的特定数据段和指令段的复本的片上存储体。典型地,有两种类型的高速缓存,数据类型的和指令类型的;然而,在本篇公开内容内,仅仅针对解决指令高速缓存。
指令高速缓存包含供CPU执行的代码段。每当CPU执行已驻留在该高速缓存中的代码时,例如当执行形成循环的指令序列时,每当执行这些循环指令时,循环的执行比访问主存储器以读取所有这些循环指令更快。然而,当这些指令末存储在高速缓冲存储器中时,那么就会发生高速缓存未中并且CPU必须进行等待直到将所需的数据从主存储器中取出到高速缓冲存储器为止。一旦将数据取出到高速缓冲存储器中,CPU就恢复指令的执行。令人遗憾的是,在这些取出操作期间,CPU在等待所需数据时引起停滞循环周期(stall cycle),并且这浪费了宝贵的CPU处理带宽。
在取出操作期间,数据是以具有块大小的块的形式从主存储器中取出的。块大小定义了在一次操作中从主存储器取出的数据量。高速缓存按照高速缓存区块(cache way),以及高速缓存块的高速缓存集合被组织。取决于处理器正在执行的指令的指令地址,从存储器取出的具有块大小的数据被存储在高速缓存集合内的存储单元当中。高速缓存集合内的存储单元取决于指令地址。用来存储数据块的高速缓存区块取决于高速缓冲存储器的高速缓存控制器所使用的高速缓存置换算法。因此,例如,指令地址的第11位一直到第6位确定了用于存储从主存储器取出的数据的高速缓存集合。在这个示例中,高速缓存集合是由第11位一直到第6位来定义的,并且适用于具有总高速缓存大小为32KB的高速缓存,其具有8路联合(way associativity)以及64字节的块大小。因此,这类高速缓存具有64个高速缓存集合,并且每一个都具有8行--高速缓存区块联合--其中每一行长度为64字节。
典型地,在高速缓冲存储器中,存在用于以新取出的数据块来置换高速缓存内所存储的数据的特定置换策略。高速缓存控制器确定8个高速缓存行中的哪一个将在高速缓冲存储器中以新取出的数据块来置换,对此,高速缓存控制器硬件例如实现最近最少使用(LRU)过程,其中高速缓存控制器硬件确定哪一个高速缓存行最长时间尚未被访问并且确定哪一个高速缓存行最可能不是后续程序流程所需的。然后,将新取出的数据置于这个高速缓存行中。
中断服务程序(ISR)是包含每当服务于中断时执行的可执行指令的指令数据段。ISR中断由CPU常规执行的当前指令流,然后CPU服务于ISR中所含的指令,并且典型地,一旦ISR结束就恢复当前的任务。当然,当ISR影响处理器的后续任务时有时会恢复另一个任务,其中操作系统的任务调度程序典型地对此进行处理。令人遗憾的是,ISR影响高速缓存内容并因此对它们中断的指令流的执行时间有显著的影响。令人遗憾的是,被中断的指令流当其恢复时往往需要从主存储器中取出一些预先存储在高速缓存中的指令,因为ISR已经用它自己的指令数据置换了那个指令数据。因此,为了恢复被中断的指令流的执行,ISR增加了要执行的取出操作的次数。典型地,ISR由于简单的性质和它执行所需的速度之原因而在它们的指令内不包含循环。因此,它们几乎没有理由去应用指令高速缓存。高速缓存的区块联合,同LRU置换策略相结合,可能会导致ISR置换所有现有的高速缓存指令数据,然而通过不让ISR使用完全LRU,单个高速缓存区块的再使用或可用区块的子集往往会得到系统更佳的总体性能。由于ISR的非循环性质,它最好是让ISR从高速缓存置换它自己的指令数据,而不是置换在ISR启动之前就存在的指令数据。典型地,使用带有ISR的指令高速缓存的好处在于:当ISR指令被加载到高速缓存中时,较多一些的指令也被取出到指令高速缓冲存储器中,由此缩短了ISR的执行时间。
“工作集”是为了使处理器有效地执行当前任务而需要对过程有用的指令集合。例如,循环过程中所含的指令的工作集是从循环开始到循环结束所执行的大量指令。然而,在某些情况下,工作集可能会超出指令高速缓存的尺寸,因此取出操作用用新取出的指令置换了指令高速缓存内所存储的指令。令人遗憾的是,这由于有限的高速缓存大小而重写了指令高速缓存中一些预先存储的指令。这种必要指令的置换被本领域的技术人员称作为“指令高速缓存垃圾化”,因为在执行ISR之前高速缓存中所含的指令被ISR的指令改写。因此,ISR的执行类似于扩大工作集,因为为了有效地执行程序而需要额外的取出。在这两种情况下,为了由CPU处理指令,额外的取出操作是必要的,因为被中断的流典型地需要具有取出的另外数据以便恢复它的操作。当然,不仅仅ISR中断有效处理,与ISR有相似高速缓存特征而且在其中不包含任何循环指令的其它代码段也用来干扰当前正在执行的程序的工作集。
例如,在菲利普数字视频平台(DVP)中,使用了两个CPU芯片,其中一个芯片是RISC而另一个是VLIW(超长指令字)处理器,比如是执行所有视频和音频程序的协处理器。然而,在由这个VLIW处理数据期间,相对大部分的VLIW CPU能力由于指令高速缓存垃圾化而被浪费。典型地,大半的CPU能力被由指令高速缓存垃圾化和对主存储器的不良访问而引起的停滞循环周期消耗。处理能力降低的理由之一可能是由于DVP的驱动器模型,产生了在ISR中执行的大量代码段。由于自主存储器进行被垃圾化指令的许多次重新加载,主存储器带宽需求也随之增加。
EP 0856797公开了一种在处理器能够执行多个处理的系统中操作高速缓冲存储器的方法,其中每个处理包括一序列指令。在该方法中,高速缓冲存储器被分割为高速缓存区,每个高速缓存区具有多个可寻址存储位置,用于在高速缓冲存储器中保持项。向每个处理分配分区指示符,标识所述高速缓存区中的哪一个用于保持执行该处理时使用的项(如果有的话)。当处理器在执行所述当前处理时从主存储器请求一个项,以及该项并没有保持在高速缓冲存储器中,则从主存储器中取出该项并装入所标识的缓存区中的多个可寻址存储位置中的一个中。在EP 0856 797B1中的高速缓冲存储器是以静态方式来分区的,即,每个缓存区的大小和位置是预定的。在这种系统中,对于单个处理来说,已满的、未分区的高速缓冲存储器不可用。
EP 0481 616公开了通过使用最急速下降方法来动态确定对缓存区的调整的步骤来针对竞争处理的各个类执行将缓存存储器动态分区为多个缓存池。修改的最急速下降方法允许在缓存分区之前考虑不可预测的缓存池活动,以避免重新调整,其中这种重新调整将会导致在缓存池完全没有充分利用的情况下的不可接受的小的(甚至更糟)不利的存储池尺寸。缓存区最好具有最小尺寸。
因此,需要减少指令高速缓存垃圾化以帮助提高CPU处理能力,减少主存储器带宽,以及降低与因垃圾化而产生的从存储器传送来的数据块相关联的整体功耗。因此,本发明的一个目的是,提供一种支持减少指令与其它供另一个中断过程使用的指令的置换的指令高速缓存。
发明内容
依照本发明,提供一种指令高速缓存管理的方法,包括下列步骤:提供第一指令高速缓冲存储器;提供在第一指令高速缓冲存储器内且用于执行的第一指令数据;提供临时高速缓存指示的起始,临时高速缓存指示的起始用于初始化第二程序流的执行;当接收临时高速缓存指示的起始时,创建第一指令高速缓冲存储器内的临时高速缓存,所述临时高速缓存供高速缓存指令数据使用,所述指令数据供执行第二程序流使用;执行第二程序流内的指令;以及当执行用于终止第二程序流执行的指令时删除临时高速缓存。
依照本发明,提供一种指令高速缓存管理的方法,包括下列步骤:提供第一指令高速缓冲存储器;提供在第一指令高速缓冲存储器内且用于执行的第一指令数据;提供第二程序流的指示以供按与第一指令数据并行和高于第一指令数据的优先级的这两种方式的其中之一来执行,所述第二程序流实质上比第一指令高速缓冲存储器所满足的高速缓存需求具有更小的高速缓存需求;当接收第二流的迫切执行的指示时创建指令高速缓冲存储器内的临时高速缓存,所述临时的高速缓存供高速缓存第二流的指令数据使用,所述第二流的指令数据供执行第二程序流使用;执行第二程序流内的指令;以及当执行用于终止第二程序流执行的指令时删除临时高速缓存。
依照本发明,提供一种高速缓冲存储器,包括:指令高速缓冲存储器,用于高速缓存第一程序流的指令数据;确定电路,用于确定具有已知特征的第二程序流的存在以及用于依据第二程序流的存在而将指令高速缓冲存储器分区成第一存储器部分和临时存储器部分,其中第二程序流内的指令为可识别的第二种类型,第一存储器部分,用于高速缓存第一程序流的指令,而临时存储器部分,用于高速缓存第二程序流的指令。
依照本发明,提供一种集成电路,包括:指令高速缓冲存储器,用于高速缓存第一程序流的指令;和电路,用于创建和删除指令高速缓冲存储器内的临时高速缓存,所述临时高速缓冲存储器在尺寸上比指令高速缓冲存储器更小,并且供高速缓存不同于第一程序流的第二程序流内的指令使用。
依照本发明,提供一种在其中存储有数据的存储介质,所述数据用于定义集成电路功能块,所述集成电路功能块包括:指令高速缓冲存储器,用于高速缓存第一程序流内的指令;和第一电路,用于创建和删除指令高速缓冲存储器内的临时高速缓存,所述临时高速缓冲存储器在尺寸上比指令高速缓冲存储器更小,并且供高速缓存不同于第一程序流的第二程序流内的指令使用。
附图说明
现在,将结合下列附图描述本发明的示例性实施例,其中:
图1举例说明具有高速缓冲存储器的计算机处理系统的一部分的高层图;
图2举例说明本发明的实施例,在高速缓冲存储器内的硬件中设置的确定电路;
图3举例说明具有预中断部分和后中断部分的第一程序流,其中第二程序流被嵌入在这两部分之间;
图4举例说明图2中所示的本发明的实施例的过程流程图;
图5a举例说明存储在指令高速缓存内的第一程序流预中断部分;
图5b举例说明分区成第一存储器部分和第二存储器部分的指令高速缓冲存储器,第一存储器部分在其中存储有第一程序流预中断部分,而第二存储器部分在其中存储有第二程序流;和
图5c举例说明在删除分区之后的指令高速缓冲存储器,其中指令高速缓冲存储器在其中存储有一部分的第一程序流后中断部分和一部分的第一程序流预中断部分。
具体实施方式
在I.Kadayif等人的互联网出版物″An Energy Saving StrategyBased on Adaptive Loop Parallelization″中,如果这样做有益于系统节能,那么评估多处理器策略以使每个嵌套循环利用不同的处理器数目来执行。因此,当处理器未被用于处理信息时,所述处理器停止运转,或进入睡眠状态。当然,因为这些处理器中的每一个通常都具有与之相关联的高速缓冲存储器,该高速缓冲存储器结束于与处理器当其进入节能模式时相似的状态。
在Kil-Whan Lee等人的互联网出版物″THE CACHE MEMORY SYSTEMFOR CalmRISC32″中,提出了一种双数据高速缓存系统结构以用作为用于CalmRISC32的超高速缓冲存储器系统以提高性能和降低功耗。在这种情况下,将协同的高速缓存系统应用于数据高速缓存和指令高速缓存。在这两种类型之间,即位置、空间和临时位置之间,最近访问的项在临时位置上在不久的将来再次被访问存在很高的可能性。因此,提供第一高速缓冲存储器以寻址空间位置,并提供第二高速缓冲存储器以寻址临时位置。两个高速缓冲存储器彼此辅助来改善--缩短--处理器停滞循环周期。然而,应用这些高速缓冲存储器中的每一种都不会降低由指令高速缓存垃圾化带来的影响。
参照图1,示出了计算机处理系统的一部分的高层图。所述处理系统包括CPU 101,其接收用于通过指令高速缓冲存储器102处理的指令数据和其它用于通过数据高速缓冲存储器104处理的数据,在下文中它们分别称为指令高速缓存102和数据高速缓存104。高速缓存102和104中的每一个都与主存储器103进行通信。根据处理器101的需要,指令高速缓存102用于高速缓存仅仅来自于主存储器103的指令数据。在指令高速缓存102内,设有指令高速缓存控制器102a,其包括取出单元。指令高速缓存控制器102a控制指令高速缓存102内的数据块的存储。数据高速缓存104是在高速缓存数据的过程中使用的,所述数据不同于指令数据,其被用来由CPU 101进行处理。数据高速缓存104在其中设有数据高速缓存控制器104a,所述数据高速缓存控制器104a包括另一个取出单元。
两个高速缓存控制器102a和104a都用于控制各高速缓存102和104内的高速缓存行置换,以及用于从主存储器103中取出指令和除指令以外的数据,以供在各高速缓存102和104内存储。例如,高速缓存控制器102a和104a中每一个都执行LRU(最近最少使用)过程,以便确定将用新取出的数据置换各高速缓存102和104内的哪一个高速缓存行。
参照图2,示出了本发明的实施例。在这种情况下,在指令高速缓存102内设有确定电路201。确定电路201是在分析从主存储器103检索出且利用指令分析电路提供给指令高速缓存102的指令数据时使用的。
参照图3,示出的第一程序流301具有预中断部分301a和后中断部分301b,其中第二程序流302被嵌入在上述两个部分之间。任选地,第二程序流是中断服务请求(ISR)程序流的形式。提供指令指针(IP)303以供在维护变址的过程中使用,在所述变址处CPU 101执行第一程序流301和第二程序流302。
在图4中,示出了本发明实施例的处理流程图。依照在图3中描绘出的程序流,图5a举例说明了从指令高速缓存102内部起始于指令指针(IP)地址303a执行的第一程序流预中断部分301a。从指令指针寻址303a到303b(图5a)执行利用高速缓存控制器硬件102a将指令从主存储器103取出到指令高速缓存102中,以便在执行第一程序流预中断部分301a期间缩短处理器停滞循环周期。由具有第一种类型的显式指令的预中断部分301a或由确定电路201来提供临时高速缓存指示(图4的步骤402)的起始,所述确定电路确定在哪一点上提供可表示指令高速缓存102内的第二程序流302的迫切执行的指令。在这个点上,在执行第二程序流302之前,确定电路201先指示高速缓存控制器102a将指令高速缓存102(图4的步骤403)分区成第一存储器部分501a和第二存储器部分501b(图5b)。在第一存储器501a中,存储了与第一程序流预中断部分301a相关联的大多数高速缓存的指令数据。当整个指令高速缓存102被与第一程序流预中断部分301a有关的指令数据占用时,优选地由高速缓存控制器102a来实现LRU过程,以便释放指令高速缓存102内的存储空间以供在允许创建将要变为第二存储器部分501b的可用存储器空间时使用。利用第二存储器部分501b来实现指令高速缓存102内的临时高速缓存501b。
任选地,代替实现LRU过程,指令高速缓存控制器102a实现专用存储器分配过程,以便释放指令高速缓冲存储器102内的存储空间以供用作为临时高速缓存501b。例如,保留来自于指令高速缓存102的至少一个预定的高速缓存区块,以供用作为第二存储器部分501b。那就是说,对于8路指令集联合(set associate)的高速缓存,例如,高速缓存区块中的三个取消了实现第二存储器部分501b。因此,第二存储器部分被约束为占总可用指令高速缓存存储空间的3/8。然后,指令高速缓存控制器102a优选地使用LRU过程以供控制这三个高速缓存区块内的数据块的置换,但是不用来选择将用来实现第二存储器部分501b的高速缓存区块。
此外任选地,不是为第二存储器部分302分配固定的高速缓存区块,而是将中断程序与LRU指示一起存储在指令高速缓冲存储器102中,以便于当最近最少使用的高速缓存区块在别的处理中被使用时它是用于置换的即刻候选者。
当已经在指令高速缓冲存储器102内分配了临时高速缓存501b时,在步骤(图4)404中,从主存储器103中取出与第二程序流302有关的数据并将其存储在这个第二存储器部分501b中以供由处理器101执行。参照图5b,处理器101从IP地址303c到303d执行存储在临时高速缓存501b中的第二程序流302。当然,如果这个第二存储器部分501b没有足够的尺寸以容纳用于执行这个第二程序流302的最佳数据量,则就在临时高速缓存501b中实施LRU过程以便减少自主存储器103执行的取出的次数。当在IP地址303d(图5b)终止这个第二程序流302时,其中所述IP地址303d是由已经接收到第二种预定类型的显式指令的确定电路来确定的,在步骤405(图4)中,由确定电路201消除临时高速缓存501b,并且再次使整个指令高速缓存102可用于第一程序流301(图5c)的后中断部分301b。在IP地址303e恢复第一程序流301的后中断部分301b的执行。因此,由第一程序流301存储在第一存储器部分501中的大多数指令数据对于具有自主存储器103执行的最低限度取出操作的第一程序流301是可用的。
以临时高速缓存的形式将指令高速缓冲存储器102分区成第一存储器部分501a和第二存储器部分501b,(图4中的步骤403)实现了指令处理优点,比如减少指令高速缓存垃圾化。由于第二程序流302典型地在其中不包含循环指令而且通常实际上是顺序指令,因而从主存储器103中取出的供在这些通常顺序的例程中使用的指令数据在其执行之后就很少需要了。因此,由指令高速缓存控制器102a执行的LRU过程具有一项容易的任务,即:从指令高速缓存102中消除不必要的指令数据。因此,临时高速缓存501b充当第二程序流302的简单提前读取缓冲器相对较小因而是不利的,使得为这个第二程序流302最小化处理器停滞循环周期,但对于通过实现临时高速缓存501b来重写所得到的第一存储器部分501a的有效部分却不是那么大(图4中的步骤403)。由于指令高速缓存第一存储器部分501a包含与第一程序流301有关的数据,因而重写这个存储空间的有效部分是不利的,因为一旦恢复执行第一程序流301b(图5c中的IP 303e),可能必需要从主存储器103中进行多次取出,以便在被第二程序流302中断之后按类似于其预中断301a的方式来恢复第一程序流后中断部分301b的执行。因此,这个第二存储器部分501b的尺寸的早先确定是更可取的,并且将指令有可能嵌入到供确定电路201使用的程序流中,是为临时高速缓存501b确定更可取的尺寸来实现的。
有利地,包括取出硬件的指令高速缓存控制器102a将新的指令数据取到临时高速缓存501b中以供第二程序流302使用,而不必重写供第一程序流后中断部分301b使用的指令数据的有效部分。与LRU过程结合的确定电路201或作为选择地使用专用存储器分配过程的确定电路,确定指令高速缓存102的哪一部分要分配给临时高速缓存501b,以便优选地重写最低量的与第一程序流后中断部分301b有关的指令数据。因此,在从执行第二程序流302返回之后,CPU 101再次在IP 303e(图5c)执行第一程序流的后中断部分301b。在那里,在第一程序流301的后中断部分301b的执行过程中,优选地仍将与之有关的指令数据量存储在指令高速缓存102中。因此,例如,如果指令高速缓存102具有32k字节的尺寸,并且假定8路指令集关联,当将分配给临时高速缓存501b的存储器限制到4K字节的高速缓存区块时,这导致在从执行第二程序流302返回之后,原始高速缓存数据的28/32仍然与第一程序流后中断部分301b相关。
依照本发明,高速缓存分区是按两种不同的方式来实现的。在第一种方式中,通过具有预定类型的显式指令以硬件实现指令高速缓存102分区而变得更为方便,所述预定类型的显式指令提供临时高速缓存指示的起始(图4中的步骤402),以用于触发用于分区指令高速缓存的确定电路201。一旦确定电路201以临时高速缓存指令起始的形式读取第一种类型的的显式指令,指令高速缓存102就被分区成第一存储器501a和临时高速缓存501b(图5b),并且处理所述中断。当然,一旦第二程序流302已经结束执行,那么优选地以临时高速缓存指令结束的形式的第二种类型的显式指令触发确定电路201以释放分配给临时高速缓存501b的存储器,所以整个指令高速缓存102再次可由第一程序流后中断部分301b使用。当然,对于本领域技术人员而言显而易见的是,硬件触发中断形式的第一种和第二种类型的显式指令以及中断返回指令都可以类似的方式来加以支持。
当然,在某些情况下优选的是,当第二程序流302实际上还包括除顺序指令以外的指令(例如,嵌入在第二程序流302中的循环指令的形式)时,使指令高速缓存102的分区无效。如果临时高速缓存501b没有足够大的尺寸来容纳对整个第二程序流302的高速缓存,那么产生对主存储器103的多次取出以便检索供执行嵌入在第二程序流302中的循环指令使用所需的指令数据,分配给临时高速缓存501b的存储器容量太小,因此第二程序流302比临时高速缓存501b的工作集更大。因此,对于每一次循环迭代,都产生对主存储器103的取出操作,这将不利地导致处理器101对每一次循环迭代而引起的停滞循环周期。在这种情况下,最好不分区指令高速缓存102,因为这会导致处理器性能降低以及功耗增加。当然,对于本领域的技术人员而言众所周知的是,大ISR被认为是不好的程序设计实践。典型地,ISR是小的,以保证短的中断响应时间,由此给正常的程序任务,比如那些在第一程序流中的程序任务留下繁重的工作。
在第二种方式中,指令数据的第二程序流302块被识别为存储在主存储器103内的特定存储器地址区域中。照此,通过使用地址来标识第二程序流302,在该地址上第二程序流302指令数据被存储在主存储器103内。当然,为了识别第二程序流302,优选地在程序流的编译以及链接时间期间,在所述程序流内提供加载指示,优选地使全部第二程序流指令数据中的大部分能被存储在主存储器103内的相同存储器地址区域中。由此,来自这个存储器地址区域的任何取出操作都自动地考虑指令高速缓存的分区(图4的步骤403),以用于在临时高速缓存501b内存储这个第二程序流指令数据302。有利地,通过使用这种方法,免除了用于实现临时高速缓存501b的专用指令。
由此,确定电路201执行第二程序流302内的确定指令类型的任务,以及根据这个确定,执行指令高速缓冲存储器102的分区(图4的步骤403)。如果指令高速缓冲存储器102没有相应地被分区,那么可能会观察到更多的停滞循环周期,并由此没有达到性能优点。当然,作为确定电路201处理指令数据以作出确定的替换,在指令数据内将信息任选地编码以供由确定电路201指令分析电路来进行解码。
任选地,作为以硬件来实现确定电路201的替换,将指令包含在存储器102中所存储的指令数据内,所述指令数据可表示是否要对指令高速缓存进行分区。这些指令继而引起确定电路201或处理器正在执行的其它软件例程来确定执行指令高速缓存102的分区是否是有利的。
在软件控制下,任选地,根据通过作为软件确定结果而执行的指令数据的类型来对高速缓冲存储器102进行分区。其中所述软件判定高速缓存的分区是有利的,执行这一操作是为了增加CPU的处理能力以及降低高速缓冲存储器电路102的功耗和存储器带宽需求。从主存储器103执行的更多次的取出操作会导致电路消耗更多的电力。在硬件层上允许和禁止用于实现指令高速缓冲存储器102和主存储器103的逻辑门,实现了节能。
任选地,对于本发明当前实施例的低硬件成本实现而言,在指令高速缓冲存储器102中是以固定的高速缓存区块来创建临时高速缓存501b的。例如,仅仅在第0个高速缓存区块中创建第二存储器部分501b。这有利地允许ISR对这单个高速缓存区块而非其它高速缓存区块内的指令高速缓存数据进行垃圾化,由此留下其它高速缓存区块供第一程序流后中断部分301b在从执行第二程序流302返回时使用。例如,对于具有64字节块大小和总共8个高速缓存区块的32KB总高速缓存尺寸,为实现临时高速缓存501b而分配具有4K字节的固定大小的单个预定数目的高速缓存区块。
当然,当对主存储器103执行许多次取出时,64字节块的取出往往对于缩短处理器停滞循环周期而言是不够的。由此,增加对两个顺序的64字节的块进行取出的大小往往是更可取的。当然,任选地,多个顺序的64字节的块可能被预先取出。
有利地,同现有技术的高速缓存实施方式相比,通过降低指令高速缓存垃圾化,降低了指令数据的存储器带宽需求,并且降低了系统的功耗。在执行指令时花费了更少的时间以及在执行取出操作时花费了更少的时间来取出已经通过执行其它指令数据而删除的数据。这对于在便携式计算平台(比如,膝上型电脑)中实现的处理器系统而言有显著的优点。
在不背离本发明的精神或范围的情况下,可以设想出许多其它的实施例。

Claims (31)

1.一种指令高速缓存管理的方法,包括下列步骤:提供第一指令高速缓冲存储器(102);提供第一程序流(301),该第一程序流包括在第一指令高速缓冲存储器(102)内且用于执行的第一指令数据(301a、301b);提供临时高速缓存指示(402)的起始,临时高速缓存指示(402)的起始用于初始化第二程序流(302)的执行;当接收临时高速缓存指示(402)的起始时,创建(403)第一指令高速缓冲存储器(102)内的临时高速缓存(501b),所述临时高速缓存(501b)供高速缓存指令数据使用,所述指令数据供执行第二程序流(302)使用;执行第二程序流(302)内的指令(404);以及当执行用于终止第二程序流(302)执行的指令时删除(405)临时高速缓存(501b)。
2.根据权利要求1所述的方法,包括提供用于执行指令高速缓存(102)内的指令数据(301a,301b、302)和用于执行临时高速缓存(501b)内的指令数据(302)的处理器(101)以供执行第二程序流(302)的步骤。
3.根据权利要求1所述的方法,其中第二程序流(302)同第一指令高速缓冲存储器(102)内的第一指令数据(301a,301b)相比降低了指令高速缓存存储空间或速度需求。
4.根据权利要求1所述的方法,包括分析第一指令数据(301a、301b)内的指令数据的步骤,以便在执行所述指令时确定在哪一点上执行创建临时高速缓存(501b)的步骤。
5.根据权利要求4所述的方法,其中利用软件应用执行分析的步骤,所述软件应用包括不同于第一指令数据(301a、301b)的指令数据和第二程序流(302)。
6.根据权利要求4所述的方法,其中分析的步骤包括:评定第一程序流(301a、301b)和第二程序流(302)的其中之一是否包括预定类型的指令的步骤。
7.根据权利要求6所述的方法,其中预定类型的指令是中断指令。
8.根据权利要求6所述的方法,其中预定类型的指令是中断返回指令。
9.根据权利要求4所述的方法,其中分析的步骤包括:评定第二程序流(302)是否为顺序的步骤,并且其中创建(403)的步骤是依据评定的步骤来执行的。
10.根据权利要求1所述的方法,包括提供用于在一地址位置上存储第二程序流(302)的主存储器(103)的步骤,其中临时高速缓存指示(402)的起始取决于第二程序流(302)的地址位置。
11.根据权利要求1所述的方法,其中临时高速缓存(501b)的大小取决于嵌入在第一指令数据(301a、301b)内的显式指令。
12.一种指令高速缓存管理的方法,包括下列步骤:提供第一指令高速缓冲存储器(102);提供在第一指令高速缓冲存储器(102)内且用于执行的第一指令数据(301a、301b);提供第二程序流(302)的指示(402),该指示(402)以与第一指令数据(301a、301b)并行或高于该第一指令数据的优先级的方式执行,所述第二程序流(302)比第一指令数据(301a、301b)所满足的高速缓存(501a)需求具有更小的高速缓存(501b)存储空间或速度需求;当接收第二程序流(302)的迫切执行的指示(402)时创建(403)指令高速缓冲存储器(102)内的临时高速缓存(403),所述临时的高速缓存(501b)供高速缓存第二程序流(302)的指令数据使用,所述第二程序流的指令数据供执行第二程序流(302)使用;执行(404)第二程序流(302)内的指令;以及当执行用于终止第二程序流(302)执行的指令时删除(405)临时高速缓存(501b)。
13.根据权利要求12所述的方法,其中所提供的指示是中断指令。
14.根据权利要求12所述的方法,其中第二程序流(302)是顺序的。
15.根据权利要求12所述的方法,其中所述指示取决于第一指令高速缓冲存储器(102)中的用于标识所述第二程序流的特定地址,所述第一指令高速缓冲存储器的用于标识所述第二程序流的特定地址被用在从指令高速缓冲存储器(102)中的预定存储单元取出第二程序流(302)的指令数据的取出操作中。
16.根据权利要求12所述的方法,包括提供在用于标识所述第二程序流的特定地址位置上存储第二程序流(302)的主存储器(103)的步骤,其中第二程序流(302)的指示(402)取决于所述用于标识所述第二程序流的特定地址位置。
17.一种高速缓冲存储器,包括:指令高速缓冲存储器(103),用于高速缓存第一程序流(301a、301b)的指令数据;确定电路(201),用于确定具有特定特征的第二程序流(302)的存在,以及用于依据特定特征的第二程序流(302)的存在而将指令高速缓冲存储器(102)分区成第一存储器部分(501a)和临时存储器部分(501b),其中第二程序流(302)内的指令为可识别的类型,第一存储器部分(501a),用于高速缓存第一程序流(301a、301b)的指令,而临时存储器部分(501b),用于高速缓存第二程序流(302)的指令。
18.根据权利要求17所述的高速缓冲存储器,其中确定电路(201)是硬件中断电路。
19.根据权利要求17所述的高速缓冲存储器,其中第一程序流(301a、301b)内的第二指令数据(302)是置于显式指令之后的。
20.根据权利要求17所述的高速缓冲存储器,其中第二程序流(302)的特定特征包括认为第二程序流(302)具有用于按顺序的性质执行的指令的特征。
21.根据权利要求17所述的高速缓冲存储器,其中第二程序流(302)同第一程序流(301a、301b)相比降低了高速缓存存储空间或速度需求。
22.根据权利要求17所述的高速缓冲存储器,其中确定电路(201)包括指令分析电路,用于识别预定类型的指令以供创建临时存储器部分(501b)。
23.根据权利要求22所述的高速缓冲存储器,其中预定类型的指令包括显式指令。
24.根据权利要求17所述的高速缓冲存储器,其中确定电路(201)包括指令分析电路,其用于识别预定类型的指令以供结束临时存储器部分(501b)。
25.根据权利要求24所述的高速缓冲存储器,其中预定类型的指令包括中断返回指令。
26.根据权利要求24所述的高速缓冲存储器,其中预定类型的指令是第一预定类型的显式指令和第二预定类型的显式指令之一。
27.一种集成电路,包括:指令高速缓冲存储器(102),用于高速缓存第一程序流(301a、301b)的指令;和电路(201),用于创建和删除指令高速缓冲存储器(102)内的临时高速缓存(501b),所述临时高速缓冲存储器(501b)在尺寸上比指令高速缓冲存储器(102)更小,并且供高速缓存不同于第一程序流(301a、301b)的第二程序流(302)内的指令使用;
其中所述电路对第一预定类型的显式指令进行响应以供创建临时高速缓存(501b)。
28.根据权利要求27所述的集成电路,其中所述电路对第二预定类型的显式指令进行响应以供删除临时高速缓存(501b)。
29.根据权利要求27所述的集成电路,其中所述电路对第二程序流(302)的初始化进行响应以供创建临时高速缓存(501b),所述第二程序流是顺序的。
30.根据权利要求27所述的集成电路,其中第二程序流(302)相比第一程序流(301a、301b)降低了指令高速缓存(102)存储空间或速度需求。
31.根据权利要求27所述的集成电路,其中所述电路(201)包括指令分析电路,用于识别预定类型的指令并对其进行响应以供执行创建和删除临时高速缓存(501b)的其中之一。
CN2004800109564A 2003-02-24 2004-02-23 指令高速缓存管理的方法、高速缓冲存储器以及集成电路 Expired - Fee Related CN1777875B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US44887103P 2003-02-24 2003-02-24
US60/448,871 2003-02-24
PCT/IB2004/000455 WO2004075066A2 (en) 2003-02-24 2004-02-23 Reducing cache trashing of certain pieces

Publications (2)

Publication Number Publication Date
CN1777875A CN1777875A (zh) 2006-05-24
CN1777875B true CN1777875B (zh) 2010-04-28

Family

ID=32908665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800109564A Expired - Fee Related CN1777875B (zh) 2003-02-24 2004-02-23 指令高速缓存管理的方法、高速缓冲存储器以及集成电路

Country Status (8)

Country Link
US (1) US7353337B2 (zh)
EP (1) EP1599803B1 (zh)
JP (1) JP2006518896A (zh)
KR (1) KR100985239B1 (zh)
CN (1) CN1777875B (zh)
AT (1) ATE444526T1 (zh)
DE (1) DE602004023372D1 (zh)
WO (1) WO2004075066A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263587B1 (en) * 2003-06-27 2007-08-28 Zoran Corporation Unified memory controller
KR100735552B1 (ko) 2005-09-23 2007-07-04 삼성전자주식회사 코드 메모리 상의 프로그램의 코드 크기를 줄이는 방법
US7689772B2 (en) * 2006-05-04 2010-03-30 Intel Corporation Power-performance modulation in caches using a smart least recently used scheme
US7747820B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Managing working set use of a cache via page coloring
CN101753282B (zh) * 2008-12-22 2013-06-19 电信科学技术研究院 一种进程缓存的配置和处理的方法及系统
FR2962567B1 (fr) * 2010-07-12 2013-04-26 Bull Sas Procede d'optimisation d'acces memoire, lors de la reprise d'execution d'une application, dans un microprocesseur comprenant plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede
US9104532B2 (en) * 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
US9645942B2 (en) 2013-03-15 2017-05-09 Intel Corporation Method for pinning data in large cache in multi-level memory system
US9558124B2 (en) * 2013-11-08 2017-01-31 Seagate Technology Llc Data storage system with passive partitioning in a secondary memory
JP6259518B2 (ja) * 2014-01-27 2018-01-10 ヴィア アライアンス セミコンダクター カンパニー リミテッド オペレーティング・システム・ルーチンのための予測履歴ストレージのフラクショナルな使用
US10235203B1 (en) 2014-03-31 2019-03-19 EMC IP Holding Company LLC Techniques for increasing storage system performance in processor-bound workloads with large working sets and poor spatial locality

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0442474A2 (en) * 1990-02-13 1991-08-21 Sanyo Electric Co., Ltd. Apparatus and method for controlling cache memory
EP0481616A2 (en) * 1990-10-15 1992-04-22 International Business Machines Corporation Dynamic cache partitioning
EP0856797A1 (en) * 1997-01-30 1998-08-05 STMicroelectronics Limited A cache system for concurrent processes
CN1251668A (zh) * 1997-12-30 2000-04-26 Mcmz技术革新股份有限公司 计算机高速缓存分窗
CN1334938A (zh) * 1998-12-08 2002-02-06 英特尔公司 有多执行实体的系统中的缓冲存储管理
US6470423B1 (en) * 1998-06-22 2002-10-22 Oracle Corporation Managing partitioned cache

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5696932A (en) * 1995-05-16 1997-12-09 International Business Machines Corporation Method and system for estimating minumun requirements on a cache in a computer based storage system
US5893920A (en) * 1996-09-30 1999-04-13 International Business Machines Corporation System and method for cache management in mobile user file systems
GB9701960D0 (en) * 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
US6898694B2 (en) * 2001-06-28 2005-05-24 Intel Corporation High instruction fetch bandwidth in multithread processor using temporary instruction cache to deliver portion of cache line in subsequent clock cycle

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0442474A2 (en) * 1990-02-13 1991-08-21 Sanyo Electric Co., Ltd. Apparatus and method for controlling cache memory
EP0481616A2 (en) * 1990-10-15 1992-04-22 International Business Machines Corporation Dynamic cache partitioning
EP0856797A1 (en) * 1997-01-30 1998-08-05 STMicroelectronics Limited A cache system for concurrent processes
CN1251668A (zh) * 1997-12-30 2000-04-26 Mcmz技术革新股份有限公司 计算机高速缓存分窗
US6470423B1 (en) * 1998-06-22 2002-10-22 Oracle Corporation Managing partitioned cache
CN1334938A (zh) * 1998-12-08 2002-02-06 英特尔公司 有多执行实体的系统中的缓冲存储管理

Also Published As

Publication number Publication date
DE602004023372D1 (de) 2009-11-12
ATE444526T1 (de) 2009-10-15
US20060179225A1 (en) 2006-08-10
KR20050115875A (ko) 2005-12-08
JP2006518896A (ja) 2006-08-17
EP1599803A2 (en) 2005-11-30
EP1599803B1 (en) 2009-09-30
WO2004075066A2 (en) 2004-09-02
WO2004075066A8 (en) 2005-04-07
CN1777875A (zh) 2006-05-24
US7353337B2 (en) 2008-04-01
KR100985239B1 (ko) 2010-10-04
WO2004075066A3 (en) 2004-10-07

Similar Documents

Publication Publication Date Title
US5838945A (en) Tunable software control of harvard architecture cache memories using prefetch instructions
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
US5796971A (en) Method for generating prefetch instruction with a field specifying type of information and location for it such as an instruction cache or data cache
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
JP3820261B2 (ja) データ処理システムの外部および内部命令セット
US5442760A (en) Decoded instruction cache architecture with each instruction field in multiple-instruction cache line directly connected to specific functional unit
CN100541423C (zh) 在推测性处理器中减少执行涉及不可靠数据的指令的系统与方法
US5829025A (en) Computer system and method of allocating cache memories in a multilevel cache hierarchy utilizing a locality hint within an instruction
KR101626533B1 (ko) 가비지 콜렉션을 위한 gpu 서포트
US6470424B1 (en) Pin management of accelerator for interpretive environments
US20070204107A1 (en) Cache memory background preprocessing
JPH08194615A (ja) 情報処理装置
JPH0612386A (ja) プロセス内のスレッドを同期するための方法およびシステム
CN1777875B (zh) 指令高速缓存管理的方法、高速缓冲存储器以及集成电路
KR101639943B1 (ko) 범용 그래픽 프로세서의 공유 메모리를 캐시로 동작시키기 위한 공유 메모리 제어 방법 및 이를 이용한 범용 그래픽 프로세서
JP3681647B2 (ja) キャッシュメモリシステム装置
US20110113411A1 (en) Program optimization method
CN1196997C (zh) 不按序执行指令的装置和检测不按序指令的方法
US7260674B2 (en) Programmable parallel lookup memory
US6560676B1 (en) Cache memory system having a replace way limitation circuit and a processor
US20090276575A1 (en) Information processing apparatus and compiling method
US8510529B2 (en) Method for generating program and method for operating system
US5572700A (en) Cache access controller and method for permitting caching of information in selected cache lines
US7058938B2 (en) Method and system for scheduling software pipelined loops
JPH08161169A (ja) Vliw方式の計算機システム及びvliwの解釈・実行方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090206

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20090206

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NITAI SOFTWARE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120321

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120321

Address after: Delaware

Patentee after: Nytell Software LLC

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

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

Granted publication date: 20100428

Termination date: 20160223

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