1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính: Tuần 4 - Đại học Công nghệ Thông tin

28 55 0

Đ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

Cấu trúc

  • Tuần 4

  • Tuần 04 – Kiến trúc bộ lệnh (tiếp theo)

  • Tuần 4 – Kiến trúc bộ lệnh

  • Biểu diễn lệnh

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Các phép tính Logic

  • Slide 17

  • Các lệnh điều kiện và nhảy

  • Slide 19

  • Slide 20

  • Slide 21

  • Slide 22

  • Slide 23

  • Slide 24

  • Slide 25

  • Chuyển đổi và bắt đầu một chương trình

  • Slide 27

  • Slide 28

Nội dung

Mục tiêu của bài giảng Kiến trúc máy tính - Tuần 4: Kiến trúc bộ lệnh cung cấp cho người học các kiến thức: Biểu diễn lệnh, các phép tính Logic, các lệnh điều kiện và nhảy. Mời các bạn cùng tham khảo nội dung chi tiết.

KIẾN TRÚC MÁY TÍNH Tuần KIẾN TRÚC BỘ LỆNH (Tiếp theo) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Tuần 04 – Kiến trúc lệnh (tiếp theo) 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 Biểu diễn lệnh  Làm lệnh (add $t0, $s1, $s2) lưu giữ máy tính? Máy tính làm việc với tín hiệu điện tử thấp cao, lệnh lưu giữ máy tính phải biểu diễn chuỗi "0" "1", gọi mã máy/lệnh máy  Ngôn ngữ máy (Machine language): biểu diễn nhị phân sử dụng để giao tiếp hệ thống máy tính  Để chuyển đổi từ lệnh sang mã máy (machine code) sử dụng định dạng lệnh (instruction format) Định dạng lệnh: Một hình thức biểu diễn lệnh bao gồm trường số nhị phân Ví dụ định dạng lệnh: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh  Ví dụ: Chuyển đổi lệnh cộng MIPS thành lệnh máy: add $t0,$s1,$s2 Với định dạng lệnh: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh  Trả lời: Chuyển đổi lệnh cộng MIPS thành lệnh máy: add $t0, $s1, $s2 Định dạng lệnh: Mã máy:  Mỗi phân đoạn định dạng lệnh gọi trường (ví dụ trường op, rs, rt, rd, shamt, funct)  Trong ngôn ngữ assembly MIPS, ghi $s0 đến $s7 có số tương ứng từ 16 đến 23, ghi $t0 đến $t7 có số tương ứng từ đến 15  Các trường rs, rt, rd chứa số ghi tương ứng; trường op funct có giá trị cho loại lệnh MIPS quy định  Trường ‘shamt’? Tra bảng “MIPS reference data” (trang sách tham khảo chính) để có giá trị cần thiết 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh  Từ mã máy có, máy tính hiểu? op rs rt rd shamt funct  Trường (op, tức opcode có giá trị 0) trường cuối (funct, tức function có giá trị 20hex) kết hợp báo cho máy tính biết lệnh cộng (add)  Trường thứ hai (rs) cho biết toán hạng thứ phép toán cộng (rs có giá trị 17, tức tốn hạng thứ phép công ghi $s1)  Trường thứ ba (rt) cho biết toán hạng thứ hai phép tốn cộng (rt có giá trị 18, tức tốn hạng thứ hai phép cơng ghi $s2)  Trường thứ tư (rd) ghi đích chứa tổng phép cộng (rd có giá trị 8, tức ghi đích chứa tổng $t0)  Trường thứ năm (shamt) không sử dụng lệnh add 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh Các dạng khác định dạng lệnh MIPS : R-type R-format (cho lệnh làm việc với ghi) I-type I-format (cho lệnh có liên quan đến số tức thời truyền liệu) J-type J-format (lệnh nhảy, lệnh định) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh Các dạng khác định dạng lệnh MIPS : op (Hay gọi opcode, mã tác vụ): Trong ba định dạng lệnh, trường op chiếm bits Khi máy tính nhận mã máy, phân tích op cho máy tính biết lệnh (*), từ biết mã máy thuộc loại định dạng nào, sau trường phân tích Lưu ý: MIPS quy định nhóm lệnh làm việc với ghi (R-format) có op Vì vậy, với R-format, cần dùng thêm trường ‘funct’ để biết xác lệnh cần thực lệnh (*) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved Biểu diễn lệnh Các trường R-format: rs: Thanh ghi chứa toán hạng nguồn thứ rt: Thanh ghi chứa toán hạng nguồn thứ hai rd: Thanh ghi tốn hạng đích, nhận kết phép toán shamt: Chỉ dùng câu lệnh dịch bit (shift) - chứa số lượng bit cần dịch (không sử dụng chứa 0) funct: Kết hợp với op (khi op 0) biết mã máy lệnh 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 10 Biểu diễn lệnh Kết luận: 1.Các lệnh biểu diễn số 2.Chương trình lưu trữ nhớ đọc hay viết giống số  Xem lệnh liệu cách tốt để đơn giản hóa nhớ phần mềm máy tính Để chạy/thực thi chương trình, đơn giản cần nạp chương trình liệu vào nhớ; sau báo với máy tính để bắt đầu thực thi chương trình vị trí mà cấp phát 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 14 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 15 Các phép tính Logic Hình 7: C Java phép tính logic lệnh MIPS tương ứng Shift: Lệnh dịch chuyển bit AND: phép toán logic “VÀ” OR: phép toán logic “HOẶC” NOT: kết bit ngược lại NOR: NOT OR Hằng số hữu ích phép tốn logic AND OR phép tính số học, MIPS cung cấp lệnh trực tiếp andi ori 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 16 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 17 Các lệnh điều kiện nhảy Một máy tính (PC) khác với máy tính tay (calculator) dựa khả đưa định Trong ngơn ngữ lập trình, đưa định thường biểu diễn cách sử dụng câu lệnh “if”, kết hợp với câu lệnh “go to” Ngôn ngữ Assembly MIPS chứa lệnh hỗ trợ định, tương tự với câu lệnh "if" “go to" Ví dụ: beq register1, register2, L1 Lệnh có nghĩa đến câu lệnh có nhãn L1 giá trị ghi register1 giá trị ghi register2 Từ ‘beq’ viết tắt “branch if equal” (rẽ nhánh bằng)  Các lệnh ‘beq’ gọi lệnh rẽ nhánh có điều kiện 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 18 Các lệnh điều kiện nhảy Các lệnh rẽ nhánh có điều kiện (conditional branch) MIPS: branch on equal beq $s1, $s2 25 if ($s1 == $s2) goto PC + + 100 branch on not equal bne $s1, $s2, 25 if ($s1 != $s2) goto PC + + 100 set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = Conditional set on less than unsigned branch slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; else $s1 = slt $s1, $s2, 20 if ($s2 < 20) $s1 = 1; else $s1 = set on less than slt $s1, $s2, 20 immediate unsigned if ($s2 < 20) $s1 = 1; else $s1 = set on less than immediate 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 19 Các lệnh điều kiện nhảy Ngồi cịn có lệnh rẽ nhánh có điều kiện khác, nhóm lệnh giả (pseudo instructions) Conditional branch (pseudo instruction) branch on less than blt branch greater than bgt branch less than or equal ble branch greater than or equal bge (Tham khảo trang số 2, sách tham khảo chính) 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 20 Các lệnh điều kiện nhảy Cặp (slt  beq) tương đương với if(… ≥ …) goto… Cặp (slt  bne) tương đương với if(… < …) goto… 03/2017 slt $t0,$s0,$s1 beq $t0,$zero,skip skip # $t0 = if $s0 = $s1, goto slt $t0,$s0,$s1 bne $t0,$zero,skip # $t0 = if $s0 = $s1 # if $s0 < $s1 Copyrights 2017 CE-UIT All Rights Reserved 21 Các lệnh điều kiện nhảy Các lệnh rẽ nhánh không điều kiện (unconditional branch) MIPS: Unconditional jump 03/2017 jump j label jump register jr $ra jump and link jal label Copyrights 2017 CE-UIT All Rights Reserved 22 Các lệnh điều kiện nhảy  Biên dịch if-then-else từ ngôn ngữ cấp cao sang assembly MIPS: Cho đoạn mã sau: if (i == j) f = g + h; else f = g – h; Biết f, g, h, i j biến Nếu năm biến f đến j tương ứng với ghi $s0 đến $s4, mã MIPS cho câu lệnh if gì? Trả lời: bne $s3,$s4,Else # go to Else if i != j add $s0, $s1, $s2 # f = g + h (skipped if i != j) j exit # go to Exit Else: sub $s0, $s1, $s2 # f = g – h (skipped if i = j) exit: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 23 Các lệnh điều kiện nhảy  Biên dịch vịng lặp while từ ngơn ngữ cấp cao sang assembly MIPS Cho đoạn mã sau: while (save[i] == k) i += 1; Giả định i k tương ứng với ghi $s3 $s5; địa nền/cơ sở mảng save lưu $s6 Mã assembly MIPS tương ứng với đoạn mã C gì?  Trả lời: Loop: sll $t1,$s3,2 # Temp reg $t1 = * i add $t1,$t1,$s6 # $t1 = address of save[i] lw $t0,0($t1) # Temp reg $t0 = save[i] bne $t0,$s5, Exit # go to Exit if save[i] != k addi $s3,$s3,1 #i=i+1 j Loop # go to Loop Exit: 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 24 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 25 Chuyển đổi bắt đầu chương trình Bốn bước việc chuyển đổi chương trình C tập tin đĩa vào chương trình chạy máy tính 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 26 Tuần – Kiến trúc lệnh Tổng kết: MIPS có ba định dạng lệnh: R-format, I-format, J-format Từ đó, hiểu cách lệnh từ ngôn ngữ cấp cao chuyển thành assembly MIPS, từ assembly MIPS chuyển thành mã máy dựa theo ba định dạng Biết quy tắc hoạt động nhóm lệnh logic MIPS Biết quy tắc hoạt động nhóm lệnh nhảy (nhảy có điều kiện không điều kiện) MIPS 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 27 Tuần – Kiến trúc lệnh  Lý thuyết: Đọc sách tham khảo • Mục: 2.5, 2.6, 2.7 • 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 28 ... trình C tập tin đĩa vào chương trình chạy máy tính 03/2017 Copyrights 2017 CE-UIT All Rights Reserved 26 Tuần – Kiến trúc lệnh Tổng kết: MIPS có ba định dạng lệnh: R-format, I-format, J-format Từ.. .Tuần 04 – Kiến trúc lệnh (tiếp theo) 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... CE-UIT All Rights Reserved 24 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

Ngày đăng: 08/05/2021, 16:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN