1. 程式人生 > >微控制器的架構介紹

微控制器的架構介紹

   [導讀]:什麼是微控制器的架構?微控制器的架構有哪幾種?本文對這個問題做了個簡單的介紹。微控制器的架構根據指令結構可以分為CISC(Complex Instruction Set Computer)架構和RISC(Reduced Instruction Set Computer)架構;根據儲存器結構可以分為哈佛(Harvard)結構和普林斯頓(Princeton)結構。

微控制器的架構根據指令結構可以分為CISC(Complex Instruction Set Computer)架構和RISC(Reduced Instruction Set Computer)架構;根據儲存器結構可以分為哈佛(Harvard)結構和普林斯頓(Princeton)結構。

1、CISC和RISC

CISC(複雜指令集計算機)和RISC(精簡指令集計算機)是當前MCU的兩種架構。它們的區別在於不同的MCU設計理念和方法。早期的MCU全部是CISC架構,它的設計目的是要用最少的機器語言指令來完成所需的計算任務。RISC則是計算機系統只有少數指令,但是每個指令的執行時間相當短,因此MCU可以用相當高的頻率來運算。

◆CISC(複雜指令集計算機)

CISC是一種為了便於程式設計和提高記憶體訪問效率的晶片設計體系。早期的電腦使用組合語言程式設計,由於記憶體速度慢且價格昂貴,使得CISC體系得到了用武之地。在20世紀90年代中期之前,大多數的微處理器都採用CISC體系──包括Intel的80x86和Motorola的68K系列等。

⑴CISC體系的指令特徵

使用微程式碼:指令集可以直接在微程式碼記憶體(比主記憶體的速度快很多)裡執行,新設計的處理器,只需增加較少的電晶體就可以執行同樣的指令集,也可以很快地編寫新的指令集程式。

龐大的指令集:可以減少程式設計所需要的程式碼行數,減輕程式師的負擔。

高階語言對應的指令集:包括雙運算元格式、暫存器到暫存器、暫存器到記憶體以及記憶體到暫存器的指令。

⑵CISC體系的優缺點

優點:能夠有效縮短新指令的微程式碼設計時間,允許設計師實現CISC體系機器的向上相容。新的系統可以使用一個包含早期系統的指令超集合,也就可以使用較早電腦上使用的相同軟體。另外微程式指令的格式與高階語言相匹配,因而編譯器並不一定要重新編寫。

缺點:指令集以及晶片的設計比上一代產品更復雜,不同的指令,需要不同的時鐘週期來完成,執行較慢的指令,將影響整臺機器的執行效率。

◆RISC(精簡指令集計算機)

RISC是為了提高處理器執行的速度而設計的晶片體系。它的關鍵技術在於流水線操作(Pipelining):在一個時鐘週期裡完成多條指令。而超流水線以及超標量技術已普遍在晶片設計中使用。RISC體系多用於非x86陣營高效能微處理器CPU,像HOLTEK MCU系列等。

⑴RISC體系的指令特徵

精簡指令集:包含了簡單、基本的指令,透過這些簡單、基本的指令,就可以組合成複雜指令。

同樣長度的指令:每條指令的長度都是相同的,可以在一個單獨操作裡完成。

單機器週期指令:大多數的指令都可以在一個機器週期裡完成,並且允許處理器在同一時間內執行一系列的指令。

⑵RISC體系的優缺點

優點:在使用相同的晶片技術和相同執行時鐘下,RISC系統的執行速度將是CISC的2~4倍。由於RISC處理器的指令集是精簡的,它的記憶體管理單元、浮點單元等都能設計在同一塊晶片上。RISC處理器比相對應的CISC處理器設計更簡單,所需要的時間將變得更短,並可以比CISC處理器應用更多先進的技術,開發更快的下一代處理器。

缺點:多指令的操作使得程式開發者必須小心地選用合適的編譯器,而且編寫的程式碼量會變得非常大。另外就是RISC體系的處理器需要更快記憶體,這通常都集成於處理器內部,就是L1 Cache(一級快取)。

表 經典CISC和純RISC體系結構的特性

特性

經典CISC體系結構

純RISC體系結構

指令格式

可變格式:16到32和64位

固定32位指令

時鐘速率

隨技術發展而變化

隨技術發展而變化

指令系統規模和型別

約300條,有多於48種的指令型別

約100條,除取/存外,大都基於暫存器

定址方式

約12種,包含間接/變址定址

3到5種,只有取/存定址儲存器

快取記憶體設計

較早模型使用合一快取記憶體,有些使用分離快取記憶體

大多數使用分離的資料和指令快取記憶體

CPI及平均CPI

1到20個週期,平均4個週期

簡單操作1個週期,平均約1.5個週期

CPU控制

大多數微程式控制,有些使用硬連線控制

大多數為硬連線控制,沒有控制儲存器

暫存器堆

8~24個通用暫存器(GPR)

32~192個GPR分離的整數和浮點暫存器堆

對於CISC和RISC體系到底誰更好,長期以來都是業界爭論較多的話題,支援RISC體系的廠商認為它廉價和執行速度快,因此代表未來微處理器的發展特徵。反對者則認為,雖然RISC體系的硬體產品製造變得簡單,但軟體的開發會變得更復雜,即使執行相同的任務也必須編寫更多的程式來完成,因此它並不能代表未來的方向。如果我們注意到PC的相關市場,可以看到儘管RISC體系的歷史已經有10年,但一直沒能將CISC體系踢出局,市場上的個人電腦、工作站和伺服器大概有75%的仍是基於CISC體系結構。這也並不是說RISC真的不好,實際RISC和CISC體系的結構越來越接近,許多今天的RISC晶片仍然支援更多過去的CISC晶片,今天CISC晶片也運用了很多與RISC體系相關的技術,可以說,RISC和CISC是在共同發展的。

2、哈佛(Harvard)結構和普林斯頓(Princeton)結構

◆哈佛結構

哈佛結構是一種將程式指令儲存和資料儲存分開的儲存器結構。中央處理器首先到程式指令儲存器中讀取程式指令內容,解碼後得到資料地址,再到相應的資料儲存器中讀取資料,並進行下一步的操作(通常是執行)。程式指令儲存和資料儲存分開,可以使指令和資料有不同的資料寬度,如Microchip公司的PIC16晶片的程式指令是14位寬度,而資料是8位寬度。

哈佛結構的微處理器通常具有較高的執行效率。其程式指令和資料指令分開組織和儲存的,執行時可以預先讀取下一條指令。圖1
圖1 哈佛結構

目前使用哈佛結構的中央處理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列晶片,還有摩托羅拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和安謀公司的ARM9、ARM10和ARM11。

◆普林斯頓結構

普林斯頓結構,也稱馮·諾伊曼結構,是一種將程式指令儲存器和資料儲存器合併在一起的儲存器結構。程式指令儲存地址和資料儲存地址指向同一個儲存器的不同物理位置,因此程式指令和資料的寬度相同,如英特爾公司的8086中央處理器的程式指令和資料都是16位寬。圖2
圖2 馮.諾伊曼結構

目前使用馮·諾伊曼結構的中央處理器和微控制器有很多。除了上面提到的英特爾公司的8086,英特爾公司的其他中央處理器、安謀公司的ARM7、MIPS公司的MIPS處理器也採用了馮·諾伊曼結構。

相關推薦

微控制器架構介紹

   [導讀]:什麼是微控制器的架構?微控制器的架構有哪幾種?本文對這個問題做了個簡單的介紹。微控制器的架構根據指令結構可以分為CISC(Complex Instruction Set Computer)架構和RISC(Reduced Instruction Set Computer)架構;根據儲存器結構可以

Apache Shiro 使用手冊(一)Shiro架構介紹

springmvc+mybatis dubbo+zookeeper restful redis分布式緩存 shiro kafka 一、什麽是Shiro Apache Shiro是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能: 認證 - 用戶身份識別,常被稱為用戶“

0809LNMP架構介紹

表現 git mil 安全 5.6 path web file 快速 12.1 LNMP架構介紹 LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構 PHP是以fastcgi的方式結合Nginx的,可以理解為Nginx代理了PHP的fast

MySQL高級第一天——架構介紹

-s cnblogs target 主從復制 bms 一個 get ref 軟硬件 一、簡介   是一個經典的RDBMS,目前歸屬於Oracle   高級MySQL包含的內容:     MySQL內核  SQL優化工程師  MySQL服務器的優化  各種參數常量設定 

IOS面向協議的MVVM架構介紹(來著網絡的鏈接)

客戶端 orien ade protocol eal target cocoa mvvm ref https://academy.realm.io/cn/posts/doios-natasha-murashev-protocol-oriented-mvvm/ 面向協議的

Android 安卓系統架構介紹

圖片 img 多核心 nco 安全性 .com not 狀態 linux android系統架構 從上圖中可以看出,Android系統架構為四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹如下:

Java分布式應用技術架構介紹

