接續一看就懂的 一看就懂的 IC 產業結構與競爭關係,《一看就懂的IC》系列將持續為大家介紹 IC 與硬體的核心基礎概念,此為第一集。
還記得我們在先前晶圓代工系列中提到的「半導體」、「IC」嗎?
積體電路(IC 晶片)是將複雜的電路微縮到晶圓上,再經過兩三百道以上的複雜工序、完成封裝測試後,所製造出的電子元件。
IC 可以說是一個完整的電路系統,能用來處理資訊。電腦、手機、數位相機、電視、冰箱… 等消費性電子產品或家電用品,裡面全都有 IC晶片。
其實我們在之前只明確介紹了「晶圓代工」的技術環節。在這邊為讀者澄清一下觀念。所以這時候的你可能還是搞不懂:
-
IC 的用途具體來說是什麼?
CPU、GPU、記憶體等等都是 IC 噢!
-
為什麼要用半導體?
以前的電腦是由真空管做的,但因成本過高、效能低,才變成用半導體元件電晶體取代。
-
為什麼都說電腦的世界只有 0 與 1?
因為電腦採用的是二進位制。(人類是用十進位制)
-
電晶體開開關關的任務是為了什麼?
做二進位邏輯運算的邏輯閘。
-
組成電腦的處理器、記憶體、螢幕,元件之間的關係是什麼?
依據馮紐曼的架構來的。至今全世界的電腦仍採用此架構。
好啦,在〈一看就懂的 IC〉的系列中,我們就要來解答這幾個問題。
本系列將為讀者科普一下計算機構造和 IC 晶片的原理。不但是看懂高通與聯發科等 IC 設計大廠在幹嘛之前的必讀知識,也能瞭解一下台灣電機系與資工系到底在學什麼。
啪嗒啪嗒打著程式… 你有想過,電腦是怎麼讀的懂你的程式呢?電腦該怎麼做運算呢?
一天到晚聽到的處理器、記憶體、記憶體的讀寫次數、暫存器… 等等名詞,到底是什麼意思呢?
等等… 你有想過,電腦到底又是怎麼來的嗎?(沒有,因為你只想到你自己。就像你不知道,在非洲每分鐘過去、就是60秒過去了。)
每次查詢相關名詞或翻開電腦介紹書,總是乏味又難懂到難以看完嗎?放心,這將會是你看過最不無聊的硬體結構介紹!
電腦是怎麼來的?
ENIAC:情人節誕生的奇蹟
普遍認為最早的通用電腦,是美國賓州大學的莫奇來 (Mauchly) 和他的學生埃克特 (Eckert) 在 1946 年 2 月 14 日當天所發表的「ENIAC」 。 情人節別再討論單身魯了,人家可是在情人節顛覆世界呢…
ENIAC 計算機在進行每一次運算之前,都須根據運算要求、把不同的元件用人工插接線路的方式連接在一起。將輸入裝置和輸出裝置設好後,才進行通電……啪!一聲,電腦噠噠噠的開始運作。

但現在可能正用電腦看這篇文章的你,好像不需要在開機前把電線插來插去才能使用?
因為這個電路沒有儲存程式的功能。最早的計算機器僅內涵固定用途的程式,比如一台「計算機器」僅有固定的數學計算程式,除此之外便無其他,無論是文書處理或玩遊戲都不行。
若想要改變這台機器的功能,你必須更改線路結構、甚至重新設計機器。
太麻煩了吧!有沒有什麼更好的辦法呢?比如,做出一台能跑遊戲又能做文書處理的「通用電腦」?
EDVAC:馮·紐曼結構與現代電腦
1945 年 6 月,是現代電腦科學的里程碑。著名的美籍猶太裔數學家馮·紐曼 (John von Neumann) 與多位學者聯名發表了一篇長達101頁的報告《First draft of a report on the EDVAC》其中包括兩大建構電腦的原則:
- 大膽捨棄了十進制、改以二進制運算和儲存資料。
- 要被執行的程式得先放在記憶體中、要執行時再去記憶體中抓出來。
事實上,這兩點原則都指向了報告最核心的概念——「可儲存程式的電腦 (Stored Program Computer) 」。
如果是一台能儲存程式的電腦,只要一開始先將「文書程式」與「遊戲程式」都載入記憶體中,再告訴電腦去記憶體的哪一個位置開始執行就可以完成,在不需更動硬體的情況下就能讓電腦變得更加有彈性。
1951年,美國軍方根據這份報告、並透過馮·紐曼的協助,斥資五十萬美元打造了計算機「EDVAC」。

