Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Inroduccion Al Micro Procesador

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 56

Programación de

microprocesadores
Ing. Victor Pazmiño M. (victor.pazminom@ug.edu.ec )
Unidad #1: INTRODUCCIÓN AL
MICROPROCESADOR

1. INTRODUCCIÓN AL MICROPROCESADOR
1.1 La evolución del microprocesador.
1.2 Arquitectura básica del microprocesador.
1.3 La memoria y el microprocesador.
1.4 Dispositivos de memoria.
1.5 Decodificación de la dirección.
1.6 Sistemas de numeración y formato de datos usados en Sistemas de
microprocesadores.
Introducción al microprocesador

• El microprocesador (μP) es es el circuito integrado


central y más complejo de un sistema informático.
• El μP se lo puede estudiar desde dos puntos de
vista: su hardware y su software.
• Dentro del hardware tenemos: Unidad Central de
Proceso (CPU), memoria, los puertos de
ENTRADA/SALIDA(E/S), el reloj y la circuitería
lógica de control.
• Dentro del software, tenemos la programación del
hardware para tareas de control, donde se utiliza
un lenguaje de muy bajo nivel llamado
Ensamblador.
Introducción al microprocesador

Ley de Moore

Gordon Earl Moore


Introducción al microprocesador
ELEMENTOS BÁSICOS
DE UN
MICROPROCESADOR
Dispositivos de Adición.

ALU (Unidad Registros: Son los que contienen los operandos que
permiten realizar las operaciones,

aritmética –
lógica / Resultados Parciales: Fragmentos de cálculos que
fueron realizados

Arichmetic
Logic Unit) Resultados Finales: Resultados propiamente dichos de
los cálculos efectuados

Control de Cálculo: Dispositivo que se encarga de


controlar, redirigir y corregir los errores que se puedan
haber cometido en las operaciones realizadas
ALU (Unidad • Además de los operadores lógicos y aritméticos, la
aritmética – ALU cuenta con una serie de registros para
almacenar los datos, y bits de información sobre
lógica / los resultados, también llamados banderas (flags).
Arichmetic • Las banderas más comunes son: Carry, Auxiliary
Carry, Borrow, Overflow, Parity, Zero.
Logic Unit)
• Sumador/restador rápido
• Operadores lógicos (AND, OR, XOR, NOT)
• Un acumulador y un registro auxiliar
Partes de la • Un registro de salida

ALU • Señales de control que indiquen la operación a


realizar.
• Registro de banderas de estatus
Bus de control
vs bus de
datos vs bus
de dirección
Introducción del
microprocesador
Hyperthreading
Computador

CPU

Unidad de Dispositivos de E/S


control

Unidad
aritmética y
lógica
Registros
Memoria
principal Disco Impresora

Bus
• Para almacenar programas y datos.
• Unidad básica el bit.
• Se divide en celdas.

Memoria • Cada celda se identifica por una dirección.


• Byte = 8 bits : unidad más pequeña direccionable
• Los bytes se agrupan en palabras.
• La mayor parte de las instrucciones operan sobre
palabras.
Memoria

• Los bytes en una palabra se pueden numerar de izquierda a


derecha (“big endian”, Motorola) o de derecha a izquierda (“little
endian”, Intel).
• Problema: la falta de una norma en el ordenamiento produce
incompatibilidad en la transferecia de datos. No se soluciona con
el intercambio de los bytes.
• Posible solución: incluir un encabezado en los datos que indique el
tipo y el tamaño de los datos.
Dispositivos
de memoria
Memorias ( JERARQUÍA )
27
• El PC utiliza la memoria para acceder rápido a la
información.
• El disco es más lento, pero es necesario porque la
información en la RAM del sistema no es
permanente.

– Los datos vienen de los dispositivos de


entrada (ej. teclado), o del disco.
– Siempre van a parar a la RAM del sistema.
– La CPU almacena en la caché los
fragmentos de información a los que
accede.
– La CPU mantiene en los registros
información para las instrucciones que
ejecuta.
Cintas magnéticas

Discos magnéticos

Discos flexibles
Memoria
secundaria Discos ópticos

Discos RAM

• Se utiliza como disco una parte de la memoria


principal previamente reservada.
• Ventajas: acceso instantáneo, facilidad para
un ordenador sin disco.
Dispositivos de E/S

• Para la comunicación con el exterior.


• Distintos dipositivos:
• Terminales
• Modems
• Ratones
• Impresoras
• Dos enfoques diferentes.
Enfoque 1
• Utilizado en grandes computadores.
Memoria principal
Bus de memoria

CPU Bus de E/S


Procesadores de E/S
(canales)

Controlador
de terminales
Impresora Discos
Terminales
Enfoque 2
• Utilizado en computadores personales
Unidad
Monitor Teclado
de disco

Contr. Contr. de Contr. de


CPU Memoria
de video teclado disco
Bus

• El controlador maneja la E/S al dispositivo y el acceso al bus.


• Funcionan con interrupciones o mediante DMA
• El arbitrador decide quién accede al bus.
Ejecución de una instrucción

• Extrae de la memoria la siguiente instrucción, la lleva al IR


• Incrementa PC
• Determina el tipo de la instrucción
• Comprueba si la instrucción necesita datos de la memoria
• Extrae los datos y los carga en los registros
• Ejecuta la instrucción
• Almacena los resultados en el lugar apropiado
• Va al primer paso
• Máquinas cada vez más rápidas
• Existen límites físicos
• Es muy caro

Ejecución de • Se puede conseguir con varias ALU’s o varias CPU’s


• Las máquinas paralelas se dividen en 3 categorías
instrucciones (Flynn,1972), según el nº de instrucciones y datos:
• SISD: flujo de instrucciones simple, flujo
en paralelo de datos simple.
• SIMD: flujo de instrucciones simple, flujo
de datos múltiple.
• MIMD: flujo de instruc. múltiple, flujo de
datos múltiple.
Máquinas SISD (: flujo de instrucciones
simple, flujo de datos simple)

• Un programa y un conjunto de datos.


• Se extrae una instrucción y se ejecuta,
se extrae otra y así.
• Se logra el paralelismo extrayendo e
iniciando la siguiente instrucción antes
de terminar aquella en curso.
• Dos modelos:
• varias unidades funcionales
• procesamiento en línea
Varias unidades funcionales
La UC extrae una instrucción, la manda a una unidad funcional, extrae la siguiente y así hasta que no se pueda avanzar.
Se supone que el tiempo en ejecutar una instrucción es mayor que en extraerla.

Registros

+ + - x +
Procesamiento en línea
Consiste en separar la ejecución de cada instrucción en partes. Cada parte la ejecuta
una unidad de procesamiento de la CPU.

UP1 UP2 UP3 UP4 UP5


Unidad de Unidad de Unidad de Unidad de
extracción de Analizador de cálculo de extracción ejecución de
instrucción instrucciones direcciones de datos instrucciones

P1 1 2 3 4 5 6 7
P2 8 1 2 3 4 5 6 7
P3 8 1 2 3 4 5 6 7
P4 1 2 3 4 5 6
P5 1 2 3 4 5
1 2 3 4 5 6 7 t
8
Máquinas SIMD (flujo de instrucciones simple,
flujo de datos multiple)

• Un programa con múltiples conjuntos de datos


• Dos modelos:
• Máquinas vectoriales
• Procesadores de arreglos
Máquina vectorial

• Para cada entrada de la ALU se tiene un vector con n entradas y no una sóla
variable.
• La ALU es una unidad vectorial capaz de realizar operaciones con vectores.

vector de entrada A vector de entrada B

vector de salida A+B


Procesador de arreglos
Consiste de una malla cuadrangular de elementos procesador/memoria, que reciben las
instrucciones de la UC, éstas son ejecutadas por todos los procesadores.

U.C

malla de procesador-memoria de 8x8


Máquinas MIMD (flujo de instruc. múltiple,
flujo de datos múltiple)
• Distintas CPU’s manejan distintos programas compartiendo a veces una
memoria común.
• Multiprocesador: Dificultades si un gran nº de procesadores pretende
acceder a la memoria a través del bus.

CPU CPU CPU CPU Memoria


compartida

Bus
Máquinas MIMD

• Posibles soluciones:
• Memoria local a cada procesador donde se almacena datos y programas no
comunes.
memorias locales

CPU CPU CPU CPU memoria compartida


