Microprocesadores 30 de Septiembre 2014
-
Upload
will-montero -
Category
Documents
-
view
12 -
download
0
description
Transcript of Microprocesadores 30 de Septiembre 2014
-
Docente: Ing. Edgar Ortuo Ros
1
-
Capitulo 1 Introduccin a los microprocesadores.
La Electrnica de Control y Electrnica en general podemos dividir en 2 tecnologas:
MAQUINAS CABLEADAS hasta el ao 1970 MAQUINAS PROGRAMADAS desde el ao 1971
2
-
MAQUINAS CABLEADAS Y MAQUINAS PROGRAMADAS
MAQUINAS CABLEADAS:
La Maquina Cableada se basaba en la utilizacin de UN CIRCUITO ESPECIFICO PARA CADA APLICACIN .
La lgica cableada industrial es la tcnica de diseo de pequeos a complejos automatismos utilizados en plantas industriales, bsicamente con rels cableados. En telecomunicaciones y en informtica, la lgica cableada utiliza compuertas lgicas discretas (TTL, CMOS, HCMOS), para implementar circuitos digitales de comunicaciones y computadores
3
http://es.wikipedia.org/wiki/Compuertas_l%C3%B3gicashttp://upload.wikimedia.org/wikipedia/commons/f/fb/L%C3%B3gica_cableada_Rack_con_Rel%C3%A9s.JPGhttp://es.wikipedia.org/wiki/Archivo:L%C3%B3gica_Cableada_Variables_l%C3%B3gicas.GIFhttp://es.wikipedia.org/wiki/Archivo:L%C3%B3gica_Cableada_Esquemas_de_Conexi%C3%B3n_y_Principio.GIF
-
MAQUINAS CABLEADAS
Sus desventajas son: 1.- Baja fiabilidad. 2.- Elevado nmero de componentes. 3.- Alto costo por conceptos de materiales y mano de obra.
Ejemplo de una maquina cableada
4
-
MAQUINAS PROGRAMADAS
En oposicin al principio de la mquina cableada surgi La mquina programada desde 1971, basada en UNA ESTRUCTURA PRINCIPAL PARA TODAS LAS APLICACIONES.
Los motivos fundamentales originaron la aparicin y desarrollo de las mquinas programadas (computadoras) en 1971 fueron tres:
1 . El incremento de la complejidad en las funciones y en el nmero de elementos que conformaban las mquinas.
2. Los avances tecnolgicos en la fabricacin de circuitos integrados de alta escala de integracin (LSI).
3. La "casualidad", que tanto ha acompaado
a los descubrimientos en Electrnica y
en general en todas las ciencias.
5
-
Diagrama de bloques Maquina Programada
1.- CPU
2.- Memoria
3.- Mdulos de Entrada y Salida
Partes que componen una maquina programada:
6
http://es.wikipedia.org/wiki/Archivo:Intel_80286_68pin_plastic_10mhz_2007_03_27.jpghttp://es.wikipedia.org/wiki/Archivo:Intel_80486sx.jpghttp://es.wikipedia.org/wiki/Archivo:Pentium_II_front.jpghttp://es.wikipedia.org/wiki/Archivo:LGA_775.jpghttp://es.wikipedia.org/wiki/Archivo:80486dx2-large.jpg
-
MAQUINA PROGRAMADA Se denomina UNIDAD CENTRAL DE PROCESO CPU o
Microprocesador al conjunto de elementos electrnicos, en general de carcter digital, capaz de interpretar y ejecutar el juego de instrucciones y procesar los datos de la memoria. Tambin procesa los datos de los mdulos de entrada, as como de gobernar al resto de los componentes que constituyen el sistema.
La MEMORIA, es el que almacena los datos y las instrucciones del programa.
MDULOS DE ENTRADA Y SALIDA (I/O) los circuitos de
Interfase de los perifricos con el conjunto formado por la CPU y la MEMORIA se denominan MDULOS DE ENTRADA Y SALIDA (I/O).
7
-
MAQUINAS PROGRAMADAS O COMPUTADORAS
La ventajas ms reseables de las mquinas programadas son:
a) Reducido hardware. Ejemplo: si es de carcter lgico, como la AND, sustituye a una puerta con una instruccin que de otra manera tendra que implementarse con hardware.
b) Alta confiabilidad. c) Bajos costos de los materiales, mano de obra y
mantenimiento. d) Permite realizar fcil y rpidamente cambios y
adaptaciones sin afectar por lo general la estructura del sistema, sino slo el programa de instrucciones.
e) Reduce el tiempo del diseo.
8
-
Estructura Bsica del Microprocesador
Con la aparicin del microprocesador alrededor de 1970 se origin una profunda transformacin de las tcnicas de control y diseo clsicos. Se denomina MICROPROCESADOR a un simple circuito integrado LSI que contiene los elementos que constituyen la Unidad Central de Proceso o CPU de una Mquina Programada
9
http://es.wikipedia.org/wiki/Archivo:Intel_4004.jpg
-
Las principales funciones de los elementos digitales que forman el Microprocesador son las siguientes: A) Direccionamiento de la instruccin a ejecutar Se realiza mediante el CONTADOR DE PROGRAMA (PC), que
aunque normalmente se ya incrementando en una unidad, puede cargarse con cualquier valor, lo que permite la rotura de la secuencia ordenada en la ejecucin de las instrucciones del programa.
10
-
Esquema modelo Von Neuman
Volver
-
B) Decodificador de instrucciones El decodificador recibe la instruccin en cdigo binario
(cdigo mquina) e interpreta su significado. C) Unidad de Control y Tiempo o Secuenciador Es el componente encargado de generar y transmitir las seales
de gobierno y sincronismo a todo el sistema, para ejecutar la instruccin previamente decodificada.
D) Unidad Lgico-Aritmtica (ALU) Es la encargada de efectuar las operaciones de carcter lgico. y aritmtico. Est gobernada directamente por la Unidad de Control y se encuentra muy relacionada con un
registro de trabajo llamado ACUMULADOR. Normalmente, el Acumulador contiene uno de los Datos u Operandos que, realiza la ALU, as como el resultado de la misma, una vez
ejecutada.
Estructura Bsica del Microprocesador
12
-
Estructura Bsica del Microprocesador E) Registros de trabajos diversos: Los mas importantes son: Stack Pointer o Puntero de pila: Sirve para direccionar algunas posiciones de
memoria en las que se guarda temporalmente el contenido de ciertos elementos significativos de la CPU.
Registro de estado: contiene informacin sobre el estado interno de la CPU. Se compone de una serie de bits, que reciben el nombre de flags o banderas. Los ms usuales son:
Bandera Arrastre aritmtico o noveno bit (C). Bit de desbordamiento en rotaciones y desplazamientos.
Bandera Sobrepasamiento o exceso(V). Usado con aritmtica de complemento a 2, en la que al sumar 2 nmeros con bit de signo, el arrastre de los bits de ms peso puede afectar al de signo.
Bandera Acarreo o arrastre del 4 (H). Bit para emplear con la aritmtica BCD. Bandera Cero (Z). La operacin anterior ha dado resultado nulo o cero. Bandera de interrupcin (I): Flag para el enmascaramiento de ciertas
interrupciones. Bandera Paridad (P). Para comprobacin de trasferencias de datos.
13
-
Estructura Bsica del Microprocesador F) Otros componentes son: Estn los buffer triestado (amplificadores de tres estados)
que adaptan las informaciones con el exterior de la CPU, el generador de seales de reloj que sincroniza el sistema y, finalmente, otros registros auxiliares.
La estructura descrita del microprocesador le confiere la potencia como para aplicarse en casi todos los campos de la industria, comercio, gestin, etc., variando en cada caso solamente el programa de instrucciones y los mdulos de adaptacin con los perifricos exteriores.
Tambin hay que tener en cuenta que la arquitectura tpica de los microprocesadores utiliza un nico bus interno para transferencia de informaciones.
14
-
Sistema bsico con microprocesador
ARQUITECTURA DE UN SISTEMA ALREDEDOR DE UN MICROPROCESADOR
La mquina programada, o sea, el computador consta de tres partes relacionadas entre s, que son:
1. CPU. 2. MEMORIA
3.- UNIDADES DE ENTRADA Y SALIDA (I/O) La CPU ejecuta las instrucciones que le proporciona la Memoria y procesa
los datos recibidos desde los mdulos de entrada o desde la Memoria, para originar unos resultados que salen al exterior por los mdulos de Salida.
15
-
Informaciones que circulan por el bus de una computadora
Por los tres buses circulan las informaciones:
1. Informacin de datos e instrucciones Las instrucciones estn almacenadas siempre en la Memoria,
mientras los datos que procesa u obtiene las instrucciones del programa puede proceder de la Memoria o de los mdulos de
Entrada y Salida. Tiene un bus de 8 bits, 16, 24, 32,64 dependiendo el tipo de procesador, recibe nombre de "bus de datos, bidireccional informacin puede circular entrando o saliendo de la CPU.
16
-
Arquitectura de von Neumann
CPU, Memoria e I/O se comunican a travs de Buses.
I/O Memoria
Address Bus
Control
CPU
Control
Data Bus
Arquitecturas von Neumann
-
Informaciones que circulan por el bus de una computadora
18
-
Informaciones que circulan por el bus de una computadora 2. Informacin de direcciones de la memoria y otros
elementos Se trata de la informacin digital que enva la CPU
a la Memoria y restantes elementos del sistema para seleccionar una posicin o elemento concreto.
Puede haber buses de 8,16,24,32,64,128 bits Se le llama "bus de direcciones". Este bus es unidireccional, puesto que su
informacin siempre procede de la CPU.
19
-
Informaciones que circulan por el bus de una computadora 3. Informacin de control y tiempos Es la informacin que enva la CPU a los elementos del
sistema, o bien recibe de stos, y cuya misin es gobernar e informar el estado del conjunto de componentes que forman el sistema.
Se le llama "bus de control".
20
-
Estructura de buses compartidos
La conexin a los buses en paralelo de todos los componentes de un sistema basado en microprocesador obliga la desconexion total de los que no participan en el intercambio en un momento determinado. En otro caso se produciria un cortocircuito.
21
-
Estructura de buses compartidos Para evitar que los componentes que no participen en una transferencia cortocircuiten el estado de las lneas, todos disponen de buffer triestado, en salida y entrada.
22
-
23
Evolucin del microprocesador 1971: Intel 4004. Nota: Fue el primer
microprocesador comercial. 1972: Intel 8008 1974: Intel 8080, Intel 8085 1975: Signetics 2650, MOS 6502, Motorola 6800 1976: Zilog Z80 1978: Intel 8086, Motorola 68000 1979: Intel 8088 1982: Intel 80286, Motorola 68020 1985: Intel 80386, Motorola 68020, AMD Am386 1987: Motorola 68030 1989: Intel 80486, Motorola 68040, AMD Am486
-
24
Evolucin del microprocesador 1993: Intel Pentium, Motorola 68060, AMD K5, MIPS
R10000 1995: Intel Pentium Pro 1997: Intel Pentium II, AMD K6, PowerPC G3, MIPS R120007 1999: Intel Pentium III, AMD K6-2, PowerPC G4 2000: Intel Pentium 4, Intel Itanium 2, AMD Athlon XP,
AMD Duron, MIPS R14000 2003: PowerPC G5 2004: Intel Pentium M 2005: Intel Pentium D, Intel Extreme Edition con hyper
threading, Intel Core Duo, AMD Athlon 64, AMD Athlon 64 X2, AMD Sempron 128.
2006: Intel Core 2 Duo, Intel Core 2 Extreme, AMD Athlon FX
2007: Intel Core 2 Quad, AMD Quad Core, AMD Quad FX 2008-2014 corei3, corei5, core i7
-
25
Funcionamiento El microprocesador ejecuta instrucciones almacenadas como nmeros
binarios organizados secuencialmente en la memoria principal. La ejecucin de las instrucciones se puede realizar en varias fases: Preselecciona (PreFetch): pre-lectura de la instruccin desde la memoria
principal. Selecciona (Fetch): envo de la instruccin al decodificador. Decodificacin (Decode) de la instruccin: determinar qu instruccin
es y por tanto qu se debe hacer. Lectura de operandos (si los hay)
Ejecucin (Execute): lanzamiento de las mquinas de estado que llevan a cabo el procesamiento.
Escritura (Store) de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentacin. La duracin de estos ciclos viene determinada por la frecuencia de reloj, y nunca podr ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal. El microprocesador se conecta a un oscilador, normalmente un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo.
-
26
Ciclo de instruccin ALU
-
27
EJECUCIN DE LAS INSTRUCCIONES Para que un programa pueda ser ejecutado por una computadora, ha de
estar almacenado en la memoria central (memoria RAM). El microprocesador tomar una a una las instrucciones que lo componen e ir realizando las tareas correspondientes.
-
28
Velocidad Actualmente se habla de frecuencias de Gigaherzios (GHz.), o de
Megaherzios (MHz.). Lo que supone miles de millones o millones, respectivamente, de ciclos por segundo.
El indicador de la frecuencia de un microprocesador es un buen referente de la velocidad de proceso del mismo, pero no el nico.
La cantidad de instrucciones necesarias para llevar a cabo una tarea concreta, as como el ancho de banda cantidad de instrucciones ejecutadas por ciclo ICP, son los otros dos factores que determinan la velocidad de la CPU.
La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones disponible, mientras que el ndice ICP depende de varios factores, como el grado de supersegmentacin y la cantidad de unidades de proceso o "pipelines" disponibles, entre otros. La cantidad de instrucciones necesarias para realizar una tarea depende directamente del juego de instrucciones.
-
29
Unidad aritmtico lgica La Unidad Aritmtico Lgica Arithmetic Logic Unit (ALU), es un
circuito digital que calcula operaciones. Las operaciones que realiza son las siguientes: suma, resta, multiplicacin, divisin, comparacin (mayor que, menor que, igual a) y aquellas que trabajan con dgitos binarios (10 que se conoce como operaciones lgicas: AND, NOR, NOT, NAND, OR, X-OR, etc) entre dos nmeros.
Los ms complejos ALU son construidos dentro de los chips de microprocesadores modernos como el Core Duo Quad, Core i3, i5, i7. Estos procesadores tienen dentro de ellos un ALU muy complejo y poderoso que pueden tener mltiples ncleos, cada ncleo con mltiples unidades de ejecucin, cada una de ellas con mltiples ALU.
Muchos otros circuitos pueden contener ALU: GPU (Graphics Processing Unit) como los que estn en las tarjetas grficas NVidia y ATI, FPU (Floating Point Unit) como el viejo coprocesador numrico 80387, y procesadores digitales de seales como los que se encuentran en tarjetas de sonido Sound Blaster, lectoras de CD y las TV de alta definicin.
-
30
Ejemplos GPU y Coprocesador
Graphics Processing Unit Coprocesador numrico Intel 287
http://es.wikipedia.org/wiki/Imagen:80287-82.jpghttp://es.wikipedia.org/wiki/Imagen:6600GT_GPU.jpg
-
31
Componentes ALU El registro de estado (Flags) indican el estado en el que
se encuentran despus de una operacin y que habrn de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo. Cada modelo de procesador tiene sus propios registros de estados
pero los ms comunes son: Z = Zero flag. el resultado es cero O = Overflow flag. Fuera de rango V = Overflow flag. el resultado supera el nmero de bits que puede
manejar el ALU P = Parity flag. paridad del nmero de 1 en los datos I = Interrupt flag. C = Carry flag. acarreo de la operacin realizada AC = Carry Auxiliar flag. acarreo auxiliar del cuarto al quito bit.
-
32
Instrucciones del ALU Se conoce como set de instrucciones al conjunto de instrucciones que es
capaz de entender y ejecutar un microprocesador. Las instrucciones se clasifican segn su funcin en:
Instrucciones de transferencia de datos. Estas instrucciones mueven datos (que se consideran elementos de entrada/salida) desde la memoria hacia los registros internos del microprocesador, y viceversa. Tambin se usan para pasar datos de un registro a otro del microprocesador. Existen algunas instrucciones que permiten mover no slo un dato, sino un conjunto de hasta 64 KBytes con una sola instruccin.
Instrucciones de clculo. Son instrucciones destinadas a ejecutar ciertas operaciones aritmticas, como por ejemplo sumar, restar, multiplicar o dividir, o ciertas operaciones lgicas, como por ejemplo AND, OR, as como desplazamiento y rotacin de bits.
Instrucciones de transferencia del control del programa. Permiten romper la secuencia lineal del programa y saltar a otro punto del mismo. Pueden equivaler a la instruccin GOTO que traen muchos lenguajes de programacin.
Instrucciones de control. Son instrucciones especiales o de control que actan sobre el propio microprocesador. Permiten acceder a diversas funciones, como por ejemplo activar o desactivar las interrupciones, pasar rdenes al coprocesador matemtico, detener la actividad del microprocesador hasta que se produzca una interrupcin, etc.
-
33
Arquitecturas de Microprocesadores La arquitectura de microprocesadores es el diseo conceptual y la
estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripcin funcional de los requerimientos y las implementaciones de diseo para varias partes de una computadora, con especial inters en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria.
Tambin suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras segn los requerimientos de funcionalidad, rendimiento y costo.
-
34
Arquitecturas de Microprocesadores CISC es un modelo de arquitectura de computadores (Complex Instruction
Set Computer). Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposicin a la arquitectura RISC.
De Arquitectura computacional, RISC (Reduced Instruction Set Computer), Computadora con Conjunto de Instrucciones Reducido.
-
35
Arquitecturas de Microprocesadores De Arquitectura computacional, RISC (Reduced Instruction
Set Computer), Computadora con Conjunto de Instrucciones Reducido. Es un tipo de microprocesador con las siguientes caractersticas fundamentales:
-
Configuracin tpica de un Microprocesador En la figura se ha tratado de generalizar los conjuntos de pines dedicados a una funcin especifica, al igual que la mayora de los microprocesadores existentes en el mercado.
36
-
Funcin de los pines Los conjuntos de patillas caractersticas se pueden agrupar de la siguiente manera:
A)Lneas de direccionamiento Con referencia a la figura 2-6 existen 16 lneas de direccionamiento, que corresponden a los pines numerados desde el 25 al 40, cuya misin es transferir la direccin de la posicin de memoria o elemento seleccionado por la CPU.
B) Lneas de datos
Son 8, que configuran al bus de instrucciones y datos, y que en el microprocesador hipottico corresponden a los pines 13 al 20.
C) Entrada de alimentacin En la actualidad casi todos los microprocesadores requieren una sola tensin de alimentacin,
que adems se procura coincida con la necesaria para los sistemas TTL, es decir, + 5 V. Los pines 23 y 24 reciben dicha alimentacin. D) Cristal o red R-C
Los modernos microprocesadores disponen internamente de un generador de reloj, cuya frecuencia se controla exteriormente mediante un cristal o una red R-C, aplicables entre los pines 21 y 22.
E) Salida de las seales de reloj El generador interno del microprocesador produce dos seales normalmente opuestas, que
sirven para sincronizar los elementos del sistema qu lo precise. Las salidas se realizan por los pines 1 y 2.
F) Peticin de RESET y Reconocimiento de RESET (RESET/IN y RESET/OUT) Por la lnea de entrada al microprocesador RESET IN se provoca una peticin del estado de
RESET que se trata como una interrupcin que sirve para inicializar el sistema. RESET OUT es un pin de salida de la CPU (5) que informa del estado de RESET, o sea, se trata de una informacin de reconocimiento de un estado.
37
-
Funcin de los pines G) HOLD y HOLDA La lnea de entrada HOLD sirve para solicitar la entrada de la CPU en un
estado especial denominado HOLD. HOLDA es una seal de reconoci-miento del estado HOLD.
El estado HOLD deja con alta impedancia los buses de direccionamiento, datos y control, para poder ser empleados desde el exterior para la realizacin del Acceso Directo a Memoria (DMA).
H) READY Lnea que sirve para sincronizar la CPU con memorias lentas. Al activarse,
el procesador se detiene. I) Interrupciones Las lneas de "interrupcin" sirven para detener el procesamiento normal
que lleva a cabo la CPU y permite a sta saltar a otros programas que atienden las interrupciones.
Dentro de los diferentes tipos de interrupciones las hay "no enmascarables"
que realizan siempre que se provocan, en cambio hay otras llamadas "enmascarables" que slo se llevan a cabo si un bit del Registro d Estado, el flag de interrupcin, est a cierto nivel.
38
-
Tipos de Memorias Integrada Existen dos tipos de memorias integradas:
RAM (Random Acces Memory). Memorias de Acceso
Aleatorio.Lectura y escritura, voltil.
ROM(Read Only Memory). Memorias de slo lectura, no
voltil.
RAM
Existen 2 tipos de memoria RAM: Estticas y Dinmicas.
39
-
Tipos de Memorias RAM
Memoria Ram Clula Esttica.
Memoria Ram Clula Dinmica
40
-
Memorias RAM 1. Las Celulas dinamicas de las memorias RAM se basan
en la carga de un condensador mediante la conduccin de un transistor de tipo MOS.
41
-
Memorias ROM La constitucin de las memorias ROM se basa en la realizacin de CONEXIONES en los ctodos de una matriz de diodos.
42
http://upload.wikimedia.org/wikipedia/commons/3/3d/ROM_BIOS.jpg
-
Tipos de ROM CLASE DE ROM TIPO DE CONEXIN GRABACION
De Mascara Diseo en una Fabrica En Fabrica
PROM Rotura de fusibles En programador
EPROM Alteracin elctrica Programador y rayos ultravioleta.
EEPROM Alteracin elctrica Programa y borrado con Programador
Memoria PROM Un PROM es un chip de memoria en la cual usted puede salvar un programa. Pero una
vez que se haya utilizado el PROM, usted no puede reusarlo. Memoria EPROM
Un EPROM es un tipo especial de PROM que puede ser borrado exponindo a la luz ultravioleta. EPROM Erasable Programmable Read-Only Memory (ROM programable
borrable de slo lectura). Inventado por el ingeniero Dov Frohman. Memoria EEPROM
Es un tipo de memoria ROM que puede ser programado, borrado y reprogramado elctricamente.
43
-
MANEJO DE LAS ENTRADAS Y SALIDAS DEL SISTEMA La interface entre los perifricos y el sistema de microprocesador
requiere circuitos de adaptacin que pueden estar implementados con componentes normales MSI (decodificadores, buffer, etc.), con circuitos integrados LSI de propsito general, como los PIA o PPI (de adaptacin paralelo) y los UART (de adaptacin serie), o tambin con controladores especifcos para determinados perifricos.
Existen tres procedimientos importantes para la manipulacin de los perifericos:
1. Por software. Consiste en un proceso de "consultas sucesivas" los perifricos realizadas por programa, para detectar quien de ellos solicita la atencin de la CPU para proceder a realizar una entrada o salida de informacin. Atiende al periferico cuale corresponde por programa.
44
-
MANEJO DE LAS ENTRADAS Y SALIDAS DEL SISTEMA 2. Por Interrupciones. Los perifricos provocan una interrupcin a la
CPU para reclamar la atencin. La interrupcin es por prioridad.
3. Acceso Directo a Memoria (DMA). Cada vez que un perifrico
desea realizar una entrada o salida de informacin se lo comunica a!
controlador DMA, que detiene la CPU mediante una seal HOLD y a
continuacin se produce la transferencia directa de los datos desde
la memoria al perifrico (salida) o viceversa. La transferencia se
realiza sin intervencin de la CPU, por lo cual se alcanzan grandes
velocidades.
45
-
Microprocesador Intel 8086. En Junio de 1978 Intel saca a la venta el primer
microprocesador de 16 bits.
El descubrimiento de la tecnologa HMOS propici el aumento de la densidad de integracin y el paso a la tecnologa VLSI.
46
-
Arquitectura del 8086/8088
El 8086
Estos microprocesadores
tiene 2 procesadores y son:
EU
Unidad de ejecucin
(Execution Unit).
BIU
Unidad de interfaz con
el Bus (Bus Interface
Unit). Es la
responsables de la
comunicacin externa
del procesador. Se
encarga de
proporcionar las
direcciones de la
memoria y transmitir y
recibir datos e
instrucciones.
47
-
Registros del 8086
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
48
-
Registros de uso general
AX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits o como dos registros separados de 8 bits (byte superior e inferior) cambiando la
X por H o L segn queramos referirnos a la parte alta o baja respectivamente. Por ejemplo,
AX se descompone en AH (parte alta) y AL (parte baja). Evidentemente, cualquier cambio sobre AH o AL altera AX
AX = Acumulador.
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
49
-
Registros de propsito general
Arquitectura de computadoras II El 8086
BX = Base. Se usa como registro base para referenciar direcciones de memoria con direccionamiento indirecto.
CX = Contador. Se utiliza comnmente como contador en bucles y
operaciones repetitivas de manejo de cadenas.
DX = Datos. Usado en conjuncin con AX en las operaciones de multiplicacin y divisin. En las de entrada y salida se emplea para especificar la direccin del puerto E/S.
Arquitectura del Microproceasador 8086
50
-
Registros de segmento: Definen reas de 64 KB dentro del espacio de direcciones de 1 MB
del 8086. CS = Registro de segmento de cdigo (code segment). Contiene la direccin del segmento con las instrucciones del programa. DS = Registro de segmento de datos (data segment). Segmento del rea de datos del programa. SS = Registro de segmento de pila (stack segment). Segmento de pila. ES = Registro de segmento extra (extra segment). Segmento de ampliacin para zona de datos.
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
51
-
Formacin de una Direccin Fsica
Arquitectura de computadoras II El 8086
0000
4 bits
Direccin de segmento
Direccin efectiva, lgica u offset
Direccin fsica
EL REGISTRO DE SEGMENTO SE DESPLAZA 4 BITS HACIA LA IZQUIERDA (MULTIPLICACIN x16)
20 BITS
Siempre que una memoria es accesada , se genera una direccin fsica a partir de la direccin lgica.
Arquitectura del Microproceasador 8086
52
-
Segmento de Memoria
Un segmento es un rea continua de memoria que puede tener hasta 64K-Bytes, que debe comenzar en una localidad de memoria cuya direccin sea lmite de 16 bytes (cantidad denominada prrafo) y que puede traslaparse con otros segmentos.
SEGMENTO
Memoria
0
FFFFF
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
53
-
Registros punteros: Direccion de memoria=RS*16+desplazamiento(punteros)
Puntero de instrucciones o contador de
programa
Arquitectura de computadoras II El 8086
IP = Puntero de instruccin (instruction pointer). Marca el desplazamiento de la instruccin en curso dentro del segmento de cdigo. Es automticamente modificado con la lectura de una instruccin.
Direccion efectiva=CS*16+IP
Arquitectura del Microproceasador 8086
54
-
Registros punteros de pila
SP = Puntero de pila (stack pointer). Apunta al inicio de la pila SS. BP = Puntero base (base pointer). Es un puntero de base, que apunta a una zona dentro de la pila SS. Direccion efectiva=SS*16+BP
Direccion efectiva=SS*16+SP
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
55
-
Registros punteros ndices DI y SI:
Arquitectura de computadoras II El 8086
SI = ndice fuente (source index). Apuntan al segmento de datos. DI = ndice destino (destination index). Apuntan al segmento de datos y/o segmentoextra
Direccin efectiva=DS*16+SI Direccin efectiva=DS*16+DI
Arquitectura del Microproceasador 8086
56
-
Registro de estado o de indicadores (flags)
Arquitectura de computadoras II El 8086
Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecucin de un programa.
Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condicin, que reflejan los resultados de operaciones del programa.
Arquitectura del Microproceasador 8086
57
-
Bit
Seala desbordamiento aritmtico Desbordamiento (Overflow Flag") O
Indica la direccin de las operaciones. Direccin ("Direction Flag") D
Este bit controla el estado del sistema de interrupciones enmascarables . Cuando est activo (1) permite las interrupciones; el estado inactivo (0) las deshabilita.
Interrupcin ("Interrupt Flag")
I
Si est activo, el procesador genera automticamente una interrupcin despus de la ejecucin de cada instruccin, lo que permite controlar paso a paso la ejecucin del programa. Este bit debe estar normalmente inactivo (a 0).
Detencin ("Trap Flag")
T
Si est activo indica que el resultado de operacin o de comparacin son negativos.
Signo ("Sign Flag") S
Est activo si el resultado de operacin es cero o resultado de comparacin igual.
Cero ("Zero Flag") Z
Indicador de ajuste en operaciones aritmticas con cantidades BCD
Acarreo auxiliar A
Si est activo Indica un nmero par de bits activos (bits cuyo contenido es 1). Esta informacin es til cuando el procesador controla transmisiones de datos.
Paridad ("Parity Flag")
P
Indicador de arrastre del bit de mayor orden, que puede ocurrir en las operaciones aritmticas suma y resta.
Acarreo ("Carry Flag")
C
Uso Indicador de:
Arquitectura de computadoras II El 8086
Arquitectura del Microproceasador 8086
58
-
8086. Lgica digital. Arquitectura.
59
-
8086. Lgica digital. Chip.
60
-
Pines 8086 El sistema de entradas y salidas del microprocesador 8086 est diseado en el formato DIP (Dual Inline Package), que consiste en 40
patas (o pines) en total -20 en el lado izquierdo, 20 en el. Las funciones de los pines son las siguientes: GND (Masa) AD0-AD15 (Bus de direcciones y DATOS) NMI (Entrada de interrupcin no enmascarable) INTR (Entrada de interrupcin enmascarable) CLK (Entrada de reloj generada por el 8284) GND (Masa) RESET (Para inicializar el 8088) READY (Para sincronizar perifricos y memorias lentas) /TEST /INTA (El 8088 indica que reconoci la interrupcin) ALE (Cuando est uno indica que salen direcciones por AD, en caso contrario, es el bus de datos) /DEN (habilita los transceptores 8286 y 8287, esto sirve para que no se mezclen los datos y las direcciones). DT/R (Data transmit/receive: se conecta al pin de direccin de los chips recin indicados). IO/M (Si vale 1: operaciones con ports, si vale 0: operaciones con la memoria) /WR (Cuando vale cero hay una escritura) HLDA (Hold Acknowledge: el 8086 reconoce el HOLD) HOLD (Indica que otro integrado quiere aduearse del control de los buses, generalmente se usa para DMA o acceso directo a
memoria). /RD (Cuando vale cero hay una lectura) MN/MX (Cuando esta entrada est en estado alto, el 8088 est en modo mnimo, en caso contrario est en modo mximo) /SSO (Junto con IO/M y DT/R esta salida sirve para determinar estados del 8086) Pin 24, QS1: Estado de la cola de instrucciones (bit 1). Pin 25, QS0: Estado de la cola de instrucciones (bit 0). Pin 26, S0: Bit de estado 0. Pin 27, S1: Bit de estado 1. Pin 28, S2: Bit de estado 2. Pin 29, /LOCK: Cuando vale cero indica a otros controladores del bus (otros microprocesadores o un dispositivo de DMA) que no
deben ganar el control del bus. Se activa ponindose a cero cuando una instruccin tiene el prefijo LOCK. Pin 30, RQ/GT1: Es bidireccional y tiene la misma funcin que HOLD/HLDA en modo mnimo. Pin 31, RQ/GT0: Como RQ/GT1 pero tiene mayor prioridad. Pin 32 RD (Cuando vale cero hay una lectura) Pin 33 MN/MX (Cuando esta entrada est en estado alto, el 8088 est en modo mnimo, en caso contrario est en modo mximo) Pin 34, Esta salida siempre est a uno. Pin 35 A19/S6 (Bus de direcciones/bit de estado) Pin 36 A18/S5 (Bus de direcciones/bit de estado) Pin 37 A17/S4 (Bus de direcciones/bit de estado) Pin 38 A16/S3 (Bus de direcciones/bit de estado) Pin 39 A15 (Bus de direcciones) Pin 40 Vcc (+5V)
61
-
8086. Lenguaje Assembler Qu puedo expresar?
Vamos a clasificar el repertorio en 7 tipos de instrucciones:
Instrucciones de transferencia de datos (e.g. MOV).
Aritmtico-lgicas (e.g ADD).
Desplazamiento y rotacin (e.g. SHL).
Control del secuenciamiento del programa (e.g. JZ, TEST).
Control de programa (e.g. RET).
Control del sistema (e.g. INT).
62
-
Instrucciones de transferencia de datos MOV destino, fuente.
Transfiere una palabra de la fuente al punto de destino. Estn optimizadas para trabajar con el registro AX.
Ejemplo: MOV AL, 5.
IN fuente. Lleva a AX la palabra fuente.
PUSH fuente, POP destino. Introduce/Extrae fuente en/de la pila;
63
-
Instrucciones Aritmticas
ADD destino, fuente. Suma fuente y destino y coloca el resultado en destino. Est optimizada para utilizar AX.
SUB destino, fuente. Igual para la resta.
NEG destino. Realiza el C2 del destino.
MUL fuente; DIV fuente. Se multiplica fuente por el contenido de AX y se deja el resultado en AX; Igual para la divisin.
INC destino; DEC destino. Suman o restan 1 al destino. Usadas para el control de bucles.
64
-
Instrucciones Lgicas
AND destino, fuente;
OR destino, fuente;
XOR destino, fuente.
Se hace la and/or/xor lgica y se almacena en destino.
65
-
Desplazamiento y rotacin.
SHL destino. Se desplaza un bit a la izquierda destino
SHR destino. Se desplaza a la derecha.
Siempre se mete un 0 en el bit que nos falta.
ROL destino.
ROR destino.
Aqu los bits rotan.
66
-
Instrucciones de salto.
JMP etiqueta. Salto incondicional a la etiqueta (dentro del segmento).
JMP etiqueta, segmento. Salto incondicional a la etiqueta contenida en un cierto segmento.
JE etiqueta; JZ etiqueta; JNE etiqueta; JNZ etiqueta; JS etiqueta; JNS etiqueta; Saltar si es igual (Z = 1), si es cero (Z = 1), si no es igual (Z = 0), si no es cero (Z = 0), si es negativo (N = 1), si no es negativo (N = 0).
TEST destino, fuente. Se hace la and lgica para modificar los flags, pero el resultado no se almacena en ningn lado.
COMP destino, fuente. Igual, pero en lugar de la and lgica se hace la resta.
JL; JNGE; JNL; JGE; JLE; JNG; JNGE; JG. Igual que los otros saltos, pero con restricciones relacionales, para dar ms flexibilidad al programador.
LOOP etiqueta. Salta a etiqueta en funcin del valor de CX. Primero decrementa CX. Si no es 0, entonces salta a etiqueta. Optimizan los bucles.
67
-
Instrucciones de control de programa.
CALL etiqueta. Llama a la subrutina, que se tiene que encontrar dentro del segmento.
CALL etiqueta, segmento. La subrutina puede estar en otro segmento.
RET. Retorno de subrutina dentro del segmento.
RETS. Retorno de subrutina desde otro segmento.
RET numero. Retorno de subrutina y ajuste de la pila.
68
-
Instrucciones de control del sistema.
INT. Interrupcin por software. Tiene un operando que indica el tipo de interrupcin.
HLT. Paro de la CPU.
69
-
8086. Lgica digital. Direccionamiento a memoria. El 8086 tiene hasta 25 modos de direccionamiento.
Esto proporciona una gran flexibilidad. Enumeramos los distintos elementos que pueden participar en el clculo de una direccin Direccin inicial de segmento: CS, DS o SS.
Memoria 220; registro 16 bits (216). Se multiplica por 16.
Direccin base (para subrutinas): BX o BP.
Una segunda base de 8 bits: SI o DI.
Decalage: Se utiliza para compilar datos, organizar memoria y reubicar de una manera ms rpida y sencilla. No puede modificarse en tiempo de ejecucin.
70
-
8086. Lgica digital. Direccionamiento a memoria. Instruccin INC 6[BX][DI] tiene a su nico operando en
memoria. La instruccin incrementa el valor del operando.
Se accede a l con un direccionamiento que usa la base (contenida en BX), el ndice (contenido en DI) y un decalage de 6. Si suponemos que DS = 3.000, BX = 4.000 y DI = 20, entonces la direccin de desplazamiento dentro del segmento es 6 + 4.000 + 20 = 4.026.
Pero primero hay que multiplicar por 16 (10 en hexadecimal) a DS, lo que nos dice que el segmento empieza en la direccin 30.000 de memoria. Por lo tanto estaremos accediendo a la posicin 34.026 de memoria para obtener el operando de la instruccin.
71
-
8086. Lgica digital. Interrupciones.
Permite 256 tipos diferentes de interrupciones.
Cuando se ejecuta una interrupcin, se termina de ejecutar la instruccin actual y se salva el estado de la CPU en la pila.
Salta a la subrutina cambiando CS e IP por la direccin de la subrutina dentro de la memoria.
72
-
73
Lenguaje de Programacion Es un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones, y utilizado para controlar el comportamiento fsico y lgico de una mquina. Lenguajes de bajo nivel Son lenguajes de programacin que se acercan al funcionamiento de una computadora. El lenguaje de ms bajo nivel es, por excelencia, el cdigo mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros y memoria de la computadora de forma directa. Lenguaje ensamblador El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador.
-
74
Ventajas y Desventajas del Lenguaje
Ensamblador Ventajas
Velocidad: De 5 a 10 veces mas rapidos
Eficiencia de tamao: Ocupa la mitad de tamao
Flexibilidad: Se pueden crear segmentos de codigo imposibles en otros lenguajes.
Desventajas
Tiempo de programacin: Mas dificil de Aprender, entender y depurar
Programas fuente grandes
Peligro de afectar recursos inesperadamente
Falta de portabilidad
-
75
[etiqueta] [instruccin|directiva [operandos]] [;comentario]
Son los campos de la proposicin.Los campos se
separan por caracteres blancos: caracteres de
espacio y/o de tabulacin. Todos los campos son
opcionales, pero el campo operandos slo pueden
estar presente si existe el campo
instruccin|directiva.
Estructura de un Programa en Ensamblador
-
76
Las etiquetas asignan un nombre a una instruccin.
Esto permite hacer referencia a ellas en el resto del
programa. Pueden tener una mximo de 31
caracteres y deben terminar en :.
Las directivas son comandos que afectan al
ensamblador, no al procesador. Se puede usar para
preparar segmentos y procedimientos, definir
smbolos, reservar memoria, etc. La mayora de las
directivas no generan cdigo objeto.
Estructura de un Programa en Ensamblador
-
77
Modos de Direccionamientos Los modos de direccionamiento indican la manera de
obtener los operandos y son:
Direccionamiento de Registro
Direccionamiento Inmediato
Direccionamiento Directo
Direccionamiento Indirecto.
Direccionamiento Indirecto con Indice o Indexado
Direccionamiento con base e indice o Indexado a base
El tipo de direccionamiento se determina en funcin de los
operandos de la instruccin.
-
78
Modos de Direccionamientos La instruccin MOV realiza transferencia de datos desde un
operando origen a un operando destino. Su formato es el siguiente:
MOV destino, origen
Direccionamiento de registro
Transfiere un byte o palabra desde un registro fuente hasta un
registro destino.
NOTA! No se permite el acceso entre registros de segmentos ni de distintos tamaos. MOV AX,CX ;transfiere el contenido de
CX en AX
-
79
Direccionamiento inmediato
Transfiere un byte o palabra de datos inmediatos hacia
el operando destino. Este modo es usado para
inicializar registros o localidades de memoria y para
operar sobre ellos con valores constantes de datos.
MOV AX,0ABCDh ;carga en AX el valor 0ABCDh.
Modos de Direccionamientos
-
80
Modos de Direccionamiento Direccionamiento directo
Cuando el operando es una direccin de memoria. sta puede ser especificada con su valor entre [ ], o bien mediante una variable definida previamente (Se ver ms adelante).
Ejemplo: MOV AL,[1234H]; almacena en
AL el contenido de la direccin de memoria DS:1234.
-
81
Direccionamiento indirecto
Cuando el operando esta en memoria en una posicin contenida en un registro (BX, BP, SI o DI).
MOV AX,[BX] ; almacena en AX el contenido de la direccin de memoria DS:[BX].
Modos de Direccionamiento
-
82
Direccionamiento Indirecto con Indice o Indexado
El operando se encuentra en una direccin determinada
por la suma de un registro de segmento*16, un
registro de ndice, SI o DI y un desplazamiento de 8
16 bits.
Ejemplos:
MOV AX,[DI+DESP] MOV AX,desp[DI]
ADD [SI+DESP],BX ADD desp[SI],BX
Modos de Direccionamiento