Estructura de computadores

De castillowiki
Saltar a: navegación, buscar

Introducción:

Cualquier trabajo humano requiere de tareas repetitivas, monótonas y que pueden automatizarse. Las herramientas permiten obtener mejores rendimientos del esfuerzo humano y permiten al ser humano realizar cada vez menos tareas tediosas y más tareas productivas.

Los cálculos también pueden ser monótonos y repetitivos. A finales del siglo XIX, los gobiernos, ejércitos y empresas necesitaban procesar cantidades ingentes de información. El censo de un país podía durar lustros. [1]

Resulta que todas estas tareas se pueden dividir en muchas subtareas muy simples. Estas subtareas son tan simples que coinciden con las de otras tareas que son muy diferentes. Por ejemplo, realizar cálculos de trayectoria de misiles es muy diferente a calcular intereses en un banco. Pero comparten subtareas comunes: sumar, restar, multiplicar, guardar los resultados... La diferencia son los datos introducidos y el orden en que se ejecutan estas subtareas.

Podemos definir la informática como el tratamiento automático de la información. A ese tratamiento se le denomina procesamiento. Los datos aportan conocimiento, a partir de los datos y un cierto proceso, se puede obtener información.

En cuanto al término computador u ordenador son indistintos. El primero hace más referencia a la capacidad de cálculo y el segundo a la capacidad de procesar la información. La diferencia entre el computador y otras máquinas es que este es programable. Un computador en principio no está especializado en hacer algo en concreto. Sino que espera a que alguien le diga los datos y las instrucciones que debe hacer. Es decir: lo programe.

Un programa es un conjunto de instrucciones que se le mandan al ordenador para que este las ejecute. Estas instrucciones están ordenadas secuencialmente, ya que el ordenador sólo es capaz de ejecutarlas de una en una.

Un ordenador, por tanto, recibe datos de entrada, que es la información original. Los procesa siguiendo las órdenes del programa y devuelve unos datos de salida, la información derivada. Hoy en día existen muchos tipos de ordenadores digitales. Casi todas las máquinas que realizan algo de forma automática disponen de un ordenador en su interior. Algunos de estos ordenadores son muy pequeños, otros tienen las capacidades muy limitadas, otros son los llamados supercomputadores que son capaces de realizar cálculos muy complejos y otros, los más comunes son los ordenadores personales. Todos ellos tienen una serie de características comunes que hacen que funcionen de una forma parecida.

Estas características son comunes en cualquier ordenador digital y se definen en la arquitectura de computadores. La arquitectura fundamental de los computadores actuales es la publicada por Von Neumann a principios de los años 40.

A pesar de la espectacular evolución de los mismos, los fundamentos han permanecido invariables durante estos años. Esta evolución, ilustrada perfectamente en la ley de Moore (que asegura que velocidad se duplicaría cada año y se ha cumplido casi exactamente hasta hoy), ha hecho que los ordenadores sean más pequeños, más rápidos y almacenen más información.

En 1970, la invención del microprocesador hizo posible una mayor integración y nacieron los ordenadores modernos. A principio de los 80 surgieron los primeros ordenadores personales y con ellos un nuevo mercado orientado al ocio y la comunicación. La arquitectura de computadores es un tema teórico, cuyas relaciones con los ordenadores reales dependen de los diseñadores actuales de hardware. Sin embargo, es importante conocerla, ya que, sin entrar en características particulares de los dispositivos reales, constituye la base teórica sobre la que estos se construyen. Entendemos un ordenador digital como la máquina que a partir de unos datos y unas órdenes, los procesa y saca otros datos. Para ello necesita unos dispositivos de entrada y salida, una memoria y un procesador de la información.

Estructura básica de un ordenador.

Un ordenador digital tiene 3 partes fundamentales: La memoria, la unidad central de proceso y la unidad de entrada y salida. Estas partes de comunican por medio de los buses. Según la arquitectura Von Neumann; la memoria, la CPU y los sistemas de entrada y salida están conectados al un mismo bus.

Arquitectura von Neumann.png

Al principio de la computación electrónica aparecieron dos arquitecturas enfrentadas: La arquitectura Harvard y la arquitectura Von Neumann. Harvard separaba la memoria de datos de la de instrucciones. Von Neumann proponía una arquitectura más flexible en la que las dos memorias estaban juntas. Las dos tienen sus ventajas. Von Neumann permite más libertad y flexibilidad al programador y Hardvard está enfocada al rendimiento. En la actualidad las máquinas son híbridas, el procesador tiene registros de datos e instrucciones, mientras que la RAM, es totalmente Von Neumann.

Un ordenador ejecuta programas, que son un conjunto de instrucciones y datos que se ejecutan de forma secuencial y que a partir de unos datos de entrada producen una salida. Para ejecutar esos programas el ordenador sigue esta estructura básica:

  • Busca cual es la siguiente instrucción a ejecutar.
  • Decodifica la instrucción
  • Busca los operandos
  • Realiza la operación
  • Y almacena el resultado.

Como se puede entender, esas instrucciones han de ser precisas y previamente conocidas por el ordenador. Las instrucciones, los operandos y el resultado están en la memoria, el procesador es el encargado de la ejecución de las mismas.

Los programas en la memoria están almacenados en Lenguaje máquina. Pero para programarlos existen lenguajes de más alto nivel que son más fácilmente entendibles por los humanos y que agilizan la programación. Los programas compiladores se encargan luego de transformarlo a lenguaje máquina.

Memoria

La memoria de un ordenador es la encargada de almacenar los datos e instrucciones. Existen varios tipos de memoria en función de su utilidad. Memoria RAM. También llamada memoria principal. Es la que se encarga de guardar de forma temporal los datos e instrucciones de los programas que está en ejecución. Memoria ROM. Es una memoria de sólo lectura. Guarda los programas básicos necesarios para el arranque de la máquina. Memoria Caché. Es una memoria como la RAM, pero de acceso mucho más rápido. Es mucho más pequeña y se usa para datos e instrucciones más inmediatos. Disco Duro. Es una memoria de lectura y escritura que guarda permanentemente la información, incluso con el ordenador apagado. Es donde se guarda el sistema operativo, los programas y los datos necesarios por el usuario. Memorias externas. CDROMS, DVD, Disquetes, cintas, memorias flash SSD... son todas aquellas que permiten guardar la información fuera del ordenador.

Existe una jerarquía de memoria según la cual se ordenan las memorias. La primeras son las más rápidas, importantes y caras. Así, el orden de jerarquía es el siguiente: registros del procesador, caché, RAM y ROM, discos duros y memorias externas.

La memoria está organizada en celdas. Cada celda contiene un dato y tiene una dirección de memoria.

En memoria se pueden hacer dos operaciones:

  • Escribir en memoria, para lo cual hay que darle la dirección y el dato a escribir.
  • Leer de memoria, se pide una dirección y responde con el dato pedido.

Memoria RAM

La memoria RAM (Random Access Memory) básicamente es la memoria que usan los programas que están en ejecución. La RAM se borra cuando el ordenador se apaga y necesita ser refrescada a menudo para no perder la información. Se llama de acceso aleatorio porque se puede acceder a cualquier byte de esa memoria sin afectar a los precedentes. La estructura es la de una matriz de celdas de memoria que tienen una dirección. Es por eso que el acceso a cualquier posición de la memoria tarda lo mismo. Se denomina Palabra al conjunto de bits a los que se accede con una dirección. El tamaño mínimo es un Byte. Internamente, la memoria RAM tiene una matriz de celdas de memoria, un decodificador de la dirección y unos transductores encargados de leer y escribir en las celdas. Para comunicarse con el procesador, la memoria principal usa: El bus de direcciones, por el que se envía la dirección de la palabra a acceder. (MAR) El bus de datos, por el que se envía el dato leído o el dato a escribir. (MBR) Líneas de control para la Selección de memoria CS, Lectura RD Escritura WR y preparada READY La velocidad de acceso a la memoria RAM se mide en función de los ciclos de reloj necesarios para leer o escribir y el tiempo que pasa de una instrucción a otra.

RAM Estáticas y Dinámicas

Dependiendo de cómo se comporten las celdas de memoria podemos distinguir entre RAM estáticas o dinámicas. La RAM estática no necesita ser refrescada, esto hace que su acceso pueda ser más rápido, pero son más caras. La RAM dinámica debe ser refrescada, ya que sus celdas pierden la información. El tiempo de refresco reduce por tanto la velocidad de acceso. Sin embargo, siguen siendo muy rápidas y son más baratas. La RAM dinámica es la usada comúnmente en los ordenadores como memoria principal. Mientras que la RAM estática se usa para implementar la memoria caché.

