Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng

lỜI NÓI ĐẦU .1

DANH SÁCH CÁC TỪ VIẾT TẮT .2

Chƣơng 1 . GIỚI THIỆU HỆ THỐNG SỐ .3

1.1. Các hệ đếm.3

1.1.1. Hệ thập phân (decimal) .3

1.1.2. Hệ nhị phân (binary) .3

1.1.3. Hệ thập lục phân (hexadecimal).5

1.2. Các phép toán

pdf 88 trang phuongnguyen 8740
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng

Bài giảng Cấu trúc máy tính và giao diện - Nguyễn Phạm Hoàng Dũng
TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG 
KHOA KỸ THUẬT – CÔNG NGHỆ 
BÀI GIẢNG 
CẤU TRÚC MÁY TÍNH 
VÀ GIAO DIỆN 
Bậc học: Cao đẳng 
 Giảng viên: Nguyễn Phạm Hoàng Dũng 
 Bộ môn: Điện – Điện tử 
 Khoa: Kỹ thuật – Công nghệ 
Quảng Ngãi, tháng 12/2015 
TRƢỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG 
KHOA KỸ THUẬT – CÔNG NGHỆ 
BÀI GIẢNG 
CẤU TRÚC MÁY TÍNH 
VÀ GIAO DIỆN 
Bậc học: Cao đẳng 
(Số tiết: 30) 
 Giảng viên: Nguyễn Phạm Hoàng Dũng 
 Bộ môn: Điện – Điện tử 
 Khoa: Kỹ thuật – Công nghệ 
Quảng Ngãi, tháng 12/2015
MỤC LỤC 
LỜI NÓI ĐẦU ........................................................................................................... 1 
DANH SÁCH CÁC TỪ VIẾT TẮT ........................................................................ 2 
Chƣơng 1 . GIỚI THIỆU HỆ THỐNG SỐ ............................................................ 3 
1.1. Các hệ đếm ....................................................................................................... 3 
1.1.1. Hệ thập phân (decimal) ............................................................................. 3 
1.1.2. Hệ nhị phân (binary) ................................................................................. 3 
1.1.3. Hệ thập lục phân (hexadecimal) ................................................................ 5 
1.2. Các phép toán ................................................................................................... 7 
1.2.1. Các phép toán logic ................................................................................... 7 
1.2.2. Các phép toán số học ................................................................................ 8 
1.3. Biểu diễn số .................................................................................................... 11 
1.4. Biểu diễn ký tự ............................................................................................... 14 
Chƣơng 2 . GIỚI THIỆU CÁC HỆ MÁY TÍNH ................................................. 17 
2.1. Các thế hệ máy tính ........................................................................................ 17 
2.1.1. Thế hệ zero .............................................................................................. 17 
2.1.2. Thế hệ đầu tiên (1945 – 1953) ................................................................ 18 
2.1.3. Thế hệ thứ hai (1954 – 1965) .................................................................. 19 
2.1.4. Thế hệ thứ ba (1965 – 1980) ................................................................... 20 
2.1.5. Thế hệ thứ tư (1980 đến nay) .................................................................. 20 
2.2. Chức năng máy tính ....................................................................................... 21 
2.3. Cấu trúc và tổ chức máy tính ......................................................................... 22 
2.4. Phân loại ......................................................................................................... 23 
2.4.1. Phân loại theo cấu trúc tập lệnh .............................................................. 23 
2.4.2. Phân loại theo khả năng xử lý của máy tính ........................................... 25 
2.5. Máy tính Von Neumann ................................................................................. 26 
Chƣơng 3 . CẤU TRÚC TỔNG QUÁT ................................................................ 28 
3.1. Thùng máy – nguồn ....................................................................................... 28 
3.2. Mainboard ...................................................................................................... 30 
3.3. CPU ................................................................................................................ 33 
3.4. RAM ............................................................................................................... 36 
3.5. BIOS VÀ CMOS RAM ................................................................................. 39 
3.6. Interfaces ........................................................................................................ 40 
3.7. Chipset ............................................................................................................ 43 
3.8. Ổ đĩa cứng ...................................................................................................... 44 
3.9. Ổ đĩa quang .................................................................................................... 48 
3.10. Màn hình ...................................................................................................... 49 
Chƣơng 4 . CẤU TRÚC BÊN TRONG MÁY TÍNH ........................................... 50 
4.1. Vi xử lý ........................................................................................................... 50 
4.1.1. Kiến trúc .................................................................................................. 50 
4.1.2. Cấu trúc pipeline ..................................................................................... 51 
4.1.3. Kỹ thuật superscalar ................................................................................ 54 
4.1.4. Thanh ghi ................................................................................................ 54 
4.1.5. Tập lệnh ................................................................................................... 56 
4.2. Bộ nhớ ............................................................................................................ 58 
4.2.1. Phân loại bộ nhớ ...................................................................................... 59 
4.2.2. Cấu trúc cơ bản ....................................................................................... 62 
4.3. Hệ thống kết nối (bus) .................................................................................... 63 
4.3.1. Phân loại .................................................................................................. 63 
4.3.2. Chức năng ............................................................................................... 65 
4.4. Hệ thống cache ............................................................................................... 68 
4.4.1. Giới thiệu ................................................................................................. 68 
4.4.2. Chức năng ............................................................................................... 69 
4.4.3. Cache nhiều tầng ..................................................................................... 70 
4.4.4. Phân loại .................................................................................................. 71 
Chƣơng 5 . HỆ THỐNG XUẤT NHẬP ................................................................ 73 
5.1. Hệ thống ngắt ................................................................................................. 74 
5.2. Truy cập trực tiếp bộ nhớ ............................................................................... 77 
5.3. Thiết bị bên ngoài ........................................................................................... 80 
5.4. Các ngoại vi .................................................................................................... 82 
TÀI LIỆU THAM KHẢO ...................................................................................... 84 
 1 
LỜI NÓI ĐẦU 
Bài giảng “Cấu trúc máy tính và giao diện” được biên soạn dùng làm tài liệu 
học tập cho sinh viên bậc cao đẳng chính qui ngành công nghệ kỹ thuật Điện – Điện 
tử trường Đại học Phạm Văn Đồng. Bài giảng bao gồm 5 chương, cung cấp cho 
sinh viên những kiến thức cơ bản về quá trình phát triển của máy vi tính, cấu trúc cơ 
bản của một máy vi tính hiện đại, các chuẩn và thông số kỹ thuật của các thành 
phần tạo nên một chiếc máy tính, một số kỹ thuật xử lý nhằm cải thiện tốc độ xử lý 
của máy tính theo thời gian, một số chi tiết của hệ thống máy tính như: bộ xử lý 
trung tâm, bộ nhớ, cache,  Bài giảng này cũng góp phần giúp sinh viên cập nhật 
những công nghệ mới thông qua các ví dụ thực tế. 
Nội dung chi tiết của bài giảng như sau: 
- Chương 1: Giới thiệu hệ thống số 
- Chương 2: Giới thiệu các hệ máy tính 
- Chương 3: Cấu trúc tổng quát 
- Chương 4: Cấu trúc bên trong máy tính 
- Chương 5: Hệ thống xuất nhập 
Trong quá trình biên soạn không thể tránh khỏi những thiếu sót, rất mong 
nhận được sự góp ý của bạn đọc để bài giảng được hoàn thiện hơn. Mọi ý kiến đóng 
góp xin gửi về địa chỉ: Bộ môn Điện – Điện tử, Khoa Kỹ thuật – Công nghệ, 
Trường Đại học Phạm Văn Đồng. 
Tác giả xin chân thành cảm ơn! 
 2 
DANH SÁCH CÁC TỪ VIẾT TẮT 
Từ viết tắt Từ đầy đủ Ý nghĩa 
CPU Central Processing Unit Đơn vị xử lý trung tâm 
MSB Most Significant Bit Bit có trọng số lớn nhất 
LSB Least Significant Bit Bit có trọng số thấp nhất 
ASCII 
American Standard Code for 
Information Interchange 
Chuẩn mã trao đổi thông tin 
Hoa Kỳ 
VLSI Very Large Scale Integration Tích hợp cỡ lớn 
PC Personal Computer Máy tính cá nhân 
CISC 
Complex Instruction Set 
Computing 
Máy tính có tập lệnh phức tạp 
RISC 
Reduced Instruction Set 
Computing 
Máy tính có tập lệnh đơn giản 
RAM Random Access Memory 
Bộ nhớ truy cập dữ liệu ngẫu 
nhiên 
SRAM Static Random Access Memory Bộ nhớ RAM tĩnh 
DRAM Dynamic Random Access Memory Bộ nhớ RAM động 
SDRAM 
Synchronous Dynamic Random 
Access Memory 
Bộ nhớ DRAM đồng bộ 
DDR Double Data Rate Gấp đôi tốc độ dữ liệu 
ROM Real-Only Memory Bộ nhớ chỉ đọc 
BIOS Basic Input/Output System Hệ thống xuất nhập cơ bản 
CMOS 
Complementary Metal-Oxide-
Semiconductor 
Bộ nhớ RAM lưu trữ thông tin 
cấu hình máy tính 
HDD Hard Disk Drive Ổ đĩa cứng cơ truyền thống 
SSD Solid-State Drive Ổ đĩa cứng thể rắn 
ALU Arithmetic Logic Unit Đơn vị tính toán số học 
DMA Direct Memory Access 
Giao thức truy cập trực tiếp bộ 
nhớ 
DMAC Direct Memory Access Controller 
Bộ điều khiển truy cập trực 
tiếp bộ nhớ 
 3 
Chƣơng 1. GIỚI THIỆU HỆ THỐNG SỐ 
Một hệ thống máy tính bao gồm rất nhiều thành phần, trong đó bộ xử lý 
trung tâm (hay còn gọi là CPU) chính là bộ não của cả hệ thống. CPU sẽ tiếp nhận 
và xử lý mọi thông tin trong hệ thống. Thông tin hay còn được gọi là dữ liệu trong 
một hệ thống máy tính được biểu diễn dưới dạng số nhị phân. Hệ số nhị phân còn 
gọi là hệ cơ số hai chỉ bao gồm hai chữ số 0 và 1. Trong máy tính nói riêng và trong 
các mạch điện tử số nói chung, các giá trị này được mã hóa dưới dạng các tín hiệu 
điện với các giá trị điện áp hoặc dòng điện tương ứng khác nhau. Việc tính toán, xử 
lý dữ liệu nhị phân trong máy tính cũng được thực hiện tương tự như trong toán 
học. 
1.1. Các hệ đếm 
1.1.1. Hệ thập phân (decimal) 
Hệ thập phân là hệ cơ số rất quen thuộc đối với chúng ta, đây là hệ cơ số 
được sử dụng trong cuộc sống hàng ngày để biểu diễn các giá trị số, còn được gọi là 
hệ cơ số mười hay hệ mười. 
Hệ thập phân sử dụng 10 chữ số để biểu diễn hệ thống số. Mười chữ số này 
là: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Số dương và số âm được biểu diễn bằng dấu “+” và “-“ 
trước mỗi số. Để phân biệt với hệ cơ số khác, ta thường thêm chữ cái „D‟ vào phía 
cuối để chỉ ra rằng đó là một số trong hệ thập phân, ta cũng có thể bỏ „D‟ đi mà vẫn 
ngầm hiểu đó là số thuộc hệ thập phân. 
1.1.2. Hệ nhị phân (binary) 
Cũng như hệ thập phân, nhị phân cũng là một hệ thống số trong đó các giá trị 
số được biểu diễn chỉ bằng hai chữ số 0 và 1. Để phân biệt với các hệ cơ số khác, ta 
thường thêm chữ cái „B‟ vào phía cuối số nhị phân. 
Ví dụ: 10B, 11B, 100B, 1100B, 10100110B 
Mỗi giá trị trong hệ nhị phân tương ứng với một giá trị trong hệ thập phân và 
ngược lại. Việc chuyển đổi qua lại giữa các giá trị trong hệ thập phân và hệ nhị phân 
được thực hiện như sau. 
+ Chuyển một số từ hệ nhị phân sang hệ thập phân 
 4 
Việc chuyển đổi từ số nhị phân sang số thập phân được thực hiện bằng cách 
tính tổng các tích giữa các hệ số của số nhị phân với các trọng số 2i tương ứng. 
Giả sử ta có số nhị phân như sau: bn bn-1b1b0B, trong đó bi (i = n,0 ) là các 
hệ số của số nhị phân, có thể nhận một trong hai giá trị 0 hoặc 1. Khi đó 2i sẽ là 
trọng số tương ứng của hệ số bi. Số nhị phân này được chuyển đổi sang hệ thập 
phân bằng công thức sau: 
bn*2
n
 + bn-1*2
n-1
 +  + b1*2
1
 + b0*2
0
 Ví dụ: ta có số nhị phân: 1011B 
3 2 1 0 
1 0 1 1 
b3 b2 b1 b0 
 Số thập phân tương ứng sẽ là: 
b3*2
3
 + b2*2
2
 + b1*2
1
 + b0*2
0
 = 1*2
3
 + 0*2
2
 + 1*2
1
 + 1*2
0
 = 11 
 Như vậy, số 1011B sẽ tương ứng với số 11 trong hệ thập phân. 
 Ví dụ: số nhị phân: 110011B 
1*2
5
 + 1*2
4
 + 0*2
3
 + 0*2
2
 + 1*2
1
 + 1*2
0
 = 32 + 16 + 0 + 0 + 2 +1 = 51 
 Như vậy, số 110011B tương ứng với số 51 trong hệ thập phân. 
+ Chuyển một số từ hệ thập phân sang hệ nhị phân 
 Việc chuyển đổi một số từ hệ thập phân sang hệ nhị phân được thực hiện 
bằng cách lấy số cần đổi chia cho 2 và ghi nhớ phần dư, tiếp theo lấy thương của 
phép chia trước đó chia cho 2 và ghi nhớ phần dư. Làm như vậy cho tới khi được 
thương bằng 0. Đảo ngược thứ tự dãy số dư ta sẽ được các chữ số của hệ nhị phân 
cần tìm. 
Ví dụ: hình 1.1 mô tả cách đổi số 50 sang hệ nhị phân 
Số dư (số gạch dưới) được sắp xếp theo chiều mũi tên, như vậy 50 = 
110010B 
 5 
