TW320708B - - Google Patents

Download PDF

Info

Publication number
TW320708B
TW320708B TW086103615A TW86103615A TW320708B TW 320708 B TW320708 B TW 320708B TW 086103615 A TW086103615 A TW 086103615A TW 86103615 A TW86103615 A TW 86103615A TW 320708 B TW320708 B TW 320708B
Authority
TW
Taiwan
Prior art keywords
packet data
floating
point
instruction
register
Prior art date
Application number
TW086103615A
Other languages
English (en)
Inventor
Mittal Millind
Eitan Benny
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW320708B publication Critical patent/TW320708B/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • General Preparation And Processing Of Foods (AREA)

Description

3^〇7〇g
五、發明説明( 發明背景 發明領域 本發明係有關電腦系、統。尤其是與利用處理器去執行浮 點和套裝資料指令集的電腦系統有關 背景資料 在典型的電腦系統中,單一或多個處理器運算係由多 4元(如1 6,3 2,6 4等)所組成之資料値及與程式指令 相對應的結果’例如執行—加法指令係將第—資料値和第 二資料値相加,然後儲存成第三個資料値,然而多媒體應 用(此應用限定在電腦支援(csc :電傳會議整合與混合的 :體資料處理),2D/3D圖型,影像處理,視訊壓縮及解 壓縮’演繹認知和聲訊操作)需要一大堆,通常較小位元所 組成之資料作處理’例如’多媒體資料典型代表是“位 疋,但是只有少數位元含有重要的資訊。 爲了改進多媒趙應用效率(與其它有相同特性之應用),習 知的人工處理器提供封包資料格式。在封包資料中,即是 代表單—値的位元組分散成—些固定大小的資料元件,ς 個資料元件代表獨立的値,例如資料在64位元暫存器可被 分散成兩個32位元元件’每個32位位元件各代表一 立的3 2位元値。 \)/ Ns 6 /fv 準 標 家 國 國 中 用 適 度 尺 張 紙 本 經濟部中央標準局貝工消費合作社印製 惠普的基本32位元組合器將前述處理方式配置在多媒 資料型態中’也就是説,處理器利用32位元基本方式的 數暫存器並列處理64位元資料型態,這簡單處理方式最 要的缺點是嚴格限制可利用的暫存器空間,此外,運用
請 先 閲 背 之 注
I 旁 裝 訂 線 32G708 A7 B7 五、發明説明(2 經濟部中央標準局員工消費合作社印裝 媒體資料的執行能力’就某種意義而言’由於需要擴展現 有的結構,因此不被認爲是項優點。 Motorola® 881 10TM處理器採用相似的方式組合整數對 偶暫存器,兩組32位元暫存器涉及指定暫存器包含用於單 一運算或指令之特定暫存器的串列隨機組合。再次得知, 使用成對暫存器配置的64位元多媒體資料型式的主要提供 優點爲僅有一有限制數量的對偶暫存器可用,簡短的増加 暫存器空間的結構及成爲媒體資料型式的另一種技術。 處理器中一種有大量的軟體和硬體空間者即是英代爾處 理器家族之一,包括加州Saata(lora英代爾公司製造的 Pentium級處理器圖一表示標準電腦系統pentiuin 1〇〇, 其爲目前正在使用中的系統,Pentium處理器之更進—步 的説明請參閲Pentium處理器的操作手册—第3卷:結構 及程式手册,1 994年,英代爾公司出版。標準電腦系統 100包括一個處理器105 ’一個儲存裝置n〇,及一個匯 成排1 1 5,處理器1 〇 5經由匯流排1 1 5結合到儲存裝置。 此外,夕個使用者輸入/輸出裝置,例如鍵盤12〇及顯示 器1 2 5也與至匯流排i〖5結合,網路J 3 〇與匯流排1 i 5結 合’處理器105代表Pentium級處理器,儲存裝置11〇代 表一種或多種機型儲存資料’舉例來説,儲存裝置11〇可 能包含唯讀記憶體(ROM),隨機存取記憶體(RAM),磁帶 儲存裝置,光學式儲存裝置,快閃記憶裝置或者其它可讀 式機械裝置,匯流排115代表一種或多種匯流排(pCI , ISA,X-Bus,EISA,VESA匯流排等)及橋接器(也被 請 先 閲 讀 背 ιέ 之 注 意 事 項 再 I 本 頁 裝 訂 線 -5- 尽紙張尺度適用中囷國家標準(CNS ) Α4規格(210Χ297公釐) 3<;G7〇s 發明説明( 經濟部中央標準局貝工消費合作社印裝 稱作匯流排控制器)。 圖1説明儲存運算系統丨3 2的裝置1〗〇,以在處理器 —上加以執行’當然儲存裝置11〇最好含其他軟體(並未 顯不於圖中),圖1另外舉例説明處理器1〇5,其包含一個 浮點運算單元135及-個浮點運算狀態暫存器155(在此使 用記號,,FP ”此表”浮點,,)當然處理器1()5包含其它電 路,在本發明中無需加以説明。 此浮點運算單元135用於像存浮點資料,且包含一組浮 點運算暫存器(也稱作浮點暫存樓)145,— 〇, 和-個浮點狀態暫存器155,此浮點暫存器145包含8個 暫^器’標示爲RG至R7(此記號Ru使用在這裡表示浮 點暫存器的實質位置),8個暫存器中 位元長度和包含-個訊號欄位(位元79)及—個指數$ 元64至78)及一個殘値欄位(位元〇到63)。浮點單元η 利用浮點暫存器⑷作爲堆換句話説,浮%單元丨 包含一個㈣參考暫存棺,當—套暫存器運算作爲堆疊 ,算凡實行時參考堆疊的頂端而非暫存器的實質位址,在 這套浮點暫存器145(記號STn在文中係有關浮點暫存器的 位址或是堆叠的頂端)浮點狀態暫存器155包含—個頂端的 堆疊欄位160 ,用來識別那個暫存器在浮點暫存器! μ 中’現正位料點料的頂端,在圖1端㈣指示識別— 個暫存器165在實質位址R4作爲堆叠頂端。 標籤組U0包括8個標籤且儲存在單一暫存器中, 標籤對應一種不同的浮點暫存器和包含2個位元,正如圖工 請 先 閱 面 之 注 意 事 項 再 素裝 頁 訂 5 3 5 線 • 6 · 3^〇7q8 五、發明説明(4 所示,標籤170對應暫存器 赴私士抵—士 個標藏識別與現在浮 器内谷有關的資訊,其中標籤的對應關…〇2 =有 效m; 10=特殊訊息;11 =空訊息,這 二於浮點單元135以便區分空的和非空的暫存器㈣,、因 此,這些標籤可被認爲是識別兩種情形,空的暫存 11 ’非空的暫存器位址代表爲。。,〇】或心任 這些標籤也可使用爲處理事件,一自,,事件”是一個命 腦系統可能反應的任何動作或事件,包括硬體 ς :斷’除了錯誤、陷井、放棄、機械檢查、輔助和除錯^ 2,於收到-個事件,處理器的事件管理構造使處理器中 斷現在練執行’並儲存中斷流程的執行環境(也就是 恢復中斷流程執行所需的資訊)。且召唤適當的事件管 理此事件’在處理後,事件管理器呼叫處理器恢復先前中 斷泥程所儲存的執行環境,執行事件管理器的程式設計師 可利用這些標籤去檢查不同浮點暫存器的内容以達到更 事件處理。 先前每種標籤已應用2位元加以説明,另—實施例中, 經濟部中央標準局貝工消費合作社印製 ,個標籤有僅能儲存一位元,每一種一個位元的標籤識別 是空或非空,在此實施例中,此—位元的標籤可製作成: 當標籤値需要時,其可藉著決定兩適當位元標籤値以顯示 給使用者。
狀態暫存器140包含一個ΕΜ欄位175和—個TS棚位 ISO,分別地儲存一個EM指標和—個TS指標。如果EM 本紙張纽適用中ugj家標準(CNS)八4驗(21GX297公趁
請 先 閲 背 ir 意 事 項 再 % 本 頁 ?標疋1或是TS指標是J,處理器硬體經由產生一,,裝置 無效”之異議’執行浮點指令而產生—陷井(trap),根據 =體的ff例EM和TS指標是分別地使用於模擬浮點指令且 提供多工功能論如何,這些指標的使用純粹是軟禮的 傳統,因此,此兩者指標可能被使用於任何目的,例如, EM指標可能被使用提供多工。 匕根據上述軟體傳統’ EM欄位175用於儲存—浮點模擬 心丁(EM彳a彳* )識別是否浮點單元應該於軟體中加以模擬, 果眞的有必要,當—個系統啓動時決定是否需要一個浮 點=元提和改變E Μ指標,基本上執行_連串指令或單 扣:(如CPUID)。目此,改變ΕΜ指標以指示應該被模 的浮點單疋,當處理器不包含—個浮點單元時,在一配 訂 置中,當模擬浮點單元時,ΕΜ指標等於!,不同的配置 可能使用其它的値。 經濟部中央樣準局貝工消費合作社印裝 經由使用作業.系統,處理器可多工處理許多流程(在此中 參照工作群)使用共同操作多工技術,分片多工等等,因爲 :理器-次僅能執行-個工作’處理器必須分開它的處理 •間在不同的工作和不同工作中切換,當處理器從—個工 作跳到另-工作時,—個工作切換(也被稱作”内容切換” 或一個”處理切換”)認爲已發生,爲了實行工作切換處理 器及須停止一個工作執行和恢復執行或開始執行另一工 作’有-些暫存器(包括浮點暫存器)它們的 到重新恢復執行在工作和工作切換中,這些暫存器的内容 在任何時間裡,工作的執行被參照作爲工作的暫存狀態,
本紙張尺度適用中國國家標準(CNS ) Α4規格(2丨〇χ297公釐) A7 B7 五 内 皆 、發明説明(6 當處理數個多工流程,一個工作的暫存狀態被保留下來, 在其i泥程執行中儲存暫存狀態於—個資料結構(參照工作 的内容結構”)也就是包含在處理器外在的記憶體中,當 ~工作重新恢復執行時,工作暫存狀態即被恢復(也就是重 新載回處理器)使用工作的内容結構。 使用不同的技術可保存和恢復工作暫存狀態,例如,— 個作業系統儲存先前全部的工作暫存器狀態及重新載入下 了次全部的暫存器狀態於每一個工作切換中,然而,因爲 匕疋分時去儲存和重新載入全部的暫存器狀態,只要當在 工作切換時避免儲存和重新載入任何非必要的位址,如果 —個工作並不使用浮點單元,它就不必要儲存和重新載入 浮點暫存器的内容,如部份工作的暫存器狀態,爲達到此 目的,T S指標在歷史上已被使用於作業系統,根據先前 软體傳統的敘述爲避免儲存和重新載入浮點暫存器内容於 工作切換中(一般參照”部份的内容切換”或,,如需求的 容切換** )。使用TS指標提供部份的内容切換已是眾所 知者’然而爲了達成本發明的目的,當TS指示器指示一部 份的内容切換時,試圖執行浮點指令(也就是浮點單元是 非可用的”或’’無能力的”)結果造成一個”裝置無效” 的異常情況,爲了反應這異常情況,事件執行程式,決定 是否現在這工作擁有該浮點單元(是否被儲存的資料在浮點 單元中屬於目前的工作或是先前執行的工作),如果現在的 工作非擁有者事件執行程式使處理器儲存浮點暫存器内容 到先前工作的背景結構,重新恢復現在工作的浮點狀態(如 丨丨,---:-----^------'玎------^ (請先閱讀背面之注意事項再一本頁) 一 經濟部中央橾準局員工消費合作社印製
表紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐 3^〇7〇8
五、發明説明( 輕濟部中夹榡準局員工消費合作社印製 果有效的話)且識別現在工作的擁有者❶然而如果現在工作 擁有該浮點單元,則現在工作使用浮點單元的最後一工作 (見在工作的暫存器狀態,浮點的部份已被儲存在浮點單元) 且不需對浮點單元採取任何動作,且Ts將;^定,如沒有 ,常發生,執行程式的同時也使這處理器改變丁3指標指步 浮點單元是目前工作所有(也稱作有用的或致能的)。 在事件執行程式冗成後,藉著重新啓動浮點指令重新恢 ,目前工作,此指令導致此裝置無效的異常事件,既然ts 扣標變更,指示這浮點單元是現在可用,執行跟隨的浮點 指令將不會造成附加的裝置不會作用的異常事件,而且在 下:次部份内容切換中,TS指標變更以指示可執行一部份 7容切換,因此,如果試圏去執行另外的浮點指令,另外 無效的裝置將產生,且事件執行程式將再度執行,使用這 方法,这TS指標允許作業系統延遲和儘可能避免存取和載 入浮點暫存檔,經由如此做,工作切換使用支出減少,經 由減少必須存取和載入暫存器的數量。 當一個作業系統被敘述浮點狀態不是被儲存或被載入當 工作切換時,其餘配置可以任何其它技術,舉例來説,如 同前面所述一個作業系統可能被完成在每一次工作切換時 儲存和恢復這全部暫存器狀態。 除了在不同時間,處理器的浮點狀態可以儲存起來(也就 是在内容切換之間,反應到一個裝置非立即可得的事件 等),也有不同的技術儲存浮點狀態,例如,可提供一作業 系統以儲存完整的浮點狀態(在此中參照”簡單工作切 請 先 閲 讀 背 之 注 意 事 項 再_ 旁 裝 訂 -10- 本纸張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) A7
換)’可視需要提供一作業系統以儲存唯有符合標鐵f _、 非空狀態浮點暫存器的内容(在此參照《最小工^不 換”),如此做作業系統僅儲存那些包含有用資科浮點暫存 器的内容’經由此一操作,經由減少必須被儲存暫存器 數量,過多浮點狀態儲存可減少,。 的 圖2是一個流圖的舉例説明,一個指令的執行利
Pentium處理器’這流圖開始在步驟2〇〇,流程進入 205。 步驟 如步驟205所示,存取一组位元作爲指令且進行步驟 2 1 0 ,這组位元包括一個運算碼用來識別指令的操作執 行。 在步驟210中,決定是否此運算碼是否有效,如果這運 算碼無效,則流程進入步驟21 5 ’否則流程進入 220。 % 如步驟215所示,產生一無效的運算碼,配置事件執行 程式,以使得處理器顯示訊息,放棄現在執行的工作,且 執行其它的工作,當然在實施例中可能以任何其它的方 提供這事件執行程式》 "" 在步驟220中,決定是否這指令是浮點指令,如果這指 令不是浮點指令,則流程進入步驟225 ,否則流程進入^ 驟 23 0。 如步驟225所示,處理器執行這指令,由於這步驟並不 需要叙述本發明,在此就不另外説明。 如步驟230所示,決定是否EM指標等於2(根據軟體傳 3^〇7〇β ---- __ 五、發明説明(9
統敘述,如果這浮點單元應該被模擬)且是TS指標於 1(根據軟體傳統敘述’如果執行部份内容切換),如果EM :標广指標等於1則流程進入步驟…’否則處理流程 進入步驟240。 良ΪΓ:!35中’產生"裝置不能使用’,的異常情況,且 成 ’、這事件,執行對應的事件執行程式,可配置這對 應事件執行程式,選擇EM和TS指標,如果腹指標等於 則藉著模擬浮點單元和重新恢復執行下次的指令,可提 程式以引導處理器執行指令(這指令合邏輯地跟 ’ 25〇中接收的指令如果TS指標等於1,則可 牛广/程式以達到先前敍述的功能,藉此參考部份 能合(看了#存浮點單元的内容和重新載人正確浮點狀 心,B果必需的話)和引導處理器去重新恢復。 著重新啓動在步驟205中接收的指令,當然,在 實施例中可以任何方式提供事件執行程式。 某:數値錯#發生在執行浮點指令中,那保留該錯 等待嘗試執行下一個浮點指令,可中斷這指令以處理 疋的序點數値錯誤。如㈣240所示,其中決定是否有 任何這種未定的錯誤,如果有則處理流程進人㈣245, 否則處理流程進入步驟2 5 〇。 =驟245中’發生一未定的浮點錯誤事件,爲反應這 件’處理器決定是否將這浮點錯誤加以蓋住,如果是,這 ㈣W試内部處理這事件使用微碼’且浮點指令則進行 微重新啓動”,這期間微重新啓動參照事件處理的技術 本纸張用㈣家標準(2數29?1¥ -12. 3^〇7Qs 經濟部中央標準局貝工消費合作社印製
A7 B7 3^G7〇s 五、發明説明(11) 儲存區中的數據。第—電路與多個標籤耦合,其只設定多 個標籤爲一空狀態,以回應接收到第—指令。第_指令指 示在儲存於第一儲存區中的封包數據上操作的指令之耦^ 已終止。該裝置更包含一第二電路,此第二電路耦合多: 標籤,設定多個標籤爲非空狀態,以回應接收到一第二指 令。第二指令指定一項在封包數據上的操作,該數據儲存 在第一儲存區中。第二電路更設定多個標籤以指示在封包 數據上操作的指令之耦合。此裝置的優點爲提供—架構(如 用於一微處理器的微架構),以在封包數據指令的耦合方塊 結束時,清除封包數據狀態,以在清除狀態下保留浮點狀 態以備用於下一項操作(如執行浮點指令的方塊)。 該裝置更包含另一.電路,此電路用於清除頂端堆疊指 標,以回應接收到第—及第二指令。 在配置的實施例中,該第一儲存區包含一假數(mantissa) 部位,及一對應的指數部位,且該封包數據在該第一儲存 區的假數部份中予以包封住。該第一電路更包含一電路, 當執行儲存在該第一儲存區中的封包資料操作時,用於設 定該對應的指數部位爲一預設値。 該多個標籤中的各標籤包含兩位元。只設定標籤爲空狀 態的操作包含設定該兩位元成爲一設定狀態。只設定標籤 爲非空狀態的操作包含設定該兩位元成爲另一設定狀態。 圖形簡述 參照下列説明及附圖,將可更進一步瞭解本發明β 圖1顯示一組圖表説明—模範電腦系統,其使用 •14. 表紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 請 .4 聞 讀 背 意 事 項 再 寫松 本衣 頁 訂 線 經濟部中央標準局貝工消費合作社印製
經濟部中央搮準扃貝工消費合作社印装
Pentium處理器; 圖2爲一流程圖説用Pentium處理器執行指令; 圖3 A之功能圖説明本發明封包資料狀態及浮點狀態之誤 判; 圖3B和3C舉例説明關於邏輯浮點暫存器之自然浮點與 封包資料暫存器之封映; 圖3 D説明包括封包資料及浮點指令集之執行流程; 圖4 A是一流程圖説明一執行浮點及封包資料指令集之方 法就某種意義而言,此方法能與現行軟體共存,非不同作 業系統技術所能見’且根據本發明之實施例方法能提升更 有效率之程式技術; 圖4B之一流程圖説明圖4A未提及其他方法; 圖5顯示一組圖根據本發明之一實施例説明一模範電腦 系統; 圖6A是一組圖根據本發明之一實施例,説明一個在浮點 狀態使用二種自然暫存檔之封包資料暫存狀態之裝置; 圖6B是一組圖根據本發明之一實施例説明有關於圖 之一份浮點集參考檔之擴展現; 圖7A爲一流程圖説明—方法,與本發明之一實施例一 致,在一套化石爲一套浮點暫存器之暫存器執行封包資料 指令集就某種意義而言此方法與現行敕體共存,非不同運 用系統技術所能見,且此方法能提升良好之程式練習,且 或許可用圖6A之硬體排列做練習; 圖7B之流程圖説明部份圖7A所提到之另一方法; 請先閱讀背面之注意事項再^¾本頁) .裝·
,1T 線
本纸張纽制t賴家標準(L'NS ) A4規格(2ι〇χ297公楚j 3^〇7〇8 A7
經濟部中央標準局員工消費合作社印裝 圖7C之流程圖説明部份圖7A及圖7B未提及之方法, 圖8是-流程圖根據本發明之—實施例説明一自圖7(:執 行第734步驟之方法; 圖9之流程圖根據本發明夕—睿u „ 實施例説明一自圖7Β執行 第728步驟之方法; 圖10之圖組係根據本發明之一實施例,彡過一在浮點狀 態使用-單-暫存檔化名封包資料狀態之裝置説明一資料 流程; 圖UA説明方法之-部份,根據其它發明實施例,用以 執行封包資料和浮點指令集,—單_化名暫存檔就某些方 面來説是和現存之軟體相容,此爲不同作業系統技術所盔 法見得到的’此技術提供良好的程式例,且可能藉由圖ι〇 硬體之配置實現; 圖11Β之流程圖説明部份圖11Α所提及之另一方法; 圖1 1C之流裎圖説明圖i ! a及】]R 士 、、 ’ ® 八夂11B疋—邵份以説明另 —方法; 圖12A根據發明的實施例説明浮點儲存格式,本 考到圖10所述; 夺 圖12B説明封包資料儲存格式根據本發明的實施例參 圖10所述; 圖12C説明根據本發明的實施例整數資料儲存格式,參 考圖10所述根據本發明的實施例; 圖13説明來自圖11B執行步驟U38—方法,當參考 12A ’ 12B和12C中叙述的儲存格式; I---------I-- ** (請先閲讀背面之注意事項再1,..^本頁}
、1T 線· -16- 五、 發明説明(14 圖14依據本發明之實施 除標籤; “,妹討騎,以爲清 圖15A説明包括封包資料和浮點指令集之 中分開的實質暫存器嫂Bi „ \ Μ程,其 存器擒的時間分隔期間可被更新;以π 圖15Β説明另外一個包含封包資料和 及 現程,其中分開的實質暫存 617集的執行 辦·’ χ冑臀存器構的時間分隔期間可被更 發明之詳細説明 明在:列Γ明中會列舉許多詳細説明,以便於了解本發 β不使用謂細説明而加以實現爲方便起見,在其 子中如電路板便不再此詳述。 ' 根據本發明之-實施例’敘述—種方法及裝置作爲執行 、同組夂指令集,使處理器可執行不同資料形態之運算, 訂 線 經濟部中夬榡準局員工消費合作社印製 亦:此運算在不同的作業系統技術無法能見,其提供良好 的私式例,且非現存軟體所能見。使處理器執行不同數據 形態操作的不同組之指令集爲處理器所執行,而在至少合 邏輯性的軟體上成爲一個單一化名的暫存檔。資料型態運 算是執行不同組指令集的結果,它可能是任何一種型態, 例如一組指令可使處理器執行實數運算(浮點或整數),如 另一例子所示,一套指令可使處理器執行浮點運算(實數和 整數),而另一套指令可使處理器執行整數運算(實數和封 包),再舉另一例子,單一化名的暫存檔可能被運算成一堆 叠參考暫存檔和作爲一個平板型暫存檔,此外,此項應用 説明一個方法和裝置作爲執行不同組指令集用各別的實質 -17·
--*-—J 本紙張尺度適用中國國家標準(CNS ) Μ規格UiOX297公釐) 3咐〇8 A7 --*------___ _____B7_ 五、發明説明(151 ~ - 暫存檔合理的顯示在軟體上作爲一個單—化名記錄檔。此 應用説明一方法及裝置以使用單一實質暫存檔執行這些不 同的指令集。 爲求更明白本發明,本發明之説明可參考的浮點指令 集,和封包資料指令集(浮點或整數)之執行,總之,應之 可執行任何不同資料型態運算數値,且本發明沒有限制 點和封包資料之運算。 圖3A之一功能圖説明這封包資料狀態化名和浮點狀態, 根據本發明之實施例,圖3A説明一個浮點暫存器3〇〇作 爲儲存浮點資料(在此參考浮點狀態)和一組封包暫存器 310 ’作爲儲存封包資料(在此參考封包資料狀態),這 PDn記號在此用於參考封包暫存器之實質位址,圖也 説明封包資料狀態被化名爲浮點狀態。也就是説,浮點指 令集和封包資料指♦集至少顯示予纟相同組的冑輯暫^ 上執行的軟體。有一些技術可提供此化名方法,包括在一 個單一實質暫存檔中使用多重分離的實質暫存檔,關於這 些技術的範例稍後會介紹,請參照圖4 - 1 3。 經濟部中央標準局貝工消費合作社印製 如前所述,提供現存作業系統使處理器儲存多工的浮點 狀態結果,因爲封包資料狀態被化名成浮點狀態,這些相 同的作業系統將使處理器儲存任何由浮點狀態化名成二封 包資料狀態。結果這些發明亦不需要舊有的作業系统工作 切換慣例(當然此工作切換慣例可能被提供作爲一個或多個 事件執行程式)或事件執行程式可能被修正成新的作業系統 事件執行程式可能被記下來,因此,一個新的或修正過 -18- 五、發明説明(16) 作業系統並不需要&計成可料封包資科狀賤。 多工時,如此,並不需花蛰女 田此系耗 業系統’此外,在-個實施例中,任何_個 =作 指令集所產生事件,爲内部處 包資科 ^ ^ 1恩理4所處理或映射到符人从 業系統事件執行程式能處理的事莊 0作 & -t 千'· α果封包資料指令售 爲一種未曾見過的作業系統所執行。 集 圖Μ也説明-組浮點料32Q和_套封包資料 ,洋點標鉞320的操作模式與圖i標籤15〇相似 -標籤包含2個位元,&2個位元指示是否符合浮^ 器的内容爲空的或非空的(也就是有效的,特別的或^存 封包資料㈣330對應封包資料暫存器31Q和被化名 點標籤32。,每-個標籤可自己置成2個位元,在不同的實 施例中,對於每一個標籤僅能儲存—個位元。每一個—棱 元標籤識別是空的或非空的。在此實施例下,當標籤値需 要時,可產生一位元標籤以顯示包含2個位元的軟體藉著 決定適當2個位元標籤値。作業系統執行最小工作切換儲 存那些僅符合標籤指示非空的狀態暫存器的内容,因爲這 些標籤是化名的,這種作業系統將儲存任何必需的封包資 料和浮點狀態《對比之下,那些提供簡單工作切換之作業 經濟部中央標準局員工消費合作社印製 系統將儲存完整邏輯化名暫存檔的内容,而不計標籤的狀 態。 在一實施例中,浮點暫存器3 00用類似浮點暫存器 1 4 5 (圖1)之方法運算,因此,圖3 a額外地説明浮點狀態 暫存器340包含一個頂端的堆疊區350 ,此頂端堆疊區 -19- 本紙張尺度適用中國國家標準(CNS )八4^格(210X297公釐) 3^G7〇s 五 、發明説明(17 經濟部中央橾準局貝工消費合作社印裝 =:2,存當一:算頂端堆叠指示(tos)作爲識別暫存器 行此運算參考到頂端暫:堆昼,則執 ,, 声登臀存器相對於暫存器的實質狞 的暫存二^下’運算封包資科暫存器310以作爲-個固定 也稱作-個直接存取暫存樓),因此,此封= 定使用暫存器的實質位址,封包資料暫存器 L :並映=:::…實質位址,且當二 短::: 變,結果至少在軟體顯示-個單1 絕對的子暫田=且可被運算作爲—個堆疊參考暫存樓或—個 ,3Β # 3C説明了化名的浮點暫存器⑽和浮點 籤33;映對其各參照到封包資料暫存器川和封包資料^ :二,如圖3Α所示者,由上述討論,在浮點環境中 ^ 了:L器η指定與T〇S指標所識別之浮點對應的暫存 :::例説明於圖33及3。中。每—個圖 “ =見的程式設計之浮點暫存器(堆叠)和合邏料可2 程式故计(封包資料暫存器之間的關係。如顯示圓 =上内部圓圈36G代表浮點/堆#資料暫存器,和標藏^ ^圓圈代表料浮點暫存器,爲頂端㈣指㈣3 參考’如圖3B所示端堆#指標37M旨出 ^ 資料暫存器。,因此在邏輯浮點暫存器和實質 封包資料暫存器之間有-對應性,如圖所示,㈣^ 指標W0藉著推出或放人的浮點指令而被修正,因此= 的堆叠指標370被改變,在圖中所示爲頂端麵指標以= 裝 耳 訂 線
s<^〇7qs 五、發明説明(18 經濟部中央梯準局貝工消費合作社印製 向轉動的推出動作,而浮動的放入動作導致頂端 堆疊指標以順時針方向轉動。 崎 在圖3C之範例中,邏輯浮點暫存器std和實質暫存 〇並不對等,因此’在圖3C之例子所示,此頂端堆疊 370指㈣質浮點/封包資料暫存器2,有對應到邏輯浮 點暫存器STD ’所有其它的邏輯浮點暫存器則參照t〇s 3 7 0存取,已説明—實施例,其 X例弄肀在人何万式中符點暫存 芬乂堆疊万式和封包資料暫存器以固定的暫存檔來運算 者之-方均可提供這些暫存器,此外,有一實施例中, 考浮點和封包料運算,可了解料這種技術可被使用 化名任何固定暫存檔成任何堆疊參考暫存檔,而與在 執行的運算類型無關。 ' 堆疊資料狀態可在任何部份或全部的浮點狀熊下化名, 在-實施財,封包資料狀態被化名成浮點狀況的殘植 區,更進-步,這種化名可以是全部或是部份,全部化名 万式被使用的實施例是暫存器的全部内部被化名,部份化 名方式早在圖6A已有説明。 圖3D之方塊圖據本發明之實施例之一説明浮點的執行和 封包資料指令時間,如圖3D所示,按年代次序執行,第— 组浮點指令集38G -組封包資料指令集3 82和第2組浮點 指令集3 84,這組封包資科指令集m之執行於時間η 開始而在時間Τ2時結束,而浮點指令執行開始在時間 Τ3,其它的指令集在封包資料指令集3 82和第2組 令集384之間執行,也可不執行。第_個區間3 86標記^ 兩參 以 上
本紙張尺度ϊδ财關家辟(CNS ) A4m$- ( 210^297^^ ) I:—^------1—— (請先閲讀背面之注意事項再P寫本頁) 訂 線---M, 經 部 中 央 標 準 局 員 X 消 f 合 作 社 印 製 五、發明説明(19)之間的時間,第2個區間3 88標記了2和丁3之間的 時間。 德和封包資料狀態以一種化名的暫存標儲存, 二 丁 2組浮點指令集3 84之前就應該被更改成爲 籤。否則,被產生堆疊溢出的異常事件’因此在某 些時候在第-、個區間3“、標籤被改變成爲空標籤,這些 可用不同的方法元成,例如一個實施例可由下法之—完 成:^第一封包資料指令集382改變標籤爲空狀態;2)每 一個封包資料指令集3 82之執行改變標鐵爲空狀態· 3)上 述改變標籤成空狀態方式試圖去執行第一個浮點指令,此 執仃會修正化名暫存播等。這些實施例中使得作業系統無 視於保4在現支援簡單最小文脈切換之作業系統(儲存和重 新載入全部的暫存狀態,在每一個工作切換中)因爲封包資 料狀態,將隨著其它的暫存器狀態,被儲存和重新載入。 〜在其它實施例中,爲了保留支援簡單或最小文脈切換相 容的作業系、统封包資料指令集3 82之執行造成第一個區間 386中的標籤改變成空狀態,除非在時間τ2之後和時間 Τ3之前執行一組代表方塊3 9〇中之轉移指令集(τ3爲第2 組浮點指令集384開始之時間),例如假設封包資料指令集 3 82屬於工作Α,同時也假設工作Α被一個先前執行轉移 指令集390的全工作切換(亦即非部份的工作切換)所中 斷,因爲其爲一全工作切換,所以此工作切換執行程式將 包含浮點指令集(圖示中第2組浮點指令集384,且參照此 範例做爲FP工作切換慣例)以儲存浮點/封包資料狀熊。 裝 訂 線 -22- 本紙張尺度適用令國國家標準(〇阳)八4規格(210><297公釐) ~----- Α7 B7 五、發明説明(20) 經濟部中央標準局員工消費合作社印製 因爲轉移指令集390未執行,處理器在某些先前執行”工 作切換慣财將改«籤成爲非 切換慣例’不管是最小或簡單,將料全部化名的暫存構 的内容(在此範例中工作A的封包資料狀態),對比之下, 如果轉移指令集3 90被執行,處理器會改變某些在第2區 間3 88中的標籤成爲空的狀態。因此,無論如何在轉移指 令集3 90執行後,工作切換是否中斷工作a,處理器將改 變在某些先前第2組浮點指令集3 84執行中的標籤爲空狀 態(不管是否第2組浮點指令集3 84屬於工作切換執行程 式;工作A或其它程式p 如其它範例,再次假設封包資料指令集3 82屬於工作 A,具工作A被先前轉移指令集39〇中執行的工作切換所 中斷,然而,這次的工作切換是—部份工作切換(亦即浮點 /封包資料狀態,未被儲存或恢復)如果沒有執行其它利用 浮點或封包資料指令集的工作,則處理器將最後返回執行 工作A及轉移指令集390將被執行。然而,如果其它工作 (亦即工作B)使用浮點或封包資料指令集,將使得作業系 統執行程式呼叫儲存工作A的浮點/封包資料狀態及恢復 工作B·的浮點/封包資料狀態。這種執行程式將包括Fp工 作切換慣例(在此範例,舉例第2組浮點指令集3 84)用來 儲存浮點/封包資料狀態,因爲轉移指令集3 9 〇未被執行 處理爲將改變某些先前FP工作切換慣例中的標籤爲非空的 狀態,結果FP工作切換慣例不管是最小或簡單都將儲存全 部被化名的暫存檔亦即工作A的封包資料狀態的内容,如 請 閱 面 之 注 意 項 5裝 頁 訂 -23- 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) 經濟部中央樣準局貝工消費合作社印装 3^〇7〇{ 五、發明説明(21 此绝種實施方式使作業系統保留爲 被用/儲存化名暫存器的狀態。 “此技術疋否 這組轉移指令集可以任何方式加以配置。在 能)的這^料指令集可能包含—個參考EMMS(空的媒舰 ㈣/ 7 ’此指令使浮點/封包資料標籤清除任何後來 浮點暫存器300對於後來的可能被執行的浮點 二集s有用’如果EMMS指令集未在封包資料指令集之 $執行而是在浮點指令執行之前,可避免堆叠溢 發生。 ,習知的浮點程式例中使用英代爾結構處理器,藉著清 除浮點狀態的運算在中斷浮點碼區段,不管是否有;份: 最小的文脈切換被使用,浮點狀態在結束第一區段浮點碼 則被清除,因此,此EMMS指令爲了清除封包資料狀態: 而試圖使用在封包資料順序,此EMMS指令在—解封^資 料碼之後應該執行,因此,在這裡所説明處理器所提供的 方法和裝置,完全相容先前使用在英代爾結構浮點處理 器。而且,此處理器也有能力執行那些允許在封包資料和 浮點碼之間轉移沒有相互影響到浮點或封包資料狀態的封 包資料指令集,如果用好的程式技術和合適時方法(在封包 資料碼和浮點碼轉移之前清除狀態)來撰寫程式。 在其它實施例中,使用現存的浮點指令集可完成此組轉 移指令集,使得處理器改變標籤値成空狀態。 在另一實施例中,當封包資料指令集和浮點指令集執行 切換時,時間會被消耗掉,因此,一個好的程式技術可 -24- 本紙張尺度適用中國國家標ί ( CNS ) A4規格(210X297公釐)
裝 訂 線 3^〇7〇s
在浮點和封包資料指令的轉移可藉由群 :點和令“開封包資料指令集而減少,由於想要提昇優 :式想要完成—種處理器可忽略這種優良程式 :二因此“一個區間3 86期間有一實施例也可改變頂 味堆叠指不成為初始狀態(亦即暫存器R0),這些可用任何 Z方法完成,包括υ執行第—個封包資料指令以改變頂 =堆叠指標;2)執行每-個封包資料指令,封包資料指令 集3 82改變頂端堆疊指標;3)執行EMMS指令以設定頂 端堆叠指標;4)如圖3D所示在時間T3時試執行—個浮點 和令以改變頂端堆#指標等。再次説明,這是爲了保持完 ^相容的程式碼於封包資料指令集和浮點指令集之間。從 提供優良程式技術遠景看來,在—實施例中,在第—區間 =6内儲存了封包資料“値,此値並非任何化名的暫存 器用符號和指數欄位所指的數字。 人圖4Α和4Β是一般流程圖説明作爲執浮點和封包資料指 Τ集一万法,此方法非不同的作業系統技術所能見到,且 提供有效率的程式技術,根據本發明的實施例之_,此流 程圖從步驟400開始至步驟402 » 伽 經 中 央 橾 準 貝 工 消 費 合 作 社 印 製 如步驟402所示,一組位元被存取作爲指令,且流程進 入驟404 ,此组位元包含一個運算碼用來識別指令的 算。 在步驟404中決定是否運算碼有效。如果無效,則至步 驟406 ’否則進入步驟408 ’假設一個處理器嘗試執行— 個慣常的封包資料,此處理器並未支援封包資料指令,則 -25 ' —^ A7 經濟部中央樣準局貝工消費合作社印製 L、發明説明(23 )一· 此運算碼對於封包資料指令集將無效,則進入步驟4〇6, 對比之下,如果此一處理器有能力執行封包資料指令集, 此一運算碼對於這些指令將是有效的,步驟至4〇8 如步驟406所示,產生一無效的運算,執行適當的處理 程式,如前所述參考圖2步驟215 ,事件執行程式可使處 理器顯示一個訊息,忽略目前的工作執行及執行另一個工 作,當然,此事件執行程式可以任何方式完成,例如,此 事件執行程式可識別是否處理器有能力執行封包資料浐 令,此相同事件執行程式也可識別處理器不能執行的封曰 資料指令。其它處理器上執行的應用,可使用這種指示 決定一組純量慣例或是用一組重覆的封包資科慣例, 之,這種方式是需要已存在作業系統或是—個新作業系統 的發展。 ’ 在步驟408決定接受何種指令型式,如果指令非浮點令亦非封包資料指令則進人步驟41G,但是如果此指^ 浮點指令則執行步驟412。比照之下,如果此指令二: 資料指令則至步驟414。 封匕 如步驟41〇所示,如處理器執行此指令,因爲 本發明並不需要了解,在此不再另述。 如步驟412所示決定是否EM指標等於1(根據軟 統,如果模擬浮點單元)且是否TS指標等於i(根據 統,如果執行部份文脈切換),如果EM指標或ts产 於1,則進入步驟416 ,否則執行步驟42〇。在一^施寺 中提出使此裝置不能當EM指標,或Ts指標等於i 例 請 先 閲 ιέ 之 注 包 Ϊ年 頁 以 總 訂 線 -26 衣纸張尺度適用中國國家標準(CNS )八4規格(210Χ 297公楚) 3^〇7〇8 經濟部中央標準局員工消費合作社印裝 五、發明説明(24) 配置另一實施例以使用任何其它的數値。 在步驟416中,產生此非用於異常狀態的裝置且執行此 對應的事件執行程式。如前所述並參考圖2步驟235 ,可 配置此對應的事件執行程式以得到ΕΜ和TS指標。如果 ΕΜ指標等於1,則事件執行程式模擬浮點單元執行指令, 且使得處理器重新恢復下次指令的執行(此指令邏輯地遵循 步驟402所接受的指令),假使TS指標等於i,則事件執 行程式使得處理器如前面所述參考部份内容切換(假使必 需,儲存浮點單元内容及正確浮點狀態)的功能且使得處理 器重新執行步驟402所接受的指令,當然,另一個實施例 可能以其它任何方法配置事件處理器,例如,EM指標可 以配置多工工作。 ' 因爲封包資料狀態被化名成浮點狀態,且因爲E Μ和丁 S 指標改變浮點狀態,故處理器必須也反應EM* ts指標, 當爲了保存完整軟體相容性而執行封包資料指令集。 在步驟4Η決定是否ΕΜ指標等,如;所述,事件 執行程式除了處理此裝置無效外,如果EM指標等於丨可 能會得到EM指標且會嘗試去模擬浮點單元,因爲存在的 事件執行程式並未寫入模擬封包資料指 包資料指令的執行無法被事件處理心用集。當此= 等於1時,更進一步地爲了繼續不可見之作業系統,此 件執行程式的改變對處理器而言並不需要,結論是假使如 步驟決定EM指標如等於,,則處理流程進入步驟 4〇6而非步驟416,否則處理流程進入步驟斗^。 ____-27- L尺度適财國國家標準(CNS )八4祕(210X297公釐) --- (請先閲讀背面之注意事項再續寫本頁) .裝 -、1T* 線· 發明説明( 25 Α7 Β7 經濟部中央標準局員工消費合作社印¾ 如前所述,在步驟406產生無效的運算碼異常狀態,也 執行對應的事件執行程式。除了 Ε Μ指標等於1的無效運 算碼之外,本實施例仍使作業系統不可見。 以説明一用於處理Ε Μ指標的實施例,其方式爲使得作 業系統爲不可見,不同的實施例可使用其它巧技術。例 如:另一實施例除了產生無效裝置外,一不同的現存事 件,或一個新的事件,反應嘗試執行封包資料指令,而ΕΜ 指標等於1 。更進説明,一個微小的修正可爲作業系統接 受,此被選擇的事件執行程式可能會被視爲合適的情形而 改變,例如事件執行程式可能會被寫下來模擬封包資料指 令集。另一實施例中當執行封包資料指令集時,可能剛好 略去ΕΜ指標》 如步驟418所示,決定是否TS指標等於丨(根據已存在 軟體傳統,如果執行部分内容切換)。如果Ts指標等於 1 ’進入步驟4 Γ6否則處理流程進入步驟4 2 2。 "如前所述,在步驟416產生非可用之異常的裝置,且執 行對應的事件執行程式,因此爲了反應此事件,此配置對 應的事件執行程式,而得到EM及Ts指標。 因爲步驟414轉向EM指標等於1的情況,除了無效運 算碼J此EM指標必須等於〇及TS指標必須等i ,因爲 TS^標等於1事件執行程式發生作用。如前所述參考部份 内容切換(假使需要的話,射浮點單元内容及恢復正確的 點狀態)且使得處理器重新恢復步驟402接受的執行,因爲 封包資料狀態化名爲浮點狀態,此一事件執行程式均可在 請 先 閲 讀 背 之 注 項 Η袭裝 頁 訂
本紙張尺度财賴家轉(cns )續^ ( 2獻撕公着 3 如 7〇8 五、 發明説明(26 浮點和封包資料狀態工作,結果此方法依然未見於作業系 統中,當然,實施例是可以完成事件執行程式在任何 法,例如,封包資料狀態被化名爲浮點狀態可能使用—個 新的事件執行程式儲存浮點和封包資料。 當有一實施例指述以未見於作業系統的方法處理ts指 標,此實施例可能使用其它技術,舉例來説,此實施例; 能不會完成TS指標,如此一實施例,當使用丁8指標完成 部份内容切換時將不會相容其它作業系統,總之,此—實 施例中’將不會相容現存的作業系統,此Μ並未支援使 用TS指標的部份内容切換。在另—例予中,封包資料产人 的嘗試執行,當TS指標等於可被改變的新事件執行程^ -已被修正過的現存事件執行程式,可配置事件執行式以 回應此動作而採取適合得動作。例如,一實施例中,封勺 資料狀態未被化名成浮點狀態,此事件執行程式可能儲: 封包資料狀態及/或浮點狀態。 如前所述,並參照圖2,如果確定數字錯誤發生在執行 浮點指令時,那些錯誤即被保留直到嘗試執行下—浮點 令爲止,此中斷指令執行以處理這些錯誤,現再可處理: 錯誤。如步骤420及422中所示者,其決定系統中是否存 在任何現在可加以處理的錯誤。因此這些步驟相類似圖2 步驟240,如果沒有這些錯誤,則流程從步驟42〇及⑵ 至步驟424。假使在步驟42G沒有這些錯誤則處理流程進 入步驟426。對比之下’假使步驟422沒有這些錯划 步驟430 ’在-個實施例中’這些錯誤在封包資料产人 至 集 (請先閱讀背面之注意事項再移寫本頁) .裝- 訂 線 -29- 本紙張尺度適用中國國家標举(CNS ) Μ規格(2ι〇χ297公楚)
• In K ^^〇7〇s
五、發明説明(27) 經濟部中央標準局員工消費合作社印製 執行之間被遺留下來。 在步驟424中,彦4 . 二ο止 生—代處理浮點錯誤之異常事件,女 則面圖2步驟245所述處了㈡由 浮點錯誤需蓋住。如果n J1此事件,處理器決定是否 *, 處理器嘗試内部管理此事件及 =㈣料微重新啓動,如果浮點錯誤並未料,此一 = : = :件且執行對應事件執行程式,藉著步骤 處理器會:"曰”此事件執行程式可能處理錯誤及使得 處理器重新恢復執行。告钦甘、 w .. 田然其它的實施例可以任何其它 万法配置此一事件執行程式。 不驟二6所示’浮點指令被執行,爲了維持作業系統 許ί例中也因需要而改變這些㈣,任何數質 m在可接U㈣其它數質錯誤 統技術可用來儲存浮點單元内:竹作菜糸 ^ ^因此就要有一種未見於 隹,::,系統技術的方法來執行封包資料及浮點指令 ⑨些標籤’此實施例維持不可見的作業系統 =非、ΐ系統技術中,此技術可儲存那些僅符合標籤指 浮點暫存器的内容,總之,實施例可配置爲 數^的作業系統技術相容。例如,如果有—現存作業系 、· ·丨用此標籤’ *法完成這些標籤的處理器彳减會和作 業系、^進-步相容。而且’本發明不需要待決定的數値 浮.占異彳因此未執行此過程的實施例仍在本發明的範圍 内0 力步驟430所不,決定封包資料指令是否爲emms指令 (也稱作轉移指令)如果封包資料指令爲贿⑽指令處 -30 本紙張適用中®財標準(CNS )从樣(卩獻297公趁)
經 央 標 準 k 工 消 費 合 作 社 印 製 -31 - 五、發明説明(28) 程進入步驟432 。否則’處理流程進入步驟434 ,此 EMMS指令用來改變浮點標籤爲最初始値狀態,因此,如 果封包資料狀態化名成浮點狀態,當由執行的封包資料指 令集轉移至浮點指令集時’應執行此—指令。以此方法, 此浮點單元即被初始化用來執行浮點指令集。另—實施例 中,浮點狀態未化名成封包資料狀態,可能不需執行步驟 43 0及432,此外,假使EMMS指令己予模擬,則 步驟43 0及432。 匕如步驟432所示,所有標籤被改變成空狀態且頂端堆疊 指標被改變成初始値,藉著改變標籤成空狀態,此浮點單 元已被初始化且準備執行浮點指令集,改變頂端堆疊指標 爲初始値(在實施例中此初始値爲零用來識別暫存器r〇): 援分開的群浮點及封包資料指令集,因此, 式設計技術,實施例中,並不需要初始化頂端的= 標’在上述步驟432中,“準備執行下―個指令(此指令 合邏輯地遵循步驟402之指令)。 •如步驟434所執行封包資料指令(沒有產生贿數質異 常)且此頂端堆叠指標改變成初始値。爲了避免產生任何數 質異常’-實㈣中配置封包資料指令集,使得資料 到飽和’且約束在一最大及一最小値之間。藉著不產生任 何的數質異常’事件執行程式不需要處理此異常情況。結 果,此本發明之此-實施例爲不可見作業系統形式。另一 實施例爲了反應這種異常的數字可以用來執行微碼事件執 行程式。令-配置不可見之作業系統的實施例中,額外的 本紙張以適财國^標準(CNS ) A4規格(21〇χ297公瘦)- 訂 線 3_〇8 五、發明説明(29 f件執行程式被合併到作業系統亦或是現存事件執行式而 處理此錯誤。如上所述,頂端堆疊因同樣理由而改變,可 配置實施例,在任一不同的時間改變頂端堆叠。例如,除 了 EMMS指令外,此實施例可完成改變最上層堆叠指標在 所在封包資料指令集執行時,I使任何記憶事件產生作執 仃封包資料指令,則執行被中斷,此頂端堆晏指標並未被 改變且處理此事件,在完成此事件處理後,步驟4〇2所接 受的指令則被重新啓動。流程從步驟434至步驟436。 如步驟436所示,蚊是否封包資料指令使得處理器寫 入到化名暫存器中,如果可以,處理流程進人步骤㈣。 否則處理流程進入步驟4 4 〇。 在步驟438中,第一層以化名暫存器的符號和指數儲存 封包資料指令使得處理器可以寫入,從步驟438處理流程 進入步驟440 ’執行此步驟提供良好程式窝作技術,此技 2支援分開的群浮點及封包資料指令集,當然,在實施例 未關連到此事件者均可不必執行此步驟。在一實施例 中’第一層被窝入符號和指數棚位,此實施例可使用代表 N A N (非一號碼)的任何値或無限大的値。 步驟4 4 0所示,所有標籤被改變成非空的狀態,改變 所有標籤成爲-個非空的狀態可提供良好程式寫作技術且 它支援了分離的群浮點和封包資料指令集,此外,從作業 =統一致性展望,通常的作業系統技術儲存那些唯有標籤 指到非空狀態(最小的内容切換)的浮點暫存器的内容,因 此在—實施例中,封包資料狀態化名成浮點狀態,改變 ----------- 本紙張尺度適用中國國家標準(CNS ) A4胁(2丨0X297公幻 項 裝 訂 經濟部中央梂準局員工消費合作社印製 五、發明説明(30) :有標籤成爲一個非空狀態使得作業系統保留封包資料狀 心’好像如同浮點狀態_般。另—f施例中可以改變所有 籤而此;^籤符合包含的有效封包資料項目之暫存 器二而且’另—實施例中,可用較少相容的作業系統技術 來完成,例如,假使—個現存作業系統未利用標籤(亦即作 業系統儲存恢復全部暫存隸態)。另並未配置這些標籤的 T施例仍然與此作業系統相容。在完成步驟440中,系統 …、法執行下個扣令(此指令邏輯性地遵循步驟4 〇 2接受之 指令)。 η因此,在此實施例中,於浮點狀態儲存(FSAVE)或浮點 環境儲存(FSTENV)之後,在記憶體之中標籤 内容參照下 面表格1所示。 表1 :有效的封包資料/EP指令在標籤字元上 請 先 閲 背 $ 項 再一 Η 寫 本 頁 裝 訂 經濟部中央榡準局貝工消費合作.社印製 指令型式 =— - 指令 標籤位元 在 FSAVE 7 FSTENV 之後, 在記憶體中計算 的標籤字元 封包資料 任何(除EMMS之 外) 非空的(00,01或10) 非空的(00,01或 10) 封包資料 EMMS ¢(11) 空(11) 浮點 任何 TO,11 oo,ii,oi 或 ίο 浮點 —--- ERSTOR / FLDENV 「00,11,01 或 10 00,11,01 或 10 如上所示,任何封包資料指令,除了 EMMS,將導致標 籤32〇被設定在一個"非空的”狀態EMMS導致浮 點標籤暫存器被設在一個空的(丨丨)。此外,任何的封包資 線 -33- 32〇7〇s
示項 五、發明説明(31 ) =:::MMS也導致錯存在堆刪層的彻 剩餘環境暫存器,例如控制和狀態字元(除了 在Intel結構處理器中,其餘資料沒有改變。任) 科讀取或EMMS留下殘値指數部份的浮點暫存器3=資 =變的狀態m實施例中,任何的封包資科: 引包資料暫存器中,因爲化名構造,根據操作執行, =起殘値料對應到浮點暫存器。再則,.在這實施例中 寫入的資料在浮點暫存器的殘質部份,其係由封包暫 存器⑴修改’將引起所有位元的狀在浮點暫存器㈣ 的符號和指數部㈣1的狀態。因爲封包資料指令不能使 用正弦和指數部份的浮點暫存器(沒有化名的封包資料暫存 器在正弦和指數部份的浮點暫存器中),這對封包資料指令 集並無任何影響。如前所述’另—實施例可以化名封 料狀態之任何部份成浮點狀態。此外,另_實施例可以選 擇寫入任何値或選擇不去改變暫存器的符號及指數部份。 請 先 閲 讀 背 之 注 $ 事 項 裝 頁 訂 線 經濟部中央標準局員工消費合作社印裝 -34-良紙張尺度適用中國國家標隼(CNS ) A4規格(210X297公釐) A7 B7 五、發明説明(32 ) 表格2 :封包資料在FPU的效果 指令型式 標籤字 TOS(SW 13,11) 其它FPU環 境(CW資料 PTR,程式碼 PTR ,其它 SWE) 指數位元+封 包資料暫存器 位元符號(封 包資料) 封包資料 暫存器底 數部份(封 包資料) 從封包資料 暫存器讀取 封包資料 所有欄位 設定〇〇(非 空的) 0 未改變 未改變 未改變 封包資料寫 入封包暫存 器 所有攔位 設定〇〇(非 空的) 0 未改變 設定爲rs 被影響 EMMS 所有搁位 設定11(空 的) 0 未改變 未改變 (請先閲讀背面之注意事項\4彳.寫本頁) 經濟部中央標準局貝工消費合作社印製 對於較前的封包資料指令集指出寫入浮點暫存器的符號 和指數部份均被設成1 ,此情形發生是因爲浮點暫存器使 用浮點暫存器的指數部份,且在封包資料指令集執行後, 封包資料暫器即是一個決定的狀態。在英代爾結構的微處 理器中,浮點暫存器的指數全部被設定成1 。部份被中斷 而不會變成數字(NAN),因此除了設定封包資料標籤330 爲一非空狀態之外,浮點暫存器的指數部份全部被設定成1 可能被用在指示前面執行的封包資料指令集。如此更進一 步阻礙了封包資料指令集與即將修正資料的浮點指令集兩 者間内部資料的混合,而產生了不適當的結果,因此,當 浮點暫存器包含浮點資料及封包資料時,存在另一種方法 -35- 夂紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ^〇7〇8 五、發明説明(33) 可以分辨浮點碼。 因此,一方法可執行與現存作業系統相容的封包資料指 令集(如由華盛頓,Redmond微軟公司所提供的微軟視窗 作業環境)及此方法提供良好的程式設計技術已有説明,因 爲封包資料狀態化名成浮點狀態’藉著存在的作業系統, 此封包資料狀態將被保存及恢復,如同其爲浮點狀態— 樣。而且因爲封包資料指令集執行所產生的事件有用,藉 著現存的作業系統事件執行程式,這些事件執行程式並不 需要修正,且新的事件執行程式也並不需要增加。結果, 此處理器與已往的皆相容且在升級上不需要花費用和時間 去發展或修正作業系統。 經濟部中央標率局員工消費合作社印繁 1· ^ ^ —— (請先閲讀背面之注意事項一寫本頁〕
、一1T 線 以此種方法不同的實施例也相容於現存的作業系統中。 參考圖7A-C’8’9及圖11A-C。雖然這些具實施例相異, 下列是實施例的共同點(此實施例如圖4A_B ,圖7α· C,8,9 ,圖11A-C所示):1)浮點及封包資料狀態,至少 呈現軟體被儲存在一個單一邏輯暫存檔,2)當£1^位元指 示「浮點指令集應該被模擬」,封包資料指令的執行除^ 產生一個無效的運算碼外而非—個有效的裝置,3)當丁8 位元指示’’一個部份的内容切換執行”,封包資料指W令集 產生一個供效裝置異常;4)未決的浮點事件藉著封包資料 指令集的嘗試執行而加以處理5)任何封包資料指令集的執 行將導致頂端堆疊指標在下一個浮點指令執行之前被改 0,6)假使EMMS指令執行未被任何其它封包資料指令集 所遵循,此EMMS指令執行將導致所有標籤在下一個浮 -36 -
五、發明説明(34) 輕濟部中夹棣準局員工消費合作衽印製 指令執行之前被改變成空的狀態,7)假使封包資料指令集 執行未被EMMS指令所遵循,則標籤將在下一個浮點指令 執行之前改變成非空的狀態,8)有—些數値表示NAN(非 —個數字)或無限大藉著處理器用符號及指數範圍寫入FP / pD暫存器是爲了反應到封包資料指令的執行,9)不需 要新的空微碼事件執行程式。 如圖4A-B示不同實施例,有一些已被説明過,可能是 全部或部份相容於這種作業系統,且提供良好程式設計技 術。例如,此説明的實施例可以移到正確步驟的不同位置 如圖4A-B流程圖所示,其它本發明的實施例可以改變或 移除一個或更多個步驟。例如另—實施例無法支援em位 元。當然,本發明對任何系統結構可能是有用的且未被限 制於此所述之結構,使用上述方法執行浮點和封包資料指 令集’建議程式設計師使用現在發明的實施例去區分他們 的程式碼爲幾個部份,包含分隔浮點區及封包資料指令集 如圖3D所示,這是爲了允許狀態儲存及封包資料狀態的清 除’可較先從浮點運算順序至封包資料運算順序,這也允 許相容於先前工作切換的方法包含那些在工作切換間儲存 的背景資料。 因爲封包資料指令集影響浮點暫存器300(圖3A),且任 何單一封包資料指令設定所有浮點標籤成非空的狀態,將 程式碼分開成區段碼的型式,因此被建議作爲合適的簿 記。圖3 D舉例説明混合式浮點執行及區段封包資料指令集 的執行例。此包含合作的多工作業系統運算或在單一應用 ----------^ II ** 請先閲讀背面之注意事項&i,寫本頁) 訂 線
五、發明説明(35 I混合式浮點及封包指令應用程式碼,在其它案例中,# 奢分開函數成爲分離的浮點區塊及封包資 =⑽的合適簿記,相同的標藏及頂端堆叠指標得= 休0 =如’在圖3D舉例説明—個執行流程包含第—组浮點指 ,在浮點指令集38G方塊結束之後,如果應用程
i::’浮點狀態可以被儲存’這些可利用任何之前已知 支術元成。包含列出浮點堆疊或使用FSAVE / FNSAVE =在英代爾設計的處理器。也可能完成浮點環境的像存 2最小内容切換之間及檢查個別的標籤作爲指示含有效資 ·、·的相同的浮點資料’對於每—個標籤可指示包含資料的 :同的浮點資料,此相同的浮點資料暫存器將被儲存下 需要在此情況之下’浮點暫存器的數字指示可能也 第-組浮點指令集則執行之後,第二組封包資料指令 2 382也在執行列執行,如果轉移指令集州未被執行時 ^個封包資料執行將導致所有封包資料標籤33。有時被 ?又疋非空的狀態在區間3 8 6。 如果沒有工作切換發生,隨著封包資料指令集M2執疒 之後,轉移指令集39G即被執行,轉移指令集39G可能I 2儲存封包資料狀態’這些可利用前述浮點機構完:: 存扣令集,或只是一個專用的指令用來儲存封包資料狀 態’此封包資料狀態可用任何先前之方法儲存,包含部份 的及最小的内容切換機構,不論封包資科狀態是否 -38 · 320708 經濟部中央標準局貝工消費合作社印製 A7 B7 五、發明説明(36) 存,轉移指令集390使封包資料狀態變空,在此事件中, 封包資料狀態影響封包資料標籤3 3 0及相同化名的浮點標 藏3 20 ’如前所述’藉著執行單一指令EMMS或將於下圖 14討論的—連串浮點運算來使得封包資料狀變空。結果處 理器使得在間格388中的包封數據狀態有時候成爲空狀 態,且加以啓動以執行符電指令。 在傳輸指令集390執行之後,執行第二組浮點指令組 384 °因爲標籤已成爲空狀態,且在第二間隔388期間, 警示堆疊的頂部指向第一實質暫存器〇 。此可防止產生浮 點堆疊疋溢流的異常狀況。在某些軟體配置中,在某些轉 換按巧堆疊溢位情況可能造成中繼器處理器儲存及變空封 包資料狀態’因此’在目前發明之實施具體實例,區段的 内容混合封包資料及浮點指令集是被容許的,然而,必需 配置合適的簿記藉由應用程式設計師或合作的多工程式碼 儲存任何想要的浮點或封包資料狀態,在封包資料與浮點 指令集轉移之間,如此工作的狀態,在轉移間就不會毁 損’此外’這方法可避免發生不需之特例於此發明中未被 建議使用之程式設計技術之具體實施例。 EMMS指令允許包封數據指令_及浮點指令串之間進行 平滑傳輸。由上可知,浮點標籤可避免可能發生的浮點溢 流狀態’而且復歸儲存在堆疊欄35〇中的頂部堆疊指示。 雖然可配置執行這些操作的頂部堆疊指示,在本發明的關 點之内也預期,可結合現存的浮點指令而配置此操作。如 圖1 4範例所示,更進一步’此種函數可能被隱藏在第—個 .39- 本紙張尺度適用中國國家標準(CNS 規格(210X297公釐) !,--^------^ II (請先閲讀背面之注意事項寫本页) 訂 -線- 五、發明説明(37 A7 B7 經濟部中央標準局員工消費合作社印製 浮點指令的執行,此浮點指令跟随封包資料指令的執行, 在此實施例中,第一個點指令的執行(其它是儲存浮點/封 包資料狀態環境)跟隨封包資料指令執行導致處理器去執行 一隱含的EMMS運算(設定所有標籤成空的狀態)。 圖5所示爲一方塊流程圖舉例説明一可作模範的電腦系 統500 ’根據本發明的實施例。此模範電腦系統5〇〇包含 兩個處理器505,一個儲存裝置51〇及一個匯流排515, 處理器5〇5和儲存裝置510,藉由匯流排515相結合,此 外’些使用者輸出/入裝置,例如鍵盤520和顯示器 5 2 5也和匯流排5丨5相結合,網路5 3 〇也同樣與匯流排 515相結合,處理器5〇5代表任何型式1的中央處理器結 構如CISC、RISC、VLIW或混合結構,此外,處理器 可能由一個或多個晶片完成,儲存裝置510代表一個或多 個儲存資料機構,例如,儲存裝置5丨〇可能包含唯讀記憶 體(ROM)。隨機存取記憶體(ram),磁帶儲存裝置,光學 倚存裝置,快閃記憶裝置及其它可讀式機械裝置,匯流排 515代表一種或多種匯排(如pci 、ISA、X-BUS 、 EISA、VESA等)及橋接器(也稱作匯流排控制器)這項實 施例與單一處理器電腦系統有關連,此項發明也可用多個 處理器電腦系統來完成,此外,此項實施例與3 2位元及 64位元電腦系統有關聯,本發明未被限制在此種電腦系 統。 圖5額外説明505處理機含一匯流排單元545,一快閃 記憶體550,左指令组單元560,一記憶管理單元565及 -40- 本紙張尺度適用中國國家標準(CNS ) Α4規格(210 X 297公嫠) 請 先 閲 面 之 注 項 裝 訂 經濟部中央橾準局負工消費合作社印裝 320708
一事件處理單元57G,當然處理器5〇5包含_電路,但 與本發明之完成並無相干,不需將外去瞭解。 匯流排單元545辑合快取記憶體55〇之外所產的信號, 匯流徘單元545並用於監視且計算在處理器505外部所產 ^的信號。能協調輸出信號對應到輸入信號及協調在處理 器505中,從其它單元及機構結構來的内部要求信號。 快取i己憶體5 5 0代表!或多個错存區,處理機5〇5使用 成-指令辟存器及資料辟存器,例如,在一具體例中快問 ,己憶體5 5 0由兩個獨立貯存器完成一個是指令集用一個是 資料用,快取記憶體55G與指令組單元56Q及記憶管理單 元5 6 5相連接。 指令設定單元560包括硬髏及/或軔體以便解碼及執行 至少;指令組’如圖5所示’指令组單元560包括一解碼 /執行單π 5 75解碼單元是用來將處理器5。5所收之指人 集解成控制符號及/或微碼進人點。回應於這些控制㈣ 及/或微碼進人點,執行單元執行適當運算,解碼單元可 耩由使用任何不同機械結構來完成,(例如查閲表-硬體完 成器,1PLA等)’當藉由解碼及執行單元執行不同種指 令,此種指行是藉由-系列“如果/則,,之敘述句做代表, 則一指令々執行不需要一連串“如果/則,,之敘述句來進行 是可理解的,反而是任何—種用邏輯執行這種如果/則之 進行的機械結構被認爲是完成本發明之範圍内。 解碼/執行單元575包含—含有封包資料指令集之一指 令組單元580,而這些封包資料指令集可藉由執行任何不
本紙張適用t國國豕標準(CNS)从桃(21(3><297公楚) 320708
五、發明説明(39) ^運算來70成。例如’當執行這些封包資料指令集,可使 f理器執行包浮點運算及/或封包整數運算,在一實施例 請 先 閱 讀 背 i 事 項 再一 4 本衣 頁 ’这些封包資料指令集可見於中請專利案"—组在封包 資料上運算的指令集”於1 995年8月31日申請,序號 D8/52l,3 60 »除封包資料指令集外,指令組58〇可包含 新的和—集及/或類似或相同於現有—般目的處理器之指 令’例如在一實施例中’處理器5〇5支援一指令组,此指 7组與現行處理器所使用之英代爾處理器結構指令組相 容,例如奔騰(Pent ium)處理器。 圖5也顯示指令組單元56〇包括—記憶單元5 8 5,此記 憶單元5 85代表1组或多組處理器5()5之暫存器用來儲存 資料,包括浮點檔封包資料,整數資料及控制資料(例如, 訂 E Μ指標,一τ S指標,一頂端堆疊指標等之)在某些實 施例中,有些在此有進一步説明,此記憶單元5 8 5在浮點 狀態化名爲封包:資料狀態。 經濟部中央標準局貝工消费合作社印裝 5己憶管理單元5 6 5代表硬體及軔體以配置一個或多個記 憶管理方案’例如分頁及/或分段。當可使用記憶管理方 案之數目爲任意時。在一實施例中,配置與英代爾處理器 結構與記憶管理方案相容。事件處理單元570與記憶管理 單元560相連接’事件處理單元570代表硬體及韌體以配 置一個多個事件處理方案,在一實施例中一與英代爾處理 機結構配置相容之事件管理方案。 圖5也説明儲存裝置510儲存一作業系統535及—封包 資料慣例540以供電腦系統500執行,封包資料慣例54〇 -42- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 3 G 7 G 3 五、發明説明(4〇) ^有序指令集,它包括—個或多個封包資料指令集。木 然儲存裝置51〇最好包含額外軟 备 需—定要瞭解此軟體。 )仁本發明不 在-實施例中當不同指標(例如,em指標,…旨 使^ 5G5處理器内之暫存器之位元組或另些實施例用任 ^技術來完成’例如’另—種實施例可將這些指標 至贿粒(例如,儲存裝置510)及/或使用各指標之中合位 這错存區域是用來參考儲存區域之任—機械結構, 二存=存裝置51。之位置,在處理器5。5中一個❹個 根據本發明之一實施例,圖6A方塊圖顯示―個裝置用以 化名封包在浮點狀態上資料暫存器狀態,係使用兩個分離 的實質暫存檀。因爲這兩個實質的暫存器樓案已被更名, 它們邏輯地出現在軟體上執行,在處理器中做爲—個單_ 邏輯暫存樓’ ® 6A顯示-個轉移單元6GG,—個浮點單 元6〇5,和封包資料單元01〇。浮點單元6〇5類似於第丄 圖中的浮點單元U5 。該浮點單6〇5包含一組浮點暫存器 組615,一套標籤組62〇,一浮點狀態暫存器62s和—浮 點堆疊參考單元63〇 。在—個實施例施中,該浮點單元 經濟部中央楳準局貝工消費合作社印裝 605包含有8個暫存器(標籤R〇到尺7)這8個暫存器中的 每-暫存器均具有8G個位元寬和包含_個符號襴位和指數 棚位及棚位》該浮點堆疊參考單元MO操作該套的浮點暫 存器615作爲—個堆疊,該浮點狀態暫存器〗55包含有— 頂端的堆疊欄位6 3 5 ,用以儲存頂端的堆疊指標。如先前 43- 本紙張適用中國國家標準(CNS ) A4規格(2丨0 X 297公釐) 3<;〇7〇8 A7 五、發明説明(41) 所述,頂端的堆疊指標識別 器组6 1 5中县扣/·认^ 叫貧存器在孩套浮點暫存 :組⑴中疋現在的洋點堆叠之頂端 的堆疊指標識別一暫存器64〇 中頂相 堆叠的頂層。 ㈣質…4作爲ST10 — 在-個實施例中,該套的標鐵組62 且被儲存在-個單-暫存器中 個標麵並 浮點暫存器且包含2位元。另_方面應到不同的 到來自化名之邏輯暫存||構案之彳 標籤被視爲應 目什裔·搭菜^一個不同的暫在 6A所示,標籤Ms對應到暫存器“ο。如 " 標籤被浮點單元005使用,用& A#、 斤各,廷些 π州,用以分離空的和非 位置。如先前所述’—個實施例能利二::存器 空的或非空的狀態其中之_,_ ,、籤識別 田知藏値得需要時,蔣护 些i位元的標籤出現在軟體上時爲包含2位 決 =2位元標錢値。當然,另-個實施例可完二= 的標藏。任-途徑,標鐵能被識別爲2個狀 空的狀態和識別00,01或10任何之_爲非空的狀餘。爲 。^包資料單兀61〇料封包資料和—套的封包 益组65G(也視爲-封包資料暫存器—檔),_ = 經濟部中夬橾準局貝工消費合作社印製 個 暫 中 64 器 庇暫存器655和-封包詩麵#參考單元㈣。在:狀 實施例中,該套的封包資㈣存器組6 5 q包含有 存器,這8個暫存器中的每—個對應到浮點暫存器615 不同的暫存器。在這8個封包資料暫“中的每_個孩 位元寬和對映到該封包資㈣存器料應到的料 〈64位元底數欄位1包資料非堆叠參考單元㈣操作卞 .44 本紙張尺度適用巾關家鮮(CNS ) A4^fM 210X2^^· S2Q708 A7
經清部中央#準扃貝工消费合作社印裝
五、發明説明(43) 包含獨立封包資料標籤,另外 或被接觸的(讀及/或寫)浮點暫存二封::料暫存器及/ 料,浮點標籤可因此目的來 了被認爲含有用資 另外,可包含額外指標以用於浮點。 過程中必須被考慮包含未定 刀化名,在一轉移 術是去假設之料殘被H好的程式寫作技 封包資料狀態暫存器655 一 …,-推測區670,_模式區一組封包資料暫存器 及-EMMS區685,任—封…5 ’―異常狀態區680 任封包資料污染區065與一不同之 封包資料暫存器650對應,^ “ 以且用來料於染指標,既 二封=暫存器650與浮點暫存器615有相應關係,當 寫 個値至任一封包資料 貪料暫存# 650 ’那個與污染指標有 關I暫存器就會被更改去指出―冷染狀態,當轉移單元 丨㈣包資料單元61()轉移至浮點單元⑷,i會被 窝至那浮點暫存器615的符號及指數區而與6is暫存器 對應之污染指標則會指出此污染狀態用這種方法,從圖4B 之步驟430就可完成。 模式區675是用來儲存一模式指標,識別那一種模式處 理器現正在運算在一個浮點模式内的浮點單元6〇5正被使 用,或一個封包資料模式内的封包資料單元61〇正被使 用’如果處理器是在浮點模式内,且—封包資料指令被接 收’則必須執行將浮點模式轉移至封包資料模式。相對 的’如果處理器在封包資料模式及一浮點指令被接收,則 -46 本紙乐尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 320708 A7 B7 五、發明説明(如) 經濟部中央標準局員工消費合作社印製 必須執行將封包資料模式轉移至浮點模式,如此一來,不 論收到一封包資料或—浮點指令,則模式指標會被登記以 決定一轉移作是否必要,如果轉移有必要,則會被執行且 模式指標會跟著變動,模式指標之操作會參照圖7A_9中進 一步説明》 異常狀態區6 8 0用來儲一特別狀態指標,特別狀態指標 是在執行封包資料指令來識別,在執行先前浮點指令時是 否有任何未定之特例時使用在一實施例中,如果特別狀態 指標指出諸如此類之異常未決定,則此類異常會於轉移前 供、·°至封包資料模式,在一實施例中,爲此目的浮點單元 6 〇 5所用之指標會被編碼或直接複製到特別狀態區成爲特 別狀態指標。 、EMMS區6 8 5是用來儲存一 EMMS指標,它可確認是 否上—次的封包資料指令之執行是用EMMS指令,在一 施例,當執行EMMS指令,EMMS指標會變成〗來指 上次封包資料指令之執行是因E MMS指令集,相對地, 執订其他所有封包資料指令集,Emms指標會改爲〇, 封包資料模式轉移至浮點模式,轉移單元ό 0 0登記 EMMS知標會決定是否上次封包資料指令是EMMS指令 如果上次執行的封包資料指令是EMMS指令,則轉移單义 6〇〇會將所有標籤62()改成空狀態^然而,如果上次執行 的封包資料指令不是EMMS ’轉移單S6GG會變所有標截 620至非命办戗 ., ' ^ 狀態。以此方法,標籤會改至類似圖4B步躱 432及440之形式。 囉 實 出 當 在 元 請 先 閲 δ 之 注 項 再- 4 寫 本 頁 裝 訂 線 本紙張尺度適财賴 -47- ---- 經濟部中央標準局負工消費合作社印製 A7 B7 五、發明説明(45) 推測區6 7 0是用來儲存推測指標,它能確定浮點模式轉 移至封包資料模式是否爲推測性的。如果轉移是推測的, A如果一轉移回到浮點單元605是必要的則時間就可省下 來’模式指標之操作會參照圖7A-9做進一步説明。 圖6B是一組方塊圖爲根據發明的實施例説明圖6A之浮 點堆疊參考檔的延伸圖。圖6B顯示浮點堆疊參考單元630 包含一標籤修正器單元690在一組標籤620内選擇性地變 動標籤。圖6B中顯示一實施例,各組標籤62〇只含1位元 以指出是空的還是非空,標籤修正器單元690包括一組 TOS調整單元096及一檢查/修正單元698,各TOS調 整單元696與微操作線692相連接,根據配置情況(例如, 只有一個TO S調整單元只接收丨微操作)來接收丨個或多個 微處理,至少微處理用的浮點指令集需要標籤被改變而被 T0S調整單元696所接收。當然,浮點堆疊參考單元63 0 會因被T0S凋整單元696所接收之所有或僅各微處理之對 應部份而加以配置。 回應所接收的1微操作,一 TOS調整單元轉移至檢查/ 修正單元698至少有:1)由微處理確認一组標籤内的標籤 位址,2 )彳έ號指出在那些標籤(例如被登記變成〇或1 )上 執行的活動,標籤之登記在本發明裡不需要睁解 詳加説明。各T0S調整單元696與694相連:= 收現有T0S値及調整標籤位址,檢查/修正單元698利用 至少一等線與620標籤相連,例如,檢查修正單元698 利用一窝線與標籤645相連接,相應於收到標籤位址與對 ___ ·48· 本紙張尺度適用中ΐΐ國家標準(CNsj Α4規格(210X297公釐)一 ^ n n n n n I n n I -威 (請先閲讀背面之注意事項^瑣寫本頁) 五、發明説明(46 ) A7 B7 經濟部中央標準局貝工消費合作社印裝 應信號,檢查/修正單元698會執行必要的檢查及/或修 正,在一完成過程内,多數微處理可能被一次接收,檢查 /修正單元698也會在微處理中進行比較以決定是否他們 正在修正相同之標籤(例如,假設微處理一需要標籤一變成 1,當微處理二,在同時被接收成微處理―,需要標籤一變 成〇)如果同一標籤被修正則檢査/修正單元698決定那個 微處理被最後執行且根據那微處理來變更標籤,在上述例 子裡,假設微處理二在微處理一後執行,則檢查/修正單 元6 9 8會改變標籤一以指示〇。 例如,假使執行一浮點運算,需要一標籤(例如標籤645) 欠成空狀態’一個τ Ο S調整單元就會收到現有τ 〇 s値及 一個在微處理線0 92上之微處理確認一標籤。此T〇s調整 單元會決定此標籤(例如標籤6 4 5 )之位址並轉移此位址及 指出標籤應被改變成空狀態之信號至檢查/修正單元 698 ’相對地’檢查/修正單元698會在與標籤645相連 接之寫線上藉著一個〇將標籤645改成空的狀態。 在一實施例中,配置浮點指令集使得全部標籤需要一次 修正完成’配置標籤修正器單元690無法一次修正全部標 鐵。爲免電路複雜,相應於一個轉移至浮點模式之全面性 標籤更改可因現使用之機械結構而加以配置。在這方面, 如果轉移單元600是在微碼中加以配置,則這組微碼指令 集會導致解碼單元發出幾個現有之微處理來變更8個標 藏。如此一來,當EMMS指標指出EMMS指令爲最後將 被執行之封包資料指令,相應於執行一轉移至封包資料模 請 先 閲 讀 背 it 項 寫 本 頁 裝 訂
A7
A7 320708 五、發明説明(48 ) 之實施例,在一組化名在一組浮點暫存器之暫存器上執行 封包資料指令集,就某種意義而言,以其方式爲使用不可 見之作業系統,而提升良好程式規劃能力,且可用圖6A之 硬體加以配置。流程圖類似圖4 A及4 B所説明流程圖,參 考圖4A及B説明許多另外的實施例裡之步驟被更改,移動 及/或刪除’ 7A ’ 7B,7C ’ 8及9所説明之步驟與圖 4A及4B所提及之步驟相類似,這些步躁至少被執行來使用 諸如此類之另外的實施例,此流程圖自步驟7 〇 〇開始,自 步驟700至步驟702。 如步驟7 0 2,一组位元組如指令一般加以存取,然後流 程執行步驟704 ,此位元組包括一運算碼來確認運算。透 過指令執行,如此一來步驟7 0 2則類似圖4 A之步驟 402 〇 在步驟704中’決定運算碼是否有效,如果運算碼無 效,則流程進入步驟7 0 6。否則,流程進入步驟7 〇 8 ,步 驟7〇4類似圖4A之步驟406。 經濟部中央標準局貝工消費合作社印製 在步驟708中,決定何種型態之指令被接受。如果指會 既非一浮點指令或一封包資料資料指令,處理流程進入步 驟71 〇。然而,如果指令是一浮點指令,則流程進入步驟 7 1 2。相對地,如指令是—封包資料指令,則處理流程進 入步驟714,如此一來,步驟708則與圖4A之步驟4〇8 相類似。 如步驟71〇所示,處理器執行指令,由於此步驟並不需 要被瞭解於此項發明中,在此即不再另述,在圖4A中, -51 - A7 B7 五、奋明説明(49) 驟7 1 0類似步驟4 1 0。 如步驟712所示,決定是否EM指標等於ι(根據軟體傳 統説明,如果浮點單元應被模擬的話)及TSD指標是否等 於1 (根據軟體之傳統上的説明,如果部份背景被執行的 話),假使E Μ指標及T S指標都等於1 ,則處理流程進入 步驟7 1 6,否則處理流程進入步驟7 2 〇,因此,步驟7工2 類似圖4A所示步驟412。 於步驟716中,產生無效異常裝置及且執行同一事件管 理器,因此,步驟716類似於圖4A中步驟41 6。如前所 述,事件管理器可能被使用在EM* TS指標用來決定是否 模擬的浮點指令及部份的内容切換被執行。 於步骤714中決定是否EM指標等於i ,如此,步驟 714類似圖4A中步驟414。因此’假使在步驟714中, EM指標等於1,處理流程進入步驟7〇6而非步驟716。 否則處理流程進入步驟7 1 8。 如前所述,在步驟706產生無效異常裝置及且執行同一 事件管理器,藉轉移封包資料指令的嘗試執行,除了無效 的運算碼ΕΜ等於1之外,此實施例未見於作業系統中, 如前所述步驟4〇6,參考圖4Α。 本又以説明一實施例其用於處理ΕΜ指示,其方式爲名 得作業系統爲不可見。另_實施例可以使用其它的技術, 舉例來説’另-實施例可能產生異常無效裝置,—個不民 ^存在的事件,或是—封包資料指令嘗試執行而反應的袭 事件,而此ΕΜ指標等於!時。如其它範例,另—實施合 -52- 本紙張度適用t國國家標準(CNS ) Α4^ΤΤϊ^297公釐)__ 320708 A7 B7 五、發明説明(5(5) 經濟部中央標準局貝工消費合作社印製 是當執行封包資料指令集時可能忽略Em指標。 如步驟718所示決定是否TS指標等於1(根據軟體説明 慣例,如果内容切換執行)。假使TS指標等於i ,處理流 程進入步驟716,否則處理流程進入步驟722,因此步驟 7 1 8相類似於圖4 A中步驟4 1 8。 如前所述,在步驟716中,產生無效異常裝置及且執行 同一事件管理器。步驟716相類似於圖4A中步驟418 , 由於步骤714在無效的運算碼外轉變em.指標等於1,此 E Μ指標必需等於0及τ S指標必須等於1,因爲T s指標 等於1 ,事件管理器即引導處理器發生作用,如前所述參 考郅份内容切換(儲存浮點單元内容及恢復正確的浮點狀 態,假使需要的話)及藉著步驟7〇2使處理重新恢復執行啓 動指令,因爲封包資料狀態被化名成浮點狀態,此事件管 理器在浮點和封包資料狀態内開始工作。結果,此方法依 然是未見於作業系統,當然,另一具體實施倒可以任何其 它方法完成此事件管理器。 前述之一實施例已説明在未見於作業系統中,處理T s指 標的方法另一具體實施例可以使用其它的技術,例如,另 一具體實施可能無法完成τ S指標,如此這種實施例使用 T S指標去完成部份背景換方式將不能與作業系統相容,然 而,此種實施例將能與現在使用TS指標卻不支援部分内容 切換的作業系統相容。如其它例子,當τ S指標等於1時, 封包資料指令嘗試的執行可能被轉變成一個新事件管理器 或是一個已被修正的現存的事件管理器,假使採用被認爲 ___________~ 55 - 本纸張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 請先閱讀背面之注意事項寫本耳〕 -裝· 今 線 五、發明説明(51 ) A7 B7 經濟部中央標準局貝工消費合作社印裝 適合此情況的方式可配置事件管理器。例如,在一具體實 施例中’封包資料狀態未被化名爲浮點狀態,此事件管理 器可以儲存此封包資料狀態或浮點狀態。 如前所述,假使某些數値錯誤發生於執行浮點指令時, 那些錯誤在代決定態,直到下一個浮點指令嘗試中斷處理 那些錯誤爲止。如前所述,圖4步驟420及422決定是否 有其它未決的錯誤需要處理。同樣相類似的步驟42〇於圖 4A中決疋疋否有任何像這樣未決的錯誤需要於步驟72〇中 處理,假使有任何這種未決的錯誤發生,流程由步驟72〇 至步驟724。然而,假使於步驟72〇決定沒有這種未決的 錯誤發生,處理流程進入步驟7 2 6 ^對比之下,是否有其 它未決的錯誤發生於先前的浮點指令集及嘗試執行的封包 資料指令集之間,在其它後述步驟將被執行結論是步驟 722不同於步驟422。 在步驟724中,產生一未決的浮點錯誤事件。因此,步 驟724類似於圖4A中步驟424,如前所述參考圖4a步驟 4 2 4 ,此事件可被視爲—個内部或外部的事件而—起處 理° 如步驟726所示,決定假使此模式指標指示處理器以浮 點模式運算,則步驟726不同於圖4B中步骤㈣,假使 處理器不以浮點模式運算,則處理器將必需要將封包資料 模式轉帛成浮點模式以執行浮點指令。因此,假使處理器 不是在浮點模式,處理流程進入步驟728 ,否則,處理产 程進入步驟7 3 2。 '& -54 ,卜纸張尺度適用中國國家襟準(CNS ) Α4規格(210x297公楚) 請 先 閲 讀 背 Λ 之 注 項 養 裝 訂 五、發明説明(52 ) A7 B7 經濟部中央#準局員工消費合作社印製 在步驟728中,處理器被轉換由封包資料模式至浮點模 式處理流程進入步驟730,於圖6A中步驟728藉著轉移 單元600而被執行,且此步驟將後述於圖9中。 如步驟730所示,步驟7〇2所接受的指令藉著,,微啓 動”而重新執行,既然執行步驟728之實施例是使用微碼 及微啓動之指令,則需要執行非作業系統之事件管理器。 、’·〇果可以不需用處理器外部即可重新恢復目前工作,沒 有任合非微碼作業系統事件管理器(諸如此類作業系統事件 管理器)需要執行。因此,處理器可以轉移封包資料換式成 爲浮點模式就某種意義而言未見於軟體中,包含作業系統 在内。以此方法,此實施例相容於現存之作業系統,另一 具體實施例可能以較不相容的方式來完成,例如,一個額 外的事件可能被合併到處理器,且另—額外的事件管理器 可被併入作業系統來完成這種轉移。 如步驟732所示,浮點指執行,步驟732與於圖4b中 步驟426相類似β爲爲持作業系統保持不可見形式,有必 要使用-具體實施例改變標籤,報告現在可提供的任何數 値的錯誤,JL確定其它未決定的錯誤。如前所述,改變標 籤允許此具體實施例保留作業系統,此非其它作業系統技 術所能見,它能错存在對應指示非空狀態浮點暫存器的内 容。然’如前所述,另—具趙實施例用較少的作業系統技 術即可相容。例如,假使一現存之作業糸統並無利用標 -個不能完成這些標籤的處理器將仍然與此作業相 谷。此外,本發明;^需要等待未決的數値的浮點特例 _______ _ 55 - ϋ張尺度適财目g)家標準(CNS )糾⑻ 請先閱讀背面之注意事項4: 填寫本頁) .装
•1T 線 320708
經濟部中央標準局員工消费合作社印製 此,此另一實施例仍然在本發明範圍内。 如步骤722所示決定是否此模式指標指 資料模式,因此,在圖4八中,步驟722不同= 422,步驟722決定處理器是^在適當的模式以執行封包 資料指令,假使處理器未在封包資料模式,則將必需由浮 點模式轉移至封包資料模式以執行封包資料指令,如此, 假使處理器未在封包資料模式,處理流程進入步驟734, 否則,處理流程進入步驟7 3 8。 在步驟734中,處理器由浮點模式轉換至封包資料模式 且處理流程進人骤73 6 ’藉著圖6A中轉料元6G〇執行 步驟7 3 4且圖8將更詳細説明。 如步驟7S6所示,步驟702所接受之指令藉由執行一個 微啓動而重新啓動,因此,步驟736類似步驟73〇。 在步驟73 8決定是否封包資料指令集爲EMMS指令集, 假使正確處理流程進入步驟7 4 2,既然封包資料指令集被 執行在一分離的單元(例如封包資料單元),則它更有效率 儲存指標(如EMMS指標)於步驟728所示,當轉變回浮點 模式成爲實施例可執行的操作(例如,改變標籤成空的狀 相對應EMMS指令的執行,及改變標籤成非空的狀態, 對應於其它封包資料指令集的執行,使用EMMS指標也和 其Έ:指標一樣,將於圖9中説明由封包資料模式轉變成浮 點模式)。 如步驟740所示,此EMMS指標被更改指示上一個封 資料指令就是EMMS指令。當完成步驟 74 0時,處理器 態 相 包 即 請先閲讀背面之注意事項一一馱寫本頁 -裝.
、1T 線 -56 - 氏依尺度通用中國國家標準(CNS ) A4規格(210X297公釐)
經濟部中央標準局貝工消費合作社印$L A7 ------ --B7 五、發明説明(54 ) 被釋放以執行下一個指令(此指令合邏輯性的遵循步驟702 所受之指令)。 如步驟742所示,執行此封包資料指令而不產生任何數 値上的特例。因此,在圖4B步驟742類似步驟434,除 了頂端堆疊指標未被改變之外,如前所述,另—並非完全 不可見(作業系統〈具體實施例可能被完成就像合併作業 系統之額外事件管理器或者是處理錯誤之現存事件管理 器。假使因嘗試執行封包資料指令而產生任何記憶體事 件,則執行被中斷且事件被處理。 如步驟744所示,推測指示指出浮點模式轉移至封包資 料模式不再爲可預測。在步驟744中,處理流程進入步驟 746,此推測指示的運算將進一步於圖8中説明。 如步驟746所示,決定是否封包資料指令導 入任何化名的暫存器内。如果是,則處理流丨== 748,否則,處理流程進入步驟75〇,因此,圖4B中,步 驟746相類似於步驟736。 在步驟748中,化名暫存器對應之污損指標被改變成污 損狀態,且處理流程進入步驟750。當封包資料模式轉移 至浮點模式時’此污損指標使用於步驟7 2 8中,如前所 述’此污損指標被使用於識別那些等待及指數欄位應被寫 成1的浮點暫存器。在一實施例中’ 1被寫入算符及指數 欄位。另一具體實施例可能使用任何値代表nan(非一數 字)或無限大,在另一具體實施例中將不需要步驟746及 748,此實施例之算符及指數櫊未被更改。 -57- 彳紙張尺度適用中國國家標準(CNS ) A4規格(2!〇><297公釐) 請先閏讀背面之注意事項i填寫本百) -裝- 訂 A7 B7 五、發明説明(55 經濟部中央標準局負工消费合作社印製 如^驟750所示,此EMMS指標被更改指示上一個封包 ",扎令就是EMMS指令。當完成步驟75 〇後,此系統被 釋放執行下—個指令,當然,未利用EMMS指令之實施例 即不需步驟738 ’ 734及步驟750。 因此,一現存作業系統相容方法和裝置(諸如此類有效的 出算於田觥微軟公司,華盛頓的Ms_D〇s視窗作業環境) 可執行封包資料指令,且可提昇良好程式設計技術。因爲 封包資料狀態,被化名成浮點狀態,此封包資料狀態,將 被保留及恢復藉由現存作業系統如同它是浮點狀態一般。 f者,因爲藉由現存之作業系統事件管理器執行封包資料 私:集產生的事件,這些事件管理器不需被修正且新的事 件管理器不需要増加。結果’之前可相容的及可昇級的處 理器,的確需要成本和時間去發展或修正一個作業系統。 這實施例的變化例中有一些已加以説明,可能是全部或 部份地相容於諸如此類作業系統且/或提供良好程式設計 技術。例如,本發明之另一具體實施例可能移動某些步驟 到不同的位置流程圖中。本發明之其它實施可能改變 除一或各步驟,假使某些步驟於移除如圖7A , 7B和〉且 7C,某些硬體於圖6A中將不需要。例如,假使emms指 令未利用,此EMMS指標則不需要,當然,本發明可能對 任何一種系統結構有用,在此説明之結構未被限制。 再者,已應用一方法和裝置説明化名爲兩個實質暫存 檔,另一具體實施例可化名任何—個實質暫存檔去執行任 何一個不同型式的指令集。此外,此實施例說明,參考一 請 先 聞 面 之 注 項 装 訂 -58- :紙張尺度適用中國國家標準(CNS ) A4規格(2ΐ〇χ297公楚) 、發明説明(56 ) 經濟部中央揉準局貝工消費合作社印装 H r 純料㈣令集及—㈣質平姆型暫 執行封包資料指令集,在這裡所談収方 ^ 二名至少-個實質堆疊暫存標及至少—個t質平坦^ 檔,而與在這些暫存檔將執行指令集的型式皋關。 此外,已説明-執行浮點及封包資料指令的方法及裝 置,另-具體實施例可提供以執行任何—個同型式的指人 集’例如’所前所述’此封包資料指令集可完成以心: 理器執行封包整數運算及/或封包浮點運算。如另一範 例,另-具體實施例可化名實質暫存料爲執行微小的浮& 點及微小的整數指令集,而非化名或在浮點暫存器的封包 資料指令集β另一具體實施例在整數暫存器中可能化名成 封包資料指令集,如其它範例,另一具體實施例可在一個 單一邏輯暫存檔化名微小浮點,微小型數及封包指令集(整 數且/或浮點)的執行。因此,在此説明的意義用來使得 合邏輯地表現在軟體中,此軟體是一個單邏輯暫存樓有 的執行不同資料型式的指令集。 圖8爲本發明之一實施例流程圖説明一執行方法。如 所述,在步驟754中,此處理器由浮點模式被轉移成封 資料模式,由步驟722,處理流程進入步驟800。 如步驟800所tf ’決定是否有任何在先前的浮點指令 中的未決定錯誤。如果有,處理流程進入步驟724 。 則,處理流程進入步驟8 0 4,因此步驟8 0 0相似於圖7 步驟720及圏4Α之步驟422。 如前所述,在步驟7 2 4中,產生此未決的浮點錯誤異常 它 前包 集否 之 請 先 閲 背 面 之 注 意事 項 会 裝 訂 -59- 本紙浪尺度適用中國國家標準(CNS ) Α4規格(21〇X 297公釐)
經濟部中央標準局貞工消費合作社印製 及適當的事件管理器被執行β 4 424,此一事件可能:當仃作= 所述’參考團4Α之步骤 理。在另-實施例,諸如此心部或外部事件及加以處 時留待未決。在另-個變更;㈣包資料指令集 時,諸如㈣线崎解\實施財’執行封包資料指令 :步驟804所不’存在浮點暫存器殘値 2包資料暫存器,如此—來存在浮點暫存 == =資料-樣操作’如果全化名作業完成,則在所 :存::存㈣料複印至對應封包資料暫存器 地’如果配置部份化名作業,可配置—實施例 指示非空狀態之浮點暫存器殘値區之資料複G 所以變更實施例將不允許儲存於浮點暫存器之= 被操作,流程自步驟804進入步驟8〇6。 令:=二:旨令 科模式初始化。 ㈣8G8。此步縣行封包 :步驟8G8所示’每料染指標變動指示清潔狀態並 步驟81〇,步驟8〇6及8 08執行封包資料模式初始化。 如步驟810所示,推測指標變更而指出浮點至封包資料 轉移具推測性的。雖然像存在浮點暫存器之資料已在步驟 變卩至,資料暫存器’但浮點單元之狀態並未改 來浮點狀態仍爲現用的(例如:浮點暫存器殘 値區之資料相當料在封包資料暫存器之資料,·標藏未; 資 至 請先閲讀背面之注意事項4;从寫本頁) -裝·
.1 I .纸張尺度適用t固國家標準(CNS )如規格(2IGX2_着 -60- 五、發明説明(58 ) 經濟部中央樑準局員工消費合作社印製 改,頂端堆#指標未被更正)。如果—封包㈣指令接著 執行,則儲存在封包資料暫存樓之資料將會變更,而浮點 狀態也不再爲現用者。結果’有封包資料模式轉移至浮點 模式會要求浮點狀態需予更新(例如,存在封包資料暫存器 々資料會被複製至點暫存器之殘値區;頂端堆叠指標必需 變成〇而標籤也必須變成空狀態)。然而,如嘗試先執行浮 點指令集再執行任何封包資料指令集(這造成如果—事Ζ 執行封包資料指令先發生則會導致浮點模式轉移至封包資 料模式,例i,如|在嘗試執行封包資料指丨時發生記憶 體故障),料點狀態不需更_它現在仍在使用中。爲ς 免更新’自封包資料模式轉回至浮點之殘値區的操作,將 會刻意減少。爲了事實上的需要,推測指標在此步驟變 更,指出自浮點單元轉移至封包資料單元是推測性的,一 浮點狀態仍爲現在使时者。如果_封包資料指令接著執 行,則推指標會變更以指出此轉移不再是推測性的。如先 前圖7之步驟744所説明,推測指標之使用在圖9中將詳 加説明。當使用推測指標説明一實施例時,適用之實施例 會避免履行此一推測指標。 步骤812中,模式指標被變以更指出處理器正在封包資 料模式,然後自步驟812進入步驟736。 圖9 一流程圖根據本發明之實施例説明執行圖7之步驟 728的方法。如前所述’在步驟728中,處理器合自封包 資料模式轉移至浮點模式,然後自步驟726至步驟39〇〇'匕 步驟900中決定推測指標指出轉移至封包資料模式是否 (請先閲讀背面之注意事項k "'寫本頁) -裝- 訂
32G708 Α7 Β7 五、發明説明(59) 經濟部中央標準局員工消費合作社印聚 仍是推測性。如前所述,推測指標可用來減少自封包資料 模式轉移至浮點模式之過載。如果在步驟900中決定出浮 點轉移至封包資料是推測性的,則步驟9〇2至步驟91 2可 省略,直接進入步驟914 ,而轉移過載會被減少,否則則 進入步驟902。 如步驟902所示,其中決定EMMS指標所指出的最後封 包資料指令是否爲EMMS指令β如果是,流程進入9〇4, 否則流程進入906,如前所述,封包資料指令集在—獨立 單元(也是封包資料單元)執行,使其更有效儲存指標(例; EMMS指標)’以確認當轉移回到浮點模式而非執行某種運 算(例如變換標籤)’以確認當轉移回到浮點模式而非執行 某種運算(如例如變換標籤)時,那些動作需要執行,如此 —來,EMMS指標變動而非變動標籤來與emms指令相 呼應。錢當執行轉移回到浮點模式’標籤會跟著變動, 如文中所示。 步骤904巾’所有標籤會變成空狀態且流程進入步驟 908用這種方法,標籤會變動與圖4B之步驟432類似。 在步驟906中,所有標籤變成非空狀態且流程進入 908 ’用這種方法,此標籤會像圖4B步驟44〇之類似方式 變動。 如步驟908所示,封包資料暫存器之内容被複製到浮點 暫存器之底數區且流程進入步骤91〇。使用此—方式,儲 存在封包資料暫存器之資料就可像浮點資料一樣操作。此 外’當執行多種任務時,既然現有操作系統已儲存浮電狀 (請先閲讀背面之注意事項144寫本頁) m n^— HI I-I— nn · •裝_ 訂· 々紙張尺度適财賴家料(CNS ) 公釐) 62- 經濟部中央標準局貝工消費合作社印製
五、發明説明(60) •t、’則封包資料狀態會被儲存τ來^自不同背景結構再如 浮點狀態般加以儲存。使用此一方法,實質封包資料暫存 器被化名在實質浮點暫存器裝,且處理器會合邏輯地出現 有-單-邏輯暫存樓。結果,此實施例之運作將無視於此 -軟體的存在,包含操作系統。如果全部化名均已配置, 則儲存在所有封包資料暫存器之資料會被才复製到對應浮點 暫存器之底數區。相對地,如果配置部份化名,可配置— 實施例,只有儲存在那些有接觸的封包資料暫存區的資料 會被複製到與浮點暫存器適當對應的底數區。 噙步驟910所示,頂端堆疊變成一初始化値。在此實施 例中,此値爲0 ^ —變更之實施例裝,任一封包資料指令 之執行將頂端堆疊指數設定成初使化値,自步驟91〇流程 進入912。 如步驟912所不,1被存在那些浮點暫存器之符號與指 數區,那些與污染指數有關之浮點暫存器則在污染狀態, 用這種方法執行圖4B之步驟438,自步驟912流程進入 步驟9 1 4。 在步驟914中,變更模式指數以指出處理器在浮點模式 下被操作且流程進入步驟736。使用此一方法,封包資料 模式轉移至浮點模式。 圖1 0之方塊圖説明根據本發明之另一實施例,説明使用 單—實質暫存器檔的符點狀態上,用於化名蜂包數據狀 的資料流程。圖10之裝置至少能執行指令組5 8〇。圖J 請 先 閲 讀 背 之 注 I- 食 裝 訂 態 0 顯示一解碼單元1 002,一重新命名單元1〇〇4,一撤回單 63 - 表紙張尺度適用中國國家標準(CNS ) A4規格(210X:297公;t ) 五、發明説明(61) 元1006,一發佈單元1008,一執行單元1〇1〇,—組狀 態暫存器1012及一微碼ROM 1014。 解碼單元1002用來將處理器所接收之指令集解碼成控制 仏號及/或微碼進入點。這些微碼進入點辨識自解碼單元 1002轉移至處理器内不同單元之微處理(又稱UOPS)之順 序。當某種微處理可能被存在解碼單元1002 ,在一實施 例,大多數之微處理會被存在微碼記憶體1014,在此實施 例,解碼單元1 〇 〇 2將微碼進入點轉移至微碼記憶體1 〇】4 且它藉著轉移回解碼單元1〇〇2回應所需之微處理。 解碼單元1 002所接收之大部份指令包含一個或多個運算 疋(不是資料,一暫存器位址,或一在記憶體之位址)指令 集之運算則在此執行,那些運算元會視暫存器是被轉移至 重新命名單元1 004。 重新命名單元1004及撤回單元 ,…1川不元风贅存器^ 名’暫存器t命名技術是眾所皆知的且是用來執行避突 不同指令集嘗試用一些有限之儲存値址造成儲存衝突。分 如暫存器即使相衝突之指令集應是獨立的但當諸如此類泛 指令集與其他指令集相衝突時’财衝突還是會發生儲為 =突’可經由提供額外暫存器(參照此處之緩衝暫存器 消=,暫存器是用來重新設立暫存器及値之間之一致性, 爲完成暫存器重新命名,處理器典型地爲每_個新產生之 値分配位址至不同之緩衝暫存器:也就是爲每—個指 —暫存器’一個指令辨識最初暫存器,爲目的在分配:址 之緩衝暫存器得到暫代値,如此_來,硬體重新;= 32Q7Q8
指令集之最初暫存器辨認此緩 左哭你普斟淹、发衝臀器及正確値,根據與暫 存器作業對紅暫存器參考之位址,在幾個不同指令集之 相同暫存辨識器可存取不同硬體暫存器,關於暫存器重新 命名之更進-步的説明,參見強森,麥克的“超小型微處理 器設計:,1991由紐澤西得PTR Prentice Hau⑹發 行,暫存器更名表格的旗標命及遮罩”,序號 〇8/204’521 ,由ColweU et al等人所有,,,處理器更 名表格之整數及浮點暫存器,,序號08/1 29 678,由cun et. al·提出;及’’暫存器更名表格之部份欄寬度,,序號 〇8/1 74,84 1 ’ 由 C〇i〇welI et al 提。,當一指令已成 功地執行(沒有導致任何事件未被解決),分配位址之緩衝 暫存器指令集會被撤回,一値會自緩衝暫存器轉移至指令 禋辨識I最初暫存器,變通之實施例可配置消除儲存衝突 之技術。例如内部鎖定,部份重新命名等。 撤回單7G 10〇6包含一組緩衝暫存器1〇2〇 ,一组 FP/PD暫存器1〇22,及一組整數暫存器1〇24。緩衝暫存 器组1020提供額外暫存器以用來重新命名暫存器。在一實 施例中’緩衝暫存器組1020包括40個暫存器。變更之實 施例可配置任一種暫存器。在此實施例中,這組緩衝暫存 器1 0 2 0將如記錄缓衝器般予以操作。 在一實施例中,;FP/PD暫存器1〇22及整數暫存器 1024可操作此軟體,也就是説這些是在指令集内被辨識的 暫存器,且如此一來,它會顯示在軟體上表示這些只是執 行浮點資料,封包資料及整數資料之暫存器。相對地,緩 請 先 聞 讀 背 之 注 % 訂 經濟部中央標準局貝工消費合作社印製
人紙張尺度適用中國國家標準(CNS )八4規格(210x297公釐) A7 五 '發明説明(63) 衝暫存器1022非此軟體所能操作,因此,FP/PD暫存器 1022是一單一實質暫存檔,它會出現在軟體上成爲一單— 邏輯暫存檔。在一實施例中,FP/PD暫存器組1022與整 數暫存器10 24各含8個暫存器與現有英代爾結構軟體維持 相容。然而變通之實施例可配置任何數目的暫存器。 重新命名單元1004包括一 FP/PD對映單元1〇3〇,一 FP/PD對映表1〇32,一組標籤1〇34,一整數對映單元 1040及整數對映表1042,當重新命名單元1〇〇4接收到 一運算元’它會決定此運算元是否是—浮點運算元,—封 包資料運算元或一整數運算元。 經濟部中央搮準局貝工消費合作社印袈 整數運算元被整數對映單元1〇4〇所接收,整數對映單元 1040控制整數對映表1〇42,在一實施例,此整數對映表 1042包含相同數量之項目因在整數暫存器ι〇24有暫存器 在整數對映表1042的任一項目與不同的整數暫器1〇24相 一致’在圖10,1050項目與整數暫存器1〇52 一致,當一 指令被接收會導致處理器去寫入一整數暫存器(例如,:數 暫存器1052),此整數對映單元104〇藉儲存一指樣在整數 儲器的整數對映表1〇42(例入項目1〇5〇)之項目來分配一 緩衝暫存器1 020,則會在一組缓衝暫存器1〇2〇(例如緩衝 暫存器1 054)裡辨識一有效暫存器,此資料是被窝至選擇 好2緩衝暫器(例如緩衝暫存器1〇54) ^當執行產生運算元 <指令,在毫無中斷(不用採取任何事件)之情況下完成, 則撤回單元1GG63會確減資料藉著自選擇好的緩衝暫存 器(例如緩衝暫存器1 054)將它複製到適當整數暫存器(例 -纸張尺度適用 (CNS} A4i^~{ 2ΙΟΧ297/α^ -66 _ 五、發明説明(μ ) A7 B7 經濟部中央標準局員工消費合作社印裝 如整數暫存器1052)並導致整數對映單1〇4〇去更新此項 目(例如項目1 050)之内容使其指出資料是被存在與項目對 應之整數暫存器中。 备一個會導致處理器去讀一整數暫存器之指令被接收 時,處理器會使用FP/PD對映單元1〇3〇存取在整數對映 表1〇42(例如項目1〇5〇)内與整數暫存器之項目的内 容,如果此項目包含一個至緩衝暫存器(例如:緩衝存器 1054)之指標,則處理器讀該緩衝暫存器之内容。然而, 如果項目之内谷指出資料被存在項目之對應的整數暫存器 (例如:整數暫存器1 052)時,則處理器讀取對應整數暫存 器之項目的内容,如此一來,整數暫存器1〇24之配置如本 發明實施例中一固定暫存檔般。 FP/PD對映單元1 030控制Fp/pD對映表1〇32及標籤 1 034。如前所述,每個標籤可藉使用任何値元來完成,類 似整數對映單元1 040,FP/PD對映表1〇32包含相同數 量之項目因爲有暫存器在FP/PD暫存器1〇22 ,每個在 FP/PD對映表1032内之項目都與一個不同的pp/pD暫存 器1022相呼應。浮點及封包資料運算元被fp/pd對映單 1030所接收,對映至緩衝暫存器ι〇2〇在傳回至fP/Pd暫 存器1 022。如此一來,浮點狀態及封包資料狀態被化名在 一單一使用者能見之暫存檔中。當執行多重工作時,配置 現行作業系統導致處理器错存浮點狀態,則相同的作業系 統會導致處理器错存任何一化名在浮點暫存器之封包資料 狀態中。 請先聞讀背面之注意事項iiA寫本頁 -裝. 丁, 線J- -67- 32G7〇s 經濟部中央榡準局貝工消費合作社印製 五、發明説明(65 法:實施例中’封包資料運算元以-類似整數運算元之方 處理,-封包資料暫存器會像—個定暫存㈣方式被完 如此-來,當—個會導致處理器窝至一 Fp/pD暫存檔 =令將被接收,則FP/PD對映單元1㈣藉儲存一指標 對映表1()32之FP/PD暫存器對應項目分配至缓 衝暫存器1G2G以辨識在這組緩衝暫存器1()2()内—可利用 =存器,資料被寫至選擇好的緩衝暫存器。當執行產生 ^ (指令在被毫無中斷(不需採用任何事件)情況下配 六則撤回單元會確認此資料。藉著自選擇好的緩衝 暂存崙,將它複製到適當的FP/PD暫存器(此Fp/pD暫存 器與在FP/PD對陕表1〇32之项目相呼應)並導致 對映單元1 030更新在FP/PD對映表1〇S2之項目,以指 出資料存在項目對應的FP/PD暫存器。 當執行封包資料指令集時,暫存器配置成—固定暫存 檔。當使用—能與現有英代爾結構軟體(包括作業系統)相 容之方法來執行浮點才旨令集時,貝,】配置一實施例其將暫存 器檔變成一堆疊參考暫存檔。結果,Fp/pD對映單元 1030必須能操作FP/PD對映表1〇32使其成爲封包資料運 算元之固定暫定檔及浮點運算元之一堆疊暫存檔,最後, FP/PD對映單元1030包括一個有一頂端堆疊區之浮 點狀態暫存檔1〇70 ^堆疊欄位1〇72被用來儲存頂端堆疊 指標指明在FP/PD對映表格一個入口,代表暫存器目前在 浮點堆疊頂端。當然,另一例當執行浮點指令時能操作暫 存器當成一平板型暫存檔。 •68- 表紙張尺度適用中國國家標準(CNS ) A4規格(21〇X297公釐 (請先閲讀背面之注意事項& 填寫本頁) -裝-
、1T 線 - — - B7 五、發明説明(66) '—--——^ 當-個浮點指令被收到時將會引起處理器窝入Fp/pD暫 存器,FP/PD對映單元1〇3〇藉著錯存在Fp/pD對映表格 ⑻2的堆叠暫存器的對應入口頂端_個指標指示在緩㈣ ^ j 存益1㈣的集合裡有—個可用的暫存器。資料會被窝到被 U丨丨 選擇的緩衝暫存器。當指令執行時產生的算符沒有任何中| J 斷的完成(沒有任何事件發生),回撤單元1〇〇6藉著從被選| | 取的緩衝暫存器複製資料到合適的FP/PD暫存器(與在 |丨 FP/PD對映表格1 032的入口相關的Fp/pD暫存器),同 Γ j
時引起FP/PD對映單元1〇3〇更新在Fp/pD對映表格 雾〒 1 032的入口來指出資料被儲存在入口的對應Fp/pD - I 器。 |
當接收一個浮點指令時,將使得處理器讀取fp/pd暫存 J 器,處理器存取在FP/PD對映表格1〇32頂端堆疊暫存器 訂 對應入口的内容並且同時地改變堆疊内容。如果—個緩衝 [
暫存器的指標被儲存在入口處,處理器會讀緩衝暫存器内 I 容。然而,如果入口的内容指示資料是儲存在Fp/pD暫存 , 器1 022入口的對應FP/PD,處理器會讀FP/PD暫存器的 -丄 内容。 ‘j 因此由於FP/PD對映單元1 03 0對映浮點算符於一個堆 [ 經濟部中央橾隼局貝工消費合作社印裝
疊參考暫存檔,在FP/PD對映表格1 032的入口必須被存 J
取於堆疊頂端。相對地’由於FP/PD對映單元1030對映 I 封包資料算符於一個固定的暫存檔,在FP/PD對映表格 | 1〇32的入口必須存取於暫存器r〇。爲了促使處理器存取 | 相對於暫存器RO的FP/PD對映表格入口,在頂端堆疊指 | _ _ -69- 九紙張尺度適用中國國家標隼(CNs ) A4规格(210X297公釐) 翅濟部中失棣準局貝工消費合作衽印製 五、發明説明(67 標必須?文變以指不暫存器R0。因此,當處理器正執行封 包的資料.指令集時,頂端堆叠指標必須改變以指示暫存器 R0藉著配置堆叠指標以指示暫存器R〇從浮點運算模式 到封包資料模式的傳導,同時在執行封包資料指令集期間 不改變頂端堆叠指標。在此_方法下,被使用去對應浮點 堆叠的相同電路也能夠用以對應固定封包資料暫存楼。牡 果,電路複雜程度降低了,同時可去除死角區域,請參考 圖6 A之説明。-實施例説明同_電路用來對應封包資料及 浮點運算碼’另一實施例能使用各別的電路。 不論執行何種型態的指令,在一實施例中,緩衝暫存器 的配置及分置以同樣方法處理。回撤單元1GG6包含-個有 -分配欄位1()62及回撤棚位1()64的狀態暫存器ι〇6〇, 分配糊位1G62儲存—配置指標指示將使用的下—個緩衝暫 存器。當FP/PD對映單元1〇3〇或是整數對映單元ι〇4〇 兩者之-需要-個暫存器時’目前的分配指標儲存於適當 的對映表格(例如’ FP/PD對映單元1〇3〇或是整數對映表 格1〇42)同時配置指標増大。甚且,更名單元ι〇〇4傳給回 撤單^0()6信號,指出是否-㈣包資料指令以 理器爲封包資料模式。 ^ 在被分配的緩衝暫存器中,回撤單元1〇〇6儲存一在準備 欄位刚2中的備用指示。剛開始時,備用指示改變以指示 2暫存器尚未準備呈回撤狀態。但是,當資料被寫入緩 衝暫存器的資料櫊位1G8G,緩衝暫存器的準備指示改變以 指示緩衝暫存器準備呈回撤狀態。
-70
五、發明説明(68) 經濟部中央樣準局貝工消費合作社印製 狀態暫存器1060的回撤棚位1〇64错存 明下一個續衝勒产gg Φ 回揃^指標指 月下個緩㈣存器要㈣1緩衝暫存 改變爲-準備狀態,回撤單元1〇〇6必須決C不被 存器的資料能被執行β隨後將進—步説明,緩衝暫 f生或者如果在封包資料以及浮點模式之間任何傳二:: 備未備妥異常,未決的浮點異常,無效執行碼= 等如,設 如果資料能被處理完成,資料將被複製到適當的F ) 整數暫存器同時回撤指標將增大至下一個緩衝暫存二 :撤:及:置指標已説明過的已被儲存在—個控制暫: 器,另一實施例能以一些依序的單元型式,如—組正 器,錯存這些指標以及任何文中説明的其他資訊(例如, MMS指示,模式指示等等)。 一實施例已説明,其中回撤單元1〇〇6包含三個分隔集入 的暫存器及資料從緩衝暫存器至Fp/pD暫存器或是整數; 存器被處理完成。另一實施例能被完成以包含任何數目 =同暫存器的集合。舉例來説,另一實施例能夠包含一 單一集合的暫存器。例如,在此暫存器組中每一暫存器 夠包含一個指示指明是否儲存在此的資料能被處理。 在—實施例中,處理器爲一浮點模式或是—個封包資料 模式。如果處理器不是在封包資料模式,處理器無法適杏 的執行任何封包資料指令,反之亦然。結果,在緩衝暫^ 器資料處理完成之前,回撤單元1〇〇6決定資料是否爲封 資料以及處理器是否在封包資料模式。如果資料是封 請 先 閲 讀 背 Sr 之 注 項 再^ 填 頁 ΐ 的 個 能 包 包資 用中國國家標準 -71 - (CNS )八衫桃(210X297公釐) 32(5708 A7 B7 五、發明説明(69 ) " 料以及處理器不在封包資料模式’在微碼唯讀記憶體1〇14 中,觸動傳導單元1036以實行到封包資料模式的傳導。在 一實施例中’藉著決定是否頂端堆疊指標改變爲初始値來 決定是否處理器是在封包資料模式(例如,指標暫存器R 〇 ) 以及所有的標籤1〇34是在非空狀態。 有一些技術使得處理器得到頂端堆疊指標以及標籤1〇34 以決定是否處理器是在封包資料模式。舉例來説,先前提 過解碼單元1 002存取來自微運算碼唯讀纪憶體1〇14的微 運算碼。這些微算符包含一個編碼欄位來指明藉著Fp/pD 對映單元1 03 0來表現的適當的對應。(例如,増加頂端堆 叠才曰標減少頂端堆叠等等)實施例至少包含一個額外的編碼 位元型態(在此有關封包資料位元型態)以指明爲了封包資 料指令的對應。因此當解碼單元1002收到一個封包資料指 令及存取微運算碼唯讀記憶裡,至少微運算碼有—個會傳 輸至解碼單元1002包含封包資料位元型態.。 在一收到包含封包資料位元型態的微運算碼,Fp/PD對 映單元1 0 3 0 : 1 )決定標籤i 〇 3 4的狀態以及頂端堆疊指 經濟部中央標準局貝工消費合作社印裝 標;2)傳送到回撤單元1 006信號指明是否需要—個到^ 包資料模式的(實施例,處理器的模式以及指令型態被傳 送),爲了回覆,回撤單元1006儲存於藉由指令配置一個 在轉移攔位1 0 8 4傳送指令的任何緩衝暫存器。(例如 移指標包含一個第一個位元指明處理器的模式以及個叶 二個位元指明指令的型態)。因此,如果指令是—個封勹乐 料指令以及處理器不是在封包資料模式,適當緩衝暫 -72- 太紙張尺度適用中國國家標準(CNS ) A4規格(210X297公楚 經濟部中央標準局貝工消費合作社印製 五、發明説明(7〇 )2模式指標被改變以指明需要傳送,適當緩衝暫存 式指標被改變以指明需要傳送。否則 以 ::要轉移。當藉著回撤指標指明的緩衝=:::: 示被改變爲準備狀態’回撤單元1〇〇6會檢香, =。:果轉移指標指明不需要一轉移同時如果資料能‘ 撤(例如,沒有必須處理的事件)’資料就回撤。相對 如果轉移指標指明需要-個轉移,回撤單元刚6傳送微碼 入口指標給轉移單元1 036到微運算碼唯記憶體ι〇ΐ4。 了回覆微運算碼唯讀記憶禮1G14傳送必要的微運算碼 移處理器到封包資料模式。 在這種方式下,到封包資料模式轉移的合作關係僅需要 在複雜度上些微增加。當然,另一實施例能夠以任何方式 ,成這種功能性,包括:丨)在一收到引起更名單元1〇〇4 得到標籤以及頂端堆疊指標的一個封包資料指令時,即就 7解碼單元10〇2傳送特殊信號;2)增加位元於所有的微 算符以指明是否應得到標籤以及頂端堆疊;3 )每當—緩衝 暫存器分配時,令FP/PD對映單元1 030獲得標籤以及頂 端堆疊指標;4)當一個封包資料項目準備被處理完成時令 回撤單元1 006指標給FP/PD對映單元1 03 0 ’以及如果 處理器不是在封包資料模式時令FP/PD對映單元驅動移單 7G 1036等等。然而實施例不論處理器是否是在根基於頂端 堆#指標的封包資料模式以及標籤1〇34,另一實施例能夠 使用任何方法,包括如同先前説明到的模式指標。 如前所言,轉移單元1〇36被用於從浮點模式到封包模式 73- 支紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) (請先閲讀背面之注意事項一1¾寫本頁j .裝. -訂· -!i 1 T — 經濟部中央標準局員工消費合作杜印製 五、發明説明(71) 傳达至處理器,轉移單元1036使得處理器改變頂端堆疊指 標成爲初始値以及改變所有的標籤1 034成爲非空狀態。在 這種方式下,更名單元1 004爲了封包資料指令的執5被初 始化。在一完成轉移後,引起浮點到封包資料模式轉移的 指令被重新微啓動。結果,不需要非微運算碼事件處理(包 括作業系統事件處理)以及實施例是不可視的作業系統。當 轉移單元1 036顯示位於微運算碼唯讀記憶體1〇14,另二 實施例能夠在處理器上任何地方安置轉移單元1〇36。在另 個實施例中’可配置轉移單元1 〇 3 6以從浮點模式至封包 資料模式來實行轉移。在傳送期間,轉移單元1〇36能保存 現有頂端堆疊指標在儲存區以及改變頂端堆疊指標爲初始 値。當轉移單元1036再度驅動來轉移回到浮點模式,轉移 單元1036將儲存先前的頂端堆疊指標。更進一步來説,在 另一實施例,轉移單元1〇36能夠在硬體被完成或是以一種 非微運算碼事件處理儲存在處理器外侧。 如前所述之一個實施例,每一個封包資料指令被EMMS 指令所終止。在回覆以執行EMMS指令,執行單元101 引起更名單元1004改變標籤1034成爲空狀態。因此,在 執行EMMS指令之後,處理器是在浮點模式:那就是所有 的標籤1〇34都在空狀態以及頂端堆疊指標是在初始狀態 (如前所述,當傳送至封包資料模式以及在執行封包資料指 令期間不被改變,頂端堆疊指標被改變爲初始値)結果,爲 了從封包資料模式至浮點模式實行一次傳送不需要一個轉 移單元。這不同於圖形6A中所説明的轉移單元,其必須被 0 J---.------^II (請先閲讀背面之注意事項ItiK寫本頁) 訂 線 -74- 良紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 五、發明説明(72 ) 觸動處理器以及在浮點及封包資料模式之間來回轉移a 且,由於一個單一的化名暫存擋被用於浮點以及封包資料 狀態’這種傳送不要求複製資料於二個分別的暫存橋之 間。結果,電路複雜度減低,同時消除處理器的死角區。 在另-個具體的實施例,標籤以及頂端㈣指標的 被完全地或部分地表現在封包資料指令的執行。例如 夠避免需要用轉移單元藉著:υ引起非EMMS指令的每— 個封包資料指令的執行以改變頂端堆#指標爲初始値以及 改變標籤至非空狀態;以及2)引起EMMs指令的執行 ^票籤至空狀態。另-實施例中’不配置EMMs指令,但 是,使用浮點指令競爭,稍後於圖14中將會加以説明。 經濟部中央標準局員工消費合作社印製 發行單元1008代表一個儲存指令和運算碼的緩衝器。發 =單元1 008能狗配置—系列保留站,—個中央指令視窗或 是兩者的結合。當使用保留站時,每一函數的單元(例如, 算術及邏輯單元ALUS)有自有的緩衝器來儲存指令及資訊 指明他們的對應運算碼。相對地,當使用—個中央指令视 窗,一個對所有函數單元共有的中央緩衝器被用來儲^指 令及資訊指明其對應運算碼β —指令的對應運算碼能具有 多種不同的格式,端視所使用的資訊種訊種類而定。如果 眞實値不可用,然後一指令的對應運算碼驗明該暫存器爲 在FP/PD暫存器1〇22,整數暫存器組1〇24,或是緩衝 暫存器組1〇2〇,端賴資料的型態及是否資料已被處理完成 來決定。當眞實質成爲可用時,隨後資料儲存在緩衝器 内β自―實施例中’發行單元1008也從更名單元1〇〇4接 ________ -75. 本紙張从適财關家標準(⑽)( 2!()χ297公瘦) 五、發明説明(73 ) A7 B7 經濟部中央標準局貝工消費合作社印製 收到資訊。然而’ $資料爲本發明所需要了解者。當要求必要的資訊時,發行單& 1 008發佈指令給執行單元 10 10 〇 執行單7C 1 〇 1 〇執行指令,執行單元丨〇〖〇傳送任何必須 儲存在回撤單S 1G06中儲存的運算碼資訊,如同先前所提 及者。在一實施例中,由於指令可能由於缺乏發行單元 1〇〇8中延遲的運算碼資訊。執行單元ι〇ι〇也傳送任何運 算碼資訊予發行單元1G()8。在此方式下,任何目送運算碼 資訊給回撤單元1〇06以及之後給發行單元1〇〇8的額外延 遲應避免。執行單元1010與狀態暫存器1〇12耦合,狀態 暫存器1 0 1 2藉著執行單元丨〇丨〇儲存控制資訊再加以使 用。此控制資訊能包括一個ΕΜ指標以及一個TS指標,此 前文已提及。執行單元·1010包括一個資料排列單元 1〇90(也如同一個’’載入/儲存轉換單元,’型式)來排列回 撤單元1006存取的各種不同型態的資料,有關於圖12及 1 3的資料排列單元作業將會更進一步陳述。 標籤1034的改變可使用各種不同的技術來完成。舉例來 説’圖10顯示FP/PD對映單元1030也包含一個標籤修改 單元1092來改變標籤。標籤修改單元1〇92也可用各種方 法來完成,包括那些有關於圖6B已説明過的方法。 舉例來説,實施例由於浮點指令能完成以致於並非所有 的標籤需要在一次被修改標籤修改單元1 〇 9 2被完成以致於 它無法一次修改所有的標籤(先前有關圖6Β已説明過的實 施例)。爲了避免電路過於複雜’標鐵的全域修改爲回覆— 請 先 聞 讀 背 面 之 注 項 頁 裝 訂 -76 木紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) A7
到封包資料狀態的傳送,或是EMMS指令的執行可藉由此 現存的機構完成。在此考量下,一個微運算碼指令集合, 以EMMS單元1094表示,可儲存在微運算碼唯讀記憶體 10 14以完成EMMS指令。在EMMS單元1094及傳送單 元1 03 6的微運算碼指令會使得解碼單元1〇〇2發出幾個現 存的微算符來改變八個標籤的每一個中的每—個標籤。因 此’爲了回覆收到EMMS指令,解碼單元ι〇〇2將存取 EMMS單元1094同時發出數個現存的微運算碼。爲了回 覆這些微運算碼的每一個運算碼,標籤修改單元1〇92將修 改對應的標籤到空狀態,相對的回覆存取轉移單元1〇36。 解碼單元1 002將發出數個現存的微算符,使得標籤修改單 元1 0 9 2改變每一個標籤,使其成爲非空狀態。在一實施例 中’標籤的全域修改可能需要4-8時脈週期。 當一個先前已説明過實施例爲了改變所有的標籤來回覆 一個傳送或EMMS指令,另一實施例可以使用任何數目的 機構。舉例來説,改變所有的標籤成空狀態或非空狀態, 可藉著包括一個新的微運算碼及完成標籤修改單元1〇92以 致於它能全域地改變標籤在一個單一的時脈週期中完成。 爲了回覆新的微運算碼(此一爲了標籤修改單元1092的實 施例參照圖6B),在此實施例中,EMMS單元1094完成 以引起解碼單元1002發出此單一微運算碼(而非數個分別 的微運算碼)以改變所有的標籤成空狀態。相對地,傳送單 元1036完成以引起解碼單元1〇〇2發出此單一的微運算碼 (而非數個分別的微運算碼)來改變所有的標籤成非空狀 _______-77- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) A7 B7 經濟部中央標準局貝工消費合作社印装 五、發明説明(75) 態。另一個例子,另一具禮的實施例可以包括一個令執行 單元1010到標籤1034及回撤單元1006耦合的匯流排。 此實施例可完成以致於回覆EMMS指令,處理器是序號化 (可藉由更名單元1004達成),此信號送到匯流排導致標籤 改變(可藉由執行單元1010達成),處理器再度又序號化 (可藉由更名單元1004達成),此實施例可能需要10-20 時脈週期來改變所有的標蕺。相對的,配置另一實施例, 如此以致於前及/或後序化可由另一個單元來達成。另一個 例子來説解碼單元1002能夠與標籤1034耦合以及包含額 外的硬體來改變所有的標籤1 〇 3 4以回應收到EMMS指 令。 因此’在圖形10的實施例,使用單一集合的暫存器執行 浮點以及封包資料單元,請參照圖6A之説明。甚且,在圖 6A的實施例需要對應的電路存取浮點暫存器當做一個堆叠 以及封包資料暫存檔當做一固定的暫存檔,而FP/PD對映 單疋1030使用相同電路。更進一步來説,不像參考圖6八 所説明的傳送單元必須觸動處理器,以於浮點以及封包資 料模式之間前後傳送,圖1〇所説明傳送單元僅需要處理器 從浮點模式到封包資料模式間傳送。甚且,因爲單一化名 暫存檔被用來浮點以及封包資料狀態,此傳送不需要在於 兩個分別的暫存·檔之間複製資料。結果,在圖10所示的 施例需要更少的電路複雜度以及解救處理器的死角區。 如前所述,當一實施例被説明爲包括指令來達成浮點一 封包資料操作,另—實施例能完成不同指令集以導致處理 實 及 請 先 聞 面 裝 訂 線 -78 本紙張尺度適用( 2.0X297^ ) 320708 A7 __B7 五、發明説明(76 ) 器來達成不同的資料型態操作。舉例來説,—個指令集可 以導致處理器來達成記數的操作(浮點及/或整數)以及另 一個指令集可能導致處理器來達成浮點運算(記數的 and/or)封包)以及另一個指令集可能導致處理器來達成整 數運算(記數的and/or)封包)。另一個例子來説,單—化名 暫存檔能被當爲堆疊參考暫存檔以及封包暫存檔來操作。 同樣的,當一個被陳述的實施例所有的化名化已完成後, 另一實施例有一單一的實質暫存檔能被部分化名的操作完 成。這將需要一些機構(例如,—個表格)來追蹤何種資料 應該被存在一單一化名的實質暫存檔中。 圖11A,11B以及11C圖示一種依據本發明令一實施 例的方法,用於在一單一化名的暫存檔中執行封包資料以 及浮點指令,用一種不可見之作業系統方法,其提供優良 的程式實施例,同時可以用圖10的硬體配置加以應用。這 流程圖相似於參岑圖4A-B及7A-C,9以及1 〇。參考這 些先前的流程圖,許多其他的實施例説明爲那一步驟需改 變’移動及/或消除。可參考圖11A_C所説明的步驟相似 於先前所説明的流程圖所達成的步驟可藉由如此的另一實
施例來達成。此流程圖在步驟11〇〇開始,從步驟11〇〇流 程進入步驟1 102。 /U 如步驟1102所示,位元集被當做_個指令存取,同時流 程進入步驟1104。這位元集包含一個運算碼證明作業由指 令達成。因此,步驟1102相似於圖4Α的步驟4〇2。 在一實施例中’下列步驟以並列的解碼階段達成。 -79- 本紙張认適财關家標準(CNS)A4_(21()X297&^) A7 五、發明説明(77 步骤1104決定運算碼是否有效。如果運算碼無效流程進 入步驟1106 ’否則流程進入步驟1108。步驟11〇4相似 於圖4的步驟404。 在步驟1106中,插入一或更多事件信號微運算碼以指示 操效的運算碼異常。事件信號微運算碼用以避免處理異 常,直到並列回撤階段爲止。如果一指令是事件信號微運 算碼’則經解碼階段’暫存器更名階段以及執行階段。然 而,當事件信號微運算碼在回撤中階段被收到,緩衝暫存 器的狀態處理同時產生適當的事件。導致在事件的指令上 或在其前,插入此事件信號微運算碼。微運算碼的使用可 更進步參考 Method and Apparatus for. signaling an Occurrence of an Event in a Processor ”,序號 08/203 ,790,作者 Darrell D. Beggs,etal.從步驟 1106,流程進入步驟i1〇8。 在步驟1 1 0 8中’決定收到何種型態的指令。如果指令既 非一個浮點指令也非封包資料指令,流程進入步驟i^ 因此’如果在步驟1106中插入—或更名事件信號微運算 碼’流程進入步驟1 1 1 〇。但是,如果指令是一個浮點指 令’流程進入步驟1 1 1 2,相對地,如果指令是一個封包資 料指令流程進入步驟1114。因此’步驟ι1〇8跟圖4A的 步驟4 0 8相似。 如步驟1 1 1 0所示,處理器執行指令。如果在步驟1丨〇 6 中插入一或更多微運算碼,則指示應產生無效運算碼異 常,微運算碼經解碼階段,暫存器更名階段以及執行階 -80 木紙張尺度適用中國國家標準(CNS > Λ4規格(210X297公釐
—-H 1^1 J J . ^-- (請先閲讀背面之注意事項P填寫本頁) 訂 經濟部中央標準局貝工消費合作杜印裝
經濟部中央標準局員工消費合作社印掣 段。然而,當事件信號微算碼到達回撤階段,緩衝暫存器 的狀態不處理同時產生無效運算碼異常。如同先前説明請 參考圖2步驟215 ,可配置此—事件管理器以導致處理器 延遲一訊息’回撤現在執行的工作,以及繼續執行其他的 工作。當然,另一實施例可提供任何不同方式的管理器, 此先前已説明過。由於其他指令的執行非本發明所需要瞭 解者,在此不作進一步説明。 步驟11 中決定是否EM指標等於丨(根據説明的軟體 慣例,如果達成一個局部的内容切換的話)^如果EM指標 及/或T S指標等於1 ’流程進入步驟i i i 6。否則,流程 進入步驟ιΐ2〇。因此,步驟1112跟圖4A的步驟4i2U相 似。 在步驟1116中,一或更多事件信號微運算碼被插入指示 設備不可用的異常產生。從步驟1116 ,流程進入步驟 1120 〇 如步騍U14及1120兩者所示,執行暫存器更名。從 步驟112〇流程進入步驟1122。相對地,從步驟1114, 流程進入步驟H34。在一實施例中,步驟11M及112〇 在並列的更名階段達成。 在一實施例中,下列步驟以並列的執行階段來達成。 如步驟M22所示,浮點指令執行步驟1122,其與圖 4B的步驟426相似。爲了維持不可見作業系統,如果必須 的話可改變標籤,回報現在可被處理的異常碼以及暫停任 何其他未決的異常碼。如前所述,改變標籤允許此實施例 請it 閲 讀 背 I 事 項 填 寫 本 頁 裝 訂 線 良紙張认適用中國ί^Τ^ΰ4·Τ2_1〇'Χ 29^7 五、發明説明(79) 作業系統不可見的技術儲存那些對應標籤指示一非空 :::浮點暫存器内容。然而,另-實施例能與某些作業 系統技術相容來達成。舉例來説如果一現存作業系 Z標籤’-處理器不提供標籤仍能跟那作業系統相容。更 步來説’本發明並不需要代決定之數値的浮點異常。 從=:/:=例能在發明的範…流程 在步驟1134中決定是否封包資料指令是謂指令。 此,步驟1134類以圖4B的步驟43{)。如 = EMMS指令,流程進入步驟"36。否則流程= —指令被用來改變浮點標鐵爲 〜、5時應執行任何封包資料指令及/或之前執行 任何净點指令轉移處理器至浮點模式的操作。 步驟1 1 3 6所不,所有標籤被改變爲空狀態,在此方式 下,標籤被初始化同時準備好執行浮點指令。在-完成步 驟H36中’流程進入步驟1144。在不提供一 指 :的實施例中,錢行㈣⑴4及1136, 步驟1114至1138 β 町田 經濟部中央標隼局貝工消費合作社印裝 如步驟1138所示’執行封包資料指令。這些步驟執行期 門1被儲存於任何Fp暫存器或任何緩衝暫存器的符號以 及指數棚位當做封包資料寫人的Fp/pD暫存器,因此步骤 1138類似於圖^的步驟434,436及43 8。如此一來, 藉由浮點及封包資料指令的分離提昇了更好的程式技術。 然而如則所述,另—實施例能避免這特性。在此實施 -82 木紙張尺度咖t @ @家樣準(CNS ) Α4^Τ2Η) χ 297公缝 五、發明説明(如) 例’ 1被寫入符號及指數的攔位,另—實施例能使用任何 數値代表NAN(非-個數目)或無限。更且,且此步驟無須 產任何數値的異常即可達^如果任何記憶事件能產生結 果試圖執行封包資料指令,執行被中斷同時事件被處理, 流程從步驟1138進入步驟1144。 在一實施例中,下列步驟在並列的回撤階段中達成。 在步驟1124中決定指令是否爲一指示設備不可用異常之 事件信號微運算碼。如果是的話,在步驟1112它決定ts ,EM指標兩者之一或是兩者均等於1 。因此,如果指令 是指示設備不可用異常的事件信號微運算碼,流程進入步 驟1126。否則,流程進人步驟1128。在此方式下,設備 不可用的異常可利用暫存器更名動作與處理器合作。 在步螺1126中,產生設備不可用異常,且執行對應的事 件管理器。因此,步驟1126類似於圖4A的步驟416。如 前所述,事件管理器可被供應使用EM及了 否爭取浮點指令及/或是否達成一個局部二 前所述使用ΕΜ及TS指標是一軟體慣例,也因此可用於其 他用途。 ' 經濟部中央標準局員工消费合作社印裝 如步驟1144所示,它決定是否ΕΜ指標等於j β因此, 步驟1144類似於圖4Α的步驟414。如果在步驟ιΐ44決 定ΕΜ指標等於i,流程進入步驟1146而非步驟ιΐ26。 否則,流程進入步驟1 1 4 8 » 在步驟1146中,產生無效運算碼異常,且執行適當的事 件管理器,這與圖11A步驟1110中所説明的無效碼異常 83- 本纸張尺度適用中國囷家標準(CNS ) μ规格(210X297公釐) 330708 A? _____B7 五、發明説明(81) 相同。這無效運算碼異常的產生類似於圖4A步驟4〇6的 無效運算碼異常。如圖2步驟215可提供前述事件管理器 以導致處理器顯示一訊息,放棄現有工作的執行以及繼續 執行其他的工作《當然,另一具體的實施例可以任何其他 方式提供此管理器,一如前文所述。當EM等於丨對於無 效運算碼異常,藉由轉向企圖執行的封包資料指令,此實 施例仍保持作業系統不可見。 一前述實施例以一種作業系統不可見的方式執行管理, 其他實施例了使用其他技術。例如,一實施例可產生設備 不可用異常,一種現存不同的事件,或是爲了回覆當EM 指標等於1時封包資料指令執行企圖的一個新事件兩者之 。另一個例子爲在另一實施例中當正執行封包資料指令 時,能忽略E Μ指標。 如步驟1148所示,它決定是TS指標等於〗(依據已説明 的軟體慣例,如果達成—局部的内容切換)^如果達成—局 部的内容切換,流程進入步驟1126 ^否則,流程進入步驟 1150 。 經濟部中央標準局員工消費合作社印製 如前所述,步驟1126產生設備不可用之異常,且執行對 應的事件管理器。因此爲回應這事件,對應事件管理器可 被提供以獲得EM及TS指標。然而,當執行封包資料指令 時’流程進人步驟1144同時EM指標等於i的情況被轉爲 無效運算碼異常。結果,當當執行封包資料指令及步驟 1126時,EM指標必須等於〇及TS指標必須等於!。因 爲TS指標等於1 ,事件管理器功能如前述有關局部的内容 ..__ · 84 - 本紙張尺度適财國國家標準(CNS) M規格(训㈣7公楚) 五、發明説明(82 ) A7 B7 經濟部中央標準局貝工消費合作社印製 切換者,且導致處理器藉由在步驟1102收到的指令啓動而 重新執行。由於封包資料狀態在浮點狀態成化名態,此事 件管理器爲浮點及封包資料狀態兩者工作。其結果,此方 法保持作業系統不可見。當然,另一具體的實施例應用先 前已提及的方法提供此事件管理器。一實施例中以一種作 業系統不可見的方式來管理ts指標,另一實施例可使用其 他技術。 如前所述,如在執行浮點指令期間產生特定的數字異 常,這些異常將懸置在未決態,直到下一浮點指令能被中 斷時才加以處理。如步驟1128及115〇所示,其中決定是 否有任何諸如此類的未決異常能加以處理。因此,這些步 驟類似圖4A中步驟420及422。如有任何諸如此類的未 決異常’流程從步驟1128及115〇兩者進入步驟n3〇。 然而,如決定在步驟1128存在此類未決異常,流程進入步 驟1132 。相對的如果在步驟115〇決定沒有此類未決異 常,則流程進入步驟j i 52 。另一實施例中,執行步驟 1150且在執行封包資料指令期間浮點錯誤保留在代決態。 在步驟113〇中產生—未決浮點異常事件。因此,步驟 113〇類似於圖4A的步驟424 。如前所述有關圖2步驟 424 ,這事件可被以—種内在的事件或外在的事件兩者之 一對同時處理。 如步驟1152所示,其中決定是否處理器是在封包資料模 式,封包資料指令已被成功的執行完成,且流程進入步驟 1132。然而,如果處理器不在封包資料模式,封包資料指 請 先 閲 面 之 注 意 事 項 裝 頁 訂 線 -85- (紙張尺度適财關家標^TCNS ) Α4· ( 2丨Gx297公们 3207Q8 五、發明説明(83 令已以浮點模式執行。結果,封包 確。爲處理此情形’處理器必須從浮^ ,執丁不正 模式並且封包資料必須被重新執广:式切換封包資料 在封句杳拉描.、 執丁 j此如果處理器不是 楗式,流程進入步驟i丨5 4。在 定可以任何方式達成。例 式指標可被採用。正如另一例子個先:在圖6A所説明的模 _得。另例子,頂端堆疊指標及標籤能 二非:狀:广:叠指標是在初始化狀態並且所有標藏是 頂端堆處理器是在封包資料模式。但是如果 能,# 是在初始狀態或所有標籤不是在非空狀 心,處理器不是在封包資料模式。 玎 j步驟1154中,處理器從浮點模式轉移至封包資料模式 二=入步驟1156,在步驟1154中,處理器藉由改 至非空狀態及改變頂端堆叠指標至初始値從浮 "i封包資料模式。改變所有標籤至非空狀態提 =更好的程式技術於鼓勵分別的浮點群及封包資料指令。 =從-作業系統m點來看,某些作業系統技術地儲存 有浮點暫存器的標籤指明—非空狀態的内容。因此,— 實施例中,封包資料狀態爲浮點狀態之化名,改變所有標 籤到非空狀態使得此作業系統保存封包資料狀態猶如浮點 狀態-般。另—實施例可相容於這些作業系統技術的少 數例如’如果-作業系統不利用標籤,—實施例不提供 標籤仍將與作業系統相容。改變頂端堆叠指標爲0也如前 所述用來達成更有效的程式技術。甚且,改變頂端堆叠指 標爲初始値且在封包資料指令允許相同的電路來操^ -86- 太紙張尺度適用中國國家標準(CNS ) A4規格(2丨〇 χ Μ?公釐) A7 B7 經濟部中央樣準局員工消費合作社印裝 五、發明説明(84) -- μ' FP/PD暫存檔當成是一浮點堆疊及一固定暫存檔期間不改 變頂端堆要指標已如前所述於圖10。由於浮點及封包狀態 是在單一暫存檔化名。移轉操作毋需分別在浮點及封包資 料暫存檔間複製資料。因此降低浮點及封包資料模式^的 移轉時間》如前所述,浮點至封包資料移轉可用微^算碼 完成。另一實施例中,每一個封包資料指令的執行改變頂 端堆疊指標到初始値。 如步驟1156所示,在步驟1102所收到的指令藉由一微 啓動來啓動。由於使用-微啓動,現有工作的執行能繼續 而無須外在處理器任何動作一不是非微運算碼事件處理器 需要執行。在此方式下,此實施例與現存的作業系統相 容。另一實施例則以較不相容方式配置。例如,一額外的 事件能可併入處理器中,並且一額外的事件管理器能被加 入作業系統來達成這轉移。 在步驟1132 —中,緩衝暫存器的狀態在其對應Fp/pD或 整數暫存器中加以標注。完成步驟1132後,處理器空 以便繼續執行其他操作0 因此’文中已説明一執行封包資料指令的方法與現存的 作業系統相容並且提供更好的程式技術。因爲在浮點狀態 封包資料狀態是其化名,封包資料狀態將被保存及藉現存 作業系統加以儲存如浮點狀態般。更進一步來説,由於藉 封包資料指令執行產生的事件藉由現存作業系統處理器^ 理,這些事件處理器不需修改並且不需另加入新的事件管 理器。結果,處理器往往相容,且升級時不需要耗金
本紙張尺度適财關
請 先 閲 讀 背 之 注 !- 裝 訂 線 3^0708 Α7 Β7 五、發明説明(85) 及時間去修改作業系統。 在此實施例的變化例中,其中有一些已在文中加以説 明’且可以完全或局部與此作業系統相容及/或提昇優良 程式技術。例如,另一實施例中,可移動,改變及/或拿 掉一或多流程圖中步驟,如果從圖11A,11B及/或llc 拿掉某些步骤’將不需要圖1〇的某些硬體。例如,如果不 使用T S指標,T S指標不需要。當然本發明對任何系統結 構可能有用並且不受限於在此提及的結構' 圖12A,12B及12b爲一實施例之儲存浮點資料,封 包資料及整數資料。依據圖1〇 ,圖12A顯示一包含—符 號欄位1 2 0 2構成位元8 5的浮點儲存格式1 2 0 〇以及指數 欄位12〇4構成位元(84 : 68),一個底數欄位^06構成 位元(67 : 3)及一個行程攔位12〇8構成位元(2 : 〇)如前 所述,相同浮點指令用來存浮點狀態當達成工作切換必須 也能儲存任何在浮點暫存器化名的封包資料狀態。在一實 施例中,處理器不儲存回欄位i 〇 2 8。結果,封包資料必須 儲存在浮點儲存格式1200的底數欄位12〇6内的某處。 經濟部中央標準局貝工消費合作社印製 圖12B示圖10本發明實施例中用來封包資料的儲存格 式。圖12B顯示一封包資料儲存格式ι21〇包括一符號/ 指數欄位1212構成位元(85 : 68),一個最初保留欄位 1214構成位元(67),一個封包資料欄位i216構成位元 (66 : 3)及一個弟一保留欄位1218構成位元(2 : 〇)。也 如前所述,在底數欄位1206的化名封包資料欄位以致於現 在的浮點指令將儲存封包資料狀態。一實施例中,最初及 -88- 本紙張尺度適用中國國家標準(CNS ) Μ規格(210X297公釐〉 五、發明説明(86) 第二保留欄位1214及1218寫成〇。當封包資料窝入一暫 存器時’另-已述及的發明封包資料儲存格式12ig的封包 資料欄位!216在與浮點错存格式12〇〇的底數糊位12〇6 的相同位元位置處開始。另一實施例能改變這層關係。 圖12C圖解儲存格式爲了整數資料依據圖1〇所提及的 發明的實施例。圖12C㈣—整數資料料格式122〇包 括-保存欄位1222構成位元(8 5 : 3 2)以及_整數資料棚 位1 224構成位元(31 ·· 0)。當一實施例整數資料以”位 凡儲存,另一具體的實施例能提供儲存整數資料在一或更 多格式使用任何目的位元。例如,另一實施例可支援“位 元格式。在一實施例中,每一個軟體可見的整數暫存器 1 024僅包含32位元〇結果,整數儲存格式122〇僅用於 緩衝暫存器1020。 ' 圖13示一方法,依據發明實施例,當儲存格式如圖 12A,12B及12C配置時,可執行圖UB的步驟1138。 流程從步驟1 1 3 8到步驟1 3 〇 〇。 在步驟2 3 00中決定是否封包資料指令從做爲Fp/pD暫 存器的任何緩衝暫存器的FP/PD暫存器重取資料。如果是 流程進入步驟1 3 02。否則流程進入步驟13〇8。 如步驟1 302所示,從化名緩衝器或Fp/pD暫存器中重 取位元【66 : 3】並且流程進入步驟13〇8。此步驟中封 包資料不儲存以〇爲開始的位元。但是必需要也错存在圖 B起始存在位元3 ^結果,位元(2 : 〇)必須加以宣告。 在一實施例中,步驟藉由圖10的資料對齊單元1〇9〇 3^G7〇8 五、發明説明(87) 成。在此實施例,資料從回撤單元1〇〇6轉換,流經發單元 1J)08 ’及到圖12B的執行單元1G1G格式内,因此,資料 藉由圖12B的執行單元1〇1〇格式内吸收,且致動對齊單 兀1090而取出位元(66 : 3)。因爲資料在執行單元 對齊,封&資料格式的使用是通透於處理器其餘部份。可 配置資料對齊單元以使用任何技術存取位元(66 : 3)。例 如,在一實施例中,設計資料對齊單元將從Fp/pD暫存器 或當做FP/PD暫存器的緩衝暫存器取得的所有封包資料位 凡向右偏移三個位元。另一實施例,提供回撤或發行單元 剥離位元[2 : 0]及/或位元[8 5 : 67],另—例子中,另 一實施例使得封包資料儲存起始位元〇處開始儲存。 在步驟1 304中決定是否封包資料指令從當做整數暫存器 ,任何整數暫存器或任何緩衝暫存器取得封包資料。如果 疋,流程進入步驟〗3 0 6。否則,流程至步驟〗3 〇 8。 如步驟1 306所示,位元[31 : 〇]從各緩衝器或整數暫
經濟部中央標準局貝工消費合作社印$L 存器中取出,同時流程進人步驟13G8。步驟中需要在起始 位元〇處開始儲存資料。如前所述實施例,此步骤藉由圖 10的資料對齊單元1 090加以配置。在此實施例中,轉換 資料回撤單元1 006,經過發行單元1 008,並且到執行單 元1〇1〇,如果資料從緩衝暫存器1020中存取,資料如圖 12C的格式由執行單元! 〇1 〇收到並且使得資料對齊單元來 取出位元[31 : 6]。然而,如果資料從整數暫存器1〇24中 存取’整數暫存器1G24爲32位元暫存器,資料被執行單 元1010以32位元格式接收。在其中任一情形中,32
本紙張尺度適财關家標準(CNS)从級(21()><297公着 五 經濟部中央標準局貝工消費合作社印装 、發明説明(88 ) ^資料以封包資料·的任何64位元視之。例如,當提供 第-移動指令以從-整數暫存器移動32位元到下一層Μ :元的封包資料項目時’可提供第_移動指令以從一整數 暫存器移動32位元到上_„層位元之封包資料項目,。 如步骤i所示’執行指令所需的作業,流程進入步驟 13 10 〇 在步驟13 10中決定是否封包資料指令導致處理器窝入做 :FP/PD暫存器的任何Fp/pD暫存器或任何緩衝暫存器 中。如果是,流程進入步驟1312,否則流程進入步驟 13 14° 如果封包資料指令導致處理器寫入當爲FP/PD暫存器的 任何FP/PD暫存器或緩衝暫存器資料時,必須被存在適# 格式。因此,在步驟1312中,封包資料错存在那些 FP/PD或緩衝暫存器中的位元(66 : 3)。一實施例中,從 圖1〇的資料對齊單元1G9()再度使用。仍是有_些技術可 達成這些功能《例如,可提供資料對齊單元以向左偏移3 位元,其爲含0之墊键位元(pad bits)(2 : 〇),含〇之墊 键位元(67)及在位元(85 : 68)中儲存的j 。另—實施例 中’配置回撤單元意以儲存此一格式的資料。 在步驟1314中,決定是否封包資料指令導致處理器寫至 當做暫存器的任何整數暫存器或任何緩衝暫存器中。如果 是流程進入步驟1316,否則,流程進入步驟1144。 如果封包資料指令導致處理器寫至當做整數暫存器的任 何整數暫存器或任何緩衝暫存器中’則封包資料必須以適 -91 - 本纸張A度適用t國國家標準(CNS ) A4規格(210X297公釐)
Α7
____B7 五、發明説明(9Q) >.· 關程式計數器的資料,參閲 K Apparatus for Monitoring the Performance of a Processor ” 序號 07/883,845,作者 Roberts Direyer,etal. 因爲Priorart浮點處理器不允許浮點標籤直接操作, EMMS指令之爭可使用浮點指令表現。 經濟部中央揉準局貝工消費合作社印裝 圖1 4是一流程圖,依據發明實施例清除標籤的方法。這 流程圖藉著儲存浮點環境於記憶體先前決定的位置開始步 驟 1402。這是藉 Intel Architecture pr_ocessor(英代爾 架構處理器)的FNSAVE或FSAVE指令表現。一旦達 成,先前決定的記憶位置的標籤及/或Τ Ο S部分到環境儲 存處可被修改成它的空狀態,在步驟1404中,這以任何先 前指令來達成,包括MOV指令爲了適當的位元型爲標籤及 TOS位元以立即運算符號處理❶其餘可設定先前決定記憶 位置標籤及Τ Ο S部份到一空狀態的適合指令可以加以使 用。結果’在步驟1 4 0 6中,可從被修改過先前決定的記憶 位置再載入該環境。因爲作業環境的其它部分(例如控制 子、狀態子等+)應該留下來不修改,僅修改浮點標籤。作 業環境中被留下來的其餘部從儲存環境作業14〇2中改變。 需知爲了預防任何不可預期的事情發生,處理器可用任何 已知的技術配置,包括使用不動作中斷指令(例如, FNSTENV)。無論如何,因爲環境已經現在藉由使用任何 習知技術,諸如FRST0R或FLDENV再載入,環境現在 已再載入以僅將浮點標籤修改成它們的空狀態,進一步切 記步驟1404可進一步包含一額外的步驟清除包括儲存在頂 •93- 本纸張尺度適用中國國家標準(CNS ) A4規格(210x297公趁) 320708 Α7
H J π碲唯®指標 Μ嚯境的邵份。 在另-實施例中’ EMMS指令可藉由模擬浮點暫存器足 夠的次數’直到所有標籤位元成爲空狀態爲止。在其中之 一事件中,EMMS可當做—專屬指令或它可加以模擬,並 且其中任一方法均爲本發明的範疇所涵蓋。
圖15八顯示—執行串列,包含封包資料及浮點指令,爲 了圖解在分別的實質暫存器檔存的化名可被更新於此時間 間隔。圖15A顯示—浮點指令1 500緊随的封包指令集 1510。而且,圖15A顯示在時間τι執行浮點指令 15〇〇 ’而且時間T2開始執行封包資料指令151G 指令15〇〇執行導致處理器寫入浮點暫存器。一個間隔 1 5 20標狂在這値必爲化名的期間的時間τι及丁之。例如, 圖6A-9所述的實施例分別的實質暫存㈣用來執料^及 封包資料指令’浮點狀態,直料間T2才從實 暫 器複製入對應的實質封包暫存樓(假設浮點暫存器在·τ2 前)。 經濟部中央標準局員工消費合作社印製 相對的,當使用到一單一實質暫存構(實施例參昭 1 1C所述),浮點値在時間T1時被儲存在各別暫存器 因此’説明間隔1520兩極端。但是,配置另—實施 在間隔1 520期間任何時候,化明該暫存器。例如,另— 施例使用分別的實質暫存器提供浮點及封包指令,以實 窝至浮點實質暫存檔的資料也在時間T1時寫入封包二:: 質暫存檔。一實施例中,兩者之間相同時間(如時間τ貫 入實質暫存檔。轉移單元的部分從浮點暫存檔到封包資: -94- 木纸張^度適用中國®家榇準(CNS )八4規格(2丨〇χ297公着) 發明说明(92 ) A7 B7 經濟部中央標準局貝工消費合作社印製 暫存樓複製資料可以硬體來達成(當然,其他實施例可以使 用軟禮,勒體及/或硬體)。如另—例子,當空間的處理器 時間在_ 1520是可用時(但有時候有時間τ2之前),一 實施例中使用分㈣實質暫存橋來執行浮點及封包資料以 致於寫至浮點實質暫存構的資料被寫至封包資料實質暫存 樓。在此方式下,這些實施例可以降低轉移時間。 圖15Β顯示一執行串列’包括封包資料及浮點指令,以 説明可被化名之實質暫存構更新期間的時間間隔。圖Μ 相似於圖15Β,除了封包資料指令153()之後爲浮點指令 集1 540外,圖15A顯示封包資料指令153〇在時間τι執 行。當在時間T2浮點指令集154q的開始執行時,封 料指令1 53 0的執行導致處理器寫入—値到—封包資料暫存 檔。-間隔155"票註在時間T1及時間T2之間的時間在 此期間這値必須化名。所有其他的實施例可參考圖15八説 明(參考一在封包資料指令後的浮點指令)也可參考圖丨5Β 補充(參考一在浮點指令之後的封包資料指令 本發明已應用不同實施例加以説明,對於本技術熟習者 應知本發明不受限於已説明之實施例。本發明的方法及裝置可 在本發明的精神及範疇之内加以更改而不偏離本發明的範圍。 因此本説明書並非用於限制本發明。 請 •4 閲 讀 背 面 之 注 I- 頁 裝 訂 \· 95- K紙張尺度適用中國國家標準(CNS ) A4規格(21 〇 X 297公釐〉

Claims (1)

  1. _7〇8 A8 B8 C8 D8 經濟部中央榡準局員工消費合作社印裂 #、申請專利範圍 ι· 一種裝置包含: a.多個與第—儲存區相關的標籤,其指示第一儲存區 的位置可因回應執行浮點指令而成爲空或非空狀態,該 浮點指令的執行可修改在該第一儲存區中的資料; b·與多個標籤耦合的第一電路,該標籤設定該多個標 籤成爲非空狀態,以回應接收到第一指令,此指令可對 於儲存在該第一儲存區中的數據指定一項操作,該多個 標籤的設定指出在該封包資料上操作的指令已予執行; 以及 一與該多個標籤耦合的第二電路,其只設定該多個 標籤成爲空狀態’以回應接收到第二浮點指令,此浮點 指令指示該浮點指令的執行已結束,其中該指令對於错 存在該第一儲存區中的封包資料加以操作。 2·根據申請專利範圍第1項之裝置,更包含一第三電路,用 於清除堆疊指標頂部,以回應接收到該第—指令或該第 二指令。 3 '根據申請專利範圍第1項之裝置,其中該第一儲存區包本 —假數(mantissa)部位,及一對應的指數部位,且該封 包數據係包封在該第一儲存區的假數部份中。 4·根據申請專利範圍第3項之裝置,其中該第一電路更包含 —電路,當執行儲存在該第一儲存區中的封包資料操^ 時,用於設定該對應的指數部位爲一預設値。 5.根據申請專利範圍第1項之裝置,其中該多個標鐵各包含 兩位元。 96- 本紙張尺度適用中國國家榇準(CNS ) A4規格(210X297公釐) l·——^-----丨裴------訂------/線 (請先閲讀背面之注意事項再填寫本頁) 申請專利範圍 A8 B8 C8 D8 經濟部中央標準局員工消費合作社印製 6. 根據申請專利範園第5項之裝置,其中該只設定多個標籤 爲空狀態的操作包含設定該兩位元成爲一設定狀態。 7. 根據申請專利範圍第6項之裝置,其中該只設定多個標籤 爲非空狀態的操作包含設定該兩位元成爲另一設定狀 態。 8. —種裝置包含: a. 多個與第一儲存區相關的標籤,其指示第一儲存區 的位置可因回應執行浮點指令而成爲空或非空狀態,該 浮點指令的執行可修改在該第一儲存區中的資料; b. 耦合該多個標籤的第一電路,該標籤只設定該多個 標籤爲一空狀態,因此回應接收到第一指令,此第一指 令指示在儲存於該第一儲存區中的封包數據上操作的指 令,已終止其耦合。 9. 根據申請專利範圍第8項之裝置,更包含一第二電路,此 第二電路耦合該多個標籤,設定該標籤成爲非定狀態, 以回應接收到第二指令,此指令指定一儲存在該第一儲 存區中的封包數據之操作,g個標籤的設定指示在該 封包數據上操作的指令已耦^ ‘ 1 〇 ·根據申請專利範圍第8項之 第二電路用於清除一堆疊名 二指令。 11.根據申請專利範圍第8項之裝置,其中該第一儲存區包含 一假數(m a n t i s s a )部位,及一對應的指數部位,且該封 包數據係包封在該第一儲存區的假數部份中。
    更包含一第二電路,此 賀部,以回應接收到該第 -97 本紙張尺度適用中國國家標準(CNS ) A4規格(210X:297公釐) N--.-----ji裝------订-----f 線 (請先閲讀背面之注意事項再填寫本頁)
    申請專利範圍 2_根據申請專利範圍第9項之裝置,其中該第一儲存區包含 —假數(mantissa)部位,及一對應的指數部位,且該封 包數據係包封在該第一儲存區的假數部份中。 13.根據申請專利範圍第12項之裝置,其中該第一電路更包 含—電路,當執行儲存在該第一儲存區中的封包資料操 作時,用於設定該對應的指數部位爲一預設値。 4 ’根據申請專利範圍第8項之裝置,其中該多個標籤中的標 藏各包含兩位元。 ' I5.根據申請專利範圍第14項之裝置,其中該只設定多個標 鐵爲空狀態的操作包含設定該兩位元成爲一設定狀態。 I6·根據申請專利範園第15項之裝置,其中該只設定多個標 藏爲非空狀態的操作包含設定該兩位元成爲—設定 態。 Γ靖先S"讀背面之注意事項再填寫本頁) 裝. 訂· 線. 經 霖 中 標 準 員 工 合 作 社 98- 本紙張尺度勒㈣目家轉(CNS ) ^4規格(210X297公f
TW086103615A 1995-12-19 1997-03-21 TW320708B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/575,686 US5857096A (en) 1995-12-19 1995-12-19 Microarchitecture for implementing an instruction to clear the tags of a stack reference register file

Publications (1)

Publication Number Publication Date
TW320708B true TW320708B (zh) 1997-11-21

Family

ID=24301308

Family Applications (1)

Application Number Title Priority Date Filing Date
TW086103615A TW320708B (zh) 1995-12-19 1997-03-21

Country Status (4)

Country Link
US (1) US5857096A (zh)
AU (1) AU1345197A (zh)
TW (1) TW320708B (zh)
WO (1) WO1997022920A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1265132A3 (en) * 1994-12-02 2005-02-09 Intel Corporation Microprocessor with packing operation of composite operands
US6792523B1 (en) * 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5940859A (en) 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US5701508A (en) 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US6088786A (en) * 1997-06-27 2000-07-11 Sun Microsystems, Inc. Method and system for coupling a stack based processor to register based functional unit
US6405234B2 (en) * 1997-09-11 2002-06-11 International Business Machines Corporation Full time operating system
US6065114A (en) * 1998-04-21 2000-05-16 Idea Corporation Cover instruction and asynchronous backing store switch
US6247113B1 (en) * 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
US6212624B1 (en) * 1998-09-30 2001-04-03 Intel Corporation Selective canonizing on mode transitions
US7882325B2 (en) * 2007-12-21 2011-02-01 Intel Corporation Method and apparatus for a double width load using a single width load port
JP2010122787A (ja) * 2008-11-18 2010-06-03 Panasonic Corp 半導体集積回路及びレジスタアドレス制御装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711692A (en) * 1971-03-15 1973-01-16 Goodyear Aerospace Corp Determination of number of ones in a data field by addition
US3723715A (en) * 1971-08-25 1973-03-27 Ibm Fast modulo threshold operator binary adder for multi-number additions
US4161784A (en) * 1978-01-05 1979-07-17 Honeywell Information Systems, Inc. Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands
US4229801A (en) * 1978-12-11 1980-10-21 Data General Corporation Floating point processor having concurrent exponent/mantissa operation
US4418383A (en) * 1980-06-30 1983-11-29 International Business Machines Corporation Data flow component for processor and microprocessor systems
US4393468A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Bit slice microprogrammable processor for signal processing applications
US4498177A (en) * 1982-08-30 1985-02-05 Sperry Corporation M Out of N code checker circuit
US4707800A (en) * 1985-03-04 1987-11-17 Raytheon Company Adder/substractor for variable length numbers
JPS6297060A (ja) * 1985-10-23 1987-05-06 Mitsubishi Electric Corp デイジタルシグナルプロセツサ
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
US4989168A (en) * 1987-11-30 1991-01-29 Fujitsu Limited Multiplying unit in a computer system, capable of population counting
US5008812A (en) * 1988-03-18 1991-04-16 Digital Equipment Corporation Context switching method and apparatus for use in a vector processing system
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
KR920007505B1 (ko) * 1989-02-02 1992-09-04 정호선 신경회로망을 이용한 곱셈기
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
US5187679A (en) * 1991-06-05 1993-02-16 International Business Machines Corporation Generalized 7/3 counters
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5522051A (en) * 1992-07-29 1996-05-28 Intel Corporation Method and apparatus for stack manipulation in a pipelined processor
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor
US5519841A (en) * 1992-11-12 1996-05-21 Digital Equipment Corporation Multi instruction register mapper
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
US5535397A (en) * 1993-06-30 1996-07-09 Intel Corporation Method and apparatus for providing a context switch in response to an interrupt in a computer process
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
US5546554A (en) * 1994-02-02 1996-08-13 Sun Microsystems, Inc. Apparatus for dynamic register management in a floating point unit
US5649225A (en) * 1994-06-01 1997-07-15 Advanced Micro Devices, Inc. Resynchronization of a superscalar processor
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
US5507000A (en) * 1994-09-26 1996-04-09 Bull Hn Information Systems Inc. Sharing of register stack by two execution units in a central processor
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation
US5701508A (en) * 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US5687336A (en) * 1996-01-11 1997-11-11 Exponential Technology, Inc. Stack push/pop tracking and pairing in a pipelined processor

Also Published As

Publication number Publication date
WO1997022920A1 (en) 1997-06-26
AU1345197A (en) 1997-07-14
US5857096A (en) 1999-01-05

Similar Documents

Publication Publication Date Title
JP3868470B2 (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
TW320708B (zh)
TW469409B (en) Method to reboot an operating system
US5835748A (en) Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file
US5701508A (en) Executing different instructions that cause different data type operations to be performed on single logical register file
US10838733B2 (en) Register context restoration based on rename register recovery
US5940859A (en) Emptying packed data state during execution of packed data instructions
US10740108B2 (en) Management of store queue based on restoration operation
US11010192B2 (en) Register restoration using recovery buffers
TW494312B (en) Emulating a delayed exception on a digital computer having a corresponding precise exception mechanism
WO1997022924A9 (en) A method of performing different data type operations that is invisible to various operating system techniques
US7149882B2 (en) Processor with instructions that operate on different data types stored in the same single logical register file
TW494300B (en) Methods for renaming stack references in a computer processing system
TW548550B (en) Method and system for efficient access to remote I/O functions in embedded control environments
US6055623A (en) Specialized millicode instruction for editing functions
TW388818B (en) Method and system for single cycle direct execution of floating-point status and control register instructions
TW425529B (en) Method and apparatus for accessing an executing the contents of physical memory from a virtual memory subsystem
JPS5931733B2 (ja) 可変長さの命令を実行する中央処理装置
JPH04321124A (ja) 二重化ボリューム処理装置
JPS61233850A (ja) 線形リスト処理方式

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent