<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      處理器架構(gòu)和配置

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

      CPU 架構(gòu)

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

      CPU 架構(gòu)是 CPU 廠商給屬于同一系列的 CPU 產(chǎn)品定的一個規(guī)范,主要目的是為了區(qū)分不同類型 CPU 的重要標(biāo)示。市面上的 CPU 分類主要分有兩大陣營,一個是 intelAMD 為首的 復(fù)雜指令集 CPU,另一個是以 IBMARM 為首的 精簡指令集 CPU。兩個不同品牌的 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ù)雜指令集”與“精簡指令集”系統(tǒng),也就是經(jīng)常看到的“CISC”與“RISC”

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

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

      2. 指令集

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

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

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

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

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

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

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

      架構(gòu)主要是指某一個處理器所使用的具體指令集,比如說 m6ull,他是基于ArmV7 架構(gòu)的,就是指它是使用 armV7 指令集,在大部分場合,架構(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)的所有功能,這些功能對應(yīng)的代碼編號構(gòu)成指令集;代碼編號應(yīng)該就是指機(jī)器碼這種底層代碼,某種架構(gòu) CPU 架構(gòu)確定后,代碼編號就確定了,這些編號反映了 CPU 以什么樣的方式去執(zhí)行某些功能,決定了硬件的執(zhí)行方式;前面說這些代碼編號可能就是機(jī)器碼,機(jī)器碼就是二進(jìn)制數(shù)字,二進(jìn)制數(shù)字反映在電路上就是高低電平,從而驅(qū)動電路運(yùn)行;不同代碼編號的二進(jìn)制數(shù)字排列就不同,所以驅(qū)動電路的高低電平就不同,所以電路執(zhí)行的方式就不同。

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

      4. Apple 處理器和配置

      下面對 Apple 處理器做一個格式總結(jié),具體的發(fā)展歷程請手動 BD...

      處理器/芯片 架構(gòu)、指令集 搭載機(jī)型 發(fā)布時間
      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)的指令集。
      
      對于模擬器 x86 32 位處理器測試需要 Intel i386 架構(gòu)指令集,模擬器 64 位處理器測試需要 Intel x86_64 架構(gòu)的指令集。
      
      i386 是針對 intel 通用微處理器 x86 架構(gòu)的 32 位處理器
      x86_64 是針對 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:
        指定工程被編譯成可支持哪些指令集類型,而支持的指令集越多,就會編譯出包含多個指令集代碼的數(shù)據(jù)包,對應(yīng)生成二進(jìn)制包就越大,也就是 ipa 包會變大。

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

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

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

      posted @ 2023-12-18 15:58  背包の技術(shù)  閱讀(435)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久99久热免费视频播放| 国产95在线 | 欧美| 岛国一区二区三区高清视频| 4399理论片午午伦夜理片| 日韩日韩日韩日韩日韩熟女 | 精品国产国语对白主播野战| 国内精品一区二区不卡| 日本视频一区二区三区1| 中文字幕人妻日韩精品| 国产乱子伦无套一区二区三区| 无码中文av波多野结衣一区| 欧洲精品一区二区三区久久| 日韩AV高清在线看片| 国产91丝袜在线观看| 国产熟女老阿姨毛片看爽爽| 午夜福利影院不卡影院| 亚洲成av人片无码迅雷下载| 黑人巨大亚洲一区二区久| 亚洲av综合色区无码专区| 久久精品免视看国产成人| 国产成人午夜福利在线播放| 国产99视频精品免费视频36| 宜昌市| 国产中文三级全黄| 日韩成人性视频在线观看| 亚洲国产精品日韩AV专区| 东京热高清无码精品| 亚洲精品日韩精品久久| 亚洲成熟女人毛毛耸耸多| 亚洲一区二区三区十八禁| 久久综合亚洲色一区二区三区| 色吊丝永久性观看网站| 亚洲国产一区二区精品专| 国产中文字幕精品视频| 人人妻人人狠人人爽天天综合网| 国产三级国产精品国产专| 无码国内精品久久人妻蜜桃| www内射国产在线观看| 高清中文字幕国产精品| 免费无码又爽又刺激高潮虎虎视频| 亚洲欧美牲交|