基于事件驅(qū)動(dòng)的新型處理器的研究與應(yīng)用
摘要:針對(duì)現(xiàn)代電子設(shè)計(jì)低成本、高效率、高靈活性的特點(diǎn),研究了一種新型的處理器:事件驅(qū)動(dòng)多核心處理器。通過(guò)對(duì)這種處理器基本構(gòu)架的研究,以及采用新型處理器與采用傳統(tǒng)控制器設(shè)計(jì)差異的對(duì)比,分析出該處理器具有性能高、實(shí)時(shí)性強(qiáng)、易編程等優(yōu)點(diǎn)。最后,提出了一種新的設(shè)計(jì)方法:硬件設(shè)計(jì)軟件化,給眾多電子系統(tǒng)設(shè)計(jì)提供新的思路和參考。
關(guān)鍵詞:XMOS;事件驅(qū)動(dòng)多核心處理器;硬件線程;硬件設(shè)計(jì)軟件化
0 引言
英國(guó)的XMOS Semiconductor公司推出了一種全新的控制器件:事件驅(qū)動(dòng)多核心處理器(以后簡(jiǎn)稱XCore處理器)。憑借一種叫作軟件化芯片(Software Defined Silicon)的新技術(shù),XMOS提出了一種革命性的電子設(shè)計(jì)方法:硬件設(shè)計(jì)軟件化。通過(guò)軟件設(shè)計(jì),可以使用XCore處理器實(shí)現(xiàn)以前需要通過(guò)FPGA,ASIC實(shí)現(xiàn)的硬件性能。這種新的處理器集RISC CPU的效率、DSP的性能和FPGA的靈活性于一體。
1 XCore處理器的基本構(gòu)架
圖1為XCore處理器的基本框架圖。如圖所示,每個(gè)處理器(以XS1-G4為例)有4個(gè)內(nèi)核(XCore),XCore之間通過(guò)一種稱之為X-link的技術(shù)連接,可以實(shí)現(xiàn)XCore之間的數(shù)據(jù)通信。XCore內(nèi)部有豐富的硬件資源:8 KB的OTP ROM,64 KB的RAM,10個(gè)計(jì)算器,6個(gè)時(shí)鐘模塊,7個(gè)同步單元和4個(gè)硬件鎖。除此之外,XCore最特別的是具有8個(gè)硬件線程和32個(gè)通道端(Channel Ends)以及1個(gè)事件驅(qū)動(dòng)管理器。每個(gè)硬件線程具有獨(dú)立的專有寄存器組,同時(shí)可以訪問(wèn)所在核內(nèi)的共享硬件資源。
通道(Channel)是線程之間通信的主要方式,一個(gè)通道可以連接幾個(gè)通道端。這樣,使用各個(gè)通道端的硬件線程就可以相互通信了。通道可以在不同的Xcore之間建立,依托強(qiáng)大的X-link功能,甚至不同處理器之間的線程也可以通過(guò)通道進(jìn)行通信。
2 XCore處理器特點(diǎn)
2.1 硬件多線程技術(shù)
硬件多線程技術(shù)是XCore處理器能夠硬件設(shè)計(jì)軟件化的關(guān)鍵。有別于傳統(tǒng)的操作系統(tǒng)實(shí)現(xiàn)的多線程,硬件多線程是通過(guò)特有的硬件單元來(lái)調(diào)度。每個(gè)硬件線程的時(shí)間片精確到1個(gè)時(shí)鐘周期(對(duì)應(yīng)于處理器工作在400 MHz主頻的情況下,就是2.5 ns)。傳統(tǒng)的操作系統(tǒng)分配給線程的時(shí)間片都是在ms級(jí)。線程調(diào)度的實(shí)時(shí)性保證了多個(gè)硬件線程可以組成高性能的處理流水線。每個(gè)Xcore擁有8個(gè)硬件線程,如果這個(gè)8個(gè)線程全部運(yùn)行,在400 MHz的CPU主頻的情況下,理論上可以組成一條8級(jí)的主頻為50 MHz的流水線;如果處理器內(nèi)的4個(gè)XCore全部運(yùn)行,則可以組成4條這樣的并行流水線。這足以完成大部分中低性能的FPGA實(shí)現(xiàn)的功能。
2.2 多功能智能IO模塊
多功能智能IO模塊是XCore處理器的另一大特色,該模塊可以對(duì)IO數(shù)據(jù)進(jìn)行處理,然后再將數(shù)據(jù)緩存后送CPU內(nèi)核處理,這樣,可以減輕IO操作對(duì)CPU內(nèi)核的負(fù)擔(dān)。使得流水線設(shè)計(jì)瓶頸可以緩解。設(shè)計(jì)者可以適當(dāng)延長(zhǎng)處理流水線每一級(jí)的長(zhǎng)度,使得軟件設(shè)計(jì)更加靈活,功能更加強(qiáng)大。
多功能智能IO模塊具有以下幾個(gè)功能:端口寬度可編程;帶時(shí)鐘、片選的IO接口;可編程時(shí)序IO接口;序列化IO接口;可編程FIFO緩存接口;可編程條件IO接口。靈活運(yùn)用這些功能,可以輕易的實(shí)現(xiàn)MII,ULPI等高速總線接口。
2.3 事件驅(qū)動(dòng)運(yùn)算
相對(duì)于操作系統(tǒng)管理下的軟件線程,XCore處理器的硬件線程具有同樣的靈活性。每個(gè)硬件線程可以被阻塞,當(dāng)硬件線程被阻塞時(shí)處于睡眠狀態(tài),它所占用的時(shí)鐘周期可以釋放給其他的硬件線程。舉個(gè)例子,如果某個(gè)XCore以400MHz的工作頻率運(yùn)行8個(gè)線程,那么每個(gè)硬件線程的實(shí)際工作頻率是50 MHz。當(dāng)其中4個(gè)線程被阻塞時(shí),剩下的4個(gè)硬件線程的工作頻率就能夠提升到100MHz。當(dāng)線程被阻塞時(shí),需要等待指定的事件將它喚醒,這些事件可以由定時(shí)器、智能IO模塊和線程之間通信的通道產(chǎn)生。基于事件驅(qū)動(dòng)運(yùn)算的機(jī)制,可以極大地減少XCore處理器的功耗并顯著地提升XCore處理器的效能。
3 實(shí)例介紹
串口服務(wù)器是在工業(yè)控制領(lǐng)域經(jīng)常用到的一類設(shè)備,其作用是實(shí)現(xiàn)UART與以太網(wǎng)之間的協(xié)議轉(zhuǎn)換,下面給出了3個(gè)不同的設(shè)計(jì)方案:采用通用嵌入式CPU實(shí)現(xiàn)的設(shè)計(jì)方案;采用FPGA實(shí)現(xiàn)的設(shè)計(jì)方案;以及采用XCore處理器設(shè)計(jì)方案,如圖2所示。
[!--empirenews.page--]
這3個(gè)方案比較類似,基本上都是單核心處理芯片加外圍接口芯片的SOC解決方案。不同的是,第1個(gè)方案的處理核心是集成了以太網(wǎng)MAC和UART的通用處理器。第2個(gè)方案的處理核心是FPGA器件。第3個(gè)方案的處理核心是XCore處理器。
第1個(gè)方案的優(yōu)點(diǎn)是設(shè)計(jì)起來(lái)容易、功能靈活;在通用嵌入式CPU上運(yùn)行操作系統(tǒng),使用標(biāo)準(zhǔn)的TCP/IP協(xié)議和UART協(xié)議,能夠?qū)崿F(xiàn)各種復(fù)雜的控制功能。缺點(diǎn)也很明顯:CPU內(nèi)部集成的串口有限,一般只能實(shí)現(xiàn)不超過(guò)4個(gè)串口的串口服務(wù)器;實(shí)時(shí)性差、由于軟件處理能力有限,當(dāng)串口數(shù)據(jù)流量較大時(shí),CPU會(huì)來(lái)不及處理,只能將數(shù)據(jù)放入緩存,待CPU空閑時(shí)處理。這樣導(dǎo)致數(shù)據(jù)轉(zhuǎn)發(fā)的延遲增大。
第2個(gè)方案的優(yōu)點(diǎn)是擴(kuò)展能力強(qiáng)、實(shí)時(shí)性高;由于FPGA具有硬件可編程的特點(diǎn),理論上器件內(nèi)部可以實(shí)現(xiàn)任意個(gè)數(shù)目的串口(實(shí)際受所選FPGA器件容量大小的影響)。FPGA采用硬件流水線處理串口數(shù)據(jù)轉(zhuǎn)以太網(wǎng)數(shù)據(jù),因此,數(shù)據(jù)處理的速度很快,基本上不產(chǎn)生延遲,實(shí)時(shí)性好。這種方案的缺點(diǎn)是:設(shè)計(jì)難度比較大,需要獲得授權(quán)使用以太網(wǎng)MAC和UART的IP模塊,并且需要設(shè)計(jì)控制模塊來(lái)協(xié)調(diào)各個(gè)接口,然后進(jìn)行系統(tǒng)級(jí)的仿真和測(cè)試,整個(gè)設(shè)計(jì)開(kāi)發(fā)周期長(zhǎng)、設(shè)計(jì)難度大;靈活性差,功能不強(qiáng)。由于采用硬件實(shí)現(xiàn)的機(jī)制,F(xiàn)PGA只能實(shí)現(xiàn)簡(jiǎn)單的底層網(wǎng)絡(luò)報(bào)文,無(wú)法實(shí)現(xiàn)TCP/IP等高層次的網(wǎng)絡(luò)協(xié)議轉(zhuǎn)發(fā)。同樣,一些諸如流量控制、報(bào)文路由、IP管理之類的功能也無(wú)法實(shí)現(xiàn)。這樣、導(dǎo)致這個(gè)方案的可用性以及可維護(hù)性差。
第3個(gè)方案綜合了2個(gè)方案的優(yōu)點(diǎn)并彌補(bǔ)了它們的不足。首先,XCore處理器的IO管腳像FPGA一樣是可以編程設(shè)計(jì)的。設(shè)計(jì)者可以分配足夠多的管腳給UART。使用標(biāo)準(zhǔn)XCore處理器函數(shù)庫(kù),每個(gè)UART模塊需要1個(gè)硬件線程來(lái)實(shí)現(xiàn),每個(gè)以太網(wǎng)MAC模塊需要4個(gè)硬件線程來(lái)實(shí)現(xiàn)。這樣,使用4個(gè)核的Xcore處理器,可以實(shí)現(xiàn)具有16個(gè)串口的串口服務(wù)器。除實(shí)現(xiàn)UART和以太網(wǎng)MAC需要的20個(gè)硬件線程外,處理器內(nèi)還剩下12個(gè)硬件線程的資源,這些硬件線程可以用來(lái)運(yùn)行TCP/IP協(xié)議,還可以用來(lái)實(shí)現(xiàn)流量控制、報(bào)文路由、IP管理等諸多功能。由于XCore處理器具有實(shí)時(shí)多線程的特點(diǎn),能夠保證處理IO數(shù)據(jù)的硬件線程實(shí)時(shí)運(yùn)行,從而保證了數(shù)據(jù)轉(zhuǎn)發(fā)的實(shí)時(shí)性。同時(shí),XCore處理器設(shè)計(jì)屬于軟件編程的范疇,使用C語(yǔ)言就可以方便地實(shí)現(xiàn)各種控制管理功能,這使得開(kāi)發(fā)周期縮短,開(kāi)發(fā)難度降低。
4 結(jié)語(yǔ)
從上面的研究分析、實(shí)例介紹可以看出:相對(duì)于傳統(tǒng)的控制器件,XCore處理器具有優(yōu)異的性能和充分的靈活性,很適合用在一些對(duì)處理器功能要求多、實(shí)時(shí)性要求高的場(chǎng)合。同時(shí),XCore處理器采用C語(yǔ)言編程的特點(diǎn)可以使開(kāi)發(fā)難度以及開(kāi)發(fā)周期大大降低,再考慮到XCore處理器豐富的硬件資源,采用XCore處理器的硬件設(shè)計(jì)軟件化方案是一種能夠廣泛應(yīng)用的低成本、高效率解決方案。