Hình 1.1. Đổi một số thập phân sang hệ nhị phân 
 Hệ nhị phân là hệ cơ số được sử dụng trong máy tính nói riêng và trong các 
mạch điện tử số nói chung. Các giá trị 0 và 1 được hiểu là các mức điện áp (hoặc 
dòng điện) khác nhau trong mạch (một số ví dụ như đã đề cập ở phần trên). Trong 
thế giới máy tính, các số 0 và 1 được gọi là các bit. Một nhóm 4 bit sẽ tạo thành 1 
nibble, nhóm 8 bit sẽ tạo thành một byte, nhóm 16 bit sẽ tạo thành một word. Bit 
đầu tiên bên trái trong chuỗi bit được gọi là bit MSB, bit cuối cùng bên phải trong 
chuỗi bit được gọi là bit LSB. 
Ví dụ: 
+ Bit: 0B, 1B 
+ Nibble: 1011B, 1110B, 1000B,  
+ Byte: 01011110B, 11110000B, 11000001B,  
+ Word: 1000010111100001B, 1111000010101100B,  
MSB LSB 
1 1 0 1 0 1 0 0 
 Từ các ví dụ trên ta có thể thấy, một nibble có thể biểu diễn được số lớn nhất 
là 15, một byte có thể biểu diễn được số lớn nhất là 255, một word có thể biểu diễn 
số lớn nhất là 65535. Để biểu diễn những số lớn hơn ta phải dùng những chuỗi bit 
dài hơn, điều này rất bất tiện cho con người trong việc ghi chép, tính toán trên giấy. 
Để khắc phục nhược điểm trên người ta thường sử dụng hệ thập lục phân. 
1.1.3. Hệ thập lục phân (hexadecimal) 
Hệ thập lục phân hay còn gọi là hệ cơ số 16, cũng là một hệ thống số trong 
đó các giá trị số được biểu diễn bằng các chữ số từ 0 đến 9 và các chữ cái từ A đến 
 6 
F, tương ứng với giá trị thập phân từ 0 đến 15. Để phân biệt với các hệ cơ số khác, 
ta thương thêm chữ cái „H‟ vào phía cuối số thập lục phân. 
 Ví dụ: 19H, AB5H, 2F0CH, E104DH,  
 Như đã đề cập ở trên, hệ thập lục phân ra đời nhằm khắc phục nhược điểm 
của số trong hệ nhị phân, đó là việc sử dụng một chuỗi ...  ngắt được lập trình để thực hiện các thao tác thích hợp 
khi có sự kiện ngắt bất đồng bộ xảy ra. Thông thường, các ngoại vi khác nhau sẽ có 
các chương trình phục vụ ngắt khác nhau. Việc xác định đúng chương trình ngắt 
phục vụ cho ngoại vi đang có yêu cầu ngắt rất quan trọng. Sau đây là một số kỹ 
thuật để thực hiện công việc này. 
 76 
 Dò chương trình ngắt bằng phần mềm: trong một số thiết kế, vi xử lý sẽ 
chuyển đến thực hiện lệnh trong chương trình ở một địa chỉ cố định khi có yêu cầu 
ngắt. Sau đó, chương trình phần mềm phải có nhiệm vụ dò xem ngoại vi nào đang 
có yêu cầu ngắt bằng cách đọc thanh ghi trạng thái của các ngoại vi. Sau khi xác 
định được ngoại vi có yêu cầu ngắt, vi xử lý sẽ chuyển đến thực thi chương trình 
ngắt thích hợp cho ngoại vi đó. 
 Phương pháp dò chương trình ngắt bằng phần mềm có một nhược điểm, đó 
là: phải tốn thời gian dò tìm chương trình ngắt, làm chậm quá trình xử lý ngắt. Để 
khắc phục nhược điểm này, người ta sử dụng một phương pháp khác, đó là daisy 
chain (còn được gọi dò ngắt bằng phần cứng). Khi nhận được yêu cầu ngắt, vi xử lý 
sẽ gởi lại một tín hiệu xác nhận ngắt. Tín hiệu này được đưa lần lượt qua từng ngoại 
vi cho đến khi gặp ngoại vi đang có yêu cầu ngắt. Sau đó, ngoại vi đưa một word 
lên bus dữ liệu. Word này còn được gọi là vector ngắt, chứa nhiều thông tin, trong 
đó bao gồm cả địa chỉ của chương trình ngắt. Vi xử lý đọc vector ngắt, và chuyển 
đến chương trình ngắt tương ứng bắt đầu từ địa chỉ chứa trong vector ngắt này. 
Hệ thống máy tính có rất nhiều ngoại vi, mỗi ngoại vi đều có thể tạo yêu cầu 
ngắt để truyền dữ liệu. Trong trường hợp có nhiều yêu cầu ngắt xuất hiện cùng một 
lúc, thông thường yêu cầu ngắt nào có tính cấp thiết hơn sẽ được đáp ứng trước. 
Việc phân xử để xác định thứ tự đáp ứng ngắt được thực hiện bằng bộ điều khiển 
ngắt. Tùy theo đặc điểm của từng hệ thống, mức độ ưu tiên ngắt của các ngoại vi có 
thể khác nhau, nhưng nhìn chung các ngoại vi sau thường có ưu tiên ngắt cao hơn 
so với các ngoại vi còn lại, đó là: bộ xử lý đồ họa, điều khiển bộ nhớ, điều khiển 
PCIe, ethernet. Việc quy định mức độ ưu tiên ngắt của các ngoại vi thường do 
người thiết kế hệ thống quyết định. Bộ điều khiển ngắt được lập trình để phân xử 
ngắt đúng theo những quy định này. 
Lấy ví dụ với vi xử lý 8086 của Intel, ngõ vào yêu cầu ngắt có hai chân là 
INTR và NMI. Chân INTR thường được kết nối với ngõ ra INT của bộ điều khiển 
ngắt 8259A. Ngoài chức năng phân xử ngắt, 8259A còn được sử dụng để mở rộng 
số lượng ngõ vào yêu cầu ngắt, đáp ứng cho các hệ thống có nhiều ngoại vi. Các 
yêu cầu ngắt vào chân INTR (thông qua 8259A) là các ngắt có thể che được, nghĩa 
 77 
là có thể được hoặc không được đáp ứng. Các yêu cầu ngắt vào chân NMI là các 
yêu cầu không che được, nghĩa là các yêu cầu này luôn được đáp ứng. Do đó, chân 
NMI thường được sử dụng cho các yêu cầu ngắt quan trọng liên quan đến lỗi phần 
cứng như: lỗi pin, lỗi bộ nhớ,  
5.2. Truy cập trực tiếp bộ nhớ 
Kỹ thuật truyền dữ liệu sử dụng ngắt có khả năng đáp ứng nhanh nhưng việc 
truyền dữ liệu vẫn phải được thực hiện thông qua vi xử lý. Nghĩa là, trong chương 
trình ngắt, vi xử lý phải đọc dữ liệu từ ngoại vi muốn truyền dữ liệu (còn gọi là 
nguồn) và ghi dữ liệu xuống ngoại vi cần nhận dữ liệu (còn gọi là đích) như hình 
5.3. Việc này gần như ít ảnh hưởng đến tốc độ chung của hệ thống nếu dữ liệu cần 
truyền có dung lượng nhỏ. Tuy nhiên, khi cần truyền khối dữ liệu có dung lượng 
lớn, với nguồn hoặc đích là bộ nhớ hoặc thiết bị lưu trữ, kỹ thuật ngắt không còn 
thích hợp do vi xử lý phải truyền và nhận lượng lớn dữ liệu cùng với việc có thể 
truy cập đến các bộ nhớ hoặc thiết bị lưu trữ có tốc độ thấp sẽ tiêu tốn rất nhiều thời 
gian của vi xử lý, ảnh hưởng đến tốc độ chung của cả hệ thống. 
Hình 5.3. Truyền dữ liệu thông qua vi xử lý 
 Để giải quyết những hạn chế của kỹ thuật ngắt, người ta thiết kế thêm một 
phần cứng để hỗ trợ việc truyền dữ liệu không cần thông qua vi xử lý. Kỹ thuật này 
được gọi là truy cập trực tiếp bộ nhớ (còn gọi là DMA). Phần cứng được thiết kế 
thêm gọi là bộ điều khiển DMA (còn gọi là DMAC). DMAC được kết nối trực tiếp 
với bus hệ thống. Chức năng chính của bộ điều khiển DMA là chuyển dữ liệu giữa 
các ngoại vi, thiết bị lưu trữ và bộ nhớ trong hệ thống như mô tả trong hình 5.4. Bộ 
DMAC thay thế vai trò của vi xử lý trong kỹ thuật sử dụng ngắt. Do đó, DMAC có 
quyền chiếm bus khi cần truyền dữ liệu. Vi xử lý buộc phải nhường quyền kiểm 
soát bus cho DMAC cho đến khi quá trình truyền dữ liệu hoàn tất. 
 Bộ điều khiển DMA hoạt động dựa trên một số thông tin cơ bản sau: 
 Địa chỉ nguồn: địa chỉ bắt đầu của ngoại vi, thiết bị lưu trữ hoặc bộ nhớ chứa 
dữ liệu cần phải truyền đi 
 78 
 Địa chỉ đích: địa chỉ bắt đầu của ngoại vi, thiết bị lưu trữ hoặc bộ nhớ dùng 
