高速缓存控制器、控制高速缓存控制器的方法以及计算机系统的制作方法

文档序号:6586523阅读:233来源:国知局
专利名称:高速缓存控制器、控制高速缓存控制器的方法以及计算机系统的制作方法
技术领域
本发明有关于高速缓存(cache)控制器,更具体地,本发明有关于高速缓存控制 器、控制高速缓存控制器的方法以及计算机系统。
背景技术
高速缓存在现代CPU设计中具有重要地位。高速缓存用于存储CPU所频繁存取 以及重复使用的一小部分内容(content)。如果已存储的内容具有时间与空间的区域性 (locality)的话,那么就可高效的存取高速缓存。待存储到高速缓存中的内容包含指令以 及数据。大多数指令彼此之间具有区域性,大多数数据彼此之间也具有区域性;尽管如此, 在指令与数据之间却没有区域性。高速缓存一般可以分为混合式高速缓存(unified cache)和非混合式高速缓存 (non-unified cache)。在非混合式高速缓存中,指令和数据分开处理,特别地,非混合式高 速缓存在不同的硬件中存储指令和数据,而且,具有分别传输指令以及数据的两个不同端 口(port)。既然指令与数据分开处理,所以很容易维持存储在高速缓存中的指令之间的区 域性,以及存储在高速缓存中的数据的区域性。与此相反的是,混合式高速缓存将指令以及数据存储在同样的硬件中,而且传输 指令以及数据使用单一的端口。图1为使用混合式高速缓存的先前计算机系统1的示意图。 计算机系统ι包含处理器11、混合式高速缓存控制器13以及存储器模块15。更具体地,混 合式高速缓存控制器13包含高速缓存131。混合式高速缓存控制器13通过第一端口 130、第二端口 132以及第三端口 134连 接到处理器11,第一端口 130用于自处理器接收内容的地址,其中,该内容可以是指令或 者数据。第二端口 132为现有技术中的混合式高速缓存控制器13中的虚拟端口(dummy port)。第三端口 134用于将高速缓存控制器13的内容传输给处理器11。很明显,在高速缓 存131中的指令和数据是混合的,而高速缓存控制器13没有办法管理存储在高速缓存131 中的内容。具体地,当高速缓存行(cache line)已满时,高速缓存控制器13不考虑在预清 除高速缓存行中存储的内容,而清除一个或者多个高速缓存行。因此,高速缓存控制器清除 即将用于下一个周期(cycle)的指令或者数据将是可能的,这将增加高速缓存误失(miss) 的概率。混合式高速缓存在现在CPU设计中是很常用的,因为混合式高速缓存容易设计以 及扩展。因此,迫切需要找到一种方法,以解决指令以及数据的竞争(competition)而引起 的混合式高速缓存中高速缓存高误失的问题。

发明内容
因此,本发明提供一种高速缓存控制器、控制高速缓存控制器的方法。本发明提供一种高速缓存控制器,包含第一端口,用于自处理器接收内容的地
5址,该内容的类型为指令与数据其中之一;第二端口,用于自该处理接收对应该内容的信息 比特,该信息比特指示出该内容的类型;以及至少一高速缓存,包含多个高速缓存行,该多 个高速缓存行的每一者包含内容域,该多个高速缓存行的每一者对应一个信息域,根据该 信息比特以及该地址,该内容以及该信息比特分别存储在该多个高速缓存行其中之一的该 内容域与对应的该信息域中。本发明再提供一种控制高速缓存控制器的方法,该高速缓存控制器包含至少一高 速缓存,该至少一高速缓存的每一者包含多个高速缓存行,该多个高速缓存行的每一者包 含内容域,该多个高速缓存行的每一者对应一个信息域,该方法包含自处理器接收内容的 地址,该内容的类型为指令以及数据其中之一;自该处理器接收对应该内容的信息比特,该 信息比特指示出该内容的类型;以及根据该信息比特以及该地址,将该内容以及该信息比 特分别存储在该多个高速缓存行其中之一的该内容域与对应的该信息域中。本发明另提供一种计算机系统,包含处理器;以及高速缓存控制器,电连接到该 处理器,包含第一端口,该第一端口用于自该处理器接收内容的地址,该内容的类型为指 令以及数据其中之一;第二端口,该第二端口用于自该处理器接收对应该内容的信息比特, 该信息比特指示该内容的该类型;以及至少一高速缓存包含多个高速缓存行,该多个高速 缓存行的每一者包含内容域,该多个高速缓存行的每一者对应一个信息域,根据该信息比 特以及该地址,该内容以及该信息比特分别存储在该多个高速缓存行其中之一的内容域与 对应的该信息域中。本发明提供的一种高速缓存控制器、控制高速缓存控制器的方法以及计算机系统 可以解决现有技术中存在的高速缓存高误失的问题。


