專利名稱::更新指令錯誤狀態(tài)暫存器的制作方法
技術領域:
:本發(fā)明是有關于一種電腦處理器,且較特別的是,有關于一種用來更新在電腦處理器中的指令錯誤狀態(tài)暫存器的改良式系統(tǒng)與方法。
背景技術:
:執(zhí)行程式碼(code)的處理器(processors)是為人所熟知,且是廣泛應用在從桌上型電腦到如手機與個人數(shù)位助理(PersonalDigitalAssistant,PDA)的可攜式電子裝置的各種產品與應用中。目前已有多種不同的電腦架構(architecture),來決定如何在處理器中處理指令(instructions)。每一種架構都以不同方式處理其中所執(zhí)行的程式碼所產生的問題(problems)與錯誤(faults)。而每一種架構的其中一重要特性即為如何報告(report)及處理(handle)問題或錯誤。在本發(fā)明中,術語“異常中斷(abort)”及“錯誤(fault)”會交替使用。如果使用的是三級管路架構(threestagepipelinearchitecture),則如同其他的處理器架構一般,當擷取(fetch)一程式碼指令時,如果偵測到發(fā)生錯誤,就會以標示所偵測到的錯誤類型的資訊,更新錯誤狀態(tài)暫存器(FaultStatusRegister,以下簡稱FSR)。然而,當在擷取級(fetchstage)電路時,處理器并未立即采取任何與該指令相關的動作,而是處理器會將該指令移動至下一級,也就是解碼級(decodestage)電路,并且再移動至再下一級,也就是執(zhí)行級(executestage)電路。直到到達執(zhí)行級電路之前,處理器并未確實認知錯誤發(fā)生,而且處理器會將其導向(vector)一個異常中斷處理程序(aborthandler),以處理該錯誤。在這種特別的實施架構中,在認知到錯誤發(fā)生之前,最少需要用到三個時脈周期(clockcycles)。因此,在指令被執(zhí)行及錯誤被認知之前,處理器的擷取級電路必須另外多攫取兩個指令。經(jīng)由檢查在管路架構中的錯誤處理程序(faulthandling),可充分了解其細節(jié)。首先,擷取一第一指令,并且偵測到有錯誤發(fā)生,而且錯誤發(fā)生的原因,會被記錄到指令FSR中。當?shù)谝恢噶畋灰苿又凉苈诽幚砥鞯慕獯a級電路時,會同時擷取一第二指令,而且也可能同時偵測到與第二指令擷取相關的錯誤發(fā)生。如果確實發(fā)生錯誤,則接下來會將第二指令錯誤發(fā)生的原因,記錄在FSR中,并且覆寫(overwrite)與第一指令相關的錯誤狀態(tài)資訊。異常中斷有可能會順序地發(fā)生,但通常都是有特定理由才會發(fā)生。在此例中,連續(xù)錯誤并非難以解決。接下來,第一指令會被移動至執(zhí)行級電路,第二指令會被移動至解碼級電路,且會擷取一第三指令。當?shù)谝恢噶钤趫?zhí)行級電路中被執(zhí)行時,該異常中斷會被認知,而且處理器會將其導向至其異常中斷處理程序。一旦異常中斷已被導向至異常中斷處理程序之后,處理器就會讀取其指令FSR,以決定與第一指令相關的錯誤發(fā)生原因,根據(jù)該錯誤發(fā)生原因,會決定處理器應該采取什么動作,以解決該相關問題。因此,相關錯誤發(fā)生原因的正確性是相當重要的,否則,處理器將無法采取適當?shù)母恼齽幼?。然而在部分實例中,當在等待從?zhí)行級電路到處理異常中斷時,會有其他問題發(fā)生。舉例而言,如果攫取兩個指令,則第一指令可能會因理由A而中斷,而第二指令可能會因另一理由B而中斷。當將第一指令移動至解碼級電路時,會擷取第二指令,并且以其異常中斷的理由B,更新指令FSR。接下來,當將第一指令移動至執(zhí)行級電路時,處理器會將其導向至異常中斷處理程序,并且從指令FSR讀取理由,因此會從FSR讀取錯誤的異常中斷理由(理由B而非理由A)。因為無法信任在FSR中的異常中斷理由,所以需要復雜的異常中斷處理程序,以決定錯誤發(fā)生的原因。因此需要用到較復雜的記憶體管理操作系統(tǒng)(memorymanagementoperatingsystem),進而會降低其性能。記憶體管理操作系統(tǒng)是將虛擬記憶體(virtualmemo)觀念,應用在其動作中。虛擬記憶體是用在當使用者只具有較小量的實體記憶體,而想要在其上使用較大量的軟體程式碼時,藉由操作系統(tǒng)(operatingsystem,OS)實現(xiàn)虛擬記憶體的方式達到其具有較大量的記憶體以進行運作。當軟體想要存取并非真實存在的記憶體,也就是虛擬記憶體時,此時即會偵測到錯誤發(fā)生,處理程序會中斷,并且接下來被導向至上述的異常中斷處理程序。在異常中斷處理程序中,操作系統(tǒng)可藉由在硬碟與可用實體記憶體之間傳送資訊,而操作記憶體。接下來,程式碼會在之前被中斷的點上重新被啟動,且該程式碼所定址的記憶體位置即為目前位置。舉例而言,在個人電腦中,可能有一個第一Linux操作系統(tǒng)(主操作系統(tǒng))正在執(zhí)行,用來控制硬體與持續(xù)追蹤硬體的實際架構。但使用者可在該主Linux操作系統(tǒng)中,再啟動一個第二版本的Linux,使第二版本的Linux以為其是控制所有硬體,然并非如此。事實上,所有硬體系為主操作系統(tǒng)所控制。接下來,使用者可以并行方式啟動WindowsXP,使用者亦可啟動Windows98。因此在第一個Linux操作系統(tǒng)之下,可能會有三個不同的其他操作系統(tǒng),而且每個操作系統(tǒng)都以為其是完全控制顯示器、硬盤、等等。但事實卻是在這三個不同的其他操作系統(tǒng)中,沒有任何一個操作系統(tǒng)對這些硬體具有控制權。只有主操作系統(tǒng)可聲稱具有所有硬體的控制權。雖然此實施方式可能會有效能衰減,但因其較有利,或因使用者想執(zhí)行的大部分應用程式都只能在Linux上運行,所以此實施方式可讓在Linux上執(zhí)行大部分應用程式的使用者,可在Linux主操作系統(tǒng)下啟動Windows,藉以執(zhí)行部分只能在Windows上運行的應用程式。此實施方式亦可讓使用者可啟動多個版本的Linux,在此例中,因其中某些版本可能較優(yōu)于某些版本,所以使用者可能并不需同時啟動每個版本。操作系統(tǒng)必須知道那一個指令被中斷,且為何被中斷。在習知系統(tǒng)中,可能無法獲知此資訊。因此,習知系統(tǒng)會決定并且設定在擷取級電路的錯誤發(fā)生理由。當?shù)谝粋€錯誤指令到達執(zhí)行級電路時,如果在接下來的指令中還有錯誤發(fā)生,則儲存在FSR中的值就不再為有效。換言之,當從擷取級電路到執(zhí)行級電路的運行期間,如果因不同理由而發(fā)生另一異常中斷,則操作系統(tǒng)可能會無法從FSR中決定異常中斷的發(fā)生原因,而且可能必須藉由類似手工式地讀取相關的記憶體管理頁表(memorymanagementpagetables),而決定錯誤的發(fā)生原因。這種以手工式讀取記憶體頁表的方式,無疑地會增加操作系統(tǒng)的復雜度,并且使用更多的處理器時間。因此,需要一種讓操作系統(tǒng)可以永遠信賴從FSR中所讀取的資訊的有效性(validity)的實施方式,藉此降低操作系統(tǒng)的復雜度,并且改善處理器效能。
發(fā)明內容有鑒于此,本發(fā)明提供一種更新指令錯誤狀態(tài)暫存器(FSR)的改良式系統(tǒng)及方法,以使得即使有多數(shù)個錯誤連續(xù)發(fā)生,亦可提供精確錯誤資訊至一執(zhí)行單元。以下簡單介紹在各種電腦架構中的其中一種架構的系統(tǒng)的一實施例。根據(jù)本發(fā)明一實施例,更新指令FSR的系統(tǒng)是包括一個擷取級電路;一個連接至擷取級電路的解碼級電路;一個連接至解碼級電路的執(zhí)行級電路;一個用來決定在指令中所發(fā)生錯誤的記憶體管理單元或保護單元(MemoryManagementUnitorProtectionUnit,MMU/PU),且該MMU/PU是連接至擷取級電路;一個連接至MMU/PU的錯誤通訊邏輯(faultcommunicationlogic)電路;以及一個連接至錯誤通訊邏輯電路的指令FSR。根據(jù)本發(fā)明一實施例,更新指令FSR的方法是包括下列步驟擷取一指令;決定該指令是否為錯誤;解碼該指令;并且執(zhí)行該指令,其中,如果該指令為錯誤,則連同該指令,將標示該指令為錯誤的資訊與錯誤的理由,一起傳送至解碼級電路與執(zhí)行級電路。經(jīng)由本發(fā)明的說明及實作,可充分了解及學習本發(fā)明的其他特色及/或優(yōu)點。為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。圖1是一個習知的管路型處理器架構的模組圖。圖2是一個具有異常中斷的三個順序指令的模組圖。圖3是一個根據(jù)本發(fā)明一實施例的一個管路型處理器架構的模組圖。圖4是一個根據(jù)本發(fā)明另一實施例的一個管路型處理器架構的模組圖。圖5是一個根據(jù)本發(fā)明又另一實施例的一個管路型處理器架構的模組圖。圖6是一個流程圖,用來說明根據(jù)本發(fā)明一實施例的一個用來更新在管路型處理器中的指令FSR的方法。100,300擷取級電路102,302解碼級電路104,304執(zhí)行級電路106,306記憶體存取級108,308暫存器回寫級110,310指令快取112,312資料記憶體管理/保護單元(MMU/PU)114,314指令錯誤狀態(tài)暫存器(FSR)116,316資料快取118,318資料記憶體管理/保護單元(MMU/PU)120,320資料FSR200,202,204指令206,208,210異常中斷301錯誤通訊模組305a-305d訊號匯流排307N階FIFO(先進先出)具體實施方式請參照本發(fā)明實施例的內容,且其實例繪示在相對應的圖式中,其中相同的標號代表相同的構件。下文特舉較佳實施例,并配合所附圖式,以詳細說明本發(fā)明所提供的更新指令FSR的系統(tǒng)及方法。如圖1的模組圖所示,管路型處理器是具有多數(shù)個功能級,包括一擷取級電路100;一解碼級電路102、以及一執(zhí)行級電路104。如眾所周知,處理器的解碼邏輯(decodelogic)會將一編密碼過的指令,解碼成多數(shù)個電訊號(electricalsignals),用來控制及在處理器所提供的執(zhí)行邏輯(executelogic)上執(zhí)行指令功能。較概略地描述,處理器的擷取/執(zhí)行部分是包括一個用來擷取一編密碼過指令的擷取邏輯(fetchlogic)100;以及一個用來解碼該指令的解碼邏輯102。如上所述,解碼器102會將編密碼過的指令,解碼成多數(shù)個訊號線(signallines),且該些訊號線是用來控制及執(zhí)行該編碼過的指令。因此,解碼器102的輸出是為當成處理器的執(zhí)行單元內部其他電路元件的輸入和/或控制訊號的訊號線。執(zhí)行單元是用來執(zhí)行編碼過指令所指定的功能動作。上述基本動作是為熟習相關技藝者所熟知,因此其細節(jié)在此不再贅述。在圖2所示的較佳實施例中,可能將管路設計成可容納一個32位元的指令集(instructionset)及一個16位元的指令集。如上述設計的多指令集可提供程式編寫的彈性與容納舊軟體。一般而言,32位元的指令集可提供功能較強或較強固的程式碼與程式編寫能力,而16位元的指令集則可提供需要使用較小記憶體空間的體積較小的程式碼。熟習相關技藝者當知,32位元的指令集與16位元的指令集之間的優(yōu)缺點與取舍亦可考慮其他因素。當知可用各種不同方法,實現(xiàn)圖2所示的觀念及功能,且本發(fā)明范疇并未受限于任何特定實施方法。如上所述,F(xiàn)SR是提供一個在指令中所發(fā)生的異常中斷或錯誤類型的指示器(indicator)。在本發(fā)明中,術語“異常中斷”及“錯誤”會交替使用。根據(jù)在FSR中的異常中斷資訊,可執(zhí)行特定的修正動作。異常中斷發(fā)生的原因有很多種。其非限制范例包括記憶體中的表格異常中斷(tableabort)與硬體的外部異常中斷(externalabort)。其中包括MMU首頁異常中斷(firstpageaborts)與次頁異常中斷(secondpageaborts)。當應用程式要存取無效的記憶體位址時,也可能發(fā)生異常中斷,所以可能是為一種外部匯流排異常中斷(externalbusabort)。也可能因為奇偶校驗碼(parity)不合而產生異常中斷?;蛘咭蛟撓到y(tǒng)為虛擬記憶體系統(tǒng),且正在被存取的記憶體映像(memoryimage)雖然可能存在硬碟中,但并未被映射至記憶體中,而發(fā)生異常中斷。在圖1所示的習知技藝中,其中包括三個主要的指令級擷取級電路100、解碼級電路102、以及執(zhí)行級電路104。其中,MMU/PU112會確認指令記憶體管理/保護錯誤與異常中斷。當已擷取到指令時,如果MMU/PU112偵測到有錯誤發(fā)生,則會立即更新FSR114。但此刻并未認知該錯誤,所以不會中斷目前正在執(zhí)行的程式碼。接下來,該指令會被移動至下一級,也就是解碼級電路102。只有當指令到達執(zhí)行級電路104時,處理器才會真正認知到有異常中斷發(fā)生,而且接下來處理器會將其導向至異常中斷處理程序。根據(jù)不同管路結構設計,在認知到異常中斷發(fā)生之前,最少需要用到三個時脈周期,而且根據(jù)不同的管路結構,可能會用到更多時脈周期。該管路的其他部分包括數(shù)個系統(tǒng)模組106、108、116、118、及120,該些模組并未直接影響指令錯誤的處理,但是為描述管路處理器的完整架構所必須。其中,系統(tǒng)模組106是為記憶體存取級(memoryaccessstage)。系統(tǒng)模組108是為暫存器回寫級(registerwritebackstage)。系統(tǒng)模組116是為資料快取(datacache)。系統(tǒng)模組118是為資料記憶體管理/保護單元。系統(tǒng)模組120是為資料FSR。圖3是繪示三個連續(xù)指令200、202、及204。當在此三個連續(xù)指令200、202、及204中所發(fā)生的異常中斷206、208、及210有三個不同的理由時,問題就會發(fā)生。第一指令200會造成異常中斷206,并且會在FSR114中,設定其理由碼(reasoncode)。接下來的指令202,會以不同理由造成另一個異常中斷208。在非限制范例中,如果這兩個指令200及202是跨越一個頁邊界(pageboundary),則其可能會因完全不同的理由而發(fā)生異常中斷。在此例中,在一列中是有三個指令,指令202中有一個頁邊界,且指令200有一個頁錯誤(pagefault)。首先會擷取指令200,并且更新FSR。接下來,會解碼指令200,并且擷取另一指令202。其中,在指令202中有一個錯誤208發(fā)生。接下來,將每一指令順著管路,往下移動一級。接下來,擷取具有異常中斷210的指令204,并且再次更新FSR。當指令200到達執(zhí)行級電路時,處理器會將其導向至具對應于指令204中的異常中斷210的FSR114內容的異常中斷處理程序。因此,在前進到適當?shù)幕貜统绦蛑?,異常中斷處理程序無法信賴指令FSR114的內容,所以必須執(zhí)行一個較復雜且較費時的軟體程序,以決定該異常中斷的發(fā)生原因。為解決此問題,如圖3所示,在圖1的管路架構中特別加入可有效地將錯誤識別資訊與執(zhí)行級電路溝通的邏輯。在該指令到達執(zhí)行級電路304之前,F(xiàn)SR314不會被更新。FSR314所需的資訊,是儲存在MMU/PU312中。MMU/PU312是用來確認指令記憶體管理/保護錯誤與異常中斷。當指令首先出現(xiàn)在擷取級電路300時,目前正在執(zhí)行的程式碼并不會被中斷。接下來會將該指令從擷取級電路300,移動至解碼級電路302,并且接下來再沿著匯流排線303,將其移動至執(zhí)行級電路304。只有當指令到達執(zhí)行級電路304時,錯誤通訊模組301才會更新指令FSR314,且該異常中斷會使處理器將其導向至一異常中斷處理程序。在認知到異常中斷之前,最少會用到三個時脈周期,而且根據(jù)不同的管路結構,可能會用到更多時脈周期。該管路的其他部分包括數(shù)個系統(tǒng)模組306、308、316、318、及320,該些模組并未直接影響指令錯誤的處理,但是為描述管路處理器的完整架構所必須。其中,系統(tǒng)模組306是為記憶體存取級。系統(tǒng)模組308是為暫存器回寫級。系統(tǒng)模組316是為資料快取。系統(tǒng)模組318是為資料記憶體管理/保護單元。系統(tǒng)模組320是為資料FSR。圖4是繪示一個錯誤通訊邏輯電路的較佳實施例的模組圖。由MMU/PU312所決定的與異常中斷相關的資訊,是與該指令一起,從擷取級電路300,傳送至解碼級電路302,并且再傳送至執(zhí)行級電路304。較明確地說,訊號匯流排305a會承載從MMU/PU312到擷取級電路300的錯誤資訊。當將指令從擷取級電路300傳送至解碼級電路302時,訊號匯流排305b會承載從擷取級電路300到解碼級電路302的錯誤資訊。當將指令從解碼級電路302傳送至執(zhí)行級電路304時,訊號匯流排305c會承載從解碼級電路302到執(zhí)行級電路304的錯誤資訊。號匯流排305d會承載從執(zhí)行級電路304到指令FSR314的錯誤資訊?;蛘撸攲⒃撝噶顝慕獯a級電路302傳送至執(zhí)行級電路304時,亦可將錯誤資訊由解碼級電路302,直接傳送至指令FSR314。其中,訊號匯流排305a-d可能是為一或多個訊號線。此外,在第一級時,指令FSR并未更新,而是當指令到達執(zhí)行級電路304時,才會更新指令FSR。請參考圖2所示根據(jù)本發(fā)明一較佳實施例的范例,其是包括三個連續(xù)指令200、202、及204。當在此三個連續(xù)指令200、202、及204中所發(fā)生的異常中斷206、208、及210有三個不同的理由時,問題就會發(fā)生。第一指令200會造成異常中斷,但在本較佳實施例中,該理由碼并未被設定在FSR314中。接下來的指令202,會以不同理由造成另一個異常中斷208。在非限制范例中,如果這兩個指令200及202是跨越一個頁邊界,則其可能會因完全不同的理由而發(fā)生異常中斷。在此例中,在一列中是有三個指令,指令202中有一個頁邊界,且指令200有一個頁錯誤。首先會解碼指令200,并且擷取另一指令202。其中,在指令202中有一個錯誤208發(fā)生。接下來,將每一指令順著管路,往下移動一級。接下來,擷取具有異常中斷210的指令204。當指令200到達執(zhí)行級電路時,會以目前已被指令200中的異常中斷206所更新的FSR314的內容,呼叫異常中斷處理程序。因此,在本較佳實施例中,即使所有三個指令都會因其各自不同理由碼而發(fā)生異常中斷,不管管路有幾級,錯誤資訊都會通過管路,隨著指令傳送。因此,延著管路不會只單獨傳送指令。事實上,解碼級電路會傳送較多。在本發(fā)明一較佳實施例中,對應于異常中斷發(fā)生理由的位元會跟著指令一起傳送,并且當在執(zhí)行級電路304認知該異常中斷時,該些位元會被載入到指令FSR314中。當異常中斷處理程序被呼叫時,目前正在執(zhí)行級電路中的指令的異常中斷發(fā)生的理由,會再被傳送出去。在本較佳實施例中,因為異常中斷的理由是與指令一起傳送,所以異常中斷處理程序可充分信賴記錄在指令FSR314中的異常中斷發(fā)生理由的有效性。因此,可簡化異常中斷處理程序,使其更有效率地執(zhí)行。圖5是繪示另一個錯誤通訊邏輯電路301實施例的模組圖。其中,n階FIFO(先進先出)307是用來儲存錯誤資訊,藉以當指令到達執(zhí)行級電路304時,可將錯誤資訊載入指令FSR314。FIFO307的深度最少必須與指令管路的深度相同。在本發(fā)明管路架構的一較佳實施例中,其是具有三級,因此FIFO307必須至少為一個3階FIFO。雖然如此,該管路的深度并不受限于此,因此FIFO的深度可根據(jù)實際需要而變。在本發(fā)明另一較佳實施例中,F(xiàn)IFO3O7是與指令FSR314合并在一起。在此例中,事實上FSR314即為一個FIFO。一旦有錯誤發(fā)生,MMU/PU312就會將錯誤資訊載入FSR/FIFO314/307。當指令到達執(zhí)行級電路304時,就會從FSR/FIFO314/307中攫取錯誤資訊。因為錯誤資訊是載入至FIFO堆疊(stack)中,任何之前發(fā)生的錯誤都不會被覆寫,因此異常中斷處理程序可處理適當?shù)腻e誤資訊。在詳述本發(fā)明特定實施例的特定功能與架構的實施方式之后,以下參考圖6的流程圖,詳細說明根據(jù)本發(fā)明實施例,沿著管路前進的指令處理步驟。首先,在步驟400中,擷取一指令。在擷取指令之后,接下來在步驟402中,決定在該指令中是否有錯誤發(fā)生。該決定動作是由MMU/PU312所執(zhí)行。如果在步驟402中決定并沒有錯誤發(fā)生,則在步驟404中,解碼該指令,并且在步驟406中,執(zhí)行該指令。然而,如果在步驟402中決定有錯誤發(fā)生,則在步驟408中,將錯誤碼隨著指令,沿著管路一起傳送至解碼級電路。在步驟410中,該指令會在解碼級電路被解碼,并且將錯誤碼隨著解碼過的指令一起,傳送至執(zhí)行級電路。接下來,在步驟412中,以對應于目前正在執(zhí)行級電路中所執(zhí)行的指令的錯誤的錯誤碼,更新指令FSR,并且執(zhí)行該指令。最后,在步驟414中,呼叫異常中斷處理程序,并且將錯誤碼傳送至異常中斷處理程序。雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何本領域的技術人員,在不脫離本發(fā)明的精神和范圍內,當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視前述的權利要求所界定者為準。權利要求1.一種用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),該系統(tǒng)包括一管路處理器,其是具有至少三級電路,用來處理一指令;一錯誤決定模組,其是連接至該管路處理器的一擷取級電路;以及一錯誤通訊邏輯電路,其是連接至該指令錯誤狀態(tài)暫存器與該錯誤決定模組。2.根據(jù)權利要求1所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該錯誤通訊邏輯電路包括一訊號匯流排,用來將一錯誤資訊與該指令一起傳送至在該管路處理器中的一執(zhí)行級電路。3.根據(jù)權利要求1所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該指令錯誤狀態(tài)暫存器是由對應于與該指令相關的該錯誤資訊的該錯誤通訊邏輯電路所更新。4.根據(jù)權利要求1所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中當執(zhí)行具有一異常中斷的一指令時,該管路處理器會將其導向至一異常中斷處理程序。5.根據(jù)權利要求4所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該指令錯誤狀態(tài)暫存器的內容,會被傳送至該異常中斷處理程序。6.根據(jù)權利要求1所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該錯誤通訊邏輯電路包括一FIFO。7.根據(jù)權利要求6所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該FIFO的深度是對應于用來處理一指令的該些級電路的個數(shù)。8.根據(jù)權利要求1所述的用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器的系統(tǒng),其中該錯誤通訊邏輯電路與該指令錯誤狀態(tài)暫存器,是整合至一FIFO。9.一種用來更新一指令錯誤狀態(tài)暫存器的方法,該更新方法包括擷取一指令;決定該指令是否為錯誤;解碼該指令;以及執(zhí)行該指令;其中,如果該指令為錯誤,則將標示該指令為錯誤的資訊與錯誤理由,隨著該指令一起,傳送至一管路型處理器的至少一解碼級電路及一執(zhí)行級電路。10.根據(jù)權利要求9所述的用來更新一指令錯誤狀態(tài)暫存器的方法,更加包括以與執(zhí)行任何異常中斷的指令相關的異常中斷資訊,更新一指令錯誤狀態(tài)暫存器。11.根據(jù)權利要求10所述的用來更新一指令錯誤狀態(tài)暫存器的方法,更加包括將該指令錯誤狀態(tài)暫存器的內容,提供至一異常中斷處理程序。12.一種具有可更新一指令錯誤狀態(tài)暫存器的處理器,該處理器包括一擷取級電路;一解碼級電路,其是連接至該擷取級電路;一執(zhí)行級電路,其是連接至該解碼級電路;一資料記憶體管理/保護單元,用來決定在一指令中的一錯誤,且該資料記憶體管理/保護單元是連接至該擷取級電路;以及一錯誤通訊邏輯電路,其是連接至該資料記憶體管理/保護單元與該指令錯誤狀態(tài)暫存器。13.根據(jù)權利要求12所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該錯誤通訊邏輯電路包括一訊號匯流排,用來與該指令一起,將一錯誤資訊傳送至該執(zhí)行級電路。14.根據(jù)權利要求12所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該指令錯誤狀態(tài)暫存器是由與一指令相關的該錯誤資訊所更新。15.根據(jù)權利要求12所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中當執(zhí)行具有一異常中斷的一指令時,該處理器會將其導向至一異常中斷處理程序。16.根據(jù)權利要求15所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該指令錯誤狀態(tài)暫存器的內容,會被傳送至該異常中斷處理程序。17.根據(jù)權利要求12所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該錯誤通訊邏輯電路包括一FIFO。18.根據(jù)權利要求17所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該FIFO的深度是對應于在一指令管路中的該些級電路的個數(shù)。19.根據(jù)權利要求12所述的具有可更新一指令錯誤狀態(tài)暫存器的處理器,其中該錯誤通訊邏輯電路與該指令錯誤狀態(tài)暫存器,是整合至一FIFO。全文摘要本發(fā)明是有關于一種用來更新在一管路處理器中的一指令錯誤狀態(tài)暫存器(FSR)的系統(tǒng)與方法。其中,指令FSR是為在一管路架構中,用來儲存從指令被擷取到執(zhí)行期間所產生錯誤的理由。因不同理由所發(fā)生的連續(xù)錯誤會導致FSR的覆寫,因此造成指令執(zhí)行時的無效異常中斷碼。本發(fā)明所提供的更新指令FSR的方法與系統(tǒng),可將異常中斷碼與指令一起,沿著管路傳送至會更新FSR的執(zhí)行級電路。文檔編號G06F9/38GK1758215SQ20051011511公開日2006年4月12日申請日期2005年11月10日優(yōu)先權日2005年1月26日發(fā)明者季諾朱瑟弗維克,威廉米勒,提姆修特申請人:威盛電子股份有限公司