CN1414467A - 选择性执行预取指令的微处理器与方法 - Google Patents

选择性执行预取指令的微处理器与方法 Download PDF

Info

Publication number
CN1414467A
CN1414467A CN02142479A CN02142479A CN1414467A CN 1414467 A CN1414467 A CN 1414467A CN 02142479 A CN02142479 A CN 02142479A CN 02142479 A CN02142479 A CN 02142479A CN 1414467 A CN1414467 A CN 1414467A
Authority
CN
China
Prior art keywords
microprocessor
line taking
fast line
speed cache
bus
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
CN02142479A
Other languages
English (en)
Other versions
CN100461092C (zh
Inventor
G·葛兰·亨利
罗德·E·胡克
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.)
INTELLIGENCE FIRST CO
Original Assignee
INTELLIGENCE FIRST CO
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
Priority claimed from US10/175,383 external-priority patent/US6810466B2/en
Application filed by INTELLIGENCE FIRST CO filed Critical INTELLIGENCE FIRST CO
Publication of CN1414467A publication Critical patent/CN1414467A/zh
Application granted granted Critical
Publication of CN100461092C publication Critical patent/CN100461092C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一微处理器,可依据未来处理器总线的使用与快取线的状态来进行选择性预取指令。该微处理器包括一可编程的门限缓存器,以储存一门限值。若微处理器的总线接口单元中被排队等待的总线需求深度大于该门限值,则显示了在不久的未来一高层级总线使用的可能性,如工作量的改变。若在处理器高速缓存中一预取指令快取线并未命中时,该快取线将不会自外部内存被预取,除非快取线是由自内部高速缓存的一层级至一较低层级所提供的。然而,不论如何,即使是这个实施例,若快取线状态是共享的,该快取线仍然不会被进行内部的转移。

Description

