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 dovậ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
Trang 1BỘ CÔNG THƯƠNG TRƯỜ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
ĐỀ TÀI: .
Giảng viên hướng dẫn : .
Nhóm thực hiện : .
Lớp : .
Trang 2Họ vi xử lý Intel 80386
Mở đầu
Trái tim của một bản mạch chính là bộ vi xử 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 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.Lịch sử phát triển họ vi xử lý iX86II.Cấu trúc khối
III Các chế độ vận hành của bộ vi xử lí 80386IV.Hệ thống vào ra
V.Quản lý bộ nhớVI.Kiến trúc tập lệnhVII.Công nghệ mới VIII.Kết luận
Bài viết dới đây do nhóm gồm : Nguyễn Thị Sim,Bựi Văn Thắng,Chu VănThõn,Nguyễn Trường Sơn cùng nhau tìm tài liệu và thảo luận trong thời giankhá dài Tuy nhóm đã có nhiều cố gắng và nghiên cứu để làm tài liệu này rấtnghiêm túc song không tránh khỏi sai sót Rất mong Thầy giáo và các bạn đọctài liệu cùng tham khảo và cho ý kiến để tài liệu đợc hoàn chỉnh hơn Chân thànhcảm ơn!
I.Lịch sử phát triển họ vi xử lý iX86
Trang 32.VXL 32 bit
Intel 386 gồm các họ 386DX,386SX,386LX là một bớc nhảy vọt so vớicác VXL trớc đó Có khả năng xử lý đa nhiệm, có thể chạy nhiều chơng trìnhcù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ảnnày có bộ nhớ sơ cấp có thiết kế pipeline
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
Trang 41bit 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 dovậ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ộngcủ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ệuBus đ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ầnphả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
Trang 5- 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
Bus dữ liệu kí hiệu Do – Dm-1 thì độ rộng bus là m bit m trong 386 là 32tứ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ấutrúc hệ thống :
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
Thanh ghi lệnh
Trang 6Cá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
giữa
các tín các tín hiệu yêu cầu
điều khiển bên ngoài từ bên ngoài
Bus điều khiển
- Đơn vị điều khiển gồm hai phần chính : khối giải mã lệnh và khối tạoxung nhịp điều khiển thực hiện lệnh
5 Khối giải mã lệnh
Bộ giải mã lệnh gồm ba bộ giải mã cũn 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ệnhthà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 songsong
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ảimã 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 )
đơn vị điều khiển
Trang 7Thanh 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ó 64Kcử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 thanhghi 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ùngcho 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
- 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ánchuỗi
- EDI : thanh ghi con trỏ mà địa chỉ đoạn nằm trong ES con trỏ đích củaphép toán chuỗi
- ESP : thanh ghi con trỏ ngăn xếp mà địa chỉ đoạn nằm trong SS
Trang 8Các thanh ghi đa chức năng
Các thanh ghi đoạn : vẫn giữ nguyên chiều dài 16 bit nhng có haithanh 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 contrỏ đặ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 ớ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ậptrì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
h-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
Trang 9Các thanh ghi đoạn
DSSSESFS
GS GSCá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ơngtrì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 loạ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ạntrong CS và con trỏ lệnh trong EIP Thanh ghi EIP chứa địa chỉ tuyến tính của tớicần đợc thực hiện trong đoạn mã lệnh Chơng trình ứng dụng bên ngoài khôngthể thay đổi đợc thanh ghi CS Chỉ các phép lệnh điều khiển chơng trình bêntrong 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ắtthay đổi nhiệm vụ
Các thanh ghi đoạn
CS các đoạn đều cùng nằm
gian
SS bộ nhớ tuyếntính
ESFSGS
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ạndữ 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ácdạ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 thanhghi 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
40 Gbyte
đoạn chồng lên nhau
đoạn mã
lệnh
đoạn ễ liệu
đoạn ngân xếp
đoạn dữ
liệu
đoạn dữ
liệu
đoạn dữ
liệu
Trang 10chơ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 đợcnâ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ủaCPU :Cờ trạng thái (bit 0,2,4,6,7,11) trong thanh ghi EFLAGS đợc dùng để ghilạ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=0thì 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ểudiễ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ủakế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ợntạ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
- 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ệnhSTC,CLC,CMC Những lệnh thay đổi bit nh BT, BTS,BTR,BTC Có thể chuyểnmộ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ếtquả 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áinhớ hoặc mợn Nếu kết quả là số BCD thì cờ AF đánh dấu nhớ hoặc mợn Cờ SFghi 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ùnglệnh ADC(cộng với số nhớ) hay lệnh SBB( trừ với số mợn ) để tiến hành phéptoá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ệnSETcc 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 hayquay 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:
Trang 11- 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ợpvớ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ạnhay 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ứcnă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ệnhchuyê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 Khikhở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 bitkích thớc và các tham số bộ mô tả cho bảng mô tả cục bộ LDT Để nạp và ghilê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ệnhLLDT 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 khikhở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íchthớ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
Thanh 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ạngthá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 LTRnạ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ủathanh ghi TR khi khởi động tơng tự nh các thanh ghi hệ thống khác