Skip to content

Từ Transistor đến CPU

Mở đầu

Máy tính "suy nghĩ" thế nào? Bạn có thể biết CPU là "não", nhưng não đó hoạt động ra sao? Sao từ đống kim loại + nhựa thành thiết bị thông minh chạy program, xử data? Chương này dẫn bạn từ transistor underlying nhất, từng bước hiểu nguyên lý cấu tạo CPU.

Bạn sẽ học:

  • Hiểu thuật ngữ: "CPU clock", "multi-core", "instruction set" không còn mù mờ
  • Code execution view: 1 dòng code qua fetch-decode-execute-writeback thành pixel màn hình thế nào
  • Tư duy abstraction layer: mỗi layer cung cấp service lên trên, ẩn complexity dưới
  • Foundation: cho computer architecture, embedded, performance optimization
ChươngNội dung
1Transistor — switch của thế giới digital
2Logic gate — implement Bool trên vật lý
3Functional unit — adder, register, MUX
4CPU core — fetch/decode/execute/writeback

0. Toàn cảnh: từ cát đến trí tuệ

Lột vỏ máy tính, ta thấy chỉ kim loại, nhựa, chip silicon. Tự thân không có sự sống, không hiểu toán. Nhưng khi điện chạy qua, mọi thứ vận hành. Tất cả từ 1 abstraction physics đơn giản: switch.

Tưởng 1 công tắc đèn. Bật = "1", tắt = "0". Nếu có vài tỷ switch và 1 switch điều khiển switch khác, ghép logic phức tạp → ta có general computing platform.

Phân tầng từ cát đến trí tuệ

  • Tầng 1: Transistor (hàng tỷ) — "switch" đáy. CPU hiện đại dùng MOSFET. Apply điện vào gate → source-drain conduct. Vấn đề core: dùng điện điều khiển điện thế nào?
  • Tầng 2: Logic gate (hàng tỷ) — ghép transistor song song/nối tiếp → mạch thành toán. AND: 2 input đều 1, output 1. Map Bool algebra lên mạch. Core: biến đóng-mở thành phép tính 0/1?
  • Tầng 3: Functional unit (hàng trăm) — ghép logic gate. Adder (số học), MUX (data flow), register (nhớ). Core: làm máy nhớ + cộng thế nào?
  • Tầng 4: CPU core (1-128 core) — trung tâm chỉ huy. Khi bạn viết 1 dòng code, các unit phối hợp tỷ lần/giây để fetch-decode-execute-writeback. Core: làm modules tự động chạy chuỗi program?

1. Transistor: switch của thế giới digital

MOSFET 晶体管示意 ── 点击切换 Gate 电压
源极
Source
Gate0
断开 → 输出 0
漏极
Drain
👆 点击切换 Gate 电压

1.1 Transistor là gì?

Concept

Transistor là semiconductor đã thay đổi lịch sử. Trong digital circuit, abstract = "switch hoàn hảo".

Như vòi nước. Nhưng thay vì dùng tay, điều khiển bằng điện áp:

  • Source + Drain = 2 đầu ống nước
  • Gate = van điều khiển

Điểm key: không phải tay vặn, mà điện áp control. Khi 1 switch có thể bị control bởi switch khác → vượt qua "manual" sang "auto computation".

1.2 Transistor biểu diễn 0/1 thế nào?

Vậy "máy chỉ hiểu 0/1" trong vật lý là gì? Trong chip có 0 với 1 nhỏ tí chạy không?

Không. Đây là convention abstraction. Chia 2 mức điện áp:

  • Điện áp cao (vd 3.3V hoặc 1.0V) = logic 1 (True)
  • Điện áp thấp (gần 0V) = logic 0 (False)

Đây là digital abstraction: cắt thế giới analog đầy noise thành 0/1 sạch sẽ.

1.3 Sự tiến hoá số transistor

1 transistor nhỏ bé, nhưng vài tỷ thì sao?

NămChipSố transistorProcessÝ nghĩa
1971Intel 40042,30010μmBình minh microprocessor
1993Intel Pentium3.1M800nmPC phổ cập
2006Intel Core 2 Duo291M65nmMulti-core mainstream
2020Apple M116B5nmMobile architecture phản kích
2023Apple M3 Max92B3nmGần giới hạn nguyên tử

3nm là gì? 1 nguyên tử Si đường kính ~0.2nm. Tức process 3nm = transistor structure chỉ vài chục nguyên tử rộng. Ở rìa quantum mechanics, để xây pháo đài tính toán lớn nhất loài người.


2. Logic gate: dùng switch làm phép tính

2.1 Từ transistor đến logic gate

Khi ghép nhiều transistor theo structure, vật lý → math logic. Tầng mới, không nói volts/amps, nói "true"(1)/"false"(0).

