《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第6期
陳 崢
上海兆芯集成電路有限公司 軟件部,上海201203
摘要: 隨著GPU架構(gòu)日益復(fù)雜,對硬件問題的調(diào)試越來越成為硬件工程師面臨的一個(gè)挑戰(zhàn)。造成硬件問題調(diào)試?yán)щy的一個(gè)主要原因是硬件工程師沒有辦法清楚知道硬件中問題發(fā)生的過程,只能通過一些簡略信息對問題發(fā)生的環(huán)境和原因進(jìn)行猜測。提出一種新的調(diào)試架構(gòu),相比于傳統(tǒng)方式,新的架構(gòu)能夠?yàn)橛布こ處熖峁┮欢芜B續(xù)時(shí)間內(nèi)連續(xù)的動態(tài)數(shù)據(jù),使得硬件工程師能夠?qū)σ欢螘r(shí)間內(nèi)硬件狀況的變化過程有一個(gè)全面了解,甚至硬件開發(fā)人員能夠把這些信息導(dǎo)入RTL仿真環(huán)境模擬重現(xiàn)硬件問題,極大地提高硬件工程師解決問題的效率。
中圖分類號: TP311
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174703
中文引用格式: 陳崢. 基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,44(6):8-10,14.
英文引用格式: Chen Zheng. A GPU debug system based on continuous dynamic data[J]. Application of Electronic Technique,2018,
44(6):8-10,14.
A GPU debug system based on continuous dynamic data
Chen Zheng
Software Department,Shanghai Zhaoxin Semiconductor Co.,Ltd. Shanghai 201203,China
Abstract: Nowadays, with the increasing complexity of digital circuits design, the post silicon debugging becomes a major challenging for engineers. For post silicon debugging, the lacking of observability is the main problem, the engineers can’t know exactly what happened inside the chip, even with the limited debug registers. Here we propose a method, which could provide much more observability compared to traditional methods. And with this method, the engineers could know what happened inside the chip exactly, and could even reproduce the problem in RTL simulation, in most of the circumstances.
Key words : GPU;debug system;dynamic data;clock interrupt

0 引言

    隨著GPU技術(shù)的發(fā)展,GPU結(jié)構(gòu)變得越來越復(fù)雜,對硬件的調(diào)試成為一個(gè)越來越困難的任務(wù)。硬件調(diào)試的困難在于硬件本身的不透明性。在發(fā)生問題的時(shí)候,工程師沒有辦法像軟件調(diào)試那樣,看到硬件內(nèi)部發(fā)生了什么,也不能像軟件調(diào)試那樣,半路設(shè)一個(gè)斷點(diǎn),把硬件停下來。

    為方便對硬件的調(diào)試,GPU設(shè)計(jì)人員開發(fā)出很多種硬件調(diào)試方法來降低硬件調(diào)試的難度,傳統(tǒng)上有DebugBus、掃描路徑法、ARM CoreSightTM技術(shù)。這些方法的目的都是用某種方法將硬件內(nèi)部信息暴露給工程師,降低硬件的不透明性,但其暴露出的信息都是硬件內(nèi)部某個(gè)時(shí)間點(diǎn)的靜態(tài)信息,對硬件工程師的幫助是有限的。

    本文提出一種新的調(diào)試架構(gòu),相對于傳統(tǒng)技術(shù),它能夠提供一段時(shí)間內(nèi)的動態(tài)數(shù)據(jù)給工程師,讓工程師能夠了解在這段時(shí)間內(nèi)硬件內(nèi)部狀況是如何變化的,使得工程師能迅速定位到造成問題的異常變化。甚至更進(jìn)一步,工程師可以將得到的信息導(dǎo)入模擬環(huán)境,在模擬環(huán)境里面重現(xiàn)硬件的問題。

1 傳統(tǒng)硬件調(diào)試方式及其缺陷

