一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解指令集和微架構(gòu)

SAE International ? 來(lái)源:SAE International ? 作者:SAE International ? 2022-04-18 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

??

1

指令集

建設(shè)一棟大樓的基本元素有:水泥、磚頭、鋼材等原材料,但不同的構(gòu)造過(guò)程則會(huì)呈現(xiàn)不同的建筑形式,其中建造圖紙起到了很大的指導(dǎo)作用。

同樣, CPU從表象上看雖然形式很多,但基本電路都由晶體管構(gòu)成,例如常見(jiàn)的MOS管。

76fd929a-bee3-11ec-9e50-dac502259ad0.png

通過(guò)晶體管等基本電子元器件的組合可構(gòu)成基本的邏輯電路:如與門(mén)、非門(mén)、與非門(mén)等。

774ae11c-bee3-11ec-9e50-dac502259ad0.png

這些基本邏輯電路通過(guò)不同的邏輯組合可分別完成不同的功能,就好比“把大象放進(jìn)冰箱的段子”,首先打開(kāi)冰箱門(mén)-->然后把大象放進(jìn)去-->最后關(guān)上冰箱門(mén)。通過(guò)這些邏輯組合使動(dòng)作具有了意義,而這些實(shí)現(xiàn)特定功能的邏輯組合集合就是指令集,如基本的加減運(yùn)算。 指令集是一個(gè)標(biāo)準(zhǔn),其會(huì)隨著需求變化不斷添加新的指令或優(yōu)化。同樣,指令集發(fā)生變更后,工程師在設(shè)計(jì)CPU時(shí)也需要在硬件電路上增加對(duì)應(yīng)的電路模塊來(lái)支持變更的指令,配套的編譯器也會(huì)隨之升級(jí)。我們?cè)谕?1、STM32單片機(jī)時(shí)需要相應(yīng)的編譯器來(lái)實(shí)現(xiàn)相應(yīng)程序開(kāi)發(fā)就是這個(gè)道理。而在任何一款遵循同一指令集架構(gòu)實(shí)現(xiàn)的處理器上,開(kāi)發(fā)的應(yīng)用無(wú)須做任何修改便可以運(yùn)行。

2

指令集與機(jī)器碼的橋梁-編譯器

無(wú)論處于上層的應(yīng)用程序多么酷炫吊炸天,其在處理器上執(zhí)行就必須被翻譯成“機(jī)器語(yǔ)言”,然后通過(guò)0或1的排列組合去操作硬件實(shí)現(xiàn)功能。翻譯官這個(gè)角色就是編譯器的活,它將軟件與硬件世界連接了起來(lái)。編譯器在這個(gè)過(guò)程中,要經(jīng)過(guò)編譯、匯編、鏈接等幾個(gè)步驟, 最后生成"可執(zhí)行文件",可執(zhí)行文件中保存的是二進(jìn)制機(jī)器碼,這串機(jī)器碼可以直接被CPU讀取和執(zhí)行。

77861ae8-bee3-11ec-9e50-dac502259ad0.png

上圖表示在指令寄存器中正在執(zhí)行的一段為00101110機(jī)器碼,左四位0010為指令集LOAD_A(匯編代碼,將數(shù)據(jù)放到寄存器A),右四位1110(RAM地址,就是要去取這個(gè)地址上的8bit 機(jī)器碼數(shù)據(jù)放到寄存器A)。注意到0010這4bit數(shù)據(jù)先被放入一個(gè)門(mén)電路中,輸出結(jié)果就是1bit(拉高電壓),去控制內(nèi)存讀取這一條wire。這個(gè)圖只突出顯示了開(kāi)啟內(nèi)存讀取一條wire的原理,沒(méi)有顯示在這一步指令中所有門(mén)電路原理圖。

3

為啥根據(jù)指令集設(shè)計(jì)CPU而不是

先設(shè)計(jì)CPU再指令集

