Chuong 2 - Tong Quan Ve Vi Xu Ly

Post on 25-Jun-2015

365 views 6 download

Transcript of Chuong 2 - Tong Quan Ve Vi Xu Ly

CHƢƠNG 2

TỔNG QUAN VỀ HỆ VI XỬ LÝ

1

Mục lục

2.1. Giới thiệu chung

2.2. Cấu trúc một hệ Vi xử lý điển hình

2.3. Chu kỳ trong Vi xử lý

2.4. Tập lệnh của Vi xử lý

2.5. Ghép nối bộ nhớ

2

2.1. Giới thiệu chung

2.1.1. Định nghĩa Vi xử lý

– Là mạch bán dẫn tích hợp trên một chip (IC) có nhiệm vụ

thực hiện các công việc xử lý tín hiệu hoặc điều khiển các

thành phần trong hệ thống

– Vi xử lý thực hiện công việc của nó theo chƣơng trình,

thuật toán do ngƣời dùng đặt ra

– Ký hiệu: P hoặc uP

3

2.1. Giới thiệu chung

• Phân loại Vi xử lý

• Hoặc phân loại theo số lƣợng bit: Vi xử lý 4bit, 8bit, 16bit, 32

bit và bây giờ là 64bit.

• Chip của Intel dùng nhiều trong máy tính còn của Motorola

dùng nhiều trong viễn thông

Vi xử lý

Loại đa năng: Phục vụ cho nhiều mục đích khác nhau Ví dụ: 8080, 8085 … của Intel 6800, 6802… của Motorola

Loại chuyên dụng: Phục vụ một mục đích cụ thể Ví dụ: các IC trong đồ chơi của trẻ em

4

2.1. Giới thiệu chung

• Lịch sử ra đời và phát triển của Vi xử lý

1960

Fairchild

Semiconductor:

Chip bán dẫn đầu tiên

1971

Intel:

4004, 8008,

8080

1976

Zilog: Z-80

TI: VXL 16bit

1982

32 bit

AT&T: BELLMAC-32A 1985

Motorola: 680xx

ARM I

1990

Power PC (IBM)

64bit1993

1999

Intel: Pentium,

Xeon, Celeron

2005

Intel: Multi Core

Thương mại hóa

chip bán dẫn

Tăng mật độ,

Máy tính trên chip

VLSI

và 32 bit32bit nhường chỗ

64bitKỷ nguyên đa lõi

5

2.1. Giới thiệu chung

2.1.2. Hệ Vi xử lý

• Định nghĩa:

– Là hệ thống số làm việc theo chƣơng trình đƣợc lƣu giữ

trong bộ nhớ, xử lý dữ liệu bằng vi xử lý và đƣa ra các

quyết định liên lạc với thế giới bên ngoài thông qua các

cổng vào ra

– Một hệ Vi xử lý luôn bao gồm 2 thành phần: Phần cứng và

phần mềm

6

2.1. Giới thiệu chung

2.1.3. Các thành phần trong hệ Vi xử lý

7

2.1. Giới thiệu chung

2.1.4. Các kiến trúc thông dụng của Vi xử lý

• Kiến trúc Von Neumann

– Chỉ có một bộ nhớ chung cho dữ liệu và chƣơng trình

– Đọc dữ liệu và đọc lệnh không diễn ra đồng thời

8

2.1. Giới thiệu chung

• Kiến trúc Von Newmann

9

2.1. Giới thiệu chung

• Kiến trúc Harvard

– Có các bus độc lập cho bộ nhớ chƣơng trình và dữ liệu

– Đọc dữ liệu và đọc chƣơng trình diễn ra đồng thời

10

2.1. Giới thiệu chung

• Kiến trúc Harvard

11

2.1. Giới thiệu chung

• Kiến trúc SHARC – Super Harvard Architecture

– Thêm vào một số đặc trƣng để cải thiện băng thông dữ liệu

12

2.1. Giới thiệu chung

• Kiến trúc DSP – Digital Signal Processing

13

2.2. Cấu trúc của một hệ VXL điển hình

2.2.1. Cấu trúc chung của một hệ VXL điển hình

14

2.2. Cấu trúc của một hệ VXL điển hình

• Cấu trúc rút gọn

– uP: Vi xử lý

– M: Bộ nhớ (Memory)

