Está en la página 1de 70

Algoritmos

CPU: SRC-I
Set de Instrucciones Microarquitectura Performance

Algoritmos

Vamos a disear una computadora que ejecute programas

Pero, qu es un programa?
Dos ramas importantes de la teora de la computacin:
Teora de la computabilidad Teora de la complejidad

Algoritmos

Dado un conjunto finito de baldosas, con un color en cada lado

Ejemplo:

puede embaldosarse con ellos el plano, de forma que los lados contiguos tengan el mismo color? (se pueden hacer tantas copias como se quiera, no se pueden girar) Ejemplo 2:

Algoritmos

Ejemplos fciles:

Embaldosado peridico ampliable:

No se puede

- Muy aplicados para construir imgenes y texturas

Algoritmos

Dado un conjunto de ciudades y sus distancias. Cul es el camino ms corto para recorrer todas las ciudades pasando solo una vez por ellas? Ejemplo:

Por fuerza bruta? N! combinaciones. (Problemas NP completos) Si una computadora calcula la longitud de cada combinacin en 1us: 10 ciudades -> aprox. 3 segundos 11 ciudades -> aprox. 30 segundos 20 ciudades -> 77.146 aos

Algoritmos

Nocin de Algoritmo: Se formularon Modelos Matemticos Produjeron grandes avances a la computacin!


Autmatas conocidos: Mquina de Estado Finita Autmata con Pila Autmata Linealmente Acotado Mquina de Turing

Nosotros nos enfocaremos en una computadora clsica


(luego introduciremos la computacin no convencional)

Algoritmos

CPU: SRC-I
Set de Instrucciones Microarquitectura Performance

CPU: SRC-I

Ejecuta los programas: - Lee las instrucciones de memoria - Las decodifica - Las ejecuta - Lee/Escribe Datos de Memoria - Recibe/enva datos de I/O - Realiza operaciones Lgico-Aritmticas Se compone de: - Unidad de Control: Fija que se debe hacer y cuando - Camino de datos: Registros, ALU, interconexin (hace!) - Analoga: Sistema nervioso y msculos

Ejemplo simple: c1,c2, c3 y c4 seales de control De qu depende la cantidad de lneas de c3? Para qu est el Latch?

CPU: SRC-I

Salida 3-state

Problema: Se desea interconectar 8 registros y un ALU: - R0, R1, , R7 y ALU - Intercambiar contenidos de registros (Ri<->Rj) - Acceder al ALU desde cualquier registro (Ri->ALU) - Poner el resultado en cualquier registro (ALU->Rj) Solucin 1: Conectar todos contra todos Ventajas, desventajas?

CPU: SRC-I

Solucin 2:

Probar: R1 = R1 + R3, R1 <-> R3 Ventajas, desventajas?

CPU: SRC-I

CPU: SRC-I

Solucin 3:

Probar: R1 = R1 + R3, R1 <-> R3 Ventajas, desventajas?

CPU: SRC-I

Solucin 4:

Probar: R1 = R1 + R3, R1 <-> R3 Ventajas, desventajas?

CPU: SRC-I

CPU: SRC-I

Instruccin y RTN (para add):

Opcode: Qu se hace? Operandos: Con qu se hace?

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

CPU: SRC-I

Tiempo de ejecucin: 30T Cantidad de instrucciones: I=4 CPI: 7,50 (Para este programa) Tiempo de ejecucin: CPI x I x T

Algoritmos

CPU: SRC-I
Set de Instrucciones Microarquitectura Performance

Set de Instrucciones

Arquitectura de computadora = ISA + MO


Instruction Set Architecture (Set de Instrucciones) La interfaz de la maquina hacia el usuario Vista lgica Machine Organization (Microarquitectura) Cmo el HW mplementa el ISA Vista Fsica

Set de Instrucciones

Para disear un ISA tener en cuenta que:


Definicin: Es la parte visible/ interfaz de la computadora hacia el programador o el escritor de compiladores

Elementos: - Conjunto de instrucciones - Formato y semntica de las instrucciones - Registros visibles al usuario Propiedades: - Completo - escritura - mover a la izquierda y leer - mover a la derecha y leer - parar
- Eficiente - tiempo - recursos

Set de Instrucciones

