繼承與創(chuàng)新:Innovasic Fido微控制器
上世紀(jì)最早出現(xiàn)的CISC (復(fù)雜指令集計算機(jī)) 計算機(jī)結(jié)構(gòu),現(xiàn)又悄然興起——Xilinx, Tensilica, Sun Microsystems和Power聯(lián)盟等組織帶頭復(fù)興 CISC 計算機(jī)結(jié)構(gòu)。畢竟CISC 指令至今仍存在優(yōu)于RISC之處。ISA(工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))雖不斷更替,但有些東西仍經(jīng)久不變。如Freescale的老式68K結(jié)構(gòu)至今仍在應(yīng)用。68K系列至今仍一直保有32位處理器市場銷售額最高的地位,直到幾年前被ARM所取代。68K系列的長壽有很多原因:容易編程,支撐軟件優(yōu)良,從性能、封裝、價格水平到外圍設(shè)備種類廣泛,適應(yīng)各類客戶的需要。以至于68K結(jié)構(gòu)一度成為嵌入式處理器的代名詞。Freescale 68K的產(chǎn)品系列的銷售額每年都高達(dá)數(shù)百萬美元。只要數(shù)以千計的忠誠于68K的開發(fā)人員尚未退休,它的市場份額暫時不會輕易失去。
Innovasic公司發(fā)現(xiàn)了CISC的潛在機(jī)遇,設(shè)計制造了一款與Freescale公司 68K系列相兼容的、新型32位Fido 1100微處理器芯片。Fido 1100并不只是一款克隆68K的產(chǎn)品,而是在68K結(jié)構(gòu)的基礎(chǔ)上,增加了創(chuàng)新的外設(shè)與硬件實時任務(wù)切換等新技術(shù)。
仿制高手
Fido 是Innovasic生產(chǎn)的第一款兼容于68K的芯片。其實Innovasic是克隆微處理器經(jīng)驗豐富的廠家。過去十年以來,Innovasic的工程師們曾為停產(chǎn)的多個8位和16位微控制器生產(chǎn)過完全兼容的替代產(chǎn)品。不僅軍方是Innovasic的大量客戶,在尋找市面上難以找到的產(chǎn)品時,嵌入式和業(yè)界的設(shè)計人員也會經(jīng)常想起Innovasic。Innovasic的仿制經(jīng)驗使其充滿自信地推出了自己的原始芯片F(xiàn)ido,這款芯片雖然沿用了68K的編程模式和指令集,但芯片關(guān)鍵的微結(jié)構(gòu)內(nèi)核、內(nèi)部總線、以及外設(shè)等的設(shè)計都是自主的創(chuàng)新。例如,F(xiàn)ido使用的鐘頻提高到66MHz,以取勝于Freescale的 680x0和ColdFire。
真正的實時
Fido的設(shè)計讓人感覺有些“自相矛盾”。如它所兼容的68K指令集是卡特時代的產(chǎn)品,但Fido的微結(jié)構(gòu)內(nèi)核卻驚人地現(xiàn)代化。Fido芯片的外設(shè)類別看似極為平常的I/O,而其實現(xiàn)卻絕非一般。粗覽數(shù)據(jù)表時,F(xiàn)ido顯得十分普通,但實際上卻有創(chuàng)新的技術(shù)內(nèi)涵。Fido通過硬件取代一貫沿用的常規(guī)軟件任務(wù)切換,提高性能的同時也簡化了新手的使用。片上有五組32位程序員可見的地址、數(shù)據(jù)和控制/狀態(tài)寄存器組??梢栽趩我粫r鐘周期內(nèi),從某一寄存器組切換到其他任一組。由這套硬件代替?zhèn)鹘y(tǒng)的軟件任務(wù)切換功能,或代替?zhèn)鹘y(tǒng)實時操作系統(tǒng)的初等操作內(nèi)核。嵌入式應(yīng)用中,有了這套硬件,就足夠應(yīng)付五個任務(wù)以內(nèi)的一切操作管理了。五個任務(wù)以下的操作管理也是一般應(yīng)用都會用得著的。Innovasic 建議,任務(wù)多于五個時,僅需在五組中的一組上運行傳統(tǒng)的軟件任務(wù)管理程序或?qū)崟r操作系統(tǒng)即可。
圖1 Fido 1100方塊圖
Fido維護(hù)這五個任務(wù),采用物理上雙份的程序員可見寄存器組,而且可以指定某一份在某個周期上使能。五個寄存器組的用戶及監(jiān)控的特權(quán)級別與68K編程器的相同,當(dāng)中斷或異常發(fā)生時,便無需處理器再行干預(yù)切換事物了。Fido的片上中斷控制器中含有中斷屏蔽位、中斷優(yōu)先級位、和為硬件任務(wù)指定中斷源域。從而,在該中斷開放的情況下,就能夠觸發(fā)硬件任務(wù)的切換,或是由當(dāng)前任務(wù),如同任一68K處理器一樣,來處理中斷。
任務(wù)切換還有其他一些因素。程序員可以給五個寄存器組各分配一個優(yōu)先級,使高優(yōu)先級任務(wù)能中斷當(dāng)前任務(wù)。另外,當(dāng)前任務(wù)也能把自己置于休眠態(tài),將控制讓予其他任務(wù)。從而,可以使用一個定時器即可簡單地實現(xiàn)任務(wù)輪換,或優(yōu)先級任務(wù)切換。各種任務(wù)排列組合后的切換算法都是可能的,Innovasic認(rèn)為這是留給程序員的最好練習(xí)。
緊拽住軟件價值鏈
Fido 將Freescale CPU32+的指令集的字節(jié)數(shù)加倍,其執(zhí)行時間與Freescale指令相比,處處有一個時鐘周期的差異。這一點并不奇怪,F(xiàn)reescale的 CPU32+,芯片不同,執(zhí)行時間也不盡相同。作為Fido的客戶,要充分以利用CPU32+軟件開發(fā)工具在這方面已有的功能。就是說,絕大多數(shù)68K的開發(fā)工具Fido都可以利用。如Fido這樣的新開發(fā)的處理器,尚未建立自己軟件庫之前,都可以從Freescale原有開發(fā)工具中獲取幫助。
Fido在確定性輸出方面,有三大特點:高速緩存具有確定性;I/O極具靈活性;和任務(wù)切換僅需單周期。
Fido所用的高速緩存并非是常用的那種高速緩存,實際是32KB的。程序員可以拆分和從新映射到處理器的幾乎全部代碼空間。這樣的安排,比通常中間暫存的DRAM更加靈活。它已經(jīng)不是普通意義下的緩存,倒是更像可寫又可控的存儲器。另外最重要地是,它克服了通常高速緩存存在的不確定性。不確定性是實時系統(tǒng)中最致命的缺陷。Fido 1100除去32KB的確定性緩存,還附加24KB SRAM的一般暫存存儲器。
Fido的I/O,像許多微控制器片上集成的I/O控制器一樣,支持以太網(wǎng)、UART、I2C、CAN、SPI、和其他一些常用接口。實際上,F(xiàn)ido具有四個通用的可編程I/O控制器(UIC),由它們模擬出上述的各種外設(shè)接口。每個UIC(見圖1)可以表現(xiàn)為高速串行口、16位并行口等等,直到10~100Mb/s以太網(wǎng)的MAC。Fido芯片上的每個UIC,都可以通過改變固件,而實現(xiàn)不同的配置或各種各樣的產(chǎn)品。
Fido的可編程I/O接口,是通用的但非唯一。 Fido的I/O設(shè)計與Ubicom的 IP3000系列芯片的很相似。 Cradle、 Cavium Networks、 Triscend (已被Xilinx收購)、 Morpho、 Stretch、和 Freescale等公司所生產(chǎn)的芯片,片內(nèi)都具有可編程的I/O引擎,用以模擬各種標(biāo)準(zhǔn)的外圍接口。然而,F(xiàn)ido的方案中,UIC引擎的編程不是由用戶完成的。這一點與Freescale公司 PowerQUICC處理器中的通信引擎類似。Innovasic將UIC引擎的結(jié)構(gòu)及其指令的版權(quán),死死地捏在自己手中。目前,Innovasic免費向客戶提供外圍設(shè)備接口的管理固件,它還宣布不久的將來,會有軟件外設(shè)問世,眼下的客戶暫時要受點委屈。
調(diào)試問題
應(yīng)該在編程時就該把調(diào)試和排錯考慮在內(nèi)。調(diào)研表明,嵌入式的編程人員花費在調(diào)試上的時間,在項目的策劃、工程和編程的總時間里,約占40%以上。調(diào)試已經(jīng)成為開發(fā)者最頭疼的一項工作。綜上所述,需要一個能提供現(xiàn)成的優(yōu)秀調(diào)試工具的市場。很早以前,已有少數(shù)處理器生產(chǎn)商將調(diào)試電路直接集成在芯片之中。如Freescale 的后臺調(diào)試模塊(BDM,Background Debug Module)。BDM很受嵌入式編程人員的歡迎。Innovasic沒有復(fù)制Freescale的 BDM,而是研制了自己的BDM替代品,起名為軟件評價與集成調(diào)試環(huán)境,英文名的字頭縮寫是SPIDER (Software Profiling and Integrated Debug EnviRonment)。SPIDER包括硬件斷點,跟蹤緩沖器,上下文識別寄存器等功能部件。
這些硬件資源與開發(fā)用宿主機(jī)上的標(biāo)準(zhǔn)GNU/Eclipse操作系統(tǒng)、軟件工具等通過芯片上的串口(通常是以太口)或是片上的JTAG口相連接。硬件斷點與近代異常中斷標(biāo)準(zhǔn)中的典型做法一樣。它們應(yīng)有上下文識別能力,應(yīng)可設(shè)置成僅在指定上下文激活時才去觸發(fā)。程序員在調(diào)試五個硬件上下文寄存器中的任一個時,其他四個上下文寄存器應(yīng)該照舊運行。
Fido片上的24KB SRAM、外部RAM、或是連接于以太口或JTAG口上的其他外存,都可以用作跟蹤緩沖器。因而可以說,F(xiàn)ido具有無限的事件記錄能力,視外存的容量而定。如果程序員打算跟蹤的事件量過大,JTAG或以太口的帶寬可能會限制存儲器容量的發(fā)揮,但是無論如何,它畢竟是其他芯片所沒有的很有用的選項。只要不是對以太網(wǎng)接口本身進(jìn)行調(diào)試,可以通過JTAG使用以太網(wǎng),這樣做能夠相當(dāng)大地改善帶寬。要是工作于66MHz鐘頻,使用Fido的以太口會實現(xiàn)從容不迫的跟蹤記錄,而不致產(chǎn)生瓶頸。
Fido有一套包括:SDRAM控制器、雙通道DMA控制器、片選信號系統(tǒng)、和各種門類的計數(shù)/定時器等穿插在一起的電路,用它可以組成各種硬件外圍設(shè)備。內(nèi)部數(shù)據(jù)通道位寬雖是32位,而芯片的外部數(shù)據(jù)總線則為16位,另有16位的SDRAM接口,其中有13位為地址線,接口運行于內(nèi)核頻率的66MHz。像各有自我側(cè)重的CISC處理器一樣,F(xiàn)ido能夠完成向任意外部地址傳輸非整體總線寬度的數(shù)據(jù)。
能買得起嗎?
Fido是哪一類的處理器,在哪些方面有競爭力呢?Fido 1100是具有大量數(shù)據(jù)輸出門,16位封裝,低價位(每千片單價10美金),與時俱進(jìn)的32位微處理器。Fido 1100,比一般簡單的微控制器多硬件的乘法器和筒形移位寄存器。它是16位難于滿足性能要求時的潛在升級產(chǎn)品。Fido 1100雖說是新芯片,而實際上與Freescale的68K同宗。所以,68K的開發(fā)系統(tǒng)、68K的經(jīng)驗,和原有的支撐軟件都可以照樣使用。
Fido的部分魅力來自68K的血統(tǒng),所以原有基于68K的各種芯片,自然而然地就成為相互競爭的對手。
表1中的ColdFire 5206與Fido價格一樣,而運行速度較Fido慢了一倍,片上的RAM及外設(shè)也都較少。至于ColdFire v2,有Fido缺乏的硬件乘法累加器(MAC)和整數(shù)除法指令,可惜對許多用戶也還是不足夠。Freescale的其他基于CPU32的控制器,如68360、68328等,與Fido的性能相當(dāng),可惜的是,它們的外設(shè)都是硬線邏輯的。純種的680x0 處理器,如030、040,它們的工作頻率較低,都只有40MHz,比Fido的運行速度慢,而價格又高出很多。但是,它們比Fido多了浮點運算單元(FPU),卻又缺乏外設(shè)。正確地說,它們的差異,原自于服務(wù)目標(biāo)的不同。ColdFire有更多更好的性能,運行速度也很高。其中的5270系列與Fido有同樣的速度,同樣的外設(shè)、總線、存儲控制器,和同樣的價格。Freescale的芯片都使用的是慣用高速緩存,故而都存在令人煩心的時鐘周期不確定的缺陷。
注意:Fido的可變成通用I/O控制器一次只能模擬一種I/O接口。例如,一個UIC編程為以太網(wǎng)的MAC時,就不能再同時編程為UART。所以有些場合,F(xiàn)ido的I/O能力比專用的I/O控制器受到更多的限制。表中的N/A位數(shù)據(jù)未能提供。
結(jié)語
總而言之,Innovasic的Fido 1100為新型的32位微控制器開創(chuàng)了一個新的起點。多少年來,68K芯片一直缺乏第二來源。在ARM、 MIPS 、和 Power Architecture的芯片都有多個廠家供貨的時代,能夠看到一向保守的68K也有了第二來源,令人十分欣慰。
在工業(yè)應(yīng)用領(lǐng)域中,芯片執(zhí)行時間的可預(yù)測性是頭等重要的大事;軟件的執(zhí)行時的時間擺動會引起機(jī)械問題或復(fù)雜的調(diào)整問題。有少數(shù)的重要項目的開發(fā)者的全部的工作就在于計算周期數(shù)。在那里,高速緩存被禁用,就連DRAM也需經(jīng)過仔細(xì)地處理,因為其刷新周期有時會意想不到地中斷總線的正?;顒?。這樣的市場,正是Innovasic展示自己經(jīng)驗,F(xiàn)ido顯示克服周期搖擺的良好時機(jī)。
對于主流的開發(fā)者,Innovasic應(yīng)該可以頂替Freescale的ColdFire系列產(chǎn)品。Fido使用軟件來定義各種外設(shè)的特色,對于那些混合型終端產(chǎn)品的開發(fā)者具有最大的誘惑力。他們期望能夠輕松地配置出混合的外圍設(shè)備,伴隨著自然而然地同時也就得到了期望得到的終端產(chǎn)品?;ㄙM同樣10美元的代價,用下載軟件的方法就可以獲得各種所需的I/O的組合,再加上Fido獨具的68K血統(tǒng)的優(yōu)點,對于既求實用又具懷舊情調(diào)的開發(fā)者,F(xiàn)ido將是最佳的選擇。(梁合慶編譯)
評論