日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

处理器架构和配置

發(fā)布時(shí)間:2023/12/24 windows 65 coder
生活随笔 收集整理的這篇文章主要介紹了 处理器架构和配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

成功之前我們要做應(yīng)該做的事情,成功之后我們才可以做喜歡做的事情。

1. 處理器架構(gòu)

CPU 架構(gòu)是 CPU 廠商給屬于同一系列的 CPU 產(chǎn)品定的一個(gè)規(guī)范,主要目的是為了區(qū)分不同類型 CPU 的重要標(biāo)示。市面上的 CPU 分類主要分有兩大陣營,一個(gè)是 intel、AMD 為首的 復(fù)雜指令集 CPU,另一個(gè)是以 IBM、ARM 為首的 精簡(jiǎn)指令集 CPU。兩個(gè)不同品牌的 CPU,其產(chǎn)品的架構(gòu)也不相同,例如,Intel、AMD 的 CPU 是 X86架構(gòu) 的,而 IBM 公司的 CPU是 PowerPC 架構(gòu),ARM 公司是 ARM 架構(gòu)。

從 CPU 發(fā)明到現(xiàn)在,有非常多種架構(gòu),從我們熟悉的 X86、ARM,到不太熟悉的MIPS、IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的“復(fù)雜指令集”與“精簡(jiǎn)指令集”系統(tǒng),也就是經(jīng)常看到的“CISC”與“RISC”。

*處理單元(CPU)主要由運(yùn)算器、控制器、寄存器三部分組成,從字面意思看運(yùn)算器就是起著運(yùn)算的作用,控制器就是負(fù)責(zé)發(fā)出 CPU 每條指令所需要的信息,寄存器就是保存運(yùn)算或者指令的一些臨時(shí)文件,這樣可以保證更高的速度。CPU 有著處理指令、執(zhí)行操作、控制時(shí)間、處理數(shù)據(jù)四大作用,打個(gè)比喻來說,CPU 就像我們的大腦,幫我們完成各種各樣的生理活動(dòng)。因此如果沒有 CPU,那么電腦就是一堆廢物,無法工作。移動(dòng)設(shè)備其實(shí)很復(fù)雜,這些 CPU 需要執(zhí)行數(shù)以百萬計(jì)的指示,才能使它向我們期待的方向運(yùn)行,而 CPU 的速度和功率效率是至關(guān)重要的。速度影響用戶體驗(yàn),而效率影響電池壽命。最完美的移動(dòng)設(shè)備是高性能和低功耗相結(jié)合。

在計(jì)算世界中,“體系結(jié)構(gòu)”一詞被用來描述一個(gè)抽象的機(jī)器,而不是一個(gè)具體的機(jī)器實(shí)現(xiàn)。一般而言,一個(gè) CPU 的體系結(jié)構(gòu)有一個(gè)指令集加上一些寄存器而組成。

2. 指令集

計(jì)算機(jī)指令就是指揮機(jī)器工作的指示和命令,程序就是一系列按一定順序排列的指令,執(zhí)行程序的過程就是計(jì)算機(jī)的工作過程。指令集,就是 CPU 中用來計(jì)算和控制計(jì)算機(jī)系統(tǒng)的一套指令的集合,而每一種新型的 CPU 在設(shè)計(jì)時(shí)就規(guī)定了一系列與其他硬件電路相配合的指令系統(tǒng)。而指令集的先進(jìn)與否,也關(guān)系到 CPU 的性能發(fā)揮,它也是 CPU 性能體現(xiàn)的一個(gè)重要標(biāo)志。指令的強(qiáng)弱也是 CPU 的重要指標(biāo),指令集是提高微處理器效率的最有效的工具之一。

直觀的解釋指令集主要是指 CPU 硬件和軟件之間的接口描述,它本質(zhì)上是一段二進(jìn)制機(jī)器碼,CPU 只能識(shí)別機(jī)器碼,但是機(jī)器碼是一串無意義的字符串,程序員很難看看懂這些語句,用它來開發(fā)軟件,所以后面就發(fā)明了匯編語言,匯編語言本質(zhì)上跟機(jī)器碼一一對(duì)應(yīng)的,現(xiàn)在有很多不同版本的匯編語言,本質(zhì)上就是有不同的指令集,指令集可以簡(jiǎn)單的分為復(fù)雜指令集和精簡(jiǎn)指令集。

