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 để lμm việc với bộ nhớ ảo với cơ chế bảo vệ bộ nhớ vμ khả n
Trang 1chươ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 bμy 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 bμy 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 vμo 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ọ nμy
Bộ vi xử lý 16 bit 80186 về cơ bản giống như mạch 8086 nhưng được mở rộng thêm khả năng lμm 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 vμo 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 vμo 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 vμo cùng một thời gian với bộ vi xử lý 80186 nhưng đượ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) để lμm 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μ thμnh viên đầu tiên trong họ được thiết kế để có thể lμm việc trong môi trường đa nhiệm hoặc nhiều người sử dụng
Trang 2Bộ 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ó độ dμi 32 bit lμm cho tốc độ xử lý dữ liệu nhanh hơn Một đoạn trong hệ vi xử lý 80386 có thể có độ dμi 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ệ lμm việc đa nhiệm
Bộ vi xử lý 80486 về cơ bản có quy mô như 80386, nhưng 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ó dμnh 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 Ngoμi 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 dμnh cho các phép toán với số nguyên (integer unit,
IU), 2 bộ IU nμy có khả năng lμm việc song song Tất cả các cải tiến nμy đã 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 hμnh đ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ệ lμm 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 nμy trong một khoảng thời gian cỡ vμi mili giây vμ quay sang chạy một chương trình ứng dụng của người khác trong vμi 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 nμy 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ỉ lμm việc riêng với mình Ta thấy các công việc của hình thức lμm 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 bμn 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
Trang 3'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 bμn khác
Trở lại lĩnh vực máy tính, một hệ điều hμnh với khả năng phối hợp các hoạt
động phân chia theo thời gian như đã trình bμy ở trên có thể được gọi lμ hệ điều hμnh
có nhiều người sử dụng hoặc cũng có thể gọi lμ hệ điều hμnh đ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 hμnh MS DOS không phải lμ một hệ điều hμnh đ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ể lμm việc đa nhiệm, nhưng vì chạy dưới DOS nên vẫn chỉ lμ đơn nhiệm Các hệ điều hμnh Unix, OS/2 hoặc MS Windows lμ các thí dụ của hệ điều hμnh đa nhiệm
Các hệ điều hμnh đa nhiệm có thể lμm 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 lμm 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ụ nμy 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 nμy 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ụ nμy vμ lấy lại môi
trường của một tác vụ khác, công việc nμy được gọi lμ chuyển ngữ cảnh
• Vấn đề tranh chấp khi sử dụng chung tμi nguyên
Vấn đề tranh chấp giữa những người sử dụng chung một số tμi 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 hμnh phải có các cờ báo bận cho các tμi nguyên đang được sử dụng vμ phải sắp xếp các nhu cầu dùng chung tμi nguyên theo hμng đợ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 lμm 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 hμnh phải có cơ chế bảo vệ sao cho một vùng nhớ đang được dùng cho tác vụ nμy không bị hoạt động của các tác vụ khác lμm cho sai lệch
Bản thân hệ điều hμnh 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 nμo đó có thể có các lệnh ghi vμo vùng nhớ chứa mã lệnh của hệ
điều hμnh Nếu hệ điều hμnh không có cơ chể bảo vệ thì thảm hoạ có thể xảy ra bất
cứ lúc nμo do hệ điều hμnh bị thay đổi vμ gây lỗi Để giải quyết việc nμy người ta
Trang 4thường cấu trúc hệ điều hμnh từ nhiều lớp vμ gán mức đặc quyền thâm nhập vμo các
lớp nμy cho người sử dụng vμ cho hệ điều hμnh theo quy luật: người sử dụng chỉ được quyền thâm nhập vμo vùng dữ liệu ở lớp ngoμi với mức đặc quyền thấp nhất (lớp ngoμi chứa mã vμ dữ liệu dμnh cho người sử dụng) Khi muốn thâm nhập vμo 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 hμnh Bản thân hệ điều hμnh để 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 vμo 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 lμm việc trong hệ
điều hμnh đ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 hμnh 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 lμm hỏng Một vμi hệ điều hμnh có thể lμm luôn chức năng quản lý bộ nhớ, nhưng 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)
nhưng lại lμm 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ớ thμnh các mảng nhỏ có
độ lớn tính theo đoạn, động tác nμy 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 nμy 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 vμo 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 nμo đó mμ mảng nμy lại không có trong DRAM thì nó sẽ được tải vμo DRAM Nếu DRAM không còn chỗ để chứa thì một mảng nμo đó 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 vμo 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 lμm 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
Trang 5Như 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 hμnh 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ỉ nμy đượ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
đị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 lμm 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ềukhiển
+ vật lý địa chỉ
Bảng mô tả
Bộ phận tính
địa chỉ kiểu
n
phân đoạ
Trang 6Trong các hệ thống có dùng bộ vi xử lý từ 80286-Pentium, khi lμm việc trong
chế độ phân đoạn, một bảng mô tả sẽ được dùng lμm 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ỉ vμo 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 dμnh riêng để mã hoá mức đặc quyền thâm nhập vμo một đoạn nμo
đó của chương trình đang chạy ở bảng mô tả, mỗi phần tử của bảng nμy 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 nμy 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 nμo đó, 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 vμo đ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 vμo vùng nhớ Bộ nhớ nhờ vậy mμ được bảo vệ
Dịch địa chỉ trong hệ thống lμm việc theo cách phân trang
Trong các hệ thống có dùng bộ vi xử lý từ 80386-Pentium, ngoμi 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ý nμy 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 lμm 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 lμm 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 thμnh đị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ý
Trang 7Hì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 dμi 32 bit, đ−ợc đánh số từ CR0-CR3 Khi muốn cho các bộ vi xử lý lμm việc theo chế độ phân trang, ta phải đ−a bit điều khiển thích hợp vμo thanh ghi CR0 sao cho CR031=1 CR3 lúc nμy 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ỉ vμo
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 vμo 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 vμo 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 lμm 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 ghi điều
khiển CR3
+
+
+
CPU
Bộ nhớ vật lý Bảng trang
rang
31 0
31 0
Danh mục bảng t
Trang 8Trong 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 hμnh 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 vμo
trang hoặc vμo bảng trang Tổ hợp của 2 bit nμy tạo thμnh 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ý nμy
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 lμm việc với băng chẵn thì phải có xung chọn A0=0, khi lμm 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 hμng (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
Trang 9• Chế độ địa chỉ thực vμ chế độ bảo vệ
CPU 80286 có thể lμm 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ẽ lμm việc ở chế độ địa chỉ thực, trong chế độ địa chỉ nμy đị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 lμm với 8086 Địa chỉ khởi động của 80286 lμ FFFFF0H, từ địa chỉ nμy CPU nhảy về địa chỉ khởi động giống như ở 8086 (FFFF0H) để bắt đầu lμm việc Trong chế
độ nμy 80286 hoạt động giống hệt 8086, nhưng 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 hμnh đa
nhiệm, nó có thể được chuyển sang chế độ bảo vệ bằng cách thay đổi bit cho phép lμm
việc ở chế độ bảo vệ có trong thanh ghi từ trạng thái máy (MSW) của 80286 Lúc nμy
bộ MMU của 80286 bắt đầu lμm việc vμ cho phép các cơ chế bộ nhớ ảo vμ cơ chế bảo
vệ hoạt động Trong chế độ nμy 80286 có khả năng lμm 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 đã lμm 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 vμo chân reset Vậy lμ hệ điều hμnh không có khả năng để chuyển qua lại giữa 2 chế
độ Hạn chế nμy 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 Ngoμi ra 80286 còn
có các lệnh khác mạnh hơn vμ ta sẽ chỉ trình bμy 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 vμo thanh ghi nμo đó Độ dμi thanh ghi đích sẽ quyết định đó lμ byte hay từ
Ví dụ
INS CX,DX ; đọc vμo 1 từ
INS CL,DX ; đọc vμo 1 byte
Trang 10+ 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, vμo ô nhớ do cặp ES:DI chỉ ra, sau đó DI sẽ tự
động cập nhật để chỉ vμo 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 nμo đó ra cổng có
địa chỉ cho bởi nội dung thanh ghi DX Độ dμi 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ỉ vμo 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 vμo ngăn xếp
+ PUSH thtt: cất toán hạng tức thì toán hạng tức thì thtt vμo 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 nμy 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 dμi 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