SoC系統中實時總線模塊的設計理念與應用
發布時間:2007/8/24 0:00:00 訪問次數:470
作者:張聿 南山之橋微電子有限公司
P>SoC中CPU總線一般采用應答機制,是非實時的,數據的處理采用中斷響應機制以發揮效率。處理特定實時數據并沒有固定的延時與穩定的吞吐率,因此需要設計一個模塊來處理實時數據到非實時總線之間的平滑過度問題。作者以此模塊設計為例,闡述非實時總線中實時數據切換的設計理念與幾個實用技術。
在芯片設計中,芯片內部總線的設計往往決定了芯片的性能、功耗與各模塊設計的復雜度。我們設計總線往往會依據兩方面的原則:一是芯片設計流程其內在的需求,二是所針對的應用對交換寬帶、延時、效率、靈活性的需求。
針對芯片總線設計流程內在的需求,高效總線結構設計通常遵循的基本原則包括:同步設計、可綜合、無三態信號、低延時、單觸發延、支持多主控及總線仲裁(支持DMA及多CPU核)、高時鐘頻率獨立性、支持突發(高效率)和低門數。遵循這些基本原則可以幫助我們規避很多設計上的風險,提高總線效率與IP復用度。當然,實際上述有些原則如“三態總線”,可以而且應當在某些應用中使用,只是不建議芯片及設計工程師輕易地突破這些規范,增加風險。南山之橋微電子公司在高端芯片設計中使用了三態總線技術來解決超寬總線的布線聚集與時序匹配問題。
應用的需求往往會決定總線的形式,如SoC芯片中往往會采用嵌入式CPU的總線結構。反過來說,我們選用哪一款CPU,除了成本、性能、功耗、快速精確的時序仿真模型、編譯環境和可用IP外,還有重要的一點就是其總線設計是否簡單、高效與有利于發揮其它設計模塊的效率。
圖1:幀結構TDM形式時序圖。
以現在較流行的ARM處理器來說,采用AMBA總線標準,其中高速芯片通常采用的AHB總線有以下幾個特質:流水線式、非三態總線、支持多主控、總線仲裁與集中地址譯碼、應答響應機制(非實時)、支持突發。
總之,AHB總線適宜于發揮CPU的效率,符合高效總線設計的原則,但是其本身也有總線位寬限制(主要是指令集位寬)與SPLIT(切分)選項支持的復雜度。在筆者參與的設計中有一半以上不支持SPLIT選項以降低設計與驗證開銷,限于篇幅在此不展開闡述。最主要的問題是SoC中CPU總線一般采用應答機制,也就是非實時的,數據的處理采用中斷響應機制以發揮效率。處理特定實時數據并沒有固定的延時與穩定的吞吐率,那么就需要設計一個模塊來處理實時數據到非實時總線之間的平滑過度問題。筆者以此模塊設計為例,闡述非實時總線中實時數據切換的設計理念與幾個實用技術。例子中實時數據傳遞采用TDM總線形式(Time Division Multiplexed,時分復用),我們稱此模式為TDM模塊。
TDM模塊設計
TDM模塊一端的界面是多路音頻信號的輸入與輸出,另一端是AHB總線,音頻數據的輸入/輸出,通常采用幀結構TDM形式(見圖1)。其中,sp_io_xclk代表音頻數據采樣時鐘,sp_io_xfs代表幀同步頭,下面兩行分別是輸出與輸入數據。可見,這是一個含幀格式的多通道時分實時數據傳輸格式。關于AMBA總線,有大量介紹資料,此處不贅述。
在這個模塊的設計中,我們考慮了以下幾個原則:平滑匹配數據傳輸速度、低延時與低資源占用(邏輯與存儲資源)、高效使用AHB總線寬帶、提高CPU處理效率、可靠性與錯誤處理、可控性與可觀性。最基本的思路是:采用FIFO(先入先出)技術暨隊列來緩沖數據傳輸,同時要盡量少緩存數據在隊列中,以滿足低延時與低資源的占用;同時采用AHB burst模式提高總線利用帶寬;最后,還要提供寄存器讀寫來控制傳輸參數與狀態存儲,采用AHB從控模式(Slave)。初步的設計結構如圖2。
DMA技術的使用時機
在這個初步設計中,緩存隊列的長度計算主要取決于AHB burst的速度與頻率。要少緩存數據,就要頻繁進行AHB傳遞,也就是頻繁中斷CPU,這降低了CPU的處理效率。
圖2:TDM模塊的初步設計結構。
 
作者:張聿 南山之橋微電子有限公司
P>SoC中CPU總線一般采用應答機制,是非實時的,數據的處理采用中斷響應機制以發揮效率。處理特定實時數據并沒有固定的延時與穩定的吞吐率,因此需要設計一個模塊來處理實時數據到非實時總線之間的平滑過度問題。作者以此模塊設計為例,闡述非實時總線中實時數據切換的設計理念與幾個實用技術。
在芯片設計中,芯片內部總線的設計往往決定了芯片的性能、功耗與各模塊設計的復雜度。我們設計總線往往會依據兩方面的原則:一是芯片設計流程其內在的需求,二是所針對的應用對交換寬帶、延時、效率、靈活性的需求。
針對芯片總線設計流程內在的需求,高效總線結構設計通常遵循的基本原則包括:同步設計、可綜合、無三態信號、低延時、單觸發延、支持多主控及總線仲裁(支持DMA及多CPU核)、高時鐘頻率獨立性、支持突發(高效率)和低門數。遵循這些基本原則可以幫助我們規避很多設計上的風險,提高總線效率與IP復用度。當然,實際上述有些原則如“三態總線”,可以而且應當在某些應用中使用,只是不建議芯片及設計工程師輕易地突破這些規范,增加風險。南山之橋微電子公司在高端芯片設計中使用了三態總線技術來解決超寬總線的布線聚集與時序匹配問題。
應用的需求往往會決定總線的形式,如SoC芯片中往往會采用嵌入式CPU的總線結構。反過來說,我們選用哪一款CPU,除了成本、性能、功耗、快速精確的時序仿真模型、編譯環境和可用IP外,還有重要的一點就是其總線設計是否簡單、高效與有利于發揮其它設計模塊的效率。
圖1:幀結構TDM形式時序圖。
以現在較流行的ARM處理器來說,采用AMBA總線標準,其中高速芯片通常采用的AHB總線有以下幾個特質:流水線式、非三態總線、支持多主控、總線仲裁與集中地址譯碼、應答響應機制(非實時)、支持突發。
總之,AHB總線適宜于發揮CPU的效率,符合高效總線設計的原則,但是其本身也有總線位寬限制(主要是指令集位寬)與SPLIT(切分)選項支持的復雜度。在筆者參與的設計中有一半以上不支持SPLIT選項以降低設計與驗證開銷,限于篇幅在此不展開闡述。最主要的問題是SoC中CPU總線一般采用應答機制,也就是非實時的,數據的處理采用中斷響應機制以發揮效率。處理特定實時數據并沒有固定的延時與穩定的吞吐率,那么就需要設計一個模塊來處理實時數據到非實時總線之間的平滑過度問題。筆者以此模塊設計為例,闡述非實時總線中實時數據切換的設計理念與幾個實用技術。例子中實時數據傳遞采用TDM總線形式(Time Division Multiplexed,時分復用),我們稱此模式為TDM模塊。
TDM模塊設計
TDM模塊一端的界面是多路音頻信號的輸入與輸出,另一端是AHB總線,音頻數據的輸入/輸出,通常采用幀結構TDM形式(見圖1)。其中,sp_io_xclk代表音頻數據采樣時鐘,sp_io_xfs代表幀同步頭,下面兩行分別是輸出與輸入數據。可見,這是一個含幀格式的多通道時分實時數據傳輸格式。關于AMBA總線,有大量介紹資料,此處不贅述。
在這個模塊的設計中,我們考慮了以下幾個原則:平滑匹配數據傳輸速度、低延時與低資源占用(邏輯與存儲資源)、高效使用AHB總線寬帶、提高CPU處理效率、可靠性與錯誤處理、可控性與可觀性。最基本的思路是:采用FIFO(先入先出)技術暨隊列來緩沖數據傳輸,同時要盡量少緩存數據在隊列中,以滿足低延時與低資源的占用;同時采用AHB burst模式提高總線利用帶寬;最后,還要提供寄存器讀寫來控制傳輸參數與狀態存儲,采用AHB從控模式(Slave)。初步的設計結構如圖2。
DMA技術的使用時機
在這個初步設計中,緩存隊列的長度計算主要取決于AHB burst的速度與頻率。要少緩存數據,就要頻繁進行AHB傳遞,也就是頻繁中斷CPU,這降低了CPU的處理效率。
圖2:TDM模塊的初步設計結構。