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 q
Trang 1KỸ THUẬT VI XỬ LÝ
Microprocesor Technology
Khoa: Điện Tử
Trường Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
GV: ThS Giáp Văn Dương
Mobile: 0988066622
Email: gvduong@uneti.edu.vn
1
Web: http://www.khoadientu.uneti.edu.vn/
Trang 2Tà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
Trang 3Nộ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
Chương 5: Bộ vi xử lý 8088 và ghép nối với bộ nhớ
Chương 6: Ghép nối vào ra của 8088
Chương 7: Ngắt và xử lý ngắt trong 8088
Chương 8 : Vào ra điều khiển bằng DMAC
Chương 9 : Giới thiệu về các bộ vi xử lý hiện đại
3
Trang 4Kỹ Thuật Vi Xử Lý
Chương 1
GIỚI THIỆU CHUNG VỀ VI XỬ LÝ VÀ MÁY TÍNH
Giảng viên: ThS Giáp Văn Dương Tổ: Điện Tử
Khoa: Điện Tử Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
Trang 51.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
Trang 6Lị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
Trang 10Các bộ vi xử lý 8 bit ban đầu
Trang 14 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
Trang 15Chip 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
Trang 17Pentium Overdriver(P24T) 32 4G + 16K Cache
PentiumPro Processor 64 4G + 16K L1 Cache
+ 256K L2 Cache
17
Trang 18Biểu đồ tốc độ của các bộ vi xử lý Intel
Trang 19Luậ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
Trang 20Tố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ý
Trang 23Vi xử lý của tương lai
23
Trang 241.2 Tổng quan hệ vi xử lý
Bộ xử lý trung
tâm (CPU)
Bộ nhớ (Memory)
Inside Register Outside Register
Data Bus
Address Bus Control Bus
Trang 25CHƯƠNG 2
BIỂU DIỄN THÔNG TIN TRONG HỆ THỐNG
Giảng viên: ThS Giáp Văn Dương
Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
KỸ THUẬT VI XỬ LÝ
25
Trang 262.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
Trang 29Chữ 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:
Trang 30Dạng tổng quát của số nhị phân
2
n
i i
Trang 32Chuyể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
Trang 33Phương pháp chia dần cho 2
Trang 35Chuyển đổi số lẻ thập phân sang nhị phân
Trang 36Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
Trang 37Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
Trang 382.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
Trang 39Quan hệ giữa số nhị phân và số Hexa
Trang 402.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
Trang 41Mã hoá dữ liệu nhân tạo
41
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ự
Trang 42Mã hoá và tái tạo tín hiệu vật lý
Tín hiệu điện liên
Trang 43Độ dài dữ liệu
43
Độ 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
Trang 442.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
Trang 45Ví dụ lưu trữ dữ liệu 32-bit
0001 1010 0010 1011 0011 1100 0100 1101
1A 2B 3C 4D
4D 3C 2B
1A
300 301
303 302
411
410
412 413
45
Trang 46Lưu trữ của các bộ xử lý điển hình
Intel 80x86 và các loại Pentium:
Trang 472.2.3 Biểu diễn số nguyên
47
Có hai loại số nguyên:
Số nguyên không dấu (Unsigned Integer)
Số nguyên có dấu (Signed Integer)
Trang 482.2.3.1 Biểu diễn số nguyên không dấu
2
n i
i i
a A
Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A:
Giá trị của A được tính như sau:
Trang 49Dả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
Trang 50Các ví dụ
A = 41 ; B = 150 ; C =255Giải:
Trang 51Các ví dụ (tiếp)
M = 0001 0010
N = 1011 1001Xác định giá trị của chúng?
Trang 52Biểu diễn được các giá trị từ 0 đến 255
Trang 53Trục số học máy tính:
Trang 54Với n = 16 bit, 32 bit, 64 bit
n = 16 bit: Dải biểu diễn từ 0 đến 65535 (216 - 1)
n = 32 bit: Dải biểu diễn từ 0 đến 232 - 1
n = 64 bit: Dải biểu diễn từ 0 đến 264 - 1
Trang 552.2.3.2 Biểu diễn số nguyên có dấu
55
Số bù một và số bù hai:
Giả sử A là một số nhị phân, ta có:
Số bù một của A nhận được bằng cách đảo giá trị các bit của A
(Số bù hai của A)= (Số bù một của A) + 1
Trang 56Biểu diễn số nguyên có dấu bằng mã bù hai
Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên có dấu A:
A = a n-1 a n-2 … a 2 a 1 a 0
Với A là số dương: bit an-1 =0, các bit còn lại biểu diễn độ lớn như số không dấu.Với A là số âm: Được biểu diễn bằng số bù hai của số dương tương ứng, vì vậy bit an-1 = 1
Trang 57Biểu diễn số nguyên dương
i i
a A
57
Dạng tổng quát của số dương A:
0a n-2 … a 2 a 1 a 0
Giá trị của số dương A:
Dải biểu diễn cho số dương: 0 đến 2n-1 - 1
Trang 58Biểu diễn số nguyên âm
i
i i
A
Dạng tổng quát của số âm A:
1a n-2 … a 2 a 1 a 0
Giá trị của số âm A:
Dải biểu diễn cho số âm: -1 đến -2n-1
N bit(-2n-1 ÷2n-1 - 1)
Trang 59Dạng tổng quát của số nguyên có dấu
2 1
Giá trị của số âm A:
Dải biểu diễn: -2n-1 ÷2n-1 - 1
Trang 602.2.4 Các phép toán số học với số nguyên
Trang 61Nguyên tắc thực hiện phép toán với số nguyên
61
Với phép cộng số nguyên không dấu
Nếu không có nhớ ra khỏi bit msb thì kết quả nhận được luôn luôn đúng:
Cout=0
Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận được là sai: Cout=1 (Hiện tượng tràn số)
Hiện tượng tràn số xảy ra khi tổng lớn hơn 2n -1
Nếu xuất hiện hiện tượng tràn số thì ta tăng số lượng các bit lên (tăng n) Ví
dụ từ 8 lên 16 bit
Trang 62Nguyên tắc thực hiện phép toán với số nguyên (tiếp)
Với phép cộng số nguyên có dấu
Biểu diễn số nguyên có dấu dưới dạng mã bù 2 của số không dấu trong thanh ghi n bit
Thực hiện phép cộng hai số có dấu
Chú ý hiện tượng tràn số
Nếu xuất hiện hiện tượng tràn số thì ta tăng số lượng các bit lên (tăng n) Ví
dụ từ 8 lên 16 bit
Trang 632.3 Biểu diễn số thực
63
2.3.1 Biểu diễn số dấu phẩy tĩnh
Sử dụng thanh ghi n bit
R= S b-1 … b-(n-2) b-(n-1)
S= 0 (+)
S = 1 (-)
R = (b-1.2-1+ + bn-1.2-(n-1))
Trang 642.3.2 Biểu diễn số dấu phẩy động
Biểu diễn bằng các bit nhị phân
Số dấu phảy động chính tắc là số dấu phảy động mà trong phần định trị đằng trước dấu phảy là 0, đằng sau dấu phảy là một số có ý nghĩa khác 0
Trang 65Biểu diễn theo chuẩn IBM 360 (32 bit)
Trang 67Biểu diễn theo chuẩn IEEE (32 bit)
67
Cơ số ngầm định là 2
Bit 0: S là bit dấu (S=1 Số âm, S=0 Số dương)
Bit 1 đến 8 biểu diễn: Mũ + 128 (không biểu diễn dấu)
Bit 9 đến 31 biểu diễn định trị chính tắc
Do cơ số ngầm định là 2, như vậy ở dạng chính tắc đằng sau dấu phẩy luôn là
1 Do vậy số 1 này ta không biểu diễn mà chỉ biểu diễn các số từ sau số 1 này trở đi
Trang 692.4 Biểu diễn ký tự
69
Biểu diễn kỹ tự theo mã:
Bộ mã ASCII (American Standard Code For Information Interchange)
Bộ mã Unicode
Trang 702.4.1 Bộ mã ASCII
Bộ mã ASCII (American Standard Code For Information Interchange) thiết kế
Bộ mã 8 bit có thể mã hóa được 256 ký tự Các ký tự có mã lần lượt từ 00H đến FFH
Trong đó:
128 ký tự chuẩn có mã 00H đến 7FH
128 ký tự mở rộng có mã 80H đến FFH
Trang 72Các ký tự hiển thị chuẩn (tiếp)
Trang 73Column bits(B7B6B5)
Chữ B tra bảng sẽ là 1000010B tương ứng với 42H
Trang 74Các ký tự điều khiển 00H đến 1FH
Mã các ký tự điều khiển định dạng (màn hình, máy in )
BS Back Space (Lùi lại một vị trí): Ký tự điều khiển con trỏ lùi lại một vị trí
HT Horizontal Tab (Tab ngang) : Ký tự điều khiển con trỏ dịch ngang một
khoảng đã định trước
LF Line Feed (Xuống một dòng): Ký tự điều con trỏ xuống một dòng mới
VT Vertical Tab (Tab đứng) : Ký tự điều con trỏ chuyển qua một số dòng đã định
Trang 75Mã các ký tự điều khiển truyền tin
SOH Start Of Heading (Bắt đầu tiêu đề): Ký tự đánh dấu bắt đầu phần thông báo tiêu đề
STX Start Of Text (Bắt đầu văn bản): Ký tự đánh dấu bắt đầu khối dữ liệu văn bản và cũng chính là phần
thông báo kết thúc tiêu đề ETX End Of Text (Kết thúc văn bản): Ký tự đánh dấu kết thúc khối dữ liệu văn bản được bắt đầu bằng
STX EOT End Of Transmission (bắt đầu truyền): Thông báo cho bên thu biết kết thúc truyền tin
ENQ Enquiry (Hỏi): Tín hiệu yêu cầu đáp ứng từ một máy ở xa
ACK Acknowledge (Xác nhận): Ký tự phát ra từ phía thu báo cho phía phát biết dữ liệu đã nhận thành
công NAK Negative Acknowledge (Báo phủ nhận): Tín hiệu phát ra từ phía thu báo cho phía phát tín hiệu
không nhận được thành công SYN Synchronous (Đồng bộ): Đồng bộ hóa quá trình truyền và nhận dữ liệu
ETB End Of Transmission Block (Kết thúc khối truyền): Chỉ ra kết thúc khối dữ liệu được truyền
75
Trang 76Các ký tự điều khiển (tiếp)
Mã các ký tự điều khiển phân cách thông tin
FS File Separator (Ký hiệu phân cách tập tin): Đánh dấu ranh giới giữa các
Trang 77Mã các ký tự điều khiển khác
NUL NULL (Ký tự rỗng): Được sử dụng để truyền khaongr trống khi không có dữ liệu
BEL BELL (Chuông): Phát ra một tiếng chuông
SO Shift Out (Dịch ra): Chỉ ra rằng các mã tiếp theo sẽ nằm ra ngoài ký tự chuẩn cho đến khi gặp SI
SI Shift In (Dịch vào): Chỉ ra rằng các mã tiếp theo sẽ nằm trong ký tự chuẩn
DLE Data Link Escape (Thoát liên kết dữ liệu): Thông báo sẽ thay đổi ý nghĩa của một hay nhiều kỹ tự liên tiếp sau đóDC1D
C4 Device Control (Điều khiển thiết bị): Tín hiệu điều khiển bị phụ trợ
CAN Cancel (Hủy bỏ): Thông báo một số kỹ tự nằm trước nó cần phải bỏ qua
EM End Of Medium (Kết thúc phương tiện) : Chỉ ra ký tự ngay trước nó là ký tự cuối cùng có tác dụng với phương tiện vật lýSUB Substitude (Thay thế): Được xác định là sẽ thay thế cho ký tự nào đó bị lỗi
ESC Escape (Thoát): Ký tự dùng để cung cấp mã mở rộng bằng cách kết hợp với các ký tự sau đó
DLE Delete (Xóa): Xóa ký tự không mong muốn
77
Trang 78Các ký tự mở rộng có mã từ 80H đến FFH
Các ký tự mở rộng được định nghĩa bởi
Nhà chế tạo máy tínhNgười phát triển phần mềm
Ví dụ:
Bộ mã ký tự mở rộng của IBM IBM-PC
Bộ mã ký tự mở rộng của Apple Macintosh
Có thể thay đổi các ký tự mở rộng để mã hóa cho các ký tự riêng của tiếng Việt Ví dụ mã TCVN3, BK
Trang 802.5 Mã BCD
Binary Coded Decimal
Dùng 4 bit để mã hóa từng chữ số thập phân
Trang 83Ví dụ: Số 26 được lưu trữ như sau
BCD gói (Packed BCD): Hai số BCD được lưu trữ trong 1 byte
Ví dụ: Số 26 được lưu trữ như sau
Trang 84Packed BCD & Unpacked BCD
Trang 85CH ƯƠNG 3
KI ẾN TRÚC PHẦN MỀM CỦA BỘ VI XỬ LÝ 8086/8088
Giảng viên: ThS Giáp Văn Dương
Đại Học Kinh Tế Kỹ Thuật Công Nghiệp
KỸ THUẬT VI XỬ LÝ
85
Trang 86 Kiến trúc khá đơn giản và nguyên gốc
Có tập lệnh dễ tiếp nhận đối với các sinh viên và người đọc bắt đầu nghiên cứu về bộ vi xử lý
Trang 873.1 Sơ đồ cấu trúc của 8086/8088
Trang 883.1 Sơ đồ cấu trúc của 8086/8088 (tiếp)
CU (Control Unit): Đơn vị điều khiển
EU (Execution Unit): Đơn vị thừa hành
BIU (Bus Interface Unit): Khối giao diện bus
ALU (Arithmetic and Logic Unit): Đơn vị số học và lôgic
FR (Flag Register): Thanh ghi cờ
Trang 89Hoạt động của vi xử lý
Ban đầu vi xử lý sẽ hoạt động ở chế độ chờ đợi các lệnh đầu vào
Khi có lệnh điều khiển ở đầu vào bộ giải mã lệnh sẽ thực hiện giải mã các lệnh đầu vào để đưa vào bộ đệm lệnh
Vi xử lý sẽ căn cứ vào mã lệnh đã được giải mã di chuyển con trỏ lệnh đến địa chỉ của lệnh và thực hiện lệnh
CU điều khiển các thành phần khác bên trong bộ vi xử lý thực hiện lệnh bao gồm: Nhận lệnh, giải mã lệnh, nhận địa chỉ toán hạng, nhận dữ liệu, thi hành lệnh và lưu trữ kết quả
Một lệnh có thể thực hiện trong một hay nhiều chu kỳ máy
89
Trang 90Chu trình thi hành lệnh
Tính địa chỉ toán hạng (Calculate Operand Address - COA)
Chu trình lệnh được phân chia theo các công đoạn và được thực hiện gối lên nhau
Ví dụ có 6 công đoạn thực hiện lệnh sau:
Trang 91Biểu đồ thời gian quá trình thi hành lệnh
Các bộ vi xử lý cổ điển thi hành lệnh theo các chu trình sau
Trang 92Biểu đồ thời gian của đường ống lệnh (Pipeline)
Đặc điểm: Trong một chu kỳ máy thực hiện nhiều thao tác khác nhau của quá trình thi hành các lệnh khác nhau Do vậy tốc độ xử lý tăng lên nhiều lần
Trang 93Các xung đột của đường ống lệnh
Xung đột cấu trúc do nhiều công đoạn dùng chung một tài nguyên
Xung đột dữ liệu : Lệnh sau sử dụng kết quả của lệnh trước
Xung đột điều khiển : Do rẽ nhánh gây ra
93
Trang 953.2.1 Các thanh ghi của 8088/8086
3.2.1.1 Thanh ghi đa năng
Trang 963.2.1.1 Thanh ghi đa năng (tiếp)
AX(Accumulator): Thanh ghi tích luỹ có nhiệm vụ lưu trữ các dữ liệu, thông tin chung mà sau khi ALU thực hiện phép toán
BX(Basic): Lưu trữ các địa chỉ cơ sở của một bảng Bảng này được sử dụng trong câu lệnh XLAL
CX(Counter): Cho phép ALU theo dõi các thông tin về vòng lặp, điều khiển được các vòng lặp
DX(Data): Thanh ghi dữ liệu chung hỗ trợ cho vi xử lý tăng tốc độ xử lý
Trang 973.2.2.2 Các thanh ghi con trỏ
BP
IP BIU
97
Trang 983.2.2.2 Các thanh ghi con trỏ (tiếp)
Kết hợp với thanh ghi đoạn để xác định địa chỉ của 1 byte hay một bit nào đó, trong địa chỉ bộ nhớ 64KB
IP(Instruction Pointer): Con trỏ lệnh xác định vị trí độ lệch của đoạn mã lệnh trong bộ nhớ Kết hợp với thanh ghi CS để tạo ra địa chỉ bộ nhớ CS:IP
SP(Stack Pointer): Thanh ghi con trỏ ngăn xếp dùng để xác định nơi lưu trữ địa chỉ, dữ liệu cần cho công việc lưu trữ để xử lý sau về sau SP thường xuyên trỏ vào đỉnh của ngăn xếp Địa chỉ đoạn:Độ lệch cụ thể của dữ liệu tại đỉnh ngăn xếp là: SS:SP
BP(Basic Pointer): Luôn trỏ vào một dữ liệu nào đó nằm trong đoạn ngăn xếp, kết hợp với thanh ghi đoạn SS để xác định ra địa chỉ tuyệt đối của lệnh