<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 繼承與創(chuàng )新:Innovasic Fido微控制器

繼承與創(chuàng )新:Innovasic Fido微控制器

——
作者:Jim Turley 時(shí)間:2007-04-25 來(lái)源:電子產(chǎn)品世界 收藏

上世紀最早出現的CISC (復雜指令集計算機) 計算機結構,現又悄然興起——Xilinx, Tensilica, Sun Microsystems和Power聯(lián)盟等組織帶頭復興 CISC 計算機結構。畢竟CISC 指令至今仍存在優(yōu)于RISC之處。ISA(工業(yè)標準結構)雖不斷更替,但有些東西仍經(jīng)久不變。如Freescale的老式68K結構至今仍在應用。68K系列至今仍一直保有32位處理器市場(chǎng)銷(xiāo)售額最高的地位,直到幾年前被ARM所取代。68K系列的長(cháng)壽有很多原因:容易編程,支撐軟件優(yōu)良,從性能、封裝、價(jià)格水平到外圍設備種類(lèi)廣泛,適應各類(lèi)客戶(hù)的需要。以至于68K結構一度成為嵌入式處理器的代名詞。Freescale 68K的產(chǎn)品系列的銷(xiāo)售額每年都高達數百萬(wàn)美元。只要數以千計的忠誠于68K的開(kāi)發(fā)人員尚未退休,它的市場(chǎng)份額暫時(shí)不會(huì )輕易失去。

Innovasic公司發(fā)現了CISC的潛在機遇,設計制造了一款與Freescale公司 68K系列相兼容的、新型32位Fido 1100微處理器芯片。Fido 1100并不只是一款克隆68K的產(chǎn)品,而是在68K結構的基礎上,增加了創(chuàng )新的外設與硬件實(shí)時(shí)任務(wù)切換等新技術(shù)。

仿制高手

Fido 是Innovasic生產(chǎn)的第一款兼容于68K的芯片。其實(shí)Innovasic是克隆微處理器經(jīng)驗豐富的廠(chǎng)家。過(guò)去十年以來(lái),Innovasic的工程師們曾為停產(chǎn)的多個(gè)8位和16位生產(chǎn)過(guò)完全兼容的替代產(chǎn)品。不僅軍方是Innovasic的大量客戶(hù),在尋找市面上難以找到的產(chǎn)品時(shí),嵌入式和業(yè)界的設計人員也會(huì )經(jīng)常想起Innovasic。Innovasic的仿制經(jīng)驗使其充滿(mǎn)自信地推出了自己的原始芯片Fido,這款芯片雖然沿用了68K的編程模式和指令集,但芯片關(guān)鍵的微結構內核、內部總線(xiàn)、以及外設等的設計都是自主的創(chuàng )新。例如,Fido使用的鐘頻提高到66MHz,以取勝于Freescale的 680x0和ColdFire。
  
真正的實(shí)時(shí)

Fido的設計讓人感覺(jué)有些“自相矛盾”。如它所兼容的68K指令集是卡特時(shí)代的產(chǎn)品,但Fido的微結構內核卻驚人地現代化。Fido芯片的外設類(lèi)別看似極為平常的I/O,而其實(shí)現卻絕非一般。粗覽數據表時(shí),Fido顯得十分普通,但實(shí)際上卻有創(chuàng )新的技術(shù)內涵。Fido通過(guò)硬件取代一貫沿用的常規軟件任務(wù)切換,提高性能的同時(shí)也簡(jiǎn)化了新手的使用。片上有五組32位程序員可見(jiàn)的地址、數據和控制/狀態(tài)寄存器組??梢栽趩我粫r(shí)鐘周期內,從某一寄存器組切換到其他任一組。由這套硬件代替傳統的軟件任務(wù)切換功能,或代替傳統實(shí)時(shí)操作系統的初等操作內核。嵌入式應用中,有了這套硬件,就足夠應付五個(gè)任務(wù)以?xún)鹊囊磺胁僮鞴芾砹?。五個(gè)任務(wù)以下的操作管理也是一般應用都會(huì )用得著(zhù)的。Innovasic 建議,任務(wù)多于五個(gè)時(shí),僅需在五組中的一組上運行傳統的軟件任務(wù)管理程序或實(shí)時(shí)操作系統即可。

