Bài giảng Kiến trúc máy tính - Chương 3: Phép toán số học trên máy tính

44 1 0
Bài giảng Kiến trúc máy tính - Chương 3: Phép toán số học trên máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CE Kiến Trúc Máy Tính Chương PHÉP TỐN SỐ HỌC TRÊN MÁY TÍNH CE PHÉP TỐN SỐ HỌC TRÊN MÁY TÍNH Giới thiệu Phép cộng & Phép trừ Phép Nhân Phép chia Số chấm động CE PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH CE PHÉP TỐN SỐ HỌC TRÊN MÁY TÍNH Giới thiệu Phép cộng & Phép trừ Phép Nhân Phép chia Số chấm động CE Giới thiệu Các nội dung lưu trữ máy tính điều biểu diễn dạng bit (giá trị biểu diễn dạng nhị phân, chuỗi ký tự 0, 1) Trong chương 2, số nguyên lưu trữ máy tính chuỗi nhị phân, hay lệnh thực thi lưu dạng nhị phân Vậy dạng số khác biểu diễn ? Ví dụ: ■ phần lẻ số thực biểu diễn, lưu trữ nào? ■ Điều xảy kết phép toán sinh số lớn khả biểu diễn, hay lưu trữ ? ■ Và câu hỏi đặt phép nhân phép chia phần cứng máy tính thực nào? CE PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH Giới thiệu Phép cộng & Phép trừ Phép Nhân Phép chia Số chấm động CE Phép Cộng & Phép Trừ Phép cộng: Ví dụ: 610 + 710 610 – 710 Các bước thực phép cộng số nhị phân: anan-1…a1a0 + bnbn-1…b1b0 Thực phép cộng từ phải sang trái (hàng thứ hàng n) Số nhớ hàng cộng thứ i cộng vào cho hàng cộng thứ i + CE Phép Cộng & Phép Trừ Phép trừ: Thực phép trừ cho số anan-1…a1a0 – bnbn-1 … b1b0 Thực phép trừ từ phải sang trái (hàng thứ hàng n) Số mượn hàng thứ i cộng vào cho số trừ hàng từ i + Ví dụ: thực phép toán: – Cách 1: Thực phép trừ bình thường Cách 2: Chuyển số trừ sang dạng bù Sau cộng với số bị trừ CE Phép Cộng & Phép Trừ Overflow (Tràn số) Trong phép cộng trừ, điều quan trọng cần lưu ý phép tốn có bị tràn hay khơng Hai trường hợp liên quan: • Đối với số khơng dấu (Unsigned number) • Đối với số có dấu (Signed number) CE Phép Cộng & Phép Trừ Overflow số không dấu (Unsigned number) Ví dụ 1: A = 11001111 - Số không dấu - Dùng bit biểu diễn A = CF(16) B = 13(16) A+B=? B = 10011  B = 00010011 (điền đủ bit) Cộng lại: 11001111 00010011 11100010 => không bị tràn Vậy A + B = E2 10 CE Ví dụ 3: 50(8) x 23(8), using 8-bit number Iteration Step Multiplicand Product/ Multiplier Initial values 0101 0000 0000 0000 0010 0011 Prod = Prod + Mcand 0101 0000 0101 0000 0010 0011 Shift right Product 0101 0000 0010 1000 0001 0001 Prod = Prod + Mcand 0101 0000 0111 1000 0001 0001 Shift right Product 0101 0000 0011 1100 0000 1000 lsb = 0, no op 0101 0000 0011 1100 0000 1000 Shift right Product 0101 0000 0001 1110 0000 0100 lsb = 0, no op 0101 0000 0001 1110 0000 0100 Shift right Product 0101 0000 0000 1111 0000 0010 lsb = 0, no op 0101 0000 0000 1111 0000 0010 Shift right Product 0101 0000 0000 0111 1000 0001 lsb = 0, no op 0101 0000 0101 0111 1000 0001 Shift right Product 0101 0000 0010 1011 1100 0000 lsb = 0, no op 0101 0000 0010 1011 1100 0000 Shift right Product 0101 0000 0001 0101 1110 0000 lsb = 0, no op 0101 0000 0001 0101 1110 0000 Shift right Product 0101 0000 0000 1010 1111 0000 30 Phép Nhân CE Phép nhân có dấu  Cách đơn giản để thực phép nhân có dấu tách phần trị tuyệt đối dấu số bị nhân số nhân  Lấy phần trị tuyệt đối dương tương ứng số nhân số bị nhân nhân  Sau xét dấu cho tích dựa vào dấu số nhân số bị nhân (có thể dùng phép XOR) 31 Phép Nhân CE Phép nhân MIPS  MIPS sử dụng hai ghi đặc biệt 32 bit Hi Lo để chứa 64 bit kết phép nhân Để lấy giá trị từ ghi Hi Lo ghi khác, sử dụng hai lệnh dành riêng mfhi mà mflo  Nhân hai số không dấu, MIPS cung cấp lệnh multu Nhân hai số có dấu, MIPS cung cấp lệnh mult 32 CE Phép Nhân Giới thiệu ý tưởng cải tiến phép nhân: Phép nhân theo cách thực tính nhanh (Sinh viên tự tham khảo thêm) Sơ đồ thực phép tính nhanh mức phần cứng 33 CE PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH Giới thiệu Phép cộng & Phép trừ Phép Nhân Phép chia Số chấm động 34 CE Phép Chia  Ngược lại phép nhân phép chia Trường hợp ngoại lệ – chia Ví dụ: Divisor: số chia Dividend: số bị chia Quotient: thương số Remainder: số dư 35 CE Phép Chia Giải thuật thực phép chia phần cứng Khi khởi tạo, số chia đưa vào cao Divisor sll Q, Q0=1 Khi khởi tạo, số bị chia đưa vào thấp Remainder Hình Sơ đồ khối thực phép chia mức phần cứng Chú ý: Hai số chia bị chia số dương, kết thương số dư khơng âm Thực phép tốn số dương, đó, thương tốn hạng phép chia có giá trị 32 bit, bỏ qua số có dấu Hình Lưu đồ giải thuật phép chia 36 CE Ví dụ cho phép chia (2 ví dụ) Ví dụ 1: Thực phép chia 50(8)/23(8) (sử dụng số bit khơng dấu) theo cấu trúc phần cứng hình Khi khởi tạo, số chia đưa vào cao Divisor sll Q, Q0=1 + Khi khởi tạo, số bị chia đưa vào thấp Remainder Lưu đồ giải thuật kèm cho cấu trúc phần cứng 37 Khi khởi tạo, số chia đưa vào CE cao Divisor Ví dụ 1: 50(8)/23(8) = ? Dividend = 508 = 101 0002 Divisor = 238 = 010 0112 Khi khởi tạo, số bị chia đưa vào thấp Remainder Cấu trúc phần cứng hình vẽ làm việc phép chia số 32 bits Có: ghi divisor 64 bits ghi quotient 32 bits ghi remainder 64 bits Ví dụ yêu cầu phép chia dùng số bits không dấu, sử dụng cấu trúc phần cứng tương tự hình, ghi ví dụ cần khởi tao với số bit tương ứng: => ghi divisor 12 bits (giá trị khởi tao 010011000000 – bits cao giá trị divisor, bits thấp đưa vào ) ghi quotient bits (giá trị khởi tạo 000000) ghi remainder 12 bits (giá trị khởi tạo 000000101000 - bits cao đưa vào, bits thấp đưa dividend vào) -Sau khởi tạo xong Mỗi vịng lặp (interation) gồm bước: • B1 Lấy toàn remainder trừ divisor (hiệu lưu đè lên giá trị remainder có) • B2 Kiểm tra hiệu vừa tính âm hay dương (kiểm tra bit trọng số cao nhất, âm, dương): Nếu âm: - Lấy giá trị remainder cộng với divisor, tổng lưu lại vào remainder - Dich trái quotient bit - Thêm vào bit quotient (thật thao tác khơng cần, dịch trái bit mặc định thêm vào bit nó) Nếu dương: - Dich trái quotient bit - Chuyển bit quotient thành • B3 Dịch phải Divisor bit - Số vòng lặp cho giải thuật số bit dùng biểu diễn + (ví dụ u cầu dùng số bit, có vòng lặp) - Sau kết thúc số vòng lặp, giá trị ghi quotient kết phép chia, giá trị remainder phần dư Step Action Quotient Divisor Remainder Initial Vals (Giá trị khởi tạo) 000 000 010 011 000000 000000 101000 Ví dụ 1: 50(8)/23 (8) = ? CE Dividend = 508 = 101 0002 Divisor = 238 = 010 0112 Step Action Initial Vals R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit R=R–D R> 0, dịch trái Q bit, Q0 = Dịch phải D bit R=R–D R < 0, R = R + D, dịch trái Q bit Dịch phải D bit Quotient 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 001 000 001 000 001 000 010 000 010 Divisor 010 011 000 000 010 011 000 000 010 011 000 000 001 001 100 000 001 001 100 000 001 001 100 000 000 100 110 000 000 100 110 000 000 100 110 000 000 010 011 000 000 010 011 000 000 010 011 000 000 001 001 100 000 001 001 100 000 001 001 100 000 000 100 110 000 000 100 110 000 000 100 110 000 000 010 011 000 000 010 011 000 000 010 011 000 000 001 101 Thương số Remainder 000 000 101 000 101 101 101 000 000 000 101 000 000 000 101 000 110 111 001 000 000 000 101 000 000 000 101 000 111 011 111 000 000 000 101 000 000 000 101 000 111 110 010 000 000 000 101 000 000 000 101 000 111 110 111 100 000 000 101 000 000 000 101 000 000 000 000 010 000 000 000 010 000 000 000 010 111 111 101 111 000 000 000 010 000 000 000 010 Phần dư Ký hiệu: Q, D R viết tắt Quotion, Divisor Remainder 39 CE Phép Chia Giải thuật thực phép chia phần cứng Ví dụ 2: thực hiệp phép chia cho số bit sau: 710 : 210 hay 01112 : 00102 tức Remainder = Remaider + Divisor Bảng thực giải thuật phép chia theo bước 40 Phép Chia CE Giải thuật thực phép chia phần cứng có cải tiến (Sinh viên tự tham khảo thêm) Remainder Quotient Cấu trúc phần cứng phép chia có cải tiến 41 Phép Chia CE Phép chia có dấu Nếu phép chia có dấu  Bước Bỏ qua dấu, thực phép chia thông thường  Bước Xét dấu  Dấu thương trái với dấu dấu số chia số bị chia trái ngược  Dấu số dư: Các xác định bit dấu cho số dư công thức sau: Số bị chia = Thương x Số chia + Số dư  Số dư = Số bị chia – (Thương x Số chia) Ví dụ: – : +2 thương = -3, dư = –1 Kiểm tra kết quả: –7 = –3 x + (–1) = –6 – 42 Phép Chia CE Phép chia MIPS  Trong cấu trúc phần cứng cho phép nhân có cải tiến, hai ghi Hi Lo ghép lại để hoạt động ghi 64 bit Product/Multiplier Quan sát cấu trúc phần cứng cho phép nhân có cải tiến phép chia có cải tiến, rõ ràng hai cấu trúc tương tự Từ đó, MIPS sử dụng hai ghi Hi Lo cho phép nhân chia  Sau phép chia thực xong:  Hi chứa phần dư  Lo chứa thương số  Để xử lý cho số có dấu số khơng dấu, MIPS có lệnh: phép chia có dấu (div), phép chia khơng dấu (divu) 43 CE PHÉP TỐN SỐ HỌC TRÊN MÁY TÍNH Giới thiệu Phép cộng & Phép trừ Phép Nhân Phép chia Số chấm động 44

Ngày đăng: 14/10/2023, 14:08

Tài liệu cùng người dùng

Tài liệu liên quan