SAP-1 (Simple Assembly Program Computer, en hypotetisk dator som ofta används i inledande datorarkitekturkurser) kör instruktioner i en Fetch-Decode-Execute-cykel. Här är en uppdelning:
1. hämta: Instruktionens adress (som finns i programräknaren, PC) skickas till minnet. Minnet hämtar instruktionen från den adressen och placerar den i instruktionsregistret (IR). Datorn ökas sedan för att peka på nästa instruktion.
2. avkodning: Kontrollenheten avkodar instruktionen i IR. Detta innebär att identifiera opkoden (den del av instruktionen som anger den operation som ska utföras) och operanderna (de uppgifter som operationen kommer att agera på). Operander kan vara omedelbara värden (inbäddade i själva instruktionen), adresser till minnesplatser eller registernummer.
3. Utför: Baserat på den avkodade opcode leder styrenheten lämpliga åtgärder:
* aritmetiska/logiska operationer: Om instruktionen är en aritmetisk operation (tillägg, sub, etc.) eller en logisk operation (och, eller, etc.), skickas operanderna (hämtade från minne eller register som anges) till den aritmetiska logiska enheten (ALU). ALU utför operationen och lagrar resultatet i ett specifikt register eller minnesplats.
* Dataöverföringsoperationer: Instruktioner som last och butik flyttar data mellan minne och register. Last flyttar data från en minnesplats till ett register; Butik flyttar data från ett register till en minnesplats.
* Kontrollflödesinstruktioner: Dessa instruktioner ändrar ordningen för instruktionsutförande.
* Jump: Datorn är laddad med en ny adress som anges i instruktionen, vilket gör att programmet hoppar till en annan plats.
* gren (villkorad hopp): PC:n är laddad med en ny adress endast om ett specifikt villkor (t.ex. är ett registervärde noll) uppfylls. Annars fortsätter exekveringen med nästa instruktion.
* stopp: Processorn stoppar körningen.
Exempel:
Låt oss säga att vi har en instruktion "Lägg till R1, R2" (lägg till innehållet i register R1 för att registrera R2 och lagra resultatet i R2).
1. hämta: PC:n pekar på minnesplatsen som innehåller `Lägg till R1, R2 '. Denna instruktion hämtas och laddas i IR. Datorn ökas.
2. avkodning: Kontrollenheten känner igen "tillägg" som opkoden och identifierar R1 och R2 som operand (register).
3. Utför: Kontrollenheten leder följande åtgärder:
* Innehållet i R1 hämtas.
* Innehållet i R2 hämtas.
* ALU lägger till de två värdena.
* Resultatet lagras i R2.
Cykeln upprepar sedan med nästa instruktion som PC:s pekar på. De specifika detaljerna för registeranvändning, minnesadresseringslägen och instruktionsformat varierar något beroende på den specifika SAP-1-implementeringen som beskrivs i en lärobok eller kurs. Emellertid förblir den grundläggande hämtningsdekode-exekutcykeln konstant.