Tải bản đầy đủ (.pdf) (13 trang)

Giáo Trình Kiến Trúc Máy Tính - Nguyễn Hữu Lộ phần 2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (152.96 KB, 13 trang )

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-


CHƯƠNG 2:
CẤU TRÚC CHUNG MÁY TÍNH

Một máy tính bao gồm các bộ xử lý, bộ nhớ và các thiết bò vào/ra. Trong chương
này sẽ giới thiệu 3 thành phần này và sự phối ghép chúng. Chúng ta cần phải biết sơ
lược cấu trúc chung của máy tính trước khi nghiên cứu kỹ các cấp lớp khác nhau trong
các chương sau.

Cấu trúc của một máy tính đơn giản có thể được hình dung như sau:

Đơn vò Số ho
ï
c và
Logic (ALU)
Các thanh ghi

Bộ Nhớ
Chính


Đóa



Máy in
Đơn vò Điều khiển
(CU)

Thiết bò Vào / Ra Bus


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


d. Xác đònh nơi chứa dữ liệu trong bộ nhớ

e. Tìm nạp dữ liệu vào các thanh ghi trong CPU nếu cần thiết

f. Thực hiện lệnh

g. Lưu kết quả vào nơi thích hợp

h. Trở về bước 1 để thực hiện lệnh kế tiếp

Các bước tuần tự trên gọi là chu kỳ tìm nạp-giải mã- thực hiện lệnh

Tập hợp tất cả lệnh người lập trình có thể sử dụng ở một cấp được gọi là tập các
lệnh hay gọi ngắn ngọn là tập lệnh (instruction set) của cấp đó. Đối với cấp máy qui
ước, số lệnh của một tập lệnh thường trong khoảng từ 20 đến 300. Một tập lệnh có số
lệnh lớn không nhất thiết tốt hơn một tập lệnh nhỏ. Xu hướng trong thực tế sẽ ngược
lại, một tập lệnh nhỏ sẽ tốt hơn. Một tập lớn thường tồn tại nhiều lệnh không được sử
dụng rộng rãi.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-17-
Các trình biên dòch (compiler) của các ngôn ngữ cấp cao như Ada, Modula 2,
Pascal, C thường hoạt động tốt trên các máy có tập lệnh nhỏ và được chọn lọc hơn là
trên các máy có tập lệnh lớn, cồng kềnh và khó sử dụng.
Máy tính có một tập lệnh rất nhỏ gọi là máy có tập lệnh được rút gọn RISC
(Reduced Instruction Set Computer). Máy tính này thao tác rất nhanh.
2. Tổ chức CPU
Đường dữ liệu (data path) của một máy von Neumann kinh điển


























Hình 2.2
A+B


A


B


A B
A+B
ALU
Đường dữ liệu bao gồm các thanh ghi và đơn vò số học và logic, các thanh ghi
này có thể đưa giá trò vào 2 thanh ghi nhập vào tên A, B. Hai thanh ghi này chốt các
ngõ nhập vào của đơn vò số học và logic trong lúc ALU tính toán.
ALU thực hiện phép toán cộng, trừ và các thao tác (operation) đơn giản khác trên
các toán hạng (operand) chứa trong A và B, đưa ra kết quả trên thanh ghi xuất ra. Dữ
liệu trong thanh ghi xuất có thể được cất giữ trở lại một thanh ghi của CPU hoặc đưa
trở lại bộ nhớ nếu muốn. Trong hình trên phép cộng được sử dụng để minh hoạ.

Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-18-
3. Thực hiện lệnh song song:
Từ những ngày đầu khai sinh ra máy tính, những nhà thiết kế đã cố gắng tạo ra
những máy tính xử lý nhanh. Để làm được điều ấy, người ta đã tìm nhiều biện pháp để
hoàn thiện phần cứng. Tuy nhiên, nhiếu giới hạn vật lý khác nhau bắt đầu xuất hiện
khi tăng tốc độ phần cứng. Ví dụ: Không có một tín hiệu nào có thể di chuyển vượt
được vận tốc của ánh sáng trong chân không, khoảng 30cm/ngiây và trong cáp đồng là
20cm/ngiây. Điều này có nghóa là để xây dựng một máy tính có thời gian lệnh là 1
ngiây, toàn bộ khoảng cách mà tín hiệu có thể di chuyển từ CPU đến bộ nhớ và ngược
lại sẽ không thể lớn hơn 20 cm. Vì thế các máy tính có tốc độ càng nhanh phải có kích
thước càng nhỏ.
Với các máy tính có tốc độ cao, khả năng sinh nhiệt lớn và nếu lắp máy tính vào
1 thể tích nhỏ thì sẽ khó tiêu tán nhiệt. Đôi khi các siêu máy tính được đặt chìm trong
chất lỏng freon, một chất dùng làm nguội nhanh. Để giải quyết vấn đề này, thay vì tạo

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 biến thái của ý tưởng này là tách việc thực hiện một lệnh ra thành nhiều
phần. Trong hình sau ta thấy một CPU có 5 đơn vò xử lý

Hình 2.4: Một máy đường ống có 5 đơn vò xử lý

