電腦系統的運作原理1 - 重要角色介紹 (上)

更新於 發佈於 閱讀時間約 8 分鐘

電腦的運作需要仰賴許多硬體與軟體的相互配合,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。


電腦、程式、與使用者

說到電腦,你的腦中會浮現什麼呢? 是螢幕、滑鼠鍵盤、閃著各種燈的主機、還是吵死人的風扇?

再想得更深入一點,可能會冒出更多問題: 手機裡面有電腦嗎? 應該是有,但手機只有螢幕,沒有滑鼠和鍵盤。機械手臂裡面應該也有電腦吧? 但它連螢幕都沒有,長得跟筆電或桌上型電腦完全不像。

其實電腦的型態有非常多種,長得樣子千奇百怪、體積的差距也十分懸殊。大型的電腦長得就像一排排貨架,插滿各種線路,佔據數百坪的空間。小型的電腦則會隱藏在其他的裝置裡面: 像是剛剛提到的機械手臂、智慧手表、或 VR 眼鏡。火車、捷運、和飛機上也有相當複雜的電腦,來協助駕駛員控制交通工具,並偵測、防範潛在的危險狀況。 大家刻板印象中的電腦: 筆電和桌上型電腦,只是電腦家族中的一份子

電腦終其一生就只有一個任務: 運算 (operation)。講得更精確一點: 讀取資料、對資料進行運算,然後產生新的資料。而程式 (program) 則是用來令命電腦做事情的手段。

打個比方,你可以把電腦想像成是精通各種烹飪技巧的「烹飪機器人」,它熟悉刀工、了解如何處理各種食材、以及各式器具的使用方式。程式就像食譜一樣,告訴我們的烹飪機器人如何一步一步,精準無誤得做出一道菜來: 也就是我們希望電腦能夠達成的任務,比如播放影片、發送 email、或是在遇到亂流的時候盡量保持機身的平穩。

也就是說,儘管電腦 (烹飪機器人) 有能力對資料 (食材) 進行各種運算 (烹飪技巧),但它並不知道要用什麼方式和順序去進行運算,必須仰賴程式 (食譜) 告訴它具體的步驟,才能做到滿足人類需求的應用 (菜色),如: 讓我們開心玩糞 game。


糞 game 運作的原理

這邊以糞 game 為例,實際講述一次從程式、電腦、和開心的宅宅如我之間的關係。

遊戲就如同任何其他軟體一樣,是由一堆程式碼所構成的,透過某些方式安裝在我們的手機當中。當我們在玩糞 game 的時候,手機裡面的電腦其實正在以飛快的速度讀取程式碼 (食譜): 它會發現程式命令它讀取使用者的操作 (資料),看看使用者想要幹嘛。它讀取了以後,發現使用者正在狂按大招,它接著繼續讀取程式碼,發現程式告訴它,如果使用者狂按大招,就在螢幕上顯示華麗炫炮的特效,同時計算敵人是否在大招範圍內,如果是的話就依照大招的傷害,扣除敵人的血量......。

上面的描述其實有點過於簡略,事實上,下面列的事情都需要程式碼進一步提供具體的步驟,電腦才知道該如何做到:
1. 發現使用者正在狂按大招。
2. 在螢幕上顯示華麗炫炮的特效。
3. 計算敵人是否在大招範圍內。
4. 依照大招的傷害,扣除敵人的血量。

看到這裡,有人可能會感到困惑,這些行為跟「運算」到底有什麼關聯呢? 運算就像電腦這個詞彙一樣是個泛稱,就如同世界上各種不同的電腦一樣,也有各式各樣不同種類的運算

舉例來說,當電腦讀取使用者的操作的時候,它是怎麼知道點一下手機螢幕上的某個按鈕,代表的意思是大招呢? 這其實是靠一個叫做「比較 (comparison)」的運算做到的。具體來說,程式會告訴電腦: 拿使用者的操作來和 xxx 進行比較這個運算 (xxx 是程式碼中對於大招的定義),假如比較出來的結果是吻合的,就表示使用者想要開大招,這時候應該要...... (更多程式碼)。

舉另外一個例子: 電腦是如何在螢幕上顯示出大招的特效的呢? 螢幕其實是由許多個小點點 (pixel) 所組成的,程式會告訴電腦要如何計算出每一個點在每一個瞬間的顏色和亮度,才能夠拼湊出一段開大招的特效。在這個例子中。


電腦的基本架構

雖然電腦的種類形形色色,但它們通常都有一個基本的架構,如下圖所示:


raw-image


