国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

MIPS走向更多

發(fā)布時間:2011-4-8 10:14    發(fā)布者:嵌入式公社
關(guān)鍵詞: MIPS , PIC32
作者:Tom Cantrell

當(dāng)談到32 位微控制器時,基于ARM 的產(chǎn)品已經(jīng)占據(jù)重要地位。那么,這會是故事的全部嗎?不見得,行業(yè)內(nèi)最重要的公司之一,Microchip Technology,正全力推動其基于MIPS 架構(gòu)的芯片。他們最新推出的產(chǎn)品在提醒我們,成功的嵌入式設(shè)計需要指令集之外的諸多因素。

在計算機歷史上,從實驗室走出過多少種不同的指令集架構(gòu)?可能曾經(jīng)有數(shù)百種架構(gòu)取得過一些商業(yè)上的成功; 如果算上諸多博士論文中出現(xiàn)過的,數(shù)目可能會多達幾千種。拿流行時尚做比喻,計算機體系結(jié)構(gòu)發(fā)展就好似女生裙擺的高度一般,經(jīng)常來回變化。

曾經(jīng)有一段時間它非常要緊—— 比如在匯編語言編程的時期。至于兼容性,至少在表面上它依舊是件重要的事情,特別是在電腦或視頻游戲方面(例如,有一些需要執(zhí)行以前的二進制文件)。但實際上,嚴(yán)格的目標(biāo)代碼兼容性對多數(shù)嵌入式設(shè)計來說已經(jīng)不再是一個大問題。更多的問題是關(guān)于工具鏈的兼容性和代碼模塊的可用性,指令集本身已經(jīng)不是問題之一。

隨著芯片不斷地集成系統(tǒng)功能,設(shè)計人員需要的是一個擁有全部所需存儲器、外設(shè)和膠合邏輯的芯片。并且這個芯片必須省電、有良好的工具和支持,以及合適的價格。

這并不是說在特定的應(yīng)用當(dāng)中,體系結(jié)構(gòu)并沒有優(yōu)劣之分。事實上,這個問題很有趣,看看那些當(dāng)初為“計算機”設(shè)計的架構(gòu)—— 如 ARM 和MIPS,不斷下沉,以更好地適應(yīng)嵌入式“控制器”應(yīng)用的需求。這些“計算機”架構(gòu)最后都終于認(rèn)識到要在嵌入式應(yīng)用里面解決諸如代碼密度、低功耗、快速并確定的中斷響應(yīng)等問題。

認(rèn)識 PIC32

MCU 領(lǐng)域的競爭里,無疑MIPS 是在追趕ARM。但是,擁有像Microchip 這樣的重量級選手支持,差距正在縮小。看看新的PIC32 5XX/6XX/7xx 系列產(chǎn)品,高度集成了以太網(wǎng)、USB 和CAN 應(yīng)用。

我在以前的文章中(“MIPS for the Masses”,Circuit cellar 216 期,2008)介紹過PIC32的內(nèi)核。擁有5 級流水線,性能相對較高(比如與ARM Cortex - M3 相比)。不過,這只是處理器內(nèi)核級別的性能差異。比如Microchip PIC32 的性能為1.5 DMIPS / MHz,而Cortex - M3是1.25 DMIPS / MHz 的。在實際中,32 位微控制器的flash 存儲器訪問時間是性能瓶頸。如以80MHz 運行的PIC32 可能需要2 個等待周期。通常采用寬總線(128 位)、高速緩存和預(yù)取等技術(shù)來減輕flash 訪問的瓶頸問題。

或者,可以使用片內(nèi)的RAM來達到0 等待周期。’5xx 系列包含64KB 的RAM,’6xx’和7xx 系列中的部分型號有多達128KB 的RAM。不過要記住,代碼和數(shù)據(jù)訪問之間的爭搶可能導(dǎo)致一些延遲。此外,256KB 或512KB 的flash 空間足夠用來放置你的代碼(加上額外12 KB 的啟動代碼空間)。

外設(shè)方面,這些新產(chǎn)品提供了完整的I/O(見圖1)。 ‘5xx/6xx/7xx 編號代表了大的接口功能:USB、CAN 和以太網(wǎng)。‘5xx 系列包含一個USB 2.0 和一個CAN(2.0b)模塊;‘6xx系列包含USB 模塊與一個10/100 以太網(wǎng)MAC。而‘7xx 系列集成了所有這些,包含USB、以太網(wǎng)和兩個CAN 模塊。


圖1:憑借豐富的I/O(USB、以太網(wǎng)、CAN等),PIC32成為Microchip和MIPS在MCU戰(zhàn)場上的有力武器

