1 00:00:15,353 --> 00:00:17,238 你還記得你首先領悟到 2 00:00:17,238 --> 00:00:18,659 的電腦不只是 3 00:00:18,659 --> 00:00:20,742 螢幕加鍵盤而已嗎? 4 00:00:20,742 --> 00:00:23,325 滑鼠點兩下,影片就開始播放 5 00:00:23,325 --> 00:00:25,598 在這之間有樣東西,得知你的意圖 6 00:00:25,598 --> 00:00:26,428 予以解讀 7 00:00:26,428 --> 00:00:27,880 並讓它實現 8 00:00:28,650 --> 00:00:30,270 這東西是什麼? 9 00:00:30,270 --> 00:00:32,007 是小妖精嗎? 10 00:00:32,007 --> 00:00:33,665 想像一下,我們縮小到 11 00:00:33,665 --> 00:00:35,141 和電子一樣的大小 12 00:00:35,141 --> 00:00:37,894 接著把自己注射到滑鼠鍵裡 13 00:00:37,894 --> 00:00:39,531 如果你把滑鼠拆開 14 00:00:39,531 --> 00:00:42,193 你會發現這是很簡單的機器 15 00:00:42,193 --> 00:00:43,444 滑鼠有兩個按鍵 16 00:00:43,444 --> 00:00:46,747 一個偵測動向及距離的系統 17 00:00:46,747 --> 00:00:48,163 你可能用的是光學滑鼠 18 00:00:48,163 --> 00:00:50,868 透過光及感應器來完成這些計算 19 00:00:50,868 --> 00:00:52,958 舊一點的滑鼠有一顆硬硬的橡膠球 20 00:00:52,958 --> 00:00:54,576 還有塑膠環 21 00:00:54,576 --> 00:00:56,325 兩者概念相同 22 00:00:56,325 --> 00:00:57,914 當你按下滑鼠按鍵的時候 23 00:00:57,914 --> 00:00:59,716 滑鼠就發送訊息到電腦 24 00:00:59,716 --> 00:01:01,825 關於滑鼠位置的資訊 25 00:01:01,825 --> 00:01:03,491 電腦接收滑鼠資訊後 26 00:01:03,491 --> 00:01:06,880 則由輸出入的子系統來負責 27 00:01:06,880 --> 00:01:09,444 這個子系統就像是電腦的眼睛 28 00:01:09,444 --> 00:01:12,053 耳朵、嘴巴,以及雙手 29 00:01:12,053 --> 00:01:13,958 基本上,這個系統提供電腦一個方法 30 00:01:13,958 --> 00:01:16,443 去和電腦環境互動 31 00:01:16,443 --> 00:01:18,090 它的作用也有點像緩衝器 32 00:01:18,090 --> 00:01:21,501 避免CPU被不相干的程式淹沒 33 00:01:21,501 --> 00:01:23,811 就這例子來看,輸出入子系統 34 00:01:23,811 --> 00:01:25,942 判定滑鼠點選的項目很重要 35 00:01:25,942 --> 00:01:28,939 所以發送一個插播信號給CPU 36 00:01:28,939 --> 00:01:31,075 「嘿,CPU!這東西被點選了。」 37 00:01:31,952 --> 00:01:34,327 CPU,也就是中央處理器 38 00:01:34,327 --> 00:01:36,522 是整台電腦的大腦 39 00:01:36,522 --> 00:01:39,072 就像你的大腦不會占據你全身 40 00:01:39,072 --> 00:01:41,577 CPU也不會占據整台電腦 41 00:01:41,577 --> 00:01:44,262 但是他會一直執行同樣的事情 42 00:01:44,262 --> 00:01:46,506 CPU的主要工作 43 00:01:46,506 --> 00:01:48,444 就是從記憶體拿取指示 44 00:01:48,444 --> 00:01:50,451 然後執行 45 00:01:50,451 --> 00:01:52,380 所以當你不斷打字 46 00:01:52,380 --> 00:01:53,610 也許打得很快 47 00:01:53,610 --> 00:01:55,088 一分鐘六十個字吧 48 00:01:55,088 --> 00:01:57,090 CPU一直拿取然後執行 49 00:01:57,090 --> 00:01:59,137 一秒鐘執行數十億個指示 50 00:01:59,137 --> 00:02:02,176 對,每秒鐘幾十億個 51 00:02:02,176 --> 00:02:04,982 你在螢幕上移動滑鼠的指示 52 00:02:04,982 --> 00:02:07,145 執行桌面的時鐘附件 53 00:02:07,145 --> 00:02:08,892 播放網路電台 54 00:02:08,892 --> 00:02:11,145 處理在硬碟中,你在編輯的檔案 55 00:02:11,145 --> 00:02:12,900 還有很多很多 56 00:02:12,900 --> 00:02:16,160 CPU就是個超神的多重任務處理王 57 00:02:16,743 --> 00:02:17,613 「但是我的天呀 58 00:02:17,613 --> 00:02:18,909 滑鼠點了一下 59 00:02:18,909 --> 00:02:20,030 資訊現在要傳來了! 60 00:02:20,030 --> 00:02:22,560 先停止所有任務,然後處理那個!」 61 00:02:23,207 --> 00:02:24,604 CPU處理的每樣事物 62 00:02:24,604 --> 00:02:26,336 都有一個程式 63 00:02:26,336 --> 00:02:28,058 滑鼠有個專門的程式 64 00:02:28,058 --> 00:02:29,092 時鐘附件也有 65 00:02:29,092 --> 00:02:30,303 網路電台也有 66 00:02:30,303 --> 00:02:33,136 處理鍵盤傳送的文字也有 67 00:02:33,136 --> 00:02:35,688 每個程式一開始都是人類寫的 68 00:02:35,688 --> 00:02:37,906 用人類看得懂的程式語言 69 00:02:37,906 --> 00:02:38,765 像是Java 70 00:02:38,765 --> 00:02:39,798 C++ 71 00:02:39,798 --> 00:02:41,219 或是Python 72 00:02:41,219 --> 00:02:43,741 但是人類的程式占據了很多空間 73 00:02:43,741 --> 00:02:47,450 也包含很多電腦不需要的程式 74 00:02:47,450 --> 00:02:49,191 這些程式因而被整合,縮小 75 00:02:49,191 --> 00:02:52,653 以1和0的方式儲存在記憶體中 76 00:02:52,653 --> 00:02:55,410 CPU知道自己需要指示 77 00:02:55,410 --> 00:02:57,411 去處理滑鼠點的那一下 78 00:02:57,411 --> 00:02:59,380 所以CPU就查詢滑鼠的程式 79 00:02:59,380 --> 00:03:01,755 並發送請求給記憶體的子系統 80 00:03:01,755 --> 00:03:04,179 讀取儲存在那的指示 81 00:03:05,287 --> 00:03:07,216 滑鼠驅動程式的每一個指示 82 00:03:07,216 --> 00:03:09,742 都能充分拿取並執行 83 00:03:09,742 --> 00:03:12,113 還不僅僅如此! 84 00:03:12,113 --> 00:03:14,654 因為CPU知道滑鼠被按了一下 85 00:03:14,654 --> 00:03:16,216 游標經過某張圖片 86 00:03:16,216 --> 00:03:18,177 在顯示器某個按鈕的時候 87 00:03:18,177 --> 00:03:21,248 CPU會要求記憶體提供顯示器的程式 88 00:03:21,248 --> 00:03:23,353 找出滑鼠是按了哪裡 89 00:03:23,353 --> 00:03:25,601 然後CPU得要求記憶體 90 00:03:25,601 --> 00:03:27,437 提供按鍵的程式 91 00:03:27,437 --> 00:03:28,948 也就是說,CPU還需要 92 00:03:28,948 --> 00:03:30,688 顯示器的程式 93 00:03:30,688 --> 00:03:32,860 顯示出影片與按鍵的關聯性 94 00:03:32,860 --> 00:03:34,742 影片就開始播放 95 00:03:34,742 --> 00:03:37,487 我們假設過程中包含很多程式 96 00:03:37,487 --> 00:03:39,472 甚至在看到幕上的點選物 97 00:03:39,472 --> 00:03:41,379 亮起來之前 98 00:03:41,379 --> 00:03:43,848 所以,單純按下滑鼠這個動作 99 00:03:43,848 --> 00:03:46,216 代表你已經使用電腦結構中 100 00:03:46,216 --> 00:03:48,196 許多重要的元素 101 00:03:48,196 --> 00:03:49,238 像是週邊設備 102 00:03:49,238 --> 00:03:51,047 基本的輸出入系統 103 00:03:51,047 --> 00:03:52,379 CPU 104 00:03:52,379 --> 00:03:53,154 程式 105 00:03:53,154 --> 00:03:54,140 還有記憶體 106 00:03:54,140 --> 00:03:56,133 而不是小妖精