[go: up one dir, main page]

TW201203103A - Operand size control - Google Patents

Operand size control Download PDF

Info

Publication number
TW201203103A
TW201203103A TW100107186A TW100107186A TW201203103A TW 201203103 A TW201203103 A TW 201203103A TW 100107186 A TW100107186 A TW 100107186A TW 100107186 A TW100107186 A TW 100107186A TW 201203103 A TW201203103 A TW 201203103A
Authority
TW
Taiwan
Prior art keywords
bit
instruction
exception
register
arithmetic
Prior art date
Application number
TW100107186A
Other languages
English (en)
Other versions
TWI521429B (zh
Inventor
Richard Roy Grisenthwaite
David James Seal
Philippe Jean-Pierre Raphalen
Lee Douglas Smith
Original Assignee
Advanced Risc Mach Ltd
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 Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW201203103A publication Critical patent/TW201203103A/zh
Application granted granted Critical
Publication of TWI521429B publication Critical patent/TWI521429B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

201203103 六、發明說明: 【發明所屬之技術領域】 本發明係關於資料處理系統之領域。更特定言之,本 發明係關於施行藉由算術指令與邏輯指令指定之資料處 理操作的資料處理系統。 【先前技術】 提供匕括由將程式指令串流解碼之指令解碼器來控 制的處理電路之資料處理系統係已為人所知。當處理電 路在—暫存器排的暫存器内保持資料值時,可施行資料 處理操作。經施行之資料處理操作可包括算術運算(例如 加法、減法、乘法等等)及邏輯運算(例如aND、〇R、X0R 等等)。已知由算術及邏輯指令操縱的資料值可具有不同 位元長度。例如,待操縱的整數值可為32位元整數或 64位凡整數。若32位元整數值經受一邏輯或算術運算’
則結果的至少最低有效部分將具有相同值,如同該等U 位元輸入運算it已被Μ 64位元輸入運算元且用一 Μ 位元指令操縱般。由於此一原因,已知指令集不在提供 區分32位元及64位元邏輯及算術指令之方式的指令内 花費指令編碼位元空間。 【發明内容】 本發明之一態樣提供用於處理資料之設備,其包含 複數個2Ν位元暫存器; 201203103 處理電路,其經組態以施行資料處理操作;及 指令解碼器電路,其經耦合至該處理電路及回應於一 指令集之—固定大小的程式指令之-串流以產生控制信 號’用於控制該處理電%以施行該冑資料處理操作;其 中 ’、 匕該指令解碼n經組態以將該指令m之算術指令及邏輯 指令解碼,其分別地指定待在該複數個2N位元暫存器中 儲存之運算元上施行的算術運算及邏輯運算:及 。該指令解碼器電路經組態以將該等算術指令及該等邏 輯指令内之-運算元A小欄位解碼,該運算元大小攔位 指定以下各項之一: ⑴該等運算元係2N位元運算元,其各儲存於該複數 個2N位元暫存器之一分開的2N位元暫存器内;及 (")該等運算元係、N位元運算元,其各儲存於該複數個 2N位兀暫存器之一分開的2N位元暫存器内。 本技術認知可在控制處理設備時明顯地指示一算術指 令或—邏輯指令是否具有一 N位元運算元大小或_ 2n 位九運算元大小,即使無須該資訊即可提供正確結果。 此與該攔位之不利相反,由運算元大小搁位使用的 位元空間經證實係正確的。 雖然可能僅於算術指令及邏輯指令之一子集内提供運 算兀•大小攔位,在一些具體實施例中所有算術指令及所 有邏輯指令包括運算元大小欄位。 亦可使用運算元大小欄位來指定待施行之處理操作的 201203103
位元寬度,例如,·^ ^ ,L 右加法器電路僅有最低有效部分對 1待操縱運算元,則無須時控加法器電路的整個寬度。 *運算7G大小攔位指示一 N位元處理操作時,則在一 -體實施例中,在儲存N位元結果運算元的位元 暫存器内的最高有效N位元,可全部被設定為零或全部 具有從N位元結果運算元之最高有效位元取得之一帶正 負就延伸值。在其他且辦杳分,丨丄 . 、他八體貫施例中,在儲存N位元結果 運算元的2N位元暫存器内的最高有效N位元在N位元 處理操作中可维持不變。 將會瞭解到,由處理操作使用的複數暫存器可經受暫 存器重映射—)。暫存器重映射係用於協助益序 (〇Ut姑0Γ〜)處理及其他高效能技術之-已知技術。在 暫存器重映射系統中’暫存器重命名電路提供在程式指 令内指定的架構暫存器及實際提供的2N位元暫存器間 之一映射。 該設備可用配置於例外位準階層中之複數個例外位準 來操作彳將此等例外位準視為硬體特權位準。當切換 =具有-較低特權位準之料位準時,對安全重要的 是當依高特權位準操作時由系統操縱之資料,不會在洛 依低特權位準操作被不適當地存取,例如當切換成為二 非安全⑷特權位準時來自一安全特權位準之加密瑜甚 至不可被部分地存取。當在一支援暫存器重映射且其亦 支援此等多重例外位準之系統中操作時,有可能當從解 碼依-特權位準之指令集的指令切換至解替—較低特 201203103 權位準之指令時資料會洩漏。更特定言之,由暫存器重 命名電路使用之實體暫存器内的未配置暫存器可儲存殘 餘2N位元值’其係當將其最後用作一架構暫存器時留 下,且此等實體暫存器可後續被映射以由依較低特權位 準執行的指令使用。若攜帶2N位元資料值之此等未配置 暫存裔在較低特權位準再利用,及被映射至架構暫存器 時,則來自先前較高特權位準之殘餘資料值的至少一部 分可能可自較低特權位準存取,因為一對於先前未配置 2N位元的暫存器之寫入可為一則立元寫入,其留下暫存 器之最高有效N位元未改變且由現被配置之暫存器可 讀。若(例如)殘餘值係資料的一安全項之一部分(例如 一加密鑰),則此表示一安全弱點。 為了克服此問題,可έ日能4 vat Ab 上 』、,且態該设備使得當完成從該複數 個例外位準之一第一例外/隹 卜位準切換至該複數個例外位準 之一第二例外位準(並Φ访银 ,,. ,、宁該第一例外位準在該例外位準 階層中係低於該第一例外你隹、士 例外位準)時,所有未配置暫存器 被清除以便儲存預定值。雖麸 雖然此係一安全方法,其受害
於可能使例外/特權位進卩卩+ A 權羊間之切換變慢及浪費能量的缺 克服此安全弱點之另—古.土及ω 〇 法係聯結對應於2Ν位元暫 存器之各者的一已使用旗押, 使用旗標(dlrtyflag),其係當完成從該 複數個例外之一第一例外彳 位準切換至該複數個例外之一 第二例外位準(其中該第- — 外位準在該例外位準階層 中係低於該第一例外位準) 時針對各未配置暫存器設 201203103 定。一對於設定已使用旗標(即, 佶、々 土和嬰。' 帝存—殘餘2N位元 值)之一未配置2N位元暫存器的窝 ^fir W yf: Μ rh 'ά ^ ,會觸發該等位元
“估涛宜 疋成預疋值之暫存器内的- N 位70值覆寫。 該已使用旗標亦可當發生一從一 準之切換時使用,以使設定了已广一較低特權位 署…赵六 使…一已使用旗標且尚未被配 可暫存益當完成例外位準的切換時將被清除。 備,「進一步態樣提供一種用於處理資料之設 複數個2N位元暫存器構件,其係用於储存資料值; 處理構件’其係用於施行資料處理操作;及 士指令解碼構件,其耗合至該處理構件1於產生控制 =號’該等控制信號用於控制該處理電路以回應於一指 令集之-固^大小的程式指令之—串流施行該資料處理 操作;其中 。=指令解碼冑件經組態以將該指令集之算術指令及邏 輯拍令解碼’其分別地指定待在該複數個2N位元暫存器 牛中儲存之運异元上施行的算術運算及邏輯運算;及 匕:指令解碼構件經組態以將該等算術指令及該等邏輯 曰令内之一運算元大小欄位解碼,該運算元大小襴位指 定以下各項之一: 曰 ω該等運算元係2N位元運算元,其各儲存於該複數 固2N位70暫存器構件之一分開的2N位元暫存器構件 内;及 201203103 (U)該等運算元係N位元運 2N位元暫存器構件之一八門的2m其各儲存於該複數個 刀開的2N位元暫存器構件内。 發明之進—步態樣提供—種用於處理資料之方法, 其包含以下步驟: ’ 將資料值儲存於複數個2N位元暫存器中; 使用處理電路施行資料處理操作;及 將-指令集之-固定大小的程式 _仙解碼以 :制用於控制該處理電路以施行該 理操作;其中 該解碼將該指令集之算術指令及邏輯指令解碼,其分 別地指定待在該複數個2N位元暫存器中儲存之運算二 上施行的算術運算及邏輯運算;及 該解碼將該等算術指令及該等邏輯指令内之一運算元 大小攔位解碼,該運算元大小攔位指定以下各項之I : ⑴該等運算元係2N位元運算元,其各儲存於該複數 個2N位元暫存器之一分開的抓位元暫存器内;及 (Π)該等運算元係W元運算元,其各儲存於該複數個 2N位兀暫存器之一分開# 2N &元暫存器内。 本發明之以上及其他目的、特徵與優點將可自以下參 考附圖讀取之詳細實施方式瞭解。 【實施方式】 第1圖說明轉合至_記憶體4的處理器2。處理器2 包括複數個64位元暫存器6’其係用以保持運算元值(資 201203103 料處理指令的輸入運算元及輸出運算元兩者)。依—資料 路徑形式之處理電路包括一乘法器8、一移位器1〇及_ 加法器12,其係用來在自暫存器6讀取之輸入運算元上 施行資料處理操作(包括算術運算及邏輯運算),而結果 運算元被寫回至暫存器6。應瞭解到,實際上可在資料 路徑内提供許多另外元件,且為了清楚的緣故此等已在 第1圖中省略。 一指令解碼器14用於產生控制信號16,其控制處理 電路8、1 〇及丨2以施行由一被解碼之程式指令指定的資 料處理操作。程式指令係從記憶體4供應至一指令管道 18,且當此等指令在管道18内到達一解碼狀態時,其藉 由指令解碼器14解碼。儘管並非此項技術必須,但指令 解碼器14用於將兩不同指令集解碼。在此實例具體實施 例中,此等指令集係一 64/32位元指令集及—arm指令 集。64/32位元指令集施行f料處理操作,其係為使用 64位π運算元之64位元資料處理操作或是使用32位元 運算元之32位元資料處理操作。64/32位元指令集的算 術指令與邏輯指令之各者内的—運算Μ小欄位用以在 此兩運算兀大小選項間選擇。運算元大小攔位可為一單 位元’如指示選定“位元運算元大小的sf位元。 當執行64/32位元指令隹 罝7集時64位兀暫存器6各儲存一 早運算το值。因此,當由— -位元選擇“位元運算元:術=或—邏輯指令内之 ^棚位指…存器的所有“位元,係作用且在由運 10 201203103 算碼指定的一 64位元資料處理操作中處理。 相反地,當未設定SF位元時,由宜你& 由异術指令與邏輯指令 内之暫存1§指定欄位所指定之64位-軏+ 32位元運算元保持在其最低有效”位元:器被視為將 此係經受- 32位元資料處理操作。因此,=置中’而 指令或一邏輯指令設定SF位元 為算術 4位;^暫存器合右 不作用的最高有效32位元。 臂存器3有 下指二!碼器14亦支援另一指令集的解碼。在此情況 :::係ARM指令集’其係指定在32位元輸入運算元 及輸出運算元上施行的32位元資料處理操作之32位元 :科處理指令。當ARM指令集係作用時,此等Μ位元 輸入運算元及輸出運算元被储存在“位元暫存器6之一 的最低有⑨32位元内。記憶體4儲存用於執行之⑽2 位-程式20及娜程式22兩者。處理器2可在此兩不 同指令集之間切換。 資料處理系統用配置於一例外位準階層中之複數個例 外位準操作。可將此等例外位準視為在存取系統資源時 疋義不同特權位準的硬體狀態。一從高至低的例外位準 階層的實例係安全監視模式、超管理器模式、系統模式 及,用者模式。例外位準電路15將—例外位準信號提供 曰文解碼器14及系統之他處,以控制可在目前模式中 存取那些系統f源(如,暫存器、記憶體位置等等)。 如上文所述’指令管道18包括暫存器重命名電路24, 、係負貝提供在如由待解碼之程式指令内的暫存器指定 201203103 攔位指疋之架構暫存器及提供作為複數個64位元暫存 器6内之實體暫存器的暫存器之間的一映射。此等暫存
器重命名接作Α Λ σ A 卞局人已知,且可用於支援高效能特徵,例 如無序執行。當解碼—指令時,指令的識別所關注之架 構暫存器的暫存器指定攔位被讀取,並可被映射至(例 如右暫存益被寫入)至·經提供之實帛64位元暫存器6 内的未配置暫存B °當其被操縱時,暫存ϋ重命名電路 追蹤此等暫存器之間的相依性,且當一實體暫存器不 再需要作為保持目前作用成為對應於在該處理點處之架 構暫存益内容的值之—值時,則可將該暫存器自一已配 置暫存态群組移回至—未配置暫存器群組以可用於進一 步的映射。當一暫左, 智存is返回至未配置群組時,其將繼續 儲存其殘餘值。 如下文將描述,清除控制電路26係設置在處理器2 w係回應於來自暫存器重命名電路24之指示特定暫 存:是否未配置之資料,來自指令解碼器14之指示是否 ^兀成切換至-低特權位準之資料,以及來自指令解瑪 。 扣示疋否已70成一暫存器寫入的資料。暫存器清 除控制電& 26回應於此等輸入信號以清除-未配置64 位疋暫存器之最高的半數内容(最高有效32位元),此係 當若該暫存器係用—64位元寫人標記為已使用之後而 ,切換至-較低特權位準時其被映射回成為使用時(亦 即二在-64位兀值被寫入該暫存器的64/32位元指令集 執仃期間之-些階段處)進行。在其他具體實施例中之暫 12 201203103 存器清除控制電路26亦可能採取當切換至—較低特權 準時研除所有未配置暫存器,或當完成相同切換主 除經標9^ °己為“位元已使用」(即’在64/32位元指令崖 執行期間e田 m ]巳用一64位元值寫入)的所有未配置暫存器 步驟。妙;& 1 …、而’在以下所述具體實施例中,在切換至—低 特權位準之後的未配置及64位元已使用暫存器之清 除,係當完成對該未配置及64位元已使用暫存器之寫入 時發生。 ~ 第2圖示意地說明來自64/32位元指令集的算術指令 及邏輯指令。此等指令包括指定在暫存器(Rm與Rn)内 的典型兩輪入運算元及一結果運算元(待寫入至由暫存 器指定欄位(Rd)指定之暫存器)的架構暫存器指定攔 位。指令的一運算碼部分指示待施行的特定算術或邏輯 運算。依一 SF位元形式的一運算元大小攔位指示該指令 是否要在64位元運算元(SF = 1)或32位元運算元上(SF=〇) 上施行。除了指定運算元大小,運算元大小欄位亦控制 被施行之資料處理操作的寬度❶因此,若操縱32位元運 算元’則資料路徑8、10' 12僅需要施行_ 32位元寬度 算術或邏輯運算。 將會暸解第2圖以一示意性形式說明算術指令及邏輯 指令’且貫際上心構暫存器指定符的位置、運算碼及運 算元大小攔位不一定需要在所有此等指令中皆相同。指 令亦可包括另外的攔位。指令解碼器14可依逐指令之基 礎將各指令解碼,及視需要據以處理此等變化。然而, 13 201203103 在不同指令間之共同處中提供某些攔位係合宜且有效 率,例如運算元大小攔位始終是由算術指令及邏輯指令 内之—特定位元位置提供。 64/32位元指令集除了算術指令及邏輯指令以外典型 將包括許多另外類型指令。此等指令可包括流動控制指 令,如分支或跳越指令、載入指令及儲存指令以用於在 記憶體4及暫存器6之間移動資料值,以及其他類型之 才曰令。一些此等指令(如載入指令及儲存指令)亦可包 括一運算元大小攔位(SF),其指示被操縱之運算元是否 係32位元運算元或64位元運算元。在所有算術指令及 邏輯指令中,64位元暫存器6之各者中被處理以使其含 有一單運算元,不論此是否為一 64位元運算元或一 32 位元運算元。 第3圖示意地說明一 64位元AND指令,其係64/32 位元指令集的一邏輯指令。在此情況下運算碼指定一 AND資料處理操作,且SF位元係設定成「1」值,其指 示輸入運具元A及B兩者皆64位元值且從A及B之一 邏輯AND形成的輸出運算元亦係一 64位元值。 第4圖示意地說明一邏輯AND指令,但在此情況下將 SF位元設定成「0」值,其指示輸入運算元及結果運算 元全係32位元值。輸入運算元a與b以及輸出運算元A AND B全被寫入至其各別暫存器Rn、Rm與Rd之最低 有效3 2位元。 當結果運算元被寫入至暫存器R(i時,存在暫存器Rd 14 201203103 之最面有效32位元如何被處理之不同選擇。在一些具體 實施例中此等32位元Rd[63:32]可全被設定成〇。在其 他具體實施例中,可將3 2位元設定成一位元值,其係為 寫入至最低有效32位元之結果運算元的符號延伸⑷卽 extend) ’亦即,Rd[31]被複製至Rd[63:32]内所有位元位 置。此等選擇之兩者提供在當將最低有效位元用以操縱 32位元運算元時何者將被儲存於其之一定程度的決定。 然而’使此等位元歸零或符號延伸會消耗能量。 在一些具體實施例中為了減少能量消耗,當在32位元 運算元上施一 32位元資料處理操作時不改變位元 Rd[63.32]。所卽省的能量不僅包括將會需要改變在結果 暫存器之最高有效32位元内儲存之值的能量,因為結果 值典型被驅動離開至具有一電容且其在驅動該等信號線 時消耗能量之信號線上。此外,存在一與結果運算元相 關之高扇出(fan out),因為此經常需用於處理器2的其 他。P刀,諸如結果轉發邏輯及類似者。因此,在改變64 位元結果暫存器之最高有效32位元(即使此等不表示有 效資料時)時消耗的能量將相當大。因此,選擇不改變此 等最高有效32位元節省了可觀的能量。 第5圖說明 圖說明係64位元暫存器的暫存器 6 °此等係與暫
15 201203103 暫存器32是否目前被配置至一架構暫存器,64位元已 使用暫存器36指示一 64位元資料值是否在自從最後將 64位元已使用值重設後之目前處理器實施期間的任何階 段處被寫至暫存器32。經配置位元34用以致使兩群組 的64位元能夠被定界。此等係目前配置至架構暫存器之 一經配置暫存器群組(應瞭解到,對無序的考量可意味著 在任何給定時間處,介於架構暫存器及實體暫存器間可 能存在一對多的映射,其中一不同實體暫存器表示在一 被執行之程式指令串流内的不同點處之架構暫存器的 值)。未配置暫存器係目前不作用於表示一架構暫存器值 之暫存器,且可用於一池(pool)内,在該池内其可被選定 用於表示一架構值及可被移至經配置群組。 第ό圖係示意地說明來自64/32位元指令集之一 64/32 位元指令的處理程序之流程圖。在步驟38處,處理程序 等待直至接收到一指令。步驟4〇接著使用指令解碼器 14以識別SF位元的值。SF位元指示運算元大小及資料 處理係64位元或32位元。若SF位元具有如在步驟4〇 決定之「1」值,則處理程序前進至步驟42,在該處一 64位元算術或邏輯運算係在儲存於經指定輸入暫存器内 之輸入運算元值的所有64位元上施行,以產生儲存在結 果暫存器内的一 64位元結果運算元。應瞭解到,儘管步 驟42針對算術及邏輯運算描述,但亦可用SF位元來指 疋其他類型指令内之運算元大小,例如載入及儲存指令。 若在步驟40決定SF位元為「〇」,則處理程序前進行 201203103 至步驟44。在步驟44處,— 輸入運算开少总 位几异術或邏輯運算在 窝入: 低有效32位元部分上施行,以產生 :,果暫存器的最低有效部分…位元結果: 二7圖=rrsF已使用位元的設定,其係用,當 權位準(第_ Μ k ' 第一'較低特 例外位準)時控制暫存器清除。步驟 卜成切換至低例外位準。當偵測到此—切換時寺 處理種戽舒w s J換時,則 步驟47,在該處存在一測試以決 有任何未配置暫存器。若盔 疋否 回步驟46以等待下 暫存^則處理程序返 等待下一切換。若有未配置暫存器,則步 對所有此等未配置暫存器設 褀铋。暫存 -重命名電路24可保持第5圖中說明之包括 旗仏的暫存器控制f料28。亦可能在他處儲存此64位 元已使用-貝料’如在暫存器清除控制電路%内。另一選 擇將不提供該$ SF已使用旗標而是將所有未配置暫存 态設定至-預定值(例如,全為零),只要完成切換至— 較低例外位準。 第8圖示意地說明標記為64位元已使用之暫存器的至 少一部分之清除。步驟52識別何時施行_寫入至結果暫 存器Rd。當施行一寫入時,則步驟54決定完成寫入的 實體暫存疋否如由配置棚位34指不般為未配置。若暫 存器並非未配置,則處理程序前進至步驟56,在該處施 行寫入至結果暫存器Rd之最低有效32位元部分。然而, 17 201203103 右被寫入至的實體暫存器係未 粁的贲、 不加直(至少先於目前待施 丁的寫入),則處理程序前進至步驟58, ^ ^ 在該處決疋疋否 位貫體暫存器設定64位元已使用旗標36。若該64 几已使用旗標未被設;t,則實體暫存器的最高有效Μ 位兀不處於儲存從64/32位元指 # 執仃傳遞來的殘 ::枓的危險’且若實體暫存器被映射回成為可用而沒 有’、他考量時,其將可能變得可用。因此,若未設定該 64位兀已使用旗標,則由於切換至較低例外位準,處理 程序可再次前進至步驟56’因為沒有資料_危險(例 如安全資㈣漏)。⑽,若該64位元已使用旗標被設 疋,則處理程序前進至步驟6〇,在該處待寫入之實體暫 存器的最高有效32位元部分係全歸零,從而移除任何可 能的資料浪漏。歸零可由暫存器清除控制電路26施行, 且係一在硬體控制下施行的過程,且因此對於來自軟體 的干擾較不敏感》在步驟60將實體暫存器的最高有效 32位元部分歸零之後,步驟62用於對該實體暫存器重 設64位元已使用旗標36,因為其中之任何殘餘資料已 被歸零。為了減少能量消耗,沒有原因使實體暫存器的 最尚有效32位元部分歸零多於一次。在步驟62之後, 處理程序前進至步驟56’在該處可如所需般寫入暫存器。 第9圖說明可使用之虛擬機器實施。雖然先前描述的 具體實施例針對用於操作支援所關注技術之指定處理硬 體的設備及方法實施本發明,亦可能提供硬體裝置的所 謂虛擬機器實施方案。此等虛擬機器實施方案在執行一 201203103 支援一虛擬機器程式510之主機作蚩έ β 王機作業糸統520的主機處 理器530上執行。典型地,需要 品罟大型強力處理器以提供 以合理速率執行的虛擬機时施方案,但可在某些情況 下證明此一方法,例如當需求為相容性或再使用原因而 執行另一處理器原有的碼時。虛擬機器程式51〇提供一 應用程式介面至-應用程式則,其係與將會由真實硬 體(其係藉由虛擬機器程式51〇模擬之_裝置)提供之應 用程式介面相同。因此’程式指令(包括如上述記憶體 存取之控制)可從使用虛擬機器程式51〇以模擬其與實體 機器硬體相互作用之應用程式5〇〇内執行。 雖然已在此參考附圖以詳細描述本發明的說明性具體 實施例,但應理解本發明不受限於該等精確具體實施 例,且各種改變及修改可藉由熟習此項技術者實現而不 脫離由隨附申請專利範圍界定之本發明範疇及精神。 【圖式簡單說明】 第1圖示意地說明一支援多指令集之資料處理系統; 第2圖示意地說明包括一運算元大小糊位之算術指令 及邏輯指令; 第3圖示意地說明一 64位元邏輯指令; 第4圖示意地說明一 3 2位元邏輯指令; 第5圖示意地說明用於控制關聯於複數通用暫存器之 暫存器重映射操作與暫存器清除之資料; 第6圖係一示意地說明由運算元大小欄位施行的控制 201203103 之流程圖; 第7圖係一示意地說明關聯於設定一暫存器之一已使 用旗標之流程圖; 第8圖係一示意地說明根據是否未自一先前暫存器映 射配置且具有一經設定已使用旗標之一暫存器的清除之 流程圖;及 第9圖說明一虛擬機器環境具體實施例。 【主要元件符號說明】 2 處理器 4 記憶體 6 暫存器 8 乘法器/處理電路 10 移位器/處理電路 12 加法器/處理電路 14 指令解碼器 15 例外位準電路 16 控制信號 18 指令管道 20 64/32位元程式 22 ARM程式 24 暫存器重命名電路 26 清除控制電路 28 暫存器控制資料 20 201203103 30 映射資料 32 64位元暫存器 34 欄位 36 暫存器 500 應用程式 510 虛擬機器程式 520 主機作業系統 530 主機處理器 Rd 暫存器 Rm 暫存器 Rn 暫存器

Claims (1)

  1. 201203103 七、申請專利範圍: l一種用於處理資料之設備,其包含: 複數個2N位元暫存器; 處理電路,其經組態以施行資料處理操作;及 指令解碼器電路,其經耦合至該處理電路,並回 應於一指令集之一固定大小的程式指令之一串流以 產生控制信號,該等控制信號係用於控制該處理電路 以施行該等資料處理操作;其中 該指令解碼器經組態以將該指令集之算術指令 及邏輯指令解碼’其分別地指定待在該複數個2N位 元暫存器中儲存之運算元上施行的算術運算及邏輯 運算;及 該指令解碼器電路經組態以將該等算術指令及 該等邏輯指令内之一運算元大小欄位解碼,該運算元 大小欄位指定以下各項之一: (0該等運算元係2N位元運算元,其各儲存於該 複數個2N位元暫存器之一分開的2>1位元暫存器内; 及 (Π)該等運算元係N位元運算元,其各儲存於該 複數個2N位元暫存器之一分開的2N位元暫存器内。 2.如申請專利範圍第i項所述之設備,其中該指令集内 之所有該等算術指令及所有該等邏輯指令包括該運算 元大小棚位。 22 201203103 3 ·如申請專利範圍第1項所述之設備,其中該運算元大 小欄位指定待施行之一算術運算或一邏輯運算’是否 係待在2N位元運算元上施行的一 2N位元處理操作或 待在N位元運算元上施行的一 n位元處理操作。 4.如申請專利範圍第3項所述之設備,其中當該運算元 大小攔位指定一 N位元處理操作時,一在儲存一 兀結果運算元之一 2N位元暫存器内之最高有效 元係如以下各項之一: (i)全部設定至零;及 (η)全部設定成符號延伸該N位元結果運算元的一 值。 •如申請專利範圍第3項所述之設備,其中當該運算元 大小攔位指定一 N位元處理操作時,一在儲存一 N位 元結果運算元之—2N位元暫存器内之最高有效Μ 凡未改變該Ν位元處理操作。 6.如申請專利範圍第5項所述之設備,其包含暫存器重 命名電路,該暫存器重命名電路經組態以提供在該等 程式指令内指定的架構暫存器及該複數個2Ν位元暫 存器之2Ν位元暫存器間之—映射,使得在操作期間該 複數個2Ν位元暫存器包括目前映射至該等架構暫存 :之^多個經配置暫存器及目前未映射至該等架構 暫存器之一或多個未配置暫存器。 7.如申請專利範圍第6項所 配置在一例外位準階層備’其中該設備具有 層Τ的複數個例外位準。 23 201203103 .如申凊專利範圍第7項 $所述之设備’其中當完成從該 複數個例外位準之一笛 弟一例外位準切換至該複數個例 外位準之一第二例外 位丰’而該第二例外位準在該例 外位準階層中係低於# -、、第一例外位準時,該一或多個 未配置暫存器經清除以健存預定值。 9 ·如申請專利範圍第7 j§ 上 項所述之設備,其中當完成從該 複數個例外之_坌„ & Al 幻外位準切換至該複數個例外之 一第二例外位準,而 第一例外位準在該例外位準階 層中係低於該第一例外/唯 乐例外位準時,設定對應於該一或多 個未配置暫存 节仔盗之各者的一已使用旗標》 10. 如申請專利範圍第9 # ^ 一 ν/τί通之叹備,其中將該2Ν位 元暫存器從係為該一或多個去 乂夕個未配置暫存器之一者改變 至係為該—或多個經配置暫存器之一者,會觸發該2Ν 位元暫存器内未被該Ν位元值霜 叹几《復冩的位兀位置使其被 設定至預定值。 11. 如申請專利範圍第9項所述之設備,其中當完成從該 複數個例外位準之一第一例外位準切換至該複數個例 外位準之-第二例外位準,而該第二例外位準在該例 外位準階層中係低於該第—例外位準時,具有一經設 定已使用旗標之該2Ν位元暫存器經清除以儲存一預 定值。 12. —種用於處理資料之設備,其包含: 複數個2Ν位元暫存器構件,其係用於儲存資料 值; 24 201203103 處理構件,其係用於施行資料處理操作;及 指令解碼構件,其經耦合至該處理構件以用於產 生控制仏號,該等控制信號係用於控制該處理電路以 回應於一指令集之—固定大小的程式指令之一串流而 施行該資料處理操作;其中 s亥指令解碼構件經組態以將該指令集之算術指令 邏輯彳θ々解碼’其分別地指定待在該複數個2N位元 暫存器構件中儲存之運算元上施行的算術運算及邏輯 運算;及 。及私令解碼構件經組態以將該等算術指令及該等 邏輯才曰7内之—運算元大小攔位解碼,該運算元大小 攔位指定以下各項之一: ()該等運算元係2N位元運算元,其各儲存於該複 數個2N位元赵;^,丄 几智存益構件之一分開的2N位元暫存器構 件内;及 ()該等運算元係N位元運算元,其各儲存於該複 數個2N位元暫存器構件之一分開的2n位元暫存器構 件。 13.-種處理資料之方法,其包含以下步驟: 將資料值儲存於複數個2N位元暫存器中; 使用處理電路施行資料處理操作;及 將一指令集之一固定大小的程式指令之一串流解 碼以產生控制作· Μ _ _ t 。说’該等控制信號係用於控制該處理 電路以施行马咨女丨 仃这資枓處理操作;其中 25 201203103 该解碼步驟將該指令集之算術指令及邏輯指令解 碼,其分別地指定待在該複數個2N位元暫存器中儲存 之運算元上施行的算術運算及邏輯運算;及 該解碼步驟將該等算術指令及該等邏輯指令内之 一運算it大小欄位解碼,該運算元大小欄位指定以下 各項之一·. ⑴該等運算S係2NM運算元,其各儲存於該複 數個2N位元暫存器之一分開的2N位元暫存器内;及 ⑼該等運算元係N位元運算元,其㈣存於該複 數個2N位兀暫存器之一分開的2N位元暫存器内。 K如申請專利範圍第13項所述之方法,其中該指令集 2之所有該等算術指令及所有該等邏輯指令包括該運 舁元大小糊位。 15.如申請專利範圍第13 π吓逐之方法’其中該運算元 大小攔位指定待施行之一算術運算或一邏輯運算,是 否係待在2Ν位元運茸亓卜始> u 上施仃的一2N位元處理操作 或待在N位元運算元上施行的—n位元處理操作。 如申請專利範圍第15項所述之方法,其中當該運算 ^大小欄位指定—N位元處理操作時…在儲存- N ^結果運算元之- 2N位元暫存器内之最高有效N 位元係如以下各項之一: (i)全部設定至零;及 ⑴)全部設定成符號延伸㈣位元結果的一 值0 26 201203103 17·如申睛專利範圍第15 — 田示3項所迷之方法,其中當該運算 儿大小攔位指定—N位元處理操作時,—在儲存一 N :立元結果運算元之一 2N位元暫存器内之最高有效N 位凡未改變該N位元處理操作。 18. 如申請專利範圍第17項所述之方法,其包含以下步 驟·在該等程式指令内指定的架構暫存器及該複數個 2N位兀暫存器之2N位元暫存器之間進行映射,使得 在操作期間該複數個2N位元暫存器包括目前映射至 該等架構暫存器之一或多個經配置暫存器及目前未映 射至該等架構暫存器之—或多個未配置暫存器。 19. 如申5#專利範圍第18項所述之方法,其中處理資料 之該方法具有配置在一例外位準階層中的複數個例外 位準。 心申請專利範圍第19項所述之方法,其_當完成一 從該複數個例外位準之一第一例外位準切換至該複數 個例外位準之_笛_也丨从&堆 第一例外位準,而該第二例外位準在 該例外位準階層中係低於該第-例外位準時,該一或 多個未配置暫存器經清除以儲存預定值。 21·如申請專利範圍第丨 項所迷之方法,其十當完成從 該複數個例外之_笛_ / . . 一“外位準切換至該複數個例外 之一第一例外位準’而該第二例外位準在該例外位準 階層中係低於該第一你丨々U .隹 弟例外位準時,設定對應於該一或 多個未配置暫存H之各者的_已使用旗標。 22·如申請專利範圍第21項所述之方法,其中將該抓位 27 201203103 元暫存器從係為該— 至係為該-或多紅 暫存器之一者改變 β夕個經配置哲在哭 ^ . 直督畀15之一者,會觸發該2N 位兀暫存态内未被該N 複寫的之位元位置使其 不用被5又疋至預定值。 23.如申請專利範圍第 ^ ^ 項所述之方法,其中當完成從 該複數個例外位準之—筮 例“列外位準切換至該複數個 例外位準之-第二例外位準 叩第_例外位準在贫 層中係低於該第-例外位準時,具有一經 =使用旗標之該2N位元暫存器經清除以儲存一 —種虛擬機器,其係藉由在— 貝Ή處理s又備上執行的 :電腦程式提供,該虛擬機器提供對應於如申請專利 範圍第1項所述之設備的一執行環境。 28
TW100107186A 2010-03-15 2011-03-03 運算元大小控制 TWI521429B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1004300.8A GB2478731B (en) 2010-03-15 2010-03-15 Operand size control

Publications (2)

Publication Number Publication Date
TW201203103A true TW201203103A (en) 2012-01-16
TWI521429B TWI521429B (zh) 2016-02-11

Family

ID=42261615

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100107186A TWI521429B (zh) 2010-03-15 2011-03-03 運算元大小控制

Country Status (4)

Country Link
US (1) US9804851B2 (zh)
GB (1) GB2478731B (zh)
TW (1) TWI521429B (zh)
WO (1) WO2011114125A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759306B (zh) * 2016-07-02 2022-04-01 美商英特爾股份有限公司 用於累和的系統、設備及方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2478726B (en) * 2010-03-15 2013-12-25 Advanced Risc Mach Ltd Mapping between registers used by multiple instruction sets
US9317285B2 (en) 2012-04-30 2016-04-19 Apple Inc. Instruction set architecture mode dependent sub-size access of register with associated status indication
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9804840B2 (en) * 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US10228941B2 (en) * 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register
US9639369B2 (en) * 2013-11-11 2017-05-02 Apple Inc. Split register file for operands of different sizes
US10671391B2 (en) * 2014-02-25 2020-06-02 MIPS Tech, LLC Modeless instruction execution with 64/32-bit addressing
GB2532777B (en) * 2014-11-28 2021-07-07 Advanced Risc Mach Ltd System error handling in a data processing apparatus
GB2540971B (en) 2015-07-31 2018-03-14 Advanced Risc Mach Ltd Graphics processing systems
GB2540944B (en) * 2015-07-31 2018-02-21 Advanced Risc Mach Ltd Vector operand bitsize control
CN113885833B (zh) 2016-10-20 2025-05-13 英特尔公司 用于经融合的乘加的系统、装置和方法
US10671497B2 (en) 2018-01-19 2020-06-02 International Business Machines Corporation Efficient and selective sparing of bits in memory systems
US10831479B2 (en) * 2019-02-20 2020-11-10 International Business Machines Corporation Instruction to move data in a right-to-left direction
US11119774B2 (en) 2019-09-06 2021-09-14 International Business Machines Corporation Slice-target register file for microprocessor
US11093246B2 (en) 2019-09-06 2021-08-17 International Business Machines Corporation Banked slice-target register file for wide dataflow execution in a microprocessor
US11157276B2 (en) * 2019-09-06 2021-10-26 International Business Machines Corporation Thread-based organization of slice target register file entry in a microprocessor to permit writing scalar or vector data to portions of a single register file entry
GB2591788B (en) * 2020-02-06 2022-06-01 Advanced Risc Mach Ltd Saving and restoring registers

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
US5148544A (en) * 1987-07-01 1992-09-15 Digital Equipment Corporation Apparatus and method for control of asynchronous program interrupt events in a data processing system
US5961575A (en) * 1996-02-26 1999-10-05 National Semiconductor Corporation Microprocessor having combined shift and rotate circuit
DE19826826A1 (de) * 1998-06-16 1999-07-15 Siemens Ag Verfahren zum Decodieren und Ausführen von Befehlen in einem RISC-Prozessor
US6237076B1 (en) * 1998-08-19 2001-05-22 International Business Machines Corporation Method for register renaming by copying a 32 bits instruction directly or indirectly to a 64 bits instruction
US6499046B1 (en) * 1999-05-20 2002-12-24 International Business Machines Corporation Saturation detection apparatus and method therefor
JP3805578B2 (ja) * 1999-09-14 2006-08-02 松下電器産業株式会社 プロセッサ
US7047396B1 (en) * 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US6981132B2 (en) * 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
US6807622B1 (en) * 2000-08-09 2004-10-19 Advanced Micro Devices, Inc. Processor which overrides default operand size for implicit stack pointer references and near branches
US8027280B2 (en) * 2004-10-27 2011-09-27 Honeywell International Inc. Layered architecture for data management in a wireless sensor network
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759306B (zh) * 2016-07-02 2022-04-01 美商英特爾股份有限公司 用於累和的系統、設備及方法

Also Published As

Publication number Publication date
US20110231633A1 (en) 2011-09-22
TWI521429B (zh) 2016-02-11
GB2478731A (en) 2011-09-21
GB2478731B (en) 2013-08-21
WO2011114125A1 (en) 2011-09-22
US9804851B2 (en) 2017-10-31
GB201004300D0 (en) 2010-04-28

Similar Documents

Publication Publication Date Title
TW201203103A (en) Operand size control
TWI847670B (zh) 使用矩陣乘法指令的設備
US20170097891A1 (en) System, Method, and Apparatus for Improving Throughput of Consecutive Transactional Memory Regions
US12001842B2 (en) Hardware apparatuses and methods to switch shadow stack pointers
CN107003921B (zh) 具有有限状态机控制的可重配置测试访问端口
CN108369511B (zh) 用于基于通道的跨步存储操作的指令和逻辑
CN108369509B (zh) 用于基于通道的跨步分散操作的指令和逻辑
KR101636836B1 (ko) 명령어들의 고속 실패 핸들링을 위한 장치 및 방법
TWI567751B (zh) 多暫存器記憶體存取指令、處理器、方法及系統
CN108351779B (zh) 用于安全指令执行流水线的指令和逻辑
JP6051458B2 (ja) 複数のハッシュ動作を効率的に実行する方法および装置
GB2514882A (en) Instruction emulation processors, methods, and systems
TWI556166B (zh) 不讀取進位旗標地完成執行之旋轉指令
KR20160127156A (ko) 가속기들의 낮은-레이턴시 인보크를 위한 장치 및 방법
EP3238046A1 (en) Instruction and logic to perform a fused single cycle increment-compare-jump
WO2014051737A1 (en) Read and write masks update instruction for vectorization of recursive computations over independent data
GB2513975A (en) Instruction emulation processors, methods, and systems
TW201729080A (zh) 用於排列序列之指令及邏輯
JP5798650B2 (ja) 短整数の乗算の数を減らすためのシステム、装置、および方法
US10824496B2 (en) Apparatus and method for vectored machine check bank reporting
US11023382B2 (en) Systems, methods, and apparatuses utilizing CPU storage with a memory reference
WO2022212213A1 (en) Apparatuses, methods, and systems for instructions for downconverting a tile row and interleaving with a register
WO2007057831A1 (en) Data processing method and apparatus