1. Trang chủ
  2. » Công Nghệ Thông Tin

Thiết kế alu và control theo kiến trúc mips 32 bit

37 1,9K 11

Đ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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 858,04 KB

Nội dung

Thiết kế alu và control theo kiến trúc mips 32 bit

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN KTMT Đề tài: Thiết kế Alu Control theo kiến trúc Mips 32 bit GV Hướng dẫn : TS Nguyễn Minh Sơn Thành phố Hồ Chí Minh – Năm 2015 MỤC LỤC YÊU CẦU THIẾT KẾ Thiết kế Sigle Cycle MIPs 32bit thực chức năng: • • • Thực phép toán Arithmetic: ADD, SUB, ADDI, SUBI,… Thực phép tính logic: AND, OR, NOR, XOR, SLT, ANDI, ORI, XORI,… Thực lệnh LW, SW, J, JR, BNE TỔNG QUAN VỀ MIPS 2.1 GIỚI THIỆU RICs – Reduced Instruction Set Computers, dạng kiến trúc vi xử lý Nó phương pháp thiết kế vi xử lý theo hướng đơn giản hóa tập lệnh Các dự án RICs IBM, Stanford UC Berkeley vào cuối năm 70, đầu năm 80 kỷ trước Hiện nay, vi xử lý phổ biết ARM, SuperH, MIPs, SPARC, PIC, PowerPC… MIPs – Microprocessor without Interlocked Pipeline Stages, kiến trúc xử lý kiểu RICs phát triển MIPS technologies Các vi xử lý MIPs phát triển phần chương trình nghiên cứu VLSI trường đại học Stanford đầu năm 80 Nhóm nghiên cứu Stanford phát triển xử lý giảm bớt tác động trình biên dịch cấp độ phần cứng, trái ngược với tăng lên phần cứng với phần mềm, bước tiến dài trình thiết kế phần cứng Năm 1984, Hennessy rời trường Stanford rời trường Stanford xây dựng hệ thống máy tính MIPs sau nhận nhu cầu thương mại tương lai thiết kế Phiên MIPs R2000 đời vào năm 1985 sau phiên MIPs R3000 năm 1988 Kiến trúc MIPs kiến trúc ghi Tất phép toán số học, logic xoay quanh ghi (hoặc ta xem số lưu trữ thành phần lệnh) Kiến trúc MIPs bao gồm câu lệnh đơn dùng đề đọc liệu từ nhớ vào ghi ghi liệu từ ghi vào nhớ Vì vậy, kiến trúc MIPs gọi kiến trúc nạp/lưu có câu lệnh nạp, lưu truy cập vào nhớ tất câu lệnh khác truy cập tới ghi 2.2 KIẾN TRÚC TẬP LỆNH MIPS Kiến trúc tập lệnh MIPs định nghĩa tập câu lệnh 32bit 64bit để đảm bảo tương thích với xử lý áp dụng kiến trúc MIPs Kiến trúc tập lệnh MIPs (ISA) phát triển từ kiến trúc tập lệnh MIPsI đến kiến trúc MIPsV Vào cuối năm 1990, kiến trúc MIPs thiết kế xung quanh hai kiên trúc sau:   MIPs32 cho kiến trúc 32 bit: kiến trúc dựa vào tập lệnh MIPsII với vài lệnh thêm vào từ tập lệnh MIPsIII, MIPsIV MIPsV MIPs64 cho kiến trúc 64 bit: kiến trúc chủ yếu dựa vào tập lệnh kiến trúc MIPsV Tập lệnh MIPs bao gồm tổng cộng 111 câu lệnh hệ 32bit Máy tính làm việc cách lấy lệnh từ nhớ, giải mã tính toán chúng Lệnh giá trị tính toán mã hóa thành mã nhị phân Máy tính làm việc với gia trị nhị phân Để thực xây dựng kiến trúc máy tính sử dụng kiến trúc MIPs thành phần phải bao gồm:       Program Counter (PC): Con trỏ chương trình Instruction Memory: Bộ nhớ lệnh Data Memory: Bộ nhớ Register File: Tập ghi ALU: Bộ tính toán số học logic Control Unit: Khối điều khiển Tất thành phần ngoại trừ Control Unit kết nối với bus Bus tập hợp đường dẫn điện tử với khác thiết lập giá trị nhị phân vận chuyển đường dẫn Hầu hết bus kiến trúc MIPs có bề rộng 32bit 2.3 CÁC ĐỊNH DẠNG LỆNH CƠ BẢN TRONG MIPS Có loại lệnh MIPs là:  Register (R-type)  Immediate (I-type)  Jump (J-type) Các lệnh sử dụng trường sau: Trường opcode rs rt Số bit 6bit 5bit 5bit rd Immediate 5bit 5bit Instr_inde x sa funct 26bit 5bit 6bit Ý nghĩa Xác định mã lệnh Xác định ghi nguồn Xác định ghi tạm (nguồn/đích) dùng để hàm phạm vi REGIMM opcode Xác định ghi đích Dùng cho toán hạng logic, phép toán có dấu, nạp/nhớ byte độ lệch liệu dấu hiệu rẽ nhánh Chỉ số dịch trái 2bit để cung cấp 28 bit thấp địa đích lệnh Jump Dịch Xác định hàm phạm vi Special Opcode THIẾT KẾ 3.1 3.1.1 PHÂN LOẠI CÁC LỆNH CƠ BẢN TRONG KIẾN TRÚC MIPS Các lệnh nạp ghi Các lệnh nạp, ghi (Load, store Instruction) lệnh di chuyển liệu nhớ ghi Chúng để lệnh có định dạng kiểu immediate (I-type), phương thức đánh địa hỗ trợ lấy ghi sở cộng 16bit immediate  Bao gồm lệnh: LW, SW,… 3.1.2 Các lệnh số học logic Thực phép tính số học, logic, dịch chuyển giá trị ghi Các lệnh bao gồm lệnh có định dạng Register (R-type) định dạng kiểu Immediate (I-type)   3.1.3 Các lệnh R-type: Add, Sub, SLT, And, Or, Xor, Nor, Các lệnh I-type: AddI, SubI, AndI, OrI, XorI,… Các lệnh nhảy rẽ nhánh Các lệnh nhảy rẽ nhánh (Jump and Branch Instructions) lệnh thay đổi dòng kiểm soát chương trình Lệnh nhảy làm đến trang, dạng địa tuyệt đối biên dịch địa 26-bit, với bit cao trỏ chương trình (kiểu J-type) địa ghi (dạng R-type) Các lệnh rẽ nhánh có bù 16-bit liên quan đến trỏ chương trình (dạng I-type)  Bao gồm lệnh: J, JR, BNE,… 3.2 3.2.1 CÁC THÀNH PHẦN CỦA MIPS Program Counter Program Counter ghi khởi tạo hệ điều hành chứa địa lệnh chương trình nhớ Địa chứa Program Counter đưa đến ngõ vào nhớ lệnh thông qua bus Sau chu kỳ, Program Counter tăng lên để có địa lệnh cần thực Trong trường hợp lệnh thông thường, địa lưu Program Counter cộng thêm 4, lệnh nhảy rẽ nhánh, địa lưu Program Counter thay đổi tương ứng với địa lấy từ lệnh Cấu tạo Program Counter ghi 32bit Ta xây dựng Program Counter với 32 D-FlipFlop module D_FF(q, d, reset, clk, en); output q; input d, reset, clk, en; reg q; wire clock; `And and_clk (clock, clk, en); always@(posedge clock or posedge reset) if(reset) q = 0; //khi co tin hieu reset, thiet lap gia tri bang else q = d; //neu k co tin hieu reset, thiet lap gia tri bang gia tri vao endmodule module PC_regs(PC_out, PC_in, rst, clk); output [31:0]PC_out; input [31:0]PC_in; input rst,clk; D_FF bit0(PC_out[0], PC_in[0], rst, clk, 1'b1); D_FF bit1(PC_out[1], PC_in[1], rst, clk, 1'b1); D_FF bit2(PC_out[2], PC_in[2], rst, clk, 1'b1); … D_FF bit31(PC_out[31], PC_in[31], rst, clk, 1'b1); endmodule 3.2.2 Instruction Memory Bộ nhớ lệnh nơi lưu giữ lệnh chương trình, lệnh có địa riêng Bộ nhớ lệnh có chức giống mảng hai chiều với thông tin lưu trữ thành word, word tương ứng với 32bit liệu Mỗi vùng nhớ nhớ có 32bit địa Trong kiến trúc MIPs, đơn vị nhỏ thông tin byte, byte có giá trị 8bit Như vậy, word cấu thành từ byte Địa byte word địa word Tất lệnh kiến trúc MIPs có độ dài 32bit, vi Program Counter tăng lên sau lệnh thực module Instruction_Memory(Inst_out, Addr_in); output [31:0]Inst_out; input [31:0]Addr_in; reg reg [7:0]Inst_Mem [1023:0]; [31:0]temp; buf #1000 buf0(Inst_out[0], temp[0]), buf1(Inst_out[1], temp[1]), buf2(Inst_out[2], temp[2]), … buf31(Inst_out[31], temp[31]); always @(Addr_in) begin temp[31:24] = Inst_Mem [(Addr_in)]; Inst_Mem [(Addr_in+1)]; temp[15:8] = Inst_Mem [(Addr_in+2)]; Inst_Mem [(Addr_in+3)]; end endmodule temp[23:16] = temp[7:0] = 3.2.3 Register File MIPS hỗ trợ 32 ghi đánh số từ $0 - $31, ghi có kích thước 32 bit Trong đó, ghi thường sử dụng để thực phép tính đánh số $16 - $23 Số $0 $1 $2 -> $3 $4 -> $7 $8 -> $15 Tên $zero $at $v0 » $v1 $a0 » $a3 $t0 » $t7 $16 -> $23 $s0 » $s7 $24 -> $25 $26 -> 27 $28 $29 $30 $31 $t8 » $t9 $k0 » $k1 $gp $sp $fp $ra Ý nghĩa Hằng số Assembler Temporary Giá trị trả hàm biểu thức Các tham số hàm Thanh ghi tạm (không giữ giá trị trình gọi hàm) Thanh ghi lưu trữ (giữ giá trị suốt trình gọi hàm) Thanh ghi tạm Dự trữ cho nhân HĐH Con trỏ toàn cục (global pointer) Con trỏ Stack Con trỏ Frame Địa trả Ngõ vào Read register1, Read register 2: xác định địa ghi mà muốn đọc liệu Ngõ Read data1, Read data2: chứa nội dung ghi mà Read register1, Readregister2 đến Khi tín hiệu RegWrite =1 trình ghi liệu vào Register File thực hiện, ngõ vào Write register dùng để xác định địa mà muốn ghi liệu vào, Write data chứa giá trị để ghi vào Register File Dữ liệu ghi vào có tín hiệu clock module Register_File(Read_Data1, Read_Data2, Write_Data, Write_Addr, Reg_Write, clk, Read_Addr1, Read_Addr2); input [4:0] Read_Addr1; Read_Addr2; input [4:0] Write_Addr; input [31:0] Write_Data; input Reg_Write; input clk; output [31:0] Read_Data1, Read_Data2; // Register File: 32 reg [31:0] Regs_File integer i; initial begin for(i = 0; i < 32; begin Regs_File[i] = end end Register, moi Register 32 bit [31:0]; i = i+1) 0; // Write always @(posedge clk) begin if (Reg_Write) begin Regs_File[Write_Addr]

Ngày đăng: 06/03/2017, 11:17

TỪ KHÓA LIÊN QUAN

w