Licznik programów i rejestr instrukcji

Licznik programu przechowuje adres instrukcji, która ma być wykonywana dalej, podczas gdy rejestr instrukcji przechowuje rzeczywistą instrukcję do wykonania. czy jedno z nich nie wystarczy?

A jaka jest długość każdego z tych rejestrów?

Dzięki.
Author: Benyamin Noori, 2013-04-01

2 answers

Zawsze będziesz potrzebował obu. Licznik programu (PC) przechowuje adres następnej instrukcji do wykonania, podczas gdy rejestr instrukcji (ir) przechowuje zakodowaną instrukcję. Po pobraniu instrukcji licznik programu jest zwiększany o jedną "wartość adresu" (do lokalizacji następnej instrukcji). Instrukcja jest następnie dekodowana i wykonywana odpowiednio.

Powodem, dla którego potrzebujesz obu jest to, że jeśli masz tylko licznik programu i używasz go do obu celów, otrzymałby następujący kłopotliwy system:

[początek wykonywania programu]

  1. PC zawiera 0x00000000 (powiedzmy, że jest to adres startowy programu w pamięci)
  2. zakodowana instrukcja jest pobierana z pamięci i umieszczana na komputerze.
  3. instrukcja jest dekodowana i wykonywana.
  4. Teraz nadszedł czas, aby przejść do następnej instrukcji, więc wracamy do komputera, aby zobaczyć, jaki jest adres następnej instrukcji. Mamy jednak problem, ponieważ poprzedni adres PC został usunięty, więc nie mamy pojęcia, gdzie jest następna Instrukcja.

Dlatego potrzebujemy innego rejestru do przechowywania rzeczywistej instrukcji pobranej z pamięci. Gdy pobieramy tę pamięć, zwiększamy PC tak, że wiemy, gdzie pobrać następną instrukcję.

P. S. szerokość rejestrów różni się w zależności od wielkości słowa w architekturze. Na przykład dla procesora 32-bitowego Rozmiar słowa wynosi 32 bity. Dlatego rejestry na procesorze byłyby 32 bity. Rejestry instrukcji są nie różnią się wymiarami. Różnica polega na zachowaniu i interpretacji. Instrukcje są kodowane w różnych formach, jednak nadal zajmują rejestr 32-bitowy. Na przykład procesor Nios II firmy Altera zawiera 3 różne typy instrukcji, z których każda kodowana jest inaczej. Zobacz stronę 6 z ftp://ftp.altera.com/up/pub/Tutorials/DE2/Computer_Organization/tut_nios2_introduction.pdf

Możesz dowiedzieć się więcej o strukturze procesora Nios II z linku powyżej jako cóż. Jest to prosty procesor IP. Oczywiście Intel ma swoją własną specyfikację/projekt i będzie się różnić.

 47
Author: Haleeq Usman,
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
2015-12-06 18:15:16

Jak podałeś, Program Counter (PC) przechowuje adres następnej instrukcji do wykonania, aInstruction Register (IR) przechowuje rzeczywistą instrukcję do wykonania (ale nie jej adres).

W zwiÄ ... zku z dĹ 'ugoĹ" ciÄ ... tych rejestrów, obecne maszyny majÄ ... 64-bitowe komputery. Długość IR (z logicznego punktu widzenia) zależy od architektury:

  • maszyny RISC zwykle mają instrukcje o stałej długości. Na przykład większość instrukcji SPARC są kodowane w formatach 32-bitowych.
  • Maszyny CISC (Intel, AMD) mają instrukcje o zmiennej długości. Na przykład, patrz podręczniki programistów Architektur Intel® 64 i IA-32

Ponieważ maszyny te są w stanie pobierać, dekodować i wykonywać kilka instrukcji w każdym cyklu, fizyczna implementacja IR nie jest łatwa do opisania w kilku linijkach.

 6
Author: chus,
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-08-24 15:58:01