TWI292094B - Method, processor and correlating system for updating the instruction fault status register - Google Patents

Method, processor and correlating system for updating the instruction fault status register Download PDF

Info

Publication number
TWI292094B
TWI292094B TW094138199A TW94138199A TWI292094B TW I292094 B TWI292094 B TW I292094B TW 094138199 A TW094138199 A TW 094138199A TW 94138199 A TW94138199 A TW 94138199A TW I292094 B TWI292094 B TW I292094B
Authority
TW
Taiwan
Prior art keywords
instruction
error
processor
stage circuit
circuit
Prior art date
Application number
TW094138199A
Other languages
English (en)
Other versions
TW200627145A (en
Inventor
Jusufovic Zihno
V Miller William
Short Tim
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200627145A publication Critical patent/TW200627145A/zh
Application granted granted Critical
Publication of TWI292094B publication Critical patent/TWI292094B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

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

Description

T2Q90Q4 徽,7™ 1 17057twfl.doc/006 年月口粉]粟替換貝| 九、發明說明: 【發明所屬之技術領域】 本發明是有關於一種電腦處理器,且較特別的是,有 關於一種用來更新在電腦處理器中的指令錯誤狀態暫存器 的改良式系統與方法。 【先前技術】 執行程式碼(code)的處理器(processors)係為人所熟 知,且係廣泛應用在從桌上型電腦到如手機與個人數位助 理(Personal Digital Assistant,PDA)的可攜式電子裝置的各 種產品與應用中。目前已有多種不同的電腦架構 (architecture),來決定如何在處理器中處理指令 (instructions)。每一種架構都以不同方式處理其中所執行的 程式碼所產生的問題(pr〇biems)與錯誤(faults)。而每一種架 構的其中一重要特性即為如何報告(rep〇rt)及處理(handle) 問題或錯誤。在本發明中,術語,,異常中斷(ab〇rt),,及,,錯誤 (fault)”會交替使用。 如果使用的疋二級管路架構(three stage卩丨卩⑷狀 architecture),則如同其他的處理器架構一般,當擷取(fetch) 一私式碼指令時,如果偵測到發生錯誤,就會以標示所偵 測到的錯誤細的資訊,更新錯驗態暫存器㈣沾触仙 gister,以下簡稱fsr)。然而,當在擷取級電 ,日π處理态並未立即採取任何與該指令相關的動作,而 疋處理盗會將該指令移動至下一級,也就是解碼級 (decode stage)電路,並且再移動^再下―級,也就是執行 5 1292094 17057twfl.doc/006 mToT隼Λ % 96-8-3 級(execute stage)電路。朗到達執行級電路之前 並未確實認知錯誤料1且處理H會將其導向(ve^、 個異丰中斷處理程序(ab〇rt handler),以處理該錯誤 這種特別的實施架構中,在認知到錯誤發生之前小, 要用到三個時脈週期(dQek eydes)。因此,在 ^ ==認知之前’處理器的擷取級電路必須另外多= 經由檢查在管路架構中的錯誤處理程序 handling),可充分瞭解其細節。首先,擷取—第(人吨 並且偵測财錯誤發生,而且錯誤發生的 m =操取相關二 接下來會«二指令錯誤發生的仙,記錄在fsr中^ ifi(OTerrte)與第—指令相_錯誤狀態資訊。·4 生。在此例中,連續錯誤並 :會:=Γ=,ί二指令會被移動至解“ 執行時:該異常二;Γ:指Γ執行級電路中被 1显當帽處而且處理11會將其導向至 旦異常中斷已被導向至異常 處,程序之後,處理H就會讀取其齡FSR,以 1令相Γ錯誤發生原因,根據該錯誤發生原因,= 疋處理減該採取什麼動作,以解決該相關題。因二,、 6 1292094 17057twfl.doc/006 96-8-3 相關錯誤發生原因的正確性是相當重要的,否則的話,處 理器將無法採取適當的改正動作。 然而在。Ρ刀實例中’當在等待從執行級電路到處理里 常中斷時,會有其他問題發生。舉例而言,如果獲取兩個 指令,則第-指令可能會因理由Α而中斷,而第二指令可 能會因另-理由Β而中斷。當將第—指令移動至解碼 路時’會擷取第二指令,並且以其異常中斷的理由Β,更 =指令;FSR。接下來,當將第一指令移動至執行級電路時,
處理器會將其導向至異常中斷處理程序,並且從指令FSR 5買取理由,因此會從FSR讀取錯誤的異常中斷理由(理由B 而非理由A)。 因為無法信任在FSR中的里當由辦饰山 ^ :的異常中斷處理程序,以蚊錯誤發生的原因 要用到較複雜的記憶體管理操作系統(mem〇ry 〇Perating SyStem) J 〇 1.^ 作系統係將虛擬記憶^virtualmemo)觀念,應用 實‘己::。虛Γ記憶體係用在當使用者只具有較小量的 笋=體,而想要在其上使用較大量的軟體程式碼時’ 式曰達iii,erating system,os)實現虛擬記憶體的方 取並J二量的記憶體以進行運作。當軟體想要存 會偵測到ί “生:虛擬記憶體時,此時即 作系=2=程序。在異常中斷處理程序令,操 猎由在硬碟與可用實體記憶體之間傳送資訊,而 1292094 n〇57twfl.doc/〇〇6 96-8-3 ^作記龍。接下來,程式碼會在之前被 被啟,,且該程式碼所定址的記憶體位置即為目前位^ 牛例而g,在個人電腦中,可能有一 ::統(主操作系統)正在執行,用來控 :: =實:=使用者可在一操作以 個弟—版本的Linux,使第二版太沾τ · 爷係控制所有硬體,麸並非‘ . 、inux以為 Γ握你= 非此。事實上’所有硬體係為 5作錢所㈣。接下來,使用者可以並行方式啟2 ln 〇WS XP,使用者亦可啟動Windows 98。因此在第 ,操作系統之下,可能會有三個不同的 等统等而:示器、= =何:個操作系麟這些硬體具有控 ^ 所有硬體的控制權。雖然此實上= 咸,但因其較有利,或因使用者想執行 ^用以都只能在Linux上運行,所以此實施方式可讓在 作TL上執仃A部分應賊式的麵者,可在Linux主操 ^下啟動WindGWS,藉以執行部分只能在__ 版應用程式。此實施方式亦可讓使用者可啟動多個 在此例中,因其中某些版本可能較優於某 二版^,所以使用者可能並不需同時啟動每個版本。 = 乍系統必須知道那一個指令被中斷,且為何被中 咣合系統中可能無法獲知此資訊。因此’習知系 、、、《决疋並且設定在擷取級電路的錯誤發生理由。當第一 .1292094 17057twfl.doc/006 9在 8, -$ ! I 月替換 IW-8-3 個錯誤指令到達執行級電路時,如果在接下來的指令中還 有錯誤發生’ _存在FSR巾的值就不再為有效。換言 之,當從擷取級電路到執行級電路的運行期間,如果因不 • 同理由而發生另一異常中斷,則操作純可能會無法從 - FSR巾決定異*常中斷的發生相,而且可能必須藉由類似 手工式地讀取相關的記憶體管理頁表(mem〇ry management page tables)’而決定錯誤的發生原因。這種以 ’工式讀成記憶體頁表的方式’無疑地會增加操作系統的 複雜度,並且使用更多的處理器時間。因此,需要一種讓 操作系統可以永遠信賴從FSR中所讀取的資訊的有效性 (validity)的實施方式,藉此降低操作系統的複雜度,並且 改善處理器效能。 【發明内容】 有鑑於此,本發明提供一種更新指令錯誤狀態暫存器 (FSR)的岐絲統及方法’崎得即使有錄個錯誤連續 發生’亦可提供精確錯誤資訊至一執行單元。 • 以下簡單介紹在各種電腦架構中的其中-種架構的 系統的一實施例。根據本發明一實施例,更新指令fsr的 系統係包括:-個擁取級電路;一個連接至榻取級電路的 解碼級電路;-個連接至解碼級電路的執行級電路;一個 用來決定在齡情發纽誤的記鍾元或保護單 元(Memory Management Unit 〇r pr〇tecti〇n Unit mmu/pu) ’ MMU/PU係連接雜取級電路;一個連 接至 MMU/PU 的錯誤通訊邏輯(fault c〇mmunieati()n 9
96-8-3 1292094 17057twfl.doc/006 電路;以及一個連接至錯誤通訊邏輯電路的指令。 根據本發明一實施例,更新指令FSR的方法係包括 列步驟:娜-龄;決定辦令是轉錯誤;解碼該指 令,並且執行該指令’其巾,如果該指令為錯誤,則連同 该指令,將標示該指令為錯誤的資訊與錯誤的理由,一起 傳送至解碼級電路與執行級電路。
經由本發明之說明及實作,可充分了解及學習本發明 之其他特色及/或優點。 為讓本發明之上述和其他目的、特徵和優點能更明頻 易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說 【實施方式】 請參照本發明實施例的内容,且其實例繪示在相對應 的圖式中,其中相同的標號代表相同的構件。下文特舉& 佳實施例,並配合所附圖式,以詳細說明本發明所 更新指令FSR之系統及方法。 如圖1的模組圖所示,管路型處理器係具有多數個功 能級,包括一擷取級電路100 ; 一解碼級電路1〇2、以及一 執行級電路104。如眾所周知,處理器的解碼邏輯(加⑺如 logic)會將一編欲碼過的指令,解碼成多數個電訊穿 (electrical signals),用來控制及在處理器所提供的執行^ 輯(execute logic)上執行指令功能。 、 較概略地描述,處理器的擷取/執行部分係包括:一個 用來擷取一編密碼過指令的擷取邏輯(fetchl〇gic)1〇〇;以及 一個用來解碼該指令的解碼邏輯1〇2。如上所述,解碼界 10 1292094 17057twfl.d〇c/〇〇6 々xl : "'…'11…1111 ............, 1 '-« 年月日修(gi替換頁 96-8-3 102會將編密碼過的指令,解碼成多數個 =路元件的輸入和/或=== 二指定的功能動作。上述基本動作係 為…1相隨藝者所熟知,因此其細節在此不再贊述。
柄-m所實施例中,可能歸路設計成可容 二個^位疋的指令集(instructionset)及一個16位元的指 十的多指令集可提供程式編寫的彈性與容 輕強^齡/ 5 ’32位兀的指令集可提供功能較強或 ^供“碼與程式編寫能力’而16位元的指令集則可 ,、而要使用較小記憶體空間的體積較小的程式碼。孰習 者當知,32位元的指令集與16位7^的指令集之 =優缺點與取捨亦可考慮其他因素。#知可用各種不同
钱、如上所述,FSR係提供一個在指令中所發生的異常申 =或錯誤類型的指示器(indicat〇r)。在本發明中,術語,,異 ^中斷”及”錯誤”會交替使用。根據在FSR巾的異常中& 資訊,可執行特定的修正動作。 、 異常申斷發生的原因有很多種。其非限制範例包括記 饫體中的表格異常中斷(table abort)與硬體的外部異常中斷 (external abort)。其中包括MMU首頁異常中斷(first押狀 ab〇rtS)與次頁異常中斷(second page aborts)。當應用程式要 存取無效的記憶體位址時,也可能發生異常中斷,所以可 π 1292094 96-8-3 17057twfl.doc/006 能係為一種外部匯流排異常中斷(external bus abort)。也可 能因為奇偶校驗碼(parity)不合而產生異常中斷。或者因該 系統為虛擬記憶體系統,且正在被存取的記憶體映像 (memory image)雖然可能存在硬碟中,但並未被映射至記 憶體中,而發生異常中斷。 在圖1所示的習知技藝中,其中包括三個主要的指令 級:擷取級.電路100、解碼級電路102、以及執行級電路 104。其中,MMU/PU 112會確認指令記憶體管理/保護錯 誤與異常中斷。當已擷取到指令時,如果MMU/PU 112偵 測到有錯誤發生,則會立即更新1?811 114。但此刻並未認 知該錯誤’所以不會中斷目前正在執行的程式碼。接下來, 該指令會被移動至下一級,也就是解碼級電路1〇2。只有 當指令到達執行級電路104時,處理器才會真正認知^有 異常中斷發S,而且接下來處理器會將其導向至異常中斷 處理=序。根據不同管路結構設計,在認知到異常中斷發 生之刖,最少需要用到三個時脈週期,而且根據不同的管 路結構,可能會關更多時脈週期。該管路的其他部分包 括數個系統模組崩、觸、116、118、及m,該些模組 並未直接影響齡錯誤的處理,但係為贿管路處理器的 完整架構所必須。其中,系統模組蘭係為記憶體存取級 (memory access stage)。系統模組1〇8係為暫存哭回 (卞^讀此_ 系統模組U6係為資料,^取(她 cache)。糸統模組118係為資料記憶體管理/
統模組120係為資料FSR。 + ,T 圖3係繪示三個連續指令200、202、及204。當在此 12 1292094 17057twfl .doc/006 I年月日修(歎it替換頁 96-8-3 三個連續指令200、202、及204中所發生的異常中斷206、 208、及210有三個不同的理由時,問題就會發生。第一指 令200會造成異常中斷206,並且會在FSR 114中,設定 其理由碼(reason code)。接下來的指令202,會以不同理由 造成另一個異常中斷208。在非限制範例中,如果這兩個 指令200及202係跨越一個頁邊界(page boundary),則其 可能會因完全不同的理由而發生異常中斷。在此例中,在 一列中係有三個指令,指令202中有一個頁邊界,且指令 200有一個頁錯誤(page fa_。首先會擷取指令2〇〇,並且 更新FSR。接下來,會解碼指令2〇〇,並且操取另一指令 202。其中,在指令202中有一個錯誤208發生。接下來, 將每一指令順著管路,往下移動一級。接下來,擷取具有 異常中斷210的指令204,並且再次更新FSR。當指令200 到達執行級電路時,處理器會將其導向至具對應於指令 204中的異常中斷210的FSR 114内容的異常中斷處理程 序。因此,在前進到適當的回復程序之前,異常中斷處理 程序無法信賴指令FSR 114的内容,所以必須執行一個較 複雜且較費時的軟體程序,以決定該異常中斷的發生原因。 為解決此問題,如圖3所示,在圖1的管路架構中特 別加入可有效地將錯誤識別資訊與執行級電路溝通的邏 輯。在該指令到達執行級電路3〇4之前,FSR 314不會被 更新。FSR314所需的資訊,係儲存在MMU/PU312中。 MMU/PU 312係用來確認指令記憶體管理/保護錯誤與異 常中斷。當指令首先出現在操取級電路3〇〇時,目前正在 執行的程式碼並不會被中斷。接下來會將該指令從擷取級 13 .1292094 17057twfl.doc/006 年月日^{憂J正替換頁 96-8-3 電路300,移動至解碼級電路3〇2,並且接τ來再沿著匯流 排線303 ’將其移動至執行級電路3〇4。只有當指令到達執 行級電路304時,錯誤通訊模組3〇1才會更新指令 - FSR314,且該異常中斷會使處理器將其導向至一異常中斷 纽程序。在認知到異常帽之前,最少會關三個時脈 週期,,且根據不同的管路結構,可能會用到更多時脈週 期。該管路的其他部分包括數個系統模組3〇6、3〇8、316、 318、及320,該些模組並未直接影響指令錯誤的處理,但 攀 係、為描述管路處理器的完整架構所必須。其中,系統模組 3/6係為記憶體存取級。系統模組3〇8係為暫存器回寫級。 系統模組316係為資料快取。系統模組318係為資料記憶 體管理/保護單元。系統模組320係為資料FSR。
圖4係繪示一個錯誤通訊邏輯電路的較佳實施例的模 組圖。由MMU/PU312所決定的與異常中斷相關的資訊, 係與該指令一起,從擷取級電路3〇〇,傳送至解碼級電路 302,並且再傳送至執行級電路3〇4。較明確地說,訊號匯 春 ,f 305a會承載從MMU/PU 312到擷取級電路3〇〇的錯 ,貧訊。當將指令從擷取級電路3〇〇傳送至解碼級電路3〇2 日守’汛號匯流排305b會承載從擷取級電路3〇〇到解碼級電 路302的錯誤資訊。當將指令從解碼級電路3〇2傳送至執 行、、及電路304時,訊號匯流排3〇5c會承載從解碼級電路 302到執行級電路304的錯誤資訊。號匯流排3〇5d會承載 從執行級電路304到指令FSR 314的錯誤資訊。或者,當 將該指令從解碼級電路302傳送至執行級電路3〇4時,; 可將錯誤資訊由解碼級電路302,直接傳送至指令FSR 1292094 17057twfl .doc/006 ... ^ fn: O ^c. 96-8-3 314。其中,訊號匯流排305a-d可能係為一或多個訊號線。 此外,在第一級時,指令FSR並未更新,而是當指令到達 執行級電路304時,才會更新指令FSR。 请參考圖2所示根據本發明一較佳實施例的範例,其 係包括三個連續指令200、202、及204。當在此三個連^ 指令200、202、及204中所發生的異常中斷2〇6、2〇8、及 210有三個不同的理由時,問題就會發生。第一指令2⑻ 會造成異常中斷,但在本較佳實施例中,該理由碼並未被 設定在FSR 314中。接下來的指令2〇2,會以不同理由造 成另-個異常中斷208。在非限制範例中,如果這兩個指 令2〇〇及2〇2係跨越一個頁邊界,則其可能會因完全不同 =理由而發生異常帽。在此财,在—财係有三個指 ^tt2G2中有—個頁邊界,且指令綱有一個頁錯誤。 I先曰解碼指令200,並且擷取另一指令2〇2。其中,在指 dt有一個錯誤2〇8發生。接下來,將每-指令順著 i令i °接下來’操取具有異常中斷210的 7 〇〇到達執行級電路時,會以目前已被 G常中所更新的FSR314的内容,呼 有三個指令;會“各較佳實施例中,即使所 管管路有幾級,理由碼而發生異常中斷,不 因此f ^貝訊都會通過管路,隨著指令傳送。 你發? 者管路不會只單獨傳送指令。事實上,解碼 常中斷位在i發明-較佳實施例中’對應於異 行級電路3〇4===3令=傳送’並且當在執 吊中斷牯,該些位元會被載入到指 15 .1292094 17057twfl.doc/006
96-8-3 令FSR314中。當異常中斷處理程序被呼叫時,目前正在 執行級電路中的指令的異常中斷發生的理由,會再被傳送 出去。在本較佳實施例中,因為異常中斷的理:是與指令 一起傳送,所以異常中斷處理程序可充分信賴記錄 FSR 314中的異常中斷發生理由的有效性。因此,可簡化 異常中斷處理程序,使其更有效率地執行。 圖5係繪示另一個錯誤通訊邏輯電路3〇1實施例的模 組圖三其中,η階FIFO(先進先出)307係用來儲存錯誤資 訊,藉以當指令到達執行級電路304時,可將錯誤資吼載 入指令FSR 314。FIFO 307的深度最少必須與指令管路的 深度相同。在本發明管路架構的一較佳實施例中,其係具 有二級,因此FIFO 307必須至少為一個3階fjF〇。雖然
如此,該管路的深度並不受限於此,因此的深度可 根據實際需要而變。 X 在本發明另一較佳實施例中,FIFO 307係與指令FSR 314合併在一起。在此例中,事實上FSR 314即:一個 FIFO。一旦有錯誤發生,MMU/PU312就會將錯誤資訊載 入FSR/FIFO 314/307。當指令到達執行級電路3〇4時,就 會從FSR/FIFO 314/307中攫取錯誤資訊。因為錯誤資訊係 載入至FIFO堆#(staek)巾,任何讀發±賴誤都不會被 覆寫,因此異常中斷處理程序可處理適當的錯誤資訊。 、在詳述本發明特定實施例的特定功能與架構的實施 方式之後,以下參考圖6的流程圖,詳細說明根據本發明 實施例,沿著管路前進的指令處理步驟。首先,在步驟X4〇〇 中,擷取一指令。在擷取指令之後,接下來在步驟4〇2中, 16 1292094 17057twfl.doc/006 决疋在該扣令中是否有錯誤 ΜΜυ/Ρϋ312所執杆。&里+卓1 该决疋動作係由 + ι執如果在步驟402中決定並沒有 發生,則在步驟404中,解碼該指令,並且在^有6 = —牛驟L Γ 步驟402中決定有錯誤發生, 則在步驟4G8中,將錯誤碼隨著指令,沿著管路 m:在步驟410中’該指令會在解碼級電路i
二r,著解碼過的指令一起,傳送至執行 ^路。接下來,在步驟412中,㈣胁目前正在 、,及電路中所執行的指令的錯錯誤碼,更新指令舰, 並且執打該指令。最後,在步驟414中, 理程序,並且將錯誤碼傳送至異常中斷處理程^中所處 雖然本發明已以較佳實施例揭露如上,然其並非用以 限j本發明,任何熟習此技藝者,在不脫離本發明之精神 =範圍内,當可作些許之更動與潤飾,因此本發明之保護 範圍當視後附之申請專利範圍所界定者為準。 【圖式簡單說明】
96-8-3 圖1係繪示一個習知的管路型處理器架構的模組圖。 圖 圖2係繪示一個具有異常中斷的三個順序指令的模組 圖3係繪示一個根據本發明一實施例的一個管路 理器架構的模組圖。 圖4係繪示一個根據本發明另一實施例的一個管路 處理器架構的模組圖。 圖5係繪示一個根據本發明又另一實施例的一個 型處理器架構的模組圖。 17 1292094 17057twfl.doc/006
96-8-3 圖6係繪示一個流程圖,用來說明根據本發明—實扩 例的一個用來更新在管路型處理器中的指令FSR的方 【主要元件符號說明】 / ° 100, 300 :擷取級電路 102, 302 ··解碼級電路 104, 304 :執行級電路 106, 306 :記憶體存取級 108,308 :暫存器回寫級 # 1HU10 :指令快取 112,312 :資料記憶體管理/保護單元(ΜΜυ/ρυ) 114,314 :指令錯誤狀態暫存器(fsr) 116, 316 :資料快取 118,318:資料記憶體管理/保護單元(乂]^1;/1>1;) 120,320 :資料 FSR 200, 202, 204 :指令 206, 208, 210 :異常中斷 301 :錯誤通訊模組 響 305a〜305d :訊號匯流排 307 : N階FIFO(先進先出) 18

Claims (1)

1292094 17057twn.doc/006 « ·
十、申請專利範圓: L一種用來更新在一管路處理器中的一指令錯誤狀熊 暫存裔之系統,該系統包括: 〜 官路處理器,其係具有至少三級電路,用來處理一 指令; 級電:=定模組,其係連接至該管路處理器的一掏取 -錯誤通訊邏輯電路,其係連接至該指令錯誤狀 存态與該錯誤決定模組。 飞 、2:如申請專職圍第1項所述之H其巾該錯誤通 =以輯1路包括—訊號匯流排,用來將—錯誤資訊與該指 々起傳送至在該管路處理器中的一執行級電路。 ^如申請專利範圍第1項所述之系統,其中該指令錯 誤狀態暫存1係由對應於與該指令相關的該^ 錯誤通訊邏輯電路所更新。 的该 4·如申请專利範圍第1項所述之系統,其中當執行具 有一異常中斷的一指令時,該管路處理器會將其導向至一 異常中斷處理程序。 二。、5·如申請專利範圍第4項所述之系統,其中該指令錯 决狀態暫存H㈣容,會被傳送至該異常巾斷處理程序。 、6·如申請專利範圍第1項所述之系統,其中該錯誤 訊邏輯電路包括一 FIFO。 ?·如申清專利範圍第6項所述之系統,其中該FIFO的 練度係對應於用來處理一指令的該些級電路的個數。
8-3 9. 法包括
1292094 17057twfl.doc/006 8·如申請專鄉圍第i項所述 訊邏輯^触財職㈣暫钟,健衫通 種用來更新-指令錯誤狀態暫翻之方法,該方 擷取一指令; 決定該指令是否為錯誤; 解碼該指令;以及 執行該指令; 一 f中,如果純令為錯誤,翁標補指令為錯誤的 桃、錯誤理由,隨著該指令-起,傳送至-管路型處理 器的至少-解碼級電路及—執行級電路。 10.如申請專利範圍第9項所述之方法,更加包括: 以與執行任何異常中斷的指令相關的異常中斷資訊, 更新一指令錯誤狀態暫存器。 U·如申請專利範圍第10項所述之方法,更加包括: 將該指令錯誤狀態暫存器的内容,提供至一異常中斷 處理程序。 〃 12·—種具有可更新一指令錯誤狀態暫存器之處理 器,該處理器包括·· 一擷取級電路; 一解碼級電路,其係連接至該擷取級電路; 一執行級電路,其係連接至該解碼級電路; 一資料記憶體管理/保護單元,用來決定在_指令中的 一錯誤,且該資料記憶體管理/保護單元係連接至該擷取級 20 1292094
17057twfl.d〇c/〇〇6 電路;以及 保鳟輩錯邏輯電路’其係連接至該資料記憶體管理/ /、濩早7G/、該指令錯誤狀態暫存器。 誤通專利範㈣12項所述之處理11,其中該錯 二包括—訊號匯流排,用來與該指令一起, 字、’曰誤貧成傳送至該執行級電路。 八』·二ίί利範圍第12項所述之處理器’其中該指 ^曰、狀悲暫存㈣由與—指令相關的該錯誤資訊所更 新0 ,15.如巾請專利範圍第12項所述之處理器,其中當執 行具有-異常中斷的—指令時,該處理器會將其&向至一 異常中斷處理程序。 16·如申明專利範圍弟ι5項所述之處理器,其中該指 令錯誤狀態暫翻㈣容’會被傳送至料常巾斷處理程 序0 17·如申明專利範圍第項所述之處理器,豆中該錯 誤通訊邏輯電路包括一 FIF〇。 〃 18·如申請專利範圍第17項所述之處理器,其中該 FIFO的深度鑛應於在_指令管路巾_些級電路的個 數。 19·如申明專利範圍第η項所述之處理器,其中該錯 誤通訊邏輯電路與該指令錯誤狀態暫存器,係整合至一 FIFO。 21
96-8-3 ♦ Ϊ292094 17057twfl.doc/006 七、 指定代表圖·· (一) 本案指定代表圖為:圖(5 )。 (二) 本代表圖之元件符號簡單說明: 300 :擷取級電路 302 :解碼級電路 304 :執行級電路 306 :記憶體存取級 307 : N階FIFO(先進先出) 308 :暫存器回寫級 310 :指令快取 312:資料記憶體管理/保護單元(MMU/PU) 314 :指令錯誤狀態暫存器(FSR) 316 :資料快取 318 :資料記憶體管理/保護單元(MMU/PU) 320 :資料 FSR 八、 本案若有化學式時,請揭示最能顯示發明特徵 的化學式: 無 4
TW094138199A 2005-01-26 2005-11-01 Method, processor and correlating system for updating the instruction fault status register TWI292094B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/043,701 US20060168485A1 (en) 2005-01-26 2005-01-26 Updating instruction fault status register

Publications (2)

Publication Number Publication Date
TW200627145A TW200627145A (en) 2006-08-01
TWI292094B true TWI292094B (en) 2008-01-01

Family

ID=36698476

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094138199A TWI292094B (en) 2005-01-26 2005-11-01 Method, processor and correlating system for updating the instruction fault status register

Country Status (3)

Country Link
US (1) US20060168485A1 (zh)
CN (1) CN100416496C (zh)
TW (1) TWI292094B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2460280A (en) * 2008-05-23 2009-11-25 Advanced Risc Mach Ltd Using a memory-abort register in the emulation of memory access operations
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
WO2013114745A1 (ja) * 2012-01-31 2013-08-08 日本電気株式会社 情報処理装置、及び情報処理装置の使用電力算出方法
KR101697446B1 (ko) 2012-08-15 2017-01-17 시놉시스, 인크. 임베딩된 코드에 대한 보호 스킴
US9268598B2 (en) 2012-09-13 2016-02-23 International Business Machines Corporation Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories
US9141454B2 (en) * 2012-12-27 2015-09-22 Intel Corporation Signaling software recoverable errors
KR101689984B1 (ko) * 2013-03-06 2016-12-26 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러, 프로그래머블 컨트롤러 시스템 및 실행 에러 정보 작성 방법
KR101978984B1 (ko) * 2013-05-14 2019-05-17 한국전자통신연구원 프로세서의 오류를 검출하는 장치 및 방법
US10031674B2 (en) * 2015-10-07 2018-07-24 Samsung Electronics Co., Ltd. DIMM SSD addressing performance techniques

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537559A (en) * 1994-02-08 1996-07-16 Meridian Semiconductor, Inc. Exception handling circuit and method
US6823448B2 (en) * 2000-12-15 2004-11-23 Intel Corporation Exception handling using an exception pipeline in a pipelined processor
US7594103B1 (en) * 2002-11-15 2009-09-22 Via-Cyrix, Inc. Microprocessor and method of processing instructions for responding to interrupt condition
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7013383B2 (en) * 2003-06-24 2006-03-14 Via-Cyrix, Inc. Apparatus and method for managing a processor pipeline in response to exceptions

Also Published As

Publication number Publication date
TW200627145A (en) 2006-08-01
CN1758215A (zh) 2006-04-12
CN100416496C (zh) 2008-09-03
US20060168485A1 (en) 2006-07-27

Similar Documents

Publication Publication Date Title
TWI292094B (en) Method, processor and correlating system for updating the instruction fault status register
TWI796031B (zh) 用於以在環移轉期間保護堆疊的處理器擴展的設備
US8555040B2 (en) Indirect branch target predictor that prevents speculation if mispredict is expected
US9690640B2 (en) Recovery from multiple data errors
JP5129450B2 (ja) 情報処理装置
US7590826B2 (en) Speculative data value usage
TWI274991B (en) A method, apparatus, and system for buffering instructions
JP5147564B2 (ja) レジスタ状態エラー回復および再開機構
US8468425B2 (en) Register error correction of speculative data in an out-of-order processor
EP1974272B1 (en) Method and apparatus for detecting a fault condition and restoration thereafter using user context information
US11099847B2 (en) Mode-specific endbranch for control flow termination
TWI476580B (zh) 偵測指令提取錯誤以及從指令提取錯誤復原的方法、裝置及電腦系統
US20070044003A1 (en) Method and apparatus of detecting and correcting soft error
JP2001297010A (ja) 計算機及びその誤り回復方法
US10318368B2 (en) Enabling error status and reporting in a machine check architecture
TW201113807A (en) Data processing engine with integrated data endianness control mechanism
US20180190365A1 (en) Read and write memory scrubber
GB2525715A (en) Pipelined ECC-protected memory access
US20080177990A1 (en) Synthesized assertions in a self-correcting processor and applications thereof
TWI338836B (en) Error processing method and information processing apparatus
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
US20120221838A1 (en) Software programmable hardware state machines
US9785800B2 (en) Non-tracked control transfers within control transfer enforcement
TWI221961B (en) Early exception detection
US9720764B2 (en) Uncorrectable memory errors in pipelined CPUs