Tôi cần bao nhiêu quầy hàng để thực hiện các hướng dẫn sau đây đúng cách. Tôi hơi bối rối với những gì tôi đã làm, vì vậy tôi ở đây để xem các chuyên gia trả lời.Đường ống trong lắp ráp
lw $1,0($2);
beq $1,$2,Label;
Lưu ý rằng việc kiểm tra xem chi nhánh sẽ xảy ra hay không sẽ được thực hiện trong giai đoạn giải mã. Nhưng rs đăng ký nguồn của beq đó là $ 1 trong trường hợp này sẽ được cập nhật sau khi giai đoạn writeback của lệnh lw. Vì vậy, chúng ta cần phải chuyển tiếp dữ liệu mới từ bộ nhớ trong giai đoạn bộ nhớ để giải mã giai đoạn của lệnh beq.
Stage đi như thế này:
NẾU: Hướng dẫn quyến rũ; ID: Hướng dẫn Giải mã Ex: Thực hiện/ALU giai đoạn MEM: đọc dữ liệu từ bộ nhớ WB: lưu trữ dữ liệu trong nơi đăng ký
Đây là những gì tôi đã làm cho đến nay.
Khi lw ở giai đoạn exec và beq trong giai đoạn giải mã, điều kiện ngừng hoạt động trở thành sự thật và bong bóng được tạo. Bây giờ lw đang trong giai đoạn Mem và beq vẫn đang trong giai đoạn giải mã do bong bóng, một lần nữa tình trạng trì trệ đã trở thành sự thật và gian hàng thứ hai đã xảy ra. Và bây giờ lw là trong WB (viết lại) và beq đang ở giai đoạn giải mã nhưng vẫn là giá trị của $ 1 sẽ cập nhật vào cuối giai đoạn WB mà cuối cùng có nghĩa là beq sẽ vẫn hoạt động với giá trị sai $ 1.
"kiểm tra xem chi nhánh có xảy ra hay không" - bạn có ý định kiểm tra nào. Theo http://www.csc.gatech.edu/~copeland/3055-00/lab/lab-2/MIPS_pipes.JPEG nhánh được thực hiện trong EX; và PC mới được chuyển tiếp đến PC đăng ký tại MEM. – osgx
Bạn cần thêm 1 gian hàng thêm vì chi nhánh bị trễ. Vì vậy, bạn sẽ cần 7 quầy hàng. – Blood
làm thế nào nó trở thành 7 quầy hàng ?? Tại hầu hết các quầy hàng có thể là 2 – Alfred