摘要:以前的文章說過,芯片的分類方法很多,種類猶如夜空的繁星,多到無法枚舉。本文把芯片的范圍縮小,聚焦高端通用芯片CPU這一分支,我們會發(fā)現(xiàn)CPU芯片的種類也不少,而且“門派”林立,儼然像一個CPU芯片“江湖”,指令集和微架構(gòu)就是這個江湖中的門派標(biāo)志。什么是CPU指令集和微架構(gòu)?為什么指令集和微架構(gòu)是江湖門派標(biāo)志?本文試圖用通俗的語言加以說明。
CPU是中央處理器(Central Processing Unit)的英文簡稱,是一種高端通用芯。它在計(jì)算機(jī)(電腦)和智能設(shè)備中用來指揮各個部件協(xié)同高效地工作。它是電腦和智能設(shè)備的控制中樞,是電腦中的大腦。
電腦的部件需要CPU來指揮,而CPU內(nèi)的部件也需要受到指揮協(xié)調(diào)才能工作,這個指揮官就是程序,由程序發(fā)出的指揮CPU內(nèi)部電路協(xié)同工作的命令,簡稱為指令。例如,如果要讓CPU完成一次A+B->C的計(jì)算,就要發(fā)2條存取指令,從存儲器把A和B取出來送到運(yùn)算器中;再發(fā)1條加法指令,讓運(yùn)算器執(zhí)行加法運(yùn)算;最后發(fā)1條存取指令,把C存入存儲器。這個例子中用到了兩種指令:存取指令和加法指令。
實(shí)際上,一個通用CPU要完成各類計(jì)算、推理、判斷和控制工作,它的指令種類少則幾十種,多則數(shù)百種,CPU的各種指令的集合稱為CPU的指令集。指令集確定了CPU的工作方式和與之相適應(yīng)CPU內(nèi)部的硬件架構(gòu),這種硬件架構(gòu)稱為CPU的微架構(gòu)。指令集和微架構(gòu)是一個公司研發(fā)出新款CPU后形成的核心知識產(chǎn)權(quán)。指令集是CPU的頂層設(shè)計(jì)規(guī)范,微架構(gòu)是這個頂層規(guī)范的物理實(shí)現(xiàn),這種實(shí)現(xiàn)可以有多種,實(shí)現(xiàn)方法可以有變化。一般說的CPU架構(gòu)就包含了CPU指令集和微架構(gòu)兩個東西。
圖1.新的指令集和微架構(gòu)可以創(chuàng)立一個新的CPU芯片江湖門派
圖1描述了指令集、微架構(gòu)、CPU芯片和芯片用戶群之間的關(guān)系。可以看到,研發(fā)一款新的指令集和微架構(gòu),就相當(dāng)于在CPU芯片江湖中創(chuàng)立了一個門派。具體地講,A公司開發(fā)了一款新的CPU,意味著創(chuàng)建了新的指令集和微架構(gòu),不但A公司的CPU芯片形成了用戶群A,而且A公司還可以授權(quán)其他公司開發(fā)CPU芯片,并形成相應(yīng)的用戶群B、C、D等。新的指令集和微架構(gòu)可以開發(fā)一個CPU芯片家族,可以產(chǎn)生一個芯片用戶集群,就好像產(chǎn)生了一個江湖門派。指令集和微架構(gòu)設(shè)計(jì)得好,CPU的性能就好,用戶就多,追捧者就多,門派就興旺發(fā)達(dá)。
圖2.指令集是連接軟件和硬件的紐帶
圖2表明,指令集是連接軟件和硬件的紐帶。如論是應(yīng)用程序還是操作系統(tǒng)中的系統(tǒng)代碼,最終都被編譯成可以在CPU芯片內(nèi)部執(zhí)行的符合指令集規(guī)范的機(jī)器代碼程序。機(jī)器代碼程序中的指令控制著CPU內(nèi)部部件協(xié)調(diào)高效工作,并實(shí)現(xiàn)CPU的整體功能,進(jìn)而由CPU控制整機(jī)系統(tǒng)工作。指令集是系統(tǒng)軟件和硬件工程師共同遵從的法條,只有遵守了這個法條,軟件工程師編寫的軟件才能在不同型號的整機(jī)系統(tǒng)上運(yùn)行。硬件工程師開發(fā)的整機(jī)系統(tǒng)才能運(yùn)行現(xiàn)有的應(yīng)用軟件。
講了這么多概念,也分析了這些概念的關(guān)系,如果還不好理解的話,讓我們來看看三個代表性的CPU指令集和微架構(gòu)的例子吧。第一個是代表單片機(jī)或微控制器(MCU)的MCS-51指令集。第二個是代表復(fù)雜指令集計(jì)算機(jī)(CISC)的x86指令集。第三個是代表精簡指令集計(jì)算機(jī)(RISC)的ARM指令集。舉例這些指令集和微架構(gòu)的目的不是為了研究,只是為了展示,目的是使讀者對CPU芯片江湖的門派標(biāo)志——指令集和微架構(gòu)有個宏觀印象。
為什么要把MCU指令集拿來和CPU指令集一同展示?讓我們先了解一下MCU、CPU和SoC三者的關(guān)系吧。MCU是微控制器(Micro ControllerUnit)的英文簡稱,是一種中低端的通用芯片,主要用于中小電子產(chǎn)品和系統(tǒng)的控制。SoC是系統(tǒng)級芯片(System on Chip)的英文簡稱,是一種包含低、中、高端處理功能的面向應(yīng)用領(lǐng)域的專用芯片。MCU、CPU和SoC難以絕對劃界,但是,如果研究了三者的特點(diǎn)后,您就可以對它們進(jìn)行清晰的區(qū)分了。
三者的共同特點(diǎn):它們都是智能電子產(chǎn)品和系統(tǒng)的控制中樞,都有要遵循的指令集和微架構(gòu)。三者的差別:MCU一般是4位、8位和16位微架構(gòu),工作頻率不會太高??刂菩匀蝿?wù)較多,計(jì)算和信息處理性工作較少。與CPU相比,單芯片上集成了一些外部接口和功能部件。CPU一般是16位、32位和62位微架構(gòu),工作頻率很高,更重視處理速度和運(yùn)算能力,單芯片上很少集成外部接口和功能部件。SoC更加重視單芯片的系統(tǒng)集成度,各種位寬微架構(gòu)、工作頻率、集成度的SoC都可以有,單芯片上包含多種外部接口和功能部件。
MCU與CPU的區(qū)別是處理能力小與大,偏向控制與偏向計(jì)算的區(qū)別。SoC處理能力可小可大,如果在MCU或者CPU芯片上集成更多的外部接口和功能部件,這個MCU或者CPU芯片就變成了SoC芯片。
一、指令集與微架構(gòu)的三個代表
基于上述原因,以及ARM CPU通常被嵌入到SoC芯片中,本文選擇了MCS-51作為MCU指令集的代表,x86既作為CISC指令集的代表也作為了CPU指令集的代表,ARM既作為RISC指令集的代表也作為了SoC指令集的代表,下文對它們做簡要介紹和展示。
1.MCS-51指令集和微架構(gòu)
MCS-51指令集是Intel公司1980年前后開發(fā)的單片機(jī)指令集,該指令集包含數(shù)據(jù)傳送、位操作、邏輯運(yùn)算及轉(zhuǎn)移、算術(shù)運(yùn)算、控制轉(zhuǎn)移5個大類共計(jì)111條指令(圖3)。該指令集對應(yīng)的單片機(jī)微架構(gòu)如圖4所示。
通過對該微架構(gòu)硬件的增、減、改變,Intel先后開發(fā)了兼容MCS-51指令集的系列單片機(jī)芯片,共計(jì)16個型號(圖3)。另外Intel也向許多公司開放MCS-51指令集和微架構(gòu),允許他們生產(chǎn)兼容MCS-51指令集的單片機(jī)。這些公司包括ATMEL、PHILIPS、NXP、OKI等,以及日本、臺灣和國內(nèi)的一些公司。因此,MCS-51單片機(jī)在全球應(yīng)用十分普及。MCS-51開辟了一個規(guī)模龐大、應(yīng)用甚廣的單片機(jī)大家族。
圖3.MCS-51單片機(jī)指令集(來源:無憂文檔)
圖4. MCS-51單片機(jī)內(nèi)部的微架構(gòu)(來源:百度百科)
圖5. MCS-51單片機(jī)家族(來源:參考資料5)
2. x86指令集和微架構(gòu)
1978年,Intel公司開發(fā)出了16位的CPU,并命名為i8086,同時還開發(fā)出與之相配合的數(shù)學(xué)協(xié)處理器i8087,這兩種芯片使用相互兼容的指令集,再加上i8087用于對數(shù)、指數(shù)和三角函數(shù)等數(shù)學(xué)計(jì)算的指令集,就形成了今天人們常說的x86指令集。隨后的40年間,Intel陸續(xù)研制出i80286、i80386、i80486、奔騰(Pentium)系列、酷睿(Core)系列等后續(xù)CPU型號。研制這些CPU芯片時,為了保持向前軟件兼容,Intel所有CPU繼續(xù)使用x86指令集,并根據(jù)CPU功能提升和性能增強(qiáng)的需要,增加了286、386、486、Pentium、Pentium Ⅱ等擴(kuò)展類指令?!靶氯昱f三年,修修補(bǔ)補(bǔ)又三年”,可以說x86指令集是與時俱進(jìn),不斷生長和變復(fù)雜的典范,因而x86指令集成了名副其實(shí)的復(fù)雜指令集(CISC)。
x86指令集包括數(shù)據(jù)傳送、邏輯運(yùn)算、移位運(yùn)算、程序控制、算術(shù)運(yùn)算、串操作、處理器控制、286擴(kuò)展、386擴(kuò)展、486擴(kuò)展、Pentium擴(kuò)展、Pentium Ⅱ擴(kuò)展12個大類共計(jì)190多條指令(圖7)。圖8分別是Intel Core和AMD K8的CPU微架構(gòu)。
Intel和AMD是全球最大的兩家x86指令集CPU芯片開發(fā)商。Intel多達(dá)上百個型號的CPU都屬于x86系列。另外,加上AMD多達(dá)80多個型號的兼容x86 CPU,x86指令集CPU芯片家族的陣容可謂是十分壯觀(圖10)。兩家公司的CPU芯片不斷迭代升級,相互競爭,型號品種繁多,形成了令世人矚目的CPU產(chǎn)品發(fā)展軌跡。
圖7. x86 CPU指令集(來源:參考資料1)
圖8. x86 CPU的兩種微架構(gòu)舉例(來源:參考資料3)
圖9. Intel和AMD開發(fā)的x86 CPU芯片型號圖譜(來源:網(wǎng)絡(luò)資料整理)
3. ARM指令集和微架構(gòu)
ARM公司成立于1990年,是全球領(lǐng)先的CPU IP(Intellectual Property)提供商,全世界超過95%的智能手機(jī)和平板電腦都采用ARM架構(gòu)處理器。ARM公司自己不設(shè)計(jì)和銷售CPU芯片,只向其他公司銷售和授權(quán)使用ARM架構(gòu)的系列CPU IP。ARM授權(quán)從高到低大體分為三種,包括架構(gòu)授權(quán)、內(nèi)核授權(quán)和使用授權(quán),本文只關(guān)心前兩種。架構(gòu)授權(quán)對設(shè)計(jì)團(tuán)隊(duì)的要求很高,許可費(fèi)用也很昂貴,只適合有實(shí)力的大公司,中小企業(yè)一般選擇購買內(nèi)核授權(quán)。
架構(gòu)授權(quán)(也稱為指令集授權(quán))是指用戶購買了架構(gòu)級的ARM處理器設(shè)計(jì)、制造的許可權(quán)后,可以從整個指令集和微架構(gòu)入手,對ARM架構(gòu)進(jìn)行改造,甚至可以對ARM指令集進(jìn)行裁減或擴(kuò)展,實(shí)現(xiàn)更適合自用、更高性能、更低功耗、更低成本的目的。擁有ARM架構(gòu)授權(quán)的公司包括高通、蘋果、三星、微軟、海思等。
內(nèi)核授權(quán)(也可稱為方案授權(quán))是指用戶可以將其所購買的ARM核心(IP核)應(yīng)用到自己設(shè)計(jì)的芯片中,但用戶不得對ARM核心進(jìn)行修改。擁有內(nèi)核授權(quán)的公司多如牛毛,國際上包括德州儀器、博通、飛思卡爾、富士通以及Calxeda等,國內(nèi)中小芯片設(shè)計(jì)公司也很多,不勝枚舉。
圖10展示了ARM指令集。ARM指令集包括跳轉(zhuǎn)指令、數(shù)據(jù)處理、乘加指令、PSR訪問、加載/存儲指令、數(shù)據(jù)交換、移位指令、協(xié)處理器8個大類共計(jì)50條指令(其中,ARM指令16條,Thumb指令18條,Thumb-2 16條)。加上15條控制偽指令合計(jì)65條指令。圖11展示了一款可內(nèi)核授權(quán)的ARM核心微架構(gòu),它的型號命名為ARM Cortex A9。
全球1500多家企業(yè)獲得了ARM公司授權(quán),可以研發(fā)和生產(chǎn)ARM架構(gòu)的處理器芯片和包括含ARM內(nèi)核的SoC芯片。圖12是全球采用ARM架構(gòu)處理器技術(shù)的用戶、工具商、合作伙伴的Logo圖譜。ARM CPU門派在移動通信領(lǐng)域一家獨(dú)大,并正在向其它領(lǐng)域滲透,包括物聯(lián)網(wǎng)、臺式電腦、服務(wù)器等,讓x86 CPU門派老大Intel公司十分不安。
圖10. ARM CPU指令集及功能描述(來源:免費(fèi)文檔網(wǎng))
圖11. ARM Cortex A9微架構(gòu)及單核接口(來源:參考資料11)
二、CPU芯片江湖的指令集門派
1. MCU類的指令集
MCU作為縮減版的CPU和SoC,它也有指令集和微架構(gòu),同樣是智能電子產(chǎn)品和系統(tǒng)的控制中心。因此,它可以作為CPU芯片江湖的一員,被寫入到這一部分來,讓讀者看看MCU指令集門派都有哪些種類。
這個門派下的指令集包括:Zilog公司的Z80指令集、Intel的MCS-51指令集、MicroChip的PIC指令集、ATMEL的AVR指令集、TI的MSP430指令集、Motorola的68K、ARM公司的ARM-Thumb等等。
2.CISC類的指令集
CISC類指令集也可稱為復(fù)雜指令集。CISC是復(fù)雜指令集計(jì)算機(jī)(Complex Instruction SetComputer)的英文縮寫。在CISC指令處理器中,程序的各條指令是按順序串行執(zhí)行的,每條指令中的各個操作也是按順序串行執(zhí)行的。順序執(zhí)行的優(yōu)點(diǎn)是控制簡單,但計(jì)算機(jī)各部分的利用率不高,執(zhí)行速度較慢。
這個門派下的指令集包括:Intel的x86指令集(x86、x86-64、IA-32、IA-64等)、AMD的兼容x86指令集(x86、AMD64等)、威盛VIA的兼容x86指令集(x86、AIS等)。
3.RISC類的指令集
RISC類指令集也可稱為精簡指令集。RISC是精簡指令集計(jì)算機(jī)(Reduced Instruction SetComputing)的英文縮寫。它是在CISC指令系統(tǒng)基礎(chǔ)上發(fā)展起來的,CISC各種指令的使用頻度相當(dāng)懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數(shù)的20%,但在程序中出現(xiàn)的頻度卻占80%。復(fù)雜指令系統(tǒng)必然增加微處理器的復(fù)雜性,并且指令解碼執(zhí)行過程復(fù)雜并且費(fèi)時,必然會降低計(jì)算機(jī)的速度。20世紀(jì)80年代誕生了RISC型CPU。相對于CISC型CPU,RISC型CPU不僅精簡了指令集,還采用了超標(biāo)量和超流水線結(jié)構(gòu),大大增加了并行處理能力。RISC指令集是高性能CPU的發(fā)展方向。RISC的指令格式統(tǒng)一,種類比較少,尋址方式也比復(fù)雜指令集少。當(dāng)然處理速度就提高了很多。
這個門派下的指令集包括:DEC公司的Alpha指令集、MIPS公司的MIPS指令集、Sun公司的SPARC指令集、IBM聯(lián)合Apple與Motorola開發(fā)的PowerPC指令集、IBM的POWER服務(wù)器CPU 指令集、ARM公司的ARM32和ARM64指令集、開源RISC-V指令集等。
4.EPIC類的指令集
EPIC類指令集也稱為精確并行指令集。EPIC是精確并行指令計(jì)算機(jī)(Explicitly ParallelInstruction Computers)的英文縮寫。EPIC是否是RISC和CISC體系的繼承者的爭論不少,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。EPIC體系設(shè)計(jì)的CPU,在相同的主機(jī)配置下,處理Windows的應(yīng)用軟件比基于Unix下的應(yīng)用軟件要好很多。
Intel采用EPIC技術(shù)的服務(wù)器CPU是安騰Itanium(開發(fā)代號Merced)。它是64位處理器,也是IA-64系列中的第一款。
圖13. 全球流行的CPU指令集的分類
三、實(shí)現(xiàn)CPU自主可控的夢想
發(fā)展自主可控的國產(chǎn)CPU,首先要解決指令集和微架構(gòu)的自主可控問題,其次是軟件生態(tài)和生產(chǎn)的問題。圖14列出了目前主要的國產(chǎn)CPU指令集及技術(shù)來源,這是我們發(fā)展自主可控國產(chǎn)CPU的基礎(chǔ),這些資源已得到業(yè)界的高度重視。希望政府能頂層規(guī)劃和統(tǒng)一協(xié)調(diào),加大資金支持力度,在業(yè)界共同努力下實(shí)現(xiàn)國產(chǎn)CPU自主可控的夢想。
圖14.主要的國產(chǎn)CPU指令集及技術(shù)來源(來源:由參考資料9整理)
如何實(shí)現(xiàn)我國CPU芯片自主可控,公認(rèn)途徑歸納起來有以下幾個方面,一是購買流行CPU架構(gòu)授權(quán),開發(fā)國產(chǎn)CPU產(chǎn)品;二是用好開源CPU指令集RISC-V,走國產(chǎn)CPU自強(qiáng)之路。三是用好已有可控CPU架構(gòu),加大投入和研發(fā)力度,補(bǔ)齊國產(chǎn)CPU短板。四是創(chuàng)立新的CPU架構(gòu),走自力更生的國產(chǎn)CPU發(fā)展之路。發(fā)展國產(chǎn)CPU,實(shí)現(xiàn)安全、自主和可控是最終目的,方法可以多樣化,不一定什么都要靠自己從零做起,即未必一定要創(chuàng)立新CPU門派。
1.購買流行CPU架構(gòu)授權(quán),開發(fā)國產(chǎn)CPU產(chǎn)品。
目前,國內(nèi)大部分國產(chǎn)MCU、CPU和SoC芯片研發(fā)都是走這個途徑。之前這條路子走的很順利,國內(nèi)芯片設(shè)計(jì)銷售額多年實(shí)現(xiàn)兩位數(shù)增長,2020年有望超過3800億元。大部分公司都以購買授權(quán)方式,在自研CPU芯片中采用國外流行的CPU架構(gòu),包括華為海思自研的多款SoC芯片,都是基于ARM架構(gòu)的CPU。中美科技戰(zhàn)以來,大家發(fā)現(xiàn)這是一種自主但不可控的CPU發(fā)展之路。
2.用好開源CPU指令集RISC-V,走國產(chǎn)CPU自強(qiáng)之路。
美國對我國芯片產(chǎn)業(yè)的打壓和圍堵,讓業(yè)界把發(fā)展自主可控國產(chǎn)CPU的希望寄托在了開源指令集RISC-V上來,這可能是目前希望最大的一條途徑。原因是RISC-V架構(gòu)已比較成熟,性能也比較優(yōu)異,已經(jīng)過許多商業(yè)化應(yīng)用驗(yàn)證。并且國內(nèi)已具有一定的人才和技術(shù)積累。人們認(rèn)為RISC-V最有希望改變當(dāng)前由ARM和x86主導(dǎo)CPU芯片江湖的局面,它將對ARM在消費(fèi)類、IoT等嵌入式CPU市場的優(yōu)勢地位造成巨大沖擊。RISC-V是國產(chǎn)自主可控CPU的曙光。RISC-V目前的唯一短板還是軟件生態(tài)不夠完善,需要業(yè)界同仁奮發(fā)努力。
3.用好已有可控CPU架構(gòu),加大投入和研發(fā)力度,補(bǔ)齊國產(chǎn)CPU短板。
國內(nèi)有些公司多年前陸續(xù)繼承了一些國外老舊CPU架構(gòu)的產(chǎn)權(quán),有些公司也獲得了國外較成熟CPU架構(gòu)永久授權(quán),也有些公司自創(chuàng)了CPU和GPU架構(gòu)。例如阿里平頭哥(收購中天微)、蘇州國芯、中晟宏芯、深圳中微電等。華為海思也獲得了ARM v8架構(gòu)的永久授權(quán),這些都是開發(fā)自主可控國產(chǎn)CPU的良好基礎(chǔ)。建議政府和企業(yè)加大投入和研發(fā)力度,在這些CPU架構(gòu)基礎(chǔ)上創(chuàng)新發(fā)展,不斷完善軟件生態(tài),抓住補(bǔ)短板和國產(chǎn)替代的良機(jī),實(shí)現(xiàn)國產(chǎn)CPU產(chǎn)品的迭代升級和技術(shù)進(jìn)步。
4.創(chuàng)立新的CPU架構(gòu),走自力更生的國產(chǎn)CPU發(fā)展之路。
這就相當(dāng)于要設(shè)計(jì)一款新的CPU,建立新的CPU指令集和微架構(gòu)。這是一條最困難的途徑。最困難體現(xiàn)兩方面,一是設(shè)計(jì)的新款CPU能否具備性能和功能的先進(jìn)性、高效性和經(jīng)濟(jì)性;二是如何能快速搭建好新款CPU的軟件生態(tài),包括匯編和高級語言編程工具、系統(tǒng)開發(fā)驗(yàn)證工具等。軟件生態(tài)建設(shè)需要時間,需要市場,也需要研發(fā)團(tuán)隊(duì)和用戶的通力協(xié)作。而且,創(chuàng)立一個CPU行業(yè)門派后,要讓這個門派發(fā)揚(yáng)光大并不是一件容易的事情。因此,許多人對這條途徑不太看好。
結(jié)語:1.指令集是軟件和硬件的紐帶,電子產(chǎn)品中的軟件不論是高級語言還是匯編,最后都是轉(zhuǎn)換為一條條的指令,指揮硬件各部件協(xié)調(diào)工作,硬件是為完成指令的任務(wù)而生的。2.指令集是軟件和硬件工程師共同遵從的法條,只有遵守了這個法條,開發(fā)的軟件才能在不同型號的硬件上兼容運(yùn)行。3.指令集是CPU芯片江湖門派的標(biāo)志,公司名和產(chǎn)品名不過是它的代名詞罷了。只有指令集相同,產(chǎn)品才能兼容互換。只有大家都認(rèn)可這個指令集,都愿意投入到這個門派之下,不斷完善軟件生態(tài),才能使用戶越來越多,門派越來越興旺。4.發(fā)展自主可控的國產(chǎn)CPU,最困難的是搭建CPU的軟件生態(tài)。如果把CPU指令集看作門派標(biāo)志的話,搭建軟件生態(tài)就是營造門派氛圍,擴(kuò)大門派影響力。
原文標(biāo)題:指令集——CPU芯片江湖中的門派標(biāo)志
文章出處:【微信公眾號:中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229842 -
芯片
+關(guān)注
關(guān)注
455文章
50816瀏覽量
423627 -
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211765
原文標(biāo)題:指令集——CPU芯片江湖中的門派標(biāo)志
文章出處:【微信號:bdtdsj,微信公眾號:中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論