để lưu dữ liệu được truyền đến 
 Cách thức đọc/ghi dữ liệu ở nguồn/đích: dữ liệu được truy xuất theo địa chỉ 
tăng dần, giảm dần hoặc không đổi 
 Số lượng dữ liệu: dung lượng dữ liệu (thường tính theo byte) cần được truyền 
đi 
Hình 5.4. Truyền dữ liệu thông qua DMAC 
Dữ liệu truyền theo kỹ thuật DMA thường là các khối gồm nhiều byte dữ liệu 
được lưu trữ trong các địa chỉ kế tiếp nhau hoặc không đổi (đối với bộ nhớ FIFO). 
Như hình 5.5, ta có thể xác định các khối dữ liệu gồm (n+1) byte, địa chỉ đầu là a, 
địa chỉ tăng dần hoặc giảm dần. Do đó, DMAC cần phải có các thông tin như trên 
để truyền đi một khối dữ liệu. 
Hình 5.5. Minh họa một cách xác định khối dữ liệu trong kỹ thuật DMA 
Các thông tin này được lập trình cho DMAC thông qua vi xử lý. Sau khi có 
lệnh DMAC sẽ thực hiện truyền dữ liệu trực tiếp mà không cần phải thông qua vi 
xử lý. Trong thời gian truyền dữ liệu qua DMAC, vi xử lý có thể thực hiện các công 
việc khác. Khi hoàn thành, bộ điều khiển DMA sẽ gởi một tín hiệu ngắt để thông 
báo và trả lại quyền kiểm soát bus hệ thống cho vi xử lý. Như vậy, vi xử lý chỉ có 
chức năng kiểm soát lúc bắt đầu và lúc kết thúc việc truyền dữ liệu. 
 79 
Hiện nay, nhu cầu trao đổi dữ liệu trong hệ thống rất lớn, đặc biệt là giữa các 
thành phần như: bộ nhớ USB, ổ đĩa cứng, mạng máy tính,  Do đó, các ngoại vi 
như: điều khiển USB, SATA, Ethernet,  cũng được trang bị các bộ điều khiển 
DMA riêng. 
Sau đây, ta lấy ví dụ bộ điều khiển DMA tương thích với các dòng vi xử lý 
Intel họ 8086, có tên là 8237A. Hình 5.6 mô tả sơ đồ kết nối 8237A với vi xử lý. 
Giả sử ổ đĩa cứng (disk) muốn nhận dữ liệu từ bộ nhớ (memory) thông qua DMA. 
Quá trình đồng bộ (bắt tay) để truyền dữ liệu sẽ được thực hiện như sau: 
 Ngoại vi (trong trường hợp này là bộ điều khiển ổ đĩa) sẽ gởi một yêu cầu sử 
dụng DMA đến 8237A bằng cách đưa tín hiệu DREQ lên mức cao. 
 Chip 8237A sẽ kéo tín hiệu HRQ (kết nối với chân HOLD của vi xử lý) lên 
mức cao, báo hiệu cho vi xử lý biết nó cần sử dụng bus để truyền dữ liệu 
 Vi xử lý sẽ hoàn thành chu kỳ bus hiện tại và kéo chân HLDA lên mức cao 
để báo cho 8237A biết nó đã có thể sử dụng bus để truyền dữ liệu. Trong lúc 8237A 
thực hiện việc truyền dữ liệu, chân HOLD phải được giữ ở mức cao. 
 Chip 8237A sẽ tích cực tín hiệu DACK để báo hiệu cho ngoại vi có thể thực 
hiện việc truyền dữ liệu. 
 Chip 8237A bắt đầu truyền dữ liệu bằng cách đặt địa chỉ của byte đầu tiên 
lên bus địa chỉ và tích cực chân MEMR để đọc dữ liệu từ bộ nhớ và đặt lên bus dữ 
liệu. Sau đó, 8237A sẽ tích cực chân IOW để ghi dữ liệu từ bus dữ liệu xuống ngoại 
vi. Chip 8237A, sau đó, sẽ giảm bộ đếm dữ liệu, tăng (hoặc giảm tùy theo cách lập 
trình) con trỏ địa chỉ và lặp lại quá trình như trên cho đến khi bộ đếm dữ liệu về 0, 
hoàn thành quá trình truyền dữ liệu. 
 Chip 8237A đưa chân HRQ xuống mức thấp, thông báo cho vi xử lý lấy lại 
quyền điều khiển bus, đồng thời gởi cho vi xử lý một tín hiệu ngắt báo hiệu việc 
truyền dữ liệu đã hoàn tất. 
 80 
