Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

高頻寬嵌入式應用中SoC微控制器的新型匯流排設計

上網時間: 2005年03月20日     打印版  Bookmark and Share  字型大小:  

關鍵字:SoC  系統單晶片  NS9750  通用共享匯流排架構  ARM 

傳統SoC匯流排架構已不能滿足新的連網嵌入式設計對高頻寬數據串流進行即時控制的需求,NetSilicon開發的可程式匯流排頻寬控制系統可以使多個資源同時存取匯流排,使其既滿足應用要求又不會影響其他重要作業的性能。本文將對該系統的可程式匯流排頻寬分配方案進行探討。

32位元嵌入式設計越來越要求對網路上高頻寬數據串流進行即時控制,特別是在系統單晶片(SoC)層面,以確定性和無爭議的方式傳輸數據和控制資訊變得非常重要。各種作業直接處於系統開發者既定的控制之下也很重要,而這在基於匯流排的SoC設計中並不總是能夠實現。

圖1:NS9xxx的頻寬控制系統。

設計者和晶片供應商常常借鑒板級及系統級架構技術,以便在最短的設計時間內以最低的開發成本進行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用於更新。

共享匯流排的概念並不能滿足SoC中的這些要求。在典型的AHB設計中,匯流排主控是匯流排上全部的主要資源,也就是說,當匯流排空閑時,它們可向匯流排請求完成一個任務所需要的時間。但在基於ARM的SoC中,程式設計者不能直接控制當它們掌管匯流排時可得到多少匯流排資源。

圖2: NS9750原理框圖。

共享匯流排架構用多種方式來區分這些作業的優先次序,包括:菊花鏈仲裁、集中式平行仲裁、基於自選或衝突監測的分佈式仲裁以及帶多個匯流排請求的匯流排仲裁。但當指定的主控接管匯流排後,其他作業就會擱置在一邊。目前還沒有一種機制能夠讓多個資源同時存取匯流排,使其既滿足應用要求,又不會影響其他重要作業提供確定性及即時性響應的能力。

在AMBA環境中處理這類情況的一種通用方法是使用仲裁通道。如果有六個匯流排主控,匯流排便設計成有六個仲裁通道。但是,片上仲裁邏輯根據請求存取該匯流排的主控數目來分配這些通道,而不是把每個通道指定給某個特定的主控。如果有四個主控請求存取匯流排,則這六個通道會在這四個主控之間進行分配,確保每個主控有平等的機會存取該匯流排。

然而,這並不能解決如何分配足夠的匯流排頻寬以完成某一特定任務這一基本問題。若其中一個作業需要三個通道,而其它作業總共只需要兩個通道,則每一種作業將會分配到相同數量的可用通道空間。其結果是,有的通道沒有充分利用(甚至根本沒用到),而有的則超負載使用,影響SoC在極低延遲內對事件進行確定性響應的能力。

可程式匯流排頻寬控制系統

因此,需要一種可程式的匯流排頻寬分配方案,在某一特定時刻為某一特定的主控分配其所需的匯流排配置,並將剩餘的匯流排空間分配給其它可能要求存取該匯流排的主控。由於這種方案可能隨時間改變,因此需要一種機制以便按照常規原理重新分配匯流排資源。

NetSilicon公司已開發一種新的頻寬控制系統來取代採用AMBA架構的頻寬控制系統。該系統採用一個16槽位元旋轉優先級匯流排仲裁器(見圖1),這種仲裁器包含一套可程式偽隨機或旋轉優先級緩衝記憶體替換演算法。例如,在NetSilicon的NS9750(見圖2)中,AHB上的六個通道不是透過競爭進行分配,而是根據16槽位元匯流排分配方案由六個匯流排主控分享。透過系統控制模組中的專用暫存器,系統開發者目前可採用三種方法在SoC中分配匯流排資源。

在最高層次,某特定匯流排主控每次發出的一個存取請求,都會按請求順序得到響應,直到這六個主控全被輪詢。根據所需頻寬,每一個匯流排主控可分配到一定數目的槽位元並獨佔這些槽位元。例如在NS9750中,四個槽位元分配給CPU,四個槽位元給乙太網路,四個槽位元給BBus橋,三個槽位元給LCD,三個槽位元給PCI/卡匯流排,但在系統執行期間系統軟體會根據需要重新評估這一分配方案,這可用來確定AHB匯流排周期的數目。如果在下一個評估周期中情況產生沒有變化,則沿用以前的設置,如果情況有變,則協定新的匯流排主控槽位元分配方案。

為對匯流排資源進行更精確的控制,這種循環仲裁方案提供兩個附加層次的可程式性能:分配給ARM CPU的匯流排頻寬大小以及這16個槽位元中每個槽位元的頻寬利用率。

NS9750的ARM926EJ-S核心作為匯流排主控時不能控制所有匯流排資源,缺省情況下它只能控制50%的匯流排頻寬或16個槽位元中的8個,這樣可確保其它五個匯流排主控可以一直佔有至少50%的匯流排頻寬。不過,在程式設計者直接控制下,它可以按照指令將其部份頻寬釋放給另一個匯流排主控,或者,在該匯流排仲裁周期內或程式設計者認為必要的任何周期中控制另外的槽位元。

程式設計者也可為每個槽位元選擇頻寬利用係數-100%、75%、50%或25%。這一選擇是透過控制何時以及以怎樣的順序分配每個槽位元的存取來實現的,係數為25%,則這個槽位元每四個周期只能被輪詢一次;係數為50%,則每兩個周期輪詢一次;75%,則每四個周期輪詢三次。

對旋轉匯流排仲裁器進行編程

圖3:NS9xxx的匯流排架構。

程式設計者可透過包含在系統控制模組內的幾個暫存器定義多種選項。第一個暫存器是16入口匯流排請求配置暫存器,它的每一個入口代表一個主控和一個準許槽位元的匯流排請求。每一個請求/準許槽位元每次只能分配給一個匯流排主控,但根據匯流排主控的頻寬要求,每個匯流排主控可同時連接多個請求/準許槽位元。當多個通道分配給一個主控時,這些通道應均勻分佈在這16個通道當中。

每個請求/準許槽位元都有一個兩位元的頻寬壓縮字段(BRF),用以確定每個槽位元能對系統匯流排進行仲裁的頻率(100%、75%、50%或25%)。BRC將匯流排請求訊號輸出到第二個16入口匯流排請求暫存器(BRR),默認情況下,BRC中未被分配的槽位元將阻止用任何匯流排請求訊號設置相應的BRR入口。

第四個暫存器用於儲存哪個匯流排主控有數據在等待向AHB傳輸,而第五個暫存器則是程式設計者用來為每個匯流排請求和準許槽位元(分配給特定匯流排主控)分配權重值。

使用循環仲裁

在前面例子中,當基於特定仲裁再分配調度方案的LCD請求額外的匯流排存取時,程式設計者可根據LCD必須處理的數據流的性質來指定分配給LCD的優先級。如果程式設計者認為需要分配10個槽位元給LCD控制器,剩餘的6個槽位元會按最初仲裁方案分配給其它匯流排主控。這樣LCD控制器可獲得十倍於正常情況下可得到的頻寬,以及十倍於其它主控的頻寬來處理這種特定情形下的負載。

當透過乙太網路連接傳送數據、同時LCD螢幕進行刷新的時候,這種特性十分重要。LCD需要即時、準確地進行刷新,且不會被乙太網路請求中斷。

在典型的AMBA匯流排架構中,如果LCD對匯流排提出請求,不論有怎樣的刷新需求,它都不得不等待直到乙太網路主控將匯流排釋放出來。採用新的循環可程式仲裁方案,程式設計者可降低乙太網路傳輸的優先級,使數據以更低但可接受的速率傳輸,確保LCD得以適當地刷新而不至於使螢幕出現空白。

如果為保證活動畫面顯示對LCD延遲和頻寬要求極高,則乙太網路協定需求還可進一步降低傳輸速率。但停止數據串流傳輸是不可以的。實際上,如果LCD主控控制了該匯流排並且只有當刷新工作完成後才將匯流排釋放,則有可能停止數據串流的傳輸。

在周邊匯流排中增加突發模式DMA

在基於AMBA的設計中,周邊匯流排的傳統設計方法是假定基於ARM核心的嵌入式元件用於低階性能應用。但現在的元件經常需要在不切斷低頻寬周邊電路存取匯流排資源的情況下,執行一種或多種高頻寬應用。在具有較多周邊電路的設計中,這種情況特別容易出問題。例如NS9750或NS9360,它們支援USB、I2C,具有四個多功能串列模組(可選用UART或SPI,同步模式下的速率可達11Mbps)、50個單獨的可程式GPIO接腳、一個IEEE1284周邊埠以及16個通用定時器或計數器(每個都有自己的I/O接腳)。

在傳統的APB實現方案中,採用FIFO就足以應付通訊週邊設備(如UART)的低速率傳輸,FIFO可以在處理器必須介入並存取APB之前將數個位元組傳送到介面。但在本文所描述的許多高階嵌入式應用中,一個或多個這樣的周邊電路可能需要高頻寬傳輸,要求能透過APB/AHB橋快速存取主要的高性能匯流排。

一種讓周邊匯流排工作於這種突發模式的方法,是僅用一條突發模式周邊匯流排(如NetSilicon的BBUS)替代APB匯流排。這種突發模式周邊匯流排具有四個支援突發模式的匯流排主控(見圖3):第一個匯流排主控是具有13個通道的DMA引擎,支援13個USB端點;第二個匯流排主控是具有12個通道的DMA引擎,支援4個串列模組(每個串列模組有8個通道)和1284埠;第三個匯流排主控為BBUS-AHB橋,它包含一個DMA引擎,該引擎具有可存取AHB系統匯流排的通道;第四個匯流排主控是一個USB宿主模組。另外,這種DMA引擎有兩個獨立的專用DMA通道,可支援連接到外部儲存匯流排的外部設備。為簡化突發模式狀態,每一個內部DMA通道都能以‘飛越模式’(fly-by mode)在系統記憶體及BBUS周邊電路之間傳輸數據,而兩個外部DMA通道則選擇記憶體到記憶體的傳輸模式。

作者:Christopher Chang


NS9xxx系統架構師


Wanda Reiss


產品行銷部


NetSilicon公司





投票數:   加入我的最愛
我來評論 - 高頻寬嵌入式應用中SoC微控制器的新型...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首