TWI260541B - System and method for linking speculative results of load operations to register values - Google Patents

System and method for linking speculative results of load operations to register values Download PDF

Info

Publication number
TWI260541B
TWI260541B TW092107696A TW92107696A TWI260541B TW I260541 B TWI260541 B TW I260541B TW 092107696 A TW092107696 A TW 092107696A TW 92107696 A TW92107696 A TW 92107696A TW I260541 B TWI260541 B TW I260541B
Authority
TW
Taiwan
Prior art keywords
addressing pattern
result
pattern
entry
load
Prior art date
Application number
TW092107696A
Other languages
English (en)
Other versions
TW200305821A (en
Inventor
James K Pickett
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200305821A publication Critical patent/TW200305821A/zh
Application granted granted Critical
Publication of TWI260541B publication Critical patent/TWI260541B/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/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/383Operand prefetching
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

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

Description

1260541 五、發明說明u) 【發明所屬之技術領域】 本發明係關於微處理器的領域,尤其是關於在一微處 理器中進行資料猜測之執行。 【先前技術】 超純量微處理器藉由同時執行複數個指令以及使用與 它們的設計一致的最短可能時脈循環而獲得高效能。不 過,在諸指令之間的資料與控制流依存性,其係可能限制 於任何特定時間上可能有多少個的指令發出。結果,一些 微處理器支持猜測執行,以得到額外的性能增加。 其中一種型態的猜測是控制流猜測。控制流猜測預測 出程式控制將進行的方向。例如,轉位預測(b r a n c h ρ r e d i c t i ο η )可能使用來預測是否將採取轉位。許多型態 的轉位預測都有效,其範圍乃從每次簡單採用相同預測的 方法到那些在程式中維持先前轉位預測之精密歷史紀錄的 方法,以進行以歷史紀錄為基礎的預測。轉位預測可能經 由硬體最佳化、編譯器最佳化、或者兩者而沒有困難。依 據轉位預測機制所提供的預測,諸指令可予以猜測性地擷 取與執行。當最後評估轉位指令時,可查驗轉位預測。假 如該預測不正確的話,以不正確預測為基礎而予以猜測性 執行的任何指令就可能撤銷。 已經提出之另一種型態的猜測係為資料猜測。例如, 預測資料項之數值的數值預測,其可能包含在資料中觀察 圖案並且將預測建立在那些圖案上(例如,一指數計數變 數值,其可能藉由觀察該變數的先前值如何增加或者減少
92293.ptd 第5頁 1260541 五、發明說明(2) 而予以預測)。位址預測包含預測該資料的位置。資料猜 測的又另一型態稱為記憶體系統樂觀主義(〇 p 11 m 1 s m )。在 多元處理器系統中,當在連貫性檢測完成之前,一處理器 使用來自該處理器區域快取之資料而猜測性地執行一指令 的時候,記憶體系統樂觀主義則會發生。相同地,即使該 儲存可能儲存資料到該載入所存取之相同位址的話,另一 種型態的資料猜測可能在當載入執行時具有未經推斷之位 址之儲存以前,使一載入予以猜測性地進行。在所有這些 型態的資料猜測中,諸基本情況將予以最後評估,其係允 許該猜測受到查驗或者受到毁壞。假如該猜測最後不正確 的話,就可能將使用猜測資料來執行的諸指令再度執行 (例如,用更新或者未經猜測的資料)。 因為猜測使執行在不用等候依存性檢測完成之下進 行,所以假如正確猜測所得到的性能超過不正確猜測所失 去之性能的話,那麼則可能獲得明顯性能的進展。於是, 令人希望的是能夠在一微處理器中進行資青測,並且提
92293.ptd 第6頁 1260541 五、發明說明(3) 較◦假如第二定址圖案與儲存於條目中的第一定址圖案相 配的話,該記憶體檔案則配置以將由第一標記所識別出之 資料值連結到載入操作的猜測結果。該執行核心係配置以 在進行取決於載入操作之第二操作的時候存取該猜測結 果。 一種方法的具體實施例包含將第一操作之第一定址圖 案相較於第二操作的第二定址圖案。第二操作在程式設計 的順序上比第一操作還早發生。假如第一定址圖案與第二 定址圖案相配的話,那麼第二操作之操作元之標記所識別 出的資料值則可能連結到第一操作的猜測結果。具有取決 於第一操作之結果之操作元來源的第三操作,其係可能使 用該標記所識別出的資料值來進行。 【實施方式】 雖然本發明容許有種種的修改與替代形式,但是其明 確的具體實施例則藉由圖式中的實例顯示,其在此有詳細 的說明。不過,應該理解的是,圖式與詳細說明並不打算 將本發明侷限於所揭露出的特定形式,相反地,本發明涵 蓋在附加申請專利範圍所定義之本發明精神與範圍内的所 有修改、均等、與替代物。注意,標題僅用於組織之目 的,而且並不意圖用來限制或者說明本發明或者申請專利 範圍。再者,要注意的是,單字 ''可能〃以寬容的意義 (亦即,具有潛在性,能夠)、而非以命令的意義(亦即必 須)而使用於整個本申請案。該詞 ''包括〃與其衍生意味 著''包括,但不局限於〃。該詞 ''連接〃意味著 ''直接或
92293.ptd 第7頁 1260541 五、發明說明(4) 者不直接連接〃,而且該詞''結合〃意味著 ''直接或者不 直接結合〃。 第1圖係為一微處理器1 0 0之具體實施例的方塊圖。微 處理器1 0 0係配置以執行儲存於系統記憶體2 0 0中的指令。 許多的這些指令執行於儲存於系統記憶體2 0 0中的資料。 應注意的是,系統記憶體2 0 0可能實體地分佈於整個計算 機系統,並且可能由一個或者更多個微處理器1 0 0所存 取。 微處理器1 0 0可能包括一指令快取1 0 6與一資料快取 1 2 8。微處理器1 0 0可能包括連接到指令快取1 0 6的預先擷 取單元1 0 8。調配單元1 0 4可能配置以接收來自指令快取 1 0 6的指令,並且調配操作到排程器1 1 8。一個或更多個排 程器1 1 8可能連接以接收來自調配單元1 0 4的調配操作,並 且發出操作到一個或者更多個執行核心1 2 4。執行核心1 2 4 可能包括一載入/儲存單元1 2 6,其係配置以進行存取到資 料快取1 2 8。由執行核心1 2 4所產生的結果可能輸出到一結 果匯流排1 3 0。這些結果可能使用作為隨後發出指令用的 操作元值以及或者予以儲存到暫存器檔案1 1 6。退去佇列 1 0 2可能連接到排程器1 1 8與調配單元1 0 4。該退去佇列可 能配置以決定何時可能將各發出操作退去。在一具體實施 例中,微處理器1 0 0可能設計以與X 8 6架構相容。要注意的 是,微處理器1 0 0可能亦包括許多其它的元件。例如,微 處理器1 0 0可能包括一轉位預測單元(未顯示)。 指令快取1 0 6可能在調配單元1 0 4收到指令之前,暫時
92293.ptd 第8頁 1260541 五、發明說明(5) 地將它們儲存。指令代碼可能藉著將來自系統記憶體 2 0 0、經由預先擷取單元1 0 8之代碼預先擷取而提供到指令 快取1 0 6 ◦指令快取1 0 6可能以種種的組態來執行(例如, 集合關聯、完全關聯、或者直接映射)。 預先擷取單元1 0 8可能預先擷取來自系統記憶體2 0 0的 指令代碼,以用來儲存於指令快取1 0 6内。在一具體實施 例中,預先擷取單元1 0 8可能配置以將代碼從系統記憶體 2 0 0叢發式地傳送入指令快取1 0 6内。預先擷取單元1 0 8可 能應用種種明確的代碼預先擷取技術與演算法。 調配單元1 0 4可能將包括可由執行核心1 2 4執行之以位 元編碼的操作以及操作元位址資訊、瞬間資料以及/或者 替代資料的信號輸出。在一些具體實施例中,調配單元 1 0 4可能包括解碼電路(未顯示),以用於將特定指令解碼 入可在執行核心1 2 4内執行的操作内。簡單的指令可能符 合一單獨操作。在某些具體實施例中,更複雜的指令可能 符合多重操作。當將包含暫存器更新之操作解碼時,暫存 器檔案11 6内的暫存器位置則可能保存,以儲存猜測性暫 存器的狀態(在一替代性具體實施例中,一重新排列緩衝 器可能用來將各暫存器之一個或者更多個猜測性暫存器的 狀態儲存)。一暫存器映射圖1 3 4可能將源頭與目標操作元 的邏輯暫存器名稱轉成實體暫存器名稱,以促進暫存器之 重新命名。暫存器映射圖1 3 4可能追蹤出暫存器檔案1 1 6内 的哪些個暫存器目前有受到配置以及沒有受到配置。 第1圖的微處理器1 0 0支持失序的執行。退去佇列1 0 2
92293.ptd 第9頁 1260541 五、發明說明(6) 可能追蹤暫存器讀取與寫入操作用的最初程式順序,允許 猜測性指令之執行與轉位不當預測之恢復,並且促進精確 的異常。在某些具體實施例中,退去佇列1 0 2亦可能藉由 提供資料值儲存給猜測性暫存器狀態而支持暫存器重新命 名。在許多具體實施例中,退去佇列1 0 2的功能可能類似 一重新排列缓衝器。不過,不像典型的重新排列缓衝器, 退去佇列1 0 2可能不會提供任何資料值的儲存。在某些具 體實施例中,退去佇列1 0 2可能以先進先出之配置來執 行,在該配置中,操作則在生效之時移動到該緩衝器的 ''底部〃,從而產生空間給在佇列''頂端〃的新條目。當 將操作退去時,退去佇列1 0 2則可能減少配置暫存器於不 再需要儲存猜測性暫存器狀態的暫存器檔案Π 6中,並且 提供信號到指示出有哪些暫存器目前空閒的暫存器映射圖 1 3 4。藉著維持猜測性暫存器狀態於暫存器檔案1 1 6内(或 者,在替代性具體實施例中,於重新排列的緩衝器内)一 直到產生那些狀態的操作生效為止,沿著不當預測路徑而 執行猜測操作的結果,其係可能在假設轉位預測不正確的 情形下於暫存器檔案1 1 6中無效。 當將一特別操作解碼時,假如一所需操作元是暫存器 位置的話,則暫存器位址資訊就可能按規定路徑予以發送 到暫存器映射圖1 3 4 (或者一重新排列緩衝器)。例如,在 X8 6架構中,有8個3 2位元的邏輯暫存器(例如,EAX、 EBX、ECX、EDX、EBP、ESI、EDI與 ESP)。實體暫存器檔案 1 1 6 (或者一重新排列緩衝器)包括改變這些邏輯暫存器内
92293.ptd 第10頁 1260541 五、發明說明(7) 容之結果的儲存體,其係允許失序的執行。在暫存器檔案 1 1 6中的實體暫存器可能配置以儲存各操作之結果,而各 操作則在解碼時決定修改其中之一邏輯暫存器的内容。因 此,在特定程式執行期間内的種種點上,暫存器檔案1 1 6 (或者,在替代性具體實施例中,重新排列的緩衝器)可能 具有一個或者更多個暫存器,該些暫存器包含一已知邏輯 暫存器的猜測性執行内容。 暫存器映射圖1 3 4可能將實體暫存器指派到指定作為 操作用之目標操作元的特定邏輯暫存器。調配單元1 0 4可 能決定暫存器檔案11 6具有一個或者更多個事先配置的實 體暫存器,其係予以指派到在特定操作中指定作為來源操 作元的邏輯暫存器。暫存器映射圖1 3 4可能提供一標記給 最近指派到該邏輯暫存器的實體暫存器。此標記可能使用 來存取暫存器檔案1 1 6中的操作元資料值,或者經由結果 匯流排1 3 0上的結果發送而接收資料值。假如該操作元符 合一記憶體位置的話,該操作元值就可能經由載入/儲存 單元2 2 2而提供到結果匯流排上(以用於暫存器檔案1 1 8中 的結果發送以及/或者儲存)。當將該操作由其中之一排程 器1 1 8發出時,操作元資料值就可能提供到執行核心1 2 4。 要注意的是,在替代性具體實施例中,當將一操作調配時 (替代當將操作發出時,提供到符合的執行核心1 2 4 ),操 作元值則可能提供到對應的排程器11 8。 設置在調配單元1 0 4輸出端上、以位元解碼的操作與 瞬間資料,其係可能按規定路徑予以發送到一個或者更多
92293.ptd 第11頁 1260541 五、發明說明(8) 個排程器11 8。要注意的是,誠如在此所使用的,排程器 是檢測出何時準備執行操作,並且發出準備操作到一個或 者更多個執行單元的裝置◦例如,保留站係為一排程器。 各排程器1 1 8能夠保持住種種懸置操作用的操作資訊(例 如,以位元解碼的執行位元以及操作元值、操作元標記、 以及/或者瞬間資料),以等待發出到執行核心1 2 4。在某 些具體實施例中,各排程器11 8可能不會提供操作元值儲 存體。取而代之,各排程器可能監視予以發出的操作以及 在暫存器檔案1 1 6中有效的結果,以決定操作元值將何時 有效地由執行核心1 2 4所讀取(從暫存器檔案1 1 6或者結果 匯流排1 3 0 )。在某些具體實施例中,各排程器1 1 8可能與 專屬的執行核心1 2 4結合。在其它的具體實施例中,單獨 的排程器1 1 8可能發出操作到超過一個的執行核心1 2 4。 排程器1 1 8可能設置來暫時地將經由執行核心1 2 4執行 的操作資訊儲存。如先前所述地,各排程器1 1 8可能儲存 懸置操作用的操作資訊。此外,各排程器可能將已經執行 但卻仍可能重新發出之操作的操作資訊儲存。將操作發出 到執行核心1 2 4,以反應可即時用於執行之任何必須操作 元的值而來執行。於是,執行操作的順序可能不會相同於 最初程式指令序列的順序。包含資料猜測的操作可能維持 於排程器1 1 8中,直到它們變得不具猜測性為止,以便假 設該資料猜測不正確的話,它們可能重新發出。 在一具體實施例中,各執行核心1 2 4可能包括配置以 進行加與減的整數計算操作以及移動、轉動、邏輯操作與
92293.ptd 第12頁 1260541 五、發明說明(9) 轉位操作的元件。浮動點單元亦可能予以包括,以容納浮 動點操作。一個或者更多個執行核心1 2 4可能配置以執行 位址產生,以用於由載入/儲存單元1 2 6所進行的載入與儲 存記憶體操作。 執行核心1 2 4亦可能提供與執行有條件轉位指令有關 的資訊到一轉位預測單元,以便假設將該轉位不當預測的 話,該轉位預測單元就可能在已經進入該指令處理管線的 不當預測轉位以後清除指令,並且重導向預先擷取單元 1 0 6。該重導向預先擷取單元1 0 6隨後可能開始擷取來自指 令快取1 0 6或者系統記憶體2 0 0的正確指令集。在此些情況 中,發生在不當預測轉位指令以後之最先程式序列中的指 令結果可能會受到摒棄,包括那些予以猜測性地執行並且 暫時地儲存於暫存器檔案1 1 6中者。由執行核心1 2 4内元件 產生的結果,其係可能在假設將暫存器值更新的情形下, 在結果匯流排1 3 0上輸出到暫存器檔案11 6。假設將記憶體 位置的内容改變的話,產生於執行核心1 2 4内的結果則可 能提供到載入/儲存單元1 2 6。 載入儲存單元1 2 6提供一界面於執行核心1 2 4與資料快 取1 2 8之間。在一具體實施例中,載入/儲存單元1 2 6可能 配置以載入/儲存緩衝器,該載入/儲存緩衝器係具有種種 儲存位置,以用於懸置載入或者儲存的資料與位址資訊。 該載入/儲存單元1 2 6亦可能進行依存性檢測,以來對照懸 置儲存指令而載入指令,以確保維持該資料的連貫性。 資料快取1 2 8係為一快取記憶體,其係提供以將轉換
92293.ptd 第13頁 1260541 五、發明說明(10) 於載入/儲存單元1 2 6與系統記憶體2 0 0之間的資料暫時地 儲存。像上述所說的指令快取1 〇 6,資料快取1 2 8可能執行 於種種具體的記憶體組態中,包括一集合關聯式組態。此 外,在某些具體實施例中,資料快取1 0 6與指令快取1 2 8可 能執行於統一快取中。 第2 A圖顯示一調配單元1 0 4的一具體實施例。在此具 體實施例中,調配單元1 0 4包括一暫存器映射圖1 3 4與一記 憶體檔案1 3 2。如上述,暫存器映射圖1 3 4可能配置以提供 暫存器重新命名。暫存器映射圖1 3 4可能接收用於各來源 與目標操作元的邏輯暫存器名稱,並且將最近指派到邏輯 暫存器之實體暫存器的實體暫存器名稱輸出◦記憶體檔案 1 3 2包括記憶體檔案控制器2 0 2與記憶體檔案儲存體2 0 4。 記憶體檔案儲存體2 0 4包括一個或者更多條目2 2 0。各 條目2 2 0可能包括一定址圖案2 0 6以及結合該條目之定址圖 案的一標記2 0 8。各標記可能藉由指示出當產生資料值時 在何處將之儲存(例如,在一重新排列緩衝器内或者在一 暫存器檔案Π 6内)而識別出一資料值。例如,如說明之具 體實施例所示,各標記可能識別出配置以儲存該資料值的 實體暫存器,如暫存器映射圖1 3 4所標示者。各定址圖案 可能包括使用以在一操作中具體指定一位址的所有或者一 些資訊。例如,快速地察看第2 B圖,其係顯示一示範定址 圖案2 0 6。在此具體實施例中,定址圖案2 0 6包括底數邏輯 暫存器名稱2 1 0、指數邏輯暫存器名稱2 1 2、以及移位 2 1 4。一些定址圖案2 0 6可能包括一暫存器的區段邏輯暫存
92293.ptd 第14頁 1260541 五、發明說明(1Γ) 器名稱,其係識別出記憶體中的特定區段◦要注意的是, 在許多具體實施例中,儲存於記憶體檔案儲存體2 0 4中的 定址圖案2 0 6可能包括少於所有指定用在一操作的定址資 訊。例如,記憶體檔案儲存體2 0 4中的條目可能儲存少於 使用以具體指定移位領域2 1 4内一移位的所有位元。在其 它具體實施例中,記憶體檔案控制器2 0 2可能依據記憶體 檔案中的條目是否可儲存特別操作的所有定址資訊,而選 擇性地選擇是否要將條目配置於記憶體檔案儲存體中◦例 如,假設記憶體檔案儲存體2 0 4中的各條目儲存了多達1 6 位元的移位資訊,而且一特定操作的定址資訊包括2 4位元 的移位資訊的話,那麼記憶體檔案控制器2 0 2就不可能配 置記憶體檔案條目,以用於該操作的定址資訊。在一些具 體實施例中,記憶體檔案儲存體2 0 4可能從許多暫存器、 閂鎖、正反器、或者其它時脈儲存體而來執行。在替代性 具體實施例中,記憶體檔案儲存體2 0 4可能包括一個或者 更多個RAM (隨機存取記憶體)單元。 記憶體檔案控制器2 0 2可能將具體指定於未調配操作 中的定址圖案與那些儲存於記憶體檔案儲存體2 0 4之條目 内者相比較。假如一操作的定址圖案不匹配任何目前儲存 於記憶體檔案儲存體2 0 4之條目内的任何定址圖案的話(亦 即,操作的定址圖案於記憶體檔案儲存體中遺漏),那麼 記憶體檔案控制器2 0 2就可能將新條目配置於記憶體檔案 儲存體中,以儲存全部或者部份的操作定址圖案。假如沒 有任何自由條目配置於記憶體檔案儲存體2 0 4内的話,那
92293.ptd 第15頁 1260541 五、發明說明(12) 麼記憶體檔案控制器2 0 2就可能選出一條目,以使用替代 結構,譬如LRU(目前最少使用)、FIFO(先進先出)、隨機 替代等等來覆寫。除了將操作的定址圖案儲存於受到分配 的條目以外,記憶體檔案控制器2 0 2亦可能儲存標記(例 如,實體暫存器的名稱),其係識別出從藉由該操作之定 址圖案所識別出之記憶體位置載入或者儲存入該記憶體位 置的一數值。例如,假設將從記憶體載入資料的操作處理 的話,因應該操作而配置之條目就可能將配置以儲存載入 操作結果的實體暫存器名稱儲存。假如將資料儲存到記憶 體位置之操作予以處理的話,則記憶體檔案控制器2 0 2就 可能儲存該暫存器的實體暫存器名稱,該暫存器儲存經由 記憶體檔案儲存體2 0 4中之儲存操作所儲存的數值。 假設一操作的定址圖案(或者一部份圖案)已經儲存一 條目於記憶體檔案2 0 4中的話(亦即,該操作的定址圖案命 中該記憶體檔案儲存體),則該記憶體檔案控制器2 0 2則可 能使用或者修改包含該匹配定址圖案的該條目。假如處理 一載入操作的話(將一數值從一特定位址載入到一暫存器 内的操作),該記憶體檔案控制器2 0 2則可能將儲存於匹配 條目中的實體暫存器名稱2 0 8輸出。假設將一儲存操作處 理的話(將來自一暫存器的數值儲存到一特定位址的操 作),該記憶體檔案控制器2 0 2就可能用予以儲存之資料的 標記而將儲存於匹配條目的標記(例如,實體暫存器名稱 2 0 8 )覆寫。 假設將一載入操作處理,而且該載入操作命中該記憶
92293.ptd 第16頁 1260541 五、發明說明(13) 體檔案儲存體2 0 4的話,那麼由記憶體檔案控制器2 0 2所輸 出的標記則可能用來將該標記所儲存識別出的數值連結到 該載入操作的一猜測結果。例如,在一些具體實施例中, 當將載入操作調配到排程器11 8時,由記憶體檔案1 3 2所輸 出的標記亦可能會提供到該排程器(例如,以作為一猜測 來源操作元標記)。一排程器11 8可能因應該標記所識別出 之數值的有效性(例如,在暫存器檔案1 1 6中或者在結果匯 流排1 3 0上)而將該操作發出。一執行核心1 2 4可能執行該 載入操作,以便將該連結數值散播,以作為結果匯流排 1 3 0上之載入操作的猜測結果(要注意的是,在一些具體實 施例中,產生作為載入結果的資料值,其本身不可能標以 旗號,或者不然的話,予以識別為一猜測數值)。在其它 的具體實施例中,該資料值可能藉由將標記儲存於一猜測 性映射圖中而連線到該載入操作的猜測結果,如以下所說 明者。 由於該連線之結果,一旦該資料值有效的話(例如, 在暫存器檔案1 1 6中或者在結果匯流排1 3 0上),該標記所 識別出的資料值就可能予以發送作為該載入的猜測結果, 以便允許相依操作使用該猜測結果來執行。在許多的情形 中,這可能使得相依操作使用該載入操作的猜測結果來執 行,其係比在假設延遲執行它們,直到載入操作的非猜測 結果變得有效為止之情形下,相依操作所能執行的還早。 在一些具體實施例中,資料值可能藉由執行該載入操作而 予以發送,以便將該資料值輸出到該結果匯流排1 3 0上,
92293.ptd 第17頁 1260541 五、發明說明U4) 以作為該載入操作的猜測結果。例如,在一具體實施例 中,替代採用三個循環以施行非猜測性載入(假設載入命 中資料快取1 2 8 ),該載入可能藉由輸出該資料值而執行於 一單獨循環中,而且一標記則識別出該資料值以作為載入 結果。在其它具體實施例中,該資料值可能以更不直接的 方式來發送,其乃藉著將由記憶體檔案控制器2 0 2所輸出 的標記直接地提供到相依操作(具有由載入操作所產生之 操作元的操作),以作為當調配時的一猜測性操作元來 源。發送資料值用的機構可能包括下述的其中一個或者更 多個:一調配單元,其係配置以修改載入操作以執行作為 猜測性之暫存器至暫存器的移動操作,或者提供該標記至 一相依操作,以作為一猜測操作元來源標記;一排程器, 其係配置以發出該修改載入以及/或者取決於該連結資料 值之有效性的相依操作;以及一執行核心,其係配置以輸 出該連結資料值以作為載入的結果,或者使用該連結資料 值以執行該相依操作。 該載入儲存單元1 2 6 (或者查驗微處理器1 0 0内之連結 的其它構件)可能查驗出儲存在由記憶體檔案1 3 2所識別之 實體暫存器中的數值與載入操作的猜測結果的連結。假如 該連結不正確的話,該載入儲存單元1 2 6就可能使該載入 再發出以及/或者散播該載入操作的正確結果於結果匯流 排1 3 0上。將該載入再發出,其係可能會導致任何相依的 操作,該些操作乃使用載入之猜測結果來執行以再發出, 並且使用該更新、非猜測性數值來執行。或者,假如該連
92293.ptd 第18頁 1260541 五、發明說明(15) 線不正確的話,該處理器1 0 0就可能清除發生在錯誤猜測 之後的操作,並且重新開始執行使用載入操作之正確結果 的那些操作。 如所不5記憶體彳當案1 3 2追3從在存取資料於貢料快取 1 2 8 (或者系統記憶體2 0 0 )之操作中的定址圖案。結果,儲 存於實體暫存器中的暫存器數值則可能連線到儲存於記憶 體之特定位址中的數值。 為了進一步說明記憶體檔案1 3 2的操作,假定由調配 單元1 0 4所處理的一系列操作包括以下操作: %(^(移動)£6义,[£01 + £人)(-移位八](載入1 ) MOV(移動)ECX, [EDX + EAX-移位 A](載入 2) MOV (移動)[EDX + EAX-移位 A], EAX (儲存 1 ) 這些操作的每一個可能按程式順序而由一個或者更多個介 入操作所分隔。如所示,這三個操作的每一個包括相同的 定址圖案,EDX + EAX _移位A。 當將載入的定址圖案提供到記憶體檔案1 3 2的話,記 憶體檔案控制器2 0 2則可能檢查記憶體檔案儲存體2 0 4,以 用於配合載入1之定址圖案的一定址圖案。假定定址圖案 於記憶體檔案儲存體2 0 4中遺漏的話,那麼記憶體檔案控 制器2 0 2則可能配置一條目(藉由使用未經配置的條目或者 將一已經配置的條目覆寫),以將全部或者一些載入操作 的定址圖案以及由暫存器映射圖1 3 4所提供之載入操作目
92293.ptd 第19頁 1260541 五、發明說明(16) 標實體暫存器的實體暫存器名稱儲存。因為該載入操作於 記憶體4當案儲存體中遺漏,所以該記憶體檐案控制器2 0 2 就不可能將該載入操作用的標記輸出。 當隨後將載入2經由記憶體檔案1 3 2處理時,它的定址 圖案就有可能配合反應載入1所配置之條目中的定址圖案 (假定載入1的條目已經不反應介入操作而予以覆寫)。反 應命中記憶體槽案儲存體2 0 4之載入2的定址圖案,記憶體 檔案控制器2 0 2可能將配置以儲存載入1之結果的實體暫存 器的實體暫存器名稱輸出。此實體暫存器名稱可能使用來 將藉由載入1所載入的資料值連結到載入2的猜測結果。 當儲存1由記憶體檔案1 3 2所處理時,它的定址圖案則 可能命中反應載入1而配置的條目(再度假定,並沒有任何 介入操作導致此條目受到覆寫)。不管怎樣,記憶體檔案 控制器2 0 2可能用包含由儲存1所儲存之資料的暫存器的實 體暫存器名稱,來覆寫儲存於該條目中的實體暫存器名稱 2 0 8,以取代將配置以儲存載入1之結果的實體暫存器的實 體暫存器名稱輸出(如進行以用於載入2 )。因此,當隨後 的載入操作命中此條目時,記憶體檔案控制器2 0 2將輸出 儲存1之來源實體暫存器的實體暫存器名稱,以取代將載 入1之目標暫存器的實體暫存器名稱輸出。 因為記憶體檔案1 3 2使用作為一猜測結構,所以儲存 於記憶體檔案儲存體2 0 4中之資訊的正確性,其對微處理 器1 0 0的正確操作而言並不具有關鍵性(例如,在記憶體檔 案1 3 2中的錯誤預測不可能造成微處理器1 0 0之輸出的錯
92293.ptd 第20頁 1260541 五、發明說明(17) 誤)。不管怎樣,令人希望的則是改進記憶體檔案1 3 2的正 確性,以便增加由將載入操作之猜測結果正確地連結到儲 存於實體暫存器之數值所提供的好處,以及/或者減少錯 誤預測之猜測性連結所遭致的任何性能損失。在一些具體 實施例中,記憶體檔案1 3 2的正確性,其係可能在檢測出 使用來具體指定位址之暫存器之更新的時候,藉著使記憶 體檔案儲存體2 0 4中的條目無效而有所增加。例如,各定 址圖案可能包括一個或者更多個邏輯暫存器識別器,其係 用來識別出位址計算用的一底數與一指數。假如隨後的操 作將具體指定為部份條目之定址圖案2 0 6的其中之一邏輯 暫存器修改的話,那麼那個條目則可能會失效。因此,各 操作之目標暫存器的邏輯暫存器名稱可能會輸入到記憶體 檔案1 3 2,以便進行條目之失效,如第2 A圖所示。 此外,在一些具體實施例中,記憶體檔案儲存體2 0 4 内的條目可能因應窺探獲得寫入存取到特定位址之資料的 另一裝置而無效。相同地,一條目可能反應錯誤預測之偵 測而無效。一般而言’許多情況’譬如這些可能影響記憶 體檔案儲存體2 0 4中之條目之精確性者,其係可能受到監 視,並且予以使用以決定何時使條目無效。不過,因為記 憶體檔案1 3 2是一猜測性結構,所以假設執行某些監視方 法的額外硬體成本超過記憶體檔案精確性之潛在改善的 話,一些具體實施例則不可能會執行一些監視方法。 要注意的是,記憶體檔案1 3 2允許使用來將暫存器數 值連結到猜測性載入結果之操作流中彼此相對移動之操作
92293.ptd 第21頁 1260541 五、發明說明U8) 間的依存性。因此,一記憶體檔案可能提供可能由許多介 入操作所隔開之操作之間的依存性歷史紀錄。 第3圖顯示將一載入操作之猜測結果連結到一暫存器 數值之方法之一具體實施例的流程圖。在3 0 1上,一標記 結合一定址圖案,以指示兩者皆有可能儲存相同的資料 值。標記與定址圖案兩者係具體指定用於第一載入或者儲 存操作。例如,假設第一操作是一載入操作的話,該標記 則可能識別出配置以儲存該載入結果的實體暫存器,而且 該定址圖案則可能使用來算出該載入之位址。假設第一操 作反而是一儲存操作的話,該定址圖案則可能指示出該儲 存目標的位址,而且該標記可能識別出由儲存操作所儲存 的資料。在一些具體實施例中,該標記與該定址圖案可能 藉由儲存兩者於記憶體檔案中的條目裡而結合。 假設一載入操作的定址圖案配合第一操作之定址圖案 的話,那麼載入的猜測結果則可能會連結到指定用於第一 操作之標記所識別出的資料值,如在3 0 3 - 3 0 5所指示者。 假如該載入操作的定址圖案不配合第一操作之定址圖案的 話,那麼該載入的定址圖案與該載入目標的標記則可能結 合(例如,藉由儲存兩者於記憶體檔案的條目中),如在 3 0 3 - 3 1 1所指示者。再者,該載入可能藉由存取該資料快 取而正常地進行,如在31 3所示者。在一具體實施例中, 可能將該載入操作的定址圖案與超過一個的先前操作的定 址圖案相比較。例如,該載入的定址圖案可能與目前儲存 於記憶體檔案中的各定址圖案相比較。
92293.ptd 第22頁 1260541 五、發明說明(19) 假設將該載入之猜測結果連結到由該標記所識別出之 資料值的話,那麼該資料值則可能發送到一個或者更多個 相依操作,以作為載入操作的猜測結果,如在3 0 7所指示 者。該資料值可能經由結果發送來發送,或者藉由發送相 依操作可能使用該資料值以作為猜測操作元來源之一指示 來發送,其係將在以下有更詳細的說明。在一具體實施例 中,假如將該資料值經由結果發送來發送的話,那麼相依 操作就可能在產生資料值之操作完成執行之後,使用所發 送的資料值一循環來執行。假如將該資料值經由相依操作 可能使用實體暫存器作為猜測性操作元來源之指示而來發 送的話,那麼產生資料值之操作一完成執行的話,相依操 作就有可能會發出。該猜測結果可能在該猜測結果受到查 驗之前予以發送,如在3 0 9所指示者。該猜測結果可能在 不用存取該資料快取的情形下予以發送(亦即,該猜測結 果可能比該非猜測結果還早予以發送,其係藉由將該資料 快取存取而產生)。 假設在3 0 9,將該猜測結果查出是正確的話,那麼載 入操作就可能在不用進行資料快取存取的情形下完成。不 過,假如在3 0 9,該猜測結果測定是為不正確的話,那麼 該資料快取存取就可能會進行,以便得到正確的結果(未 顯示)。假設如此的話,使用該載入之該猜測結果而執行 的任何相依操作,其係可能使用載入的正確結果而予以重 新執行。要注意的是,在一些情況中,在將該連結資料值 發送作為該載入的猜測結果之前(在3 0 7 ),可能將該確認
92293.ptd 第23頁 1260541 五、發明說明(20) (在3 0 9 )進行◦在此些情況中,可能將該載入正常地進 行,或者假如將該連結決定為正確的話,該資料值就有可 能發送作為該載入操作的非猜測性結果。 種種具體實施例可能以許多不同的方式來將載入操作 的猜測結果連結到一暫存器資料值。在一些具體實施例 中,數值可能藉由將一操作元用的兩種來源識別出而予以 連結:一猜測性來源以及一非猜測性來源。該猜測性來源 可能是予以連結的資料值。猜測性來源可能提供用作載入 操作,以指示出該資料值之連結到該載入的猜測結果。在 一些具體實施例中,猜測來源亦可能提供用作取決於此一 載入操作的操作。於是,一些操作元可能具有兩標記:一 個識別出該猜測性來源,而且一個識別出非猜測性來源。 在此些具體實施例中,各排程器1 1 8可能提供標記儲存, 以用於猜測性操作元與非猜測性操作元兩者,如第4圖所 示。 第4圖顯示可能包括在一微處理器中之排程器11 8的具 體實施例。在所說明的具體實施例中,排程器11 8包括一 排程器控制器5 0 2以及一操作儲存體5 0 4。反應調配操作之 調配單元,排程器控制器5 0 2可能配置一條目於操作儲存 體5 0 4内,以將符合該操作的資訊儲存。例如,在操作儲 存體5 0 4中的條目5 2 2可能包括操作碼領域5 1 0,一個或者 更多個操作元領域,以及結果領域5 1 6。該結果領域5 1 6可 能將識別出該實體暫存器的標記儲存,該條目的操作結果 則應該儲存在該實體暫存器中。當將該操作發出時,此標
92293.ptd 第24頁 1260541 五、發明說明(2]) 記可能發送到在一個或者更多個標記匯流排5 2 0之其中一 個上的各排程器1 1 8。各排程器可能會把在標記匯流排5 2 0 上所發送的標記與懸置操作用的操作元標記(猜測性與非 猜測性兩者,如下述)相比較,以決定出該懸置操作的操 作元將何時有效◦於是,可能將一操作發出,以回應出現 於標記匯流排5 2 0上之它的來源操作元標記(或者做記號準 備發出)。 各操作元領域可能包括識別出猜測操作元來源之猜測 性標記以及識別出非猜測操作元來源之非猜測性標記用的 儲存體。在所說明的條目5 2 2中,操作元1的兩來源係由非 猜測性標記5 1 2與猜測性標記5 1 4所識別。該排程器1 1 8可 能配置以因應該操作之操作元有效的一個或者更多個指示 而發出一操作。一操作元在假設它可從猜測性來源或者非 猜測性來源得到的情形下是有效的。假如一操作元可從猜 測性來源與非猜測性來源得到的話,那麼該操作就可使用 可從非猜測性來源得到的數值來執行。在一些具體實施例 中,排程器1 1 8可能將可得到非猜測性操作元來源之操作 比只可得到猜測性操作元來源之操作還優先發出。 要注意的是,一操作可能包括具有猜測性來源的一些 操作元以及不具有猜測性來源的其它操作元。同樣要注意 的是,相同的來源可能是一操作用的猜測性來源,非猜測 性來源則可能用於另一操作。在一些具體實施例中,當將 一操作執行時,只有一資料值可能予以讀取以用於各操作 元(例如,執行核心1 2 4可能讀取猜測性操作元來源或者非
92293.ptd 第25頁 1260541 五、發明說明(22) 猜測性操作元來源,但非兩者都讀取)。這種情形可能使 得不一定要將多餘的埠加進暫存器檔案1 1 6内。在一些具 體實施例中,猜測性來源與實體來源可能儲存於相同的儲 存體位置(例如,暫存器檔案11 6内),而且猜測性來源可 能不會加以旗標或者不然的話,識別作為猜測性來源。 在許多具體實施例中,排程器Π 8可能配置以在已經 將那些操作發出到執行核心1 2 4以後,使條目持續地配置 到操作。當一操作反應一個或者更多個猜測性操作元之有 效性而由排程器1 1 8發出時,該排程器就可能使一條目5 2 2 配置到該操作,以便假設該猜測性連結不正確的話,可將 該操作重新發出◦在一些具體實施例中,該載入/儲存單 元可能配置以查驗猜測連結,該些猜測連結在將一猜測性 載入結果連結到儲存於一實體暫存器中之一資料值的時候 發生。假如該連結正確的話,該載入儲存單元則可能配置 以無法將載入的非猜測性結果散播,其乃因為該正確結果 已經可經由該連結而得到。假設是如此的話,假設將識別 出該操作之非猜測性操作元來源之標記散播在結果匯流排 1 3 0上的話,則排程器1 1 8就可能配置以將一操作重新發 出。 不然的話,載入/儲存單元就可能連同額外的狀態位 元而散播該儲存的結果,該額外的狀態位元將該散播遮 蔽,或者指示出該猜測性連結正確以及該載入應該予以重 新發出。不過,假設該猜測性連結錯誤的話,該載入/儲 存單元可能會進行一資料快取以及/或者記憶體存取,以
92293.ptd 第26頁 1260541 五、發明說明(23) 便得到載入的正確結果並且將載入的結果散播。在總是將 結果散播的具體實施例中,額外的狀態位元可能會指示出 該猜測連結是不正確的。因此,在許多具體實施例中,已 經在一微處理器中有效的相同標記與結果匯流排,其係可 能使用以指示出一猜測性連結是不正確的。在其它具體實 施例中,可能將替代性的指示機制(例如,使用分開的結 果匯流排1 3 0以及或者結果標記匯流排5 2 0,以指示出錯誤 的預測)實施。 第5圖顯示出將具有猜測性與非猜測性操作元來源之 操作發出與重新發出之方法的具體實施例的流程圖。假如 一操作的猜測性操作元來源是有效的話,該操作則可能予 以發出,如在8 0 1 - 8 0 3所示者。當一資料值出現於暫存器 檔案内的特別暫存器中時,或者當資料值輸出於結果匯流 排上時,一操作的猜測性操作元來源則可能變得有效。要 注意的是,在一些情況中,相同操作元所用之操作的非猜 測性操作元來源,其係可能於猜測性操作元來源之前有 效。在那些情況中,該操作可能在該猜測性操作元來源變 得有效之前予以發出。在一些具體實施例中,該猜測性來 源隨後的有效性可能不會觸發操作的重新發出。 所發出的操作可能使用由猜測性操作元來源所提供之 資料值而來執行,如在8 0 5所示者,而且該操作的結果可 能會予以散播,如在8 0 7所示者。該操作結果的散播允許 相依操作之執行。 假如後來,將該猜測性來源決定成不正確的話(例
第27頁 92293.ptd 1260541 五、發明說明(24) 如,猜測性來源所提供的資料值與非猜測性來源所提供者 不一樣,或者使用以產生猜測性來源之標記的猜測性連結 不正確),那麼非猜測性來源的標記則可能散播作為該猜 測性來源之數值是不正確的指示。將非猜測性來源之標記 散播,其係包含以該排程器是藉由重新發出該操作而回應 的此種方式來將該標記散播。例如,在一些具體實施例 中,假設將標記散播並且將結合該標記的狀態旗標設定在 某一值的話,一排程器有可能會做出回應,然而在其它的 具體實施例中,可能不會有相關的狀態旗標,而且一排程 器可能配置以在將非猜測性標記散播的任何時間上,將一 操作重新發出。 第6圖顯示可能包括在一微處理器1 0 0中之調配單元 1 〇 4的另一具體實施例。在此具體實施例中,調配單元1 0 4 包括一暫存器映射圖1 3 4、一記憶體檔案1 3 2、與一猜測性 暫存器映射圖8 0 0。像暫存器映射圖1 3 4,猜測性暫存器映 射圖8 0 0可能會將邏輯暫存器名稱轉化成實體暫存器名 稱。不管怎樣,猜測性暫存器映射圖8 0 0可能猜測性地將 一邏輯暫存器名稱映射到實體暫存器名稱(例如,回應實 體暫存器中所儲存之數值與載入操作之猜測性結果連結的 記憶體檔案1 3 2 )。該猜測性暫存器映射圖8 0 0可能允許不 包括定址圖案之操作的猜測性操作元數值連結到暫存器資 料值。例如,假設具有邏輯暫存器EAX的有效猜測映射圖 的話,一具有作為來源操作元之EAX的操作則可能具有兩 種來源標記:由暫存器映射圖1 3 4所提供的非猜測性標
92293.ptd 第28頁 1260541 五、發明說明(25) 記,以及猜測性暫存器映射圖8 0 0所提供的猜測性標記。 因為該操作可能在它的猜測性來源一旦有效的情形下隨即 發出,所以猜測性暫存器映射圖8 0 0可能會將資料消耗 者,經由猜測性操作元標記,越過任何介入的載入與儲存 而直接連線到資料產生者。要注意的是,在一些具體實施 例中(例如,在具有重新排列緩衝器的具體實施例中,該 缓衝器包括猜測性暫存器狀態所用的儲存體)除了實體暫 存器名稱,該猜測性映射圖還可能儲存標記。 猜測性暫存器映射圖8 0 0包括一猜測性暫存器映射圖 控制器8 0 2以及猜測性暫存器映射圖儲存體8 0 4。猜測性暫 存器映射圖儲存體可能包括一個或者更多條目8 2 0。各條 目8 2 0可能結合一特定邏輯暫存器,並且指示邏輯暫存器 目前所猜測性映射到之實體暫存器的實體暫存器識別器 8 1 2。各猜測性暫存器映射圖條目8 2 0亦可能包括關於該條 目是否目前有效的指示(未顯示)。在一具體實施例中,猜 測暫存器映射圖儲存體8 0 4可能包括各邏輯暫存器所用的 條目。在其它具體實施例中,猜測性暫存器映射圖8 0 4可 能包括比邏輯暫存器還少的條目。在此些具體實施例中, 各條目8 2 0可能包括該條目目前所符合之邏輯暫存器的指 示。 猜測性暫存器映射圖控制器8 0 2可能配置以反應載入 操作之猜測結果已經連結特別實體暫存器名稱所識別之資 料值的指示,而將條目8 2 0更新。在所顯示的具體實施例 中,此指示係由記憶體檔案1 3 2所提供。更新之條目8 2 0係
92293.ptd 第29頁 1260541 五、發明說明(26) 為具體指定作為載入操作之目標之邏輯暫存器的條目。該 條目可能予以更新,以包括由載入操作之記憶體檔案1 3 2 所輸出的實體暫存器識別器◦在其它具體實施例中,除了 記憶體檔案1 3 2所提供者以外,猜測性暫存器映射圖條目 可能反應諸指示而產生(在這些具體實施例的一些中,調 配單元1 0 4可能不包括記憶體標案)。例如,調配單元1 0 4 可能檢測出一有條件的移動指令若Z,則C Μ 0 V E A X, E B X, 並且回應地指示出EAX的該猜測性暫存器映射圖條目應該 識別出目前映射到EBX的實體暫存器。一般而言,猜測暫 存器映射圖條目可能反應任何預測機制而產生,該預測機 制指示出一邏輯暫存器應該猜測性地映射到一特定的實體 暫存器。 在一些具體實施例中,操作可能在予以提供到暫存器 映射圖1 3 4的相同循環期間内,提供到猜測性暫存器映射 圖8 0 0。因為暫存器映射圖1 3 4進行一操作的非猜測性暫存 器重新命名,所以猜測性暫存器映射圖8 0 0就可能指示出 具體指定為儲存操作之猜測性來源操作元的任何邏輯暫存 器是否可能連結到特定的實體暫存器。假如有效條目存在 於猜測性暫存器映射圖儲存體8 0 4,以用於其中一個操作 之邏輯暫存器來源的話,那麼猜測性暫存器映射圖控制器 8 0 2就可能將儲存於邏輯暫存器條目的實體暫存器名稱輸 出。當將該操作調配到排程器11 8日寺,調配單元1 0 4就可能 將作為猜測來源的此猜測性實體暫存器名稱輸出。因此, 假如將一 ADD (加法)操作提供到猜測性暫存器映射圖8 0 0,
92293.ptd 第30頁 1260541 五、發明說明(27) 而且其中一個ADD (加法)之來源在猜測性暫存器映射圖儲 存體8 0 4具有一有效條目的話,那麼在該條目中予以識別 出之實體暫存器的標記,則可能作為一猜測性來源操作元 標記而提供到一排程器1 1 8。該排程器可能配置以儲存猜 測性與非猜測性操作元標記兩者,如上述,而且在一些具 體實施例中,可能配置以將操作重新發出(假如已經發出 的話),以回應散播在結果匯流排上的非猜測性標記。 猜測性映射圖内的條目可能反應特定邏輯暫存器之資 料值將修改的指示而失效。例如,假設操作A D D (相加) E A X, E C X經由調配單元1 0 4來處理的話,則猜測性暫存器 映射圖控制器8 0 2可能因為ADD (加法)操作將修改那個暫存 器數值而使目前指派到EAX的猜測性映射圖條目失效。 一般而言,每當將一個操作的猜測結果連結到一暫存 器資料值時,就可能將猜測性操作元標記提供到排程器 1 1 8。在一些具體實施例中,記憶體檔案1 3 2以及在經過幾 個循環期間追蹤依存性的其它結構(例如,如下述的猜測 性暫存器映射圖)可能使用來將猜測性結果連結到暫存器 數值。例如,調配單元1 0 4可能產生一操作的猜測性標 記,以回應識別出一連結的記憶體檔案1 3 2。在一些具體 實施例中,猜測性標記可能在沒有使用此一猜測性映射圖 的情況下產生。例如,一序列的指令可能包括下述: ADD(加法)EBX, EBX (ADD(加法)1) MOV (移動)[定址圖案A],EBX (STORE (儲存)1) ADD (加法)[定址圖案A], ECX (ADD (加法)2)
92293.ptd 第31頁 1260541 五、發明說明(28) 這些指令可能是連續的指令(例如,他們可能在程式的順 序中直接地彼此緊鄰)。這些指令可能分成以下的元件操 作(以轉換成實體位址的邏輯位址來顯示),以用於執行核 心1 2 4内的執行: (ADD1 ) (STORED (ADD2之載入) (A D D 2之加法) (ADD2之儲存) 與儲存操作調配之前 調配 ADD PR2, PR2, PR1 MOV[定址圖案A], PR2 MOV PR3,[定址圖案A] ADD PR4, PR3, PR5 MOV[定址圖案A],PR4 在將A D D 2之元件載入、加法 單元1 0 4可能檢測出在允許連結到猜測性結果之序列中的 任何元件操作之間是否具有任何依存性。此外,由STORE (儲存)1所儲存的資料可能連結到該載入的猜測結果(例 如,藉由記憶體檔案)。因為沒有介入操作,所以調配單 元就可能具有在相同調配循環中檢測出載入操作與加法操 作間(兩操作皆由相同的指令得到)之依存性所需要的所有 資訊◦依據這兩種依存性,調配單元1 0 4可能將由 ST0RE1、PR2所儲存之資料的標記連結到以部份ADD2來執 行之載入操作的猜測性結果。此猜測性連結可能接著允許 調配單元將以部份A D D 2進行之加法操作的來源連結到儲存 於PR2的數值。於是,調配單元可能輸出一指令,該指令 係為PR2可能予以猜測性地使用作為加法之其中一操作元 的來源,但P R 3卻是該操作元的非猜測性來源。因此,在 一具體實施例中,由調配單元所輸出的操作與操作元識別
92293.ptd 第32頁 1260541 五、發明說明(29) 器可能具體指定如下: (ADD1 ) (STOREl) (ADD2之載入) (A D D 2之加法,在此 ADD PR2, PR2, PR1 MOV[定址圖案A],PR2 MOV PR3,[定址圖案A] ADD PR4,PR2*,PR3,PR5 PR2*是ECX的猜測來源,而且PR 3是ECX的非猜測來源) MOV [定址圖案A],PR 4 (ADD 2之儲存) 在其它具體實施例中,調配單元1 0 4可能不會配置以 將取決於載入操作之諸操作的猜測性來源操作元識別出。 取而代之地,調配單元1 0 4可能包括一操作轉換器1 8 0,該 轉換器1 8 0配置以將載入操作轉換成一個或者更多個操 作,該些操作包括一暫存器至暫存器移動操作,以致於能 提供猜測性載入結果到相依操作。載入操作的轉換可能應 一指示而進行,該指示係為一連結存在於載入操作的猜測 結果與一由特別實體暫存器名稱所識別的一資料值之間。 此指示乃由連結檢測器1 8 2所提供,在一些具體實施例 中,其係可能包括一記憶體檔案1 3 2。在其它具體實施例 中,該連結檢測器1 8 2可能包括配置以反應譬如有條件之 移動操作的操作而連結資料值的邏輯,如以上所述。 在一具體實施例中,操作轉換器可能接收一操作的輸 入操作碼,以及關於暫存器數值與該操作之猜測結果之間 的連結是否予以檢測用於該操作的一指示。假如該操作是 一載入而且該猜測連結已經予以檢測的話,那麼該操作轉 換器可能將一暫存器至暫存器移動操作用的一操作碼輸
第33頁 92293.ptd 1260541 五、發明說明(30) 出。該調配單元1 0 4可能調配該暫存器至暫存器移動操 作,其係將由連結檢測單元所輸出的標記使用作為暫存器 至暫存器移動的來源操作元標記。 在一些具體實施例中,該操作轉換器可能配置以調配 該結果暫存器至暫存器移動,以便該排程器將暫存器至暫 存器移動與配置到暫存器至暫存器移動操作之條目中的原 先載入操作所需要的操作碼標記儲存。這種情形可能在假 設暫存器至暫存器移動操作之猜測結果檢測出為不正確的 情形下,允許該操作重新發出,以作為原先載入操作。為 了執行這種情形,可能將一額外的來源操作元加到起因於 將載入操作修改之各暫存器至暫存器的移動操作(或者, 在替代性的具體實施例中,可能將已經出現的來源操作碼 修改,以進行這種情形)。在一些具體實施例中,可能將 暫存器至暫存器移動操作的猜測結果予以查驗,其乃藉由 進行最先載入的位址計算以及/或者將連線的資料值相較 於真實的載入結果資料值。假如該猜測結果不正確的話, 就可能存取該資料快取,以致於能夠得到正確的載入結 果。正確載入結果的重新散播,其可能導致該排程器將使 用不正確數值來執行的任何相依操作重新發出。 在一些具體實施例中,該操作轉換器1 8 0可能配置以 將載入操作轉換成雙重特性的操作。像一載入操作,此雙 重特性的操作可能包含位址計算與資料移動兩者。不像一 載入,由雙重特性操作所起使的資料移動係為一暫存器-暫存器移動。更者,由雙重特性操作所起使的資料移動可
92293.ptd 第34頁 1260541 五、發明說明〔31) 能發生在該位址計算完成之前◦該位址計算可能使用來查 驗出該猜測連結是否正確。假如該猜測連結不正確的話, 該雙重目的之操作就可能重新發出,以作為一正常的載入 操作,而且它的結果則可能在資料快取存取完成時重新散 播到相依操作。 以下實例顯示出不同的具體實施例如何將此操作的示 範序列轉換: ADD (加法)PR2, PR1,PR1 (ADD(加法)1) STORE (儲存)[定址圖案A],PR 2 (STORE (儲存)1 LOAD (載入)PR3,[定址圖案A] (LOAD (載入)1 ADD PR4, PR3, PR3 (ADD(加法)2) 在此序列中,具體指定的操作可能由一個或者更多個介入 操作所分隔。不管怎樣,假定並沒有任何介入操作出現以 將使用於定址圖案A的數值修改,或者以將儲存在從定址 圖案Μ算出之位址與PR2中的資料值修改,那麼一猜測連 結則可能予以檢測出在儲存於P R 2以及儲存在從定址圖案A 所算出之位址的資料值之間。 在一具體實施例中,反應經由猜測連結檢測器1 8 2之 猜測連結的檢測,操作轉換器1 8 0可能將載入1轉換成雙重 目的之移動操作:MOV (移動)PR 3, PR2。除了具體指定暫 存器來源與目標之外,此雙重目的移動操作亦可能明確指
第35頁 92293.ptd 1260541 五、發明說明(32) 定出定址圖案A,以便可能進行載入1的位址計算。不過, 一旦ECX有效的話,雙重目的移動操作的移動部份隨即可 能發出。雙重部份操作之移動部份的結果一散播,ADD2則 隨即可能發出,其係使用該移動操作的猜測結果作為一操 作元。當將位址計算執行的時候,猜測連結則可能會予以 查驗出。假如該猜測連結不正確的話,該載入/儲存單元 就可能提供一指示到該排程器,其係導致該排程器將雙重 目的移動操作重新發出,以作為一載入操作。該載入操作 的結果可能予以散播,其係導致任何相依的操作,譬如 ADD (加法)2,該相依的操作可能已經使用該移動的猜測結 果來執行,以重新發出。要注意的是,此雙重目的操作可 能使用一單獨的排程器條目來排程,而且一排程器Π 8可 能選擇雙重目的之操作,以來發出兩次:一次用於載入的 位址計算,一次用於暫存器至暫存器移動。 在一替代性具體實施例中,操作轉換器1 8 0可能反應 猜測連結之檢測而將載入1轉換成兩種受到連結的操作, LOAD (載入)PR3,[定址圖案A]以及MOV PR3,PR2。不像較早 的實例,其係包含雙重目的操作,這些受到連結的操作, 每一個可能佔用一排程器1 1 8中的一條目,以取代而非均 分一單獨的排程器條目。當將暫存器至暫存器移動操作發 出時,譬如ADD (加法)的相依操作則可能使用PR 3的猜測值 作為一操作元數值而來發出。可將該LOAD (載入)操作標記 為一特別型態的載入操作,以便假設將猜測連結決定為正 確的話,那麼載入的結果標記則不會予以散播(或者以移
92293.ptd 第36頁 1260541 五、發明說明(33) 動結果是正確以及該相依操作應該不會重新發出的指示來 散播)。同樣地,假如載入與移動操作兩者皆在相同的循 環上散播它們的結果的話,那麼則可能提供一指示,以便 將該載入結果取代該移動結果而使用於相依操作。在一些 具體實施例中,這種情形可能經由將一額外位元加到微處 理器1 0 0内的各標記匯流排而發生,處理器1 0 0指示出排程 器應該反應於那個標記。假如猜測性連結不正確的話(例 如,由載入結果標記的散播所指示者),那麼可能將移動 操作取消(例如,將移動操作排程的排程器1 1 8解除配置目 前配置到暫存器至暫存器移動的排程器條目,以致使該操 作不能夠重新發出)。在許多具體實施例中,該排程器可 能配置以將任何相依操作重新發出,該些操作乃反應重新 出現在結果匯流排上的載入結果而使用猜測載入結果來執 行。 第8圖顯示轉換載入操作以包括猜測暫存器至暫存器 移動操作之方法的一個具體實施例。如所示,假如在1 4 0 1 上,將特別標記所識別出的暫存器資料值與載入操作的猜 測結果之間的連結檢測出來(例如,藉由記憶體檔案)的 話,那麼則可能將載入操作修改,以包括一暫存器至暫存 器移動操作,其具有與連結到猜測性載入結果之資料值標 記相等的來源操作元標記,如在1 4 0 3上所示。暫存器至暫 存器移動操作的執行,其係可能包含將由該標記所識別之 輸出資料值,連同在1 4 0 5之載入結果的標記而輸出到結果 匯流排上。
92293.ptd 第37頁 1260541 五、發明說明(34) 在1 4 0 9上,可能將該猜測性結果查驗(例如,藉由進 行原先載入的位址計算)。假如該猜測結果正確的話,該 載入的結果就可能不會重新散播在該結果匯流排上(或 者,不然的話,該載入結果可能連同相依操作應該不會反 應重新散播之結果而重新發出的指示而來予以重新散 播)。假如該猜測結果不正確的話,就可能將該資料快取 存取,以檢索正確的載入結果,而且該正確的載入結果可 能會散播在結果匯流排上。這可能依次導致使用猜測結果 數值而發出的任何相依操作予以重新發出。要注意的是, 在一些情況中,該猜測結果可能在進行暫存器至暫存器移 動操作之前予以查驗。假如該猜測結果不正確的話’該暫 存器至暫存器移動操作就不可能進行。 假如在載入操作之猜測結果與暫存、貧料值之間沒有 檢測出任何連結的話(例如,該載入的定址圖案在記憶體 檔案中遺漏),該載入則不可能會予以修改。該載入可能 正常地進行,存取該資料快取以及將它的結果散播在結果 匯流排上,如在1 4 1 7與1 4 1 9上所示者。 第9圖顯示一計算機系統4 0 0之具體實施例的方塊圖, 該系統4 0 0包括經由匯流排橋接器4 0 2而連接到種種系統元 件的一處理器1 0 0。如上述,處理器1 0 0可能包括一調配單 元1 0 4、一記憶體檔案1 3 2、一排程器1 1 8、以及(或者)猜 測暫存器映射圖8 0 0的具體實施例。計算機系統的其它具 體實施例是可能並且予以考慮的。在描述出的系統中,主 要記憶體2 0 0係經由記憶體匯流排4 0 6而連接到匯流排橋接
92293.ptd 第38頁 1260541 ~~~~~~~-_ 五、發明說明(35) 55 zj Q 2 排n 、 图$控制杰4 0 8則經由AGP (加速圖形埠)匯流 連)壯而連接到匯流排橋接器4 0 2。種種PC I (週邊組件互 橋接1置41412β係經由PC 1匯流排4 1 4而連接到匯流排 P T Q ^、,4 〇 2 ° —次要區流排橋接器4 1 6亦可能提供以經由 49二強型工業標準架構)/ I S A (工業標準架構)匯流排 4 '、、—兒性界面到一個或者更多個Ε I SA或者I SA裝置 。在此貫例中,處理器1 00係經由CPU (中央處理單元) T *排4 2 4而連接到匯流排橋接器4〇2以及選用的L2快取 2 8。在一些具體實施例中,處理器1 0 0可能包括一整體L1 快取(未顯示)。 匯流排橋接器4 0 2在處理器1 〇 〇、主記憶體4 〇 4、圖形 控制為4 0 8、以及附著到p c丨匯流排4 1 4的裝置之間,提供 :界面。當將一操作從連接到匯流排橋接器4 〇 2之其中一 裝置接收時,匯流排橋接器4 〇 2就能識別出該操作之目標 (例如,一特別裝置,或者在pc丨匯流排4丨4的情形中,該 目標是在PC I匯流排4 1 4上)。匯流排橋接器4 0 2選定路徑將 操作發送到目標裝置◦匯流排橋接器4 0 2—般將一操作從 來源裝置或匯流排所使用的協定轉換成由目標裝置或者匯 流排所使用的協定。 除了提供一界面到PCI匯流排414的ISA/E ISA匯流排以 外’次要的匯流排橋接器4 1 6則可能結合額外的功能。一 輪入/輸出控制斋(未顯示),在次要匯流排橋接器4 1 6外部 或者合併次要匯流排橋接器,其係可能同樣地包括於計算 機系統4 0 0内,以提供操作上的支持給鍵盤與滑鼠4 2 2,以
圓 第39頁 92293.ptd 1260541 五、發明說明(36) 及種種串聯與並聯埠。扁甘 ^曰§ _ 在其匕具體實施例中,一外部快取 ^ PI ^ rpiir± ^ ^ ^ ^ J處理器100與匯流排橋接器402 之間的CPU (中央處理罩开、膝, )E /爪排4 2 4。不然的話,外部快 取可能連接到匯流排橋接器4 0 2,以、 ^!?〇?^1 ^# ^^ ^ 42β/Λ 理态 的月面結構來顯示。要注意的是,L 2快取4 2 8可能 與處理器100隔開,以處理器1〇〇而整合入卡匣内(例如, 插槽1或者插槽A )’或者以處理器i 〇 〇而整合到半導體基板 上。 主5己憶體2 0 0係為儲存應用程式,以及處理器1 〇 〇主要 自^ f主記憶體2 〇 〇執行。合適的主記憶體2 〇 〇包含DR AM (動 恶隨機存取記憶體)。例如,複數個SDRAM (同步動態隨機 存取記憶體)或者Rambus DRAM(RDRAM)之庫可能合適。 PC I裝置4 1 2 A至4 1 2B係為種種週邊裝置的例證,譬如 網路界面卡、影像加速器、聲訊卡、硬碟或軟碟驅動器、 $者驅動控制器、SCS I (小型計算機系統介面)配接器以及 ^話卡。相同地,ISA(工業標準架構)裝置418係為種種型 態之周邊裝置的例證,譬如數據機、聲訊卡、與種種取得 卡’譬如GP I B (萬用介面匯流排)或者場匯流排介面卡。 /圖形控制器4 0 8係提供以控制顯示器4 2 6上文字與影像 的彩現。圖形控制器408可能將一般在技藝中已知的、典'7型 圖形加速器具體實施,以彩現三度空間的資料結構,該三 度空間的資料結構可有效地移入主記憶體2 〇 〇内以及自其 矛夕出。圖形控制器4 0 8因此在它可要求並且接收存取到匯
92293.ptd 第40頁 1260541 五、發明說明(37) ~ 一 ---一· 二:t接為^ 〇 2内之目標界面以獲得存取到主記憶體2 0 0的 处“ ’可能會決定AGP匯流排410。專屬的圖形匯流排容 麟自主記憶體4Q4之資料的快速檢索。就特定操作而 了圖^控制裔4 0 8可能進一步配置以產生PCI協定異動在 淮极排41 〇上。匯流排橋接器40 2的AGP界面因此可能包 =处寸胃AGP協疋異動以及Pc丨協定目標與起始器異動兩者的 =,:ΐ示器4 2 6係為影像或者文字可呈現於上的任何電 ”、、頁不為。合適的_示為4 2 6包括陰極射線管(、、C R Γ )、 液晶顯示器('、LCD,,)等等。 p ^ f思的是,雖然AGP、PCI、以及ISA或者EISA匯流 :已、=士述說明中使用為實例,但是任何匯流仍 2外處理器巧多元處理計算機系統(例如, 哭了Of) ; L Γ衫ί統4 0 0之選擇元件的處理器100a)。處理 :二里器100。更特別地,處理器100河能 ΐ ^ i 的複製品。處理器io〇a可能經由相 依=^排而連接到匯流排橋接器4 0 2 (如第9圖所示),或者 共用CPU匯流排2 24。更者,處理器i〇°a 了此連接到類似1^2快取4 2 8的選擇性12快取4 2 8&。 …f η ϊ1〇圖’其顯示-計算機系統4。:的另一具 月豆貝她例,该貫施例可能如上述包括—調配單元丨〇4、一 =“?二:排程器ιΐ8、以及或者猜測暫存器映射 圖。一匕/、肢貫施例則有可能並且予以列入考慮。在 第10圖的具體實施例中’計算機系統4 0 0包括各種處理節
92293.ptd 第41頁
1260541 五、發明說明(38) 點6 1 2 A、6 1 2 B、6 1 2 C與6 1 2 D。各處理節點係經由包括在各 個處理節點6 1 2 A至6 1 2 D内的記憶體控制器6 1 6 A至6 1 6 D而連 接到各自的記憶體6 1 4 A至6 1 4 D。此外,處理節點6 1 2 A至 6 1 2 D包括使用以在處理節點6 1 2至6 1 2 D之間通訊的界面邏 輯。例如,處理節點6 1 2 A包括與處理節點6 1 2 B通訊的界面 邏輯6 1 8 A,與處理節點6 1 2 C通訊的界面邏輯6 1 8 B,以及與 仍另一處理節點(未顯示)通訊的第三界面邏輯6 1 8 C。相同 地,處理節點6 1 2 B包括界面邏輯6 1 8 D、6 1 8 E與6 1 8 F ;處理 節點612C包括界面邏輯618G、618 Η與6 1 8 I ;而且處理節點 6 1 2 D包括界面邏輯6 1 8 J、6 1 8 Κ與6 1 8 L。處理節點6 1 2 D係連 接以經由界面邏輯6 1 8 L而與複數個輸入/輸出裝置(以菊輪 式鏈接組態的裝置6 2 0 Α至6 2 0 Β )通訊。其它的處理節點可 能以相同的方式而與其它的I /0裝置通訊。 處理節點6 1 2 A至6 1 2 D執行一以封包為基礎的連結,以 用於過程間節點通訊。在目前的具體實施例中,該連結係 以單向線組合來實施(例如,線6 2 4 A使用來將封包從處理 節點6 1 2 A傳送到處理節點6 1 2 B,而且線6 2 4 B使用來將封包 從處理節點6 1 2 B傳送到處理節點6 1 2 A )。如第1 0圖中所 示,其它線組6 2 4 C至6 2 4 Η則使用來傳送於其他處理節點之 間的封包。一般而言,各線組6 2 4可能包括一條或者更多 條資料線,對應於該些資料線的一條或者更多條時脈線, 以及指示予以傳送之封包型態的一條或更多條控制線。該 連結可能以快取連貫的方式來操作,以用於處理節點之間 的通訊,或者以非連貫的方式來操作以用於處理節點與
92293.ptd 第42頁 1260541 五、發明說明C39) I/O裝置之間的通訊(或者,到譬如PCI匯流排或者ISA匯流 排之習知結構之I / 0匯流排的匯流排橋接器)◦更者,如所 示,該連結可能使用I / 0裝置間之菊輪式鏈接結構而以非 連貫性方式來操作。應該注意的是,從一處理節點傳送到 另一處理節點的一封包可能通過一個或者更多個中間節 點。例如,如第1 0圖中所示,由處理節點6 1 2 A傳送到處理 節點6 1 2 D的封包可能會通過處理節點6 1 2 B或者處理節點 6 1 2 C。可以使用任何適當的定路徑演算法。計算系統4 0 0 的其它具體實施例可能比第1 0圖中所示之具體實施例還包 括更多或者更少處理節點。 一般而言,封包可能以一個或者更多個位元時間而傳 送在節點之間的諸線6 2 4上。位元時間可能是在相對應時 脈線上之時脈訊號的上升或下降波緣。諸封包可能包括用 來起始異動的指令封包,用來維持快取連慣性的刺探封 包,以及用來回應刺探與指令的回應封包。 除了記憶體控制器與界面邏輯之外,處理節點6 1 2 A至 6 1 2 D還可能包括一個或者更多個處理器。廣義地說,處理 節點包含至少一處理器,並且可能選擇性地包括一記憶體 控制器,該記憶體控制器係用來如希望地與記憶體以及其 它邏輯通訊。更尤其是,各處理節點6 1 2 A至6 1 2 D可能包含 處理器1 0 0的一個或者更多個複製品。外部界面單元1 8可 能包括該節點内的界面邏輯6 1 8,以及記憶體控制器6 1 6。 記憶體6 1 4 A至6 1 4 D可能包含任何適當的記憶體裝置。 例如,記憶體61 4A至61 4D可能包含一個或更多個RAMBUS動
92293.ptd 第43頁 1260541 五、發明說明(40) ' *~~- 態隨機存取記憶體(RDRAMs )、同步動態隨機存取記憶體 (SDRAM)、靜態隨機存取記憶體等等。計算系統4〇〇的位址 空間係分開於記憶體6 1 4A至6 1 4D之間。各處理節點6 1 2八至 6 1 2D可能包括一記憶體映射圖,用以決定哪些位址映射到 哪些圮fe體6 1 4 A至6 1 4 D,以及應該將特定位址之記憶體請 求按路徑發迗到的哪些處理節點6丨2人至6丨2 D。在一具俨每 施例中,計算機系統4QQ内之位址的連貫點係為連接到 合该位址之記憶體儲存位元組的記憶體控制器6 1 6 A至 6 1 6D。換句話說,記憶體控制器6 } 6八至6 i 6D負責確保各記 憶體以一快取連貫方式來存取至對應之記憶體6丨Μ至6 1⑽ 之各發生。記憶體控制器6 1 6八至6丨6D可能包含控制電路以 用作到記憶體614八至614D的界面夕卜,記憶體控制器 6 1 6A至6 1 6D可能包括用來佇列記憶體請求的請求佇列。 界面邏輯6 1 8A至6 1 8L可能包含種種緩衝器,該等緩衝 器用來接收來自該連結的封包,以及用來緩衝在該上T 將傳送的封包。計算機系統4〇〇可能應用任何適^的、、:: 控制機^以用來傳送封包。例如,在-具體“ 中" 各界面邏輯6 1 8將各種緩衝器的數目儲存在連接哕天、羅 輯之該連結另一端的接收器内。該界面邏輯並不处值一 封包,除非該接收界面邏輯具有一空閒的緩衝器,、’込上 封包儲存。因為一接收緩衝器會藉由將一封包定=將土 發送而f閒’戶斤以該接收界面邏輯就可將-訊m: 送界面邏輯’以指示出該緩衝器已經空閒。此—樯、^ 之為 以配送為基礎(c〇u ρ ο η - b a s e d )〃的系統。 ^
92293.ptd
1260541 五、發明說明(41) I / 0 (輸入/輸出)裝置6 2 0 A至6 2 0 B可能是一合適的I /〇 裝置。例如,I / 0裝置6 2 0 A至6 2 0 B可能包括與另一計算機 系統通訊的裝置,該計算機系統可能連接諸裝置(例如, 網路界面卡或者數據機)◦更者,I / 0裝置6 2 0 A至6 2 0 B可能 包括影像加速器、聲訊卡、硬碟或軟碟驅動器或者驅動控 制器、SCS I (小型計算機系統界面)配接器與電話卡、音效 卡、與種種資料取得卡,譬如G P I B (萬用介面匯流排)或者 場匯流排介面卡。應該注意的是,I / 0裝置〃用詞與 ''周邊裝置〃用詞在此傾向於同義。 誠如在此所使用者,參照於時間間距的 ''時脈循環〃 或者''循環〃用詞指的是指令處理管線完成它們之任務的 種種階段。指令與計算值係由根據定義時脈循環之時脈訊 號的記憶體元件(譬如暫存器或者陣列)所獲得。例如,一 記憶體元件可能根據該時脈訊號的上升或下降波緣而獲得 一數值。 一旦以上發明完全令人理解的話,那麼種種變更與修 改對那些熟諳該技藝的人而言將顯而易見。以下的申請專 利範圍打算令人解釋為包含所有的此種變更與修改。
92293.ptd 第45頁 1260541 圖式簡單說明 【圖式簡單說明】 當連同附圖來考慮上述詳細說明時,可較佳地理解本 發明,其中: 第1圖顯示微處理器的一具體實施例。 第2 A圖係為調配單元之一具體實施例的方塊圖。 第2 B圖顯示可能使用於一具體實施例之示範記憶體檔 案 儲 存 條巨 。 第 3圖 係 為 一 流程圖 ,其係顯 示 將載 入操 作 之 猜 測結 果 連 結 到由特別標記所識別出之資料值之方法的具體實施 例 〇 第 4圖 係 為 排 程器具 體實施例 的 方塊 圖。 第 5圖 係 為 反 應資料 猜測不正 確 之指 示而 發 出 操 作以 及 再 發 出操作之方法之- -具體實施例的流程圖C 第 6圖 係 為 調 配單元 之另一具 體 實施 例的 方 塊 圖 〇 第 7圖 係 為 調 配單元 仍另一具 體 實施 例的 方 塊 圖 〇 第 8圖 係 為 顯 示以猜 測性貢料 值 來發 出操 作 y 並 且自 錯 誤 猜 測恢復之另一方法的流程圖c > 第 9圖 顯 示 計 算機系 統的一具 體 實施 例。 第 1 0圖顯示ί 十算機系統的另- -具體實施例〔 ) 1 8 外部 界 面 早 元 100 微 處理 器 1 02 退去 佇 列 104 調 配單 元 1 06 指令 快 取 108 預 先擷 取單 元 1 16 暫存 器 檔 案 1 18 排 程器
92293.ptd
第46頁 1260541 圖式簡 單說明 124 執 行 核 心 126 載 入 /儲存單元 128 資 料 快 取 130 結 果 匯 流 排 132 1己 憶 體 槽 案 134 暫 存 器 映 射 圖 180 操 作 轉 換 器 182 連 結 檢 測 哭 XJU 200 系 統 記 憶 體 202 1己 憶 體 槽 案 控制 器 204 1己 憶 體 才當 案 儲 存 體 206 定 址 圖 案 208 實 體 暫 存 器 名 稱 210 底 數 邏 輯 暫 存器 名稱 212 指 數 邏 輯 暫 存 器 名 稱 214 移 位 220 條 因 222 載 入 /儲存單元 400 計 算 機 系 統 402 匯 流 排 橋 接 哭 406 記 憶 體 匯 流 排 408 圖 形 控 制 器 410 AGP(加 速 圖 形 埠 )匯流 排 412AS412B PC] [(週邊組件 互連 )裝 置 414 PCI匯流排 416 次 要 匯 流 排 橋接 器 418 ISA(工 業 標 準 架 構 )裝 置 420 EISA(增強型J 二業標準 架構 )/] [SA(J l業標準架構 流 排 422 鍵 盤 與 滑 鼠 424 CPU(中 央 處 理 單 元 )匯 流排 426 顯 示 器 428 L2快 取 502 排 程 哭 σσ 控 制 器 504 操 作 儲 存 體 510 操 作 石馬 領 域 516 結 果 領 域 520 標 記 匯 流 排 522 條 @ 6 12A至丨 61: ZD 處 理 Αλτ 即 點 614AS614D 記 憶 體
92293.ptd 第47頁
1260541 圖式簡單說明 6 1 6 A至6 1 6 D記憶體控制器 6 1 8 A至6 1 8 L界面邏輯 6 2 0 A至6 2 0 B以菊輪式鏈接組態的裝置 6 2 4 線組 8 0 0 猜測性暫存器映射圖 8 0 2 猜測性暫存器映射圖控制器 8 0 4 猜測性暫存器映射圖儲存體 812 實體暫存器識別器 8 2 0 猜測性暫存器映射圖條目
92293.ptd 第48頁

Claims (1)

1260541 六、申請專利範圍 1 . 一種資料猜測系統,包含: 一記憶體檔案,包括配置以儲存第一定址圖案與 第一標記的一條目,其中該記憶體檔案係配置以將包 括在該條目中的第一定址圖案與一載入操作的第二定 址圖案相比較,其中假如該第二定址圖案配合儲存於 該條目中的該第一定址圖案的話,該記憶體檔案則配 置以將由該第一標記識別出的一資料值連結到該載入 操作的一猜測性結果,以及 一執行核心,連接到該記憶體檔案,其中該執行 核心係配置以當將取決於該載入操作的第二操作執行 時,存取該猜測性結果。 2. 如申請專利範圍第1項之系統,進一步包含用來發送第 一標記,以作為該第二操作之猜測性操作元來源標記 的機構。 3. 如申請專利範圍第2項之系統,進一步包含一排程器, 該排程器配置以反應提供到該排程器的猜測性來源操 作元標記而發出該載入操作。 4. 如申請專利範圍第1項之系統,進一步包含用來將該資 料值發送到一結果匯流排以及用來指示出該資料值係 為該載入操作之結果的機構。 5. 如申請專利範圍第1項之系統,其中該記憶體檔案係配 置以猜測性地連結由該第一標記所識別出的資料值, 該第一標記具有藉由輸出該第一標記以作為載入操作 之猜測性來源操作元標記之載入操作的結果。
92293.ptd 第49頁 1260541 六、申請專利範圍 6. 如申請專利範圍第1項之系統,其中該第一定址圖案係 為一部份的儲存操作定址圖案,其中該儲存操作在程 式順序上比該載入操作還早發生。 7. 如申請專利範圍第6項之系統,其中該第一定址圖案包 括第一邏輯暫存器識別器。 8. 如申請專利範圍第7項之系統,其中該第一定址圖案進 一步包括第二邏輯暫存器識別器。 9. 如申請專利範圍第7項之系統,其中該第一定址圖案包 括一區段邏輯暫存器識別器。 1 0 .如申請專利範圍第7項之系統,其中該第一定址圖案包 括比包括在儲存操作之定址圖案中之全部還少的複數 個移位位元。 11.如申請專利範圍第1項之系統,進一步包含一載入/儲 存單元,該單元係配置以將載入操作的猜測性結果是 否與由該第一標記所識別出之資料值予以正確連結的 指示輸出。 1 2 .如申請專利範圍第1 1項之系統,其中該載入/儲存單元 係配置以輸出該載入操作的猜測結果係藉由將載入操 作的結果標記輸出在結果匯流排上而不正確地連結到 該資料值的指示。 1 3 .如申請專利範圍第1 1項之系統,其中假設該載入操作 的結果不正確地與該資料值連結的話,該載入/儲存單 元則配置以存取一資料快取,以致於能夠檢索該載入 操作的正確結果。
92293.ptd 第50頁 1260541 六、申請專利範圍 1 4 .如申請專利範圍第1 3項之系統,進一步包含一排程 器,該排程器配置以反應檢索該載入操作之正確結果 的載入/儲存單元而重新發出該第二操作。 1 5 .如申請專利範圍第1 1項之系統,其中該系統係配置以 清除複數個操作,以回應由該載入/儲存單元所輸出的 指示,該指示指示出該載入操作的猜測性結果是不正 嫁地連結到該資料值。 1 6.如申請專利範圍第1項之系統,其中假如該第二定址圖 案不配合包括在該條目中之該第一定址圖案的話,那 麼該記憶體檔案則組裝以配置第二條目,以將識別出 該載入操作之結果以及至少一部份該第二定址圖案的 第二標記儲存。 1 7.如申請專利範圍第1項之系統,其中假如該第二定址圖 案不配合包括在該條目中之該第一定址圖案的話,而 且該第二定址圖案包括超過移位位元的第一數值的 話,那麼該記憶體檔案則配置以禁止第二條目的配 置,以將該第二定址圖案儲存。 1 8.如申請專利範圍第1項之系統,其中該記憶體檔案係配 置以將包括在該條目中的該第一定址圖案與儲存操作 的第三定址圖案相比較,其中假如該第三定址圖案配 合該第一定址圖案的話,該記憶體檔案則配置以將使 用來識別出儲存操作之來源操作元的第二標記代替該 第一標記。 1 9 .如申請專利範圍第1 8項之系統,其中假如該第三定址
92293.ptd 第51頁 1260541 六、申請專利範圍 圖案不配合該第一定址圖案的話,該記憶體檔案則組 裝以配置第二條目,以將該第三定址圖案與該第二標 記儲存。 2 0 .如申請專利範圍第1 9項之系統,其中藉由選擇予以覆 寫之複數個配置條目之最近最少使用的其中一個,而 組構該記憶體彳當案以配置該第二條目。 2 1 .如申請專利範圍第1項之系統,其中該記憶體檔案包括 複數個條目,其中該複數個條目的每一個儲存一定址 圖案與一標記。 2 2 .如申請專利範圍第2 1項之糸統’其中該記憶體稽案係 配置以將該第二定址圖案與包括在複數個條目中的各 定址圖案相比較。 2 3 .如申請專利範圍第1項之系統,其中該記憶體檔案係配 置以反應一指示而使該條目無效,該指示係為由該第 一標記所識別出的資料值與在由第一定址圖案計算出 之位址所儲存的資料值並不相等。 2 4 .如申請專利範圍第2 3項之系統,其中該指示係為第二 操作將修改在該第一定址圖案中所識別之邏輯暫存器 數值的指示。 2 5 . —種資料猜測方法,包含: 將第一操作的第一定址圖案與第二操作的第二定 址圖案相比較,其中該第二操作在程式順序上比該第 一操作還早發生; 假如該第一定址圖案可配合該第二定址圖案的
92293.ptd 第52頁 1260541 六、申請專利範圍 話·則將由該第二操作之操作元之標記所識別出的一 資料值連結到該第一操作的猜測結果; 執行第三操作,該第三操作具有取決於該第一操 作之結果的一操作元來源,其中該執行包含存取由該 標記所識別出的資料值。 2 6 .如申請專利範圍第2 5項之方法,進一步包含假設該第 一定址圖案不配合該第二操作之該第二定址圖案的 話,則儲存該第一定址圖案與使用來識別出記憶體檔 案中之該第一操作結果的第一標記。 2 7 .如申請專利範圍第2 5項之方法,進一步包含假設該第 一定址圖案不配合該第二操作之該第二定址圖案,以 及該第一定址圖案包括多過該第一數目的移位位元的 話,則禁止於記憶體檔案中之該第一定址圖案的儲 存。 2 8 .如申請專利範圍第2 5項之方法,進一步包含將該第一 定址圖案相較於複數個定址圖案,其中該複數個定址 圖案包括該第二定址圖案。 2 9 .如申請專利範圍第2 5項之方法,進一步包含將該標記 發送作為猜測性操作元來源標記,以用於該第三操 作。 3 0 .如申請專利範圍第2 5項之方法,進一步包含將該資料 值發送在一結果匯流排上,並且用於指示出該資料值 係為該第一操作的結果。 3 1 .如申請專利範圍第2 5項之方法,其中該連結包含提供
第53頁 92293.ptd 1260541 六、申請專利範圍 該第一標記,以作為該第一操作的猜測性來源操作元 標記。 3 2 .如申請專利範圍第2 5項之方法,其中該第二定址圖案 係為一部份儲存操作的定址圖案,而且其中該第一操 作係為一載入操作。 3 3 .如申請專利範圍第3 2項之方法,其中該第一定址圖案 包括第一邏輯暫存器識別器。 3 4 .如申請專利範圍第3 3項之方法,其中該第一定址圖案 進一步包括第二邏輯暫存器識別器。 3 5 .如申請專利範圍第3 3項之方法,其中該第一定址圖案 包括比包括在該儲存操作之該定址圖案的全部複數個 移位位元還少。 3 6 .如申請專利範圍第3 3項之方法,其中該第一定址圖案 包括一區段邏輯暫存器識別器。 3 7 .如申請專利範圍第3 6項之方法,進一步包含查驗該第 一操作的猜測結果乃正確地連結到由該標記所識別出 的該資料值。 3 8 .如申請專利範圍第3 7項之方法,進一步包含假如該第 一操作的該猜測結果不正確地連結到由該標記所識別 出之資料值的話,則將複數個操作清除。 3 9 .如申請專利範圍第3 7項之方法,進一步包含指示出該 第一操作的該猜測結果是藉由將載入操作的結果標記 輸出在結果匯流排上而錯誤地與該資料值連結。 4 0 .如申請專利範圍第3 7項之方法,進一步包含存取資料
92293.ptd 第54頁 1260541 六、申請專利範圍 快取以在假設該第一操作的該猜測結果不正確地與該 資料值連結的情形下,檢索該第一操作的正確結果。 4 1 .如申請專利範圍第3 7項之方法,進一步包含將該第三 操作重新發出,以回應該存取。 4 2 .如申請專利範圍第2 5項之方法,進一步包含將該第二 定址圖案相較於儲存操作的第三定址圖案,而且假如 該第三定址圖案配合該第二定址圖案的話,則將使用 來把儲存操作之來源操作元識別出的第二標記替代該 第一標記。 4 3 .如申請專利範圍第2 5項之方法,其中該第二定址圖案 與該標記係儲存於第一記憶體檔案條目裡,該方法進 一步包含因應由該標記所識別出之資料值與儲存於從 該第二定址圖案算出之位址的資料值不相等之指示, 而使該第一記憶體稽案條目無效。 4 4 .如申請專利範圍第4 3項之方法,其中該指示係為第四 操作將修改在該第二定址圖案中予以識別之邏輯暫存 器之數值的指示。 4 5 . —種計算機系統,包含: 一系統記憶體;以及 一微處理器,連接到該系統記憶體,該微處理器 包括: 一記憶體檔案,包括配置以儲存第一定址圖案與 第一標記的一條目,其中該記憶體檔案係配置以將包 括在該條目中的該第一定址圖案與一載入操作的第二
92293.ptd 第55頁 1260541 六、申請專利範圍 定址圖案相比較,其中假如該第二定址圖案配合儲存 於該條目中的該第一定址圖案的話,該記憶體檔案乃 配置以將由該第一標記所識別的資料值連結到該載入 操作的猜測結果,以及 一執行核心,連結到該記憶體檔案,其中該執行 核心係配置以在將取決於該載入操作之第二操作執行 的時候存取該猜測結果。
92293.ptd 第56頁
TW092107696A 2002-04-30 2003-04-04 System and method for linking speculative results of load operations to register values TWI260541B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/135,496 US7028166B2 (en) 2002-04-30 2002-04-30 System and method for linking speculative results of load operations to register values

Publications (2)

Publication Number Publication Date
TW200305821A TW200305821A (en) 2003-11-01
TWI260541B true TWI260541B (en) 2006-08-21

Family

ID=29399219

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092107696A TWI260541B (en) 2002-04-30 2003-04-04 System and method for linking speculative results of load operations to register values

Country Status (8)

Country Link
US (1) US7028166B2 (zh)
EP (1) EP1504340A1 (zh)
JP (2) JP4105684B2 (zh)
KR (1) KR100958705B1 (zh)
CN (1) CN1307538C (zh)
AU (1) AU2002367915A1 (zh)
TW (1) TWI260541B (zh)
WO (1) WO2003093982A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI464598B (zh) * 2011-11-30 2014-12-11 Andes Technology Corp 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028166B2 (en) 2002-04-30 2006-04-11 Advanced Micro Devices, Inc. System and method for linking speculative results of load operations to register values
US7222226B1 (en) 2002-04-30 2007-05-22 Advanced Micro Devices, Inc. System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation
US7089400B1 (en) 2002-08-29 2006-08-08 Advanced Micro Devices, Inc. Data speculation based on stack-relative addressing patterns
US20040123081A1 (en) * 2002-12-20 2004-06-24 Allan Knies Mechanism to increase performance of control speculation
US7024537B2 (en) 2003-01-21 2006-04-04 Advanced Micro Devices, Inc. Data speculation based on addressing patterns identifying dual-purpose register
US7343477B1 (en) * 2003-12-29 2008-03-11 Sun Microsystems, Inc. Efficient read after write bypass
US7555634B1 (en) 2004-04-22 2009-06-30 Sun Microsystems, Inc. Multiple data hazards detection and resolution unit
US7937569B1 (en) * 2004-05-05 2011-05-03 Advanced Micro Devices, Inc. System and method for scheduling operations using speculative data operands
US7263600B2 (en) * 2004-05-05 2007-08-28 Advanced Micro Devices, Inc. System and method for validating a memory file that links speculative results of load operations to register values
US7415597B2 (en) 2004-09-08 2008-08-19 Advanced Micro Devices, Inc. Processor with dependence mechanism to predict whether a load is dependent on older store
US7634641B2 (en) 2005-03-18 2009-12-15 Sun Microsystems, Inc. Method and apparatus for using multiple threads to spectulatively execute instructions
US7571304B2 (en) 2005-03-18 2009-08-04 Sun Microsystems, Inc. Generation of multiple checkpoints in a processor that supports speculative execution
US7624253B2 (en) * 2006-10-25 2009-11-24 Arm Limited Determining register availability for register renaming
US20100070730A1 (en) * 2008-09-17 2010-03-18 Sebastian Pop Minimizing memory access conflicts of process communication channels
US8521992B2 (en) 2009-12-22 2013-08-27 International Business Machines Corporation Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
JP5419761B2 (ja) * 2010-03-12 2014-02-19 アズビル株式会社 デバイス制御装置およびcpu
US8549504B2 (en) * 2010-09-25 2013-10-01 Intel Corporation Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region
US9996348B2 (en) 2012-06-14 2018-06-12 Apple Inc. Zero cycle load
US9679342B2 (en) * 2013-07-12 2017-06-13 Arm Limited Result data stream coding for repeating workloads
US11068271B2 (en) 2014-07-28 2021-07-20 Apple Inc. Zero cycle move using free list counts
US9946651B2 (en) * 2014-12-13 2018-04-17 Via Alliance Semiconductor Co., Ltd Pattern detector for detecting hangs
WO2016092347A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Distributed hang recovery logic
CN105934743B (zh) 2014-12-13 2019-06-04 上海兆芯集成电路有限公司 一种微处理器及在其中检测arb的模式的方法
WO2016092345A1 (en) * 2014-12-13 2016-06-16 Via Alliance Semiconductor Co., Ltd. Logic analyzer for detecting hangs
US10884747B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Prediction of an affiliated register
US10719328B2 (en) 2017-08-18 2020-07-21 International Business Machines Corporation Determining and predicting derived values used in register-indirect branching
US10884745B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Providing a predicted target address to multiple locations based on detecting an affiliated relationship
US10908911B2 (en) 2017-08-18 2021-02-02 International Business Machines Corporation Predicting and storing a predicted target address in a plurality of selected locations
US11150904B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Concurrent prediction of branch addresses and update of register contents
US10534609B2 (en) 2017-08-18 2020-01-14 International Business Machines Corporation Code-specific affiliated register prediction
US11150908B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence
US10884746B2 (en) 2017-08-18 2021-01-05 International Business Machines Corporation Determining and predicting affiliated registers based on dynamic runtime control flow analysis
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US11061575B2 (en) 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10620961B2 (en) * 2018-03-30 2020-04-14 Intel Corporation Apparatus and method for speculative conditional move operation
US11200062B2 (en) 2019-08-26 2021-12-14 Apple Inc. History file for previous register mapping storage and last reference indication
US11416254B2 (en) 2019-12-05 2022-08-16 Apple Inc. Zero cycle load bypass in a decode group

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61294550A (ja) * 1985-06-21 1986-12-25 Nec Corp 電子計算機におけるデ−タ読取書込制御方式
JPH03154947A (ja) * 1989-11-13 1991-07-02 Nec Corp 情報処理装置
US5778219A (en) * 1990-12-14 1998-07-07 Hewlett-Packard Company Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations
US5428807A (en) * 1993-06-17 1995-06-27 Digital Equipment Corporation Method and apparatus for propagating exception conditions of a computer system
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5452426A (en) * 1994-01-04 1995-09-19 Intel Corporation Coordinating speculative and committed state register source data and immediate source data in a processor
US6237082B1 (en) * 1995-01-25 2001-05-22 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received
US5892936A (en) * 1995-10-30 1999-04-06 Advanced Micro Devices, Inc. Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register
US6108769A (en) * 1996-05-17 2000-08-22 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US5781752A (en) * 1996-12-26 1998-07-14 Wisconsin Alumni Research Foundation Table based data speculation circuit for parallel processing computer
US6021485A (en) * 1997-04-10 2000-02-01 International Business Machines Corporation Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching
US5845103A (en) * 1997-06-13 1998-12-01 Wisconsin Alumni Research Foundation Computer with dynamic instruction reuse
US6065103A (en) * 1997-12-16 2000-05-16 Advanced Micro Devices, Inc. Speculative store buffer
US6044430A (en) * 1997-12-17 2000-03-28 Advanced Micro Devices Inc. Real time interrupt handling for superscalar processors
US6112296A (en) * 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Floating point stack manipulation using a register map and speculative top of stack values
US6175910B1 (en) * 1997-12-19 2001-01-16 International Business Machines Corportion Speculative instructions exection in VLIW processors
JPH11212788A (ja) * 1998-01-28 1999-08-06 Toshiba Corp プロセッサのデータ供給装置
US6202204B1 (en) * 1998-03-11 2001-03-13 Intel Corporation Comprehensive redundant load elimination for architectures supporting control and data speculation
US6108770A (en) * 1998-06-24 2000-08-22 Digital Equipment Corporation Method and apparatus for predicting memory dependence using store sets
US6463580B1 (en) * 1998-11-18 2002-10-08 Intel Corporation Parallel processing utilizing highly correlated data values
US6349382B1 (en) * 1999-03-05 2002-02-19 International Business Machines Corporation System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
US6658554B1 (en) * 1999-03-09 2003-12-02 Wisconsin Alumni Res Found Electronic processor providing direct data transfer between linked data consuming instructions
US6266744B1 (en) * 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
US6438673B1 (en) * 1999-12-30 2002-08-20 Intel Corporation Correlated address prediction
US6643767B1 (en) * 2000-01-27 2003-11-04 Kabushiki Kaisha Toshiba Instruction scheduling system of a processor
DE10121792C2 (de) * 2000-05-26 2003-09-25 Ibm Universelle Ladeadresse/Wertevorhersageschema
US7028166B2 (en) 2002-04-30 2006-04-11 Advanced Micro Devices, Inc. System and method for linking speculative results of load operations to register values
JP4222280B2 (ja) * 2004-09-16 2009-02-12 ヤマハ株式会社 演奏情報出力装置及び楽器及び演奏情報を出力するための方法及び該方法をコンピュータで実行するためのプログラム。

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI464598B (zh) * 2011-11-30 2014-12-11 Andes Technology Corp 預設為猜測式資料交易的匯流排裝置及其非猜測的延伸

Also Published As

Publication number Publication date
AU2002367915A8 (en) 2003-11-17
JP4105684B2 (ja) 2008-06-25
WO2003093982A8 (en) 2004-05-13
WO2003093982A1 (en) 2003-11-13
TW200305821A (en) 2003-11-01
KR20050013544A (ko) 2005-02-04
US7028166B2 (en) 2006-04-11
CN1625733A (zh) 2005-06-08
CN1307538C (zh) 2007-03-28
JP2008033955A (ja) 2008-02-14
KR100958705B1 (ko) 2010-05-18
EP1504340A1 (en) 2005-02-09
AU2002367915A1 (en) 2003-11-17
US20040177236A1 (en) 2004-09-09
JP2005532613A (ja) 2005-10-27

Similar Documents

Publication Publication Date Title
TWI260541B (en) System and method for linking speculative results of load operations to register values
KR100981168B1 (ko) 데이터-추론-실행을 지원하는 마이크로프로세서에서 사용을위한 스케쥴러
KR101192814B1 (ko) 로드가 선행하는 스토어에 의존적인지를 예측하는 의존성 매커니즘을 구비한 프로세서
JP3866261B2 (ja) ロード/ストア操作をバイパスするために投機的ソースオペランドを使用するシステムおよび方法
US7263600B2 (en) System and method for validating a memory file that links speculative results of load operations to register values
US7213126B1 (en) Method and processor including logic for storing traces within a trace cache
US7165167B2 (en) Load store unit with replay mechanism
KR101056820B1 (ko) 연산들의 인-플라이트 인스턴스들이 데이터-추론마이크로프로세서 내에서 연산 재실행을 중단하는 것을방지하기 위한 시스템 및 방법
US7321964B2 (en) Store-to-load forwarding buffer using indexed lookup
US7266673B2 (en) Speculation pointers to identify data-speculative operations in microprocessor
US7222226B1 (en) System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation
US7937569B1 (en) System and method for scheduling operations using speculative data operands

Legal Events

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