kiến trúc máy tính 3 pdf

47 406 0
kiến trúc máy tính 3 pdf

Đ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

Khoa Khoa KH & KT KH & KT M M ỏ ỏ y y t t ớ ớ nh nh Bo Bo ọ ọ moõn moõn Kyừ Kyừ thua thua ọ ọ t t Ma Ma ự ự y y t t ớ ớ nh nh Pha Pha ù ù m m T T ử ử ụ ụ ứ ứ ng ng Ha Ha ỷ ỷ i i Nguyeón Nguyeón Quo Quo ỏ ỏ c c Tua Tua ỏ ỏ n n Kiến trúc Máy tính - Chap 03 2 Tài liệuthamkhảo ) “Computer Organization and Design: the hardware/software interface”, John L. Hennessy & David A. Patterson, Second Edition, MORGAN KAUFMANN PUBLISHERS, INC. 1998 ) “Computer Architecture: a quantitative approach”, John L. Hennessy & David A. Patterson, Third Edition, MORGAN KAUFMANN PUBLISHERS, INC. 2002 Kiến trúc Máy tính - Chap 03 3 Chương 3. Kiến trúc Máy tính - Chap 03 4 3.1 Dẫnnhập ) Kiếntrúccủa máy tính bao gồm2 phần •Kiếntrúcphầncứng •Kiếntrúctậplệnh ) Cả 2 phầntrêncómối quan hệ tương hỗ với nhau ) Có 2 cách để tiếpcận đếnkiến trúc máy tính •Tiếpcậntừ phầncứng •Tiếpcậntừ tậplệnh Ö chúng ta chọncáchtiếpcậntừ tậplệnh ) Sử dụng hợpngữđểgiớithiệutậplệnh ) Dùng tậplệnh củabộ xử lý MIPS để minh họachính Kiến trúc Máy tính - Chap 03 5 3.2 Phép toán ) Các máy tính đềucóthể thựchiện các phép toán số học ) Xét câu lệnh sau (hợpngữ MIPS) add a , b , c •Chỉ thị cho máy tính thựchiện phép toán cộng • Phép toán trên chỉ có thể thựchiệnvới 3 toán hạng ) Nếumuốnthựchiện phép toán với nhiều toán hạng ? •Phải dùng nhiềucâulệnh để chỉ thị add a , b , c # the sum of b and c is placed in a add a , a , d # the sum of b, c and d is placed in a add a , a , e # the sum of b, c, d and e is placed in a •Mỗi hàng dành để ghi 1 câu lệnh •Phầnvănbản đitheokýhiệu # dành cho chú thích Kiến trúc Máy tính - Chap 03 6 ) Việccốđịnh số lượng toán hạng trong câu lệnh giúp đơngiản hóa đáng kể việcthiếtkế mạch phầncứng ) Nguyên tắcthiếtkế 1 Càng đơngiản, càng ổn định ) Thí dụ. Dịch đoạnchương trình C sau đây sang hợp ngữ a = b + c d = a - e ) Giải đáp. add a , b , c sub d , a , e Kiến trúc Máy tính - Chap 03 7 ) Thí dụ. Dịch đoạnchương trình C sau đây sang hợp ngữ f = ( g + h ) - ( i + j ) ) Giải đáp. add t0 , g , h # biếnphụ t0 chứag + h add t1 , i , j # biếnphụ t1 chứai + j sub f , t0 , t1 # f chính là kếtquả cần tìm Kiến trúc Máy tính - Chap 03 8 3.3 Toán hạng ) Ở các chương trình viếtbằng ngôn ngữ cấp cao, biến (variable) đóng vai trò của toán hạng ) Đốivớicáccâu lệnh (instruction), ngôn ngữ cấpthấp, toán hạng thường đượcchứa trong các thanh ghi ) Kích thước thanh ghi ở bộ xử lý MIPS là 32 bit. Ö kích thướctoánhạng trong các câu lệnh MIPS bị giớihạn ở 32 bit, từ (word) ) Số lượng thanh ghi cũng giớihạn. Bộ xử lý MIPS chỉ có 32 thanh ghi 32 bit tham gia vào các phép toán số học ) Nguyên tắcthiếtkế 2 Càng nhỏ, càng nhanh Kiến trúc Máy tính - Chap 03 9 ) Trong các thí dụ kế tiếp, chúng ta sử dụng • Các thanh ghi $s0 , $s1 , chứa các biến trong mã nguồnC • Các thanh ghi $t0 , $t1 , chứa các biếntạm trong quá trình dịch từ C sang hợpngữ MIPS ) Thí dụ. Dịch đoạnchương trình C sau đây sang hợp ngữ MIPS với các biến f , g , h , i và j đượcchứa sẵn trong các thanh ghi $s0 , $s1 , $s2 , $s3 và $s4 f = ( g + h ) - ( i + j ) ) Giải đáp. add $t0 , $s1 , $s2 # biếnphụ t0 chứag + h add $t1 , $s3 , $s4 # biếnphụ t1 chứai + j sub $s0 , $t0 , $t1 # f chính là kếtquả cần tìm Kiến trúc Máy tính - Chap 03 10 ) Ngoài các biến đơn, còn có các biếnphứctạpthể hiện nhiềukiểucấutrúcdữ liệu khác nhau, td. array ) Các cấutrúcdữ liệuphứctạpcósố phầntử dữ liệu nhiềuhơnsố thanh ghi củabộ xử lý ) Nếu các thanh ghi củabộ xử lý chỉ có thể chứamột lượng nhỏ dữ liệuthìbộ nhớ củamáytínhcóthể chứa đượcrấtnhiềudữ liệu Ö các cấutrúcdữ liệuphứctạp đượcchứatrongbộ nhớ của máy tính ) Cầnthiếtcáccâulệnh thựchiệnviệcchuyểndữ liệu giữa thanh ghi và bộ nhớ Ö nhóm lệnh chuyểndữ liệu (data transfer) [...]... (global pointer) để trỏ tới vùng nhớ chứa các biến toàn cục Kiến trúc Máy tính - Chap 03 33 Trước thời điểm gọi trình con $fp $fp $sp Saved argument registers Tại thời điểm gọi trình con Saved return address Sau khi kết thúc trình con và trở về Saved saved registers Local variables $sp Kiến trúc Máy tính - Chap 03 34 3. 7 Ký tự Hầu hết các máy tính đều sử dụng giá trị 8-bit để biểu diễn ký tự (character)... đầu của cả 2 dạng lệnh là giống nhau Kiến trúc Máy tính - Chap 03 17 Thí dụ Tìm hiểu mã máy của đoạn hợp ngữ sau lw $t0 , 1200($t1) add $t0 , $s2 , $t0 sw $t0 , 1200($t1) Giải đáp 35 9 8 0 18 8 43 9 8 1200 100011 01001 01000 0000 0100 1011 0000 000000 10010 01000 101011 01001 01000 Kiến trúc Máy tính - Chap 03 1200 8 0 01000 00000 32 100000 0000 0100 1011 0000 18 3. 5 Lệnh ra quyết định Dựa trên dữ liệu... giải Kiến trúc Máy tính - Chap 03 $t0 , $s0 , $s1 $t0 , $zero , Less ? 24 Thí dụ Dịch đoạn mã C sau đây sang hợp ngữ MIPS Switch ( k ) { case 0 : case 1 : case 2 : case 3 : } f f f f = = = = i+j g+h g-h i-j ; break ; ; break ; ; break ; ; break ; giả sử các biến f đến k tương ứng với $s0 đến $s5, thanh ghi $t2 mang giá trị 4 Kiến trúc Máy tính - Chap 03 25 Bài giải slt $t3 , $s5 , $zero bne $t3 ,... , Exit slt $t3 , $s5 , $t2 beq $t3 , $zero , Exit $t1 , $s5 , $s5 add add $s0 , $s3 , $s4 j Exit L1: add j $s0 , $s1 , $s2 Exit L2: add L0: sub j $s0 , $s1 , $s2 Exit L3: Exit: sub $s0 , $s3 , $s4 $t1 , $t1 , $t1 add $t1 , $t1 , $t4 lw $t0, 0($t1) jr $t0 Kiến trúc Máy tính - Chap 03 26 3. 6 Trình con Trình con (subroutine) hay thủ tục (procedure) là công cụ hữu hiệu cho lập trình cấu trúc Trình con... $sp và lưu ý là stack tăng lên (push) theo chiều giảm địa chỉ Kiến trúc Máy tính - Chap 03 29 Thí dụ Dịch đoạn mã C ở hình bên sang hợp ngữ MIPS Bài giải Kiến trúc Máy tính - Chap 03 int leaf_example ( int g , int h , int i , int j ) { int f; f = (g+h) - (i+j); return f ; } các biến g , h , i và j được chứa trong $a0 , $a1 , $a2 và $a3 30 Để giảm thiểu việc bảo vệ (lưu trử/phục hồi) các thanh ghi... và j tương ứng với if ( i != h) goto Loop các thanh ghi $s1 đến $s4 Bài giải Kiến trúc Máy tính - Chap 03 22 Thí dụ Dịch đoạn mã C sau đây sang hợp ngữ MIPS Array A có địa chỉ nền là $s6 , các biến i , j và k tương ứng với while ( A[i] == k ) i = i + j; các thanh ghi $s3 , $s4 và $s5 Bài giải Kiến trúc Máy tính - Chap 03 23 Lệnh set on less than slt reg0 , reg1 , reg2 Thanh ghi $zero là thanh ghi... từ f đến j tương ứng với các thanh ghi từ $s0 đến $s4 Bài giải Kiến trúc Máy tính - Chap 03 20 Thí dụ Cũng sử dụng các biến và thanh ghi ở thí dụ trước, dịch đoạn mã C sau đây sang hợp ngữ MIPS if ( i == j ) else f = g + h; f = g - h; Bài giải Lệnh j (jump) là lệnh rẽ nhánh không điều kiện (unconditional branch) Kiến trúc Máy tính - Chap 03 21 Thí dụ Dịch đoạn mã C sau đây sang hợp ngữ MIPS Array A... Endian 11 0 1 10 0 Dữ liệu 9 1 8 0 Little Endian Kiến trúc Máy tính - Chap 03 13 Câu lệnh ngược lại với lw là sw (store word), ghi dữ liệu từ thanh ghi ra bộ nhớ Thí dụ Giả sử biến h được gán vào thanh ghi $s2 và $s3 chứa địa chỉ nền của array A Dịch phát biểu sau A[12] = h - A[8] Giải đáp lw $t0 , 32 ($s3) # chứa A[8] vào $t0 add $t0 , $s2 , $t0 sw $t0 , 48($s3) # kết quả vào A[12] Số biến của chương trình... 5 bit, hằng số không lớn hơn 25 = 32 Kiến trúc Máy tính - Chap 03 16 Nguyên tắc thiết kế 3 Thiết kế tốt đòi hỏi phải có sự dàn xếp tốt Đối với tập lệnh MIPS, để giữ cho độ dài câu lệnh không đổi xây dựng 2 dạng lệnh khác nhau • Dạng lệnh mà chúng ta đã xem xét là R-type • Dạng lệnh I-type op rs rt address 6 bits 5 bits 5 bits 16 bits • Thí dụ Câu lệnh lw $t0 , 32 ($s3) 100011 10011 01000 0000 0000 0000... 000000 10001 10010 01000 00000 100000 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits • Còn được gọi là dạng ngôn ngữ máy (machine language) hay mã máy (machine code) • Câu lệnh MIPS có độ dài cố định là 32 bits được chia ra thành nhiều trường (field) có độ dài là 5 hay 6 bits Kiến trúc Máy tính - Chap 03 15 Các trường trong câu lệnh MIPS op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits • • . KAUFMANN PUBLISHERS, INC. 2002 Kiến trúc Máy tính - Chap 03 3 Chương 3. Kiến trúc Máy tính - Chap 03 4 3. 1 Dẫnnhập ) Kiếntrúccủa máy tính bao gồm2 phần •Kiếntrúcphầncứng •Kiếntrúctậplệnh ) Cả 2 phầntrêncómối. 0100 1011 00000100001001100011 120089 43 32088180 12008 935 Kiến trúc Máy tính - Chap 03 19 3. 5 Lệnh ra quyết định ) Dựatrêndữ liệu đầu vào cùng vớimộtsố giá trị tính toán mà mộtcâulệnh khác (không. dụng •Kỹ thuật spilling registers lw $t0 , 32 ($s3) # chứa A[8] vào $t0 add $t0 , $s2 , $t0 sw $t0 , 48($s3) # kếtquả vào A[12] Kiến trúc Máy tính - Chap 03 15 3. 4 Biểudiễn câu lệnh ) Các thanh ghi

Ngày đăng: 11/07/2014, 10:20

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