Giáo trình Cấu trúc máy tính - Pdf 13

TRƯỜNG ĐẠI HỌC ĐÀ LẠT
F 7 G

GIÁO TRÌNH
CẤU TRÚC MÁY TÍNH

NGUYỄN HỮU LỘC

2000
Cấn Trúc Máy Tính
-2-
MỤC LỤC
Chương 1: GIỚI THIỆU CHUNG 5
I. NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP: 5
II. PHẦN CỨNG VÀ PHẦN MỀM: 7
III. LỊCH SỬ PHÁT TRIỂN MÁY TÍNH: 8
1. Thế hệ không: 8
2. Thế hệ thứ nhất: 9
3. Thế hệ thứ hai: 10

4. Bus không đồng bộ 65
5. Phân xử bus 67
II. THÍ DỤ VỀ CHIP VI XỬ LÝ VÀ BUS 71
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-3-
1. Chip vi xử lý 8088 của họ Intel 71
2. Thí dụ về bus 74
III. Bộ nhớ 76
1. Phân loại bộ nhớ bán dẫn 77
2. Tổ chức bộ nhớ: 77
3. Một số khái niệm về bộ nhớ khác: 79
IV. Giao tiếp 81
1. Các chip I/O 81
2. Giải mã đòa chỉ 82
Chương 4 LỚP VI CHƯƠNG TRÌNH 85
I. NHẮC LẠI LỚP VẬT LÝ: 86
1. Các thanh ghi: 86
2. Bus nội: 86
II. MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: 88
Chương 4: LỚP VI CHƯƠNG TRÌNH 90
I. NHẮC LẠI LỚP VẬT LÝ: 91
1. Các thanh ghi: 91
2. Bus nội: 91
II. MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH: 93
Chương 5: LỚP MÁY QUY ƯỚC 95
I. CÁC THÍ DỤ VỀ LỚP MÁY QUI ƯỚC: 95
II. CÁC KHUÔN DẠNG LỆNH 101
III. KIỂU ĐỊNH VỊ ĐỊA CHỈ : 102
1. Đònh đòa chỉ tức thời: 103

lệnh hữu hạn. Chương trình máy tính gồm một dãy lệnh sắp xếp theo một trình tự nhất
đònh để thực hiện một việc cho trước. Những linh kiện điện tử trong mỗi máy tính chỉ
có thể nhận biết và thực hiện trực tiếp một số lệnh hữu hạn và một chương trình máy
tính chỉ có thể thực hiện trên máy tính đó nếu sử dụng chính số lệnh hữu hạn đó.

Tập lệnh mà máy tính thực hiện trực tiếp tạo ra một ngôn ngữ cho phép người sử
dụng trao đổi được với máy tính. Đó là ngôn ngữ máy. Khi chế tạo ra một máy tính
mới, người ta tạo ra các lệnh, hình thành ngôn ngữ máy. Thông thường người ta có
khuynh hướng chọn các lệnh này càng đơn giản càng tốt để hạn chế mức độ phức tạp
(và dó nhiên là giá thành ) của các linh kiện điện tử cần thiết. Khó khăn là các ngôn
ngữ máy này còn quá nguyên sơ nên rất khó sử dụng.
I. NGÔN NGỮ VÀ MÁY ẢO, MÁY TÍNH NHIỀU CẤP:

Có 2 cách để giải quyết vấn đề này. Thực tế là cả hai cách này đều nhằm đưa
vào một tập lệnh mới dễ sử dụng hơn ngôn ngữ máy. Tập lệnh mới này tạo thành một
ngôn ngữ mới (ngôn ngữ L2) là tập các lệnh khác lệnh máy (ngôn ngữ L1. )

Cách thứ nhất để thực hiện chương trình viết bằng L2 là dòch lệnh của chương
trình thành dãy các lệnh tương đương L1. Máy tính sẽ thực hiện chương trình mới bằng
L1 thay vì L2. Kỹ thuật này gọi là biên dòch (compile).

