【Lynn 寫點科普】你知道你正在用的電腦是 70 年前發明的馮紐曼架構嗎?

啪嗒啪嗒打著程式… 你有想過,電腦是怎麼讀懂你的程式的呢?電腦又怎麼做運算?一天到晚聽到的處理器、記憶體、記憶體的讀寫次數、暫存器… 等等名詞,到底是什麼意思呢?
評論
評論

《一看就懂的 IC》系列,將延續「一看就懂的 IC 產業結構與競爭關係 」,繼續為讀者科普一下計算機構造和 IC 晶片的原理。

不但能瞭解台灣的電機系與資工系在學些什麼,也是看懂高通、聯發科、台積電、美光等各類 IC 大廠產品策略的必讀知識。

本集作為系列第一篇文,讓我們來看看——什麼是馮紐曼架構。

啪嗒啪嗒打著程式… 你有想過,電腦是怎麼讀懂你的程式的呢?電腦又怎麼做運算?一天到晚聽到的處理器、記憶體、記憶體的讀寫次數、暫存器… 等等名詞,到底是什麼意思呢?

等等… 你有想過,電腦到底又是怎麼來的嗎?(沒有,因為你只想到你自己。就像你不知道,在非洲每經過 1 分鐘,就是 60 秒過去了。)

新一代量子電腦架構近來正炒的熱門,然而在瞭解量子電腦之前,你知道你用的電腦、手機等 3C 產品通通都是馮紐曼架構嗎?

每次查詢相關名詞或翻開電腦介紹書,總是乏味又難懂到難以看完嗎?放心,這將會是你看過最不無聊的硬體結構介紹!

電腦是怎麼來的?

ENIAC:情人節誕生的奇蹟

普遍認為最早的通用電腦,是美國賓州大學的莫奇來(Mauchly)和他的學生埃克特(Eckert)在 1946 年 2 月 14 日當天所發表的「ENIAC」。情人節別再討論單身魯了,人家可是在情人節顛覆世界呢…

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)噢。

(英國男影星 Benedict Cumberbatch 在電影《模仿遊戲》中飾演的主角即為圖靈。馮紐曼只是根據圖靈機的想法,將可儲存程式電腦真正實作出來。)

但你想進一步知道圖靈是為什麼會提出圖靈機這個數學模型嗎?咳咳,歡迎你參考我 先前寫的一篇文章 。(天啊,這接下來又得為大家另開一個系列討論了)

馮紐曼的現代電腦架構

接下來,讓我們針對馮紐曼架構、來為讀者做進一步的解釋,同時瞭解 CPU 與記憶體的設計原理。

馮紐曼架構(可儲存程式電腦)

在馮紐曼式的電腦中,電腦被分成了五大單元、缺一不可,分別稱作「控制器」、「運算器」、「儲存器」、「輸入設備」(Input)與「輸出設備」(Output)。

「輸入設備」就是你用來將外部資料輸入到電腦的東西,比如鍵盤、滑鼠。「輸出設備」就是將電腦內部的資料輸出到外部給你看的東西,比如螢幕、印表機。

最近蠻多新創公司、遊戲開發商、工程師、技術宅宅都改用 .io 的網址,比如 spring.io。讓 .io 變成繼 .com 之後的熱門網域。這是因為 io 剛好有 I/O(Input/ output)的意義。

那「控制器」、「運算器」和「儲存器」又是什麼呢?

在這裡,我們要來講一個小當家做菜的故事幫你瞭解。

儲存器,也就是實際上的 「記憶體」。可以把記憶體想像成一個大櫃子,每個櫃子都有一個編號,我們稱為位址(Address)。常常聽到的 「記憶體位址」 就是這個意思噢!

這些櫃子中,會用來儲存正在執行中程式的「程式碼」(指令)、和待處理的「資料」。

想像一下,這些指令就是我們的食譜、資料就是食材;對資料要求做加減乘除的處理程序,其實就是對食材做蒸煮炒炸的感覺呢!

等等,那是誰要負責執行這些食譜和煮食材呢?當然就是我們的廚師、也就是 「處理器」 要做的事情。

但這個廚師腦子記不太得東西,你得告訴他:要去記憶體位址哪邊抓食譜、和要去記憶體位址的哪邊抓食材。這個動作就叫做 「Memory Read」(讀取記憶體)

想想你炒菜的時候,一定要先把料從冰箱拿出來放到鍋子的旁邊啊,總不會要炒菜的時候、才衝到冰箱把菜拿出來吧?這樣鍋子都要燒乾了。

所以我們把要煮的食材(要運算的資料)從記憶體抓出來後,會先把它暫存到 CPU 的一個空間,這個空間就叫做 「暫存器」,專門放即將要算的資料、和剛算好的資料。

可以想像暫存器(Register)就是你鍋子邊放要煮食材、和剛煮好的菜的盤子。依據不同架構的 CPU ,暫存器的數量會不同。像 ARM 和 MIPS 架構的處理器裡面便有 32 個暫存器。

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

 

但你煮完的菜餚總不能一直放在廚房繼續佔空間,廚房是要煮菜的地方,得把菜再放回倉庫存放。

所以 CPU 會把煮好的菜(運算完的結果)送回記憶體的格子中。這個動作就叫做「Memory Write」(寫入記憶體)。

同時,廚師會繼續根據「程式計數器(Program Counter, PC)上記載的記憶體位址,來取得下一張要執行的食譜。

可以想像它只是另一個用來放食譜單子的倉庫地址的盤子!程式計數器是一個特殊的暫存器,專門用來存放下一個要被執行的指令所在的記憶體位址。也可以叫它 Instruction Address Register 或 Instruction Counter。

哇!輕輕鬆鬆就瞭解馮紐曼架構了,以後再看到 CPU、記憶體、記憶體位址、暫存器、記憶體的讀寫次數、Program Counter… 之類的討論和名詞,相信不會再害怕了!

講這麼多,這個架構在實際上的硬體,是長什麼樣子呢?

在一塊個人電腦的主機板上,可以插上 CPU 處理器、主記憶體、顯示卡,再接上硬碟,連接到鍵盤,連上螢幕,最後接上電源。

這樣就是一台馮紐曼架構的電腦啦!來看一下我們講的馮紐曼架構五大單元,是不是都在上面:「控制器」與「運算器」(都包在 CPU 裡面)、「儲存器」(記憶體)、「輸入設備」、「輸入設備」。

登愣!這樣就出現一台可以正常運作的電腦,很簡單吧!以後別怕身邊沒有工具人,自己就能當自己的工具人。

這時候就要回顧一下一開始說的... 還記得我們提到,為什麼馮紐曼架構電腦,為什麼會比本來的 ENIAC 電腦更好呢?

因為在電腦要執行程式之前,先將要執行的「程式碼」與「資料」儲存於記憶體。若要變更任務,只需要修改程式即可,省去更改線路的麻煩。

另外,還記得「指令集架構」這個名詞嗎?

結合我們先前在 Intel x86 與 ARM 架構大戰 一文中介紹過——任何產品在設計的時候,都要先制定規格、再依據規格設計出相應的產品。

當我們想要設計 CPU 時,要制定的規格就是「指令集架構」(Instruction Set Architecture, ISA)。

指令集架構包含了:

  • 指令集
  • 該指令集依附的機器結構敘述(Hardware Information)

指令集架構提供工程師造計算機的抽象規格。根據相同的抽象規格,可以採用不同的方式造出計算機,然而造出來的計算機會彼此相容,也就是功能、規格相同。所以如果我們把 ISA 和馮紐曼架構結合在一起,就是:

指令集架構(ISA)+ 馮紐曼架構(Von Neuman Machine)= 電腦基礎架構(Basic Computer Structure)

無論是伺服器、Workstation、個人電腦、筆電,還是你的手機、平板電腦等電子產品,至今全部都是採用馮紐曼架構的電腦!

可以想想並找找看手機的運算單元、儲存單元、 I/O 裝置分別是哪些硬體,把手機拆開來看看也行(不負責任推坑)!

結語

我們今天學到了:

  1.  馮紐曼是一位多可怕的逆天天才。
  2.  馮紐曼架構有五大單元(控制、運算、儲存、I/O)
  3.  無論手機電腦等電子產品全都是馮紐曼架構。
  4.  「I/O 設備」對應到的,就是鍵盤、滑鼠,與螢幕、印表機。
  5.  「控制/運算/儲存單元」如何運作,也就是 CPU 和記憶體之間的關係(廚師拿食材與指令 / 倉庫)
  6.  指令集架構 + 馮紐曼架構 = 電腦基礎架構

感謝大家收看今天的《一看就懂的 IC》第一集。

等等,我還有個問題!記憶體和硬碟,到底有什麼差別?(難道硬碟和 CPU 的關係就是上面講的這樣嗎?)

不,CPU 不會直接去硬碟抓資料。有些硬體裝置雖然叫「記憶體」、比如快閃記憶體 Flash,但它的身份其實是硬碟。符合我們這邊介紹的記憶體是 DRAM。

蛤?我還是聽不太懂差異耶!而且記憶體又有 DRAM、SRAM、SDRAM、DDR、LPDDR、Nor Flash、NAND Flash…. 各式各樣的,到底差異在哪邊啊(暈)

三星、SK 海力士、美光、金士頓,或台灣的創見、威剛、旺宏等「記憶體大廠」,又差異在哪?分別銷售哪幾種產品呢?

下週《一看就懂的 IC》系列的 第二集 ,就讓我們來更進一步介紹記憶體吧!還請準時收看!

註:本文圖片皆為 CC 授權圖、或使用 CC 授權圖自製。本文未經同意,請勿轉載。


用太陽增加被動收入?友善環境ESG永續投資——加入太陽人全民電廠,成為能源置產者

不必身懷鉅款也能投資太陽能電廠?太陽人全民電廠提供一個綠能群募平台管道,無論是大老闆或小資族都可以投資看得見的日光綠電,並藉此獲得20年穩健的賣電收益,更為地球減碳盡一份心力。
評論
Photo Credit:TNL Brand Studio
評論
Photo Credit:TNL Brand Studio 

全球氣候變遷劇烈,如何找到與大自然環境共生共榮的經濟模式,是生活在地球上每一個人的課題與任務。在聯合國啟動的「 2030 永續發展目標」( SDGs )中,其中一項便是確保人們能享有可負擔的乾淨能源;此外,台灣經濟部也設定「 2025 年要實現再生能源發電占比 20%」的目標,並積極推動太陽光電等綠色能源,預計到了 2025 年,太陽光電裝置容量需達 20GW (吉瓦=一百萬千瓦)。

當然,不只台灣積極思考綠能,全球也掀起一股 ESG (環境 Environmental 、社會 Social 、公司治理 Governance )的永續投資概念,要讓地球公民們投入兼顧經濟發展與友善環境的行列。現在,除了投資 ESG 概念股或基金,還有一個可以「眼見為憑」的投資方法,就是加入太陽人全民電廠,成為太陽能源的置產者,讓太陽為你增加穩健的被動收入。

以行動支持永續,投資乾淨能源最有力

Photo Credit:TNL Brand Studio

故事起源於 2011 年,日本因為受到 311 福島核災的衝擊,開始積極思考能源轉型的做法,太陽人全民電廠為了讓民間力量也能投入,在日本首創群眾投資綠能電廠的共享經濟模式,透過將太陽能電廠分割成以太陽能板為單位的投資方式,大幅降低了賣電的投資門檻,也更有力地號召投資人加入日光創能的行列,一起創造穩健收益。到了 2017 年,太陽人全民電廠正式在台灣落地啟動,成功建構全台第一間串連線上/線下服務的全民電廠企業,截至目前為止已完成一百多座全民電廠,在桃園青埔、新竹芎林、台中沙鹿、南投中寮、雲林土庫、高雄林園、屏東萬丹等台灣各地,都可以見到太陽人的全民電廠,和太陽一起協力創能,發出對環境更友善的綠電。

只要太陽還在的一天,就能持續創造穩健收益,聽起來是否很迷人?太陽人全民電廠作為一個能源共享平台,讓個體投資戶能與有志一同的太陽人夥伴,一起投入這場綠能共享經濟,成為完善循環經濟的推手,也讓可眼見為憑的在地太陽能板,持續為投資人創造被動收入。

