TWI749960B - 資料處理裝置與其資料存取電路 - Google Patents
資料處理裝置與其資料存取電路 Download PDFInfo
- Publication number
- TWI749960B TWI749960B TW109145841A TW109145841A TWI749960B TW I749960 B TWI749960 B TW I749960B TW 109145841 A TW109145841 A TW 109145841A TW 109145841 A TW109145841 A TW 109145841A TW I749960 B TWI749960 B TW I749960B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- signal
- cache
- logic
- circuit
- Prior art date
Links
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種資料處理裝置,其包含記憶體電路和資料存取電路。記憶體電路包含用於儲存資料的多個快取路。響應於致能訊號的第一邏輯狀態,若存取要求的位址的標籤相同於多個快取路的對應標籤,資料存取電路判斷發生快取命中。響應於致能訊號的第二邏輯狀態,若位址位於資料存取電路指定的一或多個預設位址區間,資料存取電路判斷發生快取命中,而若位址位於一或多個預設位址區間之外,資料存取電路判斷發生快取失誤。
Description
本揭示文件有關一種資料處理裝置與其資料存取電路,尤指一種可將快取記憶體設定為緊耦合記憶體的資料處理裝置與其資料存取電路。
處理器能於一到數個週期內存取快取(cache),因而快取常用於存放處理器需要的資料副本,以提昇整體的運算效能。不過,快取的儲存空間有限,在某些情況下重要的資料會被取代回(evicted)主記憶體中,因而處理器需要耗費額外的時間自主記憶體取回該筆資料。並且,使用者無法得知快取的位址,無法直接存取快取中的資料以觀察程式的執行狀態。
緊耦合記憶體(tightly coupled memory)同樣為處理器能於一到數個週期內存取的儲存裝置,使其適合用於存放對於處理時間有嚴格要求的程式碼,或是存放需要頻繁存取的資料。緊耦合記憶體的儲存空間會被應射至固定位址區間,因而其中的資料可輕易被使用者存取且在一般情況下不會被取代。不過,因為位址固定的緣故,緊耦合記憶體的使用彈性低於快取。
本揭示文件提供一種資料處理裝置,其包含記憶體電路和資料存取電路。記憶體電路包含用於儲存資料的多個快取路。響應於致能訊號的第一邏輯狀態,若存取要求的位址的標籤相同於多個快取路的對應標籤,資料存取電路判斷發生快取命中。響應於致能訊號的第二邏輯狀態,若位址位於資料存取電路指定的一或多個預設位址區間,資料存取電路判斷發生快取命中,而若位址位於一或多個預設位址區間之外,資料存取電路判斷發生快取失誤。
本揭示文件提供一種資料存取電路,其用於耦接記憶體電路以存取記憶體電路。記憶體電路包含用於儲存資料的多個快取路。資料存取電路用於執行以下運作:響應於致能訊號的第一邏輯狀態,若存取要求的位址的標籤相同於多個快取路的對應標籤,判斷發生快取命中;響應於致能訊號的第二邏輯狀態,若位址位於資料存取電路指定的一或多個預設位址區間,判斷發生快取命中;響應於致能訊號的第二邏輯狀態,若位址位於一或多個預設位址區間之外,判斷發生快取失誤。
上述實施例的優點之一,是可兼顧程式開發的彈性與產品的運算效率。
上述實施例的另一優點,是提供讀取快取中檔案的簡便方法。
以下將配合相關圖式來說明本揭示文件的實施例。在圖式中,相同的標號表示相同或類似的元件或方法流程。
第1圖為依據本揭示文件一實施例的資料處理系統100簡化後的功能方塊圖。資料處理系統100包含運算電路110、快取120和主記憶體130,其中運算電路110和快取120透過資料傳輸介面互相耦接,且快取120與主記憶體130也透過資料傳輸介面互相耦接。運算電路110於其運作過程中會發出多個讀取存取指令以擷取所需的資料。若發生快取命中(cache hit),代表運算電路110欲擷取的資料是儲存於快取120當中,運算電路110會直接從快取120中獲取資料,以避免存取主記憶體130的時間懲罰(time penalty)。
當運算電路110發出寫入存取要求時,若寫入存取要求的位址位於可快取(cacheable)區間且發生快取命中,則運算電路110會直接更新快取120中的資料。若寫入存取要求的位址位於寫入(write-through)區間,則主記憶體130中的對應資料也會一併被更新。若寫入存取要求的位址位於寫回(write-back)區間,則主記憶體130暫時不會被更新,快取120中已更新的快取列(cache line)會被給予骯髒標記。在後續運作中,當具有骯髒標記的快取列被選中而需替換其儲存的資料時,有骯髒標記的快取列所儲存的資料才會被用於更新主記憶體130。
在本實施例中,快取120可以是用於儲存資料和指令的統一快取(unified cache),也可以由資料快取(data cache)和指令快取(instruction cache)來共同實現。運算電路110可以用一或多核心的處理器、數位訊號處理器(DSP)、現場可程式閘陣列(FPGA)等等來實現。
第2圖為依據本揭示文件一實施例的快取120簡化後的功能方塊圖。快取120包含互相耦接的資料存取電路210與記憶體電路220。資料存取電路210用於接收運算電路110發出的讀取存取要求的位址,並依據接收到的位址自記憶體電路220中擷取資料,且將資料回傳至運算電路110。當運算電路110發出寫入存取要求時,資料存取電路210用於自運算電路110接收寫入資料,並依據寫入存取要求的位址將寫入資料儲存於記憶體電路220。
記憶體電路220有許多種實現方式,為方便說明,本揭示文件假設記憶體電路220為多路組相聯(multiple-way set association)。詳細而言,記憶體電路220包含標籤記憶體(tag RAM)222和資料記憶體(data RAM)224。資料存取電路210會比較存取要求的位址的標籤與標籤記憶體222中儲存的標籤,再依據比較結果在資料記憶體224中搜尋對應的快取列(cache line)以存取其中的資料。
第3圖為資料存取電路210搜尋目標快取列的運作示意圖。如第3圖所示,存取要求的位址300包含標籤312、索引(index)314和位元組偏置(byte offset)316等等欄位。標籤記憶體222包含四個快取路(cache way),且標籤記憶體222的每路儲存有多個標籤。資料記憶體224也包含四個快取路,且資料記憶體224的每路包含多個用於儲存資料的快取列。另外,由於記憶體電路220被配置為多路組相聯,記憶體電路220包含有多個快取組(cache set) 320。每個快取組320包含標籤記憶體222每個快取路的一個標籤,且包含資料記憶體224每個快取路的一個快取列,亦即快取組320包含四個標籤和四個快取列。快取組320中的多個標籤分別關聯於快取組320中的多個快取列,而當快取組320中的任一標籤被判斷為與存取要求的標籤312相同時,即代表發生快取命中,且關聯的快取列會被存取。
詳細而言,存取要求的索引314會被用於辨識出一特定的快取組320。接著,該快取組320中的多個標籤會分別被傳輸至多個比較器330,以個別與存取要求的標籤312進行比較。路徑選擇器340會依據多個比較器330的輸出指示多工器350選擇該快取組320中的一個快取列並輸出其儲存的資料360。此時,若快取組320中的任一標籤相同於存取要求的標籤312,路徑選擇器340會透過線路370通知運算電路110發生快取命中。在一些實施例中,比較器330、路徑選擇器340和多工器350可以設置於資料存取電路210中。
由於快取列通常具有多個位元組的儲存容量(例如位元組0、位元組1、位元組2和位元組3),存取要求的位元組偏置316可用於指定資料360中的一位元組(例如位元組3)。在位址300對應於讀取存取要求的情況下,被指定的位元組會透過線路380輸出至運算電路110。另一方面,在位址300對應於寫入存取要求的情況下,快取組320可以透過線路390接收來自運算電路110的寫入資料,並將寫入資料儲存於其快取列。
第4圖為依據本揭示文件一實施例的資料存取電路210簡化後的功能方塊圖。資料存取電路210包含第一邏輯電路410、第二邏輯電路420、第三邏輯電路430、多個比較器440和多工器450,但本揭示文件不以此為限。在一些實施例中,比較器440和多工器450亦可用不同於資料存取電路210的電路來實現。第一邏輯電路410和第二邏輯電路420用於依據存取要求的位址300,檢視標籤記憶體222的多個快取路10[0]~10[3]儲存的標籤,以搜尋資料記憶體224的多個快取路20[0]~20[3]中關聯的快取列。
當致能訊號EN具有第一邏輯狀態(例如邏輯0)時,第一邏輯電路410和第二邏輯電路420會響應於存取要求,將標籤記憶體222和資料記憶體224操作為快取記憶體。亦即透過具有任意位址的存取要求都可存取標籤記憶體222和資料記憶體224。另一方面,當致能訊號EN具有第二邏輯狀態(例如邏輯1)時,第一邏輯電路410和第二邏輯電路420會響應存取要求,將標籤記憶體222和資料記憶體224操作為緊耦合記憶體(tightly coupled memory)。亦即只有透過具有特定位址的存取要求才可存取標籤記憶體222和資料記憶體224。以下將首先說明當致能訊號EN具有第一邏輯狀態時資料存取電路210的運作,並假設致能訊號EN的第一邏輯狀態代表致能訊號EN為邏輯0。
第5圖為依據本揭示文件一實施例的第一邏輯電路410的功能方塊圖。請同時參考第4圖與第5圖,首先資料存取電路210會依據位址300的索引314辨識出標籤記憶體222和資料記憶體224中的一目標快取組。多工器440分別關聯於標籤記憶體222的快取路10[0]~10[3],且多工器440會比較位址300的標籤312與快取路10[0]~10[3]中屬於目標快取組的標籤。多工器440輸出至第一邏輯電路410的比較訊號Ma[0]~Ma[3]分別對應於快取路10[0]~10[3]的比較結果。例如,若快取路10[0]中屬於目標快取組的標籤不同於位址300的標籤312,比較訊號Ma[0]會被設為邏輯0,而若快取路10[0]中屬於目標快取組的標籤相同於位址300的標籤312,比較訊號Ma[0]會被設為邏輯1,依此類推。
第一邏輯電路410包含多個第一及閘31、多個第二及閘32與多個第一或閘41。多個第一及閘31用於接收致能訊號EN的反相訊號,且用於分別接收比較訊號Ma[0]~Ma[3]。在致能訊號EN為邏輯0的情況下,多個第一及閘31的輸出會分別相同於比較訊號Ma[0]~Ma[3]。另外,由於多個第二及閘32也接收到致能訊號EN,多個第二及閘32會輸出邏輯0。每個第一或閘41用於接收一對應第一及閘31的輸出與一對應第二及閘32的輸出,因而多個第一或閘41的輸出會分別相同於比較訊號Ma[0]~Ma[3]。多個第一或閘41的輸出會被作為多工訊號MUX輸出至多工器450,以指示多工器450自快取路20[0]~20[3]選擇屬於目標快取組的快取列的其中之一,並輸出該快取列中的資料。如前所述,位址300的位元組偏置316用於選擇資料中的特定位元組以提供至運算電路110,在此不再贅述。
第6圖為依據本揭示文件一實施例的第二邏輯電路420的功能方塊圖。請同時參考第4圖與第6圖,第二邏輯電路420包含第三及閘33、第四及閘34、第二或閘42和第三或閘43,其中第二或閘42用於接收比較訊號Ma[0]~Ma[3],且將比較訊號Ma[0]~Ma[3]的或運算結果輸出至第四及閘34。第三及閘33和第四及閘34皆用於接收致能訊號EN,因而在致能訊號EN為邏輯0的情況下,第三及閘33會輸出邏輯0,而第四及閘34的輸出會相同於比較訊號Ma[0]~Ma[3]的或運算結果。第三或閘43用於接收第三及閘33和第四及閘34的輸出,因而第三或閘43會以比較訊號Ma[0]~Ma[3]的或運算結果作為命中訊號HIT,其中命中訊號HIT用於通知運算電路110在快取120內發生快取命中或快取失誤。例如,若發生快取失誤則命中訊號HIT會被設為邏輯0,而若發生快取命中則命中訊號HIT會被設為邏輯1。
總而言之,當致能訊號EN為邏輯0時,若位址300的標籤312相同於快取路10[0]~10[3]中的一對應標籤,資料存取電路210會判斷發生快取命中。反之,資料存取電路210會判斷發生快取失誤。以下將接著說明當致能訊號EN具有第二邏輯狀態時資料存取電路210的運作,並假設致能訊號EN的第二邏輯狀態代表致能訊號EN為邏輯1。
請參考第4圖與第5圖,當致能訊號EN為邏輯1時,第一及閘31會因接收到致能訊號EN的反相訊號而輸出邏輯0,亦即第一及閘31會遮蔽比較訊號Ma[0]~Ma[3]。第二及閘32用於分別接收多個選擇訊號W[0]~W[3]。選擇訊號W[0]~W[3]是藉由解碼標籤312中的多個對應位元而產生。在一些實施例中,這些對應位元的數量可以由以下的《公式1》表示,其中M為對應位元的數量,而N為快取路或選擇訊號的數量。
《公式1》
在第5圖的實施例中,資料存取電路210解碼標籤312中的兩個位元而得到四個選擇訊號W[0]~W[3]。例如,若位址300包含32位元(bit[31:0]),且第14位元至第32位元(bit[31:13])為標籤312,則資料存取電路210可以解碼第14位元至第15位元(bit[14:13])。選擇訊號W[0]~W[3]其中之一的邏輯值會不同於其它者。例如,若被解碼的位元為00,則選擇訊號W[0]為邏輯1而選擇訊號W[1]~W[3]為邏輯0。又例如,若被解碼的位元為01,則選擇訊號W[1]為邏輯1而選擇訊號W[0]、W[2]~W[3]為邏輯0。又例如,若被解碼的位元為10,則選擇訊號W[2]為邏輯1而選擇訊號W[0]~W[1]、W[3]為邏輯0,依此類推。
第三邏輯電路430產生的位址判斷訊號RAN會傳送至第二及閘32。第三邏輯電路430包含分別儲存位址上限值Add1和位址下限值Add2的暫存器431和432,且第三邏輯電路430用於判斷位址300是否位於位址上限值Add1和位址下限值Add2之間。若否,第三邏輯電路430會將位址判斷訊號RAN設為邏輯0。若是,第三邏輯電路430會將位址判斷訊號RAN設為邏輯1。然而,本揭示文件不以此為限,第三邏輯電路430可以產生不同的第一邏輯狀態和第二邏輯狀態以分別指示位址300位於和不位於位址上限值Add1與位址下限值Add2之間,而第一邏輯狀態和第二邏輯狀態各自的數值可依據實際電路設計決定。因此,若判斷訊號RAN為邏輯0,第二及閘32會遮蔽選擇訊號W[0]~W[3];若判斷訊號RAN為邏輯1,多個第二及閘32的輸出會分別相同於選擇訊號W[0]~W[3],且多個第一或閘41的輸出也會分別相同於選擇訊號W[0]~W[3]。
總而言之,當致能訊號EN為邏輯0時,第一邏輯電路410會以比較訊號Ma[0]~Ma[3]作為多工訊號MUX;當致能訊號EN與判斷訊號RAN為邏輯1時,第一邏輯電路410會以選擇訊號W[0]~W[3]作為多工訊號MUX,以指定存取快取路20[0]~20[3]中對應一者的資料。
請參考第4圖和第6圖,當致能訊號EN為邏輯1時,判斷訊號RAN會通過第三及閘33而傳遞至第二或閘43,且第四及閘34會遮蔽比較訊號M[0]~M[3]的或運算結果。因此,當判斷訊號RAN為邏輯1時,資料存取電路210會判斷發生快取命中(命中訊號HIT為邏輯1);當判斷訊號RAN為邏輯0時,資料存取電路210會判斷發生快取失誤(命中訊號為邏輯0)。
綜上所述,於程式的開發階段中,由於指令與資料的存放位址尚未固定,使用者可透過資料存取電路210將記憶體電路220操作為快取記憶體以獲得適合所有位址區間的加速功能。當使用者確定欲加速的程式碼或資料的存放位址時,使用者可透過資料存取電路210將記憶體電路220操作為緊耦合記憶體,以專注於加速預設位址區間(亦即位址上限值Add1和位址下限值Add2所定義的區間)。
當傳統的快取控制電路響應於位址位於寫回區間的寫入存取要求時,若發生快取失誤,主記憶體中的對應資料會先被載入快取,接者快取控制電路再依據快取命中的規則更新快取。在一些實施例中,當資料存取電路210響應位址位於寫回區間的寫入存取要求時,即使發生快取失誤,資料存取電路210不會將主記憶體130中的資料載入記憶體電路220,也不會將對應於寫入存取要求的寫入資料儲存於記憶體電路220。反之,資料存取電路210會將寫入資料直接寫回主記憶體130。亦即,記憶體電路220中的資料不會被隨意取代,因而能進一步提升加速效率。
另外,由於使用者無法指定讀取傳統快取記憶體的特定儲存空間,使得使用者難以獲得程式運行過程中的暫存檔以進行除錯。藉由上述多個實施例中的資料存取電路210,使用者可在程式的執行途中將記憶體電路220自快取記憶體切換為緊耦合記憶體。如此一來,使用者便可於程式執行過程中透過指定位址輕易讀取快取中的檔案。
第7圖為依據本揭示文件另一實施例的資料存取電路210簡化後的示意圖。在本實施例中,資料存取電路210包含第一邏輯電路710、第二邏輯電路720與第三邏輯電路730,且致能訊號EN包含多個子致能訊號EN[0]~EN[3]。第8圖為依據本揭示文件一實施例的第一邏輯電路710的功能方塊圖。如第8圖所示,子致能訊號EN[0]~EN[3]的反相訊號分別傳遞至多個第一及閘31,且子致能訊號EN[0]~EN[3]分別傳遞至多個第二及閘32。
請再次參考第7圖,第三邏輯電路730包含多個暫存器431和多個暫存器432。多個暫存器431分別儲存多個位址上限值Add1、Add3、Add5和Add7,多個暫存器432分別儲存多個位址下限值Add2、Add4、Add6和Add8,其中位址上限值Add1、Add3、Add5和Add7分別與位址下限值Add2、Add4、Add6和Add8定義出了四個位址區間。第三邏輯電路430提供的位址判斷訊號RAN包含多個子位址判斷訊號RAN[0]~RAN[3],其中子位址判斷訊號RAN[0]~RAN[3]分別用於指示存取要求的位址300是否位於上述四個位址區間。在一些實施例中,這四個位址區間互不重疊。
例如,若位址300位於位址上限值Add1和位址下限值Add2定義的位址區間,子位址判斷訊號RAN[0]會被設為邏輯1;反之,子位址判斷訊號RAN[0]會被設為邏輯0。又例如,若位址300位於位址上限值Add3和位址下限值Add4定義的位址區間,子位址判斷訊號RAN[1]會被設為邏輯1;反之,子位址判斷訊號RAN[0]會被設為邏輯0,依此類推。
第9圖為依據本揭示文件一實施例的第二邏輯電路720的功能方塊圖。第二邏輯電路720相似於第6圖的第二邏輯電路420,差異在於,第二邏輯電路720還包含第四或閘44和第五或閘45。第四或閘44用於接收子位址判斷訊號RAN[0]~RAN[3],且第三及閘33用於接收第四或閘44的輸出。第五或閘45用於接收子致能訊號EN[0]~EN[3],且第三及閘33用於接收第五或閘45的輸出,第四及閘34用於接收第五或閘45的反相輸出。
在本實施例中,若致能訊號EN具有第一邏輯狀態(例如子致能訊號EN[0]~EN[3]皆為邏輯0),資料讀取電路210會將記憶體電路220操作為快取記憶體。若致能訊號EN具有第二邏輯狀態(例如子致能訊號EN[0]~EN[3]的其中之一為邏輯1),資料讀取電路210會將記憶體電路220操作為緊耦合記憶體。另外,當存取要求的位址300不位於上述四個位址區間時,判斷訊號RAN會具有第一邏輯狀態(例如子判斷訊號RAN[0]~RAN[3]皆為邏輯0);當存取要求的位址300位於上述四個位址區間的其中之一時,判斷訊號RAN會具有第二邏輯狀態(例如子判斷訊號RAN[0]~RAN[3]的其中之一為邏輯1),且資料存取電路210會依據選擇訊號W[0]~W[3]產生多工訊號MUX。
由上述可知,第7圖的資料存取電路210可以將記憶體電路220操作為具有多個互相不重疊之位址區間的緊耦合記憶體,以增加其應用彈性。前述第4圖的資料存取電路210的其餘連接方式、元件、實施方式以及優點,皆適用於第7圖的資料存取電路210,為簡潔起見,在此不重複贅述。
在說明書及申請專利範圍中使用了某些詞彙來指稱特定的元件。然而,所屬技術領域中具有通常知識者應可理解,同樣的元件可能會用不同的名詞來稱呼。說明書及申請專利範圍並不以名稱的差異做為區分元件的方式,而是以元件在功能上的差異來做為區分的基準。在說明書及申請專利範圍所提及的「包含」為開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」在此包含任何直接及間接的連接手段。因此,若文中描述第一元件耦接於第二元件,則代表第一元件可通過電性連接或無線傳輸、光學傳輸等信號連接方式而直接地連接於第二元件,或者通過其他元件或連接手段間接地電性或信號連接至該第二元件。
另外,除非說明書中特別指明,否則任何單數格的用語都同時包含複數格的涵義。
以上僅為本揭示文件的較佳實施例,凡依本揭示文件請求項所做的均等變化與修飾,皆應屬本揭示文件的涵蓋範圍。
100:資料處理系統
110:運算電路
120:快取
130:主記憶體
210:資料存取電路
220記憶體電路
222:標籤記憶體
224:資料記憶體
300:位址
312:標籤
314:索引
316:位元組偏置
320:快取組
330,440:比較器
340:路徑選擇器
350,450:多工器
360:資料
370,380,390:線路
410,710:第一邏輯電路
420,720:第二邏輯電路
430,730:第三邏輯電路
431,432:暫存器
Add1,Add3,Add5,Add7:位址上限值
Add2,Add4,Add6,Add8:位址下限值
Ma[0]~Ma[3] :比較訊號
EN:致能訊號
EN[0]~EN[3]:子致能訊號
RAN:位址判斷訊號
RAN[0]~ RAN[3]:子位址判斷訊號
W[0]~W[3]:選擇訊號
10[0]~10[3],20[0]~20[3]:快取路
HIT:命中訊號
31:第一及閘
32:第二及閘
33:第三及閘
34:第四及閘
41:第一或閘
42:第二或閘
43:第三或閘
44:第四或閘
45:第五或閘
第1圖為依據本揭示文件一實施例的資料處理系統簡化後的功能方塊圖。
第2圖為依據本揭示文件一實施例的快取簡化後的功能方塊圖。
第3圖為資料存取電路搜尋目標快取列的運作示意圖。
第4圖為依據本揭示文件一實施例的資料存取電路簡化後的功能方塊圖。
第5圖為依據本揭示文件一實施例的第一邏輯電路的功能方塊圖。
第6圖為依據本揭示文件一實施例的第二邏輯電路的功能方塊圖。
第7圖為依據本揭示文件另一實施例的資料存取電路簡化後的功能方塊圖。
第8圖為依據本揭示文件另一實施例的第一邏輯電路的功能方塊圖。
第9圖為依據本揭示文件另一實施例的第二邏輯電路的功能方塊圖。
210:資料存取電路
222:標籤記憶體
224:資料記憶體
300:位址
312:標籤
314:索引
316:位元組偏置
410:第一邏輯電路
420:第二邏輯電路
430:第三邏輯電路
431,432:暫存器
440:比較器
450:多工器
Ma[0]~Ma[3]:比較訊號
EN:致能訊號
RAN:位址判斷訊號
W[0]~W[3]:選擇訊號
10[0]~10[3],20[0]~20[3]:快取路
HIT:命中訊號
Claims (10)
- 一種資料處理裝置,包含: 一記憶體電路,包含用於儲存資料的多個快取路(cache way);以及 一資料存取電路; 其中響應於一致能訊號的一第一邏輯狀態,若一存取要求的一位址的一標籤(tag)相同於該多個快取路的一對應標籤,該資料存取電路判斷發生一快取命中(cache hit); 其中響應於該致能訊號的一第二邏輯狀態,若該位址位於該資料存取電路指定的一或多個預設位址區間,該資料存取電路判斷發生該快取命中,而若該位址位於該一或多個預設位址區間之外,該資料存取電路判斷發生一快取失誤(cache miss)。
- 如請求項1所述之資料處理裝置,其中,該多個快取路的每一者包含一快取列(cache line),且該資料處理裝置另包含: 多個比較器,分別關聯於該多個快取路,其中每個比較器用於比較該位址的該標籤與該多個快取路的對應一者的一標籤; 其中響應於該致能訊號的該第一邏輯狀態,該資料存取電路以該多個比較器的輸出作為一多工訊號,該多工訊號用於指定該多個快取路的其中之一的該快取列,以使該快取列的資料輸出至一運算電路; 其中響應於該致能訊號的該第二邏輯狀態,若該位址位於該一或多個預設位址區間,該資料存取電路依據該位址中的多個對應位元產生該多工訊號。
- 如請求項2所述之資料處理裝置,其中,該資料存取電路包含: 一第一邏輯電路,耦接於該多個比較器,用於響應於該致能訊號的該第一邏輯狀態,以該多個比較器的輸出作為該多工訊號,且用於響應於該致能訊號的該第二邏輯狀態,於該位址位於該一或多個預設位址區間時依據該位址中的該多個對應位元產生該多工訊號;以及 一第二邏輯電路,用於響應於該致能訊號的該第一邏輯狀態,依據該多個比較器的輸出的一或運算結果判斷發生該快取命中或該快取失誤,並用於響應於該致能訊號的該第二邏輯狀態,依據該位址判斷發生該快取命中或該快取失誤。
- 如請求項3所述之資料處理裝置,其中,該第一邏輯電路包含: 多個第一及閘,用於接收該致能訊號的該反相訊號,且用於分別接收該多個比較器的輸出; 多個第二及閘,用於接收該致能訊號和一位址判斷訊號,且用於分別接收對應該位址中的該多個對應位元的多個選擇訊號,其中該位址判斷訊號的一第一邏輯狀態和一第二邏輯狀態分別代表該位址位於該一或多個預設位址區間之外和該位址位於該一或多個預設位址區間;以及 多個第一或閘,分別用於接收該多個第一及閘的輸出,並分別用於接收該多個第二及閘的輸出,其中該資料存取電路以該多個第一或閘的輸出作為該多工訊號。
- 如請求項4所述之資料處理裝置,其中,該第二邏輯電路包含: 一第二或閘,用於接收該多個比較器的輸出以產生該多個比較器的輸出的該或運算結果; 一第三及閘,用於接收該致能訊號和該位址判斷訊號; 一第四及閘,用於接收該致能訊號的一反相訊號和該第二或閘的輸出;以及 一第三或閘,用於接收該第三及閘和該第四及閘的輸出,並用於輸出一命中訊號,其中當該命中訊號具有一第一邏輯值時,該資料存取電路判斷發生該快取失誤,當該命中訊號具有一第二邏輯值時,該資料存取電路判斷發生該快取命中。
- 如請求項4所述之資料處理裝置,其中,該位址判斷訊號包含多個子位址判斷訊號,該多個第二及閘分別用於接收該多個子位址判斷訊號, 其中該位址判斷訊號的該第一邏輯狀態為該多個子位址判斷訊號皆為一第一邏輯值,該位址判斷訊號的該第二邏輯狀態為該多個子位址判斷訊號的其中之一為一第二邏輯值, 其中該致能訊號包含多個子致能訊號,該多個第一及閘分別用於接收該多個子致能訊號的多個反相訊號,該多個第二及閘分別用於接收該多個子致能訊號, 其中該致能訊號的該第一邏輯狀態為該多個子致能訊號皆為該第一邏輯值,該致能訊號的該第二邏輯狀態為該多個子致能訊號的其中之一為該第二邏輯值。
- 如請求項6所述之資料處理裝置,其中,該第二邏輯電路包含: 一第四或閘,用於接收該位址判斷訊號; 一第五或閘,用於接收該致能訊號; 一第二或閘,用於接收該多個比較器的輸出以產生該多個比較器的輸出的該或運算結果 一第三及閘,用於接收該第四或閘的輸出和該第五或閘的輸出; 一第四及閘,用於接收該第二或閘的輸出和該第五或閘的輸出;以及 一第三或閘,用於接收該第三及閘和該第四及閘的輸出,並用於輸出一命中訊號,其中當該命中訊號具有該第一邏輯值時,該資料存取電路判斷發生該快取失誤,當該命中訊號具有該第二邏輯值時,該資料存取電路判斷發生該快取命中。
- 一種資料存取電路,用於耦接一記憶體電路以存取該記憶體電路,其中該記憶體電路包含用於儲存資料的多個快取路,且該資料存取電路用於執行以下運作: 響應於一致能訊號的一第一邏輯狀態,若一存取要求的一位址的一標籤相同於該多個快取路的一對應標籤,判斷發生一快取命中; 響應於該致能訊號的一第二邏輯狀態,若該位址位於該資料存取電路指定的一或多個預設位址區間,判斷發生該快取命中;以及 響應於該致能訊號的該第二邏輯狀態,若該位址位於該一或多個預設位址區間之外,判斷發生一快取失誤。
- 如請求項8所述之資料存取電路,其中,該多個快取路的每一者包含一快取列,該資料存取電路用於耦接於分別關聯於該多個快取路的多個比較器,每個比較器用於比較該位址的該標籤與該多個快取路的對應一者的一標籤,其中該資料存取電路還用於執行以下運作: 響應於該致能訊號的該第一邏輯狀態,以該多個比較器的輸出作為一多工訊號,其中該多工訊號用於指定該多個快取路的其中之一的該快取列,以使該快取列的資料輸出至一運算電路;以及 響應於該致能訊號的該第二邏輯狀態,若該位址位於該一或多個預設位址區間,依據該位址中的多個對應位元產生該多工訊號。
- 如請求項9所述之資料存取電路,包含: 一第一邏輯電路,耦接於該多個比較器,用於響應於該致能訊號的該第一邏輯狀態,以該多個比較器的輸出作為該多工訊號,且用於響應於該致能訊號的該第二邏輯狀態,於該位址位於該一或多個預設位址區間時依據該位址中的該多個對應位元產生該多工訊號;以及 一第二邏輯電路,用於響應於該致能訊號的該第一邏輯狀態,依據該多個比較器的輸出的一或運算結果判斷發生該快取命中或該快取失誤,並用於響應於該致能訊號的該第二邏輯狀態,依據該位址判斷發生該快取命中或該快取失誤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109145841A TWI749960B (zh) | 2020-12-23 | 2020-12-23 | 資料處理裝置與其資料存取電路 |
US17/489,945 US11762772B2 (en) | 2020-12-23 | 2021-09-30 | Data processing apparatus and data accessing circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109145841A TWI749960B (zh) | 2020-12-23 | 2020-12-23 | 資料處理裝置與其資料存取電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI749960B true TWI749960B (zh) | 2021-12-11 |
TW202225980A TW202225980A (zh) | 2022-07-01 |
Family
ID=80681305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109145841A TWI749960B (zh) | 2020-12-23 | 2020-12-23 | 資料處理裝置與其資料存取電路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11762772B2 (zh) |
TW (1) | TWI749960B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060095680A1 (en) * | 2004-11-02 | 2006-05-04 | Gi-Ho Park | Processor with cache way prediction and method thereof |
TW201329994A (zh) * | 2011-09-30 | 2013-07-16 | Intel Corp | 支援近記憶體及遠記憶體存取的記憶體通道 |
TW201727490A (zh) * | 2016-01-29 | 2017-08-01 | 國立交通大學 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003044358A (ja) * | 2001-07-31 | 2003-02-14 | Mitsubishi Electric Corp | キャッシュメモリ制御装置 |
US6768358B2 (en) * | 2001-08-29 | 2004-07-27 | Analog Devices, Inc. | Phase locked loop fast power up methods and apparatus |
CN105144120B (zh) * | 2013-03-28 | 2018-10-23 | 慧与发展有限责任合伙企业 | 基于存储器地址将来自高速缓存行的数据存储到主存储器 |
JP6273733B2 (ja) * | 2013-09-20 | 2018-02-07 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
GB2570474B (en) * | 2018-01-26 | 2020-04-15 | Advanced Risc Mach Ltd | Region fusing |
US10942851B2 (en) * | 2018-11-29 | 2021-03-09 | Intel Corporation | System, apparatus and method for dynamic automatic sub-cacheline granularity memory access control |
TWI719745B (zh) * | 2019-12-09 | 2021-02-21 | 瑞昱半導體股份有限公司 | 記憶體資料存取裝置及其方法 |
-
2020
- 2020-12-23 TW TW109145841A patent/TWI749960B/zh active
-
2021
- 2021-09-30 US US17/489,945 patent/US11762772B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060095680A1 (en) * | 2004-11-02 | 2006-05-04 | Gi-Ho Park | Processor with cache way prediction and method thereof |
TW201329994A (zh) * | 2011-09-30 | 2013-07-16 | Intel Corp | 支援近記憶體及遠記憶體存取的記憶體通道 |
TW201727490A (zh) * | 2016-01-29 | 2017-08-01 | 國立交通大學 | 具備標籤自動比對機制的標籤記憶體、快取系統及其快取方法 |
Also Published As
Publication number | Publication date |
---|---|
US11762772B2 (en) | 2023-09-19 |
US20220197801A1 (en) | 2022-06-23 |
TW202225980A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327077B2 (en) | Method and apparatus of parallel computing with simultaneously operating stream prefetching and list prefetching engines | |
US6356990B1 (en) | Set-associative cache memory having a built-in set prediction array | |
KR19980042268A (ko) | 데이터 처리 시스템 및 그 방법 | |
JP2009009571A (ja) | レベル2キャッシュ/ネスト・アドレスを変換する方法および装置 | |
US11868221B2 (en) | Multi-adaptive cache replacement policy | |
CN114297101A (zh) | 一种记录内存访问来源的方法及系统 | |
TWI749960B (zh) | 資料處理裝置與其資料存取電路 | |
JP7245842B2 (ja) | デバイスをデバッグするときにメタデータにアクセスするための装置及び方法 | |
CN112612728A (zh) | 缓存管理方法及装置、设备 | |
US9792213B2 (en) | Mitigating busy time in a high performance cache | |
US6378044B1 (en) | Method and system for cache replacement among configurable cache sets | |
KR20240072241A (ko) | 재참조 간격 예측 캐시 교체 정책을 위한 재참조 표시자 | |
CN116483743A (zh) | 数据高速缓存预取装置、方法及处理器 | |
CN114691542A (zh) | 数据处理装置与其数据存取电路 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
US11630772B1 (en) | Suppressing cache line modification | |
EP0335113A2 (en) | Single chip cache memory, and cache memory apparatus including a plurality of parallel connected single chip cache memories | |
TW202134884A (zh) | 資料寫入系統與方法 | |
JPH0981458A (ja) | データ処理システムにおけるキャッシュのアクセス方法 | |
KR19990068873A (ko) | 캐쉬 메모리 | |
JP2002091795A (ja) | キャッシュ制御装置 | |
JPS63228349A (ja) | バツフアメモリ装置 |