TW200809501A - Method for command list ordering after multiple cache misses - Google Patents

Method for command list ordering after multiple cache misses Download PDF

Info

Publication number
TW200809501A
TW200809501A TW096103588A TW96103588A TW200809501A TW 200809501 A TW200809501 A TW 200809501A TW 096103588 A TW096103588 A TW 096103588A TW 96103588 A TW96103588 A TW 96103588A TW 200809501 A TW200809501 A TW 200809501A
Authority
TW
Taiwan
Prior art keywords
instruction
address
instructions
address translation
input
Prior art date
Application number
TW096103588A
Other languages
English (en)
Inventor
John D Irish
Chad B Mcbride
Ibrahim A Ouda
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200809501A publication Critical patent/TW200809501A/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

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)
  • Advance Control (AREA)

Description

200809501 九、發明說明: 【發明所屬之技術領域】 本發明一般而言係關於處理指令佇列中之指令。更具體 言之,本發明係關於在多快取錯失後保持指令佇列中之指 令排序以進行位址變換。 【先前技術】 計算系統通常包括一或多個可通信地耦接至記憶體及輸 入/輸出(IO)裝置之中央處理單元(CPU)。記憶體可為包含 電腦執行計算所必要的一或多個程式及資料之隨機存取記 憶體(RAM)。舉例而言,記憶體可包含一用於加密資料之 程式以及待加密資料。10裝置可包括視訊卡、音效卡、圖 形處理單元及經組態以發出指令並自CPU接收回應之類似 裝置。 CPU可解譯並執行一或多個接收自記憶體或IO裝置之指 令。舉例而言,系統可接收一請求而添加兩個數字。CPU 可執行一程式(在記憶體中)之一連串指令,包含添加兩個 數字之邏輯。CPU亦可自一輸入該等兩個待添加數字之輸 入裝置接收使用者輸入。計算結束時,CPU可在諸如顯示 幕之輸出裝置上顯示結果。 因為在處理前一指令之後自一裝置發送下一指令可能會 花費較長時間(在此期間CPU可能必須保持閒置),所以可 將來自一裝置之多個指令在CPU上排入一指令佇列中。因 此,CPU將在處理前一指令之後快速存取下一指令。由於 指令之間的相依性,所以CPU可能需要按給定順序執行指 118391.doc 200809501 令。因此,指令可置於佇列中且按先進先出(FIF〇)順序進 行處理,以確保按適當順序執行依附指令。舉例而言,若 一記憶體位置上之一讀取操作跟隨彼位置處之一寫入操 作,則必須首先執行寫入操作,以確保在讀取操作中讀取 正確資料。因此,源自同一1/0裝置之指令可由cpu按指令 被接收的順序進行處理,而來自不同裝置之指令可不按順 序處理。 CPU所接收之指令可廣泛地分為:需要位址變換之指 令,及(b)無位址之指令。無位址之指令可包括中斷及同步 指令,諸如 PowerPC 之 eieio (Enforce In-order Execution of
Input/Output :按順序執行輸入/輸出操作)指令。中斷指令 可為自一裝置至CPU之指令,該指令要求CPU搁置其正在 做的事情而進行別的事情。可發出一同步指令以阻止處理 後續指令,直至該同步指令之前的所有指令均處理完為 止。因為沒有與此等指令相關聯之位址,所以此等指令無 需位址變換。 需要位址變換之指令包括讀取指令及寫入指令。讀取指 令可包括待讀取資料之位置的位址。類似地,寫入指令可 包括待寫入資料之位置之位址。因為指令中所提供之位址 可為虛擬位址,所以位址可能需要在執行讀取或寫入之前 變換為記憶體中一實際的實體位置。 位址變換可能需要檢查一段表及/或一頁表以將一虛擬 位址與一實體位址相匹配。對於新近的目標位址,頁表及 段表項可保持於一快取記憶體中以便快速有效地存取。然 118391.doc 200809501 而 甚至在藉由快取記憶體進行快速有效存取的情況下, 後續指令亦可能在位址變換中停滯於管線中。此問題之一 個解決方案在於在位址變換期間處理指令佇列中之後續指 令。然而’仍必須為來自同一 1/〇裝置之指令保持指令順 序。 變換期間若快取記憶體中未發現任何將虛擬位址變換成 實體位址之表項,則該項可能必須自記憶體中提取。存在 變換快取錯失時之提取項可能會導致相當大的潛時。當一 指令發生變換快取錯失時,後續指令之位址變換可能仍在 繼績。然而,系統僅能允許一個變換快取錯失。因此,當 處置一變換快取錯失的同時,僅能處理具有變換快取命中 (錯失下命中)之彼等後續指令或無需位址變換之指令。因 為處置變換快取錯失可能花費較長時間,所以在處置第一 變換快取錯失之同時發生第二變換快取錯失的可能性便相 對較高。 此問題之一個解決方案為一次僅處置一個指令。然而, 如上所述,此可能導致嚴重的效能降級,因為指令可能在 位址變換期間停滯於管線中。另一解決方案在於包括用以 處置多錯失之硬體。然而,此解決方案可能使得系統對於 必須處置之每一遞增多錯失而言愈來愈複雜。又一解決方 案可為包括變換快取之預裝,其中該軟體確保無錯失。然 而,此解決方案將產生過多的軟體負擔。 因此’需要有效處置一指令佇列中之多快取錯失之系統 及方法。 118391.doc 200809501 【發明内容】 本發明一般而言提供用於處理指令佇列中之指令之方法 及系統。更具體言之’本發明係關於在多快取錯失後保持 指令作列中之指令排序以進行位址變換。 本發明之一實施例提供一種用於處置一指令佇列中之多 變換快取錯失的方法,該指令佇列中儲存有一連串接收自 一或多個輸入/輸出裝置之指令。該方法一般而言包含: 將指令仵列中之第-指令之目標位址發送至位址變換邏輯 以待變換;及,回應於判定該變換邏輯之位址變換表中不 存在包含該指令㈣巾之㈣—指令之該目標位址之虛實 變換的位址變換項,而開始自記憶體擷取該位址變換項。 該方法進-步包括在擷取該第—指令之項的同時處理在該 第-指令之後所接收的一或多個指令,其中該處理包括將 該才曰7 U中之第—指令之目標位址發送至位址變換邏輯 以待變換,·及’回應於判定該變換邏輯之位址變換表中不 存在包含該第二指令之目標位址之虛實變換的位址變換 項,而停滯後續指令之處理,直至榻取到第一項之目標位 址之位址變換項為止,其中停滞該等指令之處理包含停止 指令之處理並設置—指標以指向該指令佇列中之第二指 令。 一曰 人本發明之另一實施例提供-種系統,該系統-般而十包 :::多:輸二輸出裝置及一處理器。該處理器-般而 3 0扣令佇列,其經組態以儲存一連串接收白兮 或該等輸入/輸出I置 串接收自該 置之指$,(U)—輸入控制器,盆 118391.doc 200809501 態以按一管線方式處理來自該指令佇列之該等指令,(^) 位址變換邏輯,其經組態以使用具有包含虛實位址變換之 項的位址變換表來變換該輸入控制器所處理之指令之目標 位址,及,(iv)控制邏輯,其經組態以回應於判定該變換 邏輯之位址變換表中不存在包含在該第—指令之後所接收 之第二指令之目標位址之虛實變換的位址變換項,而停滯 該輸入控制器對在一正被擷取一位址變換項之第一指令之 後所接收的指令所進行的處理,直至擷取到該第一項之該 目標位址之一位址變換項為止,並設置一指標至該第二指 令在該指令佇列中之位址。 本發明之又一實施例提供一種微處理器,該微處理器一 般而言包含··⑴一指令佇列,其經組態以儲存來自一輸入 /輸出裝置之-連串指令,⑼-輸人控制器,其經組態以 知苢線方式處理該指令符列中之該等指令,(Hi)位址變換 邏輯,其經組態以利用快取位址變換項將虛擬位址變換成 貝體位址,且在快取記憶體中未發現一指令之位址變換項 的情況下,自記憶體擷取一相應的位址變換項,及,(iv) 一輸出控制器,其經組態以回應於偵測到在第一指令之後 所接收之第二指令之目標位址之變換項並不存在於位址變 換表中,而停滯在第一指令之後所接收的指令之處理,直 至擷取了第一指令之目標位址之位址變換項為止,並設置 •曰4示至弟一指令在該指令仔列中之位址。 【實施方式】 本發明之實施例提供處置多變換快取錯失時用於在保持 118391.doc 200809501 順序的同時處理—指令仔列中之指令的方法及系 、先私々可在CPU上排入一輸入指令仵列中。在一指令之 。文換期間,可處理後續指令以增強效率。經處理之指 令可置於一輪出佇列中,並由1/0裝置按順序發送至cpu。 在位址變換期間,若處置一未處理錯失之同時發生一變換 • 陕取錯失,則可停滯管線,且引起該第二錯失之指令及所 • 有後㈣令均可在處置該第-錯失之後再次進行處理。 下文中將參考本發明之實施例。然而,應瞭解本發 月亚不限於所述具體實施例。實情是,下述特徵及元件之 任何組合無論是否關於不同實施例,均預期用來實施及實 現本叙明。此外,在各實施例中,本發明將提供優於先前 技術之許多優點。然而,儘管本發明之實施例可達成優於 八他可此的解決方案及/或優於先前技術的優點,然而是 否由一給定實施例達成特定優點並不限制本發明。因此, 下述態樣、特徵、實施例及優點僅為說明性的,且並不應 φ 看作附加之申請專利範圍之要素或限制,除非請求項中明 確陳述。同樣地,對「本發明」之參考不應解釋為係本文 • 所揭示之任何發明標的物之普遍化,且不應看作附加之申 請專利範圍之要素或限制,除非請求項中明確陳述。 • 例示性系統 圖1說明其中可實施本發明之實施例的例示性系統i 〇〇。 系統100可包括中央處理單元(cpu)11〇,cpu 11〇^通信耦 接至輸入/輸出(10)裝置12〇及記憶體14〇。舉例而言,cPU 可藉由10橋接器120耦接至1〇裝置13〇,並藉由一匯流 I18391.doc -11 - 200809501 排耦接至記憶體140。如圖所示,1〇裝置13〇可經組態以藉 由(例如)指令131而將輸入提供至cpu 11〇。例示性ι〇裝置 包括圖形處理單兀、視訊卡、音效卡、動態隨機存取記憶 體(DRAM)及類似裝置。 " 10裝置130亦可經組態以自cpu 11〇接收回應132。舉例 而言,回應132可包括CPU 11〇所作出之計算結果,該等結 果可顯示給使用者。回應132亦可包括在一記憶體裝置(諸 如上述DRAM裝置)上執行之寫入操作。雖然圖i中說明兩 個10裝置120,但熟習此項技術者將認識到可將任何數目 的10裝置130在同一或多個匯流排上耦接至cPU。 記憶體140較佳為隨機存取記憶體,諸如動態隨機存取 圮憶體(DRAM)。記憶體14〇可足夠大以保存cpu所處理之 一或多個程式及/或資料結構。雖然記憶體14〇展示為單一 實體,但應瞭解,記憶體14〇事實上可包含複數個模組, 且記憶體140可存在為自高速快取記憶體至低速但較大 DRAM晶片之多個水準。 CPU 110可包括指令處理器111、變換邏輯112、嵌式處 理器113及快取記憶體114。指令處理器111可自10裝置120 接收一或多個指令131並處理指令。每一指令131可廣泛地 分為需要位址變換之指令及無位址之指令。因此,處理指 令可包括判定指令是否需要位址變換。若指令需要位址變 換’則指令處理器便可將指令調度至變換邏輯112以備位 址篗換。在需要變換之彼等指令13 1變換之後,指令處理 器可將有序指令133置放於晶片上匯流排117上,以由記憶 118391.doc -12- 200809501 體控制器118上之嵌式處理器113進行處理。 變換邏輯112可自指令處理器U1接收一或多個需要位址 變換之指令。舉例而言,需要位址變換之指令可包括讀取 及寫入指令。讀取指令可包括待讀取資料之位置的位址。 類似地,寫入操作可包括待寫入資料的位置之位址。 需要變換之指令中所包括之位址可為虛擬位址。虛擬位 址可意指分配給特定程式之虛擬記憶體。虛擬記憶體可為 指配給該程式之連續記憶體空間,該空間可映射至記憶體 140内之不同的非相連實體記憶體位置。舉例而言,虛擬 記憶體位址可映射至實體記憶體及/或次級儲存器中之不 同的非連續記憶體位置。因此,當使用虛擬記憶體位址 時,該虛擬位址必須變換成一實際的實體位址以執行彼位 置上之操作。 位址變換可包括檢查段表及/或頁表。段表及頁表可將 虛擬位址與實體位址相匹配。此等變換表項可駐存於記憶 體140中。新近存取之資料的位址變換可保持於快取記憶 體114中之段表項116及頁表項115中,以減少用於先前存 取位址之後續存取之變換時間。若快取記憶體丨i 4中未發 現位址變換,則必要時可自記憶體或其他儲存器引入變換 至快取記憶體中。 段表項116可指示虛擬位址是否處於一分配給特定程式 的記憶體區段内。區段可為虛擬記憶體中之可變大小區 塊母區塊指配給一特定程式或進程。因此,可首先存 取段表。若虛擬位址涉及一程式之一區段之界限以外的區 H8S91.doc -13- 200809501 域,則可能發生分段錯誤。 每一區段可進一步分為固定大小之稱為頁之區塊。虛擬 位址可定址區段内所包含之頁中之一或多者。頁表115可 將虛擬位址映射至記憶體14〇中之頁。若記憶體中未發現 頁’則可自駐存有所需頁的次級儲存器處擷取該頁。 指令處理 圖2為根據本發明之一實施例之指令處理器丨丨丨的詳圖, 其中指令處理器111可經組態以處理來自1〇裝置13〇之指 令。指令處理器111可包含輸入指令FIFO 201、變換介面 輸入控制202、變換介面輸出控制203及指令FIFO 204。輸 入指令FIFO 201可為一緩衝器,該緩衝器大得足以保存1〇 裝置120可發出至CPU之至少一預定數目的指令131。指令 131可按其接收順序循序地排入輸入指令FIF〇 2〇1中。 變換介面輸入控制(TIIC)202可監視並管理輸入指令 FIFO 201。TIIC可維持讀取指標210及寫入指標211。讀取 指標210可指向輸入指令FIF〇中將進行處理的下一可用指 令。寫入指標211可指示用於在輸入指令FIF〇中寫入新接 收指令之下一可用位置。當自輸入指令FIF〇擷取每一指令 以備處理時,可遞增讀取指標。類似地,當自1〇裝置擷取 每一指令時,亦可遞增寫入指標。若讀取或寫入指標到達 輸入指令FIFO之末尾,則指標可重新設定以在下一遞量處 指向輸入指令FIFO之開始。 TIIC 202可經組態以藉由阻止寫入指標增加超過讀取指 標而確保輸入指令FIF〇不會溢出。舉例而言,若寫入指標 118391.doc -14- 200809501 増加且與讀取指標指向相同位置,則缓衝器可能充滿未經 處理之指令。若接收任何其他指令,則TIIC可發送一指示 CPU中無法鎖存指令之錯誤訊息。 TIIC 202亦可判定輸入指令FIFO 201中所接收之指令是 否為需要位址變換之指令。若接收一需要變換之指令,則 可將該指令引導至變換邏輯i 12以備處理。然而,若指令 無需位址變換,則該指令可沿管線往下傳遞。 圖3為TIIC所執行以便處理輸入指令FIF0中之指令的例 不性操作的流程圖。TIIC所執行之操作可為管線式操作。 因此,在任一給定時刻可處理多個指令。舉例而言,第一 指令由TIIC自輸入指令FIF〇接收以備處理。當正在接收第 一指令時,先前所接收之第二指令便由TIIC發送至變換邏 輯以備位址變換。 TIIC中之操作藉由自輸入指令]pIFO接收指令而開始於步 驟301中。舉例而言,TIIC可讀取讀取指標所f向之指 令。在讀取該指令之後,可遞增讀取指標以指向下一指 令。在步驟302中,TIIC可判定所擷取之指令是否需要位 址變換。若判定指令需要位址變換,則可在步驟3〇3中將 指令發送至變換邏輯112以備位址變換。在步驟3〇4中,可 將發送至變換邏輯之指令之輸入指令FIFO位址沿管線往下 發送。在步驟302中,若判定指令無需位址變換,則可在 步驟305中將指令及指令之輪入指令fif〇位址沿管線往下 發送。 再次參看圖2,變換邏輯112可處理來自Tnc之位址變換 118391.doc 200809501 請求。位址變換可包括檢查段表及頁表以於記憶體14〇中 將一虛擬位址轉換成一實際的實體位址。在某些實施例 中,變換邏輯可允許對頁表及段表快取記憶體進行管線存 取。若在位址變換期間逢遇頁或段快取錯失,則快取記憶 體可在快取錯失被處置的同時繼續為後續指令供應快取命 中。 如圖2所說明,若在位址變換中無錯失發生,則變換邏 輯可將變換結果提供至變換介面輸出控制(丁I〇c)2〇3。然 而,若發生一錯失,則變換邏輯可通知TI〇c關於引起該 錯失之指令。 圖4為變換邏輯所執行以便進行位址變換之例示性操作 的流程圖。如同TIIC一樣,變換邏輯所執行之操作亦可為 笞線式的。因此,在任一給定時刻可處理多個指令。該等 知作可藉由自TIIC接收一位址變換請求而開始於步驟4〇工 中。在步驟402中,變換邏輯可存取段表及頁表快取記憶 體以擷取相應項’從而將虛擬位址變換成—實體位址。^ /驟403中,右在快取記憶體中發現相應的頁表及段表 項,則可在步驟404中將位址變換結果發送至TI〇C。 然而’若在段表及頁表快取記憶體中未發現頁表及段表 員則可在步驟4〇5中將指令位址之變換錯失的通知發送 至™C。變換邏輯可在步驟406中開始錯失處置程序:舉 例而吕’錯失處置可包括為相應的頁表或段表項發送一妹 求至記憶體。 % 重要的是應注意,對於苴此者 _ 对於某些只鉍例而έ,當正在處置一 118391.doc -16 · 200809501 未處理錯失時’變換邏輯僅可處置一個變換快取錯失。若 發生一第一錯失,則可將錯失通知發送至TI〇c。下文將 較為詳細地論述在處理一未處理錯失的同時如何處置一第 二錯失。此外,當正在處置一未處理錯失時,可繼續處理 需要位址變換之後續指令。因為自記憶體或次級儲存器擷 取頁表及段表項可能花費相對較長的時間,所以停滯後續 才曰令可能使效能明顯降級。因此,具有變換快取命中之後 續指令可在處置一錯失的同時進行處理。 處理錯失下命中 再次參看圖2,TIOC可追蹤變換邏輯所處置之未處理錯 失之數目,並基於指令之間的相依性而維持指令排序。舉 例而s,對於發送至變換邏輯以備位址變換之指令以及無 需位址變換之指令,TIOC皆可接收其輸入指令FIF〇位 址。若不按順序地自同一 IO裝置接收指令,則Ti〇c可將 指令保持於指令佇列204中,並基於此等指令之輸入指令 IFO位址而技所需順序將其調度至CPU。圖2說明由 儲存於指令佇列204中之指令。若該等指令對於ι〇裝置而 吕無序,則丁IOC可如圖所示將指令133調度至cPU。 牛例而σ,輸入指令FIFO中之第一指令可能需要位址變 換且可傳送至變換邏輯以備位址變換。當變換第一指令 的同時’可在該第一指令之變換完成之前將一依附於第一 才曰令的可能無需位址變換之後續第二指令傳遞至ti〇c。 由於依賴性,TI0C可將第二指令保持於指令佇列中,直 至處理70第一指令為止。之後,第一指令可在第二指令之 118391.doc -17- 200809501 前調度至CPU。類似地,當變換第一指令的同時,依附於 該第一指令之第三後續指令可獲得一變換快取命中並傳遞 至TIOC。如同第二指令一樣,第三指令亦可保持於指令 佇列中,直至處理並調度完第一指令為止。 TIOC亦可監視變換邏輯中發生之錯失的數目,以於一 錯失下識別一錯失。如上所述,每當變換邏輯中發生錯失 時,便可發送一通知至TIOC以識別獲得錯失之指令。因 為某些實施例一次僅允許處置一個變換快取錯失,所以, 若在處置第一錯失的同時發生第二錯失,則TIOC可阻滯 管線直至處置完第一錯失為止。圖2說明一停滞管線信 號,其自TIOC發送至TIIC以識別引起第二錯失之指令。 圖5為TIOC執行以便處置位址變換錯失之例示性操作的 流程圖。該等操作藉由自變換邏輯接收一錯失通知而於步 驟501中開始。在步驟502中,TIOC判定是否有任何未處 理錯失正被變換邏輯處置。若當前沒有未處理錯失正被變 籲 換邏輯處理,則在步驟511中,TIOC記錄指令之輸入指令 FIFO位址。在步驟512中,TIOC可允許處理跟在引起錯失 之指令之後的指令,從而改良效能。另一方面,若在步驟 502中判定一未處理錯失正被處置,則可停滯管線。此可 在步驟503中,藉由將停滯指示及引起第二錯失之指令的 輸入指令FIFO位址一同發送至TIIC而完成。在步驟5〇4 中,TIOC可忽略跟在引起第二錯失之指令之後的所有指 令。TIOC可藉由此等指令之輸入指令Fif〇位址而對其進 行判定。 118391.doc -18- 200809501 回應於自丁IOC接收停滯通知,TIIC可藉由不發出指令 而停滯管線,直至自TIOC收到進一步通知為止。管線可 分π直至處置完第一錯失且TIOC接收到變換結果為止。 亦可將瀆取指標重新設置為指向輸入指令FIFO中引起 第一錯失之指令。因此,引起第二錯失之指令及後續指令 可在處置完第一錯失之後重新發出。
可在重新發出引起第二錯失之指令及後續指令之前排空 吕線圖6為經執行以在處置完一未處理變換快取錯失之 後重新發出一引起第:錯失之指令的例示性操作的流程 圖。该等操作藉由完成第一錯失之處置而開始於步驟6(Π 中。在步驟602中,可由變換邏輯發送一通知至Ti〇c,以 指示第一錯失已被處置。在步驟6〇3中,管線可停滯一預 定時期,以允許排空管線。 之後,在步驟604中,可重新開始處理引起第二錯失之 指令及後續指令。用於重新開始處理引起第二錯失之指令 及後續指令的一個簡單方式便係重新發出指令。舉例而 言,TIIC可如上所述自輸入指令FIF〇接收引起錯失之第二 指令及後續指令並處理該等指令。因此,維持了指令排 序。 ” 結束語 藉由允許在一給定指令之位址變換期間處理後續指令, 可極大地改良總效能。此外,藉由監視位址變換快取笋失 且在發生一錯失下錯失的情況下阻滯管線,本 又乃之只施 例可有利於在處置多變換快取錯失的同時保持指人排序 118391.doc -19- 200809501 雖然上文係針對本發明之若干實施例,但可在不脫離本 發明之基本範疇的情況下設想出本發明之其他及進一步實 施例’且本發明之範疇由下文之申請專利範圍確定。 【圖式簡單說明】 圖1為根據本發明之一實施例之例示性系統的圖解。 圖2為根據本發明之一實施例之指令處理器的圖解。 圖3為變換介面輸入控制所執行以便處理輸入指令FIF〇 中之指令的例示性操作的流程圖。 圖4為變換邏輯所執行以便將虛擬位址變換成實體位址 的例示性操作的流程圖。 圖5為變換介面輸出控制所執行以便處置多變換快取錯 失的例示性操作的流程圖。 圖6為經執行以在重新處理一引起錯失下錯失之指令之 前清除管線的例示性操作的流程圖。 【主要元件符號說明】 100 110 111 112 113 114 115 116 117 系統 中央處理單元(CPU) 指令處理器 變換邏輯 嵌式處理器 快取記憶體 頁表項(頁表) 段表項(段表) 晶片上匯流排 118391.doc 200809501 118 記憶體控制器 120 輸入/輸出(10)橋接器 130 10裝置 131 指令 132 回應 133 有序指令 140 記憶體 201 輸入指令FIFO 202 變換介面輸入控制 203 變換介面輸出控制 204 指令FIFO 210 讀取指標 211 寫入指標 118391.doc -21-

Claims (1)

  1. 200809501 十、申請專利範圍·· 1 · 一種用於處理一指今 該指令㈣中儲 置之指令,該方法ί含收自一或多個輸入/輸出裝 將该指令佇列中之一第一八 址變換邏輯以待變換;“之一目標位址發送至位 ==心_換邏輯之—位址變換表中不存在包含
    之該第—指令之該目標位址之虛實變換的 位址變換項’而開始自記憶_取該位址變換項; 。取-亥第才曰令之該項的同時,處理在該第一指令 t後所接收之—或多個指令,其中該處理包括將該指令 =歹〗中之一第二指令之一目標位址發送至該位址變換邏 輯以待變換;及 回—應於敎㈣換邏輯之該位址變換表以存在包含 該第二指令之該目標位址之虛實變換的位址變換項,而 ^印該等後續指令之處理,直至_取職第-項之該目 址之該位址變換項為止’纟中停滯該等指令之處理 包含停止指令之該處理並設置—指標,以指向該指令件 列中之該第二指令。 月求員1之方法,其中該等指令包含下述各項中之一 者·· ' 需要仇址變換之指令;及 無仇址之指令。 3.如請求項丨之方法,其中該位址變換表包含一段表及— 118391.doc 200809501 頁表。 其中該指令佇列為一先進先出 佇 4·如請求項1之方法 列0 5.如叫求項1之方法,進-步包含在接收到該第-指令 該位址變換之後,處理該第二指令及跟在該第二指I之 後的指令。 Y ^
    如請求項1之方法,進一步包含·· 將經處理指令儲存於一第二指令佇列中;及 匕對於每ΙΟ裝置,將接收自每一1〇裝置之該等經處理 才"按該等指令自該10裝置接收的順序發出至。 如請求項6之方法’進—步包含不按順序地發出接收自 不同10裝置之經處理指令。 一種系統,其包含: 一或多個輸入/輸出裝置;及 處理器,其包含:⑴一指令佇列,其經組態以儲存 一連串接收自該或該等輸人/輸出裝置之指令,⑼—輸 入心制$ ’其經組態以按_管線方式處理來自該指令符 列之指令,(iii)位址變換邏輯,其經組態以使用具有包 含虛實位址變換之項的位址變換表來變換該輸入控制器 :處理之•曰令之目標位址,及,㈣控制邏輯,其經組 〜乂回應於判疋該變換邏輯之該等位址變換表中不存在 包含於該第—指令之後所接收之一第二指令之一目標位 址之虛實I換的位址變換項,而停滯該輸人控制器對一 在正被擷取一位址變換項乂第1 ♦之後所接收之指令 118391.doc 200809501 所進行的處理,直至擷取到該第一項之該目標位址之一 位址變換項為止,並對該第二指令在該指令佇列中之該 位址設置一指標。 9·如睛求項8之系統,其中該位址變換邏輯進一步經組態 以: ^ 將該等經變換之位址提供至該控制邏輯;且 在該位址變換表中未發現一位址之一變換的情況下, 通知該控制邏輯。
    如明求項8之系統,其中為了停滯指令之處理,該控制 邏輯經組態以將一停滯信號及該第二指令在該指令佇列 中之該位址發送至該輸入控制器。 如喷求項8之系統,其中該輸入控制器經組態以在擷取 到該第一指令之該位址變換之後,發出該第二指令及該 等後續指令。 I2· —種微處理器,其包含: ω一指令佇列,其經組態以儲存來自一輸入/輸出裝置 裝置之一連串指令; (ϋ) 一輸入控制器,其經組態以按一管線方式處理該指 令佇列中之該等指令; (iii) 位址變換邏輯,其經組態以利用快取位址變換項 將::位址變換成實體位址’且在快取記憶體中未發現 才曰7之一位址變換項的情況下,自記憶體擷取一相應 的位址變換項;及 (iv) —輸出控制器,其經組態以回應於偵測到該等位 118391.doc 200809501 址變換表中不存在在一第一指令之後所接收之一第二指 令之一目標位址的變換項,而停滯該第一指令之後所接 收之指令的處理,直至擷取該第一指令之一目標位址之 一位址變換項為止,並對該第二指令在該指令佇列中之 該位址設置一指標。 13. 如請求項12之微處理器,其中該指令佇列為一先進先出 佇列。 14. 如請求項12之微處理器,其中該位址變換表為一段表及 一頁表中之一者。 15·如請求項12之微處理器,其中回應於判定一指令需要位 址變換,該輸入控制器經組態以: 將該指令發送至該位址變換邏辑;且 將該指令在該指令佇列中之位址發送至該輸出控制 器。 16·如睛求項12之微處理器,其中該位址變換邏輯進一步經 組態以: 將該等經變換之位址提供至該輸出控制器;且 在該變換表中未發現一位址之一變換的情況下通知該 輸出控制器。 17·如請求項12之微處理器,其中為了停滯指令之處理,該 輪出控制器經組態以將一停滯信號及該第二指令在該指 々仔列中之該位址發送至該輸入控制器。 18·如明求項12之微處理器,其中該輸入控制器經組態以在 擷取到該第一指令之該位址變換之後發出該第二指令及 H8391.d〇( 200809501 該等後續指令。 a :請求項12之微處理器,其中該輸出控制器進一步經組 態以: 、 將經處理指令儲存於一第二指令佇列中;及 對於每-10裝置,將接收自該IO裝置之該等經處理指 令按該等指令自該10裝置接收的順序發出至CPU。曰 如明求項19之微處理器,其中該輸出控制器進一步經組 悲以不按順序地發出來自不同1〇裝置之經處理指令。
    118391.doc
TW096103588A 2006-02-01 2007-01-31 Method for command list ordering after multiple cache misses TW200809501A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/344,910 US20070180158A1 (en) 2006-02-01 2006-02-01 Method for command list ordering after multiple cache misses

Publications (1)

Publication Number Publication Date
TW200809501A true TW200809501A (en) 2008-02-16

Family

ID=38323468

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096103588A TW200809501A (en) 2006-02-01 2007-01-31 Method for command list ordering after multiple cache misses

Country Status (4)

Country Link
US (1) US20070180158A1 (zh)
JP (1) JP2007207248A (zh)
CN (1) CN100489816C (zh)
TW (1) TW200809501A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227390B (zh) * 2008-01-22 2011-10-26 中兴通讯股份有限公司 对网络地址转换的映射条目生成顺序实现优先级的方法
US8401952B1 (en) 2009-03-24 2013-03-19 Trading Technologies International, Inc. Trade order submission for electronic trading
US8386748B2 (en) * 2009-10-29 2013-02-26 Apple Inc. Address translation unit with multiple virtual queues
WO2013188754A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A disambiguation-free out of order load store queue
CN104583956B (zh) 2012-06-15 2019-01-04 英特尔公司 用于实现加载存储重新排序和优化的指令定义
KR101825585B1 (ko) 2012-06-15 2018-02-05 인텔 코포레이션 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들
CN104823168B (zh) 2012-06-15 2018-11-09 英特尔公司 用于实现从由加载存储重新排序和优化导致的推测性转发遗漏预测/错误中恢复的方法和系统
KR20170102576A (ko) 2012-06-15 2017-09-11 인텔 코포레이션 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
KR101826080B1 (ko) 2012-06-15 2018-02-06 인텔 코포레이션 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
CN108733585B (zh) * 2017-04-17 2022-05-13 伊姆西Ip控股有限责任公司 缓存系统及相关方法
CN111858090B (zh) * 2020-06-30 2024-02-09 广东浪潮大数据研究有限公司 一种数据处理方法、系统、电子设备及存储介质
US11545209B2 (en) * 2021-05-28 2023-01-03 Micron Technology, Inc. Power savings mode toggling to prevent bias temperature instability
US11581049B2 (en) * 2021-06-01 2023-02-14 Sandisk Technologies Llc System and methods for programming nonvolatile memory having partial select gate drains

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621896A (en) * 1994-06-01 1997-04-15 Motorola, Inc. Data processor with unified store queue permitting hit under miss memory accesses
KR100852084B1 (ko) * 2001-01-12 2008-08-13 엔엑스피 비 브이 메모리 어드레스 변환 장치, 메모리 어드레스 변환 방법 및 이미지 처리 장치
US6963964B2 (en) * 2002-03-14 2005-11-08 International Business Machines Corporation Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
US7721067B2 (en) * 2006-01-20 2010-05-18 Qualcomm Incorporated Translation lookaside buffer manipulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling

Also Published As

Publication number Publication date
US20070180158A1 (en) 2007-08-02
CN101013402A (zh) 2007-08-08
JP2007207248A (ja) 2007-08-16
CN100489816C (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
TW200809501A (en) Method for command list ordering after multiple cache misses
US8244984B1 (en) System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy
JP4304676B2 (ja) データ転送装置、データ転送方法、及びコンピュータ装置
EP1862907A2 (en) Cache memory device and caching method
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
KR101121592B1 (ko) 버스트 판독기록 동작을 구비한 처리 장치
US20070220361A1 (en) Method and apparatus for guaranteeing memory bandwidth for trace data
JP5089226B2 (ja) I/oアドレス変換キャッシュ・ミスのソフトウェア・ミス処理用ハードウェア支援エクセプション
US8060700B1 (en) System, method and frame buffer logic for evicting dirty data from a cache using counters and data types
JP2008171426A (ja) ディスクリプタ・プリフェッチを用いてダイレクト・メモリ・アクセス・ブロック移動を行なう方法、ダイレクト・メモリ・アクセス装置、及びデータ処理システム
US20130124802A1 (en) Class Dependent Clean and Dirty Policy
US8341358B1 (en) System and method for cleaning dirty data in a cache via frame buffer logic
US9697127B2 (en) Semiconductor device for controlling prefetch operation
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
TWI275992B (en) A method to reduce memory latencies by performing two levels of speculation
TW200818006A (en) Method for cache hit under miss collision handling
US8464001B1 (en) Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism
US9342472B2 (en) PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units
US7899965B2 (en) Managing message signaled interrupts
EP2159701A1 (en) Cash control device and cash control method
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
US8307165B1 (en) Sorting requests to the DRAM for high page locality
EP3660675B1 (en) Sharing data by a virtual machine
TW200931443A (en) Apparatus for predicting memory access and method thereof
US9965414B2 (en) Systems and methods for managing inter-CPU interrupts between multiple CPUs