Mục lục bài họcĐang ở d04-b1
Von Neumann architecture, registers and buses
The stored-program idea
In a von Neumann machine, instructions and data are held in the same memory and travel on the same buses. That is what makes a computer general-purpose — change the program, change the machine. It is also the source of the von Neumann bottleneck: the processor cannot fetch an instruction and its data at the same instant.
Inside the CPU
The control unit decodes instructions and generates the timing signals. The ALU performs arithmetic and logic. Registers, each with one job:
• PC (program counter) holds the address of the next instruction.
• MAR (memory address register) holds the address being accessed.
• MDR (memory data register) holds the data or instruction just fetched, or about to be written.
• CIR (current instruction register) holds the instruction being executed.
• ACC (accumulator) holds the result of ALU operations.
• Status register holds flags such as carry, negative and overflow.
Three buses
The address bus is unidirectional and its width sets the maximum addressable memory ($n$ lines address $2^n$ locations). The data bus is bidirectional and its width sets how many bits move per transfer. The control bus carries signals such as read, write, clock and interrupt request.
What actually makes a processor faster
Clock speed, number of cores, cache size and word length all contribute, and each has a limit. More cores only help software written to use them; a larger cache helps until the working set fits; a faster clock produces more heat. Exam answers must name the limit, not just the benefit.
Ý tưởng chương trình lưu trữ
Trong máy von Neumann, lệnh và dữ liệu nằm trong cùng một bộ nhớ và đi trên cùng các bus. Chính điều đó khiến máy tính trở thành thiết bị đa dụng — đổi chương trình là đổi công dụng của máy. Nó cũng là nguồn gốc của nút cổ chai von Neumann: bộ xử lý không thể nạp lệnh và nạp dữ liệu của lệnh đó cùng một lúc.
Bên trong CPU
Khối điều khiển giải mã lệnh và phát tín hiệu định thời. ALU thực hiện phép toán số học và logic. Các thanh ghi, mỗi cái một việc:
• PC (bộ đếm chương trình) giữ địa chỉ của lệnh kế tiếp.
• MAR (thanh ghi địa chỉ bộ nhớ) giữ địa chỉ đang được truy cập.
• MDR (thanh ghi dữ liệu bộ nhớ) giữ dữ liệu hoặc lệnh vừa nạp về, hoặc sắp ghi ra.
• CIR (thanh ghi lệnh hiện hành) giữ lệnh đang được thực hiện.
• ACC (bộ tích luỹ) giữ kết quả các phép của ALU.
• Thanh ghi trạng thái giữ các cờ như nhớ, âm và tràn số.
Ba bus
Bus địa chỉ đi một chiều và độ rộng của nó quyết định dung lượng nhớ tối đa ($n$ đường địa chỉ được $2^n$ ô nhớ). Bus dữ liệu đi hai chiều và độ rộng quyết định mỗi lần chuyển được bao nhiêu bit. Bus điều khiển mang các tín hiệu như đọc, ghi, xung nhịp và yêu cầu ngắt.
Thứ gì thật sự làm bộ xử lý nhanh hơn
Tốc độ xung nhịp, số nhân, dung lượng bộ nhớ đệm và độ dài từ đều góp phần, và mỗi thứ đều có giới hạn. Thêm nhân chỉ có ích nếu phần mềm được viết để dùng nhiều nhân; bộ nhớ đệm lớn hơn chỉ giúp tới khi tập dữ liệu đang dùng vừa đủ nằm trong đó; xung nhịp nhanh hơn sinh nhiều nhiệt hơn. Bài thi phải nêu được GIỚI HẠN chứ không chỉ nêu lợi ích.
Một máy tính có bus địa chỉ $20$ đường và bus dữ liệu $16$ đường.
(a) Tính số ô nhớ tối đa có thể địa chỉ hoá. (b) Nếu mỗi ô nhớ chứa một byte, dung lượng nhớ tối đa là bao nhiêu? (c) Nếu mở rộng bus địa chỉ lên $24$ đường thì dung lượng tối đa tăng bao nhiêu lần?
(a) $n$ đường địa chỉ cho $2^n$ tổ hợp, mỗi tổ hợp là một địa chỉ.
$2^{20}=1\,048\,576$ ô nhớ, tức $1$ Mi ô nhớ.
(b) Mỗi ô một byte ⇒ dung lượng tối đa $=1\,048\,576$ byte $=\mathbf{1}$ MiB.
Chú ý: bus DỮ LIỆU $16$ đường không ảnh hưởng tới câu này. Nó cho biết mỗi lần chuyển được $16$ bit, tức lấy được hai ô nhớ một lượt — đó là chuyện thông lượng, không phải chuyện dung lượng.
(c) $2^{24}=16\,777\,216$ ô, tức $16$ MiB.
Tăng $\dfrac{2^{24}}{2^{20}}=2^4=\mathbf{16}$ lần.
Bài học về luỹ thừa. Thêm $4$ đường địa chỉ — nghe như một thay đổi nhỏ — làm dung lượng tối đa gấp $16$ lần. Cứ thêm một đường là gấp đôi. Đây cũng là lý do IPv4 với $32$ bit cạn địa chỉ trong khi IPv6 với $128$ bit thì không: chênh lệch không phải bốn lần mà là $2^{96}$ lần.
Đọc xong rồi — làm thử ngay
Bài tập của chương Hardware and Processor Fundamentals gồm 14 câu trắc nghiệm và 3 đề tự luận. Đáp án hiện ngay khi chọn, miễn phí.