Tải bản đầy đủ (.pdf) (268 trang)

Slide kỹ thuật vi xử lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.61 MB, 268 trang )

KHOA ĐIỆN TỬ
ĐẠI HỌC KTKT CÔNG NGHIỆP

KỸ THUẬT VI XỬ LÝ
Microprocesor Technology
1

Tài liệu tham khảo







Bài giảng Kỹ thuật Vi xử lý - Đại Học KTKT Công Nghiệp
Vi xử lý – TG Văn Thế Minh NXB Giáo dục
The Intel Microprocessor 8086/8088, 80186/80188, 80286, 80386, 80486,
Pentium and Pentium Pro Processor - Architecture, Programming and Interfacing
TG Barry B. Brey NXB Prentice – Hall International
Cẩm nang lập trình hệ thống TG Michael Tischer NXB Giáo dục
Lập trình hợp ngữ Assembly và máy tính IBM PC Biên dịch Quách tuấn Ngọc
NXB Giáo dục

2

1


Nội dung giáo trình






Chương 1: Giới thiệu chung về vi xử lý và máy tính
Chương 2: Biểu diễn thông tin trong hệ thống
Chương 3: Kiến trúc phần mềm của bộ vi xử lý 8088/8086
Chương 4: Lập trình hợp ngữ trên IBM-PC

3

KỸ THUẬT VI XỬ LÝ

CHƯƠNG 1

GIỚI THIỆU CHUNG VỀ VI XỬ LÝ VÀ MÁY TÍNH

4

2


1.1. Lịch sử phát triển của máy tính










Phát minh ra máy tính là một thành tựu vĩ đại trong lịch sử tiến hóa của loài người
Trong những năm đầu của thế kỷ 20 việc chạy đua vũ trang, đối đầu quân sự là một
nguyên nhân thúc đẩy khoa học kỹ thuật phát triển
Lịch sử phát triển của máy tính được bắt đầu từ sự phát triển của các thế hệ máy tính
lớn trong những năm 50 của thế kỷ 20 (VD máy tính 4381 của IBM)
Từ những năm 70 của thế kỷ 20 với sự phát triển của công nghệ bán dẫn đã mở ra
khả năng thu nhỏ vi mạch  thu nhỏ máy tính
Sự hình thành và phát triển của máy tính cá nhân đi song song với sự hình thành và
phát triển của các loại bộ vi xử lý

5

Lịch sử phát triển của bộ vi xử lý






Quá trình phát triển của bộ vi xử lý song song với quá trình phát triển
của các hệ thống máy tính
Có nhiều hãng sản xuất vi xử lý lớn (Intel, motorola, ziglog, ...)
Các bộ vi xử lý phải được sản xuất theo một chuẩn thống nhất

6

3



Bộ vi xử lý Intel 4004
Intel bắt đầu phát triển vi xử lý từ năm 1969 theo dự án của nhà sản xuất máy tính
Nhật Busicom.
 Kỹ sư Ted Hoff của Intel đã hình thành ý tưởng về một thiết bị logic đa mục đích
hoạt động hiệu quả
 Ngày 15/11/1971, Intel giới thiệu bộ vi xử lý 4004 ra thị trường thế giới với giá 200
USD
 Intel 4004 có 4bit dữ liệu và 12 bit địa chỉ
 4004 có tốc độ 108 KHz với 2.300 bóng bán dẫn.
 Thực hiện một lệnh 1 - 60s
 Tập lệnh đơn giản
 Có vi mạch hỗ trợ xử lý 4040
 Phát triển dựa trên công nghệ
PMOS
(P - Chanel Metal oxit
Semiconductor)
7


Ted Hoff và chip 4004. Ảnh: Intel.

Các bộ vi xử lý Intel từ 1972 - 1974








Intel 8008 (1972)
Phiên bản 8008 mạnh gấp đôi bộ vi xử lý 4004
8008 có tốc độ 200 KHz với 3.500 bóng bán dẫn

Intel 8080 (1974)
8080 có tốc độ 2 MHz với 6.000 bóng bán dẫn

8

4


Các bộ vi xử lý Intel từ 1978 - 1982








Intel 8086 - 8088 (1978)
Bộ vi xử lý 8088 đã được trang bị cho chiếc máy tính cá nhân thương mại đầu
tiên IBM PC. Thành công này đã đưa Intel vào bảng xếp hạng 500 doanh nghiệp
hàng đầu thế giới của Fortune
8088 có tốc độ 5 MHz, 8 MHz và 10 MHz với 29.000 bóng bán dẫn
8086 mạnh hơn 8088 (giống nhau về cấu trúc)
80186/80188
8086 có tốc độ 5 MHz, 8 MHz và 10 MHz với 29.000 bóng bán dẫn


