TWI537730B - Methods and systems for managing synonyms in virtually indexed physically tagged caches - Google Patents

Methods and systems for managing synonyms in virtually indexed physically tagged caches Download PDF

Info

Publication number
TWI537730B
TWI537730B TW100138450A TW100138450A TWI537730B TW I537730 B TWI537730 B TW I537730B TW 100138450 A TW100138450 A TW 100138450A TW 100138450 A TW100138450 A TW 100138450A TW I537730 B TWI537730 B TW I537730B
Authority
TW
Taiwan
Prior art keywords
cache
virtual address
index
bit
synonym
Prior art date
Application number
TW100138450A
Other languages
Chinese (zh)
Other versions
TW201317782A (en
Inventor
卡塞凱彥 艾弗戴亞潘
摩翰麥德 艾伯戴爾拉
Original Assignee
軟體機器公司
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 軟體機器公司 filed Critical 軟體機器公司
Priority to TW100138450A priority Critical patent/TWI537730B/en
Publication of TW201317782A publication Critical patent/TW201317782A/en
Application granted granted Critical
Publication of TWI537730B publication Critical patent/TWI537730B/en

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

在虛擬索引實體標籤快取中管理同義字的方法與系統Method and system for managing synonym in virtual index entity tag cache

本發明一般係關於在虛擬索引實體標籤快取中管理同義字的方法與系統。The present invention is generally directed to a method and system for managing synonyms in a virtual index entity tag cache.

在中央處理單元中的快取為一資料儲存結構,其由電腦的中央處理單元使用以降低其存取記憶體所需的平均時間。快取為儲存資料複本的記憶體,其位於最常使用的主記憶體位置。此外,快取記憶體比主記憶體小且存取較為快速。有幾種不同類性的快取,包含實體索引實體標籤(PIPT)、虛擬索引虛擬標籤(VIVT)、及虛擬索引實體標籤(VIPT)。The cache in the central processing unit is a data storage structure that is used by the central processing unit of the computer to reduce the average time it takes to access the memory. The cache is a memory that stores a copy of the data, which is located at the most commonly used main memory location. In addition, the cache memory is smaller than the main memory and the access is faster. There are several different types of caches, including Entity Index Entity Tags (PIPTs), Virtual Index Virtual Tags (VIVTs), and Virtual Index Entity Tags (VIPTs).

VIPT快取一般用於現代處理應用中。這些快取使用針對索引的一虛擬位址(VA)(其識別快取記憶體中的一獨特位置)以及在標籤中的一實體位置(其含有已快取之資料的主記憶體索引),其係相關於快取線。使用此類型的快取,可使用TLB轉譯而並聯地識別快取線,如圖1所示。參考圖1,VIPT快取使用虛擬位址位元101(如未轉譯虛擬位址位元)開始一標籤讀取,以索引至快取103,而記憶體管理單元(MMU)105將虛擬位址的某些較高階位元轉譯為實體位址位元107。接著,實體位址位元107與相關於快取線的VIPT之標籤值比較。因此,VIPT快取能夠藉由以MMU轉譯程序重疊其標籤讀取程序而隱藏其存取時間。VIPT caches are typically used in modern processing applications. These caches use a virtual address (VA) for the index (which identifies a unique location in the cache) and a physical location in the tag (which contains the primary memory index of the cached data). It is related to the cache line. With this type of cache, the cache line can be identified in parallel using TLB translation, as shown in Figure 1. Referring to Figure 1, the VIPT cache uses a virtual address bit 101 (e.g., untranslated virtual address bit) to begin a tag read to index to the cache 103, while the memory management unit (MMU) 105 will place the virtual address. Some higher order bits are translated into physical address bits 107. Next, the physical address bit 107 is compared to the tag value of the VIPT associated with the cache line. Therefore, the VIPT cache can hide its access time by overlapping its tag reader with the MMU translator.

考慮一64KB、8路關聯性1級VIPT快取。此外,假設4KB的最小MMU頁尺寸、32b長的虛擬位址(VA)、及40b長的實體位址(PA)。基於前述程序,VIPT快取使用VA[12:6](虛擬位址的位元[12:6])而索引至標籤靜態隨機存取記憶體(Tag SRAM)(圖未示),以自所有8路產生TagPA[39:12](相關於呈現至Tag SRAM之未轉譯虛擬位址的實體位址)。雖然VIPT快取忙於存取其Tag SRAM,MMU轉譯VA[31:12](位元十二),以產生MMU PA[39:12](由轉譯所產生的實體位址)。MMU PA[39:12]係相較於TagPA[39:12]以產生TagHit[7:0],其識別具有快取線之VIPT快取的8路中的路。上述中,VA[12]係用以索引至標籤動態隨機存取記憶體(Tag DRAM),而VA[12]經過轉譯而產生PA[12]。以轉譯為一實體位址的一虛擬位址位元索引快取可產生同義字。Consider a 64KB, 8-way correlation level 1 VIPT cache. In addition, assume a minimum MMU page size of 4 KB, a virtual address (VA) of 32 b long, and a physical address (PA) of 40 b long. Based on the foregoing procedure, the VIPT cache is indexed to the tag SRAM (not shown) using VA[12:6] (bits of the virtual address [12:6]). The 8-way generates TagPA[39:12] (associated with the physical address of the untranslated virtual address presented to the Tag SRAM). Although the VIPT cache is busy accessing its Tag SRAM, the MMU translates VA[31:12] (bit twelve) to produce the MMU PA[39:12] (the physical address generated by the translation). MMU PA [39:12] is compared to TagPA [39:12] to generate TagHit[7:0], which identifies the way in the 8-way with the VIPT cache of the cache line. In the above, VA[12] is used to index to tag dynamic random access memory (Tag DRAM), and VA[12] is translated to generate PA [12]. A virtual address bit index cache that is translated into a physical address can generate a synonym.

考慮以下結果:Consider the following results:

VA0[31:13]=0×0,VA0[12]=0×0,VA0[11:0]=0×0-->(轉譯)-->PA[39:0]=0×0VA0[31:13]=0×0, VA0[12]=0×0, VA0[11:0]=0×0-->(translation)-->PA[39:0]=0×0

VA1[31:13]=0×1,VA1[12]=0×1,VA1[11:0]=0×0-->(轉譯)-->PA[39:0]=0×0VA1[31:13]=0×1, VA1[12]=0×1, VA1[11:0]=0×0-->(translation)-->PA[39:0]=0×0

上述中,VA0及VA1(其第12位元不同)在由MMU轉譯時產生相同的PA[39:0]。當VA0使用VA[12:6](VA[12:6]=0000000)存取VIPT快取,其存取Tag SRAM(圖未示)的索引0。此外,當VA1使用VA[12:6](VA[12:6]=0000001)存取VIPT快取,其存取Tag SRAM的索引64。因此,相同的實體位址係相關於VA1及VA2,且其駐存於VIPT快取的索引0及索引64兩者中。映射至主記憶體的相同實體位址之兩個虛擬位址VA1及VA2係稱作「同義字(synonyms)」。相關於VIPT快取中的兩個(或更多)項目之相同實體位址係稱作「混淆現象(aliasing)」。In the above, VA0 and VA1 (which differ in the 12th bit) produce the same PA[39:0] when translated by the MMU. When VA0 accesses the VIPT cache using VA[12:6] (VA[12:6]=0000000), it accesses the index 0 of the Tag SRAM (not shown). In addition, when VA1 accesses the VIPT cache using VA[12:6] (VA[12:6]=0000001), it accesses the index 64 of the Tag SRAM. Thus, the same physical address is associated with VA1 and VA2, and it resides in both index 0 and index 64 of the VIPT cache. The two virtual addresses VA1 and VA2 mapped to the same physical address of the main memory are referred to as "synonyms". The same physical address associated with two (or more) items in a VIPT cache is called "aliasing."

當VIPT快取之「一路(a way)」的尺寸超過最小的記憶體頁尺寸,會發生混淆現象。未解決的問題為,混淆現象可能導致資料的不一致。當1級(或L1)快取係包含於2級(或L2)快取中(L1快取的全部內容的複本係維持於L2快取中)時,處理混淆現象的習知方法為儲存同義字VA位元(在上述例子中為VA[12])於L2快取的標籤中。此方法的缺點為每一L2標籤索引需要一儲存位元(如VA[12]),且需要額外位元以識別每一同義字。因此,習知方法的缺點為其造成L2快取中之儲存的二維增長,其對應L2快取尺寸的增加以及包含於其中之同義字數量的增加。此外,在習知系統中,當相關於映射至虛擬位址同義字之實體位址的資料被更新,快取中只有一個位置可被更新。為了避免可能導致這類不完全更新的資料不一致,許多習知的系統執行快取內容的耗時搜尋,以確保與已更新之實體位址有關的所有虛擬位址同義字的失效。因此,習知管理同義字的方法由於其繁雜的資料儲存及快取搜尋操作具有相當大的缺點。Confusion occurs when the size of the "a way" of the VIPT cache exceeds the minimum memory page size. The unresolved issue is that confusion can lead to inconsistencies in the data. When a level 1 (or L1) cache is included in a level 2 (or L2) cache (the rest of the L1 cache is maintained in the L2 cache), the conventional method of handling confusion is to store synonyms. The word VA bit (VA[12] in the above example) is in the L2 cached tag. A disadvantage of this approach is that each L2 tag index requires a storage bit (such as VA[12]) and additional bits are needed to identify each synonym. Thus, a disadvantage of the conventional method is that it results in a two-dimensional growth of the storage in the L2 cache, which corresponds to an increase in the size of the L2 cache and an increase in the number of synonyms included therein. Moreover, in the conventional system, when the material related to the physical address mapped to the virtual address synonym is updated, only one of the caches can be updated. In order to avoid inconsistencies in data that may result in such incomplete updates, many conventional systems perform time consuming searches of cached content to ensure the invalidation of all virtual address synonym associated with updated physical addresses. Therefore, the conventional method of managing synonyms has considerable disadvantages due to its complicated data storage and cache search operations.

許多用以處理VIPT快取中同義字的習知方法的特色在於繁瑣的資料儲存及快取搜尋操作。所揭露為一種基於目錄的方法,其使用分割為不同部分之一目錄來處理這些缺點。然而,所主張的具體實施例不限於處理前述任何或所有缺點的實施。所揭露方法的一部分為,使用一目錄追蹤一複本快取之線;檢查相關於一負載請求之一虛擬位址的一特定位元且決定其狀態;以及基於所檢查之虛擬位址之特定位元的狀態,形成一項目於目錄之複數個部分之其中之一。當接收到用以更新相關於虛擬位址之一實體位址的一請求時,與儲存於複本快取之一第一索引中之虛擬位址相關的一快取線、以及於與儲存於複本快取之一第二索引中之虛擬位址的一同義字相關的一快取線之其中之一係失效。由於牽涉單一目錄,對應同義字的快取線(其係儲存於複本快取中且相關於目錄項目)的更新及失效可在單一時脈週期中有效地執行,而不需耗時的快取搜尋。Many of the well-known methods for handling synonyms in the VIPT cache feature cumbersome data storage and cache search operations. Disclosed is a directory-based approach that uses partitioning into one of the different parts of the directory to handle these shortcomings. However, the specific embodiments claimed are not limited to the implementation of any or all of the disadvantages described above. Part of the disclosed method is to use a directory to track a replica cache line; to check a particular bit associated with a virtual address of a load request and determine its status; and based on the particular bit of the virtual address being examined The state of the meta-form forms one of a plurality of parts of the catalog. Upon receiving a request to update an entity address associated with one of the virtual addresses, a cache line associated with the virtual address stored in the first index of the copy cache, and stored in the copy One of the cache lines associated with a synonym of the virtual address in the second index of the cache is invalidated. Because of the single directory involved, updates and failures of the cache line corresponding to the synonym (which is stored in the replica cache and related to the directory entry) can be effectively executed in a single clock cycle without time-consuming cache search.

前述為發明內容,因此必然包含簡化、概括且省略細節。因此,熟此技藝者將了解,發明內容僅為說明性而無意圖做任何方式的限制。本發明的其他態樣、發明特徵及優點係僅由申請專利範圍所定義,且在以下所提出之非限制性詳細說明中將變得明顯。The foregoing is a summary of the invention, and thus is inclusive of Therefore, it is to be understood that the invention may be Other aspects, features, and advantages of the invention will be set forth in the description of the appended claims.

雖然本發明係以一具體實施例做描述,但本發明並無意限制於在此所提出的特定形式。相反地,本發明意欲涵蓋可合理地包括於由後附申請專利範圍所定義之本發明範疇內的這些替代、修改及均等。Although the present invention has been described in terms of a specific embodiment, the invention is not intended to be limited to the specific forms disclosed herein. On the contrary, the invention is intended to cover such alternatives, modifications and equivalents

在以下的詳細描述中,提出了許多具體的細節,像是特定的方法順序、結構、元件及連接。然而,應了解到,可不需利用這些及其他具體細節來實行本發明的具體實施例。在其他情況下,省略或沒有特別地詳細描述習知結構、元件、或連接,以避免不必要地模糊了說明內容。In the following detailed description, numerous specific details are set forth, such as the particular method of the embodiments, It should be understood, however, that the specific embodiments of the invention may be practiced In other instances, well-known structures, components, or connections are omitted or not described in detail to avoid unnecessarily obscuring the description.

說明書中所提到的「一個具體實施例(one embodiment)」或「一具體實施例(an embodiment)」係意指,關聯於一具體實施例而描述的特定特徵、結構或特性係包括於本發明之至少一個具體實施例中的一具體實施例。在本說明書中許多地方所出現的「在一個具體實施例中」一詞並不需全指相同的具體實施例,也不需是與其他具體實施例互相排斥的單獨或另外的具體實施例。此外,所描述的許多特徵可能會在某些具體實施例中呈現而沒有在其他具體實施例中呈現。類似地,所描述的許多需求可能為某些具體實施例的需求,但不為其他具體實施例的需求。The phrase "one embodiment" or "an embodiment" is used in the specification to mean that a particular feature, structure, or characteristic described in connection with a particular embodiment is included in the present invention. A specific embodiment of at least one embodiment of the invention. The word "in a particular embodiment" is used in many places in the specification and is not intended to refer to the specific embodiments. In addition, many of the features described may be presented in some specific embodiments and not in other specific embodiments. Similarly, many of the needs described may be desirable for certain embodiments, but are not required by other specific embodiments.

詳細說明的某些部分將於下文中以電腦記憶體內之資料位元上操作的程序、步驟、邏輯塊、處理、及其他符號表示。這些描述及表示為熟習資料處理技藝者所使用的手段,以最有效地將其工作的實質內容傳達給其他熟此技藝者。程序、電腦執行步驟、邏輯塊、處理等等於此處且一般而言係設想為導致所需結果之自相一致順序的步驟或指令。這些步驟為需要實體量的實體操作。通常情況下,但非必須,這些量的形式為電腦可讀儲存媒體的電性或磁性訊號,且能夠被儲存、轉移、結合、比較、或操作於電腦系統中。已證實有時(主要為了平常使用)將此等訊號稱作位元、值、元件、符號、字元、術語、數字或其類似者係便利的Portions of the detailed description are set forth below in terms of procedures, steps, logic blocks, processing, and other symbols that operate on the data bits in the computer memory. These descriptions and representations are the means used by those skilled in the art to best convey the substance of their work to those skilled in the art. Programs, computer-executed steps, logic blocks, processes, and the like are here and in general are contemplated as steps or instructions that result in a consistent sequence of desired results. These steps are operations for entities that require a physical quantity. Typically, but not necessarily, these quantities are in the form of electrical or magnetic signals of a computer readable storage medium and can be stored, transferred, combined, compared, or manipulated in a computer system. It has been proven that sometimes (primarily for normal use) such signals are referred to as bits, values, elements, symbols, characters, terms, numbers or the like.

然而,應注意,所有這些或類似用語與適當實體量有關,且僅為應用到這些量的便利符號。於下討論中除非有特別指明,不然應知本發明中使用例如「追蹤(tracking)」、「檢查(examining)」、「形成(making)」、「更新(updating)」、或類似者等用語之討論,係指電腦系統或類似電子計算裝置的動作及程序,其將電腦系統暫存器及記憶體及其他電腦可讀媒體內表示為實體(電子)量的資料操控且轉換成在電腦系統記憶體或暫存器或其他此類資訊儲存、傳輸、或顯示裝置內類似地表示為實體量的其他資料。However, it should be noted that all of these or similar terms are related to the appropriate amount of the entity and are merely convenient symbols applied to these quantities. In the following discussion, unless otherwise specified, it is to be understood that terms such as "tracking", "examining", "making", "updating", or the like are used in the present invention. Discussion refers to the actions and procedures of a computer system or similar electronic computing device that manipulates and converts data in a computer system register and memory and other computer readable media into physical (electronic) quantities into a computer system. Memory or scratchpad or other such information storage, transmission, or display device is similarly represented as other quantities of material.

<根據一具體實施例之用以在虛擬索引實體標籤快取中管理同義字之系統的範例操作環境><Example Operating Environment for a System for Managing Synonyms in Virtual Index Entity Tag Cache in accordance with a Specific Embodiment>

圖2A顯示根據一具體實施例之用以在虛擬索引實體標籤(VIPT)快取中管理同義字的系統201之一範例操作環境200。系統201在單一時脈週期中致能相關於一實體位址及對應同義字之個別快取線項目的個別更新及失效。圖2A顯示系統201、L1快取203、複本快取205(及目錄206)、L2快取207、中央處理單元(CPU)209、主記憶體211及系統介面213。2A shows an example operating environment 200 of a system 201 for managing synonyms in a virtual index entity tag (VIPT) cache, in accordance with an embodiment. System 201 enables individual updates and invalidation of individual cache line items associated with a physical address and corresponding synonym in a single clock cycle. 2A shows system 201, L1 cache 203, replica cache 205 (and directory 206), L2 cache 207, central processing unit (CPU) 209, main memory 211, and system interface 213.

參考圖2A,系統201藉由有效地更新及失效對應同義字之快取線項目而管理快取記憶體中的同義字成長,其中同義字係對應至相關於一更新請求之一實體位址。在一具體實施例中,由目錄206所支援之系統201能夠直接地識別同義字,其係對應相關於更新請求之一實體位址,而無對快取內容進行詳盡且耗時的搜尋。在一具體實施例中,系統201可位於L2快取207中,例如L2快取控制器207b。在其他具體實施例中,系統201可與L2快取的構件(例如L2快取控制器207b)分開,但與其協力操作。在範例具體實施例中,系統201指示對應同義字之一或多個快取線項目的有效率失效,其係藉由在更新相關於選擇以供更新之一對等同義字之一快取線項目的相同時脈週期中指示其失效。在一具體實施例中,這係由目錄206的組態所協助,其追蹤由L2快取207所維持之L1快取203的複本內容(複本快取205)。在一具體實施例中,如圖1所示,L1快取203係位於中央處理單元209中,而目錄206係位於L2快取207中。Referring to FIG. 2A, the system 201 manages synonym growth in the cache memory by effectively updating and invalidating the cache line item corresponding to the synonym, wherein the synonym is corresponding to one of the physical addresses associated with an update request. In one embodiment, the system 201 supported by the catalog 206 is capable of directly identifying synonyms, which correspond to one of the physical addresses associated with the update request, without exhaustive and time consuming searching of the cached content. In a specific embodiment, system 201 can be located in L2 cache 207, such as L2 cache controller 207b. In other embodiments, system 201 can be separate from the L2 cached component (e.g., L2 cache controller 207b), but operates in conjunction therewith. In an exemplary embodiment, system 201 indicates an expiration failure of one or more cache line items corresponding to a synonym, which is by a line of one of the equivalent words in the update associated with the selection for updating The project indicates its failure in the same clock cycle. In a specific embodiment, this is assisted by the configuration of the directory 206, which tracks the copy content (replica cache 205) of the L1 cache 203 maintained by the L2 cache 207. In one embodiment, as shown in FIG. 1, the L1 cache 203 is located in the central processing unit 209 and the directory 206 is located in the L2 cache 207.

目錄206係組態以維持儲存於複本快取205中之每一快取線的項目(如複本L1資料及/或指令快取)。項目係以有助於同義字的直接識別之方式而維持,其相關於對應相關於一更新請求之實體位址的快取線。為此目的,如圖2B所示,目錄206係基於相關於存取請求之「同義字VA」位元而劃分為第一板0 206a及第二板1 206b。參考圖2B,個別板(206a及206b)對應個別虛擬位址範圍。在一具體實施例中,同義字VA位元係識別一同義字的虛擬位址所屬之虛擬位址範圍。因此,同義字VA位元決定對應儲存於複本快取205中之快取線的目錄項目係維持於其中之目錄206之板。由於兩板皆為相同目錄的一部分,相關於目錄206項目之儲存於複本快取205中之快取線的更新及失效可在單一時脈週期中執行,而不需對快取進行詳盡且耗時的搜尋。Directory 206 is configured to maintain items stored in each cache line of replica cache 205 (e.g., replica L1 data and/or instruction cache). The project is maintained in a manner that facilitates direct identification of synonyms, which is related to the cache line corresponding to the physical address associated with an update request. To this end, as shown in FIG. 2B, the directory 206 is divided into a first board 0 206a and a second board 1 206b based on a "synonym VA" bit associated with the access request. Referring to Figure 2B, the individual boards (206a and 206b) correspond to individual virtual address ranges. In a specific embodiment, the synonym VA bit identifies the virtual address range to which the virtual address of a synonym belongs. Therefore, the synonym VA bit determines the directory in which the directory entry corresponding to the cache line stored in the replica cache 205 is maintained. Since both boards are part of the same directory, the update and invalidation of the cache line stored in the replica cache 205 associated with the directory 206 item can be performed in a single clock cycle without having to exhaust and exhaust the cache. Time to search.

在圖2B的具體實施例中,目錄206係組態以包括128線(顯示為圖2B的0-127),其追蹤儲存於複本快取205中的線。在此具體實施例中,線0-63係包括於板0 206a中且對應虛擬位址VA[12]=0的第一範圍,線64-127係包括於板1 206b中且對應虛擬位址VA[12]=1的第二範圍。此外,每一線包括可指示線的有效性或非有效性的一位置206c(例如以一位元來指示)。In the particular embodiment of FIG. 2B, the catalog 206 is configured to include 128 lines (shown as 0-127 of FIG. 2B) that track the lines stored in the replica cache 205. In this particular embodiment, lines 0-63 are included in board 0 206a and correspond to a first range of virtual addresses VA[12] = 0, lines 64-127 are included in board 1 206b and corresponding virtual addresses The second range of VA[12]=1. In addition, each line includes a location 206c (e.g., indicated by a one-bit) that can indicate the validity or non-validity of the line.

再次參考圖2A,在一具體實施例中,包含一同義字之至L2快取207的負載請求係經由L2快取207管道(由L2快取207所接收之請求的管道,例如已有針對請求之一L1快取203誤失之處)而接收。接著,當執行負載請求,且包含於負載請求中的快取線係儲存於複本快取205中,則相關於請求的同義字VA位元係用以更新適當的目錄板(directory panel),以指示快取線已儲存於複本快取205中。舉例來說,在一具體實施例中,若關於一實體位址(PA)的負載請求係以VA=VA0=0接收於L2快取207,則更新板0 206a(參考圖2B)。然而,若關於該實體位址(PA)的負載請求係以VA=VA1=1接收於L2快取207,則更新板1 206b(參考圖2B)。Referring again to FIG. 2A, in one embodiment, a load request containing a synonym to the L2 cache 207 is via the L2 cache 207 pipeline (the pipeline of requests received by the L2 cache 207, eg, for a request One of the L1 caches 203 missed) and received. Then, when the load request is executed and the cache line included in the load request is stored in the replica cache 205, the synonym VA bit associated with the request is used to update the appropriate directory panel to Indicates that the cache line has been stored in the replica cache 205. For example, in one embodiment, if a load request for a physical address (PA) is received at L2 cache 207 with VA = VA0 = 0, then board 0 206a is updated (see Figure 2B). However, if the load request for the physical address (PA) is received by the L2 cache 207 with VA = VA1 = 1, the board 1 206b is updated (refer to Figure 2B).

應了解到,在執行上述操作後,由於VA0及VA1為同義字,VA0及VA1兩者係關聯於相同的實體位址(PA)。再者,關聯於此實體位址(PA)的資料接著係駐存於複本快取205中兩個不同索引,0及64。接著,當經由L2快取管道接收用以更新實體位址(PA)的更新請求(如儲存)時,系統201隨機地選擇相關於實體位址(PA)之兩快取線項目的其中之一供更新、以及其中另一供失效。因此,在一具體實施例中,相關於實體位址(PA)(其相關於VA0及VA1)的快取線係允許駐存於複本快取205中的兩個不同索引中,直到有一個包括更新此特定實體位址(PA)的儲存請求。同樣地,可實現由維持複本快取205中快取線的兩個複本所獲得的效能優勢。It should be understood that after performing the above operations, since VA0 and VA1 are synonymous, both VA0 and VA1 are associated with the same physical address (PA). Furthermore, the data associated with this physical address (PA) is then resident in two different indices, 0 and 64, in the replica cache 205. Then, when an update request (such as storage) to update the physical address (PA) is received via the L2 cache, the system 201 randomly selects one of the two cache line items associated with the physical address (PA). For updates, and one of them for failure. Thus, in one embodiment, a cache line associated with a physical address (PA) (which is associated with VA0 and VA1) is allowed to reside in two different indexes in the replica cache 205 until one includes Update the storage request for this specific entity address (PA). Similarly, the performance advantages obtained by maintaining two copies of the cache line in the Replica 205 can be achieved.

L1快取203為1級快取,而L2快取207為2級快取。在一具體實施例中,L2快取207的尺寸遠大於L1快取203。在一具體實施例中,當有一1級快取誤失,將提供請求至2級快取L2,其檢查目錄206以決定所請求的資訊是否駐存於複本快取205中。The L1 cache 203 is a level 1 cache, and the L2 cache 207 is a level 2 cache. In one embodiment, the size of the L2 cache 207 is much larger than the L1 cache 203. In one embodiment, when there is a level 1 cache miss, a request will be provided to level 2 cache L2, which checks directory 206 to determine if the requested information resides in replica cache 205.

主記憶體211包括實體位址,其儲存複製到快取記憶體之資訊。當已快取之主記憶體之實體位址所包含的資訊改變時,更新對應的快取資訊,以反應對儲存於主記憶體中之資訊所做的改變。因此,如前文中所討論,這可牽涉系統201隨機地選擇與相關於更新請求之實體位址有關的一快取線項目以更新、以及與實體位址有關的另一快取線項目以失效。圖2A所顯示的其他結構包括系統介面211、標籤隨機存取記憶體(tag RAM)207c及L2快取靜態隨機存取記憶體(SRAM)207a。The main memory 211 includes a physical address that stores information copied to the cache memory. When the information contained in the physical address of the cached main memory changes, the corresponding cache information is updated to reflect the changes made to the information stored in the main memory. Thus, as discussed above, this may involve the system 201 randomly selecting a cache line item associated with the physical address of the update request to update, and another cache line item associated with the physical address to expire. . Other structures shown in FIG. 2A include a system interface 211, a tag random access memory (tag RAM) 207c, and an L2 cache static random access memory (SRAM) 207a.

圖2C顯示根據一具體實施例之所選之快取系統塊之間關係的示意圖。參考圖2C,經由L2管道213所接收之用以更新複本快取205(其係對應相關於一實體位址之一同義字)中之快取線之請求係促使對目錄206的審查。目錄206的審查係識別儲存於與實體位址相關之複本快取205中的快取線項目。如上文所討論,系統201接著隨機地選擇其中一個快取線項目供更新以及另一個供失效。因此,在相關於該實體位址之更新請求之後,只有對應實體位址之一單一快取線留在複本快取205中。此外,就在上述更新及失效操作之後,在複本快取205中沒有相關於實體位址的同義字。2C shows a schematic diagram of the relationship between selected cache system blocks in accordance with an embodiment. Referring to FIG. 2C, the request received via the L2 pipeline 213 to update the cache line in the replica cache 205 (which corresponds to a synonym associated with one of the physical addresses) facilitates review of the directory 206. The review of the catalog 206 identifies the cache line items stored in the replica cache 205 associated with the physical address. As discussed above, system 201 then randomly selects one of the cache line items for update and the other for failure. Thus, after an update request associated with the physical address, only a single cache line of one of the corresponding physical addresses remains in the replica cache 205. Moreover, there is no synonym associated with the physical address in the replica cache 205 just after the above update and invalidation operations.

<操作><operation>

圖2D及圖2E描述根據一具體實施例之用以管理VIPT中同義字之系統201的操作態樣。有關於管理同義字之這些操作係以明確且簡潔的方式進行說明。應了解到,根據一具體實施例,也可執行圖2D及圖2E所未描述的其他操作。在圖2D中,將參考對應L2快取207之複本快取205的一系列狀態之圖式(參考圖2A)來描述操作。2D and 2E depict an operational aspect of system 201 for managing synonyms in a VIPT, in accordance with an embodiment. These operations on managing synonyms are described in a clear and concise manner. It should be appreciated that other operations not illustrated in Figures 2D and 2E may also be performed in accordance with a particular embodiment. In FIG. 2D, the operation will be described with reference to a diagram of a series of states of the replica cache 205 corresponding to the L2 cache 207 (refer to FIG. 2A).

<同義字的隱式(implicit)處理><implicit processing of synonymous words>

參考圖2D,在A處,複本快取205的索引0及索引64係顯示為失效。此情況可能發生在例如重設之後。Referring to FIG. 2D, at A, index 0 and index 64 of replica cache 205 are shown as invalid. This can happen, for example, after resetting.

在B處,基於資料儲存請求,快取線項目係儲存於複本快取205中之索引0。在一具體實施例中,快取線項目包括一有效位元、一標籤(如一虛擬位址及實體位址)、及一資料塊。At B, the cache line item is stored in index 0 of the replica cache 205 based on the data storage request. In a specific embodiment, the cache line item includes a valid bit, a tag (such as a virtual address and a physical address), and a data block.

在C處,儲存於索引0的快取線係載入至索引64。在一具體實施例中,這可發生於以下情況:當用以儲存相關於實體位址(其係相關於儲存在索引0之快取線)之資料的一後續請求係包含相關於儲存在索引0之快取線之虛擬位址的一同義字。結果為此實體位址係相關於儲存於索引0及索引64兩者的快取線。At C, the cache line stored at index 0 is loaded into index 64. In a specific embodiment, this may occur when a subsequent request to store data related to a physical address (which is related to a cache line stored at index 0) is related to being stored in the index. 0 is the synonym of the virtual address of the line. The result is that the physical address is associated with the cache line stored in both index 0 and index 64.

在D處,在索引0的快取線項目係以一新資料值更新,且在索引64的快取線項目係失效。在一具體實施例中,當選擇其中一個項目將其更新,則另一個將失效。如本文所述,當做出一請求以更新其中一項目時,將隨機選擇兩個項目中的其中一個做更新而另一個為失效。At D, the cache line item at index 0 is updated with a new data value, and the cache line item at index 64 is invalidated. In a specific embodiment, when one of the items is selected to update it, the other will fail. As described herein, when a request is made to update one of the items, one of the two items will be randomly selected for update and the other will be invalid.

在一具體實施例中,上述之同義字的隱式處理使用一目錄結構(其係用以確保複本快取205係包括於L2快取207中)來解決複本快取205(圖2A)中的混淆現象問題。這描述於圖2D中。此解決方法允許複本快取205(圖2A)具有相同的實體位址相關於複本快取205(圖2A)中的兩個項目,只要不需以新的值更新實體位址。當到了要以一新的值更新實體位址的時候,在一索引中相關於實體位址之快取線項目將失效(其係隨機地於複本快取205中的兩個可能項目間做選擇)。In a specific embodiment, the implicit processing of the synonym described above uses a directory structure (which is used to ensure that the replica cache 205 is included in the L2 cache 207) to resolve the replica cache 205 (FIG. 2A). Confusing the problem. This is depicted in Figure 2D. This solution allows the replica cache 205 (Fig. 2A) to have the same physical address associated with the two entries in the replica cache 205 (Fig. 2A) as long as the physical address does not need to be updated with the new value. When it is time to update the physical address with a new value, the cache line item associated with the physical address in an index will be invalidated (which randomly selects between two possible items in the replica cache 205). ).

