TWI285840B - Apparatus and method for processing a sequence of jump instructions - Google Patents

Apparatus and method for processing a sequence of jump instructions Download PDF

Info

Publication number
TWI285840B
TWI285840B TW092117191A TW92117191A TWI285840B TW I285840 B TWI285840 B TW I285840B TW 092117191 A TW092117191 A TW 092117191A TW 92117191 A TW92117191 A TW 92117191A TW I285840 B TWI285840 B TW I285840B
Authority
TW
Taiwan
Prior art keywords
jump
instruction
logical address
information
address
Prior art date
Application number
TW092117191A
Other languages
English (en)
Other versions
TW200405207A (en
Inventor
Dirk Rabe
Holger Sedlak
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 TW200405207A publication Critical patent/TW200405207A/zh
Application granted granted Critical
Publication of TWI285840B publication Critical patent/TWI285840B/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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
    • 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
    • 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)
  • Executing Machine-Instructions (AREA)

Description

1285840 五、發明說明(1) 敘述 本發明本係有關微處理器,而且特別是關於具有固定 預先設定的邏輯位址微處理器。 、雖然微處理器及微控制器的發展分別帶來特性的顯 增加,但是在某些應用技術領域上積體電路最近的中央 理器統合結構仍然偏好較老舊的結構,例如在晶片卡區域 j及fS〇C設計的應用技術。因此,有一個原因就是具有較 ί 3 ΐ中央處理器結構對於應用所須的各個領域經 :ίΐ:空間’ i因此在工作執行上須要太多的功率, ^ ^ f太多晶片區域。更重要的是另一個的較偏好舊社 構甚於新結構的原因是舊中央處理器結 如 85=基礎的微控制器之軟體環境發展環境對更 受歡迎而精軟體設計者來說也更易於取^顧客^更 售控制器結構儘管較受顧客歡 的問題在晶片卡巴娀方面拉:客歡迎,但其軟體發展環境 的以及可執別顯著,因為可處理該晶片卡 而在於大用戶的責任,例如銀衣^商的貝任 還有個別的作業系統開發公司 們的軟體開發公司’ 而且,由於零件數量的高 晶片卡顧客來說条+八看I雨求,使用曰曰片卡控制器對於 做調整以儘量伴# 2 &的,該控制器是依個別的需求 區域以及實因此,為了滿足廉價的晶片卡 晶片製造商必須;的軟體開發環境上之願望, 卡。 頁此夠如供以售微控制器結構為基礎的晶片
1285840 、發明說明(2) β ▲然而,在晶片卡生產上使用舊式控制器結構有一個向 題就是它們定址的可能性不足。因此,以850 1為基礎的cpu 特,通常在晶片卡區域裡是足夠承擔管理的任務,但是由 2高安全性之要求,包含有關高運算對象的演算操作的高 岔碼術异法必須要由晶片卡上的密碼處理器處理。例如, 在已知的RSA(Rivest,Shamir and Adleman)演算裡具有 1024的演异長度是很普遍的。由於要處理高運算對象的長 度以及密碼演算本身的複雜性,在晶片卡内須要存取儘可 能大的記憶。使用舊控制器結構之中央處理器所具備的問 題是它們只允許很小規模的記憶定址。例如,85〇ι中 處理器只允許64千位元組的定址。 在使用舊式結構控制器的情況下,要達成大 體可定址可能的方法就是要分別使料部儲存的符隐 本位址,它們決定由中央處理器所定址的記憶體視 位^
置,因此經中央處理器可定址的記憶體區域可以:4 視窗轉換成整體較大的記憶體。 ® A IE 要更詳細地解釋邏輯位址空間與實體位址空 性必須參考圖6A。,在圖6A所顯示之具體實施例,實體位址 空間從位址〇 〇 〇 0 0 ”延伸至位址"jr F F F F丨丨 m 址空間包含-個百萬位元組。必須注意的。是因實此體= 不一定要顯,於每一個實體位址空間的實體位::丨::亚 是’大篁的只體位址將不會涉及實質記憶胞元。是在 晶片ΐ :! :,:Λ:個Λ提供的遠不及百萬位元組。目前 五、發明說明(3) 64千位元組、擴充隨機存取記憶體為4千位元組、隨機唯 δ買圮憶體為1 3 6千位元組。然而,為因應彈性則須要設計更 大的實體位址空間以便讓記憶晶片能夠視需求及技術開發 進一步升級。 依據805 1標準的已知且完全開發之微控制器結構能有 效支援存取總共64千位元組之數據及64千位元組之代碼。 因此,微控#制器的邏輯位址空間如圖示於圖6Α左邊只包括 了 64千位兀組。在基本的8〇51結構,用已知的觀念獲取較 大=忑隐體二間(數值及代碼)對於所須的區段循環來說是 嫌It的,而且在程式化方面是複雜而昂貴的,因為須要 的營理夜廡。 ,了能簡化較大實體位址空間之存取,一記憶管理單 :被引介進來。透過這個協助,一般亦稱為邏輯位址 =Β的6 4千位元組被重新映射於丨百萬位元組的實體位址 =二此重新映射並不會導致邏輯64千位元組位址 6^ ^仿-曰4,而是在某一特定時間仍然可見一實體位址為 .且,而是實際可見之64千位元組可以被改變。因 糟^由使用描述符可以重新建構記憶體體管理單位。該 的 定之實體記憶體區域,它具備了“千位元組 可目:見:例顯示於圖6Α當中。例如,該描述符為 可由其I / 5己憶體區域之最低位址,其中現有之實體位址 知為,,"1抵消?址做決定,該基本位址被描述符和邏輯位址所 為具有64千位元組規模的邏輯位址空間定址,須要有 1285840 五、發明說明(4) 1 6位元也就是兩個位元組長度的位址。 然而,為具有1百萬位元組規模的實體位址允間 須要有20位元長度的位址。由於為了辨識具備長二度64千位 :Γ的實體記憶體視窗之差異,實體基本位址只須 要在64千位元組的光域之内,具有8位元長产 、 元組的描述符已足夠將具有64千位元組 p 奋 位 視窗加以定址。應注意的是實體Α之5、貝_ c憶體 必然被當成是描述符,但是一個表可以儲存在記;ίίί 位内,它包含了一個描述符做為冑入資訊,並輸出‘實早 個位元或者輸出實體基本位址的全部長度做為土輸址 如圖6Α所示,通常具有實體連接的記憶 些需求是不利的,例如像晶片卡。反 域對於某 需求能注意像唯讀記憶體的1 6千位元έ 、=利的-是某些 XRAM和32千位元組於電於子式可拭除〇 二3 2組的 (EEPROM)内,但是在EEPROM不同的位置上。工 唯靖記憶體 如圖示於圖6Β,為了這個原因,該邏輯位址 個邏輯位址區段,其間的-個描述符刀 產生如描述符卜描述符2、描述符3、描 區段的邏輯位:經轉換為實體位址,它在圖⑽内位取低 组區域内的右邊、記憶體管理單位的旁邊並使用描述符疋 1 ° 與描述符2相聯而位於邏輯位址空間内之邏輯位址於 實體位址空間之16千位元組視窗内之各別實體位址經轉、
第10頁 1285840 五、發明說明(5) 換。與此類推在策- 址也備如此處理 £段内而與描述符3相聯繫的邏輯位 、^於圖⑽内,邏輯位址的第四區段經過桿識它 篇與其他三個區段一樣,一個描述 田’l付)” Far區段相聯。如果一邏輯位址呈現在Far ”其相聯的實體位址則藉由使用被稱為Far描述符 的描述、符^^及FaT區段内之邏輯位址決定。此處所顯示之實 命J ’插述符1 3被固定地設定在預設值,然而只有描述符4是 變動的,它顯示於圖6B之箭頭。如果由微處理器所處理之 系列私7要求存取未顯示於圖6 B的4個視窗内而約相當 於1 6千位元組的5己愧空間,則一邏輯位址連同變更的描述 符4必須於Far區段内產生,記憶體管理單位透過描述符4而 重新建構,因此目前建構所須的部分實體記憶體成為可目 視。 在下面所敘述的將參考圖丨,它說明跳躍至副程式再從 副私式跳躍出來之較詳細過程。 圖1顯不指令系列1 〇,它包含了一個主程式(Hp)及三個 副程式(UP1,UP2 及UP3)。 首先,主程式被啟動。在其上,主程式一系列的指令被 處理直到達成指令l〇a。如圖1〇b所顯示,該指令係跳躍至 副程式1 (UP 1 )。如圖1 〇c所顯示,在副程式(up丨)的結束, 再次執行再跳躍至主程式。在其上,該主程式又經處理,直 到達成10d指令,它指示’’跳躍至副程式2(UP2)” 。 一交錯於此處出現,致使副程式UP2如顯示於圖1〇e的
1285840 五、發明說明(6) 第一部分受到處理,在處理該部分後便產生一跳躍至另一 個副程式UP3(10f )。然後,該副程式UP3受到完全執行 (l〇g)並產生再跳躍至副程式UP2(l〇h),在其上,副程式 UP2的另一部分也就是它所留下的另一部分(丨〇丨)受到執行 而後再跳躍至主程式(l〇k)。在其上,更進一步的指令序 列及指令副系列(副程式)受到執行直到最後達成主程式 (10m)的結束。 當主程式及所有的副程式均在圖6A所示之鄰接實體記 憶體窗之内或在圖6B所示之非鄰接實體記憶體視窗之内就 不會有進一步的問題發生。然後,副程式的呼叫就可以由 一個指令LCALL(邏輯位址)加以處理,在這樣的情況下,如 果中央處理器符合指令l〇a,採取意指邏輯位址空間的邏輯 位址指令LCALL的引數,再將它傳送至記憶體管理單位,然 後該記憶體管理單位藉由使用與鄰接的邏輯位址空間(圖 6B之案例)相關聯的描述符或藉由使用與邏輯位址區段相 關聯的描述符以決定各別的實體位址,該邏輯位址區段為 邏輯j址之所在(圖6B之案例)。從這個實體位址,序列中 —下個私7也就疋以後副程式的第一個指令被抓取並執 行0 β ^ 了讓中央處理器在主程式當中的副程式再執行也就 再跳躍指令(圖之後能夠繼續,再跳躍資訊被 :子起來。在這個狀況下,該再跳躍資訊就是邏輯位址即 主程式的下一個指令被執行之處。 址,p 以此類推,巢套副指令(圖丨,10d至10k列)受到執
第12頁 1285840
五、發明說明(7) 行。 視窗ΐ =所有的副程式儲存於目前可目視實體記憶體 到使Ϊ 個呼叫指令FCAU(實體位址)就會受 和-扩if二Ϊ Ϊ指令旧以内之實體位址係由-邏輯位址 i如果記憶體管理單位接收指令FCALL 惊:ϊ ¥ t央處理器的資訊分別解釋為指令fcul,則該記 ϋ ^ ^早位因使用所獲之描述符而被重新建構以便從該 ^於圮憶體視窗内及變更的描述符旁之實體位址收回和執 订個副程式的指令,例如圖1的副程式2。 在執行該副程式UP2之後為了確保正確的再跳躍,記憶 體$重新建構必須再次執行,因為在記憶體視窗内的主程 j指令極有可能無法與可目視副程式UP2所在之記憶體視 窗一致。在未經映射記憶體區域内執行副式 & 管理翠位首先必須因所求之位址而建構,而二= 就是說在重新跳躍指令或”返回”之後,它必須再次儲存。 這個記憶體管理單位之儲存在一個目前的編譯程式/鍊結 程式内藉由所謂的堆積的概念解決,它提供一個碼供設定 及再設定每一個可能的記憶體堆積,亦即圖6A或圖6B的每 一個可能的實體位址。這個概念在可恆久目視之記憶體内 要花費額外的代碼記憶體而且昂貴及複雜。 在副程式跳躍至FCALL的再跳躍過程中,該Far區段的 記憶體管理單位描述符必須要被儲存。要實現這些不同的 返回機制之可能性就是使用兩個返回指令,亦即L c A L L的 Ret和FCALL的FRet· —個返回指令即(Ret) —個簡單的再跳
第13頁 1285840 五、發明說明(8) 躍,它並不須要任何描述符的變更,然而另一個返回指令是 一個Far返回指令,在該處記憶體管理單位必須要重新建構 成舊的描述符,它意味著’’從該”描述符有原始的跳躍產 生。 這個概念的.不利之處特別在於使用兩個不同返回指 令,因為這些指令須要介入副程式。標準上,每個副程式都 由返回指令加以終止。然而,副程式已經以預先建構軟體 部分的方式存在,假使當晶片卡製造商有被要求介入的時 候,它只可受到勉強介入,或根本不受到介入。 為了安全的理由,晶片卡製造商只供應硬體及其規 格,而實際的副程式如密碼程式如等則由使用者開發並下 載到晶片卡。換句話說,這意味著常有的情況且特別是與 女全相關的應用軟體是晶片卡製造商本身並不研發副程式 或不宜去研發、修改例如像是從一個指令到另一指令一直 到Far返回指令的個別副程式返回指令或簡單的返回指 令0 有關兩個選擇均使用返回指令的另外一個原因是軟體 程式能以FCALL或LCALL(依目前的目視能力)而被跳抵 達。 一 因此,如果有可能性的話,這樣的程序會導致勞力 本)的增加並伴隨著錯誤率的增加。 系列的 本發明的目標就是提供一簡單的概念以處理一 指令。
本目標之達成係根據申請專利範圍丨藉由一裝置以處
1285840
五、發明說明(9) 理一系列的指令或根據申請專利範圍丨7藉由處理一糸 令的方法。 本發明所根據的知識是利用單一的返回指令於第一跳 躍指令而不變更描述符(LCALL)以及第一跳躍指令而變更 描述符(FCALL)可依跳躍指令藉由決定和儲存不同 躍資訊加以實現。 根據標準,在一個再跳躍的過程,預先設定的再跳躍資 訊量是取自一堆疊或自一疊處理器並且經過解碼以便決^ 在經過檢驗之再跳躍所歸屬的跳躍過程中描述符之變更是 否執行。如果在解碼過程中被找出無描述符變更發生貝疋 再跳躍資訊被解釋為簡單邏輯再跳躍位址。 X ’ 然而,如果已經決定目前的再跳躍之前有先進行描述 符變更的跳躍,則另外一個再跳躍資訊量被抓取以找^ ^ 別的再跳躍描述符,因此而找到指令的正確實體位址它係 副程式或主程式的一部分,它是該再跳躍的目標。’匕’、 在本發明的第一個較佳實施例當中,一個事先決— 再跳躍資訊量例如2個位元組在每次跳躍沒有變更^ =符 而被儲存起來,不受到從那一個邏輯區斷到那一個^ ^ 段產生跳躍的影響,在其中該兩個位元組代表邏 ^ 過它再跳躍的目標程式可以繼續。 科彳址,還 如果跳躍指令有具備描述符變更,始終有另一 之再跳躍資訊譬如兩個位元組被分離儲存於再跳 里旦 之外,獨立於從某一區段到某一區段的事實之外該 元組的總跳躍資訊包含了例如一個位元組的視窗°變更四指示
1285840 五、發明說明(ίο) 器或Far返回指示器、跳躍目標的描述符以及邏輯位址。 這個具體實施例的優點在於記憶體視窗内的跳躍仍然只有 發生二位元組的堆疊消耗。 在本發明之第二個具體實施例當中,該跳躍指令解碼 的執行係依據邏輯位址,它對應於再跳躍指令之預設量並 根據標準於再跳躍指令内抓取。如果這個邏輯位址是Far 區段(FS)内之邏輯位址,則更進一步的再跳躍資訊就受到 抓取。對於出自該邏輯位址空間的Far區段之跳躍指令而 言,只須要三個位元組的再跳躍資訊,它意味著比第一個具 體實施例少一個位元組。對於具備把Far區段當成目標之 跳躍指令以及具備該指令iFCALL而言則須要四個位元組, ^包含了一個Far返回指示器也就是一個視窗變更指示 器。因為該視固變更指示器係包含於再跳躍資訊預設量之 内,即將讀入的下一個指令之實體位址正確計算可以藉由 使用單一返回指令加以執行。 本發明之優點在於無論所使用的指令是具有描述符變 更(LCALL)或沒有描述符變更({?CALL),它都可以用同一個 2回指令執行。有關再跳躍資訊須留在同一實體記憶體視 固或執行恢復成再跳躍之前所呈現的須要多少再跳躍資訊 篁,其間差異化的執行僅藉由將再跳躍資訊本身解碼,它意 味著該堆疊的内容,它的執行一如往常以先進先出方式進 行。 於是副程式無論是在編譯器/或是在原始碼的本身均 不須要廣泛、易錯及複雜的修正,因此副程式可以不經修
1285840 五、發明說明(11) 改而使用。 本發明之較佳實施例將參考附圖在以下做更詳細的討 論0 圖7顯示一處理一系列指令之創造性裝置,它可運用於 例如微處理器之内。一系列的指令7 〇包含儲存於邏輯記 憶體空間内之不同記憶體位址的指令。特別是,該邏輯 記憶體空間之定址可藉由預先決定之邏輯位址數量, 在其中實體位址空間是大於邏輯位址空間。此外,指令 系列70包含一個第一跳躍指令(LCALL),它包含了一邏輯位 址有關的資訊以便將指令定址,該指令係置於經邏輯 位址空間定義的實體記憶體視窗之内。此外,一第二跳 躍指令(FCALL)亦被提供,它包含了有關實體位址的資 訊,以便將指令定址,該指令係置於經邏輯位址空間定 義的實體記憶體視窗之外。此外,為了終止附屬系列的 指令(UP1,UP2, UP3) —個普通的再跳躍指令(返回)被提供 出來,由第一或第二跳躍指令啟始。該創造性的裝置包^ 含讀入該指令系列(70)的一個指令的方法71。該讀入指 令被提供給設備72以供檢驗該指I。設備72經形成以便 二二跳躍指令有否呈現⑽),或者丄 才曰々疋否有出現(72b)。如果設備72所決定呈現 跳躍指令,它就被形成祉、五$心Μ + ,a _ 或以供決疋和儲存第一再跳躍資 訊,它與現行邏輯位址办門Ik 、 鹼夕抓借72 W 聯性。然而,如果供檢 驗之δ又備(Z所決疋5 ί目AA S哲-σι丨m 形成以供決定和馇户2 第一躍指令(FCALL),它就被 瓜成 和儲存第二再跳躍資訊,它與現行實體記
第17頁 1285840 五、發明說明(12) 憶體視窗有關。然而,如果檢驗用設備72決定該讀入的 指令就是再跳躍指令(72b),則解碼用的設備73受到激發以 便決定該系列内下一個指令之位址,而且將它提供給設 備7 1 〇 如圖7内所顯示,再跳躍資訊的記憶體74被提供給本發 明之較佳具體實施例。在專家之間,該記憶體被稱為”堆 疊”。於跳躍指令呈現的情況下(72a),檢驗用設備72經形 成以填充該堆疊7 4 ( 7 5 a ),或於再跳躍出現的狀況下清空堆 疊(75b)。 特別是,檢驗用設備7 2經形成以回收預先決定的量, 例如於再跳躍資訊(72b)出現的情況下回收所儲存的兩個 位元組的再跳躍資訊。該收回之預先決定再跳躍資訊量輸 送給設備7 3以供解碼,以便讓它決定該預先決定之再跳躍 資訊篁是否參考現行實體記憶體視窗内的邏輯位址,或該 預先決定量包含參考現行位於實體記憶體視窗外的實體位 址。在後者的狀況,解碼用之設備73經形成以便再次激發 檢驗用的設備72,由於它是受到圖7内控制線76之指示,所 以它從堆疊7 4收回另一個經儲存的再跳躍資訊量,以辨識 位於現行實體記憶體視窗外的實體位址。 之前檢驗用設備7 2之設計被更詳細地討論,因而它以 再跳躍資訊(75a)填充記憶體,或首先藉由讀入該再跳躍資 訊(75b)清空該記憶體,該步驟的序列之說明參考圖2a,2b, 它們在微處理器讀入指令時發生,一直到它最後存取一實 體位址。
第18頁 1285840 五、發明說明(13) 首先,圖7之設備71積極地讀入一指令(20)。在其上, 圖7之設備72決定該指令是第一跳躍指令LCALL,它具備所 邏輯位址的引數,在該處一參考現行記憶體視窗一下一個 指令被儲存(2 1)在指令序列裡。更進一步,設備7 2積極地 填充堆疊(75a),也就是將再跳躍資訊置於堆疊(22)上,它 所須的時機是在被以LCALL呼叫的副程式再次終止時。最 後,設備72激發設備71透過激發線7 la讀入以在同一個實體 記憶體視窗内存取該實體位址,該實體記憶體視窗已藉由 邏輯位址於圖2a之步驟21以及目前流行的描述符(23)加以 辨識。 在一個類似的方法裡,一個指令FCALL經過處理,如圖 2b所見首先,一個指令被圖7(24)之設備71讀入。然後,用 於檢驗之設備72決定該指令係一指令FCALL。如所討論,該 指令FCALL包含該邏輯位址及一個描述符,它們共同定義一 個實體位址,該實體位址它多半是在不同於現在流行的記 憶體視窗内。 由於在參考圖7已經做了說明,該設備72在這個狀況 下,進一步地啟動以決定再跳躍資訊並將它置於堆疊(2 6 ) 上。該再跳躍資訊確保於處理用FCall呼叫之副程式後, 該副程式所被呼叫出來的源頭程式可以正確地繼續。 在填充該堆疊(圖7内75a)之後,用於讀入之設備71再 次透過該線71a受到激發,以便讓得自步驟25之描述符決定 在一個不同的記憶體視窗内存取(2 7)該實體位址。 在本發明的一個較佳實施例當中,用於讀入的設備7 1
ΗΠ 第19頁 1285840
包含一個MMU(記憶管理單位) 得自指令FCALL(步驟25)的描 可目視的實體記憶體視窗。 ,在其中一個描述符領域受到 述符予以更新以便各別變更 圖3顯示圖7内裝置之系列流程,並強調設備72決定再 跳躍指令(返回)是否已被讀入。首先,一個指令再次被^ 設備71 (30)讀入。然後,用於檢驗之設備72決定該指令= -再跳躍指令(31)。在其上,線75b受到激發而自記體 74( 32 )得到再跳躍資訊。特別是,一個也被稱為是基 訊的預先決定再跳躍資訊量被抓取,而不受制於究竟一 或第二跳躍指令是否已先行於再跳躍指令。這樣能確保盔 須中間介入現存的微處理器結構。在這樣的結構之下,該、 處理器經形成以便在每次偵測到再跳躍時自堆疊抓取一預 先決^的&資訊胃量。一個經長度為16位元(2位元組)定址的 處理器,意思是指一個處理器可以分別將64千位元組的記 憶體及一64千位元組的邏輯位址空間加以定址,這分別就 是16位元及2位元組。因此,這個2位元組始終是取自步驟 32當中的堆疊。 在步驟33當中,用於將基本資訊解碼之設備73受到激 發以便找出是否要先進行LCALL的呼叫或FCALL的呼叫。特 別疋,基本資訊受到解碼以便找出是否要從堆疊找出進一 步Ϊ訊2應注意的是該堆疊並未能積極地產生信號反應多 少資訊是屬於再跳躍。這是由於現存的處理器結構,因為 始終=須要2個位元組做為再跳躍資訊,亦即邏輯位址,該 處理器於再跳躍之後使用該邏輯位址進一步處理該系列指
1285840
令。該堆疊本身並不能提供多少跳躍資訊給圖7内76所用 於檢驗的設備,也就是要從堆疊取多少位元組。 減πΐΐϊ較詳細的說明,兩個位元組也就是檢驗設備根 =:::在FCALL指令的情況下或有時候在LCALL指令 s ^ _ 3 4固暗不指出為了更正確地決定再跳躍位址 因而須要比基本資訊更多的資訊。 一口特別是,解碼用之設備73經形成以找出一個Far返回指 :也就是在第一個較佳實施例中之基本資訊的視窗變
曰丁器,在另一個實施例當中,該基本資訊出現一個邏 =位址’ ‘該邏輯位址出現在Far區段(圖6B)時,表示用於 、碼I伸=貝訊的设備73是須要的。如果該解碼用的設備Μ 、,種方式決疋某事,它再次取存取憶體74以便從該堆疊 所謂的延伸資訊,然後它與該基本資訊共同導致正確 么只體位址,針對它必要產生(圖7之71) —跳躍以供讀入該 系列中的下一個指令。 如果解碼用之設備73決定基本資訊不包含這樣的系 數,則產生跳躍至邏輯位址,它由基本資訊加以說明,如圖3 之35所顯示。無記憶體視窗變更發生,亦即記憶體管理單
位的再建構不具備新的描述符或任何那種方式的必須發 生0 » 接下來參考兩個本發明之較佳實施例加的圖4和5,以 地說明,它與圖⑽之說明背景有關,在該處邏輯位址 述=。卩被分成非Far區段6〇及Far區段62。根據規格,該描 、’:符1,2, 3是固定的,也就是各別的丨6千位元組記憶體視窗
1285840 五、發明說明(16)
始終是固定的。為了能存取整個實體記憶體空間,該Far區 丰又62的描述符4是可變動的,它由一個箭頭μ所說明。藉由 將描述符4變更至與描述符相關聯之丨6千位元記憶體視窗 的任意基部位址,該實體位址空間内之任何實體位址均可 被存取。在圖4所說明的第一個具體實施例(具體實施例A) 内,在有關視窗變更上,該再跳躍資訊分別包含一個所謂的 Far返回指示器以及一個視窗變更指示器。該par返回指示 器的長度為1個位元組並對應到一個2 5 6位元組的邏輯位 址。這個2 5 6位元組的邏輯位址空間是以沒有代碼再跳躍 可以在這個區域發生的方式保留。特別是,該Far返回指示 器2 5 6位元組的高位址之保留位元組。
除了該Far返回指示器之外,若是在第二跳躍指令 FCALL的情況下,則產生下列進一步的再跳躍資訊並且被置 於堆疊之上。在這一方面根據圖6B,該記憶體管理單位基 部位址或者堆積號碼以及描述符資訊即指該描述符4。最 後,另外的2個位元組跟進,它由邏輯位址指示在該丨6千位 元組而由描述符所指示的記憶體視窗之内。因此,該再跳 躍資訊為4位元組並對應至圖8之80。將再跳躍資訊寫入於 堆疊之上後,該堆疊如圖8之80所指示係代表其本身。在該 堆疊之上,有個Far返回指示器(一位元組),其下是Far區段 62(圖6)的描述符。再其下是2個位元組,也就是位元組1和 位元組2,它們共同代表由該描述符所指定的記憶體視窗内 的邏輯位址。
下面的說明參考圖4,當使用跳躍指令LC ALL和FC ALL
第22頁 1285840
時,大半的可能性以表列的方式加以說明。依該跳躍的啟 始點和目標點,總共有八種可能性,它們將被討論於下。 圖4的列40,說明了 一個無視窗變更的跳躍從非Far區段進 入非Far區段。這是譬如從描述符}所指定的邏輯位址區俨 跳躍至描述符2所指定的邏輯位址區段。在此無記憶體再& ^構發生,因此2個位元組足充做再跳躍資訊,它代表該邏 輯位址,一個跳躍至其處必須產生以便繼續處理該系列的 指令。這兩個位元組分別對應了再跳躍資訊及基本資訊之 預先決定量,並說明於圖8之81。
於列41當中說明了具備LCALL而從Far區段62跳躍至非 Far區段之一 60。此處也不須要視窗變更,因此也是兩個位 元組足夠充做再跳躍資訊。在圖4的列42及43當中也是同 樣的道理。譬如,此處從非Far區段產生具有LCALL的跳躍 進入到Far區段,或者從Far區段產生跳躍進入到另一個Far 區段。 此處應注意的是該第一跳躍指令LCALL分別導出無描 述符變更及無視窗變更之定義,但是在該圖6B之描述符1及 4指定的實體記憶體視窗當中僅有一次跳躍。 第二個跳躍指令FCALL也有幾種可能性。第一種可能 性並未在圖4當中說明。此處說明的是從非Far區段產生具 有FCALL的跳躍進入另一個非Far區段或進入同一個非Far 區段。這個可能性只是理論上的,因為在非F a r區段當中的 描述符根據定義是固定的。如果該指令仍可被執行,則須 要4個位元組的再跳躍資訊。然而,以圖之列4 0當中的具有
第23頁 1285840 五、發明說明(18) 指令LCALL執行這樣的跳躍會更有利得多。 另一個理論上的可能性也沒有被說明,亦即從Far區段 產生具有FCALL跳躍進入非Far區段。此處也須要4個位元 組的再跳躍資訊。在一個跳躍已產生進入非Far區段之後, 它的描述符即由定義加以固定,這種可能性也是相當理論 性的,而使用列41當中之的指令LCALL的時候會有利得多。 如果從非Far區段產生具有FC ALL之跳躍至Far區段(圖4之 列4 7 ),則如圖8之8 0指出的該所須4個位元組的再跳躍資訊 就須要。雖然啟始點是非Far區段,但指令FC ALL導致描述 符4之變更。 在發生描述符變更之後,必須為再跳躍執行描述符的 恢復,這是藉由使用儲存於再跳躍資訊内的”舊”描述符。 如果從Far區段產生跳躍進入另一個Far區段,也須要將4個 位元組的再跳躍資訊置於堆疊上(圖4之列48),以便在再跳 躍當中進入"舊"Far區段。 因此,在圖4當中所示的具體實施例當中,該Far返回指 示器明白地指出一個跳躍是以FCALL而不是以LCALL執行, 因為在以LCALL執行的跳躍當中,一個Far的指示器從未在 再跳躍資訊裡被取出。 顯示於圖4之本具體實施例的重要特徵是分別在堆積 内和非Far區段内之跳躍始終以LCALL執行,而每個以lcall 跳躍只須要兩個位元組。在原始碼當中,fcall與lcall產 生差異,那意指對於記憶體堆積和記憶體視窗的問題仍然 各別有所考慮。
第24頁 1285840 五、發明說明(19) 圖4當中顯示之本具體實施例還有進一步的優點,那就 是有關堆疊消耗提供有完全而大量的可容性,也就是再跳 躍可須要有2個位元組或4個位元組之任何一種,它意指2乘 2位元組。 還有,在圖4的具體實施例當中,必須要考慮的是對於 每個F C A L L指令會發生4個位元組的堆疊消耗。 在下面,一個替代的具體實施例將顯示於圖5,在其中 以FCALL從非Far區段跳躍進入Far區段僅須4個位元組,然 而以FCALL從Far區段跳躍至任意的區間僅須3位元組,這與 圖4内顯示之具體實施例相反。 使用LCALL的時候,於圖3之列50、51、52、53當中的 不同可能性有詳細的說明,而使用FCALL的時候,則在列56 和57當中該可能性予以說明。在圖5所顯示之具體實施例 當中,解碼用之設備7 3在與圖4有關聯之敘述當中提到對 Far返回指示器是敏感的,而該用於解碼之設備針對再跳躍 資訊的上兩個位元組也就是基部資訊是否為Far區段内之 邏輯位址有進一步敏感的反應。
特別是,該3位元組之再跳躍資訊係被建構為如顯示於 圖8之82的樣子。上兩個位元組當中的位元組1和位元組2 代表在Far區段裡的邏輯位址,然而第三個位元組是該記憶 體視窗的8位元描述符,從該處開始以FCALL slcalL的方式 已、C被執行。在列5 0當中指出的狀況,從非f a『區段以 LCALL進入非Far區段,無特殊的結果發生。只有2位元組的 再跳躍資訊被置於堆疊上,它對應於圖8之8丨的狀況。然
1285840 五、發明說明(20) 而,如果從Far區段是以FCALL產生一個跳躍至非Far區段, 該再跳躍資訊的3個位元組(案例況82 )必須被置於堆疊(列 5 1)之上。在一個再跳躍當中,用於解碼的設備將會決定該 上部2位元組的資訊代表該邏輯位址空間之f a r區段内的邏 輯位址。因此,解碼用的設備激發了檢驗用的設備72以便 再次存取該堆疊,以便取得進一步的位元組。 然而,如果從非Far區段以LC ALL (列52)產生跳躍進入 Far區段,就只須要兩個位元組,因為該再跳躍資訊的邏輯 位址是在非Far區段内。然而,如果從Far區段以LC ALL (列 52)產生跳躍進入Far區段,則再次須要3個位元組,因為所 谓意指該基本> 訊的再跳躍資訊預先決定量之邏輯位址是 在該邏輯位址空間的Far區段内之邏輯位址。 然而,如果是從非Far區段是以FCALL跳躍進入非Far區 段,就須要4個位元組的再跳躍資訊(圖80之8的案例),因為 該FC ALL指令可能要求描述符變更,它須要被再儲存。因為 該源始的邏輯位址是在非Far區段内,解碼用的設備73將不 會採取進一步的行動僅是由於列5 〇到5 3的所敘述的標準。 因此更進一步,Far返回指示器以再跳躍方式儲存,它發送 信號給檢驗設備7 3,因而所須要從記憶體抓取的不是額外 的1個位元組而是兩個額外的位元組,以便”用完”全部4位 元組的再跳躍資訊。 在建構圖5之列50,從非Far區段跳躍進入非Far區段可 以用指令LC ALL做更加有利的執行。在此,僅有2個位元組 的堆疊被消耗掉。
第26頁 1285840 五、發明說明(21) 圖5未說明另一個更具理論上的可能性,也就是從Far 區段是以FCALL跳躍進入非Far區段。然而,因為該非Far區 段的描述符為定義所固定,但是會被指令FCALL所變更,這 個可能性並未在正常的可能性上加以指出。然而,也有該 種例外的可能性之處,即在非Far内之描述符也會被變更。 在任何的狀況之下,本案須要3位元組再跳躍資訊量,它再 次對應到案例82,。在這個狀況下,再跳躍資訊的上兩個位 元組是Far區段的邏輯位址,它是由解碼用的設備73所決 定,並促使檢驗用設備7 3從堆疊取得另一個位元組。
如圖5之列56所敘述,如果從非Far區段是以FCALL跳躍 進入Far區段,就再次須要4個位元組的再跳躍資訊(圖8之 案80),因為再跳躍資訊的邏輯位址在par區段内是無位址 以及單一解碼,因為Far區段未導致從這個堆疊進一步抓取 位元組的指示。因此就須要返回指示器。
至於從Far區段跳躍進入Far區段的狀況(圖5之列75) ,再次須要3個位元組。若是在再跳躍的情況下,解碼用的 設備73將決定源點的邏輯位址是在Far區段的邏輯位址内 因此它激發了檢驗用設備72以便從堆疊得到額外的位元組 以及消耗圖8之案例8 2的所有3位元組。 一參考圖5,可以見到出自Far區段呼叫,它始終須要3位 兀組的再跳躍資訊,並無受制於該呼叫是否產生跳躍進入 F a r區段或非F a r區段。如在索你丨r 9你·% as工 ^ ^ ^ ^ ^ 如隹荼例82所祝明,該再跳躍資訊 之邏輯位址被置於堆疊上,而描述符也就是記憶體管理 位基部位址被置於堆疊内的邏輯位址之下。再跳躍資訊究
1285840
位元組之差異被呈現出來由解碼用之設備 73執仃以決定該再跳躍資訊的上部2位元組是否代表以犷區 段内之邏輯位址。 參考圖4之說明,如果一個呼叫以FCALL進入以厂區段發 生,則須要4個位元組。然而,如果該Far區段以FCALL"被進 入”則只須要2個位元組(圖5之列52)。 圖5内所顯示的具體實施例的特殊之處在於以厂區段内每次 呼叫花費3個位元組。
圖五所顯不有關的具體實施例特殊之處即在於區 段内每次呼叫消耗3個位元組。
依該形式,參考圖4的所顯示的具體實施例比顯示於圖 5的具體實施例將更有利或者更不利。如果打算始終利用 指令FaLL,_而實際上該實體位址空間將被線性地定址到例 如8百萬位元組,則圖五所顯示的具體實施例在沒有必要執 行FCALL及LCALL之間的差異化情況較為有利,因為僅必須 使用指令FCALL·在這個情況裡,用於解碼的設備了3被形成 以便依需要而從該堆疊取得3位元組或4位元組。以FCALL 跳躍進入非Far區段在原則上是可能的但以LCALL的方式 可以執行得更為簡單和更便宜(圖5的列5 〇和5 1 )。儘管如 此,只限制跳躍FCALI:的用途所具有的優點是跳躍指令只有 一種選擇,因而再也不須就一種選擇和另一外一種選擇之 間做區分。 然而,如果L C A L L經常被使用,而f c A L L很少用,可以看 出來在圖4的具體實施例裡以參考堆疊使用較為有利。
第28頁 1285840 五、發明說明(23) 然而,所有的具體實施例有共同之處就是對於跳躍究竟具 有描述符變更(LCALL)或無描述符變更(FCALL)的名確區分 已經沒有必要,這是由於執行跳躍時再跳躍資訊具有的'創 造性解碼,以及由於在各別再跳躍情況下各別再跳躍資訊 的解碼。更進一步,該具創造性的堆疊解碼讓硬體控制的 區別功能可以FC ALL·或LC ALL呼叫。這種可能性就像一般狀 況一樣是透過始終自堆疊拿取相同量的再跳躍資訊,但與 一般狀況不同的是不僅僅把預先決定的再跳躍資訊解釋為 邏輯再跳躍位址,而是將它解碼以決定它是否已經是全部_ 的再跳躍資訊(圖8之82案例),或者是再從該堆疊抓取2個 位元組(圖8之案例80),以便能夠決定正確的實體位址,它 必須於再跳躍後被存取,以便繼續執行該系列的指令。’ 若不符上述的具體實施例,也有可能使用一個顆粒性 不同於1個位元組的堆疊。更進_步,也有可能使用不足i 位元組做為Far返回指示器,例如只有一個位元,它在一個 為解碼器所知之預先決定再跳躍資訊量的某一位置加以 理,因此該解碼器可以檢驗是否要從堆疊抓取進一步 訊(例^當位元被設定的時候),或者無須自堆疊要求資訊 (例如當位元未設定的時候)。 、° 太物ίΪ個應用的意義上,術語"描述符"意指可以儲存基 憶體管理單位内之裝置,以及儲存在這個^ 同有效位疋或是針對資訊存在的量表之指標。 取
1285840 圖式簡單說明 第1圖為一系列典型之指令。 第2a圖為具LCALL跳躍之流動系列。 第2b圖為具FCALL跳躍之流動系列。 第3圖為再跳躍之流程圖。 第4圖為根據本發明之第一個具體實施例有關再跳躍資訊 的表格式說明。 第5圖為根據本發明之第二個具體實施例有關再跳躍資訊 的表格式說明。 第6 A圖為連續性實體記憶體視窗之圖表呈現。 第6B圖為非連續性實體記憶體視窗之圖表呈現。 第7圖為一處理一系列指令之創造性裝置區塊圖。 第8圖為一圖表呈現出具不同再跳躍資訊之堆疊。 元件符號說明 10,70 指令系列 10a 5 10k 跳躍副程式1 10b 跳躍副程式1之執行 10c 再跳躍至主程式 lOd 跳躍至副程式2 lOe , lOi 該副程式2之部分執行 lOf 跳躍至副程式3 lOg 副程式3之執行 lOh 再跳躍至副程式2
第30頁 1285840 圖式簡單說明 1 Om 20,24, 21 22 23 25 26 27 31 32 33 34 35 40 至44 47 至48 50 至53 56 至57 60 62 63 71 71a 71b 72
主程式結束 3 0 Ί買入指令 指令係LCALL 將再跳躍資訊置於堆疊上 在相同的實體記憶體視窗内存取實體位址
指令係FCALL 將再跳躍資訊置於堆疊上 在另一個記憶體視窗内存得實體位址 指令係返回 從堆疊取得再跳躍資訊 將基本資訊解碼 再次解碼和取得 解碼且無重新取得 LCALL具體實施例A FCALL具體實施例A LCALL具體實施例B FCALL具體實施例B 非F a r區段 F a r區段 描述符指示器 讀入設備 邏輯位址線 實體位址線 檢驗用設備
第31頁 1285840 圖式簡單說明 72a 指令係LCALL,FCALL 72b 指令係返回 73 解碼用設備 74 再跳躍資訊記憶體 75a 填充記憶體 75b 清空記憶體 76 激發經更新之堆疊存取控制線 80,81 , 8 2 位元組再跳躍資訊
第32頁

