Tecnología

Inicio

Proyectos simple microprocesador

Proyectos simple microprocesador


Muchos de los cursos de nivel de grado y en graduate- Scale Integration Muy Grande - VLSI - tienen proyectos pertenecientes a uno o más aspectos de diseño de microprocesadores. El objetivo de estos proyectos es poner a prueba la capacidad del alumno para aplicar los conocimientos teóricos en un entorno práctico. Este tipo de proyectos ayudan a la experiencia de ganancia estudiante con software y herramientas que se utilizan en el diseño VLSI. El objetivo debe ser mantener los proyectos lo suficientemente simple como para que el alumno las realice en un plazo razonable, al tiempo que presenta un reto al estudiante a pensar más allá del libro de texto.

Reduced Instruction Set sencilla Informática - RISC - Procesador

En este proyecto, se espera que el estudiante para crear un procesador RISC muy simple. El elemento procesa seis instrucciones: sumar, restar, multiplicar, dividir, carga y almacenamiento. Supongamos que hay tres registros: R1, R2 y R3. Las operaciones aritméticas - es decir, sumar, restar, multiplicar y dividir - se realizan en los valores almacenados en los registros R1 y R2. Por lo tanto, antes de realizar la operación, los registros deben ser cargados. El resultado de la operación se guardará en el registro R3. Antes de realizar una nueva operación, el valor de R3 debe ser almacenado en la memoria.

Para este proyecto, una memoria debe ser implementada. La memoria puede ser dividida en parte de datos e instrucción, respectivamente. El procesador RISC debe leer las instrucciones de la instrucción-memoria desde la dirección 0x0 a través de un valor máximo, y llevar a cabo las acciones correspondientes. La memoria puede ser cargado con un conjunto de instrucciones para el ensayo.

En tubería procesador RISC

En este proyecto, el procesador RISC anterior debería ser implementado como un procesador de tubería forrada. Un procesador RISC típico tiene cinco etapas de canalizaciones: "Fetch", "Decode", "Ejecutar", "memoria" y "escribir de nuevo". Pipe-revestimiento permite que varias instrucciones para estar activos al mismo tiempo, mejorando así el rendimiento del sistema.

Los procesadores de tubería forrada pueden sufrir de burbujas o ciclos de tiempo en el que se lleva a cabo ninguna operación útil. En un procesador de tubería de línea ideal, se asume en todas las etapas de la línea de tubería completa en un ciclo de tiempo, y no hay dependencia de una instrucción por el otro. Sin embargo, a veces el resultado de la instrucción previa puede ser necesaria para la siguiente instrucción. En tales casos, ninguna operación útil se puede realizar hasta que la instrucción anterior completa. Los estudiantes que alteran la arquitectura del procesador para reducir al mínimo estos ciclos muertos se pueden dar crédito adicional.

Análisis de rendimiento de las unidades aritméticas

Para este proyecto, diferentes implementaciones de las funciones aritméticas pueden ser estudiados por la puerta de conteo y los posibles beneficios de rendimiento. Por ejemplo, el sumador podría ser implementado como un sumador de ondulación o de llevar un sumador de equipaje de preanálisis. Una oleada de llevar sumador ondula el acarreo de una etapa a otra adición, y el resultado final está disponible cuando la última etapa se ha realizado la adición. Este sumador es lenta en el sentido de que se necesitan muchos ciclos para que el resultado esté disponible. Sin embargo, la ondulación de llevar sumador se puede implementar con un bajo recuento de compuertas.

Un sumador de equipaje de preanálisis determina el valor de acarreo de una adición antes de tiempo. Dado que el valor de acarreo se calcula antes de tiempo, el sumador puede calcular el resultado en menos ciclos. Sin embargo, el sumador equipaje de preanálisis realiza más cálculos, y por lo tanto es una prioridad en la puerta de conteo.

El multiplicador podría implementarse como un multiplicador de cabina o un multiplicador basado shift-add. El esquema basado en turnos complemento es el método de papel y lápiz regular de desplazamiento y añadiendo varias veces hasta finalizar el resultado. El multiplicador de la cabina representa el multiplicador de una manera más óptima para reducir considerablemente el número de adiciones requeridas. Por lo tanto, se necesita menos cantidad de ciclos de tiempo para calcular el resultado final.

Controlador de caché simple

Un controlador de memoria caché simple puede ser construido. El controlador de memoria caché podría ser de cuatro vías asociativa en conjunto, con un menos recientemente utilizada-- LRU - basado en políticas de sustitución. Cuando un bloque de caché tiene que ser reemplazado, la política LRU elige el bloque de caché menos utilizado recientemente, y sustituye al bloque.

En una de cuatro vías caché asociativa en conjunto, cada bloque de memoria puede ser colocado en uno de los cuatro lugares de la memoria caché. En comparación con el caché de correlación directa, donde cada bloque de memoria puede estar situado en un lugar exactamente en la memoria caché, de cuatro vías caché asociativa en conjunto ofrece una mayor flexibilidad para la ubicación del bloque y en consecuencia, un mejor rendimiento de la caché.

La memoria caché debe ser implementado tanto con las políticas de escritura simultánea de grabación inversa y. Cuando los datos en caché se modifica, la política de escritura no simultánea se actualiza la memoria principal sólo cuando se sustituye el bloque de caché. Por otro lado, la política de escritura a través actualiza la memoria principal cada vez que los datos de la caché se modifica.

Sistema coherente simple Cache

Un sistema simple de dos procesadores caché coherente con un inválido en base modificada-exclusiva-compartido-esquema puede ser implementado. Cada procesador tiene su propia memoria caché. En este esquema, una línea o bloque de memoria caché pueden estar en uno de los cuatro estados a saber, "modificados", "exclusivo", "compartidos" o "no válidos". Una línea está en estado de "modificado" si los datos en esa línea sólo es válida en la memoria caché del procesador. Una línea es "exclusivo" si los datos en esa línea está presente en la memoria caché del procesador, así como en la memoria principal. Una línea es "compartida" si los datos son válidos en la memoria caché de los dos procesadores. Una línea es "válido" si los datos no es válida en la memoria caché del procesador.

Tanto la coherencia de caché basada en directorios y la coherencia de caché basada en el fisgoneo deben aplicarse, y la escalabilidad de cada algoritmo al aumentar el número de procesadores deben ser estudiados. Un mecanismo de memoria caché de coherencia basada en directorios mantiene un directorio del estado de la memoria caché en la memoria principal. Este directorio se utiliza entonces para enviar mensajes al procesador sobre el estado de cada bloque de memoria caché. En un esquema basado en fisgón, cada modificación de los resultados de bloque de caché en un mecanismo de difusión mediante el cual los cachés de los otros procesadores reciben ninguna notificación sobre el cambio en el bloque de caché.