CPU上的幾十億個晶體管是如何被控制?
設計師對每個晶體管都心里有數?在集成電路發展的早期,是這樣的。
早期的CPU世界上第一個商用微處理器,Intel 于1971年推出的 4004,僅包含2250個晶體管。這時的CPU可以完全由設計師繪制,設計師當然也清楚每個晶體管都是做什么的。
早期的其他CPU也是類似情況,比如1974年出品的 Intel 8080,共包含4500個晶體管;1975年出品的6502,僅3510個晶體管。
當然,CPU這種數字邏輯芯片設計的基本單元其實不是晶體管,而是邏輯門,或者更大一點的觸發器。當然,每個邏輯門和觸發器所包含的晶體管都是固定的,也就可以認為,清楚知道每個邏輯門和觸發器的分工和作用,就能清楚的知道每個晶體管的分工了。
以上,是CPU設計的手工時代,設計師了解,也必須了解每個晶體管的分工和作用。
現代的CPU由于現代芯片規模巨大,通常都利用EDA工具來生成和驗證門級網表。邏輯設計師們通常工作在RTL(寄存器傳輸級)級。
同時,由于IP核的大量使用,設計師已經很難清楚每個邏輯門,或者每個晶體管的分工了。
類似軟件開發我們可以用軟件開發類比:
以前的軟件開發,工程師直接用匯編語言編寫程序。工程師也清楚每條機器指令的作用現代的軟件開發,工程師使用高級語言編寫程序(如C++,Java,Go,Python),還會使用很多外來程序庫(如Pytorch),這樣,工程師已經難以清楚每條機器指令的作用了下一篇請問xrxsxsmax