Claims (1)

1285840 案號 92117191 车 Ά 一一—I 條正- 六、申請專利範圍 1 · 一種用於處理一系列指令(7 0 )的裝置,該指令儲存於實 體位址空間的不同記憶體位址,其中,該裝置被形成而以預 先決定的邏輯位址數量將一邏輯位址空間定址,且其中該 實體位址空間大於邏輯位址空間,在其中一跳躍指令 (FCALL)包含一實體位址以便將指令定址,該指令被置於邏 輯位址空間所定義的實體記憶體視窗之外,而且在其中提 供有再跳躍指令(返回)以終止由該跳躍指令所啟動的次系 列指令, 該裝置包含: 用於讀入該系列指令當中的指令之設備(71); 用於檢驗指令的設備(72),在其中用於檢驗的設備被形成 而在該跳躍指令(FCALL)出現的狀況下用於決定和儲存再 跳躍資訊,該指令係有關目前的實體記憶體视窗並且於再 跳躍指令(返回)的情況下用於回收所儲存的預先決—量之 再跳躍資訊;以及 設備(73)用於將預先決定量之儲存的再跳 決定是否預先決定量包含參考現行實體貝訊解碼, 實體位址以激發檢驗設備(72)回收另一儲上,視窗之外的 訊以便辨識用於再跳躍之現行實體印触存量的再跳躍資 位址。 ° ,v"體视窗之外的實體 2 ·根據申請專利範圍第1項的裝置 其中進一步提供另一個跳躍指令(lcaL 位址的資訊以便將一指令定址,該指令它包括了 一邏輯 空間所定義的實體記憶體視窗内,7…置於由邏輯位址 1285840 案號92117191 了…年又月^曰 修正_ 六、申請專利範圍 在其中,若檢驗用的設備(72)在另一個跳躍指令(LCALL)出 現的情況下被形成,以決定及儲存進一步的再跳躍資訊,而 該指令係參考現存邏輯位址空間,以及 在其中,用於將所儲存的預先決定量之再跳躍資訊解碼之 設備(7 3 )被進一步形成,以決定該預先決定量是否要參考 適於再跳躍的現行實體記憶體視窗内的邏輯位址。 3. 根據申請專利範圍第1項之裝置,
在其中,該系列指令包含一個主程式,其中該主程式包含一 個呼叫器以呼叫副程式(UP 1,UP2, UP3),而且在其中,一返 回指令被配置於副程式之末端,而且 在其中,呼叫指令可藉由跳躍指令或進一步的指令實現,而 返回指令則藉由再跳躍指令實現。 4. 根據申請專利範圍第2項之裝置,進一步包含: 一個記憶管理單位,以轉換跳躍指令(FCALL)或進一步的跳 躍指令(LCALL)的資訊為一實體位址。 5. 根據申請專利範圍第4項之裝置,
其中,記憶體管理單位於該處形成以使用一描述符,它係辨 識位於實體記憶體視窗内之實體位址,因此實體位址能夠 藉由使用該描述符和位於邏輯位址空間内之邏輯位址所決 定。 6 .根據申請專利範圍第5項之裝置, 在其中,記憶體管理單位被形成以為一邏輯位址空間使用 至少兩個不同的描述,因此由該邏輯位址空間所定義的實 體記憶體視窗包含了不連續的實體記憶體區域,在其中每
第34頁 1285840 ---Q91171Q1 六、申請專利範圍
修正 個記憶體區域均與該邏輯位址空間的區段相關聯。 7·根據申請專利範圍第6項之裝置, 在其中,該邏輯位址空間的一個區段被定義為F a r區段 (6 2 ),以致只有一次跳躍至該區段的邏輯位址藉由使用該 跳躍指令(FCALL)導致記憶體區域的變更。 8·根據申請專利範圍第1項之裝置, 在其中,關於該跳躍指令(FCALL)之實體位址的資訊包含了 一邏輯位址及一用於辨識一實體記憶體區域之描述符。 9 ·根據申請專利範圍第2項之裝置, 在其中,檢驗用的設備(72)被形成以決定一邏輯位址做為 進一步跳躍指令(LCALL)之再跳躍資訊,藉由使用該指令該 系列的指令可於再跳躍指令之後繼續。 I 〇 ·根據申請專利範圍第1項之裝置, 在其中,檢驗用裝置(72)被形成以產生一個視窗變更指示 器,並將它附加到該跳躍指令之再跳躍資訊。 II ·根據申請專利範圍第1 〇項之裝置, 在其中,檢驗用的設備(72)被形成以決定一個供辨識實體 記憶體區域及邏輯位址的描述符,除窗變 以便藉由使用該邏輯位址和描述符於再見二指更上丁= 該指令系列。 1 2.根據申請專利範圍第丨〇項之裝置, 在其中、,該視窗變更指示器參考一個或數個邏輯位址空間 之預先決疋之位址,|£定義而言無跳躍至該處發生。 13.根據申請專利範圍第7項之裝置 1285840 在其中,吊软解吟的齡 〶2) 秦。 'I ΐ £ ^ (讀;r ,丈k琴二镇展儲存讀再誕躍資虞 ί 风··,^ ί 7 +Γ·破餘存的再跳躍資訊的贺先^ 輯位址空間内之邏輯位址的資訊,… ♦i,,輯体·μ ί ί 4’Γ個貧 卢£ v,心两先決疋軍責含兩個督 Ρ_涵 預定的邏輯位k i蔷而 〜 ^入間疋精由一 個實體位ΐ_0’蒙 Μ便將一個指令定址,該指 晉. 3 位址-間所1義的_
六、申請專利範圍 ' . , , _ _ - .... * 其中提供有一再跳權指令(返回)以终止一粗由該疏 . .... ... .· , ..·;_·. · -· . . . .... .. .. .... . ; : . Μ 1285840 .該方:法包::含 讀入(71)該系列指令、當中办卜 輪驗(72)該指令:,城 在跳·指令復CALL·)存 訊,該指令參考蘇實 令(返回)C情況下 , ..··.· · . · ; · · · ;·' · ·.··... · - ' .... ·,·..· . . ·.·.*..· ... .: .'一 : : L : ^ ... ....匕... 訊;以及 .... ^ , I - - . .... * .· · 將所雇存乏預先決l專 ^ · · . ' . .. ' · · . .... ·. . . V . · · ··...· · . · ...... 先決定量是杏包含參考現行實豉 ... · ' .... ' ... . ' ' ' , ' ...... . .. * .... ,-.. . 址,以便在這種情況半(76 )激發檢驗(72 )用設備,卜以^ 所儲存的再跳躍資訊:進一步之〔量^ .· . *.·. . ·,·... . . . ........ . , ..... ·. . ., ·. · . ... ·· , · 記憶體視窗之外的實體位址。
第37頁
TW092117191A 2002-06-24 2003-06-24 Apparatus and method for processing a sequence of jump instructions TWI285840B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10228151A DE10228151A1 (de) 2002-06-24 2002-06-24 Vorrichtung und Verfahren zum Verarbeiten einer Sequenz von Sprungbefehlen