設(shè)計(jì)一款CPU的過(guò)程就好比建房子,我們建房子肯定先要以一定的建設(shè)標(biāo)準(zhǔn)和規(guī)范為前提,依據(jù)一定的工程標(biāo)準(zhǔn)不僅使建設(shè)過(guò)程有序進(jìn)行更重要的是最終能被驗(yàn)收和被大家所接受。這也類似于我們軟件開(kāi)發(fā)流程,必須先有需求再有開(kāi)發(fā),否則開(kāi)發(fā)的軟件都沒(méi)有應(yīng)用的場(chǎng)景。因此憑空設(shè)計(jì)一款CPU,首先會(huì)不會(huì)被廠商用另說(shuō),很多相應(yīng)的配套也難以支持更何談讓軟件開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和推廣了。所以指令集作為一種標(biāo)準(zhǔn)規(guī)范,用于規(guī)范芯片設(shè)計(jì)工程師及編譯器開(kāi)發(fā)工程師。

77abe39a-bee3-11ec-9e50-dac502259ad0.png

因?yàn)樾酒c集成開(kāi)發(fā)環(huán)境-IDE都遵循相同的指令集標(biāo)準(zhǔn),所以高級(jí)語(yǔ)言編寫(xiě)的程序經(jīng)指定編譯器編譯后能直接運(yùn)行在對(duì)應(yīng)的CPU上,反之則不能運(yùn)行。 所以,CPU在設(shè)計(jì)之前,就需要先設(shè)計(jì)一套指令集或者說(shuō)使用現(xiàn)成的指令集(如ARM、X86指令集)并在硬件電路上實(shí)現(xiàn)這些指令。CPU設(shè)計(jì)好后,還需要配套的編譯器,編譯器也需要參考這個(gè)指令集標(biāo)準(zhǔn),將我們編寫(xiě)的C程序、C++等程序編譯成CPU硬件電路支持的加減乘除、與或非等指令,我們的程序才能在CPU上運(yùn)行。

4

指令集與微架構(gòu)

微架構(gòu)是將指定指令集在處理器中如何執(zhí)行實(shí)現(xiàn)的方法,同現(xiàn)實(shí)生活中解決相同問(wèn)題有很多途徑的原理一樣:同一指令集可以有不同的微架構(gòu),因同一指令可以通過(guò)不同的電路單元或組合來(lái)實(shí)現(xiàn)。例如英特爾基于x86指令集的微架構(gòu)就很多代:

77c1e898-bee3-11ec-9e50-dac502259ad0.png

再比如ARM M系列處理器基于Armv6-M指令集所構(gòu)建的M0/M1等微架構(gòu):

77de3840-bee3-11ec-9e50-dac502259ad0.png

我們?cè)佑|的STM32F4系列單片機(jī)就是基于Armv7-M指令集的ARM Cortex-M4內(nèi)核:

77f1aa06-bee3-11ec-9e50-dac502259ad0.png

不同的微架構(gòu)有著不同的用途和性能,總體來(lái)說(shuō)一大堆的運(yùn)算單元、邏輯單元、寄存器等在各種總線和控制線的連接下組成了CPU的微架構(gòu)。因此處理器架構(gòu)是微架構(gòu)和指令集架構(gòu)的結(jié)合,指令集是處理器的語(yǔ)言,而微架構(gòu)是具體的實(shí)現(xiàn)。

5

指令集分類

目前市面上存在兩種指令集類型:

Reduced Instruction Set Computing (RISC) 精簡(jiǎn)指令集:比如ARM、MIPS和大火的RISC-V等。

Complex Instruction Set Computing (CISC) 復(fù)雜指令集:比如Intel、AMD的X86等。

其中x86架構(gòu)主要占據(jù)傳統(tǒng)PC市場(chǎng),善于處理大數(shù)據(jù);ARM占據(jù)移動(dòng)市場(chǎng),善于處理快數(shù)據(jù);而RISC-V則依靠自己精簡(jiǎn)的優(yōu)勢(shì)在數(shù)據(jù)傳輸領(lǐng)域占據(jù)優(yōu)勢(shì)。除此之外,其他指令集架構(gòu)也占據(jù)部分市場(chǎng)如MIPS、Power等。

