TWI305881B - Method, apparatus and system for initiating cpu data prefetches by an agent external to the cpu - Google Patents

Method, apparatus and system for initiating cpu data prefetches by an agent external to the cpu Download PDF

Info

Publication number
TWI305881B
TWI305881B TW094135257A TW94135257A TWI305881B TW I305881 B TWI305881 B TW I305881B TW 094135257 A TW094135257 A TW 094135257A TW 94135257 A TW94135257 A TW 94135257A TW I305881 B TWI305881 B TW I305881B
Authority
TW
Taiwan
Prior art keywords
data
agent
target
cache
memory
Prior art date
Application number
TW094135257A
Other languages
English (en)
Other versions
TW200634621A (en
Inventor
Ramakrishna Huggahalli
Brannon Batson
Raymond Tetrick
Robert G Blankenship
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 TW200634621A publication Critical patent/TW200634621A/zh
Application granted granted Critical
Publication of TWI305881B publication Critical patent/TWI305881B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Description

Ι3Ό5881 . (1) 九、發明說明 . 【發明所屬之技術領域】 本揭示係相關於計算系統中的記億體存取,尤其是相 關於以外部代理器初始化CPU資料預提取和預處理以增 加記億體依存操作的性能。
I 【先前技術】 • 中央處理單元(CPUs)典型上在硬體中實施預提取 以預先提取資料到CPU快取。此有助於減少當在CPU上 執行的程式實際上需要資料時的記憶體存取潛伏時間。由 於預提取,所以可利用通常比系統記憶體存取潛伏時間小 很多的潛伏時間在快取中找出資料。目前預提取硬體可追 蹤記憶體存取的空間和時間存取圖型並且代表CPU發出 預先請求到系統記憶體。然而,與CPU相關連的預提取 硬體通常無法以諸如另一CPU、晶片組、或輸入/輸出( # I/O )裝置等外部代理器加以召喚。當外部代理器具有新 資料時’典型協定需要當CPU快取需要新資料時,所有 CPU快取(若外部代理器是CPU,則具有新資料的CPU 除外)使其拷貝無效並且從記憶體讀取新資料。換言之, 每當除了外部代理器之外的CPU需要新資料時,CPU必 須從記憶體(或可能從外部代理器)讀取新資料,因此產 生比直接從CPU自己的快取讀取高很多的潛伏時間。結 果,資料處理速度由於記憶體存取而降低。 (2) 1305881 【發明內容及實施方式】 本發明的實施例包含以外部代理器初始化CPU資料 預提取的方法和裝置。在目前計算系統中,除了軟體實施 預提取機構之外,還有預提取硬體,用以預先提取資料到 CPU快取。此種預提取硬體可具有依據記憶體存取的空間 • 和時間存取圖型從系統記憶體預提取到C P U快取的資料 、 。根據本發明的實施例,預提取硬體的功能可擴充成以諸 Φ 如晶片組、I/O裝置、及除了與預提取硬體相關連的CPU 之外的CPU等外部代理器加以召喚。當外部代理器具有 新資料時,外部代理器可發出獨立的訊息或、預提取指令 〃到目標CPU的預提取硬體,使得新資料可從記憶體預 提取到目標CPU的快取。在一實施例中,預提取指令可 連同現存系統互聯交易一起傳送。在另一實施例中,預提 取指令可被當作分開交易傳送。而且,也可召喚除了預提 取新資料之外諸如預處理新資料等的其他功能。 Φ 在說明書中提及有關本發明的,一實施例〃意謂說明 有關該實施例的特定特徵、結構、或特性包括在本發明的 至少一實施例中。因此’出現在說明書各處的"一實施例 '"一詞並不一定都意指同一實施例。 圖1爲一般計算系統100圖。計算系統1〇〇包含目標 CPU 110、支援平台120、記憶體130、及至少一外部代 理器140。目標CPU可執行處理來自外部代理器14〇的資 料之程式。目標CPU可以是計算系統中唯一的CPU或複 數CPUs中的其中之一。目標CPU可包含快取112和硬體 (3) Ι3Ό5881 預提取器1 1 4。快取1 1 2被配置成目標CPU 1 1 0從此快取 存取資料比從記憶體1 3 0存取相同資料更有效率(如、快 取存取潛伏時間大幅小於記億體存取潛伏時間)。硬體預 提取器114可代表目標CPU 110傳送請求到記憶體130 以預先提取資料到快取112。硬體預提取器可依據目標 CPU之記憶體存取的可斷定空間和時間存取圖型發出預提 取請求。雖然快取112和硬體預提取器114被圖示成在圖 φ 1的目標CPU 110內,但是它們可彼此分開,且它們任一 個或二者都可與目標CPU分開。外部代理器140可包含 複數CPU系統中的另一CPU,及/或諸如晶片組和I/O 裝置等其他裝置。外部代理器可提供在目標CPU 110上 執行的程式所需之資料。支援平台120可提供在目標CPU 1 1 〇、記憶體1 3 0、和外部代理器1 40之間必要的介面。 支援平台可包含記憶體控制器125以操控從記憶體130進 出的資料之I/O。支援平台又可包含介面組件(未圖示) • 以幫助記憶體和外部代理器之間的運輸。記憶體1 30可儲 存目標CPU 1 10或包括在系統100中的任何其他裝置所 使用之資料(包括指令的順序)。與目標CPU 1 1 〇存取 位在快取112中的資訊比較,目標CPU 110存取位在記 憶體1 3 0中的資訊非常慢(如、高潛伏時間)。 當外部代理器具有新資料,外部代理器使與包括目標 CPU的快取1 1 2之所有CPU的快取中之新資料相同記億 體位址的資料的所有拷貝無效,並且寫入新資料到記億體 1 30時,計算系統! 00可執行快取連貫性協定(此協定可 (4) 1305881 被稱作寫入無效協定)。換言之,當資料的來源是外部代 理器時,在目標CPU 1 1 0上執行的程式不被預期可找出 其快取112中的資料(即產生快取失敗)並且每當程式需 要資料時都必須從記憶體獲得資料。因爲記憶體存取潛伏 時間通常比快取存取潛伏時間高很多,所以會損害到在目 標CPU上執行的程式之性能。其中一避免來自外部代理 器的資料之快取失敗的方法(因此幫助提高在目標CPU # 上執行的程式之性能)係使外部代理器能夠代表目標CPU 110初始化資料預提取。使用此方法,當外部代理器具有 新資料時,外部代理器可以傳送預提取指令召喚硬體預提 取器114。一旦接收和辨識預提取指令,硬體預提取器可 發出記憶體請求以從記憶體1 3 0預提取新資料並且將新資 料置放於快取內112。此方法指定外部代理器直接存取到 目標CPU的快取,並且被稱作直接快取存取(DCA )。 在一實施例中,可連同諸如配置(snoop )交易等現存系 ® 統互聯交易一起傳送預提取指令。在另一實施例中,預提 取指令可被當作分開交易傳送。 圖2爲外部代理器可初始化CPU資料預提取的計算 系統之功能組件圖。目標代理器210可以是CPU或處理 器並且可執行需要來自DCA源代理器260的資料之程式 。目標代理器存取目標快取220比存取記憶體25 0更快更 有效率。目標代理器包含硬體預提取器215。硬體預提取 器2 1 5可依據目標代理器2 1 0的過去空間和時間記憶體存 取圖型預作隨後的記憶體存取,並且發出記憶體請求以預 (5) 1305881 提取資料到目標快取220。也可由DCA源代理器260召 喚硬體預提取器,使得DCA源代理器所接收或產生的新 資料可預提取到目標快取。目標快取220儲存在目標代理 器上執行的程式所需之至少一部分資料。在一實施例中, 目標快取可與目標代理器相關連。在另一實施例中,目標 快取可以是系統中的任何快取。目標快取被實施成目標代 理器可從此快取存取資料比從記憶體250存取資料更有效 • 率。在—實施例中,目標代理器210、硬體預提取器215 、及目標快取220可彼此實際上分開。在另一實施例中, 這三組件可彼此實際上耦合。在另一實施例中,三者中的 任二者可實際上彼此耦合但是與第三者實際上分開。在另 —實施例中,硬體預提取器215或目標快取220任一個或 二者可實際上是目標代理器210的一部分。 請求代理器230可以是在作業系統(〇s )上執行的 CPU或處理器或相似軟體,它們將或極有可能處理新資料 ® 2 70並且知道新資料的特性。新資料的特性可包含記憶體 位址和DCA優先。記憶體位址指示來自I/O裝置或其他 裝置的資料位在記憶體中何處。DCA優先可包括DCA生 效指示器、目標識別符號、及目標快取取代屬性。DC A 生效指示器指示來自DCA源代理器的新資料可預提取到 目標代理器的快取內;目標識別符號識別目標代理器的快 取;及目標取代屬性指示新資料如何位在目標代理器的快 取中。請求代理器可不同於目標代理器或與木雕代理器相 同。 -9- (6) 1305881 路由支援平台240提供必要的支援給DCA交易以路 由資料到目標快取220並且確保目標快取和記憶體25 〇之 間的連貫。路由支援平台可以是橋接DCA源代理器(如 、DCA源代理器2 60 )和CPUs (如、目標代理器210) 的晶片組。路由支援平台2 4 0可包含記憶體控制器,用以 操控進出記憶體25 0的資料之I/O。記憶體25 0可儲存目 標代理器210、DCA源代理器260及/或包括在系統100 Φ 中的任何其他裝置所使用之資料(包括指令的順序)。在 一實施例中’記憶體控制器可以是路由支援平台的一部分 。另外,路由支援平台可與DCA源代理器分開,但是也 可以組合或耦合在一起。例如’晶片組也可以是新資料的 來源並且也可以初始化資料預提取到目標代理器的快取。 圖2所示的計算系統可包含DCA源代理器260。雖 然圖2只圖示一DCA源代理器,但是在計算系統中也可 以是複數DCA源代理器。DCA源代理器260可包含I/O • 配接器、網路介面控制器、或碟配接器。請求代理器230 傳送新資料的特性給DCA源代理器讓DCA源代理器具有 新資料270時可使用。若DCA生效指示器指示DCA功能 被生效’則在一實施例中於維持系統中的不同快取之間的 連貫性同時’ DCA源代理器也可直接傳送新資料到目標 快取220。在另一實施例中,當作代表DCA源代理器的 路由支援平台240可初始化諸如snoop等連貫性交易以確 保使與包括目標快取220的所有CPU快取中之新資料相 同的記憶體位址之資料的所有拷貝無效('、無效交易〃) -10- (7) 1305881 。對無效交易的CPU之反應視其快取中的快取線路(具 有與新資料相同的記億體位址之資料的拷貝所在之處)之 狀態而定。若快取線路是在任何CPU的快取中的修正(M )狀態,則從c P U快取逐出(回寫)資料到記憶體。記 憶體控制器合倂CPU回寫與寫入交易(用以從DCA源代 ’理器寫入新資料到記憶體)並且傳送合倂資料到記憶體。 若寫入交易是完整的快取線路寫入,則可忽略CPU回寫 φ 。若寫入交易是局部的快取線路交易,則與CPU逐出的 完整快取線路合倂。若未發現快取線路在CPU的快取中 的Μ狀態,則不會出現CPU回寫。 除了初始化無效交易之外,DCA源代理器也可產生 編碼從請求代理器接收的DCA優先之預提取指令,並且 藉由來自路由支援平台240的幫助,發出預提取指令到所 有CPUs。在一實施例中,預提取指令可連同無效交易— 起被傳送。在另一實施例中,預提取指令可被傳送當作分 • 開獨立的交易。一旦與目標代理器相關連的硬體預提取器 215接收和辨識預提取指令,硬體預提取器可根據新資料 的DCA優先以發出請求到記憶體以預提取新資料270到 目標快取220。之後,目標代理器可直接從目標快取而非 從記憶體讀取新資料以執行程式,因此減少資料讀取潛伏 時間並且提高執行程式的性能。 而且,硬體預提取器215可在使資料可在目標快取 220中能夠利用之前根據預提取指令的指示預處理新資料 。在爲預提取指令的一部分之DCA優先中可編碼預處理 -11 - (8) 1305881 資料的指令。在運送資料到快取之前,預處理選擇提供將 被預提取資料轉換成新格式之彈性。此種預處理可包含任 何資料處理類型,例如解碼、解壓縮、解密等。 圖3爲可當作如圖2所示的目標代理器210之處理器 3 00圖。處理器300又可當作外部代理器(如、在複數處 理器計算系統中)。處理器3 00可包含一或多個處理核心 (未圖示在圖3)。各個處理核心可具有與它相關連之自 • 己的快取,或一個以上的處理核心可共用一或多個快取。 在一實施例中,用於處理核心的快取可實際上與處理核心 整合在一起並且位在處理器300內。在另一實施例中,用 於處理核心的快取可實際上與處理核心分開並且可爲在處 理器3 00內部或外部。處理器300可包含硬體預提取器 310。硬體預提取器310可依據處理器300的處理核心之 過去的空間和時間記憶體存取圖型以預作隨後的記憶體存 取,及發出記憶體請求以預提取資料到請求處理核心的快 9 取內。處理器3 00又可包含預提取指令接收機構330,用 以當處理器3 00當作目標代理器時,當外部代理器具有處 理器300中的一或多個處理核心所需之新資料時,辨識和 接收由外部代理器(如、圖2所示的DCA源代理器260 )所發出的預提取指令。預提取指令可連同無效交易一起 或當作分開交易傳送到處理器300。 一旦由預提取指令接收機構3 3 0接收預提取指令,預 提取指令可通過預提取指令解碼機構34〇以解碼包括在預 提取指令中的資訊。預提取指令可包含至少將預提取的資 -12- 1305881
料之記憶體位址和目的地(如、特定處理核心的快取)^ 預提取指令解碼機構可通過被解碼資訊到硬體預提取器 310’使得硬體預提取器可依據預提取指令解碼機構350 所提供的記憶體位址和目的地資訊以從記憶體預提取資料 到接收快取。預提取指令又可包括需要在運送資料到接收 ’ 快取之前先行預處理被預提取資料的資訊(如、解密、解 碼、解壓縮、降取樣率等)。處理器可包含預處理機構 # 320以根據包括在預提取指令中的資訊預處理被預提取資 料。 而且,處理器300又可包含預提取指令傳送機構350 ’用以當處理器300當作具有目標代理器所需的新資料之 外部代理器時,傳送預提取指令到目標代理器。預提取指 令可連同連貫性交易(如、無效)一起或當作分開交易傳 送到目標代理器雖然未圖示在圖3,處理器300可另外包 含當處理器具有必須傳送到目標代理器的快取之新資料時 • 產生預提取指令的機構。 圖4爲以計算系統中的外部代理器初始化CPU資料 預提取所使用之預提取指令的範例性格式表。預提取指令 可包含複數欄位(如、在此例中有6欄位)。欄位410可 包括一訊息操作碼,用以辨識一訊息當作預提取指令。欄 位42 0可包括記憶體位址,其爲將預提取資料的基址。欄 位42 0又可包括資料長度,其爲開始於基址之將預提取的 位元組數目。因爲使用預設値(如、單一快取線路)’所 以資料長度是隨意的。欄位43 0可包括路由資訊,其可包 -13- (10) 1305881 含目標代理器中的目標快取或目標處理核心之識別( > 目 標ID 〃 )和讓系統能夠路由預提取指令到目標之任何其 他資訊。欄位440可包括由硬體預提取器發出的預提取請 求之隨意優先權資訊。因爲預提取並不影響任何架構狀態 ’所以爲了控制系統擁塞可被硬體預提取器任意忽略。就 某些需要特定性能位階的應用而言(如、服務品質),預 提取指令可請求最高優先權的其中之一,如此預提取請求 • 將至少不被完全忽略。欄位450可包括隨意快取屬性,若 存在階層則其能夠選擇快取位階,並且又可控制被預提取 的資料區塊將如何取代快取中的現存資料和進入快取中之 後的新區塊狀態。欄位460可包括隨意預處理指令,用以 指示硬體預提取器在運送資料到快取之前初始化需要的預 處理。雖然圖4所示的預提取指令之範例性格式可包含六 欄位’但是欄位數目、各個欄位的尺寸、及各個欄位的解 釋可視各個實施而定。精於本技藝之人士能夠容易地針對 # 特定實施提出修正格式,且被視作落在本揭示的例子之精 神和範圍內。 圖5爲使外部代理器能夠初始化CPU資料預提取之 —範例性計算系統5 00圖。計算系統5 00包含處理器(其 中N是正整數),510A,…,510N、晶片組520、系統 記憶體5 5 0、周邊組件互連(PCI)匯流排5 60、及連接到 PCI匯流排的至少一 I/O裝置5 70。各個處理器(如、處 理器510A)可包含一或多個處理核心512A,512B,…, 514M。各個處理核心可執行需要來自另一處理器(如、 -14- (11) 1305881 處理器51 ON)及/或其他裝置(如、I/O裝置570)的資 料之程式。在一實施例中,各個處理核心可具有自己的快 取,諸如圖式所示的514A,514B,···,512M。在另一實 施例中,一些或所有處理核心可共用一快取。典型上,處 理核心存取其快取中的資料比存取系統記憶體5 5 0中的資 料更有效率。各個處理器(如、處理器510A)又可包含 硬體預提取器(如、處理器510A的516),用以依據這/ # 這些處理核心的空間和時間的記憶體存取圖型以預先從系 統記憶體提取資料到與一或多個其處理核心相關連的快取 〇 晶片組520可另外包含記憶體控制器集線器(MCH) 530和I/O控制器集線器(ICH) 540。MCH 530可包括耦 合到系統記憶體5 5 0之記憶體控制器532,用以控制進出 系統記憶體的運輸。系統記憶體5 5 0可儲存資料,包括處 理器或包括在系統5 00中的任何其他裝置所執行之指令的 ♦ 順序。MCH 53〇可耦合於透過集線器介面ICH 540。ICH 54〇提供介面給系統中的輸入/輸出(I/O )裝置。ICH 540可包括PCI橋接器542,用以提供介面到周邊組件互 連(PCI)匯流排560。PCI橋接器542可提供處理器510 和I/O裝置5 70 (如、聲頻裝置和磁碟機)之間的資料路 徑。雖然未圖示,但是其他裝置也可耦合於PCI匯流排 560 和 ICH 540。 也可以外部代理器(如' 另一處理器及/或I/O裝置 )召喚處理器的硬體預提取器(如、處理器510A內的 -15- (12) 1305881 516) °當外部代理器具有目標處理核心執行程式所需的 新資料時’外部代理器可傳送預提取指令到所有處理器。 預提取指令編碼目標處理核心的識別目標核心ID " )°目標核心ID包括在以請求代理器傳送到外部代理器 之新資料的特性中。請求代理器可與目標核心或與目標核 心所在的處理器相同或不同之處理器內的任何其他處理核 心相同。請求代理器可執行作業系統(OS )或其他軟體 Φ 並且知道新資料如何被路由和處理。當與目標處理核心相 關連硬體預提取器(&目標硬體預提取器〃)接收預提取 指令並且辨識目標處理核心的識別時,其發出請求到系統 記憶體以預提取西資料到與目標處理核心相關連的快取。 使用預提取指令能夠讓外部代理器直接區域快取存取。結 果目標處理核心可取代系統記億體直接從其快取讀取新資 料。而且預提取指令可指示硬體預提取器在運送資料到目 標快取之前先行預處理新資料》 Φ 處理器(如、5 1 0 A )和晶片組5 2 0可經由正面匯流 排(FSB ) 5 80連接。可藉由擴充現存的匯流排讀取無效 線路(BRIL)交易協定在FSB上支援以外部代理器到快 取的直接存取。當FSB代理器想要修正快取線路時,FSB 代理器(如、處理器、晶片組、或I/O裝置)使用BRIL 交易。代理器使用非零長度BRIL ( BRIL )以從其目前位 置(處理器的快取或系統記憶體)讀取完整的快取線路到 具有獨有的快取狀態之代理器的快取。已經具有在共有狀 態中的快取線路之代理器使用零長度BRIL ( BRIL.0或 -16- (13) Ι3Ό5881 BIL )並且代理器現在想要修正快取線路。當I/O裝置寫 入到快取連貫記憶體時,也可由晶片組使用BIL交易以使 處理器快取中的快取線路之先前拷貝無效。預提取指令可 連同BIL交易("已修正BIL交易")一起傳送。當接 收已修正BIL交易時,所有處理器將使它們快取中的具有 與接收處理器之外的代理器所接收的新資料相同位址之資 料無效。並且將資料丟棄或將資料寫回系統記憶體。因爲 # 預提取指令具有將傳送新資料之目標快取或目標處理器的 目標核心之識別,所以目標處理器中的硬體預提取器將辨 識預提取指令並且傳送請求到系統記憶體以預提取新資料 。另外,預提取指令將傳送成與FSB協定分開的互聯交 易。使用此另一方法,可在外部代理器具有新資料時和以 處理器的目標核心讀取新資料時之間的任何時間傳送預提 取指令。 圖6爲使外部代理器能夠初始化CPU資料預提取的 Φ 另一範例性計算系統6 0 0圖。計算系統6 0 0包含兩處理器 6 10A 及 610B、I/O 集線器(IOH) 63 0、記憶體 620A 及 6 2 0 B、周邊組件互連(p CI )匯流排6 6 0、及連接到P CI 匯流排的至少一I/O裝置65 0。各個處理器(如、處理器 610A)可包含一或多個處理核心611A,611B,…,611M 。各個處理核心可執行需要來自另一處理器(如、處理器 6 1 0B )及/或其他裝置(如、I/O裝置65 0 )的資料之程 式。在一實施例中,各個處理核心可具有自己的快取,諸 如圖式所示的 613A,613B,…,613M。在另一實施例中 -17- (14) Ι3Ό5881 ’一些或所有處理核心可共用一快取。典型上,處理核心 存取其快取中的資料比存取系統記憶體62 0A或620B中 的資料更有效率。各個處理器(如、處理器610A)又可 包含硬體預提取器(如、處理器610A的615),用以依 據這/這些處理核心的空間和時間的記憶體存取圖型以預 先從記憶體62ΟA提取資料到與一或多個其處理核心相關 連的快取。處理器(如、6 1 0 A )可另外包含耦合於記憶 • 體(如、620A )的記憶體控制器(如、6 1 9 )以控制進出 記憶體的運輸。另外,處理器可包含鏈結介面617,用以 在處理器和IOH630之間提供點對點的連接。雖然圖式只 圖示兩處理器,值是系統600可包含只有一處理器或兩個 以上的處理器。 記憶體620A及620B都可儲存資料,包括處理器或 包括在系統600中的任何其他裝置所執行之指令的順序。 IOH 630提供介面給系統中的輸入/輸出(I/O )裝置。 ® IOH可耦合於周邊組件互連(PCI )匯流排660。I/O裝置 650可連接到PCI匯流排。雖然未圖示,但是其他裝置也 可耦合於PCI匯流排和ICH。 類似於圖5所示的系統500,也可以外部代理器(如 、另一處理器及/或I/O裝置)召喚處理器的硬體預提取 器(如、處理器6 1 0 A內的6 1 5 )以能夠使外部代理器透 過使用預提取指令直接存取到區域快取。可藉由將點對點 連接爲主的連貫性交易修正成預提取指令可連同此種交易 (如 '無效交易)一起傳送以在處理器和IOH之間的點 -18- (15) 1305881 對點連接上支援此種直接存取。另外,預提取指令可被傳 送成與點對點連接爲主的連貫性協定分開之互聯交易。 圖7爲以計算系統中的外部代理器初始化Cpu資料 預提取之範例性處理的流程圖。在方塊7 1 0中,目標代理 器(如、處理器中的處理核心)可執行使用來自DCA源 代理器(如、I/O裝置、另一處理器、或晶片組)的資料 之程式。在方塊720中,DCA源代理器可接收或產生新 • 資料。另外在方塊720中,請求代理器可傳送包括記憶體 位址和DCA優先之新資料的DCA源代理器特性。在方塊 7 30中,可以DCA源代理器產生編碼新資料的DCA優先 之預提取指令並且傳送到目標代理器與其他處理器。在一 實施例中,預提取指令可連同快取連貫性交易的一部分之 無效交易一起傳送。例如,預提取指令可連同無效交易一 起傳送當作暗示。以與目標代理器相關連的硬體預提取器 接收和辨識該暗示,使得硬體預提取器可發出預提取請求 # 到系統記憶體。在另一實施例中,預提取指令可被當作分 開交易傳送。因爲預提取指令具有有關目標代理器的資訊 ,所以當作分開交易的預提取指令可直接傳送到目標代理 器。另外,可在DCA代理器具有新資料之後及目標代理 器讀取新資料之前的任何時間傳送當作分開交易的預提取 指令。 在方塊7 40中,可以與目標代理器相關連的硬體預提 取器接收和辨識預提取指令。在方塊750中,可將所有連 貫性快取中之具有與DCA源代理器中的新資料一樣的記 '19· (16) 1305881 憶體位址之資料的拷貝丟棄或寫回到記憶體。當寫入交易 (用以從DCA源代理器寫入新資料到記憶體)是局部快 取線路交易並且快取中的資料是在修正狀態中時,出現記 億體回寫。在此情況中,寫入交易與CPU所逐出的完整 快取線路合倂。在方塊760中,新資料可寫入到記億體中 。新資料可與從目標快取逐出的資料合倂並且將合倂資料 寫入到記億體。在方塊770中,與目標代理器相關連的硬 Φ 體預提取器可發出請求到記憶體以預提取新資料(或合倂 資料)給目標快取。若預提取指令包括預處理指令,則在 將資料運送到目標快取之前,根據該指令預處理新資料( 或合倂資料)。在方塊780中,目標代理器可從目標快取 讀取新資料(或合倂資料)。 雖然以特定次序圖示圖7中的方塊,但是使用此種次 序只是爲了圖解說明方便。在各個不同的實施例中,方塊 的次序可不同。經由範例,當預提取指令可被產生並且傳 • 送當作分開交易時,可在以目標代理器讀取新資料之前( 但是在DCA代理器具有新資料之後)的任何時間傳送該 預提取指令。另外,目標代理器可經由圖3所示的整個處 理執行程式,卻不只侷限於方塊710。而且,圖3中的方 塊可被組合、分開、或重新排序以成功獲得相同的結果。 雖然已參照圖1— 7中的圖式說明揭示的技術之範例 性實施例,但是精於本技藝之人士將能夠容易明白可使用 許多其他實施本發明的方法。例如,可改變執行功能方塊 或處理程序的次序,及/或可改變、去除、或組合所說明 -20- (18) Ι3Ό5881 製造技術的例子中表示硬體模型的資料可以是具體指示用 於生產積體電路的用於遮罩之不同遮罩層上的各種特徵存 在與否之資料。此外,此表示積體電路的資料包含所揭示 的技術,因爲能夠模擬或製造資料中的電路系統或邏輯以 執行這些技術。 在設計的任何代表中,可以任何電腦可讀媒體或裝置 形式(如、硬碟驅動機、軟式磁碟驅動機、唯讀記憶體( • ROM) 、CD-ROM裝置、快閃記億體裝置、數位多用途碟 (DVD )、或其他儲存裝置)儲存資料。所揭示的技術之 實施例也可被視作實施成儲存說明設計或設計的特定部份 之位元的機器可讀儲存媒體。可販售儲存媒體本身或被其 他所使用做更進一步的設計或製造。 儘管已參照圖解實施例說明本揭示,但是此說明並不 用於解釋成限制。與該揭示有關的精於本技藝之人士應明 白,圖解實施例的各種修正與該揭示的其他實施例被視作 ® 落在該揭示的精神和範圍內。 【圖式簡單說明】 從下面本揭示的詳細說明將可明白本揭示的特徵和優 點,其中: 圖1爲一般計算系統圖; 圖2爲外部代理器可初始化CPu資料預提取的計算 系統之功能組件圖; 圖3爲外部代理器可初始化CPU資料預提取的處理 -22- (19) (19)1305881 器圖; 圖4爲用於以計算系統中的外部代理器初始化CPU 資料預提取之預提取指令的範例性格式表; 圖5爲使外部代理器能夠初始化CPU資料預提取的 一範例性計算系統圖; 圖6爲使外部代理器能夠初始化CPU資料預提取的 另一範例性計算系統圖;及 圖7爲以計算系統中的外部代理器初始化CPU資料 預提取之範例性處理的流程圖。 【主要元件符號說明】 100 :計算系統 110:目標中央處理單元 1 1 2 :快取 1 14 :硬體預提取器 120 :支援平台 125 :記億體控制器 1 3 0 :記憶體 140 :外部代理器 210 :目標代理器 215 :硬體預提取器 22 0 :目標快取 23 0 :請求代理器 240 :路由支援平台 -23- (20) 1305881 2 5 0 :記憶體 260 :直接快取存取源代理器 2 7 0 :新資料 3 0 0 :處理器 3 1 0 :硬體預提取器 3 20 :預處理機構 3 3 0 :預提取指令接收機構 > 340 :預提取指令解碼機構 350:預提取指令傳送機構 4 1 0 :欄位 4 2 0 :欄位 43 0 :欄位 440 :欄位 4 5 0 :欄位 460 :欄位 > 5 00 :計算系統 5 1 0 A :處理器 5 1 0N :處理器 5 1 2 A :處理核心 5 1 2 B :處理核心 5 1 2 Μ :處理核心 5 1 4 A :快取 5 1 4 B :快取 5 1 4 Μ :快取 -24 (21) (21)1305881 5 1 6 :硬體預提取器 5 2 0 :晶片組 5 3 0 :記憶體控制器集線器 5 3 2 :記憶體控制器 540 :輸入輸出控制器集線器 542 :周邊組件互連橋接器 5 5 0 :系統記憶體 560 :周邊組件互連匯流排 5 70 :輸入輸出裝置 5 8 0 :正面匯流排 600 :計算系統 6 1 0 A :處理器 610B :處理器 6 1 1 A :處理核心 6 1 1 B :處理核心 6 1 1 Μ :處理核心 6 1 3 A :快取 6 1 3 B :快取 6 1 3 Μ :快取 615 :硬體預提取器 6 1 7 :鏈結介面 6 1 9 :記憶體控制器 6 2 0 A :記億體 620B :記憶體 -25- (22) 1305881 630:輸入輸出集線器 650:輸入輸出裝置 66 0 :周邊組件互連匯流排
-26-

Claims (1)

1305881 十、申請專利範圍 ”年?月/丨日修(更)正替換頁 附件4A: 第从135257號專利申請案 中文申請專利範圍替換本丨 民國97年7月n日修正. 1. -種初始化CPU資料預提取之裝置,包含: —目標代理器,用以執行程式; 一外部源代理器’用以供應至少一部分資料給目標代 理器以執行程式’且當具有新資料時產生並且發出預提取 指令;及 一硬體預提取器’與目標代理器相關連,用以當接收 預fc取指令時’發出請求以從記憶體預提取新資料給目標 快取。 2 -根據申請專利範圍第1項之裝置,其中目標快取 儲存目標代理器所需的至少一部分資料以執行程式。 3 根據申請專利範圍第1項之裝置,其中記憶體儲 存目標代理器和外部源代理器的至少其中之一所使用的資 料。 4.根據申請專利範圍第1項之裝置,另外包含路由 支援平台’用以幫助從外部源代理器路由預提取指令到目 標代理器,以及目標代理器、目標快取、外部源代理器、 和記憶體之間的資料通行。 5 ·根據申請專利範圍第1項之裝置,其中目標代理 器存取目標快取中的資料快於存取記憶體中的資料。 6.根據申請專利範圍第1項之裝置,其中預提取指 1305881 「________________1 们年1月//日修(¾)正替換頁丨 —-----------——J 令連同至少存在於目標代理器和外部源代理器之間的互聯 交易一起傳送到包括至少目標代理器的代理器。 7,根據申請專利範圍第1項之裝置,其中傳送當作 分開交易的預提取指令給代理器,該代理器包括至少目標 代理器。 8 ·根據申請專利範圍第7項之裝置,其中當外部源 代理器具有新資料時’及在外部源代理器具有新資料之後 但是目標代理器讀取新資料之前的至少其中之一,傳送預 提取指令到至少目標代理器。 9.根據申請專利範圍第1項之裝置,另外包含請求 代理器’用以傳送新資料的特性給外部源代理器。 1 〇 .根據申S靑專利範圍第9項之裝置,其中新資料的 特性包含記憶體位址和直接快取存取(D C A )優先,該 DCA優先包括DCA生效指示器,目標代理器和目標快取 的至少其中之一的識別’及目標快取取代屬性。 11·根據申請專利範圍第1項之裝置,其中預提取指 令包含: 一訊息操作碼’用以識別預提取指令; 一源位址,用以指示記憶體中將預提取資料的位置; 及 路由資訊’用以幫助路由預提取指令到硬體預提取器 ,並且路由資料到記憶體和目標快取的至少其中之一。 1 2 ·根據申請專利範圍第1 i項之裝置,其中預提取 指令另外包含預處理資訊,用以指示硬體預提取器在運送 -2- 1305881 資料到目標快取之前,預處理被預提取資料。 1 3 .根據申請專利範圍第1 1項之裝置,其中預提取 指令另外包含屬性,該屬性指示接收被預提取資料的目標 快取之位階’快取的取代和逐出政策,及位在快取中的新 資料區塊之狀態的至少其中之一。 14.根據申請專利範圍第1項之裝置,該裝置由儲存 在電腦可讀媒體中的資料表示,該資料包含裝置的功能說 明。 1 5 根據申請專利範圍第1 4項之裝置,其中表示裝 置的資料包含硬體描述語言碼。 1 6 .根據申請專利範圍第i 4項之裝置,其中表示裝 置的資料包含表示複數遮罩層字串實體資料的資料,該複 數遮罩層字串實體資料表示在各個複數遮罩層的各種位置 上之材料的存在或不存在。 1 7 _ —種初始化CPU資料預提取之方法,包含: 以目標代理器執行程式; 以外部源代理器獲得新資料,該新資料爲目標代理器 所需以執行程式; 當以外部源代理器獲得新資料時,產生並且發出預提 取指令;及 當接收預提取指令時,發出請求以預提取新資料到目 標快取。 1 8 ·根據申請專利範圍第1 7項之方法,另外包含接 收新資料的特性’該特性包含記憶體位址和直接快取存取 1305881 Μ / m修(更)正替換頁! (DCA)優先,該DCA優先包括DCA生效指示器,目標 代理器和目標快取的至少其中之一的識別,及目標快取取 代屬性。 19. 根據申請專利範圍第17項之方法,其中目標快 取儲存目標代理器所需的至少一部分資料以執行程式,該 目標代理器存取目標快取中的資料快於存取記憶體中的資 料,該記憶體儲存目標代理器和外部源代理器的至少其中 之一所使用的資料。 20. 根據申請專利範圍第17項之方法,另外包含寫 入新資料到記憶體。 21. 根據申請專利範圍第17項之方法,另外包含預 提取指令連同至少存在於目標代理器和外部源代理器之間 的互聯交易一起傳送到包括至少目標代理器的代理器。 22. 根據申請專利範圍第17項之方法,另外包含在 運送資料到目標快取之前,根據包括在預提取指令中的指 示預處理被預提取資料,並且以目標代理器從目標快取讀 取新資料。 23. 根據申請專利範圍第17項之方法,另外包含傳 送當作分開交易的預提取指令至代理器,該代理器包括至 少目標代理器。 24_根據申請專利範圍第23項之方法,另外包含當 外部源代理器具有新資料時,及在外部源代理器具有新資 料之後但是目標代理器讀取新資料之前的至少其中之一, 傳送預提取指令到至少目標代理器。 -4- 1305881 中?年々月/ 修(¾正替換頁i L_..……… *’·》—* ··._·· v>··.·»«-** * - · - 2 5 ·根據申請專利範圍第1 7項之方法,其中預提取 指令包含: 一訊息操作碼,用以識別預提取指令; 一源位址,用以指示記憶體中將預提取資料的位置; 及 路由資訊,用以幫助路由預提取指令到硬體預提取器 ,並且路由資料到記憶體和目標快取的至少其中之一。 26_根據申請專利範圍第25項之方法,其中預提取 指令另外包含屬性,該屬性指示接收被預提取資料的目標 快取之位階,快取的取代和逐出政策,及位在快取中的新 資料區塊之狀態的至少其中之一。 27. 一種用以儲存預提取指令的機器可讀媒體,,該 預提取指令包含: 一包括訊息操作碼之第一欄位,用以識別預提取指令 ) 一包括源位址之第二欄位,用以指示記憶體中將預提 取資料的位置;及 一包括路由資訊之第三欄位,用以幫助路由預提取指 令到目標,並且路由資料到記憶體和目標快取的至少其中 之一,該目標與目標快取相關連。 2 8 .根據申請專利範圍第2 7項之機器可讀媒體,其 中預提取指令另外包含預處理資訊,用以指示目標在運送 資料到目標快取之前,預處理被預提取資料。 2 9 ·根據申請專利範圍第2 7項之機器可讀媒體,其 -5- 1305881 ^: }} ) ...................….......-........"-' 中預提取指令另外包含屬性,該屬性指示接收被預提取資 料的目標快取之位階,快取的取代和逐出政策,及位在快 取中的新資料區塊之狀態的至少其中之一。 30.根據申請專利範圍第27項之機器可讀媒體,其 中目標接收和辨識預提取指令,並且發出請求到記憶體以 從記憶體預提取資料到目標快取。 3 1 . —種可使用藉由外部源所初始化的預提取機構而 從外部源提取資料的處理器,包含: 一預提取器,用以提取資料;及 一預提取指令接收機構,耦合於預提取器,用以辨識 和接收來自另一代理器的外部預提取指令訊息,該外部預 提取指令訊息指示第一位址和發信到預提取器以使預提取 器能夠提取與第一位址相關連的資料。 3 2 .根據申請專利範圍第31項之處理器,另外包含 預提取指令解碼機構,耦合於預提取器和預提取指令接收 機構’用以解碼包括在外部預提取指令訊息中的資訊。 3 3 .根據申請專利範圍第3丨項之處理器,另外包含 預處理機構’用以在運送被提取資料到處理器的接收快取 之前’根據包括在外部預提取指令訊息中的資訊,預處理 被提取資料。 34_根據申請專利範圍第31項之處理器,其中預提 取器從記憶體提取與第一位址相關連的資料,該第一位址 是資料的記憶體位址。 3 5 ·根據申請專利範圍第3 1項之處理器,另外包含 -6- 1305881 碍将1月I丨日修(更)正替換頁 II· W L 〜 r-» ITl.«Jl|.||| - ,,, 預提取指令傳送機構,用以當處理器具有傳送到目標代理 器的資料時,傳送外部預提取指令訊息。 3 6.根據申請專利範圍第31項之處理器,其中外部 預提取指令訊息包含: 一訊息操作碼,用以識別外部預提取指令訊息; 一源位址,用以指示記憶體中將預提取資料的位置; 及 路由資訊’用以幫助路由外部預提取指令訊息到預提 取器’並且路由資料到處理器的接收快取。 3 7 .根據申請專利範圍第3 6項之處理器,其中外部 預提取指令訊息另外包含預處理資訊,用以指示預提取器 在運送資料到接收快取之前,預處理被提取資料。 38_根據申請專利範圍第36項之處理器,其中外部 預取指令訊息另外包含屬性’該屬性指示接收快取之位 階’接收快取的取代和逐出政策,及位在接收快取中的新 資料區塊之狀態的至少其中之一。 3 9 · —種具有可使用藉由外部源所初始化的預提取機 構而從外部源提取資料之代理器的計算系統,包含: 一目標處理器,用以執行程式; 一外部代理器’用以供應至少一部分資料給目標代理 器以執行程式’且當具有新資料時,初始化從記憶體預提 取到快取的資料’該快取與目標處理器相關連;及 一供應平台’用以提供目標處理器和外部代理器之間 的介面,並且幫助資料在目標處理器、外部代理器、快取 1305881 r-------------—-— ----------------1 卜拎7月"π修(寬)正替換ι| ;:______________________________________________—*—」 、和記憶體之間移動; 其中目標處理器存取快取中的資料快於存取記憶體中 的資料。 40.根據申請專利範圍第3 9項之計算系統,其中外 部代理器藉由產生和發出預提取指令以初始化從記億體預 提取到快取的資料。 4 1 .根據申請專利範圍第3 9項之計算系統,其中外 部代理器包含計算系統中的另一處理器。 42 ·根據申請專利範圍第3 9項之計算系統,其中外 部代理器包含計算系統中的晶片組。 43 ·根據申請專利範圍第3 9項之計算系統,其中外 部代理器包含I/O裝置,該I/O裝置是包括在計算系統中 的至少其中之一並且耦合於計算系統。 44.根據申請專利範圍第3 9項之計算系統,另外包 含硬體預提取器’與目標處理器相關連,用以當接收和辨 識預提取指令時’發出請求以從記憶體預提取新資料到快 取。 45 根據申請專利範圍第3 9項之計算系統,其中預 提取指令連同至少存在於目標處理器和外部代理器之間的 互聯交易一起傳送到包括至少目標處理器的代理器。 46.根據申請專利範圍第3 9項之計算系統,其中傳 送當作分開交易的預提取指令到代理器,該代理器包括至 少目標處理器。 4 7 .根據申請專利範圍第3 9項之計算系統,其中當 -8- Γ305881 外部代理器具有新資料時,及在外部代理器具有新資料之 後但是目標處理器讀取新資料之前的至少其中之一,傳送 預提取指令到至少目標處理器。 48.根據申請專利範圍第3 9項之計算系統,其中預 提取指令包含: 一訊息操作碼,用以識別預提取指令; 一源位址,用以指示記憶體中將預提取資料的位置; 及 路由資訊,用以幫助路由預提取指令到硬體預提取器 ,並且路由資料到記憶體和快取的至少其中之一。 4 9.根據申請專利範圍第48項之計算系統,其中預 提取指令另外包含預處理資訊,用以指示硬體預提取器在 運送資料到快取之前,預處理被預提取資料。 5 〇 .根據申請專利範圍第4 8項之計算系統,其中預 提取指令另外包含屬性,該屬性指示接收被預提取資料的 快取之位階,快取的取代和逐出政策,及位在快取中的新 資料區塊之狀態的至少其中之一。 5 1 . —種用以儲存資料的機器可讀媒體,,該資料係 當由處理器連同模擬常式存取時,提供包含經由藉由外部 代理器所初始化的預提取機構而藉由代理器從外部器提取 資料之模型的功能,包括: 一目標代理器,用以執行程式; 一外部源代理器,用以提供至少一部分資料給目標代 理器以執行程式,且當具有新資料時,產生並且發出預提 -9- 1305881 月丨丨日修ct)正替換頁 取指令;及 L— 丨' I I ------1----I ΙϋΙΙΙ I ill Ml· 一硬體預提取器,與目標代理器相關連,用以當接收 和辨識預提取指令時’發出請求以從記憶體預提取新資料 給目標快取; 其中目標代理器存取目標快取中的資料比存取記憶體 中的資料更有效率。 5 2 .根據申請專利範圍第51項之機器可讀媒體,其 中預提取指令連同至少存在於目標代理器和外部源代理器 之間的互聯交易一起傳送到包括至少目標代理器的代理器 〇 5 3 .根據申請專利範圍第51項之機器可讀媒體,其 中傳送當作分開交易的預提取指令到代理器,該代理器包 括至少目標代理器。 -10-
TW094135257A 2004-10-15 2005-10-07 Method, apparatus and system for initiating cpu data prefetches by an agent external to the cpu TWI305881B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/966,231 US7360027B2 (en) 2004-10-15 2004-10-15 Method and apparatus for initiating CPU data prefetches by an external agent

Publications (2)

Publication Number Publication Date
TW200634621A TW200634621A (en) 2006-10-01
TWI305881B true TWI305881B (en) 2009-02-01

Family

ID=35515631

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094135257A TWI305881B (en) 2004-10-15 2005-10-07 Method, apparatus and system for initiating cpu data prefetches by an agent external to the cpu

Country Status (5)

Country Link
US (1) US7360027B2 (zh)
KR (1) KR100958967B1 (zh)
CN (2) CN100514282C (zh)
TW (1) TWI305881B (zh)
WO (1) WO2006044743A2 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7443848B2 (en) * 2004-09-29 2008-10-28 Intel Corporation External device-based prefetching mechanism
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7356456B1 (en) * 2004-11-12 2008-04-08 Paravirtual Corporation Computer storage exception handing apparatus and method for virtual hardware system
US7437517B2 (en) * 2005-01-11 2008-10-14 International Business Machines Corporation Methods and arrangements to manage on-chip memory to reduce memory latency
US20060259658A1 (en) * 2005-05-13 2006-11-16 Connor Patrick L DMA reordering for DCA
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
JP2007241612A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd マルチマスタシステム
US7681047B2 (en) * 2006-04-18 2010-03-16 International Business Machines Corporation Decryption of data in storage systems
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) * 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7669086B2 (en) * 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7555597B2 (en) * 2006-09-08 2009-06-30 Intel Corporation Direct cache access in multiple core processors
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7937532B2 (en) * 2007-03-30 2011-05-03 Intel Corporation Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
GB2454809B (en) * 2007-11-19 2012-12-19 St Microelectronics Res & Dev Cache memory system
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US7958313B2 (en) * 2007-12-18 2011-06-07 International Business Machines Corporation Target computer processor unit (CPU) determination during cache injection using input/output (I/O) adapter resources
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US8064307B2 (en) * 2008-09-16 2011-11-22 Emt Co., Ltd. Reproducing device, reproducing method and program used in the same
US8234458B2 (en) * 2008-12-09 2012-07-31 Nvidia Corporation System and method for maintaining cache coherency across a serial interface bus using a snoop request and complete message
US8886760B2 (en) * 2009-06-30 2014-11-11 Sandisk Technologies Inc. System and method of predictive data acquisition
US8984228B2 (en) 2011-12-13 2015-03-17 Intel Corporation Providing common caching agent for core and integrated input/output (IO) module
US9239793B2 (en) * 2011-12-13 2016-01-19 Ati Technologies Ulc Mechanism for using a GPU controller for preloading caches
US8539506B2 (en) * 2012-02-09 2013-09-17 Microsoft Corporation Dynamic injection of code into running process
CN104035888B (zh) * 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备
US10078589B2 (en) * 2015-04-30 2018-09-18 Arm Limited Enforcing data protection in an interconnect
CN106302234B (zh) * 2015-06-24 2019-03-19 龙芯中科技术有限公司 网络包传送方法、以太网控制器、高速缓存及系统
EP3405864A4 (en) * 2016-01-22 2019-08-21 Sony Interactive Entertainment Inc. CPUID MYSTIFICATION FOR RETROCOMPATIBILITY
US10073775B2 (en) * 2016-04-01 2018-09-11 Intel Corporation Apparatus and method for triggered prefetching to improve I/O and producer-consumer workload efficiency
CN107544937A (zh) * 2016-06-27 2018-01-05 深圳市中兴微电子技术有限公司 一种协处理器、数据写入方法和处理器
GB2567466B (en) * 2017-10-12 2020-01-22 Advanced Risc Mach Ltd Cache stashing in a data processing system
US10366027B2 (en) * 2017-11-29 2019-07-30 Advanced Micro Devices, Inc. I/O writes with cache steering
US10664273B2 (en) * 2018-03-30 2020-05-26 Intel Corporation Delayed prefetch manager to multicast an updated cache line to processor cores requesting the updated data
WO2020038466A1 (zh) * 2018-08-24 2020-02-27 华为技术有限公司 数据预取方法及装置
US10860487B2 (en) * 2019-04-17 2020-12-08 Chengdu Haiguang Integrated Circuit Design Co. Ltd. Multi-core processing device and method of transferring data between cores thereof
CN117707625A (zh) * 2024-02-05 2024-03-15 上海登临科技有限公司 支持指令多发的计算单元、方法及相应图形处理器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371870A (en) 1992-04-24 1994-12-06 Digital Equipment Corporation Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US6460115B1 (en) 1999-11-08 2002-10-01 International Business Machines Corporation System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism
US6711651B1 (en) 2000-09-05 2004-03-23 International Business Machines Corporation Method and apparatus for history-based movement of shared-data in coherent cache memories of a multiprocessor system using push prefetching
US6922753B2 (en) 2002-09-26 2005-07-26 International Business Machines Corporation Cache prefetching
US20040117606A1 (en) 2002-12-17 2004-06-17 Hong Wang Method and apparatus for dynamically conditioning statically produced load speculation and prefetches using runtime information
US8533401B2 (en) 2002-12-30 2013-09-10 Intel Corporation Implementing direct access caches in coherent multiprocessors
US7010666B1 (en) 2003-01-06 2006-03-07 Altera Corporation Methods and apparatus for memory map generation on a programmable chip
US20040199727A1 (en) 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7231470B2 (en) * 2003-12-16 2007-06-12 Intel Corporation Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system
US8281079B2 (en) 2004-01-13 2012-10-02 Hewlett-Packard Development Company, L.P. Multi-processor system receiving input from a pre-fetch buffer
US20050246500A1 (en) 2004-04-28 2005-11-03 Ravishankar Iyer Method, apparatus and system for an application-aware cache push agent
US7366845B2 (en) 2004-06-29 2008-04-29 Intel Corporation Pushing of clean data to one or more processors in a system having a coherency protocol
US8255591B2 (en) 2004-09-23 2012-08-28 International Business Machines Corporation Method and system for managing cache injection in a multiprocessor system
US20060095679A1 (en) 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US7246205B2 (en) 2004-12-22 2007-07-17 Intel Corporation Software controlled dynamic push cache

Also Published As

Publication number Publication date
CN101697118B (zh) 2013-06-19
CN100514282C (zh) 2009-07-15
KR20070059127A (ko) 2007-06-11
WO2006044743A3 (en) 2006-08-17
CN101697118A (zh) 2010-04-21
KR100958967B1 (ko) 2010-05-20
TW200634621A (en) 2006-10-01
CN101036118A (zh) 2007-09-12
US20060085602A1 (en) 2006-04-20
US7360027B2 (en) 2008-04-15
WO2006044743A2 (en) 2006-04-27

Similar Documents

Publication Publication Date Title
TWI305881B (en) Method, apparatus and system for initiating cpu data prefetches by an agent external to the cpu
JP6969853B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US7937532B2 (en) Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
US9098415B2 (en) PCI express transaction descriptor
US8838907B2 (en) Notification protocol based endpoint caching of host memory
US6338119B1 (en) Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance
US20160224467A1 (en) Hierarchical cache structure and handling thereof
US20080133844A1 (en) Method and apparatus for extending local caches in a multiprocessor system
US20070150664A1 (en) System and method for default data forwarding coherent caching agent
US8543765B2 (en) Efficient data prefetching in the presence of load hits
TWI298126B (en) Method of executing an instruction by a microprocessor in a multiprocessor environment, recording medium comprising a compiler for generating a set of computer executable instructions, and multiprocessor data processing system
TW542958B (en) A method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
TW200421089A (en) Method and apparatus for injecting write data into a cache
TW200945057A (en) Cache coherency protocol in a data processing system
KR100613817B1 (ko) 분산 캐시들을 이용하기 위한 방법 및 장치
US8782349B2 (en) System and method for maintaining cache coherency across a serial interface bus using a snoop request and complete message
US20090006668A1 (en) Performing direct data transactions with a cache memory
JP2008503003A (ja) コヒーレント・マルチプロセッサ・プロトコルを有するシステムにおけるダイレクト・プロセッサ・キャッシュ・アクセス
TWI428754B (zh) 以主動式預取寬度執行加強式停懸狀態之系統及方法
TWI242134B (en) Data extraction method and system
CN111913891A (zh) 用于减少两级式存储器中的目录更新开销的混合式基于目录和监听的一致性
US20050091457A1 (en) Method and apparatus for an in-situ victim cache
US20070050549A1 (en) Method and system for managing cacheability of data blocks to improve processor power management

Legal Events

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