物理 海量數據 java 一個數 參考 規模 應用程序 對數 負載 分布式架構的演進 系統架構演化歷程-初始階段架構初始階段 的小型系統 應用程序、數據庫、文件等所有的資源都在一臺服務器上通俗稱為LAMP特征:應用程序、數據庫、文件等所有的資源都在一臺服務器上。描述:通常服

RHCA CL220 CloudForms 3.1 架構介紹

linux cloud cloudforms 混合雲 概述:什麽是CloudForms?紅帽公司推出了混合雲CloudForms解決方案,RedHat的宗旨在於通過CloudForms能夠管理所有的基礎架構設施如RHEV,VMware和雲(AWS和OpenStack),實現集中化管理平臺。Cl

近乎產品MVC架構介紹-多租戶模式

.cn cnblogs http logs img jin www. pro targe 近乎產品下載地址:http://www.jinhusns.com 近乎產品MVC架構介紹-多租戶模式

LNMP架構介紹、MySQL安裝、PHP安裝、Nginx介紹

lamp架構LNMP架構介紹 LNMP:linux+nginx+mysql+php的架構;php的動態處理交給php-fpm(127.0.0.1:9000),靜態處理直接由nginx處理工作模式:1、在lamp中php作為獨立的服務(php-fpm)存在2、nginx支持高並發,動態請求轉給php-fp

LNMP架構(架構介紹,mysql安裝,php安裝,nginx介紹

lnmp架構介紹 mysql安裝 php安裝 nginx介紹 一、LNMP建構介紹和LAMP不同的是,提供web服務的是Nginx並且php是作為一個獨立服務存在的,這個服務叫做php-fpmNginx直接處理靜態文件請求,動態請求會轉發給php-fpmapache和nginx的區別;http

linux的LNMP架構介紹、MySQL安裝、PHP安裝

gif rul 錯誤 snap status fpm target header .net LNMP架構介紹 和LAMP唯一不同的是,LNMP中的N指的是Nginx(類似於Apache的一種web服務軟件)。目前這種環境的應用也非常多。Nginx設計的初衷是提供一種快速、

LVS負載均衡集群架構介紹

優先 0.10 rec shadow 本地ip sha src tun server 為什麽需要使用負載均衡呢?這是一個必較重要的問題 實際生產環境中某單臺服務器已不能負載日常用訪問壓力時,就需要使用負載均衡,把用戶的請求數據分擔到(盡可能平均分配)後端所有功能同等的集群的

MVC架構介紹-Model的開發

jin class base ref mod tap mode 創建 默認 需要在派生類實現lEntity,IEntity的兩個屬性EntityId和IsDeleteInDataBase,以顯式方式實現 Model的所有屬性存入數據庫以前都要確保有相應的默認值,不要依賴數

LAMP架構介紹與MySQL的安裝

ext tex ecc water images bbc 介紹 分享 roc LAMP架構介紹 MySQL的安裝 LAMP架構介紹與MySQL的安裝

11.1 LAMP架構介紹11.2 MySQL_MariaDB介紹11.3-11.5 MySQL安裝

mysql安裝11.1 LAMP架構介紹1. LAMP包含:Linux+Apache(httpd)+MySQl+PHPLinux : 操作系統(centos)Apache:httpd——外部服務軟件MySQl:存儲數據軟件(字符串)PHP : 腳本語言(以作網站為主)2. Apache(httpd) , My

LAMP架構介紹及mysql安裝

Linux mysql 安裝 LAMP架構介紹LAMP是Linux+Apache(httpd)+MySQL+PHP的簡寫,即把Apache、MySQL以及PHP安裝在linux系統上,組成一個運行環境來運行PHP腳本語言,通常是網站。比如Google、淘寶、百度、51cto博客、猿課論壇等就是用P

九周第四次課(2月26日) 11.1 LAMP架構介紹 11.2 MySQL、MariaDB介紹 11.3/11.4/11.5 MySQL安裝 擴展 mysql5.5源碼編譯安裝

when image safe x86 lease x86_64 roc use my.cnf 11.1 LAMP架構介紹11.2 MySQL、MariaDB介紹11.3/11.4/11.5 MySQL安裝擴展mysql5.5源碼編譯安裝 http://www.amin

LAMP架構介紹Mysql安裝

mysqlLAMP架構介紹MySQL和MariDB介紹MySql安裝mysql解壓縮mv目錄並且更改名字創建mysql針對以上4個dumper全部安裝,安裝依賴包啟動文件使用默認的mysql的配置文件啟動腳本對腳本文件進行編輯將mysql服務加入到開機啟動和分配權限啟動服務啟動進程與端口另外mysql啟動方式