指令集架構(gòu)是計(jì)算機(jī)體系架構(gòu)的一部分。指令集是一個(gè)很虛的東西,是一個(gè)標(biāo)準(zhǔn)規(guī)范。例如我們的交通規(guī)則,紅燈停、綠燈行、黃燈亮了等—等,只有行人和司機(jī)都去遵守這套交通規(guī)則我們的交通系統(tǒng)才能有條不紊地運(yùn)行下去。指令集也一樣,芯片工程師在設(shè)計(jì) CPU 時(shí)也要以指令集中規(guī)定的指令格式為標(biāo)準(zhǔn)實(shí)現(xiàn)不同的譯碼電路來支持指令集各種指令的運(yùn)行。指令集最終的實(shí)現(xiàn)就是微架構(gòu),就是CPU 內(nèi)部的各種譯碼和執(zhí)行電路。

編譯器廠商在研發(fā)編譯器工具或 IDE 時(shí),也要以指令集為標(biāo)準(zhǔn)將我們編寫的 C 語言高級(jí)程序轉(zhuǎn)換為指令集中規(guī)定的各種機(jī)器指令。為什么我們編寫的高級(jí)程序經(jīng)過編譯后可以直接在 CPU 上運(yùn)行呢?就是因?yàn)?CPU 設(shè)計(jì)者和編譯器開發(fā)者遵循的是同一個(gè)指令集標(biāo)準(zhǔn),“編譯器最終編譯生成的指令”都是 CPU 硬件電路支持運(yùn)行的指令,每一種不同架構(gòu)的 CPU 一般都需要配套一個(gè)對(duì)應(yīng)的編譯器。

指令集作為 CPU 和編譯器的設(shè)計(jì)規(guī)范和參考標(biāo)準(zhǔn)主要用來定義指令的各種操作、操作數(shù)的類型、寄存器的分配、地址的格式等。

指令集也不是—成不變的也會(huì)隨著應(yīng)用需求的推動(dòng)不斷迭代更新,不斷擴(kuò)充新的指令。例如 ARM 指令集從最初的 ARMv1 發(fā)展到目前的 ARMv9,一直在不斷地發(fā)展不斷添加新的指令。

3. 架構(gòu)和指令集關(guān)系?

架構(gòu)主要是指某一個(gè)處理器所使用的具體指令集,比如說 m6ull,他是基于ArmV7 架構(gòu)的,就是指它是使用 armV7 指令集,在大部分場(chǎng)合,架構(gòu)等于指令集。

CPU 的硬件結(jié)構(gòu),即架構(gòu),一旦確定,那么使用該架構(gòu)的 CPU 能實(shí)現(xiàn)的功能大體上是一樣的,而且去實(shí)現(xiàn)該功能的指令集也大體上一樣的。

設(shè)計(jì) CPU 架構(gòu)即決定了指令集,如 X86 指令集,是因?yàn)樵?CPU 采用了 X86 結(jié)構(gòu),所以才叫 X86 指令集;指令集是指某種架構(gòu) CPU 能實(shí)現(xiàn)的所有功能,這些功能對(duì)應(yīng)的代碼編號(hào)構(gòu)成指令集;代碼編號(hào)應(yīng)該就是指機(jī)器碼這種底層代碼,某種架構(gòu) CPU 架構(gòu)確定后,代碼編號(hào)就確定了,這些編號(hào)反映了 CPU 以什么樣的方式去執(zhí)行某些功能,決定了硬件的執(zhí)行方式;前面說這些代碼編號(hào)可能就是機(jī)器碼,機(jī)器碼就是二進(jìn)制數(shù)字,二進(jìn)制數(shù)字反映在電路上就是高低電平,從而驅(qū)動(dòng)電路運(yùn)行;不同代碼編號(hào)的二進(jìn)制數(shù)字排列就不同,所以驅(qū)動(dòng)電路的高低電平就不同,所以電路執(zhí)行的方式就不同。

同一個(gè)程序 -> 匯編語言 -> 不同指令集 -> 不同架構(gòu)的 CPU -> 不同的實(shí)現(xiàn)電路 -> 相同的功能。

4. Apple 處理器和配置

下面對(duì) Apple 處理器做一個(gè)格式總結(jié),具體的發(fā)展歷程請(qǐng)手動(dòng) BD...

