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

Bài giảng Kiến trúc máy tính và mạng máy tính: Chương 3 - Lương Minh Huấn

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.68 MB, 35 trang )

TRƯỜNG ĐẠI HỌC SÀI GÒN

CHƯƠNG 3: CPU
GV: LƯƠNG MINH HUẤN


NỘI DUNG
Biểu diễn số nguyên
Các phép toán số học với số nguyên

. Số dấu phẩy động

. Kỹ thuật đường ống


I. BIỂU DIỄN SỐ NGUYÊN
Có hai loại số nguyên:
 Số nguyên không dấu (Unsigned Integer)
 Số nguyên có dấu (Signed Integer)

Biểu diễn số nguyên không dấu
 Dùng n bit biểu diễn số nguyên không dấu A:
an-1an-2…..a2a1a0
 Giá trị của A được tính như sau:

n 1

A   ai 2
i 0

i




Biểu diễn số nguyên không dấu
n=8 bit
Biểu diễn được các giá trị từ 0 đến 255
 0000 0000 = 0

Chú ý:

 0000 0001 = 1

1111 1111

 0000 0010 = 2

+ 0000 0001

 0000 0011 = 3

1 0000 0000

…

Vậy: 255 + 1 = 0?

 1111 1111 = 255

 do tràn nhớ ra ngoài



Biểu diễn số nguyên có dấu
Cho một số nhị phân N được biểu diễn bởi n bit
 Số bù một của N bằng (2n -1) - N
 Số bù hai của N bằng 2n - N

Lưu ý: 2n -1 = 111...11 (n bit 1)


Biểu diễn số nguyên có dấu (tt)

Ví dụ: Cho số N = 0001 00012 được biểu diễn bởi n=8bit. Xác
định số bù 1 và bù 2 của N.

Xác định số bù 1:
Áp dụng công thức

số bù một của N

1111 1111
0001 0001
1110 1110

(2n -1)
N

Nhận xét: số bù một của một số N được xác định bằng cách đ
các bit trong N


Biểu diễn số nguyên có dấu (tt)

Xác định số bù 2:
 Áp dụng công thức
số bù hai của N

1 0000 0000

-

0001 0001

(2n)
N

1110 1111

 Nhận xét: số bù hai của một số N được xác định
bằng cách lấy số bù một của N cộng thêm 1
Số bù 2 của N =(số bù 1 của N) + 1


Biểu diễn số nguyên có dấu (tt)
Giả sử dùng n bit để biểu diễn số nguyên có dấu:
Bít có trọng số cao nhất (hay bit ngoài cùng
bên trái của dãy số) được máy tính sử dụng để
biểu diễn dấu. Nếu:
 = 0 : thì số nhị phân cần tính giá trị là số dương.
Dạng tổng quát là: 0an-2 an-3 …a0

 = 1 : thì số nhị phân cần tính giá trị là số âm.
Dạng tổng quát là: 1an-2 an-3 …a0

Giá trị:


Biểu diễn số nguyên có dấu (tt)
Vì A + (Số bù hai của A) = 0
 dùng số bù hai để biểu diễn cho số âm

VD1:
 A = 6510 = 010000012
(8 bit)
 Số bù 2 của A: 101111112 (8 bit)
0100 0001
 A + Số bù 2 của A:

+ 1011 1111
1 0000 0000


Ví dụ
 VD2: Cho số nguyên có dấu biểu diễn n=8bit sau:
A=B5H và B=6AH
Hãy xác định giá trị của hai số nguyên có dấu A và B
dưới dạng hệ số người sử dụng (cơ số 10)
Bài giải
 Biểu diễn số nguyên A dưới dạng nhị phân
A=B5H = 1011 01012
A= -128 + 53 = - 75
 Biểu diễn số nguyên B dưới dạng nhị phân
B=6AH = 0110 10102
B = 64+32+8+2 = 106



Ví dụ

VD3: Biểu diễn số nguyên có dấu sau đây A=+97 và

B=-101 (10) theo hai dạng kiểu n=8bit và n=16bit trong máy tính.
Lời giải
8bit
Biểu diễn số A dạng số nguyên có dấu trong máy tính
A = 0110 00012 (n=8bit)
Biểu diễn số B dạng số nguyên có dấu trong máy tính
+101 = 0110 01012
Lấy bù 2
1001 10112
B = - 101 = 1001 10112


Ví dụ

Biểu diễn số A dạng số nguyên có dấu trong máy tính
A = 0000 0000 0110 00012 (n=16bit)

Biểu diễn số B dạng số nguyên có dấu trong máy tính
+101 =0000 0000 0110 01012
Lấy bù 2

1111 1111 1001 10112

 B = -101 = 1111 1111 1001 10112



Biểu diễn số nguyên có dấu (tt)
n = 8 bit
 Biểu diễn được các giá trị từ -128 đến +127
0000 0000 = 0
0000 0001 = +1
0000 0010 = +2
Chú ý:
0000 0011 = +3
+127 + 1 = -128

-128 - 1 = +127
0111 1111 = +127
 do tràn xảy ra
1000 0000 = - 128
1000 0001 = - 127

1111 1110 = -2
1111 1111 = -1


Biểu diễn số nguyên có dấu (tt)
Chuyển đổi từ byte thành word
 Đối với số dương:
• +19 = 0001 0011 (8 bit)
• +19 = 0000 0000 0001 0011 (16 bit)
thêm 8 bit 0 bên trái

 Đối với số âm:

• - 19 = 1110 1101 (8 bit)
• - 19 = 1111 1111 1110 1101 (16 bit)
thêm 8 bit 1 bên trái


II. PHÉP TOÁN SỐ HỌC VỚI SỐ NGUYÊN

Số học nhị phân: phép cộng số nguyên không dấu
Khi cộng hai số nguyên không dấu n bit: nếu không có nhớ ra khỏi
bit cao nhất thì kết quả nhận được luôn đúng.
Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận được là sai. Hay nói
khác hơn phép cộng bị tràn (Cout =1)
Tràn cờ nhớ (Carry Out):
xảy ra khi kết quả phép
toán nhận được > 2n-1


II. PHÉP TOÁN SỐ HỌC VỚI SỐ NGUYÊN
 Phép trừ:
Phép trừ số nguyên chính là phép
cộng với số đảo dấu.
Ví như X-Y = X+(-Y)
 Tìm số đảo chính là ta tìm bù
hai của số đó.
 Nguyên tắc phép trừ: Lấy số
bù hai của Y ra thành –Y rồi
cộng với X


VÍ DỤ


Thực hiện các phép tính sau với n = 8bit
34+45
-123+45
127+34
12-101
109-67
-106-35
E3 – 2F


III. SỐ DẤU CHẤM ĐỘNG

o hai giá trị:
Khối lượng mặt trời:
199000000000000000000000000000000000g
Khối lượng điện tử:
0.00000000000000000000000000000910956g
Để lưu trữ con số này thì máy tính cần đến số bit rất lớn. Như vậy, trong
rường hợp này thì loại số có dấu chấm tĩnh sẽ rất bất tiện.

Vì vậy tất cả máy tính lưu trữ những số trên dưới dạng dấu chấm động 1
x 1033 và 0.910956 x 10-27 hay theo số khoa học là: 1.99E+33 và 0.9109
27.


III. SỐ DẤU CHẤM ĐỘNG

Một giá trị có thể biểu diễn dưới nhiều dạng


 Khó xử lý

 Cần chuẩn hóa


Chuẩn hóa số chấm động
Dạng tổng quát

X=(-1)s 1.M 2E
Trong đó: s: là bit dấu (s=0 phần định trị là
dương; s=1 phần định trị là âm)
M : là phần định trị.
E: là số mũ.


Chuẩn IEEE 754

Dùng 32 bit để biểu diễn số chấm động


Cách chuẩn hóa số chấm động
Chuyển về hệ cơ số 2
Cách biểu diễn vùng lưu chấm động dài 32 bit.
 Phần định trị chuẩn hóa dạng 1.M
 Công thức tính giá trị X = (-1)S x 1.M x 2E
• Xác định S, M, E


Ví dụ
Số 0.7510 được biễu diễn theo chuẩn IEEE 754

Giải:
 Chuyển qua nhị phân: 0.75 10 = 0.112
 Dịch dấu chấm qua phải để được dạng 1.M (1 đơn vị):
S = 0, E = -1+127 = 12610 = 111 11102và
M = .10000000000000000000000 (23 bit)
1
8
S
E
0 0111 1110

23
M
10000000000000000000000


Ví dụ
209.812510 được biễu diễn theo chuẩn IEEE 754
 Chuyển qua nhị phân
209.812510 = 11010001.11012
 Dịch dấu chấm qua trái 7 đơn vị:
S = 0, E = 7+127 = 13410 = 1000 01102 và
M = 10100011101000000000000000000 (23 bit)
1
S
0

8
23
E

M
1000 0110 10100011101000000000000000000


Ví dụ

345,125 trong hệ thập phân. Hãy biễu diễn theo chuẩn IEE
754

Chuyển qua nhị phân
2345,12510 = 1001 0010 1001.0012

Dịch dấu chấm qua trái 11 đơn vị:

S = 1, E = 11+127 = 13810 = 100010102 và

M = 00100101001001000000000(23 bit)
1
8
S
E
1 1000 1010

23
M
0010010100100100000000


×