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

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

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

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

