Kiến trúc máy tính chương 2

70 3 0
Kiến trúc máy tính chương 2

Đ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 Các thành phần & Cấu trúc BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật 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 25-Aug-16 Khoa Khoa học & Kỹ thuật 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 25-Aug-16 Khoa Khoa học & Kỹ thuật 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính Tốn hạng ghi   Có nhiều lệnh số học sử dụng ghi làm toán hạng MIPS có tệp 32 ghi 32-bit     Được đặt tên gợi nhớ (Ass Names):    $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  BK Use for frequently accessed data Đánh số từ đến 31 32-bit liệu gọi “từ” (“word”) Ngược lại với nhớ chính: hàng triệu nhớ TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính Tốn hạng nhớ  Bộ nhớ dùng để lưu trữ tốn hạng có cấu trúc   Sử dụng cho phép số học      Arrays, structures, dynamic data Nạp giá trị từ nhớ vào ghi Lưu giữ kết ghi nhớ Bộ nhớ định vị theo đơn vị byte  Mỗi địa định vị trí cho 8-bit byte  Địa truy xuất = Địa biểu diễn * 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 56 Đị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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 57 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 Exit: … Loop 20000 80024 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 58 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 59 Tóm tắt Addressing Mode BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 60 Đồ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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 61 Đồ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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 62 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 63 Biên dịch thực BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 64 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 65 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ịn 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 66 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 67 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 68 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 69 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 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 70 ... 32- bit là:  BK 0000 0000 0000 0000 0000 0000 0000 101 12 = + … + 1? ?23 + 0? ?22 +1? ?21 +1? ?20 = + … + + + + = 1110 đến +4 ,29 4,967 ,29 5 (giá trị thập phân) TP.HCM 25 -Aug-16 Khoa Khoa học & Kỹ thuật Máy. .. Máy tính 16 Số nguyên có dấu dạng bù    Cho số n-bit sau: Tầm giá trị: ? ?2( n – 1) đến +2( n – 1) – Ví dụ:   BK 1111 1111 1111 1111 1111 1111 1111 110 02 = –1? ?23 1 + 1? ?23 0 + … + 1? ?22 +0? ?21 +0? ?20 ... dời 32  bytes/word lw $t0, 32( $s3) add $s1, $s2, $t0 # Nạp từ (4bytes) BK TP.HCM 25 -Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 11 Ví dụ 2: Tốn hạng nhớ  C code: A[ 12] = h + A[8];  h chứa $s2,

Ngày đăng: 11/08/2022, 11:38

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

Tài liệu liên quan