Arquitectura de
computadoras
Primera parte - Descripción y conceptos básicos.
Clase del 15.03.2022
Comentarios y agradecimientos
Esta presentación se basa en un trabajo realizado en la Universidad
Nacional de La Matanza, en la cátedra de Arquitectura de
Computadoras, a mi cargo hasta el año 2019.
Fue desarrollado en colaboración con el Ing. Jair E. Hnatiuk y los
aportes del Ing. Ezequiel Calaz y del Ing. Edgardo Gho, en su
momento alumnos de la materia, y ahora profesionales y docentes de
la misma, quienes aportaron ideas, ganas, juventud y entusiasmo al
trabajo que en esa cátedra llevamos adelante desde mi incorporación
en 1995.
Agradezco, por consiguiente, a los mencionados profesionales y al
actual jefe de cátedra, mi amigo el Lic. Carlos E. Maidana, por
haberme permitido seguir usando el material a pesar de ya no formar
parte de la cátedra.
2
¿Qué es una computadora?
Definición tradicional: Sistema físico y lógico para procesamiento
de información (con capacidad de tomar decisiones).
¿Qué implica el procesamiento?: Transformar, evaluar, medir,
guardar.
Es un sistema dual: Software + Hardware
• Soporte físico (circuitos)
• Soporte lógico (programas): abstracto, le transfiere a la máquina la
capacidad de tomar decisiones
3
Esquema funcional
Programas
Mundo exterior
Conformació Conformació
Datos n/ Procesamiento n/ Resultados
Adecuación Adecuación
Almacenamient
o
¿Por qué utilizamos
computadoras
digitales?
4
La idea de sistema dual – Sistema
físico y lógico.
Se dice que una computadora es un sistema dual.
En efecto, se necesitan dos elementos para tener una computadora:
- Un conjunto de elementos físicos (circuitos) que resuelvan los
problemas que se les plantean, y
- El problema planteado, representado a través de un elemento
intangible, abstracto, (programa), mediante algoritmos creados por la
mente del programador.
No hay computadora sin ambos elementos conviviendo y funcionando
coordinadamente.
5
La idea del programa. Lenguajes de
programación.
Un programa es la representación de un algoritmo.
El desarrollo del programa requiere de un lenguaje, con sus reglas de
sintaxis y redacción propias, que permitan su interpretación.
El lenguaje que entiende la computadora se conoce como lenguaje
absoluto, o lenguaje de máquina.
Es un lenguaje propio, depende de cada computadora, y para el
programador es, como mínimo, complejo.
Por eso se desarrollan los llamados lenguajes de alto nivel, orientados
al programador, vistos en las materias de programación.
Estos lenguajes no son comprendidos por la computadora, por lo que
habrá que generar traducciones que permitan su comprensión.
6
Visión en capas o niveles de una
computadora como sistema
Aplicación
Algoritmo
Lenguaje de programación
Sistema operativo / Máquina virtual “Compatibilidad hacia arriba”: es
Arquitectura de computadoras
posible tener computadoras que
Arquitectura / Instruction Set Architecture difieran en la implementaciones de
(ISA) niveles inferiores pero mantengan el
mismo (sub/super) conjunto de
Estructura / Microarquitectura
instrucciones de una arquitectura
dada.
Compuertas Ejemplos: IBM 360, Intel x86
Circuitos
Física
Las marcas son propiedad de sus respectivos dueños
7
Esquemas de organización de sistemas
de computación
Subsistem
a de
Entrada
Tipo estrella:
Cada uno de los Subsistem Subsistem
subsistemas o bloques a de a de
funcionales se procesami Almacena
relacionan entre sí ento miento
mediante distintos
canales individuales
Subsistem
a de salida
8
Esquema de organización tipo
Bus
Bloque funcional: Conjunto de circuitos integrados organizados
para cumplir una función específica dentro del sistema de
computación.
Los bloques se relacionan mediante una conexión común a todos.
Bus: conjunto de cables que interconectan
Bloque de bloques funcionales
Bloque de Bloque de
Bloque de
Almacenamien Entrada/Salida Entrada/Salida
procesamiento
to 1 1 2
BUS
Bloque de
Almacenamien
to 2
9
Estructura de una computadora Von
Neumann
Bus de datos
Bus de direcciones
Bus de control
Me CP E/
m U S
Mundo
exterior
• Instrucciones y datos se almacenan en un mismo espacio de
direccionamiento.
10
• Al contenido de la memoria se accede por su dirección, sin importar el tipo
de dato almacenado.
Estructura de una computadora
Harvard Memoria de
programa
Memoria de
datos
Unidad
Aritmético-
Lógica
Unidad de
Control
CPU
Entrada /
Salida
• Utiliza buses separados para acceder a las instrucciones y los
datos.
12
• Distintos espacios de direccionamiento.
Arquitectura y estructura de un
sistema de computación
Estructura de una computadora
Registros
(microarquitectura)
inaccesibles
Arquitectura de programación
Component
es internos de una
Modos de
computadora
Set de Memoria
(ISA)
Registros
direccionamien instruccione direccionabl
Conexion accesibles
to s e
es
internas
¿Cuál es la parte visible para el programador de software de
base?
13
Arquitectura vs
Microarquitectura
Arquitectura / ISA: Provee al programador un nivel de abstracción (mejor si no cambia)
• Estado visible al programador (memoria y registros)
• Operaciones (instrucciones y cómo trabajan)
• Tipos y tamaños de datos: cuántos bytes a la vez? Enteros o Punto flotante?
• Semántica de ejecución (comportamiento frente a situaciones excepcionales, ejecución de
subrutinas, etc). Cómo se manejarán, qué parte resuelve el hardware y qué parte se hace
por programa.
• Entrada/salida Modos de
Memoria
direccionamien
direccionable
to
Set de Registros
instrucciones accesibles
14
Arquitectura vs
Microarquitectura
¿Cuál es la implementación óptima?
¡Depende del criterio! B
• Reducir espacio del silicio.
• Minimizar el consumo.
B B
• Obtener el máximo rendimiento.
• Realizar operaciones aritméticas complejas lo más rápido
posible.
• Reducir el costo…
Microarquitectura es la implementación de una ISA observando
Ejemplo
• ISA: métricas
Intel x86 particulares (tradeoff).
• Microarquitectura: implementación de AMD, Intel, etc.
Las marcas son propiedad de sus respectivos dueños
Dentro se ven MUY diferentes, pero hacen lo mismo
15
Arquitectura vs Microarquitectura:
¿Cuáles comparten la arquitectura?
Ejemplos de Procesadores comerciales ¿Cuáles comparten la microarquitectura?
• SetIntel
de instrucciones
8086 AMD Phenom X4 Intel Atom IBM Power7 AMD Ryzen 7 270
x86 • Set de instrucciones • Set de instrucc
• Un núcleo • Set de instrucciones • Set de instrucciones
x86 x86
• 2W x86 Power
• Un núcleo • 8 núcleos
• Decodifica 1 • Cuatro núcleos • Ocho núcleos
• 2W • 105 W
instrucciones por • 125 W • 200 W
• Decodifica 2 • Decodifica 4
núcleo en varios • Decodifica 3 • Decodifica 6
instrucciones por instrucciones p
ciclos instrucciones por instrucciones por ciclo
ciclo por núcleo ciclo con 4 dec
• Sin caché ciclo por núcleo por núcleo
• 32 KB Caché L1 I, 24 • 64 KB Caché L1
• 16 bits de bus de • 64 KB Caché L1 I, 64 • 32 KB Caché L1 I, 32
KB Caché L1 D KB Caché L1 D
datos KB Caché L1 D KB Caché L1 D
• 512 KB Caché L2 • 512 KB Caché
• 1 MB RAM • 512 KB Caché L2 • 256 KB Caché L2
• Ejecución en L2/core
• Ejecución en • Ejecución fuera de • Ejecución fuera de
secuencia • Ejecución fuera
secuencia secuencia secuencia
• 1,6 GHz secuencia
• 10 MHz • 2,6 GHz • 4,25 GHz
• 3,7 GHz / 4,3 G
Turbo
Las marcas son propiedad de sus respectivos dueños; imágenes cortesía de Intel, AMD e IBM
16
Clases de computadoras con
distintos factores de diseño
Dispositivo Cluster/
Característica Escritorio Servidor Embebida
móvil personal warehouse
Precio del 100-1.000 300-2.500 5.000- 100.000- 10-100.000
sistema (USD) 10.000.000 200.000.000
Precio del 10-100 50-500 200-2.000 50-250 0,01-100
procesador
(USD)
Aspectos Costo, Precio- Throughput, Precio- Precio,
críticos consumo performance, disponibilidad, performance, consumo
energético, consumo escalabilidad, rendimiento, energético,
performance de energético, consumo proporcionalidad performance
medios, performance en del consumo específica de la
respuesta gráficos energético aplicación
Consumo 4.5 W 95 W 188 W 6,1 kW 1.5W
(valores
ilustrativos)
Pérdida 5 millones USD 56,5 millones
monetaria por USD
caída anual el
0,1% del Fuente: HEN12 pág. 5
tiempo 17
Arquitectura de Von Neumann
• Programa almacenado en
memoria.
• Definición de bloques
funcionales.
Unidad Programa Instrucción
de
CPU: Bloque Control
de Secuencia Acción que la
procesamiento Unidad de máquina es capaz de
aritmético instruccione resolver, porque
lógica s.
Datos posee el hardware
Bloque de destinado a esa
Computadora almacenamien función.
to Registros
Bloque de Palabra de instrucción
entrada/salida Código
de Campo de
operació operandos
n
Qué acción se Cuáles son o dónde
ejecutará con los están los operandos
operandos. (dirección).
18
Definiciones
diversas
Como para reafirmar algunos conceptos ya planteados.
19
• Palabra: Número de bits que la computadora maneja
en paralelo. Puede tener distintos tamaños en
función del bloque en que se trabaja.
• Palabra de almacenamiento: Tamaño de palabra que
se puede almacenar en cada posición del bloque de
almacenamiento.
• Palabra de procesamiento: Tamaño de palabra que
se puede procesar en los registros de la Unidad de
Procesamiento. Puede ser diferente al anterior.
• Instrucción: Acción que la Unidad de Procesamiento
puede llevar a cabo porque dispone del hardware
necesario para ello. 20
Características de
los bloques
funcionales
Unidad de procesamiento
• Unidad central de proceso:. Se la puede
analizar como dividida en tres bloques:
Unidad de control. Ejecución de instrucciones.
Sincronización. Maestro de las transferencias.
Supervisión.
Unidad aritmética y lógica. Cálculo aritmético y
lógico.
Registros de almacenamiento. 22
Bloque de procesamiento (CPU)
Ejecuta las instrucciones del programa. Se divide
en:
Unidad Aritmético-Lógica (ALU):
• Procesamiento de datos
Unidad de Control:
• Procesa instrucciones
• Controla el funcionamiento global del sistema
Registros de almacenamiento:
• Recurso más rápido para leer/escribir datos
Primer nivel de la jerarquía de
almacenamiento.
ALU del Intel 4004
Crédito: Brian & Barry
Silverman 23
Bloque de procesamiento (CPU)
Herramientas de comparación de sistemas de
computación:
Benchmarking para escritorio: programas de
procesamiento intensivo o procesamiento de gráficos intensivo;
usualmente se los modifica para minimizar el impacto de E/S
en el resultado
Benchmarking para servidores: adicionalmente miden el
paralelismo, actividad de E/S de almacenamiento o tráfico de
red.
Referente: SPEC (Standard Performance Evaluation
Corporation). Más información: [Link] 24
Bloque de procesamiento (CPU)
Factores de diseño:
• Eficiencia: parámetro que mide la velocidad a la que opera una computadora.
P/e: Cantidad de instrucciones en unidad de tiempo. MIPS [millones de
instrucciones / segundo]; MFLOPS.
• Consumo: energía requerida para operar la computadora. Watts.
• Costo
25
Bloque de almacenamiento
(memoria)
• Bloque de almacenamiento (memoria): Sistema
jerárquico. El concepto de jerarquía se basa en la velocidad de
respuesta a los pedidos de la Unidad de Control. El parámetro
a considerar para establecer dichas jerarquías se conoce como
tiempo de acceso. Compuesta por
Registros de la Unidad de Proceso.
Memoria Caché (No visible)
Memoria Principal: Accesible al programador.
Memoria Secundaria: No accesible al programador sino a
través de elementos intermediarios llamados interfaces de
entrada salida.
26
Memoria principal
• Se compone de un conjunto de registros o celdas de almacenamiento.
• La cantidad de celdas es siempre una potencia n de 2, lo que permitirá
acceder a cualquiera de ellas con un número de n bits, llamada
dirección de memoria.
• Palabra de dirección: Número de bits que identifican unívocamente
cada una de las posiciones o celdas de la memoria principal.
Operaciones que pueden realizarse entre la Unidad de Control y
la Memoria Principal:
• Lectura: Transferencia de un dato desde una posición determinada por
la U.C. hacia algún registro de la Unidad de Proceso.
• Escritura: Transferencia de un dato desde algún registro de la Unidad
de Proceso hacia una posición determinada de la Memoria Principal.
• Cada una de estas operaciones requiere que la Unidad de
Control acceda a la Memoria principal, lo que puede llevar
27
uno o
más accesos dependiendo de los tamaños de palabra y de los
Bloque de almacenamiento
(Memoria)
En contacto continuo con los bloques de procesamiento y entrada/salida, ya que todo
dato que deba procesarse primero deberá pasar por el mismo.
Factores de diseño: Jerarquía de almacenamientoCosto
• Registros de la CPU + + -
• Capacidad de almacenamiento ¡No se
puede tener • Memoria caché
• Velocidad de acceso
todo!
• Memoria principal
• Costo
• Memoria secundaria
• Seguridad
• Memoria externa - - +
Velocidad Capacidad
Costo: Dinero/unidad de almacenamiento
La CPU siempre accederá a los registros. Cuando P/e:
un dato no se encuentre en un nivel de la
jerarquía, lo traerá del siguiente nivel, hasta
llegar a los registros.
28
Unidad de entrada salida
Bloque de entrada salida: Vinculación con el
mundo exterior. Dividido en dos elementos:
Periférico o dispositivo de entrada salida.
Mantiene el vínculo con el exterior.
Interfaz de entrada salida: Nexo entre el
periférico y el conjunto CPU – Memoria principal.
29
Bloque de
Vincula la máquina con el mundo exterior
Entrada/Salida
(usuario/máquina).
Se divide en:
• Dispositivos de E/S
• Dispositivos periféricos
Interfaz de Dispositivo
• Almacenamiento secundario E/S de E/S
• Interfaces de E/S
BUS
Una interfaz es un elemento presente entre el dispositivo y el bus
para manejar el periférico y/o para adecuar la información de E/S
a lo que necesita la CPU.
500GB Western Digital Scorpio Blue SATA
Crédito: Evan-Amos
Hybrid SSD-HDD Controller
Credito: [Link]
30
Bus
Sistema de interconexión que transporta toda la información binaria entre los bloques
funcionales.
• Instrucciones
• Operandos
• Resultados
• Bus de datos: Conjunto de líneas bidireccionales que
transportan datos para los procesos de lectura (Mem o E/S CPU)
y escritura (CPU Mem o E/S).
• Bus de direcciones: Conjunto de líneas unidireccionales que
transportan direcciones de memoria, que determinarán dónde ¿Recuerda el concepto
leer o escribir el dato. de tercer estado?
• Bus de control: Las señales de control comprenden un
mecanismo de comunicación y sincronización entre bloques. Por
ejemplo:
• Líneas de lectura/escritura (sentido de la transferencia)
• Señales de sincronismo
• Líneas de control
• Líneas de estado
Interfaz
CPU Memoria
E/S
31
Buses en la APPLE-1
¡Buses!
32
Estructura de 3 buses vs 4
buses
3 Buses: Entrada/Salida mapeada en
memoria. Espacio de
(memory mapped IO) direccionamient
o
Unidad Dirección 0
Unidad
de Unidad RWM
de
memori de E/S
proceso ROM
a
E/S
ROM
Dirección
máx.
Bus de direcciones
Bus de control
Bus de datos
33
Estructura de 3 buses vs 4
buses
4 Buses: Entrada/Salida mapeada
independiente.
Dos espacios de direccionamiento
Memoria
(IO mapped IO) principal Dirección 0
RWM
ROM
Unidad Unidad E/S
Unidad
de de RWM
de E/S Dir 0’
proceso memoria
ROM E/S
Dir max Dir max’
Bus de direcciones de E/S La implementación
real se realiza
Bus de direcciones de memoria mediante una línea
IO/M en el bus de
Bus de control
control,
multiplexando así el
Bus de datos bus de direcciones.
34
Espacio de direccionamiento
La memoria principal almacena palabras. Una palabra es la
cantidad de bits que se pueden manejar
Memoria principal
simultáneamente. Está constituida por registros de
DirecciónContenido
almacenamiento o celdas individuales. Cada una 0
almacena unaBus
palabra.
de direcciones 1
Número de Decodificad .
registro (celda) Dirección de
or .
n bits
al que se quiere
acceder. n:2n .
.
2n
La memoria principal puede ser considerada 2n-2
registros:
2n-1
cada
como un vector de registros, al que
registro
accedemos indicando el subíndice (dirección) tiene m
de cada posición dentro de ella. m bits bits.
35
Espacio de
direccionamiento…vs 4 buses
Memoria principal Memoria principal
3 buses
DirecciónContenido DirecciónContenido
0 0
El espacio de Existe un
1 1
direccionamient espacio de
2
o se comparte 2 direccionamient
3 entre MP y E/S. 3 o
. .
independiente
para E/S.
Interfaces de E/S
Interfaces de E/S
DirecciónContenido
. . 0
. . .
. . .
2n-1 2n-1 2p-1
m bits m bits q bits
36
Estructura de 3 buses vs 4 buses:
Comparativa
3 buses 4 buses
• No requiere instrucciones adicionales • Requiere instrucciones adicionales para las
interfaces de E/S (IN, OUT en x86 y x86-64)
para E/S
• El bus de control posee una línea M/no-IO que
• No requiere líneas adicionales en el Bus
indica si se manejará E/S o memoria, porque la
• Parte del espacio de direccionamiento CPU usa la misma salida para ambas señales.
no se puede emplear para Entonces cuando se usa E/S no se usa memoria, y
almacenamiento en memoria principal. viceversa. (Multiplexado del bus de direcciones).
• Esta arquitectura permite utilizar las • No “sacrifica” espacio de direccionamiento de MP
para E/S.
mismas instrucciones para manejar
registros de memoria que interfaces de
E/S
Las marcas son propiedad de sus respectivos dueños
37