處理器/芯片 架構(gòu)、指令集 搭載機(jī)型 發(fā)布時(shí)間
A4 Cortex-A8 iPhone 4 iPad 第一代、iPod touch 第四代 2010
A5/ A5X ARM Cortex-A9 iPhone 4S iPad 2 / iPad 第三代 2012、2011
A6/A6X armv7s A6X iPhone 5、iPhone 5C 2012
A7 arm64 iPhone 5S iPad Air、iPad mini 2、iPad mini 3 2013
A8/A8X arm64 iPhone 6系列 iPad mini 4、iPod touch 第六代 2014
A9/A9X arm64 iPhone 6s系列、iPhone SE iPad 第五代 2015
A10/A10X arm64 A10 iPhone 7系列 iPad 第六代、iPod Touch 第七代、 A9X 9.7 英寸 iPad Pro、12.9 英寸 iPad Pro 第一代 / 10.5 英寸 iPad Pro、12.9 英寸 iPad Pro 第二代(2017) 2016、2015
A11 arm64 iPhone 8系列、iPhone X 2017.
A12 arm64e 12.9 英寸 iPad Pro 第三代、11 英寸 iPad Pro、 iPhone XS系列、iPhone XR iPad mini 5、iPad Air 第三代 2018.
A13 arm64e iPad第九代(10.2英寸)、iPhone 11系列、iPhone SE第二代、iPhone SE第二代 2021.
A14 arm64e iPhone 12系列、iPad Air 第四代 2020.9
A15 arm64e iPhone SE第三代、 iPhone 13系列 2022.3、2021.9
A16 arm64e iPhone 14 Pro 和 iPhone 14 Pro Max 2022.9
A17 Pro arm64e iPhone 15 Pro 2023.9
M1 arm64e iPad Pro12.9 2021.4
M1 arm64e iPad Air5 2022.3
M2 arm64e iPad Pro、Mac mini 2022.10

iOS 架構(gòu)配置:

處理器架構(gòu)、指令集:

  • armv7|armv7s|arm64 都是 ARM 處理器架構(gòu)指令集。
  • i386|x86_64 是 Mac 處理器的指令集。

這些指令集在那些設(shè)備架構(gòu)中用到?

armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)

arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display) 以及更高的版本

armv7|armv7s|arm64 都是 ARM 處理器的指令集:真機(jī) 32 位處理器需要 armv7,或者 armv7s 架構(gòu)指令集、真機(jī)64位處理器需要 arm64/arm64e 架構(gòu)的指令集。

對(duì)于模擬器 x86 32 位處理器測(cè)試需要 Intel i386 架構(gòu)指令集,模擬器 64 位處理器測(cè)試需要 Intel x86_64 架構(gòu)的指令集。

i386 是針對(duì) intel 通用微處理器 x86 架構(gòu)的 32 位處理器
x86_64 是針對(duì) x86 架構(gòu)的 64 位處理器

i386|x86_64 應(yīng)用在 Mac 處理器的指令集
最新 M1、M2 處理器則采用的也是基于 ARM 架構(gòu)的指令集

在實(shí)際開發(fā)中的配置問題,Xcode 中指令集相關(guān)選項(xiàng)(Build Setting 中):

  1. Architectures:
    指定工程被編譯成可支持哪些指令集類型,而支持的指令集越多,就會(huì)編譯出包含多個(gè)指令集代碼的數(shù)據(jù)包,對(duì)應(yīng)生成二進(jìn)制包就越大,也就是 ipa 包會(huì)變大。

    一般設(shè)置默認(rèn)值為:Standard Architectures (Apple Silicon, Intel) - $(ARCHS_STANDARD),在真機(jī)的編譯下實(shí)質(zhì)是(armv7和arm64)、在模擬器的時(shí)候是(x86_64、i386)。

  2. Valid Architectures:
    限制可能被支持的指令集的范圍,也就是 Xcode 編譯出來的二進(jìn)制包類型最終從這些類型產(chǎn)生,而編譯出哪種指令集的包,將由 Architectures 與 Valid Architectures(因此這個(gè)不能為空)的交集來確定。Xcode 12 以前,我們通過 Valid Architectures 來配置支持的機(jī)型。但在 Xcode12 中, Valid Architectures 這一項(xiàng)被移除掉了,改變成了 VALID_ARCHS 的欄目。但是升級(jí) Xcode12 以后的版本,工程配置是這樣的 EXCLUDED_ARCHS,表示配置不包含的 CPU 架構(gòu),在這里就可以把不需要或者一些三方框架不支持的架構(gòu)配置在這里。如果 Excluded architectures 里配置了架構(gòu),就會(huì)去掉配置里的架構(gòu),比如配置了armv7 ,那么真機(jī)里就只有 arm64 了。

  3. Build Active Architecture Only:
    指定是否只對(duì)當(dāng)前連接設(shè)備所支持的指令集編譯,當(dāng)其值設(shè)置為 Yes,是為了debug 的時(shí)候編譯速度更快,它只編譯當(dāng)前的 Architecture 版本,而設(shè)置為 No 時(shí),會(huì)編譯所有的版本。 所以,一般 debug 的時(shí)候可以選擇設(shè)置為 Yes,release 的時(shí)候要改為 No,以適應(yīng)不同設(shè)備。

總結(jié)

以上是生活随笔為你收集整理的处理器架构和配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。