CN100392623C - 用于从地址高速缓存去除条目的方法和设备 - Google Patents

用于从地址高速缓存去除条目的方法和设备 Download PDF

Info

Publication number
CN100392623C
CN100392623C CNB2006101091323A CN200610109132A CN100392623C CN 100392623 C CN100392623 C CN 100392623C CN B2006101091323 A CNB2006101091323 A CN B2006101091323A CN 200610109132 A CN200610109132 A CN 200610109132A CN 100392623 C CN100392623 C CN 100392623C
Authority
CN
China
Prior art keywords
subclauses
clauses
address
data
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006101091323A
Other languages
English (en)
Other versions
CN1912854A (zh
Inventor
安德鲁·H.·沃特雷恩
查德·B.·麦克布里德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1912854A publication Critical patent/CN1912854A/zh
Application granted granted Critical
Publication of CN100392623C publication Critical patent/CN100392623C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在第一方面中,提供了第一方法,用于从地址高速缓存去除条目。该第一方法包括步骤:(1)将数据写到寄存器;以及(2)基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目。提供了许多其它方面。

Description

用于从地址高速缓存去除条目的方法和设备
技术领域
本发明一般涉及计算机系统,尤其涉及用于使多个地址高速缓存条目无效的方法和设备。
背景技术
计算机系统的存储器可以包括表,该表包括输入/输出(I/O)地址与真实地址之间的映射,以允许输入/输出与真实地址之间的转换。计算机系统可以包括用于本地存储向该转换表频繁访问的条目的地址高速缓存(例如转换支援缓冲器(TLB))。
当I/O操作完成时,转换表和TLB中的一个或更多条目可能需要被无效。用于使TLB条目无效的常规方法和设备成本不菲,因为它们由于要求对每个地址高速缓存条目进行无效操作而不利地影响系统性能。此外,探视所有存储器的另一方法对转换表进行写入,于是使对应的地址高速缓存条目无效则要求大量的芯片空间。因此,期望提供一种用于使地址高速缓存条目无效的改进方法和设备。
发明内容
在第一方面中,提供了第一方法,用于从地址高速缓存去除条目。该第一方法包括步骤:(1)将数据写到寄存器,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位;以及(2)基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。
在第二方面中,提供了第二方法,用于从数据高速缓存去除条目。该第一方法包括步骤:(1)将数据写到寄存器,所述数据包括指示要从数据高速缓存去除的第一数据高速缓存条目的地址、要从数据高速缓存去除的条目的数目N和用以指示数据高速缓存条目去除正在进行中的数据高速缓存条目去除状态位;以及(2)基于写到寄存器的数据从数据高速缓存去除多个数据高速缓存条目,其中,从要去除的第一数据高速缓存条目开始从数据高速缓存去除对应于连续地址的N个条目。
在本发明的第三方面中,提供了第一设备,用于从地址高速缓存去除条目。该第一设备包括:包括寄存器的逻辑装置,适于连接到地址高速缓存,而且还适于(1)存储写到寄存器的数据,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位和(2)基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。
在本发明的第四方面中,提供了第一系统,用于从地址高速缓存去除条目。该第一系统包括:(1)适于执行软件的处理器;(2)地址高速缓存;以及(3)用于从地址高速缓存去除条目的设备,具有包括寄存器的逻辑装置,连接到处理器和地址高速缓存。该系统适于:(a)将数据写到寄存器,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位;以及(b)基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。根据本发明的这些和其它方面提供了许多其它方面。
根据如下的具体描述、所附权利要求书和附图,将能够完全明白本发明的其它特征和方面。
附图说明
图1是根据本发明实施例用于去除地址高速缓存条目的系统的框图。
图2是在根据本发明实施例用于去除地址高速缓存条目的系统中包括的地址高速缓存条目去除逻辑的框图。
图3图示了根据本发明实施例的去除地址高速缓存条目的方法。
具体实施方式
本发明提供了避免与常规系统相关联的成本、用于去除(例如通过使之无效)地址高速缓存条目的方法和设备。具体来说,本发明提供了用于去除多个(例如连续)地址高速缓存条目的方法和设备。寄存器可以用来存储这样的地址、计数和无效状态位,该地址指示要去除的第一地址高速缓存条目,该计数指示要去除的地址高速缓存条目(例如包括第一地址高速缓存条目)的数目,该无效状态位防止软件(例如计算机系统的操作系统(OS))使用正在去除的地址高速缓存条目。连接到该寄存器的逻辑可以用来随需去除包括第一地址高速缓存条目、对应于连续地址的若干地址高速缓存条目。一旦完成,该逻辑可以更新无效状态位以向系统(例如向OS)指示地址高速缓存中条目的去除已完成。因此,后续执行的I/O操作将不访问包括不准确数据的地址高速缓存条目。以此方式,本发明可以减少为去除地址高速缓存条目而需要的逻辑的数量,而且减少为去除地址高速缓存条目而必需的软件命令的数量。因此,本发明提供了用于去除地址高速缓存条目但没有与常规系统相关联的成本的方法和设备。
图1是根据本发明实施例、用于去除地址高速缓存条目的系统100的框图。例如,系统100可以形成计算机或类似设备的一部分。参照图1,系统100可以包括适于经由I/O总线106连接到I/O转换逻辑104而且与该逻辑通信的一个或多个I/O设备102(仅示出一个)。I/O转换逻辑104可以存储和/或取回用来将I/O地址转换成真实地址的数据。I/O转换逻辑104可以经由系统总线110连接到存储器108(例如DRAM或另一适当的存储器)而且与该存储器通信。存储器108可以包括适于存储I/O地址和与之相关联的相应真实地址的转换表112。以此方式,转换表112可以例如通过I/O设备102在存储器访问期间将I/O地址转换成真实地址,反之亦然。因为转换表112可能很大(例如8MB)而且一个或多个I/O设备102可能经由I/O转换逻辑104频繁地访问转换表112中的信息,所以I/O转换逻辑104可包括适于本地存储频繁地访问的转换表条目的地址高速缓存114。因此,在执行I/O操作时,系统100可以从地址高速缓存114取回地址转换数据,而不是(例如经由系统总线110)从转换表112取回这样的数据。地址高速缓存114可以包括目录数组116和数据数组118。目录数组116可以包括条目,这些条目存储与数据数组118中的对应地址高速缓存数据条目相关联的地址高速缓存目录信息。在一些实施例中,地址高速缓存114可以是转换支援缓冲器(TLB)或另一适当的存储区。在一个实施例中,地址高速缓存114可以包括六十四个条目(尽管可以使用更大或更小数目的条目)。
一旦I/O操作(例如I/O设备102进行的存储器访问)得到执行,可以从转换表112和/或地址高速缓存114去除数据转换条目。因此,系统100可以包括连接到I/O转换逻辑104和/或包括于I/O转换逻辑104中的地址高速缓存条目去除逻辑(下文称为“ACER”)120。具体来说,ACER 120可以连接到地址高速缓存114的目录数组116。ACER120可以适于基于例如通过软件(比如系统OS)写到ACER 120的数据从地址高速缓存114去除一个或多个条目。例如,基于写到ACER120的数据,ACER 120可以去除对应于连续地址的多个地址高速缓存条目。具体来说,ACER 120可以设置与地址高速缓存相关联的位(例如有效位),使得该位指示了地址高速缓存条目无效。以此方式,系统100(例如由其执行的软件)可以从多个地址高速缓存114去除多个条目,但不使整个地址高速缓存114无效。此外,系统100可以利用单个指令(例如通过将数据写到ACER 120)从地址高速缓存114去除多个条目,而不是利用多个指令分别来去除多个地址高速缓存条目。以此方式,ACER 120可以高效地去除地址高速缓存条目。下面参照图2描述ACER 120的细节。
图2是在根据本发明实施例、用于去除地址高速缓存条目的系统中包括的地址高速缓存条目去除逻辑的框图。参照图2,如前所述,ACER 120可以连接到地址高速缓存114的目录数组116。ACER 120可以包括适于存储数据的地址高速缓存条目无效寄存器(下文称为“无效寄存器”)200。例如,无效寄存器200可以存储第一数据202,该第一数据指示要从地址高速缓存114去除的第一地址高速缓存条目的地址。该地址的第一部分可以用来为地址高速缓存114建立索引,而且由此访问地址高速缓存条目,而该地址的第二部分可以用来确定所访问的地址高速缓存条目是否匹配于第一数据202的第二部分所标识的条目。无效寄存器200可以存储第二数据204,该第二数据指示要从地址高速缓存去除的条目的数目。此外,无效寄存器200可以存储第三数据206,该第三数据指示地址高速缓存条目去除的状态。以此方式,第三数据206可以用作为无效状态位。
无效状态寄存器200可以连接到第一多路复用器208,使得第一数据202的第一部分(例如地址)可以经由第一输入210通过第一多路复用器208来输入。第一多路复用器208的输出212可以连接到第二寄存器214,该第二寄存器适于存储从第一多路复用器208输出的数据(例如地址)。以此方式,第二寄存器214可以存储要从地址高速缓存114去除的地址。第二寄存器214的输出216可以经由输入220连接到递增逻辑218。递增逻辑218可以适于将输入地址递增到下一有效地址而且经由输出222输出经递增的地址。
递增逻辑218的输出222可以连接到第一多路复用器208的第二输入224,使得经递增的地址可以通过第一多路复用器208来输入。第一多路复用器208可以适于有选择地输出通过第一多路复用器208的第一或第二输入210、224输入的数据。例如,在第一时间段(例如一个或多个时钟周期)期间,第一多路复用器208可以初始地输出第一数据202的第一部分。在后续时间段期间,第一多路复用器208可以输出如下数据以形成第二地址高速缓存条目地址(例如经递增的地址),该数据代表通过递增逻辑218递增的第一地址高速缓存条目地址的第一部分。类似地,在后续时间段期间,第一多路复用器208可以输出如下数据以形成第三地址高速缓存条目地址,该数据代表通过递增逻辑218递增的第二地址高速缓存条目地址的第一部分。
第二寄存器214的输出216可以用作为对于地址高速缓存起114的目录数组116的索引。例如,第二寄存器214的输出216可以连接到目录数组116的第一输入226,而且用以基于这样的输入从目录数组116输出信息。可选地,第二寄存器214的输出216可以经由其输入230连接到散列逻辑228。散列逻辑228的输出232可以连接到目录数组116的第一输入226。散列逻辑228可以适于将通过散列逻辑228输入的数据转换为可以用来访问目录数组116的值(例如索引),而且经由输出232输出这样的值。为了将通过散列逻辑228输入的数据转换成索引,散列逻辑228可以执行逻辑异或(XOR)运算或另一适当的逻辑运算。
ACER 120可以包括连接到无效寄存器200和地址高速缓存114的比较逻辑234。具体来说,比较逻辑234的第一输入236可以连接到无效寄存器200,使得第一地址的第二部分可以通过比较逻辑234来输入。此外,比较逻辑234的附加输入(例如第二和第三输入238、240)可以连接到地址高速缓存114的对应输出242-244。比较逻辑234可以包括连接到地址高速缓存114(例如地址高速缓存114的目录数组116)的对应输入(例如第二和第三输入250、252)的一个或多个输出(例如第一和第二输出246、248)。比较逻辑234可以适于将经由第一输入236输入的第一地址的第二部分与经由第二和第三输入238、240输入的相应数据(例如地址数据)做比较。如果对应于地址高速缓存条目的经由第二或第三输入238、240输入的数据匹配于通过第一输入236输入的数据,则比较逻辑234可以经由对应于匹配条目的输出246、248将数据输出到地址高速缓存114。这样的数据可以用作为针对匹配条目的有效位的值,使得该有效位指示匹配地址高速缓存条目无效。以此方式,可以去除地址高速缓存条目。
ACER 120可以适于在从地址高速缓存114读取数据、将从地址高速缓存114输出的数据与第一数据202的第一部分做比较和/或将数据写到地址高速缓存114时递增通过第二寄存器214输出的数据(尽管ACER 120可以更早或更迟地递增通过第二寄存器214输出的数据)。
此外,无效寄存器200可以连接到第二多路复用器254,使得第二数据204可以经由第一输入256通过第二多路复用器254来输入。第二多路复用器254的输出258可以连接到第三寄存器260,该第三寄存器适于存储从第二多路复用器254输出的数据(例如指示要从地址高速缓存114去除的条目的数目的值)。第三寄存器260的输出262可以经由其输入266连接到递减逻辑264。递减逻辑264可以适于递减(例如减一)输入值(例如指示要从地址高速缓存114去除的条目的数目的值),而且经由输出268输出经递减的值。ACER 120可以适于在递增通过第二寄存器214输出的数据时递减从第三寄存器260输出的数据(虽然ACER 120可以更早或更迟地递减从第三寄存器输出的数据)。
递减逻辑264的输出268可以连接到第二多路复用器254的第二输入270,使得递减的值可以通过第二多路复用器254来输入。第二多路复用器254可以适于有选择地输出通过第二多路复用器254的第一或第二输入256或257输入的数据。例如,在第一时间段(例如一个或多个时钟周期)期间,第二多路复用器254可以初始地输出第二数据204。在后续时间段(例如第二时间段)期间,第二多路复用器254可以输出代表经减一的第二数据的数据。类似地,在后续时间段(例如第三时间段)期间,第二多路复用器254可以输出代表经减二的第二数据的数据,依此类推。
第三寄存器260可以连接到无效状态位设置逻辑272。具体来说,第三寄存器260的输出262可以连接到无效状态位设置逻辑272的输入274。无效状态位设置逻辑272可以检测输出262何时具有零值。无效状态位设置逻辑272的输出276可以连接到无效寄存器200,使得通过无效状态位设置逻辑272输出的数据(例如零值)可以更新第三数据206,以指示一个或多个地址高速缓存条目的去除已完成。
现在参照图1-2并且参照图3来描述用于去除地址高速缓存条目的系统的操作,图3图示了根据本发明实施例去除地址高速缓存条目的方法。参照图3,方法300在步骤302开始。在步骤304中,数据可以写到寄存器。例如,系统100(例如由其执行的软件104)可以将数据写到ACER 120的无效寄存器200。具体来说,软件104可以将第一数据202写到无效寄存器200,该第一数据指示要从地址高速缓存114去除的第一条目的地址。此外,系统100(例如由其执行的软件104)可以将第二数据204写到无效寄存器200,该第二数据指示要从地址高速缓存114去除的条目的数目N。此外,系统100(例如由其执行的软件104)可以将第三数据206写到无效寄存器200,该第三数据指示地址高速缓冲器条目去除的状态而且由此用作为无效状态位。尽管上面描述第一至第三数据202-206,但是更大或更小数量的和/或不同的数据可以写到无效寄存器200。所有三种数据202-206可以作为一个操作来同时写入(虽然数据202-206也可以在不同时间写入)。
例如,在执行I/O操作之后,系统100可能需要从转换表112和/或地址高速缓存114去除(例如通过使之无效)一个或多个条目。因此,在第一时间段(例如一个或多个时钟周期)期间,系统100可以将第一至第三数据202-206写到无效寄存器200。第三数据206可以(例如向软件104)指示一个或多个地址高速缓存条目的去除有待完成。
在步骤306中,多个地址高速缓存条目可以基于写到寄存器的数据从地址高速缓存加以去除。写到无效寄存器200的数据可以启动硬件序列以去除(例如通过无效)地址高速缓存条目。具体来说,基于写到无效寄存器200的第一至第三数据202-206,ACER 120可以从地址高速缓存114去除一个或多个条目(例如通过使这样的条目无效)。例如,写到无效寄存器200的第一至第三数据202-206可以指示两个条目(例如对应于连续地址)要从在地址000A处的条目开始从地址高速缓存去除,而且可以指示一个或多个地址高速缓存条目的去除有待完成。因此,在第二时间段期间,ACER 120可以将第一数据202的第一部分(例如要从地址高速缓存114去除的第一条目的地址)从无效寄存器200输出到第一多路复用器208。第一数据202的第一部分可以从第一多路复用器208输出到第二寄存器214而且存储于其中。
在第三时间段期间,第一数据202的第一部分可以用来访问地址高速缓存114中的一个或多个条目。例如,第一数据202的第一部分可以从第二寄存器214输出而且通过散列逻辑228来输入。基于第一数据202的第一部分,散列逻辑228可以创建和输出数据(例如索引)到地址高速缓存114,该数据可以用来访问地址高速缓存114(例如其目录数组116)。基于这样的数据,地址高速缓存114可以输出对应于一个或多个地址高速缓存114条目的数据。例如,如果地址高速缓存是2路组关联高速缓存,则对应于两个条目的数据可以从地址高速缓存114输出。类似地,如果地址高速缓存114是4路组关联高速缓存,则对应于四个条目的数据可以从地址高速缓存114输出。对应于条目的数据可以包括指示与该条目相关联的地址的数据(例如标记)和指示所访问的条目是否有效的数据(例如有效位)。然而,对应于条目的数据可以包括更大或更小数量的和/或不同的数据。例如,在一些实施例中,对应于条目的数据可以包括指示所访问的条目是否为“最近最少使用”(LRU)条目之一的数据(例如LRU位)。
与从地址高速缓存114输出的条目对应的数据可以通过比较逻辑234来输入。此外,第一数据202的第二部分(例如第一地址)可以从无效寄存器200输出而且通过比较逻辑234来输入。比较逻辑234可以访问在与从地址高速缓存114输出的条目对应的数据中包括的有效位。如果该有效位指示对应于该条目的数据而且该条目因此有效,则比较逻辑234可以将指示与这样的条目相关联的地址的数据(例如标记)与第一数据202的第二部分做比较。如果数据匹配,则比较逻辑234可以更新(例如写)这样的地址高速缓存条目的有效位以指示该条目无效。以此方式,该条目可以从地址高速缓存114去除。可选地,如果数据不匹配,则比较逻辑234不更新这样的地址高速缓存条目的有效位。
此外,在第三时间段期间,递增逻辑218可以对从第二寄存器214输出、代表地址的一部分的数据202进行更新,以形成代表下一地址(例如000B)的一部分的新数据。在第三时间段或后续时间段(例如第四时间段)期间,新数据可以通过第一多路复用器208来输入和从该第一多路复用器输出,以及通过第二寄存器214来输入和从该第二寄存器输出。在后续时间段期间,通过与前面描述的使用第一数据202的第一部分相类似的方式,新数据可以用来访问而且可能去除(例如通过使之无效)地址高速缓存114的一个或多个条目。
此外,在第三时间段期间,为对从地址高速缓存114去除的条目的数目进行计数,无效寄存器200可以将代表要从高速缓存114去除的条目的数目的第二数据204输出到第二多路复用器254,而且第二多路复用器254可以将第二数据204输出到递减逻辑(虽然这样的数据可以更早或更迟地从第二多路复用器254和/或第三寄存器260输出)。此外,第二数据204可以从第三寄存器260输出到无效状态位设置逻辑272,无效状态位设置逻辑272可以据此更新用于指示地址高速缓存条目去除的状态的第三数据206。具体来说,如果从第三寄存器260输出的数据指示要从地址高速缓存114去除零条目,则无效状态位设置逻辑272可以更新第三数据206以指示地址高速缓存条目去除已完成。
在第三时段期间(例如在第一数据202的第一部分(例如地址)用来从地址高速缓存114的对应条目读数据和/或将数据写到地址高速缓存114的对应条目时),递减逻辑264可以将代表要从地址高速缓存114去除的条目的数目的第三数据206进行减一,以形成要从地址高速缓存114去除的条目的新数目。在第三时间段或后续时间段(例如第四时间段)期间,要从地址高速缓存114去除的条目的新数目可以通过第二多路复用器254来输入和从该第二多路复用器输出,以及通过第三寄存器260来输入和从该第三寄存器输出到递减逻辑和无效状态位设置逻辑272。在后续时间段期间(例如在新数据可以用来访问和可能去除地址高速缓存114的一个或多个条目时的时间段),递减逻辑264可以如上所述把要从高速缓存114去除的条目的新数目减一。
上述过程可以重复,直至无效状态位设置逻辑272接收的要从地址高速缓存114去除的条目的新数目是预定数目(例如零)为止。一旦无效状态位设置逻辑272接收的要从地址高速缓存114去除的条目的新数目是该预定数目(例如零),无效状态位设置逻辑272可以更新第三数据206以指示地址高速缓存条目去除已完成。因此,系统100(例如由其执行的软件104)可以访问第三数据206(例如通过轮询无效寄存器200)而且确定地址高速缓存条目去除已完成。
随后,执行步骤308。在步骤308中,方法200结束。通过使用本方法和设备,多个条目(例如对应于连续地址)可以从地址高速缓存114去除。系统100可以响应于单个指令从地址高速缓存114去除多个条目。例如,系统100(例如由其执行的软件104)可以通过将第一至第三数据202-206写到无效寄存器200来导致多个条目从地址高速缓存114去除。以此方式,本发明可以高效地从地址高速缓存114去除条目。具体来说,本发明的方法和设备可以比常规系统使用较少的指令来从地址高速缓存114去除多个条目。以此方式,本发明可以最小化为去除多个地址高速缓存条目而需要的指令的数目。此外,本方法和设备可以比常规系统利用较少的逻辑而且因此需要较少的芯片空间。因此,本发明可以优化多个条目从地址高速缓存114的去除。
一旦一个或多个条目从地址高速缓存114去除,系统100可以执行一个或多个I/O操作。在I/O操作期间,系统100可以访问地址高速缓存114的一个或多个条目以执行I/O地址转换。因为系统100可以不访问地址高速缓存114直至多个条目从中去除为止,所以要求I/O地址转换的I/O访问将不访问包括不准确(例如旧的)数据的地址高速缓存条目。
前面的描述仅揭示本发明的示例性实施例。落入本发明范围之内的对上面揭示的设备和方法的改型对于本领域普通技术人员将是明显的。例如,在一些实施例中,无效寄存器200可以是存储器映射(mmio)寄存器。从mmio寄存器的读和对mmio寄存器的写可能对系统操作引起显著延迟。因为本发明可以减少系统100(例如由其执行的软件104)可能对无效寄存器200进行写入以去除多个地址高速缓存条目的次数,所以本发明可以减少和/或消除这样的延迟。因此,本发明可以对执行大量I/O操作而且因此频繁地添加条目和/或从地址高速缓存114去除条目的系统提供性能好处。
I/O地址转换表112可以是单级表或多级表。例如,I/O地址转换表112可以是包括I/O段表和I/O页表的多级表。在一些实施例(比如参照图1-3上面描述的实施例)中,可以假设逐页(例如4KB的数据块)进行转换,而且对应于页编号的I/O地址的一部分可以标识要去除(例如通过无效)的地址高速缓存条目。
在一些实施例中,当软件104在第三数据206指示地址高速缓存去除正在进行中时试图从无效寄存器200读数据时,ACER 120可以不输出数据到软件104。在支持异步分立事务的系统中,当软件104读无效寄存器200时,ACER 120可以不返回数据,直至地址高速缓存条目去除已完成。以此方式,本发明可以减少系统总线110上读操作的数目。
此外,尽管参照地址高速缓存在上面描述本发明方法和设备,但是本发明方法和设备可以用于其它类型的高速缓存,比如数据高速缓存(例如用来使多个数据高速缓存条目无效)。因此,本发明可有助于更新其中以显式指令(例如协处理器的软件管理的高速缓存一致性)来完成数据高速缓存无效的系统。此外,在一些实施例中,地址高速缓存条目可以对应于多个页之一,其中每页可以是多个尺寸之一。以此方式,用于高速缓存无效的本发明方法和设备能够用于多个页尺寸。例如,I/O地址转换表112可以是包括I/O段表和I/O页表的多级表。每个I/O段表条目可以指定I/O段中页的尺寸,而I/O页表条目可以无论页尺寸是多少均包含相同数目的字节。因此,I/O页表中的连续条目可以代表连续页。因此,用于使连续地址无效的本发明方法和设备无论页尺寸是多少均可正确工作。
因此,尽管结合其示例性实施例揭示本发明,但是应当理解其它实施例可以落入如所附权利要求限定的本发明的精神和范围之内。

Claims (22)

1.一种从地址高速缓存去除条目的方法,包括:
将数据写到寄存器,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位;以及
基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。
2.根据权利要求1的方法,其中:
将数据写到寄存器包括利用软件将数据写到寄存器;以及
从地址高速缓存去除多个地址高速缓存条目包括利用硬件从地址高速缓存去除多个地址高速缓存条目。
3.根据权利要求1的方法,还包括写入地址高速缓存条目去除状态位,以指示地址高速缓存条目去除已完成。
4.根据权利要求3的方法,还包括:
读取地址高速缓存条目去除状态位以确定地址高速缓存条目去除已完成;以及
访问地址高速缓存条目以执行输入/输出I/O地址转换。
5.根据权利要求1的方法,其中基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目包括基于写到寄存器的数据从地址高速缓存去除对应于连续地址的多个地址高速缓存条目。
6.根据权利要求1的方法,还包括在基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目之后,访问地址高速缓存条目以执行输入/输出I/O地址转换。
7.根据权利要求1的方法,其中地址高速缓存条目对应于多个页之一,其中一个页可以是多个尺寸之一。
8.一种用于从地址高速缓存去除条目的设备,包括:
包括寄存器的逻辑装置,适于连接到地址高速缓存,而且还适于:
存储写到寄存器的数据,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位;以及
基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。
9.根据权利要求8的设备,其中该逻辑装置还适于:
存储通过软件写到寄存器的数据;以及
基于通过软件写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目。
10.根据权利要求8的设备,其中该逻辑装置还适于存储写到寄存器、用以指示地址高速缓存条目去除已完成的地址高速缓存条目去除状态位。
11.根据权利要求8的设备,其中该逻辑装置还适于基于写到寄存器的数据从地址高速缓存去除对应于连续地址的多个地址高速缓存条目。
12.根据权利要求8的设备,其中该逻辑装置还适于在基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目之后,使能对地址高速缓存条目的访问,使得输入/输出I/O地址转换得以执行。
13.一种用于从地址高速缓存去除条目的系统,包括:
适于执行软件的处理器;
地址高速缓存;以及
用于从地址高速缓存去除条目的设备,具有包括寄存器的逻辑装置,连接到处理器和地址高速缓存;
其中该系统适于:
将数据写到寄存器,所述数据包括指示要从地址高速缓存去除的第一地址高速缓存条目的地址、要从地址高速缓存去除的条目的数目N和用以指示地址高速缓存条目去除正在进行中的地址高速缓存条目去除状态位;以及
基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目,其中,从要去除的第一地址高速缓存条目开始,从地址高速缓存去除对应于连续地址的N个条目。
14.根据权利要求13的系统,其中该系统还适于:
利用软件将数据写到寄存器;以及
利用该逻辑装置从地址高速缓存去除多个地址高速缓存条目。
15.根据权利要求13的系统,其中该系统还适于写入地址高速缓存条目去除状态位以指示地址高速缓存条目去除已完成。
16.根据权利要求13的系统,其中该系统还适于:
读取地址高速缓存条目去除状态位以确定地址高速缓存条目去除已完成;以及
访问地址高速缓存条目以执行输入/输出I/O地址转换。
17.根据权利要求13的系统,其中该系统还适于基于写到寄存器的数据从地址高速缓存去除对应于连续地址的多个地址高速缓存条目。
18.根据权利要求13的系统,其中该系统还适于在基于写到寄存器的数据从地址高速缓存去除多个地址高速缓存条目之后,访问地址高速缓存条目以执行输入/输出I/O地址转换。
19.一种从数据高速缓存去除条目的方法,包括:
将数据写到寄存器,所述数据包括指示要从数据高速缓存去除的第一数据高速缓存条目的地址、要从数据高速缓存去除的条目的数目N和用以指示数据高速缓存条目去除正在进行中的数据高速缓存条目去除状态位;以及
基于写到寄存器的数据从数据高速缓存去除多个数据高速缓存条目,其中,从要去除的第一数据高速缓存条目开始从数据高速缓存去除对应于连续地址的N个条目。
20.根据权利要求19的方法,其中:
将数据写到寄存器包括利用软件将数据写到寄存器;以及
从数据高速缓存去除多个数据高速缓存条目包括利用硬件从数据高速缓存条目去除多个数据高速缓存条目。
21.根据权利要求19的方法,其中:
将数据写到寄存器包括写入指示要从数据高速缓存去除的第一数据高速缓存条目的地址、要从数据高速缓存去除的条目的数目N和用以指示数据高速缓存条目去除正在进行中的数据高速缓存条目去除状态位;以及
基于写到寄存器的数据从数据高速缓存去除多个数据高速缓存条目包括从要去除的第一数据高速缓存条目开始从数据高速缓存去除对应于连续地址的N个条目。
22.根据权利要求19的方法,还包括写入数据高速缓存条目去除状态位以指示数据高速缓存条目去除已完成。
CNB2006101091323A 2005-08-11 2006-08-02 用于从地址高速缓存去除条目的方法和设备 Expired - Fee Related CN100392623C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/201,971 US7472227B2 (en) 2005-08-11 2005-08-11 Invalidating multiple address cache entries
US11/201,971 2005-08-11

Publications (2)

Publication Number Publication Date
CN1912854A CN1912854A (zh) 2007-02-14
CN100392623C true CN100392623C (zh) 2008-06-04

Family

ID=37721794

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101091323A Expired - Fee Related CN100392623C (zh) 2005-08-11 2006-08-02 用于从地址高速缓存去除条目的方法和设备

Country Status (3)

Country Link
US (1) US7472227B2 (zh)
JP (1) JP5128093B2 (zh)
CN (1) CN100392623C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7468975B1 (en) * 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
CN104461942B (zh) 2009-09-15 2018-06-08 威盛电子股份有限公司 串流上下文的高速缓存系统
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
JP5845910B2 (ja) 2012-01-13 2016-01-20 富士通株式会社 画像描画装置、画像描画プログラム、及び、画像描画方法
JP5915221B2 (ja) * 2012-02-08 2016-05-11 大日本印刷株式会社 コンピュータ装置、情報処理システム及びプログラム
JP5982847B2 (ja) * 2012-02-08 2016-08-31 大日本印刷株式会社 コンピュータ装置、情報処理システム、及び、プログラム
US9223717B2 (en) * 2012-10-08 2015-12-29 Wisconsin Alumni Research Foundation Computer cache system providing multi-line invalidation messages
US10254999B2 (en) * 2016-03-31 2019-04-09 EMC IP Holding Company LLC Method and system for optimistic flow control for push-based input/output with buffer stealing
US10223305B2 (en) 2016-06-27 2019-03-05 International Business Machines Corporation Input/output computer system including hardware assisted autopurge of cache entries associated with PCI address translations
US10268580B2 (en) * 2016-09-30 2019-04-23 Intel Corporation Processors and methods for managing cache tiering with gather-scatter vector semantics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604187B1 (en) * 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
US6839813B2 (en) * 2000-08-21 2005-01-04 Texas Instruments Incorporated TLB operations based on shared bit
CN1622060A (zh) * 2003-11-26 2005-06-01 微软公司 转换后备缓冲器的惰性转储清除

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
JPS63201852A (ja) * 1987-02-18 1988-08-19 Nec Corp キヤツシユメモリのアクセス制御方式
JPS63231648A (ja) * 1987-03-20 1988-09-27 Nec Corp キヤツシユメモリ消去方式
JPH06139149A (ja) * 1992-10-29 1994-05-20 Mitsubishi Electric Corp 多重仮想空間制御装置
JPH09231133A (ja) * 1996-02-21 1997-09-05 Nec Corp キャッシュメモリ装置
US6345352B1 (en) * 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
JP2001134490A (ja) * 1999-11-01 2001-05-18 Fujitsu Ltd キャッシュメモリの制御方法及びその方法を実現する計算機
US7188215B2 (en) * 2003-06-19 2007-03-06 Ip-First, Llc Apparatus and method for renaming a cache line

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604187B1 (en) * 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
US6839813B2 (en) * 2000-08-21 2005-01-04 Texas Instruments Incorporated TLB operations based on shared bit
CN1622060A (zh) * 2003-11-26 2005-06-01 微软公司 转换后备缓冲器的惰性转储清除

Also Published As

Publication number Publication date
US20070038797A1 (en) 2007-02-15
US7472227B2 (en) 2008-12-30
CN1912854A (zh) 2007-02-14
JP2007048296A (ja) 2007-02-22
JP5128093B2 (ja) 2013-01-23

Similar Documents

Publication Publication Date Title
CN100392623C (zh) 用于从地址高速缓存去除条目的方法和设备
CN104364775B (zh) 具有段偏移寻址的专用存储器访问路径
CN102498477B (zh) Tlb预取
US5155832A (en) Method to increase performance in a multi-level cache system by the use of forced cache misses
JP5373173B2 (ja) アドレス変換方法及び装置
US7472253B1 (en) System and method for managing table lookaside buffer performance
US9405703B2 (en) Translation lookaside buffer
US20160140042A1 (en) Instruction cache translation management
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
CN100377117C (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
EP4227814A1 (en) Method and apparatus for solving address ambiguity problem of cache
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
CN108959125B (zh) 一种支持数据快速获取的存储访问方法和装置
US6686920B1 (en) Optimizing the translation of virtual addresses into physical addresses using a pipeline implementation for least recently used pointer
US20230409476A1 (en) Cache system simulating method, apparatus, device and storage medium
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
EP0271187B1 (en) Split instruction and operand cache management
JP2001222467A (ja) キャッシュ装置
CN100462941C (zh) 一种实现可配置risc cpu中的存储器空间的方法
US6460118B1 (en) Set-associative cache memory having incremental access latencies among sets
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
JPS5922315B2 (ja) バツフア記憶制御方式
Crisu An architectural survey and modeling of data cache memories in verilog hdl
US6581139B1 (en) Set-associative cache memory having asymmetric latency among sets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080604