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

Bài giảng Kiến trúc và tổ chức máy tính: Chương 2 - ThS. Trần Quang Hải Bằng

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 (1017.08 KB, 41 trang )

KIẾN TRÚC VÀ TỔ CHỨC MÁY TÍNH
(Computer Organization and Architecture)
Chương 2
Biểu diễn thơng tin trong máy tính



Nội dung
1. Các hệ đếm cơ bản
2. Biểu diễn số nguyên
3. Các phép toán số học đối với số nguyên
4. Số dấu phẩy động



Chương 2 - Biểu diễn thơng tin trong máy tính

2


2.1. Các hệ đếm cơ bản
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ệ bát phân (Octal System) → Dùng để viết gọn số
nhị phân
Hệ thập lục phân (Hexadecimal System) → Dùng để
viết gọn số nhị phân




Chương 2 - Biểu diễn thơng tin trong máy tính

3

Hệ thập phân (Decimal System)
Cơ số 10
Dùng 10 ký số: 0, 1, 2, ..., 9
Dùng n chữ số thập phân có thể biểu diễn được 10n
giá trị khác nhau:
• 00...0 = 0
• 99...9 = 10n – 1



Chương 2 - Biểu diễn thơng tin trong máy tính

4


Hệ thập phân (tt)
Quy tắc đếm



Chương 2 - Biểu diễn thơng tin trong máy tính

5

Ví dụ
215.37 = 2*102 + 1*101 + 5*100 + 3*10-1 + 7*10-2

Các chữ số phần nguyên:

215 : 10 = 21
21 : 10 = 2
2 : 10 = 0

dư 5
dư 1
dư 2

Các chữ số phần thập phân:
0.37 * 10 = 3.7
0.7 * 10 = 7.0



phần nguyên = 3
phần nguyên = 7

Chương 2 - Biểu diễn thông tin trong máy tính

6


Hệ nhị phân (Binary System)
Cơ số 2
Dùng 2 chữ số: 0, 1
Chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n chữ số nhị phân có thể biểu diễn được

2n giá trị khác nhau:
00...0 = 0
11...1 = 2n - 1


Chương 2 - Biểu diễn thơng tin trong máy tính

7

Hệ nhị phân (tt)



Chương 2 - Biểu diễn thơng tin trong máy tính

8


Hệ nhị phân (tt)
Quy tắc đếm



Chương 2 - Biểu diễn thơng tin trong máy tính

9

Ví dụ
Có số nhị phân như sau: 1011 1001.101(2)
Khi đó, giá trị của chúng được tính là:

1011 1001.101(2) =
= 27 + 25 + 24 + 23 + 20 + 2-1 + 2-3
= 128 + 32 + 16 + 8 + 1 + 0.5 + 0.125
= 185.625(10)



Chương 2 - Biểu diễn thơng tin trong máy tính

10


Hệ Bát phân (Octal System)
Cơ số 8
Dùng 8 chữ số: 0, 1, 2, 3, 4, 5, 6, 7
Dùng n chữ số bát phân có thể biểu diễn được 8n
giá trị khác nhau:
• 00...0 = 0
• 77...7 = 8n – 1



Chương 2 - Biểu diễn thơng tin trong máy tính

11

Hệ bát phân (tt)
Quy tắc đếm




Chương 2 - Biểu diễn thông tin trong máy tính

12


Hệ thập lục phân (Hexadecimal System)
Cơ số 16
Dùng 16 chữ số: 0,1,..., 9, A, B, ..., F
Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4 bit sẽ được thay bằng một chữ số
Hexa
Dùng n chữ số Hexa có thể biểu diễn được
16n giá trị khác nhau:
• 00...0 = 0
• FF...F = 16n - 1


Chương 2 - Biểu diễn thơng tin trong máy tính

13

Hệ thập lục phân (tt)
Quy tắc đếm



Chương 2 - Biểu diễn thơng tin trong máy tính

14



Tổng quát



Chương 2 - Biểu diễn thông tin trong máy tính

15

Chuyển đổi giữa các hệ đếm



Chương 2 - Biểu diễn thơng tin trong máy tính

16


Bảng mã 8421



Chương 2 - Biểu diễn thông tin trong máy tính

17

Chuyển đổi tổng qt




Chương 2 - Biểu diễn thơng tin trong máy tính

18


Phương pháp ghép nhóm



Chương 2 - Biểu diễn thơng tin trong máy tính

19

Chuyển đổi số thập phân → nhị phân
Chuyển đổi phần nguyên:
– Cách 1: Chia liên tiếp cho 2 rồi lấy phần dư
– Cách 2: Phân tích thành tổng các luỹ thừa của 2

Chuyển đổi phần thập phân:
– Nhân phần thập phân với 2, lấy phần nguyên



Chương 2 - Biểu diễn thơng tin trong máy tính

20


Ví dụ chuyển đổi

Có số ở hệ thập phân như sau: 61.3125
– Chuyển đổi phần nguyên: 61(10) = 111101(2)
– Chuyển đổi phần thập phân:
• 0.3125 * 2 = 0.625
• 0.625 * 2 = 1.25
• 0.25 * 2 = 0.5
• 0.5 * 2 = 1.0

phần nguyên = 0
phần nguyên = 1
phần nguyên = 0
phần nguyên = 1

– Vậy: 61.3125(10) = 111101.0101(2)


Chương 2 - Biểu diễn thơng tin trong máy tính

21

Mã hố dữ liệu trong máy tính
Nguyên tắc chung
– Mọi dữ liệu đưa vào máy tính đều phải được mã hố
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

Mã hoá dữ liệu nhân tạo:

• Dữ liệu dạng số: mã hố theo chuẩn quy ước
• Dữ liệu ký tự: mã hố theo bộ mã ký tự


Chương 2 - Biểu diễn thông tin trong máy tính

22


Mã hố dữ liệu trong máy tính (tt)
Mã hố và tái tạo tín hiệu tự nhiên

TH V.lý

Bộ tạo
tín hiệu

TH Ltục

TH số
ADC
MT

TH V.lý



Bộ tái tạo
tín hiệu


TH Ltục

TH số
DAC

Chương 2 - Biểu diễn thơng tin trong máy tính

23

Mã hố dữ liệu trong máy tính (tt)



Chương 2 - Biểu diễn thơng tin trong máy tính

24


Mã hố dữ liệu trong máy tính (tt)



Chương 2 - Biểu diễn thơng tin trong máy tính

25

Lưu trữ dữ liệu trong máy tính
Bộ nhớ chính được tổ chức theo byte
Độ dài dữ liệu có thể chiếm 1 hay nhiều byte
Có 2 cách lưu trữ các byte trong bộ nhớ chính:

– Little-endian (đầu nhỏ): byte có ý nghĩa thấp
hơn được lưu trữ ở vị trí có địa chỉ nhỏ hơn
– Big-endian (đầu to): byte có ý nghĩa thấp hơn
được lưu trữ ở vị trí có địa chỉ lớn hơn



Chương 2 - Biểu diễn thơng tin trong máy tính

26


Ví dụ lưu trữ dữ liệu 32 bit
12

34

56

78

...

Địa chỉ

...

Địa chỉ

78


X

12

X

56

X +1

34

X +1

34

X+2

56

X+2

12

X+3

78

X+3


...

...

đầu nhỏ

đầu to

Ví dụ: Intel 80x86, Px:
Motorola 680x0:
Power PC, Itanium:


đầu nhỏ
đầu to
cả hai loại

Chương 2 - Biểu diễn thông tin trong máy tính

27

2.2. Biểu diễn số ngun
Số ngun khơng dấu (unsigned integer)
Số nguyên có dấu (signed integer)
Chuyển đổi độ dài
Bài tập




Chương 2 - Biểu diễn thông tin trong máy tính

28


Số nguyên không dấu
Nguyên tắc chung
– Dùng n chữ số nhị phân thì biểu diễn được 2n số
– Dải biểu din: 0 ữ 2n 1
Vớ d:
ã n = 8 bit: Dải biểu diễn: 0 ÷ 28 -1, hay 0 ữ 255
ã n = 16 bit: Di biu din: 0 ữ 216 - 1, hay 0 ữ 65535
ã n = 32 bit: Dải biểu diễn: 0 ÷ 232 – 1, 0÷4294967295

Cách biểu diễn
– Biểu diễn ở dạng nhị phân một cách bình thường



Chương 2 - Biểu diễn thơng tin trong máy tính

29

Hiện tượng tràn số



Chương 2 - Biểu diễn thơng tin trong máy tính

30



Các ví dụ
Ví dụ 1: biểu diễn các số nguyên không dấu sau đây
dùng 8 bit:
A = 73;
B = 138
Giải:
– A = 73 = 64 + 8 + 1 = 26 + 23 + 20
73 = 0100 1001
– B = 138 = 128 + 8 + 2 = 27 + 23 + 21
138 = 1000 1010



Chương 2 - Biểu diễn thơng tin trong máy tính

31

Các ví dụ (tt)
Ví dụ 2: Hãy xác định giá trị của các số nguyên
không dấu C, D được biểu diễn bằng 8 bit như sau:
C = 0010 1010;

D = 1010 0110

Giải:
– C = 0010 1010 = 25 + 23 + 21 = 32 + 8 + 2 = 42
– D = 1010 0110 = 27 + 25 + 22 + 21 =
= 128 + 32 + 4 + 2 = 166




Chương 2 - Biểu diễn thơng tin trong máy tính

32


Số nguyên có dấu
Nguyên tắc chung
– Dùng n chữ số nhị phân thì biểu diễn được 2n số
– Dải biểu din: - 2n-1 ữ 2n-1 1
Vớ d:
ã n = 8 bit: Dải biểu diễn: - 27 ÷ 27 -1, hay -128 ữ 127

ã n = 16 bit: - 215 ữ 215 - 1, hay - 32768 ữ 32767
ã n = 32 bit: - 231 ÷ 231 - 1, hay - 2147483648 ÷ 2147483647

Cách biểu diễn:
– PP1: Dùng dấu và độ lớn (Sign-Magnitude)
– PP2: Dùng mã bù 2 (Two’s complement)


Chương 2 - Biểu diễn thơng tin trong máy tính

33

Dùng dấu và độ lớn
Bit lớn nhất biểu diễn dấu:
– 0: biểu diễn số dương

– 1: biểu diễn số âm

Các bit cịn lại biểu diễn giá trị
– Ví dụ:
+23 = 0001 0111; -23 = 1001 0111

Vấn đề nảy sinh
– Cần quan tâm cả phần dấu và phần độ lớn khi
thực hiện các phép tốn số học
– Có đến 2 cách biểu diễn cho số 0 (+0 và -0)


Chương 2 - Biểu diễn thơng tin trong máy tính

34


Dùng mã bù 2
Đối với số dương: biểu diễn dạng nhị phân
Đối với số âm: tìm số bù 2:
– B1: đổi số dương tương ứng → nhị phân
– B2: tìm số bù 1 (đảo bit 1 → 0, 0 → 1)
– B3: tìm số bù 2: số bù 1 cộng với 1

Số bù 2 thu được chính là cách biểu diễn số âm
Đặc điểm:
– Thực hiện các phép toán số học dễ dàng
– Chỉ có một sự biểu diễn duy nhất cho số 0



Chương 2 - Biểu diễn thông tin trong máy tính

35

Dùng mã bù 2 (tt)
Dạng tổng quát của số nguyên A

A = an-1an-2….a2a1a0
Giá trị của A được tính bởi công thức:

Dải giá trị của số nguyên sử dụng n bit:

-2n-1 ÷ 2n-1 – 1
- 8 bit:
- 16 bit:
- 32 bit:


-128 ÷ 127
-32 768 ÷ 32 767
-2 147 483 648 ÷ 2 147 483 647
Chương 2 - Biểu diễn thơng tin trong máy tính

36


Các ví dụ
Ví dụ 1: Biểu diễn các số nguyên có dấu sau đây
bằng 8 bit: A = + 69; B = - 92
Giải:

A = + 69 = 0100 0101
B = - 92 Ta có: + 92 = 0101 1100
Số bù 1
= 1010 0011
+
1
Số bù 2
= 1010 0100
Vậy: B = -92 = 1010 0100



Chương 2 - Biểu diễn thông tin trong máy tính

37

Các ví dụ
Ví dụ 2: Xác định giá trị của các số nguyên có dấu
biểu diễn dưới đây (dùng dấu - độ lớn):
C = 0110 1010;

D = 1100 0011

Giải:
C = 0110 1010 = + (64 + 32 + 8 + 2) = 106
D = 1100 0011 = - (64 + 2 + 1) = - 67



Chương 2 - Biểu diễn thơng tin trong máy tính


38


Các ví dụ
Ví dụ 3: Xác định giá trị của các số nguyên có dấu
được biểu diễn dưới đây (dùng mã bù 2):
E = 0101 1110;

F = 1101 1010

Giải:
E = 0101 1110 = 64 + 16 + 8 + 4 + 2 = 94
F = 1101 1010 = -128 + 64 + 16 + 8 + 2 = -38



Chương 2 - Biểu diễn thơng tin trong máy tính

39

Chuyển đổi độ dài (byte word)
Đối với số dương: thêm/bớt số 0 ở trước:
+23 =
0001 0111
+23 = 0000 0000 0001 0111

(8 bit)
(16 bit)


Đối với số âm: thêm/bớt số 1 ở trước
-23 =
1110 1001
-23 = 1111 1111 1110 1001



(8 bit)
(16 bit)

Chương 2 - Biểu diễn thơng tin trong máy tính

40


Biểu diễn số nguyên theo mã BCD
BCD – Binary Coded Decimal
– Được dùng để tính tốn số thập phân trong hệ nhị
phân
– Là số viết theo hệ cơ số 16 nhưng tính theo hệ cơ số
10
• 12BCD
trong hệ nhị phân là 0001 0010
có giá trị là
12 chứ khơng phải giá trị 18 (1216 = 18)
• Dùng 4 bit để mã hóa cho các chữ số thập phân từ 0…9
(xem lại bảng mã 8421 phần các số từ 0-9)
• Có 6 tổ hợp bit không sử dụng:
1010; 1011; 1100; 1101; 1110; 1111




Chương 2 - Biểu diễn thơng tin trong máy tính

41

Các kiểu lưu trữ số BCD
BCD khơng gói (unpacked BCD)
– Mỗi số BCD-4bit được lưu trữ trong 4 bit thấp của byte
– Ví dụ: Số 35 được lưu trong 2 byte
0011

0101

BCD gói (packed BCD)
– Hai số BCD-4bit được lưu chung trong 1 byte
– Ví dụ: Số 35 được lưu trong 1 byte
0011



0101

Chương 2 - Biểu diễn thơng tin trong máy tính

42


2.3. Các phép toán trên số nguyên
Phép cộng: thực hiện như cách tính tay thơng

thường nhưng ở hệ nhị phân
Cộng

Kết quả

Nhớ

0+0

0

0

0+1

1

0

1+0

1

0

1+1

0

1


Phép trừ: Thực hiện bằng cách cộng số bị trừ với bù
2 của số trừ
– Ví dụ: A=1001, B=0011 có bù hai là 1101
– Vậy A-B = 1001+1101 = (1)0110 . Số (1) là số nhớ
(carry)



Chương 2 - Biểu diễn thơng tin trong máy tính

43

Bài tập
1. Số nhị phân 8 bit (11001100), số này tương ứng với
số nguyên thập phân có dấu là bao nhiêu nếu số
trên được biểu diễn ở dạng:
- Số bù 1.
- Số bù 2.

2. Đổi các số sau đây:
a. (011011)2
ra số thập phân.
b. (-2005)10
c. (55.875)10



ra số nhị phân 16 bits.
ra số nhị phân.


Chương 2 - Biểu diễn thơng tin trong máy tính

44


2.3. Các phép toán trên số nguyên (tt)
Phép nhân số không dấu:
– Giải thuật nhân số n bit
a) Đặt bộ đếm tới n
b) Xố thanh ghi 2n bit chứa tích thành phần; Nhớ ← 0
c) Kiểm tra bit LSB của số nhân; nếu là 1 thì cộng số bị
nhân vào n bit nhiều ý nghĩa nhất của tích thành phần
d) Dịch phải Nhớ, Tích thành phần, Số nhân đi 1 bit
e) Giảm bộ đếm đi 1. Lặp lại các bước từ c cho đến khi bộ
đếm bằng không. Đọc kết quả từ thanh ghi tích thành
phần

Ví dụ: 10 x 13
– Số bị nhân: 10(10) = 1010 (2)
– Số nhân:
13(10) = 1101(2)


Chương 2 - Biểu diễn thơng tin trong máy tính

45

Giải thuật nhân số khơng dấu
Start

C:=0; A:=0; Bé ®Õm:=n
M chøa sè bị nhân
Q chứa số nhân

Sai

Q0 = 1?

Đúng

C,A:=A+M
Dịch phải C, A, Q
Dec(Bộ đếm)
Sai

Bộ đếm = 0?



Đúng

End

Tích chứa
trong A,Q

Chng 2 - Biu diễn thơng tin trong máy tính

46



S mch nhõn
Số bị nhân

Mn-1

. .

.

M0

Cộng

Bộ cộng n bit

Logic điều khiển
dịch và cộng
Dịch phải

An-1

C

.

.

.


A0

Qn-1

.

.

.

Q0

Số nhân



Chng 2 - Biu din thơng tin trong máy tính

47

Ví dụ: 13 x 10
Bước

B.đếm

Số nhân

Nhớ

Tích thành phần


(a) và (b)

4

1101

0

0000 0000

(c)

4

1101

0

1010 0000

1

Cộng 1010

(d)

4

0110


0

0101 0000

1

Dịch phải

(e)

3

0110

0

0101 0000

1

Giảm n

(c)

3

0110

0


0101 0000

2

LSB=0

(d)

3

0011

0

0010 1000

2

Dịch phải

(e)

2

0011

0

0010 1000


2

Giảm n, LSB=1

(c)

2

0011

0

1100 1000

3

Cộng 1010

(d)

2

0001

0

0110 0100

3


Dịch phải

(e)

1

0001

0

0110 0100

3

Giảm n, LSB=1

(c)

1

0001

1

0000 0100

4

Cộng 1010


(d)

1

0000

0

1000 0010

4

Dịch phải

(e)

0

0000

0

1000 0010

4

Giảm n. Dừng




Vịng lặp

Ghi chú
Khởi trị,LSB=1

Chương 2 - Biểu diễn thơng tin trong máy tính

48


2.3. Các phép toán trên số nguyên (tt)
Phép nhân số có dấu:
– Giải pháp 1:
• Chuyển đổi thành số dương nếu cần
• Thực hiện phép nhân như đối với số khơng dấu
• Kiểm tra bit dấu của 2 số, nếu chúng trái dấu thì tích là
số âm.

– Giải pháp 2: sử dụng thuật tốn Booth kinh điển (có thể
áp dụng cho 2 số dương, một số âm và một dương
hoặc cả 2 số đều âm).



Chương 2 - Biểu diễn thông tin trong máy tính

49

Giải thuật Booth

Start
A:=0; Q-1:=0; Bé ®Õm:=n
M chøa số bị nhân
Q chứa số nhân
= 10

= 01

Q0, Q-1
= 11
= 00

A := A - M

A := A + M

Dịch phải A, Q, Q-1
Dec(Bộ đếm)
Sai

Bộ đếm = 0?

Đúng

Lu ý: An-1 đợc tái tạo
End

Tích chứa
trong A,Q



Chng 2 - Biu din thụng tin trong máy tính

50


×