图1为使用混合式高速缓存的先前计算机系统的示意图;图2为本发明第一实施例计算机系统的示意图;图3A为本发明第一实施例中的高速缓存的示意图;图3B为本发明第一实施例中的地址的示意图;图4为根据本发明的实施例的用于控制高速缓存控制器的方法的流程图。
具体实施例方式在说明书及权利要求当中使用了某些词汇来指称特定组件。所属领域中具有通常 知识者应可理解,制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求并 不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。 在通篇说明书及权利要求当中所提及的“包括”和“包含”为一开放式的用语,故应解释成 “包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。间接的 电气连接手段包括通过其它装置进行连接。图2为本发明第一实施例计算机系统2的示意图。计算机系统2包含处理器21、 高速缓存控制器23以及存储器模块25。处理器21为具有单一端口的处理器,例如,处理器21为ARM7EJS处理器,其中,单 一端口用于自高速缓存控制器23接收内容。存储器模块25可以为DRAM、SRAM或者任何存储媒体。在此实施例中,内容的类型可以为指令或者数据。高速缓存控制器23包含高速缓 存231、数据计数器233以及指令计数器235。请注意,在其它实施例中,高速缓存控制器可 具有多个高速缓存。高速缓存控制器的高速缓存的数量不以本发明实施例为限。高速缓存 控制器23进一步包含第一端口 230、第二端口 232、第三端口 234以及第四端口 236,其中, 第一端口 230、第二端口 232以及第四端口 236电连接到处理器21,而第三端口 234电连接 到存储器模块25。请参考图3A,图3A为本发明第一实施例中的高速缓存231的示意图。高速 缓存231包含多个高速缓存行31a、31b、31c、31d、31e、31f、31g以及31h,多个信息域 (information field) 32b、32c、32d、32e、32f、32g 以及 32h,多个标签域(tag field) 33b, 33c、33d、33e、33f、33g 以及 33h。多个信息域 32b、32c、32d、32e、32f、32g 以及 32h 中的每 一者都可以由一比特寄存器(register)实现,多个标签域33b、33c、33d、33e、33f、33g以及 33h中的每一者都可以由多比特寄存器实现。可以注意到,高速缓存行、信息域以及标签域 的数量不以本发明实施例为限。多个高速缓存行31a、31b、31C、31d、31e、31f、31g以及31h 分别对应多个信息域32&、3213、32(;、32(1、326、32厂328以及3211与多个标签域333、3313、33(;、 33d、33e、33f、33g 以及 33h。处理器21必须自高速缓存231获取内容以进行运作。特别地,处理器21将内容 的地址202以及对应该内容的信息比特204传输给高速缓存控制器23。然后,高速缓存控 制器23的第一端口 230以及第二端口 232分别接收内容的地址202以及对应该内容的信 息比特204。信息比特204指示出该内容的类型,例如,“0”表示指令,而“1”表示数据。请 注意,使用“0”或者“1”代表指令(或者数据)不以本发明实施例为限。当该内容为指令, 则该地址为指令的地址,而且信息比特为0。相似地,当该内容为数据,则该地址为数据的地 址,而且信息比特为1。接收地址202以及信息比特204后,高速缓存控制器23根据地址202查找高速缓 存231,以找到正确的内容,而此操作会导致高速缓存命中(hit)或者高速缓存误失。图3B 为本发明第一实施例中的地址202的示意图,其中,地址202包含标签域202a、内容域202b 以及偏移202c。高速缓存控制器23将地址202的标签域202a与高速缓存231的标签域 33a、33b、33c、33d、33e、33f、33g以及33h进行比较。如果高速缓存231的标签域33a 33b、 33c、33d、33e、33f、33g以及33h的其中之一可以与地址202的标签域202a匹配的话,那么 就高速缓存命中,否则就会发生高速缓存误失。下面描述“高速缓存误失”的情况。高速缓存控制器23请求后自存储器模块25接 收存储在地址202的内容。然后,根据信息比特204以及地址202,高速缓存控制器23将该 内容存储在多个高速缓存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一,然后将 信息比特204存储在高速缓存行的对应信息域中,其中,该高速缓存行中存储该内容。接下 来,高速缓存控制器23通过第四端口 236,将该内容传输给处理器21。下面将描述存储该 内容以及信息比特204的细节。根据指示出指令与数据的比例的已调整比例,高速缓存控制器23设定数据计数 器233与指令计数器235中存储的数值。已调整比例可以是内建的数值,或者由使用者使 用计算机系统2来设定的数值。假设指令与数据的已调整比例为1 3。基于上述假设,8 个高速缓存行31a、31b、31C、31d、31e、31f、31g以及31h中的两者可以用来存储类型为指令的内容,而另外6个高速缓存行可以用来存储类型为数据的内容。请注意,1 3的比例仅 用于说明本发明,然本发明不以此为限。已调整比例可以用来设定用于指令计数器235存储的数值的范围,以及用于数据 计数器233存储的数值的范围。指令计数器235用于存储与类型为指令的高速缓存行有关 的一个数值,该类型为指令的高速缓存行由对应信息域中存储的一比特指示,而数据计数 器233用于存储与类型为数据的高速缓存行有关的一数值,该类型为数据的高速缓存行由 对应信息域中存储的一个比特指示,例如,该数值可以为高速缓存行的个数,而该高速缓存 行每一者对应的信息域存储了指示出数据类型的一个比特。既然8个高速缓存行31a、31b、 31c、31d、31e、31f、31g以及31h中的两者可以用来存储类型为指令的内容,那么指令计数 器235存储的数值的范围就可以为从0到2。相似地,8个高速缓存行31a、31b、31c、31d、 31e、31f、31g以及31h中的六者可以用来存储类型为数据的内容,那么数据计数器233存储 的数值的范围就可以为从0到6。举例说明,开始,所有8个高速缓存行31a、31b、31c、31d、 31e.31f.31g以及31h都为空,所以指令计数器235以及数据计数器233存储的数值就设定 为0。如果信息比特204指示出内容的类型为指令(例如,信息比特204为0),那么高速 缓存控制器23就可以确定指令计数器235存储的数值是否为最大(即,2)。如果指令计数 器235存储的数值没有达到最大值,那么高速缓存控制器23就可以自8个高速缓存行31a、 31b、31c、31d、31e、31f、31g以及31h中选择一个空的高速缓存行,以存储该内容。假设选 定高速缓存行31a。然后,高速缓存控制器23将该内容存储在高速缓存行31a,将信息比特 204存储在对应信息域32a,以及将地址202的标签域202a存储在对应标签域33a。在存储 该内容之后,根据该内容之存储而更新存储在指令计数器235中的数值,特别地,指令计数 器235的数值可以从0增长到1。指令计数器235存储的数值已经到达最大值也是可能的,然后高速缓存控制器23 必须选择对应的信息域为0的多个高速缓存行中的至少一者(即,指示高速缓存行存储类 型为指令的内容),以实施清除。指令计数器235存储的数值在清除之后可以更新。特别地, 如果高速缓存控制器23清除对应的信息域为0的两个高速缓存行,那么指令计数器235存 储的数值就可以减少2。如果高速缓存控制器23清除对应信息域为0的一个高速缓存行, 那么指令计数器235的数值就可以减少1。需要强调的是,当信息比特204为0时,高速缓 存控制器23不选择对应信息域为1的高速缓存行来实施清除。相似地,如果信息比特204指示出内容的类型为数据(即,信息比特204为1),那 么高速缓存控制器23就可以确定数据计数器233存储的数值是否为最大值(即6)。如果 数据计数器233存储的数值没有到达最大值,那么高速缓存控制器23以相似的处理方式, 存储地址202的内容、信息比特以及标签域202a,然后数据计数器233相应地更新存储的数 值。相似地,如果数据计数器233已经达到最大值,那么高速缓存控制器23必须选择对应 信息域为1的多个高速缓存行中的至少一个(即,指示出高速缓存行存储类型为数据的内 容),以实施清除。在清除之后,数据计数器233相应地更新。请注意,对于数据以及指令使 用计数器,仅用于说明本发明,然本发明不以此为限。举例说明,数据计数器或者指令计数 器可以由软件方法,通过使用如数据计数器233以及指令计数器235所实施的类似的步骤 而实现。
在其它实施例中,高速缓存控制器23可以减法的方式,使用指令计数器235以及 数据计数器233。也就是说,数据计数器233可以用于存储一个数值,该数值为指示出仍可 用于存储类型为数据的内容的高速缓存行的个数。在此情况下,指令计数器235以及数据 计数器233开始分别设定为最大值。当高速缓存控制器23将类型为指令的内容存储在多 个高速缓存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一时,高速缓存控制器23 将指令计数器235存储的数值减一。相似地,当高速缓存控制器23将类型为数据的内容存 储在多个高速缓存行31a、31b、31C、31d、31e、31f、31g以及31h的其中之一时,高速缓存控 制器23将数据计数器233存储的数值减一。根据前面描述,任何所属领域普通技术人员可以将本发明的思想实现在包含多个 高速缓存行的高速缓存控制器中。在来自处理器21的信息比特、数据计数器233以及指令计数器235的帮助下,本 发明可以将指令与数据分开存储在高速缓存231中。需要强调的是,高速缓存231为混合 式高速缓存。当用于存储指令的高速缓存行已满时,高速缓存控制器23仅仅清除用于指令 的高速缓存行,而不清除用于数据的高速缓存行。相似地,当用于存储数据的高速缓存行已 满时,高速缓存控制器23仅仅清除用于数据的高速缓存行,而不清除用于指令的高速缓存 行。如此实现的原因是,数据本身具有区域性,指令本身具有区域性;尽管如此,在指令和数 据之间却没有区域性。经过前面的描述,混合式高速缓存的命中的比率就会增大。图4为根据本发明的实施例的用于控制高速缓存控制器的方法的流程图。该方法 可以由混合式高速缓存(例如,本发明第一实施例的高速缓存控制器23)而使用。该方法 的解释可以参考高速缓存控制器23而进行。此外,数据计数器233以及指令计数器235开 始时可以分别设定为最大值。例如,数据计数器233存储的数值设定为6,而指令计数器存 储的数值设定为2。那就意味着,仍然有6个高速缓存行可用于存储类型为数据的内容,而 且仍然有2个高速缓存行可以用于存储类型为指令的内容。首先,该方法执行步骤S701,这样高速缓存控制器23就可以自处理器接收内容的 地址,其中,该内容的类型可以为指令或者数据。在步骤S703,高速缓存控制器23自处理器 接收对应内容的信息比特,其中,该信息比特指示出该内容的类型。需要注意的是,高速缓 存控制器23可以同时执行步骤S701以及步骤S703,或者在执行步骤S701之前执行步骤 S703。然后执行步骤S705,以使能高速缓存控制器23,用于确定由该地址指示出的内容 是否在高速缓存中。如果该内容在高速缓存中,那么高速缓存控制器23执行步骤S707以 将该内容传输给处理器。如果该内容不在高速缓存中,那么高速缓存控制器23执行步骤 S709,以根据该地址,自存储器接收内容。例如,由第三端口自存储器接收内容。在步骤S709后,高速缓存控制器23执行步骤S711,以确定该信息比特指示出该 内容的类型是否为数据。如果该内容的类型为数据,那么执行步骤S721、S723、S725、S727、 S729以及步骤S707。如果该内容的类型不是数据(即,类型为指令),那么执行步骤S731、 S733、S735、S737、S739 以及步骤 S707。如果该内容的类型为数据,那么高速缓存控制器23执行步骤S721以确定高速缓 存是否具有存储内容的类型为数据的可用空高速缓存行。特别地,步骤S721可以通过确定 存储在数据计数器中的数值是否为0来实现。如果高速缓存仍然有可以用于存储类型为数据(即,数据计数器不为0)的内容的空高速缓存行,那么高速缓存控制器23执行步骤S727 以将该内容存储在多个空高速缓存行的其中之一。然后,高速缓存控制器23执行步骤S729 以更新数据计数器。特别地,高速缓存控制器23通过将数据计数器中存储的数值减一而更 新数据计数器。然后,高速缓存控制器23执行步骤S707以将该内容传输给处理器。另一 方面,如果步骤S721确定该高速缓存没有用于存储类型为数据的内容的空的高速缓存行, 那么高速缓存控制器必须在执行步骤S727之前执行步骤S723到步骤S725。在步骤S723, 高速缓存控制器23清除至少一个存储了类型为数据的内容的高速缓存行。也就是说,高速 缓存控制器23清除了多个高速缓存行之一者的内容域,其中,该已清除的内容域的高速缓 存行对应的信息域存储了指示类型为数据的一比特,然后也清除对应信息域。在清除之后, 高速缓存控制器23执行步骤S725以更新数据计数器。特别地,高速缓存控制器23通过将 数据计数器存储的数值加一而更新数据计数器。如果步骤S711确定,内容的类型为指令(即,不是数据),那么高速缓存控制器 23就执行步骤S731以确定高速缓存是否还具有存储内容的类型为指令的可用空高速缓存 行。特别地,步骤S731中,高速缓存控制器23可以确定存储在指令计数器中的数值是否 为零。如果高速缓存仍然具有可以用于存储内容的类型为指令的空高速缓存行(即,指令 计数器不为0),那么高速缓存控制器23执行步骤S737以将内容存储在多个空高速缓存行 的其中之一。然后高速缓存控制器23执行步骤S739,以更新指令计数器。特别地,在步骤 S739中,高速缓存控制器通过将指令计数器存储的数值减一而更新指令计数器。之后,高速 缓存控制器23执行步骤S707以将内容传输给处理器。如果步骤S731确定了高速缓存没 有可用于存储内容的类型为指令的空高速缓存行,那么高速缓存控制器23必须在执行步 骤S737之前执行步骤S733以及步骤S735。在步骤S733中,高速缓存控制器23清除至少 一个存储了类型为指令的内容的高速缓存行。也就是说,高速缓存控制器23清除多个高速 缓存行中其中之一的内容域,,其中,该已清除的内容域的高速缓存行对应的信息域存储了 指示类型为指令的一比特,然后也清除对应信息域。在清除之后,高速缓存控制器23执行 步骤S735以更新数据计数器。特别地,在步骤S735,高速缓存控制器23通过将存储在指令 计数器中存储的数值加一而更新数据计数器。请注意,步骤S723以及步骤S733中,高速缓存控制器23可以清除多于一个高速 缓存行。例如,步骤S725以及步骤S735可以根据已清除的高速缓存行的数量而更新。更具体地,在其它实施例中,上述方法可以选择其它方式以实现步骤S721、S725、 S729、S731、S735以及S739。例如,数据计数器以及指令计数器开始时可以设定为零。在 此情况下,步骤S721中,高速缓存控制器23确定数据计数器存储的数值是否已经到达最 大值,然后在步骤S731确定指令计数器存储的数值是否已经到达最大值,在步骤S725中, 将数据计数器存储的数值减一,在步骤S735中将指令计数器存储的数值减一,然后在步骤 S729中,将数据计数器存储的数值加一,在步骤S739中,将指令计数器存储的数值加一。除了上述步骤,基于对上述实施例的描述,所属领域普通技术人员可以理解上述 方法的流程图的执行的运作以及功能,因此此处不再赘述。 根据上述步骤,本发明的方法中,指令和数据分开存储在混合式高速缓存中。当用 于存储指令的高速缓存行已满时,高速缓存控制器23仅仅清除用于存储指令的高速缓存 行,而不清除用于存储数据的高速缓存行。相似地,当用于存储数据的高速缓存行已满时,
10高速缓存控制器23仅仅清除用于存储数据的高速缓存行,而不清除用于存储指令的高速 缓存行。经由此操作,混合式高速缓存的命中比率就可以增大,而处理时间也可以减少。
任何本领域技术人员,在不脱离本发明之精神和范围内,当可做些许的更动与润 饰,因此本发明之保护范围当视所附之权利要求所界定者为准。
权利要求
一种高速缓存控制器,包含第一端口,用于自处理器接收内容的地址,该内容的类型为指令与数据其中之一;第二端口,用于自该处理接收对应该内容的信息比特,该信息比特指示出该内容的类型;以及至少一高速缓存,包含多个高速缓存行,该多个高速缓存行的每一者包含内容域,该多个高速缓存行的每一者对应一个信息域,根据该信息比特以及该地址,该内容以及该信息比特分别存储在该多个高速缓存行其中之一的该内容域与对应的该信息域中。
2.如权利要求1所述的高速缓存控制器,其特征在于进一步包含第三端口,在将该内容存储到该多个高速缓存行其中之一之前,根据该地址,第三端口 自存储器接收该内容。
3.如权利要求1所述的高速缓存控制器,其特征在于进一步包含第四端口,用于将该内容传输给该处理器。
4.如权利要求1所述的高速缓存控制器,其特征在于进一步包含数据计数器,用于存储与类型为数据的高速缓存行有关的数值,该类型为数据的高速 缓存行由对应的信息域中存储的一比特指示。
5.如权利要求4所述的高速缓存控制器,其特征在于,该信息比特指示出该内容的类 型为数据,而存储在该数据计数器中的数值根据该内容的存储而更新。
6.如权利要求1所述的高速缓存控制器,其特征在于进一步包含数据计数器,用于存储数值,该数值指示存储内容的类型为数据的可用高速缓存行的 个数。
7.如权利要求6所述的高速缓存控制器,其特征在于,该信息比特指示出该内容的类 型为数据,且存储在该数据计数器中的该数值根据该内容的存储而减一。
8.如权利要求1所述的高速缓存控制器,其特征在于进一步包含指令计数器用于存储与类型为指令的高速缓存行有关的数值,该类型为指令的高速缓 存行由对应的该信息域中存储的一比特指示。
9.如权利要求8所述的高速缓存控制器,其特征在于,该信息比特指示出该内容类型 为指令,且存储在该指令计数器中的该数值根据该内容的存储而更新。
10.如权利要求1所述的高速缓存控制器,其特征在于进一步包含指令计数器,该指令计数器用于存储数值,该数值指示出存储内容的类型为指令的可 用高速缓存行的个数。
11.如权利要求10所述的高速缓存控制器,其特征在于,该信息比特指示出该内容类 型为指令,且存储在该指令计数器中的该数值根据该内容的存储而减一。
12.—种控制高速缓存控制器的方法,该高速缓存控制器包含至少一高速缓存,该至少 一高速缓存的每一者包含多个高速缓存行,该多个高速缓存行的每一者包含内容域,该多 个高速缓存行的每一者对应一个信息域,该方法包含自处理器接收内容的地址,该内容的类型为指令以及数据其中之一;自该处理器接收对应该内容的信息比特,该信息比特指示出该内容的类型;以及根据该信息比特以及该地址,将该内容以及该信息比特分别存储在该多个高速缓存行 其中之一的该内容域与对应的该信息域中。
13.如权利要求12所述的控制高速缓存控制器的方法,其特征在于进一步包含在将该 内容以及该信息比特分别存储在该多个高速缓存行其中之一的该内容域与对应的该信息 域中之前,根据该地址,自存储器接收该内容。
14.如权利要求12所述的控制高速缓存控制器的方法,其特征在于进一步包含将该内 容传输给该处理器。
15.如权利要求12所述的控制高速缓存控制器的方法,其特征在于,该高速缓存控制 器进一步包含数据计数器,该数据计数器用于存储与类型为数据的高速缓存行有关的数 值,该类型为数据的高速缓存行由对应的该信息域中存储的一比特指示,而该方法进一步 包含,根据该内容的存储更新该高速缓存控制器的该数据控制器存储的该数值。
16.如权利要求12所述的控制高速缓存控制器的方法,其特征在于,该高速缓存控制 器进一步包含数据计数器,该数据计数器用于存储数值,其中,该数值指示出存储内容的类 型为数据的可用高速缓存行的个数,而该方法进一步包含根据该内容的存储,将在该高速缓存控制器的该数据计数器存储的该数值减一。
17.如权利要求16所述的控制高速缓存控制器的方法,在将该内容以及该信息比特分 别存储在该多个高速缓存行其中之一的该内容域与对应的该信息域中前,进一步包含确定由该信息比特指示出的该类型为数据;确定存储在该数据计数器中的该数值为零;清除该多个高速缓存行其中之一的内容域,其中,该已清除的内容域的高速缓存行对 应的信息域存储了指示类型为数据的一比特;清除该已清除的内容域的高速缓存行对应的该信息域;以及将该数据计数器存储的该数值加一。
18.如权利要求12所述的控制高速缓存控制器的方法,其特征在于,该高速缓存控制 器进一步包含指令计数器,该指令计数器用于存储与类型为指令的高速缓 存行有关的数 值,该类型为指令的高速缓存行由对应的该信息域中存储的一比特指示,而该方法进一步 包含根据该内容的存储,更新该高速缓存控制器的该指令计数器存储的该数值。
19.如权利要求12所述的控制高速缓存控制器的方法,其特征在于,该高速缓存控制 器进一步包含指令计数器,该指令计数器用于存储数值,其中,该数值指示出存储内容的类 型为指令的可用高速缓存行的个数,而该方法进一步包含根据该内容的存储,将该高速缓存控制器的该指令计数器存储的该数值减一。
20.如权利要求19所述的控制高速缓存控制器的方法,在将该内容以及该信息比特分 别存储在该多个高速缓存行其中之一的该内容域与对应的该信息域中前,其特征在于进一 步包含确定由该信息比特指示出的该类型为指令;确定存储在该指令计数器中的该数值为零;清除该多个高速缓存行其中之一的内容域,其中,该已清除的内容域的高速缓存行对 应的信息域存储了指示类型为指令的一比特;清除该已清除的内容域的高速缓存行对应的该信息域;以及将该指令计数器存储的该数值加一。
21.一种计算机系统,包含处理器;以及高速缓存控制器,电连接到该处理器,包含第一端口,该第一端口用于自该处理器接 收内容的地址,该内容的类型为指令以及数据其中之一;第二端口,该第二端口用于自该处 理器接收对应该内容的信息比特,该信息比特指示该内容的该类型;以及至少一高速缓存 包含多个高速缓存行,该多个高速缓存行的每一者包含内容域,该多个高速缓存行的每一 者对应一个信息域,根据该信息比特以及该地址,该内容以及该信息比特分别存储在该多 个高速缓存行其中之一的内容域与对应的该信息域中。
22.如权利要求21所述的计算机系统,其特征在于,该信息比特指示该内容的类型为 数据,而该高速缓存控制器进一步包含数据计数器,用于存储与类型为数据的高速缓存行有关的数值,该类型为数据的高速 缓存行由对应的该信息域中存储的一比特指示;其中,根据该内容的存储,更新该数值。
23.如权利要求21所述的计算机系统,其特征在于,该信息比特指示出该内容的类型 为数据,而该高速缓存控制器进一步包含数据计数器,用于存储数值,该数值指示出存储内容的类型为数据可用高速缓存行的 个数;其中,根据该内容的存储,将该数值减一。
24.如权利要求21所述的计算机系统,其特征在于,该信息比特指示出该内容的类型 为指令,而该高速缓存控制器进一步包含指令计数器,用于存储与类型为指令的高速缓存行有关的数值,该类型为指令的高速 缓存行由对应的该信息域中存储的一比特指示;其中,根据该内容的存储,更新该数值。
25.如权利要求21所述的计算机系统,其特征在于,该信息比特指示出该内容的类型 为指令,而该高速缓存控制器进一步包含指令计数器,用于存储数值,该数值指示出存储内容的类型为指令可用高速缓存行的 个数;其中,根据该内容的存储,将该数值减一。
26.如权利要求21所述的计算机系统,其特征在于,该处理器为ARM7EJS处理器。
27.如权利要求21所述的计算机系统,其特征在于进一步包含存储器;其中,该高速缓存控制器进一步包含第三端口,在将该内容存储到该多个高速缓存行 之前,根据该地址,该第三端口用于自该存储器接收该内容。
28.如权利要求21所述的计算机系统,其特征在于,该高速缓存控制器进一步包含第三端口,该第三端口用于将该内容传输给该控制器。
全文摘要
一种高速缓存控制器、控制高速缓存控制器的方法以及计算机系统,其中,计算机系统包含处理器;以及高速缓存控制器,电连接到该处理器,包含第一端口,用于自该处理器接收内容的地址,该内容的类型为指令以及数据其中之一;第二端口,用于自该处理器接收对应该内容的信息比特,该信息比特指示该内容的该类型;以及至少一高速缓存包含多个高速缓存行,该多个高速缓存行的每一者包含内容域并对应一个信息域,根据该信息比特以及该地址,该内容以及该信息比特分别存储在该多个高速缓存行其中之一的内容域与对应的该信息域中。本发明提供的高速缓存控制器、控制高速缓存控制器的方法以及计算机系统可解决现有技术中的高速缓存高失误的问题。
文档编号G06F12/08GK101930408SQ200910261669
公开日2010年12月29日 申请日期2009年12月23日 优先权日2009年6月23日
发明者戴昌宪, 陈柏宏 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1