1.1 DebugBus

    DebugBus技術(shù)是最早在芯片設(shè)計(jì)中引進(jìn)的調(diào)試技術(shù)[1-2]。其基本原理是在硬件設(shè)計(jì)中添加一批狀態(tài)寄存器,每個(gè)模塊都把自己的狀態(tài)編碼后送到這個(gè)狀態(tài)寄存器中。當(dāng)發(fā)生問題的時(shí)候,工程師讀取狀態(tài)寄存器中的狀態(tài)碼,從而可以分析問題發(fā)生的原因。

    DebugBus技術(shù)缺陷在于,狀態(tài)寄存器的位是有限的,所以能反映模塊的狀態(tài)也是有限的,工程師通過狀態(tài)碼只能大概了解模塊的真實(shí)情況。

1.2 基于掃描路徑法的可測性設(shè)計(jì)技術(shù)

    基于掃描路徑法的可測性設(shè)計(jì)技術(shù)是可測性設(shè)計(jì)(DFT)技術(shù)的一個(gè)重要方法[3-5],這種方法能夠從芯片外部設(shè)定電路中各個(gè)觸發(fā)器的狀態(tài),并通過簡單的掃描鏈設(shè)計(jì),掃描觀測觸發(fā)器是否工作在正常狀態(tài),以此來檢測電路的正確性。

    這種技術(shù)的缺陷在于它速度太慢,因?yàn)樗且粋€(gè)串行的操作,不能一次讀出全部數(shù)據(jù),導(dǎo)致工程師不能得到一個(gè)即時(shí)的數(shù)據(jù)[6]。

1.3 ARM CoreSightTM技術(shù)

    CoreSightTM技術(shù)是ARM公司在2004年推出的一個(gè)新的調(diào)試體系架構(gòu),以提供更為強(qiáng)大的調(diào)試能力[7]

    CoreSightTM技術(shù)比較適合于軟件調(diào)試,因?yàn)樗峁┙o工程師的是模塊之間的指令和寄存器傳遞序列,軟件工程師可以知道自己送給硬件的命令是如何在硬件各個(gè)模塊之間傳遞。但硬件開發(fā)工程師更多的是想了解模塊和模塊之間完整的會話信息,甚至是模塊內(nèi)部的一些信號[8-9]。

2 新調(diào)試系統(tǒng)硬件部分

    對于硬件開發(fā)工程師來說,要調(diào)試硬件問題需要得到大量硬件內(nèi)部模塊和模塊之間的會話信息,這些信息最好是某個(gè)時(shí)間段內(nèi)連續(xù)的信息,而不是簡單的某個(gè)時(shí)間點(diǎn)的信息。

    但是要把所有這些信息收集給調(diào)試人員,就需要解決兩個(gè)問題:

    第一,每個(gè)時(shí)鐘周期產(chǎn)生的信息是大量的,為了不影響后面的時(shí)序,必須在一個(gè)時(shí)鐘周期內(nèi)處理完。但硬件帶寬的限制又決定了這些不可能在一個(gè)周期內(nèi)處理完。這也是過去技術(shù)上只能提供簡略信息的主要原因。

    第二,由于每個(gè)時(shí)鐘周期都產(chǎn)生大量的信息,因此我們要處理的整體信息量非常巨大,導(dǎo)致這些信息的存儲就是一個(gè)問題。

    為了解決這些問題,設(shè)計(jì)了一個(gè)雙時(shí)鐘系統(tǒng)。當(dāng)我們發(fā)現(xiàn)需要存儲信息的時(shí)候,我們就把全局時(shí)鐘停止,從而使得各個(gè)模塊停止工作。同時(shí)我們用另外一套時(shí)鐘系統(tǒng)驅(qū)動調(diào)試模塊收集和壓縮信息。當(dāng)信息收集完成以后,就把相關(guān)的數(shù)據(jù)發(fā)送到存儲模塊去存儲。當(dāng)存儲完成時(shí)候,再重新激活全局時(shí)鐘,讓各個(gè)模塊繼續(xù)工作。

    由于采用了雙時(shí)鐘系統(tǒng),提供了足夠的時(shí)間來進(jìn)行信息的收集和存儲。因此在存儲媒介上,我們放棄了價(jià)格昂貴但容量偏小的閃存,而是選擇了從板載內(nèi)存中分配一塊較大的區(qū)間,這樣就能在成本范圍內(nèi)提供能夠存放足夠多信息的存儲空間。

    根據(jù)以上設(shè)計(jì),我們把新的調(diào)試系統(tǒng)分成了5個(gè)模塊。