1- Clasificacin
Principalmente por el almacenamiento interno: Stack, Acumulador, GPR o Conjunto de registros. Desde los 80 que los procesadores son de tipo GPR, por qu?

Set de Instrucciones

Set de Instrucciones

2- Direccionamiento de Memoria
Byte Addressing Mayormente las memorias son direccionables a bytes. Proveen generalmente accesos a: 1 byte: bytes 2 bytes: half-words 3 bytes: words 4 bytes: double-words Ej: ldb, ldh, ldw, ldd. Ventajas? Desventajas? Usos?

Byte Ordering (Endianness) Little Indian vs Big Indian Ventajas? Desventajas? Bi-endianness?

Set de Instrucciones

Memory Alignment

Memoria alineada vs Memoria desalineada.


Para qu imponer restricciones en un sistema de memoria alineada? Qu sucede si ejecuto una instruccin no alineada en un sistema de memoria alineada?

Set de Instrucciones

Modos de direccionamiento

Set de Instrucciones

Cuantificando los direccionamientos. Pero estas estadsticas que tan reales son?

Set de Instrucciones

3- Tamao y tipos de operandos


Los tipos y tamaos de operandos se deducen del op-code de la instruccin. Los tipos varan entre: - signed/unsigned - byte/short/integer/double/float: IEEE 754 / BCD - char/unicode/strings - etc.

4- Instrucciones

Set de Instrucciones

5- Instrucciones de control de flujo


- Jumps - Conditional Branches - Procedure calls - Procedure returns

Set de Instrucciones

El destino del salto se conoce en tiempo de compilacin? Si: PC-Relativo Ventajas? PIC y Pocos bits Qu tan lejos puedo saltar? Y Saltos hacia atrs?

Y en casos en que el salto es lejano o no se conoce en tiempo de compilacin?

Set de Instrucciones

Set de Instrucciones

6- Codificacin de instrucciones

Set de Instrucciones

(x86)

Virtualizacin vs Emulacin

(x86)

System Virtualization vs Application Virtualization

Cmo se puede virtualizar un ISA? Puedo cambiar el ISA dinmicamente?

Algoritmos

CPU: SRC-I
Set de Instrucciones Microarquitectura Performance

Microarquitectura

Arquitectura de computadora = ISA + MO


Camino de Datos: Un camino incluye bsicamente -> Fetch + Decode + Execute Vimos el SRC-1 (Propsito General). Qu podemos mejorar?
- Pensar en un buen ISA La Microarquitectura tiene en cuenta: - Agregar elementos - Prediccin de Saltos rea/costo del chip - Renombramiento de Registros Consumo de energa - etc. Complejidad de la lgica - Separar Memorias Facilidad de la conectividad - Ejecutar ms de una instruccin a la vez Facilidad de ser manufacturado - Pipeline Facilidad del depuracin - Superescalar Facilidades de hacer pruebas - Vectorial - Multicore - Multithread - Mejorar prestaciones, Cmo implemento lo siguiente? - Semforos - Interrupciones - Memoria Virtual - etc.

Microarquitectura

Microarquitectura

Microarquitectura

Interfaz CPU/Memoria

Harvard

Von Neumann

Ventajas de cada una? Alguna propuesta mejor?

Microarquitectura

Unidad de Control:
Cmo implemento una unidad de control? Es un circuito combinacional o secuencial?

Cmo logro la sincronizacin de componentes?

Ej. Ld r1,r0, 0100H

Unidad de Control

Lneas de Control

Algoritmos

CPU: SRC-I
Set de Instrucciones Microarquitectura Performance

Performance

Performance

Performance en Computadoras

Performance

Tiempo de Ejecucin

Performance

Definicin de Performance:

Performance

Ciclos de Reloj:

Performance

Mtricas del Procesador:

Performance

Aspectos de la Performance del CPU:

Performance

CPI

Performance

Ejemplo:

Performance

Performance:

Performance

Mtricas de Marketing:

Performance

Ejemplo CPI:

Performance

Ejemplo MIPS:

Performance

Clculo:

Performance

Benchmarks Para qu?:

Performance

Programas para evaluar performance de CPU:

Performance

Benchmark Exitoso: SPEC

Performance

Primera Ronda SPEC

Performance

SPEC 95

Performance

SPEC 95: Ejemplo de Comparacin Pentium vs Pentium Pro

Performance

Ley de Ahmdal