Arquitectura de Ordenadores

24
Diseño ALU de 4 bits Unidad lógica S1 S0 Operación 0 0 1 1 0 1 0 1 AND OR Â XOR Unidad aritmética S1 S0 Operación 0 0 1 1 0 1 0 1 Suma Resta INC DEC Unidad de corrimiento S1 S0 Operación 0 0 1 1 0 1 0 1 A Carga

description

Resumen de la materia

Transcript of Arquitectura de Ordenadores

Page 1: Arquitectura de Ordenadores

Diseño ALU de 4 bits

Unidad lógica

S1 S0 Operación

0

0

1

1

0

1

0

1

AND

OR

Â

XOR

Unidad aritmética

S1 S0 Operación

0

0

1

1

0

1

0

1

Suma

Resta

INC

DEC

Unidad de corrimiento

S1 S0 Operación

0

0

1

1

0

1

0

1

A

Carga

Page 2: Arquitectura de Ordenadores

Operaciones de registros y control de bus de datos

Bus de datos

Bus de direcciones

Bus de control

S

0

1

A → B

A ← B

Aritmética de computadores

Sistema de numeración

Decimal

Base: 10

Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Binario

Base: 2

Dígitos: 0, 1

Hexadecimal

Base: 16

Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

De cualquier base a decimal: Sólo multiplicamos los dígitos con un peso en el sistema de referencia correspondiente.

De decimal a cualquier base: Se divide el número decimal para la base.

Page 3: Arquitectura de Ordenadores

Complemento a 1

Ṅ = (2n - N) – 1, n = # de bits

Complemento a 2

N* = 2n – N

Ej.:

Hallar el complemento a 16 de 4A5 hex

4A5H 0100 1010 0101

B5AH 1011 0101 1010

+ 1

B5BH 1011 0101 1011

Page 4: Arquitectura de Ordenadores

Formatos de datos en computadoras

Letras, números, símbolos, instrucciones

Código ASCII

7 bits = 128 símbolos

8 bits = 256 símbolos

DB directiva de lenguaje ensamblador para enteros de 8 bits y datos ASCII

U

Q

0010 0000

L

A

R

T

N 0100 1110

E 0100 0101

C 0100 0011

Page 5: Arquitectura de Ordenadores

Datos BCD (decimal codificado en binario)

153 decimal = 0001 0101 0011 BCD

153 decimal = 99 hex = 1001 1001 binario

BCD empaquetados 2 dígitos decimales = 8 bits

BCD 1 digito en 4 bits

BCD desempaquetados 1 digito decimal = 8 bits

Datos en Byte (8 bits)

Numero sin signo

Numero con signo

Datos en Word (16 bits)

Datos en DWord (32 bits)

Transformación de parte fraccionaria en decimal a cualquier base

Procedimiento

1) Multiplicar la fracción decimal por la base numérica.2) Guarde todo el resultado, la parte entera (aun si es cero).

Se escribe inmediatamente a la derecha del punto.3) Repita 1 y 2 hasta que la parte fraccionaria del paso 2 sea cero.

Page 6: Arquitectura de Ordenadores

Formatos para almacenar datos en una computadora

Números en punto flotante

Se denominan así a los representantes internas al procesador que modelan a los números reales.

0,023 = 2,3 * 10-2

Se dice que el número esta normalizado cuando al expresarlo en notación exponencial, el digito a la izquierda no es cero.

En binario

(0, 01101) b = (1,101 * 2-2) b

Norma IEEE 754

Expresa el número de punto flotante de 32 bits normalizado de la siguiente forma:

(-1)5 * 1 * M2 * 2Ee

Ee = representación externa del exponente

Ei = representación interna del exponente

S = 0 números positivos

S = 1 números negativos

Page 7: Arquitectura de Ordenadores
Page 8: Arquitectura de Ordenadores

Tipo de instrucciones en los microprocesadores

Transferencia de datos Aritméticas Manipulación de bits Instrucciones para cadenas Transferencia de programa Control del procesador

Arquitectura Von Neumann

Ventajas

1) Hardware es simple (menor circuitería).

Desventajas

1) Bus principal es compartido datos, código entrada y salida.2) El tamaño de los datos # bits está limitado el tamaño de la instrucción porque ocupan la

misma memoria.3) Cuello de botella: limitación en la velocidad de operación.

Arquitectura Von Harvard

Ventajas

