TW591531B - Conditional execution control head in a VLIW processor - Google Patents

Conditional execution control head in a VLIW processor Download PDF

Info

Publication number
TW591531B
TW591531B TW91122238A TW91122238A TW591531B TW 591531 B TW591531 B TW 591531B TW 91122238 A TW91122238 A TW 91122238A TW 91122238 A TW91122238 A TW 91122238A TW 591531 B TW591531 B TW 591531B
Authority
TW
Taiwan
Prior art keywords
execution
instruction
condition
action
super
Prior art date
Application number
TW91122238A
Other languages
Chinese (zh)
Inventor
Yu-Min Wang
Original Assignee
Faraday Tech Corp
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 Faraday Tech Corp filed Critical Faraday Tech Corp
Priority to TW91122238A priority Critical patent/TW591531B/en
Application granted granted Critical
Publication of TW591531B publication Critical patent/TW591531B/en

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

A VLIW processor for executing a sequence of very long instruction words having a plurality of operations to be executed in parallel. The VLIW processor has a plurality of functional units for parallel execution of the operations specified by the VLIW, an instruction register for holding the VLIW, and a condition flag for indicating the results of a comparison operation. The VLIW includes a conditional head and a plurality of slots, each slot including an operational code and any related operands. The conditional head has a plurality of conditional indicators, each conditional indicator uniquely corresponding to one operation and specifying a condition in which the operation is to be executed if the indicated condition exists. A control circuit is connected to the instruction register and the functional units to deliver the operation from the instruction register to the corresponding functional unit for execution when the condition exists.

Description

591531591531

發明之領域 本發明係提供一種超長指今本分♦ ' ' = 令字元處理”之條件式執行標頭以 發明背景 越來越多的電腦運算需要使用到具有指令階段平行處 理(instruction level parallelism, ILp)能力之電腦处 也就是說,該電腦可同時執行複數個指令,而超長指令字 元(very long instruction word,VLIW)處理器就是一種 可處理這類超長指令字元之處理器。超長指令字元處理器 係用於超級電腦(super computer)、大型電腦 (mainframe)、或其它需要高速運算之電腦中。 每一超長指令字元中皆包含複數個欄位(f i e 1 d ),或 稱之為指令槽(s 1 ot),每一指令槽内係被設計成只能包含 單一指令,而該指令中包含一動作碼(opcode )及其它相關 的運算元(operand)。一般而言,該超長指令字元中的指 令槽之數量係與機器的架構及機器内例如像是算術及邏輯 單元(ALU)、浮點運算單元(floating point unit,FPU) 之類的功能單元之數量有關。每一指令槽皆對應於一特定 之算術及邏輯單元或一浮點運算單元,該算術及邏輯單元FIELD OF THE INVENTION The present invention provides a conditional execution header with a super long pointer. "'= = Character processing." BACKGROUND OF THE INVENTION More and more computer operations require instruction level parallel processing (instruction level). Parallelism (ILp) capable computer means that the computer can execute multiple instructions at the same time, and a very long instruction word (VLIW) processor is a type of processing that can handle such very long instruction characters Super long command character processor is used in super computer (main computer), mainframe (mainframe), or other computers that require high-speed computing. Each super long command character contains multiple fields (fie 1 d), or instruction slot (s 1 ot), each instruction slot is designed to contain only a single instruction, and the instruction contains an action code (opcode) and other related operands (operand ). In general, the number of instruction slots in the extra-long instruction character is related to the machine's architecture and inside the machine, such as arithmetic and logic units (ALU), floating-point arithmetic units (floati ng point unit (FPU) is related to the number of functional units. Each instruction slot corresponds to a specific arithmetic and logic unit or a floating-point arithmetic unit, the arithmetic and logic unit

第6頁 591531Page 6 591531

五、發明說明(2) 係用來執行整數的加、減、與乘等算術運管及布林 邏輯運算,而該浮點運算單元係^來執行浮點 運异。因為成本的考量,大多數的中央 只包含一 個洋點運算單元,當該超县# A. Μ1早 田Α尤長彳日7子兀被執行時,該洋點運 2早疋執行該相對應的措令槽内之動作碼所標明之執行動 作0 ' 習知 週期 令排 所皆 理一 該指 特定 值之 行的 指令 管。 行完 個機 機械 一指 是眾 於處 度。 關的 元的 被執 管的 令排 能執 於一 的超長指令字7L處理器中,超長指令字元係於一 ^machine cycle)的時間中從記憶體内被轉換成 官(instruction pipeline),指令排管的用處已 知,並且指令排管已經被證明可大幅提高處理器 内含一串列依序被執行的指令之程式碼的運作速 令排管中的每一階段皆執行一與該指令的執行有 功能步驟,例如像是攫取(fetch)記憶體内運瞀 類的執行動作。在依序執行的過程中,下一個#將 指令是已知的,並且可緊跟在剛被轉換成指令排 之後立刻就於下一機器週期的時間内被轉換 因此,雖然每一個指令都可能需要好幾個階段^ 畢,但是,該指令排管一旦被填滿,該指人 器週期的時間内執行完畢。 7 ’ 1 然而,大多數的程式碼中也包含例如像是”丨 ,件式指令(conditional instructi〇n),這類的杜、、的 々會一直等到完全執行完畢後才知道下一個將執行/的指曰入V. Description of the Invention (2) It is used to perform arithmetic operations such as addition, subtraction, and multiplication of integers and Bollinger logic operations, and the floating-point arithmetic unit is used to perform floating-point operations. Due to cost considerations, most of the centers only include a foreign point operation unit. When the Chaoxian # A. Μ1 Waseda A You Changyi 7th day is executed, the foreign point 2 early execution of the corresponding The execution action indicated by the action code in the action slot is 0. The learning cycle order places all the instruction tubes that should refer to a specific value. After finishing the machine, one finger is everywhere. Guan Yuan's managed command line can be executed in a super-long instruction word 7L processor. The super-long instruction character is converted from memory into an instruction pipeline in a ^ machine cycle time. ), The usefulness of the instruction pipeline is known, and the instruction pipeline has been shown to greatly improve the operation speed of the processor's code that contains a series of sequentially executed instructions. There are functional steps related to the execution of the instruction, such as fetching execution operations in a memory. During sequential execution, the next # will be known, and can be converted immediately in the next machine cycle immediately after being converted to the instruction bank. Therefore, although every instruction is possible It takes several stages ^, but once the instruction pipeline is filled, the execution of the finger cycle is completed. 7 '1 However, most of the code also contains, for example, "丨, conditional instructi0n". Such du, and 々 will wait until the execution is complete before they know that the next one will be executed. / Refers to