选择性执行预取指令的微处理器与方法
(0001)本发明申请的专利范围是以美国申请案为优先权基准,其申请号为10/175,383,于公元2001年6月18日提出申请。
技术领域
(0002)本发明涉及在一般状态于微处理器中预取指令的领域,尤指一种微处理器可依处理器总线在工作时的层级进行选择性执行预取的指令。
背景技术
(0003)现今大部份的计算机系统都有一微处理器,以进行执行软件时所需的必要计算。该计算机系统也包括其它连接至该微处理器的装置,如内存。该内存储存软件的指令,以供给微处理器使用。内存也储存程序指令所需的数据,以达到程序应有的功能。
(0004)计算机系统中的一些装置是在微处理器之外的,如内存;而那些装置是以直接或非直接的方式经由一微处理器总线连接至微处理器。处理器总线是一信号的收集器,以便微处理器可一次转换相对大量的数据,如64或128位。当微处理器执行程序的指令,且这些指令正进行对储存于内存中的数据的运算时,微处理器必须使用微处理器总线自内存中提取数据以放入微处理器里。相同地,微处理器会将计算结果经由微处理器总线回写给内存。
(0005)自内存提取数据或写数据入内存所需的时间一般将是微处理器执行计算数据所需时间的十到百倍。所以,微处理器将处于近乎停止状态,以等待自内存提取而来的数据。
(0006)为将问题最小化,现时的微处理器都有一高速缓存。高速缓存是存在于微处理器内部的内存,且一般都远小于系统内存。高速缓存是储存系统内存内数据的子集合。当微处理器执行一数据的指令,微处理器会先检查以了解现在执行的数据是存在于高速缓存中,并且是有效的。若是如此,该指令可立即被执行,因为其数据已存在于高速缓存内。也就是微处理器不需要等到数据自内存中提取,再由处理器总线而至高速缓存内。当微处理器已监测到数据是在高速缓存中并为有效时,一般而言高速缓存即可成功地取得数据,术语为高速缓存的命中(cache hit)。
(0007)通常因为软件是在数据的相对小集合上进行一段时间的操作,所以会有许多高速缓存的命中发生;然后,再于另一段时间在另一个相对小数据集合上操作,余类推。这样的现象是参考方位原理。若该程序显示其作用大体上符合参考方位原理,且在某段时间内高速缓存的大小较数据集合为大时,那段时间内高速缓存的命中可能性也会高。
(0008)然而,有一些软件其程序不会显示其作用是大体上符合参考方位原理与/或是正在操作的数据集合具大小较高速缓存大。这些程序需要由一存在于内存内的较大的、线性的数据集合来操作,且该内存是在微处理器之外的,如视讯页框缓冲器或系统内存。这些程序的例子有如多媒体相关的声讯或视讯,以处理视讯数据或声讯波形文件数据。在这些程序下,高速缓存的命中是低的。
(0009)为解决此问题,有一些微处理器会自一预取的指令在其指令集合内。该预取指令指示出该微处理器提取一快取记忆线,该快取记忆线是由预取指令进入高速缓存时会具体说明出来。快取线是数据中的最小单位,并可在高速缓存与系统中的其它内存中互相传递。一般的快取线大小是32或64字节。程序设计师会在程序中策略位置处放置预取指令,以预取所需的数据进入高速缓存。当微处理器可以执行那些进行计算的指令时,数据早就已经在高速缓存中的机率增加。
(0010)在一些微处理器中,高速缓存是由多种高速缓存所组成的。这些高速缓存会被安排至许多等级中的一种里。举例说明,一微处理器应有二个高速缓存,即第一级高速缓存与第二级高速缓存。第一级高速缓存较第二级高速缓存更接近微处理器的计算组件;也就是说第一级高速缓存较第二级高速缓存更快速地提供数据给该计算组件。虽然没有必要,但是第二级高速缓存大小一般大于第一级高速缓存。
(0011)一可能的情况是在先提取指令上的多级式高速缓存其效用为该预取指令所指出的快取线可在第二级高速缓存中命中,但不是在第一级高速缓存中。在这样的情形下,微处理器可将快取线从第二级高速缓存传递至第一级高速缓存,以取代使用处理器总线去提取自内存而来的该快取线。这是因为自第二级高速缓存传递至第一级高速缓存较经由处理器总线去提取快取线要快很多。也就是说,第一级高速缓存分配一快取线,如同一专门为储存快取线的位置(location),且第二级高速缓存提供快取线至第一级高速缓存,以进行储存。以下的伪码显示一种传统的方法,即在一有二级式内部快取级层(hierarchy)的微处理器中执行先提取指令。在该伪码中,no-op虚拟操作意思是“无作业”,即微处理器在预取指令上并无任何动作,只是简单地将指令略过而不提取该指定的快取线。
(0012)
if(在第一级高速缓存中有快取线命中)
执行虚拟操作;/*不做任何事*/
else if(在第二级高速缓存中有快取线命中)
提供所需的快取线自第二级高速缓存至第一级高速缓存;
clse
经由微处理器总线提取快取线至第一级高速缓存。
(0013)微处理器包括了一总线接口单元(BIU),该单元连接了处理器总线与微处理器的其它部份。当微处理器中的功能区块(functional block)于处理器总线上执行其它操作时,功能区块会发出一要求至总线接口单元,以执行总线动作。举例说明,一存在于微处理器的功能区块会发出一个需求至BIU,以执行在处理器总线上的其它操作,去提取自内存而来的快取线。在BIU中,多元化总线动作的需求被暂缓或处于等候的状态是很正常的。这在现今的微处理器是非常真实的,因为该微处理器执行多元化的指令,且该数个指令与一管线的不同层级(stage)相互平行,其状况与汽车的组合生产线相似。
(0014)多元化的需求会在BIU中被暂缓,其结果是在这暂缓中的一需求必须等到所有其它在它之前的需求被完成后,才可能处理。因此,若一总线动作需求被提出给BIU,以为快取线的预取时,以下所述的机率是存在的,即该预取的需求会导致一随后的需求,该需求会与一更重要的非预取指令结合,然后才会在等待较久的时间后于总线上执行,这较久的时间是指与它使用其它的方法执行时所需时间相比。因此,有可能降低整体表现。
(0015)一般而言,一预取指令是经由定义一线索(hint)以提取快取线,而不是一绝对的命令。也就是说,在某些特定的状况下,微处理器会选择不对预取指令进行任何的动作。然而,传统的微处理器并没有考虑到一可能性,即执行预取时会产生额外微处理器总线的使用,因此会降低性能的表现。因此,一微处理器如何依据上述的考量而选择性地执行提取指令。
发明内容
(0016)本发明提供一微处理器与方法,会与目前的总线动作层级作一比较;该总线动作层级含有一预先决定的门限值(predetermined threshold value),且该门限值如同一未来的总线动作的预测,并依据这份预测选择性地执行预取的指令。因此,在前述的目的达到后,可以提供一微处理器以选择性地执行一预取指令是本发明的特征。微处理器包括一总线接口单元(BIU),该单元在一连接微处理器与内存的总线上执行总线动作。微处理器也包括一个预估器(predictor),是连接至BIU,并会预估由预取指令所指明的预取快取线时,是否会在总线上延迟到随后的总线动作作。微处理器还包括一个控制逻辑,是连接至该预估器。若预估的数据显示预取快取线会延迟随后的总线动作,该控制逻辑会选择性地不预取该快取线。
(0017)本发明的一大特征是提供一微处理器,以进行选择性地预取指令。该微处理器包括一BIU,该BIU指明出一总线需求的当时层级(current level),以使此BIU在一连接微处理器与内存的总线上执行。微处理器也包括一缓存器,是连接至BIU开储存一总线需求门限值。微处理器也包括一比较器,是连接至该缓存器,并会依据总线需求门限值与总线需求的当时层级的比较的结果,来产生一BIU是否会在预取指令之后,随即执行在总线上一高层级的总线需求的预估,微处理器又包括逻辑控制,是连接至该比较器;而该快取线是由依据一第一方法的预取指令所明确指定出的;该第一方法是指若预估显示BIU将在总线上很接近预取指令的邻近区执行一高层级的总线需求;若非如此,则会依据第二方法预取快取记忆线。
(0018)本发明的另一大特征是提供一微处理器,以进行选择性地预取指令。该预取指令明显地指示出一快取线。该微处理器具有一第一级高速缓存、一第二级高速缓存与一BIU,以将该数个高速缓存连接至一总线,该总线连接微处理器与内存。微处理器包括一储存门限值(threshold)的门限缓存器(threshold register)与一比较器,该比较器连接至该门限缓存器,且若有一些存在于总线接口单元中并将在总线上执行的重要需求大于该门限值时,可在一输出上产生一真值。若该输出是一真确的,且快取线是存在于第二级高速缓存。在第二级快取记忆中的快取线不是在共享的状态时,微处理器会自第二级高速缓存转换快取线至第一级高速缓存。
(0019)本发明提供的微处理器,具有第一与第二高速缓存的特征。该微处理器包括一门限缓存器,是储存一总线动作队列深度门限值(bus transactionqueue depth threshold)与一比较器;该比较器连接至该门限缓存器并会产生一结果,若微处理器具有较总线动作队列深度门限值更多的其它操作,且在连接至微处理器的总线上执行时,该结果是一正确值。微处理器又包括有一指令译码器,将预取指令译码,以明确指定出快取线。微处理器也包括控制逻辑,以接收结果。若快取线在第一与第二高速缓存未命中,且结果是正确的,则控制逻辑会放弃在总线上提取快取线的动作的需求。
(0020)本发明还提供一种方法,即一具有第一级高速缓存与第二级高速缓存的处理器进行选择性地提取快取线的方法,该快取线是由预取指令所指示出的。该方法包括决定快取线是否在第一级高速缓存与第二级高速缓存中命中,决定若快取线在第二级高速缓存中命中,则快取线的状态,与决定较预先决定的门限值更多的其它操作是否可以被处理器队列,以在连接至该处的总线上进行其它操作。若快取线在第一与第二高速缓存未命中,且并无较门限值多的其它操作被队列,该方法也包括自细系统内存而来的快取线。
(0021)本发明的优点即是经由不去配置预取线至随后而来更形急迫的配置的损伤(detriment)处,而可使处理器总线与高速缓存的使用更有效率。该可编程的门限缓存器的额外性优点在芯片硬件与时效上可完成选择性的预取,尤以相关自然产生的利益为特别。
(0022)本发明的其余特征与优点将在以下的附图与说明中进行讨论。为更进一步了解,请参考下面附图及所伴随实施例的各项详细说明,将会对本发明技术内容和特点有最好的了解。
附图说明
(0023)图1是本发明的微处理器的一区块图;
(0024)图2是图1的微处理器的操作流程图。
具体实施方式
(0025)请参考图1所示,一微处理器100的区块图,该微处理器100是依据本发明选择性执行的预先处理。
(0026)微处理器100包括一控制逻辑102。该控制逻辑102接收与产生多种的控制信号,以控制微处理器100进行选择性地预取快取线的动作。该动作是依据对未来处理器总线使用的预估所进行的,且该预估是由处理器总线使用的现今层级到预先决定的起始层级的关系所决定的。所谓的起始层即将由以下进行描述。
(0027)微处理器100还包括一指令译码器104,与控制逻辑102连接。指令译码器104接收软件程序的指令以经由微处理器100执行,并且将那些接收的指令译码。尤其是指令译码器104被配置来将预取的指令译码。指令译码器104会经由预取指令信号122来通知控制逻辑102,曾经将一预取指令译码。
(0028)微处理器100还包括一缓存器档案106,连接至指令译码器104,缓存器档案106储存了数个指令操作数。尤其地,储存的操作数为计算预取的地址,如区段描述符、数组索引、位移量等部份。
(0029)微处理器100还包括一地址产生器108,连接至缓存器档案106。地址产生器108基于缓存器档案106所接收的操作数产生地址。尤其是地址产生器108产生一预取地址146,其为预取指令所指定的一内存地址。
(0030)微处理器100还包括一第一级高速缓存112,连接至地址产生器108。第一级高速缓存112快取储存数个字节的快取线及其相对应的地址,而这些字节是读取自微处理器100外的内存。第一级高速缓存112也维护每一条快取线的状态。在本实施例中,第一级高速缓存112利用MESI(修饰、互斥、共享、无效)快取一致性通讯协议。由第一级高速缓存112所维护的快取线状态包括MESI之一的状态值。第一级高速缓存112自地址产生器108处接收预取地址146,并再响应产生一第一级高速缓存命中信号124。若预取地址146在第一级高速缓存112中命中,第一级高速缓存命中信号124是真值;若非如此,第一级高速缓存命中信号124是伪值。也就是说,若预取地址146在第一级高速缓存112中被快取了,且地址具有有效的状态,则第一级高速缓存命中信号124是真值。在MESI这个实施例中,有效的状态是修饰、互斥、共享。第一级高速缓存命中信号124提供给控制逻辑102。
(0031)微处理器100还包括一第二级高速缓存114,该高速缓存114是连接着第一级高速缓存112。第二级高速缓存114快取储存数个字节的快取线及其相对应的地址,而这些字节是读取自微处理器100外的内存。第一级高速缓存112在快取记忆级层中较第二级高速缓存114更接近微处理器100中的数个执行单元,该单元会使用这些快取线数据,如一整数算数逻辑单元(integerarithmetic logic unit)与一浮点单元(floating-point unit)。以上二例在图1中并无显示。在本实施例中,第二级高速缓存114是第一级高速缓存112的牺牲性高速缓存。同时,第二级高速缓存114也利用MESI快取一致性通讯协议(MESI cache coherency protocol)。
(0032)第二级高速缓存114也自地址产生器108接收预取地址146,并在那里回复时产生一第二级高速缓存命中信号126。若预取地址146在第二级高速缓存114中命中,则第二级高速缓存命中信号126是真值;若非如此,第二级高速缓存命中信号126是伪值。第二级高速缓存命中信号126是提供给控制逻辑102。此外,第二级高速缓存114会提供一快取线的状态,该快取线会在第二级高速缓存114至一第二级高速缓存状态信号128上的控制逻辑102命中。
(0033)控制逻辑102会产生一控制信号132送至第一级高速缓存112与第二级高速缓存114。信号132指示第一级高速缓存112去配置储存,以接收来自第二级高速缓存114的一快取线。尤其是第二级高速缓存114是选择性地转换至第一级高速缓存112,该快取线是由预取指令所明确指定出的,而该预取指令是依据以下所要描述的信号132而来的。
(0034)在本实施例中,第一级高速缓存112与第二级高速缓存114都是写入配置(wrlte-allocate)高速缓存。也就是说,它们会在一写入未命中(writemiss)后有配置一快取线的反应,而不是将写入其它操作送至在离微处理器100的执行单元较远的内存级层中的一层级。举例来说,在写入第一级高速缓存112中未命中时,会再配置一快取线,而不是转送一写入动作(write transaction)至第二级高速缓存114。相同地,在写入第二级高速缓存114中未命中时,会再配置一快取线,而不是转送一写入动作(write transaction)至系统内存。
(0035)微处理器100还包括了一总线接口单元(bus interface unit;BIU)118,以下简称BIU118,该BIU118是连接至第一级高速缓存112与第二级高速缓存114。总线接口单元118连是微处理器100其它区块图,包括第一级高速缓存112与第二级高速缓存114至一处理器总线142。该处理器总线142在系统中连接微处理器100至其它硬件,如至系统内存;或者是其它的装置,而这些装置必须能扮演总线处理器142的主要角色,如其它的处理器。在本实施例中,第一级高速缓存112包括一第一级指令高速缓存与一第一级数据高速缓存。在本实施例中,每一个第一级指令高速缓存(L1 instruction cache)、第一级数据高速缓存(L1 data cache)与第二级高速缓存114都是处理器总线142至BIU118的总线控制者(bus master)。每一个高速缓存都可命令BIU118执行处理器总线142上的总线需求。
(0036)一总线需求或一总线动作都是一在处理器总线142上执行动作的需求。举例说明,处理器总线142的动作是包括数据的读或取的转移,如一预取指令所明确指定出的快取线;另一例,即介于微处理器100与其它系统硬件之间,如系统内存。总线动作也包括快取一致性通讯协议相关的总线循环(cache coherency protocol-related bus cycles),如一处理器通知其它的处理器,要求快取线的使用权,因此该处理器会改变线的快取状态,从一共享状态至一修饰状态。
(0037)当BIU118收到一命令以执行在处理器总线142上的动作时,BIU118会将总线需求排列在一队列中或一管线队列中。BIU118会维持所队列的未执行总线需求数目的一深度或一计数。BIU118提供总线需求队列深度136至控制逻辑102。在本实施例中,每一个高速缓存112与114会窥伺处理器总线142以监测处理器总线142上的其它控制器(bus master)的快取线命中。最后,BIU118自控制逻辑102接收一信号138,以指示BIU118去提取自系统内存而来的一快取线配置到第一级高速缓存112或第二级高速缓存114。
(0038)微处理器100还包括一可编程门限缓存器116。该门限缓存器116储存一门限值134。该门限值134可依据以下数个实施例方式,以程序化写入门限缓存器116中。
(0039)在本实施例中,门限缓存器116被包括于微处理器100中的一特征控制缓存器(feature control register)。依据重设之后初始化微码(microcode)的微处理器100将附有数个默认值的特征控制缓存器程序化,这些默认值在微处理器100制作过程中即已写入在该微码中,包括门限值134。
(0040)在本实施例中,微处理器100包括了一外接的、一次性编程的保险丝数组。这些保险丝会在微处理器100的制作后烧断,以将一屏蔽值写入该保险丝数组中,以为能改变特征控制缓存器的默认值。在这初始化微码将附有默认值的特征控制缓存器程序化后,微码会读取保险丝数组值、互斥或附有保险丝数组值的默认值与储存结果至特征控制缓存器。另一点,特征控制缓存器是使用者可看得见的。于是,在初始化与微码已程序化门限缓存器116后,在微处理器100上执行的软件会将初始值134写入门限缓存器116中。
(0041)在本实施例中,控制逻辑102监视总线需求排队等待深度136,并据以产生统计数据。控制逻辑102会在微处理器100的执行期间(run-time)时将根据收集到的统计数据存在于门限缓存器116中的初始值134更新。
(0042)微处理器100还包括一比较器152,是连接至门限缓存器116。该比较器152接收初始值134与总线需求排队等待深度136,并比较这二值以产生一结果144以提供给控制逻辑102。若总线需求排队等待深度136大于初始值134,则该结果144是真值;若非如此,则结果144是伪值。若是比较结果144显示总线需求排队等待深度136大于初始值134时,本发明可选择性地不去预取一预取指令所明确指定的快取线,除非快取线在一非共享状态下的第二级高速缓存114中命中,如图2中所描述的状况。这样使用处理器总线142会潜在地使其更有效率;尤其是在处理器总线1 42将在不久的未来就会被大量使用的的刻。比较结果144所扮演的是一预估BIU118是否在不久的未来执行一更高层级的总线动作的角色,如在预取指令后的短时间内即开始。若执行预取指令会延缓接下来更紧急的总线动作的执行时,这个预估会使控制逻辑102虚拟操作(no-op)该预取指令。例如,自内存配置更急迫需用的快取线。
(0043)本发明曾注意到处理器总线使用的先前动作与未来处理器总线使用之间具有一关连性。尤其是本发明注意到一超越一统计初始值的先前总线使用,是一种工作量的改变已然发生的征兆,如工作切换(task switch)。因此,当工作量的改变已然发生时,微处理器很可能将会需要使用处理器总线,以自与新工作量有关的内存提取快取线;而不是提取与预取指令有关的快取线。在上述状况下,且在某种特定条件时,进行虚拟操作预取指令的动作是有帮助的;而不是加上更多的处理器总线动作需求至总线接口单元排队等待(businterface unit queue)。
(0044)基于这样,当比较结果144显示一高可能性,即在不久的未来,处理器总线使用层级将会很高时,本发明将会应用该比较结果144于传统方法外的不同层面。以下伪码(pseudo-code)说明本发明的预取架构。
  (0045)

  if(在第一级高速缓存中快取线命中){

  no-op;/*什么都不做*/

  }else{

    if(总线需求深度大于初始值){

      if(在第二级高速缓存中快取线命中共享)

         no-op;/*什么都不做*/

      else if(在第二级高速缓存中快取线命中互斥或修饰)

             自第二级高速缓存转换快取线至第一级高速缓存;

      else

         no-op;/*什么都不做*/

   }else{

       if(在第二级高速缓存中快取线命中)

           自第二级高速缓存提供所需的快取线至第一级高速缓存;

       else

           自处理器总线提取快取线至第一级高速缓存;

         }  }