Cách thứ 2 là từng lệnh của chương trình viết bằng L2 sẽ được thực hiện tương
ứng với một dãy các lệnh L1. Kỹ thuật này không cần tạo ra toàn bộ một chương trình
L1 nên gọi là phiên dòch (interpret).

Hai khái niệm biên dòch và phiên dòch mới đầu có vẽ hơi giống nhau. Nhìn
chung, lệnh trong L2 sẽ được chuyển thành một dãy lệnh trong L1 để thực hiện. Song
phải thấy rằng trong trường hợp biên dòch tất cả chương trình L2 sẽ phải dòch sang L1
sau đó chương trình L1 thực hiện. Còn với phiên dòch thì mỗi lệnh trong chương trình
L2 được phân tích rồi thực hiện ngay và như vậy dường như không tồn tại chương trình

Máy ảo Mn,
Ngôn ngữ Ln
Cấp n Cấp 3
Máy thực M1,
Ngôn ngữ máy L1
Máy ảo M2,
Ngôn ngữ L2

Cấp 2

Cấp 1

Hình 1.1: Kiến trúc máy tính nhiều cấp
Cấp 1: Lớp vi chương trình. Khác với cấp 0, trong cấp này ta thấy có chương trình
gọi là vi chương trình dùng để phiên dòch những lệnh ở cấp 2.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-7-

chương trình. Những chương trình này được cất giữ trên những thiết bò lưu trữ như đóa
từ, đóa quang….

Có lập luận cho rằng phần cứng và phần mềm tương đương với nhau về mặt logic
(hardware and software are logically equivalent). Bất kỳ một phép toán nào đó giải
được bằng phần mềm đều có thể thực hiện trực tiếp bằng phần cứng và bất kỳ một
lệnh nào đó thi hành bằng phần cứng đều có thể mô phỏng bằng phần mềm. Ranh giới
giữ phần cứng và phần mềm thường xuyên thay đổi. Có những cái hôm nay thực hiện
bằng phần mềm, ngày mai lại thực hiện bằng phần cứng và ngược lại. Hơn thế nữa
ngày càng thấy rằng ranh giới giữ các lớp máy tính ngày càng không rõ ràng. Song
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-8-
việc phân đònh các lớp giúp cho người làm việc với máy tính tại 1 lớp n nào đó sẽ
không cần biết nhiều đến chi tiết các lớp dưới. Như vậy việc ứng dụng máy tính ngày
càng dễ dàng mặc dầu chúng ngày càng phức tạp.
III. LỊCH SỬ PHÁT TRIỂN MÁY TÍNH:
1. Thế hệ không:
Những máy tính cơ và điện từ (1642-1945)
Blaise Pascal (1623-1662) là người có công chính trong việc tạo ra máy làm toán
đầu tiên, chính vì lý do này mà về sau Niklaus Wirth đã lấy tên Pascal đặt cho ngôn
ngữ lập trình mà ông đã sáng tạo nên. Năm 1642 lúc ấy Pascal mới 19 tuổi đã tạo ra
một máy hoàn toàn bằng cơ khí điều khiển bằng tay và thực hiện được phép cộng và
phép trừ . 30 năm sau, Baron Gottfried von Leibniz (1646-1716) thêm vào phép nhân
và phép chia và đó chính là tiền thân của máy tính bỏ túi (calculator) ngày nay của
chúng ta.
Mãi đến 150 năm sau đóù Charles Babbage (1792-1871), giáo sư toán tại Đại học
Cambridge, đã thiết kế và xây dựng được máy sai phân (difference engine). Máy chỉ
tính toán với một thuật toán đơn, phương pháp sai phân hữu hạn sử dụng các đa thức .
Máy này hoạt động tốt tuy vậy Babagge mong thực hiện được với nhiều thuật toán

bằng các bánh xe răng cưa.
Máy tính đầu tiên của Aiken là máy Mark I, được hoàn tất năm 1944 ở Harvard
gồm 72 từ, mỗi từ 23 số thập phân và có chu kỳ lệnh là 6 sec. Việc xuất nhập dùng các
băng giấy đục lỗ. Sau đó Aiken hoàn tất máy Mark 2 và các máy tính rơ le trở nên lỗi
thời. Kỹ nguyên điện tử đã bắt đầu.
2. Thế hệ thứ nhất:
Những máy tính đèn điện tử (1945-1955)
Các máy tính điện tử được phát triển nhanh trong thế chiến thứ 2 phục vụ các
mục đích quân sự. Tuy vậy các công trình này đều nằm trong các dự án bí mật quân
sự. Chỉ biết rằng tại Đức có nhữnng máy tính của Zuse, tại Anh có COLOSSUS mà
một trong những người tham gia thiết kế là nhà toán học nỗi tiếng người Anh tên Alan
Turing.
Tại Hoa kỳ, John Mauchley đề nghò quân đội tài trợ cho việc xây dựng máy tính
điện tử. Đề nghò được chấp thuận vào năm 1943, Mauchley và sinh viên J. Presper
Eckert, tiến hành xây dựng một máy tính điện tử gọi là ENIAC (Electronic Numerical
Integrator And Computer). Máy này gồm 18.000 đèn điện tử và 1500 rờ le, nặng 30
tấn và tiêu thụ 140KW. Sau này người ta thường xem ENIAC là máy tính điện tử đầu
tiên của nhân loại.
Sau chiến tranh, Mauchley và Eiker tổ chức một khóa học hè để mô tả các công
việc của họ cho những bạn đồng nghiệp. Khóa học là sự khởi đầu cho sự phát triển ồ
ạt trong việc thiết kế các máy tính số lớn. Maurice Wilkes thiết kế EDSAC tại Đại học
Cambridge. Các máy khác như JOHNIAC ở Rand Corporation, ILLIAC ở Đại học
Illinois, MANIAC ở Los Alamos Laboratory, WEIZAC ở Viện Weizmann nước Israel
v.v…
Eckert và Mauchley làm ra máy kế tiếp EDVAC (Electronic Discrete Variable
Automatic Computer) , dự án này bò tổn hại sau khi họ rời khỏi Penn để thành lập công
ty máy tính ở Philadelphia sau này là công ty Unisys.
Trong lúc ấy, một trong những người tham gia trong dự án ENIAC trước đây là
nhà toán học nổi tiếng John von Neumann đến Princeton và thiết kế ra máy IAS. Ông
đã đưa ra thiết kế cơ bản gọi là máy von Neumann. Máy tính có khả năng lưu trữ

