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

Bài giảng Cấu trúc máy tính - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu

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 (2.59 MB, 87 trang )

ỦY BAN NHÂN DÂN TỈNH BẠC LIÊU
TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT

BÀI GIẢNG
CẤU TRÚC MÁY TÍNH

Bạc Liêu, tháng 4/2019


MỤ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


3.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


LỜI NĨI ĐẦU
Bài giảng “Cấu trúc máy tính” được biên soạn dùng làm tài liệu học tập cho
học sinh - sinh viên trình độ trung cấp hệ chính qui ngành Tin học ứng dụng trường
Cao đẳng Kinh tế - kỹ thuật Bạc Liêu. Bài giảng bao gồm 5 chương, cung cấp cho
học sinh - sinh viên những kiến thức cơ bản về q 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 học sinh - 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 q 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.
Xin chân thành cảm ơn!

1


DANH SÁCH CÁC TỪ VIẾT TẮT
Từ viết tắt
CPU
MSB
LSB
ASCII
VLSI
PC
CISC

RISC
RAM

Từ đầy đủ
Central Processing Unit
Most Significant Bit
Least Significant Bit
American Standard Code
Information Interchange
Very Large Scale Integration
Personal Computer
Complex
Instruction
Computing
Reduced
Instruction
Computing

Ý nghĩa
Đơn vị xử lý trung tâm
Bit có trọng số lớn nhất
Bit có trọng số thấp nhất
for Chuẩn mã trao đổi thơng tin
Hoa Kỳ
Tích hợp cỡ lớn
Máy tính cá nhân
Set
Máy tính có tập lệnh phức tạp
Set


Random Access Memory

HDD
SSD
ALU

Static Random Access Memory
Dynamic Random Access Memory
Synchronous Dynamic Random
Access Memory
Double Data Rate
Real-Only Memory
Basic Input/Output System
Complementary
Metal-OxideSemiconductor
Hard Disk Drive
Solid-State Drive
Arithmetic Logic Unit

DMA

Direct Memory Access

SRAM
DRAM
SDRAM
DDR
ROM
BIOS
CMOS


DMAC

Direct Memory Access Controller

2

Máy tính có tập lệnh đơn giản
Bộ nhớ truy cập dữ liệu ngẫu
nhiên
Bộ nhớ RAM tĩnh
Bộ nhớ RAM động
Bộ nhớ DRAM đồng bộ
Gấp đôi tốc độ dữ liệu
Bộ nhớ chỉ đọc
Hệ thống xuất nhập cơ bản
Bộ nhớ RAM lưu trữ thơng tin
cấu hình máy tính
Ổ đĩa cứng cơ truyền thống
Ổ đĩa cứng thể rắn
Đơn vị tính tốn số học
Giao thức truy cập trực tiếp bộ
nhớ
Bộ điều khiển truy cập trực
tiếp bộ nhớ


CHƯƠ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 tố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

3



Việc chuyển đổi từ số nhị phân sang số thập phân được thực hiện bằng cách
tính tổng các tích giữa các hệ số của số nhị phân với các trọng số 2i tương ứng.
Giả sử ta có số nhị phân như sau: bn bn-1…b1b0B, trong đó bi (i = 0, n ) là các
hệ số của số nhị phân, có thể nhận một trong hai giá trị 0 hoặc 1. Khi đó 2i sẽ là
trọng số tương ứng của hệ số bi. Số nhị phân này được chuyển đổi sang hệ thập
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
3

2

1

0

1

0

1

1

b3

b2

b1


b0

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
1*25+1*24+0*23+0*22+1*21+1*20=32+16+0+0+2+1=51 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

4


Hì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, …
MSB
1

1

0

1

0

1

0

LSB
0

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 tố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
5


F, 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
1100
C

0111
7

1000
8

0010
2

1110 1011
E
B

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:
0011
3

1010
A

1101
D

1111
F

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
A
3
C

5
1010 0011 1100 0101

6


