基于事件驅動(dòng)的新型處理器的研究與應用
摘要:針對現代電子設計低成本、高效率、高靈活性的特點(diǎn),研究了一種新型的處理器:事件驅動(dòng)多核心處理器。通過(guò)對這種處理器基本構架的研究,以及采用新型處理器與采用傳統控制器設計差異的對比,分析出該處理器具有性能高、實(shí)時(shí)性強、易編程等優(yōu)點(diǎn)。最后,提出了一種新的設計方法:硬件設計軟件化,給眾多電子系統設計提供新的思路和參考。
本文引用地址:http://dyxdggzs.com/article/149028.htm關(guān)鍵詞:XMOS;事件驅動(dòng)多核心處理器;硬件線(xiàn)程;硬件設計軟件化
0 引言
英國的XMOS Semiconductor公司推出了一種全新的控制器件:事件驅動(dòng)多核心處理器(以后簡(jiǎn)稱(chēng)XCore處理器)。憑借一種叫作軟件化芯片(Software Defined Silicon)的新技術(shù),XMOS提出了一種革命性的電子設計方法:硬件設計軟件化。通過(guò)軟件設計,可以使用XCore處理器實(shí)現以前需要通過(guò)FPGA,ASIC實(shí)現的硬件性能。這種新的處理器集RISC CPU的效率、DSP的性能和FPGA的靈活性于一體。
1 XCore處理器的基本構架
圖1為XCore處理器的基本框架圖。如圖所示,每個(gè)處理器(以XS1-G4為例)有4個(gè)內核(XCore),XCore之間通過(guò)一種稱(chēng)之為X-link的技術(shù)連接,可以實(shí)現XCore之間的數據通信。XCore內部有豐富的硬件資源:8 KB的OTP ROM,64 KB的RAM,10個(gè)計算器,6個(gè)時(shí)鐘模塊,7個(gè)同步單元和4個(gè)硬件鎖。除此之外,XCore最特別的是具有8個(gè)硬件線(xiàn)程和32個(gè)通道端(Channel Ends)以及1個(gè)事件驅動(dòng)管理器。每個(gè)硬件線(xiàn)程具有獨立的專(zhuān)有寄存器組,同時(shí)可以訪(fǎng)問(wèn)所在核內的共享硬件資源。
通道(Channel)是線(xiàn)程之間通信的主要方式,一個(gè)通道可以連接幾個(gè)通道端。這樣,使用各個(gè)通道端的硬件線(xiàn)程就可以相互通信了。通道可以在不同的Xcore之間建立,依托強大的X-link功能,甚至不同處理器之間的線(xiàn)程也可以通過(guò)通道進(jìn)行通信。
2 XCore處理器特點(diǎn)
2.1 硬件多線(xiàn)程技術(shù)
硬件多線(xiàn)程技術(shù)是XCore處理器能夠硬件設計軟件化的關(guān)鍵。有別于傳統的操作系統實(shí)現的多線(xiàn)程,硬件多線(xiàn)程是通過(guò)特有的硬件單元來(lái)調度。每個(gè)硬件線(xiàn)程的時(shí)間片精確到1個(gè)時(shí)鐘周期(對應于處理器工作在400 MHz主頻的情況下,就是2.5 ns)。傳統的操作系統分配給線(xiàn)程的時(shí)間片都是在ms級。線(xiàn)程調度的實(shí)時(shí)性保證了多個(gè)硬件線(xiàn)程可以組成高性能的處理流水線(xiàn)。每個(gè)Xcore擁有8個(gè)硬件線(xiàn)程,如果這個(gè)8個(gè)線(xiàn)程全部運行,在400 MHz的CPU主頻的情況下,理論上可以組成一條8級的主頻為50 MHz的流水線(xiàn);如果處理器內的4個(gè)XCore全部運行,則可以組成4條這樣的并行流水線(xiàn)。這足以完成大部分中低性能的FPGA實(shí)現的功能。
2.2 多功能智能IO模塊
多功能智能IO模塊是XCore處理器的另一大特色,該模塊可以對IO數據進(jìn)行處理,然后再將數據緩存后送CPU內核處理,這樣,可以減輕IO操作對CPU內核的負擔。使得流水線(xiàn)設計瓶頸可以緩解。設計者可以適當延長(cháng)處理流水線(xiàn)每一級的長(cháng)度,使得軟件設計更加靈活,功能更加強大。
多功能智能IO模塊具有以下幾個(gè)功能:端口寬度可編程;帶時(shí)鐘、片選的IO接口;可編程時(shí)序IO接口;序列化IO接口;可編程FIFO緩存接口;可編程條件IO接口。靈活運用這些功能,可以輕易的實(shí)現MII,ULPI等高速總線(xiàn)接口。
2.3 事件驅動(dòng)運算
相對于操作系統管理下的軟件線(xiàn)程,XCore處理器的硬件線(xiàn)程具有同樣的靈活性。每個(gè)硬件線(xiàn)程可以被阻塞,當硬件線(xiàn)程被阻塞時(shí)處于睡眠狀態(tài),它所占用的時(shí)鐘周期可以釋放給其他的硬件線(xiàn)程。舉個(gè)例子,如果某個(gè)XCore以400MHz的工作頻率運行8個(gè)線(xiàn)程,那么每個(gè)硬件線(xiàn)程的實(shí)際工作頻率是50 MHz。當其中4個(gè)線(xiàn)程被阻塞時(shí),剩下的4個(gè)硬件線(xiàn)程的工作頻率就能夠提升到100MHz。當線(xiàn)程被阻塞時(shí),需要等待指定的事件將它喚醒,這些事件可以由定時(shí)器、智能IO模塊和線(xiàn)程之間通信的通道產(chǎn)生。基于事件驅動(dòng)運算的機制,可以極大地減少XCore處理器的功耗并顯著(zhù)地提升XCore處理器的效能。
3 實(shí)例介紹
串口服務(wù)器是在工業(yè)控制領(lǐng)域經(jīng)常用到的一類(lèi)設備,其作用是實(shí)現UART與以太網(wǎng)之間的協(xié)議轉換,下面給出了3個(gè)不同的設計方案:采用通用嵌入式CPU實(shí)現的設計方案;采用FPGA實(shí)現的設計方案;以及采用XCore處理器設計方案,如圖2所示。
評論