TWI509509B - 資料儲存方法與應用其之處理器 - Google Patents

資料儲存方法與應用其之處理器 Download PDF

Info

Publication number
TWI509509B
TWI509509B TW098101681A TW98101681A TWI509509B TW I509509 B TWI509509 B TW I509509B TW 098101681 A TW098101681 A TW 098101681A TW 98101681 A TW98101681 A TW 98101681A TW I509509 B TWI509509 B TW I509509B
Authority
TW
Taiwan
Prior art keywords
instruction
storage
late
processing unit
data
Prior art date
Application number
TW098101681A
Other languages
English (en)
Other versions
TW201028917A (en
Inventor
Sheng Yuan Jan
Original Assignee
Realtek Semiconductor 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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to TW098101681A priority Critical patent/TWI509509B/zh
Priority to US12/688,071 priority patent/US20100185834A1/en
Publication of TW201028917A publication Critical patent/TW201028917A/zh
Application granted granted Critical
Publication of TWI509509B publication Critical patent/TWI509509B/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

資料儲存方法與應用其之處理器
本發明是有關於一種資料儲存方法與應用其之處理器,且特別是有關於一種應用於具有一管線化處理單元之處理器之資料儲存方法與其處理器。
管線(pipeline)是一種能讓指令可以平行執行的技術,且能提高處理器之硬體效能。亦即,使用管線處理方式的處理器將能增加指令的產出率(throughput)(產出率意指:每單位時間內處理器所能完成的指令的數量)。而且,此種處理器還不會降低每個指令所需的處理時間。
然而,於某些狀況下,對造成使用管線處理的處理器的執行效能降低,此種狀況稱之為處理器之危障(hazard)。一種常見的危障係資料危障。舉例來說,在一處理時段中,當處理器於管線中要擷取一儲存指令所對應的一儲存資料時,而此儲存資料正好為一個預定指令(如載入指令)的執行結果,此時,若此預定指令尚未產生其執行結果,便會發生資料危障。此時,處理器在處理儲存指令時,便需要暫停(stall)此儲存指令的進行。如此,將會造成處理器的執行效率降低。
因此,如何使處理器在發生資料危障時不需暫停儲存指令的進行,來提高處理器的執行效率,乃業界所致力之課題之一。
本發明係有關於一種資料儲存方法與應用其之處理器,能使處理器在發生資料危障時不需暫停儲存指令的進行。如此,將能增加處理器的指令產出率,減少處理器在執行程式時所需的時間,並能提高處理器的執行效率。
根據本發明之第一方面,提出一種資料儲存方法,應用於具有一管線化(pipeline)處理單元之處理器。管線化處理單元包括多個級(stage),此些級至少包括一來源擷取級與一資料寫入級。此方法包括下列步驟。首先,擷取(fetch)一儲存指令,並解碼此儲存指令。接著,使儲存指令進入來源擷取級,並判斷是否有一遲完成指令(late-doneinstruction)位於管線化處理單元中。遲完成指令不落後於儲存指令,且遲完成指令在進入資料寫入級之前係產生一遲來臨結果(late-coming result)。之後,若判定有遲完成指令位於管線化處理單元中,則在儲存指令進入資料寫入級之前,擷取遲來臨結果。然後,使儲存指令進入資料寫入級,並將所擷取之遲來臨結果儲存至儲存指令所對應之一目的記憶體。
根據本發明之第二方面,提出一種處理器,包括一管線化處理單元及一第一暫存單元。管線化處理單元包括多個級,此些級至少包括一來源擷取級與一資料寫入級。管線化處理單元用以擷取一儲存指令,並解碼此儲存指令。管線化處理單元用以使儲存指令依序至少進入來源擷取級與資料寫入級。管線化處理單元更用以判斷是否有一遲完成指令位於管線化處理單元中。遲完成指令不落後於儲存指令,且遲完成指令在進入資料寫入級之前係產生一遲來臨結果。第一暫存單元設置於資料寫入級之前,用以儲存遲來臨結果。若管線化處理單元判定有遲完成指令位於管線化處理單元中,則管線化處理單元更用以在儲存指令進入資料寫入級之前,擷取遲來臨結果。管線化處理單元另用以當儲存指令進入資料寫入級時,將所擷取之遲來臨結果儲存至儲存指令所對應之一目的記憶體。
為讓本發明之上述內容能更明顯易懂,下文特舉實施例,並配合所附圖式,作詳細說明如下。
請參照第1圖,其繪示依照本發明一實施例之資料儲存方法之流程圖。此資料儲存方法應用於具有一管線化(pipeline)處理單元之處理器。管線化處理單元包括多個級(stage),而此些級包括一來源擷取級與一資料寫入級。此方法包括下列步驟。
首先,如步驟S110所示,擷取(fetch)一儲存指令,並解碼此儲存指令。
接著,如步驟S120所示,使儲存指令進入來源擷取級,並判斷是否有一遲完成指令(late-done instruction)位於管線化處理單元中。遲完成指令係不落後於儲存指令,且遲完成指令在進入資料寫入級之前係產生一遲來臨結果(late-coming result)。
若判定有遲完成指令位於管線化處理單元中,則執行步驟S130,在儲存指令進入資料寫入級之前,擷取遲來臨結果。接著,如步驟S140所示,使儲存指令進入資料寫入級,並將所擷取之遲來臨結果儲存至儲存指令所對應之一目的記憶體。
茲將第1圖之資料儲存方法的詳細步驟說明如下。請參照第2圖,其繪示依照本發明一實施例之資料儲存方法之詳細步驟之流程圖。
首先,如步驟S202所示,擷取一儲存指令。接著,如步驟S204所示,解碼此儲存指令。解碼此儲存指令之後,便能取得儲存指令所對應之一儲存資料暫存器之索引值與用以儲存一目的記憶體之位址的暫存器索引值。
然後,如步驟S206所示,使儲存指令進入來源擷取級。接著,如步驟S208所示,判斷是否有遲完成指令位於管線化處理單元中。
請注意,在一實施例中,於判斷是否有遲完成指令位於管線化處理單元中時,步驟S208可更包括下列詳細步驟:首先,判斷儲存指令所對應之儲存資料暫存器之索引值與遲完成指令所對應之一目的地暫存器之索引值是否相同,其中目的地暫存器用以儲存遲來臨結果。之後,判斷儲存指令進入來源擷取級之時,遲完成指令是否尚未產生遲來臨結果。然後,判斷儲存指令進入資料寫入級之前,遲完成指令是否已經產生遲來臨結果。在一實施例中,所產生之遲來臨結果係儲存於一暫存單元中。
若有遲完成指令位於管線化處理單元中,則執行步驟S210,將一旗標設為未備妥。若沒有遲完成指令位於管線化處理單元中,則執行步驟S212,將旗標設為已備妥。
接著,在儲存指令位於資料寫入級之前,執行步驟S214,判斷旗標是否被設為已備妥。
若旗標並非被設為已備妥,則執行步驟S216,從此暫存單元擷取遲來臨結果。然後,如步驟S218所示,使儲存指令進入資料寫入級,並將所擷取之遲來臨結果儲存至儲存指令所對應之目的記憶體。
若旗標被設為已備妥,則執行步驟S220,從儲存指令所對應之儲存資料暫存器中擷取一儲存資料。然後,如步驟S222所示,使儲存指令進入資料寫入級,並將儲存資料儲存至儲存指令所對應之目的記憶體,並結束本方法。
本發明之資料儲存方法係可應用於具有管線化處理單元之處理器中,上述之遲完成指令可為任意指令。在一實施例中,遲完成指令為一載入(load)指令或一運算邏輯單元(Arithmetic Logic Unit)指令。茲以兩個例子將本發明之遲完成指令說明如下。
第一個例子
於第一個例子中,遲完成指令為一載入指令LW,而遲完成指令所產生之遲完成結果為載入指令LW所產生之載入資料。
請參照第3圖,其繪示乃應用本發明之資料儲存方法之一處理器之管線化處理單元320及指令之處理順序之一例之示意圖。管線化處理單元320包括一指令擷取級I、一來源擷取級S、一執行級E、一記憶體存取級M、及一資料寫入級W。
於第3圖中,繪示為“時脈”的方向係表示為時間的順序,其中,各處理時段C1~C6所表示之長度為一個機械週期(machine cycle)。換言之,管線化處理單元320之各級的處理時段為一個機械週期。
於此例中,載入指令LW與儲存指令SW係依序被管線化處理單元320在指令擷取級I中所擷取。所擷取之載入指令LW與儲存指令SW分別如下:“lw $1,0($2)”“sw $1,0($3)”其中,載入指令LW(“lw $1,0($2)”)用以將一載入資料(其係儲存於位址為[$2]的目的記憶體中)載入至一目的地暫存器(其暫存器索引值為$1)中,而儲存指令SW(“sw $1,0($3)”)用以將一儲存資料暫存器(其暫存器索引值為$1)中的資料儲存到位址為[$3]之目的記憶體中。
依據步驟S208之詳細步驟,管線化處理單元320將會判定儲存指令SW所對應之儲存資料暫存器之索引值($1)與載入指令LW所對應之目的地暫存器之索引值($1)係相同。
再者,如第3圖所示,載入資料係為載入指令LW於進入記憶體存取級M時(如處理時段C4)所產生。故知,管線化處理單元320將會判定儲存指令SW進入來源擷取級S之時(如處理時段C3),載入指令LW尚未產生載入資料。而且,管線化處理單元320更判定儲存指令SW進入資料寫入級W之前(如處理時段C6之前),載入指令LW已經產生載入資料。
故知,於第一個例子中,管線化處理單元320將會把上述之載入指令LW視為遲完成指令,而判定有遲完成指令位於管線化處理單元320中。
第二個例子
於第二個例子中,遲完成指令為一運算邏輯單元指令ALU,而遲完成指令所產生之遲完成結果為運算邏輯單元指令ALU所產生之運算結果。
請參照第4圖,其繪示乃應用本發明之資料儲存方法之一處理器之管線化處理單元420及指令之處理順序之另一例之示意圖。於此例中,處理器為能同時執行二個指令之處理器,例如為一雙通道(two way)的超純量(superscalar)微處理器。管線化處理單元420包括並列之二個指令擷取級I、二個來源擷取級S、二個執行級E、二個記憶體存取級M、及二個資料寫入級W。
於此例中,運算邏輯單元指令ALU與儲存指令SW係同時被此管線化處理單元420在指令擷取級I中所擷取。所擷取之運算邏輯單元指令ALU與儲存指令SW分別如下:“add $1,$1,1”
“sw $1,0($3)”其中,運算邏輯單元指令ALU(“add $1,$1,1”)用以將儲存於暫存器索引值為$1之暫存器中之數值加1,再將運算結果儲存至一目的地暫存器(其暫存器索引值為$1)中,而 儲存指令(“sw $1,0($3)”)用以將一儲存資料暫存器(其暫存器索引值為$1)中的資料儲存到位址為[$3]之目的記憶體中。
相仿於第一個例子地,管線化處理單元420亦會判定儲存指令SW所對應之儲存資料暫存器之索引值($1)與運算邏輯單元指令ALU所對應之目的地暫存器之索引值($1)係相同。
再者,如第4圖所示,運算結果係為運算邏輯單元指令ALU於進入執行級E時(如處理時段C3)所產生。故知,管線化處理單元420將會判定儲存指令SW進入來源擷取級S之時(如處理時段C2),運算邏輯單元指令ALU尚未產生運算結果。而且,管線化處理單元420更判定儲存指令SW進入資料寫入級W之前(如處理時段C5之前),運算邏輯單元指令ALU已經產生運算結果。
故知,於第二個例子中,管線化處理單元420將會把上述之運算邏輯單元指令ALU視為遲完成指令,而判定有遲完成指令位於管線化處理單元420中。
於上述兩個例子中,當判定有遲完成指令(如載入指令LW或運算邏輯單元指令ALU)位於管線化處理單元中時,遲來臨結果(載入資料或運算結果)將會被儲存於一暫存單元540(未繪示於第3及4圖中)。之後,在儲存指令SW位於資料寫入級W之前,例如儲存指令SW在位於記憶體存取級M或在執行級E(如第3圖或第4圖之虛線所示)時,再從此暫存單元540擷取遲來臨結果。然後,在儲存指令SW進入資料寫入級W時,此遲來臨結果係被儲存至儲存指令SW所對應之目的記憶體。
如此,由第3及4圖可知,即使儲存指令SW進入來源擷取級S之時發生資料危障,意即處理器尚未能取得遲來臨指令所產生的遲來臨結果,處理器亦不需暫停此儲存指令SW的進行,只要能在儲存指令SW位於資料寫入級W之前取得此遲來臨結果,便能完成儲存指令SW所指示的動作。
因此,本發明能使處理器在發生資料危障時不需暫停儲存指令的進行。如此,將能增加處理器的指令產出率,減少處理器在執行程式時所需的時間,並能提高處理器的執行效率。
此外,本發明更提出一種可應用上述之資料儲存方法之處理器。請參照第5圖,其繪示為應用本發明之資料儲存方法之一處理器500之方塊圖。
處理器500包括一管線化處理單元520及一第一暫存單元540、一第二暫存單元560、及一選擇單元580。於一實施例中,處理器500是能依序處理指令之處理器,或是能同時執行至少二個指令之處理器。舉例來說,處理器500之管線化處理單元520可由第3圖之能依序處理執令之管線化處理單元320所實現,或可由第4圖之能同時處理二個指令的管線化處理單元420所實現,或可由能同時多個指令的管線化處理單元所實現。
管線化處理單元520包括多個級。此些級至少包括一來源擷取級S與一資料寫入級W。管線化處理單元520用以擷取一儲存指令SW,並解碼儲存指令SW。管線化處理單元520用以使儲存指令SW依序至少進入來源擷取級S與資料寫入級W。
管線化處理單元520更用以判斷是否有遲完成指令位於管線化處理單元520中。此遲完成指令不落後於儲存指令SW,且遲完成指令在進入資料寫入級W之前係產生遲來臨結果。此遲完成指令例如為上述兩個例子的載入指令LW或運算邏輯單元指令ALU。
第一暫存單元540係設置於資料寫入級W之前。相仿地,第二暫存單元560與選擇單元580亦可設置於資料寫入級W之前。
茲舉例將兩暫存單元540與560與選擇單元580之設置方式說明如下。於一實施例中,管線化處理單元520之此些級可更包括至少一管線處理級,且此至少一管線處理級係設置於來源擷取級S與資料寫入級W之間。
舉例來說,管線化處理單元520之此些級可更包括如第3圖或第4圖所示之記憶體存取級M與執行級E。遲完成指令在位於記憶體存取級M時係產生遲來臨結果。而儲存指令SW在進行執行級E時係產生對應之目的記憶體MEM之位址。
由於記憶體存取級M與執行級E皆設置於資料寫入級W之前,故第一暫存單元540可設置於記憶體存取級M或執行級E。相仿地,第二暫存單元560與選擇單元580亦可設置於記憶體存取級M或執行級E,在一實施例中,兩暫存單元540及560與選擇單元580係設置在同一級,其中,遲來儲存令在位於此級時係產生遲來臨結果。
第一暫存單元540用以儲存遲來臨結果,其係由管線化處理單元520在遲完成指令產生遲來臨結果時所儲存者。第二暫存單元560用以儲存一儲存資料,其係由管線化處理單元520從儲存指令SW所對應之儲存資料暫存器中所擷取者。選擇單元580耦接至兩暫存單元540及560,用以於管線化處理單元520之控制下提供遲來臨結果及儲存資料之其中之一。
管線化處理單元520更用以當儲存指令SW位於來源擷取級S,而且有遲完成指令位於管線化處理單元520中時,將一旗標設為未備妥。反之,若沒有遲完成指令位於管線化處理單元520中時,則管線化處理單元520將旗標設為已備妥,並從儲存指令SW所對應之儲存資料暫存器中擷取儲存資料,且儲存於第二暫存單元560中。
之後,若旗標被設為未備妥,則管線化處理單元520更用以在儲存指令SW進入資料寫入級W之前,從第一暫存單元540擷取遲來臨結果。例如:管線化處理單元520可控制選擇單元580,以從第一暫存單元540擷取遲來臨結果。接著,管線化處理單元520在儲存指令SW進入資料寫入級W時,將所擷取之遲來臨結果儲存至儲存指令SW所對應之目的記憶體MEM。
對應地,若旗標被設為已備妥,管線化處理單元520更用以在儲存指令SW進入資料寫入級W之前控制選擇單元580,以從第二暫存單元560擷取儲存資料。之後,管線化處理單元520在儲存指令SW位於資料寫入級W之時,將儲存資料儲存至儲存指令SW所對應之目的記憶體MEM。
於本發明上述實施例中,係以處理器具有如第3圖或第4圖所示之五級的管線處理單元為例做說明,其係說明本發明之用,非用以限制本發明。本發明所揭露之資料儲存方法與應用其之處理器亦適用於其它類型的管線處理單元。
本發明上述實施例所揭露之資料儲存方法與應用其之處理器,能使處理器在發生資料危障時不需暫停儲存指令的進行。如此,將能增加處理器的指令產出率,減少處理器在執行程式時所需的時間,並能提高處理器的執行效率。
綜上所述,雖然本發明已以一實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
320、420、520‧‧‧管線化處理單元
500‧‧‧處理器
540‧‧‧第一暫存單元
560‧‧‧第二暫存單元
580‧‧‧選擇單元
ALU‧‧‧運算邏輯單元指令
E‧‧‧執行級
I‧‧‧指令擷取級
LW‧‧‧載入指令
M‧‧‧記憶體存取級
MEM‧‧‧目的記憶體
S‧‧‧來源擷取級
S110~S140、S202~S222‧‧‧流程步驟
SW‧‧‧儲存指令
W‧‧‧資料寫入級
第1圖繪示依照本發明一實施例之資料儲存方法之流程圖。
第2圖繪示依照本發明一實施例之資料儲存方法之詳細步驟之流程圖。
第3圖繪示乃應用本發明之資料儲存方法之一處理器之管線化處理單元及指令之處理順序之一例之示意圖。
第4圖繪示乃應用本發明之資料儲存方法之一處理器之管線化處理單元及指令之處理順序之另一例之示意圖。
第5圖繪示為應用本發明之資料儲存方法之一處理器之方塊圖。
S110~S140...流程步驟

Claims (20)

  1. 一種資料儲存方法,應用於具有一管線化(pipeline)處理單元之處理器,該管線化處理單元包括複數個級(stage),該些級至少包括一來源擷取級、一資料寫入級與一記憶體儲存級,該方法包括:擷取(fetch)一儲存指令,並解碼該儲存指令;使該儲存指令進入該來源擷取級,並判斷是否有與該儲存指令有資料相依之一遲完成指令(late-done instruction)位於該管線化處理單元中,該遲完成指令不落後於該儲存指令;若有該遲完成指令位於該管線化處理單元中,根據該遲完成指令在該儲存指令進入該來源擷取級之後且進入該資料寫入級之前產生一遲來臨結果(late-coming result)並將該遲來臨結果儲存於一第一暫存單元;若有該遲完成指令位於該管線化處理單元中,則在該儲存指令進入該資料寫入級之前,從該第一暫存單元擷取該遲來臨結果;若沒有該遲完成指令位於該管線化處理單元中,且該儲存指令位於該來源擷取級時,從該儲存指令所對應之一儲存資料暫存器中擷取一儲存資料,並將該儲存資料儲存於一第二暫存單元;以及使該儲存指令進入該資料寫入級,並將所擷取之該遲來臨結果儲存至該儲存指令所對應之一目的記憶體。
  2. 如申請專利範圍第1項所述之資料儲存方法,其中判斷是否有該遲完成指令位於該管線化處理單元中之 步驟包括:判斷該儲存指令所對應之一儲存資料暫存器之索引值與該遲完成指令所對應之一目的地暫存器之索引值是否相同,其中該目的地暫存器用以儲存該遲來臨結果;判斷該儲存指令進入該來源擷取級之時,該遲完成指令是否尚未產生該遲來臨結果;以及判斷該儲存指令進入該資料寫入級之前,該遲完成指令是否已經產生該遲來臨結果。
  3. 如申請專利範圍第1項所述之資料儲存方法,其中擷取該遲來臨結果之步驟前,該方法更包括:當該儲存指令位於該來源擷取級,而且有該遲完成指令位於該管線化處理單元中時,將一旗標設為未備妥;以及若該旗標被設為未備妥,則執行在該儲存指令進入該資料寫入級之前擷取該遲來臨結果之步驟。
  4. 如申請專利範圍第1項所述之資料儲存方法,更包括:當該儲存指令位於該來源擷取級,而且沒有該遲完成指令位於該管線化處理單元中時,將一旗標設為已備妥;以及若該旗標被設為已備妥,則在該儲存指令位於該資料寫入級時,將該儲存資料儲存至該儲存指令所對應之該目的記憶體,並結束本方法。
  5. 如申請專利範圍第1項所述之資料儲存方法,其中該些級更包括設置於該資料寫入級之前之一記憶體存 取級,該第一暫存單元係設置於該記憶體存取級;以及其中該遲完成指令在位於該記憶體存取級時產生該遲來臨結果。
  6. 如申請專利範圍第1項所述之資料儲存方法,其中該些級更包括設置於該資料寫入級之前之一記憶體存取級,及設置於該記憶體存取級之前之一執行級,該第一暫存單元係設置於該執行級;以及其中該儲存指令在位於該執行級時產生對應之該目的記憶體之位址,且該遲完成指令在位於該執行級時產生該遲來臨結果。
  7. 如申請專利範圍第1項所述之資料儲存方法,其中該遲完成指令係一載入(load)指令或一運算邏輯單元(Arithmetic Logic Unit,ALU)指令。
  8. 如申請專利範圍第1項所述之資料儲存方法,該處理器係能同時執行至少二個指令之處理器。
  9. 如申請專利範圍第1項所述之資料儲存方法,其中該些級更包括至少一管線處理級,該至少一管線處理級係設置於該來源擷取級與該資料寫入級之間。
  10. 一種處理器,包括:一管線化處理單元,包括複數個級,該些級至少包括一來源擷取級、一資料寫入級與一記憶體儲存級,該管線化處理單元用以擷取一儲存指令,並解碼該儲存指令,該管線化處理單元用以使該儲存指令依序至少進入該來源擷取級、該記憶體儲存級、與該資料寫入級,該管線化處理單元更用以判斷是否有與該儲存指令有資料相依且不 落後於該儲存指令之一遲完成指令位於該管線化處理單元中,以及根據該遲完成指令在該儲存指令進入該來源擷取級之後且進入該資料寫入級之前產生一遲來臨結果;以及一第一暫存單元,設置於該資料寫入級之前,用以儲存該遲來臨結果;其中,若該管線化處理單元判定有該遲完成指令位於該管線化處理單元中,則該管線化處理單元更用以在該儲存指令進入該資料寫入級之前,從該第一暫存單元擷取該遲來臨結果;其中,該管線化處理單元另用以當該儲存指令進入該資料寫入級時,將所擷取之該遲來臨結果儲存至該儲存指令所對應之一目的記憶體;其中,該管線化處理單元更用以當沒有該遲完成指令位於該管線化處理單元中,且該儲存指令位於該來源擷取級時,從該儲存指令所對應之一儲存資料暫存器中擷取一儲存資料;以及其中,該處理器更包括:一第二暫存單元,設置於該資料寫入級之前,用以儲存該管線化處理單元從該儲存資料暫存器中所擷取之該儲存資料。
  11. 如申請專利範圍第10項所述之處理器,其中當該管線化處理單元判斷是否有該遲完成指令位於該管線化處理單元中時,該管線化處理單元係判斷該儲存指令所對應之一儲存資料暫存器之索引值與該遲完成指令所對應之一目的地暫存器之索引值是否相同,其中該目的地暫 存器用以儲存該遲來臨結果,該管線化處理單元更判斷該儲存指令進入該來源擷取級之時,該遲完成指令是否尚未產生該遲來臨結果,且該管線化處理單元另判斷該儲存指令進入該資料寫入級之前,該遲完成指令是否已經產生該遲來臨結果。
  12. 如申請專利範圍第10項所述之處理器,其中該管線化處理單元更用以當該儲存指令位於該來源擷取級,而且有該遲完成指令位於該管線化處理單元中時,將一旗標設為未備妥;以及其中若該旗標被設為未備妥,則該管線化處理單元在該儲存指令進入該資料寫入級之前擷取該遲來臨結果。
  13. 如申請專利範圍第10項所述之處理器,其中該管線化處理單元更用以當該儲存指令位於該來源擷取級,而且沒有該遲完成指令位於該管線化處理單元中時,將一旗標設為已備妥;以及其中,若該旗標被設為已備妥,則該管線化處理單元另用以當該儲存指令位於該資料寫入級之時,將該儲存資料儲存至該儲存指令所對應之該目的記憶體,並不再將該遲來臨結果儲存至該目的記憶體。
  14. 如申請專利範圍第13項所述之處理器,更包括:一選擇單元,設置於該資料寫入級之前,耦接至該第一及該第二暫存單元,用以於該管線化處理單元之控制下提供該遲來臨結果及該儲存資料之其中之一。
  15. 如申請專利範圍第10項所述之處理器,其中在該遲完成指令產生該遲來臨結果時,該管線化處理單元係 將該遲來臨結果儲存於該第一暫存單元。
  16. 如申請專利範圍第15項所述之處理器,其中該些級更包括:一記憶體存取級,設置於該資料寫入級之前,該遲完成指令在位於該記憶體存取級時係產生該遲來臨結果;其中,該第一暫存單元係設置於該記憶體存取級。
  17. 如申請專利範圍第15項所述之處理器,其中該些級更包括:一記憶體存取級,設置於該資料寫入級之前;以及一執行級,設置於該資料寫入級之前,該儲存指令在位於該執行級時係產生對應之該目的記憶體之位址,且該遲完成指令在位於該執行級時係產生該遲來臨結果;其中,該第一暫存單元係設置於該執行級。
  18. 如申請專利範圍第10項所述之處理器,其中該遲完成指令係一載入指令或一運算邏輯單元指令。
  19. 如申請專利範圍第10項所述之處理器,該處理器係能同時執行至少二個指令之處理器。
  20. 如申請專利範圍第10項所述之處理器,其中該些級更包括至少一管線處理級,該至少一管線處理級係設置於該來源擷取級與該資料寫入級之間。
TW098101681A 2009-01-16 2009-01-16 資料儲存方法與應用其之處理器 TWI509509B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098101681A TWI509509B (zh) 2009-01-16 2009-01-16 資料儲存方法與應用其之處理器
US12/688,071 US20100185834A1 (en) 2009-01-16 2010-01-15 Data Storing Method and Processor Using the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098101681A TWI509509B (zh) 2009-01-16 2009-01-16 資料儲存方法與應用其之處理器

Publications (2)

Publication Number Publication Date
TW201028917A TW201028917A (en) 2010-08-01
TWI509509B true TWI509509B (zh) 2015-11-21

Family

ID=42337872

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098101681A TWI509509B (zh) 2009-01-16 2009-01-16 資料儲存方法與應用其之處理器

Country Status (2)

Country Link
US (1) US20100185834A1 (zh)
TW (1) TWI509509B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756616B (zh) * 2020-01-14 2022-03-01 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高銘,計算機組織與結構(下),鼎茂圖書出版股份有限公司,2007年8月第1版 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756616B (zh) * 2020-01-14 2022-03-01 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Also Published As

Publication number Publication date
TW201028917A (en) 2010-08-01
US20100185834A1 (en) 2010-07-22

Similar Documents

Publication Publication Date Title
CN109272109B (zh) 神经网络模型的指令调度方法及装置
US20040054876A1 (en) Synchronising pipelines in a data processing apparatus
US8589664B2 (en) Program flow control
US9135015B1 (en) Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction
KR20100132032A (ko) 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법
JP2008515064A5 (zh)
JP5436033B2 (ja) プロセッサ
US20170123808A1 (en) Instruction fusion
TW201224991A (en) Next-instruction-type field
US8117425B2 (en) Multithread processor and method of synchronization operations among threads to be used in same
US20120089813A1 (en) Computing apparatus based on reconfigurable architecture and memory dependence correction method thereof
TWI509509B (zh) 資料儲存方法與應用其之處理器
JP2012150634A (ja) ベクトル命令制御回路及びリストベクトルの追い越し制御方法
JP5630798B1 (ja) プロセッサーおよび方法
CN105094750B (zh) 一种多线程处理器的返回地址预测方法和装置
CN106445466B (zh) 超长指令字指令集的指令处理方法及装置
CN112181492A (zh) 一种指令处理方法、指令处理装置和芯片
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
CN101782847B (zh) 数据储存方法及装置
US9323536B2 (en) Identification of missing call and return instructions for management of a return address stack
US20230168927A1 (en) Method and apparatus for adjusting instruction pipeline, memory and storage medium
JP5292831B2 (ja) プログラマブルコントローラ
US20050114634A1 (en) Internal pipeline architecture for save/restore operation to reduce latency
JP2005071351A (ja) プロセッサおよびプロセッサの動作方法
US20030191926A1 (en) Method and apparatus for performing addressing operations in a superscalar, superpipelined processor