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

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

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及处理器高速缓存的领域,更具体而言涉及处理器指令高速缓存的领域。
技术介绍
在计算机系统中,使用高速缓冲存储器来减少处理器(CPU)对存储在只读存储器(ROM)或随机存取存储器(RAM)形式的主存储器内的数据和指令形式的信息的访问时间。高速缓存是包含存储在主存储器中的特定数据段和指令段的复本的片上存储体。典型地,有两种类型的高速缓存,数据类型的和指令类型的;然而,在本篇公开内容内,仅仅针对解决指令高速缓存。指令高速缓存包含供CPU执行的代码段。每当CPU执行已驻留在该高速缓存中的代码时,例如当执行形成循环的指令序列时,每当执行这些循环指令时,循环的执行比访问主存储器以读取所有这些循环指令更快。然而,当这些指令未存储在高速缓冲存储器中时,那么就会发生高速缓存未中并且CPU必须进行等待直到将所需的数据从主存储器中取出到高速缓冲存储器为止。一旦将数据取出到高速缓冲存储器中,CPU就恢复指令的执行。令人遗憾的是,在这些取出操作期间,CPU在等待所需数据时引起停滞循环周期(stall cycle),并且这浪费了宝贵的CPU处理带宽。在取出操作期间,数据是以具有块大小的块的形式从主存储器中取出的。块大小定义了在一次操作中从主存储器取出的数据量。高速缓存按照高速缓存区块(cache way),以及高速缓存块的高速缓存集合被组织。取决于处理器正在执行的指令的指令地址,从存储器取出的具有块大小的数据被存储在高速缓存集合内的存储单元当中。高速缓存集合内的存储单元取决于指令地址。用来存储数据块的高速缓存区块取决于高速缓冲存储器的高速缓存控制器所使用的高速缓存置换算法。因此,例如,指令地址的第11位一直到第6位确定了用于存储从主存储器取出的数据的高速缓存集合。在这个示例中,高速缓存集合是由第11位一直到第6位来定义的,并且适用于具有总高速缓存大小为32KB的高速缓存,其具有8路联合(wayassociativity)以及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(MIPS),而另一个是VLIW(超长指令字)处理器,比如TriMedia。TriMedia是执行所有视频和音频程序的协处理器。然而,在由这个VLIW处理数据期间,相对大部分的VLIW CPU能力由于指令高速缓存垃圾化而被浪费。典型地,大半的CPU能力被由指令高速缓存垃圾化和对主存储器的不良访问而引起的停滞循环周期消耗。处理能力降低的理由之一可能是由于DVP的驱动器模型,产生了在ISR中执行的大量代码段。由于自主存储器进行被垃圾化指令的许多次重新加载,主存储器带宽需求也随之增加。因此,需要减少指令高速缓存垃圾化以帮助提高CPU处理能力,减少主存储器带宽,以及降低与因垃圾化而产生的从存储器传送来的数据块相关联的整体功耗。因此,本专利技术的一个目的是,提供一种支持减少指令与其它供另一个中断过程使用的指令的置换的指令高速缓存。
技术实现思路
依照本专利技术,提供一种指令高速缓存管理的方法,包括下列步骤提供第一指令高速缓冲存储器;提供在第一指令高速缓冲存储器内且用于执行的第一指令数据;提供临时高速缓存指示的起始,临时高速缓存指示的起始用于初始化第二程序流的执行;当接收临时高速缓存指示的起始时,创建第一指令高速缓冲存储器内的临时高速缓存,所述临时高速缓存供高速缓存指令数据使用,所述指令数据供执行第二程序流使用;执行第二程序流内的指令;以及当执行用于终止第二程序流执行的指令时删除临时高速缓存。依照本专利技术,提供一种指令高速缓存管理的方法,包括下列步骤提供第一指令高速缓冲存储器;提供在第一指令高速缓冲存储器内且用于执行的第一指令数据;提供第二指令数据流的指示以供按与第一指令数据并行和高于第一指令数据的优先级的这两种方式的其中之一来执行,所述第二指令数据流实质上比第一指令高速缓冲存储器所满足的高速缓存需求具有更小的高速缓存需求;当接收第二流的迫切执行的指示时创建指令高速缓冲存储器内的临时高速缓存,所述临时的高速缓存供高速缓存第二流的指令数据使用,所述第二流的指令数据供执行第二指令数据流使用;执行第二指令数据流内的指令;以及当执行用于终止第二指令数据流执行的指本文档来自技高网
...

【技术保护点】
一种指令高速缓存管理的方法,包括下列步骤:提供第一指令高速缓冲存储器(102);提供在第一指令高速缓冲存储器(102)内且用于执行的第一指令数据(301a、301b);提供临时高速缓存指示(402)的起始,临时高速缓存指示(402)的起始用于初始化第二程序流(302)的执行;当接收临时高速缓存指示(402)的起始时,创建(403)第一指令高速缓冲存储器(102)内的临时高速缓存(501b),所述临时高速缓存(501b)供高速缓存指令数据使用,所述指令数据供执行第二程序流(302)使用;执行第二程序流(302)内的指令(402);以及当执行用于终止第二程序流(302)执行的指令时删除(405)临时高速缓存(501b)。

【技术特征摘要】
【国外来华专利技术】US 2003-2-24 60/448,8711.一种指令高速缓存管理的方法,包括下列步骤提供第一指令高速缓冲存储器(102);提供在第一指令高速缓冲存储器(102)内且用于执行的第一指令数据(301a、301b);提供临时高速缓存指示(402)的起始,临时高速缓存指示(402)的起始用于初始化第二程序流(302)的执行;当接收临时高速缓存指示(402)的起始时,创建(403)第一指令高速缓冲存储器(102)内的临时高速缓存(501b),所述临时高速缓存(501b)供高速缓存指令数据使用,所述指令数据供执行第二程序流(302)使用;执行第二程序流(302)内的指令(402);以及当执行用于终止第二程序流(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)以供按与第一指令数据(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所述的方法,其中第二指令数据流(302)实际上是顺序的。16.根据权利要求12所述的方法,其中所述指示取决于第一指令高速缓冲存储器(102)中的地址,所述第一指令高速缓冲存储器被用在从指令高速缓冲存储器(102)中的预定存储单元取出第二程序流(302)的指令数据的取出操作中。17.根据权利要求12所述的方法,包括提供用于在地址位置上存储第二指令数据流(302)的主存储器(103)的步骤,其中第二指令数据流(302)的指示(402)取决于这个地址单元。18.一种高速缓冲存储器,包括指令高速缓冲存储器(103),用于高速缓存第一指令数据流(301a、301b)的指令数据;确定电路(201),用于确定具有已知特征的第二指令数据流(302)的存在以及用于依据第二指令数据流(302)的存在而将指令高速缓冲存储器(102)分区...

【专利技术属性】
技术研发人员:R维斯特GA斯拉文布格JW范德瓦尔德
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1