|
, 這 個 中央 算術 電路 系統 就是 電腦 進行 運算 的 地方 。 舉例 來 說 , 我們 假定 按下 「 3 」 鍵 的 那 個 人 正 要 開始 敲進 一 個 加法 問題 3 加 2 。 正 如 我們 先前 看過 的 , 第一 個 按鍵 動作 導致 一 系列 繁複 的 運算 , 將 二進制 的 3 留在 一 個 記憶體 暫存器 裡 , 螢幕 上 就 會 顯示出 一 個 「 3 」 。 接下來 的 兩 個 敲鍵 動作 , 又 會 再次 採用 同樣 的 一般 序列 , 就 像 消化 「 3 」 一樣 地 也 消化 「 + 」 和 「 2 」 的 按鍵 動作 。 一切 都 像 迷宮 似的 錯綜複雜 的 行為 。 當脈波 從 「 = 」 鍵 傳來 的 時候 , 事情 就 變 得 更加 複雜 了 。 那 道 脈波 就 是 進行 動作 的 「 呼叫 」 。 控制 裝置 一 偵測出 有 人 碰到 了 那 個 鍵 , 它 就 會 立刻 跳到 一 組 新 的 指令 , 將 這 個 數字 和 加號 發送到 算術 單元 。 任何 數位 裝置 最 複雜 的 部分 , 就 是 電路 系統 。 所有 的 開關 和 所有 的 線路 都 必須 經過 適當 的 配置 , 以便 不管 饋入 什麼 二進制 脈波 , 都 只 可能 出現 正確 的 答案 。 這 要 靠 人類 想出來 的 算術 / 邏輯 電路 系統 , 才 能 讓 一 個 無知 的 工具 有 可能 執行 邏輯 與 算數 運算 。 在 大大小小 的 數位 工具 中 , 算術 電路 的 基本 建置 組塊 , 就 是 夏濃 於 一九三七年 最先 提出 的 標準 邏輯閘 。 正 如 夏濃 當時 說明 的 , 開關 的 各 種 組合 可 用 幾 個 電阻器 與 電容器 以 導線 連接 , 執行 布爾 想出來 的 基本 邏輯 運算 。 這些 邏輯 電路 就 叫做 閘 ; 閘會 按照 已經 制定 的 規則 , 接受 和 送出 脈衝 。 在 這些 邏輯閘 當中 , 最 簡單 的 是 一 種 稱為 NOT 閘 的 電路 ; 這 種 開關 的 輸出 永遠 和 輸入 相反 。 也就是說 , 如果 有 電流 進入 NOT 閘 , 就 不會 有 電流 出去 ; 而 沒有 電流 進來 的 時候 , 倒是 會 有 電流 出去 。 將 這 個 轉譯為 二進制 數學 , 接受 「 一 」 的 NOT 閘 就 會 送出 「 g 」 , 反之亦然 。 這 個 小型 簡單 電路 的 完整 運算 , 就 可以 用 一 個 小型 簡單 的 邏輯表 顯示 : 因為 這 個 電路 的 運算 是 基本 物理力 的 一 個 函數 , 不可能 有 其他 結果 超出 這 個 表 所 列 的 範圍 。 於是 , 電腦 工程師 把 像 這樣 的 表 叫做 「 真值表 」 。 電路 設計 的 標準 方法 , 就 是 準備 可 提供 期望 結果 的 真值表 , 然後 , 用 夏 濃 的 技術 , 建立 能 產生 符合 此 表 結果 的 電路 。 舉例 來 說 , 製作 布爾 AND 運算 的 真值表 相當 簡單 。 我們 在 第六 章 看過 , 運算 的 規則 ( 我們 用 睡眼 惺忪 的 上班族 來 代表 , 如果 時鐘 說 早上 八點鐘 , 而且 日曆 上 說 今天 是 工作日 , 則 他 就 得 早早 起床 ) 就是 唯有 在 條件 A 及 條件 B 皆 為 真的 情況 下 , 這 個 結果 才 是 肯定 的 。 若 以 DIM—I 可以 理解 的 二進制 表示法 來 說明 這 個 邏輯 規則 , 左 表 只有 在 輸入 A 及 輸入 B 皆 為 1 的 情況 下 , 這 個 輸出 才 會 是 1 。 若 兩 個 輸入 都 不 是 1 , 則 這 個 閘 必定 會 放出 0 。 用 一 個 真值表 寫下來 , 這 個 AND 運算 看起來 就 像 這樣 : 比起 簡單 的 NOT 表 , AND 運算 這 個 表 複雜 一些 , 而且 很 可能 變 得 複雜 很多 。 舉例 來 說 , 一 個 AND 運算 可能 有 三 個 、 四 個 或 八 個 不同 的 輸入 。 基本 的 邏輯 AND 規則 還是 一樣 ( 唯有 在 輸入 A 及 輸入 B 及 輸入 C 及 輸入 D … … 等等 都 是 1 的 情況 下 , 輸出 才 會 是 1 ) , 但 這 個 真值表 畫起來 以及 在 電路 系統 裡 重現 的 時候 會 更加 複雜 。 此外 , 不同 的 邏輯閘 可以 利用 不同 組合 , 一 個 接著 一 個 連成 一 串 , 因而 達到 不同 的 邏輯 結果 。 以 某 個 常見 的 實例 來 看 , NOT 加上 AND 閘 , 會 創造出 一 種 新 的 邏輯閘 , 叫做 NAND 閘 。 由於 各 種 原因 , 這 已經 成為 所有 建置 組塊 當中 , 許多 電腦 設計師 最 常用 的 一 種 。 若要 讓 像 DIM — I 這 種 沒 腦子 的 機器 將 兩 個 數字 相加 , 而且 每 次 都 要 出現 正確 的 答案 , 那麼 , 電路 設計師 就 要 先 訂出 適用 於 兩 個 輸出 加法 問題 的 真值表 。 由於 數位 機器 以 二進制 數字 做 算術 , 因此 真值表 就 包含 了 二進制 加法 的 所有 規則 : 自從 人們 開始 建造 數位 計算 裝置 以來 , 標準 的 電路 已經 發展到 可以 重現 每 一 個 必要 的 邏輯閘 以及 每 一 個 必要 的 數學 運算 。 工程師 已經 完成 數 種 不同 的 電路 , 恰好 會 產生 這 個 二進制 結果 。 必要 的 開關 模式 已經 內建到 微處理器 晶片 的 邏輯 與 算術 工作 裡 。 由於 DIM—I 是 如此 簡單 的 裝置 , 使用 最 簡單 的 加法 電路 , 只 用 了 十幾 個 標準閘 建構 。 而 流進 閘 內 的 電子 脈波 模式 , 就 代表 準備 要 相加 的 二進制 數字 。 而 跑出來 的 東西 , 也 是 一 種 代表 這 兩 個 數字 總和 的 脈波 模式 — — 若 有 必要 , 還 會 有 一 個 進位 的 數字 , 讓 它 進位 到 下 一 欄 。 而且 , 當 DIM—I 裡面 的 控制 單元 注意到 有 人 按下 「 = 」 鍵 的 時候 , 這 個 電路 系統 就 會 開始 作業 。 控制 單元 現在 會 回到 暫存器 , 看看 前 幾 個 按鍵 動作 是 什麼 , 以便 執行 計算 。 暫存器 會 記錄 有 人 按下 「 3 」 、 「 + 」 及 「 2 」 三 個 鍵 。 於是 DIM—I 現在 要 將 這 兩 個 數字 加起來 , 並且 找出 總和 。 若要 完成 這 個 動作 , 控制 單元 會 將 這 個 3 和 2 ( 當然 是 二進制 的 形式 ) 饋入 一 個 加法 電路 , 一 次 一 欄 : 從 最 右邊 的 一 欄 開始 , 各 對 數字 進入 邏輯閘 。 由於 各 閘 連接 的 方式 , 因此 只 可能 出現 一 種 脈波 模式 : 這 當然 就 是 十進制 的 5 。 既然 加法 電路 系統 已經 發出 解答
|