Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,31 MB
Nội dung
KIẾN TRÚC MÁY TÍNH Tuần KIẾN TRÚC BỘ LỆNH 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tuần 03 – Kiến trúc lệnh Mục tiêu: 1.Hiểu cách biểu diễn cách thực thi lệnh máy tính 2.Chuyển đổi lệnh ngôn ngữ cấp cao sang assembly mã máy 3.Chuyển đổi lệnh mã máy sang ngôn ngữ cấp cao 4.Biết cách lập trình ngơn ngữ assembly cho MIPS Slide dịch hình lấy từ sách tham khảo: Computer Organization and Design: The Hardware/Software Interface, Patterson, D A., and J L Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tuần – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Giới thiệu Để lệnh cho máy tính ta phải nói với máy tính ngơn ngữ máy tính Các từ ngơn ngữ máy tính gọi lệnh (instructions) tập hợp tất từ gọi lệnh (instruction set) Bộ lệnh chương MIPS, lệnh kiến trúc máy tính thiết kế từ năm 1980 Cùng với hai lệnh thông dụng ngày nay: ARM (rất giống MIPS) The Intel x86 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tuần – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Phép tính (Operations) Ví dụ: add a, b, c Chỉ dẫn cho máy tính thực cộng biến b với c ghi kết vào biến a, a = b + c Phép tính (operations) 03/2017 Toán hạng (operands) Copyrights 2017 CE-UIT All Rights Reserved Phép tính (Operations) Ví dụ C/Java a = b + c; d = a – e; 03/2017 C/Java f = (g + h) – (i + j); MIPS add a, b, c sub d, a, e Ví dụ add t0, g, h add t1, i, j sub f, t0, t1 Copyrights 2017 CE-UIT All Rights Reserved MIPS Ví dụ số lệnh MIPS 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tuần – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tốn hạng Có loại tốn hạng: 1.Toán hạng ghi (Register Operands) 2.Toán hạng nhớ (Memory Operands) 3.Toán hạng (Constant or Immediate Operands) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 10 Toán hạng Toán hạng nhớ (4): Ví dụ lệnh lw: Giả sử A mảng 100 phần tử (mỗi phần tử cần word lưu trữ) trình biên dịch kết hợp biến g h với ghi $s1 $s2 Giả định địa bắt đầu mảng A (hay địa sở/nền) chứa $s3 Hãy biên dịch đoạn lệnh ngôn ngữ C sau sang MIPS: Thực tế MIPS g = h + A[8]; Biên dịch: lw $t0, 8($s3) word bytes, lệnh phải là: lw $ t0, 32($s3) # $t0 nhận A[8] add $s1,$s2,$t0 # g = h + A[8] Hằng số lệnh truyền liệu (8) gọi offset, ghi chứa địa bắt đầu mảng ($s3) gọi ghi sở 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 16 Toán hạng Toán hạng nhớ (5): Lệnh chuyển liệu từ ghi nhớ, gọi lệnh lưu (store) (viết tắt sw − store word) Định dạng lệnh lưu: sw $s1,20($s2) offset Base address in base register •$s1: ghi chứa liệu cần lưu •Một số (20) ghi ($s2) sử dụng để truy cập vào nhớ Tổng số số nội dung ghi địa nhớ, nơi mà nội dung chứa ghi $s1 lưu vào 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 17 Toán hạng Toán hạng nhớ (6): Ví dụ lệnh sw: Giả sử biến h kết nối với ghi $s2 địa sở mảng A $s3 Biên dịch câu lệnh C thực sang MIPS? A[12] = h + A[8]; Biên dịch: lw $t0,32($s3) add $t0,$s2,$t0 sw $t0,48($s3) 03/2017 # $t0 = A[8] # $t0 = h + A[8] # A[12] = $t0 Copyrights 2017 CE-UIT All Rights Reserved 18 Toán hạng Toán hạng nhớ (7): Alignment Restriction: Trong MIPS, từ phải địa bội số Yêu cầu gọi “alignment restriction” nhiều kiến trúc buộc tuân theo quy định nhằm giúp việc truyền liệu nhanh Tuy nhiên số kiến trúc không bắt buộc quy định (Chú ý: Tại tuân theo điều giúp truyền liệu nhanh đọc chương sách tham khảo chính) Leftmost - “Big End”, “Big Endian” Rightmost - “Little End”, “Little Endian” MIPS thuộc dạng nào? 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 19 Toán hạng Toán hạng hằng: Một số/số tức thời (constant/immediate number) sử dụng trong phép tốn Ví dụ: addi $s3, $s3, # $s3 = $s3 + Toán hạng 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 20 Tốn hạng Tóm lại, có loại toán hạng lệnh MIPS 1.Toán hạng ghi (Register Operands) 2.Toán hạng nhớ (Memory Operands) 3.Toán hạng (Constant or Immediate Operands) Lưu ý: Các số MIPS âm nên khơng cần phép trừ ghi số tức thời MIPS Trong thực tế, có phiên khác MIPS làm việc với ghi 64 bits, gọi MIPS-64 MIPS xem xét môn học MIPS làm việc với ghi 32 bit, gọi MIPS-32 Trong phạm vi môn học này, MIPS dùng chung hiểu MIPS-32 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 21 Tuần – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 22 Số có dấu khơng dấu Con người dạy để suy nghĩ hệ số 10, số biểu diễn số Ví dụ, 123 số 10 = 1111011 số Số lưu trữ máy tính chuỗi tín hiệu điện cao thấp, chúng xem hệ số Ví dụ: Hình vẽ cho thấy word MIPS lưu trữ số 1011: Một word MIPS có 32 bit, biểu diễn số từ đến 32−1 (4.294.967.295) Bit trọng số nhỏ (The least significant bit – LSB): Bit bên phải từ nhớ (bit 0) Bit trọng số lớn (The most significant bit – MSB): Bit bên trái từ nhớ (bit 31) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 23 Số có dấu khơng dấu Số dương âm máy tính: Các máy tính sử dụng bù hai để biểu diễn nhị phân cho số có dấu • Nếu MSB = 0: số dương • Nếu MSB = 1: số âm Bit thứ 32 (MSB) gọi bit dấu 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 24 Số có dấu khơng dấu Nửa phần dương số, từ đến 2,147,483,647ten (231 – 1), biểu diễn thường Phần số âm biểu diễn: 1000…0000two = -2,147,483,648ten 1000…0001two = -2,147,483,647ten 1111…1111 = -1ten Bù hai có two số âm -2,147,483,648ten , mà khơng có số dương tương ứng 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 25 Số có dấu khơng dấu Cơng thức chuyển từ số bù hai sang số hệ 10: Lưu ý: Bit dấu nhân với -231, phần lại bit sau nhân với số dương giá trị số tương ứng chúng Ví dụ: đổi từ hệ sang hệ 10 Trả lời: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 26 Số có dấu khơng dấu Mở rộng số có dấu: Làm để chuyển đổi số nhị phân biểu diễn n bit thành số biểu diễn với nhiều n bit? Ví dụ: Chuyển đổi số nhị phân 16 bit số 2ten -2ten thành số nhị phân 32 bit 2ten: -2ten: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 27 Số có dấu không dấu Khi làm việc với lệnh MIPS, lưu ý: •Mở rộng có dấu (Sign-extend) •Mở rộng không dấu (Zero-extend) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 28 Tuần – Kiến trúc lệnh Tổng kết: Giới thiệu lệnh máy tính, tập lệnh 32 bits) (Tập lệnh sử dụng cụ thể môn học MIPS Tập lệnh bao gồm nhóm lệnh bản: Nhóm lệnh logic, nhóm lệnh số học, nhóm lệnh trao đổi liệu nhóm lệnh nhảy Với MIPS, toán hạng cho lệnh chia thành ba nhóm: nhóm tốn hạng ghi, nhóm tốn hạng nhớ nhóm tốn hạng số tức thời Nhắc lại số có dấu số khơng dấu 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 29 Tuần – Kiến trúc lệnh Lý thuyết: Đọc sách tham khảo • Mục: 2.1, 2.2, 2.3, 2.4 • Sách: Computer Organization and Design: The Hardware/Software Interface, Patterson, D A., and J L Hennessy, Morgan Kaufman, Revised Fourth Edition, 2011 Bài tập: file đính kèm 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 30 ... cho máy tính ta phải nói với máy tính ngơn ngữ máy tính Các từ ngơn ngữ máy tính gọi lệnh (instructions) tập hợp tất từ gọi lệnh (instruction set) Bộ lệnh chương MIPS, lệnh kiến trúc máy tính. .. hạn: MIPS -32 , ARM Cortex A8-40) Kích thước ghi kiến trúc MIPS 32 bit; nhóm 32 bit xuất thường xuyên nên chúng đặt tên “từ” (word) kiến trúc MIPS (Lưu ý: “từ” kiến trúc lệnh khác khơng 32 bit).. .Tuần 03 – Kiến trúc lệnh Mục tiêu: 1.Hiểu cách biểu diễn cách thực thi lệnh máy tính 2.Chuyển đổi lệnh ngơn ngữ cấp cao sang assembly mã máy 3. Chuyển đổi lệnh mã máy sang ngơn ngữ