四种基本逻辑门所有数字计算的基础积木
AND与门
运算:A ∧ B
两个都为 1,才输出 1
串联开关:两道门都开才通
真值表
AB输出
000
010
100
111
OR或门
运算:A ∨ B
有一个为 1,就输出 1
并联开关:任一道门开就通
真值表
AB输出
000
011
101
111
NOT非门
运算:¬A
输入取反:0 变 1,1 变 0
反向器:开变关,关变开
真值表
A输出
01
10
XOR异或门
运算:A ⊕ B
两个不同,才输出 1
差异检测器:相异为真
真值表
AB输出
000
011
101
110
核心思想: 逻辑门把物理电路的"通/断"变成了数学上的"真/假"运算,是硬件实现软件逻辑的桥梁。

2.2 Basic logic gate

  • AND: input đều 1 → output 1. Ẩn dụ: nối tiếp 2 transistor. Như mở két nhà băng, manager + supervisor cùng cắm chìa.
  • OR: 1 input là 1 → output 1. Ẩn dụ: song song 2 transistor. Nhiều đường, 1 đường thông là OK.
  • NOT (Inverter): 1 → 0, 0 → 1. Flip state.
  • XOR: 2 input khác nhau → 1. Máy "detect difference". Vũ khí để cộng nhị phân.

2.3 Logic gate làm phép cộng

从手算加法到逻辑门计算机如何只用 0 和 1 做数学题?看看这个规律
第一步:回顾十进制的"进位"
1
7
+5
12

因为 7 + 5 = 12,这个结果超出了个位能装下的最大数字 (9)。 我们把 12 拆成"一个完整的 10"和"剩下的 2":

  • 留在当前位置的那个 2写在个位上,这叫 本位 (Sum)
  • "完整的 10"向十位进了一个 1,叫 进位 (Carry)
第二步:二进制加法的 4 种情况(点点看)
+=00

0 + 0 = 0。
本位写 0,不进位。

第三步:给规律起个名字(电路化)
AB进位本位
0000
0101
1001
1110
本位 规律:
只有当输入是 (0,1) 或 (1,0) 时,本位才是 1。
总结:只有两个输入不同时才为 1。
这个规律在电路中叫 XOR (异或门)
进位 规律:
只有当输入是 (1,1) 时,进位才是 1。
总结:只有两个输入都是 1 时才为 1。
这个规律在电路中叫 AND (与门)

Vậy ghép XOR (sum bit) + AND (carry) = mạch cộng 1-bit, gọi là Half Adder.

半加器 (Half Adder) — 交互演示点击输入 A / B,看看这一位加法的结果
+=00
▲ 进位:向左边那列借一个 1▲ 本位:这一列写下的数字
0 + 0 = 0。这一列写下 0,不需要进位。
所有可能的情况
AB写下(本位)进位
0000
0110
1010
1101

仔细看这张表,你会发现两个规律:

  • 「写下」列:只有 A 和 B 不一样时才是 1 → 这个规律叫 XOR(异或)
  • 「进位」列:只有 A 和 B 都是 1 时才是 1 → 这个规律叫 AND(与)
电路是这样连的:
A = 0
B = 0
XOR 异或门
不同 → 1
输出: 0
AND 与门
全1 → 1
输出: 0
本位 (Sum)
0
进位 (Carry)
0

Nhưng Half Adder bị bug: chỉ 2 input port (A, B).

Tưởng cộng cột thập phân (19 + 22):

  • Hàng đơn vị: 9+2=11, viết 1 nhớ 1. 2 input OK.
  • Hàng chục: phải cộng 1+2 + carry 1 từ hàng đơn vị = 1+2+1=4. Tức ngoài bit thấp nhất, các bit khác là cộng 3 số!

Half Adder không có cổng "Carry-in", chỉ dùng được bit thấp nhất. Cần Full Adder nhận 3 signal:

全加器 (Full Adder) — 交互演示比半加器多一个输入:来自低位的进位 (Cin)。点击三个输入试试
++=01
AB低位进位进位本位
1 + 0 + 0 = 1。本位写 1,不进位。
和半加器相比:全加器多了第三个输入「低位进位 (Cin)」。在多位加法中,每一列不仅要加 A 和 B,还要加上右边那一列传来的进位。
所有 8 种情况(3个输入 → 2³ = 8)
ABCin本位进位
00000
00110
01010
01101
10010
10101
11001
11111
全加器的内部 = 两个半加器串联
第一步:半加器 ①
先算 A + B
A = 1B = 0
中间和: 1进位①: 0
第二步:半加器 ②
把中间和 + 低位进位
中间和 = 1Cin = 0
本位: 1进位②: 0
第三步:合并进位
两路进位只要有一个是 1,就向高位进 1
进位① = 0进位② = 0
最终进位: 0

Cascade nhiều Full Adder → cộng nhiều bit:

