Cũng như hệ thập phân, nhị phân cũng là một hệ thống số trong đó các giá trị số được biểu diễn chỉ bằng hai chữ số 0 và 1.. Để phân biệt với các hệ cơ số khác, ta thường thêm chữ cái „[r]
Trang 1TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT – CÔNG NGHỆ
BÀI GIẢNG
CẤU TRÚC MÁY TÍNH
VÀ GIAO DIỆN
Bậc học: Cao đẳng
Giảng viên: Nguyễn Phạm Hoàng Dũng
Bộ môn: Điện – Điện tử Khoa: Kỹ thuật – Công nghệ
Quảng Ngãi, tháng 12/2015
Trang 2TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA KỸ THUẬT – CÔNG NGHỆ
BÀI GIẢNG
CẤU TRÚC MÁY TÍNH
VÀ GIAO DIỆN
Bậc học: Cao đẳng (Số tiết: 30)
Giảng viên: Nguyễn Phạm Hoàng Dũng
Bộ môn: Điện – Điện tử Khoa: Kỹ thuật – Công nghệ
Quảng Ngãi, tháng 12/2015
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 1
DANH SÁCH CÁC TỪ VIẾT TẮT 2
Chương 1 GIỚI THIỆU HỆ THỐNG SỐ 3
1.1 Các hệ đếm 3
1.1.1 Hệ thập phân (decimal) 3
1.1.2 Hệ nhị phân (binary) 3
1.1.3 Hệ thập lục phân (hexadecimal) 5
1.2 Các phép toán 7
1.2.1 Các phép toán logic 7
1.2.2 Các phép toán số học 8
1.3 Biểu diễn số 11
1.4 Biểu diễn ký tự 14
Chương 2 GIỚI THIỆU CÁC HỆ MÁY TÍNH 17
2.1 Các thế hệ máy tính 17
2.1.1 Thế hệ zero 17
2.1.2 Thế hệ đầu tiên (1945 – 1953) 18
2.1.3 Thế hệ thứ hai (1954 – 1965) 19
2.1.4 Thế hệ thứ ba (1965 – 1980) 20
2.1.5 Thế hệ thứ tư (1980 đến nay) 20
2.2 Chức năng máy tính 21
2.3 Cấu trúc và tổ chức máy tính 22
2.4 Phân loại 23
2.4.1 Phân loại theo cấu trúc tập lệnh 23
2.4.2 Phân loại theo khả năng xử lý của máy tính 25
2.5 Máy tính Von Neumann 26
Chương 3 CẤU TRÚC TỔNG QUÁT 28
3.1 Thùng máy – nguồn 28
3.2 Mainboard 30
3.3 CPU 33
3.4 RAM 36
Trang 43.5 BIOS VÀ CMOS RAM 39
3.6 Interfaces 40
3.7 Chipset 43
3.8 Ổ đĩa cứng 44
3.9 Ổ đĩa quang 48
3.10 Màn hình 49
Chương 4 CẤU TRÚC BÊN TRONG MÁY TÍNH 50
4.1 Vi xử lý 50
4.1.1 Kiến trúc 50
4.1.2 Cấu trúc pipeline 51
4.1.3 Kỹ thuật superscalar 54
4.1.4 Thanh ghi 54
4.1.5 Tập lệnh 56
4.2 Bộ nhớ 58
4.2.1 Phân loại bộ nhớ 59
4.2.2 Cấu trúc cơ bản 62
4.3 Hệ thống kết nối (bus) 63
4.3.1 Phân loại 63
4.3.2 Chức năng 65
4.4 Hệ thống cache 68
4.4.1 Giới thiệu 68
4.4.2 Chức năng 69
4.4.3 Cache nhiều tầng 70
4.4.4 Phân loại 71
Chương 5 HỆ THỐNG XUẤT NHẬP 73
5.1 Hệ thống ngắt 74
5.2 Truy cập trực tiếp bộ nhớ 77
5.3 Thiết bị bên ngoài 80
5.4 Các ngoại vi 82
TÀI LIỆU THAM KHẢO 84
Trang 5LỜI NÓI ĐẦU
Bài giảng “Cấu trúc máy tính và giao diện” được biên soạn dùng làm tài liệu học tập cho sinh viên bậc cao đẳng chính qui ngành công nghệ kỹ thuật Điện – Điện
tử trường Đại học Phạm Văn Đồng Bài giảng bao gồm 5 chương, cung cấp cho sinh viên những kiến thức cơ bản về quá trình phát triển của máy vi tính, cấu trúc cơ bản của một máy vi tính hiện đại, các chuẩn và thông số kỹ thuật của các thành phần tạo nên một chiếc máy tính, một số kỹ thuật xử lý nhằm cải thiện tốc độ xử lý của máy tính theo thời gian, một số chi tiết của hệ thống máy tính như: bộ xử lý trung tâm, bộ nhớ, cache, … Bài giảng này cũng góp phần giúp sinh viên cập nhật những công nghệ mới thông qua các ví dụ thực tế
Nội dung chi tiết của bài giảng như sau:
- Chương 1: Giới thiệu hệ thống số
- Chương 2: Giới thiệu các hệ máy tính
- Chương 3: Cấu trúc tổng quát
- Chương 4: Cấu trúc bên trong máy tính
- Chương 5: Hệ thống xuất nhập Trong quá trình biên soạn không thể tránh khỏi những thiếu sót, rất mong nhận được sự góp ý của bạn đọc để bài giảng được hoàn thiện hơn Mọi ý kiến đóng góp xin gửi về địa chỉ: Bộ môn Điện – Điện tử, Khoa Kỹ thuật – Công nghệ, Trường Đại học Phạm Văn Đồng
Tác giả xin chân thành cảm ơn!
Trang 6DANH SÁCH CÁC TỪ VIẾT TẮT
CPU Central Processing Unit Đơn vị xử lý trung tâm
MSB Most Significant Bit Bit có trọng số lớn nhất
LSB Least Significant Bit Bit có trọng số thấp nhất
ASCII American Standard Code for
Information Interchange
Chuẩn mã trao đổi thông tin Hoa Kỳ
VLSI Very Large Scale Integration Tích hợp cỡ lớn
CISC Complex Instruction Set
RISC Reduced Instruction Set
RAM Random Access Memory Bộ nhớ truy cập dữ liệu ngẫu
nhiên
SRAM Static Random Access Memory Bộ nhớ RAM tĩnh
DRAM Dynamic Random Access Memory Bộ nhớ RAM động SDRAM Synchronous Dynamic Random
DDR Double Data Rate Gấp đôi tốc độ dữ liệu
BIOS Basic Input/Output System Hệ thống xuất nhập cơ bản
CMOS Complementary
Metal-Oxide-Semiconductor
Bộ nhớ RAM lưu trữ thông tin cấu hình máy tính
HDD Hard Disk Drive Ổ đĩa cứng cơ truyền thống
SSD Solid-State Drive Ổ đĩa cứng thể rắn
ALU Arithmetic Logic Unit Đơn vị tính toán số học
DMA Direct Memory Access Giao thức truy cập trực tiếp bộ
nhớ
DMAC Direct Memory Access Controller Bộ điều khiển truy cập trực
tiếp bộ nhớ
Trang 7Chương 1 GIỚI THIỆU HỆ THỐNG SỐ
Một hệ thống máy tính bao gồm rất nhiều thành phần, trong đó bộ xử lý trung tâm (hay còn gọi là CPU) chính là bộ não của cả hệ thống CPU sẽ tiếp nhận
và xử lý mọi thông tin trong hệ thống Thông tin hay còn được gọi là dữ liệu trong một hệ thống máy tính được biểu diễn dưới dạng số nhị phân Hệ số nhị phân còn gọi là hệ cơ số hai chỉ bao gồm hai chữ số 0 và 1 Trong máy tính nói riêng và trong các mạch điện tử số nói chung, các giá trị này được mã hóa dưới dạng các tín hiệu điện với các giá trị điện áp hoặc dòng điện tương ứng khác nhau Việc tính toán, xử
lý dữ liệu nhị phân trong máy tính cũng được thực hiện tương tự như trong toán học
1.1 Các hệ đếm
1.1.1 Hệ thập phân (decimal)
Hệ thập phân là hệ cơ số rất quen thuộc đối với chúng ta, đây là hệ cơ số được sử dụng trong cuộc sống hàng ngày để biểu diễn các giá trị số, còn được gọi là
hệ cơ số mười hay hệ mười
Hệ thập phân sử dụng 10 chữ số để biểu diễn hệ thống số Mười chữ số này là: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Số dương và số âm được biểu diễn bằng dấu “+” và “-“ trước mỗi số Để phân biệt với hệ cơ số khác, ta thường thêm chữ cái „D‟ vào phía cuối để chỉ ra rằng đó là một số trong hệ thập phân, ta cũng có thể bỏ „D‟ đi mà vẫn ngầm hiểu đó là số thuộc hệ thập phân
1.1.2 Hệ nhị phân (binary)
Cũng như hệ thập phân, nhị phân cũng là một hệ thống số trong đó các giá trị
số được biểu diễn chỉ bằng hai chữ số 0 và 1 Để phân biệt với các hệ cơ số khác, ta thường thêm chữ cái „B‟ vào phía cuối số nhị phân
Ví dụ: 10B, 11B, 100B, 1100B, 10100110B…
Mỗi giá trị trong hệ nhị phân tương ứng với một giá trị trong hệ thập phân và ngược lại Việc chuyển đổi qua lại giữa các giá trị trong hệ thập phân và hệ nhị phân được thực hiện như sau
+ Chuyển một số từ hệ nhị phân sang hệ thập phân
Trang 8Việc chuyển đổi từ số nhị phân sang số thập phân được thực hiện bằng cách
hệ số của số nhị phân, có thể nhận một trong hai giá trị 0 hoặc 1 Khi đó 2 i sẽ là
phân bằng công thức sau:
bn*2n + bn-1*2n-1 + … + b1*21 + b0*20
Ví dụ: ta có số nhị phân: 1011B
Số thập phân tương ứng sẽ là:
b3*23 + b2*22 + b1*21 + b0*20 = 1*23 + 0*22 + 1*21 + 1*20 = 11 Như vậy, số 1011B sẽ tương ứng với số 11 trong hệ thập phân
Ví dụ: số nhị phân: 110011B
Như vậy, số 110011B tương ứng với số 51 trong hệ thập phân
+ Chuyển một số từ hệ thập phân sang hệ nhị phân
Việc chuyển đổi một số từ hệ thập phân sang hệ nhị phân được thực hiện bằng cách lấy số cần đổi chia cho 2 và ghi nhớ phần dư, tiếp theo lấy thương của phép chia trước đó chia cho 2 và ghi nhớ phần dư Làm như vậy cho tới khi được thương bằng 0 Đảo ngược thứ tự dãy số dư ta sẽ được các chữ số của hệ nhị phân cần tìm
Ví dụ: hình 1.1 mô tả cách đổi số 50 sang hệ nhị phân
Số dư (số gạch dưới) được sắp xếp theo chiều mũi tên, như vậy 50 = 110010B
Trang 9Hình 1.1 Đổi một số thập phân sang hệ nhị phân
Hệ nhị phân là hệ cơ số được sử dụng trong máy tính nói riêng và trong các mạch điện tử số nói chung Các giá trị 0 và 1 được hiểu là các mức điện áp (hoặc dòng điện) khác nhau trong mạch (một số ví dụ như đã đề cập ở phần trên) Trong
thế giới máy tính, các số 0 và 1 được gọi là các bit Một nhóm 4 bit sẽ tạo thành 1
nibble, nhóm 8 bit sẽ tạo thành một byte, nhóm 16 bit sẽ tạo thành một word Bit
đầu tiên bên trái trong chuỗi bit được gọi là bit MSB, bit cuối cùng bên phải trong chuỗi bit được gọi là bit LSB
Ví dụ:
+ Bit: 0B, 1B + Nibble: 1011B, 1110B, 1000B, … + Byte: 01011110B, 11110000B, 11000001B, … + Word: 1000010111100001B, 1111000010101100B, …
Từ các ví dụ trên ta có thể thấy, một nibble có thể biểu diễn được số lớn nhất
là 15, một byte có thể biểu diễn được số lớn nhất là 255, một word có thể biểu diễn
số lớn nhất là 65535 Để biểu diễn những số lớn hơn ta phải dùng những chuỗi bit dài hơn, điều này rất bất tiện cho con người trong việc ghi chép, tính toán trên giấy
Để khắc phục nhược điểm trên người ta thường sử dụng hệ thập lục phân
1.1.3 Hệ thập lục phân (hexadecimal)
Hệ thập lục phân hay còn gọi là hệ cơ số 16, cũng là một hệ thống số trong
đó các giá trị số được biểu diễn bằng các chữ số từ 0 đến 9 và các chữ cái từ A đến
Trang 10F, tương ứng với giá trị thập phân từ 0 đến 15 Để phân biệt với các hệ cơ số khác,
ta thương thêm chữ cái „H‟ vào phía cuối số thập lục phân
Ví dụ: 19H, AB5H, 2F0CH, E104DH, …
Như đã đề cập ở trên, hệ thập lục phân ra đời nhằm khắc phục nhược điểm của số trong hệ nhị phân, đó là việc sử dụng một chuỗi số nhị phân quá dài để biểu diễn một giá trị lớn Để việc biểu diễn một kết quả nhị phân gọn lại, người ta thường chuyển các kết quả này thành các số thập lục phân bằng cách nhóm 4 bit số nhị phân thành một số thập lục phân
Ví dụ: chuyển số 110001111000001011101011B thành số thập lục phân
Ta sẽ nhóm từng 4 bit số nhị phân lại để tạo thành một số thập lục phân: 1100B có giá trị là 12 tương ứng với „C‟, 0111B có giá trị 7 tương ứng với 7, 1000B có giá trị 8 tương ứng với 8, 0010B có giá trị 2 tương ứng với 2, 1110B có giá trị 14 tương ứng với „E”, 1011B có giá trị 11 tương ứng với „B‟ trong hệ thập lục phân Do đó, số nhị phân đã cho sẽ có giá trị tương ứng là C782EB trong hệ thập lục phân
Đối với các số nhị phân có số bit không chia hết cho 4, ta thêm các bit 0 vào phía liền trước bit MSB để được số bit chia hết cho 4 rồi nhóm lại theo cách trên
Ví dụ: chuyển số 11101011011111B thành số thập lục phân
Do số bit của số nhị phân trên là 14 không chia hết cho 4 nên ta phải thêm 2 bit 0 vào phía liền trước bit MSB để tạo thành số 0011101011011111B, sau đó nhóm lại như sau:
Như vậy, số nhị phân 11101011011111B tương ứng với số 3ADFH Việc chuyển từ số thập lục phân thành số nhị phân được thực hiện theo cách ngược lại, tức là một chữ số thập lục phân được phân tích thành 4 bit nhị phân
Ví dụ: chuyển số A3C5H thành số nhị phân
1010 0011 1100 0101
Trang 11Ta có, „A‟ có giá trị 10 ứng với 1010B, 3 có giá trị 3 ứng với số 0011B, „C‟
có giá trị 12 ứng với số 1100B, 5 có giá trị 5 ứng với số 0101B Như vậy, A3C5 trong hệ thập lục phân tương ứng với số 1010001111000101 trong hệ nhị phân
1.2 Các phép toán
1.2.1 Các phép toán logic
Các phép toán logic bao gồm 4 phép toán cơ bản, đó là: NOT, AND, OR, XOR, thường dùng để diễn tả một kết quả từ các điều kiện cho trước Các phép toán này được thực hiện với các toán hạng là các bit 0 (điều kiện sai) và 1 (điều kiện đúng), kết quả cuối cùng cũng là một bit 0 (kết quả sai) hoặc 1 (kết quả đúng) Sau đây ta sẽ xét từng phép toán
a Phép toán AND
Giả sử z = x AND y
Kết quả của phép toán AND chỉ bằng 1 khi cả hai toán hạng đều bằng 1, tức
là kết quả chỉ đúng khi cả hai điều kiện đều đúng
b Phép toán OR
Giả sử z = x OR y
Kết quả của phép toán OR chỉ bằng 0 khi cả hai toán hạng đều bằng 0, tức là kết quả chỉ sai khi cả hai điều kiện đều sai
c Phép toán XOR
Giả sử z = x XOR y
Trang 12x y z
Kết quả của phép toán XOR bằng 0 khi hai toán hạng giống nhau, tức là kết quả chỉ sai khi hai điều kiện giống nhau (cùng đúng hoặc cùng sai)
d Phép toán NOT
Phép toán này chỉ có một toán hạng Giả sử y = NOT x
Kết quả y được gọi là bù của toán hạng x
1.2.2 Các phép toán số học
Việc thực hiện các phép toán số học (cộng, trừ, nhân, chia, …) trong hệ thập phân đã quá quen thuộc với chúng ta, do đó, nội dung phần này chỉ trình bày cách thực hiện các phép toán số học trong hệ nhị phân
a Phép cộng
Phép cộng trong hệ nhị phân được thực hiện giống như trong hệ thập phân (cộng cột theo cột), chỉ có sự khác biệt ở điểm: hệ thập phân có 10 chữ số (từ 0 đến 9) còn hệ nhị phân chỉ có 2 chữ số (0 và 1) Phép cộng hai chữ số 0 và 1 được thực hiện theo quy tắc sau đây
Xét phép cộng y = a+b, số nhớ là c
Cũng giống như số thập phân, số nhớ sẽ được cộng vào bit cao hơn kế tiếp Xét các ví dụ sau
Ví dụ: thực hiện phép cộng 001B + 100B
100 001
Trang 13Trong hệ thập phân, phép cộng này tương ứng là 1+4=5 (001B = 1, 100B =
4, 101B = 5) Đây là phép cộng không có số nhớ Xét ví dụ tiếp theo với phép cộng
có sử dụng số nhớ
Ví dụ: thực hiện phép cộng 0011B + 0110B
Trong hệ thập phân, phép cộng này tương ứng là 3+6=9
Ví dụ: thực hiện phép cộng 1011B + 0101B
Trong hệ thập phân, phép cộng này tương ứng là 13+7=20 Các số hạng trong phép cộng là các số 4 bit, tổng 20 là một số 5 bit Do đó, trong trường hợp
tổng quát, nếu số hạng lớn hơn có n bit thì tổng sẽ có n+1 bit
b Phép trừ
Phép trừ trong hệ nhị phân cũng được thực hiện tương tự như trong hệ thập phân Quy tắc trừ các bit nhị phân được cho như sau
Xét phép trừ y=a-b, số mượn là c
Cũng giống như số thập phân, số mượn sẽ được trừ vào bit cao hơn kế tiếp Xét các ví dụ sau đây
Ví dụ: thực hiện phép trừ 101B – 001B
100 001
101
Trong hệ thập phân, phép trừ này tương ứng với 5-1=4 Phép trừ này không
sử dụng số mượn Xét ví dụ tiếp theo với phép trừ sử dụng số mượn
Trang 14Ví dụ: thực hiện phép trừ 1010B – 0110B
Trong hệ thập phân, phép trừ này tương ứng với 10-6=4
c Phép nhân
Phép nhân trong hệ nhị phân cũng được thực hiện tương tự như trong hệ thập phân
Ví dụ: thực hiện phép nhân 1011B x 1101B
Phép nhân trên trong hệ thập phân tương ứng với 11x13=143
Khi nhân một số n bit với một số m bit, tích số sẽ có m+n bit
d Phép chia
Phép chia trong hệ nhị phân cũng được thực hiện tương tự như trong hệ thập phân
Ví dụ: thực hiện phép chia 11011001B:1011B
Trong hệ thập phân, phép chia này tương ứng với 217:11 được thương số là
19 và số dư là 8
Trang 151.3 Biểu diễn số
Trong các nội dung trên, ta chỉ đề cập đến các số nguyên không có dấu Trong phần này ta sẽ tìm hiểu cách biểu diễn một số nguyên có dấu và số thập phân
a Số có dấu
Trong hệ nhị phân, số có dấu được biểu diễn bằng số bù 2 Số bù 2 được tính
từ số bù 1, cách tính được trình bày như trong phần sau
Số bù 1
Số bù 1 của một số nhị phân là một số nhị phân mà khi cộng với số nhị phân
đã cho thì tổng bằng 1 ở tất cả các bit Để tìm số bù 1 của một số nhị phân bất kỳ, ta chỉ cần đổi bit 0 thành 1 và 1 thành 0
Ví dụ:
Số bù 2
Số bù 2 của một số nhị phân bằng số bù 1 của nó cộng thêm 1
Ví dụ:
Số có dấu được biểu diễn bằng số bù 2 như sau:
- Bit có trọng số lớn nhất (MSB) là bit dấu Số dương có bit dấu bằng 0, số
âm có bit dấu bằng 1
- Các bit còn lại biểu diễn giá trị thực của số dương hay trị bù 2 của số âm
Trong cách biểu diễn số có dấu, để tìm số đối của một số, ta chỉ cần tìm số
bù 2 của số đó
Ví dụ: tìm số nhị phân biểu diễn cho số -5
Để biểu diễn số -5 (trong tầm từ -8 đến 7), ta cần số nhị phân có n=4 bit
- Số 5 tương ứng với số nhị phân 4 bit là: 0101
- Số bù 1 của 0101B là: 1010B