591531 五、發明說明(3) 是什麼。因為條件式指令不知道下一個將執行的指令是什 麼,所以幾乎不可能使該指令排管中滿載以串列式之方式 排列的指令,也因此條件式指令會降低處理器處理指令之 速度。 請參考圖一,圖一為一以C語言所窝戌之内含一條件 式指令n i f π (第1 2行)的程式,而圖二則顯示一習知編譯器 如何將圖一中之程式轉換成一組合語言碼,請注意,在第 3 6、44行之間的指令槽係以雙直線來代表指令槽之間的界 限。在圖二中,一直要到位於第32行的式子(CMPGT R0, 0 )被執行完畢後’才知道要依照32-〉34->36->38->40->48 的次序退是依照32-〉34 -〉42->44-〉46-48的次序處理。處 理器依據(CMPGT R0, 0)之邏輯真偽來決定將要處理的指 令。上述的這種不能確定之模糊情況係稱為分枝延遲 (branch delay),而這種延遲可能係導因於必需清空該通 道指令内之所有指令且於第1 2行的指令完全執行完畢後, 才能將下一個正確的指令轉換至該指令排管内,這種沒有 效率的動作是高速運作的處理器所不樂見的。 對於上述的分枝延遲問題已出現了許多種的解決方 式,其中之一就是依據一特定程式的執行紀錄來預測一條 件式指令之後最可能執行之指令。例如,如果圖二中的 n R 0 π在過往的執行紀錄中總是大於零,那麼當該程式執行 到第3 4行時,π R 0 π就被預期會大於零。基於這樣的預測,591531 V. What is (3)? Because a conditional instruction does not know what the next instruction is to be executed, it is almost impossible to fill the instruction pipeline with a series of instructions arranged in a serial manner. Therefore, a conditional instruction will reduce the processor's processing speed. Please refer to Fig. 1. Fig. 1 is a program containing a conditional instruction nif π (line 12) in C language. Fig. 2 shows how a compiler interprets the program in Fig. 1 Converted into a combined language code, please note that the instruction slots between lines 3, 6, and 44 use double straight lines to represent the boundaries between instruction slots. In Figure 2, it is not until the expression (CMPGT R0, 0) on line 32 has been executed that it is' not known to follow 32-> 34- &36; > 38- > 40- > 48 The order back is processed according to the order of 32-> 34-> 42-> 44-> 46-48. The processor determines the instructions to be processed based on the logic of (CMPGT R0, 0). The above-mentioned uncertain situation is called branch delay, and this delay may be caused by the need to clear all instructions in the channel instruction and after the execution of the instructions in line 12 In order to convert the next correct instruction into the instruction pipeline, such an inefficient action is unpleasant for a high-speed processor. There have been many solutions to the above-mentioned branch delay problem. One of them is to predict the most likely instruction to be executed after a one-component instruction according to the execution record of a specific program. For example, if n R 0 π in Figure 2 has always been greater than zero in the past execution records, then when the program reaches line 34, π R 0 π is expected to be greater than zero. Based on such predictions,

