2009年3月17日 星期二

Bus Protocol In TLM2 - 宗胤

我大概訂了系統所要用的Protocol,基本上我只是遵循TLM2中所定義的Base Protocol來實作系統的Protocol,另外我使用AT的Coding Style來實作這個Bus。

而TLM的Base Protocol的在AT中的實作方法有分許多種,如backward path、return path、timing annotation等。我所用的是如下圖所示的timing annotation:

Timing annotation在timing annotation中,initiator(target)會透過nb_transport_fw(nb_transport_bw)傳給target(initiator)一個事先定義好的delay,告訴target(initiator)在經過delay後某個phase才開始。

所以由上圖可看到一開始initiator傳了10ns到target,接著target會將收到的payload放到一個payload event queue中,經過10ns才會開始處理這次的傳輸(即Begin_Req開始)。而下面的End_Req也是一樣。

系統架構:

image

整個系統流程大概如下:

  1. initiator設定好payload的參數,並且設定phase為Begin_Req和決定delay後利用nb_transport_fw送至bus。
  2. bus根據payload中的addr將payload送到對應的target
  3. target收到payload後,等待delay的時間後,設定phase為End_Req和設定delay,再使用nb_transport_bw將回應送至bus
  4. bus再將回應送到對應的initiator
  5. initiator收到回應,等待delay時間後,完成此次的Request
  6. 當target完成payload所指示的指令後,開始Begin_Resp的phase,整個流程基本上與Req相似,只有傳輸的方向相反而已

基本上我會照這個來implment整個系統。

----------------------------------------------------------------------------------

03/17

補上Coware上關於Bus的分析工具:

Bus Contention Statistics & Bus Contention Trace

1

Connection Bus Utilization & Master Wait Total & Master Wait Trace

2

Transation Counts &  Transation Duration

3

Connection Bus Wait & Transation Throughputs & Transation Trace

4

接著關於今天提出了問題:

  1. 關於Delay Time,由於沒有Spec之類的東西,所以我就自己定Delay time的大小
  2. 然後關於Bus的Implementation,有些錯誤的地方,如queue payload會將它更正

今天的投影片

4 則留言:

SCREAMLab 提到...

請問品皓與Buffett那端的介面開始做了嗎?

這個經驗可以傳承給敬倫嗎?

可以請Buffett加一個他原本用硬體做的DCT嗎? 假如不難的話. 這樣就是異質的multicore DCT implementation.

我們要開始來討論visulaized的問題, 你可以先舉一下CoWare裡的功能嗎?

匿名 提到...

"東西還在的話",就沒有問題

SCREAMLab 提到...

我比較想做的是component怎麼對bus產生影響的, 因為每筆transaction的起原者是component, 而非bus.

上面Coware提供的, 我們應該很容易在Gary自己實做的SimpleBus上顯示. 我希望可以多顯示component個別對bus的動作, 以及components相互間的動作timing, 此外就是對這些traffic做一些基本的統計分析.

另外請ruru來開一串講Coware裡的AMBA2.

SCREAMLab 提到...

最近因為Multiple 8051平台的關係,Gary採用了TLM技術,但是當學弟在Trace你的code的時候,有許多不清楚的地方,我只知道TLM的運作,對於如何使用TLM2.0 Lib是無法答覆的。

我想請你做兩件事,

1. 做一份TLM2.0的教學投影片以及Word,從TLM的解釋到Lib怎麼用。
2. 解釋擬為多核8051的TLM是怎麼做的以及程式該怎麼看。

既然要找你這麼不容易,那就請你留下文件可能是比較好的方法。