<同義字的預測器(predictor)式處理><predictor type processing of synonymous words>

圖2E描述根據一具體實施例之操作,其係執行為同義字之預測 器式處理的一部分。考慮來自不同程序的兩個虛擬位址VA0及VA1,其符合以下條件:VA0[12:6]與VA1[12:6]係相同,而PA0[12]與PA1[12]不相同。此外,當轉譯後,VA1[12]與PA1[12]不相同。若所涉及的快取係實體地索引且實體地標籤(PIPT)、或為具有8路關聯性的32KB,則兩實體位址將分別儲存於索引0及64。然而,若使用具有相同同義字VA(如12:6)的虛擬位址(其為VIPT快取)來存取快取,則兩實體位址將結束於相同索引(如索引0),其於此處占領不同的兩路,這對最佳效能來說是不希望存在的。圖2E所述的操作將解決此問題。Figure 2E depicts an operation performed in accordance with an embodiment as part of a predictive processing of synonyms. Consider two virtual addresses VA0 and VA1 from different programs that meet the following conditions: VA0[12:6] is the same as VA1[12:6], and PA0[12] is not the same as PA1[12]. In addition, VA1[12] is not the same as PA1[12] after translation. If the cache involved is physically indexed and physically tagged (PIPT), or is 32 KB with 8-way association, the two entity addresses will be stored in indices 0 and 64, respectively. However, if a virtual address (which is a VIPT cache) with the same synonym VA (such as 12:6) is used to access the cache, the two entity addresses will end at the same index (such as index 0), which Occupying two different roads here is not desirable for optimal performance. The operation described in Figure 2E will solve this problem.

