乙個晶元的誕生 從需求到實物

2021-09-27 16:34:00 字數 1191 閱讀 1049

我們用的手機電腦最重要的部分就是裡面的晶元,本文試圖講講晶元從設計到製造出來的過程。水平有限,將就看吧。

任何產品都是為了滿足需求,晶元也是如此,首先我們要知道為啥需要晶元。一台計算機要工作需要軟體和硬體的協同合作,硬體包括晶元和一大堆外設,我們只關注晶元部分,可以認為軟體就是直接執行在晶元之上的。我們一般寫的程式都是使用高階語言,再由編譯器幫助我們生成計算機可以理解的機器語言,那麼晶元的需求就是要能讀懂我們餵給它的機器指令。一般我們需要的指令有算術邏輯、控制等,指令越豐富功能越多,晶元越複雜,我們想要做的任何事都可以由最基本的指令組合完成。那麼我們就可以拋開那些上層軟體直接關注指令層面的東西,指令的集合就是指令集,它是軟體開發人員與晶元的介面,開發者無需知道晶元是怎麼做出來的,只要知道指令集就能控制晶元工作了。晶元設計的第一步就是設計指令集,這當然是根據軟體的需求設計出來的。

有了指令集,但是晶元怎麼才能實現指令操作呢,這就需要知道晶元的幾個基本組成部分。作為計算機的鼻祖,馮諾依曼將計算機分成運算、控制、儲存、輸入、輸出。再具體一點就是指令讀取、解碼、執行、訪存、寫回這幾個微操作。計算機迴圈往復的執行這幾個操作就可以執行程式了。一條指令包含操作碼和運算元,通過上述幾個微操作指令集就可以跟計算機的邏輯硬體對應起來了。當然計算機發展到今天已經相當複雜,遠不止上面那幾個微操作,這裡以最基本最簡單的方式呈現。指令集的設計機器微架構的設計就是通常所說的ip設計,主要的廠商有arm、mips等,產品有arm的cortex系列。

怎麼將微操作轉換成硬體呢。這是乙個從邏輯設計到電路設計的過程。我們知道組成晶元最基本的零件是電晶體,但是光有電晶體是沒有任何作用的,必須要組成具有邏輯功能的電路,其中最基本的邏輯電路一般稱為閘電路,包括與或非三種,由這三種基本的邏輯門就可以組合出複雜的有實際功能的基本元器件,比如加法器、移位器、比較器等,晶元執行中的各種微操作就可以通過一系列的邏輯電路實現。於是我們可以先將微操作表示為各種邏輯門的形式,再轉換為電路形式,最後是物理設計,即將電路設計轉換為積體電路的物理布局圖,這張圖可以給晶圓廠生產晶元。這一部分一般被稱作ic設計,主要的廠商有高通、華為海思、聯發科等。

有了晶元設計的物理版圖,晶圓廠就可以直接拿來生產具體的晶元。晶圓廠的工作就是將設計出來的晶元製造出實物。這個過程技術含量應該是最高的,也是最燒錢的。當前技術最強的公司當屬台積電。晶圓其實就是圓柱形的單晶矽,首先切片,再將由積體電路版圖製作成的掩膜覆蓋在切片上,用光刻機照射,這樣在切片上就會留下不同的印記,再經過化學方法加深印記,電路就會在切片上蝕刻出來,再拿去封裝測試,可用的晶元就製造出來了。

乙個 PWA 的誕生

本文可以提前讓大家熟悉 pwa 搭建,文中提到的配置來自乙個 redesign 的 nipponcolors,最近才做好的,使用的各種庫都是現在 2018.09.14 最新的,可用的,另外本文不討論應用功能,單純講講 pwa 的搭建。vue cli3 與 2 的區別挺大的,3 預設搭建工程並非像 2...

從linux0 11看乙個程序的誕生

系統有乙個gdt表。該錶儲存了系統和所有程序的tss和ldt描述符資訊。tss就是我們平時說的程序上下文。每個程序有乙個ldt陣列,裡面儲存了 段和資料段的描述符資訊。首先,從乙個程序的誕生說起。我們知道,通過fork可以建立乙個程序。下面我們來看一下fork的過程都做了什麼事情。先通過find e...

乙個激情任務的誕生

時間線 2014年 assert這個東西,在前年c 的 中,我偶然一瞥,不以為意,略懂而過 時間線 2015年年底 去年年底,需要為重構的專案新增單元測試,好嘞,就私下來試試,淺嚐很易,便不以為意,現在忘記了是什麼原因,隔了幾天拉著lll到隔壁小黑屋,耗時一天半,在網上不斷查,深入去研究單元測試 深...