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

CẤU TRÚC máy TÍNH và GHÉP nối

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 (5.78 MB, 187 trang )

TRẦN MẠNH CƯỜNG






















HÀ NỘI 2012


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page i

MỤC LỤC

LỜI NÓI ĐẦU






MỤC LỤC
i

Bảng viết tắt
iv

CHƯƠNG 1 GIỚI THIỆU CHUNG
1



1.1.
Tổng quan về cấu trúc máy tính
1
1.2.
Lịch sử phát triển của máy tính
1
1.3.
Mô hình máy tính Von Neumann
3
1.4.
Mô hình hệ thống bus
……………………………………………… 4
1.5.
Mức máy tính
…………………………………………………………6

1.6.
Hệ thống máy tính điển hình
8




TỔNG KẾT CHƯƠNG
10




CHƯƠNG 2 BIỂU DIỄN DỮ LIỆU
11



2.1.
Giới thiệu chung
11
2.2.
Số dấu phẩy tĩnh
11
2.3.
Số dấu phẩy động
19
2.4.
Mã ký tự
23





TỔNG KẾT CHƯƠNG
26




CHƯƠNG 3 CÁC PHÉP TOÁN SỐ HỌC
28



3.1.
Tổng quan
28
3.2.
Phép cộng và trừ với số dấu phẩy tĩnh
28
3.3.
Phép nhân và chia với số dấu phẩy tĩnh
33
3.4.
Phép toán với số dấu phẩy động
36





TỔNG KẾT CHƯƠNG
38




CHƯƠNG 4 NGÔN NGỮ MÁY VÀ HỢP NGỮ
39



4.1.
Các thành phần cứng của cấu trúc tập lệnh
39
4.1.1.
Nhắc lại về mô hình cấu trúc bus
39
4.1.2.
Bộ nhớ
41
4.1.3.
CPU
42
4.2.
Máy tính ARC
46
4.2.1.
Bộ nhớ của ARC
46

4.2.2.
Tập lệnh của ARC
47
4.2.3.
Cú pháp lệnh của ARC
48


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page ii

4.2.4.
Cấu trúc ngôn ngữ máy của ARC
49
4.2.5.
Cấu trúc dữ liệu của ARC
51
4.2.6.
Mô tả các lệnh của ARC
53
4.3.
Toán tử giả
55
4.4.
Ví dụ về một chương trình hợp ngữ
57
4.5.
Truy cập dữ liệu bộ nhớ - Các chế độ địa chỉ
59
4.6.
Các mối liên kết chương trình con và stack

60
4.7.
Xuất nhập dữ liệu trong hợp ngữ
64




TỔNG KẾT CHƯƠNG
66




CHƯƠNG 5 NGÔN NGỮ BẬC CAO VÀ MÁY TÍNH
67



5.1.
Quá trình biên dịch
67
5.1.1.
Các bước thực hiện quá trình biên dịch
67
5.1.2.
Các đặc trưng của quá trình biên dịch
68
5.1.3.
Biên dịch các nhóm lệnh sang hợp ngữ

68
5.1.4.
Nhóm lệnh dịch chuyển dữ liệu
71
5.1.5.
Các lệnh toán học
72
5.1.6.
Điều khiển luồng chương trình
73
5.2.
Quá trình chuyển sang ngôn ngữ máy
76
5.3.
Liên kết chương trình và nạp chương trình
82
5.3.1.
Liên kết chương trình
82
5.3.2.
Nạp chương trình
84
5.4.
Macro
85




TỔNG KẾT CHƯƠNG

86




CHƯƠNG 6 ĐIỀU KHIỂN LUỒNG DỮ LIỆU
87



6.1.
Cơ sở vi kiến trúc
87
6.2.
Kiến trúc vi mẫu của máy tính ARC
89
6.2.1.
Luồng dữ liệu
90
6.2.2.
Khối điều khiển - Control Section
………………………………………………….96
6.2.3.
Đồng bộ hoạt động
…………………………………………………………………… 99
6.2.4.
Bẫy và ngắt
100
6.2.5.
Lập trình nano

102
6.3.
Bộ điều khiển phần cứng
103




TỔNG KẾT CHƯƠNG
108




CHƯƠNG 7 BỘ NHỚ
109



7.1.
Phân cấp bộ nhớ
109
7.2.
Bộ nhớ RAM
110


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page iii

7.3.

Tổ chức bộ nhớ
112
7.4.
Modul nhớ thương mại
117
7.5.
Bộ nhớ ROM
118
7.6.
Bộ nhớ Cache
120
7.6.1.
Bộ nhớ Cache ánh xạ thông thường
121
7.6.2.
Ánh xạ trực tiếp bộ nhớ Cache
125
7.6.3.
Hoạt động của Cache
126
7.7.
Bộ nhớ ảo
128
7.7.1.
Overlay
128
7.7.2.
Phân trang
130
7.7.3.

Phân đoạn
133




TỔNG KẾT CHƯƠNG
134




CHƯƠNG 8 THIẾT BỊ NGOẠI VI VÀ GHÉP NỐI
135



8.1.
Thiết bị lưu trữ
136
8.1.1.
Ổ đĩa từ tính
136
8.1.2.
Băng từ
142
8.1.3.
Ổ đĩa quang
143
8.2.

Thiết bị nhập dữ liệu
145
8.2.1.
Bàn phím
145
8.2.2.
Bảng nhập liệu bit pad
146
8.2.3.
Chuột và trackball
147
8.3.
Thiết bị hiển thị dữ liệu
148
8.4.
Kết nối truyền thông và ghép nối máy tính
149
8.4.1.
Kết nối bên trong máy tính
149
8.4.2.
Một số chuẩn bus trong máy tính
……………………………………………………156
8.4.3.
Kết nối máy tính với các thiết bị bên ngoài
167
8.5.
Lỗi truyền thông và các phương pháp phát hiện lỗi
171
8.5.1.

Tỉ lệ bit lỗi
172
8.5.2.
Phát hiện lỗi và sửa lỗi single-bit-error
172
8.5.3.
Kiểm tra dự phòng theo chiều dọc VRC
175
8.5.4.
Kiểm tra mã vòng CRC
175




TỔNG KẾT CHƯƠNG
178




Tài liệu tham khảo
179






BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page iv


BẢNG VIẾT TẮT
A



AGP
Accelerated Graphics Port - Chuẩn kết nối đồ họa - 163

ALU
Arithmetic and Logic Unit - Khối số học và logic - 3, 40, 42, 44, 88,
90, 92, 97

ARC
A RISC Computer - Máy tính trên nền tảng RISC - 46, 47, 48, 77, 89

ASCII
Standard Code for Information Interchange - Bảng mã ký tự theo
chuẩn thông tin chung - 23
B



BCD
Binary Coded Decimal - Số thập phân mã hóa bởi số nhị phân - 18

BER
Bit error rate - Tỉ lệ bit lỗi - 172

BINARY

Số nhị phân -13
C



CBL
Control Branch Logic - Khối điều khiển rẽ nhánh - 96

CD
Compact disc - 143

CD ROM
ROM bằng đĩa CD - 143

COND
Condition - Trường điều kiện nhảy trong MIR - 98

CPU
Central processing unit - Bộ vi xử lý trung tâm - 3, 9, 40, 42, 46,
120,130

CRC
Cyclic redundancy check - Kiểm tra mã vòng - 175

CS
Chip select - Tín hiệu chọn chip - 112

CSAI
Control Store address increment - Bộ đếm tăng địa chỉ vi lệnh - 98
D




DLL
Dynamic Link Library - Thư viện liên kết động - 84

DRAM
Dynamic RAM - Ram động -111

DVD
Digital Versatile Disc - Đĩa DVD - 144
E



EBCDIC
Extended Binary Coded Decimal Interchange Code - Mã ASCII mở
rộng - 24

EDSAC
máy tính do mỹ phát minh 1947 -3

EDVAC
Máy tính do Mỹ phát minh - 3

EEPROM
Electrically Erasable PROM - ROM có thể ghi/xóa bằng điện - 119

EISA
Extended ISA - Chuẩn ISA mở rộng - 161



BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page v


ENIAC
Electronic Numerical Intergrator And Computer - Máy tính do Mỹ
phát minh cùng thời máy tính ENIGMA - 3

ENIGMA
Máy tính do Đức phát minh vào cuối thế chiến I - 2
H



HD
Hamming distance - Khoảng cách Hamming - 172

HDL
Hardware description language - Ngôn ngữ mô tả phần cứng - 103

HECXA
Số thập lục phân - 13
I



INT
Interupt - Ngắt máy tính - 100


IR
Instruction Register - Thanh chi con trỏ lệnh - 43, 47, 96

ISA
Intruction Set Architecture - Kiến trúc tập lệnh - 39, 68, 87
Industry Standard Architecture - Chuẩn kết nối công nghiệp -156
L



LSB
Least significant bit - Số có trọng số nhỏ nhất - 14

LUT
Lookup table - Khối thực hiện lệnh 1 bit của ALU - 94
M



MCA
Micro Channel Architecture - Chuẩn kết nối do IBM phát triển -
159

MIR
Microprogram instruction register - Thanh ghi vi lệnh - 96, 98

MMU
Memory managemet unit - Khối quản lý bộ nhớ - 84

MSB

Most significant bitt - Số có trọng số lớn nhất - 14

MUX
Khối dồn kênh - 96, 98
N



NaN
Not a number - Số bất định - 23
O



OCTAL
Số bát phân- 13
P



PC
Program Counter - Bộ đếm chương trình - 43

PCI
Peripheral Component Interconection -Chuẩn kết nối ngoại vi phát
triển năm 1993 - 161

PLA
Programmable Logic Array - Vi mạch lập trình - 30


PROM
Programmable ROM - Bộ nhớ chỉ đọc ghi được 1 lần -119

PSR
Processor Status Register - Thanh ghi trạng thái của CPU - 47


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page vi

R



RAM
Random Access Memory - Bộ nhớ truy cập ngẫu nhiên - 110

RD
Read - Đọc - 98

RISC
Reduced Instructions Set Computer - Tập lệnh máy tính đơn giản
hóa - 46

ROM
Read Only Memory - Bộ nhớ chỉ đọc - 118
S



SPARC

Scalable Processoer Architecture - Máy tính do Sun Microsystem
phát triển - 46

SRAM
Static RAM - Ram tĩnh - 111
U



USB
Univeral Serial Bus - Chuẩn kết nối ngoại vi hiện đại - 169

UVPROM
Ultraviolet PROM - ROM có thể ghi dữ liệu bằng tia cực tím - 119
V



VHSIC
Very High Speed Integrated Circuit -Mạch tốc độ cao thể hiện bởi
HDL - 103

VL
VESA Local - Video Electronic Standard Association - Chuẩn do
hiệp hội VESA phát triển - 161

VRC
Vertical Redundancy Checking - Kiểm tra lỗi theo chiều dọc - 175
W




WORM
Write One Read Many - Đĩa CD ghi dữ liệu 1 lần -144

WR
Write - Ghi - 98



BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page i

LỜI NÓI ĐẦU
Ngày nay, máy tính điện tử là một công cụ không thể thiếu được trong
cuộc sống của con người. Sự hiện diện của nó có thể thấy được ở mọi lĩnh vực
như khoa học kỹ thuật, giải trí, học tập,
Mặc dù đã có rất nhiều tài liệu giới thiệu về máy tính nhưng chúng
thường có nhược điểm là chỉ đề cập tới các thành phần cơ bản của máy tính.
Các tài liệu này ít hoặc không đề cập tới cách tổ chức cũng như hoạt động của
máy tính từ các mức đơn giản đến phức tạp. Bài giảng này được biên soạn để
đáp ứng nhu cầu cung cấp kiến thức cơ bản về máy tính dành cho sinh viên
Khoa Điện – Điện tử Trường Đại học Giao thông Vận tải với thời lượng 3 tín
chỉ. Tài liệu này cũng có thể được sử dụng làm tài liệu tham khảo dành cho các
sinh viên các ngành khác có nhu cầu tìm hiểu về máy tính. Nội dung của cuốn
Bài giảng bao gồm 8 chương
Chương 1: Các khái niệm cơ bản về máy tính
Chương 2 : Cung cấp các phương pháp biểu diễn dữ liệu trong máy tính
Chương 3 : Các phương pháp thực hiện các phép toán trong máy tính
Chương 4 : Ngôn ngữ cấp thấp nhất của máy tính là hợp ngữ
Chương 5 : Ngôn ngữ bậc cao và các phương pháp chuyển ngôn ngữ bậc cao

thành ngôn ngữ máy
Chương 6 : Tổ chức vi chương trình bên trong của CPU máy tính
Chương 7 :Các loại bộ nhớ bên trong máy tính
Chương 8 : Các thiết bị ngoại vi và các vấn đề khi thực hiện ghép nối ngoại vi
Để có được cuốn Bài giảng này, tác giả xin cám ơn TS. Nguyễn Thanh
Hải đã nhiệt tình góp ý cũng như đã tạo điều kiện về mặt thời gian cũng như tạo
“sức ép” để tác giả hoàn thành.
Vì thời gian hoàn thành cuốn Bài giảng có hạn nên không tránh khỏi sai
sót. Mọi lời gop ý, nhận xét hay đề xuất bổ xung nhằm hoàn thiện Bài giảng,
xin bạn đọc gửi về Bộ môn Kỹ thuật điện tử, Khoa Điện – Điện tử, Trường Đại
học Giao thông vận tải
Hà nội 03/2012
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 1

CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1. Tổng quan về cấu trúc máy tính
Cấu trúc máy tính là một mảng kiến thức nghiên cứu về cách xử lý của một hệ
thống máy tính dưới cách nhìn của một lập trình viên. Cách nhìn này thực tế
cũng có nhiều khía cạnh, ví dụ như máy tính có độ rộng dữ liệu khác nhau sẽ có
cấu trúc phần cứng và hoạt động khác nhau, hoặc máy tính có cấu trúc phần
cứng khác nhau sẽ hỗ trợ các phép toán khác nhau bao gồm các phép toán cộng,
trừ, nhân, chia, khả năng hỗ trợ các chương trình con,
Trong cấu trúc máy tính xuất hiện khái niệm “mức máy”. Ý tưởng cơ bản của
nó là trong mỗi một máy tính có nhiều mức khác nhau, từ mức độ cao nhất
(người sử dụng có thể chạy chương trình, sử dụng máy tính ) cho đến mức thấp
nhất (máy tính chỉ là tập hợp các phần tử là transistor và các dây nối ). Giữa
mức máy cao đến thấp còn có các mức máy trung gian. Trước khi thảo luận về

các mức của máy tính, chúng ta xem xét lịch sử phát triển của máy tính để có
được một quan điểm về cách xây dựng một máy tính

1.2. Lịch sử phát triển của máy tính
Các thiết bị cơ khí được sử dụng để điều khiển các thiết bị phức hợp đã xuất
hiện ít nhất từ những năm 1500. Vào thời điểm đó, người ta sử dụng trục quay
cố định để làm những hộp nhạc. Và hộp nhạc đó chỉ có thể hoạt động đơn giản
là lặp đi lặp lại một giai điệu nhất định
Blaisa Pascal (1623 - 1662) đã phát triển một máy tính toán cơ khí để giúp
người cha trong công việc tính thuế. Máy tính Pascal (Pascaline) bao gồm 8 con
số được kết nối trên một trống xoay. Một số sẽ tăng 1 giá trị (xoay một góc nhất
định) khi số thấp hơn quay đủ một vòng.Một số máy tính Pascal khác được ông
xây dựng năm 1642 vẫn còn đến tận ngày nay.
Đến những năm 1800, một người đã phát triển các thành phần cơ khí của máy
tính Pascal thành một máy mà chúng ta nhận thấy rằng đó là thành phần cơ bản
của một máy tính số. Người đó là Charles Babbage
Charles Babbage được coi là “ông nội” của máy tính hơn là cha đẻ của máy
tính, bởi vì ông chưa bao giờ xây dựng một máy tính mà ông thiết kế. Babbage
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 2






Hình 1.1. Máy tính Pascal
sống tại nước Anh, tại thời điểm đó, người ta thường sử dụng bàn tính để tính
toán. Để tránh việc tính toán có nhiều lỗi, Babbage đã tạo ra một máy tính hoạt

động bằng cách quay các bánh răng. Máy của ông thậm chí còn có khả năng tạo
ra những đĩa dữ liệu có thể sử dụng ngay trong máy in, do đó tránh được lỗi do
sắp chữ trong khi thiết kế bản in. Máy tính của Babbage đã có chức năng đọc dữ
liệu, lưu trữ và biểu diễn dữ liệu. Các chức năng cơ bản của nó gần giống với
các chức năng của máy tính hiện đại. Sự thành công của các máy tính Babbage
đã giúp ông giành được sự hỗ trợ của chính phủ trong việc thiết kế những máy
phân tích cỡ lớn, những máy có ý nghĩa rất lớn trong việc lập trình sử dụng các
thẻ đục lỗ theo mô hình Jacquard
Những máy phân tích của Babbage đã thiết kế nhưng đã không được xây dựng
bởi Babbage vì tại thời điểm đó, những máy cơ khí không đạt được độ chính
xác theo thiết kế. Một phiên bản khác của máy tính Babbage cuối cùng cũng đã
được làm ra tại Bảo tàng khoa học London năm 1991, và tồn tại cho đến tận
ngày nay
Trải qua hàng thế kỷ cho đến Thế chiến thứ II, xuất hiện một động lực lớn cho
việc phát triển máy tính. Tại Anh, tàu ngầm của Đức đã bị thiệt hại nặng nề
trong khi vận chuyển. Chiếc tầu ngầm đã nhận và giải mã các tín hiệu từ các tầu
khác của Đức và đã bị điều khiển sai. Việc mã hóa tín hiệu của Đức được tạo ra
bằng cách sử dụng một đoạn mã được tạo ra bởi một chiếc máy do Siemens AG
tạo ra dưới cái tên ENIGMA
Quá trình tạo ra các mã thông tin đã được biết đến từ lâu, thậm chí Tổng thống
Hoa Kỳ Thomas Jefferson (1743 - 1826) đã thiết kế một máy được coi là tiền
thân của ENIGMA, mặc dù ông đã không chế tạo nó. Quá trình giải mã diễn ra
phức tạp hơn rất nhiều. Nó là động lực để Alan Turning (1912 - 1954) và một số
nhà khoa học nước Anh khác tạo ra máy phá mã. Trong suốt Thế chiến II,
Turning là người giải mã hàng đầu ở Anh và là một trong những người đã biến
khoa học mật mã từ chức năng là dịch các ngôn ngữ cổ đạithành một khoa học
tính toán.
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 3


