用于数据处理系统中的高速缓存事务的方法和装置的制作方法

文档序号:6477167阅读:163来源:国知局
专利名称:用于数据处理系统中的高速缓存事务的方法和装置的制作方法
技术领域
本公开通常涉及高速缓存,更具体地,涉及数据处理系统中的高速缓存事务 (transaction)0
现有技术在集成电路上形成的当前的数据处理系统中,常常难以允许实时调试器能够察看 在存储器中一个或更多个变量的当前值,其由于高速缓存或高速缓存体系(hierarchy)可 能被隐藏而无法访问。当前,在实时调试中,如果变量被高速缓存,则在没有一组非常侵入 性的操作来停止(halt)处理器并且从高速缓存提取值的情况下,调试器无法访问变量的 最新值。如果在处理器和调试器之间存在高速缓存体系,则该问题更加严重。此外,当前的 方法可能影响高速缓存的状态,这在调试环境中通常是不利的。例如,如果高速缓存的状态 被影响,则作为高速缓存状态的差异的结果,以同样方式可能不会暴露某些调试问题。


本发明是利用举例来说明的,而不局限于附图,其中同样的附图标记指示类似的 元件。图中的元件是为了简单和清楚而示出,不一定按比例绘制。图1用框图形式示出根据本发明一个实施例的数据处理系统。图2用框图形式示出根据本发明一个实施例的图1的处理器11和/或处理器12 的一部分。图3用表格形式示出根据本发明一个实施例的高速缓存状态定义的列表。图4用状态图形式示出根据本发明一个实施例的高速缓存一致性(coherency)状 态图。图5用表格形式示出根据本发明一个实施例的多个监听(snoop)总线命令。图6用表格形式示出根据本发明一个实施例的、在监听总线命令期间在总线上提 供的信息。
具体实施例方式在本文中描述多个新的监听总线命令或新的监听事务类型,以及为了使用它们的 支持逻辑和构架(framework)。在一个实施例中,提供“显示线(show line) ”和“显示双字 (show doubleword)”监听事务以允许调试电路系统(如,图1的14)获得对变量的最新值 的访问(即使它们被高速缓存)或提取高速缓存内容。在一个实施例中,这些监听事务在 某些方面(如,在由参与的总线主控器执行的监听查找方面)表现得像现有的监听事务类 型一样。然而,对于新的监听总线命令,查找的结果将导致对任何命中(而不是仅对变更的 线的命中)请求监听响应事务。该响应导致被高速缓存的双字的内容或整个高速缓存线被 放置在总线(如,图1的20)上,由此能够被调试电路系统(如,图1的14)捕获。在示出 的实施例中,新的监听事务类型包括“show_line”(显示线)、“show doubleword”(显示
4双字)、“ show_target_line,,(显示目标线)禾口 "show_target_doubleword,,(显示目标双 字)。替代实施例可以具有更少的、更多的、或不同的监听事务,对于监听事务可以使用不同 的名称,或可以使用监听事务的修改的版本。如本文中所使用的,术语“总线”用于指可以用于传递一个或更多个各种类型的信 息(例如数据、地址、控制或状态)的多个信号或导体。可以参考作为单个导体、多个导体、 单向导体或双向导体来示出或描述本文中讨论的导体。然而,不同的实施例可以改变导体 的实现方式。例如,可以使用分开的单向导体,而不使用双向导体,反之亦然。此外,可以用 串行地或以时间复用的(time multiplexed)方式传递多个信号的单个导体代替多个导体。 同样地,可以将携载多个信号的单个导体分成携载这些信号的子集的各种不同的导体。因 此,对于传递信号存在多种选择。图1用框图形式示出根据本发明一个实施例的数据处理系统10。在一个实施例 中,数据处理系统10包括处理器12、调试电路或调试电路系统14、输入/输出(I/O)电路 16、和存储器18,全部都双向耦合到总线20。存储器18可以是任何类型的存储器,例如,只读存储器(ROM)、随机存取存储器 (RAM)、非易失性存储器(如,闪存)等等。此外,存储器18可以是位于另一外围设备或从 设备(slave)之内的或在不同的集成电路上的存储器或其他数据贮存器。在一个实施例中,处理器11、处理器12和调试电路系统14是总线主控器。在一些 实施例中,I/O电路系统16也可以是总线主控器。在一个实施例中,处理器12是能够执行 指令的处理器(例如微处理器、数字信号处理器等等),或者可以是任何其它类型的总线主 控器(例如,存储器直接存取(DMA)控制器或总线桥等等)。注意,在数据处理系统10中可 以包括其他从设备(在图1中未示出),例如,耦合到总线20的另一存储器或高速缓冲存 储器,以及驻留在系统总线上或被耦合到I/O电路16的任何类型的外围电路。在示出的实 施例中,通过导体21将调试电路系统14也双向耦合到处理器11和12。在替代实施例中, 也可以利用独立于总线20的一个或更多个导体(未示出)将调试电路系统14双向耦合到 I/O电路系统16和存储器18中的一个或更多个。在示出的实施例中,处理器11包括通过总线接口单元(BIU) 17双向耦合到总线 20的高速缓存15。处理器12包括高速缓存13和高速缓存23,每个都通过总线接口单元 (BIU) 19双向耦合到总线20。在一个实施例中,高速缓存13用作用于存储供处理器12使 用的数据和/或指令的级别一(Li)高速缓存,并且高速缓存23用作用于存储供处理器12 使用的数据和/或指令级别二(L2)高速缓存。典型地,在由处理器执行之前,数据和/或 指令被从存储器18载入高速缓存13、23。高速缓存13、23可以包括单独的数据高速缓存和 单独的指令高速缓存,或者可以包括一体化的指令和数据高速缓存,或者可以仅包括若干 个数据高速缓存。高速缓存13、23包括一个或更多个数据阵列、一个或更多个标记(tag) 阵列、以及一个或更多个状态位阵列。在一些实施例中,标记和状态信息可以被存储在共同 的阵列中。每个高速缓存表项(entry)由数据块或线、将数据与存储器地址关联的标记值、 以及状态信息组成。对于一些实施例,状态信息可以包括高速缓存表项是否有效、高速缓存 表项是否是“脏的(dirty),,(即,关于与存储器18或其他外部存储器块(如果存在的话) 中的相同的地址相关联的数据进行了变更)、以及高速缓存表项是专属的还是与其他总线 主控器共享的。替代实施例可以包括更少的、更多的、或不同的高速缓存状态信息。在替代实施例中,存储器18,或存储器18的一部分,可以被表征为级别二(L2)高速缓存。输入/输出(I/O)模块16被双向耦合到总线20和外部电路系统(未示出)。I/ 0模块16包括多种接口电路,这取决于耦合到I/O模块16的外部电路系统的类型。I/O模 块16可以包含耦合到总线20的一个或更多个替代的总线主控器,并且可以包含一个或更 多个高速缓存。在一个实施例中,I/O模块16可以用作总线桥,并且经由导体27连接到一 个或更多个合并有一个或更多个高速缓存的装置。调试电路14经由总线20双向耦合到总线处理器11、处理器12、1/0电路16、和/ 或存储器18中的一个或更多个。调试电路14也可以双向耦合到诸如硬件测试器或其他调 试接口硬件的外部电路(未示出)。在一个实施例中,调试电路系统14遵守NEXUS调试协 议。对于一些实施例,电路系统14还遵守JTAG协议。替代实施例可以使用遵守任何期望 的调试协议的调试电路系统14。通常,调试电路系统14用作对于与对高速缓存15、13、23,存储器18,和I/O模块 16,以及在其它实施例中数据处理系统10所采用的其它类型的数据保持电路(无论在数据 处理系统10的内部还是外部)的访问相关联的数据处理操作的诊断检验。处理器12和替 代的总线主控器根据需要取得系统总线20的主控权(mastership),以及选择性地访问系 统存储器18以取出并且存储数据和指令。调试电路系统14可以由数据处理系统10的用 户配置,以通过监控在总线20上呈现的地址并且捕捉或取样在总线20上呈现的相关数据 值来捕捉一个或更多个存储器位置的值。在总线读取操作期间,由选定的从设备(例如,存 储器18)提供该数据值。在总线写入操作期间,由总线20的总线主控器(例如,处理器12) 提供该数据值。随着总线传递发生,调试电路系统14监控每个传递并且选择性地捕捉与调 试电路系统14的用户希望监控的数据位置对应的数据值。这些值和条件可以经由一个或 更多个在图1中示出的端子25编程到调试电路系统中以及从调试电路系统14传递。I/O 电路16也可以通过一个或更多个端子27耦合到数据处理系统10的外部。在一个实施例 中,端子25和27可以是集成电路管脚。在替代实施例中,端子25和27可以是可用于传递 信号到数据处理系统10外部的任何东西,例如导电突块(bump)、导电焊盘、导线等等。注意,如果数据变量或值位于高速缓存13内,则可以相对于存储器18中的对应值 变更该数据值,即最新的(到现在为止最新)值不存在于存储器18中,而仅在高速缓存13 内。如果调试电路系统14访问存储器18以取得期望的变量的值,则由于副本可以在高速 缓存13中内部地变更,将无法获得正确的副本。在数据处理系统10中提供了新的总线事务类型,以允许调试电路系统14 “看见” 可以存储在高速缓存(如,高速缓存13)中的值。该总线事务类型是“显示”(show)事务。 该总线事务可以由充当总线20的总线主控器的调试电路系统14发起。该总线事务包括要 访问的期望的地址位置。确定(如,由图2的高速缓存控制电路系统54确定)地址或高速 缓存表项在高速缓存中导致“命中”还是“未中”。当地址导致命中时,从高速缓存13将与 该地址相关联的值提供到总线20。于是,调试电路系统14能访问来自总线20的值,因为其 由处理器(如,12)提供了。在一个实施例中,调试电路系统14监控总线20上的事务,并且 能够随着总线传递发生取样地址和关联的数据值。然后,通过来自图1的调试电路系统14 的信号,可以在取样之后将期望的值传递到执行调试操作的系统10的用户(如,经由端子 25)。注意,在一个实施例中,当值被放置在总线20上时不变更高速缓存13的状态。在大部
6分现有技术系统中,当正常的高速缓存命中发生时,由于高速缓存13满足由正常载入或存 储指令生成的现有技术载入或存储请求,因此不能将数据变量的值从高速缓存13放置在 总线20上。由于没有使该值在总线20上可见以供捕捉,因而对调试电路系统14这导致了 问题。当访问地址导致未中时,没有信息从高速缓存(如,13)提供到调试电路系统14。在 未中时,可以经由总线20取出数据,由此对于调试电路系统14是可见的以供捕捉。在这些 现有技术系统中,提供仅关于高速缓存未中的可见性导致对可以执行的调试操作的限制。典型地,一些数据值易受变化影响并且响应于执行的指令而被更新。在一些调试 情形中,即使在驻留于高速缓存中时,可能也期望取出该值的最新版本。“脏位” “D”与高 速缓存表项相关联,指示与有效地址相关联的高速缓存中的数据是否与在对应于该数据地 址的另一存储器位置(例如,存储器18)存储的数据不同(即已经被变更)。根据所公开 的实施例,当响应于执行“显示”总线事务从高速缓存取出该值并且呈现给系统总线20时, 不变更与该值的地址相关联的“脏位”。同样地,如果与高速缓存13中的有效地址相关联 的值与另一存储器位置中的值相同,即该数据是干净的,则不变更高速缓存13。换句话说, 即使当命中的高速缓存表项的脏位指示存储在该表项中的数据是干净的时侯,仍向总线20 提供存储在该表项中的数据并且不变更该表项。当命中的高速缓存表项的脏位指示存储在 表项中的数据是脏的时候,仍向总线20提供存储在该表项中的数据,并且不修改该表项, 且并不清除(clear)该脏位。这不同于高速缓存中的“脏位”的正常操作。图2用框图形式示出图1的处理器11和/或处理器12的一部分。图2更详细 地示出了图1中的高速缓存13与BIU19、和/或高速缓存23与BIU19、和/或高速缓存15 与BIU17的一个可能的实施例。为了便于讨论,下面在本文中将假定高速缓存13使用在图 2中示出的实施例。然而,在替代实施例中,高速缓存15和/或高速缓存23也可以使用在 图2中示出的高速缓存实施例,和/或高速缓存13可以使用与图2中示出的不同的高速 缓存实施例。因此,系统10的替代实施例可以使用不同的体系架构、结构和/或电路系统 以实现各种高速缓存(如13、23和15)。在示出的实施例中,高速缓存13包括彼此双向耦 合的高速缓存控制电路系统54和高速缓存阵列50。在一个实施例中,高速缓存阵列50是 被组织为多个表项的随机存取存储器单元的阵列。在一个实施例中,高速缓存阵列50包括 SRAM(静态随机存取存储器)存储器单元。在其它实施例中,其他存储器类型是适合的。在 高速缓存13的一个实施例中,表项52代表多个表项,并且包括标记为“标记地址字段(TAG ADDRESS FIELD)”的标记地址位字段、标记为“标记状态位(TAG STATUS BITS) ”的标记状 态位字段以及标记为“数据(DATA)”的数据位字段。标记状态位字段包括标记为“V”的有 效位、标记为“E”的专属/共享位以及标记为“D”的脏位。在高速缓存13的一个实施例中,每个表项可以被称为用于处理器12的“高速缓存 线”。高速缓存阵列50经由BIU 19双向耦合到总线20。在一个实施例中,高速缓存控制 电路系统54选择性地确定由从例如高速缓存13、存储器18、或调试电路系统14接收的指 令所指向的有效地址在高速缓存13中是命中还是未中。替代实施例可以使用耦合到高速 缓存13的转译查找缓存器(TLB)(未示出),用于执行从有效地址到物理地址的地址转译。 该转译可以用现有技术中已知的标准方式来完成。高速缓存控制电路系统54可以通过将 由TLB提供的用于访问的物理地址与包含在高速缓存阵列50中的一个或更多个标记表项 中的存储值进行比较,来确定由指令指向的有效地址导致命中还是未中。在一些实施例中,不使用TLB,并且将有效地址直接提供给高速缓存13而没有转译。在这样的实施例中,存储 的标记值直接对应于有效地址而不需要到物理地址的地址转译。仍参考图2,高速缓存13被双向耦合到BIU 19。BIU 19被双向耦合到总线20。 在示出的实施例中,总线20包括信号30和信号32。在一个实施例中,信号30包括多个地 址信号40、多个数据信号41、一个或更多个传递类型(transfer_type)信号42、一个或更 多个目标指定器(targetjpecifier)信号43,以及一个或更多个高速缓存指定器(CaChe_ specifier)信号 44。图3用表格形式示出根据本发明一个实施例的高速缓存状态定义的列表。本发明 的替代实施例可以使用与在图3中示出的那些相比更少的、更多的、或不同的高速缓存状 态。图3示出具有四种状态的MESI (Modified Exclusive Shared and Invalid(变更、专 属、共享和无效))高速缓存协议,所述状态即无效状态(INV)、共享状态(S)、专属未变更状 态(EU)、和专属变更状态(EM)。其他实施例可以使用不同的高速缓存协议及其关联的高速 缓存状态定义。因此,本发明不以任何方式受限于在图3中示出的特定的状态。图4用状态图形式示出根据本发明一个实施例的高速缓存一致性状态图。在图4 中示出的状态图示出了实现图3的高速缓存状态的高速缓存可以如何在四种高速缓存状 态INV、S、EU和EM之间转换。新的状态转换已经被合并到用于MESI高速缓存一致性协 议的现有技术状态图中,以支持用于本发明一个实施例的新的监听事务类型(sh0W_line、 show_dw、show_target_line、show_target_dw)。注意,为了清楚的目的,与本发明无关的一 些现有技术总线事务已经被从图4省略(例如,影响整块高速缓存的总线命令,例如,清刷 (flush)整个高速缓存块的总线命令)。仍参考图4,注意,“显示线”(show_line命中)和“显示双字”(shoW_dW命中)总 线命令不导致高速缓存13改变状态。注意,类似地,“显示目标线”(Sh0W_target_line)和 “显示目标双字” (shoW_target_dW)总线命令不导致高速缓存13改变状态。这两个新的监 听事务类型或传递类型总线命令对以及为使用它们的支持逻辑和构架,允许图1的调试电 路系统14对在系统10中使用的高速缓存(如15、13、和23)有更多的可见性。提供“显示 线”和“显示双字”监听事务或总线命令,以允许调试电路系统14获得对变量的最新值的 访问(即使它们被高速缓存),或者允许调试电路系统14提取高速缓存内容。在一个实施 例中,这些监听事务在大多数方面可以表现得如现有的监听事务类型那样,由参与的总线 主控器(如11、12)执行监听查找,但是查找结果将可选地导致对任何命中请求监听响应 事务,而不是仅对变更的或脏的高速缓存线的命中。对于“sh0W_target_line”和“show_ target_dW”监听命令,特定的高速缓存目标被识别作为事务信息的一部分,并且对于这些 特定的命令类型,查找的结果将可选地导致监听响应事务发生,而不管命中还是未中。利用 这些监听命令类型允许目标的高速缓存的当前状态可见,而不导致数据、标记、或状态信息 的状态改变。响应于“显示线”、“显示双字”、“显示目标线”和“显示目标双字”总线事务的请 求部分,高速缓存控制电路系统54(参见图2)使高速缓存的双字或整行的内容被放置在 总线20上,由此可供调试电路系统14捕捉。该暴露发生而不管变量的备份存储(backing store)的存在(即,除了在高速缓存本身中之外,可以不存在与变量的地址相关联的物理 存储器)。通过向系统总线20暴露存储器中的变量的值,其可以被在调试电路系统14中的数据跟踪逻辑捕捉,并被经由端子25外发给用户。注意,指令对于数据高速缓存是非强制 的(unobtrusive),并且没有数据高速缓存状态改变发生而不管变量的状态(变更、专属、 共享、或无效)。在示出的实施例中,提供选项以使整个高速缓存线被放置在总线20上或者 将暴露限制于包含期望变量的数据总线宽度元素(如双字)。代替地,替代实施例可以使用 一个具有固定宽度或大小(如线)的监听事务类型,或可以使用一个其内具有用于在宽度 或大小的变量组(如线、双字、字等等)中进行选择的编码的总线命令。注意,在一个实施例中,提供允许存储器变量的值被提供到调试电路系统14(参 见图1)的监听事务类型。在一些实施例中,高速缓存控制电路系统54允许高速缓存线或 高速缓存线的一部分在其存在于高速缓存(13)中时在总线20上广播,而不管其是干净的 (即,未变更的)还是脏的(即,变更的)。在一个实施例中,在高速缓存控制电路系统54 (参 见图2)中提供高速缓存状态逻辑(参见图4),其不变更高速缓存状态(参见图3)或替代 (replace)高速缓存线以获得变量。另外,对于一些实施例,为了确保调试电路系统14的查 询最低限度地侵扰系统10的状态,提供高速缓存数据到调试电路系统14而不更新存储器 (如,18)。在一个实施例中,系统10添加附加的总线事务类型“显示”,其允许调试电路系统 14看见内部数据高速缓存状态(如,高速缓存13的内部数据高速缓存状态),其可以相对 于存储器(如18)进行变更。在一个实施例中,当“显示”被呈现作为监听读取猝发(burst) 事务时,执行正常的监听查找。如果事务地址在数据高速缓存(如,高速缓存13)中命中, 则执行监听回拷贝(copyback),而不管高速缓存线是变更的还是干净的状态。回拷贝被标 记为“显示线”写入,并且在一个实施例中是四个双字到总线的猝发。所有处理器(如11、 12)中的高速缓存线的状态保持不变。将高速缓存线提供到总线20允许调试电路系统14 看到该高速缓存线的内容,由此将这些值经由端子25向外传递到外部调试器(未示出)。 注意,在一个实施例中,在这些“显示”传递期间,如果可能的话,典型地应该阻断对存储器 (如,18)的更新,以允许系统10的状态在调试期间保持被最低限度地干扰。另外,在一些实施例中,支持“双字”监听总线命令。在被呈现作为监听单击 (single-beat)读取事务时,正常的监听查找也被执行。这些“双字”总线命令与“线”总线 命令类似地工作,除了仅通过被标记为“双字”的单击写入总线事务提供在命中的高速缓存 线中的数据的单个双字之外。“show_target_line” 和 “show_target_doubleword” 监听总线命令典型地仅针对 系统10中的单个主控器(如,处理器12),由此对于这些事务中的每一个将仅发生单个响 应。对于“show_line”和“show_doubleword”监听事务请求,这些命令被同时广播到多个 主控器(如,处理器11和12),但是仅单个主控器需要对于该数据作出响应以变为对调试 电路系统14可见。对于在专属状态中的高速缓存线,这些自然地发生。对于在多个高速缓 存中有效的共享高速缓存线,即使存在多个被高速缓存的副本,也仅需要单个“显示”总线 事务以提供数据的可见性。当多个总线主控器试图同时“显示”高速缓存线时,仅单个主控 器将赢得对总线20的仲裁,然后用被请求的信息响应。当仲裁获胜者在总线20上执行“显 示”响应时,可以切断(kill)或终止在任何其他总线主控器中的待定的(pending)响应,并 且该待定的响应的地址和执行的响应的地址匹配。参与的主控器将监控总线以确定另一高 速缓存是否已经提供了 “显示”信息,并且如果是的话,那么将终止其自身的对执行对于指
9示的数据的“显示”响应的请求。这些可以通过监控在总线20上的事务的地址和事务类型 信息并确定“显示”类型响应事务由另一主控器执行来完成。替代地,如果多个高速缓存对 “显示”命令作出响应,则可以将所有响应连同关于哪个高速缓存作出了响应的信息单独地 发送到外部调试器,允许外部调试器看见该线的所有副本。参考图4,在一个实施例中,转换50-53可以用于将信息从任何高速缓存(如,高速 缓存13)提供到调试电路系统14(参见图1)。现在参考图2、5和6,在一个实施例中,在总 线20 (参见图2)上的传递类型信号42用于指示何时在图5中列出的总线监听事务之一当 前正在发生在总线20上。参考图5和6,注意,每个监听总线事务包括请求部分60、响应部 分61、和数据部分62,全部都提供在总线20上。在请求部分60中,总线主控器(如,调试 电路系统14)发起到高速缓存(如,高速缓存13)的读取。在响应部分61中,高速缓存用 写入操作来响应。而在数据部分62中,在总线20上提供在与请求部分60中指定的地址或 高速缓存表项对应的高速缓存中存储的数据。现在将描述在图5中列出的总线监听事务的一个实施例。注意,替代实施例可以 具有在图5中未列出的其他附加的监听事务。现在将描述图5的“显示高速缓存线”和“显示双字”总线事务的一个实施例。对 于“显示高速缓存线”总线事务,总线主控器(如,调试电路系统14)通过总线20的信号 40 (参见图2)提供包括期望的地址的监听事务请求60,并且通过一个或更多个信号42提 供事务类型指示。为一致性的目的,该事务由在参与总线事务的正常监听的系统中的一个 或更多个高速缓存监控。响应于发生在与监听事务相关联的查找上的命中,系统中的选定 的高速缓存执行与请求事务的地址对应的高速缓存线数据信息的“显示回拷贝”(用于对 “显示高速缓存线”请求作出响应)或“显示双字”(用于对“显示双字”请求作出响应)(参 见图5)写入事务,而不管脏位D的状态,并且高速缓存保持在其当前状态,即不改变脏位。 另外,所有其他高速缓存保持在其各自的当前状态。在一个实施例中,即使在总线20上指 示了写入事务,也不利用响应上提供的数据更新存储器18。在一个实施例中,响应61包括 来自高速缓存的状态信息以及与请求60中的地址对应的高速缓存表项。如果存在高速缓 存命中,则在数据部分62期间经由数据导体41提供数据。如果存在高速缓存未中,则在数 据部分62期间不经由数据导体41提供数据。在替代实施例中,在响应期间可以不提供状 态信息,或者仅提供部分状态信息。在一个实施例中,如果在参与事务的所有高速缓存中所 请求的地址未中,则在该事务的数据部分62期间可以通过存储器18提供数据,而不是不提 供数据。在一个实施例中,如果多个高速缓存“命中”,则选择单个高速缓存来提供响应,并 且剩余的高速缓存取消任何待定的响应。现在将描述与在图6中示出的类型-1事务对应的、图5的“显示目标线”和“显示 目标双字”总线事务的一个实施例。对于这些“显示目标”总线事务,总线主控器(如,调试 电路系统14)通过总线20的信号43 (参见图2)提供包括目标指定器(specifier)的请求 60,通过信号44提供高速缓存指定器,通过信号40提供地址,并且通过一个或更多个信号 32提供宽度指示器DW(如,双字、线,等等)。目标指定器指定在系统10中的哪个电路系统 块或部分具有高速缓存并且是该总线事务的“目标”。高速缓存指定器指定对于该总线事务 在该“目标”之内的哪个高速缓存正在被访问。在响应(见图6中的列61)中,目标中的被 指定的高速缓存执行高速缓存线的“显示目标回拷贝”(参见图5)或所请求的双字的“显示目标双字”,而不管脏位D的状态,并且高速缓存保持在其当前状态。参考图6,在示出的 实施例中,响应61包括来自高速缓存的状态信息以及与请求60中的地址对应的高速缓存 表项。如果存在高速缓存命中,则在数据部分62期间经由数据导体41提供数据。如果存 在高速缓存未中,则在数据部分62期间不经由数据导体41提供数据。在一个实施例中,响 应可以仅包括状态信息,并且可以不提供高速缓存表项信息。在特定响应类型中,可以经由 总线20的一个或更多个信号32指示该状态信息是编码信号通知的,或者,可以用未编码的 格式直接提供该状态信息。现在将描述与图6中示出的类型_2事务对应的、图5的“显示目标线”和“显示目 标双字”总线事务的一个实施例。对于类型_2 “显示高速缓存线”总线事务,其与类型-1 不同之处在于代替在请求部分60中提供地址,总线主控器(如,调试电路系统14)提供高 速缓存表项指定器。该指定器用于指定在目标的高速缓存内的特定存储位置。来自高速缓 存的响应不同之处在于响应61不包括高速缓存表项信息,并且可以包括或可以不包括来 自高速缓存表项的标记地址段(如,图2中的52)的信息或内容。对于类型_2事务的一个 实施例,在数据部分62期间可以在总线20的数据导体41 (参见图2)上提供来自高速缓存 表项的标记地址字段(如,图2中的52)的信息或内容,如果在响应部分61期间未提供的 话。替代实施例可以使用一个或更多个类型-1事务,可以使用一个或更多个类型_2事务, 或者可以使用不同的事务。注意,除了宽度是双字而不是高速缓存线之外,用于请求60 (参 见图5)的“显示双字”总线事务可以用与用于请求60的“显示高速缓存线”总线事务同样 的方式工作。类似地,注意,除了宽度是双字而不是高速缓存线之外,用于响应61的“显示 双字”总线事务可以用与用于响应61的“显示回拷贝”总线事务同样的方式工作。可以类 似地区别“显示目标线”和“显示目标双字”的事务类型。注意,可以将系统10中的一个或更多个高速缓存设置为关联的或完全关联的。如 果高速缓存(如13)是完全关联的,则图6中的“高速缓存表项”可以用于在高速缓存中直 接指定期望的表项。然而,如果该高速缓存(如13)被设置为关联的,则对于一些实施例, “高速缓存表项”指定器可以用“高速缓存设置”和“高速缓存路线(cache way)”信息替代。注意,在本文中可互换地使用传递类型、事务类型、总线事务类型、监听事务、监听 事务类型、监听总线命令、以及总线命令。如可以从本发明的描述看出的,可以以有利的方式扩展高速缓存一致性协议以合 并调试可见性事务,允许改善高速缓存对调试器的可见性。因为实现本发明的装置大部分由本领域技术人员所知的电子组件和电路组成,因 而,为了便于对本发明的基础概念的理解和以及为了不使本发明的教导模糊或分散,将不 以超过如上所示被认为必需的程度解释电路细节。可以使用各种不同的信息处理系统实现上述实施例中的一些(如果适用的话)。 例如,尽管图1及其讨论描述了示范的信息处理体系架构,但是呈现该示范的体系架构仅 用于在讨论本发明的不同方面上提供有用的参考。当然,该体系架构的描述已经被简化以 便讨论,并且其仅仅是根据本发明可以使用的许多不同类型的适当体系架构之一。本领域 技术人员将认识到,在逻辑块之间的分界仅仅是说明性的,并且替代的实施例可以合并逻 辑块或电路元件,或者对各种逻辑块或电路元件施加功能性的替代分解。因此,应当理解,本文中描述的体系架构仅仅是示范性的,事实上,可以实施许多其它的实现了相同功能性的体系架构。简而言之,但仍有一定意义的,任何用于实现相同的 功能性的组件布置被有效地“关联”,从而实现期望的功能性。因此,本文中被组合以实现 特定的功能性的任何两个组件可以被看作彼此“相关联”,从而实现期望的功能性,而不管 体系架构或中间组件。同样地,这样关联的任何两个组件也可以被看作彼此“操作相连”或 “操作耦合”以实现期望的功能性。此外,例如,在一个实施例中,系统10的所示出的元件是位于单个集成电路上的 或在同样的装置内的电路系统。替代地,系统10可以包括任何数目的彼此互连的分开的集 成电路或分开的装置。例如,存储器18可以位于与主控器11和12相同的集成电路上或在 分开的集成电路上,或者位于与系统10的其他元件离散地分开的另一外围设备或从属设 备内。调试电路系统14和I/O电路系统16也可以位于分开的集成电路或装置上。还例 如,系统10或其部分可以是物理电路的或者可转变为物理电路的逻辑表示的软体或编码 表示。如此,系统10可以体现为任何适当类型的硬件描述语言。此外,本领域技术人员将认识到在上述操作的功能性之间的分界仅仅是说明性 的。多个操作的功能性可以被合并到单个操作中,和/或单个操作的功能性可以被分配到 若干另外的操作中。此外,替代实施例可以包括特定操作的多个实例,并且在不同的其它实 施例中可以改变操作的次序。尽管在本文中参考具体实施例描述了本发明,但是可以作出多种修改和改变而不 偏离由下面的权利要求所阐明的本发明的范围。因此,说明书和图将被认为是说明性的而 不是限制的意义,并且意图将所有这些修改包括在本发明的范围之内。本文中就具体实施 例描述的任何益处、优点或对问题的解决方案意图不应解释为是任何或所有的权利要求的 关键的、必要的或必需的特征或要素。如本文中所使用的,术语“耦合”意图并不局限于直接耦合或机械耦合。此外,如本文中所使用的,术语“一”定义为一个或多于一个。此外,在权利要求中 诸如“至少一个”和“一个或更多个”的引语的使用不应该被解释为暗示由不定冠词“一”所 引入的另一权利要求要素将包含所引入的权利要求要素的特定的权利要求限制到包含仅 一个这样的要素的发明,即使当相同的权利要求包括引语“一个或更多个”或“至少一个”以 及诸如“一”这样的不定冠词时也是如此。这也适用于定冠词的使用。除非另有说明,诸如“第一”和“第二”的术语用于任意地区分这样的术语所描述 的要素。因此,这些术语并不必然意图指示这些要素的时间上的或其它的优先化。附加的 文本1. 一种用于高速缓存的方法,该方法包括响应于接收对提供高速缓存的高速缓存表 项的至少一部分的请求,提供该高速缓存表项的所述至少一部分,而不管该高速缓存表项 是否是脏的,也不变更该高速缓存表项的状态。2.根据声明1的方法,其中所述高速缓存表 项的至少一部分包括字节、字或双字。3.根据声明1的方法,其中所述高速缓存表项的状态 包括无效状态、共享状态、专属未变更状态、和专属变更状态中的至少一种。4.根据声明1 的方法,其中对提供所述至少一部分的请求具有对应的地址。5.根据声明1的方法,其中对 提供所述至少一部分的请求具有对应的目标指定器和对应的高速缓存指定器。6.根据声明 5的方法,其中所述目标指定器用于从耦合到发出请求的装置的多个目标装置中选择目标 装置,并且其中所述高速缓存指定器用于从所选定的目标装置中选择高速缓存。7.根据声 明1的方法,还包括从调试电路系统接收所述对提供高速缓存表项的至少一部分的请求。8.根据声明1的方法,还包括从总线桥、直接存储器存取控制器、和处理器中的至少一个接 收所述对提供高速缓存表项的至少一部分的请求。9.根据声明1的方法,还包括提供所述 高速缓存表项的所述至少一部分,而不变更与该高速缓存相关联的存储器。10.根据声明 1的方法,其中所述对提供高速缓存表项的至少一部分的请求由多个高速缓存接收,并且其 中提供高速缓存表项的至少一部分的步骤仅由所述多个高速缓存中的一个执行。11.根据 声明1的方法,其中所述对提供高速缓存表项的至少一部分的请求由多个高速缓存接收, 其中所述高速缓存表项的状态是共享的,并且其中提供至少一个高速缓存表项的步骤仅由 所述多个高速缓存中的一个执行。12. —种用于高速缓存的方法,该方法包括响应于接收 对提供该高速缓存的高速缓存表项的至少一部分的请求,提供所述高速缓存表项的至少一 部分,而不管该高速缓存表项的状态,也不变更该高速缓存表项的状态。13.根据声明12的 方法,其中所述高速缓存表项的所述至少一部分包括字节、字或双字。14.根据声明12的方 法,其中所述高速缓存表项的状态包括无效状态、共享状态、专属未变更状态、和专属变更 状态中的至少一种。15.根据声明12的方法,其中所述对提供至少一部分的请求具有对应 的地址。16.根据声明12的方法,其中所述对提供至少一部分的请求具有对应的目标指定 器和对应的高速缓存指定器。17.根据声明16的方法,其中所述目标指定器用于从耦合到 发出该请求的装置的多个目标装置中选择目标装置,并且其中所述高速缓存指定器用于从 选定的目标装置中选择高速缓存。18.根据声明12的方法,还包括从调试电路系统接收所 述对提供高速缓存表项的至少一部分的请求。19.根据声明12的方法,还包括从总线桥、直 接存储器存取控制器、和处理器中的至少一个接收所述对提供高速缓存表项的至少一部分 的请求。20.根据声明12的方法,还包括提供所述高速缓存表项的所述至少一部分,而不变 更与该高速缓存相关联的存储器。21.根据声明12的方法,其中所述对提供高速缓存表项 的至少一部分的请求由多个高速缓存接收,并且其中提供所述高速缓存表项的所述至少一 部分的步骤仅由所述多个高速缓存中的一个执行。22.根据声明12的方法,其中所述对提 供高速缓存表项的至少一部分的请求由多个高速缓存接收,其中所述高速缓存表项的状态 是共享的,并且其中提供至少一个高速缓存表项的步骤仅由所述多个高速缓存中的一个执 行。
1权利要求
一种用于高速缓存的方法,该方法包括响应于接收对提供高速缓存的高速缓存表项的至少一部分的请求,提供该高速缓存表项的所述至少一部分,而不管该高速缓存表项是否是脏的,也不变更该高速缓存表项的状态。
2.根据权利要求1的方法,其中所述高速缓存表项的至少一部分包括字节、字或双字。
3.根据权利要求1的方法,其中所述高速缓存表项的状态包括无效状态、共享状态、专 属未变更状态、和专属变更状态中的至少一种。
4.根据权利要求1的方法,其中对提供所述至少一部分的请求具有对应的地址。
5.根据权利要求1的方法,其中对提供所述至少一部分的请求具有对应的目标指定器 和对应的高速缓存指定器。
6.根据权利要求5的方法,其中所述目标指定器用于从耦合到发出请求的装置的多个 目标装置中选择目标装置,并且其中所述高速缓存指定器用于从所选定的目标装置中选择 高速缓存。
7.根据权利要求1的方法,还包括从调试电路系统接收所述对提供高速缓存表项的至 少一部分的请求。
8.根据权利要求1的方法,还包括从总线桥、直接存储器存取控制器、和处理器中的至 少一个接收所述对提供高速缓存表项的至少一部分的请求。
9.根据权利要求1的方法,还包括提供所述高速缓存表项的所述至少一部分,而不变 更与该高速缓存相关联的存储器。
10.根据权利要求1的方法,其中所述对提供高速缓存表项的至少一部分的请求由多 个高速缓存接收,并且其中提供高速缓存表项的至少一部分的步骤仅由所述多个高速缓存 中的一个执行。
11.根据权利要求1的方法,其中所述对提供高速缓存表项的至少一部分的请求由多 个高速缓存接收,其中所述高速缓存表项的状态是共享的,并且其中提供至少一个高速缓 存表项的步骤仅由所述多个高速缓存中的一个执行。
12.一种用于高速缓存的方法,该方法包括响应于接收对提供该高速缓存的高速缓存表项的至少一部分的请求,提供所述高速缓 存表项的至少一部分,而不管该高速缓存表项的状态,也不变更该高速缓存表项的状态。
13.根据权利要求12的方法,其中所述高速缓存表项的所述至少一部分包括字节、字 或双字。
14.根据权利要求12的方法,其中所述高速缓存表项的状态包括无效状态、共享状态、 专属未变更状态、和专属变更状态中的至少一种。
15.根据权利要求12的方法,其中所述对提供至少一部分的请求具有对应的地址。
16.根据权利要求12的方法,其中所述对提供至少一部分的请求具有对应的目标指定 器和对应的高速缓存指定器。
17.根据权利要求16的方法,其中所述目标指定器用于从耦合到发出该请求的装置的 多个目标装置中选择目标装置,并且其中所述高速缓存指定器用于从选定的目标装置中选 择高速缓存。
18.根据权利要求12的方法,还包括从调试电路系统接收所述对提供高速缓存表项的至少一部分的请求。
19.根据权利要求12的方法,还包括从总线桥、直接存储器存取控制器、和处理器中的 至少一个接收所述对提供高速缓存表项的至少一部分的请求。
20.根据权利要求12的方法,还包括提供所述高速缓存表项的所述至少一部分,而不 变更与该高速缓存相关联的存储器。
21.根据权利要求12的方法,其中所述对提供高速缓存表项的至少一部分的请求由多 个高速缓存接收,并且其中提供所述高速缓存表项的所述至少一部分的步骤仅由所述多个 高速缓存中的一个执行。
22.根据权利要求12的方法,其中所述对提供高速缓存表项的至少一部分的请求由多 个高速缓存接收,其中所述高速缓存表项的状态是共享的,并且其中提供至少一个高速缓 存表项的步骤仅由所述多个高速缓存中的一个执行。
全文摘要
本发明描述了多个新的监听事务类型(60)。其中的一些包括请求中的地址信息,而其它的包括请求中的高速缓存表项信息。一些响应(61)包括标记地址信息,而一些不包括。一些在事务的数据部分期间在数据总线线(41)上提供标记地址内容。这些新的监听事务类型在数据处理系统的调试期间是非常有用的。
文档编号G06F12/00GK101918923SQ200880015903
公开日2010年12月15日 申请日期2008年4月29日 优先权日2007年5月14日
发明者M·D·斯尼德尔, 威廉姆·C.·莫耶 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1