bài tập lớn vi xử lý

22
Học viện công nghệ bưu chính viễn thông Bài Tập Lớn Môn: Kỹ Thuật Vi Xử Lý. Đề tài: Tìm hiểu về vi xử lý 80386 Giảng viên hướng dẫn: Ts.Nguyễn Quý Sỹ Sinh viên thực hiện: 1.Bùi Hồng Quân D12CN7 – B12DCCN339 2.Nguyễn Thị Tuyền D12CN7 – B12DCCN357 1

Upload: bui-hong-quan

Post on 10-Dec-2015

18 views

Category:

Documents


6 download

DESCRIPTION

tìm hiểu về chip 80386

TRANSCRIPT

Page 1: Bài tập lớn vi xử lý

Học viện công nghệ bưu chính viễn thông

Bài Tập Lớn

Môn: Kỹ Thuật Vi Xử Lý.

Đề tài: Tìm hiểu về vi xử lý 80386

Giảng viên hướng dẫn: Ts.Nguyễn Quý Sỹ

Sinh viên thực hiện:

1.Bùi Hồng Quân D12CN7 – B12DCCN339

2.Nguyễn Thị Tuyền D12CN7 – B12DCCN357

1

Page 2: Bài tập lớn vi xử lý

Mục LụcI.Giới thiệu về họ vi xử lý 80386..................................................................................................................3

1.Điện thế sử dụng....................................................................................................................................4

2. Các chân tín hiệu: D0-D31,A0-A31,A31-A3…...................................................................................4

II.Cấu trúc Vi xử lý 80386...........................................................................................................................4

1.Cấu trúc và sơ đồ khối..........................................................................................................................4

2.Quản lý Bộ nhớ.....................................................................................................................................6

2.1.Không gian bộ nhớ:........................................................................................................................6

2.2.Phương pháp kỹ thuật kết nối các bộ nhớ tốc độ thấp với 80386....................................................7

2.3.Đánh địa chỉ ô nhớ..........................................................................................................................7

III.Mô hình lập trình của vi xử lý 80386......................................................................................................9

1.Các thanh ghi.........................................................................................................................................9

A,các thanh ghi đa năng.......................................................................................................................9

B,các thanh ghi đoạn............................................................................................................................9

C,Các thanh ghi điểu khiển.................................................................................................................10

D,Các thanh ghi hệ thống...................................................................................................................11

E,Các thanh ghi kiểm tra và giỡ rối....................................................................................................12

IV.Các chế độ định địa chỉ của bộ vi xử lý 80386......................................................................................13

1.Chế độ định địa chỉ thanh ghi ( 80386 Register Addressing Modes)...................................................13

2.Chế độ định địa chỉ gián tiếp qua thanh ghi:........................................................................................13

3.Chế độ định địa chỉ chỉ tức thì:............................................................................................................13

4.Chế độ định địa chỉ trực tiếp................................................................................................................14

5.Chế độ định địa chỉ tương đối cơ sở....................................................................................................14

6.Chế độ định địa chỉ tương đối chỉ số cơ sở..........................................................................................15

7. Định địa chỉ chế độ thực:....................................................................................................................15

8,Định địa chỉ ở chế độ bảo vệ:..............................................................................................................15

2

Page 3: Bài tập lớn vi xử lý

I.Giới thiệu về họ vi xử lý 80386.Bộ vi xử lý này ra đời vào năm 1985,gồm vi xử lý (vxl) 16 và 32 bit.Đầu tiên

chúng chúng ta nói về vxl 16 bit gồm:

80186(iAPX 186)sử dụng chủ yếu trong những ứng dụng nhúng,bộ điều

khiển thiết bị đầu cuối.

80286(286) là vi xử lý đầu tiên của Intel có thể chạy được tất cả các ứng

dụng viết cho các VXL trước đó. Có hai chế độ hoạt động là:chế độ thực và

chế độ bảo vệ.

Vxl 32 bit gồm:

Intel 386 gồm các họ 386DX,386SX,376LX là một bước nhảy vọt so với

các VXL trước đó. Có khả năng xử lý đa nhiệm,có thể chạy nhiều chương

trình khác nhau cùng một thời điểm

Intel 486 gồm các phiên bản 486DX,486SX,486SL. Những phiên bản này

có bộ nhớ sơ cấp,có thiết kế pipeline.

Hình 1:Intel 80386 Dx

3

Page 4: Bài tập lớn vi xử lý

