IB/第4組/計算機科學/計算機組織/硬體層

電晶體是一種由半導體制成的電子元件,能夠調節電流流動。電晶體通常由矽或鍺製成。電晶體有三個連線點:發射極,充當輸出端;基極,用於控制電流;集電極,充當輸出端。使用基極可以調節從集電極到發射極的電流流動。
電晶體用於建立邏輯閘或開關,透過控制發射極的輸出來實現。不同的電晶體型別可以使用不同的結構來表示不同的邏輯閘。例如,與門的電晶體佈局與或門的佈局不同,或門的發射極位於不同的位置。
電晶體最初是為了取代真空管而建立的,真空管具有類似的功能。最初,電晶體是獨立工作的離散元件,計算機也是用單個電晶體組裝的。如今,電晶體可以在積體電路中大量組裝(見下文)。
考試不需要
考試不需要
概述

積體電路 (IC) 是電子裝置的核心元件,有些人稱之為“大多數電路的心臟和大腦”(SparkFun Learn)。積體電路更常被稱為“晶片”或“微電子電路”,它是一種半導體晶圓——通常由矽(一種半導體材料)製成——在其上放置微型元件以確保裝置的功能(例如電阻器——調節電流——電容器——儲存能量——二極體——訊號電流——以及電晶體——二進位制開關門/見什麼是電晶體?文章)。這種微晶片的容量從數千個到數百萬個電晶體不等,具體取決於機器的需求。
製造過程:光刻
積體電路是透過重複一個稱為光刻的過程來製造的,這是一種使用光線將複雜圖案轉移到稱為光掩模(通常是金屬)的合適材料的圖案薄膜上的技術,光掩模放置在矽晶圓(一種半導體材料)上;用於構建電晶體。
將電晶體安裝到積體電路
然後重複該過程,直到所有所需的圖案都被轉移到樣品上,然後樣品就變成一個電晶體。檢視摩爾定律圖(電晶體頁面)瞭解過去幾十年可以安裝在積體電路中的電晶體數量是如何演變的。
積體電路是電子元件,相當於我們的 DNA:它們構成了裝置的構建模組,確保其基本功能。因此,它的作用在任何單元的功能中都是至關重要的,確保多個操作同時執行(充當放大器、振盪器、計時器、計數器等)(Whatis.com, 2021)。
即使將多個電子粒子組合在一起的首次嘗試可以追溯到 1920 年代,但第一個可以與現代積體電路相比的晶片是由德國工程師沃納·雅各比製造的,他在 1949 年為他的發明申請了專利:一種半導體放大裝置,顯示五個電晶體安裝在一個三級放大器排列中(維基百科,2022)。然而,關於積體電路的大部分進展發生在 60 年代、70 年代和 80 年代,因為工程師試圖克服數字霸權問題(當數百萬個電子元件要組裝成一個單一的晶片時,然後由於光刻工藝,數十萬個晶片要安裝到一臺計算機上)。在 2022 年,雅各比發現 63 年後,蘋果公司在其基於 ARM 的雙晶片 M1 Ultra 系統中成功地安裝了1140 億個電晶體,該晶片使用臺積電的5 奈米 (1 米 x 10-9) 半導體(維基百科,2022)。
2.1.11 定義布林運算子;與、或、非、與非、或非和異或。
2.1.12 使用上述運算子構建真值表。
計算機中的門有時被稱為邏輯閘,因為它們每個只執行一個邏輯功能。也就是說,每個門接收一個或多個輸入值併產生單個輸出值。因為我們處理的是二進位制資訊,所以每個輸入和輸出要麼是0,對應於低電壓訊號,要麼是1,對應於高電壓訊號。門的型別和輸入值決定了輸出值。
布林邏輯(布林代數)是一種常用的數學工具,用於計算機邏輯。
在布林邏輯中,值僅由“假”或“真”(0 或 1)表示。在硬體中,“假”和“真”由電流“關閉”或“開啟”來表示。
存在布林運算子(與、或、非、與非、或非和異或),它們接收一個或兩個輸入並輸出一個輸出。這些操作是更復雜的計算機演算法的基礎。