2.1 會話取樣模塊

    會話取樣模塊負(fù)責(zé)將模塊和模塊之間的會話傳給會話監(jiān)控模塊或者會話記錄模塊。假設(shè)我們有兩個(gè)模塊A和B,一般情況下,模塊A和模塊B之間通過接口C連接,互相傳遞信息,如圖1所示。

wdz1-t1.gif

    將會話取樣模塊放在接口C上,通過它來檢查模塊A和模塊B之間是否有會話,如果有會話發(fā)生,那么就把會話內(nèi)容傳給會話存儲模塊,并由會話存儲模塊將內(nèi)容整理存儲到存儲媒介上,如圖2所示。

wdz1-t2.gif

2.2 會話監(jiān)控模塊

    會話監(jiān)控模塊負(fù)責(zé)監(jiān)控模塊之間的會話,一旦它發(fā)現(xiàn)模塊A和模塊B之間發(fā)生了會話,那么會話監(jiān)控模塊就會通知全局時(shí)鐘控制模塊,把所有模塊的時(shí)鐘中止,如圖3所示。

wdz1-t3.gif

2.3 會話記錄模塊

    會話記錄模塊負(fù)責(zé)在全局時(shí)鐘停止時(shí),將會話的內(nèi)容記錄到內(nèi)存中。我們沒有采用傳統(tǒng)上的內(nèi)部Cache的模式,因?yàn)殡m然內(nèi)存中記錄比較慢,但是可以提供極大的記錄空間,可以記錄相當(dāng)長時(shí)間的會話。只要內(nèi)存足夠大,就可以記錄足夠長的會話。

    會話記錄模塊會把會話記錄循環(huán)寫入對于軟件分配給硬件的內(nèi)存,同時(shí)它提供兩個(gè)寄存器給軟件用于判斷是否有信息寫入。一個(gè)寄存器表示內(nèi)存中未處理信息的頭部,一個(gè)寄存器表示內(nèi)存中未處理信息的尾部。會話記錄模塊在寫入信息前,會檢查未處理信息的尾部是否和未處理信息頭部重合,如果是,說明內(nèi)存中信息已經(jīng)滿了,那么記錄模塊會停下等待軟件把信息讀走。

    由于各個(gè)模塊之間會話大小不同,因此在存儲的數(shù)據(jù)結(jié)構(gòu)上,我們沒有采取固定長度的數(shù)據(jù)結(jié)構(gòu),而是設(shè)計(jì)了一種變長的數(shù)據(jù)結(jié)構(gòu)。它分為頭部和數(shù)據(jù)兩塊。頭部是一個(gè)固定結(jié)構(gòu),表面數(shù)據(jù)包的信息,而其后跟隨著一個(gè)變長的數(shù)據(jù)流。它包含了三部分信息:

    (1)模塊ID:記錄了信息來自哪個(gè)模塊。

    (2)數(shù)據(jù)長度:會話信息的大小。

    (3)時(shí)間戳:會話發(fā)生的時(shí)間,可以用于仿真模型。

    在實(shí)際應(yīng)用中,內(nèi)存控制器只有一個(gè)輸入,為了協(xié)調(diào)各個(gè)模塊的寫入順序,我們專門設(shè)計(jì)了一個(gè)記錄控制器,用來接收各個(gè)會話記錄模塊的輸出,并轉(zhuǎn)送到內(nèi)存控制器中,如圖4所示。

wdz1-t4.gif

2.4 全局時(shí)鐘控制器

    該模塊用來控制各個(gè)模塊的時(shí)鐘。一旦一個(gè)會話記錄的請求發(fā)生,那么全局時(shí)鐘控制器就會向各個(gè)模塊發(fā)出時(shí)鐘停止信號,中止各個(gè)模塊的運(yùn)行,在會話記錄完成后,才會發(fā)出時(shí)鐘繼續(xù)的信號。

    圖5就是全局時(shí)鐘控制器的模塊圖,這是整個(gè)架構(gòu)設(shè)計(jì)中最基本的一塊。

wdz1-t5.gif

2.5 調(diào)試時(shí)鐘模塊

    在全局時(shí)鐘被中止的時(shí)候,雖然其他模塊都停止工作了,但是會話記錄模塊、會話取樣模塊、內(nèi)存控制器等一系列模塊都還要繼續(xù)工作,因?yàn)橄到y(tǒng)為他們單獨(dú)設(shè)置了這么一個(gè)時(shí)鐘模塊,在全局時(shí)鐘被中止時(shí),繼續(xù)為其他模塊提供時(shí)鐘中斷。

3 新調(diào)試系統(tǒng)的軟件部分

    軟件部分的功能就是根據(jù)工程師的需求配置相應(yīng)的調(diào)試環(huán)境,并將硬件產(chǎn)生的信息存儲到相應(yīng)的文件中去。

    雖然新調(diào)試系統(tǒng)解決了存儲時(shí)間較長的問題,但是為了提高調(diào)試效率,在存儲過程中,我們采用多Buffer輪替的方式來提高數(shù)據(jù)的讀取效率。

4 應(yīng)用的成果

    在新一代GPU的結(jié)構(gòu)中加上了新的硬件調(diào)試架構(gòu),取得了初步的成果。

    在這次設(shè)計(jì)開發(fā)中,在FPGA上通過大量的應(yīng)用,利用新的調(diào)試系統(tǒng)對L2Cache進(jìn)行了研究,獲取了大量的數(shù)據(jù)。圖6是在不同的L1Cache設(shè)計(jì)下,L2 Cache和內(nèi)存存儲模塊(MXU)之間會話后的分析結(jié)果。從圖中,我們可以清晰地看到在實(shí)際中,L2 Cache是如何處理接收的請求,以及其中的4個(gè)bank各自的負(fù)載情況如何,使得硬件開發(fā)人員可以清晰地發(fā)現(xiàn)Cache設(shè)計(jì)中存在的問題,并為優(yōu)化Cache結(jié)構(gòu)提供了充分的數(shù)據(jù)基礎(chǔ)。

wdz1-t6.gif

    另外,我們也在FPGA上重現(xiàn)了一些硬件隨機(jī)問題,并且獲取了相應(yīng)的數(shù)據(jù)。在把這些數(shù)據(jù)導(dǎo)入我們的RTL仿真環(huán)境后,成功地在模擬環(huán)境中重現(xiàn)了這些硬件問題。現(xiàn)在通過調(diào)試系統(tǒng)獲取信息進(jìn)行模擬重現(xiàn),解決了過去硬件開發(fā)人員調(diào)試硬件問題由于硬件封裝而只能通過間接信息分析來調(diào)試的問題。硬件開發(fā)人員可以根據(jù)波形來分析出問題的原因,極大地提高開發(fā)人員調(diào)試的速度。

5 結(jié)語

    利用這種雙時(shí)鐘架構(gòu),我們能否更進(jìn)一步開發(fā)單步調(diào)試系統(tǒng),使得硬件調(diào)試象軟件調(diào)試一樣,可以設(shè)斷點(diǎn),停下后即時(shí)查看硬件狀態(tài)。如果能實(shí)現(xiàn),那將更進(jìn)一步簡化硬件調(diào)試能力,提高硬件開發(fā)水平,這也是我們下一步的研究方向之一。

參考文獻(xiàn)

[1] SUNIL C.On chip logic analyzer debug bus:US,US6822474.[P/OL].(2004-11-23)[2017-08-30].http://www.freep-atentsonline.com/6822474.pdf.

[2] JOHNSON T J.System and method for using a debug bus as a capture buffer:US,US 20040193790 A1.[P/OL].2004-09-30.http://www.freepatentsonline.com/20040193790.pdf.

[3] AERTS J,MARINISSEN E J.Scan chain design for test time reduction in core-based ICs[C].International Test Conference,1998:448-457.

[4] KO H F,NICOLICI N.Functional scan chain design at RTL for skewed-load delay fault testing[C].Asian Test Symposium,2004:454-459.

[5] GHOSH D,BHUNIA S,ROY K.Multiple scan chain design technique for power reduction during test application in BIST[C].IEEE International Symposium on Defect & Fault Tolerance in VLSI Systems,2003:191.

[6] HSU L C,CHEN H M.On optimizing scan testing power and routing cost in scan chain design[C].International Symposium on Quality Electronic Design.2006:451-456.

[7] ARM Information Center ARM CoreSight Architecture Speci-fication[EB/OL].[2013-09-26].http://infocenter.arm.com/help/topic/com.arm.doc.ihi0029d/IHI0029D_coresight_archi-tecture_spec_v2_0.pdf.

[8] MARTIN T.Debugging with CoreSight.The Designer's Guide to the Cortex-M Processor Family[M].Newnes,2016:217-254.

[9] 韓格欣,許翔,劉嘯宇,等.ARM CoreSight調(diào)試與追蹤體系在Cortex M3內(nèi)核中的實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2014(7):22-24.



作者信息:

陳  崢

(上海兆芯集成電路有限公司 軟件部,上海201203)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品久久久久天堂| 狠狠色狠狠色综合人人| 合欧美一区二区三区| 亚洲欧美激情四射在线日 | 欧美香蕉视频| 欧美日韩精品免费观看视频完整| 欧美jizz19hd性欧美| 蜜桃伊人久久| 男女视频一区二区| 欧美chengren| 欧美电影资源| 欧美另类综合| 欧美日韩在线综合| 国产精品久久久久免费a∨| 欧美四级在线观看| 亚洲性夜色噜噜噜7777| 亚洲免费在线精品一区| 久久精品系列| 久久国产精品久久精品国产| 亚洲大胆人体在线| 亚洲欧洲日韩在线| 这里只有精品丝袜| 欧美影院在线| 久久免费观看视频| 欧美激情中文字幕乱码免费| 欧美视频在线一区二区三区| 欧美午夜电影一区| 欧美一区二区免费| 久久久久久久波多野高潮日日| 另类成人小视频在线| 欧美激情欧美激情在线五月| 欧美日韩国产成人在线观看| 欧美香蕉大胸在线视频观看| 国产欧美日韩一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲第一色在线| 亚洲久久一区| 亚洲欧美一区二区三区在线| 欧美一区二区视频在线观看| 亚洲激情小视频| 一本色道久久99精品综合 | 亚洲自拍都市欧美小说| 欧美在线观看一区二区| 噜噜噜久久亚洲精品国产品小说| 欧美激情网友自拍| 国产精品欧美日韩| 在线免费观看日本一区| 亚洲欧洲在线免费| 亚洲一二三四区| 亚洲国产成人久久| 亚洲视频每日更新| 久久成人av少妇免费| 欧美国产日韩a欧美在线观看| 欧美视频一区二区三区四区| 国产欧美一区二区色老头| 亚洲大片免费看| 亚洲制服欧美中文字幕中文字幕| 久久精品91| 亚洲午夜av| 久久亚洲国产成人| 欧美日韩系列| 激情小说另类小说亚洲欧美| a4yy欧美一区二区三区| 欧美在线精品一区| 亚洲校园激情| 免费亚洲电影在线| 国产精品一区二区三区四区五区| 91久久亚洲| 欧美一区二区三区日韩| 亚洲卡通欧美制服中文| 欧美网站在线观看| 亚洲午夜国产成人av电影男同| 亚洲欧美日本日韩| 久久麻豆一区二区| 免费观看成人| 国产精品porn| 狠狠色噜噜狠狠色综合久| 亚洲人成人99网站| 欧美伊人久久大香线蕉综合69| 在线亚洲电影| 蜜桃久久精品乱码一区二区| 国产精品视频在线观看| 亚洲国产精品成人综合| 亚洲欧美成人一区二区三区| 亚洲精品国产视频| 欧美一区视频| 欧美日韩亚洲一区二区三区在线| 一区二区三区我不卡| 亚洲欧美日韩国产一区二区三区| 日韩一级黄色大片| 久久免费一区| 国产伦精品一区二区| 日韩亚洲欧美一区| 亚洲精品乱码久久久久久日本蜜臀| 欧美在线观看视频一区二区三区| 欧美日韩在线播放三区| 亚洲高清网站| 久久精品国产免费| 久久精品国产欧美激情| 国产精品成人一区二区网站软件 | 夜夜嗨av一区二区三区四区| 久久久夜夜夜| 国产亚洲福利社区一区| 亚洲午夜激情网站| 亚洲一级二级| 欧美日韩伦理在线免费| 亚洲国产精品国自产拍av秋霞| 久久精品国产一区二区三| 久久成人一区| 国产区亚洲区欧美区| 亚洲一区二区在线免费观看| 国产精品99久久久久久久久久久久| 欧美成人激情在线| 在线高清一区| 亚洲国产精品国自产拍av秋霞| 久久男女视频| 尤物yw午夜国产精品视频| 久久精品国产免费| 老司机67194精品线观看| 狠狠色狠狠色综合人人| 久久国产精品久久精品国产| 久久久欧美一区二区| 国产综合婷婷| 亚洲电影免费| 免费看黄裸体一级大秀欧美| 亚洲国产成人精品久久| 亚洲人成在线播放网站岛国| 你懂的视频欧美| 91久久在线观看| 99国产精品99久久久久久粉嫩| 欧美精品一区三区| 亚洲精选一区| 亚洲在线一区二区三区| 国产精品青草久久| 午夜精品久久99蜜桃的功能介绍| 欧美一区在线看| 国产午夜精品在线| 久久精品首页| 欧美精品在线观看播放| 99精品久久久| 亚洲欧美久久久| 国产午夜精品一区二区三区视频 | 欧美日韩亚洲综合在线| 一区二区三区高清视频在线观看| 亚洲欧美日产图| 国产日本欧美在线观看| 久久国产精品一区二区三区四区| 美日韩免费视频| 久久国产精品电影| 国产日韩欧美精品在线| 欧美在线播放视频| 免费人成网站在线观看欧美高清 | 国外成人在线视频| 91久久久国产精品| 欧美日韩免费高清| 亚洲一区日韩在线| 久久久久在线| 91久久精品一区二区别| 亚洲综合久久久久| 韩国av一区二区| 日韩午夜在线播放| 国产精品乱码妇女bbbb| 久久精品国产免费观看| 欧美精品一区二区三区四区| 亚洲一二三级电影| 亚洲三级毛片| 国产精品高潮呻吟视频| 亚洲一区二区欧美| 久久久久久久综合日本| 亚洲国产婷婷综合在线精品| 蜜桃av综合| 激情亚洲成人| 一区二区三区国产在线| 国产精品综合不卡av| 最新国产精品拍自在线播放| 国产精品99一区二区| 久久av在线| 欧美日韩一区二区视频在线 | 一区福利视频| 亚洲影院污污.| 亚洲欧美另类久久久精品2019| 亚洲欧美日韩一区二区三区在线观看 | 亚洲巨乳在线| 久久久久国产精品一区二区| 亚洲日本视频| 久久精品99| 日韩视频免费在线| 久久久之久亚州精品露出| 一区二区三区免费看| 免费成人性网站| 另类亚洲自拍| 国产精品一区免费在线观看| 亚洲激情视频网| 国产伦精品一区二区三区免费迷| 亚洲日本成人女熟在线观看| 国产精品一区二区在线| 一本不卡影院| 伊人久久综合| 欧美一区二区三区久久精品| 亚洲另类在线视频|