Publications (2)

Publication Number Publication Date
TW200405207A TW200405207A (en) 2004-04-01
TWI285840B true TWI285840B (en) 2007-08-21

Family

ID=29795859

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092117191A TWI285840B (en) 2002-06-24 2003-06-24 Apparatus and method for processing a sequence of jump instructions

Country Status (5)

Country Link
EP (1) EP1516245B1 (zh)
AU (1) AU2003246576A1 (zh)
DE (2) DE10228151A1 (zh)
TW (1) TWI285840B (zh)
WO (1) WO2004001586A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401210B2 (en) * 2005-03-30 2008-07-15 Arm Limited Selecting subroutine return mechanisms
KR101996351B1 (ko) * 2012-06-15 2019-07-05 인텔 코포레이션 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐
CN113724775B (zh) * 2021-08-23 2023-07-04 南京大普信息技术有限公司 元信息管理方法、固态硬盘控制器及固态硬盘

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261101A (en) * 1990-02-28 1993-11-09 Microsoft Corporation Method for calling and returning from subroutine that is invoked by either a near call or a far call
EP0649084A1 (en) * 1993-10-18 1995-04-19 Cyrix Corporation Microprocessor branch processing

Also Published As

Publication number Publication date
EP1516245B1 (de) 2005-08-24
DE50301056D1 (de) 2005-09-29
TW200405207A (en) 2004-04-01
EP1516245A1 (de) 2005-03-23
DE10228151A1 (de) 2004-02-05
AU2003246576A1 (en) 2004-01-06
WO2004001586A1 (de) 2003-12-31