行波进位加法器 (Ripple Carry Adder)多个全加器级联,实现多位二进制加法
级联低位 Cout 连接高位 Cin
行波进位像波浪一样逐位传递
溢出最高位产生进位,结果超出范围
位数:
+=13
A0111(7)
B0110(6)
=1101(13)
加法器级联悬停查看每位计算详情
第0位半加器
A1B0
Sum1Cout0
第1位全加器
A1B1Cin0
Sum0Cout1
第2位全加器
A1B1Cin1
Sum1Cout1
第3位全加器
A0B0Cin1
Sum1Cout0
整体计算过程
输入:A = 7 (0111),B = 6 (0110)
过程:从第 0 位开始,逐位计算本位和进位,进位向高位传递
结果:1101 = 13
核心思想: 进位像波浪一样从最低位逐级传递到最高位,所以叫"行波进位"。位数越多,延迟越大,但电路简单。

Phân tích adder

  1. Half Adder: cộng 2 bit. Tính sum + carry, không nhận carry-in.
  2. Full Adder: bit middle cần A + B + Carry-in. Thêm logic carry-in → Full Adder.
  3. Ripple Carry Adder: xử 32/64 bit, cascade chục Full Adder. Carry signal lan như sóng từ bit thấp lên cao.
完整加法器演示从逻辑门到多位加法 ── 层层抽象,逐级封装
第一层:逻辑门
最基础的运算单元,每个门执行一种布尔运算
AND (与门)全 1 为 1
OR (或门)有 1 为 1
XOR (异或门)不同为 1
&
AND (与门)A AND B
0001
≥1
OR (或门)A OR B
0111
=1
XOR (异或门)A XOR B
0110
1
NOT (非门)¬A
10
核心思想: 逻辑门把电压高低(0/1)变成布尔运算(真/假),是硬件实现数学的起点。
抽象层级总结
逻辑门
半加器
⊞⊞全加器
🔲多位加法器
🧠ALU/CPU

3. Functional unit: ghép logic gate

Với logic gate trong tay, lên layer cao hơn. Cộng không đủ, ta đóng gói thành Functional Unit.

3.1 Phân loại module

ModuleSứ mệnhCấu tạo logicẨn dụ
AdderSố họcCascade Full AdderBàn tính không mỏi
MUX (Multiplexer)Control data flow, multi-to-oneAND làm switch + OR aggregateĐường ray xe lửa chuyển hướng
DecoderGiải binary instructionGate array light up specific outputNgười dịch điện mật
Flip-FlopVượt tính phù du điện, nhớ historyFeedback loop bistableBập bênh giữ trạng thái
常见功能单元 ── 切换不同模块,查看其实际工作原理
多路选择器 (MUX):像铁路道岔一样,根据"选择信号"决定让哪一路数据通过。
数据 0 (D0)
数据 1 (D1)
MUX
选择 (Sel)
输出 (Out)0

当前选择信号为 0,因此输出等于 数据 0 (D0) 的值:0

CPU 寄存器组CPU 内部的高速存储单元
专用寄存器 (Special Registers)
PC
0x00401000
程序计数器
IR
0x8B450008
指令寄存器
MAR
0x00401000
内存地址寄存器
MDR
0x00000000
内存数据寄存器
ACC
0x0000001A
累加器
通用寄存器 (General Purpose Registers)
RAX
0x00000000
返回值
RBX
0x00000000
基址寄存器
RCX
0x00000000
计数寄存器
RDX
0x00000000
数据寄存器
RSI
0x00000000
源索引
RDI
0x00000000
目标索引
RBP
0x00000000
栈帧指针
RSP
0x7FFDE000
栈指针
程序状态字 (PSW / FLAGS)
CF0进位标志
PF0奇偶标志
AF0辅助进位
ZF0零标志
SF0符号标志
OF0溢出标志
寄存器 vs 内存
特性寄存器内存 (RAM)
位置CPU 内部CPU 外部
访问速度最快 (< 1ns)较慢 (50-100ns)
容量极小 (Bytes)大 (GB)
作用暂存指令/操作数/结果存储程序和数据

3.2 Register: lưu data

Ngoài tính, máy cần nhớ data tạm hoặc lâu. Mất trí nhớ giây trước = không tính được. Khả năng này nhờ Flip-Flop.

Memory là loop

Đa số mạch logic signal flow forward (feed-forward). Để có "memory" liên tục, các thiên tài thiết kế: output feed lại input.

Như bập bênh 2 điểm static stable. Không bị ngoại lực → loop tự khoá ở "trái cao phải thấp" (nhớ 0) hoặc ngược (nhớ 1). State thay đổi tức thời cũng được loop khoá lại "deep".

Sắp 32 hoặc 64 flip-flop thành 1 hàng, apply clock signal đồng bộ → Register ra đời. Là "scratch pad" tốc độ cao của CPU, giữ mọi biến critical instant.

