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

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

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

講一講Apple Macintosh處理器過(guò)渡的故事

芯長(zhǎng)征科技 ? 來(lái)源:半導(dǎo)體行業(yè)觀察 ? 2023-10-24 14:54 ? 次閱讀

一個(gè)平臺(tái)能否成功地從一種處理器架構(gòu)過(guò)渡到另一種處理器架構(gòu)可以決定它能否生存。Apple 已經(jīng)三次成功地為 Mac 進(jìn)行了 CPU 轉(zhuǎn)型。首先,從 Motorola 68k 到 Power PC。然后從PowerPC到Intel。最近從英特爾到Apple Silicon。這些轉(zhuǎn)變不僅使 Mac 得以生存,而且得以蓬勃發(fā)展。

這篇文章著眼于蘋(píng)果改變架構(gòu)的原因和方式,并思考是什么讓這些轉(zhuǎn)變?nèi)〉昧顺晒Α?/p>

我們還將深入了解蘋(píng)果這些年來(lái)的變化。從 20 世紀(jì) 80 年代為嘗試擺脫摩托羅拉 68k 推出的略顯混亂的多個(gè)項(xiàng)目,到順利轉(zhuǎn)向 Apple Silicon。

隨著高通和微軟再次嘗試讓 Windows on Arm 取得成功,以及谷歌和其他公司開(kāi)始致力于在 Android 上支持 RISC-V 架構(gòu),這是一個(gè)熱門(mén)話題。在人工智能領(lǐng)域,許多公司正在嘗試調(diào)整關(guān)鍵工具,以便它們?cè)诙喾N架構(gòu)上運(yùn)行。許多公司和數(shù)十億美元的命運(yùn)取決于這些項(xiàng)目的成功或失敗。

因此,讓我們看一下 Apple Macintosh 處理器過(guò)渡的故事,看看我們能學(xué)到什么。我們將從 Macintosh 的早期開(kāi)始。

摩托羅拉68k 時(shí)代

Macintosh(當(dāng)時(shí)的名稱)的開(kāi)發(fā)始于 1979 年,第一臺(tái) Macintosh 于 1984 年 1 月推出。最初使用的芯片使用 16/32 位 Motorola 68000 CPU。

在接下來(lái)的幾年里,隨著更先進(jìn)的 68000 芯片的出現(xiàn),新的型號(hào)被開(kāi)發(fā)出來(lái)。Macintosh II 于 1987 年 3 月推出,配備 Motorola 68020,搭配 68881 浮點(diǎn)協(xié)處理器。緊隨其后的是 1988 年 9 月推出的 Macintosh IIx 和 Motorola 68030。

早在 1986 年,蘋(píng)果管理層就看到了新興 RISC 處理器的性能優(yōu)勢(shì)。接下來(lái)是一系列項(xiàng)目,蘋(píng)果管理層試圖選擇一種架構(gòu)來(lái)取代摩托羅拉 68k 系列。

在之前的文章中,我們看到了Apple 如何首次啟動(dòng)一個(gè)項(xiàng)目來(lái)開(kāi)發(fā)內(nèi)部 RISC 處理器。這個(gè)名為 Scorpius 的項(xiàng)目規(guī)范非常雄心勃勃,具有多核支持和“單指令多數(shù)據(jù)”指令等功能。但是,盡管使用 Cray 超級(jí)計(jì)算機(jī)來(lái)幫助設(shè)計(jì),Aquarius 團(tuán)隊(duì)仍無(wú)法交付可行的設(shè)計(jì),該項(xiàng)目于 1989 年結(jié)束。

因此蘋(píng)果繼續(xù)使用摩托羅拉68k系列CPU。Macintosh Quadra 于 1991 年 10 月推出,使用 Motorola 68040 CPU。不過(guò),摩托羅拉的升級(jí)之路并不完全簡(jiǎn)單。Quadra 在運(yùn)行某些軟件時(shí)出現(xiàn)問(wèn)題,因?yàn)?68040 有單獨(dú)的數(shù)據(jù)和指令緩存。這可能會(huì)導(dǎo)致某些較舊的 Macintosh 程序使用的自修改代碼出現(xiàn)問(wèn)題。

Jaguar和Cognac

與此同時(shí),繼續(xù)尋找 68k 系列處理器的 RISC 替代品。正如我們?cè)谥暗奈恼轮兴f(shuō),到 20 世紀(jì) 80 年代末,幾乎每個(gè)半導(dǎo)體、大型機(jī)或小型計(jì)算機(jī)制造商都有自己的 RISC 設(shè)計(jì)。AMD Am29000、MIPS、SPARC、Intel 的 i860 和 ARM 處理器都在作為 Apple 68k 的替代品。

SPARC、MIPS 和 i860 很快就被拒絕了。AMD Am29000 已經(jīng)在 Apple 顯卡中使用,并且已經(jīng)完成了一些初步工作來(lái)構(gòu)建同時(shí)具有 Motorola 68030 和 AMD Am 29000 的系統(tǒng)。

此時(shí),Apple 已經(jīng)是英國(guó)劍橋 Advanced RISC Machines Limited 的共同所有者,并計(jì)劃將 ARM 處理器整合到 Newton 手持設(shè)備中。

但最終,與摩托羅拉保持良好關(guān)系的政治壓力意味著摩托羅拉的 88000 RISC 系列(也稱為 88k)成為 68k 替代品的首選。

因此,“Jaguar”項(xiàng)目開(kāi)始致力于將 Mac 遷移到 Motorola 88k。

一個(gè)關(guān)鍵問(wèn)題是軟件兼容性。默認(rèn)情況下,配備 88k 處理器的新 Mac 無(wú)法運(yùn)行現(xiàn)有的第三方 68k Mac 軟件。

Jaguar 項(xiàng)目決定不需要向后兼容。于是,John McHenry 啟動(dòng)了另一個(gè)項(xiàng)目,代號(hào)為“Cognac”(RISC 先驅(qū) John Hennessy 的姓氏也是該利口酒的流行品牌)。Cognac 計(jì)劃使用 88k 開(kāi)發(fā)基于 RISC 的 Mac,但向后兼容現(xiàn)有軟件。

Apple 工程師 Gary Davidian 已經(jīng)在為 Apple 考慮的各種 RISC 架構(gòu)開(kāi)發(fā) 68k 仿真器。選擇 Motorola 88k 后,他專注于構(gòu)建可在基于 88k 的系統(tǒng)上運(yùn)行的完整模擬器。

當(dāng) Davidian 構(gòu)建模擬器時(shí),Cognac 硬件團(tuán)隊(duì)開(kāi)發(fā)了基于 88k 的 Macintosh LC 版本,即“RISC LC”的 Macintosh RLC。

PowerPC的世紀(jì)交易

1991 年 10 月,故事發(fā)生了意想不到的轉(zhuǎn)折,當(dāng)時(shí)蘋(píng)果公司和 IBM 宣布他們將開(kāi)始在廣泛的項(xiàng)目上進(jìn)行合作。

Intel 處理器變得越來(lái)越強(qiáng)大,Intel 驅(qū)動(dòng)的 PC 兼容機(jī)在臺(tái)式 PC 市場(chǎng)上占據(jù)主導(dǎo)地位,Mirosoft 的 Windows 3.1 即將推出。所有這些因素都對(duì) IBM 和蘋(píng)果的市場(chǎng)地位構(gòu)成了威脅。

因此,這兩個(gè)競(jìng)爭(zhēng)對(duì)手聯(lián)手開(kāi)發(fā)操作系統(tǒng)和其他項(xiàng)目。該交易被稱為“DOTC”,意為“世紀(jì)交易”。作為此次合作的一部分,Apple 將在 Mac 中采用 IBM 即將推出的 PowerPC 處理器架構(gòu)。

PowerPC 將基于 IBM RS/6000 工作站中使用的 RISC 架構(gòu)。摩托羅拉還加入了蘋(píng)果和 IBM,組成了后來(lái)被稱為“AIM”的聯(lián)盟。

英特爾插曲——《星際迷航》計(jì)劃

到 1992 年,Apple 和 IBM 并不是唯一感受到 IBM PC 兼容機(jī)日益占據(jù)主導(dǎo)地位的威脅的公司,還有 Microsoft 和 Intel。

Novell 市場(chǎng)領(lǐng)先的 Netware PC 網(wǎng)絡(luò)軟件將受到計(jì)劃推出的 Windows NT 的挑戰(zhàn)。因此,當(dāng) Novell 與 Apple 接洽,希望將 Apple 的 Macintosh System 7.1 操作系統(tǒng)移植到 Intel 處理器上時(shí),兩家公司開(kāi)始了另一次合作。

該項(xiàng)目代號(hào)為“Star Trek”,于 1992 年情人節(jié)開(kāi)始。該項(xiàng)目的工程師很快就能夠演示基于 Intel 486 的標(biāo)準(zhǔn) PC 啟動(dòng) Mac 操作系統(tǒng)并運(yùn)行 Mac 的“Finder”文件瀏覽器。

但是,英特爾星際迷航項(xiàng)目于 1993 年被關(guān)閉,大多數(shù)工程人員轉(zhuǎn)而從事 PowerPC 項(xiàng)目。

摩托羅拉 68k 至 Power

隨著與 IBM 的新聯(lián)盟,Cognac 團(tuán)隊(duì)不得不從 88k 切換到 PowerPC。該項(xiàng)目被重新命名為“Piltdown Man”的“PDM”,因?yàn)樗鼘⑿纬?68k 和 PowerPC Mac 之間的“缺失的環(huán)節(jié)”?!捌柈?dāng)人”是 20 世紀(jì)初的一次嘗試(后來(lái)被證明是欺詐性的),試圖提供猿類與人類之間聯(lián)系的化石證據(jù)。

Jaguar項(xiàng)目也從88k轉(zhuǎn)向PowerPC,并更名為T(mén)esseract。PDM 和 Tesseract 現(xiàn)在都在構(gòu)建相互競(jìng)爭(zhēng)的 PowerPC 系統(tǒng)。

隨著從 Motorola 88k 轉(zhuǎn)向 PowerPC,Gary Davidian 將注意力轉(zhuǎn)向?qū)?88k 的 68k 模擬器轉(zhuǎn)換為可在新的 PowerPC 架構(gòu)上運(yùn)行的模擬器。

模擬器的第一個(gè)版本通過(guò)依次檢查每條 68k 指令來(lái)工作。然后它會(huì)執(zhí)行一系列具有相同效果的 PowerPC 指令,實(shí)際上是 68k 指令的“解釋器”。該仿真器有一些局限性:它無(wú)法轉(zhuǎn)換 Motorola 浮點(diǎn)硬件指令或 Motorola CPU 的某些內(nèi)存管理功能。

第一臺(tái)基于 PowerPC 601 芯片的機(jī)器于 1992 年末被運(yùn)送到 Piltdown Man 團(tuán)隊(duì),幾周后就啟動(dòng)了 PowerPC 版本的 Mac OS。Tesseract 于 1993 年 3 月被取消,PDM 成為唯一的 PowerPC 項(xiàng)目。1994 年 3 月,第一款基于 PowerPC 的 Mac 6100、7100 和 8100 系列在紐約發(fā)布。

Motorola 68k 到 PowerPC 仿真器隨所有版本的 Mac OS Classic for PowerPC 一起提供。隨著從 Mac OS Classic 過(guò)渡到 OS X,對(duì)仿真的支持才結(jié)束。

轉(zhuǎn)型有多成功?該模擬器似乎運(yùn)行良好,足以支持平穩(wěn)過(guò)渡,但所使用的方法并不是最快的。后來(lái)的 Mac 附帶的軟件的更高版本通過(guò)使用動(dòng)態(tài)重新編譯來(lái)加速。在這種方法中,代碼塊在運(yùn)行之前從 68k 轉(zhuǎn)換為 PowerPC 指令,這是一種比原始“instruction by instruction”技術(shù)更快的方法。

事實(shí)上,商業(yè)提供商 Connectix 介入,為蘋(píng)果原始模擬器提供更快的替代方案。MacWorld 評(píng)論總結(jié)了它是如何工作的:

Connectix Speed Doubler 是三個(gè)系統(tǒng)擴(kuò)展的集合,旨在讓您的 Mac 運(yùn)行得更快。該系列的核心產(chǎn)品 Speed Emulator 僅適用于 Power Mac。該組件取代了 Apple 的 680X0 模擬器……運(yùn)行效率更高。最初的 Power Mac 中的 Apple 模擬器的性能達(dá)到 IIci 至 Quadra 級(jí)別。Speed Emulator 通過(guò)類似于最新 Power Mac(例如 7500、8500 和 9500)上使用的模擬方案(稱為動(dòng)態(tài)重新編譯)來(lái)提高性能。這種模擬技術(shù)將翻譯后的 680X0 代碼保留在 RAM 中,因此 Mac 可以一次又一次地使用該代碼,而無(wú)需每次都進(jìn)行翻譯,從而提高了整體性能。最初的Apple模擬器每次使用時(shí)都會(huì)翻譯代碼,并且不會(huì)將其保存在RAM中。

PowerPC 到 Intel ,強(qiáng)大升級(jí)

從 68k 到 PowerPC 的轉(zhuǎn)變被廣泛認(rèn)為是成功的。在 20 世紀(jì) 90 年代的大部分時(shí)間里,連續(xù)幾代桌面 PowerPC CPU 的性能都可以與當(dāng)代英特爾設(shè)計(jì)相媲美。

但20世紀(jì)90年代初期和中期對(duì)蘋(píng)果來(lái)說(shuō)是一個(gè)動(dòng)蕩的時(shí)期,危機(jī)接二連三,不合時(shí)宜地導(dǎo)致了史蒂夫·喬布斯的NeXT的收購(gòu)。喬布斯的回歸帶來(lái)了微軟的投資、iMac 的推出、Mac 操作系統(tǒng)向 OSX 的過(guò)渡、iPod 的成功以及財(cái)務(wù)穩(wěn)定的回歸。

然而,到了 2000 年代初期,喬布斯和蘋(píng)果管理層面臨著 PowerPC 系列的另一個(gè)問(wèn)題。與它們的命名一致,這些芯片功能強(qiáng)大,但也消耗大量電量。筆記本電腦正在成為 Mac 系列中越來(lái)越重要的一部分,而 PowerPC 系列的低功耗阻礙了它們的發(fā)展。由于客戶群較窄,IBM 在開(kāi)發(fā)更節(jié)能的 PowerPC 處理器方面的投資無(wú)法跟上英特爾的步伐。

因此,在多年公開(kāi)貶低英特爾 CPU 后,喬布斯在蘋(píng)果公司的“2005 年全球開(kāi)發(fā)者大會(huì)”上宣布,蘋(píng)果公司將從 PowerPC 轉(zhuǎn)向英特爾。此次發(fā)布是喬布斯的演講大師班,英特爾首席執(zhí)行官保羅·歐德寧 (Paul Otellini) 也客串亮相。

喬布斯在展示教皇的照片時(shí)開(kāi)玩笑說(shuō),蘋(píng)果公司在尋求將 PowerPC G5 CPU 裝入筆記本電腦的過(guò)程中咨詢了最高當(dāng)局。現(xiàn)在,通過(guò)英特爾,他們可以將更強(qiáng)大的雙核英特爾酷睿 2 CPU 放入新款 MacBook Pro 筆記本電腦中。

盡管蘋(píng)果和英特爾之間的關(guān)系表面上很成功,但從一開(kāi)始就存在一些困難。第一批 Intel Mac 是 32 位“Core”系統(tǒng),這顯然是由于 Intel 延遲交付 64 位“Core 2”處理器。這意味著 Apple 必須快速連續(xù)發(fā)布 32 位和 64 位版本的 OS X 操作系統(tǒng)。

從某種意義上說(shuō),Apple 幾乎同時(shí)進(jìn)行了三次架構(gòu)轉(zhuǎn)變:第一次是從 PowerPC 32 位到 PowerPC 64 位(僅適用于一臺(tái) Mac,即 PowerMac G5)。然后是英特爾 32 位。最后是英特爾 64 位。

在過(guò)渡期間,開(kāi)發(fā)人員需要交付包含可在 PowerPC 和 Intel 上運(yùn)行的代碼的應(yīng)用程序(可能有 PowerPC 32 位、PowerPC 64 位、Intel 32 位和 Intel 64 位代碼的四個(gè)版本) )。包含這些不同版本的文件被稱為“通用二進(jìn)制文件”

Rosetta

再次強(qiáng)調(diào),現(xiàn)有基于 PowerPC 的軟件的向后兼容性至關(guān)重要。這一次,蘋(píng)果公司給這款軟件起了一個(gè)朗朗上口的名字,它可以讓基于 PowerPC 的程序在新款英特爾 Mac 上運(yùn)行。它被稱為羅塞塔,以“羅塞塔石碑”命名,這是一塊用埃及象形文字、通俗文字和古希臘語(yǔ)書(shū)寫(xiě)的石碑,幫助學(xué)者們破譯了象形文字。

Mac 用戶使用的大部分軟件實(shí)際上是由 Apple 生產(chǎn)并與 OS X 操作系統(tǒng)捆綁在一起的。所有這些軟件都被移植到英特爾并隨第一批英特爾 Mac 一起提供。其中包括 Safari 網(wǎng)絡(luò)瀏覽器、Apple 的 Mail 電子郵件客戶端以及 QuickTime、iMovie、GarageBand、Logic 和 Final Cut 等多媒體應(yīng)用程序。

第三方軟件包必須等待其開(kāi)發(fā)人員從 PowerPC 轉(zhuǎn)換為 Intel。用戶必須等待的最重要軟件包括 Microsoft Office Suite 和 Photoshop 以及 Adobe 的其他專業(yè)工具。這些對(duì)于許多用戶來(lái)說(shuō)是關(guān)鍵工具,因此 Rosetta 的兼容性和性能對(duì)于許多用戶來(lái)說(shuō)至關(guān)重要。

Rosetta 實(shí)際上是蘋(píng)果公司對(duì)其采用的“QuickTransit”技術(shù)的命名,該技術(shù)由初創(chuàng)公司 Transitive 授權(quán)。盡管 Transitive 的總部位于加利福尼亞州洛斯加托斯,但工程團(tuán)隊(duì)的總部卻位于英國(guó)曼徹斯特。他們使用最初由曼徹斯特大學(xué)開(kāi)發(fā)的技術(shù),最初被稱為“Dynamite”。

Dynamite,以及 QuickTransit 和 Rosetta,就像后來(lái)的 68k 到 PowerPC 仿真器一樣,都是動(dòng)態(tài)重新編譯系統(tǒng)。也就是說(shuō),它們?cè)谛枰技軜?gòu)中的程序時(shí)執(zhí)行,獲取一小段代碼并在需要時(shí)進(jìn)行翻譯。這些系統(tǒng)也相對(duì)復(fù)雜,需要翻譯成中間語(yǔ)言,最后翻譯成目標(biāo)架構(gòu)。

這種方法的好處是啟動(dòng)速度快。當(dāng)代碼塊的執(zhí)行頻率超過(guò)給定閾值時(shí),可以通過(guò)更多優(yōu)化產(chǎn)生更好的性能。

Transitive 的其他產(chǎn)品允許從 MIPS 轉(zhuǎn)換為 Itanium(由 Silicon Graphics 使用)以及從 SPARC 轉(zhuǎn)換為 x86 和 Itanium。Transitive 于 2008 年被 IBM 收購(gòu)。IBM 將使用該技術(shù)向與 Apple 相反的方向進(jìn)行轉(zhuǎn)換,從 x86 到 PowerPC。

Rosetta有多成功?我認(rèn)為給它一個(gè)B+是合理的。它與某些 G5 PowerPC 指令不兼容。此外,某些類別的軟件無(wú)法翻譯,包括一些為 Mac OS 9 構(gòu)建的應(yīng)用程序、屏幕保護(hù)程序和內(nèi)核擴(kuò)展。

盡管早期的 Intel Mac 比其 PowerPC 前輩更快,但與在 PowerPC Mac 上運(yùn)行相比,在 Rosetta 下運(yùn)行程序會(huì)導(dǎo)致某些程序的性能較差。對(duì)于游戲或 PhotoShop 等計(jì)算密集型應(yīng)用程序尤其如此。

然而,Rosetta確實(shí)“足夠好”。Apple 于 2008 年成功完成向 Intel 的過(guò)渡,Rosetta 于 2010 年從 Mac OS X Lion 中刪除。

從英特爾到蘋(píng)果芯片

最近的 Mac 轉(zhuǎn)型也與性能有關(guān),有兩個(gè)方面。

2020 年,蒂姆·庫(kù)克在蘋(píng)果全球開(kāi)發(fā)者大會(huì)上宣布,Mac 系列將過(guò)渡到“Apple Silicon”。Apple Silicon 將是由 Apple 自己的內(nèi)部芯片設(shè)計(jì)團(tuán)隊(duì)設(shè)計(jì)的一系列“片上系統(tǒng)”(SoC)。CPU 將使用 Arm 指令集架構(gòu),但完全由 Apple 團(tuán)隊(duì)根據(jù) Arm“架構(gòu)”許可自行設(shè)計(jì)

設(shè)計(jì)團(tuán)隊(duì)已經(jīng)通過(guò)為 iPhone 和 iPad 設(shè)計(jì)幾代 SoC 證明了他們的能力。

第一批基于 M1 SoC 的 Apple Silicon Mac、MacBook Air、Mac Mini 和 MacBook Pro 將于 1990 年 11 月問(wèn)世。M1 之后是更高性能的 M1 Pro、M1 Ultra 和 M1 Max,然后是M2 和 M2 Pro。到 2023 年 6 月,隨著 Mac Pro 中 M2 Ultra SoC 的發(fā)布,過(guò)渡已經(jīng)完成。

為什么又是關(guān)于“Power”的變化?首先,是關(guān)于功耗。首款基于 M1 的 Mac 筆記本電腦的功耗和電池壽命明顯優(yōu)于英特爾前代產(chǎn)品。部分原因在于采用了更先進(jìn)的臺(tái)積電制造工藝。到 2010 年代末,英特爾在嘗試轉(zhuǎn)向 10 納米制造工藝時(shí)遇到了挫折。首款 Apple Silicon Mac 中的 M1 使用 TSMC 5 nm 制造工藝,其能效比當(dāng)代英特爾設(shè)計(jì)顯著提高。

