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

Chương 10 - Các bộ vi xử lý tiên tiến của INTEL 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 (220.87 KB, 12 trang )

chơng 10
Các bộ vi xử lý tiên tiến của INTEL
1. Giới thiệu chung
Trong các chơng trớc ta đã trình by các vấn đề liên quan chủ yếu đến các
đặc tính v các khả năng của bộ vi xử lý 8086/8088. Tại chơng 1 ta cũng đã trình
by khái quát về các đặc điểm chính v các thông số của các bộ vi xử lý trong 2 họ chủ
yếu l Intel v Motorola. Bây giờ trớc khi đi vo giới thiệu một số vấn đề cụ thể của
họ Intel 80x86, ta tóm lợc các điểm nổi bật của các bộ vi xử lý trong họ ny.
Bộ vi xử lý 16 bit 80186 về cơ bản giống nh mạch 8086 nhng đợc mở rộng
thêm khả năng lm việc bởi vì nó đợc cấy thêm các bộ phận sau: bộ tạo xung đồng
hồ, bộ điều khiển ngắt u tiên, bộ đếm thời gian lập trình đợc, bộ điều khiển việc
thâm nhập trực tiếp vo bộ nhớ, bộ tạo thời gian đợi lập trình đợc v các mạch giải
mã địa chỉ. Nhìn vo cấu trúc của mạch 80186 ta có thể đánh giá đợc ngay rằng đây
chính l bộ vi xử lý rất thích hợp cho các ứng dụng trong công nghiệp.
Bộ vi xử lý 16 bit 80286 l một biến tớng khác của 8086 v ra đời vo cùng
một thời gian với bộ vi xử lý 80186 nhng đợc phát triển theo hớng khác. Thay vì
các phối ghép ngoại vi đợc cấy thêm nh ở 80186, 80286 có bên trong mạch quản lý
bộ nhớ (memory management unit, MMU) để lm việc với bộ nhớ ảo với cơ chế bảo vệ
bộ nhớ v khả năng địa chỉ hoá bộ nhớ vật lý với dung lợng đạt tới 16 MByte. Bộ vi
xử lý 80286 l thnh viên đầu tiên trong họ đợc thiết kế để có thể lm việc trong môi
trờng đa nhiệm hoặc nhiều ngời sử dụng.

308
Bộ vi xử lý 80386 l bớc phát triển tiếp theo của mạch 80286. Đây l bộ vi xử
lý 32 bit đầu tiên với bus địa chỉ 32 bit (khả năng địa chỉ hoá 4 GByte). ALU v các
thanh ghi thao tác với dữ liệu đều có độ di 32 bit lm cho tốc độ xử lý dữ liệu nhanh
hơn. Một đoạn trong hệ vi xử lý 80386 có thể có độ di tới 4GB thay vì 64 KB nh ở
các thế hệ trớc đó. Các mạch quản lý v bảo vệ bộ nhớ của 80386 đợc cải tiến nhiều
nên 80386 có thể hoạt động hữu hiệu hơn trong hệ lm việc đa nhiệm.
Bộ vi xử lý 80486 về cơ bản có quy mô nh 80386, nhng nó đợc tăng cờng
thêm ngay ở bên trong một bộ nhớ cache (bộ nhớ ẩn) với dung lợng 8 KB dùng chung


cho lệnh v dữ liệu. 80486 còn đợc cấy thêm một bộ đồng xử lý toán học dấu phảy
động (floating point unit, FPU). Khả năng thao tác của 80486 vì thế cao hơn, tuy khả
năng bảo vệ v quản lý bộ nhớ, khả năng phân biệt địa chỉ bộ nhớ thì vẫn giống nh
của 80386.
Bộ vi xử lý Pentium l bộ vi xử lý đầu tiên có bus dữ liệu 64 bit, bus địa chỉ
của nó vẫn chỉ có 32 có bit. So với 80486, Pentium đợc tăng cờng thêm một bộ nhớ
ẩn nữa với dung lợng 8 KB, nhờ vậy khi hoạt động nó dnh riêng một bộ nhớ ẩn 8
KB cho mã lệnh v một bộ nhớ ẩn 8 KB khác cho dữ liệu. Ngoi một bộ đồng xử lý
toán học dấu phảy động FPU có tốc độ 10 lần cao hơn so với ở bộ vi xử lý 80486,
Pentium còn có 2 bộ ALU 64 bit dnh cho các phép toán với số nguyên (integer unit,
IU), 2 bộ IU ny có khả năng lm việc song song. Tất cả các cải tiến ny đã nâng cao
đáng kể tốc độ hoạt động của hệ có Pentium so với các hệ vi xử lý khác của họ 80x86.

2. Vấn đề hệ điều hnh đa nhiệm hoặc nhiều ngời sử dụng

Khái niệm
Trớc khi đa ra định nghĩa hệ đa nhiệm - hệ nhiều ngời sử dụng ta hãy nói
qua chút ít về hệ lm việc theo kiểu phân chia thời gian. Trong hệ phân chia thời
gian với nhiều ngời sử dụng, CPU chạy một chơng trình ứng dụng của ngời ny
trong một khoảng thời gian cỡ vi mili giây v quay sang chạy một chơng trình ứng
dụng của ngời khác trong vi mili giây khác. Quá trình cứ tiếp tục nh vậy cho đến
khi các chơng trình ứng dụng của mọi ngời đều đợc phục vụ. Việc ny xảy ra
nhanh đến mức mỗi ngời sử dụng đều có cảm giác l máy tính chỉ lm việc riêng với
mình. Ta thấy các công việc của hình thức lm việc phân chia thời gian nh vậy sẽ
đợc coi l 'đồng thời' nếu tốc độ tính toán của CPU l rất nhanh trong khi khối lợng
tính toán của mỗi công đoạn đợc chia thời gian l rất nhỏ.
Trong thực tế đời sống đôi khi cũng có thể thấy cách tổ chức công việc nh
vậy. Một ví dụ l các vua cờ có thể đánh cờ cùng một lúc với 10 ngời ở 10 bn cờ khác
nhau. Thực tế thì vua cờ, vì l 'siêu cao thủ', nên cần rất ít thời gian để nghĩ một nớc
đi chống lại các đối thủ tầm thờng. Trong khi đó các đấu thủ của vua cờ, vì l các


309
'thấp thủ' nên đều cảm thấy phải chật vật lắm mới tìm ra đợc nớc đi cho mình
trong khi vua cờ đang đi các nớc cờ ở các bn khác.
Trở lại lĩnh vực máy tính, một hệ điều hnh với khả năng phối hợp các hoạt
động phân chia theo thời gian nh đã trình by ở trên có thể đợc gọi l hệ điều hnh
có nhiều ngời sử dụng hoặc cũng có thể gọi l hệ điều hnh đa nhiệm, vì mỗi ngời
sử dụng sẽ có ít nhất một tác vụ (task) cần đợc hoạt động dới sự điều khiển của hệ
điều hnh. MS DOS không phải l một hệ điều hnh đa nhiệm, do đó các máy tính
tuy có sử dụng các bộ vi xử lý cao cấp của Intel vốn đợc thiết kế để có thể lm việc đa
nhiệm, nhng vì chạy dới DOS nên vẫn chỉ l đơn nhiệm. Các hệ điều hnh Unix,
OS/2 hoặc MS Windows l các thí dụ của hệ điều hnh đa nhiệm.
Các hệ điều hnh đa nhiệm có thể lm việc theo theo 2 cách: định kỳ theo các
đoạn thời gian hoặc theo mức u tiên đặt trớc.

Vấn đề bảo tồn môi trờng lm việc

Các thanh ghi, dữ liệu dùng trong một tác vụ gọi l môi trờng, trạng thái
hoặc ngữ cảnh. Một khi muốn chuyển từ tác vụ ny sang tác vụ khác thì môi trờng
của tác vụ bị gián đoạn phải đợc bảo tồn để khi đến lợt công việc của nó lại có thể
tiếp tục đợc. Cách thông thờng để bảo tồn môi trờng l bảo quản các thông tin ny
trong một vùng ô nhớ đặc biệt hoặc một ngăn xếp, có thể mỗi tác vụ một đoạn ngăn
xếp riêng biệt. Khi cần thiết ta sẽ cất môi trờng của một tác vụ ny v lấy lại môi
trờng của một tác vụ khác, công việc ny đợc gọi l chuyển ngữ cảnh.


Vấn đề tranh chấp khi sử dụng chung ti nguyên
Vấn đề tranh chấp giữa những ngời sử dụng chung một số ti nguyên trong
hệ thống sẽ nảy sinh khi có một ngời muốn truy nhập máy in hoặc ổ đĩa trong khi đó
một ngời khác lại đang in văn bản hoặc ghi/đọc ổ đĩa. Hệ điều hnh phải có các cờ

báo bận cho các ti nguyên đang đợc sử dụng v phải sắp xếp các nhu cầu dùng
chung ti nguyên theo hng đợi để phục vụ lần lợt.


Vấn đề bảo vệ bộ nhớ
Một vấn đề khác có thể nảy sinh khi lm việc trong hệ thống nhiều ngời sử
dụng l trong trờng hợp có 2 hoặc nhiều ngời cùng một lúc muốn đọc v thay đổi
nội dung của một vùng nhớ dùng chung. Hệ điều hnh phải có cơ chế bảo vệ sao cho
một vùng nhớ đang đợc dùng cho tác vụ ny không bị hoạt động của các tác vụ khác
lm cho sai lệch.
Bản thân hệ điều hnh cũng cần đợc bảo vệ bởi vì trong khi thực hiện tác vụ,
một ngời sử dụng no đó có thể có các lệnh ghi vo vùng nhớ chứa mã lệnh của hệ
điều hnh. Nếu hệ điều hnh không có cơ chể bảo vệ thì thảm hoạ có thể xảy ra bất
cứ lúc no do hệ điều hnh bị thay đổi v gây lỗi. Để giải quyết việc ny ngời ta

310
thờng cấu trúc hệ điều hnh từ nhiều lớp v gán mức đặc quyền thâm nhập vo các
lớp ny cho ngời sử dụng v cho hệ điều hnh theo quy luật: ngời sử dụng chỉ đợc
quyền thâm nhập vo vùng dữ liệu ở lớp ngoi với mức đặc quyền thấp nhất (lớp
ngoi chứa mã v dữ liệu dnh cho ngời sử dụng). Khi muốn thâm nhập vo lớp
trong, ngời sử dụng phải thâm nhập qua các cơ chế phức tạp để không có khả năng
gây lỗi cho phần mã v dữ liệu của hệ điều hnh. Bản thân hệ điều hnh để mã v dữ
liệu của nó ở lớp trong cùng v nó đợc gán cho quyền thâm nhập vo tất cả các lớp.
Các bộ vi xử lý của Intel có 4 mức đặc quyền, trong khi đó các bộ vi xử lý của Motorola
có 2 mức.


Vấn đề quản lý bộ nhớ
Có 2 lý do khiến cho bộ nhớ phải đợc quản lý đặc cách khi lm việc trong hệ
điều hnh đa nhiệm. Lý do đầu tiên l do bộ nhớ bán dẫn thờng có kích thớc bé

không đủ chứa cả hệ điều hnh lẫn các chơng trình của ngời sử dụng. Lý do thứ hai
l các vùng nhớ phải đợc bảo vệ một cách chắc chắn để khỏi bị chơng trình của
ngời sử dụng lm hỏng. Một vi hệ điều hnh có thể lm luôn chức năng quản lý bộ
nhớ, nhng tốt nhất l có riêng các đơn vị quản lý bộ nhớ (MMU) thực hiện bằng
phần cứng.
Để giải quyết đợc các vấn đề nêu trên một cơ chế nhớ khác ra đời: bộ nhớ ảo.
Đó l sự kết hợp các bộ nhớ ẩn (SRAM với tốc độ rất cao), bộ nhớ chính (DRAM) v v
bộ nhớ phụ (ổ đĩa cứng) hoạt động dới sự quản lý của MMU, sao cho dới quan điểm
lập trình v đối với ngời sử dụng tập hợp các bộ nhớ trên luôn tạo đợc cảm giác nh
l một bộ nhớ thuần nhất với dung lợng lớn (gần bằng dung lợng của ổ đĩa cứng)
nhng lại lm việc với tốc độ cao (gần bằng tốc độ của bộ nhớ chính).
Bộ nhớ ảo có thể đợc quản lý bằng cách chia bộ nhớ thnh các mảng nhỏ có
độ lớn tính theo đoạn, động tác ny gọi l phân đoạn (đối với họ Intel có từ các bộ vi
xử lý 80286 trở đi) hoặc trang, động tác ny gọi l phân trang (đối với họ Intel có từ
các bộ vi xử lý 80386 trở đi). Trong bộ nhớ ảo nh vậy, từng mảng mã lệnh v mảng
dữ liệu dùng cho chơng trình hiện tại đợc tải từ ổ đĩa vo DRAM v đợc truy nhập
đến bởi bộ điều khiển của bộ nhớ ẩn khi cần thiết. Nếu chơng trình đang chạy cần
đến một mảng dữ liệu hoặc một mảng mã lệnh no đó m mảng ny lại không có
trong DRAM thì nó sẽ đợc tải vo DRAM. Nếu DRAM không còn chỗ để chứa thì
một mảng no đó của DRAM sẽ đợc xác định theo các tiêu chuẩn nhất định để bị
đẩy trở lại ổ đĩa, nhờng chỗ cho mảng đang cần lấy vo. Một cơ chế tơng tự cũng sẽ
điều khiển hoạt động của bộ nhớ ẩn v bộ nhớ chính. Nói cách khác, bộ nhớ DRAM
đóng vai trò l bộ nhớ ẩn của bộ nhớ phụ, còn chính bản thân bộ nhớ DRAM lại có bộ
nhớ cache lm bộ nhớ ẩn cho riêng của mình.
Trong thực tế 1 đoạn có thể có độ lớn cỡ 1 byte-4 GB còn 1 trang thông thờng
có độ lớn l 4 KB.