Secuencia para la lectura o escritura en memoria.

Para leer de la memoria RAM se siguen los siguientes pasos: 1. Transferir los bits de dirección a través de MAR . 2. Activar la línea de control de lectura 3. La palabra demandada por el MAR se transfiere al MBR

Para escribir en la memoria RAM se siguen los siguientes: 1. Transferir los bits de dirección al MAR. 2. Transferir al MBR los bits de datos y 3. Activar la entrada de control de escritura.

La cantidad de bits de dirección necesarios depende de la capacidad de palabras de la memoria. Así, un MAR de n bits puede direccional 2^n palabras. Por ejemplo, con 10 bits se podrían direccional 1024 palabras. La unidad de memoria tendría, por tanto 1024 registros numerados del 0 a 1023.

Existen memorias de memoria destructible cuyas celdas mantienen los datos hasta que una operación de lectura los borra. Si no se desea que sean borrados se deben implementar controles adicionales para reponen la palabra.

La memoria Caché

La memoria caché forma parte, junto con la RAM de la memoria principal del ordenador. Por tanto, cuando se habla de memoria principal no se está haciendo distinción entre caché y RAM. La memoria caché, por su fabricación es más rápida y cara que la RAM. Por eso, para que los ordenadores puedan ir más rápido, se fabrican con una cierta cantidad de memoria caché que almacena datos muy recurrentes en la ejecución de un programa. Existen estrategias para predecir qué datos deben estar en la caché porque van a necesitarse mucho en un momento determinado. Los procesadores actuales tienen memoria caché integrada. Esta se fabrica en dos niveles de jerarquía. Algunos procesadores recurren a tener más caché en vez de más velocidad para tener un mejor rendimiento.

La memoria ROM (Read Only Memory)

Es un tipo de memoria cuyo contenido no puede ser modificado. Se usa para las instrucciones básicas del ordenador y para su arranque. En esa memoria está el programa que se encarga de iniciar todos los elementos del ordenador y llamar al sistema operativo. Estos programas se llaman BIOS. A parte de la memoria ROM existen variantes como la PROM, que es una memoria que no se borra pero que puede ser programada, la EPROM, una memoria que puede ser borrada con luz o la EEPROM que puede ser borrada con una descarga eléctrica.


Para la CPU, toda la memoria principal es igual. Pero en realidad hay una sección de memoria ROM y otra de RAM.

Cuando un ordenador arranca, la CPU busca la primera instrucción y las va ejecutando de una en una. Estas primeras instrucciones corresponden a la ROM y se encargan de buscar el sistema operativo y cargarlo en la RAM. Una vez lo ha hecho, apunta a la primera instrucción del sistema operativo ya en RAM y cede el control.

Unidad central de proceso CPU

La CPU es la encargada de ejecutar las órdenes almacenadas en memoria. Estas instrucciones están en el llamado lenguaje máquina.

http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento

Lenguaje máquina.

Este lenguaje es muy sencillo y se compone de una serie de instrucciones llamadas juego de instrucciones del computador. Las instrucciones de este juego deben cumplir unos requisitos:

  • Realizar una única función sencilla
  • Emplear un número fijo de operandos con una representación determinada
  • Debe tener una codificación de fácil decodificación
  • Las instrucciones son independientes de otras.

Las instrucciones son tan básicas que para hacer una sencilla operación es necesario hacer muchas instrucciones. Es por eso que para hacer un programa suele ser más eficiente usar un lenguaje de un nivel más alto y un compilador que lo transforme a lenguaje máquina.

Las instrucciones se realizan de forma secuencial, a la frecuencia que marcan los ciclos de reloj. Cada ciclo indica cuando se debe empezar una fase. Un procesador puede no emplear los mismos ciclos de reloj para todas las instrucciones. Por ejemplo, una suma emplea menos ciclos que una multiplicación en coma flotante.

Hay varios tipos de instrucciones fundamentales:

  • Aritmético/Lógicas (las que requieren a la ALU para ejecutarse)
  • De transferencia de memoria (son las que leen o escriben en memoria)
  • De ruptura de secuencia (producen saltos en el órden de las instrucciones, esto permite bucles o subrutinas)
  • De entrada y salida.

Dependiendo del juego de instrucciones, las unidades centrales de proceso tienen dos filosofías distintas: CISC i RISC. El juego de instrucciones de un procesador RISC es reducido, por lo que necesita realizar más para terminar una instrucción compleja. Este sistema usa un ciclo para cada instrucción. El juego de un CISC es más complejo y los ciclos por instrucción son variables. Internamente, los procesadores CISC tienen microinstrucciones que dividen las instrucciones complejas. Los procesadores comerciales actuales son híbridos.

Dentro de la CPU hay una unidad de control y una unidad aritmetico/lógica. A continuación explicaré detalladamente la dos:

La Unida Aritmético/Lógica (ALU)

La unidad aritmético/lógica se encarga de realizar operaciones sobre los datos que la unidad de control le envía y según las órdenes que esta unidad le indica. La Unidad Aritmético/Lógica está formada por operadores, que son circuitos electrónicos capaces de hacer una operación aritmético-lógica. Los operadores se pueden clasificar de varias maneras:

  • Estos operadores pueden ser generales, si pueden realizar más de una operación o especializados cuando sólo pueden realizar una operación.
  • Pueden ser secuenciales sin necesitan más de una fase para obtener el resultado o combinacionales si pueden obtenerlo en una sola fase.
  • Estas operaciones pueden requerir uno o más operandos.
  • Pueden realizar la operación en paralelo sobre todos los bits o en serie, uno a uno.

Así, la estructura de la ALU se compone de los siguientes elementos:

  • Uno o varios operadores.
  • Un banco de registros que sirve para que se almacenen temporalmente datos útiles para las instrucciones. Uno de estos registros es el acumulador y es el depositario de los resultados.
  • Y por último unos biestables de estado Z (cero) que es 1 cuando el resultado da 0 , N (negativo) C de acarreo O de desbordamiento y otros.

La unidad de control

El objetivo de la unidad de control es controlar el funcionamiento de todo el ordenador dirigiendo datos y órdenes a todas las unidades en el momento preciso. Para la ejecución de una instrucción la unidad de control sigue estos pasos:

  • Capta las instrucciones
  • Las interpreta
  • Capta los operandos
  • Envía las órdenes a la ALU, si procede.
  • Guarda los resultados en memoria

Pero la unidad de control no sólo ejecuta instrucciones. También controla el flujo de datos entre las diferentes partes. Organiza los tiempos de acceso y ejecución dentro del procesador y envía o recibe señales de control de los periféricos.

La unidad de control tiene una serie de registros encargados de almacenar datos durante la ejecución de un programa. Estos registro son:

  • El contador de programa, donde guarda la dirección de la siguiente instrucción a ser ejecutada.
  • El registro de instrucciones, donde guarda la instrucción en curso.
  • El registro de estado que mantiene información sobre lo que ha pasado en la operación de la ALU.
  • Y el registro de direcciones (MAR) donde se guarda la dirección del dato que va a ser accedido en la memoria.

Secuencia de ejecución de una instrucción

Cuando una CPU termina de ejecutar una instrucción, el registro Contador de Programa le indica cual es la dirección de siguiente instrucción a ejecutar. Por lo que entra en la etapa de búsqueda y decodificación. En esa etapa, lee la instrucción de la memoria, incrementa el contador de programa y decodifica la instrucción. La siguiente etapa depende del tipo de instrucción. En las instrucciones aritmético lógicas lee los operandos de la instrucción, opera con sus contenidos en la ALU y almacena el resultado en el banco de registros. En las instrucciones de transferencia de datos, calcula la dirección de acceso a partir de los datos de la instrucción y luego lee o escribe en memoria. En las instrucciones de salto calcula la dirección en memoria en la que está la instrucción a la que se salta y la almacena en el contador de programa.

Secuencia de ejecución de una instrucción

Tipos de instrucciones

  • De movimiento de datos: Entre registros, registros y memoria, dos celdas de memoria o periféricos.
  • Aritméticas
  • Lógicas (AND, OR, NOT, XOR, NAND, NOR...) o desplazamientos de bits.
  • Saltos, ya sean fijos, condicionales o subrutinas.


Según el juego de instrucciones del procesador, se distinguen dos tipos:

  • CISC - Complex instruction set computers. Muchas instrucciones complejas y lentas.
  • RISC - Reduced instruction set computer. Pocas instrucciones, las básicas, muy rápidas.

