Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Giáo trình kỹ thuật vi xử lý. Tập 1
Nội dung xem thử
Mô tả chi tiết
GIÁO TRÌNH
(TẬP 1)
HỌC VIỆN CÔNG NGHỆ • • • Bưu CHÍNH VIỄN THÔNG
GIÁO TRÌNH
(TẬP 1)
Biên soạn: TS. Hồ Khánh Lâm
NHÀ XUẤT BẢN BƯU ĐIỆN
Hà Nội - 2007 a
Mã số: GT 01 HM 07
LỜI NÓI ĐẦU
Ngày nay, bộ vi xử lý được sử dụng rộng rãi không chỉ
trong lĩnh vực máy tính điện tử mà còn trong rất nhiều hệ thông
điều khiển khác. Với sự phát triển của công nghệ mạch tích hợp
một bộ vi xử lý có thê được chế tạo từ một hoặc vài vi mạch tích • • • • • • •
hợp cỡ lớn, chứa hàng ngàn hoặc hàng triệu transistor. Dưới sự
điều khiển của các chương trình chứa trong bộ nhớ, bộ vi xử lý
thực hiện các phép tính số học, logic, các phép toán khác và kết
nối, trao đổi dữ liệu với các thiết bị bên ngoài thông qua các
cổng vào Ira. Do vậy, vấn đề đặt ra là phải hiểu về kỹ thuật ui
xử lý và lập trình cho vi xử lý như thế nào để tự động điều khiển
mang lại hiệu quả cao.
Đê đáp ứng yêu cầu trên, Học viện Công nghệ Bưu chính
Viễn thông phối hợp với Nhà xuất bản Bưu điện xuất bản cuốn
sách “Giáo trìn h Kỳ th u ậ t Vỉ xử lý” do TS. Hồ Khánh Lâm
chủ biên. Giáo trình gồm 8 chương, chia làm 02 tập. Tập 1 từ
chương 1 đến chương 4 giới thiệu những khái niệm cơ bản về hệ
thống vi xử lý như kiến trúc Von Neumann, kiến trúc Harvard;
đặc điểm, cấu trúc và đặc tính nâng cao tốc độ của bộ ui xử lý;
cấu trúc và hoạt động của họ vi xử lý từ 8085, 8086/8088, 8087,
80x86, Z80, đến Pentium III, IV, Motorola68000,... Bên cạnh đó
cuốn sách không chỉ giới thiệu về lệnh, các dạng lệnh, cách mã
hóa lệnh, các mã lệnh và tập lệnh của vi xử lý mà còn giới thiệu
cụ thể về các khái niệm, cách thức lập trình hợp ngữ, cơ chế làm
việc, cấu trúc của chương trình con, macro và các vấn đề liên
giúp cho người lập trình tự tạo được những lệnh điều khiển
riêng theo ý muôn. Tập 2 từ chương 5 đến chương 8 trình bày vê
cách ghép nối CPU với bộ nhớ và các thiết bị ngoại vi; các
phương pháp điều khiển uào/ra dữ liệu; giới thiệu các bộ vi xử
lý công nghệ tiên tiến và bộ ui điều khiển. Ngoài ra CUÔÌI sách
còn giới thiệu một sô phụ lục về các tập lệnh của Intel 8086,
Intel x86, Z80, Motorola M680X0, Intel 8051, Intel 8085A,... đê
bạn đọc tiện tham khảo. Đặc biệt cuốn sách còn có phần bài tập
ôn luyện giúp cho bạn đọc tự củng cô và nâng cao kiến thức của
bản thân.
Giáo trinh này không chỉ đề cập đến những khái niệm cơ
bản mà còn đưa ra một sô kỹ năng, kinh nghiệm cần thiết để
phát triển (hay lập trình) các chương trình điều khiển cụ thể.
Hy vọng cuốn sách sẽ hữu ích cho học sinh, sinh viên, các kỹ
thuật viên, cán bộ, chuyên gia ngành điện tử viễn thông và công
nghệ thông tin, các ngành kỹ thuật có liên quan khác và những
người yêu thích tìm hiểu về kỹ thuật vi xử lý.
Xin trân trọng giới thiệu cùng bạn đọc.
HỌC VIỆN CÔNG NGHỆ B ư u CHÍNH VIEN t h ô n g
GIỚI THIỆU CHUNG
1.1. TRAO ĐỔI THÔNG TIN TRONG VI x ử LÝ
1.1.1. Khái niệm vi xử lý
Vi xử lý là một vi mạch có mức tích hợp rất lớn (VLSI- Very
Large Scale Integrated circuit) có thể lập trình được, và dưới sự điều
khiển của chương trình chứa trong bộ nhớ, nó thực hiện các phép tính
số học, logic, các phép toán khác, và kết nối trao đổi dữ liệu với các
thiết bị bên ngoài thông qua các cổng vào/ra (Input/Output ports).
Vi xử lý có hai loại phổ biến: vi xử lý đa năng (general-purpose
microprocessors) và vi điều khiển (microcontrollers).
Vi xử lý đa năng chứa bên trong chip tất cả các thành phần chủ
yếu cho tính toán ngoại trừ bộ nhớ và các cổng vào/ra.
Vi điều khiển chứa trong chip bộ nhớ và các cổng vào/ra.
Xử lý dữ liệu là chức năng chính của vi xử lý. Xử lý dữ liệu bao
gồm cả tính toán và vận chuyển dữ liệu.
1.1.2. Trao đổi thông tin trong vi xử lý
Máy vi tính (microcomputer) là một hệ thống gồm có 5 khối
phần cứng: vào, ra, bộ nhớ, đơn vị số học - logic (ALU) và điều khiển.
Vi xử lý là đơn vị xử lý trung tâm của máy vi tính gồm hai khối phần
cứng là đơn vị số học - logic và điều khiển (hình 1.1). Hệ thống xử lý
thông tin trong bộ não người cũng có 5 khối chức năng tương tự:
vào (mắt, tai), ra (miệng), điều khiển, bộ nhớ, tính toán và logic trong
bộ não.
Khối các mạch logic bên trong vi xử lý thực hiện phép tính
số học và logic như: công, trừ, nhân, chia, và, hoặc, so sánh, tăng,
giảm,... với các dữ liệu thường được gọi là đơn vị số học-logic ALU
Chương 1
10
(Arithmetic Logic Unit). Dữ liệu dê ALU thực hiện phép tính p
được đặt vào đúng chỏ qui định. ALU không thẻ tự chuyên dữ liệu
chỗ này đến chỗ khác, mà thay vào đó nó chỉ đơn thuần thực hicn Cđ^
phcp tính với dữ liệu ở chỗ nào đó và nó để lại kết quà ờ lại chinh chô
đó. Như vậy để có dữ liệu đẻ tính toán, ALU phải chờ đợi dữ liẹu
diồn ở một chỗ nào đó ấn định cho nó.
• • •
Máy vi tính
Hình 1.1: Núm khói phần cứng của máy vi tính
giống như năm khối xử lý thông tin ở con người
Vi xử lý có một số mạch logic, bên ngoài ALU, thực hiện
vận chuyên dữ liệu từ chỗ này đến chỗ khác cần thiết cho xử lý dữ
liệu. Chúng cùng với ALU làm thành logic xử lý dữ liệu: tính toán và
vân chuyên.
Nhưng làm thô nào để ALL biêt được rằng nó phải thực hiên xử
1) dư liẹu. Cai gi mach bao ALL thực hiện xừ lý dữ liêu và bằng phép
tính nào? Như vậy phai có những chi dẫn cho ALU. Các phép tính
khác nhau đòi ho! ALI phai có những thao tác khác nhau do đo phải
có những ch. dan khác nhau. Và bo, vì V, xử lý là lập hợp các mạnh
logic nên mỗi một chi dan < instruction), thường gọi là lệnh máy, phải
là một tập hợp các giá trị logic ••()" và ‘T \ sắp xếp theo một trâúự nàó
đó có ý nghTa khác nhau dói NOI các chi dẫn khác nhau. Mỗi vi xù
Chương ỉ : Giới thiệu chung 13
liệu, 16-bit bus địa chỉ, đóng vỏ gốm 40 chân DIP trở thành cơ sờ để
chế tạo các máy tính cá nhân sử dụng hệ điều hành CP/M. Cũng thời
gian này Motorola đã sản xuất loạt chip vi xử lý MC6800 với 8-bit bus
dữ liệu, 16-bit bus địa chỉ, tần sô làm việc 1 -f 2 MHz, đóng vỏ DIP có
68E3 transistor, và là CPU trong các họ máy tính cá nhân Apple n.
Năm 1976, nhà sản xuất Zilog dựa trên cơ sở của 8080 để cho ra
đời họ vi xử lý Z80/8-bit với các tần số làm việc: 2,5 MHz, 4 MHz,
6 MHz, 8 MHz, 10 MHz, và đóng vỏ 40 chân DIP. Nó bao gồm các
lệnh của 8080, nhưng có thêm một số lệnh mới như: lệnh SIMK (Set
Interrupt Mask), RIM (Read Interrupt Mask) và nhiều chức năng khác
hay hon. Điểu này có nghĩa là chương trình viết cho 8080 có thể chạy
được bình thường trên Z80. Cũng trong thời gian này, xuất hiện trên
thị trường chip 8-bit bus dữ liệu và 16-bit bus địa chỉ (kết hợp bus dữ
liệu và bus địa chỉ) là Ì8085A, 3 MHz, công nghệ NMOS và Ĩ8085AH,
5 MHz 4- 6 MHz, công nghệ HMOS, đóng vỏ gốm DIP, mật độ 6.200
transistor. Những chip này đã tìm được nhiều ứng dụng thực tế trong
các hệ thống thiết bị ứng dụng vi xử lý và là chip mẫu dùng trong đào
tạo kiến thức về vi xử lý thời kỳ này.
Năm 1978, Intel đã sản xuất các họ vi xử lý Ĩ8086A/Ĩ80C86A
16-bit bus dữ liệu trong (internal data bus) và 16-bit bus dữ liệu ngoài
(external data bus), 20-bit bus địa chỉ (kết hợp bus dữ liệu và bus địa
chỉ), tần số 4 MHz (công nghệ NMOS), 5 -ỉ- 10 MHz (công nghệ
CMOS) đóng vỏ gốm 40 chân DIP, được dùng làm CPU trong IBM
PC/XT. Do chi phí đắt, và các thiết bị ngoại vi vẫn chỉ thỏa mãn trao
đổi dữ liệu 8-bit nên dòng sản phẩm này không thông dụng. Trong khi
đó, các chip Ì8088A/Ì80C88A, với 16-bit đường trục dữ liệu trong,
8-bit đườiic trục dữ liệu ngoài, tần số 5 -ỉ- 10 MHz, công nghệ CMOS,
đóng vỏ 40 chân DIP, ra đời vào năm 1979 tìm được ứng dụng thực tế
trong các loạt IBM PC/XT bán chạy trên thị trường.
Năm 1982, i80286 với 16-bit bus dữ liệu Ưong và bus dữ liệu
ngoài, 24—bit bus địa chi, tần số 6 -í- 20 MHz, công nghệ HMOS, đóng
vỏ gốm 68 chân DIP, đã trở thành chip vi xử lý cho các loại IBM
14
PC/AT. Nhưng trước đó, năm 1979 Motorola đã cho ra đời bô VI XƯ ly
MC68000 16-bit bus dữ liệu trong và bus dữ liệu ngoài, 24-bit bus dĩa
chỉ, là CPU của loạt các máy tính cá nhân như Atari ST, Cornmadore
Amiga, Apple Lisa, Macintosh. Nó là cơ sớ cho họ vi xử lý MC680
nổi tiếng.
Nãm 1982, Motorola đã đi trước Intel cho ra đời loại VI xư ly
MC68020 với 32-bit bus dữ liệu trong và bus dữ liệu ngoài. 32-bit bus
địa chỉ, đậc biột có bộ nhớ truy cập nhanh (Cache memory) bcn trong
256 byte, đơn vị quàn lý bộ nhớ MMU (Memory Management Unit)
bên ngoài, tần số 16,67 -7- 33,33 MHz, được sử dụng trong các hộ thông
máy tính đa nhiệm có quản lý địa chỉ ảo, như Amiga, Apple
Macintosh, Sun3, Atari TT030, Atari Falcon 030, và các hệ thống tông
dài điện thoại, chuyên mạch gói,... do chúng có tập thanh ghi lớn tạo
khâ năng lập trình linh hoạt.
Trong khi đó, năm 1985 Intel mới có các chip Ì80386/ĨH0386DX
(DX: Double-word eXtemal) với 32-bit bus dữ liệu trong và bus dữ liệu
ngoài, 32-bit bus địa chi, tần số 12 -r 33 MHz, công nghệ 0,8 micron
CMOS, đóng vỏ 132 chân PGA (Pin Grid Array) với mật độ 275E3
transistor, và là CPU trong các loạt IBM PC386DX thông dụng.
Mãi tới năm 1988, loạt chip Ì80386SX với 32-bit bus dữ liệu
trong, 16-bit bus dữ liệu ngoài (SX: Single-word external), tần số
16 -ỉ- 33 MHz, công nghệ 0,8 micron CMOS, đóng vỏ 100 pin QFP
(Quad Flat Package), công nghệ 0,8 micron CMOS, đóng vỏ 100 chân
QFP (Quad Flat Package), 256 byte dữ liệu và 16 byte cache lệnh bên
trong. MMU bèn ngoài, và Í80386SL, một phiên bản cùa Í80386SX
liêu Ihụ nguồn mói xuất hiện để làm CPU trong các IBM PC386SX.
Tiếp theo ĨS03S6. nam 1989. loai 80486DX P4 có FPU (Floating Point
Unit) và MMl búi trong, lán sò 20 -ỉ- 33 MHz (công nahệ CHMOS IVj
50 MHz (cõng nghè CHMOS V). dóng vỏ 168 chân PGA kích thưóc
165 mrrr với mật độ 1.2116 transistor. Đòn năm 1993, đã có các phiên
Chương ỉ: Giới thiệu chung 15
bản của 80486DX P4 là loạt Ì80486DX2/DX4, tần số 25 - 100 MHz.
Tương tự như i80386, năm 1991 cũng có loạt Ĩ80486SX, Ĩ80486SL và
Ì80486SXL.
Năm 1993 ra đời loạt vi xử lý Intel Pentium, Ì586 hay P5, với
32-bit bus dữ liệu trong, 64-bit bus dữ liệu ngoài, 32-bit bus địa chỉ,
đặc biệt có kiến trúc siêu hướng 5 giai đoạn 2 cửa ra (2-issue 5-stage
superscalar) bằng đường ống FPU 8 giai đoạn, 16 kbyte bộ nhớ cache
bên trong chip (8 kbyte cho lệnh và 8 kbyte cho dữ liệu), tần số
60 -ỉ- 133 MHz, công nghệ 0,8 micron biCMOS, đóng gói kích thước
18x16 mm, 273 chân PGA mật độ 3,1E6 transisstor. Tiếp theo là các
loạt Pentium với công nghê MMX (Matrix Math extensions, MultiMedia extensions), tần số 66 -ỉ- 266 MHz và Pentium II/MMX, tần sô
66 -ỉ- 300 MHz, công nghệ 0,35 micron CMOS, đóng gói kích thước
203 mm2 mât độ 7.5E6 transistor. Các loạt Pentium Celeron, tần số
66 -ỉ- 333 MHz, là các phiên bản dùng cho máy tính cá nhân không hỗ
trợ cho cấu hình đa xử lý cũng được tung ra thị trường với giá rẻ. Tiếp
theo là loạt Pentium II Xeon (P6 core) có hỗ trợ đa xử lý, và tần số đạt
tới 450 MHz (1998).
Năm 2000 Intel cho ra thị trường loạt Pentium III/Xeon, tần số đến
500 MHz -ỉ- 1 GHz, và năm 2001, xuất hiện Pentium IV 1,7 H- 2 GHz.
Đáng kê trong cạnh tranh với Intel là các nhà sản xuất chip
Cyrix, AMD và Motorola. Năm 2000 AMD đã cho ra thị trường loạt vi
xử lý tương đương với Pentium III là Athlon 1,1 GHz. Motorola cũng
đã lần lượt cho ra đòi các loạt MC68030 với 256x2 byte bộ nhớ cache
trong chip (1987) và mật độ 270E3 transistor, MC68040 (1990-1991)
với 4x2 kbyte bộ nhớ cache trong chip, mật độ 1,2E6 transisstor,
MC68000 (1994) với 8x2 kbyte bộ nhớ cache trong chip, kiến trúc
siêu hướnc. mật độ 2,3E6 transistor và làm việc ờ tần số 66 MHz. Các
hãng khác như Zilog cũng có các chip vi xử lý Z80000 32-bit,
National Semiconductor với NS16000 16-bit và NS32xxx 32-bit, DEC
16
với loạt DECchip-210 Alpha với kiến trúc siêu hướng 64-bit, may 11 ^ .
có tập lệnh tôi thiểu RISC (Reduced Instruction Set Computer).
đến 600 MHz, và loạt DECchip-211 Alpha, tần sở đến 1 GHz (19 ).
công nghộ 0,18 micron CMOS. Hewlett-Packard với cac c ‘P
PA-RISC, AMD với các chip Am29000, IBM và Motorola với các chip
PowerPC 604-750 (1998), và SUN Micro systems với các chip
SPARC, UltraSPARC cũng chiếm nhiều thị phần vể các chip VI xư ly
kiến trúc siêu hướng đường ống và RISC trên thị truờng máy tinh the
giới. Các họ máy tính có kiến trúc RISC đã được Intel quan tâm va cho
ra họ Ì80860, Motorola cho ra họ MM88000.
Các bộ vi xử lý hiện nay là các hệ thống 32-bit và 64-bit đây đu
và chúng hoạt động ờ các tần sô 300 MHz -ỉ- 2 GHz và cao hơn, được
đóng vỏ trong các chip vi mạch có mức tích hợp rất lớn VLSI (Very
Large-Scale Integration) với hàng chục triệu transistor.
Phần lớn các bộ vi xử lý mới thực hiện các lệnh trong một chu
kỳ, và tất cả chúng đều có đơn vị xử lý dấu phẩy động FPU (Floatingpoint Unit), MMU và cache nhớ bên trong. Chúng có số lượng lớn các
thanh ghi chung 16 - 32-bit. Do vậy, tập hợp các thanh ghi bên trong
chip được gọi chung là tệp thanh ghi (register file). Có tệp thanh ghi
cho đơn vị nguyên (IU: Interger Unit) và tệp thanh ghi cho FPU. Bộ
nhớ cache bên trong (là bộ nhớ trung gian tốc độ nhanh) có dung
lượng lên đến 32 kbyte -T- 128 kbyte. Sự phân chia bộ nhớ cache bên
trong thành: cache lệnh (Icache: Instruction cache) dùng cho lệnh và
cache dữ liệu (Dcache: Data cache) với dung lượng tối ưu đảm bảo nâng
cao hiệu suất trao đổi dữ liệu giữa CPU và hệ thống nhớ của máy tính.
Sự phát triển cùa công nghệ mach tích hợp, công nshệ vi xử lý và
đánh dâu một móc lịch sử phát triển của công nghệ máy tính. Thế hệ
năng đáu tiên đáng kể hơn cà là UNIVAC
(Universal Automatic Computer) (1951) và ENIAC (Electronic
Numerical / utor unđ Calculator) (1960) cùa Hãng Ec|íert
Mauchly và trìĩỜHcCĐai ho^Tổnc; hợp Pennsylvania (M ỹ) dựa trẽn c.'
cliương 1: Giới thiệu chung 17
bóng đèn chân không ba cực (triode). Thế hộ máy tính điện tử vạn
nãng thứ hai dựa trên công nghệ bóng bán dẫn ra đời trong khoảng
những năm 1955 -ỉ- 1964 (IBM 7090). Cuối những năm 1960, thế hệ
máy tính điện tử vạn năng thứ ba đã dựa trên công nghệ vi mạch tích
hợp cỡ nhỏ SSI (Small-Scale Intergration) và trung • binh MSI
(Medium-Scale Intergration) (các loạt IBM 360-370). Thế hệ máy tính
điện tử thứ tư dựa trên công nghệ tích hợp lớn LSI và rất lớn VLSI, mà
cơ sở của chúng là các chip vi xử lý. Sự phát triển rõ rệt và đem lại
cuộc cách mạng trong công nghệ máy tính bắt đầu từ cuối những năm
1970 đầu năm 1980, khi những thế hệ đầu tiên của máy tính cá nhân sử
dụng công nghệ vi xử lý 8-bit xuất hiộn trên thị trường. Các bộ vi xừ lý
công nghệ cao hiện nay (advanced microprocessors) đã thỏa màn được
yêu cầu chế tạo các loại máy tính khác nhau: máy vi tính, máy tính lớn
(mainframes) và các siêu máy tính (supercomputers).
1.3. HỆ THỐNG VI XỬ LÝ
1.3.1. Khái niệm máy tính kiến trúc Von Neumann
và kiến trúc Havard
Các máy tính điện tử số thường có hai loại kiến trúc: kiến trúc
Von Neumann và kiến trúc Havard.
Các máy tính có kiến trúc Von Neumann dựa trên ba khái niệm
cơ bản, đó là:
+ Dữ liệu (data) và các lệnh (instructions) lưu giữ trong bộ nhớ
đọc/íĩhi riêng.
+ Các nội dung của bộ nhớ đọc/ghi được đánh địa chỉ theo vùng,
không phụ thuộc vào loại dữ liệu mà bộ nhớ lưu giữ.
+ Quá trinh thực hiện các lệnh xảy ra theo tuần tự - lệnh tiếp
theo lệnh.
Sơ đổ kiên trúc của máy tính Von
tronỉi hình 1.2.
Bô nhớ đoc/ghi
(Read/write memory)
Đơn vi điều khiển
(Control Unit)
Đơn vi SO hoc9 *
logic
(ALU) Cổng vao (\&)
Bò tích lũy
(Accumulator)
Cổng ra (0/P) 1 _ — ^
Hình 1.2: Kiến trúc máy linli Von Neumann nguyên ilmỷ
Sơ đồ kiến trúc cùa máy tính Von Neumann hiện đại mô tá trong
hình 1.3.
Đơn vi xử lý
trung tâm (CPU)
Đơn VỊ điều
khiển (CU)
Đơn VI SO
• • hoc
logic (ALU)
Cac thanh ghi
(Registers)
Bò nhớ chinh
(Main memory)
Bus hẻ thống
Hình 1.3: Kiên trúc máy tinli You Neumann hiên dai
• m
Đơn vi xử lý trung tâm (CPU: Central Processing Unit) thưc hiên
các chức năng chính quyết định tên gọi của máy tính: đó là thưc hiên
• •
/ 1 / * I / I I * A 1 _________ _ / _ ' 1 1 . . _ .
. 11Ảvẵl £ụi ia uon \1 so noc-lorric
(ALU) và tập hợp các thanh ghi (Registers) có khả năng lưu trữ tam
thời, trao đổi dữ liệu, xừ lý dữ liệu với mức độ tích hợp khác nhau. Các
lệnh và dữ liệu được lưu giữ trong bộ nhớ chính. Các thiết bi ngoại vi