591531 五、發明說明(4) 在第3 4行的指令被執行的同時,第3 6、3 8、4 0、及4 8行的 指令就立刻被載入至該指令排管中。如果先前的預測i確 無誤,上述的分枝延遲的問題就可有效避免。然而,如果 先前的預測錯誤,那麼該指令排管内已存在的指令需被全 部清空以將第4 2 ' 4 4、4 6、及4 8行的正確指令轉換至該已 被清空的指令排管中,而時間就在這將正確指令轉換至該 已被清空的指令排管中的過程中浪費了。 而第二種解決分枝延遲問題的方法為將所有可能的指 令序列全數載入至該指令排管中,每一指令序列皆對應於 一種第3 4行所標明之條件式指令所可能產生的結果。至 此,第3 6 -48行中的所有指令皆被轉換至該指令排管中。 在該超長指令字元中的每一執行動作皆不僅只包含動作碼 及相關的運算元,每一執行動作尚包含内含單一位元或多 位元之旗標(f 1 ag ),用來標明該執行動作係屬於那一個特 定之程式分枝。請再參考圖二,在第3 6-4 0行中的每一指 令的旗標”值”皆被設定為” 1”,其係代表分枝’’ l’f,而第 42-46行中的每一指令的旗標”值π皆被設定為’’ 01’, 其係 代表分枝π 〇π。如果第32行中的條件式指令(CMPGT R0, 0) 為”真π,則只有那些包含旗標值為’’ 1π的指令槽内的指令 才會被執行,反之,如果第3 2行中的條件式指令(C Μ P G Τ R0, 0)為”偽’’,則只有那些包含旗標值為π 0’’的指令槽内 的指令才會被執行。雖然本方法能幫助該指令排管保持滿 載,然而本方法需要該超長指令字元中的每一指令槽皆空591531 V. Description of the invention (4) At the same time as the instructions in line 34 are executed, the instructions in lines 36, 38, 40, and 48 are immediately loaded into the instruction pipeline. If the previous prediction i is correct, the aforementioned branch delay problem can be effectively avoided. However, if the previous prediction is wrong, all existing instructions in the instruction pipeline need to be cleared in order to convert the correct instructions in lines 4 2 '4 4, 4, 6 and 48 to the cleared instruction pipeline. Time, and time is wasted in the process of transferring the correct instruction to the cleared instruction pipeline. The second method to solve the branch delay problem is to load all possible instruction sequences into the instruction pipeline. Each instruction sequence corresponds to a conditional instruction indicated by line 34. result. At this point, all instructions in lines 3 6-48 are converted to the instruction pipeline. Each execution action in the super-long instruction character not only contains an action code and related operands, but each execution action also contains a single-bit or multi-bit flag (f 1 ag). To indicate that the execution action belongs to a particular program branch. Please refer to FIG. 2 again. The flag “value” of each instruction in lines 36 to 40 is set to “1”, which represents the branch “l'f”, and lines 42-46 The flag "value π" of each instruction in the instruction is set to "01", which represents the branch π 〇π. If the conditional instruction (CMPGT R0, 0) in line 32 is "true π, then Only those instructions in the instruction slot containing the flag value `` 1π will be executed. Conversely, if the conditional instruction (CM PG Τ R0, 0) in line 32 is "false", then only Only those instructions in the instruction slot containing the flag value π 0 '' will be executed. Although this method can help the instruction pipeline to remain full, this method requires that each instruction slot in the super-long instruction character is air

591531 五 出 記 定 、發明說明(5) 預定空間之_、 憶體的大小端稍;^ U儲存廷些旗標,而該預定空間之 。 ^視4程式於執行時程式分枝的可能數量而 因此 種方法無法伴ί ί不足以解決上述的分枝延遲問題,第 執行結果,而篦:絲—次皆能正確地預測出條件式指令的 皆空出一預定需超長指令字元中每-指令槽 度。 、T堵存空間’如此將會增加程式的長 述 發明之目的及概 / · 本毛明之主要目的在於降低執行程式_的跳杆591531 Five-out record, description of the invention (5) _ of the predetermined space, the size of the memory is slightly smaller; ^ U stores some flags, and of the predetermined space. ^ Depending on the possible number of program branches during the execution of the 4 program, this method cannot be accompanied by ί. It is not enough to solve the branch delay problem described above. The first execution result, and 篦: silk-times can correctly predict conditional instructions. Each of them is vacated with a predetermined instruction length per-instruction slot. , T blocking space ’will increase the length of the program. The purpose and outline of the invention / · The main purpose of Ben Maoming is to reduce the jump bar

Qump)數,以降彻扣且八〜—石 w…征八時的跳仃 以降低超長指令字兀處理器中的分枝延遲。 本發明之第二目的在 中一批— ㈢的在於避免增加儲存該超長招人空- 行動作之旗標所需的額外記憶空間。 7 凡 ^發明之第三目的在於可使超長指令字元 侍以各別地被控制。 γ母—指令 ^ —本發明係揭露一用來執行一超長指令字元之 字兀處理器,其中該超長指令字元包含一條件式‘,指令 (conditional execution head,CEX)及複數個热/丁 標顯Qump) to reduce the number of jumps at eight o'clock-stone w ... at eight o'clock to reduce the branch delay in the ultra-long instruction word processor. The second object of the present invention is in the middle batch—the purpose is to avoid increasing the extra memory space required to store the flag of the ultra-long recruiting action. 7 The third purpose of the invention is to enable the super-long instruction characters to be individually controlled. γ mother-instruction ^ The present invention discloses a word processor for executing a very long instruction character, wherein the very long instruction character includes a conditional expression, a conditional execution head (CEX), and a plurality of instructions. Thermal / Ding display

