国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64

這篇具有很好參考價值的文章主要介紹了【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

為什么叫x86和x86_64和AMD64?

為什么大家叫x86為32位系統(tǒng)?

為什么軟件版本會注明 for amd64版本,不是intel64呢??

【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64

?文章來源地址http://www.zghlxwxcb.cn/news/detail-448435.html

【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64

【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64

x86是指intel的開發(fā)的一種32位指令集,從386開始時代開始的,一直沿用至今,是一種cisc指令集,所有intel早期的cpu,amd早期的cpu都支持這種指令集,intel官方文檔里面稱為“IA-32”

x84_64是x86 CPU開始邁向64位的時候,有2選擇:

1、向下兼容x86。

2、完全重新設(shè)計指令集,不兼容x86。

AMD搶跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD稱之為AMD64,搶了64位PC的第一桶金,得到了用戶的認(rèn)同。

Intel選擇了設(shè)計一種不兼容x86的全新64為指令集,稱之為IA-64(這玩意似乎就是安騰),但是比amd晚了一步,而且IA-64也挺慘淡的,因為是全新設(shè)計的CPU,沒有編譯器,也不支持windows(微軟把intel給忽悠了,承諾了會出安騰版windows server版,但是遲遲拿不出東西)。后來不得不在時機落后的情況下也開始支持AMD64的指令集,但是換了個名字,叫x86_64,表示是x86指令集的64擴(kuò)展,大概是不愿意承認(rèn)這玩意是AMD設(shè)計出來的。

實際上,x86_64,x64,AMD64基本上是同一個東西,我們現(xiàn)在用的intel/amd的桌面級CPU基本上都是x86_64,與之相對的arm,ppc等都不是x86_64。

x86、x86_64主要的區(qū)別就是32位和64位的問題,x86中只有8個32位通用寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。

x86_64把這8個通用寄存器擴(kuò)展成了64位的,并且比x86增加了若干個寄存器(好像增加了8個,變成了總共16個通用寄存器)。同樣的MMX的寄存器的位數(shù)和數(shù)量也進(jìn)行了擴(kuò)展。此外cpu擴(kuò)展到64位后也能支持更多的內(nèi)存了,等等許多好處。

對于普通程序來說,CPU位數(shù)的擴(kuò)展、寄存器數(shù)量的增加不會帶來明顯的性能提升,比如IE瀏覽器、Office辦公這類的軟件。特定的程序很能夠充分利用64位CPU、更多的寄存器帶來的優(yōu)勢,比如MMX除了能提升多媒體程序的性能,對矩陣、多項式、向量計算都能帶來提升,更多的MMX寄存器、更大的寄存器字長都有利于SIMD指令的執(zhí)行,能夠提升CPU對數(shù)據(jù)的吞吐量(RISC指令集的CPU動不動就有數(shù)百個寄存器,可以有效的緩存中間計算結(jié)果,不需要把中間結(jié)果寫入內(nèi)存,從而減少內(nèi)存訪問次數(shù),顯著提升性能)

x86

x86架構(gòu)(The x86 architecture)是微處理器執(zhí)行的計算機語言指令集,指一個intel通用計算機系列的標(biāo)準(zhǔn)編號縮寫,也標(biāo)識一套通用的計算機指令集合。

1978年6月8日,Intel發(fā)布了新款16位微處理器“8086”,也同時開創(chuàng)了一個新時代:x86架構(gòu)誕生了。

在40年的發(fā)展史中,x86家族不斷壯大,從桌面轉(zhuǎn)戰(zhàn)筆記本、服務(wù)器、超級計算機、編寫設(shè)備,期間還挫敗或者限制了很多競爭對手的發(fā)展,讓不少處理器廠商及其架構(gòu)技術(shù)成為歷史名字,即使有些封閉發(fā)展的也難以為繼,比如蘋果就已經(jīng)放棄PowerPC了。

AMD64/x86-64

x86-64有時會簡稱為“x64”,是64位微處理器架構(gòu)及其相應(yīng)指令集的一種,也是Intel x86架構(gòu)的延伸產(chǎn)品。

