Đề cương chi tiết môn Kiến trúc máy tính

KIẾN TRÚC MÁY TÍNH  
ĐỀ CƯƠNG CHI TIẾT GIÁO TRÌNH  
“KIẾN TRÚC MÁY TÍNH”  
Biên soạn: TS Bùi Thế Hồng  
Mục đích giáo trình:  
Cung cấp cho sinh viên các kiến thức và các khái niệm cơ bản về thiết kế kiến trúc  
logic của các máy tính hiện đại:  
Cơ chế của máy tính dùng để biểu diễn dữ liệu và các lý thuyết cơ bản về thông  
tin.  
Các thành phần cơ bản cấu thành một máy tính điện tử.  
Các ý tưởng và nguyên tác cơ bản được sử dụng trong các hệ thống số bao gồm  
hệ lệnh, các hệ thống kết nối, và các hệ thống điều khiển.  
Các nguyên lý của các phép số học trong máy tính.  
Cấu trúc và các cơ chế quản bộ nhớ.  
Các thiết bị ngoại vi và nguyên tắc hoạt động.  
Lập trình bằng ngôn ngữ assembler.  
Kết quả chờ đợi:  
Học xong giáo trình này, sinh viên biết được cấu trúc vật lý bên trong một máy tính điện  
tử, cơ sở logic của các phép toán số học, cách thức thiết kế các mạch logic, qua đó có thể  
hiểu hơn về hoạt động của nó làm cơ sở cho việc nắm bắt tốt hơn nguyên lý thiết kế và  
cài đặt các hệ điều hành, khắc phục các sự cố của máy tính, và hỗ trợ cho việc lập trình  
bằng các ngôn ngữ assembler và các ngôn ngữ bậc cao.  
Số tiết học: 60 tiết, bao gồm 45 tiết thuyết và 15 tiết thực hành về assembler  
CHƯƠNG I. CÁC KHÁI NIỆM CƠ BẢN VỀ MÁY TÍNH ĐIỆN TỬ  
Mục đích:  
Hiểu qua về lịch sử phát triển và các kiểu khác nhau của các hệ thống máy tính .  
Hiểu được các thành phần cơ bản của một máy tính và các chức năng chính của  
chúng.  
Cơ bản hiểu được khái niệm về lập trình và các ngôn ngữ lập trình cấp thấp cấp  
cao.  
1.1 qua về lịch sử phát triển  
Lịch sử phát triển của máy tính điện tử thể được phân chia thành 5 giai đoạn khác  
nhau, mỗi giai đoạn được gọi một thế hệ:  
Bùi Thế Hồng, Nội 2002  
1
KIẾN TRÚC MÁY TÍNH  
1. Thế hệ thứ 0  
Thế hệ này được dùng để chỉ thời kỳ phát triển của các thiết bị tính toán đầu tiên  
trên thế giới: máy tính số điện tử đầu tiên có tên ABC do John Atanasoff chế tạo  
năm 1940; máy Mark I do IBM chế tạo năm 1944; và có lẽ nổi bật nhất là máy  
EDVAC do Von Neuman và một số kỹ sư khác phát triển trong các năm 1944-  
1946. Đây là lần đầu tiên tư tưởng lưu giữ chương trình trong bộ nhớ thực  
hiện lần lượt từng lệnh được cài đặt trong máy.  
Sự phát triển của EDVAC đã đánh dầu một bước chuyển biến mới của kỹ thuật  
tính toán Các thành phần cứng của máy được chế tạo từ các bóng đèn điện tử.  
2. Thế hệ thứ nhất, 1951-1956  
Thế hệ thứ nhất được đánh dấu bằng việc ra đời của máy tính thương mại  
UNIVAC I vào năm 1951 và sau đó là IBM 701. Kiến trúc của máy vẫn dựa trên  
công nghệ đèn điện tử.  
Đặc điểm của giai đoạn này là xuất hiện các ngôn ngữ lập trình bậc cao.  
3. Thế hệ thứ hai, 1956-1964  
Thế hệ thứ hai được bắt đầu bằng việc ra đời của các đèn bán dẫn thay thế cho  
đèn điện tử trong các cấu trúc phần cứng của máy tính.  
Đến cuối giai đoạn này đã xuất hiện các thiết bị lưu trữ thông tin truy cập ngẫu  
nhiên dẫn đến việc thay thế các hệ điều hành trên băng từ bằng các hệ điều hành  
trên đĩa từ.  
4. Thế hệ thứ ba, 1964 1979  
Thế hệ thứ ba chính thức bắt đầu khi họ máy IBM 360 ra đời vào tháng 4 năm  
1964. Phần cứng của máy đã được thiết kế từ các mạch tích hợp làm tăng tốc độ  
tính toán và giảm đáng kể giá thành chế tạo.  
Các máy tính của thế hệ này đã có thể làm việc trong chế độ đa chương trình.  
5. Thế hệ thứ tư, 1979 đến nay  
Thế hệ thứ tư được bắt đầu từ việc ra đời của các máy tính cá nhân và các máy  
trạm làm việc.  
Các công nghệ mạch tích hợp lớn cực lớn đã đẩy nhanh sự phát triển của phần  
cứng cũng như phần mềm của các máy tính.  
Xuất hiện các công nghệ mạng cục bộ, mạng diện rộng đặc biệt sự bùng nổ  
của Internet.  
1.2 Một máy tính là gì?  
Một máy tính là một thiết bị điện tử thể lập trình được dùng để lưu trữ, tìm lại  
xử dữ liệu.  
Hai khái niệm cơ bản của công nghệ máy tính đó là phần cứng phần mềm:  
Phần cứng máy tính là các thiết bị cứng cấu thành ra máy tính. Đó chính là  
đối tượng cần trình bầy trong giáo trình này.  
Phần mềm là các chương trình dùng để điều khiển máy tính hoạt động  
theo ý của người sử dụng nó.  
Bùi Thế Hồng, Nội 2002  
2
KIẾN TRÚC MÁY TÍNH  
1.3 Các thành phần cơ bản cấu thành máy tính  
(1) Các chức năng của phần cứng cấu thành một máy tính có thể được chia thành 5 nhóm:  
Nhập (Input)  
Lưu trữ  
Vận hành  
Điều khiển  
Xuất (Output)  
(2) Các đơn vị phần cứng thực hiện các chức năng của máy tính:  
Đơn vị nhập: Đơn vị này nhập dữ liệu chương trình để máy tính xử lý. Nó  
tương ứng với tai và mắt của con người.  
Đơn vị lưu trữ: Đơn vị này lưu trữ các dữ liệu chương trình đã nhập. tương  
ứng với phần ghi nhớ của bộ óc con người.  
Đơn vị số học: Đơn vị này thực hiện các tính toán và ra các quyết định dựa trên  
các dữ liệu đâ lưu trữ và tuân theo các chỉ thị của chương trình. Nó giống như  
phần suy nghĩ trong bộ óc người.  
Đơn vị điều khiển: Đơn vị này điều khiển đơn vị nhập, đơn vị lưu trữ, đơn vị số  
học đơn vị xuất. giống như hệ thần kinh trung ương của con người.  
Đơn vị xuất: Đơn vị này xuất ra các kết quả của các quá trình xử dưới dạng mà  
con người thể hiểu được.  
Hình 1.1 là sơ đồ biểu diễn một máy tính bao gồm 5 đơn vị.  
§¬n vÞ l-u  
tr÷ chÝnh  
§¬n vÞ nhËp  
§¬n vÞ xuÊt  
§¬n vÞ  
®iÒu khiÓn  
§¬n vÞ  
Sè häc  
Dßng d÷ liÖu  
Dßng ®iÒu khiÓn  
Bé vi xö lý (CPU)  
Hình 1.1 Năm đơn vị của máy tính  
1.4 Tổng quan về lập trình  
Máy tính không làm được nếu con người không ra lệnh cho nó. Việc tả các  
công việc máy tính cần phải thực hiện được gọi việc lập chương trình.  
Thủ tục lập trình một bài toán bao gồm hai bước riêng biệt. Bước thứ nhất, lập kế  
hoạch cho chương trình, tức là xác định dãy các phép toán cần thực hiện để giải  
Bùi Thế Hồng, Nội 2002  
3
KIẾN TRÚC MÁY TÍNH  
bài toán. Bước thứ hai là mã hoá, tức viết dãy các phép toán cần thực hiện bằng  
một ngôn ngữ đặc biệt mà máy tính có thể dịch ra để hiểu được.  
Nói cách khác, một chương trình đã cho phải được viết bằng một ngôn ngữ mà  
cuối cùng máy tính có thể chuyển thành ngôn ngữ máy, tức là ngôn ngữ đã được  
cài đặt trong phần cứng của máy. Khả năng biên dịch các ngôn ngữ với một cú  
pháp hạn chế của máy tính chính là cơ sở của tất cả các ngôn ngữ lập trình và là lý  
do cơ bản để máy tính được sử dụng rất rộng rãi như hiện nay.  
nhiều lớp ngôn ngữ máy tính khác nhau, nhưng hai chủng loại được biết đến  
được sử dụng rộng rãi nhất là: hợp ngữ và ngôn ngữ bậc cao:  
Hợp ngữ (assembly language): Là ngôn ngữ bậc thấp, trong đó mỗi câu lệnh  
của tương ứng với một lệnh của ngôn ngữ máy. Assembler là chương trình  
thông dịch hợp ngữ sang ngôn ngữ máy.  
Ngôn ngữ bậc cao: Là các ngôn ngữ tựa ngôn ngữ tiếng Anh, mỗi câu lệnh  
của nó có thể tương ứng với nhiều lệnh của ngôn ngữ máy. Một chương trình  
biên dịch (compiler) là một chương trình thường được viết bằng ngôn ngữ  
máy và được sử dụng để dịch các chương trình được viết bằng một ngôn ngữ  
bậc cao thành dạng lệnh của một hợp ngữ.  
Để thể hoạt động được, máy tính còn phải có các chương trình hệ thống. Các  
chương trình này bao gồm hệ điều hành, bộ liên kết, bộ nạp và các chương trình  
sửa lỗi.  
Hệ điều hành: Điều khiển sự hoạt động của hệ thống máy tính, phân bổ việc  
sử dụng các tài nguyên chung của hệ thống và cung cấp một giao diện giữa  
phần cứng người lập trình.  
Bộ nạp (Loader): Mã đích được sinh ra từ một chương trình dịch hoặc thông  
dịch sẽ được nạp vào bộ nhớ chính để thực hiện bằng một chương trình được  
gọi bộ nạp.  
Bộ kết nối (Linker): Trong thực tế, nhiều chương trình khác nhau có thể sẽ  
thực hiện các công việc giống nhau. Thay vid phải viết đi viết lại cả dịch  
lại nhiều lần, các chương trình con thực hiện các công việc chung này sẽ được  
viết dịch riêng và cất giữ vào một nơi sử dụng chung gọi thư viện các  
chương trình con. Khi các chương trình lớn cần thực hiện các công việc  
tương tự thì chỉ cần gọi tới chương trình con tương ứng. Khi biên dịch xong  
chương trình chính thì mã đích của vẫn còn thiếu của chương trình con  
mà nó gọi, do đó cần phải một chương trình gọi bộ liên kết để kết nối mã  
đích của chương trình cính với của các chương trình con mà chương trình  
cần sử dụng.  
1.5 Hệ lệnh của máy tính  
Các lệnh của máy tính thường được viết dưới dạng các từ. Các từ lệnh được ghi trong  
máy tính dưới dạng nhị phân (sẽ được trình bầy kỹ trong Chương II). Người lập trình  
hiếm khi viết các lệnh dưới dạng số thường sử dụng dạng gợi nhớ. Sau đó,  
phần tên lệnh gợi nhớ của từ lệnh sẽ được chương trình assembler chuyển sang dạng  
số.  
Bùi Thế Hồng, Nội 2002  
4
KIẾN TRÚC MÁY TÍNH  
Một từ lệnh do người lập trình viết bao gồm hai phần: (1) phép toán cần thực hiện  
(cộng, trừ, ...) và (2) địa chỉ chứa giá trị của toán hạng cần dùng.  
dụ:  
ADD 90  
trong đó ADD là mã của phép toán, ra lệnh cho máy thực hiện phép cộng số học. 90  
địa chỉ trong bộ nhớ mà phép cộng cần sử dụng.  
Lệnh này chỉ thị cho máy lấy số có trong địa chỉ 90 cộng với giá trị hiện tại của thanh  
ghi tích luỹ (accumulator) và kết quả của phép cộng này lại được chứa trong thanh  
ghi tích luỹ.  
Bảng 1.1 liệt một số lệnh thường dùng.  
Từ lệnh  
Chức năng của lệnh  
Mã phép toán Phần địa chỉ  
Nội dung trước đó của thanh ghi tích luỹ bị xoá và số  
có trong địa chỉ 430 của bộ nhớ được cộng vào thanh  
ghi này. CLA có nghĩa Clear and Add.  
CLA  
430  
530  
Số đang lưu tại địa chỉ 530 được cộng với số có trong  
thanh ghi tích luỹ. Sau lệnh này, thanh ghi tích luỹ chứa  
kết quả của phép cộng.  
ADD  
Lấy số ở thanh ghi tích luỹ trừ đi số đang lưu tại địa chỉ  
240 và hiệu được đặt vào thanh ghi tích lũy.  
SUB  
STO  
240  
435  
Số đang có trong thanh ghi tích luỹ được lưư vào địa  
chỉ 435 của bộ nhớ. Nội dung trước đó của địa chỉ 435  
bị ghi đè lên, còn nội dung của thanh tích luỹ vẫn giữ  
nguyên sau khi phép toán này được thực hiện.  
Số có trong địa chỉ 400 được nhân với số có trong  
thanh ghi tích luỹ, tích của phép nhân được lưu tại  
thanh ghi.  
MUL  
BRA  
400  
420  
Lệnh này chỉ thị cho máy tiếp theo sẽ thực hiện lệnh  
đang được lưu tại đại chỉ 420. Máy sẽ bỏ qua lệnh mà  
lẽ ra đến lượt sẽ được thực hiện để nhẩy đến lệnh ở địa  
chỉ 420. Sau đó, máy sẽ thực hiện lệnh tiếp theo lệnh  
420.  
Máy tính sẽ nhẩy đến lệnh 420 chỉ khi số đang thanh  
ghi tích luỹ là âm. Nếu số này là dương hoặc bằng 0 thì  
máy sẽ không nhẩy sẽ thực hiện lệnh được lưu tại  
địa chỉ tiếp theo địa chỉ chứa lệnh này. BRM có nghĩa  
Branch on Minus.  
BRM  
HLT  
420  
000  
Dừng máy. Số đang lưu trong thanh ghi tích lũy được  
giữ nguyên.  
Bảng 1.1 Một số lệnh thường dùng của assembler  
Câu hỏi và bài tập  
Bùi Thế Hồng, Nội 2002  
5
KIẾN TRÚC MÁY TÍNH  
1. Viết một chương trình bằng assembler tính và ghi giá trị của biểu thức x5 + x vào ô  
nhớ 40 với x được để trong ô nhớ 20. Độ dài chương trình không được vượt quá 20  
lệnh.  
2. Viết một chương trình tính tổng các số chẵn tử 2 đến 100.  
3. Có ba mươi số được ghi liên tiếp trong bộ nhớ, khởi đầu từ ô 300. Viết một chương  
trình assembler đổi các số âm trong ba mươi số này thành các số dương.  
4. Hãy nêu chức năng chính của các đơn vị sau đây:  
a) Đơn vị số học b) Đơn vị nhớ chính c) Đơn vị điều khiển d) Đơn vị nhập  
Bùi Thế Hồng, Nội 2002  
6
KIẾN TRÚC MÁY TÍNH  
CHƯƠNG II. BIỂU DIỄN THÔNG TIN TRONG MÁY TÍNH  
Mục đích:  
Nắm được các đơn vị dữ liệu cơ bản của máy tính như các số nhị phân, các bits,  
các bytes, các từ và các cách chuyển đổi từ hệ đếm này sang hệ đếm khác.  
Hiểu được các khái niệm cơ bản về cách biểu diễn dữ liệu bên trong máy, tập  
trung vào các dữ liệu số, các mã ký tự,  
Để máy tính có thể làm việc được, cần phải chuyển các thông tin mà chúng ta sử dụng  
trong cuộc sống hàng ngày sang dạng mà nó có thể hiểu được. Do đó, chương này sẽ  
trình bầy các phương pháp biểu diễn thông tin trong một máy tính cũng như cách thức xử  
lý thông tin của nó.  
2.1 Chuyển đổi các số  
Để máy tính có thể xử một công việc nào đó, đầu tiên là phải nạp vào bộ nhớ của  
nó các chương trình mô tả công việc cần phải làm.  
Do cấu trúc của các đơn vị lưu trữ của máy tính chỉ thể nhận một trong hai giá trị  
hoặc là 1 hoặc là 0, nên hệ nhị phân đã được sử dụng để biểu diễn các thông tin cần  
nhập vào máy.  
Vì chúng ta xưa nay vẫn quen dùng hệ thập phân nên cần phải hiểu kỹ mối quan hệ  
giữa hai hệ thống này.  
2.1.1 Đơn vị biểu diễn dữ liệu đơn vị xử lý  
(1) Biểu diễn các số trong hệ 2  
Các số nhị phân biểu diễn hai trạng thái của các mạch điện tử: có dòng điện chạy  
qua hoặc không có dòng điện chạy qua; hoặc điện thế cao hoặc điện thế thấp  
Các số thập phân và các số nhị phân  
Các số  
Các số  
thập phân nhị phân  
0
1
0
1
2
10  
Nhớ 1  
Nhớ 1  
3
11  
4
100  
101  
110  
111  
1000  
1001  
1010  
5
6
7
8
Nhớ 1  
9
Nhớ 1  
10  
Bit  
Một bit là 1 chữ số của hệ nhị phân được biểu diễn bằng “0” hoặc bằng “1”. Một  
bit là đơn vị nhỏ nhất để biểu diễn dữ liệu trong máy.  
Bùi Thế Hồng, Nội 2002  
7
KIẾN TRÚC MÁY TÍNH  
Một bit chỉ thể biểu diễn 2 giá trị của dữ liệu, nhưng hai bits có thể biểu diễn  
được bốn giá trị khác nhau: 00, 01, 10, và 11.  
Byte  
Một byte là một đơn vị nhớ gồm 8 bit có thể biểu diễn được một tự hoặc 28 =  
256 giá trị khác nhau.  
Hai bytes (16 bits) có thể biểu diễn được 216 = 65 536 thông tin khác nhau.  
Word  
Word là đơn vị xử của các lệnh trong máy tính.  
Số bit trong một word có thể là 16, 32 hoặc 64 tuỳ vào từng loại phần cứng.  
(2) Hệ nhị phân và hệ 16  
Hệ nhị phân được sử dụng để đơn giản hoá cấu trúc của các mạch điện tử cấu  
thành máy tính, nhưng đối với con người thì ý nghĩa của các dẫy số 0 và 1 rất khó  
hiểu.  
Nếu chỉ dùng 3 bit để biểu diễn các số thập phân thì không đủ mà dùng 4 bit thì  
thừa. Do đó xuất hiện một hệ mới được gọi hệ 16 để biểu diễn các chữ số của  
hệ này vừa đủ bằng 4 bits.  
Các số  
Các số  
Các số ưj  
thập phân nhị phân  
16  
0
1
0
1
0
1
2
10  
2
3
11  
3
4
100  
4
5
101  
5
6
110  
6
7
111  
7
8
9
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
10000  
8
9
10  
11  
12  
13  
14  
15  
16  
A
B
C
D
E
F
10  
2.1.2 Biểu diễn các dữ liệu bằng số  
(1) Cơ số trọng số  
Trọng số của các số thập phân và ý nghĩa của nó  
3
5
7
9
1
Số thập phân  
mười nghìn trăm chục đơn  
Tên của các chữ số  
nghìn  
vị  
104  
103  
102  
101  
100  
Trọng số của từng chữ  
Bùi Thế Hồng, Nội 2002  
8
KIẾN TRÚC MÁY TÍNH  
số  
35791 = 3 x 104 + 5 x 103 + 7 x 102 + 9 x 101 + 1 x 100  
Trọng số của các số nhị phân và ý nghĩa của nó  
1
1
0
1
1
Số thập phân  
24  
23  
22  
21  
20  
Trọng số của từng chữ  
số  
11011 = 24 + 23 + 21 + 20  
(2) Các đơn vị biểu diễn các đại lượng lớn nhỏ  
hiệu  
hiệu  
Chú giải  
đơn vị  
luỹ thừa  
240  
230  
Các đơn vị T (Tera)  
1012  
109  
106  
103  
biểu diễn  
các đại  
G (Giga)  
M (Mega)  
K (Kilo)  
220  
lượng lớn  
210  
Các đơn vị m (milli)  
10-3  
10-6  
10-9  
10-12  
1/1,000  
biểu diễn  
các đại  
lượng nhỏ  
1/1,000,000  
1/1,000,000,000  
1/1,000,000,000,000  
(micro)  
n (nano)  
p (pico)  
(3) Các phép cộng trừ nhị phân  
Cộng  
0 + 0 = 0  
0 + 1 = 1  
1 + 0 = 1  
1 + 1 = 10  
(0 trong hệ 10)  
(1 trong hệ 10)  
(1 trong hệ 10)  
(2 trong hệ 10) phép cộng này có nhớ và có thể nói rằng  
1 cộng 1 bằng 0 nhớ 1  
Trừ  
0 0 = 0  
0 1 = 1  
1 0 = 1  
1 1 = 0  
mượn 1, đây là phép trừ phải mượn: 0 trừ 1 bằng 1 mượn 1  
(4) Các phép cộng trừ trong hệ 16  
Các phép cộng trừ trong hệ 16 cũng được thực hiện từ phải qua trái như hệ 10. Khi  
kết quả của phép cộng hai chữ số vượt quá 16 thì phải nhớ 1 sang chữ số bên trái. Khi  
kết quả phép trừ là âm thì phải mượn 1 từ chữ số bên trái của số bị trừ.  
2.1.3 Chuyển cơ số  
Bùi Thế Hồng, Nội 2002  
9
KIẾN TRÚC MÁY TÍNH  
Để thể xử lý các giá trị số trong một máy tính, các số thập phân phải được chuyển  
sang hệ nhị phân hoặc hệ 16. Ngược lại, từ trước cho đến nay chúng ta thường sử  
dụng các số thập phân nên rất khó để thể hiểu ra ngay ý nghĩa của các kết quả xử  
được biểu diễn dưới dạng nhị phân hay hệ 16. Do đó, cần phải sự chuyển đổi  
giữa các số thập phân, nhị phân và 16. Việc này được gọi chuyển đổi cơ số.  
(1) Chuyển các số thập phân sang nhị phân  
Một số thập phân được chia thành hai phần: phần nguyên và phần thập phân.  
Chuyển phần nguyên: Chia số nguyên cần chuyển cho 2 để nhận được thương và  
phần dư. Vì chia cho 2 nên phần dư chỉ thể là 0 hoặc 1. Lấy thương chia tiếp  
cho 2 cho đến khi thương bằng 0. Số nhị phân cần tìm chính là các phần dư viết  
theo thứ tự ngược lại.  
dụ: Chuyển số thập phân 25 sang nhị phân  
2) 25  
Phần dư  
2) 12 ....... 1  
2) 6 ....... 0  
2) 3 ....... 0  
2) 1 ....... 1  
2) 0 ....... 1  
1 1 0 0 1  
Chuyển phần phân: Nhân phần phân cần chuyển với 2 và tách kết quả thành phần  
nguyên và phần phân. Vì phần nguyên là tích của phần phân với 2 nên chỉ thể  
là 0 hoặc 1. Phần phân vừa nhận được lại nhân tiếp với 2 và cứ làm như vậy cho  
đến khi phần phân bằng 0. Kết quả cần tìm chính là một số nhị phân nhỏ hơn 1  
được tạo thành từ việc ghép các phần nguyên của các phép nhân liên tiếp trên đây.  
dụ: Chuyển phần thập phân 0.4375 sang nhị phân  
0.4375  
2
0.875  
2
0.75  
2
0.5  
2
x
x
x
x
0.875  
1.75  
1.5  
1.0  
0
1
1
1
(0.4375)10 = (0.0111)2  
Nhận xét: Quá trình chuyển đổi này có thể không kết thúc -> có sai số chuyển đổi.  
(2) Chuyển các số nhị phân sang thập phân  
Chuyển phần nguyên nhị phân:  
dụ: chuyển số nhị phân 11011 sang thập phân  
(1 1 0 1 1)2  
Bùi Thế Hồng, Nội 2002  
10  
KIẾN TRÚC MÁY TÍNH  
24 + 23 + 21 + 20  
Trọng số  
16 + 8 + 2 + 1 = (27)10  
Bùi Thế Hồng, Nội 2002  
11  
KIẾN TRÚC MÁY TÍNH  
Chuyển phần phân nhị phân:  
dụ: chuyển số nhị phân 0.101 sang thập phân  
(0 . 1 0 1)2  
0 + 2-1 + 2-3  
Trọng số  
0 + 0.5 + 0.125 = (0.625)10  
(3) Chuyển các số nhị phân sang hệ 16  
Đối với các số nguyên nhị phân: chia dẫy bit nhị phân thành các nhóm 4 bít bắt  
đầu từ bit phải nhất (bit có ý nghĩa thấp nhất), mỗi nhóm 4 bít tương ứng với một  
chữ số trong hệ 16. Sau đó, đổi các bit trong từng nhóm thành số hệ 10 và tiếp  
theo đổi sang hệ 16  
dụ: Chuyển số nhị phân 10111010001 sang hệ 16  
1 0 1 1 1 0 1 0 0 0 1  
Chia thành các nhóm 4 bit  
(thêm 0 cho đủ 4 bit) 0 1 0 1  
1 1 0 1  
0 0 0 1  
22 20  
23 22 20  
20  
1
4 + 1  
5
8+4 + 1  
D
1 = (5D1)16  
Đối với các số phân nhị phân: chia thành các nhóm 4 bít bắt đầu từ dấu chấm nhị  
phân. Sau đó đổi từng nhóm thành số hệ 10 và cuối cùng đổi sang hệ 16.  
dụ: Chuyển số phân nhị phân 0.1011110001 sang hệ 16  
0 . 1 0 1 1 1 1 0 0 0 1  
Chia thành các nhóm 4 bit  
0 . 1 0 1 1 1 1 0 0 0 1 0 0  
Thêm 2 số 0 cho đủ 4 bit  
0 .  
B
C
4 =  
(0.BC4)16  
(4) Chuyển các số hệ 16 sang nhị phân  
Chuyển từng chữ số của số cần đổi trong hệ 16 thành dạng nhị phân 4 bit.  
dụ: (38C.8E)16 = 0011 1000 1100 . 1000 1110 = (1110001100.10001110)2  
2.2 Biểu diễn các số  
Hình 2.1 chỉ ra các dạng biểu diễn khác nhau của các dữ liệu trong máy tính.  
2.2.1 Biểu diễn các chữ số thập phân  
Bùi Thế Hồng, Nội 2002  
12  
KIẾN TRÚC MÁY TÍNH  
Các chữ số thập phân có thể được biểu diễn dưới dạng thập phân được nhị  
phân hoá (binary-coded decimal BCD) bằng cách sử dụng 4 bit nhị phân để  
biểu diễn các số từ 0 đến 9.  
DÊu chÊm cè ®Þnh  
C¸c sè nhÞ ph©n  
D÷ liÖu sè  
DÊu chÊm ®éng  
D÷ liÖu  
C¸c sè thËp ph©n  
D÷ liÖu ch÷  
Hình 2.1 Các dạng biểu diễn dữ liệu trong máy tính  
thập phân được nhị phân hoá  
Số thập phân  
Số nhi  
Mã BCD  
phân  
0
1
2
3
4
5
6
7
8
0 0 0 0  
0 0 0 1  
0 0 1 0  
0 0 1 1  
0 1 0 0  
0 1 0 1  
0 1 1 0  
0 1 1 1  
1 0 0 0  
1 0 0 1  
1 0 1 0  
1 1 0 0  
0 0 0 0  
0 0 0 1  
0 0 1 0  
0 0 1 1  
0 1 0 0  
0 1 0 1  
0 1 1 0  
0 1 1 1  
1 0 0 0  
9
10  
11  
1 0 0 1  
0 0 0 1 0 0 0 0  
0 0 0 1 0 0 0 1  
dụ: (789)10 = (0111 1000 1001)BCD  
Mã BCD thường được sử dụng để biểu diễn các số trong các tính toán văn phòng  
tuỳ thuộc vào cấu trúc của bộ nhớ máy tính, mã này được chia thành hai dạng:  
dạng thập phân không đóng gói (unpacked decimal) hoặc dạng thập phân đóng  
gói (packed decimal).  
2.2.2 Biểu diễn nhị phân  
(1) Biểu diễn các số nguyên âm  
a) Biểu diễn giá trị tuyệt đối của các số nguyên âm  
Nếu trong một hệ thống sử dụng 8 bit để biểu diễn các số nguyên thì bit đầu tiên  
bên trái được sử dụng để biểu diễn dấu của số, 7 bit còn lại biểu diễn giá trị tuyệt  
đối của số.  
Số hiệu bit  
7 6 5 4 3 2 1 0  
Xâu bit biểu diễn số nguyên  
dấu chấm thập phân  
Bit dấu của số nguyên (“0” – dương, “1” – âm)  
dụ:  
(00001100)2 = 23 + 22 = 8 + 4 = (12)10  
Bùi Thế Hồng, Nội 2002  
13  
KIẾN TRÚC MÁY TÍNH  
(10001100)2 =- (23 + 22) = -(8 + 4) = (- 12)10  
Theo cách này thì số 0 có hai cách biểu diễn: 00000000 (số 0 dương) và  
10000000 (số 0 âm) và như vậy sẽ làm cho việc thao tác trở nên phức tạp và vì  
vậy cách biểu diễn này không được sử dụng rộng rãi.  
b) Phần nhị phân của các số nguyên âm  
Các số âm thường được biểu diễn trong máy tính dưới dạng phần bù. Đối với mỗi hệ đếm  
đều có hai dạng phần bù: phần cơ số (hay còn gọi phần đúng) và phần cơ số  
bớt đi 1.  
Phần cơ số bớt một. Các chữ số của phần đúng được tạo ra bằng cách lấy cơ số  
bớt đi một rồi trừ chữ số tương ứng của số cần lấy phần bù.  
Phần đúng. Phần đúng bằng phần cơ số bớt một cộng thêm 1 vào chữ số có  
ít ý nghĩa nhất.  
Các phần bù trong hệ 10  
Phần bù 9  
Phần bù 9 của (123)10 là:  
9 9 9  
- 1 2 3  
8 7 6  
Phần bù 10  
Phần bù 10 của (123)10 là:  
9 9 9  
- 1 2 3  
8 7 6  
+
1
8 7 7  
Các phần bù trong hệ 2  
Phần bù 1: Đổi các chữ số của số cần lấy phần bu theo nguyên tắc “0” thành “1”  
“1” thành “0”.  
dụ: phần bù 1 của 10110011 là 01001100  
Phần bù 2: Lấy phần cộng thêm 1 vào bít ít ý nghĩa nhất.  
dụ: phần bù 2 của 10110011 là 01001100 + 1 = 01001101  
Cách làm tắt đối với phần bù 2: Giữ nguyên tất cả các chữ số “0” liên tiếp ở bên  
phải nhất một chữ số “1” tiếp theo ngay bên trái, sau đó đổi các chữ số “1”  
còn lại thành “0” và các chữ số “0” thành “1”.  
dụ: phần bù 2 của 10011000 là (01100111)phần bù 1 + 1 = 01101000  
Theo cách làm tắt:  
Lấy phần bù 1  
1 0 0 1 1 0 0 0  
giữ nguyên các chữ số “0” phải nhất một chữ số “1”  
0 1 1 0 1 0 0 0  
Biểu diễn các số âm bằng phần bù 1 và 2  
Biểu diễn bằng phần bù 1:  
dụ:  
0 1 1 1 1 1 1 0  
(+126)10  
Bùi Thế Hồng, Nội 2002  
14  
KIẾN TRÚC MÁY TÍNH  
Dấu  
lấy bù 1  
1 0 0 0 0 0 0 1  
(-126)10  
Tồn tại cả + 0 và - 0 đối với số 0.  
Biểu diễn bằng phần bù 2:  
dụ:  
0 1 1 1 1 1 1 0  
(+126)10  
(-126)10  
Dấu  
lấy bù 2  
1 0 0 0 0 0 1 0  
So sánh cách hai kiểu biểu diễn: Hình 2.2 chỉ ra một dụ về các miền giá trị của  
các số thể biểu diễn được bằng phần bù 1 và phần bù 2 (ba bit nhị phân).  
Phần bù 1  
Phần bù 2  
0
0
0
0
1
1
1
1
1 1 = 3  
1 0 = 2  
0 1 = 1  
0 0 = 0  
1 1 = - 0  
1 0 = - 1  
0 1 = - 2  
0 0 = - 3  
0
0
0
0
1
1
1
1
1 1 = 3  
1 0 = 2  
0 1 = 1  
0 0 = 0  
1 1 = - 1  
1 0 = - 2  
0 1 = - 3  
0 0 = - 4  
[- 3 , + 3]  
[- 4 , + 3]  
Hình 2.2 Miền giá trị của phần bù 1 và phần bù 2  
Nhận xét:  
-
Miền các giá trị số thể biểu diễn được bằng n bit nhị phân dưới dạng phần  
bù 1:  
[- (2n-1 - 1) , (2n-1-1)]  
-
Miền các giá trị số thể biểu diễn được bằng n bit nhị phân dưới dạng phần  
bù 2:  
[- 2n-1 , (2n-1-1)]  
-
-
Phần bù 2 được sử dụng phổ biến hơn phần bù 1 vì hai lý do: chỉ tồn tại một  
số 0 trong biểu diễn bằng bù 2 và do đó miền biểu diễn rộng hơn.  
thể thay phép trừ bằng phép cộng số bị trừ với phần bù 2 của số trừ. Có  
nghĩa là không cần phải mạch trừ chỉ cần một mạch cộng để thực hiện  
cả hai phép cộng trừ.  
dụ: 100 90 = 10  
(100)10 = (01100100)2  
(90)10 = (01011010)2 -> (-90)10 = (10100110)2  
0 1 1 0 0 1 0 0  
+ 1 0 1 0 0 1 1 0  
1 0 0 0 0 1 0 1 0 = (10)10  
số bit chỉ là 8 nên phép nhớ 1 sang bit thứ 9 bị bỏ qua  
Bùi Thế Hồng, Nội 2002  
15  
KIẾN TRÚC MÁY TÍNH  
(2) Dấu chấm cố định  
Dấu chấm cố định một định dạng biểu diễn dữ liệu được sử dụng chủ yếu cho các  
số kiểu nguyên.  
Biểu diễn phần nguyên:  
16 bits  
Các bits biểu diễn giá trị (15 bit)  
Bit dấu (1 bit)  
Dấu chấm nhphân  
Biểu diễn phần phân:  
Các bits biểu diễn giá trị  
Dấu chấm nhphân  
Bit dÊu  
(3) Dấu chấm động  
Định dạng dấu chấm động được sử dụng để biểu diễn các dữ liệu kiểu thực.  
Cách biểu diễn số dưới dạng khoa học:  
dụ: 1,500,000,000 (dấu phẩy được sử dụng để phân chia thành nghìn, triệu, tỷ).  
= 15 x 108  
Trong định dạng dấu chấm động số này viết dưới dạng: 0.15 x 1010  
Sè mò  
§Þnh trÞ C¬ sè  
a) Cách biểu diễn dưới dạng dấu chấm động trong máy tính (32 bit)  
S
Phần mũ (7 bits)  
Phần định tr(24 bits)  
DÊu cña phÇn ®Þnh trÞ  
VÞ trÝ cña dÊu chÊm ®-îc coi lµ ë ®©y  
Phần mũ: phần mũ gồm 7 bits nên miền giá trị của số mũ từ (0000000)2 đến  
(1111111)2 hay từ 0 đến 127 trong hệ thập phân. Vì vậy, thể coi miền này tương  
ứng từ 64 đến +63.  
Vì có thể coi cơ số là 16 nên giá trị số thể biểu diễn được với phần mũ 7 bit là từ  
16-64 đến 1663. Hình 2.3 là minh hoạ của miền giá trị này.  
Tràn  
âm  
Thấm  
âm  
Thấm  
Tràn  
Giá trị thể  
dương Giá trị thể dương  
biểu diễn  
biểu diễn  
63  
-64  
-64  
63  
0.0  
- 16  
-16  
16  
16  
Hình 2.3 Miền giá trị thể biểu diễn được bằng phần mũ 7 bits  
Phần định trị: Khi số thập phân 0.05 được chuyển sang nhị phân, nó sẽ trở thành một  
dẫy số lặp hạn (0.000011001100110011001100...)2.  
Bùi Thế Hồng, Nội 2002  
16  
KIẾN TRÚC MÁY TÍNH  
0
1 0 0 0 0 0 0  
  
