在剛剛過去的數(shù)年內(nèi),我們見證了多處理系統(tǒng)日漸成為主流,事實(shí)上大多數(shù)現(xiàn)代個(gè)人計(jì)算的CPU均采用了對(duì)稱多處理系統(tǒng)(SMP),其中,相同處理器的多個(gè)實(shí)現(xiàn)例程分擔(dān)運(yùn)行在PC上的應(yīng)用程序負(fù)荷。SMP目前已相當(dāng)常見,但在嵌入式計(jì)算中,向多處理的轉(zhuǎn)移趨勢(shì)并不常見。然而,新的嵌入式設(shè)計(jì)技術(shù)為工程師提供了相當(dāng)?shù)淖杂啥龋軌蛟跀?shù)字子系統(tǒng)上智能化地分配處理功能。在本文中,研究了一個(gè)使用Cypress半導(dǎo)體公司PSoC 3和PSoC 5架構(gòu)的分布式處理技術(shù)示例,該架構(gòu)由一個(gè)主CPU(在本例中為8051或ARM Cortex M3)、一個(gè)DMA引擎、以及通用數(shù)字模塊(UDB)陣列構(gòu)成。UDB可高效用作微處理器陣列。通過在這類子系統(tǒng)上分配處理功能,減少計(jì)算復(fù)雜程度和處理負(fù)荷,工程師能夠提升整個(gè)系統(tǒng)的效率。
將處理功能分解到多個(gè)功能塊上具有很多優(yōu)點(diǎn),最大的優(yōu)點(diǎn)是降低了實(shí)際功耗。通過降低CPU在處理MIPS方面的負(fù)荷,只計(jì)算簡(jiǎn)單的函數(shù),如服務(wù)中斷,能夠以較低的頻率運(yùn)行應(yīng)用程序,這是因?yàn)椋藨?yīng)用程序的所有函數(shù)外,CPU無需在不太復(fù)雜的函數(shù)上耗費(fèi)指令周期。這樣,就能從兩個(gè)方面降低整個(gè)應(yīng)用的功耗。第一個(gè)優(yōu)點(diǎn)顯而易見,降低CPU時(shí)鐘,隨著時(shí)鐘速度的降低,實(shí)際功率呈線性下降。第二個(gè)優(yōu)點(diǎn)有些容易被忽視,但同樣重要,CPU具有的邏輯門約是UDB的10倍以上,通過將處理功能從主CPU卸載到微處理器上,可釋放大量用于完成處理功能的邏輯門,從而進(jìn)一步顯著改善實(shí)際功耗。
除了顯著降低應(yīng)用程序的實(shí)際功耗外,分布式處理還具有另一項(xiàng)優(yōu)點(diǎn),由于CPU從更平凡的處理負(fù)擔(dān)中解脫出來,能夠?qū)⑵銶IPS更多地用在可更好發(fā)揮CPU特性的功能上,用于具有更高計(jì)算強(qiáng)度的函數(shù)上,如乘除指令。
為了理解將處理功能分解在架構(gòu)上的方式,我們將分析常見的嵌入式應(yīng)用,如無刷直流電機(jī)控制。首先我們深入實(shí)質(zhì),了解PSoC 3和PSoC 5數(shù)字子系統(tǒng),以便理解其能力。
PSoC 3和PSoC 5器件公用平臺(tái)架構(gòu),這意味著在兩個(gè)系列中,基本硬件是相同的。PSoC3和5平臺(tái)架構(gòu)由四個(gè)主要功能塊構(gòu)成,它們是:
CPU子系統(tǒng):首先是CPU子系統(tǒng),它包含主CPU(8051或Cortex M3)以及所有支撐IP,包括中斷控制器,調(diào)試硬件,以及DMA控制器。其他系統(tǒng)功能也包含在CPU子系統(tǒng)中,如計(jì)時(shí),電源管理,以及系統(tǒng)存儲(chǔ)器。通過CPU與DMA引擎的結(jié)合,可為我們提供實(shí)現(xiàn)分布式處理功能所需的兩個(gè)關(guān)鍵部件。
數(shù)字子系統(tǒng):數(shù)字子系統(tǒng)是PSoC 3和PSoC 5系列架構(gòu)的另一重要部分,使用它,能夠?qū)崿F(xiàn)分布式處理系統(tǒng)。PSoC 3和PSoC 5中的數(shù)字子系統(tǒng)主要由可靈活編程的通用數(shù)字模塊(UDB)陣列構(gòu)成。正如從圖X中所見到的,UDB硬件包含數(shù)據(jù)路徑元素,它本質(zhì)上是8位微處理器,能夠執(zhí)行標(biāo)準(zhǔn)的處理功能,如移位、加和比較。數(shù)據(jù)路徑元素(圖XX)還與PLD單元相結(jié)合,可用于實(shí)現(xiàn)定制的邏輯功能,甚至能夠查詢表以找出可用作參考的數(shù)據(jù)路徑元素。這些UDB可用于實(shí)現(xiàn)很多外圍標(biāo)準(zhǔn)功能,如PWM、定時(shí)器和SPI,它們也能用于實(shí)現(xiàn)定制的外圍功能。正因?yàn)檫@種靈活性,PSoC能夠?qū)崿F(xiàn)分布式處理功能。
圖1
UDB陣列可支持高達(dá)24個(gè)UDB,支持靈活的布線矩陣,用戶能夠?qū)⒍鄠(gè)UDB連接在一起,以實(shí)現(xiàn)更大和更復(fù)雜的處理功能。
圖2
模擬子系統(tǒng):PSoC 3和PSoC 5系列還具有高性能和可編程模擬子系統(tǒng),它包含創(chuàng)建完整模擬信號(hào)鏈所需的所有部件,包括高達(dá)20位的模擬-數(shù)字轉(zhuǎn)換,用于信號(hào)調(diào)節(jié)的數(shù)字過濾器,以及數(shù)字-模擬轉(zhuǎn)換。在本次關(guān)于分布式處理的討論場(chǎng)景下,模擬子系統(tǒng)能夠在將模擬輸入發(fā)送至數(shù)字子系統(tǒng)或CPU進(jìn)行進(jìn)一步數(shù)據(jù)處理前,對(duì)模擬輸入進(jìn)行處理。
可編程布線和互聯(lián)子系統(tǒng):它位于框圖的最右側(cè),可編程布線和互聯(lián)子系統(tǒng)包含靈活的布線矩陣,布線矩陣與I/O以及數(shù)字、模擬和CPU子系統(tǒng)相連。該功能塊具備相應(yīng)的能力,使用它,能夠定義將芯片上的信號(hào)路由至何處,并能創(chuàng)建多路子系統(tǒng)的處理系統(tǒng)。
分布式處理的示例
至此,我們已了解了用來創(chuàng)建分布式處理子系統(tǒng)的可用工具,現(xiàn)在我們將考察如何使用分布式處理來提升系統(tǒng)效率。在這里,我們將考察一個(gè)分布式處理應(yīng)用的真實(shí)示例。Sensored無刷直流(BLDC)電機(jī)控制即是能夠展示這類分布式處理優(yōu)點(diǎn)的常見的嵌入式控制功能
控制帶傳感器的BLDC的傳統(tǒng)方法是,電機(jī)轉(zhuǎn)動(dòng)并導(dǎo)致三個(gè)霍耳效應(yīng)傳感器的邏輯電平改變狀態(tài),在典型的帶傳感器的 BLDC MCU控制系統(tǒng)中,當(dāng)狀態(tài)發(fā)生變化時(shí),處理器接收IO中斷信號(hào)。CPU隨后將調(diào)整連接至PWM輸出和驅(qū)動(dòng)的電機(jī)線圈。這會(huì)在CPU上造成較重的中斷負(fù)擔(dān),降低服務(wù)于中斷功能的CPU MIPS,而不是執(zhí)行應(yīng)用程序需要更多關(guān)注的其他處理功能。此外,電機(jī)運(yùn)行越快,CPU中斷就越頻繁。不僅如此,為應(yīng)用增加額外電機(jī)還會(huì)使問題進(jìn)一步復(fù)雜,這是因?yàn)椋瑹o法可靠地對(duì)兩臺(tái)(或多臺(tái))電機(jī)進(jìn)行同步以確;魻杺鞲衅鞑粫(huì)同時(shí)觸發(fā),獨(dú)立的中斷具有相同的優(yōu)先級(jí)。
必定有其他方式,是嗎?的確如此。PSoC 3和PSoC 5系列的架構(gòu)給出了在微處理器陣列上執(zhí)行分布式處理的良好示例,可將這類中斷密集型操作卸載。通過在UDB的PLD單元中簡(jiǎn)單地實(shí)施硬件查找表,就不必再中斷CPU。取而代之的是,將中斷發(fā)送至CPU中斷控制器,霍爾效應(yīng)傳感器輸入直接送至硬件查找表,隨后確定將用于接收PWM信號(hào)的輸出。在該實(shí)施方案中,僅當(dāng)電機(jī)速度變化時(shí)CPU才會(huì)中斷。
這只不過是使用分布式處理降低主CPU負(fù)擔(dān)并提升系統(tǒng)效率的一個(gè)例子,還有很多實(shí)施分布式處理的示例,包括中斷密集型應(yīng)用,其中,CPU需參考數(shù)據(jù)結(jié)構(gòu)并作出決策。通過在UDB架構(gòu)中實(shí)施查找表、并使用UDB數(shù)據(jù)路徑元素對(duì)數(shù)據(jù)進(jìn)行比較,CPU將不再需要處理中斷事宜。
分布式處理應(yīng)用的另一示例是,將DMA用于數(shù)據(jù)傳輸密集型應(yīng)用,如I2S對(duì)USB(記錄)、或USB對(duì)I2S(放出)應(yīng)用。通過在UDB架構(gòu)中實(shí)施I2S塊,使用DMA在處理過程中、在兩個(gè)功能塊和SRAM塊之間傳輸數(shù)據(jù),只需很少的CPU周期來控制數(shù)據(jù)流。以這種方式使用DMA,在基于脈沖密集型方案的通信協(xié)議應(yīng)用中,能帶來極大的好處,如USB以及具有可靠數(shù)據(jù)速率的應(yīng)用(如I2S)。
通過提供更高效的處理器和功耗更低的處理技術(shù),CPU廠家和MCU供應(yīng)商致力于不斷降低功耗并提升系統(tǒng)效率,作為系統(tǒng)設(shè)計(jì)者,我們也應(yīng)尋找機(jī)會(huì),設(shè)計(jì)出具有更低功耗和更高效率的嵌入式系統(tǒng)。隨著新PSoC 3和PSoC 5平臺(tái)的發(fā)布,工程師的系統(tǒng)設(shè)計(jì)工具庫(kù)中現(xiàn)在有了另一工具。將嵌入式應(yīng)用視為處理功能的組合,分解處理功能,并在處理子系統(tǒng)陣列上分配這些處理功能,工程師們現(xiàn)在能夠優(yōu)化其嵌入式系統(tǒng)的效率,并降低系統(tǒng)功耗。
作者:Loren Hobbs PSoC產(chǎn)品經(jīng)理 Cypress半導(dǎo)體公司