色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

RISC和CISC的區(qū)別 ARM架構(gòu)簡述

454398 ? 來源:博客園 ? 作者:濟南小老虎 ? 2020-09-30 16:07 ? 次閱讀

基本原理(記住1Byte=8bit):

電子計算機本質(zhì)上是通過給三極管 (或MOS管用半導體材料如硅和硒制成的) 的基極輸送不同的電壓(大于或小于0.7伏特,再講就深了,今天先不講了),進而控制三極管對電容進行充電和放電,實際是通過控制電子的流動(所以叫做電子計算機,個人理解),抽象出0和1的表示。圖1中紅線標出的內(nèi)存,每行可以理解為8個電容,由內(nèi)存控制器控制充放電以及讀取電壓,充電狀態(tài)(與地電壓(電勢差)大于3.3V)表示1,放電狀態(tài)(電壓小于1.8V)表示0,紅線部分的寬度永遠是8bit,不會變。有專門的的電路對這些電容的充放電狀態(tài)進行讀取,比如讀到了某Byte的8個電容是00000110,就表示十進制數(shù)字6,(當然也有可能理解為96,比如某些摩托羅拉芯片下,大尾或小尾從左還是從右開始算的區(qū)別,超出本文討論范圍)

驅(qū)動:

簡單來說,CPU與內(nèi)存之間通過若干根連線(地址、控制、數(shù)據(jù)總線)來交互信息,比如把0x00F800C這個內(nèi)存地址的第2個BIT位寫為1,就會觸發(fā)顯卡讀取某些內(nèi)存地址里的內(nèi)容并顯示到顯示器上。(實際上顯示設備和內(nèi)存之間也有連線,實現(xiàn)DMA操作,深了今天不講)。當然為什么寫第2個BIT位就能觸發(fā)某種動作,這是人為規(guī)定的,叫做架構(gòu)規(guī)范,架構(gòu)后面通過一系列復雜的電路來實現(xiàn)這個規(guī)定,比如intelx86規(guī)定內(nèi)存地址0x00F800C的第2個BIT位寫1可以觸發(fā)顯示動作,而ARMv8架構(gòu)下,雖然同樣都是觸發(fā)顯示動作,但不一定是操作這個位。這就是兩種架構(gòu)的差異。如果你作為程序員,編寫Intelx86架構(gòu)下的顯卡驅(qū)動程序,實際是在編寫程序來操作0x00F800C地址Byte的第2個BIT位。這個特定位是通過將基地址+偏移寫進芯片的datasheet來告知芯片應用者(公司)的。比如這個例子中,0x00F8000是基地址,而C是偏移,用0x00F8000+0x0C來表示實際地址。這是一個極其聰明和有用的規(guī)定,這樣做的好處,后面章節(jié)會詳細描述。

64位與32位:是指圖1中的綠線和黃線標出的部分,在32位CPU模式下,某個地址是十六進制表示為00F8000C,這里每個數(shù)字包含4個二進制bite位,共32位。而64位狀態(tài)下,這個數(shù)字實際是 0000000000F8000C,有64個bit位。在CPU內(nèi)部有寄存器,intel 80x86架構(gòu)的寄存器名稱是ax,bx,cx等,而ARM架構(gòu)下是r0,r1,r2,r3,r4,r5等,寄存器的寬度也分32位和64位。在ARMv7以及以前的架構(gòu)中,只有32位。在2013年ARM推出64位架構(gòu)ARMv8,寄存器是64位寬,相應的寄存器名稱為x0,x1,x2,x3等。在C語言中,64位和32位的差異體現(xiàn)在sizeof(指針)上,實際代表的是內(nèi)存地址的寬度,注意是圖1中綠線標出的寬度,不是紅線,紅線永遠是8bit寬,不要混淆。

指令集:

CPU讀取硬盤或FLASH的上物理位置從0到4K之間的一段二進制流,這段流稱為程序,這段程序的大小就是4K,CPU把這段程序?qū)懭雰?nèi)存地址0x00000000到0x00001000 (這里0x00001000=4096=4K),之后,CPU內(nèi)的PC寄存器內(nèi)寫入0x00000000,表示從內(nèi)存地址0處開始執(zhí)行機器指令。本質(zhì)是讀出該地址后4個地址(指令長度規(guī)定,指令周期涉及CPU主頻,再講就深了,后面再開貼)中共4Byte長度的二進制數(shù)字,比如讀到了52800e01,這個數(shù)字實際上對應的是一套電路編號,執(zhí)行的操作是add r0,r1,意思是將r0和r1中存放的數(shù)字相加,把結(jié)果寫進r0,這個過程實際上是調(diào)用編號為52800e01的電路來完成的,而這種不同編號的電路的集合,就是所謂的指令集。Intel CPU用的是復雜指令集CISC(Complex Instruction Set Computer),前面說的add r0,r1,這是一個CPU指令,實際對應一套復雜的電路實現(xiàn)(包含若干電阻電容MOS等)。intel80x86系統(tǒng)有300條指令,就表示至少有300套不同的電路來實現(xiàn)這300個功能。 而ARM采用的是精簡指令集RISC(Reduced Instruction Set Computer),有100條指令,實際對應100套不同的電路裝置來實現(xiàn)這100個功能。我們用一個簡單的C語言函數(shù)來剖析RISC和CISC的區(qū)別:

int test_mul(void)

{

return 6*8;

}

這個函數(shù)算出6乘以8,返回結(jié)果,我們來看看實際執(zhí)行時,CISC和RISC的差別(此處為了簡潔明了的闡述我們的問題,實際過程比這個復雜,我們提綱挈領(lǐng),再講就深了,后面有空再開貼)

(圖2

從圖中可以看出,同樣是實現(xiàn)6乘以8的功能,RISC用加法來實現(xiàn),把8連續(xù)加了6次,也就是說調(diào)用了6次add電路來實現(xiàn)的,而CISC直接調(diào)用乘法電路,實現(xiàn)了6*8,你可以粗淺地理解為RISC很精簡,沒有乘法電路。當然,隨著CPU技術(shù)的發(fā)展,RISC和CISC一直在互相學習,取長補短慢慢融合了,目前界限已沒有那么明顯。從例子可以看出,CISC程序編碼簡單。而RISC程序編碼相對復雜,因為電路種類較少,實現(xiàn)同樣的功能需要用僅有的電路來變通實現(xiàn)。C語言編譯器和操作系統(tǒng)共同作用,屏蔽了這種差異中的大部分內(nèi)容,使得不同芯片環(huán)境下,實現(xiàn)相同功能的代碼變得大同小異(記住是大同小異,實際還是有差異)。

理解了RISC和CISC,我們再來談談ARM。在單片機時代,有很多設計以及制造芯片的公司,比如飛利浦,飛思卡爾,意法半導體,ARM,恩智浦等公司,當然,領(lǐng)頭羊還是Intel.這些公司中ARM比較獨特,他依托牛津劍橋科研實力,不做具體的芯片,只設計指令集(電路),這些人很聰明,他們深知,市面上存在多種芯片,但實現(xiàn)原理都是大同小異,所以他們專注于研發(fā)各種科學且合理的指令電路的設計,并將自己的設計形成了規(guī)范,這個規(guī)范就是ARMvX架構(gòu),從8位時代的ARMv1,到32位的ARMv7,再到64位的ARMv8又叫ARM64,這些不同的架構(gòu)規(guī)范,后面對應的一整套RISC指令集,也就是電路圖,ARM公司的商業(yè)模式是出售指令集授權(quán)。比如ARM公司將ARMv4的指令集(電路圖)工藝以及實現(xiàn)樣片等打包授權(quán)給賣三星公司,三星拿到的是ARMv3的核心架構(gòu)設計圖紙,里面包含了RISC 指令集的實現(xiàn)電路圖,三星在這個核架構(gòu)的基礎上添加自己的外設,比如I2C模塊及引腳、GPU顯示增強模塊及引腳、汽車內(nèi)網(wǎng)絡CAN模塊及引腳,AI人工智能計算模塊等,將CPU核以及這些外設模塊集成到一塊芯片中,命名為ARM7-S3C44B0X芯片,另一款基于ARMv5架構(gòu)生產(chǎn)出的芯片產(chǎn)品命名為S5P4418-ARM9等,投放市場出售。

至此,你應該明白了ARM,ARMv7以及ARM7的概念了,ARMv7是架構(gòu)名,ARM7是基于ARMv3架構(gòu)生產(chǎn)的一個芯片的產(chǎn)品名稱。到ARM11芯片之后,ARM公司更改了芯片的命名規(guī)則,由老的ARMx改為 Cortex系列,簡言之:

Cortex-M系列:M-Profile,即"Microcontroller" -Profile,側(cè)重微控制器單片機方面的場合。

Cortex-R系列:R-Profile,即"Real-Time"-Profile,側(cè)重于實時系統(tǒng)的場合。

Cortex-A系列: A-Profile,即“Application”-Profile,側(cè)重于應用功能的場合。

比如我司生產(chǎn)的Hi3798mv200芯片,大的架構(gòu)基于ARMv8(又叫ARM64)的,而ARMv8中又有Cortex A53分支,準確表達應該是:華為Hi3798mv200是基于ARMv8的Cortex-A53系列的一款芯片。下面是從wiki百科扣的圖,從中可以窺出ARM家族的架構(gòu)和產(chǎn)品系列的一斑。

基于統(tǒng)一標準的ARMvX架構(gòu)標準制造出的芯片,好處非常多,生產(chǎn)芯片的目的是顯然是為了運行應用程序。一個典型的場景是linux操作系統(tǒng)的應用,華為和三星生產(chǎn)了兩款不同的cortex A53芯片,內(nèi)核架構(gòu)是相同的,不同的是外設基地址,請參考前面“驅(qū)動”章節(jié)的描述。Linux操作系統(tǒng)移植到華為和三星的這兩款芯片上,只需要修改相關(guān)外設所對應的的頭文件中的基地址就可完成大部分功能的移植(注意是大部分,不是全部),當然這依賴于linux開源系統(tǒng)優(yōu)秀的設計。基于linux以及android系統(tǒng)之上的應用,也實現(xiàn)了統(tǒng)一,基本不會出現(xiàn)一個app既要開發(fā)基于三星芯片的版本,又要開發(fā)基于華為芯片的另外一個版本的情況,從而推進了移動互聯(lián)網(wǎng)生態(tài)鏈的大發(fā)展(請對比考慮基于X86 linux和基于armv8 linux的確是需要開發(fā)兩套不同的APP版本的情況),ARM統(tǒng)一架構(gòu)的好處是顯而易見的。Intel顯然已經(jīng)意識到這種優(yōu)勢,自己也買了ARM的授權(quán),推出相應的“ARM核”芯片產(chǎn)品。

劃重點,有助于理解,試想這樣一個場景:有四款cpu,分別是1.intel x86_64,2.三星Cortex a57,3.華為Cortex a53,4.博通bcm2837,這4款cpu運行的都是64位linux 4.0,現(xiàn)在有個app要上市,請問這個app需要上架幾個不同版本?答案是兩個,intelx86一個,其他三個同一個。?為什么是兩個?根本原因是前面所說的指令集和驅(qū)動。

最后,再來談談我司推出的ARM芯片服務器,從本質(zhì)上來看,我認為這種服務器在功耗方面與Intel x86系列差別不大,這是數(shù)字電路的原理使然,VOH和VOL(請百度)的邏輯電平是一樣的,差別在于電路工藝以及散熱等系統(tǒng)的設計。 我個人粗淺地認為,ARM服務器的優(yōu)勢有兩點:

1.生態(tài)優(yōu)勢,主要是基于ARM linux 之上的應用產(chǎn)業(yè)鏈,前文已有闡述。

2.開源優(yōu)勢,因為ARM的生態(tài)鏈上公司很多,各個公司在商業(yè)實踐過程中會產(chǎn)生各種新的改良建議和想法,ARM架構(gòu)集中了太多的智慧,而Intel實際是在單打獨斗。
編輯:hfy

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

    關(guān)注

    142

    文章

    3611

    瀏覽量

    121878
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10855

    瀏覽量

    211606
  • 服務器
    +關(guān)注

    關(guān)注

    12

    文章

    9129

    瀏覽量

    85344
  • ARM芯片
    +關(guān)注

    關(guān)注

    1

    文章

    126

    瀏覽量

    21467
  • 電子計算機
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    8153
收藏 人收藏

    評論

    相關(guān)推薦

    RISC-V入門:模塊化開放式的ISA CISCRISC代碼區(qū)別

    本文是RISC-V基礎知識的入門篇。介紹了開放式架構(gòu)理念,模塊化ISA的技術(shù)描述,以及一些商業(yè)RISC-V微處理器實現(xiàn)。 RISC-V開放式指令集
    發(fā)表于 07-06 14:52 ?1065次閱讀

    CISC(復雜指令集)與RISC(精簡指令集)的區(qū)別  

    RISC(Reduced Instruction Set Computer)和CISC(complex instruction set computer)是當前CPU的兩種架構(gòu)。 它們的區(qū)別
    發(fā)表于 07-30 17:21

    什么是RISC-V?以及RISC-V和ARM、X86的區(qū)別

    -V指令集架構(gòu),為學生和研究人員提供一個更加友好和易于理解的指令集,以便他們更好地學習和研究計算機處理器的設計和開發(fā)。 RISC-V與ARM、X86指令集架構(gòu)
    發(fā)表于 11-16 16:14

    ARM Intel RISC CISC 單片機 精髓理解

    ARM intel ADM首先是架構(gòu),Intel是X86架構(gòu),用的CISC 復雜指令集而ARM(Advanced
    發(fā)表于 12-05 15:48

    RISCCISC有什么區(qū)別

    RISC vs CISC有什么區(qū)別
    發(fā)表于 04-02 06:27

    ARMRISC-V架構(gòu)區(qū)別是什么?

    、 Cortex-M處理器等。 ARM架構(gòu),更主要的是ARM指令集系統(tǒng)。不同于x86架構(gòu)的復雜指令集(CISC
    發(fā)表于 04-25 09:13

    ARMARM的架構(gòu)ARM架構(gòu)區(qū)別

    目錄文章目錄目錄ARMARM 的架構(gòu)x86 架構(gòu)ARM 架構(gòu)區(qū)別ARM 的技術(shù)實現(xiàn)ARMA
    發(fā)表于 07-16 06:43

    請問ARMRISC-V架構(gòu)區(qū)別是什么?

    請問ARMRISC-V架構(gòu)區(qū)別是什么?
    發(fā)表于 10-28 08:19

    精簡指令集架構(gòu)RISC與復雜指令集架構(gòu)CISC有何區(qū)別

    精簡指令集架構(gòu)RISC是什么?復雜指令集架構(gòu)CISC又是什么?精簡指令集架構(gòu)RISC與復雜指令集
    發(fā)表于 12-23 10:02

    RISC-V開源架構(gòu)ARM架構(gòu)什么區(qū)別

    很多公司覺得ARM收費太高,決定一起搞RISC-V架構(gòu),是不是這種開源的是不是不收費的;那和ARM有啥區(qū)別,能發(fā)展起來嗎
    發(fā)表于 10-30 06:38

    Taking the RISC Out of CISC

    已經(jīng)有一個模糊的定義之間的RISC(精簡指令集計算機)和CISC(復雜指令集計算)架構(gòu)的地步,在許多情況下,條款幾乎是毫無意義的。許多現(xiàn)代的RISC處理器比
    發(fā)表于 06-12 10:01 ?5次下載
    Taking the <b class='flag-5'>RISC</b> Out of <b class='flag-5'>CISC</b>

    簡述risccisc區(qū)別

     我們經(jīng)常談論有關(guān)“PC”與“Macintosh”的話題,但是又有多少人知道以Intel公司X86為核心的PC系列正是基于CISC體系結(jié)構(gòu),而 Apple公司的Macintosh則是基于RISC體系結(jié)構(gòu),CISC
    發(fā)表于 12-19 11:19 ?2.2w次閱讀

    RISCCISC架構(gòu)有什么區(qū)別

    CISC(復雜指令集計算機)和RISC(精簡指令集計算機)是當前CPU的兩種架構(gòu)。它們的區(qū)別在于不同的CPU設計理念和方法。早期的CPU全部是CIS
    的頭像 發(fā)表于 02-07 16:05 ?1.9w次閱讀

    X86架構(gòu)Arm架構(gòu)區(qū)別

    X86架構(gòu)ARM架構(gòu)是主流的兩種CPU架構(gòu),X86架構(gòu)的CPU是PC服務器行業(yè)的老大,ARM
    的頭像 發(fā)表于 06-16 12:50 ?2.4w次閱讀
    X86<b class='flag-5'>架構(gòu)</b>與<b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b>的<b class='flag-5'>區(qū)別</b>

    ARM處理器和CISC處理器的區(qū)別

    ARM處理器和CISC(復雜指令集計算機)處理器在多個方面存在顯著的區(qū)別。這些區(qū)別主要體現(xiàn)在架構(gòu)原理、性能與功耗、設計目標、應用領(lǐng)域以及市場
    的頭像 發(fā)表于 09-10 11:10 ?449次閱讀
    主站蜘蛛池模板: 久久久无码精品亚洲A片软件| 中文日产无乱码AV在线观| 国产人A片777777久久| 偷尝禁果H1V1幸运的山熊| 国产99对白在线播放| 手机看片国产日韩欧美| 国产精品点击进入在线影院高清| 玩50岁四川熟女大白屁股直播| 国产黄A片在线观看永久免费麻豆| 忘忧草研究所 麻豆| 国产品无码一区二区三区在线| 亚洲VA天堂VA欧美VA在线| 花蝴蝶高清影视视频在线播放| 亚洲一区精品在线| 久久亚洲AV成人无码动态图| 13小箩利洗澡无码视频APP| 男人日女人的b| 白人大战34厘米黑人BD| 色偷偷男人的天堂a v| 国产精品久久人妻拍拍水牛影视| 亚洲AV色香蕉一区二区三区| 精品无码久久久久久久动漫 | 97se se| 欧美jizz19性欧美| 成人免费小视频| 午夜性伦鲁啊鲁免费视频| 金瓶梅 快播| 中文国产成人精品久久免费| 暖暖高清视频免费| 福利一区国产| 亚洲另类国产综合在线| 成 人 动漫3d 在线看| 亚洲2017天堂色无码| 久久是热这里只有精品| jiapanese50欧美熟妇| 成人在线免费视频播放| 偷尝禁果H1V1幸运的山熊| 好色女博士| 91嫩草视频在线观看| 日韩精品 电影一区 亚洲高清| 国产毛片AV久久久久精品|