Hình 5.6. Kết nối 8237A với vi xử lý 
Mỗi kỹ thuật truy xuất dữ liệu đều có những ưu điểm riêng tùy thuộc vào 
điều kiện hoạt động cụ thể của hệ thống. Do đó, người ta thường sử dụng kết hợp 
các kỹ thuật truy xuất dữ liệu này khi lập trình hoạt động cho vi xử lý. 
5.3. Thiết bị bên ngoài 
Thiết bị bên ngoài là các thành phần giúp máy tính giao tiếp với môi trường 
bên ngoài. Như đã đề cập trong phần đầu của chương, các thiết bị này còn được gọi 
là các thiết bị ngoại vi, giao tiếp với máy tính thông qua các bộ điều khiển I/O, còn 
được gọi là ngoại vi của hệ thống máy tính. Các thiết bị bên ngoài có thể được chia 
thành ba nhóm lớn: 
 Các thiết bị nhập dữ liệu 
 Các thiết bị xuất dữ liệu 
 Các thiết bị lưu trữ 
Các thiết bị ngoại vi phổ biến và quen thuộc nhất đối với con người có lẽ là: 
chuột, bàn phím, màn hình máy tính và ổ đĩa cứng. 
Chuột và bàn phím máy tính là các thiết bị nhập dữ liệu, thường kết nối với 
máy tính thông qua cổng PS/2. Ngày nay, hầu hết các cổng PS/2 đã được thay thế 
bằng cổng USB. Dữ liệu truyền qua bàn phím là các ký tự, thường được mã hóa 
dưới dạng chuỗi 7 hoặc 8 bit. Hiện nay, phiên bản 7 bit, tương ứng với 128 ký tự 
được sử dụng phổ biến. Các ký tự bao gồm hai loại: ký tự in được và ký tự điều 
 81 
khiển. Ký tự in được là các ký tự chữ, số thông thường và một số ký tự đặc biệt 
khác có thể hiển thị trên màn hình hoặc có thể in được trên giấy (thông qua máy in). 
Các ký tự điều khiển có chức năng điều khiển việc hiển thị các ký tự trên màn hình. 
Ví dụ như ký tự xuống dòng (khi ta nhấn Enter), có chức năng điều khiển con trỏ 
chuyển sang dòng mới. Các phím được bố trí theo ma trận, việc xác định chuỗi bit 
biểu diễn cho một ký tự khi ta nhấn phím được gọi là quét phím. Quá trình này 
được một chip điều khiển quét phím chuyên dụng thực hiện. Chuỗi bit này được 
truyền nối tiếp đến máy tính thông qua cổng PS/2. Dữ liệu truyền qua chuột máy 
tính thường là các thông tin về tọa độ của chuột theo hai trục X và Y và thông tin về 
trạng thái các nút nhấn. 
Các thông tin được truyền từ chuột và bàn phím thường được tiếp nhận và 
hiển thị trên màn hình. Do đó, màn hình máy tính là thiết bị xuất dữ liệu. Ngày nay, 
các màn hình CRT truyền thống gần như đã được thay thế bằng các màn hình LCD 
nhỏ gọn hơn rất nhiều. 
Ngày nay, cùng với màn hình, máy in cũng là một thiết bị xuất dữ liệu phổ 
biến trong hệ thống máy tính. Trên thị trường hiện nay có nhiều loại máy in, nội 
dung môn học này chỉ đề cập đến hai loại máy in phổ biến được trang bị trong văn 
phòng và các hộ gia đình, đó là máy in phun và máy in laser. 
 Bộ phận quan trọng nhất của máy in laser là một ống kim loại hình trụ, rỗng, 
được phủ một lớp vật liệu đặc biệt, có khả năng thay đổi điện tích khi ánh sáng laser 
chiếu vào, gọi là trống (drum). Nguyên lý chung của các máy in laser là sử dụng 
một hệ thống quang học lái tia laser khắc các hình ảnh cần in lên mặt trống. Sau đó, 
trống được lăn qua giấy để in những hình ảnh này lên giấy. Mực máy in laser có 
dạng bột, được sấy nóng chảy để bám vào giấy. Do đó, các máy in laser có thể in 
được trên nhiều loại giấy mà vẫn đảm bảo được chất lượng. 
 Các máy in phun sử dụng một đầu phun dùng để phun mực trực tiếp lên giấy. 
Mực máy in phun có dạng lỏng nên có hai khuyết điểm như sau: bản in thường bị 
lem và hình ảnh thường phai màu theo thời gian. Do đó, ta phải sử dụng đúng loại 
giấy cho máy in phun, các loại giấy này thường có đặc điểm chung là không dễ bị 
 82 
