1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu tìm hiểu về thế hệ VXL 8086

25 1,2K 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 525,5 KB

Nội dung

“Nếu ban giám đốc Intel có một ý niệm mơ hồ nào đó rằng kiến trúc này sẽ tồn tại cho rất nhiều thế hệ và trong các bộ vi xử lý… ngày nay thì họ sẽ không bao giờ tin tưởng giao công việc

Trang 2

Page | 2

Thành viên trong nhóm:

1 HOÀNG VĂN QUỲNH

2 NGUYỄN ĐÌNH QUÝ

3 NGUYỄN VĂN QUÝ

4 CHU THANH QUÝ

5 DƯƠNG VĂN QUÝ

Điều ngạc nhiên về sự thành công kỳ diệu của 8086 là rất ít người kỳ vọng về nó khi

8086 còn đang được “thai nghén” Lịch sử của bộ vi xử lý cách mạng này là một câu chuyện kinh điển về một nhóm nhỏ các kỹ sư thiên tài có thể đạt được thành công khi

họ được tự do làm công việc nghiên cứu theo những cách sáng tạo

Khi sự phát triển của 8086 bắt đầu vào tháng 5 năm 1976, các giám đốc điểu hành của Intel chưa bao giờ tưởng tượng được sự tác động ngoạn mục mà 8086 mang lại Công

ty xem 8086 như một dự án lấp chỗ trống trong khi công ty đang kỳ vọng vào một bộ

Trang 3

Page | 3

vi xử lý phức tạp và khác biệt là 8800 (tên sau đó là iAPX 432) Trong một kỷ nguyên

mà hầu hết các dòng chip đều sử dụng 8-bit dữ liệu, 8800 đã nhảy vọt lên 32 bit Khả năng xử lý đa nhiệm nâng cao và mạch quản lý bộ nhớ có thể được xây dựng tạo thànhCPU, cho phép hệ điều hành chạy ít dòng mã điều khiển hơn

Nhưng dự án 8800 gặp khó khăn Dự án này đã vấp phải rất nhiều sự trì hoãn khi các

kỹ sư Intel nhận thấy rằng thiết kế phức tạp của chip rất khó có thể chế tạo với công nghệ chip hiện thời Vấn đề của Intel chưa dừng ở đó, Intel bị “chọc sườn” bởi công tyZilog (công ty được thành lập từ những kỹ sư xuất phát từ Intel) Zilog nhanh chóng chiếm thị phần cho dòng vi xử lý bậc trung với sản phẩm Z80 CPU Ra đời tháng 7, năm 1976 Z80 là phiên bản nhái nâng cao của dòng chip Intel 8080 - dòng chip đã khởi nguồn cho cuộc cách mạng máy tính cá nhân Intel đã phải đưa ra câu câu trả lời cho Z80

Kỹ sư kì cựu của Intel – Stephen Morse là tác giả của những đoạn mã trong 8086.Các giám đốc điều hành của Intel vẫn duy trì niềm tin vào 8800 nhưng biết rằng công

ty cần câu trả lời cho mối nguy từ Zilog Họ quay sang Stephen Morse, người kỹ sư điện tử 36 tuổi, người đã gây ấn tượng với họ về sự nghiên cứu kỹ càng tới các lỗi trong thiết kế chip 8800 Công ty chỉ định Morse làm kỹ sư duy nhất cho dự án 8086

“Nếu ban giám đốc Intel có một ý niệm mơ hồ nào đó rằng kiến trúc này sẽ tồn tại cho rất nhiều thế hệ và trong các bộ vi xử lý… ngày nay thì họ sẽ không bao giờ tin tưởng giao công việc này cho duy nhất một người” ông Morse hồi tưởng lại

Bổ nhiệm Morse là một lý do ngạc nhiên khác Ông ta là kỹ sư phần mềm Trước đây, thiết kế CPU ở Intel là miền đất chỉ cho các kỹ sư phần cứng “Lần đầu tiên, chúng tôi nhìn các tính năng của bộ vi xử lý từ các khía cạnh của phần mềm Câu hỏi không phải

