Tải bản đầy đủ

Slide bài giảng môn Kiến trúc máy tính và mạng máy tính: Chương 3: CPU

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

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


NỘI DUNG
I. Biểu diễn số nguyên
II. Các phép toán số học với số nguyên
III. Số dấu phẩy động
IV. 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 1111 1111
0001 0001
N
số bù một của N 1110 1110

(2n -1)

-

Nhận xét: số bù một của một số N được xác định bằng cách đảo
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 1 0000 0000 (2n)

0001 0001

số bù hai của N

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)
 A + Số bù 2 của A:
0100 0001
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
n = 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
a.

34+45

b.

-123+45

c.

127+34

d.

12-101

e.

109-67

f.

-106-35

g.

E3 – 2F


III. SỐ DẤU CHẤM ĐỘNG
Cho 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
trườ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.990
x 1033 và 0.910956 x 10-27 hay theo số khoa học là: 1.99E+33 và 0.910956E27.


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
23
S
E
M
0 0111 1110 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
8
23
S
E
M
0
1000 0110 10100011101000000000000000000


Ví dụ
–2345,125 trong hệ thập phân. Hãy biễu diễn theo chuẩn IEEE
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
23
S
E
M
1 1000 1010 0010010100100100000000


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×

×