Colossus là máy giải mã đầu tiên được chế tạo tại Bletchley Park, Anh quốc, nơi
Turning làm việc. Những ống chân không được sử dụng để lưu trữ nội dung
giống như trên giấy và được đưa vào chiếc máy, việc tính toán diễn ra sau đó
được thực hiện trên những ống chân không đó cho đến khi những ống khác lại
được tiếp tục đưa vào máy. Việc lập trình được diễn ra trên những bảng cắm các
ống chân không.
Cùng thời với Turning, J.Presper Eckert và John Mauchly đã chế tạo ra một
chiếc máy dùng để tính toán quỹ đạo của đường đạn sử dụng cho quân đội Hoa
kỳ. Kết quả sự nỗ lực của Eckert và Mauchly là chiếc máy điện tử số tích hợp
máy tính (Electronic Numerical Intergrator And Computer - ENIAC). Máy
ENIAC bao gồm 18.000 ống chân không tạo nên phần tính toán của máy. Việc
lập trình và nhập liệu được thực hiện bằng cách thay đổi trạng thái các công tắc
và các đường cable. Máy không có khả năng lưu trữ dữ liệu hay chương trình
nhưng nó không phải là hạn chế lớn nhất của máy bởi vì chức năng của máy
EMIAC là tính toán quỹ đạo của đường đạn. Thậm chí chiếc máy này không
hoạt động được cho đến tận năm 1946, sau chiến tranh Thế giới II nhưng nó
được coi là một thành công và đã được sử dụng trong suốt 9 năm
Sau thành công của máy ENIAC, Eckert và Mauchly (làm việc tại Đại học
Pennsylvania) được John Von Neumann (1903 - 1957) mời cộng tác làm việc
tại Viện nghiên cứu cao cấp tại Princeton. Cùng với nhau, họ đã thiết kế một
máy tính có khả năng lưu trữ được gọi là EDVAC. Mâu thuẫn nảy sinh, hai
nhóm người tại Đại học Pennsylvania và Princeton chia tách nhau. Tuy nhiên,
mô hình máy tính mà họ thiết kế phát triển mạnh mẽ, hình thành nên máy tính
EDSAC được tạo ra bởi Maurice Wilkes tại Đại học Cambridge năm 1947

1.3. Mô hình máy tính Von Neumann
Máy tính kỹ thuật số thông thường được chế tạo dựa trên mô hình được cho là
của Von Neumann. Mô hình Von Neumann bao gồm 5 thành phần chính được
chỉ ra trên hình 1.2. Khối nhập liệu sẽ đưa lệnh và dữ liệu vào hệ thống và lưu

trữ tuần tự ở khối bộ nhớ chính. Lệnh và dữ liệu sẽ được thực thị tại khối Số
học và logic (ALU) dưới sự điều khiển bởi khối điều khiển. Kết quả sẽ được
đưa ra khối hiển thị dữ liệu. Khối ALU và bộ điều khiển thường được gọi chung
là bộ xử lý trung tâm (CPU). Hầu hết các máy tính thông thường có thể phân
chia thành các khối cơ bản như trên

CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 4


Hình 1.2. Mô hình máy tính Von Neumann

Chương trình lưu trữ là nội dung quan trọng nhất của mô hình Von Neumann.
Chương trình được lưu trữ tại bộ nhớ chính cùng với dữ liệu chương trình được
xử lý. Việc lưu trữ được thực hiện theo từng cấp độ khác nhau cùng với sự phát
triển của công nghệ.Ví dụ như trước kia, chương trình và dữ liệu được lưu trữ
dưới dạng thẻ đục lỗ hay băng từ, Trong máy tính, chương trình hay các lệnh
của chương trình được thao tác như thể là dữ liệu. Điều này dẫn đến việc xuất
hiện các trình biên dịch và hệ điều hành, và làm cho máy tính trở nên rất linh
hoạt

1.4. Mô hình hệ thống bus
Mặc dù kiến trúc Von Neumann được sử dụng rộng rãi trong các máy tính hiện
đại, nhưng nó đã được biến đổi. Hình 1.3. thể hiện một mô hình hệ thống bus
của một hệ thống máy tính. Mô hình này chia máy tính ra làm 3 khối: CPU, bộ
nhớ và các cổng vào ra I/O. Điều tinh tế của mô hình này là đã kết hợp khối
ALU và khối điều khiển thành một khối có chức năng duy nhất là CPU. Khối
nhập dữ liệu và hiển thị dữ liệu được kết hợp thành khối các cổng ngoại vi
CHƯƠNG 1 : GIỚI THIỆU CHUNG


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 5



Hình 1.3. Mô hình hệ thống bus

Điều quan trọng nhất của mô hình hệ thống bus là sự kết nối giữa các khối được
gọi chung là hệ thống bus, được cấu thành từ các bus dữ liệu mang thông tin
bằng cách truyền thông, bus địa chỉ có chức năng chỉ ra nơi dữ liệu sẽ được
chuyển tới và bus điều khiển sẽ chỉ ra các khía cạnh thông tin đang được gửi đi
và trong những phương thức gì. Tất nhiên hệ thống còn có hệ thống bus công
suất là các đường dây cung cấp năng lượng điện cho toàn bộ hệ thống. Hệ thống
bus công suất thường không được chỉ ra trong mô hình nhưng sẽ được ngầm
hiểu trong mọi mô hình. Một số kiến trúc còn có các hệ thống bus I/O riêng biệt
Về mặt vật lý, các hệ thống bus thực chất là các đường dây được nhóm lại với
nhau theo chức năng. Hệ thống bus dữ liệu 32 bit bao gồm 32 đường dây riêng
biệt, mỗi dây sẽ truyền tải 1 bit dữ liệu (địa chỉ hoặc các thông tin điều khiển).
Trong cách hiểu này, bus hệ thống là các nhóm bus được phân chia theo chức
năng
Bus dữ liệu có chức năng chuyển dữ liệu giữa các khối. Một số hệ thống có hệ
thống bus dữ liệu riêng để chuyển dữ liệu tương tác với khối CPU được gọi là
các hệ thống bus dữ liệu và và bus dữ liệu ra. Thông thường bus dữ liệu và và ra
được thực hiện trên cùng một hệ thống dây dẫn và tại cùng một thời điểm sẽ chỉ
truyền dữ liệu theo một hướng
Vì hệ thống bus được sử dụng để kết nối giữa các khối, do đó các khối chức
năng cần có đặc điểm nhận dạng riêng, chính là địa chỉ. Trong một số máy tính,
tất cả các địa chỉ được giả định là địa chỉ ô nhớ, nhưng thực tế sẽ bao gồm cả
CHƯƠNG 1 : GIỚI THIỆU CHUNG


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 6

địa chỉ ô nhớ và địa chỉ các cổng ngoại vi I/O. Mỗi cổng I/O sẽ có một địa chỉ
hoàn toàn riêng biệt. Chủ đề này sẽ được bàn kỹ hơn trong chương 8
Địa chỉ ô nhớ, hay được hiểu là vị trí lưu trữ dữ liệu tương tự như phương thức
đánh địa chỉ thư tín xác định nơi gửi và nhận thư. Trong suốt quá trình đọc/ghi
dữ liệu, bus địa chỉ sẽ chứa địa chỉ mà dữ liệu sẽ được đọc hoặc ghi. Thuật ngữ
đọc và ghi được hiểu với chủ thể là CPU, tức là CPU sẽ đọc dữ liệu từ bộ nhớ
hoặc ghi dữ liệu lên bộ nhớ. Nếu dữ liệu được đọc từ bộ nhớ thì bus dữ liệu sẽ
chứa nội dung đọc được ở địa chỉ ô nhớ được chỉ ra trên bus địa chỉ. Nếu dữ
liệu được ghi vào bộ nhớ thì bus dữ liệu sẽ chứa dữ liệu cần được ghi vào ô nhớ
tương ứng trong bộ nhớ
Bus điều khiển có phần phức tạp và sẽ được thảo luận trong những chương tiếp
theo. Để dễ hiểu, ta có thể coi bus điều khiển được sử dụng để cho phép truy
cập vào hệ thống bus dữ liệu và bus địa chỉ, phối hợp các tương tác giữa các
khối chức năng

1.5. Mức máy tính
Trong một hệ thống phức hợp, máy tính có thể được nhìn nhận thành các mức
máy khác nhau, từ mức cao nhất, mức “người sử dụng” đến mức thấp nhất là
mức “transistor”. Mỗi một mức thể hiện một mức độ trừu tượng khác nhau về
máy tính. Có lẽ một trong những nguyên nhân của sự thành công của máy tính
số là sự phân chia các mức trừu tượng một cách rõ ràng, độc lập với nhau. Điều
hiển nhiên có thể nhận thấy là một người sử dụng máy tính để gõ văn bản không
cần hiểu biết về lập trình. Đồng thời một lập trình viên cũng không cần quan
tâm đến các thành phần cấu tạo nên máy tính. Một điều thú vị là việc phân chia
máy tính thành các cấp máy đã được khai thác để phát triển các dòng máy tính
có chức năng khác nhau

Mức cổng logic, transistor, dây dẫn

Cấp thấp nhất ở bất cứ một máy tính cấp cao chính là cấp cổng logic, transistor
và dây dẫn. Cấp này được tạo ra bởi các cổng logic được thiết kế để thực hiện
một chức năng nhất định, thực hiện một thuật toán nhất định. Ở cấp độ này, máy
tính bao gồm các phần tử điện như transistor, dây dẫn, Cũng tại cấp độ này,
chức năng của máy tính chưa được thể hiện rõ vì hoạt động của nó chỉ thể hiện
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 7

thông qua các tín hiệu điện áp, dòng điện, các tín hiệu trễ, tín hiệu lượng tử và
các vấn đề ở cấp độ thấp hơn

Hình 1.4. Các cấp máy tính

Cấp khối chức năng
Trong cấp khối chức năng, các thanh ghi thực hiện việc dịch chuyển dữ liệu vào
và ra khỏi các “các khối chức năng” dưới sự kiểm soát của các khối điều khiển.
Các khối chức năng này thể hiện một số chức năng quan trọng của sự hoạt động
của máy tính. Các khối chức năng này bao gồm các thanh ghi bên trong CPU,
khối ALU và bộ nhớ chính của máy tính

Cấp vi chương trình
Đây là cấp độ thể hiện sự tác động của khối điều đến việc dịch chuyển dữ liệu
từ thanh ghi đến các thanh ghi và đến các khối chức năng khác ra làm sao. Khối
điều khiển sẽ nạp lần lượt mã lệnh và thực thi từng lệnh theo một chương trình
đã được định sẵn bởi nhà sản xuất các chip vi xử lý được gọi là các vi chương
trình. Thực ra, người lập trình không cần quan tâm lắm đến sự hoạt động của
cấp độ này bởi vì các vi chương trình là cố định, chỉ có người thiết kế phần
cứng mới tác động được đến các vi chương trình này
CHƯƠNG 1 : GIỚI THIỆU CHUNG


BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 8

Cấp hợp ngữ
Từ cấp độ này, các lập trình viên có thể tự viết các chương trình để bắt máy tính
thực hiện các yêu cầu của mình. Tuy nhiên, máy tính chỉ có thể hiểu được mã
máy bao gồm các chuỗi số 0 và 1. Việc lập trình kiểu như vậy rất dễ bị lỗi. Do
đó việc xuất hiện một ngôn ngữ gần với ngôn ngữ con người là điều tất yếu –
ngôn ngữ hợp dịch. Một trình biên dịch sẽ chuyển ngôn ngữ hợp dịch sang ngôn
ngữ máy và máy tính có thể hiểu được. Tập hợp các lệnh của ngôn ngữ hợp dịch
được gọi là tập lệnh

Ngôn ngữ cấp cao
Bất cứ một lập trình viên nào đã sử dụng một trong những ngôn ngữ như C,
Pascal, Fortran, hay Java đều đã tương tác với máy tính ở cấp độ ngôn ngữ cấp
cao. Tại cấp độ này, lập trình viên tương tác với dữ liệu và mã lệnh chương
trình thông qua ngôn ngữ cấp cao, rất giống với ngôn ngữ hàng ngày mà không
cần quan tâm tới việc dữ liệu và mã lệnh đó được máy tính xử lý như thế nào
Thực tế, để máy tính có thể hiểu được các lệnh được viết bằng ngôn ngữ cấp
cao, máy tính phải thực hiện quá trình chuyển đổi từ ngôn ngữ cấp cao thành
ngôn ngữ máy thông qua một trong hai quá trình biên dịch hoặc thông dịch.
Biên dịch (Compiler) là quá trình chuyển đổi mã lệnh của toàn bộ chương trình
từ ngôn ngữ cấp cao thành ngôn ngữ cấp thấp rồi máy tính mới thực thi chương
trình. Thông dịch (Interpreter) là quá trình chuyển đổi từng câu lệnh từ ngôn
ngữ cấp cao thành ngôn ngữ cấp thấp, thực thi lệnh rồi chuyển đổi tiếp câu lệnh
kế tiếp

Cấp chương trình ứng dụng
Ở cấp độ này, người sử dụng tương tác với máy tính bằng cách chạy các chương
trình như soạn thảo văn bản, các bảng tính hay game. Người sử dụng sẽ sử dụng

máy tính thông quá các chương trình chạy trên nó

1.6. Hệ thống máy tính điển hình
Mẫu máy tính hiện đại được phát triển từ những năm 1950 đến 1960 và càng
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 9

ngày càng có kích thước nhỏ gọn và càng ngày càng mạnh mẽ. Mặc dù đã có rất
nhiều cải tiến nhưng 5 thành phần cơ bản trong mô hình Von Neumann vẫn
không thể thay đổi trong máy tính hiện đại

Hình 1.5. Các thành phần của máy tính hiện đại

Hình 1.5 thể hiện các thành phần điển hình của một máy tính để bàn. Khối nhập
liệu chính là bàn phím, thông qua nó, người sử dụng sẽ nhập các dữ liệu và các
dòng lệnh vào hệ thống. Màn hình là nơi hiển thị các dữ liệu ra bên ngoài. Khối
ALU và khối điều khiển được chế tạo trên một chip điện tử được gọi là CPU.
Khối bộ nhớ bao gồm các mạch điện độc lập và các khối ổ đĩa cứng, đĩa mềm
và các ổ CD-ROM,
Nhìn sâu hơn vào hệ thống, chúng ta có thể thấy được thành phần quan trọng
nhất của hệ thống đó là bản mạch chính (mainboard), hình 1.6. Bản mạch chính
bao gồm các mạch điện tích hợp Ics, các khe cắm các card mở rộng, các dây nối
CHƯƠNG 1 : GIỚI THIỆU CHUNG

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 10

để kết nối các mạch tích hợp và các khe cắm mở rộng. Trên hình 1.6. các vị trí
gắn các khối nhập liệu input, khối hiển thị dữ liêu output, bộ nhớ và CPU được
khoanh vùng và chỉ rõ trên hình


Hình 1.6. Cấu trúc mainboard


TỔNG KẾT CHƯƠNG
Cấu trúc của máy tính cùng với các cấp độ của nó cần được thể hiện một cách
rõ ràng dưới con mắt của lập trình viên để lập trình viên có thể tương tác với
máy tính một cách dễ dàng. Tuy nhiên, yêu cầu đó lại không được dễ dàng thực
hiện được. Trong lịch sử phát triển, các lập trình viên phải tương tác với máy
tính thông qua các khía cạnh khác nhau. Ví dụ như Babbage phải lập trình thông
qua các bánh răng cơ khí, Cùng với sự phát triển của công nghệ, các cấp độ
của máy tính cũng trở nên rõ ràng hơn, cho phép máy tính có nhiều hơn các
tương tác với con người. Một mô hình phát triển nhất chính là mô hình máy tính
Von Neumann, đây là mô hình thông dụng nhất trong các máy tính ngày nay.
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 11

CHƯƠNG 2: BIỂU DIỄN DỮ LIỆU

2.1. Giới thiệu chung
Trong những ngày đầu tiên, có một số quan niệm sai lầm về máy tính. Một
trong những quan niệm đó là máy tính chỉ là một cái máy kích thước lớn có khả
năng tính toán. Máy tính đã có thể làm được nhiều hơn thế ngay cả ở trong giai
đoạn khởi đầu. Một quan niệm sai lầm khác là máy tính có thể làm tất cả.
Chúng ta đều biết rằng có những vấn đề rất phức tạp mà ngay cả máy tính mạnh
nhất hiện nay cũng không có khả năng thực hiện được. Quan điểm đúng đắn tất
nhiên nằng ở khoảng nào đó giữa 2 quan niệm trên
Chúng ta đã rất quen thuộc với những hoạt động của máy tính mà không liên
quan tới các con số như đồ họa, âm thanh kỹ thuật số, thậm chí cả những cái