9

Các bộ vi xử lý 8 bit ban đầu
STT

Nhà sản xuất

Tên bộ vi xử lý

1

Fairchild

F-8

2

Intel

8080

3

MOS Technology

6502

4

Motorola


MC6800

5

National Semiconductor

IMP-8

6

Rockwell International

PPS-8

7

Ziglog

Z-8
10

5


Các bộ vi xử lý Intel từ 1978 – 1982 (tiếp)






Intel 80286 (1982)
Chip đầu tiên của Intel có thể chạy tất cả các phần mềm được viết cho thiết bị xử lý
trước đó
286 có tốc độ 6 MHz, 8 MHz, 10 MHz và 12,5MHz với 134.000 bóng bán dẫn

Máy tính IBM PC 1981 sử dụng Intel 8088.
11

Các bộ vi xử lý Intel từ 1985 – 1989











Intel 386 (1985)
Chip Intel 386 có 275.000 bóng bán dẫn, nhiều gấp 100 lần so với bộ xử lý 4004 ban
đầu
Chip 32 bit và có khả năng xử lý đa nhiệm
386 có tốc độ 16 MHz, 20 MHz, 25 MHz và 33 MHz
Intel 486 DX (1989)
Chip đầu tiên tích hợp sẵn bộ đồng xử lý toán học, hỗ trợ giảm tải các hàm phức tạp
cho vi xử lý trung tâm
486 DX có tốc độ 25 MHz, 33 MHz và 50 MHz với 1,2 triệu bóng bán dẫn


12

6


Các bộ vi xử lý Intel khác










Pentium (1993)
Pentium cho phép máy tính dễ dàng tích hợp những dữ liệu "thế giới thực" như
giọng nói, âm thanh, ký tự viết tay và ảnh đồ họa
Pentium có tốc độ 60 MHz và 66 MHz với 3,1 triệu bóng bán dẫn.

Pentium II (1997)
Pentium II tích hợp Intel MMX - công nghệ được thiết kế đặc biệt để xử lý dữ liệu
video, audio và đồ họa một cách hiệu quả
Pentium II có tốc độ 200 MHz, 233 MHz, 266 MHz và 300 MHz với 7,5 triệu bóng
bán dẫn.
13

Các bộ vi xử lý Intel khác (tiếp)











Pentium III (1999)
Pentium III có 70 lệnh xử lý mới giúp tăng cường hiệu suất hoạt động của các ứng
dụng ảnh, 3-D, audio, video và nhận dạng giọng nói
Pentium III có tốc độ từ 650 MHz đến 1,2 GHz với 9,5 triệu bóng bán dẫn

Pentium IV (2000)
Pentium IV có tốc độ 1,3 GHz, 1,4 GHz, 1,5 GHz, 1,7 GHz và 1,8 GHz với 42 triệu
bóng bán dẫn.
Tháng 8/2001, Pentium IV đạt mốc 2 GHz. Đến tháng 11/2002, chip này được trang
bị công nghệ siêu phân luồng và có tốc độ 3,06 GHz, sau tăng lên 3,2 GHz vào năm
2003 và 3,4 GHz trong tháng 6/2004
14

7


Chip lõi kép








Tháng 4/2005, Intel giới thiệu nền tảng sử dụng bộ vi xử lý lõi kép đầu tiên gồm
chip Pentium Extreme Edition 840, xung nhịp 3,2 GHz, và chipset 955X Express,
kết hợp với công nghệ siêu phân luồng
Tháng 5/2005, chip Intel Pentium D lõi kép ra đời cùng chipset 945 Express
Tháng 5/2006, Intel công bố nhãn hiệu Core 2 Duo
Tháng 7/2006: Intel giới thiệu 10 thiết bị xử lý Intel Core 2 Duo và Core Extreme
Các bộ vi xử lý Core 2 Duo có 291 triệu bóng bán dẫn

15

Các bộ vi xử lý Intel
Tên bộ vi xử lý

Bus dữ liệu (bit)

Kích thước bộ nhớ

8048

8

2K Internal

8051

8


8K Internal

8085A

8

64K

8086

16

1M

8088

8

1M

8096

16

8K Internal

