MIPS走向更多
當(dāng)談到32 位微控制器時(shí),基于ARM 的產(chǎn)品已經(jīng)占據(jù)重要地位。那么,這會(huì)是故事的全部嗎?不見(jiàn)得,行業(yè)內(nèi)最重要的公司之一,Microchip Technology,正全力推動(dòng)其基于MIPS 架構(gòu)的芯片。他們最新推出的產(chǎn)品在提醒我們,成功的嵌入式設(shè)計(jì)需要指令集之外的諸多因素。
本文引用地址:http://cafeforensic.com/article/118542.htm在計(jì)算機(jī)歷史上,從實(shí)驗(yàn)室走出過(guò)多少種不同的指令集架構(gòu)?可能曾經(jīng)有數(shù)百種架構(gòu)取得過(guò)一些商業(yè)上的成功;如果算上諸多博士論文中出現(xiàn)過(guò)的,數(shù)目可能會(huì)多達(dá)幾千種。拿流行時(shí)尚做比喻,計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展就好似女生裙擺的高度一般,經(jīng)常來(lái)回變化。
曾經(jīng)有一段時(shí)間它非常要緊—— 比如在匯編語(yǔ)言編程的時(shí)期。至于兼容性,至少在表面上它依舊是件重要的事情,特別是在電腦或視頻游戲方面(例如,有一些需要執(zhí)行以前的二進(jìn)制文件)。但實(shí)際上,嚴(yán)格的目標(biāo)代碼兼容性對(duì)多數(shù)嵌入式設(shè)計(jì)來(lái)說(shuō)已經(jīng)不再是一個(gè)大問(wèn)題。更多的問(wèn)題是關(guān)于工具鏈的兼容性和代碼模塊的可用性,指令集本身已經(jīng)不是問(wèn)題之一。
隨著芯片不斷地集成系統(tǒng)功能,設(shè)計(jì)人員需要的是一個(gè)擁有全部所需存儲(chǔ)器、外設(shè)和膠合邏輯的芯片。并且這個(gè)芯片必須省電、有良好的工具和支持,以及合適的價(jià)格。
這并不是說(shuō)在特定的應(yīng)用當(dāng)中,體系結(jié)構(gòu)并沒(méi)有優(yōu)劣之分。事實(shí)上,這個(gè)問(wèn)題很有趣,看看那些當(dāng)初為“計(jì)算機(jī)”設(shè)計(jì)的架構(gòu)—— 如ARM 和MIPS,不斷下沉,以更好地適應(yīng)嵌入式“控制器”應(yīng)用的需求。這些“計(jì)算機(jī)”架構(gòu)最后都終于認(rèn)識(shí)到要在嵌入式應(yīng)用里面解決諸如代碼密度、低功耗、快速并確定的中斷響應(yīng)等問(wèn)題。
認(rèn)識(shí) PIC32
在 MCU 領(lǐng)域的競(jìng)爭(zhēng)里,無(wú)疑MIPS 是在追趕ARM。但是,擁有像Microchip 這樣的重量級(jí)選手支持,差距正在縮小??纯葱碌腜IC32 5XX/6XX/7xx 系列產(chǎn)品,高度集成了以太網(wǎng)、USB 和CAN 應(yīng)用。
我在以前的文章中(“MIPS for the Masses”,Circuit cellar 216 期,2008)介紹過(guò)PIC32的內(nèi)核。擁有5 級(jí)流水線,性能相對(duì)較高(比如與ARM Cortex - M3 相比)。不過(guò),這只是處理器內(nèi)核級(jí)別的性能差異。比如Microchip PIC32 的性能為1.5 DMIPS / MHz,而Cortex - M3是1.25 DMIPS / MHz 的。在實(shí)際中,32 位微控制器的flash 存儲(chǔ)器訪問(wèn)時(shí)間是性能瓶頸。如以80MHz 運(yùn)行的PIC32 可能需要2 個(gè)等待周期。通常采用寬總線(128 位)、高速緩存和預(yù)取等技術(shù)來(lái)減輕flash 訪問(wèn)的瓶頸問(wèn)題。
或者,可以使用片內(nèi)的RAM來(lái)達(dá)到0 等待周期。’5xx 系列包含64KB 的RAM,’6xx’和7xx 系列中的部分型號(hào)有多達(dá)128KB 的RAM。不過(guò)要記住,代碼和數(shù)據(jù)訪問(wèn)之間的爭(zhēng)搶可能導(dǎo)致一些延遲。此外,256KB 或512KB 的flash 空間足夠用來(lái)放置你的代碼(加上額外12 KB 的啟動(dòng)代碼空間)。
外設(shè)方面,這些新產(chǎn)品提供了完整的I/O(見(jiàn)圖1)。‘5xx/6xx/7xx 編號(hào)代表了大的接口功能:USB、CAN 和以太網(wǎng)。‘5xx 系列包含一個(gè)USB 2.0 和一個(gè)CAN(2.0b)模塊;‘6xx系列包含USB 模塊與一個(gè)10/100 以太網(wǎng)MAC。而‘7xx 系列集成了所有這些,包含USB、以太網(wǎng)和兩個(gè)CAN 模塊。
圖1:憑借豐富的I/O(USB、以太網(wǎng)、CAN等),PIC32成為Microchip和MIPS在MCU戰(zhàn)場(chǎng)上的有力武器
普通I/O 方面,這些產(chǎn)品遵循了不同應(yīng)用需求的趨勢(shì)。我們看到5 個(gè)16 位計(jì)數(shù)器/定時(shí)器,其中任何兩對(duì)可以組合成為32 位單元。由于封裝尺寸(有64 腳和100 腳可選)和引腳復(fù)用的限制,你能得到最多六個(gè)UART、四個(gè)SPI 以及五個(gè)I2C 接口。在模擬方面,有一個(gè)16通道多路復(fù)用器連接一個(gè)10 位1 MSPS 的ADC 和兩個(gè)模擬比較器。除了這些MCU 能力,另外還有8/16 位數(shù)據(jù)總線和16 位地址總線擴(kuò)展功能,外加兩個(gè)片選。所有的數(shù)據(jù)流可以通過(guò)8個(gè)通用DMA通道控制,輔以4個(gè)專用DMA通道('5XX 和'6XX 系列)或8個(gè)專用DMA通道('7XX 系列)。
源自上世紀(jì)80 年代的MIPS 是RISC 方面“精簡(jiǎn)”特性的杰出代表。當(dāng)響應(yīng)中斷時(shí),它們可以要對(duì)PC 和狀態(tài)寄存器壓棧,不然的話就轉(zhuǎn)由軟件去處理。對(duì)這種極端簡(jiǎn)約存在一些爭(zhēng)議,可能少了一些有用的東西??紤]到這一點(diǎn),PIC32 系列包括一個(gè)全功能優(yōu)先級(jí)/向量可編程的中斷控制器;以及一組替代寄存器組用于快速中斷響應(yīng)和上下文切換。
評(píng)論