普通 I/O 方面,這些產(chǎn)品遵循了不同應(yīng)用需求的趨勢。我們看到5 個16 位計數(shù)器/定時器,其中任何兩對可以組合成為32 位單元。由于封裝尺寸(有64 腳和100 腳可選)和引腳復(fù)用的限制,你能得到最多六個UART、四個SPI 以及五個I2C 接口。在模擬方面,有一個16通道多路復(fù)用器連接一個10 位1 MSPS 的ADC 和兩個模擬比較器。除了這些MCU 能力,另外還有8/16 位數(shù)據(jù)總線和16 位地址總線擴展功能,外加兩個片選。所有的數(shù)據(jù)流可以通過8個通用DMA通道控制,輔以4個專用DMA通道('5XX 和'6XX 系列)或8個專用DMA通道('7XX 系列)。

源自上世紀(jì)80 年代的MIPS 是RISC 方面“精簡”特性的杰出代表。當(dāng)響應(yīng)中斷時,它們可以要對PC 和狀態(tài)寄存器壓棧,不然的話就轉(zhuǎn)由軟件去處理。對這種極端簡約存在一些爭議,可能少了一些有用的東西。考慮到這一點,PIC32 系列包括一個全功能優(yōu)先級/向量可編程的中斷控制器;以及一組替代寄存器組用于快速中斷響應(yīng)和上下文切換。

另外,不要忽視那些可能導(dǎo)致嚴(yán)重預(yù)算問題的膠合邏輯,如看門狗定時器、低電壓檢測、電壓整流器、主時鐘/外設(shè)時鐘/實時時鐘等。這些功能的集成,使PIC32 系列成為真正適用于“控制”應(yīng)用的芯片,有別于“計算機”芯片。

入門

跟以前一樣,Microchip 的芯片評估很容易,而且便宜。PIC32 以太網(wǎng)入門套件(見照片1)定價$72,提供一切你需要的部件。雖然名字為“以太網(wǎng)”入門套件,該套件配備了高端的'795 型號MCU,同時支持USB 功能。


照片1:考慮到ARM的先發(fā)優(yōu)勢,MIPS需要奮起直追。最新集成USB、以太網(wǎng)和CAN的PIC32,是MIPS在MCU領(lǐng)域的一個巨大進步

該套件還包括配有一個“輕量級”GCC 編譯器的Microchip MPLAB IDE。文檔中關(guān)于“輕量級”編譯器的說明有點矛盾。“輕量級”版本編譯器暗示不支持先進的代碼優(yōu)化,但是我拿到的版本顯然不是這樣,在下一節(jié)你將看到這一點。或許實際上該工具包是所謂的“評估”版本,支持所有功能,但只有60 天有效期。

PIC32 采用的架構(gòu)來源于“計算”,因此它非常適合管理面向PC 的以太網(wǎng)和USB 接口。讓我們看一些演示程序,你就會明白我的意思。

多年來Microchip 一直在為其小型的PIC 芯片提供部分網(wǎng)絡(luò)軟件棧,PIC32 做得更多,它提供了全功能、免費的BSD TCP/IP 網(wǎng)絡(luò)堆棧。包含所有的網(wǎng)絡(luò)服務(wù)、套接字等,以及這些常用的協(xié)議:DHCP、UDP、ICMP、ARR 等。'795 型芯片中有512KB 的片上flash,有充足的空間存儲一些漂亮的演示程序,讓我們?yōu)g覽一下入門電路板(見照片2)。


照片2:當(dāng)把一個“計算”架構(gòu)裁剪為“微控制器”使用時,誠然會有很多挑戰(zhàn);但同時也能繼承很多好處,比如這里看到的免費BSD TCP/IP堆棧。

USB 支持不錯,。OTG功能允許一個設(shè)備在USB 主、從設(shè)備之間動態(tài)切換。一個典型的應(yīng)用案例是打印機,當(dāng)連接到PC 時它是一個從設(shè)備,而當(dāng)連接到相機時它成為主設(shè)備。現(xiàn)在所有的USB 芯片似乎都有OTG 了,不過我自己從沒有遇到過需要以這種方式切換的情況。

不管 OTG 是否真正有用,它使得PIC32 能在更多的傳統(tǒng)領(lǐng)域中得到應(yīng)用,無論是作為主設(shè)備或從設(shè)備。USB“嵌入式主設(shè)備”在使用中有一些限制,不像“標(biāo)準(zhǔn)主設(shè)備”如電腦,舉例來說PIC32 不提供VBUS 電源(100-500 mA),但是你可以在個人電腦的USB接口上找到這種電源——當(dāng)然這完全可以理解。另外,速度限制也需要注意,,作為從設(shè)備時能夠“全速”(12 Mbps),而作為主設(shè)備時只能提供“低速”(1.5 Mbps)。

這個套件包含了一些實用的演示。其中一個演示讓該板子成為一個標(biāo)準(zhǔn)人機接口設(shè)備(HID)——比如鼠標(biāo)。因為HID 驅(qū)動已經(jīng)是標(biāo)準(zhǔn),你可以把它直接插入PC 使用。另外,你可以把這個套件配置成USB 主設(shè)備,從而利用PIC32 不斷完善的FAT 文件管理軟件庫,有一些演示展示了如何訪問廣泛使用的USB 存儲器(見照片3)。


照片3:另一個免費軟件是USB主、從設(shè)備驅(qū)動,這里演示的是利用集成的FAT文件系統(tǒng),以USB主設(shè)備訪問一個USB存儲器

不過需要指出的是這個套件中沒有包含CAN 演示。因為我不懂也沒有實驗條件進行有意義的CAN 測試,如果你需要該功能,你需要自己來評估和結(jié)論。

優(yōu)化的迷宮

結(jié)構(gòu)體系進化的重要標(biāo)志之一,曾經(jīng)是編譯器的優(yōu)化。您可能還記得有些人把“RISC”縮寫調(diào)侃為“Relegate the Impossible Stuff to the Compiler”,即“把不可能完成的任務(wù)丟給編譯器”。然而,在調(diào)試時,一個太過自我聰明的編譯器其問題也是顯而易見的。比如PIC32 的“C”編譯手冊有提到說,當(dāng)調(diào)試經(jīng)過優(yōu)化的代碼時“可能偶爾會碰到令人驚訝的結(jié)果。”

例如,有些變量和代碼會消失,如果編譯器認(rèn)為你其實并不需要它們。舉例說你聲明了一個變量,然后給它賦值一個常數(shù),接著在某個計算時調(diào)用了這個變量。不要為找不到那個變量和賦值語句而抓狂,編譯器只是比你更聰明一點,它在計算中直接調(diào)用了常數(shù)。

當(dāng)你在一個條件分支指令處點擊了單步執(zhí)行,然后看到光標(biāo)移動到了下一條指令處,這是否意味該條件分支的條件未被滿足呢?未必,請注意這是MIPS 架構(gòu)的一個特性,即分支指令的下一條指令總是會被執(zhí)行,當(dāng)編譯器找不到合適的指令時會填充一條NOP 指令。你必須再執(zhí)行一次單步操作,才能確認(rèn)分支條件是否被滿足(在這種情況下,你會看到光標(biāo)跳到分支目標(biāo)處)或不滿足(光標(biāo)跳轉(zhuǎn)到下一條順序指令)。更先進的“代碼移動”優(yōu)化能夠?qū)е赂嗟膬?yōu)化干預(yù)。請記住,有時指令可以被挪動很遠(yuǎn)的距離,甚至超出你認(rèn)為應(yīng)在的循環(huán)之外。

不過,調(diào)試優(yōu)化過的代碼也是可能的,尤其是你喜歡頭腦風(fēng)暴的話(例如,在分支指令后跟一個分支指令會發(fā)生什么?)。通常缺省的編譯器優(yōu)化只生成簡單的代碼,會完整保留你的意圖即使可能它效率底下。當(dāng)調(diào)試時在斷點觸發(fā)處,,你可以放心地修改某個變量的值,而不用擔(dān)心編譯器會搗什么鬼(比如雖然你從源代碼中看不到,但一些賦值語句已經(jīng)被挪動并執(zhí)行了)。


照片4:搞“計算”的人擅長編譯優(yōu)化,如這里所示,從速度、代碼尺寸到編譯時間,有廣泛的選擇空間可選

需要緊記的是,編譯器優(yōu)化設(shè)置(見照片4)能夠產(chǎn)生很大影響。我試著跑過一個USB主機演示程序,采用了如表1 所示的不同編譯器設(shè)置,你可以看到,不同設(shè)置下(速度/大小取向、循環(huán)展開,采取MIPS-16 的16 位代碼優(yōu)化選項)生成的代碼大小相差能夠高達2倍。

  
Optimization
Level
  
  
Code Size (KB) - 32-bit
  
  
Code Size (KB) - 32-bit with loop unrolling
  
  
Code Size (KB) - 16-bit
  
  
"0" - No optimization, debugging produces expected results
  
  
27
  
  
27
  
  
20
  
  
"1" - Reduces code size, increases speed and compile time
  
  
20
  
  
24
  
  
16
  
  
"2" - Full optimization, further increases speed and compile  time
  
  
19
  
  
22
  
  
15
  
  
"s" - Level "2" optimizations that do not increase  code size and others to reduce code size
  
  
18
  
  
21
  
  
15
  
  
"3" - Level "2" optimizations and function inlining
  
  
24
  
  
32
  
  
19
  
表1:聰明的編譯器總歸不錯,但是要留意可能會給調(diào)試工作帶來副作用。應(yīng)首選保證你的代碼正確工作,然后再考慮進一步優(yōu)化

保持簡潔

PIC32 在精簡MIPS 架構(gòu)使其服務(wù)于嵌入式應(yīng)用方面做得很好。比如,全部的活動功耗只有1mA/MHz 水平,從它提供的性能來看這是非常難得的。它們的批量價格也比較合理,特別考慮到那些完整的外設(shè)和存儲器配備。

然而競爭也非常激烈,像Cortex - M3、瑞薩SH(現(xiàn)在叫RX)、愛特梅爾AVR32 以及飛思卡爾的ColdFire 等。這些競爭對手在行業(yè)里已經(jīng)有很長的時間,它們的產(chǎn)品也具有很廣的覆蓋面,在高端產(chǎn)品上能提供跟PIC32類似的集成度和性能,同時還有許多入門級的簡單產(chǎn)品。

我認(rèn)為MIPS 也在低端產(chǎn)品線上延伸,他們最近發(fā)布的“M14K”內(nèi)核就是明證,在保留當(dāng)前版本性能的基礎(chǔ)上,在代碼密度、中斷響應(yīng)和外設(shè)一致性上取得了非常大的進步。

其中最深刻的變化是一套新的“microMIPS”指令集。類似于ARM 的Thumb-2,microMIPS 采用了可變長度的操作碼(16 和32 位),以同時取得兩者的優(yōu)點,即接近32位代碼的性能和16 位代碼的密度(見圖2)。定長指令集是原始RISC 革命的標(biāo)志性特點,這在當(dāng)時是合理的(雖然我并沒有覺得),但在今天,架構(gòu)師們意識到用32 位存儲器(即使不考慮功耗的開銷)只是做個寄存器累加或短跳轉(zhuǎn)是沒有意義的。同上,在軟件方面,編譯器和IDE 都很好,但MIPS 和Microchip 也應(yīng)該注意那些簡單的替代產(chǎn)品,如ARM 的mbed、AVR 的Arduino,還有他們自己陣營的PICAXE。有些人可能還認(rèn)為32 位芯片只是火箭科學(xué)家的事,但火箭能賣掉多少個?


圖2:MIPS M14K進一步丟棄了“計算”架構(gòu)中的包袱,如造成代碼膨脹的32位定長指令,使得在保留高性能的同時,極大地減小了代碼大小

想賣出更多的芯片嗎?很簡單,只要做到更低功耗低、更易使用、更便宜。然后接著再這樣繼續(xù)。

――――――――――――
Tom cantrell 在芯片、板子和系統(tǒng)設(shè)計及市場推廣方面有多年經(jīng)驗。您可以通過電子郵件tom.cantrell@ circuitcellar.com 聯(lián)系他。
本文地址:http://m.qingdxww.cn/thread-61384-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产欧美在线观看一区二区 | 国产91情侣在线精品国产 | 国产精品免费视频一区一 | 免费黄色在线观看 | 亚洲天堂热 | 久久精品综合国产二区 | 亚洲成人三级 | 两个人高清在线观看www | www成人国产在线观看网站 | 亚洲伦理天堂 | 四虎影永久在线观看精品 | 97色婷婷成人综合在线观看 | 黑人香蕉又粗又大视频免费 | 高清欧美一级在线观看 | 亚洲黄视频 | 9色在线视频 | 国产精品一区二区av | 亚洲天堂久久 | 高清国产精品久久 | 乱在线伦视频免费 | 欧美亚洲网站 | 亚洲色图.com | 99视频在线观看高清 | www色日本| 日韩一区二区天海翼 | 麻豆成人免费视频 | 香蕉尹人在线观看免费下载 | 四虎影院永久免费 | 国产精品久久久久久久久免费观看 | 精品在线看 | 两个人免费观看视频高清视频 | 成人欧美一区在线视频在线观看 | 久久黄色毛片 | 欧美一区二区三区四区视频 | 日韩三级一区二区三区 | 香蕉精品视频在线观看 | 欧美视频一区二区在线观看 | 美女视频永久黄网站免费观看国产 | 在线视频一区二区三区四区 | 国产精品国产三级国产专 | 日韩精品免费一区二区 |