Cấn Trúc Máy Tính
-14-
Một năm sau Motorola lại cho ra đời 68020 là một chip 32 bit thật sự. 68020 là
một thành công lớn và là nhân của hầu hết các trạm làm việc (workstation) chế tạo bởi
Sun Microsystems, Apollo và Hewlett-Packard. Chip tiếp theo là 68030 mà sự cải tiến
nằm ở quản lý bộ nhớ.
68040 giống như 80486 chứa CPU, một đồng xử lý toán học, đơn vò quản lý bộ
nhớ và cache trên chip.
Sau này lại xuất hiện chip Power PC. Rõ ràng ta có thể so sánh 68030 với 80386,
68040 với 80486, Pentium với Power PC của 2 công ty Intel và Motorola. Sự cạnh
tranh giữa các chip của Intel và các chip của Motorola sẽ tiếp tục trong nhiều năm nữa.
Hiện nay nhiều công ty trong đó chủ yếu là AMD (Advanced Micro Designs) và
Cyrix sản xuất các bộ vi xử lý hoàn toàn tương thích với các bộ vi xử lý của Intel.
Chúng mô phỏng toàn bộ các lệnh và thậm chí phần lớn các chip này tương thích cả
các chân của các chip Intel. Bất cứ phần cứng hay phần mềm nào hoạt động trên các
máy vi tính dùng các chip của Intel cũng sẽ hoạt động trên các máy vi tính dùng các
chip tương thích của AMD và Cyrix. Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-15-
Hình 2.1
I. CÁC BỘ XỬ LÝ
Bộ xử lý trung tâm (CPU) là đầu não của máy tính. Chức năng của nó là thực
hiện các chương trình nằm trong bộ nhớ chính bằng cách nạp lệnh sau đó giải mã rồi
thực hiện tuần tự hết lệnh này đến lệnh khác.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-16-
Bộ xử lý trung tâm gồm đơn vò điều khiển (giữ nhiệm vụ lấy lệnh, giải mã lệnh)
và đơn vò số học và logic (thực hiện các phép toán như cộng, trừ, nhân, chia, VÀ,
HOẶC v.v…
CPU gồm có các thanh ghi cho phép lưu giữ kết quả tạm thời hoặc thông tin điều
khiển. Mỗi thanh ghi có một chức năng riêng. Thanh ghi quan trọng nhất là thanh đếm
chương trình (Program Counter) chỉ đến vò trí của lệnh tiếp theo sẽ thực hiện. Ngoài ra
có thanh ghi lệnh (Instruction register). Hầu hết các máy tính đều có các thanh ghi như
thanh ghi chứa (accumulator), thanh ghi chỉ số (index register), thanh ghi trạng thái
(status register), con trỏ ngăn xếp (stack pointer) v.v…
1. Thực hiện lệnh
CPU thực hiện lệnh tuần tự như sau:
a. Tìm nạp lệnh kế tiếp từ bộ nhớ vào thanh ghi lệnh
b. Thay đổi nội dung thanh đếm chương trình để xác đònh đòa chỉ
lệnh kế
c. Giải mã lệnh vừa nạp
Hình 2.2
A+BA
ra một CPU tốc độ cao, người ta thiết kế máy tính gồm nhiều CPU tốc độ chậm hơn
nhưng hoạt động song song. Nhiều công trình nghiên cứu đã được tiến hành để xây
dựng những máy tính song song như vậy.
Máy tính song song được chia thành 3 loại (theo Flynn, 1971) dựa vào số luồng
lệnh (instruction stream) và số luồng dữ liệu (data stream) của máy tính đó:
- SISD: máy loại đơn lệnh, đơn dữ liệu
(Single Instruction stream, Single Data stream)
- SIMD: máy loại đơn lệnh, đa dữ liệu
(Single Instruction stream, Multiple Data stream)
- MIMD: máy loại đa lệnh, đa dữ liệu
(Multiple Instruction stream, Multiple Data stream)
Máy von Neumann truyền thống thuộc loại SISD, có một luồng lệnh (nghóa là
một chương trình) được thực hiện bởi 1 CPU và có một bộ nhớ chứa dữ liệu. Lệnh đầu
tiên được tìm-nạp từ bộ nhớ và thực hiện. Lệnh thứ hai được tìm-nạp và thực hiện
v.v…
Ngay cả trong mô hình tuần tự này, có thể nghó đến 1 quá trình song song như
tìm-nạp lệnh kế tiếp trước khi lệnh đang thực hiện hoàn tất. Với máy tính CDC6600 có
nhiều đơn vò chức năng (các ALU)
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-19-
Hình 2.3: Một CPU với 5 đơn vò chức năng hoạt động song song
Ý tưởng của phương pháp thiết kế này là đơn vò điều khiển tìm-nạp một lệnh và
sau đó đưa đến một đơn vò chức năng thích hợp để thực hiện. Trong lúc đó, đơn vò
điều khiển tìm-nạp chỉ thò kế tiếp và đưa đến một đơn vò chức năng khác.
Quá trình này tiếp tục cho đến khi không thể tiếp tục được nữa, hoặc vì tất cả các
đơn vò chức năng cùng loại đang bận hoặc một toán hạng vẫn còn đang được tính toán.
Một máy khác gần giống với SIMD là bộ xử lý dãy (array processor, một thiết kế
khởi đầu từ Đại học Illinois. Đó là máy tính ILLIAC IV như minh họa trong hình 2.6
sau:
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-21-
Hình 2.6: Bộ xử lý dãy của máy ILLIAC IV
Cấu trúc này bao gồm một mạng vuông các phần tử bộ xử lý / bộ nhớ. Một đơn vò
điều khiển truyền các lệnh và chúng được thực hiện bởi tất cả các bộ xử lý theo kiểu
sát gót (lockstep), mỗi bộ xử lý sử dụng dữ liệu riêng lấy từ một bộ nhớ riêng. Bộ xử
lý dãy đặc biệt thích hợp cho việc tính toán ma trận.
Loại máy thứ ba là MIMD, trong đó các CPU khác nhau làm việc với những
chương trình khác nhau, thỉnh thoảng chúng sử dụng chung một bộ nhớ. Hệ thống đặt
chỗ trước trong máy bay là một thí dụ, nhiều người cùng đặt chỗ đồng thời nhưng
không tiến hành song song, mà từng lệnh một vì chúng ta có nhiều luồng lệnh và nhiều
luồng dữ liệu.
Hình 2.7 a trình bày một bộ đa xử lý (multiprocessor), một máy MIMD sử dụng
bộ nhớ chia sẻ (shared memory). Các bộ xử lý truy xuất tới bộ nhớ chia sẻ (dùng
chung) thông qua bus.
Hình 2.6
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-22-
Khi nhiều bộ xử lý tốc độ nhanh truy xuất đồng thời tới bộ nhớ chia sẻ (dùng
chung) trên cùng một bus thì sẽ xảy ra xung đột (conflict). Những nhà thiết kế bộ đa xử
lý đã tìm nhiều phương án khác nhau để giảm thiểu sự tranh chấp và cải thiện hiệu
Tuy nhiên điều gì sẽ xảy ra, nếu một người nào đó thông minh có thể tạo ra một
linh kiện điện tử độ tin cậy cao có thể chứa trực tiếp các số từ 0 đến 9 bằng cách chia
điện áp từ 0 tới 10 volt thành 10 khoảng. 4 linh kiện này có thể chứa bất kỳ số thập
phân nào từ 0 tới 9999. 4 linh kiện như vậy sẽ cung cấp 10000 tổ hợp. Cũng có thể
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-23-
dùng chúng để biểu diễn các số nhò phân, chỉ dùng 0 và 1. Trong trường hợp này ta chỉ
có 16 tổ hợp. Với những linh kiện như vậy, rõ ràng số thập phân có hiệu quả hơn.
2. Đòa chỉ bộ nhớ:
Bộ nhớ gồm các ô nhớ hay còn gọi là vò trí nhớ (location). Mỗi ô nhớ chứa một
mẫu thông tin (piece of information). Mỗi ô nhớ có một số gọi là đòa chỉ hoặc vò chỉ
(address) của ô nhớ. Các chương trình có thể tham chiếu đến các đòa chỉ này. Nếu bộ
nhớ có n ô nhớ, chúng sẽ đánh đòa chỉ từ 0 tới n-1. Các ô nhớ chứa cùng một số bit.
Một ô nhớ có k bit sẽ có thể chứa 1 trong 2
k
tổ hợp bit khác nhau. Hình 2.7 trình bày 3
cách tổ chức khác nhau cho một bộ nhớ 96 bit.
Nếu 1 đòa chỉ có m bit, số ô nhớ tối đa có thể đòa chỉ hoá (đánh đòa chỉ) trực tiếp
là 2
m
.
Hình 2.7
Thí dụ: Trong hình 2.7 a cần ít nhất 4 bit để diễn tả các số từ 0 đến 11. Tuy nhiên
chỉ cần 3 bit để diễn tả đòa chỉ trong các hình 2.7b và 2.7c
Số bit trong đòa chỉ liên quan đến số ô nhớ tối đa có thể đòa chỉ hóa trực tiếp
trong bộ nhớ và không tùy thuộc vào số bit của mỗi ô nhớ.
Một bộ nhớ có 2
phương pháp đánh số thừ phải sang trái chẳng hạn như họ Intel.
Hệ thống đánh số bắt đầu từ số lớn gọi là máy tính Big-endian (bậc cao) ngược
lại Little-endian (bậc thấp)
Đòa chỉ Big Endian Little Endian Đòa chỉ 0
0
4 4
8
0 1 1 0
8
12
2 3 4 5 5 4 3 2
1
2
Byte Byte
Từ 32 bits Từ 32 bit
(a) (b)
Hình 2.8
Điều quan trọng cần hiểu trong cả 2 hệ thống Big-endian và Little-endian là khi
máy tính muốn gửi hồ sơ từ máy tính này sang máy tính khác trên mạng. Các số sẽ bò
đảo ngược và phải cần có một giải pháp phần mềm để đổi các byte trong 1 từ sau khi
sao chép.
Có một phương pháp khác nhưng cũng không hiệu quả lắm là thêm 1 header
trước mỗi hồ sơ cho biết loại dữ liệu theo sau (chuỗi, số nguyên hoặc dữ liệu khác) và
Nguyễn Hữu Lộc Khoa Vật Lý
n
từ mã có giá trò hợp lệ. Khi đọc bộ nhớ thấy xuất hiện một
từ mã không hợp lệ, máy tính hiểu rằng đã xảy ra một lỗi bộ nhớ. Cho một giải thuật
để tính các bit kiểm tra, ta có thể xây dựng một danh sách các từ ma hoàn toàn hợp lệ,
từ dfanh sách này tìm ra 2 từ mã có khoảng cách Hamming nhỏ nhất. Khoảng cách này
là khoảng cách Hamming đầy đủ.
Thí dụ: Hãy xem một biểu diễn đồ hoạ đơn giản minh họa rõ ý tưởng về mã sửa
lỗi cho các từ nhớ 4 bit
Sơ đồ Venn hình 2.9 có 3 vòng tròn A, B và C tạo thành 7 vùng khác nhau. Thí
dụ ta mã hoá từ nhớ 4 bit 1100 trong các vùng AB,ABC, AC và BC. Cứ 1 bit cho 1
vùng. Kế tiếp ta thêm 1 bit kiểm tra chẳn lẻ vào từng vùng trống còn lại để tạo ra
kiểm tra chẵn.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-26-
Hình 2.9
Kích thước từ Số bit kiểm tra Kích thước chung Phần trăm
8 4 12 50
16 5 21 31
32 6 38 19
64 7 71 11
128 8 136 6
256 9 265 4
512 10 522 2
Hình 2.10: Số bit kiểm tra cần thiết cho mã sửa lỗi đơn
5. Bộ nhớ chính trong các IBM PC
Các máy tính cá nhân PC (Personal computer) ban đầu sử dụng các chip vi xử lý
20 bit đòa chỉ có khả năng đòa chỉ hoá một không gian bộ nhớ tối đa 1 MB trong đó
640KB dưới được gọi là vùng nhớ qui ước (conventionnal memory), 384 KB trên là