專利名稱:用于從地址高速緩存去除條目的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),尤其涉及用于使多個(gè)地址高速緩存條目無效的方法和設(shè)備。
背景技術(shù):
計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器可以包括表,該表包括輸入/輸出(I/O)地址與真實(shí)地址之間的映射,以允許輸入/輸出與真實(shí)地址之間的轉(zhuǎn)換。計(jì)算機(jī)系統(tǒng)可以包括用于本地存儲(chǔ)向該轉(zhuǎn)換表頻繁訪問的條目的地址高速緩存(例如轉(zhuǎn)換支援緩沖器(TLB))。
當(dāng)I/O操作完成時(shí),轉(zhuǎn)換表和TLB中的一個(gè)或更多條目可能需要被無效。用于使TLB條目無效的常規(guī)方法和設(shè)備成本不菲,因?yàn)樗鼈冇捎谝髮?duì)每個(gè)地址高速緩存條目進(jìn)行無效操作而不利地影響系統(tǒng)性能。此外,探視所有存儲(chǔ)器的另一方法對(duì)轉(zhuǎn)換表進(jìn)行寫入,于是使對(duì)應(yīng)的地址高速緩存條目無效則要求大量的芯片空間。因此,期望提供一種用于使地址高速緩存條目無效的改進(jìn)方法和設(shè)備。
發(fā)明內(nèi)容
在第一方面中,提供了第一方法,用于從地址高速緩存去除條目。該第一方法包括步驟(1)將數(shù)據(jù)寫到寄存器;以及(2)基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
在第二方面中,提供了第二方法,用于從地址高速緩存去除條目。該第一方法包括步驟(1)將數(shù)據(jù)寫到寄存器;以及(2)基于寫到寄存器的數(shù)據(jù)從數(shù)據(jù)高速緩存去除多個(gè)數(shù)據(jù)高速緩存條目。
在本發(fā)明的第三方面中,提供了第一設(shè)備,用于從地址高速緩存去除條目。該第一設(shè)備包括包括寄存器的邏輯,適于連接到地址高速緩存,而且還適于(1)存儲(chǔ)寫到寄存器的數(shù)據(jù)和(2)基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
在本發(fā)明的第四方面中,提供了第一系統(tǒng),用于從地址高速緩存去除條目。該第一系統(tǒng)包括(1)適于執(zhí)行軟件的處理器;(2)地址高速緩存;以及(3)用于從地址高速緩存去除條目的設(shè)備,具有包括寄存器的邏輯,連接到處理器和地址高速緩存。該系統(tǒng)適于(a)將數(shù)據(jù)寫到寄存器;以及(b)基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。根據(jù)本發(fā)明的這些和其它方面提供了許多其它方面。
根據(jù)如下的具體描述、所附權(quán)利要求書和附圖,將能夠完全明白本發(fā)明的其它特征和方面。
圖1是根據(jù)本發(fā)明實(shí)施例用于去除地址高速緩存條目的系統(tǒng)的框圖。
圖2是在根據(jù)本發(fā)明實(shí)施例用于去除地址高速緩存條目的系統(tǒng)中包括的地址高速緩存條目去除邏輯的框圖。
圖3圖示了根據(jù)本發(fā)明實(shí)施例的去除地址高速緩存條目的方法。
具體實(shí)施例方式
本發(fā)明提供了避免與常規(guī)系統(tǒng)相關(guān)聯(lián)的成本、用于去除(例如通過使之無效)地址高速緩存條目的方法和設(shè)備。具體來說,本發(fā)明提供了用于去除多個(gè)(例如連續(xù))地址高速緩存條目的方法和設(shè)備。寄存器可以用來存儲(chǔ)這樣的地址、計(jì)數(shù)和無效狀態(tài)位,該地址指示要去除的第一地址高速緩存條目,該計(jì)數(shù)指示要去除的地址高速緩存條目(例如包括第一地址高速緩存條目)的數(shù)目,該無效狀態(tài)位防止軟件(例如計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)(OS))使用正在去除的地址高速緩存條目。連接到該寄存器的邏輯可以用來隨需去除包括第一地址高速緩存條目、對(duì)應(yīng)于連續(xù)地址的若干地址高速緩存條目。一旦完成,該邏輯可以更新無效狀態(tài)位以向系統(tǒng)(例如向OS)指示地址高速緩存中條目的去除已完成。因此,后續(xù)執(zhí)行的I/O操作將不訪問包括不準(zhǔn)確數(shù)據(jù)的地址高速緩存條目。以此方式,本發(fā)明可以減少為去除地址高速緩存條目而需要的邏輯的數(shù)量,而且減少為去除地址高速緩存條目而必需的軟件命令的數(shù)量。因此,本發(fā)明提供了用于去除地址高速緩存條目但沒有與常規(guī)系統(tǒng)相關(guān)聯(lián)的成本的方法和設(shè)備。
圖1是根據(jù)本發(fā)明實(shí)施例、用于去除地址高速緩存條目的系統(tǒng)100的框圖。例如,系統(tǒng)100可以形成計(jì)算機(jī)或類似設(shè)備的一部分。參照?qǐng)D1,系統(tǒng)100可以包括適于經(jīng)由I/O總線106連接到I/O轉(zhuǎn)換邏輯104而且與該邏輯通信的一個(gè)或多個(gè)I/O設(shè)備102(僅示出一個(gè))。I/O轉(zhuǎn)換邏輯104可以存儲(chǔ)和/或取回用來將I/O地址轉(zhuǎn)換成真實(shí)地址的數(shù)據(jù)。I/O轉(zhuǎn)換邏輯104可以經(jīng)由系統(tǒng)總線110連接到存儲(chǔ)器108(例如DRAM或另一適當(dāng)?shù)拇鎯?chǔ)器)而且與該存儲(chǔ)器通信。存儲(chǔ)器108可以包括適于存儲(chǔ)I/O地址和與之相關(guān)聯(lián)的相應(yīng)真實(shí)地址的轉(zhuǎn)換表112。以此方式,轉(zhuǎn)換表112可以例如通過I/O設(shè)備102在存儲(chǔ)器訪問期間將I/O地址轉(zhuǎn)換成真實(shí)地址,反之亦然。因?yàn)檗D(zhuǎn)換表112可能很大(例如8MB)而且一個(gè)或多個(gè)I/O設(shè)備102可能經(jīng)由I/O轉(zhuǎn)換邏輯104頻繁地訪問轉(zhuǎn)換表112中的信息,所以I/O轉(zhuǎn)換邏輯104可包括適于本地存儲(chǔ)頻繁地訪問的轉(zhuǎn)換表?xiàng)l目的地址高速緩存114。因此,在執(zhí)行I/O操作時(shí),系統(tǒng)100可以從地址高速緩存114取回地址轉(zhuǎn)換數(shù)據(jù),而不是(例如經(jīng)由系統(tǒng)總線110)從轉(zhuǎn)換表112取回這樣的數(shù)據(jù)。地址高速緩存114可以包括目錄數(shù)組116和數(shù)據(jù)數(shù)組118。目錄數(shù)組116可以包括條目,這些條目存儲(chǔ)與數(shù)據(jù)數(shù)組118中的對(duì)應(yīng)地址高速緩存數(shù)據(jù)條目相關(guān)聯(lián)的地址高速緩存目錄信息。在一些實(shí)施例中,地址高速緩存114可以是轉(zhuǎn)換支援緩沖器(TLB)或另一適當(dāng)?shù)拇鎯?chǔ)區(qū)。在一個(gè)實(shí)施例中,地址高速緩存114可以包括六十四個(gè)條目(盡管可以使用更大或更小數(shù)目的條目)。
一旦I/O操作(例如I/O設(shè)備102進(jìn)行的存儲(chǔ)器訪問)得到執(zhí)行,可以從轉(zhuǎn)換表112和/或地址高速緩存114去除數(shù)據(jù)轉(zhuǎn)換條目。因此,系統(tǒng)100可以包括連接到I/O轉(zhuǎn)換邏輯104和/或包括于I/O轉(zhuǎn)換邏輯104中的地址高速緩存條目去除邏輯(下文稱為“ACER”)120。具體來說,ACER 120可以連接到地址高速緩存114的目錄數(shù)組116。ACER120可以適于基于例如通過軟件(比如系統(tǒng)OS)寫到ACER120的數(shù)據(jù)從地址高速緩存114去除一個(gè)或多個(gè)條目。例如,基于寫到ACER120的數(shù)據(jù),ACER 120可以去除對(duì)應(yīng)于連續(xù)地址的多個(gè)地址高速緩存條目。具體來說,ACER 120可以設(shè)置與地址高速緩存相關(guān)聯(lián)的位(例如有效位),使得該位指示了地址高速緩存條目無效。以此方式,系統(tǒng)100(例如由其執(zhí)行的軟件)可以從多個(gè)地址高速緩存114去除多個(gè)條目,但不使整個(gè)地址高速緩存114無效。此外,系統(tǒng)100可以利用單個(gè)指令(例如通過將數(shù)據(jù)寫到ACER 120)從地址高速緩存114去除多個(gè)條目,而不是利用多個(gè)指令分別來去除多個(gè)地址高速緩存條目。以此方式,ACER 120可以高效地去除地址高速緩存條目。下面參照?qǐng)D2描述ACER 120的細(xì)節(jié)。
圖2是在根據(jù)本發(fā)明實(shí)施例、用于去除地址高速緩存條目的系統(tǒng)中包括的地址高速緩存條目去除邏輯的框圖。參照?qǐng)D2,如前所述,ACER 120可以連接到地址高速緩存114的目錄數(shù)組116。ACER 120可以包括適于存儲(chǔ)數(shù)據(jù)的地址高速緩存條目無效寄存器(下文稱為“無效寄存器”)200。例如,無效寄存器200可以存儲(chǔ)第一數(shù)據(jù)202,該第一數(shù)據(jù)指示要從地址高速緩存114去除的第一地址高速緩存條目的地址。該地址的第一部分可以用來為地址高速緩存114建立索引,而且由此訪問地址高速緩存條目,而該地址的第二部分可以用來確定所訪問的地址高速緩存條目是否匹配于第一數(shù)據(jù)202的第二部分所標(biāo)識(shí)的條目。無效寄存器200可以存儲(chǔ)第二數(shù)據(jù)204,該第二數(shù)據(jù)指示要從地址高速緩存去除的條目的數(shù)目。此外,無效寄存器200可以存儲(chǔ)第三數(shù)據(jù)206,該第三數(shù)據(jù)指示地址高速緩存條目去除的狀態(tài)。以此方式,第三數(shù)據(jù)206可以用作為無效狀態(tài)位。
無效狀態(tài)寄存器200可以連接到第一多路復(fù)用器208,使得第一數(shù)據(jù)202的第一部分(例如地址)可以經(jīng)由第一輸入210通過第一多路復(fù)用器208來輸入。第一多路復(fù)用器208的輸出212可以連接到第二寄存器214,該第二寄存器適于存儲(chǔ)從第一多路復(fù)用器208輸出的數(shù)據(jù)(例如地址)。以此方式,第二寄存器214可以存儲(chǔ)要從地址高速緩存114去除的地址。第二寄存器214的輸出216可以經(jīng)由輸入220連接到遞增邏輯218。遞增邏輯218可以適于將輸入地址遞增到下一有效地址而且經(jīng)由輸出222輸出經(jīng)遞增的地址。
遞增邏輯218的輸出222可以連接到第一多路復(fù)用器208的第二輸入224,使得經(jīng)遞增的地址可以通過第一多路復(fù)用器208來輸入。第一多路復(fù)用器208可以適于有選擇地輸出通過第一多路復(fù)用器208的第一或第二輸入210、224輸入的數(shù)據(jù)。例如,在第一時(shí)間段(例如一個(gè)或多個(gè)時(shí)鐘周期)期間,第一多路復(fù)用器208可以初始地輸出第一數(shù)據(jù)202的第一部分。在后續(xù)時(shí)間段期間,第一多路復(fù)用器208可以輸出如下數(shù)據(jù)以形成第二地址高速緩存條目地址(例如經(jīng)遞增的地址),該數(shù)據(jù)代表通過遞增邏輯218遞增的第一地址高速緩存條目地址的第一部分。類似地,在后續(xù)時(shí)間段期間,第一多路復(fù)用器208可以輸出如下數(shù)據(jù)以形成第三地址高速緩存條目地址,該數(shù)據(jù)代表通過遞增邏輯218遞增的第二地址高速緩存條目地址的第一部分。
第二寄存器214的輸出216可以用作為對(duì)于地址高速緩存起114的目錄數(shù)組116的索引。例如,第二寄存器214的輸出216可以連接到目錄數(shù)組116的第一輸入226,而且用以基于這樣的輸入從目錄數(shù)組116輸出信息。可選地,第二寄存器214的輸出216可以經(jīng)由其輸入230連接到散列邏輯228。散列邏輯228的輸出232可以連接到目錄數(shù)組116的第一輸入226。散列邏輯228可以適于將通過散列邏輯228輸入的數(shù)據(jù)轉(zhuǎn)換為可以用來訪問目錄數(shù)組116的值(例如索引),而且經(jīng)由輸出232輸出這樣的值。為了將通過散列邏輯228輸入的數(shù)據(jù)轉(zhuǎn)換成索引,散列邏輯228可以執(zhí)行邏輯異或(XOR)運(yùn)算或另一適當(dāng)?shù)倪壿嬤\(yùn)算。
ACER 120可以包括連接到無效寄存器200和地址高速緩存114的比較邏輯234。具體來說,比較邏輯234的第一輸入236可以連接到無效寄存器200,使得第一地址的第二部分可以通過比較邏輯234來輸入。此外,比較邏輯234的附加輸入(例如第二和第三輸入238、240)可以連接到地址高速緩存114的對(duì)應(yīng)輸出242-244。比較邏輯234可以包括連接到地址高速緩存114(例如地址高速緩存114的目錄數(shù)組116)的對(duì)應(yīng)輸入(例如第二和第三輸入250、252)的一個(gè)或多個(gè)輸出(例如第一和第二輸出246、248)。比較邏輯234可以適于將經(jīng)由第一輸入236輸入的第一地址的第二部分與經(jīng)由第二和第三輸入238、240輸入的相應(yīng)數(shù)據(jù)(例如地址數(shù)據(jù))做比較。如果對(duì)應(yīng)于地址高速緩存條目的經(jīng)由第二或第三輸入238、240輸入的數(shù)據(jù)匹配于通過第一輸入236輸入的數(shù)據(jù),則比較邏輯234可以經(jīng)由對(duì)應(yīng)于匹配條目的輸出246、248將數(shù)據(jù)輸出到地址高速緩存114。這樣的數(shù)據(jù)可以用作為針對(duì)匹配條目的有效位的值,使得該有效位指示匹配地址高速緩存條目無效。以此方式,可以去除地址高速緩存條目。
ACER 120可以適于在從地址高速緩存114讀取數(shù)據(jù)、將從地址高速緩存114輸出的數(shù)據(jù)與第一數(shù)據(jù)202的第一部分做比較和/或?qū)?shù)據(jù)寫到地址高速緩存114時(shí)遞增通過第二寄存器214輸出的數(shù)據(jù)(盡管ACER 120可以更早或更遲地遞增通過第二寄存器214輸出的數(shù)據(jù))。
此外,無效寄存器200可以連接到第二多路復(fù)用器254,使得第二數(shù)據(jù)204可以經(jīng)由第一輸入256通過第二多路復(fù)用器254來輸入。第二多路復(fù)用器254的輸出258可以連接到第三寄存器260,該第三寄存器適于存儲(chǔ)從第二多路復(fù)用器254輸出的數(shù)據(jù)(例如指示要從地址高速緩存114去除的條目的數(shù)目的值)。第三寄存器260的輸出262可以經(jīng)由其輸入266連接到遞減邏輯264。遞減邏輯264可以適于遞減(例如減一)輸入值(例如指示要從地址高速緩存114去除的條目的數(shù)目的值),而且經(jīng)由輸出268輸出經(jīng)遞減的值。ACER 120可以適于在遞增通過第二寄存器214輸出的數(shù)據(jù)時(shí)遞減從第三寄存器260輸出的數(shù)據(jù)(雖然ACER 120可以更早或更遲地遞減從第三寄存器輸出的數(shù)據(jù))。
遞減邏輯264的輸出268可以連接到第二多路復(fù)用器254的第二輸入270,使得遞減的值可以通過第二多路復(fù)用器254來輸入。第二多路復(fù)用器254可以適于有選擇地輸出通過第二多路復(fù)用器254的第一或第二輸入256或257輸入的數(shù)據(jù)。例如,在第一時(shí)間段(例如一個(gè)或多個(gè)時(shí)鐘周期)期間,第二多路復(fù)用器254可以初始地輸出第二數(shù)據(jù)204。在后續(xù)時(shí)間段(例如第二時(shí)間段)期間,第二多路復(fù)用器254可以輸出代表經(jīng)減一的第二數(shù)據(jù)的數(shù)據(jù)。類似地,在后續(xù)時(shí)間段(例如第三時(shí)間段)期間,第二多路復(fù)用器254可以輸出代表經(jīng)減二的第二數(shù)據(jù)的數(shù)據(jù),依此類推。
第三寄存器260可以連接到無效狀態(tài)位設(shè)置邏輯272。具體來說,第三寄存器260的輸出262可以連接到無效狀態(tài)位設(shè)置邏輯272的輸入274。無效狀態(tài)位設(shè)置邏輯272可以檢測(cè)輸出262何時(shí)具有零值。無效狀態(tài)位設(shè)置邏輯272的輸出276可以連接到無效寄存器200,使得通過無效狀態(tài)位設(shè)置邏輯272輸出的數(shù)據(jù)(例如零值)可以更新第三數(shù)據(jù)206,以指示一個(gè)或多個(gè)地址高速緩存條目的去除已完成。
現(xiàn)在參照?qǐng)D1-2并且參照?qǐng)D3來描述用于去除地址高速緩存條目的系統(tǒng)的操作,圖3圖示了根據(jù)本發(fā)明實(shí)施例去除地址高速緩存條目的方法。參照?qǐng)D3,方法300在步驟302開始。在步驟304中,數(shù)據(jù)可以寫到寄存器。例如,系統(tǒng)100(例如由其執(zhí)行的軟件104)可以將數(shù)據(jù)寫到ACER 120的無效寄存器200。具體來說,軟件104可以將第一數(shù)據(jù)202寫到無效寄存器200,該第一數(shù)據(jù)指示要從地址高速緩存114去除的第一條目的地址。此外,系統(tǒng)100(例如由其執(zhí)行的軟件104)可以將第二數(shù)據(jù)204寫到無效寄存器200,該第二數(shù)據(jù)指示要從地址高速緩存114去除的條目的數(shù)目N。此外,系統(tǒng)100(例如由其執(zhí)行的軟件104)可以將第三數(shù)據(jù)206寫到無效寄存器200,該第三數(shù)據(jù)指示地址高速緩沖器條目去除的狀態(tài)而且由此用作為無效狀態(tài)位。盡管上面描述第一至第三數(shù)據(jù)202-206,但是更大或更小數(shù)量的和/或不同的數(shù)據(jù)可以寫到無效寄存器200。所有三種數(shù)據(jù)202-206可以作為一個(gè)操作來同時(shí)寫入(雖然數(shù)據(jù)202-206也可以在不同時(shí)間寫入)。
例如,在執(zhí)行I/O操作之后,系統(tǒng)100可能需要從轉(zhuǎn)換表112和/或地址高速緩存114去除(例如通過使之無效)一個(gè)或多個(gè)條目。因此,在第一時(shí)間段(例如一個(gè)或多個(gè)時(shí)鐘周期)期間,系統(tǒng)100可以將第一至第三數(shù)據(jù)202-206寫到無效寄存器200。第三數(shù)據(jù)206可以(例如向軟件104)指示一個(gè)或多個(gè)地址高速緩存條目的去除有待完成。
在步驟306中,多個(gè)地址高速緩存條目可以基于寫到寄存器的數(shù)據(jù)從地址高速緩存加以去除。寫到無效寄存器200的數(shù)據(jù)可以啟動(dòng)硬件序列以去除(例如通過無效)地址高速緩存條目。具體來說,基于寫到無效寄存器200的第一至第三數(shù)據(jù)202-206,ACER 120可以從地址高速緩存114去除一個(gè)或多個(gè)條目(例如通過使這樣的條目無效)。例如,寫到無效寄存器200的第一至第三數(shù)據(jù)202-206可以指示兩個(gè)條目(例如對(duì)應(yīng)于連續(xù)地址)要從在地址000A處的條目開始從地址高速緩存去除,而且可以指示一個(gè)或多個(gè)地址高速緩存條目的去除有待完成。因此,在第二時(shí)間段期間,ACER 120可以將第一數(shù)據(jù)202的第一部分(例如要從地址高速緩存114去除的第一條目的地址)從無效寄存器200輸出到第一多路復(fù)用器208。第一數(shù)據(jù)202的第一部分可以從第一多路復(fù)用器208輸出到第二寄存器214而且存儲(chǔ)于其中。
在第三時(shí)間段期間,第一數(shù)據(jù)202的第一部分可以用來訪問地址高速緩存114中的一個(gè)或多個(gè)條目。例如,第一數(shù)據(jù)202的第一部分可以從第二寄存器214輸出而且通過散列邏輯228來輸入?;诘谝粩?shù)據(jù)202的第一部分,散列邏輯228可以創(chuàng)建和輸出數(shù)據(jù)(例如索引)到地址高速緩存114,該數(shù)據(jù)可以用來訪問地址高速緩存114(例如其目錄數(shù)組116)。基于這樣的數(shù)據(jù),地址高速緩存114可以輸出對(duì)應(yīng)于一個(gè)或多個(gè)地址高速緩存114條目的數(shù)據(jù)。例如,如果地址高速緩存是2路組關(guān)聯(lián)高速緩存,則對(duì)應(yīng)于兩個(gè)條目的數(shù)據(jù)可以從地址高速緩存114輸出。類似地,如果地址高速緩存114是4路組關(guān)聯(lián)高速緩存,則對(duì)應(yīng)于四個(gè)條目的數(shù)據(jù)可以從地址高速緩存114輸出。對(duì)應(yīng)于條目的數(shù)據(jù)可以包括指示與該條目相關(guān)聯(lián)的地址的數(shù)據(jù)(例如標(biāo)記)和指示所訪問的條目是否有效的數(shù)據(jù)(例如有效位)。然而,對(duì)應(yīng)于條目的數(shù)據(jù)可以包括更大或更小數(shù)量的和/或不同的數(shù)據(jù)。例如,在一些實(shí)施例中,對(duì)應(yīng)于條目的數(shù)據(jù)可以包括指示所訪問的條目是否為“最近最少使用”(LRU)條目之一的數(shù)據(jù)(例如LRU位)。
與從地址高速緩存114輸出的條目對(duì)應(yīng)的數(shù)據(jù)可以通過比較邏輯234來輸入。此外,第一數(shù)據(jù)202的第二部分(例如第一地址)可以從無效寄存器200輸出而且通過比較邏輯234來輸入。比較邏輯234可以訪問在與從地址高速緩存114輸出的條目對(duì)應(yīng)的數(shù)據(jù)中包括的有效位。如果該有效位指示對(duì)應(yīng)于該條目的數(shù)據(jù)而且該條目因此有效,則比較邏輯234可以將指示與這樣的條目相關(guān)聯(lián)的地址的數(shù)據(jù)(例如標(biāo)記)與第一數(shù)據(jù)202的第二部分做比較。如果數(shù)據(jù)匹配,則比較邏輯234可以更新(例如寫)這樣的地址高速緩存條目的有效位以指示該條目無效。以此方式,該條目可以從地址高速緩存114去除??蛇x地,如果數(shù)據(jù)不匹配,則比較邏輯234不更新這樣的地址高速緩存條目的有效位。
此外,在第三時(shí)間段期間,遞增邏輯218可以對(duì)從第二寄存器214輸出、代表地址的一部分的數(shù)據(jù)202進(jìn)行更新,以形成代表下一地址(例如000B)的一部分的新數(shù)據(jù)。在第三時(shí)間段或后續(xù)時(shí)間段(例如第四時(shí)間段)期間,新數(shù)據(jù)可以通過第一多路復(fù)用器208來輸入和從該第一多路復(fù)用器輸出,以及通過第二寄存器214來輸入和從該第二寄存器輸出。在后續(xù)時(shí)間段期間,通過與前面描述的使用第一數(shù)據(jù)202的第一部分相類似的方式,新數(shù)據(jù)可以用來訪問而且可能去除(例如通過使之無效)地址高速緩存114的一個(gè)或多個(gè)條目。
此外,在第三時(shí)間段期間,為對(duì)從地址高速緩存114去除的條目的數(shù)目進(jìn)行計(jì)數(shù),無效寄存器200可以將代表要從高速緩存114去除的條目的數(shù)目的第二數(shù)據(jù)204輸出到第二多路復(fù)用器254,而且第二多路復(fù)用器254可以將第二數(shù)據(jù)204輸出到遞減邏輯(雖然這樣的數(shù)據(jù)可以更早或更遲地從第二多路復(fù)用器254和/或第三寄存器260輸出)。此外,第二數(shù)據(jù)204可以從第三寄存器260輸出到無效狀態(tài)位設(shè)置邏輯272,無效狀態(tài)位設(shè)置邏輯272可以據(jù)此更新用于指示地址高速緩存條目去除的狀態(tài)的第三數(shù)據(jù)206。具體來說,如果從第三寄存器260輸出的數(shù)據(jù)指示要從地址高速緩存114去除零條目,則無效狀態(tài)位設(shè)置邏輯272可以更新第三數(shù)據(jù)206以指示地址高速緩存條目去除已完成。
在第三時(shí)段期間(例如在第一數(shù)據(jù)202的第一部分(例如地址)用來從地址高速緩存114的對(duì)應(yīng)條目讀數(shù)據(jù)和/或?qū)?shù)據(jù)寫到地址高速緩存114的對(duì)應(yīng)條目時(shí)),遞減邏輯264可以將代表要從地址高速緩存114去除的條目的數(shù)目的第三數(shù)據(jù)206進(jìn)行減一,以形成要從地址高速緩存114去除的條目的新數(shù)目。在第三時(shí)間段或后續(xù)時(shí)間段(例如第四時(shí)間段)期間,要從地址高速緩存114去除的條目的新數(shù)目可以通過第二多路復(fù)用器254來輸入和從該第二多路復(fù)用器輸出,以及通過第三寄存器260來輸入和從該第三寄存器輸出到遞減邏輯和無效狀態(tài)位設(shè)置邏輯272。在后續(xù)時(shí)間段期間(例如在新數(shù)據(jù)可以用來訪問和可能去除地址高速緩存114的一個(gè)或多個(gè)條目時(shí)的時(shí)間段),遞減邏輯264可以如上所述把要從高速緩存114去除的條目的新數(shù)目減一。
上述過程可以重復(fù),直至無效狀態(tài)位設(shè)置邏輯272接收的要從地址高速緩存114去除的條目的新數(shù)目是預(yù)定數(shù)目(例如零)為止。一旦無效狀態(tài)位設(shè)置邏輯272接收的要從地址高速緩存114去除的條目的新數(shù)目是該預(yù)定數(shù)目(例如零),無效狀態(tài)位設(shè)置邏輯272可以更新第三數(shù)據(jù)206以指示地址高速緩存條目去除已完成。因此,系統(tǒng)100(例如由其執(zhí)行的軟件104)可以訪問第三數(shù)據(jù)206(例如通過輪詢無效寄存器200)而且確定地址高速緩存條目去除已完成。
隨后,執(zhí)行步驟308。在步驟308中,方法200結(jié)束。通過使用本方法和設(shè)備,多個(gè)條目(例如對(duì)應(yīng)于連續(xù)地址)可以從地址高速緩存114去除。系統(tǒng)100可以響應(yīng)于單個(gè)指令從地址高速緩存114去除多個(gè)條目。例如,系統(tǒng)100(例如由其執(zhí)行的軟件104)可以通過將第一至第三數(shù)據(jù)202-206寫到無效寄存器200來導(dǎo)致多個(gè)條目從地址高速緩存114去除。以此方式,本發(fā)明可以高效地從地址高速緩存114去除條目。具體來說,本發(fā)明的方法和設(shè)備可以比常規(guī)系統(tǒng)使用較少的指令來從地址高速緩存114去除多個(gè)條目。以此方式,本發(fā)明可以最小化為去除多個(gè)地址高速緩存條目而需要的指令的數(shù)目。此外,本方法和設(shè)備可以比常規(guī)系統(tǒng)利用較少的邏輯而且因此需要較少的芯片空間。因此,本發(fā)明可以優(yōu)化多個(gè)條目從地址高速緩存114的去除。
一旦一個(gè)或多個(gè)條目從地址高速緩存114去除,系統(tǒng)100可以執(zhí)行一個(gè)或多個(gè)I/O操作。在I/O操作期間,系統(tǒng)100可以訪問地址高速緩存114的一個(gè)或多個(gè)條目以執(zhí)行I/O地址轉(zhuǎn)換。因?yàn)橄到y(tǒng)100可以不訪問地址高速緩存114直至多個(gè)條目從中去除為止,所以要求I/O地址轉(zhuǎn)換的I/O訪問將不訪問包括不準(zhǔn)確(例如舊的)數(shù)據(jù)的地址高速緩存條目。
前面的描述僅揭示本發(fā)明的示例性實(shí)施例。落入本發(fā)明范圍之內(nèi)的對(duì)上面揭示的設(shè)備和方法的改型對(duì)于本領(lǐng)域普通技術(shù)人員將是明顯的。例如,在一些實(shí)施例中,無效寄存器200可以是存儲(chǔ)器映射(mmio)寄存器。從mmio寄存器的讀和對(duì)mmio寄存器的寫可能對(duì)系統(tǒng)操作引起顯著延遲。因?yàn)楸景l(fā)明可以減少系統(tǒng)100(例如由其執(zhí)行的軟件104)可能對(duì)無效寄存器200進(jìn)行寫入以去除多個(gè)地址高速緩存條目的次數(shù),所以本發(fā)明可以減少和/或消除這樣的延遲。因此,本發(fā)明可以對(duì)執(zhí)行大量I/O操作而且因此頻繁地添加條目和/或從地址高速緩存114去除條目的系統(tǒng)提供性能好處。
I/O地址轉(zhuǎn)換表112可以是單級(jí)表或多級(jí)表。例如,I/O地址轉(zhuǎn)換表112可以是包括I/O段表和I/O頁表的多級(jí)表。在一些實(shí)施例(比如參照?qǐng)D1-3上面描述的實(shí)施例)中,可以假設(shè)逐頁(例如4KB的數(shù)據(jù)塊)進(jìn)行轉(zhuǎn)換,而且對(duì)應(yīng)于頁編號(hào)的I/O地址的一部分可以標(biāo)識(shí)要去除(例如通過無效)的地址高速緩存條目。
在一些實(shí)施例中,當(dāng)軟件104在第三數(shù)據(jù)206指示地址高速緩存去除正在進(jìn)行中時(shí)試圖從無效寄存器200讀數(shù)據(jù)時(shí),ACER 120可以不輸出數(shù)據(jù)到軟件104。在支持異步分立事務(wù)的系統(tǒng)中,當(dāng)軟件104讀無效寄存器200時(shí),ACER 120可以不返回?cái)?shù)據(jù),直至地址高速緩存條目去除已完成。以此方式,本發(fā)明可以減少系統(tǒng)總線110上讀操作的數(shù)目。
此外,盡管參照地址高速緩存在上面描述本發(fā)明方法和設(shè)備,但是本發(fā)明方法和設(shè)備可以用于其它類型的高速緩存,比如數(shù)據(jù)高速緩存(例如用來使多個(gè)數(shù)據(jù)高速緩存條目無效)。因此,本發(fā)明可有助于更新其中以顯式指令(例如協(xié)處理器的軟件管理的高速緩存一致性)來完成數(shù)據(jù)高速緩存無效的系統(tǒng)。此外,在一些實(shí)施例中,地址高速緩存條目可以對(duì)應(yīng)于多個(gè)頁之一,其中每頁可以是多個(gè)尺寸之一。以此方式,用于高速緩存無效的本發(fā)明方法和設(shè)備能夠用于多個(gè)頁尺寸。例如,I/O地址轉(zhuǎn)換表112可以是包括I/O段表和I/O頁表的多級(jí)表。每個(gè)I/O段表?xiàng)l目可以指定I/O段中頁的尺寸,而I/O頁表?xiàng)l目可以無論頁尺寸是多少均包含相同數(shù)目的字節(jié)。因此,I/O頁表中的連續(xù)條目可以代表連續(xù)頁。因此,用于使連續(xù)地址無效的本發(fā)明方法和設(shè)備無論頁尺寸是多少均可正確工作。
因此,盡管結(jié)合其示例性實(shí)施例揭示本發(fā)明,但是應(yīng)當(dāng)理解其它實(shí)施例可以落入如所附權(quán)利要求限定的本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種從地址高速緩存去除條目的方法,包括將數(shù)據(jù)寫到寄存器;以及基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
2.根據(jù)權(quán)利要求1的方法,其中將數(shù)據(jù)寫到寄存器包括利用軟件將數(shù)據(jù)寫到寄存器;以及從地址高速緩存去除多個(gè)地址高速緩存條目包括利用硬件從地址高速緩存去除多個(gè)地址高速緩存條目。
3.根據(jù)權(quán)利要求1的方法,其中將數(shù)據(jù)寫到寄存器包括寫入指示要從地址高速緩存去除的第一地址高速緩存條目的地址、要從地址高速緩存去除的條目的數(shù)目N和用以指示地址高速緩存條目去除正在進(jìn)行中的地址高速緩存條目去除狀態(tài)位;以及基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目包括從要去除的第一地址高速緩存條目開始,從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的N個(gè)條目。
4.根據(jù)權(quán)利要求3的方法,還包括寫入地址高速緩存條目去除狀態(tài)位,以指示地址高速緩存條目去除已完成。
5.根據(jù)權(quán)利要求4的方法,還包括讀取地址高速緩存條目去除狀態(tài)位以確定地址高速緩存條目去除已完成;以及訪問地址高速緩存條目以執(zhí)行輸入/輸出(I/O)地址轉(zhuǎn)換。
6.根據(jù)權(quán)利要求1的方法,其中基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目包括基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的多個(gè)地址高速緩存條目。
7.根據(jù)權(quán)利要求1的方法,還包括在基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目之后,訪問地址高速緩存條目以執(zhí)行輸入/輸出(I/O)地址轉(zhuǎn)換。
8.一種用于從地址高速緩存去除條目的設(shè)備,包括包括寄存器的邏輯,適于連接到地址高速緩存,而且還適于存儲(chǔ)寫到寄存器的數(shù)據(jù);以及基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
9.根據(jù)權(quán)利要求8的設(shè)備,其中該邏輯還適于存儲(chǔ)通過軟件寫到寄存器的數(shù)據(jù);以及基于通過軟件寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
10.根據(jù)權(quán)利要求8的設(shè)備,其中該邏輯還適于存儲(chǔ)寫到寄存器的指示要從地址高速緩存去除的第一地址高速緩存條目的地址、要從地址高速緩存去除的條目的數(shù)目N和用以指示地址高速緩存條目去除正在進(jìn)行中的地址高速緩存條目去除狀態(tài)位;以及從要去除的第一地址高速緩存條目開始從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的N個(gè)條目。
11.根據(jù)權(quán)利要求10的設(shè)備,其中該邏輯還適于存儲(chǔ)寫到寄存器、用以指示地址高速緩存條目去除已完成的地址高速緩存條目去除狀態(tài)位。
12.根據(jù)權(quán)利要求8的設(shè)備,其中該邏輯還適于基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的多個(gè)地址高速緩存條目。
13.根據(jù)權(quán)利要求8的設(shè)備,其中該邏輯還適于在基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目之后,使能對(duì)地址高速緩存條目的訪問,使得輸入/輸出(I/O)地址轉(zhuǎn)換得以執(zhí)行。
14.一種用于從地址高速緩存去除條目的系統(tǒng),包括適于執(zhí)行軟件的處理器;地址高速緩存;以及用于從地址高速緩存去除條目的設(shè)備,具有包括寄存器的邏輯,連接到處理器和地址高速緩存;其中該系統(tǒng)適于將數(shù)據(jù)寫到寄存器;以及基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。
15.根據(jù)權(quán)利要求14的系統(tǒng),其中該系統(tǒng)還適于利用軟件將數(shù)據(jù)寫到寄存器;以及利用該邏輯從地址高速緩存去除多個(gè)地址高速緩存條目。
16.根據(jù)權(quán)利要求14的系統(tǒng),其中該系統(tǒng)還適于寫入指示要從地址高速緩存去除的第一地址高速緩存條目的地址、要從地址高速緩存去除的條目的數(shù)目N和用以指示地址高速緩存條目去除正在進(jìn)行中的地址高速緩存條目去除狀態(tài)位;以及從要去除的第一地址高速緩存條目開始從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的N個(gè)條目。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中該系統(tǒng)還適于寫入地址高速緩存條目去除狀態(tài)位以指示地址高速緩存條目去除已完成。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中該系統(tǒng)還適于讀取地址高速緩存條目去除狀態(tài)位以確定地址高速緩存條目去除已完成;以及訪問地址高速緩存條目以執(zhí)行輸入/輸出(I/O)地址轉(zhuǎn)換。
19.根據(jù)權(quán)利要求14的系統(tǒng),其中該系統(tǒng)還適于基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除對(duì)應(yīng)于連續(xù)地址的多個(gè)地址高速緩存條目。
20.根據(jù)權(quán)利要求14的系統(tǒng),其中該系統(tǒng)還適于在基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目之后,訪問地址高速緩存條目以執(zhí)行輸入/輸出(I/O)地址轉(zhuǎn)換。
21.根據(jù)權(quán)利要求1的方法,其中地址高速緩存條目對(duì)應(yīng)于多個(gè)頁之一,其中一個(gè)頁可以是多個(gè)尺寸之一。
22.一種從數(shù)據(jù)高速緩存去除條目的方法,包括將數(shù)據(jù)寫到寄存器;以及基于寫到寄存器的數(shù)據(jù)從數(shù)據(jù)高速緩存去除多個(gè)數(shù)據(jù)高速緩存條目。
23.根據(jù)權(quán)利要求22的方法,其中將數(shù)據(jù)寫到寄存器包括利用軟件將數(shù)據(jù)寫到寄存器;以及從數(shù)據(jù)高速緩存去除多個(gè)數(shù)據(jù)高速緩存條目包括利用硬件從數(shù)據(jù)高速緩存條目去除多個(gè)數(shù)據(jù)高速緩存條目。
24.根據(jù)權(quán)利要求22的方法,其中將數(shù)據(jù)寫到寄存器包括寫入指示要從數(shù)據(jù)高速緩存去除的第一數(shù)據(jù)高速緩存條目的地址、要從數(shù)據(jù)高速緩存去除的條目的數(shù)目N和用以指示數(shù)據(jù)高速緩存條目去除正在進(jìn)行中的數(shù)據(jù)高速緩存條目去除狀態(tài)位;以及基于寫到寄存器的數(shù)據(jù)從數(shù)據(jù)高速緩存去除多個(gè)數(shù)據(jù)高速緩存條目包括從要去除的第一數(shù)據(jù)高速緩存條目開始從數(shù)據(jù)高速緩存去除對(duì)應(yīng)于連續(xù)地址的N個(gè)條目。
25.根據(jù)權(quán)利要求24的方法,還包括寫入數(shù)據(jù)高速緩存條目去除狀態(tài)位以指示數(shù)據(jù)高速緩存條目去除已完成。
全文摘要
在第一方面中,提供了第一方法,用于從地址高速緩存去除條目。該第一方法包括步驟(1)將數(shù)據(jù)寫到寄存器;以及(2)基于寫到寄存器的數(shù)據(jù)從地址高速緩存去除多個(gè)地址高速緩存條目。提供了許多其它方面。
文檔編號(hào)G06F12/10GK1912854SQ20061010913
公開日2007年2月14日 申請(qǐng)日期2006年8月2日 優(yōu)先權(quán)日2005年8月11日
發(fā)明者安德魯·H.·沃特雷恩, 查德·B.·麥克布里德 申請(qǐng)人:國際商業(yè)機(jī)器公司