国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向眾核處理器的獨(dú)立調(diào)試系統(tǒng)設(shè)計(jì)方法

2015-05-29 18:27張明石偉郭御風(fēng)張民選

張明 石偉 郭御風(fēng) 張民選

摘 要:基于片上網(wǎng)絡(luò)(NetworkonChip,NoC)技術(shù)的眾核處理器正成為當(dāng)前高性能處理器的設(shè)計(jì)焦點(diǎn).傳統(tǒng)的調(diào)試系統(tǒng)結(jié)構(gòu)不能很好地應(yīng)用于眾核處理器體系結(jié)構(gòu),眾核處理器中蹤跡數(shù)據(jù)傳輸、調(diào)試事件傳播、時(shí)間戳同步等方面均面臨重大挑戰(zhàn).為解決上述問題,提出一種具有高帶寬、低資源消耗的獨(dú)立調(diào)試系統(tǒng)設(shè)計(jì)方法.該方法通過減少長(zhǎng)互連線,提高了調(diào)試通道工作頻率,以較少的互連線即可實(shí)現(xiàn)高帶寬傳輸通道;同時(shí)調(diào)試組件采用分布式的對(duì)稱結(jié)構(gòu),具有良好的可擴(kuò)展性.在蹤跡數(shù)據(jù)傳輸結(jié)構(gòu)中,提出了一種帶寬平衡的非侵入式蹤跡數(shù)據(jù)導(dǎo)出方法,該方法通過軟硬協(xié)同方式來配置蹤跡通道仲裁的權(quán)重值,降低硬件復(fù)雜度.在調(diào)試事件的傳播上,構(gòu)建了與片上網(wǎng)絡(luò)拓?fù)湟恢碌氖录鞑ゾW(wǎng)絡(luò),該網(wǎng)絡(luò)在易于物理實(shí)現(xiàn)的同時(shí)具有事件傳播延遲低的特點(diǎn).在時(shí)間戳的同步方法上,提出了一種通過軟硬件協(xié)同的時(shí)間同步方式,以很小的硬件代價(jià)實(shí)現(xiàn)了較精確的時(shí)間戳同步.

關(guān)鍵詞:硅調(diào)試;片上網(wǎng)絡(luò);蹤跡數(shù)據(jù);調(diào)試事件矩陣;時(shí)間戳

中圖分類號(hào):TP338.6 文獻(xiàn)標(biāo)識(shí)碼:A

多核微處理器正成為目前高性能處理器設(shè)計(jì)的研究熱點(diǎn).將傳統(tǒng)處理器的調(diào)試結(jié)構(gòu)移植到多核處理器中時(shí),在硬件資源消耗、互連結(jié)構(gòu)、蹤跡(Trace)數(shù)據(jù)傳播、調(diào)試事件(Debug Event)傳播、時(shí)間戳(TimeStamp)同步等多方面均遇到了問題.工業(yè)界與學(xué)術(shù)界對(duì)多核處理器的調(diào)試結(jié)構(gòu)進(jìn)行了大量研究,并獲得了一定的成果.隨著高性能處理器逐漸由多核結(jié)構(gòu)向眾核結(jié)構(gòu)發(fā)展,硅片面積不斷增大,現(xiàn)有的多核調(diào)試結(jié)構(gòu)出現(xiàn)了一定的局限性,無法滿足眾核處理器的調(diào)測(cè)試需求.

為了降低處理器設(shè)計(jì)的復(fù)雜度,眾核處理器往往采用同構(gòu)結(jié)構(gòu),同構(gòu)結(jié)構(gòu)具有結(jié)構(gòu)規(guī)整、擴(kuò)展性好、便于集成等特點(diǎn),成為了目前通用高性能眾核處理器的主流方向.在同構(gòu)眾核微處理器的體系結(jié)構(gòu)設(shè)計(jì)中,常常使用片上網(wǎng)絡(luò)技術(shù)來連接多個(gè)處理器核、存儲(chǔ)部件以及IO設(shè)備.這使得復(fù)用片上網(wǎng)絡(luò)來設(shè)計(jì)調(diào)試系統(tǒng)成為一種很自然的選擇,并具有如下優(yōu)點(diǎn):

1)復(fù)用片上網(wǎng)絡(luò)通路傳遞調(diào)試命令(Debug)和蹤跡(Trace)數(shù)據(jù),方便實(shí)現(xiàn)對(duì)所有片上部件的調(diào)試與跟蹤.

2)易于實(shí)現(xiàn)對(duì)核間通信事務(wù)的監(jiān)視和檢查,便于對(duì)事務(wù)進(jìn)行跟蹤與調(diào)試.

3)減少了全局互連線路,便于物理設(shè)計(jì).

然而,上述復(fù)用片上網(wǎng)絡(luò)的方法均存在一個(gè)嚴(yán)重的缺陷,即無法實(shí)現(xiàn)非侵入式的調(diào)試,即調(diào)試和跟蹤操作會(huì)影響功能邏輯的執(zhí)行路徑,導(dǎo)致非調(diào)試模式下出現(xiàn)的錯(cuò)誤在調(diào)試模式時(shí)可能無法重現(xiàn).為解決此問題,本文針對(duì)眾核芯片結(jié)構(gòu)特點(diǎn),提出一種基于NoC技術(shù)的獨(dú)立調(diào)試系統(tǒng)結(jié)構(gòu),該結(jié)構(gòu)對(duì)執(zhí)行蹤跡與調(diào)試命令、調(diào)試事件傳播、時(shí)間戳同步等結(jié)構(gòu)分別進(jìn)行了詳細(xì)研究,其主要?jiǎng)?chuàng)新在于:

1)提出了一種帶寬平衡的蹤跡數(shù)據(jù)高帶寬傳輸結(jié)構(gòu),且該結(jié)構(gòu)具有可擴(kuò)展、占用資源少、易于物理實(shí)現(xiàn)的特點(diǎn).

2)提出了一種低延遲、易擴(kuò)展的調(diào)試事件廣播網(wǎng)絡(luò)設(shè)計(jì)方法.

3)提出了一種采用軟硬協(xié)同方式工作的高精度、低資源消耗的TimeStamp同步設(shè)計(jì)方法.

本文后續(xù)章節(jié)組織如下:第1節(jié)介紹多核調(diào)試系統(tǒng)的研究現(xiàn)狀與面臨的問題;在第2節(jié)中,詳細(xì)描述了本文提出的眾核調(diào)試系統(tǒng)實(shí)現(xiàn)方法;第3節(jié)通過實(shí)驗(yàn)對(duì)本文所提方法進(jìn)行了驗(yàn)證,并給出了結(jié)果分析和比較;最后對(duì)全文進(jìn)行了總結(jié).

1 相關(guān)研究

隨著處理器設(shè)計(jì)規(guī)模向眾核擴(kuò)展,NoC已經(jīng)成為連接片上眾多處理器核、存儲(chǔ)以及外設(shè)的首選\[1-2\].在基于NoC結(jié)構(gòu)的眾核處理器中,傳統(tǒng)調(diào)試系統(tǒng)結(jié)構(gòu)已不適合這種新的處理器結(jié)構(gòu),以點(diǎn)對(duì)點(diǎn)方式連接的調(diào)試結(jié)構(gòu),在眾核中會(huì)占用大量的互連資源,而且不利于物理設(shè)計(jì).因此研究基于片上網(wǎng)絡(luò)的調(diào)試技術(shù)是當(dāng)前處理器設(shè)計(jì)領(lǐng)域的一個(gè)重要研究方向\[3\].

在基于片上網(wǎng)絡(luò)技術(shù)的調(diào)試系統(tǒng)研究中,學(xué)者針對(duì)處理器內(nèi)核與片上網(wǎng)絡(luò)的接口、調(diào)試命令與蹤跡數(shù)據(jù)的傳播方法、調(diào)試事件傳播方法等方面都進(jìn)行了大量研究.文獻(xiàn)\[4\]定義了一套多核調(diào)試接口,試圖將調(diào)試結(jié)構(gòu)與處理器內(nèi)核分離,以提高調(diào)試部件的可重用特性.所提出的結(jié)構(gòu)側(cè)重于處理器核的調(diào)試接口設(shè)計(jì),而核間調(diào)試信息傳輸結(jié)構(gòu)的可擴(kuò)展性不好,而且不支持較高精度的TimeStamp傳播.文獻(xiàn)\[4-5\]注重于提供對(duì)于內(nèi)核的時(shí)鐘精確的調(diào)試方法,對(duì)核間調(diào)試信息傳輸?shù)难芯坎蛔?文獻(xiàn)\[6-7\]則專注于核間事務(wù)的調(diào)試,通過監(jiān)控核間通信來提取有用的調(diào)試信息.文獻(xiàn)\[8\]在核間通信事務(wù)的分析中引入了形式化的方法,提高了事務(wù)分析的效率和可觀察性.文獻(xiàn)\[6-8\]雖然提高了核間通信事務(wù)的分析能力,提高了核間事務(wù)的可觀察性,但其分析過程與傳統(tǒng)調(diào)試軟件的差別較大,在實(shí)際調(diào)試操作中并不方便.而且,這些調(diào)試結(jié)構(gòu)均利用了功能通路傳遞調(diào)試信息,因而無法實(shí)現(xiàn)非侵入式的調(diào)試.文獻(xiàn)\[9\]針對(duì)AXI協(xié)議提出了感知調(diào)試信息的片上網(wǎng)絡(luò)接口設(shè)計(jì)方法,該方案能夠檢測(cè)AXI接口的死鎖和活鎖狀態(tài),并支持非侵入式的Trace記錄.然而其主要針對(duì)AXI協(xié)議設(shè)計(jì),可擴(kuò)展性不足.而且在Trace的傳播上沒有考慮通道競(jìng)爭(zhēng)導(dǎo)致的各節(jié)點(diǎn)帶寬不平衡問題,當(dāng)通道競(jìng)爭(zhēng)激烈時(shí),容易導(dǎo)致部分節(jié)點(diǎn)丟失關(guān)鍵蹤跡數(shù)據(jù).文獻(xiàn)\[10\]分析并提出了針對(duì)調(diào)試事件的網(wǎng)絡(luò)結(jié)構(gòu)和組件設(shè)計(jì)方法,設(shè)計(jì)了生成工具,能夠根據(jù)NoC的結(jié)構(gòu)自動(dòng)生成調(diào)試事件傳播網(wǎng)絡(luò)及組件.調(diào)試事件網(wǎng)絡(luò)的配置通過一條掃描鏈實(shí)現(xiàn),這種實(shí)現(xiàn)方案容易與DFT功能沖突,物理實(shí)現(xiàn)困難.文獻(xiàn)\[11\]將TimeStamp計(jì)數(shù)值分為本地計(jì)數(shù)和溢出計(jì)數(shù)兩段,分別在TimeStamp的使用端和源端進(jìn)行計(jì)數(shù),并通過NoC網(wǎng)絡(luò)進(jìn)行同步與配合,提出了一種在NoC系統(tǒng)中精確傳播TimeStamp的方案.不過此方案會(huì)加劇NoC網(wǎng)絡(luò)的帶寬壓力,同時(shí)增加NoC設(shè)計(jì)復(fù)雜度,占用較多的硬件資源.