參考圖2E,在A處,使用具有位元VA1[12:6](其具有與先前已存取快取之虛擬位址VA0之位元VA0[12:6]相同的值)的虛擬位址VA1存取VIPT快取。Referring to FIG. 2E, at A, a virtual address having a bit VA1[12:6] having the same value as the bit VA0[12:6] of the virtual address VA0 previously accessed by the cache is used. VA1 accesses the VIPT cache.

在B處,預測關於虛擬位址VA1之實體位址的實體位址位元PA[12]。在一具體實施例中,預測可為隨機。在其他具體實施例中,預測可為非隨機。舉例來說,在一具體實施例中,當快取被存取時,系統(如圖2A的系統201)可於PA[12]之邏輯值0與1之間隨機地選擇。At B, the physical address bit PA[12] for the physical address of the virtual address VA1 is predicted. In a specific embodiment, the prediction can be random. In other embodiments, the prediction may be non-random. For example, in one embodiment, when a cache is accessed, the system (such as system 201 of FIG. 2A) can be randomly selected between logical values 0 and 1 of PA[12].

在C處,若決定預測為不正確的(如所預測的PA[12]與實際PA[12]不相同),則指示一誤失(miss)且系統(如圖2A的201)係更新以包括PA[12]的正確值,使系統基於更新的資訊正確地做出預期性的預測。At C, if the decision is made to be incorrect (if the predicted PA[12] is not the same as the actual PA[12]), then a miss is indicated and the system (201 in Figure 2A) is updated. Including the correct value of PA[12] allows the system to correctly make predictive predictions based on updated information.