該架構(gòu)本身的某些方面也可以提高能效。M1 及后續(xù)產(chǎn)品采用了 Arm 的“big.LITTLE”方法,將更大、更強(qiáng)大的內(nèi)核與更小、更高效的內(nèi)核相結(jié)合。這在需要時(shí)提供了性能和功效。

其次,這是關(guān)于蘋(píng)果對(duì) Mac 平臺(tái)的“Power”。通過(guò)控制處理器的開(kāi)發(fā),蘋(píng)果擴(kuò)展了他們的垂直整合,使他們能夠在 SoC 中包含最適合他們所需的功能,而不是英特爾提供的功能。

在過(guò)渡期內(nèi),Apple 將再次要求開(kāi)發(fā)人員以“Universal 2”格式提供與 x86-64 和 ARM64 指令集兼容的代碼。

Rosetta 2

蘋(píng)果再次確保基于 Apple Silicon 的 Mac 可以運(yùn)行現(xiàn)有的 Mac Intel 軟件,使用的系統(tǒng)品牌為“Rosetta 2”。

盡管 Rosetta 2 采用了與 PowerPC 到 Intel 過(guò)渡中使用的軟件類似的命名方式,但所使用的方法卻截然不同。

這次,系統(tǒng)通常使用從 x86-64 到 Arm 的“提前”轉(zhuǎn)換。當(dāng)程序首次啟動(dòng)時(shí),整個(gè) x86-64 程序會(huì)被翻譯為 ARM 二進(jìn)制文件,然后運(yùn)行該翻譯后的程序。每條 x86-64 指令都會(huì)轉(zhuǎn)換為一條或多條 ARM64 指令。

翻譯后的代碼在某些方面得到了蘋(píng)果硬件的幫助。

x86 和 Arm 都實(shí)現(xiàn) IEEE-754 浮點(diǎn)標(biāo)準(zhǔn)。然而,這兩種架構(gòu)在處理 NaN(“非數(shù)字”)值和舍入的某些方面存在一些差異。在軟件中精確復(fù)制這種行為可能會(huì)降低浮點(diǎn)性能。

ARMv8 的更高版本有一個(gè)擴(kuò)展,允許架構(gòu)模仿 x86-64 方法,但 M1 早于此。因此,Apple 在 M1 中加入了非標(biāo)準(zhǔn)浮點(diǎn)實(shí)現(xiàn),以幫助復(fù)制 x86。

Apple Silicon 與 Arm 標(biāo)準(zhǔn)不同的另一個(gè)領(lǐng)域是標(biāo)志的處理。標(biāo)志是根據(jù)指令結(jié)果設(shè)置的位。x86 有兩個(gè)不映射到標(biāo)準(zhǔn) Arm 標(biāo)志的標(biāo)志;PF 代表“parity”,AF 代表“adjust”,它們都受到常見(jiàn) x86 指令的影響,例如整數(shù)加法和寄存器比較。使用軟件根據(jù)這些通用指令的結(jié)果設(shè)置這些標(biāo)志將非常耗時(shí)。

M1 有一個(gè)非標(biāo)準(zhǔn)指令集擴(kuò)展,可以幫助解決這個(gè)問(wèn)題。它計(jì)算 x86 在執(zhí)行加法、減法和比較等 ARM64 指令時(shí)將存儲(chǔ)在 PF 和 AF 中的值。然后它將這些值存儲(chǔ)在 M1 的“標(biāo)志寄存器”之一的位 26 和 27 中。如果相應(yīng)的 x86 代碼需要讀取 PF 或 AF 標(biāo)志,則翻譯后的代碼將訪問(wèn)這些位。

如果“提前”翻譯(例如使用“即時(shí)”編譯的代碼)不起作用,則 Rosetta 2 可以使用動(dòng)態(tài)翻譯,就像原始的 Rosetta 軟件一樣。

蘋(píng)果為何如此成功?

我們?cè)谌齻€(gè)主要的 Mac 架構(gòu)轉(zhuǎn)變中都看到了非常不同的模擬方法。原始 Motorola 68k 到 PowerPC 的一次一條指令,PowerPC 到 Intel 的“動(dòng)態(tài)”轉(zhuǎn)換,以及 Intel 到 Apple Silicon 的“提前”轉(zhuǎn)換。蘋(píng)果已經(jīng)從使用小型內(nèi)部團(tuán)隊(duì)轉(zhuǎn)變?yōu)樵俅螌④浖跈?quán)給內(nèi)部團(tuán)隊(duì)。

有一些共同的主題幫助蘋(píng)果度過(guò)了所有的轉(zhuǎn)變:

性能:在每種情況下,新架構(gòu)提供的性能都明顯優(yōu)于被替換架構(gòu)的性能。這使得翻譯造成的任何性能損失都得以顯著或完全減輕。

垂直整合:一些關(guān)鍵性能關(guān)鍵應(yīng)用程序(例如 Safari 網(wǎng)絡(luò)瀏覽器)是由 Apple 開(kāi)發(fā)的,因此用戶永遠(yuǎn)不需要使用模擬或翻譯版本。

向后兼容性(或缺乏):Apple 沒(méi)有維護(hù)向后兼容性的政策。該公司已經(jīng)滿足于取消對(duì)舊應(yīng)用程序的支持。例如,這使得需要支持的遺留應(yīng)用程序的壽命和數(shù)量比 Windows 的情況要小。

開(kāi)發(fā)人員的期望:與此一致,Apple 希望開(kāi)發(fā)人員發(fā)布新版本的軟件,并提供可在新舊架構(gòu)上運(yùn)行的可執(zhí)行文件。

關(guān)于英特爾向 Apple Silicon 過(guò)渡的一些要點(diǎn):

架構(gòu)很重要:與 x86 相比,ARM64 架構(gòu)的本質(zhì)使轉(zhuǎn)換變得更容易。例如,ARM64 比 x86-64 具有更多的整數(shù)寄存器,使其能夠?qū)?x86-64 寄存器的翻譯狀態(tài)完全保留在 ARM64 寄存器中。

架構(gòu)靈活性:Apple 已經(jīng)能夠向標(biāo)準(zhǔn) Arm 架構(gòu)添加指令,以實(shí)現(xiàn)更高效的 x86 指令轉(zhuǎn)換。對(duì)硬件堆棧的幾乎完全控制使蘋(píng)果比依賴 Arm 自己設(shè)計(jì)的公司更具優(yōu)勢(shì)。

蘋(píng)果能夠在處理器架構(gòu)之間切換 Mac 的方式很難不讓人印象深刻。這些切換對(duì)用戶的干擾有限。反過(guò)來(lái),這些轉(zhuǎn)變使 Mac 能夠生存并繁榮近四十年。

編輯:黃飛

聲明:本文內(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)注

    68

    文章

    19100

    瀏覽量

    228813
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50206

    瀏覽量

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

    關(guān)注

    68

    文章

    10804

    瀏覽量

    210826
  • 蘋(píng)果
    +關(guān)注

    關(guān)注

    61

    文章

    24336

    瀏覽量

    195552
  • intel
    +關(guān)注

    關(guān)注

    19

    文章

    3478

    瀏覽量

    185650