圖1 Fido 1100方塊圖

Fido維護這五個(gè)任務(wù),采用物理上雙份的程序員可見(jiàn)寄存器組,而且可以指定某一份在某個(gè)周期上使能。五個(gè)寄存器組的用戶(hù)及監控的特權級別與68K編程器的相同,當中斷或異常發(fā)生時(shí),便無(wú)需處理器再行干預切換事物了。Fido的片上中斷控制器中含有中斷屏蔽位、中斷優(yōu)先級位、和為硬件任務(wù)指定中斷源域。從而,在該中斷開(kāi)放的情況下,就能夠觸發(fā)硬件任務(wù)的切換,或是由當前任務(wù),如同任一68K處理器一樣,來(lái)處理中斷。

任務(wù)切換還有其他一些因素。程序員可以給五個(gè)寄存器組各分配一個(gè)優(yōu)先級,使高優(yōu)先級任務(wù)能中斷當前任務(wù)。另外,當前任務(wù)也能把自己置于休眠態(tài),將控制讓予其他任務(wù)。從而,可以使用一個(gè)定時(shí)器即可簡(jiǎn)單地實(shí)現任務(wù)輪換,或優(yōu)先級任務(wù)切換。各種任務(wù)排列組合后的切換算法都是可能的,Innovasic認為這是留給程序員的最好練習。
  
緊拽住軟件價(jià)值鏈

Fido 將Freescale CPU32+的指令集的字節數加倍,其執行時(shí)間與Freescale指令相比,處處有一個(gè)時(shí)鐘周期的差異。這一點(diǎn)并不奇怪,Freescale的 CPU32+,芯片不同,執行時(shí)間也不盡相同。作為Fido的客戶(hù),要充分以利用CPU32+軟件開(kāi)發(fā)工具在這方面已有的功能。就是說(shuō),絕大多數68K的開(kāi)發(fā)工具Fido都可以利用。如Fido這樣的新開(kāi)發(fā)的處理器,尚未建立自己軟件庫之前,都可以從Freescale原有開(kāi)發(fā)工具中獲取幫助。

Fido在確定性輸出方面,有三大特點(diǎn):高速緩存具有確定性;I/O極具靈活性;和任務(wù)切換僅需單周期。

Fido所用的高速緩存并非是常用的那種高速緩存,實(shí)際是32KB的。程序員可以拆分和從新映射到處理器的幾乎全部代碼空間。這樣的安排,比通常中間暫存的DRAM更加靈活。它已經(jīng)不是普通意義下的緩存,倒是更像可寫(xiě)又可控的存儲器。另外最重要地是,它克服了通常高速緩存存在的不確定性。不確定性是實(shí)時(shí)系統中最致命的缺陷。Fido 1100除去32KB的確定性緩存,還附加24KB SRAM的一般暫存存儲器。

Fido的I/O,像許多片上集成的I/O控制器一樣,支持以太網(wǎng)、UART、I2C、CAN、SPI、和其他一些常用接口。實(shí)際上,Fido具有四個(gè)通用的可編程I/O控制器(UIC),由它們模擬出上述的各種外設接口。每個(gè)UIC(見(jiàn)圖1)可以表現為高速串行口、16位并行口等等,直到10~100Mb/s以太網(wǎng)的MAC。Fido芯片上的每個(gè)UIC,都可以通過(guò)改變固件,而實(shí)現不同的配置或各種各樣的產(chǎn)品。