Ta 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 tốn logic bao gồm 4 phép tố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
x
0
0
1
1

y
0
1
0
1


z
0
0
0
1

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
x
0
0
1
1

y
0
1
0
1

z
0
1
1
1

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

7


x
0
0
1
1

y
0
1
0
1

z
0
1
1
0

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 tốn NOT
Phép tốn này chỉ có một tốn hạng. Giả sử y = NOT x
x
0

1

y
1
0

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 tố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
a
0
0
1
1

b
0
1
0
1

y

0
1
1
0

c
0
0
0
1

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

001



 100
101

8




Trong 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
Số nhớ
Số hạng thứ nhất
Số hạng thứ hai
Tổng

Số nhớ
Số hạng thứ nhất
Số hạng thứ hai
Tổng

11
0011
0110
1001

1111
1101
0111
10100

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
a
0

0
1
1

b
0
1
0
1

y
0
1
1
0

c
0
1
0
0

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




101

001
100

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.
9


Ví dụ: thực hiện phép trừ 1010B – 0110B
Số mượn
Số bị trừ
Số trừ
Hiệu

1
1010
0110
0100

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.

10


1.3. Biểu diễn số
Trong các nội dung trên, ta chỉ đề cập đến các số ngun 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ố nhị phân
01011
110100
1010011

Số bù 1
10100
001011
0101100


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ố nhị phân
10011
110100
1010011

Số bù 1
01100
001011
0101100

Số bù 2
01101
001100
0101101

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
- Số có dấu n bit biểu diễn các giá trị từ –(2n-1) đến (2n-1-1)
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


11


- Số bù 2 của 0101B là: 1010B + 1 = 1011B
Do đó, số -5 tương ứng với số nhị phân: 1011B
Ví dụ: số có dấu và khơng dấu 4 bit được cho như trong Bảng 1.1
Bảng 1.1. Số có dấu và không dấu 4 bit
Số nhị phân
0111
0110
0101
0100
0011
0010
0001
0000
1111
1110
1101
1100
1011
1010
1001
1000

Số thập phân (có dấu)
7
6
5
4

3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8

Số thập phân (khơng dấu)
7
6
5
4
3
2
1
0
15
14
13
12
11
10
9
8


Như ta đã biết, trong hệ thập phân, phép trừ có thể được thực hiện thơng qua
phép cộng với số âm, ví dụ như: 14 - 5 có thể thực hiện bằng phép cộng 14 + (-5).
Do đó, trong hệ số nhị phân phép trừ cũng có thể được thực hiện bằng cách cộng
với số bù 2. Sau đây ta xét ví dụ thực hiện phép trừ bằng cách như vậy.
Ví dụ: thực hiện phép trừ 14 – 5
Để thực hiện phép trừ trên trước hết ta phải xác định số bit (n) dùng để biểu
diễn hai số trừ và số bị trừ. Trong trường hợp trên, để biểu diễn được cả hai số 14 và
-5, số bit n=5
Trong hệ nhị phân biểu diễn số có dấu: 14 = 01110B và -5 = 11011B. Do đó,
phép trừ trên tương ứng với 01110B + 11011B

Lưu ý: ta cần phải loại bỏ bit có trọng số 2n (nếu có) để có kết quả đúng.
12


Trong trường hợp trên bit có trọng số 25 là 1, do đó ta cần phải loại bỏ bit
này. Kết quả cuối cùng của phép trừ trên là: 01001B (tương ứng với số 9 trong hệ
thập phân).
Khi thực hiện cộng trừ với số có dấu cần chú ý: nếu kết quả nằm ngồi phạm
vi biểu diễn của số có dấu n bit thì kết quả sai. Để sửa sai ta phải tăng số bit biễu
diễn.
Ví dụ: thực hiện phép tính -4 – 5
Phép tính trên tương ứng với phép cộng -4 + (-5). Để biễu diễn được -4 và -5
trong hệ nhị phân ta cần n=4 bit, -4 = 1100B, -5 = 1011B