CPU: Central Processing Unit,電腦的核心,負責處理所有的運算

Memory: 記憶體,負責儲存資料。CPU 會從記憶體取得資料,進行運算,並且將計算的結果 (新的資料) 儲存回記憶體。

Input device: 輸入裝置,負責從電腦外部取得資料的裝置。如: 滑鼠、鍵盤、觸控螢幕、紅外線感測器、攝像頭。

Output device: 輸出裝置,從電腦讀取資料的外部裝置。如: 螢幕 (依照資料顯示畫面)、機械手臂 (依照資料做出動作)、音響 (依照資料發出聲音)。

下面以糞 game 的例子,說明電腦在各個步驟具體做的事情:

  1. 讀取使用者的操作: CPU 從觸控螢幕 (input) 接受到玩家的操作,將這個操作存進記憶體。
  2. 發現使用者正在狂按大招: CPU 從記憶體讀取使用者剛剛進行的操作,經過比較運算以後,發現玩家想開大招。
  3. 在螢幕上顯示華麗炫炮的特效: CPU 計算出每個瞬間螢幕 (output) 上的每個點 (pixel) 應該要顯示的顏色與亮度,將這些資料存進記憶體。接著 CPU 再從記憶體將這些資料傳送給螢幕 (output),螢幕接收到以後就可以依照資料顯示出大招的特效。
  4. 計算敵人是否在大招範圍內: CPU 從記憶體讀取目前角色之間的相對位置,以及大絕範圍的資料,經過運算以後,發現敵人在大招範圍內。
  5. 依照大招的傷害,扣除敵人的血量: CPU 從記憶體讀取目前敵人的血量以及大招的傷害,將敵人的血量扣除適當的量以後,將目前敵人的血量儲存回記憶體。接下來 CPU 可能會再次從記憶體讀取敵人的血量,計算出螢幕應該如何顯示目前的血條,並將資料傳送給螢幕 (output),螢幕收到以後,就可以顯示扣血過後的敵人血條。

這些步驟看起來很繁瑣 (真實的狀況其實遠比上面描述得還要複雜好幾百倍...),但由於電腦運作的速度非常非常快,幾乎在一瞬間就可以把上面所有的步驟都做完,對人類玩家而言,根本不會注意到在他按下大招的按鈕到敵人被扣血之間,其實經過這麼多的資料運算以及資料搬運。

由上面的例子,我們可以歸納出電腦做事情的三個大原則:

  1. CPU 可以從輸入裝置取得資料並儲存到記憶體,也可以從記憶體將資料傳送給輸出裝置。
  2. CPU 在進行運算前,都會先從記憶體取得資料。
  3. CPU 在完成運算以後,會將新的資料儲存回記憶體。

本文一開始提到的不同類型的電腦,都會依循這三個大原則對資料進行各種運算,產生更多新的資料,並搭配形形色色的輸入與輸出裝置,來滿足人類各種奇怪的需求

稍微補充一下,這三個大原則是電腦最最最基礎的運作方式,現代的電腦系統設計得越來越複雜,很多時候為了做到更強大的功能,並不會完全依循這三個原則。不過不管是什麼樣的設計,都是從這邊介紹的基礎架構以及原則去做延伸的。

最後要再次強調,上述的步驟都是透過程式 (食譜) 來告訴電腦具體應該要做什麼事情 (資料的運算以及資料的搬運)。電腦本身完全不知道做這些事情的意義是什麼,是程式設計師利用程式來控制電腦做出對人類來說有意義的行為


硬體與軟體的差異

由電腦做事情的三個大原則可以得知,程式除了告訴電腦要對資料做什麼運算以外,還要告訴電腦何時該讀取以及儲存資料。

比如說在電腦有辦法判斷你施放的大招究竟是有打到人、還是打了個寂寞以前,程式必須先叫電腦從記憶體讀取不同角色的位置、大絕的範圍等等的資料。計算完了以後,程式必須再叫它存回記憶體,不然它一轉眼就會把剛剛算出來的東西忘掉。

想必各位應該都會有一種想法: 電腦也太笨了吧! 不能自動自發一點,自己把需要的資料從記憶體讀出來,算好後自己寫回去嗎? 為什麼連這種事情都要一個指令一個動作。

這個原因很簡單: 電腦的本質就是笨、但做事非常快

硬體的開發與生產是非常燒錢的,所以通常硬體在設計上都會採取「把最基本、最重要的事情做得又快又好」。所以電腦會做的事情其實非常有限,但絕對非常有效率

你可以把電腦能夠做的事情想像成是一塊一塊樂高積木,它們的種類有限,而且形狀通常都很單純。而所謂的程式 (或軟體) 其實就是透過組裝樂高積木,來做出令人嘆為觀止的酷東西: 像是帝國大廈的模型、星際大戰的死星,或是薩諾斯的無限手套。

透過這種方式,儘管電腦會做的事情是有限的,程式/軟體 (食譜) 卻可以有無限多種可能




avatar-img
3會員
14內容數
程式設計 & 電腦系統 & 系統軟體
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
鏟薯員的窩 的其他內容
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
資訊由宇翔資訊提供在現代工作環境中,專業電腦是提高生產力和工作效率的關鍵工具。無論是設計師、工程師、數據科學家還是其他專業人士,選擇一台性能優異的電腦對於完成複雜的工作任務至關重要。本文將介紹專業電腦的選購指南、性能特點、品牌推薦以及維護建議,幫助您選擇和維護合適的專業電腦。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦有很多零件,有CPU、主機板(MB)、記憶體(Memory)... 今天我想分享,我這次組電腦的過程,還有一些好用的技巧,希望能幫助到大家,組出心中的完美電腦!
Thumbnail
電腦跟手機是我們每天不可或缺的工具,大家一定都有過這種經驗,那就是「電腦或手機中毒」!病毒會把我們設備中的重要資料刪除或竄改,甚至會讓整個作業系統癱瘓! 為了防止這種情況,各種防毒軟體也因應而生,幾乎每台電腦都會安裝防毒軟體或「防火牆」,避免病毒入侵我們倚賴的重要工具
Thumbnail
你知道嗎?有時候女生玩起電腦來也很瘋的,想起十多年前,有場林口的案子,完成後,她還推薦她住深坑山區的閨密給我,兩位一組起來都是四顆螢幕起跳...
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探
資訊系統由規劃到實踐的過程,可以看出規劃內容是否周延。 系統上線後的表現,可以反應出規劃是否完整、能達到規劃的目的。 很多公司電腦化的起點,是由資訊基礎建設開始,也就是網路系統和機房。 文中所提任何人名及公司名,及故事情節,純屬虛構,如有雷同,請多多包涵
Thumbnail
本文將介紹桌上型電腦產業地圖,包括NB筆記型電腦產業地圖、伺服器產業地圖和產業結構圖等相關信息。
Thumbnail
現在主機遊戲變得很多元,有一些需要靠著一個超級主機來支撐他的記憶體存量,這裡可以回答你的主機硬體必須知道的三件事!
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
資訊由宇翔資訊提供在現代工作環境中,專業電腦是提高生產力和工作效率的關鍵工具。無論是設計師、工程師、數據科學家還是其他專業人士,選擇一台性能優異的電腦對於完成複雜的工作任務至關重要。本文將介紹專業電腦的選購指南、性能特點、品牌推薦以及維護建議,幫助您選擇和維護合適的專業電腦。
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦有很多零件,有CPU、主機板(MB)、記憶體(Memory)... 今天我想分享,我這次組電腦的過程,還有一些好用的技巧,希望能幫助到大家,組出心中的完美電腦!
Thumbnail
電腦跟手機是我們每天不可或缺的工具,大家一定都有過這種經驗,那就是「電腦或手機中毒」!病毒會把我們設備中的重要資料刪除或竄改,甚至會讓整個作業系統癱瘓! 為了防止這種情況,各種防毒軟體也因應而生,幾乎每台電腦都會安裝防毒軟體或「防火牆」,避免病毒入侵我們倚賴的重要工具
Thumbnail
你知道嗎?有時候女生玩起電腦來也很瘋的,想起十多年前,有場林口的案子,完成後,她還推薦她住深坑山區的閨密給我,兩位一組起來都是四顆螢幕起跳...
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探
資訊系統由規劃到實踐的過程,可以看出規劃內容是否周延。 系統上線後的表現,可以反應出規劃是否完整、能達到規劃的目的。 很多公司電腦化的起點,是由資訊基礎建設開始,也就是網路系統和機房。 文中所提任何人名及公司名,及故事情節,純屬虛構,如有雷同,請多多包涵
Thumbnail
本文將介紹桌上型電腦產業地圖,包括NB筆記型電腦產業地圖、伺服器產業地圖和產業結構圖等相關信息。
Thumbnail
現在主機遊戲變得很多元,有一些需要靠著一個超級主機來支撐他的記憶體存量,這裡可以回答你的主機硬體必須知道的三件事!