Fido的可編程I/O接口,是通用的但非唯一。 Fido的I/O設計與Ubicom的 IP3000系列芯片的很相似。 Cradle、 Cavium Networks、 Triscend (已被Xilinx收購)、 Morpho、 Stretch、和 Freescale等公司所生產(chǎn)的芯片,片內都具有可編程的I/O引擎,用以模擬各種標準的外圍接口。然而,Fido的方案中,UIC引擎的編程不是由用戶(hù)完成的。這一點(diǎn)與Freescale公司 PowerQUICC處理器中的通信引擎類(lèi)似。Innovasic將UIC引擎的結構及其指令的版權,死死地捏在自己手中。目前,Innovasic免費向客戶(hù)提供外圍設備接口的管理固件,它還宣布不久的將來(lái),會(huì )有軟件外設問(wèn)世,眼下的客戶(hù)暫時(shí)要受點(diǎn)委屈。
  
調試問(wèn)題

應該在編程時(shí)就該把調試和排錯考慮在內。調研表明,嵌入式的編程人員花費在調試上的時(shí)間,在項目的策劃、工程和編程的總時(shí)間里,約占40%以上。調試已經(jīng)成為開(kāi)發(fā)者最頭疼的一項工作。綜上所述,需要一個(gè)能提供現成的優(yōu)秀調試工具的市場(chǎng)。很早以前,已有少數處理器生產(chǎn)商將調試電路直接集成在芯片之中。如Freescale 的后臺調試模塊(BDM,Background Debug Module)。BDM很受嵌入式編程人員的歡迎。Innovasic沒(méi)有復制Freescale的 BDM,而是研制了自己的BDM替代品,起名為軟件評價(jià)與集成調試環(huán)境,英文名的字頭縮寫(xiě)是SPIDER (Software Profiling and Integrated Debug EnviRonment)。SPIDER包括硬件斷點(diǎn),跟蹤緩沖器,上下文識別寄存器等功能部件。

這些硬件資源與開(kāi)發(fā)用宿主機上的標準GNU/Eclipse操作系統、軟件工具等通過(guò)芯片上的串口(通常是以太口)或是片上的JTAG口相連接。硬件斷點(diǎn)與近代異常中斷標準中的典型做法一樣。它們應有上下文識別能力,應可設置成僅在指定上下文激活時(shí)才去觸發(fā)。程序員在調試五個(gè)硬件上下文寄存器中的任一個(gè)時(shí),其他四個(gè)上下文寄存器應該照舊運行。

Fido片上的24KB SRAM、外部RAM、或是連接于以太口或JTAG口上的其他外存,都可以用作跟蹤緩沖器。因而可以說(shuō),Fido具有無(wú)限的事件記錄能力,視外存的容量而定。如果程序員打算跟蹤的事件量過(guò)大,JTAG或以太口的帶寬可能會(huì )限制存儲器容量的發(fā)揮,但是無(wú)論如何,它畢竟是其他芯片所沒(méi)有的很有用的選項。只要不是對以太網(wǎng)接口本身進(jìn)行調試,可以通過(guò)JTAG使用以太網(wǎng),這樣做能夠相當大地改善帶寬。要是工作于66MHz鐘頻,使用Fido的以太口會(huì )實(shí)現從容不迫的跟蹤記錄,而不致產(chǎn)生瓶頸。

Fido有一套包括:SDRAM控制器、雙通道DMA控制器、片選信號系統、和各種門(mén)類(lèi)的計數/定時(shí)器等穿插在一起的電路,用它可以組成各種硬件外圍設備。內部數據通道位寬雖是32位,而芯片的外部數據總線(xiàn)則為16位,另有16位的SDRAM接口,其中有13位為地址線(xiàn),接口運行于內核頻率的66MHz。像各有自我側重的CISC處理器一樣,Fido能夠完成向任意外部地址傳輸非整體總線(xiàn)寬度的數據。

能買(mǎi)得起嗎?

