Professional Documents
Culture Documents
Microprocessors
Your instructor
• Bộmôn kỹthuật điện tửtin học
Office: C9-401
Email: pnnam-fet@mail.hut.edu.vn
• Research:
FPGA, PSoC, hệnhúng
Trí tuệnhân tạo
• Education:
K37 điện tử-ĐHBK Hà nội (1997)
Numbered pages
for USA patents
Lab book!!
Chương 1
© DHBK 2005 24/Chapter1
• 18000 vacuum tubes, 1500 rơle, 30 tấn, 140 kW, 20 thanh ghi
10 chữsốthập phân, 100 nghìn phép tính/ giây
• “Trong tương lai máy tính sẽnặng tối đa là 1.5 tấn” (Popular
Mechanics, 1949)
© DHBK 2005 27/Chapter1
• Lập trình thông qua 6000 công tắc nhiều nấc và hàng tấn d ây
© DHBK 2005 28/Chapter1
• Năm 1971, Ted Hoff chếtạo Intel 4004 theo đơn đặt hàng của một
công ty Nhật bản đểtạo chip sản xuất calculator. Đây là vi xửlý đầu
tiên với 2400 transistor (microprocessor, processor-on-a-chip).
• 4 bít dữliệu, 12 bit đị
a chỉ
© DHBK 2005 42/Chapter1
*Engine
Performance and
Emission Control
(Traction Control)
Hệthập phân
• 1234,56710=
1•1000+2•100+3•10+4•1+5•0.1+6•0.01+7•0.001
1•103+2•102+3•101+4•100+5•10-1+6•10-2+7•10-3
r = cơsố(r = 10), d=digit (0 d 9), m = sốchữsốtrước dấu phẩy,
n = sốchữsốsau dấu phẩy
m 1
D d i r i
i n
© DHBK 2005 56/Chapter1
Hệnhịphân
• 1011,0112=
1•8+0•4+1•2+1•1+0•0.5+1•0.25+1•0.125
1•23+0•22+1•21+1•20+0•2-1+1•2-2+1•2-3
r = cơsố(r = 2), d=digit (0 d 1), m = sốchữsốtrước dấu phẩy, n
= sốchữsốsau dấu phẩy
m
1
B d i 2 i
i n
© DHBK 2005 57/Chapter1
Hệ8 (Octal)
• 7654,328=
7•512+6•64+5•8+4•1+3•0.125+2•0.015625
7•83+6•82+5•81+4•80+3•8-1+2•8-2
r = cơsố(r = 8), d=digit (0 d 7), m = sốchữsốtrước dấu phẩy, n
= sốchữsốsau dấu phẩy
m 1
O d i 8 i
i n
© DHBK 2005 58/Chapter1
Hệ16 (Hexadecimal)
• FEDC,7616=
15•4096+14•256+13•16+12•1+7•1/16+6•1/256
15•163+14•162+13•161+12•160+7•16-1+6•16-2
r = cơsố(r = 16), d=digit (0 d F), m = sốchữsốtrước dấu phẩy,
n = sốchữsốsau dấu phẩy
m
1
H di
16 i
i n
© DHBK 2005 59/Chapter1
Cộng nhịphân
• Cộng thập phân
Nhớ 0 1 0
x 8273
y 562
Tổng 8835
• Cộng nhịphân
Nhớ 0 0 1 1 1 1 1
x 10011011
y 1010111
Tổng 11110010
© DHBK 2005 62/Chapter1
Trừnhịphân
x 11101
y 1111
Mượn 1110
Hiệu 01110
© DHBK 2005 63/Chapter1
Nhân nhịphân
• Nguyên tắc: cộng và dị
ch
1110
1101
1110
0000
1110
1110
10110110
© DHBK 2005 64/Chapter1
Chia nhịphân
10111010 1110
1110
1101
1001010
1110
10010
0000
10010
1110
100
(Sign-Magnitude)
• Một sốcó dấu bao gồm 2 phần: dấu và độlớn
• Các sốcó dấu 8 bít sẽcó giá trịtừ-127 đến +127 với
2 số0: 1000 0000 (-0) và 0000 0000 (+0)
© DHBK 2005 67/Chapter1
Sốbù 2
• Sốbù 1 (bù lô gic): đảo bit
1001 => 0110
0100 => 1011
• Sốbù 2 (bù sốhọc): sốbù 1 +1
13 = 0000 1101
Sốbù 1 của 13 =1111 0010
Cộng thêm 1: 1
Sốbù 2 của 13= 1111 0011 (tức là -13)
© DHBK 2005 68/Chapter1
Sốbù 2
• Ví dụ: Tìm sốbù 2 của 0
0 = 0000 0000
Sốbù 1 của 0 =1111 1111
Cộng thêm 1: 1
Sốbù 2 của 0= 0000 0000 (tức là -0)
Sốbù 2
Sốnguyên (integer)
• 8 bit
unsigned: 0 đến 255
signed : -128 đến 127 ( bù hai)
• 16 bit
unsigned: 0 đến 65535 (216-1)
signed : -32768 (215) đến 32767 (215 -1)
• 32 bit
unsigned: 0 đến 232 -1
signed : -231 đến 231-1
© DHBK 2005 72/Chapter1
FFFFH FFFFH
..... .....
mantissa exponent
31 30 23 22 0
63 62 52 51 0
Largest positive (2- 2 -23) 2127 or 3.403 x 10 38 (2- 2 -52) 21023 or 1.798 x 10308
BCD
• Binary Coded Decimal number
BCD chuẩn (BCD gói, packed BCD):
1 byte biểu diễn 2 sốBCD Decimal BCD
Ví dụ: 25: 0010 0101 digit
0 0000
1 0001
BCD không gói (unpacked BCD) :
2 0010
1 byte biểu diễn 1 sốBCD
3 0011
ví dụ: 25: 00000010 00000101 4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
ASCII
© DHBK 2005 78/Chapter1
Hệvi xửlý
Bus dữliệu
Phố
Phố ii ghép
ghép
Bộnhớ
Bộnhớ Vi
Vi xửlý
xửlý Thiết bị
vào/ra
vào/ra
Memory
Memory CPU
CPU vào/ra
(I/O)
(I/O)
Màn hình
Bus đị
a chỉ
Máy in
Bàn phím
DRAM Intel 80X86 ISA Con chuột
SRAM Motorola 680X EISA Ổ cứng
ROM PowerPC PCI Ổ mềm
EEPROM ... VESA CD-ROM
Flash SCSI DVD
USB ...
...
© DHBK 2005 82/Chapter1
Hệvi xửlý
• CPU
Đơn vịsốhọc và logic
Đọc mã lệnh
(Arithmetic Logical Unit)
Thực hiện các phép toán sốhọc
Cộng, trừ, nhân chia
Giải mã lệnh
Thực hiện các phép toán logic
And, or, compare..
Đơn vịđiều khiển (Control Unit) Thực hiện lệnh
Hệvi xửlý
• Memory
ROM: không bịmất dữliệu, chứa dữliệu điều khiển hệthống
lúc khởi động
RAM: mất dữliệu khi mất nguồn, chứa chương trình và dữ
liệu trong quá trình hoạt động của hệthống
• Bus dữliệu
8, 16, 32, 64 bit tùy thuộc vào vi xửlý
• Bus đị
a chỉ
:
16, 20, 24, 32, 36 bit
sốô nhớcó thểđánh đị a chỉ
: 2N
Ví dụ: 8088/8086 có 20 đường đị a chỉ=> quản lý được
220 bytes=1Mbytes
© DHBK 2005 84/Chapter1
Hệvi xửlý
Nhà sản xuất Tên vi xửlý Bus Bus Khảnăng đị
a
dữliệu đị
a chỉ chỉ
Intel 8088 8 20 1M
8086 16 20 1M
80186 16 20 1M
80286 16 24 16 M
80386SX 16 24 16 M
80386DX 32 32 4G
80486DX 32 32 4G
Pentium 64 32 4G
Pentium Pro 64 36 64 G
Pentium I, II, III, IV 64 36 64 G
Motorola 68000 16 24 16 M
68010 16 24 16 M
68020 32 32 4G
68030 32 32 4G
68040 32 32 4G
68060 64 32 4G
PowerPC 64 32 4G
© DHBK 2005 1/Chapter2
Sơđồkhối 8088/8086
EU
bus đị a chỉ BIU
Các thanh AX 20 bit
BX
ghi đa năng
CX
DX Bus trong của CPU
Các thanh ghi CS
SP 16 bit dữliệu
Các thanh ghi đoạn và con trỏ DS
BP 20 bit đị
a chỉ
SS
con trỏ SI lệ
nh ES
và chỉsố DI
IP
Bus dữliệ
u Logic
ALU 16 bit
điều khiể
n
Các thanh ghi tạ
m thời bus
Bus ngoài
Khối điều
khiển
ALU của EU
Hàng đợi lệ
nh
Thanh ghi cờ
© DHBK 2005 6/Chapter2
CX CH CL
DX DH DL
• Thanh ghi chứa AX (accumulator): chứa kết quảcủa các phép tính.
Kết quả8 bit được chứa trong AL
• Thanh ghi cơsởBX (base): chứa đị a chỉcơsở, ví dụcủa bảng dùng
trong lệnh XLAT (Translate)
• Thanh ghi đếm CX (count): dùng đểchứa sốlần lặp trong các lệnh lặp
(Loop). CL được dùng đểchứa sốlần dị ch hoặc quay trong các lệnh
dịch và quay thanh ghi
• Thanh ghi dữliệu DX (data): cùng AX chứa dữliệu trong các phép
tính nhân chia số16 bit. DX còn được dùng đểchứa đị a chỉcổng
trong các lệnh vào ra dữliệu trực tiếp (IN/OUT)
© DHBK 2005 8/Chapter2
10000H 1000
Đị
a chỉvật lý=Segment*16 + offset
Thanh ghi đoạn
Chếđộthực (real mode) 00000H
© DHBK 2005 10/Chapter2
1000 H 2345H
1200 H 0345H
1004 H ?
0300 H ?
• Ví dụ: Cho đị
a chỉđầu của đoạn: 49000 H, xác đị
nh đị
a chỉcuối
© DHBK 2005 11/Chapter2
00000
© DHBK 2005 12/Chapter2
s
t
a d
c a
k 0A480
t 0A47F
a c Stack
o 0A280
d 0A28 SS
0A27F
e Data
0A0F0 DS
0A0F
0A0EF
Code
090F0 090F CS
00000
© DHBK 2005 13/Chapter2
CS IP Đị
a chỉlệnh
SS SP hoặc BP Đị
a chỉngăn xếp
15 14 2 1 0
O D I T S Z A P C
15 14 2 1 0
O D I T S Z A P C
• 3 cờđiều khiển
T hoăc TF (trap flag)): cờbẫy, TF=1 khi CPU làm việc ởchế
độchạy từng lệnh
I hoặc IF (Interrupt enable flag): cờcho phép ngắt, IF=1 thì
CPU sẽcho phép các yêu cầu ngắt (ngắt che được) được
tác động (Các lệnh: STI, CLI)
D hoặc DF (direction flag): cờhướng, DF=1 khi CPU làm
việc với chuỗi ký tựtheo thứtựtừphải sang trái (lệnh STD,
CLD)
© DHBK 2005 19/Chapter2
100h
Hà ng đợi lệnh
• 4 bytes đối với 8088 và 6 bytes đối với 8086
• Xửlý pipeline
Không có
pipelining F1 D1 E1 F2 D2 E2 F3 D3 E3
F1 D1 E1
Có pipelining F2 D2 E2
F3 D3 E3
© DHBK 2005 22/Chapter2
Intel 8088
• 16-bit processor
• introduced in 1979
• 3 m, 5 to 8 MHz, 29
KTOR, 0.33 to 0.66
MIPS
© DHBK 2005 24/Chapter2
Intel 8088
•ChếđộMin và chếđộMax:
MN/MX = 1 chếđộMin
= 0 chếđộMax với bus
controller 8288
© DHBK 2005 25/Chapter2
Intel 8086
© DHBK 2005 26/Chapter2
Vùng nhớ
mởrộng
9FFFF
MSDOS
9FFF0
08E30
COMMAND.COM
08490
Device drivers (mouse.sys)
02530
MSDOS
01160
IO.SYS
00700
Vùng DOS
00500
Vùng BIOS
00400
00000 Các vector ngắt
© DHBK 2005 29/Chapter2
FFFFF
ROM BIOS
F0000
ROM BASIC
E0000
Vùng đểdành
C8000
Video BIOS ROM
C0000
Video RAM (text)
B0000
Video RAM (đồhoạ)
A0000
© DHBK 2005 30/Chapter2
Vùng mởrộng
COM1
03F8
Điều khiển đĩ
a mềm
03F0
CGA adapter
03D0
LPT1
0378
Điều khiển ổcứng
0320
COM2
02F8
8255
0060
Đị
nh thời (8253)
0040
Điều khiển ngắt
0020
0000 Điều khiển DMA
© DHBK 2005 31/Chapter2
FFFFF
Reset Bootstrap
FFFF0 program jump
003FF
Các vector ngắt
00000
© DHBK 2005 33/Chapter2
• Ví dụ:
MOV BX, DX ; Copy nội dung DX vào BX
MOV AL, BL ; Copy nội dung BL vào AL
MOV AL, BX ; không hợp lệvì các thanh ghi có kích thước
khác nhau
MOV ES, DS ; không hợp lệ (segment to segment)
MOV CS, AX ; không hợp lệvì CS không được dùng làm
thanh ghi đích
• Ví dụ:
MOV AL, [1234H] ; Copy nội dung ô nhớcó đ
ịa chỉDS:1234 vào AL
MOV [ 4320H ], CX ; Copy nộ i dung củ
a CX vào 2 ô nhớliên tiế
p DS:
4320 và DS: 4321
Chếđộđị a chỉgián tiếp qua thanh ghi
© DHBK 2005 37/Chapter2
• Ví dụ:
MOV AL, [BX] ; Copy nộ i dung ô nhớcó đ ịa chỉDS:BX vào AL
MOV [ SI ], CL ; Copy nộ i dung của CL vào ô nhớcó đị
a chỉDS:SI
MOV [ DI ], AX ; copy nộ
i dung của AX vào 2 ô nhớliên tiế
p DS: DI và DS:
(DI +1)
Chếđộđị a chỉtương đối cơsở
© DHBK 2005 38/Chapter2
• Ví dụ:
MOV CX, [BX]+10 ; Copy nộ p có đ
i dung 2 ô nhớliên tiế ịa chỉ
DS:BX+10
và DS:BX+11 vào CX
MOV CX, [BX+10] ; Cách viết khác củ a lệ
nh trên
MOV AL, [BP]+5 ; copy nộ
i dung củ a ô nhớSS:BP+5 vào thanh ghi AL
Chếđộđị a chỉtương đối chỉsố
© DHBK 2005 39/Chapter2
• Ví dụ:
MOV AX, [SI]+10 ; Copy nộ p có đ
i dung 2 ô nhớliên tiế ịa chỉDS:SI+10 và
DS:SI+11 vào AX
MOV AX, [SI+10] ; Cách viết khác của lệnh trên
MOV AL, [DI]+5 ; copy nộ
i dung củ a ô nhớDS:DI+5 vào thanh ghi AL
40/Chapter2
Chếđộđị
a chỉtương đối chỉsốcơsở
© DHBK 2005
• Ví dụ:
MOV AX, [BX] [SI]+8 ; Copy nộ p có đ
i dung 2 ô nhớliên tiế ịa chỉ
DS:BX+SI+8 và DS:BX+SI+9 vào AX
MOV AX, [BX+SI+8] ; Cách viế t khác của lệnh trên
MOV CL, [BP+DI+5] ; copy nộ i dung củ a ô nhớSS:BP+DI+5 vào thanh
ghi CL
© DHBK 2005 41/Chapter2
Trực tiế
p [offset] DS
Gián tiế
p qua thanh ghi [BX] DS
[SI] DS
[DI] DS
(Segment override)
• Ví dụ:
MOV AL, [BX]; Copy nộ
i dung ô nhớcó địa chỉDS:BX vào AL
MOV AL, ES:[BX] ; Copy nội dung ô nhớcó địa chỉES:BX vào AL
© DHBK 2005 43/Chapter2
D W
1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1
• MOV
Dùng đểchuyển giữa các thanh ghi, giữa 1 thanh ghi và 1 ô
nhớhoặc chuyển 1 sốvào thanh ghi hoặc ô nhớ
Cú pháp: MOV Đích, nguồn
Lệnh này không tác động đến cờ
Ví dụ:
MOV AX, BX
MOV AH, ‘A’
MOV AL, [1234H]
© DHBK 2005 50/Chapter2
• Lệnh PUSHF
Cất nội dung của thanh ghi cờvào ngăn xếp
© DHBK 2005 53/Chapter2
1300A 1300A
13009 12 13009 12
13008 34 13008 34 SP
13007 78 13007 78
13006 SP 13006
56 56
13005 13005
13004 13004
13003 13003
13002 13002
13001 13001
13000 13000
SS 1300 SS 1300
SP 0006 SP 0008
DX 3254 DX 7856
© DHBK 2005 56/Chapter2
• Lệnh ADD
Lệnh cộng hai toán hạng
Cú pháp: ADD Đích, nguồn
Thực hiện: Đích=Đích + nguồn
Giới hạn: toán hạng không được là 2 ô nhớvà thanh ghi
đoạn
Lệnh này thay đổi cờ: AF, CF, OF, PF, SF, ZF
Ví dụ:
ADD AX, BX
ADD AX, 40H
© DHBK 2005 60/Chapter2
CF MSB LSB
• Lệnh RCR
Lệnh quay phải thông qua cờnhớ
© DHBK 2005 67/Chapter2
CF MSB LSB
• Lệnh ROR
Lệnh quay phải
© DHBK 2005 68/Chapter2
Thực hiện: dị
ch trái đích CL bit tương đương với
Đích=Đích*2CL
Lệnh này thay đổi cờSF, ZF, PF
CF MSB LSB
• Lệnh SHL
Lệnh dị
ch trái logic tương tựnhưSAL
© DHBK 2005 69/Chapter2
MSB LSB CF
© DHBK 2005 70/Chapter2
MSB LSB CF
Chú ý:
Trong các lệnh dị
ch và quay, toán hạng không được là thanh ghi đoạn
© DHBK 2005 71/Chapter2
• Cách đánh đị
a chỉởchếđộbảo vệởcác máy tính từ80286
© DHBK 2005 72/Chapter2
Phạm vi nhảy: -128 đến 127 bytes so với lệnh tiếp theo lệnh
JMP
Thực hiện: IP=IP + độlệch
Ví dụ:
XOR BX, BX
Nhan: MOV AX, 1
ADD AX, BX
JMP SHORT Nhan
© DHBK 2005 73/Chapter2
E 9 Độlệ
chLo Độlệ
chHi
Nhảy gián tiếp
© DHBK 2005 74/Chapter2
E A IP Lo IP Hi CS Lo CS Hi
FFFFFH
Đoạn mã 2
Nhảy xa
+127 Đoạn mã 1
Nhảy ngắn
JMP Nhảy gần
-128
00000H
© DHBK 2005 76/Chapter2
Lặp đến khí CX=0 Lặp đến khí CX=0 Lặp đến khí CX=0
hoặc AL<>10 hoặc AL=10
© DHBK 2005 78/Chapter2
Lệnh CALL
• Dùng đểgọi chương trình con
• Có 2 loại: CALL gần và CALL xa
CALL gần (near call): tương tựnhưnhảy gần
Gọi chương trình con ởtrong cùng một đoạn mã
Tong PROC NEAR Tong PROC NEAR CALL WORD PTR [BX]
ADD AX, BX
ADD AX, BX
ADD AX, CX
ADD AX, CX RET
Tong ENDP
RET
...
Tong ENDP MOV BX, OFFSET Tong
CALL BX
...
CALL Tong
Cất IP vào ngăn xế
p Cất IP vào ngăn xế
p Cất IP vào ngă n xế
p
IP=IP + dịch chuyển IP= BX IP= [BX+1] [BX]
RET: lấy IP từngăn xế
p RET: lấy IP từngăn xế
p RET: lấ y IP từngăn xế
p
© DHBK 2005 79/Chapter2
Lệnh CALL
CALL xa (far call): tương tựnhưnhảy xa
Gọi chương trình con ởngoài đoạn mã
Đánh đị
a chỉbộnhớởchếđộbảo vệ
• Cho phép truy cập dữliệu và chương trình ởvùng
nhớtrên 1M
• Thanh ghi lệch chứa đị
a chỉlệch
• Thanh ghi đoạn chứa từchọn đoạn (segment
selector)
từchọn đoạn chọn 1 phần tửtrong 1 trong 2 bảng mô tả
đoạn (descriptor table), mồi bảng có kích thước 64 KB
Bảng mô tảđoạn toàn cục (Global DT): chứa thông tin vềcác
đoạn của bộnhớmà tất cảcác chương trình có thểtruy nhập
Bảng mô tảđoạn cục bộ(Local DT): chứa thông tin vềcác đoạn
của 1 chương trình
Mô tảđoạn chứa thông tin vềđị
a chỉbắt đầu của đoạn
© DHBK 2005 84/Chapter2
Đánh đị
a chỉbộnhớởchếđộbảo vệ
15 2 1 0
Index TI RPL
Limit
7 7
GDOA
00000000 00000000 6 Base(B31-B24)
V (L19-L16) 6
5 Access rights Base(B23-B16) 4 5 Access rights Base(B23-B16) 4
3 Base(B15-B0) 2 3 Base(B15-B0) 2
1 Limit(L15-L0) 0 1 Limit(L15-L0) 0
Đánh đị
a chỉbộnhớởchếđộbảo vệ
• 80286
Base 24 bit: 000000H đến FFFFFFH (16 MB)
Limit 16 bit: kích thước đoạn: từ1 đến 64 KB
Địa chỉvật lý= Base + độlệch
1 chương trình có thếsửdụng tối đa: 2*8K*64 K= 1GB bộ
nhớ=> bộnhớảo (virtual memory)
• 80386/486/Pentium
Base 32 bit: 00000000H đến FFFFFFFFH (4 GB)
Limit 20 bit:
G=0: kích thước đoạn: từ1 đến 1MB
G=1: kích thước đoạn từ4K đến 4 GB
Địa chỉvật lý= Base + độlệch
1 chương trình có thếsửdụng tối đa: 2*8K*4 GB= 64
Terabytes bộnhớ
© DHBK 2005 1/Chapter3
8. MAIN Proc
khai báo đoạn mã lệ
nh
9. MOV AX, @Data ;khoi dau DS
10.
11.
MOV DS, AX
MOV BX, 10 ;BX: so phan tu cua mang bắt đầu chương trình chính
12. LEA DX, MGB ;DX chi vao dau mang byte
13. DEC BX ;so vong so sanh phai lam
14. LAP: MOV SI, DX ; SI chi vao dau mang
15. MOV CX, BX ; CX so lan so cua vong so
16. MOV DI, SI ;gia su ptu dau la max
TWO_WORD
?1
two-word
.@?
1word
Let’s_go
© DHBK 2005 7/Chapter3
Biến và hằng
• DB (define byte): đị
nh nghĩa biến kiểu byte
• DW (define word): định nghĩa biến kiểu từ
• DD (define double word): định nghĩa biến kiểu từkép
• Biến byte:
Tên DB gia_trị
_khởi đầu
Ví dụ:
MOV AL, B1
B1 DB 4
B1 DB ? LEA BX, B1
C1 DB ‘$’ MOV AL, [BX]
C1 DB 34
© DHBK 2005 11/Chapter3
Biến và hằng
• Biến từ:
Tên DW gia_trị
_khởi đầu 1300A
13009
Ví dụ:
13008 9
W1 DW 4
13007 8
W2 DW ? 13006 7
• Biến mảng: 13005 6
13004 5
M1 DB 4, 5, 6, 7, 8, 9
13003 4 M1
13002
M2 DB 100 DUP(0) 13001
M3 DB 100 DUP(?) 13000
M4 DB 4, 3, 2, 1, 5, 5, 6, 1, 5, 5, 6
© DHBK 2005 12/Chapter3
Biến và hằng
• Biến mảng 2 chiều:
1300A
1 6 3
13009
4 2 5 13008 5
13007 2
13006 4
13005 3
M1 DB 1, 6, 3 13004 6
DB 4, 2, 5 13003 1 M1
13002
13001
13000
M2 DB 1, 4
DB 6, 2 MOV AL, M1 ; copy 1 vao AL
MOV AH, M1[2]
DB 3, 5 MOV BX, 1
MOV SI, 1
MOV CL, M1[BX+SI]
MOV AX, Word Ptr M1[BX+SI+2]
MOV DL, M1[BX][SI]
© DHBK 2005 13/Chapter3
Biến và hằng
• Biến kiểu xâu ký tự
STR1 DB ‘string’
STR2 DB 73h, 74h, 72h, 69h, 6Eh, 67h
STR3 DB 73h, 74h, ‘r’, ‘i’, 6Eh, 67h
• Hằng có tên
Có thểkhai báo hằng ởtrong chương trình
Thường được khai báo ởđoạn dữliệu
Ví dụ:
CR EQU 0Dh ;CR là carriage return
LF EQU 0Ah ; LF là line feed
CHAO EQU ‘Hello’
Kiể
u Mô tả
Tiny (hẹ
p) mã lệ u gói gọn trong một đoạn
nh và dữliệ
Large (lớn) mã lệnh nằm trong nhiều đoạn, dữliệ u đoạn, không
u trong nhiề
có mảng nào lớn hơn 64 K
Huge (đồsộ) mã lệ
nh nằm trong nhiề u đoạn, dữliệ u đoạn, các
u trong nhiề
mảng có thểlớn hơn 64 K
© DHBK 2005 16/Chapter3
Stack
SS chương trình
chương trình CS
DS
100h ES 100h
PSP PSP
.COM . EXE
© DHBK 2005 18/Chapter3
.Model Small
.Stack 100
.Data
;các đị
nh nghĩ
a cho biế
n và hằng
.Code
MAIN Proc
;khới đầu cho DS
MOV AX, @data
MOV DS, AX
nh của chương trình
;các lệ
;trởvềDOS dùng hàm 4CH của INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
;các chương trình con nếu có
END MAIN
© DHBK 2005 19/Chapter3
.Model Tiny
.Code
ORG 100h
START: JMP CONTINUE
;các định nghĩa cho biế
n và hằng
CONTINUE:
MAIN Proc
nh của chương trình
;các lệ
INT 20H ;trởvềDOS
MAIN Endp
;các chương trình con nếu có
END START
© DHBK 2005 21/Chapter3
FFFFH
SP
Chiề
u tiế
n của ngăn xế
p
Chiề
u tiế
n của mã và dữliệ
u
CONTINUE:
Dữliệ
u
0100H JMP CONTINUE IP
Đoạn đầu chương trình
0000H Program segment prefix
© DHBK 2005 22/Chapter3
không
ch được ra .com?
Dị
; If AX<0
CMP AX, 0 ; AX<0 ?
JNL End_if ; không, thoát ra
; then
NEG AX ; đúng, đảo dấu
End_if: MOV BX, AX ;gán
© DHBK 2005 27/Chapter3
; if AX<BX
CMP AX, BX ; AX<BX ?
JL Then_ ; đúng, CX=0
;else
MOV CX, 1 ; sai, CX=1
JMP End_if
Then_: MOV CX, 0;
End_if:
© DHBK 2005 28/Chapter3
khởi tạo bộđếm ví dụ: Hiển thịmột dòng ký tự$ trên màn hình
công việ
c
MOV CX, 80 ;sốlần lặp
MOV AH,2 ;hàm hiể n thị
giảm bộđếm đi 1 MOV DL,’$’ ;DL chứa ký tựcần hiể
n thị
HIEN: INT 21H ; Hiển thị
LOOP HIEN
End_for
S
bộđế
m=0?
Đ
© DHBK 2005 30/Chapter3
ví dụ: đọc từbàn phím cho tới khi gặp ký tựCR thì thôi
công việ
c
A16/S3 G A16
A15
A8
A7
8086
A0
ALE G G
74LS373 74LS373
AD15 D15
‘245
AD8 G DIR D8
AD7 D7
‘245
AD0 G DIR D0
DEN
DT/R
© DHBK 2005 14/Chapter4
CS 1 CS hold time 60 ns
1
2 CS to data 30 ns
Data valid
A0 D0
Tín hiệu A1 D1
Dữ liệu
địa chỉ A2 D2
Am Dn
WR WE
CS OE
WR: write
WE: Write enable
chọn chip RD OE: Output enable
CS: Chip Select
RD: read
© DHBK 2005 26/Chapter4
EPROM
Isolator Floating
Gate
Gate
Source Drain
n+ n+
p
© DHBK 2005 27/Chapter4
EPROM
D=Vss
Hardly any
G=Vss free electrons:
no conducting path
between Source
and Drain
S=Vss
© DHBK 2005 28/Chapter4
EPROM
Vcc
Vss Vss
n+ n+
p
D=Vss
Many free electrons
attracted by positive
G=Vcc gate voltage:
conducting channel
between Source
S=Vss and Drain
© DHBK 2005 29/Chapter4
EPROM
Vcc
Vss Vss
n+ n+
p
EPROM: reading
Vcc Vcc Vcc Vcc
Address
2-to-4 Decoder
2
MSB
2
LSB
2-to-4 Mux
Data
© DHBK 2005 31/Chapter4
Read(0x6)
EPROM: reading
Vcc Vcc Vcc Vcc
0110
2-to-4 Decoder
01
10
2-to-4 Mux
0
© DHBK 2005 32/Chapter4
Read(0x8)
EPROM: reading
Vcc Vcc Vcc Vcc
1000
2-to-4 Decoder
10
00
2-to-4 Mux
1
© DHBK 2005 33/Chapter4
EPROM: erasing UV
light
Vcc Vcc Vcc Vcc
Address
2-to-4 Decoder
2
MSB
2
LSB
2-to-4 Mux
Data
© DHBK 2005 34/Chapter4
Write 1 at 0x2
EPROM: writing 12V
Address
0010
2-to-4 Decoder
2
00
MSB
2
10
LSB
2-to-4 Mux
Data
© DHBK 2005 35/Chapter4
EPROM
• Ghi vào EPROM
Dùng mạch nạp với điện áp 12 V
1 ms một bit
• Xoá EPROM
20 phút dưới tia tử ngoại
Số lần ghi 3 lần
• Đọc EPROM
100 ns
• EPROM họ 27xxx
2708 (1K*8), 2716 (2K*8), 2732 (4K*8), 2764 (8K*8)
27128 (16K*8), 27256 (32K*8), 27512 (64K*8)
© DHBK 2005 36/Chapter4
EPROM
• Ví dụ: 2716 EPROM
U2
8
A0 O0
9 Address
7 10
6 A1 O1 11
5 A2 O2 13
4 A3 O3 14
3 A4 O4 15 CE
2 A5 O5 16
1 A6 O6 17
23 A7 O7
22 A8
A9
19
A10 Output
20
18 OE 120 100
CE
21
VPP
450
2716
© DHBK 2005 37/Chapter4
Loại ROM Thời gian ghi Thời gian đọc số lần ghi Kích thước
ROM NA 35 ns 0 Mbits
SRAM
One row of cells is read out at once
01
1bit 1bit 1bit 1bit
cell cell cell cell
2-to-4 Mux
© DHBK 2005 39/Chapter4
Word
Vcc
Acts as
a resistor
© DHBK 2005 40/Chapter4
Word
Vcc
5V 0V
Current
Assumption
Stable situation; stores a ‘1’
Dissipates continuously
© DHBK 2005 41/Chapter4
Word
Vcc
0V 5V
Current
Assumption
Stable situation; stores a ‘0’
Dissipates continuously
© DHBK 2005 42/Chapter4
Word
Vcc
5V 0V
Current
1 0
© DHBK 2005 43/Chapter4
Word
Vcc
0V 5V
Current
0 1
© DHBK 2005 44/Chapter4
Word
Word
Vcc
Bit line
Bit R
Bit line
line inverse
0V
5V 5V
0V
Current
Current
Current
W.D’ W.D
© DHBK 2005 45/Chapter4
SRAM
• Đặc điểm:
6 transistors 1 bit: đắt!
Bị mất dữ liệu khi mất nguồn
nhanh: thời gian đọc và ghi 5 ns
Liên tục tiêu thụ năng lượng
Kích thước: 16 Mbit
• ứng dụng:
Bộ nhớ nhỏ và nhanh (cache)
Không dùng cho các thiết bị chạy pin
• Ví dụ: 4016 (2K*8), 250 ns
A0-A10
D0-D7
OE
WE
CS
© DHBK 2005 46/Chapter4
Address
Data
47/Chapter4
DRAM
© DHBK 2005
01
1bit 1bit 1bit 1bit
cell cell cell cell
2-to-4 Mux
Data
DRAM bit cell
© DHBK 2005 48/Chapter4
Vcc/2
1 bit
Pre-
cell
charge
Word
line
Sense
amplifier
MUX
DRAM bit cell
49/Chapter4
© DHBK 2005
Storage
Vcc/2
Pre-
charge
Word
line
5V 0V 5V
0V 5V 5V
.2 μm
Stores
.5 M e-
MUX
DRAM bit cell
50/Chapter4
© DHBK 2005
Read
Vcc/2
Pre-
charge
Word
line
2.55V
5V 2.45V
0V 2.55V
5V
2.55V
2.5V
5V
0V 5V 5V
MUX
© DHBK 2005 51/Chapter4
Vcc/2
Pre-
charge
Word
line
2.55V
5V 2.45V
5V
0V 2.55V
5V
0V 5V 5V
MUX
© DHBK 2005 53/Chapter4
Vcc/2
Pre-
charge
Word
line
2.51V
5V
3V 2.49V
0V
2V 2.51V
5V
3V
2.49V
2V
0V 2.51V
3V
5V 2.51V
3V
5V
MUX
© DHBK 2005 55/Chapter4
DRAM
• Đặc điểm:
1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình
làm tươi làm tăng giá thành của DRAM
Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy
nhập
Tương đối nhanh: thời gian đọc và ghi 50 ns
Mỗi một hàng phải được làm tươi sau 4 ms
Ö Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 μs
Kích thước: 4 Gbits
• Được dùng làm bộ nhớ chính trong các hệ vi xử lý
• Ví dụ: TMS 4464 (64K*4)
A0-A7
D0-D3 CAS: cho phép chốt địa chỉ cột
OE WE
RAS: cho phép chốt địa chỉ hàng
CAS RAS
© DHBK 2005 57/Chapter4
DRAM
• Đặc điểm:
1 transistor 1 bit: rẻ, tuy nhiên việc điều khiển quá trình
làm tươi làm tăng giá thành của DRAM
Chỉ tiêu thụ năng lượng trong quá trình làm tươi và truy
nhập
Tương đối nhanh: thời gian đọc và ghi 50 ns
Mỗi một hàng phải được làm tươi sau 4 ms
Ö Nếu có 1024 hàng, chu kỳ làm tươi sẽ là 4 μs
Kích thước: 4 Gbits
• Được dùng làm bộ nhớ chính trong các hệ vi xử lý
• Ví dụ: TMS 4464 (64K*4)
A0-A7
D0-D3 CAS: cho phép chốt địa chỉ cột
OE WE
RAS: cho phép chốt địa chỉ hàng
CAS RAS
© DHBK 2005 58/Chapter4
DRAM
• Examples of DRAM:
SIMM (Single Inline Memory Module): 72 pins
DIMM (Dual Inline Memory Module): 168 pins
72-Pin SIMM
© DHBK 2005 59/Chapter4
SRAM - DRAM
Cost
SRAM
DRAM
Refresh
controller
Size
© DHBK 2005 60/Chapter4
• FF800: 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Giải mã địa chỉ bộ nhớ
© DHBK 2005 62/Chapter4
A19
A18 8088 A
A17 A0-A10 8088 D
Bus
A16 D0-D7 Bus
A15
A14
CS OE
A13
A12
A11
RD
IO/M
Giải mã địa chỉ bộ nhớ
© DHBK 2005 63/Chapter4
dùng bộ giải mã
• Ví dụ: Dùng EPROM 2764 (8K*8) để ghép thành bộ nhớ 64 K cho 8088
bắt đầu từ địa chỉ F0000H
• Phân tích:
Địa chỉ bắt đầu F0000H => địa chỉ kết thúc: FFFFFH
Cần ghép 8 EPROM 2764 vì 64=8*8K
A19A18A17A16 A15A14A13A12 A11A10A9A8 A7 A6 A5 A4 A3 A2 A1 A0
dùng bộ giải mã
• Dùng
U1 bộ giải mã 3-8 74LS138
1 15 C B A G2B G2A G1 y0 y1 y2 y3 y4 y5 y6 y7
A Y0
2 14 x x x 1 x x 1 1 1 1 1 1 1 1
3 B Y1 13
C Y2 x x x x 1 x 1 1 1 1 1 1 1 1
12
6 Y3 11 x x x x x 0 1 1 1 1 1 1 1 1
4 G1 Y4 10 0 0 0 0 0 1 0 1 1 1 1 1 1 1
5 G2A Y5 9
G2B Y6 0 0 1 0 0 1 1 0 1 1 1 1 1 1
7
Y7 0 1 0 0 0 1 1 1 0 1 1 1 1 1
0 1 1 0 0 1 1 1 1 0 1 1 1 1
74LS138 1 0 0 0 0 1 1 1 1 1 0 1 1 1
1 0 1 0 0 1 1 1 1 1 1 0 1 1
1 1 0 0 0 1 1 1 1 1 1 1 0 1
1 1 1 0 0 1 1 1 1 1 1 1 1 0
Giải mã địa chỉ bộ nhớ
© DHBK 2005 65/Chapter4
dùng bộ giải mã
• Dùng bộ giải mã 3-8 74LS138
A0-A12 A0-A12
A0-A10
D0-D7 D0-D7
A0-A10
2764
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
2764
A0-A10
OE D0-D7
A13 1 15 2764
A0-A10
CS OE D0-D7
2 A Y0 14 A0-A10
A14 B Y1 2764
CS OE D0-D7
A0-A10
3 13 2764
CS OE D0-D7
A15 C Y2 12 2764
CS OE D0-D7
Y3
A16
6
G1 Y4
11 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9 CS
G2B Y6 7
A17 CS
Y7
A18
A19 74LS138
Giải mã địa chỉ bộ nhớ
© DHBK 2005 66/Chapter4
dùng bộ giải mã
• Dùng bộ giải mã kép 2-4 74LS139
1A 1Y0
1B 1Y1
1Y2
1G 1Y3
2A 2Y0
2B 2Y1
2Y2
2G 2Y3
dùng PROM
• Dùng PROM TPB28L42 (512*8)
A0-A12 A0-A12
A0-A10
D0-D7 D0-D7
A0-A10
2764
D0-D7
A0-A10
RD 2764
OE D0-D7
2764
A0-A10
OE D0-D7
A13 A0 O0 2764
A0-A10
CS OE D0-D7
A14 A1 O1 A0-A10
2764
CS OE D0-D7
A15 A2 O2 A0-A10
2764
CS OE D0-D7
A16 A3 O3 2764
CS OE D0-D7
A17 A4 TPB28L42
O4 CS OE 2764
A18 A5
O5 CS OE
A19 A6
O6 CS
A7
CS
A8 O7
G
IO/M
Giải mã địa chỉ bộ nhớ
© DHBK 2005 68/Chapter4
dùng PAL
© DHBK 2005 69/Chapter4
A0-A11 A0-A11
A0-A10
D0-D7 D0-D7
A0-A10
2732
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
2764
A0-A10
OE D0-D7
A12 1 15 F8000-F8FFF 2764
A0-A10
CS OE D0-D7
2 A Y0 14 A0-A10
A13 B Y1
F9000-F9FFF 2764
CS OE D0-D7
A0-A10
3 13 2764
CS OE D0-D7
A14 C Y2 12 2764
CS OE D0-D7
Y3
A15
6
G1 Y4
11 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9 CS
A16 G2B Y6 7 FF000-FFFFF CS
Y7
A17
A18 Bộ tạo Tw
74LS138
A19
Tới chân RDY1 của 8284
© DHBK 2005 72/Chapter4
A0-A14 A0-A14
A0-A10
D0-D7 D0-D7
A0-A10
62256
D0-D7
A0-A10
U1 RD 2764
OE D0-D7
WR 2764
A0-A10
OE D0-D7
WE
A15 1 15 00000-07FFF 2764
A0-A10
CS OE D0-D7
2 A Y0 14 A0-A10
A16 B Y1
08000-0FFFF 2764
CS OE D0-D7
A0-A10
3 13 10000-17FFF 2764
CS OE D0-D7
A17 C Y2 12 2764
CS OE D0-D7
Y3
A18 6
G1 Y4
11 CS OE 2764
4 10 CS OE
IO/M 5 G2A Y5 9 CS
G2B Y6 7 38000-3FFFF CS
Y7
A19
74LS138
© DHBK 2005 73/Chapter4
A0-A7
RA0-RA7
MA0-MA7 A0-A7
00005 00004
00003 00002
BHE A0 Chức năng
00001 00000
Bank cao Bank thấp
(bank lẻ) (Bank chẵn)
0 0 chọn cả 2 bank
• FF000: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Bank thấp
• FFFFE: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
• FF001: 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1
Bank cao
• FFFFF: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
© DHBK 2005 78/Chapter4
CS OE
LRD
A19
A18
A17 A1-A11 A0-A10
D0-D7 D8-D15
A16
A15 2716
A14
CS OE
A13
A12
M/IO HRD
© DHBK 2005 80/Chapter4
BHE
HWR
WR
A0 LWR
© DHBK 2005 81/Chapter4
thiết bị ngoại vi
Memory bus
CPU Memory
Bus
Adapter
I/O Bus
thiết bị ngoại vi
• Giao tiếp kiểu thăm dò, móc nối (handshaking)
1. CPU kiểm tra trạng thái của thiết bị ngoại vi
2. Nếu thiết bị ngoại vi sẵn sàng trao đối dữ liệu việc trao đối sẽ được
thực hiện bởi tín hiệu móc nối
3. Nếu thiết bị ngoại vi chưa sẵn sàng, CPU sẽ thực hiện công việc
khác và quay lại bước 1
• Giao tiếp bằng ngắt (Interrupt)
1. Thiết bị ngoại vi muốn trao đổi dữ liệu với CPU, nó sẽ gửi tín hiệu
yêu cầu ngắt tới chân INTR của CPU
2. CPU chấp nhận yêu cầu ngắt bằng cách gửi tín hiệu INTA tới thiết
bị ngoại vi
3. CPU thực hiện chương trình con phục vụ ngắt
• Giao tiếp bằng truy cập bộ nhớ trực tiếp (DMA)
1. Thiết bị ngoại vi muốn truy cập trực tiếp bộ nhớ không thông qua
CPU, nó đưa tín hiệu yêu cầu tới chân HOLD của CPU thông qua
khối điều khiển DMA
2. CPU chấp nhận và gửi tín hiệu HLDA tới khối điều khiển DMA và
treo các bus
3. Khối điều khiển DMA sẽ điều khiển việc trao đổi dữ liệu giữa thiết
bị ngoại vi và bộ nhớ
© DHBK 2005 86/Chapter4
M/IO=1
Ví dụ:
MOV AX, [0FF3H]
00000
Memory + I/O
© DHBK 2005 90/Chapter4
8
7
6
5
4
3
2
1
10K
10
11
12
13
14
15
16
9
U1
2 18
4 A1 Y1 16
6 A2 Y2 14
8 A3
A4
Y3
Y4
12 Tới bus dữ liệu
11 9
13 A5
A6
Y5
Y6
7 của CPU
15 5
17 A7 Y7 3
A8 Y8
1
19 1OE
2OE
74ALS244
SEL
330
U2
3 2
4 D0 Q0 5
7 D1 Q1 6
Từ bus dữ liệu 8 D2
D3
Q2
Q3
9
13 12
của CPU 14 D4 Q4 15
17 D5 Q5 16
18 D6 Q6 19
D7 Q7
11
CLK
1
OE
SEL 74ALS374
BHE A0
FFFF FFFE
FFFD FFFC
FFFB FFFA
D8-D15 D0-D7
0005 0004
0003 0002
0001 0000
Bank cao Bank thấp
(bank lẻ) (Bank chẵn)
© DHBK 2005 94/Chapter4
A0 A0
A1 D0-D7 D8-D15
A1
A2 D0-D7 A2 D0-D7
A3 A3
A4 A4
CS WE CS WE
A5 A5
A6 A6
A7 A7
WR WR
IO/M M/IO
BHE
8088 8086
© DHBK 2005 95/Chapter4
CS WE
A1
A2
A3 WR
A4
A5
A6 D7-D0 D0-D7
A7
M/IO CS WE
© DHBK 2005 96/Chapter4
A1 1 15 10H
2 A Y0 14
A2 3 B Y1 13
12H
14H
A3 C Y2 12 16H
6 Y3 11
A0
18H
4 G1 Y4 10 1AH
M/IO 5 G2A Y5 9 1CH
A4 G2B Y6 7 1EH
A5 Y7
A6
A7 74LS138
© DHBK 2005 97/Chapter4
RD
WR
© DHBK 2005 102/Chapter4
Chế độ 0
RD
WR
© DHBK 2005 ; Lập trình cho 8255 105/Chapter4
Chế độ 0
MOV AL, 10000000B ; Port A, Port B mode 0, output
MOV DX, 703H
OUT DX, AL
; Thủ tục hiển thị LED từ dữ liệu chứa trong bộ nhớ
0703H
PUSH AX
PUSH BX
PUSH DX
PUSH SI
; Thiết lập các thanh ghi để hiển thị
MOV BX, 8 ;số LED
MOV AH, 7FH ;chọn LED đầu tiên 0111 1111
MOV SI, OFFSET MEM-1 ; địa chỉ chứa dữ liệu
MOV DX,701H ; địa chỉ cổng B
;Hiển thị 8 số
DISP1: MOV AL, AH ;chọn 1 số
OUT DX, AL
DEC DX ; địa chỉ cổng A
MOV AL, [BX+SI] ; dữ liệu của 7 đoạn led
OUT DX, AL
CALL Delay ; trễ 1 ms
ROR AH, 1 ;số tiếp theo
INC DX ; địa chỉ cổng B
DEC BX ;giảm chỉ số
JNZ DISP1 ; lặp lại 8 lần
;khôi phục lại các thanh ghi
POP SI
POP DX
POP BX
POP AX
POPF
RET
DISP ENDP
© DHBK 2005 106/Chapter4
Chế độ 0
© DHBK 2005 107/Chapter4
Chế độ 0
© DHBK 2005ROWS EQU 4 ; 4 hàng 108/Chapter4
Chế độ 0
COLS EQU 4 ; 4 cột
PORTA EQU 50H
PORTB EQU 51H
KEY PROC NEAR USES CX
CALL SCAN ;test all keys SCAN PROC NEAR USES BX
JNZ KEY ; if key closed MOV CL, ROWS ;form row mask
CALL DELAY ; đợi 10 ms MOV BH, OFFH
CALL SCAN SHL BH, CL
JNZ KEY MOV CX, COLS ;load column count
KEY1: MOV BL, OFEH ;get selection mode
CALL SCAN SCAN1:
JZ KEY1 ; if no key closed MOV AL, BL ;select column
CALL DELAY OUT PORTB, AL
CALL SCAN ROL BL, 1
JZ KEY1 IN AL, PORTA; read rows
PUSH AX ;cất mã hàng OR AL,BH
MOV AL, COLS ;cal starting row key CMP AL, 0FFH ;test for a key
SUB AL, CL JNZ SCAN2
MOV CH, ROWS LOOP SCAN1
MUL CH
MOV CL, AL SCAN2:
DEC CL RET
POP AX SCAN ENDP
KEY2:
ROR AL,1 ;find row position DELAY PROC NEAR USES CX
INC CL MOV CX, 5000 ;10ms (8MHZ)
JC KEY2 DELAY1:
MOV AL,CL ;move code to AL LOOP DELAY1
RET RET
KEY ENDP DELAY ENDP
© DHBK 2005 109/Chapter4
Chế độ 1
• Port A và B làm việc ở chế độ cổng vào có chốt:
dữ liệu sẽ được giữ tại cổng A, B cho đến khi CPU sẵn sàng
cổng C làm cổng điều khiển và cấp tín hiệu móc nối
© DHBK 2005 110/Chapter4
Chế độ 1
© DHBK 2005 111/Chapter4
Chế độ 1
STB
PC4 DAV
82C55 Keyboard
Chế độ 1
• Port A và B làm việc ở chế độ cổng ra có chốt:
tương tự như cổng ra ở chế độ 0
cổng C làm cổng điều khiển và cấp tín hiệu móc nối
1
© DHBK 2005 113/Chapter4
Chế độ 1
© DHBK 2005 114/Chapter4
Chế độ 1
ACK
PC2 ACK
PC4 DS
82C55 Printer
Chế độ 1
BIT1 EQU 2
PORTC EQU 62H
PORTB EQU 61H
CMD EQU 63H
Chế độ 2
• Chỉ cho phép đối với cổng A
• Cổng A là cổng 2 chiều, dùng để giao tiếp giữa 2
máy tính hoặc dùng trong chuẩn giao tiếp IEEE-488
GPIB...
© DHBK 2005 117/Chapter4
Chế độ 2
© DHBK 2005 118/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 135/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 136/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 137/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 138/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 139/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 140/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 141/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 142/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 143/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 144/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 145/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 146/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 147/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 148/Chapter4
16550
Giao tiếp truyền thông lập trình được
© DHBK 2005 149/Chapter4
16550
© DHBK 2005 150/Chapter4
• 2 loai ngắt:
Ngắt cứng: tín hiệu yêu cầu ngắt từ
NMI (ngắt không che được)
Lỗi chẵn lẻvà các lỗi hệthống nghiêm trọng khác (ví dụ: mất nguồn)
và INTR (ngắt che được)
Ngắt mềm: CPU thực hiện các lệnh ngắt INT N, 0=< N <=255
© DHBK 2005 4/Chapter5
CPU:
•Lấy lại IP và CS lệnh lấy các
•Lấy lại thanh ghi cờF thanh ghi
IRET
© DHBK 2005 8/Chapter5
INTR
INT
D0
IRQ0 IR0
D1
IRQ1 IR1
D2
IRQ2 IR2
D3
IRQ3 IR3
IRQ4 IR4
8259A D4
D5
IRQ5 IR5 Master
D6
IRQ6 IR6
D7
IRQ7 IR7
INTA
INTA
Hi SP/EN
CAS1
CAS0 CAS2
INT
D0
IRQ8 IR0 D1
IRQ9 IR1 D2
IRQ10 IR2 D3
IRQ11 IR3
IRQ12 IR4
8259A D4
D5
IRQ13 IR5 Slave D6
IRQ14 IR6 D7
IRQ15 IR7
INTA
Lo SP/EN
© DHBK 2005 25/Chapter5
67h EMM
66h
User Interrupts
60h
4Ah
10h
0Fh IRQ 7 LPT1
0Eh IRQ6 Floppy Disk
0Dh IRQ5 LPT2
0Ch IRQ4 COM1 Port
0Bh IRQ3 COM2 Port
00028 0Ah IRQ2 Cascade from Slave 8259
00024 09h IRQ1 Keyboard
00020 08h IRQ0 Timer tick
07h 80x87 not present
06h Invalid opcode
05h Print screen (BIOS)
04h Overflow
03h Break point instruction
02h NMI
01h Single step
0000 00h Divide by zero
© DHBK 2005 27/Chapter5
DMA
• Giới thiệu vềDMA
• Mạch DMAC 8237A của Intel
© DHBK 2005 29/Chapter5
DM A
A8..A15
Addr.
Latch
IO R D B0..DB 7
IOW
M EM R ADST B
M EM W i8237
DM A A0..A7 A0..A7
four
HR Q DMA
channels DR EQ 0 Hi
DAC K0 Q D
HLD A DR EQ 1 15 usecs.
DAC K1 OUT1
DR EQ 2
C LR
DAC K2
8253
DR EQ 3
EO P DAC K3 (8254)
Tim er/
Floppy Controller Counter
© DHBK 2005 37/Chapter5
DMA in the
PC/XT
39/Chapter5
DMA Cascadation
© DHBK 2005
DREQ1
DACK1
i8237A
Slave DREQ2
DACK2
DREQ4
DREQ3
HRQ DACK4 DACK3
MPU
HOLDA DREQ5
i8237A DACK5
Master
DREQ6
DACK6
DREQ7
DACK7
© DHBK 2005 40/Chapter5
DMA
• Giới thiệu vềDMA
• Mạch DMAC 8237A của Intel
© DHBK 2005 3/Chapter6
DM A
A8..A15
Addr.
Latch
IO R D B0..DB 7
IOW
M EM R ADST B
M EM W i8237
DM A A0..A7 A0..A7
four
HR Q DMA
channels DR EQ 0 Hi
DAC K0 Q D
HLD A DR EQ 1 15 usecs.
DAC K1 OUT1
DR EQ 2
C LR
DAC K2
8253
DR EQ 3
EO P DAC K3 (8254)
Tim er/
Floppy Controller Counter
© DHBK 2005 11/Chapter6
DMA in the
PC/XT
13/Chapter6
DMA Cascadation
© DHBK 2005
DREQ1
DACK1
i8237A
Slave DREQ2
DACK2
DREQ4
DREQ3
HRQ DACK4 DACK3
MPU
HOLDA DREQ5
i8237A DACK5
Master
DREQ6
DACK6
DREQ7
DACK7
© DHBK 2005 14/Chapter6
1
© DHBK 2005
Intel 4004
• First microprocessor
(1971)
• 4-bit processor
• 2300 Transistors (P-
MOS), 10 m
• 0.06 MIPS, 108 KHz,
640 bytes addressable
memory
• -15V power supply
4
© DHBK 2005
Intel 8008
• First 8-bit processor
(1972)
• Cost $500; at this time,
a 4-bit processor costed
$50
• Complete system had 2
Kbyte RAM
• 200 KHz clock
frequency, 10 m, 3500
TOR, 0.06 MIPS, 16
Kbyte addressable
memory
• 18 pin package,
multiplexed address
and data bus
5
© DHBK 2005
Intel 8080
6
© DHBK 2005
Intel 8088
• 16-bit processor
• introduced in 1979
• 3 m, 5 a 8 MHz, 29
KTOR, 0.33 a 0.66
MIPS, 1 Mbyte
addressable memory
7
© DHBK 2005
Intel 8086
16
16 bit integer CPU
data
20
address
• Introduced: 1978
• Clock frequency: 8 - 10 MHz
8
© DHBK 2005
Intel 80286
16
MMU 16 bit integer CPU
data
24
address
• Introduced: 1983
• 1.5 m, 134 KTOR, 0.9 to 2.6 MIPS
• Clock frequency: 6 - 25 MHz
9
© DHBK 2005
Intel 80386sx
16
MMU 32 bit integer CPU
data
24
address
• Introduced: 1986
• 1 m, 275 KTOR, 16 to 33 MHz, 5 to 11 MIPS
• Clock frequency: 16 - 25 MHz
• Software support and hardware protection for multitasking
10
© DHBK 2005
Intel 80386dx
32
MMU 32 bit integer CPU
data
32
address
• Introduced: 1988
• Clock frequency: 16 - 40 MHz
• Software support and hardware protection for multitasking
11
© DHBK 2005
Intel 80486dx
32
8 Kbyte cache 32 bit integer CPU
data
• Introduced: 1989
• Clock frequency: 25 - 50 MHz
• Software support and hardware protection for multitasking
• Support for parallel processing
• Cache required: external memory is not fast enough
12
© DHBK 2005
Intel 80486sx
32
8 Kbyte cache 32 bit integer CPU
data
MMU 32
address
• Introduced: 1989
• 0.8 m, 1.2 MTOR, 20 to 41 MIPS
• Clock frequency: 25 - 50 MHz
• Software support and hardware protection for multitasking
• Support for parallel processing
• Cache required: external memory is not fast enough
13
© DHBK 2005
Intel 80486dx2
32
8 Kbyte cache 32 bit integer CPU
data
• Introduced: 1992
• Clock frequency: internal: 50 - 66 MHz, external: 25 - 33 MHz
• Software support and hardware protection for multitasking
• Support for parallel processing
• Cache required: external memory is not fast enough
14
© DHBK 2005
Intel Pentium
MMU
• Introduced: 1993
• (.8 m, 3.1 MTOR) up to (.35 mm, 4.5 MTOR incl. MMX)
• Clock frequency: internal: 60 - 166 MHz, external: 66 MHz
• Support for parallel processing: cache coherence protocol
• Super scalar
15
© DHBK 2005
• Introduced: 1995, 0.35 m, 3.3 V, 5.5 MTOR, 35W, 387 pin
• Clock frequency: 150 - 200 MHz Internal, 60 - >100 MHz External
• Super scalar (4 Instr./cycle), super pipelined (12 stages)
• Support for symmetrical multiprocessing (4 CPU)
• MCM: 256-1024 Kbyte L2 4-way set associative cache
16
© DHBK 2005
Intel Pentium II
16 Kbyte L1
program cache
16 Kbyte L1 32 bit integer 64+ECC
data cache pipelined CPU data
256 Kbyte L2 unified 32 bit integer
36
cache pipelined CPU address
Dynamic branch 64 bit
prediction unit pipelined FPU
64 bit
MMU
pipelined FPU
Instruction Address
dispatch unit generation unit
18
Intel Pentium IV
© DHBK 2005
16 Kbyte L1
program cache
16 Kbyte L1 32 bit integer 64+ECC
data cache pipelined CPU data
32 bit integer
256/512/1024 Kbyte L2 36
pipelined CPU address
Dynamic branch 64 bit
prediction unit pipelined FPU
64 bit
MMU
pipelined FPU
Instruction Address
dispatch unit generation unit
19
Intel Pentium IV
© DHBK 2005
• Available at 3.80F GHz, 3.60F GHz, 3.40F GHz and 3.20F GHz
• • Supports Hyper-Threading Technology1 (HT Technology) for
all frequencies with 800 MHz front side bus (FSB)
• • Supports Intel® Extended Memory 64Technology2 (Intel®
EM64T)
• Supports Execute Disable Bit capability
• Binary compatible with applications running on previous
members of the Intel microprocessor line
• Intel NetBurst® microarchitecture
• FSB frequency at 800 MHz
• Hyper-Pipelined Technology
• Advance Dynamic Execution
• Very deep out-of-order execution
• Enhanced branch prediction
• 775-land Package
20
Intel Pentium IV
© DHBK 2005
21
© DHBK 2005
IA-64 (Itanium)
• Design started in 1994; first samples on the market
in 2001
• 64-bit address space (4x109 Gbyte; we will never
need that much…)
• 256 64-bit integer and 128 82-bit floating point
registers; 64 branch target registers; 64 1-bit
predicate registers
• 41 bit instruction word length
• 10-stage pipeline
• separate L1 data and program, 96 Kbyte L2 unified
on-chip, 4 Mbyte L3 unified off-chip
22
© DHBK 2005
processors
• Higher clock frequencies: 4.7 -> 30 GHz
• Faster memory: 120 ns -> 50 ns
not proportional to clock frequency increase => use of
caches and special DRAM memories (e.g. SDRAM)
• Limited by power dissipation => decreasing power
supply voltage
• Parallel processing
• Memory with processor instead of processor with
memory
24
© DHBK 2005
polymer electronics)
26
© DHBK 2005
Besides and beyond silicon: applied to future
ambient intelligent environments
31
© DHBK 2005
Processor performance
Performance
1M
100K
10K
55%/year
1K
100
10
1 Time
1980 1985 1990 1995 2000 2005
Processor performance
• Smaller line size
More transistors => parallelism
1983: 1 instruction per 4 clock cycles
2002: 8 instructions per clock cycle
Smaller capacitors => faster
1983: 4 MHz
2002: 2800 MHz
Speed-up: 25000
• Enables new applications
UMTS with large rolled-up OLED screen enabling web
downloadable services (e.g. virtual meetings)
• Do we find applications that are demanding enough
for next decade’s processors?
33
© DHBK 2005
34
© DHBK 2005
Memory density
Performance
1M Processor
100K
10K
55%/year Gap
1K
100
10 Memory
10%/year
1 Time
1980 1985 1990 1995 2000 2005
35
© DHBK 2005
Memory density
• Skills: center of gravity
USA: processors (Intel, Motorola, TI, …)
Japan: memory (NEC, Toshiba, …)
Future: IC = processor + memory
Where???
• Memory density grows faster than needs
1983: 512 Kbyte @ 64 Kbit/chip = 64 chips/PC
2001: 256 Mbyte @ 512 Mbit/chip = 4 chips/PC
Compensated if you sell at least 16 times more PCs…
… or if you find new applications (UMTS, car,…)
2010: 4 Gbyte @ 64 Gbit/chip = 0.5 chip/PC
No need for such a large memory chip…
… unless you find new applications (3D video…)
36
© DHBK 2005
Power consumption
Power (W/cm2)
1K
Nuclear reactor
100
Hot plate P4
P II P III
10
P P Pro
386
486
1
1.5 1 0.7 0.5 0.35 0.25 0.18 0.13 0.1Line
width
Power consumption
Cooling “tower”
38
© DHBK 2005
Power consumption
• Let us do a calculation:
How long could a GSM using a Pentium 3 (hardly powerful
enough…) last on a single battery charge?
Capacity of a battery:
600 mAh @ 4V = 2400 mWh
Power consumption Pentium 3: 45 W
One charge lasts for … 3 minutes!!!
• Let us turn the computation upside down:
We want a GSM to last for 240 hours on a single charge.
How much power may be consumed by the processor?
Capacity of a battery:
600 mAh @ 4V = 2400 mWh
Power consumption processor: 10 mW
Possible via specialization to the application:
dedicated hardware…
39
© DHBK 2005
40
© DHBK 2005
Design issues
Performance Design
1M complexity
100K
10K
55%/year Gap
1K
100
Design
10 productivity
10%/year
1 Time
1980 1985 1990 1995 2000 2005
Design issues
• We can build exponentially complex circuits, but
we cannot design them
Design of Pentium 4: 8 years, during last 2 years with a
team of 1000 persons
Who can afford this???
42
© DHBK 2005
44
© DHBK 2005
46
© DHBK 2005
Microcontroller facts
• 99% processor market
• Shipments- > 16 Billion in 2000, 8 bit > 1/2 market
• Major Players: Microchip 16Fxx, Intel 8051, Motorola
MC68HC05, National COP800, SGS/Thomson ST62, Zilog
Z86Cxx
47
© DHBK 2005
Motorola MC68331
32 bit 16
2 Timers
integer CPU data
1 Serial asynch. FT unit: watchdog
24
Buffered I/O clock&bus monitor address
12
Programmable
chip selects
7
Interrupt logic
48
© DHBK 2005
Motorola MC68332
32 bit 16
Timer PU
integer CPU data
1 Serial asynch. FT unit: watchdog
24
Buffered I/O clock&bus monitor address
12
Programmable
2 Kbyte RAM
chip selects
7
Interrupt logic
48
Parallel I/O
49
© DHBK 2005
Motorola MC68340
32 bit 16
2 Timers
integer CPU data
2 Serial asynch. FT unit: watchdog
32
I/O clock&bus monitor address
4
Programmable 2 channel
chip selects DMA controller
7
Interrupt logic
16
Parallel I/O
50
© DHBK 2005
Motorola MC68F333
Motorola MC68HC16
• 16-bit microprocessor
• Introduced in 1994
www.freescale.com
52
© DHBK 2005
54
© DHBK 2005
MCS-51
• 8051 thuộc họvi điều khiển MCS-51.
• MCS-51 được phát triển bởi Intel và các nhà sản
xuất khác (nhưSiemens, Philips) là các nhà cung
cấp đứng thứhai của họnày.
• Tóm tắt một sốđặc điểm chính của họ8051:
4K bytes ROM trong
128 bytes RAM trong
4 cổng I/O 8-bit
2 bộđịnh thời 16 bit
Giao diện nối tiếp
Quản lý được 64K bộnhớcode bên ngoài
Quản lý được 64K bộnhớdữliệu bên ngoài
55
© DHBK 2005
Ram trong
Thanh ghi 128 byte FF
chøc n¨ng ram
®Æc biÖt
Nguån 80
§iÒu khiÓn
Ng¾t 128 byte 7F
ng¾t
Trong RAM
00
CPU
Tham khảo
• Họvi điều khiển 8051
• www.atmel.com/products/8051/
• http://chaokhun.kmitl.ac.th/~kswichit/
• http://www.sunrom.com/
57
© DHBK 2005
128x8 Bé so s¸nh
analog
EEPROM
15 ®-êng dÉn
vµo/ra
59
© DHBK 2005
• PSoC là gì?
Do hãng Cypress sả n xuất
Một loại công nghệIC mới phát triể n trong vài năm gầ
n đây.
Khảnăng tích hợp độ ng các loạ i linh kiện sốvà tương tựđể
tạ
o ra các khố i sốhoặ c tương tựvới chức năng tuỳthuộ c
người dùng.
Kết hợp với một vi điều khiển trung tâm.
61
© DHBK 2005
62
© DHBK 2005
Ứng dụng
63
So sánh thiết kếgiữa VXL, VĐK,
VĐK
© DHBK 2005
PSoC
• Ứng dụng: Mạch đo điện áp 0-5V, hiển thịgiá trịra
LED
Thiết kếphần cứng
Thiết kếphần mềm
Nguồn nuôi
64
© DHBK 2005
So sánh
Độổn đị
nh Thấp Trung bình Cao
65
© DHBK 2005
66
© DHBK 2005
67
© DHBK 2005
Tài
nguyên
hệ
thống
Chọn Hướng
linh dẫn sử
kiện dụng
linh
kiện
68
© DHBK 2005
Thiết kế
Thông
số
chung
IC
S
BU
Thông
n
Châ
sốlinh
Số
kiện
Tương tự
69
© DHBK 2005
Lập trình
Quản lý
theo dự
án
70
© DHBK 2005
Bộnhớlưu trữ
chương trình
Tín hiệu
Tín hiệu ra
vào PLC
Giao Giao
diện Vi xử lý diện
vào ra
73
© DHBK 2005
74
© DHBK 2005
76
© DHBK 2005
77
© DHBK 2005
PROM Selection of 18
peripherals: address
serial comm.,
Loop controller timers,...
I/O
16
data
16
address
79
Texas Instruments TMS320C24x
© DHBK 2005
80
Texas Instruments TMS320C3x
© DHBK 2005
Floating Point
32 bit 32
XRAM
floating add data
32 bit
YRAM 24
floating multiply address
PRAM ACU
I/O
32
Loop controller ACU data
Selection of 24
peripherals: address
serial comm.,
timers, DMA, ...
81
Texas Instruments TMS320C4x
© DHBK 2005
32
Loop controller ACU data
12 channel 32
DMA controller Serial link, address
timers
82
Texas Instruments TMS320C54xx
© DHBK 2005
6 channel 16
ACU
DMA controller address
Buffered serial
ACU
links, timers, ...
• Series continued; typical app.: GSM, set-top box, audio
• 1.8-5V, max. 160 MHz, 144 pin, .15m (1999), 0.32mW/MIPS for the
core
• Specialized on-chip unit: will occur more often in future
• e.g. C5420: dual core + 2x100 MW on-chip SRAM
83 e.g. C5402: 5$ for 100 MIPS
Texas Instruments TMS320C5510
© DHBK 2005
6 channel 16
ACU
DMA controller address
Buffered serial
ACU
links, timers, ...
2 Kbyte I-cache4
General purpose
4 Kbyte D-cache
RISC processor
Transfer
2 KByte RAM
controller
• Series discontinued; typical app.: video phone, video conferencing,
multimedia workstations
• Introduced: 1995, 50 MHz, 305 pin
• Multiprocessor-on-a-chip; sub-word SIMD for each DSP
85
Texas Instruments TMS320C6201
© DHBK 2005
Texas Instruments
TMS320C541 (1995)
93
© DHBK 2005
Texas Instruments
TMS320C545 (1995)
94
© DHBK 2005
Texas Instruments
TMS320C80 (1994)
95
© DHBK 2005
YRAM ACU 18
address
PRAM ACU
97
© DHBK 2005
Motorola MC56002
98
© DHBK 2005
Motorola MC56166
99
© DHBK 2005
101
Philips VSP-1
© DHBK 2005
Inputs
Outputs
102
Philips VSP-1
© DHBK 2005
Output
FIFOs
Fixed Point Video
• 206K Transistors
• 1.1W dissipation
• 27 MHz clock
• 176 pin
• Introduced in 1991
Memory
ALU
Element
103
Philips VSP-2
© DHBK 2005
12
512x12 bit 12 bit
Memory element4 integer ALU 12
22x50 cross-bar
22
104
Philips VSP-2
© DHBK 2005
• 1.15 M Transistors
• 5W dissipation
• 54 MHz clock frequency
• 208 pin
•105 Introduced in 1994
© DHBK 2005
106
© DHBK 2005
108
© DHBK 2005
109