TW201712535A - 向量運算元位元大小控制 - Google Patents

向量運算元位元大小控制 Download PDF

Info

Publication number
TW201712535A
TW201712535A TW105122999A TW105122999A TW201712535A TW 201712535 A TW201712535 A TW 201712535A TW 105122999 A TW105122999 A TW 105122999A TW 105122999 A TW105122999 A TW 105122999A TW 201712535 A TW201712535 A TW 201712535A
Authority
TW
Taiwan
Prior art keywords
vector
level state
bit size
processing
operation element
Prior art date
Application number
TW105122999A
Other languages
English (en)
Other versions
TWI710956B (zh
Inventor
奈吉爾約翰 史蒂芬斯
Original Assignee
Arm股份有限公司
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 Arm股份有限公司 filed Critical Arm股份有限公司
Publication of TW201712535A publication Critical patent/TW201712535A/zh
Application granted granted Critical
Publication of TWI710956B publication Critical patent/TWI710956B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Abstract

一種資料處理系統包括處理電路系統及解碼器電路系統以用於解碼程式指令並控制處理器電路系統。解碼器電路系統可回應於向量運算元位元大小相依指令,該指令在異常級別狀態階層的選定異常級別狀態內執行,以控制處理電路系統來利用向量運算元位元大小執行處理,該向量運算元位元大小受控於與當前選定異常級別狀態關聯的向量運算元位元大小的極限值、針對更靠近階層內最高異常級別狀態的一異常級別狀態設定的任何可程式化極限值,及所實施極限。

Description

向量運算元位元大小控制
本揭示案係關於資料處理系統領域。更特別而言,本揭示案係關於支援向量處理操作的資料處理系統。
已知提供一種資料處理系統,該系統支援使用至少一個向量運算元而進行向量處理操作,該向量運算元具有向量運算元位元大小且包括複數個向量元件。通常,向量運算元位元大小定義為資料處理系統架構中之部分,例如該架構定義向量運算元位元大小將為某具體固定值,如256位元、512位元、1024位元,等等。
本揭示案之至少一些實施例提供一種用於處理資料的設備,該設備包括: 處理電路系統,用以在異常級別狀態階層中的選定異常級別狀態中執行處理操作,該階層在最高異常級別狀態與最低的異常級別狀態之間延伸;及 解碼器電路系統,用以解碼程式指令,以產生控制信號來控制該處理電路系統以執行該處理操作,該處理操作包括藉由使用至少一個向量運算元進行的向量處理操作;其中 該解碼器電路系統可回應於在該選定異常級別狀態中執行的向量運算元位元大小相依程式指令,以控制該處理電路系統來執行向量處理操作,該等操作取決於該選定異常級別狀態的向量運算元位元大小極限值,及比該選定異常級別狀態更鄰近該階層內該最高異常級別狀態的異常級別狀態的至少一個可程式化向量運算元位元大小極限值。
本揭示案之至少一些實施例提供用於處理資料的設備,該設備包括: 處理手段,用於在異常級別狀態階層中的選定異常級別狀態中執行處理操作,該階層在最高異常級別狀態與最低的異常級別狀態之間延伸;及 解碼器手段,用於解碼程式指令,以產生控制信號來控制該處理手段以執行該處理操作,該處理操作包括藉由使用至少一個向量運算元進行的一或更多個向量處理操作;其中 該解碼器手段可回應於在該選定異常級別狀態中執行的向量運算元位元大小相依程式指令,以控制該處理手段來執行向量處理操作,該等操作取決於該選定異常級別狀態的向量運算元位元大小極限值,及比該選定異常級別狀態更鄰近該階層內該最高異常級別狀態之異常級別狀態的至少一個可程式化向量運算元位元大小極限值。
本揭示案之至少一些實施例提供一種用於處理資料的方法,該方法包括: 利用處理電路系統在異常級別狀態階層中的選定異常級別狀態中執行處理操作,該階層在最高異常級別狀態與最低的異常級別狀態之間延伸;及 解碼程式指令,以產生控制信號來控制該處理電路系統以執行該處理操作,該處理操作包括藉由使用至少一個向量運算元進行的向量處理操作;其中 回應於對在該選定異常級別狀態中執行的向量運算元位元大小相依程式指令進行解碼,控制該處理電路系統來執行向量處理操作,該等操作取決於該選定異常級別狀態的向量運算元位元大小極限值,及比該選定異常級別狀態更鄰近該階層內該最高異常級別狀態之異常級別狀態的至少一個可程式化向量運算元大小極限值。
本揭示案之上述及其他目的、特徵及優勢將在說明性實施例的以下詳細說明中顯而易見,該詳細說明應結合附圖進行閱讀。
第1圖示意地圖示資料處理系統2,該系統包括處理器4及儲存資料8及程式指令10的記憶體6。處理器4包括指令擷取電路系統12,該電路系統從記憶體6中擷取程式指令10且將該等指令傳遞至解碼器電路系統14,在該解碼器電路系統中,該等指令被解碼以產生控制信號16,該等信號控制處理器4之操作。更特定而言,控制信號16控制處理電路系統18以執行已解碼的程式指令規定的處理操作。處理電路系統18耦接至向量暫存器電路系統20以用於儲存向量運算元,該等向量運算元具有向量運算元位元大小及包含複數個向量元件。系統配置暫存器22亦耦接至處理電路系統18及用以儲存配置值,該等配置值可在處理電路系統18的軟體控制下經程式化,且該等配置值用以配置處理電路系統18的行為,如用於向量處理指令的向量運算元位元大小,並依據可程式化極限值(programmable limit value; PLV)對向量運算元位元大小的約束。
第2圖示意地圖示向量運算元的兩個示例性形式。第一個示例性向量運算元24是通用向量運算元,如在執行向量程式指令(例如向量運算指令、向量邏輯指令等等)時可用作源運算元或目的運算元。在此實例中,通用向量運算元24圖示為具有512位元的向量運算元位元大小,並圖示為包含八個向量元件,每一向量元件具有64位元的向量元件位元大小。向量元件表示為a0 至a7
第2圖亦圖示向量運算元的另一示例性形式,即向量述詞運算元26。此可能是正在對通用向量運算元24執行的向量處理操作的關聯向量述詞運算元。向量述詞運算元26包含複數個述詞值p0 至p7 ,該等述詞值針對向量程式指令所操縱的向量運算元內對應的向量元件,而控制關聯向量程式指令的執行。舉例而言,述詞值可開啟或關閉通用向量運算元內各個向量元件的關聯向量處理。在圖示實例中,向量述詞運算元具有64位元長度,且各述詞值的長度是8位元。
第1圖的資料處理系統2利用向量暫存器電路系統22的特定實施方式而得以實施,該向量暫存器電路系統22用以儲存向量運算元24、26。實際上,利用本揭示案的處理器架構進行的不同實體實施方式可為向量運算元提供具有不同實施方式受限的最大位元大小。目的為高處理速度的複雜實施方式可為向量運算元提供較大位元大小,如1024個位元。相反,目的在於在操作期間提供更低能耗的處理器實施方式可支援更小的最大向量運算元位元大小,如128位元。期望的是,被寫入用以在資料處理系統2的處理器架構上執行的軟體將能在無需依據用以執行該軟體的特定處理器4的實施方式受限向量運算元位元大小而作任何(或顯著)修改的情況下使用。此外,特定軟體可經測試/驗證以用於特定向量運算元位元大小,且該軟體自身可意欲約束在其執行中使用的向量運算元位元大小,使其不同於(小於)實施方式最大向量運算元位元大小。在利用多個異常級別狀態(例如特權級別)之系統內,期望的是,更高特權級別的軟體應能約束在較低異常級別狀態執行的軟體所使用的向量運算元位元大小,例如已經驗證可正確操作直至達到給定最大向量運算元位元大小的作業系統,可意欲約束在該作業系統下執行的應用程序不超過該作業系統已經驗證的最大向量運算元位元大小。
第3圖示意地圖示在處理器4的特定實施方式下,與不同的異常級別狀態關聯的可程式化極限值。在此實施方式中,實施方式受限的最大運算元位元大小是512。處理器4支援在四個不同異常級別狀態下的執行,即EL0、EL1、EL2及EL3。該等異常級別狀態排列在異常級別狀態階層中,該階層從最低異常級別狀態延伸至最高異常級別狀態EL3。除了最低異常級別狀態以外,每一異常級別狀態具有與自身關聯的一可程式化極限值(PLVx )。在其他示例性實施例(未圖示)中,最低異常級別狀態EL0亦可具有與自身關聯的可程式化極限值(PLV0 )。該等可程式化極限值指示與每一異常級別狀態關聯的向量運算元位元大小。在第3圖的實例中,異常級別狀態EL1具有384位元的可程式化極限值,異常級別狀態EL2具有256位元的可程式化極限值,及異常級別EL3具有512位元的可程式化限制水平。該等可程式化極限值指示將用以執行向量程式指令的最大向量運算元位元大小,該等向量程式指令在相關異常級別狀態下及低於該相關異常級別狀態的全部異常級別狀態下執行。由此,與異常級別狀態關聯的可程式化極限值對在自身異常級別下執行的程式指令之向量運算元大小施加限制,並進一步向在異常級別狀態階層內的更低異常級別執行的程式指令施加此限制。例如,在異常級別狀態EL2執行的超管理器可支援最大向量運算元位元大小256,並此限制將施加於在異常級別EL1下執行的作業系統軟體及在異常級別EL0下執行的應用軟體,儘管如此,其他軟體實例自身亦能夠使用其自身的可程式化極限值可規定的更大的向量運算元位元大小,例如在異常級別狀態EL1下的作業系統。
當要執行向量運算元位元大小相依指令時,則控制所使用的(及由處理電路系統18所使用的)向量運算元位元大小,以便利用受當前選定異常級別狀態的極限值控制的向量運算元位元大小及針對比當前選定選擇級別狀態(自身可或可不經程式化)更靠近階層內最高異常級別狀態的一異常級別狀態而設定的任何(全部)可程式化極限值來執行處理。最低異常級別狀態(在此示例性實施例中)沒有關聯的可程式化極限值,但受控於所有其他異常級別狀態的可程式化極限值,該等其他異常級別狀態皆比最低異常級別狀態更靠近階層內最高異常級別狀態。向量程式指令將正常使用向量運算元位元大小,該向量運算元位元大小具有正在執行的向量運算元位元大小相依指令允許的最大值。此提供更高級別的並行操作。
在特定異常級別狀態下執行的軟體需要決定由於更靠近最高異常級別狀態的異常級別狀態之約束,而使能夠潛在地使用的最大向量運算元位元大小。為實現此目的,解碼器電路系統14及處理電路系統18支援允許的運算元位元大小查詢指令。此允許的向量運算元位元大小查詢指令用以返回向量運算元位元大小指示值,該值由比選定異常級別狀態更靠近階層內最高異常級別狀態的異常級別狀態所約束,在該選定異常級別狀態中,處理電路系統18執行所允許的向量運算元位元大小查詢指令。
因此,在第3圖之此實例中,在異常級別狀態EL0(對應於應用程式所使用的最低異常級別狀態)中執行的允許的向量運算元位元大小查詢指令將返回允許的向量運算元位元大小指示值256,此值受異常級別狀態EL2的可程式化極限值256之約束,儘管異常級別狀態EL0(在此示例性實施例中)沒有關聯極限值,且在異常級別EL1下執行的作業系統的關聯極限值是更高值384。返回的允許的向量運算元位元大小指示值依據與更高異常級別狀態關聯的可程式化極限值而定,而不依據與選定異常狀態關聯的任何可程式化極限值,允許的向量運算元位元大小查詢指令自身在該選定異常狀態下執行。在第3圖的實例中,允許的向量運算元位元大小查詢指令在異常級別狀態EL2下的執行返回允許的向量運算元位元大小指示值512,因為此值是與異常級別狀態EL3關聯的可程式化極限值,儘管與異常級別狀態EL2自身關聯的可程式化極限值是256。允許的向量運算元位元大小查詢指令允許在特定異常級別狀態下執行的軟體決定該軟體可使用的最大向量運算元位元大小,以便設定軟體自身的可程式化極限值或修改軟體行為的某個其他態樣。
第4圖是第3圖中給定的特定實例的廣義版本。在此廣義版本中,有N個異常級別。用於給定異常級別的向量運算元位元大小相依指令的向量運算元位元大小經決定為由異常級別狀態自身的可程式化極限值指示的最小值,且亦具有更靠近階層內最高異常級別狀態的其他可程式化極限值。在異常級別EL0的情況下(在此示例性實施例中),異常級別EL0自身並不具有可程式化極限值,及因此,其向量運算元位元大小經決定為由階層內更高異常級別狀態的全部可程式化極限值指示的最小值。最高異常級別狀態EL(N-1)具有用於其向量運算元位元大小相依指令的向量運算元位元大小,該向量運算元位元大小由其自身可程式化極限值PLV(n-1) 規定。
在第4圖的廣義實例情況下,在返回的向量運算元位元大小指示值情況下,此由與階層內比允許向量運算元位元大小查詢指令自身執行時所在的異常級別狀態更高的異常級別狀態關聯的全部可程式化極限值指示的最小值而給定。在最高異常級別狀態的情況下,返回的允許向量運算元位元大小指示值是處理器4(及向量暫存器電路系統20)的特定實施方式的實施受限向量運算元位元大小。
第5圖示意地圖示系統暫存器22的形式的實例,該等系統暫存器可用以控制上述行為。該等系統暫存器22包括識別暫存器ZIDR_EL1及複數個異常級別配置暫存器ZCR_ELx 。解碼器電路系統14可回應於允許的向量運算元位元大小查詢指令及當前異常級別狀態(從而使得指令與上下文有關)以讀取識別暫存器ZIDR_EL1。從該種暫存器讀取而返回之值是允許的向量運算元位元大小指示值,該值如上針於第3圖及第4圖所述而決定。特定而言,儘管允許的向量運算元位元大小查詢指令的執行可對程式設計師而言看似讀取識別系統暫存器,實際上,可從其他來源提取結果,包括複數個異常級別配置暫存器ZCR_ELx 及實施方式受限最大運算元位元大小。在程式模型中,向量運算元位元大小查詢指令的執行效果將返回識別暫存器位元ZIDR_EL1的最低有效位元。此具有對應於最大允許的向量運算元位元大小指示值的一值,如前所論述。此返回值取決於哪一異常級別配置暫存器ZCR_ELx 是由異常級別狀態控制的,在該異常級別狀態中執行允許的向量運算元位元大小查詢指令。當在最低異常級別狀態中執行時,讀取識別暫存器ZIDR_EL1的嘗試可不返回值,且該指令可隨後被作為觸發未定義指令異常的未定義指令而被處理。與除最低級別異常級別狀態以外的各個異常級別狀態關聯的異常級別配置暫存器ZCR_ELx 係用以儲存可程式化極限值PLVx ,該等值藉由被寫入該等異常級別配置暫存器而設定。對在給定異常級別狀態下執行的異常級別配置暫存器ZCR_ELx 的系統暫存器讀取或寫入指令,經允許可讀取或寫入處於其自身異常級別狀態以及異常級別狀態階層內任何更低的異常級別狀態(更靠近最低異常級別狀態)的異常級別配置暫存器。讀取或寫入更高異常級別狀態的異常級別配置暫存器ZCR_ELx 的嘗試導致未定義指令行為。
在此示例性實例中,可程式化極限值可為4位元值,且用以藉由遞增1及乘以128來指示向量運算元位元大小。顯而易見,亦可使用可程式化極限值與向量運算元位元大小之間由該兩者規定的其他映射,例如規定向量運算元大小為2的乘冪。
第6A圖是流程圖,該圖示意地圖示上下文有關的向量運算元位元大小相依指令的執行。在步驟28中,處理等待直至解碼器14接收到向量運算元位元大小相依指令。在步驟30中,解碼器14隨後產生控制信號16,以控制處理電路系統18及處理器內其他元件,以讀取當前選定的異常級別狀態可程式化極限值,且所有更高異常級別狀態可程式化極限值。在步驟32中,決定該等讀取值的最小值。在步驟34中,執行由向量運算元位元大小相依指令規定的處理(如算術操作、邏輯操作或某個其他操作),該指令將在步驟32中決定的最小值用作向量運算元位元大小。
第6B圖是流程圖,該圖示意地圖示上下文有關的允許的向量運算元位元大小查詢指令的操作。在步驟36中,處理等待直至解碼器電路系統14接收到允許的向量運算元位元大小查詢指令。此允許的向量運算元位元大小查詢指令可為例如讀取識別暫存器ZIDR_EL1。當接收到該種指令時,處理前進至步驟38,在該步驟中,讀取針對所有更高異常級別狀態(及視情況而定,實施方式受限最大向量運算元位元大小)設定的可程式化極限值。步驟40決定步驟38的讀取值的最小值。步驟42返回讀取值的最小值,以作為最大的允許的向量運算元位元大小(允許的向量運算元位元大小指示值)。然後,處理結束。
第7圖是流程圖,該圖示意地圖示在將可程式化極限值PLV寫入系統配置暫存器22中之一者時處理器4的行為。可針對給定異常級別狀態設定的可程式化極限值受針對更高異常級別狀態而設定的可程式化極限值的限制,且該可程式化極限值亦受處理器4的特定實施方式的約束的限制。例如,處理器4的特定實施方式可支援向量運算元位元大小512、256及128,而不支援向量運算元位元大小384。因此,如若對異常級別配置暫存器ZCR_ELx 中之一者的系統暫存器寫入指令正在嘗試定義對應於向量運算元位元大小384的可程式化極限值,則此舉可由異常級別狀態階層內更高的可程式化極限值允許,但無法由處理器4的硬體實施方式允許。在此情況下,回應於系統暫存器寫入指令而儲存在異常級別配置暫存器ZCR_ELx 內的可程式化極限值捨入至下一最低硬體支援向量運算元位元大小。因此,在上述實例中,嘗試寫入對應於384的可程式化極限值可由更高異常級別狀態的可程式化極限值允許,而無法由硬體實施方式而允許,及因此,儲存的值被捨入至下一最低支援向量運算元大小,即256。藉由嘗試將不同的可程式化極限值寫入異常級別配置暫存器,然後回讀已儲存的值,在特定異常級別狀態執行的軟體可決定由於更高異常級別狀態的軟體設定的可程式化極限及硬體實施方式設定的極限,而支援或不支援哪些向量運算元位元大小。
在第7圖的步驟44中,處理等待至解碼器14接收到寫入異常級別配置暫存器ZCR_ELx 的指令。在步驟46中,決定規定的被寫入可程式化極限值是否是由硬體支援的可程式化極限值。執行額外檢查(未圖示)以確保寫入值不與更高異常級別狀態的可程式化極限值衝突。
如若由步驟44中解碼的指令寫入的可程式化極限值被硬體(及軟體控制配置)支援,則步驟48用以將規定可程式化極限值寫入相關狀態配置暫存器。如若將寫入的可程式化極限值在步驟46中經決定不受硬體支援,則處理前進至步驟50,在該步驟中,改為將捨入的可程式化極限值寫入狀態配置值,該狀態配置值已被捨入相關硬體實施方式支援的下一最低值。
第8圖示意地圖示在向量運算元位元大小增大時的處理系統行為。將瞭解,藉由利用可程式化極限值,軟體可動態變更使用中的向量運算元位元大小。該等變更對系統可具有顯著的操作後果,且此為不允許最低異常級別狀態控制其自身向量運算元位元大小的一個原因,以便避免通常在此最低異常級別狀態下執行的應用程式產生不合意行為。
當向量運算元位元大小增大(如回應於可程式化極限值變更,或在異常級別狀態內對於操作的異常級別狀態變更允許使用更大向量運算元位元大小)時,向量運算元的最新可存取部分52變得可被向量處理指令使用。為幫助提供處理系統2的決定性行為,處理系統2藉由以下方式回應於該等向量運算元位元大小增大:使向量運算元的新可存取部分內的值歸零,或替代地確保新可存取部分內的值已保持在當該新可存取部分最後一次可用時該等值所具有的狀態下。
第9圖圖示可使用的虛擬機實施方式。儘管前文描述之實施例利用操作支援相關技術的特定處理硬體的設備及方法而實施本發明,但亦有可能提供硬體裝置的所謂虛擬機實施方式。該等虛擬機實施方式在主機處理器530上執行,該主機處理器執行主機作業系統520,該主機作業系統支援虛擬機程式510。通常,需要大型高效能處理器提供以合理速度執行的虛擬機實施方式,但該種方法在某些環境中可能合理,如在需要執行另一處理器本端的代碼以獲得相容性的情況下,或出於再使用之原因。虛擬機程式510向應用程式500提供應用程式介面,該介面與將由實際硬體提供的應用程式介面相同,該實際硬體是藉由虛擬機程式510模型化的裝置。由此,程式指令(包括上述對記憶體存取的控制)可藉由使用虛擬機程式510而在應用程式500內執行,以模型化指令與虛擬機硬體的交互。
儘管本文已引用附圖詳細描述說明性實施例,但將理解,申請專利範圍並非限定於彼等精確實施例,且熟習該項技術者在不背離本發明範疇及精神的前提下可在本發明內進行多種變更、新增及修改。例如,獨立請求項的特徵可與從屬請求項的特徵進行各種組合。
2‧‧‧資料處理系統
4‧‧‧處理器
6‧‧‧記憶體
8‧‧‧儲存資料
10‧‧‧程式指令
12‧‧‧指令擷取電路系統
14‧‧‧解碼器電路系統
16‧‧‧控制信號
18‧‧‧處理電路系統
20‧‧‧向量暫存器電路系統
22‧‧‧系統配置暫存器
24‧‧‧向量運算元
26‧‧‧向量述詞運算元
28‧‧‧步驟
30‧‧‧步驟
32‧‧‧步驟
34‧‧‧步驟
36‧‧‧步驟
38‧‧‧步驟
40‧‧‧步驟
42‧‧‧步驟
44‧‧‧步驟
46‧‧‧步驟
48‧‧‧步驟
50‧‧‧步驟
500‧‧‧應用程式
510‧‧‧虛擬機程式
520‧‧‧主機作業系統
530‧‧‧主機處理器
第1圖示意地圖示支援藉由使用向量運算元進行向量處理的資料處理系統;
第2圖示意地圖示呈通用向量運算元及向量述詞運算元形式的示例性向量運算元;
第3圖示意地圖示具有複數個異常級別狀態及可程式化極限值的系統內的向量運算元位元大小相依指令及所允許的向量運算元位元大小查詢指令的特定行為實例,該等異常級別狀態及可程式化極限值用於控制與各個異常級別狀態關聯的向量運算元位元大小;
第4圖是第3圖的廣義版本,圖示具有N個異常級別狀態的系統的行為;
第5圖示意地圖示系統配置暫存器,其用以儲存可程式化極限值,且可藉由允許的向量運算元位元大小查詢指令來進行自該系統配置暫存器之上下文有關讀取;
第6A及6B圖是流程圖,該等圖式示意地分別圖示上下文有關向量運算元位元大小相依指令及上下文有關允許向量運算元大小查詢指令的行為;
第7圖是流程圖,該圖示意地圖示寫入可程式化極限值時的行為;
第8圖示意地圖示增大向量運算元大小時的行為;及
第9圖示意地圖示虛擬機實施方式。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無

Claims (15)

  1. 一種用於處理資料之設備,該設備包括: 處理電路系統,用以在一異常級別狀態階層中的一選定異常級別狀態中執行處理操作,該階層在一最高異常級別狀態與一最低異常級別狀態之間延伸;及 解碼器電路系統,用以解碼程式指令,以產生控制信號來控制該處理電路系統以執行該等處理操作,該等處理操作包括藉由使用至少一個向量運算元進行的向量處理操作;其中 該解碼器電路系統可回應於在該選定異常級別狀態中執行的一向量運算元位元大小相依程式指令,以控制該處理電路系統來執行向量處理操作,該等操作取決於該選定異常級別狀態的一向量運算元位元大小極限值,及比該選定異常級別狀態更鄰近該階層內該最高異常級別狀態之一異常級別狀態的至少一個可程式化向量運算元位元大小極限值。
  2. 如請求項1所述之設備,其中該向量運算元位元大小具有一最大值,該值由該選定異常級別狀態的該極限值所允許,且亦由針對在該階層內比該選定異常級別狀態更靠近該最高異常級別狀態的一異常級別狀態設定的任何可程式化極限值所允許。
  3. 如請求項1所述之設備,其中該解碼器電路系統可回應於一允許的向量運算元位元大小查詢指令,以返回一允許的向量運算元位元大小指示值,該指示值受針對在該階層內比該選定異常級別狀態更靠近該最高異常級別狀態的一異常級別狀態設定的任何可程式化極限值所控制。
  4. 如請求項1所述之設備,包括複數個異常級別配置暫存器,該等暫存器儲存各個可程式化極限值,以用於與該階層內的對應異常級別狀態相關聯的該向量運算元位元大小。
  5. 如請求項4所述之設備,包括該階層內每一異常級別狀態的一各個異常級別配置暫存器,排除該最低異常級別狀態。
  6. 如請求項4所述之設備,其中該處理電路系統被允許存取該選定異常狀態的一異常級別配置暫存器,及在該階層內比該選定異常級別狀態更靠近該最低異常級別狀態的異常級別狀態之任何異常級別配置暫存器。
  7. 如請求項3所述之設備,其中,在該處理電路系統處於該最低異常級別狀態時,該處理電路系統被阻止使用該允許的向量運算元位元大小查詢指令來查詢該允許的向量運算元位元大小。
  8. 如請求項1所述之設備,其中該處理電路系統包括向量運算元暫存器電路系統,以儲存向量運算元,該等向量運算元具有高達一實施方式受限向量運算元位元大小,且其中該可程式化極限值控制該處理電路系統以藉由使用一向量運算元位元大小執行該向量運算元位元大小相依指令,該向量運算元位元大小等於或小於該實施方式受限向量運算元位元大小。
  9. 如請求項1所述之設備,其中該向量運算元是以下各者中之一者:一通用向量運算元;及一向量述詞運算元,其規定述詞值以用於控制一向量程式指令的執行。
  10. 如請求項1所述之設備,其中該處理電路系統可回應於對一可程式化極限值設定之一嘗試,以對應於不受該設備支援的一向量運算元位元大小,以將該可程式化極限值設定至一下一個更低向量運算元位元大小,該更低向量運算元位元大小受該設備支援。
  11. 如請求項1所述之設備,其中該處理電路系統可在該選定異常級別狀態發生一變更及至少一個該可程式化極限值發生一變更中之至少一者時,而回應於一向量運算元位元大小增大,在該向量運算元的一新可存取部分中提供以下之一:零值或等於在該新可存取部分上一次可存取之時保存在該部分中之值的值。
  12. 如請求項3所述之設備,其中該允許的向量運算元位元大小查詢指令是一系統暫存器讀取指令。
  13. 一種用於處理資料之設備,該設備包括: 處理手段,用於在一異常級別狀態階層中的一選定異常級別狀態中執行處理操作,該階層在一最高異常級別狀態與一最低的異常級別狀態之間延伸;及 解碼器手段,用於解碼程式指令,以產生控制信號來控制該處理手段以執行該等處理操作,該等處理操作包括藉由使用至少一個向量運算元進行的一或更多個向量處理操作;其中 該解碼器手段可回應於在該選定異常級別狀態中執行的一向量運算元位元大小相依程式指令,以控制該處理手段來執行向量處理操作,該等操作取決於該選定異常級別狀態的一向量運算元位元大小極限值,及比該選定異常級別狀態更靠近該階層內該最高異常級別狀態之一異常級別狀態的至少一個可程式化向量運算元位元大小極限值。
  14. 一種處理資料的方法,該方法包括以下步驟: 利用處理電路系統在一異常級別狀態階層中的一選定異常級別狀態中執行處理操作,該階層在一最高異常級別狀態與一最低的異常級別狀態之間延伸;及 解碼程式指令,以產生控制信號來控制該處理電路系統以執行該等處理操作,該等處理操作包括藉由使用至少一個向量運算元進行的向量處理操作;其中 回應於對在該選定異常級別狀態中執行的一向量運算元位元大小相依程式指令進行解碼,控制該處理電路系統來執行向量處理操作,該等操作取決於該選定異常級別狀態的一向量運算元位元大小極限值,及比該選定異常級別狀態更靠近該階層內該最高異常級別狀態之一異常級別狀態的至少一個可程式化向量運算元大小極限值。
  15. 一種電腦程式,儲存在一非暫時性儲存媒體上,用於控制一電腦以提供一虛擬機執行環境,該環境對應於如請求項1所述之設備。
TW105122999A 2015-07-31 2016-07-21 用於處理資料之設備及方法和電腦程式 TWI710956B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1513512.2 2015-07-31
GB1513512.2A GB2540944B (en) 2015-07-31 2015-07-31 Vector operand bitsize control

Publications (2)

Publication Number Publication Date
TW201712535A true TW201712535A (zh) 2017-04-01
TWI710956B TWI710956B (zh) 2020-11-21

Family

ID=54062957

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105122999A TWI710956B (zh) 2015-07-31 2016-07-21 用於處理資料之設備及方法和電腦程式

Country Status (9)

Country Link
US (1) US10409602B2 (zh)
EP (1) EP3329361B1 (zh)
JP (1) JP6874262B2 (zh)
KR (1) KR102581576B1 (zh)
CN (1) CN107851015B (zh)
GB (1) GB2540944B (zh)
IL (1) IL256440B (zh)
TW (1) TWI710956B (zh)
WO (1) WO2017021680A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2540944B (en) * 2015-07-31 2018-02-21 Advanced Risc Mach Ltd Vector operand bitsize control
GB2562102B (en) * 2017-05-05 2019-09-04 Advanced Risc Mach Ltd An apparatus and method for managing use of capabilities

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE19826826A1 (de) * 1998-06-16 1999-07-15 Siemens Ag Verfahren zum Decodieren und Ausführen von Befehlen in einem RISC-Prozessor
US20030221086A1 (en) * 2002-02-13 2003-11-27 Simovich Slobodan A. Configurable stream processor apparatus and methods
GB2474901B (en) * 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations
US8555034B2 (en) * 2009-12-15 2013-10-08 Oracle America, Inc. Execution of variable width vector processing instructions
GB2478731B (en) * 2010-03-15 2013-08-21 Advanced Risc Mach Ltd Operand size control
JP5720111B2 (ja) * 2010-04-16 2015-05-20 富士通株式会社 情報処理装置
US20110320765A1 (en) * 2010-06-28 2011-12-29 International Business Machines Corporation Variable width vector instruction processor
PL3422178T3 (pl) * 2011-04-01 2023-06-26 Intel Corporation Przyjazny dla wektorów format instrukcji i jego wykonanie
GB2489914B (en) * 2011-04-04 2019-12-18 Advanced Risc Mach Ltd A data processing apparatus and method for performing vector operations
WO2012138950A2 (en) * 2011-04-07 2012-10-11 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9495162B2 (en) * 2011-12-23 2016-11-15 Intel Corporation Apparatus and method for performing a permute operation
WO2013101132A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
US9594724B2 (en) * 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
US20140281418A1 (en) * 2013-03-14 2014-09-18 Shihjong J. Kuo Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions
US9348589B2 (en) * 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9552209B2 (en) * 2013-12-27 2017-01-24 Intel Corporation Functional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
GB2540944B (en) * 2015-07-31 2018-02-21 Advanced Risc Mach Ltd Vector operand bitsize control

Also Published As

Publication number Publication date
CN107851015B (zh) 2022-04-26
GB2540944B (en) 2018-02-21
WO2017021680A1 (en) 2017-02-09
KR20180034471A (ko) 2018-04-04
EP3329361A1 (en) 2018-06-06
GB2540944A (en) 2017-02-08
JP6874262B2 (ja) 2021-05-19
GB201513512D0 (en) 2015-09-16
KR102581576B1 (ko) 2023-09-22
US20180203699A1 (en) 2018-07-19
JP2018521421A (ja) 2018-08-02
EP3329361B1 (en) 2020-08-05
TWI710956B (zh) 2020-11-21
IL256440B (en) 2020-03-31
IL256440A (en) 2018-02-28
CN107851015A (zh) 2018-03-27
US10409602B2 (en) 2019-09-10

Similar Documents

Publication Publication Date Title
JP6807383B2 (ja) 転送プレフィックス命令
US9804851B2 (en) Operand size control
JP6006248B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
KR102590679B1 (ko) 벡터 요소들 내부의 비트 값들의 시험
GB2482701A (en) Detecting and suppressing illegal mode changes in a data processing system
TWI733798B (zh) 在執行向量操作時管理位址衝突的設備及方法
WO2012136975A1 (en) A data processing apparatus and method for performing vector operations
KR20130098303A (ko) 정렬 제어
TWI739754B (zh) 向量運算指令
TW201712535A (zh) 向量運算元位元大小控制
CN107851022B (zh) 向量长度查询指令
CN114902336B (zh) 具有子字段最小和最大箝位的内容可寻址存储器
JP7377208B2 (ja) データ処理