Mở đầu: TỔNG QUAN VỀ BÁO CÁO VI XỬ LÝ 8086 Vi xử lý là thiết bị gây được nhiều ấn tượng nhất trong hệ thống máy tính. Chúng làm tường hợp bộ náo máy tính vào một thiết bi điện tử riêng lẽ. Cho đến nay bộ vi xử lý được coi là sản phẩm nhân tạo phát triển nhanh nhất và có vai trò quan trọng nhất trong lịch sử loài người, càng ngày càng khẳngđịnh được tầm ảnh hưởng của nó tới mọi lĩnh vực của cuộc sống. Bộ vi xử lý CPU là cốt lõi của một máy vi tính. Từ các bộ vi xử lý để chế tạo ra máy tính cá nhân và Intel đang hướng cấu trúc máy vi tính cá nhân hiện đại. Vai trò của máy vi tính trong nửa cuối thế kỷ hai mươi được chứng minh bởi đà phát triển chức năng theo hàm mũ của bộ vi xử lý và mức độ thâm nhập của nó trong xã hội. Máy tính đã thay đổi hoàn toàn công nghệ, thay đổi hình thức buôn bán thậm trí thay đổi cấu trúc xã hội loài người. Vì vậy sau đây chúng ta cùng tìm hiểu về tất cả những gì thuộc về bộ vi xử lý và cụ thể là bộ vi xử lý 80386 là bộ vi xử lý 32 bit đầu tiên mở đầu cho công nghệ phát triển máy tính sau này. Bố cục chung của báo cáo: Báo cáo gồm 8 phần: I. Khái quát về bộ vi xử lý 80386 và lịch sử phát triển II.Cấu trúc khối III. Các chế độ vận hành của bộ vi xử lí 80386 IV.Hệ thống vào ra V. Quản lý bộ nhớ VI. Kiến trúc tập lệnh VII. Công nghệ mới VIII. Kết luận
Trang 1Trờng đại học công nghiệp hà nôi
Khoa công nghệ thông tin Báo cáo bài tập lớn môn Kiến trúc máy tính
Đề tài: Nghiên cứu tìm hiểu về thế hệ vi xử lý
80386 (SL, SX, DX… )
Sinh viờn thực hiện: Đào Văn Thụng
Mó số SV: 1331060108 Lớp: Cao đẳng Tin3 K13
Giáo viên hớng dẫn: Th.S Vơng Quốc Dũng
Hà Nội, Ngày 22 tháng 6 năm 2012
Mở đầu:
Tổng quan về báo cáo vi xử lý 8086
Vi xử lý là thiết bị gây đợc nhiều ấn tợng nhất trong hệ thống máy tính Chúng làm tờng hợp bộ náo máy tính vào một thiết bi điện tử riêng lẽ Cho đến nay bộ vi xử lý
đợc coi là sản phẩm nhân tạo phát triển nhanh nhất và có vai trò quan trọng nhất trong lịch sử loài ngời, càng ngày càng khẳngđịnh đợc tầm ảnh hởng của nó tới mọi lĩnh vực của cuộc sống Bộ vi xử lý CPU là cốt lõi của một máy vi tính Từ các bộ vi xử lý để chế tạo ra máy tính cá nhân và Intel đang hớng cấu trúc máy vi tính cá nhân hiện đại
1
Trang 2Intel 80386 DX đợc xếp hạng ở 16 MHx
năm 2007
IBC
Max CPU tốc
đồng hồ
12 MHz đến 40 MHz
Min kích thớc
Hỡng dẫn thiết lập x86 ( IA-32 )
PQFP ; SX biến thế : 88-pin PGA, 100-88-pin PQFP
Vai trò của máy vi tính trong nửa cuối thế kỷ hai mơi đợc chứng minh bởi đà phát triển chức năng theo hàm mũ của bộ vi xử lý và mức độ thâm nhập của nó trong xã hội Máy tính đã thay đổi hoàn toàn công nghệ, thay đổi hình thức buôn bán thậm trí thay đổi cấu trúc xã hội loài ngời Vì vậy sau đây chúng ta cùng tìm hiểu về tất cả những gì thuộc về bộ vi xử lý và cụ thể là bộ vi xử lý 80386 là bộ vi xử lý 32 bit đầu tiên mở đầu cho công nghệ phát triển máy tính sau này
Bố cục chung của báo cáo:
Báo cáo gồm 8 phần:
I Khái quát về bộ vi xử lý 80386 và lịch sử phát triển II.Cấu trúc khối
III Các chế độ vận hành của bộ vi xử lí 80386 IV.Hệ thống vào ra
V Quản lý bộ nhớ
VI Kiến trúc tập lệnh VII Công nghệ mới VIII Kết luận
I.Khái quát về bộ vi xử lý 80386 và lịch sử phát triển
Các Intel 80386 hay còn gọi là i386, hoặc 386 là một 32-bit, bộ vi xử lý đ ợc giới thiệu bởi Intel vào năm 1986 Các phiên bản đầu tiên đã có 275000 bóng bán dẫn
và đã đợc sử dụng nh là đơn vị trung tâm (CPU) của nhiều trạm máy,các máy tính cá nhân Khi thực hiện ban đầu của 32-bit mở rộng của 80386,kiến trúc ,tập lệnh 80386, mô hình lập trình và mã nhị phân là mẫu chung cho tất cả 32-bit x86, bộ xử lý Điều này gọi là x86, IA-32, hoặc các kiến trúc i386, tùy thuộc vào ngữ cảnh
Các 80386 cụ thể thực thi mã
một cách chính xác nhất dành cho bộ xử
lý x86 16-bit trớc đó nh 8088 và 80286
đó đợc phổ biến vào đầu máy tính Thế
hệ mới tiếp theo thế hệ mới bộ vi xử lý
64-bit x86 cụ thể chạy hầu hết các
ch-ơng trình viết cho các chíp cũ hơn, tất
cả các cách quay trở lại nguyên bản
16-bit 8086 của năm 1978 Trong những
năm qua , mới triển khai thực hiện liên
tiếp cùng một kiến trúc đã trở thành vài
trăm lần nhanh hơn với ban đầu 80386
(và hàng ngàn lần so với 8086) Một 33
MHz 80386 đó đợc báo cáo đánh giá
hoạt động ở khoảng 11,4 MIPS
Các 80386 đợc đa ra vào tháng
Mời năm 1985 có đầy đủ các tính năng
của chip,lần đầu tiên đợc đa ra vào quý
III năm 1986 Bo mạch chủ cho máy
tính dựa trên hệ thống-80386, tuy lúc
đầu rất rờm rà và tốn kém những sản
xuất là hợp lý khi 80386 chính thức đợc
thông qua Việc đầu tiên máy tính cá
nhân để làm cho việc sử dụng của 80386
đợc thiết kế và sản xuất bởi compaq và
đánh dấu lầ đầu tiên một thành phần cơ
2
Trang 3bản trong các máy máy IBM PC tơng thích chuẩn đã đợc cập nhật bởi một công ty khác hơn so với IBM
Trong năm 2006, Intel đã công bố rằng sẽ ngừng sản xuất 80386 vào cuối tháng
9 năm 2007 Mặc dù từ lâu đã lỗi thời nh là một máy tính cá nhân CPU, Intel và những nhà sản xuât khác đã tiếp tục làm cho các chíp cho các thế hệ thống nhũng Hệ thống
nh vậy bằng cách sử dụng một 80386 hoặc một trong nhiều chất dẫn xuất là phổ biến trong thế giới công nghệ
Bộ vi sử lý là một quá trình phát triển đáng kể trong các x86 kiến trúc, tiền thân của x86 là bắt đầu từ Intel 8008.VSL 80286 là thế hệ tiền của 80386, sử dụng hệ thống
xử lý 16 bit với sử dụng kỹ thuật phân đoạn bộ nhớ và quản lý dựa trên hệ thống bảo
vệ VSL 80386 sử dụng hệ thống 32-bit và kỹ thuật phân trang dịch thuật đơn vị, làm cho nó dễ dàng hơn để thực hiện điều hành hệ thống sử dùng bộ nhớ ảo Nó cũng đã hố trợ cho phần cứa khắc phục và sửa lỗi
Các đặc chế độ hoạt động cơ bản của 80386 gồm 3 đặc trng: Chế độ thực, bảo
vệ chế độ và chế độ ảo Các chế độ trong 286 đã đợc phát triển trong 386 tăng địa chỉ lên đến 4 GB bộ nhớ Tất cả các chế độ bộ nhớ ảo 8086 (hoặc VM86) đã làm cho nó chạy một hoặc nhiều chế độ thực các chơng trình trong môi trờng bảo vệ, mặc dù một
số chơng trình không tơng thích
Kiểu bộ nhớ 32-bit của 386 cho là sẽ có sự thay đổi tính năng quan trọng nhất
đối với họ hàng nhà x86 cho đến khi AMD phát hành x86-64 vào năm 2003
Kiến trúc s trởng trong sự phát triển của 80386 là John H Crawford Ông chịu trách nhiệm mở rộng 32-bit của kiến trúc 80286 và tập lệnh
Các 80486 và P5 Pentium đều thiết kế dựa trên kiến trúc của vi xử lý 80386
II.Cấu trúc khối
1 Đóng vỏ và các chân chức năng:
Các chip 80386 đóng vỏ gốm (ceramic pin grind package) 132 pin với công nghệ CHMOS III
80386 SX có cấu trúc bên trong giống nh 80386 DX nhng chỉ có bit địa chỉ
là 24 bit và bus dữ liệu là 16 bit 386 SX phù hợp với thiết bị nhớ và ngoại vi 8 bit và
16 bít 386 LX cũng đợc dùng trong nhiều loại IBM PC/XT
80386 dùng diện thế Vss,Vcc = 5.0 V tiêu thụ dòng trung bình 550 mB – phiên bản tần số 25MHz, 600mA – phiên bản tần số 20MHz
Các chân tín hiệu :
80386 có 20 chân tín hiệu : A31 –A3; D31-D0; BE#-BE0; M/ìO#;W/R#;ADS#(address data strobe); RESET…
Với 32 bit địa chỉ không gian địa chỉ của CPU386 là 4 GB CPU 386 có 64 K cứa vào/ra 8 bit, 16 bit, 32 bit
CPU 386 có thể hoạt động với bộ đồng xử lý toán học 387
2.Hệ thống bus
3
Trang 4- Bus là tập hợp các đờng dây để vận chuyển thông tin (bit) từ phần mạch này đến phần mạch khác trong phạm vi máy tính
Bản chất vật lý : không có điện áp truyền 0
Có điện áp truyền 1
1bit tại (tại 1 thời điểm)
- Có chức năng liên kết các thành phần khác nhau trong hệ thống do vậy còn gọi là bus liên kết hệ thống
- Tập các đờng dây vận chuyển thông tin đồng thời đợc gọi là độ rộng của bus ( ví dụ 8 đờng dây thì độ rộng là 8 bit)
- Chức năng của bus :
Bus chia làm 3 loại : +bus địa chỉ
+bus dữ liệu +bus điều khiển Chú ý : chỉ có bus địa chỉ và bus dữ liệu mới có khái niệm độ rộng
Bus dữ liệu Bus điều khiển
Sơ đồ khối phối ghép bus
Lý do tồn tại của các loại bus:
+ Bus địa chỉ :
- CPU muốn trao đổi dữ liệu với ngăn nhớ nào, với cổng vào ra nào thì cần phải
có bus địa chỉ
Bus địa chỉ vận chuyển địa chỉ từ CPU đến bộ nhớ hay cổng vào ra để xác định ngăn nhớ nào hay cổng vào ra nào cần trao đổi thông tin
- Bus địa chỉ nói tổng quát gồm n đờng dây Ao - An-1 thì gọi độ rộng bus là n bit và n bit này đợc dùng để đánh dấu địa chỉ , do đó có khả năng quản lý tối đa 2n địa chỉ ngăn nhớ hay 2n byte nhớ ( vì bộ nhớ chính quản lý theo byte) và với 386 thì n =32 quản lý tối đa 232 byte = 4 GB
+Bus dữ liệu :
- Vận chuyển dữ liệu từ bộ nhớ đến CPU
- Vận chuyển dữ liệu giữa các thành phần với nhau
4
chính Mạch ghép nối
vào ra
Các thiết
bị vào ra
Trang 5Bus dữ liệu kí hiệu Do – Dm-1 thì độ rộng bus là m bit m trong 386 là 32 tức
là vận chuyển cùng một lúc 4 byte
+Bus điều khiển dữ liệu
- Là tập hợp các tín hiệu điều khỉên hoặc phát ra từ CPU để điều khiển bộ nhớ hay hệ thống vào ra hoặc là từ bộ nhớ hay hệ thống vào ra đến yêu cầu CPU
3 Khối quản lý bộ nhớ
Bộ vi xử lý có khả năng quản lý bộ nhớ trực tiếp bằng cách đánh địa chỉ vật lý hay định địa chỉ ảo ( phân trang ) Khi dùng định địa chỉ vật lý, địa chỉ tuyến tính đợc coi là địa chỉ vật lý
Khi dùng phân trang các đoạn mã, dữ liệu, ngăn xếp, hệ thống, GDT và IDT đều
đợc nhận phân trang, chỉ có trang vừa truy nhập là nằm trong địa chỉ vật lý Vị trí của trang ( hay còn gọi là khung trang đợc xác định qua hai dạng cấu trúc hệ thống :
o Một th mục trang
o Nhiều bảng trang
Cả hai cấu trúc đều nằm trong bộ nhớ vật lý Dữ liệu lu trữ trong th mục trang bao gồm địa chỉ cơ sở của bảng trang, quyền truy nhập và thông tin quản lý bộ nhớ Dữ liệu lu trữ trong bảng trang bao gồm địa chỉ vật lý của khung trang, quyền truy nhập và thông tin quản lý bộ nhớ Địa chỉ cơ sở của th mục trang nằm trong thanh ghi điều khỉên CR3 Không gian địa chỉ tuyến tính (32 bit) đợc chia ra làm 3 phần : 10 bit định
vị danh mục trang, 10 bit định vị bảng trang, 12 bit định vị khung trang Nh vậy kích thớc của một trang là 212=4 Kbyte Mỗi nhiệm vụ có thể có một danh mục trang riêng của nó, có nghĩa là hệ vi xử lý có thể quản lý đợc nhiều danh mục trang khác nhau
4 Khối điều khiển
Dùng để điều khiển và để đồng bộ các hoạt động của hệ thống, cụ thể:
- Điều khiển nhận lệnh từ bộ nhớ và sau đó tăng nội dung PC( bộ đếm chơng trình – program counter) để trỏ sang lệnh tiếp theo
- Giải mã lệnh nằm ở thanh ghi lệnh để xác định yêu cầu của lệnh và phát ra tín hiệu điều khiển thực hịên lệnh đó
- Nhận các tín hiệu yêu cầu từ bên ngoài, xử lý và đáp ứng yêu cầu đó
Mã lệnh Các cờ từ
Thanh ghi cờ Mã lệnh các tín hiệu điều
Khiển bên trong CPU –Các thanh ghi
các tín điều khiển các tín hiệu yêu cầu
điều khiển bên ngoài từ bên ngoài
- Đơn vị điều khiển gồm hai phần chính : khối giải mã lệnh và khối tạo xung nhịp điều khiển thực hiện lệnh
5
Thanh ghi lệnh
đơn vị điều khiển
Trang 65 Khối giải mã lệnh
Bộ giải mã lệnh gồm ba bộ giải mã con làm việc song song: hai bộ giải mã lệnh đơn giản và một bộ giải mã phức tạp Một bộ giải mã chuyển một mã lệnh thành một hay nhiều vi lệnh ba thành phần ( hai nguồn lôgic vầ một đích lôgic) Vi lệnh là những lệnh sơ đẳng đợc 6 bộ thực hiện của bộ vi xử lý thực hiện song song
Nhiều mã lệnh đợc chuyển trực tiếp thành một vi lệnh duy nhất qua bộ giải mã lệnh
đơn giản Một số mã lệnh khác đợc chuyển thành một hay bốn vi lệnh Bộ giải mã cũng chịu trách nhiệm giải mã phần đầu lệnh và lệnh quay vòng Bộ giải mã lệnh có thể tạo ra đến 6 vi lệnh trong một chu kỳ đồng hồ ( 2 từ hai bộ giải mã lệnh đơn giản
và 4 từ bộ giải mã lệnh phức tạp )
6 Khối chức năng đặc biệt
Gồm :
- Khối xử lý đồ hoạ
- Khối xử lý tín hiệu : những bộ có khả năng tính toán, tính chập, hàm tơng quan
- Khối xử lý ảnh: có phép tính tơng tự xử lý tín hiệu nhng là hai chiều
- Tính toán vectơ, ma trận
7 Khối số nguyên
8.Thanh ghi
Thanh ghi thực chất là bộ nhớ bán dẫn có tốc độ truy nhập cực cao( mức CPU) và
có dung lợng nhỏ Tập các thanh ghi nằm trong CPU Mỗi thanh ghi là một đơn vị lu trữ dữ liệu có chức năng riêng biệt không thể thiếu trong CPU
Thanh ghi 80386 đều là thanh ghi 32 bit, một số thanh ghi có thề chia thành 16 bit hoặc 8 bit
Với 32 bit địa chỉ không gian địa chỉ của CPU 386 là 4 GB CPU 386 có 64K cửa vào / ra 8 bit , 16 bit, 32 bit
CPU có thể hoạt động với bộ đồng xử lý toán học
Tập các thanh ghi:
Thanh ghi đa dụng và thanh ghi con trỏ : đợc mở rộng thành thanh ghi 32 bit : EAX, EBX,ESP… tuy nhiên vẫn có thể sử dụng thanh ghi 8 bit hoặc 16 bit Chúng
có trách nhiệm lu trữ những nội dung sau:
-Tham số của các phép toán logic và số học -Tham số của các phép tính địa chỉ
- Con trỏ bộ nhớ
Tuy vậy, tất cả các thanh ghi này đều có thể dùng để lu trữ mọi tham số kết quả
và con trỏ Cần lu ý khi dùng thanh ghi ESP vì thanh ghi này chỉ dùng cho con trỏ ngăn xếp và không đợc phép dùng cho mục đích khác
Một số lệnh cần một thanh ghi nhất định để lu trữ tham số của nó ví dụ lệnh chuỗi dùng các thanh ghi ECX,ESI, EDI Khi sử dụng bộ nhớ mô hình phân đoạn , một
số cặp thanh ghi đợc ngầm định để lu địa chỉ lôgic( vi dụ DS:EBX)
Ngoài ra, mỗi thanh ghi còn có một nhiệm vụ đặc biệt đợc liệt kê sau:
- EAX : thanh ghi kết quả các phép toán
- EBX : thanh ghi con trỏ mà địa chỉ đoạn nẳm trong DS
- ECX : thanh ghi số đếm cho các phép toán chuỗi và quay vòng
6
Trang 7- EDX : thanh ghi địa chỉ cổng cứng
- ESI : thanh ghi con trỏ địa chỉ nằm trong ES con trỏ nguồn của phép toán chuỗi
- EDI : thanh ghi con trỏ mà địa chỉ đoạn nằm trong ES con trỏ đích của phép toán chuỗi
- ESP : thanh ghi con trỏ ngăn xếp mà địa chỉ đoạn nằm trong SS
Các thanh ghi đa chức năng
EAX
EBX
ECX
EDX
ESI
EDI
EBP
ESP
Hình trên cho thấy, 16 bit cuối của những thanh ghi đa chức năng đợc dùng nh các thanh ghi của thế hệ 8086, 80286 Ngời lập trình có thể sử dụng nó qua tên thanh ghi
AX, BX,CX,DX,BP,SP,SI,DL Hai byte cuối của EAX, EBX,ECX,EDX,đợc gọi là AH,
BH, CH, DH(bit cao) và AL, BL, CL, DL(bit thấp)
Các thanh ghi đoạn : vẫn giữ nguyên chiều dài 16 bit nhng có hai thanh ghi đoạn FS và GS đợc dùng giống nh thanh ghi ES Các thanh ghi đoạn (CS,DS,SS,ES,FS,GS) lu trữ bộ chọn đoạn 16 bit Một bộ chọn đoạn là một con trỏ đặc biệt chỉ đến bộ mô tả đoạn là nơi lu trữ địa chỉ và đặc tính của đoạn Để truy nhập một
đoạn trong bộ nhớ bộ chọn đoạn phải nằm trong thanh ghi đoạn tơng ứng
Khi viết một chơng trình ứng dụng ngời lập trình chọn đoạn qua lệnh định hớng trong hợp ngữ Hợp ngữ dùng lệnh định hớng của hợp ngữ hay dụng cụ lập trình để tạo nên đoạn và các gía trị tơng ứng trong bộ chọn đoạn cũng nh bộ mô tả đoạn
Cách sử dụng thanh ghi đoạn phụ thuộc vào mô hình bộ nhớ mà hệ thống điều hành
sử dụng Nếu sử dụng mô hình bộ nhớ phẳng ( không phân đoạn ), thanh ghi đoạn lu trữ bộ chọn đoạn trỏ lên những đoạn chồng lên nhau Mỗi đoạn đều bắt đầu từ địa chỉ
số 0 của không gian địa chỉ tuyến tính Thông thờng có hai đoạn chồng lên nhau: một
đoạn cho mã lệnh, một đoạn cho dữ liệu và ngăn xếp Thanh ghi CS trỏ đến đoạn mã lệnh các thanh ghi đoạn khác trỏ đến đoạn dữ liệu
Các thanh ghi đoạn
DS SS ES FS
GS GS Các thanh ghi đoạn trong mô hình nhớ phẳng
Nếu sử dụng mô hình bộ nhớ phân đoạn, mỗi thanh ghi đoạn chứa một bộ chọn
đoạn trỏ tới các đoạn khác nhau trong không gian địa chỉ tuyến tính Chơng trình có thể truy nhập đồng thời 6 đoạn khác nhau Mỗi thanh ghi đều liên hệ trực tiếp với ba
7
40 Gbyte
đoạn chồng lên nhau
Trang 8loại nhớ : mã lệnh, dữ liệu và ngăn xếp ví dụ : thanh ghi CS chứa bộ chọn đoạn mã lệnh Bộ xử lý lấy lệnh từ đoạn mã lệnh bằng địa chỉ đoạn trong CS và con trỏ lệnh trong EIP Thanh ghi EIP chứa địa chỉ tuyến tính của tới cần đợc thực hiện trong đoạn mã lệnh Chơng trình ứng dụng bên ngoài không thể thay đổi đợc thanh ghi CS Chỉ các phép lệnh điều khiển chơng trình bên trong bộ vi xử lý mới thay đổi đợc giá trị của CS( nh gọi tiểu trình, phục vụ ngắt thay đổi nhiệm vụ
Các thanh ghi đoạn
CS các đoạn đều cùng nằm
SS bộ nhớ tuyến tính
ES FS GS
Cách sử dụng thanh ghi đoạn trong mô hình bộ nhớ phân đoạn
Các thanh ghi DS , ES, FS, GS chứa bộ chọn đoạn trỏ đến 4 bộ mô tả đoạn dữ liệu Bốn đoạn dữ liệu riêng rẽ này đảm bảo an toàn truy nhập an toàn vào các dạng cấu trúc dữ liệu khác nhau
Thanh ghi SS chứa bộ chọn đoạn ngăn xếp Khác với thanh ghi CS thanh ghi SS
có thể đợc ghi từ bên ngoài bởi chơng trình ứng dụng Điều này cho phép chơng trình dùng nhiều ngăn xếp khác nhau Bốn thanh ghi đoạn CS, DS, SS, ES, có từ đời 8086 Hai thanh ghi FS và GS bắt đầu xuất hiện ở 80386
Thanh ghi trạng thái SR và thanh ghi đếm chơng trình : cũng nh đợc nâng lên 32 bit gồm 16 bit thấp nh trong 286 và 16 bit cao Thanh ghi trạng thái để quản lý trạng thái của hệ thống nó chứa các thông tin trạng thái của CPU
Có hai thông tin trạng thái chính :
- trạng thái 0
- trạng thái 1
Gồm có các thanh ghi cờ Mỗi bit cờ phản ánh trạng thái làm việc của CPU :Cờ trạng thái (bit 0,2,4,6,7,11) trong thanh ghi EFLAGS đợc dùng để ghi lại trạng thái kết quả của các lệnh số học nh : ADD, SUB, MUL,DIV
- IF( interrupt flag): cờ ngắt: nếu IF=1 thì CPU cho phép ngắt ngợc lại IF=0 thì CPU cấm ngắt
- CF( carry flag) : cờ nhớ : nếu kết quả phép tính có nhớ thì CF=1
- SF(Sign flag) :cờ dấu : nếu kết quả phép tính là số âm thì SF=1
- OF(overflow flag): cờ tràn: nếu kết quả là số bù 2 vợt quá giới hạn biểu diễn dành cho nó thì OF=1 Cờ này đánh dấu trạng thái tràn của phép toán số học có dấu
- PF(parity flag) cờ chẵn lẻ: đợc đặt về 1 khi số 1 trong byte thấp nhất của kết quả
là số chẵn
- AF( adjust flag) cờ chỉnh: đợc đặt về 1 khi phép toán gây ra nhớ hoặc mợn tại bít 3 của kết quả Cờ này đợc sử dụng trong phép toán số học với mã BCD
8
đoạn mã
lệnh
đoạn dữ
liệu
đoạn ngân xếp
đoạn dữ
liệu
đoạn dữ
liệu
đoạn dữ
liệu
Trang 9- ZF(zero flag ) cờ không: đợc đặt về 1 khi kết quả bằng 0
Trong các cờ trên chỉ có cờ CF là có thể gây ra trực tiếp bằng các lệnh STC,CLC,CMC Những lệnh thay đổi bit nh BT, BTS,BTR,BTC Có thể chuyển một bít nhất định về cờ CF Các cờ trạng thái dành cho phép toán số học có kết quả dới ba dạng dữ liệu khác nhau: số nguyên có dấu, số nguyên không dấu, số nguyên BCD Nếu kết quả là số nguyên không dấu thì cờ CF đánh dấu trạng thái nhớ hoặc mợn Nếu kết quả là số BCD thì cờ AF đánh dấu nhớ hoặc mợn Cờ SF ghi lại dấu của số nguyên có dấu Cờ ZF đánh dấu trạng thái bằng 0 của số nguyên có và không có dấu Cờ CF đ ợc dùng để cộng thêm hay trừ đi khi dùng lệnh ADC(cộng với số nhớ) hay lệnh SBB( trừ với số mợn ) để tiến hành phép toán số học chính xác Các lệnh nhảy có điều kiện Jcc,
đặt byte có điều kiện SETcc quay vòng có điều kiện LOOPcc và dịch chuyển có điều kiện CMOVcc ( cc là mã điều kiện ) dùng một hay nhiều cờ trạng thái để rẽ nhánh đặt byte hay quay vòng
Các thanh ghi gỡ rối (DR0-DR7) và kiểm tra (TR0-TR1):
Bộ vi xử lý có nhiều lệnh dùng để kiểm tra quyền truy nhập bộ chọn đoạn và bộ mô tả đoạn Những lệnh này lặp lại việc kiểm tra quyền truy nhập mà bộ vi xử lý tiến hành
tự động Chúng cho phép hệ điều hành và các chơng trình ở mức u tiên 0 ngăn không cho ngoại lệ xảy ra:
- ARPL: chỉnh mức u tiên đợc yêu cầu RPL của bộ chọn đoạn cho thích hợp với mức u tiên của các chơng trình dùng đoạn đó
- LAR: chứng nhận khả năng truy nhập vào một đoạn và nạp quyền truy nhập từ bộ mô tả đoạn về một thanh ghi đa chức năng Chơng trình ứng dụng sau đó có thể kiểm tra quyền truy nhập đoạn trực tiếp từ thanh ghi đa chức năng
- LSL: chứng nhận khả năng truy nhập vào một đoạn và kích thớc đoạn từ bộ mô tả
đoạn về một thanh ghi đa chức năng Chơng trình ứng dụng sau đó có thể so sánh kích thớc đoạn với địa chỉ lệch để bíêt địa chỉ có nằm bên trong đoạn hay không
- VERR và VERW: kiểm tra khả năng ghi lên hay đọc từ một đoạn bộ nhớ
Thanh ghi quản lý bộ nhớ : thanh ghi GDTR,LDTR,IDTR,TR có chức năng giống nh trong 286 chỉ khác ở chỗ: địa chỉ cơ sở 32 bit và giá trị giới hạn là 20 bit Bốn thanh ghi trên đợc dùng để xác định vị trí của các bảng quản lý bộ nhớ Để truy nhập
và lập trình các thanh ghi này ngời ta cần có những lệnh chuyên dùng
` - Thanh ghi bảng bộ mô tả toàn cục GDTR
Thanh ghi bảng cục bộ mô tả toàn cục GDTR lu trữ 32 bít địa chỉ cơ sở và 16 bit kích thớc của bảng mô tả toàn cục Địa chỉ cơ sở là địa chỉ tuyến tính (vật lý ) của byte
đầu tiên trong bảng Kích thớc cho biết số byte tối đa có thể lu trữ đợc trong bảng Để nạp và ghi lên GDTR ta dùng lệnh LGDT và lệnh SGDT Khi khởi động bộ vi xử lý địa chỉ cơ sở đợc đặt về 0 và giới hạn đợc đặt về FFFFh vì thế chơng trình khởi động BIOS cần nạp một giá trị mới vào GDTR
- Thanh ghi bảng mô tả cục bộ LDTR
Thanh ghi bảng bộ mô tả cục bộ LDTR lu trữ 32 bit địa chỉ cơ sở , 16 bit kích thớc và các tham số bộ mô tả cho bảng mô tả cục bộ LDT Để nạp và ghi lên GDTR ta dùng lệnh LLDT và lệnh SLDT Đoạn bộ nhớ chứa LDT phải có một bộ mô tả đoạn
t-ơng ứng nằm trong bảng mô tả toàn cục GDT Khi lệnh LLDT nạp một bộ chọn đoạn vào LDTR, địa chỉ cơ sở kích thớc và tham số bộ mô tả tự động đợc nạp lên LDTR Khi cần chuyển nhiệm vụ, bộ chọn đoạn và đoạn mô tả LDT của nhiệm vụ mới tự động
đợc nạp vào thanh ghi LDTR Tơng tự nh GDTR , địa chỉ cơ sở và kích thớc trong LDTR đợc đặt về 0 và FFFF h khi khởi động máy
- Thanh ghi bảng bộ mô tả ngắt IDTR
Thanh ghi bảng bộ mô tả ngắt IDTR chứa 32 bit địa chỉ cơ sở và 16 bit kích thớc của bảng mô tả ngắt IDT Để nạp và ghi lên IDTR ta dùng lệnh LIDT và SIDT
- Thanh ghi nhiệm vụ TR
9
Trang 10Thanh ghi nhiệm vụ TR chứa cho nhiệm vụ đang chạy 16 bit bộ chọn đoạn, 32 bit địa chỉ cơ sở, 16 bit kích thớc và tham số bộ mô tả cho đoạn trạng thái nhiệm vụ TSS Địa chỉ cơ sở là địa chỉ của byte 0 trong TSS Lệnh LTR và STR đọc và ghi tên phần bộ chọn đoạn của thanh ghi nhiệm vụ Khi lệnh LTR nạp bộ chọn đoạn vào thanh ghi nhiệm vụ, các phần khác của thanh ghi nhiệm vụ đợc tự động nạp lên từ bộ mô tả
đoạn trạng thái nhiệm vụ TSS Trạng thái của thanh ghi TR khi khởi động tơng tự nh các thanh ghi hệ thống khác
Thanh ghi điều khiển: thanh ghi CR0, CR1, CR2,CR3,CR4 xác định chế độ làm việc của bộ vi xử lý cũng nh các đặc điểm của nhiệm vụ đang chạy
- CR0 chứa cờ đièu khiển hệ thống,các cờ này điều khiển chế độ làm việc và trạng thái của bộ vi xử lý
- CR1 dự trữ
- CR2: chứa địa chỉ gây ra lỗi trang ( page – fault )
- CR3: chứa địa chỉ cơ sở của th mục trang và hai cờ PCD – PWT Thanh ghi này còn đợc gọi là thanh ghi cơ sở th mục trang PDPR( page directory base register ).Chỉ
có 20 bit cao của địa chỉ cơ sở đợc ghi trong CR3, 12 bit thấp đợc mặc định bằng 0 vì
địa chỉ danh mục trang phải đợc phân theo đơn vị nhỏ nhất là trang (4 KB, 12 bit).Cờ PCD và PWT kiểm tra quá trình lu trữ danh mục trang trong bộ đệm bên trong Khi sử dụng địa chỉ vật lý mở rộng ( physical address extension ), thanh ghi CR3 chứa địa chỉ cơ sở của bảng con trỏ th mục trang ( page directory – pointer table )
- CR4 : chứa một nhóm cờ cho phép mở rộng cấu trúc bộ vi xử lý
Lệnh MOV cho phép đọc nội dung các thanh ghi điều khiển từ chơng trình chạy trên một mức u tiên bất kỳ Chỉ những chơng trình có mức u tiên 0 là đợc phép ghi lên các thanh ghi này.Nội dung các cờ trong thanh ghi điều khiển đợc liệt kê sau đây:
- Cờ phân trang PG Paging (bit 31 của CR0) cho phép phân trang khi đặt lên 1 Khi phân trang bị cấm ( PG=0) địa chỉ tuyến tính đợc coi nh địa chỉ vật lý Cờ PG không có
ý nghĩa nếu nh cờ PE( bit 0 của CR0) không đợc đặt về 1 Đặt cờ PG=1 mà PE=0 gây
ra ngoại lệ #GP(general protection exception)
- Cờ cấm đệm CD cache disable( bit 30 của CR0) Xoá cờ CD và NW về 0 cho phép đệm toàn bộ nhớ vật lý Cờ CD=1 ngăn bộ vi xử lý truy nhập các bộ đệm của nó
- Cờ cấm ghi xuyên NW not write- through( bit 29 của CR0) Xoá cờ NW và CD về
0 cho phép ghi lại hay ghi xuyên
- Cờ khuôn chỉnh vị AM alignment mask ( bit 18 của CR0) AM = 1 cho phép kiểm tra tự động chỉnh vị Tự động chỉnh vị chỉ xảy ra khi AM = 1, AC của thanh ghi EFLAGS =1, mức u tiên CPL = 3 và bộ vi xử lý đang hoạt động trong một trong chế độ : bảo vệ hoặc 8086 ảo
- Cờ bảo vệ viết WP write protect( bit 16 của CR0) WP=1 cấm các ch ơng trình ở mức quản lý ghi vào các trang chỉ đợc đọc của mức ngời sử dụng Cờ này cho phép cài
đặt phơng pháp copy on write thờng đợc dùng trên hệ điều hành UNIX
- Cờ lỗi số học NE numeric error( bit 5 của CR0) NE= 1 cho phép báo các lỗi đơn
vị dấu chấm động FPU theo phơng pháp trong NE=0 báo lỗi theo phơng pháp của máy tính cá nhân Nếu NE=0 và chân IGNE# của bộ vi xử lý đợc kích , lỗi FPU bị bỏ qua Nếu NE=0 và chân IGNE# không bị kích , lỗi FPU không che xuất hiện và khiến bộ vi
xử lý đa ra tín hiệu tại chân FERR# Tín hiệu này báo một ngắt ngoài dừng thực hiện lệnh trớc khi thực hiện một lệnh số học mới hay lệnh WAIT/FWAIT Chân FERR#
t-ơng ứng với chân ERROR# của các bộ đồng xử lý 287, 387 DX đ ợc nối với bộ điều khiển ngắt bên ngoài
- Cờ loại mở rộng ET( bit 4 của CR0) đợc dùng để ghi nhận sự tồn tại của bộ đồng
xử lý toán học
- Cờ chuyển nhiệm vụ TS ( bit 3 của CR0) cho phép làm chậm lu trữ trạng thái FPU
đến khi FPU đợc nhiệm vụ mới truy nhập Bộ vi xử lý đặt cờ này lên 1 mỗi khi chuyển trạng thái và kiểm tra nó mỗi khi dịch một lệnh số học Nếu TS =1 ngoại lệ không có
10