專利名稱:基于宏指令隊列的cpu訪存序列仿真模型的制作方法
技術領域:
本發(fā)明涉及計算技術領域,更具體地說,本發(fā)明涉及一種基于宏指令隊列的CPU訪存序列仿真模型。
背景技術:
隨著半導體制造工藝的飛速發(fā)展,單核處理器的主頻已經(jīng)逐漸逼近極限,為了進一步提高處理器的運算速度,人們將多個處理器核集 成在一個芯片上形成片上多處理器(Chip Multi 一 Processor, CMP)。在CMP中,多個處理器核心對單一內(nèi)存空間的共享使得處理器和主存儲器之間的速度差距的矛盾更加突出,因此CMP設計必須采用多級高速緩存(Cache),通過層次化的存儲結構來緩解這一矛盾。CMP系統(tǒng)必須解決由此而引發(fā)的Cache —致性問題以及一致性驗證問題。Cache—致性協(xié)議作為多核處理器中的重要組成部分,直接影響到多核處理器的正確性設計和性能,Cache 一致性協(xié)議驗證技術成為多核處理器設計驗證階段的關鍵技術
之一 O一致性協(xié)議的驗證,需要有一個CPU模型來仿真CPU的訪存行為,而真實的CPU模型是非常復雜的。所以,希望提供一種在進行對一致性協(xié)議驗證時能夠簡化真實CPU模型的CPU訪存序列仿真模型。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是針對現(xiàn)有技術中存在上述缺陷,提供一種在進行對一致性協(xié)議驗證時能夠簡化真實CPU模型的基于宏指令隊列的CPU訪存序列仿真模型。根據(jù)本發(fā)明,提供了一種基于宏指令隊列的CPU訪存序列仿真模型,其包括指令緩沖模塊,其包括與CPU內(nèi)部的Cache不命中請求懸掛緩沖個數(shù)數(shù)量相同的多個指令緩沖,發(fā)出的指令利用冗余域攜帶有所在指令緩沖的緩沖號,以便根據(jù)響應原樣返回的該指令緩沖號進行正確性檢查;二級Cache和淘汰緩沖模塊,用于模擬二級Cache和淘汰緩沖的操作,并對二次請求和響應的合法性進行檢查;二次請求處理模塊,用于模擬對二次請求的處理功能,接收二次請求,并返回相應類型的應答;流控模塊,用于模擬一次請求隊列和響應隊列的流控功能;指令調(diào)度模塊,用于從多個指令緩沖中調(diào)度一個指令執(zhí)行;指令譯碼模塊,用于執(zhí)行指令緩沖指令格式到CPU和一致性協(xié)議硬件之間的邏輯接口的格式包的轉(zhuǎn)換。優(yōu)選地,每個指令緩沖中加載一組指令序列,指令緩沖模塊中所填寫的指令順序要滿足CPU的真實行為規(guī)則。優(yōu)選地,每個指令緩沖中加載一組地址有相關性的指令序列,同一指令緩沖內(nèi)的指令被串行發(fā)射,只有前一指令收到響應后才發(fā)射后一指令。優(yōu)選地,指令緩沖模塊的各個指令緩沖中的指令可以循環(huán)發(fā)送。
優(yōu)選地,不同指令緩沖的指令沒有地址相關性,并行發(fā)射。優(yōu)選地,測試激勵被配置成隨機測試激勵或焦點專項測試激勵。優(yōu)選地,流控模塊用于進行控制,使得當只有一個一次請求的響應返回時,有地址相關性的下一個一次請求才能從CPU發(fā)出。優(yōu)選地,流控模塊用于進行控制,使得如果一致性協(xié)議硬件邏輯中的一次請求隊列沒有空間了,CPU指令不能發(fā)射。優(yōu)選地,流控模塊用于進行控制,使得如果CPU內(nèi)部的響應隊列沒有空間,則一致性協(xié)議硬件邏輯中的響應無法返回,對應的一次請求也無法完成處理。優(yōu)選地,可以將二次請求處理和響應卸載的延時配置成固定值或隨機值,以模擬不同的阻塞情況。
由此,本發(fā)明提供一種在進行對一致性協(xié)議驗證時能夠簡化真實CPU模型的基于宏指令隊列的CPU訪存序列仿真模型。
結合附圖,并通過參考下面的詳細描述,將會更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點和特征,其中圖I示意性地示出了根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型。需要說明的是,附圖用于說明本發(fā)明,而非限制本發(fā)明。
具體實施例方式為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結合具體實施例和附圖對本發(fā)明的內(nèi)容進行詳細描述。在進行對一致性協(xié)議驗證時,本發(fā)明實施例構建了一個基于宏指令隊列的CPU簡化模型,來仿真CPU的訪存行為。本模型中設置了多個指令緩沖,緩沖內(nèi)可根據(jù)測試需求填寫訪存的一次請求序列,多個指令緩沖間的指令序列可隨機或按照指定順序進行發(fā)射。整個模型構建較為簡單,人工編寫指令序列控制激勵,即可進行專向焦點測試,也可進行隨機測試。并且,該模型僅模擬與一致性協(xié)議相關的CPU指令激勵,相對真實CPU模型,模型簡單,全軟件編寫更加有較好的可操控性,能較好地測試到一致性協(xié)議的各種極端情況。具體地說,圖I示意性地示出了根據(jù)本發(fā)明實施例的通過軟件實現(xiàn)的基于宏指令隊列的CPU訪存序列仿真模型MODELl。該CPU訪存序列仿真模型MODELl的主體是多個指令緩沖,驗證者可根據(jù)測試需求填寫不同的CPU指令序列,其中所填寫的指令順序要滿足CPU的真實行為規(guī)則,多個指令緩沖間的指令序列可通過指令調(diào)度隨機或按照指定順序進行發(fā)射。一般而言,CPU和一致性協(xié)議硬件邏輯有四種不同虛通道的包交互一次請求、一次請求的響應、二次請求、以及二次請求的應答。為了真實的模擬CPU指令的發(fā)射情況,CPU訪存序列仿真模型MODELl不僅要模擬真實的一致性請求的發(fā)射,還需要模擬CPU中與一致性處理部件相關的一致性功能,由此可與一致性協(xié)議硬件模塊Hl共同完成對一致性協(xié)議的完整處理流程。更具體地說,如圖I所示,根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型MODELl包括指令緩沖模塊包括與CPU內(nèi)部的Cache不命中請求懸掛緩沖個數(shù)數(shù)量相同的指令緩沖;具體地說,若CPU內(nèi)部的Cache不命中請求懸掛緩沖個數(shù)為n,則指令緩沖數(shù)相應可設置為η個(第一指令緩沖I、第二指令緩沖2、…第η指令緩沖η);并且,每個指令緩沖中可加載一組地址相關的指令序列,不同緩沖的指令之間不存在任何地址相關關系,可以并行發(fā)射;指令在指令緩沖間隨機調(diào)度發(fā)射,或按照指定順序進行發(fā)射。每個指令緩沖內(nèi)的指令處理完全串行發(fā)射,即前一個指令的響應回來后再發(fā)下一個指令。指令緩沖間指令并行執(zhí)行。每個指令緩沖都可循環(huán)發(fā)送。發(fā)出的指令利用冗余域攜帶有所在指令緩沖的緩沖號,響應回來時也會攜帶該指令緩沖號(即,請求及其響應攜帶相同的緩沖號),以此來進行
正確性檢查。并且,指令緩沖模塊中所填寫的指令順序要滿足CPU的真實行為規(guī)則。二級Cache和淘汰緩沖模塊Ml :用于模擬二級Cache和淘汰緩沖的操作,并對二次請求和響應的合法性進行檢查;具體地說,某些CPU指令會引起二級Cache和淘汰緩沖的動作,因此需要模擬相關功能,并對二次請求和響應的合法性進行檢查。二次請求處理模塊M2 :對于某些一次請求,一致性協(xié)議會生成二次請求發(fā)往CPU,CPU應返回應答,該模塊模擬了對二次請求的處理功能,接收二次請求,并返回相應類型的應答,使得一致性處理得以完整的進行。流控模塊M3 :模擬了一次請求隊列和響應隊列的流控功能;具體地說,例如,流控模塊M3進行控制,使得當只有一個響應返回時,對相同地址的下一個指令才能從CPU發(fā)出,因此指令緩沖中的指令是否能發(fā)射受到尚未處理完畢的請求地址的限制;此外,流控模塊M3進行控制,使得如果一致性協(xié)議硬件邏輯Hl中的一次請求隊列沒有空間了,CPU指令不能發(fā)射;而且,流控模塊M3進行控制,使得如果CPU內(nèi)部的響應隊列沒有空間,則一致性協(xié)議硬件邏輯Hl中的響應無法返回,對應的一次請求也無法完成處理。指令調(diào)度模塊M4 隨機或按照指定順序從多個指令緩沖中調(diào)度一個指令執(zhí)行;如上所述,同一指令緩沖中的指令為地址相關的指令,完全為串行執(zhí)行,只有前一指令收到響應后才執(zhí)行后一指令,不同指令緩沖間的指令并行執(zhí)行。指令譯碼模塊M5 :由于指令緩沖中填寫的是CPU指令,而一致性協(xié)議硬件邏輯處理的是一致性協(xié)議包,該模塊負責完成指令緩沖指令格式到CPU和一致性協(xié)議硬件之間的邏輯接口的格式包的轉(zhuǎn)換,生成一致性協(xié)議硬件邏輯可以處理的一次請求包。由此,在根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型MODELl中,二次請求處理模塊M2 二次請求處理和響應卸載的延時可靈活配置成固定值也可配置成隨機值,以模擬不同的阻塞情況,由此可實現(xiàn)多種阻塞情況測試。而且,在根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型MODELl中,測試激勵可配置成隨機測試激勵和焦點專項測試激勵兩種模式;I.隨機測試激勵每個指令緩沖中填寫的是隨機的激勵,具體地說是相對的“隨機”,即填寫的指令順序要滿足CPU的真實行為規(guī)則和指令緩沖的填寫要求,指令的某些參數(shù)可以隨機生成,指令調(diào)度設置成隨機從不同指令緩沖中調(diào)度指令,這樣每次改變填寫的指令或者改變隨機模式都可以得到一組不同的CPU隨機激勵;
2.焦點專項測試激勵針對硬件邏輯的某些功能點,向指令緩沖中填寫特定序列或特定地址的指令序列,指定指令調(diào)度的順序,生成驗證者所需的特定指令流。根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型MODELl可以方便的配置成單CPU或多CPU的測試環(huán)境。根據(jù)本發(fā)明實施例的基于宏指令隊列的CPU訪存序列仿真模型MODELl簡單可控,具體地說,在驗證之初驗證者需要填寫好指令緩沖中的內(nèi)容,并指定調(diào)度模式等配置參數(shù)后,模型會自動生成所需的指令流,發(fā)往一致性協(xié)議硬件邏輯Hl進行處理,在指令流處理過程中如有行為與預期不一致之處(如某個響應返回的指令緩沖號和對應請求指令所在的指令緩沖號不一致)可以自動報錯停止檢查現(xiàn)場,否則可以在指令流結束后檢查結果,整個驗證過程不需要更多的人為干預。由此,如上所述,本發(fā)明上述實施例提供一種在進行對一致性協(xié)議驗證時能夠簡化真實CPU模型的基于宏指令隊列的CPU訪存序列仿真模型。 此外,需要說明的是,除非特別指出,否則說明書中的術語“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關系或者順序關系等??梢岳斫獾氖牵m然本發(fā)明已以較佳實施例披露如上,然而上述實施例并非用以限定本發(fā)明。對于任何熟悉本領域的技術人員而言,在不脫離本發(fā)明技術方案范圍情況下,都可利用上述揭示的技術內(nèi)容對本發(fā)明技術方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發(fā)明技術方案的內(nèi)容,依據(jù)本發(fā)明的技術實質(zhì)對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發(fā)明技術方案保護的范圍內(nèi)。
權利要求
1.一種基于宏指令隊列的CPU訪存序列仿真模型,其特征在于包括 指令緩沖模塊,其包括與CPU內(nèi)部的Cache不命中請求懸掛緩沖個數(shù)數(shù)量相同的多個指令緩沖,發(fā)出的指令利用冗余域攜帶有所在指令緩沖的緩沖號,以便根據(jù)響應原樣返回的該指令緩沖號進行正確性檢查; 二級Cache和淘汰緩沖模塊,用于模擬二級Cache和淘汰緩沖的操作,并對二次請求和響應的合法性進行檢查; 二次請求處理模塊,用于模擬對二次請求的處理功能,接收二次請求,并返回相應類型的應答; 流控模塊,用于模擬一次請求隊列和響應隊列的流控功能; 指令調(diào)度模塊,用于從多個指令緩沖中調(diào)度一個指令執(zhí)行; 指令譯碼模塊,用于執(zhí)行指令緩沖指令格式到CPU和一致性協(xié)議硬件之間的邏輯接口的格式包的轉(zhuǎn)換。
2.根據(jù)權利要求1所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,每個指令緩沖中加載一組指令序列,指令緩沖模塊中所填寫的指令順序要滿足CPU的真實行為規(guī)則。
3.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,每個指令緩沖中加載一組地址有相關性的指令序列,同一指令緩沖內(nèi)的指令被串行發(fā)射,只有前一指令收到響應后才發(fā)射后一指令。
4.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,指令緩沖模塊的各個指令緩沖中的指令可以循環(huán)發(fā)送。
5.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,不同指令緩沖的指令沒有地址相關性,可以并行發(fā)射。
6.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,測試激勵可被配置成隨機測試激勵或焦點專項測試激勵。
7.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,流控模塊用于進行控制,使得當只有一個一次請求的響應返回時,有地址相關性的下一個一次請求才能從CPU發(fā)出。
8.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,流控模塊用于進行控制,使得如果一致性協(xié)議硬件邏輯中的一次請求隊列沒有空間了,CPU指令不能發(fā)射。
9.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,流控模塊用于進行控制,使得如果CPU內(nèi)部的響應隊列沒有空間,則一致性協(xié)議硬件邏輯中的響應無法返回,對應的一次請求也無法完成處理。
10.根據(jù)權利要求1或2所述的基于宏指令隊列的CPU訪存序列仿真模型,其特征在于,二次請求處理模塊可以將二次請求處理和響應卸載的延時配置成固定值或隨機值,以模擬不同的阻塞情況。
全文摘要
一種基于宏指令隊列的CPU訪存序列仿真模型,包括指令緩沖模塊,其包括與CPU內(nèi)部的Cache不命中請求懸掛緩沖個數(shù)數(shù)量相同的指令緩沖,發(fā)出的指令利用冗余域攜帶有所在指令緩沖的緩沖號,以便根據(jù)響應原樣返回的該指令緩沖號進行正確性檢查;二級Cache和淘汰緩沖模塊,用于模擬二級Cache和淘汰緩沖的操作,并對二次請求和響應的合法性進行檢查;二次請求處理模塊,用于模擬對二次請求的處理功能,接收二次請求,并返回相應類型的應答;流控模塊,用于模擬一次請求隊列和響應隊列的流控功能;指令調(diào)度模塊,用于從多個指令緩沖中調(diào)度一個指令執(zhí)行;指令譯碼模塊,用于執(zhí)行指令緩沖指令格式到CPU和一致性協(xié)議硬件之間的邏輯接口的格式包的轉(zhuǎn)換。
文檔編號G06F17/50GK102880770SQ20121042077
公開日2013年1月16日 申請日期2012年10月29日 優(yōu)先權日2012年10月29日
發(fā)明者任秀江, 盧宏生, 鄭衛(wèi)華, 張清波, 王夢嘉, 陳彥庭, 施晶晶 申請人:無錫江南計算技術研究所