馮紐曼與 EDVAC 電腦
相較於十進位、又須人工插接電路的 ENIAC,可以說 EDVAC 是第一台現代意義的通用計算機,至今全世界的電腦皆仍採用「馮·紐曼架構」。
講白點,馮紐曼架構就是一個造電腦的「數學模型」,也是目前唯一成功被實作出、全世界電腦唯一使用的數學模型。
繼馮紐曼電腦後、第二個被認為可能實作出來的數學模型為量子電腦 (Quantum Computer) ,但到現在還沒真的成功做出來。其他也還有一些架構,比如哈佛架構、仿生電腦,基本上都還處於理論階段,沒有出現在商業用上。
(若是讀者對於量子電腦架構有興趣的話,歡迎參考Kurzgesagt 可愛動畫介紹噢。記得開中文字幕!)
馮紐曼能打造一個電腦架構,至今延續超過 70 年全世界的電腦都還在用它,實在太厲害。
除此之外,馮紐曼還是博弈論的創始人,也被稱作「博弈論之父」;博弈論被認為是 20 世紀經濟學最偉大的成果之一。另外他在量子力學上也有著重大貢獻…
咳咳,離題了。總之希望經過這樣的介紹,您能對馮紐曼此人天才的逆天程度有一些概念啊。
備註:不過可儲存程式電腦這個概念並不是由馮·紐曼提出、而是圖靈 (Turing) 提的圖靈機 (Turing Machine) 噢~
就是小班在電影模仿遊戲中飾演的那位,馮·紐曼只是將可儲存程式電腦真的實作出來。
但你想進一步知道圖靈是為什麼會提出圖靈機這個數學模型嗎?那你得再參考我先前寫的一篇文章了。(天啊,這接下來又得為大家開一個專題討論了)
馮紐曼的現代電腦架構
接下來,讓我們針對馮紐曼架構、來為讀者做進一步的解釋,同時瞭解 CPU 與記憶體的設計原理。
馮紐曼架構( 可儲存程式電腦)
在馮紐曼式的電腦中,電腦被分成了五大單元、缺一不可,分別稱作「控制器」、「運算器」、「儲存器」、「輸入設備」(Input)與「輸出設備」(Output)。
「輸入設備」就是你用來將外部資料輸入到電腦的東西,比如鍵盤、滑鼠。「輸出設備」就是將電腦內部的資料輸出到外部給你看的東西,比如螢幕、印表機。
蠻多新創公司、遊戲開發商、工程師、技術宅宅都會用 .io 的網址,比如 spring.io。讓 .io 變成繼 .com 之後的熱門網域。原來是因為 io 剛好有 I/O (Input/ output) 的意義~ XD

那「控制器」、「運算器」和「儲存器」又是什麼呢?
在這裡我們就要講一個小當家做菜的故事啦。
儲存器,也就是實際上的「記憶體」。可以把記憶體想像成一個大櫃子,每個櫃子都有一個編號,我們稱為位址(Address)。常常聽到的「記憶體位址」就是這個意思噢!
這些櫃子中,會用來儲存正在執行中程式的「程式碼」(指令)、和待處理的「資料」。
想像一下,這些指令就是我們的食譜、資料就是食材;對資料要求做加減乘除的處理程序,其實就是對食材做蒸煮炒炸的感覺呢!

等等,那是誰要負責執行這些食譜和煮食材呢?當然就是我們的廚師、也就是處理器要做的事情啦!
但這個廚師腦子記不太得東西,你得告訴他:要去記憶體位址哪邊抓食譜、和要去記憶體位址的哪邊抓食材。這個動作就叫做「Memory Read」(讀取記憶體)。
想想你炒菜的時候,一定要先把料從冰箱拿出來放到鍋子的旁邊啊,總不會要炒菜的時候、才衝到冰箱把菜拿出來吧?這樣鍋子都要燒乾了。
所以我們把要煮的食材(要運算的資料)從記憶體抓出來後,會先把它暫存到 CPU 的一個空間,這個空間就叫做「暫存器」,專門放即將要算的資料、和剛算好的資料。
你就想像暫存器(Register)就是你鍋子邊放要煮食材、和剛煮好的菜的盤子。依據不同架構的 CPU ,暫存器的數量會不同。像 ARM 和 MIPS 架構的處理器裡面便有 32 個暫存器。

然後 CPU 廚師會開始根據食譜煮煮煮食材… 煮完後,又把剛煮好的菜餚先放到手邊的盤子中,也就是 CPU 中的另一個暫存器。

