450 likes | 645 Views
ORGANIZACIÓN COMPUTACIONAL. UNIDAD DE CONTROL EJECUCIÓN DE INSTRUCCIONES. FORMATO DE INSTRUCCIONES. El código binario de cada instrucción se debe interpretar para diferenciar entre los diferentes campos que contiene la instrucción: Código de operación Modo de direccionamiento Etc.
E N D
ORGANIZACIÓN COMPUTACIONAL UNIDAD DE CONTROL EJECUCIÓN DE INSTRUCCIONES
FORMATO DE INSTRUCCIONES • El código binario de cada instrucción se debe interpretar para diferenciar entre los diferentes campos que contiene la instrucción: • Código de operación • Modo de direccionamiento • Etc. • El formato de la instrucción indica los campos y el tamaño de los mismos para cada instrucción
FORMATO DE INSTRUCCIONES • Los dos campos básicos en un formato son: • El código de operación (CO) que indica la operación a realizar • El campo de dirección (CD) que determina la dirección de un dato, resultado o instrucción a la que hay que bifurcar. • El campo de dirección, dependiendo del tipo de direccionamiento, se divide en subcampos.
FORMATO DE INSTRUCCIONES • Campo de código de operación (CO): Especifica la operación que realiza cada instrucción. • El número de instrucciones que constituyen el repertorio del computador vendrá limitado por la longitud de este campo. • El código de operación implica normalmente el tipo de operando. • Cuando las instrucciones pueden tener mas de un formato, el código de operación, que siempre es el primer campo del formato, debe indicar el formato de la instrucción actual.
FORMATO DE INSTRUCCIONES • Campo de dirección (CD): Las instrucciones pueden contener varios campos de dirección para indicar las posiciones de memoria o los registros internos donde se encuentran sus operandos, así como la posición del resultado. • Cada instrucción puede tener un número diferente de operandos. • Hay instrucciones sin operandos: • HALT • NOP • Hay instrucciones son un solo operando • Instrucciones de salto incondicional • Llamadas a subrutinas
FORMATO DE INSTRUCCIONES • Campo de dirección (CD) • Hay instrucciones de dos operandos: • Instrucciones de operaciones aritméticas lógicas diádicas que guardan el resultado en uno de los operandos origen • Hay instrucciones de tres operandos • Instrucciones de operaciones aritméticas lógicas diádicas que guardan el resultado en un lugar distinto de cualquiera de los dos operandos origen
FORMATO DE INSTRUCCIONES • Campo de dirección (CD) • El campo de dirección puede dividirse a su vez en subcampos. Subcampos en el campo de direcciones
FORMATO DE INSTRUCCIONES • Campo de dirección (CD) • Los subcampos más significativos contenidos en el campo de direcciones son: • Modo de direccionamiento (MD): Se codifica el modo de direccionamiento a emplar para localizar el dato. • Campo de registro (CR): Especifica un registro de la CPU • Campo de dirección (D): Dependiendo del modo de direccionamiento empleado, contiene la dirección absoluta , el desplazamiento relativo, el operando inmediato, etc.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL Estructura de un computador elemental Von Neumann
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Son celdas de memoria internas a la CPU que guardan datos provenientes de la memoria, resultados parciales de operaciones o información sobre el estado actual de la CPU. • Cada procesador tiene un número limitado de registros internos.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Es importante tener en cuenta el tamaño de los registros internos de datos pues indica el número máximo de bits que puede tener un operando, y con cuantos bits la CPU puede realizar operaciones en paralelo. • A este valor se le llama Longitud de palabra del procesador
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos mas usuales: • Los Registros internos mas usuales son: • Registro de instrucción (IR) • Registros de propósito general (AC) • Registros de estado • Contador de programa (PC) • Registros de interfaz con el bus (MAR, MDR)
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registro de instrucción (IR): Almacena la instrucción a ejecutar una vez que la CPU la ha leído de memoria. • Por ejemplo: 16 bits 4 bits para CO 12 bits para CD
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registro de instrucción (IR): • Las señales de control que maneja el IR son: • Para leer las instrucciones de memoria se usan dos señales: la primera es la IR-C1 que carga los 8 bits más bajos del registro (IR[7:0]), y la segunda IR-C2 carga los 8 bits más altos (IR[15:8]) • Una vez hecha la lectura, para habilitar la salida al bus de direcciones del contenido del campo CD (IR[4:15])se usa la señal IR-E
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registros de propósito general (AC): Son varios registros que sirven para almacenar datos o resultados intermedios. • En el ejemplo, hay un único registro llamado Acumulador (AC) que además de actuar como operando, almacena el resultado de la última operación realizada por la ALU • Para su trabajo, el AC dispone de dos señales de control: una para cargar el AC con el dato (AC-C), y la otra para habilitar la salida del dato al bus interno (AC-E)
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registros de estado: Almacena en sus bits o “flags” información sobre resultados de operaciones anteriores. Los mas frecuentes son: • Z (cero): Almacena “1” cuando el resultado de la ultimaoperación realizada en la ALU fue cero • N (negativo): Almacena “1” cuando el resultado de la ultima operación realizada en la ALU fue menor que cero • C (acarreo): Almacena “1” cuando el resultado de la ultima operación realizada en la ALU produjo un acarreo en el último bit
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registros de estado: • CP (acarreo parcial): Almacena “1” cuando el resultado de la ultima operación de la ALU produjo acarreo entre el 4to y 5to bit • P (paridad): Almacena “1” cuando el resultado de la ultima operación realizada en la ALU produjo un número par de “1” • O (desbordamiento) Z (cero): Almacena “1” cuando el resultado de la ultima operación realizada en la ALU y almacenado en el AC es incorrecto. Ello debido a que el resultado no se puede representar con los bits que tiene el AC
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Contador de programa (PC): Contiene la dirección de memoria de la próxima instrucción a ejecutarse • Debe ser actualizado por la UC cada vez que se carga una instrucción • En el ejemplo, el tamaño del PC es de 12 bits y se incrementa 2 veces en cada lectura de instrucción ya que las instrucciones completas son de 16 bits y ocupan 2 posiciones de memoria de 8 bits cada una • Como el PC es un contador, se debe activar la señal • PC-INC para incrementar su valor
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Contador de programa (PC): Son registros que almacenan datos que el procesador envía o captura del bus externo de direcciones o del de datos. Usualmente son dos: • MAR (Registro de Almacenamiento de Dirección), almacena la dirección que se pretende poner en el bus externo de direcciones. Como solo debe llevar dicha dirección, la transferencia es unidireccional, usando para ello dos señales de control: MAR-C, que permite tomar la información de la dirección, y MAR-E que es una señal de habilitación triestado para depositar la dirección en el bus externo
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Registros internos • Registros de interfaz con el bus (MAR, MDR): • MDR ( Registro de Almacenamiento de Dato), contiene el dato que el procesador va a enviar o a leer del bus externo de datos. Esta transferencia es bidireccional ya que los datos provienen del bus interno de datos hacia el externo (escritura en memoria) y viceversa (lectura de memoria). De acuerdo a ello, en el MDR existen 4 señales de control: Las dos primeras son señales de carga, una para los datos procedentes del bus de datos interno (MDR-CI) y la otra para los datos procedentes del bus externo (MDR-CE). Las otras dos señales permiten la habilitación interna (MDREI) y la habilitación externa (MDR-EE)
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • La ALU : Es la encargada de realizar todas las operaciones aritmético-lógicas • En el ejemplo, se tiene una ALU de dos entradas: la entrada A recibe los datos del AC, y la entrada B recibe los datos del MDR • Antes de realizar una operación se debe cargar el MDR con uno de los operandos y habilitar la salida de datos de este registro al bus interno de datos. • El otro operando debe estar almacenado en el AC
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • La ALU : • La ALU recibe señales de control sobre el tipo de operación que debe realizar (OP). En el ejemplo, estas operaciones son 6: • OP(001)=A+B • OP(010)=A+1 • OP(011)=A-B • OP(100)=A and B • OP(101)=A or B • OP(110)=B • Como son 6 operaciones se codifican usando 3 líneas de operación, por tanto las entradas serán OP[3:1]
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • La UC : Su función es el gobierno del computador • Lee la instrucción desde memoria, la decodifica y la ejecuta • Debe activar todas las señales de control necesarias para: • Realizar la transferencia entre registros. Tener en cuenta: • En cada transferencia de datos, solo puede haber un registro origen, por lo que no deben activarse las salidas triestado de dos registros a la vez • En el registro destino, la señal de carga será activa por flanco. Esta señal se activa a la mitad del periodo de la señal de reloj para permitir que los datos provenientes de otro registro estén estables en el bus • Generar las señales de operación de la ALU
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • LA MEMORIA PRINCIPAL : • Almacenamiento de datos e instrucciones a través de las líneas de dirección • Necesita de por lo menos 3 señales de control: CS: Selección de la memoria, RD: Orden de lectura y WR: Orden de escritura • Para realizar un ciclo de lectura de memoria, se sigue el siguiente proceso: • a. La UC debe llevar la dirección de memoria al registro MAR • b. Se activa el bus de direcciones externo que conecta con la memoria
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • LA MEMORIA PRINCIPAL: • c. El procesador activa las señales CS y RD y espera a que la memoria deposite los datos en el bus. Este periodo de espera es el tiempo de acceso de memoria (tiempo que necesita la memoria para leer o escribir datos, medido desde la activación de las señales de control) y es de medio periodo del reloj general, en el ejemplo • d. La UC activa la señal de carga en el MDR. Esto se cumple tanto para datos como para instrucciones. • El ciclo de escritura se realiza de manera análoga, diferenciándose solo en la habilitación de la señal WR en vez de RD
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Operaciones con registros : • Las operaciones básicas son: • Carga: Almacena un nuevo valor en el registro. Para ello, debe ponerse el nuevo valor en la entrada y luego activar la señal de carga del registro • ● Lectura: Permite la salida del dato contenido en el registro. Generalmente los registros comparten un bus para realizar la transferencia, pero solo uno de ellos podrá usar el bus en un momento. La señal de salida o habilitación actuará sobre los buffer triestado para conectar el registro al bus y permitir que los datos contenidos en el registro pasen al bus
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Operaciones con registros : • Reset: Inicializa el valor contenido en el registro a un valor conocido • Incremento: aumenta su contenido en forma autónoma (contador) • Desplazamiento: Mueve sus bits uno a uno de izquierda a derecha y viceversa
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones: Consiste en la implementación del repertorio de instrucciones. • Todas las instrucciones tienen 4 bits para el código de operación y 12 para el código de dirección, lo que permite direccionar 4 KB
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones: • Las instrucciones básicas son: • Instrucciones aritméticas y lógicas: Definidas por la ALU • Instrucciones de transferencia: Copian el contenido del AC a memoria (STORE) o leen el dato desde memoria al AC (LOAD) • Instrucciones de salto: Representan los saltos incondicionales o condicionales (de acuerdo al resultado del registro de estado) • Otras instrucciones: No hacer nada, de paro del procesador
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones : • Instrucciones aritméticas y lógicas: • ADD CD: suma los dos operandos y guarda el resultado en el AC • INC AC: Incrementa el valor del acumulador en en una unidad • SUB CD: Resta los dos operandos y almacena el resultado en AC • AND CD: instrucción lógica and bit a bit de los operandos almacenando el resultado en AC. • OR CD: instrucción lógica or bit a bit de los operandos almacenando el resultado en AC.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones : • Instrucciones de transferencia de datos: • LW CD: Lee el valor contenido en en la posición de memoria CD y lo almacena en AC • SW CD: Escribe el valor contenido en AC en la posición de memoria indicada por CD
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones : • Instrucciones de salto: • JMP CD: (salto incondicional)La próxima instrucción a ejecutar es la contenida en memoria en la posición CD • JM- CD: (salto condicional) Dependiendo del valor del indicador de estado correspondiente se rompe la secuencia de ejecución de la instrucción. • JMZ CD : Indicador de cero • JMN CD : Indicador de negativo • JMC CD : Indicador de acarreo • JMO CD : Indicador de desbordamiento • JMP CD : Indicador de paridad • JMCP CD : Indicador de acarreo parcial
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Instrucciones : • Otras Instrucciones : • NOP: Instrucción que indica no hacer nada • STP: Instrucción de paro del procesador.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Ejecución de la instrucción: ADD (456) // AC ← AC + M(456) La instrucción consta de 16 bits • Como la longitud de palabra del bus de datos es de 8 bits, se necesitan dos lecturas. • Para empezar a ejecutar la instrucción se supone que inicialmente el PC contiene la dirección de dicha instrucción. • La ejecución se divide en 4 fases, cada una tiene un determinado número de periodos de reloj y en cada una de ellas se realizan unas determinadas operaciones básicas mediante la activación de las correspondientes señales de control.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Ejecución de la instrucción: ADD (456) // AC ← AC + M(456) • MAR ← PC: Transfiere la dirección del 1er byte de la instrucción al registro MAR • PC ← PC + 1: Se incrementa PC para apuntar a la siguiente posición de memoria • MDR ← M (MAR): Se ejecuta una lectura de memoria cargando el MDR con la parte baja de la instrucción • IR ← MDR: Se transfieren los 8 bits de la parte baja de la instrucción que están en el MDR a los 8 bits menos significativos del IR (IR[0:7])
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Ejecución de la instrucción: ADD (456) // AC ← AC + M(456) • MAR ← PC: Transfiere la dirección del 2do byte de la instrucción al registro MAR • PC ← PC + 1: Se incrementa PC para apuntar a la siguiente posición de memoria • MDR ← M (MAR): Se ejecuta una lectura de memoria cargando el MDR con la parte alta de la instrucción • IR ← MDR: Se transfieren los 8 bits de la parte alta de la instrucción que están en el MDR a los 8 bits más significativos del IR (IR[8:15])
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Ejecución de la instrucción: ADD (456) // AC ← AC + M(456) • MAR ← IR: [4:15] Se transfiere la dirección del dato al registro MAR para iniciar la lectura del mismo en la memoria • MDR ← M (MAR): Se realiza la lectura de la posición de memoria cuya dirección está contenida en el Campo de Dirección de IR en los bits IR[4:15 • AC ← AC + MDR: Una vez el dato esté en el MDR se conecta el registro con la entrada B de la ALU mediante la señal de habilitación MDR-EI y se activan las señales OP con el código de suma. Cuando termina dicha operación, que tiene un retraso de medio ciclo de reloj, se activa la señal de carga de AC
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • La ALU: Está compuesta por diversos circuitos especializados en realizar una transformación particular de los datos (operaciones aritméticas y lógicas). • Puede disponer de varias unidades: • Unidad de suma/resta de enteros • Unidad de multiplicación de enteros • Unidad de división de enteros • Unidad de división de flotantes • Etc.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Los módulos en los que se puede dividir la ALU se clasifican en función de diversos parámetros: • Módulo secuencial o combinacional • Números de operandos del módulo • Incorporación del paralelismo del módulo • Operación aritmético o lógica • Integración en la CPU
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • Un ejemplo del módulo de ALU es el sumador elemetal de 1 bit. • Si se conectan 8 sumadores elementales se tiene un sumador paralelo. • Si la unidad de control suministra de manera secuencial los bits a una sola unidad de suma elemental y almacena el resultado parcial en un registro, se trata de un sumador serie.
Ai Si Bi Cin Cout ARQUITECTURA DE UN COMPUTADOR ELEMENTAL Sumador elemental de 1 bit
a i b i ai bi Σ Σ Couti Cini Cout i Cin i S i S i ARQUITECTURA DE UN COMPUTADOR ELEMENTAL • La principal ventaja es que es más pequeño. • La desventaja es que es más lento.
ARQUITECTURA DE UN COMPUTADOR ELEMENTAL Sumador combinacional paralelo b0 ai ai bi bi bi ai bi ai bi ai ai ai bi bi ai Σ Σ Σ Σ Σ Σ Σ Σ Si Si Si Si Si Si Si Si