“x86-64”1999由AMD設(shè)計,AMD 首次公開 64 位集以擴(kuò)充給 IA-32,稱為 x86-64(后來改名為 AMD64)。 AMD64架構(gòu)在IA-32上新增了64位寄存器,并兼容早期的16位和32位軟件,可使現(xiàn)有以x86為對象的編譯器容易轉(zhuǎn)為AMD64版本。

由于AMD64和Intel64基本上一致,很多軟硬件產(chǎn)品都使用一種不傾向任何一方的詞匯來表明它們對兩種架構(gòu)的同時兼容。出于這個目的,AMD對這種CPU架構(gòu)的原始稱呼 - “x86-64”被不時地使用,還有變體“x86_64”。其他公司如微軟和Sun在營銷資料中使用“x64”作為對“x86-64”的縮寫。

許多操作系統(tǒng)及產(chǎn)品,尤其那些是在Intel進(jìn)入這塊市場之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同時指代AMD64和Intel64。

現(xiàn)在的x86 CPU在位數(shù)上有32/64bit之分,在ARCH上有又x86/x86_64/x64/i386/IA32/IA64/amd64

最近又新出來一個x32,還好不是ARCH,只是ABI,沒有那么混亂。

先說一下x86的這些arch,不要求很嚴(yán)格的話,基本上可以用下面的公式來表達(dá):

x86=i386=IA32

amd64=x86_64=x64!=IA64

其實這兩個等式里很多都是別名,嚴(yán)格說的話,x86的世界里只存在x86/x86_64/IA64三種架構(gòu)。

當(dāng)年AMD先于Intel推出向下兼容的amd64 CPU,而Intel推出的不兼容32位系統(tǒng)的IA64慘淡收場(被MS放了鴿子),后來Intel在指令上支持了amd64,不過不愿意叫amd64,改了個名字x86_64。

再說64bit/32bit的兼容性問題:

現(xiàn)在的64bit CPU實際上都做了兼容32bit的特殊設(shè)計,所以64bit的CPU上運行32bit的軟件(包括kernel/app, driver除外)是沒有問題。反過來,32bit的CPU上運行64bit的軟件是不可以的。

最后說重點,64bit相比32bit的性能優(yōu)勢:

這里不考慮64bit硬件上運行32bit軟件的這種過度方式。

從架構(gòu)上來說,64bit擁有64bit 的register和64bit的bus,在數(shù)據(jù)傳輸效率上比32bit要高不少;另外,64bit地址總線的尋址空間突破了4G的限制。

所以,對于大內(nèi)存,密集數(shù)據(jù)運算的應(yīng)用場景,64bit的優(yōu)勢是非常明顯的。網(wǎng)上有一些benchmark,這里不貼了。

但是,對于小內(nèi)存系統(tǒng),64bit的CPU在某些狀況下可能比32bit CPU的效率更低。

因為64 bit的CPU的地址是64位的,指針是64位的,編譯生成的二進(jìn)制文件更大,運行時占用的內(nèi)存更多;另一方面,因為64位地址的問題,cache中能存放的指令就更少,所以更容易導(dǎo)致cache的miss。

所以在某些應(yīng)用場景,64 bitCPU的更大的尋址空間,更快的數(shù)據(jù)傳遞,更快的浮點運算的特性, 與其64 bit的地址/指針?biāo)鶎?dǎo)致的cache miss的特性,始終并存。

為了充分利用64的優(yōu)勢,又避免64bit地址導(dǎo)致的cache miss的問題,Intel提出了x32 ABI的概念。

x32不是一個ARCH,是一個ABI。

x32可以充分的使用64 bit硬件的64 bit寄存器,64bit總線,以及64bit新增的指令,從而獲得更快的數(shù)據(jù)處理速度。

同時x32又使用32bit的地址/pointer,32bit的C數(shù)據(jù)類型,因此cache miss并不會增加。

x32是一個ABI,其設(shè)計到的部分包括:kernel的support,toolchain的support,system lib的support。現(xiàn)在kernel(from 3.4)和toolchain的support都已經(jīng)OK。

ARM,AMD,X86,AArch64的概念

AMD,中文名(超威)超微半導(dǎo)體,是除了英特爾以外最大的x86架構(gòu)微處理供應(yīng)商,也是除了英偉達(dá)以外僅有的獨立圖形處理供應(yīng)商。

x86泛指一系列由英特爾公司開發(fā)的處理器的架構(gòu),最早為1978年面世的“Intel 8086”CPU。早期的處理器均是以此格式來命名,如Intel 8086,80186,80286,80386,80486,這些架構(gòu)被統(tǒng)稱為x86。由于數(shù)字不能被注冊成為商標(biāo),因此公司每當(dāng)有新的處理器使用,均會采用可注冊的名稱,如Pentium。

基于x86的32位架構(gòu)(常被稱為i386,x86),IA-32,而基于x86的64位架構(gòu),x86-64常稱為AMD64或Intel64。最早是由AMD公司首先根據(jù)x86的架構(gòu)生產(chǎn)出了64位的處理器,但是由于是競爭關(guān)系,Intel公司不愿意承認(rèn)AMD64,近些年才推出了Intel64

ARM(英文為Advanced RISC Machine,或Acorn RISC Machine)也是一個架構(gòu),非常適用于移動通信這種低成本,高性能,低耗電的領(lǐng)域。ARM的公司為安謀控股(ARM Holding plc),又稱為ARM公司,總部位于劍橋的設(shè)計與軟件公司,現(xiàn)在已被日本的軟銀公司收購,后者同時也是國內(nèi)互聯(lián)網(wǎng)巨頭阿里巴巴的最大股東。

AArch64是ARMv8的一種執(zhí)行狀態(tài)。

為了更廣泛地向企業(yè)領(lǐng)域推進(jìn),需要引入 64 位構(gòu)架,同時也需要在 ARMv8 架構(gòu)中引入新的 AArch64 執(zhí)行狀態(tài)。

AArch64 不是一個單純的 32 位 ARM 構(gòu)架擴(kuò)展,而是 ARMv8 內(nèi)全新的構(gòu)架,完全使用全新的 A64 指令集。這些都源自于多年對現(xiàn)代構(gòu)架設(shè)計的深入研究。更重要的是, AArch64 作為一個分離出的執(zhí)行狀態(tài),意味著一些未來的處理器可能不支持舊的 AArch32 執(zhí)行狀態(tài)。

雖然最初的 64 位 ARM 處理器將會完全向后兼容,但我們大膽且前瞻性地將 AArch64 作為在 ARMv8 處理器中唯一的執(zhí)行狀態(tài)。我們在這些系統(tǒng)中將不支持 32 位執(zhí)行狀態(tài), 這將使許多有益的實現(xiàn)得到權(quán)衡,如默認(rèn)情況下,使用一個較大的 64K 大小的頁面,并會使得純凈的 64 位 ARM 服務(wù)器系統(tǒng)不受遺留代碼的影響。立即進(jìn)行這種劃分是很重要的,因為有可能在未來幾年內(nèi)將出現(xiàn)僅支持 64 位的服務(wù)器系統(tǒng)。沒有必要在新的 64 位架構(gòu)中去實現(xiàn)一個完整的 32 位流水線,這將會提高未來 ARM 服務(wù)器系統(tǒng)的能效。

這樣回想起來, AArch64 作為在 Fedora ARM 項目中被支持的 ARM 構(gòu)架是一個很自然的過程: armv5tel、armv7hl、aarch64。新的架構(gòu)被命名為:aarch64,這同 ARM 自己選擇的主線命名方式保持一致,同時也考慮到了 ARM 架構(gòu)名與 ARM 商標(biāo)分開的期望。

ARMv8-A 將 64 位架構(gòu)支持引入 ARM 架構(gòu)中,其中包括:

64 位通用寄存器、SP(堆棧指針)和 PC(程序計數(shù)器)

64 位數(shù)據(jù)處理和擴(kuò)展的虛擬尋址