Similar Documents

Publication Publication Date Title
TWI356303B (en) System and method for using a memory mapping funct
TW502212B (en) System and method for reducing computing system latencies associated with branch instructions
US6216219B1 (en) Microprocessor circuits, systems, and methods implementing a load target buffer with entries relating to prefetch desirability
US5321821A (en) System for processing parameters in instructions of different format to execute the instructions using same microinstructions
JPH0427573B2 (zh)
KR101799764B1 (ko) 다중 명령 세트로부터의 명령 디코딩
JPH07508120A (ja) 不揮発性メモリへのデータ書込み
JPH0728640A (ja) 命令オペレーション・コードの検査装置及び方法
US20190171376A1 (en) Permission control for contingent memory access program instruction
JPS6125169B2 (zh)
KR101668314B1 (ko) 특수 뱅킹 명령어들을 갖는 마이크로컨트롤러
TWI285840B (en) Apparatus and method for processing a sequence of jump instructions
JP2004151962A (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
JP3858013B2 (ja) 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
JP3710465B2 (ja) 記憶装置におけるアドレス指定のための中央処理装置の制御方法および制御装置
EP0471888A2 (en) Microprocessor for enhancing initiation of data processing after execution of conditional branch instruction
NO317558B1 (no) Fremgangsmate og anordning for a tillate at et fiksert program kan utvikles
JP2004505345A (ja) 分岐ターゲットバッファを有するデータプロセッサ
JP7369701B2 (ja) 処理回路上で実行されるべきプログラムをデバッグするときにメタデータにアクセスする方法
JPH10247165A (ja) 書込補償回数有限メモリへのデータ書込方法及びその装置
JP2943772B2 (ja) 分岐予測方式
JPH077353B2 (ja) アドレス選択方式
US7415602B2 (en) Apparatus and method for processing a sequence of jump instructions
JP2003196087A (ja) マイクロコントローラのメモリアドレッシング方法及びページマッピング装置
JP2004240783A (ja) シミュレータ

Legal Events

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