專利名稱:代理的驗證功能單元塊的制作方法
背景本發(fā)明涉及到對計算機系統(tǒng)中的微處理器和其他代理進(jìn)行的應(yīng)力測試。更具體而言,本發(fā)明涉及到在諸如微處理器這樣的代理中所提供的芯片(die)上驗證功能單元塊(″FUB″)。
在計算機系統(tǒng)中,″代理″可以包括使用公共總線接口協(xié)議通過公共通信總線與其他設(shè)備進(jìn)行通信的任一設(shè)備。典型的代理包括微處理器、存儲器控制器、橋接口電路、數(shù)字信號處理器以及專用集成電路。應(yīng)該理解的是,現(xiàn)代代理可以包括被裝配到單一集成電路中數(shù)百萬個晶體管。盡管電路設(shè)計在被裝配成可操作的集成電路之前進(jìn)行了仿真,但是為了確保該集成電路在運行中的實際行為與設(shè)計意圖一樣,驗證測試則是必須的。
驗證測試包括應(yīng)力測試。應(yīng)力測試涉及到將代理的運行條件推向它的性能極限,以便確定代理的實際行為與所仿真的預(yù)測匹配。然而,應(yīng)力測試是一個高代價而復(fù)雜的、并且其結(jié)果不確定的過程,因為常規(guī)地它是通過軟件控制的算法加以執(zhí)行的。當(dāng)集成電路被制造時,常規(guī)的應(yīng)力測試要求集成電路執(zhí)行被設(shè)計的程序指令,以便使代理處于預(yù)定的應(yīng)力條件。例如,軟件可以被寫成使兩個不同的處理器連續(xù)地讀取和修改相同存儲單元的數(shù)據(jù)。通過建立這兩個處理器之間的競爭,就為驗證人員觀察這些處理器竟?fàn)幭嗤瑪?shù)據(jù)片時它們的行為提供了機會。當(dāng)然,所希望的應(yīng)力事件發(fā)生的精確時刻是無法預(yù)測的。因此,診斷人員必須觀察數(shù)千次的總線事務(wù)來確定應(yīng)力事件發(fā)生的時間(某些時候,則是確定應(yīng)力事件是否發(fā)生)。不僅僅設(shè)計應(yīng)力測試軟件是高代價的,而且檢查和解釋應(yīng)力測試結(jié)果也是高代價的。
軟件控制算法根本不提供許多控制。為了測試外部總線邏輯,即在代理之中用于控制該代理至外部總線接口的電路的功能,理想情況是在該總線上維持一個可支撐級別的高通信量。軟件控制算法能夠通過操作系統(tǒng)和其他事件所進(jìn)行的場景切換(context switches)而被中斷。這樣就會降低該總線上的通信量級別。此外,還沒有任何方式能夠使軟件控制算法足夠快地對外部總線上的事件作出響應(yīng),以保證定時關(guān)系能夠被維持在總線上從而能測試某些總線事件。的確,存在許多驗證工程師希望去測試的事件而軟件根本無法檢測它們。所有這些問題都降低了通過軟件進(jìn)行驗證測試的效率。
因此,在本領(lǐng)域需要一種供在處理器或者其他代理中使用的改進(jìn)的驗證測試模式。
附圖簡述
圖1是在根據(jù)本發(fā)明的一個實施例的代理中的FUB的簡化框圖。
圖2是說明根據(jù)本發(fā)明的一個實施例的操作方法的流程圖。
圖3說明根據(jù)本發(fā)明的另一個實施例的代理。
圖4是根據(jù)本發(fā)明的一個實施例的驗證FUB的框圖。
圖5說明根據(jù)本發(fā)明的一個實施例所構(gòu)建的處理器的實施例。
圖6說明根據(jù)本發(fā)明的一個實施例的示范性計算機系統(tǒng)。
圖7說明根據(jù)本發(fā)明的另一個實施例的示范性計算機系統(tǒng)。
詳細(xì)描述本發(fā)明的實施例提供代理的驗證FUB,即一種在該代理之中的用于使計算機系統(tǒng)處于應(yīng)力條件的硬件系統(tǒng)。驗證FUB可以監(jiān)視被發(fā)送到外部總線上的事務(wù)并且響應(yīng)該被監(jiān)視的事務(wù)而生成其他事務(wù)。該驗證FUB可以是一個可編程元件,該元件的響應(yīng)可以由外部輸入加以規(guī)定。因此,該驗證FUB可以測試種類廣泛的系統(tǒng)事件。
圖1是在根據(jù)本發(fā)明的一個實施例的代理100中的FUB的簡化框圖。代理100可以包括核心110和被提供與外部總線130進(jìn)行通信的數(shù)據(jù)請求處理器120。數(shù)據(jù)請求處理器120可以通過外部總線控制器(″EBC″)140與總線130接口。EBC140管理外部總線130上的事務(wù)的進(jìn)度。核心110可以邊執(zhí)行程序指令邊讀取和修改數(shù)據(jù)。它可以生成至數(shù)據(jù)請求處理器120的數(shù)據(jù)請求,以便從系統(tǒng)存儲器(未示出)的預(yù)定存儲單元讀取數(shù)據(jù)或者將數(shù)據(jù)存儲到其中。
數(shù)據(jù)請求處理器120可以接收來自代理100之中的核心110和可能的其他源的數(shù)據(jù)請求。它對這些數(shù)據(jù)請求進(jìn)行解釋,并且如果為了完成該請求,該代理必須與其他代理進(jìn)行通信,則數(shù)據(jù)請求處理器120就對其做出響應(yīng)而生成外部總線事務(wù)。數(shù)據(jù)請求處理器120可以包括用于管理這些數(shù)據(jù)請求的各種隊列,并且可以與例如內(nèi)部高速緩存(未示出)這樣的其他FUB相接口,以便管理這些數(shù)據(jù)請求。在這方面,代理100的體系結(jié)構(gòu)和操作是周知的。
本發(fā)明的實施例可以將驗證FUB150引入到代理100之中。驗證FUB150可以耦合到EBC160以便觀察被發(fā)送到外部總線130上的事務(wù)。響應(yīng)預(yù)定的觸發(fā)條件,驗證FUB150可以為要被發(fā)送到外部總線130上的稱為″干擾性″總線事務(wù)的新事務(wù)生成數(shù)據(jù)。幾種不同類型的觸發(fā)條件是可能的。當(dāng)觀察到新的外部總線事務(wù)時,如果該新的事務(wù)的請求類型匹配預(yù)定類型,則可以生成干擾性事務(wù)。第一外部總線事務(wù)就是所說的″觸發(fā)″事務(wù)。可選地,所有外部總線事務(wù)(除了來自驗證FUB150的干擾性事務(wù)以外)都可以是觸發(fā)事務(wù)。在這種情形下,會為外部總線130上的每個事務(wù)而生成干擾性總線事務(wù)。
代理100可以包括選擇復(fù)用器(″MUX ″)160,以便從數(shù)據(jù)請求處理器120或者從MUX160中選擇事務(wù)數(shù)據(jù)。在一個實施例中,MUX160可以僅僅受到驗證FUB150的控制。在可選的實施例中,用虛線表示,MUX160可以受到驗證FUB150和核心110這二者的控制。在這種情形下,來自核心110的數(shù)據(jù)請求可以比來自驗證FUB150的數(shù)據(jù)請求具有更高的優(yōu)先權(quán)。這種可選的實施例在此更加詳細(xì)地加以論述。
驗證FUB150可以提供優(yōu)于現(xiàn)有的、軟件控制模式的用于應(yīng)力測試的幾個優(yōu)點。驗證FUB150在它所位于的代理的時鐘域之中操作,并且因此能夠以比采用軟件控制算法可以獲得的可靠性更高的可靠性來建立應(yīng)力測試事件。在某些應(yīng)用中,驗證FUB150能夠觀察觸發(fā)總線事務(wù)并生成新的″干擾性″總線事務(wù)作為下一個總線事務(wù)。因此,使用前面的兩個代理競爭相同數(shù)據(jù)片的例子,本實施例的驗證FUB150能夠以確保對請求該被竟?fàn)幍臄?shù)據(jù)的每個和各個總線事務(wù)作出響應(yīng)而生成干擾性總線事務(wù)的方式而加以使用。每當(dāng)觀察到請求該數(shù)據(jù)的事務(wù)時,驗證FUB可以生成尋址該相同數(shù)據(jù)的另一個總線事務(wù)。因此,就能夠避免軟件控制算法的這種偶然性。
因為驗證FUB150在該代理的時鐘域之中操作,該時鐘常常要比外部總線的時鐘域快得多,所以它可以生成具有比以前可能的細(xì)得多的定時關(guān)系的應(yīng)力條件。考慮一種外部總線是管線(pipelined)總線的例子。在諸如為Pentium Pro處理器規(guī)定的總線協(xié)議這樣的管線總線協(xié)議中,數(shù)據(jù)是采用總線事務(wù)被請求的。總線事務(wù)可以被組織成各種階段。對于Pentium Pro處理器而言,總線事務(wù)包括仲裁階段、請求階段、錯誤階段、探聽階段、響應(yīng)階段以及最后的數(shù)據(jù)階段。每種類型的數(shù)據(jù)請求的進(jìn)行都不通過所有可能的階段。管線總線可以允許幾個總線事務(wù)同時在總線上前進(jìn),但是每個請求必須處于不同的階段。因此,在第一事務(wù)結(jié)束該請求階段并進(jìn)入錯誤階段之后,第二事務(wù)就可以進(jìn)入請求階段。在各種階段之間的過渡在該外部總線的時鐘域發(fā)生。對于更多的信息,可以參考Pentium Pro系列開發(fā)者手冊,第一卷1說明(http//developer.intel.com/design/pro/MANUALS/242690.HTM)因為驗證FUB 150可以在代理的時鐘域之中操作,所以它可以常常在觸發(fā)總線事務(wù)在外部總線上保持掛起時檢測和響應(yīng)觸發(fā)條件。因此,在一個實施例中,驗證FUB150可以在觸發(fā)它的事務(wù)結(jié)束之前生成干擾性事務(wù)并將其發(fā)送到總線上。還沒有任何已知的應(yīng)力測試技術(shù)允許代理在觸發(fā)事務(wù)在外部總線上保持掛起的同時捕獲和響應(yīng)該觸發(fā)事務(wù)。
驗證FUB150提供另一個優(yōu)點,即它能夠?qū)翁幚砥饔嬎阆到y(tǒng)進(jìn)行應(yīng)力測試。軟件控制的應(yīng)力測試典型地要求至少兩個處理器,每個處理器執(zhí)行客戶軟件來生成希望的應(yīng)力測試場景。驗證FUB150可以監(jiān)聽它所位于的代理所生成的事務(wù),并且可以響應(yīng)在該外部總線上所觀察到的事務(wù)而生成干擾性事務(wù)。此外,不需要任何特殊的軟件。因此,取代投入時間和金錢來開發(fā)用于多處理器的客戶軟件,驗證FUB 150允許開發(fā)者對執(zhí)行市售軟件包的單代理系統(tǒng)中他們的代理進(jìn)行應(yīng)力測試。因此,驗證FUB150能夠顯著地降低集成電路開發(fā)者的開發(fā)成本。
圖2是說明根據(jù)本發(fā)明的一個實施例的操作方法1000的流程圖。操作可以在新事務(wù)被發(fā)送到外部總線上時開始。根據(jù)該實施例,事務(wù)數(shù)據(jù)可以被驗證FUB捕獲(框1010)。該驗證FUB可以確定該事務(wù)的請求類型是否匹配預(yù)定的觸發(fā)條件(框1020)。如果匹配,則該驗證FUB可以使用從外部總線事務(wù)中所捕獲的地址來生成干擾性事務(wù)數(shù)據(jù)(框1030)。該新的數(shù)據(jù)請求可以被輸出到EBC(框1040)。如果該捕獲的數(shù)據(jù)請求不匹配該預(yù)定的觸發(fā)條件,則該方法可以結(jié)束。
可選地,當(dāng)該捕獲的請求類型數(shù)據(jù)匹配觸發(fā)條件,該捕獲的地址就可以被修改(框1050,用虛線表示)。例如,該捕獲的地址可以按照高速緩存線增量而加以增量或者減量。如所周知,存儲器系統(tǒng)典型地被組織成通常稱為“高速緩存線”的預(yù)定單元。例如,在可從Intel公司買到的Pentium Pro處理器中,高速緩存線的長度是32字節(jié)。在其他處理器中,高速緩存線可以具有不同的長度。通過按照高速緩存線單位增量(或者減量)鎖存的地址,驗證FUB150可以將事務(wù)指向系統(tǒng)存儲器中相鄰的存儲單元。在這樣的實施例中,取代將新的外部事務(wù)指向與在該外部總線所觀察的地址相同的地址,驗證FUB150可以將該新的外部事務(wù)指向相鄰的高速緩存線。
在另一個實施例中,所捕獲的地址可以按照小于一個高速緩存線單位的量而加以增量或者減量。盡管代理可以按照高速緩存線大小的單位交換數(shù)據(jù),但是總線事務(wù)典型地使用具有小于高速緩存線增量的粒度的地址來尋址系統(tǒng)存儲器。這種技術(shù)允許計算機系統(tǒng)標(biāo)識請求的代理所需要的數(shù)據(jù)″組塊(chunk)″,即小于高速緩存線大小的數(shù)據(jù)單元。通過尋址該代理所需要的具體組塊,其他代理(諸如存儲器控制器或者存儲了該數(shù)據(jù)的另一代理)可以按照在提交高速緩存線的其他部分之前,首先提供被請求的組塊的方式,排定提交被請求的高速緩存線的次序。例如,在Pentium Pro系統(tǒng)中,外部總線事務(wù)的數(shù)據(jù)階段可以在四個周期上發(fā)生,每個周期傳送一個8字節(jié)的組塊。在這樣的系統(tǒng)中,被請求組塊可以在第一周期加以傳送,接著在以后的周期中傳送來自該高速緩存線的其余組塊。
在所捕獲的地址可以按照小于高速緩存線單位的量來加以增量或者減量的這個實施例中,驗證FUB150可以使得新的外部總線事務(wù)被發(fā)送到該外部總線上。該新的總線事務(wù)會具有這樣的一個地址,該地址指向系統(tǒng)存儲器中的、被所捕獲的總線事務(wù)引用過的、相同的高速緩存線,但是該地址卻可以指向在該高速緩存線之中的、與該被捕獲的總線事務(wù)所指向組塊不相同的組塊。
當(dāng)所捕獲的地址被修改并且被包括在干擾性事務(wù)之中時,可以對不同系統(tǒng)操作條件進(jìn)行應(yīng)力測試。如所周知,在操作期間,代理常常從系統(tǒng)存儲器中的連續(xù)存儲單元中檢索數(shù)據(jù)。例如,可執(zhí)行的程序指令常常被存儲在系統(tǒng)存儲器的順序存儲單元中。數(shù)據(jù)數(shù)組和其他結(jié)構(gòu)也常常被存儲在系統(tǒng)存儲器的順序存儲單元中。通過按照高速緩存線增量對被捕獲的地址進(jìn)行增量或者減量,驗證FUB150就可以檢索可能要被計算機系統(tǒng)中的另一個代理請求的數(shù)據(jù)。驗證FUB150基本上會以另一個代理在稍后將需要該數(shù)據(jù)的期望來檢索該數(shù)據(jù),并且能夠允許對該計算機系統(tǒng)之中的數(shù)據(jù)競爭器件進(jìn)行應(yīng)力測試。
本發(fā)明的實施例在來自核心100和驗證FUB150的數(shù)據(jù)請求之間實行優(yōu)先權(quán)模式。返回到圖1,來自驗證FUB150的數(shù)據(jù)請求被顯示為與來自數(shù)據(jù)請求處理器120的數(shù)據(jù)請求一起輸入到MUX160。因此,來自驗證FUB150的數(shù)據(jù)請求可被視為與數(shù)據(jù)請求處理器120“競爭”外部總線130的資源。根據(jù)一個實施例,MUX160不僅可以受到驗證FUB150的控制,還可以受到數(shù)據(jù)請求處理器120的控制。在這樣的實施例中,當(dāng)核心100正在生成至數(shù)據(jù)請求處理器120的數(shù)據(jù)請求時,MUX160可以選擇來自數(shù)據(jù)請求處理器120的一個數(shù)據(jù)請求。當(dāng)不存在正由核心100生成的任何數(shù)據(jù)請求時,MUX160可以選擇來自驗證FUB150的數(shù)據(jù)請求。因此,來自數(shù)據(jù)請求處理器120的數(shù)據(jù)請求可以在比來自驗證FUB150的請求具有更高優(yōu)先權(quán)的情況下受到處理。這一特征允許計算機系統(tǒng)執(zhí)行有用工作的同時發(fā)生應(yīng)力測試。
圖3說明根據(jù)本發(fā)明的另一個實施例的代理200。在這個實施例中,代理200可以包括與在前面的實施例中一樣的核心210和數(shù)據(jù)請求處理器220。在這個實施例中,數(shù)據(jù)請求處理器220可以登記來自代理200之中的各種源的數(shù)據(jù)請求,并且可以生成外部總線事務(wù)以便完成該數(shù)據(jù)請求。它可以通過外部總線接口(″EBI″)240與總線230接口,外部總線接口(″EBI″)240可以包括電驅(qū)動器和接口電路,以便生成和捕獲總線230上的電信號。在這一方面,代理200的操作是周知的。
在一個實施例中,代理200可以包括驗證FUB250。驗證FUB250可以與EBI240相接口以便觀察外部總線230上的事務(wù)。驗證FUB250可以將干擾性數(shù)據(jù)請求輸出到數(shù)據(jù)請求處理器220。在這個實施例中,數(shù)據(jù)請求處理器220可以包括仲裁器260,仲裁器260用于管理被從核心210和各種其他源輸入到數(shù)據(jù)請求處理器220的數(shù)據(jù)請求。數(shù)據(jù)請求處理器220可包括用于管理和完成這些數(shù)據(jù)請求的其他處理元件270。在這個實施例中,驗證FUB250可以將數(shù)據(jù)請求輸入到數(shù)據(jù)請求處理器220,該數(shù)據(jù)請求會被采用與對來自代理200之中的任何其他源的數(shù)據(jù)請求相同的方式加以處理。因此,來自驗證FUB250的數(shù)據(jù)請求可以由數(shù)據(jù)請求處理器220加以排隊,并且有可能被在代理200自身之中完成,取決于操作條件。
圖3的實施例可選地可以根據(jù)數(shù)據(jù)請求之間的優(yōu)先權(quán)模式操作。用虛線所表示的是,仲裁器260不僅可以受到驗證FUB250的控制,而且還可以受到核心210的控制。在核心210正在生成數(shù)據(jù)請求的同時,仲裁器260可以允許該核心數(shù)據(jù)請求而拒絕來自驗證FUB250的數(shù)據(jù)請求。在其他時間,仲裁器260可以允許來自驗證FUB250的數(shù)據(jù)請求。
圖4是根據(jù)本發(fā)明的一個實施例的驗證FUB300的框圖。驗證FUB300可以包括事務(wù)鎖存器310、請求庫320以及控制器330。事務(wù)鎖存器310可以接收來自外部總線130的事務(wù)數(shù)據(jù),并且將它鎖存起來以供在驗證FUB300之中的別處使用。請求庫320可以是一個寄存器存儲器或者存儲數(shù)據(jù)請求的其他數(shù)據(jù)結(jié)構(gòu)。控制器340可以管理驗證FUB300的操作。
根據(jù)一個實施例,請求庫320可以存儲那些能夠被數(shù)據(jù)請求處理器120(圖1)處理的數(shù)據(jù)請求中的每一個的數(shù)據(jù)模式。請求庫320可以從事務(wù)鎖存器310接收被鎖存的地址數(shù)據(jù)。在控制器330的管理之下,請求庫320可以將從事務(wù)鎖存器310中所接收的地址數(shù)據(jù)追加到在其中所存儲的請求模式,以便形成數(shù)據(jù)請求。請求庫320可以將該數(shù)據(jù)請求輸出到MUX360。因此,驗證FUB300可以響應(yīng)在該外部總線上的事務(wù)而生成新的數(shù)據(jù)請求。
控制器330可以是一個可編程的狀態(tài)機,在一個實施例中,該狀態(tài)機具有存儲用于標(biāo)識驗證FUB 300應(yīng)該響應(yīng)的數(shù)據(jù)事務(wù)的信息的寄存器(未示出)。如圖4所示,控制器330可以包括用于存儲事務(wù)類型數(shù)據(jù)的第一寄存器332和用于存儲數(shù)據(jù)請求索引的第二寄存器334。該事務(wù)類型數(shù)據(jù)可以確定驗證FUB300應(yīng)該響應(yīng)的觸發(fā)條件。第一寄存器332可以是CAM寄存器或者是具有匹配檢測邏輯的某個其他寄存器。在初始化模式期間,事務(wù)類型數(shù)據(jù)可以被加載到第一寄存器332。然后,在應(yīng)力測試期間,控制器330可以從被發(fā)送到外部總線130上的事務(wù)中接收事務(wù)類型數(shù)據(jù)。如果該新接收的事務(wù)類型數(shù)據(jù)匹配在初始化期間所存儲的事務(wù)類型數(shù)據(jù),則控制器330就可以確定輸出來自驗證FUB300的新數(shù)據(jù)請求。
該數(shù)據(jù)請求索引可以確定驗證FUB300將如何響應(yīng)觸發(fā)條件。它可以被存儲在第二寄存器334中,在初始化期間可以被加載到該寄存器中。該數(shù)據(jù)請求索引能夠?qū)ぶ吩谥噶顜?20中所存儲的數(shù)據(jù)請求模式。當(dāng)控制器330確定相對于第一寄存器332事務(wù)類型匹配發(fā)生時,則它就可以將來自第二寄存器334中的索引值施加到指令庫320,并且使干擾性事務(wù)的數(shù)據(jù)被讀出。如所指示的,指令庫320可以將從事務(wù)鎖存器310中所接收的地址值與來自該庫中的數(shù)據(jù)請求模式附加在一起,以便建立有效的數(shù)據(jù)請求。
如上所述,指令庫320可以直接從事務(wù)鎖存器310接收地址數(shù)據(jù)。這一實施例允許驗證FUB300生成外部總線事務(wù)(通過數(shù)據(jù)請求處理器120),該外部總線事務(wù)指向在觸發(fā)總線事務(wù)中所引用的相同數(shù)據(jù)。在一個可選的實施例中,指令庫320可以生成至所涉及的但是并不完全相同的地址的數(shù)據(jù)請求,以及生成至從事務(wù)鎖存器310中所接收的地址的數(shù)據(jù)請求。
圖4用虛線說明在控制器330的管理之下進(jìn)行操作的任選的地址操作器340。地址操作器340可以對來自事務(wù)鎖存器310的地址數(shù)據(jù)執(zhí)行算術(shù)運算。它可以將修改后的地址數(shù)據(jù)輸出到指令庫320。例如,地址操作器340可以按照高速緩存線增量對地址進(jìn)行增量或者減量??蛇x地,該地址操作器可以按照組塊值增量或者減量地址。
為了將驗證FUB 300集成到現(xiàn)有的設(shè)計中,采用不要求改變在現(xiàn)有設(shè)計中所提供的數(shù)據(jù)請求處理器的方式來進(jìn)行集成可能是很有利的。在這種應(yīng)用中,給該請求庫提供為該代理所規(guī)定的每個數(shù)據(jù)請求也許并不可行。例如,在有些設(shè)計中,如果存儲器寫請求、IO寫請求、中斷請求、中斷確認(rèn)請求和清理請求是由代理之中的驗證FUB300而不是某個其他組件生成的,則它們就可以要求顯著改變以便請求和響應(yīng)邏輯來支持這種數(shù)據(jù)請求。在這種實施例中,為了簡化在那些設(shè)計中使用驗證FUB300,這些請求可以被從該事務(wù)庫中忽略。
在另一個實施例中,如果指令的使用可能會破壞高速緩存的一致性或者其他的系統(tǒng)完整性機制,則這些指令就可以被從事務(wù)庫忽略。如所周知,許多多處理器計算機系統(tǒng)依據(jù)高速緩存一致性模式操作,在該高速緩存一致性模式下,在處理器中所存儲的數(shù)據(jù)的每一項被賦予一個一致性狀態(tài)。該數(shù)據(jù)的狀態(tài)確定該處理器可以怎樣使用該數(shù)據(jù)。例如,在已知的″MESI″協(xié)議中,數(shù)據(jù)可以被賦予如下的四種狀態(tài)之一·無效的-盡管該代理可能已經(jīng)緩存了數(shù)據(jù)的拷貝,但是該拷貝對于該代理確實不可用的。當(dāng)該代理需要該數(shù)據(jù)時,該代理必須從外部存儲器或者從另一個高速緩存中提取該數(shù)據(jù)。
·共享的-被緩存的拷貝是有效的,并且具有與外部存儲器中所存儲的值相同的值。該代理可以只讀取該數(shù)據(jù)。該數(shù)據(jù)的拷貝可以被存儲在其他代理的高速緩存之中。如果代理不首先執(zhí)行一個外部總線事務(wù),以便確保該代理獨占地控制該數(shù)據(jù)的拷貝,則該代理就不可以修改處于共享狀態(tài)的數(shù)據(jù)。
·獨占的-被緩存的拷貝是有效的,并且可以具有與在外部存儲器中所存儲的值相同的值。當(dāng)代理緩存處于獨占狀態(tài)的數(shù)據(jù)時,它就可以讀取和寫(修改)該數(shù)據(jù)而不用進(jìn)行外部高速緩存一致性檢查。
·修改的-被緩存的拷貝是有效的并且是“臟”的。它可以比在外部存儲器中所存儲的拷貝更加新近。該數(shù)據(jù)在所有其他代理中一定是無效的。
根據(jù)本發(fā)明的一個實施例,事務(wù)庫可以忽略有可能使得系統(tǒng)破壞高速緩存一致性規(guī)則的某些事務(wù)。例如,諸如BRL0(具有零長度的總線讀取線)的零數(shù)據(jù)長度事務(wù)、IO讀取、和要求一致性支持的其他事務(wù)可以在實施例中被忽略。
圖5說明根據(jù)本發(fā)明的一個實施例所構(gòu)建的處理器400的實施例。處理器400可以包括總線定序單元410(″BSU″)和核心420。BSU410和核心420這二者都可以采用比與外部總線430相關(guān)聯(lián)的速度高得多的速度來操作。外部總線430將處理器400與諸如其他處理器、存儲器和其他器件(未示出)這樣的其他部件互相連接起來。
BSU本身是已知的。它們可以包括仲裁器440、高速緩存器450、內(nèi)部隊列460和外部事務(wù)隊列470。仲裁器440可以接收來自諸如核心420以及可能的其他源這樣的各種輸入的請求。請求可以包括表示正被生成的請求的類型的請求代碼以及,只要合適的話,標(biāo)識該請求所指向的存儲單元的地址。
高速緩存450可以是內(nèi)部存儲器。如所周知,相對于核心高速緩存器(未示出),高速緩存450典型地具有大得多的容量。例如,典型高速緩存450可以是256的存儲器。相對比而言,核心數(shù)據(jù)高速緩存可以是16K的存儲器,并且核心指令高速緩存可以是16K的存儲器。高速緩存450可以是統(tǒng)一的高速緩存,即一個用于存儲指令數(shù)據(jù)和變量數(shù)據(jù)這二者(統(tǒng)稱為″數(shù)據(jù)″)的高速緩存。BSQ400也可以與較高級的高速緩存(未示出)相接口,該較高級的高速緩存的大小可以是3H或者更大。
來自仲裁器440的讀取請求可以被輸入到高速緩存450和內(nèi)部隊列460這二者。高速緩存450可以包括控制邏輯(未示出),該控制邏輯能夠確定被請求的數(shù)據(jù)是否存儲在高速緩存450之中。如果的確如此,則該請求就被認(rèn)為″命中″高速緩存450。高速緩存450將通過通信路徑(也未示出)將該被請求的數(shù)據(jù)提供到核心420。否則,該請求就被稱為″未命中″該高速緩存。高速緩存450可通過線452將命中或者未命中傳送到內(nèi)部隊列430。
內(nèi)部隊列460可以包括控制電路和緩沖存儲器,以便處理來自仲裁器430的請求。內(nèi)部隊列460也接收來自高速緩存450的命中/未命中指示符。如果讀取請求命中高速緩存450,則內(nèi)部隊列460可以允許該已排隊的請求終止,因為它行進(jìn)到隊列460之外。但是如果讀取請求未命中高速緩存450,則該請求就應(yīng)該通過從外部存儲器(未示出)檢索該被請求的數(shù)據(jù)而完成。在這種情形下,當(dāng)該讀取請求行進(jìn)到內(nèi)部隊列460之外時,內(nèi)部隊列460可以使該請求進(jìn)入外部事務(wù)隊列470中。
外部事務(wù)隊列470也可以包括控制電路和緩沖存儲器。它可以依據(jù)從該代理之中所發(fā)出的被排隊的請求而使得外部總線事務(wù)被發(fā)送到外部總線430上。外部事務(wù)隊列470可以通過外部總線控制器480控制總線430的操作。典型地,將為總線430規(guī)定總線協(xié)議,外部事務(wù)隊列470和外部總線控制器480可以依照這種協(xié)議而生成和接收信號。
在一個可選的實施例中,內(nèi)部隊列460和外部事務(wù)隊列470可以被單一的隊列代替。因此,圖5說明在單一的″事務(wù)隊列″中所包括的內(nèi)部隊列460和外部事務(wù)隊列470。本發(fā)明的原理在任一實施例中都可應(yīng)用。在這一方面,BSQ410的操作和結(jié)構(gòu)是已知的。
根據(jù)一個實施例,驗證FUB490可以觀察在BSQ410之中所發(fā)送的數(shù)據(jù)請求,并且對其響應(yīng)而生成干擾性事務(wù)。在一個實施例中,驗證FUB490可以捕獲由仲裁器440所輸出的數(shù)據(jù)請求。驗證FUB 490可以比較用于標(biāo)識該請求類型和源的數(shù)據(jù),以便確定是否要生成新的數(shù)據(jù)請求。如果要生成,則該新的數(shù)據(jù)請求就可以被輸出到仲裁器440,以便進(jìn)行獨立的處理。
在這個實施例中,BSQ410可以將該被捕獲的數(shù)據(jù)請求和該新的數(shù)據(jù)請求這二者作為獨立的事務(wù)而加以處理。指向相同地址的兩個獨立事務(wù)的處理可以在BSQ410自身之中引起某些性能邊界條件。當(dāng)然,在邊界條件下評估處理器的性能是應(yīng)力測試的目標(biāo)之一。
在另一個實施例中,用虛線表示,驗證FUB490還可以監(jiān)視內(nèi)部高速緩存450的命中/未命中輸出。在這樣的實施例中,不僅可以根據(jù)數(shù)據(jù)請求的請求類型而且還可以根據(jù)被請求的數(shù)據(jù)是否處于內(nèi)部高速緩存450之中來為驗證FUB490規(guī)定觸發(fā)條件。
如上所述,驗證FUB150(圖1)可以響應(yīng)在外部總線130(圖1)上所觀察到的觸發(fā)總線事務(wù)來生成干擾性總線事務(wù)。在一個可選的實施例中,驗證FUB150可以在外部總線130上不存在新事務(wù)時生成干擾性總線事務(wù)。許多總線協(xié)議使用預(yù)定的信號來標(biāo)識新事務(wù)的開始。在PentiumPro處理器的總線協(xié)議中,ADS#信號的確立(assertion)指示新事務(wù)的開始。新事務(wù)可以在每個總線時鐘周期期間被發(fā)送到總線上。在一個實施例中,驗證FUB150可以跟蹤新事務(wù)沒有被發(fā)送到該外部總線的情況下經(jīng)過的連續(xù)周期的數(shù)目。如果該數(shù)目超過預(yù)定的閾值(例如2),則驗證FUB150可以自發(fā)地生成干擾性事務(wù)。該干擾性事務(wù)可以指向從外部總線事務(wù)所捕獲的上個地址,它有可能已經(jīng)被修改過(被增量或者被減量)。
如所指出的那樣,驗證FUB可以被提供在計算機系統(tǒng)的代理之中。驗證FUB僅需要被提供在該系統(tǒng)的代理中那個能夠?qū)υ撓到y(tǒng)進(jìn)行應(yīng)力測試的代理之中。圖6說明根據(jù)本發(fā)明的一個實施例的示范性計算機系統(tǒng)500。計算機系統(tǒng)500可以包括多個代理510-560,每個代理被耦合到公共通信總線570。這些代理中的四個代理被展示為處理器510-540。其他代理包括系統(tǒng)存儲器550和IO接口560。驗證FUB515被展示為是處理器之一510的構(gòu)件,但是可選地,可以被提供在其他代理520-560中的一個或者多個之中。
圖7說明根據(jù)本發(fā)明的一個實施例的另一個示范性計算機系統(tǒng)600。同樣地,多個代理610-630被耦合到公共通信總線640。在這個例子中,只有一個代理610被展示為處理器。存儲器控制器620和IO接口630也在圖7中展示。在這個例子中,驗證FUB625被展示為存儲器控制器的構(gòu)件??蛇x地,該驗證FUB可以是IO接口630的構(gòu)件(未示出)。
在此具體地說明和描述了本發(fā)明的幾個實施例。然而,應(yīng)該理解的是,本發(fā)明的修改和變型是被上述的教導(dǎo)所涵蓋的,并且處于所附權(quán)利要求的范圍之內(nèi)而不背離本發(fā)明的精神和預(yù)定的范圍。
權(quán)利要求
1.一種集成電路,包括處理核心,具有與該處理核心通信的仲裁器的數(shù)據(jù)請求管線,該數(shù)據(jù)請求管線具有外部總線接口,和具有耦合到該數(shù)據(jù)請求管線的外部總線接口的輸入的驗證FUB。
2.權(quán)利要求1的集成電路,其中該驗證FUB的輸出耦合到該仲裁器。
3.權(quán)利要求1的集成電路,其中該驗證FUB包括耦合到該外部總線接口的事務(wù)鎖存器,和與該事務(wù)鎖存器相通信并且具有耦合到該數(shù)據(jù)請求管線的輸出的請求庫。
4.權(quán)利要求2的集成電路,還包括耦合到該事務(wù)鎖存器和該請求庫的地址操作器。
5.一種對集成電路進(jìn)行應(yīng)力測試的方法,包括捕獲第一外部總線事務(wù),當(dāng)該事務(wù)的請求類型匹配觸發(fā)條件時,生成數(shù)據(jù)請求,和根據(jù)該數(shù)據(jù)請求生成干擾性總線事務(wù)。
6.權(quán)利要求5的方法,其中第一外部總線事務(wù)和新的外部總線事務(wù)由相同的集成電路生成。
7.權(quán)利要求5的方法,其中該數(shù)據(jù)請求包括在第一外部總線事務(wù)中所包含的地址。
8.權(quán)利要求5的方法,其中該外部總線事務(wù)包括在系統(tǒng)存儲器中的第一高速緩存線地址,并且該數(shù)據(jù)請求包括與第一高速緩存線地址相鄰的第二高速緩存線地址。
9.權(quán)利要求5的方法,其中該外部總線事務(wù)包括指向系統(tǒng)存儲器中的高速緩存線的第一部分的地址,并且該數(shù)據(jù)請求包括指向該高速緩存線的第二部分的第二高速緩存線。
10.權(quán)利要求5的方法,其中該干擾性總線事務(wù)在第一外部總線事務(wù)結(jié)束之前生成。
11.一種在集成電路中的驗證FUB,用于捕獲外部總線事務(wù)和生成對被包含在其中的地址的干擾性數(shù)據(jù)請求。
12.權(quán)利要求11的驗證FUB,包括事務(wù)鎖存器,與該事務(wù)鎖存器通信的請求庫,和與該事務(wù)鎖存器通信的控制器。
13.一種計算機系統(tǒng),包括多個代理,每個代理都耦合到公共通信總線,該多個代理中的一個代理包括驗證FUB。
14.權(quán)利要求13的計算機系統(tǒng),其中所述的那一個代理是處理器。
15.權(quán)利要求13的計算機系統(tǒng),其中所述的那一個代理是存儲器控制器。
16.權(quán)利要求13的計算機系統(tǒng),其中所述的那一個代理是IO接口。
17.權(quán)利要求13的計算機系統(tǒng),其中該驗證FUB包括與該通信總線通信的事務(wù)鎖存器,與該事務(wù)鎖存器通信的請求庫,和與該事務(wù)鎖存器通信的控制器。
18.一種對計算機系統(tǒng)進(jìn)行應(yīng)力測試的方法,包括在外部總線上的新事務(wù)沒有開始的情況下,對所發(fā)生的外部總線周期的數(shù)目進(jìn)行統(tǒng)計,當(dāng)該數(shù)目滿足預(yù)定的閾值時,在外部總線上生成一個干擾性事務(wù)。
19.權(quán)利要求18的方法,其中該干擾性事務(wù)包括來自前一個總線事務(wù)的、已經(jīng)被修改為指向相鄰的高速緩存線的地址。
全文摘要
驗證FUB是在代理之中的、能夠使計算機系統(tǒng)處于應(yīng)力條件的一種硬件系統(tǒng)。驗證FUB可以監(jiān)視被發(fā)送到外部總線上的事務(wù)并且響應(yīng)該被監(jiān)視的事務(wù)而生成其他事務(wù)。該驗證FUB可以是一個可編程元件,該元件的響應(yīng)可以由外部輸入加以規(guī)定。因此,該驗證FUB可以測試種類廣泛的系統(tǒng)事件。
文檔編號G01R31/317GK1500247SQ02807546
公開日2004年5月26日 申請日期2002年1月25日 優(yōu)先權(quán)日2001年3月28日
發(fā)明者P·德塞, P 德塞, Q·梅雷爾, 錐, C·麥奈伊, 我, A·阿多 申請人:英特爾公司