五、發明說明(6) 時執行複數個執行動二理:=::二:功能單元,用來同 關,以及一控制電路 二二暫存态,複數個控制開 制開關,該控制電路可^ = ^暫存器及該複數個控 條件控制該複數個開 Z對應之條件指標所標明的 指令暫存器包含複數個用】 閉(close)。該 條件指標,每-條件指標Ϊ = ; =頭内包含複數個 制開關中的每-控制開關行。該複數個控 之功能單元會接收連於二=,啟狀態的控制開 令槽所傳來的執行動,=^於開啟狀態的控制開關之 開關之功能單元將不备收:=^ =處於關閉狀態的控制 所接收到之執行動作“時被執:執行動# ’且功能單元 發明之詳細說明 請參考圖—至圖三,圖一為以p五一 條件式指令n i f ”的栽+ 為j Ch吕所寫成之内含一 如何將圖一中之程式ς換,22 一超長指令字元編譯器 —超長指令字元編釋写, =:语言碼,而圖三則顯示 換成-組合語言^如何依據本發明將圖-中之程式轉 指 能單元。_L述之J理$ :疋:可從該指令槽被傳送至該功 關之功能單元會接收“二2,於處於開啟狀態的控制開V. Description of the invention (6) When executing multiple executions, the second principle is: = :: two: functional units, which are used for inter-off, and a control circuit, two or two temporary storage states, and a plurality of control opening switches. The control circuit can ^ = ^ The register and the plurality of control conditions control the instruction register indicated by the condition index corresponding to the plurality of open Zs. The register is closed. The condition indicator, each-condition indicator Ϊ =; = The header contains each-control switch line among a plurality of control switches. The plurality of controlled functional units will receive the execution action transmitted from the control opening slot of the control state in the ON state, and the functional unit of the switch of the control switch in the open state will not be ready to receive: = ^ = in The execution action received when the control in the closed state is "performed: execute action # 'and the detailed description of the functional unit invention please refer to Figure-to Figure 3, Figure 1 is a p51 conditional instruction nif" + The content written by j Ch Lu contains a description of how to replace the program in Figure 1, 22 a super-long instruction character compiler-super-long instruction characters. -Combined language ^ How to transfer the program in Figure- to the power unit according to the present invention. _L 列 的 J 理 $: 疋: The functional unit that can be transmitted from the instruction slot to the function will receive "two 2", which is opened when the control is in the open state.

第11頁Page 11

