Ing. Pablo M. Davicino
Arquitectura de Computadoras

Horarios 2013

Clases (teoría y práctica): Martes y Jueves de 14 a 18 hs, aula 13 Palihue.

 

  • Teoría: Martes y Jueves de 14 a 16 hs.
  • Práctica: Martes y Jueves de 16 a 18 hs.

 

Web de la materia: http://cs.uns.edu.ar/~pmd/ac_ing

Descripción y Objetivos

El objetivo de la materia es que los alumnos comprendan los aspectos centrales del funcionamiento y diseño de un sistema de cómputo.

Se comienza con el estudio de la ejecución de operaciones básicas de suma/resta, multiplicación, y división. Sus algoritmos, implementaciones básicas y alternativas de mejora de performance para éstas. Se ve al procesador central CPU con las distintas fases que atraviesa en el procesamiento de las instrucciones y las mejoras en cada una de ellas. Luego se introduce el concepto de pipeline en general y el aplicado al CPU para aprovechar el paralelismo a nivel de instrucciones ILP.

Se desarrolla una clasificación de los sistemas, derivada de la de Flynn, en función del paralelismo presente a nivel de datos y de instrucciones. Cluster. Grid.

Se estudia la organización e implementación de memorias RAM, tiempos de acceso y tiempos de ciclo. Memorias Asociativas, CAM. Concepto de jerarquía de memoria y localidad de las referencias. Memoria Cache. Memoria Virtual como alternativa al manejo de la interfaz Memoria Principal-Memoria Secundaria.

Se abordan aspectos básicos referidos al control del CPU, describiendo el cableado y el microprogramado. Se realiza una comparación entre ambos.

Por último se analizan cuestiones referidas a la interconexión entre módulos de memoria y procesadores en ambientes multiprocesador, y alternativas de implementación.

Como resultado se espera que el alumno alcance un nivel de conocimiento en el área de los sistemas de cómputo que lo habilite para analizar, evaluar, y comparar distintas arquitecturas.

La materia, demás de ser básica para Sistemas Operativos, resulta fundamental para la optativa de arquitectura avanzada, Arquitecturas Modernas.

Programa Tentativo

Módulo1.

Adición y Substracción de enteros. Circuitos semisumador y sumador completo.

Sumador serie y sumador paralelo. Ripple Adder, Carry Look-Ahead Adder (con MSI y LSI), Carry Skip Adder y Carry Select Adder. Análisis de complejidad de retardos y de espacio físico. Carry Save Adder, utilidad. Multiplicación. Algoritmo y circuito básico para su implementación.

Recodificación del multiplicador. Corrimientos y saltos sobre los 0's del multiplicador. Recodificación de Booth; saltos sobre 0´s y 1´s. Uso de Carry-Save Adder en el proceso de multiplicación. Wallace Tree con circuitos MSI. Arboles multiplicadores binarios con circuitos VLSI trabajando en notación redundante.

Algoritmo de la división con y sin restoring. Circuito básico para implementarlo. Método de división rápida, a partir del cálculo de la inversa. Algoritmo de división SRT con el cociente en dígito signado, trabajando en base 2. Fundamento teórico. Aplicación de SRT a circuitos divisores con base 4 y posibilidad de empleo de sumadores CSA en la división.

Módulo2.

Concepto de Pipelining. Clasificación según el uso y configuración. Secuenciamiento de los mismos. El procesador central, formas de acelerar los ciclos de una instrucción: FETCH, DECODE, EXECUTE.

Paralelismo a nivel de instrucciones, ILP. Esquema de un pipe de instrucciones, requerimientos básicos, ejemplo DLX. Hazards que podrán incrementar el CPI de
un pipeline: de Datos: RaW, WaR y WaW; de Recursos; de Control. Diversas formas de evitar los conflictos y/o reducir los ciclos Stall. Forwarding. Ejecución fuera de orden (dynamic scheduling).

Renombramiento de registros. Predicción estática de los branch. Branch retardado. Predicción dinámica, Branch Prediction Buffer. Branch Tarjet Baffer.

Arquitecturas con multiple issue: Procesador Superescalar y Procesador Very Large Instruction. Procesador Vectorial Vs.Procesador Escalar. Clasificación del procesamiento paralelo: SISD, SIMD, MISD, MIMD. Extensión de este último según como se organiza/direcciona la memoria: Shared Memory, Distributed Shared Memory y Distributed Memory. Paradigmas de programación.

Módulo 3.

Memorias RAM (Random Acces Memory). Direccionamiento. RAM semiconductoras,
estáticas y dinámicas. Memorias asociativas. Jerarquía de memoria. Localidad de las referencias.
Memoria Virtual; paginación, segmentación y segmentación con paginado. Mecanismos de
traslación: directo, asociativo e híbrido. Traslation look aside buffer. Algoritmos de reemplazo en
los sistemas paginados Fijos: Azar, FIFO, FINUFO, y LRU. Variables: Working Set y PFF.
Algoritmos óptimos. Propiedad stack. Alternativas para acelerar la comunicación Procesador-
Memoria principal. Interleaving de Memoria, alternativas de implementación. Memoria Cache,
formas de organización: Directa, Full Asociative y Set Asociative. Tipificación del los miss:
Cohersitivo – Capacitivo – Conflicto. Políticas de escritura en cache: write through y write back.
Alternativas ante un write miss: allocate y no allocate. Combinación con write back y write
through. Cache multinivel. Lockup-free cache. Cache virtuales: Index virtual, Tag virtual.

Módulo 4.

Diseño del control. Métodos de control cableado y microprogramado. Diseño de Wilkes. Microprogramación horizontal y vertical. Esquema de un control cableado. Formato de las microinstrucciones.

Organización con múltiple fase. Reducción del costo del hardware referido al tamaño de la memoria de control, ancho (tamaño de las microinstrucciones), alto (número de microinstruccioes).

Arquitecturas RISC y CISC, análisis comparativo. Aplicación de la microprogramación en: Emulación, Sintonía de Arquitecturas, Ejecución directa de Lenguajes de Alto Nivel.

Módulo 5.

Comunicaciones: locales y distantes, sincrónicas y asincrónicas. Comunicación dedicada y compartida. Time-Shared Bus, Memoria de Múltiple Pórtico, Cross Bar Switch y Multistage Switching Networks.

Bibliografía

  • J. Hennessy & D. Patterson, Computer Architecture A Quantitative Approach. Morgan Kaufmann Publishers INC, 2003.
  • Jean-Loup Baer, Computer Systems Architecture. Computer Science Press, 1980.
  • K. Wang y F. Briggs, Computer Architecture and Parallel Processing. McGraw-Hill, 1984.
  • J. Hayes, Computer Architecture and Organization. McGraw-Hill 1978
  • A. Tanenbaum, Structures Computer Organization. Prentice-Hall , Fourth Edition 1999.

 

 

Social Media

FacebookTwitterDiggDeliciousStumbleuponGoogle BookmarksRedditLinkedin

Concurrent Visitors

We have 1 guest online