• Tener más de un bus.
• Usar memoria caché: técnica para mantener en cada procesador las palabras de
memoria usadas con mayor frecuencia.
• Memoria de alta velocidad y poca capacidad,
integrada al microprocesador.
• Permite guardar transitoriamente y acceder a
Registros valores muy usados, generalmente en operaciones
matemáticas.
• Se miden generalmente por el número de bits que
almacenan.
• Los registros de datos se usan para guardar números enteros.
En algunas computadoras antiguas, existía un único registro
donde se guardaba toda la información, llamado acumulador.
• Los registros de memoria se usan para guardar exclusivamente
direcciones de memoria. Eran muy usados en la arquitectura
Harvard, ya que muchas veces las direcciones tenían un tamaño
de palabra distinto que los datos.
• Los registros de propósito general (en inglés GPRs o General
Tipos de Purpose Registers) pueden guardar tanto datos como
direcciones. Son fundamentales en la arquitectura de von
Neumann. La mayor parte de las computadoras modernas usa
registros GPR.
• Los registros de coma flotante se usan para guardar datos en
formato de coma flotante.
• Los registros constantes tienen valores creados por hardware
de sólo lectura. Por ejemplo, en MIPS el registro cero siempre
vale 0.
• Los registros de propósito específico guardan información
específica del estado del sistema, como el puntero de pila o el
registro de estado.
microprocesador 8086 y 8088
REGISTROS DE DATOS (generales, o
multipropósito) (AX, BX, CX,DX)
• Son los más utilizados por los programas,
debido a que son usados para almacenar datos.
• Existen 4 (AX, BX, CX y DX), cada uno de 16
bits.
• Cada uno de estos registros se subdivide
además en dos registros de 8 bits (1byte) que
se denominan con la misma letra que el
registro completo pero terminado en H si se
refiere al byte superior (8 bits más
significativos del registro) o en L si se refiere al
byte inferior (8 bits menos significativos del
registro).
• AX o Acumulador: Es el registro principal, se usa en operaciones de
multiplicación, división y operaciones matemáticas especializadas y en ciertas
operaciones de E/S y conversión, en alguna de estas operaciones sólo se puede
usar este registro y no otro.
• BX o base: Se utiliza en algunos modos de direccionamiento para formar la
dirección de memoria de la que obtiene o en la que almacena los datos una
determinada instrucción. Se usa para indicar el desplazamiento (offset) para
referenciar direcciones de memoria con direccionamiento indirecto.
• CX o contador: Se utiliza con las instrucciones de repetición y de bucle,
almacenando el número de veces que se repetirá una determinada instrucción o
fragmento de un programa. En instrucciones de desplazamiento y rotación se
usa como contador de 8 bits.
• DX o de datos: Se usa junto a AX en operaciones aritméticas de 32 bits y en las
de E/S para especificar la dirección del puerto de E/S.
REGISTROS DE SEGMENTOS (CS, DS, SS, ES)

• El microprocesador8086 divide la memoria en segmentos de 64K


teniendo diferentes segmentos dependiendo de la utilidad que le
quiera dar a cada uno de ellos. Los registros de segmento tendrán
la dirección de memoria donde comienza cada tipo de segmento.
• Registro CS (Segmento de código): Apunta siempre al segmento
donde se encuentra las instrucciones del programa que se está
ejecutando. Los programas mayores de 64K requieren cambiar CS de
forma periódica. Este registro no se puede modificar directamente y
debe hacerse mediante las denominadas “instrucciones de
transferencia de control”.
• Registro DS (Segmento de datos): Apunta al segmento de memoria
donde las instrucciones del segmento de código leen o almacenan los
datos que usa el programa en ejecución. Este registro puede cambiarse
durante la ejecución del programa para así poder acceder a toda la
memoria instalada en el sistema.
• Registro SS (Segmento de pila): Contiene la dirección de comienzo del
segmento de pila. La pila es un área de memoria destinada a almacenar
valores de 16 bits de forma temporal en la ejecución de un programa.
• Registro ES (Segmento Extra): Es una ampliación del segmento de
datos. Las áreas de 64K de cada segmento pueden solaparse total o
parcialmente siendo imposible acceder a zonas de memoria no incluidas
en los segmentos
REGISTROS ESPECIALES (SP, IP,
FLAGS(BANDERAS))

• Estos registros son utilizados por el microprocesador para almacenar sus


propios datos y raramente se modificaran desde el programa.
• Registro SP(Stack Pointer ó Puntero de pila): Nos indica el
desplazamiento respecto a SS donde ponemos el comienzo de la pila.
• Registro IP (Puntero de instrucción o contador de programa): Apunta
en todo momento a la dirección de la siguiente instrucción que debe
ejecutarse, es un offset respecto al valor de CS por lo que dicha
instrucción estará en CS:IP, al igual que CS, el registro IP sólo puede
modificarse mediante las llamadas “instrucciones de transferencia de
control”.
flags
Decodificación de la memoria

• La decodificación de memoria es una aplicación típica de los


dispositivos lógicos programables.
• Es un identificador único para una ubicación de la memoria con las
cuales el CPU u otros dispositivos pueden almacenar, modificar, o
recuperar datos de la misma.
• Se expresan en hexadecimal.
• Cada direccionamiento apunta hacia un byte (8 bits).
Tipos de direccionamiento

• Físico: se refiere a los medios electrónicos en la computadora para


acceder a las diversas posiciones de memoria.
• Lógico: Se refieren a la forma en que se expresan y guardan las
direcciones.
Modos de direccionamiento

• Diferentes maneras de especificar un operando dentro de una


instrucción en lenguaje ensamblador.
• Especifica la forma de calcular la dirección de memoria efectiva
de un operando mediante el uso de la información contenida en
registros y/o constantes, contenida dentro de una instrucción de
la máquina o en otra parte.

• MOV AX, 12A

Operandos
Tipos de direccionamiento

• Inmediato
• Directo a registro
• Directo a memoria (absoluto)
• Indirecto con registro
• Indirecto con pila
• Indirecto con memoria
• Indirecto con desplazamiento
Modos de direccionamiento
Modos de direccionamiento
Modos de direccionamiento
Modos de direccionamiento
¿cuál es el mejor?

También podría gustarte