Tải bản đầy đủ (.pdf) (122 trang)

Giáo trình kỹ thuật vi xử lý doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.65 MB, 122 trang )

1

MỤC LỤC
MỤC LỤC 1
Chƣơng 1 GIỚI THIỆU CHUNG 4
1.1. Các hệ đếm 4
1.1.1. Hệ đếm thập phân (R = 10 hay hệ đếm Decimal) 4
1.1.2. Hệ đếm nhị phân (R = 2 hay hệ đếm Binary) 4
1.1.3. Hệ đếm 16 (R = 16 hay hệ đếm Hexa) 9
1.2. Các hệ thống mã hóa 11
1.2.1 Mã ASCII (American Standard Code for Information Interchange) - mã tiêu
chuẩn cho trao đổi thông tin. 11
1.2.2 Mã nhị thập phân BCD (Binary Coded Decimal) 13
1.3. Giới thiệu chung về hệ vi xử lý 14
1.3.1 Sự ra đời và phát triển của các bộ vi xử lý 14
1.3.2 Sơ đồ khối cấu trúc và hoạt động của hệ vi xử lý 16
Chƣơng 2 BỘ NHỚ BÁN DẪN 20
2.1. Thuật ngữ liên quan đến bộ nhớ 20
2.2 Đại cƣơng về vận hành của bộ nhớ 22
2.2.1 Các tác vụ và các nhóm chân của một IC nhớ 22
2.2.2 Giao tiếp giữa IC nhớ và bộ xử lý trung tâm (CPU) 24
2.3 Phân loại bộ nhớ 25
2.3.1 Bộ nhớ cố định 25
2.3.2 Bộ nhớ bán cố định 29
2.3.3 Bộ nhớ đọc/viết 31
2.3.4 Bộ nhớ ngoài 32
2.2 Phân cấp bộ nhớ 32
2.4 Cấu trúc của mạch nhớ tĩnh SRAM 34
2.4.1 Giới thiệu công nghệ 34
2.4.2 Cấu trúc mạch nhớ SRAM 34
2.4 Cấu trúc của mạch nhớ SRAM 42


2

Câu hỏi và bài tập chƣơng 2 46
Chƣơng 3: CÁC BỘ VI XỬ LÝ 47
3.1 Giới thiệu bộ vi xử lý 8 bit tổng quát 47
3.2 Bộ vi xử lý 8086/8088 47
3.2.1. Giới thiệu cấu trúc bên trong và hoạt động của bộ vi xử lý 8088 47
3.2.2. So sánh 8086 với 8088 56
3.2.3. Cách mã hoá lệnh của bộ vi xử lý 8088 57
3.2.4 Các chế độ địa chỉ của bộ vi xử lý 8088 60
3.2.5 Các tín hiệu của CPU 8088 66
3.2.6. Biểu đồ thời gian của chu kỳ đọc ghi số liệu 71
3.3. Bộ vi xử lý nhúng 8 bit (họ 8051) 73
3.3.1. Đặc điểm của vi điều khiển 8051 73
3.3.2. Sơ đồ chân của MS8051 76
3.4. Giới thiệu các bộ vi xử lý tiên tiến 81
3.4.1. Vi điều khiển AVR 81
Các đặc tính 85
3.4.2. Giới thiệu PsoC 87
Chức năng 87
3.5. Ghép nối bộ vi xử lý và bộ nhớ 90
Chƣơng 4 CÁC BỘ ĐIỀU KHIỂN VÀ GHÉP NỐI DỮ LIỆU 92
4.1 Vào/ra số liệu điều khiển vào ngắt 92
4.1.1 Nguyên lý vào/ra điều khiển ngắt 92
4.1.2 Bộ điều khiển ngắt PIC (8259A) 95
4.2 Vào/ra số liệu bằng thâm nhập bộ nhớ trực tiếp DMA 97
4.2.1 Nguyên lý vào/ra bằng DMA 97
4.2.2 Mạch DMAC 8237A 100
4.2.3 Ghép 8088 với DMAC và phƣơng pháp viết lệnh 103
4.3 Bộ đếm lập trình đƣợc 104

4.3.1. Sơ đồ khối của bộ lập trình đƣợc 104
3

4.3.2. Các chế độ làm việc của bộ đếm lập trình 104
4.4 Phối ghép vào ra nối tiếp 107
4.4.2 Nguyên lý vào ra nối tiếp 107
4.4.2 Mạch thu phát thông tin nối tiếp USART(8251A) 109
Dị bộ 111
Độ dài ký tự 111
Đồng bộ 111
4.5 Phối ghép với thiết bị vào/ra qua cổng song song 113
4.5.1 Ghép nối song song đơn giản 113
4.5.2 Mạch phối ghép vào/ra song song lập trình đƣợc PPI 113
CHƢƠNG 5. THIẾT KẾ HỆ THỐNG VI XỬ LÝ 117
5.1. Thiết kế phần cứng 117
5.2. Thiết kế phần mềm 119
5.2.1. ROM Mapping 119
5.2.2. RAM Mapping 120
5.3. Thiết kế các chƣơng trình hệ thống 121
TÀI LIỆU THAM KHẢO 121









4


Chƣơng 1 GIỚI THIỆU CHUNG
1.1. Các hệ đếm
Hệ đếm thông dụng nhất trong đời sống là hệ đếm cơ số 10 (thập phân – Decimal), sử
dụng 10 ký tự số từ 0 đến 9.
Trong các hệ thống máy tính, để xử lý, tính toán, ta sử dụng hệ đếm cơ số 2 (nhị phân
– Binary), hệ cơ số 8 (bát phân – Octal), hệ cơ số 16 (Hexa). Tuy nhiên, việc nhập dữ liệu
hay đƣa kết quả xử lý, ta lại dùng hệ đếm cơ số 10.
Một số N trong một hệ đếm bất kỳ có n+l chữ số , trong đó gồm n chữ số thuộc phần
nguyên và l chữ số thuộc phần thập phân, đƣợc triển khai theo công thức tổng quát:
1n
k
k
kl
N a R




