Conceptos de arquitectura de computadoras Unidad Central ...

74
1109 - Arquitectura de computadoras - UNLAM 1 Arquitectura de Computadoras Unidad Central de Proceso Universidad Nacional de La Matanza Dpto. Ingeniería e Investigaciones Tecnológicas Arquitectura de Computadoras Autor: Ing. Jaír E. Hnatiuk; Revisión: Ing. Ezequiel Calaz; Lic. Carlos Maidana Ver. 1.2.2 (2020) Lectura recomendada: MUR00 págs. 100-108;125-130;302-304 HEN12 págs. 95-103; 110-118 STA05 págs. 349-358; 361-375; 396-404; 420-428; 438-449

Transcript of Conceptos de arquitectura de computadoras Unidad Central ...

Page 1: Conceptos de arquitectura de computadoras Unidad Central ...

1109 - Arquitectura de computadoras -UNLAM

1

Arquitectura de ComputadorasUnidad Central de Proceso

Universidad Nacional de La Matanza

Dpto. Ingeniería e Investigaciones Tecnológicas

Arquitectura de Computadoras

Autor: Ing. Jaír E. Hnatiuk;

Revisión: Ing. Ezequiel Calaz; Lic. Carlos Maidana

Ver. 1.2.2 (2020)

Lectura recomendada: MUR00 págs. 100-108;125-130;302-304HEN12 págs. 95-103; 110-118STA05 págs. 349-358; 361-375; 396-404; 420-428; 438-449

Page 2: Conceptos de arquitectura de computadoras Unidad Central ...

ProcesamientoDatos ResultadosConformación/Adecuación

Conformación/Adecuación

Almacenamiento

Programas

Sistema para procesamiento de información

con capacidad de tomar decisiones

¿Por qué utilizamos computadoras digitales?

¿Qué es una computadora?

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

¿Qué implica el procesamiento?

Transformar, evaluar, medir, guardar

1109 - Arquitectura de computadoras -UNLAM

2

Page 3: Conceptos de arquitectura de computadoras Unidad Central ...

Aplicación

Algoritmo

Lenguaje de programación

Sistema operativo / Máquina virtual

Arquitectura / Instruction Set Architecture (ISA)

Estructura / Microarquitectura

Compuertas

Circuitos

Física

Visión en capas o niveles de una computadora como sistema1

10

9 -

Arq

uit

ectu

ra d

e co

mp

uta

do

ras “Compatibilidad hacia arriba”: es posible

tener computadoras que difieran en la implementaciones de niveles inferiores pero mantengan el mismo (sub/super) conjunto de instrucciones de una arquitectura dada.Ejemplos: IBM 360, Intel x86

1109 - Arquitectura de computadoras -UNLAM

3

Las marcas son propiedad de sus respectivos dueños

Page 4: Conceptos de arquitectura de computadoras Unidad Central ...

Tipo estrella (ideal)

Subsistema de Entrada

Subsistema de Almacenamiento

Subsistema de salida

Subsistema de procesamiento

Cada uno de los subsistemas o bloques funcionales se relacionan entre sí mediante distintos canales individuales

Esquemas de organización de sistemas de computación

1109 - Arquitectura de computadoras -UNLAM

4

Page 5: Conceptos de arquitectura de computadoras Unidad Central ...

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 bloques funcionales

Bloque de procesamiento

Bloque de Almacenamiento 1

Bloque de Almacenamiento 2

Bloque de Entrada/Salida 1

Bloque de Entrada/Salida 2

BUS

1109 - Arquitectura de computadoras -UNLAM

5

Page 6: Conceptos de arquitectura de computadoras Unidad Central ...

Mem CPU E/S

Bus de datos

Bus de direcciones

Bus de control

Estructura de una computadora Von Neumann

1109 - Arquitectura de computadoras -UNLAM

6

Mundo exterior

• Instrucciones y datos se almacenan en un mismo espacio de direccionamiento.• Al contenido de la memoria se accede por su dirección, sin importar el tipo de dato almacenado.• La ejecución se realiza en forma secuencial, a menos que explícitamente se altere.

Page 7: Conceptos de arquitectura de computadoras Unidad Central ...

Estructura de una computadora Harvard

1109 - Arquitectura de computadoras -UNLAM

8

• Utiliza buses separados para acceder a las

instrucciones y los datos.

• Distintos espacios de direccionamiento.

• Permite acceso simultáneo a instrucciones y datos.

Memoria de programa

Memoria de datos

Entrada / Salida

Unidad Aritmético-Lógica

Unidad de Control

CPU

Page 8: Conceptos de arquitectura de computadoras Unidad Central ...

Estructura de una computadora (microarquitectura)

Registros inaccesibles

Componentes internos

Conexiones internas

Arquitectura de programación de una computadora (ISA)

Modos de direccionamiento

Set de instrucciones

Memoria direccionable

Registros accesibles

¿Cuál es la parte visible para el programador de software de base?

Arquitectura y estructura de un sistema de computación

1109 - Arquitectura de computadoras -UNLAM

9

Page 9: Conceptos de arquitectura de computadoras Unidad Central ...

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 HW y qué parte se hace por SW.

• Entrada/salida

1109 - Arquitectura de computadoras -UNLAM

10

Memoria direccionable

Modos de direccionamiento

Set de instrucciones

Registros accesibles

Page 10: Conceptos de arquitectura de computadoras Unidad Central ...

Arquitectura vs Microarquitectura

¿Cuál es la implementación óptima?

¡Depende del criterio!

• Reducir espacio del silicio.

• Minimizar el consumo.

• 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 métricas particulares (tradeoff).

Ejemplo• ISA: Intel x86• Microarquitectura: implementación de AMD, Intel, etc. Dentro se ven MUY diferentes, pero hacen lo mismo

1109 - Arquitectura de computadoras -UNLAM

11

Las marcas son propiedad de sus respectivos dueños

Page 11: Conceptos de arquitectura de computadoras Unidad Central ...

Arquitectura vs Microarquitectura: Ejemplos de Procesadores comerciales

• Set de instrucciones x86• Cuatro núcleos• 125 W• Decodifica 3 instrucciones

por ciclo por núcleo• 64 KB Caché L1 I, 64 KB

Caché L1 D• 512 KB Caché L2• Ejecución fuera de

secuencia• 2,6 GHz

• Set de instrucciones x86• Un núcleo• 2 W• Decodifica 2

instrucciones por ciclo por núcleo

• 32 KB Caché L1 I, 24 KB Caché L1 D

• 512 KB Caché L2• Ejecución en secuencia• 1,6 GHz

• Set de instrucciones Power• Ocho núcleos• 200 W• Decodifica 6 instrucciones

por ciclo por núcleo• 32 KB Caché L1 I, 32 KB

Caché L1 D• 256 KB Caché L2• Ejecución fuera de

secuencia• 4,25 GHz

AMD Phenom X4 Intel Atom IBM Power7

¿Cuáles comparten la arquitectura? ¿Cuáles comparten la microarquitectura?

1109 - Arquitectura de computadoras -UNLAM

12

• Set de instrucciones x86• Un núcleo• 2 W• Decodifica 1 instrucciones

por núcleo en varios ciclos• Sin caché• 16 bits de bus de datos• 1 MB RAM• Ejecución en secuencia• 10 MHz

Intel 8086

Las marcas son propiedad de sus respectivos dueños; imágenes cortesía de Intel, AMD e IBM

Page 12: Conceptos de arquitectura de computadoras Unidad Central ...

Clases de computadoras con distintos factores de diseño

CaracterísticaDispositivo móvil

personalEscritorio Servidor Cluster/warehouse Embebida

Precio del sistema (USD)

100-1.000 300-2.500 5.000-10.000.000 100.000-200.000.000

10-100.000

Precio del procesador (USD)

10-100 50-500 200-2.000 50-250 0,03-100

Aspectos críticos Costo, consumo energético, performance de medios, respuesta

Precio-performance, consumo energético, performance en gráficos

Throughput, disponibilidad, escalabilidad, consumo

