Repaso de Arquitectura y
Organización
Criterios de clasificación
v.2014
William Stallings, Organización y Arquitectura de Computadores, 8ª ed, 2010
Andrew S. Tanenbaum, Organización de Computadoras, 4ª ed, 2000
John Hennessy – David Patterson
Arquitectura de Computadores – Un enfoque cuantitativo
(1ª ed, 1990, cap 1 a 5) (4ª ed, 2007, cap 1 & ap. B)
http://electro.fisica.unlp.edu.ar/arq/
Ingeniería en Computación E309
3º CUAT Conceptos de Arquitectura de Computadoras (INFO)
5º CUAT Introducción al Diseño Lógico
6º CUAT Taller de Arquitectura
7º CUAT Circuitos Digitales y Microcontroladores
Ingeniería Electrónica E226
7º CUAT Introducción a los Sistemas Lógicos y Digitales
8º CUAT Circuitos Digitales y Microprocesadores
9º CUAT Arquitectura de Computadores I
Arquitectura de Computadoras
Contenido de las clases
intoductorias
Introducción, repaso de Arquitectura I, bibliografía.
Definición de Arquitectura de Computadoras.
Prehistoria e historia de las computadoras.
Clasificación según el repertorio de instrucciones.
Clasificación según la organización.
Clasificación según la tecnología.
Clasificación según la aplicación.
Objetivos de la materia.
4
Arquitectura de Computadoras
Introducción
Dispositivo electrónico, digital y programable, utilizado para el
procesamiento y/o manipulación de información.
COMPUTADORA
Representación digital de la información. Sistemas numéricos posicionales
en base 2. Operaciones aritméticas implementadas con lógica. Otros tipos
de información.
El programa almacenado. Arquitectura de von Neumann. Tipos de
instrucciones. Codificación ISA.
Organización mínima. Datapath (REG y ALU) + UC. Buses.
Programas y algoritmos. Re-programabilidad vs. sistemas dedicados.
Hardware vs. software.
El ciclo de instrucción. Interrupciones. Sistema de entrada/salida.
La jerarquía de memoria. Localidad. MMU. Cache.
Programación de alto nivel y sistemas operativos.
5
Arquitectura de Computadoras
Bibliografía básica Arq I
Introducción
Números
Sistemas digitales
Von Neumann y buses
Repertorio de instrucciones
Memoria
Entrada/salida
Sistemas operativos
Arquitectura II
Stallings
1-2
A
8
3
9-10
4-5
6
7
11-16
Tanenbaum
1
A-B
3
2-3
4-5
2
2
6
8
Null
1
2
3
4
5
6
7
8
9-10
6
Arquitectura de Computadoras
Arquitectura II
Diferentes formas de paralelismo
PRIMERA PARTE: PARALELISMO DENTRO DEL PROCESADOR
Arquitectura RISC, segmentación y sistema de caché
Procesadores superescalares y VLIW
DSP y GPU
SEGUNDA PARTE: PARALELISMO ENTRE PROCESADORES
Procesadores SIMD y Vectoriales
Arquitecturas MIMD
Clusters
7
Arquitectura de Computadoras
Definición
LÓGICA (Software?)
Diseño de
computadoras
ISA (INSTRUCTION SET ARCHITECTURE): Diseño a nivel del
lenguaje de máquina, visible para el programador o compilador.
Repertorio de instrucciones, registros, tipo y tamaño de operandos,
modos de direccionamiento.
IMPLEMENTACIÓN (Hardware?)
ORGANIZACIÓN: Estructura del bus, diseño CPU, sistema de
memoria, cache, ciclo de instrucción.
TECNOLOGÍA: Diseño lógico, integración, encapsulado, potencia.
“La arquitectura de computadoras, como otras arquitecturas, es el arte de
determinar las necesidades del usuario de una estructura y luego
diseñarla para satisfacer dichas necesidades tan eficientemente como sea
posible dentro de ciertas limitaciones económicas y tecnológicas.”
Frederick P. Brooks, IBM, 1962.
8
Ejemplos
Aplicación de procesamiento de señales:
La ARQUITECTURA, dispone de MAC, MUL o nada? (ISA); cuántos ciclos
demora? (ORG); cuál es la frecuencia de trabajo/consumo de potencia?
(TEC).
Procesadores Intel
Dos procesadores con idéntica ISA pero diferente ORG: Celeron y
Celeron D.
Dos procesadores con idénticas ISA y ORG, pero diferente tecnología:
Celeron 1GHz y Celeron 2.8GHz.
Dos procesadores con diferentes ISA, ORG y Tecnología: Celeron e
Itanium.
ERROR COMÚN
Suponer que dos procesadores con idéntica ISA
se pueden comparar por su reloj
Computadora óptica (cambiando Tec puedo mantener la ISA y ORG)
OTROS EJEMPLOS
Computadora analógica (cambia ORG)
Computadora vectorial (cambia ISA y ORG)
9
Arquitectura de Computadoras
Prehistoria: arq de 8/16 bits
4004 (4-bit 640B) 1971
8008 (8-bit 16KB) 1972
8080 (8-bit 64KB) 1972
8086 (16-bit 16MB) 1978
8088 (8/16-bit) 1980
6800 (8-bit 64KB) 1973
68000 (16/32-bit 16MB) 1979
68008 (8/16-bit) 1982
IBM PC
Apple II/Mac Personal Computer
10
Arquitectura de Computadoras
Historia: arq de 32 bits
Después de 30 años de existencia de las computadoras y 10 de los
microprocesadores [Null, Cap 1], se produce un renacimiento de la
Arquitectura en la década del 80, principalmente por dos motivos:
LENGUAJES DE ALTO NIVEL: Desaparece la programación en
assembler, por lo tanto no es necesaria la compatibilidad de código
objeto.
SISTEMAS OPERATIVOS: Se reducen el costo y el riesgo de lanzar al
mercado una nueva arquitectura.
Nacimiento de las nuevas Arquitecturas RISC:
ILP (pipeline + superescalares)
- CACHE
Crecimiento sostenido durante 20 años (ley de Moore)
11
-
Arquitectura de Computadoras
Historia: arq de 32 bits
Después de 30 años de existencia de las computadoras y 10 de los
microprocesadores [Null, Cap 1], se produce un renacimiento de la
Arquitectura en la década del 80, principalmente por dos motivos:
LENGUAJES DE ALTO NIVEL: Desaparece la programación en
assembler, por lo tanto no es necesaria la compatibilidad de código
objeto.
SISTEMAS OPERATIVOS: Se reducen el costo y el riesgo de lanzar al
mercado una nueva arquitectura.
Nacimiento de las nuevas Arquitecturas RISC:
ILP (pipeline + superescalares)
- CACHE
Crecimiento sostenido durante 20 años (ley de Moore)
12
-
Número de transistores por integrado.
Duplica cada dos años, crecimiento exponencial sostenido.
13
Capacidad de los discos rígidos para PC (en GB)
Crecimiento exponencial sostenido.
14
Performance relativa a VAX-11 (1978)
Crecimiento exponencial sostenido (19862002). Luego desaceleración (a pesar de
que tanto la densidad de transistores como el resto de las tecnologías acompañaron).
El aumento del número de transistores no repercute directamente en la performance.
Depende de los avances en ARQUITECTURA, tanto en hardware como en software.
15
Arquitectura de Computadoras
Clasificaciones
Según la arquitectura del repertorio de
instrucciones (ISA)
Según la organización
Según la tecnología
Según la aplicación
16
Arquitectura de Computadoras
Clasificación a nivel lenguaje de
máquina (ISA)
1. Clase: Número y almacenamiento de operandos. Además de
memoria, dónde? Utilización de registros.
2. Direccionamiento de memoria. Byte ordering (endianness).
Alineación.
3. Modos de direccionamiento. Cantidad. Puede cualquiera de los
operandos estar en memoria?
Todos los modos de direccionamiento y
4. Tipo y tamaño de los operandos.
5. Tipos y variedad de operaciones.
6. Control de flujo.
7. Codificación del repertorio de instrucciones.
8. Interrupciones y modos privilegiados (user, supervisor,protected).
todos los tipos de datos disponibles
17
ORTOGONALIDAD
para todas las instrucciones.
Gran ventaja para los compiladores.
Clasificación a nivel lenguaje de máquina
Almacenamiento de operandos
Add A,B,C
TAXONOMÍA DE PATTERSON: PILA, ACC, R-M, R-R, M-M
18
Clasificación a nivel lenguaje de máquina
Número de operandos
19
20
EJEMPLO: Velocidad vs. Densidad de código
Analizaremos el impacto de dos problemas diferentes:
M3 = M1 + M2
Suma de dos enteros
Bn = (An + An1)/2
Filtro en punto fijo
Sobre tres arquitecturas diferentes:
MM
Arquitectura Memoria-Memoria
RM
RR
Arquitectura Registro-Memoria
Arquitectura Registro-Registro
21
M3 = M1 + M2
ADD M1,M2,M3
LOAD R1,M1
ADD R1,M2
STORE R1,M3
(4c)
(5c)
(4c)
(4c)
LOAD R1,M1
LOAD R2,M2
(4c)
ADD R1,R2,R3 (3c)
(4c)
STORE R3,M3
MM
9c
RM
13c
RR
15c
FDCO1TR1C02TR2ECO3TR3 = 9c
LOAD: FDCOTR = 4c
ADD: FDCOTRE = 5c
LOAD: FDCOTR = 4c
ADD: FDE = 3c
22
M3 = M1 + M2
Bn = (An + An1)/2
ADD M1,M2,M3
MM
9c
FDCO1TR1C02TR2ECO3TR3 = 9c
ADD An,An1,Bn
DIV Bn,#2,Bn
RM
13c
RR
15c
LOAD R1,M1
ADD R1,M2
STORE R1,M3
(4c)
(5c)
(4c)
LOAD: FDCOTR = 4c
ADD: FDCOTRE = 5c
(4c)
LOAD R1,M1
LOAD R2,M2
(4c)
ADD R1,R2,R3 (3c)
(4c)
STORE R3,M3
LOAD: FDCOTR = 4c
ADD: FDE = 3c
LOAD R1,An1 (4c)
(5c)
ADD R1,An
(5c)
DIV R1,#2
STORE R1,Bn
(4c)
LOAD R1,An
(4c)
ADD R1,R2,R3 (3c)
DIV R3,#2,R3 (3c)
STORE R3,Bn
(4c)
ADD R1,#0,R2 (3c)
MM
18c
RM
18c
RR
17c
23
M3 = M1 + M2
Bn = (An + An1)/2
ADD M1,M2,M3
MM
9c
FDCO1TR1C02TR2ECO3TR3 = 9c
ADD An,An1,Bn
DIV Bn,#2,Bn
RM
13c
RR
15c
LOAD R1,M1
ADD R1,M2
STORE R1,M3
(4c)
(5c)
(4c)
LOAD: FDCOTR = 4c
ADD: FDCOTRE = 5c
(4c)
LOAD R1,M1
LOAD R2,M2
(4c)
ADD R1,R2,R3 (3c)
(4c)
STORE R3,M3
LOAD: FDCOTR = 4c
ADD: FDE = 3c
LOAD R1,An1 (4c)
(5c)
ADD R1,An
(5c)
DIV R1,#2
STORE R1,Bn
(4c)
LOAD R1,An
(4c)
ADD R1,R2,R3 (3c)
DIV R3,#2,R3 (3c)
STORE R3,Bn
(4c)
ADD R1,#0,R2 (3c)
1
2
MM
18c
RM
18c
RR
17c
2.5
24
1
3
4
Clasificación a nivel lenguaje de máquina
Modos de direccionamiento
25
Clasificación a nivel lenguaje de máquina
Repertorio de instrucciones
Todas las arquitecturas disponen de un repertorio
compuesto al menos por las tres primeras categorías.
26
Clasificación a nivel lenguaje de máquina
Tipo y tamaño de operandos
Arquitecturas con operandos de 8, 16, 32 o
64 bits.
Operandos enteros y/o punto flotante
(simple y doble precisión).
RISC vs CISC
(largo fijo vs.
variable)
CODIFICACIÓN DEL SET DE INSTRUCCIONES
Tamaño de los programas
Implementación del procesador (ORG+TECH)
27
Arquitectura de Computadoras
Clasificación según la organización
Estructura interna de la CPU
La unidad de control (microprogramada vs. cableada)
El camino
Comentarios de: Repaso de Arquitectura y Organización - Criterios de clasificación (0)
No hay comentarios