本文針對(duì)上述各類調(diào)試系統(tǒng)存在的問題,系統(tǒng)地提出了一種面向眾核處理器、基于NoC技術(shù)的獨(dú)立調(diào)試系統(tǒng)設(shè)計(jì)方法,分別針對(duì)蹤跡與調(diào)試命令傳輸、各節(jié)點(diǎn)蹤跡數(shù)據(jù)的帶寬平衡、調(diào)試事件廣播、時(shí)間戳同步等問題設(shè)計(jì)了各自的結(jié)構(gòu).依據(jù)該方法設(shè)計(jì)的調(diào)試系統(tǒng)結(jié)構(gòu)具有較高帶寬且各節(jié)點(diǎn)帶寬近似平衡的蹤跡數(shù)據(jù)導(dǎo)出通道,支持高精度的時(shí)間戳同步和快速的調(diào)試事件廣播,而且對(duì)硬件資源的需求低,物理實(shí)現(xiàn)簡(jiǎn)單.

2 基于NoC技術(shù)的獨(dú)立眾核調(diào)試系統(tǒng)結(jié)構(gòu)

芯片集成度的快速提高使得片內(nèi)硬件資源不再那么緊張,而且在基于NoC互連的眾核處理器的物理設(shè)計(jì)中,NoC一般位于規(guī)整的內(nèi)核模塊之間,易于調(diào)整其所占空間尺寸且不影響工作頻率.基于這一特性,本文提出一套獨(dú)立于功能邏輯、基于NoC技術(shù)的調(diào)試系統(tǒng),其總體結(jié)構(gòu)如圖 1.圖中灰色模塊為功能邏輯,白色的則為調(diào)試邏輯.調(diào)試主機(jī)是執(zhí)行調(diào)試操作、分析調(diào)試信息的總控制臺(tái),運(yùn)行著主要的調(diào)試軟件.調(diào)試軟件通過調(diào)試代理發(fā)送具體的調(diào)試命令給處理器以及收集調(diào)試信息,包括蹤跡數(shù)據(jù).調(diào)試主機(jī)和調(diào)試代理不屬于本文所述的調(diào)試系統(tǒng).圖中Corei為處理器內(nèi)核或多個(gè)內(nèi)核構(gòu)成的核簇,CNOCi(Core NoC)為用于核間及核與存儲(chǔ)/外設(shè)通信的功能NoC路由結(jié)點(diǎn),Memory&IO為芯片的存儲(chǔ)及外設(shè).DAI(Debug Access Interface)是集中式調(diào)試與測(cè)試訪問接口,CDIi(Core Debug Interface)是內(nèi)核的調(diào)試接口,DNOCi (Debug NoC)則是專用于調(diào)試功能的調(diào)試NoC路由結(jié)點(diǎn).

本文提出的調(diào)試系統(tǒng)主要由蹤跡與調(diào)試命令傳輸、調(diào)試事件傳播與時(shí)間戳同步3個(gè)子系統(tǒng)組成.3個(gè)子系統(tǒng)在實(shí)現(xiàn)具體的調(diào)試功能上相互配合和支持,在邏輯實(shí)現(xiàn)上彼此獨(dú)立,在物理實(shí)現(xiàn)上又具有一致的物理布局.整個(gè)系統(tǒng)由DAI,DNOC,CDI 3類部件構(gòu)成,3個(gè)子系統(tǒng)在每類部件中都擁有相關(guān)的功能邏輯.

DAI的內(nèi)部結(jié)構(gòu)如圖 2,它為外部調(diào)試代理和調(diào)試軟件提供了訪問內(nèi)部調(diào)試組件和發(fā)送調(diào)試命令的JTAG接口,并提供Trace緩沖存儲(chǔ)器及將Trace輸出到片外的接口,這些屬于蹤跡與調(diào)試命令傳輸子系統(tǒng)的一部分.CrossEventIF是調(diào)試事件的接口部件,負(fù)責(zé)本地調(diào)試事件與DNOC內(nèi)事件廣播矩陣間的交互.UniqueTimer是DAI集成的一個(gè)時(shí)鐘計(jì)數(shù)器,作為全局唯一的墻上時(shí)鐘,供其他部件生成TimeStamp時(shí)使用,屬于時(shí)間戳同步子系統(tǒng)的一部分.

調(diào)試命令經(jīng)DNOC網(wǎng)絡(luò)發(fā)送到目標(biāo)CDIi,控制內(nèi)核Corei執(zhí)行單步、斷點(diǎn)等調(diào)試操作,CDI通常是與內(nèi)核流水線緊耦合的調(diào)試部件,執(zhí)行對(duì)流水線的控制以完成調(diào)試操作,收集調(diào)試事件并廣播到網(wǎng)絡(luò),以及捕獲流水線的Trace并通過DNOC網(wǎng)絡(luò)傳遞給DAI,CDI的內(nèi)部結(jié)構(gòu)如圖 3.

DNOC內(nèi)部結(jié)構(gòu)如圖 4.它與CNOC具有完全一致的物理布局,接口協(xié)議借用CNOC的傳輸協(xié)議,只是具有相對(duì)少得多的互連.路由方法采用源路由,以盡量簡(jiǎn)化DNOC的設(shè)計(jì).除傳遞前述的調(diào)試命令和蹤跡數(shù)據(jù)外,DNOC還負(fù)責(zé)傳播調(diào)試事件,由CrossEventMatrix對(duì)輸入通道接口上的調(diào)試事件向其他通道廣播.

圖4 DNOC內(nèi)部結(jié)構(gòu)

Fig.4 Structure of DNOC

下面將詳細(xì)闡述在上述3種調(diào)試結(jié)構(gòu)中,各類通路的設(shè)計(jì)方法.

2.1 蹤跡與調(diào)試命令傳輸子系統(tǒng)

Trace傳輸通路是指用于傳遞內(nèi)核蹤跡數(shù)據(jù)的傳輸通道,Trace能夠?qū)崟r(shí)記錄指定的內(nèi)核指令、狀態(tài)或通信報(bào)文,記錄過程不影響內(nèi)核的執(zhí)行,是最重要的非侵入式調(diào)試手段.Trace對(duì)帶寬有較高的要求,設(shè)置獨(dú)立DNOC可有效解決Trace傳輸所需的高帶寬問題,但是集中式的Trace存儲(chǔ)與導(dǎo)出必然導(dǎo)致多路Trace對(duì)DNOC通道的競(jìng)爭(zhēng),進(jìn)而導(dǎo)致各節(jié)點(diǎn)Trace實(shí)際傳輸帶寬的失衡.針對(duì)此問題,本文提出了一種基于源路由特性的DNOC靜態(tài)權(quán)重分配策略.在源路由模式下,任意一個(gè)DNOC節(jié)點(diǎn)只有一個(gè)將Trace輸出到DAI的輸出端口,輸入端口則有多個(gè),所謂權(quán)重是指輸出端口在仲裁選擇輸入端口時(shí),各輸入端口所擁有的權(quán)值.以3×3的DNOC網(wǎng)絡(luò)結(jié)構(gòu)為例,可用圖 5說明靜態(tài)權(quán)重分配策略.圖中有N0~N8共9個(gè)DNOC節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)有1個(gè)CDI.兩個(gè)灰色的CDI1和CDI6為未啟動(dòng)Trace記錄的節(jié)點(diǎn),因而不參與權(quán)重分配.權(quán)重分配的思想是:任意CDI輸出到DAI的Trace的傳輸路徑若經(jīng)過DNOC節(jié)點(diǎn)的輸入通道,則該通道的權(quán)值加1.如N4的右側(cè)通道有3條Trace經(jīng)過,則權(quán)值為3,上方通道因CDI1未啟動(dòng)Trace記錄,故權(quán)值為0.經(jīng)過N4的所有Trace路徑都要輸入到N3的右側(cè)通道,因而N3的右側(cè)通道的權(quán)值為5.具體的權(quán)值計(jì)算算法如下:

for i in 所有DNOC節(jié)點(diǎn)集合 do

//初始化權(quán)值為0

for k in DNOCi輸入通道集合 do

Wi,k = 0;

//計(jì)算各通道權(quán)值

for j in 所有CDI節(jié)點(diǎn)集合 do

for k in DNOCi輸入通道集合 do

if(CDIj的Trace經(jīng)過輸入通道k)

Wi,k = Wi,k+1

權(quán)值的計(jì)算過程由運(yùn)行在調(diào)試主機(jī)上的調(diào)試軟件計(jì)算得到,然后在調(diào)試系統(tǒng)的配置階段通過調(diào)試命令通道寫入到各DNOC通道內(nèi)的權(quán)值寄存器,之后DNOC輸出通道將根據(jù)各輸入通道的權(quán)值和已經(jīng)服務(wù)的Trace數(shù)據(jù)個(gè)數(shù)來動(dòng)態(tài)更新各通道的Trace傳輸優(yōu)先級(jí).在調(diào)試過程中,若改變了有效CDI的集合,則需要調(diào)試軟件按照前述算法重新計(jì)算通道權(quán)值,否則會(huì)導(dǎo)致各節(jié)點(diǎn)Trace傳輸帶寬的失衡.

圖5 權(quán)值計(jì)算實(shí)例

Fig.5 Example of weight calculation

Trace傳輸?shù)紻AI后,進(jìn)入TraceBuf.片內(nèi)緩沖容量較小,因而需要通過IO接口傳遞到片外存儲(chǔ).當(dāng)前處理器中Trace導(dǎo)出接口多使用通用IO類接口,單引腳的數(shù)據(jù)傳輸率低于200 Mbps,帶寬有限,在多核時(shí)代,已無法滿足Trace的高帶寬需求.我們注意到當(dāng)前很多處理器已擁有用于控制大容量NandFlash存儲(chǔ)器的高速同步ONFI(Open Nand Flash Interface)接口,該接口使用SSTL電平規(guī)范,單個(gè)引腳的數(shù)據(jù)傳輸率可達(dá)1.6 Gbps,本文建議復(fù)用ONFI接口導(dǎo)出Trace,可大幅提高Trace的導(dǎo)出帶寬.且同步ONFI接口時(shí)序具有可預(yù)測(cè)性,Trace輸出復(fù)用此接口時(shí),可以根據(jù)其可預(yù)測(cè)性來尋找空閑周期,用于發(fā)送Trace數(shù)據(jù).

調(diào)試(Debug)通路是用于傳遞調(diào)試軟件發(fā)出的調(diào)試命令的通道,命令包括暫停運(yùn)行、單步、設(shè)置斷點(diǎn)、讀取存儲(chǔ)器、讀取特殊寄存器等.調(diào)試操作最終在CDI中以寄存器讀寫的方式實(shí)現(xiàn).具體過程是:

1)調(diào)試代理將調(diào)試軟件發(fā)來的調(diào)試操作轉(zhuǎn)換為JTAG接口報(bào)文;

2)DAI內(nèi)的TAP控制器接收J(rèn)TAG接口報(bào)文,然后將其轉(zhuǎn)換為內(nèi)部DNOC報(bào)文;

3)通過DNOC將報(bào)文傳遞到目標(biāo)CDI;

4)CDI解析DNOC報(bào)文并最終產(chǎn)生針對(duì)其DebugRegs內(nèi)寄存器的讀寫,進(jìn)而在內(nèi)核流水線的配合下實(shí)現(xiàn)調(diào)試操作.

2.2 調(diào)試事件傳播子系統(tǒng)

調(diào)試事件包括處理器進(jìn)入/退出調(diào)試狀態(tài)、Trace觸發(fā)信號(hào)、自定義的關(guān)鍵事件等.在眾核處理器中,這些事件需要在多個(gè)內(nèi)核或外設(shè)間進(jìn)行傳播.絕大多數(shù)調(diào)試事件的傳播具有廣播特性,即從一個(gè)源廣播到其他所有部件,而且傳播延遲時(shí)間越短越好.例如內(nèi)核A因斷點(diǎn)而進(jìn)入調(diào)試狀態(tài)后,調(diào)試系統(tǒng)期望其他內(nèi)核也同時(shí)進(jìn)入調(diào)試狀態(tài),否則其他內(nèi)核可能因得不到內(nèi)核A的應(yīng)答而進(jìn)入超時(shí)狀態(tài),即由調(diào)試操作引入了程序故障,這可能會(huì)誤導(dǎo)用戶的調(diào)試過程.只有盡快地將內(nèi)核A進(jìn)入調(diào)試狀態(tài)的事件廣播到所有其他內(nèi)核,才能避免上述問題,因而調(diào)試事件的傳播延遲越短越好,最大傳播延遲是衡量調(diào)試事件傳播結(jié)構(gòu)優(yōu)劣的最重要指標(biāo).

文獻(xiàn)\[8\]將調(diào)試事件編碼為NoC報(bào)文,復(fù)用NoC進(jìn)行廣播,似乎減少了硬件開銷,但是這會(huì)同時(shí)增加NoC設(shè)計(jì)的復(fù)雜性和資源需求.而且廣播事件在NoC網(wǎng)絡(luò)上的延遲會(huì)因NoC的仲裁、路由等因素而引入較大的不確定性.為解決此問題,本文設(shè)計(jì)了一套具有較低硬件開銷的專用廣播網(wǎng)絡(luò).為便于物理設(shè)計(jì),該網(wǎng)絡(luò)的廣播結(jié)點(diǎn)——CrossEventMatrix與DNOC結(jié)點(diǎn)具有相同的數(shù)量和物理布局.以4通道CrossEventMatrix為例,其內(nèi)部結(jié)構(gòu)關(guān)鍵邏輯如圖 6.圖中每個(gè)通道僅有一個(gè)輸入事件和一個(gè)輸出事件,可以擴(kuò)展到多個(gè),以滿足多種調(diào)試事件的需求.圖中以虛線表示的兩級(jí)觸發(fā)器用于跨時(shí)鐘事件的同步,當(dāng)事件信號(hào)沒有跨時(shí)鐘時(shí),可以不設(shè)置此兩級(jí)同步器.

圖6 CrossEventMatrix廣播結(jié)構(gòu)

Fig.6 Broadcast structure of CrossEventMatrix

基于CrossEventMatrix構(gòu)建事件廣播網(wǎng)絡(luò)時(shí),要求廣播路徑中不能出現(xiàn)環(huán)路,否則會(huì)導(dǎo)致事件傳播的死鎖.本文通過在各通道的事件輸出端點(diǎn)增加可配置的輸出使能來打破可能出現(xiàn)的環(huán)路.使能信號(hào)可根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)動(dòng)態(tài)配置,簡(jiǎn)單靈活.

基于上述方案的事件廣播結(jié)構(gòu)具有如下基本特性和優(yōu)勢(shì):

1)事件端點(diǎn)的輸出是來自其他所有通道的事件的邏輯或,傳播速度快;

2)輸入到端點(diǎn)的事件被廣播到其他所有通道,廣播路徑可根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)的變化而進(jìn)行動(dòng)態(tài)配置;

3)所需硬件資源少,通道的數(shù)量可擴(kuò)展,事件端點(diǎn)數(shù)量亦可擴(kuò)展;

4)支持靈活的電源關(guān)斷與時(shí)鐘關(guān)斷策略,某個(gè)端點(diǎn)的關(guān)斷不會(huì)影響其他節(jié)點(diǎn).

2.3 時(shí)間戳同步子系統(tǒng)

時(shí)間戳(TimeStamp)主要用于標(biāo)記各個(gè)Trace數(shù)據(jù)的產(chǎn)生時(shí)間.各部件記錄的Trace導(dǎo)出到DAI部件時(shí),經(jīng)過的傳輸路徑不同,延遲也不同,后產(chǎn)生的Trace卻可能先到達(dá)DAI,因此,Trace數(shù)據(jù)中一般需要附帶上一個(gè)全局同步的TimeStamp,記錄該數(shù)據(jù)產(chǎn)生的時(shí)間,然后再通過調(diào)試軟件按照TimeStamp來恢復(fù)Trace的順序.然而,各部件完全同步的TimeStamp是幾乎無法實(shí)現(xiàn)的,總是會(huì)存在一定的時(shí)間偏差,偏差大小直接影響Trace記錄時(shí)間的準(zhǔn)確性.

本文針對(duì)上述需求提出了一種既方便實(shí)現(xiàn),又具有高精度的TimeStamp傳播結(jié)構(gòu).該結(jié)構(gòu)擁有唯一的墻上時(shí)鐘計(jì)數(shù)器,即DAI中的UniqueTimer部件,計(jì)數(shù)器的最低位作為計(jì)數(shù)觸發(fā)信號(hào)TimeTrigger發(fā)送到所有需要TimeStamp的部件.目標(biāo)部件通過對(duì)TimeTrigger的上升沿和下降沿計(jì)數(shù)來產(chǎn)生自己的TimeStamp值,如CDI內(nèi)的TimeStampGen部件.物理設(shè)計(jì)時(shí),需要注意TimeTrigger到各部件的線延遲盡量一致.設(shè)各部件生成TimeStamp值的時(shí)間偏差為TΔ,則TΔ滿足公式(1).其中Wdiff為TimeTrigger的線延遲偏差,Ti為部件i對(duì)TimeTrigger的采樣時(shí)鐘周期.

當(dāng)目標(biāo)部件從電源關(guān)斷或時(shí)鐘關(guān)斷狀態(tài)恢復(fù)時(shí),其對(duì)TimeTrigger的計(jì)數(shù)值已過期,必須更新到最新值才能保持與其他部件的同步.此時(shí),需要在系統(tǒng)軟件的控制下按照下列步驟來同步計(jì)數(shù)值:

1)暫停UniqueTimer計(jì)數(shù);

2)將最新的計(jì)數(shù)值通過Debug通路更新到剛從電源/時(shí)鐘關(guān)斷中恢復(fù)的目標(biāo)部件;

3)繼續(xù)UniqueTimer計(jì)數(shù).

按照上述步驟,所有目標(biāo)部件的TimeStamp在重新啟動(dòng)UniqueTimer前被同步.雖然UniqueTimer停止計(jì)數(shù)期間,無法記錄這段時(shí)間內(nèi)產(chǎn)生的Trace的順序,但是因通過Debug通路更新計(jì)數(shù)器操作的執(zhí)行速度快,因而暫停時(shí)間很短,對(duì)Trace的影響較小.

3 實(shí)驗(yàn)與結(jié)果評(píng)估

為檢驗(yàn)本文所提出的調(diào)試結(jié)構(gòu)的功能和性能,本文基于國(guó)產(chǎn)自主處理器內(nèi)核,設(shè)計(jì)了一套支持64個(gè)內(nèi)核、獨(dú)立的調(diào)試系統(tǒng),結(jié)構(gòu)如圖 7所示.該互連結(jié)構(gòu)與功能NoC(CNOC)的結(jié)構(gòu)一致,形態(tài)類似于4×4的網(wǎng)格結(jié)構(gòu),該結(jié)構(gòu)與片內(nèi)的物理布局緊密相關(guān),充分考慮了物理設(shè)計(jì)與體系結(jié)構(gòu)設(shè)計(jì)的融合,減少長(zhǎng)延遲連接,提高了工作頻率.另外,該結(jié)構(gòu)中部件的可重用度高,簡(jiǎn)化了物理設(shè)計(jì)復(fù)雜度.

圖中Clust為包含4個(gè)自主處理器內(nèi)核的內(nèi)核簇,MCU為存儲(chǔ)控制器,用于訪問片外存儲(chǔ)器.每個(gè)DNOC有多個(gè)雙向通道,從輸入通道到任意輸出通道的傳播延遲為2個(gè)時(shí)鐘周期,每通道有效數(shù)據(jù)寬度為16位,結(jié)點(diǎn)路由方法為源路由.Clust,CDI與DNOC的工作頻率一致,但支持動(dòng)態(tài)降頻.DAI的Trace接口復(fù)用了8位的ONFI接口,工作頻率為500 MHz,雙沿輸出,帶寬1.0 GB/s.

該調(diào)試系統(tǒng)具有獨(dú)立的NoC網(wǎng)絡(luò),雖然節(jié)點(diǎn)數(shù)量較多,但因從結(jié)構(gòu)上避免了長(zhǎng)延遲線,故可提高工作頻率,達(dá)到了1.5 GHz.進(jìn)而在同樣的帶寬需求下,可以降低NoC的通信信號(hào)位寬以及緩沖單元的數(shù)量,減少硬件資源需求.表 1列出了三類調(diào)試部件的綜合結(jié)果及其在全芯片中的資源占比.總體來說,調(diào)試系統(tǒng)所占邏輯資源約占全芯片邏輯資源的1.18%.

b, 僅計(jì)算邏輯資源,未統(tǒng)計(jì)SRAM ;

c, 包括1個(gè)DAI,16個(gè)CDI,16個(gè)DNOC.

Debug報(bào)文用于實(shí)現(xiàn)程序運(yùn)行狀態(tài)控制、斷點(diǎn)設(shè)置、變量查看與修改等侵入式的調(diào)試操作,以及對(duì)調(diào)試部件進(jìn)行配置與狀態(tài)觀察等,傳輸方向是從DAI到目標(biāo)CDI.Trace報(bào)文則用于以非侵入方式記錄內(nèi)核或其他部件的運(yùn)行過程及狀態(tài),并傳輸?shù)狡饨o調(diào)試者進(jìn)行分析,其傳輸方向是從CDI(或其他重要部件,如MCU)到DAI,圖 8給出了每個(gè)內(nèi)核發(fā)出200個(gè)Trace報(bào)文情況下的報(bào)文延遲分布,與文獻(xiàn)\[11\]相比較,本實(shí)驗(yàn)系統(tǒng)中Trace報(bào)文平均傳輸延遲降低約90%,而且延遲分布也更集中.

調(diào)試事件的傳播速度越快對(duì)調(diào)試功能的實(shí)現(xiàn)越有利.例如某內(nèi)核因斷點(diǎn)而進(jìn)入調(diào)試狀態(tài)的事件,越快傳播到其他內(nèi)核則越接近于同時(shí)停頓所有內(nèi)核的調(diào)試目標(biāo),反之,過長(zhǎng)的事件傳播延遲甚至可能因部分進(jìn)入調(diào)試狀態(tài)而導(dǎo)致功能故障.本實(shí)現(xiàn)中任意兩個(gè)部件間傳播調(diào)試事件的延遲時(shí)間是確定的,最長(zhǎng)延遲為兩個(gè)對(duì)角間的事件傳播,需要經(jīng)過7級(jí)CrossEventMatrix,大約4.67 ns.對(duì)傳播路徑的配置則采用通過Debug報(bào)文以寄存器寫入的方式進(jìn)行,取消了文獻(xiàn)\[10\]中的配置掃描鏈,簡(jiǎn)化了設(shè)計(jì),硬件資源消耗降低約34%.

延遲時(shí)間/ns

圖8 Trace報(bào)文延遲統(tǒng)計(jì)

Fig.8 Statistic of trace delay time

