《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(shè)計和實現(xiàn)
基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(shè)計和實現(xiàn)
2018年電子技術(shù)應(yīng)用第6期
陳 崢
上海兆芯集成電路有限公司 軟件部,上海201203
摘要: 隨著GPU架構(gòu)日益復(fù)雜,對硬件問題的調(diào)試越來越成為硬件工程師面臨的一個挑戰(zhàn)。造成硬件問題調(diào)試困難的一個主要原因是硬件工程師沒有辦法清楚知道硬件中問題發(fā)生的過程,只能通過一些簡略信息對問題發(fā)生的環(huán)境和原因進行猜測。提出一種新的調(diào)試架構(gòu),相比于傳統(tǒng)方式,新的架構(gòu)能夠為硬件工程師提供一段連續(xù)時間內(nèi)連續(xù)的動態(tài)數(shù)據(jù),使得硬件工程師能夠?qū)σ欢螘r間內(nèi)硬件狀況的變化過程有一個全面了解,甚至硬件開發(fā)人員能夠把這些信息導(dǎo)入RTL仿真環(huán)境模擬重現(xiàn)硬件問題,極大地提高硬件工程師解決問題的效率。
中圖分類號: TP311
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.174703
中文引用格式: 陳崢. 基于動態(tài)連續(xù)數(shù)據(jù)的GPU調(diào)試系統(tǒng)設(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)試成為一個越來越困難的任務(wù)。硬件調(diào)試的困難在于硬件本身的不透明性。在發(fā)生問題的時候,工程師沒有辦法像軟件調(diào)試那樣,看到硬件內(nèi)部發(fā)生了什么,也不能像軟件調(diào)試那樣,半路設(shè)一個斷點,把硬件停下來。

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

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

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

1.1 DebugBus

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

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

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

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

    這種技術(shù)的缺陷在于它速度太慢,因為它是一個串行的操作,不能一次讀出全部數(shù)據(jù),導(dǎo)致工程師不能得到一個即時的數(shù)據(jù)[6]

1.3 ARM CoreSightTM技術(shù)

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

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

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

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

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

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

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

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

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

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

2.1 會話取樣模塊

    會話取樣模塊負責(zé)將模塊和模塊之間的會話傳給會話監(jiān)控模塊或者會話記錄模塊。假設(shè)我們有兩個模塊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)控模塊負責(zé)監(jiān)控模塊之間的會話,一旦它發(fā)現(xiàn)模塊A和模塊B之間發(fā)生了會話,那么會話監(jiān)控模塊就會通知全局時鐘控制模塊,把所有模塊的時鐘中止,如圖3所示。

wdz1-t3.gif

2.3 會話記錄模塊

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

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

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

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

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

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

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

wdz1-t4.gif

2.4 全局時鐘控制器

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

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

wdz1-t5.gif

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

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

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

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

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

4 應(yīng)用的成果

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

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

wdz1-t6.gif

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

5 結(jié)語

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

參考文獻