ghi băng từ, đọc và đục lỗ các bìa, in kết quả nhanh hơn 7094.
Năm 1964, một công ty khởi đầu mới, CDC giới thiệu máy 6600, một máy có tốc
độ nhanh hơn máy 7094 vì bên trong CPU có một cơ chế song song thật sự.
Có nhiều náy tính khác xuất hiện trong thời kỳ này tuy vậy chỉ có một máy nổi
bật với một lý do khá khác biệà đáng đề cập, máy Bourroughts B5000. Các nhà thiết
kế có chiến thuật khác so với các đối thủ cạnh tranh là họ đặt biệt xây dựng một máy
với ý đònh lập trình bằng ngôn ngữ Algol 60, một ngôn ngữ có trước PASCAL, và bao
gồm nhiều đặc trưng trong phần cứng tạo dễ dàng cho công việc của trình biên dòch.
4. Thế hệ thứ ba:
Những máy tính IC (1965-1980)
Mạch tích hợp IC (integrated circuit) hay còn gọi vi mạch tích hợp được phát
minh cho phép vài chục transistor được đặt trong một chip đơn. Vào năm 1964, IBM ,
một công ty máy tính hàng đầu giới thiệu một sản phẩm, System 360 dùng vi mạch.
Máy được thiết kế cho cả tính toán trong thương mại và tính toán trong khoa học.
System 360 có nhiều đổi mới, quan trong là hệ này vài kiểu (model) chạy cùng một
loại hợp ngữ, có công suất và kích thước tăng.Phần mềm viết viết trên cơ sở dùng được
trên các máy kiểu khác. Ý tưởng về các họ máy được ưa chuộng ngay lập tức, và trong
một vài năm hầu hết các nhà sản xuất máy tính có một họ các máy chung.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-11-
Đổi mới quan trọng khác trong 360 là đa lập trình (multi-programming), có vài
chương trình trong bộ nhớ đồng thời để khi một chương trình đang chờ việc xuất/nhập
hoàn tất, chương trình khác có thể tính toán 360 cũng là máy tính đầu tiên có thể mô
phỏng các máy tính khác. Một đặc trưng khác là không gian đòa chỉ lớn (lúc bấy giờ)
cho 2
24
byte nhớ (16 megabyte).
Thế giới máy tính mini cũng đã có một bước tiến lớn trong thế hệ máy tính vi
mạch khi DEC giới thiệu máy PDP-11, một kế thừa 16-bit của PDP-8. Trên nhiều khía

bản
Máy tính
mini
2 4 PDP-
11/84
ĐK thời gian
thực
Siêu
mini
1
0
32 SUN-4 Máy chủ
mạng
Mainfra
me
3
0
128 IBM
300
Ngân hàng
Siêu
máy tính
1
25
1024 Cray 2 Dự báo thời
tiết
MIPS: (Million of Instructions Per Second) Triệu lệnh trong 1 giây.

Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính


Tháng 10 năm 1992, Intel công bố chip Pentium, chip này bắt đầu sử dụng vào
tháng 03 năm 1993. Pentium đã được sử dụng công nghệ siêu vô hướng (superscalar
technology), công nghệ này có khả năng kết hợp với các máy có tập lệnh thu nhỏ
RISC (Reduced Instruction Set Computer). Pentium có 32 bit đòa chỉ và 64 bit dữ liệu
tuy vẫn chỉ có các thanh ghi 32 bit bên trong. Pentium có 2 loại bộ cache.

Pentium thế hệ 1 có tốc độ 60 /66 MHz, tích hợp khoảng 3,1 triệu transistor.
Pentium thế hệ 2 có tốc độ từ 75 đến 200MHz, tích hợp trên 3,3 triệu transistor.
Các chip Pentium MMX (thế hệ 3) công bố vào tháng 1 năm 1997 có tốc độ lên
đến 233MHz với trên 4,5 triệu transistor trên 1 chip. Cộng nghệ MMX được Intel phát
triển để đáp ứng nhu cầu về truyền thông đa phương tiện (multimedia)
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-13-

Tháng 5 năm 1997 Intel công bố chip Pentium II với các tốc độ lên đến 300MHz
tích hợp trên 7,5 triệu transistor trên 1 chip.

Đến năm 1999 với sự xuất hiện của Pentium III máy vi tính có khả năng biểu
diễn không gian ba chiều và nhận biết cũng như tổng hợp tiếng nói. Tần số làm việc
tối đa là 950MHz.

Năm 2001 Intel cho ra đời Pentium IV tốc độ lên đến 1,7GHz dùng công nghệ
siêu ống dẫn (hyper pipelined technology) cải thiện đáng kể chất lượng hình ảnh số,
âm thanh số và các trò chơi trong không gian ba chiều….

Sự phát triển các CPU của Intel phản ánh toàn bộ sự phát triển trong công nghiệp
máy tính.


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


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ớ


Hình 2.2
A+BA

B


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ý

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

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

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-

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ý


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status