用于数据传送期间受限之高速缓存内存访问之系统及其方法

文档序号:6566593阅读:150来源:国知局
专利名称:用于数据传送期间受限之高速缓存内存访问之系统及其方法
技术领域
本发明大体上是关于处理系统中的高速缓存操作(caching),尤关 于数据传送期间限制对高速缓存内存。
背景技术
高速缓存内存常使用于处理系统中以储存如数据或指令等信息以 便能为处理器所利用或随后储存于如系统内存或硬盘等较为固定的内 存中。例如,在个人计算机系统中,图形驱动程序经常利用高速缓存 内存以移动介于系统内存与一个或多个视频帧缓冲器(video frame buffer)间的视频数据之大区块。为了实行此种传送,图形驱动程序可 透过高速缓存内存运用小循环(tight 10op)或x86 REP命令以重复实 行移动功能而连续从内存传送数据区块至帧缓冲器,或反之亦然。然 而,此种技术一般具有在高速缓存内存中的数据被传输中的视频数据 所覆写(overwritten)的效果。应该了解,由于从高速缓存内存出来的 视频数据传送后可能需要将覆写数据重新插入高速缓存内存,覆写已 存在于高速缓存内存中的数据可能降低高速缓存的效率,并且数据的 重新插入经常造成显著的延迟或处理器的停止运转(stalling)。因此,
一种在数据传送期间用来防止或减少于高速缓存内存中常用数据之覆 写的技术将会是有益的。

发明内容
本发明的目的是提供一种在数据传输期间可防止或减少高速缓存 内存中常用数据的覆写的系统和方法。
本发明的高速缓存内存系统包括系统内存、处理器、帧缓冲器、 高速缓存内存、以及高速缓存控制器。该高速缓存控制器在数据传送 至该帧缓冲器期间根据由该处理器所执行以实现该传送的指令的类型 而控制对该高速缓存内存的访问。
以上结合附图的详细说明,本发明之目的及优点对在此技术领域 之一般技艺者显而易见,其中各图类似的参考符号系用来标示类似的 组件,且其中


