Post on 25-Jun-2015
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