亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于檢測暫停的邏輯分析器的制造方法

文檔序號:10494377閱讀:205來源:國知局
用于檢測暫停的邏輯分析器的制造方法
【專利摘要】一種微處理器,包括:高速緩沖,包括標簽陣列;標簽管線,其仲裁對標簽陣列的存??;以及模式檢測器。模式檢測器包括:寄存器;解碼器,其解碼通過標簽管線的標簽管arb的傳輸類型標識符;以及累加器,其將通過標簽管線的多個標簽管arb的傳輸類型標識符累加到寄存器中。
【專利說明】
用于檢測暫停的邏輯分析器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及暫停(hang)檢測邏輯,并且更特別地,涉及用于末層高速緩沖的暫停檢測邏輯。
【背景技術(shù)】
[0002]末層高速緩沖(LLC)的標簽管線提供存取標簽、MESI和LRU陣列的方式。標簽管線(在此也被稱為標簽管)將請求區(qū)分優(yōu)先次序,并且對如何響應(yīng)某些請求做出決定。例如來自諸如LlD的較低層高速緩沖的加載請求,會引發(fā)隊列條目被推入以達成跟蹤狀態(tài)的目的。數(shù)據(jù)加載隊列條目然后仲裁對于標簽管線的所有權(quán)。一旦它被授予對標簽管線的所有權(quán),隊列條目就存取標簽MESI隊列陣列來看它的地址是否在隊列陣列中。如果它在,那么在管線末尾,隊列條目基于地址是否在高速緩沖中并且基于由哪個其它的高速緩沖具有該線,來決定命中還是失中(miss)或者是否需要監(jiān)聽(snoop)其它高速緩沖。
[0003]用于仲裁對LLC存取的邏輯可以導致暫停(hang),對于程序員來說,該暫停既不是編碼錯誤的故障,也不是可預測的。例如,當單個請求或請求對(pair of requests)沒有完成時會發(fā)生死鎖,因該請求重復地在管線中仲裁和重新執(zhí)行。死鎖的一個共同原因是等待某種外部刺激的請求,另一共同原因是依賴鏈的存在,在該鏈中請求對的每一個正在等待另一個請求完成。
[0004]另一個共同示例是當在多線程程序中每個線程競爭相同的共享資源時發(fā)生的活的暫停和不足(starvat1n)。在代碼上,如果資源可用,則所有權(quán)通常用為O的變量做信號通知,而如果資源不可用(即,已經(jīng)被一個線程擁有),則用為I的變量做信號通知。線程讀取該比特同時也將該比特設(shè)定為I,來看它們是否能夠得到所有權(quán)。如果線程讀取O但是設(shè)定I,則那個線程現(xiàn)在得到所有權(quán)。當一個線程得到所有權(quán)時,其它線程會時常對此位置進行讀取-修改-寫入,以等待第一線程釋放共享的資源。在線程O擁有資源,并且它的任務(wù)結(jié)束,但是卻防止線程I以及2試圖以重復的讀取-修改-寫入O來釋放資源時將發(fā)生暫停的情形。這些種類的不足狀態(tài),是確定加載相對于其它加載的優(yōu)先次序的架構(gòu)中的非計劃特征,并且難以預測。
[0005]實際上,在成本、處理速度和邏輯復雜度方面,創(chuàng)建檢測并響應(yīng)于共同死鎖狀況的微處理器,比創(chuàng)建從不或很少發(fā)生死鎖狀況的微處理器可能更高效。因此,需要基于啟發(fā)式的標簽管傳輸監(jiān)視邏輯來檢測指示暫停的模式,還需要響應(yīng)于檢測到的暫停并力圖解決它們的邏輯。

【發(fā)明內(nèi)容】

