TW413766B - Mixed vector/scalar register file - Google Patents

Mixed vector/scalar register file Download PDF

Info

Publication number
TW413766B
TW413766B TW087115620A TW87115620A TW413766B TW 413766 B TW413766 B TW 413766B TW 087115620 A TW087115620 A TW 087115620A TW 87115620 A TW87115620 A TW 87115620A TW 413766 B TW413766 B TW 413766B
Authority
TW
Taiwan
Prior art keywords
register
vector
instruction
scalar
patent application
Prior art date
Application number
TW087115620A
Other languages
English (en)
Inventor
David Vivian Jaggar
Christopher Neal Hinds
David Terrence Matheny
David James Seal
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
Application granted granted Critical
Publication of TW413766B publication Critical patent/TW413766B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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
    • 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/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation of IEEE-754 Standard

Landscapes

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

Description

五、發明說明( 沒有目的暫存器(例如輸出為條件旗標)或較少輸入運算元 (與零作比較只有一輪入運算元)。於這些例子中,有更多 之運算碼位元空間可用以指明選擇,例如向量/純量本質及 暫存器之全範圍應被由每一運算元所使用(例如比較可以 不管暫存器而均是全純量)。 一起執行指令解碼器之要角之暫存器控制及指令發 出單元48及向量控制單元50反應於第—暫存器指明攔位 R1及第二暫存器指明攔位R2 ,以決定然後控制所指明之 資料處理運算之向量/純量本質。應注意的是若儲存於向量 控制暫存器46中之長度值指示一之長度(相當於零之儲存 值),然後這可以被用以作為一單純純量運算之先期产 。 第3圖示出用以解碼於單精度模式之暫存器指明值之 向量/純量本質之處理邏輯。於步驟56中,判斷向兔長度 是否走面被尊_立—成U長度值等於零)。若向量長度為!,則 所有暫存器於步驟58中被視為純量。於步驟中,則進 行目的暫存器R1是否於範圍SO至S7之測試。若是的話, 則運算是全純量並為形式S = S 0p S,這是被指明於步驟 62中。於步驟60為否,則目的地被決定為—向量,如於 步驟64所指示。若目的是向量,則編碼以第二運算元成 為—向量。因此,保留於此階段之兩種可能是v = V(^s 及V s V op V ^這兩種選擇係藉由於步驟66之測試加以 區别’以決定是否第一運算元是SO至S7之一 β若是的話, 則運算是v = v 〇p s,否則運算為ν = ν 〇ρ ν。這兩狀態 第17頁 (請先閲讀背面之注意事項再填寫本頁)
經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 U ---------------I---------Θ--------訂---------線-}------------------------ 413766 A7 B7 裡承部中央榡年局兵工消费合竹社印鉍 五、發明説明( 發明領域:. 本,發明關於資料處理之領域。更明白地說,本發明關 係於資料處理系統,其具有向量及純量資料處理暫存器。 發μti : 一資料處理指令典型地包含一運算碼部份及一或多 數暫存器指明攔位於其中。於某些系統中’ 一暫存器可以 視為一向量暫存器或一純量暫存器=一向量暫存器指明一 序列之暫存器’每一暫存器儲存其本身資料值,諸值於資 料處理指令重覆其運算於序列中之每一資料值時,個別地 運算。相反於一純量暫存器的是一單一暫存器,其儲存單 一值’該值獨立於其他暫存器運算。 使用向量暫存器之資料處理指令具有若干優於純量 運算之優點。所需之指令頻寬可以被降低,因為指需要箪 一資料處理指令來指明多數予以執行之類似資料處理運 算(共同於DSP函數,例如FIR濾波器)^當單一事件機器 (即一指令被擷取並被每週期解碼)時(因為其簡單所以是 想要的),較高效能可以加以完成,以多重函數單元,其 平行執行不同向量指令。 於克雷(Cray)l中,個別向量及純量暫存器排1〇,12 係被提供β — 1 6位元指令提供個別運算碼,其相當於栺 明於指令中之暫存器之不同組合,其被處理為向量或純 量》這需要提供增加數量之運算碼之缺點,以代表這些各 種组合。再者,當純量及向量暫存器係被提供於分開之暫 娜尺度_侧(叫爾 .-------参私----,---,-ΐτ ',_____ ^ (请先閱讀背ιδ,-cl注意事項其填対本買) 413766 A7 ______ Β7 五、發明説明( ) -- 存器排10, 12,運算碼需要至少部份被解碼,以決定哪一 暫存器;排10,12被用以指定之特定暫存器。這另外之解 碼帛求造成被肖存於暫存器中纟資料值之讀取不能儘早 被讀取》 克雷1處理機使用3位元暫存器,指明欄位Rl,R2, R3’以允許8純量暫存器及8向量暫存器被定址。於實際 上,每-向量暫存器包含一叠暫存器,每一暫存器均可以 依儲存於一長度暫存器16上之向量長度值及儲存於一遮 罩暫存器18之遮罩位元,而儲存一不同冑料值並被順序 也存取然而,,、有8純向暫存器被3位元暫存器摘位之 限制對於現代編譯器係重大的缺點,編譯器若能針對一較 高數量暫存器’則能較快產生碼β
MultiTitan處理機提供單一暫存器排2〇,其中每一暫 存器可以操作為純量或向量暫存器之一部份^ MuUiTitan 處理機使用32位元指令,以指明其資料處理運算。這大 量之心令位元2間允許指令本身包含襴位VS2,vs3,其 指π是否暫存器是向量或純量,以包含向量之長度仏⑶)。 雖然該方法允許大量之彈性,但其忍受缺點有很多不足夠 指令位元空間之缺點,以使得向量/純量被包含於指令内, 而不必限制可用之運算碼空間,以允許提供很多之指令 集。再者'’向量長度之提供於指令本身内,使得其很難對 向量長度作全面改變,而不必憑藉自行修正碼e MultiTitan 技術同時當其用於等指令位元空間資源於向量及純量暫 存器之組合時,不能有效使用其指令位元空間,諸暫存器 第5頁 本祕尺度试;!1巾 S彳(C'NS ( 210X 297^^ )~~——~~~ —— --- —._.—^-----— (請先閱讀背面之注意事項再填寫本頁) .丁 -β A7 B7 413766 五、發明説明( 係實際上不♦被使用(例如V = S 0p S ; —序列之向量暫存 器係被填以執行於兩純量暫存器之運算之結果)。 j 發_明目的及概溪; 本發明之目的係定位於上述系統之部份限制。 由本發明之一方面看來,本發明提供一用以處理資料 之設備,其包含: 一暫存器排,具有多數暫存器;及 一指令解碼器,用以解碼資料處理指令,至少諸資料 處理指令之一具有至少一操作指定碼,其指定用於執行之 運算,以及,一第一暫存器指定櫚位指定在暫存器排内之 第一暫存器;其中 該指令解碼器使用一已知暫存器為一純量暫存器或 一向量暫存器,而執行一運算,執行於該已知暫存器為一 純量暫存器時,包含執行儲存於已知暫存器中之運算元上 之運算一次,以及,執行於已知暫存器為一向量暫存器, 包含執行错存於暫存器敎一預定序歹j暫存^中之運算 疋該運算多數次’該序列暫存器係以相關於已知暫存器之 暫存器指定櫚加以選擇:及 :指令解瑪器係反應於該第—暫存器指明糊並無關 二指定碼’以決定是否該予以被執行之運算,使用第 暫存器成為一向量暫存器或—純量暫存器。 ㈣暫存器棚本身,以指示是否暫存器被處 Β量或-純量。因此’對運算碼不需要執行解碼, 丨、.尺心財 (請先閲讀背面之注意事項再填寫本頁) 訂
C 第6貰 413766 A7 (--------------- B7 五、發明説明() * 只基於暫存器搁或被提供於單暫存器排内之純量及向 量,允ρ暫存器被早存取,因此,允許使用時較大之彈性。 再者,使用暫存器指定棚以編碼是否暫存器是用於其他用 途之純量或一向量空白指令位元空間。於實際上,本發 明之技術提供一有效指令編碼,其順序地允許指令位元空 間為可用,以使較大暫存器排可以被定址。 於本發明之一較佳實施例中,該至少一資料處理指令 具有一第二暫存器指定欄,以指定一第二暫存器; 該指令解碼器執行該運算,使用第二暫存器成為一純 量暫存器或一向量暫存器;及 該指令解碼器是反應於第一暫存器指定攔,以決定是 否予以執行之運算使用第二暫存器成為向量暫存器或一 純量暫存器。 這些較佳實施例完成並開發了一共相關,其^是否第 -暫存器是-向量或-純量,以及,是否第二暫存器是一 向量或-純量。於實際上已經發現,一些组合係經常地用 以而一部份則未被使用。這可以藉由支援經常使用组合並 將其編碼以第一暫存器襴值而加以開發,藉以避免必須分 開地編碼第二暫存器之本質。當實㈣要未u&n 這可以藉由使用其他指令加以完成。該沒希望組合係相當 稀少,其、中不必編碼每一指令之第二暫存器之本質之増益 遠遠超出了偶而需要以供額外指令來指明想要之 操作。 於一些實施例中,雖然共相關可以是當第一暫存器是 ____________第7育 本紙 ίΑ 尺度通川中闽 1¾ 家( r~NS ) { 210 ^297¾-)-----~~-__ -----一,-----ίI — 》 - 4 * (誚先間讀背面之注意事項再填寫本頁) .訂 413766 Μ Β7 五、發明説明() —純量,而第二暫存器是一向量,但吾人發現第一暫存器 及第二,暫存器應被共相關至均向量或均是純量。 本發明之原理可以有利於被用於較佳實施例中,其中 該至少一資料處理指令具有第三暫存器指明欄,以指明第 三暫存器。 該指令解碼器執行該運算,使用第三暫存器成為—純 量暫存器或一向量暫存器;及 該指令解碼器是反應於該第二暫存器指明櫚,以決定 是否予以被執行之運算使用第三暫存器成為一向量暫存 器或一純量暫存器β 該較佳特性使用第二暫存器指明欄以編碼第三暫存 器之向量或純量本質,以節省更多指令位元空間β 使用暫存器指明糊以編碼向量或向量之純量本質並 不允許’純量及向量暫存器之所有组合被迅速編碼。對於非 交換運算,發生之特定問題,其中V ops或Sop ν之排 岸造成一差異,同時,並不提供在這兩可能性之暫存器欄 内之個別編碼β於較佳實施例中,這問題可以被克服,其 中’當運算指明碼具有相當於非交換運算之非交換碼時, 至少一部份之非交換碼係被呈對地提供相當於相同運算 但具有相反運算元順序。 向量長度及向量跨步(於序列中之暫存器數間之間隔) 可以被指明於指令運算碼内β然而,較佳地向量長度及向 Τ跨步係被儲存於向量控制暫存器内之值所控制。這些長 度及跨步值全面應用至所有被使用之向量暫存器上__雖 _ 第 3"^ 不紙卿彳H (7:NS ) ( 210X 297^^ 7 ——- -----1------- (請先間讀背面之注意事項再填寫本頁) 訂 统"、邓中'Λ,:ί:ί,:·ν-^ρ' 工消合竹社 413766 A7 _B7 五、發明説明() 然,這可能造成較差之彈性,但實際上,混合長度及跨步 值之想法並不常見同時不只超出由此方法所提供之能 ! 力,以全面地改變向量長度及跨步,而不需自行修改碼。 另外,儲存於向量控制暫存器内之長度值可以被用以 取得是否所有用於資料處理指令之暫存器是純量之快速 指示’藉由檢測一相當於一之長度值,於此例子中,任一 向量暫存器將操作為一純量》此一所有純量運算之先前指 示是有用於指令解碼,以動作於計時限制上β 暫存器指明欄值可以被分成不同方式以表示是否暫 存器為一向量或一純量。然而,其是有利於提供快速指令 解碼’以分離暫存器指明攔值成為個別編碼不同意義之範 圍。 於實際上已經發現,吾人想要提供較純量暫存器為多 之向量.暫存器’因為向量暫存器之本質似乎儲存較大數量 之不同值,而純量暫存器經常儲存反覆使用之值。特別 是’在編碼内之向量暫存器及純量暫存器間之3比1之比 例已經被發現為一良好之平衡。 可以了解的是於暫存器之數量間有一平衡,假設暫存 器可以形成用於編繹器之目的及所需之指令位元空間,以 允許暫存器爛足夠長以使用所有暫存器β 一良好妥協已經 發現是提供32個暫存器。 本發明之較佳實施例包含一記憶體及一傳送控制 器,用以控制資料值之傳送於記憶體及暫存器排内之暫存 益之間*該傳送控制器係反應於多重傳送指令,以傳送一 ---- 第9貫 本紙沾尺度過 ( ('NS ) Λ4ϋ ( 210X 297^^ Γ'"" —~' -----------φ.--------訂------ <諳先閱讀背面之注意事項再填^本頁) ~ 413766 A7 B7 五、發明説明 序列之資料值於記憶體及暫存器排内之一岸列暫存器之 間。
I 傳送控制器假設支援多重傳送指令(即,由一指令所 傳送之很多字元)允許暫存器排被有效地以新值更新而無 關於被加載或卸載之暫存器是向量暫存器否β 雖然本發明可以用於很多不同類型之資料處理設 備,但吾人已經發現,其係特别有用於浮點單元内。浮點 單元除了主_流資料處㈣統外被提供,例如,以浮點協 同處理機之形式,經常面對其可用之指令位元空間之限 制,同時,使用具有向量及純量暫存器之大暫存器排。於 此文中’本發明係特別有用。 對於一般所需之已知運算碼,向量及純量暫存器之組 合已經被認為可預測,並合用於多重累積運算中。 一般需要之向量及純量之不同组合及向量/純量暫存 器編碼技術間之匹配己經被認為有益於第一暫存器是一 目的暫存器’第二暫存器是第一源暫存器及第三暫存器是 第二源暫存器。 暫存器資源之彈性可以被藉由個別地排列資料槽至 代表單精度值或呈對地代表倍精度值。 解碼之速度可以藉由使用於已知暫存器内之值加以 協助,以直接地指出被使用之第一暫存器产_向量或一純 量允許對此暫夸器之存取而開始,而不必執行任何運算 於資料處理指令内之值之計算。 由本發明之_另一方面提供一處理資料方法,該方法包 第10頁 (210X297公趫) I—^——i----参----r——IT------ο (誚先閱讀背面之注$項再填寫本頁) A7 B7 413766 五、發明説明 含步驟: 儲存資料值於一暫存器排中,該排具有多數暫存器; 及 以—指令解碼器,來解碼資料處理指令,至少一資料 處理指今' -ir- yr * y具有至少一運算指定碼,指定用以執行之運算以 及第暫存器指定攔,指明在暫存器排内之第一暫存 器;其中 該札令解碼器使用一已知暫存器為一純量暫存器或 一向量暫存器來執行一運算,以該已知暫存器執行為—純 量暫存器包含於儲存已知暫存器中有一運算元時’執行— 運算’以及,以該已知暫存器執行為一向量暫存器時,包 含對儲存於暫存器排之預定順序暫存器内之諸運算元執 行一運算若干次,諸順序暫存器係以相關於一已知暫存器 之暫存’器指明欄加以選擇;及 該指令解碼器是反應於第一暫存器指明欄並無關於 運算指定碼,而決定是否該運算為使用第一暫存器為—向 量暫存器或一純量暫存器加以執行》 見式.1單弟明.: 本發明將以實例性加以說明,參考附圖中之較佳實施 例,其中 第1圖為· 一資料處理系統之示意圖。 第2圖為一浮點單元,其支援純量及向量暫存器。 第3圖為一流程圖,示出於單精度運算,其係用以決定是 第11頁 本纸?Α尺度诚川屮阈1¾本椋W ( ) Λ4規格(2丨0>〇97公斯)
——;^----0 /-----1 (对先閱讀背面之注意事項再填寫本頁J *1Τ " 413766 A7 B7 五、發明説明() 否一已知暫存器為一向量或純量暫存器。 第4圖為一流程圖,示出用於倍精度運算,其係用以決定
I 是否一已知暫存器為一向量或純量暫存器。 第 5圖例示暫存器排被分成具有回折於每一次組内之次 組,於單精度運算時,^ 第 6圖例示暫存器排被分成具有回折於每一次組内之次 组,於雙精度運算時。 第7A至7C圖分別例示一主處理機之協同處理機指令,一 單精度及雙精度協同處理機之協同處理機指令及 單一精度處理機之協同處理機指令。 第8圖例示控制單及雙精度協同處理機之主處理機。 第9圖為控制單精度協同處理機之主處理機。 第10圖為於單及雙精度協同處理機内之電路,協同處理 ’機決定是否一接受信號應為了一接收協同處理機 指令而被送回到主處理機。 第11囷為於單精度協同處理機内之電路,協同處理機決 定是否一接受信號應為了一接收協同處理機指令 而被送回到主處理機。 第1 2圖例示處理於主處理機内之未定義指令例外處理。 第13圖為例示依據本發明之較佳實施例之協同處理機之 元'件之方塊圖β ϊ . 第1 4圖為例示出依據本發明之較佳實施例之暫存器控制 及指令發出邏輯之操作流程圖。 第1 5圖提供一依據本發明之較佳實施例之浮點暫存器之 ____第 121__ 本纸ifc尺度滴川十1¾ 1¾家標今(Γ N S ) Λ 4规格(2】()X 2 9 7公筇) ' ——:——r----pII _ -· · .1-1.. (請先閲讀背面之注意事項再填寫本IT) 、-* 413766 A7 B7 五、發明説明() 内容之例子。 第16圖例示於克雷1處理機之暫存器排。 f 第17圖為於一 MultiTitan處理機之暫存器排。 亂號 對照說明: 10 向量暫存器排 12 純量暫存器排 16 長度暫存器 18 遮罩暫存器 20 單暫存器排 22 資料處理系统 24 主處理機 26 浮點單元協同處理機 28 快取記憶體 30 主記憶 32 輸入/輸出系統 34 主匯流排 36 協同處理機匯流排 38 暫存器排 40 管路乘法累積單元 42 負載儲存控制 44 指令暫存器 46 向量控制暫存器 48 暫存器控制及指令發 出單元 50 向量控制單元 76 位元組合欄 78 協同處理機數欄 80 ARM核心 82 協同處理機匯流排 84 協同處理機 86 記憶體系統 88 協同處理機 200 格式暫存器 220 暫存器排 225 路徑 230 暫存器排輸入邏輯 240 暫存器排輸出邏輯 ___第13頁 木紙张尺度適州中阀丨')八4現格(21〇Χ 297公f.) — I\-I」----l)iII -1/-1 (锖先閱讀背面之注意事項再填巧本頁) -訂 413766 Α7 Β7 Ϊ141· 五、發明说明( u許知n月一 第1圖例示出一資料處理系統22,其包含一主處理機
J 24,〆浮點單元協同處理機26,一快取記憶體28’ 一主 記憶體3〇及輸入/輸出系統32 =主處理機24 ’快取記憶體 28,主記憶禮30及輪入/輪出系統32係經由一主匯流棑 34連結在一起。一協同處理機匯流排36連接主處理機24 至浮,點單元處理機26。 於操作中,主處理機24(同時被稱為ARM核心)執行 一串流之資料處理指令,諸指令控制一般類型之資料處理 操作’其包含與快取記憶體28,主記憶體30及輸入/輸出 系統3 2間之相互作用。内藏於資料處理指令串流内的是 協同處理機和令。主處理機24識1這些協同處理機指令, 成為應予以為附帶之協同處理機所執行之類型。因此,主 處理機' 24發出這些協同處理機指令於協同處理機匯流排 36上,這些指令係於其上被附帶協同處理機所接收。於此 時,浮點單元協同處理機26將接收並執行任何所接收之 檢測得之協同處理機指令。這檢測係經由於協同處理機指 令内之協同處理機數量欄位β ^ …第2圖例示於浮點單元協同處理機26之細節 單兀協同處理機26包含一暫存器排3 ’’ ...^ 再係由 32 個 32 位X暫存器(第2圖未全示出)所形成。這此 別地操作為單精度暫存器,每―厂存器可以個 "W仔器均儲在” 料值或成對而儲存一 64位元资料括 仔·^位元資 Λ针值。在浮赴路_ 理機20内的是一管線乘法累積單元4〇 疋協同處 —負載儲存控制 本纸张尺政適;Π屮_家掠今(Τ^Γ)Λ4^( 210X^5 . 、 - * - - -- m ί I be J— II— -wJilLii广In-------1— I T¥ . y i f^先間讀背而之注意事项再填寫本頁} 部 中 k 消 合 竹 杜 印 A7 B7 五、發明説明( 單元42。於適當環境中,乘法累積單元4G及負載儲存控 制單元42可以同時地操作,以乘法累積單元4Q對暫存器 排38資料值執行算冑運算(其包含乘法累積運算及其 他運算)’同時,負載儲存控制單元Μ傳送未被乘法累積 單元40所使用之資料值經由主處理μ至浮點單元協同處 理機26或資料值經主處理機24由浮點單元協同處理機 送出。 在浮點單元協同處理機26中,一接受之協同處理機 指令係被栓鎖於一指令暫存器44之内。協同處理機指令 了以於此簡單圓中被認為由一運算瑪部份跟著三個暫存 器指明攔Rl,R2及R3所形成(事實上,這呰.棚位可以分 離及分開於全指令之不同角落)。這些指令指明欄位R1, R2及R3分別相當於暫存器排38内之暫存器,其作為用 於被執'行之資料處理運算之目的,第一源及第二源β 一向 量控制暫存器46(其可以是作其他功能之較大暫存器)儲 存長度值及用於為浮點單元協同處理機26所執行之向量 運算之跨步值。向量控制暫存器可以反應於向量控制 暫存器負載指令’而被啟始並更新以長度及跨步值。向量 長度及跨步值全面地應用於浮點單元協同處理機26之 内’藉以允許這些值被動態地全面改變,而不必依賴自修 改碼。 、 i . 一暫存器控制及指令發出單元48,負載儲存控制單元 42及向量控制單元50可以一起被認為執行指令解碼之主 要角色。暫存器控制及指令發出單元48係反應於運算碼 本纸張尺度適⑴中闽( rNS ) Λ4規格(210X 297公釐) (对先閱讀背面之注意事項再填辟本頁)
413766 A7 B7 第16肓 五、發明説明( 及三個暫存器指明攔位R1,R2&R3,並首先輸出—敌始 暫存器丨存取(定址)信號至暫存器排38,而不會於運算竭上 執行任何解碼或需要使用向量控制單元50。一旦以此方式 直接存取啟始暫存器值,協助完成一較快之實施β若—向 量暫存器被指明,則向量控制單元5〇作用使用3位元增 量(加法器)52以產生暫存器信號之所需序列。向量控制單 元5〇反應於長度值及儲存於向量控制暫存器46中之跨步 值而執行暫存器排38之定址。一暫存器得分板54係被提 供以執行暫存器鎖定,使得管線乘法累積單元及同時 操作之負載儲存控制單元42並不產生協調問題(暫存器得 分板54可以另被認為是暫存器控制及指令發出單元48之 一部份)<· 包含於指令暫存器44内之運算碼指明予以指明之資 料處理運算之性質(例如指令是一加法,減法,乘法,除 法’加載’儲存等等這是無關於被指明之暫存器之向 量或純量性質。這更簡化指令解碼及乘法累積單元4〇之 ?又疋。第一暫存器指明值R1及第二暫存器指明值r_2 一起 編碼由運算碼所指明之運算之向量/純量本質β由編碼所支 援之二個共同例予是S = s* S(例如由C編譯語言,由一 群< C碼所產生之基本隨機數學)’ V = V op S(例如,純 量化一向、量之元件)及v = V op V(例如矩$運算,例如FIR 濾波器及圖形轉換)(注意於此文中"〇P"表示一般運算及語 意之形式為目的碼=第二運算元.〇p第一運算元)。應該可 以了解,—些指令(例如,比較,與零或絕對值作比較)並 )Λ4現格(2Ι0χ 297公浼 (請先閲讀背而之注意事項再填??本頁) -訂 .線
五、發明說明( 沒有目的暫存器(例如輸出為條件旗標)或較少輸入運算元 (與零作比較只有一輪入運算元)。於這些例子中,有更多 之運算碼位元空間可用以指明選擇,例如向量/純量本質及 暫存器之全範圍應被由每一運算元所使用(例如比較可以 不管暫存器而均是全純量)。 一起執行指令解碼器之要角之暫存器控制及指令發 出單元48及向量控制單元50反應於第—暫存器指明攔位 R1及第二暫存器指明攔位R2 ,以決定然後控制所指明之 資料處理運算之向量/純量本質。應注意的是若儲存於向量 控制暫存器46中之長度值指示一之長度(相當於零之儲存 值),然後這可以被用以作為一單純純量運算之先期产 。 第3圖示出用以解碼於單精度模式之暫存器指明值之 向量/純量本質之處理邏輯。於步驟56中,判斷向兔長度 是否走面被尊_立—成U長度值等於零)。若向量長度為!,則 所有暫存器於步驟58中被視為純量。於步驟中,則進 行目的暫存器R1是否於範圍SO至S7之測試。若是的話, 則運算是全純量並為形式S = S 0p S,這是被指明於步驟 62中。於步驟60為否,則目的地被決定為—向量,如於 步驟64所指示。若目的是向量,則編碼以第二運算元成 為—向量。因此,保留於此階段之兩種可能是v = V(^s 及V s V op V ^這兩種選擇係藉由於步驟66之測試加以 區别’以決定是否第一運算元是SO至S7之一 β若是的話, 則運算是v = v 〇p s,否則運算為ν = ν 〇ρ ν。這兩狀態 第17頁 (請先閲讀背面之注意事項再填寫本頁)
經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 U ---------------I---------Θ--------訂---------線-}------------------------ 4l3766 A7 B7______ 五、發明説明() 分别被進行於步驟6 8及7 〇。 應注意的是當向量長度被設定為1時,所有暫存器排 38之32個暫存器均可被用以作為純量’因為運算之純量 本質將被進行於步驟58而不必依靠步驟60之測試,步驟 6〇限制了可用作為目的之暫存器之範園。步驟60之測試 係有用於執行當混合向量及純量指令被使用時之全純量 運算》可以注意的是當運算於一混合向量及純量模式時, 若第一運算元是純量時,則其可以是S0至S7之任一,同 時,若第一運算元是一向量,則其可以是S8至S3 1之任 ~。假設當使用向量運算時,在第一運算元為向量之暫存 器排内可用暫存器數量之三倍是對需以保有資料值疮列 之大量暫存器之改變。 可以了解,一吾人想要執行之共同運算是一圖形轉 換。於一般狀態中,予以執行之轉換可以由一 4M矩陣所 代表*於此計算所重覆使用之運算元表示,吾人想要可以 以向量計算之掩陣值可以被儲存於暫存器中。於一些方 面,一輸入像素值係大致儲存於4暫存器中,其再次應可 以計算為一向量以協助再使用。矩陣運算之輸出大致可以 是儲存於4暫存器中之純量(累積個别向量線乘法)。若想 要倍份處理輸入及輸出值,則需要24(16 + 4 + 4)向量暫存器 及8(4+4)純量暫存器。 第4囷是一依據第3圖之流程之流程圖,但其中’例 不倍精度模式。如同先前所述,.於倍精度模式中,於暫存 器排38中之暫存器槽作用成對,以儲存16個64位元資 (請先閱讀背面之注意事項再填苟本頁) -9 *1Τ· 線. 赶於部屮夾镖萃局兵工;i,ifr"竹社印ν 本 綱 --——----— «3766 A7 ______B7__ 五、發明説明() 〜 料值於邏輯暫存器DO-D15之中。於此,暫存器之向量/ 純量本質之編碼係由第3圖加以修改,於步騾60及66中 之測試’現在變成"目的為D0-D3之一"及,,第一運算元為 D0-D3之一",分別於步驟72及74。 雖然編碼於暫存器指明欄位内之暫存器向量/純量本 質被描述為提供一重大節省於指令位元空間中,但其對非 交換運算,例如減法及除法,造成某些困難。已知暫存器 架構V = V op S,用於非交換運算之第一及第二運算元間 之缺少對稱性可以被克服,而不會其他指令來藉由延伸指 令组以包含呈對之例如SUB,RSUB及DIV,RDiv之運算 碼’來交換暫存器值’諸運算碼代表用於非交換運算之兩 不同運算元選擇。 第5圖例示暫存器排38之次组内之向量之回折。特 別是於單精度模式中,暫存器排被分成具位址S0_S7 ’ S8-S15,S16-S23及S24-S31之暫存器之四個範圍β這些 範圍係被拆散但相鄰接》參考第2圖,用於這些具有八暫 存器之次組之回折功能可以藉由使用向量控制單元5〇内 之3位元增加(加法器)52加以提供,於此方式,當一次組 邊界越過時,增量器將會回折β這簡單實施係藉由對準這 些次組在暫存器位址空間内之八字元邊界上加以實行。 回到第5圖,若干向量運算將被例示以協助暫存器回 折之了解=第一向量操作指明一開始暫存士 S2,一向量長 度4(其係被向量控制暫存器46之長度值3所表示),及一 跨步(其係由向量控制暫存器46之跨步值〇所表示^因 ___________f 19 頁 本紙乐尺心tj ;时㈣(('NS ) Λ*格(210^797公筇) ------ r»f)先閲讀背面之注意事項再填巧本頁) -訂 經满部中央標卑局月工消费合作社印緊 413766 A7 ---------- B7 五、發明説明() ' '--- 此’當一指令被執行時,其被解碼以被參考暫存器S2,作 為在這广全面向量控制參數組之向量,然後,該指令將被 個別執行4次,使用於暫存器S2,S3,S4及S5内之資料 值。因為這向量並不越過一次組邊界’沒有向量回折。 於第二例子中,開始暫存器是S14’長度為6及跨步 是卜這將導致指令被執行六次,開始於暫存器si4開始^ 所使用之下一暫存器將會是S15。當為跨步所再次增加之 暫存器時’而替代所使用之暫存器是S16,將會回折至暫 存器S8。指令是然後再執行3次’以完成si4,以5,μ , S9 * S10及S11之全序列。 第5圖之最後例子示出S25之開始暫存器,長度為s, 跨步為2。所使用之第一暫存器將會是S25及這將會是由 S27,S29及S31依據跨步值2所跟隨。在暫存器S3i所 使用後,下一暫存器值將回.折到次組之開始,以跨步^傳 送於暫存器S24上,並使用暫存ES25執行運丨。當移動 於向量暫存器間時,增量52可以取3位元加法器之形式, 該加法器増加跨步至現行值。因此,跨步可以藉由施加不 同跨步值至加法器而加以調整。 第6圓例示在倍精度模式中之暫存器排38之回折。 於此模式中,暫存器之次組包含D〇D3,D4D7, d8dii 及2 〇15。輸入至加法器之最小值作為於倍精度模式中 之彳加器52,將會是2,相當於一之倍精度跨步。二之倍 精度跨步將需要4之輸入至加法.器β如於第6囷所示之第 一例子具有一 D0之開始暫存器,長度之4,跨步1。這將 第20頁 ---1--^----Θ----^--1T-------Α |----- .、 1 (請先間讀背*之注意事項再填寫本頁) 413766 A7 B7 中,開始暫存器是D15,長度是2 五、發明説明( 會造成DO,Dl,D2及ΕΠ夕A其‘ 夂之向量暫存器序列。因為沒有 次組邊界被越過,所以於此例子,也士 I 列丁中沒有回折。於第二例子 及跨步是2〇這導致D15 及D13之向量暫存器序列。 參考第2圖’將注意的是負載儲存控制單元^具有 5位元增加器’於其輸出及負載/儲存乘法運算係不受到 施加至向量運算之暫存器回折。這使得單負載,儲存乘法指 令,以存取為很多後續暫存器# 作回折佈置之良好運算之例子是一 FIR濾波器’其被 分成4信號值及4分接點之單元。若語意R8_R11 〇p R16-R19 代表向量運算 R8〇pRi6,R9〇pRl7,R10〇pR18 及R11 op R1 9 ’則FIR濾波運算可以被執行為: 加載8分接頭於R8-R15及8信號值至Ri6_R23 R$-R11 op R16-R19 並輪出結果至 R24-R27 R9-R12 op R16-R19 並累積結果至 R24-R27 R10-R13 op R16-R19 並累積結果至 R24-R27 RU-R14 op R16-R19 並累積結果至 R24-H27 再加載R8-R11以新分接頭 R12-R15 op R16-R19 並累積結果至 R24-R27 R13-R8 op R16-R19 並累積結果至 R24-R27(R15->R8 回折)、 R14-R9 op R16-R19 並累積結果至 R24-R27(R15->R8 回折) R15-R10 op R16-R19 並累積結果至 R24-R27(R15->R8 第21頁 本紙队反度適州屮阀旧家#;? ( ('NS ) Λ4規格(210X;;97公荩) ---1--^--^——@-------1T------^ { #先閲讀背面之注意事項再填寫本頁) A7 413766 ______B7_ 五、發明説明() 回折) 再加載R12至R15以新分接點
J 當無分接點時,再加載R16-R19以新資料 R12-R15 op R20-R23 並輸出結果於 R28-R31 R13-R8 op R20-R23 並累積結果至 R28-R31(R15->R8 回折) R14-R9 op R20-R23 並累積結果至 R28-R31(R15->R8 回折) R15-R10 op R20-R23 並累積結果至 R28-R3I(R15->R8 回折) 其他如上β 由以上應注意的是,負載係不同於多重累積之暫存器 並可以同時發生(即完成雙緩衝)。 第7Α園示意出主處理機24之協同處理機指令。主處 理機使用一在指令内之欄位76之位元組合,來指明指令 成為一協同處理機指令》在標準ARM處理器指令集内, 一協同處理機指令包含一協同處理機號碼攔78,附著至主 處理機之協同處理機使用以指明是否特定協同處理機指 令是針對它們。不同類型之協同處理機,例如DSP協同處 理機(例如由 ARM所生產之匹克羅協同處理機)或一浮點 單元協同、處理機可以被分發給不同協同處理機數,並分別 定位於單一系統内,使用相同協同處理機匯流排3 6。協同 處理機指令同時包含一為協同處理機所使用之運算碼,以 及,三個5位元攔位,分別指明目的地,及來自協同處理 ___________第 22 貫 ___ 本紙沾尺度珅州屮闽网寒枕々{<'NS)A4規格(2HT〆297公# ) ---1丨_;——^-丨@----,-I訂------線-}ΐ (誚先閲請背面之注意事項再填巧本頁) 經濟部中央摞枣局工消费合竹社印f 經濟部中央標聿局貝工消贽合作权印擘 41^66 A7 ~ ---------- B7 _ 五、發明説明( ) 機暫存器之第一運算元及第二運算元。於一些指令中,例 如一協同處理機加載或儲存,主處理機至少部份解碼協同 處理機指令,使得協同處理機及主處理機可以一起完成想 資料處理運算。主處理機可以反應於協同處理機號内之 編瑪資料類型,成為其執行之指令解碼之一部份。 第7B圖例示支援位精度及單精度運算之協同處理機 係如何解釋其所接收到之協同處理機指令。此一協同處理 機係位於兩相鄰協同處理機數並使用協同處理機數之最 高效3位元以指明,其是否為目標協同處理機。於此方式 中協同處理機數之最低效位元係多餘的,為了指明目標 協同處理機之目的並可以替代被用以指明予以使用以執 行協同處理機指令中之資料類型。於此例子中,資料類型 係相闞於不是單就是倍精度之资料大小。 可以注意的是當於倍精度模式中,暫存器數係有效地 由32降低至16。因此’將可能降低暫存器欄位大小,但 於此時,解碼哪一暫存器被使用將不能直接由協同處理機 指令内之已知位置中之内建攔位所得到,並且,將依賴協 同處卑機指令之其他部份之解碼β這將大利地複雜並可能 使協同處理之運算變慢。使用協同處理機數之最低效位元 來編碼资料類型’表示運算碼可以完全地無關於資料類 型,這同、時也簡化並加速了其解碼。 ν 第7C圖例示一只支援單一資料類型之協同處理機係 如何解釋協同處理機指令’該資料係被第7Β圖之協同處 理機所支援之資料類型次組。於此例子中,全協同處理機 第23肓 木紙讥尺度蝻川中网网家;(Μ厂((,NS ) Λ4吡格(210Χ 297公雄) ---L--^--^-------^--ix·------線一 {对先閱請背而之注意事項再填寫本頁) 經濟部中央標本局兵Τ;消t合作衫印·*.·]4 413766 Α7 ______ Β7 五、發明説明() 數是用以決定是否接收該指令。於此方式中,若一協同處 理機指令是一未被支援之資料類型,則其相當於不同協同 處理機數並將不會被接受<•主處理機24可以然後落於未 定義指令例外,其處理以模仿在未支援資料類型之運算。 第8圖例示一資料處理系統,其包含一 ARM核心8〇, 其作用為一主處理機並經由一協同處理機匯流排82與― 協同處理機84通訊,該協同處理機84同時支援單精度及 倍精度資料類型。包含協同處理機數之協同處理機指令係 由ARM核心80發出於協同處理機匯流排8〇上,當其遭 遇於指令_流中時。協同處理機84然後比較協同處理機
數與其本身數,若一匹配發生則發出一接收信號回到ARM 核心80。若未接收到收受信號,則ARM核心認出一未定 義指令例外’並稱為儲存於記憶體系統8 6中之例外處理 核心β 第9圏例示修改之第8圖之系統,其係以協同處理機 88替換協同處理機84’該協同處理機88只支援單精度運 算。於此例子中’協同處理機88認出單協同處理機數。 因此’在原始指令串流中之倍精度協同處理機指令將會被 第S圖之協同處理機84所執行,該倍精度協同處理機指 7將不被單精度協同處理機所接受Β因此,若想要執 什相同碼'’則在記憶體系統Μ内之未定義例外處理碼可 以包含一倍精度模擬常式。 可以注意的是’需要模擬倍精度指令時,將使這些指 令之執行變慢’單精度協同處理機88可以更小及較倍精 木紙乐尺度通^公赴)-~ '
{請先閱讀背面之注意事項再填寫本頁J 訂 線一 413766 A7 (___ ___B7 五、發明説明() 〜 度等效84更便宜,若雙倍位置指令是很少使用,則可得 到利益。 * | 第10圖例示在協同處理機84内之指令检鎖電路,其 支援單及倍精度指令’並具有兩相協同處理機數。於此例 子中’協同處理機指内之協同處理機數之最高效3位元 CP#[3 : 1]與被指定用於協同處理機84者相比。於此例子 中’若協同處理機84具有協同處理機數1()及n,則此比 較可以藉由匹配協同處理機數CP#[3 : ^之最高效位元與 二進制1 0 1 »若發生匹配,則一接受信號係回到ARM核心 8〇及協同處理機指令被栓鎖用於執行β 第11圖例示第9囷之單精度協同處理機88之等效電 路。於此例子中’只有單一協同處理機數將被認可及預設 為單精度運算。所完成之比較係決定是否接受或栓鎖協同 處理機指令於協同處理機數CP#[3 : 〇]之全4位元及單一 内藏協同處理機數二進制1010之間β 第12圖為一流程圖,示出第9圖實施例之未定義例 外處理常式係如何被觸發,以執行倍精度模擬碼,這係藉 由檢測(步帮90)是否造成未定義指令例外之指令是否為 具有捣同處理機數二進位1〇11之協同處理機指令D若是, 則其係被嘗試執行為倍精度指令,並可以在回到主程式流 前’被模、擬於步驟9 2。其他例外類型可以被檢測並被其他 步驟所處理,若其未被步驟90所限定時。 第13圖例示格式暫存器fPreG200之使用以儲存指 明儲存於暫存器排220之每一 32位元之暫存器中之資料 ----— .... 第25育 4 . lUf尺/^珣川屮阈㈦孓(「Ns ) Λ4处格(2l〇x 297公垃) ~ ~ (请先Μ讀背面之注意事項再填{if,本頁) 訂 經濟部中次标準局只-1消贽合竹^ήΐ,!+ 413766 經濟部中央標準局β工消费合作社印il'lf A7 B7 五、發明説明() 類型之資訊。如早先所述,每一資料槽可以個別地操作成 為用以严存32位元資料值(一資料字)之單精度暫存器,或 者,可以與另一資料槽配成對,以提供用以儲存64位元 資料值(2資料字)之倍精度暫存器。依據本發明之較佳實 施例’ FRREG暫存器200係安排以指明是否任何特定資料 槽具有單精度或倍精度資料儲存於其中。 如同於第13圓所示,於暫存器排22〇中之32資料槽 係被安排以提供16對之資料槽,若第一資料槽具有單精 度資料值儲存於其中’則於較佳實施例中,於該對中之其 他槽將會被安排只儲存單精度資料值,並將不被連結至其 他資料槽,以儲存一倍精度資料值β這確保任何特定對資 料槽係被安排以儲存兩單精度資料值,或者,一倍精度資 料值。該資訊可以被單位元之資訊所指明,該資訊係相關 於暫存器排220中之每對資料槽,因此’於較佳實施例中, FPREG暫存器200係安排以儲存16位元之資訊,以指明 儲存於暫存器排220之每對資料槽内之資料類型^可以了 解的是,暫存器FPREG200可以因此被實施為一 16位元 暫存器,或配合以FPU協同處理機26内,可以被實施為 具有16空位元資訊之32位元暫存器》 第15圓例示在暫存器排22〇内之六對資料槽,其可 以依據本發明較佳實施例被用以儲存六倍精度資料值或 者十二個單精度資料值β可以儲存於這些資料槽中之資料 例子是示於第15圖中,Dh代表一倍精度資料值之32個 最高效位元’ DL代表雙精度資料值之最低效位元,及s ---------- 第26頁 4v紙張尺A適川屮阀 1.¾ 家桮沖(C'NS ) A4iy^· ( 210X297^^7] -----— f請先閱靖背面之注意事項再1¾本頁}
^Ϊ3766 A7 B7 五、發明説明() 〜 代表單精度資料值。 .I —..----0衣----„——^11 -~ (討先聞讀背面之注意事Ji再填35本頁j 依辞:本發明之較佳實施例之FPREG暫存器200内之 相關輸入同時也被例示於第1 5圖中β依據較佳實施例, 值”1”係儲存於FPREG暫存器200中,以表示相關對資料 槽包含倍精度資料值,及值’_〇»表示至少相關一對資料槽 包含單精度資料值*或者,兩資料槽均未被啟始β因此, 若資料槽均未被啟始,若資料槽之一未被啟始及於該對中 之另一資料包含單精度資料值,或者,於該對中之資料槽 包含單精度資料值’則一邏輯"〇,·值將被儲存於FPrEG暫 存器200中之相關位元中。 如先前所述’較佳實施例之FPU協同處理機26可以 被用以處理單精度或倍精度資料值,及由主處理機24所 發出之協同處理機指令將指明是否任一特定指令為單精 度或倍精度指令(見第7B囷之及相關說明)。若一指令被_ 協同處理機所接受它將會被傳送至暫存器控制及指令發 出單元48,用以解碼並執行。若指令是一負載指令,暫存 器控制及指令發出邏輯48將指示負載儲存控制單元42由 記憶體取回指定資料,並儲存該資料於暫存器排22〇之指 定資料槽中*於此時’協同處理機將會知道所取回之資料 值係單精度或雙精度,負載儲存控制單元42將因此作反 應。因此,負載儲存控制邏輯42將傳送32位元單精度資 料值,或64位元倍精度資料值於至暫存器排輸入邏輯23〇 之路徑225上’用以儲存於暫存器排22〇 _。 除了被負载儲存控制單元42所加載至暫存器排22〇 ________________第27頁 本纸张尺度適 { ('NS ) 210Χ 297^$~5—~ -------
經濟部中央標革局Θ工消贽合作社,W A7 -------J7___ 五、發明説明() — 之資料外’資料同時也被提供至格式暫存器器 FPREGf 00 ’以致能資訊之所需位元被加至,以指示是否 每一對接收資料之資料槽是储存單精度或倍精度資料。於 較佳實施例中,該資料係被儲存於格式暫存器 FPREG2〇0 ’在資料被加載至暫存器排之前,使得資訊係 可為暫存器排輸入邏輯230所使用。 於較佳實施例中’於暫存器排22〇中資料之内部格式 疋相同於外部格式,因此,單精度資料值係被儲存為32 位元資料值’及倍精度資料值係被儲存為64位元資料值 於暫存器排22〇之中。因為暫存器排輸入邏輯230具有對 FPREG格式暫存器220存取,所以其知道是否資料正被接 收者為單或倍精度,於此一實施例中,暫存器排輸入邏輯 23 0僅安排於路徑上之接收資料,用以儲存於暫存器 排220之適當資料槽中β然而,若於其他實施例中,在暫 存器排中之内部代表是不同於外部格式,則暫存器排輸入 邏輯230將被安排以執行所需之轉換◦例如,一數字典型 地代表為l.abc...被一基值所乘,並被升至一指數冪。為 了有效起見,典型單及雙精度代表並不用一資料位元以代 表1至小數點之左邊,丨是被作為暗示。例如’用於暫存 器排200内之内部代表需要i被代表,則暫存器排輸入邏 輯230將執行所需之資料轉換。於這些實施例中,資料槽 將典型地略大於32位元,以收納由暫存^輪入邏輯 所產生之其他資料》 除了加載資料值至暫存器排220中外,負載儲存控制 ----- — ___第28 百 本縣尺度適則,1¾( (,NS ) ( 2]〇x:97^f ")-------- I— I—;-I^-I會——I — I-^1T (請先閱讀背面之注意事項再填寫本頁) 41S766 A7 B7 五、發明説明() 單元42可以加載資料至協同處理機26之一或多數系統暫 存器’例如’ 一使用者狀態及控制暫存器FPSCR2 1 0 »於 較佳實施例中’ FPSCR2 10包含使用者可存取架構位元及. 例外狀態位元,並被於較佳實施例說明之末端被提供之浮 點單元之架構說明中作詳細說明。 若暫存器控制及指令發出單元48接收一儲存指令, 來指明暫存器排220中之特定資料槽,其内容係被儲存至 記憶體*則負載儲存控制單元42係被指示,以及,所需 資料字元係由暫存器排220經由暫存器排輸出邏輯24〇, 讀出至負載儲存控制單元42。暫存器排輸出邏輯230存取 FPREG暫存器200之内容,以決定是否被讀出之資料係被 單或倍精度資料。它然後應用至適當資料轉換,以反轉由 暫存器排輸入邏輯230所應用之資料轉換,並提供資料至 負載儲存控制邏輯42於路徑235上。 依據本發明之較佳實施例,若儲存指令是倍精度指 令’則協同處理機26可以被認為是運算於第二模式,其 中指令被應用至倍精度資料值^因為倍精度資料值包含偶 數資料字元,所以任何發於運算第二模式之指令,將會典 型地指明資料槽之偶數量,其内容係被儲存至記憶體。然 而,依據本發明之較佳實施例’若資料槽之奇數被指明, 則負載儲存控制單元42係被安排以讀取FPREG暫存器 200之内容並首先儲存這些内容至記憶體1於儲存來自暫 存器排220之所指定之偶數資料槽之前。典型地,予以傳 送之資料槽係被基本位址所指明’該位址指明於暫存器排 ______ 第29百 | 紙仏尺度 1¾ 川屮闪 水朽:呤() A4^Ug- ( 210X297^^ ) " ' — --- (請先閱讀背面之注意事項再填寫本頁) -訂 nl 五、發明说明 A7 B7 經濟部中央標準局货工消赀合竹社印於 中之特定資料槽,其後由一指明予以儲存之資料槽之數量 (即資$字元數)之數字跟隨,由指定資料槽起算。 因此’例如,儲存指令給予於暫存器排220中之第_ 资料槽一基本位址’並指明33資料槽,這將使得所有W 資料槽之内容被儲存至記憶體,但,因為所指定之資料槽 數為奇數,所以這將使得FPrEG暫存器200之内容被儲 存至記憶體。 藉由此方式,一單一指令可以被使用以儲存智存器排 心内容及FPREG暫存器200之内容至記憶體,該暫存器 200指明儲存於暫存器排22〇之各種資料槽内之資料類 型。這避免了 一分離指令必須發出,以明白儲存FpREG 暫存器200之内容,因此,於儲存至記憶體或由記憶體載 出處理時’不會負面影響處理速率。 务本發明之另一實施例中,本技術可以更進一步以使 得其他系統暫存器’例如FPSCR暫存器210於需要時能 使用單一指令被儲存至記憶體。因此,假設具有32資料 槽之暫存器排220之例子,則如先前所討論,若33資料 槽係被指明於儲存指令中,則除了於暫存器22〇中之Η 資料槽之内容外,FPREG暫存器2〇〇將被儲存於記憶體 中。然而,若一超出於暫存器排中之資料槽數量不同奇數 被指明,例如35,則此可以被負載儲存控制單元所解 釋成為儲存FPSCR暫存器2〗〇之内容至^憶體之要件, 除了 FPREG暫存器200之内容及暫存器排22〇之資料槽。 協同處理機同時包含系統暫存器,例如例外暫存器|用以 尺度⑷1丨,丨·料技彳(7½ ) Λ4规格( 第30頁 29 7公犛) ----— (請先閱讀背面之注意Ϋ項再填寫本頁)
經1"部中女標枣局β工消资合作杜印Τ 413766 A7 __________B7 五、發明説明() ~〜' 指明於為協同處理機於處理指令時,所發生之例外.若一 不同奇^係被指明於一儲存指令中,例如37,則這可以被 負載儲存控制單元42所解釋為另外儲存一或多數例外暫 存器内容之需求,除了 FPSCR暫存器210,FpREG暫存器 200及暫存器排22〇之内容之外。 該技術於當啟始儲存或負載指令碼不知暫存器排内 容時特別有用,並且,暫存器排内容只暫時地暫存至記憶 體中’用以實際取回至暫存器排中。若碼知道暫存器排内 容’則其並不需要FPREG暫存器200之内容同時被儲存 於記憶體中。不知暫存器排内容之碼之典型例係脈絡交換 碼及程序呼叫輸入及離開常式。 於這些例子中,除了上述之暫存器排内容外,FPREG 暫存器200之内容可以有效地被儲存至記憶體,若有需要 其他系'統暫存器也可以被儲存。 於接收後續負載指令時,一類似處理係被使用。因 此’負載佔儲存控制單元42於接收一指明奇數資料槽之 倍精度負載指令時,會被安排以造成FPREG暫存器200 之内容被載入FPREG暫存器200中’在被指明於負載指 令中之槽數量所指明之任何系統暫存器内容之後,隨後, 一偶數資料字元被儲存於暫存器排220之指明資料槽中。 因此,考慮先前所述之例子,若指明負載指令中之資料槽 ΐ 數是33,則FPREG暫存器内容將會被加載至FPREG暫存 器200中,隨後,32資料槽之内容。類似地,若指明於負 載指令35中之資料槽數量是35,則除了上述内容外, ____________第31頁 ____ 本紙乐尺度述川屮阀K家樣今(('NS ) Λ4^格(210X 297公你) --._ — ;_ jU-丨P4---------·,玎------οι ί請先閱讀背面之注意事項再填穷本頁) 413766 A7 B7 經 濟 部 中 夾 梯 Ά -T-. 消 社 印 五、發明説明 FPSCR暫存器210之内容將會被加載至FPSCR暫存器。 最後’若指明之資料槽之數量是3 7,則除了上述内.容外, ί 任何例外暫存器之内容將會被加載至這些例外暫存器 中。當然’可以為熟習於本技藝者所了解,相關於特定奇 數之特定動作是整個為任意的,並可以依想要的加以改 變β 第14圖為依據本發明之較佳實施例,當執行儲存及 負載指令時’暫存器控制及指明發出邏輯48之流程圖β 首先’於步驟300,若干資料字元(其係相同於較佳實施例 中之資料槽之數量)係由指令讀出,配合第一暫存器號, 即指明於指令中之基本暫存器β然後,於步驟31〇中,決 疋是否指令為一倍精度指令,如先前所述者,該資訊於此 階段可為協同處理機所用,因為指令指明是否其為倍精度 或一單'精度指令。 右心令是一倍精度指令,則處理進行至步驟320,其 中決定是否被指定於指令中之字元數是奇數。假設為了此 實施例之故,除了 FPREG暫存器200外,該技術並未用 以選擇傳送各種系統暫存器則若字元數是奇數,則表示 FPREG暫存器200之内容應被傳送,因此,於步驟325中, FPREG暫存器之内容被負載儲存控制單元42所傳送。然 後,於步驟327中,字元數被減丨,及處理進行至步驟33〇。 於步驟330中,若纟元數被決定為㈣,則處理直接進行 至步驟330。 於步驟330,決定是否字元數大於零。若不是,則指 第32頁 本紙依尺政過川屮闽闽孓栉彳() AWtL格(210./297公斧 ----^---;---广k------訂------.1、 (錆先閱请背*之注意事項再填寫本莨) 413766 A7 --------- B7 五、發明説明() 令被視為完成,及處理於步驟34〇離開β然而,若字元數 大於零:則處理進行至步驟332,其中,一倍精度資料值(即 兩資料槽又内容)係被傳送至第一指定暫存器數或由該處 傳出》然後’於步驟334中’字元數被減2,於步驟336 令’暫存器數被加1。如先前所述,對於一倍精度指令, 一暫存器實際包含兩資料槽,因此,增量暫存器計數丨是 等於增量資料槽數2» 然後’程序回到步驟330,其中決定是否字元數大於 零,若是,則處理重覆·當字元數到達零時,則處理於步 驟3 4 0離開4 若於步驟310中,決定指令不是一倍精度指令,則處 理進行至步驟350’其中再次決定是否字元數大於零。若 是’則處理進行至步驟352,其中單精度資料值被傳送至 被指定於指令中之第一暫存器數或由該處傳出。然後,於 步絲354中’字元數是被減1,於步鄉336中,暫存器數 計數被加1,以便指出下一資料槽。然後,處理回到步驟 350’其中,決定是否字元數仍大於零β若是,則處理重 覆’直到字元數等於零,於此時處理於步騾360離開。 蛣濟部中决標準馬以工消费合竹社印絮 —t---^-----—-----訂 (誚先閱請背面之注意事項再填寫本頁) 上述方法提供大量之彈性,當未知暫存器排内容之執 行碼’例如脈絡交換碼或程序呼叫輸入及離開順序a於這 些例子中',作業系統不知暫存器之内容,並想要不必依據 其内容而不同地處理暫存器。上述方式允許這些碼常是被 以單儲存或負載指令寫入,該指令指明資料字元之奇數 量。若協同處理機需要使用暫存器内容資訊,則其將解釋 _______ ___第 331__ 本紙张彳,1¾ 彳:射((’NS ) Λ视格(210X29*7公痒) ~ — 經"部中次橾準局Μ工消费合作社印y A7 B7 五、發明説明() 一 於指令中之資料字元之奇數為一儲存至記憶體或由記憶 體載入f斤形指明暫存器排資料内容之格式資訊之需求。該 彈性免除了需要獨特之作業系統软體,來支援協同處理 機,該協同處理機需要暫存器内容資訊。 這技術同時免除了於個別操作中加載或儲存暫存器 内容資訊於碼内之必需性。因為,加載或儲存暫存器内容 資訊之選擇係被併入指令中,而不需記憶體存取。這降低 了瑪長度並潛在地節省時間。 一併入上述技術之浮點單元之架構說明係如下: 1.介》 VFPv 1是一被設計以實施為—協同處理機之浮點系 統(FPS)架構’被用於ARM處理機模組β這架構之實施可 以於硬趙或軟趙中併入特性或者一實施可以使用軟體以 實施功'能或提供ΙΕΕΕ754相容性。本說明書使用軟硬體組 合,試著完成完全ΙΕΕΕ754相容性。 兩協同處理機數被使用為VFPvl ; 1 〇被用為以單精度 運算元之運算’而11被用為以倍精度運算元運算。於單 及倍精度資料間之轉換係以2轉換指令完成,其操作於源 運算元及協同處理機空間中。 VFPvl之架構特性包含: ‘於具支援碼之硬體中,完全相容IEEE754。 • 32單精度暫存器’每一暫存器可定址為一源運算元或一 目的暫存器。 .16倍精度暫存器,每一暫存器可定址為一源運算元或一 第34頁 本紙沾尺度地川屮阀1¾家梏呤(rNS ) /\4吼格(2I0X297公雄) --:--^-----------訂------^ Y (請先閱讀背面之注意事項再填耗本頁) 經濟部中央榡準咼异工消贽合什杜印?-<- 4l3766 A7 _ B7._ _____ 五、發明説明() 目的暫存器。(倍精度暫存器重疊實體單犄度暫存器) •向量$式提供於浮點碼密度之大量增加,及負載及儲存
I 操作之並行性。 • 4排之8循環單精度暫存器或4排之4循環之倍精度暫 存器,以加強數位信號處理(dsp)及圖形操作。 去正規化處理選擇於IEEE754相容性(想要由浮點模擬 封裝支援)或快速清除至零能力間作選擇. •實行全管線繾乘累積以IEEE754相容結果β •用於具FFTOSIZ指令之C ’ C++,爪哇之快速浮點至整 數轉換。 實行器可以選擇以全硬體實行VFPvl或利用硬體或 支援碼之組合來實行。VFPv 1可以以全軟體被實行。 2·’專業術锊 本說明書使用以下之專業術語: 自動例外-一種例外條件,其允許被直接跳至支援 瑪,而不管相關例外致能位元之值。若有的話,例外是自 動的為一實施選擇。見段落〇, 6_例外處理 潭跳·報告給作業系統之例外,其將被支緩碼所整 個處理而不必呼叫使用者陷阱處理器或中斷使用者碼之 一般流程》 \ CDP-用於FPS“協同處理機資料處理”,CDp運算是算 術運算而不是負載或儲存操作。 木祕尺度適财關家料-- --»-------------r--' 訂------ f I ·\ (邻先閱讀背面之注意事項再填寫本頁) 經濟部中决標羋局:sc Τ;消贽合作社印欠 413766 A7 ---- -B7__ 五、發明説明() 轉換至無正負整數(Fm)-於Fm中之内容轉換至一無 正負號;32位元整數值。結果是取決於用於最後捨入之捨 入模式及在32位元無正負號整數範圍外之浮點值之處 理。若浮點輸入值為負或者對於32位元無正負號整數係 太大,則無效例外係可能的。 轉換至具正負號签數(Fm>-於Fm中之内容轉換至一 具正負號32位元整數值《結果是取決於用於最後捨入之 捨入模式及在32位元具正負號整數範圍外之浮點值之處 理。若浮點輸入值對於32位元具正負號整數係太大,則 無效例外係可能的。 轉換無正Κ號Int至單/倍(Rd)-—被解釋為32位元無 正負號整數之ARM暫存器(Rd)内容轉換為單或倍精度浮 點值。若目的精度為單,則一 INEXACT例外可能於轉換 操作中、 轉換具正頁猇Int至單/倍(Rd)-—被解釋為32位元具 正負號整數之ARM暫存器(Rd)內容轉換為單或倍精度浮 點值。若目的精度為單,則一 INEXACT例外可能於轉換 操作中。 去正规值-一代表範園(_2Emin<x<2Emin)中之一值。於 用於單及倍精度運算元之IEEE75 4格式中,一去正規值, 或去規真有一零指數及前高位元是零而是^ IEEE754-1985規格書需求去正規運算元之產生及操縱被執行以具 相同於正規之精度β 去能例外-一在FPCSR組中,具有相關例外致能位元 本紙认尺度鸿川中阀囚家標今((,NS ) Λ^ΰΓ7'210χ 297^^ } __ I ! I —> (諳先間讀背面之注意事項再填巧本頁) -訂 413766 經碎-部屮央Jf.if局s:工消赀合巧权印 Α7 Β7 五、發明説明() 之例外被稱為"去能,,。對於這些例外,IEEE754規格書定 義正確;结果予以被完成。一產生例外條件之操作可以彈跳 至支援碼,以產生IEEE754定義結果。該例外將不會報告 給例外處理者β 致能例外·一例外具有相關例外致能位元被設定為 1。於此例外發生時,可能發生一對使用者處理機發生例 外。一產生例外狀況之操作可能彈跳以支援碼,而產生 ΙΕΕΕ754定義結果。該例外將不會報告給例外處理者。 指數-一浮點數之指數通常指明整數幂次,以決定所 代表數之值。偶然中,指數被稱為具正負號或未偏壓指 數。 分數-有效數字欄,其於隱藏二進制點之右側。 清除至零模式-於此模式中,所有於範圍(_ 2Emin<x<2Emin)内之值,在捨入後被當作零處理,而不轉換 為一去正規化值。 高(Fn/Fm)-倍精度值之上32位元[63:3 2]於記憶體中 之代表。 IEEE754-1985-"IEEE標準’用於二進制浮點算術", ANSUIEEE標準754-1985。紐約"電機電子工程協會該 標準經常被稱為IEEE754標準,其定義用於浮點系統之資 料類型,'校正操作,例外類型及處理及錯誤受限。多數處 理機係被依硬體或軟硬體组合加以建構。' 無限值-一用以代表〇〇之IEEE754特定格式β用於精 度之指數為最大,有效值將為會零。 _________ 第 37貫 -- - I ^^^1 - ^^^1 ^^^1 u (請先閱讀背面之注意事項再填{?5本頁} 訂 經消部中决榡準局只工消贽合作社印f A7 B7 五、發明説明() 輪入例外-一例外狀況,其中用於—已知運算之一或 多數運严元未被硬體所支援。該運算將會彈跳至用於完成 運算之支援碼。 中間结果-於拾入前,用以儲存計數结果之内部格 式°該格式可以具有較目的格式為大之指數攔及有致棚。 低(Fn/Fm)-倍精度值之下32位元[31: 〇]於記憶體中 之代表。 M CR-”由ARM暫存器移動至協同處理機",用於此 FPS’這包含指令,該指令傳送資料或控制暫存器於一 arm 暫存器及一 FPS暫存器之間。只有資訊之32位元可以使 用單一 MCR等級指令加以傳送。 MCR-由協同處理機移動至arm暫存器",用於此 FPS’這包含指令’該指令傳送資料或控制暫存器於一 fPS 及一 ARM暫存器之間。只有資訊之32位元可以使用單一 MRC等級指令加以傳送。
NaN-不是一數字,一被編碼於浮點格式之符號輸入。 有兩種NaN,發信及非發信,或者靜止。發信NaN將造成 無效運算元例外,若被使用為—運算元的話。靜止NaN傳 遞經多數算術運算,而無發信例外,用於NaN格式具有所 有為1之指數欄’具有不是零之有效數。為了代表一發信
NaN,分數之最高效位元是零,而靜止NaN將令該位元設 定為1。 ( 保留-於一控制暫存器或指令格式中之搁位被"保留 ",若該攔位被實施器所定義或將產生未預定表結果,如 —______ _______ 第 38貫 木紙^1度適川中酬宋制((;NS ) 210X 297^^ ) ^~—- l!!1IIup! (請先閲讀背面之注意事項再填苟本頁) 訂 413766 A7 B7 五、發明説明() 果欄位内容不是零的話。這些欄位被保留於未來供算術擴 充或特定用途。所有未被使用之保留位元必須被寫成零並 讀為零。 捨入模式-IEEE754需求所有計算被執行為至一無限 精度,即,兩單精度值之乘法必須正確地計算有效值,以 兩倍於該有效值之位元數。為於目的地中代表此值,經常 需要有效值之精度捨入》IEEE754標準指明四個捨入模式 •捨入至最近值(RN),捨入至零,或截去(RZ),捨入至正 無限大(RP),及捨入至負無限大(RM) ·第一個是藉由於半 路點上捨去完成’將有效值之最低效位元變成零,使得它 為偶數。第二個有效地截去有效值右之位元,採無限捨 入’並被C’ C + +’及爪哇語言中之整數轉換所使用β後 兩種是有用於間距算術β 有效值-二進制浮點數之分量,其包含對其暗示二進 制點之左側之顯示或隱含前導位元及對其有侧之分數 襴。 支援碼-必須用以完成硬體之軟體,提供相容於 ΪΕΕΕ754標準之能力°支援碼係具有兩成份:一常式庫, 其執行於硬體外之運算,例如超越計算,及支援函數,例 如被未支援輸入所除或可能產生例外之輸入;及一組例外 處理器’其處理例外狀況,以提供ΙΕΕΕ754相符信。該支 援碼係需要以執行函數’以模擬未支援資料類型或資料代 表(例如去正規值或十進位資料類型)之適當處理。這些常 式可以被寫成以於其中間計算利用FPS,若於常式結束 7-——*'—^-___________ 第 39 頁 ^、攻相十剛W" ( TNS ) A4imT 210 X 297^^ )——' —--- II,_ — l·----Q----. — Iif------典 - * {請先閱讀背面之注$項再填寫本頁) 413766 經濟部中决#^局負工消^合竹社印^3衣 A7 B7 五、發明説明() 時,注意回復使用者之狀況。 格,-一例外狀況,Λ具有相關例外致能位元組於 FPSCR中《•使用者之陷阱處理器將被執行。 未定義-扣示一產生未定義指令陷阱之指令。見 ARM(架構參考手冊)有關ARM例如之更多資訊。 不可預測-不能被依靠之指令或控制暫存器攔位之結 果。不可預測指令或結果不代表安全孔,或中止或懸置處 理機或系統之任何部份。 未支援资料-未被硬體所處理之特定資料值,但被弹 跳至支援碼以完成。這些資料可以包含無限大,NaN,去 正規值及零。這些值可以自由選擇被部份或全面硬體支 援,或者,將需要來自支援碼之協助以完成運算。導致處 理未支援資料之例外結果將被陷住至使用者碼’若用於例 外之相關例外致能位元被設定的話β 3·暫存*擋案 3.1簡介 該架構提供32單精度及16倍精度暫存器,所有均可 以個別被定址於全定義之5位元暫存器指數内’成為源或 目的運算元。 32單精度暫存器係被重疊於16倍精度暫存器上, 即’對D5之倍精度資料窝入將會改窝si〇及S11之内容。 這是編譯譯器或組合語言規劃者之工作,以知熟於暫存器 用作為單精度資料儲存及倍精度資料儲存於重疊實施之 一半間之暫存器衝突。其中,並沒有硬體被用以確保 ____________第40耳 本紙^度過川屮_:!家制* ( 270^297^7 (請先閱讀背面之注意事項再填寫本頁) 訂 413766 A7 ^----- B7 五'發明説明(-- m被限制# _精度,若此被違反,則結果是不可預 測的。
I ---------II {請先閲請背面之注意事唄再填寫本頁) VFPvl提供以純量模式對這暫存器之存取,於該模式 中,一’ 一或二運算元暫存器係被用以產生一結果,該結 果係被窝入至一目的暫存器,或者以向量模式,其中被指 定又運算元係為一群暫存器。VFPvl支援向量運算,用以 至於單精度運算元之單指令中之八元件及用於倍精度之4 單元· 表KLEN位元編碼 LFN 向量長編m 000 純量 001 向量長2 010 向量長3 011 向量長4 100 向量長5 101 向量長6 110 向量長7 111 向量長8 向量模式係藉由寫入非零值至LEN欄而加以致能。 若LEN欄含〇,則FPS運算於純量模式,及暫存器欄於平 暫存器模型中是被解釋為定址32個別單精度暫存器或16 個倍精度暫存器。若LEN攔是非零,則FPS運算於向量 模式,並且,暫存器欄是定址暫存器之向量《見表1之用 於LEN欄之編碼° 一 _ —第41貰 本.紙讯尺度钟川中闽闷家栉呤((’NS ) Λ4規格(2〗0x297公錄) 413766 A7 B7 經濟部中央榡本局兵工消贽合作社印裂 i、發明说明( -種用以混合純量及向量運算’而不改 機構可由目的暫存器之規格加以取得1目的暫存 暫存器之第-排(S〇-S7 < D〇_D3)並於向量模式^量 運算可以被指明。其他資訊見段落〇β 3·2單精度暫存》用途 若於FPSCR中之LEN欄是Q,則㈣精度暫存器係 Z編號為SG至S31。任-暫存器均可以被用為—源或目 的暫存器。 31 31 31 31 so S8 S16 S24 S1 S9 S17 S25 S2 S10 S18 S26 S3 S11 S19 S27 S4 S12 S20 S28 S5 S 13 S21 S29 S6 S14 S22 S30 S7 S15 S23 S3 1 實例1 :單精度暫存器圖 單精度(協同處理機1 〇)暫存器囷可以被如實例1所 示 〇 若於FPSCR中之LEN欄是大於〇,部暫存器樓案作 動為如實例2所示之4排之8循環暫存器。第1排之向量 暫存器V0-V7重疊純量暫存器S0-S7並係依據選擇用於每 一運算元之暫存器’而定址為純量或向量。其他資料見段 本紙张尺度谇川屮闲抝家社呤(rNS ) Λ4规格(210X 297公浼) I — ----:II訂------Ο (請先閲讀背面之注意事項再填寫本頁) 413766 A7 B7 五、發明説明() 落0,3.4暫存器用途。
實例2:循環單精度暫存器 例如,若於FPSCR中之LEN被設定為3,參考向量 V10將使得暫存器S10, Sll,S12及S13涉及向量運算。 同樣地,V22將涉及於運算中之S22,S23,S16及S17。 當暫存器檔案是以向量模式存取時,在V7後之暫存器順 序是VO;同樣地,V8跟隨V15,V16跟隨V23及V24跟 隨 V3、。 3.3倍犄度暫存器用途 若於FPSCR中之LEN欄是0,則可用16個倍精度純 量暫存器。 I — .——^ I-^ I-Φ-----1— :玎------5 (锖先閲讀背面之注意事項再填寫本頁) 經濟部中央標準扃负工消贽合作打印¥ 63 0 63 0 DO D8 D1 D9 D2 D10 D3 Dll D4 D12 D5 D13
第43X A7 ---- B7 五、發明説明() D6 D14 D7 D15 實例3:倍精度暫存器圖 任一暫存器均可以使用為一源或目的暫存器。暫存器 阖可以被續成如實例3 β 若於FPSCR中之LEN欄是大於0,則於4排之4循 環暫存器之四個純量暫存器及16個向量暫存器可以使 用,如,實例4所示。第一排向量暫存器V0-V3重疊純量 暫存器DO-D3。暫存器是被定址為純量或依據選定給每一 運算无之暫存器加以定址。其他資料見段落0之3.4暫存 器用途。 . - nn - J I — i ·Ι n -- I -·— i^J-_j^ n (諳先閲讀背而之注意事項再填寫本f) * ★ DO/VO D4/V4 D8/V8 D12/V12 m/vi Kte/vs D9/V9 D13/V13 D2/V2 1 D6/V6 D10/V10 D14/V14 D3/V3-1 D7/V7 DU/V11 D15/V15 * 訂 經淖部中泱標準局工消费告作社印擎 實例4 _·循環倍精度暫存器 有關於段落0中之單精度例子,倍精度暫存器係循環 於四排之内。 3.4暫存器用途 於純量及向量間之運算係被支援:(〇ρ2可以是為浮 點協同處理機所支援之兩運算元運算之任一;QP3可以三 個運算元運算之任一) 以下之說明,”第—排《之暫存器檔案被定義為用於單 精度運算之暫存器S0-S7,及用於倍精度運算之d〇-D3.。 ___________ 第 44 貫 度通川屮(HNS ) Λ4現格(2]〇χ297公# ) 413766 A7 —__;_gL___ 玉、發明説明()
* ScalarD = OP2 ScalarA or ScalarD = ScalarA OP3 ScalarB or ScalarD = ScalarA * ScalarB + ScalarD
I
-VectorD = OP2 ScalarA or VectorD = ScalarA OP3 VectorB or VectorD = ScalarA * VectorB + VectorD
• VectorD = OP2 VectorA or VectorD = VectorA OP3 VectorB or VectorD = VectorA * VectorB + VectorD 3.4.1純量運算 兩種情況將造成FPS以純量運算: 1. 於FPSCR中之LEN攔是零。目的及源暫存器對於 單精度運算可以是純量暫存器0至31之任一個,對於倍 精度運算可以是0至15。該運算將只會執行明確指定於指 令中之暫存器β 2. 於暫存器檔案中之第一排内之目的暫存器•源純量 可以是、其他暫存器之任一。這模式允許純量及向量運算之 混合而不必改變於FPSCR中之LEN欄。 3·4.2涉及一纯量及具向量目的之向量*之運算 經濟部中央榡次局兵工消资合竹社印 (請先閲請背面之注意事項再填^本頁} 為操作於此模式中,於FPSCR中之LEN欄是大於 零’及目的暫存器不是暫存器檔案中之第一排。純量源暫 存器可以是於暫存器檔案中之第一排中之任一暫存器,而 剩餘任一暫存器可以被用於向量B。注意若源純量暫存器 是向量B之一成份或若向量D重疊向量B少於LEN元件, 即,向量D及向量B必須相同向量或於所有成份均完成不 同’則該行為不可預測。見於段落〇之總結表β 3_4.3只涉及命量资科之運算 第45頁 - ...I — - - I, ___ _——- . 本紙张尺度珣川屮1¾丨標中()八4现格(2Ι0Χ 29*7公潴) 413766 ..-•濟部屮央榡準^β Η消於合作 A 7 ___ B7 五、發明説明() 一 為於此模式運算,於FPSCR中之LEN欄是大於零及 目的向声暫存器不是暫存器標案之第一排•向量a之個別 i 元件係被組合以於向量B中之相關元件並被窝至向量D。 不在暫存器檔案之第一排中之任一暫存器係可為向量A 所使用’同時所有向量係可為向量B所用。於第二例中, 若源向量或目的向量重蜃少於LEN元件,則行為是不可預 測的《它們必須相同或所有成份均不同。見段落〇之總結 表。 注意’對於運算之FMAC族’目的暫存器或向量一直 是累積暫存器或向量。 3.4.4運算蟪結表 以下之表代表對於單或倍精度2及3運算元指令之暫 存器用途β "任一"表示用於指定運算元之精度中之所有暫 存器, 表2:單精度3運算元暫存器用途
LEN 攔 暫存器 目的 第一源 暫存器 第二源 暫存器 運算類型 0 任一 任一 任一 S = SopS 或 S = S*S + s 非0 0-7 任一 任一 S = SopS 或 S = S*S + S 非0 8-31 0-7 任一 V = SopV 或 V = S*V + V 非0 8-31 8-31 任一 V = VopV 或 V = V*V + V - -___—---y 站頁 v.乐’。良祕;;4 '丨,1¾家㈣(rNS ) 公 (讀先閱讀背面之注意事項再填莴本頁)
413766 a? B7五、發明説明()
表3:單精度2運算元暫存器用途 LEN欄 暫存器目的 源暫存器 運算類型 0 任一 任一 S = op S 非〇 0-7 任一 S = op S 非0 8-3 1 0-7 V = op S 非0 8-31 8-31 V = op V
表4:倍精度3運算元暫存器用途 LEN欄 暫存器 目的 第一源 暫存器 第二源 暫存器 運算類型 0 任一 任一 任一 S = SopS 或 S = S*S + S 非0 0-3 任一 任一 S = SopS 或 S = S*S + S 非0 4-15 0-3 任一 V = SopV 或 V = S*V + V 非0 4-15 4-15 任一 V = VopV 或 V = V*V + V 經消部中央榡年局β-τ消贽合外社印1,1个
表5:倍精度2運算元暫存器用途 LEN欄 暫存器目的 源暫存器 運算類型 0 任一 任一 S = op S 非0 0-3 任一 S = op S 非〇、 4-15 0-3 V = op S 非0 4-15 4-15 V = op V -----Μ--,--Φ----^--訂------線fj (請先間請背面之注意事項再填ict本頁) 4.指令集 FPS指令可以被分成三類型: 第47肓 本紙ίΑ尺度適州十闽H3家掠彳()八4圯格(2丨0X297公焯) 413766 A7 B7 五、發明説明() " "一 — • MCR及MRC-於arm及FPS間之傳送操作 • LDC及STC-於FPS及記憶體間之負載及儲存操作 .CDP-資料處理操作 4.1指令共現性 FPS架構規格之内容係共現於兩層次: 管線功能單元及具CDP函數之並聯負載/儲存操作。 重大功效增益是藉由支援負載及儲存運算加以完成,諸操 作並沒有暫存器相依性於現行處理運算,以並聯執行這些 運算》 4·2指令串事化 FPS指明單一指令,使得fps忙綠等待ARM,直到 所有現行執行指令完成及每一指令之例外狀沉為已知β若 例外暫停’則串聯化指令將被中止及例外處理將開始於 ARM。’於FPS中之串聯化指令是: • FMOVX-讀取或窝入至浮點系統暫存器。 任何之對浮點系統暫存器之讀取或寫入將被安裝,直 現行指令完成。一至系統ID暫存器(FPSID)之FMOVX將 觸發由前一浮點指令所造成之例外。執行一讀取/修正/寫 入(使用FMOVX)於使用者狀態及控制暫存器(FPSCR)可以 被用以清除例外狀態位元(jrpSCR[4 : 0])。 4.3涉及整數资料之轉換 i· 於浮點及整數資料間之轉換是於FPS中之兩步處 理,FPS係由一涉及整數資料之資料傳送指令及一用以執 行轉換之CDP指令作成。若有算術運算想要於整數格式時 _____ '____巧48 頁 ____ 本紙ifUUi@ ;丨H'㈣雜彳((’NS ) Λ视格(210X2“# ) 一 ' -------—n I (請先閱讀背面之注意事项再填寫本頁) 訂 經湞部中央標^局爲工消汾合作杜印於 413766 Α7 Β7 趙滴部中决標涞扃兵工消扑合作社印纪 五、發明説明( 作FPS #器中之整數資料,則結果為不可預測及運算應 被避免。 ) 4.3.1於FPS暫存器中之整數资料轉換至浮胜资料 整數資料可以由ARM暫存器’使用一 MCR FM〇Vs 指令被載入浮點單精度暫存器。於Fps暫存器中之整數資 料可以然後被轉換成為單或倍精度浮點值,具有整數至浮 點族之運算並被寫入至一目的Fps暫存器^若整數值不需 要的話,目的暫存器可以是源暫存器。整數可以是具正負 號或未具正負號32位元量。 4.3.2於FPS暫存器中之浮贴资料轉换至螯數资料 於FPS單或倍精度暫存器中之值可以被轉換成為具 正負號或未具正負號32位元整數格式,具有浮點至整數 族指令。所得整數被放入目的單精度暫存器中β整數資料 可以被_儲存至一使用MRC FMOVS指令之ARM暫存器。 4.4暫存》轆案定垃 運算於單精度空間(S = 〇)之指令將使用可用於運算元 存取之指令棚之5位元。上4位元係被包含於被標為Fn, Fm或Fd之運算元欄中,該位址之最低效位元分別是n, Μ或D 〇 運算於倍精度空間(S = l)之指令將使用運算元位址之 上4位元'。這4位元係被包含於Fn,Fm或Fd欄中。當相 關運算欄包含一運算元位址時,N,Μ及D位元必須包含 0 ° 4.SMCR(由ARM暫存器移動至锒同處理機> _ 第49頁 則,卜) Λ—:丨现格(210X297公# ) ~ ---:---^^— (請先閲請背而之注意事項再填寫本頁) 訂 A7 B7 413766 五、發明説明() MCR運算涉及傳送或者於ARM暫存器中資料之為 FPS所$用《這包含由一 ARM暫存器以單精度格式移動
I 資料或者由一對arm暫存器以倍精度格式移動資料至一 FPS暫存器,由一 arm暫存器加載一具正負號或未具正 負號之整數值至單精度FPS暫存器,及加載一控制暫存器 以一 ARM暫存器之内容。 對於一 MCR指令之格式係被示於實例5。 11 28 27 ______
實例5.MCR指令格式 位元欄 一 —丨 * 、 定義 運算碼 3位元運算碼(見表7) Rd —— ARM源暫存器編碼 S 運算元大小。 ^^ 〇·單精度運算元 倍精度運算元 N 匕---— 單精度運算: ~^ 目的暫存器最低效位元 倍精度運算: i 必須被設定至〇或運算為未定義 系統暫存器移動 保留 --—_-- 本紙崎i«川十_:制,(T^T^i·
第50T (210X297公筇) A7 B7 短濟部中—、Λ"'1ν-局工消贽合竹社 413766 五、發明説明( 單精度運算: 目的暫存器位址上4位元 倍精度運算: 目的暫存器位址 系統暫存器移動: 0000-FPID(協同處理機編號) 〇〇〇l-FPSCR(使用者狀態控制暫存器) 0100-FPREG(暫存器檔案内容暫存器) 其他暫存器編碼是被保留並且其他實施中可 以不同。 R 保留位元 表7 : MCR運算元襴定義 運算碼欄 名稱 運算 000 FMOVS Fn=Rd(32位元,協同處理機1〇、 000 FMOVLD 低(Fn)=Rd(倍精度低32位元,協 同處理機11) 001 FMOVHD 高(Fn) = Rd(倍精度高32位元,協 同處理機11) 010-110 保留 111 FMOVX 系统Reg = Rd(協同處理機10空間) 注意:只有32位元資料運算被FMOV[S ’ HD,LD] 指令所支援*只有於暫存器或單精度暫存器中之資 料被FMOVS運算所移動。為由2ARM暫存器傳送倍精度 運算元,FMOVLD及FMOVHD指令將分別移動下半及上 第51頁 __ ϋ尺度rNS ) A4#m ( 210X 297/^^ ) (請先閲讀背面之注意事項再填寫本肓)
A7 ___B7五、發明説明() 半- 4.6MRC(由捣同處理移動至ARM暫存器/比較浮動 暫存器) MRC運算涉及於FPS暫存器中之資料傳送至一 ARM 暫存器。這包含移動單精度值或浮點值轉換至一整數之結 果至一 ARM暫存器或一倍精度FPS暫存器至兩ARM暫存 器,並修正CPSR之狀態以先前浮點比較運算之結果。 MRC指令之格式係示於實例6 » 21 20 19 16 M nil a ί < 《· · 2S 27 24 23
COND 運算碼
Rd 〇 t S N R Μ 保ί
m - I ί 丨 I-I ---1 - - - I (請先閲讀背面之注意事!?再班'-^表頁) 實例6 : MRC指令格式 位元欄 定義 運算碼 3位元運算碼(見表9) Rd ARM目的暫存器編碼 S 運算元大小》 〇-單精度運算元 1-倍精度運算元 N 單精度運算: 目的暫存器最低效位元 倍精度運算: 必須被設定至〇或運算為未定義 系統暫存器移動 — 保留 第52頁 小紙ft尺度_]中闽丨rNS ) λ規格(2丨oo7公始 -訂- 413766
7 B 五、發明説明() Μ 保留 Fn 單精度運算: 目的暫存器位址上4位元 倍精度運算: 目的暫存器位址 系統暫存器移動: 0000-FPID(協同處理機編號) 00 01-FPSCR(使用者狀態控制暫存器) 0100-FPREG(暫存器檔案内容暫存器) 其他暫存器編碼是被保留並且其他實施中 可以不同。 F m 保留 R 保留 *對於FMOVX FPSCR指令,若Rd欄包含R15(llll), (諳先閱讀背面之注意事項再棋寫本頁) CP SR之上4位元將以所得狀態碼更新。 表9.MRC運算碼欄定義 運算碼欄 名稱 運算 000 FMOVS Rd = Fn(32位元,協同處理機10) 000 FMOVLD Rd = Dn之低(Fn)下32位元被傳送 (倍精度低32位元,協同處理機1 1) 001 FMOVHD Rd = Dn之高(Fn)上32位元被傳送 (倍精度高32位元,協同處理機11) 010-110 保留 111 FMOVX Rd=系統Reg 注意:見對於MCR FMOV指令之注意 笫53頁 本紙张尺度诚川中闽同家枕;?(('奶)/\4现格(210>< 297公漦) 413766 -¾¾-部中"#涞局貝η消贽合竹·ΐιήΙν A7 ___B7_ 五、發明説明() 4.7 LDC/STC(負載/餚存FPS暫存器) ( LDC及STC運算傳送資料於FPS及記憶體之間。浮
I 點資料可以被傳送於單資料傳送或多資料傳送之精度,以 更新ARM位址暫存器或保留未被影響《滿下降疊及空下 降疊結構均被支援,以及,對於移動多重操作中之資料結 構之多重運算元存取也被支援。見表11為用於LDC及STC 之各種選擇說明》 LDC及STC指令之格式被示於實例7- 31_28 27 23 24 23 32 21 20 (9_16 li 12 \\_87_0 COND 11 〇 I p|uId|w|l|~Fd l 〇 1 s 1 偏置/傳送量 (諳先閲讀背面之注意事項再填寫本頁)
實例7 : LDC/STC指令格式 表10: LDC/STC位元欄定義 位元櫚 定義 Ρ 前/後索引(0 =後,1 =前) U 上/下位元(0=下,1 =上) D 單精度運算:源/目的暫存器最低效位元 倍精度運算:必須被設定為0 W 寫回位元(0=無窝回,1 =寫回) L 方向位元(0 =儲存,1=加載) Rn ARM基暫存器編碼 Fd 、 單精度運算:源/目的暫存器位址上4位元 倍精度運算:源/目的暫存器位址 S 運算元大小 〇-單精度運算元 1-倍精度運算元 —..__ 第 木纸佑尺度讳州巾w 1-\!孓栉呤{ ( NS ) ( 210 x 297/^^7 ^13766 A7 B7 五、發明説明( 偏置/傳 未具正負號8位 元偏置或單精度 暫存 器 數 送數 量(倍精度暫存 器之計數兩倍) , 以 傳 送 1 FLDM(IA/DB)及 FSTM(IA/DB)。 於一 傳 送 中字元最大數是 16,允許16單 精度 值 或 8倍精度值。 經".部中少-^十局穷工消合竹"'印公 4.7.1加載及餚存操作之一般要ft 加載及儲存多重暫存器將經由暫存器檔案以線性完 成’而不必循環由向量運算所使用之4或8暫存器邊界。 嘗試以加載最後暫存器檔案之末端是不可預測。 若用於一倍加載或儲存多重之偏置包含一奇數暫存 器計數17或更少,則實施可以寫入另一 32位元資料項或 讀取另一 32位元資料項,但也可不必如此》這另外之資 料項可以用以指明當其被加載或儲存之暫存器之内容。這 是有用.於暫存器檔案格式於精度上是不同於IEEE754格 式者’及每—暫存器具有類型資訊,其係需要以於記憶體 才曰明方偏置是奇數及數量是大於單精度暫存器之數量, 貝J这可以被用以啟始暫存器及所有系统暫存器之上下文 開關。 一11 及儲存定址模式選擇 偏置/傳
FLDM<cond><S/D>Rn,‘暫存器 列〉 FSTM<cond><S/D>Rn , <暫存器 第55頁 ) A4ML格(210x -----^-----—I (¾先閱請背面之注意事項再填寫本頁3 -訂
413766 A7 —_— B7 五、發明説明( 列> 負載/儲今多重暫存器由Rn中之開始位址並不修改Rne暫存器之數 量對於單精度可以是1至16,對於倍精度可以是1至8。偏置爛含 32位元傳送量D該模式可以用以加載一傳送矩陣,用以圖形操作及 一點用以轉換。 例如: FLDMEQSrl2,{f8-fll};由於rl2中之位址加載4單精度至4浮點 暫存器s8,s9,slO,及rI2未被改變 FSTMEQD γ4 * {f〇}:由dO儲存一倍精度至於r4中之位址,r4 ____ 未被改變
My 1傳送:負載/儲存一暫存器以後索引或尺11窝回 傳送暫存器數量 FLDM<cond>IA<S/D>Rrd,〈暫存 器列> . FSTM<cond>IA<S/D>Rn!,〈暫存 器列>
負載/儲存多重暫存器由Rn中之開始位址並寫回下一位址於最後傳 送至Rn之後。偏置欄是32位元傳送量*回寫至Rn為偏置*4。於 一負載多重中之傳送之字元之最大量為16«U位元必須被設定為1。 這是用以儲存一空下降疊或由一滿下降疊,或儲存一轉換點及增量 至下一點,及用以於一過濾操作中加載並儲存多重資料。 例如: FLDMEQIASrl3!,{fl2-fl5};由於ri3中之位址加載4單精度至 浮點暫存器sl2,sl3,sl4,及sl5, ___jg向下一資料之位址來更新r13 4 以 (对先閲讀背面之注意事項再填寫本頁} 第56頁 ('阽)/\4規格(210-,297公对) I - - I - II ^^1 In - _ --' : >^^1 1^1 - ^^1 m m HI 1 *n ^I I - - l^i - i In * I - I - - n^i A7 413766 ____B7 五、發明説明() 類型2傳送:加載/儲存一暫存器以前索引或Rn無窝回 1 0 偏置 3 FLD<cond><S/D>[Rn * #+/-偏 具偏置之 置],Fd 加載/儲存 FST<cond><S/D>[Rn ,#+/-偏 置],Fd 加載/儲存單暫存器,以於Rn中之預增量並無寫回。偏置值是偏置 *4,並由Rn被加(U=l)或減(U=0)以產生該位址。這對於運算元存取 至一結構是有用的,及是典型地用以存取浮點資料於記憶體之方法 例子: FSTEQD f4 ’ [r8,#+8];由於r8中之位址儲存一倍精度至d4,偏置 32(8*4)位元组。該r8保持不變》 — I.— If-I^~ — AW —— (詞先閱讀背面之注意事項再填寫本頁) 類型3傳送:加載/儲存多重暫存器以前索引及窝回 1 傳送暫存器量 FLDM<conci>DB<S/D>Rn!,<暫 具預減量 存器列> 之加載/儲 FSTm<cond>DB<S/D>Rn!,<暫存 存多重 器列>
•1T 加載/储存多重暫存器,以於Rn气之預增量並窝回新目標位址至 Rn。偏置值欄包含32位无傳送之數量。回窝值是偏置*4,並由Rn 被減去。這模式是用於儲存一全下降疊或由一空下降疊加載 例子: FSTMEQDBS r9!,[f27-f29];由 s27,s28 及 s29 辦存 3 單精度至 d4 至一全下降昼,以包含於r9中之最後輸入 位址。該r9是被更新至最新輸入點。 ____第57頁 、紙乐尺度適川中阀1¾¾.:摞屮(「NS )八4现格(210X297公浼) 也766 --—___1'發明説明( A7 B7 4.7.2LDC/STC運算蟪結 表12列出可以用於LDC/STC運算碼之P.W及u夕 丨 允許組合及用於每一有效運算之偏置攔上之函數》 表12.LDC/STC運算總結 Ρ W U 偏置攔 運算 0 0 0 未定義 0 0 1 暫存器計數 FLDM/FSTM 0 1 0 未定義 0 1 1 暫存器計數 FLDMIA/FSTMIA 1 0 0 偏置 FLD/FST 1 0 1 偏置 FLD/FST 1 1 0 暫存器計數 FLDMDB/FSTMDB 1 1 1 未定義
II、^-I丨-IΦ! ί請先閱讀背面之注意事項再填寫本頁J .訂 經濟部屮央標準局Μ工消贽合作社印安 4.8CDP(1ft同處理資料處理) CDP指令包含所有資料處理運算,其涉及來自浮點 案之運算元並產生一將被窝回至暫存器檔案之結果。有 的是一 FMAC(乘法累積鏈)運算,—運算執行於兩運算 上之乘法並加至一第三運算元。該運算不同於熔斷式乘 累積運算在於一 IEEE捨入運算係在加入第三運算元前做 產生β這允許爪哇碼,可用FMAC運算以加速乘法累積運 算於個別乘法上,然後加法運算上。 於CDP群中之兩指令是有用於一 FPS暫存器中 檔 關 元 法 被 之浮 4·紙張dii〕川’卩㈣(γνΓΓμΙΪ^" 第58頁 (2U)'X297公筇 413766 A7 B7 五、發明説明() 點值之轉換成為一整數值。FFTOUI[S/D]執行單或倍精度 之内容轉换至於一 FPS暫存器中之未具正負號之整數’使
I (請先閱讀背面之注意事項再填寫本頁) 用於FPSCR中之現行捨入式e FFTSCR[S/D]執行轉換至一 具正負號整數。FFTOUIZ[S/D]及FFTOSIZ[S/D]執行相同 函數,但優先於用於轉换之FPSCR捨入模式並中斷任何 分數位元》FFTOSIZ[S/D]之功能是為C,C + +及爪哇所需, 於浮點轉換至整數時。FFTOSIZ[S/D]指令提供該能力而不 需為了轉換而調整於FPSCR中之捨入模式位元至RZ,降 低了轉換之週期計數至FFTOSIZ[S/D]運算,節省4至6 週期。 比較運算是使用CDP CMP指令加以執行,CDP CMP 指令後有一 MRC FMOVX FPSCR指令以加載ARM CPSR 旗標位元以所得FPS旗標位元(FPSCR[31 : 28])。比較運 算是被·提供以或沒有用於無效例外之電位,若比較運算元 之一是NaN的話,同時,FCMP及FCMPO將發出例外。 FCMPO及FCMPEO比較於Fm欄中之運算元與0並因此設 定FPS旗標。ARM旗標,N,Z,C及V被定義如下,在 FMOVX FPSCR運算之後。 經消部中夾標年約貝Η消合什"印^r N 低於 Z 等於 C '大於等於或未排列 V 未排列 CDP指令之格式是示於實例8。 第59頁 本紙张尺度垧用屮闷( ΓΝΚ ) Λ4現格ί 210X 297公銥) 413766 A7 B7 、發明説明(
— I I 28 27 ^ 23 22 2f 20 0 p|d 〇p' 運算碼p] —j 實例8.CDP指令格式 t2
Ί Fn “ 10 I ΤΓίΓρ—^算碼[2:1] — ~i“[〇; _J 經濟部中泱枒準局只工消许合作社印鉍 表13 • CDP位元搁定義 位元攔 定義 運算碼 4位元FPS運算碼(見表14) D 單精度運算:目的暫存器最低效位元 倍精度運算:必須被設定為0 Fn 單精度運算:源A暫存器上4位元與擴充運算 碼最高效4位元作或閘運算 倍精度運算:源A暫存器位址與擴充運算碼最 高效4位元作或閘運算 Fd 單精度運算:目的暫存器上4位元 倍精度運算:目的暫存器位址 S 運算元大小: 0- 單精度運算元 1- 倍精度運算元 N 單精度運算:源A暫存器lsb,擴充運算碼lsb 倍精度運算:必須被設定為〇,擴允運算碼Isb Μ 單精度運算··源B暫存器lsb 倍精度運算:必須被設定至〇 Fm 單精度運算:源B暫存器位址上4位元 倍精度運算:源B暫存器位址 第60頁 --1--.----^^衣-- U-I1先閱讀背面之注意事項再填S5本頁) -訂 ‘张尺度谇用1卜闷 l?i^i?Tc-NS ( 210X 297^^ 經濟部中央標本局兵工消贽合作社印^ 413766 A7 ____B7 五、發明説明() 4.8.1運算瑪 表14列出用於CDP指令之主要運算碼。所有簡字具 j 有形式[運算][COND][S/D] 表14.CDP運算碼規格 運算碼棚 運算名稱 運算 0000 FMAC Fd = Fn*Fm + Fd 0001 FNMAC Fd = -(Fn*Fm + Fd) 0010 FMSC Fd=Fn*Fm-Fd 0011 FNMSC Fd = -(Fn*Fm-Fd) 0100 FMUL Fd=Fn*Fm 0101 FNMUL Fd = -(Fn*Fm) 01 10 FSUB Fd = Fn-Fm 0111 FNSUB Fd = -(Fn-Fm) 1000 FADD Fd = F n + Fm 1001-1011 保留 1100 FDIV Fd = Fn/Fm 1101 FRDIV Fd = Fm/Fn 1110 FRMD Fd = Fn%Fm(Fd=於 Fn/Fm 後剩下之分數) 1111 擴充 使用 Fn暫存器攔以指明 用於2.運算元運算之運算 (見表15) ___第61肓 木紙乐尺度適州t阀丨.¾家標9( (’NS ) Λ4規格(210X297公筇) ——.——,_ — ^-i·—I (請先閱讀背而之注意事項再坑寫本頁) 訂 广γ· 經濟部十决標準局Μ-τ消贽合作社印纪 413766 A7 ___B7 五、發明説明() 4.8·2擴充運算 表15列出使用於運算碼攔中之擴充值可用之擴充運 算β所有指令具有形式[運算][C〇ND][S/D],具有_聯及 F L S C B指令之例外。編碼用擴充運算之指令係以相同方式 形成,為至用於Fn運算元之暫存器檔案之索引,即{Fn[3 : 0],N} » 表15.CDP擴充運算
Fn/N 名稱 運算 00000 FCPY Fd = Fm 00001 FABS Fd = abs(Fm) 00010 FNEG Fd--(Fm) 0001 1 FSQRT Fd = sqrt(Fm) 00100- 保留 00111 01000 FCMP* 旗標· = F d ^^ F in 01001 FCMPE* 旗標:=Fd —— Fm具有例外鉬主 01010 FCMP0* 旗標· = F d ^ 〇 01011 FCMPE0* 旗標:=Fd — —〇具有例外鉬止 01100- 保留 01 110 01111 FCVTD Fd(倍暫存器編碼)= Fm(單暫存器 <cond>S * 編碼)轉換信號至倍精度(協同處 理機10) ________第62頁 木紙乐尺度通川屮闷1¾本枕中{T-NS ) f 210x1^7^^ ) —I,~丨 {請先閲請背面之注意事項再填寫本頁j 訂 r 413766 A7 B7 五、發明説明() 01111 J FCVTS <cond>D* Fd(單暫存器編碼)= ]Fm(倍暫存器 編碼)轉換倍至單精度(協同處理 機11) 10000 FUITO* Fd =轉換未具正負Int至單/倍(Fm) 1 0001 FSITO* Fd =轉換具正負Int至單/倍(Fm) 10010- 10111 保留 11000 FFTOUI* Fd =轉換至未具正負整數(Fin){現 行 RMODE} 11001 FFTOUIZ* Fd=轉換至具正負整數(Fin){RZ模 式} 11010 FFTOSI* Fd =轉換至具正負整數(Fm){現行 RMODE} 11011 FFTOSIZ* Fd =轉換至具正負整數(Fm){RZ模 式} 11100- 1111 保留 ----1—;—0^.------訂------Γ1 (請先閲讀背面之注意事項再填寫本頁) 經濟部中央標準局只工消货合竹社印¥ *非向量化運算。LEN襴被忽略並且一純量運算是被 執行於指定暫存器上。 5.系统暫存器 5.1系统編tt暫存器(FPSID) ( FPSID包含FPS架構及實行定義識別值。該字元可以 被用以決定模型,特性組及FpS版及遮罩组號。FPSID是 一唯讀並寫入FPSID係被忽略。見用於FPSID暫存器佈局 第63頁 木紙張尺度地h中阀1¾家標々((、NS ) Λ4规格(2丨公雄) 五'發明説明( A7 B7 實例9 JI ' 增量器 〜 10 架構版 13 4 部件號 3 « 版本 經湞部中夾蠔隼历貝工消贽合作社印褽 一木 實例9.FPSID暫存器編碼 5·2使用者狀態及控制暫存器(FpScR) FPSCR暫存器包含使用者可存取架構位元及例外狀 態位元。架構選擇包含例外致能位元,捨入控制,向量跨 步及長度’處理去正規化運算元及結果,及使用除錯模 式。這暫存器是用於使用者及作業系統碼,以架構FPS及 質問完成操作之狀態》其必須被儲存並再回復最近比較指 令’並可以使用一 FPSCR讀取加以存取。FPSCR係被示 於實例10。 31 30 29 打 26 25 24 22 21 20 Ϊ9 13 ί6 15 U 13 t2 11 t〇 9 8 7 6 5 4 3 2 ί Q Μ Ϊ C V Vj R A |FZ RMOOB 跨步 A LEH 保留 〇CE U” OF E 0£E 咖 | 保留 IXC 〇FC 3FC 3ZC 實例10.使用者狀態及控制暫存器(FPSCR) S.2.1比較狀HI及處理控制位元組 位元31至28包含最近比較運算結果,以及,幾個控 制位元,有用於指明特定環境中之FPS之算術反應。比較 狀態及處理控制位元組之格式是示於實例11。 31 30 29 28 27 26 25 24
1XE — 1、-I — Ml.—- {請先閲請背面之注意事項再填寫本頁) 订 保留 !|保留
3ZC Γ Γ fc | ιλ | [TZ] 實例n.FPSCR比較狀態及處理控制位元組 ϋ尺度適ΪΙΪ十丨勾网家找冷(rNS ) Λ‘!π格(210X 297公雄) 413766
五 發明説明( 戈存器位元 名稱 --一 ·,『< ^ w ,〜_—--- 功能 ---- 11 Ν 比較結果是低於 _ 3〇 Ζ 比較結果是等於 一 29 C 比較結果是大於等於戒表排列_ 28 V 比較結果是未排列 27-25 保留 ____ 24 FZ 清除至0 〇 : IEEE754潛流處理(預定) 1 :清除小結果至零 任何小於一般範圍之結果將造 成一零被窝入目的。潛流例外陷 阱將不取β 5·2·2系貌控制位元組 __I ,______^^^1 _ n n 4H — - - - - s ^^^1 m· «^i (請先閲讀背而之注意事項再填寫本頁) _?τ 攔 系統控制位元組控制捨入模式,向量跨步及向量長度 位元係被指定如實例1 2所示。 VFPvl架構併入一暫存器檔案跨步機制,用於向量運 算 右跨步位元被設定至00,則被選定於向量運算中之下 一暫存器將會是在緊跟著在暫存器檔案中之前一暫存器 後疋暫存器。一般暫存器檔案循環機制是未被跨步值所影 響跨步值11將增量所有輸入暫存器年輸出暫存器加 2。例如: FMULEQS F8 * F16 > F24 將執行以下非向量運算: ft 一木 —Γ—~~-_____第 65 頁 ^過川'丨.丨销’永德今() Λ4規格(2!(lx 297公斯) 413766 A7 B7 五、發明説明() FMULEQS F8,F16,F24 FMULEQS F10,F18,F26 | FMULEQS F12 > F20 * F28 FMULEQS F14 > F22 > F30 有效地"跨過”於暫存器檔案中之乘法用運算元2而不 是一暫存器。 23 22 21 20 19 18 16
RMODE 卜跨步 | R | LEN (諳先閱讀背面之注意事項再填寫本頁) 經濟部中央樣ί?-局货工消贽合作社印絮 例示12.FPSCR系統控制位元組 表17.FPSCR系統控制位元組欄定義 暫存器位元 名稱 功能 23 : 22 RMODE 設定捨入模式 00: RN(捨入至最近,預設值) 01 · RP(捨入至正無限大) 10 : RM(捨入至負無限大) 1 I : RZ(捨入至零) 21 : 20 跨步 設定向量暫存器存取: 01 : 1(預設) 01 :保留 10 :保留 11:2 19 保留(R) 18 : 16 LEN 向量長.。指定用於向量運算之 長。(注意所有編碼係可用於每 一實施中) _第66頁 本紙还尺政鸿州中闯家掠4 ( rNS ) Λ4^格(210X29?公# )
--U 413?66 Α7 Β7 五 、發明説明( 000 : 1(預設) 001 : 2 010 : 3 011:4 100 : 5 101 : 6 110:7 111:8 ¾濟部中央榡隼局貝.·!;消fr合作社印$ S.2.3例外致能位无組 例外致能位元組佔用位元15 : 8並且包含用以例外陷 阵之致能。這些位元係被示於實例13。例外致能位元配合 ΙΕΕΕ754規格需求,以處理浮點之例外條件。若該位元被 設定’則例外被致能,及FPS將發出一使用者可見陷味至 作業系-统中’於現行指令之例外狀態發生時^若該位元被 清除’則例外未被清除》及FPS將不會於例外狀態中,發 出一使用者可見陷阱至作業系統中,而會產生一算術合理 結果。用於例外致能位元之預設值為被去能。更多之有關 例外處理程序見ΙΕΕΕ754標準。 一些實施將產生一彈跳以支援碼以處理在硬體能力 外之例外狀況,甚至當例外被去能時。這將對使用者碼而 言為不可見的。
15 13 12 11 10 9 8 保留 IXH UFE OFE DZE IOE 實例1 3 .FPSCR例外致能位元組 第 671" --------,--«------,订------^.> (¾先M讀背面之注意事項再填穷本頁) 413766I、發明说明( A7 B7 ----:— 暫存器位元 名稱 功能 !-- 15:13 保留 一—--- 12 ΙΧΕ 不精確致能位元 0 :去能(預設) 1 :致能 11 UFE 潛能致能位元 0 :去能(預設) 1 :致能 10 OFE 溢流致能位元 〇 :去能(預設) 1 :玫能 9 DZE 為零所除之致能位元 〇 :去能(預設) 1 :致能 8 ΙΟΕ 無效運算元致能位元 0 :去能(預設) 1 :致能 經濟部中决梂卑局β.τ..消价合作社印·!')々 5.2·4例外狀想位元奴 例外狀態位元組佔用FPSCR之位元7 : 〇並包含例外 狀態旗標、位元。其中有五個例外狀態旗標位元,每一個用 於一浮點例外β這些位元是"有些麻煩,,,一旦被檢測例外 所設定時’其必須藉由一 FM0VX寫至FpSCR或 FPERIALCL指令加以清除。這些位元係示於實例丨4中。 第68頁 本紙张从顧帽料财丨0以97公籍) (讀先閲請背1&之注意事項#填.^本莧)
413766 Α7 Α7 Β7 五、發明説明() 於一致能例外中,相關例外狀態位元將不會被自動地設 定。支援碼之工作是如所需設定適當例外狀態。一些例外 必須自動,即若例外狀態被檢測的話,則FPS將彈跳於後 續浮點指令上,而不管例外致能位元是如何被設定。這允 許一些為IEEE754標準所需之例外處理被執行於軟體中 而不是硬體中。一例子是具有FZ位元被設定為〇之潛流 狀態。於此例子中,一正校結果可以是一去正規化數,取 決於結果之指數及捨入模式* FPS允許以選擇反應,諸反 應包含選擇彈跳及利用支援碼以產生正確結果,及窝入此 值至目的暫存器。若潛流例外致能位元被設定,則使用者 之陷阱處理器將被呼叫,於支援碼完成操作之後。這碼可 以改變FPS之狀態及完成或終止處理。
7 5 4 3 2 1 0 保留 IXC UFC OFC DZC IOC 實例14.FPSCR例外狀態位元组 表1 9 · F P S C R例外狀態位元组欄定義 暫存器位元 名稱 功能 7:5 保留 4 IXC 不正確之例外檢測 3 ' UFC 濟流例外檢測 2 OFC 溢流例外檢測 1 DZC 由零所除之例外拾制 0 IOC 無效運算例外檢測 第β9頁 本纸张尺度適⑴'丨,丨与國本壮隼(('NS ) Λ4^格(2丨0> 2W公犮) (讀先閱讀背面之注意事項再填巧本頁) 訂
«37β6 Α7 __Β7 五、發明説明() 5.3暫存器《案ft容暫存器(FPREG)
J 暫存器標案内容暫存器是一特權暫存器,其包含有可 以被除錯器所使用之資訊’以適當地呈現由現行執行程式 所解釋之暫存器之内容。FPREG包含16位元,一位元用 於暫存器播案中每一倍精度暫存器》若位元被設定,則由 該位元所代表之實體暫存器對是被顯示為倍精度暫存 器*若該位元被清除’則實體暫存器未被啟始或包含一或 二單精度資料值 31 ____________________ 16 15 14 13 \2 U 1〇 98765432* I -- ---L ----—I I f請先閱請背面之Vi意事項再填??本頁) 保留 實例15.FPREG暫存器編碼 表20.FPREG位元欄定義 FPREG 位元 位元组 位元清除 C0 DO有效 S1及SO有效或未啟始 C1 D1有效 S3及S2有效或未啟始 C2 D2有效 S5及S4有效或未啟始 C3 D3有效 S7及S6有效或未啟始 C4 D4有效 S9及S8有效或未啟始 C5 D5有效 S1 1及S10有效或未啟始 C6 D6有效 S13及S12有效或未啟始 C7 D7有效 S15及SI4有效或未啟始 第70頁 本纸乐尺度適州中阀阀家枕今丨(·Νί〇八4岘格(210 X 297公筇) 經滴部中央梂本局只工消费合竹^印^心 413766 A7 ^ B7 五、發明説明() C8 D8有效 S17 及 S 16 有 效 或 未 啟 始 C9 D9有效 S19 及 S18 有 效 或 未啟 始 CIO D10有效 S21 及 S20 有 效 或 未 啟 始 C11 D1 1有效 S23 S22 有 效 或 未 啟 始 C12 D12有效 S25 及 S24 有 效 或 未 啟 始 C 13 D1 3有效 S27 及 S26 有 效 或 未 啟 始 C14 D14有效 S29 及 S28 有 效 或 未 啟 始 C15 D15有效 S31 及 S30 有 效 或 未 啟 始 6.例外處理 FPS操作於兩模式之一,即除錯模式及正常模式之 —。若DM位元被設定於FPSCR中,則FPS操作於除錯 模式*>於此模式中,FPS —次執行一指令,而ARM被作 成等待’直到指令之例外狀態為已知為止。這將保證暫存 器擋案及記憶體相對於指令流為精確的,但使用較多之執 行時間。當資源允許及is號例外於例外狀態之檢測時,FPS 將接收來自ARM之新指令。報告給arm之例外將一直相 對於浮點指令流為精確的,除了負載或儲存操作外,該操 作允許一向量運算並平行執行以向量運算。於此時,為了 負載之暫存器樓案或為了错存操作之記憶體内容可以不 精確。 6.1支援磷 FPS之實行可以選擇為配合硬體及軟體組合之 IEEE754。對於未支援資料類型及自動例外,支援碼將執 5^71"^" 木紙沾又度诚ϋΝ丨'料:桴彳(rNS ) )---—------. f請先閲讀背而之注意事項再填寫本頁)
經濟部中夾標準局爲J-消贽合作社印S4 413766 A7 ----- B7 五、發明説明() 行相符硬體及當適當時送回結果至目的暫存器,並送回至 使用者之瑪而不呼叫使用者之陷阱處理器或修改使用者 碼之流量之功能β對使用者而言,似乎硬體係單獨負责浮 點碼之處理。處理這些特性之彈跳支援碼大量增加了執行 或處理特性之時間,但這些狀態之發生典型於内建應用之 使用者碼中為最少,其係被窝成數值應用。 支援碼係用以具有兩元件:一常式庫*其執行硬體範 固外之操作’例如超越計算,以及支援函數,例如以未支 援輸入或產生例外之除法;及一組例外處理器,其處理例 外陷阱’以提供ΙΕΕΕ754相符性。該支援碼係需要以執行 實行之功能’以模擬任何未援資料類型或資料代表(例如 去正規值)之適當處理。這些常式若考慮以回復使用者狀 態’可以被寫入以利用於中間計算之FPS於常式之結束 時g - 6.2例外根告及處理 於正常模式中之例外將被報告至於例外狀態檢測後 所發出之下一浮點指令上之ARM。ARM處理機,FPS暫 存器檔案及記憶體之狀態可以不必相較於例外時之相反 指令。足夠資訊係被支援碼所用,以正確地模擬指令並處 理來自指令之例外。 於二些實施中’支援碼可以被用以處理具特定 IEEE7 54資料之部份或全部運算’諸資料包含無限大值, NaN s’去正規資訊及零》如此作之實行將被稱為未支援, 並彈跳至對使用者碼大致不見之支援碼,並送回具 _ 第72頁 本纸ίίϊ尺度谇州中阀国家棍:(*( i’NS ) Λ4規格(210X297公筇) (錆先閱請背16之注意事項再填寫本頁) 訂 Α7 Β7 413766 五、發明説明() IEEE754指定結果到目的暫存器。導源自該操作之例外將 遵守IEEE754规則,以用於例外"若相關例外致能位元被
I 設定,這可以包含對使用者碼之陷阱》 IEEE754標準定義對例外狀況之反應,例外是於 FPSCR·中之例外致能及去能》VFPvl架構並不指定於被用 以適當配合IEEE754規格之硬體及軟體間之邊界》 6.2.1未支援運算及格式 FPS並不支援任何具十進制資料或有關十進制之資 料轉換。這些運算係被IEEE754標準所需並必須被支援碼 所提供•'任何想要利用十進制資料將需要用於想要功能之 常式庫。FPS沒有十進制資料類型,並且,不能用以捕捉 使用十進制資料之指令。 6·2_2當FPS被去能或例外時,FMOVX之使用 執行於監督者或未定義模式中之FMOVX指令可以讀 取或窝入FPSCR或讀取FPSID或FPREG,當FPS是於— 例外狀態或被去能時(若實行支援一去能選擇),而不會造 成例外被發送給ARM » 雖然本發明之特定實施例已經被描述,但明頰地本發 明並不限定於此’並且很多修改及相加可以在本發明、 <範 圍内完成》例如,以下申請專利範圍特性之各種組 可以 完成本發明之申請專利範園之特性而不脫離本發明之 ____ ____ _ _芒73 貫 械 则mam:制 ϋ) λ视格 一郃先閱讀背面之注意事項再填寫本頁) -# .線:、

Claims (1)

  1. 賴I il Ι^Ί fell!申請專利範園 AS B8 C8 P8 夕匕| 量暫存器或一純量暫存器。 3 .如申請專利範圍第2項所述之設備,其中當上述之第一 暫存器是一純量暫存器時’第二暫存器是—純量暫存 器,以及,當第一暫存器是一向量暫存器時,該第二暫 存器是一向量暫存器。 4. 如申請專利範圍第2項所述之設備’其中上述之至少一 資料處理指令具有一第三暫存器指定欄,指明一第三暫 存器; 該指令解碼器執行該運算’使用第三暫存器成為一 純量暫存器或一向量暫存器;及 該指令解碼器反應於該第二暫存器指明櫚,以決定 是否該運算是使用第三暫存器為一向量暫存器或一純 量暫存器加以執行。 5. 如申請專利範園第1項所述之設備;其中上述之運算指 定碼具有非交換碼值,其係相對於非交換運算,至少部 份之非交換碼值被以成對方式提供’以相對於具有相反 運算元順序之部份運算。 6. 如申請專利範圍第1項所述之設備,更包含一向量控制 暫存器’其储存指明暫存器數量之長度值於暫存器之預 定順序中’當已知暫存器是一向量暫存器時,該運算被 本紙張尺度適用中國國家標準(CNS > A4規格(210X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂 -炉丨· 經濟部智慧財產局員工消費合作社印製 4l^766 A8 B8 C8 1^___ D8 A、申請專利範園 種處理資料之設備,該設備至少包含: 一暫存器排’具有多數暫存器:及 一指令解碼器,用以解碼資料處理指令,至少—資 料處理指令具有至少一運算指定碼,用以指明用以執行 之運算及一第一暫存器指定欄,用以指定在暫存器排内 之第一暫存器:其中 該指令解碼器使用一已知暫存器作為一純量暫存器 或一向量暫存器’來執行一運算,當儲存於已知暫存器 中之運算元時,以已知暫存器為一純量暫存器執行,其 包含執行該運算’以及,以該已知暫存器執行為一向量 暫存器’包含對以已知暫存器之暫存器指定櫚選擇之暫 存器排之一預定順序暫存器内之運算元,執行該運算若 干次:以及 -該指令解碼器係反應於該第一暫存器指明欄並無關 於操作指定碼’以決定是否該予以被執行之運算,使用 第一暫存器成為一向量暫存器或一純量暫存器。 2.如申請專利範圍第1項所述之設備,其中上述之至少— 資料處理指令具有一第二暫存器指定欄,以指定—第二 暫存器; 該指令解碼器執行該運算,使用該第二暫存器為一 純量暫存器或一向量暫存器;及 該指令解碼器係反應於第一暫存器指定欄,以決定 是否該予以被執行之運算是使用第二暫存器成為一向 第74·頁 本紙張尺度適用中國國家標隼(CNS ) A4現格(21〇X29"7公釐) (請先閲讀背面之注意事項再填寫本頁) ---- -- ϋ - I · 經濟部令央標準局貝工消費合作社印製 賴I il Ι^Ί fell!申請專利範園 AS B8 C8 P8 夕匕| 量暫存器或一純量暫存器。 3 .如申請專利範圍第2項所述之設備,其中當上述之第一 暫存器是一純量暫存器時’第二暫存器是—純量暫存 器,以及,當第一暫存器是一向量暫存器時,該第二暫 存器是一向量暫存器。 4. 如申請專利範圍第2項所述之設備’其中上述之至少一 資料處理指令具有一第三暫存器指定欄,指明一第三暫 存器; 該指令解碼器執行該運算’使用第三暫存器成為一 純量暫存器或一向量暫存器;及 該指令解碼器反應於該第二暫存器指明櫚,以決定 是否該運算是使用第三暫存器為一向量暫存器或一純 量暫存器加以執行。 5. 如申請專利範園第1項所述之設備;其中上述之運算指 定碼具有非交換碼值,其係相對於非交換運算,至少部 份之非交換碼值被以成對方式提供’以相對於具有相反 運算元順序之部份運算。 6. 如申請專利範圍第1項所述之設備,更包含一向量控制 暫存器’其储存指明暫存器數量之長度值於暫存器之預 定順序中’當已知暫存器是一向量暫存器時,該運算被 本紙張尺度適用中國國家標準(CNS > A4規格(210X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂 -炉丨· 經濟部智慧財產局員工消費合作社印製 向量暫存器及當第 於Ν值第一範圍,則第 經濟部中夬櫺準局員工消費合作社印製 A8 B8 C8 D8 申請專利範圍 重覆’該長度值係應用至所有用於資料處理指令之向量 暫存器中。 7. 如申請專利範固第6項所述之設備,其中上述之指人解 碼器檢測是否該長度值指明於預定順序中之暫存器之 數量是1’以提供所有用於資料處理指令中之暫存器均 純量暫存器之指示。 8. 如申請專利範圍第6項所述之設備’其中上述之向量控 .制暫存器儲存_跨步值,其指明於預定序列暫存器之暫 存器間之暫存器數,及該絝步值應用至用於資料處理指 令之所有向量暫存器· 9·如申請專利範圍第1項辧述之設備’其中上述之第一暫 存器指明欄是於第一範園之N值内,該第一暫存器是一 暫存器值是於Μ值第二範園,不同 —— 暫存器是一向量暫存器。 10. 如申請專利範圍第9項所述之設備’其中上述之Μ>Ν 11. 如申’請專利範圍第1〇項所述之設備’其中上述之Μ =: * Ν。 12.如申請專利範圍第4項所述之設備’其中當上述之第 第76頁 本紙張尺度適用中國國家榡準(Cns ) Α4規格(210/297公竣) .1—ib! (誇先閲绩背面之注意事項再填寫本頁) -訂_ 终 413766 A8 BS cs D8 六
    經濟部中.¾揉準局員工消費合作社印製
    、申請專利範園 暫存器指定攔是於第一範園内之P值時’該第三暫存器 是一向量暫存器,當該第二暫存器是於不同於第一範圍 P值之第二範圍之Q值内時,則第三暫存器是一向量暫 存器。 13. 如申請專利範圍第12項所述之設備’其中上述之 p>Q。 14. 如申請專利範圍第13項所述之設備,其中上述之P = 3 * Q β 15. 如申請專利範圍第1項所述之設備,更包含一記憶體及 一傳送控制器,用以控制於記憶體及暫存器排内之暫存 器間之資料值傳送,該傳送控制器反應於多重傳送指 令,以傳送一序列之資料值於記憶體及暫存器排之一序 列暫存器之間。 16. 如申請專利範圍第1項所述之設備’其中上述之暫存器 排及該指令解碼器是一浮點單元之部份。 17. 如申請專利範圍第16項所述之設備’其中上述之浮點 單元包含一乘法累積單元’用以執行乘法累積運算β 18_如申請專利範圍第1項所述之設備’其中上述運算之結 第77頁 本紙張尺度適用中國國家標準(CNS ) Α4规格(21〇Χ297公釐) AS B8 C8 D8 ^3766 、申請專利範圍 果是被窝入至作為目的暫存器之第一暫存器。 19. 如申請專利範圍第2項所述之設備,其中該第二暫存器 作用為一儲存該運算之第一輸入運算元之第一運算元 暫存器。 20. 如申請專利範困第4項所述之設備’其中該第三暫存器 作為一儲存該運算之第二輸入運算元之第二運算元暫 存器。 21,如申請專利範圍第1項所述之設備’其中上述之暫存器 排包含32個暫存器》 22. 如.申請專利範圍第1項所述之設備,其中上述之暫存器 可以操作並被個別地運算以儲存單精度值’或以操作或 被呈對地運算,以儲存一倍精度值。 23. 如申請專利範圍第1項所述之設備’其中該已知暫存器 指定欄指明在預定順序暫存器内之開始暫存器*當該運 算是使用已知暫存器為一向量暫存器加以執行。 24‘如申請專利範圍第1項所述之設備’其中上述之解碼器 是反應於至少另一資料處理指令,其中該運算碼定義是 否該指明於指令中之已知暫存器是一向量暫存器或— 第邛頁 本紙張尺度適用中國國家標準(CNS ) A4規格(250X297公釐) ---:---十————0------ir-------象 JV (請先閲讀背面之注意事項再填寫本頁) 經濟部中央標準局員工消费合作杜印製 ^13766 申請專利範圍 A8 BS C8 D8 經 濟 中 央 標 準 局 員 工 消 費 合 作 社 印 製 第79耳 純量暫存器,而無 暫存器指定攔。 25_-種處理資料之方法, 儲存資料值於-暫存器排^包含步驟: 器:及 該棑具有多數暫存 以-指令解碼器,來解 由 料處理指令具有至少一運算〜處理指令,至少一資 算以及-第-暫存器指定指:碼’指定用以執行之運 暫存器;其中 "明在暫存器排内之第一 該指令解碼器使用一已 -向量暫存器來執行一運算,=為-純量暫存器或 純量暫在哭> 孩已知暫存器執行為一 吧!質存器包含於储存已知 行一運苴器中有一運算元時執 時,包含存器執行為一向量暫存器 算元2於存器排之預定順序暫存器内之諸運 算,-運算若干次,諸順 諸運 知暫存器之暫存器指明欄加以選擇;及 於一已 該指令解碼器是反應於第一暫 運算浐佘麻丈* — β 臀存器指明棚並無關於 向:tr 該運算為使用第-暫存器為- "量赞存器或_純量暫存器加以執行。 本紙張尺度適用㈣國家標準(c叫八4規格(2!0X297公着) --J---十--^-1^^^----~*1 訂-------象 V (請先閲讀背面之注意事項再填寫本頁)
TW087115620A 1998-05-27 1998-09-18 Mixed vector/scalar register file TW413766B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/084,304 US6282634B1 (en) 1998-05-27 1998-05-27 Apparatus and method for processing data having a mixed vector/scalar register file

Publications (1)

Publication Number Publication Date
TW413766B true TW413766B (en) 2000-12-01

Family

ID=22184104

Family Applications (1)

Application Number Title Priority Date Filing Date
TW087115620A TW413766B (en) 1998-05-27 1998-09-18 Mixed vector/scalar register file

Country Status (11)

Country Link
US (3) US6282634B1 (zh)
EP (1) EP1080420B1 (zh)
JP (1) JP2002517037A (zh)
KR (1) KR100563219B1 (zh)
CN (1) CN1191535C (zh)
DE (1) DE69901708T2 (zh)
IL (1) IL139250A0 (zh)
MY (1) MY125652A (zh)
RU (1) RU2212049C2 (zh)
TW (1) TW413766B (zh)
WO (1) WO1999061996A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
TWI467476B (zh) * 2011-01-14 2015-01-01 Intel Corp 能夠以三個暫存器執行之純量整數指令的處理核心、方法及計算系統
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US9395981B2 (en) 2011-09-16 2016-07-19 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers

Families Citing this family (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6687722B1 (en) * 2000-03-16 2004-02-03 Agere Systems, Inc. High-speed/low power finite impulse response filter
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6675376B2 (en) * 2000-12-29 2004-01-06 Intel Corporation System and method for fusing instructions
WO2002084451A2 (en) * 2001-02-06 2002-10-24 Victor Demjanenko Vector processor architecture and methods performed therein
US6842849B2 (en) * 2001-05-21 2005-01-11 Arm Limited Locking source registers in a data processing apparatus
US7831652B2 (en) * 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US6961744B2 (en) * 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US6976050B2 (en) * 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US7395297B2 (en) 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US7228324B2 (en) * 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7363337B2 (en) * 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US6970898B2 (en) * 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US7133890B2 (en) 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US6779013B2 (en) * 2001-06-04 2004-08-17 Intel Corporation Floating point overflow and sign detection
US7080111B2 (en) * 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
GB2382674B (en) 2001-10-31 2005-11-16 Alphamosaic Ltd Data access in a processor
US7937559B1 (en) 2002-05-13 2011-05-03 Tensilica, Inc. System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US7376812B1 (en) * 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
AU2003256870A1 (en) * 2002-08-09 2004-02-25 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
GB2424503B (en) * 2002-09-17 2007-06-20 Micron Technology Inc An active memory device
WO2004030224A1 (en) * 2002-09-27 2004-04-08 Ibiquity Digital Corporation Method and apparatus for interleaving signal bits in a digital audio broadcasting system
US6944747B2 (en) * 2002-12-09 2005-09-13 Gemtech Systems, Llc Apparatus and method for matrix data processing
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US20040193838A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Vector instructions composed from scalar instructions
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7299170B2 (en) * 2003-06-28 2007-11-20 Transitive Limited Method and apparatus for the emulation of high precision floating point instructions
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
CN1306395C (zh) * 2004-02-13 2007-03-21 中国科学院计算技术研究所 Mips指令集的处理器扩展指令及其编码方法和部件
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
US20060179096A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation System and method for a fused multiply-add dataflow with early feedback prior to rounding
US8250348B2 (en) * 2005-05-19 2012-08-21 International Business Machines Corporation Methods and apparatus for dynamically switching processor mode
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
WO2007060932A1 (ja) * 2005-11-25 2007-05-31 Matsushita Electric Industrial Co., Ltd. 動的再構成論理回路を有するマルチスレッドプロセッサ
US20070186210A1 (en) * 2006-02-06 2007-08-09 Via Technologies, Inc. Instruction set encoding in a dual-mode computer processing environment
JP4934356B2 (ja) * 2006-06-20 2012-05-16 株式会社日立製作所 映像処理エンジンおよびそれを含む映像処理システム
US7865882B2 (en) * 2006-08-18 2011-01-04 International Business Machines Corporation Fast correctly rounding floating point conversion and identifying exceptional conversion
US9223751B2 (en) 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US20080079713A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Area Optimized Full Vector Width Vector Cross Product
US20080079712A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Dual Independent and Shared Resource Vector Execution Units With Shared Register File
US7694193B2 (en) * 2007-03-13 2010-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for implementing a stride value for accessing memory
CN101216756B (zh) * 2007-12-28 2011-03-23 中国科学院计算技术研究所 一种risc处理器装置及其模拟浮点栈操作的方法
US9690591B2 (en) * 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter
CN101819518B (zh) * 2009-02-26 2013-09-11 国际商业机器公司 在事务内存中快速保存上下文的方法和装置
US8341119B1 (en) * 2009-09-14 2012-12-25 Netapp, Inc. Flexible copies having different sub-types
CN101819516B (zh) * 2010-01-22 2014-04-16 龙芯中科技术有限公司 能够复用浮点操作用构件和向量操作用构件的处理器
US8606840B2 (en) * 2010-03-17 2013-12-10 Oracle International Corporation Apparatus and method for floating-point fused multiply add
US8495124B2 (en) * 2010-06-23 2013-07-23 International Business Machines Corporation Decimal floating point mechanism and process of multiplication without resultant leading zero detection
US8914430B2 (en) * 2010-09-24 2014-12-16 Intel Corporation Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions
US20120216015A1 (en) * 2011-02-22 2012-08-23 Mitra Sumanranjan S System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor
CN102200964B (zh) * 2011-06-17 2013-05-15 孙瑞琛 基于并行处理的fft装置及其方法
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
CN111831335A (zh) * 2011-12-23 2020-10-27 英特尔公司 经改进的插入指令的装置和方法
CN104011616B (zh) * 2011-12-23 2017-08-29 英特尔公司 改进置换指令的装置和方法
CN104126171B (zh) * 2011-12-27 2018-08-07 英特尔公司 用于基于两个源写掩码寄存器生成依赖向量的系统、装置和方法
US9632777B2 (en) 2012-08-03 2017-04-25 International Business Machines Corporation Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry
US9569211B2 (en) 2012-08-03 2017-02-14 International Business Machines Corporation Predication in a vector processor
US9575755B2 (en) 2012-08-03 2017-02-21 International Business Machines Corporation Vector processing in an active memory device
US9594724B2 (en) * 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
CN103281365B (zh) * 2013-05-20 2016-12-28 深圳市京华科讯科技有限公司 分布式虚拟化架构
US8626813B1 (en) * 2013-08-12 2014-01-07 Board Of Regents, The University Of Texas System Dual-path fused floating-point two-term dot product unit
US20150293767A1 (en) * 2014-04-11 2015-10-15 Fujitsu Limited Rotating register file with bit expansion support
GB2540943B (en) * 2015-07-31 2018-04-11 Advanced Risc Mach Ltd Vector arithmetic instruction
US10762164B2 (en) 2016-01-20 2020-09-01 Cambricon Technologies Corporation Limited Vector and matrix computing device
CN107704433A (zh) * 2016-01-20 2018-02-16 南京艾溪信息科技有限公司 一种矩阵运算指令及其方法
US10331449B2 (en) * 2016-01-22 2019-06-25 Arm Limited Encoding instructions identifying first and second architectural register numbers
CN111651201B (zh) * 2016-04-26 2023-06-13 中科寒武纪科技股份有限公司 一种用于执行向量合并运算的装置和方法
CN107315717B (zh) 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
US10275243B2 (en) 2016-07-02 2019-04-30 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
WO2018174931A1 (en) 2017-03-20 2018-09-27 Intel Corporation Systems, methods, and appartus for tile configuration
WO2019009870A1 (en) 2017-07-01 2019-01-10 Intel Corporation SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE
US10474464B2 (en) * 2017-07-05 2019-11-12 Deep Vision, Inc. Deep vision processor
US10175912B1 (en) * 2017-07-05 2019-01-08 Google Llc Hardware double buffering using a special purpose computational unit
US11809869B2 (en) 2017-12-29 2023-11-07 Intel Corporation Systems and methods to store a tile register pair to memory
US11023235B2 (en) 2017-12-29 2021-06-01 Intel Corporation Systems and methods to zero a tile register pair
US11789729B2 (en) 2017-12-29 2023-10-17 Intel Corporation Systems and methods for computing dot products of nibbles in two tile operands
US11816483B2 (en) 2017-12-29 2023-11-14 Intel Corporation Systems, methods, and apparatuses for matrix operations
US11093247B2 (en) 2017-12-29 2021-08-17 Intel Corporation Systems and methods to load a tile register pair
US11669326B2 (en) 2017-12-29 2023-06-06 Intel Corporation Systems, methods, and apparatuses for dot product operations
US10664287B2 (en) 2018-03-30 2020-05-26 Intel Corporation Systems and methods for implementing chained tile operations
US11093579B2 (en) 2018-09-05 2021-08-17 Intel Corporation FP16-S7E8 mixed precision for deep learning and other algorithms
US10970076B2 (en) 2018-09-14 2021-04-06 Intel Corporation Systems and methods for performing instructions specifying ternary tile logic operations
US11579883B2 (en) 2018-09-14 2023-02-14 Intel Corporation Systems and methods for performing horizontal tile operations
US10866786B2 (en) 2018-09-27 2020-12-15 Intel Corporation Systems and methods for performing instructions to transpose rectangular tiles
US10719323B2 (en) 2018-09-27 2020-07-21 Intel Corporation Systems and methods for performing matrix compress and decompress instructions
EP3857353B1 (en) * 2018-09-27 2023-09-20 Intel Corporation Apparatuses and methods to accelerate matrix multiplication
US10990396B2 (en) 2018-09-27 2021-04-27 Intel Corporation Systems for performing instructions to quickly convert and use tiles as 1D vectors
US10896043B2 (en) 2018-09-28 2021-01-19 Intel Corporation Systems for performing instructions for fast element unpacking into 2-dimensional registers
US10963256B2 (en) 2018-09-28 2021-03-30 Intel Corporation Systems and methods for performing instructions to transform matrices into row-interleaved format
US10929143B2 (en) 2018-09-28 2021-02-23 Intel Corporation Method and apparatus for efficient matrix alignment in a systolic array
US10963246B2 (en) 2018-11-09 2021-03-30 Intel Corporation Systems and methods for performing 16-bit floating-point matrix dot product instructions
US10929503B2 (en) 2018-12-21 2021-02-23 Intel Corporation Apparatus and method for a masked multiply instruction to support neural network pruning operations
US11886875B2 (en) 2018-12-26 2024-01-30 Intel Corporation Systems and methods for performing nibble-sized operations on matrix elements
US11294671B2 (en) 2018-12-26 2022-04-05 Intel Corporation Systems and methods for performing duplicate detection instructions on 2D data
US20200210517A1 (en) 2018-12-27 2020-07-02 Intel Corporation Systems and methods to accelerate multiplication of sparse matrices
US10942985B2 (en) 2018-12-29 2021-03-09 Intel Corporation Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
US10922077B2 (en) 2018-12-29 2021-02-16 Intel Corporation Apparatuses, methods, and systems for stencil configuration and computation instructions
US11269630B2 (en) 2019-03-29 2022-03-08 Intel Corporation Interleaved pipeline of floating-point adders
US11016731B2 (en) 2019-03-29 2021-05-25 Intel Corporation Using Fuzzy-Jbit location of floating-point multiply-accumulate results
US11175891B2 (en) 2019-03-30 2021-11-16 Intel Corporation Systems and methods to perform floating-point addition with selected rounding
US10990397B2 (en) 2019-03-30 2021-04-27 Intel Corporation Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator
US11403097B2 (en) 2019-06-26 2022-08-02 Intel Corporation Systems and methods to skip inconsequential matrix operations
US11334647B2 (en) 2019-06-29 2022-05-17 Intel Corporation Apparatuses, methods, and systems for enhanced matrix multiplier architecture
CN110928577B (zh) * 2019-11-14 2021-11-05 中国人民解放军国防科技大学 一种带异常返回的向量存储指令的执行方法
US11714875B2 (en) 2019-12-28 2023-08-01 Intel Corporation Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US20200218508A1 (en) * 2020-03-13 2020-07-09 Intel Corporation Floating-point decomposition circuitry with dynamic precision
US11513847B2 (en) 2020-03-24 2022-11-29 Deep Vision Inc. System and method for queuing commands in a deep learning processor
CN111459546B (zh) * 2020-03-30 2023-04-18 芯来智融半导体科技(上海)有限公司 一种实现操作数位宽可变的装置及方法
US12112167B2 (en) 2020-06-27 2024-10-08 Intel Corporation Matrix data scatter and gather between rows and irregularly spaced memory locations
US11972230B2 (en) 2020-06-27 2024-04-30 Intel Corporation Matrix transpose and multiply
US11941395B2 (en) 2020-09-26 2024-03-26 Intel Corporation Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions
US12001887B2 (en) 2020-12-24 2024-06-04 Intel Corporation Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator
US12001385B2 (en) 2020-12-24 2024-06-04 Intel Corporation Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator
CN112988236B (zh) * 2021-04-20 2023-04-14 浙江华忆芯科技有限公司 数据存储方法及装置、存储介质、电子装置
GB202112803D0 (en) 2021-09-08 2021-10-20 Graphcore Ltd Processing device using variable stride pattern
US11900116B1 (en) 2021-09-29 2024-02-13 International Business Machines Corporation Loosely-coupled slice target file data
US12001848B2 (en) * 2022-01-30 2024-06-04 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions with phantom registers
US11954491B2 (en) 2022-01-30 2024-04-09 Simplex Micro, Inc. Multi-threading microprocessor with a time counter for statically dispatching instructions
CN114816532B (zh) * 2022-04-20 2023-04-04 湖南卡姆派乐信息科技有限公司 一种提高risc-v二进制代码密度的寄存器分配方法
US12106114B2 (en) 2022-04-29 2024-10-01 Simplex Micro, Inc. Microprocessor with shared read and write buses and instruction issuance to multiple register sets in accordance with a time counter
US12112172B2 (en) 2022-06-01 2024-10-08 Simplex Micro, Inc. Vector coprocessor with time counter for statically dispatching instructions
CN115951936B (zh) * 2023-01-17 2023-05-26 上海燧原科技有限公司 向量化编译程序的芯片适配方法、装置、设备及介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535694A (en) 1968-01-15 1970-10-20 Ibm Information transposing system
JPS5725069A (en) 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
JPS61173345A (ja) 1985-01-29 1986-08-05 Hitachi Ltd 計算機システム
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
US5261113A (en) * 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
US4969118A (en) * 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5544337A (en) * 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
DE69133072T2 (de) * 1990-08-24 2003-03-20 Matsushita Electric Industrial Co., Ltd. Verfahren und Gerät zur Berechnung von Gleitkommadaten
JP2718254B2 (ja) * 1990-10-02 1998-02-25 日本電気株式会社 ベクトル処理装置
US5437043A (en) 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5669013A (en) 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
GB2291515B (en) 1994-07-14 1998-11-18 Advanced Risc Mach Ltd Data processing using multiply-accumulate instructions
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5548544A (en) * 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5550767A (en) * 1994-10-14 1996-08-27 Ibm Corporation Method and apparatus for detecting underflow and overflow
US5537606A (en) 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US5867413A (en) * 1995-10-17 1999-02-02 Hitachi Micro Systems, Inc. Fast method of floating-point multiplication and accumulation
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5892698A (en) * 1996-04-04 1999-04-06 Hewlett-Packard Company 2's complement floating-point multiply accumulate unit
US5838984A (en) * 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US5917741A (en) * 1996-08-29 1999-06-29 Intel Corporation Method and apparatus for performing floating-point rounding operations for multiple precisions using incrementers
US5805875A (en) * 1996-09-13 1998-09-08 International Computer Science Institute Vector processing system with multi-operation, run-time configurable pipelines
US6006315A (en) * 1996-10-18 1999-12-21 Samsung Electronics Co., Ltd. Computer methods for writing a scalar value to a vector
US5991531A (en) * 1997-02-24 1999-11-23 Samsung Electronics Co., Ltd. Scalable width vector processor architecture for efficient emulation
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6115729A (en) * 1998-08-20 2000-09-05 Arm Limited Floating point multiply-accumulate unit
US6148314A (en) * 1998-08-28 2000-11-14 Arm Limited Round increment in an adder circuit

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8698817B2 (en) 2004-11-15 2014-04-15 Nvidia Corporation Video processor having scalar and vector components
US8687008B2 (en) 2004-11-15 2014-04-01 Nvidia Corporation Latency tolerant system for executing video processing operations
US8424012B1 (en) 2004-11-15 2013-04-16 Nvidia Corporation Context switching on a video processor having a scalar execution unit and a vector execution unit
US8493396B2 (en) 2004-11-15 2013-07-23 Nvidia Corporation Multidimensional datapath processing in a video processor
US8493397B1 (en) 2004-11-15 2013-07-23 Nvidia Corporation State machine control for a pipelined L2 cache to implement memory transfers for a video processor
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US8725990B1 (en) 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
US8683184B1 (en) 2004-11-15 2014-03-25 Nvidia Corporation Multi context execution on a video processor
US8736623B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Programmable DMA engine for implementing memory transfers and video processing for a video processor
US9111368B1 (en) 2004-11-15 2015-08-18 Nvidia Corporation Pipelined L2 cache for memory transfers for a video processor
US8738891B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Methods and systems for command acceleration in a video processor via translation of scalar instructions into vector instructions
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
TWI467476B (zh) * 2011-01-14 2015-01-01 Intel Corp 能夠以三個暫存器執行之純量整數指令的處理核心、方法及計算系統
US9395981B2 (en) 2011-09-16 2016-07-19 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9411585B2 (en) 2011-09-16 2016-08-09 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers
US9727337B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers

Also Published As

Publication number Publication date
JP2002517037A (ja) 2002-06-11
CN1303501A (zh) 2001-07-11
IL139250A0 (en) 2001-11-25
WO1999061996A1 (en) 1999-12-02
CN1191535C (zh) 2005-03-02
KR20010043772A (ko) 2001-05-25
EP1080420B1 (en) 2002-06-05
DE69901708D1 (de) 2002-07-11
RU2212049C2 (ru) 2003-09-10
US6360189B1 (en) 2002-03-19
EP1080420A1 (en) 2001-03-07
US6332186B1 (en) 2001-12-18
MY125652A (en) 2006-08-30
KR100563219B1 (ko) 2006-03-22
US6282634B1 (en) 2001-08-28
DE69901708T2 (de) 2002-12-05

Similar Documents

Publication Publication Date Title
TW413766B (en) Mixed vector/scalar register file
TW495679B (en) Recirculating register file
US10782967B2 (en) Multifunctional hexadecimal instruction form system and program product
JP3969895B2 (ja) データ型によるコプロセッサの操作コードの分割
CN100385432C (zh) 执行部分宽度压缩数据指令的方法和设备
JP3828677B2 (ja) レジスタとメモリとの間のデータ転送
CN106528044A (zh) 处理器、指令执行方法和计算系统
US20220107805A1 (en) Floating Point Number Format
CN109213525A (zh) 具有快捷起始指令的流式传输引擎
Smotherman et al. Improving cisc instruction decoding performance using a fill unit
GB2423385A (en) Determining an initial estimate of a result value of a reciprocal operation
JPH096610A (ja) データ処理システムにおいて複合命令の実行中にオペランドを交換するための方法およびシステム
JPH11353305A (ja) ベクトルレジスタのアドレス指定
TW497074B (en) An integer instruction set architecture and implementation
JP2002517038A (ja) 再循環レジスタファイル
CA3040894A1 (en) Double load instruction
WO1999061997A1 (en) Recirculating register file
CN103119532B (zh) 处理器、指令执行方法和计算系统

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent