《電子技術(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亚洲国产精品_日韩亚洲一区二区
一区二区三区 在线观看视| 亚洲欧美日韩直播| 国产精品青草综合久久久久99| 欧美大片免费| 久久这里有精品15一区二区三区 | 亚洲男人影院| 中文精品一区二区三区| 亚洲毛片网站| 9人人澡人人爽人人精品| 日韩视频不卡| 99精品欧美| 一区二区av在线| 亚洲午夜女主播在线直播| 亚洲视频免费看| 亚洲视频在线观看视频| 亚洲香蕉在线观看| 亚洲一区二区三区四区视频 | 欧美日韩成人在线视频| 欧美精品激情| 欧美色图五月天| 欧美午夜片欧美片在线观看| 欧美亚州在线观看| 国产精品视频yy9299一区| 国产欧美一区二区在线观看| 国产区日韩欧美| 国产一区自拍视频| 永久免费毛片在线播放不卡| 亚洲二区精品| 日韩亚洲一区二区| 亚洲影院在线观看| 欧美在线播放高清精品| 亚洲高清在线精品| 亚洲久久在线| 亚洲综合社区| 久久精品九九| 免费看黄裸体一级大秀欧美| 欧美精品久久久久久久免费观看| 欧美日韩国产免费观看| 夜夜夜久久久| 9人人澡人人爽人人精品| 一区二区三区四区精品| 午夜精品999| 亚洲国产精品成人综合| 亚洲免费电影在线| 亚洲欧美欧美一区二区三区| 久久er精品视频| 老司机一区二区三区| 欧美精品免费视频| 国产精品高清在线| 韩日欧美一区二区| 亚洲精品婷婷| 午夜精品久久久久久久99水蜜桃 | 亚洲人成网站999久久久综合| 一区二区欧美视频| 欧美一区2区三区4区公司二百| 亚洲国产日韩一区| 亚洲一区欧美一区| 久久综合色婷婷| 欧美视频在线一区二区三区| 国产日本欧美一区二区| 1204国产成人精品视频| 亚洲国产天堂久久综合| 亚洲在线黄色| 亚洲精品乱码久久久久久久久| 亚洲影音一区| 嫩草国产精品入口| 国产精品久久久久一区二区三区| 韩国欧美一区| 亚洲一级影院| 日韩亚洲精品在线| 欧美在线免费观看视频| 欧美激情一区二区三区四区| 国产免费成人| 久久久中精品2020中文| 国产精品日韩久久久| 国产一区二区三区日韩欧美| 亚洲风情亚aⅴ在线发布| 亚洲伦理在线免费看| 欧美亚洲综合久久| 一区二区欧美日韩视频| 性欧美videos另类喷潮| 免费欧美在线视频| 国产精品久久久久高潮| 亚洲高清免费在线| 亚洲欧美制服中文字幕| 亚洲精品中文字| 久久精品国产久精国产一老狼| 欧美精品一区在线发布| 国产乱码精品一区二区三区av| 亚洲国产欧美在线人成| 欧美一二三区在线观看| 一区二区三区四区五区精品视频| 久久精品一区二区三区不卡牛牛| 欧美日韩成人激情| 黄色在线一区| 亚洲摸下面视频| 亚洲图片欧洲图片av| 久久中文欧美| 国产女主播一区| 99re66热这里只有精品3直播| 亚洲国产黄色片| 欧美亚洲免费电影| 欧美三级视频在线| 亚洲国产精品久久久| 午夜欧美视频| 亚洲午夜一区| 欧美精品久久久久久久免费观看| 在线观看亚洲精品视频| 亚洲欧美日韩综合一区| 午夜精品在线看| 一本色道久久综合亚洲精品不卡 | 午夜激情久久久| 精品二区视频| 久久夜色精品国产亚洲aⅴ| 欧美三级电影网| 亚洲国产三级| 亚洲国产精品第一区二区| 欧美在线视频二区| 美女脱光内衣内裤视频久久网站| 国产欧美在线| 午夜精品久久久久久久99黑人| 亚洲自拍电影| 欧美精品v日韩精品v韩国精品v | 每日更新成人在线视频| 好看的av在线不卡观看| 午夜欧美理论片| 欧美与欧洲交xxxx免费观看| 国产精品伦理| 国产精品99久久久久久白浆小说 | 国产午夜久久久久| 亚洲欧美日韩国产一区二区三区 | 亚洲午夜免费视频| 亚洲免费影视| 国产精品护士白丝一区av| 99国产一区| 亚洲午夜一区| 国产精品中文字幕欧美| 午夜精品一区二区三区在线| 欧美一区二区在线免费观看| 国产欧美一区二区三区视频| 小嫩嫩精品导航| 亚洲香蕉伊综合在人在线视看| 一区二区电影免费观看| 亚洲一二三区在线| 欧美亚州韩日在线看免费版国语版| 一本色道久久综合亚洲精品不卡| 在线亚洲自拍| 国产精品理论片| 午夜精品短视频| 久久久久综合一区二区三区| 极品尤物一区二区三区| 亚洲欧洲一级| 欧美日韩国产另类不卡| 亚洲视频精选在线| 欧美一区二区三区免费看| 国产一区二区三区免费在线观看| 久久精品国产91精品亚洲| 欧美成人精品福利| 亚洲每日更新| 亚洲欧美在线免费观看| 国产一区二区三区奇米久涩| 91久久视频| 欧美色视频在线| 小黄鸭精品aⅴ导航网站入口| 久久综合九色99| 亚洲精品久久视频| 亚洲欧美日韩一区二区三区在线观看| 国产伦精品一区二区三区照片91 | 9l国产精品久久久久麻豆| 午夜在线视频观看日韩17c| 国产视频自拍一区| 亚洲欧洲一区| 国产精品久久婷婷六月丁香| 欧美自拍偷拍| 欧美久久在线| 午夜精品在线观看| 亚洲自拍偷拍一区| 国产综合一区二区| 一区二区精品| 国产一区99| 99re66热这里只有精品3直播| 国产精品乱码一区二三区小蝌蚪| 欧美在线视频一区| 欧美精品精品一区| 性欧美长视频| 欧美日韩一区二区在线播放| 欧美伊人久久| 欧美日韩一区三区| 欧美一区二区三区四区夜夜大片 | 欧美激情一区二区三区蜜桃视频| 亚洲午夜精品久久久久久浪潮| 亚洲免费一在线| 午夜视频久久久| 国产午夜精品久久久久久久| 新狼窝色av性久久久久久| 欧美国产精品一区| 亚洲综合欧美日韩| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲免费一级电影| 亚洲黄色精品|