Post on 08-Sep-2018
Tema 7:Tema 7:Esquema del Funcionamiento de una Esquema del Funcionamiento de una
ComputadoraComputadora
Escuela Politécnica SuperiorIngeniería Informática
Universidad Autónoma de Madrid
2Escuela Politécnica Superior
Esquema del Funcionamiento de una ComputadoraEsquema del Funcionamiento de una Computadora
OBJETIVOS
Adquirir los conceptos básicos sobre la CPU
Comprender las fases de funcionamiento de la CPU
TEMA 7: ESQUEMA DEL FUNCIONAMIENTO DE UNA COMPUTADORA
7.1 La unidad aritmético-lógica. 7.2 La unidad de control.7.3 Buses.7.4 Formato de las instrucciones.7.5 Operación de la CPU.
Bibliografía Tema 7:- Introduction to Computer Hardware and Data Communications.
P.-A. GOUPILLE. (Prentice Hall, 1993). Cap. 14 y Cap. 15.
3Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Unidad de entrada• Unidad de salida• Memoria
• Unidad aritmético-lógica• Unidad de control
Unidad de control(UC)
Unidad aritmético-lógica
(UAL)
Memoria central
Memoria auxiliar
CPU
Entrada Salida
4Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Unidad de entrada:– Dispositivo por donde se introducen en el ordenador los
datos e instrucciones– Ejemplos: Teclado, ratón, escáner, lectora de tarjetas de
crédito ...• Unidad de salida:
– Dispositivo por donde se obtienen los resultados de los programas ejecutados en la computadora
– Ejemplos: Pantalla, impresora, altavoz ...
5Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Memoria central o principal– Unidad donde se almacenan tanto los datos como las
instrucciones durante la ejecución de los programas– Actúa con gran velocidad y está ligada a las unidades más
rápidas del ordenador (UC y ALU)– Para que un programa se ejecute debe estar almacenado
(cargado) en la memoria principal– Formada por circuitos electrónicos integrados (chips)– Está dividida en posiciones (palabras de memoria) de un
determinado número de bits, n, donde se almacena la información
6Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Memoria central o principal– Cada palabra sólo se puede referenciar por su dirección:
Siempre que se quiera escribir o leer un dato o instrucción en memoria hay que especificar la dirección
– Normalmente hay una zona de la memoria que sólo se puede leer (memoria ROM) y que es permanente, y otra en la que se puede leer y escribir (memoria RAM) y que es volátil
7Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Memoria auxiliar o masiva– La memoria central es muy rápida pero no tiene gran
capacidad de almacenamiento– Para guardar masivamente información se utilizan otros
tipos de dispositivos: discos magnéticos, discos ópticos ...– Dispositivos lentos pero con gran capacidad de
almacenamiento (un millón de veces más lentos y del orden de mis veces más capaces)
8Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• La unidad aritmético-lógica (ALU)– Contiene los circuitos electrónicos con los que se hacen
las operaciones de tipo aritmético y de tipo lógico– Incluye otros elementos auxiliares por donde se
transmiten o almacenan temporalmente los datos (registros) con objeto de operar con ellos
– El símbolo para representar la ALU:
A L U
9Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• La unidad de control– El papel de la unidad de control es gestionar la ejecución
de programas:• Toma las instrucciones una después de otra, decodifica el código
de instrucción y envía microinstrucciones a las otras unidades del sistema que participan en la ejecución
• Busca la siguiente instrucción y repite el proceso
10Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores• La unidad de control
– Para realizar esta tarea, la UC tiene un conjunto de componentes internos:
• Registro de instrucción: Memoriza temporalmente la instrucción del programa que la UC está ejecutando
• Secuenciador: Envía las microinstrucciones adecuadas al código de operación de la instrucción que se está ejecutando
• Registro de estado: Conjunto de biestables (flags) que almacenan información sobre la última operación realizada en la ALU (si hubo acarreo, si el resultado fue negativo o cero ...)
• Contador de programa: Registro especializado que el sistema carga automáticamente al principio de la ejecución del programa con la dirección de memoria de la primera instrucción a ejecutar. Cada vez que se carga una instrucción en el registro de instrucción se incrementa el contador de programa
11Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores• Buses
– Los componentes de la CPU se comunican entre sí y con los componentes fuera de la CPU mediante cables que permiten la transferencia de datos binarios
– Conjunto de cables que transmite información en paralelo: Bus
– Bus de datos:• Para transferir instrucciones o datos entre los componentes del
sistema• Dependiendo del número de cables que componen el bus se pueden
transferir palabras de 8, 16, 32, 64 ... bits en paralelo Ancho del bus
• Bus bidireccional
12Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores• Buses
– Bus de direcciones:• Se usa para transferir instrucciones: La dirección de la siguiente
instrucción o de un dato• Unidireccional: Desde la CPU a la memoria• Si el bus de direcciones es estrecho Las instrucciones se
transfieren en dos veces: La mitad más significativa seguida de la menos significativa
• El ancho del bus de direcciones puede determinar el tamaño de la memoria que puede direccionarse directamente: Bus de 16 bits permite direccionar 216 posiciones de memoria diferentes
– Bus de control:• Permite transferir las microinstrucciones generadas por el
secuenciador a los distintos componentes del sistema
13Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
• Para un buen funcionamiento del conjunto procesador-memoria:– Registro de dirección de memoria: Donde se almacena la
dirección del dato o instrucción a leer o escribir– Registro de memoria: Donde se almacena el dato a
escribir en la memoria o la información leída de memoria
14Escuela Politécnica Superior
Estructura funcional de los ordenadoresEstructura funcional de los ordenadores
15Escuela Politécnica Superior
El formato de las instruccionesEl formato de las instrucciones
• Una instrucción es una operación elemental en un lenguaje de programación; la orden más pequeña que un programador puede dar a un ordenador
• Las instrucciones contienen dos tipos de información:– Lo que tiene que hacer la instrucción (sumar, almacenar
datos ...)– Con qué datos tiene que hacerlo
16Escuela Politécnica Superior
El formato de las instruccionesEl formato de las instrucciones
• Las instrucciones son cadenas de 0’s y 1’s• La traducción de una instrucción de lenguaje de alto
nivel a binario la realiza un programa especial llamado intérprete o compilador
• La traducción de lenguaje ensamblador a binario la realiza un ensamblador especialmente escrito para el microprocesador en concreto
17Escuela Politécnica Superior
El formato de las instruccionesEl formato de las instrucciones
• Cuando la unidad de control recibe una instrucción envía una lista de órdenes a las unidades que toman parte en la ejecución de la instrucción: Microinstrucciones
18Escuela Politécnica Superior
El formato de las instruccionesEl formato de las instrucciones• Instrucción, compuesta por dos campos:
– Código de operación• Le dice al ordenador qué operación hay que llevar a cabo y qué
partes del ordenador están involucradas en su ejecución• La longitud de este campo depende del número de instrucciones
que el microprocesador pueda entender. Código de operación de 8 bits Conjunto de 256 instrucciones (28)
– Campo de dirección• Los datos sobre los que se realizan las operaciones están en
memoria. La memoria está dividida en posiciones de memoria. Cada una tiene asociada una dirección, que suele representarse en hexadecimal
• El campo de dirección contiene la dirección de la posición de memoria donde están almacenados los datos
19Escuela Politécnica Superior
• Fases de funcionamiento de la CPU– Hay dos fases:
• Fase de captación de la instrucción• Fase de ejecución de la instrucción
OperaciOperacióón de la CPUn de la CPU
20Escuela Politécnica Superior
• Fase de captación de la instrucción– El programa en código máquina que hay que ejecutar se
carga en memoria central– Antes del comienzo de la ejecución del programa se
carga el contador de programa con la dirección de la primera instrucción a ejecutar. Lo hace un programa del sistema operativo: Cargador
– El secuenciador genera las microinstrucciones necesarias para transferir la siguiente instrucción desde la memoria principal hasta la CPU para poder ejecutarla
OperaciOperacióón de la CPUn de la CPU
21Escuela Politécnica Superior
• Fase de captación de la instrucción– La secuencia de microinstrucciones es la siguiente:
RPC→LMA→REA→FET→LIR→IPC
RPC (Read Program Counter): (Program Counter) → Address busLMA (Load Memory Address register): (Address Bus) → Memory address registerREA (REAd from Memory): (Memory) → Memory data registerFET (FETch memory data register): (Memory data register) → Data busLIR (Load Instruction Register): (Data bus) → Instruction RegisterIPC (Increment Program Counter): (Program counter) + 1
– Que se repite cada vez que se ha terminado de ejecutar una instrucción
OperaciOperacióón de la CPUn de la CPU
23Escuela Politécnica SuperiorLMA LMA (Load (Load MemoryMemory AddressAddress registerregister))
CPU
28Escuela Politécnica Superior
• Fase de ejecución de la instrucción– Una vez cargada la instrucción en el registro de
instrucciones:• El decodificador transforma su código de operación en una
serie de microinstrucciones.• El secuenciador envía las microinstrucciones a los dispositivos
y es ejecutada.
OperaciOperacióón de la CPUn de la CPU
29Escuela Politécnica Superior
• Ejemplo: Sumar los números 8H y 4H almacenados en las posiciones de memoria F800H y F810H, y almacenar el resultado en la posición F820H– Tres operaciones:
• Cargar el primer valor en el acumulador• Sumar el segundo valor al acumulador (resultado en el acumulador)• Almacenar el resultado en la posición especificada
OperaciOperacióón de la CPUn de la CPU
30Escuela Politécnica Superior
• Ejemplo: ...– Programa en lenguaje ensamblador:
LD A, (F800H) Carga acumulador con contenido de la dirección F800HADD A, (F810H) Suma contenido dirección F810H con acumuladorLD (F820H), A Almacena contenido acumulador en la posición F820H
– Código máquina generado por el ensamblador, algo del estilo3A F8 00C6 F8 1032 F8 20
OperaciOperacióón de la CPUn de la CPU
31Escuela Politécnica Superior
• Ejemplo: ...– Estado de la memoria antes de ejecutar el programa:
OperaciOperacióón de la CPUn de la CPU
816
416
3A F8 00C6 F8 1032 F8 20
F80016···
F81016···
FB0016FB0116FB0216
Programa
Datos
32Escuela Politécnica Superior
• Ejemplo: ...– Las microinstrucciones generadas por este programa serían:
1ª instrucción: LD A, (F800H)RPCLMAREAFETLIRIPC
LAD Campo dirección registro de instrucción → Bus de direccionesLMA Bus direcciones → Registro de dirección de memoriaREA Memoria → Registro de datos de memoriaFET Registro de datos de memoria → Bus de datosLIA Bus de datos → Entrada A de la ALUNOP Entrada B de la ALU → Salida de la ALULAC Salida de la ALU → Acumulador
OperaciOperacióón de la CPUn de la CPU
33Escuela Politécnica Superior
• Ejemplo: ...2ª instrucción: ADD A, (F810H)
RPCLMAREAFETLIRIPC
LAD Campo dirección registro de instrucción → Bus de direccionesLMA Bus direcciones → Registro de dirección de memoriaREA Memoria → Registro de datos de memoriaFET Registro de datos de memoria → Bus de datosLIB Bus de datos → Entrada B de la ALULIA Bus de datos → Entrada A de la ALUADD Suma con el acumuladorLAC Salida de la ALU → Acumulador
OperaciOperacióón de la CPUn de la CPU
34Escuela Politécnica Superior
• Ejemplo: ...
3ª instrucción: LD (F820H), ARPCLMAREAFETLIRIPC
LAD Campo dirección registro de instrucción → Bus de direccionesLMA Bus direcciones → Registro de dirección de memoriaACB Acumulador → Bus de datosSTO Bus de datos → Registro de datos de memoriaWRI Registro de datos de memoria → Memoria
OperaciOperacióón de la CPUn de la CPU
35Escuela Politécnica Superior
• Ejemplo: ...– Nuevas microinstrucciones:
OperaciOperacióón de la CPUn de la CPU
39Escuela Politécnica SuperiorLADLAD (Load (Load ADdressADdress fromfrom instructioninstruction registerregister))
CPU
40Escuela Politécnica SuperiorLIALIA (Load (Load Input A of arithmetic and logic unitInput A of arithmetic and logic unit))
CPU
41Escuela Politécnica SuperiorLIBLIB (Load (Load InputInput B B ofof arithmeticarithmetic andand logiclogic unitunit))
CPU
45Escuela Politécnica Superior
• Ejemplo: ...– De forma esquemática:
– El esquema completo se muestra a continuación:
OperaciOperacióón de la CPUn de la CPU
LAD→LMA→REA→FET→LIA→NOP →LACLAD→LMA→REA→FET→LIB→LIA→ADD→LACLAD→LMA→ACB→STO→WRI
3A F8 00 C6 F8 10 32 F8 20
84Escuela Politécnica Superior
• Ejercicio– Cambios en la secuencia de microinstrucciones
anteriores si, en las mismas condiciones, se ejecutaLD A, (F80016)MUL A, (F81016)LD (F82016), A
– Suponiendo:• MUL A, (F81016) Acumulador← dato del acumulador *dato
de la dirección F81016• La microinstrucción MUL hace que la ALU multiplique sus
entradas y deja el resultado en su salida actualizando el registro de estado
OperaciOperacióón de la CPUn de la CPU