El primer tipo puede requerir más de un ciclo de reloj por instrucción.

Unidades de entrada y salida.

El concepto de entrada y salida hace referencia a toda comunicación entre la CPU y la memoria principal con el exterior. Para llevar a cabo el intercambio hay que tener en cuenta que los dispositivos de entrada y salida son muy heterogéneos y por tanto no se puede dar una comunicación directa con el procesador. Por ello, la unidad de entrada y salida ha de tener un controlador que es un dispositivo hardware y software que permite esa comunicación. Todos los dispositivos de E/S pasan por un controlador. Por ejemplo el disco duro ha de pasar por el controlador de discos duros o la impresora por el controlador de comunicación.

El sistema de entrada y salida ha de resolver los siguientes problemas:

  • Selección de los periféricos
  • La sincronización entre el periférico y el procesador
  • La transferencia de datos.

La forma de seleccionar los periféricos en la mayoría de los ordenadores, en los que se conecta todo al mismo bus es teniendo la E/S mapeada en memoria. Esto significa que para el procesador, hay una única memoria con un espacio de direccionamiento que comprende la memoria principal más la de los periféricos. La ventaja es que no se necesitan instrucciones específicas. El inconveniente es que se pierden direcciones de memoria y que es más difícil mantener la protección del acceso a los periféricos.

Para realizar la transferencia de datos hay que sincronizar la CPU con el sistema de E/S. Hay dispositivos que están siempre sincronizados, por lo que no es necesario sincronizar. Para aquellos que son necesarios sincronizar:

  • Se puede sincronizar por sondeo, la CPU va consultando la situación de cada uno de los dispositivos en su registro de estado y si están preparados comenzar la transmisión. El problema es que se pierde tiempo de CPU y no tiene en cuenta la prioridad de algunos periféricos.
  • Otra forma de sincronización es mediante las peticiones de interrupción. Cuando un dispositivo está preparado envía una señal de interrupción y el procesador termina la instrucción que estuviera haciendo, inhibe el sistema de interrupciones y guarda el estado en que se ha quedado. Busca la rutina de servicio de esa interrupción y la realiza. Después restaura su estado anterior y continúa con el programa interrumpido. Esta forma ahorra ciclos de CPU y puede tener en cuenta determinadas prioridades entre dispositivos, ya que algunos incluso pueden interrumpir la transferencia con otros.

Los Buses

Estos son los componentes de comunicación. Un bus es un conjunto de conductores eléctricos a los que se conectan los demás componentes. El bus no discrimina y todos los componentes reciben las señales, son estos los que deben ignorar las que no van a ellos. Físicamente el bus puede estar construido de muchas maneras, pero su comportamiento lógico ha de ser el de bus eléctrico paralelo. Dependiendo de su fabricación, el bus puede tener una velocidad de transmisión y una capacidad de conexión, que son los dispositivos que se pueden conectar al bus.

La operación básica en un bus se denomina ciclo de bus que permite realizar una transferencia entre dos dispositivos conectados a él. Los buses envían la información sin ningún tipo de modificación. Normalmente transmiten todos los bits en paralelo. La temporización del bus puede ser de ciclo completo, cuando el bus se ocupa todo el tiempo que dura la transferencia o de ciclo partido, cuando se divide el bus en pequeño periodos, es más complejo, pero permite una mayor cantidad de información.

Un bus tiene líneas de direcciones, líneas de datos y líneas de control. Dependiendo de las líneas que tenga se dice que tiene una anchura. De la anchura, es decir, de la cantidad de datos que puede transmitir en un ciclo, depende el rendimiento del ordenador. La anchura suele coincidir con el ancho de palabra de la memoria. La cantidad de líneas en el bus de dirección es la que determina el rango de posiciones de memoria que pueden ser accedidas.

Buses.png


Chipset

Artículo del chipset

En las placas antiguas habían unos chips encargados de las comunicaciones entre los dispositivos del ordenador. Con la integración de los transistores, se ha reducido a uno nada más que ejerce todas las funciones.

El chipset se encarga de:

  • Control de la memoria
  • Control de las interfaces de teclado, ratón...
  • Gestión del DMA
  • Gestión de interrupciones
  • Control del reloj
  • Control de los puertos de comunicación
  • Buses del sistema