原文標(biāo)題:我們能蘋(píng)果這顆芯片學(xué)到什么?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    對(duì)稱多處理器和非對(duì)稱多處理器的區(qū)別

    隨著計(jì)算需求的日益增長(zhǎng),單處理器系統(tǒng)已經(jīng)無(wú)法滿足高性能計(jì)算的需求。多處理器系統(tǒng)應(yīng)運(yùn)而生,它們通過(guò)將多個(gè)處理器集成到個(gè)系統(tǒng)中來(lái)提高計(jì)算能力。在多處理
    的頭像 發(fā)表于 10-10 15:58 ?367次閱讀

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

    ARM處理器和CISC(復(fù)雜指令集計(jì)算機(jī))處理器在多個(gè)方面存在顯著的區(qū)別。這些區(qū)別主要體現(xiàn)在架構(gòu)原理、性能與功耗、設(shè)計(jì)目標(biāo)、應(yīng)用領(lǐng)域以及市場(chǎng)生態(tài)等方面。
    的頭像 發(fā)表于 09-10 11:10 ?322次閱讀

    國(guó)產(chǎn)新型AI PC處理器亮相上海

    處理器
    北京中科同志科技股份有限公司
    發(fā)布于 :2024年08月01日 09:21:01

    處理器的定義和種類

    處理器,作為計(jì)算機(jī)系統(tǒng)的核心部件,承載著執(zhí)行指令、處理數(shù)據(jù)的重要任務(wù)。隨著信息技術(shù)的飛速發(fā)展,處理器的種類和性能也在不斷提升。本文將對(duì)處理器的定義進(jìn)行闡述,并詳細(xì)介紹
    的頭像 發(fā)表于 05-12 18:12 ?2318次閱讀

    相控陣?yán)走_(dá)信號(hào)處理的原理和術(shù)語(yǔ)

    雷達(dá)探測(cè)、測(cè)距和方向估計(jì)來(lái)源于統(tǒng)計(jì)假設(shè)檢驗(yàn)和參數(shù)估計(jì)理論。該理論的主要應(yīng)用是自適應(yīng)波束成形的推導(dǎo),將在以下講座中予以討論考慮。在這一講中,我們將介紹單脈沖估計(jì)的推導(dǎo),在后續(xù)的講座中,會(huì)單脈沖估計(jì)將擴(kuò)展為自適應(yīng)陣列或STAP的
    發(fā)表于 04-24 09:36 ?642次閱讀
    相控陣?yán)走_(dá)信號(hào)<b class='flag-5'>處理</b>的原理和術(shù)語(yǔ)

    主流嵌入式微處理器的結(jié)構(gòu)與原理是什么 常見(jiàn)的嵌入式微處理器類型包括

    主流嵌入式微處理器的結(jié)構(gòu)與原理 嵌入式微處理器種專門(mén)設(shè)計(jì)用于嵌入式系統(tǒng)的微處理器。它具有高度集成的特點(diǎn),能夠執(zhí)行特定的任務(wù)并且通常具有低功耗。主流嵌入式微
    的頭像 發(fā)表于 04-21 09:32 ?556次閱讀

    國(guó)產(chǎn)兆芯主板GM9-6002采用KX-U6780A處理器#兆芯處理器

    處理器主板
    國(guó)產(chǎn)計(jì)算機(jī)小秦
    發(fā)布于 :2024年04月13日 13:58:31

    國(guó)產(chǎn)GPU搭配國(guó)產(chǎn)處理器平臺(tái)主機(jī)

    處理器gpu
    GITSTAR 集特工控
    發(fā)布于 :2024年03月27日 14:11:32

    透百度智能云千帆大模型平臺(tái)全面升級(jí)!

    透】百度智能云千帆大模型平臺(tái)全面升級(jí)!
    的頭像 發(fā)表于 03-22 10:44 ?434次閱讀
    <b class='flag-5'>一</b>圖<b class='flag-5'>講</b>透百度智能云千帆大模型平臺(tái)全面升級(jí)!

    飛騰2000 4核處理器國(guó)產(chǎn)主板介紹# 飛騰主板# 國(guó)產(chǎn)主板# 飛騰處理器

    處理器服務(wù)
    jf_67464575
    發(fā)布于 :2024年02月03日 10:15:41

    如何提高處理器的性能

    提高處理器主頻可以提高處理器的性能,但是到定程度就不能再提高了,我們需要通過(guò)雙核,或者多核來(lái)提高處理器的性能。
    的頭像 發(fā)表于 01-24 09:59 ?2288次閱讀
    如何提高<b class='flag-5'>處理器</b>的性能

    聊芯片設(shè)計(jì)的NDR是什么?

    今天突然想聊聊route相關(guān)的問(wèn)題,一講NDR是什么,我也梳理總結(jié)下我對(duì)NDR的認(rèn)識(shí)。
    的頭像 發(fā)表于 12-06 15:14 ?1689次閱讀

    改變我們生活的鋰離子電池 | 第一講:什么是鋰離子電池?專家談鋰離子電池的工作原理和特點(diǎn)

    改變我們生活的鋰離子電池 | 第一講:什么是鋰離子電池?專家談鋰離子電池的工作原理和特點(diǎn)
    的頭像 發(fā)表于 12-06 15:12 ?736次閱讀
    改變我們生活的鋰離子電池 | 第<b class='flag-5'>一講</b>:什么是鋰離子電池?專家談鋰離子電池的工作原理和特點(diǎn)

    改變我們生活的鋰離子電池 | 第二:鋰離子電池的優(yōu)點(diǎn)和充電時(shí)的注意事項(xiàng)

    改變我們生活的鋰離子電池 | 第二:鋰離子電池的優(yōu)點(diǎn)和充電時(shí)的注意事項(xiàng)
    的頭像 發(fā)表于 12-05 18:10 ?466次閱讀
    改變我們生活的鋰離子電池 | 第二<b class='flag-5'>講</b>:鋰離子電池的優(yōu)點(diǎn)和充電時(shí)的注意事項(xiàng)

    一講芯片設(shè)計(jì)中的verilog是什么

    相信不少人都聽(tīng)過(guò)verilog這個(gè)詞,今天我就想講一講我所理解的verilog是什么。
    的頭像 發(fā)表于 12-04 13:52 ?1050次閱讀