1.Điện thế sử dụng.80386 dùng điện thế Vss,Vcc=5.0V tiêu thụ dòng trung bình 550mA-phiên

bản tần số 25MHZ,500mA-phiên bản tần số 25MHZ,600mA-phiên bản 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/IO#;

W/R#;ADS#(address data strobe);RESET….

2.Các chân tín hiệu:D0-D31,A0-A31,A31-A3…D0-D31 là 32 bít số liệu .Tùy theo mức tín hiệu NA trên bus điều khiển ,thông tin

truyền qua bus số liệu có thể là 32 bít hay 16.A0-A31 là 32 bít địa chỉ .các tin hiệu BEO-

BE3 cho biết byte số liệu nào được truyền .Để số liệu dài 32 bít thì cả 4 tín hiệu này phải

ở mức tích cực thấp.CLK2 là lối vào xung nhịp cấp cho vi xử lý , nó được chia 2 bên

trong thành PCLK để đồng bộ quá trình thực hiện lệnh .

II.Cấu trúc Vi xử lý 80386.

1.Cấu trúc và sơ đồ khối.Các chip 80386 đóng vỏ gốm PGA (ceramic pin grind package) 132 pin với

công nghệ CHMOS III.386SX có cấu trúc bên trong giống như 386DX nhưng chỉ

có bit địa chỉ là 24bit và bus dữ liệu là 16bit. 386SX phù hợp với thiết bị nhớ và

ngoại vi 8bit và 16bit. 386LX cũng được dùng trong nhiều loại IBM PC/XT

4

Page 5: Bài tập lớn vi xử lý

Hình2:Kiến trúc bên trong 80386

BIU đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ghi dữ liệu từ vào cổng hoặc

bộnhớ.Nói cách khác BIU chịu trách nhiệm đưa địa chỉ ra buýt và trao đổi dữ liệu

với buýt.

EU bao gồm một đơn vị điều khiển, khối này có mạch giải mã lệnh. Mã lệnh

đọc vào từ bộ nhớ được đưa đến đầu vào của bộ giải mã, các thông tin thu được từ

đầu ra của nó sẽ được đưa đến mạch tạo xung điều khiển, kết quả là ta thu được các

dãy xungkhác nhau trên kênh điều khiển (tuỳ theo mã lệnh) để điều khiển hoạt

động của các bộphận bên trong và bên ngoài CPU. Ngoài ra, EU còn có khối số học

và lôgic (Arithmeticand Logic Unit - ALU) dùng để thực hiện các thao tác khác

nhau với các toán hạng của lệnh. Tóm lại, khi CPU hoạt động EU sẽ cung cấp

thông tin về địa chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản thân nó thì

đọc lệnh và giải mã lệnh.Trong BIU còn có một bộ nhớ đệm lệnh với dung lượng 6

5

Page 6: Bài tập lớn vi xử lý

byte dùng để chứa các mã lệnh để chờ EU xử lý (bộ đệm lệnh này còn được gọi là

hàng đợi lệnh).

2.Quản lý Bộ nhớ

2.1.Không gian bộ nhớ:Không gian nhớ:bộ nhớ vật lý của 80386DX tối đa là 4GB. Không gian địa

chỉ ảo có thể đến 64TB và sắp xếp thành các không gian nhớ vật lý dung lượng

4GB nhờ MMU.MMU bên trong 80386 tương tự như MMU bên trong

80286,nhưng ngoài đơn vị phân đoạn(segmentation unit)của 80386 có thêm đơn vị

phân trang(paging unit).Với độ rộng dữ liệu 32bit,có thể tổ chức truy nhập trực tiếp

bộ nhớ theo từng byte,từ và từ kép trong một chu trình nhớ,trong khi đó 8088 phải

cần tới 4 chu trình nhớ và 80286 cần tới 2 chu trình nhớ. Các byte trong hệ thống

máy tính 80386 được đánh địa chỉ bằng 8 chữ số hệ 16(hex) từ 00000000h-

FFFFFFFFh.

6

Page 7: Bài tập lớn vi xử lý

2.2.Phương pháp kỹ thuật kết nối các bộ nhớ tốc độ thấp với 80386.kỹ thuật nhớ xem kẽ: nhằm mục đích kéo dài thời gian truy cập bộ nhớ mà

không cần phải đưa vào các trạng thái chờ đợi trong chu kỳ bus. bộ nhớ xen kẽ chia

