新四季網

預解碼可變長度指令的製作方法

2023-04-24 07:07:31 1

專利名稱:預解碼可變長度指令的製作方法
技術領域:
本發明大體上涉及處理器領域,且確切地說,涉及一種預解碼可變長度指令以便識別未定義指令的方法。
背景技術:
可變長度指令集架構在此項技術中是已知的。舉例來說,當將Thumb (16位)擴展添加到ARM(32位)指令集時,所得的混合可視為可變長度指令集。作為另一實例,可執行 Java代碼包括一系列字節碼,其中每個指令的長度的範圍在2與256位元組之間。一般來說, 可變長度指令集包括具有基礎尺寸的指令以及整數倍的基礎尺寸的較長指令。處理器架構及指令集隨著時間而進化。確切地說,隨著半導體技術的進步,可在硬體中呈現原來需要擴展性軟體例行程序來實現的功能性。為了有效地利用高級硬體結構, 將新指令添加到指令集。然而,穩定的處理器架構的一個特徵是向後兼容性。也就是說,針對一個處理器架構編寫的軟體應當可在符合所述架構的較老式的處理器上執行,即使所述較老式的處理器並未實施最近的功能性或直接執行最近的指令。因此,常見的處理器架構包含產生異常的「未定義」指令,且在軟體中執行與未定義的指令相關聯的功能。用來優化指令解碼的常規高性能處理器的一種常見方法是預解碼。預解碼器是在於指令高速緩衝存儲器(I-cache)中存儲指令之前檢查並部分地解碼從存儲器獲取的指令的邏輯電路。預解碼器產生少數預解碼位,所述預解碼位與每個指令一起存儲在I-cache 中。一旦從高速緩衝存儲器獲取指令,管線解碼器便可利用預解碼位來簡化指令解碼任務。 預解碼位可例如識別分支指令、識別可變長度指令架構中的指令的長度等。預解碼位也可用來識別未定義的指令。在實施預解碼的可變長度指令集處理器中,少數預解碼器位可與最短或基礎指令長度相關聯。已知的指令高速緩衝存儲器實施方案是使此數目的預解碼位與每個I-cache 存儲位置(其每一者對應於基礎指令長度)相關聯。佔據整數倍的I-cache存儲位置的較長指令與較大數目的預解碼位對應地相關聯。因此,可編碼成與指令相關聯的預解碼位的離散性質的數目是基礎指令長度的最小值。如果以其它方式定義對基礎指令長度的可用預解碼位編碼,則利用預解碼位來識別未定義的基礎長度指令將需要增加與基礎指令長度相關聯的預解碼位的數目。此技術又將增加與每個存儲位置一起存儲在I-cache中的預解碼位的數目。由於很少遇到未定義的指令,且比基礎長度長的指令具有充裕的預解碼位編碼空間,所以添加預解碼位以識別未定義的基礎長度指令可浪費昂貴的I-cache存儲空間。

發明內容
根據本文所描述的一個或一個以上實施例,預解碼器可在與指令長度相關聯的預解碼位編碼空間完全定義時指示指令的性質。通過更改指令以模擬不同長度的指令,預解碼器可利用與不同長度指令相關聯的預解碼位的可用編碼來指示性質。一個實施例涉及一種在處理器中預解碼指令的方法。識別第一指令的性質。更改第一指令以模擬第二指令。產生用於第二指令的識別第一指令的性質的預解碼位。另一實施例涉及一種經操作以從存儲器中讀取指令的處理器。所述處理器包含存儲從存儲器中讀取的指令以及與每個指令相關聯的預解碼位的指令高速緩衝存儲器。處理器也包含介於存儲器與指令高速緩衝存儲器之間的預解碼器,所述預解碼器經操作以識別第一指令的性質;更改第一指令以模擬第二指令;產生用於第二指令的識別第一指令的性質的預解碼位;並將用於第二指令的預解碼位寫入到指令高速緩衝存儲器。


