2013-06-21 30 views
7

Tôi đang cố gắng triển khai hỗ trợ chỉ lệnh jr (nhảy đăng ký) cho một bộ xử lý MIPS đơn chu trình. Trong hình dưới đây, tôi đã vẽ một mux đơn giản cho phép chọn giữa máy tính chuỗi thông thường hoặc địa chỉ lệnh (jr).Thực hiện điều khiển đăng ký nhảy tới một chu kỳ MIPS

MUX

Làm thế nào tôi có thể biết rằng các hướng dẫn là JR để thiết lập các lựa chọn MUX để '1'? Tôi đã thực hiện nhảy và jump_and_link (mặc dù hình ảnh không hiển thị nó, vì tôi không có dự án của tôi trong tay ngay bây giờ), và để kiểm soát chúng, tôi chỉ kiểm tra xem mã OP là 10 (nhảy) hay 11 (jal) trong điều khiển chính và sau đó đặt mux sel thành '1'. Nhưng tôi nghĩ rằng tôi không thể làm tương tự với jr, như cách bố trí hướng dẫn là khác biệt.

+1

Không biết số tiền này sẽ giúp ích cho bạn nhưng: 'jr $ ra' nhảy tới vị trí được lưu lần cuối trong thanh ghi địa chỉ trả lại. – wazy

+2

Có, và tôi đang tìm nạp "vị trí đã lưu" từ thanh ghi chỉ dẫn. Nhưng vấn đề là làm thế nào để kiểm soát khi đặt PC đến vị trí cuối cùng này hoặc máy tính mặc định + 4 .. – user2509740

+0

Vì vậy, nơi để nhảy? – wazy

Trả lời

6

Mã opcode của hướng dẫn JRInstruction[31:26] == 0 (đặc biệt) và Instruction[5:0] == 0x08 (JR). Bạn cần xem xét cả hai vị trí bit này để quyết định đây là hướng dẫn JR. Khối Control trên biểu đồ của bạn cần có đầu vào bổ sung là Instruction[5:0]. Trường rs trong Instruction[25:21] chọn thanh ghi nguồn cho hướng dẫn này. PC cần được gán cho rs khi lệnh JR được thực hiện.

+1

Cảm ơn bạn @markgz, đó là chính xác những gì tôi đang tìm kiếm. Nhưng làm thế nào tôi có thể kiểm tra xem Instruction [5: 0] có phải là 0x08 không? – user2509740

+0

Một cái gì đó như thế này: (Inst [3] VÀ! Inst [2] AND! Inst [1] AND! Inst [0])? – user2509740

+0

Hãy thử '! Inst [5] &! Inst [4] & Inst [3] &! Inst [2] &! Inst [1] &! Inst [0] .' Bạn phải kiểm tra tất cả các bit của' Lệnh [ 5: 0] .' – markgz

0

Tôi nghĩ rằng bạn có thể cải thiện hiệu suất của phần cứng bằng cách triển khai thực hiện JR mux trước Jump mux, vì JR mux không phụ thuộc vào pcnext của đầu ra của Jump sel mux.

Các vấn đề liên quan