![集成電路可調(diào)試性設(shè)計研究綜述_第1頁](http://file4.renrendoc.com/view/b9191c6070e2ff037bf8a8501bc76316/b9191c6070e2ff037bf8a8501bc763161.gif)
![集成電路可調(diào)試性設(shè)計研究綜述_第2頁](http://file4.renrendoc.com/view/b9191c6070e2ff037bf8a8501bc76316/b9191c6070e2ff037bf8a8501bc763162.gif)
![集成電路可調(diào)試性設(shè)計研究綜述_第3頁](http://file4.renrendoc.com/view/b9191c6070e2ff037bf8a8501bc76316/b9191c6070e2ff037bf8a8501bc763163.gif)
![集成電路可調(diào)試性設(shè)計研究綜述_第4頁](http://file4.renrendoc.com/view/b9191c6070e2ff037bf8a8501bc76316/b9191c6070e2ff037bf8a8501bc763164.gif)
![集成電路可調(diào)試性設(shè)計研究綜述_第5頁](http://file4.renrendoc.com/view/b9191c6070e2ff037bf8a8501bc76316/b9191c6070e2ff037bf8a8501bc763165.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
集成電路可調(diào)試性設(shè)計研究綜述
1可調(diào)試性設(shè)計的應(yīng)用隨著硬件和軟件產(chǎn)業(yè)的發(fā)展,復(fù)雜性越來越高,這是確保硬件和軟件產(chǎn)業(yè)設(shè)計正確的重要過程。特別是,硬件一體化的改進(jìn)和新體系結(jié)構(gòu)的出現(xiàn),尤其是多核系統(tǒng)的出現(xiàn),不能保證硬件設(shè)計的準(zhǔn)確性。根據(jù)下一個數(shù)據(jù),在芯片流程和市場開發(fā)之后,發(fā)現(xiàn)了許多錯誤。為了確保這些錯誤在芯片市場之前得到解決,這些錯誤在硅后的驗(yàn)證工具中得到了發(fā)現(xiàn)。另一方面,隨著硬件規(guī)模和復(fù)雜性的增加,軟件規(guī)模和復(fù)雜性也得到了提高。特別是隨著多核技術(shù)和在線技術(shù)的發(fā)展,目前軟件調(diào)試的復(fù)雜性遠(yuǎn)遠(yuǎn)顯著。僅通過傳統(tǒng)的純軟件調(diào)整方法(如單步、斷點(diǎn)等)需要大量的人力物力,硬件需要得到硬件支持,以便通過軟硬件合作完成并行程序和在線程序的調(diào)試??紤]到上述兩點(diǎn),硬件調(diào)試設(shè)計是硬件設(shè)計中非常重要的一部分。作為可調(diào)試性設(shè)計研究的一個重要動力,硅后驗(yàn)證越受重視所占芯片開發(fā)開銷比重越大.根據(jù)最近幾年的統(tǒng)計,平均每款芯片需要35%的開發(fā)時間用于硅后驗(yàn)證,Intel公司用于硅后驗(yàn)證的成本接近設(shè)計的1/3.為了提高硅后驗(yàn)證的調(diào)試效率,目前學(xué)術(shù)界和工業(yè)界有很多不同角度的研究,可調(diào)試性設(shè)計(design-for-debug)是其中的一個熱點(diǎn).傳統(tǒng)可調(diào)試性設(shè)計包括種類繁多的方法和工具,例如約束檢查(assertion)、掃描鏈(scanchain)等,這些工具和方法可以給調(diào)試帶來極大便利,將其用于硅后驗(yàn)證是一種很自然的想法.在硅后驗(yàn)證的平臺調(diào)試和實(shí)際系統(tǒng)的調(diào)試中,如果事先加入可調(diào)試性設(shè)計,可以幫助硅后驗(yàn)證更好地了解設(shè)計內(nèi)部的狀態(tài),更有效地定位錯誤,提高硅后驗(yàn)證的效率.和各種物理探針類方法不同,將可調(diào)試性設(shè)計模塊加入電路中是可調(diào)試性設(shè)計的重要特點(diǎn)之一,而通過對可調(diào)試性模塊的精心設(shè)計,使錯誤能被很容易地精確定位,同時獲得各種靈活的調(diào)試功能,這是可調(diào)試性設(shè)計的研究目標(biāo).可調(diào)試性設(shè)計研究的另一個主要動力并行程序調(diào)試也在蓬勃發(fā)展.可調(diào)試性設(shè)計可以為并行程序調(diào)試提供強(qiáng)大的硬件輔助功能.目前這方面的研究熱點(diǎn)主要有兩個:一個是解決并行程序調(diào)試的確定性重放(deterministicreplay)方法,二是用于硅后驗(yàn)證的數(shù)據(jù)競爭沖突檢測(dataracedetection).通過加入可調(diào)試性設(shè)計可以將上述兩種問題的解決速度提高5~10倍.本文介紹了可調(diào)試性設(shè)計系統(tǒng)包括的4個組成部分,以及最新的可調(diào)試設(shè)計系統(tǒng)的結(jié)構(gòu)設(shè)計,在此基礎(chǔ)上進(jìn)一步介紹了可調(diào)試性設(shè)計的熱點(diǎn)應(yīng)用,即保證并行程序正確的確定性重放、數(shù)據(jù)沖突檢測硬件輔助可調(diào)試性設(shè)計.對于可調(diào)試性設(shè)計和應(yīng)用熱點(diǎn),皆指出了面臨的主要問題、解決問題的關(guān)鍵所在以及現(xiàn)在最新的技術(shù)進(jìn)展.最后,給出了當(dāng)今可調(diào)式性設(shè)計的總結(jié)和發(fā)展趨勢展望.本文的剩余部分組織結(jié)構(gòu)如下,由于可調(diào)試性設(shè)計的結(jié)構(gòu)設(shè)計和功能需求是可調(diào)試性設(shè)計的基礎(chǔ)和最重要部分,因此,本文首先花了比較大的篇幅對其進(jìn)行介紹.第2節(jié)介紹了可調(diào)試性設(shè)計的基本概念;第3節(jié)介紹了可調(diào)試性設(shè)計的幾種主要結(jié)構(gòu);第4節(jié)探討了可調(diào)試性設(shè)計結(jié)構(gòu)中的數(shù)據(jù)采集、存儲、壓縮和導(dǎo)出;然后我們在第5節(jié)介紹了可調(diào)試性設(shè)計用于解決并行程序調(diào)試問題的確定性重放設(shè)計,以及用于解決數(shù)據(jù)沖突驗(yàn)證的硬件自動檢測設(shè)計這兩個熱門應(yīng)用.最后一節(jié)對可調(diào)試性設(shè)計進(jìn)行了總結(jié),并在此基礎(chǔ)上對可調(diào)試性設(shè)計發(fā)展趨勢進(jìn)行了展望.2可修改設(shè)計解決的問題和四個組成部分2.1高抽象層次信號硅后調(diào)試問題的基礎(chǔ)是有效率地從實(shí)際芯片中獲取運(yùn)行狀態(tài),目前有兩種方法:一種是探針類方法,通過機(jī)械或者激光的方式(如LVP(laservoltageprobe)激光電壓探測儀技術(shù)、EMMI(emissionmicroscope)微光顯微鏡等光電檢測技術(shù))探測芯片內(nèi)部信號,可以采集一個或一組具有精確時鐘周期的信號,并能重構(gòu)成高抽象層次的信號;另一種是通過芯片的引腳利用內(nèi)部的觀測邏輯將狀態(tài)輸出.前者適合對底層具體信號進(jìn)行分析,后者適合對高層抽象信號進(jìn)行分析,對于邊界條件下的調(diào)試以及非邏輯錯誤往往需要兩者結(jié)合使用.對于硅后調(diào)試問題,一次調(diào)試可以分為5步操作,即控制錯誤、分離錯誤、定位錯誤、擴(kuò)展錯誤、解決錯誤,其中開銷最大的兩步是控制錯誤和分離錯誤.不同于硅前驗(yàn)證向量的側(cè)重理論推導(dǎo)和仿真,硅后驗(yàn)證需要面對現(xiàn)實(shí)中的不確定因素,不僅要面對驗(yàn)證平臺提供的驗(yàn)證向量(如Intel的奔騰M測試平臺提供的種類齊全的硅后驗(yàn)證向量、shmooplotting測試中的電壓溫度對),還要面對各種真實(shí)環(huán)境下的可重現(xiàn)問題和不可重現(xiàn)問題(如啟動操作系統(tǒng)的調(diào)試過程、驗(yàn)證平臺的電氣故障),需要通過驗(yàn)證向量的可控來使錯誤可控、可重現(xiàn)、可捕捉.分離錯誤是在控制錯誤的基礎(chǔ)上,利用已有的信息和手段將錯誤隔離到設(shè)計中的一個小范圍,例如特定的部件和時鐘周期.硅后調(diào)試需要解決的問題主要是在受限的硅后環(huán)境下解決調(diào)試問題的控制錯誤和分離錯誤.2.2系統(tǒng)的可調(diào)試性設(shè)計目前成熟的DFT(designfortest)設(shè)計都可以作為DFD設(shè)計的基本功能加以使用.例如IEEE的TAP(testaccessport)標(biāo)準(zhǔn)提供了一種最普遍的DFD功能,即掃描鏈訪問、斷點(diǎn)設(shè)置、時鐘控制等.此外,后臺調(diào)試模塊(backgrounddebugmode,BDM)設(shè)計也提供了低層調(diào)試功能,通過將CPU停機(jī)進(jìn)行單個時鐘的調(diào)試.上述調(diào)試標(biāo)準(zhǔn)提供了實(shí)用的調(diào)試功能,目前被很多處理器采用,但是,隨著處理器設(shè)計日趨復(fù)雜,可調(diào)試性設(shè)計研究變得越來越重要,不斷有新的功能更強(qiáng)大的結(jié)構(gòu)被提出,概括而言,可調(diào)試性設(shè)計系統(tǒng)主要包括4部分:確定設(shè)計需要加入的結(jié)構(gòu)、確定需要采集的信息、存儲和導(dǎo)出信息、設(shè)計分析信息的軟硬件系統(tǒng).下面我們將結(jié)合最新的研究進(jìn)展,詳述可調(diào)試性設(shè)計研究的4個方面.2.2.1可調(diào)試性設(shè)計的常用結(jié)構(gòu)可調(diào)試性設(shè)計為了提高設(shè)計內(nèi)部狀態(tài)的可視性和精確定位錯誤,需要具備如下功能:監(jiān)測信號、分析信號、接收外部控制信號、建立用于傳遞信號的網(wǎng)絡(luò)、存儲和導(dǎo)出信號以及處理導(dǎo)出的信息.基于以上功能需要,可調(diào)試性設(shè)計一般包含如下幾種結(jié)構(gòu):Probe——用于獲取信號并傳遞給信號分析模塊;Monitor——內(nèi)部包含各種狀態(tài)機(jī),對信號進(jìn)行分析和處理,生成需要記錄的信息,產(chǎn)生內(nèi)部的控制信息或事件;Controller——接收內(nèi)外的控制信息,控制整個調(diào)試結(jié)構(gòu)的運(yùn)行;Memory——存儲需要記錄的信息;Net——將各種調(diào)試性設(shè)計模塊聯(lián)接在一起的網(wǎng)絡(luò),各種控制信號、事件、觀測信號在其中傳遞.以上結(jié)構(gòu)在不同的可調(diào)試性設(shè)計實(shí)現(xiàn)中可以根據(jù)需要進(jìn)行組合(如圖1所示),產(chǎn)生各種具有針對性功能的模塊:2.2.2可調(diào)試性平臺設(shè)計對于硅后調(diào)試而言,需要獲得的信號越多硬件或時間開銷越大.對于每一個具體的設(shè)計需要在提高信號可見性和降低開銷之間取得平衡.確定采集哪些信息:可調(diào)試性設(shè)計所采集的信息應(yīng)該是能反應(yīng)設(shè)計狀態(tài),能夠用于分離和定位錯誤的必要信息.根據(jù)分離錯誤的需要只采集盡量少的必要的信息是最基本的設(shè)計出發(fā)點(diǎn),而采集信號的開銷和調(diào)試方法對錯誤的覆蓋率是成正比的.在實(shí)際的工程中,確定可調(diào)試性平臺開發(fā)效費(fèi)比的工作不可忽視.確定采集的時間窗口等配置內(nèi)容:設(shè)置采集的數(shù)據(jù)窗口主要通過內(nèi)外控制信號來判斷.外部控制信號對于不可重復(fù)性錯誤和不確定性出現(xiàn)的錯誤很難起作用;內(nèi)部控制信號主要通過監(jiān)測到的信號來判斷系統(tǒng)的當(dāng)前狀況,因此通過內(nèi)部控制信號判斷錯誤是否發(fā)生,需要錯誤捕捉機(jī)制對可能發(fā)生的異常狀態(tài)產(chǎn)生正確而及時的反應(yīng).內(nèi)部控制信號的產(chǎn)生機(jī)制越全面復(fù)雜開銷就越大.2.2.3種新的可調(diào)試性測試方法硅后調(diào)試信息一般是通過寄存器和專用的存儲部件保存下來,再通過掃描或?qū)S玫拇鎯Σ考?gòu)成的調(diào)試通道導(dǎo)出.掃描:掃描的實(shí)現(xiàn)方式比較簡單,獲得的接口支持也很廣泛,而且也能獲取特殊的狀態(tài)信息,但是對于需要保存大量數(shù)據(jù)的調(diào)試性設(shè)計,掃描提供的帶寬過小,對實(shí)時性導(dǎo)出的限制非常嚴(yán)格,而且僅用掃描鏈和內(nèi)建自測試(built-inself-test,BIST)能夠達(dá)到的測試質(zhì)量是有限的,文獻(xiàn)給出了其能達(dá)到的測試效率.因此高性能的可調(diào)試性系統(tǒng)一般用掃描鏈結(jié)合專用存儲buffer來記錄和導(dǎo)出數(shù)據(jù).專用的存儲部件:利用buffer或者cache來保存要存儲的數(shù)據(jù),在控制信號的驅(qū)動下,可以開始、暫停、停止.為了盡可能多地記錄數(shù)據(jù),各種壓縮算法和實(shí)時處理方法也被引入和使用.2.2.4對錯誤監(jiān)測的實(shí)驗(yàn)分析記錄的信息需要進(jìn)一步分析.一般來說記錄的數(shù)據(jù)抽象層次越低,需要越多的工作來處理數(shù)據(jù),使其更易被觀察.對于記錄的數(shù)據(jù),分析信息的方法主要來源于對已知錯誤分析方法的總結(jié)、對不符合規(guī)范的行為劃分的方法以及選取覆蓋廣泛的判斷錯誤方法等.一種錯誤判斷邏輯能夠檢測的錯誤種類越多(如判斷死鎖),越需要更多的輔助工作來進(jìn)一步精確定位錯誤,但是優(yōu)點(diǎn)是監(jiān)測機(jī)制的相對設(shè)計開銷小、可移植性強(qiáng).目前各大芯片開發(fā)公司都有專門的對調(diào)試信息進(jìn)行分析的軟硬件平臺.3可調(diào)試性設(shè)計特點(diǎn)可調(diào)試性設(shè)計可以應(yīng)用于系統(tǒng)的各個層次,從邏輯門到總線,從處理器核到SoC系統(tǒng)都可以加入可調(diào)試性設(shè)計邏輯.下面通過對各種可調(diào)試性設(shè)計結(jié)構(gòu)的介紹來闡述可調(diào)試性設(shè)計的特點(diǎn)和發(fā)展趨勢.3.1存儲部件可調(diào)試性設(shè)計shmooplotting測試是一種對IC設(shè)計的工作環(huán)境向量進(jìn)行嚴(yán)格測試的工序,用于確定IC設(shè)計的正常工作環(huán)境范圍.從20世紀(jì)70年代被提出后,其測試手段一直隨自動測試設(shè)備(automatictestequipment,ATE)工具的進(jìn)步而改變.可調(diào)試性設(shè)計在shmooplotting測試中的使用是提高硅后調(diào)試效率的一種典型應(yīng)用.文獻(xiàn)介紹了一種用于測試存儲部件正常工作電壓頻率對的可調(diào)試性設(shè)計.對于待測試的存儲部件,流片后的功能不一定遵守設(shè)計規(guī)范,對比邏輯設(shè)計和實(shí)際電路,兩者的正常工作范圍并不一致,在電路中加入可調(diào)試性設(shè)計可以觀測實(shí)際電路狀態(tài),尋找問題所在.如圖2所示,對存儲部件進(jìn)行shmoo測試的可調(diào)試性設(shè)計的組成包括控制接口、實(shí)現(xiàn)狀態(tài)機(jī)的控制寄存器、存放訪問指令的數(shù)組、可控的時鐘輸入、記錄出錯后被恢復(fù)信息的容錯存儲,以及計數(shù)、讀寫控制等功能.在上述設(shè)計中,可調(diào)試性模塊和待測的存儲部件各自獨(dú)立,環(huán)境向量可控(包括時鐘頻率可控、數(shù)據(jù)內(nèi)容和地址可控),測試結(jié)果可存儲,實(shí)現(xiàn)了解決調(diào)試問題前兩步的前提條件,只要將測試結(jié)果導(dǎo)出就可以得到整個測試過程的狀態(tài).這個應(yīng)用很好地體現(xiàn)了可調(diào)試性設(shè)計在提高系統(tǒng)狀態(tài)觀測性方面的功能.但是,很多情況下,我們不僅需要泛泛地了解系統(tǒng)的內(nèi)部狀態(tài),更關(guān)注特定情況下的系統(tǒng)狀態(tài),讓可調(diào)試性設(shè)計最大化地提煉出有用信息,這對復(fù)雜電路結(jié)構(gòu)調(diào)試來說非常重要.3.2存儲進(jìn)程的執(zhí)行模塊網(wǎng)絡(luò)傳遞信息處理器核是大型系統(tǒng)的核心模塊,面臨的調(diào)試問題具有一定的代表性.對處理器流水級可調(diào)試性問題的分析思路有很多種,有的通過增加超時計數(shù)器、寄存器文件錯誤檢測碼(errorcheckcode,ECC)、指令代碼奇偶校驗(yàn)等方法來提高流水級運(yùn)行時的健壯性,增加容錯率,有的通過加入可配置的支持硬件對流水級中出現(xiàn)的硬件設(shè)計問題進(jìn)行規(guī)避解決,而文獻(xiàn)介紹的一種對流水級中指令的trace進(jìn)行記錄,判斷流水級狀態(tài)是否正確,進(jìn)而自動定位錯誤的可調(diào)試性設(shè)計結(jié)構(gòu)則最具代表性,充分運(yùn)用可調(diào)試性設(shè)計給硅后調(diào)試帶來的改進(jìn).如圖3(a),(b)所示,處理器流水級的可調(diào)試性設(shè)計結(jié)構(gòu)由控制模塊(controller)、分布于各流水級各功能部件的監(jiān)測部件(monitor)、聯(lián)接各調(diào)試性模塊的流水級網(wǎng)絡(luò)、各監(jiān)測模塊內(nèi)保存指令足跡(trace)的存儲緩沖區(qū)(buffer)以及對各存儲緩沖區(qū)中數(shù)據(jù)進(jìn)行導(dǎo)出處理的整理模塊(serilizer)組成.在上述系統(tǒng)中,網(wǎng)絡(luò)傳遞信息如下:1)各指令的標(biāo)識ID,用于唯一表示一條在流水級中的指令,該ID和指令在流水級中的傳輸同步;2)外部的控制信息,用來控制記錄的運(yùn)行、暫停和結(jié)束;3)各monitor對信息進(jìn)行分析后產(chǎn)生的觸發(fā)事件,用來判斷內(nèi)部控制信號是否成立.信息采集和存儲的過程如圖3(b)所示:每個功能部件的monitor有一個狀態(tài)機(jī),當(dāng)沒有新的ID傳送過來時,時間計數(shù)器記下有多少拍空轉(zhuǎn).當(dāng)新的ID進(jìn)入時,時間信息被記錄入buffer中,同時指令I(lǐng)D和各功能部件提供的內(nèi)容一起存入buffer中.考慮到各功能部件需要觀測的狀態(tài)不同,為避免重復(fù)記錄,各功能部件提供的內(nèi)容并不統(tǒng)一,而是根據(jù)需要有所不同.例如,取指模塊只記錄pc,譯碼模塊記錄指令包含的操作數(shù)個數(shù)等等.當(dāng)controller發(fā)出停止并導(dǎo)出trace的命令后,先將取指部件的buffer中記錄的trace整理成1份指令執(zhí)行順序文件,然后按時間順序?qū)⑻峤徊考幸呀?jīng)提交的指令在各部件中的trace整理一遍,再將等待提交的指令按時間順序,將其在各部件中的狀態(tài)整理一遍,其余信息忽略掉.信息分析:monitor檢查5種情況來判斷錯誤是否發(fā)生,分別是向量錯、運(yùn)算錯、非正常例外、段分配錯、死鎖,其中段分配錯和死鎖從導(dǎo)致錯誤的指令執(zhí)行到錯誤顯示出來需要經(jīng)過很多時鐘節(jié)拍,而buffer的大小是有限的,如果采用判斷出錯再停止,可能buffer中記錄的信息已經(jīng)無法定位到正確的錯誤點(diǎn),因此,需要采用預(yù)判斷措施.當(dāng)段分配錯發(fā)生時,先發(fā)生tlb_miss,可在此暫停buffer的記錄,當(dāng)錯誤真正發(fā)生后再導(dǎo)出buffer的數(shù)據(jù),反之則繼續(xù)執(zhí)行記錄,考慮到發(fā)生死鎖前必然會發(fā)生指令未能及時提交的狀況,可在一個取指周期的間隔后未能發(fā)生指令提交的情況下暫停記錄.對于導(dǎo)出的trace,利用數(shù)據(jù)依賴分析、控制流分析、存取分析、譯碼分析等方法,使用軟件自動定位錯誤.統(tǒng)計的結(jié)果為75%的錯誤得到精確的定位,21%的錯誤除了精確定位還伴有冗余定位,4%的錯誤沒有檢測出來.這項研究對于探索調(diào)試的自動化作出了貢獻(xiàn),其結(jié)構(gòu)具有普遍適用性,其對錯誤的分析方法也取得了良好的覆蓋率,盡管很多環(huán)境下自動判斷錯誤的機(jī)制達(dá)不到這樣的精確程度,但是其提出的暫停結(jié)構(gòu)對于判斷一些未知的錯誤是一種有效的思路.3.3解片上網(wǎng)絡(luò)的調(diào)試性設(shè)計目前,多核芯片中使用復(fù)雜的片上網(wǎng)絡(luò)已成趨勢.對于片上網(wǎng)絡(luò)的調(diào)試,不管是要檢查數(shù)據(jù)是否符合協(xié)議還是其他錯誤情況,都需要了解片上網(wǎng)絡(luò)當(dāng)前的運(yùn)行狀態(tài).片上網(wǎng)絡(luò)調(diào)試性設(shè)計的特點(diǎn)是其中傳輸?shù)膬?nèi)容往往需要在高級的抽象層次觀察,對傳輸內(nèi)容進(jìn)行分析往往要考慮不同協(xié)議下的傳輸,基于這樣的特點(diǎn),以通信為中心的模型能比較好地描述片上網(wǎng)絡(luò)的狀態(tài);而另一些情況下,對片上網(wǎng)絡(luò)中傳輸?shù)膬?nèi)容需要分析其相關(guān)性,這時基于一致性協(xié)議的模型更適用.在實(shí)際工作中根據(jù)片上網(wǎng)絡(luò)調(diào)試的側(cè)重點(diǎn)不同選擇采用不同的模型.3.3.1片上網(wǎng)絡(luò)多粒度調(diào)試方法文獻(xiàn)介紹了片上網(wǎng)絡(luò)的通信模型.一種多master到單slave的映射網(wǎng)絡(luò)如圖4(a)所示,它包括N個slave網(wǎng)絡(luò)接口,一個1:N的shell以實(shí)現(xiàn)單對多的映射,一個master網(wǎng)絡(luò)接口;圖4(b)為單slave到多master的映射網(wǎng)絡(luò);圖4(c)為一個基本的多master到多slave的片上網(wǎng)絡(luò):文獻(xiàn)介紹了一種對片上網(wǎng)絡(luò)加入調(diào)試性設(shè)計的方法.如圖5所示,每一個master和slave是發(fā)送和接收通信的模塊,需要加入通信控制monitor,它有兩個功能:監(jiān)視master和slave端的通信情況,根據(jù)控制信號改變master和slave端的請求和應(yīng)答.每一個路由邏輯一般包含N:N的映射關(guān)系,對其中每一個N:1或1:N的映射,都需要一個monitor來監(jiān)控其中的映射關(guān)系,并將分析的數(shù)據(jù)和結(jié)果存儲到buffer或其他模塊.每一個1:1的master和slave之間的通道可以根據(jù)選擇加入一個probe來觀測數(shù)據(jù)的傳輸情況,以提高片上網(wǎng)絡(luò)的可視性.一個控制模塊用來控制信號的獲取和新的激勵的輸入.文獻(xiàn)提出了片上網(wǎng)絡(luò)的多粒度調(diào)試方法,充分使用了可調(diào)試性設(shè)計結(jié)構(gòu)的通信特征,特別針對片上網(wǎng)絡(luò)這一特殊的結(jié)構(gòu),將網(wǎng)絡(luò)中的通信劃分為連接層、通道層、傳輸層、消息層、消息元素層、時鐘層,提高調(diào)試信息的抽象層次,與門級電路中的單bit信號相比更容易理解和分析.對于片上網(wǎng)絡(luò)的每一個N:N的路由模塊,需要加入2N個monitor,用于記錄和分析每一個N:1或1:N映射shell的狀態(tài),這些monitor判斷其監(jiān)測的網(wǎng)絡(luò),將生成的事件(例如信號的請求或應(yīng)答握手)發(fā)送給事件node模塊.事件node是每個路由模塊對應(yīng)的一個組成事件交互網(wǎng)絡(luò)的部件,接收本路由模塊中所有monitor的事件并和其他事件node產(chǎn)生事件信息的交互,它擁有一個事件驅(qū)動的狀態(tài)機(jī)處理各種情況.控制模塊通過內(nèi)部事件和外部控制信號產(chǎn)生控制信息并發(fā)送給調(diào)試網(wǎng)絡(luò)中的各monitor、事件node,probe.片上網(wǎng)絡(luò)的狀態(tài)保存于各網(wǎng)絡(luò)接口的寄存器中,各網(wǎng)絡(luò)接口中的狀態(tài)可以通過掃描的方式導(dǎo)出.文獻(xiàn)提出的調(diào)試模型對于片上網(wǎng)絡(luò)的可調(diào)試性設(shè)計具有普遍適用性,包含觀測、記錄、修改測試向量幾種功能,而文獻(xiàn)提出的多粒度調(diào)試方法是對文獻(xiàn)方法的進(jìn)一步細(xì)化.然而,以通信為中心的調(diào)試方法側(cè)重點(diǎn)是對片上網(wǎng)絡(luò)運(yùn)行狀態(tài)的觀測和改變,需要進(jìn)一步分析來對片上網(wǎng)絡(luò)中的錯誤進(jìn)行分離,而采用掃描方式導(dǎo)出數(shù)據(jù)也需要高效的錯誤定位方法輔助.因此,在實(shí)際工作環(huán)境中,采用buffer或?qū)崟r導(dǎo)出的方式可能更加適用.3.3.2種基于cache的一致性錯誤以通信為中心的調(diào)試方法對于觀測片上網(wǎng)絡(luò)運(yùn)行狀態(tài)提供了一種有效的方法,但是在某些特定的環(huán)境下,可能需要對信息進(jìn)行更加有針對性的分析,文獻(xiàn)介紹了一種用于調(diào)試共享存儲網(wǎng)絡(luò)中的一致性錯誤的結(jié)構(gòu),利用cache的存儲空間,當(dāng)處于調(diào)試模式時,其中一些區(qū)域被用來記錄對存儲地址的訪問序列,通過訪問序列可以知道各處理器對同一地址的操作順序,結(jié)合cache需要維護(hù)的一致性協(xié)議來判定是否存在錯誤訪問.3.4信號輸出r—用于SoC的可調(diào)試性設(shè)計結(jié)構(gòu)SoC的可調(diào)試性設(shè)計有其獨(dú)特的實(shí)時性、復(fù)雜性的特點(diǎn),種類繁多的協(xié)議,不同特性的設(shè)備,使得可調(diào)試性設(shè)計往往有很強(qiáng)的針對性.文獻(xiàn)提出了一種可配置的調(diào)試性結(jié)構(gòu),為了能夠使可調(diào)試性模塊可重用,其設(shè)計包括如下組件:probenetwork——觀測信號并傳輸?shù)街付ú考木W(wǎng)絡(luò),可以跨越時鐘域;debugmonitor——對信號進(jìn)行分析的模塊,可以跨越時鐘域;wrapper——輸出等于輸入信號或控制信號傳入的激勵信號;tracer——存儲設(shè)備;capstim——事先存入激勵向量,輸出為存儲的激勵,輸入為其他模塊給它的反饋.在設(shè)計時,對各可調(diào)試性組件可以從接口到內(nèi)部狀態(tài)機(jī)進(jìn)行配置.該結(jié)構(gòu)對信息的采集提出了4種配置方式,assertion判斷(將assertion判斷邏輯加入monitor中)、event分析(對于復(fù)雜的情況以及需要提高觀測數(shù)據(jù)的抽象層次時,在monitor中加入事件分析的組合邏輯)、激勵捕獲(對于指定的激勵輸入,獲取執(zhí)行結(jié)果,通過添加capstim模塊來實(shí)現(xiàn))、假設(shè)性實(shí)驗(yàn)(采用添加wrapper的方式來置換想要改變的信號,觀測執(zhí)行結(jié)果).對于每一個實(shí)際系統(tǒng),配置需要采集信號時,根據(jù)上述特點(diǎn),可以采集有限狀態(tài)機(jī)信號、傳輸?shù)闹匾碚餍盘?特別是提供更高層次的抽象信息,如果待測設(shè)計中沒有這類信號,可以通過monitor中加入的組合邏輯生成)、assertion的輸入信號、需要進(jìn)入wrapper的信號.采用可配置的調(diào)試性設(shè)計對于越來越龐大和復(fù)雜的系統(tǒng)是一個重要趨勢.隨著集成電路設(shè)計工藝的不斷更新、功能的日趨復(fù)雜,為每一個新的設(shè)計重新進(jìn)行可調(diào)試性設(shè)計將是一個艱巨而費(fèi)時的工作,開發(fā)可調(diào)試性系統(tǒng)時進(jìn)行可配置性的設(shè)計可以節(jié)省大量的不必要開銷.3.5信號處理器的a.c目前可調(diào)試性設(shè)計逐漸成為芯片設(shè)計中必不可少的部分,各種商業(yè)芯片更是采用盡可能高效的可調(diào)試性設(shè)計.文獻(xiàn)介紹了Intel的PentiumM處理器的驗(yàn)證平臺和Pentiumpro處理器的驗(yàn)證經(jīng)驗(yàn).該平臺通過一塊FPGA將驗(yàn)證向量實(shí)時導(dǎo)入處理器,通過中斷等方式切換驗(yàn)證向量的替換和驗(yàn)證處理過程.驗(yàn)證向量來源于真實(shí)環(huán)境下導(dǎo)致處理器錯誤的大量實(shí)例.平臺提供時鐘控制到shmoo變量(電壓和時鐘頻率)控制等多種支持,同時對于系統(tǒng)各部分的狀態(tài)提供大量的存儲支持.一旦驗(yàn)證向量產(chǎn)生錯誤的結(jié)果,驗(yàn)證平臺切換到錯誤處理程序,對記錄的3種信息(狀態(tài)信息、同步信息、恢復(fù)現(xiàn)場信息)進(jìn)行分析和處理,隨后對異常情況的判斷、錯誤出現(xiàn)時間和部件的鎖定工作由軟件完成,效率非常高.文獻(xiàn)介紹了用于摩托羅拉MPC7410及其改進(jìn)型和DSP56621數(shù)字信號處理器的可調(diào)試性設(shè)計.這是一種最基本的掃描鏈結(jié)構(gòu),通過對芯片內(nèi)部的寄存器插入掃描鏈,采用jtag(JointTestActionGroup,IEEE1149.1)接口來控制數(shù)據(jù)的導(dǎo)入導(dǎo)出,不具有實(shí)時分析的能力,只提供有限的觀測功能.4可調(diào)整設(shè)計中的數(shù)據(jù)采集、存儲、導(dǎo)入和分析4.1信號的可配置性與自動化為了高效地提取有用信息,可調(diào)試性設(shè)計模塊必須對采集的信息進(jìn)行判斷和處理,例如,對存儲單元的可調(diào)試性設(shè)計,根據(jù)訪問地址判斷是否記錄其附帶的數(shù)據(jù),對流水級各部件返回的狀態(tài)信息,判斷是否停止記錄轉(zhuǎn)入錯誤處理程序等.運(yùn)用先進(jìn)的理論分析,將復(fù)雜的調(diào)試方法轉(zhuǎn)化為高效可實(shí)現(xiàn)的方法,可以減少需要采集的信號,這是提高采集效率的重要方法.在信號處理的可配置性和自動化方面,文獻(xiàn)進(jìn)行了一些探索,概括為兩個基本問題:SAT問題和QBF推導(dǎo).當(dāng)輸入信號組不變,對特定的組合邏輯需要通過SAT分析來確定信號組滿足組合邏輯的全部子集,復(fù)雜度為NP.實(shí)際環(huán)境中一個可調(diào)試性設(shè)計會提供若干個固定的寄存器,對于SAT分析得到的所有子集,通過QBF推導(dǎo),找到滿足條件的寄存器設(shè)置值,使得SAT分析得到的子集可以經(jīng)過這幾個固定的寄存器代表的判斷邏輯,得到等價于特定組合邏輯的結(jié)果.當(dāng)需要改變對采集信號的處理方法時,只需要將新的組合邏輯通過SAT分析和QBF推導(dǎo)得到等價的配置值,就可以達(dá)到僅通過改變固定的可配置硬件和固定的輸入取得可變的分析邏輯的效果.4.2實(shí)時壓縮存儲由于buffer或cache存儲容量的有限性,以及實(shí)時導(dǎo)出對帶寬的要求,常常需要對記錄數(shù)據(jù)進(jìn)行壓縮處理,壓縮的方法有兩類:1)利用數(shù)據(jù)的邏輯特性進(jìn)行壓縮.由于采集的原始數(shù)據(jù)往往是低層次的抽象,通過組合邏輯可以產(chǎn)生更高層次的抽象數(shù)據(jù).例如通過記錄待測的運(yùn)算部件提供的余數(shù)碼(residuecode)這一高層次的抽象取代了對運(yùn)算結(jié)果的記錄,通過記錄通信在通道中的狀態(tài)來取代對低粒度信息的記錄.采用高抽象數(shù)據(jù)的優(yōu)點(diǎn)是直觀,更容易被分析軟件直接利用,缺點(diǎn)是依賴于事先確定的組合邏輯對錯誤情況的覆蓋率,會損失一些信息,而這可能導(dǎo)致一些情況無法定位錯誤,必須依賴多粒度的配置或其他存儲方式的輔助.2)利用不同環(huán)境下數(shù)據(jù)的規(guī)律性進(jìn)行壓縮.例如流水級中pc值變化為等加數(shù)列,可默認(rèn)不記錄.文獻(xiàn)介紹了一種對于變化不大的多媒體數(shù)據(jù)進(jìn)行差值壓縮的可調(diào)試性設(shè)計,將存儲數(shù)據(jù)分為基地址、偏移量、數(shù)據(jù)信息、連續(xù)0數(shù)據(jù)4種類型,由于大多數(shù)數(shù)據(jù)為全0信息以及非0信息之間極小的偏移量,因此可以達(dá)到90%左右的壓縮率.在SoC環(huán)境中,壓縮是一種普遍采用的方法,而實(shí)時性壓縮也是經(jīng)常需要滿足的要求.在各種壓縮源中,相同來源的一組數(shù)據(jù)往往具有內(nèi)在的聯(lián)系性,例如同一種語言的文字并不是雜亂無章的字母或文字組合.目前對于這種特性的壓縮源,采用字典壓縮算法或字典壓縮混合其他壓縮算法比較有效.但隨之而來的問題是這些高效的壓縮算法需要記錄初始值或經(jīng)常改變字典,而有限的存儲空間在進(jìn)行覆蓋存儲時會破壞壓縮的數(shù)據(jù).在實(shí)時環(huán)境下,啟動一次壓縮流程需要初始化硬件,實(shí)時壓縮需要解決這一限制.文獻(xiàn)提出了一種實(shí)時壓縮存儲結(jié)構(gòu),并對循環(huán)buffer進(jìn)行改造以滿足壓縮算法特性的需要.利用兩套壓縮硬件輪轉(zhuǎn)工作,共用一個存儲區(qū)的方法保證了實(shí)時壓縮能正確初始化.為了不使循環(huán)buffer的覆蓋特性破壞壓縮數(shù)據(jù),將存儲區(qū)間劃分成若干區(qū)域,每個區(qū)域重啟一次壓縮算法,保存初始值,用很小的代價保存了大多數(shù)數(shù)據(jù),使得字典壓縮算法的優(yōu)勢得以利用.文獻(xiàn)提出了一種有損壓縮方法來確定錯誤范圍.對于采集的信息進(jìn)行每一層壓縮時,僅保留必要的信號以作為確定下一層的劃分依據(jù),這樣的有損壓縮——如對總線上的信號只記錄握手信息,可以用來定位大時間范圍內(nèi)的罕見錯誤,對于可重復(fù)的罕見錯誤,通過有損壓縮可以在很短時間內(nèi)定位到一個小的范圍.4.3過高速調(diào)試可調(diào)試性設(shè)計需要導(dǎo)出的數(shù)據(jù)目前有兩種:一種是各種寄存器記錄的設(shè)計內(nèi)部狀態(tài);另一種是可調(diào)試性設(shè)計存儲模塊保存的壓縮數(shù)據(jù)或各種trace.數(shù)據(jù)的導(dǎo)出也有兩種方式:一種是通過高速的調(diào)試通道,直接將壓縮數(shù)據(jù)或各種trace通過外部讀取命令送到外部存儲介質(zhì)上,這種方式需要專門的測試平臺,優(yōu)點(diǎn)是速度快,對實(shí)時調(diào)試支持好,缺點(diǎn)是目前沒有高效的通用規(guī)范,以及調(diào)試系統(tǒng)要保證調(diào)試數(shù)據(jù)導(dǎo)出通道不受待測設(shè)計錯誤的影響;另一種使用廣泛的數(shù)據(jù)導(dǎo)出方法是使用掃描鏈,優(yōu)點(diǎn)是有通用的jtag接口,簡便易用,可以通過內(nèi)建自測試存儲模塊作為buffer來保存數(shù)據(jù),然后通過jtag接口掃描出去.由于有統(tǒng)一的標(biāo)準(zhǔn),目前有很多支持的驗(yàn)證平臺,例如文獻(xiàn).但是掃描鏈方式缺點(diǎn)是速度比較慢,對于實(shí)時的需求有限制.4.4eda算法中的錯誤分析對于可調(diào)試性設(shè)計導(dǎo)出的數(shù)據(jù)一般采用軟件來推導(dǎo)和定位錯誤區(qū)域,例如結(jié)合指令在流水級內(nèi)部的狀態(tài),通過對錯誤類型的分析,定位錯誤到相應(yīng)的部件.這一分析過程使用軟件來確定有無數(shù)據(jù)依賴、向量分配錯誤、指令跳轉(zhuǎn)錯誤等一系列問題.當(dāng)軟件發(fā)現(xiàn)其中存在錯誤時,數(shù)據(jù)往往已經(jīng)隔離到單個部件和單個周期,提高了調(diào)試的效率.在對片上網(wǎng)絡(luò)的分析中,可以通過記錄片上網(wǎng)絡(luò)的各節(jié)點(diǎn)狀態(tài),分析網(wǎng)絡(luò)的堵塞情況,進(jìn)而將錯誤定位到特定的一次通信.在對訪存操作的分析中,可以通過軟件分析記錄下來的訪存操作的序,將錯誤定位到某個處理器對某個地址的一次訪存操作.對錯誤的修復(fù),既可以修改rtl設(shè)計,也可以通過工藝設(shè)計來彌補(bǔ),采用如硅后調(diào)整、PARsyn自動修復(fù)、閑置單元插入(sparecell)等方法.通過分析錯誤對系統(tǒng)的影響,可以在新的設(shè)計中采用相應(yīng)的容錯措施,以提高設(shè)計的健壯性.由于數(shù)據(jù)之間的相互關(guān)聯(lián),一次記錄可以提取出非常多的信息.文獻(xiàn)研究了如何從有限的數(shù)據(jù)中得到最大化的信息,以提高信息的可視性.這些研究為相應(yīng)eda工具的開發(fā)提供了一些可操作的方法.5可調(diào)整設(shè)計硅后的調(diào)整和驗(yàn)證應(yīng)用5.1可調(diào)試設(shè)計解決并行軟件調(diào)試的確定重構(gòu)方法5.1.1確定性重放的可調(diào)試性設(shè)計面臨的問題隨著多核處理器的出現(xiàn),并行程序應(yīng)用越來越廣泛,但隨之而來的一個問題就是并行程序的調(diào)試相對于傳統(tǒng)的串行程序更加復(fù)雜.現(xiàn)在依靠傳統(tǒng)的斷點(diǎn)等方法調(diào)試手段已經(jīng)無法保證并行程序的正確性,為了更好地調(diào)試程序,保證程序的正確性,確定性重放已經(jīng)成為一種重要方法.多核并行環(huán)境十分復(fù)雜,不確定因素很多,經(jīng)常導(dǎo)致并行程序運(yùn)行出現(xiàn)致命錯誤.為了重現(xiàn)不確定因素,確定性重放方法就是通過在程序運(yùn)行時錄制必要信息,在必要時進(jìn)行重放.由于重放只有在特定的情況下(如出錯后)才需要,因此,其效率要求相對來說不需要很高.而錄制往往要求能夠在實(shí)際發(fā)布的產(chǎn)品中運(yùn)行,這就要求錄制帶來的額外消耗要低,錄制文件要小.因此確定性重放的可調(diào)試性設(shè)計面對的的主要問題是如何解決有效錄制不確定信息,這些不確定信息主要包括各種IO,DMA操作;程序中遇到的中斷、陷阱;多核系統(tǒng)的多線程并行程序中對共享存儲訪存的訪存順序.一般的程序中IO、中斷、DMA等不確定信息相對不頻繁,因此錄制它們成本較低.而對于并行程序,各線程的CPU核間共享存儲訪問卻很頻繁,因此,高效錄制的關(guān)鍵之處就是如何高效地錄制共享存儲的訪存順序.錄制這些信息有軟件(如Microsoft的iDNA,Intel的pinSEL)和硬件兩種方法,但軟件方法運(yùn)行效率的極低,有研究表明,這些軟件方法導(dǎo)致程序運(yùn)行比原始的程序要慢10倍.因此,近年來,研究者開始考慮利用硬件錄制這些信息,從而降低運(yùn)行時的消耗.其基本的錄制結(jié)構(gòu)如圖6所示:下面將介紹確定性重放算法利用可調(diào)試性設(shè)計的結(jié)構(gòu)采集、存儲,以及重放數(shù)據(jù)的研究進(jìn)展.5.1.2通過前向圖進(jìn)行化簡較早(2003年)提出的確定性重放可調(diào)試性設(shè)計是Xu等人的FDR.該設(shè)計是在緩存模型為基于目錄(directory-based)、順序一致性(sequentiallyconsistent,SC)的多核CPU系統(tǒng)上實(shí)現(xiàn)的.對于錄制的關(guān)鍵所在——訪存競爭結(jié)果的錄制則是通過如下方法來提高效率.在順序一致性模型的系統(tǒng)中,每個線程的所有指令形成一個序列(稱totalorder),這種序列可以通過一個叫LamportClock來表示,且對訪存滿足“每次讀出來的結(jié)果都是最近一次寫進(jìn)去的(aloadgetvaluelaststoredtoanaddress)”.為了用盡量少的log記錄這些指令訪存順序,FDR先把前述順序關(guān)系用有向弧表示,然后對有向弧形成的有向圖進(jìn)行化簡,化簡的主要依據(jù)是這種訪存順序的傳遞性(如a<b,b<c,a<c依據(jù)傳遞性只需記錄a<b,b<c).采用這種方法可以大大減少訪存記錄但不會造成重放所需要的信息不足.最終,該方法取得了比較小的log(25MB/second/processor)以及overhead(小于2%).不過,該算法有不足之處,首先,該算法并不是記錄程序運(yùn)行后所有的信息,而是只能記錄最近的一段信息(大約1s),從而不能從程序執(zhí)行處開始重放;其次,該算法所基于的模型是順序一致性模型,在這種模型下并行程序運(yùn)行效率比較低.在2006年,針對上述缺點(diǎn),Xu等人又對FDR進(jìn)行了改進(jìn),改進(jìn)后的算法為RTR.在RTR中,它將訪存順序依賴具有可向量化(vectorizable)的特性進(jìn)一步減少記錄訪存順序依賴.在此之前的2005年,Narayanasamy等人的BugNet也對FDR進(jìn)行了優(yōu)化.在2008年,又有兩種方法在ISCA會議上提出:它們分別是Montesinos等人的Delorean等人和Hower等人的Rerun.在Delorean的設(shè)計中,引入了一個基于分塊(chunk-based)的概念.通過對指令進(jìn)行分塊,只記錄塊內(nèi)的訪存順序依賴,從而進(jìn)一步減小了log的大小以及硬件消耗,該設(shè)計的一個關(guān)鍵就是如何進(jìn)行分塊.在此之前的2006年,Narayanasamy等人的Strata算法也采用了類似的分層(stratum)方法.而在Rerun的設(shè)計中,則采用了和前面各種算法不一樣的思路,上述算法都是通過記錄關(guān)鍵的訪存依賴來實(shí)現(xiàn)重放,而在Rerun的設(shè)計中,則是記錄那些時間段和其他線程沒有訪存沖突(即不存在訪存依賴).將這些無沖突的程序區(qū)間分成原子塊,然后記錄這些原子塊之間的執(zhí)行順序依賴.以上的方法都是關(guān)注如何將訪存依賴用盡可能少的log記錄.而在2009年,Lee等人則提出一種不用記錄訪存依賴的方法.他們通過深入分析并行程序,提出對load-based的程序,只需要單獨(dú)記錄每個線程的所有輸入,即可實(shí)現(xiàn)每個進(jìn)程依賴重放并分析出訪存依賴;并實(shí)現(xiàn)了一個離線的基于YicesSMT的重放器,不過,不記錄訪存依賴是以犧牲重放效率為代價的.而在ASPLOS2009會議上,Montesinos等人提出的capo則關(guān)注如何能用更“通用”的硬件、更少的硬件設(shè)計改動,以及如何定義一個好的軟硬件接口來記錄和重放.5.2可調(diào)整設(shè)計用于硅后驗(yàn)證的數(shù)據(jù)沖突檢測5.2.1動態(tài)檢測技術(shù)對于多核系統(tǒng)下的多線程程序,對共享存儲進(jìn)行訪存同步是一個非常重要的機(jī)制.當(dāng)幾個線程共同訪問一個共享變量時,至少有一個是寫時就會產(chǎn)生數(shù)據(jù)沖突(datarace),程序就可能執(zhí)行錯誤.由于數(shù)據(jù)沖突的存在直接影響到程序執(zhí)行是否正確.因此,對數(shù)據(jù)沖突進(jìn)行檢測很有必要,而這種檢測又分為靜態(tài)檢測和動態(tài)檢測.靜態(tài)檢測主要通過軟件(如編譯器)實(shí)現(xiàn),在此不討論.動態(tài)檢測又分為軟件方法和硬件方法,和確定性重放一樣,純軟件的方法意味著程序運(yùn)行的極其低效(如Eraser對有些程序有10~30倍的額外消耗),因此很有必要用硬件輔助來檢測數(shù)據(jù)沖突.對于利用硬件檢測數(shù)據(jù)沖突,最關(guān)鍵的問題就是如何用盡可能少(最好盡量少更改現(xiàn)有硬件的架構(gòu),如緩存機(jī)制)的硬件資源實(shí)現(xiàn)不存在漏報(falsenegative)和盡量減少誤報(falsepositive).為了用盡量少的硬件資源實(shí)現(xiàn)比較理想的檢測效果,近年來,國際學(xué)術(shù)界提出了兩類方法:一類是基于因果關(guān)系(happens-before)關(guān)系;另一類是基于類似鎖協(xié)議的方法(locksetapproach).但在2009年,又有些新的方法提出:ShantanuGupta等人提出用事務(wù)內(nèi)存;Nistor等人的Light64則是通過對執(zhí)行的歷史記錄進(jìn)行Hash,通過比較Hash值來判斷是否存在沖突.下面我們將簡要介紹這些算法和相應(yīng)可調(diào)試性設(shè)計模型的研究情況.5.2.2基于cache的數(shù)據(jù)競爭檢測2003年P(guān)rvulovic等人提出一種叫ReNact的數(shù)據(jù)沖突檢測設(shè)計.該設(shè)計主要基于TLS(thread-levelspeculation)機(jī)制,通過一個類似于一種有序的“向量”時鐘(vectorclocks),通過這些時鐘的比較來判斷是否出現(xiàn)數(shù)據(jù)競爭.為了防止比較的數(shù)目過大,該設(shè)計將執(zhí)行分成一個個叫Epoch的塊,只比較塊內(nèi)的“向量”時鐘.要求分塊的機(jī)制必須要有很好的設(shè)計,保證塊間沒有訪存沖突.該算法的硬件消耗比較大,不夠理想,對線程數(shù)較多的程序效果運(yùn)行Overhead也比較大.在2006的HPCA會議上,Prvulovic提出了一種Overhead極小的設(shè)計CORD,這是一個基于happens-before的方法,CORD通過指令執(zhí)行的邏輯時間(logicaltime)和存儲地址時間戳(timestamp)的比較來判斷是否存在沖突.為了減少比較次數(shù),對于一個讀操作只會和寫操作比較,因?yàn)橹挥袑懖僮鞑趴赡芎妥x操作發(fā)生數(shù)據(jù)沖突.該方法由于是以cache行為單位加時間戳的,所以可能由于偽共享(faslesharing)而導(dǎo)致誤報(falsepostive).在CORD出現(xiàn)的第2年,即2007年,同樣在HPCA會議上,Zhou等人提出了一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)二年級口算題之一
- 五年級口算競賽題
- 店鋪出租合同范本
- 小區(qū)弱電合同范本
- 2025年度車位物業(yè)管理與社區(qū)老年活動中心服務(wù)合同
- 2025年度智能小區(qū)物業(yè)與業(yè)主服務(wù)合同模板范文
- 二零二五年度離婚后子女撫養(yǎng)費(fèi)及教育支持協(xié)議
- 國際科技合作項目專題合作協(xié)議書范本
- 2025年度電影音樂創(chuàng)作與制作聘用合同
- 二零二五年度環(huán)保監(jiān)測與治理服務(wù)團(tuán)隊聘用協(xié)議
- 2025年新生兒黃疸診斷與治療研究進(jìn)展
- 廣東大灣區(qū)2024-2025學(xué)年度高一上學(xué)期期末統(tǒng)一測試英語試題(無答案)
- 2025年四川中煙工業(yè)限責(zé)任公司招聘110人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 課題申報書:數(shù)智賦能高職院校思想政治理論課“金課”實(shí)踐路徑研究
- 課題申報書:反饋對青少年努力投入的影響機(jī)制及干預(yù)研究
- 康復(fù)評定頸椎病
- 公司安全生產(chǎn)事故隱患內(nèi)部報告獎勵工作制度
- H3CNE認(rèn)證考試題庫官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(適合3-13歲兒童)
- 公司章程范本(完整版)
- 廠房委托經(jīng)營管理合同范本
評論
0/150
提交評論