Kết quả phép tính là 0111B, tức là +7 thay vì -9 như mong muốn. Ở ví dụ
này, kết quả sai vì -9 nằm ngồi phạm vi biểu diễn của số có dấu 4 bit. Để có kết
quả đúng, ta phải tăng số bit biểu diễn lên 5 bit, -4 = 11100B, -5 = 11011B


Phép tính cho kết quả là 10111B, tức là -9
b. Số thập phân
Để biễu diễn số thập phân trong hệ nhị phân ta cũng dùng dấu chấm tương tự
như trong hệ thập phân.
Ví dụ: 1100.1011B, 100.11B, 10.0101B, …
Cách chuyển đổi các số nhị phân dạng này sang hệ thập phân cũng được thực
hiện như bình thường, các trọng số tương ứng của các số sau dấu chấm có số mũ
âm.
Ví dụ: chuyển số nhị phân 1100.1011B sang hệ thập phân
3
1
b3

2
1
b2

1
0
b1

0
0.
b0

Trong hệ thập phân, số này là:
13

-1
1

b-1

-2
0
b-2

-3 -4
1 1
b-3

b-4


1*23 + 1*22 + 0*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3 + 1*2-4 = 12.6875
Để chuyển một số thập phân trong hệ thập phân sang hệ nhị phân ta thực
hiện các bước sau:
- Phần nguyên: chuyển đổi bình thường như đã mô tả trong phần 1.2
- Phần thập phân: lấy phần thập phân nhân cho 2, ghi nhận lại phần nguyên,
còn phần thập phân tiếp tục nhân cho 2. Lặp lại nhiều lần như vậy cho tới độ chính
xác mà ta mong muốn. Phần thập phân là tập hợp các phần nguyên của phép nhân.

- Phần nguyên 12 tương ứng trong hệ nhị phân là 1100B
- Phần thập phân là 0.6875, để chuyển sang hệ nhị phân ta lấy phần này lần
lượt nhân cho 2
Phép nhân phần thập phân cho 2
0.6875
x2 = 1.375
0.375
x2 = 0.75
0.75

x2 = 1.5
0.5
x2 = 1

Phần nguyên của phép nhân
1 (trọng số lớn nhất)
0
1
1

Do đó, phần thập phân trong hệ nhị phân là: .1011B
Ghép phần nguyên và phần thập phân ta được kết quả chuyển đổi là:
1100.1011B
1.4. Biểu diễn ký tự
Như đã giới thiệu trong phần đầu của chương, tất cả các thông tin trong máy
tính đều được biểu diễn dưới dạng các số 0 và 1. Để biểu diễn một ký tự (chữ cái,
chữ số, dấu câu, …), người ta thường dùng một tổ hợp các bit 0 và 1. Một tập hợp
các cách biểu diễn cho tất cả các ký tự gọi là một bảng mã hay gọi tắt là mã. Một số
bảng mã chuẩn đã được xây dựng để dùng trong máy tính hoặc trong truyền thơng
như: ASCII, Unicode, EBCDIC, … Sau đây là một số mã được sử dụng phổ biến
trong máy tính hiện nay.
a. Mã ASCII
Mã ASCII được tổ chức mã chuẩn của Mỹ xây dựng để dùng trong trao đổi
thông tin. Mã ASCII sử dụng một tổ hợp 7 bit nhị phân để biểu diễn một ký tự, vì

14


vậy mã này biểu diễn được tối đa 128 (27) ký tự. Cách biểu diễn các ký tự được mô
tả như Bảng 1.2.

Bảng 1.2. Bảng mã ASCII

Các ký tự có giá trị từ 0000000 đến 0011111 và 1111111 là các ký tự không
in được, nghĩa là không thể hiện thị trên màn hình hoặc bản in.
Ví dụ: từ Bảng 1.2, ta thấy mã ASCII của một số ký tự như sau:
- Chữ cái “a”: 1100001
- Chữ cái “B”: 1000010
- Chữ số “6”: 0110110
- Dấu chấm than (!): 0100001
b. Mã Unicode
Như đã đề cập ở phần trên, bảng mã ASCII có thể biểu diễn được tối đa 128
ký tự, nghĩa là có thể biễu diễn được bộ chữ Latinh, các dấu câu và một số ký tự đặc
biệt. Tuy nhiên, khả năng biểu diễn như vậy vẫn chưa đầy đủ do trên thế giới cịn rất
nhiều ngơn ngữ với nhiều nhiều mẫu chữ khác nhau như tiếng Việt có thêm các chữ
“ă”, “â”, “ê”, “ư”, “ơ”, “ừ”, … Do đó, một số công ty công nghệ lớn như Microsoft,
IBM, Google, Apple, Yahoo, Oracle … đã thống nhất đưa ra một bảng mã ký tự
mới có khả năng biểu diễn được tất cả các ngơn ngữ trên thế giới, đó là

15


Unicode. Mã Unicode biểu diễn ký tự bằng một tổ hợp 16 bit, do đó, mã này có khả
năng biểu diễn được 216 = 65536 ký tự. Với số lượng như vậy, mã Unicode có khả
năng biểu diễn gần như tất cả các ngôn ngữ khác nhau trên thế giới, kể cả các ngơn
ngữ sử dụng ký tự tượng hình phức tạp như Tiếng Trung Quốc, Tiếng Thái, …
CÂU HỎI ÔN TẬP CHƯƠNG 1
1. Chuyển các số sau sang số nhị phân: 30; 52; 87; 100; 225; 65,625; 90,84375
2. Chuyển các số sau sang số thập lục phân: 90; 125; 241; 512; 1023
3. Biểu diễn số 8 bit bù 2 của các số sau: 79; -49; -125; -100; 115; -128
4. Cho chuỗi ký tự sau: “DH Pham Van Dong”, hãy biểu diễn chuỗi ký tự này bằng

mã ASCII.
5. Thực hiện các phép trừ sau bằng cách thực hiện phép cộng với số bù 2
a. 10 – 15

b. 6 – 30

c. 63 – 31

d. 7 – 50

16


CHƯƠNG 2. GIỚI THIỆU CÁC HỆ MÁY TÍNH
Ngày nay, máy tính đã trở nên quá quen thuộc với chúng ta. Chúng được sử
dụng rộng rãi cho nhiều mục đích, trong nhiều lĩnh vực khác nhau, từ y học, giáo
dục, kinh tế đến chính trị, kỹ thuật, an ninh, quốc phịng, … Để có được hình dáng
nhỏ gọn, tiện lợi và hữu ích như ngày nay, máy tính đã trải qua quá trình phát triển
lâu dài. Trong chương này chúng ta sẽ tìm hiểu về lịch sử các thế hệ máy tính, các
thành phần cơ bản nhất của một chiếc máy tính qua các thời kỳ và một số cách phân
loại máy tính. Phần cuối cùng sẽ trình bày về chiếc máy tính theo kiến trúc Von
Neumann – Turring.
2.1. Các thế hệ máy tính
Trong phần này chúng ta chia sự phát triển của máy tính thành những giai
đoạn nhỏ, gọi là thế hệ. Mỗi thế hệ được đặc trưng bằng công nghệ dùng để xây
dựng nên chiếc máy tính.
2.1.1. Thế hệ zero
Đây là thế hệ các máy tính cơ khí, bắt đầu từ năm 1642, khi nhà toán học
người Pháp, Blaise Pascal, hồn thành việc xây dựng một cỗ máy tính tốn có khả
năng thực hiện được phép cộng có nhớ và phép trừ. Đây là thiết bị hoàn toàn bằng