[0006]本發(fā)明可以用很多形式來表示。它可以被表示的一種形式是作為微處理器,其包括:高速緩沖,包括標簽陣列;標簽管線,其仲裁對標簽陣列的存??;以及模式檢測器。模式檢測器包括:寄存器;解碼器,其解碼通過標簽管線的標簽管arb的傳輸類型標識符,其中標簽管arb是存取標簽陣列的傳輸;以及累加器,其將通過標簽管線的多個標簽管arb的傳輸類型標識符累加到寄存器中。
[0007]在大量時鐘的過程中,例如,一千個時鐘,死鎖頻繁地表;^為這樣的傳輸模式:很少的完成(如果有的話),大多數(shù)的重新執(zhí)行,以及僅僅一或二個不同種類的arb。提供模式檢測器來識別這樣的傳輸模式。
[0008]傳輸類型標識符包括關(guān)于標簽管arb是加載、監(jiān)聽、存儲還是其它類型的信息。模式檢測器可以包括另一累加器,其將完成或被重新執(zhí)行的眾多標簽管arb累加到寄存器中。
[0009]微處理器在用戶可配置數(shù)量的時鐘周期之后,或者在用戶所配置數(shù)量的有效傳輸已經(jīng)通過標簽管之后,周期性地清除寄存器。在清除寄存器之前,模式檢測器將在那個時段內(nèi)累加到寄存器中的業(yè)務(wù)歷史存儲為存儲的模式。
[0010]模式檢測器還可以被配置為比較存儲的業(yè)務(wù)歷史與先前存儲的業(yè)務(wù)歷史,來檢測暗示暫停狀況的模式,并且如果存儲的歷史滿足一個或多個預定的條件,則觸發(fā)恢復例程。所述一個或多個預定的條件之一可以是計數(shù)的重新執(zhí)行的數(shù)量與計數(shù)的完成的數(shù)量相比,超過一個或多個閾值。替換地或者另外,所述一個或多個預定的條件之一可以是在最近的時段內(nèi)計數(shù)的重新執(zhí)行的數(shù)量近似等于下一個最近的時段內(nèi)計數(shù)的重新執(zhí)行的數(shù)量。
[0011]本發(fā)明還可以用很多其它形式來表示,其中一些形式可以比上面表示的形式更寬。因此,不應(yīng)該假設(shè)上面表示的形式反映本發(fā)明在權(quán)利要求中所表示的形式。
【附圖說明】
[0012]圖1是具有共享的LLC的多核心微處理器的一個實施例的框圖。
[0013]圖2是圖1的LLC的框圖。
[0014]圖3是關(guān)于圖2的LLC的標簽管分級架構(gòu)的一個實施例的框圖。
[0015]圖4示出LLC和暫停檢測架構(gòu)的一個實施例的頂層視圖的框圖。
[0016]圖5示出圖4的邏輯分析器的框圖。
[0017]圖6示出由圖5的邏輯分析器捕捉的快照的一個實施例的內(nèi)容。
[0018]圖7示出圖4的模式檢測器的框圖。
[0019]圖8示出合并到圖7的模式檢測器中的累加寄存器的一個實施例內(nèi)容。
[0020]圖9示出圖7的有條件的模式檢測器的操作的功能性框圖。
[0021 ]圖10示出圖4的有條件的模式檢測器的框圖。
[0022]圖11示出圖10的可配置寄存器之一的一個實施例的內(nèi)容。
[0023]圖12示出用于檢測一個或多個可能的不足、活鎖或死鎖狀況的分布式暫停邏輯架構(gòu)的一個實施例。
[0024]圖13示出多個恢復例程的功能性框圖。
【具體實施方式】
[0025]現(xiàn)在參照圖1,示出了圖示多核心微處理器100的框圖。微處理器100包括多個處理核心102、共享的末層高速緩沖(LLC)存儲器120和總線接口單元(BIU)122。
[0026]在圖1的示范性實施例中,存在被表示為核心O 102-0、核心I 102_1、核心2 102-2和核心3 102-3的4個核心102,其被統(tǒng)稱為核心102,并且一般地單獨稱為核心102。每個核心 102-0、102-1、102-2、102-3經(jīng)由各自的接口 118-0、118-1、118-2、118-3存取LLC 120,所述接口被統(tǒng)稱為接口 118,并且一般地單獨稱為接口 118??偩€接口單元122也經(jīng)由接口 118-4存取LLC 120。微處理器100是包括系統(tǒng)存儲器和外圍設(shè)備(未示出)的大型計算系統(tǒng)(也未示出)的一部分,LLC 120經(jīng)由總線接口單元122通過系統(tǒng)總線124與其通信。雖然圖1的實施例示出具有4個核心102的處理器100,但是具有不同數(shù)量的核心102的其它實施例是仍被本發(fā)明考慮在內(nèi)的。所有核心102共享LLC 106。
[0027]每個處理核心102包括指令高速緩沖104、指令翻譯器106(其包括微代碼108)、執(zhí)行單元110、架構(gòu)寄存器112和存儲子系統(tǒng)114(例如,存儲次序緩沖器、數(shù)據(jù)高速緩沖和表步行引擎)。執(zhí)行單元110可以包括整數(shù)單元、浮點單元、媒體單元、分支單元、加載單元和存儲單元。其它功能單元(未示出)可以包括分布其間的表步行引擎,其執(zhí)行翻譯表步行來生成虛擬到物理地址翻譯;分支預測器;重命名單元;重排序緩沖器;保留站;指令取得單元;指令解碼器;指令調(diào)度器;指令分派器、數(shù)據(jù)預取單元;和非架構(gòu)寄存器。各種微架構(gòu)特征可以被包括在核心1 2中。例如,核心1 2可以是超標量體系結(jié)構(gòu)——能夠每個時鐘周期向執(zhí)行單元110發(fā)布多個指令用于執(zhí)行——或標量。又例如,核心102可以按次序或不按次序執(zhí)行指令,后者使得指令能夠不按程序次序被發(fā)布用于執(zhí)行。在一個實施例中,核心102基本上符合x86指令集架構(gòu),雖然核心102不限于特定的指令集架構(gòu),并且可以包括其它存儲器請求代理器,諸如圖形處理單元(GPU)或現(xiàn)場可編程門陣列(FPGA)。
[0028]每個核心102-0、102-1、102-2、102-3還包括各自的專用高速緩沖存儲器層級116-
0、116-1、116-2、116-3,其被統(tǒng)稱為專用高速緩沖存儲器層級116,并且一般地單獨稱為專用高速緩沖存儲器層級116。優(yōu)選地,專用高速緩沖存儲器層級116的高速緩沖存儲器小于LLC 120,并且具有相對小的存取延遲。在一個實施例中,專用高速緩沖存儲器層級116包括層-1 (LI)指令高速緩沖(LlI)和LI數(shù)據(jù)高速緩沖(LlD)。
[0029]圖2示出微處理器的末層高速緩沖(LLC)120的高層框結(jié)構(gòu)。LLC120包括若干子模塊,所述子模塊包括核心和總線接口 126和128 (其包含保存瞬時傳輸狀態(tài)的隊列130),保存標簽、MES1、LRU和數(shù)據(jù)信息的陣列132-136,以及一個或多個標簽管線140(也被稱為“標簽線”)以及數(shù)據(jù)管線160(也被稱為“數(shù)據(jù)管”),其允許隊列以適合的定時方式來存取共享的陣列。
[0030]在圖2的實施例中,兩個標簽管140,標簽管A和標簽管B,被描繪為支持四核處理器的LLC。兩個核心參與仲裁以取得標簽管A的所有權(quán),并且另外兩個核心參與仲裁以取得標簽管B的所有權(quán)。在另一實施例(未示出)中,提供單個的標簽管140用于LLC。在又另外的實施例(也未示出)中,提供三個或更多的標簽管140。
[0031]標簽管140獨有的特性是它們在操作上幾乎是所有LLC傳輸經(jīng)過的中心點。每個標簽管140提供存取到最近最少使用的(LRU)和標簽/MESI陣列132和134,并且為到標簽管140中的每個隊列條目的仲裁做出行動決定。這種特性使得標簽管140在檢測和避免暫停方面有用。
[0032]LLC的隊列130可以被分組成核心接口隊列和外部接口隊列。核心接口隊列的示例包括從LI高速緩沖(或中間高速緩沖)到LLC處理加載的加載隊列,將從LI高速緩沖至IjLLC處理逐出的逐出隊列,以及從LLC處理到LI高速緩沖處理監(jiān)聽的監(jiān)聽隊列。在一個實施例中,對于數(shù)據(jù)和代碼提供分開的加載、逐出和監(jiān)聽隊列。在另一個實施例中,為處理器的每個核心提供這樣的核心接口隊列的群組。
[0033]外部接口隊列包括處理到LLC中的新的分配以及從LLC的逐出的填充緩沖器,處理源自總線的監(jiān)聽的監(jiān)聽隊列,以及(在其它事情當中)處理從核心的總線寫入的寫入隊列。
[0034]LLC還包括其它小框,包括狀態(tài)機、認證特征和運用Forth程序(Forth program)的PPU 139ο
[0035]從外部世界進入LLC中的傳輸(例如,數(shù)據(jù)加載)或者在LLC之內(nèi)部執(zhí)行(例如,預取)會將條目推到它們相應(yīng)的隊列130中。通過為到它們的標簽或數(shù)據(jù)管線140或160中進行仲裁、與外部框通信或者兩者,隊列130然后負責維持完成傳輸所需的狀態(tài)。
[0036]微處理器給予一些類型的傳輸比一些其它類型的傳輸更高的優(yōu)先級。在一個實施例中,在LLC中最高優(yōu)先級的傳輸是LId加載。當LLC檢測到新的加載請求時,它以并行的方式執(zhí)行正常隊列推入并且將加載請求信號直接發(fā)送到仲裁邏輯中,以允許LLC一檢測到請求,加載就開始仲裁。
[0037]圖3描繪了被劃分成并分別指定為A、B、C、D和E的多個主要級141-145的標簽管140的一個實施例。存取高速緩沖的傳輸(在此被稱為“標簽管arb”)通過標簽管140的級。在A級141期間,傳輸仲裁到標簽管140中。在B級142期間,標簽被發(fā)送到陣列。在C級期間,從陣列接收MESI信息以及對于標簽在LLC中是命中還是失中的指示。在D級期間,鑒于從陣列接收的信息,對于采取什么行動進行確定。在E級期間,行動決定(完成/重新執(zhí)行,推入填充等)被發(fā)送回到請求隊列。
[0038]在一個實施例中,標簽管140還包括后續(xù)的級,但是這些僅為了在D級中提供從更舊的請求到更新的請求的轉(zhuǎn)向路徑的目的而存在。因此,在圖3的實施例中,使用一個或多個類型的檢測器150來監(jiān)視E級145是有用的。然而,例如,在具有更多或更少級的實施例中,監(jiān)視的最佳級將隨著標簽管設(shè)計而變化。因而,在圖4中,“級N” 149象征包含關(guān)于arb的充足信息數(shù)量的標簽管級一一特別是,arb是否要重新執(zhí)行、完成和/或要求其它隊列推入一一來使能對暫停的檢測和分析。
[0039]圖4是示出末層高速緩沖和暫停檢測架構(gòu)170的一個實施例的頂層視圖的框圖。LLC和暫停檢測架構(gòu)170包括一個或多個數(shù)據(jù)陣列136、一個或多個標簽陣列132和仲裁邏輯172。耦接到請求隊列130和數(shù)據(jù)管160的仲裁邏輯172仲裁對數(shù)據(jù)陣列136中的存取。耦接到標簽管140的仲裁邏輯172仲裁對標簽/MESI陣列132的存取。三個不同的暫停檢測器——邏輯分析器200、模式檢測器300和狀況模式檢測器400—一耦接到標簽管140的級N 149來檢測一個或多個不足、活鎖或死鎖狀況。耦接到請求隊列130的分布式暫停檢測邏輯500提供多個恢復例程來從暫停中恢復。
[0040]圖5示出圖4的邏輯分析器200的一個實施例。邏輯分析器200包括連接到標簽管140的級N 149的arb讀取邏輯202,其讀取并捕捉標簽管arb的快照220。配置邏輯208使得用戶能夠選擇性地配置邏輯分析器200,來在開始指示指標212和結(jié)束指示指標214之間讀取和/或存儲信息,或者指示是否執(zhí)行滾動捕捉216,并且選擇性地忽視某些傳輸218。邏輯分析器200的壓縮邏輯204采用由arb讀取邏輯202所捕捉的快照220并且將不同類型的重新執(zhí)行條件一起進行邏輯“或”。存儲邏輯206將壓縮的快照存儲到微處理器的專用隨機存取存儲器(PRAM)中。這個被加強的信息用于確定什么標簽管arb包括暫?;蛘邔е聲和!?br>[0041]如圖6中所示,每個快照220包括存儲關(guān)于標簽管arb的相關(guān)信息的多個比特。傳輸標識符222識別arb的隊列索引。例如,傳輸標識符222可以是在O和15之間的數(shù)字。傳輸類型字段224標識相應(yīng)的標簽管arb是加載、監(jiān)聽、逐出還是其它arb類型。事件字段226指示標簽管arb被完成還是重新執(zhí)行。指派字段228標識關(guān)于arb的其它有用信息,例如,相應(yīng)的arb被指派到的集合和路徑或者與arb相關(guān)聯(lián)的寄存器體(bank)。這有助于識別可能來自指定arb所指派集合和路徑所引發(fā)的暫停。
[0042]圖7是圖4的模式檢測器300的一個實施例的框圖。模式檢測器300包括快照捕捉邏輯301、存儲寄存器316、多個可配置設(shè)置322和比較邏輯318。
[0043]快照捕捉邏輯301包括連接到標簽管140的級N149、用以捕捉標簽管arb的快照的arb讀取邏輯302??煺詹蹲竭壿?01還包括線路解碼器304,該線路解碼器304將通過標簽管140的arb的X數(shù)字傳輸標識符222和傳輸類型224,解碼成以2X比特字段表示的傳輸標識符和類型。累加器306然后將解碼的傳輸標識符和類型累加到累加寄存器314中。
[0044]例如,當通過arb讀取邏輯302恢復原狀時,傳輸類型224可以以X比特(例如,4比特)二進制代碼的形式來表示。解碼器342將X比特傳輸標識符解碼成Y比特(例如,16比特)字段,其中2Χ_1〈Υ〈 = 2Χ,以便Y比特字段的每一比特表示不同種類(或相似種類的類別)的標簽管arb。因為累加器306通過傳輸標識符(傳輸標識符中最近解碼數(shù)值者)的最近累加值的邏輯或布爾等效函數(shù)來累加傳輸標識符,所以累加器306將在用戶配置時段期間通過標簽管140的每個種類的標簽管arb的位掩碼累加到累加寄存器314中。
[0045]模式檢測器300還包括對某些事件計數(shù)的多個算術(shù)累加器308。例如,一個算術(shù)累加器308對在配置時段期間完成的arb傳輸?shù)臄?shù)量進行計數(shù)。另一個算術(shù)累加器308對在該時段期間重新執(zhí)行的arb的數(shù)量進行計數(shù)。又另一累加器308累加在該時段期間遇到的重新執(zhí)行類型的位掩碼。
[0046]圖8示出累加寄存器314的一個實施例的內(nèi)容,其包括比特0-10的字段341以記錄通過算術(shù)累加器310計數(shù)的重新執(zhí)行的數(shù)量,包括比特11-18的字段343以記錄由算術(shù)累加器308計數(shù)的完成的數(shù)量,包括比特19-31的字段345以記錄在該時段期間檢測到的重新執(zhí)行類型,包括比特32-47的字段347以記錄在該時段期間遇到的傳輸標識符(例如,隊列索引),包括比特48-63的字段349以記錄從累加器306接收的解碼的arb狀態(tài)。
[0047]模式檢測器300提供用戶可配置的設(shè)置322來操作模式檢測器300。這些設(shè)置可以包括,例如,時鐘周期的配置數(shù)量323或者穿過標簽管140的有效傳輸(未示出)的配置數(shù)量。這些設(shè)置還可以包括分別關(guān)于計數(shù)的完成和計數(shù)的重新執(zhí)行的數(shù)量的閾值325和327,來信號通知暫停。
[0048]圖9示出圖6的模式檢測器300的操作。在框350中,arb讀取邏輯302生成在級N149處的arb的快照。在框352中,模式檢測器300將快照累加到寄存器314中。在框354中,模式檢測器300檢查用戶配置的時段是否已經(jīng)完成。如果否,則模式檢測器300繼續(xù)將快照累加到寄存器314中。如果用戶配置時段完成,那么在框356中,模式檢測器300在一個存儲寄存器316中將寄存器314的累加的比特保存為存儲的歷史。微處理器還清除寄存器314,將它準備好來為后續(xù)的時段累加新的位掩碼。
[0049]在框358、360和362中,模式檢測器300中的比較邏輯318執(zhí)行一個或多個預定的和/或配置的比較。例如,模式檢測器300可以評價完成的數(shù)量是否低于用戶配置的閾值225(框358),重新執(zhí)行的數(shù)量是否滿足或超過在用戶配置設(shè)置322中設(shè)定的重新執(zhí)行閾值327(框360),并且/或者比較兩個最近保存的寄存器的重新執(zhí)行數(shù)據(jù)來確定兩個寄存器中的重新執(zhí)行的計數(shù)的數(shù)量是否相同或幾乎相同(框362)。模式檢測器300還可以,或者在替換例中,評價計數(shù)的重新執(zhí)行的數(shù)量和計數(shù)的完成的數(shù)量之間的差是否超過閾值。如果在框364中滿足一個或多個預定的和/或配置的條件,那么在框366中,模式檢測器300用信號通知暫停,而該暫停將依次觸發(fā)一個或多個恢復或捕捉例程320(框368)。
[0050]圖10是圖4的有條件的模式檢測器400的一個實施例的框圖。有條件的模式檢測器400是圖7的模式檢測器300的更復雜且可配置的形式。檢測器400包括快照捕捉邏輯401,該快照捕捉邏輯401如同圖7的快照捕捉邏輯301 —樣具有arb讀取邏輯402和掩碼邏輯404來捕捉標簽管arb的快照。檢測器400提供多個可配置觸發(fā)寄存器模塊410。每個觸發(fā)寄存器模塊410具有用于檢測具有指定屬性的傳輸?shù)亩鄠€可配置字段,可選地取決于另一觸發(fā)寄存器模塊410而處于觸發(fā)狀態(tài)。多個觸發(fā)寄存器模塊410可一起配置來檢測用戶指定的模式的arb,并且在模式被檢測到時觸發(fā)L2捕捉和/或恢復響應(yīng)432。
[0051 ]每個觸發(fā)寄存器模塊410具有三個輸出。觸發(fā)寄存器模塊410被觸發(fā)時,第一輸出422將信號提供給每個其它觸發(fā)寄存器模塊410。第二輸出424用信號通知下游邏輯420來觸發(fā)L2捕捉,S卩,開始捕捉穿過標簽管140的每件事物。每個觸發(fā)寄存器模塊410的觸發(fā)L2捕捉輸出424被“或”在一起,如“或”框428所示。第三輸出426用信號通知下游邏輯430觸發(fā)PPU中斷,其依次導致一個或多個恢復例程432得到執(zhí)行。每個觸發(fā)寄存器模塊410的觸發(fā)PPU輸出426也是被“或”在一起,如“或”框429所示。
[0052]圖11示出可配置的觸發(fā)寄存器模塊410的一個實施例的內(nèi)容。觸發(fā)寄存器模塊410提供字段用于指定重新執(zhí)行矢量413、arb類型414、觸發(fā)相關(guān)位圖416和超時值417。如果寄存器模塊具有指定的超時時段,那么超時時段在寄存器指示它處于觸發(fā)狀態(tài)時開始。在超時時段期滿之后,模式檢測器禁用任何從屬的寄存器模塊進入觸發(fā)狀態(tài)中。
[0053]觸發(fā)寄存器模塊410還提供每個在長度上為I比特的字段418和419,來使得觸發(fā)寄存器模塊410能夠觸發(fā)下游邏輯來觸發(fā)PPU中斷或L2捕捉。字段411指示觸發(fā)是否被使能。字段421指定一旦寄存器觸發(fā),它是否將保持被使能??膳渲玫募拇嫫髂K410可以支持更多專門的字段,例如,標簽管選擇器415。
[0054]圖12示出用于檢測一個或多個可能的不足、活鎖或死鎖狀況的多處理器微處理器中的分布式暫停邏輯架構(gòu)500的一個實施例。每個包含多個隊列條目512的多個隊列130(圖2),包含關(guān)于存取高速緩沖的傳輸和旁路高速緩沖的傳輸(例如,不可高速緩沖的加載)的瞬時傳輸狀態(tài)信息。多個檢測器520監(jiān)視多個隊列條目512的一個或多個可能的不足、活鎖或死鎖狀況。多個恢復邏輯模塊530被分布在微處理器中。當檢測器520檢測到可能的不足、活鎖或死鎖狀況時,它與最近的恢復邏輯模塊530通信它的狀況(例如,“ImHung(我被暫停)”信號)。當耦接的檢測器520識別到可能的不足、活鎖或死鎖狀況時,每個恢復邏輯模塊530(其在一個實施例中組成有限狀態(tài)機)被配置為實現(xiàn)一個或多個局部恢復例程535。
[0055]在一個實施例中,請求仲裁到末層高速緩沖標簽管140中的每個隊列條目512與相應(yīng)檢測器520相關(guān)聯(lián)。還有在一個實施例中,檢測器520包括飽和的計數(shù)器。配置邏輯550被提供來指定一個或多個條件550來計數(shù)。
[0056]在一個實施例中,當相關(guān)聯(lián)的隊列條目512被新分配時,分布式暫停邏輯架構(gòu)500被配置為重置每個飽和的計數(shù)器,并且每當相關(guān)聯(lián)的隊列條目512被重新執(zhí)行時,就增加飽和計數(shù)器。在第二實施例中,每當相關(guān)聯(lián)的隊列條目請求仲裁,但是不給予仲裁時,每個飽和計數(shù)器增加。在第三實施例中,每當相關(guān)聯(lián)的隊列條目在請求仲裁之前等待某種外部刺激時,每個飽和計數(shù)器增加。在第四實施例中,每個飽和計數(shù)器在可配置的閾值飽和。
[0057]分布式暫停邏輯架構(gòu)500還包括中央恢復邏輯540,該中央恢復邏輯540在一個實施例中也是有限狀態(tài)機。當恢復邏輯模塊530被檢測器520通知可能的不足、活鎖或死鎖狀況時,恢復邏輯模塊530與中央恢復邏輯540通信。中央恢復邏輯540響應(yīng)性地指令多個恢復邏輯模塊530的每個執(zhí)行一個或多個它們自己的局部恢復例程。
[0058]恢復例程535被配置為處理來自相關(guān)聯(lián)的隊列條目的仲裁請求以便嘗試解決檢測到的暫停。圖13是提供給恢復邏輯540的恢復例程560的集合的一個實施例的框圖。
[0059]一個恢復例程562包括透過系統(tǒng)地阻擋仲裁請求來將鼓泡(bubble)插入到標簽管線中。第二恢復例程564包括透過將它們的請求去資格(dequalify)來阻擋預定的請求隊列條目的集合。第三恢復例程566包括透過使得相關(guān)聯(lián)的隊列條目將它們的仲裁請求去資格,來阻擋與沒有設(shè)置可能的不足、活鎖或死鎖狀況的檢測器相關(guān)聯(lián)的所有請求者。第四恢復例程568包括循環(huán)的請求去資格,其中來自個別的隊列或隊列條目的對于仲裁的請求僅僅被允許連續(xù)地進行。在一個實施例中,恢復邏輯執(zhí)行一個恢復例程,并且在執(zhí)行下一個恢復例程之前重新檢查暫停條件。然而,除非在權(quán)利要求中如此指定,否則本發(fā)明不將這些恢復例程限制于任何特定的恢復例程的集合,或者恢復例程的任何特定的排序。
[0060]雖然已經(jīng)在此描述了本發(fā)明的各種實施例,但是應(yīng)該理解,它們已經(jīng)作為示例被呈現(xiàn),而非限制。對于相關(guān)計算機領(lǐng)域的技術(shù)人員來說將顯然的是,在此可以進行形式和細節(jié)上的各種改變而不脫離本發(fā)明的范圍。例如,軟件可以使能在此描述的裝置和方法的功能、制作、建模、模擬、描述和/或測試。這可以通過使用以下來完成:通用編程語言(例如,C、C++)、硬件描述語言(HDL)(包括Verilog HDL、VHDL等)或者其它可用程序。這樣的軟件可以被部署在任何已知的計算機可用介質(zhì)中,諸如磁帶、半導體、磁盤或光盤(例如,CD-ROM、DVD-ROM等)、網(wǎng)絡(luò)、有線、無線或其它通信介質(zhì)。在此描述的裝置和方法的實施例可以被包括在半導體知識產(chǎn)權(quán)核心中,諸如微處理器核心(例如,嵌入的,或?qū)S玫?,用HDL),并且在集成電路的生產(chǎn)中被轉(zhuǎn)換成硬件。另外,在此描述的裝置和方法可以被具體化為硬件和軟件的組合。因而,本發(fā)明不應(yīng)該被在此描述的任何示范性實施例所限制,而是應(yīng)該僅根據(jù)所附的權(quán)利要求及其等價物來定義。具體地,本發(fā)明可以在可以用在通用計算機中的微處理器設(shè)備之內(nèi)被實現(xiàn)。最后,本領(lǐng)域技術(shù)人員應(yīng)該理解,他們可以容易地使用所公開的構(gòu)思和特定實施例作為設(shè)計和修改用于實行本發(fā)明的相同目的的其它結(jié)構(gòu)的基礎(chǔ),而不脫離由所附權(quán)利要求定義的本發(fā)明的范圍。
【主權(quán)項】
1.一種微處理器,包括: 高速緩沖,包括標簽陣列; 標簽管線,其仲裁對標簽陣列的存??;以及 模式檢測器,該模式檢測器包括: 寄存器; 解碼器,其解碼通過標簽管線的標簽管arb的傳輸類型標識符,其中標簽管arb是存取標簽陣列的傳輸;以及 累加器,其將通過標簽管線的多個標簽管arb的傳輸類型標識符累加到寄存器中; 其中模式檢測器累加通過標簽管線的各種標簽管arb的歷史。2.如權(quán)利要求1所述的微處理器,其中傳輸類型標識符包括關(guān)于標簽管arb是加載、監(jiān)聽、存儲還是其它類型的信息。3.如權(quán)利要求1所述的微處理器,還包括另外的累加器,該累加器將完成或被重新執(zhí)行的眾多標簽管arb累加到寄存器中。4.如權(quán)利要求1所述的微處理器,其中微處理器在可配置數(shù)量的時鐘周期之后周期性地清除寄存器。5.如權(quán)利要求1所述的微處理器,其中微處理器在可配置數(shù)量的有效的傳輸已經(jīng)通過標簽管之后周期性地清除寄存器。6.如權(quán)利要求1所述的微處理器,其中微處理器在連續(xù)的時鐘周期時段或連續(xù)的傳輸完成之后周期性地清除寄存器,并且模式檢測器被配置為將在那個周期內(nèi)累加到寄存器中的歷史存儲為存儲的歷史。7.如權(quán)利要求6所述的微處理器,其中所述時段是用戶配置的值。8.如權(quán)利要求6所述的微處理器,其中模式檢測器被配置為比較存儲的歷史與先前存儲的歷史來檢測暗示暫停狀況的存在的模式。9.如權(quán)利要求1所述的微處理器,其中模式檢測器被配置為如果存儲的歷史滿足一個或多個預定的條件,則觸發(fā)捕捉或者恢復例程。10.如權(quán)利要求9所述的微處理器,其中所述一個或多個預定條件的一個是計數(shù)的重新執(zhí)行的數(shù)量與計數(shù)的完成的數(shù)量相比,超過一個或多個閾值。11.如權(quán)利要求10所述的微處理器,其中所述一個或多個預定條件之一是在最近的時段內(nèi)的計數(shù)的重新執(zhí)行的數(shù)量近似等于在下一個最近的時段內(nèi)的計數(shù)的重新執(zhí)行的數(shù)量。12.—種在具有高速緩沖的微處理器中檢測可能的不足、活鎖或死鎖狀況的方法,其中高速緩沖包括標簽陣列和仲裁對標簽陣列的存取的標簽管線,所述方法包括: 解碼通過標簽管線的標簽管arb的傳輸類型標識符,其中標簽管arb是存取標簽陣列的傳輸;以及 將通過標簽管線的多個標簽管arb的傳輸類型標識符累加到寄存器中。13.如權(quán)利要求12所述的方法,其中傳輸類型標識符包括關(guān)于標簽管arb是加載、監(jiān)聽、存儲還是其它類型的信息。14.如權(quán)利要求12所述的方法,還包括將完成或被重新執(zhí)行的眾多標簽管arb累加到寄存器中。15.如權(quán)利要求12所述的方法,還包括在配置數(shù)量的時鐘周期之后周期性地清除寄存器。16.如權(quán)利要求12所述的方法,還包括在可配置數(shù)量的有效的傳輸已經(jīng)通過標簽管線之后周期性地清除寄存器。17.如權(quán)利要求12所述的方法,進一步包括: 在連續(xù)的傳輸或連續(xù)的時鐘周期的時段完成之后周期性地清除寄存器;以及 將在那個時段內(nèi)累加到寄存器中的歷史存儲為存儲的歷史。18.如權(quán)利要求17所述的方法,還包括比較存儲的歷史與先前存儲的歷史來檢測可能的暫停狀況。19.如權(quán)利要求12所述的方法,還包括如果存儲的歷史滿足一個或多個預定的條件,則觸發(fā)恢復例程。20.如權(quán)利要求19所述的方法,其中所述一個或多個預定條件的一個是計數(shù)的重新執(zhí)行的數(shù)量與計數(shù)的完成的數(shù)量相比,超過一個或多個閾值。21.如權(quán)利要求19所述的方法,其中所述一個或多個預定條件之一是在最近的時段內(nèi)的計數(shù)的重新執(zhí)行的數(shù)量近似等于在下一個最近的時段內(nèi)的計數(shù)的重新執(zhí)行的數(shù)量。22.—種計算機程序產(chǎn)品,被編碼在與計算設(shè)備一起使用的至少一個非瞬時性計算機可讀介質(zhì)中,該計算機程序產(chǎn)品包括: 嵌入在所述介質(zhì)中的計算機可讀程序代碼,用于指定具有如下的微處理器: 高速緩沖,包括標簽陣列; 標簽管線,其仲裁對標簽陣列的存??;以及 模式檢測器,該模式檢測器包括: 寄存器; 解碼器,其解碼通過標簽管線的標簽管arb的傳輸類型標識符,其中標簽管arb是存取標簽陣列的傳輸;以及 累加器,其將通過標簽管線的多個標簽管arb的傳輸類型標識符累加到寄存器中; 其中模式檢測器累加通過標簽管線的各種標簽管arb的歷史。
【文檔編號】G06F12/00GK105849705SQ201480070698
【公開日】2016年8月10日
【申請日】2014年12月13日
【發(fā)明人】羅德尼.E.虎克, 道格拉斯.R.瑞德
【申請人】上海兆芯集成電路有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1