電晶體由三個主要部分組成,集電極、基極和發射極(在右側的圖中分別標記為“C”、“B”和“E”)。集電極始終有電流流過,但是如果基極沒有電流,則集電極會被阻塞。遵循相同的邏輯,如果基極有電流流過而集電極沒有,則電流會被阻塞。如果集電極和基極都有電流流過,則發射極會輸出電流。
兩個串聯的電晶體可以構成布林門 AND,因為如果第一個電晶體沒有輸出,則第二個電晶體的集電極將沒有電流。
兩個並聯的電晶體可以構成布林門 OR,因為如果其中一個發射極輸出電流,則電流將到達輸出端。
| 布林表示式 | 邏輯圖符號 | 真值表 | ||||||
|---|---|---|---|---|---|---|---|---|
X = A' |
AX |
|
NOT 門接收一個輸入訊號併產生一個輸出訊號。右側的表以三種方式說明了 NOT 門:布林表示式、邏輯圖符號和真值表。在每種表示中,變數A表示輸入訊號,它可以是0或1。變數X表示輸出訊號,其值(0或1)由A的值決定。
根據定義,如果 NOT 門的輸入值為0,則輸出為1;如果輸入值為1,則輸出為0。NOT 門有時被稱為反相器,因為它會反轉輸入值。
在布林表示式中,NOT 操作由'標記表示。有時,此操作也可以用水平線覆蓋被否定值的表示(例如,ā)。在右側表格中相應的表示中,透過對輸入值A應用 NOT 操作,為X分配一個值。在這樣的賦值語句中,等號左側的變數取等號右側表示式的值。
NOT 門的邏輯圖符號表示為一個三角形,在其末端有一個小圓圈(稱為反轉泡)。輸入和輸出顯示為流入和流出門的線條。有時這些線條有標籤,但並不總是這樣。輸入訊號A通常位於圖的左側,輸出X通常位於圖的右側,表示 NOT 門的結果。
真值表顯示了 NOT 門所有可能的輸入值及其各自的輸出值。因為 NOT 門只有一個輸入訊號,並且該訊號只能是0或1,所以真值表中標記為輸入訊號 A 的列只有兩種可能性。標記為X的列顯示了門的輸出,它是輸入的反轉。請注意,在三種表示中,只有真值表實際上定義了門在所有情況下或可能性的行為。
這三種符號是表示 NOT 門的不同方式。例如,布林表示式0'的結果始終為1,而布林表示式1'的結果始終為0。這種行為始終與三種符號中顯示的值一致。
| 布林表示式 | 邏輯圖符號 | 真值表 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X = A • B
|
|
|
與接收一個輸入訊號的 NOT 門不同,AND 門接收兩個輸入訊號。兩個輸入訊號的值決定了輸出訊號的值。如果 AND 門的兩個輸入值都是1,則輸出為1;否則,輸出為0。
布林代數中的 AND 操作用單個點 (•) 表示,或者在某些情況下用星號 (*) 表示。通常運算子本身被認為是隱含的,例如A•B通常寫成AB。
因為有兩個輸入,每個輸入有兩個可能的值,所以可以將四種可能的1和0組合作為輸入提供給 AND 門。因此,在布林表示式中使用 AND 運算子時,可能發生四種情況。
同樣地,顯示 AND 門行為的真值表有四行,顯示了所有四種可能的輸入組合。
| 布林表示式 | 邏輯圖符號 | 真值表 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X = A + B
|
|
|
與 AND 門一樣,OR 門也有兩個輸入。如果兩個輸入值都是 0,則輸出值為 0;否則,輸入為 1。
布林代數 OR 操作用加號 (+) 表示。OR 門有兩個輸入,每個輸入都可以是兩個值之一,因此與 AND 門一樣,有四種輸入組合,因此真值表中有四行。
| NAND 門 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 布林表示式 | 邏輯圖符號 | 真值表 | |||||||||||||||||||
X = (A • B)'
|
|
| |||||||||||||||||||
| NOR 門 | |||||||||||||||||||||
| 布林表示式 | 邏輯圖符號 | 真值表 | |||||||||||||||||||
X = (A + B)'X = A - B
|
|
| |||||||||||||||||||
NAND 和 NOR 門接受兩個輸入值。NAND 和 NOR 門本質上分別是 AND 和 OR 門的相反。也就是說,NAND 門的輸出與取 AND 門的輸出並將其輸入反相器(NOT 門)相同。
在布林代數中通常沒有用於表示 NAND 和 NOR 門操作的特定符號。相反,應該依靠它們的定義來表達這些概念。也就是說,NAND 的布林代數表示式是 AND 操作的否定。同樣,NOR 的布林代數表示式是 OR 操作的否定。
NAND 和 NOR 的邏輯圖符號與 AND 和 OR 的符號相同,只是 NAND 和 NOR 符號有反轉泡(表示否定)。比較 AND 和 NAND 的真值表的輸出列。它們是相反的,逐行比較。OR 和 NOR 門也是如此。
布林門 XOR 與通常稱為“或”門的 OR 門在兩個主要方面不同。
| 布林表示式 | 邏輯圖符號 | 真值表 | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X = A ⊕ B
|
|
|
布林門 XOR 與通常稱為“或”門的 OR 門在兩個主要方面不同。
首先,布林門 XOR 或“異或”門的運算與 OR 門完全相同,只是如果兩個輸入都為真 (1),則結果輸出為假。XOR 門在兩個輸入為真 (1) 時產生假 (0),否則產生真 (1)。請注意 XOR 門與 OR 門之間的區別;它們只在一個輸入情況下不同。當兩個輸入訊號都為真 (1) 時,OR 門產生真 (1),而 XOR 產生假 (0)。
布林代數符號⊕有時用於表示 XOR 操作。但是,XOR 操作也可以使用其他運算子來表示,例如А̄B + AB̅。
“或”門與“異或”門之間的另一個主要區別是用於顯示 XOR 門的符號。“異或”門符號具有與“或”門相同的形狀,但其左側有一個曲線,沿著“或”門的左側曲線埠延伸。
人們已經觀察到六種特定的門型別。記住它們並瞭解它們的工作原理似乎是一項艱鉅的任務。好吧,這可能取決於個人的思考方式。你不應該被鼓勵去死記硬背真值表。這些門的處理可以用一般的術語簡要描述。如果你用這種方式思考,就可以在需要的時候隨時生成相應的真值表。
其中一些描述是根據什麼輸入值會導致門產生 1 作為輸出;在任何其他情況下,它都會產生 0。
- 非門反轉其單個輸入值
- 與門在兩個輸入值都為 1 時產生 1
- 或門在其中一個或兩個輸入值都為 1 時產生 1
- 異或門在只有一個輸入值為 1 時產生 1
- 與非門產生與與門相反的結果
- 或非門產生與或門相反的結果