cơ khí sử dụng các bánh răng và được cung cấp lực nhờ một cánh tay quay. Khoảng
30 năm sau đó, chiếc máy tính tốn tiếp theo mới ra đời, đó là phát minh của nhà
toán học người Đức, Leibniz. Chiếc máy này có nhiều tính năng hơn chiếc máy của
Pascal, ngồi khả năng cộng, trừ, nó cịn có thể thực hiện được cả phép nhân và
chia. Nhưng cả hai có một điểm chung nhất, đó là khơng có khả năng lập trình,
chúng được thực hiện hồn tồn thủ cơng.
Chiếc máy tính tiếp theo được phát minh vào năm 1822, khi giáo sư toán
trường đại học Cambridge, Charles Babbage, xây dựng một máy có khả năng tính
các phép cộng, trừ dựa trên thuật tốn sai phân nên cịn được gọi là máy sai phân.
Bên cạnh đó, năm 1833 ơng cũng bắt đầu nghiên cứu và xây dựng một chiếc máy
khác, gọi là máy phân tích, có nhiều ưu điểm hơn so với máy sai phân. Máy phân
tích có khả năng thực hiện được bất kỳ một phép tính tốn học nào. Cấu tạo của
máy phân tích cũng bao gồm nhiều thành phần giống như một chiếc máy tính hiện

17


đại như: đơn vị xử lý toán học, bộ nhớ, các thiết bị xuất và nhập dữ liệu. Máy phân
tích có khả năng thực hiện được một loạt các phép tính dựa trên một kế hoạch cho
trước, cịn được gọi là chương trình. Dữ liệu được đưa vào máy bằng các thẻ đục lỗ,
mỗi chương trình có dữ liệu khác nhau, tương ứng với các thẻ đục lỗ khác nhau.
Công việc viết kế hoạch cho máy còn được gọi là lập trình. Babbage đã thuê một
người tên là Ada lập trình cho mình. Do đó, Ada được xem là lập trình viên đầu tiên
trên thế giới. Tên của Ada sau này được đặt cho một ngơn ngữ lập trình hiện đại.
Máy sai phân và máy phân tích đều là các máy cơ, vì vậy, để thực hiện các phép
tính lớn, Babbage cần rất nhiều các bánh răng được chế tạo với độ chính xác nhất
định. Tuy nhiên, cơng nghệ ở thế kỷ 19 không đủ khả năng đáp ứng được điều kiện
này. Mặc dù không thành công, nhưng những ý tưởng của Babbage đã vượt thời
gian, thậm chí ngày nay hầu hết các máy tính đều có cấu trúc tương tự như máy
phân tích. Do đó, ơng được xem như cha đẻ của máy tính.

2.1.2. Thế hệ đầu tiên (1945 – 1953)
Đây là thế hệ các máy tính sử dụng đèn chân không. Vào năm 1930, một sinh
viên kỹ thuật người Đức, tên là Konrad Zuse đã tìm hiểu lại thiết kế của Babbage và
đã có ý tưởng cải tiến thiết kế này bằng cách thay các bánh răng bằng các rơle.
Chiếc máy tính của Zuse ra đời có tên là Z1. Z1 cũng có khả năng lập trình được, có
bộ nhớ, đơn vị tính tốn, đơn vị điều khiển. Các cơng trình của Zuse sau đó khơng
cịn được phát triển do bị phá hủy trong chiến tranh, nhưng Zuse vẫn được xem là
một trong những người đi tiên phong trong việc chuyển đổi chiếc máy tính từ cơ
sang điện.
Chiếc máy tính được xem là hồn tồn bằng điện tử đầu tiên được John
Mauchley và J.Presper Eckert chế tạo và được giới thiệu vào năm 1946. Chiếc máy này
có tên là ENIAC, sử dụng 17.648 bóng đèn chân khơng, chiếm diện tích khoảng 167m2
(1800 ft2), nặng khoảng 30 tấn và tiêu thụ cơng suất khoảng 174KW. ENIAC có 20
thanh ghi, mỗi thanh ghi có khả năng lưu trữ một số thập phân 10 chữ số.

Các máy tính đèn chân khơng sau đó tiếp tục ra đời dựa trên kiến thức của
Mauchley và Eckert là: EDSAC (năm 1949) được thiết kế tại đại học Cambridge,
ILLIAC ở đại học Illinois, WEIZAC tại viện Weizmann ở Israel.

18


Mauchley và Eckert sau đó lập cơng ty riêng và tiếp tục phát triển chiếc máy
tính tiếp theo là EDVAC. Cơng ty máy tính Mauchley – Eckert là tiền thân của công
ty Univac và hiện tại là Unisys. Cùng thời gian này, một người trong nhóm dự án
ENIAC, John von Neumann đã tách ra xây dựng chiếc máy tính của riêng mình,
mang tên IAS. Máy của Neumann có 5 phần cơ bản: bộ nhớ, đơn vị số học, đơn vị
điều khiển, thiết bị nhập và thiết bị xuất. IAS là chiếc máy tính có khả năng lưu trữ
chương trình đầu tiên, là cơ sở cho các máy tính số hiện nay.
Năm 1953, IBM cũng sản xuất ra chiếc máy tính đầu tiên của cơng ty, đó là

701. Các năm sau đó, IBM tiếp tục cải tiến và cho ra đời các dịng sản phẩm có bộ
nhớ lớn hơn và thực hiện được nhiều chức năng hơn, đó là 704 (năm 1956) và 709
(năm 1958).
2.1.3. Thế hệ thứ hai (1954 – 1965)
Đây là thế hệ các máy tính sử dụng transistor. Năm 1948, ba nhà nghiên cứu
tại phỏng thí nghiệm Bell (Bell Lab), John Bardeen, Walter Brattain và William
Shockley đã phát minh ra transistor. Đây là một công nghệ mới mang tính cách
mạng trong ngành cơng nghiệp máy tính nói riêng và điện tử nói chung. Vì
transistor tiêu thụ ít năng lượng hơn, nhỏ hơn rất nhiều và hoạt động tin cậy hơn so
với đèn chân khơng, do đó, mạch máy tính cũng trở nên nhỏ hơn và hoạt động chính
xác hơn. Mặc dù vậy, máy tính trong thời kỳ này vẫn khá đắt và kềnh càng. Chỉ các
trường đại học, chính phủ hoặc các cơng ty lớn mới có đủ khả năng mua máy tính.
Một số cơng ty lớn, nổi bật trong nền cơng nghiệp máy tính thời kỳ này là: IBM,
DEC (Digital Equipment Corporation) và Univac (hiện nay là Unisys).
Một số máy tính trong thời kỳ này là PDP-1, PDP-8 của công ty DEC, 7090,
7094 và 1401 của IBM, 6600 của CDC. Các dòng máy của DEC rẻ hơn nhiều so với
của IBM do tốc độ của các máy này thấp hơn rất nhiều so với các máy IBM. Các
dòng 7090, 7094 là các phiên bản cải tiến của thế hệ máy tính sử dụng đèn chân
khơng 709, trong khi 1401 là dòng máy được IBM phát triển mới, nhỏ gọn, giá rẻ.
Một khái niệm lần đầu tiên được sử dụng cho máy CDC 6600, đó là xử lý song
song. Trong đơn vị xử lý trung tâm có các thành phần chun thực hiện các phép
tính tốn số học, tiết kiệm thời gian để bộ xử lý trung tâm thực hiện các thao tác

19


khác như quản lý xuất, nhập, … Do đó, máy CDC6600, sản xuất năm 1964, có tốc
độ nhanh hơn cả máy IBM 7094. Đây cũng là một cột mốc quan trọng trong ngành
cơng nghiệp máy tính.
2.1.4. Thế hệ thứ ba (1965 – 1980)

