Entendiendo la Arquitectura de Computadores: Procesadores Monociclo, Multiciclo y Segmentados

Arquitectura de Computadores: 2º Curso, Grado Ingeniería Informática


Teoría


Ejercicio 1:


La gráfica a) pertenece al camino de datos de un procesador de tipo Monociclo, ya que ejecuta una instrucción por ciclo de reloj. Este ciclo de reloj lo determina la instrucción de mayor tiempo de ejecución.

La gráfica b) pertenece al camino de datos de un procesador de tipo Multiciclo. A diferencia de los procesadores monociclo, el ciclo de reloj es establecido por la etapa de una instrucción.

La gráfica c) pertenece al camino de datos de un procesador de tipo Segmentado. Este tipo de procesadores se caracteriza por la ejecución de etapas en las que, al terminar la etapa de una instrucción, se ejecuta la etapa de la siguiente instrucción. De esta manera, se superponen todas las instrucciones con una etapa de diferencia.

La gráfica d) pertenece al camino de datos de un procesador de tipo Emisión Múltiple, que se caracteriza porque se multiplican los recursos para atender a múltiples instrucciones de forma simultánea en cada etapa.

Desde el punto de vista del rendimiento de la ejecución de un programa, y viendo las gráficas, observamos que el procesador de Emisión Múltiple es el que ofrece mejor rendimiento, debido a que se ejecutan más instrucciones de forma simultánea. Así, también se termina antes de ejecutar el programa completo. Siguiendo este “ranking” en rendimiento, vemos los procesadores de tipo: Segmentación, Multiciclo y, finalmente, con peor rendimiento, el procesador monociclo.

Desde el punto de vista de la ejecución de una instrucción, observamos que en el monociclo se ejecutan sus instrucciones ciñéndose al tiempo de ejecución de la instrucción de mayor peso, por lo que su rendimiento no es el más óptimo. En los procesadores de tipo Segmentado y de Emisión Múltiple, todas las instrucciones están divididas en 5 etapas y se ejecutan todas por igual.

Por otro lado, en las instrucciones de los procesadores Multiciclo, se dividen en las etapas que solo son necesarias, lo que convierte a este tipo de procesador en el de mayor rendimiento respecto a la ejecución de una instrucción, al optimizar sus instrucciones.


Ejercicio 2: (Salva)


Si tomamos como ejemplo un procesador Segmentado, vemos que al ejecutar una instrucción, esta se divide en 5 etapas, de las cuales la etapa IF y la etapa MEM interactúan con bancos de datos, una memoria de instrucciones y otra memoria de datos. Por lo que, si en un ciclo de reloj coinciden dos instrucciones utilizando estas etapas (IF y MEM), cada instrucción utilizará una memoria diferente, ya que si existiera una sola memoria habría una colisión, interactuando en la misma memoria dos peticiones diferentes.


Ejercicio 2: (Julia)


La memoria está dividida en instrucciones y datos. En la etapa IF se produce un acceso a memoria de instrucciones y en la etapa MEM se produce un acceso a memoria de datos. El conflicto surge cuando en el pipeline todas las etapas están ocupadas realizando la instrucción correspondiente e intentamos tener dos accesos a memoria simultáneamente, puesto que esto es imposible. Por ello, es necesario tener esta división física de memorias.

Respecto a los núcleos de procesadores actuales, diremos que sí cuentan con esta característica, ya que están basados en Emisión Múltiple y enfrentan los mismos problemas que los procesadores Segmentados.


Ejercicios


Ejercicio 1 (Febrero 2012):


1. (1.5 puntos) Definir las funciones que desempeñan los siguientes elementos relacionados con los caminos de datos segmentados:


  • a. Registro de segmentación: Contiene los operandos que se utilizan para realizar los cálculos en la ALU.
  • b. Unidad de redireccionamiento: Unidad encargada de accionar el camino de datos cuando existen dependencias y utiliza los registros provenientes de las salidas de las etapas anteriores de otras instrucciones.
  • c. Unidad de detección de riesgos: Unidad que encontramos en la etapa ID, para detectar los posibles riesgos entre instrucciones consecutivas.
  • d. Predictor de saltos: Unidad que especula sobre los saltos y, de este modo, evita las paradas innecesarias que estos conllevan.


Va a caer una pregunta teórica sobre memorias: Memorias Asociativa por Conjuntos.


  • Un conjunto es un grupo de bloques.
  • Se dice que una MC es asociativa por conjuntos de N vías, cuando cada conjunto está formado por N bloques.
  • La memoria caché se organiza por conjuntos.
  • Nº conjuntos en caché = Nº bloques de caché / (Nº bloques por conjunto).
  • En esta organización, un bloque de MP puede ir a cualquier bloque de un determinado conjunto de MC.
  • Nº Cto_cache = (Nº bloque_M.P) MOD (Nº total_conjuntos_cache).


Ventajas:

  • Menor tasa de fallos que la correspondencia directa.
  • Menor coste hardware que la totalmente asociativa.

Grados más comunes: 1, 2 y 4.


¿Cómo se busca un bloque en caché?


Mp = 4 M palabras = 222 palabras

Cache = 4 K palabras = 212 palabras

Bloque = 8 palabras = 23 palabras

Conjunto = 4 bloques ::: Cache con 27 conjuntos

Nº Cto_cache = (Nº bloque_M.P) MOD (Nº total_conjuntos_cache)

Nº bloques total en MP = memoria principal dividido entre el tamaño de bloque.

Nº total de conjuntos en la caché = tamaño total de la caché dividido entre el tamaño del bloque (nº total de bloques en la caché) y todo ello dividido por el tamaño del conjunto.


Ejercicio 3 (Febrero 2013):


3. (1 punto) Describe las características de una arquitectura superescalar y los tres tipos de técnicas que incluye para mejorar su rendimiento.


Se denomina arquitectura superescalar a aquella implementación capaz de ejecutar más de una instrucción por ciclo de reloj.

Las características de la arquitectura superescalar son:

  1. La CPU decide si emitir 0, 1, 2,… instrucciones simultáneamente en cada ciclo, evitando dependencias estructurales y riesgos.
  2. El scheduling de las instrucciones no está completamente a cargo del compilador.

Las tres técnicas hardware que se pueden utilizar en un procesador superescalar para aumentar sus prestaciones son:

  • Especulación: Adivina lo que hacer con una instrucción.
  • Scheduling dinámico segmentado: Permite que la CPU ejecute instrucciones fuera de orden para evitar paradas.
  • Renombramiento de registros: Para resolver dependencias (las estaciones de reserva y los buffers de reordenamiento implementan renombramiento de registros).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.