(0046)自上述的伪码所观察到的,若比较结果144并无显示处理器总线使用在不久的未来会有可能很高时,传统的架构将会被拿来使用;否则,除预取可以不产生更多的处理器总线动作外,也就是说执行一内部的转换,即自第二级高速缓存转换该明确指定预取快取线(shared prefetch-specified cache line)至第一级高速缓存。本发明会虚拟操作该预取指令,仅是选择性预取依据第二级高速缓存中快取线的某些状态。
(0047)共享快取线主要是将只读快取线在处理器总线上的数个控制器(master)间所共享,但是共享快取线也是可以写入的。然而,预取指令并不显示随后存取的预取数据将是加载或储存。若一指定的预取快取线自第二级高速缓存移动至第一级高速缓存,但随后的存取是储存入该快取线的,于是第一级高速缓存需要产生一总线需求至总线接口单元,以为通知其它的总线控制器以取得该快取线的使用权,以自共享至修饰状态间作一转换。如此,自第二级高速缓存转换至第一级高速缓存将不会有效能增益(performance gain),因为该储存将无法完成,也就是说,这样的状态无法更新,必须要等到主张总线使用权需求完成才可以。此外,自第二级高速缓存转换至第一级高速缓存时有可能损伤到效能的表现,因为这样的转换可能会取代第一级高速缓存中具有潜在功能的快取线。于是,若该指定预取快取线在第二级高速缓存中是共享状态的,该快取线最好是留在第二级高速缓存中,而不是转换至第一级高速缓存。本发明也注意到某特定的窗口操作软件会异常地将共享状态下的快取线在指令与数据高速缓存间来回传送。
(0048)请参考图2所示,是本发明图1中微处理器100的流程操作图。流程的开始自区块202。
(0049)在区块202中,指令译码器104将一预取指令进行译码,并告知控制逻辑102。处理流程自区块202至判断区块(decision block)204。
(0050)在判断区块204中,预取地址146应用于第一级高速缓存112,而控制逻辑102会检验第一级高速缓存命中信号124,以判断第一级高速缓存命中信号124是否真确,也就是说,预取地址146是否在第一级高速缓存112中命中。若是如此,控制逻辑102将不会预取该明确指定预取快取线。因为它早已在第一级高速缓存112,且流程至此结束;若不是,处理流程回至判断区块206。
(0051)在判断区块206中,控制逻辑102会检验结果144,以求取总线需求排队等待深度136是否大于初始值134。若否,处理流程回至判断区块208;否则,处理流程回至判断区块214。
(0052)在判断区块208中,预取地址146应用于第二级高速缓存114,而控制逻辑102会检验第二级高速缓存命中信号126,以决定第二级高速缓存命中信号126是否真确。也就是说,预取地址146是否在第二级高速缓存114中命中。若不是,处理流程回至区块212;否则,回至区块222。
(0053)在区块212中,控制逻辑102经由控制信号138命令BIU118,以排队等待一总线需求去提取由预取指令所明确指定的快取线。该预取指令在第一级高速缓存112与第二级高速缓存114中都未发现。控制逻辑102会提取快取线,因为该处理器总线142在不久的未来不会被高度使用可由总线需求排队等待深度136小大于初始值134来指出。本次流程将结束于区块212。
(0054)在判断区块214中,控制逻辑102会检验第二级高速缓存命中信号126,以求取第二级高速缓存命中信号126是否真确也就是说,预取地址146是否在第二级高速缓存114中命中。若不是,控制逻辑102不会提取明确指定快取线,因为总线需求排队等待深度136大于初始值134,所以该处理器总线142将如同之前曾提过的,即在不久的未来会被高度使用。于是,本次流程将结束于此;不然,流程将至判断区块216。
(0055)在判断区块216中,控制逻辑102会检验第二级高速缓存状态128,以求取由预取指令所明确指定的快取线状态是否是共享的。若是共享的,控制逻辑102将不会转换快取线自第二级高速缓存114至第一级高速缓存112,其原因在前已讨论过了。于是,本流程结束。若非如此,处理流程回至判断区块218。
(0056)在判断区块218中,控制逻辑102会检验第二级高速缓存状态128是否是互斥或修饰的。若第二级高速缓存状态128是互斥或修饰的一个值,则处理流程回至区块222。若否,该快取线是无效的,且控制逻辑102不会提取明确指定快取线,因为该处理器总线142将如之前曾提过的,即在不久的未来会被高度使用,因为总线需求排队等待深度136人于初始值134。于是,本次流程将结束于此。
(0057)在区块222中,控制逻辑102会在控制信号132上产生一真值(truevalue),以指示第二级高速缓存114转换预取指令所指定的快取线至第一级高速缓存112。也就是说,第一级高速缓存112为该明确指定预取快取线配置空间,并自第二级高速缓存114接收快取线,又储存该快取线至所配置的空间。于是,流程止于区块222。
(0058)以上有关本发明的实施例说明与附图,并非用来限制本发明权利要求的保护的范畴,且就熟悉该技术的人员而言,显然可有许多实质相同的等效变化,这些变化不应视为与本发明的精神与范围有所背离。所有凭借此项技术的变化、修饰,均应视为包括在本发明如下所述权利要求保护的范畴中。
(0059)本发明如前述的说明,确能达到预期的作用及效果,上述本发明较佳实施例的说明,是用以揭示本发明的技术特征,而非限制本发明的权益。因此,举凡结构上的细微变更或组件数目上的变更及等效的变换,仍应隶属本发明的范畴。
综上所述,本发明确实为同类产品中“首先发明”,且可发挥更大的实用功效,深具利用价值,且未见有雷同或近似的物品公开于市。

