Khoa KH & KT Máy tính pot

47 163 0
Khoa KH & KT Máy tính pot

Đ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) [...]... độ 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 0000 0000 0010 0000 6 bits 5 bits 5 bits 16 bits • Ba trường đầ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... 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 đầu vào cùng với một số giá trị tính toán mà một câu lệnh kh c (kh ng phải là câu lệnh kế tiếp trong chương trình) được thực thi Hỗ trợ thực thi cho phát biểu rẽ nhánh ở ngôn ngữ... 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 100 phần tử có Loop: g = g + A[i] ; địa chỉ nền là $s5 , các biến i = i + j; g , h , i 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... là trình bị gọi Kiến trúc Máy tính - Chap 03 31 Thí dụ Dịch đoạn mã C ở hình bên sang hợp ngữ MIPS int fact ( int n ) Bài giải biến n được chứa trong $a0 Kiến trúc Máy tính - Chap 03 { if ( n < 1 ) else return 1 ; return( n * fact ( n-1 ) ) ; } 32 Stack còn được sử dụng để chứa các biến cục bộ (local variable) của trình con, nhất là các biến có cấu trúc, (array, list, ) kh ng chứa vừa trong các thanh... - 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) Thông dụng nhất là mã ASCII (American Standard Code for Information Interchange)... $t0 Kiến trúc Máy tính - Chap 03 12 Ô nhớ có kích thước 8 bit (byte) Mỗi từ 32 bit cần dùng đến 4 ô nhớ • Mỗi từ phải được bắt đầu ở địa chỉ là bội số của 4 (alignment restriction) • Thứ tự của các byte trong 1 từ: Big Endian hay Little Endian Hình vẽ minh họa bộ nhớ 11 0 10 1 12 100 9 0 8 10 8 0 4 101 0 Địa chỉ Big 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... 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 đặc biệt luôn mang giá trị 0 Thí dụ Giải thích ý nghĩa của đoạn mã hợp ngữ MIPS sau slt bne Bài 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... $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 , $zero , 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... hoạt động cơ bản là push và pop Ở bộ xử lý MIPS, thanh ghi stack pointer có tên là $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 ,... nghĩa đối với lệnh dịch và mang giá trị 00000 đối với các lệnh kh c • funct : function code bổ túc cho vùng op Làm sao giải quyết trường hợp nếu câu lệnh đòi hỏi trường dành cho toán hạng phải lớn hơn 5 bits ? • Td Lệnh lw cần biểu diễn 2 địa chỉ thanh ghi và 1 hằng số, nếu giới hạn ở 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 . 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. 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. 00000100001001100011 12008943 32088180 12008935 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 phảilàcâulệnh kế tiếp trong chương

Ngày đăng: 28/07/2014, 11:21

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

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

Tài liệu liên quan