nhấp chuột Vậy làm thế nào mà máy tính có thể xử lý được tất cả các loại
thông tin đó, khi mà tất cả các thông tin mà máy tính xử lý được chỉ được biểu
diễn bằng các con số 0 và 1. Ngay lập tức trong chúng ta sẽ có một câu hỏi là
các thông tin đã được máy tính biểu diễn hay mã hóa như thế nào ?
Chúng ta chắc hẳn đã nghĩ rằng máy tính đã sử dụng số thập phân, nhưng máy
tính thực tế đã sử dụng mã nhị phân để biểu diễn thông tin. Chương này sẽ giới
thiệu một vài cách biểu diễn thông tin phổ biến và quan trọng nhất là số dấu
phẩy tĩnh có dấu và không dấu, số thực và các ký tự
Liên quan đến việc biểu diễn dữ liệu, có một khía cạnh mà chúng ta cũng cần
quan tâm tới đó là độ rộng của dữ liệu mà máy tính biểu diễn. Ví dụ như máy
tính 32 bit có thể xử lý các dữ liệu có độ rộng là 32 bit. Khi đó, kết quả phép
toán có thể không còn là 32 bit nữa mà có thể là một con số chỉ có thể biểu diễn
bằng một dữ liệu lớn hơn 32 bit. Điều này dẫn tới hiện tượng tràn số - overflow.
Do đó, chúng ta cần phải tìm hiểu giới hạn của mỗi một phương pháp biểu diễn
dữ liệu mà chúng ta xem xét trong những phần tiếp theo dưới đây.

2.2. Số dấu phẩy tĩnh
Trong hệ thống sử dụng số dấu phẩy tĩnh, mỗi con số được biểu diễn bằng một
số chính xác các con số, và có một dấu “phẩy” được sử dụng để phân cách giữa
phần nguyên và phần lẻ được đặt ở một vị trí chính xác. Một ví dụ về số dấu
phẩy tĩnh thể hiện trong số thập phân là 0.23, 5.12 hay 9.11. Trong ví dụ này,
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 12

mỗi số được biểu diễn bằng 3 số và có 1 dấu phẩy đặt ở vị trí thứ 2 từ bên phải
sang. Điều khác biệt quan trọng giữa việc biểu diễn số dấu phẩy tĩnh trên giấy
và trên máy tính đó là “dấu phẩy tĩnh” trong máy tính không được lưu trữ ở bất
kỳ đâu. Người ta nói rằng, “dấu phẩy tĩnh” đó chỉ tồn tại trong đầu của lập trình
viên

Để nghiên cứu về số dấu phẩy tĩnh, trước hết chúng ta nên tìm hiểu về phạm vi
sử dụng cũng như độ chính xác của số dấu phẩy tĩnh trong hệ số thập phân. Sau
đó, chúng ta sẽ đi vào bản chất của các hệ số chẳng hạn như số thập phân và số
nhị phân và phương pháp chuyển đổi giữa các hệ số. Và với nền tảng này, ta sẽ
tiếp tục tìm hiểu về cách biểu diễn số âm trong số dấu phẩy tĩnh.

2.2.1. Phạm vi và độ chính xác của số dấu phẩy tĩnh
Một số dấu phẩy tĩnh có thể được phân chia theo phạm vi biểu diễn các con số
(đó là phạm vi biểu diễn của con số lớn nhất và nhỏ nhất) và độ chính xác của
nó. Với ví dụ về số dấu phẩy tĩnh ở trên, phạm vi biểu diễn số của nó là các con
số từ 0.00 đến 9.99 với mỗi bước nhảy là 0.01. Do đó, sai số được tính là 0.01
Cần lưu ý rằng phạm vi và độ chính xác phụ thuộc vào vị trí của dấu phẩy tĩnh.
Với dấu phẩy tĩnh dịch chuyển về phía bên phải, phạm vi sẽ là [000,999] với độ
chính xác là 1.0 và nếu dấu phẩy dịch chuyển về phía trái, phạm vi biểu diễn số
sẽ là [0.000,0.999] và sai số sẽ là 0.001. Trong các trường hợp trên, các số được
biểu diễn bằng 3 con số, phạm vi của nó từ 000 đến 999 hoặc .000 đến .999, tức
là nó có thể biểu diễn chỉ 1000 giá trị không hơn không kém, không phụ thuộc
vào phạm vi và độ chính xác.
Ngoài ra, cũng không có một lý do nào bắt buộc chúng ta phải bắt đầu dãy số
cần biểu diễn bằng giá trị 0. Một số thập phân có 2 chữ số có thể là dãy [00,99]
hoặc [-50,49], thậm chí là [-99,00]. Việc biểu diễn số âm sẽ được trình bày kỹ ở
mục sau

2.2.2. Luật kết hợp đại số không phải lúc nào cũng có thể thực hiện trên máy
tính
Trong toán học chúng ta đã biết rằng
 + (  + ) = ( + ) + 
CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 13


Bây giờ chúng ta sẽ phân tích tại sao luật kết hợp này lại không phải lúc nào
cũng có thể thực hiện được trên máy tính. Nếu máy tính chúng ta đang xét là
máy có thể thực hiện biểu diễn 1 con số, giả sử phạm vi biểu diễn của nó là [-
9,9] với a = 7, b = 4 và c = -3. Vế trái a + (b + c) = 7 + (4 + -3) = 7 + 1 = 8.
Nhưng vế phải (a + b) + c = (7 + 4) + -3 = 11 + -3 nhưng số 11 nằm ngoài phạm
vi biểu diễn của hệ thống này. Chúng ta có hiện tượng tràn số trong tính toán
mặc dù kết quả cuối cùng vẫn nằm trong khoảng có thể biểu diễn được.
Ví dụ trên đã thể hiện luật kết hợp đại số sẽ không được áp dụng cho các số có
độ dài hữu hạn. Điều này là không thể tránh khỏi bởi vì chính bản thân cách
biểu diễn dữ liệu. Để khắc phục nhược điểm này, hệ thống sẽ ngừng ngay việc
tính toán khi phát hiện hiện tượng tràn số, thông báo cho người sử dụng hoặc
giải quyết bằng phương pháp khác là lặp lại tính toán với độ rộng dữ liệu lớn
hơn