(1.1)
trong đó:
R là cơ số của hệ đếm
a
k
là trọng của chữ số ở vị trí thứ k (0  a
k
< R)
{ a
k
}

R
= {0, 1, 2, 3, …, R – 1}
l, n là số nguyên
N = a
n
a
n-1
…a
1
a
0
,a
-1
a
-2
…a
-l

Theo công thức trên, các số đƣợc biểu diễn trong các hệ đếm khác nhau sẽ nhƣ sau:
1.1.1. Hệ đếm thập phân (R = 10 hay hệ đếm Decimal)
{ a
k
}
D
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} – gồm 10 trị
123,45
D
= 1 x 10
2
+ 2 x 10

1
+ 3 x 10
0
+ 4 x 10
-1
+ 5 x 10
-2

1.1.2. Hệ đếm nhị phân (R = 2 hay hệ đếm Binary)
{ a
k
}
B
= {0, 1} – gồm 2 trị
11011.01
B
= 1 x 2
4
+ 1 x 2
3
+ 0 x 2
2
+ 0 x 2
1
+ 1 x 2
0
+ 0 x 2
-1
+ 1 x 2
-2

=
= 16 + 8 + 0 + 2 + 1 + 0 + 0,25 = 27,25
D

5

Mỗi ký hiệu 0 hoặc 1 đƣợc gọi là đƣợc gọi là 1 Bit (Binary Digit – chữ số nhị phân).
Kích cỡ của một số nhị phân là số bit của nó. Most significant Bit (MSB): Bit quan trọng
nhất (bit cao nhất), bit ngoài cùng bên trái. Least significant Bit (LSB): Bit ít quan trọng
nhất (bit thấp nhất), bit ngoài cùng bên phải.
Ví dụ: 1 0 1 0 1 0 1 0 là một số nhị phân 8 bit


MSB LSB
a) Số nhị phân không dấu
- Chỉ biểu diễn đƣợc các giá trị không âm ( ≥ 0)
- Với n bit có thể biểu diễn đƣợc các giá trị từ 0 đến 2
n
– 1
Ví dụ: Giá trị V của một số nhị phân không dấu 1101 đƣợc tính:
V(1101) = 1×2
3
+ 1×2
2
+ 0×2
1
+ 1×2
0

= 8 + 4 + 0 + 1 = 13

Tổng quát: Nếu số nhị phân N có n bit:
N = b
(n-1)
b
(n-2)
…b
1
b
0

thì giá trị V của nó là:
V = b
(n-1)
×2
(n-1)
+ b
(n-2)
×2
(n-2)
+…+ b
1
×2
1
+ b
0
×2
0

Ví dụ: Viết mã nhị phân của số từ 0 đến 15.
* Chuyển đổi thập phân sang nhị phân

Ví dụ: Chuyển 25
10
sang nhị phân không dấu.
Dùng phƣơng pháp chia 2 liên tiếp, chia tới khi kết quả thƣơng bằng 0 thì dừng và
viết phần dƣ theo chiều ngƣợc lại, kết quả là biểu diễn nhị phân của số thập phân.
6










Ví dụ: Chuyển đổi số 0.8125 thành số nhị phân
Thực hiện phép nhân liên tiếp với 2, phần nguyên của tích bao giờ cũng là các giá trị
hoặc bằng “0” hoặc bằng “1”, thu đƣợc kết quả sau:
0.8125
x 2
= 1.625
= 1 +
0.625
MSB
0.625
x 2
= 1.25
= 1 +
0.25


0.25
x 2
= 0.5
= 0 +
0.5

0.5
x 2
= 1
= 1 +
0
LSB
Kết quả: 0.1101
Ví dụ: Chuyển đổi số 0.8128 thành số nhị phân
0.8128
x 2
= 1.6256
= 1 +
0.6256
MSB
0.6256
x 2
= 1.2512
= 1 +
0.2512

0.2512
x 2
= 0.5024

= 0 +
0.5024

0.5024
x 2
= 1.0048
= 1 +
0.0048
LSB
0.0048
x 2
Quá nhỏ có thể bỏ qua

Chia 2

Thƣơng số
Số dƣ

25/2
=
2
1
LSB
12/2
=
6
0

6/2
=

3
0

3/2
=
1
1

1/2
=
0
1
MSB
Kết quả: 11001
7

Kết quả: 0.1101

Lưu ý: Quá trình biến đổi này kết thúc khi phần phân số của tích số bằng 0, tuy
nhiên, nếu quá kéo dài, tuỳ theo yêu cầu của độ chính xác dữ liệu khi tính toán và xử lý,
có thể bỏ qua.
b) Số nhị phân có dấu
- Biểu diễn đƣợc tất cả giá trị âm. Nó còn gọi là số bù 2
- Với n bit có thể biểu diễn đƣợc các giá trị từ -2
(n-1)
đến 2
(n-1)
-1
Ví dụ: Giá trị V của một số nhị phân có dấu 1101 đƣợc tính:
V(1101) = -1×2

3
+ 1×2
2
+ 0×2
1
+ 1×2
0

= -8 + 4 + 0 + 1 = -3
Tổng quát: Nếu số nhị phân N có n bit:
N = b
(n-1)
b
(n-2)
…b
1
b
0

thì giá trị V của nó là:
V = -b
(n-1)
×2
(n-1)
+ b
(n-2)
×2
(n-2)
+…+ b
1

×2
1
+ b
0
×2
0

Ví dụ: Bảng 16 giá trị từ - 8 đến 7

8

* Tìm đối số (lấy bù 2)
Tổng của một số với đối số của nó bằng 0
Ví dụ: Tìm đối số của số nhị phân có dấu 10011101
10011101
Số có dấu (-99)
01100010
Lấy bù 1 (đảo các chữ số trong số đó)
+ 1

Cộng 1 (lấy bù 2, tƣơng ứng với bù 1 cộng thêm 1)
01100011
Kết quả (+99)
* Chuyển số thập phân sang nhị phân có dấu
- Với số dương: giống nhƣ chuyển thập phân sang nhị phân không dấu rồi thêm bit 0 vào
phía ngoài cùng bên trái.
Ví dụ: Chuyển 25 sang số nhị phân có dấu.
Kết quả: 011001
bit thêm vào
- Với số âm: Chuyển đối số sang nhị phân có dấu rồi lấy bù 2

Ví dụ: Chuyển -26 sang nhị phân
1. Chuyển đối số: + 26 =
11010
2. Đƣa 0 vào sát bên trái
011010
3. Bù 1:
100101
4. Cộng 1:
+ 1

-26 =
100110
9

Chú ý:
- Trong hệ nhị phân có dấu số âm có bit MSB bằng 1, số dƣơng có bit MSB bằng 0
- Trong hệ nhị phân có dấu số âm là số bù 2 của số dƣơng tƣơng ứng
c) Đơn vị
Bit: Một chữ số nhị phân 0 hoặc 1
Nibble: 4 bit (nửa byte)
Byte: 8 bit (còn gọi là Octet)
Word (từ) : 16 bit
Double Word (từ kép): 32 bit
K = 2
10
= 1024
Kb (kilobit) = 1024 bit = 128 byte
KB (kilobyte) = 1024 byte
Kbps (kilobit per second): kilobit trên giây
M = 2

20
= 1024 K = 1048576
Mb (megabit) = 1024 Kb = 1048576 bit
MB (megabyte) = 1024 KB = 1048576 byte
G = 2
30
= 1024 M = 1048576 K
Gb (gigabit) = 1024 Mb = 1048576 Kb
GB (gigabyte) = 1024 MB = 1048576 KB
1.1.3. Hệ đếm 16 (R = 16 hay hệ đếm Hexa)
Hệ đếm 16 sử dụng 16 ký tự để biểu diễn: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
3A7,C
H
= 3 x 16
2
+ 10 x 16
1
+ 7 x 16
0
+ 12 x 16
-1
=
= 768 + 160 + 7 + 0,75 = 935,75
D

Mỗi ký tự tƣơng ứng với 4 bit. Mục đích của hệ này để biểu diễn hệ nhị phân ở
dạng ngắn gọn.
10

Ví dụ:

Hệ nhị phân

Hệ 16
11110000
=
FO
10101010
=
AA
01010101
=
55
Mỗi ký hiệu tương đương với 4 bit

* Chuyển đổi Hexa và nhị phân
Từ dạng Hexa chuyển đổi sang dạng nhị phân thì ta biểu diễn 1 số dạng hexa bằng
4 bit nhị phân
Ngƣợc lại muốn chuyển đổi từ số nhị phân sang số Hexa thì ta nhóm 4 bit nhị phân
từ trái qua phải, nếu cuối cùng không đủ 4 bit thì ta thêm bit 0 ở đầu để đủ. Mỗi nhóm 4
bit nhóm đƣợc sẽ biểu diễn một số dạng Hexa.
Ví dụ: Chuyển số hexa 2F8 và ABBA sang số nhị phân
Thay thế mỗi ký hiệu hexa bằng 4 bit tƣơng ứng với nó

2
F
8

0010
1111
1000





A
B
B
A
11

1010
1011
1011
1010
Kết quả: 2F8 = 001011111000b
ABBA = 1010101110111010b
Ví dụ: Chuyển số nhị phân 1100101011111110 sang số hexa
- Trƣớc hết theo hƣớng từ LSB về MSB chia số nhị phân đó thành nhóm 4 bit
- Sau đó thay thế mỗi nhóm 4 bit bằng ký hiệu hexa tƣơng ứng với nó
1100
1010
1111
1110
C
A
F
E
Kết quả: 1100101011111110b = CAFEh
1.2. Các hệ thống mã hóa
1.2.1 Mã ASCII (American Standard Code for Information Interchange) - mã tiêu

chuẩn cho trao đổi thông tin.
Dùng để biểu diễn các ký tự (characters) gồm ký tự hiển thị đƣợc và ký tự điều khiển.
Bảng mã ASCII tiêu chuẫn có 128 ký tự nên mỗi ký tự cần 7 bit để mã hóa. Bảng mã
ASCII mở rộng có 256 ký tự (ký tự từ 0 - 127 đầu giống ASCII tiêu chuẩn, ký tự từ 128 –
255 là các ký tự đặc biệt ) nên mỗi ký tự cần 8 bit để mã hóa. Khi tra các bảng này ta đọc
mã của ký tự theo thứ tự cột – hàng
Mỗi ký tự đƣợc biểu diễn bằng 8 bit gọi là mã ASCII của ký tự đó.
- Các chữ cái in và thƣờng: A…Z và a…z
- Các chữ số thập phân: 0, 1, …, 9
- Các dấu chấm câu: ; , . : v.v…
- Các ký tự điều khiển: carriage return (CR), line feed (LF), beep, …
Với bảng mã đƣợc sắp xếp theo trật tự tăng dần của mã ASCII
- Các chữ số thập phân: 0, 1, …, 9 nằm liên tiếp nhau, chữ số 0 có mã
ASCII là 30h.
12

