TW200304619A - Method and apparatus for detecting pipeline address conflict using compare of byte addresses - Google Patents

Method and apparatus for detecting pipeline address conflict using compare of byte addresses Download PDF

Info

Publication number
TW200304619A
TW200304619A TW092105273A TW92105273A TW200304619A TW 200304619 A TW200304619 A TW 200304619A TW 092105273 A TW092105273 A TW 092105273A TW 92105273 A TW92105273 A TW 92105273A TW 200304619 A TW200304619 A TW 200304619A
Authority
TW
Taiwan
Prior art keywords
address
bit
pipeline
order
conflict
Prior art date
Application number
TW092105273A
Other languages
English (en)
Other versions
TWI244037B (en
Inventor
David Arnold Luick
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 TW200304619A publication Critical patent/TW200304619A/zh
Application granted granted Critical
Publication of TWI244037B publication Critical patent/TWI244037B/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
    • 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/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

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

200304619 玫、發明說明 【發明所屬之技術領域】 本發明一般與數位資料處理相關,且特別與在資料處 理系統之處理單元中之管線操作有關。 【先前技術】 一現代電腦系統一般至少包含一中央處理器(central processing unit ; CPU)和,與儲存、擷取及傳輸資訊所 必須之支援硬體(supporting hardware),諸如溝通匯流排 (communications busses)和記憶體等。其亦至少包含與外 界溝通所必須之硬體’諸如輸入/輸出(input/output)控制 器或儲存控制器,和諸如鍵盤、監視器、磁帶驅動器(tape drives)、磁碟驅動器(disk drives)、和連至一網路之溝通 線路(communication lines)等連接至該處之設備。該 CPU 為該系統之核心 (heart )。其執行 (executes)指令 (instructions),該指令至少包含一電腦程式並指示 (d i r e c t s )另一系統元件之操作 。 自電腦硬體之角度觀之,多數之系統基本上以相同方 式操作。處理器可執行有限組之相當簡單之操作(very simple operations),諸如計算、邏輯比對(logic comparisons)、和將資料自一位置G〇cati〇n)移動至另一 位置等。惟每一操作皆快速地執行。指示電腦執行大量該 簡單操作之程式使電腦呈現正在處理複雜事務之景象。可 能藉由執行基本上相同組之相當簡單操作’但操作速度更 5 200304619 快,而使使用者察覺到彷彿新的或電腦系統能力之改良。 是以對電腦系統之繼續改良需要使該些系統較過去更加快 速。 一電腦系統之整體速度(亦稱為「傳輸率」 (t h r 〇 u g h p u t ))可粗略地以每一單位時間所執行之操作 (operations)數量來衡量。概念上來說,對系統速度一切 可能的改良中最簡單的是增進各種元件之時脈(cl〇ck speeds),特別是處理器之時脈。例如,若每一次的運轉 速度增為兩倍但其他部分以相同方式工作,該系統將在一 半的時間内執行一給定之工作(task )。早期之電腦處理 器,其乃由數個(many)獨立(discrete)元件所構成,可藉 由縮小元件尺寸、減少元件數量、以及最終將整個該處理 器裝配(package)的如在一單一晶片上之積體電路般,而 明顯改良速度。降低後的尺寸可增進該處理器之時脈,並 據此增進系統速度。 儘管在自積體電路獲致龐大之速度改良,對更快電腦 系統之需求仍持續著。硬體設計者已能藉由更大之整合 (亦即,增加單一晶片上之電路數量裝配於)、藉由更進一 步降低該電路之尺寸、和藉由各種其他技術,而獲致在速 度上更進一步之改良。設計者可發現其無法無限制地持續 降低實體尺寸,且其繼續增進處理器之時脈之能力有所限 制。注意力因此導向其他手段以進一步改良該電腦系統之 整體速度。 6 200304619 在不改變時脈的情況下,可能藉由採用多份(multiple copies)該種元件,特別是藉由採用多重CPUs (multiple CPUs )而改良系統之比對。該裝配在積體電路晶片上之 個別處理器最適度之成本(modestcost )使此具可行性。 當採用多重處理器具有確然之潛在利益之同時,將會引入 附加結構上之問題。在不對此深究的情況下,無論一系統 採用多重CPUs或單一 CPU,仍可觀察到許多改良該個別 CPU速度之理由。若給定該cpu之時脈,可藉由增進每一 時脈週期所執行之操作的平均數量,更進一步增進該個別 CPU之速度,亦即每秒執行之操作數量。 取近之處理器採用某種型態之管線以增進每一時脈週 期所執行之操作的平均數量,如同一階或多階之快取記 憶體(cashe memory)以提供高速存取(high-speed access) 主記憶體(main memory )中之資料子集(subset)。管線 指令之執行使後來的指令在先前發出之指令完成之前開始 執行。理想上,一新指令隨著每一時脈週期開始,並接隨 母一週期經過一管線級等。儘管一指令可能採取多重週期 或管線級等而完成,若該管線總是完全(full ),則該處 理器每個週期執行一個指令。 當然,在知道不可能總使該管線完全之下,該管線總 疋完全僅是設計者奮鬥的理想。因為各種理由,有時將停 止該管線。例如’该指令流可能採取一非預期之分支至一 不在快取中之指令,或可能自一不在該目前最低階(1〇west 200304619 ^vel )快取資料位置載入資料。在此情況下,該處理器 無法開始-新指令,且一般必須等待該必要之指令或資料 取得(fetched) i該快取’其中該指令或資料要不來自 另-較高階(higher level)快取,*不來自主記憶體。 :有其他管線停止的原目。其中有在管線操作間之位址衝 突,特別是在載入和儲存(st〇re )操作間者。若一儲存 操作將資料儲存至一位址X,並接著以載入操作自位址χ 載入資料,則必須注意儲存操作是否在載入操作開始前完 成,否則可能載入錯誤之資料。為了防止錯誤之操作,一 使用管線指令之執行處理器一般比對該種操作目標運算元 (operand )之位址和管線中操作之相似之位址。若偵測 到衝突’該接下來之操作必須延遲或重新開始 (restarted) 〇 部分系統之设计’採用U NIX ( U NIX - b a s e d )之系統 即為一例’採用一種型恐之虛擬定址(addressing),該型 怨之虛擬定址可能有位址別名(a 1 i a s i n g )。亦即,自該指 令衍生並藉由該處理器產生之位址,通常乃指「虛擬位址」 (virtual addresses )或「有效位址」(effective addresses ),且該位址對映至在該系統之該實體 (physical )主記憶體中之位址,一般指「實位址」(rea 1 address)或「實體位址」(physical address),其中可能 有多重(multiple )虛擬位址對映至同一實位址。因為多 重虛擬位址可能對映至同一實位址,該快取一般存取一實 200304619 位址’且僅該實位址可能可靠地用於判定在管線操作上是 否發生位址衝突。 一般而言’為了獲致一資料之實位址以為資料參照操 作(例如一載入或儲存操作),使用一部份之該虛擬位址 以存取一名為轉#後備緩衝區(translati〇I1 l〇〇kaside缓 衝區;TLB )之資料表(table )。該TLB—般為N線路交 又索引(N-way set ass〇ciative ),其提供n個對應於 (corresponding to )該虛擬位址之可能的實位址項目 (entries )。一 TLB檢視(lookup )需要自該TLB檢索該N 個項目,其中每一個項目對比至該虛擬位址,並揀選出對 應於該相符之項目之實位址。此些操作可能需要多重時脈 週期(時脈週期)。 當在管線操作間發生位址衝突時,渴望盡快偵測出衝 突。偵測此種衝突所花費的時間愈長,潛在的執行衝擊 (performance impact)愈大。不僅累及潛在指令衝突’ 亦可能累及該衝突後產生之指令。稍後偵測位址衝突需要 所有潛在資料完整性之暴露在進行前矯正。既然直至該虛 擬位址轉譯為實位址後方能偵測一位址衝突’執行該TLB 檢視所需之時間直接延遲了位址衝突之偵測。 隨處理器能力更強且更複雜,該管線操作間之位址衝 突問題將被放大。部分較新之處理器設計採用所謂的「廣 發超純量」(Wide Issue Superscalar)或「超長和令丰」 (Very Long Instruction Word; VLIW)結構’於其中门 200304619 時執行多重操作,且多重載入和儲存可同時發出。其他處 理器設計亦趨複雜,隨管線長度的增加,可能出現多重管 線,可能支援多階之快取等。 所有此種複雜度的增 々剡增進該作用 (active )管線級等之數量,其具兩種後果。盆一 八 9 m 位址衝突之可能’同時’當位址衝突存在時,重新開始 (restarting )該管線將有更大之潛在執行衝擊。因此, ·: 隨管線之複雜度在現在和未來之處理器設計中增加,位址 衝突可能成為一顯著之執行瓶頸。儘管仍去入 k S W禾全然地暸解此 趨勢,但現在和未來存在處瑝管線位址衝突之改良技術之 需求。 【内容】
在不經由一位址轉譯機制轉譯該位址的情況下,直 比對一管線操作中之虛擬位址(「位元組位址」(by address))之低-序位部分(1〇w-〇rder部分)和於該管 機制(mechanism)中其他一個或多個操作之相對之低_ 位部分,以偵測一位址衝突。若未偵測出相符之位元組 址’則表示無位址衝突且管線操作正常地進行。 於較佳之具體實施例中,若於位元組位址間發現相 付者’即假设存在一位址衝突,而不進一步確認一真正 (actual )位址衝突是否發生。此時,儘管該位址之較高· 序位邵分可能並不相符,仍視該對應之操作存在真正位址 10 200304619 衝突。特別是,若該操作之類型乃在其間兩 . 、]鴻要一婆最」各 距(minimum time interval ) 或需要立姑 〜 小時 π仕相後之操 完成操作(例如,其後接著載入操作之辟* 開始前 「甫存操作、 止該稍後之操作(以及管線中任何在直 ’則停 '、便開始者)—凡、 足之時間以防止暴露任何資料之完整性。 #又充 止一預先決定之週期(cycles )數、停止ξ # 奢〜 操作結束、或其他手段(means )。Α 衝突 ,、了把可選擇 新開始該管線。 |王地重 於該較佳之具體實施例中,該CPU具有一 、個或多個你 取,其使用實位址定址。該CPU之N線路(& 呎 a y )轉等
後備緩衝區(TLB )用於判定實位址之古 V 、、· I讧址又同-序位邵分和虛 擬位址又高··序位部分。一旦判定了該實位址,其 、 &線級等 即包含Μ操作相對應之實位址。在未經該tlb先轉譁, 管線操作之虛擬位址之下,比對該新管線操作之低-序新 部分和管線中其之前之潛在衝突操作之低_序位位址f位 分。 ^ 根據本發明之較佳具體實施例之管線位址衝突偵測 制具有許多優異性。於較早級等偵測管線位址衝突,、:機 個::衝突之執行衝擊降低。-般而言,因早期偵測之故使 可單純藉由停止管線中稍後之指令而保存資料完整性,而 無須在指令已在該管中完全執行後重新開始該管線。儘= 偵測到—定數量之「誤報」(false positives ),但各偵^ 到之位址衝突所降低之執行成本一般高於抵銷該錯誤2 11 200304619 心。一般而言,相對於在已進行部分程序後再重新開始該 管線’停止一部份之管線較為簡單且需要較少之硬體。最 後’由於僅全部位址中之子集需進進行比對,因此用以作 位址比對以偵測位址衝突之硬體便減少了。 本發明之細節(包括結構和操作),可藉由參照附隨 之圖示(其中相似的編號指示相似之部分)有最佳之暸解, 其中:
【實施方式】
根據(Referring )該圖示,其中類似之數字代表各 種觀點(view )下之相似部分。第1 A圖為根據本發明之 具體實施例之一單一 CPU電腦系統100之主要硬體元件之 高階表示’該電腦系統用於偵測管線位址衝突並做為解決 之機制。CPU 101處理來自主記憶體1〇2之指令和資料。CPU 101暫時於一快取結構(cache structure)保留指令和資料 以更快速地存取。於第丨A圖之具體實施例中,該快取結 構顯示出内邵分離之一階指令快取(level one instruction cache; LI I-cache) 106、和一階資料快取(datacache; LI D-cache ) l〇7,和緊連至 CPU 101之二階快取 108 ( L2 cache ) °然而,必須瞭解的是,該快取結構可能不同;其 中快取中之階數(the number of levels )和功能之區塊 (division)可能不同;且事實上一系統可能根本沒有快 取。LI I-快取1〇6儲存指令以由CPu ίο!執行。li D-快取 12 200304619 儲存資料(指令以外者)以由CPU 101處理。乙2快取可用 於同時保留指令和資料。記憶體匯流排1 〇 9提供一資料溝 通管道以在CPU101、主記憶體102和輸入/輸出匯流排介面 (I/O bus interface) 105間傳輸資料,其中該1/0匯流排 介面105進一步連至系統I/O匯流排η 〇以在各1/〇單元間往 來傳輸資料。 輸入 / 輸出處理單元(I/O processing units ; IOPs) 111 -11 5連至系統I/O匯流排11 〇,並支援與各種儲存和其 他VO設備間之溝通,諸如直接存取儲存設備(direct access storage devices ; DASD)、磁帶機(tape drives)、 工作站(workstations)、印表機和遠端溝通線路(rem〇te communications lines )以與遠端設備或其他電腦系統溝 通。 必須瞭解的是,第1 A圖意圖於高階描述該系統1 〇 〇之 主要元件之典型(representative),其中個別元件可能具 有較第1 A圖高之複雜性,且此類元件之數量與型態可能 不同。特別是,系統100可能包含多重CPUs。於第1B圖中 在高階描述此種多重CPU系統中。第1 B圖顯示一具有四 CPUs 101A、101B、101C、101D之系統,其中各 CPU 具有 相對之(respective) — 階指令快取 106A、106B、106C、 106D、和相對之LI D -快取 107A、107B、107C、107D。 指令和資料之分離L2 ( separate L2 cache)快取1〇8Α、 108B、108C、108D與各CPU相連。此處所使用之CPU和 13 200304619 快取為類屬參照數字(generic reference numbers ),諸如 CPU 101、LI I-快取i〇6、LI D-快取107和L2快取108所參 照,應暸解的是,此類設備可包含於一如第1 A圖所示之 單一 CPU系統或如第IB圖所示之一多重CPU系統。 於第1 A圖和第1 B圖中,於高階顯示記憶體匯流排1 〇9,其 作為提供CPUs、主記憶體和I/O間之溝通管道之用。必須 瞭解的是,此僅為高階表示,且事實上記憶體匯流排1 0 9 可能至少包含多重不同之匯流排或溝通管道,其可能依層 級排列(arranged in a hierarchy)之。此外,如同於各種 所謂非統一記憶體存取(non-uniform memory access ; NUM A )電腦系統結構之任;者般,主記憶體1 02可能劃 分為與特定C P U s或C P U s組和特定匯流排組相關之部分。 在已描述並於高階顯示各種系統元件同時,必須瞭解的 疋’典型電腦系統包含許多其他未顯示之元件,而其並非 瞭解本發明所必須。於該較佳具體實施例中,電腦系統1 0 〇 支援一採取UNDC ( UNDC-based)之操作系統,但其亦 可能於UNIX外或取代UNDO支援其他操作系統。 第2圖為一根據較佳具體實施例之CPU 101主要元件 之高階圖示,其較第1 A和1B'圖詳細地顯示CPU 101。於該 具體實施例中,該顯示於第2圖中之元件裝配於一單一半 導體晶片。CPU 101至少包含指令單元部分201、執行單 元部分211、和記憶體管理部分(p〇rti〇n) 221。一般而 言,指令單元2 0 1自一階指令快取1 〇 6獲致指令,將指令解 14 200304619 碼(decodes )以判定執行之操作,並解析分支條件(branch conditions)以技制程式流程。執行單元(executi〇n unit) 211於暫存器中(registers)資料上之執行計算和邏輯操 作’並載入或儲存資料。記憶體單元22 1以CPU外部之記 憶體(亦即’於該L2快取或主記憶體)提供資料至該L1 快取和介面,其中指令或資料必須在該CPU外部記憶體被 取得或儲存。 指令單元201至少包含分支單元(branchunit ) 202、 指令%•碼 / 分派單元(decode/dispatchunit ) 203、和指 令暫存器與緩衝區(instruction registers and buffers ) 2 04。於執行前,載入來自一階指令快取i〇6之指令至緩衝 區2 04。取決於CPU設計,可能有多重緩衝區(例如,其 一為循序系列之指令緩衝區,而其他為分支位置緩衝 區)’其中每一者可能各自包含多重指令。解碼/分派單元 203接收該自其中一緩衝區執行之最新(current)指令, 並將該指令解碼以判定應執行該操作或分支條件。分支單 元2 0 2藉由評估分支條件控制該程式流程,並自L丨〗_快取 重新補充(refills)緩衝區。執行單元211最好至少包本 多重管線212-214和一組暫存器215。暫存器215儲存資料 以輸入至、輸出自、和控制由執行單元2 11所執行之操作, 並可能至少包含一般用途之整數暫存器(integer registers )、浮點暫存器(floating point registers )、和各 種特定用途之暫存器。管線21 2-2 14乃用於執行各種需要 15 200304619 多重時脈週期以完成之操作。 於該較佳之具體實施例中,至少管線2i2_2i4中其中 一者,一方面用於在暫存器215間傳輸資料或載入/儲存管 線,另-彳面作為某種形式之記憶冑(快取或記憶體)。^ 他的管線可能用於各種計算和邏輯操作,包含浮點操作,、 或其他操作。當三管線以第2圖中之簡化方塊圖中之實施 例之方法描述之同時,該管線之真正數量隨處理器之設計 而有不同,且可能有多重之載入/儲存管線。 LI I-快取1〇6和LI D-快取107為提供資料至指令與執 行單元之分離指令和資料快取。一般而言,資料乃取自咬 儲存至該些單元,且若該資料於該L1快取無法獲得,則 其自L2快取1 0 8或主記憶體1 〇2載入至該l 1快取,並接著 自L 1快取傳輸至相對應之單元。依處理器設計,其可能 旁通(by-pass) L1快取並自L2快取載入資料至一執行或 指令暫存器。L1I-快取106含-有其内容之目錄(direct〇ry ) 217,且LID -快取107亦含有内容之目錄。 記憶體管理單元2 2 1至少包含L2快取目錄2 2 2、L2快 取介面223、和記憶體匯流排介面224。L2快取目錄222為 L2快取1〇8内容之目錄。L2快取介面223處理直接前往和 來自L2快取1〇8之資料的傳輸。記憶體匯流排介面224處 理跨越記憶體匯流排1 09的資料之傳輸,該資料可能傳至 主記憶體或經由匯流排介面1 0 5傳至1/ Ο單元。記憶體管理 單元221途經(routes )資料存取至各種單元。例如,當 16 200304619 該載入/儲存管線進紅 _ .. 延仃一載入指令時,需要將資料載入一 暫存益’記憶體管理错_ 里早7G221將依需要自L2快取108或主 記憶體102取得資料。 轉譯後備緩衝區(T T R?彳6赋 rU JW, ^ .., k 216將一由執饤載入/儲存指 令產生(虛擬位址轉譯為一實體位址,如此處更完整地解 釋瓜’資料於其中儲存於主記憶體1 02或快取。第2圖顯 示一單一 TLB。 然而’依處理器之設計,可能採多重TLBs。例如,li I-快取和LID-快取可採分離之TLBs。該L2快取可進一步 採分離之TLB。 在已描述並於高階顯示過各種CPu元件的同時,必須 瞭解的是,該較佳具體實施例之cpu包含許多其他未顯示 之元件’而其並非瞭解本發明所必須。例如,在一典型之 設計中需要各種附加特殊目的之暫存器。此外,必須瞭解 的是,該第2圖中之cpu僅為一 CPU結構之實施例,且許 多變化可能存在於該CPU1 01中之元件的數量、型態和配 置上,而未顯示之元件可能荐在於該些描繪之外,且並非 所有描繪之元件皆會出現於CPU之設計中。例如,緩衝區 之數量和結構以及快取可能不同;該執行單元管線之數量 和功能可能不同;暫存器可能配置於不同的陣列(arrays ) 和集合(sets)中;專屬(dedicated)浮點硬體可能出現 或不出現等等。此外,當於各種所謂的「廣發超純量」 (Wide Issue Superscalar)或「超長指令字集」(Very L〇ng 17 200304619
Instruction Word ; VLIW)之一的結構時,cpuiOl可能更 具有執行平行操作之能力,於此情形下該管線之數量可能 非常龐大,且通常將有多重載入/儲存管線。 如第3圖中所邏輯地描述的,該較佳具體實施例中之 電腦系統100使用至少兩種定址模式。一「虛擬位址」3〇1 指同時藉由指令單元201和執行單元211在來自指令和資料 之内部處理操作產生之位址,其可能以「虛擬位址」、「有 效位址」(effective address )被認知,或為其他名稱。亦 即,可執行之指令的循序指令位址(sequential instructi〇n addresses)和分支位址(branch-t〇 addresses)為虛擬位 址空間之位址。同樣地,資料存取操作之位址,諸如資料 載入和儲存(直接衍生自指令、間接來自登錄值(register values )、或藉由使用部分包含於指令和暫存器中之資料 之組合而運算),為虛擬位址空間中之位址。 該虛擬位址空間為該可執行碼之觀點下之位址空間。一虛 擬位址可能以各種習知技藝中之方法製造,例如,如一特 定目的暫存器中一些高階位址位元(bits )之串連(其不 頻繁地改變,例如,當一新工作開始執行時)和來自一指 令之低-序位位址位元;如自/ 一般目的之暫存器中之位址 之計算位移(computed offset);如自現時(currently) 執行指令之一位移等。一虛擬位址至少包含K + L位元,包 含一 K-位元虛擬頁數(page nunlber) 302和一 L-位元位元 組(bytes )位址(亦稱為位元組索引或位元組數)3〇3。 18 200304619 於該較佳具體實施例中,κ為52且[為12,形成一64-bit虛 擬位址。於此,據習慣,該些位元自0至63編號(〇為最高 階位元)。「實位址」304表示儲存資料之記憶體1〇2中之實 體位置,一般稱為「實位址」、「實體位址」或其他名稱。 一實位址至少包含M + L位元,包含一 M_位元實頁數(real page number) 3 05和一 L-位元位元組位址3〇3,其與虛擬 位址L-位元位元組位址邵分相同。於該較佳具體實施例 中,Μ為36,形成一 48-位元實位址。據習慣,此些實位 址位元自16至63編號(16為取兩階位元)。必須瞭解的是, 儘管一般來說Κ > Μ,惟該Κ、 L和Μ之值可能改變。 第3圖顯示一位址轉譯之簡化型態,於其中存在二階 位址,其一對應至處理器-產生(processor-generated)虛擬 位址而另一者對應至記憶體中之實位址。必須瞭解的是, 許多電腦系統支援位址上附加之階(1 e v e 1 s ),然為求描述 之清晰,此未顯示於第3圖中。例如,特殊之位址可能存 在於一龐大、球狀位址空間中,其由所有使用者分享並於 於電腦系統中進行,且此些位址可能對應至處理器-產生 位址之第二(通常較小)位址空間中之位址,其可能接著 對應至系統之實體記憶體之第三(還更小)之位址空間中 之位址。 如所習知,一虛擬位址空間之尺寸通常較實體記憶體 為大,且資料一般依需要自儲存設備(諸如旋轉磁場磁碟 機;rotating magnetic disk drives)置入分頁(paged in ), 19 200304619 並於不再需要時自儲存區 “砂出分頁(paged out)。 因此虛擬k址和實位址間之聯繫(⑶rresp〇ndence)不 斷地改變°電腦系統1,含位址轉譯機制以將CPU1〇1產 生之虛擬位址韓課為姻·處 将羊為對應至記憶體102中快取1 06- 1 08中之
實位址。此種位址棘謹魏A 轉#機制—般至少包含一分頁表(page table)和相關之邏輯f本% (未顯tf餘圖中),其對應虛擬頁 數3〇2至實頁數3〇5。該分百 刀頁表十分龐大,其通常内含於主 記憶體或一些其他C P U 1 0 1处士 1儲存器中。此外,電腦系統1 〇 〇 可也支板一替代性的虛擬_等同真實(alternative virtual_ equals-real)定址模式’於其中cpmcn產生之虚擬位址 與實位址(該虛擬位址最离 取巧·序位位兀為零)相同;此定 址模式一般保留予該種牿砝极 符殊鉍作系統指令和資料結構,且 不用於一般使用者之運用和資料。 爸亥快取1 0 6 -1 0 8内含主命 <陪碡ί η 〇、、处 Q王屺It體1 0 2《資料之選取部分。 每一快取皆内含依其内容之 需之資料是否内含於快取之 目錄,使CPU邏輯得以判定所 中。於該較佳具體實施例中, 、及用於存取該目錄 取目錄為可能之同時 該快取目錄内含該儲存於快取之資料 之實位址。當使用虛擬位址組織一快 (且部分電腦系統的確如此), 於多重快取存在處維持快 取一致性(coherency)之需要,而於部分操作使用系統 別名(aliasing)’有利於實位址之使用。這意味著於存取 快取時,CPU必須判定資料之實位址。由於該分頁表在 CPU1(H之外部,因此以TLB216型態提供内建(〇nb〇ard) 20 200304619 CPU 1 〇 1 —立即之位址轉譯機制。儘管於該較佳之具體實 施例中’所有的快取皆以實位址定址,惟亦可能替代性地 將一部份或所有的快取以虛擬位址定址的方式組織。 第4圖顯示,根據該較佳具體實施例之該tLB21 6之結 構和關連邏輯(&8 3〇(^16(11〇^〇。丁1^216基本上為一内 含該分頁表選取部分之快取快取,使CPU 1 0 1得在不經由 該外部分頁表,於其L 1或L2快取轉譯資料位址。 如第4圖所示,TLB2 16至少包含一 n線路交叉索引表 (N-way associative table ) 401,其中 n通常大於 1。該表 之一敘述行(line)藉由在選取邏輯402中將部分虛擬位 址位元之組合(combination)解碼而存取。每一敘述行403 内含N個位址項目(entries),其與其他資料共同用於表 維護(table maintenance)。每一位址項目内含一虛擬頁 數和其相對應之實頁數。該第4圖中之TLB為一二線路交 又索引TLB ( N = 2 ),應瞭解的是,該交叉索引可能改變, 且該交叉索引可為一(N=1 )。該虛頁數選定為VA0和VA1 且該相對應之實頁數選定為RA0和RA 1。表維護資料(tabie maintenance data ; TM )可能至少包含,例如,最近使用 之位元或用於決定當一新項目必須自該分頁表產生時,應 自該TLB刪除何一項目之位元;有效位元等。 於操作中,一轉譯之虛擬位址輸入至選取邏輯(select logic) 402,其使用一雜湊功能(hash function)諸如該 位址位元之子集以選取一該表401之單一敘述行,此操作 21 200304619 一般需要一單一 CPU時脈週期。來自該選取敘述行之VAO 輸入至比對測定機(comparat〇r) 404,此刻來自該選取 敘述行之VA 1同時輸入至比對測定機4 〇 5。若每一虛擬頁 數VA 0或VA 1與要被轉譯之該虛擬位址相同,則該相對應 之比對測定機之輸出敘述行被活化,致使選取器 (selector) 406選取該相對應之實頁數而輸出。若VAO或 VA 1與要被轉譯之該虛擬位址皆不相同,則附加之皆非閘 (NOR gate) 407產生一適當之訊號以指示一 TLB失誤, 並致使C P U採取適當的行動以自他處(例如,該主分頁表) 轉譯該位址。該由比對測定機404、405和選取器406執行 之操作一般需要一附加之CPU時脈週期,共需兩CPU時脈 週期以將一虛擬位址轉譯為實位址(假設該位址内含於該 TLB )、或判定該位址並不在TLB。 如上所述,CPU101最好内含多重管線212-214,至少 其中一者參與存取該記憶體位置所需之操作。 載入和儲存為典型記憶體操作,但亦可能有其他此類 記憶體操作。如另一此類記憶體操作之實施例中(儘管並 非唯一之此類可能實施例),部分系統支援於一記憶體位 置直接複製至另一記憶體位I。如以上進一步所述,記憶 體位置以實位址而非虛擬位址定址。 多重管線操作存取記憶體位置之處,存在著兩個或更 多的懸置(Pendins )操作將存取相同之記憶體位置且於 某種程度上會導致錯誤之可能性。此種情況表示管線位址 22 2〇〇3〇4619 之衝突。一此種管線位址衝突之簡單實施例中(儘管不必 然為唯一之此類實施例),為對同一記憶體位址之餘存後 之載入。若於該載入開始時該儲存尚未完成,則該載入操 作即可能載入舊的(錯誤的)資料。將會發現並非所有存 取同一記憶體位置之記憶體存取操作皆會衝突。例如,若 兩載入至另存取同一記憶體位置,此些指令並不會相互衝 突。因此,為判定是否存在真正衝突,該系統可能亦具有 比對操作型態或其他資料之邏輯。 為了彳貞測一管線位址衝突’和其他控制目的,該管線 中之懸置記憶體存取操作儲存於管線控制暫存器,並於每 一 CPU時脈週期中移至後繼之管線級等(stages)。第5圖 為一組各種管線級等之管線控制暫存器之高階圖示。除實 位址外,各種其他控制資料可能儲存於該管線控制暫存 器,諸如一種執行之操作、一資料之目的(destinati〇n ) 或來源(source )暫存器等。部分此種資訊可能無法立即 取得’且可能如新產生般地被加入。因為其需數個週期以 將指令解碼,產生一虛擬位址並將之轉譯為實位址,而在 部分早期管線級等中無法取得實位址。如第5圖所示,實 位址存於暫存器501_504相對應於管線級等η和更大者,亦 即,該實位址產生後之級等。該實位址藉由將該自選取器 406輸出之實頁數與該位元組數(低-序位[位元)串連以 自該虛擬位址中衍生而出。 於一傳統之C P U中,比對一記憶體存取指令之實位址 200304619 和管線中在其之前之潛在衝突記憶體位址指令之實位址, 但此操作在實位址產生前(亦即級等η或更大者)並不執 行。一旦一指令!之實位址由TLB216之選取器4〇6執行, 其可接著與孩管線中任何在指令I之前潛在衝突記憶體位 址指令I之實位址比對。該指令I前之記憶體位址指令之實 位址將會在先前的CPU週期中解碼,並因此已可獲得並在 管線中控制暫存器。 根據▲較佳之具體實施例,比對指令I之虛擬位址之 低-序位L位元(與該低-序位L位元之實位址相同)和每一 管線中指令I之前之潛在衝突記憶體位址指令之實位址之 低-序位虛擬位元,以判定一可能之管線位址衝突的存在。 第ό圖為一根據該較佳之具體實施例之偵測邏輯圖示,該 邏輯使用該位址之低-序位L_位元以於多重管線級等中早 期偵測管線位址衝突。第7圖顯示該操作之流程採用使偵 測邏輯和其他CPUl〇1之元件、於部分相對早期之管線級 等選定級等j (亦即一較第5圖中之級等^早之級等,且其 可能為該管線中之第一級等)解碼該指令,其參照之虛擬 位址產生並可於管線暫存器601中獲得(於第7圖中以步驟 7 〇 1表不)。此指令(於級等j)將表示為指令U以資分辨。 暫存器601内含一指令u參照之具有虛擬頁數部分6〇2和一 L-位元位元組位址部分603之位址部分。此外,至少部分 相關於指令IJ之控制資訊可於管線暫存器6〇丨之控制資訊 邵分6 0 4獲得’儘管此控制資訊於此早期級等中可能不完 24 200304619 全。 控制資訊邵分6 0 4最好包含至少足夠的與指令〗j操作 類型相關之資訊,以判定一管線位址衝突是否與其他操作 在管線中同一位址發生。此控制資訊可能包含,例如,一 使和令IJ執行操作之微碼操作(〇 p c 〇 d e ),或可為衍生自 該微碼操作之資訊,諸如用於指出衝突之單一位元或一組 位元。例如’於一簡單的實施(implementati〇n )中,控 制資訊604可包含單一位元以指出指令是否為一載入·型態 (load-type )指令,此單一位元可為該微碼操作中之一個 位7L ’或使用一些邏輯功能自該微碼操作衍生。此外,該 用於判定位址衝突之控制資訊之單一位元或一組位元可能 自部分微碼操作和其他資訊之組合衍生。例如,若在一多 重執行緒處理器中部分記憶體分割型態用於不同執行緒 (threads )中,則一執行緒識別即可能顯著。 一級等j + 1<管線暫存器605内含一具有一頁數部分606和 一 L-位το位疋組位址部分6〇7之位址部分,和一控制資訊 邵分608,其中一於級等j + 1之指令在此指指令Ij + i。既然 級等j + 1在該管線中較級等j晚,該指令IJ+1參照之虛擬位 址可能已在指令π+丨到達級等j+i時使用TLB216解碼為一 貫^址。據此’頁數部分6 0 6可能内含該指令IJ +1參照和 何生自該虛擬頁數之實頁數;然而,可能需要一個週期以 上的時間以彳’Ϊ生该實頁數,且在級等〗+丨之頁數部分6 〇 6内 含一實頁數。於任一情況下,該部分607中内含之位元組 25 200304619 位址是相同 指定之操作 (於此特定 突。此資訊 碼操作或微 元。 的。控制資訊部分608包含至少部分與指令u+] 型態相關之資訊,以判定與管線中其他操作間 之實施例中與指令^間)是否存在管線位址衝 可能為一指令IJ + 1之微碼操作,或衍生自該微 碼操作和其他組合之資訊;其可能僅有單一位 下—個或多個來自級等j之控制資訊部分604之位元和 來自、及等卜1 <控制部分6〇8 一個或多個位元輸入至衝突偵 、’J遝輯61〇。衝突偵測邏輯61〇分析該位元型樣(pattern) 以判疋孩特定操作是否衝突。亦即,邏輯610判定,假設 。扎々I j和I j + i參照相同的位址或位址重疊,該特定操作 <本質是否將衝突並潛在毁壞資料。該邏輯61〇之輸出為 一單一邏輯敘述行,於其中一階(level )(於該描述之具 體實施例中為一邏輯Γ1」)4示一衝突,而其他階表示無 衝突。該衝突偵測邏輯6 1 〇之操作顯示於第7圖之步驟7〇3。 該衝突偵測邏輯610之複雜度可能隨處理器的設計而不 同。於一簡單具體實施例中,一控制資訊中6〇4之一單一 位兀表示一載入_型態指令,且控制資訊6〇8中之一單一位 元表示一儲存-型態指令,邏輯604可能僅為一及閘(αν〇 gate )。然而,衝突偵測邏輯一般將更複雜。例如,一潛 在衝突可能存在於一儲存-型態操作接於載入-型態搡作後 處;部分系統可能支援本質上同時為讀和寫之操作,諸如 一複製操作。 26 200304619 比對測定機6 1 1比對該來自暫存器部分603之指令Ij之 位元組位址和來自暫存器部分6 0 7之指令Ij + 1之位元組位 址。若該位元組位置相同,則比對測定機6 1 1輸出一適當 之邏輯訊號(於顯示之具體實施例中為一邏輯「1」);若 任何該位址之位元不相符,輸出一邏輯「0」。該比對測定 機611之操作顯示於第7圖之步騾702。 及閘6 1 2組合該衝突偵測邏輯6 1 0和比對測定機6 1 1之 輸出以提供一管線位址衝突信號。亦即,每當該兩指令之 位元組位址相同,且該操作為衝突型態時,一管線位址衝 突信號將會產生。該衝突信號顯示於第7圖步驟705之「Y」 分支。 於衝突偵測邏輯6 1 0和比對測定機6 1 1之另一階之複雜 度可能為一被比對之位址之範圍。一般而言,在單一指令 資料之多重位元組之載入和儲存操作和多重-位元組界線 (boundary )之參照位址,該位元組數量對應於部分結構 特性(a r c h i t e c t u r a 1 c h a r a c t e r i s t i c ),諸如該記憶體匯流 排之寬度。例如,於典型系統中,多數之載入和儲存可能 操作於四位元組織資料上,且因此資料定址於4-位元組界 線上,兩個較低-序位之位址位元為0。然而,部分操作可 能於不同數量之位元組上進行。邏輯6 1 0可能因此隨意地 判定藉由比對測定機6 11比對之該位址位元之數量。該被 比對之位址位元的數量應對應於該具有最大位址範圍之操 作。亦即,當4-位元組操作與1-位元組操作間具有一衝突 27 200304619 時,孩兩個最低-序位位址位元不應被比對,因為即使該p 位元組操作之兩最低-序位位址位元為零,衝突仍會存在。 第6圖中在邏輯6 i 〇和比對測定機6丨i間之虛線箭頭表示一 個或多個控制敘述行,其中該敘述行可能被比對的控制位 址位元數量。 管線級等暫存器605、衝突偵測邏輯61〇、比對測 611和及閘612可能於級等卜丨之後在管線中重複一級等或 更^的級等。第6圖顯示級等j +2之重複,由第6圖之顯示 可暸解此邏輯可能重複兩級等以上。每一此種級等將其之 位元組位址和控制資訊與指令1;者相比對。因此,當管線 級等中之心指令之虛擬位址第一次可獲得時,亦即第6圖 中之級等j,该指令參照之位元組位址與管線中其後之指 令的位元組位址相比對。該内含偵測邏輯之管線級等數可 能取決於各種系統結構細節。將指令π與所有其後之管線 級等指令相比對是可能的,亦即在每一級等」·後之級等重 複衝突偵測硬體。炊品&虹、点 …、而於多數义處理器設計中,並無必 瓜而5 ,僅需要在指令Ij和任何衝突指令間確 最】間隙(gap )’孩間隙小於管線中接下來之級等數。 例如,若k週期之時間間隔足以確保兩指令不衝突,則僅 需=對級等j+i和級等之指令,且該級等』+k和更高 級等不需比對硬體。於一典型處理器設計中,μ3,且可 以低至2 (在此情況下衝突偵測硬體僅在級等j+1出現)。 可以發現的是’比對指令U之低.序位L位元(其虛擬和實 28 200304619 位址相同)和管線中其後之級等之任何可能潛在衝突之指 令相對應之位元將偵測出任何管線位址衝突。然而,既然 比對者少於所有位址位元,此技術將有「誤報」(false positive)之可能,亦即所有的L位元將與管線中之部分位 址相符,而實際上因為該高-序位實位址位—元不相同而未 存在位址衝突。 一般而多,可 更少之隨機分佈(randomdistribution),並因此該「誤報」 之頻率與:和個別記憶體匯流排操作之大小有關。例如, L= 12位元,且假設所有記憶體參照操作之大小為4位元組 (亦即,所有相關操作在4-位元組範圍内發生),任兩位 址隨機位址符合之機會為1 ··( 2 1 2 - 4 ) 〇· 1 %。此比率 將隨不同的L值或不同的操作尺寸改變。此種誤報比率之 執行衝擊依次取決於管線中衝突操作之數量的平均值和^吳 報的結果。對典型之管線而f ’於管線中可能有大約 個低於指令Π之級等,但如此所述’彳能少於全部的級等 需做位址比對,該管線將不會永遠完&,且並非所有的产 令皆為衝突指 例如’其可能為兩載入指令,而該兩: 並不會衝突)。相信平均而言,在管緩 &、,果中將有少於1個潛在 衝突指令低於每-個新載入指令,因此一載入指令發生之 時間低於0.1%,此進行之位址比對將產生誤報。於大邻
分之處理器設計中,相信一真正位址 B W犬噹以較1¾之頻率 發生。 29 200304619 該CPU於藉由比對低-序位位元(指一般如衝突解決 行動,如第7圖步驟706所示)偵測管線位址衝突所採取之 行動可能隨處理器設計而有不同。根據該較佳具體實施例 之處理裔没计’該管線之選取級寺停止一預定(p r 〇 _ determined)之週期數以在指令IJ和潛在衝突指令間引入 充足之間隙,此預定數量取決於該潛在衝突指令之級等。 亦即’若在指令IJ和衝突指令間需要k個週期之間隙,而 潛在衝突指令在管線級等j + Ι被偵測到,則停止在管線級 等j之指令和其之前之指令(k-i)個週期,而在級等】+ 1和 其後者在下(k-i )個週期間繼續進行(advance)。在(k-I ) 個週期後,k個週期之間隙將存在於指令和該潛在衝突 指令間。此時,所有的指令皆可在管線中進行。 必須強調的是,無論真正之衝突是否發生或是否偵測 到「誤報」,上述之行動皆會進行。特別是,即使在因為 雨位址之實頁數部分並非完全相同而無真正位址衝突存在 處’依舊會如真正位址衝突發生時般,在各方面偵測位元 組位址中之相符,且並不進一步區分事實上衝突是否存 在。然而’該行動之執行僅需(k-i )個週期。於多數處 理器叹計中’ 1^將會較低(例如3 )且既然i永遠至少為1, 該偵測潛在位址衝突(真正的或非真正的位址衝突)損失 之平均週期數可能為1或2個週期。 比對位元組位址(在將指令U之虛擬位址轉譯為實位 址則)之主要優勢在於,可較早偵測位址衝突。 30 200304619 另 管 將 本 由 誤 地 之 作 不 且 地 之 機 較早偵測出位址衝突,一般可能簡單在級等j (若存在更 早的級等,則可於更早之級等)停止少數週期之管線部分 並使其他級等繼續。如上所述,其一般需1或2個週期。 一方面,若於稍後之級等偵測到位址衝突,可能需要於 線中重新載入數值並重新開始之;此種操作之執行一般 取決於管線長度,例如6至8個週期。因此,儘管部分以 發明偵測到之位址衝突比例可能事實上為誤報,但預期 於早期偵測以停止管線所降低之執行週期數將可補償該 報之效應。 位址衝突解於行動可能有數種變形。其可能選擇性 停止級等j和其之前之級等之指令,以結構性地決定在所 有情況下之固定週期數,該週期數為確保產生足夠間隔 最小週期數,亦即(k· 1 )。其可能選擇性地停止級等j和 其之前之級等之指令,直至該衝突操作完成或該衝突操 達到成外之某種程序上之里程碑,在此之後位址衝突已 構成問題。於部分處理器設計中,此週期數可能不同。 當事件發生時,可藉由一邏輯訊號判定。其可能選擇性 單純在級等j和其之前之級等將該指令停止單一週期,並 於該時重複位址比對;該停止單一週期和重複位址比對 程序可重複直至不再偵測到衝突。 最好在CPU 1 0 1同時或並行地進行多項行動,且特別 疋’一旦一指令之虛擬位址產生,該可取得之位址轉譯 制(亦即,轉譯後備緩衝區2丨6或任何其他機制)即參與 31 200304619 將該虛擬位址 澤為實位址最 行。此程序如I 因為該偵測衝 之存在將會在 在無衝突 管線衝突相關 表示,其中顯 完成前更佳地 執行。 如此所述 等具有單一指 平行執行操作 重平行之指令 單純管線、一 操作之複雜管 表示管線機制 態的管線機制 於單一管線級 參照之位元組 含級等j)之J 已在與目 描述該發明’ 轉譯為實位址(步驟704 )。將該虛擬位址轉 好與管線和操作型態中位元組位址比對和並 Μ圖中之並行分支步驟7〇2、703和704所示。 突之邏輯將對單純,因此預期管線位址衝突 將虛擬位址轉譯為實位址前判定。 被偵測出之處,該操作於管線中在無與確認 之遲滯下正常進行。此由第7圖步驟707和708 示部分附加的步驟可能在該轉譯(步驟707 ) 由管線執行,而其他則於轉譯後(步驟7〇8) ,為求描述之清晰可假設單一管線在每一級 7 而可理解的是,多重管線可能存在 ,或一單一複雜管線可能在每一級等内含多 ,或可能存在其他管線構造之變形。一單一、 個別管線之集合、成一力卷 ,^ ^ 在每一級等具有多重 線皆為同樣基本設功能之變形,且一般在此 ,而該非正式之名稱「昝飧 挪官綠」應包括所有型 ,方為妥當。乡重管線存在或多重操作存在 等之處’ I決於該結構,可能需要將指令卩 位址與來自同一或不同管線中同一級等(包 重其他指令之位元組位址相比對。 前認為最實用且較佳之具體實 可以暸解的是,該發明不欲限 施例相連結下 於該揭露之具 32 200304619 體實施例’相反的,欲包含各種内含於該附隨之申請專利 範圍之精神與範圍之改良和相等之配置(equivalent arrangements ) 〇 【圖式簡單說明】
第1 A圖顯示一根據本發明之較佳具體實施例之使用管線 位址衝突機制之單一 CPU電腦系統之主要硬體元件之高 階方塊圖(high-level block diagram)。 第1 B圖顯示一根據本發明之較佳具體實施例之使用管線 位址衝突機制之多重CPU電腦系統之主要硬體元件之高 階方塊圖。 第2圖顯示一根據本該較佳具體實施例之電腦系統之CPU 之主要元件之高階方塊圖。 第3圖顯示一根據該較佳具體實施例之位址轉譯之邏輯描 述。
第4圖顯示一根據該較佳具體實施例之轉譯後備緩衝區 (T L B )之結構及其相關邏輯。 第5圖顯示一根據該較佳具體實施例之該控制各種管線級 等之暫存器之管線組之高階圖示。 第6圖顯示一根據該較佳具體實施例之該早期偵測多重管 線級等中管線位址衝突之偵測邏輯圖示。 第7圖顯示一根據較佳具體實施例歸納描述該管線執行指 令之流程圖。 33 200304619 100 101 101 A 101B 101C 101D 102 105 106 106A 106B 106C 106D 107 107A 107B 107C 107D 108 108 A 108B 108C 108D 109 110 111 112 113 114 115 201 202 203 204 211 212 213 取取取取取取取取取取取取取取取匯入 符系處處處處處憶S快快快快快快快快快快快快快快快體輸區區輸M/i λ腦央央央央央記ο令令令令令料料料料料階階階階階憶統存存通作作令支令令行線線 代電中中中中中主I/指指指指指資資資資資二二二二二記系儲儲溝工工指分指指執管管 明 說 單 簡 號統 器 理體 面 介 kr k— 流 區區 理理 、流處處 匯出出 妇輸輸 Μ*"Λ3Ι 491 輸入入 輸輸 J3· ' - rv - 區區 CSiU Cui ils 區處處 理出出 處輸輸 ώ入入 輸輸輸 入 站 器 元元碼存元 單單解暫單 區 緩 34 200304619 214 管 線 3 215 暫 存 器 216 轉 譯 後 備 緩 衝 區 217 一 階 快 取 目 錄 218 一 階 快 取 目 錄 221 記 憶 體 管 理 單 元 222 二 階 快 取 目 錄 223 二 階 快 取 介 面 224 記 憶 體 匯 流 排 介 面 301 虛 擬 位 址 302 虛 擬 頁 數 303 位 元 組 位 址 304 實 位 址 305 實 頁 數 401 N 線 路 交 叉 索 引 表 402 選 取 邏 輯 403 敘 述 行 404 比 對 測 定 機 405 比 對 測 定 機 406 選 取 器 407 皆 非 閘 501 暫 存 器 502 暫 存 器 503 暫 存 器 504 暫 存 器 601 暫 存 器 602 虛 擬 頁 數 603 位 元 組 位 址 604 控 制 資 訊 605 暫 存 器 606 實 /虛擬負 :數 607 位 元 組 位 址 608 控 制 資 訊 610 操 作 衝 突 偵 測 邏 輯 611 比 對 測 定 機 612 及 閘 701 解 碼 指 令 和 產 生 虛 擬 位址 702 比 對 管 線 中 之 位 元 組 位址 200304619 3 4 5 6 7 8 oooooo 管擬?解於於 對虛突突續續 比將衝衝繼繼 址 位 態實 型為 作譯 操轉 中址 線位 止 停中中 {線線 決管管 36

Claims (1)

  1. 200304619 拾、申請專利範圍 1 · 一種電腦系統,其至少包含: 一可以實位址定址之記憶體,每一上述之實位址 具有 M + L位元(bits),其至少包含一 M-位元高序位 (high-order)位址部分和一 L-位元低序位(low-order) 位址部分; 位址產生邏輯,其係可為電腦處理(pro cessing)操 作產生虛擬位址,每一上述虛擬位址具有K + L位元, 至少包含一 K-位元高序位位址和一 L-位元低序位位 址部分; - 一位址轉譯機制,其係可將虛擬位址轉譯為實位 址,上述位址轉譯機制藉由將該上述來源虛擬位址之 K-位元高序位部分轉譯為上述目標實位址之該 M-位 元高序位部分,以將一來源(s 〇 u r c e)虛擬位址轉譯為 一目標(target)實位址,並串連上述之目標實位址之 M-位元高序位部分與上述來源虛擬位址之 L-位元低 序位部分,該上述目標實位址之 L-位元低序位部分 與該上述來源虛擬位址之L-位元低序位部分相同; 一管線機制;和 一管線位址衝突機制,其可偵測上述管線機制中 之第一操作和該上述管線機制中之第二操作間之衝 突,上述管線位址衝突機制可比對在上述管線機制中 上述第一操作之虛擬位址之 L-位元低-序位部分之至 37 200304619 少一邵分,和一於上述管線機制中第二操作之位址之 L-位元低序位部分之相對應之部分,且若該上述管線 機制中上述第一操作之虛擬位址之該L -位元低-序位 部分之至少一部份與該上述管線機制中上述第二操作 之位址之L -位元低-序位部分之相對應之部分完全相 同,則採取位址衝突解決動作(resolution action)。 2. 如申請專利範圍第1項上述之電腦系統,其中上述之 管線位址衝突機制可比對所有該上述管線機制中上述 第一操作之上述虛擬位址之該 L-位元低-序位部分, 和所有該上述管線機制中上述第二操作之上述位址之 該 L-位元低-序位部分,且若所有該上述管線機制中 上述第一操作之上述虛擬位址之該 L-位元低-序位部 分與所有該上述管線機制中上述第二操作之位址之該 L-位元低-序位部分完全相同,則採取一位址衝突解 決動作。 3. 如申請專利範圍第1項上述之電腦系統,其中上述之 位址衝突解決動作至少包含將該管線機制之一部分停 止預定之週期數,包含土述第一操作。 4. 如申請專利範圍第3項上述之電腦系統,其中上述 之預定週期數乃根據方程式(k-i)決定,其中k為上 38 200304619 述第一操作和上述第二操作間所須週期間隙 值,且i為上述第一操作和第二操作間存在之 隙。 5. 如申請專利範圍第1項所述之電腦系統,其 之位址衝突解決動作至少包含停止包含上述 作之該管線機制之一部> 分,直至上述第二操 一預定之程序里程碑。 6. 如申請專利範圍第1項所述之電腦系統,該 至少包含一快取,上述之至少一快取可使用 位址定址。 7. 如申請專利範圍第1項所述之電腦系統,其 之管線位址衝突機制更/至少包含操作衝突邏 中該邏輯可比對關於上述第一操作執行之操 之資料和關於上述第二操作執行之操作型 料,以判定上述第一操作和上述第二操作是否 8. 如申請專利範圍第1項所述之電腦系統,其 之位址轉譯機制至少包含一轉譯後備緩衝區 轉譯後備緩衝區儲存一複數之位址部分對( portion pairs),每一位址部分對至少包含一 址之部分和相對應之實位址之部分。 之最小 週期間 中上述 第一操 作達到 系統更 上述實 中上述 輯,其 作型態 態之資 衝突。 中上述 ,上述 address 虛擬位 39 200304619 9 · 如申請專利範圍第8項所述之電腦系統,其中上述 之轉譯後備緩衝區為一 N線路交叉索引,其中N> 1。 1 0 ·如申請專利範圍第1項所述之電腦系統,其中上述之 管線位址衝突機制至少包含複數組之位址衝突偵測 邏輯,每一組偵測上述管線機制中上述第一操作位 址和一上述管線機制中上述第一操作外之相關操作 間之位址衝突,上述每一組至少包含上述管線機制 中上述第一操作之上述虛擬位址之上述該 L-位元低-序位部分至少部分,與上述管線機制中上述第一操 作外之相關操作之位址之L-位元低-序位部分之相對 應部分,且若該最少部分之該管線機制中之上述第 一操作之虛擬位址之L -位元低-序位部分,與上述管 線機制中上述第一操作外之相關操作之位址之 L-位 元低-序位部分之相對應部分完全相同,則導致位址 衝突解決動作。 · 11. 一種電腦系統之處理單元,上述用於電腦系統之處 理單元具有一可使用實位址定址之記憶體,每一上 述實位址具有 M + L位元,其至少包含 M-位元高-序 位位址部分和 L-位元低-序位位址部分,且至少一位 址轉譯機制以將 K + L位元之虛擬位址轉譯為實位 址,上述位址轉譯機制將藉由將上述來源虛擬位址 40 200304619 之K-位元高-序位部分轉譯為上述目標實位址之Μ-位元高-序位部分並辛連上述目標實位址之上述Μ-位 元高-序位部分和上述來源虛擬位址之該 L-位元地序 位部分,而將一來源虛擬位址轉譯為一目標實位址, 上述目標實位址之該 L -位址低-序位邵分和上述來源 虛擬位址之該 L -位元低序位部分完全相同,上述處 理單元至少包含: 位址產生邏輯,該邏輯產生電腦程序操作之虛擬 位址,每一上述虛擬位址具有 K + L位元,其至少包 含一 Κ -位元高-序位位址部分和一 L -位元低-序位位 址部分; _ 一管線機制:和 一管線位址衝突機制,其偵測上述管線機制中之 第一操作和該上述管線機制中之第二操作間之衝突, 上述管線位址衝突機制可比對在上述管線機制中上述 第一操作之虛擬位址之 L-位元低-序位部分之至少一 部分,和一於上述管象機制中第二操作之位址之 L-位元低序位部分之相對應之部分,且若該上述管線機 制中上述第一操作之虛擬位址之該 L-位元低-序位部 分之至少一部份與該上述管線機制中上述第二操作之 位址之 L-位元低-序位部分之相對應之部分完全相 同,則採取位址衝突解決動作。 12.如申請專利範圍第11項所述之電腦系統之處理單 41 200304619 元,其中上述之管線位址衝突機制可比對所有上述管 線機制中第一操作之上述虛擬位址之該 L-位元低-序 位部分,和所有該上述管線機制中上述第二操作之上 述位址之該 L_位元低-序位部分,且若所有該上述管 線機制中上述第一操作之上述虛擬位址之該 L-位元 低-序位部分與所有該上述管線機制中上述第二操作 之位址之該 L -位元低-序位部分完全相同,則採取一 位址衝突解決動作。 1 3 .如申請專利範圍第1 1項所述之電腦系統之處理單元, 其中上述之位址衝突解決動作至少包含將該管線機制 之一部分停止預定之週期數,包含上述第一操作。 1 4 ·如申請專利範圍第 11項所述之電腦系統之處理單 元,其中上述之預定週期數乃根據方程式(k-i)決定, 其中k為上述第一操作和上述第二操作間所須週期 間隙之最小值,且i為上述第一操作和第二操作間存 在之週期間隙。 1 5 ·如申請專利範圍第11項所述之電腦系統之處理單 元,其中上述之位址衝突解決動作至少包含停止包 含上述第一操作之該管線機制之一部分,直至上述 第二操作達到一預定之程序里程碑。 42 200304619 1 6 ·如申請專利範圍第11項所述之電腦系統之處理單 元,該系統更至少包含一快取,上述之至少一快取 可使用上述實位址定址。 1 7 ·如申請專利範圍第1 1項所述之電腦系統之處理單 元,其中上述之管線位.址衝突機制更至少包含操作 衝突邏輯,其中該邏輯可比對關於上述第一操作執 行之操作型態之資料和關於上述第二操作執行之操 作型態之資料,以判定上述第一操作和上述第二操 作是否衝突。 1 8 ·如申請專利範圍第11項所述之電腦系統之處理單 元,其中上述之位址轉譯機制至少包含一轉譯後備 緩衝區,上述轉譯後備緩衝區儲存一複數之位址部 分對(address portion pairs),每一位址部分對至少 包含一虛擬位址之部分和相對應之實位址之部分。 1 9 ·如申請專利範圍第 1 8項所述之電腦系統之處理單 元,其中上述之轉譯後備緩衝區為一 N線路交叉索 引,其中N>1 。 20.如申請專利範圍第1 1項所述之電腦系統之處理單 元,其中上述之管線位址衝突機制至少包含複數組 43 200304619 之位址衝突偵測邏輯,每一組偵測上述管線機制中 上述第一操作位址和一上述管線機制中上述第一操 作外之相關操作間之位址衝突,上述每一組至少包 含上述管線機制中上述第一操作之上述虛擬位址之 上述該 L-位元低-序位部分至少部分,與上述管線機 制中上述第一操作外之相關操作之位址之L-位元低-序位部分之相對應部分,且若該最少部分之該管線 機制中之上述第一操作之虛擬位址之L-位元低-序位 部分,與上述管線機制中上述第一操作外之相關操 作之位址之 L-位元低-序位部分之相對應部分完全相 同,則導致位址衝突解決動作。 2 1.如申請專利範圍第1 1項所述之電腦系統之處理單 元,其中上述之處理單元係整合於一單一積體電路 晶片上。 22. —種於一具有(K + L)-位元虛擬位址空間和(M + L)實位 址空間之電腦系統中操作一電腦處理單元之方法, 其中上述之虛擬位址藉由將一(K + L)-位元虛擬位址之 K-位元高序位位址部分轉譯為一(M + L)-位元實位址 之M-位元高序位位址部分並申連該M-位元高序位位 址部分和該虛擬位址之一 L -位元低序位位址邵分, 而對映至(mapped to)相對應之實位址空間,上述方 法至少包含以下步驟: 44 200304619 產生一可供上述電腦處理單元以一管線機制執行 第一指令所需之(Κ + L)·位元虛擬位址; 在不比對上述第一和第二指令之M-位元高序位實 位址部分的情況下,比對上述第一指令之該 L-位元 低序位虛擬位址部分之至少一部分,和一使用上述 管線機制執行之第二操作指令之L-位元低序位位址 部分之相對應之部分;和 視上述比對步驟之結果,決定是否採取衝突解決 動作。 23 .如申請專利範圍第22項所述之操作一電腦處理系統 之方法,其中上述之比對步驟至少包含同時比對上 述第一指令之該 L-位元低序位虛擬位址部分之至少 一部分和該上述第一指令外,使用上述管線機制執 行之複數指令之 L-位元低序位位址部分之複數個相 關相對應部分。 2 4.如申請專利範圍第22項所述之操作一電腦處理系統 之方法,其中上述之衝突解決動作至少包含停止該 管線機制之一部分,包含上述第一指令。 25.如申請專利範圍第22項所述之操作一電腦處理系統 之方法,該方法更至少包含比對關於上述第一指令 執行之操作型態之資料和關於上述按指令執行之操 45 200304619
TW092105273A 2002-03-14 2003-03-11 Processing unit for a computer system and operating method thereof TWI244037B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/098,777 US6804759B2 (en) 2002-03-14 2002-03-14 Method and apparatus for detecting pipeline address conflict using compare of byte addresses

Publications (2)

Publication Number Publication Date
TW200304619A true TW200304619A (en) 2003-10-01
TWI244037B TWI244037B (en) 2005-11-21

Family

ID=28039436

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092105273A TWI244037B (en) 2002-03-14 2003-03-11 Processing unit for a computer system and operating method thereof

Country Status (2)

Country Link
US (1) US6804759B2 (zh)
TW (1) TWI244037B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7185182B2 (en) * 2003-02-04 2007-02-27 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early instruction results
US6981072B2 (en) * 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system
US7970980B2 (en) * 2004-12-15 2011-06-28 International Business Machines Corporation Method and apparatus for accessing memory in a computer system architecture supporting heterogeneous configurations of memory structures
US7240183B2 (en) * 2005-05-31 2007-07-03 Kabushiki Kaisha Toshiba System and method for detecting instruction dependencies in multiple phases
US9880954B2 (en) * 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access
US8966230B2 (en) * 2009-09-30 2015-02-24 Intel Corporation Dynamic selection of execution stage
US20130339620A1 (en) * 2012-06-15 2013-12-19 Futurewei Technololgies, Inc. Providing Cache Replacement Notice Using a Cache Miss Request
US9411584B2 (en) * 2012-12-29 2016-08-09 Intel Corporation Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality
CN104410547B (zh) * 2014-12-03 2017-09-29 合肥工大高科信息科技股份有限公司 一种分布式控制系统中的地址冲突检测方法
GB2542771B (en) * 2015-09-25 2020-07-08 Advanced Risc Mach Ltd Hazard Checking
US10877901B2 (en) 2015-09-25 2020-12-29 Arm Limited Method and apparatus for utilizing proxy identifiers for merging of store operations
US10146440B2 (en) * 2016-12-20 2018-12-04 Intel Corporation Apparatus, system and method for offloading collision check operations in a storage device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293595A (en) * 1990-12-17 1994-03-08 Unisys Corporation Paging system using extension tables for conflict resolution
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5854914A (en) * 1996-02-13 1998-12-29 Intel Corporation Mechanism to improved execution of misaligned loads
US6463514B1 (en) 1998-02-18 2002-10-08 International Business Machines Corporation Method to arbitrate for a cache block

Also Published As

Publication number Publication date
US6804759B2 (en) 2004-10-12
US20030177326A1 (en) 2003-09-18
TWI244037B (en) 2005-11-21

Similar Documents

Publication Publication Date Title
US6963964B2 (en) Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US7725662B2 (en) Hardware acceleration for a software transactional memory system
US6021485A (en) Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching
US6594728B1 (en) Cache memory with dual-way arrays and multiplexed parallel output
US4995041A (en) Write back buffer with error correcting capabilities
US6519682B2 (en) Pipelined non-blocking level two cache system with inherent transaction collision-avoidance
JP5451776B2 (ja) ハードウェアフィールドにロッシーなメタデータを保持するためのメタフィジカルアドレス空間
US7213126B1 (en) Method and processor including logic for storing traces within a trace cache
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
US5202972A (en) Store buffer apparatus in a multiprocessor system
TW382672B (en) Computer system and method for controlling the same
US7219185B2 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
JPH08504977A (ja) スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法
JPH0526219B2 (zh)
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
TW200304619A (en) Method and apparatus for detecting pipeline address conflict using compare of byte addresses
JP2004520634A (ja) ロード命令を処理するための方法および装置
KR100218616B1 (ko) 현재의 트랜잭션동안 다음 어드레스를 제공하기 위한 전송방법 및 시스템
EP0375892B1 (en) Data processing system
JP2700147B2 (ja) 命令キャッシュ・フラッシュ・オン・rei制御
TW202223666A (zh) 微處理器和在微處理器中實現的方法

Legal Events

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