0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 . . .  
((((((((((((((((((((((  
(0. 0 0 00 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0)2 x 160  
+
Trong trường hợp này, vì phần định trị chỉ có 24 bits nên số thập phân 0.05 không thể  
được biểu diễn chính xác. Tuy nhiên, ta thấy ngay sau dấu chấm nhị phân có 4 chữ số  
“0”, vì thế thể dịch 4 bits sang trái để biểu diễn thêm 4 chữ số trong phần còn dư  
chưa biểu diễn được. dịch sang trái 4 bits có nghĩa đã nhân thêm với 24 = 16 nên  
ta phải trừ phần mũ đi 1 (chia cho 16).  
Quá trình làm như trên được gọi chuẩn hoá tức là làm cho phần bị làm tròn trở  
thành tối thiểu. Việc chuẩn hoá do phần cứng tự động thực hiện. Sau khi chuẩn hoá,  
0.05 được biểu diễn dưới dạng sau:  
0
0 1 1 1 1 1 1  
  
1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0  
((((((((((((((((((((((  
(0. 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0)2 x 16-1  
+
b) Phép dịch chuyển  
Trong hệ nhị phân, mỗi chữ số một trọng số bằng luỹ thừa của 2. Nếu một số nhị  
phân bị dịch sang trái hay sang phải một vị trí thì giá trị của sẽ được tăng lên hay  
giảm đi 2 lần. Tương tự như vậy, nếu dịch một số i bits sang trái hoặc i bíts sang phải  
thì số này sẽ tăng lên hoặc giảm đi 2i lần.  
Có hai kiểu dịch chuyển: dịch chuyển số học dịch chuyển logic.  
Dịch chuyển số học  
Phép dịch chuyển số học được sử dụng để tính các giá trị số ở định dạng dấu chấm  
cố định với các số âm được biểu diễn dưới dạng phần bù 2.  
Qui tắc dịch chuyển số học:  
Bit dấu không bị dịch chuyển.  
Bit bị dịch ra ngoài coi như mất.  
Các bits trống được tạo ra do phép dịch sẽ được điền số 0 nếu dịch trái và điền  
giá trị của bit dấu nếu dịch phải.  
dụ: Tính (22)10 x 4 bằng phép dịch số học  
Dùng 8 bits để biểu diễn (22)10 dưới dạng nhị phân: (22)10=(10110)2  
0
0
0
1
0
1
1
0
Dịch 2 bits sang trái:  
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
= (88)10 = (22 x 4)10  
Bùi Thế Hồng, Nội 2002  
17  
KIẾN TRÚC MÁY TÍNH  
  
0 0 (hai bits này bị mất)  
điền thêm hai số 0  
Dịch chuyển logic  
Phép dịch logic được sử dụng để thay đổi vị trí bit. Sự khác nhau cơ bản giữa hai  
phép dịch này là bit dấu.  
Qui tắc dịch chuyển logic:  
Bit dấu cũng bị dịch chuyển.  
Các bits bị dịch ra ngoài bị coi như bị mất.  
Các bits trống được tạo ra do phép dịch được điền số 0.  
d: Tính giá trị của (-16)10 sau khi dịch số học dịch logic 2 bits sang phải.  
a. Dịch số học  
- Biểu diễn (-16)10 dưới dạng nhị phân phần bù 2 dấu chấm cố định 8 bits  
1
1
1
1
0
0
0
0
- Dịch số học 2 bit sang phải  
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
= (-4)10  
0 0 (hai bit nµy bÞ mÊt)  
  
hai bit nµy ®-îc ®iÒn bit dÊu  
a. Dịch logic hai bit sang phải  
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
= (60)10  
0 0 (hai bit nµy bÞ mÊt)  
  
hai bit nµy ®-îc ®iÒn sè 0  
2.3 Độ chính xác của các cách biểu diễn của phép toán  
Vì có những hạn chế về dung lượng nhớ của máy tính nên không phải tất cả các giá trị số  
mà chúng ta sử dụng đều thể biểu diễn được một cách chính xác. Nói cách khác, một  
giá trị được biểu diễn trong máy tính chỉ một biểu diễn gần đúng.  
2.3.1 Độ chính xác của các cách biểu diễn giá trị số  
Bùi Thế Hồng, Nội 2002  
18  
KIẾN TRÚC MÁY TÍNH  
Độ chính xác của một số miền sai số của nó, do đó độ chính xác caonghĩa sai số  
nhỏ. Nếu đủ số bit để biểu diễn dạng chuyển đổi của các số thập phân sang nhị phân  
thì sẽ không có sai số. Tuy nhiên, đối với phần phân thì lại không đơn giản nhiều phần  
phân không thể biểu diễn một cách chính xác dưới dạng nhị phân.  
(1) Độ chính xác đơn  
Trong các tính toán khoa học kỹ thuật, các giá trị số được biểu diễn bằng các  
chữ số nhị phân theo đơn vị từ (word). Độ dài của từ tuỳ thuộc vào phần cứng. Ví  
dụ, khi 1 từ độ dài 16 bit thì người ta thường nói một giá trị số được biểu diễn  
bằng 1 từ độ chính xác đơn.  
Miền xác định của các số nguyên được biểu diễn bằng 16 bit là:  
[(0000 0000 0000 0000)2 = 0 , 65 535 = (1111 1111 1111 1111)2]  
Miền xác định của các số thập phân được biểu diễn bằng 16 bit (không có dấu):  
[[(0000 0000 0000 0000)2 = 2-16 , 1-2-16 = (1111 1111 1111 1111)2]  
(2) Độ chính xác gấp đôi  
thể mở rộng miền xác định của các số thể biểu diễn được trong máy tính  
bằng cách tăng số lượng bit lên gấp đôi. Khi một số được biểu diễn bằng 32 bit (2  
từ 16 bit) thì được gọi số độ chính xác gấp đôi.  
Miền xác định của các số nguyên được biểu diễn bằng 32 bit là:  
[0, 4 294 967 295 = 232-1]  
Miền xác định của các số thập phân được biểu diễn bằng 32 bit (không có dấu):  
[2-32<= 0.00000000023283064365387 , 1-2-32<=0.99999999976716900000000]  
2.3.2 Độ chính xác phép toán  
Độ chính xác của phép toán đối với cách biểu diễn dấu chấm động  
Tràn (overflow) và thấm (underflow)  
Khi thực hiện phép nhân các số cực lớn hoặc cực nhỏ thể xẩy ra trường hợp kết  
quả nằm ngoài miền biểu diễn của các số. Nếu kết quả lớn hơn giá trị tuyệt đối  
cực đại thể biểu diễn được thì phép toán này được nói là gây tràn còn ngược lại  
khi tích nhỏ hơn giá trị tuyệt đối cực tiểu thể biểu diễn được thì phép toán này  
được gọi là làm thấm mất.  
Xoá. Khi thực hiện phép trừ hai số dấu chấm động xấp xỉ nhau có thể thu được  
một kết quả rất nhỏ rơi về phía trái giá trị nhỏ nhất thể biểu diễn được. Trường  
hợp này được gọi là phép xoá.  
Mất thông tin. Khi cộng hai số dấu chấm động thì số số mũ nhỏ hơn phải điều  
chỉnh để có cùng số mũ với số kia, tức là tăng phần mũ giảm phần định trị  
bằng cách dịch sang phải. Nếu lại cộng một số cực lớn với một số cực nhỏ thì khi  
điều chỉnh số nhỏ theo số lớn thể dẫn đến dịch hết cả phần định trị của nó và  
dẫn đến mất thông tin.  
2.4 Biểu diễn các giá trị không phải số  
Bùi Thế Hồng, Nội 2002  
19  
KIẾN TRÚC MÁY TÍNH  
2.4.1 Biểu diễn các ký tự  
Các ký tự thường được biểu diễn bằng 8 bits. Bộ mã dùng để biểu diễn các ký tự  
được gọi bộ mã trao đổi thông tin. Khi gõ trên bàn phím, các ký tự được nhập  
vào máy tính dưới dạng mã 1 byte.  
Các phím trên bàn phím bao gồm: các phím số (10 phím), các phím chữ (chữ  
thường, chữ hoa, tổng cộng 52 chữ), cám phím ký hiệu (40 kiểu), và các phím ký  
tự điều khiển (34 kiểu).  
2.4.2 Các bảng mã ký tự  
ASCII (American Standard Code for Information Interchange)  
ASCII là bảng mã 8 bit do Viện Tiêu chuẩn Quốc gia của Mỹ (ANSI) đưa ra năm  
1962, trong đó 7 bit được sử dụng để mã hoá các chữ số và các ký tự, bit thứ 7 được  
sử dụng để phát hiện lỗi. Bảng mã này được sử dụng phổ biến trên các máy tính và  
trong các phương thức truyền dữ liệu.  
Mã ISO (Inernational Organization for Standardization)  
Mã ISO là bảng mã 7 bit do Tổ chức Chuẩn hóa Quốc tế đưa ra năm 1967 dựa trên  
bảng mã ASCII.  
Unicode  
Unicode là hệ thống mã 16 bit và được sử dụng thống nhất cho tất cả các nước do  
Apple, IBM, Microsoft và một số công ty của Mỹ đề xuất thiết kế. ưu điểm của bộ  
mã này là có thể mã hoá được tất cả các con chữ của mọi ngôn ngữ trên thế giới. Hiện  
tại, Việt nam cũng đang xúc tiến việc thống nhất mã hoá chữ Việt bằng Unicode và  
phát triển bộ gõ.  
2.4.3 Biểu diễn âm thanh  
Hiện nay công nghệ thông tin đã hộ trợ cho hầu hết các phương tiện truyền tin và  
dữ liệu thể xử lý trên máy tính không chỉ dữ liệu số và ký tự.  
Dữ liệu âm thanh có dạng sóng vì vậy muốn xử lý âm thanh trên máy tính cần  
phải số hoá các sóng âm. Ngược lại muốn phát lại âm thanh từ máy tính cần phải  
biến dữ liệu âm thanh đã số hoá trở lại dạng sóng âm.  
2.4.4 Biểu diễn hình ảnh  
Không chỉ âm thanh mà ngay cả hình ảnh cũng thể được biểu diễn trong máy  
tính. Trong máy tính, một bức ảnh được biểu diễn như một tập các chấm.  
Trường hợp đơn giản nhất mỗi chấm chỉ có hai trạng thái, đen hoặc trắng. Khi  
đó, có thể dễ dàng biểu diễn các bức ảnh đen trắng.  
Ngày nay, hầu hết các bức ảnh đều mầu. Các màn hình máy tính thường rất  
nhiều hệ thống mầu được kết hợp từ ba mầu cơ bản (Đỏ, Xanh lục, và Xanh da  
trời) với 256 mức biểu diễn được xấp xỉ 16 triệu mầu. Do đó, đối với các ảnh  
mầu, cần phải sử dụng 24 bits để biểu diễn một chấm ảnh (8 bits cho một mầu).  
Bùi Thế Hồng, Nội 2002  
20  
Tải về để xem bản đầy đủ
doc 52 trang Thùy Anh 05/05/2022 4340
Bạn đang xem 20 trang mẫu của tài liệu "Đề cương chi tiết môn Kiến trúc máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docde_cuong_chi_tiet_mon_kien_truc_may_tinh.doc