thành hai phần một phần có các địa chỉ 32bit 0000000h-000003h,000008h-

00000Bh...phần còn lại có các địa chỉ 000004h-000007h,00000Ch-00000Fh... trong

khi vi xử lý truy cập tới vùng nhớ 000000h-000007h,thì logic điều khiển xen kẽ

(interleave logic) tạo ra tín hiệu định thời (address strobe) địa chỉ (ADS#) cho vùng

nhớ 000004h-000007h.Quá trình này liên tục do vi xử lý đưa ra các địa chỉ các

vùng nhớ liên tiếp nhau. Thời gian truy nhập bộ nhớ nhờ kỹ thuật xen kẽ tăng từ

78ns đến 145.5ns với nhịp đồng hồ hệ thống là 16MHz.

Kỹ thuật đường ống: kỹ thuật đường ống trong 80386 cho phép bộ nhớ có

thêm một chu kỳ nhịp phụ để truy cập dữ liệu . nhịp phụ mở rộng thời gian truy cập

từ 50ns cho đên 81ns của 80386 16 MHz. Kỹ thuật đường ống là một đặc điểm

nhằm giảm thời gian truy cập bộ nhớ cần thiết áp dụng cho các hệ thống tốc độ

chậm.

2.3.Đánh địa chỉ ô nhớ.80386 sử dụng các thanh ghi mô tả (Descriptors) tương tự như ở 80286. Trong

cả 80286 và 80386, mỗi một thanh ghi mô tả có độ dài 8 byte chứa thông tin về vị

trí của đoạn cần truy nhập. Thanh ghi chọn (Selector) của 80386 được sử dụng như

là một chỉ số (Index) để trỏ tới thanh ghi mô tả nằm trong bảng mô tả (Desciptor

table).

7

Page 8: Bài tập lớn vi xử lý

Sự khác nhau chính giữa 80286 và 80386 là 80386 có thêm các đoạn FS và

GS, vì thế nó có thêm các thanh ghi mô tả cho các đoạn này. Ngoài ra, các thanh

ghi mô tả của 80386 sử dụng địa chỉ cơ sở (Base) 32 bit và giá trị giới hạn đoạn

(Limit) 20 bit thay cho địa chỉ cơ sở 24-bit và giá trị Limit 16-bit của các thanh ghi

mô tả trong 80286. Như vậy 80386 đánh địa chỉ tới 4GB nhớ và phân bộ nhớ thành

các đoạn kích thước tới 1MB.

Thanh ghi mô tả của 80386 cũng bao gồm: địa chỉ cơ sở đoạn (Base address),

giới hạn đoạn (Limit) và quyền truy cập tới đoạn (Access Rightss). Giá trị thanh

ghi chọn là mã 13-bit, nó xác định một trong 8192 thanh ghi mô tả trong bảng mô

tả đoạn.

Giá trị thanh ghi chọn có bit TI và 2 bit RPL. Nếu TI = 0 thì chọn bảng GDT,

nếu TI = 1 thì chọn bảng LDT. Ngoài GDT và LDT, còn có bảng mô tả ngắt (IDT)

hay các cổng.

80386 có 3 loại bảng mô tả : GDT, LDT và IDT và để quản lý chúng có các

thanh ghi GDTR, LDTR, và IDTR. Những thanh ghi này được nạp giá trị nhờ các

lệnh tương ứng: LGDT, LLDT, LIDT.

Các thanh ghi mô tả có hai dạng: Thanh ghi mô tả đoạn (Segment Descriptor)

và thanh ghi mô tả hệ thống (System Descriptor). Thanh ghi mô tả đoạn xác định

các đoạn dữ liệu, đoạn ngăn xếp và đoạn mã. Còn thanh ghi mô tả hệ thống chứa

thông tin về các bảng , các nhiệm vụ, và các cổng (gates) của hệ thống.8

Page 9: Bài tập lớn vi xử lý

III.Mô hình lập trình của vi xử lý 80386.“Mô hình lậ trình là tập các thanh ghi nhìn thấy được-tức là các thanh ghi mà

người lập trình có thể sử dụng để viết chương trình cho vi xử lý”.

1.Các thanh ghi.Thanh ghi của 80386 đều là thanh ghi 32bit,một số thanh ghi có thể chia

thành 16bit hoặc 8bit.Với 32bit địa chỉ không gian địa chỉ của CPU 80386 là 4GB.

CPU 80386 có 64K cửa vào/ra 8bit,16bit,32bit.CPU 80386 có thể hoạt động với bộ

đồng xử lý toán học.

A,các thanh ghi đa năng

Hình 3:Các thanh ghi đa năng

B,các thanh ghi đoạn.

Bao gồm 2 phần

Phần hở: gồm 16 bit có thể nạp được bằng chương trình gọi là bộ chọn

Phần kín: gồm 64 bit do CPU tự nạp

+ 12 bit quyền truy nhập (Access Right)

+ 32 bit địa chỉ cơ sở (Base Address)

9

Page 10: Bài tập lớn vi xử lý

+ 20 bit độ dài đoạn (Limit).

C,Các thanh ghi điểu khiển.

Có 4 thanh ghi điều khiển 32 bit được đặt là: CR0, CR1, CR2, CR3

PG - Paging (Trang)

r - reversed (dự trữ)

TS - Task Switch: chuyển nhiệm vụ

EM - Emulation: cho phép mô phỏng bộ đồng xử lý

MP - Math Present: Cho biết có bộ đồng xử lý

PE - Protection Enable: Cho phép chế độ bảo vệ

10

Page 11: Bài tập lớn vi xử lý

D,Các thanh ghi hệ thống.

- Thanh ghi nhiệm vụ (TR - Task Register)

- Thanh ghi bảng mô tả cục bộ (LDTR - Local Descriptor Table Register)

- Thanh ghi bảng mô tả toàn cục (GDTR - Global Descriptor Table Register)

- Thanh ghi bảng mô tả ngắt (IDTR - Interrupt Descriptor Table Register)

GDTR và IDTR chứa 32 bit địa chỉ cơ sở tuyến tính và 16 bit giới hạn độ dài của

các đoạn GDT và IDT.

LDTR và TR có hai phần: phần chọn đoạn hệ thống (thanh ghi chọn đoạn hệ thống)

và phần chứa bộ mô tả quy chiếu đoạn này (thanh ghi mô tả đoạn hệ thống). LDTR

chứa bộ chọn 16 bit trỏ đến bộ mô tả của LDT và TSS sẽ được sao sang phần kín

của các thanh ghi LDTR và TR. Mỗi một nhiệm vụ có một LDT và TSS riêng.

11

Page 12: Bài tập lớn vi xử lý

E,Các thanh ghi kiểm tra và giỡ rối.

16 bít thấp của thanh ghi điều khiển CR0 là từ trang thái máy MSW .Vi xử lý

80386 cũng chuyển sang chế độ bảo vệ bằng việc đặt bít LSB của thanh ghi này tới

1 .Thanh ghi CR1 được dự trữ và thanh ghi CR2 và CR3 được dùng cho chế độ bảo

vệ trang. -Thanh ghi quản lý bộ nhớ : gồm có các thanh ghi GDTR, LDTR, IDTR,

TR, có chức năng giống như bộ vi xử lý 80286 chỉ khác ở chỗ :đại chỉ cơ sở 32 bít

và giá tri giới hạn là 20 bít -Thanh ghi trạng thái SR và thanh ghi điếm chương

trình :cũng được nâng lên 32 bít gồm 16 bít thấp như trong VXL 80286 và 16 bít

cao.

12

Page 13: Bài tập lớn vi xử lý

IV.Các chế độ định địa chỉ của bộ vi xử lý 80386.

1.Chế độ định địa chỉ thanh ghi( 80386 Register Addressing Modes).

Cung cấp 32 bit đăng ký,tám thanh ghi mục đích chung tất cả và có 32 bit

tương đương.Đó là eax, ebx, ecx, edx, ESI, EDI, ebp, và esp. sau đó có thể sử dụng

các đăng ký này như toán hạng.

2.Chế độ định địa chỉ gián tiếp qua thanh ghi:

Trên 80386 bạn có thể chỉ định một toán hạng là một thanh ghi được sử dụng

để chứa địa chỉ lệch của ô nhớ dữ liệu [eax], [ebx], [ecx], [edx], [esi], và

[EDI].Các thanh ghi [ebp] và [esp] sử dụng các đoạn ngăn xếp theo mặc định.

Lưu ý rằng trong khi chạy trong chế độ thực 16 bit trên 80.386, offsets trong

các thanh ghi 32 bit vẫn phải nằm trong khoảng 0 ... 0FFFFh.Không thể sử dụng

giá trị lớn hơn này để truy cập nhiều hơn 64K trong một phân đoạn. Cũng lưu ý

rằng phải sử dụng tên 32 bit của các thanh ghi.Không thể sử dụng các tên 16 bit.

Các hướng dẫn sau đây chứng minh cho điều vừa nói:

13

Page 14: Bài tập lớn vi xử lý

3.Chế độ định địa chỉ chỉ tức thì:

Trong chế độ địa chỉ này, toán hạng đích là một thanh ghi hay một ô nhớ, còn

toánhạng nguồn là một hằng số và vị trí của toán hạng này ở ngay sau mã lệnh.Chế

độ địachỉ này có thể được dùng để nạp dữ liệu cần thao tác vào bất kỳ thanh ghi

nào (ngoại trừcác thanh ghi đoạn và thanh cờ) hoặc vào bất kỳ ô nhớ nào trong

đoạn dữ liệu DS.

4.Chế độ định địa chỉ trực tiếp.

Trong chế độ địa chỉ này một toán hạng chứa địa chỉ lệnh của ô nhớ dùng

chứa dữliệu còn toán hạng kia chỉ có thể là thanh ghi mà không được là ô nhớ. Nếu

so sánh với chế độ địa chỉ tức thì ta thấy ở đây ngay sau mã lệnh không phải là toán

hạng mà là địa chỉ lệch của toán hạng.

5.Chế độ định địa chỉ tương đối cơ sở.

Trong chế độ địa chỉ này các thanh ghi cơ sở như BX và BP và các hằng số

biểudiễn các giá trị dịch chuyển (displacement values) được dùng để tính địa chỉ

14

Page 15: Bài tập lớn vi xử lý

hiệu dụngcủa toán hạng trong các vùng nhớ DS và SS. Sự có mặt của các giá trị

dịch chuyển xác định tính tương đối của địa chỉ so với địa chỉ cơ sở.

6.Chế độ định địa chỉ tương đối chỉ số cơ sở.

Kết hợp hai chế độ địa chỉ chỉ số và cơ sở ta có chế độ địa chỉ chỉ số cơ

sở.Trongchế độ địa chỉ này ta dùng cả thanh ghi cơ sở lẫn thanh ghi chỉ số để tính

địa chỉ của toánhạng. Nếu ta dùng thêm cả thành phần biểu diễn sự dịch chuyển của

địa chỉ thì ta có chếđộ địa chỉ phức tạp nhất: chế độ địa chỉ tương đối chỉ số cơ sở.

Ta có thể thấy chế độ địachỉ này rất phù hợp cho việc địa chỉ hoá các mảng hai

chiều.

7. Định địa chỉ chế độ thực:

Định địa chỉ ở chế độ thực: Sau khi bật nguồn hay reset, 80386 ở chế độ thực. Cơ

chế địa chỉ hoá và kích thước bộ nhớ 80286 ( Kích thước cực đại là Mbyte ), vì

vậy chỉ có các dây địa chỉ A2-A19 và BE0 -BE3 là tích cực. ở chế độ này bộ nhớ 15

Page 16: Bài tập lớn vi xử lý

theo trang không được phép, do vậy địa chỉ tuyến tính cũng giống địa chỉ vật lí.

Cách tính địa chỉ vật lí giống như ở 80386.

8,Định địa chỉ ở chế độ bảo vệ:

Lúc này địa chỉ lôgic được xác định bởi hai phần:

- Bộ chọn là nội dung các thanh ghi chọn đoạn 16Bit trong đó chỉ số để xác định địa chỉ cỏ sở 32 Bit của bộ mô tả đoạn.

- Offset đựoc tạo nên bởi 3 thành phần: Địa chỉ có cơ sở đoạn nhớ(base), chỉ

số(index) và đọ dịch chuyển (displacement).

Việc chuyển từ chế độ thực sang chế độ bảo vệ được thực hiện bằng cách đặt

bit PE trong thanh ghi CR0 bằng 1 và được nghi lại từ chế độ bảo vệ chế độ thực

bằng cách xoá bit PE bằng 0. Đơn vị quản lí đoạn sẽ chuyển địa chỉ lôgic thành địa

chỉ tuyến tính 32 bit. Nếu đơn vị quản lí trang không được phép làm việc thì 32bit

địa chỉ tuyến tính sẽ tương ứng với các địa chỉ vật lí.

16

Page 17: Bài tập lớn vi xử lý

17