311
Nh trên đã nói, bộ nhớ chính (còn đợc gọi l bộ nhớ vật lý) l bộ nhớ bán
dẫn ROM+RAM thực tế có mặt trong hệ thống vi xử lý, với dung lợng lớn nhất bị

hạn chế bởi khả năng phân biệt địa chỉ của CPU. Theo quan điểm của bộ nhớ ảo thì
bộ nhớ vật lý chẳng qua chỉ l chỗ chứa các mảng (các đoạn hay các trang) hiện đang
có liên hệ với hệ điều hnh hoặc với chơng trình của ngời sử dụng. Để truy nhập
đến bộ nhớ ảo ta dùng địa chỉ ảo (địa chỉ logic) còn để truy nhập đến bộ nhớ vật lý ta
phải dùng địa chỉ vật lý. Trong hệ vi xử lý có MMU, CPU khi hoạt động cần đọc lệnh
hoặc toán hạng thì nó đa ra địa chỉ ảo của toán hạng hoặc của lệnh đó. MMU nhận
địa chỉ ảo v dịch (chuyển đổi) nó ra địa chỉ vật lý, địa chỉ ny đợc đa lên bus địa
chỉ để truy nhập bộ nhớ vật lý (hình 10.1).



bộ dịch địa chỉ của
MMU
địa chỉ vật lý
địa chỉ ảo



Hình 10.1. Chức năng dịch (chuyển đổi) địa chỉ của MMU.


Dịch địa chỉ trong hệ thống lm việc theo cách phân đoạn



địa chỉ logic

SELECTOR OFFSET







:
:
:
:





Hình 10.2. Dịch địa chỉ ảo địa chỉ vật lý trong hệ thống phân đoạn.
địa chỉ cơ sở
của đoạn

các bit bảo vệ,
điều
khiển
+
địa chỉ
vật lý
Bảng
mô tả
Bộ phận tính
địa chỉ kiểu
n
p
hân đo



312


Trong các hệ thống có dùng bộ vi xử lý từ 80286-Pentium, khi lm việc trong
chế độ phân đoạn, một bảng mô tả sẽ đợc dùng lm bộ dịch địa chỉ (hình 10.2). Địa
chỉ logic gồm 2 phần: phần chọn (SELECTOR) dùng để chỉ vo bảng mô tả để chọn ra
địa chỉ cơ sở đoạn v một phần l độ lệch (OFFSET) so với địa chỉ cơ sở đoạn. Trong
phần chọn có 2 bit dnh riêng để mã hoá mức đặc quyền thâm nhập vo một đoạn no
đó của chơng trình đang chạy. ở bảng mô tả, mỗi phần tử của bảng ny gồm 2 phần,
một phần chứa địa chỉ cơ sở đoạn dùng để tìm ra địa chỉ vật lý của toán hạng, một
phần chứa các bit quản lý (gồm các bit điều khiển v các bit bảo vệ của đoạn). 2 bit
trong số các bit ny chứa mức đặc quyền thâm nhập của đoạn. Khi một chơng trình
có nhu cầu thâm nhập một đoạn no đó, MMU sẽ so sánh mức đặc quyền của chơng
trình đợc ghi trong phần chọn v mức đặc quyền của đoạn đợc ghi trong phần các
bit quản lý. Nếu mức đặc quyền trong phần chọn l lớn hơn hoặc bằng mức đặc quyền
trong phần quản lý thì MMU cho phép chơng trình đợc thâm nhập vo đoạn đợc
yêu cầu. Trong trờng hợp ngợc lại, chơng trình yêu cầu thâm nhập không đợc
MMU trao cho quyền thâm nhập v MMU gây ra ngắt để báo cho CPU biết l có sự vi
phạm đặc quyền thâm nhập vo vùng nhớ. Bộ nhớ nhờ vậy m đợc bảo vệ.



