CN101375245A - 翻译旁视缓冲器操纵 - Google Patents
翻译旁视缓冲器操纵 Download PDFInfo
- Publication number
- CN101375245A CN101375245A CNA200780003298XA CN200780003298A CN101375245A CN 101375245 A CN101375245 A CN 101375245A CN A200780003298X A CNA200780003298X A CN A200780003298XA CN 200780003298 A CN200780003298 A CN 200780003298A CN 101375245 A CN101375245 A CN 101375245A
- Authority
- CN
- China
- Prior art keywords
- tlb
- instruction
- processor
- pipeline
- address
- 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.)
- Granted
Links
- 238000013519 translation Methods 0.000 title claims abstract description 51
- 239000000872 buffer Substances 0.000 title claims description 9
- 230000015654 memory Effects 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 17
- 238000013500 data storage Methods 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 238000003780 insertion Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004140 cleaning Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种具有多级管线的处理器包含TLB和TLB控制器。响应于TLB未命中信号,所述TLB控制器起始TLB重新加载,从而请求来自存储器或较高级TLB的地址翻译信息,并将所述信息放置在所述TLB中。所述处理器清洗具有未命中虚拟地址的指令,且重取所述指令,从而导致将所述指令重新插在管线在TLB存取点上方的初始级处。所述TLB重新加载的所述起始以及所述指令的所述清洗/重取大体上并行执行,且不会立即使所述管线停滞。所述重取的指令被保存在所述管线中的在所述TLB存取点上方的点处,直到所述TLB重新加载完成为止,使得所述重取的指令在其下一次存取时在所述TLB中产生“命中”。
Description
技术领域
本发明涉及翻译旁视缓冲器。
背景技术
在支持页式虚拟存储器的处理器中,可使用占用所述处理器的虚拟地址空间的虚拟(或“逻辑”)地址来指定数据。虚拟地址空间通常可大于系统中实际物理存储器的量。这些处理器中的操作系统可在固定大小的区块(称为页)中管理物理存储器。
为了将虚拟页地址翻译成物理页地址,处理器可搜索存储在系统存储器中的页表,其可含有地址翻译信息。由于这些搜索(或“页表查询”)可能涉及存储器存取,所以除非页表数据处于数据高速缓冲存储器中,否则这些搜索可能是耗时的。
因此,处理器可使用一个或一个以上翻译旁视缓冲器(TLB)来执行地址翻译。TLB是地址翻译高速缓冲存储器,即存储从虚拟地址到物理地址的新近映射的小型高速缓冲存储器。在执行页表搜索和地址翻译之后,所述处理器可将物理地址高速缓存在TLB中。TLB通常可含有(常被称为)虚拟页地址,以及与之相关联的物理页地址。可能存在单独的用于指令地址的TLB(指令TLB或I-TLB)和用于数据地址的TLB(数据TLB或D-TLB)。
当TLB接收到虚拟页地址时,TLB可搜索其条目,查看这些条目中的任何一者中所含有的地址翻译信息是否与接收到的虚拟页地址匹配。如果呈现给TLB的虚拟页地址正好与TLB条目的任何一者中的地址翻译信息匹配,那么可发生TLB“命中”,否则,可发生TLB“未命中”。
响应于TLB未命中,管线可能在发生未命中的点处停滞。含有所述虚拟地址的指令因为缺乏地址翻译信息而只能搁置和等待,不能够进行到下一级。当这种情况发生时,已经发生未命中的点上方的所有级可能也必须等待,从而导致效率相当低。响应于TLB未命中而采用的另一措施可以是清洗未命中的指令,而不使指令在TLB存取点之前的级处停滞。在这种情况下,针对同一指令可能发生多次未命中,从而需要多次清洗。这也可能导致低效。
发明内容
一种处理器可具有多级管线,且可包含TLB和TLB控制器。TLB可经配置以存储允许虚拟地址翻译成物理地址的地址翻译信息。TLB可进一步经配置以在呈现给TLB的指令的虚拟地址从TLB未命中时产生TLB未命中信号。TLB控制器可进一步经配置以响应于TLB未命中信号而起始TLB重新加载。所述处理器可进一步经配置以清洗具有未命中虚拟地址的指令。所述处理器可进一步经配置以重取所述指令,这导致所述指令重新插管线的在TLB存取点上方的初始级处。TLB重新加载的起始和指令的清洗/重取两者可并行执行,且不会即刻使管线停滞。所述处理器可进一步经配置以将所重取的指令保存管线中的在TLB存取点上方的点处,直到TLB重新加载完成为止,使得所述重取的指令接着将在其下一次存取时,在所述TLB中产生“命中”。
一种在具有多级管线的管线化处理器中操作TLB的方法可包含从TLB接收TLB未命中信号。所述TLB未命中信号可指示TLB中不存在用于指令的虚拟地址的地址翻译信息。所述方法可进一步包含响应于TLB未命中信号而起始TLB重新加载。所述方法可进一步包含响应于TLB未命中信号而清洗所述指令并重取所述指令,从而致使所述指令被重新插在管线的在TLB存取点上方的初始级处。TLB重新加载的起始和指令的清洗/重取两者可并行进行,且不会即刻使管线停滞。所述方法可进一步包含将所重取的指令保存在管线中的在TLB存取点上方的点处,直到TLB重新加载完成为止,使得所重取的指令将接着在其下一次存取时,在所述TLB中产生“命中”。
附图说明
图1示意性地说明在虚拟存储器系统中操作的TLB。
图2是具有经配置以响应于TLB未命中信号而起始TLB重新加载过程而不会使管线停滞的TLB控制器的管线化处理器的示意图。
图3是响应于TLB未命中的方法的流程图。
具体实施方式
下文结合附图而陈述的具体实施方式意在描述处理器和操作处理器中的TLB的方法的各种说明性实施例,但非意欲表示其中可实践本文所揭示的发明性概念的仅有实施例。具体实施方式包含特定细节,以便允许全面理解所描述的内容。然而,所属领域的技术人员应了解,在一些实施例中,可能不需要这些特定细节中的一者或一者以上。在一些情况下,以框图形式展示众所周知的结构和组件,以便更清楚地说明所呈现的概念。
图1示意性地说明在虚拟存储器系统中操作的TLB。在虚拟存储器系统中,通常可在虚拟(或“线性”)地址空间与物理地址空间之间执行映射(或翻译)。虚拟地址空间通常是指处理器所产生的所有虚拟地址22的集合。物理地址空间通常是指用于驻存在处理器的物理存储器30中的数据的所有物理地址(即在存储器总线上提供的用以将特定位置写入物理存储器30中或从物理存储器30读取特定位置的地址)的集合。
在页式虚拟存储器系统中,可假定数据由通常被称为页的固定长度的单元31组成。可将虚拟地址空间和物理地址空间分成连续页地址区块。每个虚拟页地址可提供虚拟页编号,且每个物理页地址可指示数据的特定页31在存储器30内的位置。典型的页大小可为(例如)约4千字节,但也可使用不同的页大小。物理存储器30中的页表20可含有对应于虚拟存储器系统的所有虚拟页地址的物理页地址,即,可含有虚拟页地址与虚拟地址空间中的所有虚拟页地址的对应物理页地址之间的映射。通常,页表20可含有多个页表条目(PTE)21,每个PTE 21指向物理存储器30中对应于特定虚拟地址的页31。
存取存储在物理存储器30中的页表20中的PTE 21通常可能需要存储器总线交易,这就处理器循环时间和功率消耗来说可能为较大花费的。可通过存取TLB 10而不是物理存储器30,来减少存储器总线交易的数目。如先前所阐释,TLB 10是存储虚拟地址与物理地址之间的新近映射的地址翻译高速缓冲存储器。TLB 10通常含有存储在页表20中的虚拟到物理地址映射的子集。为了增加TLB存取的效率,可通过对多级存储器高速缓冲存储器的模拟来使用和实施多级TLB(未图示),与较高级TLB相比,较低级的TLB通常较小且较快。TLB 10通常可含有多个TLB条目12。每个TLB条目12可具有标记字段14和数据字段16。标记字段14可包含虚拟页地址的较高阶位中的一些位作为标记。数据字段16可指示对应于所标记的虚拟页地址的物理页地址。
如上文所述,在具有多级管线的管线化处理器中可使用页式虚拟存储器系统。管线化可通过布置硬件使得可同时执行一个以上操作来增加处理器的性能。以此方式,可增加每单位时间所执行的操作的数目,但完成任一给定操作所需的时间量可能保持相同。在管线化处理器中,可将处理器内的操作序列分成多个分段或级,每个级并行地实行指令或操作的不同部分。可将多个级视为经连接以形成一管道。通常,可预期管线中的每个级在一个时钟循环中完成其操作。通常可使用中间存储缓冲器来保存从一个级传递到下一个级的信息。
当指令具有需要被翻译成对应的物理地址的虚拟地址22时,在程序执行期间,可存取TLB 10,以便在存储在TLB 10中的TLB条目12中查找虚拟地址22。虚拟地址22通常包含虚拟页编号,其可用于TLB 10中以查找对应的物理页地址。更具体地说,可将处理器所产生的每个虚拟地址(无论是用于指令获取还是用于操作数获取/存储操作)视为包含虚拟页编号(通常由虚拟地址的较高阶位表示),接着是偏移量(通常由虚拟地址的较低阶位表示)。虚拟地址的偏移量部分可指定特定字节或字在页内的位置。
如果TLB 10在其TLB条目中含有对应于包含在呈现给所述TLB的虚拟地址22中的虚拟页编号的特定物理页地址,那么可发生TLB“命中”,且可从TLB 10检索所述物理页地址。如果TLB 10不含有对应于呈现给TLB的虚拟地址22中的虚拟页编号的特定物理页地址,那么可发生TLB“未命中”,且可能必须执行物理存储器30中的页表20的查找(和/或较高级TLB的查找,如果有的话)。一旦从页表20确定了物理页地址,对应于虚拟页地址的物理页地址便可加载到TLB 10中,且可使用虚拟页地址22再次存取TLB10。因为所需的物理页地址现已经被加载在TLB 10中,所以TLB存取此时可导致TLB“命中”,且可在TLB 10的输出处产生新近加载的物理页地址。
图2是管线化处理器100的示意图,所述管线化处理器100经配置以通过起始TLB重新加载来响应TLB未命中信号,且不会即刻使管线停滞。概括来说,处理器100可包含:存储器130,其经配置以将指令和数据存储在多个页中;数据高速缓冲存储器(D-高速缓冲存储器)117和指令高速缓冲存储器(I-高速缓冲存储器)127,其经配置以提供对存储在主存储器130中的数据和指令的子集的高速存取;TLB 122,其经配置以存储从虚拟地址到物理地址的新近翻译;以及TLB控制器140,其经配置以控制TLB 122的操作。
如图2中所示,TLB控制器140可以是处理器100中的中央处理单元(CPU)150的一部分。在其它实施例中,TLB控制器140可位于处理器100的CPU 150附近。在处理器100的所说明的实施例中,TLB 122也是CPU 150的一部分。在其它实施例中,TLB122可位于处理器的CPU附近,但不在CPU内。举例来说,TLB 122可位于定位在CPU外部的存储器管理单元(未图示)内。存储器130可包含页表120,其存储对应于处理器100所产生的虚拟页地址的物理页地址。TLB可以是数据TLB(DTLB)和/或指令TLB(ITLB)和/或统一TLB(UTLB)。
处理器100可进一步包含TLB重新加载机构170,其经配置以在所需的地址翻译机构在TLB 122中未命中时实施TLB重新加载,以便确定正确的地址翻译信息。TLB重新加载机构170可实施存储器存取,以(例如)使用逻辑状态机(未图示)执行硬件页表查询来从存储器130中的页表120检索地址翻译信息。在一些实施例(未图示)中,处理器100可包含一个或一个以上较高级TLB。在这些情况下,如果给定存取在TLB 122中导致“未命中”,那么TLB重新加载机构170可在存取存储器130之前首先存取较高级TLB。
处理器100是多级管线化处理器,且图2中使用虚线来在概念上说明CPU150内的示范性管线级序列。图2中所说明的级序列包含:获取级210;解码级220;执行级230;存储器存取级240;以及回写级250。出于说明性目的而展示图2中的示范性序列。其它具有更小或更大数目的管线级的替代序列是可能的。每个级内的功能(例如,在获取级210期间获取指令,在解码级220期间解码指令等等)通常在一个CPU时钟循环内发生。
图2还说明硬件单元,其每一者经配置以在一个CPU时钟循环内执行与每个级有关的功能。硬件单元可包含:至少一个获取单元211,其经配置以从I-高速缓冲存储器127或主存储器130获取一个或一个以上指令;至少一个解码单元221,其经配置以解码获取单元211所获取的指令;至少一个执行单元231,其经配置以执行由解码单元221解码的一个或一个以上指令;至少一个存储器单元241,其经配置以执行存储器存取;以及至少一个回写单元251,其经配置以将从存储器130检索到的数据回写到执行单元231中。可提供命中/未命中指示符寄存器或缓冲器135,以指示由获取单元211获取的指令对I-高速缓冲存储器的存取而导致的命中或未命中。
管线可包含TLB存取点242,其在功能上以箭头242说明,在TLB存取点242处,一个或一个以上数据存取指令可存取TLB 122,以搜索地址翻译信息。如果所需的地址翻译信息存在于TLB 122中,那么TLB 122可产生TLB命中信号。可从TLB 122检索地址翻译信息,并将其发送到D-高速缓冲存储器117。数据缓冲器和/或地址缓冲器(未图示)可耦合到D-高速缓冲存储器117,以提供用于数据以及用于地址翻译信息的临时存储。
TLB 122经配置以在被呈现给TLB 122的由指令所请求的数据的虚拟地址的地址翻译信息从TLB 122中的条目的任何一者未命中时,产生TLB未命中信号。所述指令可能已经被获取单元211从I-高速缓冲存储器127获取,被解码单元221解码,且可能在正被执行单元231执行的过程中。
响应于TLB未命中信号,惯例可能已使管线在发生未命中的点处停滞。具有导致TLB未命中信号的虚拟地址的指令只能搁置和等待,而不能够进行到管线中的下一个级,因为缺乏地址翻译信息。当这种情况发生时,已经发生未命中的点上方的所有级都也可能必须等待,从而导致相当低效。或者,可清洗导致TLB未命中的指令,而不具有停滞和重取。此过程可导致针对同一指令的多次未命中,从而需要多次清洗,这可导致增加的等待时间和低效。
在图2中所说明的处理器100的实施例中,TLB控制器140经配置以响应于来自TLB122的TLB未命中信号而起始TLB重新加载,且不会即刻使管线停滞。起始TLB重新加载过程,以便确定所需的地址翻译信息。
处理器100清洗并重取所述未命中指令,从而导致在管线的上部(即,在图2中的初始级210处)重新插入导致TLB未命中的指令。TLB重新加载的起始和未命中指令的清洗/重取大体上并行执行,且不会即刻使所述管线停滞。不再使管线停滞以等待TLB重新加载过程完成,而是处理器100清洗所述指令,以使可进行的操作进行,接着重取所述指令。导致原始TLB未命中信号的指令因此第二次穿过管线的连续级,且将保存在TLB存取点上方的管线级处,直到TLB重新加载过程完成为止。
处理器100进一步经配置以将所重取的指令保存在TLB存取点242上方的管线中的点处,直到TLB重新加载完成为止。到指令到达TLB存取点242上方的所述点处时,管线停滞的次数和持续时间可能已经显著减少。
在TLB重新加载过程期间,TLB重新加载机构170可存取存储器130,从存储器130中的页表120检索用于导致TLB未命中的指令的虚拟地址的地址翻译信息,并将检索到的地址翻译信息写入到TLB 122中。在提供一个或一个以上较高级TLB(未图示)的处理器的实施例中,TLB重新加载机构170可在存取物理存储器130之前,首先存取所述较高级TLB(从最低级TLB开始,且行进到连续递增的级的TLB上)。
一旦TLB重新加载机构完成,处理器100便释放将一直保存在TLB存取点上方的管线级处的所重取的指令。由于从存储器130检索到的地址翻译信息现已被写入到TLB 122中,所以TLB 122现含有用于所重取的指令的虚拟地址的所需地址翻译信息。因此,在所述指令(其原先导致TLB未命中)再次呈现给TLB 122时,将发生TLB命中,而不是TLB未命中。所重取的指令因此不可能第二次产生TLB未命中。
处理器100可经配置以将指令(其导致初始TLB未命中)重新插在管线的上部持续预定次数,且不会更多。在处理器100的一个实施例中,所述预定次数可以是一次。
图3是响应于TLB未命中的方法300的流程图。在步骤302中,响应于所述存取TLB以查找用于指令的虚拟地址的地址翻译信息的指令,接收TLB未命中信号。TLB未命中信号可(例如)由处理器的CPU中或附近的TLB控制器接收,或由CPU中的某一其它控制寄存器接收。TLB未命中信号指示TLB 122中不存在用于所述指令的虚拟地址的所需地址翻译信息。
在步骤304中,通过向存储器或较高级TLB请求地址翻译信息,来起始TLB重新加载,且不会即刻使管线停滞。在步骤306中,大体上与TLB重新加载过程并行地清洗和重取导致TLB未命中信号的指令。在步骤308中,从存储器或从较高级TLB检索用于虚拟地址的所需地址翻译信息,且将检索到的地址翻译信息写入到TLB中。在步骤310和311中,将所重取的指令保存管线中的在TLB存取点上方的点处,直到TLB重新加载过程完成为止。最后,在步骤312中,一旦TLB重新加载过程完成,就释放所重取的指令。因为已经在步骤306中将所需的地址翻译信息写入TLB中,所以TLB未命中不再发生。
总之,已经描述了用于响应TLB未命中且不会即刻使管线停滞的设备和方法。响应于TLB未命中而起始TLB重新加载,且不会即刻使管线停滞,且导致TLB未命中的指令的清洗和重取与TLB重新加载过程并行执行。所重取的指令保存在管线中的在TLB存取点上方的点处,直到TLB重新加载过程完成为止。因为用于所述指令的必需地址翻译信息在TLB重新加载期间已经写入到TLB中,所以可释放所重取的指令,且不再导致TLB未命中。
提供对所揭示实施例的先前描述是为了使所属领域的技术人员能够制作或使用上文所述的系统。所属领域的技术人员将容易明白对这些实施例的各种修改,且本文所界定的一般原理可在不脱离本文所揭示的发明性概念的精神或范围的情况下应用于其它实施例。因此,不希望本发明限于本文所展示的实施例,而是赋予其与权利要求书一致的完整范围,其中以单数形式参考元件无意表示“一个且仅一个”(除非明确这样陈述),而是表示“一个或一个以上”。所属领域的技术人员已知或以后将知道的贯穿本发明而描述的各种实施例的元件的所有结构和功能等效物均明确以引用的方式并入本文中,且希望由权利要求书涵盖。此外,不希望本文所揭示的内容公布于众,不管揭示内容是否在权利要求书中明确陈述。权利要求书的元素不应根据35 U.S.C.§112第六节的条款来解释,除非明确使用短语“用于……的装置”来陈述所述元素,或在方法项的情况下,使用短语“用于……的步骤”来陈述所述元素。
Claims (22)
1.一种具有多级管线的处理器,所述处理器包括:
翻译旁视缓冲器(TLB),其经配置以存储允许将虚拟地址翻译成物理地址的地址翻译信息,所述TLB进一步经配置以在呈现给所述TLB的指令的虚拟地址从所述TLB未命中时产生TLB未命中信号;以及
TLB控制器,其经配置以响应于所述TLB未命中信号而起始TLB重新加载,且不会即刻使所述管线停滞;
其中所述处理器经配置以大体上与所述TLB重新加载并行地清洗和重取具有所述未命中虚拟地址的所述指令。
2.根据权利要求1所述的处理器,其中所述管线包含TLB存取点,在所述TLB存取点处,允许一个或一个以上指令存取所述TLB,且其中所述处理器进一步经配置以将所述重取的指令保存在所述TLB存取点上方,直到所述TLB重新加载完成为止。
3.根据权利要求1所述的处理器,其中所述处理器进一步经配置以通过将所述指令重新插在所述管线的初始级处来重取所述指令。
4.根据权利要求3所述的处理器,其中所述处理器进一步经配置以将所述指令重新插在所述管线的所述初始级处不多于预定次数。
5.根据权利要求4所述的处理器,其中所述预定次数是一次。
6.根据权利要求1所述的处理器,其进一步包括经配置以将数据存储在多个页中的存储器。
7.根据权利要求6所述的处理器,其进一步包括数据高速缓冲存储器,所述数据高速缓冲存储器经配置以存储所述存储器中存储的所述数据的子集。
8.根据权利要求6所述的处理器,其中所述存储器进一步经配置以存储多个指令。
9.根据权利要求8所述的处理器,其进一步包括指令高速缓冲存储器,所述指令高速缓冲存储器经配置以存储所述存储器中存储的所述指令的子集。
10.根据权利要求6所述的处理器,其中所述TLB控制器进一步经配置以在所述TLB重新加载期间从所述存储器检索用于所述未命中虚拟地址的所述地址翻译信息,且将所述地址翻译信息写入到所述TLB中。
11.根据权利要求6所述的处理器,其中所述多个页中的每一者均具有物理页地址,且其中所述TLB中所含有的所述地址翻译信息允许将虚拟地址翻译成所述多个页的物理页地址。
12.根据权利要求1所述的处理器,其中所述TLB包括以下至少一者:数据TLB(DTLB);指令TLB(ITLB)和统一TLB(UTLB)。
13.根据权利要求1所述的处理器,其中所述多级管线包括至少一获取级、一解码级、一执行级、一存储器存取级和一回写级。
14.根据权利要求10所述的处理器,其进一步包括:
至少一个获取单元,其经配置以从指令寄存器获取一个或一个以上指令;
至少一个解码单元,其经配置以解码所述获取单元所获取的所述一个或一个以上指令;以及
至少一个执行单元,其经配置以执行由所述解码单元解码的所述一个或一个以上指令。
15.一种在具有多级管线的管线化处理器中操作TLB的方法,所述方法包括:
从TLB接收TLB未命中信号,所述TLB未命中信号指示所述TLB中不存在用于指令的虚拟地址的地址翻译信息;
响应于所述TLB未命中信号而起始TLB重新加载,且不会即刻使所述管线停滞;
清洗所述指令;以及
重取所述指令。
16.根据权利要求15所述的方法,其中所述管线包含TLB存取点,在所述TLB存取点处,允许一个或一个以上指令存取所述TLB,且所述方法进一步包括将所述重取的指令保存在所述TLB存取点上方直到所述TLB重新加载完成为止的动作。
17.根据权利要求15所述的方法,其中所述重取所述指令的动作包括将所述指令重新插在所述管线的初始级处。
18.根据权利要求17所述的方法,其中所述将所述指令重新插在所述管线的初始级处的动作包括将所述指令重新插在所述管线的所述初始级处不多于预定次数。
19.根据权利要求18所述的方法,其中所述预定次数是一次。
20.根据权利要求15所述的方法,其中所述处理器包括存储器,且所述方法进一步包括在所述TLB重新加载期间从所述存储器检索用于所述虚拟地址的所述地址翻译信息的动作,以及将所述地址翻译信息写入到所述TLB中的动作。
21.根据权利要求15所述的方法,其中所述处理器包括至少一个额外TLB,其与从中接收所述TLB未命中信号的所述TLB相比是较高级TLB,且所述方法进一步包括在所述TLB重新加载期间从所述较高级TLB检索用于所述虚拟地址的所述地址翻译信息的动作,以及将所述地址翻译信息写入到所述TLB中的动作。
22.根据权利要求15所述的方法,其中所述管线包括至少一获取级、一解码级、一执行级、一存储器存取级和一回写级。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/336,264 | 2006-01-20 | ||
US11/336,264 US7721067B2 (en) | 2006-01-20 | 2006-01-20 | Translation lookaside buffer manipulation |
PCT/US2007/060813 WO2007085009A1 (en) | 2006-01-20 | 2007-01-22 | Translation lookaside buffer manipulation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101375245A true CN101375245A (zh) | 2009-02-25 |
CN101375245B CN101375245B (zh) | 2013-05-01 |
Family
ID=38091746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780003298XA Active CN101375245B (zh) | 2006-01-20 | 2007-01-22 | 翻译旁视缓冲器操纵方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7721067B2 (zh) |
EP (1) | EP1974255B1 (zh) |
JP (2) | JP5329234B2 (zh) |
KR (1) | KR100974775B1 (zh) |
CN (1) | CN101375245B (zh) |
WO (1) | WO2007085009A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827076A (zh) * | 2022-06-30 | 2022-07-29 | 沐曦集成电路(上海)有限公司 | 一种基于地址翻译单元的地址返回方法及系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7721067B2 (en) * | 2006-01-20 | 2010-05-18 | Qualcomm Incorporated | Translation lookaside buffer manipulation |
US20070180157A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for cache hit under miss collision handling |
US20070180158A1 (en) * | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for command list ordering after multiple cache misses |
US7809893B2 (en) * | 2007-07-12 | 2010-10-05 | Apple Inc. | Method and apparatus for refetching data |
US8433855B2 (en) * | 2008-02-15 | 2013-04-30 | International Business Machines Corporation | Serializing translation lookaside buffer access around address translation parameter modification |
US9569349B2 (en) * | 2008-12-19 | 2017-02-14 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
JP5347024B2 (ja) * | 2009-06-24 | 2013-11-20 | パナソニック株式会社 | メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置 |
JP6273733B2 (ja) * | 2013-09-20 | 2018-02-07 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
US10515671B2 (en) | 2016-09-22 | 2019-12-24 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
US11061822B2 (en) * | 2018-08-27 | 2021-07-13 | Qualcomm Incorporated | Method, apparatus, and system for reducing pipeline stalls due to address translation misses |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205542B1 (en) * | 1997-12-24 | 2001-03-20 | Intel Corporation | Processor pipeline including replay |
US6076153A (en) * | 1997-12-24 | 2000-06-13 | Intel Corporation | Processor pipeline including partial replay |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6745297B2 (en) * | 2000-10-06 | 2004-06-01 | Broadcom Corporation | Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent |
US7721067B2 (en) * | 2006-01-20 | 2010-05-18 | Qualcomm Incorporated | Translation lookaside buffer manipulation |
-
2006
- 2006-01-20 US US11/336,264 patent/US7721067B2/en active Active
-
2007
- 2007-01-22 WO PCT/US2007/060813 patent/WO2007085009A1/en active Application Filing
- 2007-01-22 EP EP07710244.0A patent/EP1974255B1/en active Active
- 2007-01-22 KR KR1020087020292A patent/KR100974775B1/ko active IP Right Grant
- 2007-01-22 CN CN200780003298XA patent/CN101375245B/zh active Active
- 2007-01-22 JP JP2008551562A patent/JP5329234B2/ja not_active Expired - Fee Related
-
2012
- 2012-06-07 JP JP2012129502A patent/JP2012230683A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827076A (zh) * | 2022-06-30 | 2022-07-29 | 沐曦集成电路(上海)有限公司 | 一种基于地址翻译单元的地址返回方法及系统 |
CN114827076B (zh) * | 2022-06-30 | 2022-09-13 | 沐曦集成电路(上海)有限公司 | 一种基于地址翻译单元的地址返回方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR100974775B1 (ko) | 2010-08-06 |
KR20080095253A (ko) | 2008-10-28 |
WO2007085009A1 (en) | 2007-07-26 |
US7721067B2 (en) | 2010-05-18 |
EP1974255B1 (en) | 2018-08-22 |
US20070174584A1 (en) | 2007-07-26 |
JP2009524166A (ja) | 2009-06-25 |
JP5329234B2 (ja) | 2013-10-30 |
CN101375245B (zh) | 2013-05-01 |
EP1974255A1 (en) | 2008-10-01 |
JP2012230683A (ja) | 2012-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101375245B (zh) | 翻译旁视缓冲器操纵方法和装置 | |
EP0795820B1 (en) | Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system. | |
US6687789B1 (en) | Cache which provides partial tags from non-predicted ways to direct search if way prediction misses | |
US5623627A (en) | Computer memory architecture including a replacement cache | |
US7406569B2 (en) | Instruction cache way prediction for jump targets | |
KR101005633B1 (ko) | 일정한 개수의 가변 길이 명령을 가진 명령 캐시 | |
US7769983B2 (en) | Caching instructions for a multiple-state processor | |
EP0795828A2 (en) | Dynamic set prediction method and apparatus for a multi-level cache system | |
US5774710A (en) | Cache line branch prediction scheme that shares among sets of a set associative cache | |
US20070005933A1 (en) | Preventing multiple translation lookaside buffer accesses for a same page in memory | |
US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
US7913068B2 (en) | System and method for providing asynchronous dynamic millicode entry prediction | |
US5926841A (en) | Segment descriptor cache for a processor | |
US5680569A (en) | Cache column timing control | |
US11151054B2 (en) | Speculative address translation requests pertaining to instruction cache misses | |
JP3824657B2 (ja) | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 |
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 |