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