Fido是哪一類(lèi)的處理器,在哪些方面有競爭力呢?Fido 1100是具有大量數據輸出門(mén),16位封裝,低價(jià)位(每千片單價(jià)10美金),與時(shí)俱進(jìn)的32位微處理器。Fido 1100,比一般簡(jiǎn)單的多硬件的乘法器和筒形移位寄存器。它是16位難于滿(mǎn)足性能要求時(shí)的潛在升級產(chǎn)品。Fido 1100雖說(shuō)是新芯片,而實(shí)際上與Freescale的68K同宗。所以,68K的開(kāi)發(fā)系統、68K的經(jīng)驗,和原有的支撐軟件都可以照樣使用。

Fido的部分魅力來(lái)自68K的血統,所以原有基于68K的各種芯片,自然而然地就成為相互競爭的對手。

表1中的ColdFire 5206與Fido價(jià)格一樣,而運行速度較Fido慢了一倍,片上的RAM及外設也都較少。至于ColdFire v2,有Fido缺乏的硬件乘法累加器(MAC)和整數除法指令,可惜對許多用戶(hù)也還是不足夠。Freescale的其他基于CPU32的控制器,如68360、68328等,與Fido的性能相當,可惜的是,它們的外設都是硬線(xiàn)邏輯的。純種的680x0 處理器,如030、040,它們的工作頻率較低,都只有40MHz,比Fido的運行速度慢,而價(jià)格又高出很多。但是,它們比Fido多了浮點(diǎn)運算單元(FPU),卻又缺乏外設。正確地說(shuō),它們的差異,原自于服務(wù)目標的不同。ColdFire有更多更好的性能,運行速度也很高。其中的5270系列與Fido有同樣的速度,同樣的外設、總線(xiàn)、存儲控制器,和同樣的價(jià)格。Freescale的芯片都使用的是慣用高速緩存,故而都存在令人煩心的時(shí)鐘周期不確定的缺陷。

注意:Fido的可變成通用I/O控制器一次只能模擬一種I/O接口。例如,一個(gè)UIC編程為以太網(wǎng)的MAC時(shí),就不能再同時(shí)編程為UART。所以有些場(chǎng)合,Fido的I/O能力比專(zhuān)用的I/O控制器受到更多的限制。表中的N/A位數據未能提供。

結語(yǔ)

總而言之,Innovasic的Fido 1100為新型的32位微控制器開(kāi)創(chuàng )了一個(gè)新的起點(diǎn)。多少年來(lái),68K芯片一直缺乏第二來(lái)源。在A(yíng)RM、 MIPS 、和 Power Architecture的芯片都有多個(gè)廠(chǎng)家供貨的時(shí)代,能夠看到一向保守的68K也有了第二來(lái)源,令人十分欣慰。

在工業(yè)應用領(lǐng)域中,芯片執行時(shí)間的可預測性是頭等重要的大事;軟件的執行時(shí)的時(shí)間擺動(dòng)會(huì )引起機械問(wèn)題或復雜的調整問(wèn)題。有少數的重要項目的開(kāi)發(fā)者的全部的工作就在于計算周期數。在那里,高速緩存被禁用,就連DRAM也需經(jīng)過(guò)仔細地處理,因為其刷新周期有時(shí)會(huì )意想不到地中斷總線(xiàn)的正?;顒?dòng)。這樣的市場(chǎng),正是Innovasic展示自己經(jīng)驗,Fido顯示克服周期搖擺的良好時(shí)機。

對于主流的開(kāi)發(fā)者,Innovasic應該可以頂替Freescale的ColdFire系列產(chǎn)品。Fido使用軟件來(lái)定義各種外設的特色,對于那些混合型終端產(chǎn)品的開(kāi)發(fā)者具有最大的誘惑力。他們期望能夠輕松地配置出混合的外圍設備,伴隨著(zhù)自然而然地同時(shí)也就得到了期望得到的終端產(chǎn)品?;ㄙM同樣10美元的代價(jià),用下載軟件的方法就可以獲得各種所需的I/O的組合,再加上Fido獨具的68K血統的優(yōu)點(diǎn),對于既求實(shí)用又具懷舊情調的開(kāi)發(fā)者,Fido將是最佳的選擇。(梁合慶編譯)



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>