在D處,使用PA[12]的正確值重試請求。At D, the request is retried using the correct value of PA[12].

在一具體實施例中,同義字的預測器式處理係用以確保若使用VA[12]存取快取,則兩個虛擬位址VA0及VA1(其具有上述特性)不會結束在相同的索引。In a specific embodiment, the predictive processing of the synonym is used to ensure that if the VA[12] access cache is used, the two virtual addresses VA0 and VA1 (which have the above characteristics) do not end in the same index.

<根據一具體實施例之用以在虛擬索引實體標籤快取中管理同義字之系統的構件><Members of a system for managing synonyms in a virtual index entity tag cache according to a specific embodiment>

圖3顯示跟據一具體實施例之用以在VIPT快取中管理同義字之系統201(亦參考圖2A)的構件。在一具體實施例中,系統201執行用以在虛擬索引實體標籤(VIPT)快取中管理同義字之運算。在圖3的具體實施例中,系統201的構件包括快取線追蹤器301、同義字VA位元檢查器303、目錄項目形成器305、快取線更新器/失效器307、虛擬位址接收器309、實體位址預測器311、預測正確性決定器313、及請求重試構件315。Figure 3 shows the components of a system 201 (see also Figure 2A) for managing synonyms in a VIPT cache in accordance with an embodiment. In one embodiment, system 201 performs operations to manage synonyms in a virtual index entity tag (VIPT) cache. In the specific embodiment of FIG. 3, the components of system 201 include a cache line tracker 301, a synonym VA bit checker 303, a directory item former 305, a cache line updater/deasserter 307, and virtual address receiving. The 309, the physical address predictor 311, the prediction correctness determiner 313, and the request retry component 315.

<隱式同義字處理構件><implicit synonym processing component>

參考圖3,快取線追蹤器310追蹤在1級快取之複本(其係維持於2級快取中)中的線。在一具體實施例中,快取線追蹤器310為一目錄,其係組態以維持儲存於1級快取之複本中的每一快取線的項目,其係以有助於對應同義字(其係對應相關於一更新請求之一實體位址)之快取線項目的有效更新及失效的方式。在一具體實施例中,目錄係分為第一板及第二板,其對應相關於請求之一同義字VA位元。Referring to FIG. 3, the cache line tracker 310 tracks the line in the copy of the level 1 cache, which is maintained in the level 2 cache. In one embodiment, the cache line tracker 310 is a directory configured to maintain an item of each cache line stored in a copy of the level 1 cache, which is adapted to facilitate correspondence of synonyms (This is a way to validate and invalidate the cache line item corresponding to one of the entity addresses of an update request). In a specific embodiment, the directory is divided into a first board and a second board, which correspond to a synonym VA bit associated with one of the requests.

同義字VA位元檢查器303檢查相關於負載請求之虛擬位址的一同義字VA位元,且決定其狀態。The synonym VA bit checker 303 checks a synonym VA bit associated with the virtual address of the load request and determines its state.

目錄項目形成器305基於所檢查之虛擬位址之同義字VA位元的狀態而形成一項目於目錄之複數個部分的其中之一。在一具體實施例中,在複本L1快取中一索引處,目錄項目對應具有一相關實體位址之快取線的儲存。The directory item former 305 forms one of a plurality of parts of the directory based on the state of the synonym VA bit of the checked virtual address. In a specific embodiment, at an index in the replica L1 cache, the directory entry corresponds to the storage of a cache line having an associated physical address.

當接收一更新請求以更新相關於兩虛擬位址之一實體位址時,快取線更新器/失效器307係將以下其中之一更新且將其中另一失效:儲存於前述複本快取之第一索引中的一快取線(其係相關於第一虛擬位址)、以及儲存於複本快取之第二索引中的一快取線(其係相關於第二虛擬位址,其中第二虛擬位址為第一虛擬位址的同義字)。在一具體實施例中,選擇供更新的快取線以及選擇供失效的快取線係隨機地選擇。When receiving an update request to update one of the physical addresses associated with the two virtual addresses, the cache line updater/deasserter 307 updates one of the following and invalidates one of the other: stored in the aforementioned copy cache a cache line in the first index (which is related to the first virtual address) and a cache line stored in the second index of the copy cache (which is related to the second virtual address, where The second virtual address is a synonym for the first virtual address). In a specific embodiment, the cache line for selection is selected and the cache line selected for failure is randomly selected.

<預測器同義字處理構件><predictor synonym processing component>

虛擬位址接收器309接收一虛擬位址作為對VIPT之存取請求的一部分,其具有與先前已存取VIPT快取之虛擬位址相同的一同義字VA位元值。在一具體實施例中,第一及第二虛擬位址係分別相關於第一及第二程序。The virtual address receiver 309 receives a virtual address as part of an access request to the VIPT, which has a synonym VA bit value that is the same as the virtual address of the previously accessed VIPT cache. In a specific embodiment, the first and second virtual address locations are associated with the first and second programs, respectively.

實體位址位元預測器311預測實體位址之一實體位址位元,其係相關於所接收之虛擬位址(其為VIPT快取存取請求之一部分)。在一具體實施例中,如上文所討論,預測可為隨機。在其他具體實施例中,預測可為非隨機。舉例而言,在一具體實施例中,如上文所討論,當存取快取時,系統(如圖2A的系統201)可於PA[12]之邏輯值0與1之間隨機地選擇。The physical address bit predictor 311 predicts one of the physical address physical address bits associated with the received virtual address (which is part of the VIPT cache access request). In a specific embodiment, as discussed above, the prediction can be random. In other embodiments, the prediction may be non-random. For example, in one embodiment, as discussed above, when accessing a cache, the system (such as system 201 of FIG. 2A) can be randomly selected between logical values 0 and 1 of PA[12].

預測正確性決定器313決定由實體位址預測器311所做的預測是否正確。The prediction correctness decider 313 determines whether the prediction made by the physical address predictor 311 is correct.

請求重試構件315促使使用實體位址位元的正確值來進行請求的重試。舉例來說,若不正確的預測為邏輯「0」,則使用邏輯「1」重試請求。The request retry component 315 causes the correct retry of the request to be made using the correct value of the physical address bit. For example, if the incorrect prediction is logic "0", the request is retried using logic "1".

應了解到,前述之系統201的構件可實施為硬體、軟體、或兩者的組合。在一具體實施例中,系統201的構件及操作可包括於一或多個電腦構件或程式的構件及操作中。在另一具體實施例中,系統201的構件及操作可與前述之一或多個電腦構件或程式分開但可與其構件及操作協同操作。It will be appreciated that the components of system 201 described above can be implemented as a hardware, a soft body, or a combination of both. In one embodiment, the components and operations of system 201 may be included in the components and operations of one or more computer components or programs. In another embodiment, the components and operations of system 201 can be separate from one or more of the aforementioned computer components or programs but can operate in conjunction with its components and operations.

<< 根據一具體實施例之用以在虛擬索引實體標籤快取中管理同義字之程序>A program for managing synonyms in a virtual index entity tag cache according to a specific embodiment >

圖4及圖5顯示根據一具體實施例之在用以在虛擬索引實體標籤(VIPT)快取中管理同義字之方法中執行之步驟的流程圖400及500。在一具體實施例中,流程圖包括可在電腦可讀及電腦可執行指令的控制下由處理器及電子構件所實現之程序。雖然流程圖中揭露特定步驟,但這些步驟為例示性。亦即,本具體實施例係適合實施各種其他步驟或流程圖中所列舉之步驟的變化。4 and 5 show flowcharts 400 and 500 of steps performed in a method for managing synonyms in a virtual index entity tag (VIPT) cache, in accordance with an embodiment. In one embodiment, the flowchart includes a program that can be implemented by a processor and an electronic component under the control of computer readable and computer executable instructions. Although specific steps are disclosed in the flowcharts, these steps are illustrative. That is, the present embodiments are suitable for implementing various other steps or variations of the steps recited in the flowcharts.

<隱式同義字管理方法><implicit synonym management method>

參考圖4,在401,追蹤維持於2級快取中之1級快取複本中的快取線。在一具體實施例中,於一目錄中追蹤線,其中目錄係組態以維持儲存於1級快取之複本中的每一快取線的項目,其係以有助於對應同義字(其係對應相關於一更新請求之一實體位址)之快取線項目的有效更新及失效的方式。在一具體實施例中,目錄係分為第一板及第二板,如上所述。Referring to FIG. 4, at 401, the cache line maintained in the level 1 cache of the level 2 cache is tracked. In a specific embodiment, the lines are tracked in a directory, wherein the directory is configured to maintain an item of each cache line stored in the copy of the level 1 cache, which is adapted to facilitate the corresponding synonym (which A manner of valid update and invalidation of a cache line item corresponding to one of the physical addresses of an update request. In a specific embodiment, the catalog is divided into a first panel and a second panel, as described above.

在403,檢查相關於負載請求之虛擬位址的一特定位元,且決定其狀態。At 403, a particular bit associated with the virtual address of the load request is checked and its status is determined.

在405,基於所檢查之虛擬位址之特定位元的狀態,產生一項目於目錄之複數個部分的其中之一。在一具體實施例中,目錄項目對應在複本L1快取中之一索引之線的儲存。At 405, an item is generated in one of a plurality of portions of the directory based on the status of the particular bit of the virtual address being examined. In a specific embodiment, the directory entry corresponds to the storage of one of the indices in the replica L1 cache.

在407,當接收一更新請求以更新相關於虛擬位址之實體位址時,分別更新及失效以下其中之一及其中另一:相關於儲存於前述複本快取之第一索引中之一虛擬位址的一快取線項目、以及相關於儲存於複本快取之第二索引中之其同義字的一快取線項目。At 407, when an update request is received to update the physical address associated with the virtual address, one of the following and one of the other are updated and invalidated: one of the first indexes stored in the first cache cache A cache line item of the address and a cache line item associated with its synonym stored in the second index of the copy cache.

<預測器同義字管理方法><predictor synonym management method>

參考圖5,在501,接收一虛擬位址作為對一VIPT之一存取請求的一部分,其具有與先前已存取VIPT快取之虛擬位址相同的一同義字VA位元值(如VA[12])。在一具體實施例中,前述位址係分別相關於第一及第二程序。在503,預測相關於虛擬位址(其為VIPT快取存取請求的一部分)之實體位址的實體位址位元(如PA[12])。在505,決定預測是否正確(正確性決定)。在507,若預測不正確,則使用正確的實體位址位元值重試請求。Referring to FIG. 5, at 501, a virtual address is received as part of an access request to a VIPT having a synonym VA bit value (such as VA) that is the same as the virtual address of the previously accessed VIPT cache. [12]). In a specific embodiment, the foregoing address is associated with the first and second programs, respectively. At 503, a physical address bit (e.g., PA[12]) of the physical address associated with the virtual address (which is part of the VIPT cache access request) is predicted. At 505, it is determined whether the prediction is correct (correctness decision). At 507, if the prediction is incorrect, the request is retried using the correct physical address bit value.

在VIPT快取中管理同義字的方法與系統係揭露關於其範例具體實施例。方法包括:使用一目錄追蹤一複本快取之線、檢查相關於一負載請求之一虛擬位址的一特定位元且決定其狀態、以及基於所檢查之虛擬位址之特定位元的狀態而形成一項目於目錄之複數個部分之其中之一。此方法更包括:當接收用以更新相關於虛擬位址之一實體位址的一請求時,更新以下其中之一以及使以下其中另一為失效:與儲存於複本快取之一第一索引中之虛擬位址相關的一快取線、以及於與儲存於複本快取之一第二索引中之虛擬位址的一同義字相關的一快取線。Methods and systems for managing synonyms in a VIPT cache are disclosed with respect to specific examples thereof. The method includes using a directory to track a replica cache line, checking a particular bit associated with a virtual address of a load request and determining its status, and based on the status of the particular bit of the virtual address being examined. Forming an item in one of a plurality of parts of the catalog. The method further includes: when receiving a request to update an entity address associated with one of the virtual addresses, updating one of the following and invalidating one of the following: and storing the first index stored in the copy cache A cache line associated with the virtual address in the virtual address and a cache line associated with a synonym of the virtual address stored in the second index of the copy cache.

雖然許多構件及程序在上文中為方便起見係以單數進行描述,但熟此技藝者將了解到,也可使用多個構件及重複的程序來實施本發明的技術。此外,雖然本發明已參考其特定具體實施例而特別地顯示及描述,但熟此技藝者將了解到,在不偏離本發明精神及範疇下可對所揭露之具體實施例的形式及細節做改變。舉例來說,本發明具體實施例可使用多種不同構件,而不應限制前文所提及之構件。因此,本發明應解釋為包含所有落入本發明真實精神及範疇內的所有變化及均等。While many of the components and procedures have been described above in the singular for convenience, it will be appreciated by those skilled in the art that the various embodiments and various procedures can be used to implement the techniques of the present invention. In addition, the present invention has been particularly shown and described with respect to the specific embodiments thereof, and it will be understood that the form and details of the disclosed embodiments can be made without departing from the spirit and scope of the invention. change. For example, a particular embodiment of the invention may use a variety of different components, and should not limit the components mentioned above. Accordingly, the invention is to be construed as being limited to all such modifications and equivalents

101...虛擬位址位元101. . . Virtual address bit

103...快取103. . . Cache

105...記憶體管理單元105. . . Memory management unit

107...實體位址位元107. . . Physical address bit

200...操作環境200. . . Operating environment

201...系統201. . . system

203...L1快取主記憶體203. . . L1 cache main memory

205...複本快取205. . . Replica cache

206...目錄206. . . table of Contents

206a...第一板206a. . . First board

206b...第二板206b. . . Second board

206c...位置206c. . . position

207...L2快取207. . . L2 cache

207a...L2快取靜態隨機存取記憶體207a. . . L2 cache static random access memory

207b...L2快取控制器207b. . . L2 cache controller

207c...標籤隨機存取記憶體207c. . . Tag random access memory

209...中央處理單元209. . . Central processing unit

211...主記憶體211. . . Main memory

213...系統介面213. . . System interface

301...快取線追蹤器301. . . Cache line tracker

303...同義字VA位元檢查器303. . . Synonym VA bit checker

305...目錄項目形成器305. . . Directory item builder

307...快取線更新器/失效器307. . . Cache line updater/disabler

309...虛擬位址接收器309. . . Virtual address receiver

311...實體位址預測器311. . . Physical address predictor

313...預測正確性決定器313. . . Predictive correctness determiner

315...請求重試構件315. . . Request retry component

本發明及其進一步的優點可藉參考詳細說明並配合所伴隨圖式而有最佳的理解,其中:The invention and its further advantages are best understood by reference to the detailed description and the accompanying drawings in which:

圖1顯示用以存取一虛擬索引實體標籤(VIPT)快取之習知系統的構件;Figure 1 shows components of a conventional system for accessing a virtual index entity tag (VIPT) cache;

圖2A顯示根據一具體實施例之用以在VIPT快取中管理同義字的系統之一範例操作環境;2A shows an example operating environment of a system for managing synonyms in a VIPT cache, in accordance with an embodiment;

圖2B顯示根據一具體實施例之基於相關於存取請求之同義字虛擬位址(VA)位元而劃分為第一板及第二板之一目錄;2B shows a directory divided into a first board and a second board based on a synonym virtual address (VA) bit associated with an access request, in accordance with an embodiment;

圖2C顯示根據一具體實施例之所選快取系統塊之間關係的示意圖;2C shows a schematic diagram of the relationship between selected cache system blocks in accordance with an embodiment;

圖2D描述根據一具體實施例之用以管理VIPT中同義字之系統的操作態樣;2D depicts an operational aspect of a system for managing synonyms in a VIPT, in accordance with an embodiment;

圖2E描述根據一具體實施例之用以管理VIPT中同義字之系統的操作態樣;2E depicts an operational aspect of a system for managing synonyms in a VIPT, in accordance with an embodiment;

圖3顯示根據一具體實施例之用以在VIPT快取中管理同義字之系統的構件;3 shows components of a system for managing synonyms in a VIPT cache, in accordance with an embodiment;

圖4顯示根據一具體實施例之在用以在VIPT快取中管理同義字之方法中執行之步驟的流程圖;以及4 shows a flow diagram of steps performed in a method for managing synonyms in a VIPT cache, in accordance with an embodiment;

圖5顯示根據一具體實施例之在用以在VIPT快取中管理同義字之方法中執行之步驟的流程圖。FIG. 5 shows a flow diagram of steps performed in a method for managing synonyms in a VIPT cache, in accordance with an embodiment.

應注意,圖式中類似元件符號係指類似的元件。It should be noted that like elements in the drawings refer to like elements.

200...操作環境200. . . Operating environment

201...系統201. . . system

203...L1快取主記憶體203. . . L1 cache main memory

205...複本快取205. . . Replica cache

206...目錄206. . . table of Contents

207...L2快取207. . . L2 cache

207a...L2快取靜態隨機存取記憶體207a. . . L2 cache static random access memory

207b...L2快取控制器207b. . . L2 cache controller

207c...標籤隨機存取記憶體207c. . . Tag random access memory

209...中央處理單元209. . . Central processing unit

211...主記憶體211. . . Main memory

213...系統介面213. . . System interface

Claims (20)

