高帶寬嵌入式應用中SoC微控制器的新型總線設計
發布時間:2007/8/28 0:00:00 訪問次數:420
傳統SoC總線架構已不能滿足新的聯網嵌入式設計對高帶寬數據流進行實時控制的需求,NetSilicon開發的可編程總線帶寬控制系統可以使多個資源同時訪問總線,使其既滿足應用要求又不會影響其他重要操作的性能。本文將對該系統的可編程總線帶寬分配方案進行探討。
圖1:NS9xxx的帶寬控制系統。
32位嵌入式設計越來越要求對網絡上高帶寬數據流進行實時控制,特別是在系統級芯片(SoC)層面,以確定性和無爭議的方式傳輸數據和控制信息變得非常重要。各種操作直接處于系統開發者既定的控制之下也很重要,而這在基于總線的SoC設計中并不總是能夠實現。
設計者和芯片供應商常常借鑒板級及系統級架構技術,以便在最短的設計時間內以最低的開發成本進行SoC設計。由于手機和PDA等設備對確定性的實時響應需求很少,所以傳統解決方案在此類應用中表現還不錯。
但在許多新的聯網嵌入式設計中,傳統總線架構不能滿足共享總線對高帶寬及高密度數據流的需求,在下列應用中尤其如此,如工業用人機界面(HMI)網絡顯示、POS終端設備,具有不同數據帶寬需求的彩色打印機、網絡投影儀和監視攝像機,以及網絡打印機、數字復印機、多功能一體機、傳真機和掃描儀等。
許多基于片上串行互連的替代方案正在研發中,這些替代方案類似于串行結構、交叉交換(crossbar switch)和基于數據包的總線。在這些新方案得以完善之前,鑒于時間和成本壓力,必須找到能修改從板級設計借鑒過來的共享總線架構的方法,以滿足新的32位嵌入式聯網設計對確定性和實時性的要求。
傳統SoC總線的優缺點
SoC開發者不愿意放棄這種通用共享總線,因為它可以減少設計周期中的規范制定及驗證工作,能使SoC的高層次集成如同將擴展卡插到背板上一樣簡單。通過采用通用總線,開發者可以集中精力投入到更高層次的決策中。
ARM公司在高級微控制器總線架構(AMBA)中采用通用總線,允許獲得許可的使用者專注于自己的應用開發,從而快速將產品推向市場。
微處理器、DMA控制器、存儲器控制器及其它更高性能的模塊通過AHB連接。性能較低的模塊,比如UART、通用輸入/輸出(GPIO)及定時器等,則通過APB連接。
但是,基于ARM的SoC所瞄準的許多高端嵌入式應用,要求它們在處理這些應用的確定性與實時性需求的同時,還可以訪問高帶寬網絡環境。
這些應用要求SoC能夠發出控制信號、采集數據并在網絡上實時傳輸數據。基于不同的網絡特性及其帶寬要求,現有SoC總線架構的性能將會得到盡可能的提升,例如,高端聯網嵌入式應用可能要處理通過以太網連接從照相機傳輸到打印機的視頻數據位流,或從服務器傳輸到打印機的圖像,與此同時還可能根據與掃描、刷新和更新周期有關的確切要求對本地LCD顯示進行更新。使用外部LCD時,LCD控制器必須知道通過該總線傳輸的具體字節數量、數據發送順序以及數據在顯示器上顯示的特定時隙和順序,同時也很必要將信息不斷地饋送給LCD用于更新。
圖2: NS9750原理框圖。
共享總線的概念并不能滿足SoC中的這些要求。在典型的AHB設計中,總線主控是總線上全部的主要資源,也就是說,當總線空閑時,它們可向總線請求完成一個任務所需要的時間。但在基于ARM的SoC中,程序設計者不能直接控制當它們掌管總線時可得到多少總線資源。
共享總線架構用多種方式來區分這些操作的優先次序,包括:菊花鏈仲裁、集中式并行仲裁、基于自選或沖突監測的分布式仲裁以及帶多個總線請求的總線仲裁。但當指定的主控接管總線后,其他操作就會擱置在一邊。目前還沒有一種機制能夠讓多個資源同時訪問總線,使其既滿足應用要求,又不會影響其他重要操作提供確定性及實時性響應的能力。
在AMBA環境中處理這類情況的一種通用方法是使用仲裁通道。如果有六個總線主控,總線便設計成有六個仲裁通道。但是,片上仲裁邏輯根據請求訪問該總線的主控數目來分配這些通道,而不是把每個通道指定給某個特定的主控。如果有四個主控請求訪問總線,則這六個通道會在這四個主控之間進行分配,確保每個主控有平等的機會訪問該總線。
然而,這并不能解決如何分配足夠的總線帶寬以完成某一特定任務這一基本問題。若其中一個操作需要三個通道,而其它操作總共只需要兩個通道,則每一種操作將會分配到相同數量的可用通道空間。其結果是,有的通道沒有充分利用(甚至根本沒用到),而
傳統SoC總線架構已不能滿足新的聯網嵌入式設計對高帶寬數據流進行實時控制的需求,NetSilicon開發的可編程總線帶寬控制系統可以使多個資源同時訪問總線,使其既滿足應用要求又不會影響其他重要操作的性能。本文將對該系統的可編程總線帶寬分配方案進行探討。
圖1:NS9xxx的帶寬控制系統。
32位嵌入式設計越來越要求對網絡上高帶寬數據流進行實時控制,特別是在系統級芯片(SoC)層面,以確定性和無爭議的方式傳輸數據和控制信息變得非常重要。各種操作直接處于系統開發者既定的控制之下也很重要,而這在基于總線的SoC設計中并不總是能夠實現。
設計者和芯片供應商常常借鑒板級及系統級架構技術,以便在最短的設計時間內以最低的開發成本進行SoC設計。由于手機和PDA等設備對確定性的實時響應需求很少,所以傳統解決方案在此類應用中表現還不錯。
但在許多新的聯網嵌入式設計中,傳統總線架構不能滿足共享總線對高帶寬及高密度數據流的需求,在下列應用中尤其如此,如工業用人機界面(HMI)網絡顯示、POS終端設備,具有不同數據帶寬需求的彩色打印機、網絡投影儀和監視攝像機,以及網絡打印機、數字復印機、多功能一體機、傳真機和掃描儀等。
許多基于片上串行互連的替代方案正在研發中,這些替代方案類似于串行結構、交叉交換(crossbar switch)和基于數據包的總線。在這些新方案得以完善之前,鑒于時間和成本壓力,必須找到能修改從板級設計借鑒過來的共享總線架構的方法,以滿足新的32位嵌入式聯網設計對確定性和實時性的要求。
傳統SoC總線的優缺點
SoC開發者不愿意放棄這種通用共享總線,因為它可以減少設計周期中的規范制定及驗證工作,能使SoC的高層次集成如同將擴展卡插到背板上一樣簡單。通過采用通用總線,開發者可以集中精力投入到更高層次的決策中。
ARM公司在高級微控制器總線架構(AMBA)中采用通用總線,允許獲得許可的使用者專注于自己的應用開發,從而快速將產品推向市場。
微處理器、DMA控制器、存儲器控制器及其它更高性能的模塊通過AHB連接。性能較低的模塊,比如UART、通用輸入/輸出(GPIO)及定時器等,則通過APB連接。
但是,基于ARM的SoC所瞄準的許多高端嵌入式應用,要求它們在處理這些應用的確定性與實時性需求的同時,還可以訪問高帶寬網絡環境。
這些應用要求SoC能夠發出控制信號、采集數據并在網絡上實時傳輸數據。基于不同的網絡特性及其帶寬要求,現有SoC總線架構的性能將會得到盡可能的提升,例如,高端聯網嵌入式應用可能要處理通過以太網連接從照相機傳輸到打印機的視頻數據位流,或從服務器傳輸到打印機的圖像,與此同時還可能根據與掃描、刷新和更新周期有關的確切要求對本地LCD顯示進行更新。使用外部LCD時,LCD控制器必須知道通過該總線傳輸的具體字節數量、數據發送順序以及數據在顯示器上顯示的特定時隙和順序,同時也很必要將信息不斷地饋送給LCD用于更新。
圖2: NS9750原理框圖。
共享總線的概念并不能滿足SoC中的這些要求。在典型的AHB設計中,總線主控是總線上全部的主要資源,也就是說,當總線空閑時,它們可向總線請求完成一個任務所需要的時間。但在基于ARM的SoC中,程序設計者不能直接控制當它們掌管總線時可得到多少總線資源。
共享總線架構用多種方式來區分這些操作的優先次序,包括:菊花鏈仲裁、集中式并行仲裁、基于自選或沖突監測的分布式仲裁以及帶多個總線請求的總線仲裁。但當指定的主控接管總線后,其他操作就會擱置在一邊。目前還沒有一種機制能夠讓多個資源同時訪問總線,使其既滿足應用要求,又不會影響其他重要操作提供確定性及實時性響應的能力。
在AMBA環境中處理這類情況的一種通用方法是使用仲裁通道。如果有六個總線主控,總線便設計成有六個仲裁通道。但是,片上仲裁邏輯根據請求訪問該總線的主控數目來分配這些通道,而不是把每個通道指定給某個特定的主控。如果有四個主控請求訪問總線,則這六個通道會在這四個主控之間進行分配,確保每個主控有平等的機會訪問該總線。
然而,這并不能解決如何分配足夠的總線帶寬以完成某一特定任務這一基本問題。若其中一個操作需要三個通道,而其它操作總共只需要兩個通道,則每一種操作將會分配到相同數量的可用通道空間。其結果是,有的通道沒有充分利用(甚至根本沒用到),而