Cách tổ chức như trong hình được gọi là máy đường ống (Pipeline machine). Nếu
thời gian dành cho mỗi đơn vò xử lý là m ngiây thì phải mất 5m ngiây để thực hiện một
lệnh. Tuy nhiên với các tổ chức trên có thể xem mỗi lệnh thực hiện chỉ trong m ngiây
do vậy tăng tốc độ xử lý lệnh của máy lên gấp 5 lần.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-20-
Chú ý rằng mặc dù máy sử dụng cơ chế song song bên trong, một máy đường ống
dẫn vẫn là máy SISD do chỉ có một chương trình và một tập dữ liệu. Ngược lại, các
máy SIMD thao tác trên nhiều tập dữ liệu song song. Ứng dụng điển hình của loại máy
SIMD là dự báo thời tiết. Thí dụ như tính nhiệt độ trung bình hàng ngày cho nhiều
vùng, phương pháp tính đều giống nhau nhưng với các dữ liệu khác.

Một cấu trúc khá thích hợp cho công việc này là máy vector (vector machine)
dược trính bày trong hình 2.5

Đường dữ liệu ở đây tương tự như trong hình 2.2 , chỉ khác ở chỗ thay vì có một
biến đơn cho từng ngõ nhập của ALU, ta có một vector với n ngõ nhập. Tương tự ALU
thực sự là một ALU vector, có khả năng thực hiện một thao tác như phép công vector
(hình 2.5 b) trên 2 vector nhập và kết qủa được lấy ra ở vector xuất. Một số siêu máy
tính có cấu trúc tương tự với cấu trúc này.


Hình 2.5


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

xuất. Một thiết kế đó được trình bày trong hình 2.6b cho thấy mỗi bộ xử lý có một bộ
nhớ cục bộ (riêng), các bộ xử lý khác không thể thâm nhập đến. Bộ nhớ này sử dụng
cho các mã chương trình và dữ liệu không cần chia sẻ. Việc truy xuất bộ nhớ riêng
không dùng đến bus chính sẽ làm giảm một lượng lớn lưu lượng trên bus chính.

Các bộ đa xử lý khác không sử dụng một bus mà dùng nhiều bus để làm giảm tải.
Một số khác sử dụng caching, một kỹ thuật sử dụng các từ nhớ được thường xuyên sử
dụng trong từng bộ xử lý.
II- BỘ NHỚ CHÍNH:

Bộ nhớ là một phần của máy tính dùng để chứa chương trình và dữ liệu đang thực
hiện. Không có máy tính số nào lưu trữ chương trình mà không có bộ nhớ, để từ đó bộ
xử lý có thể ghi và đọc thông tin
1. Bit
Đơn vò cơ bản của bộ nhớ là một chữ số nhò phân gọi là bit (binary digit). Một bit
có thể là 0 hoặc 1.
Người ta thường cho rằng các máy tính sử dụng số nhò phân là vì tính hiệu qủa
của loại số này.
Người ta thấy rằng thông tin số có thể được cất giữ bằng cách phân biệt các giá
trò khác nhau của một đại lượng vật lý liên tục như điện áp hoặc dòng điện. Càng
nhiều giá trò cần được phân biệt, càng ít có sự khác biệt giữa 2 giá trò kề cận nhau và
càng khó tin cậy vào bộ nhớ. Hệ thống số nhò phân chỉ yêu cầu 2 giá trò để phân biệt,
do vậy đây là phương pháp đáng tin cậy nhất để mã hoá thông tin số.
Một số máy tính như các mainframe của IBM, được quảng cáo có thể sử dụng cả
số thập phân lẫn số nhò phân. Mưu mẹo này đạt được bằng cách dùng 4 bit để chứa
một số thập phân. 4 bit cho ta 16 tổ hợp, dùng cho 10 số từ 0 đến 9 còn 6 tổ hợp không
sử dụng.
Thí dụ: 16 bit ở dạng thập phân có thể chứa các số từ 0 tới 9999, chỉ cho 10000 tổ
hợp trong khi 16 bit nhò phân có thể chứa 65536 tổ hợp khác nhau. Vì lý do này người
ta nói số nhò phân hiệu qủa hơn số thập phân.


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

12
ô nhớ, mỗi ô nhớ có 8 bit và một bộ nhớ có 2
12
ô nhớ, mỗi ô
nhớ có 60 bit thì cả hai đều cần 12 bit cho đòa chỉ, tuy nhiên dung lượng bộ nhớ trước
nhỏ hơn bộ nhớ sau.
Số bit của mỗi ô nhớ đối với một số máy tính đã được bán trên thò trường như
sau:
Bourroughs B 1700 1 bit /ô nhớ
IBM-PC 8 bit /ô nhớ
DEC PDP-8 12 bit /ô nhớ
IBM 1130 16 bit /ô nhớ
Electrologica X8 27 bit /ô nhớ
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-24-
Honeywell 6180 36 bits /ô nhớ
CDC Cyber 60 bits / ô nhớ
Trong những năm gần đây, hầu hết các nhà chế tạomáy tính đều chuẩn hoá 1 ô
nhớ có 8 bit và gọi là một byte. Nhiều byte gộp lại thành từ (word). Một máy tính sử
dụng 1 từ 16 bit nghóa là máy có 2 byte/từ, trong khi đó một máy dùng 1 từ 32 bit sẽ có
4 byte/từ. Hầu hết các lệnh của máy tính đều thao tác trên từ, thí dụ cộng 2 từ với
nhau. Do vậy, một máy 16 bit sẽ có các thanh ghi 16 bit và các lệnh để thao tác các từ
16 bit, máy có 32 bit sẽ có các thanh ghi 32 bit và các lệnh để thực hiện phép dòch
chuyển, cộng, trừ và các thao tác khác trên các từ 32 bit.
3. Trật tự của byte:
Byte trong 1 từ được đánh số từ trái sang phải hoặc từ phải sang trái. Sự lựa chọn
này thoạt nhìn không quan trọng nhưng bao hàm một ý nghóa rất lớn. Hình 2.8a miêu tả
một phần bộ nhớ của một máy tính 32 bit, trong đó các byte được đánh số từ trái sang
phải đối với họ Motorola chẳng hạn. Hình 2.8b đại diên cho họ máy tính 32 bit dùng

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ý

Cấn Trúc Máy Tính
-25-
chiều dài là bao nhiêu. Điều này cho phép máy tính nhận chỉ phải thực hiện những
chuyển đổi cần thiết.
Trong bất kỳ trường hợp nào ta cũng thấy rằng việc thiếu một tiêu chuẩn về trật
tự byte là nỗi phiền toái chính khi trao đổi dữ liệu giữa các máy tính khác nhau.
4. Mã sửa lỗi:
Thỉnh thoảng bộ nhớ máy tính cũng tạo ra lỗi do các xung điện áp trên đường cấp
điện hoặc do những nguyên nhân khác. Để tránh những lỗi như vậy, các bộ nhớ đều
dùng các mã phát hiện lỗi hoặc các mã sửa lỗi. Khi sử dụng các mã này, các bit phụ
được thêm vào ở mỗi từ nhớ theo một phương pháp đặc biệt. Khi đọc một từ ra khỏi bộ
nhớ, các bit phụ được kiểm tra để xem có lỗi hay không.
Để hiểu các lỗi được xử lý như thế nào ta cần phải biết thực sự lỗi là gì? Giả sử
một từ nhớ có m bit dữ liệu và ta sẽ thêm vào r bit dư thừa (redundant) hoặc r bit kiểm
tra. Đặt toàn bộ chiều dài bit là n (n=m+r). Một đơn vò có m bit dữ liệu và r bit kiểm tra
được xem như một từ mã (code word) n bit.
Cho 2 từ mã 10001001 và 10110001, ta có thể xác đònh chúng có bao nhiêu bit
tương ứng khác nhau, ở thí dụ này 2 từ mã có 3 bit khác nhau. Để xác đònh số bit khác
nhau, ta chỉ cần thực hiện phép toán XOR theo bit hai từ mã đã cho va đếm số bit 1
trong kết quả. Số các bit trên 2 từ mã khác nhau gọi là khoảng cách Hamming. Ý nghóa
của việc xác đònh khoảng cách là nếu 2 từ mã có khoảng cách Hamming là d, cần có d
lỗi đơn bit (single bit error) sẽ đổi mã này thành mã kia. Thí dụ các từ mã 11110001 và
00110000 có khoảng cách Hamming là 3 vì cần có 3 lỗi đơn bit để đổi mã này thành
mã kia.
Với một từ nhớ m bit, tất cả 2
m
tổ hợp các bit đều hợp lệ nhưng do có tính các bit
kiểm tra, chỉ có 2
m
trong 2

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à

vùng nhớ dự trữ cho hệ thống hay còn gọi vùng nhớ cao UNA (Upper Memory Area).
Sự sắp xếp này tồn tại đến bây giờ. Bộ nhớ 1MB được chia làm 16 vùng nhớ, mỗi
vùng 64 KB gọi là phân đoạn (segment) được đánh số từ 0 đến F (còn gọi là các phân
đoạn từ 0000 đến F000)
640 KB vùng nhớ qui ước bao gồm các phân đoạn từ 0000 đến 9000 và 384 KB
vùng nhớ dự trữ cho hệ thống bao gồm các phân đoạn từ A000 đến F000.
Các chip vi xử lý có nhiều bit đòa chỉ hơn lần lượt ra đời làm cho không gian bộ
nhớ tối đa tăng dần (16M đối với 80286; 4G đối với 80386, 80486, Pentium, Pentium
MMX, Pentium Pro; 64G đối với Pentium II)
Vùng nhớ lớn hơn 1MB gọi là vùng nhớ mở rộng (extended memory). Nếu bô vi
xử lý chạy ở chế độ thực (real mode), chỉ có 1 MB đầu tiên được truy xuất. Ngược lại,
nếu bộ vi xử lý ở trong chế độ bảo vệ (protected mode), toàn bộ không gian nhớ có thể
truy xuất được.
Nguyễn Hữu Lộc Khoa Vật Lý

×