Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3 Tổ chức máy tính
Nhập/Xuất
• Các thiết bị ký tự sẽ sinh ra ngắt cho mỗi ký tự được truyền đi, các thiết bị khối sẽ sinh ra
ngắt chỉ khi toàn bộ khối đó được truyền đi.
• Hầu hết các máy tính ngày nay đều có bộ điều khiển truy xuất bộ nhớ trực tiếp (direct
memory access - DMA) để dùng với thiết bị khối.
• Bộ điều khiển DMA dùng để truy xuất trực tiếp bộ nhớ và chia sẻ công việc truy xuất bộ
nhớ với CPU. DMA truyền dữ liệu trực tiếp giữa bộ đệm của bộ điều khiển nhập/xuất với
bộ nhớ chính, nó không yêu cầu bất cứ phục vụ nào từ CPU.
Bạn đang xem trước 20 trang tài liệu Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3 Tổ chức máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 3:
TỔ CHỨC MÁY TÍNH
Nội Dung
1. Kiến trúc von Neumann.
2. Biểu diễn dữ liệu.
3. Chiều dài từ của máy tính.
4. Dạng dữ liệu nguyên.
5. Dạng dữ liệu thực.
6. Dạng ký tự.
7. CPU / ALU.
8. Tập lệnh.
9. Bộ nhớ.
10. Nhập / Xuất .
2
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Kiến Trúc Von Neumann
• Hầu hết các máy tính ngày nay hoạt động
dựa vào “kiến trúc von Neumann”. Ý tưởng
chính của kiến trúc này là chương trình và
dữ liệu được lưu trữ trong bộ nhớ máy tính.
John von Neumann đã đưa ra ý tưởng này
vào năm 1945.
• Kiến trúc von Neumann cũng được gọi là
“máy tính có chương trình được lưu trữ -
stored program computer”. Các bước (lệnh)
của chương trình được lưu trữ trong bộ nhớ
máy tính và chu kỳ thao tác của máy sẽ lấy
bước kế tiếp (lệnh để thực thi) từ bộ nhớ,
hoàn thành thao tác này và lấy bước kế tiếp.
3
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Kiến Trúc Von Neumann
Quá trình này được lặp lại cho đến khi máy
tính gặp lệnh “dừng - halt”.
• Có 3 thành phần chủ yếu trong máy tính von
Neumann. Bộ nhớ là nơi chứa chương trình
và dữ liệu. Đơn vị xử lý trung tâm (central
processing unit - CPU) truy xuất chương
trình và dữ liệu trong bộ nhớ và thực thi
chúng. Đơn vị nhập/xuất truy xuất các thiết
bị nhập và xuất dữ liệu.
4
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Biểu Diễn Dữ Liệu
• Chúng ta thường sử dụng các số được biểu
diễn trong “cơ số 10 - base 10” – hệ thập
phân. Có lẻ cơ số này dựa trên ý tưởng là
chúng ta có 10 ngón tay.
• Ví dụ:
427 = 4 * 102 + 2 * 101 + 7 * 100
• Chúng ta nói rằng số được biểu diễn trong
cơ số 10 bởi vì các ký số của số đó được
nhân với luỹ thừa của 10.
• Máy tính sử dụng cơ số 2, bởi vì điều này sẽ
làm cho dễ dàng trong việc xây dựng phần
cứng khi máy tính chỉ dựa trên hai trạng thái
on và off (1 và 0).
5
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Biểu Diễn Dữ Liệu
• Cơ số 2 cũng được gọi là “hệ nhị phân -
binary number system”. Các ký số (bit) của
một số trong hệ nhị phân được nhân với luỹ
thừa của 2. Ví dụ, tính giá trị thập phân (cơ
số 10) của số nhị phân 10011010:
10011010 = 27 + 24 + 23 + 21 = 154
• Phép cộng trên hệ nhị phân:
0 + 0 = 0
0 + 1 = 1
1 + 1 = 10 (nhớ 1 - bit bên trái nhất)
• Ví dụ, cộng hai số nhị phân 1100 và 0110:
1100
0110
10010
6
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Chiều Dài Từ Của Máy Tính
• Mỗi máy tính khác nhau có thể truy xuất
cùng lúc số bit khác nhau. Ví dụ, một máy
tính có thể truy xuất 8 bit cùng lúc được gọi
là “máy tính 8 bit”. Nói cách khác, máy tính
đó có “chiều dài từ - word size” là 8 bit.
• Máy tính PC đầu tiên của IBM sử dụng bộ xử
lý 8088 của Intel có bus dữ liệu là 8 bit, nghĩa
là nó có thể đọc/ghi 8 bit dữ liệu cùng lúc với
thiết bị ngoại vi.
• Ngày nay, hầu hết các máy tính có chiều dài
từ là 32 hay 64 bit.
7
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Nguyên
• Cho đến bây giờ, chúng ta chỉ thảo luận các
số nguyên dương. Máy tính cũng cần thao
tác với các số nguyên có dấu và cả số thực.
• Để lưu trữ số có dấu, bit bên trái nhất (msb)
được sử dụng làm bit dấu. Bit này có giá trị
0 nếu là số dương và 1 nếu là số âm.
• Số nguyên âm được biểu diễn bằng cách lấy
bù 2 (two’s complement) của số dương
tương ứng. Để tính bù 2 của một số, đảo
ngược các bit của số đó và cộng thêm 1. Ví
dụ, bù 2 của 6 (00000110) trên máy tính 8
bit:
8
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Nguyên
11111001
+00000001
11111010 (−6)
• Chúng ta có thể kiểm tra lại giá trị trên bằng
cách cộng với 6, kết quả sẽ là 0:
11111010 (−6)
+00000110 (+6)
100000000 (0, bỏ bit bên trái nhất)
9
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Thực
• Biểu diễn số thực khó hơn số nguyên. Số
thực gồm phần định trị (mantissa) và phần
số mũ (exponent).
• Phần định trị và phần số mũ có thể dương
hoặc âm. Phần định trị lớn sẽ cho độ chính
xác lớn, phần số mũ lớn sẽ cho miền trị lớn.
• Trước đây vào thập niên 1980, các nhà sản
xuất máy tính khác nhau đã sử dụng cách
biểu diễn dữ liệu khác nhau. Vì vậy, chương
trình và dữ liệu không tương thích trên các
máy tính khác nhau.
• Viện IEEE (Institute of Electrical and
Electronic Engineers) đã đưa ra chuẩn để
10
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Thực
biểu diễn số dấu chấm động dạng nhị phân
sử dụng 32 và 64 bit.
• Số dấu chấm động 32 bit có dạng như sau:
dấu số mũ định trị
SEEEEEEEEmmmmmmmmmmmmmmmmmmmmmmm
• Bit msb là bit dấu, 8 bit kế tiếp là số mũ của
cơ số 2 và 23 bit còn lại là phần định trị.
• Dấu của số mũ được kết hợp vào giá trị biểu
diễn của nó. Vì lý do kỹ thuật, chuẩn IEEE
không sử dụng bù 2 để biểu diễn số mũ âm
mà sử dụng phương pháp khác.
• Ví dụ để biểu diễn 8.5, đầu tiên là chuyển
11
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Thực
8.5 về dạng nhị phân:
1000.1
• Theo chuẩn IEEE, chỉ có một ký số (bit) nằm
bên trái dấu chấm. Do vậy, giá trị trên được
viết lại:
1.0001 * 23
• Từ đây, chúng ta nhận ra số mũ của cơ số 2
là 3 và phần định trị là 0001.
• Sự đặc tả chuẩn IEEE 32 bit sử dụng “độ
lệch – bias” 127 ở phần số mũ (cách làm này
không cần bit dấu riêng cho số mũ và làm
cho việc so sánh các số mũ dễ dàng hơn là
sử dụng bù 2, cũng làm cho dễ dàng thấy
12
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Thực
được giá trị thật của nó). Trong ví dụ của
chúng ta, phần số mũ có giá trị nhị phân của
127 + 3 = 130 (10000010).
• Từ các kết quả trên, biểu diễn nhị phân của
8.5 sẽ là:
01000001000010000000000000000000
• Tính toán với số thực đòi hỏi máy tính phải
làm việc nhiều hơn là với số nguyên. Vì vậy,
một số máy tính được tích hợp bộ xử lý dấu
chấm động (floating-point processor) để
tăng tốc độ tính toán.
• Bài tập tại lớp: a) Hãy cho biết vì sao giá trị
13
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Số Thực
của độ lệch là 127 mà không phải là giá trị
khác?
b) Nếu giá trị của độ lệch là 127 thì miền trị
của số mũ là bao nhiêu?
14
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Ký Tự
• Dữ liệu dùng cho chương trình ở dạng ký tự
nhiều hơn dạng số. Tên, địa chỉ, tựa đề,
được biểu diễn bằng chuỗi ký tự.
• Các ký tự được ánh xạ hay mã hoá thành
các số nguyên. Có nhiều kiểu mã hoá như
BCD (binary coded decimal), EBCDIC
(extended BCD interchange coded).
• Bộ mã ASCII (American Standard Code for
Information Interchange) được đưa ra vào
thập niên 1960 và trở thành bộ mã được ưa
chuộng nhất. Ngày nay, Unicode được sử
dụng phổ biến hơn bởi vì nó tương thích với
bộ mã ASCII và cho phép mã hoá nhiều chữ
15
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Ký Tự
cái phức tạp hơn tiếng Nga, Trung Quốc và
những ngôn ngữ khác. Chúng ta sẽ sử dụng
bộ mã ASCII để minh hoạ cho ý tưởng mã
hoá ký tự, khi nó vẫn còn được sử dụng
rộng rãi và mô tả đơn giản hơn là dùng
Unicode.
• Trong bộ mã ASCII, mỗi ký tự được gán một
giá trị nguyên 7 bit. Cho ví dụ, ‘A’ = 65
(1000001), ‘B’ = 66 (1000010), ‘C’ = 67
(1000011), Bit thứ 8 trong byte ký tự được
dùng như bit chẵn-lẻ (parity) để kiểm tra lỗi
khi truyền thông tin hoặc mã hoá thành các
ký tự dùng trong các phép toán, các ký tự có
16
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Ký Tự
dấu hoặc các ký tự trang trí.
• Một số ký tự điều khiển cũng được định
nghĩa trong bộ mã ASCII. Các ký tự điều
khiển không hiển thị ra màn hình nhưng
được sử dụng để điều khiển thiết bị. Cho ví
dụ, ‘line feed - LF’ = 10 (0001010), ‘tab’ =
11 (0001011), ‘backspace’ = 8 (0001000),
• Để xuất chuỗi “Dog” và xuống dòng, một dãy
các byte sau được gởi đi:
01000100 01101111 01100111 00001010
D o g LF
• Tương tự, khi nhập dữ liệu từ bàn phím, bàn
17
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Định Dạng Ký Tự
phím sẽ gởi một dãy các giá trị nguyên
tương ứng với các ký tự đã nhập.
• Làm thế nào để một chương trình biết dãy
bit nào là của số nguyên, ký tự hay dấu
chấm động. Câu trả lời là chương trình sẽ
dựa vào kiểu dữ liệu của các đối tượng phần
mềm trong chương trình.
18
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
CPU/ALU
• CPU (Central Processing Unit) là thành phần
mà người ta nghĩ đến đầu tiên khi mô tả về
máy tính. Một chu kỳ trong máy tính von
Neumann là:
- Nạp một lệnh từ bộ nhớ vào CPU.
- Giải mã và thực thi lệnh đó.
• Thực thi lệnh bao gồm thực hiện các phép
tính số học hay luận lý và cũng là nạp hay
lưu trữ dữ liệu trong bộ nhớ.
• Khi thực thi lệnh xong, máy tính sẽ lấy lệnh
tiếp theo từ bộ nhớ và thực thi lệnh đó. Quá
trình trên tiếp tục cho đến khi CPU gặp lệnh
dừng.
19
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
CPU/ALU
• CPU gồm đơn vị điều khiển (control unit -
CU), đơn vị số học và luận lý (arithmetic and
logic unit - ALU) và các thanh ghi.
• Đơn vị điều khiển chịu trách nhiệm duy trì
đều đặn chu kỳ lấy và thực thi lệnh, ALU
thực thi các phép toán số học, so sánh (>, <,
=, ) và luận lý (AND, OR, NOT, ).
• Cả hai đơn vị điều khiển và ALU có các ô
nhớ đặc biệt và tốc độ thực thi rất cao được
gọi là các thanh ghi (register).
• Một số thanh ghi có công dụng đặc biệt và
một số có công dụng chung.
• Các thanh ghi có công dụng đặc biệt là bộ
20
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
CPU/ALU
đếm chương trình (program counter - PC) và
thanh ghi lệnh (instruction register – IR).
• Thanh ghi PC lưu giữ địa chỉ của lệnh thực
thi kế tiếp. Khi đơn vị điều khiển bắt đầu chu
kỳ lấy và thực thi lệnh, đơn vị điều khiển
chuyển lệnh có địa chỉ được lưu trong PC
đến thanh ghi IR. Khi này, đơn vị điều khiển
tự động tăng thanh ghi PC để nó trỏ đến lệnh
kế tiếp.
• Đơn vị điều khiển giải mã lệnh trong IR và
thực thi. Khi thực thi xong, đơn vị điều khiển
lấy lệnh mà PC đang trỏ đến và tiếp tục chu
kỳ mới.
21
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
CPU/ALU
• Các thanh ghi có công dụng chung được sử
dụng để lưu giữ dữ liệu cho CPU truy xuất.
Truy xuất dữ liệu trong thanh ghi nhanh hơn
truy xuất trong bộ nhớ.
• Những máy tính khác nhau có số thanh ghi
khác nhau, kích thước thanh ghi bằng với
chiều dài từ của máy tính (16, 32, 64 bit, )
• Trong kiến trúc Intel x86, có 4 thanh ghi 32
bit có công dụng chung (EAX, EBX, ECX và
EDX) và 4 thanh ghi 32 bit dùng để lưu địa chỉ
stack và chuỗi (ESP, EBP, ESI và EDI).
22
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
• Định nghĩa cốt lõi của một kiến trúc máy tính
là là tập lệnh máy. Đó là danh sách các chỉ
thị mà phần cứng máy tính có thể thực thi.
• Các lệnh của máy tính bao gồm:
- Nạp dữ liệu từ bộ nhớ vào thanh ghi.
- Lưu dữ liệu từ thanh ghi vào bộ nhớ.
- Nhảy đến vị trí nào đó trong chương trình.
- Dịch các bit của một giá trị sang trái hay
sang phải.
- So sánh 2 giá trị.
- Cộng giá trị của hai thanh ghi.
- Thực hiện các phép toán luận lý,
23
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
• Phần lớn, các lệnh của máy chỉ thực hiện
các thao tác cơ bản.
• Hợp ngữ (assembly language) là ngôn ngữ
lập trình cấp thấp dạng gợi nhớ (mnemonic)
để viết chương trình thay vì bằng ngôn ngữ
máy.
• Các tập lệnh khác nhau cho chúng ta thấy tại
sao một chương trình chỉ thực thi được trên
một số máy tính.
• Ngày nay, hầu hết các chương trình được
viết bằng ngôn ngữ cấp cao hơn hợp ngữ.
• Khi một chương trình viết bằng ngôn ngữ
24
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
lập trình cấp cao (Java, C, Python, ), bộ xử
lý ngôn ngữ (language processor - trình biên
dịch hay thông dịch) sẽ chuyển các lệnh của
chương trình thành các lệnh mã máy để thực
thi.
• Nếu chúng ta muốn thực thi chương trình đó
trên máy tính khác với tập lệnh khác, thường
thì chỉ cần thay đổi bộ xử lý ngôn ngữ thích
hợp với máy tính mới, mã nguồn của
chương trình không thay đổi.
• Lệnh máy gồm một dãy các bit 0 và 1. Một số
bit được dùng làm mã lệnh (op-code). Ví dụ,
một số mã lệnh như ADD, Jump, Compare và
25
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
AND. Một số bit khác dùng làm toán hạng
(operand). Toán hạng có thể là thanh ghi,
biến bộ nhớ hay hằng.
• Ví dụ lệnh máy của Intel x86 sau đây là lệnh
ADD (cộng) để thực hiện thao tác “Cộng 40
vào thanh ghi DX”:
00000001 11000010 00000000 00101000
ADD DX 40
• Byte đầu tiên là mã lệnh của lệnh ADD. Byte
thứ 2 cho biết toán hạng đích là thanh ghi
DX, hai byte còn lại là toán hạng nguồn có trị
là 40.
26
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
• Một ví dụ khác là lệnh JMP (Jump – nhảy) để
thực hiện thao tác “Thiết lập bộ đếm chương
trình trỏ/nhảy đến địa chỉ 20.476”:
11101001 11111100 01001111
JMP byte thấp byte cao
• Byte đầu tiên là mã lệnh của lệnh JMP. Byte
thứ 2 và 3 lần lượt là byte thấp và byte cao
của địa chỉ muốn nhảy đến.
• Sau đây là một số lệnh máy tiêu biểu của tập
lệnh máy Intel x86:
27
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
MOV Gán toán hạng nguồn cho đích.
ADD Cộng hai toán hạng.
SUB Trừ hai toán hạng.
DIV Chia thanh ghi cho toán hạng đích.
IMUL Nhân số có dấu.
DEC Giảm toán hạng đích 1 đơn vị.
INC Tăng toán hạng đích 1 đơn vị.
AND Lấy VÀ hai toán hạng.
OR Lấy HOẶC hai toán hạng.
XOR Lấy XOR hai toán hạng.
NOT Lấy NOT toán hạng đích.
IN Đọc dữ liệu từ cổng.
28 Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
OUT Xuất dữ liệu ra cổng.
JMP Nhảy không điều kiện.
JG Nhảy nếu lớn hơn.
JZ Nhảy nếu bằng 0.
CALL Gọi chương trình con.
RET Trả về của chương trình con.
CLC Xoá cờ nhớ.
CMP So sánh hai toán hạng.
HLT Dừng CPU.
INT Thực hiện ngắt.
LOOP Lặp vòng.
NEG Chuyển thành số âm (bù 2).
29
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
OUT Xuất dữ liệu ra cổng.
JMP Nhảy không điều kiện.
JG Nhảy nếu lớn hơn.
JZ Nhảy nếu bằng 0.
CALL Gọi chương trình con.
RET Trả về của chương trình con.
CLC Xoá cờ nhớ.
CMP So sánh hai toán hạng.
HLT Dừng CPU.
INT Thực hiện ngắt.
LOOP Lặp vòng.
NEG Chuyển thành số âm.
30
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
POP Lấy dữ liệu từ stack.
PUSH Nạp dữ liệu vào stack.
ROL Quay các bit sang trái.
ROR Quay các bit sang phải.
SHL Dịch các bit sang trái.
SHR Dịch các bit sang phải.
XCHG Hoán đổi nội dung hai toán hạng.
31
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Tập Lệnh
POP Lấy dữ liệu từ stack.
PUSH Nạp dữ liệu vào stack.
ROL Quay các bit sang trái.
ROR Quay các bit sang phải.
SHL Dịch các bit sang trái.
SHR Dịch các bit sang phải.
XCHG Hoán đổi nội dung hai toán hạng.
32
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Bộ Nhớ
• Bộ nhớ (memory) máy tính được tổ chức
thành các ô (cell), mỗi ô được đánh địa chỉ
riêng biệt.
• Trước đây, các nhà sản xuất máy tính không
thống nhất với nhau về kích thước của một
đơn vị bộ nhớ. Các máy tính khác nhau sử
dụng kích thước ô nhớ khác nhau.
• Ngày nay, byte được dùng làm đơn vị của bộ
nhớ máy tính. Hầu hết các máy tính, bất chấp
chiều dài từ của nó là bao nhiêu, mỗi byte bộ
nhớ có địa chỉ duy nhất và có thể đọc/ghi giá
trị tại đó.
33
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Bộ Nhớ
• Như chúng ta đã biết, đơn vị đo lường bộ nhớ
như sau:
- 1 kilobyte (KB) = 1.024 byte (210).
- 1 megabyte (MB) = 1.048.576 byte (220).
- 1 gigabyte (GB) = 1.037.741.824 byte (230).
- 1 terabyte (TB) = 1.099.511.627.776 byte (240)
- 1 petabyte (PB) = 1.125.899.906.842.624 (250)
• Bộ nhớ được sử dụng để lưu giữ các lệnh của
chương trình và dữ liệu. Các thao tác cơ bản
với bộ nhớ là lưu/ghi và lấy/đọc/nạp.
• Có ít nhất hai thanh ghi kết hợp với mạch điều
khiển bộ nhớ để làm cho dễ dàng đọc và ghi
34
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Bộ Nhớ
dữ liệu. Đó là thanh ghi MAR (thanh ghi địa
chỉ - memory address register) và MDR
(thanh ghi dữ liệu - memory data register).
• Khi ghi dữ liệu, đầu tiên CPU chuyển giá trị
được ghi đến MDR và địa chỉ để ghi đến
MAR. Ở chu kỳ truy xuất bộ nhớ tiếp theo,
giá trị trong MDR sẽ được chép vào địa chỉ
trong MAR.
• Khi đọc dữ liệu, đầu tiên CPU chứa địa chỉ
để đọc vào MAR. Ở chu kỳ truy xuất bộ nhớ
tiếp theo, giá trị tại địa chỉ trong MAR được
chép vào MDR. Từ thanh ghi MDR, giá trị có
thể được chuyển đến các thanh ghi khác
35
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Bộ Nhớ
hoặc nơi nào đó.
• Bộ nhớ chính của máy tính được biết đến là
bộ nhớ RAM (bộ nhớ truy cập ngẫu nhiên -
random access memory). Chúng ta có thể
truy xuất bất kỳ địa chỉ nào của bộ nhớ thì
thời gian truy xuất là như nhau.
• Ngoài bộ nhớ chính, các nhà thiết kế máy
tính cũng tích hợp vào CPU một bộ nhớ có
dung lượng nhỏ, tốc độ truy cập nhanh
được gọi là bộ nhớ cache (bộ nhớ đệm).
• Bộ nhớ cache lưu giữ nội dung của dữ liệu
đã được truy cập để sau này có thể dùng lại,
nhằm làm tăng tốc độ của máy tính.
36
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
• Hầu hết dữ liệu sử dụng cho chương trình
không nằm trên máy tính. Khi dữ liệu được
xử lý xong, chúng ta thường muốn chúng
hiển thị ra màn hình hay xuất ra máy in.
• Có nhiều thiết bị nhập/xuất khác nhau:
- Giao tiếp với người: bàn phím, chuột, màn
hình.
- Máy tính trực tiếp sử dụng: đĩa, thiết bị kết
nối mạng.
• Các thiết bị nhập/xuất có tốc độ rất khác
nhau, nhưng tất cả đều chậm hơn CPU và bộ
nhớ chính.
37
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
• Trong những máy tính trước đây, CPU sẽ đợi
để nhập ký tự. Một lệnh máy giao tiếp với
bàn phím để sẵn sàng nhận ký tự và lệnh
máy kế tiếp sẽ kiểm tra xem ký tự đã nhập
chưa. Nếu ký tự chưa nhập, chương trình sẽ
lặp vòng để kiểm tra (polling). Phương pháp
này được gọi là “programmed I/O with
polling” hay “busy waiting”.
• Các máy tính ngày nay sử dụng hệ thống
ngắt (interrupt system) để tránh trường hợp
phải chờ và hệ điều hành quản lý tất cả
nhập/xuất.
• Mỗi thiết bị nhâp/xuất được kết nối với máy
38
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
tính thông qua “bộ điều khiển nhập/xuất - I/O
controller”. Bộ điều khiển nhập/xuất có gắn
bộ nhớ với dung lượng nhỏ để làm bộ đệm
(buffer) chứa dữ liệu tạm thời trong quá trình
nhận hay gởi.
• Khi chương trình yêu cầu xuất, hệ điều hành
sẽ chuyển dữ liệu đến bộ nhớ đệm của bộ
điều khiển nhập/xuất, bộ điều khiển
nhập/xuất sẽ chuyển dữ liệu đến thiết bị xuất.
Khi dữ liệu được chuyển xong, bộ điều khiển
nhập/xuất tạo một ngắt (interrupt) để báo cho
hệ điều hành biết là đã chuyển xong. Hệ điều
hành sẽ đáp lại ngắt đó bằng cách bắt đầu
thực thi thao tác xuất khác. 39
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
• Khi chương trình yêu cầu nhập, hệ điều
hành sẽ tạm dừng thực thi nó và ra lệnh cho
bộ điều khiển nhập/xuất của thiết bị bắt đầu
đọc dữ liệu. Sau đó, hệ điều hành chuyển
điều khiển của CPU đến chương trình thứ
hai để thực thi, trong khi chương trình đầu
đang đợi để nhập. Khi dữ liệu được nhập
xong, bộ điều khiển nhập/xuất sẽ sinh ra một
ngắt. Hệ điều hành sẽ đáp lại bằng cách tạm
dừng chương trình thứ hai, rồi chuyển dữ
liệu từ bộ nhớ đệm của bộ điều khiển
nhập/xuất đến chương trình đầu và tiếp tục
thực thi chương trình đầu.
40
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
• Các thiết bị nhập/xuất được phân làm 2 loại
là thiết bị ký tự (character device) và thiết bị
khối (block device):
1. Thiết bị ký tự: giao tiếp với bên ngoài từng
byte, các byte này không có địa chỉ. Nghĩa
là chỉ có thể truy xuất dữ liệu theo dạng
tuần tự. Đa số các thiết bị nhập/xuất dùng
với máy tính thuộc loại này như bàn phím,
chuột, card mạng, máy quét, máy in,
2. Thiết bị khối: giao tiếp với bên ngoài từng
khối dữ liệu, mỗi khối có địa chỉ cố định và
độc lập. Các thiết bị loại này như CD-ROM,
âm thanh, các thiết bị hiển thị,
41
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Nhập/Xuất
• Các thiết bị ký tự sẽ sinh ra ngắt cho mỗi ký
tự được truyền đi, các thiết bị khối sẽ sinh ra
ngắt chỉ khi toàn bộ khối đó được truyền đi.
• Hầu hết các máy tính ngày nay đều có bộ
điều khiển truy xuất bộ nhớ trực tiếp (direct
memory access - DMA) để dùng với thiết bị
khối.
• Bộ điều khiển DMA dùng để truy xuất trực
tiếp bộ nhớ và chia sẻ công việc truy xuất bộ
nhớ với CPU. DMA truyền dữ liệu trực tiếp
giữa bộ đệm của bộ điều khiển nhập/xuất với
bộ nhớ chính, nó không yêu cầu bất cứ phục
vụ nào từ CPU.
42
Các Vấn Đề Cơ Sở của KHMT ThS. GVC Tô Oai Hùng
Các file đính kèm theo tài liệu này:
- khoa_hoc_may_tinh_c3_1947.pdf