适用于高速缓存的读访问和存储电路读分配的制作方法

文档序号:6483941阅读:212来源:国知局
专利名称:适用于高速缓存的读访问和存储电路读分配的制作方法
技术领域
本发明总的来说涉及存储电路读分配,尤其涉及适用于高速缓存的存储电路读分配。
背景技术
在现有技术的数据处理系统中,在高速缓存中未命中的读访问会导致根据高速缓存的读置换算法来分配该高速缓存中的高速缓存线。在高速缓存的正常操作中,这通常是期望的行为。然而,在某些情况下,这种行为可能是有问题的。


借助(但不限于)附图的实例来说明本发明,在附图中,相同的参考标记表示相同的元件,其中图1以框图形式示出根据本发明一个实施例的数据处理系统;图2以流程图形式示出根据本发明一个实施例的高速缓存的读访问;图3以流程图形式示出要求根据本发明一个实施例的对存储电路读访问的调试操作。
本领域技术人员会认识到,图中的元件仅为了简明和清楚而示出,不必按比例绘制。例如,图中一些元件的尺寸可能相对于其他元件被夸大了,以有助于理解本发明的实施例。
具体实施例方式
在现有技术的数据处理系统中,由调试器进行的在L2高速缓存中未命中的读访问会导致L2高速缓存中的高速缓存线被分配,潜在地置换当前有效的、且被潜在修正的高速缓存线。如果调试器是通过要执行的一系列指令来单步执行的,这可能是希望的结果。然而,如果调试器正在仅为了可见性(visibility)目的而读取高速缓存中的内容,这可能会造成问题。本发明解决了该问题、以及与读访问和存储电路读分配相关的众多其他问题。
图1示出根据本发明一个实施例的数据处理系统10。在一个实施例中,数据处理系统10包括调试电路12,该调试电路12通过信号36与交换电路20双向耦合,并向交换电路20提供读分配信号30。在一个实施例中,数据处理系统10还包括处理器14,处理器14通过信号38与交换电路20双向耦合,并向交换电路20提供读分配信号31。在一个实施例中,数据处理系统10还包括直接存储器访问(DMA)16,DMA 16通过信号40与交换电路20双向耦合,并向交换电路20提供读分配信号32。在一个实施例中,数据处理系统10还包括总线主控器18,总线主控器18通过信号42与交换电路20双向耦合,并向交换电路20提供读分配信号33。在一个实施例中,数据处理系统10还包括L2高速缓存22,L2高速缓存22通过信号44与交换电路20双向耦合,并从交换电路20接收读分配信号34。在一个实施例中,数据处理系统10还包括外围设备24,外围设备24通过信号46与交换电路20双向耦合,并从交换电路20接收读分配信号35。
注意,在本发明的一个实施例中,根据12、14、16或18中哪一个发起了对L2高速缓存22的读访问,来通过交换电路20将读分配信号30-33中的一个提供作为读分配信号34。注意,在本发明的一个实施例中,根据12、14、16或18中哪一个发起了对外围设备24的读访问,来通过交换电路20将读分配信号30-33中的一个提供作为读分配信号35。
在本发明的一个实施例中,处理器14包括耦合到处理器14的L1高速缓存15。尽管示出L1高速缓存15比L2高速缓存22更直接地耦合到处理器14,但本发明的替代实施例可以具有任何数量的高速缓存,它们以各种所希望的方式耦合到处理器14。在本发明的替代实施例中,L1高速缓存15和L2高速缓存22不必是高速缓存,而可以是具有读分配能力的任何类型的存储电路。在本发明的一个实施例中,L2高速缓存22通过导体48耦合到系统存储器26。
在本发明的一个实施例中,读分配信号30和信号36是总线60的一部分;读分配信号31和信号38是总线61的一部分;读分配信号32和信号40是总线62的一部分;读分配信号33和信号42是总线63的一部分;读分配信号34和信号44是总线64的一部分;读分配信号35和信号46是总线65的一部分。总线60-65可以是相同的总线,或者可以是具有公共总线协议的公共总线的一个或多个子集。作为替换,总线60-65中的不同总线可以使用相同的总线协议或不同的总线协议。在本发明的替代实施例中,互连电路50可以不使用任何总线结构或总线协议。在本发明的一个实施例中,互连电路50包括交换电路20和总线60-65;然而,互连电路50以按任何方式实现。如这里所使用的,术语“总线”用来表示多个信号或导体,它们可用来传送一个或多个不同类型的信息,例如数据、地址、控制或状态。
在本发明的一个实施例中,L2高速缓存22包括读分配电路70和写分配电路74,它们都与存储元件72向耦合。存储元件72可以用来存储信息,例如已经高速缓存的数据或指令,以及用于本发明一些实施例的历史比特和高速缓存标记。在本发明的替代实施例中,存储元件72可以按任何所希望的方式实现,并可以存储任何所希望的信息。
在图1示出的本发明的实施例中,调试电路12、处理器14、直接存储器访问(DMA)16和总线主控器18每个都可以是访问发起者,该发起者发起对L2高速缓存22的读访问。本发明的替代实施例可以使用不同的配置。例如,本发明的替代实施例可以具有比12、14、16和16更少、更多或不同的电路框,它们发起对L2高速缓存22的读访问。总线主控器18可以是能够通过总线63和64发起对L2高速缓存22的读访问的任何类型的电路。如果互连电路50不使用具有总线协议的总线,则电路18可以不是总线主控器,而是能够发起对L2高速缓存22的读访问的任何类型的电路。
图2以流程图形式示出了根据本发明一个实施例对L2高速缓存22(见图1)的读访问。该流程在椭圆开始框100开始。然后,流程继续步骤101,在此发起读访问。流程继续步骤102,在此提供与读访问对应的读分配信号。参考图1,电路12、14、16或18中的任何一个都可以发起读访问,并且随后将提供读分配信号。然后,流程继续菱形判定框103,在此询问“读访问是禁止高速缓存的读访问吗?”。如果对菱形判定框103的答案为是,则流程继续步骤104,在此完成禁止高速缓存的读访问。从步骤104,流程在椭圆结束框110结束。如果对菱形判定框103的答案为否,则流程继续菱形判定框105,在此询问“读分配信号指示没有读分配要执行吗?”。如果对菱形判定框105的答案为否,则流程继续步骤106,在此完成可高速缓存的读访问,同时允许修改高速缓存的内容和读分配电路的状态。从步骤106,流程在椭圆结束框110结束。如果对菱形判定框105的答案为是,则流程继续菱形判定框107,在此询问“读访问导致高速缓存未命中吗?”。如果对菱形判定框107的答案为否,则流程继续步骤108,在此完成可高速缓存的读访问,而不修改读分配电路的状态。如果对菱形判定框107的答案为是,则流程继续步骤109,在此,完成可高速缓存的读访问,而不修改高速缓存的内容,并且不修改读分配电路的状态。在本发明的替代实施例中,菱形判定框103是可选的。如果不使用菱形判定框103,则流程从步骤102继续到菱形判定框105。
图3以流程图形式示出了一种调试操作,其要求根据本发明一个实施例的对存储电路的读访问。在本发明的一个实施例中,图1的调试电路12可用来发起并执行调试操作。该流程在椭圆开始框200开始。然后,流程继续步骤201,在此发起要求读访问的调试操作。流程继续到菱形判定框202,在此询问“调试操作是单步操作吗?”。如果对菱形判定框202的答案为是,则流程继续步骤203,在此提供与读访问对应的读分配信号,以指示要执行读分配。从步骤203,流程继续到步骤204,在此执行带有读分配的读访问。从步骤204,流程继续到步骤205,在此完成调试操作。从步骤205,流程在椭圆结束框206结束。如果对菱形判定框202的答案为否,则流程继续到步骤207,在此提供与读访问对应的读分配信号,以指示没有读分配要执行。从步骤207,流程继续到布骤208,在此执行不带读分配的读访问。从步骤208,流程继续到步骤205,在此完成调试操作。从步骤205,流程在椭圆结束框206结束。
存在一些应用,例如某些类型的调试操作,在这些应用中有利的是,对系统存储器26执行的读访问对于高速缓存中的一个或多个(例如L2高速缓存22)而言是不唐突的。这要求在执行读访问时不应该发生高速缓存状态和/或内容的修改。这是很重要的,因为如果修改了高速缓存状态和/或内容,数据处理系统的调试可能导致其他不希望的副作用。另外,副作用可能导致该问题被调试以致改变特性,或者没有被暴露出来,这将阻止调试成功。另一方面,存在一些应用,例如其他调试操作(例如通过用户应用程序指令单步执行的),在这些应用中有利的是,对系统存储器26执行的读访问导致对高速缓存中的一个或多个(例如L2高速缓存22)作出与在正常操作中可能发生的相同的修改。因此,能够根据调试操作类型在高速缓存或其他存储电路中选择性地执行读分配是非常有用的。
在本发明的一个实施例中,将读分配信号(例如30、31、32或33)用作读分配指示符,以指示是否要执行读分配(例如在高速缓存22中)。如果没有发生读分配,则执行读访问,而不修改高速缓存22的信息内容,并且/或者不修改高速缓存22的读分配状态。本发明的一些实施例阻止高速缓存22的信息内容的修改,本发明的一些实施例阻止高速缓存22的读分配状态的修改,而本发明的一些实施例既阻止高速缓存22的信息内容的修改,又阻止高速缓存22的读分配状态的修改。高速缓存22的内容是存储在存储元件72(见图1)中的信息。读分配电路70用来执行在高速缓存22中使用的读置换算法。读置换算法是用来确定当高速缓存在读访问上未命中时接下来要替换掉哪一个高速缓存线的规则或规则组。本发明可与任何所希望的读置换算法一起使用。因此,由读分配电路70执行的读置换算法可以是任何希望的置换算法。每次发生高速缓存未命中时,置换算法单步调试一系列状态,以便总具有更新值,该更新值是为了在读访问上的下一次高速缓存未命中而应当填充入高速缓存线中的更新值。
对于本发明的一些实施例(例如使用一种或多种所选择类型的调试操作),阻止高速缓存的信息内容的修改是不够的;还必须不影响读分配电路70的读置换算法的当前状态(例如读分配状态)。注意,本发明的一些实施例可选地具有写分配电路74,其为写访问确定高速缓存22的行为。本发明的替代实施例甚至可以不具有写分配电路74。在本发明的一些实施例中,读分配电路70的操作和置换算法是完全与写分配电路74的操作和置换算法无关的。本发明的一些实施例可以对读和写高速缓存未命中具有共同的置换算法。在这种实施例中,读分配电路70和写分配电路74可以合并为单个和/或共同电路,不过注意到以下一点是很重要的,即读分配和写分配对数据处理系统10的用户或调试程序呈现完全不同的问题。
尽管在使用高速缓存22的特定实施例的情况中描述了本发明,但本发明的替代实施例可以使用具有读分配能力的任何类型的存储电路。本发明不限于高速缓存应用。此外,尽管本发明对调试操作是有用的,但本发明可用于任何希望的目的,而不限于在调试操作中使用。作为不同应用的一个可能例子,处理器14可以选择性地确定由于读访问中的数据不大可能再次使用,因此不在一个或多个高速缓存中执行读分配,从而可有利地阻止读访问导致在高速缓存中已获得的潜在更有用信息被置换。
注意,本发明还可与L1高速缓存15一起使用。对于该实施例,可以从处理器14向L1高速缓存15提供读分配信号(未示出)。该读分配信号(未示出)可按与读分配信号30-35相同或相似的方式起作用。此外,本发明还可与外围设备24一起使用。读分配信号35可按与提供给L2高速缓存22的读分配信号34相同或相似的方式起作用。
在前面的说明书中,参考特定实施例描述了本发明。然而,本领域技术人员应该认识到,可以作出各种修改和变化,而不脱离在权利要求中提出的本发明的范围。因此,说明书和附图应该看作示例性的,而不是限制性的,并且所有这种修改都应包括在本发明的范围内。
上面针对特定实施例描述了益处、优势和问题的解决方法。然而,可以使任何益处、优势或方法出现或变得更加显著的益处、优势、解决问题的方法和任何部件不应推论为任何或所有权利要求的关键的、必须的或主要的特征或部件。如此处所使用的,术语“包括”、“包含”或其任何其它变化想要覆盖不排除的包含物,使得包括一列部件的工艺、方法、物品或设备不仅包括那些部件,而且还可以包括未明确列出的或这种工艺、方法、物品或设备固有的其他部件。
附加文本1.一种装置,其包括存储电路;和耦合到所述存储电路的访问发起电路,所述访问发起电路发起对所述存储电路的读访问,并向所述存储电路提供与所述读访问对应的读分配指示符。
2.如权利要求1所述的装置,其中,根据所述读分配指示符,在所述读访问期间选择性地执行读分配。
3.如权利要求2所述的装置,其中,当所述读分配指示符具有第一值时,在具有读分配的情况下执行所述读访问,当所述读分配指示符具有第二值时,在没有读分配的情况下执行所述读访问。
4.如权利要求1所述的装置,其中,所述存储电路经互连电路耦合到所述访问发起电路。
5.如权利要求4所述的装置,其中,所述互连电路包括耦合到所述存储电路和访问发起电路的系统总线,并且经所述系统总线提供所述读分配指示符。
6.如权利要求4所述的装置,其中,所述存储电路包括高速缓存,所述访问发起电路包括调试电路,其中所述读访问是调试操作的一部分。
7.如权利要求1所述的装置,其中,所述存储电路包括高速缓存器。
8.如权利要求7所述的装置,其中,所述访问发起电路包括处理器。
9.如权利要求8所述的装置,其中,所述处理器包括高速缓存器。
10.如权利要求1所述的装置,其中,所述访问发起电路包括直接存储器访问(DMA)。
11.如权利要求1所述的装置,其中,所述访问发起电路包括调试电路,所述读访问是调试操作的一部分。
12.一种执行读访问的方法,其包括发起读访问;提供对应所述读访问的读分配指示符;以及在所述读访问期间,至少根据所述读分配指示符,选择性地执行读分配。
13.如权利要求12所述的方法,其中,所述读访问是对高速缓存的可高速缓存的读访问,并且该方法还包括确定所述可高速缓存的读访问是导致高速缓存命中还是高速缓存未命中;以及当所述可高速缓存的读访问导致高速缓存未命中时,在不修改所述高速缓存的内容的情况下完成所述可高速缓存的读访问。
14.如权利要求13所述的方法,还包括当所述可高速缓存的读访问导致高速缓存未命中时,在不修改所述高速缓存的分配状态的情况下完成所述可高速缓存的读访问。
15.如权利要求13所述的方法,还包括当所述可高速缓存的读访问导致高速缓存命中时,在不修改所述高速缓存的分配状态的情况下完成所述可高速缓存的读访问。
16.如权利要求12所述的方法,还包括确定所述读访问是可高速缓存的读访问还是禁止高速缓存的读访问。
17.如权利要求12所述的方法,其中,所述读访问是对高速缓存的可高速缓存的读访问,并且在对所述高速缓存的写访问期间,所述高速缓存能够执行写分配。
18.如权利要求12所述的方法,其中,所述读访问是在调试操作之内,并且至少根据所述读分配指示符和所述调试操作来选择性地执行读分配。
19.如权利要求18所述的方法,其中,在单步调试操作期间执行读分配。
20.一种装置,其包括用于存储信息的存储元件;和耦合到所述存储元件的读分配电路,其中,所述读分配电路对读分配指示符作出响应,其中,根据所述读分配指示符,所述读分配电路在对所述存储元件的读访问期间选择性地执行读分配。
21.如权利要求20所述的装置,还包括高速缓存,其中,所述高速缓存包括所述存储元件。
22.如权利要求21所述的装置,其中,根据所述读分配指示符,当对所述存储元件的读访问导致高速缓存未命中时,所述读分配电路选择性地阻止所述存储元件中存储的信息的修改。
23.如权利要求21所述的装置,其中,所述读分配电路存储所述高速缓存的读分配状态,并且其中,根据所述读分配指示符,所述读分配电路选择性地阻止所述高速缓存的读分配状态的修改。
24.如权利要求23所述的装置,其中,根据所述读分配指示符,当对所述存储元件的读访问导致高速缓存命中时,所述读分配电路选择性地阻止所述高速缓存的读分配状态的修改。
25.如权利要求20所述的装置,其中,所述读分配电路还包括输入,其中经由所述输入提供所述读分配指示符。
26.如权利要求25所述的装置,其中,经由所述输入,所述读分配指示符被提供用作总线信号。
27.一种执行读访问的方法,其包括发起调试操作,所述调试操作要求对高速缓存的读访问并具有调试操作类型;以及至少根据所述调试操作类型,在所述读访问期间选择性地执行读分配。
28.如权利要求27所述的方法,其中,所述读分配包括修改所述高速缓存的内容和修改所述高速缓存的读分配状态中的至少一种。
29.如权利要求28所述的方法,其中,当所述调试操作类型是第一类型时,在所述读访问期间执行读分配,当所述调试操作类型是第二类型时,在所述读访问期间不执行读分配。
30.如权利要求28所述的方法,其中,当所述调试操作类型是第一类型时,向所述高速缓存提供对应所述读访问的读分配指示符,以指示要对所述读访问执行读分配,当所述调试操作类型是第二类型时,向所述高速缓存提供对应所述读访问的读分配指示符,以指示不对所述读访问执行读分配。
31.一种装置,其包括高速缓存;耦合到所述高速缓存的互连电路;和调试电路,耦合到所述互连电路,所述调试电路发起要求对所述高速缓存进行读访问的调试操作,并经所述互连电路向所述高速缓存提供对应所述读访问的读分配指示符。
32.如权利要求31所述的装置,其中,所述高速缓存响应所述读分配指示符,在所述读访问期间选择性地执行读分配。
33.如权利要求32所述的装置,其中,所述高速缓存响应所述读分配指示符并根据所述调试操作,在所述读访问期间选择性地执行读分配。
34.如权利要求31所述的装置,其中,当所述读分配指示符具有第一值时,在具有读分配的情况下执行所述读访问,当所述读分配指示符具有第二值时,在没有读分配的情况下执行所述读访问。
35.如权利要求31所述的装置,其中,所述互连电路包括交换电路,以从所述调试电路向所述高速缓存传递所述读分配指示符。
36.如权利要求31所述的装置,其中,所述互连电路包括系统总线,所述系统总线耦合到所述调试电路和所述高速缓存,并且其中经所述系统总线提供所述读分配指示符。
权利要求
1.一种装置,其包括存储电路;和耦合到所述存储电路的访问发起电路,所述访问发起电路发起对所述存储电路的读访问,并向所述存储电路提供与所述读访问对应的读分配指示符。
2.如权利要求1所述的装置,其中,当所述读分配指示符具有第一值时,在具有读分配的情况下执行所述读访问,当所述读分配指示符具有第二值时,在没有读分配的情况下执行所述读访问。
3.如权利要求1所述的装置,其中,所述存储电路包括高速缓存,所述访问发起电路包括调试电路,其中所述读访问是调试操作的一部分。
4.如权利要求1所述的装置,其中,所述访问发起电路包括处理器。
5.一种执行读访问的方法,其包括发起读访问;提供对应所述读访问的读分配指示符;以及在所述读访问期间,至少根据所述读分配指示符,选择性地执行读分配。
6.如权利要求5所述的方法,其中,所述读访问是对高速缓存的可高速缓存的读访问,并且该方法还包括确定所述可高速缓存的读访问是导致高速缓存命中还是高速缓存未命中;以及当所述可高速缓存的读访问导致高速缓存未命中时,在不修改所述高速缓存的内容的情况下完成所述可高速缓存的读访问。
7.一种装置,其包括用于存储信息的存储元件;和耦合到所述存储元件的读分配电路,其中,所述读分配电路对读分配指示符作出响应,其中,根据所述读分配指示符,所述读分配电路在对所述存储元件的读访问期间选择性地执行读分配。
8.如权利要求7所述的装置,还包括高速缓存,其中,所述高速缓存包括存储元件,并且,根据所述读分配指示符,当对所述存储元件的读访问导致高速缓存未命中时,所述读分配电路选择性地阻止所述存储元件中存储的信息的修改。
9.一种执行读访问的方法,其包括发起调试操作,所述调试操作要求对高速缓存的读访问并具有调试操作类型;以及至少根据所述调试操作类型,在所述读访问期间选择性地执行读分配。
10.一种装置,其包括高速缓存;耦合到所述高速缓存的互连电路;和调试电路,耦合到所述互连电路,所述调试电路发起要求对所述高速缓存的读访问的调试操作,并经所述互连电路向所述高速缓存提供对应所述读访问的读分配指示符。
全文摘要
向存储电路(例如高速缓存22)提供读分配指示符(例如读分配信号30),以选择性地确定是否对读访问执行读分配。读分配可以包括高速缓存(22)的信息内容的修改和/或由高速缓存(22)中的读分配电路(70)执行的读读置换算法状态。对于特定类型的调试操作,提供读分配指示符,确保在读访问期间不对存储电路进行不希望的修改,这是非常重要的。其他类型的调试操作可能希望当发生读访问时以标准方式修改存储电路。
文档编号G06F13/00GK1791865SQ200480013704
公开日2006年6月21日 申请日期2004年4月30日 优先权日2003年5月21日
发明者威廉·C·莫耶 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1