El chipset, por tanto, define las capacidades de expansión del sistema. Determina si se puede instalar un periférico (PCI, ISA, AGP...) El Chipset también determina la velocidad de los buses y del procesador.

El chipset está dividido en dos partes:

  • El northbridge se encarga del FSB (Front Side Bus) y se comunica con el procesador, la RAM y la gráfica. Algunos de ellos tienen integrada una gráfica.
  • El southbridge se encarga de la conexión con los componentes más lentos: PCI, IDE, SATA, USB, DMA...

Parámetros que caracterizan un ordenador.

Ancho de palabra

Se trata del número de bits que maneja en paralelo. La unidad mínima de información digital es el bit. Pero los buses no pueden transportar menos información que un byte. El ancho de palabra influye en el tamaño de los registros, el la ALU y en los buses de direcciones. Así, un ordenador de 32 bits tiene 4 bytes en cada operación. Un ordenador de 64 bits funciona con 8. A nivel de la ALU, cuantos más bits tenga cada operando se obtiene más precisión o los números pueden ser más grandes. No quiere decir que un ordenador de 32 bits no pueda calcular lo mismo que uno de 64. Lo que pasa es que uno de 64 lo puede hacer de una vez y uno de 32 necesita varias instrucciones. En cuanto a las direcciones de memoria, un ordenador de 32 bits sólo puede direccionar 2³² = 4Gb. Los de 64 bits pueden direccionar mucho más.

Tamaño de la memoria principal (RAM)

Uno de los factores que más influyen en el rendimiento de los ordenadores es la capacidad de la RAM. Actualmente suelen verse ordenadores con varios Gb de memoria RAM. Puesto que los procesadores de PC y portátiles ya son de 64 bits, no existe la limitación de 4Gb de los de 32.

Ancho de banda

Se puede definir como el caudal de información que transmite un bus, una unidad de E/S o que puede procesar una unidad. Se expresa en Kb/s Kilobits por segundo. o en Mb/s

Potencia de cómputo

Este es uno de los puntos más complicados de medir. La potencia de cómputo depende de muchos factores. Hay procesadores con más potencia para un tipo de operaciones que otros y no se puede saber, a priori, qué tipo de operaciones se van a necesitar. Hay múltiples factores que influyen en el cálculo de la potencia:

  • El juego de instrucciones. (MIPS, RISC...)
  • La frecuencia del reloj de la CPU (GHz)
  • El número de núcleos.
  • El ancho de la palabra. (32, 64...)
  • La cantidad de memoria caché.

No existe, por tanto, una unidad de medida de la potencia que refleje exactamente lo que necesitamos. Pero tradicionalmente se ha recurrido a los MIPS o MFLOPS que son millones de instrucciones por segundo o millones de instrucciones en coma flotante por segundo. Pero en una situación real hay una mezcla de instrucciones de todo tipo. Por lo que otros prefieren benchmarks comparados o el resultado de ejecutar programas exigentes como juegos o renderizados. Hay “test sintéticos” oficiales como el Linpack o el SPEC y no oficiales como los juegos de última generación o el 3DMark.

Para aumentar la potencia del un computador se puede optar por lo siguiente:

  • Aumentar la frecuancia del reloj: Esto produce más calor, aumenta los errores y potencia los defectos del algunos procesadores.
  • Mayor número de registros para evitar la memoria: Dificulta la programación y depende del programa.
  • Más caché: Aunque la caché sea más cara, aumentandola se evita tener que usar el bus para acceder a la RAM tan a menudo y aumenta la velocidad global.
  • Más núcleos: En este caso el rendimiento también depende de la capacidad de procesamiento paralelo del sistema operativo y los programas. Teóricamente multiplica la velocidad por el número de núcleos, pero en la práctica no es tan eficiente.
  • Comenzar a ejecutar una instrucción antes que termine la anterior. Esto aprovecha los momentos ociosos de algunos componentes de la CPU mientras terminan todas las fases de cada instrucción. Se basa en presuponer que la siguiente instrucción será la siguiente en memória y comenzar a decodificarla mientras se ejecuta la anterior. En caso de que la anterior sea de salto, no pasa nada porque la CPU abandona la instrucción siguiente e inicia de nuevo el proceso.

Enlaces

http://elpuig.xeill.net/Members/vcarceler/c1/didactica/apuntes/ud2/na1