CN100407171C - 设置高速缓存线填充总线存取优先级的微处理器和方法 - Google Patents

设置高速缓存线填充总线存取优先级的微处理器和方法 Download PDF

Info

Publication number
CN100407171C
CN100407171C CN2006101031854A CN200610103185A CN100407171C CN 100407171 C CN100407171 C CN 100407171C CN 2006101031854 A CN2006101031854 A CN 2006101031854A CN 200610103185 A CN200610103185 A CN 200610103185A CN 100407171 C CN100407171 C CN 100407171C
Authority
CN
China
Prior art keywords
request
bus
priority
microprocessor
unblock
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.)
Active
Application number
CN2006101031854A
Other languages
English (en)
Other versions
CN1932782A (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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 US11/225,865 external-priority patent/US7313658B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1932782A publication Critical patent/CN1932782A/zh
Application granted granted Critical
Publication of CN100407171C publication Critical patent/CN100407171C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种设置高速缓存线填充总线存取优先级的微处理器和方法,其根据请求类型排列高速缓存线填充请求,而不是按程序顺序发出该请求。该请求是以主时钟频率在微处理器内部产生的,从总线上发出,主时钟频率为总线时钟频率的倍数。请求类型为阻塞类型和一个或多个非阻塞类型。阻塞请求初始分配比非阻塞请求高的优先级。每个总线时钟依次地选择最高优先级请求以在总线上发出,并递增未被选择的每个请求的优先级。如果不止一个请求为最高优先级,则以循环顺序选择最高优先级请求。如果发生影响其类型的事件,可改变该请求的优先级。

Description

设置高速缓存线填充总线存取优先级的微处理器和方法
技术领域
本发明涉及微处理器中的高速缓存存储器,特别是涉及具有不同主时钟频率和总线时钟频率的微处理器中的高速缓存存储器。
背景技术
当代的计算机系统通常包括微处理器。微处理器通过处理器总线与系统的其他组成部分连接并通信,如传送数据。
通常,处理器总线工作在一个时钟频率上,且微处理器内部的电路工作在另一个更高的时钟频率上。通常将内部微处理器时钟频率称为主时钟频率。例如,处理器总线时钟频率为100MHz,而主时钟频率为1GHz。
通常主时钟频率是总线时钟频率的倍数。在上面的例子中,倍数或时钟倍率为10。常见的倍数也可为分数,如15/2。不管它们的值如何,主时钟频率通常比总线时钟频率大一个数量级。该时钟倍率可在制造期间编程到微处理器中,或可以是可编程的。
微处理器通常包括高速缓存存储器。高速缓存存储器是处理器中相对小的存储器,其存储的是系统存储器中的数据子集,以降低数据存取时间,因为访问高速缓存存储器要比访问系统存储器快得多。高速缓存存储器将数据存储在高速缓存线中。高速缓存线长度一般为32字节,且高速缓存线排列在高速缓存线大小的存储器地址边界上。当指令试图读或写数据时,微处理器首先在该高速缓存存储器中检查是否存在数据地址所指的高速缓存线。如果存在,指令从高速缓存存储器中读取数据,或将数据写入高速缓存存储器中。否则,高速缓存存储器在处理器总线上产生总线请求以从系统存储器中读取数据或将数据写入系统存储器中。
尽管微处理器每个主时钟周期可内部地产生一个或多个总线请求,但微处理器每个总线时钟周期只能在外部处理器总线上发出一个总线请求。因此,在一个总线时钟周期期间,根据指令顺序和时钟倍率值,微处理器可内部地产生许多请求。但是,微处理器每个总线时钟周期只能在处理器总线上发出这许多总线请求中的一个。剩余的总线请求必须等到下一总线时钟周期时,微处理器才能发出另一请求。
传统的方法按程序顺序,即按程序执行时微处理器产生请求的顺序在处理器总线上发出内部产生的请求。但是,传统方法不能识别程序产生总线请求的顺序与待处理请求的紧急顺序的不同。即对与一个总线请求有关的高速缓存存储器中遗漏的数据的需求比对与另一不同总线请求有关的高速缓存存储器中遗漏的数据的需求更紧急。
因此,需要一种微处理器和方法,其利用主时钟与总线时钟频率之间的不同,以在次紧急总线请求之前发出更紧急的总线请求。
发明内容
本发明提供一种微处理器,其累积以主时钟频率产生的总线请求,并根据请求类型按优先顺序排列总线请求,以及在每个总线时钟发出最高优先级的请求。为保证较高优先级的总线请求不会无限期地延缓较低优先级的总线请求,每次选择过程中如果一待处理总线请求没有被选择为最高优先级,则增加其优先级,且以循环方式选择当前最高优先级的请求。最后,如果发生影响其类型的事件,可改变待处理总线请求的类型及其优先级。
一方面,本发明提供一种微处理器,其与总线相连,以连接到系统存储器上。该总线以总线时钟频率工作。微处理器具有核心逻辑电路,其工作在主时钟频率。主时钟频率为总线时钟频率的倍数。微处理器包括数据高速缓存存储器,其以主时钟频率在总线上产生请求以从系统存储器中读取高速缓存线。每个请求含一个请求类型,其为多个预定请求类型之一。请求类型包括阻塞请求类型和至少一个非阻塞请求类型。微处理器还包括控制逻辑电路,其与数据高速缓存存储器相连,它以主时钟频率累积请求,并根据请求类型初始分配一优先级给每个累积的请求。控制逻辑电路还以总线时钟频率选择一最高优先级的请求以在总线上发出,并提高每个未被选择的累积请求的优先级。控制逻辑电路初始分配阻塞型请求的优先级为第一值,并分配非阻塞型请求的优先级为第二值,其中第一值的优先级比第二值高。
另一方面,本发明为微处理器提供一种方法,以在连接微处理器与系统存储器的总线上从系统存储器请求高速缓存线。总线工作在总线时钟频率上,且微处理器的核心逻辑电路工作在主时钟频率上,主时钟频率为总线时钟频率的倍数。该方法包括以主时钟频率接收多个总线请求,并根据请求类型初始分配一优先级给其中的每个总线请求。该方法还包括以总线时钟频率选择多个请求中的一最高优先级的请求以在总线上发出,且提高其余每个请求的优先级。
另一方面,本发明为微处理器提供一种方法,以在连接微处理器与系统存储器的总线上从系统存储器请求高速缓存线。总线工作在总线时钟频率上,且微处理器的核心逻辑电路工作在主时钟频率上,主时钟频率为总线时钟频率的倍数。该方法包括以主时钟频率接收多个总线请求,并根据请求类型初始分配一优先级给每个总线请求。该方法还包括以总线时钟频率确定多个请求是否不止一个请求为最高优先级。该方法还包括如果只有一个请求为最高优先级,则选择该最高优先级的请求以在总线上发出,并且如果不止一个请求为最高优先级,则以循环方式选择多个最高优先级请求中的一个以在总线上发出。
本发明的优点是其利用核心逻辑电路和总线逻辑电路时钟频率的不同,通过将更紧急请求按优先顺序排列在次紧急请求之前以更有效使用处理器总线并降低存储器访问指令的每指令时钟数(CPI)来潜在提高性能。此外,通过按优先顺序排列整个总线时钟周期中累积的总线请求,本发明实现了更佳的按优先顺序排列。
研究说明书和附图的其他部分之后,本发明的其他特性和优点将变得更明显。
附图说明
图1表示根据本发明的微处理器100的方框图;
图2表示根据本发明图1的控制逻辑电路的方框图;
图3表示根据本发明图1的微处理器操作流程图;
图4至图6表示根据本发明图1的微处理器操作时序图。
具体实施方式
现在参照图1,图1示出了根据本发明的微处理器100的方框图。
微处理器100包括数据高速缓存存储器102。数据高速缓存存储器102接收微处理器100的主时钟信号112。主时钟信号112为驱动微处理器100的核心逻辑电路的时钟信号。微处理器100还接收总线时钟信号114。总线时钟信号114为与处理器总线118有关的时钟信号,其与微处理器100相连。处理器总线118将微处理器100连接到系统中的其他设备,如系统存储器和I/O设备。其他设备和微处理器100在处理器总线118上相互传送数据。主时钟信号112频率为总线时钟信号114频率的倍数。在一个实施例中,主时钟信号112频率为总线时钟信号114频率的7倍。但是,也可为其他倍数,且本发明不限制于特定倍数,此外,除整数倍数之外,主时钟信号112频率可为总线时钟信号114频率的分数倍数,如
Figure C20061010318500101
数据高速缓存存储器102包括存储单元阵列,用于存储高速缓存线和与高速缓存线有关的高速缓存存储器标记状态。数据高速缓存存储器102从微处理器100内的不同功能单元接收传送数据给数据高速缓存存储器102的请求或从数据高速缓存存储器102传送数据的请求。数据传送请求包括存储器地址。如果数据高速缓存存储器102中存在包含存储器地址指定的数据的高速缓存线,则数据高速缓存存储器102将该数据发送给该请求功能单元或从该请求功能单元发送该数据。但是,如果数据高速缓存存储器102中不存在包含指定数据的高速缓存线,则数据高速缓存存储器102产生请求,以从系统存储器获得遗漏的高速缓存线。还将从系统存储器获得高速缓存线的请求称为高速缓存线填充或高速缓存线分配。在图1的实施例中,数据高速缓存存储器102产生四种类型的高速缓存线填充请求,以从系统存储器获得遗漏的高速缓存线。数据高速缓存存储器102以主时钟信号112频率产生请求。
第一请求类型为阻塞存取型。数据高速缓存存储器102在阻塞存取信号128上产生阻塞存取型请求。当请求数据传送的功能单元将暂停直到数据在数据高速缓存存储器102与功能单元之间传送时,数据高速缓存存储器102产生阻塞存取型请求128。即阻塞存取型请求128与微处理器100中的功能单元有关,其需要阻塞存取型请求所指定的数据以便进行。阻塞存取型请求的示例为导致微处理器100的流水线进程暂停的加载和存储操作。
阻塞存取型请求的另一示例为阻塞页表途径(walk)请求。当数据高速缓存存储器102存取存储器地址在微处理器100的变换旁路缓冲器(TLB)中遗漏时,产生页表途径请求。页表包含微处理器100页面单元执行地址变换所需的数据。将页表存储在系统存储器中。但是,TLB将页表数据高速缓存在微处理器100中。页表途径请求为对TLB中遗漏的页表数据的请求。阻塞页表途径请求为导致微处理器100流水线暂停的页表途径请求。
第二请求类型为非阻塞表途径存取类型。数据高速缓存存储器102在非阻塞表途径存取信号126上产生非阻塞表途径存取型请求。非阻塞页表途径请求为不导致微处理器100流水线暂停的页表途径请求。例如,非阻塞页表途径请求可与推测性页表途径有关。推测性页表途径的示例如下。假定第一加载指令在数据高速缓存存储器102中遗漏,从而产生阻塞存取请求128。第一加载指令之后跟随第二加载指令,其命中数据高速缓存存储器102。但是,尽管第二加载指令命中数据高速缓存存储器102,即数据高速缓存存储器102提供数据给第二加载指令,第二加载指令在TLB中产生遗漏,这就需要页表途径请求。因此,尽管第二加载指令不是阻塞请求,即流水线不暂停下来等待第二加载指令所请求的数据,数据高速缓存存储器102仍预测到可使流水线暂停的页表途径请求,并当正从系统存储器取得第一加载指令数据时,产生预测性表途径存取请求。
第三请求类型为非阻塞存储分配存取类型。数据高速缓存存储器102在非阻塞存储分配存取信号124上产生非阻塞存储分配存取型请求。数据高速缓存存储器102产生非阻塞存储分配请求124与存储到有回写特性的系统存储器的可高速缓存区有关。如果存储存储器地址在数据高速缓存存储器102中遗漏,则数据高速缓存存储器102发出总线请求,以将遗漏高速缓存线从系统存储器读入到数据高速缓存存储器102中。当从系统存储器读取高速缓存线并存储到数据高速缓存存储器102中时,则将与该存储有关的数据写入数据高速缓存存储器102中。特别是,存储分配请求,即请求从系统存储器读取遗漏的高速缓存线,不导致微处理器100流水线暂停。
第四请求类型为非阻塞预取存取类型。数据高速缓存存储器102在非阻塞预取存取信号122上产生非阻塞预取存取型请求。数据高速缓存存储器102产生非阻塞预取请求122,以从系统存储器预取微处理器100产生的预取指令或预测性预取所指定的高速缓存线。
微处理器100还包括与数据高速缓存存储器102连接的控制逻辑电路104。控制逻辑电路104接收主时钟信号112。控制逻辑电路104还根据主时钟信号112从数据高速缓存存储器102接收非阻塞预取存取信号122、非阻塞存储分配存取信号124、非阻塞表途径存取信号126、以及阻塞存取信号128。控制逻辑电路104响应高速缓存线填充请求信号122-128产生总线请求信号116,以请求在处理器总线118上产生事务来从系统存储器获得高速缓存线。更有利的是,控制逻辑电路104累积总线时钟114期间或周期内请求信号122-128上产生的请求,根据每个请求的请求类型分配初始优先级给累积请求,以及刚好在下一总线时钟114之前,根据最高优先级请求产生总线请求信号116,如下面所详细描述的,而不只是像传统方法中那样按程序顺序产生总线请求116。此外,更有利的是,每次控制逻辑电路104选择最高优先级请求时,它也提高了每个未被选择的请求的优先级,以保证不会发生请求无限期地通过。此外,更有利的是,如果有多个最高优先级请求,控制逻辑电路104按循环顺序选择其中之一以进一步确保不会发生请求无限期地通过。尽管图1所示控制逻辑电路104和数据高速缓存存储器102为不同实体,也可将控制逻辑电路104包含在数据高速缓存存储器102中。
微处理器100还包括总线接口单元(BIU)106,其与数据高速缓存存储器102和控制逻辑电路104连接。BIU 106从控制逻辑电路104接收总线请求信号116。BIU 106与处理器总线118连接。BIU 106对访问处理器总线118进行裁定,且在处理器总线118上产生总线事务,以在微处理器100与其他系统设备如系统存储器之间传送数据。尤其是,BIU 106根据总线请求信号116在处理器总线118上产生总线事务,以从系统存储器取得高速缓存线。BIU 106还接收主时钟信号112和总线时钟信号114。
现在参照图2,图2示出了图1控制逻辑电路104的方框图。控制逻辑电路104包括请求队列202。请求队列202存储从图1数据高速缓存存储器102接收的请求122-128。请求队列202包括用于存储请求的多个项215,如图2所示。每个请求项215包括用于存储该请求的优先级211和该请求所指定的存储器地址213的存储空间。此外,每个项215包括有效位217,用于指示项215是否包含有效请求。在一个实施例中,优先级211包括4位,从而每个请求215有16个可能的优先级211值之一。在一个实施例中,布尔值4′b0000为最低优先级,和布尔值4′b1111为最高优先级。在一个实施例中,布尔值4′b1111为最低优先级,和布尔值4′b0000为最高优先级。
控制逻辑电路104还包括累积逻辑电路204,其与请求队列202连接。累积逻辑电路204从数据高速缓存存储器102接收高速缓存线填充请求信号122-128。在一个实施例中,累积逻辑电路204将请求信号122-128上接收的高速缓存线填充请求按接收顺序存储在请求队列202中。但是,在另一实施例中,尽管将请求队列202称为队列,请求队列202不必起先入先出结构的功能;相反请求队列202起随机存取结构的功能。即,累积逻辑电路204将请求122-128存储在请求队列202的第一可用项215中。类似地,不必按进入请求队列202的顺序从请求队列202中删除请求122-128。
当累积逻辑电路204将请求存储到请求队列202项215时,它根据该请求的请求类型分配初始优先级给请求215中的项优先级字段211。在一个实施例中,累积逻辑电路204分配初始优先级211,如下表1所示。在表1的实施例中,较大的二进制优先级值对应较高的优先级,而较小的二进制优先级值对应较低的优先级,因此4′b1111(十进制15)为最高的可能优先级值,且4′b0000(十进制0)为最低的可能优先级值。在另一实施例中,与上述正好相反,即4′b1111为最低的可能优先级值,而4′b0000为最高的可能优先级值。
  请求类型   初始优先级
  阻塞存取   4′b1100(十进制12)
  非阻塞表途径存取   4′b0111(十进制7)
  非阻塞存储分配或预取存取   4′b0000(十进制0)
表1
控制逻辑电路104还包括按优先顺序排列逻辑电路206,其与请求队列202连接。按优先顺序排列逻辑电路206接收类型更新事件信号203,其指示微处理器100内已发生改变请求队列202中存储的请求215的请求类型的事件。例如,可执行预取指令,从而将预取型请求215累积到请求队列202中。随后,来自预取请求215中指定的同一高速缓存线的加载指令可能在数据高速缓存存储器102中遗漏,导致流水线暂停直到遗漏数据返回。因此,类型更新事件信号203将指示遗漏的高速缓存线的地址,并指示该地址与阻塞请求有关。
为响应类型更新事件信号203,按优先顺序排列逻辑电路206更新由类型更新事件信号203所指定的请求215的优先级211。因此,在上述例子中,如果预取请求215具有的当前优先级211为4’b0000,且类型更新事件信号203指示该请求215中指定的地址已成为阻塞请求类型的对象,则按优先顺序排列逻辑电路206将优先级211更新为值4′b1100。
控制逻辑电路104还包括总线请求发出逻辑电路208,其与请求队列202连接。在一个实施例中,在下一总线时钟114周期前的主时钟112周期,总线请求发出逻辑电路208选择在请求队列202中存储的最高优先级高速缓存线填充请求215,并通过总线事务请求信号116将所选择的请求215发送到图1的总线接口单元106。作为响应,总线接口单元106在处理器总线118上发出所选择的请求116。总线请求发送逻辑电路208还从请求队列202中删除所选择的请求215。在一个实施例中,微处理器100内的其他功能单元还请求总线接口单元106,其在总线请求发送逻辑电路208与其他功能单元之间进行裁定,用以访问处理器总线118,且仅当总线请求发送逻辑电路208获得总线接口单元106的使用权时,总线请求发送逻辑电路208才删除所选择的请求215。
此外,在总线请求发送逻辑电路208在处理器总线118上发出请求215并从请求队列202中删除该请求215之后,按优先顺序排列逻辑电路206还更新剩余的每个请求215的优先级211。在一个实施例中,每次从请求队列202中删除一个请求215时,按优先顺序排列逻辑电路206递增请求队列202中剩余的每个请求215(即未被选择在处理器总线118上发出的每个请求215)的优先级211。
控制逻辑电路104还包括循环状态指示器205,其与总线请求发送逻辑电路208连接。在一个实施例中,循环状态指示器205包括循环指针,其指向请求队列202中的一项215。每次在处理器总线118上发出请求215,循环指针递增到请求队列202中的下一项215。当循环指针到达请求队列202的一端时,它绕到请求队列202的另一端。循环指针用于不止一个请求215为最高优先级请求的场合,以按令人满意的方式从最高优先级请求中加以选择,如下面进行的更详细描述。
更有利的是,将提高请求队列202中剩余的未被选择的请求215的优先级211,与按循环顺序选择最高优先级请求215相结合,可防止发生活锁(live-lock)情形,即,在病态(pathological)情况下,请求215永远都不会被选择在处理器总线上发出。
现在参照图3,图3示出了图1的微处理器100的流程图。流程从判决框302开始。
在判别框302,图1的控制逻辑电路104确定当前主时钟112周期是否为刚好下一总线时钟114周期之前的主时钟112周期。如果不是,则流程转到判别框304。否则,流程转到判别框308。
在判别框304,图2的累积逻辑电路204确定数据高速缓存存储器102是否正在图1的任何请求信号122-128上产生高速缓存线填充请求。如果不是,则流程转到框307。否则,流程转到框306。
在框306,累积逻辑电路204按照上面的表1,根据其请求类型分配初始优先级给信号122-128上的任何高速缓存线填充请求,将每个请求累积到请求队列202的一项215中,其包括用初始分配的优先级填充优先级字段211,用该请求所指定的高速缓存线地址填充地址字段213,以及设置有效位217。流程转到框307。
在框307,如果类型更新事件信号203指示需要更新,则图2的按优先顺序排列逻辑电路206更新请求队列202中其请求类型已改变的每个请求215的优先级211。在一个实施例中,如果该更新使该请求215的优先级211提高,则按优先顺序排列逻辑电路206只更新请求215的优先级211。流程返回到判别框302。
在判别框308,累积逻辑电路204确定数据高速缓存存储器102是否正在任何请求信号122-128上产生高速缓存线填充请求。如果不是,则流程转到框309。否则,流程转到框312。
在框312,累积逻辑电路204按照上面的表1,根据其请求类型分配初始优先级给信号122-128上的任何高速缓存线填充请求,并将每个请求累积到请求队列202的一项215中,其包括用初始分配的优先级填充优先级字段211,以及用请求所指定的高速缓存线地址填充地址字段213。流程转到框309。
在框309,如果类型更新事件信号203指示需要更新,则图2的按优先顺序排列逻辑电路206更新请求队列202中其请求类型已改变的每个请求215的优先级211。在一个实施例中,如果该更新使该请求215的优先级211提高,则按优先顺序排列逻辑电路206只更新请求215的优先级211。流程转到判别框311。
在判别框311,图2的总线请求发送逻辑电路208确定请求队列202中是否存在不止一个最高优先级请求215。如果是,则流程转到框315,否则流程转到框313。
在框313,总线请求发送逻辑电路208选择请求队列202中的最高优先级请求215。流程转到框316。
在框315,总线请求发送逻辑电路208在请求队列202中选择由图2的循环状态指示器205指示的最高优先级请求215。在一个实施例中,如果循环指针所指向的请求队列202中的请求215的优先级211至少与请求队列202中任何其他请求215的优先级211一样高,则总线请求发送逻辑电路208选择由循环指针所指向的请求215;否则,总线请求发送逻辑电路208选择请求队列202中由循环指针所指向的请求215之后的具有至少与请求队列202中任何其他请求215的优先级211一样高优先级的下一请求215。流程转到框316。
在框316,图2的总线请求发送逻辑电路208根据框313或315中选择的请求215,在总线请求信号116上产生请求给图1的BIU 106。流程转到框317。
在框317,图2总线请求发送逻辑电路208从请求队列202中删除在框313或315中选择的请求215。在一个实施例中,总线请求发送逻辑电路208通过清除请求项215的有效位217,从请求队列202中删除在框313或315中选择的请求215。流程转到框319。
在框319,响应于从请求队列202中删除请求215,按优先顺序排列逻辑电路206更新该循环状态指示器205。在一个实施例中,更新该循环状态指示器205包括递增循环指针。流程转到框321。
在框321,按优先顺序排列逻辑电路206提高框316期间删除所选择的请求之后请求队列202中还剩余的每个请求215的优先级211。即按优先顺序排列逻辑电路206提高在框316中未被选择的请求队列202中的每个请求215的优先级211。流程返回到判别框302,以进行下一主时钟112周期期间的操作。在一个实施例中,对下一主时钟112周期执行框317、319和321中的操作。
由于主时钟112以固定比率与总线时钟114一起运行,只需在总线请求发送逻辑电路208产生总线请求116以在处理器总线118上开始一事务之前瞬间的主时钟112周期中选择请求队列202中累积的请求。因此,为在请求队列202中累积尽可能多的高速缓存线填充请求用以进行按优先顺序排列和选择,本发明等待直到可在处理器总线118上开始事务的总线时钟114周期开始前的最近的主时钟112周期,才选择在处理器总线118上发出请求。
现在参照图4,图4示出了图1的微处理器100的操作的第一时序图。该时序图表示根据图3的流程图的数据高速缓存存储器102请求高速缓存线填充以及控制逻辑电路104累积、选择和发出最高优先级总线请求的示例。该时序图示出了用1至5表示的5个主时钟112周期、以及一个总线时钟114周期。在图4的示例中,微处理器100的时钟倍率值为4。即主时钟112频率为总线时钟114频率的4倍,如图所示。主时钟周期1的开始与总线时钟周期的开始一致。
对每个主时钟周期,时序图示出了新请求是否由数据高速缓存存储器102在图1的高速缓存填充请求信号122-128上产生。对于每个主时钟周期,时序图还示出了图2的请求队列202内容。在图4例子中,请求队列202有4项215,用0至3表示。每项215包括优先级211(以十进制值表示)、地址213(如A、B、C)以及有效位217(V表示有效,I表示无效)。非阻塞预取存取信号122上产生的新请求用″nbpr-X″表示,其中X为地址。非阻塞存储分配存取信号124上产生的新请求用″nbsa-X″表示。非阻塞表途径存取信号126上产生的新请求用″nbtw-X″表示。阻塞存取信号128上产生的新请求用″blkg-X″表示。此外,时序图指示图2的类型更新事件信号203上是否已有事件发生。同样,时序图指示图2的循环状态指示器205的循环指针值。最后,时序图指示每个主时钟周期采取什么操作(如果有的话)。
在主时钟1期间,数据高速缓存存储器102产生对地址A的非阻塞表途径请求(nbtw-A),作为响应,累积逻辑电路204将其存储在项0中,并根据表1和图3的框306分配初始优先级211为7。
在主时钟2期间,数据高速缓存存储器102产生对地址B的阻塞请求(blkg-B),作为响应,累积逻辑电路204将其存储在项1中,并根据表1和图3的框306分配初始优先级211为12。
在主时钟3期间,数据高速缓存存储器102产生对地址C的非阻塞预取请求(nbpr-C),作为响应,累积逻辑电路204将其存储在项2中,并根据表1和图3的框306分配初始优先级211为0。
在主时钟4期间,数据高速缓存存储器102不产生新请求。由于图3的判别框302中将主时钟4确定为下一总线时钟114周期之前的主时钟112周期,根据图3的框313,总线请求发送逻辑电路208选择项1的请求215,因为项1具有最高优先级有效请求215。此外,根据图3的框316,总线请求发送逻辑电路208将所选择的项1中的请求215发送给BIU 106。
在主时钟5期间,开始新的总线时钟114周期。数据高速缓存存储器102不产生新的请求。但是,根据图3的框317,总线请求发送逻辑电路208从请求队列202中删除所选择的项1中的请求215。此外,根据图3的框319,总线请求发送逻辑电路208通过递增值1更新循环指针。最后,根据图3的框321,按优先顺序排列逻辑电路206通过增加优先级211提高请求队列202中每个请求215的优先级211。在一个实施例中,按优先顺序排列逻辑电路206递增请求队列202中每个请求215的优先级211,这与框321一致,因为所选择的项1中的请求215现在无效;因此增加项1的优先级211是不相关的。
现在参照图5,图5示出了根据图3流程的图1微处理器100的操作的第二时序图。图5的时序图示出了与图4类似的5个主时钟周期;但是图5用5至9表示时钟周期。图5中重复图4的主时钟周期5。
在主时钟6期间,数据高速缓存存储器102产生对地址D的非阻塞表途径请求(nbtw-D),作为响应,累积逻辑电路204将其存储在项1中(第一可用项215),并分配初始优先级211为7。
在主时钟7期间,数据高速缓存存储器102产生对地址E的非阻塞表途径请求(nbtw-E),作为响应,累积逻辑电路204将其存储在项3中(第一可用项215),并分配初始优先级211为7。
在主时钟8期间,数据高速缓存存储器102不产生新请求。由于判别框302中将主时钟8确定为下一总线时钟114周期之前的主时钟112周期,根据图3的框313,总线请求发送逻辑电路208选择项0的请求215,因为项0具有最高优先级有效请求215。此外,根据图3的框316,总线请求发送逻辑电路208将所选择的项0中的请求215发送给BIU 106。
在主时钟9期间,开始新的总线时钟114周期。数据高速缓存存储器102不产生新的请求。但是,根据框317,总线请求发送逻辑电路208从请求队列202中删除所选择的项0中的请求215。此外,根据框319,总线请求发送逻辑电路208通过递增其值2更新循环指针。最后,根据图3的框321,按优先顺序排列逻辑电路206通过递增优先级211提高请求队列202中每个请求215的优先级211。
现在参照图6,图6示出了根据图3流程的图1微处理器100的第三操作时序图。图6的时序图示出了与图5类似的5个主时钟周期;但是图6用9至13表示时钟周期。图6中重复图5的主时钟周期9。
在主时钟10期间,数据高速缓存存储器102不产生新请求。但是,数据高速缓存存储器102中地址C遗漏,导致微处理器100中流水线暂停,且类型更新事件信号203上指示该事件。因此,根据表1和图3的框307,按优先顺序排列逻辑电路206通过分配优先级为12更新项2的优先级211。
在主时钟11期间,数据高速缓存存储器102产生对地址F的阻塞请求(blkg-F),作为响应,累积逻辑电路204将其存储在项0中(第一可用项215),并分配初始优先级211为12。
在主时钟12期间,数据高速缓存存储器102不产生新请求。由于判别框302中将主时钟12确定为下一总线时钟114周期之前的主时钟112周期,根据图3的判别框311和框315,总线请求发送逻辑电路208选择项2的请求215,因为项2由循环指针指向并且至少为最高优先级有效请求215。此外,根据框316,总线请求发送逻辑电路208将所选择的项2中的请求215发送给BIU 106。
在主时钟13期间,开始新的总线时钟114周期。数据高速缓存存储器102不产生新的请求。但是,根据框317,总线请求发送逻辑电路208从请求队列202中删除所选择的项2中的请求215。此外,根据框319,总线请求发送逻辑电路208通过递增其值3更新循环指针。最后,根据框321,按优先顺序排列逻辑电路206通过递增优先级211提高了请求队列202中每个请求215的优先级211。
尽管已详细描述本发明及其目的、特性和优点,本发明还包括其他实施例。例如,尽管已按每个主时钟周期累积一个新高速缓存线填充请求来描述本发明,也可例如在同时产生请求的流水线中包含多个功能单元的微处理器中和/或在一多流水线或超标量处理器中每个主时钟周期累积多个请求。同样,尽管本发明根据3个优先等级按优先顺序排列请求,本发明还可适应不同数量的优先等级。此外,本发明可与处理器总线一起使用,其协议不允许每个总线时钟产生新的总线请求,但只允许每隔N个总线时钟产生新的总线请求。此外,尽管本发明将4个存取类型分组成不同优先等级,根据处理器的需要,使用本发明也可对其他存取类型分组。最后,尽管本发明在下一总线时钟边缘之前的主时钟累积总线请求并按优先顺序排列它们,也可在下一总线时钟边缘之前的其他整数倍(例如二倍或三倍)的主时钟之处,按优先顺序排列总线请求。
本领域的技术人员应理解他们很容易使用所公开的概念和特定实施例作为设计或修改其他结构的基础,以执行本发明的相同意图,而不偏离本发明的权利要求中定义的本发明的实质和范围。

Claims (29)

1.一种微处理器,其与总线连接以与系统存储器连接,该总线工作在总线时钟频率,该微处理器具有工作在主时钟频率的核心逻辑电路,主时钟频率为总线时钟频率的数倍,包括:
数据高速缓存存储器,被配置为以主时钟频率在总线上产生请求,以从系统存储器读取高速缓存线,每个所述请求具有来自多个预定请求类型的请求类型,多个预定请求类型包括阻塞请求类型和至少一个非阻塞请求类型;
控制逻辑电路,其与所述数据高速缓存存储器连接,被配置为以主时钟频率累积所述请求并根据所述请求类型初始分配优先级给每个所述累积请求,以及被配置为以总线时钟频率选择最高优先级的所述请求以在总线上发出,以及提高每个所述未被选择的累积请求的所述优先级,其中所述控制逻辑电路被配置为将阻塞请求类型的请求的所述优先级初始分配为第一值,以及将非阻塞请求类型的请求的所述优先级分配为第二值,其中所述第一值的优先级比所述第二值高;以及,
总线接口单元,其与所述控制逻辑电路连接,被配置为从所述控制逻辑电路接收并在总线上发出所述所选择的最高优先级请求。
2.根据权利要求1的微处理器,其中,所述控制逻辑电路被配置为:当不止一个所述累积请求为最高优先级时,则按循环顺序选择一个所述最高优先级累积请求,以在总线上发出。
3.根据权利要求2的微处理器,其中所述请求累积在所述控制逻辑电路的请求队列中。
4.根据权利要求3的微处理器,其中所述请求队列包括多个项,用于存储所述请求,该多个项中的每个项包括用于存储所述优先级的存储区。
5.根据权利要求4的微处理器,其中所述控制逻辑电路包括循环指针,其指向该多个项中之一项,用于按循环顺序选择所述最高优先级累积请求之一,以在总线上发出。
6.根据权利要求5的微处理器,其中所述控制逻辑电路每次从所述请求队列中删除所述累积请求中的一个时,更新所述循环指针。
7.根据权利要求1的微处理器,其中所述控制逻辑电路还被配置为确定是否已发生将每个所述累积请求的所述请求类型改变为不同请求类型的事件,以及根据所述不同请求类型更新已发生影响所述请求类型的事件的每个所述累积请求的所述优先级。
8.根据权利要求1的微处理器,其中所述至少一个非阻塞请求类型的请求包括在总线上将页表数据从系统存储器传送到微处理器的请求。
9.根据权利要求8的微处理器,其中所述至少一个非阻塞请求类型的请求包括如下之一:
将与所述数据高速缓存存储器中的存储遗漏有关的高速缓存线从系统存储器传送到微处理器的请求,其中所述控制逻辑电路被配置为将请求传送页表数据的所述优先级初始分配为第二值,将请求传送与存储遗漏有关的高速缓存线的所述优先级分配为第三值,其中所述第二值的优先级比所述第三值的优先级高;
从系统存储器预取高速缓存线到微处理器,其中所述控制逻辑电路被配置为将请求传送页表数据的所述优先级分配为第二值,将请求在总线上从系统存储器预取高速缓存线到微处理器的所述优先级分配为第三值,其中所述第二值的优先级比所述第三值的优先级高。
10.根据权利要求1的微处理器,其中所述至少一个非阻塞请求类型的请求包括如下之一:
将与来自系统存储器的在所述数据高速缓存存储器中存储的遗漏有关的高速缓存线传送到微处理器的请求;
从系统存储器预取高速缓存线到微处理器的请求。
11.根据权利要求1的微处理器,其中所述阻塞请求类型与如下之一有关:
微处理器中由所述阻塞请求类型请求所指定的所需数据以进行的功能单元;
导致微处理器中流水线暂停直到与所述阻塞请求类型请求有关的数据从系统存储器取到微处理器为止的操作所产生的请求。
12.根据权利要求1的微处理器,其中所述至少一个非阻塞请求类型包括非阻塞页表途径请求类型。
13.根据权利要求12的微处理器,其中所述非阻塞页表途径请求类型包括由于变换旁路缓冲器遗漏,在总线上从系统存储器读取页表数据的请求。
14.根据权利要求12的微处理器,其中所述至少一个非阻塞请求类型包括非阻塞存储分配请求类型,其中所述控制逻辑电路按优先顺序排列的非阻塞存储分配请求类型请求比所述阻塞请求类型请求和所述非阻塞页表途径请求类型请求优先级低。
15.根据权利要求14的微处理器,其中所述非阻塞存储分配请求类型的请求包括由于在所述数据高速缓存存储器中至回写存储区的存储遗漏,在总线上从系统存储器读取高速缓存线的请求。
16.根据权利要求12的微处理器,其中所述至少一个非阻塞请求类型包括预取请求类型,其中所述控制逻辑电路按优先顺序排列的预取请求类型的请求比所述阻塞请求类型的请求和所述非阻塞页表途径请求类型请求优先级低。
17.根据权利要求16的微处理器,其中所述预取请求类型包括如下之一:
读取预取指令所指定的高速缓存线的请求;
读取由微处理器预测性产生的高速缓存线的请求。
18.一种在连接微处理器与系统存储器的总线上从系统存储器请求高速缓存线的方法,该总线工作在总线时钟频率,微处理器的核心逻辑电路工作在主时钟频率,主时钟频率为总线时钟频率的倍数,该方法包括:
以主时钟频率接收多个总线请求,并根据其请求类型初始分配优先级;以及
以总线时钟频率:
选择多个请求中的最高优先级请求,以在总线上发出;
提高除多个请求中被选择在总线上发出的那个请求之外的多个请求中每个请求的优先级。
19.根据权利要求18的方法,其中多个总线请求的每个包括在总线上从系统存储器将高速缓存线取到微处理器的高速缓存存储器中的请求。
20.根据权利要求19的方法,其中请求类型为多个请求类型之一,其中多个请求类型中的第一种为阻塞请求类型,至少一第二种为非阻塞请求类型。
21.根据权利要求20的方法,其中阻塞请求类型的请求包括导致微处理器中流水线暂停直到在总线上从系统存储器取得高速缓存线为止的请求。
22.根据权利要求19的方法,其中所述根据其中的请求类型初始分配优先级给每个总线请求包括分配比非阻塞请求类型高的优先级给阻塞请求类型的总线请求。
23.根据权利要求20的方法,其中至少一第二种非阻塞请求类型包括如下两种之一:
非阻塞预取类型和非阻塞表途径类型,其中所述根据其请求类型初始分配优先级给每个总线请求包括分配比非阻塞表途径请求类型高的优先级给阻塞请求类型的总线请求,以及分配比非阻塞预取请求类型高的优先级给非阻塞表途径请求类型的总线请求;
非阻塞存储分配类型和非阻塞表途径类型,其中所述根据其请求类型初始分配优先级给每个总线请求包括分配比非阻塞表途径请求类型高的优先级给阻塞请求类型的总线请求,以及分配比非阻塞存储分配请求类型高的优先级给非阻塞表途径请求类型的总线请求。
24.根据权利要求19的方法,还包括:
以主时钟频率将所述多个请求累积到请求队列中。
25.根据权利要求18的方法,其中所述选择多个请求中的最高优先级请求以在总线上发出包括在总线时钟周期的最后一个主时钟周期期间选择多个请求中的最高优先级请求以在总线上发出。
26.根据权利要求18的方法,其中所述选择多个请求中的最高优先级请求以在总线上发出的步骤包括:
确定是否多个请求中不止一个为最高优先级;
当多个请求中只有一个为最高优先级时,则选择多个请求中的最高优先级请求,以在总线上发出;以及
当多个请求中不止一个为最高优先级时,则以循环方式选择多个最高优先级请求中的一个,以在总线上发出。
27.根据权利要求18或26的方法,还包括:
确定是否已发生将多个请求中每个的请求类型改变为不同的请求类型的事件;以及
根据不同的请求类型更新多个请求中已发生影响请求类型的事件的每个请求的优先级。
28.根据权利要求27的方法,其中所述确定和更新以主时钟频率进行。
29.根据权利要求27的方法,其中所述确定是否已发生改变请求类型的事件包括确定非阻塞请求类型已变为阻塞请求类型。
CN2006101031854A 2005-09-13 2006-07-07 设置高速缓存线填充总线存取优先级的微处理器和方法 Active CN100407171C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/225,865 2005-09-13
US11/225,865 US7313658B2 (en) 2001-10-23 2005-09-13 Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests

Publications (2)

Publication Number Publication Date
CN1932782A CN1932782A (zh) 2007-03-21
CN100407171C true CN100407171C (zh) 2008-07-30

Family

ID=37878626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101031854A Active CN100407171C (zh) 2005-09-13 2006-07-07 设置高速缓存线填充总线存取优先级的微处理器和方法

Country Status (2)

Country Link
CN (1) CN100407171C (zh)
TW (1) TWI309357B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389271A (zh) * 2014-11-13 2016-03-09 上海兆芯集成电路有限公司 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2350843B1 (en) * 2008-07-29 2014-06-11 Synopsys, Inc. Data processing circuit with arbitration between a plurality of queues
US9063860B2 (en) * 2011-04-01 2015-06-23 Intel Corporation Method and system for optimizing prefetching of cache memory lines
US20150033234A1 (en) * 2013-07-23 2015-01-29 Qualcomm Incorporated Providing queue barriers when unsupported by an i/o protocol or target device
EP3049915B1 (en) * 2014-12-14 2020-02-12 VIA Alliance Semiconductor Co., Ltd. Prefetching with level of aggressiveness based on effectiveness by memory access type
CN107977289B (zh) * 2017-11-07 2020-10-23 北京控制工程研究所 一种热备份计算机中多模冗余总线容错架构及其控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553268A (en) * 1991-06-14 1996-09-03 Integrated Device Technology, Inc. Memory operations priority scheme for microprocessors
US20030093636A1 (en) * 2001-10-23 2003-05-15 Ip-First, Llc. Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests
US6643747B2 (en) * 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US6684302B2 (en) * 1999-01-19 2004-01-27 Arm Limited Bus arbitration circuit responsive to latency of access requests and the state of the memory circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553268A (en) * 1991-06-14 1996-09-03 Integrated Device Technology, Inc. Memory operations priority scheme for microprocessors
US6684302B2 (en) * 1999-01-19 2004-01-27 Arm Limited Bus arbitration circuit responsive to latency of access requests and the state of the memory circuit
US6643747B2 (en) * 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US20030093636A1 (en) * 2001-10-23 2003-05-15 Ip-First, Llc. Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389271A (zh) * 2014-11-13 2016-03-09 上海兆芯集成电路有限公司 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法
CN105389271B (zh) * 2014-11-13 2018-09-04 上海兆芯集成电路有限公司 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法

Also Published As

Publication number Publication date
TW200712889A (en) 2007-04-01
CN1932782A (zh) 2007-03-21
TWI309357B (en) 2009-05-01

Similar Documents

Publication Publication Date Title
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
US8838901B2 (en) Coordinated writeback of dirty cachelines
CN100407171C (zh) 设置高速缓存线填充总线存取优先级的微处理器和方法
RU2597520C2 (ru) Контроллер памяти и способ работы такого контроллера памяти
CN105378682B (zh) 持久存储器中数据的观察
US8645627B2 (en) Memory bus write prioritization
US5958040A (en) Adaptive stream buffers
US7844760B2 (en) Schedule and data caching for wireless transmission
CN105320608B (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
JP4275085B2 (ja) 情報処理装置、情報処理方法、およびデータストリーム生成方法
US20080189487A1 (en) Control of cache transactions
CN108009008A (zh) 数据处理方法和系统、电子设备
EP2530598B1 (en) Data supply device, cache device, data supply method, and cache method
US20070079070A1 (en) Cache controller
CN103345451A (zh) 一种在多核处理器中缓冲数据的方法
US7313658B2 (en) Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests
US6985999B2 (en) Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests
CN101488919A (zh) 存储地址分配方法和装置
EP1970815A1 (en) Data transfering apparatus and information processing system
CN108628754A (zh) 一般及垃圾回收的数据存取方法以及使用该方法的装置
CN111124297B (zh) 一种堆叠dram缓存的性能提升方法
EP0741356A1 (en) Cache architecture and method of operation
CN107506139A (zh) 一种面向相变存储器的写请求优化装置
US20070101064A1 (en) Cache controller and method
JP3301359B2 (ja) リスト管理システム、方法及び記憶媒体

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