BIỂU DIỄN SỐ NGUYÊNCó 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
Trang 1TRƯỜNG ĐẠI HỌC SÀI GÒN
CHƯƠNG 3: CPU
GV: LƯƠNG MINH HUẤN
Trang 2NỘI DUNG
I Biểu diễn số nguyên
II Các phép toán số học với số nguyênIII Số dấu phẩy động
IV.Kỹ thuật đường ống
Trang 3I 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:
a A
Trang 4Biểu diễn số nguyên không dấu
Trang 5Biể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 (2 n -1) - N
Số bù hai của N bằng 2 n - N
Lưu ý: 2n -1 = 111 11 (n bit 1)
Trang 6Biể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
Trang 7-Biểu diễn số nguyên có dấu (tt)
Trang 8-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à: 0a n-2 a n-3 …a 0
= 1 : thì số nhị phân cần tính giá trị là số âm
Dạng tổng quát là: 1a n-2 a n-3 …a 0 Giá trị:
Trang 9Biểu diễn số nguyên có dấu (tt)
Trang 11Ví 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.
B = - 101 = 1001 1011 2
Trang 12 B = -101 = 1111 1111 1001 1011 2
Trang 13Biểu diễn số nguyên có dấu (tt)
Trang 14Biể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
Trang 15II 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 > 2 n -1
Trang 16II PHÉP TOÁN SỐ HỌC VỚI SỐ NGUYÊN
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
Trang 18III 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 10 33 và 0.910956 x 10 -27 hay theo số khoa học là: 1.99E+33 và
0.910956E-27
Trang 19III 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
Trang 21Chuẩn IEEE 754
Dùng 32 bit để biểu diễn số chấm động
Trang 23Ví dụ
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ị):
Trang 24Ví dụ
Chuyển qua nhị phân
Trang 26IV KỸ THUẬT ĐƯỜNG ỐNG
Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc bằng cách xử lý gối đầu lệnh với nhau
Ví dụ: Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng một khoản thời gian
Giả sử, mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi giai đoạn được thực hiện trong 1 chu kỳ xung nhịp.
Các giai đoạn thực hiện một lệnh là: lấy lệnh (IF: Instruction Fetch), giải mã (ID: Instruction Decode), thi hành (EX: Execute), thâm nhập
bộ nhớ (MEM: Memory Access), lưu trữ kết quả (RS: Result Storing).
Trang 27IV KỸ THUẬT ĐƯỜNG ỐNG
So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25 chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong 9 chu kỳ xung nhịp
Trang 28IV KỸ THUẬT ĐƯỜNG ỐNG
Tuy nhiên, kỹ thuật ống dẫn pipeline có những xung đột xảy ra trong quá trình xử lý như:
Xung đột cấu trúc
Xung đột dữ liệu
Xung đột điều khiển
Trang 29XUNG ĐỘT CẤU TRÚC
Xung đột cấu trúc xảy ra khi
có hai lệnh cùng truy xuất
vào một tài nguyên phần
Trang 30XUNG ĐỘT DỮ LIỆU
Xung đột dữ liệu (Data hazard): là khi một lệnh dự kiến không thể thực thi trong đúng chu kỳ pipeline của nó do dữ liệu mà lệnh này cần vẫn chưa sẵn sàng
Trang 31XUNG ĐỘT DỮ LIỆU
Để khắc phục, ta dùng biện pháp Forwarding (xúc tiến sớm):
Sử dụng ngay kết quả vừa tính toán xong của lệnh trước
Không cần đợi kết quả cất lại thanh ghi
Cần có thêm kết nối trong lộ trình
Trang 32XUNG ĐỘT ĐIỀU KHIỂN
Xung đột điều khiển (Control/Branch hazard): là khi một lệnh dự kiến không thể thực thi trong đúng chu kỳ pipeline của nó do lệnh nạp vào không phải là lệnh sẳn sàng Xung đột này xảy ra trong trường hợp luồng thực thi chứa các lệnh nhảy hoặc lệnh rẽ nhánh
Trang 33XUNG ĐỘT ĐIỀU KHIỂN
Cách đơn giản nhất để giải quyết đó là gây trễ kịp thời để phát hiện nhánh cần nhảy tới
Trang 34Ngoài ra, người ta còn sử dụng các kỹ thuật khác để khắc phục các
sự cố của đường ống lệnh như:
Tổ chức lại lệnh.
Sử dụng đường dữ liệu nội đặc biệt
Thuật toán Tomasulo