Danh mục

ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH

Số trang: 14      Loại file: docx      Dung lượng: 1.15 MB      Lượt xem: 21      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: 42,000 VND Tải xuống file đầy đủ (14 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Thiết kế một chip MIPS single-cycle đơn giản để thực thi các lệnh LW, SW, J , JR, BNE, XORI, SLT, ADD, SUB trong một chu kỳ lệnh.Dùng bộ đếm chương trình PC lấy địa chỉ lệnh trong bộ nhớ lệnh ( Instruction Memory), và cập nhật PC đến giá trị tiếp theo. Giải mã lệnh bằng cách gửi cái OPCODE vào khối CONTROL.(Đọc giá trị các thanh ghi từ REGISTER FILE). Thực thi lệnh
Nội dung trích xuất từ tài liệu:
ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN TỬ-VIỄN THÔNG ĐỒ ÁN VI XỬ LÝ VÀ MÁY TÍNH LAB 3 : MIPS Single-cycle CPU SINH VIÊN THỰC HIỆN: PHAN QUỐC THẮNG 08DT3 HOÀNG THANH TÚ 08DT3 NGUYỄN THỊ TÙNG 08DT4 1. MỤC ĐÍCH: Thiết kế một chip MIPS single-cycle đơn giản để thực thi các lệnh LW, SW, J , JR, BNE, XORI, SLT, ADD, SUB trong một chu kỳ lệnh. 2. TỐNG QUAN: 2.1. Các bước thực thi lệnh: Gồm có 3 bước chính - Dùng bộ đếm chương trình PC lấy địa chỉ lệnh trong bộ nhớ lệnh ( Instruction Memory), và cập nhật PC đến giá trị tiếp theo. - Giải mã lệnh bằng cách gửi cái OPCODE vào khối CONTROL.(Đọc giá trị các thanh ghi từ REGISTER FILE) - Thực thi lệnh. 2.2. Giới thiệu các lệnh: Page 1 Trong MIPS có 3 khuôn dạng lệnh R-Format, I-Format và J-Format •R-Format: op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits •I-Format: op rs rt immediate 6 bits 5 bits 5 bits 16 bits •J-Format: op immediate 6 bits 26 bits Với op : 6 bits OPCODE rs : 5 bits chứa mã địa chỉ của thanh ghi nguồn rt : 5 bits chứa mã địa chỉ của thanh ghi nguồn rd : 5 bits chứa mã địa chỉ của thanh ghi đích shamt : 5 bits dùng trong các lệnh dịch funct: 6 bits dùng để phân loại trong các lệnh R-Format immediate : 16 bits chứa toán hạng và địa chỉ ofset immediate : 26 bits chứa địa chỉ đích trong lệnh JUMP -Khuôn dạng cụ thể của mỗi lệnh: Instruction Meaning Format add rd, Cộng 0 rs rt rd 0x20 rs, rt sub rd, Trừ 0 rs rt rd 0x22 rs, rt slt rd, So sánh 0 rs rt rd 0x2a rs, rt jr rs Nhảy đến 0 rs rt 0 0x08 [rs] xori rt, Xor 0x0e rs rt im im immediate lw rt, Load word 0x23 rs rt im im sw rt, Store word 0x2b rs rt im im bne rs, Nhảy nếu 0x05 rs rt im rt, im không Page 2 bằng j im Jump 0x02 im 2.3. Phân tích lệnh: - Đối với các lênh xử lý dữ liệu khuôn dạng R-Format – ADD, SUB, SLT : Fetch instruction: Instruction ← MEM[PC] Fetch operands: data1 ← Reg(Rs), data2 ← Reg(Rt) Execute operation: ALU_result ← funct(data1, data2) Write ALU result: Reg(Rd) ← ALU_result Next PC address: PC ← PC + 4 - Đối với các lênh xử lý dữ liệu (I_FORMAT – XORI) : Fetch instruction: Instruction ← MEM[PC] Fetch operands: data1 ← Reg(Rs), data2 ← extend-sign (imm16) Execute operation: ALU_result ← XOR(data1, data2) Write ALU result: Reg(Rt) ← ALU_result Next PC address: PC ← PC + 4 - Đối với lênh load dữ liệu (I_FORMAT – LW) : Fetch instruction: Instruction ← MEM[PC] Fetch base register: base ← Reg(Rs) Calculate address: address ← base + extend-sign (imm16) Read memory: data ← MEM[address] Write register Rt:Reg(Rt) ← data Next PC address: PC ← PC + 4 - Đối với lênh lưu dữ liệu (I_FORMAT – SW) : Fetch instruction: Instruction ← MEM[PC] Fetch registers: base ← Reg(Rs), data ← Reg(Rt) Calculate address: address ← base + extend-sign (imm16) Write memory: MEM[address] ← data Next PC address: PC ← PC + 4 - Đối với lênh rẻ nhánh (I_FORMAT – BNE) : Fetch instruction: Instruction ← MEM[PC] Fetch operands: data1 ← Reg(Rs), data2 ← Reg(Rt) Execute operation: ALU_result ← SUB (data1, data2) Branch: if (zero!=0) PC ← (PC + 4) + 4×extend-sign(imm16) else PC ← PC + 4 Page 3 - Đối với lênh nhảy (J_FORMAT – JUMP) : Fetch instruction: Instruction ← MEM[PC] Target PC address: target ← PC[31:28] , Imm26 , ‘00’ Jump: PC ← target - Đối với lênh nhảy (R_FORMAT –JR) : Fetch instruction: Instruction ← MEM[PC] Fetch operands: address ← Reg(Rs) Jump: PC ← address 3. CÁC KHỐI CƠ SỞ CẦN THIẾT: - Sau khi phân tích cách hoạt động mỗi lệnh, ta sẽ xây dựng các khối cơ bản để thực thi các lệnh đó 3.1 Khối PC: - Khối bộ đếm chương trình, có tác dụng như một bộ đệm để chỉ đến địa chỉ của câu lệnh tiếp theo. - Giá trị đầu vào được xác định tùy theo câu lệnh mới được thực hiện. 3.2 Khối Instruction Memory: - Là khối lưu các lệnh cần thực thi, gồm 1 đầu vào 32 bits address và đầu ra là 32 bits instruction - Địa chỉ đầu vào được lấy từ PC và sẽ tham chiếu đến file lưu lệnh dưới tên instr.dat ( ở đây Instruction Memory được đánh địa chỉ theo word nên ta phải lấy địa chỉ trong PC / 4 và làm tròn.) - File instr.dat là file chứa mã máy của các câu lệnh cần t ...

Tài liệu được xem nhiều: