0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

芯片DFX:Coresight架構(gòu)

jf_EksNQtU6 ? 來源:TrustZone ? 2023-11-05 17:04 ? 次閱讀

最近接觸到了一些產(chǎn)線的Test的東西,然后發(fā)現(xiàn)這里面有一些DFX的相關(guān)東西。

之前在梳理整個(gè)安全領(lǐng)域全景圖的時(shí)候,也提到了調(diào)試安全。

林林種種原因讓我打算來學(xué)習(xí)一下DFX相關(guān)的內(nèi)容,那自然就繞不開Coresight。

今天就一起來看看Coresight吧,最近喜歡上了畫圖來整理自己的思路。

縮略詞

CoreSight Soc-400一個(gè)完整的調(diào)試和跟蹤解決方案,包括如下組件:

?控制和接入組件:

?DAP(Debug Access Port):用來連接外部硬件調(diào)試工具的物理接口,允許外部調(diào)試工具訪問芯片CPU、CoreSight、DDR等。

?ECT(Embedded Cross Trigger)

?跟蹤數(shù)據(jù)源:跟蹤源是CoreSight中用于產(chǎn)生跟蹤信息的組件。每個(gè)跟蹤源組件都會(huì)產(chǎn)生一種格式的信息,最終可以組合在一起并且通過跟蹤鏈接到輸出端口

? PTM(Program Trace Macrocell):監(jiān)控處理器運(yùn)行狀況,將處理器執(zhí)行過的指令信息進(jìn)行壓縮傳輸。

? STM(System Trace Macrocell):捕捉系統(tǒng)的事件信息并以獲取數(shù)據(jù)跟蹤形式傳輸?shù)礁櫬┒坊蚋欇敵鼋M件。

?ETM(Embedded Trace Macrocell):監(jiān)控處理器運(yùn)行狀況,將處理器執(zhí)行過的指令信息進(jìn)行壓縮傳輸。跟蹤指令執(zhí)行、數(shù)據(jù)搬運(yùn)、PE(Processing Element)事件。

?連接:

? Synchronous 1:1 ATB bridge:

? Replicator:可以把單個(gè)輸入復(fù)用到兩個(gè)分支輸出,可以使得CoreSight系統(tǒng)跟蹤信息同時(shí)傳輸?shù)絻蓚€(gè)或多個(gè)輸出。

? Trace Funnel:把CoreSight系統(tǒng)中多個(gè)跟蹤源產(chǎn)生的信息組合在一起并以單個(gè)流輸出到高級(jí)跟蹤總線ATB。Funnel之間可以級(jí)聯(lián),一個(gè)Funnel最多可以支持6個(gè)跟蹤源信息輸入。

?跟蹤輸出節(jié)點(diǎn):

? ETR(Embedded Trace Router):把跟蹤數(shù)據(jù)存儲(chǔ)到調(diào)試目標(biāo)平臺(tái)的系統(tǒng)內(nèi)存上,存儲(chǔ)系統(tǒng)內(nèi)存空間是可配置的。

?ETF(Embedded Trace FIFO):主要是緩沖數(shù)據(jù)的輸出,尤其當(dāng)當(dāng)量數(shù)據(jù)在瞬間產(chǎn)生式,通過ETF可以平滑數(shù)據(jù)的輸出速率。緩存可以被配置為FIFO或Circular Buffer;FIFO滿了之后就會(huì)反壓,源頭停止輸出跟蹤數(shù)據(jù);Circular Buffer滿了后則會(huì)覆蓋。

? TPIU(Trace Port Interface Unit):把捕捉到的數(shù)據(jù)導(dǎo)出到外部調(diào)試適配器,如DSTREAM。

? ETB(Embedded Trace Buffer):是芯片內(nèi)一塊RAM,用來存儲(chǔ)捕捉到的跟蹤信息??梢酝ㄟ^DAP訪問存儲(chǔ)在ETB中的數(shù)據(jù)。

? TMC(Trace Memory Controller):在芯片設(shè)計(jì)時(shí)可配置,配置成ETB時(shí)跟上面介紹的ETB功能一致。還可以配置成ETR和ETF。

時(shí)間戳組件:產(chǎn)生CoreSight或處理器所需的時(shí)間戳。通過Narrow timestamp replicator分發(fā)到多個(gè)目的設(shè)備。路徑:時(shí)間戳發(fā)生器->時(shí)間戳編碼器->Narrow timestamp replicator->時(shí)間戳解碼器->CPU/CTI等。

?時(shí)間戳發(fā)生器

?時(shí)間戳編碼器

?時(shí)間戳解碼器

?AMBA AHB跟蹤宏單元(HTM)

?調(diào)試訪問接口(DAP),

?嵌入式交叉觸發(fā)器(ECT),

?AMBA跟蹤總線(ATB),

?橋和復(fù)制器(replicator),

?跟蹤聚合器(funnel),

?跟蹤端口接口單元(TPIU),

?嵌入式跟蹤緩沖器(ETB),

?測(cè)量跟蹤宏單元(ITM/STM)

更詳細(xì)的可以閱讀【ARM:CoreSight、ETM、PTM、ITM、HTM、ETB等常用術(shù)語解析】

一、coresight

coresight是ARM公司提出的,用于對(duì)復(fù)雜的SOC,實(shí)現(xiàn)debug和trace的架構(gòu)。該架構(gòu),包含了多個(gè)coresight組件。眾多的coresight組件,構(gòu)成了一個(gè)coresight系統(tǒng)。

我們也可以根據(jù)coresight架構(gòu),實(shí)現(xiàn)自己的coresight組件。

每個(gè)coresight的組件(component),都要遵循coresight架構(gòu)的要求。

1、 典型的一個(gè)coresight的環(huán)境

以下是一個(gè)典型的coresight環(huán)境,包含了兩個(gè)ARM core,一個(gè)DSP,和眾多的coresight組件。

這個(gè)coresight組件,實(shí)現(xiàn)對(duì)core,DSP的debug和trace功能。

cee83b4e-7af9-11ee-939d-92fbcf53809c.png

環(huán)境中,總共包括3個(gè)通路

? trace通路:將core和DSP內(nèi)部信息輸出到外部

? debug通路:對(duì)core和DSP實(shí)現(xiàn)debug

? trigger通路:用于core和core之間,core和DSP之間,傳輸trigger信號(hào)

cf0db04a-7af9-11ee-939d-92fbcf53809c.png

1.1、trace通路

trace通路,實(shí)現(xiàn)對(duì)master組件的數(shù)據(jù)追蹤功能,使用ETM來追蹤。

?ETM負(fù)責(zé)追蹤處理器和DSP的信息,將信息打包,通過ATB總線發(fā)送到trace bus上。

? trace bus上有trace funnel,funnel接收多個(gè)ATB總線數(shù)據(jù),然后合并成一個(gè)ATB總線數(shù)據(jù),發(fā)送給replicator。

? replicator接收到ATB數(shù)據(jù),根據(jù)配置,將ATB數(shù)據(jù)發(fā)送給ETB和TPIU。

1.2、debug的通路

debug通路,用于外部的debugger,對(duì)ARM core和DSP進(jìn)行調(diào)試功能。

上圖中,只考慮了JTAG的port。其實(shí)還有SW的port。

DAP接收外部端口的JTAG數(shù)據(jù),然后轉(zhuǎn)化成對(duì)DAP內(nèi)部的AP的訪問,然后AP再轉(zhuǎn)化為memory-mapped的總線訪問,去訪問soc內(nèi)部的資源。

上圖中,DAP輸出兩個(gè)memory-mapped總線,

?一個(gè)是debug apb總線,連接到debug APB互聯(lián)上,用于訪問debug組件的寄存器,

?一個(gè)是system bus,連接到bus matrix,用于訪問soc的內(nèi)部的資源。

debug APB互聯(lián),連接了有CTI,ETM,HTM,ITM,ETB,TPIU等coresight組件,因此外部的debugger可以通過JTAG port,對(duì)這些coresight組件進(jìn)行訪問。

bus matrix一般是連接soc的一些外設(shè),如memory,串口等,因此外部的debugger可以通過JTAG port對(duì)這些外設(shè)設(shè)備進(jìn)行訪問。

1.3、trigger通路

trigger通路,用于給指定的組件發(fā)送trigger信號(hào),或者接收指定的組件的trigger信號(hào)。

這個(gè)功能由CTI和CTM來實(shí)現(xiàn)。

CoreSight交叉觸發(fā)接口(CTI)是一種硬件設(shè)備,它將被稱為觸發(fā)器的單個(gè)輸入和輸出硬件信號(hào)帶到設(shè)備和從設(shè)備輸出,并通過交叉觸發(fā)矩陣(CTM)將它們通過編號(hào)信道互連到其他設(shè)備,以便在設(shè)備之間傳播事件。

每個(gè)core和DSP都有一個(gè)CTI組件相連,CTI可以給處理器(DSP)發(fā)送trigger信號(hào),也可以接收處理器(DSP)的trigger信號(hào)。

所有的CTI和CTM相連,因此可以實(shí)現(xiàn)多個(gè)CTI之間的trigger信號(hào)的相互發(fā)送與接收。

2、coresight組件的種類

2.1、control component

trigger的coresight組件

?ECT(embedded cross trigger)

? CTI(cross trigger interface):接收和發(fā)送trigger信號(hào)

? CTM(cross trigger matrix):CTI之間的trigger信號(hào)傳遞

2.2、trace sources

trace的coresight組件:

? ETM(embedded trace macrocells):追蹤指定設(shè)備(處理器,DSP)的trace信息,每個(gè)設(shè)備(處理器,DSP)均有自己的ETM。

? AMBA trace macrocells:追蹤AMBA總線的trace信息。

? PTM(program flow trace macrocells):

? STM(system trace macrocells):追蹤總線互聯(lián)上的trace信息

2.3、trace links

trace信息傳遞過程中所需要的中間coresight組件:

?trace funnel : 將接收的多個(gè)ATB總線數(shù)據(jù)合并成一個(gè)ATB總線數(shù)據(jù)

?replicator: 將一個(gè)ATB總線數(shù)據(jù),分發(fā)成多個(gè)ATB總線數(shù)據(jù)發(fā)送

?ATB bridge: ATB 橋,用于兩個(gè)不同的ATB域之間數(shù)據(jù)傳輸

2.4、trace sinks

最終接收trace信息的coresight組件

? TPIU(trace port interface units):將ATB數(shù)據(jù)通過trace port發(fā)送給外界

? ETB(embedded trace buffers):存儲(chǔ)ATB數(shù)據(jù)的buffer

? TMC(trace memory controller):

每個(gè)trace sink可以有一個(gè)trace formatter。

2.5、debug access port

DAP不屬于coresight的組件,但是我們會(huì)通過DAP來對(duì)coresight的組件進(jìn)行訪問。DAP包括以下:

?APB access port(APB-AP)

?AHB access port(AHB-AP)

?AXI access port(AXI-AP)

?JTAG access port(JTAG-AP)

?serial wire JTAG debug port(SWJ-DP)

?JTAG debug port(JTAG-DP)

?ROM table

DAP主要是由DP和AP組件。DP負(fù)責(zé)接收外部的JTAG或SW數(shù)據(jù),然后轉(zhuǎn)化為對(duì)AP的訪問,而對(duì)AP的訪問,是可以發(fā)起memory-mapped的訪問。因此就可以對(duì)內(nèi)部的資源進(jìn)行訪問。

cf2c1b34-7af9-11ee-939d-92fbcf53809c.png

如上圖:DAP包括了三個(gè)AP

? APB-AP:對(duì)掛接到debug APB總線上的內(nèi)部調(diào)試設(shè)備的訪問

? AHB-AP:對(duì)掛載在AHB系統(tǒng)總線上的設(shè)備的訪問

? JTAG-AP:對(duì)JTAG設(shè)備的訪問。這個(gè)是兼容以前較早的ARM處理器,如ARM9。這些較早的處理器內(nèi)部是用JTAG來調(diào)試的。但是現(xiàn)在的ARM處理器,已經(jīng)不用這種方式,統(tǒng)一用memory-mapped方式進(jìn)行調(diào)試。

目前的ARM soc中,一般至少會(huì)包括一個(gè)DAP。而一個(gè)DAP可以包括1-256個(gè)AP(access port),AP受DP的控制。

只有對(duì)AP的訪問,才可以轉(zhuǎn)化成memory-mapped總線,對(duì)soc的內(nèi)部資源進(jìn)行訪問。

memory-mapped bus通常指的是將設(shè)備的寄存器映射到內(nèi)存地址空間中,使得CPU可以通過讀取和寫入這些內(nèi)存地址來訪問和操作這些設(shè)備。這種方式使得CPU可以像訪問內(nèi)存一樣訪問這些設(shè)備,簡(jiǎn)化了設(shè)備的訪問和控制方式。

DP中有一個(gè)SELECT寄存器,該寄存器用來選擇,DP對(duì)AP的訪問,是針對(duì)于哪一個(gè)AP進(jìn)行訪問。

DAP中,是可以有多個(gè)AP的,而每次,只能對(duì)一個(gè)AP進(jìn)行訪問。因?yàn)樾枰獙?duì)AP進(jìn)行編號(hào),編號(hào)的值就在APSEL位域中。因?yàn)檫@個(gè)位域有8位,因此DAP中可以最多有256個(gè)AP。

cf4351fa-7af9-11ee-939d-92fbcf53809c.png

DAP的內(nèi)部結(jié)構(gòu)如下圖:

包括了一個(gè)DP,和3個(gè)AP,依次是AHB-AP,APB-AP,JTAG-AP。

DP通過JTAG或者SW管腳,連接外部的debugger,和外部debugger進(jìn)行通信。

DP接收到外部debugger發(fā)送的JTAG或SW數(shù)據(jù),轉(zhuǎn)化為對(duì)內(nèi)部AP的訪問。經(jīng)過decoder模塊,判斷是對(duì)哪一個(gè)AP進(jìn)行訪問,然后將訪問信息發(fā)送給對(duì)應(yīng)的AP。

AP接收到DP的訪問后,轉(zhuǎn)化為對(duì)應(yīng)的總線訪問,去訪問內(nèi)部資源。

然后將訪問的信息,才回送給DP,DP再通過JTAG或SW,將訪問信息返回給外部的debugger。

cf5b136c-7af9-11ee-939d-92fbcf53809c.png

以上就是本文全部?jī)?nèi)容,希望看完能對(duì)coresight有一個(gè)宏觀了解。

文章來源:TrustZone

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19313

    瀏覽量

    230052
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    50889

    瀏覽量

    424237
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3646

    瀏覽量

    134657
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10873

    瀏覽量

    212020

原文標(biāo)題:2、coresight組件的種類

文章出處:【微信號(hào):談思實(shí)驗(yàn)室,微信公眾號(hào):談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是DFX技術(shù)?DFX設(shè)計(jì)一定要執(zhí)行設(shè)計(jì)規(guī)則檢查嗎?

    DFX(Dynamic Function eXchange)的前身是PR(部分可重配置,Partial Reconfiguration)。
    的頭像 發(fā)表于 09-21 09:21 ?7459次閱讀
    什么是<b class='flag-5'>DFX</b>技術(shù)?<b class='flag-5'>DFX</b>設(shè)計(jì)一定要執(zhí)行設(shè)計(jì)規(guī)則檢查嗎?

    芯片DFXCoresight的寄存器一覽

    coresight對(duì)于每個(gè)coresight組件,規(guī)定了一些寄存器,這些寄存器的偏移是固定的,這些寄存器,是必須存在的。但是有的,可以不實(shí)現(xiàn)該寄存器功能。
    的頭像 發(fā)表于 11-02 11:45 ?1158次閱讀
    <b class='flag-5'>芯片</b><b class='flag-5'>DFX</b>:<b class='flag-5'>Coresight</b>的寄存器一覽

    采用UltraScale/UltraScale+芯片DFX設(shè)計(jì)注意事項(xiàng)

    采用UltraScale/UltraScale+芯片進(jìn)行DFX設(shè)計(jì)時(shí),建議從以下角度對(duì)設(shè)計(jì)進(jìn)行檢查。
    的頭像 發(fā)表于 01-18 09:27 ?928次閱讀
    采用UltraScale/UltraScale+<b class='flag-5'>芯片</b>的<b class='flag-5'>DFX</b>設(shè)計(jì)注意事項(xiàng)

    ARM調(diào)試CoreSight、ETM、PTM、ITM、HTM、ETB等常用術(shù)語解析

    `[/url] CoreSightCoreSight CoreSight 是一種基礎(chǔ)架構(gòu),它可對(duì)完整的芯片上系統(tǒng) (SoC) 設(shè)計(jì)的性能進(jìn)行調(diào)試、監(jiān)視和優(yōu)化,CoreSight? 跟蹤
    發(fā)表于 10-13 09:26

    CoreSight是什么?其功能有哪些?

    CoreSightCoreSight CoreSight是一種基礎(chǔ)架構(gòu),它可對(duì)完整的芯片上系統(tǒng) (SoC) 設(shè)計(jì)的性能進(jìn)行調(diào)試、監(jiān)視和優(yōu)化,CoreSight? 跟蹤宏單元在 SoC
    發(fā)表于 07-16 06:20

    CoreSight性能監(jiān)控單元架構(gòu)

    本手冊(cè)介紹了標(biāo)準(zhǔn)性能監(jiān)測(cè)單元(PMU)。PMU主要由監(jiān)視器組成測(cè)量部件特性的。 監(jiān)視器通常是對(duì)組件生成的事件進(jìn)行計(jì)數(shù)的事件計(jì)數(shù)器。(為了PMU架構(gòu),周期計(jì)數(shù)器是對(duì)周期事件進(jìn)行計(jì)數(shù)的事件計(jì)數(shù)器。)該
    發(fā)表于 08-09 07:20

    ACPI for CoreSight?性能監(jiān)控單元架構(gòu)1.0平臺(tái)設(shè)計(jì)文檔

    本文檔規(guī)定了ACPI對(duì)Arm系統(tǒng)中性能監(jiān)測(cè)單元(PMU)支持的描述,該系統(tǒng)由實(shí)現(xiàn)CoreSight性能監(jiān)測(cè)單元架構(gòu)的組件組成
    發(fā)表于 08-11 06:43

    Arm CoreSight ETM-M33技術(shù)參考手冊(cè)

    。 有關(guān)CoreSight的更多信息,請(qǐng)參閱ARM?CoreSight?架構(gòu)規(guī)范v2.0和ARM?CoreSight?技術(shù)系統(tǒng)設(shè)計(jì)指南。 有關(guān)ETM
    發(fā)表于 08-17 06:24

    Arm CoreSight SoC-600技術(shù)參考手冊(cè)

    可以是復(fù)雜的多處理器和包括許多異類處理器的多集群設(shè)計(jì)。 ·支持ARM調(diào)試接口(ADI)v6和CoreSight?v3架構(gòu),使您能夠在系統(tǒng)中構(gòu)建調(diào)試和跟蹤功能。 它支持在現(xiàn)有功能接口上進(jìn)行調(diào)試和跟蹤
    發(fā)表于 08-17 07:45

    PCB板DFX工藝性要求

    PCB板DFX工藝性要求PCB板DFX工藝性要求
    發(fā)表于 07-26 16:29 ?0次下載

    簡(jiǎn)述DFX理念與產(chǎn)品研發(fā)(一)

    隨著市場(chǎng)競(jìng)爭(zhēng)的日益激烈,產(chǎn)品低價(jià)格、高質(zhì)量、交貨周期短已成趨勢(shì),在電子制造業(yè)中,躺著賺錢的日子一去不返,越來越多的企業(yè)開始重視DFX,然而DFX如何快速融入企業(yè)及產(chǎn)品開發(fā)中呢? 傳統(tǒng)的產(chǎn)品開發(fā)與生產(chǎn)
    的頭像 發(fā)表于 09-28 16:01 ?3236次閱讀

    簡(jiǎn)要分析DFX實(shí)施流程

    整體的流程和架構(gòu),DFX的各個(gè)方面相互獨(dú)立又相互影響,比如產(chǎn)品的可制造性(DFM)會(huì)影響著可裝配性(DFA),可靠性設(shè)計(jì)(DFR)對(duì)DFM、DFA有相應(yīng)的約束和要求,而這些都會(huì)對(duì)DFC造成直接的影響,所以,要站在產(chǎn)品整體的角度進(jìn)行DFX
    的頭像 發(fā)表于 09-28 16:14 ?3681次閱讀

    2021華為開發(fā)者大會(huì)亮點(diǎn) HarmonyOS架構(gòu)演進(jìn)與關(guān)鍵技術(shù)-HarmonyOS對(duì)DFX能力的要求是什么

    2021華為開發(fā)者大會(huì)亮點(diǎn) HarmonyOS架構(gòu)演進(jìn)與關(guān)鍵技術(shù)-HarmonyOS對(duì)DFX能力的要求是什么 HarmonyOS對(duì)DFX能力的要求是什么?我們來看看在2021華為開發(fā)者大會(huì)上
    的頭像 發(fā)表于 10-23 11:31 ?2576次閱讀
    2021華為開發(fā)者大會(huì)亮點(diǎn) HarmonyOS<b class='flag-5'>架構(gòu)</b>演進(jìn)與關(guān)鍵技術(shù)-HarmonyOS對(duì)<b class='flag-5'>DFX</b>能力的要求是什么

    來講講與工具密切配合的CoreSight

    通過這些組件的組合和配置,CoreSight可以實(shí)現(xiàn)對(duì)復(fù)雜SoC的debug和trace功能。開發(fā)人員可以使用調(diào)試工具鏈來訪問和處理CoreSight生成的跟蹤數(shù)據(jù),以進(jìn)行故障排除、性能優(yōu)化、安全分析等操作。
    的頭像 發(fā)表于 10-30 17:54 ?2209次閱讀
    來講講與工具密切配合的<b class='flag-5'>CoreSight</b>

    DFX可制造性設(shè)計(jì)與組裝技術(shù)

    今天分享是《DFX可制造性設(shè)計(jì)與組裝技術(shù)》 資料
    的頭像 發(fā)表于 12-11 11:10 ?852次閱讀
    <b class='flag-5'>DFX</b>可制造性設(shè)計(jì)與組裝技術(shù)