Unidades Funcionales del CPU y ejecucin de las instrucciones - PowerPoint PPT Presentation

1 / 87
About This Presentation
Title:

Unidades Funcionales del CPU y ejecucin de las instrucciones

Description:

Bus del. Sistema. CPU. CPU. Plataformas Operativas. 4. ITESO. Funci n del CPU. El CPU debe: ... El resto de los elementos de la computadora est n para ... – PowerPoint PPT presentation

Number of Views:391
Avg rating:3.0/5.0
Slides: 88
Provided by: USUA1275
Category:

less

Transcript and Presenter's Notes

Title: Unidades Funcionales del CPU y ejecucin de las instrucciones


1
Unidades Funcionales del CPU y ejecución de las
instrucciones
  • Arquitectura de Computadoras
  • Caps. 9, 10, 11 y 12

2
Elementos básicos de una computadora
  • Procesador
  • Memoria principal
  • Memoria real o primaria
  • Volátil
  • Módulos de E/S
  • Dispositivos de memoria secundaria
  • Equipo de comunicaciones
  • Terminales
  • Interconexión del sistema
  • Comunicación entre procesadores, memoria, y
    módulos de E/S

3
Estructura del CPU
4
Función del CPU
  • El CPU debe
  • Extraer instrucciones
  • Interpretar instrucciones
  • Extraer datos
  • Procesar datos
  • Escribir datos

5
Unidad aritmética y lógica
  • Hace los cálculos
  • El resto de los elementos de la computadora están
    para suministrar datos a la ALU
  • UDC, Registros, Memoria, E/S
  • Maneja enteros
  • Puede menajar números de punto flotante (reales)
  • Puede ser una FPU separada (coprocesador
    matemático)

6
ALU Entradas y salidas
7
Registros del CPU
  • El CPU debe tener un espacio de trabajo
    (almacenamiento temporal)
  • Llamados registros
  • La cantidad y función varía dependiendo del
    diseño del procesador
  • Una de las decisiones más importantes de diseño
  • El nivel más alto en la jerarquía de memoria

8
Componentes de la Computadoravisión de alto
nivel
9
Componentes del nivel más alto (Registros)
  • MAR - Memory Address Register
  • Direcciona la siguiente lectura o escritura
  • MBR - Memory Buffer Register
  • Datos a ser escritos en memoria
  • Recibe datos leidos de la memoria
  • I/OAR - I/O Address
  • Especifca un dispositivo de E/S en particular
  • I/OBR - I/O Buffer
  • Intercambio de datos entre un módulo de I/O y el
    procesador

10
Registros del Procesador
  • Registros visibles al usuario
  • Pueden referenciarse por el lenguaje máquina
  • Disponibles a todos los programas - programas de
    aplicación y programas del sistema
  • Tipos de registros
  • Datos
  • Direcciones
  • Códigos de condición

11
Registros Visibles al Usuario
  • Registros de datos
  • Registros de direcciones
  • Registros índices
  • Apuntador de segmentos
  • Apuntador de stack

12
Registros de control y estado
  • Program Counter (PC)
  • Instruction Register (IR)
  • Program Status Word (PSW)

13
Cuándo se modifican los registros?
  • Ejecución de un programa
  • Programa
  • Secuencia de instrucciones máquina
  • Ejecutadas por el CPU

14
Qué son las instrucciones máquina?
  • Conjunto de instrucciones
  • La colección de instrucciones que entiende un CPU
  • Lenguaje máquina
  • Binario
  • Usualmente representado por códigos en ensamblador

15
Elementos de una instrucción
  • Código de operación (Op code)
  • Hacer esto
  • Referencia al operando fuente
  • A esto
  • Referencia al operando resultante
  • Poner la respuesta aquí
  • Referencia a la siguiente instrucción
  • Cuando termines, hacer esto...

16
Dónde están los operandos?
  • Memoria principal (o virtual, cache)
  • Registros del CPU
  • Dispositivo de E/S