Claims (25)

1.一选择性执行预取指令的微处理器,其特征在于,它包括:
一总线接口单元,在一总线上执行总线动作,且该总线连接该微处理器至一内存;
一预估器,连接至该总线接口单元,以产生一预估,该预估是经由该预取指令所指定的一预取的快取线是否将延缓随后在该总线上的总线动作;及
控制逻辑,连接至该预估器,而若预估显示预取该快取线将延缓该随后的总线动作时,即将选择性地不进行预取快取线的动作。
2.如权利要求1所述的一选择性执行预取指令的微处理器,其特征在于,还包括:
一门限缓存器,连接至该预估器,以储存一预先决定的门限值;
其中该预估器会依据该门限值与该总线动作的排队等待值的一比较产生该预估。
3.如权利要求2所述的一选择性执行预取指令的微处理器,其特征在于,若该排队等待的总线动作数目大于门限值,则该预估器会预测预取的快取线将延缓随后的总线动作。
4.如权利要求1所述的一选择性执行预取指令的微处理器,其特征在于所述的随后的总线动作为自该内存中配置其它的快取线。
5.一选择性执行预取指令的微处理器,其特征在于,它包括:
一总线接口单元,显示一总线需求的当时层级,该总线需求是由该总线接口单元在一总线上执行,而该总线是连接该微处理器至一内存;
一缓存器,连接至总线接口单元,且储存一总线需求门限值;
一比较器,连接至该缓存器,该总线接口根据该总线需求门限值与总线需求的当时层级的一比较,产生是否会在该预取指令后随即执行更高层级总线需求的一预估;及
逻辑控制,连接至该比较器,且预取一快取线,而该快取线是由依据一第一方法的预取指令所明确指定出的,该第一方法是指若该预估显示总线接口单元将在总线上短暂接近预取指令的邻近区执行一更高层级的总线需求,若非如此,则会依据一第二方法预取快取记忆线。
6.如权利要求5所述的一选择性执行预取指令的微处理器,其特征在于,还包括:
一第一级与一第二级高速缓存,连接至该控制逻辑,其中,若该快取线在该第一级与第二级高速缓存中并未命中,则该第一方法即包括不会自内存提取快取线。
7.如权利要求6所述的一选择性执行预取指令的微处理器,其特征在于若快取线在第一级与第二级高速缓存中并未命中,该第二方法即包括自内存提取快取线而至第一级与第二级高速缓存至少的一中。
8.如权利要求6所述的一选择性执行预取指令的微处理器,其特征在于所述的第一方法还包括若快取线在第二级高速缓存命中与快取线在第二级高速缓存中具有一非共享(non-shared)状态时,则会转换快取线自第二级高速缓存至第一级高速缓存。
9.如权利要求6所述的一选择性执行预取指令的微处理器,其特征在于所述的第一方法还包括若快取线在第二级高速缓存命中与快取线在第二级高速缓存中具有一修饰或互斥状态时,则会转换快取线自第二级高速缓存至第一级高速缓存。
10.一选择性执行预取指令并明确指定一快取线的微处理器,具有一第一级高速缓存、一第二级高速缓存与一总线接口单元,以将该数个高速缓存连接至一总线,该总线连接微处理器与一内存,其特征在于,微处理器包括:
一门限缓存器,储存一门限值;
一比较器,该比较器连接至该门限缓存器,若于该总线接口单元中并将在该总线上待执行的需求大于该门限值时,可在一输出上产生一真值;
其中,若该输出是一真值的,且快取线是存在于第二级高速缓存,微处理器仅会在第二级快取记忆中的快取线一状态不是共享时,自第二级高速缓存转换快取线至第一级高速缓存。
11.如权利要求10所述的一选择性执行预取指令并明确指定一快取线的微处理器,其特征在于,若该输出是伪值的,且若快取线是现存于第二级高速缓存时,微处理器会将快取线自第二级高速缓存转换至第一级高速缓存。
12.如权利要求11所述的一选择性执行预取指令并明确指定一快取线的微处理器,其特征在于,若该输出是伪值的,且若快取线是不存于任一高速缓存时,微处理器会自该内存至提取快取线其中至少的一高速缓存中。
13.如权利要求12所述的一选择性执行预取指令并明确指定一快取线的微处理器,其特征在于,若该输出是真值,且若快取线是不存于任一高速缓存时,微处理器不会自该内存中提取快取线。
14.如权利要求10所述的一选择性执行预取指令并明确指定一快取线的微处理器,其特征在于,所述的预取指令是一兼容于Pentium III的预取指令。
15.如权利要求10所述的一选择性执行预取指令并明确指定一快取线的微处理器,其特征在于,所述的预取指令是一兼容于3DNOW的预取指令。
16.一具有一第一与一第二级高速缓存的微处理器,其特征在于,包括:
一门限缓存器,储存一总线动作队列深度门限值;
一比较器,连接至该门限缓存器并会产生一结果,若该微处理器将要在与连接至微处理器的总线上执行的动作比该总线动作队列深度门限值更多时,,该结果是一真值;
一指令译码器,将预取指令译码,以明确指定出快取线;
控制逻辑,为接收结果,若快取线在第一与第二级高速缓存未命中的结果是真确的,则控制逻辑会放弃一在总线上提取快取线动作的需求。
17.如权利要求16所述的一具有一第一与一第二级高速缓存的微处理器,其特征在于,若该高速缓存在共享状态下的第二级高速缓存中命中时,且仅在若该结果不是真值的条件下,该控制逻辑会将该快取线自第二级高速缓存转换至第一级高速缓存。
18.一种提供给一选择性执行预取指令并明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,包括:
判断该快取线是否命中在该第一与第二级高速缓存中;
若快取线在第二级高速缓存中命中,则判断该快取线的一状态;
判断在被该微处理器所排队等待的动作是否比预先决定的门限值更多,该总线是连接至该微处理器;及
若快取线在第一与第二级高速缓存中未命中,且该微处理器所排队等待的需求并未较排队等待的门限值动作多时,则自系统内存提取快取线。
19.如权利要求18所述的一种提供给一选择性执行预取指令并明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,还包括:
若该快取线并未在第一级指令高速缓存中命中,且该第二级指令高速缓存中快取线中,而状态是共享并若不大于该预先决定的排队等待门限值动作时,则白第二级指令高速缓存中转换快取线至第一级指令高速缓存。
20.如权利要求18所述的一种提供给一选择性执行预取指令并明确指定快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,还包括:
若该快取线并未在第一级指令高速缓存中命中,且若在第二级指令高速缓存中快取线命中,而第二级指令高速缓存是互斥或修饰状态时,则自第二级指令高速缓存中转换快取线至第一级指令高速缓存。
21.如权利要求18所述的一种提供给一选择性执行预取指令并明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,还包括:将该门限值写入一门限缓存器。
22.如权利要求21所述的一种提供给一选择性执行预取指令开明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,将该门限值写入一门限缓存器是在求取较门限值更多的动作是否被排队等待的动作之前进行的。
23.如权利要求21所述的一种提供给一选择性执行预取指令并明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,将该门限值写入一门限缓存器是经由微码于重设后进行,而该微码是存在于处理器中。
24.如权利要求21所述的一种提供给一选择性执行预取指令并明确指定快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,将该门限值写入一门限缓存器是经由微处理器中的软件所执行的。
25.如权利要求21所述的一种提供给一选择性执行预取指令并明确指定一快取线且具有一第一与一第二级高速缓存的微处理器的方法,其特征在于,将该门限值写入一门限缓存器包括:
在微处理器的执行期间,收集被处理器排队等待的该动作的统计数据;
依据收集的统计数据更新在门限缓存器中的门限值。
CNB021424799A 2002-06-18 2002-09-20 选择性执行预取指令的微处理器与方法 Expired - Lifetime CN100461092C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/175,383 US6810466B2 (en) 2001-10-23 2002-06-18 Microprocessor and method for performing selective prefetch based on bus activity level
US10/175,383 2002-06-18

Publications (2)

Publication Number Publication Date
CN1414467A true CN1414467A (zh) 2003-04-30
CN100461092C CN100461092C (zh) 2009-02-11

Family

ID=22640034

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021424799A Expired - Lifetime CN100461092C (zh) 2002-06-18 2002-09-20 选择性执行预取指令的微处理器与方法

Country Status (2)

Country Link
CN (1) CN100461092C (zh)
TW (1) TWI227402B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484044B2 (en) 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
CN101984403A (zh) * 2009-06-01 2011-03-09 威盛电子股份有限公司 微处理器及其执行的方法
CN102156627A (zh) * 2010-01-22 2011-08-17 威盛电子股份有限公司 执行快速重复载入数据串操作的微处理器
CN102591813A (zh) * 2009-07-10 2012-07-18 威盛电子股份有限公司 微处理器、存储器子系统以及快取数据的方法
CN102841865A (zh) * 2011-06-24 2012-12-26 上海芯豪微电子有限公司 高性能缓存系统和方法
CN103324585A (zh) * 2012-03-20 2013-09-25 苹果公司 分级缓存的处理器中的协作预取处理
TWI780804B (zh) * 2020-11-03 2022-10-11 美商聖圖爾科技公司 微處理器和預取指調整方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364902B2 (en) * 2009-08-07 2013-01-29 Via Technologies, Inc. Microprocessor with repeat prefetch indirect instruction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787475A (en) * 1992-07-21 1998-07-28 Digital Equipment Corporation Controlled prefetching of data requested by a peripheral
US5941981A (en) * 1997-11-03 1999-08-24 Advanced Micro Devices, Inc. System for using a data history table to select among multiple data prefetch algorithms
US6009510A (en) * 1998-02-06 1999-12-28 Ip First Llc Method and apparatus for improved aligned/misaligned data load from cache
US6014736A (en) * 1998-03-26 2000-01-11 Ip First Llc Apparatus and method for improved floating point exchange
CN1242546A (zh) * 1998-03-31 2000-01-26 英特尔公司 用于处理不精确异常的一种方法和装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484044B2 (en) 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
CN103699362A (zh) * 2009-06-01 2014-04-02 威盛电子股份有限公司 微处理器及其执行的方法
CN101984403A (zh) * 2009-06-01 2011-03-09 威盛电子股份有限公司 微处理器及其执行的方法
CN101984403B (zh) * 2009-06-01 2014-06-25 威盛电子股份有限公司 微处理器及其执行的方法
CN102591813B (zh) * 2009-07-10 2014-09-17 威盛电子股份有限公司 微处理器、存储器子系统以及快取数据的方法
CN102591813A (zh) * 2009-07-10 2012-07-18 威盛电子股份有限公司 微处理器、存储器子系统以及快取数据的方法
CN102156627A (zh) * 2010-01-22 2011-08-17 威盛电子股份有限公司 执行快速重复载入数据串操作的微处理器
CN102156627B (zh) * 2010-01-22 2014-12-10 威盛电子股份有限公司 执行快速重复载入数据串操作的微处理器
WO2012175058A1 (en) * 2011-06-24 2012-12-27 Shanghai Xinhao Microelectronics Co. Ltd. High-performance cache system and method
CN102841865A (zh) * 2011-06-24 2012-12-26 上海芯豪微电子有限公司 高性能缓存系统和方法
CN102841865B (zh) * 2011-06-24 2016-02-10 上海芯豪微电子有限公司 高性能缓存系统和方法
CN103324585A (zh) * 2012-03-20 2013-09-25 苹果公司 分级缓存的处理器中的协作预取处理
CN103324585B (zh) * 2012-03-20 2016-08-10 苹果公司 分级缓存的处理器中的协作预取处理
TWI780804B (zh) * 2020-11-03 2022-10-11 美商聖圖爾科技公司 微處理器和預取指調整方法

Also Published As

Publication number Publication date
TWI227402B (en) 2005-02-01
CN100461092C (zh) 2009-02-11

Similar Documents

Publication Publication Date Title
US5361391A (en) Intelligent cache memory and prefetch method based on CPU data fetching characteristics
US6810466B2 (en) Microprocessor and method for performing selective prefetch based on bus activity level
US5694568A (en) Prefetch system applicable to complex memory access schemes
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US8560781B2 (en) Technique for using memory attributes
EP2430551B1 (en) Cache coherent support for flash in a memory hierarchy
US8196147B1 (en) Multiple-processor core optimization for producer-consumer communication
US8140768B2 (en) Jump starting prefetch streams across page boundaries
EP0795820A2 (en) Combination prefetch buffer and instructions cache
JP3549079B2 (ja) キャッシュ制御の命令プリフェッチ方法
JPH096633A (ja) データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
EP0780769A1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US20090132749A1 (en) Cache memory system
US6487639B1 (en) Data cache miss lookaside buffer and method thereof
US20160117250A1 (en) Apparatus and Method of Throttling Hardware Pre-fetch
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
CN1673980A (zh) 为dma控制器提供高速缓存管理命令的系统和方法
CN101038567A (zh) 执行高速缓存线轮询操作的方法、系统和设备
EP1586039A2 (en) Using a cache miss pattern to address a stride prediction table
CN113190499A (zh) 一种面向大容量片上缓存的协同预取器及其控制方法
CN1414467A (zh) 选择性执行预取指令的微处理器与方法
CN112527729A (zh) 一种紧耦合异构多核处理器架构及其处理方法
US7353337B2 (en) Reducing cache effects of certain code pieces
CN113641598A (zh) 微处理器、高速缓存存储器系统及其中实现的方法
CN100520737C (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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20090211