兩種主要執(zhí)行狀態(tài):

AArch64 - 64 位執(zhí)行狀態(tài),包括該狀態(tài)的異常模型、內(nèi)存模型、程序員模型和指令集支持

AArch32 — 32 位執(zhí)行狀態(tài),包括該狀態(tài)的異常模型、內(nèi)存模型、程序員模型和指令集支持

這些執(zhí)行狀態(tài)支持三個主要指令集:

A32(或 ARM):32 位固定長度指令集,通過不同架構(gòu)變體增強部分 32 位架構(gòu)執(zhí)行環(huán)境現(xiàn)在稱為 AArch32。

T32 (Thumb) 是以 16 位固定長度指令集的形式引入的,隨后在引入 Thumb-2 技術(shù)時增強為 16 位和 32 位混合長度指令集。部分 32 位架構(gòu)執(zhí)行環(huán)境現(xiàn)在稱為 AArch32。

A64:提供與 ARM 和 Thumb 指令集類似功能的 32 位固定長度指令集。隨 ARMv8-A 一起引入,它是一種 AArch64 指令集。

ARM ISA 不斷改進(jìn),以滿足前沿應(yīng)用程序開發(fā)人員日益增長的要求,同時保留了必要的向后兼容性,以保護(hù)軟件開發(fā)投資。在 ARMv8-A 中,對 A32 和 T32 進(jìn)行了一些增補,以保持與 A64 指令集一致。

?

?