17
Representación de instrucciones
  • En el código máquina cada instrucción tiene un
    patrón de bits único
  • Para el entendimiento humano se usa una
    representación simbólica
  • ejemplo. ADD, SUB, LOAD
  • Los operandos también pueden representarse de esa
    forma
  • ADD A,B

18
Tipos de instrucciones
  • Procesamiento de datos
  • Almacenamiento de datos (memoria principal)
  • Movimiento de datos (E/S)
  • Flujo del programa

19
Número de direcciones (a)
  • 3 direcciones
  • Operando 1, Operando 2, Resultado
  • a b c
  • No es común
  • Requiere formatos grandes para tener todo

20
Número de direcciones (b)
  • 2 direcciones
  • Una de las direcciones es operando y resultado
  • a a b
  • Reduce la longitud de la instrucción
  • Requiere algo de trabajo extra
  • Almacenamiento temporal para mantener algunos
    resultados

21
Número de direcciones (c)
  • 1 dirección
  • Segunda dirección implícita
  • Usualmente un un registro (acumulador)
  • No es común en máquinas actuales

22
Número de direcciones (d)
  • 0 (cero) direcciones
  • Todas la direcciones son implícitas
  • Usa un stack
  • ejemplo.
  • push a
  • push b
  • add
  • pop c
  • c a b

23
Cuántas direcciones?
  • Más direcciones
  • Instrucciones más complejas (potentes??)
  • Más registros
  • Operaciones entre registros más rápidas
  • Menos instrucciones por programa
  • Menos direcciones
  • Instrucciones menos complejas (potentes??)
  • Más instrucciones por programa
  • Extracción/ejecución de instruccíones más rápida

24
Decisiones de diseño (1)
  • Repertorio de operaciones
  • Cuántas operaciones?
  • Qué pueden hacer?
  • Qué tan complejas son?
  • Tipos de datos
  • Formato de instrucciones
  • Longitud del campo del código de operación (op)
  • Número de direcciones

25
Decisiones de diseño(2)
  • Registros
  • Número de registros del CPU disponibles
  • Cuales operaciones pueden ejecutarse en cuáles
    registros?
  • Modos de direccionamiento (más adelante)
  • RISC v CISC

26
Tipos de operandos
  • Direcciones
  • Números
  • Enteros/Punto flotante
  • Caracteres
  • ASCII etc.
  • Datos lógicos
  • Bits o banderas
  • Hay alguna diferencia entre números y
    caracteres?
  • Qué dicen los programadores de C?

27
Tipos de datos específicos
  • General contenido binario arbitrario
  • Entero Valor binario simple
  • Ordinal Entero sin signo
  • BCD No empaquetado un dígito por byte
  • BCD Empaquetado - 2 dígitos BCD por byte
  • Apuntador cercano desplazamiento de 32 bits
    dentro del segmento
  • Campo bit
  • Cadena de caracteres
  • Punto flotante

28
Tipos de operaciones
  • Transferencia de datos
  • Aritméticas
  • Lógicas
  • Conversión
  • E/S
  • Control del sistema
  • Transferencia de control

29
Transferencia de datos
  • Hay que especificar
  • Fuente
  • Destino
  • Cantidad de datos
  • Pueden ser instrucciones diferentes instrucciones
    para diferentes movimientos
  • O una instrucción y diferentes direcciones

30
Aritmética
  • Suma, Resta, Multiplicación, División
  • Entero con signo
  • Punto flotante?
  • Puede incluir
  • Incremento (a)
  • Decremento (a--)
  • Negación (-a)

31
Lógicas
  • Operaciones de bits
  • AND, OR, NOT

32
Conversión
  • De Binario a Decimal

33
Entrada y Salida
  • Pueden ser instrucciones específicas
  • Pueden ser instrucciones simbólicas
  • Puede hacerse con instrucciones de movimiento de
    datos
  • Mapeo en memoria
  • Puede hacerse por medio de un controlador
    separado (DMA)

34
Control del Sistema
  • Instrucciones privilegiadas
  • El CPU necesita estar en un estado específico
  • Ring 0 en 80386
  • Modo Kernel
  • Para el uso de los SO

35
Transferencia de Control
  • Salto
  • Ejemplo Hace la operación y salta a xxxx si el
    resultado es cero
  • ISZ Register1
  • Branch xxxx
  • ADD A
  • Llamada a una subrutina
  • Llamada a una interrupción

36
Modos de direccionamiento
  • Inmediato
  • Directo
  • Indirecto
  • Registro
  • Registro Indirecto
  • Desplazamiento (Indexedo)
  • Stack

37
Direccionamiento Inmediato
  • El operando es parte de la instrucción
  • Operando campo dirección
  • ejemplo. ADD 5
  • Suma 5 al contenido del acumulador
  • 5 es operando
  • No hay referencia a memoria para extraer datos
  • Rápido
  • Rango limitado

38
Diagrama del Direccionamiento Inmediato
Instrucción
Operando
Opcode
39
Direccionamiento Directo
  • El campo de direcciónes contiene la dirección del
    operando
  • La dirección efectiva (EA) campo de dirección
    (A)
  • ejemplo. ADD A
  • Suma el contenido de la celda A al acumulador
  • Buscar en memoria la dirección A para el operando
  • Una sola referencia a memoria para accesar datos
  • No se hacen cálculos adicionales para trabajar la
    dirección efectiva
  • Espacio de direcciones limitado

40
Diagrama de Direccionamiento Directo
41
Direccionamiento Indirecto (1)
  • Celdas de memoria apuntadas por un campo de
    dirección contiene la dirección (apuntador) al
    oprando
  • EA (A)
  • Busca en A, encuentra la dirección (A) y ahí
    busca el operando
  • Ejemplo. ADD (A)
  • Suma el contenido de una celda apuntada por el
    contenido de A al acumulador

42
Direccionamiento Indirecto (2)
  • Espacio de direccionamiento grande
  • 2n donde n es la longitud de la palabra
  • Puede ser anidado, multinivel, en cascada
  • ejemplo. EA (((A)))
  • Cómo sería el diagrama?
  • Varios accesos a memoria para encontrar el
    operando
  • Más lento

43
Diagrama de Direccionamiento Indirecto
44
Direccionamiento Registro (1)
  • El operando está en el registro nombrado en el
    campo dirección
  • EA R
  • Número limitado de registros
  • Se requiere un campo de direcciones muy pequeño
  • Instrucciones más cortas
  • Extracción de instrucciones más rápida

45
Direccionamiento registro (2)
  • No se hace acceso a memoria
  • La ejecución es muy rápida
  • Espacio de direcciones muy limitado
  • Muchos registros ayudan al rendimiento
  • Requiere una buena programación en ensamblador o
    el desarrollo de un buen compilador
  • Programando en C
  • register int a

46
Diagrama de direccionamiento Registro
47
Direccionamiento indirecto con registro
  • EA (R)
  • El operando está en una celda de memoria apuntado
    por el contenido del registro R
  • Espacio de direcciones grande (2n)
  • Un acceso menos a memoria que el direccionamiento
    indirecto

48
Diagrama de direccionamiento Indirecto con
registro
49
Direccionamiento con desplazamiento
  • EA A (R)
  • El campo de direcciones tiene dos valores
  • A valor base
  • R registro que tiene el desplazamiento
  • o vice versa

50
Direccionamiento con desplazamiento
51
Direccionamiento relativo
  • Una versión de direccionamiento con
    desplazamiento
  • R Contador del programa, PC
  • EA A (PC)
  • Obtener operando de A celdas a partir de la
    posición actual
  • Apuntada por el registro PC
  • Localidad de referencias y el uso de la caché

52
Direccionamiento base registro
  • A desplazamiento
  • R apuntador a la dirección base
  • R puede ser implícito o explícito
  • ejemplo. Registros de segmento en el 80x86

53
Direccionamiento Indexado
  • A base
  • R desplazamiento
  • EA A R
  • Bueno para el acceso de arreglos
  • EA A R
  • R

54
Formatos de Instrucciones
  • Distribución de los bits en una instrucción
  • Incluye el opcode
  • Incluye operandos
  • implícitos o explícitos
  • Usualmente más que un formato de instrucciones es
    un conjunto de instrucciones

55
Longitud de la instrucción
  • Afectado por y afecta
  • Tamaño de la memoria
  • Organización de la memoria
  • Estructura del bus
  • Complejidad del CPU
  • Velocidad del CPU
  • Repertorio de instrucciones potente o ahorrar
    espacio?

56
Asignación de bits
  • Número de modos de direccionamiento
  • Número de operandos
  • Registros vs memoria
  • Número de conjuntos de registros
  • Rango de direccionamiento
  • Granularidad en las direcciones

57
Ejecución de una Instrucción
  • El procesador ejecuta instrucciones en un
    programa
  • Las instrucciones son capturadas de la memoria en
    un tiempo

58
Captura y ejecución de una instrucción
  • El procesador captura la instrucción de la
    memoria principal
  • El contador del programa (PC) tiene la dirección
    de la siguiente instrucción a ser capturada
  • El contador del programa se incrementa después de
    cada captura

59
Ejemplo de la ejecución de un programa
60
Ejecución de una Instrucción
  • Dos pasos
  • Captura
  • Ejecución

Ciclo Fetch (Captura)
Ciclo de ejecución
Captura siguiente instrucción
Ejecuta instrucción
Captura siguiente instrucción
Ejecuta instrucción
INICIO
HALT
61
Ciclo de Fetch (Captura)
  • El contador del programa (PC) tiene la dirección
    de la siguiente instrucción a extraer
  • El procesador extrae la instrucción de la
    dirección de memoria apuntada por PC
  • Incrementa PC
  • Al menos que se le indique otra cosa
  • La instrucción se carga en el registro de
    instrucción (IR)
  • El procesador interpreta la instrucción y ejecuta
    las acciones requeridas

62
Ciclo de ejecución
  • Procesador-memoria
  • Transferencia de datos entre el CPU y la memoria
    principal
  • Procesador E/S
  • Transferencia de datos entre CPU y un módulo de
    E/S
  • Procesamiento de datos
  • Alguna operación aritmética o lógica en los datos
  • Control
  • Alteración de la secuencia de las operaciones
  • ejemplo. jump
  • Combinación de los de arriba

63
Diagrama de estados del ciclo de instrucción
Captación del operando
Alcacena- miento de operando
Captación de instrucción
Captación del operando
Alcacena- miento de operando
Captación de instrucción
Varios operandos
Varios operandos
Decodificación de la operación de la instrucción
Cálculo de la dirección del operando
Operación con datos
Cálculo de la dirección del operando
Decodificación de la operación de la instrucción
Cálculo de la dirección del operando
Operación con datos
Cálculo de la dirección del operando
Cálculo de la dirección de la instrucción
Cálculo de la dirección de la instrucción
Instrucción completada Captar la siguiente
instrucción
Cadena o vector de datos
64
Ciclo indirecto
  • Puede requerir acceso a memoria para extraer
    operandos
  • El direccionamiento indirecto requiere más
    accesos a memoria
  • Puede ser a través de como un subciclo de
    instrucción adicional

65
El ciclo de instrucción
66
Diagrama de estados del ciclo de instrucción
Indirección
Indirección
Captación del operando
Captación del operando
Captación de instrucción
Alcacena- miento de operando
Captación de instrucción
Alcacena- miento de operando
Varios resultados
Varios operandos
Interrupción
Interrupción
Comproba- ción de interrupción
Comproba- ción de interrupción
Decodificación de la operación de la instrucción
Cálculo de la dirección del operando
Cálculo de la dirección de la instrucción
Decodificación de la operación de la instrucción
Cálculo de la dirección del operando
Operación con datos
Cálculo de la dirección del operando
Cálculo de la dirección de la instrucción
Operación con datos
Cálculo de la dirección del operando
Instrucción completada Captar la siguiente
instrucción
No interrupción
Volver a por otro dato de una cadena o un vector
67
Flujo de datos (Extracción de los datos)
  • Se examina IR
  • Si es direccionamiento indirecto, se ejecuta el
    ciclo indirecto
  • Los N bits más de la derecha de MBR se
    transfieren a MAR
  • La unidad de control solicita lectura de memoria
  • El resultado (dirección del operando) se mueve a
    MBR

68
Flujo de datos, ciclo de captación
Memoria
Memoria
Bus de datos
Bus de control
Bus de direcciones
MAR
PC
MAR
PC
Unidad De control
Unidad De control
IR
IR
MBR
MBR
69
Flujo de datos, ciclo indirecto
Memoria
Memoria
MAR
MAR
Unidad De control
MBR
MBR
MBR
Bus de direcciones
Bus de datos
Bus de control
70
Flujo de datos (Ejecución)
  • Puede tomar varias formas
  • Depende de la instrucción que se está ejecutando
  • Puede incluir
  • Lectura/Escritura de la memoria
  • Entrada/Salida
  • Transferencias de registros
  • Operaciones en la ALU

71
Pre-captura
  • La captura se hace accesando memoria
  • La ejecución usualmente no accesa memoria
    principal
  • Puede capturar la siguiente instrucción durante
    la ejecución de la instrucción actual
  • A esto se le llama pre-captura de instrucción

72
Procesamiento en tuberías (Pipelining)
  • Extraer instrucción
  • Decodifica instrucción
  • Calcula operandos
  • Extraer operandos
  • Ejecutar instrucciones
  • Escribir resultados
  • Sobreponer estas operaciones

73
Mejora el rendimiento
  • Pero no al doble
  • La captura es normalmente más corta que la
    ejecución
  • Pre-capturar más de una instrucción?
  • Cualquier salto significa que las instrucciones
    pre-capturadas no se requieren
  • Añade más estapas para mejorar el rendimiento

74
Diagrama de tiempos del funcionamiento del cauce
de instrucciones
75
Efecto de un salto condicional en el
funcionamiento del cauce de instrucciones
76
Qué es superescalar?
  • Las instrucciones comunes pueden iniciarse y
    ejecutarse independientemente
  • Aritméticas, carga/almacenamiento, salto
    condicional
  • Igualmente aplicable a RISC y CISC
  • En práctica usualmente en RISC

77
Por qué superescalar?
  • La mayoría de las operaciones están en cantidades
    escalares
  • Ver RISC
  • Mejorar esas operaciones para obtener una mejora
    global

78
Organización superescalar usual
Banco de registros de punto flotante
Banco de registros de enteros
Unidades Funcionales segmentadas
Memoria
79
Supersegmentado
  • Muchas de las etapas de una tubería (pipeline)
    necesitan menos que la mitad de un ciclo de reloj
  • Duplicando la velocidad interna de reloj
    obtenemos dos tareas por ciclo externo de reloj
  • El superescalar permite extracción ejecución
    paralela

80
Comparación de superescalar y supersegmentada
(máquina base)
81
Comparación de superescalar y supersegmentada
(supersegmentada)
82
Comparación de superescalar y supersegmentada
(superescalar)
83
RISC
  • Reduced Instruction Set Computer
  • Características clave
  • Muchos registros de propósito general
  • O el uso de la tecnología del compilador para
    optimizar el uso de los registros
  • Conjunto de instrucciones limitado y simple
  • Énfasis en optimizar el pipelining de las
    instrucciones

84
Características del RISC
  • Una instrucción por ciclo
  • Operaciones de registro a registro
  • Menos, modos de direccionamiento simples
  • Menos, formatos de instrucciones simples
  • Formato de instrucción fijo
  • Más tiempo/esfuerzo para compilar

85
Intención del CISC
  • Desarrollo fácil del compilador
  • Hacer la ejecución eficiente
  • Operaciones complejas en micro-código
  • Soporta lenguajes de alto nivel más complejos

86
Por qué CISC?
  • El costo del software excede los costos del
    hardware
  • Cada vez más lenguajes de alto nivel complejos
  • Huecos en la semántica

87
RISC vs CISC
  • Los diseños RISC pueden sacar provecho de la
    inclusión de algunas características CISC
  • y los CISC sacar provecho de algunas
    características RISC
  • ejemplos. PowerPC y Pentium
Write a Comment
User Comments (0)
About PowerShow.com