?
前面我們講到了 8 位處理器,32 位處理器,以及 X86 構(gòu)架,那么除了這些還有哪些構(gòu)架呢?我們知道日本也是以電子產(chǎn)業(yè)著名的國度,那么在標(biāo)準(zhǔn)上一定有他們的一筆,今天我們就來講講 SH 構(gòu)架。
SH 架構(gòu)的發(fā)展
Sh 處理器又稱 SuperH 處理器 ,最先由日本 Hitachi 公司開發(fā),后由 Hitachi 及 ST Microelectronics 兩家公司共同開發(fā),2003 年,瑞薩科技從 Hitachi 公司繼承到擁有權(quán)。
SuperH 的標(biāo)識
Sh 屬于 MCU 型的處理器。
1. 什么是 MCU?
MCU 是什么,看起來與前面關(guān)注的 CPU 有些相像,那么 MCU 和 CPU 有什么關(guān)系?它們的區(qū)別又在哪里?
別急,慢慢往下看。
首先回顧一下 CPU(Central Processing Unit,中央處理器)的發(fā)展,從上世紀(jì) 70 年代的 4 位到今天的 64 位,不論何時(shí),它一直是計(jì)算機(jī)的核心,其重要性好比大腦對于人一樣,因?yàn)樗?fù)責(zé)處理、運(yùn)算計(jì)算機(jī)內(nèi)部的所有數(shù)據(jù),而主板芯片組則更像是心臟,它控制著數(shù)據(jù)的交換,同時(shí),CPU 的種類決定了所使用的操作系統(tǒng)和相應(yīng)的軟件。
眾所周知,20 世紀(jì) 70 年代出現(xiàn)的微型計(jì)算機(jī),在科學(xué)技術(shù)界引起了影響深遠(yuǎn)的變革。但是大家未必知道,在 70 年代中期,微型計(jì)算機(jī)家族中又分裂出一個(gè)小小的派系——單片機(jī)(MCU,Micro Controller Unit)。
與 CPU 的發(fā)展一樣,隨著 4 位單片機(jī)出現(xiàn)之后,又推出了 8 位的單片機(jī)。MCS-48 系列,特別是 MCS-51 系列單片機(jī)的出現(xiàn),確立了單片機(jī)作為微控制器(MCU)的地位,引起了微型計(jì)算機(jī)領(lǐng)域新的變革。
從上面的發(fā)展可以看出,MCU 源自 CPU,到目前為止,CPU 發(fā)展出來三個(gè)分枝,一個(gè)是 DSP(Digital Signal Processing/Processor,數(shù)字信號處理),另外兩個(gè)是 MCU(Micro Control Unit,微控制器單元)和 MPU(Micro Processor Unit,微處理器單元)。
在當(dāng)今世界上,微處理器(MPU)和微控制器(MCU)形成了各具特色的兩個(gè)分支。它們互相區(qū)別,但又互相融合、互相促進(jìn)。與微處理器(MPU)以運(yùn)算性能和速度為特征的飛速發(fā)展不同,微控制器(MCU)則是以其控制功能的不斷完善為發(fā)展標(biāo)志的。
如今 MCU 已經(jīng)自成體系,而且發(fā)展日益壯大,引發(fā)了越來越多的關(guān)注,其種類之多,應(yīng)用之廣泛已經(jīng)超越了 CPU。
?
MCU(Micro Controller Unit),又稱單片微型計(jì)算機(jī)(Single Chip Microcomputer),簡稱單片機(jī)。是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計(jì)算機(jī)的 CPU、RAM、ROM、定時(shí)數(shù)器和多種 I/O 接口集成在一片芯片上,形成芯片級的計(jì)算機(jī)。
MCU 按其存儲器類型可分為無片內(nèi) ROM 型和帶片內(nèi) ROM 型兩種。對于無片內(nèi) ROM 型的芯片,必須外接 EPROM 才能應(yīng)用;帶片內(nèi) ROM 型的芯片又分為片內(nèi) EPROM 型、MASK 片內(nèi)掩模 ROM 型、片內(nèi) FLASH 型等類型。
本是同根生,那么 MCU,MPU 和 DSP 三者之間的差別區(qū)別在哪里呢?請看下面的表格:
區(qū)別 |
特點(diǎn) |
|
MPU |
是高度集成的通用結(jié)構(gòu)的處理器。 |
不帶外圍器件(例如存儲器陣列),是去除了集成外設(shè)的 MCU |
MCU |
MPU+集成了片上外圍器件, 適合不同信息源的多種數(shù)據(jù)的處理診斷和運(yùn)算。 |
通用性強(qiáng),側(cè)重于控制,速度并不如 DSP |
DSP |
運(yùn)算能力強(qiáng)。 |
擅長很多的重復(fù)數(shù)據(jù)運(yùn)算 |
MCU 區(qū)別于 DSP 的最大特點(diǎn)在于它的通用性,反應(yīng)在指令集和尋址模式中。DSP 與 MCU 的結(jié)合是 DSC,它終將取代這兩種芯片。
總結(jié)一下:
MCU=MPU + 外設(shè);
DSC = DSP+MCU;
因此,可以得出這樣的結(jié)論:
DSC = DSP+ MPU + 外設(shè)。
是這樣嗎?
看到這里,想必下面的問題便迎刃而解了:同樣具有運(yùn)算和控制能力的 MCU、CPU 和 DSP,三者之間是什么關(guān)系?
這個(gè)問題的關(guān)鍵點(diǎn)在于它們的不同之處:運(yùn)算處理能力,以及側(cè)重的應(yīng)用領(lǐng)域。基于上面的觀點(diǎn),把三者的差異,各自簡單地歸納為一句話:
MCU 專注于工業(yè)控制,功能簡單,有一個(gè)(算數(shù)邏輯運(yùn)算單元),成熟的經(jīng)典的是 8051。
CPU 功能強(qiáng)大,但是不側(cè)重于任何一點(diǎn),優(yōu)勢均衡,適合于對于處理沒有嚴(yán)格要求的復(fù)雜系統(tǒng),成熟經(jīng)典的是 x86、ARM 體系。
DSP 專注于數(shù)據(jù)處理,有多個(gè) ALU,多用于多媒體應(yīng)用等,需要大數(shù)據(jù)量的地方。
強(qiáng)調(diào)一點(diǎn):MCU、CPU 和 DSP 三者按處理能力來排列是正序,但是基本的原理是一致的。所以,如果打算學(xué)習(xí)的話,那么建議從相對簡單的 MCU 入門,這是明智的選擇。
?
2. RISC 和 CISC
現(xiàn)在繼續(xù)進(jìn)行有關(guān) SuperH 的話題。
SuperH 是一種性價(jià)比、體積小、功耗低的 32 位、64 位的 RISC 嵌入式微處理器,可以廣泛應(yīng)用到消費(fèi)電子、汽車電子、通信設(shè)備等領(lǐng)域。
RISC,這里再次提到了 RISC,在深入了解 SuperH 之前,有必要先解釋一下“RISC”。
RISC(Riduced Instruction Set Computer)精簡指令集計(jì)算機(jī)。簡單,總是相對而言的,那么復(fù)雜指令集計(jì)算機(jī)是什么呢?
CISC(Complex Instruction Set Computer)復(fù)雜指令集計(jì)算機(jī)。
那么所謂的“精簡”,精簡在哪里?所謂的“復(fù)雜”,是在哪些方面復(fù)雜呢?別急,詳見下文。
RISC 是精簡指令集 CPU,指令位數(shù)較短,內(nèi)部還有快速處理指令的電路,使得指令的譯碼與數(shù)據(jù)的處理較快,所以執(zhí)行效率比 CISC 高,不過,必須經(jīng)過編譯程序的處理,才能發(fā)揮它的效率。
例如,大家都知道的 IBM 的 Power PC 為 RISC CPU 的結(jié)構(gòu)。
除此之外,經(jīng)常見到的 PC 中的 CPU,Pentium-Pro(P6)、Pentium-II,Cyrix 的 M1、M2、AMD 的 K5、K6 實(shí)際上是改進(jìn)了的 CISC,也可以說是結(jié)合了 CISC 和 RISC 的部分優(yōu)點(diǎn)。
現(xiàn)在有必要把兩者放在一起,比較一下,這樣看起來更加一目了然,見下表。
RISC 與 CISC 的主要特征對比表
比較內(nèi)容 |
CISC |
RISC |
復(fù)雜,龐大 |
簡單,精簡 |
|
指令數(shù)目 |
一般大于 200 |
一般小于 100 |
指令格式 |
一般大于 4 |
一般小于 4 |
尋址方式 |
一般大于 4 |
一般小于 4 |
指令字長 |
不固定 |
等長 |
可訪存指令 |
不加限制 |
只有 LOAD/STORE 指令 |
各種指令使用頻率 |
相差很大 |
相差不大 |
各種指令執(zhí)行時(shí)間 |
相差很大 |
絕大多數(shù)在一個(gè)周期內(nèi)完成 |
優(yōu)化編譯實(shí)現(xiàn) |
很難 |
較容易 |
程序源代碼長度 |
較短 |
較長 |
控制器實(shí)現(xiàn)方式 |
絕大多數(shù)為微程序控制 |
絕大多數(shù)為硬布線控制 |
軟件系統(tǒng)開發(fā)時(shí)間 |
較短 |
較長 |
如果到這里對于 RISC 與 CISC 還是不清楚的話,那么請記住下面的這句話:
對于 CISC 和 RISC 的實(shí)現(xiàn)而言,它們所側(cè)重的復(fù)雜性不同:CISC 處理器的實(shí)現(xiàn)復(fù)雜性更高,而 RISC 編譯器的復(fù)雜性更高。
那么一個(gè)新的問題來了,為什么需要 RISC 呢?
當(dāng)使用高級語言進(jìn)行程序設(shè)計(jì)時(shí),編譯器為了兼容早期的 CPU,一般不會生成特殊的復(fù)雜指令。
如果舍棄這些不常用的復(fù)雜指令,就能簡化 CPU 的設(shè)計(jì)。這正是 RISC 的出發(fā)點(diǎn)。
下面從純技術(shù)的角度出發(fā),來概括 RISC 的特點(diǎn):
1)RISC 指令系統(tǒng)較?。悍N類的數(shù)量較少,只提供簡單指令。這些指令大多都能在 4,5 個(gè)時(shí)鐘周期內(nèi)完成。?
2)指令的操作數(shù)必須預(yù)存于寄存器中,這樣取指操作的時(shí)間也統(tǒng)一了。?
3)指令長度,尋址方式,格式都整齊劃一:這樣可以充分利用流水線,基本上可實(shí)現(xiàn)一個(gè)時(shí)鐘脈沖執(zhí)行一條指令的目標(biāo)。?
4)RISC 的子程序調(diào)用與 CISC 的不同:在 CISC 中,程序調(diào)用、返回時(shí)需將上下文保存在堆棧中,需要內(nèi)存操作。而 RISC 將它們存放在寄存器中,而且參數(shù)也使用寄存器傳遞 。
?
5)RISC 中斷可視為特殊的子程序鏈接:CISC 中發(fā)生中斷時(shí),所有的寄存器內(nèi)容都被壓入堆棧,而 RISC 對中斷進(jìn)行區(qū)分對待,分為輕量級和重量級。對輕量級中斷 只保存需要保存的寄存器內(nèi)容;對重量級中斷的處理如同常規(guī)中斷。
與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!
系列匯總:
之二:處理器的春秋戰(zhàn)國時(shí)代:8 位處理器的恩怨與紛爭(上)
之三:處理器的春秋戰(zhàn)國時(shí)代:8 位處理器的恩怨與紛爭(下)
之五:處理器的三國時(shí)代:DR 公司盛氣凌人,IBM 轉(zhuǎn)身成就微軟
之六:32 位處理器的攻“芯”計(jì):英特爾如何稱霸 PC 江湖?