SlideShare una empresa de Scribd logo
Estructura de la computadora Präsentation .    Estructura y Prog. de Computadoras
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Computador Memoria Principal Entrada Salida Sistema de interconexión periféricos Líneas de comunicación Unidad Central de Proceso CPU Computadora
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Memoria Secundaria Memoria Principal CPU Periféricos Bus de Datos Bus de Direcciones Bus de Control Ejemplo:
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Ejemplo:
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Computer Unidad Aritmética y  Lógica Unidad de Control Interconexión Interna de la CPU Registros CPU I/O Memory System Bus CPU
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras CPU Memoria de control Unidad de control de registros y  decodificadores Lógica Secuencial Registers Internal Bus Unidad de Control ALU Control Unit
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras CPU Memoria de control Unidad de control de registros y  decodificadores Lógica Secuencial Registers Internal Bus Unidad de Control ALU Control Unit La unidad de control controla el funcionamiento de la CPU: controla las transferencias de datos desde hacia la CPU y controla la ALU.
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Función de la unidad de control: Para cada instrucción hay un único código que ejecutará esa instrucción. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Función de la unidad de control: Para cada instrucción hay un único código que ejecutará esa instrucción. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute. decoder codop Se activa sólo una salida
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Componentes del computador:
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Tareas de la CPU: Captar instrucción:  la CPU lee una instrucción de la memoria. Interpretar instrucción:  la instrucción se decodifica para determinar qué acción es necesaria. Captar datos:  la ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo I/O. Procesar datos:  en la ejecución se puede exigir llevar a cabo alguna operación aritmética o lógica con los datos. Escribir datos:  los resultados de la ejecución pueden exigir escribir datos en la memoria o en un módulo I/O.
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Registros ALU Unidad de  Control Bus de  control Bus de  datos Bus de direcciones Bus del sistema
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros visibles: pueden referenciarse en las instrucciones de máquina. pueden ser: Uso general Datos Direcciones Códigos de condición
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras ¿cuántos registros de propósito general? Óptimo entre 8 y 32 Si hay muy pocos registros entonces se necesitan demasiados accesos a memoria. Más registros no reducen considerablemente las referencias a memoria y hace la CPU más compleja.
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras ¿De cuántos bits deben ser los registros? Deben ser de un número suficiente tal que se puedan manejar las direcciones a memoria. Además deben ser capaces de manejar una palabra completa. A veces se combinan dos registros para conformar uno solo.
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Ejemplos de Unam de registros:
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: se usan para controlar el funcionamiento de la CPU: PC =  program counter : contiene la dirección de la instrucción a captar IR =  instruction register : contiene la última instrucción captada MAR =  memory address register : contiene la dirección de una posición de memoria MBR =  memory buffer register : contiene la palabra de datos a escribir en memoria, o la palabra leída más recientemente
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: Adicionalmente se cuenta con  PSW =  program status word : Signo:  contiene le bit de signo del resultado de última operación Cero:  puesto a uno cuando el resultado es 0 Acarreo:  puesto a uno si en la suma hay acarreo o en la resta hay un adeudo del bit más significativo Igual:  puesto a uno si el el resultado de una comparación lógica es la igualdad Desbordamiento:  Usado para indicar desbordamiento aritmético
FI Präsentation Unidad de control .    Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: Adicionalmente se cuenta con  PSW =  program status word : (cont…) Interrupciones:  usado para permitir o inhabilitar interrupciones Supervisor:  indica si la CPU funciona en modo supervisor o usuario. Únicamente en modo supervisor se pueden ejecutar ciertas instrucciones privilegiadas y se puede acceder a ciertas áreas de memoria
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 1. Recuperar la siguiente instrucción desde memoria (apuntada por el  program counter ) y luego incrementar el  program counter . 2. Decodificar el patrón de bits en el registro de instrucción IR 3. Ejecutar la instrucción indicada en el registro de instrucción IR Ciclo de instrucción
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras Ciclo  fetch  (captación): FUNCION:  Lleva la siguiente instrucción de la memoria a la CPU El  program counter  tiene la dirección de la siguiente instrucción. El procesador capta la instrucción de la memoria direccionada por el PC. Se incremente PC en 1. El código de la instrucción se carga en IR.
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras Ciclo  decode  (decodificación): FUNCION:  Decodifica los bits presentes en IR Interpreta el código de operación.
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras Ciclo  execution  (ejecución): FUNCION:  Ejecuta la instrucción. Procesador-memoria:  transferencia CPU  ↔ memoria Procesador-I/O:  transferencia CPU ↔ módulo I/O Procesamiento de datos:  operaciones aritméticas o lógicas Control:  cambio de secuencias (eje: JUMP), etc. Combinación de las anteriores
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 1. El PC contiene el valor 300. Se carga esta instrucción en IR (esto implica el uso de MAR y MBR) Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 2. Los primeros 4 bits de IR (“1”) indican que el acumulador AC se va a cargar con un dato de la memoria. Los restantes 12 bits especifican la dirección (es decir “940”). Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 3. El registro de PC se incrementa y se capta la siguiente instrucción. Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 4. Los primeros 4 bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC. Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 5. El registro PC se incrementa en 1 y se capta la siguiente instrucción. Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras 6. Los primeros 4 bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC se almacena en la posición 941. Ejemplo:
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan?
FI Präsentation Ciclos fetch, decode, exe .    Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan? R/. Tres
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar el siguiente conjunto de instrucciones : 1.- Instrucciones de transferencias de datos 2.- Instrucciones aritméticas  3.- Instrucciones lógicas  4.- Control de flujo  5.- Entrada / Salida
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 1.- Instrucciones de transferencias de datos MOVE transferir registros en la CPU STORE registro  -> memoria LOAD memoria  -> registro CLEAR pone un registro en ceros SET pone un registro en unos PUSH introduce en la pila POP extrae en la pila
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 1.- Instrucciones de transferencias de datos Acciones: Transfiere datos de una posición a otra. Si se implica a la memoria: determina la dirección de la memoria inicia lectura/escritura en memoria
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas ADD suma dos operandos SUBSTRACT resta dos operandos MULTIPLY multiplica dos operandos DIVIDE divide dos operandos ABSOLUTE calcula valor absoluto del operando NEGATE cambia el signo del operando INCREMENTE sube en 1 el operando DECREMENTE baja en 1 el operando
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición.
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 3.- Instrucciones lógicas  AND Y lógico bit a bit OR O lógico bit a bit NOT no lógico bit a bit XOR o exclusivo lógico bit a bit TEST evalúa condiciones COMPARE comparación de dos operandos SHIFT desplazamiento izquierda o derecha ROTATE desplazamiento cíclico
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 3.- Instrucciones lógicas  Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición .
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 4.- Control de flujo  JUMP salto incondicional JUMP CON salto condicional JUMP SUB salto a subrutina RETURN retorno de subrutina SKIP incrementa PC en 1 SKIP CON incremento condicional de PC en 1 HALT detiene la ejecución del programa WAIT detiene la ejecución hasta una condición NOP no ejecuta operación alguna
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 4.- Control de flujo  Acciones : Actualiza el contador de programa. En el caso de llamadas y retornos de subrutinas, gestiona la transferencia y enlace de parámetros.
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 5.- Entrada / salida INPUT transferir I/O  -> memoria o registro OUTPUT transferir memoria o registro  -> I/O START I/O inicializa dispositivo I/O TEST I/O transfiere información de estado de I/O
FI Conjunto de instrucciones .    Estructura y Prog. de Computadoras 5.- Entrada / salida Acciones: Cursa una orden a un módulo de E/S En el caso de E/S asignada en memoria, determina la dirección de memoria correspondiente.
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940)  %( A = A + (940)) Los operandos son A y el contenido de 940.
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940)  %( A = A + (940)) Los operandos son A y el contenido de 940. ¿Cómo se pueden referenciar los operandos? R/. Con los modos de direccionamiento.
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras Número (N) Opcode Instrucción Instrucción
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras Inmediato Directo (o absoluto) Indirecto Registro Indirecto con registro Desplazamiento (Indexado)
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras Operand Opcode Instruction 1. Inmediato
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 1. Inmediato Operando es parte de la instrucción Operando = N Ej: ADD 5 Suma 5 al acumulador 5 es un operando No hay referencia adicional a memoria Rápido Rango limitado
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 2. Directo (o absoluto) Address A Opcode Instruction Memory Operand
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 2. Directo (o absoluto) El operando está en la dirección referenciada por N Operando = (N) Ej: ADD (941)  %A = A + (941) Hay sólo un acceso a la memoria
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 3. Indirecto Address A Opcode Instruction Memory Operand Pointer to operand
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 3. Indirecto Operando está en la memoria que direcciona la memoria direccionada por N Operando = ((N)) Existe acceso múltiple a la memoria para encontrar el operando Este direccionamiento es muy lento
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 4. Registro Register Address R Opcode Instruction Registers Operand
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 4. Registro El operando es un registro de la CPU Operando = Registro indicado por N, RN Número limitado de registros Instrucción rápida Instrucción corta No acceso a memoria Espacio de direcciones limitado
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 5. Indirecto con registro Register Address R Opcode Instruction Memory Operand Pointer to Operand Registers
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras El operando está en la memoria direccionada por un registro. Operando = (RN) Hay un acceso menos a memoria que en direccionamiento indirecto 5. Indirecto con registro
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras 6. Desplazamiento Register R Opcode Instruction Memory Operand Pointer to Operand Registers Address A +
FI Präsentation Modos de direccionamiento .    Estructura y Prog. de Computadoras El número N de la instrucción se parte en 2: una parte N1 indica un registro y otra indica una dirección N2 Operando = (RN1 + N2) 6. Desplazamiento
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Esta operación se podría hacer en un microprocesador teniendo las variables X, Y, Z almacenadas en la memoria, por ejemplo: X en la posición 500, J en la 501 y K en la 502, y ejecutando las siguientes instrucciones: Cargar el contenido de 500 en el acumulador. Sumar al acumulador el contenido de 501. Sumar al acumulador el contenido de 502. Almacenar el acumulador en la posición 503.
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010  0101 0000 0000
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010  0101 0000 0000 Este código significa cargar en el acumulador el contenido de esto  (0101 0000 0000 significa 500)
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010  0101 0000 0000 Sumar al acumulador el contenido de 501. 0011  0101 0000 0001 Sumar al acumulador el contenido de 502. 0011  0101 0000 0010 Almacenar el acumulador en la posición 503. 0001  0101 0000 0011
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Además hay que poner en las direcciones 500, 501 y 502 los valores de las variables X, Y y Z: 500 0000 0000 0010 0001  X es 0021 501 0000 0000 0011 0010 Y es 0032 502 0000 0001 0001 1010 Z es 011A
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z Programa en binario:  Explicación 000 0010 0101 0000 0000 A    (500) 001 0011 0101 0000 0001  A    A + (501) 002 0011 0101 0000 0010  A    A + (502) 003 0001 0101 0000 0011  (503)    A : 500 0000 0000 0010 0001  Dato X 501 0000 0000 0011 0010 Dato Y 502 0000 0001 0001 1010 Dato Z 503 0000 0000 0000 0000 Libre para escribir T
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z 000 0010 0101 0000 0000 001 0011 0101 0000 0001  002 0011 0101 0000 0010  003 0001 0101 0000 0011  : 500 0000 0000 0010 0001  501 0000 0000 0011 0010 502 0000 0001 0001 1010 503 0000 0000 0000 0000 Lenguaje  máquina
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z 000 0010 0101 0000 0000 000 2500 001 0011 0101 0000 0001  001 3501 002 0011 0101 0000 0010  002 3502 003 0001 0101 0000 0011  003 1503 : 500 0000 0000 0010 0001  500 0021 501 0000 0000 0011 0010 501 0032 502 0000 0001 0001 1010 503 011A 503 0000 0000 0000 0000 504 0000 Programa en hexa
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z 000 0010 0101 0000 0000 000 LDA (500) 001 0011 0101 0000 0001  001 ADD (501) 002 0011 0101 0000 0010  002 ADD (502) 003 0001 0101 0000 0011  003 STA (503) : 500 0000 0000 0010 0001  500 DAT 0021 501 0000 0000 0011 0010 501 DAT 0032 502 0000 0001 0001 1010 502 DAT 011A 503 0000 0000 0000 0000 503 DAT 0000 Programa simbólico
FI Präsentation Assembler .    Estructura y Prog. de Computadoras Ejemplo sencillo:  implementar  T = X + Y + Z 000 0010 0101 0000 0000 INICIO LDA (VX) 001 0011 0101 0000 0001  ADD (VY) 002 0011 0101 0000 0010  ADD (VZ) 003 0001 0101 0000 0011  STA (VT) : 500 0000 0000 0010 0001  VX DAT 0021 501 0000 0000 0011 0010 VY DAT 0032 502 0000 0001 0001 1010 VZ DAT 011A 503 0000 0000 0000 0000 VT DAT 0000 Programa en assembler
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Uso de subrutinas: Frecuentemente la misma pieza de código debe escribirse varias veces en muchas partes diferentes de un programa. En vez de repetir el código cada vez que sea necesario, hay una ventaja obvia si las instrucciones comunes se escriben solamente una vez. Un conjunto de instrucciones comunes que pueden utilizarse en un programa muchas veces se denomina  subrutina .
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Uso de subrutinas: Cada vez que la subrutina se utiliza en la parte del programa principal, una ramificación se ejecuta al comienzo de la subrutina. Después que la subrutina ha sido ejecutada, una ramificación se hace de nuevo al programa principal.
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina  Llamado a  Subrutina
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina  Llamado a  Subrutina  Llamado a  Subrutina  j j+ 1
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Uso de subrutinas: Los registros y las memorias son comunes para el programa principal y para la subrutina, i.e., se consideran variables globales. Ventaja:  la comunicación de los parámetros entre el programa principal y la subrutina es simple y rápido. Desventaja:  el programador puede olvidar que ciertos registros usados por en el programa principal no deben ser alterados en la subrutina, esto puede causar serios problemas y la detección de este error es difícil.
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5 La mejor solución sería utilizando una subrutina que tenga como parámetro una dirección X y que realice la operación: (X)    (X) + 5 El programa principal debe cargar correctamente el registro X y llamar a la subrutina tres veces.
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A?
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A? kaput!!
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)    (0100) + 5 (0200)    (0200) + 5 (0204)    (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 PUSH A CALL SUM5 LOAD A,(X) LOAD X,0200 ADD 5 CALL SUM5 STORE (X),A LOAD X,0204 POP A CALL SUM5 RET Solución: se usa la pila
FI Präsentation Subrutinas .    Estructura y Prog. de Computadoras La Pila (stack): Existe una memoria direccionada por el registro SP (stack pointer). ¿Cómo se usa? Cada vez que se hace PUSH X: (SP)    X SP    SP + 1 Cada vez que se hace POP X: SP    SP - 1  X    (SP) (es posible hacer PUSH X y luego POP Y)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras El ciclo de una instrucción (sin interrupción)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Diagrama de estado (sin interrupción)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  sin interrupciones : un programa quiere leer datos del disco duro. El programa solicita datos a la unidad de disco. La unidad de disco recibe solicitud y posiciona el cabezal del disco en la posición deseada. La unidad lee los datos. La unidad verifica consistencia de los datos  (checksum)   if OK (Envía los datos a la CPU) else GOTO 3 La CPU recibe datos y continúa su programa 1 2 3 4 5 6 t
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t CPU solicita datos CPU recibe datos Unidad de disco lee y envía datos
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace  la CPU en este tiempo? CPU solicita datos CPU recibe datos
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace  la CPU en este tiempo? NADA!! la CPU espera… CPU solicita datos CPU recibe datos
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  con interrupciones : un programa quiere leer datos del disco duro. El programa solicita datos a la unidad de disco. La CPU no espera datos, hace otra cosa: por ejemplo ejecuta otro programa o continua ejecutando el mismo programa siempre que pueda prescindir de los datos solicitados. La unidad de disco se encarga de leer los datos correctamente. Cuando los datos están listos la unidad de disco “interrumpe” a la CPU. La CPU deja de hacer lo que está haciendo y atiende la interrupción, i.e., recibe los datos de la unidad de disco. t (CPU) t (unidad de disco)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace  otra cosa Unidad de disco lee y envía datos 3 interrupción
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Ejemplo  con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace  otra cosa Unidad de disco lee y envía datos 3 interrupción Ahorro de tiempo
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras La interrupción es el mecanismo mediante el cual otros módulos pueden  interrumpir  una secuencia normal de procesamiento. Programa:  por ejemplo división por cero Temporizador:  cuando se cumple un tiempo específico E/S:  cuando hay algo que comunicar Hardware:  cuando ocurre una falla
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras El ciclo de una instrucción (con interrupción)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Diagrama de estado (con interrupción)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras CPU ROM RAM Bus de direcciones Bus de datos A12 A11 : A0 A12 CE CE RD RD WR A0 A0 A11 A11 D0 D7 D0 D7 D0 D7 A0 A12 WR RD MREQ
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras CPU I/O RAM Bus de direcciones Bus de datos CE CE A0 A11 D0 D7 D0 D7 A0 A12 WR RD MREQ decoder ROM CE INT IORQ
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Funcionamiento de las interrupciones (posibilidad 1): El dispositivo I/O cuando necesita interrumpir solicita atención y envía una señal INT a la CPU. La CPU termina su instrucción y envía un reconocimiento a quien interrumpe mediante la señal IORQ (I/O request). El dispositivo envía por el bus de datos un byte y la CPU forma una dirección a partir de este byte. La CPU salta a esta dirección y ejecuta el programa de atención a la interrupción. La CPU finaliza esta rutina de interrupción y regresa a la dirección que estaba en el momento de la interrupción.
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Funcionamiento de las interrupciones (posibilidad 2): Igual Igual La CPU al saber que es el dispositivo X el que interrumpe lee el elemento X del “vector de interrupciones” ubicado en algún lugar de la memoria, a partir de este elemento calcula la dirección de memoria de la rutina de atención de la interrupción. Igual Igual
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Interrupciones múltiples: 1. Inhibición de interrupciones: La CPU ignora las interrupciones cuando ya está procesando una interrupción. Las interrupciones ocurridas quedan pendientes y se ejecutan en una determinada secuencia una vez que la CPU termine la primera interrupción.
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Interrupción múltiple (secuencial)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Interrupciones múltiples (cont): 2. Definición de prioridades Interrupciones de baja prioridad pueden ser interrumpidas por interrupciones de mayor prioridad. Cuando una interrupción de prioridad alta ha sido atendida, la CPU regresa a la interrupción previa.
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Interrupción múltiple (anidadas)
FI Präsentation Interrupciones .    Estructura y Prog. de Computadoras Secuencia temporal de varias interrupciones

Más contenido relacionado

PPT
Procea
PPT
C P U Uniciclo
PPTX
Organización y Arquitectura de Computador
PPT
Estructura de computos
PPTX
Arquitectura de Computadores Capitulo II
PPTX
El procesador y sus registros internos
PPTX
Unidad 2 arquitectura del computador
PDF
Procea
C P U Uniciclo
Organización y Arquitectura de Computador
Estructura de computos
Arquitectura de Computadores Capitulo II
El procesador y sus registros internos
Unidad 2 arquitectura del computador

La actualidad más candente (20)

DOCX
Estructura interna de un procesador
PPT
Arquitectura del procesador
PDF
programacion con microcontrolador pic 16f84
PPTX
Arquitectura del procesador
PPT
Multiciclo
PPTX
Capacidad de la unidad de procesamiento
PPT
Microcontrolador
PPSX
Yeimir rincon 20%
PPT
Cm Sesion No 2
PPTX
Capacidad de la unidad de procesamiento
PDF
Capacidad de la unidad de procesamiento por andres maica
PPTX
Componentes del computador
PPTX
Lenguaje Ensamblador
PDF
Microprocesador
PPTX
Capacidad de la unidad de procesamiento
PPTX
Emsamblador
PDF
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
PPTX
Organización y estructura interna del cpu
PPTX
Capacidad de la unidad de procesamiento
Estructura interna de un procesador
Arquitectura del procesador
programacion con microcontrolador pic 16f84
Arquitectura del procesador
Multiciclo
Capacidad de la unidad de procesamiento
Microcontrolador
Yeimir rincon 20%
Cm Sesion No 2
Capacidad de la unidad de procesamiento
Capacidad de la unidad de procesamiento por andres maica
Componentes del computador
Lenguaje Ensamblador
Microprocesador
Capacidad de la unidad de procesamiento
Emsamblador
REGISTRO E INSTRUCCIONES DEL MICROPROCESADOR, MODOS DE DIRECCIONAMIENTO.
Organización y estructura interna del cpu
Capacidad de la unidad de procesamiento
Publicidad

Similar a base de datos (20)

PPTX
Organizacion del Computador
PDF
Arquitectura Computacional.pdf
PPTX
UNIDAD I - A - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
PDF
Arquitectura de una computadora
PDF
Curso Sistemas Operativos - Unidad Arquitectura del Computador
PDF
Estructura de un computador frankie ruiz (1)
PPTX
arquitectura de computadoras y sus principales componentes.pptx
PDF
Arquitectura de computadores y redes
DOC
Procesador intel
PPTX
Arquitectura del cpu
PPTX
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
PPTX
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
PPSX
Presentacion sistemas digitales ii robert i drogo c.i.26.841.800 ing electron...
PPTX
Arquitectura de computadoras
PPTX
Archivo No. 1- Introducci+¦n AMC-1.pptx
PPTX
Presentaci+¦n de la Asignatura.pptx
PPTX
Arquitectura de computador
PPTX
Arquitectura de computador
PPTX
Unidad central de procesamiento
Organizacion del Computador
Arquitectura Computacional.pdf
UNIDAD I - A - ARQUITECTURA BASICA DE LAS COMPUTADORAS-2021-II.pptx
Arquitectura de una computadora
Curso Sistemas Operativos - Unidad Arquitectura del Computador
Estructura de un computador frankie ruiz (1)
arquitectura de computadoras y sus principales componentes.pptx
Arquitectura de computadores y redes
Procesador intel
Arquitectura del cpu
Capacidad de la unidad de procesamiento (grecia gonzález 30203532)
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
Presentacion sistemas digitales ii robert i drogo c.i.26.841.800 ing electron...
Arquitectura de computadoras
Archivo No. 1- Introducci+¦n AMC-1.pptx
Presentaci+¦n de la Asignatura.pptx
Arquitectura de computador
Arquitectura de computador
Unidad central de procesamiento
Publicidad

base de datos

  • 1. Estructura de la computadora Präsentation . Estructura y Prog. de Computadoras
  • 2. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Computador Memoria Principal Entrada Salida Sistema de interconexión periféricos Líneas de comunicación Unidad Central de Proceso CPU Computadora
  • 3. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Memoria Secundaria Memoria Principal CPU Periféricos Bus de Datos Bus de Direcciones Bus de Control Ejemplo:
  • 4. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Ejemplo:
  • 5. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Computer Unidad Aritmética y Lógica Unidad de Control Interconexión Interna de la CPU Registros CPU I/O Memory System Bus CPU
  • 6. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras CPU Memoria de control Unidad de control de registros y decodificadores Lógica Secuencial Registers Internal Bus Unidad de Control ALU Control Unit
  • 7. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras CPU Memoria de control Unidad de control de registros y decodificadores Lógica Secuencial Registers Internal Bus Unidad de Control ALU Control Unit La unidad de control controla el funcionamiento de la CPU: controla las transferencias de datos desde hacia la CPU y controla la ALU.
  • 8. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Función de la unidad de control: Para cada instrucción hay un único código que ejecutará esa instrucción. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute.
  • 9. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Función de la unidad de control: Para cada instrucción hay un único código que ejecutará esa instrucción. Acepta la instrucción y genera las señales de control necesarias para que la instrucción se ejecute. decoder codop Se activa sólo una salida
  • 10. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Componentes del computador:
  • 11. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Tareas de la CPU: Captar instrucción: la CPU lee una instrucción de la memoria. Interpretar instrucción: la instrucción se decodifica para determinar qué acción es necesaria. Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo I/O. Procesar datos: en la ejecución se puede exigir llevar a cabo alguna operación aritmética o lógica con los datos. Escribir datos: los resultados de la ejecución pueden exigir escribir datos en la memoria o en un módulo I/O.
  • 12. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Registros ALU Unidad de Control Bus de control Bus de datos Bus de direcciones Bus del sistema
  • 13. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros visibles: pueden referenciarse en las instrucciones de máquina. pueden ser: Uso general Datos Direcciones Códigos de condición
  • 14. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras ¿cuántos registros de propósito general? Óptimo entre 8 y 32 Si hay muy pocos registros entonces se necesitan demasiados accesos a memoria. Más registros no reducen considerablemente las referencias a memoria y hace la CPU más compleja.
  • 15. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras ¿De cuántos bits deben ser los registros? Deben ser de un número suficiente tal que se puedan manejar las direcciones a memoria. Además deben ser capaces de manejar una palabra completa. A veces se combinan dos registros para conformar uno solo.
  • 16. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Ejemplos de Unam de registros:
  • 17. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: se usan para controlar el funcionamiento de la CPU: PC = program counter : contiene la dirección de la instrucción a captar IR = instruction register : contiene la última instrucción captada MAR = memory address register : contiene la dirección de una posición de memoria MBR = memory buffer register : contiene la palabra de datos a escribir en memoria, o la palabra leída más recientemente
  • 18. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: Adicionalmente se cuenta con PSW = program status word : Signo: contiene le bit de signo del resultado de última operación Cero: puesto a uno cuando el resultado es 0 Acarreo: puesto a uno si en la suma hay acarreo o en la resta hay un adeudo del bit más significativo Igual: puesto a uno si el el resultado de una comparación lógica es la igualdad Desbordamiento: Usado para indicar desbordamiento aritmético
  • 19. FI Präsentation Unidad de control . Estructura y Prog. de Computadoras Un procesador incluye registros visibles para el usuario y registros de control/estado. Registros de control y estado: Adicionalmente se cuenta con PSW = program status word : (cont…) Interrupciones: usado para permitir o inhabilitar interrupciones Supervisor: indica si la CPU funciona en modo supervisor o usuario. Únicamente en modo supervisor se pueden ejecutar ciertas instrucciones privilegiadas y se puede acceder a ciertas áreas de memoria
  • 20. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 1. Recuperar la siguiente instrucción desde memoria (apuntada por el program counter ) y luego incrementar el program counter . 2. Decodificar el patrón de bits en el registro de instrucción IR 3. Ejecutar la instrucción indicada en el registro de instrucción IR Ciclo de instrucción
  • 21. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras Ciclo fetch (captación): FUNCION: Lleva la siguiente instrucción de la memoria a la CPU El program counter tiene la dirección de la siguiente instrucción. El procesador capta la instrucción de la memoria direccionada por el PC. Se incremente PC en 1. El código de la instrucción se carga en IR.
  • 22. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras Ciclo decode (decodificación): FUNCION: Decodifica los bits presentes en IR Interpreta el código de operación.
  • 23. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras Ciclo execution (ejecución): FUNCION: Ejecuta la instrucción. Procesador-memoria: transferencia CPU ↔ memoria Procesador-I/O: transferencia CPU ↔ módulo I/O Procesamiento de datos: operaciones aritméticas o lógicas Control: cambio de secuencias (eje: JUMP), etc. Combinación de las anteriores
  • 24. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 1. El PC contiene el valor 300. Se carga esta instrucción en IR (esto implica el uso de MAR y MBR) Ejemplo:
  • 25. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 2. Los primeros 4 bits de IR (“1”) indican que el acumulador AC se va a cargar con un dato de la memoria. Los restantes 12 bits especifican la dirección (es decir “940”). Ejemplo:
  • 26. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 3. El registro de PC se incrementa y se capta la siguiente instrucción. Ejemplo:
  • 27. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 4. Los primeros 4 bits (“5”) indican que la instrucción es de suma entre el acumulador y una memoria. Los siguientes 12 bits indican la dirección de memoria (“941”). El contenido de AC y el de la posición 941 se suman y el resultado se almacena en AC. Ejemplo:
  • 28. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 5. El registro PC se incrementa en 1 y se capta la siguiente instrucción. Ejemplo:
  • 29. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras 6. Los primeros 4 bits indican (“2”) que el acumulador se debe almacenar en una memoria. Los siguientes 12 bits indican la dirección de la memoria (“941”). El contenido de AC se almacena en la posición 941. Ejemplo:
  • 30. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan?
  • 31. FI Präsentation Ciclos fetch, decode, exe . Estructura y Prog. de Computadoras ¿Cuántos ciclos de instrucción se necesitan? R/. Tres
  • 32. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras Las instrucciones de una CPU a otra difieren bastante, sin embargo en todas las CPU se puede encontrar el siguiente conjunto de instrucciones : 1.- Instrucciones de transferencias de datos 2.- Instrucciones aritméticas 3.- Instrucciones lógicas 4.- Control de flujo 5.- Entrada / Salida
  • 33. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 1.- Instrucciones de transferencias de datos MOVE transferir registros en la CPU STORE registro -> memoria LOAD memoria -> registro CLEAR pone un registro en ceros SET pone un registro en unos PUSH introduce en la pila POP extrae en la pila
  • 34. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 1.- Instrucciones de transferencias de datos Acciones: Transfiere datos de una posición a otra. Si se implica a la memoria: determina la dirección de la memoria inicia lectura/escritura en memoria
  • 35. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas ADD suma dos operandos SUBSTRACT resta dos operandos MULTIPLY multiplica dos operandos DIVIDE divide dos operandos ABSOLUTE calcula valor absoluto del operando NEGATE cambia el signo del operando INCREMENTE sube en 1 el operando DECREMENTE baja en 1 el operando
  • 36. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 2.- Instrucciones aritméticas Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición.
  • 37. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 3.- Instrucciones lógicas AND Y lógico bit a bit OR O lógico bit a bit NOT no lógico bit a bit XOR o exclusivo lógico bit a bit TEST evalúa condiciones COMPARE comparación de dos operandos SHIFT desplazamiento izquierda o derecha ROTATE desplazamiento cíclico
  • 38. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 3.- Instrucciones lógicas Acciones: Puede implicar transferencias de datos, antes y/o después. Realiza la operación en la ALU Actualiza códigos e indicadores de condición .
  • 39. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 4.- Control de flujo JUMP salto incondicional JUMP CON salto condicional JUMP SUB salto a subrutina RETURN retorno de subrutina SKIP incrementa PC en 1 SKIP CON incremento condicional de PC en 1 HALT detiene la ejecución del programa WAIT detiene la ejecución hasta una condición NOP no ejecuta operación alguna
  • 40. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 4.- Control de flujo Acciones : Actualiza el contador de programa. En el caso de llamadas y retornos de subrutinas, gestiona la transferencia y enlace de parámetros.
  • 41. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 5.- Entrada / salida INPUT transferir I/O -> memoria o registro OUTPUT transferir memoria o registro -> I/O START I/O inicializa dispositivo I/O TEST I/O transfiere información de estado de I/O
  • 42. FI Conjunto de instrucciones . Estructura y Prog. de Computadoras 5.- Entrada / salida Acciones: Cursa una orden a un módulo de E/S En el caso de E/S asignada en memoria, determina la dirección de memoria correspondiente.
  • 43. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940) %( A = A + (940)) Los operandos son A y el contenido de 940.
  • 44. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Una instrucción tiene “operandos”: Ej: ADD A,(940) %( A = A + (940)) Los operandos son A y el contenido de 940. ¿Cómo se pueden referenciar los operandos? R/. Con los modos de direccionamiento.
  • 45. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Número (N) Opcode Instrucción Instrucción
  • 46. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Inmediato Directo (o absoluto) Indirecto Registro Indirecto con registro Desplazamiento (Indexado)
  • 47. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras Operand Opcode Instruction 1. Inmediato
  • 48. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 1. Inmediato Operando es parte de la instrucción Operando = N Ej: ADD 5 Suma 5 al acumulador 5 es un operando No hay referencia adicional a memoria Rápido Rango limitado
  • 49. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 2. Directo (o absoluto) Address A Opcode Instruction Memory Operand
  • 50. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 2. Directo (o absoluto) El operando está en la dirección referenciada por N Operando = (N) Ej: ADD (941) %A = A + (941) Hay sólo un acceso a la memoria
  • 51. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 3. Indirecto Address A Opcode Instruction Memory Operand Pointer to operand
  • 52. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 3. Indirecto Operando está en la memoria que direcciona la memoria direccionada por N Operando = ((N)) Existe acceso múltiple a la memoria para encontrar el operando Este direccionamiento es muy lento
  • 53. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 4. Registro Register Address R Opcode Instruction Registers Operand
  • 54. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 4. Registro El operando es un registro de la CPU Operando = Registro indicado por N, RN Número limitado de registros Instrucción rápida Instrucción corta No acceso a memoria Espacio de direcciones limitado
  • 55. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 5. Indirecto con registro Register Address R Opcode Instruction Memory Operand Pointer to Operand Registers
  • 56. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras El operando está en la memoria direccionada por un registro. Operando = (RN) Hay un acceso menos a memoria que en direccionamiento indirecto 5. Indirecto con registro
  • 57. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras 6. Desplazamiento Register R Opcode Instruction Memory Operand Pointer to Operand Registers Address A +
  • 58. FI Präsentation Modos de direccionamiento . Estructura y Prog. de Computadoras El número N de la instrucción se parte en 2: una parte N1 indica un registro y otra indica una dirección N2 Operando = (RN1 + N2) 6. Desplazamiento
  • 59. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Esta operación se podría hacer en un microprocesador teniendo las variables X, Y, Z almacenadas en la memoria, por ejemplo: X en la posición 500, J en la 501 y K en la 502, y ejecutando las siguientes instrucciones: Cargar el contenido de 500 en el acumulador. Sumar al acumulador el contenido de 501. Sumar al acumulador el contenido de 502. Almacenar el acumulador en la posición 503.
  • 60. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010 0101 0000 0000
  • 61. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010 0101 0000 0000 Este código significa cargar en el acumulador el contenido de esto (0101 0000 0000 significa 500)
  • 62. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Suponiendo un código binario para las instrucciones: Cargar el contenido de 500 en el acumulador: 0010 0101 0000 0000 Sumar al acumulador el contenido de 501. 0011 0101 0000 0001 Sumar al acumulador el contenido de 502. 0011 0101 0000 0010 Almacenar el acumulador en la posición 503. 0001 0101 0000 0011
  • 63. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Además hay que poner en las direcciones 500, 501 y 502 los valores de las variables X, Y y Z: 500 0000 0000 0010 0001 X es 0021 501 0000 0000 0011 0010 Y es 0032 502 0000 0001 0001 1010 Z es 011A
  • 64. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z Programa en binario: Explicación 000 0010 0101 0000 0000 A  (500) 001 0011 0101 0000 0001 A  A + (501) 002 0011 0101 0000 0010 A  A + (502) 003 0001 0101 0000 0011 (503)  A : 500 0000 0000 0010 0001 Dato X 501 0000 0000 0011 0010 Dato Y 502 0000 0001 0001 1010 Dato Z 503 0000 0000 0000 0000 Libre para escribir T
  • 65. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 001 0011 0101 0000 0001 002 0011 0101 0000 0010 003 0001 0101 0000 0011 : 500 0000 0000 0010 0001 501 0000 0000 0011 0010 502 0000 0001 0001 1010 503 0000 0000 0000 0000 Lenguaje máquina
  • 66. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 000 2500 001 0011 0101 0000 0001 001 3501 002 0011 0101 0000 0010 002 3502 003 0001 0101 0000 0011 003 1503 : 500 0000 0000 0010 0001 500 0021 501 0000 0000 0011 0010 501 0032 502 0000 0001 0001 1010 503 011A 503 0000 0000 0000 0000 504 0000 Programa en hexa
  • 67. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 000 LDA (500) 001 0011 0101 0000 0001 001 ADD (501) 002 0011 0101 0000 0010 002 ADD (502) 003 0001 0101 0000 0011 003 STA (503) : 500 0000 0000 0010 0001 500 DAT 0021 501 0000 0000 0011 0010 501 DAT 0032 502 0000 0001 0001 1010 502 DAT 011A 503 0000 0000 0000 0000 503 DAT 0000 Programa simbólico
  • 68. FI Präsentation Assembler . Estructura y Prog. de Computadoras Ejemplo sencillo: implementar T = X + Y + Z 000 0010 0101 0000 0000 INICIO LDA (VX) 001 0011 0101 0000 0001 ADD (VY) 002 0011 0101 0000 0010 ADD (VZ) 003 0001 0101 0000 0011 STA (VT) : 500 0000 0000 0010 0001 VX DAT 0021 501 0000 0000 0011 0010 VY DAT 0032 502 0000 0001 0001 1010 VZ DAT 011A 503 0000 0000 0000 0000 VT DAT 0000 Programa en assembler
  • 69. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Frecuentemente la misma pieza de código debe escribirse varias veces en muchas partes diferentes de un programa. En vez de repetir el código cada vez que sea necesario, hay una ventaja obvia si las instrucciones comunes se escriben solamente una vez. Un conjunto de instrucciones comunes que pueden utilizarse en un programa muchas veces se denomina subrutina .
  • 70. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Cada vez que la subrutina se utiliza en la parte del programa principal, una ramificación se ejecuta al comienzo de la subrutina. Después que la subrutina ha sido ejecutada, una ramificación se hace de nuevo al programa principal.
  • 71. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina Llamado a Subrutina
  • 72. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Programa principal Subrutina Llamado a Subrutina Llamado a Subrutina j j+ 1
  • 73. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Uso de subrutinas: Los registros y las memorias son comunes para el programa principal y para la subrutina, i.e., se consideran variables globales. Ventaja: la comunicación de los parámetros entre el programa principal y la subrutina es simple y rápido. Desventaja: el programador puede olvidar que ciertos registros usados por en el programa principal no deben ser alterados en la subrutina, esto puede causar serios problemas y la detección de este error es difícil.
  • 74. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5
  • 75. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5 La mejor solución sería utilizando una subrutina que tenga como parámetro una dirección X y que realice la operación: (X)  (X) + 5 El programa principal debe cargar correctamente el registro X y llamar a la subrutina tres veces.
  • 76. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5
  • 77. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A?
  • 78. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 LOAD A,(X) CALL SUM5 ADD 5 LOAD X,0200 STORE (X),A CALL SUM5 RET LOAD X,0204 CALL SUM5 ¿Qué pasa si el programa principal estaba usando A? kaput!!
  • 79. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras Ejemplo: Se desea hacer un programa que realice las siguientes operaciones: (0100)  (0100) + 5 (0200)  (0200) + 5 (0204)  (0204) + 5 Programa principal Subrutina LOAD X,0100 SUM5 PUSH A CALL SUM5 LOAD A,(X) LOAD X,0200 ADD 5 CALL SUM5 STORE (X),A LOAD X,0204 POP A CALL SUM5 RET Solución: se usa la pila
  • 80. FI Präsentation Subrutinas . Estructura y Prog. de Computadoras La Pila (stack): Existe una memoria direccionada por el registro SP (stack pointer). ¿Cómo se usa? Cada vez que se hace PUSH X: (SP)  X SP  SP + 1 Cada vez que se hace POP X: SP  SP - 1 X  (SP) (es posible hacer PUSH X y luego POP Y)
  • 81. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras El ciclo de una instrucción (sin interrupción)
  • 82. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Diagrama de estado (sin interrupción)
  • 83. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. El programa solicita datos a la unidad de disco. La unidad de disco recibe solicitud y posiciona el cabezal del disco en la posición deseada. La unidad lee los datos. La unidad verifica consistencia de los datos (checksum) if OK (Envía los datos a la CPU) else GOTO 3 La CPU recibe datos y continúa su programa 1 2 3 4 5 6 t
  • 84. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t CPU solicita datos CPU recibe datos Unidad de disco lee y envía datos
  • 85. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace la CPU en este tiempo? CPU solicita datos CPU recibe datos
  • 86. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo sin interrupciones : un programa quiere leer datos del disco duro. 1 2 3 4 5 6 t ¿Qué hace la CPU en este tiempo? NADA!! la CPU espera… CPU solicita datos CPU recibe datos
  • 87. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo con interrupciones : un programa quiere leer datos del disco duro. El programa solicita datos a la unidad de disco. La CPU no espera datos, hace otra cosa: por ejemplo ejecuta otro programa o continua ejecutando el mismo programa siempre que pueda prescindir de los datos solicitados. La unidad de disco se encarga de leer los datos correctamente. Cuando los datos están listos la unidad de disco “interrumpe” a la CPU. La CPU deja de hacer lo que está haciendo y atiende la interrupción, i.e., recibe los datos de la unidad de disco. t (CPU) t (unidad de disco)
  • 88. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace otra cosa Unidad de disco lee y envía datos 3 interrupción
  • 89. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Ejemplo con interrupciones : un programa quiere leer datos del disco duro. 1 2 4 t CPU solicita datos CPU recibe datos CPU hace otra cosa Unidad de disco lee y envía datos 3 interrupción Ahorro de tiempo
  • 90. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras La interrupción es el mecanismo mediante el cual otros módulos pueden interrumpir una secuencia normal de procesamiento. Programa: por ejemplo división por cero Temporizador: cuando se cumple un tiempo específico E/S: cuando hay algo que comunicar Hardware: cuando ocurre una falla
  • 91. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras El ciclo de una instrucción (con interrupción)
  • 92. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Diagrama de estado (con interrupción)
  • 93. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras CPU ROM RAM Bus de direcciones Bus de datos A12 A11 : A0 A12 CE CE RD RD WR A0 A0 A11 A11 D0 D7 D0 D7 D0 D7 A0 A12 WR RD MREQ
  • 94. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras CPU I/O RAM Bus de direcciones Bus de datos CE CE A0 A11 D0 D7 D0 D7 A0 A12 WR RD MREQ decoder ROM CE INT IORQ
  • 95. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Funcionamiento de las interrupciones (posibilidad 1): El dispositivo I/O cuando necesita interrumpir solicita atención y envía una señal INT a la CPU. La CPU termina su instrucción y envía un reconocimiento a quien interrumpe mediante la señal IORQ (I/O request). El dispositivo envía por el bus de datos un byte y la CPU forma una dirección a partir de este byte. La CPU salta a esta dirección y ejecuta el programa de atención a la interrupción. La CPU finaliza esta rutina de interrupción y regresa a la dirección que estaba en el momento de la interrupción.
  • 96. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Funcionamiento de las interrupciones (posibilidad 2): Igual Igual La CPU al saber que es el dispositivo X el que interrumpe lee el elemento X del “vector de interrupciones” ubicado en algún lugar de la memoria, a partir de este elemento calcula la dirección de memoria de la rutina de atención de la interrupción. Igual Igual
  • 97. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras
  • 98. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Interrupciones múltiples: 1. Inhibición de interrupciones: La CPU ignora las interrupciones cuando ya está procesando una interrupción. Las interrupciones ocurridas quedan pendientes y se ejecutan en una determinada secuencia una vez que la CPU termine la primera interrupción.
  • 99. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Interrupción múltiple (secuencial)
  • 100. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Interrupciones múltiples (cont): 2. Definición de prioridades Interrupciones de baja prioridad pueden ser interrumpidas por interrupciones de mayor prioridad. Cuando una interrupción de prioridad alta ha sido atendida, la CPU regresa a la interrupción previa.
  • 101. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Interrupción múltiple (anidadas)
  • 102. FI Präsentation Interrupciones . Estructura y Prog. de Computadoras Secuencia temporal de varias interrupciones