Bài giảng
Kiến trúc của hệ vi xử lý
OPEN.PTIT.EDU.VN
LỜI NÓI ĐẦU Các bộ vi xử lý ra đời đem lại bước ngoặt trong khoa học kỹ thuật, các thiết bị trở nên
thông minh hơn nhờ sự điều khiển theo chương trình. Vi xử lý đang dần có mặt trong hầu hết các
máy móc thiết bị dân dụng cũng như công nghiệp. Vì vậy việc học tập nghiên cứu ứng dụng vi xử
lý trong trường học là một nhu cầu hết sức cần thiết.
Để phục vụ cho nhu cầu giảng dạy môn học Kỹ thuật vi xử lý cho các lớp đại học từ xa
chuyên nghành điện tử viễn thông, bài giảng vi xử lý được biên soạn với mục đích cung cấp cho
sinh viên các kiến thức cơ sở cần thiết sử dụng cho việc nghiên cứu ứng dụng các hệ thống vi xử
lý trong kỹ thuật và đời sống. Bài giảng bao gồm 8 chương với các nội dung chính như sau:
Chương 1 cung cấp các khái niệm cơ bản về vi xử lý và hệ thống của nó.
Chương 2 mô tả cấu trúc, các khối chức năng trong các bộ vi xử lý họ Intel 80x86, mà chủ
yếu là CPU 80286. Ngoài ra trong chương này còn giới thiệu về các tính năng của các bộ vi xử lý
thế hệ sau 80286 như 80386, 80486, Pentium.
Chương 3 mô tả về cấu trúc lệnh, các chế độ định vị địa chỉ và tập lệnh chi tiết của vi xử
lý 80286. Cho phép sinh viên rút ra được các kiến thức chung nhất về các lệnh vi xử lý và cách
tiếp cận trong việc lập trình bằng các lệnh hợp ngữ. Ngoài ra chương này còn đề cập tới các vấn
đề về lập trình hợp ngữ trên máy vi tính bao gồm: cấu trúc câu lệnh, cách khai báo dữ liệu, khung
chương trình hợp ngữ, các cấu trúc lập trình cơ bản, và các ví dụ cơ bản rèn luyện kỹ năng lập
trình bằng các lệnh gợi nhớ của vi xử lý.
Chương 4 cung cấp các kiến thức về việc thiết kế các hệ thống vi xử lý chuyên dụng bao
gồm cả việc thiết kế hệ thống phần cứng và phần mềm vi xử lý.
1.1.4. Tổng quan về phần mềm và sự phát triển của ngôn ngữ phần mềm.
1.2 Tổ chức bộ nhớ của hệ vi xử lý
1.2.1 Cấu trúc và nguyên tắc làm việc của bộ nhớ ROM , EPROM .
1.2.2 Cấu trúc và nguyên tắc làm việc của bộ nhớ SRAM , DRAM .
1.2.3 Tổ chức bộ nhớ
1.3 Vào ra trong hệ thống vi xử lý.
1.3.1 Cấu trúc và nguyên tắc làm việc của cổng vào / ra.
1.3.2 Mạch ba trạng thái và mạch cài
1.3.3 Các cổng vào / ra đơn giản.
Chương 2 : Nguyên tắc làm việc của bộ vi xử lý họ 80X86 Intel (6 tiết)
2.1 Cấu trúc của bộ vi xử lý 80286 Intel
2.1.1 Sơ đồ khối của bộ vi xử lý 80286 Intel
2.1.2 Khối tạo địa chỉ (AU)
2.1.3 Khối ghép kênh (BU)
2.1.4 Khối lệnh (IU)
2.1.5 Khối thực hiện lệnh (EU)
2.2 Các thanh ghi của bộ vi xử lý 80286 Intel .
2.2.1 Chức năng và nhiệm vụ của các thanh ghi đa năng .
2.2.2 Các thanh ghi quản lý đoạn
2.2.3 Thanh ghi cờ trạng thái
2.2.4 Các thanh ghi đặc biệt
2.3 Nguyên tắc làm việc của bộ vi xử lý 80286 Intel .
2.3.1 Định nghĩa chu kỳ lệnh và chu kỳ máy
2.3.2 Quản lý bộ nhớ thực và bộ nhớ ảo
2.3.3 Trạng thái bộ vi xử lý khi khởi động
2.3.4 Chế độ ngắt và các đầu ngắt của bộ vi xử lý
2.4 Các bộ vi xử lý cấp cao của Intel
15
15
15
15
15
16
17
18
20
21
21
25
35
36
40 43
43
44
44
48
50
54
OPEN.PTIT.EDU.VN
3.2.2 Nhóm lệnh xử lý dữ liệu.
3.2.3 Nhóm lệnh chuyển điều khiển
3.3 Lập trình hợp ngữ cho hệ vi xử lý Intel
3.3.1 Lập trình chuyển mảng dữ liệu
6.1 Cấu trúc và chức năng của vi điều khiển 8051.
6.1.1. Giới thiệu về các bộ vi điều khiển.
6.1.2. Cấu trúc tổng quát của các bộ vi điều khiển.
6.1.3. Mô tả phần cứng các bộ vi điều khiển họ MSC-51
6.2 Giao tiếp với bộ nhớ ngoài cho vi điều khiển 8051.
6.2.1. Truy xuất bộ nhớ chương trình bên ngoài.
6.2.2. Truy xuất bộ nhớ dữ liệu bên ngoài.
6.2.3. Bộ nhớ ngoài sử dụng chung cho chương trình và dữ liệu
6.3 Hoạt động timer của 8051
6.3.1. Giới thiệu.
6.3.2. Các chế độ timer và cờ báo tràn.
6.3.3. Nguồn xung nhịp.
6.3.4. Cho chạy, dừng và điều khiển các timer.
6.3.5. Khởi động và truy xuất các thanh ghi timer.
56
61
62
63
64
67
72
72
74
74
74
78
82
136
137
138
139
OPEN.PTIT.EDU.VN
6.4 Bộ điều khiển truyền tin nối tiếp UART của 8051.
6.4.1 Giới thiệu.
6.4.2 Thanh ghi điều khiển cổng nối tiếp.
6.4.3 Các chế độ hoạt động
6.4.4 Khởi động và truy xuất các thanh ghi cổng nối tiếp
6.4.5 Truyền thông tin trong hệ thống đa xử lý.
6.4.6 Tốc độ cổng nối tiếp.
6.5 Ngắt của vi điều khiển 8051.
6.5.1. Giới thiệu.
6.5.2. Tổ chức ngắt của 8051.
6.5.3. Các vector xử lý ngắt.
6.5.4. Thiết kế chương trình dùng các ngắt.
6.5.5. Các ngắt của 8051
6.6 Tập lệnh và hướng dẫn lập trình trên 8051.
6.6.1 Các chế độ địa chỉ.
6.6.2 Tập lệnh của 8051.
6.6.3 Chương trình hợp ngữ 8051.
6.7 Bộ nhớ ROM của vi điều khiển 8051.
Chưong 7 : Thiết kế hệ thống chuyên dụng trên on – chip 80C51 (4 tiết)
7.1 Thiết kế hệ đo thông số tín hiệu xung
7.1.1 Nguyên tắc đo độ rộng xung
7.1.2 Sơ đồ phần cứng của hệ đo
7.1.3 Xây dựng chương trình điều khiển
145
147
147
148
149
151
152
153
153
157
159
168
173
173
173
174
175
181
181
181
189
189
191
195
195
195
212
213
214
214
214
215
225
227
229
229
232
237
246
251 OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý
CHƯƠNG 1: KIẾN TRÚC CỦA HỆ THỐNG VI XỬ LÝ
Giới thiệu:
- Đều được kết nối từ các cổng logic cơ bản.
- Dữ liệu số đưa tới các ngõ vào sẽ được biến đổi theo một hàm số nhất định thành dữ liệu trên
các ngõ ra.
Với cấu hình nối cứng các cổng logic cơ bản để tạo thành một IC số với một chức năng cụ
thể như trên, làm việc sử dụng các IC số có các nhược điểm như: cùng một chức năng nhưng sử
dụng nhiều lần trong mạch, sẽ phải sử dụng nhiều IC số. Khi muốn thực hiện các công việc khác
nhau, cần thực hiện các mạch số khác nhau. Ví dụ, một công việc yêu cầu hai phép cộng nhị phân
sẽ phải sử dụng hai IC cộng khác nhau. Nếu có nhiều hơn một phép tính so với mạch đã thực hiện
sẽ cần phải làm một mạch khác.
Với sự ra đời của công nghệ LSI, cho phép tích hợp rất nhiều cổng logic trong một vi mạch
nhỏ, người ta nghĩ đến chuyện thiết kế một IC số có thể thực hiện mọi chức năng số mà không cần
phải thay đổi mạch điện. Nguyên tắc thực hiện của loại IC số này có thể biểu diễn trong sơ đồ
khối hình 1.1.
1
OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý
Sơ đồ bao gồm khối các hàm số cơ bản và các bộ đệm được kết nối với nhau thông qua
các mạch kiểm soát (không kết nối cố định, mà chỉ kết nối khi có các tín hiệu cho phép). Dữ liệu
có thể di chuyển từ bộ đệm này tới bộ đệm khác và từ các bộ đệm tới xử lý tại các hàm cơ bản khi
có các tín hiệu cho phép thích hợp. Một chức năng số phức tạp (một bài toán hay một công việc
nào đó), thay vì phải thực hiện bằng một mạch số nối cứng, có thể thực hiện từng bước bằng cách
tuần tự thực hiện các hàm số cơ bản trong IC này. Với cấu hình này, sơ đồ có thể thực hiện mọi
chức năng số phức tạp mà không cần thay đổi mạch kết nối các IC số. Đây là cấu hình cơ bản nhất
của một bộ vi xử lý.
lý không thể hoạt động một mình, mà chúng cần được kết nối ghép với các mạch phụ cận như:
mạch cung cấp xung nhịp, bộ nhớ lưu trữ chương trình, các giao tiếp để liên lạc với người sử dụng
hay thiết bị điều khiển. Nguyên tắc cấu tạo và cách thức kết nối giữa vi xử lý và các mạch phụ cận
cần thiết của nó được gọi là công nghệ phần cứng của hệ thống vi xử lý (Hardware).
Hệ thống mạch
điện tử số
Các thiết bị xuất
nhập và chấp hành
điều khiển
Các chương trình
phần mềm
Hình 1.2: Sơ đồ khối mô tả hoạt động của hệ thống vi xử lý.
Để hệ thống mạch phần cứng đã được kết nối đúng có thể thực hiện một bài toán, một
công việc, cần cung cấp cho vi xử lý một chương trình thích hợp. Công việc tạo ra các chương
2
OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý
trình cung cấp cho các hệ thống vi xử lý hoạt động được gọi chung là công nghệ phần mềm
(Software). Có thể mô tả cơ chế của một hệ thống vi xử lý trên hình 1.2.
1.1.3. Tổng quát về phần cứng hệ thống vi xử lý
Phần cứng một hệ thống vi xử lý bao gồm 3 khối mạch chính trên hình 1.3 bao gồm:
- Bộ vi xử lý, hay còn được gọi là đơn vị xử lý trung tâm CPU (Central Processing Unit) có CPU
Bộ
nhớ
I/O
Thiết
bị
ngoại
vi
Chương
trình
Hình 1.3: Sơ đồ khối hệ thống vi xử lý Chương trình ngôn
ngữ cấp cao
Hệ thống mạch
điện tử số
Chương trình hợp
ngữ
(các lệnh gợi nhớ)
Chương trình mã
máy
(tập hợp các bit 0
và 1)
Hình 1.4: Sự phát triển của ngôn ngữ phần mềm. 1.2. TỔ CHỨC BỘ NHỚ CỦA HỆ THỐNG VI XỬ LÝ
Trong hệ thống mạch điện tử phần cứng của hệ thống vi xử lý mô tả trên hình 1.3, bộ nhớ
là các IC nhớ được gọi là bộ nhớ bán dẫn hay bộ nhớ chính của hệ thống vi xử lý. Ngoài bộ nhớ
bán dẫn, hệ thống vi xử lý còn có các thiết bị khác sử dụng để lưu trữ dữ liệu và chương trình, đó
là các thiết bị nhớ ngoài như: ổ đĩa cứng, ổ đĩa mềm, ổ đĩa quang học …. Chúng đóng vai trò là
các thiết bị ngoại vi của hệ thống. Phần này chỉ mô tả về cấu tạo và nguyên tắc hoạt động của các
loại bộ nhớ bán dẫn.
Bộ nhớ bán dẫn được chia thành hai loại chính: bộ nhớ chỉ đọc ROM (Read Only
Memory) và bộ nhớ có thể đọc ghi được hay còn gọi là bộ nhớ truy cập ngẫu nhiên RAM
trạng thái của A2A1A0 sẽ có một ô nhớ được chọn.
+Vcc
T3 P3 T2 P2 T1 P1 T0 P0
D3 D2 D1 D0
A0
A1
A2
Giải
mã địa
chỉ
Multiplex
Hình 1.5: Nguyên tắc cấu tạo của bộ nhớ ROM.
Mỗi loại bộ nhớ ROM sẽ có cách kết nối các điểm của ma trận nhớ khác nhau như trên
hình 1.6. Mask ROM có các điểm của ma trận nhớ được kết nối ngay khi sản xuất. Bộ nhớ PROM
kết nối các điểm ma trận nhớ bằng các diode và các cầu chì mảnh, khi lập trình cần cung cấp dòng
Hình 1.7: Nối các điểm ma trận nhớ của các loại ROM.
Ngoài các tín hiệu địa chỉ và điều khiển các bộ nhớ ROM còn có các tín hiệu điều khiển,
hình 1.8 mô tả các tín hiệu của EPROM 2764 trong đó:
A12 – A0 : Các đường địa chỉ.
D7 – D0 : Các đường dữ liệu.
CE (Chip Enable): Tín hiệu chọn mạch, tín hiệu này không tích cực BUS dữ liệu sẽ ở trạng thái
trở kháng cao.
OE (Output Enale): Tín hiệu cho phép xuất cho phép bộ đệm dữ liệu ngõ ra để cung cấp dữ liệu từ
bên trong ra ngoài các đường D7 – D0.
VPP : Ngõ vào điện áp cao cung cấp nguồn lập trình cho EPROM.
PGM: Ngõ vào cung cấp xung lập trình cho EPROM.
U1
2764
10
9
8
7
6
5
4
3
25
24
21
23
2
11
12
13
10
A
11
A
12
D0
D1
D2
D3
D4
D5
D6
D7
OE
PGM
VPP
CE
Hình 1.8: Các tín hiệu EPROM 2764.
6
OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý
1.2.2. Cấu trúc và nguyên tắc làm việc của bộ nhớ RAM
Hình 1.9: Cấu tạo một bit nhớ SRAM.
Hình 1.9 mô tả cấu tạo của một bit nhớ SRAM, trong sơ đồ khi cấp nguồn một trong hai
transistor M1 hoặc M2 dẫn, giả sử M2 dẫn Q = 0 nên M1 không dẫn, lúc này các đường BL và
BL\ sẽ được cung cấp tới mạch khuếch đại đọc để cung cấp dữ liệu mức 0 khi được chọn. Để ghi
1
M
1
X
M
3
M
2
C
S
BL
2
RWL
V
D
D
V
D
D
2
V
T
D
V
V
D
D
2
Word
N
-1
Tế bào
N
hớ
M
bits
M
bits
S
0
S
1
S
2
S
N
-2
A
0
A
1
A
K
-1
K
=
Hình 1.11: Tổ chức lưu trữ các bit trong bộ nhớ.
Với cấu trúc trên với dung lượng nhớ lớn, ma trận nhớ sẽ mất đối xứng (nhiều hàng, ít
cột), để ma trận nhớ đối xứng có thể sử dụng thêm bộ giải mã cột như hình 1.12. Tương ứng với
một trạng thái của các địa chỉ cột sẽ chọn được một nhóm cột duy nhất cung cấp dữ liệu ra bên
ngoài.
Row Decoder
Bit line
2
L2 K
Word line
A
K
A
K11
A
L21
A
0
M.2
K
A
K21
Sense amplifiers / Drivers
Column decoder
Input-Output
(M bits)
Storage cel
l
y xuất bộ nhớ là khoản thời gian từ lúc bộ nhớ nhận được địa chỉ và các tín hiệu điều
khiển cho đến khi đưa được dữ liệu ra tuyến dữ liệu trong chế độ đọc và lưu xong dữ liệu vào các
bit nhớ trong chế độ ghi. Bộ nhớ có thời gian truy xuất càng nhỏ thì hoạt động càng nhanh.
Dung lượng bộ nhớ tuỳ thuộc vào số đường dữ liệu và số đường địa chỉ của nó. Bộ n
g địa chỉ, D đường dữ liệu sẽ có dung lượng 2
A
x D bit. Bộ nhớ có dung lượng càng lớn thì
càng chứa được nhiều thông tin.
g trong hệ thống vi xử lý thường tổ chức theo đơn vị truy xu
được kết nối sao cho truyền dữ liệu với CPU theo bội số của byte. Trong thực tế, bộ nhớ
bán dẫn được sản xuất theo dạng các linh kiện có dung lượng hạn chế (từ vài KB cho đến cỡ vài
chục MB). Trong hệ thống vi xử lý thường có ít nhất hai loại bộ nhớ (ROM và RAM), mặt khác
trong trường hợp dung lượng các IC bộ nhớ không đủ đáp ứng dung lượng bộ nhớ của hệ thống
khi thiết kế, nhà thiết kế phải ghép nhiều IC nhớ lại. Các IC nhớ sẽ sử dụng chung các BUS dữ
liệu và địa chỉ, vì vậy tại một thời điểm truy xuất hệ thống phải được kết nối sao cho chỉ có một
#3
A
1
7
A
0
:
D
7
D 0
:
R
D
WR
C
S
A
19
256 KB
#2
A
1
7
A
0
:
D 7
D
0
:
D 7
D
:
0
R
D
WR
C
S
I
1
O
3
I 0
O
2
O1
O
0
9
OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý
Công vi ừ IC nhớ trong một hệ thống vi xệc xác định vùng địa chỉ cho t ng ử lý được gọi là
lập bản
1.3. ÀO RA TRONG HỆ THỐNG VI XỬ LÝ
.3.1. Cấu trúc và nguyên tắc làm việc của cổng vào ra
hiết bị ngoại vi khác nhau, các thiết
trên tất cả các đường dữ liệu với
ưng cũng có các
iết bị
vào ra.
1
Mạch ba trạng thái là cấu trúc số cơ
cổng vào ra của hệ thống vi xử lý. Cấu tạo của cổng ba trạng thái được mô tả trên hình 1.14.
D
Q
G
Cổng đệm 3 trạng thái
Cổng cài
Hình 1.14: Các cổng vào ra số cơ bản
OC thái tích cực, vì vậy tín hiệu cho phép này thường được cấp từ bộ giải mã địa chỉ, như trên hình
1.15 cổng đệm 3 trạng thái sẽ mở khi địa chỉ cung cấo từ CPU là FFFFH = 1111 1111 1111
1111B. Khi tín hiệu cho phép không tích cực, ngõ ra của cổng đệm sẽ ở trạng thái trở kháng cao,
ngõ vào sẽ không ảnh hưởng tới ngõ ra, như vậy BUS dữ liệu sẽ được ngăn cách với thiết bị ngoại
vi mà nó điều khiển, lúc này CPU có thể sử BUS dữ liệu để liên lạc với một thiết bị khác, tương
ứng với một địa chỉ khác.
Khác với cổng đệm,
10
OPEN.PTIT.EDU.VN
hình 1.16.
T m tắt nội dung học tập:
Trong chương này cần nhớ cá
• Vi xử lý là một vi mạch số có thể th
bằng cách thực hiện tuần tự các chức năng số cơ bản.
Một lệnh của bộ vi xử lý là chuỗi các bit 0, 1 cung c
năng số cơ bản của nó.
Một chương trình vi xử lý là m
công việc cần thực hiện.
Để có hệ thống vi xử lý h
mềm hoạt động đúng.
Phần cứng hệ thống v x
để điều khiển hoạt động của toàn bộ hệ thống. Bộ nhớ là nơi lưu trữ các chương trình, là nơi
khai báo các hằng và biến trong chương trình. Vào ra để giao tiếp với các thiết bị bên ngoài.
Các khối trong hệ thống vi xử lý được kết nối với nhau bằng một loạt các đường dây dẫn điệ
mỗi đường này được gọi là một tín hiệu của hệ thống, các tín hiệu được chia thành 03 nhóm
D0
D7
liệu giữa các khối. CPU sử dụng một BUS dữ liệu để truyền dữ liệu với mọi nơi nên nó cần
BUS địa chỉ để xác định vị trí nào sẽ truyền dữ liệu với nó. BUS điều khiển sẽ xác định các
chế độ làm việc khác nhau của hệ thống.
Bộ nhớ bán dẫn có ba chế độ làm việc ch
• ính là đọc, ghi và không chọn. Khi không chọn các
• hi bằng các logic điều khiển thông thường của vi xử lý, bộ nhớ
• iện mạch điện sao cho ứng với một địa chỉ mà CPU cung cấp
• ẽ truyền dữ liệu ở ngõ vào tới ngõ ra khi có tín hiệu chọn mạch. Khi không
• bộ đệm cài được sử dụng làm các cổng vào ra để cho phép thiết bị truyền dữ liệu với CPU
• ạch sao cho ứng với một địa chỉ mà
ÀI TẬP:
ài 1:
Cho biết địa chỉ bắt đầu của một vùng nhớ Ram là 00000H và dung lượng của vùng nhớ
Bài 2 t, vẽ bản đồ bộ nhớ
Bài 3: hớ sau:
BUS địa chỉ và dữ liệu của bộ nhớ ở trạng thái trở kháng cao. Khi muốn đọc bộ nhớ cần tác
động tín hiệu chọn bộ nhớ, cung cấp địa chỉ xác định ô nhớ sẽ đọc trong bộ nhớ, cung cấp tín
hiệu yêu cầu đọc và bộ nhớ sẽ cung cấp dữ liệu ra BUS dữ liệu. Khi muốn ghi bộ nhớ cũng
cần cung cấp tín hiệu chọn bộ nhớ, cung cấp địa chỉ ô nhớ sẽ ghi, cung cấp dữ liệu cần ghi và
cung cấp tín hiệu yêu cầu ghi.
Các bộ nhớ RAM có thể đọc g
ROM chỉ có thể đọc bằng các logic điều khiển thông thường, muốn ghi dữ liệu vào nó cần có
các chế độ điều khiển đặc biệt.
Giải mã địa chỉ bộ nhớ là thực h
chỉ có một vi mạch nhớ duy nhất được cung cấp tín hiệu chọn mạch, các vi mạch nhớ còn lại
sẽ không được chọn và có các BUS ở trạng thái trở kháng cao và chúng sẽ không kết nối về
điện với hệ thống.
Các bộ đệm và cài s
được chọn các bộ đệm sẽ có ngõ ra trở kháng cao, còn các bộ cài sẽ giữ lại trạng thái ra trước
(
256KB
)
EPROM
(
256KB
)
SRAM (512KB)
EPROM
(
256KB
)
EPROM
(
256KB
)
SRAM (512KB)
EPROM
(
256KB
)
SRAM
(
128KB
)
SRAM
12
OPEN.PTIT.EDU.VN
Chương 1: Kiến trúc của hệ thống vi xử lý Cho biết vùng địa chỉ của từng bộ nhớ trong các bản đồ (các bộ nhớ đều có 8 bit dữ liệu).
Bài 4: T
0H.
ai cổng vào sử dụng
hực hiện cổng ra điều khiển tám LED đơn có địa chỉ là F000H.
Bài 5: Thực hiện cổng vào nhận dữ liệu từ 8 phím nhấn có địa chỉ là F00
Bài 6: Thực hiện mạch giải mã địa chỉ vào ra trong hệ thống có 2 cổng ra và h
các bộ đệm cài 8 bit. 13
Hình 2.1: Sơ đồ khối bộ vi xử lý 80286
EXECUTION UNIT (EU)
ADDRESS UNIT (AU)
INSTRUCTION
UNIT (IU)
INSTRUCTION
LIMIT
CHECK
OFFSET
ADDER
REGISTER
LIMIT
CHECK
ALU
CONTROL
14
OPEN.PTIT.EDU.VN
Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86
2.1.1. Sơ đồ khối của vi xử lý 80286 Intel
Bộ vi xử lý 80286 được cấu tạo từ 4 khối chức năng có thể làm việc song song:
- Khối giao tiếp BUS : BU (Bus Unit).
- Khối giải mã lệnh : IU (Instruction Unit)
- Khối thực hiện lệnh : EU (Execution Unit)
- Khối tạo địa chỉ : AU (Address Unit)
2.1.2.
Khối tạo địa chỉ (AU)
AU đảm bảo việc quản lý, bảo vệ bộ nhớ, tuỳ theo chế độ địa chỉ các chương trình sẽ sử dụng
các loại địa chỉ logic khác nhau, AU có nhiệm vụ chuyển các địa chỉ logic quản lý trong chương
trình phần mềm thành địa chỉ vật lý cung cấp tới BU để giao tiếp với bên ngoài. Địa chỉ vật lý là
địa chỉ cung cấp trực tiếp cho bộ nhớ và vào ra, còn địa chỉ logic là các giá trị được chương trình
quản lý sử dụng để tạo ra địa chỉ vật lý, đó chính là các địa chỉ đoạn (segment) và địa chỉ độ dời
(offset).
15
OPEN.PTIT.EDU.VN
Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86
cách nhanh chóng. CPU có càng nhiều thanh ghi, thì tốc độ thực hiện một chương trình càng cao,
do giảm được thời gian truy xuất các hằng, biến ngoài bộ nhớ. Giảm được số byte lệnh do không
phải cung cấp địa chỉ các dữ liệu toán hạng. Nhưng tất nhiên khi số lượng thanh ghi quá lớn thì
việc truy cập chúng cũng trở nên phức tạp như đối với các ô nhớ.
Để dễ dàng truy xuất, các thanh ghi được chia ra các nhóm với các chức năng riêng biệt nào
đó. Các hãng sản xuất khác nhau đưa ra các tên gọi các thanh ghi khác nhau. 80286 có các nhóm
thanh ghi: Các thanh ghi đa năng, các thanh ghi quản lý mảng, các thanh ghi điều khiển và trạng
thái và các thanh ghi đặc biệt.
2.2.1. Các thanh ghi đa năng
Các thanh ghi đa năng có thể sử dụng cho nhiều chức năng khác nhau. Thông thường các
thanh ghi đa năng trước hết đảm nhiệm chức năng chứa dữ liệu, ngoài ra các thanh ghi này có thể
sử dụng cho các chức năng khác như: chứa địa chỉ, làm bộ đếm,
Intel 80286 có tám thanh ghi đa năng 16 bit, các thanh ghi này đều có thể sử dụng làm thanh
ghi chứa dữ liệu 16 bit như mô tả trên hình 2.2.
Các thanh ghi AX, BX, CX và DX có thể chia thành hai phần 8 bit riêng biệt sử dụng cho
việc lưu trữ các dữ liệu 8 bit: AH, AL, BH, BL, CH, CL, DH, DL.
Thanh ghi AX (Accumulator) còn mang chức năng thanh ghi chứa trong các lệnh nhân và
chia, trong các lệnh này thanh ghi AX giữ một toán hạng và kết quả cuối cùng. Ví dụ trong lệnh
MUL BX dữ liệu trong thanh ghi AX sẽ nhân với dữ liệu trong thanh ghi BX và kết quả chứa
trong thanh ghi DX và AX.
Thanh ghi BX (base) trước hết có thể sử dụng làm thanh ghi giữ địa chỉ bộ nhớ, ví dụ trong
lệnh MOV DH,[BX] dữ liệu tại ô nhớ có địa chỉ giữ trong BX sẽ chuyển vào thanh ghi DH. BX
còn giữ chức năng thanh ghi con trỏ cơ sở, khi sử dụng trong chức năng này thanh ghi BX giữ giá
trị địa chỉ cơ sở, địa chỉ truy cập bộ nhớ sẽ bằng giá trị chứa trong BX cộng với một giá trị chỉ thị
trong lệnh. Ví dụ trong lệnh MOV DL,[BX+03] dữ liệu trong bộ nhớ từ địa chỉ [BX+03] được di
Thanh ghi con trỏ ngăn xếp SP (Stack Pointer) đóng vai trò giữ địa chỉ đỉnh ngăn xếp trong
các lệnh truy cập tới ngăn xếp như: lệnh nạp ngăn xếp PUSH, lệnh lấy dữ liệu khỏi ngăn xếp POP,
lệnh gọi chương trình con CALL
Ngăn xếp là vùng nhớ được truy cập theo nguyên tắc vào trước ra sau FILO (Fist IN Last Out)
nhờ vào cơ chế tự động thay đổi của SP như mô tả trên hình 2.3. Khi khởi động SP giữ địa chỉ của
đỉnh ngăn xếp, trỏ tới giá trị cuối cùng chứa trong ngăn xếp (LastValue). Sau mỗi lệnh PUSH giá
trị dữ liệu sẽ được nạp vào đỉnh ngăn xếp và SP tự động giảm đi để giữ địa chỉ giá trị mới này.
Trên hình 2.3 sau 3 lệnh PUSH thanh ghi SP sẽ giữ địa chỉ ô nhớ chứa giá trị của thanh ghi CX.
lastvalue
????
????
????
????
????
????
←
SP
đ
ị
a chỉ cao
đ
ị
a chỉ thấ
p
Hình 2.3: Thao tác nạp ngăn xếp và sự thay đổi của thanh ghi SP
2.2.2. Các thanh quản lý đoạn
Các thanh ghi quản lý đoạn của Intel 80286 chia thành hai phần: phần chứa bộ chọn đoạn và
phần chứa bộ mô tả đoạn. Phần chứa bộ chọn đoạn (còn gọi là thanh ghi chọn đoạn) có thể nạp
bằng chương trình nên thường được gọi là phần hở. Phần chứa bộ mô tả đoạn (còn gọi là các
thanh ghi mô tả đoạn) được CPU nạp tự động, không thể truy cập bằng chương trình nên thường
được gọi là phần kín. Trong chế độ bảo vệ (Protect Mode) kích thước của một đoạn thay đổi từ 1
đến 5 GB, còn trong chế độ thực kích thước cực đại của một đoạn là 64KB. Tại một thời điểm sẽ
có 4 đoạn nhớ xác định bởi 4 thanh ghi chọn đoạn 16 bit CS, SS, DS và ES trong đó:
17
OPEN.PTIT.EDU.VN
Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86
+ Thanh ghi đoạn mã lệnh (CS - Code Segment) chứa địa chỉ đoạn mã lệnh của chương trình
hiện hành.
+ Thanh ghi đoạn ngăn xếp (SS - Stack Segment) chứa địa chỉ đoạn vùng nhớ ngăn xếp.
+ Các thanh ghi đoạn dữ liệu (DS - Data Segment), đoạn mở rộng (ES - Extra Segment) chứa
địa chỉ của các đoạn dữ liệu sử dụng trong chương trình.
Trong chế độ địa chỉ thực CPU tạo ra địa chỉ vật lý truy cập bộ nhớ bằng các địa chỉ logic là
địa chỉ đoạn (segment) và địa chỉ độ dời (offset).
Ngoài ra cờ nhớ còn được sử dụng như bit thêm trong các lệnh quay dịch, ví dụ khi dịch trái bit
ở MSB sẽ bị rớt ra ngoài, cờ C sẽ giữ lấy bit đó.
Cờ chẵn lẻ PF (Parity Flag)
Cờ chẵn lẻ được sử dụng thông báo số các bit 1 trong kết quả của phép tính logic là chẵn hay
lẻ, khi PF = 1 số bit 1 trong kết quả là một số chẵn. Cờ chẵn lẻ thường được sử dụng trong các
chương trình truyền các dữ liệu nối tiếp, trạng thái của cờ có thể được phát ra để bên thu có thể
kiểm tra xem dữ liệu nhận được đúng hay sai. Chú ý là cờ chẵn lẻ không tác động khi ALU thực
hiện các phép tính số học.
Cờ dấu SF ( Sign Flag)
Trong hệ thống vi xử lý có hai cách biểu diễn một số: Cách thứ nhất nó dùng tất cả các bit
của một thanh ghi để biểu diễn một số dương. Ví dụ một thanh ghi 8 bit có thể biểu diễn các số
thập phân dương từ 1 tới 255. Cách thứ hai CPU sử dụng bit trọng số cao nhất để làm bit dấu. Ví
18
OPEN.PTIT.EDU.VN
Chương 2: Nguyên tắc làm việc của bộ vi xử lý họ Intel 80x86
dụ như thanh ghi 8 bit thì bit D7 sẽ là bit dấu. Khi D7 ở mức 0 thì các bit D0 D6 giữ một số nhị
phân dương nằm trong khoảng 0 tới 127. Khi D7=1 thì thanh ghi sẽ giữ số nhị phân âm trong
khoảng –128 tới -1
Tổ hợp nhị phân từ 0000 0000 0111 1111 biểu diễn các số từ 0 127 tổ hợp tiếp theo 1000
0000 trong số có dấu được xem như là -128 và tiếp theo 1000 0001 = -127. Khi tiếp tục đếm lên
tới tổ hợp 1111 1111 = -1.
Cờ dấu S sẽ báo khi dấu thay đổi, cờ dấu =0 khi kết quả phép tính trong bộ chứa là số dương
(bit D7=0). Nếu bit D7=1 kết quả là một số âm 7 bit thì SF=1. Dựa vào cờ này mà các chương
trình này sẽ có cách tính thích hợp với các số có dấu.
Cờ tràn OF (Overflow Flag)
Cờ tràn OF được dùng trong các phép tính số học có dấu, nó chỉ thị kết quả là một số dương
lớn hơn hoặc là một số dương nhỏ hơn khả năng chứa của thanh ghi chứa kết quả. Ví dụ khi cộng
hai số dương trong hai thanh ghi 8 bit, CFsẽ được thiết lập mức 1 khi có sự tràn bit 1 từ D6 sang
D7, tức là khi dấu của số 7 bit thay đổi từ (+) sang (-) mặc dù kết quả phải là một số dương, như
chiều giảm địa chỉ. Các CPU như thế sẽ không có cờ định hướng.
19