真值表是電路各種輸入以及與每個輸入組合相關的輸出的視覺化表示。要建立真值表,請按順序繪製一個表格,為每個輸入設定一列,為輸出設定一列。右側的影像表示 Q = A 或非 B 的真值表。在第一行中,按影像中顯示的順序寫入輸入和輸出的名稱。然後,在每一行新增所有可能的輸入組合,並根據所選布林門的輸入確定每一行的輸出。
輸入組合的數量應對應於 2 的輸入數量次方(2 個輸入 = 4 個組合,3 個輸入 = 8 個組合)。
對於更復雜的布林表示式,最好為中間運算新增額外的列。
例如,對於表示式 Q = A 與 (B 或 C),除了輸入 A、B 和 C 的列之外,你還可以新增一個名為“B 或 C”的新列。這不是強制性的,但有助於視覺化運算並防止錯誤。
- 從布林表示式中識別門
- 確定門處理的順序
- 開始為輸入訊號插入真或假,遵循布林表示式以瞭解背後的邏輯流程
- 開始構建邏輯圖
組合電路由邏輯閘組成,這些邏輯閘的輸出在任何時候都由當前的輸入組合決定,而與之前的輸入無關。它由輸入變數、邏輯閘和輸出變數組成。邏輯閘接受來自輸入的訊號,並在輸出端生成訊號。組合電路的一些例子包括二進位制加法器、十進位制加法器、譯碼器、多路複用器、半加法器、半減法器等。
考試不需要
用於新增兩個一位數的邏輯電路稱為半加法器。輸出兩個位:加法的和以及進位。碰巧,由於 0 + 0 = 0 且 1 + 0 = 0 + 1 = 1,如果 A 和 B 都不為 1,則半加法器的輸出與異或門的輸出相同,只有在將 1 和 1 相加時才需要與門。

因此,進位僅在 1 + 1 的加法中是必要的,這等於 10(2 的二進位制)。此真值表中再現了加法過程。
| A | B | 進位 | 和 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |

全加法器是一個由邏輯閘組成的電路,類似於半加法器,但多了一個輸入來考慮進位變數。全加法器最多可以加三個一位變數,並輸出一個和和進位,與半加法器相同。全加法器由兩個半加法器和一個用於處理進位的或門組成。
| A | B | C | 進位 | 和 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
考試不需要

現在您已經熟悉了半加法器和全加法器,我們可以構建一個完整的電路來新增兩個 8 位整數。這個電路稱為 8 位進位鏈加法器。
結構很簡單。第一個電路是半加法器,接下來的所有電路都是全加法器。第一個電路的進位將被傳遞給全加法器,然後全加法器將其進位傳遞給下一個全加法器,依此類推。每個元件都接收來自兩個數字的對應位置的位。每個元件還輸出結果。當組合在一起時,每個單獨元件的結果字串會給出最終結果。
考試不需要
算術邏輯單元是 CPU(中央處理器)的主要元件之一,負責對來自不同儲存位置(例如 RAM 或硬碟)的二進位制數執行算術運算。
ALU 由兩個基本元件組成:算術單元和邏輯單元。
算術邏輯單元 (ALU) 能夠執行基本的算術運算,例如將兩個數字相加、相減、相乘和相除。這個單元還能夠執行邏輯運算,例如AND、OR 和 NOT。 ALU 對字進行操作,字是與特定計算機設計相關聯的自然資料單位。從歷史上看,計算機的字長是 ALU 每次處理的位數。然而,當前的英特爾處理器系列模糊了這個定義,將字長定義為 16 位。處理器可以處理字(16 位)、雙字(32 位)和四字(64 位)。在本維基百科的其他部分,當提到字時,將是指前面提到的歷史意義上的字長。

大多數現代 ALU 都有少量特殊的儲存單元,稱為 暫存器。這些暫存器包含一個字,用於儲存需要立即再次使用的資訊。例如,在計算 1 × (2 + 3) 中。首先將 2 加到 3,然後將結果乘以 1。與其將 2 和 3 相加的結果儲存在記憶體中,然後將其檢索出來乘以 1,不如將結果保留在暫存器中,然後將暫存器的內容乘以 1。訪問暫存器的速度比訪問記憶體位置快得多。
從比喻的角度來看,ALU 可以被看作是計算器和人腦(所有邏輯都在這裡處理)的結合。
行波進位加法器工作正常,但速度很慢,因為“梯形”中的每個全加器都必須等待前一個加器的進位才能進行計算。先行進位加法器可以透過繞過此問題來執行更快的計算,它使用單獨的模組提前計算進位。 
考試不需要
首先,移位電路是一種邏輯閘電路,它對輸入進行指定數量和指定方向的移位操作。它們主要用於透過將資料移位一定數量的位來將資料從一個區域移動到另一個區域。移位電路(如下面影像中所示的電路)由或門和與門組成。

二進位制移位電路有兩個輸入和一個輸出。其中一個輸入(A)是將要移位的輸入,另一個輸入(D)是移位器。D 輸入將按一定數量移位 A 輸入。當 D = 0 時,A 輸入將向左移一位,當 D = 1 時,A 輸入將向右移一位。
將數字移位 1、2 或 3 位意味著將數字除以或乘以 2、4 或 8 倍。那麼要移位 A 輸入需要什麼?我們需要另一個輸入,即 D 輸入,它將按指定方向將 A 輸入移位任意數量的位。
比較器電路是一種電子電路,它比較兩個輸入以最終產生輸出。該電路的輸出值指示哪個輸入更大或更小,使用運算放大器。運算放大器可以幫助放大兩個輸入之間的電壓。
比較器電路有兩種型別:反相和非反相。
反相比較器電路
考試不需要
多路複用器是一種組合電路,它可以根據一個或多個選擇輸入產生多個輸出。

在左側的影像中,我們可以看到可能的輸出(標記為“A”和“B”)根據選擇器輸入(標記為“sel”)而改變。
該多路複用器的真值表將是
| sel | 輸出 |
|---|---|
| 0 | A |
| 1 | B |
在上面的真值表中,我們可以觀察到,根據“sel”的輸出,整個電路的輸出從 A 變為 B。

