TWI262438B - Store-induced instruction coherency mechanism - Google Patents

Store-induced instruction coherency mechanism Download PDF

Info

Publication number
TWI262438B
TWI262438B TW093121986A TW93121986A TWI262438B TW I262438 B TWI262438 B TW I262438B TW 093121986 A TW093121986 A TW 093121986A TW 93121986 A TW93121986 A TW 93121986A TW I262438 B TWI262438 B TW I262438B
Authority
TW
Taiwan
Prior art keywords
memory page
memory
logic
page
instruction
Prior art date
Application number
TW093121986A
Other languages
English (en)
Other versions
TW200512650A (en
Inventor
Rodney E Hooker
Original Assignee
Ip First Llc
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 Ip First Llc filed Critical Ip First Llc
Publication of TW200512650A publication Critical patent/TW200512650A/zh
Application granted granted Critical
Publication of TWI262438B publication Critical patent/TWI262438B/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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • 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
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

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

Description

1262438 九、發明說明: I發明說明j 19曰提出申 19曰提出申 _】]本發明引用下列案件的優先權:2002年9月 請的美國申請臨時案,案號60/412111 ; 2〇〇3年今月 請的美國正式申請案,序號1〇/665]71。
[發明所屬之技術領域I
[0002] 本發明大致有關於微電子學的領域 =係應用於一管―
[先前技術I
[0003] 早期的微處理器係設計成一次執行 :’早期的微處理器會從程式的記憶體中提二因 執行。在執行該第-指令後,該早期 ^式心々亚 跑/式 于。然後’一第三程式指令合被提 取亚執仃,依此類推。由於在—蚊時間點 =被& 應用程式設計師可設計包含自我修正碼區段的程式η皮執订’ _其賴單_射,自邮 碼。在上述的例子中,芸兮筮一和Α 日我修正的私式 微處理器儲存於――己情體位% ί式々的執行結果係由該早期 式指令所欲提取的位置,則自我修 用自我修正碼的原因如下:節省記憶:子:= 隱藏/用程式中執行的指令以防止侵害著==暗; 技衔騎殊硬_介面麵碰财能。自雜正碼的 常難㈣’财也^麟,_補的程式瑪通 1262438 [0005]儘管有上述的缺點,自我修正碼卻因為上述理由而仍然 在使用γ但是,早期的微處理器卻沒有因為需要支援執行自我修 士碼而受到負面衝擊,現今,微處理器卻因為需要有額外的邏輯 早兀,而受到極大的衝擊,該額外邏輯單元係用於確保在出現自 我^碼區段的程式指令得以被適當地執行。這是因為現今的微 處理為不再-次只執行—個指令,而可同喊行數個指令◦多個 ^令係同時在連續的區段中執行(換言之,在—現今微處理器的 官線階段中執行,Hennessy及Patte麵定義管線(pipdine)為「一 種運算技術,其中多個指令係在運作過程中相互重疊」〜c〇寧如 Architecture. A Quantitative Approach, second edition, by John L Hennessy and David A. Patterson, Morgan Kaufmann Publishers, San ncisco, Calif·,1996· Hennessy 及 Patterson 並且提供一對於管 夕V 母步驟均對汽車的裝配有貢獻,每一步驟均與其 ,雖然其係作用在不同的汽車上。在電腦的管線 母—步驟完成—指令的—部分。如同裝配線一般, 同的4均平行地完成不同指令的不同部分。管線巾之每一牛 (pipe stage) (pipe segment) 〇 ϋί ϊ ί 形成—#線。指令從管線之—端進入,勤 =#又而攸另—端出去,就好像汽車在裝配線上-樣。 〇〇6]因此,在現今賴處理射,指 =經;連串,線階段直到完成執行二二入配 線微處理芯:::=執行不同的料指令時,現今的管 算,而導=取些管線階段完成其運 總虚评Λ^、A 的拖延’會造成管線效率(即, 〜月匕白、降低。但是,在現今的微處理器需要支援許多不 1262438 =式的運算’因此經料致管線的拖延。例如,對 寫入運算是相當慢的運算,而經常需要 ,Γ . ^ 性地改變〔即,你彼延官線。程式流條件 管線拖μ f ΐ件分支縛(toneh GperatiGn))往往導致 器管中出現自我修正碼’則是另一個現今的微處理 吕線申孝王式流茜要被中斷的情況。 庫於軒’該第—議令的執行結果係儲存於對 紅令的記憶體位置。當由該第-程式指令所主導 —前子時’若該第三程式指令已從記憶體中提提取並於 式扑鼻完成’則於該前段管線階段運算的該第三程 式設計師所意圖執行的運算。這是因為當該第 用Μ存取以提取該第三程式指令時,該應 Si 圖執行的指令尚未儲存於該記憶體中。此例子係 ,而導致一管線中指令不同調的情況 :〜U微處理騎必須處理關題。但是,現 衫正在_祕正碼。耻,現今之微處 性檢查錄㈣每個指令的同調 中的^===執行之齡運算執行嫌正在管線 杳其’ ·需要料微處理針的—裝置,該裝置係用以檢 。二、、。"的同调性’該裝裝置係較為簡單且需要較少的邏輯
【發明内容J
[⑻:本發明制於解紅述的_並應付習知技術的其他 埶"im:二限制。本發明提供一種優越的技術,用於由等候 執仃或同時被執儲存運算所導致的狀況中,以確保現今微處 1262438
Ji'i 二:Γ調性。在—實施例中,本發明提供一管線 二;I#π:錄置_於確保條線微處理器的各階 裝置包括指令快取管理邏輯以及同步邏 幸耳二純令快取㈣邏輯接收—對應於下―個指令的位址,並執 了-仏測’該檢測衫在未檢查對應於該下—個指令之記 ^emGrypage)的—部份的指令的同雛之前,該雜_兮 ,ΓΓ:' 記憶體頁的該部分中的指令的_ 不同調,該同步邏輯指令該管線微處理器 她編她轉·處理完其^ 置传在管線微處理器中之裝置’該裝 =執行之~位址,並執:忒== 2同調性之前,該記憶體頁的該部二:份= ==,送出該位址。該同步邏輯接收來料= 理器以清除(flush)該管線微處理器的先曰々該管線微處 [0011]本發财包括—鮮線微處㈣的方法, 個箄ΐϊ 檢測,該檢測係確定在未檢查對鄉 個專候執行之齡齡之錢體頁的—赌触 1262438 前,該記憶體頁的該部分無法自由地被存取;命令一指令快取中 的邏輯檢查該部分之記憶體頁中的指令的同調性;若該指令不同 調,則清除該管線微處理器的先前階段。 【實施方式】 [0023] 以下的說明,係在特定實施例及其必要條件的脈絡下 而提供,可使一般熟習此項技術者能夠利用本發明。然而,各種 對該較佳實施例所作的修改,對熟習此項技術者而言乃係顯而易 見,並且,在此所討論的一般原理,亦可應用至其他實施例。因 此,本發明並不限於此處所展出與敘述之特定實施例,而是具有 與此處所揭露之原理與新穎特徵相符之最大範圍。 [0024] 有鑑於以上背景討論中之使用於現今微處理器的管線 化指令及相關的技術,以確保在出現自我修正碼時管線階段中指 令的同調性,其相關技術範例請參照圖一及圖二。這些範例特別 指出並敘述當應用該習知技術於現今管線微處理器中,以確保儲 存引發指令的同調性時,該習知技術的缺點及限制。接著,來照 第3-10圖討論本發明,指出本發明之樣態、特徵及優點,優於在 現今之管線微處理器中用於確保指令同調性的習知技術。本發明 達到確保指♦同調性所需的功能,但其比運算現存的技 ^ 少的資源及動力。 文权 ,坤,㈣圖-,其係為—方塊圖,描述在—現今 ,漏巾的-範例階段。該微處理器觸有一提取邏輯咖= =-轉譯邏輯1()4。該轉譯邏輯刚係麵接至暫存邏輯咖。今 暫存邏輯1〇6係墟至定址邏輯應。該定址邏輯觸係 = =建輯110。该載入邏輯110係輕接至執行邏輯⑴。該執 2係麵接至儲存邏輯114。該儲存邏輯114係減至寫回邏輯 1262438 =6。細處理器卿具有一指令快取記憶體n8,該指令快取記 k、體118係經由一提取匯流排(fetch㈣124雛至提取邏輯 1〇2。此外,職處理器勤亦具有一資料快取記憶體12〇,該資 料快取記憶體120 <系經由一載入匯流排126輕接至該載入邏輯 110,並經由一儲存匯流排128耦接至該儲存邏輯114。該指令快 取記憶體118以及該資料快取記憶體12〇係分別經由匯流排13〇 及132耦接至一匯流排介面單元122。該匯流排介面單元η)經由 -記憶體匯流排134連接至緖記紐(未顯示於圖示中)。 [0026]在運异中,该提取邏輯1〇2從系統記憶體中提取巨集指 ,供微,理器100執行。該指令快取記憶體118是一種非常快的 晶片記憶體(Gn_ehiP _Giy),且其魏為綱湘卜侧位的 記憶體要做提取指令的存取,並先行將此齡儲藏域以便該提 取邏輯102可以在該指令快取記憶體118中快速地做存取,而無 須經由匯流排介面單元122及記憶體匯流排134做存取。若對應 於下-個指令指標的記憶體攔位在該指令快取記憶體118中常駐 且有效,則稱該下一個指令指標經過一次,,快取命中,,。當記憶體 欄位不常駐於快取記憶體118中,且必須用記憶體匯流排334提 取下一個指令時,會產生,,快取未中”。被提取的巨集指令係提供 給轉譯邏輯104,其將巨集指令轉譯成相關的微指令序列(也被稱 為本機指令native instruction)供微處理器1〇〇的後續階段1〇6、 108、110、112、114、116執行。該相關微指令序列中的每一微指 令係用以命令後續管線階段1〇6、1〇8、11〇、112、114、116内的 邏輯運算執行後續的運算,來達成—制的被提取巨集指令所規 範的架構運算。轉譯後的微指令係提供至暫存邏輯1〇6。用於後續 階段108、110、112、丨丨4、116的次運算的運算碼(operand)係 從暫存邏輯106中的暫存器(未圖示)存取。該定址邏輯ι〇8所 !262438 ,的運异碼係來自暫存邏輯腸或來自由—所提供的微指令所 战體位虛擬位址,·該些特殊次運算中所需的運算 二軍ί5亥暫存邏輯106或該虛擬位址存取。所產生用於資料操取 料俠Γ的t址储供至載人邏輯11G,該載人邏輯iig係經由該資 1加I己饫體120從記憶體擷取運算碼◦如同指令快取記憶體118 4貝料快取記憶體120亦是一種很快速的晶片記憶體,直 力=預測到哪-個攔位的記憶體要做存取,而先行將此搁位儲 ’以便載入邏輯110能快速地經由資料快取記憶體12〇存 傲卢^碼,不須經由匯流齡面單元122及記憶體匯流排134 ^同樣地’若對應於運算碼負載位址的記憶體區在快取12〇 駐且有效,則稱為—資料,,快取命中,,。當記憶體區不常駐 於快取120時稱為資料”快取未中”。 _7]如同先前的管線階段1〇2、1〇4、廳、1〇8、則一船, ,=邏,112使用所提供之運算碼(如果需要)以執行由“ =規範的該些次運算。如果執行邏輯112所執行該些次運算的 =果侧要被寫人到系統記健巾,_該賊果提供至儲存邏 ,1H。_存邏輯114職行縣果儲存至記憶體位置的次運 异。_存邏輯m亦麵接至資料快取記憶體12〇,並理邦地執行 儲存運算至資料餘記憶體12G中的快取記憶體位置,而 結果貢料經由記憶體匯流排134寫入。指定儲存於架構暫存哭 (archltectural register)的執行結果係提供至寫回邏輯ιΐ6。該^ 回邏輯m將結果寫入架構暫存器中。總而言之,將從記情體‘中 提蚊巨錢令轉譯油_微指令,紐該些相關的微指令同 步於官線時脈纖(未®*)的料經過每滅續崎輯運算 ,106、108、11〇、112、114、116,使得指定的次運算可以如同 I配線上的作業一般同時執行。 1262438 時所兩要的必I塊圖係描述微處理器100中應用於說明本發明 100 ^的件’為了清楚域,從圖式中省略了微處理器 :1=辑運算。熟f此項技藝者能瞭解微處理器刚包括 鼻的階段與邏輯單元,為了簡明起見,將其中的某些 ϋ 了德面,該負載邏輯單★ 11G 1以具體化為—快取介面 :f面接者—快取線校準階段(cache Hne alignment stage)。 那此項技藝者能瞭解微處理器、觸中執行 一指令/多資料單元。 早 [〇〇29]為了解微處理器刚之管線階段觀、刚、脳、應、 3主、112、m、116中的指令同調性的必須性,本發明提醒在兩 /况下必須檢查指令的同調性· ^當提取邏輯1〇2到指令快取 記憶體118提取下-個指令時。2) _存邏輯單叫對資料快 取體120旦告―儲存運算時。在第—個情況下,當儲存邏輯 m對貝料快取,己憶體120宣告一微指令,並且該微指令係用以執 仃-儲存運算至與下-個指令細的記憶體位置,但是該資料快 取記憶體120尚未將修正的位·由記㈣匯流排134傳回記憶 體中◦在此情況中,若該提取邏輯1〇2係從指令快取記憶體US 或記憶體經籠流排介面單元⑵擷取下—個指令,則下一個指 令^因資料快取記憶體12G宣告儲存至記憶體的潛時而不正確。 在第二個情況下,指令已被提取並已提供至在儲存階段ιΐ4之前 的任何管線階段102、1〇4、1〇6、108、11〇、112,當於其中之一 儲存微指令命令-贿運算朋彳提取織令的記憶體位置。在此 情況中,若不做同調雛的管理,在管線過財提取的指令會不 正確。 曰 [0030]就第-個情況而言’若微處理II中的邏輯單元债測到一 1262438 ,指令有關’通常會延遲下-已經通過後續===轉 =〇2)直到其他所有的指令 (Pipeline idle) ^ :線是空的且所有未決的儲V爾:經被ί=^ 與-未決的儲存指令里器中的邏輯單元棚 妙/〜“士 4 (也稱為目的位址)相關之指令已 、工—5 π Ν ’通常將來自管線所有階段的指令清除,該、、主 且匕括與目標位置相關之指令的階段 管線為閒置,鈇徭他、?日7之k取直到該 令。U…、後再開始攸與儲存的目標位址相關的位置提取指 邏輯===:n:c:^· 卜张、+、W 彳板'應區域)來_及管理,如 旦成正=的邏輯運算量與存在於微處理器管線中的階段的數 二法則二進:步表示’現今微處理器的指令同調性偵測及 _2]請參閱圖二’其係為一方塊圖細 如圖-所示之指令不同調的技術,該不咖= 或同⑽儲存運算。該方塊圖200中之提取階段邏輯運算 r r 4令指標暫存11216鋪至未決儲存目標偵測邏 i etargetdetectIogic) 208。該未決儲存目標偵測邏
=0曰8數量之儲存目標暫存器细’該儲存目標暫存器B 與微處理器可處理之未決儲存運算的數量相等。例如,依 用的記憶體模式而定,現今的微處理器會處理數個儲存 運异至寫回記憶體(WBbuffers),亦會翻數個儲存運算至複合寫 1262438 入記憶體(WC buffers),以及處理若干_存運算至 憶體(ST隱buffers)。詳細提供不同形式的記憶體模式 於現今微處理β系統所對應之記憶體屬性已超過本發 但是已經足齡示現今微處驾能必簡儲存運^ = ’ 憶體/記憶體之前,暫存一定數量的儲存運算,並且; 中指令之同調性,必須檢查與所有未決儲存運算的 :j 確定下-個欲提取之指令的位址與包含於目標暫存器22加 標位址相同。該方塊圖也描述儲存階段邏輯綱, 】 檢查邏輯2丨0 ’該儲存檢查邏輯加_至一微暫』 以及一 ^位址暫存器⑽。該儲存檢查邏輯單元蝴ΪΙ%匕 令指標暫存器228,指令指標暫存器22 曰 之前的管線階段數量相等。 數里,、儲存从204 [0033]運算上’該未決儲存目標偵測邏輯2 存運算是否存在於記憶體之一目標位址,並,==儲 下一個欲提取的指令的記憶體位置相同。按,下^ 令的虛擬位址係娜自下-指令指標暫存器216,並 儲存目標緩衝器226中的虛擬位址做比較 桿有 之内容顯示所有微處理器中之未決或同時儲存運算 下-指令指標暫存ϋ训_虛擬位㈣儲存 咖有與
=未決儲存目標偵測邏輯208,告一拖延訊號‘ ^同J 輯206。回應於該拖延訊號222的宣[該拖=建 =^='直到管財所有的活動完成(即管線間置 官線間置時,該同步邏輯206容許提取下—瓣入 田口亥 操取陶輯加 目標位置暫存器220的内如存取該健存微指^擬該 1262438 ==:::=令的虛擬位址,該程式 該儲存檢查邏輯210偵測到—指:^财階段所運算。當 標位址暫存器加的内容相的内容與該目 中運算。按,該儲存檢查邏輯2ζ觀畜:正確的指令正在管線 而傳送訊號至同步邏輯2G6 =由清^流排似 224的内容也可於干^ —根據特疋之運算,該清空匯流排 該同步邏輯單元曰^個管線階段中。因此, 再有與该不正確指令相關的階段),並當管線間置時 令指桿緩觀^了維持及求出儲存目標緩衝器226及指 外,孰羽士㈣衝 的内容必須做修正及求值。此 228的數解’需要維持及求值的指令指標暫存器 蓺者更以管線階段的數量成正比·此項技 階段之數量的增加,也許是增 運算在表碰方塊® 中之邏輯 之外並、、々古=$中除了與偵測及管理儲存引發的指令不同調 儲存引發指令不同用於偵測及管理現今微處理器之 制係由本發明所克:習知技射的缺點及限 300 其係為—方塊圖描述一本發明之微處理器 如同圖-I :確保未決或同時儲存運算時管線指令的同調性。 302㈠政處理器1〇0 ’本發明之微處理器300具有提取邏輯 ,“接至轉譯邏輯綱。該轉譯邏輯304係雛至暫存邏輯 16 1262438 306。該暫存邏輯306係麵接至定址邏輯3〇8。該定址邏輯遍係 減至載入賴310。該載人邏輯31〇係雛至執行邏輯3】2。該 執行邏輯3丨2 _接至儲存邏輯别。該儲存麵训 ' =邏輯316。該微處理器具有一指令快取記憶體 乂/央广 提取匯流排324输至提取邏輯搬。此外,該微處理器具有 -貧料快取記憶體320,經由—載入匯流排326搞接至該載入邏輯 310,並經由一儲存匯流排328耦接至該儲存邏輯。該指令快 取記憶體318以及該資料快取記憶體32()係分別經由匯流排33〇 及332耦接至一匯流排介面單元322。該匯流排介面單元Μ]經由鲁 一圯憶體匯流排334連接至系統記憶體(未圖示)。 [0037]此外,該指令快取318⑽一指令轉譯後備緩衝器. (instruction translation lookaside buffer,ITLB ) 336,經由匯流排- 33^轉接至同步賴340。該資料快取32〇具有一資料轉譯後備緩 衝器(data translation lookaside buffer,DTLB) 344,經由匯流排 342轉接至同步邏輯340。該同步邏輯輸出一清除訊號&以^一 拖延訊號341至管線同步邏輯(未圖示),該管線同步邏輯大體上 與圖二之管線同步邏輯206類似。 [0〇38]在運算中,該提取邏輯3〇2從系統記憶體中提取巨集指· 令供微處理器300執行。該指令快取318預測到哪一個搁位的記 憶體要做提取指令的存取,並紐將此攔位儲藏起來以便該提取 邏輯3G2可以在該指令快取318中快速地做存取,而無須經由匯 流排介面單元322及記憶體匯流排334做存取。提取的巨集指令 係提供給轉譯邏輯304,其紅集指令轉譯成相_微指令相供‘ 微處理器300的後續階段306、308、310、312、314、316執行。 該相關微指令序列中的每-微指令係用以命令後續管線 306、308、31〇、312、314、316内的邏輯運算執行後續的運算, 17 1262438 跑 =^_巨餘令賴範㈣顧算。轉譯後的微 各7係至暫存邏輯306。用於後續階段3〇8、3i〇、312、刀4、 =的後續運算的運算碼係從暫存邏輯施中的暫存器(未圖示) ,存取。用於後續階段施、3iG、312、314、316的次運 具碼係從暫存邏輯3〇6中的暫存器(未圖示取羅 二碼係來自暫存邏輯306或來自由一所提供= "斤生義體位置的虛擬位址,因此該雜殊次運算兩 的運算碼可從該暫存邏輯306或該虛擬位址存取 ^ 料擷^次運算的位址係提供至載入邏輯則,該載入邏輯310係二 由違貝料快取記憶體32G從記憶體擷取運算碼。該 ,32〇預測到哪—_位的記憶體要做存取,而先行將此搁位^ 藏起ί ’以便載入邏輯310能快速地經由資料快取記憶體320存 碼’而不須經由匯流排介面單元322 *記憶體匯= 做存取。 [0039]如同先前的管線階段3〇2、綱、3〇6、遍、31〇 ,行,輯312使用所提供之運算碼(如果需要)以執行由微又指 ^規粑的軸次運算。如果執行邏輯312所執行該些次運算的 :係須要被寫入到系統記憶體中,則將該些結果提供至儲存邏 # 4 j儲,邏輯314則執行將結果儲存至記憶體位置的次運 异。該儲存賴3U亦減至:諸錄記髓 ::運算至資料快取記憶體-。中的快取記憶體位置而不= 勃5經i記憶體匯流排334寫人。指定儲存於架構暫存器的 斬二、、、。果係提供至寫回邏輯316。該寫回邏輯316將結果寫入架構 言之’將從記憶體中提取之巨集指令轉譯成相關 ’敵該些相關的微指令同步於管線時脈訊號(未圖示) 的依序經過每個後續的邏輯運算階段鄕、观、31〇、312、314、 18 1262438 316,使得指定的次運算可以如同裝配線上的作業—般同時執行。
[〇〇40]圖二之方塊圖絲示本發明的必要元件,為了清楚起 見’從圖式中省略了微處理器300中的許多邏輯運算。孰習此項 技藝者能瞭解微處判包括許乡狀運算的·與邏輯單 :’為了_起見,將其中的某些集合為—。例如,在本發明之 2體實施例巾,該貞載邏輯單元31()可以具體化為—快取介面 尸皆段’後面接著-快取線校準階段。而且,熟習此項技藝者能瞭 =處=巾執行賴112可包含多卿行執行單元,例如
-整數單7G、-浮點數單元以及—鱗單元與其他特殊用途單元 的組合。
[0041]為了偵測及管理本發明之該微處理器3〇〇之管線階段 3〇2、304、306、3〇8、31〇、312、314、316 中的指令不同調本 發明在,二轉譯後備緩衝器336、344均提供邏輯運算,用於指示 «己U區疋否可自由存取而無須檢查管線中的同調調性。雖然未 在圖一及圖二均未提及,熟習此項技藝者會瞭解現今微處理器3〇〇 運用快取記憶體318、320中的TLBs 336、334來快取實體^址以 及記憶,屬性(例如,唯讀、複合寫入〕對應於常用虛擬位址所 映射的實體位址頁。例如,熟習此項技藝者可發現在171^ 336中 有一入口,該入口係對應於提取邏輯302所提供之下一個指令的 虛擬位址。若此虛擬位址,,命中,,該ITLB 336,則所有位址轉譯查 表(address translation table lookups )(例如頁目錄、頁表等)均無 肩執行,該位址轉譯查表係將虛擬位址轉換成現今微處理器3〇〇 中的實體位址。該記憶體頁的實體位址(下一指令所駐存)已經 連同其記憶屬性快取至ITLB 336中。然而,若該虛擬位址,,未中,, 該ITLB 336,則該位址轉譯查表必須被執行,以產生下一個指定 的實體位址。此實體位址用於在指令快取記體318中作為索引以 19 !262438 ίϊ了—個i旨令是否包含於其中。同樣地,轉譯後的位址及與載 儲存運异相關的記憶屬性快取於344中。 [〇〇42]本發明之-特徵為ITLB 336 &dtlb撕巾之每一入 :中提供額外的攔位’該攔位_以指示出—記縣中對應於每 =口之部分是否可以被自由存取,而無須檢查該記憶頁部分中 令同調性。在-實施例中,該記憶頁的部分為—頁的1/4。對 一 θ供4k位tl的Z憶頁的虛擬位址的微處職而言,本發明之— 貫,例表稍叙-記憶頁的lk位元部分侧不可則 而無須檢查指令的同調性。 取 [0〇43]在A斗麵性致動虛擬位址的微處理器的 =之較佳實施例需要執行TLB查表以確保指令的同調性= 疋虛擬位址已經不作用。 1定 [0044] 為了在該提取邏輯3G2到指令快取記憶體318提取下— =指令時,伽彳在齡提取時未決或_的贿運算,該下 以指標(即’包含下一個欲提取之指令的記憶體位置 址)係經由匯流排324提供至指令快取記憶體318中的mB现 令=到1TLB336内,則對該額外攔位做求值以 决二對fF—她令的記憶頁部分可否自由存取。若該求值表 頁的部分可以自由存取,則提取下—個指令而無須檢查 官線中指令的同調性。若下—個指令指標不見了,或若該搁^ 示該記憶頁部分無法自由存取,則下—個指令的指標經由排 338被提供至該同步邏輯“ο。 现排 [0045] 回應下-鋪令棘陳供,制步 排342命令DTL請檢查由咖咖中一對應的入口二= 該記憶頁部份中指令的同雛。若DTLB入口 = 20 1262438 處理器拖延下-护人的提取t旦口拖延訊號341,因此使微 3ω、312、W "岐直到管線的後續階段3()4、3()6、猶、 π晋曰㈣ 、316已完成執行所有先前的指令(即,直到管崠 間置且所有的儲存作業已經傳送)。 朋卜衷 為了在鍺存邏輯314執行儲存微指令時侧管線中指a ===::包括_定之儲存』
344 ^ 4,"排臭供至資料快取記憶體320中的DTLB 。右该目標虛擬位址指向dtlb 344 額外的攔位會做求值,以決定對 入口的 部分可否自由存取而無須檢杳的記憶頁之 =r該記._部分可-自 至^快取記憶體320中而無須進一步做檢查。若 队亥膝虛擬位址經由匯流排342提供至同步邏 _7]回應下-個指令指標的提供,該同步 匯流排338導命令ITLB 336檢杳由I1LB +早兀40、,、工由 指向之該記憶頁部份中指令的同調口所 份擷取-或多個指令),則朗步頁的部 339,該清除職339命令該微處理器清除先_管=== 下-指令的提取,直脱_置且所有的儲存作業已^八又止奴 。[0048]本發明使没計者利用管線微處理器中現τ: 輯’根據從該記憶頁部分所提取及儲存的指、、 憶頁指令的同調性。W用加入部分 从不料份記 TLB入口,人°可時(位至,存之) 21 1262438 至—記憶頁的一部份時,其對應之所有權欄位設定成表示DTLB,, 擁有”該記憶頁的部分。當指令從一記憶頁的一部分提取時,其對 應之所有權欄位設定成表示ITLB”擁有,,該記憶頁部分。該同步邏 輯340管理在ITLB336及DTLB344中的所有權欄位。在一實施例 中’對一兄憶頁中相同部份之所有權的表示是排他的。即,若對 應於特殊虛擬位址的入口係駐於DTLB 344 &ITLB 336,兩個入
口 有其中之一可表示擁有對應於該虛擬位址的記憶頁部分。在 另貫施例中,兩個入口都允許擁有一記憶頁的部分,但同調性 係基於該記憶頁是否為,,污染,,而定,詳如下述。 人[〇〇49]明參閱圖四’一方塊圖4〇〇描述圖三之微處理器中的 ^快取記憶體318及資料快取記憶體32G的相互關係。該方塊 ^描述一由提取(未圖示)所提供的下-指令指標402。, ^月,该下-指令指標4〇2係提供至指令快取記憶體_。該指 4^^:體4〇4/系經由一 DSN〇〇P匯流排422麵接至同步邏; 取圮==輯=係經由一腿00p匯流排436轉接至資料,1 (ICA^rm 指令快取記憶體404包括指令快取管理邏4 (ICACHE MANAGER) 406,經由匯产挑4川齡八絲…
衝器(ITLB) 40⑽h 、、工由匯机排420對扣令轉譯後備矣 v 毛月之—貫鈀例中,每一 HLB入口 410也且右銘逢 個科記憶頁的所有權攔位412、414、416、418,上::: 位的内容表示盘哕TTR 及等所有榷相 提^ _相關之記憶頁的部分可自由_ 4〇〇中,四個四人之“,^队查讀巾指令的同雛。在該方塊® 表示咖人口 4刀10 —而頁所有權搁位412、414、416,係用於 令之同調性管理。龙仙刀之胃的儲存梯度完成儲存引發指 或增加所有權攔位酬f對每,^ 而了使用早一頁的儲存梯度、半頁的儲存梯 22 1262438 二頁的儲存梯度。轉梯度、16分之一頁的儲存梯度以及32分之 [0()5()]妨塊圖彻亦 2⑽該微指令的相關目標位址攔位二算攔位 輯(未圖示)提供至一资 °亥荨攔位係由儲存邏 撕包括棘管理邏輯⑽=====記憶體 视包括_如场狀μ 4 _ 一 DTLB入口 438 ★且古、4¾ /3之實細例中,母 444、446、448,—_;111部分記憶頁的所有權攔位442、 相關》特百/ 4崔搁位的内容表示與該TLB入口 44〇 線中指令二=提取指令而做存取’無須檢查管 爛錢、4=6===_分之—頁所有權 你用於表不丁1^入口 410,而以四公夕 一頁的儲存梯度完成儲存引發指令 則λ 7之间5周性官理。其他的實施例 J„ 口 10刪除或增加所有權攔位,而可使用 刀之頁的儲存梯度以及幻分之一頁的儲存梯度。 [〇〇51]在運算上,兩對應之所有權位元412、442 ; 414、444 ; 416、446 ; 418、448 在兩對應之 ITLB 及 DTLB 入口 410、440 的 狀態係為排他的。即,若非指令快取記憶體404即是資料快取記 憶體432可擁有-虛擬記憶頁的一部分,但並非兩者可同時擁有。 當提供-下-指令指標暫存器(碰)搬至該指令餘記憶體4〇4 用於提取指令時’該指令快取管理邏輯4〇6對其對應之TLB入口 410及所有權位元412、414、416或418做存取(所存取的特殊的 部分記憶頁所有權位元412、414、416或418為NIP 402之低階位 址的函數’表示下一指令儲存於該記憶頁的那一部分。)若該NIp 23 1262438 ΙΤ=Γ’且若其部分記憶頁所有權位元4i2、414、416 憶體404擁有該記憶頁的部分,貝_ $被抚取=,、,、抓查同調性。若該着搬,,未中,,,或若命中但未 顯示擁有指令快取記情I#所右描gil^ir χττη 、心m、士心u 所有振則该NIP402經由DSN00P匯 k排422被kt、至該同步邏輯424。隨後,該 ISNOOP匯流排436提供^NTP4n9石次上m 田 ηττπ d,4i - 1 …亥贈402至—貝料快取管理邏輯434而在 + β 一,哥邛分圮憶頁的所有權。在資料快取記憶體432 中,料快取管理邏輯物對該則入口 440以及對應於所提 NIP 402 442^444^46 ^ itlb 4〇8所述所存取的特殊的部分記憶頁所有權位元仍、椒、仙 ,418為NIP 402之低階位址的函數,表示下一指令儲存於該記憶 、的那a邛刀。)若该NlP4〇2命中DTLB438内,且若其部分頁 =所有權位it 442、444、446或448表示資料快取432擁有該記 憶頁的部分,則該同步邏輯# 424藉由宣告拖延訊號(stall) 426,使微處理器延遲提取指令,並等到其管線閒置及儲存運算完 成此外’ 4同步邏輯424使資料快取管理賴434、經由匯流排 436釋放部份記憶頁的所有權並藉由改變對應之所有權搁位*似、 444、446或448的值而表示該釋放。同樣地,該同步邏輯424使 ‘令快,官理邏輯4〇6經由匯流排422建立該部分記憶頁的所有 權二並藉由改變對應之所有權攔位412、414、416或418的值而 表不忒建立。在本發明之一實施例中,若一 NIp 4〇2錯失ITLB 4〇8 並〒中DTLB 438,不論DTLB的所有權表示與否,對應於NIP 402 的DTLB入口 440由該同步邏輯424經由監視匯流排436、422複 製到ITLB 408的配對入口 410,避免位址轉譯查表程序(即,記 憶頁表走勢)。 [0052]當對應於一儲存微運算428的目標位址43〇被提供至該 24 1262438 資料快取記憶體432’該資料快取管理邏輯434對與其對應之 入口 440及所有權位元442、444、440或448做存取(所存取 特殊的部分記憶頁所有權位元412、414、416或418為NIP 4〇2 之低階位址的函數,表示該記憶頁的那一部分需被儲存)。若該目 才示位址430命中DTLB 438,且若其所有權位元442、444、446戋 448表示該資料快取記憶體404擁有該記憶頁的部分,則該儲存^ 公告而無須做同調性檢查。若該目標位址43〇錯失,或者是若命 中但資料快取所有權未表示,則該目標位址43〇經由isN〇〇p匯 流排436被提供至同步邏輯424。隨後,該同步邏輯424經由 DSNOOP ®流排422提供該目標位址43〇 1指令快取管理^ 406 ’在ITLB 408中搜尋部分記憶頁的所有權。在該指令快取記 憶體404中,該指令快取管理邏輯4〇6對TLB入口 41〇及對應於 所提供之目標位址430的所有權位元412、414、410或418做存 取。(如ITLB 408所述,所存取㈣殊的部分記憶f所有權位元 =、414、416或418為ITLB 408之低階位址位元的函數,表示 該記憶頁的那-部分的未決儲存要被公告)。若該目標位址43〇命 中ITLB 408内,且若其部分記憶頁的所有權位元化、4i4、416 或418表示該指令快取4〇4擁有該記憶頁的部分,則該同步邏輯 似藉由宣告清除訊號(FLUSH) 425,使該微處理器從先前指令的 管線階段清除該先前的齡,並㈣提取齡賴管線閒置且儲 存運算完成。此外’該同步邏輯424使指令快取管理邏輯概經 由匯流排422釋放部份記憶頁的所有權並藉由改變對應之所有權 攔位412、414、416或418的值而表示該釋放。同樣地,該同步 邏輯424使指令快取管理邏輯4〇6經由匯_ 422建立該部分記 憶頁的所有權’並藉由改變對應之所有權攔位树、物、撕或 448的值而表補建立。在本發明之—實施财,若—目標位址 25 1262438 430錯失DTLB 438並命中ITLB 408,不論rrLB的所有權表示盥 否,對應於目標位址430的ITLB入口 410由該同步邏輯424經由 監視匯流排436、422複製到DTLB 438的配對入口 440,避免位 址轉譯查表程序(即,記憶頁表走勢)。 [0053]請參閱圖五,一方塊圖表示本發明之快取管理邏輯 500。該快取管理邏輯500描述圖四之指令快取管理邏輯4〇6或資 料快取管理邏輯434的配置。該快取管理邏輯單元5〇〇包括TLB 存取邏輯502,該TLB存取邏輯502經由存出匯流排512耗接至 監視邏輯(snoop logic) 504,且經由存入匯流排514耦接至抓取 春 邏輯(snarf logic)506 ◦該監視及抓取邏輯504、5〇6係經由一監視 匯流排516耦接至同步邏輯(未圖示)。一虛擬位址(對應於下一. 才曰令^曰“或儲存目標位址兩者其中之一)係經由匯流排“Ο提供 至丁LB存取邏輯502。為了說明起見,圖五顯示一 32位元的位址 匯流排510,本發明也可包含其他的虛擬位址空間如16位元、64 位元、128位元及256位元的定址法則。該匯流排51〇也經過監視 邏輯504。虛擬位址ADDR 31 : 12的上位元(叩㈣池)係^共 至一轉譯後備緩衝器以經由一資料入口匯流排(ENTRY DATA)取 回一對應之TLB入口。 _ [0054]運算上,當一虛擬位址被提供至快取管理邏輯5〇(),該 TLB存取邏輯502將ADDR 31 ·· 12的上位元送至TLB,以決定 是否一入口存在於該TLB (即,命中)。若然,則該入口及其所有 、 權位元被複製到存取邏輯502的入口緩衝器5〇8。為了說明起見, : 5亥方塊圖顯示傳送一位址位元ADDR31 : 12至TLB,藉以表示一 4KB虛擬頁,然而本發明指出本發明也可應用至其他大小的虛擬 頁,包括l-KB、8-KB、16KB等。使用虛擬位址的低階位元(此 例中為位元11 : 1〇),該TLB存取邏輯5〇2對一對應之所有權攔 26 1262438 P3、QP2、qP1或qP〇做求值,以決定一虛擬記憶頁相關的 部分可否自由存取而無須在配對之TLB中搜尋所有權。若所有權 未表不,或若該虛擬位址全部錯失,則該監視邏輯單元5〇4將虛 擬位址傳送至同步邏輯(未圖示),經由該監視匯流排516監視其 他的TLB若其他tlb入口的狀態表示其入口欲複製至該tlb 存取邏輯,則該入口經由該監視匯流排516通過該抓取邏輯單元 刈6,並經由匯流排ENTRYIN 514提供至該TLB存取邏輯。若從 該快取Ϊ理麵從其配對部分經由監視匯流排啟動監視,則該抓 取邏輯單元506將該所提供之虛擬位址經由該存入匯流排514傳 达至TLB存取邏輯5〇2。在該對應之TLB入口的回復及檢查時, 右表不該TLB入口欲複製到配對的TLB,則該TLB入口係經由 匯流排存出512通過監視邏輯單元5〇4提供至該監視匯流排516。 該TLB存取邏輯單元5〇2由該同步邏輯單元導引改變所有權攔位 QP3_QP0的狀態。 [0055]請參閱圖六,其係為一表格6〇〇用以描述同步動作,該 同步動作係回應於本發明之未決儲存的運算,以確保一管線中指 令的同調性。如前圖三至圖五所示,若提供至DTLb的一目標: 址命中DTLB,且若該DTLB擁有一記憶頁的部分,並且對^記 憶頁的部分之儲存運算為未決,則該儲存可被完成而無須檢查管 線中指令的同調性。若該DTLB命中但並不擁有該部份記憶&的 所有權,則監視該ITLB。若該ITLB命中,並且擁有該部份記憶 頁的所有權,則清該管線除並拖延直到該儲存運算完成且該管線 為閒置。該ITLB中的所有權位元係設定用於表示該ITLB不再擁 有該部分記憶頁,而該DTLB中對應的所有權位元係設定於表示 該DTLB現在擁有該部分記憶頁。若該TILB的監視命中但所有權 未表示,該DTLB表示部分記憶頁的所有權且完成該儲存運算。 27 1262438 若該DTLB錯失,則啟動一 iTLB監視。在一 ITLB監視命中時, 其fLB入口被複製至DTLB。若該ITLB表示該部分記憶頁的^ 有權,則清除該管線並拖延直到其閒置。在ITLB中的所有權位元 係設定於麵該ITLB不再擁_部分記憶胃,且該Dtlb中對^ 的所有權位元設定成表示該DTLB現在擁有該部分記憶頁。若該 ITLB入口不表示所有權’ _ DTLB人口係設定成表示部分記^ 頁的所有權’且該儲存運算係使用實體位址及複製到該itl 性資訊來完成。 的屬 一 [0056]請參閱圖七,其係為一表格7〇〇用以描述同步動作,該 同步動作在本發财提取下—個指令前執行以確保管線中指令= 同調性。若驗下-指令的虛擬位址被提供至—ITLB且命中該 且若該ITLB擁有儲存將用以儲存下一指令的部分記憶頁: =完成指令的提取而錢檢絲線巾齡的同雛。若該 二但未擁有該部分記憶頁的所有權 τ Γ運t中ί擁有ί_記憶頁的所有權,_線拖夂= 兮ΓΓτϋ成且5亥官線閒置。當該管線閒置時,則提取下一指令。 ί憶頁,% Γ财權位元係蚊絲示該dtlb不再擁有該部分 ϋ〜tlb中對應的所有權位元則表示該1tlb擁有該部分 但輪所有權™ 被啟動。在—DTI^ :亥1TLB錯失,一 DTLB的監視 雜DTT h - 印中時,其灿人口被複製到該1TLB。 閒置。部分記憶頁的所有權’則該管線係拖延直到其
閒ϊ:則提取下-個指令。該_中的所有權 中對庫的:不、不仙11^不再擁有該部分記憶頁,而ITLB 财紳奴《。若該 不表不所有榷,則該ITLB入口係設定成表示部分記憶 28 1262438 dtlb 的另_ =上與圖五之快取管理邏輯5。。中的數j:=:狀: 指令二己細頁欄位QP3.的狀態無須僅在 體與貧料快取記憶體之間擇…如 ==料快取記憶體均可表示相對於所提供之虛擬= 的所有權。這使龍快取記憶體的讀取不影塑指 ‘ 财料快取記憶體做讀取,該DTLB存取邏輯單元 快取釋放^^之記憶頁的所有權’但同步邏輯單元不需要該指令 钟 θ冑。因此,若賴應之記憶頁卿分發生指令提取, 提取可70成而無須監視DTLB。既然該指令及資料快取 白謂有-記憶頁之一特殊部分的所有權,本發 ^邏f 8〇2”存取TLB入口攔位謝t的污染旗號位元(dirty 1 ^ 〇3的狀態,在來自指令快取的一 dtlb監視中,若一 =係等純彳该已經傳送至航翻的部分,或者是若僅讀取 =已ί里被傳送至該記憶頁的部分,則繼續進行指令提取而無須 I /貧線。热習此項技藝者瞭解該污染旗號位元⑽3為Mesi Κ取線狀怨私示态其中之一,普遍用來指示快取入口的内容已經 被七改’但尚未傳送至記憶體。雖然污染旗號位元803表示成TLB 入口 801的一部份,熟習此項技藝者知道該污染旗號位元也指定 在,取内儲存的位準,傳統上在快取線辦。第9、10圖根據快 的另—實施例更詳細地討論管線的同步。 [0058]睛參閱圖九,其係為一表格9〇〇用以描述詳細的同步動 29 1262438 算,以確Γ應於根據圖八之另—實施例800的未決儲存運 供至DTTrf令的同調性。根據該另一實施例漏,若一提 曾等待勃/、目標位址命中DTLB,且若該DTLB擁有該儲存運 it Γ憶頁的部分,且若該記憶頁需修改(或與該目 t ==指令同雛。^目標位址命中該肌β,且若該 (或對庫之之該記憶1科_有權,且若該記憶頁 ^^之!·夬取線)無須修改,則該_必須被監視。在一謂 ί 辭線必馳清除且齡的提取被拖延直到該 :置=存運算已經傳送。此外,⑽中的所有 =成表不ΠΧΒ不再擁有該記憶頁。在itlb監視未命 二,存運算被傳送。若該DTLB命中但未擁有該部分記情頁 有Ιτω #ITLB命中並擁有該記憶頁的所 置此Γίί皮/除並誕制雖純算完成且歸線被閒 卜 +之财嫌70設定絲補ITLB不再擁有兮 W«的所有權且DTLB中對應 ;; :擁有該部分頁。細則的監視命中但未表 =TLB表不_分記憶頁的所有權且完成儲存。若該 $ =啟動謂監視。在ITLB監視命中日寺,其灿 : :,腸表示該部分記憶頁的所有權,__ί^ 拖延直到閒置,包括傳运該儲存。此外,ITLB中的所 :、 設定成表示該ITLB不再财該龍㈣的所有權且肌 ^ ,有權位Tt設定成表示DTLB擁有該部分頁。若該则入口 ς 表示所有權,,DTLB人口設定成表示該部分記憶頁= 插,且完成該儲存使用該實體位址及複製到ITLB 有 [0059]第10 ®為-表格,_描朗步輯,在提取根據圖 30 1262438 二之該另—實施例_的下—指令前執行,以確保管線中指令的 5 :周性。若該下—指令的虛擬位址(提供至-ITLB)命中該ITLb, =。亥ITLB擁有下一指令儲存於其中的部分記憶頁,則完成 々的提取而無須檢查管線中指令的同調性。若該腦命中但: 有=部分記憶頁的财權,_ DTLB被監視。絲dtlb㈣ 中且該對應之記憶頁(或快取線,若快取龍存梯度提供於 巧1狀態)需要修改’ _f線被拖延制完成該 管線 。當料閒置時,提取下—指令。若該_的監視^ -…、…的Zfe頁(或快取線)無須修改,則該ITLB表示部分 頁的所有觀提取該齡。若該ITLB錯失,雜動—dtlb監視: 在- DTLB命中時’其txb人口係複製到該ITLB。若對資 取的監視表示該對應之記师的部分(即,記憶頁或快取線的部 /刀)需要修改’ _管線被拖延朗其·。#該管線為閒置, 則提取下-齡。若該資料快取的監視表示該部分記憶頁 取線)無祕正,則下—指令被提取使職實體位 到
OTLB的屬性資訊。 设衣至J —[0060]雖然、本發明及其目的、特徵及優點已詳細地揭露,其他 κ施例也包含於本發明中。例如’本發明為了圖示方便,以分 的指令快取以及資料快取做討論,但是本發明的發明者表示 明也可包括複合的快取結構。TLB人口可共享且嶋响搁位可^ 不一指令路徑或一資料路徑中的所有權。 [0061] 此外,本發明係以—管線的特殊階段(提取、轉 做說明。這些名稱與集合係於此_以清楚地揭示,而非暗示爲 線的結構。本發明可用於具有任意數量的現今的管線結厂包ς 具有紊亂微指令的子集合。 [0062] 熟習此項技藝者可以用所揭露之概念及特定之實施例 1262438 3礎來4或改良其他的結構以實現與本發明相同的目的。而 每中請專利範圍所定義之本發明的精神及範圍,可以 貝%不同的變更、取代及變形。 I發明圖式說明】 範例ΓΓ圖—為習知技術的方塊圖,描述現今管線微處理器之一 測料tLt為—方塊圖’描述—現今的技術,該技術係用於偵 同調处為&、i中由等待執行或正在執行的儲存運算所導致的不 或正圖生= 根據本發明之一用於在等待執行 r00161m ^ ""Μ τ’雜讀齡㈤調性賴處理器。 記憶體以_快取 [:=]圖五為描述本發明之快取管理賴的方塊圖,。 步動[作二_存運算的同 同步[:]:二 施例陶咽人.方細,财本發明之快取管理轉的另-實 =021頂九為-表格,描述本發明運用圖八之快取 另^實Ϊ0儲存運算的同步動作,以確保管財指令的同調性的 32 1262438 一實施例 [0022]圖十為—表格’描述本考 跡^_令之前_步動作’以確保二中 圖號說明: ==1(Ϊ I4^隱 _ 輯;则 ㈤鮮.”。 輯 執行邏輯;114儲存邏輯;116寫 入^ : ·/曰令快取記憶體;120資料快取記憶體;122匯流排 ^4^取_ ; 126 _赌;12_匯流排; 2】0同步邏輯;2〇8未決目標備測邏輯; 220日ίΓ—邏輯;216次指令指標暫存器;218微運算暫存器; TZ t^Tl^ ; 222 ; 226 ; 228 不存态,300微處理器;302提取邏輯;304轉譯邏輯; 古f f存#輯’ 3⑽定址邏輯;310載入邏輯;312執行邏輯;314 1子化輯,316寫回邏輯;318指令快取記憶體;32〇資料快取記 憶體/· 322匯流排介面單元;324提取匯流排;326載入匯流排; 32f儲存匯流排;330、332匯流排;334記憶體匯流排;336指令 轉厚後備緩衝339清除訊號;⑽同步邏輯;糾拖延訊號; 342t=流排;344資料轉譯後備緩衝器;400方塊圖;402下一指 令,404指令快取記憶體;406指令快取管理邏輯;408指令 轉澤後備緩衝器(ITLB) ; 410 TLB 入口; 412、414、416、418 部分兄憶頁的所有權攔位 ;420匯流排;422 DSNOOP匯流排;424 同步邏輯;428微運算攔位;430相關目標位址欄位;432資料快 取兄憶體;434資料快取管理邏輯;436 ISNOOP匯流排;438資 料轉譯後備緩衝器(DTLB); 440TLB 入口; 442、444、446、448 33 1262438 部分記憶頁的所有權欄位;450匯流排;500快取管理邏輯;502 TLB存取邏輯;504監視邏輯;506抓取邏輯單元;510匯流排; 512存出匯流排;514存入匯流排;516監視匯流排;800快取管 理邏輯;801 TLB入口欄位;802 DTLB存取邏輯;803污染旗號 位元(dirty bit)
34

Claims (1)

1262438 十、申請專利範圍: 1· 一種管線微處輝哭& 中齡的同調性括用於確保該歸微處理器之階段 址广、^吕理邏輯’組態成接收對應於一下—指令之一位 由傲ί、顺應於該下—指令之—記憶頁的—部份可否可自 若必二^無須檢查胁1顧料巾齡的_性,且 — 屑松查同調性時,提供該位址;以及 組?献純傾骑闕難㈣位址,並命令 ί貝輯檢查該記憶胃之該部分巾指令的同調 一 °Λ‘々與該記憶頁該部分不同調,則該同步邏輯單 Ϊ;二處理器拖延下一指令的提取’直到該管線微 的之邊卩白&已執行所有先前的指令。 2· ill專利賴第1項所述之裝置,其巾該齡快取管理邏輯 情應於該位址的指令轉譯後備緩衝器(ITLB)的入口求值, 以偵測該記憶頁部分是否無法被自由存取。 3· 士申.月專利範圍第2項所述之裝置,其中上述itlb的入口 應該記憶頁。 4·如申.月專利範圍第3項所述之裝置,其中上述肌b的入口包 括複數個部分記憶頁所有權位元。 5·如申請專利範圍第4項所述之裝置,其中該複數個部分記憶頁 所有權位元其中之一對應於該記憶頁之該部分。 6·如申凊專利範圍第5項所述之裝置,其中其餘該複數個部分記 憶頁所有權位元係對應於該記憶頁的其餘部分。 7·如申請專利範圍第5項所述之裝置,其中該記憶頁之該部分可 被自由存取,若該對應於該記憶頁之該部分之該部分記憶頁所 有權位元已被設定。 35 1262438 8.如申請專利範圍第5項所述之 無法自由存取,若該對應卿^百-中上述記憶頁之該部分 所有權位元未被設定。、…⑷頁之該部分之該部分記憶頁 9·如申请專利範圍第4項 所有權位元包括四個部分記中趙數個部分記憶頁 括該記憶頁的四分之—。,斤有推位元,且其中該部分包 10.如申請專利範圍第丨項 輯對h 置,其中上述資料快取管理邏 : 資料轉譯後備緩衝器(D刺的入口 n 麟指令衫與該記憶頁_部糾調。 u.如申睛專利範圍㈣項_ 對應該記憶頁。 Υ罝其中上述DTLB的入口 12t=:圍第U項所述之裳置,其中上述·Β的入口 包括禝數個部分記憶頁所有權位元。 U·如申請專利範圍第12項所 π述之玫置,其中該複數個部分記憶 頁^振位凡其中之—對應於該記憶頁 Ϊ4·如申請專利範圍第13項 ^刀 ^ 、厅呔之羞置,其中其餘該複數個部分 此胃財她讀、_記憶胃的 U·如申請專利範圍第13項 邰 之今邱八田- 江錢,其中該指令與該記憶頁 右該對應於該記憶頁之該部分之該部分記憶 貝所有榷位70已被設定。 所有分之該部分記憶頁 物勒咖之階段 一資料快取管理邏輯單元,轉成麵對應—未決之儲存指令 36 1262438 之-位址,並偵測對應於該儲存指令的一記憶頁的—部份 否自由做存取’而無須檢查场記憶頁之該部分中指令的同 性,且若必碰查__,提供該位址 ;以及 。 同步邏輯,組恶成從該指令快取管理邏輯接收該位址,並 該指令快取管理_檢查該記憶頁之該部分巾指令的· 性^右该指令與該記憶頁該部分不同調,則該同步邏輯A 々。亥官線微處理态清除該管線微處理器的先前階段。 18.如申请專利範圍第π項所述之裝置,其中上述資料快取管 邏輯對對應於該位址的一指令轉譯後備緩衝器(dtlb)的入 口求值卩偵膝玄冗憶頁的該部分是否無法做自由存取。 19·如申請專利範圍第18項所述之裝置,其中該〇彻的入 應該記憶頁。 中 20. 如申請專利範圍第19項所述之裝置,其中該DTLB的入μ , 括複數個部分記憶頁所有權位元。 匕 21. 如申請專利範圍第2〇項所述之裝置,其中該複數個部分記情 頁所有權位元其中之一對應於該記憶頁之該部分。 μ 22. 如申請專利範圍第21項所述之裝置,其中其餘該複數個部八 記憶頁所有權位元係對應於該記憶頁的其餘部分。 σ ^ 鲁 23·如申請專利範圍第21項所述之裝置,其中該記憶頁之該部八 可被自由存取,若該對應於該記憶頁之該部分之該 所有權位元已被設定。 頁 24·如申請專利範圍第21項所述之裝置,其中上述記憶頁之嗦a ; 分無法自由存取,若該對應於該記憶頁之該部分之該部分二j ; 頁所有權位元未被設定。 〇乃舌己憶 25·如申請專利範圍第20項所述之裝置,其中該複數個部分—立 頁所有權位元包括四個部分記憶頁所有權位元,且其中 37 1262438 包括該記憶頁的四分之一。 26.ΐ1=Γ範㈣17項所述之打,其中該指令快取管理邏 於該位址的-資料轉譯後備緩衝器 二 值由以_該指令是否與該記憶頁的該部分同調。 求 =申請專利範圍第26項所述之裝置,其中 應該記憶頁。 W八口對 n專利範圍第27項所述之裝置,其中上述itlb的入 括禝數個部分記憶頁所有權位元。 G 2^申請專利細第28項所述之裝置,其中該複數 頁所有權位元其巾之-對應於該記<itI之該部分。4 2圍第29項所述之裝置,其中其餘該複數個部分 頁所有榷位兀係對應於該記憶頁的其餘部分。 專利範圍第29項所述之裝置,其中該指令與該記 不關’若賴應_記憶頁之該部分之該部分記慎 頁所有權位元已被設定。 〜 32·=管線微處理器的方法,用於確保該管線微處理器之 才曰々的同調性,該方法包括下列步驟: 甲 資料決取冗憶體中,伯測對應於—未決儲存指令之— 由做存取,而無須檢查該記憶頁該部分中^ 命HiT取記憶體中之邏輯檢查該記憶頁之該部分中指 31 Γί指令不_ ’則清除該管線微處卿的先前階段。 圍第32項所述之方法,其中該_步驟包括: 貝料轉譯後備緩衝II (DTLB) 做求值,該入口係對 %;用於该未決儲存指令之一目標位址。 ” 38 1262438 34. ^申請專利範圍第33項所述之方法,其中該抓b入口對應 该記憶頁。 35. ^申請專利範圍第33項所述之方法,其中上述飢b的入口 匕括複數個部分記憶頁所有權位元。 36·ΐΓί專利範圍第35項所述之方法,其中該複數個部分記憶 頁所有她7L其巾之-對應於該記憶狀該部分。 37·如=專利範圍第36項所述之方法,其中其餘該複數個部分 5己十思頁所有權位元係對應於該記憶頁的其餘部分。 3=申,專利範圍第37項所述之方法,其中該記憶頁之該部分 由存取’右賴應於該記憶頁之該部分之該部分記憶頁 所有柘位元已被設定。 39tlt利範圍第37項所述之方法,其中上述記憶頁之該部 由存取,魏對應於該記憶頁之該部分之該部分記憶 頁所有杻位元未被設定。 401戶=專_第35項所述之转,其中該複數個部分記憶 41 圍第32項所述之方法,其中該命令步驟包括: 對一扎令轉譯後備緩衝器(ITLB) 於用於該未決儲存指令之一目標位ς口做求值,该入口係對應 第41項所述之方法’其中該1則入,於 4H專利範圍第42項所述之方法,其中上述⑽的入口包 括複數個部分記憶頁所有權位元。 匕 專利範圍第43項所述之方法,其中該複數個 頁所有她元其中之-對應於該記_之該部分。 u 39 1262438 45. 如申請專利範圍第44項所述之方法,其中其餘複數個部分記 憶頁所有權位元係對應於該記憶頁的其餘部分。 46. 如申請專利範圍第45項所述之方法,其中該指令與該記憶頁之 該部分不同調,若該對應於該記憶頁之該部分之該部分記憶頁 所有權位元已被設定。
40
TW093121986A 2003-09-19 2004-07-23 Store-induced instruction coherency mechanism TWI262438B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/665,171 US7263585B2 (en) 2002-09-19 2003-09-19 Store-induced instruction coherency mechanism

Publications (2)

Publication Number Publication Date
TW200512650A TW200512650A (en) 2005-04-01
TWI262438B true TWI262438B (en) 2006-09-21

Family

ID=34194761

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093121986A TWI262438B (en) 2003-09-19 2004-07-23 Store-induced instruction coherency mechanism

Country Status (4)

Country Link
US (1) US7263585B2 (zh)
EP (1) EP1517232B1 (zh)
CN (1) CN1560736A (zh)
TW (1) TWI262438B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621179B2 (en) * 2004-06-18 2013-12-31 Intel Corporation Method and system for partial evaluation of virtual address translations in a simulator
GB0513375D0 (en) 2005-06-30 2005-08-03 Retento Ltd Computer security
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US7360022B2 (en) * 2005-12-29 2008-04-15 Intel Corporation Synchronizing an instruction cache and a data cache on demand
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US7447956B2 (en) * 2006-03-03 2008-11-04 Qualcomm Incorporated Method and apparatus for testing data steering logic for data storage having independently addressable subunits
US8180977B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory in out-of-order processors
US8180967B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory virtualization
US8479174B2 (en) * 2006-04-05 2013-07-02 Prevx Limited Method, computer program and computer for analyzing an executable computer file
US7945761B2 (en) * 2006-11-21 2011-05-17 Vmware, Inc. Maintaining validity of cached address mappings
US7937561B2 (en) * 2008-04-03 2011-05-03 Via Technologies, Inc. Merge microinstruction for minimizing source dependencies in out-of-order execution microprocessor with variable data size macroarchitecture
US10574630B2 (en) 2011-02-15 2020-02-25 Webroot Inc. Methods and apparatus for malware threat research
US9804969B2 (en) * 2012-12-20 2017-10-31 Qualcomm Incorporated Speculative addressing using a virtual address-to-physical address page crossing buffer
US9747212B2 (en) * 2013-03-15 2017-08-29 International Business Machines Corporation Virtual unifed instruction and data caches including storing program instructions and memory address in CAM indicated by store instruction containing bit directly indicating self modifying code
CN104050092B (zh) * 2013-03-15 2018-05-01 上海芯豪微电子有限公司 一种数据缓存系统及方法
US9898418B2 (en) * 2015-05-21 2018-02-20 Via Alliance Semiconductor Co., Ltd. Processor including single invalidate page instruction
US9824012B2 (en) * 2015-09-24 2017-11-21 Qualcomm Incorporated Providing coherent merging of committed store queue entries in unordered store queues of block-based computer processors
KR102376396B1 (ko) * 2016-12-07 2022-03-21 한국전자통신연구원 멀티 코어 프로세서 및 그것의 캐시 관리 방법
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
KR102377729B1 (ko) * 2016-12-08 2022-03-24 한국전자통신연구원 멀티 코어 프로세서 및 그것의 동작 방법
US10706150B2 (en) * 2017-12-13 2020-07-07 Paypal, Inc. Detecting malicious software by inspecting table look-aside buffers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835949A (en) * 1994-12-27 1998-11-10 National Semiconductor Corporation Method of identifying and self-modifying code
US5742791A (en) 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
US5930821A (en) * 1997-05-12 1999-07-27 Integrated Device Technology, Inc. Method and apparatus for shared cache lines in split data/code caches
US6164840A (en) * 1997-06-24 2000-12-26 Sun Microsystems, Inc. Ensuring consistency of an instruction cache with a store cache check and an execution blocking flush instruction in an instruction queue
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
US6405307B1 (en) * 1998-06-02 2002-06-11 Intel Corporation Apparatus and method for detecting and handling self-modifying code conflicts in an instruction fetch pipeline
US6594734B1 (en) * 1999-12-20 2003-07-15 Intel Corporation Method and apparatus for self modifying code detection using a translation lookaside buffer
US6848032B2 (en) * 2002-09-27 2005-01-25 Apple Computer, Inc. Pipelining cache-coherence operations in a shared-memory multiprocessing system

Also Published As

Publication number Publication date
TW200512650A (en) 2005-04-01
US20040068618A1 (en) 2004-04-08
EP1517232A2 (en) 2005-03-23
EP1517232B1 (en) 2016-03-23
US7263585B2 (en) 2007-08-28
CN1560736A (zh) 2005-01-05
EP1517232A3 (en) 2007-11-14

Similar Documents

Publication Publication Date Title
TWI262438B (en) Store-induced instruction coherency mechanism
TWI249673B (en) Microprocessor and apparatus for performing speculative load operation from a stack memory cache
TW548548B (en) Store buffer which forwards data based on index and optional way match
CN103620555B (zh) 抑制不正确的推测性执行路径上的控制转移指令
TW559732B (en) Method and apparatus for maintaining processor ordering
US8166251B2 (en) Data prefetcher that adjusts prefetch stream length based on confidence
US8140769B2 (en) Data prefetcher
TW311192B (zh)
US8627044B2 (en) Issuing instructions with unresolved data dependencies
TW200805151A (en) Apparatus and method for handling data cache misses out-of-order for asynchronous pipelines
TW200949690A (en) Processor and early execution method of data load thereof
US6622237B1 (en) Store to load forward predictor training using delta tag
KR100228940B1 (ko) 메모리 일관성 유지 방법
EP1244962B1 (en) Scheduler capable of issuing and reissuing dependency chains
US6694424B1 (en) Store load forward predictor training
US20110185125A1 (en) Resource sharing to reduce implementation costs in a multicore processor
TW201030612A (en) Pipelined microprocessor with fast conditional branch instructions based on static exception state
TW200530912A (en) Transitioning from instruction cache to trace cache on label boundaries
CN103635877B (zh) 乱序处理器中的分支目标存储与检索
US6564315B1 (en) Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction
US20120290821A1 (en) Low-latency branch target cache
US6622235B1 (en) Scheduler which retries load/store hit situations
US20130024647A1 (en) Cache backed vector registers
WO2001050252A1 (en) Store to load forwarding predictor with untraining
TW200821924A (en) Self prefetching L2 cache mechanism for instruction lines