TWI465908B - 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 - Google Patents

用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 Download PDF

Info

Publication number
TWI465908B
TWI465908B TW101149054A TW101149054A TWI465908B TW I465908 B TWI465908 B TW I465908B TW 101149054 A TW101149054 A TW 101149054A TW 101149054 A TW101149054 A TW 101149054A TW I465908 B TWI465908 B TW I465908B
Authority
TW
Taiwan
Prior art keywords
cache memory
cache
order
column
data
Prior art date
Application number
TW101149054A
Other languages
English (en)
Other versions
TW201344435A (zh
Inventor
Ron Shalev
Yiftach Gilad
Shlomo Raikin
Igor Yanover
Stanislav Shwartsman
Raanan Sade
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201344435A publication Critical patent/TW201344435A/zh
Application granted granted Critical
Publication of TWI465908B publication Critical patent/TWI465908B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

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

Description

用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 版權聲明
此份專利文件之一部份揭露內容所含之物係受版權保護。版權人並不反對任何人對本專利文件或專利揭露內容做複製摹本,因其係發表於專利商標局專利檔案或紀錄中,然而,版權人在所有其他情況下係保有對版權的所有權利。
技術領域
於本文中所描述之主體大體上係有關運算之領域,並且尤其是有關用於實施在階層式快取設計中之快取記憶體之間的有效通訊的系統和方法。
發明背景
在背景部份中所論述的主體不應僅因為在背景部份中被提及便被認定為是先前技術。類似地,在背景部份中所提及的或是與此背景部份之主體相關聯的問題不應被認定為是之前已在先前技術中被認可。於此背景部份中之題材僅代表不同途徑,就其本身而言,其可亦對應於所 請求之主體。
傳統階層式快取設計會需要使來自一個較高階快取記憶體的快取記憶體請求首先配置一個緩衝器,接著再發出一個後續請求給所請求之特定快取列的那個較高階快取記憶體。之後,當所請求的快取列抵達時,它便被寫入到先前所配置的緩衝器中。當來自此較高階快取記憶體的請求被完成且所有的必需請求屬性都被回傳到現在已擁有所請求之快取列的所配置緩衝器時,此緩衝器便係已對一個置換操作做好準備,以使得現在被儲存在所配置緩衝器中的所請求快取列可被插入到或置換到較低階快取記憶體中。在這個階段,所請求的快取列並非係在於其所被請求之處的較低階快取記憶體中,而是,其係受到緩衝,並且現在已經準備好要被置放到較低階快取記憶體中。
一個排程器會在之後從處於備妥狀態中的所有現存緩衝器當中挑選出擁有所請求之快取列的所配置緩衝器,並且接著,所請求之快取列會經由一個置換動作(例如,對另一個快取列做逐出)抑或是一個插入動作,而從此緩衝器被移動到那個較低階快取記憶體中。所配置的這個緩衝器不再是被要求的,且因此其已被解配置,並且在這個階段,對請求此快取列的任何實體、操作或請求而言,所請求之快取列係可在那個較低階快取記憶體中取得。
由於將所請求之快取列置換或插入到較低階快取記憶體中的這個置換或插入操作必須使用一個自由的讀取和寫入埠來進行其插入動作,所以藉由此快取記憶體來 儲存和快取載入操作的所有其他快取記憶體都會被擱置,以釋放所需讀取和寫入埠,因而讓所請求的快取列能夠被插入到較低階快取記憶體中以續行處理。
用於從較高階快取記憶體取回快取列到於其所 被請求之處的較低階快取記憶體中的在傳統上所實施之協定苦於至少兩個主要的問題。其一,由於很長的緩衝生命期,對於此等請求所展現的會是很低的通量。其二,暴力的或受迫的讀取和寫入埠接管會降低效能,但仍在每個當下被需求。
因此,目前技術狀態係可受惠於如於本文中所述 的用於實施在階層式快取設計中之快取記憶體之間的有效通訊的系統和方法。
發明概要
依據本發明之一實施例,係特地提出一種積體電路,其包含:一個資料匯流排;與該資料匯流排做可通訊式介接的一個較低階快取記憶體;與該資料匯流排做可通訊式介接的一個較高階快取記憶體;與該資料匯流排介接的一或多個資料緩衝器,該一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別之該資料緩衝器之狀態的一或多個控制位元、和與該滿填快取列相關聯的一個位址;一或多個無資料緩衝器,該一或多個無資料緩衝器無法儲存滿填快取列,並且具有用來指出各別之該無資料緩衝器之狀態的一或多個控制位 元、和針對與各別之該無資料緩衝器相關聯的一個快取記憶體間傳輸列的一個位址;以及快取記憶體間傳輸邏輯,其會經由該資料匯流排而從該較高階快取記憶體請求該快取記憶體間傳輸列,並會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中。
依據本發明之另一實施例,係特地提出一種系 統,其包含:一個顯示單元;以及一個積體電路,其中該積體電路包含:一個資料匯流排;與該資料匯流排做可通訊式介接的一個較低階快取記憶體;與該資料匯流排做可通訊式介接的一個較高階快取記憶體;與該資料匯流排介接的一或多個資料緩衝器,該一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別之該資料緩衝器之狀態的一或多個控制位元、和與該滿填快取列相關聯的一個位址;一或多個無資料緩衝器,該一或多個無資料緩衝器無法儲存滿填快取列,並且具有用來指出各別之該無資料緩衝器之狀態的一或多個控制位元、和針對與各別之該無資料緩衝器相關聯的一個快取記憶體間傳輸列的一個位址;以及快取記憶體間傳輸邏輯,其會經由該資料匯流排而從該較高階快取記憶體請求該快取記憶體間傳輸列,並會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中。
依據本發明之又一實施例,係特地提出一種用在 積體電路中的方法,該方法包含下列步驟:接收在一個較低階快取記憶體處的一個快取未中,對該較低階快取記憶 體而言,對應資料在經由一個資料匯流排而與該較低階快取記憶體可通訊式介接的一個較高階快取記憶體處是可用的;反應於在該較低階快取記憶體處的該快取未中而從該較高階快取記憶體請求一個快取記憶體間傳輸列;針對該快取記憶體間傳輸列配置一個無資料緩衝器,其中該無資料緩衝器無法儲存該快取記憶體間傳輸列;以及藉由在該資料匯流排上接收該快取記憶體間傳輸列及將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中並繞過所有的快取緩衝器,將該快取記憶體間傳輸列從該較高階快取記憶體傳輸到該較低階快取記憶體。
100、200、300‧‧‧架構
105A~108A、105B~
108B‧‧‧ram單元群組
110A、110B‧‧‧代理器0
115A、115B‧‧‧代理器1
120A‧‧‧路徑0
120B‧‧‧路徑1
125‧‧‧迷你解碼器
130‧‧‧多工器(mux)
210‧‧‧第1階(L1)快取記憶體
215‧‧‧第2階(L2)快取記憶體
220A、220B‧‧‧位址
225A、225B‧‧‧控制
230‧‧‧資料區塊
234‧‧‧無資料緩衝器
235‧‧‧資料緩衝器
241‧‧‧特定位址寫入操作
242‧‧‧置換操作
243‧‧‧請求
244‧‧‧快取記憶體間傳輸列
301‧‧‧積體電路
305‧‧‧較低階快取記憶體
310‧‧‧較高階快取記憶體;L2 快取記憶體
315‧‧‧資料匯流排
325‧‧‧快取記憶體間傳輸邏輯
465‧‧‧通訊匯流排
470、670‧‧‧週邊裝置
475‧‧‧介面
480‧‧‧顯示單元
495、640、732、734、832、
834、1140‧‧‧記憶體
496、610、615、770、780、870、880、1010、1215‧‧‧處理器
499、600、700、800‧‧‧系統
500‧‧‧方法
505~535‧‧‧方塊
620‧‧‧圖形記憶體控制器集線器(GMCH)
645‧‧‧顯示器
650‧‧‧輸入/輸出控制器集線器(ICH)
660‧‧‧外部圖形裝置
695‧‧‧前側匯流排(FSB)
714、814‧‧‧輸入/輸出(I/O)裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋
720‧‧‧第二匯流排
722‧‧‧鍵盤和/或滑鼠
724‧‧‧音訊輸入/輸出(I/O)
727‧‧‧通訊裝置
728‧‧‧儲存體單元
730‧‧‧指令/碼和資料
738‧‧‧高效能圖形電路
739‧‧‧高效能圖形介面
750、876、878、886、888、894、898‧‧‧點對點(P-P)介面
752、754‧‧‧P-P介面
772、782‧‧‧記憶體控制器單元;IMC
776、778、786、788‧‧‧點對點(P-P)介面/點對點介面電路
790、890‧‧‧晶片組
794、798‧‧‧點對點介面電路
796、896‧‧‧介面
815‧‧‧舊有輸入/輸出(I/O)裝置
850、852、854‧‧‧點對點互連
872、882‧‧‧控制邏輯(CL)
901‧‧‧書寫板運算裝置
902‧‧‧手持式智慧型電話
903‧‧‧觸控式螢幕介面
904‧‧‧經整合處理器
1000‧‧‧方塊圖
1020‧‧‧音訊子系統
1030‧‧‧顯示子系統
1032‧‧‧顯示介面
1040‧‧‧輸入/輸出(I/O)控制器
1050‧‧‧電力管理
1060‧‧‧記憶體子系統
1070‧‧‧連接性
1072‧‧‧巢格連接性
1074‧‧‧無線連接性
1080‧‧‧週邊連接
1082‧‧‧至
1084‧‧‧由
1110‧‧‧硬體或軟體模型
1120‧‧‧模擬軟體
1130‧‧‧儲存媒體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧製造設施
1205‧‧‧程式
1210‧‧‧仿擬邏輯
1302‧‧‧高階語言
1304‧‧‧x86編譯器
1306‧‧‧x86二元碼
1308‧‧‧替代指令集編譯器
1310‧‧‧替代指令集二元碼
1312‧‧‧指令轉換器
1314‧‧‧不具有一個x86指令集核心的處理器
1316‧‧‧具有至少一個x86指令集核心的處理器
係藉由範例方式,而非限制方式,來對數個實施 例作例示,藉由參考下文中之詳細說明並配合圖式而加以考量,係可對這些實施例獲得更為完整的瞭解,在這些圖式中:圖1例示出一個示範架構,一些實施例可依據此架構而操作;圖2例示出一個替代示範架構,一些實施例可依據此架構而操作;圖3例示出另一個替代示範架構,一些實施例可依據此架構而操作;圖4示出對於一個系統的圖形表示,一些實施例可依據此系統而操作、安裝、整合、或組配;圖5是一個流程圖,其例示出用於依據所描述的 一些實施例而實施在階層式快取設計中之快取記憶體之間的有效通訊的一種方法;圖6是依據一個實施例的一個電腦系統之方塊圖;圖7是依據一個實施例的一個電腦系統之方塊圖;圖8是依據一個實施例的一個電腦系統之方塊圖;圖9繪示出一個書寫板運算裝置和一個手持式智慧型電話,其各如依據此等實施例所描述地具有整合在內的一個電路;圖10是當中有使用觸控式螢幕介面連接器的書寫板運算裝置、智慧型電話、或其他行動裝置的一個實施例之方塊圖;圖11是依據一個實施例的一個IP核心發展系統的方塊圖;圖12例示出依據一個實施例的一個架構仿擬系統;並且圖13例示出依據一個實施例的用來翻譯指令的一個系統。
較佳實施例之詳細說明
於本文中所描述的是用來實施在階層式快取設計中之快取記憶體之間的有效通訊的數個系統和方法。例 如,在一個實施例中,此種構件可包括具有一個資料匯流排的一個積體電路;與此資料匯流排做可通訊式介接的一個較低階快取記憶體;與此資料匯流排做可通訊式介接的一個較高階快取記憶體;一或多個資料緩衝器和一或多個無資料緩衝器。在這樣一個實施例中的這些資料緩衝器係與資料匯流排介接,並且這一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別資料緩衝器之狀態的一或多個控制位元、以及與此滿填快取列相關聯的一個位址。在這樣一個實施例中的無資料緩衝器不具有儲存滿填快取列的能力,其具有用來指出各別無資料緩衝器之狀態的一或多個控制位元以及針對與各別無資料緩衝器相關聯之快取記憶體間傳輸列的一個位址。在這樣一個實施例中,快取記憶體間傳輸邏輯係用來經由資料匯流排而從較高階快取記憶體請求快取記憶體間傳輸列,並係用於進一步將快取列從資料匯流排寫入到較低階快取記憶體中。
一般而言,較靠近CPU的記憶體可較快地被取 用。CPU內的記憶體可被稱為是快取記憶體,且其可以是可在不同階層階級被取用的,例如第1階(Level 1,L1)快取記憶體(L1快取記憶體)和第2階(Level 2,L2)快取記憶體(L2快取記憶體)。系統記憶體,例如與主機板耦接的記憶體模組,也可係可用的,例如,與CPU分開但可被CPU取用的外部可用記憶體可被稱為是,例如,晶片外快取記憶體或是第3階(Level 3,L3)快取記憶體(L3快取記憶 體),以此類推,然而,這並非永遠一致的,因為第三階層階級的快取記憶體(例如,L3快取記憶體)可係在晶片上或「在晶粒上(on-die)」,並且因此是在CPU之內部。
CPU快取記憶體,例如L1快取記憶體,係由電腦 的中央處理單元使用,以減少取用記憶體的平均時間。L1快取記憶體是一種較小較快的記憶體,其儲存來自最常用主記憶體位置的資料之複本。L2快取記憶體可能會較大,但在取用上較慢。並且額外的記憶體,被用作快取記憶體的無論是在晶片上的或是外部可用的系統記憶體可能又更大,但在取用上比起較小且較靠近的CPU快取記憶體層級而言較慢。只要大部分的記憶體取用是經快取的記憶體位置,記憶體取用的平均潛時就會比接近主記憶體之潛時更接近快取記憶體之潛時。
當處理器需要從主記憶體中之位置被讀取或寫 入到主記憶體中之位置時,它首先檢查那個資料的複本是否係在它的其中一個快取記憶體(例如,L1、L2快取記憶體等等)中,並且當可用時,處理器係從此快取記憶體讀出或寫入到此快取記憶體,而非從系統之主記憶體中尋求此資料,因而提供比從系統之主記憶體讀出或寫入到系統之主記憶體更為快速的結果。
傳統機構由於冗長的緩衝器生命期而限制對快 取記憶體的通量。藉由修改所針對來實施置換操作的這些機構,係可獲得改善的通量。例如,在,例如,在一個CPU上的L1快取記憶體和L2快取記憶體之間的,或是在CPU上 之L2快取記憶體與外部可取用L3快取記憶體之間的通量和通訊上的改善效益可改善對於此CPU和相關聯晶片組的整體操作效益。
傳統的解決辦法會需要在有一個列被置換到一 個快取記憶體中時,有一個緩衝器針對一個未中快取記憶體(即,資料並沒有在此快取記憶體中)而被配置,並且接著對於那個資料的請求會來到更上階的快取記憶體,或是來到一個L3快取記憶體而非L2快取記憶體,等等。此請求接著前進到更上階的快取記憶體,所請求之資料回應於此更上階快取記憶體而被回傳,並接著被儲存在所配置的緩衝器中,在此,一個排程器將會針對現在被緩衝的所取回資料而協調一個置換操作,以將所取回資料插入到較低階快取記憶體中。為了要進行這個置換操作,對於此快取記憶體的儲存和載入會被擱置,以釋放出讀取和寫入埠,在這個點上,從較高階快取記憶體所取回的資料接著經由一個置換操作而被插入到較低階快取記憶體中,如所需要地進行一個逐出動作。
縮減緩衝器生命期或進行這樣一種快取記憶體 間傳輸所需的步驟之數量因而是令人嚮往的,因為在步驟之數量上的減少會使得效能增進。同時,由於將資料從較高階移到較低階的每個快取記憶體間請求都會需要對儲存和載入的中斷,所以會因為對其他處理流程和操作的中斷而發生系統降級。因此,使得這樣的快取記憶體間資料傳輸能夠移動資料而不迫使對這些快取記憶體之正在進行中 的儲存和載入停止,這也會是令人嚮往的。
在下面的說明中係有提出許多具體細節,例如對於具體系統、語言、部件等等的範例,以提供對各種實施例的通盤瞭解。然而,熟於本技藝者會可瞭解,並不需要使用這些具體細節來實現於本文中所揭露的這些實施例。在其他情況中,習知的材料或方法並沒有被作詳細的說明,以避免對所揭露之實施例作出不必要的混淆。
除了在圖式中所繪示和在本文中所描述的各種硬體部件之外,一些實施例進一步包括在下文中有所描述的各種操作。依據此等實施例所描述的這些操作可係藉由硬體部件來進行,或可係於機器可執行指令中體現,可係使用這些機器可執行指令來致使一個一般用途或特殊用途處理器被以這些指令作程式規劃,以進行這些操作。或者是,可係藉由硬體和軟體的組合來進行這些操作。
一些實施例亦係有關用於進行於本文中所揭露之操作的設備。此設備可係針對所需用途而被特別建構的,或者是,其可係一個一般用途電腦,由儲存在此電腦中的一個電腦程式來選擇性作動或組配。這樣的一個電腦程式可係儲存在一個電腦可讀儲存媒體中,例如但不受限於,任何類型的碟片(包括軟碟、光碟、CD-ROM、和磁光碟)、唯讀記憶體(read-only memory,ROM)、隨機存取記憶體(random access memory,RAM)、EPROM、EEPROM、磁性或光學卡、或是任何類型的適於儲存電子指令的媒體,其各系與一個電腦系統匯流排耦接。「耦接」 一詞可係指有直接接觸(實體上、電氣式地、磁性地、光學式地等等)的二或更多個元件,或係指與彼此沒有直接接觸但仍與彼此協作和/或互動的二或更多個元件。
於本文中所出示的這些演算法和顯示器本質上 並不與任何特定電腦或其他設備有關。係可配合依據本文中之教示的程式來使用各種一般用途系統,或者是,建構更為特化的設備來進行所需的步驟方法可能會被證實為是相當便利的。針對各式各樣的這些系統所需的結構將如於下文中之詳細說明中所提出地顯露。此外,並沒有參照任何特定程式規劃語言來描述一些實施例。會可識出,係可使用各式各樣的程式規劃語言來實施如於本文中所說明的對於這些實施例之教示。
所揭露的這些實施例中之任何一者皆可被單獨 使用,或是與另一者以任何組何方式來使用。雖然各種實施例可能有部份係由傳統技術和途徑的缺失所激發(當中有一些在本說明書中係有述及或略為提及),但這些實施例並不一定要對付或解決任何這些缺失,而是,其可僅對付這些缺失中的一些、不對付這些缺失中之任何一者、或者是針對沒有被直接論述的其他缺失和問題。
圖1例示出一個示範架構100,一些實施例可依據 此架構而操作。依據所描述的這些實施例,所繪示之架構100實施在階層式快取設計中的快取記憶體之間的有效通訊。
可藉由消除由需要將經緩衝快取列寫入到快取 記憶體中的一個排程器所為的對於寫入埠的暴力接管事件而改善效益。消除快取寫入埠接管的一種直率方式,是增加另一個快取寫入埠。然而,這麼做會在積體電路上之區域還有積體電路上之電力等方面有相當大的耗費。
依據所揭露的這些實施例,係可將數個單元(例 如用來儲存經快取之資料之快取列的記憶體單元或「ram單元」)組織成群組。代理器可接著透過一個多工器(multiplexer,mux)而對這些群組作寫入或讀取。例如,同時發生的置換或儲存操作可透過此mux一起寫入到一個集合相聯快取記憶體,而無須增加第二個寫入埠來支援第二個同時發生的置換或儲存操作。
同時將這些寫入操作多工到不同群組中可使得 能夠有更大的通量,而無須,例如,藉由增加額外的寫入埠而增加硬體。增加群組之數量使得能夠有更多同時發生的對於ram單元之群組的寫入/寫入、讀取/讀取、或寫入/讀取操作,然而,各個群組會要求引進每群組之額外mux。
如所繪示的,架構100在每個路徑上支援四個集 合的群組。例如,路徑0 120A可係一個較低階快取記憶體或一個第1階快取記憶體(L1快取記憶體),且路徑1 120B可係一個較高階快取記憶體或一個第2階快取記憶體(L2快取記憶體)。
路徑0和路徑1 120A~B各包括四個ram單元群 組,用以儲存快取列。路徑0 120A包括ram單元群組105A、106A、107A和108A。路徑1 120B類似地包括四個ram單元 群組105B、106B、107B和108B。各個路徑0和路徑1的這些ram單元群組係透過數個多工器或mux 130而連接,這些mux 130進而係由代理器管理。代理器0 110A和代理器1115A管理對路徑0 120A的輸入/輸出操作。例如,兩個同時發生的寫入、更新、插入、載入、儲存或讀取操作在如所繪示地透過各個群組的各別所耦接mux 130而寫入到相異且不同的ram單元群組105A~108A時,係透過mux 130經由這兩個代理器110A和115A而獲得支援。
路徑1 120B的代理器0 110B和代理器1 115B類 似地如所繪示地透過各個ram單元群組之各別所耦接mux 130而支援到路徑1120B之ram單元群組105B~108B內的輸入/輸出操作。
路徑0和路徑1各係透過迷你解碼器125而互連, 迷你解碼器125傳送不同的寫入致能到ram單元群組105A~108A和105B~108B中之各者還有到不同路徑120A~B,因而致能,例如,一個寫入操作的兩個來源,以同時寫入到不同ram單元群組和路徑中。例如,兩個資料來源在各個集合群組(ram單元)之前被多工,因此使得能夠同時將這兩個來源寫入到不同集合群組(ram單元)中。
圖2例示出一個替代示範架構200,可依據此架構 而操作一些實施例。在此,係依據所揭露的這些實施例而繪示出在兩個示範快取階級之間的相互通訊。例如,係繪示出L1快取記憶體210(例如,路徑0)和L2快取記憶體215(例如,路徑1),如同為具有一個位址220A區塊和一個控 制225A區塊或位元的一個資料緩衝器235。值得注意的是,資料緩衝器235包括能夠儲存一整個快取列的資料區塊230。資料區塊230是資料緩衝器235之資源最密集的部份,需要所實施積體電路的成比例的更多的電力還有區域。引進更多資料緩衝器235會需要在這樣的一個積體電路上配置更多電力和區域,並且大部分的這些額外電力和區域係由各個資料緩衝器235的資料區塊230部份消耗,以儲存或緩衝一條完整的快取列。
此外,還繪示出一個無資料緩衝器234。無資料 緩衝器234亦包括一個位址220B區塊和一個控制225B區塊或位元。值得注意的是,無資料緩衝器234缺少資料緩衝器235的資料區塊230。無資料緩衝器234就所實施電路上的區域而言小很多,因為不需要有資料區塊230,並且相對於所繪示的資料緩衝器235而言還消耗成比例的較少電力。然而,無資料緩衝器234就是無法儲存滿填快取列。無資料緩衝器儘管具有「緩衝器」的命名,卻並不能緩衝快取列,因為它沒有藉以容納、儲存、緩衝、或保持這樣一個快取列的資料區塊230。因而,資料緩衝器235和無資料緩衝器234各係效命於不同的用途,如現在將於下文中更詳細描述的。
對於來自快取記憶體的大部分請求,資料是在單 一個量塊中抵達,並且儲存在控制225A~B區塊中的列狀態位元針對對應於所請求資料的快取列而指出一種專用或共享狀態。這些列狀態位元係用來指出對於資料之從較高 階快取記憶體到較低階的一個請求操作的完成。認定其中係有數個列狀態位元來指出完成一個快取列請求的事例,邏輯可係根據資料的抵達而啟始一個置換操作,並且在資料抵達後立即進行此置換操作,因此繞過資料緩衝器235並同時否定掉需要排程器來監控資料緩衝器235並接著從資料緩衝器235之資料區塊230中取回快取列並將其移到快取記憶體(例如移到L1快取記憶體210中)中這樣的需求。取而代之地,係可配置一個無資料緩衝器234,以使得位址220B和控制225B資訊可被適當追蹤,但由於從較高階快取記憶體,例如L2快取記憶體215,所取回的快取列絕不會被資料緩衝器235緩衝,所以無資料緩衝器234並不請求資料區塊230,而是,此無資料緩衝器可被立即解配置,並且所取回的快取列被導向到L1快取記憶體210中,繞過任何中間緩衝操作。這樣的一種方案是更具效益的,並且額外地縮短了針對快取列之快取記憶體間傳輸的管線生命期。
因此,係針對從較高階快取記憶體所接收到的快 取列被立刻置換到較低階快取記憶體的任何請求而使用無資料緩衝器234。當有必要時,可仍係使用資料緩衝器235來接收和緩衝不能被直接且立即地寫入到各別快取記憶體中的快取列。例如,當所請求之快取列必須被導向到一個特定位址,且存在有對於與此快取記憶體之互動的競爭時,快取列可能會經由資料區塊230而被暫時緩衝在具有各別資料儲存體部件的資料緩衝器235中,以使得排程器可作出安排來保全對於將所緩衝之快取列寫入到快取記憶體之 適當位址空間中所必須的一個寫入埠的取用。
置換操作比特定位址寫入更有彈性,因為快取記 憶體間傳輸邏輯並不受限所請求之快取列必須被寫入到的那個較低階快取記憶體之處,並且因此,在不受競爭的較低階或L1快取記憶體210內的此快取記憶體之一部分,例如繪示在圖1中的ram單元群組105A~108A中之一者,可能會被選擇來在接收到時將所取回之快取列插入到此快取記憶體中。
因此,依據一個實施例,特定位址寫入操作241 係被呈送給具有足以儲存一個快取列的資料區塊230部件的資料緩衝器235,並且置換操作242係被呈送給沒有資料區塊230部件的無資料緩衝器234,因為置換操作不會要求對快取列的緩衝服務。係將請求243示為被傳達給L2快取記憶體215,在這之後,在資料、狀態和完成抵達之期間內的一項置換會直接被處理到L1快取記憶體210,如由從L2快取記憶體215傳達到L1快取記憶體210的快取記憶體間傳輸列244所例示的。
圖3例示出另一個替代示範架構300,一些實施例 可依據此架構而操作。例如,係依據一個實施例而繪示出一個積體電路301,當中,此積體電路包括一個資料匯流排315;與資料匯流排315作可通訊式介接的一個較低階快取記憶體305;與資料匯流排315作可通訊式介接的一個較高階快取記憶體310;與資料匯流排315作可通訊式介接的一或多個資料緩衝器235;與資料匯流排315作可通訊式介接 的一或多個無資料緩衝器234,和快取記憶體間傳輸邏輯325。此外,係示出資料緩衝器235的子部件,包括位址220A和控制225A還有用來儲存快取列的一個資料區塊230部件,並示出無資料緩衝器234的子部件,包括位址220B和控制225B,但,值得注意的是,無資料緩衝器234並沒有儲存快取列的資料區塊230部件。係將最後快取記憶體間傳輸列244繪示為從較高階快取記憶體310被傳輸到較低階快取記憶體305。
依據一個實施例,這一或多個資料緩衝器235各 包括用來緩衝一個滿填快取列的一個緩衝器記憶體(資料區塊230)、用來指出各別資料緩衝器235之狀態的一或多個控制225A位元、和與那個滿填快取列相關聯的一個位址220A。
在一個實施例中,這一或多個無資料緩衝器234 中之各者並無法儲存滿填快取列。此等無資料緩衝器234包括用來指出各別無資料緩衝器234之狀態的一或多個控制225B位元、和針對與各別無資料緩衝器234相關聯之快取記憶體間傳輸列244的一個位址220B。對比於具有資料區塊230部件(例如,緩衝器記憶體)的資料緩衝器235,藉由僅包括針對各別無資料緩衝器234的控制225B和位址220B,係可使緩衝器之數量遽增,而無須像是在具有這樣一個資料區塊230部件的額外資料緩衝器235被整合到積體電路301內時所需地配置積體電路301的實質電力和區域。 藉由請求資料並將所請求之快取記憶體間傳輸列244從資 料匯流排315直接導向到較低階快取記憶體305內而非導向到緩衝器或佇列內而因此致使對較低階快取記憶體305的回寫係發生在快取記憶體間傳輸列244之資料抵達之時,並不需要佇存(queue)或緩衝快取記憶體間傳輸列244,因為此項傳輸係飛快地完成。雖然係可能有配置無資料緩衝器234來支援快取記憶體間傳輸功能,但無資料緩衝器234所需的控制225B和位址220B的資源成本相較於能夠緩衝快取記憶體間傳輸列244作為記憶體間傳輸之一部份的資料緩衝器235而言較小。
在一個實施例中,快取記憶體間傳輸邏輯325會 經由資料匯流排315而從較高階快取記憶體310請求快取記憶體間傳輸列244,並且快取記憶體間傳輸邏輯325會進一步將快取記憶體間傳輸列244從資料匯流排315寫入到較低階快取記憶體305內。
在一個實施例中,請求快取記憶體間傳輸列包括(1)快取記憶體間傳輸邏輯325反應於在較低階快取記憶體305處的一個快取未中而將一或多個無資料緩衝器234中之一者配置給快取記憶體間傳輸列244;並更進一步包括(2)快取記憶體間傳輸邏輯325將快取記憶體間傳輸列244從資料匯流排315直接導向到較低階快取記憶體305,繞過所配置的無資料緩衝器。例如,快取記憶體間傳輸列244反應於此請求而被置放到資料匯流排315上,並且接著,不若將快取記憶體間傳輸列244導向到緩衝器記憶體中,快取記憶體間傳輸列244取而代之地直接被從資料匯流排315發送 並進入較低階快取記憶體305。
在一個實施例中,快取記憶體間傳輸邏輯325反 應於在較低階快取記憶體305處的一個快取未中而請求快取記憶體間傳輸列244。例如,這樣的一個快取未中可觸發快取記憶體間傳輸功能,以將所請求之快取列之可用之處締結在較高階快取記憶體(例如所繪示之L2快取記憶體310)處或甚至更高階級處(例如在L3快取記憶體處),無論對積體電路301而言係在晶片上或晶片外。在一個實施例中,較低階快取記憶體305是被整合在積體電路301內的一個晶片上第1階快取記憶體(L1快取記憶體);並且較高階快取記憶體310是是被整合在積體電路301內的一個晶片上第2階快取記憶體(L2快取記憶體)。在一個替代實施例中,此晶片上第1階快取記憶體或晶片上第2階快取記憶體進一步與一個晶片外第3階快取記憶體(L3快取記憶體)通訊,以進行從L3快取記憶體到晶片上第1階快取記憶體或晶片上第2階快取記憶體其中一者的快取記憶體間傳輸。
依據一個實施例,將快取記憶體間傳輸列244直 接導向到較低階快取記憶體305內進一步包括,快取記憶體間傳輸邏輯325啟始一個置換操作,以將快取記憶體間傳輸列244插入到較低階快取記憶體305中。在一個實施例中,此置換操作係與對來自較高階快取記憶體310的快取記憶體間傳輸列244之請求同時地被啟始。為了縮短經由傳統可用機構的快取記憶體間傳輸功能的生命期,將某些功能性操作移除是值得嚮往的。這些操作的其中一個是如於上文 中所提的緩衝。可移除來改善效益的另一個這樣的操作是發生在接收到所請求之快取記憶體間傳輸列244與對置換操作之後續排程之間的等待期間。依據所揭露的這些實施例,這樣的一個置換操作係與對針對快取記憶體間傳輸列244之請求之啟始並存或同時地被觸發,這可縮短在傳統技術中所經歷的定時滯後(timing lag)。藉由以對快取記憶體間傳輸列244之請求來觸發置換操作,係使得置換操作能夠在被置放在資料匯流排315上時立即捕獲所回傳的快取記憶體間傳輸列244,並簡便地將其導向到較低階快取記憶體310內,此二者都會降低快取記憶體間傳輸功能性管線的整體生命期,此外並否定掉對於任何緩衝步驟或操作的需求。利用這樣的一種技術,甚至並不需要有排程器來監控緩衝器記憶體,因為快取記憶體間傳輸列244永遠不會被置放到緩衝器記憶體中。然而,在實務上,並非所有的快取記憶體間傳輸功能都容許無緩衝器操作。例如,當對目標快取記憶體的競爭問題迫使需要緩衝或額外時間來處置特殊事例時,可能仍會使用緩衝,並且排程器可監控並接著進行對於經緩衝快取列之來自緩衝器記憶體(例如,資料緩衝器235之資料區塊230)的和到目標快取記憶體的所需傳輸。
在一個實施例中,此置換操作包括選擇一個快取 列以從較低階快取記憶體305中作逐出,至少部份基於要作逐出的這個快取列係駐於目前沒有競爭的較低階快取記憶體305之一部份內,此置換操作進一步包括將快取記憶體間 傳輸列244導向到經由對此快取列之逐出而成為可用的一個位置內。這樣的一個置換操作可使用與快取記憶體間傳輸列244相關聯的無資料緩衝器234之位址220B。可進一步利用相關聯位址220B而提供到在目標快取記憶體,例如較低階快取記憶體305,內之目標目的地的映射。快取記憶體間傳輸邏輯325可針對快取記憶體之作為目標的部份而判定是否有競爭。例如,先前已描述過ram單元群組105A~108A。對於一個輸入/輸出操作而言,有一些可能會是不可取用的,而其他的可能會是可取用的。快取記憶體間傳輸邏輯325可判定出有競爭存在和沒有競爭存在之處,並接著保全一個讀取/寫入埠(例如,透過代理器110A和115A中之一者),並接著逐出一個快取列並致使所請求和取回的快取記憶體間傳輸列244被儲存在由對此快取列之逐出所釋放出來的位置。這樣的競爭判定可係奠基在政策、即時監控、位址範圍等等之上。在一個實施例中,快取記憶體間傳輸邏輯325配置此等多個資料緩衝器235中之一者來緩衝被逐出的快取列,並將被逐出的這個快取列導向到所配置的這個資料匯流排中以基於逐出政策(例如,清除骯髒位元、使其同步等等)而作最終佈署。
在一個實施例中,較低階快取記憶體305包括被 配置成二或更多個群組的多個記憶體單元;並且此等二或更多個群組各係透過一個多工器(mux)來取用,使得能夠對各別群組的兩個不同記憶體單元作同時的寫入/寫入、讀取/讀取、或寫入/讀取操作。例如,這些記憶體單元(例如, 像是ram單元等等)可被劃分成8、16或64個群組等等。分成太大的群組會增加競爭。分成太小的群組會由於所需的mux而導致常態負擔(overhead)和額外硬體需求。因此,針對一個給定電路實作而作一些分析來模擬出適當的分組數量是很適當的。一旦被分成群組,便可透過這些mux(和必要時所需的代理器)而將寫入/寫入、讀取/讀取、或寫入/讀取操作導向到這些記憶體單元中,只要是在二者係被導向到兩個不同的群組中時便可。例如,係可進行兩個置換操作、兩個載入操作、兩個儲存操作等等,只要他們並非係導向到同一群記憶體單元。
在一個實施例中,快取記憶體間傳輸邏輯325要 將快取記憶體間傳輸列244從資料匯流排315寫入到較低階快取記憶體305中包括,快取記憶體間傳輸邏輯325會(1)識別出此等二或更多個群組中之對其而言寫入操作為可用的一者;(2)選擇所識別出的這個群組;以及(3)導向負責所選擇之群組的一個代理器,以將快取記憶體間傳輸列244從資料匯流排315寫入到所選擇群組中。因此,競爭判定動作可識別出一個可用群組,並作為反應而選擇那個群組以履行置換操作。
在一個替代實施例中,快取記憶體間傳輸邏輯 325要將快取記憶體間傳輸列244從資料匯流排315寫入到較低階快取記憶體305中,包括快取記憶體間傳輸邏輯325會(1)識別出在所有此等二或更多個群組上的競爭;(2)擱置到此等群組中之一者內的寫入操作;並且(2)導向負 責與被擱置的這些寫入操作相關聯的這個群組的一個代理器,以將快取記憶體間傳輸列244從資料匯流排315寫入到此群組中。
對寫入操作之擱置可被稱為是對讀取/寫入埠的 暴力接管。這在要使一個讀取/寫入埠可用於一個所選擇位置,例如在成為目標之較低階快取記憶體305內的一個群組中的一個記憶體單元,時是必須的,以使得所選擇的這個位置準備好並等待要在接收時從較高階快取記憶體310接收快取記憶體間傳輸列244,以操作於無緩衝器快取記憶體間傳輸模式中。當資料從較高階快取記憶體抵達時,必須要有能夠作立即寫回的一個位置在等待,並且因此,當有必要時,一個載入埠或讀取/寫入埠會被擱置,以為此番抵達做準備。雖然依據一些實施例,有時候可能會發生擱置,但這樣的擱置係與對於快取記憶體間傳輸列244之請求同時地被觸發,並且被組合到單一個循環內,因此在時間上跟傳統機構比起來要短得多,傳統機構會進行請求、緩衝、排程、擱置並接著移除經緩衝資料,因此係需要多於單個的循環來達到相同結果。
在一個實施例中,對於儲存在較低階快取記憶體 305或較高階快取記憶體310中的一個現存快取列的快取記憶體更新係在這一或多個資料緩衝器235中之一者中被緩衝,並且監控這一或多個資料緩衝器235的一個排程器可對與此現存快取列相關聯的較低階快取記憶體305或較高階快取記憶體310保全一個可用寫入埠,並將此快取記憶體更 新寫入到較低階快取記憶體305或較高階快取記憶體310中,來置換現存快取列。
在一個實施例中,從較高階快取記憶體310所回 傳的快取記憶體間傳輸列244包括一個滿填快取列和控制資料。在這樣的一個實施例中,無資料緩衝器234係經由這一或多個控制225B位元而儲存控制資料。在一個實施例中,各別的無資料緩衝器並不儲存與控制資料一起回傳的這個滿填快取列。
在一個實施例中,積體電路301包括用於書寫板 運算裝置或智慧型電話其中一者的一個中央處理單元。
圖4示出對於一個系統499的圖形表示,一些實施 例可依據此系統而操作、安裝、整合、或組配。
在一個實施例中,系統499包括一個記憶體495和一個處理器或數個處理器496。例如,記憶體495可儲存要執行的指令,並且一或數個處理器496可執行此等指令。系統499包括通訊匯流排465,用以在與一或多個通訊匯流排465和/或一或數個介面475介接的週邊裝置470之間在系統499內傳輸異動、指令、請求和資料。此外,在系統499內係繪示有顯示單元480。
在系統499內特別突出的是積體電路301,其可係在一個可相容系統499中被安裝和組配,或是被分開製造或提供,以配合系統499的適當部件而操作。
依據一個實施例,系統499包括至少一個顯示單元480和一個積體電路301。此積體電路301可操作為,例 如,一個處理器,或操作為系統499的另一個運算部件。在這樣的一個實施例中,系統499之積體電路301至少包括:一個資料匯流排;與此資料匯流排做可通訊式介接的一個較低階快取記憶體;與此資料匯流排做可通訊式介接的一個較高階快取記憶體;以及與此資料匯流排介接的一或多個資料緩衝器,這一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別資料緩衝器之狀態的一或多個控制位元、和與此滿填快取列相關聯的一個位址。在這樣的一個實施例中,系統499之積體電路301進一步包括一或多個無資料緩衝器,這一或多個無資料緩衝器無法儲存滿填快取列,並且具有用來指出各別無資料緩衝器之狀態的一或多個控制位元、和針對與各別無資料緩衝器相關聯的一個快取記憶體間傳輸列的一個位址。此外,系統499之積體電路301還包括快取記憶體間傳輸邏輯,用以經由資料匯流排而從較高階快取記憶體請求快取記憶體間傳輸列,並用以將此快取記憶體間傳輸列從資料匯流排寫入到較低階快取記憶體中。
在一個實施例中,系統499體現一個書寫板或智 慧型電話,且顯示單元480是用於此書寫板或智慧型電話的一個觸控式螢幕介面。在這樣的一個實施例中,積體電路301係被整合到此書寫板或智慧型電話中,例如,作為用於此書寫板或智慧型電話的一個處理器或其他運算部件。
圖5是一個流程圖,其例示出用於依據所描述的 一些實施例而實施在階層式快取設計中之快取記憶體之間 的有效通訊的一種方法。方法500可係由執行邏輯進行,此執行邏輯可包括硬體(例如,電路、專用邏輯、可程式規劃邏輯、微碼等等)。所呈現的方塊之數量是為求明晰起見,而並非蓄意要指定這許多方塊所必須循其發生的操作順序。
方法500係從處理邏輯開始,此處理邏輯係用於 接收在一個較低階快取記憶體處的一個快取未中,對此較低階快取記憶體而言,對應資料在經由一個資料匯流排而與此較低階快取記憶體作可通訊式介接的一個較高階快取記憶體處是可用的(方塊505)。
於方塊510,處理邏輯反應於在較低階快取記憶 體處的這個快取記憶體未中而從較高階快取記憶體請求一個快取記憶體間傳輸列。
於方塊515,處理邏輯針對此快取記憶體間傳輸 列而配置一個無資料緩衝器。
於方塊520,處理邏輯啟始一個置換操作,來將 此快取記憶體間傳輸列插入到較低階快取記憶體中。
於方塊525,處理邏輯選擇一個快取列以從較低 階快取記憶體中作逐出,至少部份基於要作逐出的這個快取列係駐於目前沒有競爭的此較低階快取記憶體之一部份內。
於方塊530,處理邏輯將此快取記憶體間傳輸列 導向到經由對此快取列之逐出而成為可用的一個位置內。
於方塊535,處理邏輯藉由在資料匯流排上接收 此快取記憶體間傳輸列,並將此快取記憶體間傳輸列從資料匯流排寫入到較低階快取記憶體中且繞過所有的快取緩衝器,而將此快取記憶體間傳輸列從較高階快取記憶體傳輸到較低階快取記憶體中。
現在請參看圖6,所示出的是依據本發明之一實 施例的一個系統600之方塊圖。此系統600可包括耦接至圖形記憶體控制器集線器(graphics memory controller hub,GMCH)620的一或多個處理器610、615。在圖6中係以虛線表示額外的處理器615的非必須性質。
處理器610、615各可為如於上文中所述的電路、 積體電路、處理器、和/或矽積體電路的某種版本。然而,應注意,經整合圖形邏輯和經整合記憶體控制單元不太可能會存在於處理器610、615中。圖6例示出,GMCH 620可係耦接至一個記憶體640,此記憶體640可為,例如,一個動態隨機存取記憶體(dynamic random access memory,DRAM)。在至少一個實施例中,此DRAM可係與一個非依電性快取記憶體相關聯。
GMCH 620可係一個晶片組,或是一個晶片組的一部分。GMCH 620可與這(些)處理器610、615通訊,並控制在這(些)處理器610、615與記憶體640之間的互動。GMCH 620可亦作用為在這(些)處理器610、615與系統600之其他元件之間的一個經加速匯流排介面。對於至少一個實施例而言,GMCH 620係經由一個多點匯流排,例如前側匯流排(frontside bus,FSB)695,而與這(些)處理器610、 615通訊。
此外,GMCH 620亦耦接至一個顯示器645(例 如一個平板顯示器或觸控式螢幕)。GMCH 620可包括一個經整合圖形加速器。GMCH 620進一步耦接至一個輸入/輸出(input/output,I/O)控制器集線器(I/O controller hub,ICH)650,可利用ICH 650來將各種週邊裝置耦接至系統600。在圖6之實施例中作為範例而示出的是一個外部圖形裝置660還有另一個週邊裝置670,外部圖形裝置660可為耦接至ICH 650的一個分立圖形裝置。
或者是,在系統600中可亦存在有額外的或不同 的處理器。例如,額外的(一或數個)處理器615可包括與處理器610相同的額外的(一或數個)處理器、與處理器610異質或不對稱的額外的(一或數個)處理器、加速器(像是,例如,圖形加速器或數位訊號處理(digital signal processing,DSP)單元)、現場可程式規劃閘陣列、或是任何其他處理器。在處理器610、615之間,在包括架構、微架構、熱學、能量損耗特性及其他諸如此類者之價值的計量之範圍方面係可有各式各樣的差異。這些差異可有效地將它們自己表露為在處理器610、615中的不對稱性和異質性。對於至少一個實施例而言,這各種的處理器610、615可係駐在相同的晶粒封裝體中。
現在請參看圖7,所示出的是依據本發明之一實 施例的一第二系統700之方塊圖。如於圖7中所示,多處理器系統700是一個點對點互連系統,並包括經由一個點對點 介面750而耦接的一第一處理器770和一第二處理器780。處理器770和780各可為先前所述的處理器或積體電路的某種版本,或如處理器610、615中之一或多者。
雖然僅以兩個處理器770、780來作展示,應瞭 解,本發明之範疇並不如此受限。在其他數個實施例中,額外的一或多個處理器係可存在於一個給定處理器中。
係將處理器770和780示為分別包括有經整合記 憶體控制器單元(integrated memory controller unit)772和782。處理器770亦包括有點對點(point-to-point,P-P)介面776和778作為其匯流排控制器單元的一部分;類似地,第二處理器780可包括P-P介面786和788。處理器770、780可使用P-P介面電路778、788而經由一個點對點(P-P)介面750交換資料。如於圖7中所示,IMC 772和782將這些處理器耦接至各別的記憶體,也就是記憶體732和記憶體734,其可為本地附接至各別處理器的主記憶的幾個部份。
處理器770、780可使用點對點介面電路776、 794、786、798而經由個別的P-P介面752、754與晶片組790交換資訊。晶片組790可亦經由一個高效能圖形介面739而與一個高效能圖形電路738交換資訊。
可有一個共享快取記憶體(未示於圖中)被包括 在其中一個處理器中或是在這兩個處理器之外,但仍經由P-P互連而與這些處理器連接,以使得當有一個處理器被置於低電力模式中時,其中一個或二個處理器的本地快取資訊可被儲存在此共享快取中。
晶片組790可係經由一個介面796而耦接至一第 一匯流排716。在一個實施例中,第一匯流排716可係一個週邊部件互連(Peripheral Component Interconnect,PCI)匯流排,或像是PCI快捷(PCI Express)匯流排或另一種第三代I/O互連匯流排的一個匯流排,但本發明之範疇並不如此受限。
如於圖7中所示,各種I/O裝置714可係和一個匯 流排橋718一起耦接至第一匯流排716,匯流排橋718將第一匯流排716耦接至一第二匯流排720。在一個實施例中,第二匯流排720可係一個低腳位數(low pin count(LPC)匯流排。在一個實施例中,係可將各種裝置耦接至第二匯流排720,包括,例如,鍵盤和/或滑鼠722、通訊裝置727和可能包括有指令/碼和資料730的儲存體單元728(像是磁碟機或其他大容量儲存裝置)。更進一步地,係可將一個音訊I/O 724耦接至第二匯流排720。請注意,其他架構也是有可能的。例如,取代於圖7的點對點架構,系統係可實施多點匯流排或其他此種架構。
現在請參看圖8,所示出的是依據本發明之一實 施例的一個系統800之方塊圖。圖8例示出,處理器870、880可分別包括有經整合記憶體和I/O控制邏輯(control logic,CL)872和882,並分別經由在點對點(P-P)介面878和888之間的點對點互連850而與彼此相互通訊。處理器870、880各如所示出地透過各別的P-P介面876到894和886到898而經由點對點互連852和854與晶片組890通訊。對於至少一個 實施例而言,CL 872、882係可包括經整合記憶體控制器單元。CL 872、882係可包括I/O控制邏輯。如所繪示的,記憶體832、834耦接至CL 872、882,且I/O裝置814亦耦接至控制邏輯872、882。舊有I/O裝置815經由介面896耦接至晶片組890。
圖9繪示出一個書寫板運算裝置901和一個手持 式智慧型電話902,其各如依據此等實施例所描述地具有整合在內的一個電路。如所繪示的,依據所揭露的這些實施例,書寫板運算裝置901和手持式智慧型電話902各包括一個觸控式螢幕介面903和一個經整合處理器904。
例如,在一個實施例中,一個系統體現一個書寫 板運算裝置901或一個手持式智慧型電話902,當中,此系統的顯示單元包括用於此書寫板或智慧型電話的一個觸控式螢幕介面903,更進一步地,當中,記憶體和被操作為一個經整合處理器的一個經整合電路係被整合到此書寫板或智慧型電話中,並且當中此經整合處理器實施於本文中所揭露之實施例的一或多者以實施在階層式快取設計中之快取記憶體之間的有效通訊。在一個實施例中,此書寫板或智慧型電話之於上文中所述的經整合電路或所繪示的經整合處理器是一個經整合矽處理器,作用為用於一個書寫板運算裝置或一個智慧型電話的一個中央處理單元。
圖10是當中有使用觸控式螢幕介面連接器的書 寫板運算裝置、智慧型電話、或其他行動裝置的一個實施例之方塊圖1000。處理器1010進行主要的處理操作。音訊 子系統1020代表與對此運算裝置提供音訊功能相關聯的硬體(例如,音訊硬體和音訊電路)和軟體(例如,驅動器、編解碼器)部件。在一個實施例中,一個使用者藉由提供由處理器1010所接收和處理的音訊命令來與此書寫板運算裝置或智慧型電話互動。
顯示子系統1030代表為使用者提供可見和/或有 形顯示以與此書寫板運算裝置或智慧型電話互動的硬體(例如,顯示裝置)和軟體(例如,驅動器)部件。顯示子系統1030包括顯示介面1032,其包括用來為使用者提供顯示的特定螢幕或硬體裝置。在一個實施例中,顯示子系統1030包括對使用者提供輸出也提供輸入的一個觸控式螢幕裝置。
I/O控制器1040代表和與使用者之互動有關的硬 體裝置和軟體部件。I/O控制器1040可操作來管理為音訊子系統1020和/或顯示子系統1030之一部份的硬體。此外,I/O控制器1040亦例示出用於連接至此書寫板運算裝置或智慧型電話的額外裝置的一個連接點,使用者可透過這些額外裝置來作互動。在一個實施例中,I/O控制器1040會管理裝置,例如加速計、攝影機、光感測器或其他環境感測器、或是可被包括在此書寫板運算裝置或智慧型電話中的其他硬體。輸入可係直接使用者互動的一部分,如同將環境輸入提供給此書寫板運算裝置或智慧型電話一般。
在一個實施例中,此書寫板運算裝置或智慧型電 話包括電力管理1050,其管理電池電力使用、對此電池之 充電、和與省電操作有關的特徵。記憶體子系統1060包括記憶體裝置,用以在此書寫板運算裝置或智慧型電話中儲存資訊。連接性1070包括對此書寫板運算裝置或智慧型電話的硬體裝置(例如,無線和/或有線連接器及通訊硬體)和軟體部件(例如,驅動器、協定堆疊),以與外部裝置通訊。巢格連接性1072可包括,例如,無線載體,例如全球行動通訊系統(global system for mobile communications,GSM)、分碼多重存取(code division multiple access,CDMA)、分時多工(time division multiplexing,TDM)、或其他巢格服務標準)。無線連接性1074可包括,例如,非巢格性的活動,例如個人區域網路(例如,藍牙(Bluetooth))、區域網路(例如,WiFi)、和/或廣域網路(例如,WiMax)、或其他無線通訊。
週邊連接1080包括硬體介面和連接器,以及軟體 部件(例如,驅動器、協定堆疊),用以做出週邊連接,作為到其他運算裝置的週邊裝置(「至」1082),並用以使週邊裝置(「由」1084)連接至此書寫板運算裝置或智慧型電話,包括,例如,用來與其他運算裝置連接的一個「停泊(docking)」連接器。週邊連接1080包括一般或以標準為基礎的連接器,例如一個通用串列匯流排(Universal Serial Bus,USB)連接器、顯示埠(DisplayPort)(包括迷你顯示埠(MiniDisplayPort,MDP))、高解析度多媒體介面(High Definition Multimedia Interface,HDMI)、火線(Firewire)等等。
圖11依據一個實施例,示出數個IP核心之發展的 方塊圖。儲存媒體1130包括模擬軟體1120和/或硬體或軟體模型1110。在一個實施例中,代表此IP核心設計的資料可經由記憶體1140(例如,硬碟)、有線連接(例如,網路)1150或無線連接1160而被提供給儲存媒體1130。由這些模擬工具和模型所產生的IP核心資訊可接著被發送到一個製造設施1165,其可在此製造設施1165由第三方製造以依據至少一個實施例進行至少一個指令。
在一些實施例中,一或多個指令可係對應於一第 一類型或架構(例如,x86),並且可在一個不同類型或架構(例如,安謀(ARM))的處理器上被翻譯或仿擬。依據一個實施例,因而,指令係可在任何處理器或處理器類型上進行,包括ARM、x86、MIPS、GPU、或其他處理器類型或架構。
圖12依據一個實施例,例示出一第一類型的指令 是如何由不同類型的處理器仿擬。在圖12中,程式1205含有可進行與依據一個實施例的一個指令相同或實質上相同之功能的一些指令。然而,程式1205的這些指令可能是與處理器1215不同或不相容的類型和/或格式,意味著在程式1205中的此類型之指令不能夠由處理器1215自然地作執行。然而,借助於仿擬邏輯,1210,程式1205的這些指令係可被翻譯成自然能夠被處理器1215執行的指令。在一個實施例中,此仿擬邏輯係體現於硬體中。在另一個實施例中,此仿擬邏輯係體現於一個有形機器可讀媒體中,此有 形機器可讀媒體含有軟體,用以將程式1205中之此類型之指令翻譯成可由處理器1215自然執行的類型。在其他數個實施例中,仿擬邏輯是固定功能或可程式規劃硬體與儲存在一個有形機器可讀媒體上的一個程式的組合。在一個實施例中,此處理器含有仿擬邏輯,而在其他數個實施例中,仿擬邏輯係存在於此處理器之外,並且係由第三方提供。在一個實施例中,此處理器能夠藉由執行在此處理器中所含有的或是與此處理器相關聯的微碼或韌體而載入被體現於含有軟體的有形機器可讀媒體中的仿擬邏輯。
圖13是依據本發明之實施例的一個方塊圖,其對比出對於一個軟體指令轉換器的使用,用以將來源指令集中之二元指令轉換成目標指令集中之二元指令。在所例示的實施例中,此指令轉換器是一個軟體指令轉換器,雖然在另一種事例中,此指令轉換器可係以軟體、韌體、硬體或前述各項之各種組合來實施。圖13示出,係可使用一個x86編譯器1304來編譯為高階語言1302的一個程式,以產生可由具有至少一個x86指令集核心的處理器1316自然執行的x86二元碼1306。具有至少一個x86指令集核心的處理器1316代表可藉由相容地執行或以其他方式處理(1)英特爾(Intel)x86指令集核心之指令集的一個實質部份,或(2)旨在運行於具有至少一個x86指令集核心的一個英特爾處理器上的應用或其他軟體之目的碼版本,而進行與具有至少一個x86指令集核心的一個英特爾處理器實質上相同之功能的任何一個處理器,以達到與具有至少一個x86指令集 核心的一個英特爾處理器實質上相同的結果。x86編譯器1304代表可操作來產生可在有或沒有額外連結處理的情況下在具有至少一個x86指令集核心的處理器1316上執行的x86二元碼1306(例如,目的碼)的一個編譯器。類似地,圖13示出,為高階語言1302的這個程式可利用一個替代指令集編譯器1308而被編譯,以產生可由不具有至少一個x86指令集核心的處理器1314(例如,具有執行加利福尼亞州之森尼維耳市的MIPS科技公司(MIPS Technologies)之MIPS指令集的和/或執行加利福尼亞州之森尼維耳市的安謀公司(ARM Holdings)之ARM指令集的數個核心的一個處理器)自然執行的替代指令集二元碼1310。指令轉換器1312係用來將x86二元碼1306轉換成可由不具有至少一個x86指令集核心的處理器1314自然執行的碼。經轉換的這個碼不太可能與替代指令集二元碼1310一樣,因為具有此種能力的指令轉換器很難做出;然而,經轉換的這個碼將會達成一般操作,並係由來自替代指令集的指令組成。因此,指令轉換器1312代表透過仿真、模擬或任何其他處理而使得不具有x86指令集處理器或核心的處理器或其他電子裝置能夠執行x86二元碼1306的軟體、韌體、硬體或前述各項之組合。
雖然已藉由範例方式並就這些具體實施例而描 述於本文中所揭露之主體,應瞭解,所請求之實施例並不受限於所揭露之有清楚列舉出的這些實施例。相反地,本揭露內容係意欲要涵蓋對於熟知此技藝者而言係可明顯看 出的各種變化和類似安排。因此,後附申請專利範圍之範疇應被授予最廣義的解釋以涵蓋所有此種修改和類似安排。應瞭解,上面的說明係意欲作為例示性的,而非限制性的。熟知此技藝者在閱讀並瞭解上面的說明後,會可明顯看出許多其他實施例。因此,本揭露主體之範疇係參照後附申請專利範圍,連同此等申請專利範圍所賦予之等效體的完整範圍來判定。
200‧‧‧架構
210‧‧‧第1階(L1)快取記憶體
215‧‧‧第2階(L2)快取記憶體
220A、220B‧‧‧位址
225A、225B‧‧‧控制
230‧‧‧資料區塊
234‧‧‧無資料緩衝器
235‧‧‧資料緩衝器
241‧‧‧特定位址寫入操作
242‧‧‧置換操作
243‧‧‧請求

Claims (26)

  1. 一種積體電路,其包含:一個資料匯流排;與該資料匯流排做可通訊式介接的一個較低階快取記憶體;與該資料匯流排做可通訊式介接的一個較高階快取記憶體;與該資料匯流排介接的一或多個資料緩衝器,該一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別之該資料緩衝器之狀態的一或多個控制位元、和與該滿填快取列相關聯的一個位址;一或多個無資料緩衝器,該一或多個無資料緩衝器無法儲存滿填快取列,並且具有用來指出各別之該無資料緩衝器之狀態的一或多個控制位元、和針對與各別之該無資料緩衝器相關聯的一個快取記憶體間傳輸列的一個位址;以及快取記憶體間傳輸邏輯,其會經由該資料匯流排而從該較高階快取記憶體請求該快取記憶體間傳輸列,並會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中。
  2. 如申請專利範圍第1項之積體電路,其中該快取記憶體間傳輸邏輯會請求該快取記憶體間傳輸列包含: 該快取記憶體間傳輸邏輯會反應於在該較低階快取記憶體處的快取未中而將一或多個無資料緩衝器中之一者配置給該快取記憶體間傳輸列;以及該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶體而繞過所配置的該無資料緩衝器。
  3. 如申請專利範圍第2項之積體電路,其中該快取記憶體間傳輸邏輯會進一步進行下列動作:反應於在該較低階快取記憶體處的快取未中而請求該快取記憶體間傳輸列。
  4. 如申請專利範圍第2項之積體電路,其中該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶體而繞過所配置的該無資料緩衝器包含:該快取記憶體間傳輸邏輯會啟始一個置換操作,以將該快取記憶體間傳輸列插入到該較低階快取記憶體內。
  5. 如申請專利範圍第4項之積體電路,其中,該置換操作係與針對來自該較高階快取記憶體的該快取記憶體間傳輸列之該請求同時地被啟始。
  6. 如申請專利範圍第4項之積體電路:其中該置換操作包含:選擇一個快取列以從該較低階快取記憶體中作逐出,至少部份基於要作逐出的該快取列係駐於 目前沒有競爭的該較低階快取記憶體的一部分內;及將該快取記憶體間傳輸列導向到經由對該快取列之逐出而成為可用的一個位置中。
  7. 如申請專利範圍第6項之積體電路,其中該快取記憶體間傳輸邏輯會進一步進行下列動作:配置該等多個資料緩衝器中之一者,以緩衝被逐出的該快取列;以及將被逐出的該快取列導向到所配置的該資料緩衝器中。
  8. 如申請專利範圍第1項之積體電路:其中該較低階快取記憶體包含被配置成二或更多個群組的多個記憶體單元;並且其中該等二或更多個群組各係透過一個多工器(mux)來取用,使得能夠對各別之該群組的兩個不同記憶體單元作同時的寫入/寫入、讀取/讀取、或寫入/讀取操作。
  9. 如申請專利範圍第8項之積體電路,其中該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中包含:該快取記憶體間傳輸邏輯會進行下列步驟:識別出該等二或更多個群組中之一者,對該一者而言,一個寫入操作為可用的;選擇所識別出的該群組;以及 導向負責所選擇之該群組的一個代理器,以將該快取記憶體間傳輸列從該資料匯流排寫入到所選擇的該群組中。
  10. 如申請專利範圍第8項之積體電路,其中該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中包含:該快取記憶體間傳輸邏輯會進行下列步驟:識別出在所有的該等二或更多個群組上的競爭;擱置到該等群組中之一者內的寫入操作;以及導向負責與被擱置之該等寫入操作相關聯的該群組的一個代理器,以將該快取記憶體間傳輸列從該資料匯流排寫入到該群組中。
  11. 如申請專利範圍第1項之積體電路:其中該較低階快取記憶體是整合在該積體電路內的一個晶片上第1階快取記憶體(L1快取記憶體);並且其中該較高階快取記憶體是整合在該積體電路內的一個晶片上第2階快取記憶體(L2快取記憶體)。
  12. 如申請專利範圍第11項之積體電路,其中該晶片上第1階快取記憶體或該晶片上第2階快取記憶體進一步與一個晶片外第3階快取記憶體(L3快取記憶體)通訊,以進行從該L3快取記憶體到該晶片上第1階快取記憶體或該晶片上第2階快取記憶體其中一者的快取記憶體間傳 輸。
  13. 如申請專利範圍第1項之積體電路:其中針對儲存在該較低階快取記憶體或該較高階快取記憶體中的一個現有快取列的一個快取更新在該一或多個資料緩衝器之一者中受到緩衝;並且其中用於監控該一或多個資料緩衝器的一個排程器保全對與該現有快取列相關聯的該較低階快取記憶體或該較高階快取記憶體的一個可用寫入埠,並將該快取更新寫入到該較低階快取記憶體或該較高階快取記憶體中以置換該現有快取列。
  14. 如申請專利範圍第1項之積體電路,其中從該較高階快取記憶體回傳的該快取記憶體間傳輸列包括一個滿填快取列和控制資料,並且其中該一或多個無資料緩衝器中之該一者會經由該一或多個控制位元而儲存該控制資料,並且其中各別的該無資料緩衝器並不儲存與該控制資料一起回傳的該滿填快取列。
  15. 如申請專利範圍第1項之積體電路,其中該積體電路包含用於一個書寫板運算裝置或一個智慧型電話其中一者的一個中央處理單元。
  16. 一種系統,其包含:一個顯示單元;以及一個積體電路,其中該積體電路包含:一個資料匯流排;與該資料匯流排做可通訊式介接的一個較低 階快取記憶體;與該資料匯流排做可通訊式介接的一個較高階快取記憶體;與該資料匯流排介接的一或多個資料緩衝器,該一或多個資料緩衝器各具有用來緩衝一個滿填快取列的一個緩衝器記憶體、用來指出各別之該資料緩衝器之狀態的一或多個控制位元、和與該滿填快取列相關聯的一個位址;一或多個無資料緩衝器,該一或多個無資料緩衝器無法儲存滿填快取列,並且具有用來指出各別之該無資料緩衝器之狀態的一或多個控制位元、和針對與各別之該無資料緩衝器相關聯的一個快取記憶體間傳輸列的一個位址;以及快取記憶體間傳輸邏輯,其會經由該資料匯流排而從該較高階快取記憶體請求該快取記憶體間傳輸列,並會將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中。
  17. 如申請專利範圍第16項之系統:其中該系統體現於一個書寫板或一個智慧型電話;其中該顯示單元包含該書寫板或該智慧型電話的一個觸控式螢幕介面;並且其中該積體電路係整合在該書寫板或該智慧型電話內。
  18. 如申請專利範圍第16項之系統,其中該快取記憶體間傳 輸邏輯會請求該快取記憶體間傳輸列包含:該快取記憶體間傳輸邏輯會反應於在該較低階快取記憶體處的快取未中而將一或多個無資料緩衝器中之一者配置給該快取記憶體間傳輸列;以及該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶體而繞過所配置的該無資料緩衝器。
  19. 如申請專利範圍第18項之系統,其中該快取記憶體間傳輸邏輯會將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶體而繞過所配置的該無資料緩衝器包含:該快取記憶體間傳輸邏輯會啟始一個置換操作,以將該快取記憶體間傳輸列插入到該較低階快取記憶體內。
  20. 如申請專利範圍第18項之系統,其中,該置換操作係與針對來自該較高階快取記憶體的該快取記憶體間傳輸列之該請求同時地被啟始。
  21. 如申請專利範圍第18項之系統:其中該置換操作包含:選擇一個快取列以從該較低階快取記憶體中作逐出,至少部份基於要作逐出的該快取列係駐於目前沒有競爭的該較低階快取記憶體的一部分內;以及將該快取記憶體間傳輸列導向到經由對該快 取列之逐出而成為可用的一個位置中。
  22. 一種用在積體電路中的方法,該方法包含下列步驟:接收在一個較低階快取記憶體處的一個快取未中,對該較低階快取記憶體而言,對應資料在經由一個資料匯流排而與該較低階快取記憶體可通訊式介接的一個較高階快取記憶體處是可用的;反應於在該較低階快取記憶體處的該快取未中而從該較高階快取記憶體請求一個快取記憶體間傳輸列;針對該快取記憶體間傳輸列配置一個無資料緩衝器,其中該無資料緩衝器無法儲存該快取記憶體間傳輸列;以及藉由在該資料匯流排上接收該快取記憶體間傳輸列及將該快取記憶體間傳輸列從該資料匯流排寫入到該較低階快取記憶體中並繞過所有的快取緩衝器,將該快取記憶體間傳輸列從該較高階快取記憶體傳輸到該較低階快取記憶體。
  23. 如申請專利範圍第22項之方法:其中,快取記憶體間傳輸邏輯請求該快取記憶體間傳輸列;其中,該快取記憶體間傳輸邏輯進一步反應於在該較低階快取記憶體處的該快取未中而配置該無資料緩衝器給該快取記憶體間傳輸列;並且其中該快取記憶體間傳輸邏輯將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶 體而繞過所配置的該無資料緩衝器。
  24. 如申請專利範圍第23項之方法,其中該快取記憶體間傳輸邏輯將該快取記憶體間傳輸列從該資料匯流排直接導向到該較低階快取記憶體而繞過所配置的該無資料緩衝器包含:該快取記憶體間傳輸邏輯啟始一個置換操作,以將該快取記憶體間傳輸列插入到該較低階快取記憶體內。
  25. 如申請專利範圍第23項之方法,其中該置換操作係與針對來自該較高階快取記憶體的該快取記憶體間傳輸列之該請求同時地被啟始。
  26. 如申請專利範圍第23項之方法,其中該置換操作包含:選擇一個快取列以從該較低階快取記憶體中作逐出,至少部份基於要作逐出的該快取列係駐於目前沒有競爭的該較低階快取記憶體的一部分內;以及將該快取記憶體間傳輸列導向到經由對該快取列之逐出而成為可用的一個位置中。
TW101149054A 2011-12-23 2012-12-21 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備 TWI465908B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067217 WO2013095640A1 (en) 2011-12-23 2011-12-23 Methods and apparatus for efficient communication between caches in hierarchical caching design

Publications (2)

Publication Number Publication Date
TW201344435A TW201344435A (zh) 2013-11-01
TWI465908B true TWI465908B (zh) 2014-12-21

Family

ID=48669278

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101149054A TWI465908B (zh) 2011-12-23 2012-12-21 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備

Country Status (7)

Country Link
US (1) US9411728B2 (zh)
EP (1) EP2795472A1 (zh)
JP (1) JP5643903B2 (zh)
KR (1) KR101511972B1 (zh)
CN (1) CN103348333B (zh)
TW (1) TWI465908B (zh)
WO (1) WO2013095640A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3712774B1 (en) * 2011-09-30 2023-02-15 Tahoe Research, Ltd. Apparatus and method for implementing a multi-level memory hierarchy
CN111464316B (zh) 2012-03-30 2023-10-27 英特尔公司 用于处理sha-2安全散列算法的方法和设备
US10331451B2 (en) 2013-06-26 2019-06-25 Intel Corporation Method and apparatus to process SHA-2 secure hashing algorithm
US20160259728A1 (en) * 2014-10-08 2016-09-08 Via Alliance Semiconductor Co., Ltd. Cache system with a primary cache and an overflow fifo cache
US10298713B2 (en) * 2015-03-30 2019-05-21 Huawei Technologies Co., Ltd. Distributed content discovery for in-network caching
US10007619B2 (en) * 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
CN105335305B (zh) * 2015-10-30 2018-05-15 深圳盛思科教文化有限公司 一种交互式可编程硬件的缓冲机制实现方法及装置
US10430343B2 (en) * 2017-02-21 2019-10-01 Advanced Micro Devices, Inc. Acceleration of cache-to-cache data transfers for producer-consumer communication
EP3572946B1 (en) * 2017-03-08 2022-12-07 Huawei Technologies Co., Ltd. Cache replacement method, device, and system
US10942746B2 (en) 2017-08-31 2021-03-09 Rail Vision Ltd System and method for high throughput in multiple computations
US10691347B2 (en) * 2018-06-07 2020-06-23 Micron Technology, Inc. Extended line width memory-side cache systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224833A1 (en) * 2005-03-31 2006-10-05 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7305397B2 (en) * 2002-01-31 2007-12-04 Tririga Llc Caching data communications to reduce latency
US7512742B2 (en) * 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732244A (en) * 1995-07-24 1998-03-24 Unisys Corp. Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag
JPH09146836A (ja) * 1995-11-21 1997-06-06 Kofu Nippon Denki Kk キャッシュ索引の障害訂正装置
US6226713B1 (en) * 1998-01-21 2001-05-01 Sun Microsystems, Inc. Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
JP2001236221A (ja) 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
US7080210B2 (en) * 2002-02-12 2006-07-18 Ip-First, Llc Microprocessor apparatus and method for exclusive prefetch of a cache line from memory
US7228388B2 (en) 2004-11-19 2007-06-05 International Business Machines Corporation Enabling and disabling cache bypass using predicted cache line usage
US20060143396A1 (en) 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7403426B2 (en) * 2005-05-25 2008-07-22 Intel Corporation Memory with dynamically adjustable supply
US7577795B2 (en) 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US8041894B2 (en) 2008-02-25 2011-10-18 International Business Machines Corporation Method and system for a multi-level virtual/real cache system with synonym resolution
US8190820B2 (en) * 2008-06-13 2012-05-29 Intel Corporation Optimizing concurrent accesses in a directory-based coherency protocol
WO2010039142A1 (en) * 2008-10-02 2010-04-08 Hewlett-Packard Development Company, L.P. Cache controller and method of operation
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US8285926B2 (en) * 2010-05-03 2012-10-09 Oracle America, Inc. Cache access filtering for processors without secondary miss detection
WO2012069881A1 (en) * 2010-11-25 2012-05-31 Freescale Semiconductor, Inc. Method and apparatus for managing power in a multi-core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305397B2 (en) * 2002-01-31 2007-12-04 Tririga Llc Caching data communications to reduce latency
US20060224833A1 (en) * 2005-03-31 2006-10-05 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7512742B2 (en) * 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope

Also Published As

Publication number Publication date
WO2013095640A1 (en) 2013-06-27
KR20130132591A (ko) 2013-12-04
US9411728B2 (en) 2016-08-09
JP5643903B2 (ja) 2014-12-17
CN103348333A (zh) 2013-10-09
US20130326145A1 (en) 2013-12-05
TW201344435A (zh) 2013-11-01
EP2795472A1 (en) 2014-10-29
CN103348333B (zh) 2017-03-29
JP2014503103A (ja) 2014-02-06
KR101511972B1 (ko) 2015-04-15

Similar Documents

Publication Publication Date Title
TWI465908B (zh) 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備
CN105718390B (zh) 共享存储器链路中的低功率进入
US11281562B2 (en) Method and system for cache agent trace and capture
CN110659230A (zh) 高速缓存监视
CN102646446B (zh) 硬件动态高速缓存电源管理
TWI556161B (zh) 用以實施監測寫入至一位址的指令之處理器、系統和方法
CN104813278B (zh) 对二进制转换的自修改代码以及交叉修改代码的处理
JP3628595B2 (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
US7761696B1 (en) Quiescing and de-quiescing point-to-point links
TWI514156B (zh) 推測式快取修改技術
Lange et al. Architectures and execution models for hardware/software compilation and their system-level realization
CN103927277A (zh) Cpu和gpu共享片上高速缓存的方法及装置
TWI724058B (zh) 用於最小化窺探流量的處理器、系統單晶片及方法
JP2008525904A (ja) 異なるキャッシュロケーション長を有するキャッシュにおいてキャッシュコヒーレンシを保持するためのシステム及び方法
CN111880925A (zh) 用于提供带外处理器遥测的技术
EP3274860B1 (en) A method, apparatus and system for optimizing cache memory transaction handling in a processor
CN103999063B (zh) 处理器的存储器共享
CN109314103B (zh) 用于远程现场可编程门阵列处理的方法和装置
US10241885B2 (en) System, apparatus and method for multi-kernel performance monitoring in a field programmable gate array
CN105683922B (zh) 实现监视对地址的写入的指令的可扩展机制
Fu et al. A hardware-efficient dual-source data replication and local broadcast mechanism in distributed shared caches
JP6055456B2 (ja) 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
Ranga ParrotPiton and ZynqParrot: FPGA Enablements for the BlackParrot RISC-V Processor
Vijaya Ranga ParrotPiton and ZynqParrot: FPGA Enablements for the BlackParrot RISC-V Processor
Venkatesh Secondary Bus Performance in Reducing Cache Writeback Latency

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees