TWI239477B - Processor and method for processing a program with comments and medium with a computer program - Google Patents

Processor and method for processing a program with comments and medium with a computer program Download PDF

Info

Publication number
TWI239477B
TWI239477B TW092126123A TW92126123A TWI239477B TW I239477 B TWI239477 B TW I239477B TW 092126123 A TW092126123 A TW 092126123A TW 92126123 A TW92126123 A TW 92126123A TW I239477 B TWI239477 B TW I239477B
Authority
TW
Taiwan
Prior art keywords
command
program
backup
subroutine
processor
Prior art date
Application number
TW092126123A
Other languages
English (en)
Other versions
TW200409025A (en
Inventor
Gerd Dirscherl
Berndt Gammel
Michael Smola
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of TW200409025A publication Critical patent/TW200409025A/zh
Application granted granted Critical
Publication of TWI239477B publication Critical patent/TWI239477B/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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Description

1239477 五、發明說明(1) , 〔發明領域〕 本發明乃是有關於處理器。特別是,本發明乃是有關於副 程式跳越的中間結果管理。 〔發明背景〕
處理器的操作乃是利用具有數個命令的程式進行控制。在 最簡單的例子中,這個處理器乃是根據預先決定的處理順 序,利用線性方式從頭到尾地處理這個程式,並且,這個 處理器並不會數度通過這個程式的任意部分。有鑑於此, 這個程式可以利用線性方式儲存及放置在這個實體記憶 體,或者,在虛擬位址空間的例子中,這個程式亦可以利 用線性方式儲存及放置在這個虛擬位址空間。
然而,為了避免重覆儲存相同命令順序的相同程式部分, 這個程式亦可以具有所謂的副程式跳越命令(呼叫命令 ),並且,當這些呼叫命令出現時,這個處理器將會自這 個程式的副程式部分繼續處理,直到這個副程式出現一個 返回命令,隨後,這個程式會可以根據處理順序,自這個 副程式跳越命令的後面位置繼續執行。利用這種方式,儲 存這個程式的記憶體將可以縮小至儲存這個副程式命令的 記憶體加上儲存這些跳越命令的記憶體,相較於每次儲存 完全副程式的記憶體。 在程式處理期間,這個處理器可能會產生中間結果,並 且,這些中間結果可能會寫入這個處理器的内部暫存器。 一方面,這些内部暫存器的寫入及讀取速度會大於這個處
第5頁 1239477 ~. 五、發明說明(2) 理為的外部記憶 性可抹除程式唯 部暫存器的記憶 器的成本較高。 理器的向速内部 這些内部暫存器 結果必須要進行 間結果才不會因 象。 在副私式長度期 本及最簡單方法 以前的處理順序 將這些暫存器内 憶體位置,諸如 這種記憶體命令 address>, rx 示法,並且,這 是表示欲儲存這 方法的缺點乃是 容的暫存器將會 進而使這個程式 需求大幅增加。 在副程式長度期 利用特殊命令預
體,諸如:隨機存取記憶體(RAM)或電 頃體(EEPR0M)。另一方面,這些内 體谷董亦會具有限制,因為這些内部暫存 在曰彳私式處理期間,為了確實容許這個處 言己憶體能夠完整存取,在程式處理期間, 仍會在副程式處理後用於主程式的中間 雀°心,如此,在副程式處理期間,這些中 為這些内部暫存器的覆寫而出現遺失現 間1備份這些内部暫存器中間結果的最基 乃疋在各個程式分支命令及這個跳越命令 1 ’提供記憶體命令於這個程式碼,藉以 谷按照暫存器順序地儲存在免於覆寫的記 :隨機^取記憶體(RAM)。舉例來說, 的個範例乃是MOV <memory i〇cati〇n ’其中/這個記憶體命令乃是使用常見表 運 w 元〈memory l〇cati〇n address〉乃 個暫存為、Rx内容的記憶體位置位址。這種 兩各個欲儲存的中間結果及各個欲儲存内 品要個或數個命令(根據資料組織), 碼的長度及各個程式分支的程式碼記憶體 間’備份暫存器内容的一種改良方法乃是 先储存欲備份的暫存器内容,藉以將欲備
第6頁 1239477 五、發明說明(3) 份的暫存器内容成群地或一次地(非個別地)儲存在一個 備份記憶體。舉例來說,這種記憶體命令的一個範例乃是 一個多重推入操作及一個多重填入操作,諸如:使用常見 表示法的Push <Rx,Ry,Rz··· >,藉此,這些暫存器Rx, Ry,Rz···的暫存器内容便可以進入一個堆疊。雖然這個程 式碼的命令列需求會因為數個記憶體命令的整合而縮小至 一列,但是,副程式處理的準備仍然會需要至少兩個命令 列,亦即:這個多重記憶體命令及這個副程式分支命令。 在副程式長度期間,備份暫存器内容的最後一種方法乃是 在這個跳越命令前登錄寫入中間結果的暫存器,進而自動 辨識欲備份的資料及暫存器内容。根據這種方法,當出現 一個分支命令時,辨識中間暫存器的暫存器内容便可以自 動視為π欲保護資料π,亦即:備份至一個堆疊或另一個備 份記憶體,而不會具有這些内部暫存器的大小限制。在最 後這種備份方法中,雖然這個程式(主程式)在跳越至副 程式的程式部分僅需要一個命令列及一個分支命令,但 是,這種自動辨別方法的缺點乃是沒有考慮那些内部暫存 器資料會在副程式處理後用到及那些内部暫存器資料不會 在副程式處理後用到,因此,備份這些資料的備份記憶體 將會大於確實需要的備份記憶體。 如先前所述,這個副程式的返回命令乃是對應於這個主程 式的跳越命令,並且,當出現這個返回命令時,這個主程 式的處理會自這個副程式跳越命令後面的一個命令繼續執 行。此時,對應於這個跳越命令的預先資料備份,這些方
1239477 五、發明說明(4) , 法亦需要額外的命令,藉以恢復進一步處理這個主程式的 資料。 對應於第一種資料備份方法的一種資料恢復方法乃是簡單 的載入命令,諸如:MOV Rx,〈back— up location address〉,並且,這些命令乃是相等於這些記憶體命令。 對應於第二種資料備份方法的一種資料恢復方法乃是利 用,舉例來說,一個多重推出命令及一個多重輸出命令, 諸如:P0P <RX,Ry,Rz··· >,藉此,對應於暫存器RX,
Ry,Rz···數目的暫存器内容便可以自這個堆疊取出並進入 這些暫存器。在最後這種跳越命令的資料備份方法中,當 出現這個返回命令(諸如:RET)時,欲恢復的暫存器内 容會自動恢復並寫入各個記憶體,其中,那些暫存器需要 自動備份的資訊(換句話說,需要自這個備份記憶體取出 多少暫存器内容,以及,這些暫存器内容需要寫入那些暫 存器)均會在π自動跳越命令”處理期間,與欲備份的暫存 器内容一起儲存在這個備份記憶體。 如先前所述,關連於這個主程式至這個副程式的呼叫命 令,在副程式處理後,備份資料以恢復至這些暫存器的命 令列需求將會重覆出現,進而使命令列的需求加倍。 相對於多數應用(諸如:個人電腦應用)的快速記憶體技 術發展,雖然呼叫副程式的額外命令列需求可能僅是一個 小問題,但是,在部分具有記憶體限制的應用中,儲存程 式碼的程式記憶體仍會利用各種方式嚴格限制。這種應用 的一個範例乃是晶片卡,諸如:用於非現金支付系統的晶
1239477 五、發明說明(5) , 片卡。產業標準可能會限制可利用的晶片面積,進而限制 可利用的記憶體容量。因應於高安全性要求,其可能會需 要昂貴且大面積的加密處理器以執行計算密集的加密演算 法,這個問題將會格外顯著。另外,晶片卡亦可能會需要 高度的使用者親切性,諸如:愈短愈好的終端機時間周 期。為了達到快速的終端機時間周期,加密計算必須要平 行處理、並取捨於晶片面積、這些加密共處理器計算時 間、及金餘長度之間。除此以外,部分晶片卡應用亦需要 自終端機轉移程式碼至晶片卡,因此,在轉移速率的限制 下,較短的程式碼長度亦可以有助於較短的終端機時間周 期。因此,在轉移程式碼至衛星或類似裝置的其他應用 中,這種情況亦同樣適用。 為了達到上述及其他目的,本發明將提供一種副程式跳越 命令的資料備份觀念,並且,本發明觀念會更具效率。 本發明的目的乃是利用申請專利範圍第1項所述的處理 器、申請專利範圍第1 9項所述的方法、及申請專利範圍第 2 0項所述的電腦程式加以達成。 本發明乃是基於下列認識,亦即:為了達成同時具有較少 時間消耗及較少記憶體消耗的副程式處理5這個副程式跳 越命令的運算元不僅可以整合這個目的地位址,並且,這 個副程式跳越命令的運算元亦可以整合備份資訊(亦即: 在副程式處理後’這個主程式仍然需要的貧料)。因此’ 這個程式將不再需要個別命令以備份資料及進行副程式跳 越,進而降低這個程式的處理時間及程式長度。另外,編
1239477 五、發明說明(6) , 譯者或程式者亦可以欲備份資料及欲備份内容的記憶體位 置。藉此,不同於先前所述的π自動跳越π命令,備份資料 的記憶體,在副程式處理後,將僅會π載入π這個主程式確 實需要的資料。 〔較佳實施例的詳細說明〕 第1圖乃是表示根據本發明較佳實施例的處理器及其環境 的電路方塊圖,藉以實施本發明在出現副程式跳越時的資 料備份方法。應該注意的是,第1圖所示的環境僅是協助 瞭解本發明方法的範例。因此,在第1圖所示的較佳實施 例中,本發明主要是提供實體位址的處理,然而,本發明 亦可以同樣適用在虛擬記憶體定址的例子中。 第1圖乃是表示一個處理器1 0,並且,這個處理器1 0會具 有一個程式記憶體1 2,諸如:電性可抹除程式唯讀記憶體 (EEPROM)或唯讀記憶體(ROM),以及一個堆疊14。另 外,這個處理器1 0會具有一個命令處理裝置1 6、一個命令 解碼器1 8、一個程式計數器2 0、及一個集合的内部暫存器 2 2。再者,這個處理器1 0亦會具有一個命令集合2 4。這個 命令解碼器1 8乃是連接至這個程式記憶體1 2,藉以由欲處 理程式2 6的命令中得到一個目前處理命令,並且,這個程 式2 6乃是儲存在這個程式記憶體1 2。 另外,這個命令解碼器1 8亦會瞭解這個命令集合2 4。這個 命令集合2 4會包括這個處理器1 0能夠處理的所有命令類型 及命令操作。這個程式2 6的各個命令及這個目前處理命令 乃是對應於這個命令集合2 4的一個命令操作,並且,僅具
第10頁 1239477 -— 五、發明說明(7) ^_____ 有運算元決定數值的差農 決定乃是根據這個命令择从亚,,這些運算元決定數值的 清楚辨別這些命令及這此的數目、大小、及目的。為了 操作均會關連一個操作^叩^刼作,各個命令及各個命令 以根據命令類型及命令二精此,這個命令解碼器18 令。另外,各個命令操別各個欲處理的輪入命 藉以執行這個命令操作。7能會:連不同妻文目的運算元, 以根據操作碼得知 ^坆個命令解碼器丨8, 屬於孩徊认 輪入命令的命令類刑,庙 /、τ ^於&個輸入命令的運算 7颂型,便可以瞭解 处理命令的操作八$ σ 11 ,在輪入這個目前 類型,逸而a個命令解碼器1 8便可以Α从則 進而向這個程式記愔 炅了以基於命令 ,屬於這個目前處同婁“的運算元, 且古二作。⑨此以外,這個命C目前 個副程式跳越命令㈣28,其將::集☆ 24亦可以 ^卜,廷個命令解碼器1 8會連接至這個二°平細說明如下。 猎以將這個目前處理命令的命令類型及:令處理骏置1 6, 給這個命令處理裝置16。 、尘及其%要運算元提供 另外,這個命令解碼器丨8會連 以在收到這個目前處理命令.時^一 /式計數器2〇,择 程式計數器20。這個程式計數界2〇=二二遞增信號至這‘ 且,這個數值總是會指向這個 θ =有、個數值,並 會指向這個…6的下-個處;i令薏,以及,總是 位置。由於這些命令合因兔 乂辕處理川頁庠、 赤X 古、富从-、為各種結構(亦&曰貝序)的 或不^有運异兀)而具有 Ρ.具有運 η長度、亚因此佔用這個程; 1239477 五、發明說明(8) , 2 6的不同位址,因此,這個遞增信號必須將位址遞增的數 目提供給這個程式計數器2 0,藉以指向這個程式2 6的下一 個處理命令。 這個處理裝置1 6會根據命令類型、並經由運算元的協助 (若存在運算元的話)以處理這些命令。在這個程式處理 期間,這個命令處理裝置1 6會將處理器中間結果及資料分 別寫入一個多重暫存器2 2,舉例來說,本發明的多重暫存 器2 2共具有十六個暫存器。另外,這個命令處理裝置1 6亦 會具有一個連接匯流排(圖中未示)的匯流排界面3 0,藉 此,這個命令處理裝置1 6便可以利用這個程式2 6的命令控 制,進而與周邊單元進行通訊,舉例來說,在晶片卡的例 子中,這些周邊單元可能是一個加密處理器、一個終端機 界面、或諸如此類的裝置。 另外,這個命令處理裝置1 6會連接至這個備份堆疊1 4,藉 以在這個副程式處理期間備份這個内部暫存器2 2的資料, 其將會詳細說明如下,藉以將這個副程式處理後的需要資 料推入這個備份堆疊1 4,其中,一個備份堆疊指標(在第 1圖中,這個備份堆疊指標乃是表示為箭頭3 2)總是會指 向最後進入的資料。 如先前所述,這個處理器1 0的結構及操作模式僅涵蓋這個 程式2 6的線性處理,而沒有出現跳越命令,諸如:副程式 跳越命令28。若目前處理命令乃是一個真實跳越命令 (JMP),其中,這個真實跳越命令(JMP)乃是要讓這個 處理器1 0能夠自不同位置繼續執行這個程式2 6,則這個命
第12頁 1239477 五、發明說明(9) ,
令處理裝置1 6會將這個真實跳越命令(JMP)的目的地位 址運算元直接寫入這個程式計數器2 0,藉以自這個目的地 位址讀取下一個處理命令,並將這個處理命令提供給這個 命令解碼器18。若這個目前處理命令乃是一個具有返回特 徵的跳越命令,諸如:副程式跳越命令2 8,其中,這個跳 越命令乃是要讓這個處理器1 0處理一個副程式並中斷這個 程式2 6的處理,則這個命令處理裝置1 6首先會將這個程式 計數器2 0的位址儲存在一個返回位址堆疊,並且,隨即會 將這個跳越命令的目的地位址運算元寫入至這個程式計數 器2 0,藉以自這個目的地位址讀取下一個處理命令並將這 個處理命令提供給這個命令解碼器1 8,以及,在出現一個 返回命令時,自這個堆疊讀取這個返回位址。 在下文中,本發明處理器1 〇的操作模式將會配合其他圖式 詳細說明,其中,這個目前處理命令乃是一個副程式跳越 命令,並且,這個副程式跳越命令乃是對應於一個副程式 跳越命令操作。
在詳細說明第3至6圖前,根據本發明的較佳實施例,這個 式跳越命令及這個副程式跳越命令操作將會詳細說明如 下。在本發明說明中,這個π副程式跳越命令操作π與這個 π副程式跳越命令”並不相同,因為:這個副程式跳越命令 操作乃是表示命令定義(相對於這個處理器的程式集合 中,各個命令操作的命令定義),但是,一個副程式跳越 命令則會對應於欲處理程式的副程式跳越命令操作的實際 資訊及範例。換句話說,一個命令操作並不會定義運算元
第13頁 1239477 五、發明說明(ίο) , 的數值,但是,一個命令則會定義所有運算元的數值。 為簡化說明且符合口語習慣,即使意指命令操作,本發明 說明仍會使用副程式跳越命令。這個副程式跳越命令,如 第2圖所示的3 4,主要包含兩個部分,亦即:開頭的操作 碼及後面的運算元集合。另外,這個運算元集合會包含一 個目的地位址欄位及一個備份資訊欄位。這個操作碼乃是 用來識別這個副程式跳越命令3 4。這個處理器1 0的命令解 碼器1 8 (如第1圖所示)首先會在讀取一個命令時取得這 個操作碼,藉此,這個命令解碼器已經可以由這個目的地 位址攔位的目的地位址及這個備份資訊攔位的備份資訊預 期運算元集合。因此,這個命令解碼器便可以自這個命令 記憶體要求更多位元組,直到這個命令3 4的完整運算元集 合均能夠由這個命令記憶體載入。 第3圖乃是表示欲處理程式部分的範例。這些方格乃是表 示這個程式的命令列,其中,各個命令列可以具有一個命 令。如圖中所示,這個欲處理程式會分割為第一部分(亦 即:主程式)及第二部分(副程式)。這個主程式乃是根 據一個執行順序線性排列,其中,這些命令列的編號分別 是由i 一 6至i + 4。舉例來說,這個主程式的命令列i 一 6至 i + 4會逐一儲存在這個程式記憶體的實體記憶體。然而, 在虛擬位址管理的例子中,舉例來說,透過記憶體管理單 元(MMU)進行管理的例子,這個主程式的線性結構亦可 能僅僅存在虛擬位址空間。再者,如同這個主程式,這個 副程式的命令及命令列亦可以具有線性結構,並且,分別
第14頁 1239477 五、發明說明(ίο , 具有j至j + 4的編號。這個副程式乃是儲存在這個實體程式 記憶體的另一個位置。舉例來說,載入命令乃是位於編號 i— 6至i— 1的命令列,藉以將外部記憶體位址(Ox···)的 内容寫入或載入這些暫存器R1至R6。 在第3圖中,舉例來說,一個副程式跳越命令(呼叫命令 )乃是位於這個主程式的命令列i,其中,這個副程式跳 越命令的第一運算元乃是這個副程式的命令列j的目的地 位址,並且,這個副程式跳越命令的第二運算元乃是欲備 份暫存器的明確指示(n Rl— R3”)。如第1圖所示,將這 個程式計數器2 0 (如第1圖所示)設定為命令列j的目的地 位址,這個程式的處理(利用這個處理器執行)便會改變 至這個副程式,並且,自這個副程式的命令列j繼續執 行。舉例來說,這些命令列j至j + 3乃是包含載入命令,藉 以將欲備份暫存器的資料寫入暫存器R8及R2至R4。 舉例來說,如第3圖所示,這個副程式的命令列j + 4會另外 具有一個返回命令(RET)。這個返回命令僅具有一個操 作碼,而沒有任何運算元。如此,當出現這個返回命令 時,這個處理器便可以經由一個返回堆疊(第1圖未示) (這個處理器已經在命令列i的跳越命令中,將這個程式 計數器數值填入這個返回堆疊),擷取這個主程式的下一 個命令列i +1的位址,藉以接續這個副程式跳越命令的命 令列。因此,這個主程式便可以由這個命令列i +1開始, 繼續執行這個程式。 除了有關處理順序的動作以外,主程式命令列i的副程式
第15頁 1239477 五、發明說明(12) 3 = 1二,21式ΐ令列j+4的返回命令亦會執行暫存器 備二次/设動作,藉以備份及恢復這個副程式跳越命令在 備份貢訊内表示的靳左 ^ _ 暫存°口 ( Rl~ R3),其乃是這個主程式 在這個副程式處理後的需要資料。 Λ
:I ^ σσ步况明這個部分,處理第3圖程式的處理器的内 ^暫存器及備份堆疊將會表示在第“至4D圖中。在第4八至 ,車乂佺貫施例中,為方便說明,這個處理器僅具有八個 =邛暫存,R1至R8,並且,這個備份堆疊僅具有八個記憶 -位置。第4A圖乃是表示這個主程式在命令列i的副程式 跳越命令出現前的情況。如圖中所示,内容A,b,c,a, b 0已經分別寫入内部暫存器R1至R β。其中,大寫字母乃 是表示在這個副程式處理後仍然需要的内容,而小寫字母 (舉例來說,暫時計數器數值)則是表示在這個副程式處 理後不再需要的内容。另外,這個備份堆疊將會清空。 當到達命令列I的副程式跳越命令時,這個處理器將會發 生第5圖所示的副程式跳越命令周期,其中,第5圖的說明 將會參考第1圖的電路。每當這個命令列i的副程式跳越命 令進入這個命令解碼器1 8並視為目前處理命令時,這個命
令解碼器1 8會立即將副程式跳越命令的出現通知這個命令 處理裝置1 6。另外,經由這個遞增信號,這個命令解碼器 1 8亦會根據位址位置的數目(對應於副程式跳越命令的長 度)’進而遞增這個程式計數器2 0。 在步驟5 2中,這個處理器1 0會提供這個程式計數器欲輸入 一個返回命令堆疊(未示於第1圖)的程式計數器數值,
第16頁 1239477 五、發明說明(13) _____ 一 ------------ ^且’這個程式計數器數值 ,越命令的下—個命令位址=f於這個主程式的副程 )。在步驟54中,這個务入(亦即·命令列i + 1的位址 越命令的目的地位址’:;碼器18會擷取這個副程式跳 2理裝置16。隨後,;址轉送至這個命 5十數器20設定為這個 ^ :處王里裝置Η會將這個程式 種方法,這個程式便可:=,,如步驟56所示。利用這 在步驟58中,這個上人紐=個副程式繼續執行。隨後, 令的備份資訊(R丨__ ^馬,U會擷取這個副程式跳越命 資訊乃是表示暫存器上圖的例子中,這個備份 料。隨後,在步“mil%器内容即是欲備份的資 所示),藉以備份這堆疊(如第1圖 讯指定)的暫存器内容。隨後, tδ己憶,的備份資 理裝置1 6會將這個備份資訊放=供2中,這個命令處 不需要運算元的返回命;堆疊。如此’在 重存期間,無誤地再度寫入了以在重建及 第4B圖乃是表示第3圖例子/步 « t ^ # „ 4 ^ ^ ^ 1?2, R3(利用備份資訊表示 ;以,器 至,"存器數目的順νΛ:備 :irRi,則是位於這個備份^的π面;::: 1239477 五、發明說明(14) , 在執行這個副程式跳越命令周期3 0後,下一個命令周期3 4 會接著開始、並再度解碼下一個目前處理命令,亦即:目 的地位址(在第3圖的例子中,這個目的地位址即是副程 式的命令列j)的命令。 第4 C圖乃是表示在這個副程式處理後、這個返回命令(副 程式的命令列j + 4)前的情況。如圖中所示,這些暫存器 R2至R4的暫存器内容會被内容b,, 覆寫。除此以外, 亦會放進暫存器R8。 當這個返回命令出現時(由這個命令解碼器1 8提供給這個 命令處理裝置1 6),這個命令處理器1 6會自這個返回堆疊 讀取最後輸入的位址(亦即:命令列i的位址) ,如步驟 5 2所示,並將這個位址輸入這個程式計數器2 0。另外,這 個命令處理裝置1 6會讀取最後輸入的數值,當這個數值乃 是利用這個備份堆疊的堆疊指標3 2表示,亦即:最後副程 式跳越命令的備份資訊(亦即:Rl— R3)。經由這個備份 資訊,這個命令處理裝置1 6便可以得到下列資訊,包括·· 多少暫存器内容已經在最後一個副程式跳越命令中放進備 份堆疊,以及,多少備份堆疊的記憶體位置已經讀取,以 及,這些備份暫存器内容應該寫入那裡,以及,這些暫存 器内容應該寫入那些内部暫存器。目前,這個備份資訊乃 是表示:這個備份堆疊必須讀取三個暫存器内容,亦即: A,B,C。另外,根據備份(步驟6 0)暫存器内容至備份 堆疊的輸入順序,這個備份資訊亦可以表示:那些備份暫 存器内容應該要寫入那些内部暫存器,亦即:暫存器内容
第18頁 1239477 五、發明說明(15) , A寫入暫存器R 1,暫存器内容B寫入暫存器R 2,及暫存器内 容C寫入暫存器R3。 第4D圖乃是表示最後的情況。這些内部暫存器R1至R3,其 乃是在這個副程式處理期間,在副程式呼叫前儲存副程式 後應該仍會用到的中間結果,將可以恢復至原來的暫存器 内容。這個暫存器内容R 4會不同於副程式呼叫前的内容, 不過,這個差異並不重要,因為這個暫存器内容R4並不會 在主程式的進一步處理中用到(否則,這個暫存器R4便會 包含在備份資訊中)。至此,這個備份堆疊將會再度清 空。 第6圖乃是表示欲處理程式的另一種較佳實施例,其中, 副程式會具有巢狀結構,亦即:呼叫的副程式還可以再呼 叫另一個副程式。第6圖較佳實施例與第3圖較佳實施例的 主要差別在於:副程式的命令列j + 2另外具有一個副程式 跳越命令。另外,第7圖則是表示内部暫存器R1至R8的内 容及備份堆疊的記憶體位置,藉以得到這個跳越命令處理 後的命令列j + 2。 在命令列j至j + 4的副程式中,其相當於呼叫副程式(命令 列k至k + 4)的一個主程式。在命令列j + 2中,這些暫存器 R2及R8的内容已經變更為b,,直到出現這個副程式跳越 命令。這個否定號乃是表示:在第二呼叫層(k至k + 4)的 呼叫副程式處理後,第一呼叫層(j至j + 4)的副程式並不 需要這個暫存器的内容。因此,這個副程式跳越命令在命 令列j + 2的備份資訊僅具有表示暫存器R2的資訊。因此,
第19頁 1239477 五、發明說明(16) — 程式跳越命令時,$個内部暫存”2… a將會放進這個備份堆疊的下— 时R2的暫存 0己饫體位置4)。另外,第_ s,丨 玉白位置(亦即: (亦gp · D 〇、 弟一田]^式跳越命令的借彳八次 =即.R2)亦會放進這個備 ^ ,備W訊 把憶體位S,並且,這個記 ::取後-個及最上面 ”指向。科用這種方法,即使用-個堆疊指標 存備份資m ’下一個返回命子如亚且,透過額外儲 以確保。 、確暫存器内容恢復亦可 根據上述較佳實施例,這個副 是用來識別欲儲存暫存器内容至越命令的備份資訊乃 器。如此,利用欲備份暫存器::己憶體14的内部暫存 存器的假設下,不欲備份的暫存 、不,在有限集合暫 嶄十抑如外 會存為將可以視為非屬於〜 暫存态。在弟8圖所不的較佳實施例中, j日弋的 連結至自動更新登錄資訊,|i °備伤貧訊會 況,其乃是在第3圖程式處理期間,i ^備伤隹®的情 別,其將會詳細說明如下。 节仔-曰使用自動識 份堆疊的情況會與第 即:第4B圖所示/的情 7 0,其中,各個暫存 施例中,這個命令處 器R1至R8的中間結果 由此可知,這些内部暫存器及這個備 4 Α至4 D圖所示的較佳實施例相同,亦 況。另外,第8圖亦具有一個暫存器 器分別提供一個旗標。在這個較佳實 理裝置會進行調整,藉以在内部暫存 1239477 五、發明說明(17) :::間’對气設定,標的暫存器設定對應旗標。在這個 進行設定如X所不,這些使用暫存器R1至R6的旗標會隨即 在第8圖所示的較佳實施例 八八方丨·从 越命令沾供八* 然而,命令列1的副程式跳 4:的備份 说亚不會明確表示欲備份的暫 後將不會再度用到這此;存二在副程式處理 因此,這個副•式跳越命令;』:;Ρ5Η暫//严w ^ 在U輸入步驟62中,這個備份堆疊並非儲 t貝Λ ,其係表不不欲備份的暫存器 存自動識別及設定旗標表示的暫存器R1 疋, 訊明確排除備份的暫存器,亦即:° 二::備份資 Φ , , ^ _ 1 王κ ΰ 在這個例子 如同弟4Α至4Β圖的較佳實施例,暫存 仔到,亦即:用於在出現副程式跳越命 以 的所有暫存器。 卩7別且未排除備份 在根據較佳實施例及所附圖式,詳細 處理期間的資料備份方法後,下文將的副程式 越命令的較佳實施合卜並且,這些副程式副程式跳 於備份資訊攔位的備份資訊編碼(如第2圖所二°卩令會#不同 者’這個命令處理裝置丨6的譯解方法亦會不 5 ^ 如第4Α至4D圖的較佳實施例所述,表示欲 ==。 蘄^法乃疋明確表示欲備份暫存器内容及明確表干欲 曰存态内容的暫存器。這種副程式跳越命八伤 Π cal 1 〈jump address〉,Rx,Ry··· ” (如 固以、不:、、、 、$弟3圖所示),藉
第21頁 1239477 五、發明說明(18) - 此’這個副程式跳越命令便可以利用暫存哭r X,P的 器内容,自目的地位址及跳越位址繼續處理這個程7式|存 在另一種方法中,副程式跳越命令的傷份資訊曰一 確排除備份的暫存器内容及明確排除暫 =^不明 存器,諸如:第_戶斤示的較佳實施例暫存這種内^備 =的暫 n,/ rv ·Τ ? U <deStlnati〇n addreSS>,, ,藉以跳越至這個目的地位ϋ^ 有暫存器(在自動識別的例m址,亚備份所 暫存器),除了且古二 有使用内部暫存器的 在這兩種較記7"的暫存器以外。 容的較佳實施例,& ::.明確表示欲備份暫存器内 佳實施例,安全資=明確表示排除備份暫存器内容的較 的罩幕。因此,= 各個暫存器分別具有一個位元 資訊會具有八個位^ 4d圖的較佳實施例中,這個安全 在明確表示欲備份暫^ f個位元乃是關連於一個暫存器。 的位元可以具有邏輯:二=例子中,連結至欲備份暫存器 暫存器的位元可以具;:,位準,並且’連結至排除備份 佳實施例的副程式璉茸低電壓位準。藉此,第3圖較 ” 1 1 0 0 0 0 0 ”,並且',ί命令的備份資訊便可以表示為罩幕 的備份資訊便可以第8圖較佳實施例的副程式跳越命令 一個位元乃是關連‘ =ϋ幕’'⑽oil 111’,,其中,左邊第 於暫存器R2,以此類^為R1,左邊第二個位元乃是關連 個命令的備份資、。如此,在這個較佳實施例中,這 、。位便可以是一個罩幕,並且,這個罩
第22頁 1239477 五、發明說明(19) "~~ -------- 幕會隨著副程式跳越 . 可以儲存在備份堆^如步驟62所^)另外’這個罩幕亦 1外,除了前一個較佳實施例的罩幕位元暫在哭^、由 内:暫存器亦可以定義-個順序,#以編[::::B這 从備份的暫存器内纟,藉以得到較少位元的右:刀不 前:乃是這些内部暫存器的線性排序。在: 線性例中,舉例來說,這些暫存器可以根據編ΐ ,這個較佳實施例中,這個備份資 排名。根據副程式跳越命令 慣::存器的表示 :的視為欲備;;ί = 順序或較低指 ς =在弟4Α至4D圖的較佳實施例存=或不欲備份暫存 暫存器(亦即:暫存置將會借份具有較低;;示 份記憶體。及這個暫存器的 I;來說,…的四位以馬便可以表J 碼。在第8圖所示的 pH ,亦即:數舉 除備份具有相同或J ;二4 ”這個命令處理裝越 器。*這個例子中,有暫存器及這個表;:; 當然,ί:内Π存;:二二進位表示 單字 於k個處理器的應用=
第23頁 )以外的其他結構方法’完(如先 1239477 五、發明說明 架構。在 資料暫存 位(參照 位包含這 個資料暫 施例,這 能。舉例 可以 及具有 份堆疊 經由上述 輕易 令集合可 可以有助 亦可以具 碼。基於 這個備份 進位表 為欲備份 明碟表示 或個別 因此,在 内容備份 備份副程 器 備 (20) 這個架 器會個 第2圖) 個位址 存器的 兩種暫 來說, 表示: 大於或 〇 說明, 組合各 以僅僅 於這個 有數種 操作碼 資訊, 示(進 暫存器 ,隨後 表示( 副程式 方法, 式呼叫 構中,十六個立+L * 別存在。在這個例:f器及分離的十六個 可以分割為兩個'子捫中/這個備份資訊攔 暫存器的備份資1欄位,其中,一個攔 備份資訊。另外D 4’另—個欄位則包括這 存器的備*資訊解,先前所述的較佳實 —個命令”call #的編碼及習慣亦是可 將具有大於或等於jutmp address>’ D5, 等於指標1 3的所古曰標5的所有資料暫存 有位址暫存器備份至這個 熟習此技術領域的 個較佳實施例。=人士將可以視情況需 具有一個副程式跳==,這個處理器的命 處理器的使用。越°P令,其編碼及解譯 程式跳越命令1 j —方面,這個命令集合 ,這個命“理hr能僅在於操作 亦即:首先做為暫:::=決定如何解譯 (第ΛΛ所有暫存器),其次做 ?為連結使用暫存哭旗二二(弟8圖)的 弟4圖)。 σ ,、私的表示(第8圖 處理期間,利用卜、+、“ 這個程, …a較佳實施例的暫存器 式便可以得到f彳i 時的内容資料。特. Τ ι令順序,進而 、】疋,廷些較佳實施例
1239477 五、發明說明(21) , 可以有助於欲備份資料的有效選擇,亦即:具有較短長 度。除了必要的目的地位址以外,這些副程式跳越命令及 程式分支命令亦具有單一或數個參數以將欲備份資料視為 運算元,藉以在執行這個命令時進行一個自動備份動作。 另外’經由清楚組織輸入記憶體的貧料’備份貧料的需求 亦可以最佳化。 特別是,在内部暫存器的線性順序定義及欲備份/不欲備 份暫存器内容的明確表示(利用暫存器指標表示)中,這 個備份堆疊記憶體容量亦可以在副程式處理後,將需要資 料寫入具有較低指標的暫存器、並將不需要資料寫入較高 指標的暫存器,藉以得到最佳化的應用。 相較於自動識別使用暫存器内容的方法,如說明書的發明 背景所述,軟體工具(諸如··編譯器)亦可以在產生命令 順序及實際程式碼時,利用相同程式記憶體要求達到更佳 結果。在第8圖所示的較佳實施例中,其中,使用暫存器 的自動識別已經連結至不欲備份暫存器内容的明確表示, 副程式處理後不需要的暫時資料儲存亦可以避免。 因此,本發明一方面可以得到處理器程式碼的最佳化記憶 體需求,另一方面亦可以同時降低副程式分支命令時的欲 備份資料儲存需求。 根據上述較佳實施例,應該注意的是,雖然這個處理器的 内部暫存器才是副程式處理的備份目標,但是,各種記憶 體位置亦可以做為欲備份資訊的記憶體位置及資料。另 外,這個備份堆疊資訊亦可以放置在這個處理器。另外,
第25頁 1239477 五、發明說明(22) , 這個備份堆疊記憶體的操作亦可以不同於堆疊記憶體的原 理。或者,管理程式計數器的其他方法及命令操作的定義 亦會存在。另外,具有可變長度的編碼方法亦可以用於欲 備份暫存器或不欲備份暫存器的編碼。
第26頁

Claims (1)

  1. a 1239477 / 〜4 _ 案號 9212R1M 六、申請專利範圍 1· 一種處理器,用以處理具有命令之一程式(26)二^ 中,該程式(26)具有一主程式,該主程式具有,副程式 跳越命令及一副程式,其中,該副程式之執行係因應於"亥 副程式跳越命令,該處理器係包括: , 、 一命令處理裝置(1 6 ),當該主程式中出現該副程式跳越 命令時,用以: / 經由該副程式跳越命令,擷取該主程式在該副輕式處理後 之需要資料之備份資訊; 基於該備份資訊,備份該主程式在該副程式處理後之需要 資料; 經由該副程式跳越命令,棟取該副程式之一目的地位址; 以及 基於該目的地位址,山 2.如申請專利範圍第丨由堪該副程式開始繼續處理該程式° 係具有複數命令操作之、所述之處理器,其中,該處理器 係可以利用操作碼清楚=、命令集合(24 ),該等命令操作 作係位於該等命令操作識別,其中,一副程式跳越命令操 令操作碼清楚識別,且中’其係可以利用一副程式跳越命 作碼,藉以關連至一命$中’該程式之各個命令具有一操 一命令解碼器(1 8 ) 7操作’其中’該處理器係包括: 令以得到一操作碼,以】以解碼該主程式之一目前處理命 出現給該命令處理装置,用以回報該副程式跳越命令之 跳越命令操作碼,且其1 6 )若該操作碼符合該副程式 的地位址及該備份資m Ϊ副程式跳越命令係具有該目 <運算元。
    第29頁 123947“ [—~寒號 92126123— Ηψ ^ L η 修正 六、申請專利範圍 ------- 3二如申請專利範圍第2項所述之處理器,其 — 別定義於該主程式及該副程式之命令中,並執且订順該 处理裔係基於該執行順序以處理該程式,其中,各個命令 糸具有一操作碼,藉以關連於一命令操作。 >如申請專利範圍第3項所述之處理器,其中,該處理器 =在連續命令周期中執行該程式之各個命令,其中,該命 一处理虞置(1 6 )係在單一命令周期中執行擷取動作、備 伤動作、及處理動作。 5.如申請專利範圍第i至第4任一項所述之處理器, 括: 又b
    體位置(2 2 ),用以在該程式處理期間儲存處理器中 山'、、σ果其中’該主程式在該副程式處理後之需要資料係 選定記憶體位置之處理器中間結果構成,其中,該選定 動作係至少部分取決於該備份資訊。 6」如申請專利範圍第5項所述之處理器,其中,該備份資 °孔係表示屬於該選定動作之至少一記憶體位置(2 2 ),其 中’沒有其他記憶體位置係屬於該選定動作。
    1·如申請專利範圍第5項所述之處理器,其中,該備份資 衹係表示不屬於該選定動作之至少一記憶體位置(2 2 )。 8·如申請專利範圍第7項所述之處理器,其中,所有立他 記憶體位置均屬於該選定動作。 ’ •如申请專利範圍第7項所述之處理器,其中,該選定動 作係額外取決於使用資訊,該使用資訊係表示在該主稃式 處理期間’直到出現該副程式跳越命令,儲存中間結果之
    第30頁 M394flil w\ υΐ 4, Λι —-年 H Q9106123 年 Φ 月 > 曰 條正 六、申請專利ϋ 何等記憶體位置被使用,藉此,該選定動作係具有該使用 資訊表示’而非該備份資訊表示之記憶體位置。 10·如申請專利範圍第1項所述之處理器,其中,該命令處 理裝置(1 6 )係在該主程式在該副程式處理後之需要資料 之備份動作中,將資料放進一堆疊記憶體Q i 4 J w 11 ·如申請專利範圍第1 0項所述之處理器,其中,該命令 處理裝置(1 6 )係在將該資料放進該堆疊記憶體(丨4 )期 間’將該備份資訊併同資料放進該堆疊記憶體(丨4 )。 2.目如士申請專利範圍第2項所述之處理器,二中,該副程式 '、八返回命令,且其中,該命令集合(24)更具有一 碼ϊ:令Π ’該返回命令操作可以利用一返回命令操作 出規,該命令解碼器(18)係回報該返回命令之 裝置(16) ’若-目前處理命令之操作 命令操作碼,#中,該命令處理裝置(16) 糸基於出現$亥返回命令日丰 料。 、W Ρ 7時之儲存備份資訊以恢復備份資 連於各個記憶體位置心二具位元,分別I =之;有:元或關連於不儲;:憶 處理裝置⑴),在備分期間,係備份關連、/具^命令 修正 六、申請專利範圍 邏輯狀態之位元之纪橋辦Μ # +日日a w 於且女♦够^ 隐體位置中間結果,及不備份關連 ::有:::邏輯狀態之位元之記憶體位置之中間結果, =々處理裝置(16)係不備份關連於具有該第— 之:元之記憶體位置之中間結果,及備份關連於 &有忒弟一邏輯狀態之位元之記憶體位置之中間結果。 等記憶體位置(22)中,藉以表;:有一= 排名之一記憶體位置’並且,欲備份記憶體位置或 憶體位置之排名係分別大於或小於該備份資訊特 ^6·如壯申清專利範圍第15項所述之處理器,其中’該命令 ΐϋΓ6)係在備份動作期間儲存排名大於該備份資 ΪΪΓΛ 記憶體位置之中間結果,及不儲存排名小於 貝訊特定排名之記憶體位置之中間結果,或者,該 ^處^置(16)係不儲存排名大於該備份資訊特定排 名之纟己憶體位晉之Φ έ士 J&,β 1 輯定Μ全 中間果儲存排名小於該備份資訊 特疋排名之記憶體位置之中間結果。 7.如申叫專利範圍第1項所述之處理器,更包括: ^ J置’用以設定各個記憶體位置(22) <一標記, 曰 以主程式處理期間儲存一中間數值, f該命令處理裝置(16)係備份在備份動作期間設定 ;;;己;;己憶體位置之中間結果,減去利用該備份資訊表 不之纟己憶體位置之中間結果。 18.如中請專利範圍第17項所述之處理器,其中,該命令
    第32頁
    處理裝置06)係在將該資料放進該堆疊記憶體(14)期 間,同時將利用该使用資訊表示、而非利用該備份資訊表 示之記憶體位置之資訊一併放進該堆疊體(丨4 )。 19· 一種用以處理具有命令之一程式的且方; 式具有一主程式二該主程式具有一副程式跳越命令及一副 程式,其中,該副程式之執行係因應於該副程式跳越命 令,該方法係包括下列步驟: 當該主程式中出現該副程式跳越命令時,利用一命令處理 裝置,藉以:
    經由該副程式跳越命令,擷取該主程式在該副程式處理後 之需要資料之備份資訊; ΐ ϋ該備伤貝訊’備份該主程式在該副程式處理後之需要 擷取該副程式之一目的地位址; 經由該副程式跳越命令 以及 基於該目的地位址,》 9n m ^ 田孩副程式開始繼續處理該程式。 I.二Λ/腦:式的媒體,其中該電腦程式具有-程 圍第19項所述之方^執订該電腦程式時,執行申請專利範
    第33頁
TW092126123A 2002-09-27 2003-09-22 Processor and method for processing a program with comments and medium with a computer program TWI239477B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10245367A DE10245367A1 (de) 2002-09-27 2002-09-27 Prozessor mit expliziter Angabe über zu sichernde Informationen bei Unterprogrammsprüngen

Publications (2)

Publication Number Publication Date
TW200409025A TW200409025A (en) 2004-06-01
TWI239477B true TWI239477B (en) 2005-09-11

Family

ID=32009957

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092126123A TWI239477B (en) 2002-09-27 2003-09-22 Processor and method for processing a program with comments and medium with a computer program

Country Status (6)

Country Link
US (1) US7412593B2 (zh)
EP (1) EP1543411B1 (zh)
AU (1) AU2003301890A1 (zh)
DE (2) DE10245367A1 (zh)
TW (1) TWI239477B (zh)
WO (1) WO2004042559A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193776B (zh) * 2010-03-10 2014-06-18 上海海尔集成电路有限公司 跳转指令的处理方法及微控制器
KR101979732B1 (ko) * 2012-05-04 2019-08-28 삼성전자 주식회사 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
DE112014000400B4 (de) * 2014-01-15 2018-01-11 Mitsubishi Electric Corporation Numerische Steuervorrichtung
US10019576B1 (en) * 2015-04-06 2018-07-10 Intelligent Automation, Inc. Security control system for protection of multi-core processors

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1192334B (it) * 1977-10-25 1988-03-31 Digital Equipment Corp Sistema di elaborazione dei dati numerici
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4493027A (en) * 1981-05-22 1985-01-08 Data General Corporation Method of performing a call operation in a digital data processing system having microcode call and return operations
US4445173A (en) * 1981-09-11 1984-04-24 Data General Corporation Improved system for saving and restoring state in call and return operations
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
US5325494A (en) * 1991-06-21 1994-06-28 Kabushiki Kaisha Toshiba Computer
US6438740B1 (en) * 1997-08-21 2002-08-20 Compaq Information Technologies Group, L.P. System and method for dynamically identifying free registers
US6212630B1 (en) * 1997-12-10 2001-04-03 Matsushita Electric Industrial Co., Ltd. Microprocessor for overlapping stack frame allocation with saving of subroutine data into stack area
US6314510B1 (en) 1999-04-14 2001-11-06 Sun Microsystems, Inc. Microprocessor with reduced context switching overhead and corresponding method

Also Published As

Publication number Publication date
AU2003301890A8 (en) 2004-06-07
DE10245367A1 (de) 2004-04-15
EP1543411A2 (de) 2005-06-22
WO2004042559A3 (de) 2005-01-13
DE50308662D1 (de) 2008-01-03
US20050201195A1 (en) 2005-09-15
TW200409025A (en) 2004-06-01
WO2004042559A2 (de) 2004-05-21
AU2003301890A1 (en) 2004-06-07
US7412593B2 (en) 2008-08-12
EP1543411B1 (de) 2007-11-21

Similar Documents

Publication Publication Date Title
CN101868783B (zh) 增强的微处理器或微控制器
US4587632A (en) Lookahead stack oriented computer
CN108205499A (zh) 用于将数据处理转移到混合存储设备的方法和装置
JPH0227687B2 (zh)
CN100437547C (zh) 具有级联simd结构的数字信号处理器及其信号处理方法
TWI259365B (en) Microprocessor circuit for data carriers and method for organizing access to data stored in a memory
TW202138996A (zh) 切換影堆疊指標的硬體設備以及方法
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
EP2215544B1 (en) Enhanced microprocessor or microcontroller
TWI239477B (en) Processor and method for processing a program with comments and medium with a computer program
US7962702B1 (en) Multiple independent levels of security (MILS) certifiable RAM paging system
Brown Issues in selective perception
TWI226997B (en) System and method preventing exceptional execution of central processing unit and the computer readable storage medium
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US6810459B1 (en) Reduced complexity computer system architecture
JPH1040103A (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
RU2340933C2 (ru) Способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме
JPH0720769Y2 (ja) プログラム機能を備えた小型電子式計算機
JPS5824822B2 (ja) デ−タメモリブロックのアクセス方法
JPS61276040A (ja) 論理フアイルアクセス方式
JPS5862884A (ja) デ−タ処理システム
JPH0155496B2 (zh)
JPH0516610B2 (zh)
JPS63240636A (ja) 復元可能なレジスタフアイル装置

Legal Events

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