說明(7) 複數f1二中第6 2、6 4行分別對應於一超長指令字元人 直ί:欄位,或稱ί指令槽’在圖三中每-指令槽皆:: 動作:分隔開來,每一指令槽皆包含-執行動作、執ί _ ι含一動作碼及任何相關的運算元。請 ^執仃 :中第34、40行之跳行已不復出現於圖三中。於圖 行皆會造成分枝延遲,然而 】份 “碼内不會出現跳行,所以就能增加處理以 I條件i:: 口的:CEU.C』C』C”之 指令究係在那一種條下、f j2打之超長指令字元中的四個 丨I字元中包含四個指令,鈇^,行。雖然第62行之超長指人 的指令數量係通常遍二=一個超長指令字元中所能二 丨指令字元内之指令i量有闕,本發明並不受限於該超: 該CEX指令通常係 字Ϊ行動^作之後,如第60 較的結果係藉著 樣,當一比較執 。就像習知之超 ”1,,(真)或,,0”(鸟=標暫存器内之作被執行後,比 )的方式所標明。条件旗標設定成 第12頁 五、發明說明(8) 當第6 2行中之古、 時,每一例如像是,Γ· C”曰之7子兀,載入至一指令暫存器 旗標)皆會直接對應於一指令栌條^指標(也稱為位'元 件旗標係被設定成” i ”。 執此订動作若且唯若該條 該相對應之執行動作i 4一 /、指標π ·Nc”則意指執行 "ο”。因此,如果第條件旗標係被設定成 標係被設定成"丨=的=較結果為’,真’’且該條件旗 ^ Ϊ ΛνΓ/Λ^χ *c·c;NC·NC€ ^ ^ ^ 行,而該超長指令字元中 乃 及第一指令將被執 行。因此,利角本發明之侔:j f:指令將不會被執 行的次,並使該“ ^”執仃標μ降低程式中跳 發明之條件式執‘;:—士处於滿載的情況。此外,本 令的長度,因此ϋ 不會如先前技術般會增加每一指 也就不會佔用記憶體額外的空間。 基本:益四為本發明超長指令字元處理器73之 件式執行ΪΪ 8〇Ϊ Ϊ令字*,該超長指令字元包含-條 指令槽比複數個指令槽82、84、86、及88,每一 ^ 5 t含一可被同時執行之指令。超長指令字元處理 °85、87匕 3 複數個功能單元(functi〇nal units,FU)83、 r動作,及8 9用來執行該超長指令字元所指定之複數個執 P 2、^以及複數個控制開關92、94、96、及98。控制開 ^ 4、9 6、及9 8係分別設置於該超長指令字元中的指Note (7) Lines 6, 2, and 4 of the plural f1 correspond to a super-long instruction character, respectively: column, or "command slot". In Figure 3, each-command slot is :: Action: Separately, each instruction slot contains-execute an action, execute an action code and any related operands. Please ^ Execution: The jumps in lines 34 and 40 in Chinese are no longer shown in Figure 3. Branches will be delayed on the line, however, the "instructions will not skip lines, so I can increase the processing of I condition i :: 口 : CEU.C『 C 』C” The four 丨 I characters in the super long instruction characters f j2 under one bar include four instructions, 鈇 ^, line. Although the number of super long fingers in line 62 is usually two = one super long command character can be two. The amount of command i in the command character is different. The present invention is not limited to the super: The CEX instruction is usually after the action is performed, as the result of the 60th comparison is performed by comparison. Just like the conventional super "1 ,, (True) or ,, 0" (bird = after the work in the target register is executed, than). The condition flag is set to page 12. V. Description of the invention (8) When the ancients in line 6 and 2 are loaded, each such as, for example, Γ · C ”is loaded into an instruction register. Flags) will directly correspond to an instruction bar ^ indicator (also known as a bit 'component flag is set to "i". Perform this order if and only if the corresponding action is performed i 4 a /, Indicator π · Nc ”means to execute " ο”. Therefore, if the condition flag is set as the standard is set as " 丨 == the comparison result is ', true' and the condition flag ^ Λ ΛνΓ / Λ ^ χ * c · c; NC · NC € ^ ^ ^ line, and the first instruction in the extra-long instruction character will be executed. Therefore, the corner of the invention: jf: instruction Will not be executed twice, and make the "^" execution standard μ reduce the conditional execution of the invention in the program ;:-the case is full load. In addition, the length of this order, so ϋ will not be as The prior art generally increases each finger and does not take up extra space in the memory. Basic: Yisi is a piece of execution of the ultra-long instruction character processor 73 of the present invention. 8〇Ϊ Command word *, the extra-long instruction character contains-an instruction slot than a plurality of instruction slots 82, 84, 86, and 88, each ^ 5 t contains an instruction that can be executed simultaneously. Ultra-long instruction Character processing ° 85, 87 dagger 3, multiple functional units (functinal units, FU) 83, r action, and 8 9 are used to execute the multiple executions specified by the super long instruction character P 2, ^, and plural Control switches 92, 94, 96, and 98. The control switches 4, 9, 6, and 98 are respectively set in the super-long instruction characters.

第13頁 591531 五、發明說明(9) ' ~' -- 二$ 82、84、86、及88與相對應的功能單元以、85、、7、 之間,用來控制一執行動作是否得以從指令槽82、 ^86、及⑽專送至功能單元83、85、87、及89。超長指 處理為73另包含一控制電路75用來控制控制開關 旅濟*/、^6、及98的開啟或關閉,以及一旗標暫存器77, 旗“暫存器7 7包含一條件旗# γ β用來暫左 ,. 之比較結果。 平仵旗‘ 76用果暫存一比較執行動作 控制開關9 2、9 4、9 6、及9 8可為多工器 、λ晶體 '或其它設計用來以可控制的方 ΐίΐΐϊ—電子訊號通過的*置及所有屬於本發明岸 c裝:。此外,指令槽82、84、86、及88、以 =於示…,而是任二=可 |計…能…心5裝實際的電路設 I控制電i ^可令Λ元义載入。至指-令暫存器79中以備執行, 將暫存於旗標^工1、稷數個比較器或電晶體等) 丨8。内的條:7=的=件旗標76與條件式執行標頭 卜,= Ϊ超;指令字元的指令槽…84、86 於位於 |果條件旗標76與條件指標8〇a、8〇b、8〇c、及仃☆中 第14頁 591531 五、發明說明(ίο) 的 個或一個以上的條件指標相同,那麼只要是Α :=:行,,、及8_條件旗標76相同^^ 請同時參考圖三中第62行之c超指^老 之條件指標為”.c.(· Nc. NC",盆可長/y子,,此處 τ。雷二丁動作已經將條件旗標設定為 --^ ,,、你寺於 1 )相比。因為條件旌庐7fi、士 汉疋之值與條件指標8〇a之值相, 二::旗軚76被 開啟(open)對應之控制開關92以使工_、路75就會 指令槽82傳送至功能單元83以備 ==動作得以從 75將條件旗標76與其餘之條相^地,控制電路 比’且依據相比的結果來控;=、8〇。、,80d相 98之開啟或關閉。因此,在這個;96、及 大於零,那麼指令槽82、844? 千f 如果第60行中R〇 指令槽86、88中的動二2 =執行動作將會被執行,而 之另一第二CEX超長指^^將其不會被執行:而第64行中 ".C. NC",因j:匕,在第64行中,⑮人才曰=為 會被執行’而指令槽84内之指令則、曰會^内執T。行動作將 作4;:之】;Π:”作程序與上述的實施例的運 ,、及輪: = · 千旗払76以標明一特定之執行 591531 五、發明說明(11) |動作是否會被執行,取而代之的是利用另一不同於條 標76之旗標、暫存器、或數值、甚或是三種的組合等來J 條件指標80a、8〇b、80 c'及80d相比。上述的這種藉〔高 度地調整該特定之旗標、暫存器、或值的系:可:以 取一將被執行之程式碼中的特定部份、用來除錯、用= 許一單一程式卻可在不同的情況下以不同的模式執行、= 其它任何目的。很顯然地,本實施例中的控制電路係 該旗標、該暫存器、及該值的輸入值來與條件指標8〇a、要 I 8 0 b、8 0 c、及 8 0 d相比。 . 相較於習知之技術,本發明可減少程式執行時跳行的 f生次數以進而減少超長指令字元處理器中的分枝延遲。 本,明在減少分枝延遲的同時並不需佔用超長指令字元 行動作額外的位元空間,如此就能避免增加種式 別& i 。t,、本發明另可對每一執行動作的執行作各 J S二户二ί程ί執ί!時因跳行所引起的分枝延遲常是影 2二二=兀处理裔執行速度的重要因素,而本發明確 實已提供有效的改善方法。 丨例如ΐ i:: i斤運ϊ i f件旗標僅是眾多指標中的一種, 標之中所引用的暫存器等也可作為指 | 、項特徵也^知技術所欠缺的。 以上所述僅為本發明之較佳實施例,凡依本發明申請 酬 第16頁 591531Page 13 591531 V. Description of the invention (9) '~'-$ 82, 84, 86, and 88 and corresponding functional units between, 85, 7, and 7 are used to control whether an execution action can be performed From the instruction slots 82, ^ 86, and ⑽ to the function units 83, 85, 87, and 89. The super long finger is processed as 73. It also includes a control circuit 75 for controlling the opening / closing of the switch * /, ^ 6, and 98, and a flag register 77, and the flag "register 7 7 contains a The condition flag # γ β is used to temporarily compare the results of the left and right. The flat flag '76 temporarily stores a comparison and performs an action control switch 9 2, 9 4, 9 6, and 9 8 can be a multiplexer and a lambda crystal. 'Or other devices designed to control in a controlled way—the electronic signal passed through and all belonging to the present invention: In addition, the instruction slots 82, 84, 86, and 88 are shown in ..., but Any two = may | can ... can ... install the actual circuit settings I control the electric power i ^ can load Λyuanyi. To the instruction-order register 79 for execution, it will be temporarily stored in the flag ^ work 1. 稷 several comparators or transistors, etc.) 丨 8. Inner bar: 7 == piece flag 76 and conditional execution header BU, = Ϊ super; instruction slot of instruction characters ... 84, 86 in The condition flag 76 located in the | fruit condition flag is the same as the condition index 80a, 80b, 80c, and 仃 on page 14 of 591531. V. The invention description (ίο) has one or more condition indicators, so as long as it is : =: OK,, and 8_ condition flag 76 is the same ^^ Please also refer to the super index of c in line 62 in Figure 3 ^ The condition indicator for old is ".c. (· Nc. NC " / y sub, here τ. Lei Erding action has set the condition flag to-^, compared to your temple. Because the values of the condition 7fi and the shihanji are the same as the value of the condition indicator 80a, 2: The flag 76 is turned on, and the corresponding control switch 92 is opened, so that the operation channel 75 will instruct the slot 82 to transmit. To the functional unit 83 in preparation for == action, the condition flag 76 can be compared with the rest from 75, and the control circuit is controlled based on the comparison result; =, 80. , 80d Phase 98 on or off. Therefore, at this; 96, and greater than zero, then the instruction slots 82, 844? F If the 60th line of the R0 instruction slot 86, 88 moves 2 = the execution action will be executed, and the other Two CEX long fingers ^^ will not be executed: and ".C. NC" in line 64, because j: dagger, in line 64, the person said: = will be executed, and the instruction slot The order within 84 is said to hold T inside. Actions will be made 4 ;: 之]; Π: "The operation procedure and operation of the above-mentioned embodiment, and round: = · Thousands of flags 76 to indicate a specific execution 591531 V. Description of the invention (11) | Whether the action It will be executed instead, using another flag, register, or value, or even a combination of the three, which is different from the bar 76 to compare the condition indicators 80a, 80b, 80c ', and 80d. The above-mentioned borrowing [adjusts the specific flag, register, or value highly: can: take a specific part of the code to be executed, use for debugging, use = xuyi A single program can be executed in different modes in different situations, = any other purpose. Obviously, the control circuit in this embodiment is the flag, the register, and the input value of the value and conditions Compared with the indicator 80a, I 8 0 b, 80 c, and 8 0 d. Compared with the conventional technology, the present invention can reduce the number of times of f-line skipping during program execution, thereby reducing ultra-long instruction words. Branching delay in the meta processor. In this paper, it is not necessary to occupy very long instruction word lines while reducing the branching delay. The extra bit space of the action can avoid increasing the type & i.t. The present invention can also perform the execution of each execution action. The branch delay caused is often an important factor in the execution speed of the processing processor, and the present invention does provide an effective improvement method. 丨 For example, ΐ i :: i: 运 斤 if flags are just a number of indicators One of them, the register, etc. cited in the subject can also be used as a reference, and the features are also lacking in the known technology. The above is only a preferred embodiment of the present invention. 16 pages 591531

第17頁 591531 圖式簡單說明 圖示簡單說明 圖一顯示以C語言所寫成""之内含一條件式指令n i f π的 程式。 圖二顯示習知編譯器將圖一中之程式轉換成一組合語 言碼。 圖三顯示本發明超長指令字元編譯器將圖一中之程式 轉換成一組合語言碼。 圖四為本發明超長指令字元處理器之硬體架構圖。 圖式之符號說明 73 超 長 指 令 字 元 處理器 75 控 制 電 路 76 條 件 旗 標 77 旗 標 暫 存 器 79 指 令 暫 存 器 82^ 8[ 86 ^ 88 指 令 槽 80 條 件 式 執 行 標 頭 83> 85〜 87^ 89 功 能 單 元 92^ 94^ 96> 98 控 制 開 關Page 17 591531 Brief description of the diagrams Brief description of the diagrams Figure 1 shows a program written in the C language with a conditional instruction n i f π. Figure 2 shows that the conventional compiler converts the program in Figure 1 into a combined language code. Fig. 3 shows that the ultra-long instruction character compiler of the present invention converts the program in Fig. 1 into a combined language code. FIG. 4 is a hardware architecture diagram of an ultra-long instruction character processor according to the present invention. Explanation of Symbols for Drawings 73 Very Long Instruction Word Processor 75 Control Circuit 76 Condition Flag 77 Flag Register 79 Instruction Register 82 ^ 8 [86 ^ 88 Instruction Slot 80 Conditional Execution Header 83> 85 ~ 87 ^ 89 function unit 92 ^ 94 ^ 96 > 98 control switch

第18頁Page 18

Claims (1)

591531 六、申請專利範圍 __ ι〇^ 長指令字元,含一條件式執行標頭曰(c令予『,該、超 ⑽。二…)及複數個執行動作:二指令字 複數個功能單元,用來同時執行一 一指令暫存器,包含複數個用來暫存該2動作; f t f複數個執行動作之指令槽,該條件g H式執行標 丨控制開關,每一控制開關以 送至該功能單元;以及 了從該柏令槽被傳 關 二控制電路,連接於該指令暫存器及 :制以以:依據該,對應二條件指 JL中、4 2開關之開啟(open)或關閉(cl〇Se)·條件 = = = 會接 不會接收至1 =處於關閉以ί制開關之功能單Ϊ; 作會同時々執行㈣’…早元所接收到之執;ΐ 2 ·如申請專 其中該條件式 利範圍第1項所述之超長指令字元處理π 執行標頭中之複數個條件指標係採一對之591531 VI. Patent application scope __ ι〇 ^ Long instruction characters, including a conditional execution header (c order to ", this, super ⑽. Two ...) and multiple execution actions: two instruction words multiple functions Unit for executing one-by-one instruction registers simultaneously, including a plurality of instruction slots for temporarily storing the 2 actions; ftf, a plurality of instruction slots for executing actions, the condition g-type execution standard control switches, each control switch is sent To the functional unit; and the second control circuit passed from the berth slot, connected to the instruction register and: made to: according to this, the corresponding two conditions refer to the opening of the 2 switch in JL, 4 Or close (cl〇Se) · condition = = = will not receive to receive 1 = is in the function menu to turn off the switch; at the same time the meeting will execute ㈣ '... the execution received by the early Yuan; ΐ 2 · such as Apply for the extra long instruction character processing described in item 1 of the conditional benefit range. The execution condition of the plural condition indicators in the header is one pair. 第19頁 上 六、申請專利範圍 方式對應於該超長指令字元中 ^ 3.如申請專利— 纟數個執行動作 其中該執行動作上項作所:之超長指令字元處理器, 所執仃之執行動作。 ..、、,用來標明將被該功能單元 !.另ί:請!利範圍第1項所迷之赶長# 果—條件旗標,用來標明比Λ令行字動=理^^ i.二 =:;【:項_所λ…令字…器, 如申凊專利範圍第$項所 其中該執行動作係於該條件指迷之超長指令字元處理器, 被執打。 ‘與該條件旗標的值相等時 7· 一種超長指令字元虛理哭 用來執行-超長指令字元,該超^ t:複數個功能單元, 執行標頭及複數個執行動作,將^ ΐ字元包含一條件式 J多只能等於該複數個功能單元之數了的執行動作之數量 處理器包含: 數夏,該超長指令^里 指令暫存器,包含複數個 疋 頭及該複數個執行動作之指令槽,心執行標 仃^碩内包 /、、申請專利範圍 " " t,數,條件指標,該條件指標之數量係等於包含於該超 於二7,元内的執行動作之數量,且每一條件指標僅對應 動Μ Ϊ行動作,每一條件指標皆用來標明該相對應之 動作t何種條件下才會被執行; 入複2個控制開關,用來控制一執行動作是否可從該指 一 > ϊΪ傳送至該功能單元,每一控制開關皆係以一對 一式連接於一指令槽及一功能單元;以及 關,# ί ίΐ ί路,連接於該指令暫存器及該複數個控制開 時開=Γ而1路於該相對應之執行動作符合被執行之條件 關閉。 、、該相對應之執行動作不符合被執行之條件時 如申請專利範圍第7項所 其中該執行動作3人 ^ .义心茭長抬令子兀處理态, 所執行之執行動=Τ 碼,用來標明將被該功能單元 i a人s專利範圍第7項所述之超导#人玄-占 果。 來軚明一比較執行動作之比較結 士如申請專利範圍第9項 其中該執行動作仫认4± 4之超長‘令子元處理器, 被執行。 條件指標與該條件旗標的值相等日 591531 六、申請專利範圍 丨長指令字元包含3之程式執行方法,該超 器,該指令暫存器包含複指令暫存 及該複數個執行動作之指令槽,旦t Μ條件式執行標頭 含複數個功能單元,用來同‘執g ‘ 1旨=字元處理器另包 控制開關,每—控制開關皆係以—二作,以及複數個 令槽及一功能單元之間,用來控+二之方式連接於一指 指令暫存器被傳送至該功能單^=動作是否可從該 I於該相對應之執行動作符合被i行方法包含: 電路開啟,而於該相對應之執行動 f件時將該控制 |時將該控制電路關閉。 付5被執行之條件 1 2.如申請專利範圍第丨丨項所述之 超長指令字元處理器另包含一條件旗J執法,其中該 執行動作之比較結果。、不 用來標明一比較 1 3 ·如申請專利範圍第丨2項所述之程 執行動作係於該條件指標與該條件旗_ 二=,其中該 行。 银‘的值相等時被執On page 19, the method of applying for a patent scope corresponds to the super-long instruction character ^ 3. If the patent is applied for-several execution actions, where the execution action is performed by the above action: the super-long instruction character processor, all The execution of the execution. .. ,,, used to indicate that this functional unit will be used !. Also: Please! The scope of the 1st item of the range of interest is confusing # fruit—conditional flag, which is used to indicate that than Λ 令 行 字 动 = 理 ^^ i. 二 = :; [: 项 _ 所 λ… 令 字… 器, as applied凊 The execution action in item $ of the patent scope is executed by the ultra-long instruction character processor of the condition indicator fan. 'When the value of the condition flag is equal to 7. A super-long instruction character is used to execute-an ultra-long instruction character, the super ^ t: a plurality of functional units, which execute a header and a plurality of execution actions, ^ The character ΐ contains a conditional expression J which can only be equal to the number of the plurality of functional units. The number of execution actions The processor includes: Number of summers, the extra-long instruction ^ The instruction register contains multiple gimmicks and The plurality of instruction slots for performing actions, including the execution of the standard ^^, and the scope of patent application " " t, number, condition indicators, the number of condition indicators is equal to the number included in the over 7,7 yuan Number of execution actions, and each condition indicator only corresponds to the moving action, each condition indicator is used to indicate under what conditions the corresponding action t will be executed; enter 2 control switches, use To control whether an execution action can be transferred from the finger to the functional unit, each control switch is connected to a command slot and a functional unit in a one-to-one manner; and off, # ί 路, connect In the instruction Register and said plurality of control when opening the opening 1 = Γ way to perform the operation corresponding to the closed subject to the conditions of execution. 2. When the corresponding execution action does not meet the conditions to be executed, such as 3 persons in the execution scope of the patent application scope item 7 ^. The righteousness is long and the order is executed. The execution action = T code, It is used to indicate the superconducting # 人 玄-占 果 which will be described in item 7 of the patent scope of this functional unit. Lai Mingming compares the execution actions and compares the results. For example, the scope of patent application is item 9 where the execution action recognizes the super long ‘order sub-processor’ of 4 ± 4 and is executed. Condition indicator and the value of the condition flag are equal to the date 591531 VI. Patent application scope 丨 Long instruction characters include a program execution method of 3, the super device, the instruction register includes a plurality of instructions temporary storage and the plurality of execution instructions Slot, once t Μ conditional execution header contains a number of functional units, used for the same as the "execution g" 1 purpose = character processor to include control switches, each control switch is based on-two works, and multiple commands Between a slot and a functional unit, used to control +2 way to connect to a one-finger instruction register is transmitted to the function list ^ = whether the action can be performed from the I to the corresponding execution action is included by the i method : The circuit is turned on, and the control circuit is turned off when the corresponding actuator is executed. Pay 5 conditions for execution 1 2. The super-long instruction character processor described in item 丨 丨 of the patent application scope also includes a condition flag J enforcement, where the comparison result of the execution action. 、 Not used to indicate a comparison 1 3 · As described in item 丨 2 of the scope of patent application, the execution action is based on the condition indicator and the condition flag_2 =, where the line. ‘Silver’ is executed when the values are equal
TW91122238A 2002-09-26 2002-09-26 Conditional execution control head in a VLIW processor TW591531B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW91122238A TW591531B (en) 2002-09-26 2002-09-26 Conditional execution control head in a VLIW processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW91122238A TW591531B (en) 2002-09-26 2002-09-26 Conditional execution control head in a VLIW processor

Publications (1)

Publication Number Publication Date
TW591531B true TW591531B (en) 2004-06-11

Family

ID=34057873

Family Applications (1)

Application Number Title Priority Date Filing Date
TW91122238A TW591531B (en) 2002-09-26 2002-09-26 Conditional execution control head in a VLIW processor

Country Status (1)

Country Link
TW (1) TW591531B (en)

Similar Documents

Publication Publication Date Title
EP0399760B1 (en) Paired instruction processor branch recovery mechanism
US6266765B1 (en) Computer architecture capable of execution of general purpose multiple instructions
US6122656A (en) Processor configured to map logical register numbers to physical register numbers using virtual register numbers
EP0399757B1 (en) Paired instruction processor precise exception handling mechanism
JP5853303B2 (en) Optimization of register initialization operation
US5758112A (en) Pipeline processor with enhanced method and apparatus for restoring register-renaming information in the event of a branch misprediction
TWI263938B (en) Method, processor and data processing system for pre-loading a hard architected state of a next process from a pool of idle processes awaiting execution
KR100571322B1 (en) Exception handling methods, devices, and systems in pipelined processors
US6119223A (en) Map unit having rapid misprediction recovery
JPH05250159A (en) Device and method for solving dependence among plural instructions in storage device
US20120144160A1 (en) Multiple-cycle programmable processor
JPH0334024A (en) Method of branch prediction and instrument for the same
JP2003523573A (en) System and method for reducing write traffic in a processor
JPH04260950A (en) Cache memory device
TWI613590B (en) Flexible instruction execution in a processor pipeline
US6266763B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
EP1122639A2 (en) Mechanism for load block on store address generation and universal dependency vector/queue entry
KR20060029614A (en) Method and data processor with reduced stalling due to operand dependencies
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
JP3736866B2 (en) Micro control unit for super pipeline superscalar microprocessor
TWI613589B (en) Flexible instruction execution in a processor pipeline
US6092184A (en) Parallel processing of pipelined instructions having register dependencies
TW591531B (en) Conditional execution control head in a VLIW processor
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees