Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Fundamentos Teóricos. Introducción al microprocesador. La Unidad Central de Proceso (CPU), es un circuito de alta escala de integración compuesto por millones de transistores, encargado del control y ejecución de las operaciones lógicas que se llevan a cabo dentro de un ordenador. Está formado por la unidad de control (UC), la unidad aritmético-lógica (ALU) y la memoria interna. El procesador gestiona lo que recibe y envía la memoria desde y hacia los periféricos mediante la unidad de entrada salida, los buses y los controladores del sistema. Las operaciones más frecuentes en las cuales se ve involucrado el microprocesador, son aquellas que van hacia la memoria o hacia los dispositivos de entrada y salida, donde ocurre un intercambio de datos. A través de la ALU, es capaz de ejecutar operaciones aritméticas y lógicas. Los ciclos de instrucción, de acuerdo con Von Newman, se llevan a cabo entre dos componentes básicos: el CPU y la memoria, en la siguiente forma: El CPU ejecuta los programas que se almacenan en la memoria principal, recuperando la instrucción que en ella se almacena, decodificándola y finalmente ejecutándola. Este ciclo se lleva a cabo con todas las instrucciones que estén almacenadas en la memoria. En los procesadores modernos, estos ciclos se pueden ejecutar en forma simultánea, de acuerdo al tipo de procesador; antiguamente, los procesadores ejecutaban una instrucción a la vez. El microprocesador está dividido en dos bloques funcionales que trabajan en modo asíncrono para maximizar el rendimiento en las operaciones, estos bloques son los siguientes: - Unidad de ejecución: en este bloque, como su nombre lo indica, se ejecutan las instrucciones. Está compuesto por los registros de propósito general, de banderas y la unidad aritmético lógica (ALU), que es aquella que se encarga de realizar las operaciones aritméticas básicas, además de las lógicas, que estén presentes en las instrucciones recibidas por la unidad. - Unidad de interfaz de bus: en este bloque se concentran los procesos que conectan al microprocesador con el exterior, es decir, todas aquellas operaciones de lectura y escritura provenientes de la unidad de ejecución. Una característica relevante de este bloque, es su capacidad de almacenar las instrucciones en una cola con anticipación, para luego transferirlas a la unidad de ejecución al momento de ser ejecutadas. Los registros de propósito general, permiten al programador almacenar, calcular, repetir y acceder a distintos tipos de datos, de acuerdo a lo que el programador codifique en las instrucciones. Estos registros son: - AX: registro acumulador, permite almacenar el resultado de las operaciones aritmético-lógicas que se ejecuten. - BX: registro base, permite calcular direcciones relativas de los datos en memoria. - CX: registro contador, permite indicar el número de veces que un determinado ciclo de instrucciones deberá repetirse. - DX: registro de datos, permite acceder a variables almacenadas en memoria. Adicional a estos registros, existen otros tipos, que cumplen funciones distintas a las de los registros de propósito general. Entre ellos, tenemos los siguientes: Apuntadores de pila y de base (SP, BP): registros con los cuales se puede apuntar a direcciones de memoria específicas. El registro SP, controla el acceso de los datos a la pila para almacenarlos en forma temporal. El registro BP, proporciona direcciones para la transferencia e intercambio de datos. Registros índices (SI, DI): registros que operan con cadenas de datos. El registro SI, suministra la dirección inicial para que una cadena sea manipulada. El registro DI, suministra la dirección de destino de una cadena a ser almacenada luego de una operación de transferencia. Registros de segmento (CS, DS, ES, SS): en el caso de estos registros, contienen determinadas direcciones donde son almacenadas variables o donde se reservan áreas en memoria para la pila o el inicio del programa. En específico, el registro CS contiene la dirección base de inicio del programa, los registros DS y ES, contienen la dirección base del área de memoria donde se almacenan las variables del programa, y el registro SS contiene la dirección base del lugar donde se inicia el área de memoria reservada para la pila. Registro apuntador de instrucciones (IP): este registro contiene la dirección de desplazamiento del lugar de memoria donde está la siguiente instrucción a ejecutar. Registros de estado o banderas: estos registros tienen como propósito almacenar el estado de las diferentes condiciones que maneja el microprocesador, las cuales cambian al ejecutarse una operación aritmética o lógica. Las funciones de cada bandera se explican a continuación: - CF (Acarreo): se activa en caso de que una suma o resta genere acarreo. - OF (Sobreflujo): se activa en caso de que el resultado de una suma o resta sobrepase la capacidad de almacenamiento del registro donde se almacena. - SF (Signo): se activa en caso de que el resultado de una operación sea negativo. - DF (Dirección): se activa cuando el sentido de transferencia de las operaciones de manipulación de cadenas es de derecha a izquierda. - ZF (Cero): se activa si el resultado de una operación aritmética o lógica es cero. - IF (Interrupción): activa y desactiva la terminal INTR del microprocesador. - PF (Paridad): se activa si la paridad de un número es par. - AF (Acarreo auxiliar): se activa si ocurre acarreo en los bits 3 al 4 en una operación de suma o resta. - TF (Trampa): esta bandera funciona como control de ejecución de un programa paso a paso. Modos de direccionamiento del microprocesador. Los modos de direccionamiento son métodos a través de los cuales el CPU accede a los datos que están siendo procesados. Entre ellos, tenemos los siguientes: - Direccionamiento de registro: cuando el operando está en uno de los registros del procesador y es seleccionado por un campo de registro en la instrucción. - Direccionamiento inmediato: cuando el operando figura en la instrucción y no su dirección, es decir, la instrucción contiene la información a operar. - Direccionamiento directo: cuando el campo del operando es la dirección efectiva, es decir, el campo de dirección no necesita transformación para dar la dirección efectiva. - Direccionamiento indirecto de registro: cuando el campo del operando de la instrucción indica la dirección efectiva del operando. - Direccionamiento base más índice: cuando la dirección del operando se calcula sumando un registro de la CPU al campo del operando, el cual se denomina como registro índice. - Direccionamiento de base relativa más índice: cuando el registro índice indica el desplazamiento que se produce a partir de una dirección de memoria que forma parte de la instrucción. - Direccionamiento de índice escalado: cuando la instrucción contiene un factor de escalado que afecta a la dirección efectiva. Instrucciones de salto. El CPU cuenta con los siguientes modos de direccionamiento de la memoria de programa: - Intrasegmento: salto hacia cualquier parte dentro del segmento de código que se está ejecutando. Puede ser directo o indirecto, y esto va a depender de tipo de direccionamiento del microprocesador. - Intersegmento directo: salto hacia cualquier ubicación de memoria dentro de todo el sistema de memoria. Puede ser directo o indirecto, en función del tipo de direccionamiento del microprocesador. - Salto incondicional: permite desplazar la ejecución del programa hacia la dirección especificada en el operando, y continuar ahí la misma. - Salto condicional: permite pasar de un segmento de código a otro sin que estos sean consecutivos, y sin activar etapas intermedias. Instrucción de comparación. La instrucción de comparación se usa para evaluar dos números, de los cuales, uno puede estar almacenadoen memoria. Arquitectura del microprocesador. Existen dos tipos de arquitectura, que obedecen a tipos de tecnologías diferentes. Las mismas se describen a continuación. Arquitectura RISC Es un procesador tradicional, dotado de complejas operaciones especializadas. Utiliza un sistema de direcciones en RAM, conservando en la memoria los operandos y el resultado lo que facilita a los compiladores conservar llenos los 'pipelines' para utilizarlos concurrentemente y reducir la ejecución de nuevas operaciones. En esta tecnología, el conjunto de instrucciones se pueden ejecutar en la misma cantidad de tiempo usando un control cerrado, sus formatos de instrucción son simples y uniformes, utiliza menos ciclos de reloj, conserva sus operaciones en la memoria, así como el resultado, donde cada instrucción puede ser ejecutada en un solo ciclo de la CPU; la longitud de las instrucciones es fija, y las instrucciones de carga y almacenamiento acceden a la memoria por los datos; tiene pocos modos de direccionamiento. Arquitectura CISC Reduce la potencia y complejidad de las instrucciones, aumentando su velocidad de proceso como compensación. Esta arquitectura fue creada para que los programas fueran más sencillos. Debido a la masificación de los PC, permitió que el mercado fuera luego copado de software creado para procesadores CISC. Reduce la dificultad de crear compiladores, permite reducir el costo total del sistema, reduce los costos de creación de software, y mejora la compactación de código. Tiene menos acceso a la memoria, ya que cada instrucción es interpretada.
Compartir