80186

16


1M

80188

8

1M

80251

8

16K Internal

80286

16

16M
16

8


Các bộ vi xử lý Intel (tiếp)
Tên bộ vi xử lý

Bus dữ liệu (bit)


Kích thước bộ nhớ

80386EX

16

64M

80386DX

32

4G

80386SL

16

32M

80386SLC

16

32M + 1K Cache

80386SX

16


16M

80486DX/DX2

32

4G + 8K Cache

80486SX

32

4G + 8K Cache

80486DX4

32

4G + 16K Cache

Pentium

64

4G + 16K Cache

Pentium Overdriver(P24T)

32


4G + 16K Cache

PentiumPro Processor

64

4G + 16K L1 Cache
+ 256K L2 Cache
17

Biểu đồ tốc độ của các bộ vi xử lý Intel
1200

1000

800

600

400

200

0

0
*
*
0
3

0
75
66
50
20
33
20
25
33
33
25
33
50
25
25
16
50
40
66
90
60
75
10
63
83
4
2
2
10
13

12
2
2
X
X
X
X
X
X
X
X
X
X
X
X
m
m
6S 86S 86S 86D 86S 86D 86S 86S 86D 86S 6SX 86D 6SX 6DX 86D 6DX 6DX DX4 ium tium tium ium tium tium ium
8
t
tiu ntiu
n
n
n
n
3
3
3
3
3

3
4
4
4
4
4
4
6
nt
nt
e
e
e
e
n
n
48
48
48
48
48
8
e
e
e
e
e
4
P
P

P
P
P
P
P
P
P

18

9


Luật moore








Gordon Moore - Người đồng sáng lậpIntel
Số transistor trên chip sẽ tăng gấp đôi sau khoảng 18 tháng
Giá thành của chip hầu như không thay đổi
Mật độ cao hơn, do vậy đường dẫn ngắn hơn
Kích thước nhỏ hơn dẫn tới độ phức tạp tăng
Điện năng tiêu thụ ít hơn
Hệ thống có ít các chip liên kết với nhau, do đó tăng độ tin cậy


19

Tốc độ của bộ vi xử lý
- Bộ vi xử lý (Microprocessor) là CPU được chế tạo trên 1 chip
- Tốc độ của bộ vi xử lý:
+ Số lệnh thực hiện trong 1 giây
(MIPS- Milions of Instruction Per Second)
+ Khó đánh giá được chính xác.
- Tốc độ của bộ xử lý được đánh giá gián tiếp thông qua tần số xung nhịp
(Clock) được mạch ngoài cung cấp cho bộ vi xử lý.
20

10


Tc ca b vi x lý (tip)
Dạng xung nhịp
T0
T0 Chu kỳ xung nhịp
Tần số xung nhịp f0 = 1/T0
Mỗi thao tác của bộ xử lý cần k.T0 (kN)
T0 càng nhỏ (f0 càng lớn) Bộ xử lý chạy càng nhanh
Ví dụ : Một máy tính dùng bộ xử lý Pentium IV2 GHz
Ta có f0 = 2GHz = 2.109 Hz
T0= 1/f0 = 1/(2.109 ) = 0,5ns
21

Cỏc b vi x lý Motorola
Tờn b vi x lý


Bus d liu (bit)

Kớch thc b nh

6800

8

64K

6805

8

2K

6809

8

64K

68000

16

16M

68008Q


8

1M

68008D

8

4M

68010

16

16M

68020

32

4G

68030

32

4G + 256 cache

68040


32

4G + 8K Cache

68050

32

Khụng c nh

68060

64

4G + 16K Cache

Power PC

64

4G + 32K Cache 22

11


Vi xử lý của tương lai

Các bộ vi xử lý quang học
 Các bộ vi xử lý sinh học



23

1.2. Tổng quan hệ vi xử lý

Data Bus
Control Bus
Bộ xử lý trung
tâm
(CPU)

Bộ nhớ
(Memory)
ROM-RAM

Phối ghép vào
ra
I/O

Input Device

Output Device
Inside Register

Outside Register

Address Bus

24


12


KỸ THUẬT VI XỬ LÝ

CHƯƠNG 2
BIỂU DIỄN THÔNG TIN TRONG HỆ THỐNG
Giảng viên: ThS. Giáp Văn Dương
Khoa:
Điện Tử
Đại Học Kinh Tế Kỹ Thuật Công Nghiệp

25

2.1. Hệ đếm
Hệ thập phân (Decimal System)  Con người sử dụng

Hệ nhị phân (Binary System)  Máy tính sử dụng

Hệ mười sáu (Hexa)  Dùng để viết gọn lại một dãy số nhị phân

26

13


2.1.1. Hệ thập phân
Cơ số 10
10 ký tự: 0,1,2,3,4,5,6,7,8,9.
Dùng n chữ số thập phân có thể biểu diễn được 10n chữ số khác nhau

0000...0 = 0
...
9999...9=10n - 1

27

Ví dụ hệ thập phân
472.38 = 4.102 + 7.101 + 2.100 + 3.10-1 + 8.10-2

Các chữ số của phần nguyên
 472 : 10 = 47 dư

2

 47 : 10 = 4 dư

7



4

4 : 10 = 0 dư

Các chữ số của phần lẻ
 0.38 x 10 = 3.8 Phần nguyên = 3
 0.8 x 10 = 8.0 Phần nguyên = 8

28


14


2.1.2. Hệ nhị phân
Cơ số 2
2 chữ số nhị phân: 0,1
Chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2n giá trị khác nhau:
 00…000 = 0
 11…111

= 2n - 1

29

Dạng tổng quát của số nhị phân
Có một số nhị phân A như sau:
A = an an –1 … a1 a0 , a-1 … a-m

Giá trị của A được tính như sau:
A = an 2n + an-1 2n-1 + … + a1 21 + a0 20 + a-1 2-1 + … + a-m 2-m

n

A

a2

i


i

i  m

30

15


Ví dụ số nhị phân

1101001.1011(2)
= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)

31

Chuyển đổi số nguyên thập phân sang nhị phân

Phương pháp 1: Chia dần cho 2 rồi lấy phần dư

Phương pháp 2: Phân tích thành tổng các số 2i  nhanh hơn đối với
những số nhỏ và sát cận 2n

32

16



Phương pháp chia dần cho 2
Ví dụ: Chuyển đổi 105(10)
105 : 2 =

52



1

 52 : 2 =

26



0

 26 : 2 =

13



0

 13 : 2 =

6




1

 6:2=

3



0

 3:2=

1



1

 1:2=

0



1

Kết quả: 105(10) = 11010012

33

Phương pháp phân tích thành tổng các 2i
Ví dụ 1: Chuyển đổi 105(10)
105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20
27
128
0
Kết quả :

26
64
1

25
32
1

24
16
0

23
8
1

22
4
0


21
2
0

20
1
1

105(10) = 01101001(2)

Ví dụ : 17000(10) = 16384 + 512 + 64 + 32 + 8
= 214 + 29 + 26 + 25 + 23
Kết quả :17000(10) = 0100 0010 0110 1000(2)
34

17


Chuyển đổi số lẻ thập phân sang nhị phân
 Ví dụ 1: Chuyển đổi 0.6875(10)
 0.6875 x 2

= 1.375

phần nguyên = 1

 0.375 x 2

= 0.75


phần nguyên = 0

 0.75

x 2

= 1.5

phần nguyên = 1

 0.5

x 2

= 1.0

phần nguyên = 1

 Kết quả: 0.6875(10) = 0.1011(2)

35

Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
 Ví dụ 2: Chuyển đổi 0.81(10)
 0.81 x 2 =

1.62

phần nguyên = 1


 0.62 x 2 =

1.24

phần nguyên = 1

 0.24 x 2 =

0.48

phần nguyên = 0

 0.48 x 2 =

0.96

phần nguyên = 0

 0.96 x 2 =

1.92

phần nguyên = 1

 0.92 x 2 =

1.84

phần nguyên = 1


 0.84 x 2 =

1.68

phần nguyên = 1

 0.81(10)  0.1100111(2)
36

18


Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
 Ví dụ 3: Chuyển đổi 0.2(10)

 0.2 x 2 =

0.4

phần nguyên =

0

 0.4 x 2 =

0.8

phần nguyên =

0


 0.8 x 2 =

1.6

phần nguyên =

1

 0.6 x 2 =

1.2

phần nguyên =

1

 0.2 x 2 =

0.4

phần nguyên =

0

 0.4 x 2 =

0.8

phần nguyên =


0

 0.8 x 2 =

1.6

phần nguyên =

1

 0.6 x 2 =

1.2

phần nguyên =

1

 0.2(10)  0.00110011 (2)

37

2.1.3. Hệ mười sáu (Hexa)
Cơ số 16