到了這里,關(guān)于【CPU】關(guān)于x86、x86_64/x64、amd64和arm64/aarch64的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Intel和AMD 與 x86,ARM,MIPS有什么區(qū)別?

    先說amd和intel amd和Intel這倆公司的淵源很深,早期時Intel先是自己搞了個x86架構(gòu),然后amd拿到了x86的授權(quán)也可以自己做x86了。接著intel向64位過渡的時候自己搞了個ia64(x64架構(gòu))但是因為和x86架構(gòu)不兼容市場反應(yīng)極差,amd率先搞了x86的64位兼容(32和64的混合架構(gòu))也就是后來的

    2024年02月15日
    瀏覽(23)
  • 手機cpu架構(gòu)查看及armeabi、armeabi-v7a、arm64-v8a及x86等說明

    手機cpu架構(gòu)查看及armeabi、armeabi-v7a、arm64-v8a及x86等說明

    win+R,輸入cmd 填下指令如下 adb shell getprop ro.product.cpu.abi 1.armeabiv-v7a: 第7代及以上的 ARM 處理器。2011年15月以后的生產(chǎn)的大部分Android設(shè)備都使用它. 2.arm64-v8a: 第8代、64位ARM處理器,很少設(shè)備,三星 Galaxy S6是其中之一。 3.armeabi: 第5代、第6代的ARM處理器,早期的手機用的比較多。

    2024年02月07日
    瀏覽(33)
  • x86 32 64 Arm這些聽過但不懂,都是什么?是架構(gòu)還是系統(tǒng)?一文梳理

    x86 32 64 Arm這些聽過但不懂,都是什么?是架構(gòu)還是系統(tǒng)?一文梳理

    x86 聽過嗎? 64位操作系統(tǒng)知道吧 和x86什么關(guān)系 32和64都是什么東西? 曾經(jīng)的我也一頭霧水,今天我才來整理一下,慚愧慚愧! 今天帶著沉重的心情來梳理一下學(xué)習(xí)內(nèi)容吧 如果你很熟悉很了解計算機的話,應(yīng)該知道,處理器、操作系統(tǒng)、驅(qū)動、軟件都有32位和64位之分,只不

    2024年04月29日
    瀏覽(29)
  • 交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64

    交叉編譯----宿主機x86 ubuntu 64位-目標(biāo)機ARMv8 aarch64

    1.交叉編譯是什么,為什么要交叉編譯 編譯:在一個平臺上生成在該平臺上的可執(zhí)行代碼 交叉編譯:在一個平臺上生成在另一個平臺上的可執(zhí)行代碼 交叉編譯的例子:如51單片機的可執(zhí)行代碼(hex文件)是在集成環(huán)境keil上面編譯完成的,我們只需要將編譯好的可執(zhí)行代碼下

    2024年02月15日
    瀏覽(49)
  • 如何使用 docker pull 拉取特定架構(gòu)amd64、arm64、aarch64的容器鏡像

    如何使用 docker pull 拉取特定架構(gòu)amd64、arm64、aarch64的容器鏡像

    通過修改 dockerd 配置文件,并重載,可以在服務(wù)器上開啟 dockerd 的實驗屬性。為配置文件 /etc/docker/daemon.json 添加 “experimental”: true。 修改后的配置文件看起來和下面的比較像: 修改完成后,使用以下命令重置服務(wù): 在 docker pull 時指定參數(shù),即可完成指定架構(gòu)鏡像的拉取。

    2024年02月11日
    瀏覽(29)
  • X86、X64和ARM

    X86架構(gòu)和X64架構(gòu)(也稱為x86-64、AMD64或Intel 64)都是計算機處理器架構(gòu)的名稱,它們都屬于x86家族的一部分。 這些架構(gòu)主要用于描述計算機中處理器的指令集和尋址能力。 ? X86指的是支持32位的指令集架構(gòu)處理器, 最初由英特爾在1978年發(fā)布的 intel 8086,這個系統(tǒng)主要為X86結(jié)尾

    2024年02月15日
    瀏覽(42)
  • 帶wiringPi庫的交叉編譯 ---宿主機x86Ubuntu,目標(biāo)機ARMv8 aarch64(香橙派)

    帶wiringPi庫的交叉編譯 ---宿主機x86Ubuntu,目標(biāo)機ARMv8 aarch64(香橙派)

    帶wiringPi庫的交叉編譯如何進(jìn)行 先交叉編譯wiringPi庫,編譯出的庫適合香橙派,這時候交叉編譯可執(zhí)行程序的平臺和鏈接庫的格式也是正確的 ,然后通過-I和-L來指定鏈接的wiringPi庫的頭文件和庫的位置,但是現(xiàn)在還沒有學(xué)習(xí)過,后面學(xué)了補上 此時如果把wiringPi庫拿到Ubuntu上進(jìn)

    2024年02月15日
    瀏覽(23)
  • CPU 架構(gòu):ARM 和 x86 架構(gòu)區(qū)別

    計算機有兩種主要的 CPU 架構(gòu)可供選擇。Windows PC 通常建立在 Intel 和 AMD 使用的 x86 平臺上,而 Apple 的計算機則使用該公司自己的基于 ARM 架構(gòu)的?M1 和 M2 處理器。 這些方法之間存在差異,并且對性能的意義具有重大影響。 x86 和 ARM 處理器平臺做相同的事情,但它們以完全不

    2024年04月27日
    瀏覽(23)
  • x86 和 x64 arm的區(qū)別

    x86和x64是基于英特爾x86架構(gòu)的復(fù)雜指令集架構(gòu)(ISA),而ARM是一種精簡指令集架構(gòu)。 假設(shè)我們現(xiàn)在要開發(fā)一個cpu,就好比說我們?nèi)バ藿ㄒ粭潣?,開發(fā)商會先將圖紙設(shè)計好。設(shè)計好之后由施工單位按照設(shè)計圖去建造。在建造的這個過程中,施工方是要按照國家一定的規(guī)范來設(shè)計

    2024年01月19日
    瀏覽(28)
  • arm64-v8a、armeabi-v7a、x86、x86_64

    arm64-v8a、armeabi-v7a、x86、x86_64

    當(dāng)我們?nèi)itHub下載應(yīng)用的時候是不是經(jīng)常很懵逼,就像下圖一樣,粗看一下如此多安裝包到底要選擇下載哪個且每種安裝包到底有哪差別?畢竟因為自己一無所知,有時便隨意下載一個后,安裝時卻報『此版本與你的系統(tǒng)不兼容』的錯誤,只得一個一個下載嘗試,不但浪費時

    2024年04月26日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包