kiến trúc máy tính nguyễn thanh sơn chương2 ngôn ngữ may tap lệnh sinhvienzone com

68 54 0
kiến trúc máy tính nguyễn thanh sơn chương2 ngôn ngữ may tap lệnh sinhvienzone com

Đ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

Kiến trúc Máy tính Khoa học & Kỹ thuật Máy tính Chương Ngơn ngữ Máy: Tập lệnh BK TP.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thành phần & Cấu trúc BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật https://fb.com/tailieudientucntt Máy tính Các bước thực lệnh  Nạp lệnh: từ nhớ  PC tăng lên sau lần nạp lệnh  PC lưu địa lệnh  Thực lệnh: giải mã & thực lệnh BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật https://fb.com/tailieudientucntt Máy tính Tập lệnh (Instruction Set)   Tập lệnh máy tính Máy tính khác có tập lệnh khác   Máy tính hệ trước thường có tập lệnh đơn giản   Tuy vậy, có nhiều điểm giống Lý do: dễ thực Một số máy tính có tập lệnh đơn giản BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật https://fb.com/tailieudientucntt Máy tính Tập lệnh MIPS    Được sử dụng môn học Stanford MIPS thương mại hóa MIPS Technologies (www.mips.com) Có thị phần lớn với lõi nhúng (embedded core)   Ứng dụng thiết bị điện tử, Mạng, lưu trữ, Camera, máy in, v.v., … Đặc thù cho nhiều kiến trúc tập lệnh  Tham khảo MIPS Data tear-out card, phụ lục B, E sách giáo khoa BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Phép tính số học  Phép cộng (+) trừ (-): toán hạng    nguồn đích add a, b, c # a = b + c Các phép tính số học có dạng Nguyên tắc thiết kế 1: Đơn giản dễ tạo tính quy tắc   Tính quy tắc đơn giản việc thực Đơn giản nâng hiệu xuất, giảm giá thành BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Ví dụ: thực phép số học  C code: f = (g + h) - (i + j);  Sau biên dịch thành MIPS code: add t0, g, h add t1, i, j sub f, t0, t1 # temp t0 = g + h # temp t1 = i + j # f = t0 - t1 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Tốn hạng ghi   Có nhiều lệnh số học sử dụng ghi làm tốn hạng MIPS có tệp 32 ghi 32-bit     Được đặt tên gợi nhớ (Ass Names):    Use for frequently accessed data Đánh số từ đến 31 32-bit liệu gọi “từ” (“word”) $t0, $t1, …, $t9 chứa giá trị tạm thời $s0, $s1, …, $s7 chứa biến Nguyên tắc thiết kế 2: Càng nhỏ, nhanh  Ngược lại với nhớ chính: hàng triệu ô nhớ BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Ví dụ: tốn hạng ghi  C code: f = (g + h) - (i + j);  f, …, j chứa $s0, …, $s4  Sau biên dịch thành MIPS code: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Tốn hạng nhớ      Bộ nhớ dùng để lưu trữ tốn hạng có cấu trúc  Arrays, structures, dynamic data   Nạp giá trị từ nhớ vào ghi Lưu giữ kết ghi nhớ  Mỗi địa định vị trí cho 8-bit byte  Địa truy xuất = Địa biểu diễn * byte Sử dụng cho phép số học Bộ nhớ định vị theo đơn vị byte từ xếp gồm bytes nhớ MIPS chứa liệu theo Big Endian   Big Endian: Byte có giá trị lớn nằm địa thấp Little Endian: Byte có giá trị nhỏ  Địa thấp BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 10 Xác định địa rẽ nhánh  Dạng lệnh rẽ nhánh gồm:   Opcode, ghi, target address Vị trí nhảy đến địa rẽ nhánh thường gần lệnh rẽ nhánh: nhảy tới lui  rs rt constant or address bits bits bits 16 bits Tương giá trị PC  BK op  Địa đích = PC + offset × PC tăng lên 4, lệnh thực TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 54 Địa nhảy trực tiếp   Đích lệnh Jump (j and jal) đâu đoạn lệnh chương trình op address bits 26 bits (Pseudo) Địa đích  = PC31…28 : (address × 4) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 55 Ví dụ: Xác định địa đích  Sử dụng lại đoạn code vòng lặp trước  Giả sử Loop địa 80000 Loop: sll $t1, $s3, 80000 0 19 add $t1, $t1, $s6 80004 22 32 lw $t0, 0($t1) 80008 35 bne $t0, $s5, Exit 80012 21 19 19 addi $s3, $s3, 80016 j 80020 Loop Exit: … 20000 80024 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 56 Rẽ nhánh xa   Trong trường hợp địa đích rẽ nhánh xa (vượt giá trị độ dời 16-bit), Hợp ngữ điều chỉnh lại code Ví dụ: beq $s0,$s1, L1 ↓ bne $s0,$s1, L2 j L1 L2: … BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 57 Tóm tắt Addressing Mode BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 58 Đồng  Hai xử lý dùng chung vùng nhớ    Hỗ trợ phần cứng yêu cầu    Tác vụ Atomic đọc/ghi nhớ Không cho phép truy cập khác, xảy tác vụ đọc ghi Các tác vụ thực với lệnh  BK P1 ghi thơng tin, sau P2 đọc Có tranh chấp truy cập, P1 & P2 không đòng với  Kết khơng xác định  Ví dụ: hốn vị register ↔ memory Hoặc cặp atomic lệnh TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 59 Đồng MIPS   Load linked: ll rt, offset(rs) Store conditional: sc rt, offset(rs)  Succeeds if location not changed since the ll   Fails if location is changed   Returns in rt Returns in rt Ví dụ: atomic swap (to test/set lock variable) BK try: add ll sc beq add $t0,$zero,$s4 $t1,0($s1) $t0,0($s1) $t0,$zero,try $s4,$zero,$t1 ;copy exchange value ;load linked ;store conditional ;branch store fails ;put load value in $s4 TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 60 Lệnh giả hợp ngữ   Phần lớn lệnh hợp ngữ tương đồng 1-1 với lệnh mã máy Lệnh giả (Pseudo): dễ nhớ, ví dụ → add $t0, $zero, $t1 blt $t0, $t1, L → slt $at, $t0, $t1 move $t0, $t1 bne $at, $zero, L  $at (register 1): assembler temporary BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 61 Biên dịch thực BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 62 Tạo Object Module   Assembler (hoặc compiler) biên dịch chương trình lệnh máy Thiết lập thơng tin để xây dựng chương trình để thực thi, bao gồm      BK  Header: đặc tả nội dung object module Text segment: lệnh biên dịch Static data segment: liệu cấp phát cho chương trình suốt trình tực thi Relocation info: định vị tuyệt đối chương trình nạp vào nhớ Symbol table: global definitions and external refs Debug info: liên quan đến gỡ rối chương trình TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 63 Liên kết Object Modules   Linker: Còn gọi link editor, cho phép ghép object file riêng lẻ lại với thành chương trình thống thực thi gọi executable file Quá trình ghép diễn theo bước     BK Xếp mã chương trình liệu lại với Xác định địa cho nhãn chương trình liệu So trùng tham cứu nội ngoại (internal/external reference) Một executable file có thành phần gần giống với object file trừ phần: relocation information, symbol table debugging information Các object file, chương trình người dùng (user) viết, có trình viết sẵn thư viện (library) compiler cung cấp, người dùng tạo lập hay từ nguồn chuyên biệt TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 64 Nạp chương trình  Nạp tập tin thực thi đĩa vào nhớ Đọc header để xác định dung lượng đoạn Tạo không gian địa ảo Khởi động liệu nhớ Set up arguments on stack Khởi động ghi (gồm $sp, $fp, $gp) Nhảy tới đầu chương trình   Sao thông số vào $a0, … gọi main Khi kết thúc trở từ main, exit syscall BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 65 Liên kết động  Chỉ liên kết/nạp thủ tục gọi    Yêu cầu phần code thủ tục cấp phát nhớ Tránh việc phát sinh cấp phát sinh kết nối với thư viện Tự động cập nhật phiên thư viện BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 66 Kết luận  Các nguyên tắc thiết kế  Các lớp phần mềm/cứng   Simplicity favors regularity Smaller is faster Make the common case fast Good design demands good compromises Biên dịch, Hợp ngữ, Phần cứng MIPS: mơ hình đặc thù kiến trúc tập lệnh RISC BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 67 Kết luận (tt.)  Đo đạc thực tập lệnh MIP với chương trình đánh giá BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 68 ... địa lệnh  Thực lệnh: giải mã & thực lệnh BK TP.HCM 4/5/2019 CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật https://fb .com/ tailieudientucntt Máy tính Tập lệnh (Instruction Set)   Tập lệnh máy tính. ..  Tập lệnh máy tính Máy tính khác có tập lệnh khác   Máy tính hệ trước thường có tập lệnh đơn giản   Tuy vậy, có nhiều điểm giống Lý do: dễ thực Một số máy tính có tập lệnh đơn giản BK TP.HCM... CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ tailieudientucntt 20 Biểu diễn lệnh  Lệnh mã hóa thành giá trị nhị phân   Các lệnh MIP     Gọi mã máy Mã hóa thành từ lệnh 32-bit

Ngày đăng: 28/01/2020, 23:05

Từ khóa liên quan

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

Tài liệu liên quan