Dịch địa chỉ trong hệ thống lm việc theo cách phân trang
Trong các hệ thống có dùng bộ vi xử lý từ 80386-Pentium, ngoi việc quản lý
bộ nhớ ảo theo đoạn, MMU còn có khả năng quản lý theo trang. Việc quản lý bộ nhớ
ảo theo trang rất đợc các nh chế tạo máy tính quan tâm. Các bộ vi xử lý loại RISC
v các bộ vi xử lý 680x0 của Motorola đều sử dụng cách quản lý ny. Việc Intel vẫn
còn dùng cách quản lý bộ nhớ ảo theo đoạn trong các vi xử lý đời mới cốt l để bảo

đảm tính tơng thích với 80268. Trong khi lm việc theo kiểu phân trang, ngời ta
chọn độ lớn của trang l 4KB để đạt đợc tốc độ tối u khi phải trao đổi các trang qua
lại giữa ổ đĩa v bộ nhớ bán dẫn. Khi lm việc theo kiểu phân trang, địa chỉ logic đợc
đa qua bộ phận tính địa chỉ theo kiểu phân đoạn để thu đợc địa chỉ tuyến tính, từ
đây nó đợc đa qua bộ phận phân trang để dịch thnh địa chỉ vật lý (xem hình 10.3).




Bộ phận tính địa

chỉ kiểu phân đoạn
Bộ phận tính địa

chỉ kiểu phân trang
địa chỉ ảo
địa chỉ tuyến tính
dịa chỉ vật lý







313
Hình 10.3. Phân đoạn v phân trang trong 80386.
Trong các bộ vi xử lý từ 80386 trở đi có các thanh ghi điều khiển CR di 32
bit, đợc đánh số từ CR0-CR3. Khi muốn cho các bộ vi xử lý lm việc theo chế độ
phân trang, ta phải đa bit điều khiển thích hợp vo thanh ghi CR0 sao cho CR0

31
=1.
CR3 lúc ny sẽ chứa địa chỉ cơ sở của danh mục bảng trang.
Địa chỉ tuyến tính gồm 3 phần:
+ Phần danh mục (DIRECTORY) sẽ cộng với nội dung của CR3 để chỉ vo
một danh mục mong muốn trong danh mục các bảng trang.
+ Phần bảng trang (PAGE TABLE) sẽ đợc cộng với nội dung của danh mục
mong muốn trong danh mục các bảng trang thu đợc ở trên để chỉ tiếp vo một bảng
trang mong muốn trong các bảng trang.
+ Phần lệch (OFFSET) sẽ đợc cộng với nội dung của bảng trang mong muốn
trong các bảng trang thu đợc ở trên để chỉ tiếp vo toán hạng hoặc mã lệnh cần tìm
trong giới hạn của khuôn trang mong muốn.



Địa chỉ tuyến tính

DIRECTORY TABLE OFFSET















Hình 10.4. Dịch địa chỉ tuyến tính địa chỉ vật lý trong hệ thống phân trang.

Sau đây ta sẽ nói qua về cơ chế bảo vệ khi CPU lm việc ở chế độ phân trang.
Trong bảng trang, mỗi mục cho một khuôn trang 4 KB bao gồm các bit địa chỉ cơ sở
của khuôn trang v các bit quản lý. Trong danh mục bảng trang cũng vậy, mỗi mục
cho một bảng trang bao gồm các bit địa chỉ cơ sở của bảng trang v các bit quản lý.
Thanh
g
hi điều
khiển CR3

+
+
+
CPU
Bộ nhớ vật lý
Bảng trang
rang
31 0
31 0
31 0
31 0
Danh mục bảng t

314
Trong số các bit quản lý có bit U/S (user/supervisor) dùng để mã hoá các mức đặc
quyền (U/S=1 biểu thị mức đặc quyền của hệ điều hnh v ứng với mức 0, 1, 2 trong
chế độ phân đoạn; U/S=0 biểu thị mức đặc quyền của ngời sử dụng v ứng với mức 3

trong chế độ phân đoạn) v bit R/W (read/write) dùng để biểu hiện quyền ghi-đọc vo
trang hoặc vo bảng trang. Tổ hợp của 2 bit ny tạo thnh mã các mức đặc quyền
thâm nhập (ghi/đọc) khác nhau (11 l mức cao nhất, 00 l mức thấp nhất).
Sau khi đã nêu các đặc điểm chính chung nhất trong cơ chế hoạt động của các
bộ vi xử lý cao cấp của Intel, trong phần tiếp theo ta sẽ giới thiệu sơ qua hoạt động v
một số đặc điểm quan trọng khác của các bộ vi xử lý ny.

3. CPU 80286
Bộ vi xử lý 80286 có 16 bit dữ liệu v 24 bit địa chỉ riêng biệt (không dồn
kênh). Các tín hiệu của 80286 về cơ bản giống nh 8086. Nó hoạt động giống nh
8086 ở chế độ MAX v nó cần thêm một bộ điều khiển bus l 80288 v một mạch đồng
hồ l 80284. 80286 có mặt trong các máy IBM PC/AT v IBM PS/2.



D15-D0



80286




BHE
A0
A23-A1
D15-D8

CHẵN


A22-A0
D7-D0

Lẻ

A22-A0








(BHE: Bus high enable)
Hình 10.5. Phối ghép 80286 với bộ nhớ.


Phối ghép CPU 80286 với bộ nhớ
Bộ nhớ của 80286 cũng giống nh ở 8086 đợc tổ chức từ 2 băng: băng chẵn
(chứa các ô nhớ có địa chỉ chẵn) v băng lẻ (chứa các ô nhớ có địa chỉ lẻ). Khi lm việc
với băng chẵn thì phải có xung chọn A0=0, khi lm việc với băng lẻ thì phải có xung
chọn BHE=0. Muốn truy nhập đến một từ thẳng hng (byte thấp ở địa chỉ chẵn, byte
cao ở địa chỉ lẻ) thì cả 2 băng phải đợc chọn bởi A0=0 v BHE=0. Sơ đồ phối ghép
80286 với bộ nhớ đợc biểu diễn trên hình 10.5.

315

Chế độ địa chỉ thực v chế độ bảo vệ


CPU 80286 có thể lm việc ở một trong 2 chế độ: chế độ địa chỉ thực v chế độ
bảo vệ.
CPU 80286, sau khi đợc bật điện hoặc sau khi có xung reset, sẽ lm việc ở
chế độ địa chỉ thực, trong chế độ địa chỉ ny địa chỉ vật lý nằm trong giới hạn 1 MB
v đợc tính bằng cách cộng địa chỉ đoạn đã đợc dịch trái với địa chỉ lệch nh đã
đợc lm với 8086. Địa chỉ khởi động của 80286 l FFFFF0H, từ địa chỉ ny CPU
nhảy về địa chỉ khởi động giống nh ở 8086 (FFFF0H) để bắt đầu lm việc. Trong chế
độ ny 80286 hoạt động giống hệt 8086, nhng nhờ những cải tiến về mặt điện tử
mạch 80286 sẽ chạy nhanh hơn 8086 với cùng một tần số đồng hồ.
Khi đã ở chế độ địa chỉ thực, nếu 80286 chạy dới một hệ điều hnh đa
nhiệm, nó có thể đợc chuyển sang chế độ bảo vệ bằng cách thay đổi bit cho phép lm
việc ở chế độ bảo vệ có trong thanh ghi từ trạng thái máy (MSW) của 80286. Lúc ny
bộ MMU của 80286 bắt đầu lm việc v cho phép các cơ chế bộ nhớ ảo v cơ chế bảo
vệ hoạt động. Trong chế độ ny 80286 có khả năng lm việc với bộ nhớ ảo có dung
lợng tối đa 1 GB hoặc một bộ nhớ vật lý 16 MB. Một khi 80286 đã lm việc ở chế độ
bảo vệ, để đa nó trở lại chế độ địa chỉ thực ta chỉ có một cách duy nhất l tác động
vo chân reset. Vậy l hệ điều hnh không có khả năng để chuyển qua lại giữa 2 chế
độ. Hạn chế ny sẽ đợc gỡ bỏ trong các bộ vi xử lý từ 80386 trở đi.

Các lệnh mới chủ yếu của 80286

Các lệnh mới của 80286 bao trùm hết các lệnh của 8086. Ngoi ra 80286 còn
có các lệnh khác mạnh hơn v ta sẽ chỉ trình by sau đây các lệnh quan trọng nhất từ
quan điểm của ngời sử dụng để tạo ra các chơng trình ứng dụng.
Cần nhắc thêm l để dịch v cho chạy các lệnh của 80286 tại dòng đầu tiên
của chơng trình hợp ngữ ta phải có hớng dẫn chơng trình dịch:

.286


Các lệnh mới chủ yếu của 80286:

+ INS: cho phép đọc 1 byte hoặc 1 word từ cổng có địa chỉ cho bởi nội dung
thanh ghi DX vo thanh ghi no đó. Độ di thanh ghi đích sẽ quyết định đó l byte
hay từ.

Ví dụ
INS CX,DX ; đọc vo 1 từ
INS CL,DX ; đọc vo 1 byte

316

+ INSB/INSW: cho phép đọc 1 phần tử (byte/word) của chuỗi từ cổng, có địa
chỉ cho bởi nội dung thanh ghi DX, vo ô nhớ do cặp ES:DI chỉ ra, sau đó DI sẽ tự
động cập nhật để chỉ vo phần tử tiếp theo tuỳ thuộc đó l chuỗi byte/từ v tuỳ thuộc
giá trị cờ DF.
+ OUTS: cho phép đa 1 byte hoặc 1 word từ một thanh ghi no đó ra cổng có
địa chỉ cho bởi nội dung thanh ghi DX . Độ di thanh ghi gốc sẽ quyết định đó l byte
hay từ.

Ví dụ
OUTS DX,CX ; đa ra 1 từ
OUTS DX,CL ; đa ra 1 byte

+ OUTSB/OUTSW cho phép đa 1 phần tử (byte/word) của chuỗi từ ô nhớ, có
địa chỉ do cặp DS:SI chỉ ra, ra cổng có địa chỉ cho bởi nội dung thanh ghi DX, sau đó
SI sẽ tự động cập nhật để chỉ vo phần tử tiếp theo tuỳ thuộc đó l chuỗi byte/từ v
tuỳ thuộc giá trị cờ DF.
+ PUSHA: cất cả 8 thanh ghi đa năng vo ngăn xếp.
+ PUSH thtt: cất toán hạng tức thì toán hạng tức thì thtt vo ngăn xếp.

+ POPA: lấy lại cả 8 thanh ghi đa năng từ ngăn xếp.
+ các lệnh SHIFT/ROTATE đích, sốlần: sẽ cho phép viết trực tiếp sốlần dịch
hoặc quay ngay trong lệnh m không phải thông qua thanh ghi CL nữa.
+ IMUL đích, thtt: cho phép viết lệnh nhân với toán hạng tức thì thtt.
+ IMUL đích, sốbịnhân, thtt: cho phép viết lệnh nhân giữa số bị nhân với
số nhân l toán hạng tức thì thtt, trong đó: đich l thanh ghi 16 bit, sốbịnhân có
thể l thanh ghi 16 bit hay ô nhớ 16 bit.

4. CPU 80386 v 80486, Pentium

Nh trên đây đã nói, CPU 80386 v CPU 80486-Pentium có nhiều điểm khá
giống nhau, ngoại trừ việc trong 80486 đã có cấy sẵn bộ xử lý đấu phảy động FPU
hoặc trong Pentium có cả FPU lẫn 2 bộ IU (2 bộ ALU cho số nguyên 64 bit). Về mặt
lập trình có thể coi các bộ vi xử lý 80386 v 80486, Pentium l nh nhau.
Trong 80386 có 8 thanh ghi đa năng 32 bit l EAX, EBX, ECX, EDX, ESI,
EDI, EBP, ESP. Mỗi thanh ghi ny có thể hoạt động giống nh các thanh ghi 16 bit
của 8086. CPU 80386 còn có 6 thanh ghi đoạn 16 bit, đó l thanh ghi đoạn mã CS,
thanh ghi đoạn ngăn xếp SS v các thanh ghi đoạn dữ liệu DS, ES, GS, FS. Thanh
ghi EIP di 32 bit chứa bên trong thanh ghi IP của 8086 v thanh ghi cờ 32 bit
EFLAGS chứa bên trong thanh ghi FLAGS của 80286.


317
CPU 80386 có thể lm việc ở một trong ba chế độ:
Chế độ địa chỉ thực
Trong chế độ địa chỉ thực 80386 hoạt động ở chế độ phân đoạn với khả năng
phân biệt địa chỉ bộ nhớ 1 MB v với các đoạn có độ di lớn nhất l 64 KB nh 8086.
Các thanh ghi đa năng có thể có kích thớc 8-32 bit tuỳ theo toán hạng. Ta có thể
lm việc với 4 thanh ghi đoạn dữ liệu. Thanh ghi cờ cho chế độ địa chỉ thực chỉ l 16
bit (FLAGS). Khi bật điện hoặc sau khi có xung reset 80386 lm việc ở chế độ địa chỉ

thực. Địa chỉ khởi động của 80386 l FFFFFFFOH, từ địa chỉ ny CPU nhảy về địa
chỉ khởi động giống nh ở 8086 (FFFF0H) để bắt đầu lm việc. Mục đích chính của
chế độ địa chỉ thực l để khởi đầu cho 80386 chuẩn bị cho chế độ bảo vệ.
Chế độ 8086 ảo
Chế độ ny cho phép các chơng trình ứng dụng của 8086 chạy đợc trên
80386 với cơ chế bảo vệ. Đặc biệt các chơng trình ứng dụng v hệ điều hnh DOS
của 8086 v các chơng trình ứng dụng v hệ điều hnh UNIX của 80386 có thể chạy
trên cùng một bộ vi xử lý.
Bộ vi xử lý 80386 chuyển rất dễ dng từ chế độ bảo vệ sang chế độ 8086 ảo
hoặc ngợc lại bằng cách lập/xoá bit VM trong thanh ghi EFLAGS.
Trong chế độ ny vi xử lý 80386 coi mỗi chơng trình l 1 tác vụ rồi dnh cho
mỗi tác vụ một không gian địa chỉ 1 MB v nó tính địa chỉ vật lý theo cặp
thanhghiđoạn: thanhghilệch nh ở bộ vi xử lý 8086. Các không gian 1 MB ny đợc
CPU 80386 quản lý theo kiểu phân trang nên có thể nằm rải rác trong không gian
tổng thể 4 GB m 80386 có khả năng phân biệt đợc. Chính vì vậy có thể dùng các bit
U/S v R/W để tạo ra cơ chế bảo vệ cho bộ nhớ trong chế độ 8086 ảo ny.
Chế độ bảo vệ
Chế độ bảo vệ cho phép ta khai thác hết sức mạnh đợc thiết kế cho CPU
80386. Mạch 80386 chuyển chế độ lm việc từ chế độ địa chỉ thực sang chế độ bảo vệ
hoặc ngợc lại nhờ việc lập/xoá bit D
0
của thanh ghi điều khiển CR
0
. Trong chế độ bảo
vệ 80386 có thể lm việc theo cách phân đoạn hoặc phân trang nh đã trình by trớc
đây. Mỗi đoạn có thể có độ di tới 4 GB, mỗi trang l 4 KB v bộ nhớ ảo có thể có độ
di lớn nhất l 64 TB.


Phối ghép CPU 80386 với bộ nhớ



318
S¬ ®å phèi ghÐp CPU 80386 víi bé nhí ®−îc biÓu diÔn trªn h×nh 10.6.




D7-D0



A29-A0
D7-D0



A29-A0
D7-D0



A29-A0
D7-D0



A29-A0
D31-D1




80386




BE3
BE2
BE1
BE0

A31-A2
D31-D24 D23-D16
D15-D8
D7-D0











(BE: Byte enable)
H×nh 10.6. Phèi ghÐp 80386 víi bé nhí 32 bit.



• Phèi ghÐp Pentium víi bé nhí

S¬ ®å phèi ghÐp CPU Pentium víi bé nhí ®−îc biÓu diÔn trªn h×nh 10.7.



A31-A3
D63-D0


Pentium




BE7#-BE0#



D7 A28
D0 A0

(
8
)
D0 A28
D7 A0

(

7
)

D0 A28
D7 A0

(
6
)

D0 A28
D7 A0

(
5
)
D0 A28
D7 A0

(
4
)
D0 A28
D7 A0

(
3
)
D0 A28
D7 A0


(
2
)
D0 A28
D7 A0

(
1
)


BE7# BE6# BE5# BE4# BE3# BE2# BE1# BE0#


(Cho Pentium BEi# ≡ BEi )

H×nh 10.7. Phèi ghÐp Pentium víi bé nhí 64 bit.

319

×