là những tính năng gì chúng ta có thể phát triển mà là những tính năng gì chúng ta muốn để làm cho phần mềm hiệu quả hơn.” Morse nói Hướng tiếp cận tập trung vào phần mềm đã chứng minh cho cuộc cách mạng trong ngành công nghiệp này

Mặc dù 8086 là dự án “con cưng” của Morse, nhưng ông ta không làm việc đơn độc Tham gia vào nhóm của Morse là các nhân viên của Intel, bao gồm Bill Pohlman, Jim McKevitt và Bruce Ravenel, tất cả đã góp sức đưa 8086 bước ra thị trường vào mùa hènăm 1978

Vượt ra ngoài việc chỉ dừng lại ở một số yêu cầu cơ bản, 8086 tương thích với các phần mềm viết cho 8080 và có khả năng hỗ trợ 128KB bộ nhớ - các nhà lãnh đạo của Intel không can thiệp vào công việc của Morse “Bởi vì không ai mong đợi thiết kế sẽ tồn tại lâu dài, không rào cản nào ngáng chân công việc của tôi, tôi tự do làm những gìmình muốn” ông nói

ii.Tæ CHøC Bé Xö Lý INTEL 8086

Trang 4

Page | 4

Bộ Xử Lý (CPU) INTEL 8086

1 Tổ chức tổng quát

CPU 8086 là CPU 16 bit (bus số liệu có 16 dây) Nó đợc dùng để chế tạo các máy

vi tính đầu tiên của hãng IBM Thật ra IBM dùng CPU 8088 với đờng bus số liệu rangoài là 8 bit

Cho đến nay, CPU đã không ngừng cải tiến và đã trải qua các dạng 80186, 80286,

80386, 80486, 80586 (Pentium), Pentium Pro, Pentium II, PIII, PIV

Các CPU tơng thích từ trên xuống (downward compatible) nghĩa là tập lệnh mớibao gồm tập lệnh của CPU cũ và thêm nhiều lệnh mới nữa

Hình ảnh CPU 8086:

Trang 5

Page | 5

Execution Unit (EU)

Thùc hiÖn lÖnh

Bus Interface Unit (BIU) Giao tiÕp Bus

0 00 0

0 00 0

0 00 0

§iÒu khiÓn bus

Bus ngo¹i

ALU (Bé lµm tÝnh &

luËn lý)

1

Hµng chê lÖnh

2 3 CU

(Bé ®iÒu khiÓn)

4 5 Thanh ghi tr¹ng

th¸i

6

Thanh ghi lÖnh

Trang 6

Page | 6

Hình: Sơ đồ khối của CPU 8086

Ta thấy CPU 8086 chia thành 2 bộ phận chính: Bộ phận thực hiện lệnh (ExecutionUnit: EU) và bộ phận giao tiếp Bus (Bus Interface Unit: BIU)

Bộ phận thực hiện lệnh EU: Kiểm soát các thanh ghi, giải mã và thi hành lệnh tức

là làm các tác vụ mà lệnh yêu cầu Nh vậy EU làm hầu hết công việc của CPU cổ điển.Các thanh ghi và đờng bus trong EU điều là 16 bit EU không nối với bus hệ thống bênngoài, nó lấy lệnh từ hàng chờ lệnh mà BIU cung cấp Khi có yêu cầu truy xuất bộ nhớhay ngoại vi thì EU yêu cầu BIU làm việc BIU có thể tái định địa chỉ cho phép EUtruy xuất đầy đủ 1MB (8086 có 20 đờng địa chỉ ngoại)

Bộ phận giao tiếp bus (BIU): BIU thực hiện tất cả các tác vụ về bus của EU.Trong khi EU đang thực hiện lệnh thì BIU lấy lệnh từ bộ nhớ trong và cất giữ vào trong

ô nhớ (gọi là hàng chờ lệnh) bên trong CPU Do đó, EU không phải đợi lấy lệnh từ bộnhớ Đây là một cách đơn giản của cache

2 Các thanh ghi của 8086

a Thanh ghi đa dạng: CPU 8086 có 4 thanh ghi đa dụng 16bit, có thể chia