从触发器到寄存器:记忆的闭环机制
试着改变数据并观察,没有时钟信号的允许,输出重新反馈回输入端的"闭环"长久保护了记忆。
数据总线 (Data Input)
1
0
1
0
大门
🔒
4位寄存器 (存储状态)
0
0
0
0
控制中心
尝试改变左侧输入,闭环保护期间寄存器值无法更改。

4. CPU Architecture: từ functional unit đến processor

4.1 Các component CPU

  • ALU (Arithmetic Logic Unit): làm việc, cộng/trừ/nhân/chia + logic
  • Register File: ngăn kéo tạm bàn làm việc, nhỏ nhưng cực nhanh
  • Internal Bus: băng chuyền chuyển data + signal giữa module
  • Control Unit: tổng chỉ huy. Đọc instruction binary từ memory, parse, gửi control signal điều phối module
CPU 内部微架构剖析
点击下方各个模块,查看其内部由哪些子电路构成以及工作原理
CPU 核心 (Central Processing Unit)
地址总线 (Address Bus)
数据总线 (Data Bus)

控制单元 (Control Unit)

程序计数器 (PC)
指令寄存器 (IR)
指令译码器
时钟发生器
控制信号线 ↓

寄存器组 (Register File)

通用寄存器 R0-R3
累加器 (ACC)

算术逻辑单元 (ALU)

加法器电路
状态标志 (Flags)
控制总线 (Control Bus)
🖱️

点击左侧 CPU 内部结构图的各个模块,
深入探索其微观电路实现。

4.2 CPU thực thi instruction thế nào?

Mọi high-level code cuối cùng thành instruction trong memory. CPU execute instruction lặp 4 step:

  1. Fetch: theo program counter, đọc từ memory/cache instruction tiếp
  2. Decode: phân tích — instruction này move memory, hay gọi ALU?
  3. Execute: gửi instruction tới ALU hoặc unit khác, thực hiện logic
  4. Write Back: viết kết quả về register hoặc memory
CPU 指令执行周期详细演示
CPU
控制单元 CU
PC256程序计数器
IR指令寄存器
MAR内存地址寄存器
MDR内存数据寄存器
算术逻辑单元 ALU
ACC0累加器
通用寄存器组
R00
R10
R20
R30
地址总线
数据总线
控制总线
主存 Memory
0x100LOAD R0, [0x200]
 0x101LOAD R1, #7
 0x102ADD R0, R1
 0x103STORE [0x201], R0
数据区
 0x51242
 0x5130
Fetch取指
Decode译码
Execute执行
Write Back写回
步骤 0 / 32
点击"时钟脉冲"开始逐步执行,或点击"自动运行"连续播放。

Đỉnh hiệu quả: Pipeline

Nếu phải chờ instruction trước qua hết 4 step mới bắt instruction sau, hiệu quả thấp.

Như dây chuyền nhà máy, chip engineer dùng Instruction Pipeline. Khi mạch 1 đang "execute" A, mạch trước đó "decode" B, mạch trước nữa "fetch" C. Parallel overlap → CPU efficiency tăng vọt.


5. Tổng kết: vượt layer abstraction

Đường đi của abstraction:

  1. Vật lý vĩ mô: cát (SiO2 crystal) → tinh chế, slice, etch
  2. Vật lý vi mô: vài tỷ transistor switch (điện điều khiển điện)
  3. Đại số digital: AND/OR/NOT (truth table)
  4. Microarchitecture module: adder + functional unit
  5. Architecture phức tạp: CPU array
  6. Vương quốc app: algorithm + system software + Internet

Mỗi layer encapsulation ẩn hoàn hảo complexity layer dưới. Khi bạn viết salary = base + bonus, không cần biết electron drift; chip designer cũng không cần biết tương lai chạy software gì.

Suy nghĩ cuối

Computation cuối cùng = vài tỷ switch trong không gian kín reorganize. Theo nhịp clock, trên 1 chip Si nhỏ, hoàn thành tính toán phức tạp.

"Số lượng đổi chất" — câu này luôn đúng trong computer architecture. Khi gõ keyboard, nhìn màn hình, hãy tưởng tượng: trong silicon vi mô, vài tỷ transistor đang phối hợp với tốc độ ánh sáng. Đây là vẻ đẹp đặc trưng của computer science.

2026 update

  • 3nm + 2nm process: TSMC, Samsung, Intel cạnh tranh
  • Chiplet architecture: AMD, Apple ghép nhiều die nhỏ
  • NPU (Neural Processing Unit): chip cho AI inference, Apple M-series, Qualcomm
  • Quantum computing: IBM, Google, đang ở "NISQ" era
  • VN dev: hiểu CPU architecture giúp tối ưu performance JS/Python; biết cache line, branch prediction

Tài liệu