Bài giảng Kiến trúc máy tính (Computer Architecture) Chương 5

116 16 0
Bài giảng Kiến trúc máy tính (Computer Architecture) Chương 5

Đ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

NKK-HUST c om Kiến trúc máy tính cu u du on g th an co ng Chương KIẾN TRÚC TẬP LỆNH Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 2017 Kiến trúc máy tính CuuDuongThanCong.com 194 https://fb.com/tailieudientucntt NKK-HUST Nội dung học phần cu u du on g th an co ng c om Chương Giới thiệu chung Chương Cơ logic số Chương Hệ thống máy tính Chương Số học máy tính Chương Kiến trúc tập lệnh Chương Bộ xử lý Chương Bộ nhớ máy tính Chương Hệ thống vào-ra Chương Các kiến trúc song song 2017 Kiến trúc máy tính CuuDuongThanCong.com 195 https://fb.com/tailieudientucntt NKK-HUST om Nội dung chương cu u du on g th an co ng c 5.1 Giới thiệu chung kiến trúc tập lệnh 5.2 Lệnh hợp ngữ toán hạng 5.3 Mã máy 5.4 Cơ lập trình hợp ngữ 5.5 Các phương pháp định địa 5.6 Dịch chạy chương trình hợp ngữ 2017 Kiến trúc máy tính CuuDuongThanCong.com 196 https://fb.com/tailieudientucntt NKK-HUST 5.1 Giới thiệu chung kiến trúc tập lệnh om Kiến trúc tập lệnh (Instruction Set Architecture): cách nhìn máy tính người lập trình Vi kiến trúc (Microarchitecture): cách thực kiến trúc tập lệnh phần cứng Ngơn ngữ máy tính: th g Hợp ngữ (assembly language): n n dạng lệnh đọc người biểu diễn dạng text on n du n Ngôn ngữ máy (machine language): n n n cu u n an co n ng c n gọi mã máy (machine code) dạng lệnh đọc máy tính biểu diễn bit 2017 Kiến trúc máy tính CuuDuongThanCong.com 197 https://fb.com/tailieudientucntt NKK-HUST Mơ hình lập trình máy tính om Bộ nhớ CPU lệnh lệnh lệnh lệnh ng c PC th an co Đơn vị điều khiển on g ALU cu u du Tập ghi liệu liệu liệu liệu Vào-ra 2017 Kiến trúc máy tính CuuDuongThanCong.com 198 https://fb.com/tailieudientucntt NKK-HUST Bộ đếm chương trình PC (Program Counter) ghi CPU giữ địa lệnh cần nhận vào để thực lệnh c n om CPU nhận lệnh từ nhớ ng lệnh th lệnh nhận vào lệnh g Sau lệnh nhận vào, nội dung PC tự động tăng để trỏ sang lệnh PC lệnh on n lệnh co CPU phát địa từ PC đến nhớ, lệnh nhận vào an n du lệnh PC tăng bao nhiêu? n n cu u n Tùy thuộc vào độ dài lệnh vừa nhận MIPS: lệnh có độ dài 32-bit, PC tăng 2017 Kiến trúc máy tính CuuDuongThanCong.com 199 https://fb.com/tailieudientucntt NKK-HUST Giải mã thực lệnh om Bộ xử lý giải mã lệnh nhận phát tín hiệu điều khiển thực thao tác mà lệnh yêu cầu Trao đổi liệu CPU nhớ cổng vào-ra n du Thực phép toán số học phép toán logic với liệu (được thực ALU) cu u n on g n an Các kiểu thao tác lệnh: th n co ng c n Chuyển điều khiển chương trình (rẽ nhánh, nhảy) 2017 Kiến trúc máy tính CuuDuongThanCong.com 200 https://fb.com/tailieudientucntt NKK-HUST CPU đọc/ghi liệu nhớ om Với lệnh trao đổi liệu với nhớ, CPU cần biết phát địa ngăn nhớ cần đọc/ghi Địa là: an th cu u n g n Hằng số địa cho trực tiếp lệnh Giá trị địa nằm ghi trỏ Địa = Địa sở + giá trị dịch chuyển on n du n co ng c n 2017 Kiến trúc máy tính CuuDuongThanCong.com 201 https://fb.com/tailieudientucntt NKK-HUST c ng on g th an n Trong lệnh cho số địa cụ thể CPU phát giá trị địa đến nhớ để tìm ngăn nhớ liệu cần đọc/ghi co n om Hằng số địa Hằng số địa liệu liệu liệu liệu cần đọc/ghi liệu liệu liệu cu u du liệu 2017 Kiến trúc máy tính CuuDuongThanCong.com 202 https://fb.com/tailieudientucntt NKK-HUST c ng liệu liệu liệu liệu cần đọc/ghi liệu liệu liệu liệu cu u du on g n Thanh ghi th an n Trong lệnh cho biết tên ghi trỏ Thanh ghi trỏ chứa giá trị địa CPU phát địa để tìm ngăn nhớ liệu cần đọc/ghi co n om Sử dụng ghi trỏ 2017 Kiến trúc máy tính CuuDuongThanCong.com 203 https://fb.com/tailieudientucntt NKK-HUST Ví dụ mã lệnh j jr # nhảy đến vị trí có nhãn L1 # nhảy đến vị trí có địa $ra; # $ra chứa địa trở om L1 $ra jump target address 25 0 0 0 0 0 0 0 0 0 0 0 0 1 1 an J op co 31 ng c j jr on g th j=2 31 R op cu u From PC du x x x x 0 0 0 1 1 0 0 0 0 0 0 0 0 25 Effective target address (32 bits) rs 20 rt rd 15 10 sh fn 0 0 0 1 1 0 0 0 0 0 0 0 0 0 ALU instruction Source register 2017 Unused Unused Unused jr = Kiến trúc máy tính CuuDuongThanCong.com 295 https://fb.com/tailieudientucntt NKK-HUST 0x8000 add $t1, $t1, $s6 0x8004 lw $t0, 0($t1) 0x8008 bne $t0, $s5, Exit 9 22 32 35 0x800C 21 0x8010 19 19 0x8014 ng co an g on 0x2000 0x8018 cu u Exit: … Loop du j 19 th addi $s3, $s3, c $t1, $s3, Loop: sll om Ví dụ mã hóa lệnh 2017 Kiến trúc máy tính CuuDuongThanCong.com 296 https://fb.com/tailieudientucntt NKK-HUST Rẽ nhánh xa Nếu đích rẽ nhánh xa để mã hóa với offset 16-bit, assembler viết lại code Ví dụ ng n c om n th an co beq $s0, $s1, L1 (lệnh kế tiếp) on g L1: cu u du thay đoạn lệnh sau: bne $s0, $s1, L2 j L1 L2: (lệnh kế tiếp) L1: 2017 Kiến trúc máy tính CuuDuongThanCong.com 297 https://fb.com/tailieudientucntt NKK-HUST Tóm tắt phương pháp định địa Định địa tức Immediate addressing Định địa ghi Register addressing rs Immediate om rt rt rd funct Registers co ng op rs c op Register Base addressing op rs rt Address Register Memory + Byte Halfword Word du on g th an Định địa sở PC-relative addressing op cu u Định địa tương PC 2017 rt Address PC Memory + Word Pseudodirect addressing op Định địa giả trực tiếp rs Address PC Memory Word Kiến trúc máy tính CuuDuongThanCong.com 298 https://fb.com/tailieudientucntt NKK-HUST n ng co g MIPS Reference Data cu u du n an n MARS MipsIt QtSpim th n c Các phần mềm lập trình hợp ngữ MIPS: on n om 5.6 Dịch chạy chương trình hợp ngữ 2017 Kiến trúc máy tính CuuDuongThanCong.com 299 https://fb.com/tailieudientucntt NKK-HUST Dịch chạy ứng dụng om High Level Code ng c Compiler an co Assembly Code th Assembler cu u du on g Object File Object Files Library Files Linker Executable Loader Memory 2017 Kiến trúc máy tính CuuDuongThanCong.com 300 https://fb.com/tailieudientucntt NKK-HUST Chương trình nhớ om Tồn cục/tĩnh: cấp phát trước chương trình bắt đầu thực Động: cấp phát chương trình thực n n du Bộ nhớ: 232 bytes = GiB Địa từ 0x00000000 đến 0xFFFFFFFF cu u n on g th n an co n c n Các lệnh (instructions) Dữ liệu ng n 2017 Kiến trúc máy tính CuuDuongThanCong.com 301 https://fb.com/tailieudientucntt NKK-HUST Bản đồ nhớ MIPS Segment Address c Reserved om 0xFFFFFFFC ng 0x80000000 0x7FFFFFFC co Stack an Dynamic Data 0x10010000 Heap Static Data cu u du on g th 0x1000FFFC 0x10000000 0x0FFFFFFC Text 0x00400000 0x003FFFFC Reserved 0x00000000 2017 Kiến trúc máy tính CuuDuongThanCong.com 302 https://fb.com/tailieudientucntt NKK-HUST // global co cu u du on g th an int main(void) { f = 2; g = 3; y = sum(f, g); return y; } ng c int f, g, y; variables om Ví dụ: Mã C int sum(int a, int b) { return (a + b); } 2017 Kiến trúc máy tính CuuDuongThanCong.com 303 https://fb.com/tailieudientucntt NKK-HUST 2017 ng c $v0, $a0, $a1 $ra co th on y 0($sp) $sp, stack frame store $ra $a0 = f = $a1 = g = call sum y = sum() restore $ra restore $sp return to OS an # # # # # # # # # # # g $sp, -4 0($sp) $0, f $0, g du $sp, $ra, $a0, $a0, $a1, $a1, sum $v0, $ra, $sp, $ra cu u data f: g: y: text main: addi sw addi sw addi sw jal sw lw addi jr sum: add jr om Ví dụ chương trình hợp ngữ MIPS # $v0 = a + b # return Kiến trúc máy tính CuuDuongThanCong.com 304 https://fb.com/tailieudientucntt NKK-HUST Bảng ký hiệu Địa 0x10000000 g 0x10000004 y 0x10000008 g 0x00400000 0x0040002C cu u du sum on main th an ng f co c om Ký hiệu 2017 Kiến trúc máy tính CuuDuongThanCong.com 305 https://fb.com/tailieudientucntt NKK-HUST Chương trình thực thi 0x34 (52 bytes) 0xC (12 bytes) Address Instruction 0x00400000 0x23BDFFFC addi $sp, $sp, –4 0xAFBF0000 sw 0x20040002 addi $a0, $0, 0xAF848000 sw 0x00400010 0x20050003 addi $a1, $0, 0x00400014 0xAF858004 sw $a1, 0x8004($gp) 0x00400018 0x0C10000B jal 0x0040002C 0x0040001C 0xAF828008 sw $v0, 0x8008($gp) 0x8FBF0000 lw $ra, 0($sp) 0x00400024 0x23BD0004 addi $sp, $sp, –4 0x00400028 0x03E00008 jr 0x0040002C 0x00851020 add $v0, $a0, $a1 0x00400030 0x03E00008 jr Address Data 0x10000000 f 0x10000004 g 0x10000008 y 0x00400008 g th an 0x0040000C co 0x00400004 cu u du on 0x00400020 Data segment 2017 om Data Size c Text segment Text Size ng Executable file header $ra, 0($sp) $a0, 0x8000($gp) $ra $ra Kiến trúc máy tính CuuDuongThanCong.com 306 https://fb.com/tailieudientucntt NKK-HUST Chương trình nhớ Address Memory Stack 0x10010000 Heap $sp = 0x7FFFFFFC co ng c 0x7FFFFFFC om Reserved y th g f on g 0x10000000 an $gp = 0x10008000 cu u du 0x03E00008 0x00851020 0x03E00008 0x23BD0004 0x8FBF0000 0xAF828008 0x0C10000B 0xAF858004 0x20050003 0xAF848000 0x20040002 0xAFBF0000 0x00400000 0x23BDFFFC PC = 0x00400000 Reserved 2017 Kiến trúc máy tính CuuDuongThanCong.com 307 https://fb.com/tailieudientucntt NKK-HUST om Ví dụ lệnh giả (Pseudoinstruction) MIPS Instructions c Pseudoinstruction lui $s0, 0x1234 ori $s0, 0xAA77 mult $s1, $s2 mflo $s0 add $t0, $0, $0 an co ng li $s0, 0x1234AA77 du clear $t0 on g th mul $s0, $s1, $s2 add $s2, $s1, $0 nop sll $0, $0, cu u move $s1, $s2 2017 Kiến trúc máy tính CuuDuongThanCong.com 308 https://fb.com/tailieudientucntt co ng c om NKK-HUST cu u du on g th an Hết chương 2017 Kiến trúc máy tính CuuDuongThanCong.com 309 https://fb.com/tailieudientucntt ... Chương Giới thiệu chung Chương Cơ logic số Chương Hệ thống máy tính Chương Số học máy tính Chương Kiến trúc tập lệnh Chương Bộ xử lý Chương Bộ nhớ máy tính Chương Hệ thống vào-ra Chương Các kiến. .. NKK-HUST 5. 1 Giới thiệu chung kiến trúc tập lệnh om Kiến trúc tập lệnh (Instruction Set Architecture): cách nhìn máy tính người lập trình Vi kiến trúc (Microarchitecture): cách thực kiến trúc tập... chung kiến trúc tập lệnh 5. 2 Lệnh hợp ngữ toán hạng 5. 3 Mã máy 5. 4 Cơ lập trình hợp ngữ 5. 5 Các phương pháp định địa 5. 6 Dịch chạy chương trình hợp ngữ 2017 Kiến trúc máy tính CuuDuongThanCong.com

Ngày đăng: 26/10/2021, 08:51

Hình ảnh liên quan

Mô hình lập trình của máy tính CPU PC Đơn vị  điều khiển Vào-ra . . ....lệnhlệnhlệnhlệnhdữ liệudữ liệudữ liệudữ liệu...ALU - Bài giảng Kiến trúc máy tính (Computer Architecture) Chương 5

h.

ình lập trình của máy tính CPU PC Đơn vị điều khiển Vào-ra . . ....lệnhlệnhlệnhlệnhdữ liệudữ liệudữ liệudữ liệu...ALU Xem tại trang 5 của tài liệu.
n Là kiến trúc RISC điển hình, dễ học - Bài giảng Kiến trúc máy tính (Computer Architecture) Chương 5

n.

Là kiến trúc RISC điển hình, dễ học Xem tại trang 22 của tài liệu.
Bảng ký hiệu - Bài giảng Kiến trúc máy tính (Computer Architecture) Chương 5

Bảng k.

ý hiệu Xem tại trang 112 của tài liệu.

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

Tài liệu liên quan