Implementacja kontroli rejestru skoków do MIPS jednokrotnego cyklu

Próbuję zaimplementować obsługę instrukcji jr (jump register)do procesora MIPS o jednym cyklu. Na poniższym obrazku narysowałem prosty mux, który umożliwia wybranie pomiędzy zwykłym komputerem łańcucha lub adresem instrukcji (jr).

MUX

Skąd mam wiedzieć, że instrukcja ustawia wybór mux na '1'? Zrobiłem już jump i jump_and_link (chociaż obrazek tego nie pokazuje, bo nie mam teraz swojego projektu w rękach), a żeby je kontrolować, po prostu sprawdź, czy kod OP to 10 (jump) lub 11 (jal) w głównym sterowaniu, a następnie Ustaw mux sel na '1'. Ale myślę, że nie mogę zrobić tego samego z jr, ponieważ układ instrukcji jest odrębny.

Author: Brian Tompsett - 汤莱恩, 2013-06-21

2 answers

Kod OPC JR instrukcji Ma Instruction[31:26] == 0 (special) i Instruction[5:0] == 0x08 (JR). musisz spojrzeć na obie te pozycje bitowe, aby zdecydować, że jest to Instrukcja JR. Blok Control na twoim diagramie musi mieć dodatkowe wejście Instruction[5:0]. pole rs W Instruction[25:21] wybiera rejestr źródłowy dla tej instrukcji. Komputer musi być przypisany do rs podczas wykonywania instrukcji JR.

 6
Author: markgz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-22 23:52:37

Myślę, że można poprawić wydajność sprzętu poprzez implementację JR MUX przed Jump Mux, ponieważ JR MUX nie jest zależny od pcnext wyjścia Jump sel MUX.

 0
Author: Shankhadeep Mukerji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-07 07:28:55