1) Buses de codificado para datos e instrucciones.2) Tamaño de datos # bits no está limitado por el tamaño de instrucciones bits.3) Se elimina el cuello de botella.

Desventajas

1) Hardware complejo (aumenta circuitería).2) Mejorar costos.

Paralelismo Capacidad de procesar cierto número de instrucciones simultaneas, en diversas formas de ejecución.

Microprocesador Recupe

rar 1

Decodificar1

Ejecutar1

Recuperar2

Decodificar2

Ejecutar2

Recuperar3

Decodificar3

Ejecutar3

Page 9: Arquitectura de Ordenadores

CanalOcupad

o Ocioso Ocupa

do Ocios

o Ocupa

do Ocios

o Ocupa

do Ocios

o Ocupa

do

Unidad de interface de canal Recuper

ar1

Recuperar2

Recuperar3

Recuperar4

Almacenar1

Recuperar5

Recuperar6

Leer2

Recuperar7

Unidad de instrucciónDecodifi

car1

Decodificar2

Decodificar3

Decodificar4

Ociosa

Decodificar5

Decodificar6

Ociosa

Unidad de ejecución

Ejecutar1

Ejecutar2

Ejecutar3

Ejecutar4

Ociosa Ejecutar5

Ejecutar6

Page 10: Arquitectura de Ordenadores

Arquitectura de MultiprocesamientoCuando se desea incrementar el desempeño más allá de lo que permite la técnica de segmentación delcauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesadorpara la ejecución del programa de aplicación.Las CPU de multiprocesamiento se clasifican de la siguiente manera:● SISO – (Single Instruction, Single Operand ) computadoras independientes● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales● MISO – (Multiple Instruction, Single Operand ) No implementado● MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, ClustersProcesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico auna serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales comosimuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., dondelos datos son representados como grandes números de datos en forma matricial sobre los que se deben se

Page 11: Arquitectura de Ordenadores

aplicar el mismo algoritmo numérico.En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoriaprincipal y periféricos de I/O, Normalmente conectados por un bus común. Se conocen comosimétricos, ya que ningún procesador toma el papel de maestro y los demás de esclavos, sino que todostienen derechos similares en cuanto al acceso a la memoria y periféricos y ambos son administrados porel sistema operativo.Búsqueda EjecuciónEspera EsperaLos Clusters son conjuntos de computadoras independientes conectadas en una red de área local o porun bis de interconexión y que trabajan cooperativamente para resolver un problema. Es clave en sufuncionamiento contar con un sistema operativo y programas de aplicación capaces de distribuir eltrabajo entre las computadoras de la red.

Conjunto de Instrucciones: Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA (del inglés Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es una especificación que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño particular de una CPU. El término describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos.

Existen 3 tipos:

CISC: En arquitectura computacional, CISC (del inglés Complex Instruction Set Computer, en español Computador con Conjunto de Instrucciones Complejas) es un modelo de arquitectura de computadores. Los microprocesadores CISC tienen un conjunto de

Page 12: Arquitectura de Ordenadores

instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.

Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86, AMD x86-64 usada en la mayoría de las computadoras personales actuales.

Hay que hacer notar, sin embargo que la utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos.

RISC: En arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer, en español Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado en microprocesadores o microcontroladores con las siguientes características fundamentales:

Instrucciones de tamaño fijo y presentado en un reducido número de formatos.Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.Además estos procesadores suelen disponer de muchos registros de propósito general.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC son ejemplos de algunos de ellos.

RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.

Page 13: Arquitectura de Ordenadores

La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria.

SICS: SISC (Simple Instruction Set Computing) es un tipo de arquitectura de microprocesadores orientada al procesamiento de tareas en paralelo. Esto se implementa mediante el uso de la tecnología VLSI, que permite a múltiples dispositivos de bajo costo que se utilicen conjuntamente para resolver un problema particular dividido en partes disjuntas. La arquitectura RISC es un subconjunto del SISC, centrada en la velocidad de procesamiento debido a un conjunto de instrucciones reducido.1

Microprocesadores SISC (o RISC) nunca han logrado amenazar el amplio dominio de los procesadores CISC en los ordenadores personales, debido a su popularidad y al aumento constante en la capacidad de procesamiento de los mismos.2 Por lo tanto, el uso de RISC y SISC sigue limitado a necesidades muy específicas de procesamiento, como en los procesadores DSP.

Microarquitectura: la microarquitectura (a veces abreviada como µarch o uarch), también llamada como organización de la computadora, es la manera que una arquitectura del conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA dado puede ser implementado con diferentes microarquitecturas.1 Las implementaciones pudieran variar debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología.2 La arquitectura de computadora es la combinación del diseño determinado de la microarquitectura y del conjunto de instrucciones.

Page 14: Arquitectura de Ordenadores

Conjunto de instrucciones (ISA):

Celdas de almacenamiento: Registros, memorias, etc. El conjunto de instrucciones de la máquina: Conjunto de operaciones posibles Formato de la Instrucción: El tamaño y el significado de los campos dentro de la Instrucción

Page 15: Arquitectura de Ordenadores

Ciclo de Instrucciones

Instrucción de 4 Direcciones

add ResAddr Op1Addr Op2Addr Segmento de Datos Seg. De Codigo

Instrucción de 3 Direcciones

Page 16: Arquitectura de Ordenadores

Add ResAddr Op1Addr Op2Addr

Diferencia entre la Instrucción de 3 y 4 direcciones es que aparecen registros y un contador de programa en la de 3 direccionesRegistro: son localidades de memoria fuera de memoria de códigos y datos.Instrucción de 2 Direcciones

Add Op2Addr Op1AddrVentaja: es una instrucción más corta ya que el resultado lo guarda en el mismo Op2AdrrDesventaja: no podríamos ver el dato anterior

Instrucción de 1 Dirección

Add Op1Addr

Aparece Registro AcumuladorInstrucción de 0 Direcciones

Page 17: Arquitectura de Ordenadores

Segmento de Datos

Segmento de Codigo

Stack

Evaluación de expresiones para 3-0 instrucciones de dirección

NO TIENE QUE ESTAR DIRECCIONANDO A MEMORIA

Page 18: Arquitectura de Ordenadores

Modos de direccionamiento

Page 19: Arquitectura de Ordenadores

Fundamentos de lenguaje ensambladorEstructura del i8086El microprocesador tiene 14 registros de 16 bits

Registro de datos AX (AH,AL) BX (BH,BL) CX (CH,CL) DX (DH,DL) Registro estado del procesador PSW Registro de punteros SP -Puntero de Pila BP -Puntero base pila

Page 20: Arquitectura de Ordenadores

SI -Registro de índice DI -Registro de índice IP -Contador de programa Registro de segmento CS -Segmento de código DS -Segmento de datos ES -Segmento extra SS -Segmento pila

Instrucción.- son aquellos neumónicos que son convertidos por el ensamblador por el código máquina que puede ejecutar el núcleo del microprocesador. Tipo de Instrucción

Efecto Ejemplos

Transferencia de datos

Mueven información entre registro y registro de posiciones o entre registros y puertos de entrada y salida

MOV,PUSH,POP, etc.

Instrucciones Aritméticas

Realizan operaciones aritméticas

ADD, ADC, SUB, SBB, etc.

Manejo de bits Realizan operaciones de desplazamiento, rotación y lógicas sobre registros o posiciones de memoria

SAL/SHL, SAR, SHR, ROL,ROR, RCL, RCR.

Transferencia de control

Sirven para controlar la ejecución de instrucciones del programa

Instrucción de entrada y salida

Mueven información entre registros y puertos de entrada y salida

IN, OUT

Instrucción de manejo de

Realizan operaciones con cadena de bytes o

Instrucciones de salto, bucles y

Page 21: Arquitectura de Ordenadores

cadenas palabras llamadas aProcedimientos.

Instrucción de interrupción

Provocan que el microprocesador realice un servicio que se lo solicita diferentes a las instrucciones a las que se están ejecutando

REP, REPE/REPZ, REPNE/REPNZ, MOVS/MOVSW, CMPS, etc.

Directicas.- son Pseudo-Instrucciones que controla el proceso de ensamblador del programa, pero no son parte del código, son indicaciones al ensamblador de cómo tiene que armar el programa.

Bibliografía:

http://es.wikipedia.org/wiki/Simple_Instruction_Set_Computing http://es.wikipedia.org/wiki/Reduced_instruction_set_computing http://es.wikipedia.org/wiki/Complex_instruction_set_computing http://es.wikipedia.org/wiki/Microarquitectura http://es.wikipedia.org/wiki/

Conjunto_de_instrucciones#Caracter.C3.ADsticas_que_debe_tener_un_conjunto_de_instrucciones