bài giảng kiến trúc máy tính chương 3 phạm tường hải, nguyễn quốc tuấn câu lệnh ngôn ngữ của máy

47 633 0
bài giảng kiến trúc máy tính chương 3 phạm tường hải, nguyễn quốc tuấn câu lệnh ngôn ngữ của máy

Đ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) [...]... 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 đầ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. .. Đố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 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í... đế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 đặc biệt luôn mang giá trị 0 Thí dụ Giải thích ý nghĩa của đoạn... ứ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 100 phần tử có Loop:... 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 thường nhiều hơn số thanh ghi của bộ... địa chỉ trở về Lệnh jump-and-link ( jal ) dùng để nhảy và đồng thời cất địa chỉ câu lệnh kế tiếp vào $ra thực thi lệnh gọi trình con Thanh ghi chứa địa chỉ của câu lệnh hiện hành đang thực thi gọi là thanh ghi bộ đếm chương trình (program counter – PC) Kiến trúc Máy tính - Chap 03 28 Lệnh jal chứa giá trị PC + 4 vào trong thanh ghi $ra Việc quay trở về chương trình mẹ được thực hiện bởi lệnh jr $ra Cần... 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ữ cấp cao: if , goto , while , Làm quen với 2 câu lệnh hợp ngữ của MIPS • Branch if equal beq reg1 , • Branch if not equal bne reg1 , reg2 , L1 reg2 , L1 Hợp ngữ gọi chúng là các lệnh rẽ nhánh có điều kiện (conditional branch) Kiến trúc Máy tính - Chap 03 19 Thí dụ Dịch đoạn mã C sau đây sang hợp ngữ MIPS if (... 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 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... 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 • • • • • op : operation code tác vụ cơ bản của câu lệnh rs : 1st source operand toán... Sử dụng byte đầu tiên của chuỗi để chứa độ dài chuỗi Ngôn ngữ Pascal • Dùng một biến đi kèm để chứa độ dài chuỗi • Sử dụng byte cuối cùng của chuỗi để chứa 1 giá trị đặc biệt dùng đánh dấu kết thúc của chuỗi Ngôn ngữ C (giá trị 00) Chúng ta sẽ sử dụng cách thức của ngôn ngữ C để biểu diễn chuỗi trong các thí dụ minh họa Kiến trúc Máy tính - Chap 03 36 . 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. 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 phảilàcâulệnh kế tiếp trong chương. 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,

Ngày đăng: 17/10/2014, 07:13

Từ khóa liên quan

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

Tài liệu liên quan