Precio-performance, rendimiento, proporcionalidad del consumo energético

Precio, consumo energético, performance específica de la aplicación

Consumo (valores ilustrativos)

4.5 W 95 W 188 W 6,1 kW 1.5W

Pérdida monetaria por caída anual el 0,1% del tiempo

5 millones USD 56,5 millones USD

1109 - Arquitectura de computadoras -UNLAM

13

Fuente: HEN12 pág. 5

Page 13: Conceptos de arquitectura de computadoras Unidad Central ...

• Programa almacenado en memoria.• Definición de bloques funcionales.

Arquitectura de Von Neumann

CPU: Bloque de procesamiento

Bloque de almacenamiento

Bloque de entrada/salida

Programa Instrucción

Secuencia de instrucciones.

Acción que la máquina es capaz de resolver, porque

posee el hardware destinado a esa función.

Unidad de Control

Unidad aritmético

lógica

RegistrosComputadora

Datos

Código de operación

Campo de operandos

Qué acción se ejecutará con los operandos.

Cuáles son o dónde están los operandos (dirección).

Palabra de instrucción

1109 - Arquitectura de computadoras -UNLAM

14

Page 14: Conceptos de arquitectura de computadoras Unidad Central ...

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.

Bloque de procesamiento (CPU)

1109 - Arquitectura de computadoras -UNLAM

15

ALU del Intel 4004Crédito: Brian & Barry Silverman

Page 15: Conceptos de arquitectura de computadoras Unidad Central ...

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

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: www.spec.org

1109 - Arquitectura de computadoras -UNLAM

16

¿Se pueden comparar procesadores de distinta ISA?

Page 16: Conceptos de arquitectura de computadoras Unidad Central ...

Bloque de almacenamiento (Memoria)

Factores de diseño:

• Capacidad de almacenamiento

• Velocidad de acceso

• Costo

• Seguridad

¡No se puede tener todo!

Jerarquía de almacenamiento

• Registros de la CPU

• Memoria caché

• Memoria principal

• Memoria secundaria

• Memoria externa

Velocidad Capacidad

Costo

Costo: Dinero/unidad de almacenamiento

P/e: [$

𝐺𝑖𝑔𝑎𝑏𝑦𝑡𝑒]

La CPU siempre accederá a los registros. Cuando un dato no

se encuentre en un nivel de la jerarquía, lo traerá del

siguiente nivel, hasta llegar a los registros.

+

-

+

- +

-

1109 - Arquitectura de computadoras -UNLAM

17

En contacto continuo con los bloques de procesamiento y entrada/salida, ya que todo dato que deba procesarse primero deberá pasar por memoria.

Page 17: Conceptos de arquitectura de computadoras Unidad Central ...

Bloque de Entrada/Salida

Vincula la máquina con el mundo exterior (usuario/máquina).

Se divide en:

• Dispositivos de E/S

• Dispositivos periféricos

• Almacenamiento secundario

• Interfaces de E/S

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.

Interfaz de E/SDispositivo de

E/S

BUS

1109 - Arquitectura de computadoras -UNLAM

18

500GB Western Digital Scorpio Blue SATACrédito: Evan-AmosHybrid SSD-HDD ControllerCredito: addonics.com

Page 18: Conceptos de arquitectura de computadoras Unidad Central ...

Espacio de direccionamiento

La memoria principal puede ser considerada como un

vector de registros, al que accedemos indicando el

subíndice (dirección) de cada posición dentro de ella.

0

1

2

3

.

.

.

.

.

2n-2

2n-1

Memoria principal

Dirección Contenido

Decodificador

n:2n

Dirección de n bits

Bus de direcciones

Número de registroal que se quiere

acceder.

2n registros: cada registro tiene m bits.

La memoria principal almacena palabras. Una palabra es la

cantidad de bits que se pueden manejar simultáneamente.

m bits

1109 - Arquitectura de computadoras -UNLAM

19

Page 19: Conceptos de arquitectura de computadoras Unidad Central ...

Bus

Sistema de interconexión que transporta toda la información binaria entre los bloques funcionales.

• 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 leer o escribir el dato.

• 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

• Instrucciones• Operandos• Resultados

CPU Memoria Interfaz E/S

¿Recuerda el concepto de tercer estado?

1109 - Arquitectura de computadoras -UNLAM

20

Page 20: Conceptos de arquitectura de computadoras Unidad Central ...

1109 - Arquitectura de computadoras -UNLAM

21

Buses en la APPLE-1

Page 21: Conceptos de arquitectura de computadoras Unidad Central ...

1109 - Arquitectura de computadoras -UNLAM

22

Estructura de 3 buses vs 4 buses

Unidad de proceso

Unidad de memoria

Bus de direcciones

Bus de control

Bus de datos

Unidad de E/S

ROM

RWM

ROM

E/S

3 Buses: Entrada/Salida mapeada en memoria.

(memory mapped IO) Espacio de direccionamiento

Dirección 0

Dirección máx.

Page 22: Conceptos de arquitectura de computadoras Unidad Central ...

Bus de direcciones de E/S

1109 - Arquitectura de computadoras -UNLAM

23

Estructura de 3 buses vs 4 buses

Unidad de proceso

Unidad de memoria

Bus de direcciones de memoria

Bus de control

Bus de datos

Unidad de E/S

4 Buses: Entrada/Salida mapeada independiente.

(IO mapped IO)

ROM

RWM

ROM

RWM

Memoria principal

Dir max

Dirección 0

E/S

E/S

Dos espacios de direccionamiento

Dir max’

Dir 0’

La implementación real se realiza mediante una líneaIO/M en el bus de control, multiplexando así el bus

de direcciones.

Page 23: Conceptos de arquitectura de computadoras Unidad Central ...

Espacio de direccionamiento 3 buses

Existe un espacio de direccionamiento

independiente para E/S.

0

1

2

3

.

.

.

.

2n-1

Memoria principal

Dirección Contenido

m bits

Interfaces de E/S

0

1

2

3

.

.

.

.

2n-1

Memoria principal

Dirección Contenido

m bits

Interfaces de E/S

0

.

.

2p-1

q bits

Dirección Contenido

El espacio de direccionamientose comparte entre

MP y E/S.

1109 - Arquitectura de computadoras -UNLAM

24

…vs 4 buses

Page 24: Conceptos de arquitectura de computadoras Unidad Central ...

Estructura de 3 buses vs 4 buses: Comparativa

3 buses 4 buses

• No requiere instrucciones adicionales para E/S

• No requiere líneas adicionales en el Bus

• Parte del espacio de direccionamiento no se

puede emplear para almacenamiento en

memoria principal.

• Esta arquitectura permite utilizar las mismas

instrucciones para manejar registros de memoria

que interfaces de E/S

• Requiere instrucciones adicionales para las

interfaces de E/S (IN, OUT en x86 y x86-64)

• El bus de control posee una línea M/no-IO que

indica si se manejará E/S o memoria, porque la

CPU usa la misma salida para ambas señales.

Entonces cuando se usa E/S no se usa memoria, y

viceversa. (Multiplexado del bus de direcciones).

• No “sacrifica” espacio de direccionamiento de

MP para E/S.

1109 - Arquitectura de computadoras -UNLAM

25

Las marcas son propiedad de sus respectivos dueños

Page 25: Conceptos de arquitectura de computadoras Unidad Central ...

Relación entre registros y capacidad de direccionamiento

El tamaño de cada registro (en bits) determina el rango binario de los datos que admite almacenar.

Un registro de tamaño n (bits de datos) admite un rango de 2n valores diferentes.

Los registros relacionados al bus de direcciones determinarán la capacidad de direccionamiento de la CPU.

Espacio de direccionamiento: rango de direcciones entre los que un programador puede acceder a una palabra de

memoria. Por ejemplo para un espacio de direccionamiento de 32 bits, con una memoria estructurada en palabras

de ocho bits, un programador podrá acceder a un byte de memoria en el rango de direcciones de 0 a 232-1.