Đây là thế hệ các máy tính sử dụng mạch tích hợp. Mạch tích hợp (cịn gọi là
IC) được nghiên cứu và chế tạo từ những năm 1950. Ý tưởng về mạch tích hợp
được đề xuất lần đầu tiên bởi Jack Kilby, khi đó mạch được làm bằng Germani. Sau
đó, mạch tích hợp gặp một số vấn đề trong quá trình sản xuất và hoạt động nên
Robert Noyce (đồng sáng lập các công ty Fairchild Semiconductor năm 1957 và
Intel năm 1968) đã đề xuất sử dụng Silic để chế tạo các mạch tích hợp. Kỹ thuật này
được sử dụng cho đến ngày nay.
Một mạch tích hợp cho phép ghép nhiều transistor trên một mạch đơn và
đóng gói lại thành một linh kiện duy nhất gọi là chip. Vì vậy, mạch tích hợp có kích
thước nhỏ hơn, tốc độ hoạt động cao hơn so với mạch ghép các transistor riêng lẻ.
Mạch tích hợp ra đời mở ra thời kỳ phát triển bùng nổ của máy tính. Các máy tính
thời kỳ này trở nên nhỏ gọn hơn, tốc độ cao hơn và đặc biệt là tiêu thụ năng lượng ít
hơn. Trong giai đoạn này, IBM đã giới thiệu một thế hệ máy tính hồn tồn mới, đó
là các máy tính thuộc họ System 360. Điểm nổi bật của các máy tính thuộc họ này
là chúng hồn tồn tương thích với nhau, nghĩa là các máy trong họ sử dụng cùng
một hợp ngữ, do đó, khơng cần phải viết lại chương trình khi nâng cấp một máy nhỏ
lên máy lớn hơn. Cùng thế hệ này cịn có các máy tính PDP-8 và PDP-11 của DEC
và Cray-1 của Cray Research Corporation, một cơng ty máy tính do Seymour Cray
sáng lập. Seymour Cray là một kỹ sư của cơng ty CDC, thuộc nhóm xây dựng máy
tính CDC 6600. Cray-1 có khả năng thực hiện trên 160 triệu lệnh trong một giây và
hỗ trợ bộ nhớ 8 Megabytes
2.1.5. Thế hệ thứ tư (1980 đến nay)
Đây là thế hệ các máy tính sử dụng mạch tích hợp cỡ lớn VLSI. Theo thời
gian, kỹ thuật chế tạo vi mạch ngày càng được cải tiến, do đó mức độ tích hợp của
vi mạch ngày càng lớn. Các vi mạch có mức độ tích hợp nhỏ (SSI) chứa từ 10 đến
100 transistor trên một chip, các vi mạch có mức độ tích hợp trung bình (MSI) chứa

20



từ 100 đến 1000 transistor trên một chip, các vi mạch tích hợp lớn (LSI) chứa từ
1000 đến 10000 transistor trên một chip, các vi mạch tích hợp siêu lớn (VLSI) chứa
trên 10000 transistor trên một chip. Mức cuối cùng (VLSI) đánh dấu sự khởi đầu
của thế hệ máy tính thứ tư.
Với vi mạch VLSI, Intel đã chế tạo bộ vi xử lý đầu tiên trên thế giới vào năm
1971, đó là 4004. Intel 4004 là vi xử lý 4 bit, chạy ở tần số 108KHz. Cùng thời điểm
này, Intel cũng giới thiệu bộ nhớ truy cập ngẫu nhiên (RAM) với dung lượng của
một chip nhớ là 4Kilobit (Kb).
Công nghệ VLSI ngày càng phổ biến, với mật độ tích hợp ngày càng cao làm
cho máy tính ngày càng nhỏ và rẻ. Nếu như ở các thế hệ trước, chỉ có một số trường
đại học, doanh nghiệp lớn hoặc tổ chức chính phủ mới trang bị được máy tính thì
đến giai đoạn này, các cá nhân đã có thể mua được máy tính. Năm 1981, IBM đã
giới thiệu chiếc máy tính cá nhân (PC) đầu tiên, khởi đầu thời đại máy tính cá nhân.
Hiện nay máy tính đã được sử dụng rộng rãi trên tồn thế giới với nhiều mục
đích khác nhau. Do đó, các cơng ty cũng đã sản xuất ra rất nhiều loại máy tính phù
hợp với từng yêu cầu. Ví dụ nếu một cá nhân sẽ trang bị cho mình một máy tính để
bàn (desktop) hoặc laptop nhỏ gọn, phục vụ cho các nhu cầu đơn giản trong cơng
việc và cuộc sống, thì một ngân hàng phải trang bị một máy tính cỡ lớn (thường gọi
là mainframe), các máy chủ phải là các siêu máy tính có tốc độ rất cao, xử lý một
khối lượng lớn công việc, phục vụ cho nhiều máy nhỏ khác.
2.2. Chức năng máy tính
Một cách tổng qt, một máy tính có bốn chức năng cơ bản sau:
+ Chuyển dữ liệu: máy tính phải có chức năng chuyển hoặc trao đổi dữ liệu
với thế giới bên ngồi. Q trình máy tính truyền hoặc nhận dữ liệu cịn gọi là q
trình vào ra và các thiết bị phục vụ cho quá trình này gọi là các thiết bị ngoại vi.
Một số thiết bị ngoại vi phục vụ cho quá trình nhận (vào) dữ liệu như: chuột, bàn
phím, micro … Một số thiết bị ngoại vi phục vụ cho quá trình truyền (ra) dữ liệu
như: màn hình, máy in, loa, … Khoảng cách di chuyển dữ liệu có thể rất xa (như
giao tiếp với máy chủ thơng qua mạng internet) hoặc cũng có thể rất gần (như giao
tiếp với USB, bàn phím, chuột, …).


21


+ Xử lý dữ liệu: đây là chức năng cơ bản qua các thế hệ máy tính từ trước tới
nay. Có thế nói đây là chức năng trung gian giữa nhập dữ liệu và xuất hoặc lưu trữ
dữ liệu, tức là sau khi nhận dữ liệu, máy tính phải có bước xử lý dữ liệu để có các
dạng dữ liệu phù hợp trước khi xuất ra các thiết bị ngoại vi hoặc lưu trữ vào bộ nhớ.
Một số thành phần bên trong giúp máy tính thực hiện chức năng này, trong đó, đơn
vị xử lý trung tâm (cịn được gọi là CPU) là thành phần chính. Các thành phần này
hầu hết đều ở mức thấp, tức là mức mà người sử dụng máy tính khơng giao tiếp trực
tiếp.
+ Lưu trữ dữ liệu: chức năng này giúp máy tính ghi nhớ những cơng việc đã
làm. Có hai dạng lưu trữ dữ liệu: lưu trữ dài lâu (như việc lưu trữ các tập tin trong
máy tính) và lưu trữ dữ liệu tạm thời (các dữ liệu này thường được tạo ra trong q
trình hoạt động, chạy các ứng dụng của máy tính). Các thiết bị lưu trữ dữ liệu dài
lâu như: ổ đĩa cứng, USB, thẻ nhớ, … Các thiết bị lưu trữ tạm thời như: ổ đĩa cứng.
RAM, bộ nhớ cache, …
+ Điều khiển: chức năng này dùng để điều khiển ba chức năng trên hoạt
động một cách nhịp nhàng, đúng theo mong muốn của người sử dụng. Thành phần
chính giúp máy tính thực hiện chức năng này cũng là bộ xử lý trung tâm.
2.3. Cấu trúc và tổ chức máy tính
Dựa trên chức năng cơ bản, tổ chức của một máy tính hiện đại cơ bản bao
gồm các thành phần như hình 2.1

Hình 2.1. Tổ chức cơ bản của một máy tính hiện đại
Tổ chức cơ bản của một máy tính hiện đại gần giống với máy phân tích,
được xây dựng ở thế kỷ 19. Tổ chức này bao gồm ba thành phần cơ bản: đơn vị xử
lý trung tâm, bộ nhớ và các ngoại vi xuất/nhập. Các thành phần này được kết nối


22


×