一種用以在一快取系統中管理同義字的方法,包含:使用一目錄追蹤一複本快取之線;檢查相關於一負載請求之一虛擬位址的一特定位元且決定其狀態;基於所檢查之該虛擬位址之該特定位元的該狀態,形成一項目(entry)於該目錄之複數個部分之其中之一;以及當接收用以更新相關於該虛擬位址之一實體位址的一請求時,更新以下其中之一且使以下其中另一失效:與儲存於該複本快取之一第一索引中之該虛擬位址相關的一快取線、以及於與儲存於該複本快取之一第二索引中之該虛擬位址的一同義字相關的一快取線。 A method for managing a synonym in a cache system, comprising: tracking a replica cache line using a directory; checking a specific bit associated with a virtual address of a load request and determining its state; The state of the particular bit of the virtual address being inspected, forming an entry in one of a plurality of portions of the directory; and receiving an entity bit associated with the virtual address when received At the request of the address, updating one of the following and invalidating one of the following: a cache line associated with the virtual address stored in the first index of the copy cache, and stored in the A cache line is a cache line associated with a synonym of the virtual address in the second index. 如請求項1所述之方法,其中在該失效之前,該虛擬位址與該同義字係識別於該目錄中。 The method of claim 1, wherein the virtual address and the synonym are identified in the directory prior to the invalidation. 如請求項1所述之方法,其中形成該項目於該目錄中係包含基於該虛擬位址之該特定位元而將該項目放置於一第一板(panel)及一第二板之其中之一中。 The method of claim 1, wherein forming the item in the directory comprises placing the item in a first panel and a second board based on the specific bit of the virtual address One. 如請求項1所述之方法,其中與儲存於該複本快取之該第一索引中之該虛擬位址相關的該快取線、以及與儲存於該複本快取之該第二索引中之該同義字相關的該快取線係駐存於該第一索引及該第二索引,直到形成用 以更新相關於該虛擬位址之該實體位址的一請求。 The method of claim 1, wherein the cache line associated with the virtual address stored in the first index of the copy cache and the second index stored in the copy cache The cache line associated with the synonym is residing in the first index and the second index until formation To update a request for the physical address associated with the virtual address. 如請求項1所述之方法,其中與儲存於該複本快取之一第一索引中之該虛擬位址相關的該快取線、以及與該同義字相關之該快取線之該其中之一的該失效係隨機地決定。 The method of claim 1, wherein the cache line associated with the virtual address stored in a first index of the copy cache and the cache line associated with the synonym are The failure of one is determined randomly. 如請求項1所述之方法,更包含自一2級快取管道接收該負載請求。 The method of claim 1, further comprising receiving the load request from a level 2 cache pipeline. 如請求項1所述之方法,其中該目錄包含對應第一及第二虛擬位址範圍的一第一板及一第二板。 The method of claim 1, wherein the directory includes a first board and a second board corresponding to the first and second virtual address ranges. 如請求項1所述之方法,其中該複本快取為一1級快取的一複本。 The method of claim 1, wherein the copy cache is a copy of a level 1 cache. 如請求項1所述之方法,其中該快取系統為一虛擬索引實體標籤(VIPT)系統。 The method of claim 1, wherein the cache system is a virtual index entity tag (VIPT) system. 一種在一VIPT中管理虛擬位址同義字的方法,包含:接收相關於一第一虛擬位址之對該VIPT之一存取請求,該第一虛擬位址具有與相關於一先前所接收之存取請求之一第二虛擬位址之一同義字VA位元相同之一同義字VA位元;在決定該實體位址之該位元之實際數值之前,預測 相關於該第一虛擬位址之一實體位址之一位元之一數值;決定該實體位址之該位元之該實際數值;若事先所提供之該實體位址之該位元之該數值與該實體位址之該位元之該實際數值不相同,則提供一誤失(miss)之一指示且更新一預測器;以及使用該實體位址之該位元之該實際數值重試該存取請求。 A method for managing a virtual address synonym in a VIPT, comprising: receiving an access request for the VIPT associated with a first virtual address, the first virtual address having a correlation with a previously received One of the second virtual address of the access request is the same as the VA bit of the synonym VA bit; the prediction is before the actual value of the bit of the physical address is determined a value relating to one of the bits of the physical address of the first virtual address; determining the actual value of the bit of the physical address; if the bit of the physical address is provided in advance The value is not the same as the actual value of the bit of the physical address, providing an indication of a miss and updating a predictor; and retrying the actual value of the bit using the physical address The access request. 如請求項10所述之方法,其中該第一虛擬位址及該第二虛擬位址係相關於不同的程序。 The method of claim 10, wherein the first virtual address and the second virtual address are related to different programs. 如請求項10所述之方法,其中不同的實體位址係各自相關於該第一虛擬位址及該第二虛擬位址。 The method of claim 10, wherein the different physical address locations are each associated with the first virtual address and the second virtual address. 一種快取記憶體系統,包含:記憶體構件;以及一記憶體控制器,其中該記憶體控制器包括用以管理同義字的一系統,該系統包含:一追蹤構件,其使用一目錄追蹤一複本快取之線;一檢查構件,其檢查相關於一負載請求之一虛擬位址的一特定位元且決定其狀態;一項目形成構件,其基於所檢查之該虛擬位址之該特定位元的該狀態,形成一項目於該目錄之複數個部分之其中之一;以及一快取線更新及失效構件,其當接收用以更新相關 於該虛擬位址之一實體位址的一請求時,更新以下其中之一且使以下其中另一失效:與儲存於該複本快取之一第一索引中之該虛擬位址相關的一快取線、以及於與儲存於該複本快取之一第二索引中之該虛擬位址的一同義字相關的一快取線。 A cache memory system comprising: a memory component; and a memory controller, wherein the memory controller includes a system for managing synonyms, the system comprising: a tracking component that uses a directory tracking a line of replicas; an inspection component that checks a particular bit of a virtual address associated with a load request and determines its state; an item forming component that is based on the particular bit of the virtual address being examined The state of the meta-form forms one of a plurality of parts of the directory; and a cache line update and invalidation component that is received to update the relevant When a request for one of the physical addresses of the virtual address is requested, one of the following is updated and the other of the following is invalidated: a fast associated with the virtual address stored in the first index of one of the replica caches And fetching a line, and a cache line associated with a synonym of the virtual address stored in a second index of the copy cache. 如請求項13所述之快取記憶體系統,其中該快取線更新及失效構件在該更新及該失效前識別在該目錄中之該虛擬位址及該同義字。 The cache memory system of claim 13, wherein the cache line update and invalidation component identifies the virtual address and the synonym in the directory prior to the update and the failure. 如請求項13所述之快取記憶體系統,其中該項目形成構件基於該虛擬位址之該特定位元而將該項目放置於一第一板及一第二板之其中之一中。 The cache memory system of claim 13, wherein the item forming means places the item in one of a first board and a second board based on the particular bit of the virtual address. 如請求項13所述之快取記憶體系統,其中該快取線更新及失效構件允許與儲存於該複本快取之該第一索引中之該虛擬位址相關的該快取線、以及與儲存於該複本快取之該第二索引中之該同義字相關的該快取線駐存於該第一索引及該第二索引,直到形成用以更新相關於該虛擬位址之該實體位址的一請求。 The cache memory system of claim 13, wherein the cache line update and invalidation component allows the cache line associated with the virtual address stored in the first index of the replica cache, and The cache line associated with the synonym stored in the second index of the replica cache resides in the first index and the second index until a physical bit associated with the virtual address is formed to be updated A request for the address. 如請求項13所述之快取記憶體系統,其中該快取線更新及失效構件係隨機地決定與儲存於該複製快取之一第一索引中之該虛擬位址相關的該快取線、以及與該同義字相關之該快取線之該其中之一的該更新及該失效。 The cache memory system of claim 13, wherein the cache line update and invalidation component randomly determines the cache line associated with the virtual address stored in a first index of the copy cache. And the update of the one of the cache lines associated with the synonym and the failure. 如請求項13所述之快取記憶體系統,其中該檢查構件檢查來自一2級快取管道的負載請求。 The cache memory system of claim 13, wherein the inspection component checks for a load request from a level 2 cache. 如請求項13所述之快取記憶體系統,其中該複本快取為一1級快取的一複本。 The cache memory system of claim 13, wherein the copy cache is a copy of a level 1 cache. 如請求項13所述之快取記憶體系統,其中該快取系統為一虛擬索引實體標籤(VIPT)系統。 The cache memory system of claim 13, wherein the cache system is a virtual index entity tag (VIPT) system.
TW100138450A 2011-10-24 2011-10-24 Methods and systems for managing synonyms in virtually indexed physically tagged caches TWI537730B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW100138450A TWI537730B (en) 2011-10-24 2011-10-24 Methods and systems for managing synonyms in virtually indexed physically tagged caches

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100138450A TWI537730B (en) 2011-10-24 2011-10-24 Methods and systems for managing synonyms in virtually indexed physically tagged caches

Publications (2)

Publication Number Publication Date
TW201317782A TW201317782A (en) 2013-05-01
TWI537730B true TWI537730B (en) 2016-06-11

Family

ID=48871915

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100138450A TWI537730B (en) 2011-10-24 2011-10-24 Methods and systems for managing synonyms in virtually indexed physically tagged caches

Country Status (1)

Country Link
TW (1) TWI537730B (en)

Also Published As

Publication number Publication date
TW201317782A (en) 2013-05-01

Similar Documents

Publication Publication Date Title
US11314647B2 (en) Methods and systems for managing synonyms in virtually indexed physically tagged caches
US10248572B2 (en) Apparatus and method for operating a virtually indexed physically tagged cache
KR102448124B1 (en) Cache accessed using virtual addresses
US8161246B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US8799620B2 (en) Linear to physical address translation with support for page attributes
JP5373173B2 (en) Address translation method and apparatus
US8195881B2 (en) System, method and processor for accessing data after a translation lookaside buffer miss
JP5526626B2 (en) Arithmetic processing device and address conversion method
US10078588B2 (en) Using leases for entries in a translation lookaside buffer
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US20140115297A1 (en) Detection of conflicts between transactions and page shootdowns
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US9569363B2 (en) Selective prefetching of physically sequential cache line to cache line that includes loaded page table entry
US20230401161A1 (en) Translation support for a virtual cache
US20180165218A1 (en) Memory management
US20140289469A1 (en) Processor and control method of processor
CN106168929A (en) Selectivity prefetches physics and continues cache line to comprising the cache line being written into page table
JP2024520742A (en) Sharing the instruction cache footprint among multiple threads
TWI537730B (en) Methods and systems for managing synonyms in virtually indexed physically tagged caches
US7971002B1 (en) Maintaining instruction coherency in a translation-based computer system architecture
CN117331854B (en) Cache processing method, device, electronic equipment and medium
US11138119B2 (en) Increasing effective cache associativity
JPH0635801A (en) Hierarchical memory control system
JPWO2013084315A1 (en) Arithmetic processing device and control method of arithmetic processing device