El tamaño de cada registro tiene relación directa con el bus al que está vinculado, o con el tamaño de palabra que admite la CPU.

1109 - Arquitectura de computadoras -UNLAM

26

8 bits

1111 1111

0000 0000

28 combinaciones

Rango binario:

F F

0 0

Rango hexadecimal:Ejemplo:

Page 26: Conceptos de arquitectura de computadoras Unidad Central ...

Clasificación de registros

Clasificación de registros

• Propósito especial o dedicados: solamente pueden ser utilizados para los fines que determinó el

diseñador de hardware. Ejemplos: registro índice, registro de instrucción, registro temporal de

dirección, registro temporal de dato, etc.

• Accesibles: el programador tiene acceso a ellos, a veces con restricciones.

1109 - Arquitectura de computadoras -UNLAM

27

Estructura de una computadora (microarquitectura)

Registros inaccesibles

Componentes internos

Conexiones internas

Arquitectura de programación

Modos de direccionamiento

Set de instrucciones

Memoria direccionable

Registros accesibles

• Inaccesibles: el

programador no tiene

acceso a estos

registros.

• Propósito general: el

programador puede

emplearlos como desee.

Ejemplos: acumuladores.

Page 27: Conceptos de arquitectura de computadoras Unidad Central ...

Bus sincrónico y asincrónico

En toda transferencia habrá un elemento que fije la pauta y otro que la obedezca y ejecute.

Se utilizan líneas del bus para manejar las transmisiones de datos.

Concepto: master-slave (maestro/amo-esclavo).

Master Slave

Unidad de Control ALU – MP – E/S

Bus sincrónico: como parte de la UC hay una señal de reloj, empleada para sincronizar el resto del sistema.

• Todos los componentes trabajan a la misma velocidad. Se adapta al esclavo más lento.

• Todas las operaciones se realizan en un múltiplo de ciclos de clock.

Bus asincrónico: no existe una señal de reloj o sincronismo.

• Se emplea un par de señales de diálogo (handshaking) para generar la comunicación entre maestro y esclavo.

• Una señal se origina en la Unidad de Control (maestro) y otra en el esclavo, que acusa recibo de cada transmisión.

• Cada esclavo trabaja a su máxima velocidad.

1109 - Arquitectura de computadoras -UNLAM

28

Page 28: Conceptos de arquitectura de computadoras Unidad Central ...

Bus sincrónico

Durante el semiciclo positivo de la señal de reloj, la UC coloca una dirección en el bus, posteriormente durante el

mismo período T1 activa las líneas MREQ y RD. La línea MREQ le indica a la memoria que se encuentra seleccionada

para una transferencia.

Generalmente el tiempo de lectura es mayor que la velocidad del bus, por lo que la lectura consume T2 y parte de T3.

Direcciones

Lectura sincrónica de memoria

Líneas de la UC al esclavo (memoria)

MREQ

RD

Datos

Tiempo

Dirección de memoria a ser leída

Datosválidos

T1 T2 T3

1109 - Arquitectura de computadoras -UNLAM

29

Esto sería el FSB (Front Side Bus)

Page 29: Conceptos de arquitectura de computadoras Unidad Central ...

Bus asincrónico

La UC coloca una dirección en el bus, luego activa MREQ y RD. Una vez activas estas líneas, la UC activa MSYN.

Este último evento dispara la operación de lectura, lo que da por resultado la activación por parte de la memoria de la

línea SSYN.

Direcciones

Proceso de sincronización completa o diálogo completo (full handshake). Observe que las líneas Master Sync y Slave Sync controlan la transferencia.

Líneas de la UC al esclavo (memoria)

¿Por qué no se utilizan ampliamente si son más eficientes?¿Qué cambiaría en un esquema de 3 o 4 buses?

Línea del esclavo a

la UC

MREQ

RD

MSYN

SSYN

Datos

Tiempo

Dirección de memoria a ser leída

Datosválidos

1109 - Arquitectura de computadoras -UNLAM

30

ACKQue pasa cuando no hay respuesta

Page 30: Conceptos de arquitectura de computadoras Unidad Central ...

Protocolo en bus sincrónico

En una máquina asincrónica no

existe una señal de reloj, por tanto

todo se rige por handshake

MSYN

SSYN

Bu

s d

e co

ntr

ol

Han

dsh

ake

de

2 lí

nea

s

Indica la recepción del dato o confirma el almacenamiento

Inicia la comunicación con el esclavo correspondiente

Búsqueda en memoria y carga en el bus de datos o almacenamiento

UC

esclavo

Indica el fin del procesoIndica a la CPU que recibió la orden

Watchdog: mide el tiempo de

respuesta del esclavo y aborta la

transferencia en caso de exceder

un límite dado (timeout)

Protocolo en bus asincrónico

Se utiliza una señal de habilitación (enable), que indica a los esclavos si deben reaccionar (o no) ante los pulsos de reloj. Esto sirve para demorar la respuesta sobre el bus cuando –por ejemplo- una instrucción en una de sus fases demora más de medio ciclo de reloj.

1109 - Arquitectura de computadoras -UNLAM

31

Page 31: Conceptos de arquitectura de computadoras Unidad Central ...

Unidad Central de Proceso (CPU)

La unidad central de proceso se compondrá como mínimo de una

sección de datos, formada por los registros y la unidad

aritmético-lógica (ALU) y una sección de control, que interpreta

las instrucciones y realiza las transferencias entre registros.

Internamente la CPU cuenta con buses que interconectan sus

componentes.Conceptos clave:

• Unidad de Control

• Unidad Aritmético Lógica

• Registros

• Instrucciones

1109 - Arquitectura de computadoras -UNLAM

32

Créditos por la imagen: Iaroslav Neliubov / Shutterstock

Page 32: Conceptos de arquitectura de computadoras Unidad Central ...

Instrucción: operación elemental que la CPU es capaz de ejecutar. La Unidad de Control (UC) contendrá la

lógica para decodificar y ejecutar cada instrucción. La UC podrá emplear la Unidad Aritmético Lógica (ALU) o la

Unidad de Punto Flotante (FPU) para su ejecución. Es una unidad indivisible de la ejecución de un programa de

bajo nivel.

Código de Operación (CodOp) Operandos

Instrucción

Formato básico de una instrucción

Cada línea de un programa de alto nivel se corresponderá con una o más instrucciones de la CPU. Cada instrucción tendrá un código de operación unívoco que la identifique.

Mnemónico, usualmente una contracción o sigla en inglés que identifica la operación.

Palabra binaria, a menudo expresada en hexadecimal por simplicidad

100110011001011101011010

0x99979997ADD

1109 - Arquitectura de computadoras -UNLAM

33

Page 33: Conceptos de arquitectura de computadoras Unidad Central ...

Puede dividirse en más fases según la arquitectura.

Fases de la instrucción

Búsqueda (fetch): obtiene de memoria la instrucción

completa o parte de ella (mínimo CodOp), de forma que

pueda determinar la acción a realizar, ubicación y cantidad

de los operandos, etc.

Decodificación (decode): determina cómo realizar la

indicado en el CodOp (incluyendo la obtención de

operandos, si procede)

Búsqueda de operandos: si es necesario, accede a MP y

obtiene los operandos que empleará.

Ejecución (execute): realiza la acción sobre los operandos.

Escritura de resultado en memoria (write back): si

corresponde, guarda en memoria el resultado de la acción.

Búsqueda (externo)

Decodificación (interno)

Búsqueda de operandos

(externo)

Ejecución (interno)

Escritura (externo)

1109 - Arquitectura de computadoras -UNLAM

34

Page 34: Conceptos de arquitectura de computadoras Unidad Central ...

Fases de la instrucción

Fases externas a la CPU: Involucran transferencias de datos mediante los buses.

Fases internas a la CPU: La CPU no utiliza los buses, pero realiza transferencias internas.

ext extint int

T→ 1 ciclo de reloj

Con el flanco positivo la CPU envía una señal por los buses para realizar un acceso a memoria

(lectura). Durante el flanco negativo de clock ya se puede leer la respuesta en el bus de datos.

𝑡𝑎𝑐𝑐𝑀𝑃 <𝑇

2

Complejidad de la instrucción

Dimensiones de los buses

Tamaño de la instrucción

Factores que inciden en el tiempo de transferencia y proceso de cada

instrucción

1109 - Arquitectura de computadoras -UNLAM

35

Page 35: Conceptos de arquitectura de computadoras Unidad Central ...

Ciclo de máquina y ciclo de instrucción

1109 - Arquitectura de computadoras -UNLAM

36

Al nivel más fundamental, la velocidad del procesador está determinada por la frecuencia de los pulsos del

reloj interno, medida en ciclos por segundo o Hertz (Hz).

Por ejemplo un procesador de 1 GHz recibe mil millones de pulsos por segundo.

Cada fase del ciclo de instrucción puede insumir cero, uno o varios ciclos de reloj.

Por lo tanto la ejecución de cada instrucción puede llevar desde unos pocos… ¡hasta docenas de ciclos!

El tiempo de reloj (período), medido en

segundos o submúltiplos, será la inversa de la

frecuencia, medida en Hertz o múltiplos:

𝜏 =1

𝑓

Page 36: Conceptos de arquitectura de computadoras Unidad Central ...

Ciclo de máquina y ciclo de instrucción

¿Cómo calculamos el tiempo de ejecución de una instrucción?

Determinando la cantidad de ciclos de reloj que insume su ejecución.

1109 - Arquitectura de computadoras -UNLAM

37

Para calcular la cantidad de ciclos que insumirá la ejecución de un programa podemos:

a. Calcular la cantidad de ciclos de cada instrucción.

Se debe conocer la cantidad de ciclos de reloj de cada fase, además del tiempo de respuesta

de la memoria, el tamaño de los buses, etc.

b. Emplear un promedio de los ciclos por instrucción (CPI).

Ciclos de máquina: tiempo que lleva cada una de las fases medido en ciclos de reloj

Ciclos de instrucción: conjunto de los ciclos de máquina; ciclos que insume la ejecución

de una instrucción

Page 37: Conceptos de arquitectura de computadoras Unidad Central ...

Clasificación de instrucciones

• Transferencia de datos

• Registro →Memoria; Memoria → Registro; Registro → Registro; Memoria →Memoria.

• Lógicas y aritméticas

• Suma, resta, multiplicación, AND, OR, NOT, XOR, raíz cuadrada, etc.

• Rotación y desplazamiento

• Desplazamiento lógico/aritmético izquierda/derecha, rotación izquierda/derecha, nibble shift, etc.

• Control de flujo

• Saltos condicionales, incondicionales, salto a subrutina, etc.

• Punto flotante

• Suma, resta, multiplicación, etc.

• Multimedia (Single Instruction, Multiple Data)

• Operaciones aritméticas sobre varios registros en simultáneo. Ej: Intel MMX, 3D Now!, SSE.

• Cadenas de texto

• Copia de cadenas de texto.Diferentes ISA tienen instrucciones más simples o más complejas.

Cada ISA maneja su propio lenguaje de bajo nivel, la compatibilidad entre distintas ISA es prácticamente nula.

1109 - Arquitectura de computadoras -UNLAM

38

Todas las marcas pertenecen a sus dueños

Page 38: Conceptos de arquitectura de computadoras Unidad Central ...

Instrucciones

Las instrucciones le indican a la UC qué hacer, brindan toda la información para que se puedan ejecutar.

La UC requiere responder:• ¿Qué debo hacer?• ¿Dónde están los operandos?• ¿Dónde dejo el resultado?• ¿Qué hago después? ¿dónde encuentro la instrucción que sigue?

Código de operación Primer Operando Segundo Operando ResultadoSiguiente

instrucción

¡Pero leer todo eso de la memoria es demasiado!

1109 - Arquitectura de computadoras -UNLAM

39

Page 39: Conceptos de arquitectura de computadoras Unidad Central ...

4 direcciones

Cod. Operación Primer Operando Segundo Operando Resultado Siguiente instrucción

Formato de instrucción: referencias a memoria

Podemos prescindir del campo “siguiente instrucción” incorporando un registro a la UC: el contador de programa (PC)

3 direcciones

Cod. Operación Primer Operando Segundo Operando Resultado

El resultado podría guardarse en la ubicación de alguno de los dos operandos.

2 direcciones

Cod. Operación Primer Operando Segundo Operando

Si uno de los operandos se encuentra en un registro de la CPU, podemos hacer una sola referencia a memoria

1 direcciones

Cod. Operación Primer Operando

Algunas instrucciones no requieren operandos, o bien trabajan exclusivamente sobre registros de CPU

0 direcciones

Cod. Operación

1109 - Arquitectura de computadoras -UNLAM

40

Page 40: Conceptos de arquitectura de computadoras Unidad Central ...

Formato de instrucción: operandos

Según el tipo de ISA podrán existir instrucciones con distinta cantidad de operandos

Cada operando puede estar en memoria o en registros de la CPU

Si todos los operandos están en memoria, el formato coincide con la página anterior

Las arquitecturas (ISA) que no admiten referencias a memoria en las instrucciones Aritmético-Lógicas se

denominan arquitecturas de carga-descarga (load-store) o registro-registro.

Las arquitecturas (ISA) que admiten múltiples operandos en memoria por instrucción Aritmético-Lógica se

denominan arquitecturas registro-memoria o memoria-memoria, según tengan una o más referencias a

operandos en memoria por instrucción.

Cantidad de direcciones de memoria

Cantidad máxima de operandos permitida

Tipo de arquitectura Ejemplos

0 3 Load-store Alpha, ARM, MIPS, PowerPC, SPARC

1 2 Registro-memoria / Acumulador

IBM 360/370, Intel 80x86, Motorola 68000

2 2 Memoria-memoria VAX

3 3 Memoria-memoria VAX

1109 - Arquitectura de computadoras -UNLAM

41

Todas las marcas pertenecen a sus dueños

Page 41: Conceptos de arquitectura de computadoras Unidad Central ...

Decodificador de instrucciones

IRUC

ALU

MBR

PC

MAR

TARH L

Bus de direcciones

Bus de datos

f(x)

bus interno

Base

Esquema interno de una CPU simple

Bu

s d

e co

ntr

ol

1109 - Arquitectura de computadoras -UNLAM

42

A (8) B (8)

bus interno

RTR (8)

CCR (8)

Sincronismo y señalización

del bus

Secuenciador

Page 42: Conceptos de arquitectura de computadoras Unidad Central ...

Secuenciador: Circuito secuencial. Posee el microprograma con los pasos a seguir para ejecutar cada instrucción. Este puede almacenarse como:• electrónica discreta (hardwired) que significa que

agregar instrucciones conlleva aumentar el tamaño del silicio que compone el secuenciador;

• electrónica programada, en una memoria ROM interna (microprograma).

Se conecta a todos los componentes internos de la CPU con señales se sincronización y control/habilitación.

La unidad de control es la responsable de la ejecución del programa almacenado en memoria. Procesa instrucciones, supervisa, sincroniza y coordina todo el sistema.

Instruction Register (IR): Registro dedicado inaccesible. Almacena el código de operación de la instrucción en ejecución proveniente de la memoria (en la fase de búsqueda o fetch).

Unidad de Control

Búsqueda

Decodificación

EjecuciónDecodificador: Circuito combinatorio. Interpreta el código de operación de la instrucción y selecciona la función a ejecutar en el secuenciador. Determina la operación y cuántos son y dónde residen los operandos.

1109 - Arquitectura de computadoras -UNLAM

43

Page 43: Conceptos de arquitectura de computadoras Unidad Central ...

¡El microcódigo se puede actualizar!

El sistema operativo puede ocuparse

de actualizar el firmware de la CPU.

Unidad de Control

1109 - Arquitectura de computadoras -UNLAM

44

Créditos: https://www.instructables.com/id/Build-a-Programmable-Mechanical-Music-Box/

https://www.bleepingcomputer.com/news/microsoft/new-intel-microcodes-for-windows-10-released-to-fix-cpu-bugs/

Page 44: Conceptos de arquitectura de computadoras Unidad Central ...

Los registros constituyen el almacenamiento más cercano a la CPU proporcionando la mayor velocidad de

acceso. Pueden verse como una memoria pequeña y rápida, que se utiliza para el almacenamiento

temporario durante las operaciones de cálculo, separada de la memoria principal.

Cada registro tendrá un nombre que lo identifique, el “register file” es el conjunto de los registros de la CPU.

Registros

1109 - Arquitectura de computadoras -UNLAM

45

Créditos por la imagen: FLO06 página 553

Page 45: Conceptos de arquitectura de computadoras Unidad Central ...

Registros: interior de un registro carga paralelo-salida paralelo de 8 bits

1109 - Arquitectura de computadoras -UNLAM

46

D Q

Q

D Q

Q

D Q

Q

D Q

Q

D Q

Q

D Q

Q

D Q

Q

D Q

Q

𝑋7𝑡0 𝑋6𝑡0 𝑋5𝑡0 𝑋4𝑡0 𝑋3𝑡0 𝑋2𝑡0 𝑋1𝑡0 𝑋0𝑡0

𝑋7𝑡1 𝑋6𝑡1 𝑋5𝑡1 𝑋4𝑡1 𝑋3𝑡1 𝑋2𝑡1 𝑋1𝑡1 𝑋0𝑡1

Ck

D

Clock

Q

Q

Detalle de un Flip Flop tipo D

Registro: Circuito secuencial

formados por un conjunto de flip-

flops utilizado principalmente para

almacenar y desplazar datos

binarios que introduce en él una

fuente externa.

Page 46: Conceptos de arquitectura de computadoras Unidad Central ...

Ante la señal RESET toma el valor máximo admisible (entero sin signo –ancho bus de direcciones)

(En algunas arquitecturas: 6800, x86)

Program Counter: Registro dedicado asociado a la UC que contendrá la dirección (o parte de ella)del último acceso a memoria. Cumple la función de un puntero a la memoria principal. Tambiénllamado Instruction Pointer (IP). Es accesible con limitaciones, ya que el programador lo puedealterar mediante instrucciones de salto o similares. La limitación está dada por el hecho de que elprogramador puede modificar el registro pero no leerlo.

Unidad de Control: Registros asociados

Program CounterAdmite la operación de incremento (contador progresivo)PC <- PC + 1

Admite la carga de un nuevo valor, en una instrucción de salto (jump)PC <- Valor

Se copia al M.A.R. para una nueva fase de búsqueda

Se utiliza como base para saltos relativos (branch)

PC <- PC +/- Valor

1109 - Arquitectura de computadoras -UNLAM

47

Todas las marcas pertenecen a sus dueños

Page 47: Conceptos de arquitectura de computadoras Unidad Central ...

Memory Address Register (M.A.R.): Registro dedicado inaccesible asociado a la UC cuyotamaño corresponde con el ancho del bus de direcciones. Es el nexo (buffer) entre la CPU y elbus de direcciones. Cada acceso a memoria principal consiste en la acción coordinada decolocar la dirección a leer en el MAR y enviar una señal de lectura/escritura por el bus decontrol hacia la memoria.

Unidad de Control: Registros asociados

Memory Buffer/Data Register (M.B.R. / M.D.R.): Registro bidireccional dedicado inaccesibleasociado a la UC cuyo tamaño corresponde con el ancho del bus de datos. Es el nexo (buffer)entre la CPU y el bus de datos. Cuando la CPU lee la memoria principal recibe en el MBR larespuesta de MP. Cuando la CPU escribe la memoria principal, coloca en el MBR el valor aescribir.

Acceso a memoria principal

Lectura Escritura

1. Bus de direcciones MAR Registro P/e PC 1. Bus de direcciones MAR Registro P/e Índice

2. Bus de control READ 2. Bus de datos MBR Registro P/e Acc A

3. Bus de datos MBR → Destino P/e IR 3. Bus de control WRITE

El uso coordinado de ambos registros permite el acceso a MP.

Si se utilizó el PC, inmediatamente se incrementa (PC PC+1)

1109 - Arquitectura de computadoras -UNLAM

48

Page 48: Conceptos de arquitectura de computadoras Unidad Central ...

Temporal Address Register (T.A.R.) / Registro Temporal de Direcciones: Registro dedicado inaccesible asociado a la UC cuyo tamaño corresponde con el ancho del bus de direcciones. En caso de que la UC deba formar una dirección de MP por partes (mínimo 2, High y Low), emplea este registro para guardar temporalmente las mismas. Ejemplo: Se debe leer de MP una dirección de 32 bits pero el bus de datos es de 16 bits. En ese caso la CPU debe realizar dos accesos a memoria, trayendo en cada uno la mitad de la dirección, que se formará en el TAR.Su valor puede volver a emplearse en una fase de instrucción posterior.

Unidad de Control: Registros asociados

Registro base: Registro dedicado accesible asociado a la UC empleado para determinado modo de direccionamiento. Existen distintos registros que cumplen un papel fundamental en los modos de direccionamiento que admita una CPU, tales como registros de segmento, índice, de página, etc. Usualmente tienen el tamaño del bus de direcciones.

Stack pointer (S.P.): Registro dedicado accesible asociado a la UC, cuyo tamaño corresponde con el ancho del bus de direcciones, empleado para manejar una porción de la memoria principal aleatoria de forma secuencial (L.I.F.O.).

1109 - Arquitectura de computadoras -UNLAM

49

Page 49: Conceptos de arquitectura de computadoras Unidad Central ...

Unidad aritmético lógica

Unidad de lógica combinacional que implementa una variedad de operaciones binarias. La operación que realizará y los registros que empleará para ello son determinados por la unidad de control.

La ALU admite desde funciones aritméticas y lógicas básicas como sumas, restas, AND, OR, XOR, etc., hasta operaciones complejas en CPUs avanzados o especializados, como cálculos para encriptación, hashing, etc.

Se puede implementar sin un register file, solo

con registros acumuladores.También puede

emplearse un registro temporal de resultado

Registros(register

file)

Unidad de control

Selección de

registros

Selección de función

Del bus de datosRegistro de entrada 1 (origen)

Registro de entrada 2(origen)

Al Bus de datos

Al Bus de direcciones

Registro de salida (destino)

EstadoALU

La ALU puede admitir operaciones en punto flotante, o bien puede la CPU tener una unidad independiente dedicada para ello.

1109 - Arquitectura de computadoras -UNLAM

50

Page 50: Conceptos de arquitectura de computadoras Unidad Central ...

Palabra de estado

HHALF /

AUXILIAR

CARRY

NNEGATIVE

ZZERO

VOVERFLOW

CCARRY

/BORROW

PPARITY

Palabra binaria almacenada en un registro relacionado con la ALU, compuesta por banderas que:

1. Se actualizan en cada operación aritmético-lógica, entre otras.

2. Habilitan o deshabilitan la atención de interrupciones.

3. Determinan el modo de operación del procesador.

4. Facilitan operaciones de DEPURACIÓN (debugging) de bajo nivel.

CCR = Condition Code Register (Motorola)PSW = Program Status Word (IBM 360/370)FLAGS, EFLAGS, RFLAGS (Intel en 16, 32 y 64 bits)CPSR = Current Program Status Register (ARM)GSR/PSR = General / Processor Status Register(SPARC)MIPS, Alpha no cuentan con un registro dedicado

Los de tipos 2, 3 y 4 son específicos de la arquitectura

En algunas arquitecturas hay una palabra de estado

específica para la unidad de PF, o una palabra de estado

específica por proceso en ejecución.

Tipo 1: En cada arquitectura pueden tener una distinta denominación o incluso alguno no estar presente.

1109 - Arquitectura de computadoras -UNLAM

51

Page 51: Conceptos de arquitectura de computadoras Unidad Central ...

Palabra de estado

N NEGATIVE. Si el resultado de la última operación aritmética fue negativo, este flag toma el valor

“1”. Cuando se realiza una carga de registro, puede copiar también del valor cargado el MSB.

Z ZERO. Si el resultado de la última operación aritmética fue cero, este flag toma el valor “1”.

Cuando se realiza una carga de registro, puede ponerse en “1” si el valor cargado es cero.

V OVERFLOW. Toma el valor “1” cuando se realiza una suma entre dos números de mismo signo

(MSB) pero el resultado tiene el signo (MSB) opuesto. Si se restan dos números en Cb, y sus signos

son distintos, ocurrirá overflow si y solo si el resultado tiene el mismo signo que el sustraendo.

C CARRY /BORROW. Si en una suma se produce acarreo, este flag toma el valor “1”. Si en una resta

se pide prestado, también.

H HALF / AUXILIAR CARRY. Si en una suma se produce acarreo entre el primer y segundo nibble de

un byte, este flag toma el valor “1”. Resulta de utilidad para la corrección en operaciones con BCD.

P PARITY. Toma el valor “1” si el resultado de la última operación tiene una cantidad impar de unos.

¿Cómo se interpreta cada bit (o flag) de la palabra de estado?

Se usan como elementos de análisis para la toma de decisiones. No se considera parte del register file, dado que se evalúa por bit.

1109 - Arquitectura de computadoras -UNLAM

52

Page 52: Conceptos de arquitectura de computadoras Unidad Central ...

¿De donde vienen los operandos y a dónde van los resultados? Arquitectura orientada a la pila (stack)

Clasificación de arquitecturas

MemoriaProcesador

ALU

TOS Las flechas indican si el operando es una entrada, salida o ambos para la ALU. En gris claro se indica la entrada, y el gris oscuro el resultado.

El registro TOS (Top of Stack) apunta al primer operando en la pila, el que se combina con el que esté a

continuación. El primer operando se retira de la pila, el resultado reemplaza al segundo operando y se

actualiza el TOS para que apunte a este último. Todos los operandos son implícitos. Se utilizan instrucciones

específicas para agregar y quitar elementos de la pila, transfiriendo desde o hacia la memoria.

Implementaciones comerciales: HP 3000, Burrough’s B5000 y B6700, Symbolics 3600, Forth machines, Java Virtual Machine, Intel x87 FPU

1109 - Arquitectura de computadoras -UNLAM

53

Todas las marcas pertenecen a sus dueños

Page 53: Conceptos de arquitectura de computadoras Unidad Central ...

Arquitectura orientada a la pila (stack) ¿Cómo funciona?

Clasificación de arquitecturas

Evaluación de expresiones. Ejemplo: (a + b * c) / (a + d * c – e)

/

-+

+

*

*a

b c a

d c

e

Polaca inversa (posfijo):

Stack

a b c * + a d c * + e - /

push a

Operandos se apilan,

operadores desapilamos.

a

b

push bpush c

c

multiplicar

b * c

sumar

*

+a + b *c

La pila forma parte del estado del procesador, es pequeña

(a la cantidad de registros) y por lo tanto está limitada.

Conceptualmente una pila no está limitada, por lo que una

parte queda en registros y el resto se mantiene en MP

1109 - Arquitectura de computadoras -UNLAM

54

Page 54: Conceptos de arquitectura de computadoras Unidad Central ...

¿De donde vienen los operandos y a dónde van los resultados? Arquitectura memoria-memoria

Clasificación de arquitecturas

MemoriaProcesador

Las flechas indican si el

operando es una entrada,

salida o ambos para la ALU.

En gris claro se indica la

entrada, y el gris oscuro el

resultado.

Todos los operandos y resultados se leen y guardan directamente desde memoria. Requiere menos instrucciones, pero la memoria se vuelve un cuello de botella.

Implementaciones comerciales: Vax

ALU

1109 - Arquitectura de computadoras -UNLAM

55

Todas las marcas pertenecen a sus dueños

Page 55: Conceptos de arquitectura de computadoras Unidad Central ...

¿De donde vienen los operandos y a dónde van los resultados? Arquitectura orientada al acumulador

Clasificación de arquitecturas

MemoriaProcesador

ALU

Las flechas indican si el

operando es una entrada,

salida o ambos para la ALU.

En gris claro se indica la

entrada, y el gris oscuro el

resultado.

El acumulador es una entrada implícita de operando y a la vez el destino del resultado.

Implementaciones comerciales: Motorola 68XX

1109 - Arquitectura de computadoras -UNLAM

56

Todas las marcas pertenecen a sus dueños

Page 56: Conceptos de arquitectura de computadoras Unidad Central ...

¿De donde vienen los operandos y a dónde van los resultados? Arquitectura registro-memoria

Clasificación de arquitecturas

MemoriaProcesador

Las flechas indican si el

operando es una entrada,

salida o ambos para la ALU.

En gris claro se indica la

entrada, y el gris oscuro el

resultado.

Un operando está en registro y el otro en memoria, el resultado se almacena en un registro.

Implementaciones comerciales: IBM 360, Intel x86

ALU

1109 - Arquitectura de computadoras -UNLAM

57

Todas las marcas pertenecen a sus dueños

Page 57: Conceptos de arquitectura de computadoras Unidad Central ...

¿De donde vienen los operandos y a dónde van los resultados? Arquitectura registro-registro o load-store

Clasificación de arquitecturas

MemoriaProcesador

Las flechas indican si el

operando es una entrada,

salida o ambos para la ALU.

En gris claro se indica la

entrada, y el gris oscuro el

resultado.

Los dos operandos se encuentran en registros, el resultado se almacena también en un registro.

Se utilizan instrucciones específicas para la transferencia memoria → registro →memoria.

Todas las ISA posteriores a 1980 son de esta clase.

Implementaciones comerciales: Alpha, ARM, MIPS, SPARC

ALU

1109 - Arquitectura de computadoras -UNLAM

58

Todas las marcas pertenecen a sus dueños

Page 58: Conceptos de arquitectura de computadoras Unidad Central ...

Clasificación de arquitecturas

¿Cómo se resuelve la operación C = A + B en cada una de las cuatro arquitecturas mencionadas?

Stack Acumulador Registro – memoria Registro – registro Memoria-memoria

push Apush Baddpop C

load Aadd Bstore C

load R1, Aadd R1, Bstore C, R1

load R1, Aload R2, Badd R3, R1, R2store C, R3

add C, A, B

1109 - Arquitectura de computadoras -UNLAM

59

ALU

TOS

ALUALUALU ALU

Page 59: Conceptos de arquitectura de computadoras Unidad Central ...

Ejercicio

Cómo podría evaluar la sentencia A = B x C + D considerando arquitecturas de:

• Una dirección

• Dos direcciones

• Tres direcciones

La arquitectura en cuestión emplea las instrucciones load, mult, add y store para realizar las

operaciones. Considere que la referencia a la variable A significa “el operando cuya dirección es A”.

1109 - Arquitectura de computadoras -UNLAM

60

Page 60: Conceptos de arquitectura de computadoras Unidad Central ...

Bibliotecas(objeto)

Fuente alto nivel

Programa en LENGUAJE

ensamblador

Binario ejecutable

Binario (objeto)

Programación en bajo nivel

Compilador Ensamblador

Link-editor

Compilador: programa de computadora que transforma

programas escritos en un lenguaje de alto nivel en

lenguaje máquina. Son específicos para cada

procesador/sistema operativo o máquina virtual.

Ensamblador: programa de computadora que

transforma programas escritos en el lenguaje máquina

específico de una arquitectura al programa en binario

ejecutable.

Lenguajes de programación

Alto nivel: independiente del hardware o plataforma, cercano al problema.

Bajo nivel: específico y dependiente del Hardware donde se ejecutará el programa.

1109 - Arquitectura de computadoras -UNLAM

61

Page 61: Conceptos de arquitectura de computadoras Unidad Central ...

Pila (stack)

La pila (stack) es un área de memoria principal a la que se accede en forma secuencial (LIFO). Dicho acceso facilita

el recorrido de la pila utilizando solamente un puntero (P/e SP: stack pointer o SS: stack segment) a tal fin. El

puntero contendrá el valor de la siguiente posición de memoria disponible de la pila. El valor del puntero se

decrementa conforme se “apilan” datos.

Se utilizan instrucciones específicas para almacenar datos en la pila (push) y extraer datos de la pila (pop/pull).

Estas instrucciones guardan un dato de un registro en la pila o extraen un dato de la pila copiándolo en un registro.

Siempre incrementan o decrementan el puntero, según corresponda.

Usos de la pila• Guardar la dirección de retorno (valor del

PC) al realizar un llamado a subrutina.• Pasaje de parámetros a una subrutina.• Guardar el estado funcional del

procesador durante la atención de una interrupción.

La pila aumenta y disminuye de tamaño según resulta necesario. Esto admite la posibilidad de encadenar llamados a subrutinas sin tener que declarar el tamaño de la pila. También significa que debe controlarse que el área de pila no crezca tanto que invada memoria de otros procesos.

Pila vacía Push Push Pull/Pop

A A

2

ASP

1109 - Arquitectura de computadoras -UNLAM

62

Todas las marcas pertenecen a sus dueños.

Page 62: Conceptos de arquitectura de computadoras Unidad Central ...

Subrutina

Conocida a veces como función o procedimiento, es un programa o secuencia de instrucciones a la que se invoca

como si se tratara de una única instrucción.

Cuando un programa “llama” (Call en Intel) a una subrutina (JSR: Jump to SubRoutine en Motorola), se transfiere el

control del programa a la subrutina, la que ejecuta la secuencia de instrucciones requerida, tras lo cual vuelve a la

posición inmediatamente siguiente a la que generó el llamado.

Convenciones de llamadas a subrutinas (pasaje de parámetros):

• colocar los argumentos en registros

• crear una zona de transferencia de datos – la que se entrega a la rutina invocada en un registro predeterminado-

• utilizando una pila. Al llamar a una rutina se colocan sus argumentos (o punteros a ellos) en la pila (push). La

rutina llamada tomará los argumentos de la pila y allí mismo dejará cualquier valor de retorno. La ventaja de

usar la pila en este caso es que el manejo de llamados anidados se mantiene simple.

Al llamar a una subrutina:1. Se cargan los argumentos en registro/pila2. Se resguarda el PC 3. Se carga el PC con la dirección de inicio de la subrutina4. Se ejecuta la subrutina.5. Se utilizan los argumentos en registro/pila y se guarda allí mismo

el valor de retorno.6. Al finalizar, se vuelve a cargar el PC con el valor que tenía.

Las operaciones sobre el PC se realizan de forma indirecta

mediante instrucciones específicas.

1109 - Arquitectura de computadoras -UNLAM

63

Todas las marcas pertenecen a sus dueños

Page 63: Conceptos de arquitectura de computadoras Unidad Central ...

Subrutinas

Programa principal

0x00 .

0x01 .

0x02 .

0x03 Call subrutina A

0x04 Siguiente instrucción

0x05 .

. .

0x15 Call subrutina B

0x16 Siguiente instrucción

0x17 .

. .

Subrutina A

0x54 Primera instrucción

0x55 .

. .

0x58

. .

. .

0x5E Retorno

Subrutina B

0x84 Primera instrucción

0x85 .

. .

. .

. .

0x8B Retorno

Call subrutina B

Aunque se grafican por separado, las tres

porciones de programa se ubican

en memoria principal.

1109 - Arquitectura de computadoras -UNLAM

64

¿Qué ocurre con el PC y la pila durante los llamados?

0x59 Siguiente instrucción

Page 64: Conceptos de arquitectura de computadoras Unidad Central ...

Microprocesador vs Microcontrolador

Un Circuito Integrado (CI) o circuito integrado monolítico (también chip o microchip) es un conjunto de circuitos

electrónicos en una pequeña pieza (chip) de material semiconductor.

Microprocesador: Unidad Central de Proceso (CPU) de un sistema de computación. Actualmente puede poseer

varios núcleos internamente, por lo que un mismo CI cuenta con varios CPU. Este CI se complementa con

bancos de memoria e interfaces de E/S para constituir una computadora.

Microcontrolador: Sistema de computación completo en un mismo CI. Contiene tanto una CPU como memoria

(ROM/RWM) e interfaces de E/S en un mismo circuito integrado. Usualmente incluyen como parte de las

interfaces de E/S conversores analógico-digital.

Los microcontroladores se emplean en dispositivos computarizados cuya configuración de hardware no se alterará

durante su vida útil. El software que ejecuta, al que se denomina firmware, normalmente reside en memoria de

solo lectura (ROM) y rara vez se altera.

La capacidad de procesamiento

de los microcontroladores se

ajustan a las exigencias del

sistema que integran para

optimizar los costos de

producción.

Intel Quark D1000: 32 MHz clock, 32 KB instrucciones, 4 KB datos, 8 KB SRAM (2015) en 36 mm2 por menos de 3 USD

1109 - Arquitectura de computadoras -UNLAM

65

Créditos por la imagen: AVNET. Todas las marcas pertenecen a sus dueños

Page 65: Conceptos de arquitectura de computadoras Unidad Central ...

El dato más pequeño que puede direccionarse en una computadora es el byte. Las palabras de más de un byte se

almacenan como secuencias de bytes, donde la dirección de la palabra multi-byte es la misma que la del byte

que tiene la dirección más baja.

Cuando se utilizan dichas palabras multi byte existen dos alternativas en cuanto al orden en que los bytes se

almacenarán en memoria:

Big endian: IBM System/370, Motorola 680x0, SPARC, mayoría de RISCLittle endian: DEC VAX, Intel x86Admiten ambos: ARM, PowerPC, MIPS

Byte ordering: Big endian vs Little endian

Memoria principal

FFFF …

FFFE …

FFFD …

0002 …

0001 …

0000 …Direcciones

“bajas”

Direcciones“altas”

Por convención se llama direcciones “bajas” a

aquellas más próximas al comienzo del espacio de

direccionamiento (sin importar cómo

representemos gráficamente la memoria).

• el byte más significativo en la dirección más baja (big endian)

• el byte menos significativo en la dirección más baja (little endian).

1109 - Arquitectura de computadoras -UNLAM

66

Las marcas son propiedad de sus respectivos dueños

Page 66: Conceptos de arquitectura de computadoras Unidad Central ...

7 6 5 4 3 2 1 07 6 5 4 3 2 1 07 6 5 4 3 2 1 07 6 5 4 3 2 1 0

7 6 5 4 3 2 1 07 6 5 4 3 2 1 07 6 5 4 3 2 1 07 6 5 4 3 2 1 0

El ordenamiento que asigna la dirección (dir) más baja al byte más significativo del escalar (el de más a la izquierda),

la siguiente dirección (dir+1) a los siguientes 8 bits de mayor orden, y así. Se llama “Big endian” porque el byte más

significativo se almacena en la dirección más baja.

El ordenamiento que asigna la dirección (dir) más baja al byte menos significativo del escalar (el de más a la

derecha), la siguiente dirección (dir+1) a los siguientes 8 bits de menor orden, y así. Se llama “Little endian” porque

el byte menos significativo se almacena en la dirección más baja.

dir dir+1

MSB LSB

dir+2 dir+3

byte dir+3

dir+2

dir+1

dir

MSB LSB

dir+3 dir+2 dir+1 dir

byte dir+3

dir+2

dir+1

dir

Byte ordering: Big endian vs Little endian

LSB

MSB

LSB

MSB

1109 - Arquitectura de computadoras -UNLAM

67

Page 67: Conceptos de arquitectura de computadoras Unidad Central ...

Byte ordering: ejemplo