图1显示根据本发明的至少一个实施例的例示处理系统的方块图; 图2、 5和7显示根据本发明的至少一个实施例的例示高速缓存控
制模块的方块图;以及
图3、 4、 6和8显示根据本发明的至少一个实施例的例示高速缓
存访问控制方法的流程图。
具体实施例方式
图1至8例示透过高速缓存内存于数据的传送期间可控制高速缓 存访问的例示的系统及方法。在至少一个具体实施例中,有关于非数 据传送作业或透过高速缓存内存牵涉到相当小的数据传送之作业之指 令,造成第一访问控制策略的应用以在处理器使用高速缓存内存期间 控制对高速缓存内存之一个或多个分割区的访问。对比下,对牵涉到 相当大量的数据传送或特定类型的数据传送之指令来说,造成第二访 问策略的应用以控制该高速缓存内存之一个或多个分割区的访问以便 减少或防止数据的覆写,该数据系预期随后会由高速缓存内存或处理 器所使用。如本文中较详细的说明,与特定作业相关联之数据传送的 类型或大小可根据检查或指令之前置码(prefix)字段与/或作业码 (opcode)字段之比较来决定。为了响应此比较或检查,处理器或其它 系统组件可宣告用来选择一个或更多访问策略间的讯号,而该选定的 访问策略于是在与指令相关联之数据传送作业期间可应用到控制对高 速缓存内存之一个或多个路向(way)之访问。该访问策略一般代表对特 定高速缓存分割区的访问限制,例如对于一个或多个特定高速缓存路 向或一个或多个特定高速缓存线的限制。对特定高速缓存路向的访问 限制有关的访问策略可以例如高速缓存屏蔽来表示。通过使用例如留 在高速缓存内存近来最少使用的(LRU, least recently used)信息, 可选定对特定高速缓存分割区的限制。
兹请参考图1,利用例示的高速缓存控制机制的例示系统100系根
据本发明的至少一个实施例来说明。该系统100包括如中央处理单元 (CPU)之处理器110、如所例示的包括具有多个路向(标示为路向1至 N)用于多个高速缓存列之各个的高速缓存内存122之高速缓存120,以 及高速缓存控制模块124(例如软件、硬件或韧体模块)。此处所用之名 词,高速缓存列,系指一组与共同索引相关联之高速缓存线。该高速 缓存内存120可包括例如16路向(16iay) 、 128列高速缓存且各高速 缓存线能够储存32字节的数据。该系统100可进一步包括一个或多个 利用高速缓存120之模块,例如透过例如系统总线150耦合至高速缓 存120与/或处理器110之系统内存130与显示帧缓冲器140。
在至少一个实施例中,利用高速缓存120储存由处理器110要使 用的数据或用来促进介于如系统内存130与显示帧缓冲器140间的数 据传送。如一般所了解的,此种传送在由该处理器110执行一个或多 个指令之前或期间一般系由处理器110所开始。如上所提及的,储存 处理器110要使用的数据或数据的传送可能造成已存在于高速缓存内 存122中数据的覆写。由于被覆写,此种数据在随后的作业期间无法 为处理器110取得来使用,因而此数据的覆写可能阻碍处理器110以 及高速缓存120之效能。于是,在至少一个实施例中,该高速缓存控 制模块124可实行高速缓存访问控制策略,该策略在某些类型的数据 传送以及高速缓存内存122中的数据储存期间限制了对高速缓存内存 122之一个或多个部分(例如一个或多个路向或一个或多个高速缓存区 块)的访问。此访问控制策略可确认(identify)多个路向或高速缓存区 块之子集,该等路向或高速缓存区块含有于数据传送或数据储存作业 后预期为处理器110所用的数据,以及可确认可能含有于数据传送后 不预期保留或储存之将由处理器110所利用的数据之高速缓存内存 122之那些路向/高速缓存区块。该访问控制策略因而可确认那些路向/ 高速缓存区块,该等路向/高速缓存区块可利用于数据传送作业期间而 不会显著地阻碍数据处理器110在使用高速缓存120上之效能。如已 详细讨论于本文中,该访问控制策略可用一组或多组之高速缓存屏蔽 来实行,该高速缓存屏蔽指示高速缓存内存122的那些可在数据传送 作业期间用来储存数据的路向,以及那些在数据传送作业期间禁止被 使用的路向。
在一个实施例中,根据处理器110所提供的或判定的(asserted) 受限辨识符讯号116选定于数据传送作业期间所运用之特定访问策略 以响应或预备特定数据传送作业的执行。根据该处理器110所判定或 提供的讯号116,该高速缓存控制模块124选择访问策略以应用到高速 缓存内存122,以便限制或防止对该高速缓存内存之一个或多个路向的 访问。
处理器110可利用指令分析模块160(例如软件、硬件或韧体模块) 以分析即将由处理器110执行或目前在执行的指令以便决定是否判定 讯号116。在一个实施例中,模块160根据即将执行指令系确认为与暂 时性数据或如视频数据之数据的大区块之传送相关联的特定指令的类 型的决定来决定是否判定该受限辨识符讯号116。根据此确认,该模块 160可操作该处理器110以便判定该受限讯号116或直接判定该讯号 116。
在一个实施例中,与大型数据传送或相对暂时性数据之数据传送 相关联之特定指令系根据目前在执行或即将执行的指令之前置码字段 或作业码字段之至少一者来辨识。为了说明起见,REP指令(在x86架 构中之前置码0xF3)通常用在x86处理架构以重复某些指令,例如搬移 字符串(move string, MOVS)指令(在x86架构中的作业码0xA4或0xA5, 系依作业元大小来决定)。于是,模块160可分析即将由处理器110执 行的指令以决定即将执行的指令之前置码字段是否实质符合与REP指 令相关联的前置码字段。此外,该模块160也可详细检查(scrutinize) 即将执行的作业码字段以决定该作业码字段是否实质符合与搬移字符 串指令相关联之作业码值。若即将执行指令之一个或两者之字段符合 REP MOVS指令之字段,则该模块160可促使判定该受限讯号116。然 而,应该了解在一些例子中,REP MOVS指令可运用于不使用相当大数 据的区块或不传送暂时性数据的作业。因此,在至少一个实施例中, 可利用REPNE指令(在x86架构中的前置码0xF2)以确认要具有受限高 速缓存访问之数据传送作业。为了说明起见, 一般不使用之特定指令, 例如REPNE MOVS命令,可用以特别辨识透过高速缓存内存120之数据 传送作业,该数据传送作业牵涉到大型数据的区块或相对暂时性数据。 在此实施例中,该模块160可详细检査即将由处理器110执行的作业
以确认那些运用特定作业(例如,REPNE M0VS作业)之作业。根据此唯 一作业的确认,该模块160可促使判定该受限辨识符讯号116。
兹参考图2,高速缓存控制模块124之例示实施系根据本发明之至 少一个实施例来说明。如图中所描述,该高速缓存控制模块124可包 含具有一个或多个高速缓存屏蔽212之标准路向屏蔽模块210、具有一 个或多个高速缓存屏蔽222之受限路向屏蔽模块220(例如,软件、硬 件或韧体模块)、具有作从该标准路向屏蔽模块210输出和从该受限路 向屏蔽模块220输出作为输入并具有受限讯号116作为选择输入之多 任务器230,该受限讯号116可由处理器110提供。该多任务器230 根据讯号116之值选择从标准路向屏蔽210之高速缓存屏蔽212之其 中一者,或从受限路向屏蔽模块220之高速缓存屏蔽222之其中一者, 作为其输出。如果处理器110即将执行的指令不被认定为牵涉到大型 数据的区块之传送或暂时性数据之传送的指令,则可不判定 (de-asserted)该讯号116,因此在多任务器230之输出处造成从标准 路向屏蔽模块210(例如,软件、硬件或韧体模块)之高速缓存屏蔽212 的准备。对照之下,被认定为牵涉到大型数据的区块之传送或暂时性 数据的传送之即将由处理器110执行的指令可能造成处理器110判定 该讯号116,因而在多任务器230之输出处造成一个或多个高速缓存屏 蔽222的输出。
路向选择模块240接收一个或多个由多任务器230输出的高速缓 存屏蔽以及应用他们作为高速缓存内存122之访问策略以便在处理器 110之执行指令期间限制对该高速缓存内存122之一个或多个路向的 访问。如图中所例示,该高速缓存模块212与222可包含多个字段, 其中各字段对应于该高速缓存内存122之多个路向之其中一者,且其 中对该高速缓存内存222之特定路向的访问系根据储存在与特定路向 相关联之高速缓存屏蔽之字段的值(亦即0或l)来控制。或者,高速缓 存屏蔽212或222可包含多个字段,各字段与特定的高速缓存线相关 联,其中储存于先前字段之各字段中的值控制对该对应的高速缓存线 的访问。
在至少一个实施例中,在不牵涉到大型数据的区块之传送或暂时 性数据的传送的作业期间所实行的高速缓存屏蔽212 —般比在牵涉到
暂时性数据或大型数据的区块的传送的作业期间所实行的高速缓存屏
蔽222更没有限制性,以便防止或限制有效数据的覆写的量,而该有 效数据系在数据传送作业之后预期被处理器110所用。通过使用高速 缓存屏蔽212或高速缓存屏蔽222而将实行的特定访问控制策略在作 业中(on the fly)可预定或可建构或修改,例如,通过处理器110或 其它处理装置所执行之操作系统250。为了说明起见,操作系统250 或高速缓存120之其它组件可监测该高速缓存内存122以决定或辨识 高速缓存之那些最近使用过的、近来最少使用的、或具有某些其它适 当的性能参数之部分。通过使用此信息,该操作系统可设定该高速缓 存屏蔽212或222之一者或两者以便保护那些被认定为经常使用或最 近使用过的路向,同时允许对那些被认定为最不常使用或最不可能使 用之路向的访问。其它考量因素,例如储存于特定路向之有效数据的 量,可进一步利用以决定在特定的访问控制策略中是否应该准予对特 定路向之访问。虽然例示了运用高速缓存屏蔽之控制访问策略之例示 的实施方式,但在此技术领中具有一般技艺者通过使用本文所提供的 指导方针在不脱离本发明之精神与范畴下,可实行利用其它技术之高 速缓存存策略。
在一个实施例中,路向选择模块240接收由多任务器230输出之 高速缓存屏蔽并且实行由输出高速缓存屏蔽所代表的访问控制策略。 在一个实施例中,高速缓存向屏蔽包含用于该高速缓存的各路向之位。 若判定位于屏蔽中,则对应的路向将不会由被访问的数据所取代。通 过使用习知的高速缓访问代策略(例如,近来最少使用的路向或未使用 的路向),高速缓存控制器将在具有非判定屏蔽位之诸路向中改以选择 即将以新的数据覆写的路向。
现在参考图3,用以控制对高速缓存的访问的例示方法300系根据 本发明的至少一个实施例来例示。方法300在步骤302开始,其中接 收包含前置码字段与作业码字段的指令。于步骤304中,根据前置码 字段的值选择高速缓存屏蔽。选择高速缓存屏蔽可包括当前置码字段 符合第一预先定义之值时,选择第一高速缓存屏蔽,以及当前置码字 段符合第二预先定义之值时,选择第二高速缓存屏蔽。于步骤306中, 根据所选择的高速缓存屏蔽来控制对高速缓存之访问。该作业码字段
可代表数据传送指令,例如M0VS指令,以及前置码字段可代表重复类 型的指令,例如REP、 REPE、或REPNE。对高速缓存之访问可通过巻标 (tag)、路向(way)或其二者的结合来加以限制。
现在参考图4,另一用以控制对高速缓存的访问的例示方法400 系根据本发明之至少一个实施例来例示。方法400于步骤402中开始, 其中决定即将传送数据的数据类型。于步骤404中,决定数据传送作 业以传送该数据。于步骤406中,当数据为第一类型时,选择与数据 传送作业一起使用的第一前置码。于步骤408中,当数据为第二类型 时,选择与数据传送作业一起使用的第二前置码。在一个实施例中, 第一类型的数据系视频数据,而第二类型的数据系不同于第一类型的 数据。在另一实施例中,第一类型的数据系为即将传送至视频帧缓冲 器之数据,或第一类型的数据系暂时性数据而不会再使用。可选择第 一前置码以促进第一高速缓存屏蔽的选择,以及选择第二前置码以促 进第二高速缓存屏蔽之选择。
现在参考图5与图6,高速缓存控制模块124之另一例示实行方式 系根据本发明的至少一个实施例来例示。在图5例示的实例中,高速 缓存控制模块124包括最近使用过的(MRU) /近来最少使用的(LRU)阵列 502,该阵列502系连接至路向选择模块504。该MRU/LRU阵列502系 用来维持用于高速缓存路向、高速缓存列与/或高速缓存线(或任何其 它类型的高速缓存分割区)之LRU与/或MRU信息。该路向选择模块504 响应于接收到该受限辨识符讯号116因而可利用该MRU/LRU阵列502 以确认具有近来最少使用数据(因此最不可能被处理器no所访问)之 高速缓存内存122(图l)之一个或多个路向。该路向选择模块504于是 可实行用于高速缓存内存'12》之访问策略,因而使触发该讯号116之 判定的数据传送作业仅限制为在高速缓存内存之那些一个或多个路向 (由于具有近来最少使用的数据)。
图6之方法600例示如图5中所争使角控制模块124之范例作业。 该方法600开始于步骤602,其中接收代表用于数据传送至高速缓存之 指令的讯号(例如讯号116)。于步骤604中,根据多个路向之近来最少 使用(LRU)的信息来决定高速缓存多个路向之第一子集合。于步骤606 中,在数据传送期间,限制只对高速缓存之路向的第一子集合的访问。
现在参考图7与图8,根据本发明之至少一个实施例,例示出高速 缓存控制模块124之另一范例的实施方式。在图7的例示实例中,该 高速缓存控制模块124包含最近使用过的(MRU) /近来最少使用的(LRU) 阵列502、区块选择模块704以及暂时性区块巻标寄存器706。如以上 参考图5所讨论的,运用该MRU/LRU阵列502以保持有关于高速缓存 内存122之LRU与/或MRU信息。通过使用此信息,该区块选择模块704 可确认于数据传送作业期间即将使用的那些高速缓存列用之近来最少 使用的高速缓存线或诸线。该线选择模块704于是可对高速缓存内存 122实行访问策略,该访问策略在数据传送作业期间限制访问为只对该 高速缓存内存122之确认的LRU高速缓存线。
在习知的系统中,暂时性数据传送至不同高速缓存之特定分割区 导致与高速缓存分割区相关联的MRU/LRU信息的更新,以便反应暂时 性数据的写入至特定分割区。当保留此暂时性数据的高速缓存分割区 被显示为MRU数据时,高速缓存控制逻辑一般将防止这些高速缓存分 割区的覆写直到他们相较于其它高速缓存分割区变成相对地老化 (aged)为止。然而,当该传送的数据在高速缓存中仅为暂时性时,在 数据传送作业完成后,这些高速缓存分割区较佳是可访问的。因此, 在一个实施例中,该线选择模块704于牵涉到暂时性数据的数据传送 作业期间防止该MRU/LRU阵列502被更新,使得用于数据传送的高速 缓存线的LRU/MRU状态不会由于高速缓存线的使用而被更新,或线选 择模块704可修改MRU/LRU阵列502使得对应于用在数据传送的高速 缓存线的阵列706的登入项(entries)被改变以指示该高速缓存线是近 来最少使用的高速缓存线。因而,用来储存暂时性数据之高速缓存线 可能可在数据传送作业后用于其它作业。
应该了解的是,习知的系统可运用多个高速缓存层,因而在数据 传送作业期间,数据系分布在多个高速缓存之间。为了例示起见,处 理系统可运用第一层(L1)高速缓存、第二层高速缓存以促进暂时储存 数据为处理器所用。然而,在数据传送作业期间储存暂时性数据于较 高层的高速缓存之后,在习知的系统中之对应的MRU/LRU信息一般指 示该暂时性数据系最近使用过的,因此可能造成数据的溢位 (over-flow)至较低层的牺牲高速缓存(victim cache)。为了克服此情
况,该线选择模块704可进一步保持暂时性线巻标寄存器706以反应 该高速缓存内存122之对应的高速缓存线是否含有暂时性的数据。为 了例示起见,该寄存器706可包含用于该高速缓存内存122之各高速 缓存线的一位字段(one-bit field)。当特定的高速缓存线被用来储存 暂时性数据时,举例来说,该线选择模块704可写"1"至对应于该特 定高速缓存线之寄存器706的登入项以指示该特定的高速缓存线保留 暂时性数据。
然后可运用暂时性线巻标寄存器706以决定是否将数据溢出 (spill)至牺牲高速缓存。与较低层高速缓存相关联之牺牲模块708, 举例来说如L2高速缓存710,在允许传送数据至L2高速缓存710前可 分析该寄存器706。如果与特定高速缓存线相关联之寄存器706的字段 具有"1"以指示该高速缓存线保留暂时性数据,则牺牲模块708导引 高速缓存120以储存高速缓存线的数据,而非将数据溢出至L2高速缓 存710。该牺牲模块708然后通过写入"0"可清除寄存器706之字段 以指示该对应的高速缓存线不再含有来自于数据传送作业的暂时性数 据。因此,当牺牲模块708在对应于特定高速缓存线之寄存器706的 字段中侦测到"0"时(因而指示该特定高速缓存线中的数据不是暂时 性数据),该牺牲模块708可允许数据溢出至L2高速缓存710。
图8的方法800例示使用如例示于图7的控制模块124的范例的 作业。该方法800于步骤802开始,其中接收代表用于数据传送至高 速缓存的指令之讯号(例如讯号116)。于步骤804中,根据高速缓存线 之LRU的信息而决定用于高速缓存之一个或多个高速缓存列之各个的 第一高速缓存线。于步骤806中,在数据传送期间,限制只对该一个 或多个高速缓存列之各个的第一高速缓存线访问。
以上揭露的标的内容为例示性的,而非限制性的,以及附加的权 利要求书是为了涵盖所有此种修改、提升功能、以及落于本发明之实 质精神与范畴内之其它实施例。因此,在法律允许的最大限度下,本 发明的范畴系由以下的权利要求书与其相等物之最广泛可允许的诠释 来决定,而不会为前面详细的说明所局限或限制。
权利要求
1.一种方法,包含下列步骤判定将要传送的数据的数据类型(402);判定数据传送命令以传送该数据(404);当该数据为第一类型时,选择与该数据传送命令一起使用的第一前置码(406);以及当该数据为第二类型时,选择与该数据传送命令一起使用的第二前置码(408)。
2. 如权利要求1所述的方法,其中,该第一类型的数据为视频数据,且该第二类型的数据不同于该第一类型的数据。
3. 如权利要求1所述的方法,其中,该第一类型的数据为将要传 送至视频帧缓冲器(140)的数据。
4. 如权利要求1所述的方法,其中,该第一类型的数据为暂时性 数据而不予再利用。
5. 如权利要求1所述的方法,其中,选择该第一前置码以促进第 一高速缓存屏蔽(212,222)的选择,以及选择该第二前置码以促进第 二高速缓存屏蔽(212,222)的选择。
6. —种系统,包含系统内存(130); 处理器(110); 帧缓冲器(140); 高速缓存内存(122);以及高速缓存控制器(124),以在数据传送至该帧缓冲器(140)期间 根据由该处理器(110)所执行以实现该传送的指令的类型而控制对该 高速缓存内存(122)的访问。
7. 如权利要求6所述的系统,其中,该高速缓存控制器(124)根 据由该处理器(110)所执行的指令的类型进一步从多个高速缓存屏蔽(212,222)选择第一高速缓存屏蔽(212,222),其中该所选择的第一 高速缓存屏蔽(212)在该数据传送期间指示该高速缓存内存(122)的多个路向的各个的可访问性。
8. 如权利要求6所述的系统,其中,该高速缓存控制器(124)通 过限制只对该高速缓存内存(122)的多个路向的第一子集合的访问, 而控制对该高速缓存内存的访问。
9. 如权利要求8所述的系统,其中,该高速缓存控制器(124)根 据该多个路向的近来最少使用的信息而判定路向的该第一子集合路向 的一个或多个路向。
10. 如权利要求6所述的系统,其中,该高速缓存控制器(124) 通过允许只对该高速缓存内存(122)的一个或多个高速缓存线的该近 来最少使用的字段的访问,而控制对该高速缓存内存(122)的访问。
全文摘要
与透过高速缓存内存之相当重要的数据传送或特定类型之数据传送的有关的指令,导致受限之访问策略的应用以控制对高速缓存内存的一个或多个分割区的访问,以便降低或防止预期接下来由高速缓存内存或处理器所用之数据的覆写。处理器或其它系统组件可判定(assert)运用于选择一个或多个访问策略间的讯号,然后可应用该选定的访问策略在与该指令相关联之数据传送作业期间控制对该高速缓存内存的一个或多个路向(way)之访问。该访问策略一般代表对特定高速缓存分割区的访问限制,例如对一个或多个特定高速缓存路向或一个或多个特定高速缓存线(cache line)的限制。
文档编号G06F12/08GK101116061SQ200680004210
公开日2008年1月30日 申请日期2006年1月17日 优先权日2005年2月7日
发明者M·克罗姆, S·汤姆森 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1