78184922-bee3-11ec-9e50-dac502259ad0.jpg

無(wú)論是CISC還是RISC,除了努力鞏固自己的性能優(yōu)勢(shì),加強(qiáng)產(chǎn)品的性能外,還需要汲取雙方產(chǎn)品的特色,取長(zhǎng)補(bǔ)短,期望有所突破,例如英特爾逐漸開(kāi)始擁抱RISC-V。不過(guò)無(wú)論如何,未來(lái)的CPU肯定在朝著高性能、低功耗的方向發(fā)展。誰(shuí)能在低功耗下提供高性能,誰(shuí)就有希望獲得成功。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指令集
    +關(guān)注

    關(guān)注

    0

    文章

    228

    瀏覽量

    23817
  • 微架構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    7197

原文標(biāo)題:一文了解指令集和微架構(gòu)

文章出處:【微信號(hào):SAEINTL,微信公眾號(hào):SAE International】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RISC-V核低功耗MCU指令集架構(gòu)(ISA)特點(diǎn)

    自由使用、修改底層指令集,降低芯片設(shè)計(jì)成本并加速定制化開(kāi)發(fā)?。 靈活擴(kuò)展?:支持基礎(chǔ)指令集(如RV32I/RV64I)與可選擴(kuò)展模塊(如浮點(diǎn)運(yùn)算、向量加速)的組合,開(kāi)發(fā)者可根據(jù)低功耗需求裁剪冗余功能?。 二、?模塊化與精簡(jiǎn)設(shè)計(jì)? 核心
    的頭像 發(fā)表于 04-23 10:01 ?480次閱讀

    TMS320C54x DSP助記指令集參考第2卷

    電子發(fā)燒友網(wǎng)站提供《TMS320C54x DSP助記指令集參考第2卷.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 16:58 ?0次下載
    TMS320C54x DSP助記<b class='flag-5'>指令集</b>參考<b class='flag-5'>集</b>第2卷

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架構(gòu)。而RISC-V目標(biāo)就是“成為一種完全開(kāi)放的指令集架構(gòu),可被任何學(xué)術(shù)機(jī)構(gòu)或商業(yè)組織自由使用”。 RISC-V
    發(fā)表于 11-30 23:30

    RISC-V的指令集位寬的幾點(diǎn)學(xué)習(xí)心得

    ,實(shí)際上,RISC-V指令集的位寬具有更大的靈活性。 RISC-V指令集的位寬多樣性 RISC-V是一種基于精簡(jiǎn)指令集(RISC)的開(kāi)放式指令集架構(gòu)
    發(fā)表于 10-31 22:05

    指令集架構(gòu)架構(gòu)的區(qū)別

    指令集架構(gòu)(Instruction Set Architecture,ISA)與架構(gòu)(Microarchitecture)是計(jì)算機(jī)體系結(jié)構(gòu)中的兩個(gè)重要概念,它們?cè)谔幚砥鞯脑O(shè)計(jì)和實(shí)現(xiàn)中
    的頭像 發(fā)表于 10-05 15:10 ?1199次閱讀

    簡(jiǎn)述微處理器的指令集架構(gòu)

    微處理器的指令集架構(gòu)(Instruction Set Architecture,ISA)是計(jì)算機(jī)體系結(jié)構(gòu)中的核心組成部分,它定義了計(jì)算機(jī)能夠執(zhí)行的指令集合、數(shù)據(jù)類型、寄存器、內(nèi)存訪問(wèn)方式等,是連接
    的頭像 發(fā)表于 10-05 14:59 ?1173次閱讀

    微處理器的指令集有哪些

    微處理器的指令集是微處理器設(shè)計(jì)和功能實(shí)現(xiàn)的基礎(chǔ),它決定了微處理器能夠執(zhí)行哪些操作以及這些操作如何被組織和執(zhí)行。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,微處理器的指令集也在不斷更新和擴(kuò)展。
    的頭像 發(fā)表于 10-05 14:58 ?893次閱讀

    RISC-V和arm指令集的對(duì)比分析

    RISC-V和ARM指令集是兩種不同的計(jì)算機(jī)指令集架構(gòu),它們?cè)诙鄠€(gè)方面存在顯著的差異。以下是對(duì)這兩種指令集的詳細(xì)對(duì)比分析: 一、設(shè)計(jì)理念 RISC-V :RISC-V的設(shè)計(jì)理念是簡(jiǎn)化
    發(fā)表于 09-28 11:05

    國(guó)產(chǎn)主流8位單片機(jī)-RISC架構(gòu)精簡(jiǎn)指令集單片機(jī)

    在當(dāng)前的電子產(chǎn)品開(kāi)發(fā)領(lǐng)域,8位單片機(jī)仍然占據(jù)著重要的地位,尤其是在嵌入式系統(tǒng)和低功耗應(yīng)用中。RISC(簡(jiǎn)化指令集計(jì)算)架構(gòu)以其高效性和簡(jiǎn)單性,成為了國(guó)產(chǎn)主流8位單片機(jī)。RISC架構(gòu)通過(guò)減少指令
    發(fā)表于 09-27 10:15

    ARM處理器的指令集包括哪些

    ARM處理器的指令集是一個(gè)龐大而復(fù)雜的系統(tǒng),它涵蓋了多種類型的指令,用于實(shí)現(xiàn)數(shù)據(jù)處理、程序控制、內(nèi)存訪問(wèn)等多種功能。
    的頭像 發(fā)表于 09-10 11:15 ?1550次閱讀

    RISC-V指令集的特點(diǎn)總結(jié)

    開(kāi)源 定義:RISC-V 是完全開(kāi)源的指令集架構(gòu)(ISA),意味著任何人都可以查看、使用、修改以及分發(fā)其設(shè)計(jì),而無(wú)需支付版權(quán)費(fèi)用。 優(yōu)勢(shì):這種開(kāi)源特性促進(jìn)了全球性的創(chuàng)新和合作。 社區(qū)化 定義
    發(fā)表于 08-30 22:05

    RISCV的主流指令集有哪些?

    如題,就像X86中指令集有MMX,SSE,SSE2等,就像ARM指令集有ARM和Thumb等,但是總是感覺(jué)RISCV特別亂,可能是廠商比較多的緣故吧,我知道的有WCH的青稞RISC-V,玄鐵
    發(fā)表于 08-29 13:49

    復(fù)雜指令集和精簡(jiǎn)指令集有什么區(qū)別

    的兩種主要指令集架構(gòu),它們?cè)诙鄠€(gè)方面存在顯著的差異。以下是對(duì)這兩種指令集架構(gòu)的詳細(xì)比較,涵蓋設(shè)計(jì)理念、指令復(fù)雜性、尋址方式、實(shí)現(xiàn)方式、性能特
    的頭像 發(fā)表于 08-22 11:00 ?5780次閱讀

    微處理器的指令集架構(gòu)介紹

    微處理器的指令集架構(gòu)(Instruction Set Architecture,ISA)是計(jì)算機(jī)體系結(jié)構(gòu)中至關(guān)重要的部分,它定義了微處理器能夠執(zhí)行的操作和指令的集合,以及這些指令如何被
    的頭像 發(fā)表于 08-22 10:53 ?2447次閱讀

    CISC(復(fù)雜指令集)與RISC(精簡(jiǎn)指令集)的區(qū)別  

    Instruction Set Computers,復(fù)雜指令集計(jì)算)和RISC(Reduced Instruction Set Computers)是兩大類 主流的CPU指令集類型,其中CISC以Intel,AMD
    發(fā)表于 07-30 17:21