thấm nước. Để khắc phục khuyết điểm thứ hai, người ta thường sử dụng các loại 
mực chất lượng cao có pha chế với chất chống bay màu. 
Hiện nay, các máy in phun thường được sử dụng để in màu. Chất lượng hình 
ảnh màu của các máy in phun thường cao hơn, giá thành của máy in phun cũng rẻ 
hơn so với máy in laser, tuy nhiên chi phí để in một trang giấy bằng máy in phun 
đắt hơn nhiều lần so với máy in laser. Do đó, tùy vào mục đích sử dụng mà ta nên 
trang bị loại máy in cho phù hợp. 
Ổ đĩa cứng truyền thống là thiết bị lưu trữ dữ liệu dưới dạng từ tính. Các tín 
hiệu từ tính được chuyển đổi thành các bit dữ liệu bằng một bộ chuyển đổi chuyên 
dụng trước khi truyền đến máy tính. Chuẩn giao tiếp truyền thống giữa ổ đĩa cứng 
và máy tính là IDE, thực hiện việc truyền dữ liệu song song. Tuy nhiên, chuẩn này 
bị hạn chế về tốc độ truyền dữ liệu, nên hiện nay, chuẩn SATA truyền dữ liệu nối 
tiếp, có tốc độ cao và nhỏ gọn hơn được sử dụng phổ biến hơn. 
5.4. Các ngoại vi 
Như đã đề cập trong phần đầu của chương, ngoại vi của vi xử lý là các khối 
điều khiển I/O. Ngoại vi có một số chức năng chính như sau. 
 Điều khiển và định thì 
 Giao tiếp với vi xử lý 
 Giao tiếp với thiết bị bên ngoài 
 Đệm dữ liệu 
 Phát hiện lỗi 
Trong quá trình hoạt động, vi xử lý phải giao tiếp với rất nhiều thiết bị bên 
ngoài. Các nguồn tài nguyên của hệ thống như bộ nhớ chính hay bus hệ thống được 
chia sẻ để có thể hoạt động với nhiều ngoại vi. Vì vậy, các ngoại vi yêu cầu phải có 
chức năng điều khiển và định thì để có thể điều khiển các thiết bị bên ngoài hoạt 
động đồng bộ hoạt động đồng bộ trong hệ thống. 
Từ hình 5.1, ta có thể thấy, các ngoại vi có hai giao diện chính. 
 Giao tiếp bus: dùng để giao tiếp, trao đổi dữ liệu với vi xử lý và các thành 
phần khác trong hệ thống thông qua bus. Các tín hiệu trong giao diện này phải 
 83 
tương thích với bus, do đó, thường giống nhau cho các ngoại vi kết nối đến cùng 
một bus. 
 Giao tiếp với các thiết bị bên ngoài: dùng để kết nối và trao đổi dữ liệu với 
các thiết bị bên ngoài. Các tín hiệu trong giao diện này hoàn toàn khác nhau giữa 
các ngoại vi do thiết bị bên ngoài có các chuẩn giao tiếp khác nhau. 
Tốc độ truy xuất dữ liệu của các ngoại vi và bộ nhớ không giống nhau, do đó 
chức năng đệm dữ liệu là cần thiết để đảm bảo việc truyền dữ liệu giữa các thành 
phần trong hệ thống diễn ra một cách đồng bộ. 
Hầu hết các ngoại vi còn có chức năng phát hiện lỗi trong quá trình truyền dữ 
liệu.Khi phát hiện lỗi trong dữ liệu nhận được, ngoại vi thường thông báo lỗi này 
cho vi xử lý để có hướng xử lý cho phù hợp. Sử dụng parity bit là một ví dụ đơn 
giản về việc dùng thêm một bit để phát hiện lỗi trong các giao thức truyền dữ liệu 
nối tiếp. 
CÂU HỎI ÔN TẬP CHƢƠNG 5 
1. Mô tả hoạt động của vi xử lý khi nhận được yêu cầu ngắt từ ngoại vi. Vì sao phải 
lưu lại trạng thái các thanh ghi trước khi thực hiện chương trình ngắt? 
2. Kỹ thuật DMA là gì? Trình bày ưu điểm của việc truy xuất dữ liệu bằng kỹ thuật 
DMA so với kỹ thuật ngắt. 
3. Trình bày quá trình xảy ra trong hệ thống khi có một yêu cầu truy xuất dữ liệu 
bằng kỹ thuật DMA. 
4. Thiết bị ngoại vi được kết nối với máy tính thông qua thành phần nào trong hệ 
thống. Mô tả đặc điểm chính của các thành phần này. 
 84 
TÀI LIỆU THAM KHẢO 
[1]. Tống Văn On, Giáo trình Cấu trúc máy tính, Nhà xuất bản Lao động – Xã hội, 
2007. 
[2]. Paul A.Carter, PC Assembly Language, 2006. 
[3]. William Stallings, Computer Organization and Architecture (Ninth Edition), 
Prentice Hall, 2012 
[4]. Linda Null, Julia Lobur, The Essentials of Computer Organization and 
Architecture, Jones and Bartlett Publishers, 2003. 

File đính kèm:

  • pdfbai_giang_cau_truc_may_tinh_va_giao_dien_nguyen_pham_hoang_d.pdf