本實(shí)現(xiàn)中TimeStamp延遲在各目標(biāo)點(diǎn)的偏差取決于傳播線TimeTrigger延遲偏差和目標(biāo)點(diǎn)的采樣頻率,如公式(1).在40 nm工藝下,對(duì)TimeTrigger等長(zhǎng)布線后,其到各目標(biāo)點(diǎn)的延遲偏差可控制在1.5 ns以內(nèi).目標(biāo)點(diǎn)工作頻率按正常工作時(shí)的1.5 GHz計(jì)算,最大延遲偏差TΔ不超過2.2 ns.文獻(xiàn)\[11\]通過將TimeStamp計(jì)數(shù)值分為兩段并在源端和目的端分別計(jì)數(shù),然后通過NoC來同步計(jì)數(shù)值,其精度雖然理論上可以達(dá)到不超過1個(gè)時(shí)鐘周期(約0.75 ns),但是該結(jié)構(gòu)無法支持異步時(shí)鐘域,而且實(shí)現(xiàn)TimeStamp所需的硬件資源遠(yuǎn)大于本文的方案.

4 結(jié) 論

本文提出的采用復(fù)制片上網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的方式構(gòu)建獨(dú)立的多核調(diào)試系統(tǒng)結(jié)構(gòu),能夠充分利用片上網(wǎng)絡(luò)的設(shè)計(jì)技術(shù)實(shí)現(xiàn)高工作頻率、高帶寬的調(diào)試命令與蹤跡數(shù)據(jù)傳遞,滿足多核處理器對(duì)于非侵入式調(diào)試的需求,便于快速定位軟件和硬件故障.而且分析表明,該結(jié)構(gòu)也非常適合時(shí)間戳和調(diào)試事件的傳播,并且能夠充分利用高帶寬的調(diào)試命令通道實(shí)現(xiàn)時(shí)間戳的重載和事件傳播路徑的配置.本文實(shí)現(xiàn)的4×4片上網(wǎng)絡(luò)結(jié)構(gòu)的獨(dú)立調(diào)試系統(tǒng)及其相關(guān)實(shí)驗(yàn),

檢驗(yàn)了前述結(jié)構(gòu)的良好性能和實(shí)現(xiàn)的簡(jiǎn)便性,對(duì)于基于片上網(wǎng)絡(luò)的眾核處理器調(diào)試系統(tǒng)設(shè)計(jì)具有較好的參考意義.

參考文獻(xiàn)

[1] MIRZAAGHATABAR M, KOOHI S, HESSABI S, et al. An empirical investigation of mesh and torus NoC topologies under different routing algorithms and traffic models[C]//10th Euromicro Conference on Digital System Design Architectures, Methods and Tools.2007:19-26.

[2] SUNGHYUN PARKK, TUSHAR KRISHNAr, CHIAHSIN OWEN CHEN, et al. Approaching the theoretical limits of a mesh NoC with a 16node chip prototype in 45nm SOI[C]//Design Automation Conference(DAC), 2012:398-405.

[3] HOPKINS A B T, KLAUS D, McDONALDMAIER K D. Debug support for complex systems onchip: a review[J]. IEEE Proceedings Computers and Digital Techniques, 2006,153(4):197-207.

[4] ANDREW B T, HOPKINS A B T, KLAUS D, et al. Debug support strategy for systemsonchips with multiple processor cores[J]. IEEE Transactions on Computers, 2006, 55(2):174-184.

[5] MAYER A, SIEBERT H, McDONALDMAIER K D. Boosting debugging support for complex systems on chip[J]. IEEE Computer, 2007, 40(4):76-81.

[6] GOOSSENS K, VERMEULEN B, VAN STEEDEN R, et al. Transactionbased communication centric debug[C]// International Symposium on Networks on Chip, NOCS'07. Washington, USA, 2007:95-106.

[7] GHAREHBAGHI A M, FUJITA M. Transactionbased debugging of systemonchips with patterns[C]//International Conference on Computer Design, ICCD'09. Lake Tahoe, CA, USA, 2009:186-192.

[8] GHAREHBAGHI A M, FUJITA M. Transactionbased postsilicon debug of manycore systemonchips[C]//13th International Symposium on Quality Electronic Design. 2012:702-708.

[9] NEISHABURI M H, ZILIC ZELJKO. An enhanced debugaware network Interface for networkonchip[C]// 13th International Symposium on Quality Electronic Design. 2012:709-716.

[10]AZEVEDO A, VERMEULEN B, GOOSSENS K. Architecture and design flow for a debug event distribution interconnect[C]//30th International Conference on Computer Design, ICCD'12. 2012:439-444.

[11]TODOROV V, GHIRIBALDI A, REINIG H. Nonintrusive trace & debug NoC architecture with accurate timestamping for GALS SoCs[C]//Proceedings of the 8th International Conference on Hardware/software Codesign and System Synthesis. 2012:181-186.

兴隆县| 休宁县| 乾安县| 马鞍山市| 朔州市| 连山| 华容县| 手游| 封丘县| 卓尼县| 九台市| 广饶县| 色达县| 九寨沟县| 泽普县| 昆明市| 渝北区| 惠东县| 天等县| 从化市| 诏安县| 鄂托克前旗| 老河口市| 松阳县| 海安县| 定结县| 侯马市| 榕江县| 伊金霍洛旗| 通渭县| 永康市| 增城市| 镇安县| 化德县| 安阳市| 仪陇县| 镇坪县| 观塘区| 新竹市| 科技| 舟曲县|