如果時序定義明確且時間關鍵功能被分區,單核微控制器可以執行多任務,以便中斷和定時器服務例程響應時間足夠快,可以處理手頭的任務。然而,它的設計相當于雜耍。當一個球在空中不需要服務時,另一個球可能需要立即服務以保持過程移動。只要你足夠快以切換上下文,一切都很好。
當任務重疊時,可能無法足夠快地做出反應,例如當同時發生多個同步和異步刺激時。在這些情況下,只有幾個選項。一個是更快的處理器。另一種方法是使用多個處理器并將應用程序劃分為時間可管理或流水線組塊。第三種,也是最好的選擇,就是采用單芯片雙核或多核處理器。
本文介紹具有多個核心的處理器。這些部分允許任務主管為每個核心分配個人職責,以便其他干擾不會影響完成諸如時間關鍵控制循環等任務所需的實時性能。
總線背面
了解如何最好地選擇雙核或多核處理器的關鍵在于它如何使用或復制資源。最簡單(也是非常有效)的方法是每個處理核心都有自己的“支持人員”,包括自己的程序和數據存儲器,時鐘和I/O.共享外設需要由當前使用它們的處理器內核聲明(圖1),雙端口內存可以作為交換關鍵數據的手段。
圖1:當每個微核心擁有自己的資源以便獨立運行時,提供最大的自由度。唯一可能的爭用點是必須設計用于處理它的雙端口RAM。
共享資源可以節省芯片面積和功耗,但必須以每個處理器內核始終可用的方式進行同步。浮點處理器可能需要多個指令和周期來加載操作數,然后進行處理和存儲。在目前為止討論的兩種情況下,在資源空閑之前將不同的核心保持在等待狀態并不是一種有效的方法,并且在這些條件下或多或少會將性能降低到單核級別。
對于像數據總線這樣的通用數據路徑資源也是如此。如果內部只有一個數據總線,則每個核心都需要訪問它,通常每個周期至少有一次,但有時更多。存在爭用時可以插入等待狀態,但這對原因沒有幫助。
正如您所猜測的那樣,內核的同步性和時序性是一個重要因素。如果每個內核以其自己的頻率以自己的頻率運行,則可以訪問共享總線。但是,如果使用公共時鐘在內核之間交錯微狀態,則可以在沒有任何爭用的情況下最大限度地利用內部資源。以Von Neumann架構為例,我們可以讓四個核心處理器使用讀取,解碼,操作和執行周期共享一個公共總線(圖2)。請注意,雖然第2階段和第3階段操作可以在每個處理器內部,但使用總線的執行周期(如內存存儲)仍然可能導致爭用。如果I/O路徑對處理器是唯一的,則可以在執行周期期間執行一些I/O操作。
圖2:當多個微控制器及時交錯時,更容易實現對總線管理等公共資源的更好控制。當發生內存和I/O讀寫時,仍然必須小心,因為它們可以聲明總線。具有分割代碼和數據總線的哈佛架構可以解決這個問題。
要記住的另一個因素是部件中的每個核心處理器不必相同或相同。恩智浦半導體的32位非對稱雙核204 MHz PC4337JBD144E是該公司LPC43xx系列ARM?Cortex?M4和M0內核的成員,采用單封裝。這些部件的ROM,RAM,外設組合,I/O和封裝尺寸各不相同,但所有部件都具有較小的M0內核,可以接管內務管理,初始化和數據管理工作,而M4內核可以自由地執行更多過程密集型功能,得益于其浮點硬件和DSP擴展。
恩智浦部件使用多層矩陣和各個外設橋來解決處理器內核和外設之間的仲裁問題(圖3)。 Master和Slave指定也確保優先級。其思想是AHB矩陣將ARM Cortex M4總線和其他總線主控器連接到外設,以便允許不同總線主控器同時訪問位于不同從端口上的外設。
圖3:為解決總線爭用問題,恩智浦使用AHB矩陣,允許多個內核和外設在需要時訪問總線。
飛思卡爾的i.MX 6是一系列可擴展的單核,雙核和四核32位ARM 9處理器。它們的內核每個時鐘速度為1 GHz,與其他高端處理器一樣,這些器件具有硬件支持,如USB(和OTG),以太網,MMC/SD卡,PCI,2D和3D圖形以及SATA等外設。只是幾個(圖4)。
圖4:飛思卡爾的方法是在添加核心時添加更復雜的外圍設備和接口。這允許使用內核代碼進行可擴展開發以進行基本固件驗因此,在逐步添加更多核心和功能之前,可以建立穩定的固件庫。
采用飛思卡爾的雙核MCIMX6D5EYM10AC采用624引腳FBGA封裝。它的0.9至1.5 V操作可將熱量和功耗降至最低,而224 I/O并非易事。雖然這個I/O的一部分通過外部總線接口專用于外部程序存儲器,但這些部件非常密集,晶體管數量非常高,因此保持低功耗至關重要。
應該注意,這些核不是不對稱的。它們實際上完全相同。這意味著單核設計可以遷移到雙核或四核設計,并且隨著性能的提高,代碼將兼容。這可能是一個關鍵的決定因素,特別是如果您正在設計筆記本電腦,智能手機,筆記本電腦或其他需要同時支持許多高端外設的多功能設備。
多核MCU領域的另一個參與者是XMOS,它提供了一系列可擴展的32位部分。 XS1系列包括單核,雙核,四核,十六進制和八核,以及多達16核的器件,從48引腳TQFP封裝到512引腳LFBGA封裝(圖5)。這些部件還包含豐富的外圍設備和功能??紤]0.95至3.6 V 48引腳400 MIPS四核XS1-L4A-64-TQ48-C4。每個核心(稱為磁貼)可同時執行實時任務,并可執行計算,高級DSP代碼,控制代碼或處理I/O的軟件。
圖5:借助XMOS的通道鏈接和響應端口映射方法,最多可將16個內核放在一個封裝中。當擴展發生時,可以復制ROM,RAM和時序等關鍵功能。
在XMOS中,部件調度硬件執行類似RTOS的功能,以確保低延遲并消除中斷,確保確定性操作。由于每個核心都是相同的,隨著計算和多任務處理需求的增長,您的設計功能也可以增長,而無需重新開始創建軟件。
總之,處理器和功能的巧妙劃分可以簡化設計,多核部件可以成為幫助工程師解決關鍵實時需求的關鍵因素。許多精心設計的零件和工具隨時可以提供幫助。有關本文中討論的部分的更多信息,請使用提供的鏈接訪問Digi-
-
微控制器
+關注
關注
48文章
7576瀏覽量
151727 -
處理器
+關注
關注
68文章
19382瀏覽量
230484 -
存儲器
+關注
關注
38文章
7518瀏覽量
164083
發布評論請先 登錄
相關推薦
評論