如果我們想要更多可能的輸出,我們也必須更改選擇器輸入的數量。對於 N 個輸入線,我們需要 個選擇器輸入。遵循相同的邏輯,我們需要 個輸入線,每個 個選擇器線。
該多路複用器的真值表將是
| X | Y | 輸出 |
| 0 | 0 | f(0) |
| 0 | 1 | f(1) |
| 1 | 0 | f(2) |
| 1 | 1 | f(3) |
記憶體是單元的集合,每個單元都有唯一的物理地址。我們在這裡使用通用詞“單元”而不是“位元組”,因為每個可定址位置的位數(稱為記憶體的 可定址性)因機器而異。如今,大多數計算機都是位元組可定址的。
為了充分說明記憶體的概念,以一臺具有 4 GB RAM 的計算機為例。記憶體包含 4 × 230 個位元組,這意味著計算機的每個位元組都是唯一可定址的,並且該機器的 可定址性 為 8 位。記憶體中的單元從 0 開始連續編號。例如,如果 可定址性 為 8,並且有 256 個記憶體單元,則這些單元將按以下方式定址
| 地址 | 目錄 |
|---|---|
| 00000000 | 11100011 |
| 00000001 | 01010101 |
| 11111100 | 00000000 |
| 11111101 | 11111111 |
| 11111110 | 10101010 |
| 11111111 | 00110011 |
地址 11111110 的內容是什麼?儲存在該位置的位模式為 10101010。但是,內容的實際含義(無論是指令、值、符號等)將在後面討論。然而,重要的是要了解位模式是資訊,可以被解釋。
在引用位元組或字中的位時,位從右到左開始,從零開始編號。地址 1111110 中的位編號如下
| 位位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 目錄 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |

門控鎖存器是一個具有 3 個輸入的電路。與普通鎖存器電路類似,門控鎖存器使用置位和復位鎖存器,它與普通鎖存器不同之處在於使用了一個使能開關。
置位和復位開關,通常稱為 S-R 鎖存器,用於將輸入置位為 1 或將輸入復位為 0。
該開關開啟上述置位和復位開關。如果這個使能開關關閉會發生什麼?如果使能開關關閉,那麼置位和復位開關也會關閉。因此,當使能開關開啟時,另外兩個開關,置位開關和復位開關,能夠在需要時通電。
門控開關主要用於什麼?門控鎖存器主要用於數字儲存,是每個電子裝置必不可少的組成部分。當門控鎖存器中儲存的記憶體不需要計算機使用時,門控鎖存器將關閉。
暫存器是一小塊儲存單個數值的記憶體。更大的記憶體結構(如 RAM)由多個暫存器組成。暫存器也用在 CPU 中,在那裡它們充當小型但快速的臨時儲存資訊的方式(這些稱為處理器暫存器)。

只讀儲存器 (ROM) 是一種在建立後無法更改的儲存裝置。為此,該裝置通常必須進行硬連線。
顧名思義,只能從 ROM 中讀取資料。
通常,ROM 用於很少需要更改的軟體。但是,ROM 的執行速度比 RAM 慢。
右側顯示了 ROM 在主機板上可能的樣子。

主儲存器被定義為 CPU 可以直接訪問和修改的記憶體。 這帶來的副作用是它易失性,這意味著當電源關閉時會被刪除,但是它提高了 CPU 讀取和寫入記憶體的速度。 主儲存器由計算機的暫存器、快取記憶體和 RAM 組成。
主儲存器用於需要快速記憶體訪問的操作,因為它比將所有內容寫入輔助儲存器更快。 它還用於儲存不需要儲存的資料(例如,當你複製某些東西時,它被儲存在主儲存器中),以及用於記住 CPU 要執行的指令。

輔助儲存器是非易失性的,這意味著即使電源關閉,也可以訪問或檢索資料和程式。 輔助儲存器包括所有永久性或永續性儲存裝置,例如只讀儲存器 (ROM)。 在計算操作中,輔助儲存器只能由主儲存器訪問,然後才能傳輸到處理器 - 這就是它執行速度比 RAM 慢的原因。
一般來說,任何長期儲存的東西都會進入輔助儲存器。 這主要是計算機系統的啟動部分,應該保持一致,比如 Windows 執行所需的程式檔案。
它可以被解釋為計算機中的檔案儲存系統。 RAM 可以根據需要輕鬆訪問輔助儲存器中的資料。
2.1.5 確定持久儲存的必要性。
輸入裝置是將資料和程式輸入計算機並存儲到記憶體中的方式。 輸出裝置是將結果傳送回用戶的工具。 由於大部分主記憶體都是易失性的並且容量有限,因此必須存在其他型別的儲存裝置,以便在不再處理程式和資料或機器未開啟時儲存程式和資料。 這些其他型別的儲存裝置(除了主儲存器之外)被稱為輔助或輔助儲存裝置。 由於必須從這些裝置讀取資料並寫入這些裝置,因此每個儲存裝置也是輸入和輸出裝置。
輔助儲存裝置的示例包括;
- 磁帶,
- 磁碟,
- CD 和 DVD,
- 快閃記憶體驅動器,
- 外接硬碟