如果時(shí)序定義明確且時(shí)間關(guān)鍵功能被分區(qū),單核微控制器可以執(zhí)行多任務(wù),以便中斷和定時(shí)器服務(wù)例程響應(yīng)時(shí)間足夠快,可以處理手頭的任務(wù)。然而,它的設(shè)計(jì)相當(dāng)于雜耍。當(dāng)一個(gè)球在空中不需要服務(wù)時(shí),另一個(gè)球可能需要立即服務(wù)以保持過程移動(dòng)。只要你足夠快以切換上下文,一切都很好。
當(dāng)任務(wù)重疊時(shí),可能無(wú)法足夠快地做出反應(yīng),例如當(dāng)同時(shí)發(fā)生多個(gè)同步和異步刺激時(shí)。在這些情況下,只有幾個(gè)選項(xiàng)。一個(gè)是更快的處理器。另一種方法是使用多個(gè)處理器并將應(yīng)用程序劃分為時(shí)間可管理或流水線組塊。第三種,也是最好的選擇,就是采用單芯片雙核或多核處理器。
本文介紹具有多個(gè)核心的處理器。這些部分允許任務(wù)主管為每個(gè)核心分配個(gè)人職責(zé),以便其他干擾不會(huì)影響完成諸如時(shí)間關(guān)鍵控制循環(huán)等任務(wù)所需的實(shí)時(shí)性能。
總線背面
了解如何最好地選擇雙核或多核處理器的關(guān)鍵在于它如何使用或復(fù)制資源。最簡(jiǎn)單(也是非常有效)的方法是每個(gè)處理核心都有自己的“支持人員”,包括自己的程序和數(shù)據(jù)存儲(chǔ)器,時(shí)鐘和I/O.共享外設(shè)需要由當(dāng)前使用它們的處理器內(nèi)核聲明(圖1),雙端口內(nèi)存可以作為交換關(guān)鍵數(shù)據(jù)的手段。

圖1:當(dāng)每個(gè)微核心擁有自己的資源以便獨(dú)立運(yùn)行時(shí),提供最大的自由度。唯一可能的爭(zhēng)用點(diǎn)是必須設(shè)計(jì)用于處理它的雙端口RAM。
共享資源可以節(jié)省芯片面積和功耗,但必須以每個(gè)處理器內(nèi)核始終可用的方式進(jìn)行同步。浮點(diǎn)處理器可能需要多個(gè)指令和周期來(lái)加載操作數(shù),然后進(jìn)行處理和存儲(chǔ)。在目前為止討論的兩種情況下,在資源空閑之前將不同的核心保持在等待狀態(tài)并不是一種有效的方法,并且在這些條件下或多或少會(huì)將性能降低到單核級(jí)別。
對(duì)于像數(shù)據(jù)總線這樣的通用數(shù)據(jù)路徑資源也是如此。如果內(nèi)部只有一個(gè)數(shù)據(jù)總線,則每個(gè)核心都需要訪問它,通常每個(gè)周期至少有一次,但有時(shí)更多。存在爭(zhēng)用時(shí)可以插入等待狀態(tài),但這對(duì)原因沒有幫助。
正如您所猜測(cè)的那樣,內(nèi)核的同步性和時(shí)序性是一個(gè)重要因素。如果每個(gè)內(nèi)核以其自己的頻率以自己的頻率運(yùn)行,則可以訪問共享總線。但是,如果使用公共時(shí)鐘在內(nèi)核之間交錯(cuò)微狀態(tài),則可以在沒有任何爭(zhēng)用的情況下最大限度地利用內(nèi)部資源。以Von Neumann架構(gòu)為例,我們可以讓四個(gè)核心處理器使用讀取,解碼,操作和執(zhí)行周期共享一個(gè)公共總線(圖2)。請(qǐng)注意,雖然第2階段和第3階段操作可以在每個(gè)處理器內(nèi)部,但使用總線的執(zhí)行周期(如內(nèi)存存儲(chǔ))仍然可能導(dǎo)致爭(zhēng)用。如果I/O路徑對(duì)處理器是唯一的,則可以在執(zhí)行周期期間執(zhí)行一些I/O操作。

圖2:當(dāng)多個(gè)微控制器及時(shí)交錯(cuò)時(shí),更容易實(shí)現(xiàn)對(duì)總線管理等公共資源的更好控制。當(dāng)發(fā)生內(nèi)存和I/O讀寫時(shí),仍然必須小心,因?yàn)樗鼈兛梢月暶骺偩€。具有分割代碼和數(shù)據(jù)總線的哈佛架構(gòu)可以解決這個(gè)問題。
要記住的另一個(gè)因素是部件中的每個(gè)核心處理器不必相同或相同。恩智浦半導(dǎo)體的32位非對(duì)稱雙核204 MHz PC4337JBD144E是該公司LPC43xx系列ARM?Cortex?M4和M0內(nèi)核的成員,采用單封裝。這些部件的ROM,RAM,外設(shè)組合,I/O和封裝尺寸各不相同,但所有部件都具有較小的M0內(nèi)核,可以接管內(nèi)務(wù)管理,初始化和數(shù)據(jù)管理工作,而M4內(nèi)核可以自由地執(zhí)行更多過程密集型功能,得益于其浮點(diǎn)硬件和DSP擴(kuò)展。
恩智浦部件使用多層矩陣和各個(gè)外設(shè)橋來(lái)解決處理器內(nèi)核和外設(shè)之間的仲裁問題(圖3)。 Master和Slave指定也確保優(yōu)先級(jí)。其思想是AHB矩陣將ARM Cortex M4總線和其他總線主控器連接到外設(shè),以便允許不同總線主控器同時(shí)訪問位于不同從端口上的外設(shè)。

圖3:為解決總線爭(zhēng)用問題,恩智浦使用AHB矩陣,允許多個(gè)內(nèi)核和外設(shè)在需要時(shí)訪問總線。
飛思卡爾的i.MX 6是一系列可擴(kuò)展的單核,雙核和四核32位ARM 9處理器。它們的內(nèi)核每個(gè)時(shí)鐘速度為1 GHz,與其他高端處理器一樣,這些器件具有硬件支持,如USB(和OTG),以太網(wǎng),MMC/SD卡,PCI,2D和3D圖形以及SATA等外設(shè)。只是幾個(gè)(圖4)。

圖4:飛思卡爾的方法是在添加核心時(shí)添加更復(fù)雜的外圍設(shè)備和接口。這允許使用內(nèi)核代碼進(jìn)行可擴(kuò)展開發(fā)以進(jìn)行基本固件驗(yàn)因此,在逐步添加更多核心和功能之前,可以建立穩(wěn)定的固件庫(kù)。
采用飛思卡爾的雙核MCIMX6D5EYM10AC采用624引腳FBGA封裝。它的0.9至1.5 V操作可將熱量和功耗降至最低,而224 I/O并非易事。雖然這個(gè)I/O的一部分通過外部總線接口專用于外部程序存儲(chǔ)器,但這些部件非常密集,晶體管數(shù)量非常高,因此保持低功耗至關(guān)重要。
應(yīng)該注意,這些核不是不對(duì)稱的。它們實(shí)際上完全相同。這意味著單核設(shè)計(jì)可以遷移到雙核或四核設(shè)計(jì),并且隨著性能的提高,代碼將兼容。這可能是一個(gè)關(guān)鍵的決定因素,特別是如果您正在設(shè)計(jì)筆記本電腦,智能手機(jī),筆記本電腦或其他需要同時(shí)支持許多高端外設(shè)的多功能設(shè)備。
多核MCU領(lǐng)域的另一個(gè)參與者是XMOS,它提供了一系列可擴(kuò)展的32位部分。 XS1系列包括單核,雙核,四核,十六進(jìn)制和八核,以及多達(dá)16核的器件,從48引腳TQFP封裝到512引腳LFBGA封裝(圖5)。這些部件還包含豐富的外圍設(shè)備和功能??紤]0.95至3.6 V 48引腳400 MIPS四核XS1-L4A-64-TQ48-C4。每個(gè)核心(稱為磁貼)可同時(shí)執(zhí)行實(shí)時(shí)任務(wù),并可執(zhí)行計(jì)算,高級(jí)DSP代碼,控制代碼或處理I/O的軟件。

圖5:借助XMOS的通道鏈接和響應(yīng)端口映射方法,最多可將16個(gè)內(nèi)核放在一個(gè)封裝中。當(dāng)擴(kuò)展發(fā)生時(shí),可以復(fù)制ROM,RAM和時(shí)序等關(guān)鍵功能。
在XMOS中,部件調(diào)度硬件執(zhí)行類似RTOS的功能,以確保低延遲并消除中斷,確保確定性操作。由于每個(gè)核心都是相同的,隨著計(jì)算和多任務(wù)處理需求的增長(zhǎng),您的設(shè)計(jì)功能也可以增長(zhǎng),而無(wú)需重新開始創(chuàng)建軟件。
總之,處理器和功能的巧妙劃分可以簡(jiǎn)化設(shè)計(jì),多核部件可以成為幫助工程師解決關(guān)鍵實(shí)時(shí)需求的關(guān)鍵因素。許多精心設(shè)計(jì)的零件和工具隨時(shí)可以提供幫助。有關(guān)本文中討論的部分的更多信息,請(qǐng)使用提供的鏈接訪問Digi-
-
微控制器
+關(guān)注
關(guān)注
48文章
8427瀏覽量
164892 -
處理器
+關(guān)注
關(guān)注
68文章
20282瀏覽量
253108 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7744瀏覽量
171858
發(fā)布評(píng)論請(qǐng)先 登錄
多核處理器設(shè)計(jì)九大要素
工業(yè)應(yīng)用理想選擇多核處理器
多核處理器的優(yōu)點(diǎn)
典型的支持多核處理器的RTOS功能解析
多核嵌入式處理器開發(fā)工具介紹
基于實(shí)時(shí)網(wǎng)絡(luò)如何提高多軸運(yùn)動(dòng)控制性能?
實(shí)時(shí)網(wǎng)絡(luò)怎么提高多軸運(yùn)動(dòng)控制性能?
一種對(duì)多核處理器架構(gòu)上程序時(shí)間測(cè)量的全新技術(shù)介紹
多核處理器架構(gòu)及調(diào)試
關(guān)于多核處理器的介紹和分析
多核處理器會(huì)取代FPGA嗎?
如何將ARM的 Cortex?-M 處理器用于多核微控制器設(shè)計(jì)
多核處理器實(shí)時(shí)控制性能的介紹
評(píng)論