16 ký tự: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Dùng để viết gọn lại số nhị phân: Cứ một nhóm 4-bit sẽ được thay bằng
một chữ số Hexa


38

19


Quan hệ giữa số nhị phân và số Hexa
4-bit

Chữ số Hexa

0000

0

0001

1

0010

2

0011

3

0100

4


0101

5

0110

6

0111

7

1000

8

1001

9

1010

A

1011

B

1100


C

1101

D

1110

E

1111

F

Chuyển đổi số nhị phân  số Hexa:
Ví dụ 1:
1011 00112 =B316
0000 00002 = 0016
Ví dụ 2:
0010 1101 1001 10102 = 2D9A16
1111 1111 1111 11112 = FFFF16

39

2.2. Biểu diễn số nguyên
2.2.1. Nguyên tắc chung về mã hóa dữ liệu
+ Mọi dữ liệu đưa vào máy tính đều phải được mã hóa thành số nhị phân

+ Các loại dữ liệu:

Dữ liệu nhân tạo: Do con người quy ước
Dữ liệu tự nhiên: Tồn tại khách quan với con người

40

20


Mã hoá dữ liệu nhân tạo
Dữ liệu số nguyên: mã hóa theo tiêu chuẩn quy ước

Dữ liệu số thực: Mã hóa bằng số dấu phẩy động

Dữ liệu ký tự: Mã hóa theo bộ mã ký tự

41

Mã hoá và tái tạo tín hiệu vật lý
Tín hiệu vật lý

Bộ cảm biến tín
hiệu (sensor)

Tín hiệu điện liên
tục

Bộ chuyển đổi
Tín hiệu số
tương tự - số (ADC)
Máy tính


Tín hiệu vật lý

Bộ tái tạo tín hiệu

Tín hiệu điện liên
Bộ chuyển đổi số - Tín hiệu số
tục
tương tự (DAC)

Các dữ liệu vật lý thông dụng:
Âm thanh
Hình ảnh

42

21


Độ dài dữ liệu
Độ dài từ dữ liệu là số bít được sử dụng để mã hóa loại dữ liệu tương ứng

Thường là bội của 8-bit:
Ví dụ: 8, 16, 32, 64 bit

43

2.2.2. Thứ tự lưu trữ các byte của dữ liệu
Bộ nhớ chính thường được tổ chức theo byte
Độ dài từ dữ liệu có thể chiếm từ 1 đến nhiều byte

 Cần phải biết thứ tự lưu trữ các byte trong bộ nhớ chính với các dữ liệu
nhiều byte.
Có hai cách lưu trữ:
Little-endian (đầu nhỏ): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở
vị trí có địa chỉ nhỏ hơn.
Big-endian (đầu to): Byte có ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị
trí có địa chỉ lớn hơn.
44

22


Ví dụ lưu trữ dữ liệu 32-bit
0001 1010 0010 1011 0011 1100 0100 1101
1A

4D
3C
2B
1A

2B

3C

300
301
302
303


Little-Endian

4D

1A
2B
3C
4D

410
411
412
413

Big-Endian

45

Lưu trữ của các bộ xử lý điển hình

 Intel 80x86 và các loại Pentium:
 Little-Endian
 Motorola 680x0 và các loại vi xử lý RISC:
 Big-Endian
 Power PC và Itanium: Cả hai

46

23



2.2.3. Biểu diễn số nguyên
Có hai loại số nguyên:

Số nguyên không dấu (Unsigned Integer)
Số nguyên có dấu (Signed Integer)

47

2.2.3.1. Biểu diễn số nguyên không dấu
Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A:

A = an-1 an-2 … a2 a1 a0 (a = 1,0)
Giá trị của A được tính như sau:
A = an-1 2n-1 + an-2 2n-2 + … + a2 22 + a1 21 + a0 20
n 1

A

a

i

2i

i 0

48

24



Dải biểu diễn số nguyên không dấu
Dải biểu diễn của A: Từ 0 đến 2n - 1
00 … 000

=

0

00 … 001

=

1

00 … 010

=

2

00 … 011

=

3

=


2n - 1


11 … 111

49

Các ví dụ
Ví dụ 1: Biểu diễn các số nguyên không dấu sau đây bằng thanh ghi 8-bit:
A = 41

;

B = 150

; C =255

Giải:
A = 4110 = 32 + 8 + 1

= 25 + 23 + 20

4110 = 0010 10012
B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21
15010 = 1001 01102
50

25



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×