太陽人全民電廠的主要服務有三項:

  • 買電廠:投資人可以小額認購太陽能板,也可以選擇認購整座太陽能電廠。
  • 賣電廠:太陽能板或電廠持有人,可以藉由這個平台轉售;當然,在太陽人全民電廠購入的太陽能板或電廠,也能在這裡進行轉手交易。
  • 蓋電廠:有意從無到有開創太陽能源者,也能透過太陽人全民電廠出租屋頂、建置太陽能板,或是直接自己出資蓋一座太陽能電廠。

如果只是投資一塊太陽能板的話,就算是小資也能輕鬆入門,三個步驟就能成為能源置產者。只要到太陽人全民電廠官網選擇想要參加的電廠專案,並加入會員、選擇付款方式,就能直接晉升為電廠老闆,可以說是非常簡單的 ESG 投資術。

投資太陽能的多邊效益

Photo Credit:TNL Brand Studio

透過太陽人全民電廠投資太陽能電廠,有什麼好處?首先,對於投資人來說,太陽人全民電廠提供一站式的服務,包辦電廠建置與維運,投資人不必自備屋頂建設電廠或了解艱澀的專業知識,即可以加入投資綠電的行列,並獲得20年穩定的賣電收益。而對於土地或屋頂擁有者,則可以透過太陽人全民電廠免費評估電廠建置的可行性,並進一步獲得出租收入;若打算自己蓋電廠、自己賺電費,也可以獨享20年的賣電收益。

不只有經濟效益,太陽能電廠能貢獻的還很多。例如在高雄的鳳甲國中,即是在太陽人全民電廠的協助下建置了「高雄鳳甲太陽人一號電廠」,打造太陽能光電風雨球場,不只為學生遮風避雨、阻擋炎炎夏日,也為學校減碳發電,實現偏鄉地方創生與能源自主。也因為這次的成功案例,愈來愈多學校積極考慮太陽能電廠與校園建設融合的可能性,並送給孩子們一座兼顧能源與環保教育的校園。全民電廠不只讓投資人多一個綠色理財選擇,也是最佳的永續示範,讓更多人見證綠能共好的實踐,達成環境、能源、理財、教育的多方共贏。

太陽人全民電廠的獲益計算

Photo Credit:TNL Brand Studio

那麼,投資太陽人全民電廠的獲益計算為何?其實算法非常簡單,購買電廠後,接下來的 20 年都是套用同一個公式:

發電度數X電價=賣電收益
投資人實際獲得的收入,便是賣電收益扣掉營運維護費、保險費、屋頂租金等固定支出後所獲得的淨利。

發電量會因為日照量變化而有高低落差,但基本上,每度電的價格及計價基礎都是固定不浮動的。電費將由台電公司每兩個月結算一次,並透過銀行第三方自動化金流匯入投資人帳戶。在這個過程中,太陽人全民電廠擔任的角色,就是提供綠能群募平台管道,讓投資人可以輕鬆入門電廠投資,並且提供App服務供投資人追蹤獲利表現。如果還有其它關於電廠的問題,也可以在太陽人全民電廠的協助下獲得解答。

花東日出太陽人九號電廠為例,最基本的投資單位是一塊太陽能板,金額為22,595元。假設第一年的總發電量為434度,每度電價為6.07元,則首年度的賣電收益則為2,636元;扣掉營運維護費、保險、租金等固定支出,則投資人第一年的實際獲利為2,082元。以此類推,到了第20年,投資人即可獲得累積收益39,324元,不只回本當初購買太陽能板的本金,還另外淨賺16,729元,投資報酬率(IRR)為6.08%,算是金融市場上相當穩健的投資工具。

為了讓還不熟悉綠能投資的民眾可以更加了解全民電廠的運作模式,太陽人也貼心的提供「30天免費體驗電廠收益」的服務,讓民眾可以實際感受到每天太陽出來都有收益可領的好處後,參與全民電廠更無後顧之憂。

ESG綠色投資趨勢愈來愈熱,但是否真正將投資人的資金投入在環境保護的用途上,是近期的討論話題。太陽人全民電廠提供很好的解方,讓看得見的太陽能電廠實現投資人的環保初心,真正落實節能減碳、能源轉型,讓日光創能,也讓生活在地球上的人類能與環境共好。