đôi thành 8 thanh, mỗi thanh 8 bit

 AX (accumulator): là thanh ghi tích luỹ cơ bản, mọi tác vụ vào/ra đềudùng thanh ghi này, tác vụ dùng số liệu tức thời, một số tác vụ chuỗi ký tự và các lệnhtính toán đều dùng thanh ghi AX

 BX (base register): là thanh ghi nền thờng dùng để tính toán địa chỉ ônhớ

 CX (count register): là thanh ghi đếm thờng dùng để đếm số lần trongmột lệnh vòng lặp hoặc xử lý chuỗi ký tự

 DX (data register): thờng chứa địa chỉ của một số lệnh vào ra, lệnh tínhtoán số học (kể cả nhân và chia)

b Thanh ghi con trỏ: Dùng để thâm nhập số liệu trên ngăn xếp.

 SP (stack pointer): Thanh ghi con trỏ ngăn xếp

 BP (base pointer): Thanh ghi con trỏ nền dùng để lấy số liệu từ ngănxếp

c Thanh ghi chỉ số

 SI (source index): Thanh ghi chỉ số nguồn

 DI (destination index): Thanh ghi chỉ số đích

d Thanh ghi đoạn: Đợc dùng trong mọi tính toán địa chỉ ô nhớ Mỗi thanh

ghi đoạn xác định 64 KB ô nhớ trong bộ nhớ trong

 CS (code segment): Thanh ghi đoạn mã lệnh

 DS (data segment): Thanh ghi đoạn dữ liệu

 ES (extra segment): Thanh ghi đoạn thêm Các pháp tính chuỗi dùng DI

đều liên quan đến ES

Trang 7

Page | 7

 SS (stack segment): Thanh ghi đoạn ngăn xếp Con trỏ SP luôn trỏ tới

đỉnh của ngăn xếp

e Thanh ghi cờ: Phản ảnh kết quả của phép tính toán số học và luận lý, xác

định trạng thái hoạt động của CPU Các bit trên thanh ghi cờ có ý nghĩa đợc trình bàydới đây

 CF: thể hiện số giữ thoát ra từ bit cao nhất của thanh ghi kết quả sau mộtphép tính toán

 OF: thể hiện việc tính toán vợt quá khả năng của CPU

 AF: thể hiện số giữ thoát ra từ bít thứ 4 (bit 3) của thanh ghi kết quả

 PF: bằng 1 nếu 8 bít thấp của thanh ghi kết quả một phép tính toán có sốcon số 1 chẳn (và ngợc lại)

 ZF: bằng 1 khi kết quả phép tính bằng 0 (và ngợc lại)

 DF: có thể lập trình đợc, bằng 1 thì SI và DI giảm 1 cho mỗi vòng lặp

 IF: có thể lập trình đợc, bằng 1 cho phép ngắt

 TF: có thể lập trình đợc, bằng 1 khi cho phép chơng trình chạy từng bớc

để phục vụ sửa sai một chơng trình

1

5

14

13

12

11

4. Sự phân đoạn trong bộ nhớ trong

CPU 8086 có không gian địa chỉ là 1 MB (ứng với 20 đờng dây địa chỉ) VậyCPU 8086 có thể quản lý bộ nhớ trong là 220 = 1 MB

Để dành dùng sau

Trang 8

Ví dụ: Đoạn CS có giá trị là 1002H, thì địa chỉ vật lý của ô nhớ K trong đoạn CS

có độ dời 500H (thờng viết CS:500H) là:

+ 10020H Vì 1002H dịch trái 4bit = 10020H

500H10520H  Đây là địa chỉ vật lý của ô nhớ KTrong ví dụ ta thấy đoạn CS có điểm bắt đầu ở địa chỉ vật lý 10020H Độ dời500H là khoảng cách từ địa chỉ của điểm bắt đầu của đoạn CS đến ô nhớ K

Ô nhớK

Địa chỉ vật lý của ô nhớ K: 10520H

Địa chỉ 10020H

Điểm bắt đầu của đoạn CS

Chính BIU quyết định sẽ dùng đoạn nào theo tính chất của số liệu

Nếu số liệu là mã lệnh thì BIU sẽ dùng đoạn CS

Nếu số liệu là dữ liệu của chơng trình thì BIU sẽ dùng đoạn DS

Nếu số liệu là dữ liệu nằm trên ngăn xếp thì BIU sẽ dùng đoạn SS

Nếu dùng các phép tính chuỗi thì thanh ghi DI luôn chứa độ dời của ônhớ trong đoạn ES

Lúc khởi động CPU 8086 đến địa chỉ vật lý cao của bộ nhớ trong (đoạnCS=0FFFFH và độ dời 0) để lấy lệnh Địa chỉ này ứng với địa chỉ ROM của bộ nhớtrong

5. Địa chỉ các ngoại vi

Các ngoại vi đều có địa chỉ riêng từ 0 đến 64 KB CPU 8086 dùng các lệnh riêngbiệt để truy xuất ngoại vi và bộ nhớ trong Muốn truy xuất ngoại vi, BIU chỉ cần đ a địachỉ của ngoại vi lên 16 bit thấp của bus địa chỉ (không có đoạn)

Trang 9

Page | 9

6. Các chân của vi mạch 8086

AD0 … AD15 + AD16 … AD19 là 20 chân của bus địa chỉ, các chân từ AD0 đếnAD15 đợc đa hợp (multiplex) với bus số liệu, các chân từ AD16 đến AD19 đợc đa hợpvới các nhiệm vụ về trạng thái thể hiện ở các chân S3, S4, S5, S6

S5 thể hiện trạng thái cờ ngắt (interrupt flag)

S6 đợc giữ ở trạng thái thấp nếu CPU đang sử dụng hệ thống bus ngoài

S7 lu giữ trạng thái của BHE ở chu kỳ máy thứ nhất

Trang 10

Page | 10

RD: CPU dùng tín hiệu này để đọc số liệu từ ô nhớ hay từ các thiết bị ngoại vi.Ready: Ô nhớ hoặc ngoại vi có thể dùng tín hiệu này để báo cho CPU biết nó

đang sẳn sàng chuyển dữ liệu

TEST: Khi ta dùng lệnh WAIT thì CPU ở trạng thái nghỉ cho đến khi tín hiệu ởchân này xuống thấp thì CPU mới thi hành lệnh kế sau lệnh WAIT

INTR: Các ngoại vi tác động vào chân này khi cần ngắt CPU

NMI (non maskable interrupt): Đây là ngã vào của ngắt không che, ngắt khôngche có u tiên tuyệt đối

Reset: Khởi động lại hệ thống

CPU 8086 có hai chế độ vận hành MAX (MX ) và MIN (MN) Nhiệm vụ của cácchân tơng ứng với 2 chế độ vận hành nh sau:

MIN (MN)

 Chế độ MN (hiệu điện thế ở chân MN / MX cao)

DEN (data enable): Cho phép số liệu đợc nhận vào CPU hoặc đa ra bus số liệutuỳ theo tín hiệu ở chân DT / R Nếu chân DT / R có hiệu thế cao, CPU đa số liệu rabus hệ thống Nếu DT / R có hiệu thế thấp, CPU nhận số liệu từ bus hệ thống

IO

M / (memory / input output): Chân này ở trạng thái cao nếu CPU liên hệ với

bộ nhớ Nó ở trạng thái thấp nế CPU làm việc với ngoại vi

HOLD: Các ngoại vi tác động vào chân này nếu muốn sử dụng bus hệ thống.HLDA (hold acknowledge): CPU dùng tín hiệu này để báo cho ngoại vi biết nó

đang thả nổi bus hệ thống

ALE (address latch enable): Tín hiệu ở chân này cho biết địa chỉ của ô nhớ đã đợc

đa ra bus hệ thống

INTA (interrupt latch enable): Đây là tín hiệu cho biết CPU đã công nhận ngắt

mà ngoại vi yêu cầu

WR: Tín hiệu dùng để viết số liệu vào bộ nhớ

 Chế độ MX (hiệu điện thế ở chân MN / MX thấp)

S0, S1, S2 kết hợp, ý nghĩa nh sau:

Trang 11

/ GT

RQ gièng nh RQ / GT0 nhng u tiªn thÊp h¬n

QS0 vµ QS1 cho biÕt tr¹ng th¸i cña hµng chê lÖnh nh sau:

GND (ground): lµ ch©n mass (0 volt) Vcc lµ hiÖu ®iÖn thÕ nguån 5 volt

CPU 8086 ph¶i dïng chung víi mét sè vi m¹ch kh¸c nh: vi m¹ch ®iÒu khiÓn bus,

vi m¹ch t¹o xung nhÞp (clock),… míi t¹o thµnh mét m¸y vi tÝnh

C¸C LÖNH THƯêNG DïNG CñA CPU 8086

<tác vụ lệnh> TH1,TH2

Tác vụ lệnh cho biết công việc mà CPU sẽ thực hiện ( là thành phần bắt buộc ) toán hạng ( TH1và TH2) phải ngăn cách nhau bằng dấu phẩy (,).

Trang 12

Page | 12

Đối với lệnh có 2 toán hạng, thông thường TH2 sẽ là toán hạng nguồn còn TH1

sẽ là toán hạng đích và cũng là toán hạng nguồn còn lại Kích thước các toán hạng phảibằng nhau:

-Nếu TH1 là 8 bit thì TH2 cũng phải 8 bit và ngược lại

-Nếu TH2 Là 16 bit thì TH1 cung phải 16 bit và ngược lại

Tập lệnh CPU-8086 được sắp xếp theo các nhóm như sau:

 Sao chép dữ liệu và địa chỉ

 Tính toán số học

 Tính toán lôgic, ghi dịch và quay

 Truy xuất ngoại vi

1 Lệnh sao chép dữ liệu địa chỉ:

MOV- di chuyễn dữ liệu

Cú pháp: MOV Đích, Nguồn

MOV SegReg, Reg16MOV Reg16, SegRegNguồn (toán hạng nguồn): Reg, Mem, Immed

Đích (toán hạng đích): Reg, Mem

Ý nghĩa: Sao chép dữ liệu (xác định bởi toán hạng nguồn) vào vùng nhớ hoặc thanh

ghi ( xác định bởi toán hạng đích) Sau khi thực hiện xong thì giá trịtoán hạng nguồn và đích bằng nhau

Lưu ý: - Lệnh MOV không ảnh hưởng tới thanh ghi trạng thái.

- Một trong hai toán hạng là thanh ghi

Ví dụ: MOV, CX, BX : Sao chép nội dung thanh ghi BX vào thanh ghi CX Sau

khi thực hiện xong BX=CXMOV DX, 1234h ; DL34h, DH12h

Trang 13

Page | 13

MOV DS, AX ; DS  AX MOV AH, [1234h] ; AHM[ DS:1234h]

MOV [1235h], DX ; M[ DS:1235h] DL, M[DS:1236h]DH

MOV AH, CX ; SAI vì AH có 8 bit trong khi CX có 16 bit.

Bộ nhớ: DS:1237hDS:1236hDS:1235hDS:1234h

Hình1: mô tả lệnh MOV [1235h] DX

Hoán chuyển dữ liệu- XCHG

Cú pháp: XCHG Đích, Nguồn ; Đích  Nguồn

Nguồn, đích : reg, mem

Ý nghĩa: Lệnh XCHG hoán chuyển dữ liệu giữa nguồn và đích Cả 2 toán hạng

không đồng thời là Mem

Ví dụ: XCHG AL, BH ; AL BH

XCHG AL, [12345h]; ALM[DS:12345h],

AHM[DS:12346h]

XCHG bienA, BienB ; SAI vì cả A và B đều là vùng nhớ

LEA- lấy địa chỉ độ rời

Cú pháp: LEA Reg16, Mem16 ; Reg16 địa chỉ độ rời

Ý nghĩa: lấy địa chỉ độ rời của biến hay nhãn (Mem16) đưa vào thanh ghi đích

Reg16

Ví dụ: LEA DX, bienA ; lấy độ rời của bienA đưa vào DX

Bộ nhớ địa chỉ

DS:1A2C6hbienA DS:1A2Bh

DS:1A2Ah DX

Trang 14

Page | 14

Hình2: mô tả lệnh LEA DX, bienA

BienA được ccáp phát vùng nhớ là 1A2Bh, sau khi thực hiện lệnh thì thanh

ghi DX=1A2Bh

2 Lệnh tính toán số học.

ADD- Cộng hai số nguyên

Nguồn: Reg, Mem, Immed

Đích: Reg, Mem

Ý nghĩa: Lấy toán hạng nguồn công toán hạng đích và lưu kết quả lưu toán hạng

đích

SUB- Trừ hai số nguyên

Nguồn: Reg, Mem, Immed

Đích: Reg, Mem

Ý nghĩa: Lấy toán hạng đích (số bị trừ) trừ toán hạng nguồn (số trừ) và lưu kết quả

ở toán hạng đích

Ví dụ: ADD AL, 15 ; ALAL+15

ADD AX, DX ; AXAX+DXSUB BX, 15h ; BXBX-15hSUB DX, CL ; SAI vì DX là 16 bit trong khi CL chỉ có 8 bit

INC- Tăng 1 đơn vị (Increment)

cú pháp : INC đích ; đích đích +1

Đích: Reg, Mem

Ý nghĩa : tăng nội dung toán hạng đích lên 1 đơn vị.

DEC-giảm 1 đơn vị (Decrment)

Trang 15

Page | 15

MUL- nhân 2 số nguyên

Cú pháp: MUL nguồn

Nguồn: Reg, Mem

Ý nghĩa: nhân thanh ghi tích lũy với toán hạng nguồn Tùy theo kích thước của

toán hạng nguồn mà CPU thực hiện phép nhân 8 hay 16 bit

- Nhân 8 bit: dành cho toán hạng nguồn là 8 bit Khi đó CPU sẽ lấy thanh ghi AL

nhân với toán hạng nguồn rồi lưu kết quả vào thanh ghi AX

- Nhân 16 bit: dành cho toán hạng nguồn là 16 bit Khi đó CPU sẽ lấy thanh ghi

AL nhân với toán hạng nguồn rồi lưu kết quả vào thanh ghi DX:AX

(nghĩa là kết quả có 32 bit, 16 bit cao lưu vào DX, 16 bit thấp lưu vào AX)

Ví dụ: MUL BL ; AXAL*BL (nhân 8 bit)

MUL BX ; DX:AXAX*BX ( nhân 16 bit)

MUL [12345H] ; AX AL*M[DS:12345h] (nhân 8 bit)

DIV-chia hai số nguyên

Cú pháp: DIV nguồn

Nguồn: Reg, Mem

Ý nghĩa: lấy thanh ghi tích lũy (số bị chia) chia cho toán hạng nguồn (số chia) Tùy

theo kích thước của toán hạng nguồn mà CPU thực hiện phép nhân 8 hay

16 bit

- Chia 8 bit: dành cho toán hạng nguồn là 8 bit Khi đó CPU sẽ lấy thanh ghi AX

chia cho toán hạng nguồn rồi lưu kết quả vào thanh ghi AL phần con dư lưu vào AH

- Chia 16 bit: dành cho toán hạng nguồn là 16 bit Khi đó CPU sẽ lấy thanh ghi

DX:AX (số32 bit) chia cho toán hạng nguồn rồi lưu kết quả vào thanh ghi

AX phần còn lại lưu vào DX.

Ví dụ: DIV DL ; AL, AHAX÷DL

DIV BX ;AX,DXDX:AX÷BX

3 Nhóm lệnh logic và ghi dịch

AND, OR, XOR, TEST : và, hoặc, cộng không nhớ, kiểm tra bit

OR đích nguồn ; đích đích ∨ nguồnXOR đích nguồn ; đích đích ⊕nguồn

Ngày đăng: 19/03/2015, 22:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w