專利名稱:對(duì)稱多核的高效一致性偵聽過濾裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及多核處理器系統(tǒng)、多核高速緩存一致性方法和設(shè)備。
背景技術(shù):
在多核處理器系統(tǒng)中,集成有兩個(gè)或者兩個(gè)以上的微處理器。對(duì)稱多核指的是系統(tǒng)中每個(gè)處理器地位平等,并且訪問主存儲(chǔ)器的時(shí)延是一致的,即有相同的訪問時(shí)延,具有對(duì)稱性。多核處理器能使得系統(tǒng)同時(shí)處理的指令總量增加,從而使整個(gè)計(jì)算機(jī)系統(tǒng)或者其他處理器系統(tǒng)的性能提升。同樣性能下,多核處理器比單核處理器有設(shè)計(jì)簡(jiǎn)單、功耗低等優(yōu)點(diǎn),因此多核處理器成為了處理器市場(chǎng)的趨勢(shì)。然而多核處理器系統(tǒng)絕非僅僅將多個(gè)處理器并行互連,例如它需要將任務(wù)或程 序分配,從而使它們能在多處理器上并行執(zhí)行;它還要求存儲(chǔ)器系統(tǒng)有一致性等。存儲(chǔ)器系統(tǒng)的一致性是指系統(tǒng)中任何一個(gè)讀操作讀到的都是最新的數(shù)據(jù),即讀到的數(shù)據(jù)是系統(tǒng)中最后一個(gè)寫操作的數(shù)據(jù),具體體現(xiàn)為1) ;2) ;3)。為了使得存儲(chǔ)器系統(tǒng)滿足一致性要求,系統(tǒng)需要對(duì)來自所有處理器的寫操作進(jìn)行串行化。存儲(chǔ)器系統(tǒng)的一致性問題由于多處理器帶入的多個(gè)一級(jí)高速緩存而引起,因?yàn)槊恳粋€(gè)處理器的一級(jí)高速緩存是私有的,它里面的內(nèi)容不被其他處理器所知曉,所以各個(gè)處理器的私有高速緩存中對(duì)同一個(gè)存儲(chǔ)器地址的緩存數(shù)據(jù)有潛在的不一致性。高速緩存的私有性導(dǎo)致存儲(chǔ)器系統(tǒng)可能出現(xiàn)不一致,因此,通過維護(hù)高速緩存的一致性可以維護(hù)存儲(chǔ)器系統(tǒng)的一致性。高速緩存的一致性的維護(hù)需要讓各個(gè)處理器的讀寫操作結(jié)果被其他的處理器所知曉,因?yàn)樘幚砥鞯淖x寫操作結(jié)果可能是保存在其私有的高速緩存中,所以處理器高速緩存中的狀態(tài)和標(biāo)志需要被各個(gè)處理器所知曉。在非多核處理器中,高速緩存中保存著數(shù)據(jù)副本以及數(shù)據(jù)副本的狀態(tài)和標(biāo)志;數(shù)據(jù)副本是高速緩存中暫存的主存儲(chǔ)器(主存)中數(shù)據(jù)的副本,狀態(tài)和標(biāo)志是當(dāng)前數(shù)據(jù)副本的信息標(biāo)記;高速緩存中的數(shù)據(jù)副本,狀態(tài)和標(biāo)志供當(dāng)前處理器查詢和更新。而在多核處理器系統(tǒng)中,因?yàn)橐S護(hù)多個(gè)高速緩存之間的一致性,所以當(dāng)前處理器高速緩存的信息標(biāo)記需要被其他處理器所知曉;為了避免處理器的私有高速緩存同時(shí)被當(dāng)前處理器和其他處理器同時(shí)被查詢和/或更新的沖突,通常復(fù)制一份標(biāo)志,稱作標(biāo)志副本,而原有的標(biāo)志稱為標(biāo)志原本;標(biāo)志副本僅供其他處理器查詢,讓其他處理器知道當(dāng)前處理器的狀態(tài),進(jìn)而可以維護(hù)高速緩存的一致性。高速緩存所有的標(biāo)志副本組成標(biāo)志副本陣列(以下沒有特別說明是單個(gè)標(biāo)志副本的“標(biāo)志副本”都指的是“標(biāo)志副本陣列”),其中還包含了對(duì)應(yīng)的狀態(tài)信息。主動(dòng)處理器發(fā)出的讀寫操作會(huì)請(qǐng)求查詢標(biāo)志副本,經(jīng)過分析查詢的結(jié)果以及讀寫操作類型,相應(yīng)的偵聽操作需要被發(fā)送給各個(gè)被動(dòng)處理器;主動(dòng)處理器是發(fā)出當(dāng)前讀寫操作的處理器,被動(dòng)處理器是非當(dāng)前讀寫操作發(fā)起者的處理器。由于每個(gè)標(biāo)志副本要接收從其他所有處理器讀寫操作的查詢和更新請(qǐng)求,它大都比標(biāo)志原本被查詢和更新的更加頻繁,因此標(biāo)志副本處理查詢和更新請(qǐng)求的速度直接影響多核通信的效率。當(dāng)前嵌入式多核處理器系統(tǒng)中,大多標(biāo)志副本都按照標(biāo)志原本的方式進(jìn)行組織,采用單端口、單一分塊的存儲(chǔ)陣列,這使得標(biāo)志副本在每個(gè)時(shí)鐘周期只能處理一個(gè)查詢或更新。另外,在當(dāng)前流行的嵌入式多核系統(tǒng)大都采用基于總線的偵聽式架構(gòu)。一般標(biāo)志副本分布在各個(gè)處理器中,這使得讀寫操作在查詢標(biāo)志副本之后發(fā)出的偵聽請(qǐng)求難以過濾,即每個(gè)讀寫操作都要對(duì)所有被動(dòng)處理器發(fā)出偵聽請(qǐng)求。
發(fā)明內(nèi)容
為了克服現(xiàn)有的多核處理器系統(tǒng)的通信效率較低、性能受限的不足,本發(fā)明提供一種提升多核中各處理器之間的通信效率、提高整個(gè)多核的性能的對(duì)稱多核的高效一致性偵聽過濾裝置。 為了解決上述技術(shù)問題采用的技術(shù)方案為一種對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述高效一致性偵聽過濾裝置包括集中式的多個(gè)處理器核一級(jí)高速緩存的標(biāo)志副本陣列組合,所述標(biāo)志副本陣列組合包含所有處理器的標(biāo)志副本陣列,一個(gè)處理器對(duì)應(yīng)一個(gè)標(biāo)志副本陣列;各個(gè)處理器的標(biāo)志副本陣列劃分區(qū)塊,即任一處理器的標(biāo)志副本陣列分成兩個(gè)或兩個(gè)以上的塊,每個(gè)塊使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的塊允許同時(shí)被訪問;任一處理器的標(biāo)志副本陣列可供其他處理器的讀寫操作訪問,對(duì)不同處理器的標(biāo)志副本陣列使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的標(biāo)志副本陣列允許同時(shí)被訪問;讀寫請(qǐng)求仲裁器,用于接收和仲裁從各個(gè)處理器發(fā)出的一致性讀寫操作請(qǐng)求,并且向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求;分析單元,用于分析標(biāo)志副本的查詢結(jié)果,產(chǎn)生相應(yīng)的命令,并且將命令發(fā)送給命令隊(duì)列;命令隊(duì)列,用于暫存未完成的命令,并且按照命令向標(biāo)志副本發(fā)送更新請(qǐng)求,向處理器發(fā)送偵聽請(qǐng)求。進(jìn)一步,所述標(biāo)志副本陣列的查詢請(qǐng)求和更新請(qǐng)求允許同時(shí)被接受;若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是不同的處理器標(biāo)志副本,該查詢請(qǐng)求和更新請(qǐng)求同時(shí)被執(zhí)行;若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是同一個(gè)處理器標(biāo)志副本的不同區(qū)塊,該查詢請(qǐng)求和更新請(qǐng)求也同時(shí)被執(zhí)行。再進(jìn)一步,所述讀寫請(qǐng)求仲裁器中,對(duì)從各個(gè)處理器發(fā)出的一致性讀寫操作進(jìn)行仲裁,同時(shí)仲裁的讀寫操作請(qǐng)求最大個(gè)數(shù)為處理器的總個(gè)數(shù);采用令牌傳遞方式對(duì)各個(gè)處理器的讀寫操作請(qǐng)求進(jìn)行仲裁,得到令牌的處理器的讀寫操作請(qǐng)求被接收,沒有得到令牌的處理器的讀寫操作請(qǐng)求不被接收;對(duì)于所有處理器,每一時(shí)刻有且只有一個(gè)處理器得到令牌;經(jīng)過仲裁器仲裁之后的讀寫操作向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求。更進(jìn)一步,所述的一致性讀寫操作包括各個(gè)處理器發(fā)出的所有影響高速緩存一致性的讀寫操作;所述影響高速緩存一致性的讀寫操作包括 共享態(tài)寫命中處理器發(fā)出的寫操作;在其一級(jí)高速緩存中含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫命中;并且,其他處理器的一級(jí)高速緩存中也包含該讀寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即處于共享態(tài); 寫缺失處理器發(fā)出的寫操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫缺失; 讀缺失處理器發(fā)出的讀操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即讀缺失。各個(gè)處理器中一致性讀寫操作的目標(biāo)地址的數(shù)據(jù)副本是從主存中讀取的數(shù)據(jù),保存于處理器的一級(jí)高速緩存中,所述數(shù)據(jù)副本有四種狀態(tài)I)無效態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中無效或者不存在;2)共享態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且數(shù)據(jù)副本 在其他一個(gè)或者一個(gè)以上處理器的一級(jí)高速緩存中也存在且有效;3)獨(dú)占干凈態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且該數(shù)據(jù)副本和主存中的數(shù)據(jù)一樣,并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效;4)獨(dú)占修改態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且該數(shù)據(jù)副本比主存中的數(shù)據(jù)副本更新,即被修改過,并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效。當(dāng)前查詢請(qǐng)求只發(fā)給被動(dòng)處理器的標(biāo)志副本陣列;其中,當(dāng)前發(fā)起讀寫操作請(qǐng)求處理器是主動(dòng)處理器,其他的處理器是被動(dòng)處理器,每次讀寫操作的主動(dòng)處理器有且只有一個(gè)并且是當(dāng)前讀寫操作的發(fā)起者。所述分析單元中,接收讀寫操作請(qǐng)求對(duì)標(biāo)志副本陣列查詢后的結(jié)果,按照讀寫請(qǐng)求類型和查詢結(jié)果進(jìn)行分析;分析得到的命令包含所有標(biāo)志副本的更新請(qǐng)求信息,還包含向各個(gè)被動(dòng)處理器發(fā)送的偵聽請(qǐng)求信息。所述偵聽請(qǐng)求既適用于寫分配的一級(jí)高速緩存一致性維護(hù),也適用于寫不分配的一級(jí)高速緩存一致性維護(hù);有三種偵聽請(qǐng)求,它們是 I)使無效該偵聽請(qǐng)求要求被動(dòng)處理器將被動(dòng)處理器自身一級(jí)高速緩存中的數(shù)據(jù)副本去除,即進(jìn)入無效態(tài);2)寫缺失直傳該偵聽請(qǐng)求要求被動(dòng)處理器接收主動(dòng)處理器一級(jí)高速緩存寫缺失的數(shù)據(jù),覆蓋被動(dòng)處理器的原數(shù)據(jù),并且被動(dòng)處理器進(jìn)入獨(dú)占修改態(tài);3)讀數(shù)據(jù)直傳該偵聽請(qǐng)求要求被動(dòng)處理器向主動(dòng)處理器提供主動(dòng)處理器一級(jí)高速緩存讀缺失的數(shù)據(jù),被動(dòng)處理器和主動(dòng)處理器都將進(jìn)入共享態(tài)。所述偵聽請(qǐng)求只發(fā)送給被動(dòng)處理器;分析單元對(duì)于不必要的偵聽操作進(jìn)行過濾,被過濾掉的偵聽操作不發(fā)起偵聽請(qǐng)求,該過濾操作如下I)主動(dòng)處理器發(fā)出共享態(tài)寫命中操作,若查詢的被動(dòng)處理器的標(biāo)志副本中含有該寫命中操作的目標(biāo)地址有效標(biāo)志,則向?qū)?yīng)的被動(dòng)處理器發(fā)送使無效偵聽請(qǐng)求;若查詢的標(biāo)志副本中沒有該寫命中操作的目標(biāo)地址有效標(biāo)志,則不向?qū)?yīng)的處理器發(fā)送任何偵聽請(qǐng)求;2)主動(dòng)處理器發(fā)出寫缺失操作,若查詢到一個(gè)或一個(gè)以上的被動(dòng)處理器的標(biāo)志副本陣列含有該寫缺失的目標(biāo)地址有效標(biāo)志選中其中一個(gè)被動(dòng)處理器稱為幸運(yùn)處理器,如果是寫不分配的一級(jí)高速緩存,向該幸運(yùn)處理器發(fā)送寫缺失直傳偵聽請(qǐng)求,如果是寫分配的一級(jí)高速緩存,向該幸運(yùn)處理器發(fā)送讀數(shù)據(jù)直傳和使無效偵聽請(qǐng)求;對(duì)未選中的標(biāo)志副本中含有目標(biāo)地址有效標(biāo)志的其他被動(dòng)處理器發(fā)送使無效偵聽請(qǐng)求;對(duì)標(biāo)志副本中不含目標(biāo)地址有效標(biāo)志的被動(dòng)處理器不發(fā)送任何偵聽請(qǐng)求;若沒有任何被動(dòng)處理器的標(biāo)志副本含有該寫缺失目標(biāo)地址有效標(biāo)志不向任何處理器發(fā)送偵聽請(qǐng)求;3)主動(dòng)處理器發(fā)出讀缺失操作,若查詢到一個(gè)或一個(gè)以上的被動(dòng)處理器的標(biāo)志副本陣列含有該讀缺失的目標(biāo)地址有效標(biāo)志選中其中一個(gè)被動(dòng)處理器,并向該處理器發(fā)送讀數(shù)據(jù)直傳偵聽請(qǐng)求;對(duì)未選中的標(biāo)志副本中含有目標(biāo)地址有效標(biāo)志的其他被動(dòng)處理器不發(fā)送偵聽請(qǐng)求;對(duì)標(biāo)志副本中不含目標(biāo)地址有效標(biāo)志的被動(dòng)處理器也不發(fā)送偵聽請(qǐng)求;若沒有任何被動(dòng)處理器的標(biāo)志副本含有該寫缺失目標(biāo)地址有效標(biāo)志,不向任何處理器發(fā)送偵聽請(qǐng)求。 所述過濾操作既能維護(hù)寫不分配的一級(jí)高速緩存一致性,也能維護(hù)寫分配的一級(jí)高速緩存的一致性;分析單元要求各個(gè)處理器的一級(jí)高速緩存同時(shí)為寫分配方式,或者同時(shí)為寫不分配方式。對(duì)于每一個(gè)讀寫操作,在查詢標(biāo)志副本之后產(chǎn)生對(duì)各個(gè)標(biāo)志副本的更新請(qǐng)求;標(biāo)志副本更新請(qǐng)求和被動(dòng)處理器的偵聽請(qǐng)求同時(shí)產(chǎn)生。所述命令隊(duì)列接收分析單元得到的所有偵聽請(qǐng)求信息和標(biāo)志副本更新信息,所述偵聽請(qǐng)求信息和標(biāo)志副本更新信息合起來成為命令;所述命令隊(duì)列是一個(gè)先進(jìn)先出的隊(duì)列,每個(gè)命令到達(dá)隊(duì)列的頭部才能向被動(dòng)處理器發(fā)送有效的偵聽請(qǐng)求以及向標(biāo)志副本陣列發(fā)送更新請(qǐng)求;命令的更新請(qǐng)求和偵聽請(qǐng)求都被應(yīng)答之后,該命令從命令隊(duì)列中丟棄。該命令隊(duì)列頭部的命令向標(biāo)志副本發(fā)出更新請(qǐng)求,該更新請(qǐng)求獨(dú)立于讀寫請(qǐng)求仲裁器的查詢請(qǐng)求;若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給不同處理器的標(biāo)志副本,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給同一處理器標(biāo)志副本的不同塊,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給同一處理器標(biāo)志副本的相同塊,那么該更新請(qǐng)求被響應(yīng),該查詢請(qǐng)求稍后得到響應(yīng)。本發(fā)明的技術(shù)構(gòu)思為在標(biāo)志副本的組織方式上進(jìn)行了優(yōu)化,對(duì)每個(gè)處理器的標(biāo)志副本陣列都分為兩個(gè)或兩個(gè)以上的塊。這使得在對(duì)標(biāo)志副本的查詢和更新落于不同塊的時(shí)候,標(biāo)志副本能在每個(gè)時(shí)鐘周期同時(shí)處理兩個(gè)或者兩個(gè)以上的讀寫操作,從而加快了多核之間的通信、提高了整個(gè)系統(tǒng)的性能。采用集中式的標(biāo)志副本陣列,每個(gè)讀寫操作對(duì)所有標(biāo)志副本的查詢進(jìn)行統(tǒng)一管理,得到的結(jié)果也在集中的單元進(jìn)行分析,然后過濾掉不必要的偵聽操作,即每個(gè)讀寫操作可能對(duì)某些被動(dòng)處理器不發(fā)送偵聽請(qǐng)求。該改進(jìn)減少了多核之間不必要的通信,同樣提高了整個(gè)多核系統(tǒng)的性能。本發(fā)明的有益效果為提升多核中各處理器之間的通信效率、提高整個(gè)多核的性倉(cāng)泛。
圖I舉例說明本發(fā)明實(shí)施例多核高效一致性偵聽過濾裝置的架構(gòu)示意圖,所述裝置實(shí)現(xiàn)對(duì)處理器偵聽請(qǐng)求的過濾。圖2詳細(xì)說明本發(fā)明實(shí)施例提供的集中式標(biāo)志副本陣列的組織方式和訪問控制。圖3詳細(xì)說明本發(fā)明實(shí)施例提供的讀寫請(qǐng)求仲裁器的結(jié)構(gòu)。圖4a-圖4c詳細(xì)說明本發(fā)明實(shí)施例提供的分析單元產(chǎn)生命令的流程。圖5詳細(xì)說明本發(fā)明實(shí)施例提供的命令隊(duì)列中命令到處理流程。
具體實(shí)施例方式附圖通過舉例的方式來說明本發(fā)明,但是本發(fā)明不由附圖中的實(shí)現(xiàn)方式來限定。接下來的描述將詳細(xì)說明一種對(duì)稱多核的高效一致性偵聽過濾裝置的實(shí)施例。后面的描述細(xì)節(jié)都是為了更好的理解本發(fā)明,然而,本領(lǐng)域的技術(shù)人員在實(shí)施本發(fā)明的時(shí)候可以沒有 這些具體細(xì)節(jié)。一種對(duì)稱多核的高效一致性偵聽過濾裝置,包括集中式的多個(gè)處理器核一級(jí)高速緩存的標(biāo)志副本陣列該集中式的一級(jí)高速緩存標(biāo)志副本陣列包含所有處理器的標(biāo)志副本陣列,一個(gè)處理器對(duì)應(yīng)一個(gè)標(biāo)志副本陣列;其中,各個(gè)處理器的標(biāo)志副本陣列劃分區(qū)塊,即任一處理器的標(biāo)志副本陣列分成兩個(gè)或兩個(gè)以上的塊,每個(gè)塊使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的塊可以同時(shí)被訪問;任一處理器的標(biāo)志副本陣列可供其他處理器的讀寫操作訪問,對(duì)不同處理器的標(biāo)志副本陣列使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的標(biāo)志副本陣列可以同時(shí)被訪問;其中,標(biāo)志副本陣列的查詢請(qǐng)求和更新請(qǐng)求可以同時(shí)被接受;若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是不同的處理器標(biāo)志副本,該查詢請(qǐng)求和更新請(qǐng)求同時(shí)被執(zhí)行;若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是一個(gè)處理器標(biāo)志副本的不同區(qū)塊,該查詢請(qǐng)求和更新請(qǐng)求也同時(shí)被執(zhí)行。讀寫請(qǐng)求仲裁器用于仲裁并且接收從各個(gè)處理器發(fā)出的一致性讀寫操作請(qǐng)求,并且向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求;對(duì)于從各個(gè)處理器發(fā)出的一致性讀寫操作進(jìn)行仲裁,同時(shí)仲裁的讀寫操作請(qǐng)求個(gè)數(shù)最多為處理器的總個(gè)數(shù);采用令牌專遞對(duì)各個(gè)處理器的讀寫操作請(qǐng)求進(jìn)行仲裁,得到令牌的處理器的讀寫操作請(qǐng)求被接收,沒有得到令牌的處理器的讀寫操作請(qǐng)求不被接收;對(duì)于所有處理器,每一時(shí)刻有且只有一個(gè)處理器得到令牌;經(jīng)過仲裁器仲裁之后的讀寫操作向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求;其中,當(dāng)前查詢請(qǐng)求只發(fā)給被動(dòng)處理器的標(biāo)志副本陣列,被動(dòng)處理器是指除了該查詢操作所對(duì)應(yīng)的讀寫操作的發(fā)起者之外的所有處理器,發(fā)起者是主動(dòng)處理器,每次讀寫操作的主動(dòng)處理器只有一個(gè)并且是當(dāng)前一致性讀寫操作的發(fā)起者;其中,一致性讀寫操作包括各個(gè)處理器發(fā)出的所有影響高速緩存一致性的讀寫操作,具體為共享態(tài)寫命中、寫缺失和讀缺失;各個(gè)處理器中一致性讀寫操作的目標(biāo)地址的數(shù)據(jù)副本是從主存中讀取的數(shù)據(jù),保存于處理器的一級(jí)高速緩存中,該數(shù)據(jù)副本有四種狀態(tài),具體為無效態(tài)、共享態(tài)、獨(dú)占干凈態(tài)和獨(dú)占修改態(tài);但是,所述數(shù)據(jù)副本的狀態(tài)包含但不局限于四種狀態(tài);所述數(shù)據(jù)副本狀態(tài)包含但不局限于標(biāo)準(zhǔn)MESI協(xié)議的各種狀態(tài)。所述分析單元用于分析標(biāo)志副本的查詢結(jié)果,產(chǎn)生相應(yīng)的命令,并且將命令發(fā)送給命令隊(duì)列;接收讀寫操作請(qǐng)求對(duì)標(biāo)志副本陣列查詢后的結(jié)果,按照讀寫請(qǐng)求類型和查詢結(jié)果進(jìn)行分析;分析得到的命令包含所有標(biāo)志副本更新的信息,還包含向各個(gè)被動(dòng)處理器發(fā)送的偵聽請(qǐng)求;其中,偵聽請(qǐng)求既適用于寫分配的一級(jí)高速緩存一致性維護(hù),也適用于寫不分配的一級(jí)高速緩存一致性維護(hù);有三種偵聽請(qǐng)求,它們具體為使無效、寫缺失直傳和讀數(shù)據(jù)直傳;這些偵聽請(qǐng)求只發(fā)送給被動(dòng)處理器;分析單元對(duì)于不必要的偵聽操作進(jìn)行過濾。所述命令隊(duì)列接收分析單元得到的所有偵聽請(qǐng)求信息和標(biāo)志副本更新信息,這些偵聽請(qǐng)求信息和標(biāo)志副本更新信息合起來成為命令;該隊(duì)列是一個(gè)先進(jìn)先出的隊(duì)列,每個(gè)命令到達(dá)隊(duì)列的頭部才能向被動(dòng)處理器發(fā)送有效的偵聽請(qǐng)求以及向標(biāo)志副本陣列發(fā)送更新請(qǐng)求;命令的更新請(qǐng)求和偵聽請(qǐng)求都被應(yīng)答之后,該命令從隊(duì)列中丟棄。其中,該命令隊(duì)列頭部的命令向標(biāo)志副本發(fā)出更新請(qǐng)求,該更新請(qǐng)求獨(dú)立于讀寫請(qǐng)求仲裁器的查詢請(qǐng)求;若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給不同處理器的標(biāo)志副本,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給同一處理器標(biāo)志副本的不同塊,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給 同一處理器標(biāo)志副本的相同塊,那么該更新請(qǐng)求被響應(yīng),該查詢請(qǐng)求稍后得到響應(yīng)。舉例說明了一個(gè)四核處理器系統(tǒng)使用本發(fā)明裝置對(duì)一致性偵聽操作的過濾,但是,本發(fā)明實(shí)施例適用的多核處理器包括而不局限于四核處理器。圖I描繪了整個(gè)一致性偵聽過濾裝置10的架構(gòu),如圖中虛線所包括的內(nèi)容。虛線框外的左邊是多核處理器組60,這里以四核為例,其余多核也一樣可以按此圖所示方式組織架構(gòu)。整個(gè)過濾裝置的工作起始于處理器組60通過讀寫操作請(qǐng)求線11向該一致性偵聽過濾裝置10發(fā)起讀寫操作的請(qǐng)求。偵聽裝置內(nèi)部的讀寫請(qǐng)求仲裁器30接收讀寫操作請(qǐng)求線11上發(fā)過來的讀寫操作,經(jīng)過該仲裁器的仲裁,被允許的讀寫操作向集中式的標(biāo)志副本整列20發(fā)起查詢請(qǐng)求。集中式的標(biāo)志副本陣列20通過查詢請(qǐng)求線12接收到查詢請(qǐng)求后,查看該讀寫操作目標(biāo)地址的標(biāo)志在各個(gè)處理器的標(biāo)志副本中的狀態(tài)。查看之后的結(jié)果通過查詢結(jié)果線13傳遞給分析單元40。分析單元40接收查詢結(jié)果線13發(fā)過來的信息,然后按照分析單元內(nèi)部的邏輯,依據(jù)讀寫操作的類型以及目標(biāo)地址標(biāo)志在各個(gè)處理器標(biāo)志副本中的狀態(tài)來得到命令。該命令包括了給集中式標(biāo)志副本陣列20的更新信息和給被動(dòng)處理器的偵聽信息。這些信息通過命令線14發(fā)送給命令隊(duì)列50。命令隊(duì)列50暫存分析單元40通過命令線14發(fā)送過來的命令,等到命令到達(dá)了該隊(duì)列的隊(duì)頭,那么該命令被發(fā)送出去。命令隊(duì)列50通過更新請(qǐng)求線15向集中式的標(biāo)志副本陣列20發(fā)送更新操作;通過偵聽請(qǐng)求線16向被動(dòng)處理器發(fā)送偵聽請(qǐng)求。處理器接收到了偵聽請(qǐng)求,并且相應(yīng)的處理操作完成之后,它會(huì)通過應(yīng)答線向命令隊(duì)列50發(fā)回一個(gè)應(yīng)答信號(hào)(ACK)。命令隊(duì)列接收到ACK并且更新完了標(biāo)志副本陣列中的相應(yīng)標(biāo)志副本之后,該命令完成并被丟棄。一致性過濾裝置處理一個(gè)讀寫操作請(qǐng)求的整個(gè)過程如上所述,其中包含了產(chǎn)生并且過濾偵聽操作的步驟。該過濾操作能避免冗余的偵聽操作,使得多核之間的通信效率更聞。首先看圖2,它描繪了集中式的標(biāo)志副本陣列20的詳細(xì)的組織結(jié)構(gòu),還描繪了該標(biāo)志副本陣列的控制邏輯。其中,標(biāo)志副本的組織方式中,每一個(gè)處理器的標(biāo)志副本陣列含有兩個(gè)或者兩個(gè)以上的區(qū)塊,本實(shí)例以兩個(gè)區(qū)塊為例,但是本發(fā)明的實(shí)現(xiàn)不局限于兩個(gè)區(qū)塊。集中式的標(biāo)志副本陣列20的組織方式如圖2中所示,包含各個(gè)處理器(本例中一共四個(gè)處理器)的標(biāo)志副本陣列21a-21d。其中每個(gè)標(biāo)志副本陣列又分為多個(gè)塊(本例中分為兩個(gè)塊),如標(biāo)志副本陣列21a(陣列O)分為塊O和塊I。對(duì)于每個(gè)標(biāo)志副本陣列21a_21d,它們使用獨(dú)立的控制/寫數(shù)據(jù)信號(hào)組22a-22d和讀數(shù)據(jù)信號(hào)組{28a,28b}、{28c,28d}、{28e, 28f}以及{28g,28h},其中{}中的信號(hào)是同一個(gè)標(biāo)志副本陣列的讀數(shù)據(jù)信號(hào),例如{28a, 28b}是標(biāo)志副本陣列21a (陣列O)的讀數(shù)據(jù)信號(hào)。進(jìn)一步的,每個(gè)標(biāo)志副本陣列中的每個(gè)塊也使用獨(dú)立的控制/寫數(shù)據(jù)信號(hào) 23a-23h和讀數(shù)據(jù)信號(hào)28a-28h。例如,陣列O的塊O使用的控制/寫數(shù)據(jù)信號(hào)是23a,讀數(shù)據(jù)信號(hào)是28a ;陣列O塊I使用的控制/寫數(shù)據(jù)信號(hào)是23b,讀數(shù)據(jù)信號(hào)是28b。集中式的標(biāo)志副本陣列20的控制邏輯由一組帶優(yōu)先級(jí)的選擇器(MUX)和反選器(DMUX)維護(hù)。選擇器26和反選器25、反選器組24 (24a_24d)用來控制查詢請(qǐng)求和更新請(qǐng)求到各標(biāo)志副本陣列塊的分配,其中更新請(qǐng)求還包含將要寫入標(biāo)志副本陣列塊的數(shù)據(jù)。選擇器27用來控制從查詢請(qǐng)求讀出來的數(shù)據(jù)中選出正確的數(shù)據(jù)發(fā)送給查詢結(jié)果線13。如圖2中所示,選擇器26從查詢請(qǐng)求線12和更新請(qǐng)求線15中選擇一個(gè)或者兩個(gè)請(qǐng)求,如果該兩個(gè)請(qǐng)求訪問不同的陣列塊,那么兩個(gè)請(qǐng)求同時(shí)被相應(yīng);如果該兩個(gè)請(qǐng)求訪問同一個(gè)陣列塊1)如果查詢請(qǐng)求和更新請(qǐng)求有且只有一個(gè)有效,那么該有效請(qǐng)求被選中;
2)如果查詢和更新請(qǐng)求同時(shí)有效,那么更新請(qǐng)求的優(yōu)先級(jí)較高,于是更新請(qǐng)求被響應(yīng);3)如果查詢請(qǐng)求和更新請(qǐng)求同時(shí)無效,那么不需要選擇任何請(qǐng)求。經(jīng)過選擇器26得到的請(qǐng)求發(fā)送給反選器25 :若選擇器26出來的是查詢請(qǐng)求,那么反選器25將該請(qǐng)求同時(shí)發(fā)送給所有被動(dòng)處理器(本例中每個(gè)讀寫操作有三個(gè)被動(dòng)處理器和一個(gè)主動(dòng)處理器),而不發(fā)送給主動(dòng)處理器,因?yàn)橹鲃?dòng)處理器發(fā)出讀寫操作請(qǐng)求之前已經(jīng)查詢好了自身的標(biāo)志及其狀態(tài);若選擇器26出來的是更新請(qǐng)求,那么該請(qǐng)求只發(fā)送給目的標(biāo)志副本,每個(gè)更新請(qǐng)求只有一個(gè)目的標(biāo)志副本,因?yàn)楦抡?qǐng)求寫入各個(gè)標(biāo)志副本的寫數(shù)據(jù)可能不同,所以這些標(biāo)志副本不能同時(shí)更新。經(jīng)過反選器25得到的信號(hào)22a_22d發(fā)送給反選器組24,反選器組24中每個(gè)反選器對(duì)應(yīng)一個(gè)標(biāo)志副本陣列,如反選器24a對(duì)應(yīng)于標(biāo)志副本陣列21a。反選器24a_24d通過讀寫請(qǐng)求的最地址低位選擇相應(yīng)陣列塊,每個(gè)塊對(duì)應(yīng)的控制/寫數(shù)據(jù)信號(hào)23a-23h也隨之產(chǎn)生。對(duì)于查詢請(qǐng)求,每個(gè)被動(dòng)處理器還要返回被查詢的標(biāo)志及其狀態(tài),每個(gè)標(biāo)志副本陣列返回的結(jié)果在讀數(shù)據(jù)信號(hào)線28a或28b、28c或28d、28e或28f、28g或28h上。首先,選擇器27選出被動(dòng)處理器的結(jié)果,本例中被動(dòng)處理器有三對(duì)結(jié)果。然后,如反選器24 —樣按照低位地址進(jìn)行選擇,從這三對(duì)結(jié)果的每一對(duì)中選出一個(gè)結(jié)果,最后得到的三個(gè)查詢結(jié)果通過查詢結(jié)果線13發(fā)出去。如上述具體實(shí)現(xiàn)的描述,該形式下的標(biāo)志副本單元可以同時(shí)相應(yīng)處于不同標(biāo)志副本區(qū)塊的查詢請(qǐng)求和更新請(qǐng)求,減少了查詢請(qǐng)求和更新請(qǐng)求之間的沖突,加速了整個(gè)系統(tǒng)中多核之間的通信,從而提高了整個(gè)多核處理器系統(tǒng)的性能。
其次看圖3,該圖描繪了讀寫請(qǐng)求仲裁器30的具體結(jié)構(gòu)。在具體的實(shí)施中,該仲裁器通過讀寫請(qǐng)求線Ila-Ild接收從各個(gè)處理器發(fā)起的一致性讀寫操作,每個(gè)處理器對(duì)應(yīng)一個(gè)讀寫請(qǐng)求線(本例中為四個(gè))。這些一致性讀寫請(qǐng)求包括 共享態(tài)寫命中處理器發(fā)出的寫操作;在其一級(jí)高速緩存中含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫命中;并且,其他處理器的一級(jí)高速緩存中也包含該讀寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即處于共享態(tài); 寫缺失處理器發(fā)出的寫操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫缺失; 讀缺失處理器發(fā)出的讀操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即讀缺失。處理器的一級(jí)高速緩存中保存各讀寫操作的目標(biāo)地址的數(shù)據(jù)副本,該數(shù)據(jù)副本通過其標(biāo)志和狀態(tài)位來確定數(shù)據(jù)副本的狀態(tài),這些狀態(tài)包括 無效態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中無效或者不存在; 共享態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且數(shù)據(jù)副本在其他一個(gè)或者一個(gè)以上處理器的一級(jí)高速緩存中也存在且有效; 獨(dú)占干凈態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效;并且該數(shù)據(jù)副本和主存中的數(shù)據(jù)一樣;并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效; 獨(dú)占修改態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效;并且該數(shù)據(jù)副本比主存中的數(shù)據(jù)副本更新,即被修改過;并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效。其中,獨(dú)占干凈態(tài)和獨(dú)占修改態(tài)都是獨(dú)占態(tài),該狀態(tài)下的目標(biāo)地址的數(shù)據(jù)副本僅存在于一個(gè)處理器的一級(jí)高速緩存中。讀寫請(qǐng)求仲裁器30通過令牌傳遞的方式對(duì)來自各個(gè)處理器的讀寫請(qǐng)求進(jìn)行仲裁,因此仲裁器包含一個(gè)令牌傳遞裝置32。每一時(shí)刻,在讀寫請(qǐng)求線Ila-Ild上任一讀寫請(qǐng)求有效且查詢請(qǐng)求12被允許的情況下,令牌將傳遞一次。令牌按循環(huán)方式傳遞,處理器P0-P3輪流得到令牌,按P0->PI->P2->p3->P0…的方式循環(huán)。例如,圖中所示當(dāng)前處理器P3得到令牌,那么P3的讀寫請(qǐng)求被接收,之后令牌傳遞給PO,即下一時(shí)刻PO的讀寫請(qǐng)求被接收。令牌傳遞裝置32通過控制信號(hào)33來控制選擇器(MUX)31,選擇器31從所有讀寫請(qǐng)求中選出一個(gè),這個(gè)被選中的讀寫請(qǐng)求被發(fā)送到查詢請(qǐng)求線12上,從而去向集中式的標(biāo)志副本陣列發(fā)起查詢請(qǐng)求。集中式的標(biāo)志副本響應(yīng)了查詢請(qǐng)求之后,讀取各被動(dòng)處理器的標(biāo)志和狀態(tài),這些讀取的結(jié)果被發(fā)送給分析單元。分析單元分析后得到的偵聽請(qǐng)求包括a)使無效該偵聽請(qǐng)求要求被動(dòng)處理器將被動(dòng)處理器自身一級(jí)高速緩存中的數(shù)據(jù)副本去除,即進(jìn)入無效態(tài);b)寫缺失直傳該偵聽請(qǐng)求要求被動(dòng)處理器接收主動(dòng)處理器一級(jí)高速緩存寫缺失的數(shù)據(jù),覆蓋被動(dòng)處理器的原數(shù)據(jù),并且被動(dòng)處理器進(jìn)入獨(dú)占修改態(tài);c)讀數(shù)據(jù)直傳該偵聽請(qǐng)求要求被動(dòng)處理器向主動(dòng)處理器提供主動(dòng)處理器一級(jí)高速緩存讀缺失的數(shù)據(jù),被動(dòng)處理器和主動(dòng)處理器都將進(jìn)入共享態(tài);接下來看分析單元對(duì)查詢結(jié)果的處理圖4a描述了分析單元40對(duì)共享態(tài)寫命中操作及其查詢結(jié)果的具體分析過程,最后為每一個(gè)被動(dòng)處理器得到相應(yīng)的命令。首先,當(dāng)前進(jìn)行查詢的是一個(gè)共享態(tài)寫命中41,然后通過對(duì)查詢結(jié)果的判定42,得到相應(yīng)的命令43a/43b——偵聽請(qǐng)求信息和更新請(qǐng)求信
肩、O具體過程為若查詢的被動(dòng)處理器Px(x表示0,I, 2,3)的標(biāo)志副本中含有該寫命中操作的目標(biāo)地址標(biāo)志且處于有效狀態(tài),則向?qū)?yīng)的被動(dòng)處理器發(fā)送使無效偵聽請(qǐng)求,并且發(fā)送標(biāo)志副本更新請(qǐng)求;若查詢的標(biāo)志副本中沒有該寫命中操作的目標(biāo)地址有效標(biāo)志,則不向?qū)?yīng)的處理器發(fā)送任何偵聽請(qǐng)求,也不發(fā)送標(biāo)志副本更新請(qǐng)求。圖4b描述了分析單元40對(duì)寫缺失操作及其查詢結(jié)果的具體分析過程,最后為每 一個(gè)被動(dòng)處理器得到相應(yīng)的命令。首先,當(dāng)前進(jìn)行查詢的是一個(gè)寫缺失44,然后通過對(duì)查詢結(jié)果的判定45a_45c,得到相應(yīng)的命令46a/46b/46c/46d。具體過程為若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列含有該寫缺失的目標(biāo)地址有效標(biāo)志,并且Px是被選中的幸運(yùn)處理器,并且是寫分配的一級(jí)高速緩存,那么向該處理器發(fā)送讀數(shù)據(jù)直傳和使無效偵聽請(qǐng)求;若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列含有該寫缺失的目標(biāo)地址有效標(biāo)志,并且Px是被選中的幸運(yùn)處理器,并且不是寫分配的一級(jí)高速緩存,那么向該處理器發(fā)送寫缺失直傳偵聽請(qǐng)求;若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列含有該寫缺失的目標(biāo)地址有效標(biāo)志,但是Px不是被選中的幸運(yùn)處理器,那么向該處理器發(fā)送使無效偵聽請(qǐng)求;若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列不含有該寫缺失的目標(biāo)地址有效標(biāo)志,那么不向該處理器發(fā)送任何偵聽請(qǐng)求。向每個(gè)處理器發(fā)送偵聽請(qǐng)求的同時(shí)還要向其標(biāo)志副本發(fā)送更新請(qǐng)求,如果不發(fā)送偵聽請(qǐng)求,那么也不需要發(fā)送標(biāo)志副本的更新請(qǐng)求。其中,選中的幸運(yùn)處理器是含有當(dāng)前讀寫操作目標(biāo)地址有效標(biāo)志的被動(dòng)處理器當(dāng)中的某一個(gè),而且,幸運(yùn)處理器只有一個(gè)。圖4c描述了分析單元40對(duì)讀缺失操作及其查詢結(jié)果的具體分析過程,最后為每一個(gè)被動(dòng)處理器得到相應(yīng)的命令。首先,當(dāng)前進(jìn)行查詢的是一個(gè)讀缺失47,然后通過對(duì)查詢結(jié)果的判定48a-48b,得到相應(yīng)的命令49a/49b。具體過程為若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列含有該讀缺失的目標(biāo)地址有效標(biāo)志,并且Px是被選中的幸運(yùn)處理器,那么向該處理器發(fā)送讀數(shù)據(jù)直傳偵聽請(qǐng)求,并向?qū)?yīng)的標(biāo)志副本發(fā)送更新請(qǐng)求;若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列含有該讀缺失的目標(biāo)地址有效標(biāo)志,但是Px不是被選中的幸運(yùn)處理器,那么不向該處理器發(fā)送偵聽請(qǐng)求,也不發(fā)送標(biāo)志副本更新請(qǐng)求;若查詢的被動(dòng)處理器Px的標(biāo)志副本陣列不含有該讀缺失的目標(biāo)地址有效標(biāo)志,那么不向該處理器發(fā)送任何偵聽請(qǐng)求和標(biāo)志副本更新請(qǐng)求。通過以上描述的過程,分析單元會(huì)將不必要的偵聽操作過濾掉,即任一讀寫請(qǐng)求不是向所有的被動(dòng)處理器發(fā)送偵聽請(qǐng)求以及向所有的被動(dòng)處理器的標(biāo)志副本發(fā)送更新請(qǐng)求。例如,處理器PO發(fā)起的共享態(tài)寫命中,查詢結(jié)果是Pl的標(biāo)志副本中含有該寫命中目標(biāo)地址的有效標(biāo)志,P2和P3的標(biāo)志副本中不含該寫命中目標(biāo)地址的有效標(biāo)志,那么分析單元分析得到的結(jié)果是只向Pl發(fā)起偵聽操作,而過濾掉了 P2和P3的偵聽操作一使無效。向P2和P3發(fā)起使無效偵聽操作的結(jié)果是一樣的,因?yàn)楫?dāng)前P2和P3已經(jīng)是不含目標(biāo)地址的有效標(biāo)志了。最后看圖5,讀寫操作經(jīng)過仲裁、查詢標(biāo)志副本和分析產(chǎn)生偵聽請(qǐng)求及標(biāo)志副本更新請(qǐng)求,最后這些偵聽請(qǐng)求信息和標(biāo)志副本更新信息作為命令寫入到命令隊(duì)列。如圖5所示,命令隊(duì)列含有若干個(gè)位置,本例中以四個(gè)位置為例,但是本發(fā)明不局限于四個(gè)位置的命令隊(duì)列。每個(gè)隊(duì)列的位置有三個(gè)狀態(tài)位置無效狀態(tài),即當(dāng)前位置沒有命令或者命令無效; 位置等待狀態(tài),即當(dāng)前位置在等待發(fā)出偵聽請(qǐng)求和更新請(qǐng)求;命令執(zhí)行狀態(tài),即偵聽操作和更新操作正在執(zhí)行。初始時(shí)刻,任何位置都處于無效狀態(tài)。等到命令線14上的命令寫到位置X (X表示0,1,2,3)的時(shí)候,位置X跳出無效狀態(tài)若位置X是隊(duì)頭,則位置X進(jìn)入命令執(zhí)行狀態(tài);若位置X不是隊(duì)頭,則位置X進(jìn)入等待狀態(tài)。等待狀態(tài)下,位置X —直判斷它是否在隊(duì)頭,如果不是在隊(duì)頭,它仍處于等待狀態(tài);如果排到了隊(duì)頭,等待狀態(tài)下的位置X進(jìn)入命令執(zhí)行狀態(tài)。命令執(zhí)行狀態(tài)下,當(dāng)前位置X通過偵聽請(qǐng)求線16向相應(yīng)的處理器發(fā)送偵聽請(qǐng)求,還通過更新請(qǐng)求線15向相應(yīng)的標(biāo)志副本陣列發(fā)送標(biāo)志副本更新請(qǐng)求。如果所有的偵聽已經(jīng)處理完,相應(yīng)的處理器通過應(yīng)答線17返回了所有應(yīng)答(ACK),并且,所有的標(biāo)志副本已經(jīng)更新完成,那么當(dāng)前位置X返回?zé)o效狀態(tài);如果任何一個(gè)ACK沒有返回或者使任何一個(gè)標(biāo)志副本沒有更新,那么當(dāng)前位置X停留在命令執(zhí)行狀態(tài)等待所有執(zhí)行完成。位置X從命令執(zhí)行狀態(tài)下返回?zé)o效狀態(tài)的時(shí)候,隊(duì)頭前進(jìn)一個(gè)位置,即接下來位置X+1是隊(duì)頭。循環(huán)狀態(tài)下,位置3返回?zé)o效狀態(tài)時(shí)下一個(gè)隊(duì)頭是位置O。因?yàn)槊恳粫r(shí)刻只有一個(gè)位置處于隊(duì)頭,所以只有一個(gè)位置處于命令執(zhí)行狀態(tài),于是偵聽請(qǐng)求線16和更新請(qǐng)求線15都是從隊(duì)頭的位置伸出去。由此,已經(jīng)公開了本發(fā)明的一種對(duì)稱多核的高效一致性偵聽過濾裝置。雖然已經(jīng)詳細(xì)描述并且給出了詳細(xì)附圖,但是本實(shí)施例是對(duì)具有更廣泛范圍的本發(fā)明的例子之一,而非對(duì)本發(fā)明的限制,并且本領(lǐng)域的技術(shù)人員依據(jù)本發(fā)明的思想在具體實(shí)施方式
和應(yīng)用范圍上均會(huì)有改變,因此,本發(fā)明不限于所展示以及所描述的具體結(jié)構(gòu)和裝置。
權(quán)利要求
1.一種對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述高效一致性偵聽過濾裝置包括 集中式的多個(gè)處理器核一級(jí)高速緩存的標(biāo)志副本陣列組合,所述標(biāo)志副本陣列組合包含所有處理器的標(biāo)志副本陣列,一個(gè)處理器對(duì)應(yīng)一個(gè)標(biāo)志副本陣列;各個(gè)處理器的標(biāo)志副本陣列劃分區(qū)塊,即任一處理器的標(biāo)志副本陣列分成兩個(gè)或兩個(gè)以上的塊,每個(gè)塊使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的塊允許同時(shí)被訪問;任一處理器的標(biāo)志副本陣列可供其他處理器的讀寫操作訪問,對(duì)不同處理器的標(biāo)志副本陣列使用獨(dú)立的控制信號(hào)和數(shù)據(jù)信號(hào),不同的標(biāo)志副本陣列允許同時(shí)被訪問; 讀寫請(qǐng)求仲裁器,用于接收和仲裁從各個(gè)處理器發(fā)出的一致性讀寫操作請(qǐng)求,并且向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求; 分析單元,用于分析標(biāo)志副本的查詢結(jié)果,產(chǎn)生相應(yīng)的命令,并且將命令發(fā)送給命令隊(duì)列; 命令隊(duì)列,用于暫存未完成的命令,并且按照命令向標(biāo)志副本發(fā)送更新請(qǐng)求,向處理器發(fā)送偵聽請(qǐng)求。
2.如權(quán)利要求I所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述標(biāo)志副本陣列的查詢請(qǐng)求和更新請(qǐng)求允許同時(shí)被接受;若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是不同的處理器標(biāo)志副本,該查詢請(qǐng)求和更新請(qǐng)求同時(shí)被執(zhí)行; 若查詢請(qǐng)求和更新請(qǐng)求的對(duì)象是同一個(gè)處理器標(biāo)志副本的不同區(qū)塊,該查詢請(qǐng)求和更新請(qǐng)求也同時(shí)被執(zhí)行。
3.如權(quán)利要求I或2所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述讀寫請(qǐng)求仲裁器中,對(duì)從各個(gè)處理器發(fā)出的一致性讀寫操作進(jìn)行仲裁,同時(shí)仲裁的讀寫操作請(qǐng)求最大個(gè)數(shù)為處理器的總個(gè)數(shù);采用令牌傳遞方式對(duì)各個(gè)處理器的讀寫操作請(qǐng)求進(jìn)行仲裁,得到令牌的處理器的讀寫操作請(qǐng)求被接收,沒有得到令牌的處理器的讀寫操作請(qǐng)求不被接收;對(duì)于所有處理器,每一時(shí)刻有且只有一個(gè)處理器得到令牌;經(jīng)過仲裁器仲裁之后的讀寫操作向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求。
4.如權(quán)利要求3所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述的一致性讀寫操作包括各個(gè)處理器發(fā)出的所有影響高速緩存一致性的讀寫操作;所述影響高速緩存一致性的讀寫操作包括 1)共享態(tài)寫命中處理器發(fā)出的寫操作;在其一級(jí)高速緩存中含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫命中;并且,其他處理器的一級(jí)高速緩存中也包含該讀寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即處于共享態(tài); 2)寫缺失處理器發(fā)出的寫操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即寫缺失; 3)讀缺失處理器發(fā)出的讀操作;在其一級(jí)高速緩存中不含有該寫操作的目標(biāo)地址的有效數(shù)據(jù)副本,即讀缺失。
5.如權(quán)利要求4所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于各個(gè)處理器中一致性讀寫操作的目標(biāo)地址的數(shù)據(jù)副本是從主存中讀取的數(shù)據(jù),保存于處理器的一級(jí)高速緩存中,所述數(shù)據(jù)副本有四種狀態(tài) I)無效態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中無效或者不存在;2)共享態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且數(shù)據(jù)副本在其他一個(gè)或者一個(gè)以上處理器的一級(jí)高速緩存中也存在且有效; 3)獨(dú)占干凈態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且該數(shù)據(jù)副本和主存中的數(shù)據(jù)一樣,并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效; 4)獨(dú)占修改態(tài)數(shù)據(jù)副本在當(dāng)前處理器的一級(jí)高速緩存中存在且有效,并且該數(shù)據(jù)副本比主存中的數(shù)據(jù)副本更新,即被修改過,并且該數(shù)據(jù)副本在其他任何處理器的一級(jí)高速緩存不存在或者無效。
6.如權(quán)利要求3所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于當(dāng)前查詢請(qǐng)求只發(fā)給被動(dòng)處理器的標(biāo)志副本陣列;其中,當(dāng)前發(fā)起讀寫操作請(qǐng)求處理器是主動(dòng)處理器,其他的處理器是被動(dòng)處理器,每次讀寫操作的主動(dòng)處理器有且只有一個(gè)并且是當(dāng)前讀寫操作的發(fā)起者。
7.如權(quán)利要求I或2所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述分析單元中,接收讀寫操作請(qǐng)求對(duì)標(biāo)志副本陣列查詢后的結(jié)果,按照讀寫請(qǐng)求類型和查詢結(jié)果進(jìn)行分析;分析得到的命令包含所有標(biāo)志副本的更新請(qǐng)求信息,還包含向各個(gè)被動(dòng)處理器發(fā)送的偵聽請(qǐng)求信息。
8.如權(quán)利要求7所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述偵聽請(qǐng)求既適用于寫分配的一級(jí)高速緩存一致性維護(hù),也適用于寫不分配的一級(jí)高速緩存一致性維護(hù);有三種偵聽請(qǐng)求,它們是 1)使無效該偵聽請(qǐng)求要求被動(dòng)處理器將被動(dòng)處理器自身一級(jí)高速緩存中的數(shù)據(jù)副本去除,即進(jìn)入無效態(tài); 2)寫缺失直傳該偵聽請(qǐng)求要求被動(dòng)處理器接收主動(dòng)處理器一級(jí)高速緩存寫缺失的數(shù)據(jù),覆蓋被動(dòng)處理器的原數(shù)據(jù),并且被動(dòng)處理器進(jìn)入獨(dú)占修改態(tài); 3)讀數(shù)據(jù)直傳該偵聽請(qǐng)求要求被動(dòng)處理器向主動(dòng)處理器提供主動(dòng)處理器一級(jí)高速緩存讀缺失的數(shù)據(jù),被動(dòng)處理器和主動(dòng)處理器都將進(jìn)入共享態(tài)。
9.如權(quán)利要求8所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述偵聽請(qǐng)求只發(fā)送給被動(dòng)處理器;分析單元對(duì)于不必要的偵聽操作進(jìn)行過濾,被過濾掉的偵聽操作不發(fā)起偵聽請(qǐng)求,該過濾操作如下 1)主動(dòng)處理器發(fā)出共享態(tài)寫命中操作,若查詢的被動(dòng)處理器的標(biāo)志副本中含有該寫命中操作的目標(biāo)地址有效標(biāo)志,則向?qū)?yīng)的被動(dòng)處理器發(fā)送使無效偵聽請(qǐng)求;若查詢的標(biāo)志副本中沒有該寫命中操作的目標(biāo)地址有效標(biāo)志,則不向?qū)?yīng)的處理器發(fā)送任何偵聽請(qǐng)求; 2)主動(dòng)處理器發(fā)出寫缺失操作,若查詢到一個(gè)或一個(gè)以上的被動(dòng)處理器的標(biāo)志副本陣列含有該寫缺失的目標(biāo)地址有效標(biāo)志選中其中一個(gè)被動(dòng)處理器稱為幸運(yùn)處理器,如果是寫不分配的一級(jí)高速緩存,向該幸運(yùn)處理器發(fā)送寫缺失直傳偵聽請(qǐng)求,如果是寫分配的一級(jí)高速緩存,向該幸運(yùn)處理器發(fā)送讀數(shù)據(jù)直傳和使無效偵聽請(qǐng)求;對(duì)未選中的標(biāo)志副本中含有目標(biāo)地址有效標(biāo)志的其他被動(dòng)處理器發(fā)送使無效偵聽請(qǐng)求;對(duì)標(biāo)志副本中不含目標(biāo)地址有效標(biāo)志的被動(dòng)處理器不發(fā)送任何偵聽請(qǐng)求; 若沒有任何被動(dòng)處理器的標(biāo)志副本含有該寫缺失目標(biāo)地址有效標(biāo)志不向任何處理器發(fā)送偵聽請(qǐng)求;3)主動(dòng)處理器發(fā)出讀缺失操作,若查詢到一個(gè)或一個(gè)以上的被動(dòng)處理器的標(biāo)志副本陣列含有該讀缺失的目標(biāo)地址有效標(biāo)志選中其中一個(gè)被動(dòng)處理器,并向該處理器發(fā)送讀數(shù)據(jù)直傳偵聽請(qǐng)求;對(duì)未選中的標(biāo)志副本中含有目標(biāo)地址有效標(biāo)志的其他被動(dòng)處理器不發(fā)送偵聽請(qǐng)求;對(duì)標(biāo)志副本中不含目標(biāo)地址有效標(biāo)志的被動(dòng)處理器也不發(fā)送偵聽請(qǐng)求; 若沒有任何被動(dòng)處理器的標(biāo)志副本含有該寫缺失目標(biāo)地址有效標(biāo)志,不向任何處理器發(fā)送偵聽請(qǐng)求。
10.如權(quán)利要求9所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述過濾操作既能維護(hù)寫不分配的一級(jí)高速緩存一致性,也能維護(hù)寫分配的一級(jí)高速緩存的一致性;分析單元要求各個(gè)處理器的一級(jí)高速緩存同時(shí)為寫分配方式,或者同時(shí)為寫不分配方式。
11.如權(quán)利要求7所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于對(duì)于每一個(gè)讀寫操作,在查詢標(biāo)志副本之后產(chǎn)生對(duì)各個(gè)標(biāo)志副本的更新請(qǐng)求;標(biāo)志副本更新請(qǐng)求和被動(dòng)處理器的偵聽請(qǐng)求同時(shí)產(chǎn)生。
12.如權(quán)利要求I或2所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于所述命令隊(duì)列接收分析單元得到的所有偵聽請(qǐng)求信息和標(biāo)志副本更新信息,所述偵聽請(qǐng)求信息和標(biāo)志副本更新信息合起來成為命令;所述命令隊(duì)列是一個(gè)先進(jìn)先出的隊(duì)列,每個(gè)命令到達(dá)隊(duì)列的頭部才能向被動(dòng)處理器發(fā)送有效的偵聽請(qǐng)求以及向標(biāo)志副本陣列發(fā)送更新請(qǐng)求;命令的更新請(qǐng)求和偵聽請(qǐng)求都被應(yīng)答之后,該命令從命令隊(duì)列中丟棄。
13.如權(quán)利要求12所述的對(duì)稱多核的高效一致性偵聽過濾裝置,其特征在于該命令隊(duì)列頭部的命令向標(biāo)志副本發(fā)出更新請(qǐng)求,該更新請(qǐng)求獨(dú)立于讀寫請(qǐng)求仲裁器的查詢請(qǐng)求;若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給不同處理器的標(biāo)志副本,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給同一處理器標(biāo)志副本的不同塊,那么該更新請(qǐng)求和查詢請(qǐng)求同時(shí)被響應(yīng);若該更新請(qǐng)求和查詢請(qǐng)求同時(shí)發(fā)給同一處理器標(biāo)志副本的相同塊,那么該更新請(qǐng)求被響應(yīng),該查詢請(qǐng)求稍后得到響應(yīng)。
全文摘要
一種對(duì)稱多核的高效一致性偵聽過濾裝置,包括集中式的多個(gè)處理器核一級(jí)高速緩存的標(biāo)志副本陣列組合,包含所有處理器的標(biāo)志副本陣列,一個(gè)處理器對(duì)應(yīng)一個(gè)標(biāo)志副本陣列;各個(gè)處理器的標(biāo)志副本陣列劃分區(qū)塊,即任一處理器的標(biāo)志副本陣列分成兩個(gè)或兩個(gè)以上的塊,不同的塊允許同時(shí)被訪問;讀寫請(qǐng)求仲裁器,用于接收和仲裁從各個(gè)處理器發(fā)出的一致性讀寫操作請(qǐng)求,并且向標(biāo)志副本陣列發(fā)起查詢請(qǐng)求;分析單元,用于分析標(biāo)志副本的查詢結(jié)果,產(chǎn)生相應(yīng)的命令,并且將命令發(fā)送給命令隊(duì)列;命令隊(duì)列,用于暫存未完成的命令,并且按照命令向標(biāo)志副本發(fā)送更新請(qǐng)求,向處理器發(fā)送偵聽請(qǐng)求。本發(fā)明提升多核中各處理器之間的通倩效率、提高整個(gè)多核的性能。
文檔編號(hào)G06F15/16GK102866923SQ20121032965
公開日2013年1月9日 申請(qǐng)日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者葛海通, 張曉旭, 黃凱, 嚴(yán)曉浪 申請(qǐng)人:杭州中天微系統(tǒng)有限公司