了解MCU的內部匯流排結構如何驅動應用效率
MCU現在有一個驚人數量的片上外設,可以同時用於從CPU卸載低級別的功能。這可以極大地提高處理效率,降低功耗,簡化您的設計。然而,如果你的外圍功能淹沒了內部匯流排介面和數據傳輸速度,你可能會遇到一個不幸的驚喜。幸運的是,MCU製造商增加了新的和高效的匯流排介面,通常在關鍵外圍設備和片上存儲器之間有多條路徑,這有助於支持多個數據傳輸。然而,這些新的公共汽車確實有局限性,因為將所有的東西連接到所有其他地方在模具面積和功率方面都太貴了。了解這些新的片上匯流排的通用模型將有助於創建高效的設計,最大化數據傳輸帶寬。
本文將快速回顧一些常見的智能片上匯流排特性,並將說明利用這些關鍵特徵的實例設計。其中的一些主題將包括:片上匯流排矩陣體系結構、DMA控制器的使用、專用外圍數據傳輸功能、智能緩衝、匯流排優先順序系統和中斷控制。
通用匯流排介面體系結構
幾個關鍵的架構方法出現在幾乎每個高性能匯流排互連結構中。這並不奇怪,因為支持高帶寬的關鍵策略是能夠建立幾個可以獨立運行的並行連接。匯流排矩陣體系結構,其中多個匯流排主控器可以獨立地訪問多個匯流排奴隸,可能是最高效的匯流排體系結構的最常用的構建塊。飛思卡爾KiETS K70 MCU是高效數據處理和移動所需的互連結構類型的一個很好的例子。
如圖1所示,飛思卡爾KiETS K70 MCU使用多級匯流排矩陣,可以在八個獨立匯流排主控器和八個獨立匯流排母線之間互連。多個主人和奴隸獨立運作是可能的。內存分配是提高效率的關鍵。例如,下面的操作都可以並行操作,沒有重疊:
SAMLYL中的Flash和核心數據和堆棧的核心指令
SRAM中的USB數據緩衝器
液晶顯示控制器DDR中的圖形緩衝器
飛思卡爾KYETICS K70 MCU匯流排互連結構映像(點擊全尺寸)
圖1:飛思卡爾KiETS K70 MCU匯流排互連架構。
飛思卡爾還提供了K70的模塊化開發平台,它是飛思卡爾塔架系統的一部分,它可以通過可重構硬體實現快速原型化和工具重用。TWR K70F120 M可用於塔式系統外圍模塊的廣泛選擇,包括新的TWR LCD-RGB,其接受來自K70 MCU圖形LCD控制器的RGB數據。
當兩個或多個主機試圖訪問單個從埠時,介面將使用仲裁演算法來確定哪個主機將首先訪問埠。通常用於匯流排訪問的兩種常見仲裁方案是固定優先順序或循環。在固定優先順序方案中,主優先順序是固定的,在較低優先順序的主機上給予高優先順序的主機訪問許可權。如果有幾個具有同等優先順序的主機,可以使用循環優先順序方案。在該方案中,主控旋轉優先順序,以便隨著時間的推移,對資源具有相等的訪問。
注意DMA訪問匯流排矩陣的重要性。通常,DMA傳輸是最有功率效率的,所以DMA對匯流排矩陣有高效的主訪問是至關重要的。一些資源將有多個連接到匯流排矩陣——例如注意DRAM控制器——因為它們是多個主控器的關鍵資源。這通過刪除多個主機需要訪問相同資源時可能發生的「訪問阻塞」來提高整體性能。
提高效率的高級外圍匯流排體系結構
在許多MCU應用程序中,外圍操作與CPU和內存操作一樣重要。它可以提高傳輸效率,如果有先進的匯流排介面與關鍵外圍功能,以及基於CPU的功能。瑞薩RX600 MCU具有多個外圍匯流排,可以更有效地擴展帶寬負載。如圖2所示,RX600不僅具有面向CPU的操作的匯流排矩陣(在圖的頂部示出),而且具有多個外圍匯流排(在圖的底部示出),以便更好地在智能外圍設備之間分配帶寬。大量的外圍業務不需要訪問CPU匯流排矩陣,這提高了數據傳輸效率,而不增加CPU匯流排矩陣的大小,通常是更高的性能、大的晶元尺寸和更高的功率子系統。
瑞薩RX600多匯流排體系結構的圖像
圖2:瑞薩RX600多匯流排架構擴展帶寬負載。
在圖2中,有六個並行數據傳輸操作同時發生:
CPU獲取指令
USB數據傳輸到CPU
乙太網數據從SRAM移出
RGB數據從外部SDRAM移至LCD
將ADC值載入到SRAM中
計時器數據寫入DAC輸出
當多個活動同時發生時,獨立的外圍匯流排的可用性可以提供顯著的效率提升。在外圍設備要求較低的系統中,一個或兩個外圍匯流排就足夠了。
雙CPU核心體系結構
具有雙CPU內核的MCU,如Atmel SAM4C8CA,也需要高性能匯流排介面,甚至比單核心MCUs更重要,因為重要的是允許每個CPU並行訪問密鑰資源,從而不影響整個系統性能。在許多實現中,一個CPU具有較高的處理能力,而另一個則具有較少的能力。這在需要較低性能系統控制器和更高性能應用處理器的設計中是有用的。
如圖3所示,Atmel SAM4C8C有一個具有浮點能力的CPU,而另一個CPU具有定點CPU。SAM4C8C具有512 kb的快閃記憶體和128+16+8 kb的SRAM。處理任務分配給適當的CPU以提高效率。兩個高速AHB多層匯流排矩陣互連用於支持最大數量的處理重疊。獨立的DMA控制器和中斷控制器支持高效的數據傳輸,而不需要CPU干預。一個簡單的非同步AHB到AHB橋用於處理CPU地址空間之間的同步和數據傳輸,即使在DMA控制下也是如此。
Atmel雙CPU內核SAM4C8CA匯流排介面結構
圖3:Atmel雙CPU核心SAM4C8CA匯流排介面架構。
低功耗和高效率的數據傳輸
您可能會認為,這些多匯流排體系結構以最高性能系統為目標,但即使是低功耗應用也可以利用高效的匯流排結構。德克薩斯儀器MSP430F5507IrgZR,供應商的MSP430系列的MCU,集成了USB,LCD控制,和高性能模擬在一個晶元上的小腳印應用。外圍設備有幾種自主操作的方法,這可以幫助降低CPU在低功耗模式下的工作功率,如圖4所示。
TI MSP430系列低功耗運行圖像
圖4:TI MSP430家庭採用自主外圍設備進行低功耗操作。
通過使用即使在低功率操作期間保持活躍的外圍匯流排,也可以從ADC採樣數據,將數據傳輸到存儲器,輸出PWM信號,更新LCD顯示,並且在CPU處於低功率待機狀態時發送/接收串列數據通信。注意,快速喚醒時間使得有可能在需要時快速響應外圍請求,而在喚醒時不消耗大量的功率。即使這樣的能力,短CPU操作也是有效的。
總結
從一個複雜的MCU中獲得最大的性能需要在外圍設備和存儲器之間以及在需要時向CPU和來自CPU的大量重疊匯流排活動。通常,最高效的實現將有多個傳輸同時運行,而不涉及任何CPU活動。了解MCU匯流排介面體系結構的能力和局限性是實現高效率的關鍵。
推薦閱讀: