專利名稱:多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器領(lǐng)域和評測領(lǐng)域,尤其涉及一種面向多線程交叉雙精度短向量結(jié)構(gòu)處理器的評測激勵自動構(gòu)造方法。
背景技術(shù):
隨著處理器芯片的集成度越來越大,在處理器內(nèi)核中實現(xiàn)雙精度短向量部件來支持數(shù)據(jù)密集的科學和工程計算是一個重要的發(fā)展趨勢。在多線程處理器內(nèi)核中擴展雙精度短向量部件可以大幅度提高處理器的雙精度浮點計算能力。雙精度短向量部件需要實現(xiàn)更長字長的短向量寄存器(目前htel的AVX已經(jīng)支持256位共4路雙精度數(shù)據(jù)的短向量), 并且需要實現(xiàn)相應(yīng)的支持雙精度計算的向量操作指令集。
如圖1所示,為一擴展了雙精度短向量部件的多線程處理器內(nèi)核結(jié)構(gòu)示意圖。該處理器內(nèi)核基于OpenSparc T2實現(xiàn),在處理器內(nèi)核中擴展了向量處理單元(VPU),支持4路雙精度數(shù)據(jù)的短向量操作,多個線程可并發(fā)使用。該處理器內(nèi)核采用輪轉(zhuǎn)多線程的方式支持8個硬件線程,每4個硬件線程為一組;每個時鐘周期,處理器從每組4個線程中選擇一個線程的當前指令執(zhí)行,該指令可以是向量指令也可以是標量指令,當某個線程的指令由于高速緩存失效等原因引發(fā)流水線阻塞時,多線程交叉向量結(jié)構(gòu)的微處理器將從其他線程取指執(zhí)行,從而隱藏延遲,保證充滿流水線。如圖1所示,處理器內(nèi)核各個功能單元的功能簡述如下1)自陷邏輯單元(TLU),用于更新機器狀態(tài)、處理異常和中斷。面向處理器擴展的VPU, TLU也進行了相應(yīng)的擴展,支持VPU的狀態(tài)更新和異常處理。
2)取指令單元(IFU),每個時鐘周期從每組線程中取一條指令,根據(jù)指令的類型發(fā)射到相應(yīng)的執(zhí)行單元(EXU0/1、FGU、LSU、VPU)執(zhí)行。
3)整數(shù)執(zhí)行單元(EXU0/1),負責執(zhí)行整數(shù)操作類指令。該處理器包含兩個整數(shù)執(zhí)行單元(分別標記為0號和1號),每4個線程共享一個整數(shù)執(zhí)行單元。
4)浮點和圖形單元(FGU),負責執(zhí)行標量浮點操作指令和支持圖像處理的指令。
5)取/存單元(LSU),負責所有訪存指令的執(zhí)行。
6)存儲器管理單元(MMU),負責配合LSU單元完成存儲訪問時的地址轉(zhuǎn)換、內(nèi)存管理。
7)向量操作單元(VPU),負責執(zhí)行實現(xiàn)4路雙精度數(shù)據(jù)運算的短向量指令。
8)通信單元(Gasket),負責處理器內(nèi)核與第2級高速緩存或其他處理器核的通
為了實現(xiàn)多線程交叉雙精度短向量處理器,在原有的處理器內(nèi)核的基礎(chǔ)上實現(xiàn)了 VPU單元。而為了和VPU單元的功能相配合,TLU、IFU、LSU、MMU都進行了擴展以支持雙精度短向量操作。和處理器內(nèi)核結(jié)構(gòu)的改進相對應(yīng),多線程交叉雙精度短向量結(jié)構(gòu)的處理器實現(xiàn)了短向量操作指令集,包括向量存取指令、向量計算指令、向量比較指令、向量移位指令、 狀態(tài)操作指令等。
上述增加了向量處理單元(VPU)的處理器內(nèi)核最多支持8個硬件線程,多線程并發(fā)使用VPU部件就構(gòu)成了多線程交叉雙精度短向量體系結(jié)構(gòu)。使用向量單元的每個線程的指令流中包含多種類型的指令,在此處理器上,指令執(zhí)行的過程如下IFU每個時鐘周期從8個硬件線程的當前指令中取得來自兩個線程的兩條指令,它根據(jù)指令的類型決定將指令發(fā)送到哪個功能單元去執(zhí)行,如果是兩條都是整數(shù)運算指令可以同時分別發(fā)到兩個整數(shù)執(zhí)行單元;如果兩條都是訪存指令、向量浮點運算指令、標量浮點運算指令,則先發(fā)出其中一條,下個時鐘周期再發(fā)送另外一條。當多個使用VPU單元的線程同時在處理器中執(zhí)行時,來自不同線程的向量存取指令、向量計算指令同時在LSU、VPU上執(zhí)行。
這種多線程交叉雙精度短向量結(jié)構(gòu)可以隱藏長延時指令的延遲,提高處理器的整體性能。
雙精度短向量單元和傳統(tǒng)面向流媒體計算的SIMD擴展相比,使用的寄存器不同、 數(shù)據(jù)通路不同、指令集也完全不同;因此在此類結(jié)構(gòu)體系的處理器驗證、性能評估過程中, 都需要編寫大量的評測激勵。在處理器驗證和性能評估中使用的評測激勵是面向處理器體系結(jié)構(gòu)的匯編語言程序。在處理器驗證過程中,將測試激勵加載到處理器的測試平臺上運行,可以驗證處理器設(shè)計的正確性;并且,可以根據(jù)測試激勵的執(zhí)行時間和激勵程序中所包含的計算量評估處理器的性能。在處理器的驗證、性能評估過程中,都需要編寫大量的作為評測激勵的匯編語言程序,通常這些程序都是由研發(fā)、測試人員手工編寫,工作量大,耗費時間長。由于不同處理器指令集體系結(jié)構(gòu)不同、短向量擴展方法不同,因此無法繼承和重用已有的面向多線程使用短向量處理功能單元的評測激勵。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種使用方便、可減少人員工作量、且能縮短耗費時長的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案一種多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于包括以下步驟(1)輸入待評測的向量操作類型和向量長度;(2)自動創(chuàng)建一內(nèi)容為空的用作評測激勵的匯編語言文件;(3)向所述匯編語言文件中寫入如下內(nèi)容 (3.1)多線程運行初始化代碼段;(3. 2)評測激勵控制結(jié)構(gòu),包括啟動多線程執(zhí)行模式的代碼段,用于設(shè)置多線程使能寄存器使處理器進入多線程工作狀態(tài);線程選擇并跳轉(zhuǎn)的代碼段,用于讀取各個線程私有的線程號寄存器并根據(jù)線程號跳轉(zhuǎn)到各個線程;(3. 3)多線程向量操作程序段,包括主線程向量操作代碼段,用于各線程計算任務(wù)分配、操作數(shù)的首地址和向量長度計算、讀取源操作數(shù)向量和目的操作數(shù)向量并循環(huán)進行短向量運算操作;從線程向量操作代碼段,用于讀取源操作數(shù)向量和目的操作數(shù)向量并進行短向量運算操作;(3. 4)評測激勵同步結(jié)構(gòu),包括主線程同步代碼段,用于判斷并等待所有線程完成向量操作;從線程同步代碼段,用于向主線程標識本線程是否完成向量操作;(3. 5)數(shù)據(jù)段以及數(shù)據(jù)段初始化語句,所述數(shù)據(jù)段為多線程共享數(shù)據(jù)段,所述多線程共享數(shù)據(jù)段含有多線程共享的源操作數(shù)向量和目的操作數(shù)向量;(4)將步驟(3)得到的匯編語言文件作為自動生成的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵。
作為本發(fā)明的進一步改進所述步驟(3. 3)中,所述多線程向量操作程序段的創(chuàng)建步驟如下 (3. 3. 1)根據(jù)輸入的向量操作類型和向量長度,分配各線程(包括主線程和所有從線程)的計算任務(wù)后,確定各線程操作的向量的起始位置和長度;(3. 3. 2)各線程根據(jù)線程號以及向量長度,計算源操作數(shù)地址和循環(huán)計數(shù)寄存器,設(shè)置基地址寄存器和循環(huán)計數(shù)寄存器;(3. 3. 3)各線程根據(jù)線程號計算目的操作數(shù)地址,設(shè)置目的操作數(shù)基地址寄存器; (3. 3. 4)各線程根據(jù)各自的計算任務(wù),在匯編語言程序文本段中插入向量讀取、操作、 或結(jié)果寫回的匯編指令,組成主線程向量操作代碼段和從線程向量操作代碼段。
所述步驟(3. 5)中,所述共享數(shù)據(jù)段由以下步驟構(gòu)建(3. 5. 1)采用雙精度浮點數(shù)據(jù)的隨機數(shù)生成程序生成用作源操作數(shù)的雙精度向量,向量長度由用戶指定;把向量中的雙精度數(shù)據(jù)轉(zhuǎn)換為16進制,作為源操作數(shù)向量; (3. 5.2)根據(jù)輸入的向量長度預(yù)留目的操作數(shù)存儲空間,作為目的操作數(shù)向量。
所述數(shù)據(jù)段還包括供所述評測激勵同步結(jié)構(gòu)使用的鎖變量和線程計數(shù)變量,所述評測激勵同步結(jié)構(gòu)通過鎖變量控制同一時間僅有一個線程更新線程計數(shù)變量,并通過線程計數(shù)變量判別并保證多個線程必需全部完成各自所做的操作后主線程才繼續(xù)執(zhí)行后續(xù)操作。
所述步驟(3. 4)完成后,向所述匯編語言文件中寫入用于驗證主線程向量操作結(jié)果正確性的主線程計算結(jié)果比較代碼段、用于驗證從線程向量操作運算結(jié)果正確性的從線程計算結(jié)果比較代碼段和用于計算結(jié)果比較有錯時的報錯的代碼段;所述步驟(3. 5)中, 所述數(shù)據(jù)段還包括供所述主線程計算結(jié)果比較代碼段和從線程計算結(jié)果比較代碼段讀取的正確的計算結(jié)果向量。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于1、本發(fā)明的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,采用了構(gòu)件化程序設(shè)計的思想,把基本的匯編語言代碼段作為構(gòu)造匯編語言程序的基本構(gòu)件,自動構(gòu)造多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵,有利于面向該類體系結(jié)構(gòu)快速開發(fā)評測激勵,可減少人員的工作量。
2、本發(fā)明可以編程實現(xiàn),輸入待評測或待驗證的向量操作類型以及向量長度,輸出的評測激勵為多線程利用短向量指令完成計算任務(wù)的匯編語言程序。多次運行該程序, 輸入不同的運算類型和向量長度,可以自動批量構(gòu)造評測激勵,能縮短構(gòu)建時長,節(jié)約成本,提高評測激勵開發(fā)效率,極大地方便了處理器驗證和性能評估。
圖1是多線程交叉雙精度短向量結(jié)構(gòu)的處理器內(nèi)核結(jié)構(gòu)示意圖。
圖2是本發(fā)明具體實施例的總流程示意圖。
圖3是本發(fā)明具體實施例中構(gòu)造的評測激勵的流程示意圖。
具體實施方式
以下將結(jié)合說明書附圖和具體實施例對本發(fā)明作進一步詳細說明。
如圖2所示,采用本發(fā)明的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法構(gòu)造用于評測和驗證如圖1所示的多線程交叉雙精度短向量結(jié)構(gòu)體系,步驟如下1、輸入待評測的向量操作類型和向量長度。
2、自動創(chuàng)建一內(nèi)容為空的匯編語言源程序文件foo. S。
3、向所述foo. s文件中寫入如下內(nèi)容的匯編語言程序文本3. 1用于多線程運行初始化的匯編語言代碼段;本發(fā)明采用常規(guī)初始化代碼段,所有構(gòu)造出的匯編語言程序所需的初始化過程都相同。
3. 2評測激勵控制結(jié)構(gòu),其包括3.2. 1啟動多線程執(zhí)行模式的代碼段,用于設(shè)置多線程使能寄存器使處理器進入多線程工作狀態(tài);3. 2. 2線程選擇并跳轉(zhuǎn)的代碼段,用于讀取各個線程私有的線程號寄存器并根據(jù)線程號跳轉(zhuǎn)到各個線程;其中線程號為0的線程是主線程,其他線程為從線程。
3. 3多線程向量操作程序段,其包括3. 3. 1主線程向量操作代碼段,用于各線程計算任務(wù)分配、操作數(shù)的首地址和向量長度計算、讀取源操作數(shù)向量和目的操作數(shù)向量并循環(huán)進行短向量運算操作。其構(gòu)建過程如下a.主線程根據(jù)自己的線程號和計算任務(wù)分配,計算操作數(shù)的首地址和向量長度;b.主線程根據(jù)線程號以及向量的長度,計算源操作數(shù)地址和循環(huán)計數(shù)寄存器,設(shè)置基地址寄存器和循環(huán)計數(shù)寄存器;c.主線程根據(jù)線程號計算目的操作數(shù)地址,設(shè)置目的操作數(shù)基地址寄存器;d.主線程根據(jù)各自的計算任務(wù),在匯編語言程序文本段中插入向量讀取、操作、或結(jié)果寫回的匯編指令,組成主線程向量操作代碼段和從線程向量操作代碼。
3.3.2從線程向量操作代碼段,用于讀取源操作數(shù)向量和目的操作數(shù)向量并進行短向量運算操作;其構(gòu)建過程如下a.從線程根據(jù)自己的線程號和計算任務(wù)分配,計算操作數(shù)的首地址和向量長度;b.從線程根據(jù)線程號以及向量的長度,計算源操作數(shù)地址和循環(huán)計數(shù)寄存器,設(shè)置基地址寄存器和循環(huán)計數(shù)寄存器;c.從線程根據(jù)線程號計算目的操作數(shù)地址,設(shè)置目的操作數(shù)基地址寄存器;d.從線程根據(jù)各自的計算任務(wù),在匯編語言程序文本段中插入向量讀取、操作、或結(jié)果寫回的匯編指令,組成主線程向量操作代碼段和從線程向量操作代碼。
3.4評測激勵驗證結(jié)構(gòu)。其包括3. 4. 1主線程計算結(jié)果比較代碼段,用于驗證主線程向量操作結(jié)果正確性; 3. 4. 2從線程計算結(jié)果比較代碼段,用于驗證從線程向量操作運算結(jié)果正確性;3.4.3用于計算結(jié)果比較有錯時的報錯的代碼段。
對于用作驗證的測試激勵,需要在主線程和從線程執(zhí)行完向量運算操作的代碼段之后,插入用于驗證向量操作的運算結(jié)果正確性的結(jié)果比較代碼段。實際運行時,結(jié)果比較代碼段讀取各個線程剛剛計算出的數(shù)值結(jié)果和對應(yīng)的預(yù)先計算好的正確的計算結(jié)果進行比較,如果數(shù)值不同則執(zhí)行報錯代碼。
3. 5評測激勵同步結(jié)構(gòu),其包括3. 5. 1主線程同步代碼段,用于判斷并等待所有線程完成向量操作;如果所有線程都完成了操作,主線程報告并退出;否則主線程循環(huán)重復(fù)上述過程等待所有線程完成向量操作。
3.5.2從線程同步代碼段,用于向主線程標識本線程是否完成向量操作。從線程完成雙精度短向量運算后將線程計數(shù)變量增加1,進入忙等狀態(tài)。
3.6數(shù)據(jù)段以及數(shù)據(jù)段初始化語句。所述數(shù)據(jù)段包括源操作數(shù)向量和目的操作數(shù)向量、鎖變量、線程計數(shù)變量和用于驗證的正確的計算結(jié)果;其中,源操作數(shù)向量和目的操作數(shù)向量為多線程共享數(shù)據(jù)段。數(shù)據(jù)段以及數(shù)據(jù)段初始化語句的構(gòu)建步驟如下3. 6. 1構(gòu)建共享數(shù)據(jù)段a.源操作數(shù)向量。采用雙精度浮點數(shù)據(jù)的隨機數(shù)生成程序生成用作源操作數(shù)的雙精度向量,向量長度由用戶指定;把向量中的雙精度數(shù)據(jù)轉(zhuǎn)換為16進制,作為源操作數(shù)向量, 并指定數(shù)據(jù)段的對齊方式為align 32。
b.目的操作數(shù)向量。根據(jù)輸入的向量長度預(yù)留目的操作數(shù)存儲空間,作為目的操作數(shù)向量,數(shù)據(jù)段的對齊方式為align 32。
c.正確的計算結(jié)果向量。對于用作驗證用的測試激勵,需要創(chuàng)建正確結(jié)果數(shù)據(jù)段,該數(shù)據(jù)段中保存的是預(yù)先計算好的正確結(jié)果;該數(shù)據(jù)段由驗證用的激勵的結(jié)果比較代碼段(由步驟3. 4創(chuàng)建)讀取。
d.創(chuàng)建鎖變量。鎖變量用于控制同一時間僅有一個線程更新線程計數(shù)變量。本實施例中,在共享數(shù)據(jù)區(qū)中創(chuàng)建一個64位的整型鎖變量,并設(shè)置初始值為0,對齊方式為 align 8。當鎖變量的值為0時表示未加鎖,當鎖變量的值為1時表示加鎖。在程序運行時, 各個線程循環(huán)用比較并交換指令讀取鎖變量并判斷加鎖狀態(tài),若鎖變量的值為0,表示沒有線程使用共享數(shù)據(jù);獲得鎖變量的線程先將鎖變量改為1,然后對讀寫共享數(shù)據(jù)進行向量操作,完成向量操作后,用比較并交換指令將鎖變量恢復(fù)為0。
e.創(chuàng)建線程計數(shù)變量。線程計數(shù)變量用于判別并保證多個線程必需全部完成各自所做的操作后主線程才繼續(xù)執(zhí)行后續(xù)操作。本實施例中,在共享數(shù)據(jù)區(qū)中創(chuàng)建一個64位的整型線程計數(shù)變量,并設(shè)置初始值為0,對齊方式為align 8。在程序運行時,獲得鎖變量的線程完成向量操作后,將線程計數(shù)變量加1 ;當主線程判斷線程計數(shù)器等于線程總數(shù)時, 判斷所有線程均完成了向量操作,則報告并退出。
4、將步驟3得到的匯編語言文件作為自動生成的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵。
上述步驟中,評測激勵的向量操作程序段、驗證結(jié)構(gòu)和同步結(jié)構(gòu)寫入foo. s文件的順序不限,可以依照上述步驟進行,也可以采用圖2所示的順序,先將主線程的三種結(jié)構(gòu)寫完,再逐一寫入從線程的相應(yīng)結(jié)構(gòu)。如圖3所示,本實施例自動生成的評測激勵的執(zhí)行流8程如下(1)多線程執(zhí)行環(huán)境初始化。
(2)讀取硬件線程相應(yīng)的線程號寄存器,根據(jù)不同的線程號跳轉(zhuǎn)到主線程或從線程的代碼入口處;若線程號為0,則跳至步驟(3)轉(zhuǎn)到主線程入口 ;否則跳到步驟(5),轉(zhuǎn)入相應(yīng)的從線程入口。
(3)主線程根據(jù)線程號和計算任務(wù)分配,完成雙精度短向量操作;之后執(zhí)行獲取鎖變量的代碼,如果獲得了鎖變量,則將線程計數(shù)器加1,然后釋放鎖變量。
(4)讀取線程計數(shù)器,判斷線程計數(shù)器與總線程數(shù)是否相等,若相等則表示所有線程均完成了向量操作,則程序終止,回復(fù)系統(tǒng)狀態(tài)并退出;若二者不相等,則循環(huán)執(zhí)行本步驟直至二者相等。
(5)相應(yīng)的從線程根據(jù)線程號和計算任務(wù)分配,完成雙精度短向量操作;之后執(zhí)行獲取鎖變量的代碼,如果獲得了鎖變量,則將線程計數(shù)器加1,然后釋放鎖變量,進入忙等狀態(tài)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于包括以下步驟(1)輸入待評測的向量操作類型和向量長度;(2)自動創(chuàng)建一內(nèi)容為空的用作評測激勵的匯編語言文件;(3)向所述匯編語言文件中寫入如下內(nèi)容 (3.1)多線程運行初始化代碼段;(3. 2)評測激勵控制結(jié)構(gòu),包括啟動多線程執(zhí)行模式的代碼段,用于設(shè)置多線程使能寄存器使處理器進入多線程工作狀態(tài);線程選擇并跳轉(zhuǎn)的代碼段,用于讀取各個線程私有的線程號寄存器并根據(jù)線程號跳轉(zhuǎn)到各個線程;(3. 3)多線程向量操作程序段,包括主線程向量操作代碼段,用于各線程計算任務(wù)分配、操作數(shù)的首地址和向量長度計算、讀取源操作數(shù)向量和目的操作數(shù)向量并循環(huán)進行短向量運算操作;從線程向量操作代碼段,用于讀取源操作數(shù)向量和目的操作數(shù)向量并進行短向量運算操作;(3. 4)評測激勵同步結(jié)構(gòu),包括主線程同步代碼段,用于判斷并等待所有線程完成向量操作;從線程同步代碼段,用于標識本線程完成了向量操作;(3. 5)數(shù)據(jù)段以及數(shù)據(jù)段初始化語句,所述數(shù)據(jù)段為多線程共享數(shù)據(jù)段,所述多線程共享數(shù)據(jù)段含有多線程共享的源操作數(shù)向量和目的操作數(shù)向量;(4)將步驟(3)得到的匯編語言文件作為自動生成的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵。
2.根據(jù)權(quán)利要求1所述的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于,所述步驟(3. 3)中,所述多線程向量操作程序段的創(chuàng)建步驟如下(3. 3. 1)根據(jù)輸入的向量操作類型和向量長度,分配各線程的計算任務(wù)后,確定各線程操作的向量的起始位置和長度;(3. 3. 2)各線程根據(jù)線程號以及向量長度,計算源操作數(shù)地址和循環(huán)計數(shù)寄存器,設(shè)置基地址寄存器和循環(huán)計數(shù)寄存器;(3. 3.3)各線程根據(jù)線程號計算目的操作數(shù)地址,設(shè)置目的操作數(shù)基地址寄存器; (3. 3. 4)各線程根據(jù)各自的計算任務(wù),在匯編語言程序文本段中插入向量讀取、操作、 或結(jié)果寫回的匯編指令,組成主線程向量操作代碼段和從線程向量操作代碼段。
3.根據(jù)權(quán)利要求2所述的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于,所述步驟(3. 5)中,所述共享數(shù)據(jù)段由以下步驟構(gòu)建(3. 5. 1)采用雙精度浮點數(shù)據(jù)的隨機數(shù)生成程序生成用作源操作數(shù)的雙精度向量,向量長度由用戶指定;把向量中的雙精度數(shù)據(jù)轉(zhuǎn)換為16進制,作為源操作數(shù)向量; (3. 5.2)根據(jù)輸入的向量長度預(yù)留目的操作數(shù)存儲空間,作為目的操作數(shù)向量。
4.根據(jù)權(quán)利要求3所述的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于,所述數(shù)據(jù)段還包括供所述評測激勵同步結(jié)構(gòu)使用的鎖變量和線程計數(shù)變量,所述評測激勵同步結(jié)構(gòu)通過鎖變量控制同一時間僅有一個線程更新線程計數(shù)變量,并通過線程計數(shù)變量判別并保證多個線程必需全部完成各自所做的操作后主線程才繼續(xù)執(zhí)行后續(xù)操作。
5.根據(jù)權(quán)利要求1或2或3或4所述的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,其特征在于,所述步驟(3. 4)完成后,向所述匯編語言文件中寫入用于驗證主線程向量操作結(jié)果正確性的主線程計算結(jié)果比較代碼段、用于驗證從線程向量操作運算結(jié)果正確性的從線程計算結(jié)果比較代碼段和用于計算結(jié)果比較有錯時報錯的代碼段;所述步驟(3. 5)中,所述數(shù)據(jù)段還包括供所述主線程計算結(jié)果比較代碼段和從線程計算結(jié)果比較代碼段讀取的正確的計算結(jié)果向量。
全文摘要
本發(fā)明公開了一種多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵自動構(gòu)造方法,包括步驟輸入待評測的向量操作類型和向量長度;自動創(chuàng)建一內(nèi)容為空的用作評測激勵的匯編語言文件;向匯編語言文件中寫入如下內(nèi)容多線程運行初始化代碼段、評測激勵控制結(jié)構(gòu)、多線程向量操作程序段、評測激勵同步結(jié)構(gòu)以及數(shù)據(jù)段以及數(shù)據(jù)段初始化語句;構(gòu)成一完整的多線程交叉雙精度短向量結(jié)構(gòu)的評測激勵。本發(fā)明可以實現(xiàn)自動批量構(gòu)造評測激勵,能縮短構(gòu)建時長,節(jié)約成本,提高評測激勵開發(fā)效率,極大地方便了處理器驗證和性能評估。
文檔編號G06F11/36GK102508776SQ20111034280
公開日2012年6月20日 申請日期2011年11月3日 優(yōu)先權(quán)日2011年11月3日
發(fā)明者左克, 彭林, 易會戰(zhàn), 李春江, 杜云飛, 楊燦群, 王 鋒, 趙克佳, 陳娟, 黃春 申請人:中國人民解放軍國防科學技術(shù)大學