[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)核中的實現(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)載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          欧美日韩在线播放三区四区| 欧美精品久久99| 久久综合中文| 亚洲小说欧美另类社区| 亚洲欧洲综合| 国产精品美女久久久浪潮软件 | 久久国产精品久久精品国产| 伊人一区二区三区久久精品| 国产欧美日韩精品专区| 国产精品影片在线观看| 久久综合激情| 久久一二三区| 老鸭窝毛片一区二区三区| 在线视频欧美精品| 亚洲人妖在线| 91久久国产综合久久| 欧美激情综合在线| 性久久久久久久| 激情欧美国产欧美| 欧美视频一区二区三区| 久久激情久久| 久久九九全国免费精品观看| 亚洲伊人观看| 1024国产精品| 国产欧美日韩激情| 欧美日韩久久| 欧美日韩精品欧美日韩精品| 另类天堂av| 午夜精品久久久久久久99水蜜桃| 亚洲永久免费| 中国成人黄色视屏| 亚洲一区免费看| 午夜精品久久久久久久久| 欧美一区二区观看视频| 久久国产主播精品| 久久永久免费| 欧美极品欧美精品欧美视频| 欧美日韩一区二区视频在线观看| 欧美福利影院| 久久天天躁夜夜躁狠狠躁2022| 亚洲一区二区三区四区五区午夜| 宅男噜噜噜66一区二区66| 亚洲欧美国产精品桃花| 一本色道综合亚洲| 亚洲——在线| 亚洲视频在线一区| 亚洲欧美日韩在线不卡| 久久黄色级2电影| 性欧美1819性猛交| 亚洲午夜精品国产| 亚洲欧美日本国产专区一区| 久久久久国产免费免费| 欧美一区免费| 西西裸体人体做爰大胆久久久| 99re8这里有精品热视频免费| 狠狠色2019综合网| 亚洲国产婷婷香蕉久久久久久99| 亚洲成色最大综合在线| 国产专区精品视频| 国产日韩精品一区二区三区在线| 国产精品蜜臀在线观看| 欧美四级在线观看| 国产精品一区二区三区成人| 国产精品一区二区欧美| 国产精品你懂的| 韩国视频理论视频久久| 国产原创一区二区| 国产日本亚洲高清| 最新精品在线| 欧美一区二区免费视频| 欧美日韩高清一区| 亚洲麻豆av| 亚洲每日更新| 亚洲国产精品久久久久秋霞影院| 亚洲一区免费网站| 免费久久99精品国产自| 国产精品av免费在线观看| 欧美日韩高清一区| 欧美日韩和欧美的一区二区| 欧美精品日韩一本| 欧美日韩一区二区三区在线| 国产精品区一区二区三区| 亚洲第一精品在线| 性色av一区二区三区在线观看| 欧美日韩成人网| 黑人巨大精品欧美黑白配亚洲| 在线一区二区视频| 欧美一级大片在线免费观看| 欧美chengren| 激情偷拍久久| 亚洲蜜桃精久久久久久久| 一区二区三区高清在线观看| 久久综合伊人77777尤物| 欧美精品自拍| 精品动漫3d一区二区三区| 午夜精品三级视频福利| 久久在线视频| 欧美日韩亚洲另类| 亚洲级视频在线观看免费1级| 久久久国产精品亚洲一区| 欧美福利在线观看| 国产一区二区福利| 午夜欧美大片免费观看| 免费成人高清| 狠狠久久五月精品中文字幕| 日韩视频一区二区在线观看 | 亚洲国产成人不卡| 久久九九免费视频| 午夜宅男欧美| 亚洲精品国精品久久99热一| 影音先锋另类| 欧美片第一页| 国产精品久久久久9999| 国产精品日韩在线一区| 亚洲一区二区三区成人在线视频精品 | 久久久精品网| 国产亚洲精品aa| 欧美一区二区三区成人| 国产精品视频yy9299一区| 一本一本久久| 欧美日韩国产丝袜另类| 亚洲精品免费网站| 欧美精品电影| 99国产一区| 欧美日韩视频一区二区| 99亚洲视频| 欧美专区在线观看| 国产日韩欧美一区二区三区四区| 亚洲每日更新| 久久午夜电影网| 欧美三级午夜理伦三级中视频| 国内成+人亚洲+欧美+综合在线| 99精品久久久| 欧美日韩亚洲一区| 亚洲一区三区视频在线观看| 国产精品欧美激情| 欧美一区二区三区成人| 欧美视频在线免费| 国产日韩欧美中文| 久久久99免费视频| 狠色狠色综合久久| 欧美69wwwcom| 一区二区免费在线观看| 欧美亚男人的天堂| 欧美一区二区日韩一区二区| 国产精品久久久久久久久久ktv| 亚洲专区一二三| 欧美日韩专区在线| 亚洲欧美电影院| 国产精品大片wwwwww| 亚洲精品一区在线观看| 国产精品www色诱视频| 欧美一区二区视频在线观看2020 | 国产区日韩欧美| 久久久久久国产精品mv| 国产麻豆9l精品三级站| 久久久久久久激情视频| 亚洲美女黄网| 国产色婷婷国产综合在线理论片a| 蜜桃av久久久亚洲精品| 亚洲午夜激情网页| 激情综合电影网| 欧美日韩亚洲精品内裤| 久久精品一区四区| av成人免费| 黄色一区二区三区四区| 欧美日韩成人综合天天影院| 亚洲精品免费在线| 女仆av观看一区| 亚洲系列中文字幕| 在线观看日韩精品| 免费看av成人| 亚洲自拍偷拍一区| 国产乱子伦一区二区三区国色天香| 狼人社综合社区| 亚洲欧美日韩网| 亚洲欧洲午夜| 国产亚洲欧美日韩日本| 欧美精品尤物在线| 久久激情综合网| 一区二区欧美国产| 国产精品二区在线观看| 鲁大师影院一区二区三区| 最新日韩在线视频| 欧美激情一区二区久久久| 欧美一级播放| 在线观看欧美精品| 欧美激情第10页| 一本一本久久a久久精品牛牛影视| 国产一区二区三区无遮挡| 久久综合国产精品| 亚洲影视在线播放| 亚洲精品久久久久久下一站| 国产专区综合网| 国产精品video| 欧美精品福利在线| 久久亚洲欧美国产精品乐播| 亚洲乱码一区二区| 尤妮丝一区二区裸体视频| 欧美日韩国产综合视频在线观看|