用于数据处理系统中的统一高速缓存的错误检测方案的制作方法

文档序号:6594595阅读:125来源:国知局
专利名称:用于数据处理系统中的统一高速缓存的错误检测方案的制作方法
技术领域
本公开总的来说涉及数据处理系统,更具体地,涉及用于统一高速缓存(unified cache)的错误检测方案。
背景技术
典型地在数据处理系统中使用统一高速缓存来存储多个类型的信息,诸如指令信 息和数据信息(例如,操作数信息)。用于这些统一高速缓存的错误检测提高了可靠性。通 常使用错误检测码(EDC)、错误校正码(ECC)和奇偶保护类型来为存储器提供错误检测和/ 或错误校正。然而,对统一高速缓存使用EDC/ECC是成问题的。尽管EDC或ECC典型地与 使用奇偶校验相比支持更高级别的错误检测,但是极大地增加了统一高速缓存的复杂性并 且降低了性能。尽管某些用户与其它相比更为注重错误检测并且希望牺牲某些性能来获得 一定级别的安全认证。但是其他用户对于错误检测不是如此迫切的,并且因此不希望为额 外的错误检测能力牺牲性能。这些冲突的需求进一步增加了在设计统一高速缓存时面对的 困难。


借助于示例说明了本发明,并且本发明不限于附图,在附图中相同的附图标记表 示相似的元件。出于简单和清楚的目的示出了图中的元件,并且其并不必然依比例绘制。图1以框图形式示出了根据本发明一个实施例的数据处理系统;图2以框图形式示出了根据本发明一个实施例的图1的数据处理系统中的统一高 速缓存的一部分;图3以框图形式示出了根据本发明一个实施例的图2的统一高速缓存的一部分;图4以示意图形式示出了根据本发明一个实施例的与图2和3的统一高速缓存一 起使用的分配控制寄存器;图5以表的形式示出了根据本发明一个实施例的图4的分配控制寄存器的各种字 段的描述。
具体实施例方式在一个实施例中,统一高速缓存可以基于统一高速缓存的路划分 (way-partitioning)使用不同的错误检测方案。例如,在路划分中,统一高速缓存的每一路 可以被分配给不同的信息类型,诸如分配给指令信息或数据信息,或分配给指令和数据信 息两者。在一个实施例中,该划分是经由路划分或者路分配控制寄存器设置来完成的。在 一个实施例中,利用关于特定路的分配来确定要由该特定路使用的错误检测和/或校正方 案。例如,那些被分配用于指令信息存储的路可以被配置为使用多位EDC,而被分配给数据 信息或者被分配给数据和指令信息两者的其余的路可以被配置为使用单个位的奇偶校验 (例如,字节奇偶校验)。
如这里使用的,术语“总线”用于表示可以用于传输一种或更多种不同类型的信息 (诸如数据、地址、控制或状态)的多个信号或导体。如这里讨论的导体可以参考作为单个 导体、多个导体、单向导体、或双向导体来说明或描述。然而,不同的实施例可以改变导体的 实现方案。例如,可以使用分立的单向导体而非双向导体,反之亦然。此外,可以将多个导 体替换为串行地或者按时间复用的方式传输多个信号的单个导体。同样地,承载多个信号 的单个导体可以被分为承载这些信号的子集的多种不同的导体。因此,对于信号传输存在 许多的选择。这里,在提到使信号、状态位或者相似的装置进入其逻辑真或逻辑假状态时,分别 使用了术语“断言(assert)”或“设置”和“求反”(或者“去断言”或“清除”)。如果逻辑 真状态是逻辑电平1,则逻辑假状态是逻辑电平0。并且如果逻辑真状态是逻辑电平0,则逻 辑假状态是逻辑电平1。图1以框图形式示出了根据本发明一个实施例的数据处理系统10。数据处理系 统10包括处理器12、系统总线14、存储器16和多个外围设备,所述外围设备诸如外围设备 18、外围设备20、以及在一些实施例中如图1中的将外围设备18与外围设备20隔开的点 所指示的另外的外围设备。存储器16是系统存储器,其通过双向导体耦接到系统总线14, 在一个形式中,该双向导体具有多个导体。在图示的形式中,如同处理器12那样,每个外围 设备18和20通过双向的多个导体耦接到系统总线14。处理器12包括总线接口单元22, 其经由具有多个导体的双向总线耦接到系统总线14。总线接口单元22经由双向导体耦接 到内部总线M。内部总线M是多导体通信总线。高速缓存沈、存储器观和中央处理单元 (CPU)30经由相应的双向导体耦接到内部总线M。CPU 30实现数据处理操作。高速缓存 26、存储器30中的每一个经由各自的双向导体耦接到内部总线。应当注意,存储 器观和存储器16可以是任何类型的存储器,并且外围设备18和20均可以是任何类型的 外围设备或装置。在一个实施例中,数据处理系统10全部位于单个集成电路上。替代地, 数据处理系统10可以使用多于一个的集成电路实现。在一个实施例中,至少处理器12全 部位于单个集成电路上。在操作中,处理器12用于通过执行多个数据处理指令来实现多种数据处理功能。 高速缓存26是CPU 30所需的频繁使用的信息的临时数据存储。高速缓存沈是与集关联 (set-associative)的统一高速缓存,其能够存储多种类型的信息,诸如指令信息和数据信 息(例如,操作数信息)。CPU 30需要的不在高速缓存沈中的信息被存储在存储器观或 存储器16中。在一个实施例中,存储器观在其处于处理器12内部的情况下可以被称为内 部存储器,而存储器16在其处于处理器12外部的情况下可以被称为外部存储器。总线接 口单元22仅是处理器12和系统总线14之间的若干个接口单元中的一个。总线接口单元 22用于协调与CPU 30的指令执行相关的信息流。从指令执行得到的控制信息和数据经由 总线接口单元22在CPU 30和系统总线14之间交换。图2示出了根据一个实施例的图1的高速缓存沈的一部分。高速缓存沈的替代 实施例可以使用与图2中所示的不同的结构。图2中所示的高速缓存沈的部分具有“N” 个集(set)和8路(way),并且可以被称为多路的统一高速缓存或者多路的与集关联的统 一高速缓存。因此,高速缓存26可以被描述为具有N个集,每个集具有8路。在替代实施 例中,高速缓存26可以具有任何数目的集和任何数目的路。应当注意,如这里使用的,高速缓存行(line)指的是高速缓存路和集的交集。例如,路0包括N个高速缓存行,每个高速 缓存行对应于集0到集N-I中的一个。因此,当选择用于替换(!^placement)的路时,实际 上替换了一个或更多个缓存行中的信息(如下文将描述的,其由索引部分四选择)。就是 说,可以不替换整个路,而是仅替换一个或更多个特定行或条目(entry)。在图示的实施例中,高速缓存电路21是将信息存储在多个高速缓存行或条目中 的每一个中的存储电路。例如,高速缓存电路21包括用于高速缓存行或条目的标签、状态、 高速缓存数据和保护字段。从CPU 30提供地址25。地址25包括标签部分27、索引部分四 和偏移部分32。索引部分四被提供给高速缓存电路21,其指示特定的高速缓存行或条目 (即,集0到集N-I中的一个)。比较电路23被耦接以接收标签部分27,并且被耦接到高速 缓存电路21以接收标签和状态信息。基于所接收到的信息,比较电路23确定是否已存在 高速缓存命中或高速缓存未命中。在图示的实施例中,标有HIT_WAYW:7]34的多个命中/ 未命中信号被提供给高速缓存控制电路38。每个HIT_WAY
34信号指示对于高速缓存 电路21中的其相应的路是否已存在高速缓存命中。除了高速缓存命中信号之外或者替代 高速缓存命中信号,替代实施例还可以使用高速缓存未命中信号。高速缓存控制电路38借助于导体或信号36和39耦接到高速缓存电路21。索引 部分四也被提供给高速缓存控制电路38,以指示特定高速缓存行或条目(即,集0到集N-I 中的一个)。高速缓存控制电路38包括分配控制寄存器48、替换逻辑49、输出选择逻辑37、 和错误控制电路66。分配控制寄存器48耦接到替换逻辑49和错误控制电路66,并且错误 控制电路耦接到输出选择逻辑37。错误控制电路66还可以向总线M提供一个或更多个 错误指示符。输出选择逻辑向总线M提供信息。高速缓存控制电路38还被耦接以从总线 M接收信息。在图示的实施例中,高速缓存电路21是统一高速缓存,其能够存储多个类型的信 息。就是说,每个高速缓存行的高速缓存数据字段可以存储指令信息或数据信息(例如,操 作数信息)。此外,如下面将参照图4和5更详细描述的,高速缓存电路21的每一路可以被 分配用于存储特定的信息类型。例如,每一路可以被独立配置用于存储指令信息、数据信息 (例如,操作数信息)、或者指令和数据信息两者。在一个实施例中,高速缓存电路21的一 路或更多路可以被配置用于存储只读数据信息或可修改的数据信息。图4以示意图形式示出了分配控制寄存器48的一个实施例,其对于路0-7中的每 一个包括2位的路分配控制字段。图5以表的形式示出了关于图4的路分配控制字段的描 述。例如,路0分配控制字段是2位字段,其指示什么类型的信息可以存储在路0中的高速 缓存数据字段中。例如,当路0分配控制字段具有值01时,路0可用于由指令未命中行填 充的替换。就是说,对于值01,路0存储指令类型信息。当路0分配控制字段具有值10时, 路0可用于由数据未命中行填充的替换。就是说,对于值10,路0存储数据类型信息。当 路0分配控制字段具有值11时,路0可用于由数据或指令未命中行填充的替换。就是说, 对于值11,路0存储指令类型和数据类型信息两者。因此,对于每一路,相应的路分配控制 字段指示相应的路是存储第一类型的信息(例如,当相应的路分配控制字段具有值01时存 储指令类型的信息),存储第二类型的信息(例如,当相应的路分配控制字段具有值10时存 储数据类型的信息),还是存储第一和第二类型的信息两者(例如,当相应的路分配控制字 段具有值11时存储指令类型和数据类型的信息两者)。在图示的实施例中,每一路分配控制字段的值00被保留以备可能的未来使用。替代实施例可以包括更多或更少的字段,并且 每个字段可以按照需要包括更多或更少的位以指示将被分配给高速缓存26的特定的路的 信息类型。尽管图2中已经示出了高速缓存沈的一种架构类型,但是高速缓存沈的替代实 施例可以使用任何期望的或适当的架构。图2中图示的架构仅是一个可能的代表性架构。 可以使用允许期望的高速缓存替换的任何高速缓存架构。回来参照图2,在操作中,利用索引部分四来选择高速缓存电路21中的集。将来 自高速缓存电路21的标签信息与标签27比较,并且通过来自高速缓存电路21的状态信息 (例如,有效位)进行检验(qualified)。比较和检验的结果(例如,匹配且有效)确定是 否发生高速缓存命中。如上文所述,每个HIT_WAY
34信号指示对于高速缓存电路21 中的其相应的路是否已经存在高速缓存命中。在对高速缓存沈的读访问的情况下,在高速缓存命中时,经由导体39向高速缓存 控制电路38提供导致高速缓存命中的高速缓存行的保护字段和高速缓存数据。错误控制 电路66中的用于导致高速缓存命中的路的相应的错误控制电路使用接收到的保护信息对 接收到的高速缓存数据执行错误检测和/或校正。如下文将参照图3更详细描述的,使用 分配控制寄存器48中的设置选择所使用的错误检测和/或校正方案。随后可以经由输出 选择逻辑将高速缓存数据提供给总线对,该输出选择逻辑使用HIT_WAY
34选择错误 控制电路66中的用于导致高速缓存命中的路的相应的错误控制电路的输出。此外,应当注 意,错误指示符还可以经由输出选择逻辑37提供给总线M以指示是否发生了错误。应当 注意,如果还正在执行错误校正,则将经由输出选择逻辑37输出经校正的高速缓存数据而 非从高速缓存电路21提供的数据。此外,如果正在提供经校正的高速缓存数据,则可以对 错误指示符求反以指示对于正在提供的高速缓存数据不存在错误(由于其已被校正)。在对高速缓存沈的写访问的情况下,在高速缓存命中时,高速缓存控制电路38可 以从总线对接收信息(例如,用于存储到高速缓存电路21中的高速缓存数据)。高速缓存 数据可以由高速缓存控制电路38经由导体39提供,以存储到高速缓存电路21的适当的高 速缓存行中。此外,高速缓存控制电路38可以适当地更新高速缓存行的状态字段。(应当 注意,用于接收高速缓存数据并且将其路由到高速缓存电路21中的导致命中的行并且用 于更新状态信息的具体电路未被示出,这是因为其在本领域中是公知的。)如下文将参照 图3更详细描述的,接收到的高速缓存数据还被提供给错误控制电路66,从而错误控制电 路66中的相应的错误控制电路(如通过HIT_WAYW:7] 34选择的)可以生成适当的保护 信息。高速缓存控制电路38还可以将该相应的保护信息与接收到的高速缓存数据一起提 供,以存储到高速缓存电路21的导致高速缓存行命中的适当的高速缓存行中。应当注意, 如果还正在执行错误校正,则将提供经校正的接收到的高速缓存数据(如果检测到错误的 话),以存储到高速缓存电路21中。在高速缓存未命中的情况下,替换逻辑49使用来自分配控制寄存器48的信息识 别用于替换的高速缓存行,并且更新该高速缓存行。可以使用任何已知的高速缓存分配方 法来选择用于替换的高速缓存行,诸如例如,循环方法(round robin method)、伪最少最近 使用(pseudo-least recently used, PLRU)方法等。替换逻辑49将替换方法与来自分配 控制寄存器48的信息组合,以选择能够被分配用于特定类型的信息的用于替换的路。在高
7速缓存未命中时,通过总线M将用于存储到新分配的高速缓存行中的新的高速缓存数据 提供给高速缓存控制电路38。随后可以经由导体39提供该新的高速缓存数据,以存储到高 速缓存电路21的新分配的高速缓存行中。此外,高速缓存控制电路38可以适当地生成用 于存储到新分配的高速缓存行的状态字段中的状态信息。(应当注意,用于接收高速缓存数 据并且将其路由到电路21中的新分配的高速缓存行并且用于生成关于新分配的高速缓存 行的状态信息的具体电路未被示出,这是因为其在本领域中是公知的。)如下文将参照图3 更详细描述的,新的高速缓存数据还被提供给错误控制电路66,从而错误控制电路66中的 相应的错误控制电路(对应于替换逻辑49选择的包括新分配的高速缓存行的路)可以生 成适当的保护信息。高速缓存控制电路38还可以将该相应的保护信息与接收到的高速缓 存数据一起提供,以存储到高速缓存电路21的新分配的高速缓存行中。应当注意,如果还 正在执行错误校正,则将提供经校正的新的高速缓存数据(如果检测到错误的话),以存储 到高速缓存电路21中。在图示的实施例中,高速缓存控制电路38还向高速缓存电路21提供控制信号 36(例如,用于读/写控制)。例如,高速缓存控制电路38可以在CPU 30的控制下更新高 速缓存电路21。例如,CPU 30可以执行特殊的高速缓存指令以更新状态信息。此外,在一 个实施例中,高速缓存控制电路38在CPU 30的控制下(诸如经由特殊的高速缓存指令) 可以更新分配控制寄存器48以改变分配高速缓存电路21的路的方式。尽管图2示出了可 以用于实现图1的高速缓存26的一部分的特定电路,但是替代实施例可以使用任何期望的 电路。可以使用广泛的多种电路实现方案。图2中图示的电路仅用于说明一个可能的实施 例。图3示出了表示根据本发明一个实施例的高速缓存沈的一部分的电路31。电路 31包括表示高速缓存电路21的路0的一部分的存储器存储电路40。存储器存储电路40 包括多个存储器库(memory bank)和保护存储装置45。在图示的实施例中,存储器存储电 路40包括8个库库0 42、库1 43,...库7 44。替代实施例可以包括任何数目的库。在 图示的实施例中,库0-7表示路0的高速缓存数据部分,其中每个库的宽度是1字节,并且 保护存储装置45表示路0的保护部分。库0-7每一个存储N个字节,对于集0至N-I中的 每一个,一个字节与其对应。因此,在图示的实施例中,具有8个库,路0的每个高速缓存数 据字段存储双字。如果路0的每个高速缓存数据字段存储双字以上,则电路40将按照需要 包括更多的库以及按照需要包括更大的保护存储装置。还应当注意,这里图3的描述类似 地应用到路0-7中的每路。电路31包括路0错误控制电路,其是错误控制电路66的一部分。路0错误控制 电路双向耦接到存储器存储电路40 (耦接到高速缓存电路21路0的部分),并且包括路0 选择逻辑60、模式逻辑50 (其被耦接以接收来自分配控制寄存器48的信息)、共享的异或 (XOR)树52、以及错误检测和校正逻辑M。模式逻辑50基于分配控制寄存器48的路0分 配控制字段的值,将模式指示符62输出到路0选择逻辑60的控制输入。在一个实施例中, 模式62指示电路31正在操作于什么错误检测模式。例如,在图示的实施例中,基于控制寄 存器48中的路0分配控制字段的值,模式62指示电路31在操作于EDC/ECC模式(多位的 错误检测/错误检测和校正)还是奇偶校验模式(单个位的错误检测)。在一个实施例中, 当路0分配控制字段是01时,其指示路0可用于由指令未命中行填充的替换,模式62指示EDC/ECC模式。当路0分配控制字段是10或11时,其指示路0存储数据类型信息或者指令 和数据类型信息两者,模式62指示奇偶校验模式。例如,在路0存储数据类型信息的情况 下,可能不希望执行读-修改-写(RMW),如EDC/ECC模式中所进行的那样;因此,奇偶错误 检测模式可能是足够的。此外,在一个实施例中,如果路0被分配用于只读数据类型信息, 则模式逻辑50还可以设置模式62来指示EDC/ECC模式。在EDC/ECC模式中,保护存储装置45的每个条目存储用于库0_7中的相应条目的 相应校验位。例如,保护存储装置45的第一条目存储与库0-7每一个的第一条目中存储的 数据对应的校验位。但是,在奇偶校验模式中,保护存储装置45的每个条目存储与库0-7 每一个中的条目对应的奇偶校验位。例如,在奇偶校验模式中,保护存储装置45的第一条 目存储用于库0-7每一个中的第一条目的奇偶校验位。因此,在其中存在8个库的图示的 实施例中,保护存储装置45的每个条目存储8个奇偶校验位,对于库0-7每一个库一个校 验位。在EDC/ECC模式中,共享的XOR树52被耦接以接收来自库0至7中的每一个的和 来自保护存储装置45的信息。在EDC/ECC模式中,共享的XOR树52基于从高速缓存控制 电路38的其他部分接收的信息(其可能来自总线,或者基于从库0-7每一个中的特定 条目接收的信息,或者基于两者的组合,生成提供给保护存储装置45用于存储在相应的条 目中的校验位56。此外,在EDC/ECC模式中,共享的XOR树52基于从库0_7每一个中的特 定条目接收的信息和来自保护存储装置45的相应的校验位,生成提供给校正逻辑M的校 正子位(syndr0mebit)58。在EDC/ECC模式中,校正逻辑M还从库0_7每一个中的特定条 目接收信息,并且使用相应的校正子位58执行多位的错误检测,并且可选地(对于实现EDC 的实施例)校正所接收的信息并将经校正的来自库0-7的特定条目的信息提供给路0选择 逻辑60。因此,路0选择逻辑60基于模式62的值,将校正逻辑M的输出提供给输出选择 逻辑37 (如果处于ECC模式的话),或者将库0-7中的一个或更多个的输出直接提供给输出 选择逻辑37 (如果处于EDC或奇偶校验模式的话)。当在路0中发生高速缓存命中时,输出 选择逻辑选择路0选择逻辑60的输出以提供给总线M。应当注意,在奇偶校验模式中,也 可以将相应的奇偶校验位从保护存储装置45提供给输出选择逻辑37。此外,错误检测和校 正逻辑M可以将错误指示符提供给总线M以指示是否发生了错误。应当注意,在一个实施例中,在EDC模式中,仅执行错误检测。在该情况下,检测 到多个位错误,但是在将其输出到输出选择逻辑37之前不对其进行校正。在该情况下,由 于错误未被校正,因此可以断言错误指示符以指示错误。此外,在该情况下,错误检测和校 正逻辑M可以被称为错误检测逻辑,并且错误检测逻辑的输出不需要提供给路0选择逻辑 60。就是说,在该实施例中,由于可以从库0-7直接提供未经校正的位,因此可以不需要路 0选择逻辑60。因此,对于奇偶校验模式中的高速缓存命中读操作,或者当以EDC操作时,选择逻 辑60将库0-7中的一个或更多个库中的被访问条目的输出以及相应的奇偶校验位提供给 输出选择逻辑37。对于ECC模式中的高速缓存命中读操作,选择逻辑60将错误检测和校正 逻辑M的输出提供给输出选择逻辑37。对于奇偶校验模式中的高速缓存命中写操作或者 在奇偶校验模式中的高速缓存未命中时执行的高速缓存分配操作,写数据被直接提供给由 写操作访问地址寻址的库0-7中的一个或更多个库中的条目。就是说,可以针对库0-7中的任意数目的库执行写入,并且保护存储装置45的相应条目中的相应奇偶校验位在共享 的XOR树52中的生成之后也被逐位地更新。通过该方式,如果作为写操作的结果仅写入一 个库,则仅更新保护存储装置45的相应条目中的一个位。奇偶校验模式中的奇偶校验位的 更新可以由控制逻辑46中的逻辑(未示出)按已知的方式执行。对于EDC/ECC模式中的全写操作(其中所有库0_7均被写入(即,其中全部高速 缓存数据字段被写入)),不需要执行读-修改-写(RMW)操作。通过该方式,可以通过一次 或单次访问(例如,在单个处理器周期或者单个时钟周期中)执行全写操作(对存储器存 储电路40的所有库的写入)。在该情况下,写数据被提供给由全写操作访问地址寻址的库 0-7的每个条目。写数据还被提供给共享的XOR树52,其生成相应的校验位,并且经由校验 位56将它们提供给保护存储装置45以存储在相应的条目中。在一个实施例中,共享的XOR 树52是组合逻辑,其中校验位的生成和回写可以在与将写数据写入库0-7相同的处理器或 时钟周期中完成。对于EDC/ECC模式中的部分写操作(其中少于所有库0_7的库被写入),需要 读-修改-写(RMW)。因此,对少于所有库0-7的库(即,少于全部高速缓存数据字段)执 行写操作需要多次访问(例如,多个处理器周期或时钟周期),并且不能象全写操作的情况 那样通过单次访问来执行。由于实现读-修改-写操作的复杂性,在一些实施例中可能不 支持对少于所有库0-7的库的写操作。因此,在这些实施例中,对于可写数据,可以选择奇 偶性保护,而对于仅在高速缓存未命中时更新所有库0-7时写入的指令信息,可以选择多 位EDC/ECC,该选择是基于路分配控制设置的。至此应意识到,已经提供了一种高速缓存,该高速缓存的路能够基于关于每个特 定的路的路分配控制字段在奇偶校验或EDC/ECC模式中操作。通过该方式,如果需要,高速 缓存的每一路可以使用单个位的错误检测的奇偶校验进行操作或者使用允许多位的错误 检测和校正的EDC/ECC进行操作。此外,通过动态地改变路分配控制寄存器的路分配控制 字段的值,可以在操作期间动态地改变用于每一路的错误检测方案,导致了另外的灵活性。由于实现本发明的装置大部分由本领域技术人员已知的电子部件和电路组成,因 此为了理解和领会本发明的主要概念而不致使本发明的教导的模糊和分散,如上文所说明 的,将不会在超出被认为是必要的程度上对电路细节进行解释。一些上述实施例在适当的情况下可以使用多种不同的信息处理系统来实现。例 如,尽管图1及其讨论描述了示例性的信息处理架构,但是该示例性架构仅被呈现用于提 供在讨论本发明的各种方面时有用的参考。当然,出于讨论的目的,该架构的描述已被简 化,并且其仅是可以根据本发明使用的许多不同类型的适当架构中的一个。本领域技术人 员将认识到,逻辑模块之间的边界仅是说明性的,并且替代实施例可以将逻辑模块或电路 元件合并,或者对各种逻辑模块或电路元件加以替代的功能分解。因此,应理解,这里描述的架构仅是示例性的,并且实际上可以实现获得相同功能 的许多其他的架构。在抽象但仍是明确的意义上,用于实现相同功能的任何部件布置被有 效地“关联”,以使得实现所期望的功能。因此,在这里被组合来实现特定功能的任何两个部 件可以被视为彼此“关联”从而实现所期望的功能,而不管架构或中间部件如何。同样地, 如此关联的任何两个部件也可以被视为彼此“操作连接”或者“操作耦接”以实现所期望的 功能。
此外,例如,在一个实施例中,数据处理系统10的所示元件是位于单个集成电路 上的或者在同一装置中的电路。替代地,数据处理系统10可以包括彼此互连的任意数目的 分立的集成电路或者分立的装置。例如,存储器16可以位于与处理器12相同的集成电路上 或者位于分立的集成电路上,或者位于离散地与数据处理系统10的其他元件隔开的另一 外围设备或从设备中。外围设备18和20也可以位于分立的集成电路或装置上。此外,例 如,数据处理系统10或者其部分可以是物理电路的或者可转换为物理电路的逻辑表示的 软的表示或代码表示。因此,数据处理系统10可以以任何适当类型的硬件描述语言实现。此外,本领域技术人员将认识到,上述操作的功能之间的边界仅是说明性的。多个 操作的功能可以被组合到单个操作中,和/或单个操作的功能可以分布在另外的操作中。 此外,替代实施例可以包括特定操作的多个实例,并且在多种其他实施例中,操作的顺序可 以改变。这里描述的软件中的全部或一些可以是例如从计算机可读介质(诸如存储器16) 或者其他计算机系统上的其他介质接收的数据处理系统10的元件。该计算机可读介质可 以永久性地、可拆卸地或者远程地耦接到诸如数据处理系统10的信息处理系统。所述计 算机可读介质可以包括,例如且非限制性的,任何数目的以下设备磁存储介质,包括盘和 带存储介质;光存储介质,诸如压缩盘介质(例如,CD-ROM、CD-R等)和数字视频盘存储介 质;非易失性存储器存储介质,包括基于半导体的存储器单元,诸如FLASH存储器、EEPR0M、 EPROM、ROM ;铁电数字存储器;MRAM ;易失性存储介质,包括寄存器、缓存器或高速缓存、主 存储器、RAM等;以及数据传输介质,包括计算机网络、点对点通讯设备和载波传送介质,等寸。在一个实施例中,数据处理系统10是计算机系统,诸如个人计算机系统。其他的 实施例可以包括不同类型的计算机系统。计算机系统是信息处理系统,其能够被设计来向 一个或更多个用户提供独立的计算能力。可以发现许多形式的计算机系统,包括但不限于 大型主机、微型计算机、服务器、工作站、个人计算机、笔记型计算机、个人数字助理、电子游 戏机、机动车用和其他嵌入系统、蜂窝电话、和各种其他无线设备。典型的计算机系统包括 至少一个处理单元、关联的存储器和若干输入/输出(I/O)装置。计算机系统根据程序处理信息,并且经由I/O装置产生结果输出信息。程序是指 令列表,诸如特定的应用程序和/或操作系统。计算机程序典型地内部存储在计算机可读 存储介质上,或者经由计算机可读传输介质传送到计算机系统。计算机处理典型地包括 执行(运行)程序或者部分程序,当前程序值和状态信息,以及操作系统所使用的用于管理 处理过程的执行而使用的资源。父处理可以产生其他的子处理以帮助执行父处理的整体功 能。由于父处理特别地产生子处理以执行父处理的整体功能的一部分,因此子处理(和孙 处理等)执行的功能有时可以被描述为由父处理执行。尽管这里参照特定实施例描述了本发明,但是可以进行多种修改和改变而不偏离 如所附权利要求中阐述的本发明的范围。例如,可以基于系统需要修改地址字段中使用的 位的数目。因此,说明书和附图应被视为说明性的而非限制性的,并且意图将所有这些修改 涵盖在本发明的范围内。这里就特定实施例描述的任何益处、优点或者对问题的解决方案 不应被解释为任何或所有权利要求的关键的、必需的或者基本的特征或元素。如这里使用的术语“耦接”不应限于直接耦接或机械耦接。
此外,如这里使用的术语“一” (“a”或“an”)被定义为一个或多于一个。此外, 权利要求中的诸如“至少一个”和“一个或更多个”的引入性习语的使用不应被解释为暗示 了由不定冠词“一”(“a”或“an”)引入另一权利要求元素将包含该引入的权利要求元素 的任何特定权利要求限制为仅包含一个该元素的发明,即使在同一权利要求包括引入性习 语“一个或更多个”或“至少一个”以及诸如“一”(“a”或“an”)的不定冠词时也是如此。 对于定冠词的使用亦是如此。除非另外说明,否则诸如“第一”和“第二”的术语用于任意区分这些术语描述的 元素。因此,这些术语并不必然用于指示这些元素的时间或其他优先顺序。下面是本发明的各种实施例。项1包括一种数据处理系统,其包括处理电路,用于执行多个数据处理指令 ’统 一高速缓存存储器,其耦接到所述处理电路,用于存储由所述处理电路处理的数据和指令, 所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息字 段;以及高速缓存存储器控制电路,其耦接到所述统一高速缓存存储器,并且包括用于分配 控制的控制寄存器,用以控制将所述多路中的每一路分配用于下列中的一个(1)第一类 型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述高 速缓存存储器控制电路进一步基于所述控制寄存器指示的分配控制,单独地控制从多个错 误检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。项2包括项1 的数据处理系统,其中所述第一类型的信息是数据信息,并且所述第二类型的信息是指令 信息。项3包括项2的数据处理系统,其中所述第一类型的信息与选择单个位的错误检测 相关,而所述第二类型的信息与选择多位的错误检测相关。项4包括项3的数据处理系统, 其中所述第二类型的信息进一步包括只读数据信息。项5包括项3的数据处理系统,其中 所述数据信息是可修改的数据信息。项6包括项3的数据处理系统,其中所述第二类型的 信息与选择多位的错误检测和校正相关。项7包括项3的数据处理系统,其中所述控制寄 存器是用户可访问的,用于单独地动态地修改用于所述统一高速缓存存储器的多个分立的 路中的每一路的错误检测类型。项8包括项1的数据处理系统,其中所述多个错误检测类 型包括奇偶校验、错误检测码(EDC)、和错误校正码(ECC)。项9包括一种方法,其包括提供处理电路,所述处理电路用于执行多个数据处 理指令;将统一高速缓存存储器耦接到所述处理电路,以存储由所述处理电路处理的数据 和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个 信息字段;将高速缓存存储器控制电路耦接到所述统一高速缓存存储器;以及提供控制电 路,所述控制电路将所述统一高速缓存存储器的每一路分配用于下列中的一个(1)第一 类型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述 控制电路进一步基于分配结果,单独地控制从多个错误检测类型中选择用于所述统一高速 缓存存储器的每一路的错误检测类型。项10包括项9的方法,并且进一步包括将所述第一 类型的信息选择为数据信息;以及将所述第二类型的信息选择为指令信息。项11包括项10 的方法,并且进一步包括使所述第一类型的信息与选择单个位的错误检测作为错误检测 类型相关;以及使所述第二类型的信息与选择多位的错误检测作为错误检测类型相关。项 12包括项11的方法,并且进一步包括将第二类型的信息形成为只读数据信息。项13包 括项11的方法,并且进一步包括将所述数据信息形成为可修改的数据信息。项14包括项11的方法,并且进一步包括使所述第二类型的信息与选择多位的错误检测和校正作为错 误检测类型相关。项15包括项11的方法,并且进一步包括通过对所述控制电路的用户访 问,单独地动态地修改用于所述统一高速缓存存储器的每一路的错误检测类型。项16包括 项11的方法,并且进一步包括基于分配结果为所述统一高速缓存存储器的每一分立的路 单独地选择奇偶校验、错误检测码(EDC)和错误校正码(ECC)中的一个。
项17包括一种数据处理系统,其包括处理单元,用于执行多个数据处理指令;统 一高速缓存存储器,其耦接到所述处理单元,用于存储由所述处理电路处理的数据和指令, 所述统一高速缓存存储器包括多路,每一路包括多个行,每个行包括信息字段;第一控制电 路,其耦接到所述统一高速缓存存储器,并且包括分配控制寄存器,所述分配控制寄存器用 于将所述多路中的每一路分配用于第一类型的信息或者第二类型的信息,或者用于第一类 型的信息和第二类型的信息两者;以及第二控制电路,其耦接到所述第一控制电路,用于基 于所述第一控制电路执行的分配,进一步单独地选择用于所述统一高速缓存存储器的每一 路的错误检测模式。项18包括项17的数据处理系统,其中所述第一类型的信息是与所述第 二控制电路将单个位的错误检测选择作为错误检测模式相关的数据信息,而所述第二类型 的信息是与所述第二控制电路将多位的错误检测选择作为错误检测模式相关的指令信息。 项19包括项17的数据处理系统,其中所述第一控制电路是用户可访问的,用于单独地动态 地修改用于所述统一高速缓存存储器的所述多路中的每一路的错误检测类型。项20包括 项17的数据处理系统,其中所述第一控制电路进一步包括存储装置,所述存储装置包括多 个控制字段,所述多个控制字段中的每一个与所述统一高速缓存存储器的所述多路中的预 定路相关,用于存储控制用于所述预定路的信息类型分配的编码的二进制值。
权利要求
1.一种数据处理系统,包括处理电路,用于执行多个数据处理指令;统一高速缓存存储器,其耦接到所述处理电路,用于存储由所述处理电路处理的数据 和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个 信息字段;以及高速缓存存储器控制电路,其耦接到所述统一高速缓存存储器,并且包括用于分配控 制的控制寄存器,用以控制将所述多路中的每一路分配用于下列中的一个(1)第一类型 的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述高速 缓存存储器控制电路进一步基于所述控制寄存器指示的分配控制,单独地控制从多个错误 检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。
2.根据权利要求1所述的数据处理系统,其中所述第一类型的信息是数据信息,并且 所述第二类型的信息是指令信息。
3.根据权利要求2所述的数据处理系统,其中所述第一类型的信息与选择单个位的错 误检测相关,而所述第二类型的信息与选择多位的错误检测相关。
4.根据权利要求3所述的数据处理系统,其中所述第二类型的信息进一步包括只读数 据信息。
5.根据权利要求3所述的数据处理系统,其中所述数据信息是可修改的数据信息。
6.根据权利要求3所述的数据处理系统,其中所述第二类型的信息与选择多位的错误 检测和校正相关。
7.根据权利要求3所述的数据处理系统,其中所述控制寄存器是用户可访问的,用于 单独地动态地修改用于所述统一高速缓存存储器的多个分立的路中的每一路的错误检测 类型。
8.根据权利要求1所述的数据处理系统,其中所述多个错误检测类型包括奇偶校验、 错误检测码(EDC)、和错误校正码(ECC)。
9.一种方法,包括提供处理电路,所述处理电路用于执行多个数据处理指令;将统一高速缓存存储器耦接到所述处理电路,以存储由所述处理电路处理的数据和指 令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息 字段;将高速缓存存储器控制电路耦接到所述统一高速缓存存储器;以及提供控制电路,所述控制电路将所述统一高速缓存存储器的每一路分配用于下列中的 一个(1)第一类型的信息、(2)第二类型的信息、或者C3)第一类型的信息和第二类型的信 息两者,所述控制电路进一步基于分配结果,单独地控制从多个错误检测类型中选择用于 所述统一高速缓存存储器的每一路的错误检测类型。
10.根据权利要求9所述的方法,进一步包括将所述第一类型的信息选择为数据信息;以及将所述第二类型的信息选择为指令信息。
11.根据权利要求10所述的方法,进一步包括使所述第一类型的信息与选择单个位的错误检测作为错误检测类型相关;以及使所述第二类型的信息与选择多位的错误检测作为错误检测类型相关。
12.根据权利要求11所述的方法,进一步包括将第二类型的信息形成为只读数据信息。
13.根据权利要求11所述的方法,进一步包括将所述数据信息形成为可修改的数据信息。
14.根据权利要求11所述的方法,进一步包括使所述第二类型的信息与选择多位的错误检测和校正作为错误检测类型相关。
15.根据权利要求11所述的方法,进一步包括通过对所述控制电路的用户访问,单独地动态地修改用于所述统一高速缓存存储器的 每一路的错误检测类型。
16.根据权利要求11所述的方法,进一步包括基于分配结果为所述统一高速缓存存储器的每一分立的路单独地选择奇偶校验、错误 检测码(EDC)和错误校正码(ECC)中的一个。
17.一种数据处理系统,包括处理单元,用于执行多个数据处理指令;统一高速缓存存储器,其耦接到所述处理单元,用于存储由所述处理电路处理的数据 和指令,所述统一高速缓存存储器包括多路,每一路包括多个行,每个行包括信息字段;第一控制电路,其耦接到所述统一高速缓存存储器,并且包括分配控制寄存器,所述分 配控制寄存器用于将所述多路中的每一路分配用于第一类型的信息或者第二类型的信息, 或者用于第一类型的信息和第二类型的信息两者;以及第二控制电路,其耦接到所述第一控制电路,用于基于所述第一控制电路执行的分配, 进一步单独地选择用于所述统一高速缓存存储器的每一路的错误检测模式。
18.根据权利要求17所述的数据处理系统,其中所述第一类型的信息是与所述第二控 制电路将单个位的错误检测选择作为错误检测模式相关的数据信息,而所述第二类型的信 息是与所述第二控制电路将多位的错误检测选择作为错误检测模式相关的指令信息。
19.根据权利要求17所述的数据处理系统,其中所述第一控制电路是用户可访问的, 用于单独地动态地修改用于所述统一高速缓存存储器的所述多路中的每一路的错误检测 类型。
20.根据权利要求17所述的数据处理系统,其中所述第一控制电路进一步包括存储装 置,所述存储装置包括多个控制字段,所述多个控制字段中的每一个与所述统一高速缓存 存储器的所述多路中的预定路相关,用于存储控制用于所述预定路的信息类型分配的编码 的二进制值。
全文摘要
在数据处理系统(10)中,处理电路(30)执行多个数据处理指令。统一高速缓存存储器(21)存储由处理电路处理的数据和指令。统一高速缓存存储器包括多个集,每个集具有多路,每一路具有一个或更多个信息字段。高速缓存存储器控制电路(38)具有控制寄存器(48),用于控制将所述多路中的每一路分配用于下列中的一个(1)第一类型的信息(数据)、(2)第二类型的信息(指令)、或者(3)第一类型的信息和第二类型的信息两者。高速缓存存储器控制电路(38)进一步基于控制寄存器指示的分配控制,单独地控制从多个错误检测类型选择用于统一高速缓存存储器的每一路的错误检测类型(奇偶校验,ECC)。
文档编号G06F12/00GK102138129SQ200980133741
公开日2011年7月27日 申请日期2009年6月26日 优先权日2008年9月5日
发明者W·C·莫耶 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1