Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
514,75 KB
Nội dung
Kiến trúc tập lệnh: Đánh giá Thông số thiết kế: Có thể triển khai khơng? Mất bao lâu? Giá thành? Có thể lập trình khơng? Có dễ biên dịch? Thơng số tĩnh: Độ lớn chương trình nhớ? Thông số động: Số lượng thị thực hiện? Số lượng byte cần nạp để chạy chương trình? Số chu kỳ đồng hồ cần cho thị? CPI Tốc độ đồng hồ? Thông số tốt nhất: Thời gian thực hiện! Inst Count Chương Ngơn ngữ máy tính phép tốn 25 Cycle Time HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích thước kiểu liệu Phép tốn: loại hỗ trợ Định dạng mã hóa thị: Chỉ thị giải mã nào? Vị trí tốn hạng kết Số lượng toán hạng? Giá trị toán hạng lưu đâu? Kết lưu vị trí nào? Các tốn hạng nhớ định vị nào? Chỉ thị tiếp theo: nhẩy, điều kiện, rẽ nhánh Chương Ngơn ngữ máy tính phép tốn 26 HUST-FET, 13/02/2011 Dữ liệu: Kiểu & kích thước Byte =Byte bits Sử dụng để lưu liệu dấu phẩy động Halfword= bytes Halfword Word =Word bytes Doubleword = bytes Doubleword Quadword (16 bytes) sử dụng Chương Ngôn ngữ máy tính phép toán 27 HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích thước kiểu liệu Phép toán: loại hỗ trợ Định dạng mã hóa thị: Chỉ thị giải mã nào? Vị trí tốn hạng kết Số lượng toán hạng? Giá trị toán hạng lưu đâu? Kết lưu vị trí nào? Các tốn hạng nhớ định vị nào? Chỉ thị tiếp theo: nhẩy, điều kiện, rẽ nhánh Chương Ngôn ngữ máy tính phép tốn 28 HUST-FET, 13/02/2011 Các phép toán Load/Store: Đọc ghi nhớ Computational: Tính tốn số học logic, so sánh Có lệnh nhân chia hay khơng? Các lệnh so sánh nào? Jump and Branch: Nhẩy rẽ nhánh Floating Point: Lệnh dấu phẩy động coprocessor Memory Management: Quản lý nhớ Special: Lệnh đặc biệt Chương Ngơn ngữ máy tính phép toán 29 HUST-FET, 13/02/2011 Các phép toán Dịch chuyển liệu Đọc (từ nhớ), Ghi (tới nhớ) Chuyển ô nhớ Chuyển ghi Vào (từ thiết bị I/O), Ra (tới thiết bị I/O) push, pop (từ/tới ngăn xếp) Số học Số nguyên (nhị phân, thập phân), Số thực dấu phẩy động Cộng, trừ, nhân chi Dịch Dịch trái/phải, Quay trái/phải Logic not, and, or, set, clear Điều khiển (nhảy, rẽ nhánh) Không điều kiện, Có điều kiện Liên kết với thủ tục call, return Ngắt trap, return Đồng test & set Chuỗi search, translate Đồ họa (MMX) Phép toán song song Chương Ngơn ngữ máy tính phép tốn 30 HUST-FET, 13/02/2011 Các phép toán Các phép toán đơn giản sử dụng nhiều chiếm đa số thị chương trình Cần tập trung vào phép toán: load, store move register-register add, subtract, and, shift compare equal, compare not equal branch, jump, call, return Chương Ngơn ngữ máy tính phép tốn 31 HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích thước kiểu liệu Phép toán: loại hỗ trợ Định dạng mã hóa thị: Chỉ thị giải mã nào? Vị trí tốn hạng kết Số lượng toán hạng? Giá trị toán hạng lưu đâu? Kết lưu vị trí nào? Các toán hạng nhớ định vị nào? Chỉ thị tiếp theo: nhẩy, điều kiện, rẽ nhánh Chương Ngơn ngữ máy tính phép tốn 32 HUST-FET, 13/02/2011 Định dạng lệnh: trường Mã lệnh nhiệm vụ (chức năng) lệnh Tham chiếu toán hạng nguồn toán hạng xử lý lệnh Tham chiếu kết nơi lưu trữ kết lệnh Tham chiếu lệnh cách tính tốn nơi lưu trữ lệnh thực Thường không rõ ràng lệnh mà ngầm coi lệnh liền sau lệnh chuỗi lệnh Trong số loại lệnh, địa lệnh Chương Ngơn ngữ máy tính phép toán 33 HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích thước kiểu liệu Phép tốn: loại hỗ trợ Định dạng mã hóa thị: Chỉ thị giải mã nào? Vị trí tốn hạng kết Số lượng toán hạng? Giá trị toán hạng lưu đâu? Kết lưu vị trí nào? Các tốn hạng nhớ định vị nào? Chỉ thị tiếp theo: nhẩy, điều kiện, rẽ nhánh Chương Ngơn ngữ máy tính phép toán 34 HUST-FET, 13/02/2011 Số lượng toán hạng (2) Một tốn hạng: lệnh tích lũy (accumulator) Một toán hạng kết quy định ngầm lưu ghi đặc biệt (Accumulator – AC) Tốn hạng cịn lại lưu ghi OP A AC ← AC OP A Thơng dụng xử lý tín hiệu số Khơng tốn hạng: lệnh ngăn xếp (stack) Tất địa quy định ngầm Kết toán hạng thứ hai nằm địa đỉnh stack: T Toán hạng thứ nằm địa thứ stack: T-1 OP T ← T-1 OP T Số lượng toán hạng định: độ dài lệnh, I CPI Chương Ngơn ngữ máy tính phép tốn 36 HUST-FET, 13/02/2011 Ví dụ 2.4: So sánh số lượng tốn hạng Xét câu lệnh ngôn ngữ bậc cao: Y = (A – B)/(C+D*E) Biên dịch thành hợp ngữ: địa SUB MUL ADD DIV Y, A, B T, D, E T, T, C Y, Y, T địa MOV SUB MOV MUL ADD DIV địa LOAD MUL ADD STORE LOAD SUB DIV STORE địa D E C Y A B Y Y Y, A Y, B T, D T, E T, C Y, T Chương Ngơn ngữ máy tính phép tốn 37 Chuyển sang dạng toán tử sau: Y = AB-CDE*+/ PUSH PUSH SUB PUSH PUSH PUSH MUL ADD DIV POP A B C D E Y HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích thước kiểu liệu Phép toán: loại hỗ trợ Định dạng mã hóa thị: Chỉ thị giải mã nào? Vị trí tốn hạng kết Số lượng toán hạng? Giá trị toán hạng lưu đâu? Kết lưu vị trí nào? Các tốn hạng nhớ định vị nào? Chỉ thị tiếp theo: nhẩy, điều kiện, rẽ nhánh Chương Ngôn ngữ máy tính phép tốn 38 HUST-FET, 13/02/2011 Giá trị toán hạng – Chế độ địa Register Add R4,R3 R4R4+R3 Immediate Add R4,#3 R4 R4+3 Displacement Add R4,100(R1) R4 R4+Mem[100+R1] Register indirect Add R4,(R1) R4 R4+Mem[R1] Indexed / Base Add R3,(R1+R2) R3 R3+Mem[R1+R2] Direct or absolute Add R1,(1001) R1 R1+Mem[1001] Memory indirect Add R1,@(R3) R1 R1+Mem[Mem[R3]] Auto-increment Add R1,(R2)+ R1 R1+Mem[R2]; R2 R2+d Auto-decrement Add R1,–(R2) R2 R2–d; R1 R1+Mem[R2] Scaled Add R1,100(R2)[R3] Chương Ngôn ngữ máy tính phép tốn 39 R1 R1+Mem[100+R2+R3*d] HUST-FET, 13/02/2011 Chế độ địa tức (Immediate) Giá trị toán hạng (toán hạng) trường toán hạng câu lệnh Instruction Opcode Operand Operand = Operand field Không tham chiếu đến nhớ để nạp liệu Tốn hạng ln số chạy chương trình Tốc độ cao Khoảng giá trị tốn hạng nhỏ Ví dụ: ADD R4, #3: R4 R4+3 Chương Ngôn ngữ máy tính phép tốn 40 HUST-FET, 13/02/2011 Chế độ địa ghi (Register) Toán hạng chứa ghi trường địa Instruction Opcode Register index: n Register file … Operand … Operand = R[n] (Rn) Không truy cập nhớ Thực thi nhanh Trường địa dùng bit Lệnh ngắn Nạp lệnh nhanh Số lượng ghi bị hạn chế Chương Ngơn ngữ máy tính phép tốn 41 HUST-FET, 13/02/2011 Chế độ địa dịch chuyển (Displacement) Instruction Opcode Register index: n Offset: A Memory Register file … … Operand Pointer to operand … … Trường địa chứa gồm phần sở độ lệch A chứa giá trị sử dụng trưc tiếp n chứa số ghi để sử dụng gián tiếp A, Rn sở độ lệch ngược lại Địa toán hạng EA = R[n] + A Operand = MEM[EA] Chương Ngơn ngữ máy tính phép toán 42 HUST-FET, 13/02/2011 Chế độ địa tương đổi (Relative) Instruction Opcode Address A Memory … Register file Operand … … PC … Phiên địa dịch chuyển R = PC, ngầm định mã lệnh (opcode) operand = MEM[A + PC] Lấy tốn hạng từ địa cách vị trí chương trình A nhớ Dùng để truy cập số, biến, địa địa phương Chương Ngơn ngữ máy tính phép tốn 43 HUST-FET, 13/02/2011 Địa nhớ Địa nhớ: Địa byte: đánh địa cho ô nhớ kích thước byte Địa word: đánh địa cho nhớ kích thước word câu hỏi thiết kế ISA: Các kiểu liệu lớn byte lưu trữ nào? Địa khác byte tính tốn nào? Các kiểu liệu lớn có lưu trữ vị trí địa byte hay không? (Vấn đề alighment) 31 23 15 word x+4 x+3 Chương Ngơn ngữ máy tính phép toán x+2 44 x+1 x byte address HUST-FET, 13/02/2011 ... chiếu lệnh cách tính tốn nơi lưu trữ lệnh thực Thường không rõ ràng lệnh mà ngầm coi lệnh liền sau lệnh chuỗi lệnh Trong số loại lệnh, địa lệnh Chương Ngơn ngữ máy tính phép tốn 33 HUST-FET,... ngữ máy tính phép tốn 32 HUST-FET, 13/02/2011 Định dạng lệnh: trường Mã lệnh nhiệm vụ (chức năng) lệnh Tham chiếu toán hạng nguồn toán hạng xử lý lệnh Tham chiếu kết nơi lưu trữ kết lệnh. .. Chương Ngơn ngữ máy tính phép toán 37 Chuyển sang dạng toán tử sau: Y = AB-CDE*+/ PUSH PUSH SUB PUSH PUSH PUSH MUL ADD DIV POP A B C D E Y HUST-FET, 13/02/2011 Kiến trúc tập lệnh: Yêu cầu Kích