ARM 與 STM32 的關係
ARM 介紹
1978年,奧地利籍物理學博士Hermann Hauser,和他朋友,一位英國工程師Chris Curry,共同建立了一 家名為“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“劍橋處理器單元”,主要從事研發 當地電子儀器裝置的業務,比如街頭遊戲機之類的。
1979年,在經營逐漸進入正規後,原來的公司名不怎麼合適了,那個年代喜歡找個吉祥物作為公司名字, 比如Apple公司。這倆就以橡子為吉祥物,取名為“Acron Computer”,中文字面意思就是“橡果公司”。
1981年,也許是改了公司名字,運氣就來了,這一年,公司接到一個大單。英國廣播公司BBC,計劃在 整個英國播放一套電腦普及的教育節目,希望Acron公司可以生產一套配套的電腦,之後英國政府還會海量 採購電腦,在各個學校普及。
接下這個大單後,Acron公司就開始研發產品了。當時處理器正從8位向16位過渡,他們就去找了美國國 家半導體和摩托羅拉公司生產的16位處理器。評估後發現,這些處理器執行上有點慢,中斷的響應時間有點 長,還有就是太貴,一臺電腦才賣500英鎊,處理器成本就要100英鎊。於是又把目標轉向當時如日中天的 Intel,希望對方提供一些16位80286處理器的設計資料和樣品,然而Intel根本就不理他們。
最後,Acorn公司沒辦法,臨時採用了便宜的MOS科技生產的8位6502處理器,勉強研發出符合要求的 個人電腦BBC Micro。絕處逢生的Acorn公司發現處理器受制於人,為了後面長久的發展,於是決定自己研 發處理器。
Acorn公司的研發人員從美國加州大學伯克利分校,找到了一個關於新型處理器的研究——簡化指令集。 在此基礎上,歷時4年的艱苦奮鬥,於1985年完成了微處理器的設計,以後的BBC Micro,都用這顆新處理 器。對於這塊晶片,Acorn公司給它命名為“Acorn RISC Machine,ARM”,中文字面意思就是“橡果精簡 指令集機器”,也就是ARM的第一次出現。
這裡插講一下簡化指令集(Reduced Instruction Set Computer,RISC),與之相對應的就是複雜指令集 (Complex Instruction Set Computer,CISC)。早期的處理器都是CISC架構(比如前面Intel處理器),隨著時間 推移,有越來越多的指令集加入。但是後來人們發現,整個指令集中,只有約20%的指令常常會被使用到, 大約佔了整個程式內容的80%,而剩餘80%的指令,只佔了整個程式內容的20%(典型的二八原則)。於是, 1979年美國加州大學伯克利分校的David Patterson教授(前面提到的新型處理器研究的作者),提出了RISC的 想法,主張硬體專心加速常用的指令,不常用的指令則利用常用的指令去組合。
就在同一年,1985年10月,英特爾釋出了80386,Acorn公司的ARM晶片被吊打。80386採用CISC技術, 所有指令都支援,也就效能更好,但設計成本也高、功耗也大。Acorn公司的ARM晶片採用RISI技術,只支 持常用指令,其它指令需要常用指令去組合,效能也就差一些,但成本低、功耗低、研發快。Acorn公司也 不傻,效能比不過,就突出成本低,功耗低的優勢,總有要求成本低、功耗低,效能要求不高的場景,於是 就往我們現在所見的嵌入式方向發展。
1990年,Acorn公司和Apple公司合作,成立新公司“Advanced RISC Machines,ARM”,中文字面意思 就是“高階精簡指令集機器”,這就是現在大家常說的ARM公司。
成立新公司後的幾年,ARM公司業績平平,危機四起。於是ARM決定改變他們的產品策略,他們不再 生產晶片,轉而以授權的方式,將晶片設計方案轉給其它公司。正是ARM的這種授權模式,極大地降低了 自身的研發成本和研發風險。它以風險共擔、利益共享的模式,形成了一個以ARM為核心的生態圈,使得 低成本創新成為可能。
隨後,德州儀器(Texas Instruments,TI)、意法半導體(STMicroelectronics,ST)、恩智浦半導體(NXP Semiconductors,NXP)等半導體晶片廠商,相繼購買ARM授權,然後根據自身行業需求,設計不同的外設接 口的晶片。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997197/viewspace-2764986/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- stm32標準庫和HAL庫的關係
- Object與Class的關係Object
- GNU與Linux 的關係Linux
- Scala與Java的關係Java
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- JSON 與 JS 物件的關係JSON物件
- 圖片與向量的關係
- Excutors 與 ThreadPoolExcutor 的關係與區別thread
- Docker與containerd的關係與區別DockerAI
- Hadoop與Spark關係HadoopSpark
- Cookie與Session 關係CookieSession
- 教你理清SpringBoot與SpringMVC的關係Spring BootSpringMVC
- Python與人工智慧的關係Python人工智慧
- this與new、call、apply、bind的關係APP
- 物聯網與APP的關係?APP
- equals與hashCode關係梳理
- Process與Socket,Select與Accept關係
- Java中類與物件的關係與區別Java物件
- 深入理解PCA與SVD的關係PCA
- 架構與資料庫的關係架構資料庫
- apache中埠與目錄的關係Apache
- RabbitMQ與Erlang的版本對應關係MQ
- 思考 TPS 與 RT 之間的關係
- USB 端點與USB HUB的關係
- 類與類之間的基本關係
- 孤兒程式與終端的關係
- Redis的效能與CPU主頻的關係Redis
- Twitter關注者與粉絲的關係網路
- 一個關於wait/notify與鎖關係的探究AI
- TLS與SSL之間關係TLS
- CSS 佈局與“倉庫管理”的關係CSS
- ReactJS &Flux &Redux 的設計思想與關係ReactJSRedux
- Hashtable/HashMap與key/value為null的關係HashMapNull
- c#版本與vs的對應關係C#
- 網頁抓取與IPIDEA代理IP的關係網頁Idea
- 一文看懂FSSC與RPA的關係
- c++類與類的聚合(Aggregation)關係C++
- 模型型別與加速潛力的關係模型型別