但你煮完的菜餚總不能一直放在廚房繼續佔空間啊,廚房是要煮菜的地方,你得放回倉庫存放啊!
所以 CPU 會把煮好的菜(運算完的結果)送回記憶體的格子中。這個動作就叫做「Memory Write」(寫入記憶體)。
同時,廚師會繼續根據「程式計數器」(Program Counter, PC)上記載的記憶體位址,來取得下一張要執行的食譜。你就想像它只是另一個用來放食譜單子的倉庫地址的盤子!
Program Counter 是一個特殊的暫存器,專門用來存放下一個要被執行的指令所在的記憶體位址。也可以叫它 Instruction Address Register 或 Instruction Counter。
哇!輕輕鬆鬆就瞭解馮紐曼架構了,以後再看到 CPU、記憶體、記憶體位址、暫存器、記憶體的讀寫次數、Program Counter… 之類的討論和名詞,相信不會再害怕了呢~ヽ(●´∀`●)
講這麼多,這個架構在實際上的硬體,是長什麼樣子呢?
在一塊個人電腦的主機板上,可以插上 CPU 處理器、主記憶體、顯示卡,再接上硬碟,連接到鍵盤,連上螢幕,最後接上電源。
這樣就是一台馮紐曼架構的電腦啦!
來看一下我們講的馮紐曼架構五大單元,是不是都在上面:「控制器」與「運算器」(都包在CPU裡面)、「儲存器」(記憶體)、「輸入設備」、「輸入設備」。

登愣!這樣就出現一台可以正常運作的電腦了!很簡單吧~~以後別怕身邊沒有工具人,自己當自己的工具人吧~ (〒︿〒)
大家想玩玩看的話,閒閒沒事就把主機板打開,發揮一下動手拆的駭客精神、看看裡面有哪些東西吧!還可以用來烤煎餅噢。看完內部架構(煎完煎餅)再裝回去就沒事了XD
https://www.youtube.com/watch?v=3ArW4uogl9w
這時候就要回顧一下一開始說的… 還記得我們提到,為什麼馮紐曼架構電腦,為什麼會比本來的 ENIAC 電腦更好呢?
因為在電腦要執行程式之前,先將要執行的「程式碼」與「資料」儲存於記憶體。若要變更任務,只需要修改程式即可,省去更改線路的麻煩。
另外,還記得「指令集架構」這個名詞嗎?
結合我們先前在 Intel x86 與 ARM 架構大戰 一文中介紹過的——任何產品在設計的時候,都要先制定規格、再依據規格設計出相應的產品。當我們想要設計 CPU 時,要制定的規格就是「指令集架構」(Instruction Set Architecture, ISA )。
- 指令集
- 該指令集依附的機器結構敘述(Hardware Information)

提供工程師造計算機的抽象規格。根據相同的抽象規格,可以採用不同的方式造出計算機,然而造出來的計算機會彼此相容,也就是功能、規格相同。
所以如果我們把 ISA 和馮紐曼架構結合在一起,就是:
指令集架構(ISA)+ 馮紐曼架構 (Von Neuman Machine)
= 電腦基礎架構(Basic Computer Structure)
無論是伺服器、Workstation、個人電腦、筆電,還是你的手機、平板電腦等電子產品,至今!全部!都是採用馮紐曼架構的電腦噢!
可以想想並找找看手機的運算單元、儲存單元、 I/O裝置分別是哪些硬體噢!把手機拆開來看看也行 <-不負責任推坑,要知道怎麼裝的回去喔!
歡迎大家收看今天的〈邁向硬體宅之路〉第一集。我們今天學到了:
- 馮紐曼是一位多可怕的逆天天才。
- 馮紐曼架構有五大單元(控制、運算、儲存、I/O)
- 無論手機電腦等電子產品全都是馮紐曼架構。
- 「I/O設備」對應到的,就是鍵盤、滑鼠,與螢幕、印表機。
- 「控制/運算/儲存單元」如何運作,也就是 CPU 和記憶體之間的關係(廚師拿食材與指令 / 倉庫)
- ISA + 馮紐曼架構 = Basic Computer Structure
快脫離曾經的 100% 科技小白,自己的工具人還是自己當吧!
等等,我還有個問題!記憶體和硬碟,到底有什麼差別?(難道硬碟和 CPU 的關係就是這樣嗎?)
不噢,CPU 不會直接去硬碟抓資料。有些產品雖然叫「記憶體」、比如快閃記憶體 Flash,但它的身份其實是硬碟;符合我們這邊介紹的記憶體是 DRAM。
蛤,我還是聽不太懂差異耶?而且記憶體又有 DRAM、SRAM、SDRAM、DDR、LPDDR、Nor Flash、NAND Flash…. 各式各樣的,到底差異在哪邊啊(暈)
三星、SK 海力士、美光、金士頓,或台灣的創見、威剛、旺宏等「記憶體大廠」,又差異在哪?分別銷售哪幾種產品呢?
本系列的第二集,就讓我們來更進一步介紹記憶體吧!會在下週日公布,還請準時收看噢。
點我看第二集:DRAM、NAND FLASH 最近貴到炸,你還搞不懂記憶體的差異嗎?
Lynn 的補充:
如果我們利用 ARM 架構下的組合語言,把 CPU 要執行的指令寫出來,就會是:
ADD R0, R1, R2 //R0 是目的暫存器,R1 和 R2 是來源暫存器。
意思是把編號 R1 和 R2 暫存器中的數字拿出來做「ADD」(加法),加完後的結果存回 R0 中。
也就是:若 R1 和 R2 的數字分別是 1 和 2,加完後為 3、3 會被存回 R0 這個暫存器中。這段程式碼背後的過程機制。也就是上面所介紹的內容。
- 資料參考來源:
- 交通大學-計算機組織開放課程
- 北京大學-計算機組成開放課程
- 圖片來源:
- 本文圖片皆為 CC 授權圖、或使用 CC 授權圖自製,轉載請經作者同意。