2.2.3. Hệ thống cơ số bất kỳ
Trong phần này, chúng ta sẽ nghiên cứu việc biểu diễn các con số và chuyển đổi
giữa các hệ số thường được sử dụng trong máy tính: số nhị phân (binary), số bát
phân (octal) và số hecxa (hecxadecimal)
Cơ số của hệ thống số là khoảng giá trị có thể biểu diễn được bởi các con số
trong hệ thống đó. Ví dụ cơ số thập phân có 10 con số được sử dụng để biểu
diễn dữ liệu là 0,1,2,3,4,5,6,7,8,9. Công thức tổng quát để biểu diễn một số dấu
phẩy tĩnh cơ số k là

Giá trị của con số ở vị trí thứ i được thể hiện bởi b
i
. Đồng thời n và m là số
lượng các con số ở bên trái và bên phải dấu phẩy tĩnh. Với cấu trúc này, mỗi
một con số có trọng số nhất định. Giả sử với giá trị (541.25)
10

được thể hiện
dưới cơ số 10. Ta sẽ có n = 3, m = 2 và k = 10

CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 14

Xem xét cơ số 2 (1010.01)
2
với n = 4, m = 2 và k =2

Ví dụ trên gợi ý cho ta phương pháp chuyển đổi một con số có cơ số bất kỳ sang
cơ số 10. Tư tưởng của phương pháp là nhân mỗi một con số với cơ số lũy thừa
trọng số và sau đó tính tổng tất cả các giá trị đó lại. Chú ý rằng số có trọng số
lớn nhất được ký hiệu là MSB và số có trọng số nhỏ nhất được ký hiệu là LSB

Chuyển đổi giữa các cơ số
Trong phần trên, chúng ta đã tìm hiểu cách chuyển từ cơ số bất kỳ sang cơ số
10. Trong phần này chúng ta sẽ tìm hiểu phương pháp chuyển ngược lại từ cơ số
10 sang cơ số bất kỳ. Ví dụ ta cần chuyển số (23.375)
10
sang cơ số 2. Chúng ta
bắt đầu bằng cách chia số đó thành phần nguyên và phần thập phân

Với phần nguyên

Với phần thập phân




Kết quả ta sẽ được

CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 15

2.2.4. Biểu diễn các số nhị phân, bát phân, và hecxa

Chuyển đổi qua lại từ cơ số 2 sang cơ số 8 và cơ số 16



2.2.5. Phép toán cơ bản trong máy tính
Phép toán cơ bản trong máy tính là phép cộng. Từ phép toán này, ta sẽ phát
triển các phép toán khác (được trình bày trong chương 3). Nguyên tắc thực hiện
phép cộng nhị phân giống nguyên tắc phép cộng số thập phân mà ta đã thực
hiện từ phổ thông

CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 16

Ví dụ

Lưu ý rằng số lớn nhất có thể biểu diễn được bằng số 8 bit là (11111111)
2
=
(255)
10
và số nhỏ nhất là (00000000)

2
= (0)
10
. Với cách biểu diễn như vậy, tổ
hợp nằm giữa khoảng 11111111 và 00000000 là các con số có giá trị trong
khoảng 0 đến 255 là các con số có giá trị dương. Đây là quy ước của số không
dấu. Nếu quy ước số có dấu, khoảng một nửa các trạng thái bit sẽ được sử dụng
để biểu diễn số dương và một nửa trạng thái còn lại biểu diễn số âm. 4 phương
pháp biểu diễn số có dấu sẽ được chúng ta đề cập trong mục kế tiếp ngay sau
đây

2.2.6. Số có dấu
Như đã nói ở mục trên, số có dấu có thể được biểu diễn bằng 1 trong 4 cách. Đó
là phương pháp dùng bit MSB làm bit dấu (sign-magnitude), số bù 1 (one’s
complement), số bù 2 (two’s complement) và số thừa (Excess). Mối quan hệ
giữa các phương pháp biểu diễn được mô tả bởi bảng dưới đây

CHƯƠNG 2 : BIỂU DIỄN DỮ LIỆU

BÀI GIẢNG CẤU TRÚC MÁY TÍNH VÀ GHÉP NỐI Page 17

Số dùng MSB làm bit dấu
Phương pháp này có cách biểu diễn số âm và dương giống như đối với cơ số 10
sử dụng dấu + và dấu –. Điểm khác biệt đó là nó sẽ dùng 1 bit có ở tận cùng
phía trái làm bit dấu. Giá trị 1 tương ứng với số âm và giá trị 0 tương ứng với số
dương. Các con số còn lại trong chuỗi số biểu diễn độ lớn của số theo mã nhị
phân thông thường. Với cách biểu diễn này, chúng ta sẽ có 2 số mang giá trị 0 là
+0 và -0

Chúng ta thường sử dụng phương pháp này để biểu diễn số đối với số dấu phẩy

động (xem tiếp mục 2.3)
Số bù 1
Số bù 1 là phương pháp cũng ít khi được sử dụng. Phương pháp này đảo tất cả
các bít từ 0 lên 1 và từ 1 về 0 của tất cả các bit trong số cần biểu diễn. Với cách
biểu diễn này, nếu bit tận cùng bên trái có giá trị là 1 thì đây là một số âm

Phương pháp sử dụng số bù 1 rất hiếm khi được sử dụng bởi vì khi sử dụng
phương pháp này, việc so sánh giá trị của các con số thực hiện tương đối phức
tạp vì có 2 trạng thái bit biểu diễn giá trị 0. Hơn nữa, việc thực hiện các phép
toán cũng khó thực hiện
Số bù 2
Số bù 2 được tạo ra từ số bù 1 cộng thêm 1 đơn vị. Số tận cùng bên trái thể hiện
số đó là âm (giá trị 1) hoặc dương (giá trị 0). Phương pháp biểu diễn này khắc
phục được nhược điểm của 2 phương pháp biểu diễn trình bày phía trên là chỉ
sử dụng 1 cách biểu diễn cho số 0.

×