El cicle d'instruccions (també conegut com a cicle d'obtenció-descodificació-execució, o simplement cicle d'obtenció-execució) és el cicle que la unitat central de processament (CPU) segueix des de l'arrencada fins que l'ordinador s'ha apagat per processar les instruccions. Es compon de tres etapes principals: l'etapa d'obtenció, l'etapa de descodificació i l'etapa d'execució.[1]
En les CPU més simples, el cicle d'instruccions s'executa de manera seqüencial, cada instrucció es processa abans que s'iniciï la següent. A la majoria de les CPU modernes, els cicles d'instruccions s'executen simultàniament, i sovint en paral·lel, a través d'una canalització d'instruccions : la següent instrucció comença a processar-se abans que hagi acabat la instrucció anterior, cosa que és possible perquè el cicle es divideix en passos separats.[2]
El comptador de programa (PC) és un registre especial que conté l'adreça de memòria de la següent instrucció a executar. Durant l'etapa d'obtenció, l'adreça emmagatzemada a l'ordinador es copia al registre d'adreces de memòria (MAR) i després s'incrementa l'ordinador per "apuntar" a l'adreça de memòria de la següent instrucció a executar. Aleshores, la CPU pren la instrucció a l'adreça de memòria descrita pel MAR i la copia al registre de dades de memòria (MDR). El MDR també actua com un registre bidireccional que conté les dades obtingudes de la memòria o les dades que esperen ser emmagatzemades a la memòria (també es coneix com a registre de memòria intermèdia (MBR) per això). Finalment, la instrucció del MDR es copia al registre d'instruccions actual (CIR) que actua com a suport temporal per a la instrucció que s'acaba d'obtenir de la memòria.[3]
Fase d'obtenció: la següent instrucció s'obté de l'adreça de memòria que està actualment emmagatzemada al comptador de programes i s'emmagatzema al registre d'instruccions. Al final de l'operació d'obtenció, l'ordinador apunta a la següent instrucció que es llegirà al cicle següent.
Etapa de descodificació: durant aquesta etapa, la instrucció codificada presentada al registre d'instruccions és interpretada pel descodificador.
Llegir l'adreça efectiva: En el cas d'una instrucció de memòria (directa o indirecta), la fase d'execució serà durant el següent pols de rellotge. Si la instrucció té una adreça indirecta, l'adreça efectiva es llegeix de la memòria principal, i totes les dades necessàries s'obtenen de la memòria principal per ser processades i després col·locades en registres de dades (pols de rellotge: T ₃). Si la instrucció és directa, no es fa res durant aquest pols de rellotge. Si es tracta d'una instrucció d'E/S o d'una instrucció de registre, l'operació es realitza durant el pols de rellotge.
Etapa d'execució: la unitat de control de la CPU passa la informació descodificada com una seqüència de senyals de control a les unitats funcionals rellevants de la CPU per dur a terme les accions requerides per la instrucció, com ara llegir valors dels registres, passar-los a l'ALU perquè les realitzi. funcions matemàtiques o lògiques sobre ells i escrivint el resultat en un registre. Si l'ALU està implicat, envia un senyal de condició a la CU. El resultat generat per l'operació s'emmagatzema a la memòria principal o s'envia a un dispositiu de sortida. A partir de la retroalimentació de l'ALU, el PC es pot actualitzar a una adreça diferent de la qual s'obtindrà la següent instrucció.