– I: Cổng vào/Thiết bị vào dữ liệu (Input)

– O: Cổng ra/Thiết bị xuất dữ liệu (Output)

uP M I O

Address Bus

Data bus

Control bus

15

2.2. Cấu trúc của một hệ VXL điển hình

2.2.2. Các thành phần cơ bản trong hệ VXL

1. Hệ thống Bus

Khái niệm

Kết nối kiểu kinh điển

A B

C D

Bus

Kết nối kiểu Bus 16

2.2. Cấu trúc của một hệ VXL điển hình

– Bus là nút dùng chung của cả hệ thống, dùng để truyền dữ

liệu giữa các thành phần với nhau

– Bus có thể nằm trong hoặc nằm ngoài Vi xử lý

– Truyền thông song song: Bus là dải (tape) dây dẫn, mỗi dây

truyền 1 bit.

– Truyền thông nối tiếp: Bus có thể là cáp đồng trục, xoắn

đôi, quang…

17

2.2. Cấu trúc của một hệ VXL điển hình

Tổ chức và quản lý Bus

• Bus sử dụng phần tử 3 trạng thái để cách ly các phần

tử trong hệ thống

• Các phần tử trong hệ thống Bus đƣợc quản lý bằng

địa chỉ.

– Mỗi thành viên trong hệ đều đƣợc xác định 1 địa chỉ duy

nhất

– Quản lý địa chỉ bằng phần cứng (mỗi đầu dây, I/O có 1 địa

chỉ xác định) hoặc bằng phần mềm (địa chỉ IP)

18

2.2. Cấu trúc của một hệ VXL điển hình

• Truy cập Bus:

– Phƣơng pháp ngẫu nhiên: thời điểm truy cập bus của các

phần tử là ngẫu nhiên. Dùng trong quảng bá

• Tốc độ chậm

• Quản lý số lƣợng phần tử lớn

• Cần giải quyết vấn đề xung đột

– Phƣơng pháp tiền định: xác định trƣớc quy luật, thời gian

truy nhập

• Tốc độ cao

• Số phần tử ít

19

2.2. Cấu trúc của một hệ VXL điển hình

Ưu nhược điểm

• Ƣu điểm:

– Tiết kiệm, đơn giản hóa hệ thống

– Làm hệ có tính mở. Có thể thêm hoặc bớt phần tử dễ dàng

• Nhƣợc điểm:

– Tốc độ bị hạn chế do Bus là đƣờng truyền chung

20

2.2. Cấu trúc của một hệ VXL điển hình

2. Tổ chức cổng vào ra

Thiết bị cơ bản

• IC 8282 – Tích hợp mạch 3 trạng thái và chốt dữ liệu

D

STB

D0Q0

OE

D

STB

D7Q7

OESTB

OE

D0 – D7: 8 đường dữ liệu vào Q0 – Q7: 8 đường dữ liệu ra STB: chốt tín hiệu STB = 1: cho phép đưa dữ liệu ra STB = 1->0: chốt dữ liệu đầu ra /OE: Cho phép xuất tín hiệu

21

2.2. Cấu trúc của một hệ VXL điển hình

Tổ chức cổng vào

8282

Data bus

Address bus

Control bus

D0…..D7

IO/M

RD

Ax

STB

OE

+5V

- Ax: Địa chỉ của thiết bị (Tín hiệu sau giải mã địa chỉ)

- IO/M: Tín hiệu chọn thiết bị: IO/M = 1 chọn cổng vào ra IO/M = 0 chọn bộ nhớ

- /RD: Lệnh chỉ thao tác đọc thiết bị

22

2.2. Cấu trúc của một hệ VXL điển hình

Ax = 1

IO/M = 1

RD = 0

Data từ bên ngoài

Address Bus

Control Bus

Data Bus

23

2.2. Cấu trúc của một hệ VXL điển hình

• Tổ chức cổng ra

8282

Data bus

Address bus

Control bus

Q0…..Q7

IO/M

WR

Ax

STB

OE

24

2.2. Cấu trúc của một hệ VXL điển hình

Ax = 1

IO/M = 1

WR = 0

Data đưa ra ngoàii

Address Bus

Control Bus

Data Bus

25

2.2. Cấu trúc của một hệ VXL điển hình

3. Bộ nhớ

• Định nghĩa:

Là thiết bị dùng để lƣu trữ thông tin gồm chƣơng

trình và dữ liệu

• Phân loại:

– Bộ nhớ chính: là bộ nhớ hoạt động, yêu cầu tốc độ cao. Chế

tạo dƣới dạng bộ nhớ bán dẫn. VD: RAM

– Bộ nhớ phụ: yêu cầu cao về dung lƣợng lƣu trữ và thời gian

lƣu trữ. VD: ROM, HDD…

26

2.2. Cấu trúc của một hệ VXL điển hình

• Tổ chức của bộ nhớ:

Bộ nhớ đƣợc tạo thành từ các ô nhớ sắp xếp cạnh

nhau về mặt logic. Các tham số của ô nhớ gồm:

– Vị trí (logic) của ô nhớ: là địa chỉ của ô nhớ, do bus địa chỉ

truyền đi trong hệ

– Nội dung của ô nhớ: là dữ liệu chứa trong ô nhớ, do bus dữ

liệu truyền đi trong hệ. Thông thƣờng, mỗi ô nhớ có độ lớn

là 8bit (1byte)

Quản lý bộ nhớ bằng phương pháp địa chỉ hóa các ô nhớ

27

2.2. Cấu trúc của một hệ VXL điển hình

• Các phƣơng pháp địa chỉ hóa ô nhớ

– Phƣơng pháp địa chỉ tuyệt đối:

• Địa chỉ của một ô nhớ chính là khoảng cách của nó so với địa chỉ

gốc

• Địa chỉ gốc thƣờng đƣợc xác định là 0

• Ứng dụng cho các loại bộ nhớ dung lƣợng nhỏ

0

1

10

11

0

1

2

3

111014

15 ô nhớ

28

2.2. Cấu trúc của một hệ VXL điển hình

– Phƣơng pháp địa chỉ đoạn

• Chia toàn bộ bộ nhớ thành nhiều vùng (segment), mỗi vùng có một

địa chỉ xác đinh.

• Địa chỉ của một ô nhớ trong bộ nhớ đƣợc xác định bởi:

– Địa chỉ của segment chứa ô nhớ đó

– Địa chỉ offset của ô nhớ trong segment

Segment 0

Segment 1

Segment nĐịa chỉ offset

Địa chỉ segment

29

2.2. Cấu trúc của một hệ VXL điển hình

– Phƣơng pháp địa chỉ đoạn (tiếp)

• Các thiết bị lƣu trữ địa chỉ ô nhớ có kích thƣớc nhỏ

– Ví dụ: 8085A địa chỉ hóa ô nhớ bằng 16bit -> Dùng 2 thanh ghi 8bit,

1 thanh ghi chứa địa chỉ segment, 1 chứa địa chỉ offset

• Quản lý đƣợc bộ nhớ có dung lƣợng lớn

– Không gian nhớ: toàn bộ địa chỉ có thể địa chỉ hóa đƣợc

của bộ nhớ

• Nếu bus địa chỉ có n bit thì không gian nhớ là 2n địa chỉ

30

2.2. Cấu trúc của một hệ VXL điển hình

– Bản đồ bộ nhớ: cho thấy bộ nhớ hay các thiết bị có kết nối

với bus địa chỉ đƣợc đặt ở đâu trong không gian nhớ

– Ví dụ:

31

2.2. Cấu trúc của một hệ VXL điển hình

4. Vi xử lý - 8085

• Một số đặc tính cơ bản:

– Bộ xử lý 8 bit tốc độ 3 – 6MHz

– 4 đầu vào ngắt

– Có các cổng vào ra nối tiếp

– Có khả năng tính toán số học thập phân, nhị phân và dấu

phẩy động

– Chu kỳ lệnh 0.8s

– Địa chỉ hóa trực tiếp cho 64KB bộ nhớ

– ….

32

2.2. Cấu trúc của một hệ VXL điển hình

• Sơ đồ chân linh kiện

– Bus địa chỉ: AD0 – AD7 và A8 – A15

– Bus dữ liệu: AD0 – AD7

– Bus điều khiển: IO/M, RD, WR…

– ALE: Cho phép chốt địa chỉ

– SID, SOD: vào/ra dữ liệu nối tiếp

– S0, S1: trạng thái chu kỳ máy

U5

8085

30

31

3234

3

37

4

38

40

20

2

5

6

1

10 11

2933

39

35

2122232425262728

1213141516171819

987

36

ALE

WR

RDIO/M

RSTOUT

CLKOUT

SOD

HLDA

VC

CG

ND

X2

SID

TRAP

X1

INTR INTA

S0S1

HOLD

READY

A8A9

A10A11A12A13A14A15

AD0AD1AD2AD3AD4AD5AD6AD7

RST 5.5RST 6.5RST 7.5RSTIN

33

2.2. Cấu trúc của một hệ VXL điển hình

• Phối hợp các tín hiệu điều khiển

– MEMR: cho phép đọc từ bộ nhớ

– MEMW: cho phép ghi bộ nhớ

– I/OR: cho phép đọc từ cổng vào

– I/OW: cho phép ghi ra cổng ra

1 2

IO/(/M)

/WR

IO/(/M)

4

52

4

52

/WR

IO/(/M)

4

52

/RD

1 2

IO/(/M)/MEMR

/I/OW

4

52

/RD/I/OR

/MEMW

34

2.2. Cấu trúc của một hệ VXL điển hình

• Biểu đồ thời gian làm việc trong 8085

35

2.2. Cấu trúc của một hệ VXL điển hình

• Sơ đồ cấu trúc Vi xử lý 8085

36

2.2. Cấu trúc của một hệ VXL điển hình

• Các thành phần điển hình:

– Đơn vị điều khiển (Control Unit): điều khiển và đồng bộ

quá trình trao đổi và biến đổi số liệu trong hệ Vi xử lý.

– Đơn vị logic số học (Arithmetic Logic Unit – ALU) thực

hiện các phép toán

– Hệ thống thanh ghi: lƣu giữ dữ liệu tạm thời phục vụ cho

tính toán. 8085 có 7 thanh ghi mục đích chung 8 bit B, C,

D, E, H, L và có thể ghép thành 3 thanh ghi 16 bit.

37

2.2. Cấu trúc của một hệ VXL điển hình

• Các thành phần điển hình:

– Thanh chứa (Accumulator – A) là một thành phần của

ALU. Chứa dữ liệu 8 bit

– Hệ thống cờ (Flag – F)

• Cờ không – Zero (Z)

• Cờ nhớ – Carry (C)

• Cờ dấu – Sign (S)

• Cờ chẵn lẻ – Parity (P)

• Cờ nhớ phụ – Auxiliary Carry (AC)

38

2.2. Cấu trúc của một hệ VXL điển hình

• Các thành phần điển hình:

– Bộ đếm chƣơng trình (Program Counter – PC): 16 bit, là

con trỏ bộ nhớ. Dùng để lập trình tự thực hiện lệnh trong Vi

xử lý

– Con trỏ ngăn xếp (Stack Pointer – SP): 16 bit, cũng là con

trỏ bộ nhớ, trỏ đến vùng nhớ ngăn xếp (stack)

– Thanh ghi lệnh và giải mã lệnh (IR, ID): lƣu giữ tạm thời

lệnh hiện thời của chƣơng trình (IR), ID sẽ giải mã lệnh

thành các vi lệnh

39

2.2. Cấu trúc của một hệ VXL điển hình

– Thanh ghi địa chỉ bộ nhớ: lƣu giữ địa chỉ, nhận về từ PC,

của câu lệnh tiếp theo

– Bộ phát xung điều khiển (Control Generator) tạo ra các

xung trong uP để thực hiện các lệnh đã đƣợc giải mã

– Bộ chọn thanh ghi (Register Selector) điều khiển việc lựa

chọn sử dụng các thanh ghi trong hệ thống thanh ghi của

uP

40

2.2. Cấu trúc của một hệ VXL điển hình

• Quá trình thực hiện lệnh

– Địa chỉ lệnh đầu tiên: n

– Sau Reset, IP = 0

– Khi thực hiện, IP = n

– Địa chỉ trong IP chỉ ra vị trí câu lệnh trong chƣơng trình

41

2.2. Cấu trúc của một hệ VXL điển hình

• Quá trình thực hiện lệnh (tiếp)

((IP)) -> uP

ID giải mã lệnh

IP ++

Lệnh được thực hiện

42

43

2.3. Chu kỳ trong Vi xử lý

1. Chu kỳ lệnh (Instruction Cycle)

Khoảng thời gian để Vi xử lý thực hiện một lệnh từ

bộ nhớ chƣơng trình.

2. Chu kỳ máy (Machine Cycle)

Số bƣớc mà vi xử lý thực hiện ứng với một lệnh

nhận đƣợc. Thƣờng gồm 4 bƣớc: đọc lệnh, dịch

lệnh, thực hiện lệnh và lƣu giữ kết quả

Bằng một số nguyên lần xung đồng hồ

44

2.4. Tập lệnh của Vi xử lý

• 4 nhóm lệnh chủ yếu:

– Nhóm lệnh di chuyển dữ liệu

• VD: MOV A, B

– Nhóm lệnh tính toán logic

• VD: ANL A, R0

– Nhóm lệnh toán học

• VD: ADD A, R1

– Nhóm lệnh nhảy và rẽ nhánh

• VD: JNB TF0, LOOP

• VD: ACALL LOOP

45

2.4. Tập lệnh của Vi xử lý

• Ngày nay, tập lệnh của VXL ngày càng phong phú,

thời gian thực hiện lệnh ngày càng nhanh

– Do sự phát triển về công nghệ chế tạo

– Do mức độ tích hợp các thiết bị ngoại vi

– Do sự đa dạng của các sản phẩm

– Do sự đa dạng của các hãng sản xuất

– ….

46

2.5. Ghép nối bộ nhớ

2.5.1. Một số chip nhớ thông dụng

1. ROM

– Thiết kế bởi công nghệ NMOS, CMOS

– Dung lƣợng thƣờng 2Kbyte – 64Kbyte

– Dữ liệu lƣu trữ dạng ma trận

– Không bị ảnh hƣởng bởi việc mất điện

– 2716, 2732, .., 27256

47

2.5. Ghép nối bộ nhớ

• Ví dụ ROM 2716

48

2.5. Ghép nối bộ nhớ

2. RAM

• Static RAM

– Mỗi bít dữ liệu đƣợc lƣu trữ bởi cặp flip-flop

– Cấu trúc đơn giản

– Ghi và xóa tín hiệu bằng điện

– Dữ liệu mất đi khi mất điện

– Tiêu thụ năng lƣợng lớn khi có điện

– Kích thƣớc lớn khi dung lƣợng lớn

– 6216, 6232, ..62256

49

2.5. Ghép nối bộ nhớ

• Dynamic RAM

– Dữ liệu ghi bằng tụ

– Dữ liệu phải refresh từng 2ms -> phải có bộ điều khiển

refresh

– Dung lƣợng lớn

– Cấu trúc ma trận

– Ít tổn hao điện

50

2.5. Ghép nối bộ nhớ

• Ví dụ: RAM 62256

51

2.5. Ghép nối bộ nhớ

2.5.2. Ghép nối nhiều bộ nhớ

• Ghép nối các chip nhớ 2Kx8bit để tạo ra bộ nhớ

4Kx8bit

• Một số chú ý:

– Số lƣợng bit địa chỉ phải phù hợp

– Thống nhất tín hiệu điều khiển

– Bộ nhớ 2Kx8bit có 11 bit địa chỉ trong khi 4Kx8bit có

12bit địa chỉ

52

2.5. Ghép nối bộ nhớ

53

D1

A1

A2

A0

A[0

..1

1]

D6

A9

D5

A6

A8

D0

A3

/RD

U12016

87654321

232219

910111314151617

2021

18

A0A1A2A3A4A5A6A7A8A9A10

D1D2D3D4D5D6D7D8

OEWE

CE

Da

ta[0

..7]

D7

/WR

/WR

A8

U22016

87654321

232219

910111314151617

2021

18

A0A1A2A3A4A5A6A7A8A9A10

D1D2D3D4D5D6D7D8

OEWE

CE

D6

D0

A9

A4

A2

U3

NOT

12

A3

/RD

A4

A10

A7

D5

A11

A7

D7

A10

A6

A11

D2

A5

D4A5

A0

D4

D3

D1

D2A1

D3

2.5. Ghép nối bộ nhớ

2.5.3. Thiết lập bộ nhớ tại địa chỉ xác định

54