báo cáo MIPS PIPELINED CPU

72 507 0
báo cáo MIPS PIPELINED CPU

Đ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

báo cáo MIPS PIPELINED CPU

MIPS PIPELINED CPU SVTH : Nhóm 14 1 1. Yêu cầu: - Thiết kế chip Mips Pipeline 32bit dựa trên thiết kế và tập lệnh của chip Mips Single-Cycle đã thực hiện ở lab3. 2. Giới thiệu về chip pipelined: - Khác với chip Single-cycle khi các lệnh đều được thực hiện xong trong 1 chu kỳ máy, chip pipelined chia một câu lệnh ra thành 5 bước (steps): + Đọc lệnh từ bộ nhớ (Instruction Fetch – IF) + Giải mã lệnh và đọc các thanh ghi (Instruction Decode – ID) + Tính toán kết quả của câu lệnh hoặc địa chỉ (Execution –EX) + Đọc hoặc ghi dữ liệu trên bộ nhớ dữ liệu (Memory access – MEM) + Ghi kết quả vào thanh ghi (Write back – WB) - Câu lệnh sau không cần đợi câu lệnh trước hoàn tất mới bắt đầu thực hiện mà mỗi step sẽ được thực hiện liên tiếp, do đó cải thiện đáng kể về tốc độ thực hiện các chương trình 3. Thiết kế: 2 3.1. Sơ đồ khối tổng quát: 3.2. Các bước thực hiện 1 câu lệnh: 3 *Có 5 bước với các chức năng riêng: + Đọc lệnh từ bộ nhớ (Instruction Fetch – IF) Sử dụng địa chỉ lưu trong thanh ghi PC để giải mã ra mã máy của câu lệnh tiếp theo và lưu vào thanh ghi trung gian IF/ID. Giá trị PC được cộng thêm 4 và lưu vào thanh ghi trung gian IF/ID. + Giải mã lệnh và đọc các thanh ghi (Instruction Decode – ID) Sử dụng mã máy của câu lệnh lưu trong thanh ghi IF/ID làm đầu vào cho khối Regfile. Khối Control sử dụng phần opcode của mã máy của câu lệnh để giải mã thành các tín hiệu điều khiển, ngoài tín hiệu SignEx được sử dụng cho khối mở rộng, các tín hiệu khác được lưu vào thanh ghi trung gian ID/EX. - Đọc các thanh ghi Rs, Rt từ bộ thanh ghi và lưu vào thanh ghi trung gian ID/EX. - Khối mở rộng sử dụng tín hiệu SignEx từ khối Control để mở rộng dấu hay mở rộng zero của 16 bit thấp của mã máy thành 32 bit và lưu vào thanh ghi ID/EX. - Địa chỉ của các thanh ghi Rs, Rt, Rd được lưu vào thanh ghi ID/EX. + Tính toán kết quả của câu lệnh hoặc địa chỉ (Execution –EX) - Khối ALU sử dụng các đầu vào đã được lưu trong thanh ghi ID/EX để tính toán và lưu kết quả vào thanh ghi trung gian EX/MEM. - Một bộ mux được dùng để lựa chọn thanh ghi đích từ 2 thanh ghi Rt, Rd và lưu địa chỉ vào thanh ghi EX/MEM. 4 - Địa chỉ mới của PC sau câu lệnh BNE cũng được tính toán trong khối này. Một số bộ mux được dùng để lựa chọn giá trị mới cho PC từ các câu lệnh rẽ nhanh BNE, J, JR. - Các tín hiệu điều khiển MemWrite, MemtoReg và RegWrite được lưu tiếp vào thanh ghi EX/MEM. + Đọc hoặc ghi dữ liệu trên bộ nhớ dữ liệu (Memory access – MEM) - Sử dụng kết quả tính toán từ khối ALU và tín hiệu điều khiển MemWrite từ thanh ghi EX/MEM để thực hiện đọc hoặc ghi vào bộ nhớ dữ liệu. Kết quả đọc ra được ghi vào thanh ghi trung gian MEM/WB. - Các giá trị đầu ra của ALU, địa chỉ thanh ghi đích cùng với 2 tín hiệu điều khiển MemtoReg và RegWrite được ghi lại vào thanh ghi MEM/WB. + Ghi kết quả vào thanh ghi (Write back – WB) - Sử dụng tín hiệu MemtoReg từ thanh ghi MEM/WB để lựa chọn dữ liệu cần ghi vào thanh ghi. - Sử dụng địa chỉ thanh ghi đích và tín hiệu cho phép ghi RegWrite để thực hiện công việc ghi dữ liệu vào bộ thanh ghi. 5 3.3. Thiết kế các thanh ghi pipelind: - Ta sử dụng các thanh ghi pipeline làm trung gian lưu kết quả thực hiện của mỗi khối trong mỗi chu kỳ để làm đầu vào cho các khối sau trong chu kỳ tiếp theo - Có 4 thanh ghi pipelined nằm giữa các khối : + Thanh ghi IF/ID : Để lưu các giá trị PC+4 và mã máy của câu lệnh . + Thanh ghi ID/EX : Để lưu các giá trị, PC + 4, địa chỉ của lệnh Jump, 2 giá trị đọc ra từ bộ thanh ghi. Giá trị mở rộng 32bits từ 16bits. Địa chỉ các thanh ghi Rs, Rt, Rd. Các tín hiệu điều khiển từ khối Control: ALUOp, ALUSrc, RegDst, Branch, Jump, MemWrite, RegWrite, MemtoReg. 6 + Thanh ghi EX/MEM : Để lưu các giá trị : Kết quả tính toán của khối ALU, giá trị dùng để ghi vào bộ nhớ file thanh ghi, địa chỉ của thanh ghi đích. Các tín hiệu điều khiển: MemWrite, RegWrite, MemtoReg. + Thanh ghi MEM/WB : Để lưu các giá trị: Giá trị đọc ra từ bộ nhớ dữ liệu, kết quả của khối ALU, địa chỉ thanh ghi đích 3.3. Một số xung đột trong cấu trúc Pipelined a. Stuctural hazard: - Là xung đột xảy ra khi phần cứng không hỗ trợ việc kết hợp xử lý các lệnh đồng thời. b. Data hazard: - Xảy ra khi mà dữ liệu cần cho lệnh tiếp theo chưa có sẵn vì đang được xử lý ở các lệnh trước đó. 7 c. Control hazard: - Là xung đột xảy ra khi có lệnh rẽ nhánh - Khi một lệnh rẽ nhánh được thực thi thì chưa biết được địa chỉ lệnh tiếp theo 3.4. Cách xử lý Hazard a. Structural hazard: - Thêm các thanh ghi giữa các tiến trình để chứa dữ liệu được xử lý từ các tiến trình trước. - Các thanh ghi sẽ chia phần cứng thành những phần tương ứng với các Stage b. Data hazard: Có 2 kĩ thuật xử lý data hazard: - Forwarding - Stalling * Kĩ thuật forwarding: - Là kĩ thuật chuyển tiếp dữ liệu đầu ra sau khi tính toán từ bộ ALU hoặc sau khi truy cập bộ nhớ dữ liệu vào sử dụng ở lệnh sau đó, không chờ đến khi ghi vào file thanh ghi 8 Datapath Điều kiện xảy ra Forwarding : • EX\MEM.RegsRd=ID\EX.RegsRs • EX\MEM.RegsRd=ID\EX.RegsRt • MEM\WB.RegsRd= ID\EX.RegsRs • MEM\WB.RegsRd= ID\EX.RegsRt Bảng giá trị các tín hiệu điều khiển *Kỹ thuật stalling - Là kĩ thuật trì hoãn việc thực thi 1 lệnh để chờ dữ liệu có được từ các câu lệnh trước 9 Datapath Điều kiện xảy ra Stalling: Toán hạng nguồn của 1 lệnh được lấy từ lệnh lw đứng sát trước nó. Lúc này chưa thể forwarding được, phải trì hoãn 1 chu kì. • ID/EX.MemRead=1 • IF/ID.RegsRs=ID/EX.RegsRd • IF/ID.RegsRt=ID/EX.RegsRd 10 [...]... khối có thể flush các lệnh đã tìm và giải mã ở tiến trình IF và ID - Điều kiện flush: 1 trong những điều kiện: + khi thực thi lệnh Jump, JR + lệnh BNE thỏa điều kiện nhảy 4 Thiết kế datapath cho MIPS Pipelined CPU 4.1 Khối InstructionMem Dùng để lưu trữ lệnh dưới dạng mã máy (nhị phân) Kích thước mỗi lệnh khi dịch ra mã máy là 32 bits, tốn 32 bits để lưu trữ Đầu vào bộ nhớ lệnh là địa chỉ lệnh cần lấy,... begin if( Reset == 1) DataOUT . MIPS PIPELINED CPU SVTH : Nhóm 14 1 1. Yêu cầu: - Thiết kế chip Mips Pipeline 32bit dựa trên thiết kế và tập lệnh của chip Mips Single-Cycle đã thực hiện ở lab3. 2. Giới thiệu về chip pipelined: -. kiện: + khi thực thi lệnh Jump, JR + lệnh BNE thỏa điều kiện nhảy 4. Thiết kế datapath cho MIPS Pipelined CPU 4.1. Khối InstructionMem Dùng để lưu trữ lệnh dưới dạng mã máy (nhị phân). Kích thước. DataIN; end else begin DataOUT <= DataOUT; end end end 14 4.3 Bộ cộng Add Vì thông thường sau mỗi chu kì xung clock, MIPS CPU cần thực thi lệnh tiếp theo, do đó địa chỉ lệnh cần tăng lên , tức giá trị của thanh ghi

Ngày đăng: 21/07/2015, 15:11

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan