Bài giảng kiến trúc máy tính chương 2 ngôn ngữ máy tập lệnh

68 417 2
Bài giảng kiến trúc máy tính   chương 2 ngôn ngữ máy   tập lệ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

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 9/11/2015 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 9/11/2015 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 9/11/2015 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 9/11/2015 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 9/11/2015 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính Toá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):    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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính Ví dụ: toá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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính Toán hạng nhớ  Bộ nhớ dùng để lưu trữ toán hạng có cấu trúc   Sử dụng cho phép số học    Mỗi địa định vị trí cho 8-bit byte từ xếp gồm bytes nhớ   Nạp giá trị từ nhớ vào ghi Lưu giữ kết ghi nhớ Bộ nhớ định vị theo đơn vị byte   Arrays, structures, dynamic data Địa truy xuất = Địa biểu diễn * byte 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 9/11/2015 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 Exit: … Loop 20000 80024 BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 57 Tóm tắt Addressing Mode BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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ụ: hoán vị register ↔ memory Hoặc cặp atomic lệnh TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 61 Biên dịch thực BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 68 [...]... 101 12 = 0 + … + 1 23 + 0 22 +1 21 +1 20 = 0 + … + 8 + 0 + 2 + 1 = 1110 Giá trị 1 số nhị phân không dấu 32- bit sẽ là:  0 đến +4 ,29 4,967 ,29 5 (giá trị thập phân) BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 16 Số nguyên có dấu dạng bù 2    Cho 1 số n-bit như sau: Tầm giá trị: 2( n – 1) đến +2( n – 1) – 1 Ví dụ:   BK 1111 1111 1111 1111 1111 1111 1111 110 02 = –1 23 1 + 1 23 0 + … + 1 22 +0 21 ... TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 22 Ví dụ: Lệnh dạng R add $t0, $s1, $s2 special $s1 $s2 $t0 0 add 0 17 18 8 0 32 000000 10001 10010 01000 00000 100000 0000001000110010010000000010000 02 = 023 24 020 16 BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 23 Biểu diễn số dạng hệ 16  Hệ số 16    Rút gọn cách biểu diễn chuỗi nhị phân 4 bits cho mỗi số hex Ví dụ: eca8 6 420  1110 1100... 1111 … 1111 BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 18 Số âm có dấu  Đảo giá trị bit và cộng 1   Đảo giá trị bit: 1 → 0, 0 → 1 Ví dụ: giá trị (-) 2   +2 = 0000 0000 … 001 02 2 = 1111 1111 … 110 12 + 1 = 1111 1111 … 111 02 BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 19 Mở rộng bit với số có dấu  Biểu diễn với số bit nhiều hơn   Ví dụ: Trong tập lệnh MIPS     Đối với... với byte/(1 /2 từ) được nạp beq, bne: mở rộng số bit của độ dời địa chỉ Thêm giá bit dấu vào các bit mở rộng bên trái   Dữ nguyên giá trị +2: 0000 0010 => 0000 0000 0000 0010 2: 1111 1110 => 1111 1111 1111 1110 TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 20 Biểu diễn lệnh  Lệnh được mã hóa thành giá trị nhị phân   Các lệnh của MIP     Gọi là mã máy Mã hóa thành từ lệnh 32- bit Chia thành... nhưng cho phép lệnh chứa đồng nhất chỉ trong 32- bit Giữ dạng lệnh càng giống nhau càng tốt BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 25 Tổ chức chương trình    Lệnh được biểu diễn dạng nhị phân, giống như dữ liệu Lệnh và dữ liệu được lưu trong bộ nhớ Các chương trình có thể thực hiện trên các chương trình khác, ví dụ: compilers, linkers, …  Tương thích nhị phân cho phép chương trình thực... 1 22 +0 21 +0 20 = 2, 147,483,648 + 2, 147,483,644 = –410 Giá trị 1 số nhị phân có dấu 32- bit sẽ là  2, 147,483,648 đến +2, 147,483,647 TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 17 Số nguyên có dấu dạng bù 2 (tt.)  Bit 31 là bit dấu      1 có nghĩa là số âm (-) 0 có nghĩa là số không âm (+) Dạng –(–2n – 1) không tồn tại Các số không âm biểu diễn giống số không dấu và số bù 2 Vài số đặc... nhỏ: Mã lệnh, thanh ghi, Theo quy tắc! Các thanh ghi MIP được đánh số:    $t0 – $t7 tương ứng với thanh ghi 8 – 15 $t8 – $t9 tương ứng với thanh ghi 24 – 25 $s0 – $s7 tương ứng với thanh ghi 16 – 23 BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 21 Các lệnh dạng R  op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Cấu trúc thành phần của lệnh dạng R       op: Mã lệnh (opcode)... bởi i bits có nghĩa nhân 2i Dịch phải   Dịch phải các bit n vị trí và gán n bit bên trái giá trị 0 srl bởi i bits có nghĩa chia 2i (chỉ không dấu) BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 28 Tác vụ “VÀ” (AND)  Dùng để đánh dấu các bits trong 1 từ  Chọn một số bits, xóa số còn lại về 0 and $t0, $t1, $t2 BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 29 Tác vụ “hoặc” (OR)  Thêm... code: g = h + A[8];  g chứa trong $s1, h trong $s2, địa chỉ cơ sở của A chứa trong $s3  Sau khi biên dịch thành MIPS code:  Chỉ số 8 tương đương với độ dời 32  4 bytes/word lw $t0, 32( $s3) add $s1, $s2, $t0 # Nạp 1 từ (4bytes) BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 11 Ví dụ 2: Toán hạng bộ nhớ  C code: A[ 12] = h + A[8];  h chứa trong $s2, địa chỉ cơ sở của A chứa trong $s3  Sau khi... compilers, linkers, …  Tương thích nhị phân cho phép chương trình thực hiện trên các máy khác nhau  ISA chuẩn BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 26 Tác tác vụ luận lý   Các lệnh xử lý bit Có tác dụng rút trích hoặc thêm nhóm bit vào 1 từ BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính 27 Các tác vụ dịch (shift)   rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits ... lệnh BK TP.HCM 9/11 /20 15 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  ... 101 12 = + … + 1 23 + 0 22 +1 21 +1 20 = + … + + + + = 1110 Giá trị số nhị phân không dấu 3 2- bit là:  đến +4 ,29 4,967 ,29 5 (giá trị thập phân) BK TP.HCM 9/11 /20 15 Khoa Khoa học & Kỹ thuật Máy tính. ..    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 = 2, 147,483,648 + 2, 147,483,644

Ngày đăng: 03/01/2016, 10:18

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan