microprocesadores 30 de septiembre 2014

82
 Docente: Ing. Edgar Ortuño Ríos 1

Upload: will-montero

Post on 05-Oct-2015

12 views

Category:

Documents


0 download

DESCRIPTION

Funcionamiendo y esquema de los Microprocesadores en estudio a profundidad.

TRANSCRIPT

  • 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