Dado que en occidente contamos de izquierda a derecha, las direcciones de memoria se suelen presenter en ese mismo orden. ¿Cómo se vería el número hexadecimal 0x20110626 almacenado en la dirección FA01BE00?

2 0 1 1 0 6 2 6

0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0

FA01BE00 FA01BE01 FA01BE02 FA01BE03

2 6 0 6 1 1 2 0

0 0 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0

FA01BE00 FA01BE01 FA01BE02 FA01BE03

dir+3

dir+2

dir+1

dir

LSB

MSB

dir+3

dir+2

dir+1

dir LSB

MSB

¿Cómo se vería una cadena de texto que se lee de memoria a registro?

1109 - Arquitectura de computadoras -UNLAM

68

Page 68: Conceptos de arquitectura de computadoras Unidad Central ...

Tamaño de instrucción fijo vs tamaño variable

Tamaño fijo: todas las instrucciones tienen el mismo tamaño.

• Decodificación más sencilla, facilita pipelining.

• Típico de arquitecturas RISC: ARM, MIPS, PowerPC, SPARC.

Tamaño variable: las instrucciones varían en tamaño

• Ocupan menos espacio en memoria y en cache

• Típico de arquitecturas CISC: IBM 360, Intel x86, Motorola 68k, VAX.

• Intel x86 (IA-32) admite instrucciones de entre 1 y 18 bytes de largo.

Mayormente fija o comprimida

• Almacenan instrucciones comprimidas y las descomprimen en la cache de instrucciones.

• Ejemplos: MIPS16, THUMB

Palabra de instrucción larga

• Múltiples instrucciones en un lote de ancho fijo (BULK).

• Procesadores VLIW: Itanium, Transmeta Crusoe, RISC-V

• P/e IA-64 EPIC: lotes de 128 bits con tres instrucciones por lote. Procesa dos lotes a la vez.

1109 - Arquitectura de computadoras -UNLAM

69

Todas las marcas pertenecen a sus dueños

Page 69: Conceptos de arquitectura de computadoras Unidad Central ...

Tipos y tamaños de operandos

Tipos

• Entero binario

• Decimal codificado en binario (BCD)

• Punto flotante

• IEEE 754

• Cray Floating Point

• Intel Extended Precision (80-bit)

• Packed Vector Data

• Direcciones

Tamaño

• 8 bits: carácter ASCII, entero

• 16 bits: carácter UNICODE, half word

• 32 bits: word

• 64 bits: double word

• Punto flotante (32 bits, 40 bits, 64 bits, 80 bits, 128 bits)

• Direcciones (16, 24, 32, 48, 64 bits)

Cada arquitectura define los tipos y tamaño de datos que admite.

1109 - Arquitectura de computadoras -UNLAM

70

Las marcas son propiedad de sus respectivos dueños

Page 70: Conceptos de arquitectura de computadoras Unidad Central ...

Alineación del byte (byte alignment)

La mayoría de las computadoras permiten direccionar al byte, sin embargo en cada acceso a memoria se pueden

solicitar operandos de distintos tamaños:

• Byte (8 bits)

• Half word (16 bits)

• Word (32 bits)

• Double Word (64 bits)

Supongamos una computadora con un bus de datos de 64 bits. ¿Qué ocurre si se almacena una palabra de 64 bits en una dirección que no es múltiplo de 8?

Se requerirá más de un acceso a memoria para traer el operandoIntel x86-64 recomienda hacer accesos alineados para mejorar la performance.

¡Pero en cada acceso a memoria se obtendrá la cantidad de bits del ancho del bus de datos!

1109 - Arquitectura de computadoras -UNLAM

71

Las marcas son propiedad de sus respectivos dueños

C/C++: El compilador respetará el orden de los elementos de la estructura tal como se declararon, pudiendo

inserter relleno (padding) para alinearlo. La estructura completa también puede alinearse utilizando relleno.

Por lo tanto si se declaran las variables en orden de mayor a menor tamaño, el compilador puede que utilice

menos relleno, ahorrando memoria.

Page 71: Conceptos de arquitectura de computadoras Unidad Central ...

Alineación del byte (byte alignment)

1109 - Arquitectura de computadoras -UNLAM

72

Valor de los 3 bits menos significativos de la dirección del byte

Ancho del objeto 0 1 2 3 4 5 6 7

1 byte (byte) Alineado Alineado Alineado Alineado Alineado Alineado Alineado Alineado

2 bytes (half word) Alineado Alineado Alineado Alineado

2 bytes (half word) No alineado No alineado No alineado No alineado

4 bytes (word) Alineado Alineado

4 bytes (word) No alineado No alineado

4 bytes (word) No alineado No alineado

4 bytes (word) No alineado No alineado

8 bytes (double word) Alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineado

8 bytes (double word) No alineadoMIPS y ARM requieren accesos alineados. 80x86 no lo exige, pero si los operandos están

alineados opera más rápido.

Las marcas son propiedad de sus respectivos dueños

Page 72: Conceptos de arquitectura de computadoras Unidad Central ...

RISC vs CISC: principales características

RISC

• Instrucciones de longitud fija (fixed withd)

• Decodificación más simple

• Facilitan la implementación de pipelining

• Instrucciones menos complejas

• Más instrucciones por programa

• Ejemplos: MIPS (4 bytes c/u), PowerPC, SPARC, ARM.

CISC

• Instrucciones de longitud variable

• Ocupan menos espacio en memoria principal y caché

• Instrucciones más complejas

• Menos instrucciones por programa

• Ejemplos: IBM 360, Motorola 68k, VAX, x86 (de 1 a 18 bytes c/u)

1109 - Arquitectura de computadoras -UNLAM

74

Las marcas son propiedad de sus respectivos dueños

Page 73: Conceptos de arquitectura de computadoras Unidad Central ...

Características de algunas arquitecturas difundidas

Arquitectura Tipo Operandos Ref. memoria Datos RegistrosAncho

direccionesUso

Alpha Reg-Reg 3 0 64 bit 32 64 bit Workstation

ARM Reg-Reg 3 0 32/64 bit 16 32/64 bit Smartphones, embebidos

MIPS Reg-Reg 3 0 32/64 bit 32 32/64 bit Workstation, embebidos

SPARC Reg-Reg 3 0 32/64 bit 24-32 32/64 bit Workstation

TI 6000 Reg-Reg 3 0 32 bit 32 32 bit DSP

IBM 360 Reg-Mem 2 1 32 bit 16 24/31/64 Mainframe

X86 Reg-Mem 2 1 8/16/32/64 4/8/24 16/32/64 bit PC

VAX Mem-Mem 3 3 32 bit 16 32 bit Minicomp.

Motorola 6800 Acum. 1 1/2 8 bit 0 16 bit Microcont.

1109 - Arquitectura de computadoras -UNLAM

75

Las marcas son propiedad de sus respectivos dueños

Page 74: Conceptos de arquitectura de computadoras Unidad Central ...

Bibiliografía

MUR00 Murdocca-Heuring. Principios de arquitectura de computadoras. Pearson Editores, 2000. ISBN 987-9460-69-3

FLO06 Thomas Floyd. Fundamentos de sistemas digitales. Pearson Educación, 2006 ISBN 978-84-832-2720-6

WEN David Wentzlaff. Computer Architecture ELE 475: Introduction and Instruction Set Architectures, Department of

Electrical Engineering, Princeton University

STA16 William Stallings. Organización y arquitectura de computadoras, Diseño para performance.

10ma edición inglés, Pearson, 2016, ISBN 978-0-13-410161-3

HEN12 Hennessy-Patterson. Arquitectura de computadoras, un enfoque cuantitativo. Morgan Kaufmann, 2012, 5ta edición

inglés, ISBN 978-0-12-383872-8

BREY06 Barry B. Brey, Microprocesadores Intel, Séptima edición. Pearson Educación, 2006, ISBN 970-26-0804-X

STA05 William Stallings, Organización y arquitectura de computadoras, séptima edición. Pearson Educación, 2005, ISBN 978-

84-832-2858-6

1109 - Arquitectura de computadoras -UNLAM

80