圖I是處理器的功能方框圖。圖2是描繪將可變長度指令從存儲器映射到指令高速緩衝存儲器的功能方框圖。圖3是描繪將未定義指令從存儲器映射到指令高速緩衝存儲器的功能方框圖。圖4描繪根據一個實施例的預解碼指令的方法。
具體實施例方式圖I是處理器10的功能方框圖。處理器10根據控制邏輯14在指令執行管線12中執行指令。管線12可以是超標量設計,具有多個並行管線,如12a和12b。每個管線12a、12b 包含組織成管級的各種寄存器或鎖存器16,以及一個或一個以上算術邏輯單元(ALU) 18。 管級寄存器或鎖存器16及ALU 18可從通用寄存器堆28中的寄存器讀取運算數,且/或將結果寫入到所述寄存器。管線12a、12b從指令高速緩衝存儲器(Ι-Ccache或1$)20獲取指令,其中由指令側翻譯旁視緩衝器(ITLB) 22管理存儲器尋址和準許。從數據高速緩衝存儲器(D-Cache或 D$) 24存取數據,其中由主翻譯旁視緩衝器(TLB) 26管理存儲器尋址和準許。在各種實施例中,ITLB 22可包括TLB 26的一部分的副本。或者,ITLB 22和TLB 26可經整合。類似地, 在處理器10的各種實施例中,I-cache 20和D_cache 24可經整合或合併。I-cache 20和 /或D-cache 24中的未命中導致在存儲器接口 34的控制下存取主(晶片外)存儲器36。從存儲器獲取的指令在存儲在I-Cache 20中之前在預解碼器電路37中經處理。預解碼器37部分地解碼指令,並附加預解碼位,所述預解碼位與指令一起存儲在 I-Cache20中。當從I-Cache 20獲取指令時,預解碼位提供關於每個指令的信息,管線12a 和12b內的解碼管級可使用所述信息來更快速且/或更有效地解碼指令。舉例來說,預解碼位可識別可變長度指令集架構中的指令的長度、識別分支指令等。處理器10可包含輸入/輸出(I/O)接口 38,其控制對各種外圍裝置40、42的存取。所屬領域的技術人員將認識到,處理器10的多種變化形式是可能的。舉例來說,處理器10可包含用於I高速緩衝存儲器和D高速緩衝存儲器中的任一者或兩者的二級(L2)高速緩衝存儲器。此外,可從特定實施例中省略在處理器10中描繪的功能塊中的一者或一者以上。圖2是描繪用於一個說明性的且非限制性的實施方案的通過預解碼器37將指令從存儲器36映射到I-cache 20中的線的功能方框圖。指令A是16位指令(對於此實例是基礎指令長度)。一旦從存儲器獲取指令A,預解碼器37便附加兩個預解碼位PA,將所述預解碼位與指令A —起存儲在I-cache 20中。指令B是32位指令,其在存儲器36中存儲為B。和B」預解碼器37附加四個預解碼位,其在I-cache 20中存儲為Pbq和PB1。指令C 是16位指令,且與兩個預解碼位P。一起存儲在I-cache 20中。如圖2的表所指不,每一者具有兩個預解碼位的指令A和C具有四的預解碼位編碼空間。也就是說,可將四個離散性質-例如指令長度、指令是否為分支等-編碼成用於指令A和C的預解碼位。具有四個預解碼位的指令B具有16的預解碼位編碼空間。如果架構支持,則48位指令將具有六個預解碼位以用於64的編碼空間,依此類推。假設在給定實施方案中定義了用於如A和C的16位指令的全部四個預解碼位編碼,則可將額外的預解碼位添加到I-cache 20中的每個16位存儲位置,以利用預解碼位來指示未定義的16位指令。這將導致I-cache 20中的每個存儲位置具有三個相關聯的預解碼位。16位指令接著將具有八的預解碼編碼空間-只將利用其中的五個。另外,32位指令將具有64的預解碼編碼空間;48位指令將具有512的預解碼編碼空間。由於這遠遠超過了關於預解碼器可指示的指令的離散性質的數目,從而增加用於16位指令長度的預解碼位的數目導致大量浪費昂貴的I-cache 20存儲空間。根據一個實施例,可更改此實例中的未定義的16位指令以模擬32位指令。將所述指令實際上是16位的未定義指令的性質編碼成與32位指令相關聯的16預解碼編碼中的一者。在圖3中,指令D是16位未定義指令。一旦將指令D寫入到I-cache 20,便將其更改以模擬32位指令,包括Dtl和D115寫入預解碼位Pdci和PD1,從而指示指令D實際上是16 位的未定義指令。在一個實施例中,其中管線12隻需要16位未定義指令的事實,預解碼器37可只將預解碼位Pdci和Pdi寫入到I-cache 20,放棄指令D。在另一實施例中,例如其中指令的位欄位內的數據對於引導軟體陷阱是常見或有幫助的,可將指令D寫入到Dtl或D1或這兩者, 以及將預解碼位Pm和Pdi寫入到I-cache 20。在又一實施例中,預解碼器37可將指令D寫入到Dtl或D1中的一者,且可將額外的信息寫入到另一 16位I-cache 20存儲位置,以及寫入預解碼位Pdci和Pdi。在任何情況下,正是預解碼位Pdci和Pdi兩者在模擬32位指令(使得讀取所有預解碼位)並指示指令實際上是16位未定義指令。以此方式,預解碼器37可指示基礎尺寸的未定義指令,而不擴展與基礎尺寸指令相關聯的預解碼位,因此避免了低效的存儲器利用。在圖3描繪的實施例中,指令E及F均未經預解碼或加載到I-cache 20中。由於線中的指令的有效長度已在存儲器36與I-cache 20之間更改,所以高速緩衝存儲器線的其餘部分無法含有對應存儲器空間中的所有剩餘指令(例如,E與F兩者)。預解碼器37 可將高速緩衝存儲器線的其餘部分標記成未使用或無效,或者可簡單地在適當的位位置中插入無效或未定義的預解碼位。在正常執行中,處理器將在執行未定義指令後便陷入到軟體,且將很可能更換高速緩衝存儲器線。利用軟體異常處置程序來處置未定義指令所引起的陷阱允許軟體模擬在處理器(例如處理器10)固定在矽或其它半導體材料中時未曾預期
5的指令。如果其它代碼恰好分支到高速緩衝存儲器線中,則其將遇到不正確的預解碼且/ 或不認識既定指令,從而引起高速緩衝存儲器線重新加載或可能引起異常。由於假設很少遇到未定義指令,所以因更改的未定義指令模擬不同長度的指令而對受破壞的I-cache線引起的性能影響不是太大的問題。本文所揭示的方法不限於上述具有基礎指令長度的未定義指令。一般來說,對於一般可經由預解碼位來指示但其中完全定義了用於相關聯的指令長度的預解碼位編碼空間的任何指令性質,可通過更改指令以模擬不同長度的指令並利用對不同長度指令的可用預解碼位編碼來指示所述性質。舉例來說,假設先前實例中與32位指令相關聯的四個預解碼位的全部16個編碼均被定義,但只定義了與16位指令相關聯的兩個預解碼位的四個編碼中的三個或更少的編碼。在此情況下,可通過以下方式來指示在32位指令預解碼位中未定義的32位指令的特定性質更改32位指令以模擬16位指令,並在與16位指令相關聯的兩個預解碼位的可用預解碼位編碼中編碼相關性質。在此情況下,丟掉32位指令位欄位中的一半,因此正被編碼的性質優選是與指令位欄位無關的性質(例如指令未被定義的事實,但這並不是可如此指示的唯一性質)。圖4描繪根據一個實施例對指令進行預解碼的方法。一旦在I-cache 20中未命中,存儲器接口 34便從存儲器36獲取至少第一指令(方框50)。預解碼器37檢查第一指令,並識別第一指令的性質(方框52),例如第一指令未經定義。預解碼器37更改第一指令以模擬第二指令(方框54),例如不同長度的第二指令。預解碼器37另外產生用於第二指令的識別第一指令的性質的預解碼位(方框56)。也就是說,將與第二指令長度相關聯的預解碼位的可用編碼中的一者分配給第一指令的相關性質。預解碼器37將第二指令及相關聯的預解碼位寫入到I-cache 20 (方框58)。當管線12從I-cache 20獲取第二指令及其預解碼位時,解碼管級中的邏輯檢查預解碼位以識別第一指令的性質(方框60),例如第一指令未經定義的事實。管線12接著採取適當行動,例如引起異常以在軟體中處置未定義指令。根據本文所描述的一個或一個以上實施例,預解碼器37可在與指令長度相關聯的預解碼位編碼空間被完全定義時指示所述指令的性質。通過更改指令以模擬不同長度的指令,預解碼器37可利用與不同長度指令相關聯的預解碼位的可用編碼來指示性質。當在較長指令的預解碼位編碼中指示較短指令的性質時,將從I-cache線中轉移一個或一個以上指令或一指令的多個部分。當在較短指令的預解碼位編碼中指示較長指令的性質時,丟掉一些指令位欄位。因此,一般採用本文所揭示的指令性質指示技術來指示引起異常的指令性質,例如指令未經定義的事實,但並不限於此些情況。雖然已在本文中相對於本發明的特定特徵、方面和實施例描述了本發明,但將明白,在本發明的廣泛範圍內可能有許多更改、修改和其它實施例,且因此將所有更改、修改和實施例視為屬於本發明的範圍。因此,應在所有方面將當前實施例理解為說明性而非限制性,且希望其中包含屬於所附權利要求書的意義和等效範圍內的所有變化。
權利要求
1.一種在處理器中執行指令的方法,其包括從高速緩衝存儲器獲取具有第一格式的第一指令,所述第一格式包括第一指令部分和第一組預解碼位;將所述獲取的第一指令識別為具有第二指令的性質,所述第二指令的格式的長度不同於所述第一格式的長度,所述第二指令的性質由所述第一組預解碼位識別;以及基於所述第二指令的性質執行所述獲取的第一指令,其中所述第一指令是所述第二指令的編碼;其中,具有所述第一格式的所述第一指令在獲取後進行執行時將產生異常;以及其中,所述第二指令是未定義指令。
全文摘要
本發明涉及預解碼可變長度指令。可變指令長度處理器中的預解碼器指示與指令一起存儲在指令高速緩衝存儲器中的預解碼位中的指令的性質。當定義了與一個長度指令相關聯的預解碼位的所有編碼時,可通過以下方式來指示所述長度的指令的性質更改所述指令以模擬不同長度的指令;以及在與所述不同長度的指令相關聯的所述預解碼位中編碼所述性質。可如此指示的性質的一個實例是未定義指令。
文檔編號G06F9/318GK102591620SQ201110378670
公開日2012年7月18日 申請日期2007年4月20日 優先權日2006年5月4日
發明者布賴恩·麥可·斯坦普爾, 羅德尼·韋恩·史密斯 申請人:高通股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