生活中的一切都遵循一種方法論,尤其是為了開(kāi)發(fā)新產(chǎn)品。它由一系列協(xié)議組成,旨在在最短的精確時(shí)間內(nèi)達(dá)到明確的結(jié)果。CPU的設(shè)計(jì)與此并不陌生,這就是為什么我們要描述設(shè)計(jì) CPU 時(shí)遵循的不同階段的原因。
如果我們將幾年前的 CPU 與新的 CPU 一起購(gòu)買,乍一看它們看起來(lái)是一樣的,但事實(shí)并非如此,新設(shè)計(jì)的更大復(fù)雜性需要更長(zhǎng)的工作時(shí)間,因此更多合格的投入。確實(shí),每個(gè)新的制造節(jié)點(diǎn)都允許容納更多的晶體管,但這也涉及更多的工作,并且鑒于開(kāi)發(fā)時(shí)間是無(wú)情的,新設(shè)計(jì)的設(shè)計(jì)必須遵循一系列有序的階段。
一切從選擇制造節(jié)點(diǎn)開(kāi)始
第一階段不是由工程師完成,而是由管理人員執(zhí)行,他們與不同的代工廠協(xié)商數(shù)百萬(wàn)美元的合同,并對(duì)生產(chǎn)水平和成本做出不同的預(yù)測(cè)。
制造節(jié)點(diǎn)的規(guī)格和成本將決定架構(gòu)師創(chuàng)建芯片的面積、晶體管數(shù)量的預(yù)算以及創(chuàng)建新 CPU 設(shè)計(jì)所需的開(kāi)發(fā)時(shí)間。
下面是一個(gè)大綱的實(shí)現(xiàn):

布局規(guī)劃只不過(guò)是一種方案,其中我們指示構(gòu)成 CPU 的一般基本元素,以便在空間中對(duì)它們進(jìn)行排序。對(duì)于一般元素,我們不是在談?wù)搶?CPU 核心放在此處、將緩存放在此處、將 GPU 放在此處等。
但我們指的是更多基本元素,例如組合電路,例如多路復(fù)用器、不同類型的邏輯門、ALU、內(nèi)存緩沖區(qū)等。這樣做是因?yàn)橛布枋稣Z(yǔ)言要求指定不同元素之間的互連,因此必須拿筆和紙,一張巨大的紙來(lái)互連方案中的不同元素。
創(chuàng)建的第一個(gè)圖不是最后一個(gè),但它用于將 CPU 的不同模塊組織成兩種類型的塊:
前者被稱為固定塊,它們包括不會(huì)經(jīng)歷設(shè)計(jì)變化的元素,并且由于它們的性質(zhì)允許,它們的面積將保持靜止。
另一方面,通用塊是將要改變的部分,特別是因?yàn)榕c芯片其他部分的交互需要它,或者僅僅是因?yàn)樗麄冞€不知道最終版本中將實(shí)施什么設(shè)計(jì)。
如果處理器的布局規(guī)劃設(shè)計(jì)中有足夠的空間來(lái)改進(jìn)某些元素,則會(huì)尋求為這些部分集成更先進(jìn)的解決方案,這些部分正在并行開(kāi)發(fā)中,我們將在下一節(jié)中看到。
CPU 的第三個(gè)設(shè)計(jì)階段:ISA 的定義

下一階段是定義要使用的寄存器和指令集,在這些代代相傳的 CPU 的情況下,實(shí)現(xiàn)可能看起來(lái)很容易,但是添加新的指令和寄存器帶來(lái)了它重組本身就足夠復(fù)雜的事物。
在 GPU 中則不同,它們不運(yùn)行程序,每一代都意味著能夠以更通用的方式改變其著色器單元的 ISA 的性質(zhì)。所以如果需要?jiǎng)h除指令是可以的,但在CPU中不行,刪除一條指令或者一個(gè)寄存器就是破壞了與軟件的兼容性。
在任何類型的處理器的設(shè)計(jì)中,負(fù)責(zé)處理通常大小可變的數(shù)據(jù)的部分以及最終要經(jīng)歷這個(gè)設(shè)計(jì)階段的部分。
CPU 設(shè)計(jì)階段的第 4 階段:在 FPGA 中進(jìn)行測(cè)試
不,我們還沒(méi)有到最后階段,但有必要證明設(shè)計(jì)是功能性的,為此,F(xiàn)PGA 板通常以巨大的矩陣相互連接。每個(gè) FPGA 都經(jīng)過(guò)編程或配置,作為我們正在設(shè)計(jì)的 CPU 或 GPU 整體設(shè)計(jì)的一個(gè)元件。
這里的想法不是獲得全速,而是通過(guò)慢動(dòng)作檢查設(shè)計(jì)是否有效。因此,我們將擁有比最終處理器高得多的延遲和低得多的速度,但我們感興趣的是所有元件都能正常工作。
CPU的第五個(gè)設(shè)計(jì)階段:I/O、電源和時(shí)鐘

第四階段已經(jīng)包括芯片的創(chuàng)建是創(chuàng)建最終的芯片,但我們發(fā)現(xiàn)自己有輸入問(wèn)題,一方面需要設(shè)計(jì)電路中的能量分布,另一方面是時(shí)鐘的能量分布信號(hào),其中一些將來(lái)自將被細(xì)分的主時(shí)鐘,而另一些將擁有自己的時(shí)鐘。
你要做的是將我們?cè)谏弦还?jié)中看到的平面圖用一個(gè)正方形或長(zhǎng)方形包圍起來(lái),分成多個(gè)象限。在象限的外部,它被分配了一個(gè)特定的能量或 I/O 功能。在這里設(shè)計(jì)了芯片的周邊,并標(biāo)記了與外圍設(shè)備和存儲(chǔ)器的不同通信接口的位置。
在這個(gè)階段,如果不同元件的設(shè)計(jì)允許達(dá)到預(yù)期的時(shí)鐘速度,所有關(guān)于電能分配的文檔也將被檢查。
處理器驗(yàn)證
在設(shè)計(jì)之后是相同的驗(yàn)證。其中完成的設(shè)計(jì)由一個(gè)完全不同的團(tuán)隊(duì)驗(yàn)證,該團(tuán)隊(duì)在其可能存在的物理層面上尋找設(shè)計(jì)缺陷。驗(yàn)證團(tuán)隊(duì)的知識(shí)與設(shè)計(jì)的知識(shí)完全不同。
這樣做的原因是它們涉及非常不同的分支,并且驗(yàn)證團(tuán)隊(duì)更專注于檢測(cè)和糾正 CPU 物理實(shí)現(xiàn)中發(fā)生的錯(cuò)誤,而不是其架構(gòu)中發(fā)生的錯(cuò)誤,而架構(gòu)不會(huì)改變?cè)c(diǎn)。與建筑世界類似的是一群工人和承包商,他們制作房屋或建筑物的原型并檢測(cè)影響最終設(shè)計(jì)性能且在模擬中不可見(jiàn)的錯(cuò)誤。

