You are on page 1of 143

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.

com
ðẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH LỜI NÓI ðẦU
TRƯỜNG ðẠI HỌC CÔNG NGHỆ THÔNG TIN
----------o0o----------
Với mục tiêu ñưa các môn học chuyên ngành công nghệ
thông tin vào học ngay từ những học kỳ ñầu trong trường ðại học
Công nghệ thông tin, giáo trình Kiến trúc máy tính ñược biên
soạn ñặc biệt cho mục ñích này và ñược ñịnh hướng cho sinh viên
nghành công nghệ thông tin năm thứ nhất.
Giáo trình Kiến trúc máy tính này trình bày các vấn ñề
chung nhất, các thành phần cơ bản nhất cấu thành nên máy tính
Giáo trình hiện ñại nhằm trang bị cho sinh viên các nội dung chủ yếu trong 8
chương sau:
Chương I: Trình bày lịch sử phát triển của máy tính cũng
như các tích năng mới của máy tính trong từng giai ñoạn, các thế
KIẾN TRÚC MÁY TÍNH hệ máy tính, ñịnh hướng phát triển của máy tính và cách phân loại
máy tính.
Chương II: Giới thiệu các nguyên lý hoạt ñộng chung và
các tính chất cơ bản của các bộ phận chính yếu trong máy tính
như: bộ xử lý (CPU), bản mạch chính (Mainboard), các thiết bị
lưu trữ dữ liệu, các loại bộ nhớ RAM, Card ñồ họa, màn hình.
Ngoài ra còn cho thấy ñược những hình dáng và sự tích hợp của
các bộ phận với nhau nhằm giúp sinh viên có thể tự mua sắm, lắp
ráp một máy tính cho mình.
Biên soạn: TS. Vũ ðức Lung
Chương III: Trình bày cách biến ñổi cơ bản của hệ thống
số (như hệ thập phân, hệ nhị phân, hệ bát phân, hệ thập lục phân),
các cách cơ bản ñể biểu diễn dữ liệu, cách thực hiện các phép tính
số học cho hệ nhị phân.
Chương IV: Các cổng và ñại số Boolean, các ñịnh lý trong
ñại số Boolean, cách ñơn giản các hàm Boolean cũng như các
mạch số, cách biểu diễn các mạch số qua các hàm Boolean và
ngược lại, các mạch tổ hợp cơ bản, cách thiết kế các mạch ñơn
giản.
Chương V: Trình bày nguyên lý họat ñộng của các mạch
lật, các flip-flop, qui trình thiết kế một mạch tuần tự và ñưa ra ví
2009 dụ cụ thể cho việc thiết kế này.

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Chương VI: Phân loại kiến trúc bộ lệnh, cách bố trí ñịa
chỉ bộ nhớ, các cách mã hóa tập lệnh, các lệnh cơ bản của máy
tính qua các lệnh hợp ngữ assembler
Chương VII: Giới thiệu cấu trúc của bộ xử lý trung tâm:
tổ chức, chức năng và nguyên lý hoạt ñộng của các bộ phận bên
trong bộ xử lý như bộ tính toán logic số học, bộ ñiều khiển, tập
các thanh ghi. Ngoài ra còn trình bày cách tổ chức ñường ñi dữ
liệu, diễn biến quá trình thi hành lệnh và kỹ thuật ống dẫn.
Chương VIII: Trình bày các cấp bộ nhớ, thiết kế và
nguyên lý hoạt ñộng của các loại bộ nhớ. Phương pháp ñánh giá
hiệu năng của các cấp bộ nhớ. Các chiến thuật thay thế khối nhớ,
trang nhớ cũng như các chiến thuật ghi vào bộ nhớ.
Như ñã nói ở trên, giáo trình nhằm giảng dạy cho sinh viên
năm thứ nhất do ñó những kiến thức ñưa ra chỉ là cơ bản. ðể hiểu
sâu hơn mọi vấn ñề nên xem thêm trong các sách tham khảo ở
cuối quyển giáo trình này.
Mặc dù ñã cố gắng biên soạn rất công phu và kỹ lưỡng,
tuy nhiên cũng khó tránh khỏi những thiếu sót. Chúng tôi mong
ñược ñón nhận các ñóng góp ý kiến của các Thầy, các bạn ñồng
nghiệp, các bạn sinh viên và các bạn ñọc nhằm chỉnh sửa giáo
trình ñược hoàn thiện hơn.
Cuối cùng xin chân thành cảm ơn những góp ý quí giá của
các ñồng nghiệp khi biên soạn giáo trình này.

Vũ ðức Lung.

2
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Chương I: Giới thiệu phân ñược dùng ngày nay trong máy tính ñiện tử.
Năm 1834 giáo sư toán học trường ðH Cambridge (Anh),
Charles Babbage (người phát minh ra ñồng hồ công tơ mét) ñã thiết
1.1. Lịch sử phát triển của máy tính kế ra máy tính với chỉ 2 phép tính + và – nhưng có một cấu trúc
ñáng ñể ý thời bấy giờ – máy tính có 4 bộ phận:
Trong quá trình phát triển của công nghệ máy tính, con
- bộ nhớ,
người ñã chế tạo ra hàng ngàn loại máy tính khác nhau. Rất nhiều
- bộ tính toán,
trong số những máy tính này ñã bị quên lãng ñi, chỉ một số ít còn
- thiết bị nhập ñể ñọc các phiếu ñục lỗ,
ñược nhắc lại cho ñến ngày nay. ðó là các máy tính với những ý
- thiết bị xuất ñể khoan lỗ lên các tấm ñồng.
tưởng thiết kế và nguyên lý hoạt ñộng ñộc ñáo tạo nên một tầm ảnh
Chính ý tưởng của ông là tiền ñề cho các máy tính hiện ñại
hưởng lớn ñến các máy tính thế hệ sau nó. ðể giúp sinh viên có
sau này.
ñược những khái niệm cơ bản về máy tính và hiểu rõ hơn bằng
ðể máy tính hoạt ñộng nó cần phải có chương trình, và ông
cách nào mà con người ñã phát minh ra những máy tính hiện ñại,
ñã thuê cô Ada làm chương trình cho máy tính này. Cô Ada chính
dễ sử dụng như ngày nay, trong phần này sẽ trình bày những chi
là lập trình viên ñầu tiên và ñể tưởng nhớ tới cô ta sau này Ada
tiết quan trọng về lịch sử quá trình phát triển của máy tính.
ñược ñặt tên cho 1 ngôn ngữ lập trình. Tuy nhiên máy tính ñã
không hoạt ñộng ñược vì ñòi hỏi quá phức tạp và thời bấy giờ con
Máy tính thường ñược phân loại thành các thế hệ dựa trên
người và kỹ thuật chưa cho phép.
nền tảng công nghệ phần cứng ñược sử dụng trong quá trình chế
tạo. Lịch sử phát triển máy tính có thể ñược chia thành các thế hệ Năm 1936 К. Zus (người ðức) ñã thiết kế một vài máy ñếm
máy tính sau: tự ñộng trên cơ sở rơle (relay). Tuy nhiên ông không biết gì về máy
tính của Babbage và máy tính của ông ñã bị phá hủy trong một trận
1.1.1. Thế hệ zero –máy tính cơ học (1642-1945) bom vào Berlin khi chiến tranh thế giới lần thứ 2 - 1944. Vì vậy
những phát minh của ông ta ñã không ảnh hưởng ñến sự phát triển
Mốc lịch sử máy tính phải nhắc ñến ñầu tiên là khi nhà bác của kỹ thuật máy tính sau này.
học người Pháp Blez Pascal (1626-1662) vào năm 1642 ñã phát
minh ra máy tính toán ñầu tiên – máy tính cơ học với 6 bánh quay Năm 1944 G. Iken (thuộc ðH Havard Mỹ) ñã ñọc về công
và bộ dẫn ñộng bằng tay. Máy của ông chỉ cho phép thực hiện các trình của Babbage và ông ñã cho ra ñời Mark I sau ñó là Mark II.
phép tính cộng và trừ. Máy Mark I ra ñời với mục ñích chính là phục vụ chiến tranh. Nó
Sau 30 năm, vào năm 1672 một nhà bác học khác, Gotfrid nặng 5 tấn, cao 2.4 m, dài 15 m, chứa 800 km dây ñiện. Tuy nhiên
Vilgelm Leibnits ñã chế tạo ra máy tính với 4 phép tính cơ bản (+ - vào thời ñiểm ñó máy tính relay ñã qua thời và ñã bắt ñầu kỷ
* /) sử dụng 12 bánh quay. Từ khi nguyên của máy tính ñiện tử.
còn là sinh viên cho ñến hết cuộc
ñời, ông ñã nghiên cứu các tính 1.1.2. Thế hệ I – bóng ñèn ñiện (1945-1955)
chất của hệ nhị phân và là người Chiến tranh thế giới thứ 2 bắt ñầu và vào ñầu thời kỳ chiến
ñã ñưa ra các nguyên lý cũng như tranh tàu ngầm của ðức ñã phá hủy nhiều tàu của Anh, nhờ những
khái niệm cơ bản nhất cho hệ nhị
3 4
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

tín hiệu mã hóa ñược chuyền ñi bởi thiết bị ENIGMA mà quân ñội Máy ENIAC (Electronic Numerical Integrator And
Anh ñã không thể giải mã ñược. ðể giải mã ñòi hỏi một số lượng Computer), do John Mauchly và John Presper Eckert (ñại học
tính toán rất lớn và mất nhiều thời gian, trong khi chiến tranh thì Pensylvania, Mỹ) thiết kế và chế tạo, là chiếc máy số hoá ñiện tử
không cho phép chờ ñợi. Vì vậy chính phủ Anh ñã cho thành lập ña năng ñầu tiên trên thế giới (hình 1.2).
một phòng thí nghiệm bí mật nhằm chế tạo ra một máy tính ñiện
phục vụ cho việc giải mã những thông tin này. Năm 1943 máy tính  Số liệu kỹ thuật: ENIAC là một chiếc máy khổng lồ
COLOSSUS ra ñời với 2000 ñèn chân không và ñược giữ bí mật với hơn 18000 bóng ñèn chân không, nặng hơn 30 tấn,
suốt 30 năm và nó ñã không thể trở thành cơ sở cho sự phát triển tiêu thụ một lượng ñiện năng vào khoảng 140kW và
của máy tính. Một trong những người sáng lập ra COLOSSUS là chiếm một diện tích xấp xỉ 1393 m2. Mặc dù vậy, nó
nhà toán học nổi tiếng Alain Turing. Trong hình 1.1 là bức chân làm việc nhanh hơn nhiều so với các loại máy tính ñiện
dung của Alain Turing và một bóng ñèn chân không. cơ cùng thời với khả năng thực hiện 5000 phép cộng
trong một giây ñồng hồ.

Bóng ñèn chân không


Hình 1.1. Alain Turing với bóng ñèn chân không

Chiến tranh thế giới ñã có ảnh hưởng lớn ñến phát triển kỹ
thuật máy tính ở Mỹ. Quân ñội Mỹ cần các bảng tính toán cho pháo
binh và hàng trăm phụ nữ ñã ñược thuê cho việc tính toán này trên
các máy tính tay (người ta cho rằng phụ nữ trong tính toán cẩn thận
hơn nam giới). Tuy nhiên quá trình tính toán này vẫn ñòi hỏi thời
gian khá lâu và nhằm ñáp ứng yêu cầu của BRL (Ballistics Hình 1.2. Máy tính ENIAC
Research Laboratory – Phòng nghiên cứu ñạn ñạo quân ñội Mỹ)
trong việc tính toán chính xác và nhanh chóng các bảng số liệu ñạn  ðiểm khác biệt giữa ENIAC & các máy tính khác:
ñạo cho từng loại vũ khí mới, dự án chế tạo máy ENIAC ñã ñược ENIAC sử dụng hệ ñếm thập phân chứ không phải nhị
bắt ñầu vào năm 1943. phân như ở tất cả các máy tính khác. Với ENIAC, các
con số ñược biểu diễn dưới dạng thập phân và việc tính

5 6
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

toán cũng ñược thực hiện trên hệ thập phân. Bộ nhớ của 1.3), một cố vấn của dự án ENIAC, ñưa ra ngày 8/11/1945, trong
máy gồm 20 "bộ tích lũy", mỗi bộ có khả năng lưu giữ một bản ñề xuất về một loại máy tính mới có tên gọi EDVAC
một số thập phân có 10 chữ số. Mỗi chữ số ñược thể (Electronic Discrete Variable Computer – do Ekert và Moyshly ñã
hiện bằng một vòng gồm 10 ñèn chân không, trong ñó bắt ñầu làm rồi ngừng lại ñi thành lập công ty, sau này là Unisys
tại mỗi thời ñiểm, chỉ có một ñèn ở trạng thái bật ñể thể Corporation). Máy tính này cho phép nhiều thuật toán khác nhau
hiện một trong mười chữ số từ 0 ñến 9 của hệ thập phân. có thể ñược tiến hành trong máy tính mà không cần phải nối dây lại
Việc lập trình trên ENIAC là một công việc vất vả vì như máy ENIAC nhờ vào khái niệm chương trình lưu trữ.
phải thực hiện nối dây bằng tay qua việc ñóng/mở các
công tắc cũng như cắm vào hoặc rút ra các dây cáp ñiện.
 Hoạt ñộng thực tế: Máy ENIAC bắt ñầu hoạt ñộng vào
tháng 11/1945 với nhiệm vụ ñầu tiên không phải là tính
toán ñạn ñạo (vì chiến tranh thế giới lần thứ hai ñã kết
thúc) mà ñể thực hiện các tính toán phức tạp dùng trong
việc xác ñịnh tính khả thi của bom H. Việc có thể sử
dụng máy vào mục ñích khác với mục ñích chế tạo ban
ñầu cho thấy tính ña năng của ENIAC. Máy tiếp tục
hoạt ñộng dưới sự quản lý của BRL cho ñến khi ñược
tháo rời ra vào năm 1955.

Với sự ra ñời và thành công của máy ENIAC, năm 1946


ñược xem như năm mở ñầu cho kỷ nguyên máy tính ñiện
tử, kết thúc sự nỗ lực nghiên cứu của các nhà khoa học ñã
kéo dài trong nhiều năm liền trước ñó John von Neumann
Hình 1.3. Von Neumann với máy tính EDVAC
Máy tính Von Neumann
Máy IAS
Như ñã ñề cập ở trên, việc lập trình trên máy ENIAC là một
Tiếp tục với ý tưởng của mình, vào năm 1946, von Neuman
công việc rất tẻ nhạt và tốn kém nhiều thời gian. Công việc này có
cùng các ñồng nghiệp bắt tay vào thiết kế một máy tính mới có
lẽ sẽ ñơn giản hơn nếu chương trình có thể ñược biểu diễn dưới
chương trình ñược lưu trữ với tên gọi IAS (Institute for Advanced
dạng thích hợp cho việc lưu trữ trong bộ nhớ cùng với dữ liệu cần
Studies) tại học viện nghiên cứu cao cấp Princeton, Mỹ. Mặc dù
xử lý. Khi ñó máy tính chỉ cần lấy chỉ thị bằng cách ñọc từ bộ nhớ,
mãi ñến năm 1952 máy IAS mới ñược hoàn tất, nó vẫn là mô hình
ngoài ra chương trình có thể ñược thiết lập hay thay ñổi thông qua
cho tất cả các máy tính ña năng sau này.
sự chỉnh sửa các giá trị lưu trong một phần nào ñó của bộ nhớ.
Ý tưởng này, ñược biết ñến với tên gọi "khái niệm chương Cấu trúc tổng quát của máy IAS, như ñược minh họa trên
trình ñược lưu trữ", do nhà toán học John von Neumann (Hình hình 1.4, gồm có:
7 8
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

 Một bộ nhớ chính ñể lưu trữ dữ liệu và chương trình. 20. Dù vậy, mãi ñến cuối những năm 50, các máy tính bán dẫn hóa
 Một bộ logic-số học (ALU – Arithmetic and Logic Unit) hoàn toàn mới bắt ñầu xuất hiện trên thị trường máy tính.
có khả năng thao tác trên dữ liệu nhị phân. Việc sử dụng ñèn bán dẫn trong chế tạo máy tính ñã xác
 Một bộ ñiều khiển chương trình có nhiệm vụ thông dịch ñịnh thế hệ máy tính thứ hai, với ñại diện tiêu biểu là máy PDP-1
các chỉ thị trong bộ nhớ và làm cho chúng ñược thực thi. của công ty DEC (Digital Equipment Corporation) và IBM 7094
 Thiết bị nhập/xuất ñược vận hành bởi ñơn vị ñiều khiển. của IBM. DEC ñược thành lập vào năm 1957 và sau ñó 4 năm cho
Hầu hết các máy tính hiện nay ñều có chung cấu ra ñời sản phẩm ñầu tiên của mình là máy PDP-1 như ñã ñề cập ở
trúc và chức năng tổng quát như trên. Do vậy chúng còn có trên. ðây là chiếc máy mở ñầu cho dòng máy tính mini của DEC,
tên gọi chung là các máy von Neumann. vốn rất phổ biến trong các máy tính thế hệ thứ ba.
Các máy IBM-709,7090,7094 có chu kỳ thời gian là 2
Bộ microsecond, bộ nhớ 32 K word 16 bit. Hình 1.5 mô tả một cấu
Logic-số học hình với nhiều thiết bị ngoại vi của máy IBM 7094.
ALU Thiết
Bộ bị
nhớ nhập
Băng từ
chính xuất
Bộ CPU
Kênh dữ liệu Phiếu ñục lỗ
ñiều khiển
CU
Máy in dòng

Hình 1.4. Cấu trúc của máy IAS Kênh dữ liệu Bộ ñọc thẻ
1.1.3. Thế hệ II – transistor (1955-1965)
Bộ
Sự thay ñổi ñầu tiên trong lĩnh vực máy tính ñiện tử xuất dồn Trống từ
hiện khi có sự thay thế ñèn chân không bằng ñèn bán dẫn. ðèn bán kênh
dẫn nhỏ hơn, rẻ hơn, tỏa nhiệt ít hơn trong khi vẫn có thể ñược sử
dụng theo cùng cách thức của ñèn chân không ñể tạo nên máy tính. Kênh dữ liệu ðĩa
Không như ñèn chân không vốn ñòi hỏi phải có dây, có bảng kim
loại, có bao thủy tinh và chân không, ñèn bán dẫn là một thiết bị ở Hypertape
trạng thái rắn ñược chế tạo từ silicon có nhiều trong cát trong tự
nhiên. Memory
ðèn bán dẫn là phát minh lớn của phòng thí nghiệm Bell
Labs trong năm 1947 bởi Bardeen, Brattain và Shockley. Nó ñã
tạo ra một cuộc cách mạng ñiện tử trong những năm 50 của thế kỷ
Hình 1.5 Một cấu trúc máy IBM 7094

9 10
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu
Omnibus
Ở ñây có nhiều ñiểm khác biệt so với máy IAS mà chúng ta tính lớn với giá chỉ có 16000 ñô la Mỹ, so với số tiền lên
cần lưu ý. ðiểm quan trọng nhất trong số ñó là việc sử dụng các ñến hàng trăm ngàn ñô la ñể mua ñược một chiếc máy System/360
kênh dữ liệu. Một kênh dữ liệu là một module nhập/xuất ñộc lập của IBM. Tương phản với kiến trúc chuyển trung tâm ñược IBM sử
có bộ xử lý và tập lệnh riêng. Trên một hệ thống máy tính với các dụng cho các hệ thống 709, các kiểu sau này của máy PDP-8 ñã sử
thiết bị như thế, CPU sẽ không thực thi các chỉ thị nhập/xuất chi dụng một cấu trúc rất phổ dụng hiện nay cho các máy mini và vi
tiết. Những chỉ thị ñó ñược lưu trong bộ nhớ chính và ñược thực thi tính: cấu trúc ñường truyền. Hình 1.6 minh họa cấu trúc này.
bởi một bộ xử lý chuyên dụng trong chính kênh dữ liệu. CPU chỉ
khởi ñộng một sự kiện truyền nhập/xuất bằng cách gửi tín hiệu ñiều ðường truyền PDP-8, ñược gọi là Omnibus, gồm 96 ñường
khiển ñến kênh dữ liệu, ra lệnh cho nó thực thi một dãy các chỉ thị tín hiệu riêng biệt, ñược sử dụng ñể mang chuyển tín hiệu ñiều
trong máy tính. Kênh dữ liệu thực hiện nhiệm vụ của nó ñộc lập khiển, ñịa chỉ và dữ liệu. Do tất cả các thành phần hệ thống ñều
với CPU và chỉ cần gửi tín hiệu báo cho CPU khi thao tác ñã hoàn dùng chung một tập hợp các ñường tín hiệu, việc sử dụng chúng
tất. Cách sắp xếp này làm giảm nhẹ công việc cho CPU rất nhiều. phải ñược CPU ñiều khiển. Kiến trúc này có ñộ linh hoạt cao, cho
phép các module ñược gắn vào ñường truyền ñể tạo ra rất nhiều cấu
Một ñặc trưng khác nữa là bộ ña công, ñiểm kết thúc trung hình khác nhau. Cấu trúc kiểu này của DEC ñã ñược sử dụng trong
tâm cho các kênh dữ liệu, CPU và bộ nhớ. Bộ ña công lập lịch các tất cả các máy tính ngày nay. DEC ñã bán ñược 50000 chiếc PDP-8
truy cập ñến bộ nhớ từ CPU và các kênh dữ liệu, cho phép những và trở thành nhà cung cấp máy tính mini ñứng ñầu thế giới lúc bấy
thiết bị này hoạt ñộng ñộc lập với nhau. giờ.

 Máy PDP-1

Máy PDP-1 có gần 4 K word, 1 (word=18 bit) và thời gian Bộ ñiều khiển CPU Bộ nhớ chính I/O I/O
cho 1 chu kỳ là 5 microsecond. Thông số này lớn hơn gần gấp 2 lần •••
console
so với máy cùng dòng với nó IBM-709, nhưng PDP-1 là máy tính
nhỏ gọn nhanh nhất thời bấy giờ và có giá bán 120000$, còn IBM-
7090- có giá bán tới 1 triệu USD. Máy PDP-1 với màn hình kính Omnibus
cỡ 512 ñiểm ñược cho ñến ðH công nghệ Massachuset và từ ñây
các sinh viên ñã viết trò chơi máy tính ñầu tiên – chò trơi chiến
tranh giữa các vì sao . Hình 1.6 Cấu trúc ñường truyền PDP-8

Sau một vài năm DEC cho ra ñời một hiện tượng khác trong Một máy tính cũng ñáng chú ý nữa trong giai ñoạn này là
ngành công nghiệp máy tính. ðó là máy PDP-8, máy tính 12 bít. vào năm 1964, khi công ty CDC (Control Data Corporation) cho ra
Vào lúc một máy tính cỡ trung cũng ñòi hỏi một phòng có ñiều hòa ñời máy tính 6600. Máy này có tốc ñộ cao hơn gấp nhiều lần IBM-
không khí, máy PDP-8 ñủ nhỏ ñể có thể ñặt trên một chiếc ghế dài 7094 và ñiểm ñặc biệt của máy tính này là sử lý song song mà sau
vốn thường gặp trong phòng thí nghiệm hoặc ñể kết hợp vào trong này trong các siêu máy tính hay sử dụng.
các thiết bị khác. Nó có thể thực hiện mọi công việc của một máy
11 12
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

1.1.4. Thế hệ III – mạch tích hợp (1965-1980) chip. ðiều này có nghĩa là giá cả cho các mạch nhớ và
luận lý giảm một cách ñáng kể.
Một ñèn bán dẫn ñơn lẻ thường ñược gọi là một thành - Vì những thành phần luận lý và ô nhớ ñược ñặt gần
phần rời rạc. Trong suốt những năm 50 và ñầu những năm 60 của nhau hơn trên các chip nên khoảng cách giữa các
thế kỷ 20, các thiết bị ñiện tử phần lớn ñược kết hợp từ những nguyên tử ngắn hơn dẫn ñến việc gia tăng tốc ñộ chung
thành phần rời rạc – ñèn bán dẫn, ñiện trở, tụ ñiện, v.v... Các thành cho toàn bộ.
phần rời rạc ñược sản xuất riêng biệt, ñóng gói trong các bộ chứa - Máy tính sẽ trở nên nhỏ hơn, tiện lợi hơn ñể bố trí vào
riêng, sau ñó ñược dùng ñể nối lại với nhau trên những bảng mạch. các loại môi trường khác nhau.
Các bảng này lại ñược gắn vào trong máy tính, máy kiểm tra dao - Có sự giảm thiểu trong những yêu cầu về bộ nguồn và
ñộng, và các thiết bị ñiện tử khác nữa. thiết bị làm mát hệ thống.
- Sự liên kết trên mạch tích hợp ñáng tin cậy hơn trên các
Bất cứ khi nào một thiết bị ñiện tử cần ñến một ñèn bán nối kết hàn. Với nhiều mạch trên mỗi chip, sẽ có ít sự
dẫn, một ống kim loại nhỏ chứa một mẫu silicon sẽ phải ñược hàn nối kết liên chip hơn.
vào một bảng mạch. Toàn bộ quá trình sản xuất, ñi từ ñèn bán dẫn
ñến bảng mạch, là một quá trình tốn kém và không hiệu quả. Các  Máy IBM System/360
máy tính thế hệ thứ hai ban ñầu chứa khoảng 10000 ñèn bán dẫn.
Con số này sau ñó ñã tăng lên nhanh chóng ñến hàng trăm ngàn, Máy IBM System/360 ñược IBM ñưa ra vào năm 1964 là họ
làm cho việc sản xuất các máy mạnh hơn, mới hơn gặp rất nhiều máy tính công nghiệp ñầu tiên ñược sản xuất một cách có kế hoạch.
khó khăn. ðể giải quyết những vấn ñề khó khăn này, năm 1958 Khái niệm họ máy tính bao gồm các máy tính tương thích nhau là
Jack Kilby và Robert Noyce ñã cho ra ñời một công nghệ mới, một khái niệm mới và hết sức thành công. ðó là chuỗi các máy tính
công nghệ mạch tích hợp (Integrated circuit - IC hay vi mạch - với cùng một ngôn ngữ Assembler. Chương trình viết cho máy này
CHIP). có thể ñược dùng cho máy khác mà không phải viết lại, ñây chính
là ưu ñiểm nổi bật của nó. Ý tưởng thành lập họ máy tính trở thành
Sự phát minh ra mạch tích hợp vào năm 1958 ñã cách mạng rất phổ biến trong rất nhiều năm sau ñó. Trong bảng 1.1 cho ta thấy
hóa ñiện tử và bắt ñầu cho kỷ nguyên vi ñiện tử với nhiều thành tựu những thông số chính của một trong những ñời ñầu tiên của họ
rực rỡ. Mạch tích hợp chính là yếu tố xác ñịnh thế hệ thứ ba của IBM-360.
máy tính. Với công nghệ này nhiều transitor ñược cho vào trong
một chip nhỏ. Họ máy IBM System/360 không những ñã quyết ñịnh
tương lai về sau của IBM mà còn có một ảnh hưởng sâu sắc ñến
ðối với nhà sản xuất máy tính, việc sử dụng nhiều IC ñược toàn bộ ngành công nghiệp máy tính. Nhiều ñặc trưng của họ máy
ñóng gói mang lại nhiều ñiểm có ích như sau: này ñã trở thành tiêu chuẩn cho các máy tính lớn khác.

- Giá chip gần như không thay ñổi trong quá trình phát
triển nhanh chóng về mật ñộ của các thành phần trên

13 14
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Thông số Model Model Model 50 Model


30 40 60
Tốc ñộ so sánh 1 3.5 10 21
giữa chúng
Thời gian 1 chu kỳ, 1000 625 500 250
nano giây
Dung lượng bộ nhớ 64 256 256 512
tối ña, Kbyte
Số byte lấy từ bộ 1 2 4 16 Hình 1.7. Máy tính IBM 5100
nhớ mỗi chu kỳ
Số kênh dữ liệu tối 3 3 4 6 1.1.5. Thế hệ IV – máy tính cá nhân (1980-ñến nay)
ña
Bảng 1.1. Các thông số họ IBM - 360 Sự xuất hiện của mạch tích hợp tỷ lệ cao Very Large Scale
Integrated (VLSI) circuit vào những năm 80 cho phép ghép hàng
Một số cột mốc ñáng chú ý nữa trong giai ñoạn này là: triệu transistor trên một bản mạch. ðiều ñó dẫn ñến khả năng thiết
kế những máy tính cỡ nhỏ, nhưng với tốc ñộ cao.
 1975 máy tính cá nhân ñầu tiên (Portable computer) Trong phần tiếp theo, hai thành tựu tiêu biểu về công nghệ
IBM 5100 (hình 1.7) ra ñời, tuy nhiên máy tính này ñã của máy tính thế hệ thứ tư sẽ ñược giới thiệu một cách tóm lược.
không gặt hái ñược thành công nào. Những thông số
chính của nó như sau:  Bộ nhớ bán dẫn

- Bộ nhớ dùng băng từ Vào khoảng những năm 50 ñến 60 của thế kỷ này, hầu hết bộ
- Nặng 23 Kg nhớ máy tính ñều ñược chế tạo từ những vòng nhỏ làm bằng vật
- Có giá 10000$ liệu sắt từ, mỗi vòng có ñường kính khoảng 1/16 inch. Các vòng
- Khả năng lập trình trên Basic này ñược treo trên các lưới ở trên những màn nhỏ bên trong máy
- Màn hình 16 dòng, 64 ký tự tính. Khi ñược từ hóa theo một chiều, một vòng (gọi là một lõi)
- Bộ nhớ <=64Kbyte biểu thị giá trị 1, còn khi ñược từ hóa theo chiều ngược lại, lõi sẽ
ñại diện cho giá trị 0. Bộ nhớ lõi từ kiểu này làm việc khá nhanh.
 1979 chương trình Sendmail ra ñời bởi 1 sinh viên Nó chỉ cần một phần triệu giây ñể ñọc một bit lưu trong bộ nhớ.
ðHTH California, Berkely university cho ra ñời BSD Nhưng nó rất ñắt tiền, cồng kềnh, và sử dụng cơ chế hoạt ñộng loại
UNIX (Berkely Software Distribution). trừ: một thao tác ñơn giản như ñọc một lõi sẽ xóa dữ liệu lưu trong
lõi ñó. Do vậy cần phải cài ñặt các mạch phục hồi dữ liệu ngay khi
nó ñược lấy ra ngoài.

15 16
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Năm 1970, Fairchild chế tạo ra bộ nhớ bán dẫn có dung vi xử lý ñơn chip 32 bit. Trong khi ñó, Intel giới thiệu bộ vi xử lý
lượng tương ñối ñầu tiên. Chip này có kích thước bằng một lõi ñơn, 32 bit của riêng mình là chip 80386 vào năm 1985.
có thể lưu 256 bit nhớ, hoạt ñộng không theo cơ chế loại trừ và
nhanh hơn bộ nhớ lõi từ. Nó chỉ cần 70 phần tỉ giây ñể ñọc ra một  ðiểm ñáng lưu ý nhất trong giai ñoạn này là vào năm 1981
bit dữ liệu trong bộ nhớ. Tuy nhiên giá thành cho mỗi bit cao hơn ra ñời máy IBM PC trên cơ sở CPU Intel 8088 và dùng hệ
so với lõi từ. ñiều hành MS-DOS của Microsoft (hình 1.8).

Kể từ năm 1970, bộ nhớ bán dẫn ñã ñi qua 11 thế hệ: 1K, 4K,
16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M và giờ ñây là 1G bit
trên một chip ñơn (1K = 210, 1M = 220). Mỗi thế hệ cung cấp khả
năng lưu trữ nhiều gấp bốn lần so với thế hệ trước, cùng với sự
giảm thiểu giá thành trên mỗi bit và thời gian truy cập.

 Bộ vi xử lý

Vào năm 1971, hãng Intel cho ra ñời chip 4004, chip ñầu tiên
có chứa tất cả mọi thành phần của một CPU trên một chip ñơn. Kỷ
nguyên bộ vi xử lý ñã ñược khai sinh từ ñó. Chip 4004 có thể cộng
hai số 4 bit và nhân bằng cách lập lại phép cộng. Theo tiêu chuẩn
ngày nay, chip 4004 rõ ràng quá ñơn giản, nhưng nó ñã ñánh dấu
sự bắt ñầu của một quá trình tiến hóa liên tục về dung lượng và sức Hình 1.8. Máy tính IBM PC ñầu tiên
mạnh của các bộ vi xử lý. Bước chuyển biến kế tiếp trong quá trình
tiến hóa nói trên là sự giới thiệu chip Intel 8008 vào năm 1972. ðây 1.2. Khối các nước XHCN và Việt Nam
là bộ vi xử lý 8 bit ñầu tiên và có ñộ phức tạp gấp ñôi chip 4004.
Nhắc ñến lịch sử phát triển của máy tính, chúng ta cũng cần
ðến năm 1974, Intel ñưa ra chip 8080, bộ vi xử lý ña dụng hướng tầm nhìn ñến các máy tính của khối XHCN phát minh mà
ñầu tiên ñược thiết kế ñể trở thành CPU của một máy vi tính ña hầu như trong các tài liệu ít khi ñề cập ñến. Vào khoảng giữa thế kỷ
dụng. So với chip 8008, chip 8080 nhanh hơn, có tập chỉ thị phong 20, các nước XHCN cũng ñã cho ra ñời hàng loạt các máy tính với
phú hơn và có khả năng ñịnh ñịa chỉ lớn hơn. các tính năng tương ñương với các loại máy tính của khối Tư bản.
Chiếc máy tính ñầu tiên bắt ñầu ñược xây dựng có thể kể ñến ñó là
Cũng trong cùng thời gian ñó, các bộ vi xử lý 16 bit ñã bắt
vào năm 1950 tại trường Cơ khí chính xác và quang học ( Nay là
ñầu ñược phát triển. Mặc dù vậy, mãi ñến cuối những năm 70, các
trường ðại học Công nghệ thông tin và quang học). Một năm sau
bộ vi xử lý 16 bit ña dụng mới xuất hiện trên thị trường. Sau ñó ñến
ñó tại ñây ñã cho ra ñời máy tính toán ñiện cỡ lớn ñầu tiên ra ñời
năm 1981, cả Bell Lab và Hewlett-packard ñều ñã phát triển các bộ
với mục ñích giải quyết các bài toán khoa học và kỹ thuật phức tạp.

17 18
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Trong khoảng từ năm 1959 ñến 1966 ñã cho ra ñời 4 thế hệ tiếp Lịch sử phát triển máy tính của Việt Nam có thể kể ñến bắt
theo của máy này với khả năng tính toán lên ñến 10000 phép ñầu từ năm 1968 khi chiếc máy tính ñiện tử do Liên Xô tặng về ñến
tính/giây. Cũng trong khoảng thời gian này tại một trường khác là Việt Nam và ñược ñặt tại Uỷ Ban Khoa học và Kỹ thuật Nhà nước,
Trường ðại học Toán thuộc Viện Hàn lâm Khoa Học Liên Xô cũng ở 39 Trần Hưng ðạo, Hà Nội.
tiến hành xây dựng một máy tính khác gọi là Strela (Mũi tên) và
cuối năm 1953 ñã cho ra ñời máy này. Sau ñó các dòng họ của máy Máy tính ñiện tử Minsk-22 là loại máy tính thuộc thế hệ thứ
này cũng ñã ñược sản xuất hàng loạt. hai, ñược chế tạo từ các linh kiện bán dẫn (chưa phải là mạch tổ
hợp), kết hợp kỹ thuật cơ khí chính xác, nhưng vào thời ñiểm ñó
Một số các máy tính của khối XHCN thời bấy giờ có tầm Minsk-22 là một trong những máy tính hiện ñại nhất của Liên Xô
ảnh hưởng lớn ñược liệt kê trong bảng 1.2. Trong ñó máy EC-1840, và các nước ðông Âu, Vì vậy cần phải có một diện tích khoảng
1841 tương ñương với máy 8086, còn máy EC-1842, 1843 tương 100m² ñể ñặt máy. Hệ thống máy tính ñiện tử Minsk-22 gồm một
ñương với 80286. Các thế hệ sau ñó sử dụng bộ vi xử lý của Intel. thiết bị trung tâm có bộ nhớ khoảng 68K bites với lõi Ferit từ, tốc
ñộ tính toán 5000 phép tính/giây. Bộ nhớ ngoài bằng băng từ, thiết
PC Năm bắt ñầu SX Năm kết thúc SX Số lượng bị vào số liệu dùng bìa và băng giấy. Ngôn ngữ sử dụng là ngôn
ngữ máy (nếu so sánh chức năng máy tính ñiện tử Minsk-22 chỉ
ЕС-1840 1986 1989 7461
tương ñương một phần nhỏ của một dàn máy vi tính hiện ñại).
ЕС-1841 1987 1995 83937
ЕС-1842 1988 1996 10193 Nhắc ñến việc khai thác Minsk-22 không thể nào quên các
nhóm cán bộ nghiên cứu của các Viện, Trường, Bộ, ngành mà tên
ЕС-1843 1990 1993 3012
của họ gắn bó thân thiết với Minsk-22 như Trần Bình, Lại Huy
ЕС-1849 1990 1997 4966 Phương, Nguyễn Tri Niên, Nguyễn ðức Hiếu, Hoàng Kiếm,
ЕС-1851 1991 1997 3142 Nguyễn Bá Hào, Trịnh Văn Thư, Mai Anh, Bùi Khương…
ЕС-1863 1991 1997 3069
Máy tính Minsk-22 ñã ñược dùng ñể tính toán phương án
ВМ2001 1994 - 1074 sửa cầu Long Biên sau khi mấy nhịp cầu bị bom Mỹ ñánh sập,
ñược dùng trong bài toán dự báo thời tiết ngắn hạn, giải hệ phương
Bảng 1.2. Các máy tính tiêu biểu của Liên Xô trình khí nhiệt ñộng học ñầy ñủ bằng phương pháp hệ thức tích
phân; giải các bài toán tính toán dự báo thuỷ triều; phân tích ñánh
Một trong những máy tính có ảnh hưởng lớn ñến Việt Nam giá quan hệ giữa phân bố mưa với các ñiều kiện hoàn lưu khí
là máy MINSK-22 cũng ñược ra ñời trong khoảng thời gian này. quyển; tính hàm phân bố gió bão… Về sau, dự báo thời tiết tiếp tục
Máy Minsk có nhiều thế hệ như Minsk-1, Minsk-11, Minsk-12, ñược xử lý trên máy tính Minsk-32 của quân ñội và ñạt kết quả
Minsk-14, Minsk-22,... với khả năng tính toán lên ñến 6000 phép ngày càng tốt hơn.
tính/giây.

19 20
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

1.3. Khuynh hướng hiện tại các bộ xử lý ña lõi ñã ra ñời và các siêu máy tính với tốc ñộ không
tưởng ñã cũng ñã ñược các công ty ñua nhau giới thiệu.
Việc chuyển từ thế hệ thứ tư sang thế hệ thứ 5 còn chưa rõ
ràng. Người Nhật ñã và ñang ñi tiên phong trong các chương trình Một số cột mốc ñáng chú ý trong quá trình chuyển sang
nghiên cứu ñể cho ra ñời thế hệ thứ 5 của máy tính, thế hệ của CPU ña lõi như sau:
những máy tính thông minh, dựa trên các ngôn ngữ trí tuệ nhân tạo
như LISP và PROLOG,... và những giao diện người - máy thông – 1999 – CPU 2 lõi kép ñầu tiên ra ñời (IBM Power4 cho máy
minh. ðến thời ñiểm này, các nghiên cứu ñã cho ra các sản phẩm chủ)
bước ñầu và gần ñây nhất (2004) là sự ra mắt sản phẩm người máy – 2001 – bắt ñầu bán ra thị trường Power4
thông minh gần giống với con người nhất: ASIMO (Advanced Step – 2002 – AMD và Intel cùng thông báo về việc thành lập
Innovative Mobility: Bước chân tiên tiến của ñổi mới và chuyển CPU ña lõi của mình.
ñộng). Với hàng trăm nghìn máy móc ñiện tử tối tân ñặt trong cơ – 2004 – CPU lõi kép của Sun ra ñời UltraSPARS IV
thể, ASIMO có thể lên/xuống cầu thang một cách uyển chuyển, – 2005 – Power5
nhận diện người, các cử chỉ hành ñộng, giọng nói và ñáp ứng một – 03/2005 – CPU Intel lõi kép x86 ra ñời, AMD – Opteron,
số mệnh lệnh của con người. Thậm chí, nó có thể bắt chước cử Athlon 64X2
ñộng, gọi tên người và cung cấp thông tin ngay sau khi bạn hỏi, rất – 20-25/05/2005 – AMD bắt ñầu bán Opteron 2xx, 26/05
gần gũi và thân thiện. Hiện nay có nhiều công ty, viện nghiên cứu Intel Pentium D, 31/05 AMD – bán Athlon 64X2
của Nhật thuê Asimo tiếp khách và hướng dẫn khách tham quan
như: Viện Bảo tàng Khoa học năng lượng và ðổi mới quốc gia, Từ các cột mốc ñó cho thấy sự cạnh tranh gay gắt giữa hai
hãng IBM Nhật Bản, Công ty ñiện lực Tokyo. Hãng Honda bắt ñầu công ty sản xuất CPU hàng ñầu.
nghiên cứu ASIMO từ năm 1986 dựa vào nguyên lý chuyển ñộng
Một thành quả ngày nay nữa sẽ ñược ứng dụng trong tương
bằng hai chân. Cho tới nay, hãng ñã chế tạo ñược 50 robot ASIMO.
lai gần là việc cho ra ñời các siêu máy tính. Một trong những siêu
Các tiến bộ liên tục về mật ñộ tích hợp trong VLSI ñã cho máy tính hàng ñầu của thế giới ngày nay là máy tính Blue Gene của
phép thực hiện các mạch vi xử lý ngày càng mạnh (8 bit, 16 bit, 32 IBM với 8192 CPU và cho tốc ñộ tình toán lên ñến 7,3 Tfops. Tuy
bit và 64 bit với việc xuất hiện các bộ xử lý RISC năm 1986 và các nhiên chẳng bao lâu sau nó cũng chỉ là chú rùa khi mà kế hoạch
bộ xử lý siêu vô hướng năm 1990). Chính các bộ xử lý này giúp của IBM sản xuất supercomputer Blue Gene/L với 128 dãy, 130
thực hiện các máy tính song song với từ vài bộ xử lý ñến vài ngàn ngàn CPU, 360 Tfops, với giá dự ñịnh 267 triệu USD ñã thành
bộ xử lý. ðiều này làm các chuyên gia về kiến trúc máy tính tiên công vào 26/06/2007.
ñoán thế hệ thứ 5 là thế hệ các máy tính xử lý song song. Tuy nhiên siêu máy tính của IBM vẫn chưa ñược gọi là
nhanh nhất thế giới vì vào 06/2006 viện nghiên cứu của Nhật
ðó là việc của tương lai xa, còn hiện tại thì các công ty sản RIKEN thông báo cho ra ñời máy tính MDGRAPE-3 với tốc ñộ lên
xuất máy tính ñang ñịnh hướng phát triển các máy tính với nhiều ñến 1 Petaflop, tức nhanh hơn tới 3 lần máy Blue Gene/L nhưng
bộ xử lý nhằm giải quyết các bài toán song song ñể tăng cường tốc chỉ dùng 40.314 CPU. Máy tính này không ñược sắp vào TOP500
ñộ xử lý chung của máy tính. Thành quả của việc này là hàng loạt vì nó không ñược dùng cho mục ñích chung mà phục vụ cho việc
21 22
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

nghiên cứu và mô phỏng các hệ thống phức tạp trong một chương
trình chung của các công ty Riken, Hitachi, Intel, and NEC 1.4. Các dòng Intel
subsidiary SGI Japan.
Do ở thị trường Việt Nam chủ yếu sử dụng bộ vi xử lý của
1.3. Phân loại máy tính hãng này, nên ở phần này sẽ trình bày kỹ hơn về quá trình phát
Dựa vào kích thước vật lý, hiệu suất, giá tiền và lĩnh vực sử triển các bộ xử lý của Intel.
dụng, thông thường máy tính ñược phân thành bốn loại chính như
sau: Intel là nhà tiên phong trong việc sản xuất bộ vi xử lý
(BVXL) khi tung ra Intel 4004 vào năm 1971. Khả năng tính toán
a) Các siêu máy tính (Super Computer): là các máy tính của Intel 4004 chỉ dừng lại ở hai phép toán: cộng hoặc trừ và nó chỉ
ñắt tiền nhất và tính năng kỹ thuật cao nhất. Giá bán một có thể tính toán ñược 4 bits tại một thời ñiểm. ðiều ñáng kinh ngạc
siêu máy tính từ vài triệu USD. Các siêu máy tính thường là ở ñây là toàn bộ "cỗ máy" tính toán ñược tích hợp "nằm" gọn trên
các máy tính vectơ hay các máy tính dùng kỹ thuật vô một chip ñơn duy nhất (hình 1.9). Trước khi cho ra ñời Intel 4004,
hướng và ñược thiết kế ñể tính toán khoa học, mô phỏng các kỹ sư ñã chế tạo ra máy tính hoặc là từ một tổ hợp nhiều chip
các hiện tượng. Các siêu máy tính ñược thiết kế với kỹ thuật hoặc là từ các thành phần linh kiện rời rạc.
xử lý song song với rất nhiều bộ xử lý (hàng ngàn ñến hàng
trăm ngàn bộ xử lý trong một siêu máy tính). Thế nhưng BVXL ñầu tiên "ñặt chân" vào ngôi nhà số của
chúng ta hiện nay lại không phải là Intel 4004 mà là BVXL thế hệ
b) Các máy tính lớn (Mainframe) là loại máy tính ña dụng. kế tiếp của nó - Intel 8080, một máy tính 8-bit hoàn hảo trên một
Nó có thể dùng cho các ứng dụng quản lý cũng như các tính chip duy nhất, ñược giới thiệu vào năm1974. Trong khi ñó, Intel
toán khoa học. Dùng kỹ thuật xử lý song song và có hệ 8088 mới là thế hệ BVXL ñầu tiên "loé sáng" thực sự trên thị
thống vào ra mạnh. Giá một máy tính lớn có thể từ vài trăm trường. ðược giới thiệu năm 1979 và sau ñó ñược tích hợp vào các
ngàn USD ñến hàng triệu USD. máy tính cá nhân IBM xuất hiện trên thị trường vào năm 1982,
Intel 8088 có thể ñược xem như "người tiền nhiệm chính" của các
c) Máy tính mini (Minicomputer) là loại máy cở trung, giá bộ xử lý thế hệ tiếp theo: Intel 80286, 80386, 80486 rồi ñến Intel
một máy tính mini có thể từ vài chục USD ñến vài trăm Pentium, Pentium Pro, Pentium II, III và IV. Do tất cả ñều ñược cải
ngàn USD. tiến dựa trên thiết kế cơ bản của Intel 8088. Ngày nay, BVXL Intel
Pentium 4 có thể thực hiện bất kỳ ñoạn mã nào ñã chạy trên BVXL
d) Máy vi tính (Microcomputer) là loại máy tính dùng bộ vi Intel 8088 nguyên thuỷ nhưng với tốc ñộ nhanh hơn gấp nhiều
xử lý, giá một máy vi tính có thể từ vài trăm USD ñến vài nghìn lần.
ngàn USD.

23 24
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Số lượng bóng bán dẫn: 6.000


Tốc ñộ: 2MHz

Năm 1978: Bộ vi xử lý 8086-8088


Một hợp ñồng cung cấp sản phẩm quan trọng cho bộ phận
máy tính cá nhân mới thành lập của IBM ñã biến bộ vi xử lý 8088
trở thành bộ não của sản phẩm chủ ñạo mới của IBM—máy tính
IBM PC.
Hình 1.9. Bộ vi xử lý 4004 ñầu tiên của Intel Số lượng bóng bán dẫn: 29.000
Tốc ñộ: 5MHz, 8MHz, 10MHz
ðể có cái nhìn bao quát hơn, chúng ta xem Quá trình phát
triển của CPU Intel trong cac thời kỳ như sau: Năm 1982: Bộ vi xử lý 286
Bộ vi xử lý 286, còn ñược biết ñến với cái tên là 80286, là
Năm 1971: Bộ vi xử lý 4004 bộ vi xử lý Intel ñầu tiên có thể chạy tất cả các phần mềm ñược viết
cho những bộ vi xử lý trước ñó. Tính tương thích về phần mềm này
4004 là bộ vi xử lý ñầu tiên của Intel. Phát minh ñột phá
vẫn luôn là một tiêu chuẩn bắt buộc trong họ các bộ vi xử lý của
này nhằm tăng sức mạnh cho máy tính Busicom và dọn ñường cho
Intel
khả năng nhúng trí thông minh của con người vào trong các thiết bị
Số lượng bóng bán dẫn: 134.000
vô tri cũng như các hệ thống máy tính cá nhân.
Tốc ñộ: 6MHz, 8MHz, 10MHz, 12,5MHz
Số lượng bóng bán dẫn: 2.300
Tốc ñộ: 108KHz
Năm 1985: Bộ vi xử lý Intel 386
Bộ vi xử lý Intel 386 có 275.000 bóng bán dẫn – nhiều hơn
Năm 1972: Bộ vi xử lý 8008
100 lần so với bộ vi xử lý 4004 ban ñầu. ðây là một chip 32 bit và
Bộ vi xử lý 8008 mạnh gấp ñôi bộ vi xử lý 4004. Thiết bị
có khả năng xử lý “ña tác vụ”, nghĩa là nó có thể chạy nhiều các
Mark-8 ñược biết ñến như là một trong những hệ thống máy tính
chương trình khác nhau cùng một lúc.
ñầu tiên dành cho người sử dụng gia ñình – một hệ thống mà theo
Số lượng bóng bán dẫn: 275.000
các tiêu chuẩn ngày nay thì rất khó ñể xây dựng, bảo trì và vận
Tốc ñộ: 16MHz, 20MHz, 25MHz, 33MHz
hành.
Số lượng bóng bán dẫn: 3.500
Năm 1989: Bộ vi xử lý CPU Intel 486 DX
Tốc ñộ: 200KHz
Thế hệ bộ vi xử lý 486 thực sự có ý nghĩa khi giúp chúng ta
thoát khỏi một máy tính phải gõ lệnh thực thi và chuyển sang ñiện
Năm 1974: Bộ vi xử lý 8080
toán chỉ và nhấn (point-and-click).
Bộ vi xử lý 8080 ñã trở thành bộ não của hệ thống máy tính
Số lượng bóng bán dẫn: 1,2 triệu
cá nhân ñầu tiên – Altair.
Tốc ñộ: 25MHz, 33MHz, 50MHz

25 26
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Năm 1993: Bộ vi xử lý Pentium® Tháng 11 năm 2002: Bộ vi xử lý Intel Pentium 4 hỗ trợ Công nghệ
Bộ vi xử lý Pentium® cho phép các máy tính dễ dàng hơn Siêu phân luồng
trong việc tích hợp những dữ liệu ‘thế giới thực” như giọng nói, âm Intel giới thiệu Công nghệ Siêu phân luồng ñột phá cho bộ
thanh, ký tự viết tay và các ảnh ñồ họa vi xử lý Intel® Pentium® 4 mới có tốc ñộ 3,06 GHz. Công nghệ
Số lượng bóng bán dẫn: 3,1 triệu Siêu phân luồng có thể tăng tốc hiệu suất hoạt ñộng của máy tính
Tốc ñộ: 60MHz, 66MHz lên tới 25%. Intel ñạt mốc tốc ñộ mới cho máy tính với việc giới
thiệu bộ vi xử lý Pentium 4 tốc ñộ 3,06 GHz. ðây là bộ vi xử lý
Năm 1997: Bộ vi xử lý Pentium® II
thương mại ñầu tiên có thể xử lý 3 tỷ chu trình một giây và ñược
Bộ vi xử lý Pentium® II có 7,5 triệu bóng bán dẫn này ñược hiện thực hóa thông qua việc sử dụng công nghệ sản xuất 0,13
tích hợp công nghệ Intel MMX, một công nghệ ñược thiết kế ñặc micron tiên tiến nhất của ngành công nghiệp.
biệt ñể xử lý các dữ liệu video, audio và ñồ họa một cách hiệu quả.
Số lượng bóng bán dẫn: 7,5 triệu Tháng 11 năm 2003: Bộ vi xử lý Intel® Pentium® 4 Extreme
Tốc ñộ: 200MHz, 233MHz, 266MHz, 300MHz Edition hỗ trợ Công nghệ Siêu phân luồng tốc ñộ 3,20 GHz ñược
Năm 1999: Bộ vi xử lý Pentium® III giới thiệu. Sử dụng công nghệ xử lý 0,13 micron của Intel, bộ vi xử
lý Intel Pentium 4 Extreme Edition có bộ nhớ ñệm L2 dung lượng
Bộ vi xử lý Pentium® III có 70 lệnh xử lý mới – những mở 512 kilobyte, một bộ nhớ ñệm L3 dung lượng 2 megabyte và một
rộng Internet Streaming SIMD – giúp tăng cường mạnh mẽ hiệu kênh truyền hệ thống tốc ñộ 800 Mhz. Bộ vi xử lý này tương thích
suất hoạt ñộng của các ứng dụng xử lý ảnh tiên tiến, 3-D, streaming với họ chipset hiện tại Intel® 865 và Intel® 875 cũng như bộ nhớ
audio, video và nhận dạng giọng nói. Bộ vi xử lý này ñược giới hệ thống chuẩn.
thiệu sử dụng công nghệ 0,25 micron.
Số lượng bóng bán dẫn: 9,5 triệu Tháng 6 năm 2004: Bộ vi xử lý Intel Pentium 4 hỗ trợ Công nghệ
Tốc ñộ: 650MHz tới 1,2GHz Siêu phân luồng ñạt mốc 3,4 GHz
Năm 2000: Bộ vi xử lý Pentium® 4
Tháng 4 năm 2005: Giới thiệu nền tảng sử dụng bộ vi xử lý hai
Bộ vi xử lý này ñược giới thiệu với 42 triệu bóng bán dẫn nhân ñầu tiên của Intel gồm bộ vi xử lý Intel® Pentium® Extreme
và các mạch 0,18 micron. Bộ vi xử Pentium® 4 có tần số hoạt ñộng Edition 840 chạy ở tốc ñộ 3,2 GHz và một chipset Intel® 955X
là 1,5 gigahertz (1,5 tỷ hertz), nhanh hơn gấp 10 nghìn lần so với Express. Các bộ vi xử lý hai nhân hoặc ña nhân ñược phát triển
bọ vi xử lý ñầu tiên của Intel, bộ vi xử lý 4004, chạy ở tốc ñộ 108 bằng cách ñưa hai hay nhiều nhân xử lý hoàn chỉnh vào trong một
kilohertz (108.000 hertz). bộ vi xử lý ñơn nhất giúp quản lý ñồng thời nhiều tác vụ.
Số lượng bóng bán dẫn: 42 triệu
Tốc ñộ: 1,30GHz, 1,40GHz, 1,50GHz, 1,70GHz, 1,80Ghz Tháng 5 năm 2005: Bộ vi xử lý Intel® Pentium® D với hai nhân
xử lý – hay còn gọi là “các bộ não” – ñược giới thiệu cùng với họ
Tháng 8 năm 2001: Bộ vi xử lý Pentium 4 ñạt mốc 2 GHz chipset Intel® 945 Express có khả năng hỗ trợ những tính năng của
các thiết bị ñiện tử tiêu dùng như âm thanh vòm, video có ñộ phân
giải cao và các khả năng xử lý ñồ họa tăng cường.
27 28
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu

Tháng 5 năm 2006: Nhãn hiệu Intel Core 2 Duo ñược công bố ra Micros: là chiều rộng, tính bằng Microns, của dây dẫn nhỏ nhất
thế giới và sau ñó 5 tháng chính hãng Intel ñã ñến Việt Nam ñể trên chip. ðể dễ hình dung, chúng ta hãy liên tưởng ñến tóc người
quảng bá cho sản phẩm mới này. có ñộ dày là 100 microns. Và như chúng ta thấy thì kích thước ñặc
trưng của các phần tử giảm xuống thì số lượng transistor sẽ ñược
Tháng 7 năm 2006: Tập ñoàn Intel công bố 10 bộ vi xử lý mới tăng lên.
Intel Core 2 Duo và Core Extreme cho các hệ thống máy tính ñể
bàn và máy tính xách. Những bộ vi xử lý mới này nâng cao tới Data Width: là chiều rộng của bộ tính toán Logic-Số học ALU.
40% hiệu suất hoạt ñộng và nhiều hơn 40% hiệu quả tiết kiệm ñiện Một ALU 8 bit có thể cộng/trừ/nhân/… 2 số 8 bit, trong khi một
năng so với bộ vi xử lý Intel® Pentium® tốt nhất. Các bộ vi xử lý ALU 32 bit có thể tính toán các số 32 bit. Một ALU 8 bit sẽ phải
Core 2 Duo có 291 triệu bóng bán dẫn. thực hiện 4 chỉ lệnh ñể cộng hai số 32 bit, trong khi một ALU 32
bit có thể làm việc này chỉ với một chỉ lệnh duy nhất. Trong ña số
Bảng dưới ñây (Bảng 1.3) sẽ giúp chúng ta hiểu ñược sự trường hợp, tuyến dữ liệu ngoại có cùng ñộ rộng với ALU, nhưng
khác biệt giữa các bộ xử lý mà Intel ñã giới thiệu qua các năm: không phải lúc nào cũng vậy. Trong khi các CPU Pentium mới tìm
nạp dữ liệu 64 bit tại cùng một thời ñiểm cho các ALU 32 bit của
chúng

MIPS: viết tắt của cụm "millions of instructions per second", là


thước ño tương ñối cho hiệu năng của CPU. Các CPU thế hệ mới
hiện nay có thể làm rất nhiều việc khác nhau khiến việc ñánh giá
bằng các giá trị MIPS mất dần ý nghĩa của chúng. Thay thế bằng
MIPS, ngày nay người ta dùng MFLOPS (Mera Floating Point
Operations Per Second) hoặc TFLOPS (Tera Floating Point
Operations Per Second) ñể ñánh giá hiệu năng của máy tính. Tuy
nhiên, chúng ta có thể có ñược phán ñoán chung về sức mạnh
tương ñối của các CPU từ cột cuối trong bảng 1.2.

Bảng 1.3. Tổng quan về CPU Intel


29 30
Simpo
ChươngPDF
I: GiớiMerge
thiệu and Split Unregistered Version - http://www.simpopdf.com

CÂU HỎI VÀ BÀI TẬP CHƯƠNG I

1. Dựa vào tiêu chuẩn nào người ta phân chia máy tính thành các
thế hệ?
2. Hãy ñiểm qua các cột mốc quan trọng và ñặc trưng cơ bản của
các máy tính thế hệ thứ nhất?
3. Hãy nêu ñiểm ñặc biệt của máy tính ENIAC so với các máy tính
ra ñới trước nó. Máy tính Von Neumann khác ENIAC ở ñiểm nào
chính?
4. Hãy ñiểm qua các cột mốc quan trọng và ñặc trưng cơ bản của
các máy tính thế hệ thứ hai?
5. Hãy ñiểm qua các cột mốc quan trọng và ñặc trưng cơ bản của
các máy tính thế hệ thứ ba?
6. Hãy nêu một vài ưu ñiểm của công nghệ mạch tích hợp. ðiểm
ñặc biệt trong các máy tính IBM System/360 là gì?
7. Hãy ñiểm qua các cột mốc quan trọng và ñặc trưng cơ bản của
các máy tính thế hệ thứ tư?
8. Khuynh hướng phát triển của máy tính ñiện tử ngày nay là gì?
9. Việc phân loại máy tính dựa vào tiêu chuẩn nào? có máy loại
máy tính?

10. Hiện nay bộ vi xử lý nào của Intel ñang ñược bán rộng rãi ở thị
trường Việt Nam? Hãy ñưa ra một số loại CPU Intel thông dụng
nhất ngày nay.
31
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Central Processing Unit - CPU
Chương II:
Control
Các bộ phận cơ bản của máy tính Block

ALU I/O devices


Vì tính phức tạp của các bộ phận cơ bản trong máy tính, trong phần
này tôi chỉ giới thiệu sơ qua hình dáng bên ngoài, vị trí nằm trong Main Disk Printer
Registers
máy tính, chức năng làm việc với mục ñích nắm bắt ñược các ñặc memory
tính chính, giúp ta có thể tháo gỡ, láp ráp một máy tính ñể bàn và
hiểu ñược nguyên lý hoạt ñộng cơ bản, cũng như liên kết giữa các
thiết bị trong máy tính.
Bus

Hình 2.1. Tổ chức máy tính theo hướng BUS ñơn giản
2.1. Bộ xử lý (CPU)
Phụ thuộc vào số bit trong các thanh ghi mà ta có CPU 8
Bộ vi xử lý CPU (Central Processing Unit) là cốt lõi của
bit, 16 bit, 32 bit, 64 bit. Các máy tính hiện ñại ngày nay là loại
một máy vi tính. Những bộ vi xử lý tương thích của các hãng như
CPU 64 bit.
AMD và Cyrix có cách phân bố chân vi mạch và hoạt ñộng tương
thích với xử lý của Intel, vì thế chúng ta sẽ chỉ nói ñến vi xử lý của Một thông số quan trong khi lựa chọn mua CPU là tốc ñộ
Intel, hãng chiếm thị phần lớn nhất thế giới về CPU. ñựơc ño bằng MOPS (Millions of Operations Per Second) hay
Trong hình 2.1 minh họa tổ chức máy tính theo hướng BUS ngày nay hay dùng là TFOPS (Tera Floating Point Operations Per
ñơn giản. CPU là bộ não của máy tính, nó ñóng vai trò thi hành Second), tuy nhiên trong thực tế chúng ta lại hay dựa vào tần số ghi
chương trình lưu trong bộ nhớ chính bằng cách nạp lệnh, kiểm tra kèm ñể nói ñến tốc ñộ tương ñối của CPU. Hình dáng bên ngoài
chúng rồi thi hành lần lượt từng lệnh. của các CPU hiện ñại ngày nay ñều có dạng như hình 2.2.
Bộ ñiều khiển (control block) chịu trách nhiệm tìm nạp lệnh
từ bộ nhớ chính và ñịnh loại.
CPU chứa bộ nhớ nhỏ có tốc ñộ cao, dùng ñể lưu trữ kết quả tạm
thời và thông tin ñiều khiển. Bộ nhớ này gồm các thanh ghi
(register), mỗi thanh ghi có một chức năng cụ thể. Thanh ghi quan
trọng nhất là bộ ñếm chương trình (PC- program counter) chỉ ñến
lệnh sẽ thi hành tiếp theo.
ALU-bộ xử lý logic-số học, thực hiện các phép tính số học
như phép cộng (+) và các luận lý logic như logic AND, OR. AMD Athlon 64 Intel Pentium 4
Hình 2.2. Hình dáng bên ngoài CPU.

32 33
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Các thông số quan trọng của bộ vi xử lý: GHz Pentium 4, bởi vì Celeron có bộ nhớ ñệm cache L2 nhỏ
hơn và tốc ñộ của kênh truyền chủ (host-bus) thấp hơn.
a) Hãng sản xuất và model (Processor make and model)
ðặc biệt là giữa AMD và Intel có sự khác biệt lớn, AMD-
Trên thị trường máy tính cá nhân hiện nay chủ yếu có 2
CPU chạy với CS thấp hơn Intel, nhưng làm khoảng 50% công
hãng sản xuất CPU chiếm hầu hết thị phần là AMD và Intel.
Tuy các CPU của 2 hãng này có những ñặc tính và tốc ñộ gần việc nhiều hơn Intel trong một xung ñồng hồ (clock tick). Do
như nhau, nhưng không thể cài ñặt một AMD-CPU vào một bo ñó một AMD Athlon 64 chạy ở 2.0 GHz sẽ tương ñương với
Intel P4 chạy ở 3.0 GHz. Chính vì CS của AMD-CPU luôn thấp
mạch chính (Motherboard) dùng cho Intel-CPU và ngược lại.
hơn của intel, nên AMD mới có các ký hiệu model như 3000+
b) Dạng Socket (Socket type) ñể chỉ ra rằng tốc ñộ của nó tương ñương với 3.0 GHz của Intel.
Tính chất này xác ñịnh số lượng, hình dạng, cũng như cách
Khả năng CPU có thể nâng
sắp xếp các chân và như vậy mỗi loại CPU phải ñược gắn vào Socket CPU gốc
nâng cấp cấp
bo mạch chính có socket loại ñó hay nói cách khác là loại khe
cắm của CPU. Trong bảng 2.1 cho thấy các loại CPU nào dùng Pentium II/III,
Slot 1 không không có
với loại Socket nào và loại nào có thể nâng cấp (upgrade) ñược, Celeron
còn hình 2.3 cho thấy một số bộ vi xử lý với các dạng Socket
Slot A không Athlon không có
khác nhau.
có, nhưng Celeron, Pentium
370 Celeron, Pentium III
rất hạn chế III, VIA
423 không Pentium 4 không có
Athlon, Athlon XP,
462 có Sempron
Sempron
Celeron, Celeron D, Celeron D, Pentium
478 có
Pentium 4 4
Socket 370 Socket 478 Socket 775 754 tốt Sempron, Athlon 64 Sempron, Athlon 64
Hình 2.3. Một số loại Socket
Celeron D, Pentium Celeron D, Pentium
775 rất tốt
c) Tốc ñộ ñồng hồ xung (Clock Speed - CS) 4 4, Pentium D
Tốc ñộ ñồng hồ xung của CPU thường ñược tính bằng Athlon 64, Athlon Athlon 64, Athlon
939 rất tốt
megahertz (MHz) hoặc gigahertz (GHz). Chúng ta thường dùng 64/FX 64/FX, Athlon 64 X2
thông số này ñể nói ñến tốc ñộ xử lý của CPU. Tuy nhiên, Athlon 64 FX, Athlon 64 FX,
không phải lúc nào CS của CPU nào lớn hơn thì CPU ñó cũng 940 rất tốt
Opteron Opteron
mạnh hơn. Ví dụ, một 3.0 GHz Celeron CPU sẽ chậm hơn 2.6
Bảng 2.1. Các loại socket và CPU tương ứng

34 35
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
d) Tốc ñộ ñường truyền chủ (host-bus speed) thuộc cùng dòng. Con số này là một quy ước của hãng Intel. Số
Hay còn gọi là front-side bus (FSB) speed, hay FSB speed, càng cao chứng tỏ CPU càng tốt.
hay chỉ ñơn giản là FSB ñể chỉ ra tốc ñộ truyền dữ liệu giữa
CPU và các vi mạch (chipset). Tốc ñộ FSB giúp tăng hiệu suất - Socket 775, chỉ loại khe cắm của CPU. ðây là ñặc tính ñể
của CPU ngay cả khi CPU có cùng một CS. AMD và intel thực xét sự tương hợp giữa vi xử lý và mainboard. Bo mạch chủ phải hỗ
hiện truyền dữ liệu giữa bộ nhớ và cache khác nhau, nhưng bản trợ loại socket này thì vi xử lý mới có thể hoạt ñộng ñược.
chất ñều là số lượng lớn nhất của một gói dữ liệu có thể ñược
truyền trong một giây. Theo cách tính này thì một máy tính với - Bus 533, chỉ tốc ñộ "lõi" của ñường giao tiếp giữa CPU và
FSB là 100 MHz, nhưng trong một chu kỳ xung ñồng hồ lại mainboard. Một CPU ñược ñánh giá nhanh hay chậm tuỳ thuộc khá
truyền ñược 4 lần thì tương ñương với một máy tính cùng CPU lớn vào giá trị này. Vi xử lý chạy ñược bus 533 thì ñương nhiên
nhưng FSB họat ñộng ở FSB là 400 MHz. hơn hẳn so với vi xử lý chỉ chạy ñược bus 400 Mhz.

e) Kính thước bộ nhớ ñệm (Cache size) - 1024K, chỉ bộ nhớ ñệm của vi xử lý. ðây là vùng chứa
thông tin trước khi ñưa vào cho vi xử lý trung tâm (CPU) thao tác.
Cache là một loại bộ nhớ có tốc ñộ cao hơn rất nhiều so với Thường thì tốc ñộ xử lý của CPU sẽ rất nhanh so với việc cung cấp
bộ nhớ chính (main memory). Các CPU dùng hai loại bộ nhớ thông tin cho nó xử lý, cho nên, không gian bộ nhớ ñệm (cache)
cache L1 (Level 1) và L2 (Level 2) ñể tăng hiệu suất của CPU càng lớn càng tốt vì CPU sẽ lấy dữ liệu trực tiếp từ vùng này. Một
bằng cách tạm thời lưu trữ các dữ liệu cần truyền giữa CPU và số Vi xử lý còn làm bộ nhớ ñệm nhiều cấp. Số 1024 mà bạn thấy
bộ nhớ chính vào trong cache. Cache L1 là cache nằm trong ñó chính là dung lượng bộ nhớ ñệm cấp 2, 1024 KB = 1 MB.
CPU và nó không thể thay ñổi nếu không thiết kế lại CPU.
Cache L2 là cache nằm ngoài nhân CPU, có nghĩa là có thể chế - Prescott chính là tên một dòng vi xử lý của Intel. Dòng vi
tạo CPU với kích thước L2 khác nhau. Như vậy cache càng lớn xử lý này có khả năng xử lý video siêu việt nhất trong các dòng vi
thì càng tốt, càng giúp cho tốc ñộ xử lý chung của máy tính xử lý cùng công nghệ của Intel. Tuy nhiên, ñây là dòng CPU tương
nhanh hơn. ñối nóng, tốc ñộ xung ñồng hồ tối ña ñạt 3.8 Ghz.
 Ví dụ:  Sự khác biệt cơ bản giữa AMD và Intel
P4 2.8Ghz (511)/Socket 775/ Bus 533/ 1024K/ Prescott CPU có
nghĩa là: a) Cách ñặt tên
- P4, viết tắc của từ Pentium 4, tức là tên của loại CPU. ðây AMD
là CPU của hãng Intel. 2.8 Ghz, chỉ tốc ñộ xung ñồng hồ của vi xử ðược gọi theo tên và không hề xuất hiện xung nhịp thực
lý. Con số này là một trong những thước ño sức mạnh của vi xử lý, của CPU, thay vào ñó là các con số ñể so sánh nó tương ñương với
tuy vậy nó không phải là tất cả. ðôi lúc chỉ là một con số nhằm so thế hệ Intel Pentium tương ứng. Ví dụ trong tên gọi của CPU AMD
sánh tương ñối sức mạnh của CPU. Con số 511 phía sau con số thể Athlon 64 3000+, không hề xuất hiện xung nhịp thực của CPU.
hiện chất lượng và vị thế của con CPU trong toàn bộ các sản phẩm ðây là ñiều hơi khác lạ ñối với người Việt Nam vì thường quen

36 37
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
ñánh giá khả năng của CPU theo tên gọi “có xung nhịp kèm theo”, nữa nhưng xung nhịp cao luôn ñi ñôi với vấn ñề như lượng ñiện
ví dụ như 1 mẫu ñối thoại sau: năng tiêu thụ, hiệu năng không tỉ lệ thuận với mức xung tăng thêm,
và ñặc biệt là vấn ñề tản nhiệt.
A: Máy nhà B dùng CPU gì vậy ? Máy tôi dùng Pentium 4 2GHz.
B: Máy của tôi dùng CPU Pentium 4 3GHz. Khi tung ra dòng CPU Pentium 4 dùng ñế cắm LGA 775,
A: Vậy là máy bạn nhanh hơn máy tôi rồi. Intel ñã không còn kèm theo xung nhịp trong tên gọi CPU nữa. Họ
ñặt tên CPU theo từng serie như hãng xe hơi BMW thường làm. Ví
Cách nghĩ và gọi tên như vậy là do thói quen dùng CPU dụ như Pentium 4 630. 630 là tên 1 model CPU thuộc serie 6xx.
Intel . Cách so sánh hiệu năng như trên sẽ ñúng nếu 2 CPU ñó ñược
sản xuất theo cùng 1 công nghệ , vì khi ñó, CPU nào có xung nhịp b)Các công nghệ tiêu biểu
cao hơn sẽ có hiệu năng tốt hơn. Nhưng nếu ta so sánh 2 CPU của AMD
2 hãng khác nhau, công nghệ chế tạo khác nhau thì hiệu năng - Tích hợp Memory Controller (Hình 2.4) : Trong hầu hết các CPU
không còn ñi ñôi với xung nhịp. mới, Memory Controller nằm trong nhân CPU, có cùng xung nhịp
với CPU (CPU có tốc ñộ 1,8GHz thì Memory Controller cũng có
Ví dụ như khi so sánh 2 CPU AMD và Intel có cùng tốc ñộ tốc ñộ 1,8GHz). Dữ liệu từ RAM sẽ ñược truyền trực tiếp vào
1,8GHz, CPU AMD có hiệu năng vượt trội hoàn toàn so với CPU CPU, ñộ trễ thấp, không còn hiện tượng thắt cổ chai nữa. Lúc này
Intel. người dùng càng sử dùng RAM tốc ñộ cao thì càng có lợi.
Chính từ ñiều trên mà hãng AMD ñã không còn ñặt tên
CPU của mình dựa theo xung nhịp nữa. Bắt ñầu từ dòng Athlon XP
của thế hệ K7 trở ñi, AMD ñã ñặt tên sản phẩm của mình là tên sản
phẩm cộng với 1 con số phía sau .
Vd: AMD Athlon XP 2500+ : con số 2500+ có ý nghĩa là
CPU Athlon XP này có hiệu năng tương ñương 1 CPU 2500MHz
cùng cấp của Intel.
Tương tự như vậy, CPU Athlon 64 3000+ 1800MHz ñược
AMD xác ñịnh là có hiệu năng tương ñương CPU 3000MHz của
Intel. Sự tương ñương ở ñây ñược ñánh giá trên nhiều mặt và có giá Hình 2.4. Bố trí memory kiểu AMD
trị tương ñối.
Intel - Công nghệ HyperTransport : ñây là công nghệ kết nối trực tiếp
Sau một thời gian AMD ñưa ra cách ñặt tên mới cho dòng theo kiểu ñiểm-ñiểm, kết nối với RAM và chipset bằng
CPU ñể bàn, Intel cũng ñã nhận ra khuyết ñiểm về tên gọi CPU có HyperTransport bus (HTT) có băng thông rất lớn và ñược mở ñồng
kèm theo xung nhịp. Khuyết ñiểm ñó là họ không thể ñưa ra thị thời 2 chiều (như hình minh họa 2.4).
trường các CPU có tốc ñộ ngày càng cao ñược. Vi kiến trúc
NetBurst ñược Intel áp dụng cho dòng CPU Pentium 4 có thể áp
dụng ñể sản xuất các CPU có xung nhịp cao như 4-5GHz hoặc hơn

38 39
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Intel Trong khi ñó do Intel chú trọng việc tăng xung tần ñã làm
cho các CPU của mình tỏa ra một nhiệt ñộ không thể chấp nhận
- Intel vẫn sử dụng kiểu thiết kế Memory Controller nằm tại chipset ñược. Trong thời gian gần ñây Intel cũng ñã nhận ra ñiều này và
(Hình 2.5) , Memory Controller này có tốc ñộ nhất ñịnh ,có tên là ñang ñầu tư nhiều vào giải quyết vấn ñề này.
Front Side Bus. Dữ liệu từ RAM bắt buộc phải ñến chipset rồi mới
vào ñược CPU. ðộ trễ của thiết kế này lớn và luôn tồn tại nút thắt Trong ñiều kiện khí hậu nhiệt ñới Việt Nam, 360C của
cổ chai tại chipset. AMD là một nhiệt ñộ rất lí tưởng, CPU tỏa nhiệt ít, người dùng
không phải lo lắng về tiếng ồn, về vấn ñề quạt tản nhiệt một khi sử
dụng CPU AMD. Lúc nào hệ thống dùng AMD cũng mát và tĩnh
lặng.
Còn ñối với Intel, nhiệt ñộ CPU cao góp phần làm nhiệt ñộ
thùng máy và môi trường tăng lên. Người sử dụng cũng phải lưu ý
ñến vấn ñề quạt tản nhiệt vì quạt tản nhiệt của Intel quay với tốc ñộ
cao, ñặc biệt là khi hoạt ñộng vào ban ñêm, tiếng ồn do hệ thống
dùng Intel phát ra sẽ gây khó chịu ñối với người dùng.

Hình 2.5. Bố trí memory kiểu Intel Tóm lại khi mua CPU thì ngoài việc cần chú ý các thông số về
giá cả, công nghệ, tốc ñộ xử lý thì còn cần lưu ý ñến loại socket
- Công nghệ Hyper Threading Sử dụng công nghệ này giúp tận ñể ñảm bảo sự tương thích của các thiết bị khi lắp ráp. Vấn ñề
dụng hiệu quả hơn tài nguyên dư thừa của CPU, CPU Intel có tỏa nhiệt ở Việt Nam là quan trọng cho nên cũng cần chú ý.
Hyper Threading sẽ chạy nhanh hơn CPU Intel không có Hyper
Threading khoảng từ 10%-20%. CPU 1 nhân có Hyper Threading 2.2. Bản mạch chính (Bo mạch chủ, Mainboard)
sẽ ñược hệ ñiều hành nhận diện thành 2 CPU (1 physical, 1 logical)
nhưng ñó vẫn là 1 CPU ñơn luồng, tại 1 thời ñiểm thì CPU chỉ thực Mainboard là trung tâm ñiều khiển mọi hoạt ñộng của một máy
hiện ñược duy nhất 1 tác vụ. tình và ñóng vai trò là trung gian giao tiếp giữa CPU và các thiết bị
khác của máy tính. Bản mạch chính là nơi ñể chứa ñựng (cắm)
c) Tỏa nhiệt những linh kiện ñiện tử và những chi tiết quan trọng nhất của một
máy tính cá nhân như: bộ vi xử lý CPU (central processing unit),
ðây là một thông số mà ở Việt Nam ñáng ñược quan tâm vì các thành phần của CPU, hệ thống bus, bộ nhớ, các thiết bị lưu trữ
ñiều kiện khí hậu nước ta rất nóng. Các bộ CPU của AMD trước (ñĩa cứng, ổ CD,…), các card cắm (card màn hình, card mạng, card
ñây thường tỏa nhiệt nhiều hơn và không thích hợp cho khí hậu âm thanh) và các vi mạch hỗ trợ. Do các vai trò của nó như vậy nên
nóng như ở nước ta. Có thể chính vì diểm này mà AMD không có bản mạch chính cần thoả mãn nhiều ñiều kiện về cấu trúc và ñặc
ñầu tư quảng bá sản phẩm ở Việt Nam. Tuy nhiên từ AMD K8 với tính ñiện khắt khe như: gọn, nhỏ và ổn ñịnh với nhiễu từ bên ngoài.
công nghệ 90nm hiện nay rất mát, không còn nóng như thế hệ K6,
K7. CPU Athlon 64 3000+ cũng không là ngoại lệ.

40 41
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Cũng như nhiều loại máy ñiện, ñiện tử khác, mainboard và vỏ
máy phải tuân thủ theo các quy ñịnh chung về an toàn ñiện, an toàn
nhiễu ñiện từ (ñặc biệt do tần số làm việc của máy vi tính nằm
trong giải tần sóng viba nên rất dễ gây nhiễu cho các máy móc khác
xung quanh). Bo mạch chủ ñược sản xuất bằng công nghệ mạch in
PCB (Printed Circuit Board). Do số chân nối của vi mạch ngày
càng nhiều (Core 2 Duo 775 chân) nên số lượng dây dẫn trên bản
mạch ngày càng nhiều khiến diện tích bản mạch cũng tăng theo nếu
không thay ñổi công nghệ. Số chân nối và ñộ phức tạp gia tăng
khiến việc thiết kế bản mạch thêm rắc rối. Ðể giải quyết vấn ñề
này, người ta dùng mạch in nhiều lớp (multi layer PCB) cho máy vi
tính hiện ñại. Bản mạch chính ñược sản xuất theo lối xếp chồng
(sandwich) tương tự công nghệ chế tạo vi mạch và ngày nay có từ 4 Hình 2.6. Mainboard microATX (bên trái) và ATX (bên
ñến 8 lớp. Một công nghệ nữa góp phần thu nhỏ kích thước bản phải)
mạch chính là công nghệ gián chi tiết SMT (surface mounted
technology). Công nghệ này cho phép dán trực tiếp vi mạch lên bản  BTX – Vào năm 2004, Intel bắt ñầu sản xuất loại mainboard
mạch chính, giảm bớt công nghệ khoan bản mạch và giảm ñáng kể BTX (Balanced Technology eXtended). BTX và thùng máy
kích thước vỏ vi mạch. mới sẽ sử dụng ít quạt hơn nên máy tính chạy êm hơn và có
khả năng nhiệt ñộ cũng thấp hơn những hệ thống dùng
chuẩn ATX (Advanced Technology Extended) hiện nay. Do
 Các ñặc tính quan trọng trong mainboard:
vậy, bo mạch BTX có nhiều thay ñổi ñáng kể trong cách bố
a)Form factor
ðặc tính này qui ñịnh kích thước của mainboard cũng như trí các thành phần và thiết kế tản nhiệt.
cách bố trí nó trong thân máy tính (case). Chuẩn thống trị hiện
nay trên máy tính ñể bàn nói chung chính là ATX (Advanced b) Giao tiếp với CPU
Technology Extended) 12V, ñược thiết kế bởi Intel vào năm
1995 và ñã nhanh chóng thay thế chuẩn AT cũ bởi nhiều ưu ðể gắn CPU lên trên bo mạch chủ ta dùng hai dạng cơ bản
ñiểm vượt trội. Nếu như với nguồn AT, việc kích hoạt chế ñộ là dạng khe cắm (slot) hoặc chân cắm (socket). Dạng khe cắm là
bật ñược thực hiện qua công tắc có bốn ñiểm tiếp xúc ñiện thì một rãnh dài nằm ở khu vực giữa mainboard dùng cho các máy tính
với bộ nguồn ATX bạn có thể bật tắt bằng phần mềm hay chỉ ñời cũ như PII, PIII. Hiện nay hầu như người ta không sử dụng
cần nối mạch hai chân cắm kích nguồn (dây xanh lá cây và một dạng khe cắm này nữa.
trong các dây Ground ñen). Các nguồn ATX chuẩn luôn có
công tắc tổng ñể có thể ngắt hoàn toàn dòng ñiện ra khỏi máy Dạng chân cắm (socket) là một khối hình vuông gồm nhiều
tính. Ngoài ra còn có microATX có kích thước nhỏ hơn ATX. chân (hình 2.7). Hiên nay ñang sử dụng socket 478, 775 cho dòng
Hình 2.6 cho thấy một dạng của 2 loại mainboard này. CPU Intel và 939, 940, AM2 cho dòng CPU của hãng AMD. Con
số chỉ ra trong socket tương ứng với số chân của CPU.

42 43
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Khe cắm PCI Express x16, giống như khe PCI thông thường, có
khả năng thay cho khe cắm card ñồ họa AGP có chiều dài 90 mm
(khoảng 3,5"). Một khe PCI Express x16 có thể truyền dữ liệu
nhanh hơn 16 lần so với khe x1, khoảng 4 GBps dữ liệu vào/ra
cùng lúc. Trên hình 2.9 cho thấy hai loại khe cắm PCI và PCI
Express x16.

Hình 2.7. CPU socket

c) Khe cắm card màn hình AGP (Array Graphic Adapter)


Dùng ñể cắm card ñồ họa vào mainboard và có dạng như
trong hình 2.8. AGP lại chia làm nhiều loại với các tốc ñộ khác
nhau như 1x, 2x, 4x và ñang thịnh hành hiện nay là 8x. Giữa các
loại AGP cũng có sự khác nhau ở dạng khe cắm, do ñó khi mua
card ñồ họa ta phải chú ý ñến ñiểm này. Tuy nhiên các máy tính Hình 2.9. PCI (màu trắng) và PCI Express x16 (màu ñen)
hiện ñại ngày nay có xu hướng không dùng khe cắm AGP cho card
ñồ họa nữa mà thay vào ñó là loại khe cắm PCI Express 16x với e) Giao diện cắm ổ cứng
băng thông lớn hơn rất nhiều lần. ðể nối ổ cứng với mainboard thường dùng các loại chuẩn
IDE, SCSI, ATA, SATA. Mỗi loại có giao diện riêng và không thể
cắm ổ cứng loại dùng SATA vào mainboard chỉ có loại IDE.
■ IDE (Intergrated Drive Electronics)
ðầu cắm có 40 chân dạng ñinh trên mainboard ñể cắm các
Hình 2.8. AGP slot loại ổ cứng, CD, DVD (hình 2.10). Mỗi mainboard thường có 2
d) Khe cắm PCI Express: IDE và thường dùng chân cắm chính IDE1, ñể cắm dây cáp nối với
Hầu hết các máy tính cao cấp hiện nay ñều ñược trang bị ổ cứng chính, còn chân cắm phụ IDE2 ñể cắm dây cáp nối với ổ
khe cắm mở rộng PCI Express (PCIe) cùng với các khe cắm PCI cứng thứ 2 hoặc các ổ CD, DVD...
tiêu chuẩn. Khe cắm chuẩn PCI Express hỗ trợ băng thông cao hơn ■ Serial ATA (SATA):
30 lần so với chuẩn PCI và thực sự có khả năng thay thế hoàn toàn Thay thế cho chuẩn ATA song song có tốc ñộ chậm hơn
khe cắm PCI lẫn AGP. (hay còn gọi là PATA hoặc EIDE), ñược sử dụng từ trước ñến nay
Khe cắm PCI Express có nhiều ñộ dài khác nhau, tùy thuộc ñể nối ñĩa cứng và ổ quang với Mainboard. Cổng SATA xuất hiện
vào dung lượng dữ liệu có thể hỗ trợ. Khe cắm PCI Express x1 thay lần ñầu trên các Mainboard cách ñây vài năm và nhiều Mainboard
cho khe PCI tiêu chuẩn, có chiều dài khoảng 1" (hay 26mm) và có hiện nay hỗ trợ ñồng thời SATA và PATA.
khả năng hỗ trợ ñến 250 MBps dữ liệu vào/ra tại cùng thời ñiểm.

44 45
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
ðầu nối SATA có kích thước nhỏ hơn so với ñầu nối PATA chia làm hai phần nhưng không dùng ñược loại khe cắm cho
và chỉ hỗ trợ một ổ ñĩa. Do vậy, ta không cần quan tâm ñến các DDRAM. Một loại RAM ñời mới nữa là RDRAM mà khe cắm cho
jumper ñể thiết lập ñĩa master hoặc slave như trong trường hợp sử nó cũng ñược chia làm 3 phần như SDRAM, nhưng cách chia khác
dụng chuẩn PATA. Cáp SATA nhỏ hơn nên ít gây lộn xộn bên nhau và chúng không dùng chung của nhau ñược.
trong thùng máy như khi dùng cáp PATA và quan trọng nhất là cáp
nhỏ hơn giảm thiểu nguy cơ gây ra tình trạng "quá nóng" bên trong Ví dụ:
thùng máy (cáp PATA to hơn nên có thể cản trở dòng không khí
lưu thông trong thùng máy). Hơn thế nữa, ñầu nối SATA dễ dàng Mainboard :ASUS Intel 915GV P5GL-MX, Socket 775/ s/p
kéo dài ra ngoài thùng máy ñể sử dụng với các ñĩa cứng và ổ quang 3.8Ghz/ Bus 800/ Sound& Vga, Lan onboard/PCI Express 16X/
gắn ngoài. Dual 4DDR400/ 3 PCI/ 4 SATA/ 8 USB 2.0. có nghĩa là:
Ổ ñĩa SATA yêu cầu phải có ñầu nối cấp ñiện ñặc biệt thay
cho ñầu nối 5V tiêu chuẩn vẫn dùng cho ổ ñĩa IDE. Nhiều máy tính - ASUS Intel 915GV P5GL-MX, ñơn giản, ñây chỉ là tên của loại
mới có kèm theo một ñầu nối ñiện SATA nhưng thường không có bo mạch chủ của hãng Asus.
ở những máy ñời cũ.
- Socket 775 như ñã nói ở trên, là loại khe cắm cho CPU

- s/p 3.8 Ghz ñó chính là tốc ñộ xung ñồng hồ tối ña của CPU mà
bo mạch chủ hỗ trợ.

- Bus 800, chỉ tần số hoạt ñộng tối ña của ñường giao tiếp dữ liệu
của CPU mà bo mạch chủ hỗ trợ. Thường thì bus tốc ñộ cao sẽ hỗ
trợ luôn các CPU chạy ở bus thấp hơn.
Hình 2.10. Khe cắm IDE và SATA
f) Khe cắm cho RAM (Ram slot) - PCI Express 16X là tên của loại khe cắm card màn hình và bo
Trên mainboard thường có hai hoặc 4 khe ñể cắm các thanh mạch chủ. Khe PCI Express là loại khe cắm mới nhất, hỗ trợ tốc ñộ
RAM và mainboard. Trên mỗi khe cắm RAM luôn có cần gạt ở 2 giao tiếp dữ liệu nhanh nhất hiện nay giữa bo mạch chủ và Card
ñầu ñể kẹp chặt thanh RAM lên mainboard và giữ cho các mối nối màn hình. Con số 16X thể hiện một cách tương ñối băng thông
bền vững hơn. Tùy vào loại RAM (SDRAM, DDRAM, RDRAM) giao tiếp qua khe cắm, so với AGP 8X, 4X mà bạn có thể thấy trên
mà giao diện khe cắm sẽ khác nhau, cho nên khi cần thay RAM một số bo mạch chủ cũ. Tuy băng thông giao tiếp trên lý thuyết là
hoặc gắn thêm RAM mới cần ñể ý tới ñiểm này. gấp X lần, thế nhưng tốc ñộ hoạt ñộng thực tế không phải như vậy
Các máy tính cũ thường dùng SDRAM có 168 chân và có mà còn phụ thuộc vào rất nhiều yếu tố khác như lượng RAM trên
hai khe cắt ở phần chân cắm, do ñó khe cắm RAM trên mainboard card, loại GPU (CPU trung tâm của card màn hình).
sẽ là mộ khe cắm ñược chia thành ba phần. Trong khi DDRAM có
184 chân và chỉ có một khe cắt ở giữa phần chân cắm, tương ứng
với khe cắm trên mainboard chia thành hai phần. DDRAM2 cũng

46 47
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
- Sound& Vga, Lan onboard: bo mạch chủ này ñã ñược tích Hãng IBM ñã nghĩ ra công nghệ này ñầu tiên. ổ ñĩa mềm
hợp sẵn card âm thanh, card màn hình và card mạng phục vụ cho bao gồm phần cơ khí và phần ñiện tử ñiều khiển tự ñộng cũng như
việc kết nối giữa các máy tính với nhau. bộ phận ñọc/ghi và giải mã. Ổ ñĩa phải ñảm bảo ñộ quay chính xác
(300 hoặc 360 vòng/phút với sai số 1 ñến 2%). Khả năng ñịnh vị
- Dual 4DDR400: trên bo mạch chủ này có 4 khe cắm Bộ nhớ của ñầu từ cũng rất chính xác ñến vài micromet chỉ trong thời gian
(RAM), hỗ trợ tốc ñộ giao tiếp 400 Mhz. Dựa vào thông số này, vài miligiây rất ngắn. ðĩa mềm có các tính chất chung rất giống với
bạn có thể lựa chọn loại bộ nhớ (RAM) với tốc ñộ thích hợp ñể HDD. ðiểm khác nhau ñặc biệt là ñầu từ của HDD di chuyển trên
nâng cao tính ñồng bộ và hiệu suất của máy tính. Chữ Dual là viết bề mặt ñĩa nhờ một ñệm không khí, trong khi trên ñĩa mềm thì ñầu
tắc của Dual Chanel, tức là bo mạch chủ hỗ trợ chế ñộ chạy 2 thanh từ trực tiếp trượt trên bề mặt ñĩa. Kết quả là cả ñầu từ và ñĩa bị ma
RAM song song. Với công nghệ này, có thể nâng cao hiệu suất và sát làm cho nhanh chóng bị hỏng. Chính vì thế nên khi không có
tốc ñộ chuyển dữ liệu của RAM. ñòi hỏi ñọc/ghi lên ñĩa thì ñầu từ ñược cất ñi và ñĩa dừng lại không
quay như trong trường hợp HDD. ðiều này làm ảnh hưởng lớn ñến
- 3PCI, 4SATA, 8 USB 2.0: trên bo mạch chủ có 3 khe cắm tốc ñộ của ñĩa vì phải mất một khoảng thời gian ñể kích hoạt ñĩa
PCI dành ñể lắp thêm các thiết bị giao tiếp với máy tính như card quay trở lại khi cần thiết.
âm thanh, modem gắn trong... 4SATA là 4 khe cắm SATA, một
loại chuẩn giao tiếp dành cho ñĩa cứng. SATA thì nhanh hơn và ổn Có 2 loại ñĩa mềm: 5,25 inch và 3,5 inch. Cả hai ñều có thể
ñịnh hơn so với chuẩn IDE. 8 cổng cắm USB 2.0 ñược hỗ trợ trên tích hợp mật ñộ ghi thấp (Low Density - LD), hoặc cao (High
bo mạch chủ. USB 2.0 thì nhanh hơn USB 1.1. USB 2.0 thì tương Density - HD). Những thông số chính của 4 loại ñĩa mềm ñưa ra
thích luôn với các thiết bị chỉ có USB 1.1. trong bảng 2.2.
2.3. Ổ mềm (FDD) ðặc tính LD 5,25 HD 5,25 LD 3,5 HD 3,5
Cùng với sự xuất hiện của máy tính cá nhân thì một vấn ñề Kính thước 5,25 5,25 3,5 3,5
nan giải cũng xuất hiện. ðó là làm thế nào ñể phổ biến những Dung lượng 360Kbyte 1,2 MB 720 1,44MB
chương trình ứng dụng ñến người dùng? ñể giải quyết vấn ñề này, Kbyte
ñầu tiên con người ñã phát minh ra ñĩa mềm (floppy disk)(hình Số ñường 40 80 80 80
2.11). Số sector trong 1 9 15 9 18
ñường
Số ñầu ñọc 2 2 2 2
Số vòng quay/ 1 300 300 300 300
phút
Tốc ñộ truyền 250 500 250 500
dữ liệu Kbit/s
Hình 2.11. ổ ñĩa FDD Bảng 2.2. Các ñặc tính của ñĩa mềm

48 49
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
2.4. Ổ cứng (HDD) 300 Mbit trong một inch vuông. Hai yếu tố quan trọng quyết ñịnh
ñến mật ñộ lưu trữ cao là:
Nguyên tắc hoạt ñộng của ñĩa cứng (hình 2.12) hoàn toàn - Cấu trúc hạt của vật liệu từ thật nhỏ,
tương tự ñĩa mềm. Ðiểm khác nhau căn bản là ñĩa cứng ñược cài - Bề mặt ñĩa thật phẳng ñể giữ khoảng cách giữa ñầu ñọc và
ñặt ngay trong ổ ñĩa, có cấu tạo bền và có dung lượng lưu trữ lớn mặt ñĩa tại giá trị tối thiểu.
hơn nhiều so với ñĩa mềm. Khác với ñĩa mềm, do tốc ñộ quay nhanh, ñầu ñọc/ghi
không ñược tiếp xúc với bề mặt ñĩa cứng. Ðầu ñọc ñược giữ cách
xa mặt ñĩa qua một lớp ñệm không khí. Lớp ñệm không khí này
ñược hình thành khi dĩa quay với tốc ñộ cao.
Khoảng cách giữa ñầu từ và mặt ñĩa chỉ vào khoảng vài
micrômét, nhỏ hơn rất nhiều một hạt bụi khói trung bình. Vì thế
phía bên trong ổ ñĩa cứng cần ñược giữ thật sạch. Người sử dụng
không ñược phép mở ổ ñĩa trong môi trường bình thường. Ðể sản
xuất hoặc sửa chữa ñĩa cứng người ta cần ñến môi trường siêu sạch
như thường gặp trong công nghiệp vi ñiện tử.
HDD ñựơc làm từ một hay nhiều ñĩa nhôm (platter) với một
lớp từ (hình 2.13). Ban ñầu nó có kích thước 50cm, còn bây giờ từ
Hình 2.12. Bên ngoài và bên trong HDD 3 ñến 12 cm, còn ở máy sách tay thì nhỏ hơn 3cm, kích thước này
vẫn ngày càng ñược thu nhỏ. Mỗi platter ñược chia thành từng rãnh
Ðĩa cứng ñược làm từ vật liệu nền cứng như nhôm, thủy (track), mỗi rãnh lại ñược chia thành từng sector.
tinh hay gốm. Lớp vật liệu nền ñược phủ một lớp tiếp xúc bám
(nickel) phía trên lớp tiếp xúc bám là màng từ lưu trữ dữ liệu
(Cobalt). Bề mặt trên cùng ñược phủ một lớp chống ma sát (graphit
hay saphia ). Do cấu tạo cơ học bền, ñĩa cứng có thể quay với tốc
ñộ lớn (7200 vòng/phút), nhanh gấp 20 lần ñĩa mềm. Một ổ ñĩa
cứng thường có hai hay nhiều ñĩa. Tốc ñộ máy nhập ñĩa cứng
nhanh hơn nhiều lần so với ñĩa mềm, thời gian truy nhập ñược phân
loại như sau:
- Chậm: t > 40ms,
- Trung bình: 28ms < t < 40ms.
- Nhanh: 18ms < t <28ms.
- Cực nhanh: t < 18ms.
Mật ñộ lưu trữ trên ñĩa cứng rất lớn ( 10000 bit/inch), vì thế
vật liệu từ như ôxyt sắt không dùng ñược cho ñĩa cứng và ñược
thay thế bởi một lớp kim loại từ như cobalt hay Nicken. Các ổ ñĩa Hình 2.13. Cấu tạo HDD
cứng hiện ñại ngày nay có mật ñộ thông tin vào khoảng 100 ñến
50 51
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Các chuẩn giao tiếp ñĩa cứng thông dụng

Khi mua ñĩa cứng ta cần xem xét các thông số chính:
 Intergrated Drive Electronics (IDE): giao diện bộ ñiều khiển ổ
- Tốc ñộ quay: hiện nay thông dụng loại 7200 vòng/1 phút
cứng kết hợp với bộ ñiều khiển ñiện tử trên board của ổ cứng.
(loại chậm hơn - 5400 vòng hoặc 3600 vòng) Giao tiếp EIDE là một phát triển gần nhất của IDE.
- Dung lượng: ðối với máy tính ñể bàn thì thông dụng loại  Small Computer System Interface (SCSI):. Là một loại chuẩn
80-160 GB, tuy nhiên nếu muốn lưu trữ thông tin nhiều thì
giao tiếp thường ñược dùng ñể kết nối PC ñến thiết bị khác như
có thể dùng ổ > 200GB (loại 250 GB hiện nay cũng ñang
là ổ cứng, máy in, scanner và CD-ROM.
bán rất chạy)  Serial ATA (SATA) là một bước phát triển của giao diện lưu
- Tốc ñộ ñọc/ghi: tính bằng MB/s, ngày nay khoảng trên trữ vật lý song song ATA, thay thế cáp chuẩn 40 sợi và ñầu kết
12MB/s nối IDE thành cáp 7 sợi và ñầu kết nối SATA. HDD SATA có
tốc ñộ truyền dữ liệu rất cao (hiện nay là 150 Mbyte/s và còn sẽ
Ví dụ những thông số chính của 1 ñĩa cứng như trong bảng 2.3. ñược nâng lên cao hơn nữa) và có giá cũng tương ñương với
HDD IDE.

2.5. Ổ CD và DVD
Tương tự như ñĩa từ, ñĩa quang là môi trường lưu trữ dữ liệu
ngay cả khi mất nguồn ñiện. Ðiểm khác nhau giữa ñĩa quang và ñĩa
từ nằm ở phương pháp lưu trữ vật lý. Thông tin dược lưu trữ trên
ñĩa quang dưới dạng thay ñổi tính chất quang trên bề mặt ñĩa. Tính
chất này ñược phát hiện qua chất lượng phản xạ một tia sáng của bề
mặt ñĩa. Tia sáng này thường là một tia LASER với bước sóng cố
ñịnh (790nm ñến 850nm). Bề mặt ñĩa ñược thay ñổi khi ghi ñể có
thể phản xạ tia laser tốt hoặc kém. Tia laser ñược hội tụ vào một
ñiểm rất nhỏ trên mặt ñĩa, vì thế ñĩa quang có dung tích lưu trữ lớn
hơn nhiều lần so với ñĩa từ. Hai nhược ñiểm chính của ñĩa quang
là:

• Chỉ ghi dược một lần (nay ñã dược khắc phục với ñĩa CD-
WR),
• Tốc ñộ ñọc chậm hơn ñĩa từ.
Bảng 2.3. Ví dụ các thông số cơ bản của HDD
ðĩa quang ñược chia ra thành bốn loại chính:

52 53
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
• CD-ROM (compact disk read only memory): thông tin ñược 2. Ðiốt ñọc dùng ñể hiện tín hiệu quang thành tín hiệu ñiện ñể
lưu trữ ngay khi sản xuất ñĩa. Dữ liệu tồn tại dưới dạng mặt xử lý tiếp. Ðĩa quang áp dụng nguyên tắc mã hoá tương tự
phẳng (land) và lỗ (pit). Người sản xuất dùng khuôn ñể ñúc như ñĩa từ. Mã hay dùng nhất là mã RLL vì nó tiết kiệm
ra nhiều phiên bản CD-ROM. ñiện tích và tự ñịnh thời. Ðiểm khác nhau duy nhất giữa ñĩa
quang và ñĩa từ là ñĩa quang cần kiểm tra và sửa lỗi nhiều
• CD-R (RECORDABLE COMPACT DISK) ñược ñọc từ ổ hơn. Thông tin rất dễ bị nhiễu chẳng hạn khi một hạt bụi
ñĩa CD-ROM bình thường. Ðĩa này có ñặc ñiểm là ghi nằm giữa nguồn laser và nơi cần ñọc trên ñĩa. Ðĩa quang vì
ñược. Ðĩa trống ñược phủ một lớp chất nhạy màu. Dưới tác thế cần nhiều thông tin CRC hơn ñĩa từ. Lỗi ñọc phải ñược
dụng của tia laser, lớp này ñổi màu và dùng ñặc ñiểm ñó dể phát hiện và sửa lại dùng mã CRC ñi kèm theo dữ liệu.
lưu trữu dữ liệu. Loại ñĩa này còn có tên là WORM (write
once read many). Một ñặc tính quan trọng của các ổ ñĩa quang mà khi mua ñĩa
cần biết là tốc ñộ ñọc/ghi. Các tốc ñộ ñọc ghi dữ liệu thông
• CD-WR (writeable/readable compact disk) cũng dùng laser dụng ngày nay là 24X, 32X, 48X, 52X.
ñể ñọc và ghi dữ liệu. Ðiểm khác nhau cơ bản là bề mặt ñĩa
ñược phủ một lớp kim loại mỏng. Trạng thái lớp kim loại
2.6. Bộ nhớ RAM và ROM
ñược thay ñổi dưới tác dụng tia laser.

• DVD (Digital Versatile Disc hay Digital Video Disc) cũng a)Các khái niệm về bộ nhớ
giống như CD nhưng có mật ñộ ghi cao hơn rất nhiều do ñó
lưu trữ ñược nhiều thông tin hơn. ðặc biệt là ở một số ñịnh  Các tế bào nhớ (storage cell):
dạng có khả năng ghi ñược nhiều lớp và dùng ñược cả hai Bộ nhớ lưu giữ thông tin dưới dạng một dãy các con số nhị
mặt. DVD cũng có nhiều loại như DVD-ROM, DVD-R phân 1 và 0, trong ñó 1 là ñại diện cho sự có mặt của ñiện áp tín
(Digital Versatile Disc – Recordable), DVD-RAM (Digital hiệu, và 0 ñại diện cho sự vắng mặt. Vì mỗi bit ñược ñại diện bởi
Versatile Disc - Random Access Memory), DVD-RW,.. một mức ñiện áp, nên ñiện áp ñó phải ñược duy trì trong mạch ñiện
tử nhớ, gọi là tế bào nhớ. Nội dung lưu giữ trong tế bào nhớ có thể
Laser dùng ñể ñọc và ghi ñĩa quang là laser bán dẫn. Năng ñược sao chép ra bus hoặc các linh kiện chờ khác, gọi là ñọc ra
lượng của tia laser rất thấp, khoảng 5 mw. Với năng lượng này, tia (reading). Một số tế bào nhớ cũng cho phép sao chép vào bản thân
laser không nguy hiểm ñến mắt. Mặc dù vậy cần tránh nhìn trực mình những mức tín hiệu mới lấy từ bus ngoài, gọi là ghi vào
tiếp vào tia laser khi sửa chữa và bảo trì ổ ñĩa CD-ROM. Nguồn (writing). Bằng cách sắp xếp liên kết tế bào nhớ thành các hàng và
laser luôn ñược tắt khi ñưa ñĩa vào ổ, vì thế ổ ñĩa laser rất an toàn cột (ma trận), người ta có thể xây dựng nên các mạch nhớ nhiều
cho người sử dụng. Ðể ñọc ñược thông tin phản xạ từ tia laser, Ổ triệu bit. Các ma trận tế bào nhớ ñược chế tạo trên một chip silic
ñĩa quang còn ñược trang bị ñiốt cảm quang: nhỏ giống như các mạch tích hợp.

1. Ðiốt kiểm tra cường ñộ tia laser. Ðiốt này ño cường ñộ laser  RAM slot (hình 2.14) Dùng ñể cắm RAM vào main mà ta
ñể hiệu chỉnh nếu công suất phát sáng giảm theo thời gian. có thể nhận dạng ở ñầu khe cắm RAM luôn có cần gạt ở 2 ñầu. Tùy
loại RAM (SDRAM, DDRAM, RDRAM) mà giao diện khe cắm

54 55
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
khác nhau => Mua RAM cho máy thì phải biết máy có slot cho với 128MB RAM, nhưng ñạt ñược hiệu năng tốt nhất với 256MB
loại nào. RAM trở ñi.

Dòng thứ hai là bộ nhớ chỉ ñọc ra (read-only memory - ROM).


Nội dung trong ROM chỉ có thể ñược ñọc ra trong quá trình hoạt
Hình 2.14. Slot ñể cắm RAM ñộng bình thường của máy tính. Bộ nhớ ROM là loại cố ñịnh
(nonvolatile), nên nó vẫn duy trì nội dung nhớ khi không có ñiện.
 Interface: là cấu trúc bên ngoài của memory. Khi mua Nhờ tính năng này, người ta dùng ROM ñể lưu giữ các chương
RAM chúng ta cần phải xem nó có phù hợp với (ăn khớp) RAM trình BIOS không thay ñổi.
slot của máy mình không. Hình 2.15 là hình dạng của một vài loại
RAM b) Các loại bộ nhớ :

• RAM tĩnh (static RAM - SRAM) lưu giữ các bit trong những
tế bào của mình dưới dạng chuyển mạch ñiện tử. Tế bào SRAM
mở mạch ñiện (logic 1) hoặc tắt mạch (logic 0) ñể phản ánh
trạng thái của tế bào. Thực tế ñó là các mạch flip-flop trong tình
trạng set hoặc reset. Mạch flip-flop sẽ giữ nguyên mẫu trạng
Hình 2.15. Hình dáng bên ngoài một số loại RAM thái cho ñến khi ñược thay ñổi bởi thao tác ghi tiếp theo hoặc
ngắt ñiện. Tuy nhiên SRAM có kích thước lớn và tốn ñiện, hiện
 RAM và ROM: nay thường ñược chế tạo sẵn trong giới hạn 512K. Mặc dù có
Có hai dòng bộ nhớ phổ biến có tên gọi tắt là RAM và ROM. tốc ñộ nhanh, nhưng phức tạp và ñắt tiền, SRAM chỉ ñược sử
Mạch nhớ truy cập ngẫu nhiên (random - access memory - RAM) dụng trong các bộ phận cần tốc ñộ như bộ nhớ cache chẳng
là bộ nhớ chính (main memory) bên trong máy tính, nơi lưu trữ tạm hạn.
thời các dữ liệu và lệnh chương trình ñể Bộ xử lý (BXL) có thể truy
cập nhanh chóng. Thuật ngữ "truy cập ngẫu nhiên" có ý nhấn mạnh • RAM ñộng (dynamic RAM - DRAM) lưu giữ các bit dưới
một tính chất kỹ thuật quan trọng: mỗi vị trí lưu trữ trong RAM ñều dạng ñiện tích chứa trong các tụ ñiện cực nhỏ, ñó là các ñiện
có thể truy cập trực tiếp. Nhờ ñó các thao tác truy tìm và cất trữ có dung của bản thân transistor MOS ñóng vai trò chuyển mạch
thể thực hiện nhanh hơn nhiều so với các thiết bị lưu trữ tuần tự hoặc phần tử ñiều khiển. Có hoặc không có ñiện tích trong tụ
như ổ ñiã hay ổ băng từ. Nội dung lưu giữ trong RAM là không cố ñiện này tương ứng với logic 1 hoặc logic 0. Do tụ ñiện nhỏ nên
ñịnh - có nghĩa phải luôn có nguồn nuôi ñể duy trì nội dung nhớ ñiện tích ñược nạp và phóng rất nhanh, cỡ chục nanô giây. Bởi
ñó, mất ñiện là mất thông tin. kích thước nhỏ và hầu như không tiêu thụ ñiện nên DRAM có
mật ñộ lưu trữ khá cao và giá rẻ. Nhược ñiểm duy nhất của
Kích thước của RAM thường ño bằng ñơn vị megabyte DRAM là không giữ ñược thông tin lâu quá vài miligiây, nên
(MB). Bao nhiêu RAM thì ñủ? Ðây là câu hỏi chắc chắn ta sẽ ñặt ra phải thường xuyên nạp lại năng lượng cho nó gọi là làm tươi
khi mua sắm hay nâng cấp máy tính. Windows XP SP2 chỉ chạy hay hồi phục (refresh), thực chất là làm ñầy lại ñiện tích cho
các tụ ñiện nhớ tí hon.

56 57
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
• DDR SDRAM (Double Data Rate SDRAM) ñến 16MB hoặc hơn. SIMM loại cũ có 30 chân, phổ biến hiện
nay là 72 chân nên các nhà thiết kế có nhiều phương án cấu
SDRAM là tên gọi chung của một dòng bộ nhớ máy tính, nó hình hơn. Ðây là loại thuận lợi nhất cho việc nâng cấp bộ nhớ
ñược phân ra SDR (Single Data Rate) và DDR (Double Data của ta.
Rate). Do ñó nếu gọi một cách chính xác, chúng ta sẽ có hai
loại RAM chính là SDR SDRAM và DDR SDRAM. Cấu trúc
của hai loại RAM này tương ñối giống nhau, nhưng DDR có Cần lưu ý là có rất nhều loại RAM khác nhau, do ñó khi mua
khả năng truyền dữ liệu ở cả hai ñiểm lên và xuống của tín hiệu RAM thì phải biết loại nào có thể dùng ñược cho máy của mình
nên tốc ñộ nhanh gấp ñôi. Trong thời gian gần ñây xuất hiện và tốc ñộ BUS tối ña cho RAM mà mainboard hỗ trợ là bao
chuẩn RAM mới dựa trên nền tảng DDR là DDR-II, DDR-III nhiêu thì chỉ nên lựa loại RAM có tốc ñộ ñó là ñủ.
có tốc ñộ cao hơn nhờ cải tiến thiết kế.
c)Thời gian truy cập:
• Bộ nhớ ROM thực chất là một tổ chức ghép nối sẵn các mạch
ñiện ñể thể hiện các trạng thái có nối (logic 0) hoặc không nối Một bộ nhớ lý tưởng phải ñưa dữ liệu ñược chọn ngay tức
(logic 1). Cách bố trí các trạng thái 1 và 0 như thế nào là tùy khắc lên các ñường dữ liệu của vi mạch nhớ ñó. Tuy nhiên trong
yêu cầu, và ñược chế tạo sẵn trong ROM khi sản xuất. Khi vi thực tế luôn tồn tại một thời gian trễ giữa thời ñiểm tín hiệu ñịa chỉ
mạch ROM ñược chế tạo xong thì nội dung của nó không thể lối vào có hiệu lực và thời ñiểm dữ liệu có mặt trên các ñường dữ
thay ñổi nữa. ROM dùng trong hệ BIOS cũ thuộc loại này cho liệu, gọi là thời gian truy cập (access time). Mặc dù thời gian này
nên khi bật máy tính là các chương trình chứa sẵn trong ñó ñược tính bằng nanô giây nhưng cũng làm chậm tốc ñộ hoạt ñộng
ñược lấy ra ñể chạy khởi ñộng máy (bao gồm các bước kiểm tra chung của toàn hệ thống, nên bộ xử lý phải ñợi, có khi ñến 4 hoặc 5
chẩn ñoán, hỗ trợ phần mềm cơ sở và hợp nhất các bộ phận xung nhịp.
trong hệ thống máy). Ta không muốn và cũng không thể thay Các máy PC loại cũ có thể sử dụng các chip DRAM có thời
ñổi bất cứ ñiều gì ñối với các chương trình cốt tử này. Tuy gian truy cập trong vòng 60-80 nanôgiây. Các máy tính hiện nay
nhiên khi phát hiện có một lỗi trong ROM hoặc cần ñưa vào dùng loại nhanh hơn 60 nanôgiây. Thời gian truy cập càng nhanh
một thông số BIOS mới ñể phù hợp với thiết bị ngoại vi mới thì thì DRAM càng ñắt.
thật là tai họa. Gần ñây có một giải pháp là dùng flash BIOS, nó
thay một phần ROM bằng loại EEPROM, ñó là vi mạch ROM 2.7. Bàn phím (keyboard)
có thể lập trình và xóa bằng ñiện (Electrically Erasable Thành phần cơ bản của bàn phím là phím ấn. Phím ấn có
Programmable ROM). Phương pháp này cho phép chỉ xóa ở tác dụng như một cảm biến lực và ñược dùng ñể chuyển lực ấn
một số ñịa chỉ, không phải toàn bộ trong khi vi mạch vẫn giữ thành một ñại lượng ñiện. Ðại lượng ñiện này sẽ ñược xử lý tiếp
nguyên trên board. thành một tín hiệu số ñể truyền ñến máy vi tính cá nhân. Vì vậy
phím ấn ñược phân loại tùy theo nguyên tắc cảm biến như sau:
• SIMM (single in-line memory module). Ðây là loại mô ñun
nhớ một hàng chân ra ñể dễ cắm vào các ổ cắm thích hợp trên • Phím cảm biến ñiện trở (thay ñổi về ñiện trở),
board mẹ. SIMM gồm nhiều vi mạch nhỏ DRAM ñược gắn trên • Phím cảm biến ñiện dung (thay ñổi về ñiện dung),
một tấm mạch in nhỏ, ñể tổ chức thành các loại môñun từ 1MB
58 59
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
• Phím cảm biến ñiện từ (thay ñổi về dòng ñiện theo hiệu ứng • Chuột nối tiếp (nối hữu tuyến với cổng COM1 hoặc COM2,
Hall), nối vô tuyến với cổng tia hồng ngoại hay nối qua vi ñiều
Bàn phím thông dụng nhất cho các loại máy vi tính cá nhân khiển 8042 như chuột PS/2)
tương thích IBM là loại MF101 hay MF102. Số 101 và 102 chỉ ra
số phím trên bàn, số phím này thường giao ñộng trong khoảng 90-  Nguyên tắc ño vận tốc chuyển ñộng:
104. tuy nhiên cũng có những bàn phím trên 130 nút.
Bàn phím hiện ñại ngày nay cho ngôn ngữ tiếng Anh lại a) Chuột cơ
theo một loại mới gọi là QWERTY, ñược lấy từ 6 ký tự ñầu tiên Chuột cơ dùng viên bi sắt phủ cao su ñể ño chuyển ñộng.
trên bàn phím. Nguyên lý ñầu tiên của chuột chính là loại này và nó ñược áp dụng
kéo dài hàng chục năm sau ñó và hiện vẫn có thể tìm thấy các loại
2.8. Chuột (mouse) chuột bi ở cửa hàng. Chuột máy tính ñầu tiên xuất hiện trên thế giới
Chuột ñóng một vài trò và tầm ảnh hưởng rất lớn trong có kích thước khá lớn với hai bánh xe vuông góc với nhau. ðể
công việc hằng ngày của những ai sử dụng máy tính. Con chuột dùng nó phải sử dụng cả hai tay ñể ñiều khiển: một tay cầm chuột
ñầu tiên ñược Douglas Engelbart phát minh vào năm 1964. Cùng và tay kìa cầm một bàn phím nhỏ có 5 nút bấm. Tới năm 1970, kĩ
với sự phát triển của các công nghệ vi mạch, vi xử lý, công nghệ sư Bill English của Xerox PARC ñã thay thế bánh xe cổ ñiển bằng
lưu trữ,... công nghệ chế tạo chuột cũng ñã trải qua nhiều thời kỳ một viên bi nổi tiếng mà chúng ta ñều biết. Viên bi này có thể
với rất nhiều cải tiến cả về kiểu dáng lẫn công nghệ cảm ứng. chuyển ñộng theo mọi hướng (1) (xem hình 2.16), chuyển ñộng này
Chuột ngày nay có ñộ nhạy và nhiều tính năng tốt hơn rất nhiều so sẽ ñược hai bánh xe nhỏ bên trong chuột ghi nhận (2), trên bánh xe
với một vài năm trước ñây. có các khe hở nhỏ (3) cho phép một tia sáng phát qua tới ñầu cảm
Thiết bị nhận dữ liệu vào dưới dạng vị trí ñiểm tương ñối ứng bên kia, mỗi lần ngắt sẽ báo hiệu chuột di chuyển (4).
ñược gọi là con chuột (mouse). Ta gọi cách xác ñịnh toạ ñộ của con
chuột là tương ñối vì chuột là một thiết bị ño vận tốc di chuyển con
trỏ .Từ giá trị vận tốc tương ñối này, hàm ngắt của hệ ñiều hành sẽ 1 2
tính ra vị trí mới của con trỏ (cursor) trên màn hình. Nguyên tắc
3
này hoàn toàn khác phương pháp xác ñịnh vị trí tuyệt ñối của bút
quang hay một ñiểm vẽ trong bảng vẽ vectơ. Mỗi chuột có từ hai
ñến năm phím nhấn ñể ñưa tín hiệu chọn vị trí hiện hành. 4 5

Có hai cách phân loại chuột:


• Theo nguyên tắc ño vận tốc chuyển ñộng hay cơ chế cảm ứng
• Theo giao diện với máy tính
Hình 2.16. Cấu tạo chuột cơ
Theo loại giao diện chuột ta có: Cuối cùng, một thiết bị cảm ứng (5) sẽ thu thập tín hiệu và
tổng kết thành giá trị tọa ñộ tương ứng của chuột trên màn hình.
• Chuột song song (nối với máy vi tính qua cổng song song Kiểu thiết kế này ñã ñạt ñược thành công rực rỡ và ñược sử dụng
LPT1 hoặc LPT2),
60 61
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
rộng rãi trong suốt mấy chục năm cuối của thế kỷ 20. Tuy nhiên nó thuộc thế hệ ñầu tiên. Ngoài ra, một số loại chuột rẻ tiền có hệ
cũng có một số nhược ñiểm là hệ thống cơ sẽ bị ăn mòn và các bụi thống xử lý hình ảnh kém sẽ không ñủ khả năng tính toán khi người
dơ bẩn dễ bám vào làm sai lệnh thông tin về tọa ñộ. dùng di chuyển chuột với tốc ñộ nhanh (chuột cao cấp có thể theo
b) Chuột quang ñược tốc ñộ di chuyển lên tới hơn 1m mỗi giây). ðiểm yếu cuối của
Việc phát minh ra chuột quang nhằm khắc phục những chuột quang là nó "ngốn" ñiện nhiều hơn chuột cơ: 25mA so với
khuyết ñiểm ở chuột cơ và là một bước tiến ñáng kể trong chế tạo chỉ khoảng 5mA.
chuột. Nó loại bỏ hoàn toàn thành phần cơ học (bi và bánh xe),
c) Chuột laser
thay bằng một thiết bị bắt hình siêu nhỏ. Thiết bị này sẽ liên tục
Chuột sử dụng cảm ứng laser là công nghệ mới nhất và tiên
"chụp" lại bề mặt mà người dùng di chuột và thông qua phép so tiến nhất hiện nay. Không chỉ thừa hưởng ñầy ñủ ưu ñiểm quang
sánh giữa những bức hình này, bộ xử lý trong chuột sẽ tính toán học mà chuột laser còn có nhiều ñặc ñiểm ưu việt khác. ðược giới
ñược tọa ñộ. Chuột bi sử dụng ñầu cảm ứng quang ñể bắt chuyển thiệu lần ñầu tiên vào năm 2004 dưới sự hợp tác của Logitech và
ñộng của viên bi còn chuột quang sử dụng thiết bị ghi hình ñể bắt Agilent Technologies, Logitech MX1000 là ñại diện ñầu tiên của
chuyển ñộng của bề mặt nhờ sự phản xạ của các tia từ bàn ñể
thế hệ chuột laser xuất hiện trên thị trường. Chú chuột này sử dụng
chuột. Trên thực tế, ñể tính toán chính xác thì hình ảnh chụp phải một tia laser nhỏ thay vì ñèn LED ñỏ thông thường. Công nghệ
tốt. Vì thế, nhiệm vụ quan trọng ñầu tiên là soi sáng bề mặt và một laser cho phép tia sáng có ñộ tập trung cao hơn và ñặc biệt ổn ñịnh.
ñèn LED ñỏ ñược sử dụng cho việc này. Khi chiếu sáng bề mặt, tia
Nhờ thế chuột có thể tăng ñộ chi tiết của hình ảnh "chụp" tới 20 lần
sáng sẽ bị phản chiếu và hội tụ thông qua một thấu kính trước khi
trên lý thuyết.
chạm vào bộ cảm ứng (xem hình 2.17). Nhờ thế, hình ảnh sẽ rất chi
tiết. ðôi khi, chuột quang học sử dụng ñèn LED bị hiểu nhầm là 2.9. Card màn hình (VGA Card)
chuột laser (ñề cập sau) do ánh sáng ñỏ mà nó phát ra.
Trong máy tính cá nhân thế hệ trước, nội dung màn hình
ñược bộ vi xử lý trực tiếp quản lý. Nội dung màn hình ñược truy
nhập trực tiếp qua ñịa chỉ bộ nhớ. Tài nguyên xử lý không bị ảnh
hưởng nhiều nếu máy làm việc trong chế ñộ văn bản (ví dụ như
trên hệ ñiều hành MS-DOS). Máy tính hiện ñại làm việc trong chế
ñộ ñồ họa (ví dụ như hệ diều hành Windows). Số ñiểm ảnh và số
màu trong chế ñộ này rất lớn và ñòi hỏi ñược truy nhập nhanh. Nếu
Hình 2.17. Nguyên lý cảm ứng trong chuột quang không có trợ giúp từ bên ngoài, bộ vi xử lý sẽ phải dùng phần lớn
tài nguyên của nó ñể ñiều hợp hiển thị ñồ họa. Bảng 2.4 cho thấy
Ưu ñiểm của thế hệ chuột quang học là không có các bộ lịch sử phát triển của các chuẩn thẻ ñiều hợp hiển thị.
phận cơ nên hoàn toàn không sợ hỏng hóc do ăn mòn hay bụi bẩn.
Việc bảo trì cũng rất ñơn giản (chỉ cần lau mắt ñọc là xong). Thêm Ðể giải quyết vấn ñề này, nhiều nhà sản xuất cho ra thị
vào ñó là ñộ chi tiết và ñộ nhạy của cơ chế cảm ứng quang cũng tốt trường thẻ ñiều hợp hiển thị có tên là bộ gia tốc (accelerator).
hơn rất nhiều. Tuy nhiên, chuột quang không thể làm việc trên các Những thẻ này có bộ vi ñiều khiển của nó, các phép tính liên quan
bề mặt bóng hoặc trong suốt, còn các bề mặt sặc sỡ thì chuột hoạt ñến ñiều hợp hiển thị ñược tiến hành trên thẻ, giảm gánh nặng cho
ñộng không chính xác. ðiều này ñúng với những loại chuột quang bộ vi xử lý. Thay vì phải tính toàn bộ các ñiểm ảnh cần hiển thị, bộ
vi xử lý chỉ cần gửi một lệnh ngắn về thẻ ñiều hợp hiển thị, phần
62 63
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
còn lại ñược bộ vi xử lý ñồ họa GPU(Graphics Processing Unit) vẫn có bộ nhớ video riêng ñể lưu trữ nội dung các ñiểm ảnh màn
của thẻ thực hiện. Vi xử lý của thẻ ñiều hợp hiển thị ñược thiết kế hình. Phương pháp này cho phép sử dụng bộ nhớ hệ thống mềm
ñặc biệt cho nhiệm vụ này nên làm việc hiệu quả hơn nhiều bộ vi dẻo hơn mà không làm ảnh hưởng ñến tốc ñộ máy tính. Cổng AGP
xử lý ngày nay trở thành chuẩn trong các máy vi tính hiện ñại.

Năm Chuẩn Ý nghĩa Kích thước Số màu Dung lượng Kích thước màn Chiều sâu số màu
1981 CGA Colour Graphics Adaptor 640 x 200 Không bộ nhớ hình màu
160 x 200 16 1 Mb 1024x768 8-bit 256
1984 EGA Enhanced Graphics Adaptor 640 x 350 6 800 x 600 16-bit 65,536
VGA Video Graphics Array 640 x 480 16 2Mb 1024 x 768 8-bit 256
320 x 200 256 1284 x 1024 16-bit 65,536
1987 XGA Extended Graphics Array 800 x 600 16.7 triệu 800x600 24-bit 16.7 million
1024x768 65536 4Mb 1024x768 24-bit 16.7 million
6Mb 1280x1024 24-bit 16.7 million
1990 SXGA Super Extended Graphics 1280x 1024 65,536
UXGA Array 1600 x 65,536 8Mb 1600x1200 32-bit 16.7 million
Ultra XGA 1200 Bảng 2.5. Dung lượng bộ nhớ video và khả năng hiển thị màn hình
Ngoài ra công nghệ sản xuất bộ nhớ video khác nhau cũng
Bảng 2.4. Quá trình phát triển thẻ ñiều hợp hiển thị sẽ cho các ñặc tính của bộ nhớ khác nhau. Bảng 2.6 cho ta thấy
Bộ nhớ video một số khác biệt giữa các bộ nhớ video.
Bộ nhớ video (VRAM) chứa nội dung hình ảnh ñược hiển thị Loại bộ nhớ EDO VRAM WRAM SDRAM SGRAM RDRAM
và các thông tin liên quan ñến nó. Chỉ riêng các ñiểm ảnh một màn Tốc ñộ 400 400 960 800 800 600
hình 1600x1200 màu thực ñã cần ñến 8MB bộ nhớ (xem bảng 2.5). truyền cao
Nhu cầu về bộ nhớ hiển thị khiến phải cắm thêm bộ nhớ video dành nhất
riêng cho mục ñích này. (MBps)
Bộ nhớ video còn ñược gọi là bộ ñệm khung (frame buffer). Cổng kép Sing dual dual single single single
Môt số máy vi tính có vi mạch Chipset trên bản mạch chính và hay ñơn
dùng một phần bộ nhớ chính làm bộ nhớ video, phương pháp này Chiều rộng 64 64 64 64 64 8
làm giảm ñáng kể khả năng hiển thị nhưng rẻ hơn thẻ cắm ñồ họa. dữ liệu
Từ thế hệ Pentium, bộ vi xử lý có cổng gia tốc ñồ họa AGP Thời gian 50- 50- 50- 10- 8-10ns
3ns
(accelerated graphics port). Cổng này cho phép bộ vi xử lý ñồ họa truy cập 60ns 60ns 60ns 15ns
truy nhập trực tiếp bộ nhớ hệ thống cho các phép tính ñồ họa nhưng Bảng 2.6. So sánh các loại bộ nhớ dành cho bộ nhớ video

64 65
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bộ chuyển ñổi từ tín hiệu số sang tín hiệu tương tự (DAC -  Refresh Rate: tốc ñộ làm tươi hình ảnh hay gọi là tần số quét
Digital to Analog Converter). Bộ chuyển ñổi này còn ñược gọi là của màn hình, là số lần "vẽ lại" hình ảnh trong 1 giây từ trên
RAMDAC, có nhiệm vụ biến ñổi hình ảnh thành tín hiệu analog ñể xuống dưới cho tất cả các ñiểm ảnh. Chất phosphor giữ cho ñộ
màn hình có thể hiển thị. Một vài card ñồ họa có nhiều hơn một bộ sáng ñiểm ảnh vừa ñủ ñể mắt người không cảm nhận ñược sự
RAMDAC, do ñó tăng tốc ñộ xử lý và hỗ trợ hiển thị nhiều màn thay ñổi này. Thông số này rất quan trọng, nó càng cao thì mắt
hình. người dùng không bị mỏi. Mỗi loại màn hình có thể hỗ trợ các
2.10. Màn hình (Monitor) tần số quét khác nhau (50 Hz, 60 Hz, 72 Hz, 85 Hz, 90 Hz, 100
Hz…).
Cùng với bàn phím và chuột, màn hình là một thiết bị không
thể thiếu ñược trong máy vi tính. Công nghệ chế tạo và ứng dụng  Respect ratio: tỉ số giữa chiều rộng và chiều cao của màn hình
của màn hình rất ña dạng. Chương trình này chỉ ñề cập kỹ ñến các giúp hình ảnh không bị kéo dãn khi ñược thể hiện ở những
loại màn hình thông dụng: khung hình khác nhau, thông thường tỉ số này là 4:3.
• Màn hình tia âm cực (CRT- cathode ray tube),  Power Consumption: công suất tiêu thụ ñiện của màn hình
• Màn hình tinh thể lỏng (LCD - liquid crystal display),
• Màn hình plasma (plasma display), Phần tử nhỏ nhất của một ảnh hay một thiết bị hiển thị ảnh
a) Các thông số cơ bản của các loại màn hình gọi là ñiểm ảnh pixel (picture element). Khái niệm này xuất hiện
 Vùng hiển thị hình ảnh (Viewable area): trong quá trình nghiên cứu và phát triển màn hình ống tia âm cực.
Kích thước một ñiểm ảnh trên màn hình CRT phụ thuộc vào các
Vùng hiển thị trên màn hình mà người dùng có thể nhìn tham số
thấy ñược. • Kích thước chùm tia ñiện tử,
 ðộ phân giải của màn hình (Resolution): • Kích thước hạt photpho,
• Chiều dày lớp photpho.
ðộ phân giải của màn hình, tính bằng số lượng các ñiểm
Kích thước ngang và dọc với ñơn vị là một ñiểm ảnh ñược gọi
ảnh trên ñường ngang (row) và ñường dọc (column). Ví dụ màn
là kích thước màn hình. Màn hình VGA cơ bản có kích thước
hình hỗ trợ các ñộ phân giải 640x480, 1024x768, 1280x1024,…
640x480 ñiểm ảnh.
 ðiểm ảnh (Pixel): là ñiểm ảnh, ñiểm sáng hiển thị màu trên
màn hình. Ðộ phân giải ñược ñịnh nghĩa là kích thước chi tiết nhỏ nhất
và ño ñược của một thiết bị hiển thị. Một tham số ñể ño ñộ phân
 Khoảng cách giữa tâm các ñiểm ảnh (Dot pitch): khoảng
giải là số ñiểm ảnh trên một ñơn vị chiều dài (inch hay centimet),
cách này càng nhỏ màn hình có ñộ phân giải càng cao, hình ảnh
ñược gọi là mật ñộ ñiểm ảnh. Mật ñộ ñiểm ảnh thường gặp ñược
hiển thị càng sắc nét. Ví dụ: 0 .31mm, 0.28mm, 0.27mm,
tính theo số ñiểm ảnh trên một inch, viết tắt là dpi (dot per inch).
0.26mm, 0.25mm, …
Ta cần tránh nhầm lẫn giữa kích thước màn hình và ñộ phân giải.
 ðộ sâu của màu (Colour Depth): số lượng màu hiển thị trên 1 Ðộ phân giải ñược phân loại như sau:
ñiểm ảnh. Ví dụ: 16,8 triệu màu, 65.000 màu,… • Phân giải thấp (<50 dpi).
• Phân giải trung bình (51dpi - 70dpi).

66 67
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
• Phân giải cao (71dpi - 120dpi ). ðược phát minh bởi nhà vật lý người ðức Karl Ferdinand
• Phân giải siêu cao (>l20 dpi) Braun vào năm 1879. Cấu tạo cơ bản của màn hình CRT như trong
hình 2.18, bao gồm một súng phóng ñiện tử, một hệ thống tạo từ
Kích thước ñiểm ảnh không còn là tham số ñối với loại màn trường ñể biến ñổi quỹ ñạo electron, và một màn huỳnh quang.
hình ma trận ñiểm (dot matrix display) như màn hình LCD ngày Ống phóng ñiện tử dựa theo hiệu ứng phát xạ nhiệt electron. Khi
nay. Ðiểm ảnh ủa các màn hình này luôn là hình vuông và kích cung cấp năng lượng cho mẫu kim loại dưới dạng nhiệt, các
thước màn hình thường là 640x480, 800x600, 1024x768, electron sẽ ñược truyền năng lượng ñể bứt ra khỏi liên kết mạng
1280x1024,…. Kích thước ñiểm ảnh cần ñược thiết kế ñể tỷ lệ tinh thể kim loại. Các electron này sau khi bứt ra ñược tăng tốc bởi
chiều ngang và chiều dọc của màn hình là 4:3. một ñiện trường. Sau khi ñược tăng tốc bởi ñiện trường, electron có
Một màu bất kỳ có thể biểu diễn qua ba màu cơ bản: ñỏ, quỹ ñạo thẳng hướng về phía màn huỳnh quang. Trước khi ñập vào
xanh lục, xanh nước biển tuỳ theo ñộ ñậm nhạt (gray scale). Ðộ sâu màn huỳnh quang, electron sẽ phải bay qua một vùng từ trường
màu (color depth) là số màu có thể hiển thị ñược cho một ñiểm ảnh. ñược tạo bởi hai cuộn dây, một cuộn tạo từ trường ngang và một
Tuỳ theo số bit ñược dùng ñể hiển thị màu ta phân loại màn hình cuộn tạo từ trường dọc. Tuỳ theo cường ñộ của hai từ trường này,
theo mầu như sau: quỹ ñạo của electron trong từ trường sẽ bị lệch ñi và ñập vào màn
• Ðen trắng 1 bit (2 màu), huỳnh quang tại một ñiểm ñược ñịnh trước. Toạ ñộ của ñiểm này
• Màu CGA 4 bit (16 màu), trên màn hình có thể ñược ñiều khiển bởi việc ñiều chỉnh cường ñộ
• Màu giả (pseudo color) 8 bit (256 màu), dòng ñiện trong hai ống dây, qua ñó ñiều chỉnh cường ñộ từ trường
• Màu (high color) 16 bit, tác dụng lên electron. Electron ñập vào màn huỳnh quang (thường
• Màu thật (true color) 24 bit là ZnS) sẽ khiến ñiểm ñó phát sáng. ðể tạo ra ba màu cơ bản trong
• Màu siêu thật (highest color) 32 bit hệ màu RGB, người ta sử dụng ba súng phóng ñiện tử riêng, mỗi
súng tương ứng với một màu
Tốc ñộ quét màn hình còn gọi là tần số làm tươi (refresh
rate) là một tham số quan trọng và ñòi hỏi nhiều vấn ñề khó giải
quyết từ công nghệ màn hình cũng như công nghệ bộ ñiều khiển
màn hình. Ðể mắt thường phân biệt ñược thay ñổi tự nhiên trên
màn hình, toàn bộ màn hình ít nhất phải ñược thể hiện lại ít nhất 30
lần một giây. Ðiều này có nghĩa là màn hình cần có tần số làm tươi
tối thiểu là 30Hz. Tần số làm tươi của màn hình VGA nằm trong
khoảng 30 ñến 60Hz, thời gian tồn tại một ảnh nhỏ hơn 33 ms. Tần
số này không cao lắm nhưng ñã là thách thức lớn cho màn hình,
nhất là các loại chậm như LCD. Một ñiểm ảnh LCD cần từ 50 ñến
250 ms ñể thay ñổi trạng thái

b) Màn hình tia âm cực CRT

68 69
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Hình 2.18. Cấu tạo màn hình CRT • Kính lọc phân cực: là loại vật liệu chỉ cho ánh sáng phân cực ñi
qua. Lớp vật liệu phân cực có một phương ñặc biệt gọi là quang
MÀN HÌNH TINH THỂ LỎNG
trục phân cực. Ánh sáng có phương dao ñộng trùng với quang trục
Tinh thể lỏng ñược một nhà thực vật học người ÁO, phân cực sẽ truyền toàn bộ qua kính lọc phân cực. Ánh sáng có
Friedrich Reinitzer, phát hiện vào cuối thế kỷ 19. Một thời gian phương dao ñộng vuông góc với quang trục phân cực sẽ bị chặn lại.
ngắn sau, khái niệm tinh thể lỏng ñược nhà vật lý học người Ðức Ánh sáng có phương dao ñộng hợp với quang trục phân cực một
Otto Lehmann nhắc ñến lần ñầu tiên. góc 0<φ<90 sẽ truyền một phần qua kính lọc phân cực. Cường ñộ
Từ năm 1971, màn hình tinh thể lỏng ñược ứng dụng trong ánh sáng truyền qua kính lọc phân cực phụ thuộc vào góc hợp bởi
nhiều lĩnh vực: TV, máy ảnh số, màn hình máy tính .v.v. Ngày nay, phương phân cực của ánh sáng và quang trục phân cực của kính lọc
màn hình tinh thể lỏng ñể bàn hay màn hình máy tính xách tay phân cực.
ñược chế tạo từ hai nguyên tắc chính:
• DSTN (dual-scan twisted nematic) • Tinh thể lỏng: tinh thể lỏng không có cấu trúc mạng tinh thể cố
• TFT (thin film transistor) ñịnh như các vật rắn, mà các phân tử có thể chuyển ñộng tự do
Tinh thể lỏng LCD (liquid crystal display) là chất lỏng hữu trong một phạm vi hẹp như một chất lỏng. Các phân tử trong tinh
cơ mà phân tử của nó có khả năng phân cực ánh sáng dẫn ñến thay thể lỏng liên kết với nhau theo từng nhóm và giữa các nhóm có sự
ñổi cường ñộ sáng. Trường tĩnh ñiện ñược dùng ñể ñiều khiển liên kết và ñịnh hướng nhất ñịnh, làm cho cấu trúc của chúng có
hướng phân tử tinh thể lỏng. phần giống cấu trúc tinh thể. Vật liệu tinh thể lỏng có một tính chất
Do hình ảnh ñược mã hoá và hiển thị dưới dạng bản ñồ ma ñặc biệt là có thể làm thay ñổi phương phân cực của ánh sáng
trận ñiểm ảnh, nên màn hình LCD cũng phải ñược cấu tạo từ các truyền qua nó, tuỳ thuộc vào ñộ xoắn của các chùm phân tử. ðộ
ñiểm ảnh. Mỗi ñiểm ảnh trên màn hình LCD sẽ hiển thị một ñiểm xoắn này có thể ñiều chỉnh bằng cách thay ñổi ñiện áp ñặt vào hai
ảnh của khung hình. Trong mỗi ñiểm ảnh trên màn hình LCD, có ñầu tinh thể lỏng
ba ñiểm ảnh con (subpixel), mỗi ñiểm ảnh hiển thị một trong ba
màu: ñỏ, xanh lá, xanh lam. ðể nắm ñược nguyên lý hoạt ñộng của Màn hình tinh thể lỏng ñược cấu tạo bởi các lớp xếp chồng
màn hình LCD, ta xét một số khái niệm sau: lên nhau như trong hình 2.19. Lớp dưới cùng (lớp 6) là ñèn nền, có
tác dụng cung cấp ánh sáng nền (ánh sáng trắng). ðèn nền dùng
• Ánh sáng phân cực: theo lý thuyết sóng ánh sáng của Huyghen, trong các màn hình thông thường, có ñộ sáng dưới 1000cd/m2
Fresnel và Maxwell, ánh sáng là một loại sóng ñiện từ truyền trong thường là ñèn huỳnh quang. ðối với các màn hình công cộng, ñặt
không gian theo thời gian. Phương dao ñộng của sóng ánh sáng là ngoài trời, cần ñộ sáng cao thì có thể sử dụng ñèn nền xenon. ðèn
phương dao ñộng của từ trường và ñiện trường (vuông góc với nền xenon về mặt cấu tạo khá giống với ñèn pha bi-xenon sử dụng
nhau). Dọc theo phương truyền sóng, phương dao ñộng của ánh trên các xe hơi cao cấp. ðèn xenon không sử dụng dây tóc nóng
sáng có thể lệch nhau một góc tuỳ ý. Xét tổng quát, ánh sáng bình sáng như ñèn Vonfram hay ñèn halogen, mà sử dụng sự phát sáng
thường có vô số phương dao ñộng khác nhau. Ánh sáng phân cực bởi nguyên tử bị kích thích, theo ñịnh luật quang ñiện và mẫu
là ánh sáng chỉ có một phương dao ñộng duy nhất, gọi là phương nguyên tử Bo. Bên trong ñèn xenon là hai bản ñiện cực, ñặt trong
phân cực. khí trơ xenon trong một bình thuỷ tinh thạch anh. Khi ñóng nguồn,
cấp cho hai ñiện cực một ñiện áp rất lớn, cỡ 25 000V. ðiện áp này

70 71
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
vượt ngưỡng ñiện áp ñánh thủng của xenon và gây ra hiện tượng sẽ ở trạng thái tự do, ánh sáng truyền qua sẽ không bị thay ñổi
phóng ñiện giữa hai ñiện cực. Tia lửa ñiện sẽ kích thích các nguyên phương phân cực. Ánh sáng có phương phân cực ngang truyền tới
tử xenon lên mức năng lượng cao, sau ñó chúng sẽ tự ñộng nhảy lớp kính lọc thứ hai có quang trục phân cực dọc sẽ bị chặn lại hoàn
xuống mức năng lượng thấp và phát ra ánh sáng theo ñịnh luật bức toàn. Lúc này, ñiểm ảnh ở trạng thái tắt.
xạ ñiện từ. ðiện áp cung cấp cho ñèn xenon phải rất lớn, thứ nhất Nếu ñặt một ñiện áp giữa hai ñầu lớp tinh thể lỏng, các
ñể vượt qua ngưỡng ñiện áp ñánh thủng ñể sinh ra tia lửa ñiện, thứ phân tử sẽ liên kết và xoắn lại với nhau. Ánh sáng truyền qua lớp
hai ñể kích thích các nguyên tử khí trơ lên mức năng lượng ñủ cao tinh thể lỏng ñựơc ñặt ñiện áp sẽ bị thay ñổi phương phân cực. Ánh
ñể ánh sáng do chúng phát ra khi quay trở lại mức năng lượng thấp sáng sau khi bị thay ñổi phương phân cực bởi lớp tinh thể lỏng
có bước sóng ngắn. truyền ñến kính lọc phân cực thứ hai và truyền qua ñược một phần.
Lúc này, ñiểm ảnh ñược bật sáng. Cường ñộ sáng của ñiểm ảnh phụ
thuộc vào lượng ánh sáng truyền qua kính lọc phân cực thứ hai.
Lượng ánh sáng này lại phụ thuộc vào góc giữa phương phân cực
và quang trục phân cực. Góc này lại phụ thuộc vào ñộ xoắn của các
phân tử tinh thể lỏng. ðộ xoắn của các phân tử tinh thể lỏng phụ
thuộc vào ñiện áp ñặt vào hai ñầu tinh thể lỏng.
Như vậy, có thể ñiều chỉnh cường ñộ sáng tại một ñiểm ảnh bằng
cách ñiều chỉnh ñiện áp ñặt vào hai ñầu lớp tinh thể lỏng. Trước
mỗi ñiểm ảnh con có một kính lọc màu, cho ánh sáng ra màu ñỏ,
xanh lá và xanh lam.Với một ñiểm ảnh, tuỳ thuộc vào cường ñộ
ánh sáng tương ñối của ba ñiểm ảnh con, dựa vào nguyên tắc phối
màu phát xạ, ñiểm ảnh sẽ có một màu nhất ñịnh. Khi muốn thay ñổi
màu sắc của một ñiểm ảnh, ta thay ñổi cường ñộ sáng tỉ ñối của ba
Hình 2.19. Các lớp cấu tạo màn hình LCD ñiểm ảnh con so với nhau. Muốn thay ñổi ñộ sáng tỉ ñối này, phải
thay ñổi ñộ sáng của từng ñiểm ảnh con, bằng cách thay ñổi ñiện áp
Lớp thứ hai (lớp 5) là lớp kính lọc phân cực có quang trục phân ñặt lên hai ñầu lớp tinh thể lỏng.
cực ngang, kế ñến là một lớp tinh thể lỏng (lớp 3)ñược kẹp chặt Một nhược ñiểm của màn hình tinh thể lỏng, ñó chính là tồn
giữa hai tấm thuỷ tinh mỏng (lớp 4 và 2), tiếp theo là lớp kính lọc tại một khoảng thời gian ñể một ñiểm ảnh chuyển từ màu này sang
phân cực có quang trục phân cực dọc (lớp 1). Mặt trong của hai màu khác (thời gian ñáp ứng – response time). Nếu thời gian ñáp
tấm thuỷ tinh kẹp tinh thể lỏng có phủ một lớp các ñiện cực trong ứng quá cao có thể gây nên hiện tượng bóng ma với một số cảnh có
suốt. Ta xét nguyên lý hoạt ñộng của màn hình LCD với một ñiểm tốc ñộ thay ñổi khung hình lớn. Khoảng thời gian này sinh ra do
ảnh con: ánh sáng ñi ra từ ñèn nền là ánh sáng trắng, có vô số sau khi ñiện áp ñặt lên hai ñầu lớp tinh thể lỏng ñựoc thay ñổi, tinh
phương phân cực. Sau khi truyền qua kính lọc phân cực thứ nhất, thể lỏng phải mất một khoảng thời gian mới có thể chuyển từ trạng
chỉ còn lại ánh sáng có phương phân cực ngang. Ánh sáng phân thái xoắn ứng với ñiện áp cũ sang trạng thái xoắn ứng với ñiện áp
cực này tiếp tục truyền qua lớp tinh thể lỏng. Nếu giữa hai ñầu lớp mới. Thông qua việc tái tạo lại màu sắc của từng ñiểm ảnh , chúng
tinh thể lỏng không ñựơc ñặt một ñiện áp, các phân tử tinh thể lỏng ta có thể tái tạo lại toàn bộ hình ảnh.

72 73
Chương II: Các bộ phận cơ bản của máy tính Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
cáp mạng, thông dụng nhất là loại BNC (viết tắt của bayoner
connector) dùng cho cáp ñồng trục và RJ45, dùng cho cáp dạng dây
MÀN HÌNH TFT
ñên thoại. NIC còn phụ thuộc vào loại mạng dùng mà thông dụng
Màn hình LCD màu hay còn gọi là màn hình ma trận chấm nhất ngày nay là loại Ethernet (10Mbit/s), Fast Ethernet
(dot matrix display) có ñiện cực và bộ lọc màu riêng cho từng ñiểm (100Mbit/s) và Gigabit Ethernet (1000Mbit/s).
tinh thể lỏng. Mỗi ñiểm ảnh sẽ bao gồm ba ñiểm màu riêng biệt.
Màn hình ma trận chủ ñộng (active matrix display) tối ưu hoá quá
trình ñịnh ñịa chỉ và nạp từng ñiểm ảnh. Màn hình ma trận chủ
ñộng dùng một transistor màng mỏng TFT (thin-film transistor)
Modem
làm công tắc chuyển mạch cho từng ñiểm màu. Transistor ñóng
mạch rất nhanh (trong vài micrô giây), tụ ñiện mắc song song với Cùng với ñà sử dụng máy tính trong những năm qua, việc
nó sẽ giữ trạng thái dòng mạch lâu hơn trong khi transistor của các máy tính này cần giao tiếp với máy tính khác là chuyện hiển nhiên
dòng khác tiếp tục ñóng mạch. Màn hình TFT ñược sản xuất theo xảy ra. Modem ra ñời với việc ứng dụng mạng lưới ñiện thoại có
công nghệ vi ñiện tử và chứa vi mạch ñiều khiển ngay trên màn sẵn ñể kết nối các máy tính ñặt xa nhau. Ví dụ, kết nối một máy
hình. tính cá nhân tại nhà với máy tính ñặt tại nơi làm việc, với hệ thống
ngân hàng trong nước, hoặc với bảng thông báo ñiện tử, mà phổ
MÀN HÌNH PLASMA biến nhất ngày nay là truy cập Internet.
Nguyên tắc màn hình plasma giống nguyên tắc ñèn Neon. Những modem hiện ñại truyền dữ liệu với tốc ñộ từ 28800
Màn hình plasma thường có màu ñặc trưng là xanh hay vàng ñỏ. bit/s ñến 57600 bit/s, tốc ñộ này hiện nay ñược coi là hơi chậm, do
Màn hình plasma gồm nhiều ô khí trơ ñược hàn kín tương ứng với vậy mới ra ñời modem với công nghệ ADSL .
các ñiểm ảnh. Mỗi Ô khí trơ có hai ñiện cực. Khi hiệu ñiện thế vượt
quá một giới hạn nhất ñịnh, khí trơ sẽ ion hóa và phát sáng. Nguyên
tắc ñiều khiển màn hình loại này ñơn giản hơn màn hình LCD.
Nhược ñiểm của màn hình loại này là thời gian làm việc ngắn, tiêu
thụ nhiều năng lượng. Ðộ tương phản vào khoảng 10:1. Màn hình
plasma từng ñược dùng cho máy tính xách tay của Toshiba và
Compaq. Ngày nay chúng hầu như không thể cạnh tranh ñược với
màn hình tinh thể lỏng tiên tiến. Màn hình LCD có thể dùng trong
máy chiếu ảnh (có vai trò như phim trong máy chiếu bóng) ñể có
ñược hình trên màn ảnh rộng.
2.11. Card mạng (Network adapter) và Modem
Thiết bị ñầu tiên cần ñể xây dựng mạng là card mạng
(Network Interface – Card NIC). Mỗi máy tính trong mạng cần một
NIC. NIC cùng với driver thực hiện 2 chức năng chính: truyền và
nhậ thông tin ở dạng data frame. Trên NIC phải có một ñầu nối với
74 75
Chương II: Các bộ phận cơ bản của máy tính
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
CÂU HỎI VÀ BÀI TẬP CHƯƠNG II

1. CPU có các thành phần chủ yếu nào? hãy mô tả hoạt ñộng
của các thành phần ñó. Một máy tính ñơn giản ñược tổ
chức như thế nào?
2. Hãy nêu ra sự khác biệt cơ bản giữa các bộ vi xử lý của
hãng Intel và của hãng AMD.
3. Tần số của CPU có phải là tốc ñộ xử lý của nó không? giải
thích rõ sự khác nhau về tần số của CPU hãng Intel và hãng
AMD.
4. Cho biết các loại bản mạch chính ñang thông dụng ngày
nay ngoài thị trường. Cho biết trên mainboard ñược cắm
những bộ phận gì?
5. Mô tả vận hành của ổ ñĩa cứng. Cách lưu trữ thông tin trong
ổ ñĩa cứng.
6. Nguyên tắc vận hành của ñĩa quang. Ưu khuyết ñiểm của
các loại ñĩa quang.
7. Cho biết sự khác biệt giữa bộ nhớ RAM và ROM. Liệt kê
một số loại RAM thông dụng và các ñặc tính kỹ thuật của

8. Bộ xử lý ñồ họa GPU khác CPU ở ñiểm gì? ñiểm ñặc biệt
của bộ nhớ video so với các loại bộ nhớ khác.
9. Hãy cho biết các thể loại màn hình và các ñặc tính cơ bản
của từng loại

76
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

3.2. Lượng thông tin và sự mã hoá thông tin


Chương III: Biểu diễn dữ liệu Thông tin ñược ño lường bằng ñơn vị thông tin mà ta gọi là
bit. Lượng thông tin ñược ñịnh nghĩa bởi công thức:
I = Log2(N)
Trong ñó:
I: là lượng thông tin tính bằng bit
3.1. Khái niệm thông tin N: là số trạng thái có thể có
Vậy một bit ứng với một trạng thái trong hai trạng thái có
ðể mã hóa thông tin trong máy tính, người ta dùng các tín
thể có. Hay nói cách khác, một bit có thể biểu diễn hai trạng thái 0
hiệu ñiện thế. Thường tín hiệu trong khoảng 00.8V ñại diện cho
hoặc 1. Ví dụ, ñể biểu diễn một trạng thái trong 8 trạng thái có thể
một giá trị (nhị phân 0) và tín hiệu có mức ñiện thế bất kỳ trong
có, ta cần một số bit ứng với một lượng thông tin là:
khoảng 25V ñại diện cho giá trị kia (nhị phân 1). (xem hình 3.1.)
I = Log2(8) = 3 bit
Tám trạng thái ñược ghi nhận nhờ 3 số nhị phân (mỗi số nhị
phân có thể có giá trị 0 hoặc 1).
Như vậy lượng thông tin là số con số nhị phân cần thiết ñể
5V biểu diễn số trạng thái có thể có. Do vậy, một con số nhị phân ñược
Nhị phân 1
gọi là một bit. Một từ n bit có thể tượng trưng một trạng thái trong
2V Không sử tổng số 2n trạng thái mà từ ñó có thể tượng trưng.
0.8 V dụng Ví dụ: Nếu dùng 3 bit (A2,A1,A0) ñể biểu diễn thông tin, ta sẽ có
Nhị phân 0 ñược 8 trạng thái khác nhau như trong bảng 3.1.
0V Trạng thái A2 A1 A0
0 0 0 0
Hình 3.1. Biểu diễn trị nhị phân qua ñiện thế
1 0 0 1
Trong hình này, chúng ta quy ước có hai trạng thái có ý 2 0 1 0
nghĩa: trạng thái thấp khi hiệu ñiện thế thấp hơn 0.8V và trạng thái 3 0 1 1
cao khi hiệu ñiện thế lớn hơn 2V. ðể có thông tin, ta phải xác ñịnh 4 1 0 0
thời ñiểm ta quan sát trạng thái của tín hiệu. Thí dụ, tại thời ñiểm t1 5 1 0 1
thì tín hiệu ở trạng thái thấp và tại thời ñiểm t2 thì tín hiệu ở trạng 6 1 1 0
thái cao. 7 1 1 1
Bảng 3.1. Ba bit biểu diễn ñược 8 trạng thái

77 78
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

Như vậy trong máy tính thì mọi thứ ñều ñược biểu diễn = (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10
dưới dạng hai con số là 0 và 1. Nhưng ở thế giới thực của chúng ta Các hệ thống số cơ bản gồm:
thì thông tin lại là các khái niệm như con số, chữ cái, hình ảnh, âm
thanh,….Cho nên ñể ñưa các thông tin vào máy tính thì ta cần • Thập phân (Decimal)
chuyển ñổi thông tin thực thành những con số 0 và 1. Công việc Dùng 10 chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ñể biểu diễn số. Ví
này ta gọi là sự mã hóa thông tin dụ số 235.3 trong hệ thập phân biểu diễn một ñại lượng:
ðể biểu diễn dữ liệu trong máy tính chúng ta cần có các quy
2 1 0 -1 trọng số
tắc “gắn kết” các khái niệm trong thế giới thật với một dãy gồm các
con số 0 và 1. 2 3 5 . 3 = 2*102 + 3*101 + 5*100 + 3*10-1

3.3. Hệ Thống Số • Nhị phân (Binary)


Khái niệm hệ thống số: Dùng hai chữ số 0 và 1 ñể biểu diễn số. Ví dụ số m =
Cơ sở của một hệ thống số ñịnh nghĩa phạm vi các giá trị có 1101,011 ở hệ nhị phân biểu diễn một ñại lượng:
thể có của một chữ số. Ví dụ: trong hệ thập phân, một chữ số có giá m2 = 1.23 + 1.22 + 0.21 + 1.20 + 0.2-1 + 1.2-2 + 1.2-3
trị từ 0-9, trong hệ nhị phân, một chữ số (một bit) chỉ có hai giá trị Ở ñây ñể tránh nhầm lẫn chúng ta dùng ký hiệu số nhỏ phía
là 0 hoặc 1. bên dưới ñể biểu diễn con số ñó ở hệ nào, như m2 – số m ở
Dạng tổng quát ñể biểu diễn giá trị của một số: hệ nhị phân, 53010 – số 530 ở hệ thập phân.

n −1 • Bát phân (Octal)


Vk = ∑ b .k
i =− m
i
i ðể biểu diễn số dùng 8 chữ số 0, 1, 2, 3, 4, 5, 6, 7. Ví dụ:

M = (6327,4051)8 = 6.83 + 3.82 + 2.81 + 7.80 + 4.8-1


Trong ñó: +0.8-2 + 5.8-3 + 1.8-4
Vk: Số cần biểu diễn giá trị
m: số thứ tự của chữ số phần lẻ (phần lẻ của số có m  Chú ý: Mỗi con số ở hệ bát phân ñược biểu diễn bằng tập
chữ số ñược ñánh số thứ tự từ -1 ñến -m) hợp 3 số ở hệ nhị phân (ví dụ 58 = 1012)
n-1: số thứ tự của chữ số phần nguyên (phần nguyên
của số có n chữ số ñược ñánh số thứ tự từ 0 ñến n-1) • Thập lục phân (Hexadecimal)
bi: giá trị của chữ số thứ i
k: hệ số ñếm(k=10: hệ thập phân; k=2: hệ nhị phân; ðể biểu diễn số dùng 16 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,
k=8: hệ bát phân; ...). B, C, D, E. Trong ñó tương ñương với hệ 10 thì A=10,
B=11, C=12, D=13, E=14, F=15.
Ví dụ: biểu diễn số 541.2510
541.2510 = 5 * 102 + 4 * 101 + 1 * 100 + 2 * 10-1 + 5 * 10-2  Chú ý: Mỗi con số ở hệ thập lục phân ñược biểu diễn bằng
tập hợp 4 số ở hệ nhị phân (ví dụ 516 = 01012)
79 80
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

Vì chúng ta cần biểu diễn dữ liệu ở hệ nhị phân, nên việc Chuyển
Bảng 3.2 cho ta các ñặc tính chính của các hệ ñếm cơ bản. ñổi hệ 10 sang Nhị phân cần ñược ñặc biệt lưu ý riêng như sau:
Như vậy có nhiều hệ ñếm khác nhau ñược dùng ñể biểu Quy tắc: Người ta chuyển ñổi từng phần nguyên và lẻ theo
diễn dữ liệu và chúng ta sẽ xem xét cách chuyển ñổi giữa các hệ
quy tắc sau:
này với nhau như thế nào sau ñây.
Phần nguyên: Chia liên tiếp phần nguyên cho 2 giữ lại các
HỆ ðẾM CƠ KÍ HIỆU CHỮ TRỌNG VÍ DỤ số dư, số nhị phân ñược chuyển ñổi sẽ là dãy số dư liên tiếp
SỐ SỐ SỐ tính từ lần chia cuối về lần chia ñầu tiên.
Nhị phân 2 0, 1 2i 1001,1101 Phần lẻ: Nhân liên tiếp phần lẻ cho 2, giữ lại các phần
nguyên ñược tạo thành. Phần lẻ của số Nhị phân sẽ là dãy
Bát phân 8 0,1,2,3,4,5,6,7 8i 3567,24 liên tiếp phần nguyên sinh ra sau mỗi phép nhân tính từ lần
Thập phân 10 0,1,2,3,4,5,6,7,8,9 10i 1369,354 nhân ñầu ñến lần nhân cuối.
Thập lục 16 0, 1, 2, 3, 4, 5, 6, 16i 3FA9,6B Ví dụ 3: Chuyển sang hệ Nhị phân số: 13,625
phân 7, 8, 9, A, B, C, Thực hiện:
D, E, F Phần nguyên:

Bảng 3.2. Các hệ ñếm cơ bản 13:2 = 6 dư 1


6:2 = 3 dư 0
a) Chuyển ñổi từ hệ cơ số 10 sang b 3:2 = 1 dư 1
Quy tắc: Chia số cần ñổi cho b, lấy kết quả chia tiếp cho b cho ñến 1:2 = 0 dư 1
khi kết quả bằng 0. Số ở cơ số b chính là các số dư (của phép chia)
viết ngược. Phần nguyên của số Nhị phân là 1101
Ví dụ 1: Chuyển số 41 ở hệ 10 sang hệ 16 Phầnlẻ:
41 ÷ 16 =2 dư 9 0,6875 x 2 = 1,375 Phần nguyên là 1
2 ÷ 16 =0 dư 2 0,375 x 2 = 0,750 Phần nguyên là 0
=> 4110 = 2916 0,750 x 2 = 1,500 Phần nguyên là 1
Ví dụ 2: Chuyển số 41 ở hệ 10 sang hệ 2 0,5 x 2 = 1,00 Phần nguyên là 1
41 ÷ 2 = 20 dư 1 Phần lẻ của số Nhị phân là: 0,1011
20 ÷ 2 = 10 dư 0 Ta viết kết quả là: (13,625)10 = (1101,1011)2
10 ÷ 2 = 5 dư 0 Chú ý: việc chuyển ñổi từ hệ thập phân sang hệ Nhị phân không
5÷2 =2 dư 1 phải luôn ñược gọn gàng chính xác, trong trường hợp phép tính
2÷2 =1 dư 0 chuyển ñổi kéo dài, thì tùy theo yêu cầu về ñộ chính xác mà ta có
1÷2 =0 dư 1 thể dùng phép tính ở mức ñộ cần thiết thích hợp.
=> 4110 = 1010012 (chú ý!!! viết ngược từ dưới lên) Ví dụ 4: Chuyển số (3287,5100098)10 sang Cơ số 8.

81 82
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

Phần nguyên: m = 8 + 4 + 0 + 1 + 0 + 1/4 + 1/8


3287:8 = 410 dư 7 m = 13,375
410:8 = 51 dư 2
51:8 = 6 dư 3
6:8 =0 dư 6 c) Chuyển ñổi cơ số 2-8-16
Vậy (3287)10=(6327)8
Quy tắc: Từ phải sang trái, gom 3 chữ số nhị phân thành
Phần lẻ: một chữ số bát phân hoặc gom 4 chữ số nhị phân thành một chữ số
thập lục phân.
0,5100098x8 = 4,0800784 phần nguyên là 4
0,0800784x8= 0,6406272 phần nguyên là 0
0,6406270x8= 5,1250176 phần nguyên là 5
0,1250176x8= 1,0001408 phần nguyên là 1
Vậy (0,5100098)10=(0,4051)8

Kết quả chung là: (3287,5100098)10 =(6327,4051)8 Bảng 3.3 cho ta các chuyển ñổi tương ứng từ các hệ số với
b) Chuyển ñổi từ hệ cơ số b sang 10 nhau. ðể làm bài tốt và học tốt các môn học liên quan ñến kỹ thuật
số, hệ thống số, vi xử lý,... sinh viên cần thuộc lòng bảng này.
Việc chuyển ñổi từ một hệ cơ số bất kỳ sang hệ 10 thì ñơn
giản hơn và cách làm như trong trường hợp ñịnh nghĩa ñại lượng
của số ñó. Hệ 2 Hệ bát phân Hệ thập phân Hệ thập lục phân
(Base 2) (Base 8) (Base 10) (Base 16)
Ví dụ 1: số 235.3 trong hệ 8 chuyển sang hệ thập phân có giá trị
0000 0 0 0
như sau:
0001 1 1 1
0010 2 2 2
2 1 0 -1 trọng số 0011 3 3 3
2 3 5 . 3 = 2*82 + 3*81 + 5*80 + 3*8-1 = 157.37510 0100 4 4 4
0101 5 5 5
 Chuyển ñổi Hệ 2 sang hệ 10 0110 6 6 6
Quy tắc: Muốn chuyển ñổi một số biểu diễn trong hệ Nhị 0111 7 7 7
phân sang hệ thập phân ta lập Tổng theo trọng số của từng bit Nhị 1000 10 8 8
phân, Kết quả của tổng sẽ là biểu diễn Thập phân của số ñó. 1001 11 9 9
Ví dụ 2: Chuyển ñổi sang hệ Thập phân số: m = 1101,011 1010 12 10 A
1011 13 11 B
Thực hiện: Ta lập tổng theo trọng số của từng Bit nhị phân:
m = 1.23 + 1.22 + 0.21 + 1.20 + 0.2-1 + 1.2-2 + 1.2-3 1100 14 12 C
83 84
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

1101 15 13 D 0 0 0 0 0
1110 16 14 E 0 1 1 0 1
1111 17 15 F 1 0 1 0 1
1 1 0 1 10
Bảng 3.3. Tương quan giữa các hệ thống số Bảng 3.4. Quy tắc Cộng Nhị phân cho 2 số 1 bit.

Ví dụ 1: Chuyển số M = (574,321)8 sang biễu diễn nhị phân. Ví dụ: Thực hiện các phép Cộng Nhị phân:
Thực hiện: Thay mỗi chữ số bằng nhóm nhị phân 3 bit 1011
tương ứng: +1100
M = 101 111 100 , 011 010 001 10111
5 7 4 3 2 1
=>M2 = 101111100,011010001 3.4.2. Phép trừ hai số nhị phân không dấu:
Ví dụ 2: Chuyển số M = (1001110,101001)2 sang cơ số 8.
Phép trừ nhị phân ñược thực hiện theo quy tắc trình bày ở Bảng
Thực hiện: M= 1 001 110 , 101 001 3.5
M= 1 1 6 , 5 1
=> M= (116,51)8 SỐ BỊ TRỪ SỐ TRỪ HIỆU SỐ SỐ VAY
0 0 0 0
3.4. Các phép tính số học cho hệ nhị phân 0 1 1 1
1 0 1 0
Các phép tính Cộng, Trừ, Nhân, Chia cũng ñược sử dụng 1 1 0 0
trong số học Nhị phân, việc tính toán cụ thể ñược thực hiện theo
quy tắc sau:
Bảng 3.5. Quy tắc trừ Nhị phân cho 2 số 1 bit.
3.4.1. Phép cộng hai số nhị phân không dấu:
Chú ý:
Cộng nhị phân ñược thực hiện theo quy tắc ở bảng 3.4 - Phép tính ñược thực hiện từ Bit có trọng số thấp ñến Bit
Chú ý: có trọng số cao.
- Khi cộng, thực hiện từ bit có trọng số thấp ñến bit cú trọng - Số vay sẽ ñược trừ vào Bit có trọng số cao hơn ở liền
số cao. kề.
- Nếu có số nhớ thì số nhớ sinh ra ñược cộng vào bit cú trọng
số cao hơn liền kề Ví dụ: Thực hiện các tính Trừ Nhị phân sau:

SỐ HẠNG 1 SỐ HẠNG 2 TỔNG SỐ NHỚ KẾT QUẢ 1011


85 86
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

-0110 3.4.4. Biểu diễn số nguyên có dấu


0101 Có ba cách ñể biểu diễn một số nguyên n bit có dấu ñó là
biểu diễn bằng trị tuyệt ñối và dấu, biểu diễn bằng số bù 1, biểu
Tuy nhiên trong thực tế, máy tính không tính toán kiểu ñó diễn bằng số bù 2.
mà chuyển ñổi phép trừ thành phép cộng với số bù 2 của nó. Cách thông thường nhất là biểu diễn bằng trị tuyệt ñối và dấu,
Phương pháp này trong máy tính ñược cho là hiệu quả hơn và dễ trong trường hợp này thì bit cao nhất luôn tượng trưng cho dấu.
dàng thiết kế phần cứng cho nó hơn. Số bù có hai loại thường dùng Khi ñó, bit dấu có giá trị là 0 thì số ñó là nguyên dương, bit
là số bù 1 và số bù 2. dấu có giá trị là 1 thì số ñó là nguyên âm. Tuy nhiên, cách biểu diễn
dấu này không ñúng trong trường hợp số ñược biểu diễn bằng số
3.4.3. Phép nhân và chia hai số nhị phân không dấu: thừa K mà ta sẽ xét ở phần sau trong chương này.
 Phép nhân nhị phân ñược thực hiện như nhân thập phân.

Ví dụ: Có phép tính: 1001 nhân với 1101


Số nguyên có bit dn-1 là bit dấu và có trị tuyệt ñối biểu diễn
Ta thực hiện: 1001(Số bị nhân-Multiplicant) bởi các bit từ d0 tới dn-2 .
x 1101(Số nhân-Multiplier ) Ví dụ: dùng 8 bit biểu diễn số +25 và -25 dưới dạng dấu và trị tuyệt
1001 ñối.
0000 Ta biết 2510 = 110012. Dùng 8 bit ñể biểu diễn số, như vậy 1
+ 1001 bit biểu diễn dấu, còn 7 bits biểu diễn giá trị của số ñó.
1001 Vậy +25 = 0 0011001
Kết quả là: 1110101 Bit dấu
Vậy -25 = 1 0011001
 Phép chia nhị phân ñược thực hiện như chia thập phân. Bit dấu
Ví dụ: Có phép tính: 1110101 chia cho 1001 Như vậy, theo cách này thì:
+2510 = 000110012
Ta thực hiện: 1110101 : 1001
-2510 = 100110012
- 1001 1101
- Một Byte (8 bit) có thể biểu diễn các số có dấu từ -127 tới +127.
01011
- Có hai cách biểu diễn số không là 0000 0000 (+0) và 1000 0000
- 1001
(-0).
001001
Hai cách biểu diễn còn lại ta sẽ xem xét trong phần tiếp
1001
dưới ñây.
0000
Kết quả: 1111010 : 1001 = 1101

87 88
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

3.4.5. Số bù của một số Số bù 1 của một số:


Số bù ñược dùng trong máy tính số giúp ñơn giản phép toán Số bù 1 của một số nhị phân (hay còn gọi là số invert) là một số nhị
trừ và các thao tác logic. Trong hệ cơ số (hệ ñếm) r có hai dạng số phân có ñược bằng cách ñổi các bit 1 thành 0 và bit 0 thành 1.
bù: Số bù r và số bù (r-1). Như vậy trong hệ 10 sẽ có bù 10 và bù
9, trong hệ 8 có bù 8 và bù 7, trong hệ 16 có bù 16 và bù 15, trong Ví dụ:
hệ 2 có bù 2 và bù 1.
Số cần ñổi 10110101 1100110
Số bù r-1 của một số: Số bù 1 của nó 10001010 0011001
Giả sử N là một số có n ký số trong hệ thống số r thì bù r-1
của N = (rn – 1) – N. Số bù 2 của một số: Số bù hai của một số là số bù 1 của số ñó
cộng thêm 1.
Ví dụ ñối với hệ thập phân ta có bù r-1 = bù 9 của số thập
phân N là (10n-1) – N. Trong ñó 10n là một số gồm số 1 và theo sau Ví dụ:
là n chữ số 0 (ví dụ 104 = 10000). Vậy (10n-1) là gồm n số 9 (ví dụ
104 -1 = 9999). Vậy bù 9 của N là một con số nhận ñược bằng cách Số: 01001110 00110101
lấy trừ 9 cho từng ký số của N. Số bù một của nó là: 10110001 11001010
Ví dụ: Cộng thêm 1 +1 +1
Bù hai của nó là: 10110010 11001011
Bù 9 của 43520 là 99999 – 43520 = 56479
Số bù r của một số:
Quy tắc chung tìm bù hai của một số:
Số bù r của một số ñược tính bằng bù r-1 cộng với 1. Như
vậy bù 10 của 43520 là 56478 + 1 = 56480. Từ ñây ta có thể tính
- Muốn tìm bù 2 của một số ta ñi từ bit có trọng số nhỏ
nhanh bù 10 theo qui tắc:
nhất ngược lên.
- Giữ nguyên các ký số 0 bên phải cho ñến khi gặp ký số - Khi nào gặp ñược bit 1 ñầu tiên thì giữ nguyên các số 0
khác 0 bên phải số 1 ñó và cả số 1 ñó nữa, còn tất cả các bít
- Lấy 10 trừ ñi ký số ñầu tiên khác 0 ñó bên trái số 1 ñó thì ñảo lại.
Ví dụ:
- Lấy 9 trừ ñi các số còn lại
Ví dụ: Bù 10 của 347200 là 652800 Số: 01100100 10010010 1101000 01100111
Số bù 2 là: 10011100 01101110 0011000 10011001
Chúng ta sẽ chủ yếu làm việc với hệ nhị phân, do máy tính
làm việc với hệ này. Trong hệ nhị phân sẽ có bù 1 và bù 2 mà ta sẽ Sau khi ta ñã biết về số bù 1 và bù 2 của một số nhị phân, ta
xem xét sau ñây. xem cách biểu diễn một số nguyên có dấu theo hai cách này.
 Số nguyên có dấu ñược biểu diễn ở dạng bù 1 là:
89 90
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

o ðối với số dương thì biểu diễn giống dấu và trị tuyệt 3.4.6. Phép cộng trừ nhị phân dùng bù 1
ñối
o ðối với số âm thì ñược biểu diễn dưới dạng bit dấu Số có dấu ñược biểu diễn bằng bù 1 theo qui tắc sau:
và giá trị của số ñó ở dạng bù 1. - Bít lớn nhất (MSB) là bít dấu, trong ñó 0 là số dương và 1 là số
âm
Ví dụ: Dùng 8 bit biểu diễn số +25 và -25 dưới dạng bù 1. - Các bít còn lại biểu diễn trị thực của số dương hoặc trị bù 1 của số
Ta biết 2510 = 110012. Dùng 8 bit ñể biểu diễn số, như vậy 1
âm.
bit biểu diễn dấu, còn 7 bits biểu diễn giá trị của số ñó, nếu là số
Ví dụ: Dùng 6 bit gồm cả bít dấu ñể biểu diễn số
âm thì lấy bù 1 các bit này.
Vậy +25 = 0 0011001 17 = 010001 26 = 011010
Bit dấu
-17 = 101110 -26 = 100101
Vậy -25 = 1 1100110
Thực hiện phép cộng giống như cộng các số nhị phân không
Bit dấu dấu, cộng cả bit dấu. Cần lưu ý một ñiểm nhỏ là cộng số nhớ của
Ta cũng có thể hiểu là số âm ñược biểu diễn bằng cách lấy bit lớn nhất vào bit cuối cùng (LSB).
bù 1 của số dương kể cả bit dấu.
Ví dụ:
13 001101 -13 110010
 Số nguyên có dấu ñược biểu diễn ở dạng bù 2 là:
+ + + +
o ðối với số dương thì biểu diễn giống dấu và trị tuyệt 11 001011 -11 110100
ñối ____ ______ ____ ______
o ðối với số âm thì ñược biểu diễn dưới dạng bit dấu 24 011000 -24 100110
và giá trị của số ñó ở dạng bù 2. + 1
Ví dụ: Dùng 8 bit biểu diễn số +25 và -25 dưới dạng bù 2. ______
Ta biết 2510 = 110012. Dùng 8 bit ñể biểu diễn số, như vậy 1 100111
bit biểu diễn dấu, còn 7 bits biểu diễn giá trị của số ñó, nếu là số Trong kết quả nếu bit dấu là 0 thì dãy bit sau bit dấu là giá
âm thì lấy bù 2 các bit này. trị kết quả, còn nếu bit dấu là âm thì dãy bit sau bit dấu mới là kết
Vậy +25 = 0 0011001 quả ở dạng bù một. Muốn biết giá trị thực của kết quả ta phải lấy
Bit dấu bù 1 của kết quả một lần nữa. Như trong ví dụ trên kết quả của
Vậy -25 = 1 1100111 phép cộng thứ nhất là 011000 có bit dấu là 0, vậy giá trị thực của
Bit dấu kết quả là +11000 = +24. Còn phép cộng thứ hai có kết quả là
100111 có bit dấu là 1, vậy giá trị thực của kết quả là –(bù 1 của
 Chú ý: Số dương biểu diễn ở cả 3 cách là như nhau, chỉ 00111) = -11000 = -24.
khác nhau khi ñó là số âm

91 92
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

3.4.7.Phép cộng trừ nhị phân dùng bù 2 hiện: thành


-0101 +1011 (Số bù 2
Số có dấu ñược biểu diễn bằng bù 2 theo qui tắc sau: của 0101)
- Bít lớn nhất (MSB) là bít dấu, trong ñó 0 là số dương và 1 là số 10010 Suy ra kết
âm quả là 0010
- Các bít còn lại biểu diễn trị thực của số dương hoặc trị bù 2 của số
Ví dụ 3: Thực hiện phép tính: 0101 – 0111
âm.
Thực hiện phép cộng giống như cộng các số nhị phân không Ta thực hiện: 0101(5) Chuyển 0101
dấu, cộng cả bit dấu. Cần lưu ý loại bỏ bit nhớ cuối cùng trong kết thành
quả. -0111(-7) +1001 (Số bù 2
Ví dụ: của 0111)
-12 110100 1110
+ -9 110111
___ ______ 3.5. Số quá n (excess-n)
-21 1 101011
Số quá n hay còn gọi là số thừa n của một số N có ñược
Kết quả có bit dấu bằng 1, vậy kết quả là số âm và dãy bit mới chỉ
bằng cách “cộng thêm” số N với số quá n, số n ñược chọn sao cho
là bù 2 của kết quả. Muốn có kết quả thật ta lấy Bù 2 một lần nữa.
tổng của n và một số âm bất kỳ luôn luôn dương.
Trong ví dụ trên kết quả không tính ñến bit nhớ (bỏ bit nhớ) là
101011 có bit dấu bằng 1 là một số âm, tức là kết quả mới biểu
diễn ở dạng bù 2. Muốn biết giá trị thật của kết quả ta phải lấy bù 2 Quy tắc chung:
một lần nữa. Tức là 101011 = - (bù 2 của 01011) = - (10101) = -21.
Biểu diễn quá n của N = biểu diễn nguyên dương của (N + n)
ðối với phép trừ ta thực hiện thông qua phép cộng.
-A = bù 2 của A
A – B = A + (-B) = A + (bù 2 của B)

Ví dụ 1: 13 – 6 = 13 + (-6)
6 = 00000110
-6 = 11111010
13 = 00001101
= 1 00000111 (7)
Ví dụ:
Biểu diễn (quá 127) của 7 là:
Ví dụ 2: Thực hiện phép tính: 0111 – 0101
127+7 = 134 = 100001102
Ta thực 0111 chuyển 0111
93 94
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

Cách biểu diễn số nguyên có dấu bằng số bù 2 ñược dùng  ðối với các hệ khác thì biểu diễn chấm ñộng ñược gọi là chuẩn
rộng rãi cho các phép tính số nguyên. Nó có lợi là không cần thuật hóa khi phần ñịnh trị chỉ có duy nhất một chữ số bên trái dấu
toán ñặc biệt nào cho các phép tính cộng và tính trừ, và giúp phát chấm thập phân và chữ số ñó khác không → một số chỉ có duy
hiện dễ dàng các trường hợp bị tràn. nhất một biểu diễn chấm ñộng ñược chuẩn hóa.
Các cách biểu diễn bằng "dấu , trị tuyệt ñối" hoặc bằng "số Ví dụ:
bù 1" dẫn ñến việc dùng các thuật toán phức tạp và bất lợi vì luôn 2.006 × 103 (chuẩn)
có hai cách biểu diễn của số không. 20.06 × 102 (không)
Cách biểu diễn bằng "dấu , trị tuyệt ñối" ñược dùng cho
0.2006 × 104 (không)
phép nhân của số có dấu chấm ñộng.
Cách biểu diễn bằng số quá n ñược dùng cho số mũ của các Các thành phần của số chấm ñộng bao gồm: phần dấu, phần
số có dấu chấm ñộng. Cách này làm cho việc so sánh các số mũ có mũ và phần ñịnh trị. Như vậy, cách này cho phép biểu diễn gần
dấu khác nhau trở thành việc so sánh các số nguyên dương. ñúng các số thực, tất cả các số ñều có cùng cách biểu diễn.
Có nhiều cách biểu diễn dấu chấm ñộng, trong ñó cách biểu
3.6. Cách biểu diễn số với dấu chấm ñộng diễn theo chuẩn IEEE 754 ñược dùng rộng rãi trong khoa học máy
ðể biểu diễn các con số rất lớn hoặc rất bé, người ta người tính hiện nay. Trong cách này một số ñược biểu diễn dưới dạng :
ta dùng một cách biểu diễn số gọi là số chấm ñộng (floating point
number). Trước khi ñi vào cách biểu diễn số với dấu chấm ñộng, F = (-1)S * M * RE
chúng ta xét ñến cách biểu diễn một số dưới dạng dấu chấm xác
31 30 23 22 0
ñịnh.
Ví dụ: S E M
- Trong hệ thập phân, số 25410 có thể biểu diễn dưới các Hình 3.2. Biểu diễn số có dấu chấm ñộng chính xác ñơn với 32 bit
dạng sau:
Trong ñó: S: dấu (Sign bit), M: ñịnh trị, R: cơ số, E: mũ
254 * 100; 25.4 * 101; 2.54 * 102; 0.254 * 103; 0.0254 * 104; … (Exponent)
- Trong hệ nhị phân, số (0.00011)2 (tương ñương với số – Dấu: 1 bit (0 – dương, 1 – âm)
0.0937510) có thể biểu diễn dưới các dạng : – Mũ: 8 bit (từ bit 23 ñến bit 30) là một số quá 127 (sẽ có trị
từ -127 ñến 128, tức là từ 00000000 ñến 11111111)
0.00011 * 20 ; 0.0011 * 2-1; 0.011 * 2-2; 0.11 * 2-3; 1.1 * 2-4; … – Không biểu diễn cơ số (R) vì luôn bằng 2
Các cách biểu diễn này gây khó khăn trong một số phép so – Phần ñịnh trị M 23 bit (từ bit 0 ñến bit 22) chỉ biểu diễn
sánh các số. ðể dễ dàng trong các phép tính, các số ñược chuẩn hoá phần lẻ (bên phải dấu chấm số nhị phân) vì chữ số bên trái
về một dạng biểu diễn: dấu chấm luôn là 1.

± 1. fff...f x 2± E Ví dụ:
ñối với hệ nhị phân, trong ñó: f là phần lẻ; E là phần mũ. a) 200610 = (-1)0 * 2.006 * 103
b) 209.812510 = 11010001.11012
95 96
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

= 1.10100011101 * 27 1 0001
Biểu diễn (quá 127) của 7 là: 2 0010
127+7 = 134 = 100001102 3 0011
Kết quả: 0 10000110 1010001110100000000000 4 0100
0 10000110 1010001110100000000000 5 0101
6 0110
Các phép tính với số chấm ñộng phức tạp hơn nhiều là với 7 0111
số chấm tĩnh, thực hiện lâu hơn và phần cứng cho nó cũng phức tạp 8 1000
hơn. Máy tính không có phần cứng tính toán số chấm ñộng, nhưng 9 1001
có các tập trình con giúp giải các bà toán với số chấm ñộng. Bảng 3.6. Số thập phân mã BCD

3.7. Biểu diễn số BCD Biểu diễn số dạng BCD sẽ tốn kém hơn nhiều biểu diễn
Con người thường quen với hệ thập phân, trong khi máy dạng nhị phân vì mỗi số BCD cần tới 4 bit. Ví dụ 3257 có dạng
tính lại chỉ thích hợp với hệ nhị phân. Do ñó khi nhập xuất dữ liệu BCD là 0011 0010 0101 0111, tức là phải dùng 16 bit, trong khi ở
thường là nhập xuất theo dạng thập phân. Nếu việc nhập xuất số hệ nhị phân chỉ cần 12 bit (110010111001). Con số càng lớn thì sự
thập phân không nhiều thì có thể chuyển số hệ 10 khi nhập sang hệ chênh lệnh của nó càng nhiều, trong khi bộ nhớ thì có hạn, cho nên
2, tính toán xong theo hệ 2 rồi lại chuyển ngược lại sang hệ 10 ñây là một nhược ñiểm rất lớn của dạng số BCD.
trước khi xuất ra ngoài. Nếu nhập xuất nhiều thì việc chuyển ñổi sẽ ðể thiết kế mạch tính toán thập phân cũng ñòi hỏi ñộ phức
làm mất nhiều thời gian xử lý. Mặt khác một vài ứng dụng, ñặc biệt tạp nhiều hơn, tuy nhiên nó có thuận lợi là việc tính toán ñều bằng
ứng dụng quản lý, bắt buộc các phép tính thập phân phải chính xác, thập phân và cho kết quả chính xác hơn.
không làm tròn số. Với một số bit cố ñịnh, ta không thể ñổi một
Một số ứng dụng như xử lý dữ liệu thương mại - kinh tế
cách chính xác số nhị phân thành số thập phân và ngược lại.
thường tính toán ít hơn so với khối dữ liệu nhập xuất. Vì vậy mà
Vì vậy, khi cần phải dùng số thập phân, ta có thể dùng một một số máy và các máy tính tay ñều tính toán trực tiếp trên số thập
cách khác, ñó là cách biểu diễn số thập phân mã bằng nhị phân phân. Một số máy khác lại có khả năng tính toán trên cả thập phân
(BCD: Binary Coded Decimal). Theo ñó mỗi số thập phân nhập và nhị phân.
vào máy sẽ ñược mã hóa theo dạng BCD bằng cách chuyển mỗi ký
ðiểm khác biệt rõ nhất với các hệ khác khi tính toán là khi
số hệ 10 thành 4 bit số nhị phân như trong bảng 3.6. Sau ñó việc
kết quả cộng nếu các ký số vượt quá kết quả cho phép trong
tính toán sẽ thực hiện trực tiếp trên mã BCD . Tính toán xong thì
khoảng từ 0000 ñến 1001 hoặc có nhớ khi cộng thì phải sửa sai
lại chuyển ra ngoài ttheo dạng thập phân. Khi ñó, nến việc tính toán
bằng cách cộng thêm 0110 vào ký số bị sai.
là không nhiều, hoặc việc tính toán là ñơn giản thì số BCD sẽ giúp
cải thiện ñáng kể tốc ñộ xử lý. Hai ví dụ sau ñây sẽ cho thấy ñiều này.
Ví dụ 1:
Số hệ 10 Số BCD
0 0000
97 98
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

Từ các ví dụ trên ta thấy nhiều khi các phép tính cứ phải


27 0010 0111 sửa sai như vậy thì sẽ dẫn ñến tốc ñộ tính toán cũng bị giảm bớt
+ 36 0011 0110
63 Ký số vượt quá => kết quả sai 3.8. Biểu diễn các ký tự
0101 1101
Ngoài việc biểu diễn số, chúng ta cũng cần ñến biểu diễn
0000 0110 Sửa sai kết quả chữ và một số ký tự khác. Tuỳ theo các hệ thống khác nhau, có thể
0110 0011 Kết quả = 63 sử dụng các bảng mã khác nhau:
– ASCII (7 bit) (American Standard Codes for Information
Trong ví dụ này ta thấy khi cộng hai số 6 với 7 ñã cho ta kết Interchange) ñể biểu diễn 128 ký tự gọi là mã ASCII-7
quả là 13 (1101). Kết quả này ñã vượt qua con số lớn nhất – ASCII mở rộng (8 bit) ñể biểu diễn 256 ký tự
trang hệ BCD là 1001 (9), do ñó ñể sửa lỗi ta phải cộng  00 – 1F: ký tự ñiều khiển
thêm một giá trị 0110 vào ñúng vị trí số cộng sai ñó và nếu  20 – 7F: ký tự in ñược
có số nhớ thì số nhớ ñó sẽ ñược cộng sang số bên cạnh trái.  80 – FF: ký tự mở rộng (ký hiệu tiền tệ, vẽ khung, …)
– Unicode: Ngày nay do việc sử dụng rộng rãi mạng toàn cầu
Ví dụ 2: Internet với rất nhiều ngôn ngữ khác nhau, rất nhiều ký tự
khác nhau nên người ta ñã chuyển sang dùng bộ mã
28 0010 1000 Unicode (16 bit) (UTF-8) có thể biẻu diễn ñược tới 65.536
+ 59 0101 1001 ký tự và như vậy cho phép biểu diễn hầu hết các ngôn ngữ
87 Có nhớ 1 => kết quả sai trên thế giới.
1000 0001

0000 0110 Sửa sai kết quả


1000 0111 Kết quả = 87
Tương tự khi trừ số BCD, nếu có mượn khi trừ thì cũng phải sửa
sai bằng cách trừ bớt 0110 vào ký số bị sai như trong ví dụ sau:

61 0110 0001
- 38 0011 1000
23 0010 1001 Ký số bên phải mượn 1 khi trừ

0000 0110 Sửa sai kết quả


0010 0011 Kết quả = 23

99 100
Simpo
ChươngPDF Merge
III: Biểu and
diễn dữ liệuSplit Unregistered Version - http://www.simpopdf.com Chương III: Biểu diễn dữ liệu

CÂU HỎI VÀ BÀI TẬP CHƯƠNG III 12. Tìm bù 1 và bù 2 các số nhị phân sau : 1100110101100,
10110010111011
13. ðổi các số sau sang BCD
1. Khái niệm thông tin trong máy tính ñược hiểu như thế nào? a. 47810
Lượng thông tin là gì? b. 3728
2. Sự hiểu biết về một trạng thái trong 4096 trạng thái có thể 14. Biểu diễn số thực -206,3410 dưới dạng số có dấu chấm ñộng
có ứng với lượng thông tin là bao nhiêu? chính xác ñơn 32 bit.
3. Số nhị phân 8 bit (11001100)2, số này tương ứng với số 15. Biểu diễn số thực (32.75)10 dưới dạng số có dấu chấm ñộng
nguyên thập phân có dấu là bao nhiêu nếu số ñang ñược chính xác ñơn 32 bit.
biểu diễn trong cách biểu diễn: 16. Tìm biểu diễn chấm ñộng (1 bit dấu, 8 bit mũ quá 127, 23
a. Dấu và trị tuyệt ñối. bit ñịnh trị) của các số sau.
b. Số bù 1. a) 1025.29687510
c. Số bù 2.
4. ðổi các số sau ñây: b) 0.06640625 10
a. (011011)2 ra số thập phân. 17. Thực hiện các phép toán sau trong hệ bù 1. Dùng 8 bit (gồm
b. (-2005)10 ra số nhị phân 16 bits. cả bit dấu) cho mỗi số.
c. (55.875)10 ra số nhị phân. a) Lấy +47 cộng -19
5. ðổi các số sau sang hệ thập phân : 123214, 232457, 19411 b) Lấy -15 trừ ñi +36
6. ðổi các số thập phân sau 18. Thực hiện các phép toán sau trong hệ bù 2. Dùng 8 bit (gồm
a. 56354 sang nhị phân cả bit dấu) cho mỗi số.
b. 89353 sang bát phân a) Cộng +19 vào -24
c. 56253 sang thập lục phân b) Cộng -48 vào -80
7. ðổi số thập lục E4B3A5 sang nhị phân và bát phân 19. Thực hiện hai phép toán sau trên hệ nhị phân bằng cách lấy
8. ðổi các số : bù 2 các số âm, các số ñược biểu diễn bằng 6 bit.
a. 2417 sang hệ 4, hệ 8 và hệ 12
b. 2BC416 sang hệ 8, hệ 13 a) 25-11
9. Cơ số của các số là bao nhiêu nếu nghiệm phương trình bậc b) 23-30
2:

x2 - 10x + 31 = 0 là x = 5 và x = 8?

10. Tìm bù 9 các số thập phân sau : 3425890, 4195618


11. Tìm bù 10 các số thập phân sau : 14394500, 24519004,
34040080

101 102
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

2
Chương IV: Mạch Logic số +Vcc

2
Vout

12
4.1. Cổng và ñại số Boolean Collector
1
Vout V1

12
4.1.1. Cổng (Gate)

32
Cổng (hay cổng luận lý) – cơ sở phần cứng, từ ñó chế tạo Vin 1

ra mọi máy tính số. Cổng có một hoặc nhiều lối vào, nhưng chỉ có Emiter V2 1

1 lối ra. Các giá trị vào hoặc ra chỉ có thể nhận 1 trong 2 giá trị là 1
Base

3
hoặc 0. Gọi là cổng luận lý vì nó cho kết quả lý luận của ñại số GND

3
logic như nếu A ñúng và B ñúng thì C ñúng (cổng AND: C = A
U5
AND B) a) Mạch NOT GND

Chúng ta sẽ xem xét những ý tưởng cơ bản chế tạo các cổng b) Mạch NAND
này ñể hiểu rõ bản chất của mạch số. Mọi logic số hiện ñại rút cuộc +Vcc
cũng dựa trên việc chế tạo transistor vận hành như một công tắc nhị

2
phân cực nhanh. Hình 4.1(a) minh họa (mạch) transistor lưỡng cực
ñặt vào mạch ñơn giản. Transistor này có 3 nối kết với thế giới bên
3
ngoài: cực góp (collector), cực nền (base) và cực phát (emitter). Vout

1
Khi ñiện áp vào, Vin thấp hơn giá trị tới hạn nào ñó (0.8V),

3
transistor sẽ tắt và ñóng vai trò như ñiện trở vô hạn, khiến ñầu ra 2 2
của mạch, Vout nhận giá trị gần với Vcc (ñiện áp ngoài thường là +3 V1 V2
V). Lúc Vin vượt quá giá trị tới hạn, transistor bật và ñóng vai trò

1
như dây dẫn, kéo Vout xuống tới ñất (theo qui ước là 0 V).
Chúng ta thấy rằng khi Vin thấp thì Vout cao, và ngược lại.
Do ñó, mạch này là bộ nghịch ñảo (converter hoặc NOT), chuyển c) Mạch NOR
logic 0 sang logic 1 , và logic 1 sang logic 0, hay tương ứng với
một cổng gọi là cổng NOT. Cần ñiện trỏ ñể giới hạn dòng ñiện do Hình 4.1. Cấu tạo cổng NOT, NAND và NOR
transistor kéo qua. Thời gian cần thiết ñể chuyến từ trạng thái này Trong Hình 4.1 (b), hai transistor dược mắc nối tiếp. Nếu
sang trạng thái khác thường mất vài nano giây tùy theo loại V1 và V2 ñều cao, cả hai transistor sẽ dẫn ñiện và Vout sẽ bị kéo
transistor. xuống thấp. Giả sử một trong hai ñầu vào thấp, transistor tương
ứng sẽ tắt, và ñầu ra sẽ cao. Nói tóm lại Vout sẽ thấp khi và chỉ khi
V1 và V2 ñều cao. Mạch này là một cổng NAND. Trong Hình 4.1
(c) hai transistor ñược mắc song song, thay vì nối tiếp. Trong

103 104
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

trường hợp này, nếu một trong hai ñầu vào cao, transistor tương Tên Ký hiệu Hàm Bảng chân trị
ứng sẽ kéo ñầu ra xuống tới ñất. Còn như cả hai ñầu vào ñều thấp, cổng logic
ñầu ra sẽ vẫn cao. Mạch này tương ứng với cổng gọi là NOR.
A A B x
 Cổng là một mạch số gồm một hoặc nhiều tín hiệu nhập và AND x x = A.B
B hoặc x = 0 0 0
một tín hiệu xuất.
AB 0 1 0
Một mạch số sẽ ñược tạo ra từ tập hợp các cổng cơ bản. hoặc x = 1 0 0
Mỗi cổng cơ bản có ký hiệu riêng và hoạt ñộng của nó ñược mô tả A AND B 1 1 1
qua một bảng gọi là bảng chân trị (truth table).
Tên, ký hiệu, hàm logic biểu diễn và bảng chân trị của các
A
cổng cơ bản liệt kê trong bảng 4.1. OR x x=A+B A B x
B hoặc 0 0 0
Cổng AND có ít nhất 2 ñầu vào và 1 ñầu ra. ðầu ra chỉ bằng
1 khi và chỉ khi tất cả các ñầu vào bằng 1, các trường hợp khác ñầu x = A OR 0 1 1
ra sẽ có giá trị bằng 0. B 1 0 1
1 1 1
Cổng OR có ít nhất 2 ñầu vào và 1 ñầu ra. ðầu ra bằng 1
khi có một trong các ñầu vào bằng 1, các trường hợp khác ñầu ra sẽ
có giá trị bằng 0. NOT A x
A x x= A
Cổng NOT có một ñầu vào và 1 ñầu ra. ðầu ra luôn có giá hoặc 0 1
trị nghịch ñảo với ñầu vào. ðầu vào bằng 1 thì ñầu ra bằng 0 và x = NOT 1 0
ngược lại. A
Cổng XOR có ký hiệu như cổng OR nhưng có thêm một
A
vòng cung ở ñầu vào. ðầu ra là 1 nếu số ñầu vào có trị bằng 1 là XOR x x = A⊕ B A B x
một số lẻ, các trường hợp khác bằng 0. Trong trường hợp có 2 ñầu B
0 0 0
vào thì ñầu ra bằng 1 khi một trong 2 ñầu vào bằng 1, các trường 0 1 1
hợp khác bằng 0.
1 0 1
Các cổng NAND, NOR, NXOR là bù của các cổng tương 1 1 0
ứng AND, OR, XOR và ñược biểu diễn thêm một vòng tròn nhỏ ở Bảng 4.1. Các cổng cơ bản
ñầu ra.

105 106
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

ðối với các cổng có ñầu ra nghịch ñảo (invert) ta có bảng 4.2. 4.1.2.ðại số Boolean (Boolean algebra)

Tên Ký hiệu Hàm Bảng chân trị ðại số Boolean (hay ñại số Logic) là môn toán học nghiên
cổng logic cứu các mệnh ñề luận lý và là công cụ toán học ñể phân tích và
U24 tổng hợp các thiết bị mạch số. Các biến số trong ñại số Boolean là
NAND A A B x biến Boolean và là một ñại lượng mà tại các thời ñiểm khác nhau
x x = A.B
B
hoặc 0 0 1 nó chỉ có thể bằng 0 hoặc 1. Biến Boolean thường ñược sử dụng ñể
NAND2
x = NOT 0 1 1 biểu diễn mức ñiện thế có trên dây hay tại các ñầu vào/ra
1 0 1 (input/ouput - IO) của một mạch số.
(A AND
B) 1 1 0
Như vậy, biến Boolean là các biến biểu thị trạng thái của
U25 một giá trị ñiện thế và ta gọi là mức logic. Trong logic số thì nhiều
NOR A A B x thuật ngữ khác nhau ñược dùng ñể biểu thị hai trạng thái nhị phân
x x = A+ B
B 0 0 1 0, 1 như trong bảng 4.3.
NOR2 Logic 0 Logic 1
0 1 0 Sai ðúng
1 0 0 Tắt Mở
1 1 0 Thấp Cao
Không Có
Công tắc mở Công tắc ñóng
A Bảng 4.3. Các thuật ngữ biểu diễn logic “0” và “1”
NXOR x A B x
B x = A⊕ B
0 0 1
Như ñã nói ở trên, ñại số Boolean là một công cụ ñể phân
0 1 0 tích và tổng hợp các thiết bị mạch số hay nói cách khác là ñể biểu
1 0 0 diễn các mối quan hệ giữa ñầu vào và ra của mạch số. Các giá trị
1 1 1 của biến logic ñầu vào sẽ quyết ñịnh giá trị của ñầu ra tại một thời
ñiểm nhất ñịnh. Chúng ta sẽ dùng các ký hiệu bằng chữ ñể biểu thị
các giá trị logic. Ví dụ, x là các giá trị ñầu vào hoặc ra của mạch số,
Bảng 4.2. Các cổng cơ bản có ñầu ra nghịch ñảo và tại thời ñiểm bất kỳ có thể x = 0 hoặc x = 1.
Ba phép tính cơ bản của ñại số Boolean (goi là các phép toán
logic) là:
- Phép Phủ ñịnh Logic: NOT
Ví dụ:
+ phủ ñịnh của x: NOT x hoặc x

107 108
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

+ y bằng phủ ñịnh của A: y = NOT A hoặc y = A


- Phép cộng logic: OR  Bảng chân trị (truth table) là phương tiện mô tả ñầu ra của
Ví dụ: x cộng y ta ký kiệu là x OR y hoặc x + y mạch logic phụ thuộc vào các mức ñầu vào của mạch. Hay nói
- Phép nhân logic: AND cách khác bảng chân trị dùng ñể biểu diễn mối quan hệ giữa
Ví dụ: A nhân B ta ký hiệu A AND B hoặc A.B hoặc hàm Boolean và các biến logic của hàm ñó.
AB. Ví dụ: bảng chân trị của hàm y = A OR B = A + B

 Các quy tắc Logic: A B y


- Quy tắc về phép cộng: 0 0 0
0 1 1
X+0=X X+X=X 1 0 1
X+1=1 X + X =1 1 1 1
Bảng liệt kê mọi tổ hợp có thể có của các biến logic tượng
- Quy tắc về phép nhân logic: trưng cho ñầu vào mạch số A và B với các giá trị tương ứng ở ñầu
X.0=0 X.X=X ra y.
X.1=X X .X = 0 Mỗi cổng cơ bản sẽ có một phép toán Boolean cơ bản tương ứng
a) Phép toán OR
- Quy tắc về phủ ñịnh:
Hàm x ñược tổ hợp từ 2 biến logic A và B bằng phép toán
X=X OR là: x = A + B hoặc x=A OR B. Ở ñây dấu “+” không biểu thị
Các mạch số ñược thiết kế từ những nguyên tố nhỏ nhất gọi cho phép cộng thông thường, mà nó thay cho phép toán OR. Biểu
là cổng logic (gate). Các cổng này ñược cấu thành từ diod, thức x = A + B ñược ñọc là “ x bằng A OR B”, nhưng ñể ñơn giản
transistor và ñiện trở, ñể rồi ñầu ra của nó sẽ có giá trị như các phép chúng ta hay dùng là “x bằng A cộng B”. ðiều quan trọng ở ñây là
toán logic cơ bản (NOT, OR, AND). Chúng ta sẽ dùng ñại số chúng ta phải nhớ ñây là phép toán OR chứ không phải phép toán
Boolean ñể mô tả và phân tích các cổng logic cơ bản này, sau ñó sẽ cộng thông thường. (phép toán cộng thông thường 1+1=2, trong khi
mở rộng ra phân tích và thiết kế cách nối các công lại với nhau ñể phép toán OR là 1 + 1=1).
tạo thành các mạch số cần thiết. Tương tự với cổng OR, giá trị của hàm x ñược xác ñịnh qua
bảng chân trị sau:
Hàm Logic:
Cũng giống như ñại số thường, ñại số boolean cũng có hàm. A B x=A+B
Hàm Boolean là hàm của các biến Logic và bản thân cũng chỉ nhận 0 0 0 A
x
các giá trị 0 hoặc 1. Thường chúng ta dùng hàm boolean ñể biểu 0 1 1 B
diễn ñầu ra của mạch số và các biến logic của hàm ñó ñể biểu diễn 1 0 1
Cổng OR 2 ñầu vào
các ñầu vào của mạch. 1 1 1

109 110
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

Nhìn vao bảng ta thấy x = 1 khi có một ñầu vào trở lên A
bằng 1. Trường hợp duy nhất có x = 0 là khi tất cả các ñầu vào ñều x
B
bằng 0.
Ví dụ phép toán OR cho 3 biến ñầu vào A, B và C:
x=A+B+C

A B C x=A+B+C
0 0 0 0 Hình 4.2. Cổng OR và sơ ñồ thời gian
0 0 1 1 2 Giải:
3 1
0 1 0 1 4 Chúng ta ñã biết là ñầu ra của cổng OR chỉ bằng 1 (hay ở
0 1 1 1 mức cao) khi có một trong các ñầu vào bằng 1, các trường hợp
1 0 0 1 khác ñều bằng 0 (hay ở mức thấp). Từ sơ ñồ thời gian của các ñầu
Cổng OR cho 3 ñầu vào vào ta thấy:
1 0 1 1
1 1 0 1 o cho ñến thời ñểm t=20ns cả A và B ñều bằng 0 => tín
1 1 1 1 hiệu ñầu ra x=0 trong ñoạn này.
o tại thời ñiểm t=20ns, A chuyển từ 0 lên 1=> ñầu ra x
cũng chuyển lên 1=> ñoạn từ t=20ns ñến t=40ns ñầu ra
x sẽ bằng 1.
 Tóm lai:
o tiếp từ t=40ns ñến t=80ns ñầu ra x cũng bằng 1 vì 1
- Phép toán OR cho kết quả là 1 khi một trong các ñầu vào trong 2 ñầu vào có trị bằng 1.
là 1 o lập luận tương tự như vậy ta có ñược biểu ñồ thời gian
- Phép toán OR cho kết quả là 0 khi tất cả các ñầu vào ñều cho tín hiệu ñầu ra phụ thuộc vào các tín hiệu ñầu vào
là 0 như hình 4.3:
- Với phép toán OR: 1+1=1, 1+1+1=1,…
- Cổng OR là mạch logic thực hiện phép toán OR trên các
ñầu vào logic của mạch.

Ví dụ: xác ñịnh ñầu ra x = A + B của cổng OR trong hình 4.2. Tín Hình 4.3. Kết quả ñầu ra
hiệu các ñầu vào A và B của cổng OR thay ñổi theo sơ ñồ thời gian
minh họa: b) Phép toán AND
Hàm AND ñược tổ hợp từ 2 biến logic A và B bằng phép
toán AND là: x = A.B hoặc x=AB hoặc x = A AND B. Tương tự với
cổng AND, giá trị của hàm x ñược xác ñịnh qua bảng chân trị sau:

111 112
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

- Cổng AND là mạch logic thực hiện phép toán AND trên ñầu
A B x=A.B vào là các biến của hàm AND
0 0 0 A
x Ví dụ:
0 1 0 B AND3

Xác ñịnh ñầu ra x từ cổng AND, nếu các tín hiệu ñầu vào
A

B
C 1

1 0 0 có dạng hình 4.4:


1 1 1

Chú ý rằng trong biêu3 thức x=A.B thì dấu nhân ở ñây
không phải phép toán nhân thông thường, mà là phép toán AND. Hình 4.4. Dạng tín hiệu ñầu vào
Nhưng trong trường hợp chỉ áp dụng cho các biến có giá trị là 0 Giải:
hoặn 1 thì phép toán AND lại tương tự như phép nhân bình thường ðây là một dạng khác của cách biểu diễn một hàm logic hay
(0.0=0, 0.1=0, 1.1=1). một cổng. Thay vì dùng bảng chân trị thì ở ñây ta dùng ñồ thị tín
Tương tự, ta cũng có phép toán AND cho 3 biến và cổng hiệu các ñầu vào và ra. Chúng ta biết rằng ñầu ra của cổng AND
AND cho 3 ñầu vào như sau: chỉ bằng 1 khi tất cả các ñầu vào ñều bằng 1. Như vậy ñoạn
060ns, ñầu ra x sẽ bằng 0 vì trong ñoạn này luôn có một trong 2
A B C f=A.B.C
tín hiệu ñầu vào A hoặc B bằng 0. ðoạn 60ns80ns, tín hiệu ñầu
0 0 0 0 AND3 ra x sẽ bằng 1 do cả 2 ñầu vào A và B ñều bằng 1. Tương tự ta co
0 0 1 0 A ñược tín hiệu ở ñầu ra như hình 4.5:
0 1 0 0 f
0 1 1 0 B
1 0 0 0 C3
1 0 1 0
1 1 0 0
1 1 1 1
Hình 4.5. Tín hiệu ñầu ra
 Tóm lai: c) Hàm NOT
- Phép toán AND ñược thực hiện như phép nhân thông thường f = A hay f = NOT A : Hàm f tương tự với cổng Inverter,
giữa các số 0 và 1 có giá trị ngược với biến logic A và ñược biểu diễn qua bảng chân
- ðầu ra của cổng AND hay giá trị hàm AND chỉ bằng 1 khi tất trị sau:
cả các ñầu vào ñều bằng 1 A f
- ðầu ra của cổng AND hay giá trị hàm AND bằng 0 khi có một
0 1
trong các ñầu vào ằng 0
1 0

113 114
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

d) Hàm XOR ñối ngẫu của nhau. Bằng cách hoán ñối AND và OR, cũng như 0 và
1 , có thế tạo dạng này bằng dạng kia. Thật dễ chứng minh tất cà
Hàm XOR cho 2 biến logic A và B là: f = A ⊕ B hoặc f =
ñịnh luật thông qua xây dựng bảng chân trị.
A XOR B. Tương tự với cổng XOR, giá trị của hàm f ñược xác
Tên Dạng AND Dạng OR
ñịnh qua bảng chân trị sau:
A B f ðịnh luật thống 1A = A 0+A=A
nhất
0 0 0
ðịnh luật không OA = O 1+ A = 1
0 1 1
ðịnh luật AA = A A+A=A
1 0 1 Idempotent
ðịnh luật nghịch A. A = 0 A+ A =1
1 1 0 ñảo
Ứng dụng của mạch XOR là ñể so sánh hai số. Nếu hai số ðịnh luật giao AB = BA A+B=B+A
bằng nhau thì giá trị ñầu ra của mạch là 1, ngược lại là 0. hoán
ðịnh luật kết hợp (AB)C = A(BC) (A+B)+C = A + (B+C)
Như vậy giữa mạch số và ñại số Boolean có một mối quan
hệ tương ứng qua lại với nhau giữa cổng và hàm Boolean. Nói cách ðịnh luật phân bố A + BC = (A + B)(A + C) A(B+C) = AB + AC
khác ta có thể biểu diễn mạch số bằng hàm Boolean và ngược lại.
ðịnh luật hấp thụ A(A + B) = A A + AB = A
Nhận xét 1: ðịnh luật De AB = A + B A + B = AB
Morgan
- Hàm của n biến logic sẽ có 2n tổ hợp biến, với mỗi tổ hợp biến
Bảng 4.4. Các ñịnh luật ñại số Boolean cơ bản
hàm có thể lấy một trong 2 giá trị là 0 hoặc là 1. Như vậy ñể
biểu diễn 1 hàm có 2 biến, ta cần 1 bảng chân trị có 4 dòng hay
ðinh luật De Morgan ñưa ra ký pháp thay thế và rất quan trọng
4 tổ hợp biến (không tính dòng tiêu ñề), hàm cho 3 biến sẽ cần
ñối với các cổng NOR và NAND. Nó cho phép ta thay thế từ cổng
bảng chân trị có 23 =8 dòng,…
OR sang AND và ngược lại. Hình 4.6(a) cho ta thấy cách chuyển từ
- Mục ñích của ñại số Boolean là cung cấp một công cụ ñể biểu
diễn mạch số, giúp cho việc thiết kế mạch số ñược dẽ dàng hơn. cổng AND sang cổng OR nhờ ñịnh lý DeMorgan AB = A + B . Ta
ðặc biệt trong việc ñơn giản hàm cũng như tìm ra mạch số có cổng NAND biểu diễn hàm x = A.B sẽ tương ñương với cổng
tương ñương nhưng có kích thứơc nhỏ gọn và dùng ít cổng hơn. OR với ñầu vào ñược nghịch ñảo biểu diễn cho hàm x = A + B ,
hay nói cách khác cổng NAND ñược biểu diễn bằng 2 cách. Tương
ðể tận dụng các phương pháp ñơn giản, chúng ta cần một tự như vậy ta cũng có cổng NOR tương ñương như trong hình
số ñồng nhất thức trong ñại số Boolean. Bảng 4.3 liệt kê một số 4.6(b) nhờ vào ñịnh lý DeMorgan cho dạng OR A + B = AB .
ñồng nhất thức chính. ðiểm ñáng lưu ý là mỗi ñịnh luật có hai dạng
115 116
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

hoặc
A A F = AB + BC => F = AB + BC = AB.BC = ( A + B ).( B + C )
x x
B B
ðể thấy ñược việc dùng ñại số Boolean ñể ñơn giản các
x = A.B (AND-invert) mạch số thế nào, chúng ta xem xét ví dụ mạch số như hình 4.7(a)
x = A + B (invert-OR)
AND3
a) AB = A + B A
B
C 1

A A AND3 OR3
x x NOT F
B B 2 4
8

x = A + B (OR-invert) x = A.B (invert-AND) NOT AND2

9
b) A + B = A.B 3
Hình 4.7(a) F = ABC + ABC + A C
Hình 4.6. Các cổng tương ñương
ðây là một mạch số biểu diễn hàm F = ABC + ABC + A C .
Tuy nhiên hàm này lại có thể ñơn giản dùng ñại số Boolean như
Dạng tổng quát của ñịnh lý DeMorgan có dạng sau:
sau:
x1 + x 2 + ...x n = x1 .x 2 ...x n F = ABC + ABC + A C = AB (C + C ) + A C = AB + A C
Sơ ñồ mạch của hàm F ñã ñược ñơn giản như ở hình 4.7(b).
x1 x 2 ...x n = x1 + x 2 + ... + x n AND2
A
Từ ñịnh lý DeMorgan ta rút ra qui tắc lấy bù của một biểu B
10 OR2
thức ñại số. Qui tắc này cho phép ta thay ñổi các cổng OR thành
các cổng AND và ngược lại. Ví dụ, hàm F=AB+BC là dạng tổng F
các tích, hay ta phải dùng 2 cổng AND cho AB và BC, nhưng ta có NOT AND2 14

thể thay thế bằng cổng OR với các ñầu vào nghịch ñảo bằng cách
C 12
sau: 11

F = AB + BC => F = AB + BC = AB.BC = ( A + B ).( B + C ) Hình 4.7(b) F = AB + A C

117 118
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

Sơ ñồ mạch:
Ta thấy mạch ñã ñơn giản chỉ cần dùng 4 cổng (2 cổng U26

AND, 1 cổng OR, 1 cổng NOT), trong khi mạch ban ñầu phải cần A
B U34
tới 6 cổng và một số cổng lại có nhiều ñầu vào hơn. Như vậy rõ f
AND2
ràng ñại số Boolean ñã giúp ta ñơn giản mạch số lại gọn hơn, hiệu
U26
quả hơn. U16 OR2
C
Một số ví dụ thiết kế và ñơn giản mạch: AND2
INV

Ví dụ 1:
Dùng bảng chân trị ñể biểu diễn hàm f = (A AND B) OR (C Ví dụ 2:
AND NOT B), vẽ sơ ñồ mạch cho hàm f. Dùng Boolean Algebra ñơn giản các biểu thức sau:
a) y = A + AB
Giải: ta thấy hàm f có các biến ñầu vào là A,B và C. Do ñó b) y = A B D + A B D
ta cần bảng chân trị có 23=8 dòng cho 8 tổ hợp biến mà chúng ta
c) x = ( A + B )( A + B )
nên sắp sếp theo thứ tự từ nhỏ ñến lớn (từ 000 ñến 111). Vì hàm f
có nhiều thành phần, nên ñể ñơn giản ta tách chúng ra thanh từng d) z = ( BC + A D)( AB + CD )
phần, rồi sau ñó mới tổ hợp lại như bảng sau: Giải:
a) y = A + AB = A(1+B) = A.1 = A
A B C A AND B NOT B C AND NOT B f b) y = AB D + AB D = AB ( D + D ) = AB .1 = AB
0 0 0 0 1 0 0 c)
0 0 1 0 1 1 1
0 1 0 0 0 0 0 x = (A + B )( A + B ) = A. A + A.B + B. A + B.B
0 1 1 0 0 0 0 = 0 + A.B + B. A + B = B ( A + A + 1) = B
1 0 0 0 1 0 0
1 0 1 0 1 1 1 d)
1 1 0 1 0 0 1 z = ( BC + A D)( AB + CD )
1 1 1 1 0 0 1
= BC AB + BC CD + A DAB + A DCD
=0+0+0+0=0

119 120
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

Ví dụ 3: U30

ðể làm một bộ báo hiệu cho lái xe biết một số ñiều kiện, A
người ta thiết kế 1 mạch báo ñộng như sau: B U38
AND2 2
1
f
U29 3
Tín hiệu từ :
Cửa lái C
Báo ñộng
Cửa lái: 1- cửa mở, U18
OR2

Bộ phận ñánh lửa Mạch 0 – cửa ñóng;


AND2
Logic Bộ phận ñánh lửa:
ðèn pha 1 – bật, 0 – tắt; INV
ðèn pha: 1 – bật, 0 Bảng chân trị
– tắt. A B C AB B CB f
0 0 0 0 1 0 0
0 0 1 0 1 1 1
Hãy thiết kế mạch logic với 3 ñầu vào (cửa, bộ phận ñánh
0 1 0 0 0 0 0
lửa, ñèn pha),1 ñầu ra (báo ñộng), sao cho bộ phận báo ñộng sẽ
hoạt ñộng (báo ñộng = 1) khi tồn tại một trong 2 trạng thái sau: 0 1 1 0 0 0 0
- ðèn pha sáng trong lúc bộ phận ñánh lửa tắt 1 0 0 0 1 0 0
- Cửa mở trong lúc bộ phận ñánh lửa hoạt ñộng 1 0 1 0 1 1 1
Lập bảng chân trị của hàm ra. 1 1 0 1 0 0 1
1 1 1 1 0 0 1
Giải:
ðặt các ký hiệu tương ứng: 4.2. Bản ñồ Karnaugh
Cửa lái - A;
Một mạch số phức tạp sẽ tạo ra một biểu thức ñại số rất
Bộ phận ñánh lửa - B
phức tạp. Bảng chân trị biểu thị của một hàm là duy nhất, nhưng
ðèn pha – C
hàm có thể có nhiều dạng khác nhau hay có thể có nhiều mạch số
Báo ñộng – f
khác nhau cho cùng một chức năng. Ta ñã biết rằng biểu thức có
thể ñơn giản hóa dựa vào ñại số Boolean. Tuy nhiên qui trình này
Theo ñề bài => f = CB + AB thường chỉ áp dụng ñược ñối với các bài toán ñơn giản, còn ñối với
các bài toán phức tạp thì nó không có những qui tắc cho phép ta
Sơ ñồ mạch: tiên ñoán trước bước ñi tiếp theo trong quá trình ñơn giản. Phương
pháp dùng bản ñồ Karnaugh giúp ta ñơn giản các biểu thức một
cách nhanh chóng, dễ hiểu và hiệu quả hơn.
ðể tối thiểu hóa hàm Boole bằng phương pháp bảng
Kamaugh phải tuân thủ theo qui tắc về ô kế cận. Hai ô ñược gọi là
121 122
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

kế cận nhau là hai ô mà khi ta chuyển từ ô này sang ô kia chỉ làm – Biểu thức có chứa ít nhất các thừa số và mỗi thừa số
thay ñổi giá trị của 1 biến. Quy tắc chung của phương pháp rút gọn chứa ít nhất các biến.
bằng bảng Karnaugh là gom (kết hợp) các ô kế cận lại với nhau. – Mạch logic thực hiện có chứa ít nhất các vi mạch số
Khi gom 2 ô kế cận nhau sẽ loại ñược 1 biến, gom 4 ô kế cận sẽ
loại ñược 2 biến, gom 8 ô kế cận sẽ loại ñược 3 biến. - Phương pháp dùng bản ñồ Karnaugh sẽ ñược dùng hầu
như trong thiết kế mọi mạch số vì vậy có một tầm quan trọng
Tổng quát, khi gom 2n Ô kế cận sẽ loại ñược n biến. Những
ñặc biệt mà các sinh viên phải nắm thật chắc chắn.
biến bị loại là những biến khi ta ñi vòng qua các ô kế cận mà giá
trị của chúng thay ñổi.
 Dạng chính tắc và dạng chuẩn của hàm Boole
 Những ñiều cần lưu ý: - Tích chuẩn (minterm): mi (0 ≤ i < 2n-1) là các số hạng tích
– Vòng gom ñược gọi là hợp lệ khi trong vòng gom ñó có ít (AND) của n biến mà hàm Boole phụ thuộc với quy ước biến
nhất 1 ô chưa thuộc vòng gom nào. ñó có bù nếu nó là 0 và không bù nếu là 1.
- Tổng chuẩn (Maxterm): Mi (0 ≤ i < 2n-1) là các số hạng tổng
– Những ô nào có giá trị tùy ý ta biểu diễn trong ô ñó bằng ký (OR) của n biến mà hàm Boole phụ thuộc với quy ước biến ñó
hiệu x, và những ô ñó ñược gọi là tùy ñịnh có bù nếu nó là 1 và không bù nếu là 0
– Việc kết hợp những ô kế cận với nhau còn tùy thuộc vào x y z Minterms Maxterms
phương pháp biểu diễn hàm Boolean theo dạng tổng các tích 0 0 0 m0 = x y z M0 = x + y + z
(dạng 1) hay theo dạng tích các tổng (dạng 2). ðiều này có 0 0 1 m1 = x y z M1 = x + y + z
nghĩa là: nếu ta biểu diễn hàm Booleean theo dạng 1 thì ta chỉ
quan tâm những ô kế cận nào có giá trị bằng 1 và tùy ñịnh, 0 1 0 m2 = x y z M2 = x + y + z
ngược lại nếu ta biểu diễn hàm Boolean dưới dạng 2 thì ta chỉ 0 1 1 m3 = x y z M3 = x + y + z
quan tâm những ô kế cận nào có giá trị bằng 0 và tùy ñịnh. Ta 1 0 0 m4 = x y z M4 = x + y + z
quan tâm những ô tùy ñịnh sao cho những ô này kết hợp với
những ô có giá trị bằng 1 (nếu biểu diễn theo dạng 1 ) hoặc 1 0 1 m5 = x y z M5 = x + y + z
bằng 0 (nếu biểu diễn theo dạng 2) sẽ làm cho số lượng ô kế 1 1 0 m6 = x y z M6 = x + y + z
cận là 2n lớn nhất. 1 1 1 m7 = x y z M7 = x + y + z
- Các ô kế cận muốn gom ñược phải là kế cận vòng tròn nghĩa
là ô kế cận cuối cũng là ô kế cận ñầu tiên. Bảng 4.5. Các tích chuẩn và tổng chuẩn của tổ hợp 3 biến

- Các vòng phải ñược gom sao cho số ô có thể vào trong vòng  Dạng chính tắc 1 (dạng chuẩn 1): là dạng tổng của các
là lớn nhất và nhớ là ñể ñạt ñược ñiều ñó, thường ta phải gom tích chuẩn_1 (minterm_1 là minterm mà tại tổ hợp ñó hàm
cả những ô ñã gom vào trong các vòng khác. Boole có giá trị 1).
Ví dụ ta có hàm F với các giá trị tương ứng trong bảng 4.6. Theo
 Mục ñích cần ñạt: ñó hàm có giá trị bằng 1 tại các tổ hợp biến là 1,3 và 4.

123 124
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

x y z Minterms Maxterms F F  Trường hợp tùy ñịnh (don’t care)


0 0 0 m0 = x y z M0 = x + y + z 0 1
Là trường hợp mà tại tổ hợp biến ñó giá trị của hàm không xác
0 0 1 m1 = x y z M1 = x + y + z 1 0 ñịnh. Trong trường hợp này ở dạng chuẩn 1 ta dùng ký hiệu là
0 1 0 m2 = x y z M2 = x + y + z 0 1 chữ d nhỏ, còn ở dạng chuẩn 2 là chữ D lớn.
Ví dụ: Hàm F ñược cho dưới dạng bảng chân trị như bảng 4.7.
0 1 1 m3 = x y z M3 = x + y + z 1 0
ABC F
1 0 0 m4 = x y z M4 = x + y + z 1 0 000 X
1 0 1 m5 = x y z M5 = x + y + z 0 1 001 0
010 1
1 1 0 m6 = x y z M6 = x + y + z 0 1
011 1
1 1 1 m7 = x y z M7 = x + y + z 0 1 100 0
Bảng 4.6. Hàm F theo dạng chính tắc 1 101 1
Theo bảng 4.6. ta có: 110 0
F (x, y, z) = x y z + x y z + x y z = m1 + m3 + m4 111 X
Bảng 4.7. Hàm F có các ô tùy ñịnh
Và ñể ñơn giản người ta thường dùng ký hiệu cho dạng chuẩn 1
Hàm F trong bảng 4.7 sẽ ñược biểu diễn theo 2 dạng chính tắc:
như sau :
F (A, B, C) = Σ (2, 3, 5) + d(0, 7)
F (x, y, z) = x y z + x y z + x y z = m1 + m3 + m4
= Π (1, 4, 6) . D(0, 7)
= ∑ (1,3, 4) • Chú ý:
- Ở dạng chuẩn 1 các giá trị trong dấu ngoặc là giá trị của tổ hợp
 Dạng chính tắc 2 (dạng chuẩn 2): là dạng tích của các biến mà tại ñó hàm có giá trị bằng 1, trong khi ở dạng chuẩn 2
tổng chuẩn_0 (Maxterm_0 là Maxterm mà tại tổ hợp ñó hàm các giá trị trong dấu ngoặc là giá trị của tổ hợp biến mà tại ñó
Boole có giá trị 0). hàm có giá trị bằng 0.
- Các giá trị tùy ñịnh trong hai dạng chuẩn sẽ giống nhau, tuy
Theo bảng 4.6 hàm F sẽ có dạng: nhiên ký hiệu một dạng là chữ thường và dấu cộng, còn một
F ( x, y, z ) = ( x + y + z )( x + y + z )( x + y + z )( x + y + z )( x + y + z )
dạng là chữ in hoa và dấu nhân.
= M 0M 2M 5M 6M 7
Và ñể ñơn giản người ta thường dùng ký hiệu cho dạng chuẩn 2 Các dạng bản ñồ Karnaugh ñơn giản:
như sau : Bản ñồ Karnaugh (gọi tắt là bản ñồ K) giống như bảng chân
F ( x, y , z ) = M 0 M 2 M 5 M 6 M 7 trị, là phương tiện biểu diễn mối quan hệ giữa các ñầu vào logic và
= ∏ (0, 2,5, 6, 7) ñầu ra tương ứng. Dưới ñây ta sẽ liệt kê các loại bản ñồ K ñơn giản,
biểu diễn tương ứng với bảng chân trị của chúng.

125 126
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

- Bản ñồ Karnaugh 2 biến - Bản ñồ Karnaugh 4 biến


Bản ñồ K 2 biến là một bản ñồ có 4 ô, vị trí trong Cách ñiền vào trong bản ñồ K 4 biến cũng sẽ xem trong ví
mỗi ô tương ứng với tổ hợp biến ñầu vào. Ở ngoài các cột dụ, còn dạng của như sau
và dòng ta ghi các giá trị tương ứng của các biến. Ở ñây có
2 hàng biểu thị cho 2 giá trị của biến A (0 và 1) và 2 cột
biểu thị cho 2 giá trị của biến B. Tọa ñộ của mổi ô tương
ứng với tổ hợp nhị phân của các biến ñầu vào. Ví dụ như
trong hình 4.8, tại tọa ñộ A=0 và B=0 tương ứng với tổ hợp
AB=00 hay ta ghi là A B là giá trị ñầu ra x=1. Tại tọa ñộ
AB=01 giá trị ñầu ra tương ứng x=0 nên ta ghi vào ô tương
ứng giá trị 0. Tương tự như vậy cho các ô còn lại ta sẽ có
ñược bản ñồ K như trong hình 4.8(c).
Trong thực tế chúng ta chỉ dùng các bản ñồ cho từ 3 biến
A B x B trở lên, và cũng chỉ dùng cho ñến 5 biến vì nhiều hơn nữa thì sẽ rất
0 0 1 A 0 1 phức tạp vì ở ñây chúng ta dùng phương pháp trực quan. ðể hiểu rõ
x = A B + AB
0 1 0 cách dùng bản ñồ Karnaugh chúng ta sẽ xem xet các ví dụ cụ thể
0 1 0 sau.
1 0 0
1 1 1 1 0 1
b) Hàm biểu diễn Ví dụ 1:
a) Ví dụ bảng chân trị Dùng bản ñồ Karnaugh ñơn giản hàm f(A,B,C) =
ñầu ra c) Bản ñồ K
Hình 4.8. Ví dụ bản ñồ K 2 biến
∑ (0,2,4,5,6) .
Giải:
Trước hết ñề bài ghi như vậy có nghĩa là tại các giá trị mà
tổ hợp ñầu vào bằng 0 (ABC=000),2
- Bản ñồ Karnaugh 3 biến (ABC=010),4(ABC=100),5(ABC=101) , hoặc 6 (ABC=110) thì giá
Cách ñiền vào bản ñồ K 3 biến cũng như trong trị của hàm f sẽ bằng 1 hay nói cách khác giá trị ñầu ra bằng 1
trường hợp trên và cụ thể thế nào ta sẽ xem trong các ví dụ Bước 1: vẽ bản ñồ Karnaugh.
ngay sau ñây. Bản ñồ K 3 biến sẽ có dạng như sau:
Hàm f biểu diễn các ô cho giá trị hàm bằng 1, mỗi ô tương
ứng với một tổ hợp các biến ñầu vào. Như vậy ở các ô có giá trị ñầu
vào là 0(ABC=000), 2(ABC=010), 4(ABC=100), 5(ABC=101) và
6(ABC=110) sẽ có giá trị là 1 (Hàm f =1).

127 128
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

BC CD
A 00 01 11 10 AB 00 01 11 10
0 00 1 1 1
1 1

1 1 1 1 01 1 1

11 1 1
Bước 2: nhóm các phần tử gần nhau theo từng nhóm, từ bản ñồ
chính ta có 2 nhóm 10 1
BC
A 00 01 11 10
0 1 1 Vòng 1 Sau khi nhóm ta có ñược 4 vòng như sau:
CD
1 1 1 1 AB 00 01 11 10
00 1 1 1
4

Vòng 2 01 1 1 1
Từ bản ñồ ta sẽ nhóm ñược 2 vòng. Vòng 1 ta nhóm tối ña
11 1 1
ñược 4 ô, và 4 ô này cho ta biểu thức C (trong 4 ô này thì chỉ có
2
biến C là không ñổi và C=0 nên ta biểu diễn dưới dạng C ). Vòng 2 10 1
nhóm ô còn lại với 1 ô ñã nhóm ở vòng 1 và cho ta biểu thức AB .
Bước 3: Viết lại hàm theo các nhóm ở bản ñồ Karnaugh, ta sẽ có:
3
f ( A, B, C ) = AB + C
Ví dụ 2: Kết quả hàm rút gọn:
Dùng bản ñồ Karnaugh rút gọn hàm f ( A, B, C , D) = A C + ABC + AC D + A B D
f ( A, B, C , D) = ∑ (0,2,3,4,6,7,9,12,13) và vẽ sơ ñồ mạch của hàm f Sơ ñồ mạch:
dùng các cổng AND, OR và NOT.
Giải:
Từ ñề bài ta thấy hàm cho có 4 biến ñầu vào do ñó ta cần
bản ñồ K cho 4 biến và sau khi ñiền các ô tương ứng với giá trị hàm
bằng 1 ta có Bản ñồ Karnaugh:

129 130
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

CD
U15 U19
AB 00 01 11 10
A
00 1 1 1 1
INV AND2

U20
U16 01 1 1
B U23

INV
AND3 11 1
f
U17 U21 OR4
10 1 1 1 1
C
INV AND3

U22
- Sau khi nhóm:
U18

D
AND3 CD
INV
AB 00 01 11 10
Ví dụ 3: 00 1 1 1 1
Dùng bản ñồ Karnaugh rút gọn hàm 1
f ( A, B, C , D) = ∑ (0,1,2,3,4,6,7,8,9,10,11,13) và vẽ sơ ñồ mạch của 01 1 1
hàm f. 2 2
11 1
Lời giải:
Tương tự như các ví dụ trên, trong bài này chúng ta cũng cần có 4 10 1 1 1 1
biến cho ñầu vào. Các giá trị hàm bằng 1 ñược xác ñịnh trong dấu 1
ngoặc của hàm.
- Bản ñồ Karnagh
3

Kết quả hàm rút gọn: f ( A, B, C , D) = B + A D + AC D


Sơ ñồ mạch:

131 132
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

CD
U15
AB 00 01 11 10
A U26

00 0
INV
U28
AND2 f
U16 01 0 0 0
B OR3

INV
U27 11 0 0

U17
AND3 10 X X X 0
C
INV - Sau khi nhóm theo các ô 0 ta có:
U18
3
D CD
INV AB 00 01 11 10
Ví dụ 4: Dùng bản ñồ Karnaugh ñể ñơn giản hàm sau: 00 0
f(A, B, C, D) = ∏(3, 4, 5, 7, 10, 12, 13) + D(8, 9, 11)
Lời giải: 01 0 0 0
1
Tương tự như các ví dụ trên, trong bài này hàm cho dưới
dạng chuẩn 2, là một hàm có 4 biến. Các giá trị hàm bằng 0 ñược
11 0 0
xác ñịnh trong dấu ngoặc của ∏ và các vị trí mà giá trị hàm không
xác ñịnh trong dấu ngoặc của D.
10 X X X 0
- Bản ñồ Karnagh
2

Kết quả hàm rút gọn: f ( A, B, C , D) = ( B + C )( A + B)( A + C + D)

Lưu ý:
- Khi dùng bản ñồ K là ở các vị trí không xác ñịnh (có thể 1 hoặc
0) thì ta biểu diễn bằng chữ “x” và các ô này ta có thể coi là “1”
hoặc “0” tùy thuộc vào trường hợp của bản ñồ K ñể có thể gom
số ô lại ñược nhiều nhất.

133 134
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

- Nếu ta xét gom theo giá trị hàm bằng 0, thì ta chỉ xét các ô có  Kích thước nhỏ gọn, trọng lượng nhỏ.
giá trị 0, những ô có giá trị là “x” thì không cần xét, nhưng có  Tiêu thụ năng lượng thấp.
thể ñược gom chung vào các ô có giá trị 0 ñể ñược hàm tối giản  Tốc ñộ hoạt ñộng cao.
 Chịu ñược nhiệt cao, ít chịu tác ñộng của môi
4.3. Những mạch logic số cơ bản trường.
 Giá thành hạ.
4.3.1.Mạch tích hợp IC (Intergrated Circuit)
Các cổng logic không ñược chế tạo hoặc bán riêng lẻ, mà Vì vậy IC ñã tạo cơ sở ñể hàng loạt thiết bị ñiện tử ra ñời
theo ñơn vị mạch tích hợp (intergrated circuit), thường gọi là IC với những tính năng hơn hẳn các thế hệ trước.
hay vi mạch (chíp). IC là mảnh silicon hình vuông khoảng 5x5 mm, Có thể chia vi mạch thành các lớp tùy thuộc vào khả năng
trên ñó ñã lắng ñọng một số cổng. IC thường ñược gắn trong vỏ chứa và sắp xếp các cổng trên cùng một chip gọi là mức tích
bọc nhựa hoặc ceramic rộng 5-15 mm và dài 20-50 mm. Dọc theo hợp:
cạnh dài là hai hàng chân song song dài khoảng 5 mm có thế cắm
vào ổ cắm hoặc hàn vào bảng mạch in. Mỗi chân nối với ñầu vào Mạch SSI (tích hợp cỡ nhỏ): 1 - 10 cổng
hay ñầu ra của cổng nào ñó trên vi mạch, hoặc nối nguồn hoặc nối • Mạch MSI (tích hợp cỡ trung bình): 10 - 100 cổng
ñất. Về mặt kỹ thuật vỏ bọc có hai hàng chân bên ngoài và IC bên • Mạch LSI (tích hợp cỡ lớn): 100 - 100.000 cổng
trong ñược gọi tên là lớp vỏ có hai hàng chân (DIP), tuy nhiên mọi
• Mạch VLSI (tích hợp cỡ rất lớn): > 100.000 cổng
người gọi chúng là vi mạch, do ñó làm mờ nhạt sự khác biệt giữa Những lớp trên có thuộc tính khác nhau và ứng dụng theo
mảnh silicon và vỏ bọc. ðối với vi mạch lớn, người ta thường dùng cách khác nhau. Thường khi sản xuất các IC sẽ ñi kèm theo bộ
vỏ bọc hình vuông với các chân trên cả 4 cạnh. Hình 4.9 cho ta hướng dẫn chức năng và các chân tương ứng của IC ñó. Ví dụ IC
thấy một số IC ñược ñóng gói. hình 4.10 là loại IC logic ñơn giản có 4 cổng NAND - 2 ñầu vào,
các cổng NAND giống nhau và ñộc lập với nhau.
IC có 14 chân, chân số 7 là chân nối ñất, chân 14 nối với
nguồn Vcc:
Vcc: +5V
GND: nối ñất.

Hình 4.9. Một số IC

Các IC có những ưu ñiểm hơn hẳn các loại linh kiện trước ñó.
135 136
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

 Thiết kế mạch tổ hợp


ðể thiết kế một mạch tổ hợp, nhằm tránh những sai sót
không cần thiết, chúng ta cần tuân thủ theo các bước sau:
1. Xác ñịnh bài toán ñể ñi ñến kết luận có những ñầu nhập,
xuất nào
2. Lập bảng chân trị xác ñịnh mối quan hệ giữa nhập và
xuất
3. Dựa vào bảng chân trị, xác ñịnh hàm cho từng ngõ ra
4. Dùng ñại số boolean hoặc bản ñồ Karnaugh ñể ñơn giản
Hình 4.10. Sơ ñồ một IC các hàm ngõ ra
5. Vẽ sơ ñồ mạch theo các hàm ñã ñơn giản.
4.3.2.Mạch kết hợp (Combinational circuit) Sau ñây chúng ta sẽ xem xét một số mạch tổ hợp thông
Nhiều ứng dụng logic số ñòi hỏi mạch phải cớ nhiều ñầu dụng nhất, mà thường từ các mạch này người ta tạo ra các mạch
vào và ñầu ra trong ñó ñầu ra ñược xác ñịnh qua ñầu vào hiện tại. khác phức tạp hơn.
Mạch như thế ñược gọi là mạch kết hợp (combinational circuit).
Không phải mạch nào cũng có thuộc tính này. Ví dụ, mạch chứa
phần tử nhớ có thể tạo ñầu ra tùy vào giá trị lưu và cả biến nhập. 4.3.3. Bộ dồn kênh (Multiplexer) – Bộ phân kênh (Demultiplexer)
Bộ dồn kênh hay còn gọi là mạch chọn kênh là mạch có
Mạch kết hợp là tổ hợp các cổng luận lý kết nối với nhau
tạo thành một bản mạch có chung một tập các ngõ vào và ra. chức năng chọn lần lượt 1 trong N kênh vào ñể ñưa ñến ngõ ra duy
nhất (ngõ ra duy nhất ñó gọi là ñường truyền chung). Do ñó, mạch
Tại một thời ñiểm, trị nhị phân ở ngõ ra là hàm của tổ hợp chọn kênh còn gọi là mạch chuyển dữ liệu song song ở ngõ vào
nhị phân các ngõ vào. Sơ ñồ khối mạch tổ hợp như hình vẽ 4.11. n thành dữ liệu nối tiếp ở ngõ ra, ñược gọi là Multiplexer (viết tắt là
biến nhập nhị phân xuất phát từ một nguồn nào ñó ñi vào sơ ñồ MUX).
mạch và xuất ra ngoài m biến nhị phân.
Bộ phân kênh hay mạch phân ñường còn gọi là mạch tách
Mạch tổ hợp ñược xác ñịnh qua bảng chân trị với n biến
nhập và m biến xuất hoặc ñược xác ñịnh qua m hàm Boolean. kênh (phân kênh, giải ña hợp), mạch này có nhiệm vụ tách 1 nguồn
dữ liệu ở ñầu vào ñể rẽ ra N ngõ ra khác nhau. Do ñó, mạch phân
ñường còn gọi là mạch chuyển dữ liệu nối tiếp ở ngõ vào thành dữ
n input m output liệu song song ở ngõ ra, ñược gọi là Demultiplexer (viết tắt là
Combinational
variables variables DEMUX).
circuit
a) Bộ dồn kênh
Lược ñồ khối mạch kết hợp Ớ cấp ñộ logic số, bộ dồn kênh (multiplexer) là mạch có 2n
ñầu vào dữ liệu, một ñầu ra dữ liệu và n ñầu vào ñiều khiến chọn
Hình 4.11.
137 138
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

một trong các ñầu vào dữ liệu. ðầu vào ñược chọn sẽ ñịnh tuyến tới
x1
ñầu ra.
Xét mạch chọn kênh ñơn giản có 4 ngõ vào và 1 ngõ ra như hình
4.12.
x2 AND3
1
Trong ñó : AND3
2
+ x1,x2,x3,x4 : các kênh dữ liệu vào
+ Ngõ ra y : ðường truyền chung. y
+ c1, c2 : các ngõ vào ñiều khiển x3 OR4
5

x4 AND3
3

AND3
4

NOT

NOT
Hình 4.12. Sơ ñồ khối MUX 4 ñầu vào c1

7
c2
ðể thay ñổi lần lượt từ x1x4 phải có ñiều khiển do ñó ñối Hình 4.13. Bộ dồn kênh 4-1
với mạch chọn kênh ñể chọn lần lượt từ 1 trong 4 kênh vào cần có Một ví dụ khác ở hình 4.14 là bộ dồn kênh 8 ñầu vào.
các ngõ vào ñiều khiển cl, c2. Nếu có N kênh vào thì cần có n ngõ
vào ñiều khiển thỏa mãn quan hệ: N=2n. Nói cách khác: Số tổ hợp
ngõ vào ñiều khiển bằng số lượng các kênh vào.
Việc chọn dữ liệu từ 1 trong 4 ngõ vào ñể ñưa ñến ñường
truyền chung là tùy thuộc vào tổ hợp tín hiệu ñiều khiển. Trong
bảng 4.5 cho ta thấy tùy thuộc vào tín hiệu ñiều khiển c1,c2 mà ngõ
ra sẽ nhận tín hiệu từ ngõ vào nào.
c1 c2 y
0 0 x1
0 1 x2
1 0 x3
1 1 x4
Bảng 4.4. Tín hiệu ñầu ra phụ thuộc vào tín hiệu ñiều khiển
Sơ ñồ mạch dồn 4-1 như hình 4.13.

139 140
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

các thiết bị số bộ dồn kênh ñược dùng rất thường xuyên cho nên ñể
hiểu tốt các phần sau các sinh viên cần hiểu thật rõ mạch này.

b) Bộ phân kênh (Demultiplexer)


Ngược lại với bộ dồn kênh là bộ phân kênh. Nó cho phép từ
một kênh vào cho ra nhiều kênh khác nhau tuy thuộc vào ñường
ñiều khiển. Bảng trạng thái mô tả hoạt ñộng của mạch và sơ ñồ
mạch bộ phân kênh như trong hình 4.15.

Hình 4.15. Bộ phân kênh 1-4


Hình 4.14. Bộ dồn kênh (Multiplexer) 8 ñầu vào
Ba ñường ñiều khiến, A, B, và C mã hóa con số 3 bít qui 4.3.4. Mạch Cộng
ñịnh 1 trong 8 ñường vào nào sẽ ñịnh tuyến tới cổng OR rồi ra. Bất a)Mạch nửa cộng(Half Adder)
luận giá trị nào nằm trên ñường ñiều khiến, 7 cổng AND sẽ luôn
xuất 0, cổng còn lại có thế xuất 0 hay 1, tùy theo giá trị ñường vào ðối với tất cả các máy tính thì việc thực hiện các phép tính
ñược chọn. Mỗi cổng AND ñược kích hoạt bằng kết hợp ñầu vào số học là quan trọng nhất. Vì vậy mạch thực hiện phép cộng là
ñiều khiển khác nhau. thành phần thiết yếu trong mỗi CPU. Hình 4.16 minh họa bảng
chân trị cho phép cộng 1 bit. Mạch nửa cộng là một mạch gồm 2
Như vậy khi thiết kế các mạch mà chỉ có 1 ñầu vào duy cổng XOR và AND. Hai ñầu ra của mạch:
nhất, nhưng tín hiệu vào lại ñược lựa chọn từ nhiều nguồn khác - Tín hiệu tổng ñầu vào A và B: Sum
nhau thì chúng ta có thể dùng bộ dồn kênh ñể làm việc ñó. Trong - Tín hiệu số mang sang vị trí kế tiếp (bên trái): Carry

141 142
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

trễ này, và do ñó nhanh hơn. Sơ ñồ bộ cộng ñầy ñủ cho n bit như


hình 4.18.
XOR
A
A B Sum Carry Sum
0 0 0 0 B 1

0 1 1 0
1 0 1 0 AND2

1 1 0 1 Carry
2

Hình 4.16. Bộ nửa cộng

Bộ nứa cộng này chỉ cho phép ta tính tổng bit cực phải của
hai từ ñầu vào nhiều bit, nhưng không thực hiện ñược cho vị trí bít
ở giữa từ vì nó không xử lý số mang từ bên phải sang vị trí này,
hay nói cách khác không cộng với số nhớ trong phép cong thông
thường. Như vậy bộ nửa cộng này không thể áp dụng ñể thiết kế Hình 4.17. Bộ cộng ñầy ñủ
một bộ cộng cho 2 số có nhiều bit, thay vào ñó, phải càn tới bộ
cộng ñầy ñủ (full adderl).
b) Bộ cộng ñầy ñủ(Full Adder)
An-1 Bn-1 A1 B1 A0 B0
Bảng chân trị và mạch cho bộ cộng 1 bit ñầy ñủ trong hình
4.17. Bộ cộng ñầy ñủ ñược cấu thành từ hai bộ nửa cộng. ðầu ra
Carry Carry Carry Carry Carry
Sum là 1 nếu số lẻ A, B, và Carry in bằng 1 . Carry out bằng 1 Full inn-1 out1 Full in1 out0 Full in0 = 0
khi cả A và B ñều bằng 1(ñầu vào trái của cổng OR) hoặc ñúng Adder  Adder Adder
một trong số chúng bằng 1 và bit Carry in cũng bằng 1 .
Giả sử ñế tạo bộ cộng cho hai từ A và B, mỗi từ 16 bịt, chỉ
việc sao chép mạch trong hình 4.12 ñúng 16 lần. Số nhớ từ bít ñược Sn Sn-1 S1 S0
dùng làm số nhớ vào bit bên trái. Số nhớ vào bịt cực trái ñược nối
vào 0. Loại bộ cộng này ñược gọi là bộ cộng số nhớ ripple (ripple Hinh 4.18. Bộ cộng n bit
carry adder). Vì trong trường hợp xấu nhất, cộng 1 vào 1 1 1 ... 1 1 4.3.5. Mạch giải mã và mã hóa
1 (nhị phân), số nhớ ripple từ bit cực phải sang bit cực trái thì mới
 Khái niệm :
cộng xong ñược. Do ñó trong các trường hợp như vậy thì bộ cộng
Mạch mã hoá (ENCODER) là mạch có nhiệm vụ biến ñổi
này sẽ rất chậm và không hiệu quả. Cũng có bộ cộng không có sự
những ký hiệu quen thuộc với con người sang những ký hiệu không
quen thuộc con người. Mạch giải mã (DECODER) là mạch làm
143 144
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

nhiệm vụ ngược lại mạch mã hóa, biến ñổi những ký hiệu không Giải thích bảng trạng thái: Khi một ngõ vào ở trạng thái cao
quen thuộc với con người sang những ký hiệu quen thuộc với con (mức logic 1) và các ngõ vào còn lại thấp (mức logic 0) thì ngõ ra
người. xuất hiện từ mã tương ứng. Ngõ vào nào ở trạng thái cao thì tương
ứng với con số ñó ở hệ thập phân, ví dụ ngõ vào 4 ở trạng thái cao
a) Mạch mã hoá (Encoder)
sẽ tương ứng với số 4 ñược ñưa vào ngõ nhập. Cụ thể là: khi ngõ
Xét mạch mã hóa nhị phân từ 8 sang 3 (8 ngõ vào và 3 ngõ vào x0=1 và các ngõ vào còn lại bằng 0 thì từ mã ở ngõ ra là 000,
ra). Sơ ñồ khối của mạch ñược cho trên hình 4.19. khi ngõ vào x1=1 và các ngõ vào còn lại bằng 0 thì từ mã nhị phân
ở ngõ ra là 001,…
x0
x1 ENCODER A0
Phương trình logic tối giản:
83 A1 A0 = x1 + x3 + x5 + x7
x7
A2 A1 = x2 + x3 + x6 + x7
A2 = x4 + x5 + x6 + x7
Hình 4.19. Sơ ñồ khối Encoder 83 Sơ ñồ mạch của ENCODER 83 như hình 4.20.
Trong ñó : x1 x2 x3 x4 x5 x6 x7
- x0, x1, …, x7 là các ngõ vào tín hiệu.
- A0, A1, A2 là các ngõ ra. A2
Mạch mã hóa nhị phân 83 thực hiện biến ñổi tín hiệu ngõ
vào thành một từ mã nhị phân tương ứng ở ngõ ra, cụ thể như sau:
A1
0  000 2  100 4  100 6  110
1  001 3  011 5  101 7  111
Chọn mức tác ñộng (tích cực) ở ngõ vào là mức logic 1 , ta A0
có bảng trạng thái mô tả hoạt ñộng của mạch như sau:

x7 x6 x5 x4 x3 x2 x1 x0 A2 A1 A0 Hình 4.20. ENCODER 83


0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1 Tương tự ta dễ dàng có thể thiết kế mạch mã hóa thập phân,
0 0 0 0 0 1 0 0 0 1 0 dùng mã hóa các số từ 0 ñến 9 sang hệ nhị phân. Trong trường hợp
0 0 0 0 1 0 0 0 0 1 1 này ta cần có 4 ñầu ra ñể mã hóa ñược số 8(1000) và 9(1001).
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
145 146
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

b) Mạch giải mã (Decoder) B A


Ngược với mạch mã hóa, mạch giải mã là mạch tổ hợp ñổi
thông tin nhị phân với n ngõ nhập thành 2n ngõ xuất. Nếu ngõ nhập U6 U5

có một số tổ hợp không dùng thì số ngõ ra có thể ít hơn 2n . Khi ñó INV INV
2
U1

mạch giải mã gọi là mạch giải mã n-m, với m ≤ 2 n . 3


1
y0
AND2
ðể ñơn giản ta xét mạch giải mã 2-4 với sơ ñồ khối và U2
2
bảng chân trị mạch giải mã nhị phân 24 như hình 4.21. 1
y1
3

AND2

U3
2
1
3
y2
AND2
U4
2
1
3
y3
Hình 4.21. Decoder 24 AND2

Hình 4.22. Sơ ñồ mạch Decoder 24


Từ bảng chân trị ta có phương trình logic tối giản cho mạch:
y0 = A B Mạch giải mã với cổng NAND
y1 = AB Một số mạch giải mã ñược tạo từ cổng NAND thay vì cổng
y2= AB AND. Nó tạo ra ngõ xuất theo dạng ñảo lại. Hình 4.23 là mạch giải
mã 24 với cổng NAND với một ñường vào ñiều khiển E. Tương
y3 = AB ứng với nó là Bảng chân trị sau:
Sơ ñồ mạch của DECODER 24 như hình 4.22. E A1 A0 D0 D1 D2 D3
Mạch giải mã ñược ñóng gói thành các vi mạch và ñược
bán ra trên thị trường thường có dạng 4-16,3-8 và 2-4 kép (tức hai
bộ giải mã ñược ñóng chung vào trong một vi mạch ñơn).Ngoài ra 0 0 0 0 1 1 1
còn phổ biến bộ giải mã 4-10 dùng giải mã số nhị phân sang hệ
thập phân. Ngoài các ngõ nhập và xuất dữ liệu thường còn có một 0 0 1 1 0 1 1
ngõ ñiều khiển hoạt ñộng của mạch. Ngõ này thường ký hiệu là E, 0 1 0 1 1 0 1
khi E = 1, cho phép mạch hoạt ñộng và khi E = 0 thì không cho
phép mạch hoạt ñộng. 0 1 1 1 1 1 0
1 x x 1 1 1 1
147 148
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

U4
U10 DECODER
2x4 D0
INV
D0
A0 NAND3 20 D1
U4 U11
D2
D1 21
D3
INV NAND3
A1 E
U12

D2 Hình 4.24. Ký hiệu Decoder 24


NAND3 Mở rộng mạch giải mã
U13
Trong một số trường hợp cần mạch giải mã với một kính cỡ
U4 D3 lớn mà ta lại chỉ có mạch với kích thước nhỏ hơn thì ta có thể ghép
E NAND3 hai hoặc nhiều hơn các mạch ñang có ñể tạo một mạch mã hóa lớn
INV hơn. Ví dụ ta có thể tạo mạch giải mã 38 từ hai mạch giải mã
24 (hình 4.25). Trong trường hợp này ta ñã tận dụng ngõ vào
Hình 4.23. Mạch giải mã với cổng NAND ñiều khiển E ñể làm ngõ nhập thứ 3.
Mạch này họat ñộng khi tín hiệu ñiều khiển E = 0 và ngõ ra A0 20 2x4
sẽ có giá trị 0 tương ứng với số nhị phân ở các ngõ vào. Khi E = 1 D0
thì không cho phép mạch hoạt ñộng tức là không phụ thuộc vào các A1 21 decode D1
giá trị ñầu vào, ñầu ra luôn bằng 1. A2 E D2
Các mạch giải mã ngoài thị trường thường ñược ñóng gói D3
và có ký hiệu như hình 4.24. ðó là một mạch giả mã 24 dùng
cổng AND và với một ñường ñiều khiển E cho phép mạch hoạt
ñộng khi E =1 và không hoạt ñộng khi E = 0.
20 2x4 D4
21 decode D5
E D6
D7

Hình 4.25. Mạch giải mã 38

149 150
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

g) Tất cả 3 thứ
CÂU HỎI VÀ BÀI TẬP CHƯƠNG IV h) Không có gì – nhà luận lý bị ñói bụng vì quá thông minh
5. Một nhà truyền giáo lạc ñường tại ngã rẽ ba ở chặng dừng Nam
California. Ông ta biết hai toán ñi xe máy ở khu vực này, một toán
1. Lập bảng chân trị và vẽ sơ ñồ mạch cho hàm 4 biến sau:
luôn nói thật và một toán luôn nói dối. Ông ta muốn biết ñường nào
a) x = AB+A(C+D)
ñi tới Disneyland thì ông ta phải ñặt câu hỏi như thế nào ?
b) y = (A+BC)(D+AB)
c) z = A B + C ( A + D) 6. ðể làm một thiết bị ñiều khiển báo ñộng trong xe hơi, người ta
thiết kế 1 mạch báo ñộng như sau:
2. Rút gọn các hàm sau dùng các ñịnh lý của Boolean algebra
DRV
a) x = ACD + A BCD
b) y = AB + A( CD + CD ) Bộ phận ñánh lửa Mạch Báo ñộng
c) z = ( BC + A D)( AB + CD ) Logic
BELT

3. Dùng ñịnh lý De Morgan, rút gọn biểu thức sau cho ñến khi chỉ
còn biến ñơn ñảo (một gạch trên) Tín hiệu:
z = ( A + C ).( B + D ) - DRV (driver) ở mức cao khi tài xế ngồi vào ghế lái và ở
mức thấp khi không ngồi vào;
4. Một nhà luận lý học lái xe vào một tiệm bán ñồ ăn, ngồi trong xe - Bộ phận ñánh lửa: 1 – bật, 0 – tắt;
ông nói: “Làm ơn cho tôi một bánh Hambuger hoặc xúc xích và - BELT ở mức cao khi tài xế cài dây an toàn và ở mức
khoai tây chiên”. Tiếc rằng người bán hàng còn chưa học hết lớp 6 thấp khi không cài dây an toàn.
và không biết (và không muốn biết) trong hai từ logic “hoặc” và Hãy thiết kế mạch logic với 3 ñầu vào (DRV, bộ phận ñánh
“và” thì từ nào ñược ưu tiên. Anh ta cho rằng trong trường hợp này lửa, BELT),1 ñầu ra (báo ñộng), sao cho bộ phận báo ñộng sẽ hoạt
diễn giải thế nào cũng ñược. Trong trường hợp nào dưới ñây là diễn ñộng (báo ñộng = 1) khi tồn tại một trong 2 trạng thái sau:
ñạt ñúng ñơn ñặt hàng: - Tài xế chưa ngồi vào xe trong lúc bộ phận ñánh lửa bật,
a) Chỉ Hambuger - Tài xế ñã ngồi vào xe nhưng chưa cài dây an toàn trong
lúc bộ phận ñánh lửa bật
b) Chỉ xúc xích
Lập bảng chân trị của hàm ra.
c) Chỉ khoai tây chiên
d) Xúc xích và khoai tây chiên 7.ðơn giản các hàm sau dùng bản ñồ Karnaugh
a) f ( A, B, C ) = ∑ (0,2,3,4,6)
e) Hambuger và khoai tây chiên
b) f ( A, B, C , D) = ∑ (0,1,2,4,5,7,11,15)
f) Xúc xích và hambuger
151 152
Simpo
ChươngPDF Merge
IV: Mạch Logicand
số Split Unregistered Version - http://www.simpopdf.com Chương IV: Mạch Logic số

c) f ( X 1 , X 2 , X 3 , X 4 ) = ∑ (3,7,11,13,14,15) f. Xác ñịnh dạng chuẩn tích các tổng của hàm f (gọi là
hàm h).
d) Cực tiểu các hàm trên ở dạng tích các tổng
g. So sánh hai hàm g và h.
8. Dùng bản ñồ Karnaugh rút gọn hàm h. Vẽ sơ ñồ mạch hàm g mà chỉ sử dụng cổng NAND.
a) f ( A, B, C , D) = ∑ (0,2,6,8,9,10,11,13) . 12. ðơn giản hàm Logic 4 biến
b) f ( A, B, C , D) = ∑ (0,1,2,3,4,6,7,8,9,10,11,13) a) f ( A, B, C , D) = ABC D + A BCD + A B C + AC + AB C + B
b)
c) f ( A, B, C , D) = ∏ (0, 2,3, 4, 6, 7,9,12,13)
f ( A, B, C , D) = ( A + B + C + D ).( A + C + D ).( A + B + C + D ).( B + C ).
d) f ( A, B, C , D) = ∏ (0, 2,8,9,10,11,13,14)
( B + C ).( A + B ).( B + D )
9. Cho hàm bool 13. Mạch so sánh hai số 2 bit là mạch gồm có 4 ñầu vào x0, x1,
f(A, B, C, D) = ∑(0, 1, 2, 6, 8, 9, 11, 14, 15) +d(3,10), Dùng bản y0,y1 và 2 ñầu ra Rx,Ry. Trong ñó, (x0,x1) là 2 bit của số thứ nhất và
ñồ Karnaugh ñể : (y0, y1) là hai bit của số thứ 2. ðầu ra Rx có trị 1 khi x1x0 > y1y0
a. Xác ñịnh dạng chuẩn tổng các tích của hàm f (gọi là (ngược lại có trị 0) và ñầu ra Ry có trị 1 khi y1y0 > x1x0 (ngược lại
hàm g). có trị 0)
b. Xác ñịnh dạng chuẩn tích các tổng của hàm f (gọi là a. Lập bảng chân trị cho mạch so sánh nói trên, từ ñó suy ra
hàm h). biểu thức chưa ñơn giản của Rx và Ry
c. So sánh hai hàm g và h.
d. Vẽ sơ ñồ mạch hàm g mà chỉ sử dụng cổng NAND. b. Dùng bảng ñồ Karnaugh ñể ñơn giản biểu thức của Rx và Ry
10. Cho hàm bool c. Vẽ mạch
f(A, B, C, D) = ∑(3, 4, 5, 7, 10, 12, 13) + d(8, 9, 11), Dùng bản ñồ 14. Vẽ sơ ñồ mạch giải mã 2-4 chỉ dùng các cổng NOR bao gồm
Karnaugh ñể : ngõ cho phép/không cho phép hoạt ñộng E.
a. Xác ñịnh dạng chuẩn tổng các tích của hàm f (gọi là
hàm g). 15. Xây dựng lược ñồ khối mạch dồn kênh 16-1 bằng lược ñồ khối
b. Xác ñịnh dạng chuẩn tích các tổng của hàm f (gọi là của hai mạch dồn 8-1 và một mạch dồn 2-1.
hàm h). 16. Thiết kế mạch dồn kênh 16-1 bằng 5 mạch dồn kênh 4-1. Các
c. So sánh hai hàm g và h. mạch dồn kênh dùng dưới dạng sơ ñồ khối.
d. Vẽ sơ ñồ mạch hàm g mà chỉ sử dụng cổng NOR.
11. Cho hàm bool
f(A, B, C, D) = ∏ (0, 1, 2, 6, 8, 9, 11, 14, 15) +D(3,10), Dùng bản
ñồ Karnaugh ñể :
e. Xác ñịnh dạng chuẩn tổng các tích của hàm f (gọi là
hàm g).

153 154
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

C1
Chương V: Mạch tuần tự
Delay C2

Trong chương trước chúng ta ñã xem xét các mạch tổ hợp b)


a)
mà các ngõ ra tại một thời ñiểm chỉ phụ thuộc vào duy nhất các giá
trị ñầu vào tại thời ñiểm ñó. Tuy nhiên phần lớn các mạch số ñều Hình 5.1. ðồng hồ và các xung nó tạo ra
hoạt ñộng mà ở một thời ñiểm nhất ñịnh các ngõ ra sẽ phụ thuộc Trong hình 5.1 a) là ðồng hồ (clock) hay bộ phát tần
không những vào các ngõ vào ở thời ñiểm ñó mà cón phụ thuộc (impulse generator), nhờ có bộ làm trễ Delay mà ta có 2 tín hiệu
vào ngõ ra ở thời ñiểm trước ñó, hay nói cách khác một số ngõ ra xung C1 và C2 khác nhau, từ ñó tạo ra 4 thời ñiểm khác nhau là:
của một mạch lại là chính ngõ vào của mạch ñó. Những mạch như 1. Biên lên của C1
vậy chủ yếu là các thành phần lưu trữ mà ta gọi là mạch tuần tự. 2. Biên xuống của C1
Chúng ta cũng biết rằng hầu hết các thiết bị số ngày nay ñều có các 3. Biên lên của C2
thành phần lưu trữ, do ñó trước khi tìm hiểu về bộ nhớ máy tính ta 4. Biên xuống của C2
cần tìm hiểu về mạch tuần tự. Kiểu mạch tuần tự thông dụng thuộc
loại ñồng bộ. Mạch tuần tự ñồng bộ sử dụng các tín hiệu ảnh hưởng Ta ñã biết rằng các mạch số hoạt ñộng ở các mức cao và
ñến các thành phần lưu trữ chỉ tại các khoảng thời gian rời rạc. thấp, do ñó các thời ñiểm khác nhau có thể ñược gắn với các biên
của xung ñồng hồ. Từ ñó ta có thể ñiều khiển ñược tại thời ñiểm
5.1. Xung ñồng hồ nào thì cho phép hay kích thích mạch nào ñó hoạt ñộng, và tại thời
Trong nhiều mạch số, thứ tự diễn ra biến cố là vấn ñề rất ñiểm nào thì không.
quan trọng. ðôi khi biến cố này phải ñi trước biến cố kia, thỉnh 5.2. Mạch Lật (chốt – latch)
thỏang hai biến cố phải diễn ra ñồng thời. Nhằm cho phép nhà thiết
kế ñạt ñược quan hệ ñịnh thời gian cần thiết, nhiều mạch số sử Mạch lật hay một số sách gọi là chốt, là dạng mạch tuần tự
dụng một ngõ vào cho xung ñồng hồ. Khi ñó, ñồng hồ (clock) là ñơn giản nhất có chức năng lưu trữ một bit nhị phân. Nó có hai ngõ
mạch phát xung với ñộ rộng xung và thời khoảng chính xác giữa ra, một cho trị bình thường và một cho trị bù. Mạch lật ñồng bộ duy
các xung liên tiếp. Thời khoảng giữa các biến tương ứng của hai trì trạng thái nhị phân cho ñến khi có một xung ñồng hồ ñiều khiển
xung liên tiếp là thời gian chu kỳ ñồng hồ (clock cycle time). làm ñổi trạng thái. Sự khác nhau giữa các loại mạch lật ở chỗ số
Trong máy tính, nhiều biến cố xảy ra trong suốt chu kỳ ngõ vào chúng có và cách thức các ngõ vào tác ñộng ñến trạng thái
ñồng hồ. Giả sử biến cố phải diễn ra theo thứ tự cụ thế, thì cần chia nhị phân. Các loại mạch lật thông dụng nhất như trình bày dưới
chu kỳ ñồng hồ thành những chu kỳ con. Cách ñơn giản nhất ñể tạo ñây.
ra các chu kỳ ñồng hồ khác nhau là từ ñồng hồ chính gắn thêm vao
một bộ làm trễ (Delay) tín hiệu như trong hình 5.1.

155 156
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

5.2.1. Mạch lật SR (SR-latch) Q = Q + R = 1 + 0 = 0 => Q không ñổi


ðể tạo ra bộ nhớ 1 bit cần có một mạch ñiện có khả năng
– Giải sử Q ñang ở trạng thái 1 (Q=1, Q =0), cho tín hiệu
lưu trữ một giá trị nào ñó ñược nhập vào. Một mạch như vậy có thể
ñược xây dựng từ cổng NAND hoặc NOR mà ta gọi là mạch lật. vào S=R=0, như vậy ñầu ra của U3 sẽ là:
Mạch lật ñầu tiên ñưa ra xem xét là mạch lật SR. ðầu tiên ta xét
Q = Q + S = 1+ 0 = 0 ,
mạch lật SR không ñồng bộ hay không dùng xung ñồng hồ ñiều
khiển. Ký hiệu mạch lật SR không ñồng bộ ( không dùng xung và ñầu ra của U4 sẽ là :
ñồng hồ) dùng cổng NOR như ở hình 5.2 (a) và hình 5.2 (b) là sơ
Q = Q + R = 0 + 0 = 1 =>Q không ñổi
ñồ mạch tương ứng của nó.
Như vậy trong trường hợp S=R=0 thì giá trị ñầu ra của
Nó có 2 ngõ vào, S (Setting- ñặt) và R (Resetting - Khởi
mạch là không thay ñổi và mạch ñóng vai trò như một bộ nhớ
ñộng). Nó có một ngõ ra Q và ñôi khi có ngõ ra bù, ký hiệu bằng
một bit.
một vòng tròn nhỏ. ðầu ra Q từ cổng NOR thứ nhất (ký hiệu U4)
Lập luận tương tự như trường hợp trên, ta có các trường
sẽ lại ñược cho vào ngõ nhập của cổng NOR thứ hai(ký hiệu U3)
hợp sau :
và ngược lại ñầu ra Q từ U3 sẽ lại ñược cho vào ngõ nhập của – Cho S=0, R=1. Nếu Q=0 thì dẫn tới trong trạng thái kế
cổng NOR (cổng U4). tiếp Q=0, còn nếu Q=1 thì dẫn tới trạng thái kế Q=0 => Q
2
U3 luôn bằng 0 mà không phụ thuộc vào trạng thái Q trước ñó.
S _
3
1
Q Trạng thái này dùng ñể nhập giá trị 0 vào ô nhớ.
S Q NOR2 – Cho S=1, R=0. Nếu Q=0 thì dẫn tới trong trạng thái kế
tiếp Q=1, còn nếu Q=1 thì dẫn tới trạng thái kế Q=1 => Q
luôn bằng 1 mà không phụ thuộc vào trạng thái Q trước ñó.
Q U4
Trạng thái này dùng ñể nhập giá trị 1 vào ô nhớ
R 2
1
Q
R 3 – Trong trường hợp S=R=1thì trạng thái của mạch không
NOR2 xác ñịnh, do ñó tổ hợp này bi cấm sử dụng trong các mạch
a)
b) SR.
=> Hoạt ñông của mạch lật SR ñược thể hiện qua bảng trạng thái
Hình 5.2. Mạch lật SR không ñồng bộ 5.1.
Ta thử xem hoạt ñộng của mạch như sau: S R Q(t+1)
– Giải sử Q ñang ở trạng thái 0 (Q=0, Q =1), cho tín hiệu 0 0 Q(t) No change
vào S=R=0, như vậy ñầu ra của U3 sẽ là: 0 1 0 Clear to 0
Q = Q + S = 0+0 =1 , 1 0 1 Set to 1

và ñầu ra của U4 sẽ là : 1 1 X Indeterminate


Bảng 5.1. Bảng trạng thái của mạch lật SR
157 158
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

ðối với mỗi mạch lật thì bao giờ cũng có 2 loại, không 5.2.2. Mạch lật D
ñồng bộ và mạch lật ñồng bộ, nhưng trên thực tế thì người ta chủ
yếu dùng mạch ñồng bộ, do ñó ở ñây chúng ta cũng sẽ tìm hiểu kỹ Mạch lật D (Data) là loại mạch lật ñơn giản nhất, nó chỉ hơi
hơn về loại này. Mạch lật SR ñồng bộ (dùng xung ñồng hồ) như ở khác mạch lật SR. Mạch lật SR ñược ñổi sang mạch lật D bằng
hình 5.3 (a), hình 5.3 (b) là sơ ñồ mạch của mạch lật này. Nó có ba cách ñưa vào một cổng ñảo giữa S và R và dùng ký hiệu D cho ngõ
ngõ vào, S (Setting- ñặt), R (Resetting - Khởi ñộng) và C (Clock- vào duy nhất (xem hình 5.4 b). Khi D=1, ngõ ra là 1, khi D=0, ngõ
ñồng hồ). Nó có một ngõ ra Q và ñôi khi có ngõ ra bù, ký hiệu ra là 0.
bằng một vòng tròn nhỏ. Hình 5.4(a) cho ta thấy qui ước ký hiệu và bảng ñặc tính
của mạch lật D. Hình 5.4(b) là sơ ñồ của mạch lật này. Chú ý là
2
U1
U3
trạng thái kế Q(t+1) ñược xác ñịnh từ ngõ vào D. Mối quan hệ có
S
3
1 2
1
_ thể biểu diễn bằng phương trình ñặc tính : Q(t+1) = D. ðiều này có
S Q 3 Q
AND2 nghĩa ngõ ra Q của mạch lật nhận trị từ ngõ vào D khi tín hiệu ñồng
NOR2
C hồ bằng 1.
C
Q
R
U2 2
U4
D Q D Q(t+1)
2 1
1 3
Q
R 3
Q 0 0 Clear to 0
AND2
NOR2 C
a) 1 1 Set to 1
b)
a)
Hình 5.3. Mạch lật SR U1
2 U3
D
Hoạt ñộng mạch lật SR như sau: Nếu không có tín hiệu 3
1 2
1
_
3 Q
nhập ñồng hồ C (C=0), ngõ ra của mạch không thể thay ñổi bất AND2
NOR2
chấp trị của R và S vì ñầu ra của 2 cổng U1 và U2 luôn bằng 0 ( 0 C
AND số bất kỳ = 0). Chỉ khi tín hiệu ñồng hồ C=1, ngõ ra mới bị
ảnh hưởng theo trị của ngõ vào S và R. Nếu S=1, R=0, Q chuyển U2 2
U4

U5 2 1
Q
sang 1. Nếu S=0, R=1 Q chuyển sang 0. Nếu S và R là 0 khi ñồng 2 1 3
1 3

hồ chuyển, ngõ ra không ñổi. Khi cả S và R là 1, ngõ ra không xác AND2


NOR2

NOT
ñịnh, có thể là 0 hoặc 1 tùy thuộc vào khoảng thời gian trì hoãn
trong mạch. Hay nói cách khác khi C luôn bằng 1 thì mạch lật SR b)
ñồng bộ (hình 5.3) hoạt ñộng như mạch lật SR không ñồng bộ Hình 5.4. Mạch lật D
(hình 5.2) ở trên. Lưu ý là không có ñiều kiện nhập ñể giữ trạng thái của
mạch lật D. Tuy mạch lật D thuận tiện là chỉ có một ngõ vào nhưng
bất tiện là không có ñiều kiện không ñổi Q(t+1) = Q(t). ðiều kiện
không ñổi có thể lấy bằng cách vô hiệu tín hiệu ñồng hồ hoặc cho

159 160
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

ngõ ra trở lại ngõ vào, lúc ñó xung ñồng hồ sẽ giữ trạng thái mạch
lật không ñổi.
T Q T Q(t+1)
Q 0 Q(t) No change
5.2.3. Mạch lật JK C
1 Q (t ) Complement
Một mạch lật khác thường hay ñược sử dụng là mạch lật
JK, là một cải tiến của mạch lật SR trong ñó ñiều kiện không xác Hình 5.6. Mạch lật T
ñịnh của SR ñược ñịnh nghĩa trong JK. Ngõ vào J, K hoạt ñộng
giống như S, R ñể ñặt và xóa mạch lật. Khi J và K ñều bằng 1, khi 5.3. Mạch lật lề (Flip-flop)
ñồng hồ C = 1 sẽ chuyển ngõ ra mạch lật sang trại thái bù. Các loại mạch lật nói trên thực sự chỉ là một trong hai loại
Ký hiệu và bảng ñặc tính mạch lật JK ở hình 5.5. J tương mạch lật lề. ðây là loại mạch lật thông dụng nhất ñể ñồng bộ việc
ñương với S trong SR và K tương ñương với R. thay ñổi trạng thái trong một chuyển tiếp xung ñồng hồ. Trong loại
mạch lật này, các chuyển tiếp xuất xảy ra tại một mức xung ñồng
J K Q(t+1) hồ xác ñịnh. Khi mức nhập xung vượt quá ngưỡng này, các ngõ
J Q
0 0 Q(t) No change nhập bị khóa lại sao cho ñến khi xung ñồng hồ trở về 0 và một
C
xung khác ñến. Một số mạch lật lề tạo chuyển tiếp ở lề lên của tín
Q 0 1 0 Clear to 0
hiệu ñồng hồ (chuyển tiếp lề dương – positive-edge transition) và
K 1 0 1 Set to 1 một số khác tạo chuyển tiếp ở lề xuống của tín hiệu ñồng hồ
1 1 Q (t ) Complement (chuyển tiếp lề âm – negative-edge transition)
Hình 5.5. Mạch lật JK ðiểm khác biệt giữa các mạch lật và mạch lật lề là ở chỗ
ðiểm khác biệt lớn nhất ở ñây là thay vì không xác ñịnh, mạch lật kích thích bằng mức (level triggered), còn mạch lật lề
mạch lật JK có ñiều kiện bù Q(t+1) khi J=K=1. Trong một mạch số kích thích bằng biên (edge triggered). Ngoài ra ở mạch lật lề còn
thì tồn tại một trạng thái không xác ñịnh là ñiều không mong muốn, có một ký hiệu mũi tên trước chữ C biểu thị một ngõ nhập ñộng
chính do ñiều ñó mà mạch lật JK ñược sử dụng nhiều hơn. (xem hình 5.7. Ký hiệu chỉ báo ñộng cho biết mạch lật lề thay ñổi
trạng thái với một chuyển tiếp dương (từ 0 sang 1) của tín hiệu
5.2.4. Mạch lật T ñồng hồ ở ngõ nhập.
Mạch lật cuối cùng là kế thừa của mạch lật JK bằng cách Hình 5.7 cho thấy tín hiệu xung ñồng hồ trong mạch lật D lề
kết nối hai ngõ vào với nhau thành một ngõ vào T. Hình 5.6, là ký dương. Trị ở ngõ nhập D chuyển sang ngõ xuất Q khi ñồng hồ tạo
hiệu và bảng trạng thái mạch. Xuất phát từ mạch lật JK với hai ngõ chuyển tiếp dương. Ngõ xuất không thể thay ñổi khi ñồng hồ ở
vào ñược kết nối thành một ngõ vào T. Vì vậy mạch lật T chỉ có hai mức 1, mức 0 hoặc trong chuyển tiếp từ mức 1 xuống 0. Chuyển
ñiều kiện. Khi T=0 (J=K=0) , với mọi giá trị của C không thay ñổi tiếp ñồng hồ dương có hiệu lực bao gồm một thời gian tối thiểu gọi
trạng thái của mạch lật. Khi T=1 (J=K=1), và khi C =1 sẽ làm bù là thời ñịnh (setup time) trong ñó ngõ nhập D phải duy trì một hằng
trạng thái mạch lật. Các ñiều kiện này có thể biểu diễn bằng trị trước khi chuyển tiếp và một thời gian hữu hạn gọi là thời lưu
phương trình thuộc tính : Q(t+1) = Q(t) ⊕ T. (hold time) trong ñó ngõ nhập D không ñược thay ñổi sau chuyển

161 162
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

tiếp dương. Chuyển tiếp dương có hiệu lực thường là một phần rất trạng thái mới 1 (vòng tròn có số 1). Tương tự như vậy khi ñang ở
nhỏ trong tổng chu kỳ xung ñồng hồ. trạng thái 1, nếu D=1 thì không ñổi, nếu D=0 thì chuyển trạng thái.
ðồ thị biểu diễn ở hình 5.8b cũng cho ta thấy các thay ñổi này.
D Q Trong trường hợp mạch lật lề D ñược kích hoạt ở chuyển
Clock
tiếp âm ta có ký hiệu như hình 5.8. Ký hiệu chỉ khác chỗ ngõ vào
C Q của clock có thêm một ô tròn. Trong trường hợp này ñầu ra của
mạch chỉ thay ñổi ở chuyển tiếp từ 1 xuống 0.
Output
Chuyển tiếp lề cannot
dương change D Q
Hình 5.7. Flip-flop D với chuyển tiếp dương
Thường ñối với các flip-flop ngoài cách dùng bảng trạng C Q
thái người ta còn hay dùng biểu ñồ trạng thái như trong hình 5.8 (a)
và ñồ thị miêu tả hoạt ñộng của mạch ở dạng tín hiệu ở hình 5.8(b). Hình 5.8. Flip-flop D với chuyển tiếp âm
Bảng kích thích
ðể thiết kế mạch tuần tự chúng ta thường biết việc chuyển
tiếp từ trạng thái này sang một trạng thái khác và muốn tìm các
ñiều kiện nhập của mạch lật ñể tạo ra chuyển tiếp ñó. Như vậy, ñể
mô tả hoạt ñộng của các mạch lật lề chúng ta cần một bảng liệt kê
các tổ hợp nhập cần có ñể tạo ra một thay ñổi trạng thái yêu cầu.
a) Bảng này ta gọi là bảng kích thích mạch lật lề.
Trong bảng 5.2. cho ta thấy hoạt ñộng của bốn loại mạch lật
lề D, SR, JK và T. Mỗi bảng gồm các cột :
– Q(t) – cho giá trị mạch ở thời ñiểm t
– Q(t+1) – cho giá trị mạch ở thời ñiểm sau ñó t+1
– Các cột cho mỗi ngõ vào.
Bảng này cho thấy ứng với các ngõ vào trạng thái của mạch
b) sẽ ñược chuyển tiếp ra sao. Có bốn khả năng chuyển tiếp từ trạng
Hình 5.8. Biểu ñồ trạng thái và ñồ thị của flip-flop D thái hiện hành Q(t) sang trạng thái kế Q(t+1). Các ñiều kiện nhập
Biểu ñồ trạng thái (hình 5.8a) cho ta cái nhìn khái quát và cho mỗi một chuyển tiếp này xuất phát từ thông tin trong bảng ñặc
dễ hiểu hơn của việc chuyển ñổi các trạng thái mạch. Khi ñang ở tính. Ký hiệu x trong bảng biểu diễn một ñiều kiện không cần
trạng thái 0 (vòng tròn có số 0), nếu D=0 thì trạng thái không ñổi
(mũi tên quay trở lại chính nó); khi D=1 thì trạng thái chuyển qua
163 164
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

(don’t care condition) hoặc tùy chọn; tức là 0 hoặc 1 ñều không ảnh các tín hiệu nhị phân từ các ngõ nhập ngoài và từ các ngõ ra của
hưởng. mạch lật. Ngõ ra mạch tổ hợp ñi ra ngoài (gọi là xuất ngoài) và ñi
vào mạch lật.
Các cổng trong mạch tổ hợp xác ñịnh trị nhị phân lưu vào
Mạch lật SR Mạch lật D
mạch lật sau mỗi chuyển tiếp ñồng hồ. ðến phiên các ngõ ra của
Q(t) Q(t+1) S R Q(t) Q(t+1) D
mạch lật ñược ñưa vào mạch tổ hợp và xác ñịnh hành vi của mạch.
0 0 0 x 0 0 0
Hơn nữa, trạng thái kế của mạch lật cũng là hàm của trạng thái hiện
0 1 1 0 0 1 1 tại và các ngõ nhập ngoài. Như vậy mạch tuần tự ñược xác ñịnh bởi
1 0 0 1 1 0 0 các ngõ nhập ngoài, các ngõ xuất ngoài và trạng thái nhị phân của
1 1 x 0 1 1 1 mạch lật.
Input
Mạch lật JK Mạch lật T Combinational
Q(t) Q(t+1) J K Q(t) Q(t+1) T Output
circuit
0 0 0 x 0 0 0 Flip-flops
0 1 1 x 0 1 1 Clock
1 0 x 1 1 0 1
1 1 x 0 1 1 0 Hình 5.9. Sơ ñồ khối mạch tuần tự
Bảng 5.2 Bảng kích thích của bốn mạch lật lề
Qui trình thiết kế mạch tuần tự ñược thể hiện qua các bước sau:
Lý do có ñiều kiện không cần trong bảng kích thích vì có
hai cách lấy chuyển tiếp. Ví dụ, trong mạch lật JK, một chuyển tiếp Bước 1: Chuyển ñặc tả mạch sang lược ñồ trạng thái
từ trạng thái hiện hành 0 sang trạng thái kế 0 có thể nhận ñược Bước 2: lược ñồ trạng thái => bảng trạng thái
bằng cách cho J=K=0 (không ñổi) hoặc J=0, K=1 ñể xóa mạch lật Bước 3: Từ bảng trạng thái viết hàm cho các ngõ nhập của
(dù ñã xóa rồi). Trong cả hai trường hợp J phải là 0, nhưng K là 0 ở Flip-flops
trường hợp một và 1 ở trường hợp hai. Vì chuyển tiếp yêu cầu xuất Bước 4: vẽ sơ ñồ mạch
hiện trong cả hai trường hợp, chúng ta ghi K là x. ðể hiểu rõ mạch tuần tự và cách thiết kế nó, ta sẽ bắt ñầu
bằng việc xem xét một ví dụ ñơn giản sau
5.4. Mạch tuần tự. Ví dụ: Thiết kế mạch tuần tự dùng mạch lật SR. Khi ngõ nhập
Sơ ñồ khối mạch tuần tự ñược minh họa có ñồng hồ ñược x=0, trạng thái mạch lật lề không thay ñổi, ngõ xuất y=0. Khi x=1,
minh họa như trong hình 5.9. Từ sơ ñồ ta thấy mạch tuần tự là một dãy trạng thái là 11,10,01,00 và lặp lại còn ngõ xuất y sẽ có giá trị
kết nối các mạch lật với một mạch tổ hợp khác, mà mạch tổ hợp là 1 khi số bit trạng thái mạch lật lề bằng 1 là lẻ, các trường hợp
này lại ñược tạo ra từ các cổng cơ bản. Bản thân các cổng tạo thành còn lại thì bằng 0.
mạch tổ hợp, nhưng khi gộp vào các mạch lập toàn bộ mạch ñược
Giải:
sắp vào loại mạch tuần tự. Nó gồm một mạch tổ hợp và một số
Bước 1:
mạch lật có ñồng hồ. Như trong lược ñồ, khối mạch tổ hợp nhận
165 166
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

Từ yêu cầu của ví dụ ta xây dựng lược ñồ trạng thái của => trên ñường chuyển trạng thái ta ghi 1/0. Ở ñây ta lưu ý là trạng
mạch. Theo ñề bài ta có 4 trạng thái là 11100100, như vậy sẽ thái mạch lật lề chỉ thay ñổi ở chuyển tiếp của xung ñồng hồ,
có 4 vòng tròn ñể biểu diễn 4 trạng thái này. Lược ñồ trạng thái của nhưng trong khi lập luận ñể cho ñơn giản và ñỡ nhầm lẫn ta không
mạch như hình 5.10. ñề cập ñến nó.

0/0 Bước 2:
Từ lược ñồ trạng thái này ta sẽ xây dựng một bảng trạng
11 thái. Theo yêu cầu dùng flip-flop SR, ma ta ñã biết mỗi flip-flop
cho phép ta nhớ 1 bit. Vậy ở ñây ta có 4 trạng thái, do ñó cần có hai
1/0 1/0 flip-flop ñể mã hóa chúng. Ta gọi 2 flip-flop ñó là A và B, và các
0/0 ñầu vào của chúng tương ứng sẽ là SA,RA,SB,RB. Từ sơ ñồ khối
0/0 mạch tuần tự hình 5.9, chúng ta cũng biết ñược ñầu ra của các flip-
10 flop cũng chính là ñầu vào của mạch. Như vậy bảng trạng thái sẽ
00
có 3 ñầu vào là A,B và x => có 23=8 tổ hợp. Ngoài ra trong bảng
1/1 trạng thái ta còn có một ñầu ra y. Các trạng thái của mạch ñược
1/1 biểu hiện trong bảng 5.3. Dựa vào bảng trạn thái của mạch lật lề ở
bảng 5.2 ta sẽ tìm ra các giá trị trong bảng 5.3. Ba cột ñầu tiên là
01 giá trị nhập vào, do ñó ta chỉ cần ñiền các giá trị sao cho thể hiện
0/0 tất cả các tổ hợp có thể có. ðể tránh nhầm lẫn ta ñiền theo thứ tự từ
000001010…
Xác ñịnh giá trị trong cột “trạng thái kế”
Hình 5.10.Lược ñồ trạng thái mạch
Trong lược ñồ này mỗi trạng thái biểu thị bằng một vòng Tiếp theo ñến cộ trạng thái kế, từ lược ñồ trạng thái ta có
tròn nhỏ với trạng thái ñược chỉ bên trong vòng tròn và các ñường nếu ñang ở trạng thái 00 (AB=00) thì khi x =0 trạng thái sẽ không
dẫn trực tiếp nối các trạng thái chỉ cho biết hướng chuyển tiếp giữa thay ñổi, do ñó ở hàng ñầu tiên A=0, B=0; ở hàng tiếp theo khi x=1
các trạng thái. Trên mỗi ñường có mũi tên ñịnh hướng và trên ñó thì trạng thái sẽ thay ñổi từ 0011 => A=1, B=1. Tương tự, ta sẽ
ghi giá trị của biến ñầu vào mạch x và biến ñầu ra y. Giá trị của hai có ñược giá trị cho tất cả các hàng ở cột trạng thái kế.
biến này ñược cách nhau bởi dấu “/”. Ví dụ như nếu ta ñang ở trạng Xác ñịnh các ngõ nhập vào các flip-flop
thái 11, và nếu tín hiệu ñầu vào là 0 (x=0) thì trạng thái sẽ không
Cũng dựa vào bảng trạng thái của flip-flop SR ta sẽ xác
thay ñổi (ñường có mũi tên xuất phát từ nó và quay về chính nó) và
ñịnh ñược các giá trị của các cột còn lại. Chẳng hạn như ñối với
ñầu ra y=0. Như vậy trên ñường mũi tên ta ghi 0/0 tức là x/y hay
flip-flop A, khi A chuyển từ 0 sang 0 thì SA=0, RA=x; khi A chuyển
x=0 và y=0. Nếu tín hiệu vào x=1 thì trạng thái sẽ chuyển sang một
từ 0 sang 1 thì SA=1, RA=0;….
trạng thái mới là 10 (mũi tên chỉ ñến trạng thái 10) và vì số bit của
các flip-flop có giá trị bằng 1 là 2, tức là chẵn cho nên ñầu ra y=0

167 168
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

Trạng Nhập Trạng Ngõ nhập vào các ðầu ra Bx


thái hiện thái flip-flop
tại kế
A 00 01 11 10
A B x A B SA RA SB RB y 0 x x x
0 0 0 0 0 0 x 0 x 0 1 1
0 0 1 1 1 1 0 1 0 0
0 1 0 0 1 0 x x 0 0 => RA= AB x
0 1 1 0 0 0 x 0 1 1
1 0 0 1 0 x 0 0 x 0 ðối với flip-flop B ta có :
1 0 1 0 1 0 1 1 0 1 Bx Bx
1 1 0 1 1 x 0 x 0 0 A 00 01 11 10 A 00 01 11 10
1 1 1 1 0 x 0 0 1 0
0 1 x 0 x 1
Bảng 5.3. Bảng trạng thái mạch tuần tự
Bước 3:
Từ bảng trạng thái 5.3 ta tìm hàm cho các ngõ nhập vào các 1 1 x 1 x 1
flip-flop. Chú ý là các hàm tìm ñược phải là ngắn gọn nhất, ñể làm
ñược việc ñó ta phải dùng bản ñồ Karnaugh ñể rút gọn chúng.
Trước hết từ bảng 5.3 => bản ñồ Karnaugh cho ñầu vào SA như => SB = B x => RB = Bx
sau :
Bx Bản ñồ cho ñầu ra y :
A 00 01 11 10
Bx
0 1
A 00 01 11 10
1 x x x 0 1

Từ bản ñồ này ta suy ra => SA = A B x 1 1


Tương tự như vậy cho các cổng còn lại, ta có bản ñồ Karnaugh cho
RA :
Từ bản ñồ này ta suy ra => y = A Bx + AB x

Phương trình nhập mạch lật


Như vậy trong bước 3 này ta ñã tìm ra ñược hàm hay
phương trình nhập cho các mạch flip-flop như sau:
169 170
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

– SA = A B x Chú ý là khi vẽ mạch thì các ñầu vào lấy từ các ñầu ra
– RA= AB x nghịch ñảo của flip-flop phải ñược lấy từ ñầu ra Q của flip-flop
– SB = B x tương ứng. Ví dụ RA= AB x thì ñầu B phải ñược lấy từ ñầu ra Q
– RB = Bx của flip-flop B chứ không ñược dùng ñầu ra Q của flip-flop B rồi
Từ ví dụ này chúng ta thấy rằng phương trình nhập mạch lật cho qua một cổng inverter.
là biểu thức Boolean của mạch tổ hợp.
Qua ví dụ trên cho ta các ñặc trưng của một mạch tuần tự
Bước 4: như sau:
Bước này là ñơn giản nhất vì khi ñã có hàm Boolean rồi thì - Lược ñồ trạng thái ñược biểu diễn bằng các vòng tròn, mỗi
việc lựa chọn cổng và vẽ sơ ñồ mạch là hoàn toàn không khó khăn vòng tròn biểu diễn một trạng thái và chuyển tiếp giữa các
gì. Sơ ñồ mạch của mạch tuần tự cần thiết kế như hình 5.11. trạng thái ñược ghi nhận bằng các ñường nối các vòng.
Luợc ñồ trạng thái cung cấp cho ta các thông tin như bảng
trạng thái nhưng một cách trực quan, rõ ràng và dễ hiểu
hơn.
y - Số nhị phân trong mỗi vòng xác ñịnh trạng thái của các
flip-flop. Trên các ñường nối ta ghi giá trị của biến nhập x
và biến xuất y cách nhau bằng dấu số (/) bằng các con số
nhị phân. Trị nhập trong trạng thái hiện tại ñược ghi trước
và số sau dấu sổ là trị xuất trong trang thái hiện hành. Vi
S Q A dụ ñường nối từ trạng thái 00 ñến 11 ghi 1/0 có nghĩa khi
x mạch tuần tự ở trạng thái hiện hành 00 và nhập là 1, xuất
C
là 0. Sau một chuyển tiếp ñồng hồ, mạch ñến trạng thái kế
Q A
R 11.
- Lược ñồ trạng thái cho một cái nhìn hình tượng các
chuyển tiếp trạng thái và thích hợp cho mọi người khi diễn
giải hoạt ñộng của mạch.
S Q B - Mạch tuần tự ñược xác ñịnh qua bảng trạng thái liên kết
C các ngõ ra và trạng thái kế như là một hàm của các ngỏ
Q B nhập và trạng thái hiện hành sang trạng thái kế ñược kích
R hoạt bởi một tín hiệu ñồng hồ. Bảng trạng thái gồm bốn
phần, trạng thái hiện hành, nhập, trạng thái kế và xuất.
Phần trạng thái hiện hành cho thấy trạng thái của mạch lật
Clock Hình 5.11. Sơ ñồ mạch của ví dụ A và B tại thời ñiểm t. Phần nhập là trị của x cho mỗi
171 172
Simpo
ChươngPDF Merge
V: Mạch and Split Unregistered Version - http://www.simpopdf.com
tuần tự Chương V: Mạch tuần tự

trạng thái hiện hành. Phần trạng thái kế cho thấy trạng thái 5. Thiết kế mạch ñếm giảm 2 bit. ðây là mạch tuần tự có 2
của mạch lật tại một chu kỳ sau ñó là thời ñiểm t+1. Phần flip-flop và 1 ngõ nhập x. Khi x=0, trạng thái mạch lật không ñổi.
xuất cho trị của y với mỗi trạng thái hiện hành và ñiều Khi x=1, dãy trạng thái là 11, 10, 01, 00 và lặp lại.
kiện nhập. 6. Thiết kế mạch tuần tự có 2 mạch lật JK, A và B và 2 ngõ
- Lược ñồ trạng thái và bảng trạng thái ñề mô tả hoạt ñộng vào E và x. Nếu E=0 mạch giữ nguyên trạng thái bất chấp x. Khi
của mạch tuần tự. Có lược ñồ trạng thái thì ta có thể suy ra E=1 và x =1 mạch chuyển trạng thái từ 00 sang 01 sang 10 sang 11
bảng trạng thái và ngược lại. về 00 và lặp lại. (ở ñây E-Enable giống như cổng ñiều khiển cho
phép mạch hoạt ñộng hay không)
7. Thiết kế mạch tuần tự dùng mạch lật T. Khi ngõ nhập
x=0, trạng thái mạch lật không thay ñổi. Khi x=1, dãy trạng thái là
00,10,01,11 và lặp lại.

Bài tập chương V


1. Hãy chứng minh rằng JK flip-flop có thể chuyển sang D
flip-flop với một cổng ñảo ñặt giữa các ngõ nhập J và K
2. Thiết kế mạch tuần tự dùng mạch lật JK. Khi ngõ nhập
x=0, trạng thái mạch lật không thay ñổi. Khi x=1, dãy trạng thái là
11,01,10,00 và lặp lại.
3. Một mạch tuần tự gồm 2 D flip-flop A và B , 2 ngõ nhập
x,y một ngõ xuất z. Phương trình các ngõ nhập vào các flip-flop và
ngõ xuất mạch như sau:
DA = x y + xA
DB = x B + xA
Z=B
a. Vẽ lược ñộ luận lý của mạch
b. Lập bảng trạng thái.
4. Thiết kế mạch ñếm nhị phân 2-bit là một mạch tuần tự có
ñồng hồ ñi qua một dãy trạng thái nhị phân 00, 01, 10, 11 và lặp lại
khi ngõ nhập ngoài x có trị 1. Trạng thái mạch không ñổi khi x = 0.
173 174
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Chương VI: Kiến trúc bộ lệnh Kiến trúc GPRA có một loại có thể truy cập trực tiếp vào bộ
nhớ (register-memory); một loại có thể truy cập vào bộ nhớ nhưng
phải nạp thông qua một register gọi là kiến trúc nạp-lưu (load-
Trong chương này chúng ta sẽ tập trung vào kiến trúc bộ
store) hay kiến trúc trên các thanh ghi (register-register); ngoài ra
lệnh của máy tính, giới thiệu các trường hợp khác nhau của các
còn một kiểu kiến trúc GPRA nữa là kiến trúc bộ nhớ-bộ nhớ
kiểu kiến trúc bộ lệnh. ðặc biệt trong chương này sẽ tập trung vào
(memory-memory), nhưng kiểu này không còn thấy ngoài thị
bốn chủ ñề chính. ðầu tiên là phân loại các kiểu kiến trúc bộ lệnh
trường ngày nay nữa.
và ñánh giá những ưu khuyết ñiểm của chúng
Những máy tính ra ñời trước kia thường dùng kiểu kiến trúc
6.1. Phân loại kiến trúc bộ lệnh ngăn xếp hoặc kiến trúc thanh ghi tích lũy, nhưng từ sau năm 1980
thì ñều dùng kiến trúc GPR. Hiện tại các nhà sản xuất máy tính có
Có ba loại kiến trúc bộ lệnh cơ bản: kiến trúc ngăn xếp
khuynh hướng dùng kiến trúc phần mềm thanh ghi ña dụng vì việc
(stack), kiến trúc thanh ghi tích lũy (Accumulator) và kiến trúc
thâm nhập các thanh ghi ña dụng nhanh hơn thâm nhập bộ nhớ
thanh ghi ña dụng GPRA(general-purpose register architecture).
trong, và vì các chương trình dịch dùng các thanh ghi ña dụng có
Trong ñó kiến trúc GPRA lại chia làm hai loại thông dụng là thanh
hiệu quả hơn. Bảng 6.1 cho ta thấy các ưu và nhược ñiểm của ba
ghi – bộ nhớ (register-memory) và nạp-lưu (load-store). Ví dụ phép
loại kiến trúc cơ bản này.
tính C = A + B ñược dùng trong các kiểu kiến trúc trong hình 6.1.
Như vậy kiểu kiến trúc GPR ñược dùng ngày nay bởi các
yếu tố sau:
– Dùng thanh ghi, một dạng lưu trữ trong của CPU có tốc ñộ
nhanh hơn bộ nhớ ngoài
– Dùng thanh ghi thì dễ dàng cho trình biên dịch và có thể
dùng hiệu quả hơn là bộ nhớ ngoài. Ví dụ biểu thức (A*B)
+ (C*D) – (E*F) có thể tính bằng cách nhân các phần trong
Hình 6.1. Thực hiện lệnh C = A + B cho 4 kiểu kiến trúc bộ lệnh ngoặc ở mọi thứ tự, và khi ứng dụng kỹ thuật pipeline, một
kỹ thuật làm cho các giai ñoạn khác nhau của nhiều lệnh
Trong một câu lệnh thì chúng ta có các toán hạng, mà các ñược thi hành cùng một lúc => sẽ hiệu quả hơn. Trong khi
toán hạng lại ñược chia thành hai loại: ẩn (implicitly) và hiện ñó nếu là kiến trúc stack thì biểu thức ñó chỉ có thể ñược
(explicitly): Toán hạng trong kiến trúc ngăn xếp là loại ẩn ở trên tính tuần tự từ trái sang phải
ñầu của ngăn xếp, kiến trúc thanh ghi tích lũy có một toán hạng ẩn
ở trong accumulator, còn kiến trúc GPRA thì chỉ dùng toán hạng – Có thể dùng thanh ghi ñể lưu các biến và như vậy sẽ giảm
hiện, hoặc là thanh ghi hoặc là trên bộ nhớ. Toán hạng dạng hiện có thâm nhập ñến bộ nhớ => chương trình sẽ nhanh hơn
thể truy cập trực tiếp từ bộ nhờ hoặc ñầu tiên ñược nạp vào thanh Tuy nhiên do các lệnh ñều dùng thanh ghi vậy bao nhiêu
ghi tạm thời nào ñó phụ thuộc vào kiểu kiến trúc bộ lệnh ñặc trưng thanh ghi là ñủ? câu trả lời phụ thuộc vào việc các thanh ghi ñược
của nó. sử dụng bởi trình biên dịch như thế nào. Phần lớn trình biên dịch
175 176
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

dành riêng một vài thanh ghi cho tính toán một biểu thức, dùng vài  Kiểu kiến trúc thanh ghi ña dụng
thanh ghi ñể chuyển các thông số cần thiết và cho phép các thanh Do hiện nay kiểu kiến trúc thanh ghi ña dụng chiếm vị trí
ghi còn lại lưu trữ các biến cần thiết.
hàng ñầu nên trong các phần sau, ta chỉ ñề cập ñến kiểu kiến trúc
này.
Loại kiến Ưu ñiểm Nhược ñiểm ðối với một lệnh tính toán hoặc logic ñiển hình (lệnh
trúc ALU), có 2 ñiểm cần nêu:
Ngăn xếp - Lệnh ngắn - Thâm nhập ngăn
(Stack) - Ít mã máy xếp không ngẫu – Trước tiên, một lệnh ALU phải có 2 hoặc 3 toán hạng. Nếu
- Làm tối thiểu trạng thái nhiên. trong lệnh có 3 toán hạng thì một trong các toán hạng chứa
bên trong của một máy tính - Mã không hiệu quả kết quả phép tính trên hai toán hạng kia (Ví dụ: ADD A, B,
- Dễ dàng tạo ra một bộ - Khó dùng trong xử C). Nếu trong lệnh có 2 toán hạng thì một trong hai toán
biên dịch ñơn giản cho lý song song và ống hạng phải vừa là toán hạng nguồn, vừa là toán hạng ñích
kiến trúc ngăn xếp dẫn (Ví dụ: ADD A, B).
- Khó tạo ra một bộ – Thứ hai, số lượng toán hạng bộ nhớ có trong lệnh. Số toán
biên dịch tối ưu hạng bộ nhớ có thể thay ñổi từ 0 tới 3.
Thanh ghi - Lệnh ngắn - Lưu giữ ở thanh
tích luỹ - Làm tối thiểu trạng thái ghi tích luỹ là tạm Như ñã nêu ở trên, trong nhiều cách tổ hợp có thể có các
(Accumulator bên trong của máy tính (yêu thời. loại toán hạng của một lệnh ALU, các máy tính hiện nay chọn một
Register) cầu ít mạch chức năng) - Nghẽn ở thanh ghi trong 3 kiểu sau :
- Thiết kế dễ dàng tích luỹ • thanh ghi-thanh ghi (kiểu này còn ñược gọi nạp - lưu
- Khó dùng trong xử trữ),
lý song song và ống • thanh ghi - bộ nhớ
dẫn • bộ nhớ - bộ nhớ.
- Trao ñổi nhiều với
bộ nhớ. Kiểu thanh ghi - thanh ghi ñược nhiều nhà chế tạo máy tính
Thanh ghi - Tốc ñộ xử lý nhanh, - Lệnh dài lưu ý với các lý do: việc tạo các mã máy ñơn giản, chiều dài mã
ña dụng ñịnh vị ñơn giản. - Số lượng thanh ghi máy cố ñịnh và số chu kỳ xung nhịp cần thiết cho việc thực hiện
(General - Ít thâm nhập bộ nhớ. bị giới hạn lệnh là cố ñịnh, ít thâm nhập bộ nhớ. Tuy nhiên, kiểu kiến trúc này
Register) - Kiểu rất tổng quát ñể cũng có một vài hạn chế của nó như: số lượng thanh ghi bị giới
tạo các mã hữu hiệu hạn, việc các thanh ghi có cùng ñộ dài dẫn ñến không hiệu quả
Bảng 6.1. So sánh các kiểu kiến trúc bộ lệnh trong các lệnh xử lý chuối cũng như các lệnh có cấu trúc. Việc lưu
và phục hồi các trạng thái khi có các lời gọi thủ tục hay chuyển ñổi
ngữ cảnh.

177 178
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

6.2. ðịa chỉ bộ nhớ Sắp xếp thứ tự byte


Trong kiến trúc bộ lệnh bao giờ chúng ta cũng phải ñề cập Có hai cách sắp xếp thứ tự byte trong một từ, ñánh số byte
ñến các toán hạng, mà một số toán hạng này ñược lưu trong bộ trong một từ từ trái sang phải và ñánh số byte trong một từ từ phải
nhớ. Vậy cách tổ chức ñịa chỉ bộ nhớ ra sao là ñiều cần biết trước sang trái.
khi ñi vào nghiên cứu các bộ lệnh. Hình 6.2(a) cho thấy thứ tự byte trong bộ nhớ trên máy tính
Bộ nhớ (memory) là thành phần lưu trữ chương trình và dữ 32 bịt có số byte ñược ñánh số từ trái sang phải, như họ Motorola
liệu trong máy tính mà trong chương 5 chúng ta ñã biết Bit là ðơn chẳng hạn. Hình 6.2(b) là một minh họa tương tự về máy tính 32
vị cơ bản của bộ nhớ. Ngoài ra chúng ta cũng ñã biết 1 bit có thể bit, ñánh số từ phải sang trái, ví dụ như họ Intel. Hệ thống trước kia
ñược tạo ra bằng 1 flip-flop. Nhưng cách bố trí các ô nhớ trong một bắt ñầu ñánh số từ ñầu lớn ñược gọi là máy tính ñầu lớn (Big
bộ nhớ chung như thế nào? thứ tự sắp xếp của chúng ra sao? là ñiều endian), trái ngược với ñầu nhỏ (little endian).
chúng ta cần biết trong phần này.

ðịa chỉ bộ nhớ - Bộ nhớ gồm một số ô (hoặc vị trí), mỗi ô (cell) có
thể chứa một mẩu thông tin. Mỗi ô gắn một con số gọi là ñịa chỉ
(address), qua ñó chương trình có thể tham chiếu nó. Giả sử bộ nhớ
có n ô, chúng sẽ có ñịa chi từ 0 ñến n-1. Tất cả ô trong bộ nhớ ñều
chứa cùng số bit. Trong trường hợp ô có k bit nó có khả năng chứa
một trong số 2k tổ hợp bit khác nhau. Trong một bộ nhớ thì các ô
kế cận nhau sẽ có ñịa chỉ liên tiếp nhau.
Ô là ñơn vị có thể lập ñịa chỉ nhỏ nhất và các hãng khác
nhau dùng qui ñịnh số bit trong một ô cho từng loại máy tính của
Hình 6.2. (a) Bộ nhớ ñầu lớn (họ Motorola), (b) Bộ nhớ ñầu nhỏ
mình là khác nhau như IBM PC 8 bit/ô, DEC PDP-8 12bit/ô, IBM
(họ Intel)
1130 16 bit/ô,…Tuy nhiên trong những năm gần ñây, ña số các nhà
sản xuất máy tính ñều dùng chuẩn hóa ô 8 bit, gọi là byte. Byte
Cần biết rằng trong hệ thống ñầu lớn lẫn ñầu nhỏ, số
nhóm lại thành từ (word) và máy tính với từ 16 bit sẽ có 2 byte/từ,
nguyên 32 bit với trị số là 6 sẽ ñược biểu diễn bằng bit 110 ở 3 bit
còn máy tính với 32 bit sẽ có 4 byte/từ. Hầu hết các lệnh ñược thực
bên góc phải của từ và 0 ở 29 bit bên góc trái. Trong lược ñồ ñầu
hiện trên toàn bộ từ. Vì vậy máy tính 16 bit sẽ có thanh ghi 16 bit
lớn, những bit này nằm trong byte ñầu tiên bên phải, byte 3 (hoặc
và lệnh thao tác trên 1 từ 16 bit, còn máy 32 bit sẽ có thanh ghi 32
7,11,…), trong khi ñó ở lược ñồ ñầu nhỏ, chúng ở trong byte 0
bit và các lệnh thao tác trên 1 từ 32 bit.
(hoặc 4,8,…). Trong cả hai trường hợp, từ chứa số nguyên có ñịa
chỉ 0. ðiểm khác biệt này bên trong một máy tính là không có vấn
ñề gì, nhưng khi kết nối chúng vào trong cùng một mạng và khi
trao ñổi thông tin với nhau thì sẽ gặp nhiều vấn ñề trục trặc.

179 180
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

6.3. Mã hóa tập lệnh thay ñổi tùy ý (VAX). Ngoài ra một lệnh có thể ngắn hơn, dài hơn
hoặc bằng với ñộ dài một từ.
Một chương trình bao gồm một dãy các lệnh (hay còn gọi là
chỉ thị), mỗi lệnh chỉ rõ một việc làm cụ thể nào ñó của máy tính 6.3.1. Các tiêu chuẩn thiết kế dạng thức lệnh
như thực hiện phép cộng, thực hiện nhập dữ liệu, thực hiện ñọc dữ Vì có thể có nhiều dạng khác nhau của các lệnh, cho nên
liệu từ bộ nhớ,… khi thiết kế máy tính cần có các tiêu chí rõ ràng ñể lựa chọn dạng
Như chúng ta ñã thấy ở trên, trong một câu lệnh gồm có thức lệnh cho máy cần thiết kế. Một số các tiêu chí chính ñược các
nhiều phần. Trong ñó tác vụ thực hiện mỗi lệnh ñược chỉ rõ trong nhà thiết kế ñưa ra như sau:
một trường gọi là mã phép toán (operation code) hay mã tác vụ và  Tiêu chuẩn thiết kế 1: Mã lệnh ngắn ưu việt hơn mã lệnh dài
ñược gọi tắt là opcode, cho biết hành ñộng nào sẽ ñược thi hành (từ
ñây trở ñi ta dùng cụm từ mã tác vụ). Trong một lệnh còn chỉ ra ðây là tiêu chuẩn ñầu tiên và cũng là quan trọng nhất. Một
ñược thực hiện trên các thanh ghi hay ñịa chỉ (address) ô nhớ, nơi chương trình gồm n lệnh 16 bit chỉ chiếm chừng một nửa không
chứa ñựng dữ liệu cần xử lý. gian bộ nhớ so với n lệnh 32 bit. Suy cho cùng, bộ nhớ không miễn
phí, bởi vậy nhà thiết kế không thích lãng phí nó.
Trong hình 6.3 cho ta 3 trường hợp mã hóa lệnh ñơn giản
là một số khuôn dạng ñiển hình của các bộ lệnh. Trường hợp thứ Ngoài ra thì mỗi bộ nhớ có một tốc ñộ truyền cụ thế, ñược
nhất chỉ có mã tác tụ mà không có phần ñịa chỉ. Trường hợp thứ quyết ñịnh qua công nghệ và thiết kế kỹ thuật. Nếu tốc ñộ truyền
hai mã một lệnh có 2 phần, phần tác vụ lệnh và ñịa chỉ và trường của bộ nhớ là T bit/giây (bps - bit per second) và chiều dài lệnh
hợp thú 3 (c) thì phần ñịa chỉ chiếm 2 vùng của mã lệnh. trung bình là L thì nó có thể truyền ñi nhiều nhất là T/L lệnh trên
một giây. Vì vậy, tốc thi hành lệnh (tức tốc ñộ bộ xử lý) tùy thuộc
Opcode vào ñộ dài lệnh. Lệnh ngắn hơn ñồng nghĩa với bộ xử lý nhanh
hơn.
(a)
Nếu thời gian thi hành lệnh quá lâu so với thời gian tìm nạp
Opcode ðịa chỉ nó từ bộ nhớ, thời gian tìm nạp lệnh sẽ không quan trọng. Nhưng
(b) với CPU nhanh, bộ nhớ thường là nút cổ chai. Bởi vậy, tăng số
lệnh tìm nạp trên mỗi giây là tiêu chuẩn thiết kế quan trọng.
Opcode ðịa chỉ 1 ðịa chỉ 2
 Tiêu chuẩn thiết kế thứ 2: ðộ dài mã lệnh ñủ ñế biểu diễn tất
Hình 6.3. Một vài dạng mã lệnh cả phép toán mong muốn
Tùy thuộc vào kiến trúc của máy tính, trong một loại máy Nếu chúng ta cần thiết kế một máy tính với 2n các thao tác
tính mã lệnh có thể có cùng chiều dài hoặc khác nhau. Trên một số hay các vi tác vụ, thì ta không thể dùng mã hóa lệnh với ñộ dài nhỏ
máy tính tất cả các lệnh ñều có cùng ñộ dài (Power PC, SPARC, hơn n. ðơn giản không ñủ chỗ trong opcode ñế cho biết là lệnh nào
MIPS), một số máy khác lại có thể có hai hoặc ba ñộ dài khác hay mã hóa tất cả các lệnh ñó.
nhau (IBM 360/70, Intel 80x86), thậm chí ñộ dài mã lệnh có thể
 Tiêu chuẩn thiết kê thứ 3: ñộ dài word của máy bằng bội số
nguyên của ñộ dài ký tự.
181 182
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Trong trường hợp mà ký tự có k bit, ñộ dài từ phải là k, 2k, Hoặc có thể giữ nguyên ñịa chỉ 16 bit ñế tham chiếu bộ nhớ lớn
3k, 4k,… còn không sẽ lãng phí không gian khi lưu trữ các từ. gấp 4 lần mức cho phép của tổ chức 8 bit.
Tất nhiên có thế lưu trữ 3.5 ký tự trong một word, song việc Ví dụ này cho thấy rằng ñể ñạt sự phân giải bộ nhớ tốt hơn,
ñó sẽ làm việc sẽ gây ra tình trạng kém hiệu quả nghiêm trọng người ta phảỉ trả cái giá bằng ñịa chỉ dài hơn, nói chung, có nghĩa
trong khi truy cập các ký tự. Hạn chế do mã ký tự áp ñặt lên chiều là lệnh dài hơn. Mục tiêu tối thượng trong sự phân giải là tổ chức
dài từ cũng ảnh hưởng ñến chiều dài mã lệnh, bởi vì một lệnh tốt bộ nhớ có thế lập ñịa chỉ trực tiếp từng bit.
nhất là chiếm một số nguyên các byte hoặc số lệnh nguyên phải Thực tế có những máy tính mà chiều dài word chỉ có 1 bit
nằm gọn trong một từ. (ví dụ máy Burroughs B1700), lại có những máy mà word rất dài,
 Tiêu chuẩn thiết kế thứ 4: số BIT trong trường ñịa chỉ càng tới 60 bit (như máy CDC Cyber)
ngắn càng tốt 6.3.2. Opcode mở rộng
Tiêu chuẩn này liên quan tới việc chọn kích thước ô nhớ. Trong phần này chúng ta xem xét những cân nhắc và thỏa
Cứ xem thiết kế máy với ký tự 8 bit (có thế 7 bit cộng tính chẵn lẻ) hiệp liên quan ñến mã tác vụ - opcode và ñịa chỉ.
và bộ nhớ chính chứa 216 ký tự sẽ thấy. Nhà thiết kế có thể chọn
gán ñịa chỉ liên tiếp cho ñơn vị 8, 16, 24, hoặc 32 bit, cùng những Giả sử ta có lệnh (n+k) bit với opcode chiếm k bit và ñịa chỉ
khả năng khác. chiếm n bit. Lệnh này cung cấp 2k phép toán khác nhau và 2n ô nhớ
lập ñịa chỉ ñược. Hoặc, cùng n + k bit ñó có thế chia thành opcode
Hãy hình dung chuyện gì sẽ xảy ra nếu ñội ngũ thiết kế
(k – 1) bit và ñịa chỉ (n+1) bit, tức chỉ một nửa số lệnh nhưng gấp
phân hóa thành hai phe gây chiến, một phe dốc sức tạo byte 8 bit, ñôi bộ nhớ lập ñịa chỉ ñược, hoặc cũng dung lượng bộ nhớ ñó
ñơn vị cơ bản của bộ nhớ, còn phe kia ra sức tạo từ 32 bit như là nhưng Opcode (k+1) bit và ñịa chỉ (n-1) bit cho nhiều phép toán
ñơn vị cơ bản của bộ nhớ. Phe ñầu ñề nghị bộ nhớ 216 byte, ñược hơn, song phải trả giá bằng số ô lập ñịa chỉ ñược ít hơn. Giữa bit
ñánh số 0, 1, 2, 3,..., 65535. Phe sau ñề xuất bộ nhớ 214 từ, ñược
opcode và bit ñịa chỉ có những quân bình rất tinh tế cũng như ñơn
ñánh số 0, 1, 2, 3..., 16383. giản hơn như vừa trình bày.
Nhóm thứ nhất chỉ ra rằng ñế so sánh hai ký tự trong tổ
ðể hiểu rõ vấn ñề chúng ta xem ví dụ một máy tính có lệnh
chức từ 32 bit, chương trình chẳng những tìm nạp từ chứa ký tự mà dài 16 bit, trong ñó mã vi tác vụ opcode dài 4 bit và 3 trường ñịa
còn phải trích từng ký tự trong từ mới so sánh ñược. Làm vậy sẽ chỉ, mỗi trường dài 4 bit như hình 6.4.
tốn thêm lệnh và lãng phí không gian. Trái lại, tổ chức 8 bit cung
cấp ñịa chi cho từng lệnh, giúp so sánh dễ dàng hơn nhiều.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Phe ñề xuất 32 bit sẽ phản bác bằng lập luận rằng ñề xuất
của họ chỉ cần 214 ñịa chỉ riêng biệt, cho ñộ dài ñịa chỉ 14 bit mà
thôi, còn ñề nghị byte 8 bit ñòi hỏi 16 bit ñể lập ñịa chỉ cùng một
bộ nhớ. ðịa chi ngắn hơn ñồng nghĩa với lệnh ngắn hơn, không Opcode ðịa chỉ 1 ðịa chỉ 2 ðịa chỉ 3
những chiếm ít không gian mà còn ñòi hỏi ít thời gian tìm nạp hơn. Hình 6.4. Lệnh có opcode 4 bit và 3 ñịa chỉ 4 bit

183 184
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Như vậy, ứng với mã vi tác vụ 4 bit sẽ cung cấp cho ta


4
2 =16 lệnh khác nhau với 3 ñịa chỉ. Nhưng nếu nhà thiết kế cần 15 16 bit
lệnh ba ñịa chỉ, hoặc 14 lệnh hai ñịa chỉ, hoặc 31 lệnh một ñịa chỉ
thì họ sẽ phải lảm thế nào? 31 lệnh
ðối với trường hợp thứ nhất 15 lệnh ba ñịa chỉ thì nhà thiết opcode 1111 1110 0000 zzzz
1111 1110 0001 zzzz 1 ñịa chỉ
kế có thể lấy nguyên cấu trúc trên hình 6.4, nhưng bỏ ñi một trường 12 bit
hợp của opcode như trong hình 6.5(a). .
.
16 bit 1111 1110 1110 zzzz
15 lệnh 1111 1110 1111 zzzz
opcode 0000 xxxx yyyy zzzz
0001 xxxx yyyy zzzz 3 ñịa chỉ 1111 1111 0000 zzzz
4 bit
0010 xxxx yyyy zzzz 1111 1111 0001 zzzz
. .
. .
. 1111 1111 1101 zzzz
1100 xxxx yyyy zzzz 1111 1111 1110 zzzz
1101 xxxx yyyy zzzz
1110 xxxx yyyy zzzz c)
Hình 6.5 (tiếp theo). Một số dạng thức lệnh cho 16 bit
a)
Tương tự ñể có 14 lệnh hai ñịa chỉ ta làm như hình 6.5(b)
16 bit và 31 lệnh một ñịa chỉ như hình 6.7(c).
14 lệnh Các bit cao nhất (bit 12 ñến 15) trong trường hợp b) ñược
opcode 1111 0000 yyyy zzzz
1111 0001 yyyy zzzz 2 ñịa chỉ gán mặc ñịnh trị nhị phân “1”, bốn bit kế ñó (bit 8 ñến 11) sẽ mã
8 bit
1111 0010 yyyy zzzz hóa các tác vụ cần thiết. Vì 4 bit thì mã hóa ñược 16 tác vụ, nhưng
. trong trường hợp này ta chỉ cần 14 tác vụ, do ñó còn 2 vị trí không
. dùng ñến. Trong các trường hợp có tổ hợp code còn lại không
. dùng, như trong hình 6.5 (b) thì tổ hợp opcode 1111 1110 và 1111
1111 1011 yyyy zzzz 1111 sẽ ñược xử lý ñặc biệt.
1111 1100 yyyy zzzz Như vậy ñộ dài các lệnh là như nhau, ñều 16 bit, nhưng
1111 1101 yyyy zzzz trong trường hợp a) thì ñộ dài opcode là 4, trường hợp b) là 8 trong
khi trường hợp c) là 12 bit.
b)
Hình 6.5. Một số dạng thức lệnh cho 16 bit

185 186
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

6.3.3. Ví dụ về dạng thức lệnh ðối với một số lệnh khác, kể cả lệnh một toán hạng, PDP-
ðể hiểu rõ hơn các vấn ñề trong mã hóa lệnh, trong phần 11 áp dụng lược ñồ opcode mở rộng, theo cách này thì các opcode
có dạng x111 ñược dùng ñế tránh khỏi phải dùng các mã lệnh dài
này chúng ta sẽ khảo sát dạng thức lệnh trong các máy PDP-11 và
Intel. Ở ñây chúng ta ñưa ra máy PDP-11 vì tập lệnh của nó ñược hơn. Với hầu hết các lệnh một toán hạng lấy opcode 10 bit và
xem là một ñiển hình về tính ñơn giản và hợp lý. trường mode/register 6 bit, như vậy ñộ dài lệnh vẫn là 16 bit giống
như các lệnh 2 toán hạng. Khi ñó trường mã tác vụ sẽ có 10 bit bao
 PDP-11 gồm 4 bit của trường opcode và 6 bit của trường toán hạng nguồn
ða số lệnh hai toán hạng của PDP-11 ñược mã hóa như (xem hình vẽ 6.6).
trong hình 6.6. Mỗi lệnh chứa opcode 4 bit và hai trường ñịa chỉ 6 Các lệnh có lập ñịa chỉ bộ nhớ trong PDP-11 sẽ có thêm
bit. Một bit opcode ở cự trái cho biết lệnh vận hành trên byte hay một hay hai word 16 bit ñi theo sau lệnh ñịa chỉ ñể chỉ ra các ñịa
word. Trường ñịa chỉ ñược chia nhỏ thành hai phần, phần chế ñộ chỉ này.
(mode) 3 bit và thanh ghi (Register ) 3 bit (Máy PDP-11 có 8 thanh
ghi cho nên chỉ cần 3 bit là có thể mã hóa ñược toàn bộ các thanh  Họ lntel 8088/80286/80386/Pentium
ghi). Trường chế ñộ cho biết toán hạng nằm trong thanh ghi, trong Với CPU Intel, tình hình phức tạp hơn nhiều và kém ñều
bộ nhớ hay là một hằng số, v.v. Có tám mode giống nhau cho toán ñặn hơn nhiều. ðặc biệt ñối với Pentium, mô hình chung như hình
hạng nguồn cũng như cho toán hạng ñích. Mọi opcode ñều có thể 6.7. Cấu tạo phức tạp của Pentium là do nó ñược kế thừa từ nhiều
dùng bất kỳ toán hạng nguồn và toán hạng ñích nào. thế hệ trong một khoảng thời gian dài và do ngay từ ñầu việc lựa
chọn các tính chất ñã không ñược thành công lắm. ðiều này chính
Tập lệnh trong PDP-11 sử dụng là trực giao (orthogonal), là
là do ñòi hỏi phải kế thừa các ñặc tính ra trước mà nó không thể
tập lệnh trong ñó phương thức qui ñịnh ñịa chỉ các toán hạng ñộc
lập với opcode ñược các nhà viết trình biên dịch rất thích vì tập thay ñổi cấu trúc của mình. Nói chung, ñối với lệnh hai toán hạng,
lệnh trực giao làm cho công việc của họ ñơn giản ñi rất nhiều. nếu toán hạng này nằm trong bộ nhớ thì toán hạng kia có thể không
nằm trong bộ nhớ. Do ñó tồn tại các lệnh cộng hai thanh ghi, lệnh
cộng thêm giá trị thanh ghi vào bộ nhớ và cộng thêm bộ nhớ vào
15 14 12 11 9 8 6 5 3 2 0 thanh ghi, nhưng không tồn tại lệnh cộng thêm một từ vào một từ
LỆNH MODE REGISTER MODE REGISTER nhớ khác, một ñiều mà PDP-I 1 cho phép như là kết quả trực giao.
Trên 8088, mỗi opcode là 1 byte, nhưng ñến khi 80386 ra
opcode Toán hạng nguồn Toán hạng ñích ñời thì opcode 1 byte dùng không ñủ ñể mã hóa hết tập lệnh, do ñó
Source operand Destination operand bit 15 của opcode ñược dùng ñế tránh phải dùng opcode 2 byte.
Cấu trúc duy nhất trong trường opcode là sử dụng bit thứ tự thấp
byte/word trong một số lệnh ñể cho biết byte/word, và bit bên cạnh ñế chỉ ñịa
Hình 6.6. Mã hóa lệnh trên máy PDP-11 chỉ bộ nhớ (nếu có) là nguồn hay là ñích
Tiếp sau byte opcode trong nhiều lệnh là byte thứ hai cho
biết vị trí toán hạng, tương tự như hai trường mode/register trong

187 188
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

hình 6.6. Do chỉ có sẵn 8 bit, nên tách ra thành trường chế ñộ 2 bit cho phép CPU Pentium thực hiện nhanh hơn là một vòng lập
và hai trường thanh ghi 3 bit. Vậy chỉ có bốn cách lập ñịa chỉ toán ñược lập trình.
hạng (so với tám cách trên PDP-11), và một trong số toán hạng
• Opcode : chiếm 1 hoặc 2 byte. Opcode có thể bao gồm
luôn phải là thanh ghi. Về logic, AX, BX, CX, DX, SI, DI, BP, và
những bit chỉ ra dữ liệu là không ñầy ñủ hay là ñầy ñủ (16
SP phải cụ thể như thanh ghi, song nguyên tắc mã hóa ngăn cấm
hoặc 32 bit phụ thuộc vào từng trường hợp cụ thể), bit chỉ ra
một số kết hợp và dùng chúng vào trường hợp ñặc biệt.
hướng của dữ liệu ñến bộ nhớ hoặc từ bộ nhớ ñi
Bên cạnh ñó, một số lệnh có 1, 2, hoặc 4 byte trở lên qui
ñịnh ñịa chỉ bộ nhớ và có thể 1 , 2, hoặc 4 byte nữa dùng làm toán • ModR/M : byte này chỉ ra các thông tin về toán hạng. Byte
hạng hằng (chẳng hạn như di chuyến con số 100 vào thanh ghi). ModR/M chỉ ra toán hạng là một thanh ghi hay là trong bộ
nhớ. Nếu nó là trong bộ nhớ thì bên trong trừơng này sẽ chỉ
Bảng 6.2 cung cấp tập dạng thức lệnh 8088, 80286, 80386 ra mode ñịa chỉ nào ñược dùng. Trường ModR/M bao gồm 3
và Pentium. Mỗi lệnh tiềm chứa tối ña sáu trường, mỗi trường từ 0 phần : phần mode 2 bit và hai phần Reg/Opcode và R/M mỗi
ñến 4 byte. Trên 8088 và 80286, lệnh ngắn nhất là 1 byte và dài phần 3 bit nữa. ðôi khi 3 bit của trường Reg/Opcode ñược sử
nhất là 9 byte. Trên 80386 cũng như Pentium, lệnh ngắn nhất vẫn dụng với tính cách là phần mở rộng của Opcode tạo nên
là 1 byte, nhưng thêm tiền tố kích thước toán hạng và tiền tố kích trường Opcode với 11 bit. Trường Mod chỉ có 2 bit, ñiều ñó
thước ñịa chỉ, lệnh có thể tối ña 16 byte. có nghĩa là chỉ có 4 cách tiếp cận với toán hạng và một trong
các toán hạng luôn luôn phải là thanh ghi.
CPU PREFIX OPCODE MODE SIB DISPLACEMENT IMMEDIATE • SIB : Cho phép chỉ ra một số chi tiết kỹ thuật thêm nhằm
mục ñích thêm vào một số tính năng mới nhưng vẫn thích
8088 0-3 1 0-1 0 0-2 0-2
hợp (support) với các kiểu cũ
80286 0-3 1 0-1 0 0-2 0-2
• Displacement: ðịa chỉ dịch chuyển (sẽ tìm hiểu kỹ hơn ở phần
80386 0-4 1-2 0-1 0-1 0-4 0-4 tiếp theo sau)
Pentium 0-4 1-2 0-1 0-1 0-4 0-4 • Immediate: ñịa chỉ tức thời
Bảng 6.2. Dạng thức lệnh của các máy tính Intel
Hình 6.7 cho ta thấy dạng thức lệnh của máy Pentium với các
trường ñược ñịnh nghĩa như sau :
• PREFIX byte : ñó là phần mã thêm của mã lệnh ñược ñặt
trước opcode. Nếu nó tồn tại thì nó bao gồm LOCK tiếp ñầu
tố (prefix) và tiếp ñầu tố lập lại (repeat prefix). LOCK prefix
ñược dùng ñể ñảm bảo việc dành riêng vùng nhớ chia sẻ
trong môi trường ña bộ xử lý. Trong khi repeat prefix ñặc
trưng cho một chuỗi phép toán ñược lập ñi lập lại, ñiều này
189 190
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

0-4 byte 1-2 0-1 0-1 0-4 0-4 • ðịa chỉ tức thời – Immediate
Prefix Opcode ModR/M SIB Displacement Immediate • ðịa chỉ trực tiếp – Direct
• ðịa chỉ gián tiếp – Indirect
• ðịa chỉ thanh ghi – Register
• ðịa chỉ gián tiếp thanh ghi – Register inderect
• ðịa chỉ dịch chuyển – Displacement
6 1 1 Scale Index Base • ðịa chỉ ngăn xếp - Stack
INSTRUCTION 7 6 5 4 3 2 1 0 Các cách lập ñịa chỉ thông dụng trong hình 6.8.
Trong bảng bảng 6.3. chỉ ra cách tính ñịa chỉ thực cho mỗi chế ñộ
byte/word lập ñịa chỉ và các ưu khuyết ñiểm của mỗi loại.
hướng ñi data Các ký hiệu trong hình 6.8 và bảng 6.3:
Mod Reg/Opcode R/M A – Nội dung trong trường ñịa chỉ trong một lệnh
7 6 5 4 3 2 1 0
R – Nội dung trong trường ñịa chỉ mà chỉ ra một thanh ghi nào ñó
Hình 6.7. Format lệnh Pentium EA – ðịa chỉ thực của nơi chứa (memory hoặc register) toán hạng
(X) – Nội dung của vị trí bộ nhớ X hoặc là thanh ghi X
6.3.4.Các chế ñộ lập ñịa chỉ

Có thể phân lệnh theo số lượng ñịa chỉ sử dụng. Lệnh qui ñịnh
một, hai hay ba ñịa chỉ ñều phổ biến. Trên nhiều máy tính phép tính số
học ñược thực hiện với một ñịa chỉ duy nhất. Có một thanh ghi ñặc biệt
gọi là thanh bộ tích luỹ (accumulator) sẽ cung cấp một trong các toán
hạng, toán hạng còn lại sẽ nằm ở bộ nhớ. Trên máy này, ñịa chỉ thường là
ñịa chỉ của từ nhớ m, trong ñó ñặt toán hạng.
Trong kiến trúc GPR chế ñộ lập ñịa chỉ cần phải chỉ rõ ñó là
một hằng số, một thanh ghi hay một vị trí trong bộ nhớ. Khi là một
vị trí trong bộ nhớ ñược dùng thì ñịa chỉ ô nhớ thực ñược chỉ ra bởi
cách dùng chế ñộ lập ñịa chỉ và ñược gọi là ñịa chỉ hiệu dụng
(effective address).
ðể hiểu cách thực hiện một lệnh ta phải biết phương cách thông
dịch bit trong trường ñịa chỉ ñể tìm toán hạng. Khả năng là chúng chứa
ñịa chỉ bộ nhớ của toán hạng. Thế nhưng cũng có những khả năng khác
và trong phần này chúng ta sẽ khám phá những kỹ thuật ñánh ñịa chỉ cơ
bản nhất sau:
191 192
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Chế ñộ Cách tính Ưu ñiểm Khuyến ñiểm

Immediate Operand = A Không có tham ðộ lớn toán


chiếu bộ nhớ hạng giới hạn

Direct EA = A ðơn giản không gian ñịa


chỉ giới hạn

Indirect EA = (A) không gian ñịa Tham chiếu bộ


chỉ lớn nhớ phức tạp

Register EA = R Không có tham không gian ñịa


chiếu bộ nhớ chỉ giới hạn

Register EA = (R) không gian ñịa Tham chiếu bộ


indirect chỉ lớn nhớ phụ

Displacement EA = A + (R) Linh ñộng Phức tạp

Stack EA= ñầu của Không có tham Ứng dụng giới


ngăn xếp chiếu bộ nhớ hạn

Bảng 6.3. Cách tính ñịa chỉ thực


Trước khi ñi vào cụ thể từng chế ñộ lập ñịa chỉ có hai ñiểm cần
lưu ý, thứ nhất ñó là trên thực tế tất cả các kiến trúc máy tính ngày nay
cung cấp cho ta nhiều hơn một trong những chế ñộ lập ñịa chỉ trên. Vấn
ñề ñặt ra là làm thế nào ñể bộ ñiều khiển xác ñịnh ñược chế ñộ ñịa chỉ
nào ñược dùng trong lệnh. Có nhiều phương pháp khác nhau. Thường là
những opcode khác nhau sẽ dùng các chế ñộ ñịa chỉ khác nhau, cũng có
thể là một trong các bit của lệnh ñược dùng làm trường chế ñộ, mà giá trị
chủa trường này chỉ ra chế ñộ ñịa ñược dùng.
ðiểm thứ hai ở ñây liên quan ñến ñịa chỉ thực EA. Trong một hệ
thống không dùng bộ nhớ ảo thì ñịa chỉ hiệu dụng sẽ hoặc là một ñịa chỉ
của bộ nhớ chính, hoặc là một thanh ghi. Trong một hệ thống nhớ ảo thì
Hình 6.8. Các chế ñộ lập ñịa chỉ ñịa chỉ hiệu dụng là một ñịa chỉ ảo hoặc là một thanh ghi. Việc sắp xếp
193 194
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

thực của ñịa chỉ vật lý là một chức năng của cơ chế phân trang và người vậy ñịa chỉ trực tiếp có thể ñược sử dụng với các biến toàn cục, mà
lập trình không thấy ñược. ñịa chỉ của nó là biết trước trong thời gian biên dịch.
a) Lập ñịa chỉ tức thời (Immediate Addressing) c) Lập ñịa chỉ gián tiếp (Indirect Addressing)
Cách ñơn giản nhất cho lệnh qui ñịnh toán hạng là ñể phần ñịa ðánh ñịa chỉ trực tiếp là cách trong ñó trường ñịa chỉ chỉ ra
chỉ trong lệnh chứa chính toán hạng thay vì ñịa chỉ hoặc thông tin khác một từ nhớ nào hay thanh ghi nào chứa toán hạng. Tuy nhiên
mô tả vị trí toán hạng:
trong trường hợp lập ñịa chỉ trực tiếp thì chiều dài của trường ñịa
OPERAND = A
Toán hạng như vậy ñược gọi là toán hạng tức thời (immediate chỉ thường là ngắn hơn chiều dài một word, do ñó số ñịa chỉ có thể
operand) vì tự ñộng ñược tìm nạp từ bộ nhớ cùng lúc với tìm nạp bản mã hóa ñược bị hạn chế. Cách ñánh ñịa chỉ gián tiếp là trường ñịa
thân lệnh, nhờ ñó khả dụng tức thời. chỉ chỉ ra từ nhớ nào hoặc thanh ghi nào chứa ñịa chỉ của toán
Lập ñịa chỉ tức thời có ưu ñiểm là khỏi cần thêm tham chiếu bộ hạng ( Xem hình 6.8):
nhớ bộ nhớ ñế tìm nạp toán hạng. Nhược ñiểm là hạn chế toán hạng ở con EA = (A)
số vừa vào trường ñịa chỉ. Ớ lệnh có ñịa chỉ 3 bit (ví dụ như trường Nói cách khác là từ nhớ hay thanh ghi trong trường ñịa chỉ
thanh ghi), toán hạng sẽ giới hạn ở 3 bit, và làm hạn hẹp tính hữu ích của giống như là một con trỏ (trong C++), trỏ tới một toán hạng
chúng. Việc ñánh ñịa chỉ gián tiếp cần hai lần truy cập bộ nhớ, lần
Chế ñộ này ñược dùng ñể ñịnh nghĩa các hằng số hoặc là khởi tạo thứ nhất ñể lấy con trỏ về và lần thứ hai ñể lấy toán hạng về.
một giá trị nào ñó cho một biến
d) Lập ñịa chỉ thanh ghi (Register Addressing)
Một ví dụ trong các trường hợp lập ñịa chỉ tức thời là ñưa giá trị
“4” vào thanh ghi R1 như sau: Về khái niệm, lập ñịa chỉ thanh ghi tương tự như lập ñịa chỉ
MOV R1, #4 trực tiếp. ðiểm khác biệt duy nhất ở ñây là thay vì trường ñịa chỉ
trỏ tới một ñịa chỉ trong bộ nhớ thì ở ñây là trỏ tới một thanh ghi
b) Lập ñịa chỉ trực tiếp (Direct Addressing) (thanh ghi số mấy) trong ñó lưu trữ toán hạng:
Một phương thức ñơn giản khác ñể qui ñịnh toán hạng là Máy với 16 thanh ghi và bộ nhớ 65.536 từ thật sự sẽ có hai
cung cấp ñịa chỉ của từ nhớ có chứa toán hạng và ñặt nó vào trường không gian ñịa chỉ. Ta có thể xem một ñịa chỉ trên máy như thế là
ñịa chỉ của lệnh. Hình thức này gọi là lập ñịa chỉ trực tiếp (direct có hai phần:
addressing): • Một bit cho biết là ta muốn dùng thanh ghi hay từ nhớ
EA = A • Một trường ñịa chỉ cho biết là sẽ cần thanh ghi hay từ nhớ
Tất nhiên phải có cách ñể máy tính biết ñược ñịa chỉ nào là nào.
tức thời và ñịa chỉ nào là trực tiếp. Nói chung, có hai phương pháp: Vì số thanh ghi ít hơn số từ nhớ, do ñó người ta thường
sử dụng opcode khác nhau hoặc sử dụng một mode ñánh ñịa chỉ dùng các dạng thức lệnh khác nhau cho toán hạng thanh ghi và toán
ñặc biệt cho mỗi loại toán hạng. hạng nhớ.
Cũng như cách lập ñịa chỉ tức thì, ñịa chỉ trực tiếp có một Các máy ngày nay ñược thiết kế có các thanh ghi vì 2 lý do
số giới hạn: Lệnh luôn truy cập ñến chỉ một ñịa chỉ ô nhớ. Tức là chính sau:
giá trị tại ñịa chỉ ñó có thể thay ñổi nhưng ñịa chỉ thì không. Như – Các thanh ghi hoạt ñộng nhanh hơn bộ nhớ chính

195 196
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

– Số lượng thanh ghi là rất ít do ñó ñể mã hóa chúng cũng chỉ Bài toán như thế ñược giải quyết tốt nhất bằng cách sử dụng một
cần một số ít bit. thanh ghi gọi là thanh ghi chỉ số (Index register ) và chúng làm việc như
sau:
e) ðịa chỉ gián tiếp thanh ghi (Register Indirect) Trường ñịa chỉ sẽ có hai phần: một con số của thanh ghi chỉ số và
ðịa chỉ thanh ghi thì giống ñịa chỉ trực tiếp, còn ñịa chỉ gián một hằng số. Trong ví dụ trên nếu cả hai ñịa chỉ ñều ñược ñánh chỉ số sử
tiếp thanh ghi thì lại giống với ñịa chỉ gián tiếp. Trong cả hai dụng một index register (IR) có chứa số nguyên k, thi lệnh MOVE B,A sẽ
chuyển nội dung của vị trí nhớ A+k tới B+k. Bằng cách khởi tạo cho IR
trường hợp sự khác nhau chỉ là một cách là ñịa chỉ bộ nhớ chính,
giá trị ban ñầu 0 và tăng nó lên bằng kích thước một word mỗi khi copy
còn một cách là thanh ghi: xong một word, thì chúng ta chỉ cần sử dụng một thanh ghi cho vòng lặp
EA = (R) copy.
Việc ñánh ñịa chỉ Index ñược sử dụng rộng rãi ñể ñánh ñịa chỉ
Trường ñịa chỉ chứa số thanh ghi, mà trong thanh ghi ñó một trường tại một khoảng cách ñã biết tính từ ñiểm ñầu của cấu trúc dữ
chứa ñịa chỉ của toán hạng cần thiết. liệu ñã cho.
f) ðịa chỉ ðịa chỉ dịch chuyển – Displacement g) ðịa chỉ ngăn xếp – Stack
Một chế ñộ ñược tổng hợp từ hai chế ñộ: ñịa chỉ trực tiếp và ñịa
chỉ gián tiếp thanh ghi. Cách tính ñịa chỉ thực như sau: Ở trên ta ñã ñưa ra các tiêu chí thiết kế dạng thức lệnh, mà một
EA = A + (R) trong các tiêu chí là lệnh càng ngắn càng tốt ñể tiết kiệm thời gian của
Chế ñộ này ñòi hỏi trong mã lệnh phải có hai trường ñịa chỉ, một trường CPU và tiết kiệm bộ nhớ. Giới hạn cuối cùng của việc giảm chiều dài ñịa
cho ñịa chỉ thanh ghi (R) và một trường cho ñịa chỉ trực tiếp bộ nhớ (A). chỉ là làm cho lệnh không còn trường ñịa chỉ nữa, chỉ có opcode thôi.
ðịa chỉ thực là tổng của ñịa chỉ A với giá trị ñịa chỉ chứa trong thanh ghi Thật ñáng ngạc nhiên là ñiều này có thể thực hiện ñược bằng cách sử
R. dụng một cấu trúc dữ liệu có tên là Stack.
Một cách ñánh ñịa chỉ dịch chuyển hay dùng là dạng ñánh ñịa chỉ Stack chứa các phần tử dữ liệu (words, characters,…) theo trật tự
“chỉ số” (Indexing). Có nhiều thuật toán ñòi hỏi một số thao tác trên dãy liên tiếp trong bộ nhớ. Phần tử ñầu tiên ñược ñẩy lên Stack ñược gọi là
các cấu trúc dữ liệu ñược chứa trong các vị trí nhớ liên tiếp. Ví dụ chúng nằm ở ñáy của Stack, phần tử sau cùng vừa mới ñẩy lên Stack ñược gọi là
ta xem một khối gồm N từ chiếm các vị trí nhớ: nằm ở ñỉnh của Stack. Dữ liệu ñược ñưa vào và lấy ra theo phương thức
A, A+1, A+2,…, A+N-1 vào ñầu tiên thì ra sau cùng FILO (first in last out). Mỗi Stack ñược gắn
Giả sử chúng cần ñược chuyển tới vị trí nhớ: với một thanh ghi hay word bộ nhớ chứa ñịa chỉ ñỉnh Stack và ñược gọi
B, B+1, B+2,…, B+N-1 là con trỏ Stack.
Và giả sử ta dùng lệnh máy Hình 6.9 cho ta thấy các chế ñộ lập ñịa chỉ của dữ liệu trong
MOVE B,A các máy tính mới nhất và các ví dụ tương ứng với nó. Trong hình
ñể chuyển nội dung vị trí nhớ A ñến vị trí nhớ B. Máy thi hành lệnh này này và trong cuốn sách này chúng ta dùng phần mở rộng của ngôn
và sau ñó sửa lại thành ngữ lập trình C ñể biểu diễn các câu lệnh. Ở ñây chúng ta dùng
MOVE B+1,A+1
mảng Mem như là tên của bộ nhớ chính và Regs ñể chỉ Registers.
rồi thi hành lệnh này, rồi lại sửa lại, lại thi hành…. cứ lặp ñi lặp lại chu
kỳ này cho ñến khi tất cả N word ñược copy xong. Ví dụ chúng ta ghi Mem[Regs[R1]] ñể chỉ một ô nhớ có ñịa chỉ
ñược ghi trong thanh ghi tên là R1. Trong bảng này mỗi chế ñộ lập
ñịa chỉ sẽ có một ví dụ minh họa ñược ñưa ra, ñồng thời giải thích ý
nghĩa của nó và cho biết nó ñược dùng khi nào.
197 198
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Câu lệnh này cho thấy ở chế ñộ thanh ghi các toán hạng ñều
Chế ñộ Ví dụ Diễn giải là các thanh ghi. Ở ñây R3 và R4 là hai toán hạng của phép toán
cộng. Ý nghĩa của câu lệnh này có nghĩa là:
Regs[R4]Regs[R4] + Regs[R3]
Tức là toán hạng thứ nhất nằm trên thanh ghi có tên R4 và
toán hạng thứ hai nằm trên thanh ghi có tên là R3 sẽ ñược cộng lại
và kết quả cuối cùng sẽ lưu vào thanh ghi R4. Mũi tên  chỉ ra kết
quả sẽ ñược lưu vào ñâu. ðặc biệt trong câu lệnh với tham chiếu bộ
nhớ (Memory indirect) hay trong C ta gọi là với con trỏ ta thấy ở
toán hạng thứ hai có thêm dấu “@” ñể chỉ toán hạng ñó là một ñịa
chỉ và ở ñịa chỉ ñó chứa một ñịa chỉ khác, mà ở ñịa chỉ cuối này
mới chứa giá trị thật của toán hạng này. Giả sử trong câu lệnh
Add R1, @(R3)
R1 chứa giá trị 5, R3 chứa giá trị 16 thì lệnh này có thể
ñược diễn giải rõ hơn như hình 6.9. Trong R3 chứa giá trị 16 là một
ñịa chỉ, mà trong ñịa chỉ này chứa giá trị 4 là một ñịa chỉ khác, mà
trong ñịa chỉ 4 này mới chứa giá trị thật 7 của toán hạng thứ hai.
Giá trị toán hạng thứ nhất là 5 cộng với giá trị toán hạng thứ hai là
7, ñược 12 và giá trị này lại ghi trở lại vào R1.

Hình 6.9. Các chế ñộ lập ñịa chỉ thông dụng

Ví dụ ở chế ñộ lập ñịa chỉ “thanh ghi” (Register) ñể làm


phép toán cộng hai số ta dùng câu lệnh:
Add R4, R3.

199 200
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

R1 = 5 R3 = 16 Chương trình bằng ngôn ngữ


cấp cao
0
Trình biên dịch
4 7
8
( Compiler)
12
16 4 Chương trình bằng hợp ngữ
20

Bộ dịch hợp ngữ


5 7 (Assempler)

+ Chương trình bằng ngôn ngữ


máy
12

Hình 6.9. Lệnh Add với tham chiếu bộ nhớ Hình 6.10. Quá trình biên dịch ra ngôn ngữ máy
Do mỗi lệnh trong máy tính là tổ hợp các con số nhị phân 0,
6.4. Bộ lệnh 1 nên rất khó nhớ. ðể khắc phục ñiểm yếu này người ta dùng hợp
ngữ Assembly ñể mô tả các mã lệnh nhị phân bằng các từ ngắn gọn
Trong phần này chúng ta sẽ xem xét các loại lệnh cơ bản mà ta gọi là từ gợi nhớ mã lệnh. Ngoài ra trong quá trình diễn giải
của các kiến trúc phần mềm ñược dùng nhiều nhất, ñể cho thấy các chúng ta còn dùng các khái niệm thanh ghi ñích, thanh ghi nguồn 1,
kỹ thuật ở mức ngôn ngữ máy dùng ñể thi hành các cấu trúc trong thanh ghi nguồn 2.
các ngôn ngữ cấp cao. ða số ngày nay, ñể viết các chương trình
cho máy tính, người ta dùng các ngôn ngữ cấp cao dễ hiểu va tiên Từ gợi nhớ mã lệnh mô tả ngắn gọn tác vụ phải thi hành
lợi hơn như C, Pascal, C#,.. Quá trình biên dịch từ một ngôn gữ cấp trên các thanh ghi nguồn, kết quả ñược lưu giữ trong thanh ghi
cao sang ngôn ngữ máy tiến hành như trong hình 6.10. ñích.
Mỗi lệnh của ngôn ngữ cấp cao ñược xây dựng bằng một
lệnh mã máy hoặc một chuỗi nhiều lệnh mã máy. Lệnh nhảy
(GOTO) ñược thực hiện bằng các lệnh hợp ngữ về nhảy (JUMP)
hoặc lệnh hợp ngữ về vòng. Chúng ta phân biệt lệnh nhảy làm cho
bộ ñếm chương trình ñược nạp vào ñịa chỉ tuyệt ñối nơi phải nhảy
ñến (PC ← ñịa chỉ tuyệt ñối nơi phải nhảy tới), với lệnh vòng theo

201 202
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

ñó ta chỉ cần cộng thêm một ñộ dời vào bộ ñếm chương trình (PC ðích Nguồn Ví dụ Giải thích
← PC + ñộ dời). Bộ nhớ Thanh MOVE 100H, AX Chuyển nội dung trong
Ngoài ra do mỗi kiểu kiến trúc máy tính có cách mã hóa ghi AX vao vị trí nhớ 100H
Thanh Bộ nhớ MOVE AX,MEM1 Chuyển nội dung trong vị
lệnh và tên các câu lệnh khác nhau, do ñó trong phần này chúng ta
chỉ ñể ý ñến kiểu cấu trúc RISC. ghi trí nhớ MEM1 chỉ ra vào
thanh ghi AX
6.4.1. Nhóm lệnh truyền dữ liệu Thanh Thanh MOVE AX, BX Chuyển nội dung trong
ghi ghi thanh ghi BX vào thanh
Nhóm lệnh này nhằm truyền dữ liệu (a word or a block) từ ghi AX
một nguồn có thể là thanh ghi hoặc bộ nhớ ñến một ñích. Phần lớn Thanh Hằng số MOVE AX, Chuyển giá trị hằng số ở
trong nhóm này là những lệnh truyền dữ liệu giữa các thanh ghi ghi 0FFFFH hệ 16: FFFF vào thanh
khác nhau trong CPU. Việc truyền dữ liệu từ một thanh ghi ñến ghi AX, số 0 ở ñầu ñể chỉ
một thanh ghi khác có thể thông qua lệnh sau: rõ FFFFH là một giá trị
hằng chứ không phải là
MOVE Ri, Rj // truyền dữ liệu từ thanh ghi Rj ñến một nhãn
thanh ghi Ri Bảng 6.4. Một số ví dụ lệnh MOVE
Ở ñây dữ liệu từ thanh ghi nguồn Rj ñược ghi ñè lên thanh Lệnh truyền dữ liệu Ý nghĩa
ghi ñích Ri, còn dữ liệu của Rj thì không thay ñổi. MOVE Di chuyển (một từ hay một
Một số ví dụ của lệnh MOVE như trong bảng 6.4. khối) từ ñịa chỉ nguồn (thanh
ghi hay bộ nhớ trong) ñến ñịa
ðể nạp một giá trị từ bộ nhớ vào thanh ghi hoặc lưu một giá
chỉ ñích.
trị từ thanh ghi vào bộ nhớ ta dùng các lệnh sau:
LOAD ðọc dữ liệu từ bộ nhớ vào thanh
LOAD ñích, nguồn
ghi
ví dụ: LOAD Ri, M (ñịa chỉ) // RiM[ñịa chỉ]
STORE ñích, nguồn STORE Lưu dữ liệu từ thanh ghi vào bộ
ví dụ: STORE M(ñịa chỉ), Ri // M[ñịa chỉ] ←Ri nhớ
PUSH Lưu dữ liệu thừ thanh ghi vào
Trong bảng 6.5 cho ta thấy một số các lệnh và ý nghĩa của nó ngăn xếp
POP Nhận dữ liệu từ ngăn xếp vào
thanh ghi

Bảng 6.5. Một số lệnh truyền dữ liệu

203 204
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

6.4.2. Nhóm lệnh tính toán số học: Tên lệnh Ý nghĩa


ADD Cộng
Các lệnh số học bao gồm bốn phép tính số học cơ bản là ADDD Cộng số có dấu chấm ñộng, chính xác kép
cộng, trừ, nhân, chia và ñảo dấu toán hạng. SUB Trừ
ADD/SUB SUBD Trừ số có dấu chấm ñộng, chính xác kép
MUL Nhân
Dạng tổng quát của các lệnh cộng (add) và trừ (subtract)
DIV Chia
như sau:
ADD ñích, nguồn // ñích  ñích + nguồn INC Tăng lên 1
SUB ñích, nguồn // ñích  ñích – nguồn DEC Giảm ñi 1
trong ñó các toán hạng ñích và nguồn có thể tím ñược theo NEG ðảo dấu toán hạng
các ñịa chỉ khác nhau, nhưng phải chứa dữ liệu có cùng ñộ dài và Bảng 6.6. Các lệnh tính toán số học cơ bản
không ñược phép ñồng thời là hai ô nhớ và cũng không ñược là
6.4.3. Nhóm lệnh logic:
thanh ghi ñoạn
Tthực hiện phép tính logic NOT, AND và OR cho từng bit
Ví dụ 1:
một. Lệnh NOT ñảo tất cả các bit trong toán hạng, các lệnh
ADD AX, BX // AX AX + BX AND/OR thực hiện các phép tính AND/OR ñối với một ñôi bit
ADD AL,74H // AL  AL + [74H] trong toán hạng nguồn và toán hạng ñích.
SUB CL, AL // CL  CL – AL
AND/OR
SUB AX, 0405H // AX  AX – 0405H
Dạng tổng quát của lệnh AND/OR như sau:
Ví dụ 2: Viết ñoạn chương trình bằng ngôn ngữ Assembly
AND ñích, nguồn
ñể cộng 5H với 3H, dùng các thanh ghi AL và BL. Kết quả của
OR ñích, nguồn
phép cộng lưu vào bộ nhớ tại ñịa chỉ 100H.
AND/OR thực hiện phép toán Boolean ñối với các toán
MOV AL, 05H // AL  05H
hạng nguồn và ñích. Phép AND thường dùng ñể che ñi hoặc giữ lại
MOV BL, 03H // BL  03H
một vài bit nào ñó của một toán hạng bằng cách nhân logic toán
ADD AL, BL // AL  AL + BL
hạng ñó với toán hạng tức thời có các bit 0/1 tại các vị trí cần che/
MOV 100H, AL // MEM[100H]AL: di
giữ lại tương ứng. Phép OR thường dùng ñể lập một vài bit nào ñó
// chuyển kết quả từ AL vào
của toán hạng bằng cách cộng logic toán hạng ñó với toán hạng tức
// vị trí nhớ DS:100H
thời có các bit 1 tại các vị trí tương ứng cần thiết lập (toán hạng tức
Bảng 6.6 cho ta tóm tắt các lệnh tính toán số học và ý nghĩa tương thời trong những trường hợp này còn ñược gọi là mặt nạ)
ứng của nó Ví dụ:
AND AL, BL // Nội dung thanh ghi BL ñược giao
// với nội dung trong thanh ghi AL
205 206
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

// và kết quả ñược lưu lại vào trong


// thanh gh AL. Nếu con số trong
// AL là 00001101B và trong BL là
// 00110011B thì kết quả trong thanh
// ghi AL sau phép AND là 00000001B

6.4.4 Nhóm các lệnh dịch chuyển số học hoặc logic (SHIFT ),
quay vòng (ROTATE) có hoặc không có số giữ ở ngã vào, sang
phải hoặc sang trái. Các lệnh này ñược thực hiện trên một thanh ghi
và kết quả lưu giữ trong thanh ghi khác. Số lần dịch chuyển (mỗi
lần dịch sang phải hoặc sang trái một bit) thường ñược xác ñịnh
trong thanh ghi thứ ba. Hình 6.11 minh hoạ cho các lệnh cơ bản
nhất của nhóm này.

 SRL (Shift Right Logical - dịch phải logic): Các bit của word
ñược dịch chuyển sang phải, bit thấp nhất (bit 0) mất ñi còn trị
nhị phân “0” sẽ dịch chuyển vào bit cao nhất
 SLL (Shift Left Logical - dịch trái logic): Các bit của word
ñược dịch chuyển sang trái, trị nhị phân “0” sẽ dịch chuyển vào
bit thấp nhất (bit 0) , còn bit cao nhất sẽ mất ñi
 SRA (Shift Right Arithmetic - dịch phải số học): Bit cao nhất là
bit dấu sẽ ñược giữ lại, các bit còn lại sẽ dịch chuyển sang phải
còn bit thấp nhất sẽ mất ñi.
 SLA (Shift Left Arithmetic – dịch trái số học): Bít cao nhất là
bit dấu sẽ ñược giữ nguyên, các bit dịch sang trái, bít kế bit dấu
mất ñi, trị nhị phân “0” dịch chuyển vào bit thấp nhất.
Tương tự cho các lệnh quay vòng như trong hình 6.11.

Hình 6.11. Các lệnh dịch chuyển và quay vòng


207 208
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

6.4.5. Nhóm các lệnh có ñiều kiện và lệnh nhảy (không ñiều Toán hạng 2
kiện) Toán hạng 1

Lệnh có ñiều kiện có dạng :


Nếu <ñiều kiện> thì <chuỗi lệnh 1> nếu không <chuỗi lệnh 2> Số mang vào
(IF <condition> THEN <instructions1> ELSE <instructions2>) (Carry in) Bit S
Lệnh này buộc phải ghi nhớ ñiều kiện và nhảy vòng nếu ALU Bit Z
ñiều kiện ñược thoả. Bit OVF
Ghi nhớ ñiều kiện . Bit C

Bộ tính toán logic số học ALU cung cấp kết quả ở ngã ra
tuỳ theo các ngã vào và phép tính cần làm. Nó cũng cho một số Kết quả
thông tin khác về kết quả dưới dạng các bit trạng thái (Hay các bit
cờ - flag). Các bit này là những ñại lượng logic ðÚNG hoặc SAI Hình 6.12. Các bit trạng thái mà ALU tạo ra
(hình 6.12).
Trong các bit trạng thái ta có:
+ bit dấu S (Sign - ðúng nếu kết quả âm), Có hai kỹ thuật cơ bản ñể ghi nhớ các bit trạng thái
Cách thứ nhất, ghi các trạng thái trong một thanh ghi ña dụng.
+ bit trắc nghiệm zero Z (Zero - ðúng nếu kết quả
bằng không), Ví dụ lệnh CMP Rk, Ri, Rj
+ bit tràn OVF (Overflow) ðÚNG nếu phép tính số Lệnh trên sẽ làm phép tính trừ Ri - Rj mà không ghi kết quả
học làm thanh ghi không ñủ khả năng lưu trữ kết phép trừ, mà lại ghi các bit trạng thái vào thanh ghi Rk. Thanh ghi
quả, này ñược dùng cho một lệnh nhảy có ñiều kiện. ðiểm lợi của kỹ
thuật này là giúp lưu trữ nhiều trạng thái sau nhiều phép tính ñể
+ bit số giữ C (carry) ðÚNG nếu số giữ ở ngã ra là
dùng về sau. ðiểm bất lợi là phải dùng một thanh ghi ña dụng ñể
1 ....
ghi lại trạng thái sau mỗi phép tính mà số thanh ghi này lại bị giới
Các bit trên thường ñược gọi là bit mã ñiều kiện. hạn ở 32 trong các bộ xử lý hiện ñại.
Cách thứ hai, là ñể các bit trạng thái vào một thanh ghi ñặc
biệt gọi là thanh ghi trạng thái. Vấn ñề lưu giữ nội dung thanh ghi
này ñược giải quyết bằng nhiều cách. Trong kiến trúc SPARC, chỉ
có một số giới hạn lệnh ñược phép thay ñổi thanh ghi trạng thái ví
dụ như lệnh ADDCC, SUBCC (các lệnh này thực hiện các phép
tính cộng ADD và phép tính trừ SUB và còn làm thay ñổi thanh ghi
trạng thái). Trong kiến trúc PowerPC, thanh ghi trạng thái ñược
209 210
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

phân thành 8 trường, mỗi trường 4 bit, vậy là thanh ghi ñã phân 6.5. Cấu trúc lệnh CISC và RISC
thành 8 thanh ghi trạng thái con. Trong máy tính mọi thứ ñều ñược ñưa về các con số nhị
ðặc tính chung của các lệnh này là thứ tự thực thi chương phân “0” và “1” bởi vì máy tính chỉ hiểu các mức ñiện thế tương
trình thay ñổi nhờ tác ñộng vào già trị lưu trong thanh ghi ñếm ứng với 0/1 trên mỗi transistor cụ thể, người sử dụng muốn thực
chương trình (Program Counter - PC). Sự thay ñổi trong thanh ghi hiện một chương trình nào ñấy, phải nạp các mã lệnh chỉ gồm các
PC có thể là không có ñiều kiện, ví dụ như khi chương trình thực con số 0-1 vào bộ nhớ cho máy tính. Có 3 cách cơ bản ñể làm việc
hiện ñến một chỗ nào ñó rồi cần phải nhảy ñến một vị trí khác, khi ấy:
ñó ta sử dụng lệnh nhảy (Jump instruction). Trường hợp này trong • Viết ngay dạng mã máy với các con số 0, 1 và nạp vào bộ nhớ.
ngôn ngữ cấp cao ta hay gặp ñó là lệnh GOTO, khi ñó giá trị ñược Cách này rất khó thực thi bởi vì thứ nhất rất dễ bị nhầm lẫn giữa
nạp vào trước trong thanh ghi PC sẽ bị xóa ñi và một lệnh mới các con số 0 và 1; thứ hai rất khó nhớ các lệnh ñược mã hóa như
trong bộ nhớ sẽ ñược nạp vào. thế nào và thứ ba là rất mất thời gian ñể làm việc ñó.
Thanh ghi PC có thể thay ñổi có ñiều kiện, mà những ñiều • Viết dạng tên gợi nhớ bằng hợp ngữ (Assembler), sau ñó biên
kiện này chủ yếu dựa vào các cờ như bít dấu (S), bit Zero (Z), dịch ra mã máy, cấp này cũng rất gần với ngôn ngữ máy và cũng
Overflow (O) và bit Carry (C). Những bit cờ này ñược lưu trữ trên khó thực hiện với các chương trình phức tạp. Tuy nhiên, cấu trúc
một thanh ghi ñặc biệt gọi là thanh ghi mã ñiều kiện (Condition gọn nhẹ, các lệnh có tên tương ứng dễ nhớ.
Code register - CC). Giá trị của các bit cờ này thay ñổi dựa vào kết
quả thực thi của các lệnh khác nhau. • Viết bằng một ngôn ngữ cấp cao như C++, Pascal, Java,…, sau
ñó dùng một trình biên dịch (compiler) ñể dịch ra mã máy. Cách
Chúng ta xem một ví dụ cụ thể sau: này tuy dễ với người viết chương trình nhưng cũng sẽ làm
LOAD R1, #100 chương trình có dung lượng lớn hơn nếu viết bằng ASM. Và
thách thức là làm sao các nhà sản xuất phần mềm, phần cứng bắt
Loop: ADD R0, (R2)+ tay nhau ñể chương trình biên dịch này thật chuẩn tắc, nhỏ gọn,
DECREMENT R1 không tạo nhiều code trung gian.
BEQZ R1, Loop Trong suốt thập niên 1980, các nhà thiết kế cố gắng thu hẹp
khoảng cách giữa ngôn ngữ cấp cao của con người và ngôn ngữ
Câu lệnh thứ 4 là một lệnh có ñiều kiện. Khi kết quả tăng
máy, họ ñã ñưa ra cấu trúc với các chỉ lệnh phức tạp gọi là CISC
giá trị trong thanh ghi R1 là bằng 0, thì flag Z sẽ chuyển thành 1 và
(Complex Instruction Set Computer), có các chế ñộ ñịnh ñịa chỉ
lệnh tiếp theo ñược thực thi sẽ là lệnh ở vị trí nhãn Loop.
khác nhau, mỗi lệnh thực thi cần nhiều lần ñịnh ñịa chỉ ñể lấy dữ
liệu, và do ñó, tốn nhiều chu kì xung nhịp cho mỗi chỉ lệnh.
Nếu việc giảm thiểu ranh giới giữa tập lệnh của vi ñiều
khiển và ngôn ngữ cấp cao không phải là một cách hay ñể máy tính
hoạt ñộng hiệu quả, các nhà thiết kế phải làm sao ñể tối ưu tốc ñộ
xử lý?

211 212
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

Nếu muốn biết cách làm ñể vi xử lý hoạt ñộng nhanh hơn, – Thời gian phát triển một sản phẩm ngắn hơn do kĩ thuật ñơn
ta phải biết vi xử lý dùng hầu hết thời gian của chúng vào việc gì? giản hơn
Chúng ta dễ nghĩ rằng: Vi xử lý tất nhiên dùng hầu hết thời gian
– Tốc ñộ xử lý tăng lên ñáng kể. Khi ta ñặt ra các chỉ lệnh
của nó ñể tính toán; nghĩa là thời gian hầu hết ở bộ ALU. Thật ra, phức tạp, tuy nó gần gũi với ngôn ngữ cấp cao, nhưng như
theo thống kê (xem bảng 6.7) thì suy ñoán này hoàn toàn sai lầm: thế, vô tình cũng làm các chỉ lệnh khác phức tạp lên, và ñể
thực thi một chỉ lệnh như vậy cần tốn nhiều chu kì xung
Loại lệnh % sử dụng thời gian nhịp. Trong khi ñó, nếu dùng RISC chỉ mất một chu kì xung
Chuyển dữ liệu 43% nhịp cho mỗi lệnh, khi ta phân nhỏ vấn ñề phức tạp thành
ðiều khiển dòng chảy 23% các vấn ñề ñơn giản thì cách giải quyết sẽ tốt hơn.
Tính toán số học 15%
So sánh 13%  Các ñiểm bất lợi của RISC:
Phép toán Logic 5% Không phải RISC chỉ có ñiều thuận lợi, nó cũng có một vài
Các lệnh khác 1% bất cập, mà cụ thể là:
Bảng 6.7. Thống kê thời gian thực hiện các loại lệnh
– Tập lệnh của RISC không phong phú bằng CISC, như vậy
 So sánh CISC và RISC khi cần thiết kế một chương trình nào ñó mà không có lệnh
Sự khác biệt cơ bản giữa các chip dòng máy tính với tập cần thiết thì phải thông qua một loạt các lệnh khác làm tăng
lệnh rút gọn RISC (reduced instruction set computer) và máy tính lên số chu kỳ xung nhịp cần thiết, tức là ñã làm chậm hệ
với tập lệnh phức tạp CISC (complex instruction set computer, thống ñi.
chẳng hạn như dòng chip x86 của Intel) có thể ñược xem như cuộc – Cấm thâm nhập bộ nhớ ñối với tất cả các lệnh ngoại trừ các
ganh ñua giữa nhà lập trình và nhà thiết kế chip. Chip CISC ñược lệnh ñọc và ghi vào bộ nhớ. Do ñó ta buộc phải dùng nhiều
thiết kế nhằm tạo thuận lợi cho các nhà lập trình ứng dụng bằng lệnh ñể làm một công việc nhất ñịnh.
cách rút gọn nhiều câu lệnh ñơn giản, thông dụng thành một câu
– Cần thiết phải tính các ñịa chỉ hiệu dụng vì không có nhiều
lệnh thực thi dài. ðiều này làm cho CISC xử lý chậm hơn nhưng lại
cách ñịnh vị.
ñạt yếu tố thân thiện. Ở mặt khác, RISC nhanh nhưng kém thân
thiện hơn, mỗi câu lệnh ñơn giản trong RISC phục vụ cho một mục – Không thể thực thi các mã lệnh của x86, một kiểu kiến trúc
ñích hẹp rất cụ thể, thực hiện rất nhanh và các lệnh này ñược tiến máy tính ñã quá thông dụng và quen thuộc với mọi người.
hành song song. RISC ñòi hỏi nhà lập trình phải kiên nhẫn, giỏi và Như vậy ñể tích hợp ñược phải dùng các phần mềm hỗ trợ
một trình biên dịch ñược tối ưu kỹ lưỡng. nền cơ sở cho RISC, tuy nhiên, với máy tính của IBM, có
 ðiểm mạnh của bộ xử lý dùng tập lệnh RISC: thể bị từ chối.
– Kích thước miếng bán dẫn nhỏ hơn: bộ xử lý ñơn giản ñòi Tóm lại các ñiểm khác biệt cơ bản giữa hai kiểu kiến trúc
hỏi ít transistor hơn, do ñó, kích thước cần dùng nhỏ lại, RISC và CISC có thể liệt kê như trong bảng 6.8.
dành vùng diện tích trống ñể tăng các chức năng như bộ
nhớ cache, chức năng quản lý bộ nhớ, ..vv…
213 214
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc bộ lệnh

RISC CISC
– Kích thước các lệnh (ñộ dài – Kích thước tập lệnh thay ñổi CÂU HỎI VÀ BÀI TẬP CHƯƠNG VI
lệnh) là cố ñịnh ( 32 bit) với chỉ với rất nhiều ñịnh dạng khác
một vài ñịnh dạng. nhau 1. Có mấy loại kiến trúc bộ lệnh cơ bản? Nêu các ưu và nhược
– Sử dụng kiến trúc load-store – Cho phép giá trị trong bộ nhớ ñiểm của từng loại
các lệnh xử lý dữ liệu hoạt ñộng ñược dùng như như toán hạng
2. Cho biết các ñặc tính cơ bản của kiểu kiến trúc thanh ghi ña
chỉ trong thanh ghi và cách ly trong các chỉ lệnh xử lý dữ liệu
dụng.
với các lệnh truy cập bộ nhớ
– Một số lớn các thanh ghi ña – Có rất nhiều thanh ghi, nhưng 3. ðịa chỉ bộ nhớ ñược sắp xếp như thế nào? Giữa cách của
dụng 32 bit, cho phép cấu trúc hầu hết chỉ ñể sử dụng cho một Intel và Motorola khác biệt nhau gì? Vướng mắc gì có thể
load-store hoạt ñộng hiệu quả. mục ñích riêng biệt nào ñấy xảy ra khi máy tính của hai hãng này kết nối với nhau và
– Có một số ít lệnh (thường – Có rất nhiều lệnh (khoảng 500) ñưa ra ví dụ cho sự rắc rối này?
dưới 100 lệnh) 4. Cho biết cách mã hóa tập lệnh và ñưa ra một vài dạng mã
– Có một số ít các kiểu ñịnh vị ( – Có nhiều kiểu ñịnh vị (xem hóa lệnh cơ bản.
thường là ñịnh vị tức thì và ñịnh phần 6.3.4)
vị gián tiếp qua một thanh ghi). 5. Hãy cho biết và giải thích các tiêu chuẩn thiết kế dạng thức
– Có một số ít dạng lệnh (một – Có nhiều dạng lệnh lệnh.
hoặc hai) 6. Giả sử cần thiết kế máy với ký tự 8 bit và bộ nhớ chính
– Chỉ có các lệnh ghi hoặc ñọc ô – Có nhiều lệnh khác cũng thâm chứa 224 ký tự. Hãy cho biết trường ñịa chỉ cần bao nhiêu
nhớ mới thâm nhập vào bộ nhớ. nhập vào bộ nhớ ñược bit trong trường hợp:
– Giải mã các lệnh logic bằng – Sử dụng rất nhiều code trong a) Ô nhớ kích thước 8 bit
kết nối phần cứng ROM giải mã các chỉ lệnh b) Ô nhớ kích thước 16 bit
– Các máy cũ ít khi cho phép các c) Ô nhớ kích thước 32 bit
– Thực thi chỉ lệnh theo cấu trúc dòng lệnh thực thi kiểu này, 7. Thiết kế opcode mở rộng nhằm cho phép mã hóa nội dung
dòng chảy (xem hình 7.9 trong chúng phải tuần tự hết dòng lệnh sau trong lệnh 36 bit
chương sau) này mới ñến dòng lệnh khác a) 7 lệnh có hai ñịa chỉ 15 bit và một số hiệu thanh ghi
– Cần nhiều chu kì xung nhịp ñể 3 bit
hoàn thành một lệnh b) 500 lệnh có một ñịa chỉ 15 bit và một số hiệu thanh
– Một lệnh thực thi trong 1 chu ghi 3 bit
kì xung nhịp c) 50 lệnh không có ñịa chỉ hoặc thanh ghi
Bảng 6.8. Các ñiểm khác nhau cơ bản giữa RISC và CISC 8. Có thể thiết kế opcode mở rộng ñể cho phép mã hóa nội
dung sau trong lệnh 12 bit ñược không? Trường thanh ghi
rộng 3 bit.

215 216
Simpo
ChươngPDF Merge
VI: Kiến and
trúc bộ lệnhSplit Unregistered Version - http://www.simpopdf.com

a) 4 lệnh có ba thanh ghi


b) 255 lệnh có hai thanh ghi
c) 2048 lệnh không có thanh ghi
9. Cho biết các chế ñộ lập ñịa chỉ và các ưu, nhược ñiểm của
từng loại. Mô tả bằng hình các cách lập ñịa chỉ ñó.
10. Mô tả các kiểu thi hành lệnh của một máy tính. Tại sao kiểu
thi hành lệnh thanh ghi – thanh ghi ñược dùng nhiều hiện
tại?
11. Hãy diễn giải quá trình biên dịch ra ngôn ngữ máy từ các
ngôn ngữ cấp cao
12. Các lệnh máy tính ñược phân ra những nhóm lệnh nào? ñưa
ra một ví dụ cho từng nhóm lệnh.
13. Mô tả bằng hình vẽ các lệnh dịch chuyển và quay vòng và
giải thích tác dụng của các lệnh.
14. Hãy cho biết một số bit trạng thái mà ALU tạo ra và cách
dùng các bit này trong các lệnh nhảy
15. Hãy phân biệt sự khác nhau giữa hai kiểu kiến trúc máy tính
RISC và CISC.

217
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

ðể làm ñược các việc như vậy ñòi hỏi CPU cần lưu một số
dữ liệu tạm thời. Nó phải nhớ vị trí của lệnh vừa thực hiện cũng
Chương VII: TỔ CHỨC BỘ XỬ LÝ như nó cần phải biết ñược ở ñâu có thể nhận ñược lệnh tiếp theo ñể
thực hiện. Nó cần lưu tập lệnh và dữ liệu tạm thời trong khi thực thi
một lệnh nào ñó. Nói cách khác CPU cần một bộ nhớ trong nhỏ ñể
Trong các chương trước chúng ta ñã các khái niệm cơ bản tiện lợi làm việc.
liên quan ñến các phần khác nhau của máy tính. Trong chương này
chúng ta tập trung vào bộ phận chính yếu của mọi máy tính – bộ Nói chung ñể thực hiện các việc vừa liệt kê ở trên, một bộ
xử lý trung tâm (central processing unit - CPU). Chức năng chính xử lý trung tâm ñơn giản cần bao gồm ba nguyên tố quan trọng
yếu của CPU là thực thi các lệnh ñược lưu trong bộ nhớ chính. Như nhất: tập các thanh ghi, một bộ xử lý logic số học (Arithmetic
ñã ñề cập trong phần giới thiệu, do giáo trình này ñược thiết kế Logic Unit - ALU) và một bộ ñiều khiển (Control Unit - CU). Tổ
dành cho sinh viên học ngay học kỳ ñầu tiên cho nên chúng ta chỉ chức một máy tính ñơn giản gồm CPU và tương tác của nó với bộ
ñề cập ñến các vấn ñề ở mức ñộ ñơn giản. nhớ chính và các thiết bị nhập xuất có thể biểu diễn như hình 7.1.

7.1. Tổ chức bộ xử lý trung tâm


ðể hiểu ñược cách tổ chức trong CPU như thế nào chúng ta
hãy xem những ñòi hỏi ở bên trong nó và những gì nó phải thực
hiện. Nói chung những công việc nó phải làm là:
- Tìm nạp lệnh (Fetch Instruction): CPU ñọc một lệnh từ
bộ nhớ
- Diễn giải lệnh (Interpret Instruction): Lệnh ñược giải
mã và xác ñịnh xem hành ñộng gì ñòi hỏi thực hiện
- Tìm nạp dữ liệu (Fetch data): ðể thực hiện câu lệnh có
thể ñòi hỏi ñọc dữ liệu từ bộ nhớ hoặc từ các thiết bị
nhập xuất
- Xử lý dữ liệu (Process data): Việc thi hành lệnh có thể
ñòi hỏi thực hiện một vài phép tính số học hay logic
trên các dữ liệu tìm nạp vào Hình 7.1. Tổ chức một máy tính ñơn giản
- Ghi dữ liệu (Write data): Kết quả thực thi lệnh cũng có Bộ các thanh ghi của các loại máy tính là khác nhau và
thể ñòi hỏi phải ghi dữ liệu vào bộ nhớ hoặc ghi ra các thường chia làm hai loại, các thanh ghi ñược dùng với mục ñích
thiết bị nhập xuất. chung (general-purpose registers), và các thanh ghi với mục ñích
ñặc biệt (special-purpose registers). Các thanh ghi mục ñích chung
218 219
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

ñược sử dụng cho bất kỳ mục ñích nào, ví dụ như có thể dùng nó
làm nơi lưu trữ các loại dữ liệu khác nhau, dùng làm lưu các toán
hạng của một lệnh. Trong khi các thanh ghi với mục ñích ñặc biệt
chỉ có một số chức năng bên trong CPU, ví dụ như bộ ñếm chương
trình (progam counter - PC) là một thanh ghi với mục ñích ñặc biệt
ñó là chỉ dùng ñể lưu ñịa chỉ của lệnh cần thực hiện tiếp theo. Một
ví dụ khác của thanh ghi với mục ñích ñặc biệt là thanh ghi mã lệnh
(Instruction Registers – IR), thanh ghi này chỉ ñược dùng ñể lưu mã
lệnh ñang thực hiện tại thời ñiểm hiện tại.
Bộ logic số học ALU cung cấp một mạch số cần thiết ñể
thực hiện các phép tính số học (như cộng, trừ, nhân , chia), logic
(như NOT, AND, OR) và các phép toán dịch chuyển trong bộ lệnh.
Bộ ñiều khiển (control block) chịu trách nhiệm ñiều khiển
mọi hoạt ñộng của CPU như tìm nạp lệnh từ bộ nhớ chính, giải mã
nó, ñịnh loại xem nó thuộc loại nào và cuôi cùng là ra lệnh cho các
bộ phận trong CPU làm việc gì.
CPU tìm nạp lệnh từ bộ nhớ chính, ñọc dữ liệu từ bộ nhớ
Hình 7.2. Cấu trúc bên trong của CPU
chính, ghi dữ liệu ngược lại ñó khi cần và truyền các dữ liệu từ các
thiết bị ngoại vi vào máy tính cũng như ñưa các dữ liệu trong máy
tính ra các thiết bị ngoại vi. Các thiết bị ngoại vi ở ñây có thể là ổ
ñã cứng, máy in, flash memory,…
7.2. Bộ ñiều khiển
Giống như trong một trung ñội thì mọi hoạt ñộng ñược ñiều
Trong hình 7.2 cho ta sơ ñồ tổng quát của CPU một cách tỷ
khiển bởi trung ñội trưởng, bộ ñiều khiển chịu trách nhiệm ñiều
mỉ hơn. Trong ñó chỉ ra việc truyền dữ liệu và ñường ñiều khiển
khiển mọi hoạt ñộng của CPU. Bộ ñiều khiển tạo các tín hiệu ñiều
logic cũng ñược chỉ ra bao gồm cả một nguyên tố gọi là trục CPU
khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ các thanh ghi
nội (Internal CPU bus). Nguyên tố này ñược cần ñể truyền dữ liệu
ñến bus hoặc tín hiệu viết vào các thanh ghi), ñiều khiển các tác vụ
giữa các thanh ghi khác nhau và ALU, bởi vì trên thực tế thì ALU
mà các bộ phận chức năng phải làm (ñiều khiển ALU, ñiều khiển
thực thi chỉ trên các dữ liệu nằm ở bộ nhớ bên trong CPU.
ñọc và viết vào bộ nhớ trong...). Bộ ñiều khiển cũng tạo các tín
hiệu giúp các lệnh ñược thực hiện một cách tuần tự.
ðể thiết kế một bộ ñiều khiển, ta có thể dùng một trong hai
cách là dùng mạch ñiện tử hoặc dùng vi chương trình
(microprogram).

220 221
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Bộ ñiều khiển mạch ñiện tử Hình 7.3. cho ta sơ ñồ khối một bộ ñiều khiển cơ bản. Lệnh
Trong chương 5 chúng ta ñã học về mạch tuần tự. Một bộ ñược ñọc từ bộ nhớ và ñưa vào thanh ghi lệnh IR. Thanh ghi lệnh
thì như trong chương 6 chúng ta ñã biết, trong ñó có phần mã hóa
ñiều khiển mạch ñiện tử có nguyên lý hoạt ñộng như một mạch
tuần tự. Tức là sẽ có các trạng thái và các ñường tín hiệu mà sự vi tác vụ hay opcode sẽ ñược qua một mạch giải mã ñể biết ñược
thay ñổi của các tín hiệu tại một thời ñiểm nhất ñịnh sẽ làm trạng mã tác vụ phải làm là gì. Sau khi giải mã, các tín hiệu này ñược ñưa
thái giữ nguyên hoặc chuyển sang một trạng thái mới. vào mạch ñiều khiển gồm các cổng ñiều khiển.

ðể hiểu ñược vận hành của bộ ñiều khiển mạch ñiện tử, ðể ñiều khiển các hoạt ñộng ñược ñồng bộ, ta dùng một bộ
chúng ta xét ñến mô tả về Automate (mạch tự ñộng hóa) trạng thái tạo các thời hiệu, mỗi thời hiệu ứng với một thời ñiểm nhất ñịnh.
Các thời hiệu này cùng với các tín hiệu từ bộ giải mã và từ các tín
hữu hạn như một mạch tuần tự có nhiều hệ thống hay nhiều thành
phần mà ở mỗi thời ñiểm xem xét ñều có một trạng thái (state). hiệu khác trong phần còn lại của thanh ghi IR sau khi qua các cổng
Mục ñích của trạng thái là ghi nhớ những gì có liên quan ñiều khiển sẽ cho ta các tín hiệu ñiều khiển cần thiết. Các tín hiệu
trong quá trình hoạt ñộng của hệ thống. Vì chỉ có một số trạng thái ñiều khiển có thể là ñưa dữ liệu một thanh ghi nào ñó lên BUS, ñưa
dữ liệu từ trên BUS vào thanh ghi, mở tín hiệu ghi vào một thanh
nhất ñịnh nên nói chung không thể ghi nhớ hết toàn bộ lịch sử của
hệ thống, do vậy nó phải ñược thiết kế cẩn thận ñể ghi nhớ những ghi, ñưa ra tín hiệu ñọc/ghi vào bộ nhớ chính, khởi ñộng ngắt ñể
gì quan trọng. truyền dữ liệu ra HDD, máy in,…

Ưu ñiểm của hệ thống (chỉ có một số hữu hạn các trạng


thái) ñó là có thể cài ñặt hệ thống với một lượng tài nguyên cố IR Mã tác vụ ñịa chỉ bộ nhớ, thanh ghi,…
ñịnh. Chẳng hạn, chúng ta có thể cài ñặt Automate trạng thái hữu
hạn trong phần cứng máy tính ở dạng mạch ñiện hay một dạng
chương trình ñơn giản, trong ñó, nó có khả năng quyết ñịnh khi chỉ Mạch giải
biết một lượng giới hạn dữ liệu hoặc bằng cách dùng vị trí trong mã nxm
ñoạn mã lệnh ñể ñưa ra quyết ñịnh. m-1
0
D0
Các cổng
ñiều khiển Tín hiệu
Theo tổ chức ñiều khiển cứng, luận lý ñiều khiển ñược cài … ñiều khiển
ñặt qua các cổng , mạch lật, mạch giải mã và các mạch số khác. Dm-1
Thuận lợi là có thể tối ưu ñể tạo ra chế ñộ nhanh cho tác vụ
T
Theo tổ chức ñiều khiển vi trình, thông tin ñiều khiển ñược
lưu trong bộ nhớ ñiều khiển, bộ nhớ ñiều khiển ñược lập trình ñể
khởi ñộng dãy vi tác vụ theo yêu cầu. Khi thay ñổi thiết kế, cần Các tín hiệu khác
thay ñổi cách kết nối các thành phần nếu tổ chức theo kiểu ñiều Bộ tạo các (INR, CLR,…)
khiển cài cứng. Nếu tổ chức theo ñiều khiển vi trình chỉ cần cập thời hiệu Clock
nhật vi trình trong bộ nhớ ñiều khiển.
Hình 7.3. Sơ ñồ khối bộ ñiều khiển máy tính cơ bản
222 223
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Bộ ñiều khiển vi chương trình ñến việc phải sử dụng tham chiếu hay con trỏ tới bộ nhớ nhiều hơn
Thay vì bộ ñiều khiển cứng dùng mạch tổ hợp các cổng ñể làm giảm ñáng kể ñến tốc ñộ thực thi của chương trình.
cho ra các tín hiệu ñiều khiển thì ñiều khiển vi trình dùng một vi Một dạng khác của các thanh ghi ñược dùng ñể lưu các bit
chương trình lập sẵn nằm trong bộ nhớ ñiều khiển ñể khởi ñộng trạng thái của bộ xử lý hay là các cờ trạng thái. Những bit này thay
dãy vi tác vụ theo yêu cầu. ñổi tùy theo kết quả thực hiện một lệnh nào ñó trong CPU
Bộ ñiều khiển bằng vi chương trình ñược dùng rộng rãi
Thanh ghi truy cập bộ nhớ
trong các bộ xử lý CISC. Bộ xử lý này có tập lệnh phức tạp với các
lệnh có chiều dài khác nhau và có dạng thức phức tạp. Trong các Có hai thanh ghi ñược dùng ñặc biệt trong các lệnh ñọc/ghi
bộ xử lý CISC, người ta cài ñặt một lệnh mã máy bằng cách viết với bộ nhớ: thanh ghi dữ liệu bộ nhớ (memory data register -
một vi chương trình. Như vậy công việc khá ñơn giản và rất hữu MDR) và thanh ghi ñịa chỉ bộ nhớ (memory address register –
hiệu. Các sai sót trong thiết kế automat ñiều khiển cũng dễ sửa ñổi. MAR). Hai thanh ghi này ñược CPU sử dụng ñặc biệt và các nhà
lập trình không thể truy cập trực tiếp vào chúng.
7.3. Bộ thanh ghi Trong thứ tự thực hiện một lệnh ghi vào một vùng nhớ ñặc
Các thanh ghi là một loại bộ nhớ ñặc biệt nhanh nằm bên biệt, MDR và MAR ñược dùng như sau:
trong CPU và ñược dùng ñể tạo ra và lưu trữ các kết quả của các 1. Một từ cần lưu vào một vị trí nào ñó trong bộ nhớ, ñầu
lệnh trong CPU và các phép toán khác. Các loại máy tính khác tiên sẽ ñược CPU tải vào thanh ghi MDR
nhau có các bộ thanh ghi khác nhau. Chúng khác nhau về số lượng 2. ðịa chỉ của vùng nhớ ñó (vùng nhớ sẽ ghi dữ liệu vào)
các thanh ghi, các loại thanh ghi và cả chiếu dài của mỗi thanh ghi. ñược CPU tải vào trong MAR
Chúng cũng khác nhau trong cách dùng cho mỗi thanh ghi. 3. Sau cùng bộ ñiều khiển sẽ phát ra tín hiệu ñiều khiển
Thanh ghi muc ñích chung có thể ñược dùng cho nhiều mục “ghi” (write) ñể ghi dữ liệu nằm trên MDR vào ñịa chỉ
ñích và ñược nhà lập trình dùng ñể gán cho những trạng thái khác nằm trên MAR.
nhau của các hàm, các biến. Tương tự khi thực hiện một lệnh ñọc (read) từ bộ nhớ,
Thanh ghi có mục ñích ñặc biệt chỉ ñược dùng cho một số thanh ghi MDR và MAR sẽ ñược dùng như sau:
chức năng ñặc biệt. Trong một số trường hợp, một vài thanh ghi chỉ 1. ðịa chỉ của từ nhớ nằm trong bộ nhớ cần ñọc ñược ñưa
ñược dùng ñể lưu trữ dữ liệu và không thể dùng trong tính toán ñịa vào MAR
chỉ của các toán hạng. 2. Bộ ñiều khiển sẽ phát ra tín hiệu ñiều khiển “ñọc”
Chiều dài của thanh ghi phải ñủ ñể lưu trữ hầu hết các loại (read) ñể ñọc dữ liệu nằm trong bộ nhớ.
dữ liệu, ñặc biệt là thanh ghi ñịa chỉ phải ñủ dài ñể có thể lưu ñược 3. Dữ liệu nằm trong bộ nhớ có ñịa chỉ chứa trong MAR sẽ
ñịa chỉ lớn nhất. ñược tải vào trong MDR
Số lượng thanh ghi trong một kiến trúc máy tính ảnh hưởng
trực tiếp ñến việc thiết kế bộ lệnh. Nếu số lượng thanh gi ít sẽ dẫn

224 225
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Thanh ghi chuyển tải lệnh DS, ES, FS và GS. Nhóm thanh ghi thứ ba bao gồm thanh ghi lệnh
Có hai thanh ghi rất quan trọng ñược dùng ñể lưu các câu IR và thanh ghi trạng thái. Trong số những bit trạng thái, 5 bit ñầu
tiên ñồng nhất với các bit của bộ vi xử lý 8 bit trước ñây 8085. Các
lệnh cho việc thực thi của chương trình là: Bộ ñếm chương trình
(program counter – PC) và thanh ghi lệnh (instruction register – bit tiếp theo 6-11 giống như ñược giới thiệu trong 8086. Các bit 12-
IR). 14 ñược giới thiệu trong 80286 trong khi các bit 16-17 trong
Thanh ghi PC dùng ñể lưu ñiạ chỉ của lệnh tiếp theo qua ñó 80386. Bit flag 18 trong 80486. Trong ñó còn nhiều bit chưa ñược
dùng tới và ñể làm dự trữ cho những mục ñích có thể xuất hiện sau
sẽ ñiều khiển thứ tự thực hiện các lệnh trong một chương trình. Các
lệnh thực hiện lần lượt ñược tìm thấy và lưu vào trong thanh ghi này.
IR. Tại mỗi thời ñiểm chỉ có một lệnh ñược lưu trong IR. Sau khi 31 16 15 8 7 0
ñã tìm và ñem một lệnh về cho IR, thanh ghi PC sẽ ñược nạp một EAX AH AL
giá trị mới là ñịa chỉ của lệnh tiếp theo. EBX BH BL
ECX CH CL
Thanh ghi trạng thái
EDX DH DL
Các thanh ghi trạng thái hay là các cờ trạng thái ñược sử ESI SI
dụng ñể giữ các thông tin về trạng thái của quá trình thực thi lệnh. EDI DI
Một số kiến trúc máy tính chứa một thanh ghi ñặc biệt gọi là thanh ESP SP
ghi từ trạng thái của chương trình (program status word – PSW). EBP BP
Trong PSW chứa các bit trạng thái cho biết kết quả của các phép Các thanh ghi mục ñích chung
tính số học (có bằng 0 không?có số thừa không?...), trạng thái ngắt, 15 0
thông tin bảo vệ bộ nhớ, tình trạng của bộ xử lý,… CS (Code segment pointer)
SS (Stack segment pointer – top)
Các thanh ghi họ 80x86 Các thanh ghi ñoạn DS (Data segment pointer 0)
Trong các thế hệ máy tính 32 bit của Intel như 386,486 và ES (Data segment pointer 1)
Pentium có ba nhóm thanh ghi, ñó là: FS (Data segment pointer 2)
- Thanh ghi mục ñích chung GS(Data segment pointer 3)
- Thanh ghi segment
- Thanh ghi ñếm chương trình PC và thanh ghi cờ Thanh ghi lệnh IR
trạng thái
E Flags Flags H Flags L
Trong hình 7.4 cho ta thấy ba nhóm này. Nhóm thứ nhất là Thanh ghi cờ
các thanh ghi mục ñích chung ñược ñặt tên bằng các ký tự
A,B,C,D,SI (source index), DI (destination index), SP (stack
Hình 7.4. Các thanh ghi họ 80x86
pointer) và BP (base pointer). Nhóm thứ hai bao gồm các thanh ghi
CS (code segment), SS (stack segment) và 4 thanh ghi ñoạn dữ liệu
226 227
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

7.4. ðường ñi dữ liệu (Datapath)


Phần ñường ñi dữ liệu gồm có bộ logic-số học (ALU:
Arithmetic and Logic Unit), các mạch dịch, các thanh ghi và các
ñường nối kết các bộ phận trên. Phần này chứa hầu hết các trạng
thái của bộ xử lý. Ngoài các thanh ghi tổng quát, phần ñường ñi dữ
liệu còn chứa thanh ghi ñếm chương trình (PC: Program Counter),
thanh ghi trạng thái (SR: Status Register), các thanh ghi ñịa chỉ bộ
nhớ MAR, thanh ghi số liệu bộ nhớ MDR, bộ dồn kênh (MUX:
Multiplexor), ñây là ñiểm cuối của các kênh dữ liệu - CPU và bộ
nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các
kênh dữ liệu, các hệ thống bus
Hình 7.5. Tổ chức One-Bus
Nhiệm vụ chính của phần ñường ñi dữ liệu là ñọc các toán
hạng từ các thanh ghi tổng quát, thực hiện các phép tính trên toán 7.4.2. Tổ chức Two-Bus, Three-Bus
hạng này trong ALU và lưu trữ kết quả trong các thanh ghi tổng
quát. Ở ngã vào và ngã ra các thanh ghi tổng quát có các mạch chốt Sử dụng hai BUS ñể tổ chức ñường ñi dữ liệu là một giải
A, B, C. Như ñã ñề cập ở trên, thông thường, số lượng các thanh pháp giúp cải thiện tốc ñộ rất nhiều so với công nghệ dùng one-bus.
ghi tổng quát là 32. Trong trường hợp này các thanh ghi ña mục ñích ñược nối với cả
hai bus. Dữ liệu có thể truyền từ hai thanh ghi khác nhau ñến ñầu
Phần ñường ñi của dữ liệu chiếm phân nửa diện tích của bộ
vào của ALU tại cùng một thời ñiểm. Do vậy, một lệnh có hai toán
xử lý nhưng là phần dễ thiết kế và cài ñặt trong bộ xử lý.
hạng có thể tìm và nạp trong cùng một chu kỳ ñồng hồ và như vậy
7.4.1. Tổ chức One-Bus rõ ràng tốc ñộ xử lý lệnh lúc này ñã tăng gấp ñôi. Hơn nữa, trong
Các thanh ghi CPU và ALU dùng một BUS ñơn ñể di cấu trúc này (hình 7.6) còn có một thanh ghi ñệm (buffer register)
chuyển dữ liệu ra vào giữa chúng với nhau. Vì một BUS chỉ có thể có thể cần thiết ñể lưu trữ dữ liệu ñầu ra của ALU khi hai bus ñang
sử dụng một dữ liệu di chuyển trong một chu kỳ ñồng hồ, cho nên bận chuyển tải dữ liệu.
một phép toán có hai toán hạng sẽ phải cần hai chu kỳ ñồng hồ ñể
Trong hình 7.6(a) cho ta thấy cách tổ chức kiến trúc kiểu
tìm và nạp các toán hạng cho ALU. Dạng tổ chức BUS này là ñơn
two-bus này. Trong một số trường hợp, một bus có thể ñược dùng
giản nhất nhưng nó bị nhiều hạn chế về số lượng dữ liệu ñược
ñể di chuyển dữ liệu vào thanh ghi (in-bus). Ở trường hợp này một
chuyển tải trong một chu kỳ ñồng hồ nói chung ñã làm chậm cả hệ
thanh ghi ñệm thêm có thể ñược dùng như là một bộ nhớ tạm thời
thống lại rất nhiều.
trước khi ñưa vào ALU. ðầu ra của ALU ñược nối trực tiếp với in-
Hình 7.5 cho ta sơ ñồ tổ chức ñường ñi dữ liệu one-bus . Nó bus và cho phép chuyển kết quả tính toán tới một trong các thanh
bao gồm bộ các thanh ghi ña mục ñích, một thanh ghi ñịa chỉ bộ ghi. Hình 7.6(b) cho ta tổ chức two-bus với in-bus và out-bus.
nhớ MAR, một thanh ghi dữ liệu bộ nhớ MDR, một thanh ghi lệnh
IR, một thanh ghi ñếm chương trình PC và bộ logic số học ALU.
228 229
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Trong tổ chức three-bus thì hai trong số ñó ñược dùng như


là các bus nguồn, bus còn lại như là bus ñích. Các bus nguồn
chuyển dữ liệu ra khỏi thanh ghi (out-bus), và bus ñích có thể
chuyển dữ liệu vào trong các thanh ghi (in-bus). Mỗi ñầu của out-
bus ñược nối với ñầu vào của ALU. ðầu ra của ALU thì nối trực
tiếp với in-bus. Như vậy chúng ta lại có thể truyền dữ liệu nhiều
hơn trong cùng một chu kỳ ñồng hồ. Tuy nhiên việc tăng các bus
lên sẽ làm tăng ñộ phức tạp của phần cứng lên nhiều hơn, vì vậy
tùy theo mức ñộ cần thiết mà các loại máy tính khác nhau sẽ có số
lượng bus khác nhau. Tổ chức máy tính ñơn giản loại three-bus có
thể mih họa như hình 7.7.

Hình 7.7. Tổ chức ñường truyền dữ liệu dạng three-bus

7.5. Diễn tiến thi hành lệnh mã máy(CPU instruction


cycle)
Công việc của CPU diễn ra liên tục và việc thực hiện các
lệnh diễn ra như trong hình 7.8. Các lệnh ñược lấy ra từ bộ nhớ
chính và khi CPU tìm thấy một lệnh, nó sẽ phân tích lệnh ñó ñể
thực thi, sau ñó lại sẽ tìm nạp lệnh tiếp theo và cứ như vậy diễn ra
liên tục.

Việc thi hành một lệnh mã máy có thể chia thành 5 giai ñoạn sau:
 ðọc lệnh (IF: Instruction Fetch)
 Giải mã lệnh (ID: Instruction Decode)
 Thi hành lệnh (EX: Execute)
 Thâm nhập bộ nhớ trong hoặc nhảy (MEM: Memory
access)
 Lưu trữ kết quả (RS: Result Storing).

Mỗi giai ñoạn ñược thi hành trong một hoặc nhiều chu kỳ xung
Hình 7.6. Tổ chức ñường truyền dữ liệu dạng two-bus nhịp.
230 231
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

4. Dữ liệu trong MDR ñược load vào IR: IR ← M[MAR]


Bắt ñầu Bộ ñếm chương trình PC ñược ñưa vào MAR . Lệnh
ñược ñọc từ bộ nhớ trong, tại các ô nhớ có ñịa chỉ nằm
trong MAR và ñược ñưa vào thanh ghi lệnh IR. Thứ tự thực
ðọc lệnh kế tiếp hiện lệnh theo thời gian ñối với loại one-bus như sau:

Giải mã lệnh

Thi hành lệnh

Nếu dùng three-bus như hình 7.7 thì ta có thứ tự các


Truy cập bộ nhớ bước như sau:
hoặc nhảy

Lưu trữ kết quả

Hình 7.8. Diễn biến thi hành lệnh của CPU 2. Giải mã lệnh và ñọc các thanh ghi nguồn:

1. ðọc lệnh (fetch instruction): ðể hiểu rõ giai ñoạn này, ta lấy dạng thức của một
lệnh làm tính tiêu biểu sau ñây:
Chuỗi các sự kiện trong một lần tìm ñọc lệnh cò thể tổng
quát như sau: Mã lệnh Thanh ghi Thanh ghi Thanh ghi
RS1 RS1 RD
1. Dữ liệu trong PC ñược load vào MAR: MAR ← PC 8 4 4 4

2. Giá trị trong thanh ghi PC tăng lên 1: PCPC+1 Các thanh ghi nguồn RS1 và RS2 ñược sử dụng tuỳ
theo tác vụ, kết quả ñược ñặt trong thanh ghi ñích RD.
3. Kết quả của lệnh ñọc từ bộ nhớ, dữ liệu ñược load vào
MDR: MDRM[MAR]
232 233
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Lệnh ñược giải mã. Kế ñó các thanh ghi RS1 và RS2 ñược ALU thực hiện phép tính xác ñịnh trong mã lệnh,
ñưa vào A và B ñể chuẩn bị thực thi lệnh(ví dụ như trong tổ chức ñưa kết quả ra ngã ra.
one-bus).Thanh ghi PC ñược tăng lên ñể chỉ tới lệnh kế ñó.
- Một phép nhảy
A ← RS1
Ngã ra ALU ← ðịa chỉ lệnh tiếp theo do ALU tính.
B ← RS2
ALU cộng ñịa chỉ của PC với ñộ dời ñể làm thành
PC ← PC + 4 ñịa chỉ ñích và ñưa ñịa chỉ này ra ngã ra. Nếu là một phép
nhảy có ñiều kiện thì thanh ghi trạng thái ñược ñọc quyết
Trong giai ñoạn này việc giải mã sẽ ñược thực hiện cùng ñịnh có cộng ñộ dời vào PC hay không.
lúc với việc ñọc dữ liệu các thanh ghi nguồn RS1 và RS2. Như vậy
kết thúc giai ñoạn này thì lệnh sẽ ñược giải mã và máy tính sẽ biết 4. Thâm nhập bộ nhớ trong hoặc nhảy lần cuối
chính xác lệnh phải thực thi là lệnh cộng, trừ, AND,… và các thanh
ghi nguồn cũng ñược nạp vào vị trí cần thiết cho việc thực thi lệnh. Giai ñoạn này thường chỉ ñược dùng cho các lệnh
nạp dữ liệu, lưu giữ dữ liệu và lệnh nhảy.
3. Thi hành lệnh:
- Tham khảo ñến bộ nhớ:
Tuỳ theo loại lệnh mà một trong ba nhiệm vụ sau ñây ñược
thực hiện: MDR ← M[MAR] hoặc M[MAR] ← MDR

- Liên hệ tới bộ nhớ Số liệu ñược nạp vào MDR hoặc lưu vào ñịa chỉ mà
MAR trỏ ñến.
MAR ← ðịa chỉ do ALU tính tuỳ theo kiểu ñịnh vị
(RS2). - Nhảy:

MDR ← RS1 If (ñiều kiện), PC ← ngả ra ALU

ðịa chỉ hiệu dụng do ALU tính ñược ñưa vào MAR Nếu ñiều kiện ñúng, ngã ra ALU ñược nạp vào PC.
và thanh ghi nguồn RS1 ñược ñưa vào MDR ñể ñược lưu ðối với lệnh nhảy không ñiều kiện, ngả ra ALU luôn ñược
vào bộ nhớ trong. nạp vào thanh ghi PC.

- Một lệnh của ALU 5. Lưu trữ kết quả

Ngã ra ALU ← Kết quả của phép tính RD ← Ngã ra ALU hoặc RD ← MDR

234 235
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Lưu trữ kết quả trong thanh ghi ñích.  Báo tràn số liệu trong tính toán số học.

 Trang bộ nhớ thực sự không có trong bộ nhớ.

7.6. Xử lý ngắt (Interrupt Handling)  Báo vi phạm vùng cấm của bộ nhớ.

Trong máy tính, ñôi khi một số công việc nào ñó cần ñược  Báo dùng một lệnh không có trong tập lệnh.
xử lý ngay tức thời và như vậy cần phải làm ñình trị một công việc
nào ñó ñang xử lý, việc làm ñó của CPU ta gọi là ngắt. Vậy ngắt là  Báo phần cứng máy tính bị hư.
một sự kiện xảy ra một cách ngẫu nhiên trong máy tính và làm
ngưng tính tuần tự của chương trình (nghĩa là tạo ra một lệnh  Báo ñiện bị cắt.
nhảy). Phần lớn các nhà sản xuất máy tính (ví dụ như IBM,
Thông thường trong máy tính ngắt quãng không xảy ra
INTEL) dùng từ ngắt quãng ñể ám chỉ sự kiện này, tuy nhiên một
thường xuyên nhưng bộ xử lý phải ñược thiết kế sao cho có thể lưu
số nhà sản xuất khác dùng từ “ngoại lệ”, “lỗi”, hay “bẫy” ñể chỉ
giữ trạng thái của nó trước khi bị ngắt quãng ñi phục vụ một công
ñịnh hiện tượng này.
việc gì ñó ñòi hỏi tức thì. Sau khi thực hiện xong công việc ñó thì
Khi thiết kế máy tính thì bộ ñiều khiển của CPU là bộ phận chương trình xử lý ngắt phải khôi phục lại nguyên trạng thái của nó
khó thực hiện nhất và ngắt quãng lại là phần khó thực hiện nhất trước khi ngắt quãng xảy ra ñể có thể tiếp tục công việc.
trong bộ ñiều khiển. ðể nhận biết ñược một ngắt quãng lúc ñang thi
Khi thiết kế máy tính, ñể ñơn giản người ta có thể thiết kế
hành một lệnh, ta phải biết ñiều chỉnh chu kỳ xung nhịp và ñiều
bộ xử lý chỉ chấp nhận ngắt sau khi thực hiện xong lệnh ñang chạy.
này có thể ảnh hưởng ñến hiệu quả của máy tính.
Trong trường hợp ñơn giản này, khi một ngắt xảy ra, bộ xử lý thi
Ngắt quãng ñược ứng dụng trong nhiều trường hợp, ví dụ
hành các bước sau ñây:
như ñể nhận biết các sai sót trong tính toán số học như chia cho 0,
ñể ứng dụng cho những hiện tượng thời gian thực cần ñược phục 1. Thực hiện xong lệnh ñang làm.
vụ tức thì. Có thể liệt kê những công việc sau ñây ñòi hỏi phải có
ngắt quãng: 2. Lưu trữ trạng thái hiện tại.
 Ngoại vi ñòi hỏi nhập hoặc xuất số liệu. 3. Nhảy ñến chương trình phục vụ ngắt
 Người lập trình muốn dùng dịch vụ của hệ ñiều 4. Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục
hành. lại trạng thái cũ của nó và tiếp tục thực hiện chương trình
mà nó ñang thực hiện khi bị ngắt.
 Cho một chương trình chạy từng lệnh.

 Làm ñiểm dừng của một chương trình.


236 237
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Bảng 7.1 cho ta thấy thứ tự thực hiện các sự kiện khi xảy ra tìm nạp vào. Trong chu kỳ xung nhịp thứ hai, trong khi lệnh thứ i
ngắt, ở ñây t1<t2<t3. ñang thực hiện giải mã thì lại tiếp tục nạp lệnh tiếp theo i+1. Sang
chu kỳ xung nhịp thứ ba, trong khi lệnh thứ i ñang thực hiện, lệnh
thứ i+1 ñang giải mã thì lại tiếp tục tìm nạp lệnh thứ i+2.

Bảng 7.1. Thực hiện các vi tác vụ khi ngắt

7.7. Kỹ thuật ống dẫn (PIPELINE)


Hình 7.9. Thực hiện lệnh trong kỹ thuật pipeline
ðối với máy tính dạng bó hoạt ñộng theo nguyên lý Von
neumann thì các lệnh thực hiện một cách tuần tự, hết lệnh này rồi So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh ñược
mới ñến lệnh khác. Trong các máy tính ngày nay có một kỹ thuật thực hiện trong 25 chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật
làm cho tôc ñộ của máy tính tăng lên nhiều lần ñó là việc chia các ống dẫn thực hiện 5 lệnh chỉ trong 9 chu kỳ xung nhịp.
lệnh ra thành các giai ñoạn khác nhau và các giai ñoạn này có thể Cứ như thế, nếu số lệnh tăng lên nữa thì tiến tới chỉ trong
ñược thi hành cùng một lúc. một chu kỳ xung nhịp, bộ xử lý có thể thực hiện một lệnh (bình
thường lệnh này ñược thực hiện trong 5 chu kỳ).
Ví dụ: Chúng ta có những lệnh ñều ñặn, mỗi lệnh ñược thực
hiện trong cùng một khoảng thời gian. Giả sử, mỗi lệnh ñược thực Như vậy kỹ thuật ống dẫn làm tăng tốc ñộ thực hiện các
hiện trong 5 giai ñoạn và mỗi giai ñoạn ñược thực hiện trong 1 chu lệnh. Tuy nhiên kỹ thuật ống dẫn có một số ràng buộc:
kỳ xung nhịp. Các giai ñoạn thực hiện một lệnh là: - Cần phải có một mạch ñiện tử ñể thi hành mỗi giai ñoạn
• Lấy lệnh (IF: Instruction Fetch), của lệnh vì tất cả các giai ñoạn của lệnh ñược thi hành cùng lúc.
Trong một bộ xử lý không dùng kỹ thuật ống dẫn, ta có thể dùng bộ
• Giải mã (ID: Instruction Decode), logic số học ALU ñể cập nhật thanh ghi PC, cập nhật ñịa chỉ của
• Thi hành (EX: Execute), toán hạng bộ nhớ, ñịa chỉ ô nhớ mà chương trình cần nhảy tới, làm
các phép tính trên các toán hạng vì các phép tính này có thể xảy ra
• Thâm nhập bộ nhớ (MEM: Memory Access), ở nhiều giai ñoạn khác nhau.
• Lưu trữ kết quả (RS: Result Storing). - Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ
Hình 7.9 cho thấy ñể xử lý 5 lệnh chúng ta cần 9 chu kỳ ñọc và viết. Trên hình 7.9, tại một chu kỳ xung nhịp (chu kỳ xung
xung nhịp. Trong chu kỳ xung nhịp thứ nhất, lệnh thứ i nhất ñược

238 239
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

nhịp 5), ta thấy cùng một lúc có 2 tác vụ ñọc (IF, MEM) và 1 tác vụ Khó khăn ñầu tiên là khó khăn do thiếu bộ phận chức năng,
viết (RS). ví dụ trong một máy tính dùng kỹ thuật ống dẫn phải có nhiều
ALU, nhiều PC, nhiều thanh ghi lệnh IR ... Như vậy những khó
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của khăn này là do bộ phận phần cứng thiếu và cách giải quyết duy
một tác vụ trước ñó, là toán hạng nguồn của một tác vụ khác. Giả nhất là thêm các bộ phận chức năng cần thiết và hữu hiệu vào.
sử kết quả của lệnh thứ i là toán hạng của lệnh thứ i+1 thì tại chu
kỳ xung nhịp thứ 4 lệnh thứ i+1 không thể thực hiện (EX) ñược vì b. Khó khăn do số liệu:
còn chưa có giá trị toán hạng. Như vậy sẽ có thêm những khó khăn
ñòi hỏi phải có cơ chế xử lý riêng. Lấy ví dụ trường hợp các lệnh liên tiếp sau:
- Cần phải giải mã các lệnh một cách ñơn giản ñể có thể Lệnh 1: ADD R1, R2, R3
giải mã và ñọc các toán hạng trong một chu kỳ duy nhất của xung
nhịp. Lệnh 2: SUB R4, R1, R5
- Cần phải có các bộ làm tính ALU hữu hiệu ñể có thể thi
hành lệnh số học dài nhất, có số giữ, trong một khoảng thời gian ít Lệnh 3: AND R6, R1, R7
hơn một chu kỳ của xung nhịp.
Lệnh 4: OR R8, R1, R9
- Cần phải có nhiều thanh ghi lệnh ñể lưu giữ lệnh mà
Trong hình 7.10 cho ta thấy thanh ghi R1 lưu kết quả của
chúng ta phải xem xét cho mỗi giai ñoạn thi hành lệnh.
lệnh 1 chỉ có thể ñược dùng cho lệnh 2 sau giai ñoạn MEM của
- Cuối cùng phải có nhiều thanh ghi bộ ñếm chương trình lệnh 1, nhưng R1 ñược dùng cho lệnh 2 vào giai ñoạn EX của lệnh
PC ñể có thể tái tục các lệnh trong trường hợp có ngắt quãng. 1. Chúng ta cũng thấy R1 ñược dùng cho các lệnh 3 và 4.
 Những khó khăn trong kỹ thuật ống dẫn

Khi thi hành lệnh trong một máy tính dùng kỹ thuật ống
dẫn, có nhiều trường hợp làm cho việc thực hiện kỹ thuật ống dẫn
không thực hiện ñược như là: thiếu các mạch chức năng xử lý một
việc cụ thể nào ñó, một lệnh dùng kết quả của lệnh trước thì mới thi
hành ñược, một lệnh nhảy.

Ta có thể phân biệt 3 loại khó khăn: khó khăn do cấu trúc, Hình 7.10. Những khó khăn do số liệu
khó khăn do số liệu và khó khăn do ñiều khiển.
ðể khắc phục khó khăn này, một bộ phận phần cứng ñược
a. Khó khăn do cấu trúc: dùng ñể ñưa kết quả từ ngã ra ALU trực tiếp vô một trong các
thanh ghi ngã vào như trong hình 7.6.

240 241
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý Chương VII: Tổ chức Bộ xử lý

Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả Một trường hợp khó hơn có thể xảy ra trong những lệnh
của ALU làm toán hạng cho liệt kê, nó tác ñộng vào mạch ña hợp nhảy có ñiều kiện. ðó là ñiều kiện ñược có khi so sánh 2 thanh ghi
ñể ñưa ngã ra của ALU vào ngã vào của ALU hoặc vào ngã vào và chỉ thực hiện lệnh nhảy khi kết quả so sánh là ñúng. Việc tính
của một ñơn vị chức năng khác nếu cần. toán trên các ñại lượng logic không thể thực hiện ñược trong phân
nửa chu kỳ và như thế phải kéo dài thời gian thực hiện lệnh nhảy
c. Khó khăn do ñiều khiển: có ñiều kiện. Người ta thường tránh các trường hợp này ñể không
làm giảm mức hữu hiệu của máy tính.
Trong một số trường hợp, các lệnh làm thay ñổi tính thi
hành các lệnh một cách tuần tự (nghĩa là thay vì PC tăng ñều ñặn Vậy trường hợp ñơn giản, người ta có thể ñược ñịa chỉ cần
sau mỗi lệnh thì ñột xuất nó tăng hoặc giảm mạnh hơn), gây khó nhảy ñến và ñiều kiện nhảy cuối giai ñoạn ID. Vậy có chậm ñi một
khăn về ñiều khiển. Các lệnh này là lệnh nhảy ñến một ñịa chỉ tuyệt chu kỳ mà người ta có thể giải quyết bằng nhiều cách.
ñối chứa trong một thanh ghi, hay lệnh nhảy ñến một ñịa chỉ xác
ñịnh một cách tương ñối so với ñịa chỉ hiện tại của bộ ñếm chương Cách thứ nhất là ñóng băng kỹ thuật ống dẫn trong một chu
trình PC. Các lệnh nhảy trên có thể có hoặc không ñiều kiện. kỳ, nghĩa là ngưng thi hành lệnh thứ i+1 ñang làm nếu lệnh thư i là
lệnh nhảy. Ta mất trắng một chu kỳ cho mỗi lệnh nhảy.
Trong trường hợp ñơn giản nhất, tác vụ nhảy không thể biết
trước giai ñoạn giải mã. Như vậy, nếu lệnh nhảy bắt ñầu ở chu kỳ C Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý
thì lệnh mà chương trình nhảy tới chỉ ñược bắt ñầu ở chu kỳ C+2. rằng hiệu quả của một lệnh nhảy bị chậm mất một lệnh. Vậy lệnh
Ngoài ra, phải biết ñịa chỉ cần nhảy ñến mà ta có ở cuối giai ñoạn theo sau lệnh nhảy ñược thực hiện trước khi lệnh mà chương trình
giải mã ID. Trong lệnh nhảy tương ñối, ta phải cộng ñộ dời chứa phải nhảy tới ñược thực hiện. Chương trình dịch hay người lập
trong thanh ghi lệnh IR vào thanh ghi PC. Việc tính ñịa chỉ này chỉ trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy.
ñược thực hiện vào giai ñoạn ID với ñiều kiện phải có một mạch
công việc riêng biệt. Trong lập trình thường xảy ra trường hợp chúng ta so sánh
một ñiều kiện nào ñó và việc nhảy có thể ñược thực hiện hay không
Vậy trong trường hợp lệnh nhảy không ñiều kiện, lệnh mà thực hiện phụ thuộc vào ñiều kiện ñó. Người ta gọi lệnh hữu ích ñặt
chương trình nhảy ñến bắt ñầu thực hiện ở chu kỳ C+2 nếu lệnh sau lệnh nhảy không làm sai lệch chương trình dù ñiều kiện nhảy
nhảy bắt ñầu ở chu kỳ C. ñúng hay sai. Hầu hết các bộ xử lý RISC có những lệnh nhảy với
khả năng huỷ bỏ. Các lệnh này cho phép thi hành lệnh sau lệnh
Cho các lệnh nhảy có ñiều kiện thì phải tính toán ñiều kiện. nhảy nếu ñiều kiện nhảy ñúng và huỷ bỏ thực hiện lệnh ñó nếu ñiều
Thông thường các kiến trúc RISC ñặt kết quả việc so sánh vào kiện nhảy sai giống như trong câu lệnh if (ñiều kiện ñúng) GOTO
trong thanh ghi trạng thái, hoặc vào trong thanh ghi tổng quát. ñịa chỉ else thực hiện lệnh ngay sau dòng if.
Trong cả 2 trường hợp, ñọc ñiều kiện tương ñương với ñọc thanh
ghi. ðọc thanh ghi có thể ñược thực hiện trong phân nửa chu kỳ
cuối giai ñoạn ID.

242 243
Simpo
ChươngPDF
VII: TổMerge and
chức Bộ Split Unregistered Version - http://www.simpopdf.com
xử lý

CÂU HỎI VÀ BÀI TẬP CHƯƠNG VII

1. Liệt kê các thành phần và nhiệm vụ của CPU?


2. Mô tả tổ chức một máy tính ñơn giản và hoạt ñộng của các bộ
phận chính trong CPU
3. Nhiệm vụ của bộ ñiều khiển và các loại bộ ñiều khiển?
4. Bộ thanh ghi gồm các loại nào? Trong họ 80x86, hãy nêu các
thanh ghi và các ñặc tính tương ứng của mỗi loại.
5. Các loại ñường ñi của dữ liệu và các ưu, nhược ñiểm của mỗi
loại?
6. Việc thi hành lệnh mã máy ñược thực thi ra sao? giải thích việc
thực thi ñoạn chương trình sau:
MOV R4, #24
ADD R4, (R1)
7. Thế nào là ngắt quãng? Các giai ñoạn thực hiện ngắt quãng của
CPU.
8. Vẽ hình ñể mô tả kỹ thuật ống dẫn. Kỹ thuật ống dẫn làm tăng
tốc ñộ CPU lên bao nhiêu lần (theo lý thuyết)? Tại sao trên thực tế
sự gia tăng này lại ít hơn?
9. Các ñiều kiện mà một CPU cần phải có ñể tối ưu hoá kỹ thuật
ống dẫn. Giải thích từng ñiều kiện.
10. Các khó khăn trong kỹ thuật ống dẫn và cách giải quyết khó
khăn này.

244
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

trong (main memory). Bộ nhớ cache và bộ nhớ chính ñược chế tạo
CHƯƠNG VIII: HỆ THỐNG BỘ NHỚ sử dụng chất bán dẫn rắn ( ñiển hình là CMOS transistors). Tiếp
theo sau ñó là các bộ nhớ có dung lượng lớn hơn, chậm hơn và rẻ
Trong chương này sẽ giới thiệu về các chức năng và tiền hơn mà tiêu biểu là ñĩa cứng, ñĩa mềm, các loại CD, DVD,
nguyên lý hoạt ñộng của hệ thống bộ nhớ máy tính như bộ nhớ băng từ,…
cache, bộ nhớ trong, bộ nhớ thứ cấp và bộ nhớ ảo. Bộ nhớ máy tính Các thanh ghi
ñược tổ chức thành một hệ thống gọi là các cấp bộ nhớ, trong ñó Mức cao
các bộ nhớ lớn hơn, chậm hơn và rẻ tiền hơn sẽ ñược kết hợp với Bộ nhớ Cache

Dung lượng bộ nhớ nhỏ hơn


các bộ nhớ nhỏ hơn, nhưng nhanh hơn và ñắt tiền hơn ñể tạo thành
một hệ thống bộ nhớ có tốc ñộ và giá cả phù hợp nhất. Bộ nhớ chính
(Main memory)

8.1. CÁC CẤP BỘ NHỚ (Memory Hierarchy) Bộ nhớ thứ cấp – ðĩa
Secondary Storage (Disk)

Nhanh hơn
Người ta chia bộ nhớ thành các cấp dựa vào các ñặc tính

ðắt hơn
như lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu kỳ bộ Bộ nhớ cấp ba - Băng từ
nhớ, giá tiền mỗi bit nhớ. Các cấp bộ nhớ bắt ñầu từ bộ nhớ nhanh Tertiary Storage (Tape)
Mức thấp
với dung lượng ít ñến các bộ nhớ chậm với dung lượng lớn hơn
nhiều.
Các cấp bộ nhớ giúp cho người lập trình có ñược một bộ Hình 8.1. Các cấp bộ nhớ cơ bản
nhớ thật nhanh với chi phí ñầu tư thấp hơn nhiều. Vì các bộ nhớ Hiệu quả của việc phân thành các cấp bộ nhớ phụ thuộc vào
nhanh, có dung lượng ít thì ñắt tiền hơn các bộ nhớ có dung lượng nguyên lý chuyển ñổi thông tin trong các bộ nhớ nhanh. Hiệu quả
cao hơn, nhưng chậm hơn. Do ñó mục tiêu của việc thiết lập các càng cao khi thông tin trong ñó càng ít khi bị thay ñổi và việc truy
cấp bộ nhớ là người dùng có ñược một hệ thống bộ nhớ rẻ tiền như cập vào thông tin trong ñó càng nhiều lần càng tốt trước khi nó bị
cấp bộ nhớ thấp nhất và gần nhanh như cấp bộ nhớ cao nhất. Các thay thế bởi thông tin mới. ðể ñánh giá hiệu quả của hệ thống các
cấp bộ nhớ thường ñược lồng vào nhau. Mọi dữ liệu trong một cấp cấp bộ nhớ, chúng ta sẽ xem xét trường hợp dưới ñây.
thì ñược gặp lại trong cấp thấp hơn và có thể tiếp tục gặp lại trong Khi bộ vi xử lý (VXL) gửi một yêu cầu truy cập ñến một từ
cấp thấp nhất. nhớ hay một câu lệnh, máy tính sẽ thực thi tìm kiếm từ nhớ theo
Chúng ta có nhận xét rằng, mỗi cấp bộ nhớ có dung lượng một thứ tự như sau:
lớn hơn cấp trên mình, ánh xạ một phần ñịa chỉ các ô nhớ của mình – Tìm từ nhớ trong bộ nhớ mức cao nhất (thông thường gọi là
vào ñịa chỉ ô nhớ của cấp trên trực tiếp có tốc ñộ nhanh hơn, và các cache) của các cấp bộ nhớ. Xác suất tìm thấy từ nhớ trong
cấp bộ nhớ phải có cơ chế quản lý và kiểm tra các ñịa chỉ ánh xạ. ñó gọi là tỷ số thành công (hit ratio) h1, không tìm thấy là tỷ
Các cấp bộ nhớ ñược phân loại như trên hình 8.1 bắt ñầu số thất bại (miss ratio) (1-h1);
với bộ nhớ nhỏ, ñắt tiền và nhanh gọi là cache. Tiếp sau ñó là bộ – Khi không tìm thấy từ nhớ trong bước một thì tìm ở cấp bộ
nhớ lớn hơn, rẻ hơn và chậm hơn gọi là bộ nhớ chính hay bộ nhớ nhớ thấp hơn thấp hơn (như cache L2, main memory).
Tương tự như trên ta sẽ có các tỷ số h2 và (1-h2);
245 246
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

– Quá trình này sẽ tiếp diễn cho ñến khi tìm thấy từ nhớ cần • Nguyên tắc về thời gian: Các ô nhớ ñược hệ thống xử lý thâm
thiết hoặc hết cấp bộ nhớ. nhập có khả năng sẽ ñược thâm nhập lại trong tương lai gần.
– Khi tìm thấy từ nhớ sẽ ñược chuyển cho Bộ xử lý và cập Thật vậy, các chương trình ñược cấu tạo với phần chính là phần
nhật lại dữ liệu trong các cấp bộ nhớ nếu cần thiết. ñược thi hành nhiều nhất và các phần phụ dùng ñể xử lý các
Giả sử các cấp bộ nhớ có 3 cấp. Thời gian truy cập vào các trường hợp ngoại lệ. Còn số liệu luôn có cấu trúc và thông
cấp bộ nhớ trung bình, hay thời gian trung bình ñể tìm thấy một từ thường chỉ có một phần số liệu ñược thâm nhập nhiều nhất mà
nhớ ñược tính thao công thức sau: thôi. Ví dụ như một lệnh trong một vòng lặp của chương trình.

tav = h1*t1 + (1-h1)*[t1+h2*t2+(1-h2)*(t2+t3)] Như vậy, chúng ta cần tổ chức các cấp bộ nhớ sao cho các
= t1 + (1-h1)*[t2 + (1-h2)*t3] lệnh và dữ liệu thường dùng ñược nằm trong bộ nhớ cache và việc
Trong ñó: ổ chức như vậy sẽ làm tăng hiệu quả cũng như tốc ñộ chung của
- hi là tỷ số thành công khi tìm thấy từ nhớ cần thiết trong máy tính lên một cách ñáng kể.
mức bộ nhớ cấp i. 8.2. BỘ NHỚ CACHE (Cache memory)
- ti là thời gian truy cập cần thiết vào bộ nhớ cấp i.
Cache là một bộ nhớ tốc ñộ cao nằm gần CPU. Ý tưởng là
dùng bộ nhớ cache ở mức ñầu tiên của các cấp bộ nhớ ñể lưu trữ
Theo [6] thì một chương trình tiêu tốn 90% thời gian thi các thông tin mà CPU thường xuyên sử dụng. Kết quả là trong bất
hành của nó chỉ ñể thực hiện 10% số lệnh của chương trình (thường kỳ thời gian nào cũng có một phần ñang vận hành của bộ nhớ trong
là những lệnh nằm trong các vòng lặp, ñược thực thi nhiều lần). (hay bộ nhớ chính – main memory) ñược nhân bản lại trong bộ nhớ
Như vậy 90% số lệnh còn lại chỉ tiêu tốn 10% thời gian thực thi cache. ðể cho chương trình vận hành nhanh hơn thì cache phải
hay nói cách khác chúng hoặc là không ñược thực thi (Ví dụ các chứa một phần con của bộ nhớ trong ñể bộ xử lý có thể thâm nhập
lệnh xử lý lỗi chỉ ñược thực thi khi phát sinh lỗi) hoặc là chỉ ñược vào các lệnh hoặc dữ liệu thường dùng từ bộ nhớ cache. Do dung
thực thi một số ít lần. lượng của bộ nhớ cache nhỏ nên nó chỉ chứa một phần chương
Nguyên tắc trên cũng ñược áp dụng cho việc thâm nhập dữ trình nằm trong bộ nhớ trong. Khi bộ VXL yêu cầu ñọc một bộ nhớ
liệu, nhưng ít hiệu nghiệm hơn việc thâm nhập lệnh. Như vậy có liên quan thì ñầu tiên yều cầu này ñược tìm trong cache. Nếu như
hai nguyên tắc: nguyên tắc về không gian và nguyên tắc về thời yều cầu tương ứng với một phần tử nằm trong cache thì ta gọi
gian trường hợp này là thành công cache (cache hit). Trường hợp không
tìm thấy phần tử yêu cầu trong cache thì ta gọi là thất bại cache
• Nguyên tắc về không gian: Khi bộ xử lý thâm nhập vào ô nhớ (cache miss). Tỷ số thành công cache hc(cache hit ratio) ñược ñịnh
nào ñó thì có nhiều khả năng sẽ thâm nhập vào những ô nhớ có nghĩa là xác suất tìm thấy phần tử yều cầu trong cache. Tỷ số thất
ñịa chỉ kế tiếp trong thời gian sau ñó do các lệnh ñược sắp xếp bại cache (1-hc) (cache miss ratio) là xác suất không tìm thấy phần
thành chuỗi có thứ tự. Ví dụ danh sách các lệnh nằm liên tiếp tử yêu cầu trong cache.
nhau trong một chương trình.
ðể ñảm bảo sự ñồng nhất giữa nội dung của cache và bộ
nhớ trong thì cache và bộ nhớ trong phải có cùng cấu trúc. Việc
247 248
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

chuyển dữ liệu giữa cache và bộ nhớ trong là việc tải lên hay ghi Trong trường hợp này giả sử kích thước của một khối ñược
xuống các khối dữ liệu. Mỗi khối chứa nhiều từ bộ nhớ tuỳ thuộc chuyển tử bộ nhớ trong vào cache khi thất bại cache là m phần tử.
vào cấu trúc bộ nhớ cache. Sự lựa chọn kích thước của khối rất Ta cũng giả sử rằng trong lân cận không gian này thì tất cả m phần
quan trọng cho vận hành của cache có hiệu quả. Việc trao ñổi dữ tử ñều ñược yêu cầu bởi bộ VXL một lần. Trên cơ sở những giả
liệu giữa CPU, cache và bộ nhớ trong ñược thực thi như hình 8.2. thiết ñó ta có thời gian truy cập trung bình ñược tính bởi công thức:
mt + t t
Chuyển tav = c m = tc + m
Chuyển theo khối m m
theo từ Main Trong công thức rõ ràng là khi số phần tử trong khối ñược
CPU Cache Memory tăng lên thì thời gian trung bình sẽ giảm ñi, ñiều ñó cũng tương
ñương với việc càng nhiều phần tử nằm trong cache thì càng tốt.
Ảnh hưởng của tổng hợp hai nguyên lý lân cận không
Hình 8.2. Sơ ñồ chuyển dữ liệu giữa CPU-Cache-Main
memory gian và thời gian
ðể ñánh giá sự ảnh hưởng của hai nguyên lý không gian và Trong trường hợp này giả sử phần tử ñược yêu cầu bởi bộ
thời gian vào tốc ñộ truy cập vào bộ nhớ của máy tính, chúng ta giả VXL không có trong cache hay cache miss và cần phải chuyển một
sử rằng thời gian truy cập vào bộ nhớ trong là tm và thời gian truy khối có chứa m phần tử vào trong cache (việc làm này mất một thời
cập vào cache là tc. Giả sử hệ thống các cấp bộ nhớ có hai mức và gian là tm). Ta cũng giả sử rằng trong lân cận không gian này thì tất
ta sẽ khảo sát thời gian truy cập trung bình tav ñến một từ nhớ trong cả m phần tử ñều ñược yêu cầu bởi bộ VXL một lần (mtc). Ngoài ra
mô hình này trong các nguyên lý không gian và thời gian sau ñó bộ VXL còn yều cầu phần tử này thêm (n-1) lần nữa (lân
Ảnh hưởng của nguyên lý lân cận thời gian cận thời gian) hay tổng số lần truy cập ñến phần tử này là n lần.
Trên cơ sở những giả thiết ñó ta có thời gian truy cập trung bình
Trong trường hợp này chúng ta giả sử những lệnh ñược tính bởi công thức:
trong vòng lặp của một chương trình ñược chạy nhiều lần và giả sử
là n lần. Một lần ñược tải vào bộ nhớ cache và ñược sử dụng nhiều mtc + tm t
lần trước khi bị thay thế bởi các lệnh mới. Như vậy thời gian truy ( ) + (n − 1)tc tc + m + (n − 1)tc
m m t
cập trung bình tav ñược tính bởi công thức sau: tav = = = tc + m
n n nm
Trong công thức trên rõ ràng là khi số phần tử trong khối
ntc + tm t
tav = = tc + m hoặc số lần truy cập ñến phần tử ñược tăng lên thì thời gian trung
n n bình sẽ giảm ñi và có thể tiến tới giá trị tc. ðiều ñó cũng tương
Từ công thức trên ta thấy n càng tăng thì thời gian truy cập ñương với việc càng nhiều phần tử nằm trong cache thì càng tốt và
trung bình càng giảm và như vậy hiệu quả của việc sử dụng cache số lần truy cập ñến phần tử nằm trong cache càng nhiều thì càng
càng cao. tốt.
Ảnh hưởng của nguyên lý lân cận không gian Qua các thảo luận ở trên ta biết rằng càng có nhiều yêu cầu
truy cập ñến từ nhớ không nằm trong cache thì càng cần chuyển

249 250
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

nhiều khối bộ nhớ từ bộ nhớ trong vào cache. Vấn ñề là bộ nhớ cache dưới dạng một khối bộ nhớ và sau ñó thì từ nhớ này mới sẵn
cache thì có giới hạn nên việc vận chuyển các khối nhớ phải giải sàng cho bộ VXL.
quyết ñược bốn câu hỏi cơ bản là: Phải ñể một khối bộ nhớ vào
chỗ nào của cache hay cách sắp xếp khối nhớ trong cache như thế Main
MMU miss
nào? Làm sao ñể tìm một từ nhớ trong khối nhớ khi khối này ñang Memory
nằm trong cache ? Trong trường hợp không tìm thấy khối nhớ cần
thiết trong cache và cache ñã ñầy thì khối nào phải ñược ñẩy ra ðịa chỉ cần
khỏi cache ñể thay thế khối mới? và câu hỏi cuối cùng là việc gì sẽ Translation Khối nhớ
truy cập function
xảy ra khi ghi khối nhớ từ cache ngược lại vào bộ nhớ? ðể trả lời ðịa chỉ
cho các câu hỏi này ta phải xem cách tổ chức và vận hành của trong cache
cache và nội dung này sẽ ñược trình bày trong phần sau. hit Cache
8.2.1. TỔ CHỨC BỘ NHỚ CACHE
Từ nhớ yêu cầu
ðể hiểu rõ sự vận hành và tổ chức bộ nhớ cache, trước hết
chúng ta sẽ xem xét chức năng ánh xạ hay tương ứng ñịa chỉ giữa Hình 8.3. Sơ ñồ ánh xạ ñịa chỉ
các cấp bộ nhớ. Trong phần này ñể ñơn giản hóa vấn ñề ta xét các
Có ba kỹ thuật tổ chức bộ nhớ cache là: kiểu tương ứng trực
cấp bộ nhớ có hai mức, mức một là bộ nhớ cache và mức hai là bộ
tiếp (Direct Mapping), kiểu hoàn toàn phối hợp (Fully Associative
nhớ trong (main memory). Nguyên lý ứng dụng cho giao tiếp giữa
Mapping) và kiểu phối hợp theo tập hợp (Set – Associative
các cấp bộ nhớ sẽ giống với trường hợp mà ta xem xét ở ñây.
Mapping). Các kỹ thuật này dựa trên hai khía cạnh chính:
Yêu cầu truy cập tới một phần tử hay một từ nhớ ñược phát – Cách ñặt vào cache một khối nhớ từ bộ nhớ trong
ra bởi bộ VXL và phần tử này có thể hiện tại ñang nằm trong bộ – Cách thay thế một khối cache (khi cache ñầy).
nhớ cache trong trường hợp cache hit, nhưng cũng có thể tương Sau ñây ta sẽ xem xét lần lượt từng kỹ thuật này một cách tỉ mỉ.
ứng với một phần từ mà hiện tại nó không nằm trong cache (cache
miss) mà nằm trong bộ nhớ trong. Do ñó cần phải xác ñịnh ñịa chỉ 8.2.1.1. Kiểu tương ứng trực tiếp (Direct mapping)
của phần tử cần truy cập ñể xác ñịnh nó nằm ở ñâu. Việc xác ñịnh
ðây là kỹ thuật ñơn giản nhất trong ba kỹ thuật nêu trên.
này ñược một ñơn vị chức năng trong CPU giải quyết và ta gọi là
Theo kỹ thuật này thì mỗi khối bộ nhớ chỉ có một vị trí ñặt khối
ñơn vị quản lý bộ nhớ (memory management unit - MMU). Sơ ñồ
duy nhất trong cache ñược xác ñịnh theo công thức:
khối của chức năng ánh xạ ñịa chỉ như trong hình 8.3.
j = i mod N
Như trên hình này, ñịa chỉ ñược phát ra bởi bộ VXL sẽ
ñược MMU chuyển ñổi thành một dạng ñịa chỉ tương ứng và nếu Trong ñó:
ñịa chỉ này ñược xác ñịnh là nằm trong cache thì từ nhớ cần truy j: vị trí khối ñặt trong cache
cập sẽ ñược trả về cho bộ VXL. Trong trường hợp ñịa chỉ của từ i: số thứ tự của khối trong bộ nhớ trong
nhớ cần truy cập không nằm trong cache, mà nằm trong bộ nhớ N: số khối của cache
trong thì khối bộ nhớ có chứa từ này sẽ ñược chuyển vào trong
251 252
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

ñọc hay không. Tất cả các nhãn ñều ñược xem xét song song (trong
Ví dụ 1: Giả sử máy tính có bộ nhớ trong có 32 khối, cache có 8 kiểu tương ứng trực tiếp và phối hợp theo tập hợp) do ñó tốc ñộ tìm
khối, mỗi khối gồm 32 byte, khối thứ 12 của bộ nhớ trong ñược kiếm sẽ rất cao. ðể biết xem một khối của của cache có chứa thông
ñưa vào cache. tin mà bộ xử lý cần tìm hay không, người ta thêm một bit ñánh dấu
Như vậy theo công thức trên thì khối nhớ thứ 12 sẽ ñược (valid bit) vào nhãn ñể nói lên khối ñó có chứa thông tin mà bộ xử
ñưa vào cache ở vị trí: lý cần tìm hay không.
j = 12 mod 8 = 4
Như ñã ñề cập ở trên, với thao tác ñọc (ghi) bộ nhớ, bộ xử
Ví dụ này ñược minh họa trong hình 8.4 a). lý ñưa ra một ñịa chỉ và nhận (viết vào) một dữ liệu từ (vào) bộ nhớ
trong. ðịa chỉ mà bộ xử lý ñưa ra có thể phân tích thành hai thành
Số thứ tự 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 …….. 3 phần: phần nhận dạng số thứ tự khối và phần xác ñịnh vị trí từ cần
khối 0 1 23 4 …….. 1
ñọc trong khối.
Main Tương ứng với ba kiểu lắp ñặt khối ñã xét, ta có:
memory
• Căn cứ vào số từ trong một khối bộ nhớ mà số bit trong trường
ñịa chỉ sẽ xác ñịnh vị trí từ cần ñọc trong khối. Trường hip75
Số thứ
này cũng giống như việc xác ñịnh ñịa chỉ tương ñối trong bộ
0 1 2 3 4 5 67 nhớ. Cách tính này ñúng với cả ba cách xếp ñặt khối ñã xét.
tự khối 0 1 2 3 4 5 67 0 1 2 3 4 5 67

• Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào cách
Cache xếp ñặt khối, trường chỉ số khối ñược so sánh với nhãn của
cache ñể xác ñịnh khối trong cache.
TH0 TH2
TH1 TH3
Dữ liệu ñược bộ xử lý ñọc cùng lúc với việc ñọc nhãn.
a) Tương ứng b) Hoàn toàn c) Theo tập Phần chỉ số khối của khối trong bộ nhớ trong ñược so sánh với
trực tiếp phối hợp hợp bảng tương quan ñể xác ñịnh khối có nằm trong cache hay
Hình 8.4. Các kỹ thuật xếp ñặt khối nhớ trong cache không. ðể chắc rằng nhãn chứa thông tin ñúng ñắn (tức là khối
có chứa từ mà bộ xử lý cần ñọc-ghi), nếu việc so sánh nhãn của
Như vậy, trong kiểu xếp ñặt khối này, mỗi vị trí ñặt khối khối cache giống với số thứ tự khối, bit ñánh dấu (Valid bit)
trong cache có thể chứa một trong các khối trong bộ nhớ cách nhau phải ñược bật lên. Ngược lại, kết quả so sánh ñược bỏ qua. Bộ
8 khối. xử lý căn cứ vào phần xác ñịnh từ trong khối ñể ñọc (ghi) dữ
liệu từ (vào) cache.
ðể nhận diện một khối có nằm trong cache hay không, mỗi Theo cách tương ứng trực tiếp thì MMU sẽ diễn giải ñịa chỉ
khối của cache ñều có một nhãn ñịa chỉ cho biết số thứ tự của các phát ra từ CPU bằng cách chia ñịa chỉ thành 3 phần như là trong
khối bộ nhớ trong ñang hiện diện trong cache. Nhãn của một khối hình 8.5. Chiều dài tính bằng bit của mỗi phần trong ñó tính như
bộ nhớ cache chứa ñựng thông tin cần thiết ñể biết ñược khối ñó có sau:
nằm trong cache hay không và có chứa thông tin mà bộ xử lý cần
253 254
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

– ðịa chỉ từ cần ñọc trong khối (Word field) = log2B, B – Số bit trong trường ñịa chỉ bộ nhớ trong:
kích thước khối theo từ log 2 ( B.M ) = log 2 (16 × 4.210 ) = 16 bits
– Chỉ số khối cache ( Block field) = log2N, N-kích thước Trong hình 8.7. ñưa ra minh họa giải thích quá trình diễn
cache theo block giải ñịa chỉ bởi MMU theo các bước sau:
– Nhãn (Tag field) = log2(M/N), M-kích thước bộ nhớ trong 1. Sử dụng Block field ñể xác ñịnh khối bộ nhớ cache có chứa
theo khối từ nhớ mà bộ VXL yêu cầu
– Số bit trong trường ñịa chỉ bộ nhớ trong = log2(B.M) 2. Kiểm tra sự tương ứng trong trường Tag memory và so sánh
nó với trường Tag field ñể xác ñịnh có hay không khối chứa
ðịa chỉ bộ nhớ trong từ nhớ cần thiết
3. Nếu có (cache hit) thì dựa vào trường word field ñể lấy ra từ
Chỉ số khối trong bộ nhớ nhớ cần thiết cho bộ VXL
ðịa chỉ từ cần ñọc trong
4. Nếu không có (cache miss) thì phải ñem khối nhớ có chứa từ
Nhãn Chỉ số khối cache khối cần truy cập từ bộ nhớ trong vào cache.

Hình 8.5.Các trường ñịa chỉ trong tương ứng trực tiếp
Ví dụ 2: Xét trường hợp bộ nhớ trong chứa 4K khối, bộ nhớ cache
chứa 128 khối và mối khối có kích thước 16 từ nhớ. Hình 8.6 cho
thấy cách tổ chức xếp ñặt khối nhớ theo kiểu tương ứng trực tiếp.

Tag Cache Main memory


3 0 384 0 128 256 384 3968
1 1 129 1 129 257 385 3969
0 2 2 130 258 386 3970

126 126
31 127 4095 127 255 383 4095
0 1 2 3 31
Hình 8.6. Ánh xạ khối bộ nhớ trong ñến khối bộ nhớ cache
ðể xác ñịnh số bit của các trường trong ñịa chỉ bộ nhớ trong, ta áp
dụng cách tính ở trên thì có:
– Word field = log 2 B = log 2 16 = 4 bits
– Chỉ số khối cache = log 2 N = log 2 128 = 7 bits
– Nhãn = log 2 ( M / N ) = log 2 (4.210 / 128) = 5 bits Hình 8.7. Chuyển ñổi ñịa chỉ tương ứng trực tiếp

255 256
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

– Nhãn = log 2 M = log 2 (4.210 ) = 12 bits


Ưu ñiểm của kiểu tương ứng trực tiếp là nó rất ñơn giản, không cần Số bit trong trường ñịa chỉ bộ nhớ trong:
tốn thời gian tìm kiếm và các cơ chế thay thế khối nhớ cũng ñơn
log 2 ( B.M ) = log 2 (16 × 4.210 ) = 16 bits
gian. Nhược ñiểm chủ yếu là nó sử dụng cache không hiệu quả do
một số khối có thể luôn luôn bị thay ñổi trong khi có thể một số Ưu ñiểm của phương pháp này là sử dụng cache rất hiệu quả.
khác lại không ñược dùng ñến. Ví dụ như trường hợp ví dụ 2 ở Trong bất kỳ trường hợp nào nếu một khối nhớ trong cache còn
trên, giả sử bộ VXL yêu cầu ñến các khối nhớ theo thứ tự 0, 128, trống thi khi có yêu cầu từ bộ VXL ñến mội khối nhớ khác trong bộ
256, 384 và 3968. Như vậy chỉ có khối nhớ cache ở vị trí số 0 ñược nhớ trong thì nó sẽ ñược ñặt vào khối nhớ còn trống trong cache.
sử dụng, trong khi các khối nhớ khác trống. Trừ trường hợp không còn khối nào trống thì phải áp dụng nguyên
lý thay thế khối nhớ mà ta sẽ xem xét trong các phần sau. Tuy
8.2.1.2. Kiểu hoàn toàn phối hợp (Fully Associative Mapping) nhiên nhược ñiểm của phương pháp này là ñòi hỏi thiết kế phần
Một khối trong bộ nhớ trong có thể ñược ñặt vào vị trí bất cứng phức tạp nhằm ñáp ứng việc tìm kiếm khối cần thiết ñược
kỳ trong cache. Tất nhiên ñầu tiên tìm ñặt vào các khối nào còn nhanh hơn.
trống, nếu không còn khối nào trống thì mới phải áp dụng kỹ thuật 8.2.1.3. Kiểu phối hợp theo tập hợp (Set – Associative Mapping)
thay thế khối mà ta sẽ xem xét sau. Ở ví dụ 1 nếu ñặt khối nhớ theo
cách này thì hình minh họa ñược chỉ ra trong hình 8.4 b). Hai cách trình bày ở trên ñều có những ưu ñiểm và nhược
Theo cách này thì MMU sẽ diễn giải ñịa chỉ phát ra từ CPU ñiểm nhất ñịnh và cách phối hợp theo tập hợp nhằm dung hòa các
bằng cách chia ñịa chỉ thành 2 phần như là trong hình 8.8. Chiều ưu, nhược ñiểm của cả hai cách ñó. Theo ñó, cache bao gồm các
dài tính bằng bit của mỗi phần trong ñó tính như sau: tập hợp của các khối cache. Mỗi tập hợp của các khối cache chứa
– ðịa chỉ từ cần ñọc trong khối (Word field) = log2B, B – số khối như nhau. Một khối của bộ nhớ trong có thể ñược ñặt vào
kích thước khối theo từ một số vị trí khối giới hạn trong tập hợp ñược xác ñịnh bởi công
– Chỉ số khối (hay nhãn - Tag field) = log2M, M- kích thước thức:
bộ nhớ trong theo khối j = i mod N
– Số bit trong trường ñịa chỉ bộ nhớ trong = log2(B.M)
Trong ñó:
j: vị trí khối ñặt trong cache
ðịa chỉ bộ nhớ trong
i: số thứ tự của khối trong bộ nhớ trong
ðịa chỉ từ cần ñọc trong N: số khối của cache
Chỉ số khối trong bộ nhớ
khối Ở ví dụ 1 nếu ñặt khối nhớ theo cách này và nếu mỗi tập
hợp gồm 2 khối nhớ thì hình minh họa ñược chỉ ra trong hình 8.4
Hình 8.8.Các trường ñịa chỉ trong hoàn toàn phối hợp
c).
Theo cách này thì MMU sẽ diễn giải ñịa chỉ phát ra từ CPU
Như vậy với ví dụ 2 ở trên ta sẽ có các thông số cho trường ñịa chỉ bằng cách chia ñịa chỉ thành 3 phần như là trong hình 8.9. Chiều
như sau: dài tính bằng bit của mỗi phần trong ñó tính như sau:
– Word field = log 2 B = log 2 16 = 4 bits
257 258
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

– ðịa chỉ từ cần ñọc trong khối (Word field) = log2 B ñặt khối không có sự lựa chọn, nó ñược xác ñịnh bởi trường chỉ số
– Chỉ số tập hợp (Set field) = log2 S, S – số tập hợp trong khối cache trong ñịa chỉ của từ cần ñọc (ghi). Nếu cache là kiểu
cache. Chỉ số này chỉ ra số thứ tự tập hợp trong cache cần hoàn toàn phối hợp hay phối hợp theo tập hợp thì khi thất bại phải
xem xét chọn lựa thay thế trong nhiều khối. Có bốn chiến thuật chủ yếu
– Nhãn (Tag field) = log2 (M/S), S = N/Bs, Bs số khối trong dùng ñể chọn khối thay thế trong cache:
một tập hợp. Dùng chỉ số này ñể so sánh tương ứng với - Thay thế ngẫu nhiên (RS:Random Selection): ñể phân
nhãn của các khối cache thuộc tập hợp ñược chỉ ra bởi phần bố ñồng ñều việc thay thế, các khối cần thay thế trong cache ñược
chỉ số tập hợp. chọn ngẫu nhiên.
– Số bit trong trường ñịa chỉ bộ nhớ trong = log2(B.M)
- Khối xưa nhất (LRU: Least Recently Used): các khối ñã
ðịa chỉ bộ nhớ trong
ñược thâm nhập sẽ ñược ñánh dấu và khối bị thay thế là khối không
ñược dùng từ lâu nhất.
Chỉ số khối trong bộ nhớ
ðịa chỉ từ cần ñọc trong - Vào trước ra trước (FIFO: First In First Out): Khối ñược
Nhãn Chỉ số tập hợp khối ñưa vào cache ñầu tiên, nếu bị thay thế, khối ñó sẽ ñược thay thế
trước nhất.
Hình 8.9.Các trường ñịa chỉ trong phối hợp theo tập hợp
- Tần số sử dụng ít nhất (LFU: Least Frequently Used):
Như vậy với ví dụ 2 ở trên ta, nếu mỗi tập hợp chứa 4 khối thì ta sẽ Khối trong cache ñược tham chiếu ñến ít nhất . Nguyên tắc này sử
có các thông số cho trường ñịa chỉ như sau: dụng hệ quả của nguyên tắc sử dụng ô nhớ theo thời gian: nếu các
– Số tập hợp trong cache S= 128/4 = 32 tập hợp khối mới ñược dùng có khả năng sẽ ñược dùng trong tương lai gần,
– Word field = log 2 B = log 2 16 = 4 bits khối bị thay thế là khối không dùng trong thời gian lâu nhất.
– Set field = log2 S=log232 = 5 bits 8.2.3. CHIẾN THUẬT GHI
– Nhãn = log 2 M / S = log 2 (4.210 / 32) = 7 bits Chúng ta ñã xem xét các vấn ñề chính liên quan ñến kỹ
Số bit trong trường ñịa chỉ bộ nhớ trong: thuật ánh xạ giữa các cấp bộ nhớ và chiến lược thay thế khối nhớ.
log 2 ( B.M ) = log 2 (16 × 4.210 ) = 16 bits Còn một vấn ñề liên quan quan trong nữa mà chúng ta sẽ xem xét
trong phần này ñó là sự gắn kết giữa các cấp bộ nhớ mà trong
8.2.2. KỸ THUẬT THAY THẾ KHỐI NHỚ trường hợp ñơn giản chúng ta xem xét giữa cache và bộ nhớ trong.
Như ñã trình bày ở trên, trong trường hợp thất bại cache hay Câu hỏi ñặt ra là việc gì sẽ xảy ra khi cần ghi vào bộ nhớ?
không tìm thấy khối nhớ trong cache thì một vấn ñề ñặt ra là khối Thông thường bộ VXL thâm nhập cache ñể ñọc thông tin.
nào phải ñược thay thế)? Khi có thất bại cache, bộ ñiều khiển cache Chỉ có khoảng 15% các thâm nhập vào cache là ñể thực hiện thao
thâm nhập vào bộ nhớ trong và chuyển khối mà bộ xử lý cần ñọc tác ghi (con số này là 33% với các tính toán vectơ-vectơ và 55%
(ghi) vào cache. Như vậy, trong trường hợp các khối nhớ trong ñối với các phép dịch chuyển ma trận). Như vậy, ñể tối ưu hoá các
cache ñều không trống thì khối nào trong cache sẽ bị thay thế bới hoạt ñộng của cache, các nhà thiết kế tìm cách tối ưu hoá việc ñọc
khối mới ñược chuyển lên. ðối với kiểu tương ứng trực tiếp, vị trí bởi vì các bộ xử lý phải ñợi ñến khi việc ñọc hoàn thành nhưng sẽ
259 260
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

không ñợi ñến khi việc ghi hoàn tất. Hơn nữa, một khối có thể ñược - Ghi có nạp(write-allocate): khối cần ghi từ bộ nhớ trong
ñọc, so sánh và như thế việc ñọc một khối có thể ñược bắt ñầu khi ñược nạp vào trong cache như mô tả ở trên. Cách này thường ñược
chỉ số khối ñược biết. Nếu thao tác ñọc thành công, dữ liệu ô nhớ dùng trong cách ghi lại.
cần ñọc sẽ ñược giao ngay cho bộ xử lý. Cần chú ý rằng, khi một - Ghi không nạp(write-no-allocate): khối ñược thay ñổi ở
khối ñược ánh xạ từ bộ nhớ trong vào cache, việc ñọc nội dung của bộ nhớ trong không ñược ñưa vào cache. Cách này ñược dùng
khối cache không làm thay ñổi nội dung của khối so với khối còn trong cách ghi ñồng thời.
nằm trong bộ nhớ trong.
Trong các tổ chức có nhiều hơn một bộ xử lý với các tổ
ðối với việc ghi vào bộ nhớ thì không giống như trên, việc chức cache và bộ nhớ chia sẻ, các vấn ñề liên quan ñến tính ñồng
thay ñổi nội dung của một khối không thể bắt ñầu trước khi nhãn
nhất của dữ liệu cần ñược ñảm bảo. Sự thay ñổi dữ liệu trên một
ñược xem xét ñể biết có thành công hay thất bại. Thao tác ghi vào cache riêng lẻ sẽ làm cho dữ liệu trên các hệ thống cache và bộ nhớ
bộ nhớ sẽ tốn nhiều thời gian hơn thao tác ñọc bộ nhớ. Trong việc liên quan không ñồng nhất. Vấn ñề trên có thể ñược giải quyết
ghi bộ nhớ còn có một khó khăn khác là bộ xử lý cho biết số byte bằng một trong các hệ thống cache tổ chức như sau:
cần phải ghi, thường là từ 1 ñến 8 byte. ðể ñảm bảo ñồng nhất dữ
liệu khi lưu trữ, có hai cách chính ñể ghi vào cache:  Mỗi bộ ñiều khiển cache sẽ theo dõi các thao tác ghi vào bộ
nhớ từ các bộ phận khác. Nếu thao tác ghi vào phần bộ nhớ
- Ghi ñồng thờ (Write-through): Thông tin ñược ghi ñồng
chia sẻ ñược ánh xạ vào cache của nó quản lý, bộ ñiều khiển
thời vào khối của cache và khối của bộ nhớ trong. Cách ghi này
cache sẽ vô hiệu hoá sự thâm nhập này. Chiến lược này phụ
làm chậm tốc ñộ chung của hệ thống. Các ngoại vi có thể truy cập thuộc vào cách ghi ñồng thời trên tất cả các bộ ñiều khiển
bộ nhớ trực tiếp cache.
- Ghi lại(Write-back): ðể ñảm bảo tốc ñộ xử lý của hệ  Một vi mạch ñược dùng ñể ñiều khiển việc cập nhật, một thao
thống, thông tin cần ghi chỉ ñược ghi vào khối trong cache. Việc tác ghi vào bộ nhớ từ một cache nào ñó sẽ ñược cập nhật trên
ghi vào bộ nhớ trong sẽ bị hoãn lại cho ñến khi cần có thay thế
các cache khác.
khối. ðể quản lý sự khác biệt nội dung giữa khối của cache và khối
của bộ nhớ trong, một bit trạng thái (Dirty bit hay Update bit) ñược  Một vùng nhớ chia sẻ cho một hay nhiều bộ xử lý thì không
dùng ñể chỉ thị. Khi một thao tác ghi vào trong cache, bit trạng thái ñược ánh xạ lên cache. Như vậy, tất cả các thâm nhập vào vùng
(Dirty bit hay Update bit) của khối cache sẽ ñược thiết lập. Khi một nhớ chia sẻ này ñều bị thất bại cache.
khối bị thay thế, khối này sẽ ñược ghi lại vào bộ nhớ trong chỉ khi 8.2.4. CÁC LOẠI CACHE
bit trạng thái ñã ñược thiết lập. Với cách ghi này, các ngoại vi liên
hệ ñến bộ nhớ trong thông qua cache. Cách này làm tăng tốc ñộ của Trong một máy tính có thể có nhiều loại cache. Một số máy
hệ thống lên rất nhiều tuy nhiên việc ñồng nhất dữ liệu giữa cache dùng một Cache duy nhất ñể chứa ñồng thời cả lệnh và dữ liệu,
và bộ nhớ trong chỉ ñược ñảm bảo vào thời gian thay thế khối. nhưng một số máy lại sử dụng Cache riêng lẻ bằng cách sử dụng
một cache lệnh riêng và một cache dữ liệu riêng (ví dụ Pentium,
Khi có một thất bại ghi vào cache (cache miss) thì phải Pentium 4, Itanium, PowerPC 620, IBM SP,…). Giải pháp dùng
lựa chọn một trong hai giải pháp sau: cache riêng lẻ có lợi là tránh các khó khăn do kiến trúc, khi thi

261 262
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

hành các lệnh dùng kỹ thuật ống dẫn như ñã trình bày trong chương Register – MDR). Thanh ghi MDR ñược dùng ñể giữ tạm thời các
trước. dữ liệu cần ghi vào (hay nhận ñược từ) bộ nhớ trong, nơi có ñịa chỉ
ñược xác ñịnh trong thanh ghi MAR.
Khi sử dụng một cache duy nhất, sẽ có tranh chấp khi một
lệnh muốn thâm nhập một số liệu trong cùng một chu kỳ của giai CPU Bộ nhớ trong
ñoạn ñọc một lệnh khác. Cache riêng lẻ còn giúp tối ưu hoá mỗi n b
n ñường ñịa chỉ
loại cache về mặt kích thước tổng quát, kích thước các khối và ñộ MAR A0-An-1 0
phối hợp các khối.
b 1
Việc dùng cache trong có thể làm cho sự cách biệt giữa kích b ñường dữ liệu
MDR D0-Db-1 .
thước và thời gian thâm nhập giữa cache trong và bộ nhớ trong .
càng lớn. ðể linh hoạt cho việc thay ñổi kích thước cache và làm Tín hiệu ñiều khiển .
R /W
giảm giá thành chung ngày nay người ta thường dùng nhiều mức
cache khác nhau: 2n-1

• Cache mức một (L1 cache): thường là cache trong (on-


chip cache; nằm bên trong CPU). Cache này có kích thước nhỏ Hình 8.10. Giao tiếp cơ bản giữa CPU và bộ nhớ trong
nhất và vì nằm gần CPU nhất nên dữ liệu nằm trên nó sẽ ñược xử
lý nhanh nhất. Bộ nhớ trong (RAM – bộ nhớ truy cập ngẫu nhiên) ñược
chế tạo bằng chất bán dẫn và có cấu trúc tạo thành từ những hàng
• Cache mức hai (L2 cache) thường là cache ngoài (off- và cột của các ô nhớ cơ bản (basic cells), mỗi ô nhớ chứa ñựng một
chip cache; cache này nằm bên ngoài CPU). Như vậy nếu các CPU bít thông tin. Hình 8.11 cho ta thấy một mo hình tổ chức bộ nhớ
ñược thiết kế trên cùng một lõi có thể ñược cài ñặt cache L2 có trong ñơn giản ñược cấu tạo từ các hàng và cột của các ô nhớ (cell).
kích thước khác nhau.
Các ñường ñịa chỉ An −1 An − 2 ... A1 A0 ñược dùng như ñầu vào của bộ
• Ngoài ra, trong một số hệ thống (PowerPC G4, IBM giải mã ñịa chỉ theo ñó cho ra các ñường lựa chọn hàng
S/390 G4, Itanium của Intel) còn có tổ chức cache mức ba (L3 W2n−1 ...W1W0 . Tại một thời ñiểm nhất ñịnh thì chỉ có một trong các
cache), ñây là mức cache trung gian giữa cache L2 và một thẻ bộ
nhớ. ñường W2n−1 ...W1W0 ñược chọn và các ô nhớ thuộc ñường này (hàng
này) sẽ ñược kích hoạt ñể cho phép truyền thông tin từ các ô nhớ ra
8.3. BỘ NHỚ TRONG (Main memory) các ñường dữ liệu hoặc chuyển thông tin từ ñường dữ liệu vào
trong các ô nhớ
Bộ nhớ trong hay bộ nhớ chính như tên gọi của nó là bộ
nhớ cung cấp nơi lưu trữ chính trong máy tính. Hình 8.10 cho ta
thấy sơ ñồ khối giao tiếp cơ bản giữa bộ nhớ trong và CPU. Có hai
thanh ghi ñặc biệt của CPU ñược dùng cho các thao tác giữa CPU
và bộ nhớ trong ñó là thanh ghi ñịa chỉ bộ nhớ (Memory Address
Register – MAR) và thanh ghi dữ liệu bộ nhớ (Memory Data
263 264
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

ñiện. SRAM là bộ nhớ nhanh, việc ñọc không làm huỷ nội dung
của ô nhớ và thời gian thâm nhập bằng chu kỳ bộ nhớ.
RAM ñộng dùng kỹ thuật MOS. Mỗi bit nhớ gồm có một
transistor và một tụ ñiện. Cũng như SRAM, việc nhớ một dữ liệu là
tồn tại nếu bộ nhớ ñược cung cấp ñiện. Việc ghi nhớ dựa vào việc
duy trì ñiện tích nạp vào tụ ñiện và như vậy việc ñọc một bit nhớ
làm nội dung bit này bị huỷ (do tu ñiện phóng ñiện tích). Vậy sau
mỗi lần ñọc một ô nhớ, bộ phận ñiều khiển bộ nhớ phải viết lại ô
nhớ ñó nội dung vừa ñọc và do ñó chu kỳ bộ nhớ ñộng ít nhất là
gấp ñôi thời gian thâm nhập ô nhớ. Việc lưu giữ thông tin trong bit
nhớ chỉ là tạm thời vì tụ ñiện sẽ phóng hết ñiện tích ñã nạp vào và
như vậy phải làm tươi bộ nhớ sau mỗi vài mili giây. Làm tươi bộ
nhớ là ñọc ô nhớ và viết lại nội dung ñó vào lại ô nhớ. Việc làm
tươi ñược thực hiện với tất cả các ô nhớ trong bộ nhớ. Việc làm
tươi bộ nhớ ñược thực hiện tự ñộng bởi một vi mạch bộ nhớ. Bộ
ðường dữ liệu nhớ DRAM chậm nhưng rẻ tiền hơn SRAM. Hình 8.12. cho ta thấy
Hình 8.11. Tổ chức bộ nhớ trong trên CHIP ñơn giản sơ ñồ cấu tạo cơ bản của một bit nhớ của hai loại bộ nhớ này. Ô
nhớ SRAM chứa một trong hai trạng thái bền vững. Ví dụ trong
Bộ nhớ RAM ñược gọi là bộ nhớ truy cập ngẫu nhiên do có hình 8.12 a) nếu A = 1 thì transistor N2 sẽ ñược bật lên và nó ñóng
ñặc tính là các ô nhớ có thể ñược ñọc hoặc viết vào trong khoảng vai trò như một dây dẫn kéo ñiện thế tại ñiểm B xuống 0 (B = 0),
thời gian bằng nhau cho dù chúng ở bất kỳ vị trí nào trong bộ nhớ. ñiều ñó lại dẫn ñến transistor P1 ñược bật lên và kéo ñiện thế A
Mỗi ô nhớ có một ñịa chỉ, thông thường, mỗi ô nhớ là một byte (8 bằng ñiện thế nguồn (A = 1). Ta gọi trạng thái bền vững này là
bit), nhưng hệ thống có thể ñọc ra hay viết vào nhiều byte (2,4, hay trạng thái 1, hay ô nhớ ñang chứa giá trị tương ứng với bit 1. Lập
8 byte). Bộ nhớ trong ñược ñặc trưng bằng dung lượng và tổ chức luận tương tự nếu A = 0 ta sẽ có trạng thái tương ứng với bit 0.
của nó (số ô nhớ và số bit cho mỗi ô nhớ), thời gian thâm nhập Khi ñọc dữ liệu sẽ theo các bước:
(thời gian từ lúc ñua ra ñịa chỉ ô nhớ ñến lúc ñọc ñược nội dung ô
- ðường dữ liệu ñược kích hoạt và ñược nạp ở mức cao
nhớ ñó) và chu kỳ bộ nhớ (thời gian giữa hai lần liên tiếp thâm
(b = 1).
nhập bộ nhớ).
- ðường ñịa chỉ ñược kích hoạt (=1) làm bật 2 transistor
Tuỳ theo công nghệ chế tạo, người ta phân biệt RAM tĩnh (SRAM:
N3 và N4.
Static RAM) và RAM ñộng (DRAM: Dynamic RAM).
- Phụ thuộc vào ñiện thế tại ñiểm A mà ta ñọc ñược giá
RAM tĩnh ñược chế tạo theo công nghệ ECL (CMOS và
trị của bit nhớ này. Nếu ñiện thế tại A cao thì ñiện thế
BiCMOS). Mỗi bit nhớ gồm có các cổng logic với ñộ 6 transistor
này chuyển sang ñường b làm ñiện thế b cũng cao, hay
MOS, việc nhớ một dữ liệu là tồn tại nếu bộ nhớ ñược cung cấp
265 266
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

ta nhạn ñược giá trị bit nhớ là 1. Ngược lại, nếu ñiện  DDR SDRAM (Double Data Rate SDRAM) là cải tiến của bộ
thế tại A thấp thì ñiện thế ở ñường b sẽ truyền qua ñiểm nhớ SDRAM với tốc ñộ truyền tải gấp ñôi SDRAM nhờ vào
A do ñó làm suy giảm ñiện thế trên b và ta xác ñịnh việc truyền tải hai lần trong một chu kỳ bộ nhớ. Tốc ñộ DDR
ñược bit nhớ có giá trị là 0. SDRAM ñạt từ 200-400MHz. Trong thời gian gần ñây xuất
Lập luận tương tự cho trường hợp ghi một giá trị vào bit hiện chuẩn RAM mới dựa trên nền tảng DDR là DDR-II, DDR-
nhớ. III có tốc ñộ cao hơn nhờ cải tiến thiết kế.
 RDRAM (Rambus RAM) là một loại DRAM ñược thiết kế với
kỹ thuật hoàn toàn mới so với kỹ thuật SDRAM. RDRAM hoạt
ñộng ñồng bộ theo một hệ thống lặp và truyền dữ liệu theo một
hướng. Một kênh bộ nhớ RDRAM có thể hỗ trợ ñến 32 chip
DRAM. Mỗi chip ñược ghép nối tuần tự trên một module gọi là
ðường
ðường dữ RIMM (Rambus Inline Memory Module) nhưng việc truyền dữ
dữ liệu b liệu giữa các mạch ñiều khiển và từng chíp riêng biệt chứ
liệu b
không truyền giữa các chip với nhau. Bus bộ nhớ RDRAM là
ñường dẫn liên tục ñi qua các chip và module trên bus, mỗi
module có các chân vào và ra trên các ñầu ñối diện. Do ñó, nếu
các khe cắm không chứa RIMM sẽ phải gắn một module liên
ðường ñịa chỉ tục ñể ñảm bảo ñường truyền ñược nối liền. Tốc ñộ RDRAM
a) Ô nhớ SRAM
ñạt từ 400-800MHz
ðường
dữ liệu ðường ñịa chỉ 8.4. BỘ NHỚ ẢO
Người ta ñã sử dụng cơ chế bộ nhớ ảo nhằm giải quyết vấn
ñề về kích thước bộ nhớ vật lý không ñủ chứa cả hệ ñiều hành cùng
với các chương trình của người sử dụng, ñồng thời vấn ñề các vùng
nhớ phải ñược bảo vệ một cách chắc chắn ñể khỏi bị chương trình
của người sử dụng làm hỏng. Bộ nhớ ảo có ñược dựa trên sự kết
a) Ô nhớ DRAM hợp các bộ nhớ với tốc ñộ rất cao như bộ nhớ trong (RAM) và bộ
Hình 8.12. Cấu tạo ô nhớ SRAM và DRAM nhớ có tốc ñộ chậm như bộ nhớ phụ ( ổ ñĩa cứng), hoạt ñộng dưới
sự quản lý của MMU, sao cho dưới quan ñiểm của người lập trình
Trong các bộ nhớ RAM lại chia ra làm nhiều loại cơ bản như sau: và ñối với người sử dụng thì tập hợp các bộ nhớ trên ñược quan
 SDRAM (Synchronous DRAM – DRAM ñồng bộ), một dạng niệm là một bộ nhớ thuần nhất với dung lượng lớn (gần hoặc bằng
DRAM ñồng bộ bus bộ nhớ. Tốc ñộ SDRAM ñạt từ 66- dung lượng ổ ñĩa cứng) nhưng lại làm việc ở tốc ñộ cao (gần bằng
133MHz (thời gian truy nhập bộ nhớ từ 75ns-150ns). tốc ñộ bộ nhớ trong).

267 268
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

Cấu trúc phân cấp bộ nhớ ñược minh họa như sơ ñồ hình công cache, trong khi nếu có lỗi trang thì có thể phải mất một thời
8.13. gian gấp 1000 lần khi không có lỗi trang.
Trong các máy tính hiện ñại 1 ñoạn có thể có ñộ lớn từ 1
byte ñến 4GB còn 1 trang thông thường có ñộ lớn từ 2KB ñến 16 K
bytes.
ðể truy cập ñến bộ nhớ ảo ta dùng ñịa chỉ ảo (ñịa chỉ lôgic),
còn truy nhập ñến bộ nhớ vật lý ta phải dùng ñịa chỉ vật lý. Khi cần
truy cập ñến một ñoạn dữ liệu nào ñó thì CPU phát ra một yêu cầu
truy cập ñến một ñịa chỉ, ñó chính là ñịa chỉ ảo. MMU nhận ñịa chỉ
ảo và dịch (chuyển ñổi) nó ra ñịa chỉ vật lý, ñịa chỉ này ñược ñưa
Bộ nhớ ảo có thể ñược quản lý bằng cách chia bộ nhớ thành lên bus ñịa chỉ ñể truy nhập bộ nhớ vật lý.
các mảng nhỏ có ñộ lớn tính theo ñoạn, cơ chế này gọi là phân
ñoạn (ñối với họ Intel có từ các bộ VXL 80286 trở ñi) hoặc trang, Tương tự như khi làm việc với cache, ñể hiểu rõ nguyên lý
cơ chế này gọi là phân trang ( ñối với họ Intel có từ các bộ VXL vận hành của bộ nhớ ảo, ta cũng phải trả lời ñược 4 câu hỏi cơ bản
80386) trở ñi. Trong bộ nhớ ảo như vậy, từng mảng mã lệnh và sau:
mảng dữ liệu dùng cho chương trình hiện tại ñược tải từ ổ ñĩa vào - Một khối bộ nhớ ngoài sẽ ñược ñặt tại ñâu trong bộ nhớ
bộ nhớ trong (RAM) và ñược truy nhập ñến bởi bộ ñiều khiển của trong?
bộ nhớ khi cần thiết. Nếu chương trình ñang chạy cần ñến một - Làm thế nào ñể tìm một khối khi nó ñang nằm trong bộ
mảng mã lệnh hay một mảng dữ liệu nào ñó mà không chứa trong nhớ trong?
RAM thì nó sẽ ñược tải vào RAM. Nếu RAM không còn ñủ không - Khối nào phải ñược thay thế khi có thất bại trang?
gian ñể chứa thì một mảng nào ñó của RAM sẽ ñược xác ñịnh theo
các tiêu chuẩn nhất ñịnh ñể bị ñẩy lại ổ ñĩa, nhường chỗ cho mảng
- Việc gì xảy ra khi cần ghi số liệu?
ñang cần lấy vào. ðể ñặt một khối nhớ vào trong bộ nhớ trong cũng có 3 kỹ
thuật là tương ứng trực tiếp, hoàn toàn phối hợp và phối hợp theo
Cách hoạt ñông của bộ nhớ ảo giữa bộ nhớ chính và bộ nhớ
tập hợp. Việc trừng phạt bộ nhớ ảo khi có thất bại, tương ứng với
phụ rất giống nguyên lý hoạt ñông giữa bộ nhớ cache và bộ nhớ
việc phải thâm nhập vào ổ ñĩa. Việc thâm nhập này rất chậm nên
chính mà ta ñã trình bày trong phần trên. Bộ nhớ RAM ñóng vai trò
người ta chọn phương án hoàn toàn phối hợp trong ñó các khối
là bộ nhớ chứa bản sao của một phần bộ nhớ phụ, bộ nhớ cache
(trang) có thể nằm ở bất kỳ vị trí nào trong bộ nhớ trong. Cách này
dóng vai trò là bộ nhớ chứa bản sao của một phần bộ nhớ chính.
cho tỉ lệ thất bại thấp.
Tuy có nguyên lý hoạt ñông giống nhau nhưng sự khác biệt lớn
nhất là khi thất bại cache, sự thay thế một khối trong cache ñược ðể tìm một khối nhớ ta cần phân biệt hai dạng ñịnh vị, ñó là
ñiều khiển bằng phần cứng, trong khi sự thay thế trong bộ nhớ ảo là ñịnh vị trang và ñịnh vị ñoạn. ðịa chỉ phát ra bởi CPU là ñịa chỉ ảo
chủ yếu do hệ ñiều hành. Ngoài ra khi thất bại cache thì thời gian bị và trong cả hai loại ñịnh vị, ñịa chỉ này ñều chứa một trường ñể lưu
phạt chỉ tương ñương với khoảng 5-10 lần trong trường hợp thành số thứ tự trang hoặc số thứ tự ñoạn.

269 270
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

Trong trường hợp ñịnh vị trang, dựa vào bảng trang, ñịa chỉ khối của bộ nhớ trong. Khối có thay ñổi thông tin, ñược chép vào
trong bộ nhớ vật lý ñược xác ñịnh bằng cách ñặt kề nhau số thứ của ñĩa từ nếu khối này bị thay thế.
trang vật lý với ñịa chỉ trong trang như trong hình 8.14.
Trong trường hợp ñịnh vị ñoạn, dựa vào thông tin trên bảng
ñoạn, việc kiểm tra tính hợp lệ của ñịa chỉ ñược tiến hành. ðịa chỉ
vật lý ñược xác ñịnh bằng cách cộng ñịa chỉ ñoạn và ñộ dời trong Limit Base
ñoạn như trong hình 8.15.
Bộ nhớ
ðịa chỉ ảo trong
p d
CPU ðúng
ðịa chỉ vật lý CPU s d < +
Sai ðịa chỉ
f d
Bộ nhớ Vật lý
TRAP
vật lý
s – chỉ số ñoạn d – ñộ dời ñoạn
Limit – Giới hạn tối ña của ñoạn
f Base – ñịa chỉ cơ sở của ñoạn
Hình 8.15. Ánh xạ ñịa chỉ ảo sang ñịa chỉ vật lý trong
ñịnh vị ñoạn

p – chỉ số trang d – ñộ dời trang


f – chỉ số khung trang (frame) • TỔNG KẾT
Hình 8.14. Ánh xạ ñịa chỉ ảo sang ñịa chỉ vật lý trong Trong chương này ñã trình bày các kiến thức cơ bản về tổ
ñịnh vị trang chức bộ nhớ trong máy tính. Qua ñó cho thấy sự khác biệt giữa các
loại bộ nhớ trong máy tính và các kỹ thuật kết hợp các loại bộ nhớ,
Khi có thất bại trang thì khối cần ñược thay thế sẽ tuân theo từ bộ nhớ lớn chậm, ñến các bộ nhớ rất nhỏ nhưng cực nhanh thành
các chiến thuật thay thế trang giống như các chiến thuật thay thế một không gian nhớ chung với tốc ñộ cao và giá cả phải chăng.
khối trong cache gồm có: Thay thế ngẫu nhiên, Khối xưa nhất, Vào Ngoài ra còn cung cấp các kiến thức về thiết kế và cấu tạo của các
trước ra trước, Tần số sử dụng ít nhất. tuy nhiên hầu hết các hệ loại bộ nhớ, qua ñó cung cấp cho sinh viên các hiểu biết cơ bản về
ñiều hành ngày nay ñều cố gắng dùng chiến thuật thay thế hệ thống bộ nhớ trong máy tính.
khối ít dùng gần ñây nhất (LRU: Least Recent Utilized) vì cho
rằng ñây là khối ít cần nhất.
ðối với chiến thuật trong bộ nhớ ảo thì luôn sử dụng chiến
thuật ghi lại (write-back), nghĩa là thông tin chỉ ñược viết vào trong
271 272
Simpo
ChươngPDF Merge
VIII: Hệ thống and Split Unregistered Version - http://www.simpopdf.com
bộ nhớ Chương VIII: Hệ thống bộ nhớ

CÂU HỎI VÀ BÀI TẬP CHƯƠNG VIII 8. Hãy nêu các nguyên nhân chính gây thất bại cache và cách hạn
chế nó?
9. Xét một ma trận số có kích thước 4x8. Giả sử mỗi số ñược lưu
1. Mục tiêu chính của các cấp bộ nhớ trong máy tính là gì? Vẽ sơ trong một từ và các phần tử của ma trận ñược lưu theo thứ tự cột
ñồ các cấp bộ nhớ cơ bản. trong bộ nhớ từ ñịa chỉ 1000 ñến ñịa chỉ 1031. Bộ nhớ cache
gồm 8 khối với mỗi khối chứa ñược 2 từ. Ta cũng giả sử dùng
2. Tính thời gian truy cập trung bình của một hệ thống bộ nhớ có 3
cấp: cache, bộ nhớ trong và bộ nhớ phụ nếu thời gian truy cập chiến thuật thay thế khối là LRU. Hãy khảo sát sự thay ñổi trong
vào từng loại bộ nhớ tương ứng là 20 ns, 100 ns và 1 ms biết cache (sự thay ñổi trong các khối nhớ trong cache) trong 3 kỹ
thuật tổ chức bộ nhớ nếu CPU yêu cầu truy cập lần lượt ñến các
rằng tỷ số thành công của cache là 90% và bộ nhớ trong là 95%.
phần từ theo thứ tự sau:
3. Hãy xác ñịnh số bit của các trường trong ñịa chỉ bộ nhớ trong ở
a0,0, a0,1, a0,2, a0,3, a0,4, a0,5, a0,6, a0,7
ví dụ 1 trong 3 trường hợp ánh xạ. Trong trường hợp phối hợp
theo tập hợp, giả sử mỗi tập hợp gồm 2 khối nhớ. a1,0, a1,1, a1,2, a1,3, a1,4, a1,5, a1,6, a1,7
4. Nêu và giải thích các nguyên tắc vận hành của cache. 10. Hãy cho biết sự khác nhau giữa SRAM và DRAM?
5. Vẽ sơ ñồ chuyển ñổi ñịa chỉ cho ví dụ 2 trong trường hợp phối 11. Tại sao phải dùng bộ nhớ ảo?cho biết sự khác biệt cơ bản giữa
hợp hoàn toàn như trên hình 8.7 và giải thích cơ chế hoạt ñộng cache và bộ nhớ ảo?
của nó.
6. Vẽ sơ ñồ chuyển ñổi ñịa chỉ cho ví dụ 2 trong trường hợp phối
hợp theo tập hợp nếu mỗi tập hợp gồm 4 khối như trên hình 8.7
và giải thích cơ chế hoạt ñộng của nó.
7. Cho một bộ nhớ cache tương ứng trực tiếp có 8 khối, mỗi khối
có 16 byte. Bộ nhớ trong có 64 khối. Giả sử lúc khởi ñộng máy,
8 khối ñầu tiên của bộ nhớ trong ñược ñưa lên cache.
a. Viết bảng nhãn của các khối hiện ñang nằm trong cache
b. CPU lần lượt ñưa các ñịa chỉ sau ñây ñể ñọc số liệu: O4AH,
27CH, 3F5H. Nếu thất bại thì cập nhật bãng nhãn.
c. CPU dùng cách ghi lại. Khi thất bại cache, CPU dùng cách
ghi có nạp. Mô tả công việc của bộ quản lý cache khi CPU
ñưa ra các từ sau ñây ñể ghi vào bộ nhớ trong: 0C3H, 05AH,
1C5H.

273 274
Kiến trúc máy tính – Vũ ðức Lung Kiến trúc máy tính – Vũ ðức Lung

PHỤ LỤC 3.2. Lượng thông tin và sự mã hóa thông tin 78


3.3. Hệ thống số 79
Trang 3.4. Các phép tính số học cho hệ nhị phân 85
Lời nói ñầu 1 3.4.1. Phép cộng nhị phân không dấu 85
3 3.4.2. Phép trừ nhị phân không dấu 86
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Chương I: Giới thiệu 3.4.3. Phép nhân và chia hai số nhị phân không dấu 87
1.1. Lịch sử phát triển của máy tính 3 3.4.4. Biểu diễn số nguyên có dấu 88
1.1.1. Thế hệ zero-máy tính cơ học (1642-1945) 3 3.4.5. Số bù của một số 89
1.1.2. Thế hệ I – bóng ñèn ñiện (1945-1955) 4 3.4.6. Phép cộng trừ nhị phân dùng bù 1 92
1.1.3. Thế hệ II – transistor (1955-1965) 9 3.4.7. Phép cộng trừ nhị phân dùng bù 2 93
1.1.4. Thế hệ III – mạch tích hợp (1965-1980) 13 3.5. Số quá n (excess-n) 94
1.1.5. Thế hệ IV – máy tính cá nhân (1980-ñến nay) 16 3.6. Cách biểu diễn số với dấu chấm ñộng 95
1.2. Khối các nước XHCN và Việt Nam 18 3.7. Biểu diễn số BCD 98
1.3. Khuynh hướng hiện tại 21 3.8. Biểu diễn các ký tự 100
1.4. Phân loại máy tính 23 Câu hỏi và bài tập chương III 101
1.5. Các dòng Intel 24 Chương IV: Mạch Logic số 103
Câu hỏi và bài tập chương I 31 4.1. Cổng và ñại số Boolean 103
4.1.1. Cổng (Gate) 103
Chương II: Các bộ phận cơ bản của máy tính 32
4.1.2. ðại số Boolean 108
2.1. Bộ xử lý (CPU) 32 4.2. Bản ñồ Karnaugh 122
2.2. Bản mạch chính (Mainboard) 41 4.3. Những mạch Logic số cơ bản 135
2.3. Ổ ñĩa mềm (FDD) 48 4.3.1. Mạch tích hợp (IC-Intergrate Circuit) 135
2.4. Ổ ñĩa cứng (HDD) 50 4.3.2. Mạch kết hợp (Combinational Circuit) 137
2.5. Ổ CD và DVD 53 4.3.3. Bộ dồn kênh-bộ phân kênh 138
2.6. Bộ nhớ RAM và ROM 55 4.3.4. Mạch cộng (Adder) 142
2.7. Bàn phím (Keyboard) 59 4.3.5. Mạch giải mã và mã hóa 144
2.8. Chuột (Mouse) 60 Câu hỏi và bài tập chương IV 151
2.9. Card màn hình (VGA Card) 63 Chương V: Mạch tuần tự 155
2.10. Màn hình (Monitor) 66 5.1. Xung ñồng hồ 155
2.11. Card mạng (Network adapter) và Modem 74 5.2. Mạch lật (chốt – latch) 156
Câu hỏi và bài tập chương II 76 5.2.1. Mạch lật SR (SR-latch) 157
Chương III: Biểu diễn dữ liệu 77 5.2.2. Mạch lật D 160
5.2.3. Mạch lật JK 161
3.1. Khái niệm thông tin 77 5.3.4. Mạch lật T 161
275 276
Kiến trúc máy tính – Vũ ðức Lung Kiến trúc máy tính – Vũ ðức Lung

5.3. Mạch lật lề (Flip-flop) 162 8.2.2. Kỹ thuật thay thế khối nhớ 259
5.4. Mạch tuần tự 165 8.2.3. Chiến thuật ghi 260
Bài tập chương V 173 8.2.4. Các loại cache 262
Chương VI: Kiến trúc bộ lệnh 175 8.3. Bộ nhớ trong (Main memory) 263
6.1. Phân loại kiến trúc bộ lệnh 175 8.4. Bộ nhớ ảo (Virtual memory) 268
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

6.2. ðịa chỉ bộ nhớ 179 Câu hỏi và bài tập chương VIII 273
6.3. Mã hóa tập lệnh 181 Phụ lục 275
6.3.1. Các tiêu chuẩn thiết kế dạng thức lệnh 182 Tài liệu tham khảo 279
6.3.2. Opcode mở rộng 184
6.3.3. Ví dụ về dạng thức lệnh 187
6.3.4. Các chế ñộ lập ñịa chỉ 191
6.4. Bộ lệnh 201
6.4.1. Nhóm lệnh truyền dữ liệu 203
6.4.2. Nhóm lệnh tính toán số học 204
6.4.3. Nhóm lệnh Logic 206
6.4.4. Nhóm các lệnh dịch chuyển 207
6.4.5. Nhóm các lệnh có ñiều kiện và lệnh nhảy 209
6.5. Cấu trúc lệnh CISC và RISC 212
Câu hỏi và bài tập chương VI 216
Chương VII: Tổ chức bộ xử lý 218
7.1. Tổ chức bộ xử lý trung tâm 218
7.2. Bộ ñiều khiển 221
7.3. Bộ thanh ghi 224
7.4. ðường ñi dữ liệu (Datapath) 227
7.4.1. Tổ chức One-Bus 228
7.4.2. Tổ chức Two-Bus, Three-Bus 229
7.5. Diễn tiến thi hành lệnh mã máy 231
7.6. Xử lý ngắt (Interrupt Handling) 236
7.7. Kỹ thuật ống dẫn (Pipeline) 238
Câu hỏi và bài tập chương VII 244
Chương VIII: Hệ thống bộ nhớ 245
8.1. Các cấp bộ nhớ 245
8.2. Bộ nhớ cache (Cache memory) 248
8.2.1. Tồ chức bộ nhớ cache 251
277 278
Kiến trúc máy tính – Vũ ðức Lung

TÀI LIỆU THAM KHẢO


Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

1. Nguyễn Minh Tuấn, Kiến trúc máy tính (giáo trình lược giản),
V3.7, Trường ðH Khoa học tự nhiên tp. HCM

2. Cấu trúc máy tính cơ bản, tổng hợp và biên dịch VN-Guide, nhà
xuất bản thống kê.

3. Võ ðức Khánh ,Kiến trúc máy tính, ThS. Võ ðức Khánh

4. Võ Văn Chín, Nguyễn Hồng Vân, Phạm Hữu Tài. Giáo trình
kiến trúc máy tính. ðH Cần Thơ, 2003.

5. M. Abd-El-Barr, H. El-Rewini, Fundamentals of Computer


Organization and Architecture, Wiley, 2005

6. Patterson, D. A., and J. L. Hennessy. Computer Organization


and Design: The Hardware/Software Interface, 3rd ed. San Mateo,
CA: Morgan Kaufman, 2004

7. Robert Bruce Thompson, Barbara Fritchman Thompson,


Repairing and Upgrading Your PC, O’Reilly, 2006

8. William Stallings. Computer Organization & Architecture


(Designing for performance), Sixth edition, Pearson Education,
2003

9. M. Abd-El-Barr, H. El-Rewini, Advanced Computer


Architecture and Parallel Processing, Wiley, 2005

279

You might also like