ĐỒ Á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
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 ...
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ìm kiếm theo từ khóa liên quan:
xử lý máy tính vi xử lý giao tiếp máy tính phân tích thiết kế luận văn công nghệ thông tin thiết kế quản lýTài liệu liên quan:
-
Đề cương chi tiết học phần Vi xử lý
12 trang 305 0 0 -
Đồ án: Xây dựng wedsite quản lý điểm học sinh
21 trang 190 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - Phân tích thiết kế hệ thống siêu thị
140 trang 187 0 0 -
Giáo trình Phân tích thiết kế hệ thống thông tin (chương 2-bài 2)
14 trang 185 0 0 -
Bài tập lớn Phân tích thiết kế hệ thống thông tin: Xây dựng hệ thống bán sách online
48 trang 172 0 0 -
40 trang 157 0 0
-
Báo cáo môn Vi xử lý - TÌM HIỂU VỀ CÁC BỘ VI XỬ LÝ XEON CỦA INTEL
85 trang 156 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - Phần mềm Quản lý kết hôn
17 trang 154 0 0 -
Đồ án tốt nghiệp - Phân tích thiết kế hệ thống - Quản lý hồ sơ bệnh án của 1 khoa
20 trang 137 0 0 -
Báo cáo bài tập lớn môn Kỹ thuật vi xử lý: Thiết kế mạch quang báo - ĐH Bách khoa Hà Nội
31 trang 135 0 0