国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      修改數(shù)據(jù)處理單元的行為的制作方法

      文檔序號:11653942閱讀:466來源:國知局
      修改數(shù)據(jù)處理單元的行為的制造方法與工藝

      本公開涉及修改數(shù)據(jù)處理單元的行為的領(lǐng)域。



      背景技術(shù):

      在包含管線的數(shù)據(jù)處理單元(dataprocessingunit;dpu)中,所獲取的指令被譯碼成一個或多個微操作(由數(shù)個位表示)且這些微操作隨后被傳遞至一個或多個執(zhí)行電路。然而,有時在硬件已被構(gòu)建之后會發(fā)現(xiàn)設(shè)計缺陷,該設(shè)計缺陷引起某些指令或指令序列不適當?shù)乇粓?zhí)行。先前已提出藉由對編譯器重新編程來處理這些問題。例如,在產(chǎn)生組合代碼時,編譯器可避免產(chǎn)生已知會引起問題的指令或指令序列。然而,此方法非常耗時且復(fù)雜,需要大量的努力來實施。另外,此方法并未完全解決根本問題,因為未使用“新的”編譯器編譯的代碼將仍然經(jīng)受那樣的缺陷。因此,將需要提供一種機制,在該機制中能夠動態(tài)地控制特定指令或指令序列的識別,且隨后提供指示已偵測到指令或指令序列的信號或采取可用于阻止那些指令不適當執(zhí)行的特定動作。



      技術(shù)實現(xiàn)要素:

      自第一示例性配置來看,本發(fā)明提供一種裝置,該裝置包含:可重寫儲存電路,儲存至少一個指令標識符與行為修改之間的至少一個映射;選擇電路,自該可重寫儲存電路中選擇一選定映射,該選定映射具有識別所接收的指令的指令標識符,其中所接收的指令引起數(shù)據(jù)處理單元執(zhí)行默認行為;及控制電路,引起數(shù)據(jù)處理單元根據(jù)經(jīng)行為修改修改后的默認行為來運作。

      自第二示例性配置來看,本發(fā)明提供一種操作數(shù)據(jù)處理裝置的方法,該方法包含:在可重寫儲存電路中,儲存至少一個指令標識符與行為修改之間的至少一個映射;接收所接收的指令,其中所接收的指令引起數(shù)據(jù)處理單元執(zhí)行默認行為;自可重寫儲存電路中選擇具有識別所接收的指令的指令標識符的選定映射;且引起該數(shù)據(jù)處理單元根據(jù)經(jīng)行為修改修改后的默認行為來運作。

      自第三示例性配置來看,本發(fā)明提供一種裝置,該裝置包含:可重寫儲存電路,儲存至少一個指令標識符;選擇電路,自可重寫儲存電路中選擇一選定映射,該選定映射具有識別待由數(shù)據(jù)處理單元執(zhí)行的所接收的指令的指令標識符;控制電路,產(chǎn)生識別選定映射的信號;及分析電路,產(chǎn)生包含由數(shù)據(jù)處理單元執(zhí)行的操作的輸出跡,接收所述信號,并且響應(yīng)于接收到所述信號而將選定映射輸出至所述跡。

      附圖說明

      本發(fā)明將僅舉例而言參考如在附圖中所示的本發(fā)明的實施例進一步描述,在這些附圖中:

      圖1示意地圖示根據(jù)一實施例的修復(fù)電路(patchcircuitry);

      圖2示意地圖示根據(jù)一實施例的dpu及修復(fù)電路;

      圖3示意地圖示根據(jù)一實施例的dpu及修復(fù)電路;

      圖4示意地圖示根據(jù)一實施例的dpu及修復(fù)電路;

      圖5a圖示根據(jù)一實施例的由可重寫儲存電路儲存的映射;

      圖5b圖示根據(jù)一實施例的由可重寫儲存電路儲存的映射;

      圖5c圖示根據(jù)一實施例的由可重寫儲存電路儲存的映射;

      圖5d圖示根據(jù)一實施例的由可重寫儲存電路儲存的映射;

      圖5e圖示根據(jù)一實施例的由可重寫儲存電路儲存的映射;

      圖6圖示用于確定特定映射中的指令標識符是否對應(yīng)于所接收的指令的比較電路的實例;及

      圖7圖以流程圖形式圖示用于基于所接收的指令確定要發(fā)生的任何行為修改的方法。

      具體實施方式

      在參考附圖論述實施例之前,提供了實施例的以下描述。

      自第一示例性配置來看,本發(fā)明提供一種裝置,該裝置包含:可重寫儲存電路,儲存至少一個指令標識符與行為修改之間的至少一個映射;選擇電路,自可重寫儲存電路中選擇一選定映射,該選定映射具有識別所接收的指令的指令標識符,其中所接收的指令引起數(shù)據(jù)處理單元執(zhí)行默認行為;及控制電路,引起該數(shù)據(jù)處理單元根據(jù)經(jīng)行為修改修改后的默認行為來運作。

      數(shù)據(jù)處理單元(dpu)響應(yīng)于指令執(zhí)行特定默認行為。可重寫儲存電路能夠儲存指令標識符與行為修改之間的若干映射。當所接收的指令與映射中之一者中的指令標識符匹配時,經(jīng)由控制電路使dpu根據(jù)經(jīng)行為修改修改后的默認行為來運作。因為可重寫儲存電路為可重寫的,所以能夠使用軟件動態(tài)地增加、刪除和編輯映射。因此,dpu響應(yīng)于給定的接收指令的行為可得以改變。由此,若隨著特定指令或指令序列的執(zhí)行發(fā)現(xiàn)故障,則能夠使dpu以不同于默認方式的行為來運作,從而阻止該故障發(fā)生。應(yīng)注意,經(jīng)行為修改修改后的默認行為可產(chǎn)生與默認行為完全不同的行為,以使得默認行為根本不發(fā)生。

      在一些實施例中,指令標識符識別多個指令。這些實施例允許dpu的行為基于一類或更多類指令或具有特定特性的任何指令而修改。

      指令標識符識別多個指令可以有許多方式。然而,在一些實施例中,指令標識符包含基本指令及掩碼;所接收的指令是由多個位表示的;且該掩碼指示所接收的指令中那些必須與基本指令的相應(yīng)位相匹配的位,以便該指令標識符識別所接收的指令。這種識別多個指令的方式尤為有效且允許當發(fā)生匹配時在控制方面具有很大靈活性。

      在一些實施例中,指令標識符識別包含一個或多個運算符的至少一個指令。指令運算符指示由dpu執(zhí)行的操作或任務(wù)。操作的實例包括執(zhí)行整數(shù)加法或乘法,引起程序流發(fā)生分支,或執(zhí)行浮點運算。指令標識符可用于識別一個此種運算類型,一類運算(例如,整數(shù)或浮點加法)或所有運算。

      在一些實施例中,指令標識符識別包含一個或多個操作數(shù)的至少一個指令。操作數(shù)為對其執(zhí)行運算的各個元素。例如,在加法運算“addr223”中,該運算將值“2”及“3”相加在一起且將結(jié)果儲存于寄存器r2中,操作數(shù)為“r2”、“2”及“3”。操作數(shù)可以為絕對值、寄存器地址或內(nèi)存地址。

      在一些實施例中,指令標識符識別引用一個或多個內(nèi)存地址的至少一個指令。當儲存數(shù)據(jù)至內(nèi)存或自內(nèi)存接收數(shù)據(jù)(可由加載/儲存處理單元執(zhí)行的操作)時常常引用內(nèi)存地址。由于在加載/儲存單元與內(nèi)存裝置本身之間必須發(fā)生的交握協(xié)議,訪問內(nèi)存可能尤為復(fù)雜。因此,相對于向/從內(nèi)存裝置加載或儲存數(shù)據(jù),發(fā)生問題并不罕見。

      在一些實施例中,至少一個映射還包含所需狀態(tài);且選擇電路還依賴于所需狀態(tài)匹配數(shù)據(jù)處理單元的當前狀態(tài)來選擇選定映射。在這些實施例中,不僅指令必須匹配特定映射的標識符,而且dpu亦必須具有匹配所需狀態(tài)的當前狀態(tài)。在映射與指令序列相關(guān)的情況下,所需狀態(tài)可在指令之間變化,可對所有指令相同,或可僅針對序列中的最終指令而指定。

      在一些實施例中,所需狀態(tài)包含數(shù)據(jù)處理單元處于32位模式或64位模式之一者中的要求。dpu在其中操作的執(zhí)行模式可對dpu如何工作具有影響。因此,在一些情況下,為了在特定執(zhí)行模式中運行某些指令,需要影響dpu的行為。

      在一些實施例中,所需狀態(tài)包含數(shù)據(jù)處理單元操作于比預(yù)定運行級別具有更多特權(quán)的級別或比預(yù)定級別具有更少特權(quán)的級別中的要求。dpu通常可以不同級別的特權(quán)操作。例如,多件用戶軟件各自以“用戶”特權(quán)級別操作且操作系統(tǒng)按照“管理器”或“監(jiān)視器”特權(quán)級別來操作。如此能夠使操作系統(tǒng)限制或控制對敏感數(shù)據(jù)或操作的存取,或?qū)⒍嗉脩糗浖舜朔蛛x以便其無法彼此干擾。在更復(fù)雜的布置中,超級管理器可在甚至更高的“超級管理器”特權(quán)級別下運行,以允許多個操作系統(tǒng)在管理器的控制及管理下在一個裝置上操作。其他或不同的級別亦是可能的。

      在一些實施例中,所需狀態(tài)包含數(shù)據(jù)處理單元已啟用或禁用指定功能的要求。例如,傳輸后備緩沖器(translationlookasidebuffer;tlb)可用以在最近使用的虛擬內(nèi)存地址與物理內(nèi)存地址之間快速變換。然而,在一些場合,該功能可藉由停用tlb而禁用。所需狀態(tài)可代表多個不同功能。例如,所需狀態(tài)可要求一些功能被啟用,而其他功能被禁用。

      在一些實施例中,所需狀態(tài)包含數(shù)據(jù)處理單元正在使用預(yù)定指令集或預(yù)定指令集以外的指令集的要求。通常可使dpu在不同指令集之間切換。因此,所需狀態(tài)可要求特定指令集正在由dpu使用以修改由特定指令引起的行為。

      在一些實施例中,至少一個映射包含包括所述指令標識符在內(nèi)的至少兩個指令標識符的序列;且選擇電路自可重寫儲存電路選擇一選定映射,該選定映射具有包括所述指令標識符在內(nèi)的至少兩個指令標識符的序列,其中該至少兩個指令標識符識別包括所接收的指令的接收指令的序列。然而,在亂序?qū)崿F(xiàn)方式中,被進行行為修改的所接收的指令可為序列中的第一指令,被進行行為修改的所接收的指令通常在接收指令序列的末端。因此,當所接收的指令為指令序列中的第一或最后一個指令時,裝置能夠控制所接收的指令的行為。例如,可能是以下情況,加法指令之后跟隨減法指令引起故障發(fā)生。映射因此可包括指令標識符序列-第一指令標識符匹配加法指令且第二指令標識符匹配減法指令,以便序列中的減法指令的行為被修改以避免故障行為。

      在一些實施例中,該裝置包含管線,該管線包含指令獲取電路、指令譯碼電路和至少一個執(zhí)行電路;且該數(shù)據(jù)處理單元包含該指令譯碼電路及該至少一個執(zhí)行電路。指令獲取電路引起指令得以自例如內(nèi)存而獲取。指令譯碼電路引起所獲取的指令得以譯碼為一個或多個微操作,該一個或多個微操作隨后被提供至至少一個執(zhí)行電路。至少一個執(zhí)行電路可包括例如算術(shù)邏輯單元(arithmeticlogicunits;alu)、浮點單元(floatingpointunit;fpu)、加載/儲存單元、分支單元,及乘法累加單元(multiplyaccumulateunit;mac)。其他實例對于本領(lǐng)域技術(shù)人員將是顯而易見的。在一些實施例中,指令獲取電路發(fā)送控制信號至選擇電路以及至譯碼電路。

      在一些實施例中,響應(yīng)于接收到所述指令,指令譯碼電路輸出對應(yīng)于待由至少一個執(zhí)行電路執(zhí)行的一個或多個微操作的多個位;所述行為修改指示所述多個位的集合要被修改。由譯碼電路輸出的總位可被稱為輸出平面且可包含大量位,這些位可被發(fā)送至一個或多個執(zhí)行電路。藉由修改這些位中的一些位,能夠由于運行特定指令而改變dpu的行為。

      所述集合可以是完全新位集合。如此可引起執(zhí)行電路執(zhí)行與默認行為完全不同的行為。然而,在其他實施例中,所述集合為一子集。換言之,例如,藉由若已知寄存器r2已變得不可用而總是使用寄存器r3而非寄存器r2,則可稍微修改行為。在一些實施例中,所述集合由單個位構(gòu)成。該位可用于編碼特殊行為。例如,單個位可用于表示特定指令將不被亂序執(zhí)行。

      默認行為通過行為修改而被修改可以有許多實例。然而,在一些實施例中,經(jīng)行為修改修改后的默認行為包含引起數(shù)據(jù)處理單元沖洗管線。管線可使得多個指令能夠被大體上同時地處置。實際上,當一個指令正在由執(zhí)行電路執(zhí)行時,下一個指令正在由指令譯碼電路譯碼且在該下一個指令之后的指令正在由指令獲取電路獲取。沖洗管線使得所有正在被處置的指令被丟棄。此舉具有“重設(shè)”管線狀態(tài)的效果。

      在一些實施例中,經(jīng)行為修改修改后的默認行為包含引起數(shù)據(jù)處理單元啟用或禁用對數(shù)據(jù)的預(yù)取。在預(yù)期到最近要使用數(shù)據(jù)時,可以在從例如內(nèi)存中獲取數(shù)據(jù)之前對要獲得數(shù)據(jù)進行預(yù)取。對數(shù)據(jù)預(yù)取的禁用例如可藉由將任何預(yù)取指令轉(zhuǎn)換為noop指令來實現(xiàn),該noop指令為僅引起程序計數(shù)器遞增的特殊指令。從而,預(yù)取因此可被禁用。

      在一些實施例中,經(jīng)行為修改修改后的默認行為包含引起數(shù)據(jù)處理單元改變在一個時鐘周期中發(fā)出的指令數(shù)目。此改變的實例為三重發(fā)出(triple-issuing),其中三個指令可同時地發(fā)出至執(zhí)行電路。因此,在一些實施例中,三重發(fā)出可被減少至雙重發(fā)出或多重發(fā)出可被全部禁用,從而將在一個時鐘周期中發(fā)出的指令的數(shù)目減少至1。

      在一些實施例中,經(jīng)行為修改修改后的默認行為包含引起數(shù)據(jù)處理單元啟用或禁用亂序執(zhí)行。亂序執(zhí)行使得指令能夠被重排序以改善并行性。例如,若僅存在單個浮點電路,則一次僅可處置一個浮點運算。序列中的兩個浮點指令因此可被重排序,以便在第一浮點指令被運行時,這些指令由能運行的其他指令所散置。

      在一些實施例中,經(jīng)行為修改修改后的默認行為包含信號的產(chǎn)生,該信號識別選定映射。該信號因此可用于確定遇到了指令(或指令序列)。當執(zhí)行除錯或收集統(tǒng)計量(例如,用于效能分析)時,此信息可能是有益的。

      在一些實施例中,該裝置包含用于接收信號的嵌式邏輯分析器??墒骨妒竭壿嫹治銎?embeddedlogicanalyser;ela)接收在當特定事件發(fā)生時來自裝置內(nèi)的不同電路的輸入信號。例如,每當alu接收到執(zhí)行特定操作的指令時,ela可接收來自alu的信號。藉由另外地向ela提供關(guān)于何時遇到指令或指令序列的信息,能夠?qū)ρb置的行為執(zhí)行更多詳細分析。

      現(xiàn)將參照附圖描述特定實施例。

      圖1圖示根據(jù)一實施例的修復(fù)電路100。修復(fù)電路100包含選擇電路110,選擇電路110接收對應(yīng)于所接收的指令的輸入信號。在此實施例中,輸入信號是由指令獲取電路產(chǎn)生的且與發(fā)送至作為管線的一部分的指令譯碼電路的相同信號相對應(yīng)。選擇電路110參考可重寫儲存電路120,該可重寫儲存電路儲存指令標識符與行為修改之間的映射表。由比較電路150進行比較,且若發(fā)現(xiàn)匹配,則將所得行為修改提供至控制電路,該控制電路輸出行為修改信號(例如,“修復(fù)信號”)。控制電路130另外地輸出控制信號,該控制信號用于控制行為修改的插入。在圖2至圖4中更詳細地圖示此過程,這些附圖圖示dpu??芍貙憙Υ骐娐?20中的每一條目與特定指令、某類指令,或任一者的序列相關(guān)。對于映射指令序列的每一映射,必須提供計數(shù)器以追蹤至今每一序列中的多少指令已匹配。每一計數(shù)器儲存于選擇電路110中的計數(shù)器140的群組中。

      圖2圖示包含dpu280的系統(tǒng)200。在此實例中,dpu包含系統(tǒng)200的負責實際上執(zhí)行指令的那些部分且具體而言包括指令譯碼器220及多個執(zhí)行電路220、225、230、235及240。指令獲取電路205及指令譯碼電路210以及執(zhí)行電路220、225、230、235和240共同地形成管線。在管線之內(nèi),指令由指令獲取電路205獲取。如此引起輸入信號被提供至指令譯碼電路210以及修復(fù)電路110。指令譯碼電路210譯碼指令,且如此引起多個位以一個或多個微操作的形式由指令譯碼電路210輸出。這些微操作在復(fù)用器215處與修復(fù)電路110輸出的補丁(例如,經(jīng)修改的微操作)復(fù)用在一起。由修復(fù)電路110輸出的控制信號可用于控制復(fù)用器。因此,能夠使組成由指令譯碼電路210輸出的微操作的位的整個集合或僅這些位的子集或甚至單個位得以修改。復(fù)用器215的輸出對應(yīng)于經(jīng)行為修改修改后的默認行為,且所得修改后的微操作隨后被傳送至相關(guān)執(zhí)行電路220、225、230、235及240。在此實施例中,執(zhí)行電路包括:算術(shù)邏輯單元(alu),該單元執(zhí)行整數(shù)運算或邏輯運算;浮點單元(floatingpointunit;fpu)225,該單元對浮點數(shù)執(zhí)行運算;加載/儲存單元(ld/st)230,該單元處置從/向內(nèi)存數(shù)據(jù)和儲存數(shù)據(jù);分支單元(br)235,該單元處置程序流的控制和分支;乘積累加單元(mac)240,該單元處置將數(shù)字相乘且將該結(jié)果相加至累加器的專門算術(shù)情況。然而,這些電路僅為執(zhí)行電路的實例。具體而言,可以使用這些或其他執(zhí)行電路的任何組合。執(zhí)行電路的組合亦可變化。在一些情況下,亦可包括相同類型的多個執(zhí)行電路。在此實施例中,包括了一組配置寄存器250。這些寄存器控制dpu245運作的方式。在一些實施例中,配置寄存器250可用于啟用或禁用功能,諸如預(yù)取功能。在一些情況下,這些寄存器可用于禁用實驗性的功能。在任何情況下,指令譯碼電路210鑒于配置寄存器250的值依賴于所接收的指令來發(fā)出微操作。修復(fù)電路110可提供覆寫配置寄存器的補丁。例如,若由指令譯碼電路210產(chǎn)生的微操作含有應(yīng)使用實驗性預(yù)取機制的指示,則修復(fù)電路可在知道實驗性機制不起作用的情況下,針對部分微操作發(fā)出作為補丁的替換位集合以禁用實驗性機制。

      圖3圖示系統(tǒng)300,系統(tǒng)300類似于圖2中所示的系統(tǒng)200,除了修復(fù)電路110能夠向指令譯碼電路210中的多發(fā)出電路305輸出信號。多發(fā)出電路305控制dpu245執(zhí)行指令的多發(fā)出(例如雙發(fā)出)的能力。此舉涉及在單個時鐘周期中發(fā)出多個指令(例如,在雙發(fā)出的情況下為兩個指令)的過程。在一些實施例中,在行為修改涉及禁用或啟用多發(fā)出的情況下,不必向復(fù)用器215提供“補丁”或任何經(jīng)修改的位。

      圖4圖示系統(tǒng)400,其中由修復(fù)電路110輸出的行為修改信號采用至嵌式邏輯分析器(ela)405的信號的形式,該ela為dpu的另一實例。行為修改信號指示儲存于可重寫儲存電路120中的映射中的何者已與所接收的指令匹配。例如,行為修改信號可包含映射的索引。ela接收來自系統(tǒng)400之內(nèi)的不同電路的輸入,這些電路包括那些執(zhí)行電路220、225、230、235及240。ela基于其接收的信號輸出跡(trace)。例如,響應(yīng)于alu220執(zhí)行加法操作,信號被傳輸至ela405,ela405將此信息輸出至跡。然而,另外,由ela405自修復(fù)電路110接收的信號亦引起輸出被寫入至跡。此舉可使得藉由查看具有與由指令獲取電路205獲取的特定指令或指令序列是否匹配相關(guān)的附加信息的跡而更容易地執(zhí)行除錯或統(tǒng)計分析。

      圖5a圖示根據(jù)一實施例的由可重寫儲存電路120儲存的映射505的實例。所接收的指令被與每一映射中的指令標識符進行匹配,直至發(fā)現(xiàn)匹配,或直至確定無匹配為止。每一映射包含至少一個指令標識符,各指令標識符包含基本指令515及掩碼510。掩碼510指示基本指令515中的哪些位要與所接收的指令中的相應(yīng)位映射。在此實施例中,在掩碼510的位位置i中的“1”的存在指示基本指令515的位位置i中的位必須匹配所接收的指令的位位置i中的位。因此,在圖5a中所示的實例中,若所接收的指令具有任何四個位,之后是位“0010”,之后是任何另外的八個位,則將發(fā)生匹配。因此,在此情況下,指令標識符將與一大類指令相匹配。相反,當掩碼幾乎充滿1時,則僅非常特定的指令將引起匹配。標志“s”520用于指示此指令標識符是否為映射505中的指令標識符序列的一部分。在此情況下,映射505的值“0”指示此指令標識符并非為映射505中的指令標識符序列的一部分。因此,若所接收的指令匹配此映射505中的單個指令標識符,則列于輸出區(qū)段525之下的行為修改發(fā)生。輸出區(qū)段525中的各列530、535、540、545指示當特定映射匹配時可發(fā)生的不同行為修改。ela列525用于指示是否信號應(yīng)例如輸出至ela405,如先前參考圖4所論述。該信號包括對已匹配的條目的指示。在此實例中,該信號指示值“0”來指示編號0的映射是匹配的。預(yù)取(pre)列530指示是否應(yīng)啟用或禁用對指令的預(yù)取。預(yù)取可藉由例如將所有隱式內(nèi)存存取指令轉(zhuǎn)換為noop指令來禁用,該noop指令僅遞增dpu的程序計數(shù)器。ooo列535指示是否應(yīng)啟用或禁用亂序指令執(zhí)行。在此實例中,條目“0”指示應(yīng)禁用亂序指令執(zhí)行;換言之,此指令的排序是不可改變的。多發(fā)出(multi)列540指示可與此指令并行發(fā)出的指令數(shù)目。本文的值“1”將意謂指令僅可就其自身發(fā)出。換言之,此指令無法與任何其他指令一起多發(fā)出(諸如,雙發(fā)出)。當然,在本文提供的任何值取決于來自下層硬件的支持。例如,若僅提供單個alu,則無論本文提供的值如何,算術(shù)或邏輯整數(shù)指令僅可單發(fā)出。沖洗列545指示一旦已執(zhí)行指令就沖洗管線。其他行為修改亦是可能的。此外,單個映射可提供多個修改。例如,單個映射可引起管線得以沖洗,且對于指令的排序,藉由針對該單個條目在ooo列535中設(shè)定“0”及沖洗列545中設(shè)定“1”來保持不變。

      圖5b圖示其中存在包含指令標識符555、560的序列的單個映射550的實例。在此情況下,若第一所接收的指令匹配第一指令標識符555且隨后的指令匹配第二指令標識符560,則將匹配該單一映射550。第一指令標識符的s列520中的值“1”用于指示,在匹配了第一指令標識符555的情況下,下一個指令標識符560亦必須匹配要匹配的整體映射550本身。在此實例中,第一指令必須包含12個位,之后是位“1111”。后續(xù)指令必須包含位“01100100”,之后是另外8個位。若滿足了所有這些條件,則輸出列指示在執(zhí)行了指令之后沖洗管線。需要多個指令要被匹配的每一映射使用計數(shù)器140集合中的一計數(shù)器來記錄至今指令標識符序列中已有多少指令標識符匹配。若在任何階段,當前指令不匹配下一個指令標識符,則計數(shù)器被重設(shè)且匹配必須重新開始。

      如前所述,許多行為修改在配置寄存器250中設(shè)定有默認值。在配置寄存器250中設(shè)置的值影響由指令譯碼電路210輸出的微操作。在圖5a及圖5b中所示的表中提供的一些行為修改(預(yù)取、ooo,及沖洗)引起一組經(jīng)改變的微操作要被修復(fù)電路110輸出。這些改變通常由非常小數(shù)目的位(通常甚至是單個位)來表示。例如,若加法指令的微操作包含140個位,則第50個位可控制是否允許亂序執(zhí)行。若已知隨后必須改變何位,而不是重新輸出經(jīng)修改微操作的整個集合,則可以輸出小得多的「補丁」。此補丁可經(jīng)由復(fù)用器215應(yīng)用于由指令譯碼電路210產(chǎn)生的微操作,該復(fù)用器215由修復(fù)電路110所控制。如此非常有效地產(chǎn)生了一組經(jīng)修改的微操作。多發(fā)出藉由向指令譯碼電路210中的多發(fā)出電路305發(fā)出信號來啟用或禁用。ela405的使用藉由簡單地向ela405提供信號來啟用或禁用。

      圖5c圖示其中對于映射的行為修改提供不同輸出列565的實例。新位列570指示待與表示由指令譯碼電路210產(chǎn)生的微操作的位復(fù)用的新的一組位。開始列575指示這些位要與表示由指令譯碼電路210產(chǎn)生的微操作的位復(fù)用的點。長度列580指示替換位的長度。在此實例中,亦提供t列585。此列指示后續(xù)指令是否要被修改。隨后,提供后續(xù)輸出行以指示如何修改那些指令。例如,圖5c中所示的映射指示,若與所接收的指令匹配,則用于表示由指令譯碼電路210產(chǎn)生的微操作的位中的位11至位18要被修改為「00101110」。此外,由指令譯碼電路210產(chǎn)生的微操作的位中針對后續(xù)指令的位216至219要被修改為「0110」。因此,輸出列565共同顯式地指示由指令譯碼電路210產(chǎn)生的微操作如何藉由復(fù)用器215修改。

      圖5d圖示具有另外的不同輸出列565的實例。在圖5d的情況下,每一映射具有一組替換位595及掩碼590,該掩碼指示組成由指令譯碼電路210輸出的微操作的位中哪些位應(yīng)被替換以及哪些位應(yīng)被保持。在此實例中,掩碼590中在位位置j處的“1”指示在由指令譯碼電路210產(chǎn)生的微操作的位置j處的位應(yīng)用在替換位595的位置j處的相應(yīng)位替換。在位置j處的“0”指示不應(yīng)對位置j處的位進行替換。例如,在圖5d的實例中,微操作的前四個位將用“1111”替換,接下來四個位將不被修改,隨后四個位將用“1110”替換,且接下來四個位將用“0011”替換。此過程允許對微操作進行極其復(fù)雜的修改。

      圖5a至圖5d中所述的實例中之每一者可被組合以使得一些映射使用圖5a中所述的技術(shù),且其他映射使用圖5b、圖5c或圖5d中所述的技術(shù)。實現(xiàn)這種布置的一種方式將為具有一種首要表,該表提供指令標識符以及索引及要使用的次要表的指示。隨后可對四個不同技術(shù)中的每一技術(shù)提供不同的次要表。

      在圖5c中描述的「t」列的使用亦可延伸至圖5a、圖5b或圖5d中所描述的技術(shù)中的任一者。

      圖5e圖示當確定所接收的指令與映射中的指令標識符是否匹配時可以進行的進一步考慮。盡管圖5e結(jié)合圖5c中所示的技術(shù)圖示此進一步考慮,但是該考慮可與結(jié)合圖5a至圖5d描述的技術(shù)中的任一者一起使用。在圖5e中,增加了另一組狀態(tài)列600。在這些實施例中,若滿足兩個條件,則指令標識符與所接收的指令匹配。首先,所接收的指令必須對應(yīng)于如先前所述的基本指令及掩碼;且其次,dpu的狀態(tài)亦必須匹配由狀態(tài)列600定義的狀態(tài)。在此實例中,狀態(tài)列600包含32位列605,該列指示dpu當前是否正在以32位的模式執(zhí)行。級別列610指示dpu的當前執(zhí)行級別。換言之,級別列610指示dpu當前正在其中執(zhí)行的當前特權(quán)級別。管理器可以比操作系統(tǒng)在更高特權(quán)級別執(zhí)行,操作系統(tǒng)可以比用戶應(yīng)用在更高特權(quán)級別執(zhí)行。狀態(tài)列亦可用于指示特定方面的功能是否要被啟用或禁用。例如,tlb列615用于指示傳輸后備緩沖器(tlb)當前是否有效。另一列a64620用于確定當前正在執(zhí)行的指令集是否為a64。然而,此列亦可被修改以指示若干指令集中之何者當前正在由dpu執(zhí)行。例如,值“0”可表示a64,值“1”可表示“a32”,值“2”可表示“t32”,且值“3”可表示“d16”。在此實例中,若第一指令具有四個位,繼之以位“0000”,繼之以另外四個位,繼之以位“1011”且若在接收到第一指令之時,執(zhí)行級別為“2”且tlb被啟用,且若下一個所接收的指令具有四個位,繼之以位“0000”,繼之以另外四個位,繼之以位“1011”且若在接收到下一指令之時,執(zhí)行級別為“2””tlb被禁用,則發(fā)生對于圖5e中所示的單個映射625的匹配。若所有這些條件都滿足,則發(fā)生由輸出列565指示的行為修改。應(yīng)注意,在此實施例中,可對于每個指令標識符提供dpu的不同所需狀態(tài)。如此允許匹配中的更大靈活性。然而,在其他實施例中,存在單個所需狀態(tài),且當接收到序列中的每一指令時,此狀態(tài)必須對應(yīng)于dpu的狀態(tài)。在其他實施例中,僅當序列中的最終指令與映射中的最終指令標識符相比時,才考慮dpu的狀態(tài)。

      圖6示意地圖示可用于指示特定映射是否匹配所接收的輸入信息的電路700。電路包含第一與(and)門705,該第一與門在輸入信息與掩碼515之間執(zhí)行邏輯與。在兩個輸入均為“1”的情況下,邏輯函數(shù)and返回“1”,否則返回“0”。因此,and門的輸出為與輸入信息和掩碼之間的邏輯與相對應(yīng)的一組位。若兩組位相互匹配,則第一相等電路710返回單個位“1”,否則返回單個位“0”。在不考慮dpu的狀態(tài)的實施例中,第一相等電路710的輸出于是與匹配(若輸出為“1”)還是不匹配(若輸出為“0”)相對應(yīng)。在考慮dpu的狀態(tài)的實施例中,第二相等電路715用于將指定狀態(tài)列與dpu的狀態(tài)比較。在特定狀態(tài)行中沒有條目的情況下,不進行比較。第二相等電路715及第一相等電路710的結(jié)果隨后經(jīng)提供至第二與門720。第二與門720的輸出于是與匹配(若輸出為“1”)還是不匹配(若輸出為“0”)相對應(yīng)。第二與門720要求相對于指令標識符及dpu的所需狀態(tài)兩者都匹配。

      圖7圖示流程圖800,該流程圖圖示所接收的指令可與可重寫儲存電路120中的映射匹配的方式。過程開始于其中接收到指令的步驟805。在步驟810處,表示當前正在考慮何映射的計數(shù)器k被設(shè)定為0。在步驟815處,判斷計數(shù)器k是否小于映射的數(shù)目。若否,則整組映射均已考慮且未發(fā)現(xiàn)匹配,在此情況下,過程返回至步驟805中接收下一個指令的。否則,過程繼續(xù)至步驟820,其中判斷映射k是否匹配。此舉包括將所接收的指令與由條目k的計數(shù)器指示的當前映射k的指令標識符比較,以及將系統(tǒng)狀態(tài)與和映射k中的指令標識符相對應(yīng)的任何所需狀態(tài)相比較。例如,若條目k的計數(shù)器為「2」,則將第三指令標識符及該指令標識符的相應(yīng)狀態(tài)與所接收的指令及dpu的狀態(tài)相比較。若無匹配(即,若指令或狀態(tài)中的任一者不匹配),則與映射k相關(guān)聯(lián)的任何計數(shù)器在步驟825處被重設(shè)。如此表示以下的事實,若映射k與指令/條件序列有關(guān),則該序列已由非匹配指令/條件所中斷。隨后,k的值在步驟830處遞增,且過程返回至步驟815以檢查下一個映射。否則,在步驟840處,判斷此指令是否為映射k中的最后一個指令。例如,此舉可測試s列的值(如參考圖5a至圖5e中所示的實施例而論述)是否為0。若否,則與k相關(guān)聯(lián)的計數(shù)器在步驟845處遞增,且計數(shù)器k在步驟830處遞增且過程返回至步驟815。如此表示另外的指令必須在全部映射匹配之前被匹配的情況。若在步驟840處判斷此指令為最后一個指令,則在步驟850處,輸出相應(yīng)控制信號以實現(xiàn)行為修改;且在步驟855處,k的計數(shù)器被重設(shè)。

      應(yīng)注意,若由于相同的接收的指令而發(fā)生多個匹配,則系統(tǒng)的行為是未定義的。具體而言,如此可導致同時進行多個修改,此舉可產(chǎn)生不可預(yù)知的行為。這可藉由例如僅對匹配的第一映射實施行為修改來防止。

      在本申請案中,用詞“被配置以”用于意謂裝置的組件具有能夠執(zhí)行所定義操作的配置。在此上下文中,“配置”意謂硬件或軟件互連的布置或方式。例如,裝置可具有提供定義操作的專用硬件,或者處理器或其他處理裝置可被編程以執(zhí)行功能?!氨慌渲靡浴辈⒎且馕堆b置組件需要以任何方式改變來提供定義的操作。

      盡管已參照附圖在本文中詳細描述了本發(fā)明的說明性實施例,但是應(yīng)理解,本發(fā)明并不限于這些精確實施例,且可在不背離如由所附權(quán)利要求定義的本發(fā)明的精神及范圍的情況下,由本領(lǐng)域技術(shù)人員在本文中實現(xiàn)各種改變、添加及修改。例如,在不背離本發(fā)明的范圍的情況下,可對獨立權(quán)利要求的特征進行與從屬權(quán)利要求的特征的各種組合。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1