TWI732775B - 用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機 - Google Patents

用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機 Download PDF

Info

Publication number
TWI732775B
TWI732775B TW105124011A TW105124011A TWI732775B TW I732775 B TWI732775 B TW I732775B TW 105124011 A TW105124011 A TW 105124011A TW 105124011 A TW105124011 A TW 105124011A TW I732775 B TWI732775 B TW I732775B
Authority
TW
Taiwan
Prior art keywords
data
vector
instruction
processing
data vector
Prior art date
Application number
TW105124011A
Other languages
English (en)
Other versions
TW201710887A (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 TW201710887A publication Critical patent/TW201710887A/zh
Application granted granted Critical
Publication of TWI732775B publication Critical patent/TWI732775B/zh

Links

Images

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/3016Decoding the operand specifier, e.g. specifier format
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/30018Bit or string 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/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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30094Condition code generation, e.g. Carry, Zero 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/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

資料處理裝置包括:處理電路系統,該處理電路系統根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該處理電路系統包括:指令解碼器電路系統,其用於解碼程式指令;以及指令處理電路系統,其用於執行由該指令解碼器電路系統解碼的指令;其中該指令解碼器電路系統響應於傳播指令而控制該指令處理電路系統,以便取決於適用於按照該資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的。

Description

用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬 機
本揭示案係關於資料處理裝置和方法。
一些資料處理佈置允許進行向量處理操作,涉及施加單一向量處理指令至資料向量的資料項,該資料向量中的相應位置處具有複數個資料項。相較而言,純量處理有效地作用於單一資料項而非資料向量。
向量處理可用於其中對待處理資料的許多不同實例進行處理操作的情況。在向量處理佈置中,可將單一指令同時施加至(資料向量的)多個資料項。此可相較於純量處理改良資料處理的效率和處理量。
在一個示例性佈置中,提供了一種資料處理裝置,該資料處理裝置包括:處理電路系統,該處理電路系統用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該處理電路系統包括: 指令解碼器電路系統,其用於解碼程式指令;以及指令處理電路系統,其用於執行由該指令解碼器電路系統解碼的指令;其中該指令解碼器電路系統響應於傳播指令而控制指令處理電路系統,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於在先資料向量的一或多個最後述詞旗標無效時,該組中適用於當前資料向量的所有導出的述詞旗標皆為無效的。
在另一示例性佈置中,提供了一種資料處理裝置,該資料處理裝置包括:用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項的構件,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該用於施加的構件包括:用於解碼程式指令的構件;以及用於執行由該用於解碼的構件解碼的指令的構件;該用於解碼的構件響應於傳播指令而控制該用於執行的構件,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於在先資料向量的一或多個最後述詞旗標無效時,該組中適用於當前資料向量的所有導出的述詞旗標皆為無效的。
在另一示例性佈置中,提供了一種資料處理方法,其包括: 根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該施加步驟包括: 解碼程式指令;以及 執行由該解碼步驟解碼的指令; 該解碼步驟響應於傳播指令而控制該執行步驟,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於在先資料向量的一或多個最後述詞旗標無效時,該組中適用於當前資料向量的所有導出的述詞旗標皆為無效的。
在另一示例性佈置中,提供了一種虛擬機,其包括:資料處理器,該資料處理器用於執行包括機器可讀取指令的電腦程式,其中電腦程式之執行使得該資料處理器作為資料處理裝置來操作,該資料處理裝置包括: 處理電路系統,該處理電路系統用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該處理電路系統包括: 指令解碼器電路系統,其用於解碼程式指令;以及 指令處理電路系統,其用於執行由該指令解碼器電路系統解碼的指令; 其中該指令解碼器電路系統響應於傳播指令而控制指令處理電路系統,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於在先資料向量的一或多個最後述詞旗標無效時,該組中適用於當前資料向量的所有導出的述詞旗標皆為無效的。
在參照附圖論述實施例之前,提供以下對實施例的描述。
一個示例性實施例提供了一種資料處理裝置,該資料處理裝置包括: 處理電路系統,該處理電路系統用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該處理電路系統包括: 指令解碼器電路系統,其用於解碼程式指令;以及 指令處理電路系統,其用於執行由該指令解碼器電路系統解碼的指令; 其中該指令解碼器電路系統響應於傳播指令而控制指令處理電路系統,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於在先資料向量的一或多個最後述詞旗標無效時,該組中適用於當前資料向量的所有導出的述詞旗標皆為無效的。
示例性實施例可用於以下情況:其中多個資料向量待處理,並且其中與一個資料向量關聯的狀態對是否應當對下一資料向量進行操作有影響。傳播指令可從適用於在先向量的彼等述詞旗標導出一組述詞旗標。示例性情況可在「展開」循環操作的情形(其中以單一循環迭代來處理多個資料向量)下發生,但是該佈置亦適用於其他情況。若偵測到關於一個資料向量的循環中斷條件,則可藉由使用述詞旗標來對彼資料向量進行處理。該傳播指令可提供將彼結果傳播至相同循環迭代中的後續資料向量的方式。
在示例性實施例中,指令解碼器電路系統響應於傳播指令而控制指令處理電路系統,以便響應於適用於當前資料向量的該組述詞旗標之初始狀態,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標為有效的時,該組中適用於該當前資料向量的該等導出的述詞旗標來源於其相應的初始狀態。
在示例性實施例中,指令解碼器電路系統響應於傳播指令而控制指令處理電路系統,以便響應於另一組述詞旗標,從而定義述詞旗標中與在先資料向量相關聯的哪些述詞旗標適用於彼在先資料向量。
在其中指令解碼器電路系統響應於傳播指令而控制指令處理電路系統以根據具有對應於每一述詞旗標的資料集項的資料集產生適用於當前資料向量的述詞旗標組之初始狀態的示例性實施例中,待傳播(或者不傳播)的述詞可本身藉由傳播指令導出。在示例性實施例中,每一資料集項具有多個可能的狀態;並且指令解碼器電路系統響應於傳播指令而控制指令處理電路系統產生適用於當前資料向量的述詞旗標組之初始狀態,其中述詞旗標被設定成直至在資料項次序中緊接在第一次出現相應資料集項之特定狀態之前的述詞旗標為有效狀態。例如,處理電路系統可被配置用於產生資料集作為向量處理操作(諸如比較操作)之輸出。
在示例性實施例中,所傳播的述詞可用作循環中斷控制之部分,其中處理電路系統被配置用於執行循環操作並產生資料集作為對循環操作之繼續執行的測試;並且處理電路系統被配置成若該組中適用於當前資料向量的一或多個最後的述詞旗標為無效則終止循環操作。
在示例性實施例中,有效的述詞旗標指示應該施加向量處理指令,並且無效的述詞旗標指示不應施加向量處理指令。
一個示例性實施例提供了一種資料處理裝置,該資料處理裝置包括: 用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項的構件,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該用於施加的構件包括: 用於解碼程式指令的構件;以及 用於執行由該用於解碼的構件解碼的指令的構件; 該用於解碼的構件響應於傳播指令而控制該用於執行的構件,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的。
一個示例性實施例提供了一種資料處理方法,該資料處理方法包括: 根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加向量處理操作至該等位置處的資料項,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,該施加步驟包括:解碼程式指令;以及執行由該解碼步驟解碼的指令; 該解碼步驟響應於傳播指令而控制該執行步驟,以便取決於適用於按照資料向量處理次序的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的。
一個示例性實施例提供了一種虛擬機,該虛擬機包括:資料處理器,該資料處理器用於執行包括機器可讀取指令的電腦程式,其中電腦程式之執行使得該資料處理器作為資料處理裝置來操作,該資料處理裝置包括: 處理電路系統,該處理電路系統用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加一向量處理操作至該等位置處的資料項,該等資料向量具有一資料向量處理次序,每一資料向量包括具有一資料項次序的複數個資料項,該處理電路系統包括: 指令解碼器電路系統,其用於解碼程式指令;以及 指令處理電路系統,其用於執行由該指令解碼器電路系統解碼的指令; 其中該指令解碼器電路系統響應於一傳播指令而控制該指令處理電路系統,以便取決於適用於按照該資料向量處理次序的一在先資料向量的一組述詞旗標而導出適用於一當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的。
現參照圖式,第1圖示意性地圖示資料處理系統10,該資料處理系統10包括處理器20,該處理器20耦接至儲存資料值32及程式指令34的記憶體30。處理器20包括指令提取單元40,該指令提取單元40用於從記憶體30提取程式指令34並且將所提取的程式指令供應給解碼器電路系統50。解碼器電路系統50解碼所提取的程式指令並且產生控制信號來控制向量處理電路系統60,以按所解碼的向量指令所規定對儲存在向量暫存器電路系統70內的向量暫存器執行向量處理操作。
處理器20還包括與純量暫存器90相關的純量處理電路系統80。
純量處理與向量處理之間的一般性區別如下。向量處理涉及施加單一向量處理指令至資料向量的資料項,該資料向量中的相應位置處具有複數個資料項。純量處理有效地作用於單一資料項而非資料向量。
向量處理可用於其中對待處理資料的許多不同實例進行處理操作的情況。在向量處理佈置中,可將單一指令同時施加至(資料向量的)多個資料項。此可相較於純量處理改良資料處理的效率和處理量。
以下論述涉及示例性程式指令34。本揭示案的實施例包括例如為第1圖所示類型的裝置,該裝置可操作或被配置用於解碼和執行此類程式指令。第1圖因此提供了用於根據與資料向量內的各位置相關聯的一組相應述詞旗標(在下文論述)之狀態來選擇性地施加向量處理操作至該等位置處的資料項的處理電路系統的一個實例,該等資料向量具有資料向量處理次序,每一資料向量包括具有資料項次序的複數個資料項,處理電路系統包括:指令解碼器電路系統,其用於解碼程式指令;以及指令處理電路系統,其用於執行由指令解碼器電路系統解碼的指令;其中指令解碼器電路系統響應於指令而控制指令處理電路系統實行將在下文論述的功能。
第2圖示意性地圖示將資料作為多個資料向量處理。在此佈置中,一組資料項100意欲按照處理次序110處理。資料項100事實上被作為相繼資料向量120處理,以便在向量處理操作中,將單一向量處理指令同時施加至資料向量中的所有資料項(例如,4個資料項,8個資料項,或者特定系統的任意向量長度)。
有鑒於此,每一資料向量120保留資料項處理次序130,並且向量之間存在向量處理次序140,使得若在處理期間需要參考原始處理次序110,則此可藉由考慮按照向量處理次序140的資料向量並考慮每一資料向量內按照資料項處理次序130的資料項來實現。此考慮(至少)與循環處理之終止相關,如下文所論述。
第3圖為示意性流程圖,圖示向量處理佈置中的循環操作。在步驟200處,建立初始參數。在此的一個簡單實例為例如藉由操作純量處理電路系統80將循環控制變數設定為如0的初始值。
在步驟210處,進行關於當前資料向量的一或多個處理操作。當前資料向量可例如根據儲存在記憶體中的資料32之相連區塊而定義如下: VectorA=資料[SA+i...SA+i+VL -1] 其中變數i為循環控制變數,變數SA為資料之相連區塊的起始位址並且變數VL 為適用於使用中的特定處理系統的向量長度。換言之,在此實例中,位址(SA+i)與位址(SA+i+VL -1)之間的相連資料項群組包括性地形成向量VectorA之VL 個資料項。
在其他實例中,可以使用所謂集聚資料向量,其中提供指向記憶體中的兩個或更多個非相連位置的一組指標以便填充該資料向量。類似地,在將資料向量寫回到主記憶體中時,可使用所謂的散佈方法(scatter process)以將資料項寫回到非相連的記憶體位置。此類佈置不會以其他方式影響在此所描述的方法的操作方式,並且因此出於本發明的目的將假設連續的資料集(無論是否相連地儲存)。然而,應注意,使用無效述詞旗標(在下文論述)以避免從或至主記憶體的不必要聚集或分散操作可減少向量處理操作之處理額外負擔。
可在步驟210處進行一或多個各種不同類型的向量處理操作。例如,可針對VectorA的資料項進行向量處理操作,以產生被作為第二資料向量VectorB的資料項儲存的結果。
在步驟220處,使計數器或循環控制變數增量,以便使循環操作向前移動。在此,術語「增量」並非僅代表增加1,而是可以代表增加另一值。事實上,在本發明的實例中使循環控制變數增量向量長度VL
在步驟230,系統偵測是否繼續循環操作,或者換言之,循環控制變數是否已達到對於彼循環所定義的終點。如果循環操作應當繼續進行,則控制返回到步驟210。在步驟220處亦設定其他參數,並且處理的此部分之實例將在下文論述。否則,處理結束。
關於是否繼續循環操作的決策可採用條件跳躍、分支或者改變程式流程(例如返回到步驟210)的其他指令的形式,其中可例如指示條件,但是一或多個處理器條件旗標(例如,N、Z、C與V旗標)基於指令(諸如下文將論述之WHILE指令)的執行。因此,WHILE指令具有設定一或多個條件旗標之效果,以控制單獨的(條件分支或跳躍)指令是否實際上改變程式流程繼續循環或者不繼續循環。(但是在其他實例中,設想為WHILE指令亦可進行跳躍或分支)。
在程式指令意欲由向量處理電路系統之不同實例(在沒有再編譯處理的情況下)執行的情況下(其中彼等不同實例可具有不同的可用向量長度VL ),提供佈置來控制循環操作可為有用的,該等循環操作根據藉由其執行指令之向量處理電路系統之任何可用長度VL 來操作。(一個替代方案為將象徵性的VL 固定為向量處理電路系統之不同實例中可能遇到的最低水平,此替代方案可為低效率的,因為其未使用一些示例可用的較大向量長度。)在本文所論述的示例性佈置中,不是使用純量操作來控制循環操作,而是使用述詞旗標(在下文論述)。
第4圖示意性地圖示述詞旗標控制向量處理操作之用途。
可存在其中單一向量處理操作應當以不同方式施加到資料向量內的不同資料項的情況。向量處理電路系統60藉由使用所謂的述詞旗標來提供此情況。述詞旗標包括針對資料向量內的每一資料項位置所提供的旗標資訊,以指示是否應當針對彼資料項位置進行處理操作。在各實例中,向量處理電路系統60可存取多組述詞旗標,使得任何特定的向量處理操作可涉及將一或多組述詞旗標作為彼向量處理操作之參數。
參照第4圖,示例性佈置使用包括四個資料項的資料向量(VL =4),但是應理解該等佈置可施加於不同的向量長度。示例性輸入資料向量250(VectorA)為向量處理操作260之標的,因此在沒有藉由述詞旗標的任何控制的情況下,向量處理操作260將被施加至每一資料項位置。然而,亦提供與每一資料項位置或者「通道(lane)」一一對應的一組述詞旗標270來控制向量處理操作。
根據向量處理操作260處理輸入向量(向量A)之資料項252,以產生輸出資料向量280(向量B)之資料項282。若對應於輸出資料向量280中的一個資料項位置的述詞旗標272被設定為「有效」(例如,值為1)。若一個輸出向量位置的對應述詞旗標被設定為「無效」(例如,值為0),則不對彼輸出向量位置進行向量處理操作260。
如上文所論述,在本發明的實例中,述詞旗標控制是否對關於輸出資料向量280的特定輸出位置或者「通道」進行向量處理操作。然而,在其他實例中,可使用述詞旗標來控制是否使用輸入向量(或者一或多個輸入向量)250中的資料項位置。
此因此提供了以下實例:具有有效狀態的述詞旗標指示應當將向量處理指令施加至資料向量中對應於處於有效狀態之述詞旗標的彼等位置。無效狀態指示不應如此施加向量處理操作。
若由於無效述詞旗標而不對特定的輸出向量位置282進行向量處理操作,則在一些實例中可將固定值如0插入彼輸出位置。在其他實例中,無論彼輸出位置的先前內容是什麼,其均可保留不變。
以此方式使用述詞旗標由此提供了以下實例:根據與包括複數個資料項之資料向量中的相應位置相關聯的相應述詞旗標之狀態,施加向量處理指令至該資料向量中包含處於該等位置處的複數個資料項之一資料向量中的一或多個資料項。
本發明的實例允許在循環操作之控制中使用述詞旗標,如在第3圖中所示意性圖示的。第5圖和第6圖將用於解釋此類操作之態樣。
循環操作之特徵為在循環控制變數的控制下按照資料項處理次序處理大量資料項,直至循環控制變數達到特定上限,在此上限點處循環在第3圖中的步驟230處終止。純量處理循環的一個實例藉由以下示意性偽碼提供: For i=0 to 97 Process Data [i] Next i
在此,循環操作以設定為0的循環控制變數開始,並且繼續直至循環控制變數i達到97之值。換言之,總計處理了98個資料項。
可替代地使用如參照第3圖所論述的向量處理來執行循環操作,以便每次處理一個向量的資料項。此可藉由允許多個資料項之群組由單一向量處理指令處理來提供效率。
例如,在系統中的向量長度VL 為4的情況下,如此每一資料向量含有四個資料項,則循環操作中的前96個資料項可由恰好24(=96/4)個向量處理操作處理。然而,若要處理四個資料項中的完整的第25個向量,則此將使處理資料項之數目達到100,此超出了所需的循環操作。
而是,最終的向量處理操作應該僅針對第97個及第98個資料項(按照處理次序110)操作,而非針對按照處理次序110的第99個及第100個資料項。
示例性實施例提供「WHILE」指令來控制向量處理電路系統60,以便施加向量處理指令至至少部分地由控制變數(諸如,循環控制變數)限定的資料向量中的一或多個資料項。WHILE指令響應於控制變數而選擇述詞旗標中的一或多個來設定成有效狀態,使得所處理的資料項之數目不會超過循環上限。
使用此佈置的實例圖示在第5圖中,第5圖示意性地圖示將在上文論述的示例性循環操作處理的最後三個資料向量,其中(僅出於此實例的目的)將處理98個資料項,並且VL =4。
如上文所論述,在98個資料項的示例性循環中,每次處理一個資料向量中的資料項,並且假定在此實例中資料向量長度VL 為4個資料項,則循環計數器將從0開始並且以VL 為單位前進(0、4、8、12……)。關於以此方式前進的循環計數器的最後三個實例的情形示意性地圖示於第5圖中,亦即在此處循環計數器被設定為88、92以及隨後96的彼等示例。圖示了適用於該等情形中的每一情形的述詞旗標300、310、320,其中邏輯值1指示「有效」並且邏輯值0指示「無效」。
藉由「WHILE」指令根據述詞旗標之預定次序來設定述詞旗標,該等述詞旗標之預定次序對應於每一資料向量之資料項處理次序130。
當i=88時,WHILE指令偵測到所有四個述詞旗標可被設定為1(有效的),並且作為將彼等述詞旗標設定為1的結果所處理的資料項之總數仍將小於循環上限值97。類似地,當i前進到92時,WHILE指令偵測到所有四個述詞旗標310可被設定為1,並且仍然,在處理資料向量結束時,所處理的資料項之數目(96)仍將小於98之所需總數。
在第5圖中圖示的第三個實例中,循環控制變數i被設定為96。「WHILE」指令作偵測以遵循97之循環上限,在該循環的此最終向量處理操作中僅處理兩個資料項。WHILE指令因此將前兩個述詞旗標(按照處理次序130)設定為1並且將另外兩個述詞旗標(按照次序130)設定為0,以便步驟210處的處理操作將根據彼等述詞旗標來進行並且仍然不超過由循環控制變數i之上限所限定的操作總數。
作為WHILE指令操作的部分,WHILE指令亦提供步驟230之功能性的至少一部分並且將一或多個條件旗標設定成控制只要仍然有處理操作待執行(亦即,在步驟220處傳遞至WHILE指令的i值小於循環控制變數上限(在此實例中為97)),就將控制返回至第3圖之步驟210。
此因此提供了以下實例:WHILE指令當被執行時,選擇述詞旗標中的一或多個來設定成有效狀態,使得在考慮被選擇設定成有效狀態的述詞旗標之數目的情況下,控制變數值不會突破算術條件。在此,「考慮」可意指,在增量計數器的情況下,增加當前計數器值,並且在減量計數器的情況下,減去當前計數器值。可根據述詞旗標之預定次序,例如次序130,來選擇該等述詞旗標中被設定為有效狀態的一或多個述詞旗標。
第6圖為示意性流程圖,圖示由WHILE指令根據計數器變數設定述詞旗標。
在第6圖中,在步驟330處,WHILE指令偵測當前的計數器(循環控制變數)值及極限值(在本發明的實例中分別為i及97)。在步驟340處,WHILE指令填充(populate)述詞旗標,使得循環控制變數之值加上(在此實例中)被選擇設定為有效狀態的述詞旗標之數目不會突破循環控制變數之上限。
當然,應理解的是,在其他實例中,循環控制變數可遞減計數而非遞增計數,在遞減計數的情況下極限值將為下限值而非上限值。類似地,在步驟340處由WHILE指令施加的算術測試將為關於控制變數是否大於下限值的測試。亦應當理解的是,可施加「小於或等於」或者「大於或等於」測試,例如以使得在小於極限值的一個示例中循環操作終止。一般而言,由WHILE指令施加的算術條件可為選自由以下項組成的清單的條件: •  控制變數小於上限值; •  控制變數大於下限值; •  控制變數小於或等於上限值;以及 •  控制變數大於或等於下限值。
第7圖示意性地圖示所謂的「展開」循環。
在不存在展開的情況下,循環操作的每一次迭代執行值得處理的單個資料向量。循環隨後前進到下一循環位置並且對下一值得處理的資料向量進行處理,等等。
「展開」一循環涉及處理單一循環迭代中的多個連續資料向量。進行循環展開,例如以便提高效率,因為啟動及終止循環之每一迭代所涉及的處理額外負擔隨後將在多個資料向量之處理之間共享。
在第7圖中,出於循環處理目的,而將具有資料處理次序410的待處理資料400佈置成各自具有向量長度VL 的多個資料向量。在所圖示的實例中,VL 等於4,但是當然可根據使用中的向量處理電路系統60之參數而使用不同的值。
操作類似於參照第3圖所描述的彼等操作,只不過在每一循環迭代處處理多個資料向量。因此,在步驟420處,以與第3圖之步驟200類似的方式設定初始參數。例如,將循環控制變數或者計數器初始化為0。隨後,在步驟430、440、450及460處,使多個連續的資料向量經受相同的處理。步驟430涉及處理資料400內具有由循環控制變數i限定的起始位置的資料向量。步驟440施加相同的處理,但是是針對資料400中具有由i+VL 限定的起始位置的資料向量,等等。應理解的是,在循環之每一迭代中處理的資料向量之數目可為大於或等於2的任何數值,並且在此實例中4個資料向量的使用僅出於此解釋目的。在步驟470處,使循環控制變數i前進n×VL ,其中n為在所展開循環的每一迭代處處理的資料向量之數目。在步驟480處,WHILE指令設定參數(結合第5圖及第6圖所論述的述詞旗標)並且偵測是否設定一或多個條件旗標以便繼續循環或者不繼續循環。若繼續循環,則控制再次進行至步驟430(例如,由WHILE指令設定旗標,諸如條件旗標,以及響應於彼條件的條件跳躍或分支指令),並且若不繼續循環,則處理遵循結束程序。
結合對第5圖及第6圖之描述閱讀第3圖及第7圖之流程圖提供了解碼之實例(例如,由解碼器電路系統50解碼):WHILE指令(如所論述,在步驟230、480處)控制向量處理器根據與資料向量中的相應位置相關聯的相應述詞旗標之狀態,施加向量處理指令至至少部分地由控制變數限定的資料向量中的一或多個資料項,同時將算術條件施加至該控制變數,其中該資料向量包括在該等位置處的複數個資料項;並且CHANGE指令取決於當前被設定為特定狀態的述詞旗標的數量而使控制變數值改變(例如,在步驟220或者步驟470處)一定量,該CHANGE指令具有關聯的飽和值,以使得CHANGE指令的執行使控制變數值改變為不超出飽和值;以及執行(例如,由向量處理電路系統60及/或純量處理電路系統80執行)由指令解碼器解碼的指令。
步驟230、480提供以下實例:WHILE指令當被執行時,使處理器繼續迭代地執行處理循環,同時例如藉由如上文所論述地設定一或多個條件旗標來將算術條件施加至控制變數。
第8圖及第9圖示意性地圖示可由計數器變數表示的值。在第8圖的情況下,計數器變數為帶符號的變數,使得可表示在下限-VAL與上限+VAL之間之值。在第9圖的情況下,計數器變數為不帶符號的,使得可表示在0及上限+VAL之間之值。應注意的是,在第8圖的情況下,上限和下限可具有不同的量值,因此下限為-VAL1 而上限為+VAL2 ,其中|VAL1 |與|VAL2 |為不同的(其中|x|表示x的模數或者量值)。例如,在8位元帶符號的二的補碼表示中,-VAL1 可為-127並且+VAL2 可為+128。類似地,第9圖中的上限+VAL不一定與第8圖中的上限+VAL相同。但是在任一情況下,所說明的原理為計數器變數之性質可由其可表示的數值上限及下限來指示。
第10圖及第11圖為示意性流程圖,分別圖示增量及減量指令之操作。
參照第10圖,在步驟500處,增量指令取決於型樣(將在下文中進一步描述)乘以因數MUL而使變數(諸如,循環控制變數)增大一定量,其中在展開循環之步驟(諸如步驟470)中此類指令的使用實例中,值MUL可被設定為在循環的一次迭代中所處理的連續資料向量的數目。
在步驟510處,增量指令在可由變數表示的最高值處飽和。該飽和步驟係關於以下。若步驟500之結果仍然小於可由彼變數表示的最高值(諸如+VAL),則步驟500之輸出被作為增量指令之結果返回。另一方面,若步驟500之輸出將超出可由彼變數表示的最高值,使得(例如)該變數將繞回(wrap round)(超出可用於彼變數的位元數)或者從其他可表示的極限值重新開始,則步驟510飽和或者結束(cap)該增大,以便不會達到或者不會超出作為由指令之執行返回的輸出的可表示之最大值(諸如+VAL)。
在其中在步驟230或者480處使用「WHILE」或者類似操作或指令的情況中,該飽和(無論是在步驟470中使用MUL因數,還是在步驟220中不使用MUL因數)可為相關的,以使得當循環控制變數或者計數器遵循算術條件時就繼續執行循環。在具有上限的向上計數之計數器的實例中,算術條件可為例如計數器值是否小於(或者小於或等於)特定極限值。然而若未使用飽和特徵,則潛在風險為該計數器將超出可由計數器變數表示的最大值,並且「繞回」或者在可由計數器變數表示的最小(或者另一)值處重新開始。因為計數器以VL 為單位前進,所以「WHILE」運算測試可在一次循環迭代處(正確地)通過,並且隨後對於下一次此類測試,計數器可繞回而使測試將在下一迭代處(不正確地)通過。
作為舉例,若計數器變數被保持為不帶符號的簡單8位元值,則在沒有飽和特徵的情況下,計數器可在繼續從0向上計數之前達到255之最大計數。假定MUL×VL 為8,則計數器以8為單位前進,並且循環之結束由i=253限定。在步驟230或者480處使用「小於」測試將不再有用,因為繞回值(0或者接近於0)之值(假設)將通過測試,而測試本應由於計數器將在i=248處通過測試而中斷,但是在下一迭代處i將繞回至0並且因此再次(不正確地)通過「小於」測試。飽和特徵將使計數器在255處於其最終迭代中飽和,因此計數器i將(正確地)通不過「小於253」測試。
現將論述「型樣」參數。此取決於可用述詞旗標之數量而提供了改變量,該改變量轉而提供根據向量長度而自動縮放的佈置,從而有助於允許相同的程式指令被具有不同可用向量長度的向量處理電路系統之實例執行,而無需中間再編譯。
「改變」指令,當在諸如步驟220或者470的情形中使用時,至少取決於倍增因數MUL(其可為1或者可大於1,例如可由3位元參數表示的值,例如1…8)而使變數改變(增量或者減量)一定量。改變(增量或減量)之量亦取決於表示為VL 的述詞旗標數量。例如,若每一述詞旗標對應於一個資料項,則可進行MUL×VL 之合適的改變。但是在其他實例中,個別資料項可為第一實例中的兩倍大(例如,以半字代替位元組),因此可能僅每隔一個述詞旗標可被有效地使用。在此種情況中,VL 的有效值可為述詞旗標數目的一半大,在此情形中改變量應當為(MUL×述詞旗標之數目/2)。
CHANGE指令根據型樣偵測述詞旗標之數目,並且(在乘以MUL之後)使變數增量或者減量彼數目。型樣可例如為每隔一個述詞旗標,或者每隔四個述詞旗標之型樣,或者為具有預設「所有述詞旗標」的各種其他型樣。此佈置提供自調節的增量或者減量指令,使得改變量取決於可用於其上執行指令的系統的述詞旗標之數目。又,此意味相同的指令可用於具有不同可用向量長度的不同系統,因為增量或者減量指令將調節至當前可用的向量長度。
因此,此提供以下實例:CHANGE指令當被執行時,取決於述詞旗標之數目中的所選子集及該改變值而使變數值改變一定量。應注意的是,如所提及的,該子集可實際上為「所有」。
第11圖為示意性流程圖,圖示減量指令之類似操作,以使得在步驟520處從變數(如循環控制變數)減去型樣數量與因數MUL之乘積(或者其他組合),並且在步驟530處使結果在可由彼變數表示的最小值處飽和,或者換言之達到但是限制為任意小於可由彼變數表示的最小數量。
應注意的是,計數器I可為純量變數並且因此可由純量處理電路系統80處理(更新及測試),或者可作為資料向量或者資料向量之部分而被處理,並且因此可由向量處理電路系統60處理。
第10圖及第11圖因此提供了執行具有改變值(諸如MUL)作為指令參數的「改變」指令之實例,CHANGE指令取決於述詞旗標之數目並且取決於該改變值而使變數值改變一定量。
第1圖之裝置,當執行對應於在第10圖或第11圖之流程圖中圖示之彼等的操作時,提供資料處理裝置之實例(諸如,裝置10),該資料處理裝置包括:向量處理電路系統(諸如電路系統60,其與暫存器70協同操作),其根據與在相應位置處包括複數個資料項的資料向量中的該等位置相關聯的相應述詞旗標之狀態,而施加向量處理指令至該資料向量中的該一或多個資料項;指令解碼器(諸如解碼器電路系統50),其用於解碼具有改變值(諸如MUL)作為指令參數的CHANGE指令(例如,其由第10圖或第11圖的流程圖表示),該CHANGE指令當被執行時,取決於述詞旗標之數目並且取決於該改變值而使變數(諸如,循環控制變數)之值改變一定量;以及指令處理器(諸如純量處理電路系統 80或者向量處理電路系統60),其用於執行由指令解碼器解碼的指令。例如,CHANGE指令當被執行時,可取決於依賴於述詞旗標之數目的值與改變值之乘積而使變數值改變一定量。
如關於步驟510、530所論述,CHANGE指令可具有關聯飽和值,使得CHANGE指令當被執行時使變數值改變不超出飽和值。如參照第8圖及第9圖所論述,在使用減量指令減小變數值的情況下,飽和值可為可由變數表示的最小值。在使用增量指令增大變數值的情況下,飽和值可為可由變數表示的最大值。
當此類指令用於例如第7圖之循環操作中的步驟470的情況中時,其中變數為計數器變數,向量處理電路系統在處理循環之一次或多次迭代期間施加向量處理指令至至少部分地由計數器變數限定的資料向量,指令解碼器可被配置用於解碼指令(例如,對應於步驟480)以偵測是否繼續取決於計數器變數迭代地執行處理循環。此類指令可為例如用於設定條件旗標的「WHILE」指令,以便控制處理電路系統繼續迭代地執行處理循環,同時將算術條件施加至計數器變數。算術條件之實例包括:計數器變數小於上限值;計數器變數大於下限值;計數器變數小於或等於上限值;以及計數器變數大於或等於下限值。
第12圖為示意性流程圖,圖示向量處理操作,其中在步驟550處執行向量操作,並且在步驟560處產生關於向量處理操作之輸出的結果之資料集。
僅作為實例,向量處理操作可為比較當前資料向量之每一資料項與固定值。若比較為真,則結果之資料集中的相應位元(在相應位置處)被設定為1;否則將其設定為0。
此類型之操作及上文所論述之述詞旗標,可用於循環控制之另一態樣,亦即取決於在循環中進行的處理操作之結果來處理中斷循環或者從循環退出。
如先前所論述,在至少一些情況下,由向量化操作處理的資料100(第2圖)可仍然被視為具有逐資料項之處理次序110。可按照次序110將「中斷條件」施加至所處理的資料項。在純量系統中,在中斷條件下,循環之處理應當在處理該循環期間第一次發生該條件被偵測為真的情況時終止。
但是若以向量化方式(逐資料向量)進行處理,則由單一向量處理指令同時處理多個資料項。為了在純量循環中重複中斷條件之使用,此意謂需要按照資料項處理次序130(第2圖)在每一被處理的資料向量中評估中斷條件,以便確定是否應當終止循環。在觸發中斷的第一資料項之後(按照處理次序130)的任何資料項皆不應被處理。
如前所述,關於是否繼續循環操作之決策可採用條件跳躍、分支或者改變程式流程之其他指令的形式,其中可指示條件,但是一或多個處理器條件旗標(例如,N、Z、C及V旗標)基於指令(如中斷指令)之執行。因此,中斷指令具有設定一或多個條件旗標之效果,以控制單獨的(條件分支或跳躍)指令是否實際上改變程式流程為繼續循環或者不繼續循環。(但是在其他實例中,設想為中斷指令亦可進行跳躍或分支。)
假定第12圖之處理操作550產生中斷決策所基於的結果,則所謂的「在……之前中斷」或者「在……之後中斷」操作可用來設定述詞旗標,以便響應於施加至在步驟560處產生的資料集的測試。現將參照第13圖及第14圖來描述實例。
第13圖示意性地圖示「在……之後中斷」的操作。在此術語「在……之後」意謂在循環操作中,中斷操作在向量處理指令之後進行。因此,應當仍然對觸發中斷的特定資料項執行施加中斷條件之前的指令。
第13圖中的上部線條表示來源於向量處理操作的一組結果600,並且在此實例中結果中存在1被視為(在中斷條件下)指示應當終止或者中斷循環操作的結果。
第13圖的第二列610示意性地表示由「在……之後中斷」操作產生的一組述詞旗標。參照按照處理次序130操作的第13圖之流程圖步驟,在操作之後的中斷偵測到指示需要中斷循環的結果(諸如,結果602)之第一次發生,並且在步驟630處按照次序130將述詞旗標設定為直至彼位置並且包括彼位置「有效的」。任何後續述詞旗標被設定為無效的。亦設定促使循環中斷之條件旗標。
類似地,第14圖示意性地表示「在……之前中斷」的操作,其係關於在進行向量處理指令之前的中斷偵測。在此,觸發循環中斷的資料項不應被後續向量處理指令處理。因此,在步驟640處藉由偵測處理次序130中指示中斷的結果602之第一實例來產生一組述詞旗標612,並且在步驟650處將述詞旗標設定為直至彼位置但是不包括彼位置為「有效的」。任何後續述詞旗標被設定為無效的。又,亦設定條件旗標。
以此方式產生的述詞旗標之設定確保對於當前所處理的資料向量,實際上處理了資料項處理次序110中應當在處理中斷之前被處理的彼等資料項,前提條件為其述詞旗標被設定為「有效」。使資料項被單獨處理的次序110中的彼等資料項在測試中斷條件後將已經落下(fallen),未藉由將其述詞旗標設定為「無效」來處理。
然而,在向量化循環中處理中斷條件的又一態樣為在處理彼資料向量之前退出該循環。將參照第15圖及第16圖論述此處理。
第15圖示意性地圖示來源於「在……之前中斷」的操作的一組中斷述詞旗標,該組中斷述詞旗標在此實例中包括向量長度VL 為8的一組八個旗標。次序130中的前五個述詞旗標被設定為有效的並且剩餘的三個述詞旗標被設定為無效的。此指示已經偵測到中斷條件並且將在應用中斷條件(例如,在條件旗標的控制下)之前處理當前資料向量中的八個資料項中的五個資料項。
參照第16圖,在步驟660處,偵測第15圖中關於「在……之前中斷」的中斷述詞並且在步驟670處進行關於最後的述詞旗標(在次序130中)是否為無效的偵測(但是可使用一或多個最後的旗標)。若結果為是,則在步驟680處中斷循環並且例如藉由設定如上文所論述的一或多個條件旗標來終止循環操作。然而,若答案為否,則在步驟690處繼續循環操作。此提供了以下實例:處理電路系統被配置用於執行循環操作並產生資料集作為對循環操作之繼續執行的測試;並且處理電路系統被配置用於若該組中適用於當前資料向量的一或多個最後的述詞旗標為無效則終止循環操作。
考慮參照第7圖所論述的展開循環,若使用結合第15圖及第16圖所論述類型之中斷述詞,則若在單一循環迭代內處理的多個資料向量中的一個中偵測到中斷條件就可能出現問題。因此,以下論述適用於使用處理電路系統來施加向量處理指令至具有資料向量處理次序的資料向量的佈置,每一資料向量包括具有資料項次序的複數個資料項,處理電路系統根據與資料向量內的各位置相關聯的一組相應述詞旗標的該等狀態來選擇性地施加向量處理指令至該等位置處的資料項,有效的述詞旗標指示應當施加該向量處理指令,而無效的述詞旗標指示不應當施加該向量處理指令。
例如,考慮在第7圖的向量2(在步驟440處所處理的資料向量)中的資料項位置中的一個位置處偵測到中斷條件。上文所論述的中斷處理將把向量1(在其中偵測到中斷的向量之前)的所有中斷述詞設定為有效的,並且將向量2中的中斷述詞中的一些設定為有效的,後續中斷述詞設定為無效的。但是由於在向量2處偵測到的中斷,該中斷處理(如迄今為止所描述的)不會偵測到現在完全不應該處理向量3和向量4。
解決此問題的又一措施為使用所謂的傳播指令,該傳播指令當被執行時,取決於適用於資料向量處理次序中的在先資料向量的一組述詞旗標而導出適用於當前資料向量的一組述詞旗標,因此當該組中適用於在先資料向量的一或多個最後的述詞旗標為無效的時,傳播指令使得該組中適用於當前資料向量的所有述詞旗標為無效的。
下文將參照第17圖及第18圖來論述特定實例(包括在附圖中圖示的特定位元值,其僅用於幫助解釋並且為簡單的實例)。但是一般而言,在剛給出的實例中,傳播指令將藉由把彼等中斷述詞設定為「無效的」來將在向量2中偵測到的中斷傳播到與向量3和向量4(或者是正在彼循環迭代中被處理的許多其他向量)相關聯的中斷述詞中。
此佈置具有兩種潛在有用的效應。第一效應為抑制對其中偵測到中斷的第一資料向量之後的資料向量的展開循環處理之操作。另一效應為允許使用如前所述的相同測試來偵測中斷,即第16圖中的步驟670處的測試,因為述詞旗標之傳播將意謂,若在藉由展開循環處理的資料向量組中的任何地方偵測到中斷,則最後的資料向量(在資料向量處理次序中)中的最述詞旗標(在處理次序中)將為無效的,並且因此控制可行進至步驟680。
在第17圖與第18圖中的每一者中,處理之輸出為一組相應的「目的地」述詞Pd。此表示適用於當前資料向量(例如,第7圖中的向量3)的一組中斷述詞,其傳播所導出的關於在先資料向量(例如,第7圖中的向量2)的中斷述詞。應注意的是,處理係針對資料向量次序140中的每一傳播而連續地進行,使得藉由傳播向量1之中斷述詞來導出針對向量2所設定的Pd述詞,隨後藉由傳播向量2的結果來導出針對向量3所設定的Pd,隨後藉由傳播來自向量3的結果來導出向量4的Pd。
至處理的輸入在第17圖與第18圖之間輕微地改變。
在第17圖的情況下,輸入包括一組述詞Ps1 ,其係關於對組中於單一循環迭代中處理的在先資料向量進行中斷檢測。此可為:(a)藉由「在……之前中斷」的操作針對該組資料向量中於單一循環迭代中處理的第一資料向量產生的一組中斷述詞;或者(b)藉由作用於該組資料向量中於單一循環迭代中處理的在先資料向量(在資料向量處理次序140中)的傳播指令產生的一組中斷述詞;或者(c)在該組中的第一資料向量的情況下,使得甚至能夠將相同的傳播指令用於該組資料向量中於單一循環迭代中處理的第一資料向量的一組中斷述詞(皆為有效的)。(該第一向量的替代為簡單地使用中斷操作,隨後將傳播指令用於後續向量)。
至第17圖之處理的其他輸入為:一組通用述詞Pg,其表示(例如)上文所論述的循環控制處理之結果;以及資料集Ps2 ,其表示在步驟560處產生並且被提供作為至第13圖及第14圖之處理的輸入600的類型之向量處理操作之結果。
關於傳播指令的操作由第17圖之虛線框700指示,並且包括:步驟710(其對應於第13圖及第14圖中的步驟620、640),其中處理次序中直至緊接在偵測到中斷條件第一實例之前的中斷述詞被設定為「有效的」(這又意謂若在資料集Ps2 中未偵測到中斷條件,則其皆被設定為「有效的」);及步驟720,在步驟720處提供步驟710的結果作為輸出組Pd,或者提供一組全零(皆為無效的中斷述詞)作為輸出組Pd。
關於該等輸出中的哪些由步驟720提供的決定因素為該組Ps1 中最後的中斷述詞(在次序130中)是否被設定為有效的。若是,則此指示未偵測到關於在先資料向量的中斷條件,並且步驟710的結果可被有效地用作關於當前資料向量的一組中斷述詞。但是若組Ps1 中最後的中斷述詞被設定為無效的,則此指示偵測到關於藉由循環迭代處理的該組資料向量中的在先資料向量的中斷條件,這又意謂不應處理當前資料向量中的資料項。因此在後一情況中,提供全部為零(皆為無效的)輸出Pd。
步驟710提供以下實例:其中傳播指令當被執行時,根據具有對應於每一述詞旗標的資料集項的資料集產生適用於當前資料向量的該組述詞旗標之初始狀態。例如,每一資料集項可具有多個可能的狀態;並且傳播指令當被執行時,可產生適用於當前資料向量的述詞旗標組之初始狀態,使得直至緊接在資料項次序中第一次出現相應資料集項的特定狀態之前的述詞旗標的述詞旗標被設定為有效狀態。第17圖中的資料集Ps2 提供以下實例:處理電路系統被配置用於產生資料集作為向量處理操作之輸出(如上文所論述的第14圖之實例中)。
應當注意的是,在一些示例性實施例,藉由通用述詞Pg來閘選述詞PS1 ,使得該組PS1 中最後的中斷述詞藉由執行傳播指令而被視為針對其的相應一般述詞被設定為「有效的」的最後中斷述詞(在第17圖中被圖示為示例性述詞702)。因此,提及適用於資料向量處理次序中的在先資料向量的一組述詞旗標可在一些實例中代表該組Ps1 中的所有述詞旗標,或者在其他實例中代表該組Ps1 中對應於通用述詞Pg中的有效述詞旗標的彼等述詞旗標。該等後半部分佈置為以下之實例:傳播指令響應於另一組述詞旗標(諸如Pg),從而定義與在先資料向量相關聯的述詞旗標中的哪些述詞旗標適用於彼在先資料向量。
第17圖的傳播指令因此包括以下功能性:藉由將中斷述詞傳播至組中在展開循環之循環迭代中處理的下一資料向量來進行上文所論述的「在……之前」處理。應注意的是,步驟710、720出於此描述之目的而被圖示為分開的步驟,但是在執行傳播指令時可被實施為單一整體邏輯操作的組成部分。
在第18圖中示意性地圖示了傳播指令之又一實例。在此,輸出Pd及輸入Ps1 、Pg如參照第17圖所描述的。但是輸入PS2 事實上為藉由「在……之前中斷」指令或操作產生的關於當前資料向量的一組中斷述詞。因此,輸入PS2 表示上文所論述的第14圖之處理的輸出。此表明,在一些實例中,傳播指令可作為於「在……之前中斷」指令分開的指令來實施,而在第17圖中,表明單一指令可提供在……之前中斷與述詞傳播處理的功能性。
將述詞組PS2 作為輸入,則藉由執行傳播指令進行的處理730類似於描述為第17圖之步驟720的彼處理,因為述詞組Ps2被提供作為輸出組Pd,或者提供全零(皆為無效的中斷述詞)組作為輸出組Pd。又,關於該等輸出中的哪些由步驟730提供的決定因素為組Ps1 中最後的中斷述詞(在次序130中)是否被設定為有效的。若是,則此指示未偵測到關於在先資料向量的中斷條件,並且述詞組Ps2 可被有效地用作關於當前資料向量的一組中斷述詞。但是若該組Ps1 中最後的中斷述詞被設定為無效的,則此指示偵測到關於藉由循環迭代處理的該組資料向量中的在先資料向量的中斷條件,這又意謂不應處理當前資料向量中的資料項。因此在後一情況中,提供全零(皆為無效)的輸出Pd。
第18圖之佈置及第17圖之步驟720提供以下其中傳播指令響應於適用於當前資料向量的該組述詞旗標之初始狀態的實例;並且當該組中適用於該在先資料向量的所有述詞旗標為有效的時,傳播指令當被執行時根據該組中適用於當前資料向量的述詞旗標之相應初始狀態來導出該等述詞旗標。
傳播指令不僅與中斷位置相關,亦可與以下相關:其中旗標或者其他資訊需要在(例如)展開循環中或者其他情形下從一個資料向量傳播到另一資料向量的情況。另一實例存在於推測性記憶體存取的情況中,該推測性記憶體可用於展開循環或者其他情形中,以在關於第一資料向量(在次序140中)的處理已經完成之前基於多個資料向量來存取記憶體位置。使用推測性存取以避免產生記憶體故障,但是在一些情況下,可有利地偵測第一故障資料項(在次序110中),並且在彼第一故障資料項(在次序110中)之後不處理資料項直至故障已被解決。因此可以與如上文所論述的中斷條件及所傳播的結果類似的方式偵測第一故障旗標,以便抑制後續(在次序110中)操作,直至或者除非已經處理第一故障。
第19圖示意性地圖示虛擬機,藉由虛擬機來提供上文所論述的一些或者所有功能性。該虛擬機包括:中央處理單元(central processing unit; CPU),作為資料處理電路系統800之實例;非揮發性記憶體810;控制介面820及輸入/輸出(input/output; IO)介面830,其均藉由匯流排佈置840互連。隨機存取記憶體(random access memory; RAM) 850儲存程式指令提供軟體860,以控制CPU 800之操作。在軟體860的控制下,CPU 800提供或者模擬上文所論述的處理指令中的一或多個處理指令的功能。RAM 850亦儲存程式指令870及資料880,其中程式指令870為適用於第1圖之處理器20的指令並且其被翻譯、模擬或者以其他方式由充當虛擬機的CPU 800執行。資料880為對應於將藉由(虛擬)執行程式指令870而被作用的第1圖之資料32的資料。第19圖之佈置因此提供虛擬機之實例,該虛擬機之實例包括資料處理器(諸如CPU 800),該資料處理器用於執行包括機器可讀取指令的電腦程式(例如軟體860),其中執行電腦程式使得資料處理器被作為如上所述類型的資料處理裝置操作。示例性實施例亦由當由電腦執行時使電腦執行如上所述的一種或多種技術的電腦軟體表示,並且由儲存此類電腦軟體的非暫時性機器可讀取儲存媒體表示。
在本申請中,用語「配置成/用於…」被用來意謂裝置中的一個元件具有能夠執行所定義的操作的構造。在此情況下,「配置」意謂硬體或軟體之佈置或互連方式。例如,裝置可具有提供所定義操作的專用硬體,或者處理器或其他處理設備可被程式化以執行此功能。「配置成/用於」並非暗示需要以任意方式改變裝置元件來提供所定義的操作。
雖然本文已經參照附圖詳細描述了本發明技術的說明性實施例,但是應理解的是本發明技術不限於彼等精確實施例,並且熟習此項技術者可在不脫離如所附申請專利範圍所定義的技術之範疇與精神的情況下實行各種變化、添加及改變。例如,在不脫離本發明技術之範疇的情況下,可將附屬請求項之特徵與獨立請求項之特徵進行各種組合。
10‧‧‧資料處理系統 20‧‧‧處理器 30‧‧‧記憶體 32‧‧‧資料值 34‧‧‧程式指令 40‧‧‧指令提取單元 50‧‧‧解碼器電路系統 60‧‧‧向量處理電路系統 70‧‧‧向量暫存器電路系統 80‧‧‧純量處理電路系統 90‧‧‧純量暫存器 100‧‧‧資料項 110‧‧‧處理次序 120‧‧‧資料向量 130‧‧‧資料項處理次序 140‧‧‧向量處理次序 200‧‧‧步驟 210‧‧‧步驟 220‧‧‧步驟 230‧‧‧步驟 250‧‧‧輸入資料向量 252‧‧‧資料項 260‧‧‧向量處理操作 270‧‧‧一組述詞旗標 272‧‧‧述詞旗標 280‧‧‧輸出資料向量 282‧‧‧資料項 300‧‧‧述詞旗標 310‧‧‧述詞旗標 320‧‧‧述詞旗標 330‧‧‧步驟 340‧‧‧步驟 400‧‧‧待處理資料 410‧‧‧資料處理次序 420‧‧‧步驟 430‧‧‧步驟 440‧‧‧步驟 450‧‧‧步驟 460‧‧‧步驟 470‧‧‧步驟 480‧‧‧步驟 500‧‧‧步驟 510‧‧‧步驟 520‧‧‧步驟 530‧‧‧步驟 550‧‧‧步驟 560‧‧‧步驟 600‧‧‧一組結果 602‧‧‧結果 610‧‧‧列 612‧‧‧一組述詞旗標 620‧‧‧步驟 630‧‧‧步驟 640‧‧‧步驟 650‧‧‧步驟 660‧‧‧步驟 670‧‧‧步驟 680‧‧‧步驟 690‧‧‧步驟 700‧‧‧虛線框 702‧‧‧述詞 710‧‧‧步驟 720‧‧‧步驟 730‧‧‧處理/步驟 800‧‧‧資料處理電路系統 810‧‧‧非揮發性記憶體 820‧‧‧控制介面 830‧‧‧輸入/輸出介面 840‧‧‧匯流排佈置 850‧‧‧隨機存取記憶體 860‧‧‧軟體 870‧‧‧程式指令 880‧‧‧資料
將僅以舉例說明方式,參照如附圖中所圖示之本發明的實施例來進一步描述本發明技術,其中:
第1圖示意性地圖示資料處理裝置;
第2圖示意性地圖示將資料作為多個資料向量處理;
第3圖為示意性流程圖,圖示循環操作(looped operation);
第4圖示意性地圖示述詞旗標之使用;
第5圖示意性地圖示根據計數器變數控制述詞旗標;
第6圖為示意性流程圖,圖示根據計數器變數用「WHILE」指令設定述詞旗標;
第7圖示意性地圖示所謂的展開循環;
第8圖及第9圖示意性地圖示可用計數器變數表示的值;
第10圖及第11圖為示意性流程圖,分別圖示增量及減量指令之操作;
第12圖為示意性流程圖,圖示向量操作(vector operation);
第13圖及第14圖示意性地圖示中斷述詞旗標之設定;
第15圖示意性地圖示一組中斷述詞旗標;
第16圖為示意性流程圖,圖示對中斷條件之處理;
第17圖示意性地圖示傳播指令之實例;
第18圖示意性地圖示傳播指令之另一實例;以及
第19圖示意性地圖示虛擬機。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
(請換頁單獨記載) 無
700:虛線框
702:述詞
710:步驟
720:步驟

Claims (12)

  1. 一種資料處理裝置,包括:處理電路系統,該處理電路系統用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加一向量處理操作至該等位置處的資料項,該等資料向量具有一資料向量處理次序,每一資料向量包括具有一資料項次序的複數個資料項,該處理電路系統包括:指令解碼器電路系統,用於解碼程式指令;以及指令處理電路系統,用於執行由該指令解碼器電路系統解碼的指令;其中該指令解碼器電路系統響應於一傳播指令而控制該指令處理電路系統,以便取決於適用於按照該資料向量處理次序的一在先資料向量的一組述詞旗標而導出適用於一當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的該組中所有該等導出的述詞旗標皆為無效的;其中:該指令解碼器電路系統響應於該傳播指令而控制該指令處理電路系統,以便響應於適用於該當前資料向量的該組述詞旗標之初始狀態,其中當該組中適用 於該在先資料向量的一或多個最後述詞旗標為有效的時,該組中適用於該當前資料向量的該等導出的述詞旗標來源於其相應的初始狀態。
  2. 如請求項1所述之裝置,其中:該指令解碼器電路系統響應於該傳播指令而控制該指令處理電路系統,以便響應於一另一組述詞旗標,從而定義與該在先資料向量相關聯的該等述詞旗標中的哪些述詞旗標適用於該在先資料向量。
  3. 如請求項1或2所述之裝置,其中該指令解碼器電路系統響應於該傳播指令而控制該指令處理電路系統,以便根據具有對應於每一述詞旗標的一資料集項的一資料集產生適用於該當前資料向量的該組述詞旗標之初始狀態。
  4. 如請求項3所述之裝置,其中:每一資料集項具有多個可能的狀態;以及該指令解碼器電路系統響應於該傳播指令而控制該指令處理電路系統,以便產生適用於該當前資料向量的該述詞旗標組之該等初始狀態,其中該述詞旗標被設定成直至在該資料項次序中緊接在一第一次出現該相應資料集項之一特定狀態之前的一述詞旗標為一有效狀態。
  5. 如請求項4所述之裝置,其中該處理電路系 統被配置成產生該資料集作為一向量處理操作的一輸出。
  6. 如請求項1或2所述之裝置,其中:該處理電路系統被配置成執行一循環操作並且產生該資料集作為對該循環操作之繼續執行的一測試;以及該處理電路系統被配置成若該組中適用於該當前資料向量的一或多個最後的述詞旗標為無效則終止該循環操作。
  7. 如請求項1或2所述之裝置,其中:一有效的述詞旗標指示應該施加該向量處理指令,並且一無效的述詞旗標指示不應施加該向量處理指令。
  8. 一種資料處理裝置,包括:用於根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加一向量處理操作至該等位置處的資料項的構件,該等資料向量具有一資料向量處理次序,每一資料向量包括具有一資料項次序的複數個資料項,該用於施加的構件包括:用於解碼程式指令的構件;以及用於執行由該用於解碼的構件解碼的指令的構件;該用於解碼的構件響應於一傳播指令而控制該用 於執行的構件,以便取決於適用於按照該資料向量處理次序的一在先資料向量的一組述詞旗標而導出適用於一當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的;其中:該用於解碼程式指令的構件響應於該傳播指令而控制該用於執行指令的構件,以便響應於適用於該當前資料向量的該組述詞旗標之初始狀態,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標為有效的時,該組中適用於該當前資料向量的該等導出的述詞旗標來源於其相應的初始狀態。
  9. 一種資料處理方法,包括以下步驟:根據與資料向量內的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加一向量處理操作至該等位置處的資料項,該等資料向量具有一資料向量處理次序,每一資料向量包括具有一資料項次序的複數個資料項,該施加步驟包括以下步驟:解碼程式指令;以及執行由該解碼步驟解碼的指令;該解碼步驟響應於一傳播指令而控制該執行步驟, 以便取決於適用於按照該資料向量處理次序的一在先資料向量的一組述詞旗標而導出適用於一當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的;其中:該用於解碼程式指令的步驟響應於該傳播指令而控制該執行指令的步驟,以便響應於適用於該當前資料向量的該組述詞旗標之初始狀態,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標為有效的時,該組中適用於該當前資料向量的該等導出的述詞旗標來源於其相應的初始狀態。
  10. 一種電腦軟體,該電腦軟體當由一電腦執行時,使該電腦執行如請求項9所述之方法。
  11. 一種非暫時性機器可讀取儲存媒體,儲存如請求項10所述之電腦軟體。
  12. 一種虛擬機,該虛擬機包括一資料處理器,該資料處理器用於執行包括機器可讀取指令的一電腦程式,其中該電腦程式之執行使得該資料處理器作為一資料處理裝置操作,該資料處理裝置包括:處理電路系統,該處理電路系統根據與資料向量內 的各位置相關聯的一組相應述詞旗標的狀態來選擇性地施加一向量處理操作至該等位置處的資料項,該等資料向量具有一資料向量處理次序,每一資料向量包括具有一資料項次序的複數個資料項,該處理電路系統包括:指令解碼器電路系統,用於解碼程式指令;以及指令處理電路系統,用於執行由該指令解碼器電路系統解碼的指令;其中該指令解碼器電路系統響應於一傳播指令而控制該指令處理電路系統,以便取決於適用於按照該資料向量處理次序的一在先資料向量的一組述詞旗標而導出適用於一當前資料向量的一組述詞旗標,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標無效時,該組中適用於該當前資料向量的所有該等導出的述詞旗標皆為無效的;其中:該指令解碼器電路系統響應於該傳播指令而控制該指令處理電路系統,以便響應於適用於該當前資料向量的該組述詞旗標之初始狀態,其中當該組中適用於該在先資料向量的一或多個最後述詞旗標為有效的時,該組中適用於該當前資料向量的該等導出的述詞旗標來源於其相應的初始狀態。
TW105124011A 2015-07-31 2016-07-29 用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機 TWI732775B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1513507.2A GB2540941B (en) 2015-07-31 2015-07-31 Data processing
GB1513507.2 2015-07-31

Publications (2)

Publication Number Publication Date
TW201710887A TW201710887A (zh) 2017-03-16
TWI732775B true TWI732775B (zh) 2021-07-11

Family

ID=54062952

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105124011A TWI732775B (zh) 2015-07-31 2016-07-29 用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機

Country Status (9)

Country Link
US (1) US11042378B2 (zh)
EP (1) EP3329364B1 (zh)
JP (1) JP6900363B2 (zh)
KR (1) KR102603377B1 (zh)
CN (1) CN107851018B (zh)
GB (1) GB2540941B (zh)
IL (1) IL256717B (zh)
TW (1) TWI732775B (zh)
WO (1) WO2017021697A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3125108A1 (en) * 2015-07-31 2017-02-01 ARM Limited Vector processing using loops of dynamic vector length
CN108733352B (zh) * 2017-04-25 2021-06-11 上海寒武纪信息科技有限公司 支持向量排序的装置、方法及应用
GB2571527B (en) * 2018-02-28 2020-09-16 Advanced Risc Mach Ltd Data processing
GB2580068B (en) * 2018-12-20 2021-02-24 Advanced Risc Mach Ltd Generating a vector predicate summary

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102301A1 (en) * 2008-08-15 2012-04-26 Apple Inc. Predicate count and segment count instructions for processing vectors
TW201335845A (zh) * 2011-12-14 2013-09-01 Intel Corp 用於迴圈餘數遮罩指令之系統、裝置及方法
US20140289496A1 (en) * 2013-03-19 2014-09-25 Apple Inc. Enhanced macroscalar predicate operations
US20150154024A1 (en) * 2013-07-09 2015-06-04 Texas Instruments Incorporated Vector SIMD VLIW Data Path Architecture

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3958662B2 (ja) * 2002-09-25 2007-08-15 松下電器産業株式会社 プロセッサ
JP5043560B2 (ja) * 2007-08-24 2012-10-10 パナソニック株式会社 プログラム実行制御装置
US8984262B2 (en) * 2008-08-15 2015-03-17 Apple Inc. Generate predicates instruction for processing vectors
US8356159B2 (en) * 2008-08-15 2013-01-15 Apple Inc. Break, pre-break, and remaining instructions for processing vectors
US9176737B2 (en) * 2011-02-07 2015-11-03 Arm Limited Controlling the execution of adjacent instructions that are dependent upon a same data condition
CN104011649B (zh) 2011-12-23 2018-10-09 英特尔公司 用于在simd/向量执行中传播有条件估算值的装置和方法
US9116686B2 (en) * 2012-04-02 2015-08-25 Apple Inc. Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction
US9342306B2 (en) * 2012-10-23 2016-05-17 Analog Devices Global Predicate counter
US9557993B2 (en) 2012-10-23 2017-01-31 Analog Devices Global Processor architecture and method for simplifying programming single instruction, multiple data within a register
US10175981B2 (en) * 2013-07-09 2019-01-08 Texas Instruments Incorporated Method to control the number of active vector lanes for power efficiency
US9600280B2 (en) * 2013-09-24 2017-03-21 Apple Inc. Hazard check instructions for enhanced predicate vector operations
US20160092398A1 (en) * 2014-09-29 2016-03-31 Apple Inc. Conditional Termination and Conditional Termination Predicate Instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102301A1 (en) * 2008-08-15 2012-04-26 Apple Inc. Predicate count and segment count instructions for processing vectors
TW201335845A (zh) * 2011-12-14 2013-09-01 Intel Corp 用於迴圈餘數遮罩指令之系統、裝置及方法
US20140289496A1 (en) * 2013-03-19 2014-09-25 Apple Inc. Enhanced macroscalar predicate operations
US20150154024A1 (en) * 2013-07-09 2015-06-04 Texas Instruments Incorporated Vector SIMD VLIW Data Path Architecture

Also Published As

Publication number Publication date
GB2540941A (en) 2017-02-08
TW201710887A (zh) 2017-03-16
JP6900363B2 (ja) 2021-07-07
EP3329364B1 (en) 2022-11-30
GB2540941B (en) 2017-11-15
JP2018521424A (ja) 2018-08-02
IL256717A (en) 2018-03-29
GB201513507D0 (en) 2015-09-16
IL256717B (en) 2020-03-31
WO2017021697A1 (en) 2017-02-09
KR20180034508A (ko) 2018-04-04
CN107851018A (zh) 2018-03-27
CN107851018B (zh) 2022-04-29
US20180210731A1 (en) 2018-07-26
US11042378B2 (en) 2021-06-22
KR102603377B1 (ko) 2023-11-17
EP3329364A1 (en) 2018-06-06

Similar Documents

Publication Publication Date Title
TWI723036B (zh) 資料處理
TWI732775B (zh) 用於資料處理的裝置、方法、電腦軟體、儲存媒體及虛擬機
JP4484925B2 (ja) Simdデバイスにおける制御フロー管理のための方法及び装置
KR102379894B1 (ko) 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법
KR100316710B1 (ko) 병렬 프로세서를 위한 무순서 명령어 발행 방법 및 장치
JP7377208B2 (ja) データ処理
TW201911081A (zh) 在資料處理設備中比對連續值
JP7335952B2 (ja) ベクトル述語要約の生成
JP2007304926A (ja) 情報処理方法および命令生成方法
WO2017024798A1 (zh) 超长指令字指令集的指令处理方法及装置
US10503477B2 (en) Galois field pipelined multiplier with polynomial and beta input passing scheme
JP2008234058A (ja) 退避データ判別方法、退避データ判別プログラムおよび退避データ判別装置
US9218186B2 (en) Software compiler generated threaded environment