- Các chữ cái in: A…Z nằm liên tiếp nhau, chữ A có mã ASCII là 41h.
- Các chữ cái thƣờng: a…z nằm liên tiếp nhau, chữ a có mã ASCII là 61h.
- Mã ASCII của chữ in và chữ thƣờng tƣơng ứng chỉ khác nhau ở bit 6
A: 01000001
B: 01000010
Z: 01011010
a: 01100001
b: 01100010
z: 01111010
- 32 ký tự điều khiển đƣợc xếp đầu bảng mã (00h đến 1Fh)


Bảng mã ASCII tiêu chuẩn
| Dec 0 16 32 48 64 80 96 112

ROW | Bin 000 001 010 011 100 101 110 111
Dec Bin Hex | Hex 0 10 20 30 40 50 60 70
+
0 0000 0 | NUL DLE SP 0 @ P ` p
|
1 0001 1 | SOH XON ! 1 A Q a q
|
2 0010 2 | STX DC2 " 2 B R b r
|
3 0011 3 | ETX XOFF # 3 C S c s
|
4 0100 4 | EOT DC4 $ 4 D T d t
|
5 0101 5 | ENQ NAK % 5 E U e u
|
6 0110 6 | ACK SYN & 6 F V f v
|
7 0111 7 | BEL ETB ' 7 G W g w
|
8 1000 8 | BS CAN ( 8 H X h x
|
9 1001 9 | HT EM ) 9 I Y i y
|
13

10 1010 A | LF SUB * : J Z j z
|
11 1011 B | VT ESC + ; K [ k {
|
12 1100 C | FF FS , < L \ l |

|
13 1101 D | CR GS - = M ] m }
|
14 1110 E | SO RS . > N ^ n ~
|
15 1111 F | SI US / ? O _ o DEL

1.2.2 Mã nhị thập phân BCD (Binary Coded Decimal)
Mã BCD dùng để mã hóa các số thập phân bằng các ký hiệu nhị phân. Mỗi chữ số
thập phân đƣợc biểu diễn bằng một tổ hợp 4 bit
Các tổ hợp 4 bit không sử dụng gọi là các tổ hợp cấm
Nhiều linh kiện điện tử sử dụng mã này, ví dụ nhƣ bộ giải mã BCD – LED bảy đoạn
7447.
Bảng mã BCD

Chú ý: Đừng nhầm mã hóa BCD với việc chuyển đổi thập phân sang nhị phân
Ví dụ: Cho số thập phân 15
14

Mã BCD của nó là:
00010101
Số nhị phân không dấu 8 bit tƣơng ứng là:
00001111
1.3. Giới thiệu chung về hệ vi xử lý
1.3.1 Sự ra đời và phát triển của các bộ vi xử lý
a) Thế hệ 1 (1971 -1973)
Năm 1971, Intel đã cho ra bộ vi xử lý đầu tiên là 4004 (4 bit số liệu, 12 bit địa chỉ).
Sau Intel và các nhà sản xuất khác cũng cho ra đời bộ vi xử lý khác: 4040, 8008 của Intel.
PPS – 4, IPM – 16. Đặc điểm chung của các vi xử lý này:
- Độ dài từ thƣờng là 4 bit.

- Công nghệ chế tạo PMOS với đặc điểm phân tử nhỏ, tốc độ thấp, giá thành rẻ,
dòng ra thấp.
- Tốc độ thực hiện lệnh: 10 – 60 µs/lệnh, tốc độ xung đồng hồ 0.1 – 0.8 MHz
- Tập lệnh đơn giản, cần nhiều vi mạch phụ trợ để tạo nên một hệ vi xử lý hoàn
chỉnh.
b) Thế hệ 2 (1974 – 1977)
Bộ vi xử lý tiêu biểu là vi xử lý 8 bit 6502 của MOS Technology, 6800 và 6809
của Motorola, 8080 và 8085 của Intel, đặc biệt là bộ vi xử lý Z80 của Zilog.
Đặc điểm:
- Chế tạo theo công nghệ NMOS (có mật độ phân tử nhớ lớn hơn PMOS)
- Tập lệnh phong phú, khả năng quản lý bộ nhớ 64 KB.
- Có khả năng phân biệt 256 địa chỉ thiết bị ngoại vi.
- Ứng dụng rộng rãi trong công nghiệp.
- Công nghệ chế tạo NMOS hoặc CMOS, tiếc kiệm điện năng.
- Tốc độ 1 –8 µs /lệnh, tốc độ xung đồng hồ 1 – 5 MHz.
c) Thế hệ 3 (1978 – 1982)
15

Bộ vi xử lý là các vi xử lý 16 bit 8086, 186, 286 của Intel hoặc 68000, 68010 của
Motolora. Đặc điểm:
- Chế tạo theo công nghệ HMOS, là cải tiến của NMOS
- Có các lệnh nhân, chia và thao tác với các chuỗi ký tự.
- Khả năng quản lý bộ nhớ từ 1- 16 MB và 64 K địa chỉ thiết bị ngoại vi.
- Sản xuất theo công nghệ HMOS.
- Tốc độ xử lý 0.1 – 1 µs/lệnh với tần số f = 5 – 10 MHz.
- Đƣợc dùng cho các máy tính IBM PC, PC/XT, PC/AX.
d) Thế hệ 4 (1983 đến nay)
Thế hệ náy có các bộ vi xử lý 32 bit (80386, 80486) và 64 bit Pentium của Intel,
các vi xử lý 32 bit của Motolora là 68020, 68040, 68060. Đặc điểm:
- Có khả năng làm việc với bộ nhớ ảo.

- Cơ chế xử lý xen kẽ liên tục dòng mã lệnh, bộ nhớ cache.
- Có bộ quản lý bộ nhớ và nhiều bộ đồng xử lý toán học bên trong.
- Công nghệ sản xuất HCMOS.
- Tất cả đều có bộ đồng xử lý toán học, bộ quản lý bộ nhớ MMU
Chú ý: Một số thông số của các bộ vi xử lý (xem thêm bảng 2.1 sách vxl).
Ngoài các bộ vi xử lý đƣợc dùng để xây dựng các máy tính với tập lệnh đầy đủ
(Complex Instruction Set Computer – CISC) ở trên, còn các bộ vi xử lý cải tiến dùng để
xây dựng các máy tính với tập lênh rút gọn (reduced RISC) với nhiều tính năng có thể so
sánh với các máy tính thế hệ trƣớc. Các vi xử lý RISC là sự bắt đầu cho một thế hệ khác
trong sự phát triển của các bộ vi xử lý.




16

1.3.2 Sơ đồ khối cấu trúc và hoạt động của hệ vi xử lý





Hình 1.1: Sơ đồ khối của hệ vi xử lý với các thanh ghi trong và ngoài
Nhìn vào sơ đồ khối ta thấy rõ các khối chức năng chính của hệ vi xử lý bao gồm:
- Khối xử lý trung tâm
- Bộ nhớ
- Khối phối ghép vào ra (I/O)
- Các bus truyền thông tin
Bộ vi xử lý (Microprocessor) hay còn gọi là CPU (Central Processing Unit – Đơn vị xử
lý trung tâm) đóng vai trò chủ đạo trong hệ vi xử lý. Đây là một vi mạch điện tử có độ

tích hợp rất cao. Khi hoạt động, CPU đọc các mã lệnh đƣợc ghi dƣới dạng các bit 0 và bit
1 từ bộ nhớ, sau đó CPU sẽ giải mã các lệnh này thành dãy các xung điều khiển ứng với
các thao tác trong lệnh để điều khiển các khối thực hiện từng bƣớc các thao tác đó. CPU
bao gồm tập hợp các khối mạch logic điều khiển, nó có chức năng giải mã lệnh và tạo các
tín hiệu điều khiển hoạt động của toàn hệ thống, gọi là đơn vị điều khiển (CU - Control
Unit); các mạch logic thực hiện các phép tính số học và logic, gọi là đơn vị số học – logic
(ALU - Arithmetic and Logic Unit) và tập hợp các thanh ghi (Registers) có khả năng lƣu
trữ tạm thời, trao đổi dữ liệu, xử lý dữ liệu với mức độ tích hợp khac nhau.
Bộ nhớ bán dẫn (bộ nhớ trong) là bộ phận rất quan trọng của hệ vi xử lý. ROM có thể
chứa các chƣơng trình điều khiển hoạt động của toàn hệ thống khi bật điện thì CPU có thể
lấy lệnh từ đây mà khởi động hệ thống. Một phần của chƣơng trình điều khiển hệ thống,
các chƣơng trình ứng dụng, dữ liệu cùng các kết quả chƣơng trình thƣờng đƣợc lƣu trữ
Out

In

CPU

M

I/O
Cbus
Dbus
Abus
17

trong RAM. Khi mất điện thì các dữ liệu lƣu trữ trong RAM bị mất, do đó dữ liệu và
chƣơng trình muốn lƣu trữ lâu dài sẽ đƣợc đặt ở bộ nhớ ngoài.
Khối phối hợp ghép vào/ra (I/O – input/output) tạo ra khả năng giao tiếp giữa hệ vi xử
lý với thế giới bên ngoài. Các thiết bị bên ngoài nhƣ bàn phim, chuột, máy in, ADC,

DAC…đều liên hệ với vi xử lý qua bộ phận này. Bộ phận phối ghép giữa bus hệ thống
với thế giới bên ngoài thƣờng gọi là cổng.
Ba chức năng đầu liên hệ với nhau thông qua tập các đƣờng dây để truyền tín hiệu gọi
chung là bus hệ thống. Bus hệ thống bao gồm 3 loại: Bus địa chỉ, bus dữ liệu, bus điều
khiển.
- Bus địa chỉ thƣờng có từ 16, 20, 24 đến 32 đƣờng dây song song mang thông tin về
địa chỉ của ô nhớ hay một thiết bị vào ra mà CPU đang trao đổi thông tin. Thông tin về
địa chỉ là do CPU phát ra chọn một ô nhớ hoặc một thiết bị vào/ra mà nó cần trao đổi
thong tin. Khi đọc/ghi CPU sẽ đƣa ra trên bus này địa chỉ của ô nhớ liên quan. Khả năng
phân biệt địa chỉ của CPU phụ thuộc vào số chân địa chỉ. Giả sử số chân địa chỉ là n thì số
ô nhớ sẽ đƣợc định địa chỉ là: 2
n
. Khi đọc /ghi với các cổng vào/ra CPU cũng đƣa ra trên
bus địa chỉ các bit địa chỉ tƣơng ứng của cổng. Chỉ có CPU mới có khả năng đƣa ra địa
chỉ trên bus địa chỉ (trừ mạch DMA Controller).
- Bus dữ liệu thƣờng có từ 8, 16, 20, 24, 32 đến 64 đƣờng dây tuỳ theo các bộ vi xử lý
cụ thể. Số lƣợng đƣờng dây này quyết định số bit dữ liệu mà CPU có khả năng xử lý đồng
thời. Chiều mũi tên trên hình vẽ chỉ ra rằng dây là bus 2 chiều. Các phần tử có đầu ra nối
thẳng tới bus dữ liệu đều phải trang bị đầu ra 3 trạng thái để có thể ghép vào đƣợc và hoạt
động bình thƣờng với bus này.
- Bus điều khiển thƣờng gồm hàng chục đƣờng dây mang tín hiệu điều khiển khác
nhau, nó dùng để truyền tín hiệu điều khiển để điều khiển hoạt động từ vi xử lý tới các
khối MEMORY, I/O và lấy trạng thái của chúng. Mỗi tín hiệu điều khiển có một chiều
nhất định.
Hoạt động của hệ thống vi xử lý: Trong khi hoạt động và tại một thời điểm nhất định,
về mặt chức năng của mỗi khối trong hệ thống trên giống nhƣ các thanh ghi trong hoặc
18

các thanh ghi ngoài. Hoạt động của toàn hệ thống thực chất là sự phối hợp hoạt động của
các thanh ghi trong và ngoài để thực hiện sự biến đổi dữ liệu hoặc thay đổi dữ liệu theo

các yêu cầu đã xác định trƣớc.
Một lệnh của vi xử lý là chuỗi các bit 0 và 1 cung cấp cho vi xử lý để nó thực hiện một
chức năng cơ bản. Chƣơng trình của hệ thống vi xử lý là tập hợp các lệnh đƣợc sắp xếp
theo giải thuật của một bài toán hay một công việc nào đó.
Máy tính PC ngày nay

Hình 1.2: Sơ đồ máy tính PC ngày nay
Máy tính ngày nay gồm các thành phần đƣợc nối ghép với nhau qua các chipset. Kiến
trúc này nhằm mục đích phân chia các thành phần có tốc độ làm việc tƣơng đƣơng nhau
19

vào cùng một nhóm nhằm khai thác triệt để khả năng hoạt động của CPU và mọi thành
phần trong hệ thống.
Chipset là một chip tích hợp chức năng của nhiều con chíp làm nhiệm vụ điều khiển
hoạt động giữa CPU và các lớp bộ nhớ.


Câu hỏi ôn tập chƣơng 1
1. Tại sao phải sử dụng các hệ đếm khác nhau trong khi làm việc với máy tính PC ?
2. Trình bày các hệ đếm cơ bản sử dụng trong máy tính (hệ 10, hệ 2, hệ 8, hệ 16, hệ
BCD)
3. Sự phát triển của các thế hệ VXL? Tại sao nói sự ra đời của Pentitum đã đánh dấu
bƣớc ngoặt trong lịch sử phát triển của bộ VXL ?
4. Sơ đồ bộ VXL kinh điển (các thành phần, cấu tạo, hoạt động)? có thể có các biến thể
của sơ đồ này không?













20

Chƣơng 2: BỘ NHỚ BÁN DẪN

Bộ nhớ là một trong những thành phần quan trọng nhất của máy tính điện tử, dùng để
lƣu trữ các lệnh sẽ thực hiện cũng nhƣ dữ liệu. Bộ nhớ đƣợc xây dựng từ các phần tử nhớ
cơ bản, mỗi phần tử nhớ cơ bản có thể nhớ đƣợc 1 bit thông tin; Đó là các mạch điện có
hai trạng thái cân bằng ổn định flip-flop (FF), flip-flop sẽ nằm mãi ở một trong hai trạng
thái cân bằng nếu không có tín hiệu điện phù hợp kích thích vào làm cho nó phải thay đổi
trạng thái. Bộ nhớ bán dẫn đƣợc sử dụng làm bộ nhớ chính trong các máy tính nhờ vào
khả năng thỏa mãn tốc độ truy xuất dữ liệu của bộ xử lý trung tâm (CPU).
2.1. Thuật ngữ liên quan đến bộ nhớ
Để tìm hiểu cấu tạo, hoạt động của bộ nhớ chúng ta bắt đầu với một số thuật ngữ liên
quan đến bộ nhớ
- Tế bào nhớ: là linh kiện hay một mạch điện tử dùng để lƣu trữ một bit đơn (0 hay
1). Thí dụ của một tế bào nhớ bao gồm: mạch FF (flip-flop), tụ đƣợc tích điện, một điểm
trên băng từ hay đĩa từ. . . .
- Từ nhớ: là một nhóm các bit (tế bào) trong bộ nhớ dùng biểu diễn các lệnh hay dữ
liệu dƣới dạng một số nhị phân. Thí dụ một thanh ghi 8 FF là một phần tử nhớ lƣu trữ từ 8
bit. Kích thƣớc của từ nhớ trong các máy tính hiện đại có chiều dài từ 4 đến 64 bit.
- Byte: từ 8 bit, đây là kích thƣớc thƣờng dùng của từ nhớ trong các máy vi tính.
- Dung lượng: chỉ số lƣợng bit có thể lƣu trữ trong bộ nhớ. Thí dụ bộ nhớ có khả
năng lƣu trữ 4.096 từ nhớ 20 bit, dung lƣợng của nó là (4096 x 20 = 81920 bit)

- Địa chỉ: là số nhị phân dùng xác định vị trí của từ nhớ trong bộ nhớ. Mỗi từ nhớ
đƣợc lƣu trong bộ nhớ tại một địa chỉ duy nhất. Địa chỉ luôn luôn đƣợc biểu diễn bởi số
nhị phân, tuy nhiên để thuận tiện ngƣời ta có thể dùng số hex hay thập phân, bát phân.
- Tác vụ đọc: (Read, còn gọi là fetch), một từ nhớ tại một vị trí nào đó trong bộ nhớ
đƣợc truy xuất và chuyển sang một thiết bị khác.
21

- Tác vụ viết: (ghi, Write, còn gọi là store), một từ mới đƣợc đặt vào một vị trí trong
bộ nhớ, khi một từ mới đƣợc viết vào thì từ cũ mất đi.
- Thời gian truy xuất (access time): số đo tốc độ hoạt động của bộ nhớ, ký hiệu t
ACC

.Đó là thời gian cần để hoàn tất một tác vụ đọc. Chính xác đó là thời gian từ khi bộ nhớ
nhận một địa chỉ mới cho tới lúc dữ liệu khả dụng ở ngã ra bộ nhớ
- Bộ nhớ không vĩnh cữu (volatile): Bộ nhớ cần nguồn điện để lƣu trữ thông tin. Khi
ngắt điện, thông tin lƣu trữ bị mất. Hầu hết bộ nhớ bán dẫn là loại không vĩnh cữu, trong
khi bộ nhớ từ là loại vĩnh cữu (nonvolatile).
- Bộ nhớ truy xuất ngẫu nhiên (Random Access Memory, RAM): Khi cần truy xuất
một địa chỉ ta tới ngay địa chỉ đó. Vậy thời gian đọc hay viết dữ liệu vào các vị trí nhớ
khác nhau trong bộ nhớ không tùy thuộc vào vị trí nhớ. Nói cách khác, thời gian truy xuất
nhƣ nhau đối với mọi vị trí nhớ. Hầu hết bộ nhớ bán dẫn và nhẫn từ (bộ nhớ trong của
máy tính trƣớc khi bộ nhớ bán dẫn ra đời) là loại truy xuất ngẫu nhiên.
- Bộ nhớ truy xuất tuần tự (Sequential Access Memory, SAM): Khi cần truy xuất một
địa chỉ ta phải lƣớt qua các địa chỉ trƣớc nó. Nhƣ vậy thời gian đọc và viết dữ liệu ở
những vị trí khác nhau thì khác nhau. Những thí dụ của bộ nhớ này là băng từ, đĩa từ. Tốc
độ làm việc của loại bộ nhớ này thƣờng chậm so với bộ nhớ truy xuất ngẫu nhiên.
- Bộ nhớ đọc/viết (Read/Write Memory, RWM): Bộ nhớ có thể viết vào và đọc ra.
- Bộ nhớ chỉ đọc (Read-Only Memory, ROM: là bộ nhớ mà tỉ lệ tác vụ đọc trên tác vụ
ghi rất lớn. Về mặt kỹ thuật, một ROM có thể đƣợc ghi chỉ một lần ở nơi sản xuất và sau
đó thông tin chỉ có thể đƣợc đọc ra từ bộ nhớ. Có loại ROM có thể đƣợc ghi nhiều lần

nhƣng tác vụ ghi khá phức tạp hơn là tác vụ đọc. ROM thuộc loại bộ nhớ vĩnh cữu và dữ
liệu đƣợc lƣu giữ khi đã cắt nguồn điện.
- Bộ nhớ tĩnh (Static Memory Devices): là bộ nhớ bán dẫn trong đó dữ liệu đã lƣu trữ
đƣợc duy trì cho đến khi nào còn nguồn nuôi.
- Bộ nhớ động (Dynamic Memory Devices): là bộ nhớ bán dẫn trong đó dữ liệu đã lƣu
trữ muốn tồn tại phải đƣợc ghi lại theo chu kỳ. Tác vụ ghi lại đƣợc gọi là làm tƣơi
(refresh).
22

- Bộ nhớ trong (Internal Memory): Chỉ bộ nhớ chính của máy tính. Nó lƣu trữ các
lệnh và dữ liệu mà CPU dùng thƣờng xuyên khi hoạt động.
- Bộ nhớ khối (Mass Memory): Còn gọi là bộ nhớ phụ, nó chứa một lƣợng thông tin
rất lớn ở bên ngoài máy tính. Tốc độ truy xuất trên bộ nhớ này thƣờng chậm và nó thuộc
loại vĩnh cữu.
2.2 Đại cƣơng về vận hành của bộ nhớ
2.2.1 Các tác vụ và các nhóm chân của một IC nhớ
Mặc dù mỗi loại bộ nhớ có hoạt động bên trong khác nhau, nhƣng chúng có chung
một số nguyên tắc vận hành mà chúng ta có thể tìm hiểu sơ lƣợc trƣớc khi đi vào nghiên
cứu từng loại bộ nhớ.
Mỗi hệ thống nhớ luôn có một số yêu cầu ở các ngã vào và ra để hoàn thành một số
tác vụ:
- Chọn địa chỉ trong bộ nhớ để truy xuất (đọc hoặc viết)
- Chọn tác vụ đọc hoặc viết để thực hiện
- Cung cấp dữ liệu để lƣu vào bộ nhớ trong tác vụ viết
- Gửi dữ liệu ra từ bộ nhớ trong tác vụ đọc
- Cho phép (Enable) (hay Không, Disable) bộ nhớ đáp ứng (hay không) đối với lệnh
đọc/ghi ở địa chỉ đã gọi đến.
Từ các tác vụ kể trên, ta có thể hình dung mỗi IC nhớ có một số ngã vào ra nhƣ sau:
- Ngã vào địa chỉ: mỗi vị trí nhớ xác định bởi một địa chỉ duy nhất, khi cần đọc dữ
liệu ra hoặc ghi dữ liệu vào ta phải tác động vào chân địa chỉ của vị trí nhớ đó. Một IC có

n chân địa chỉ sẽ có 2
n
vị trí nhớ. Ký hiệu các chân địa chỉ là A
0
đến A
n-1
. Một IC có 10
chân đị chỉ sẽ có 1024 (1K) vị trí nhớ.
- Ngã vào/ra dữ liệu: Các chân dữ liệu là các ngã vào/ra, nghĩa là dữ liệu luôn đƣợc
xử lý theo hai chiều. Thƣờng thì dữ liệu vào/ra chung trên một chân nên các ngã này
thuộc loại ngã ra 3 trạng thái. Số chân địa chỉ và dữ liệu của một IC xác định dung lƣợng
23

nhớ của IC đó. Thí dụ một IC nhớ có 10 chân địa chỉ và 8 chân dữ liệu thì dung lƣợng
nhớ của IC đó là 2
10
x 8 =1Kx8 (8K bit hoặc 1K Byte).
- Các ngã vào điều khiển: Mỗi khi IC nhớ đƣợc chọn hoặc có yêu cầu xuất nhập dữ
liệu các chân tƣơng ứng sẽ đƣợc tác động. Ta có thể kể ra một số ngã vào điều khiển:
*
CS
: Chip select - Chọn chip - Khi chân này xuống thấp IC đƣợc chọn
*
CE
: Chip Enable - Cho phép chip - Chức năng nhƣ chân CS
*
OE
: Output Enable - Cho phép xuất - Dùng khi đọc dữ liệu
*
R/W

: Read/Write - Đọc/Viết - Cho phép đọc dữ liệu ra khi ở mức cao và ghi
dữ liệu vào khi ở mức thấp.
*
CAS
: Column Address Strobe - Chốt địa chỉ cột
*
RAS
: Row Address Strobe - Chốt địa chỉ hàng.
Trong trƣờng hợp chip nhớ có dung lƣợng lớn, để giảm kích thƣớc của mạch giải
mã địa chỉ bên trong IC, ngƣời ta chia số chân ra làm 2: địa chỉ hàng và địa chỉ cột. Nhƣ
vậy phải dùng 2 mạch giải mã địa chỉ nhƣng mỗi mạch nhỏ hơn rất nhiều. Thí dụ với 10
chân địa chỉ, thay vì dùng 1 mạch giải mã 10 đƣờng sang 1024 đƣờng, ngƣời ta dùng 2
mạch giải mã 5 đƣờng sang 32 đƣờng, hai mạch này rất đơn giản so với một mạch kia.
Một vị trí nhớ bây giờ có 2 địa chỉ: hàng và cột, dĩ nhiên muốn truy xuất một vị trí nhớ
phải có đủ 2 địa chỉ nhờ 2 tín hiệu
RAS

CAS
.
(Hình 2.1) cho thấy cách vẽ các nhóm chân của IC nhớ (m chân địa chỉ và n chân
dữ liệu). (Hình 2.1b) và (Hình 2.1c) vẽ các chân địa chỉ và dữ liệu dƣới dạng các Bus.
(Hình 2.1b) đƣợc dùng trong các sơ đồ chi tiết và (Hình 2.1c) đƣợc dùng trong các sơ đồ
khối.
24


Hình 2.1: Cách vẽ nhóm chân IC nhớ
2.2.2 Giao tiếp giữa IC nhớ và bộ xử lý trung tâm (CPU)
Trong hệ thống mọi hoạt động có liên quan đến IC nhớ đều do bộ xử lý trung tâm
(Central Processing Unit, CPU) quản lý. Giao tiếp giữa IC nhớ và CPU mô tả ở (Hình

2.2)

Hình 2.2: Giao tiếp giữa IC nhớ và CPU
Một tác vụ có liên quan đến bộ nhớ đƣợc CPU thực hiện theo các bƣớc:
- Đặt địa chỉ quan hệ lên bus địa chỉ.
- Đặt tín hiệu điều khiển lên bus điều khiển.
- Dữ liệu khả dụng xuất hiện trên bus dữ liệu, sẵn sàng để ghi vào hoặc đọc ra.
Để hoạt động của IC đồng bộ, các bƣớc trên phải tuân thủ giản đồ thời gian của từng
IC nhớ (sẽ đề cập đến khi xét các loại bộ nhớ)
25

2.3 Phân loại bộ nhớ
Dựa trên thời gian viết và cách viết, có thể chia bộ nhớ bán dẫn thành thành:
- Bộ nhớ cố định.
- Bộ nhớ bán cố định.
- Bô nhớ đọc/viết đƣợc

Hình 2.3: Sơ đồ phân loại bộ nhớ
2.3.1 Bộ nhớ cố định
Bộ nhớ cố định (hay bộ nhớ chỉ đọc - Read only Memory) là bộ nhớ có nội dung
đƣợc viết sẵn một lần khi chế tạo.
Các tế bào nhớ hoặc từ nhớ trong ROM sắp xếp theo dạng ma trận mà mỗi phần tử
chiếm một vị trí xác định bởi một địa chỉ cụ thể và nối với ngã ra một mạch giải mã địa
chỉ bên trong IC. Nếu mỗi vị trí chứa một tế bào nhớ ta nói ROM có tổ chức bit và mỗi vị
trí là một từ nhớ ta có tổ chức từ.
Ngoài ra, để giảm mức độ cồng kềnh của mạch giải mã, mỗi vị trí nhớ có thể đƣợc
xác định bởi 2 đƣờng địa chỉ : đƣờng địa chỉ hàng và đƣờng địa chỉ cột và trong bộ nhớ

×