
Assembler: Microprocesadores
Información del documento
Autor | Sergio Hernán Rocabado Moreno |
Escuela | Universidad Nacional de Salta |
Especialidad | Arquitectura y Organización de la Computadora, Sistemas Operativos |
Empresa | FUNTICs – Fundación para la Investigación y Desarrollo en Nuevas Tecnologías |
Lugar | Salta |
Tipo de documento | Libro |
Idioma | Spanish |
Formato | |
Tamaño | 517.15 KB |
Resumen
I.Estructura y Funcionamiento de la CPU Unidad Central de Procesamiento
Este documento describe la arquitectura de computadoras, centrándose en la CPU, incluyendo sus componentes principales: la Unidad Aritmético Lógica (ALU), encargada de realizar operaciones aritméticas y lógicas; la Unidad de Control, que gestiona la ejecución de instrucciones; y los registros, unidades de almacenamiento de alta velocidad. Se explica la comunicación entre estos componentes a través del bus, un canal de comunicación que se divide en bus de datos, de direcciones y de control. Se detalla el proceso de recuperación de instrucciones (Ciclo Fetch) y la importancia del contador de microprograma para el control del flujo de ejecución. Se mencionan diferentes modelos de microprocesadores (8086, 80286, 80386) y sus técnicas de direccionamiento de memoria, incluyendo el direccionamiento segmentado. El acceso directo a memoria (DMA) también se describe como un método para transferir datos sin la intervención directa de la CPU. Finalmente, se describe el papel del BIOS en la compatibilidad entre diferentes implementaciones de hardware.
1. Registros de la CPU
La sección describe los registros de la CPU como unidades de almacenamiento de alta velocidad, cruciales para el procesamiento de datos. Se enfatiza su rol en la transferencia de información hacia y desde la memoria. La velocidad de estos registros contrasta con la memoria principal, destacando su importancia para optimizar el rendimiento de la CPU. El texto menciona ejemplos de registros, aunque no los define completamente en esta sección, insinuando su importancia en operaciones posteriores. Se establece una base para la comprensión de la arquitectura interna de la CPU y su dependencia de estos componentes de alta velocidad para una eficiente ejecución de instrucciones. La velocidad y capacidad de almacenamiento de los registros son factores determinantes en el diseño y rendimiento general de la CPU. Su interacción con otros componentes de la CPU, como la ALU y la Unidad de Control, se menciona implícitamente, indicando su papel fundamental en el flujo de información dentro del procesador.
2. El Bus Comunicación en la Arquitectura de la CPU
Esta sección explica el concepto de bus como el principal medio de comunicación entre los componentes de la CPU y otros dispositivos. El bus se describe como un conjunto de líneas o hilos, donde cada uno transporta un bit de información. Se subraya la división del bus en diferentes tipos según la información que transporta: bus de datos, bus de direcciones y bus de control. Se enfatiza la importancia de este sistema para evitar conflictos en la transmisión de datos. La comunicación simultánea entre múltiples dispositivos a través de un bus podría causar interferencia o pérdida de datos; por ello, se describe implícitamente la necesidad de mecanismos de control y arbitraje para gestionar el acceso al bus de manera eficiente. El texto introduce la idea de la transmisión en serie y paralelo, aunque no se profundiza en sus diferencias. En resumen, esta parte del texto sienta las bases para comprender la estructura de comunicación de la CPU y su interacción con la memoria y los dispositivos periféricos.
3. Comunicación del Microprocesador
Se detallan las tres formas principales en que un microprocesador se comunica: acceso directo o indirecto a memoria (DMA), control del flujo de información mediante circuitos internos (como controladores de interrupciones y DMA), y control del flujo de información entre dispositivos conectados a través de controladores de dispositivos. El acceso directo a memoria (DMA) se presenta como una técnica que permite a ciertos dispositivos, como unidades de disco y puertos serie, acceder a la memoria directamente sin intervención de la CPU, mejorando la eficiencia en la transferencia de grandes cantidades de datos. El acceso indirecto a memoria se realiza a través de los registros internos de la CPU. La gestión de la comunicación entre la CPU y los periféricos se realiza mediante controladores de dispositivos, generalmente ubicados en placas separadas. Esta sección explica la complejidad de la comunicación del microprocesador, poniendo de relieve la importancia de la gestión eficiente de la información para garantizar el correcto funcionamiento del sistema.
4. Chips de Apoyo y Filosofía de Diseño
Aquí se discuten los controladores de entrada/salida, subsistemas especializados que actúan de interfaz entre la CPU y el hardware de E/S. Se proporciona el ejemplo de un teclado, cuyo chip controlador traduce las señales eléctricas en un código de 8 bits. También se describe el controlador DMA, permitiendo la transferencia de datos entre la memoria y dispositivos sin la intervención de la CPU. Finalmente, se aborda la filosofía de diseño de las PC compatibles, enfocándose en la importancia del BIOS para asegurar la compatibilidad funcional entre diferentes sistemas a pesar de las diferencias en el hardware. El BIOS proporciona un conjunto de rutinas que abstraen la complejidad del hardware, permitiendo al programador interactuar con el sistema sin necesidad de un conocimiento detallado de los componentes físicos. La compatibilidad, un elemento clave en el diseño, se mantiene gracias a la estandarización que ofrece el BIOS.
5. Esquema en Bloque de la CPU y su Funcionamiento
Esta parte presenta un esquema en bloque de una CPU de un bus, identificando los principales componentes: registros, bus, compuertas, Unidad de Control (CU), y Unidad Aritmético Lógica (ALU). Se explica la comunicación entre los registros y bloques mediante buses, incluyendo la importancia de las compuertas para controlar el flujo de información y evitar conflictos. Se describe la función de la ALU en la ejecución de operaciones aritméticas y lógicas y de la CU en el reconocimiento e interpretación de instrucciones mediante microprogramación. Se explica la existencia de un bus de direcciones y un bus de datos, cruciales para la transferencia de información entre la CPU y la memoria. El uso de señales de control por parte de la Unidad de Control para dirigir las operaciones de la ALU y la memoria también se describe. En general, esta sección proporciona una visión general de la estructura y el funcionamiento interno de la CPU.
6. Funcionamiento de la CPU Ciclo de Fetch e Instrucciones
Se detalla el funcionamiento de la CPU, incluyendo la transferencia de información y un ejemplo de instrucción sin acceso a memoria. Se explica el ciclo de fetch, el proceso de recuperación de instrucciones de memoria, y su optimización. Se introduce el contador de microprograma (mPC) como el elemento que controla la secuencia de microinstrucciones dentro del microprograma asociado a cada instrucción. Se analizan las instrucciones con un operando en memoria, mostrando la secuencia de pasos necesarios para leer y procesar los operandos. El proceso de ejecución de estas instrucciones involucra la lectura de datos desde la memoria, su procesamiento y el almacenamiento de los resultados. Se explica cómo se manejan múltiples operandos en memoria, involucrando ciclos de lectura y escritura repetidos para procesar cada byte. El texto destaca la importancia de optimizar el ciclo de fetch para mejorar el rendimiento general de la CPU. La sección también toca la gestión de los códigos de condición que son cruciales para el control de flujo durante la ejecución.
II.Sistemas de Numeración y Representación de Datos
Se exploran diferentes sistemas de numeración (binario, decimal, octal, hexadecimal) y sus métodos de conversión. Se describe la importancia de comprender estos sistemas para la representación de datos dentro de una computadora. Se analizan los códigos de representación de caracteres como ASCII y EBCDIC, incluyendo la representación de números decimales en estos códigos (empaquetado y desempaquetado). Se define el concepto de bit como la unidad mínima de información y se explica cómo se utiliza para representar datos en la memoria. Se describe la representación hexadecimal del contenido de la memoria y sus ventajas para la legibilidad.
1. Sistemas de Numeración y Representación de la Información
Esta sección introduce la necesidad de representar datos diversos, como números, texto y otros valores, dentro de la memoria de una computadora. Se establece que para ello se utilizan sistemas de numeración, enfatizando la importancia de comprender cómo se codifica y almacena la información. Se anticipa la discusión de diferentes convenciones para representar esta información, presentando el problema fundamental de la codificación de datos para su procesamiento y almacenamiento en sistemas digitales. El texto destaca la necesidad de una representación eficiente y consistente, preparando el terreno para la explicación posterior de sistemas de numeración específicos y códigos de representación de datos como ASCII y EBCDIC. Se subraya la relación entre la forma en que se representan los datos y la capacidad de las computadoras para procesarlos, introduciendo el concepto de sistemas de numeración como un componente fundamental de la arquitectura de las computadoras.
2. Sistemas de Numeración Posicionales
Se centra en los sistemas de numeración posicionales, explicando su funcionamiento mediante la representación de un número como una suma ponderada de potencias de una base (b). Se dan ejemplos con diferentes bases, incluyendo el sistema decimal (base 10), binario (base 2), octal (base 8) y hexadecimal (base 16). Se describe el concepto de dígitos más y menos significativos, crucial para la interpretación de números en cualquier base. Se explica la aritmética de base b y los métodos de conversión entre bases, incluyendo la conversión de números enteros y de la parte fraccionaria. Se menciona la posibilidad de representaciones infinitas en ciertas conversiones, lo que requiere definir criterios de aproximación. En resumen, esta sección provee los fundamentos matemáticos para entender cómo se representan los números en diferentes bases, que son esenciales para la representación interna de datos en las computadoras.
3. Representación de la Información Códigos y Cadenas de Caracteres
Se describe la representación de la información en una computadora, enfatizando el uso de códigos para representar datos. Se define el concepto de bit como la unidad mínima de representación, con dos estados posibles (0 y 1), reflejando el funcionamiento de los circuitos electrónicos. Se presentan los códigos de representación como ASCII y EBCDIC, destacando sus diferencias en el número de bits utilizados y su aplicación. La sección explica la representación de números decimales en ASCII y EBCDIC, tanto en formato empaquetado como desempaquetado, resaltando las diferencias entre ambas representaciones. También se analiza la representación de números en binario y la forma de representar cadenas de caracteres, incluyendo la utilización de un carácter especial para marcar el final de la cadena. Se incluye una breve mención al código Baudot y sus desventajas. En resumen, se detallan las diversas formas de codificar y representar datos en una computadora, desde números hasta caracteres, utilizando diferentes códigos y técnicas.
III.Direccionamiento de Memoria en Microprocesadores x86
Se profundiza en las técnicas de direccionamiento de memoria utilizadas por los microprocesadores de la familia x86 (8086, 80286, 80386). Se explica cómo estos procesadores direccionan la memoria RAM, superando las limitaciones del tamaño de los registros. Se describe el direccionamiento segmentado en el 80286 y 80386, permitiendo el acceso a un espacio de direcciones mayor. Se menciona el modo de direccionamiento "8086 virtual" en el 80386, permitiendo la ejecución de múltiples programas 8086 simultáneamente. La diferencia entre direcciones lógicas y físicas se hace relevante en este contexto.
1. Direccionamiento de Memoria en el 8086
Esta sección describe el direccionamiento de memoria en el microprocesador 8086, que utiliza registros de 16 bits y un bus de direcciones que permite direccionar 1 MB de RAM. Se explica la necesidad de una técnica especial para superar la limitación de un registro de 16 bits, que solo puede almacenar hasta 64 KB. Para direccionar 1 MB, se utilizan dos registros. También se describe cómo se almacenan las palabras de 16 bits en memoria, con el byte menos significativo en la posición más baja y el byte más significativo en la posición más alta, un esquema a veces llamado "almacenamiento inverso de palabras". Esta parte destaca la diferencia entre la capacidad de direccionamiento del microprocesador y el tamaño de sus registros internos, mostrando la necesidad de estrategias de direccionamiento más complejas para acceder a espacios de memoria mayores. La descripción de cómo se almacenan las palabras de 16 bits introduce el concepto de organización de datos en memoria.
2. Direccionamiento Segmentado en el 80286
Se explica el direccionamiento segmentado del 80286, que utiliza una tabla de descriptores de segmento. Cada descriptor contiene una dirección base de 24 bits que indica el inicio de un segmento en memoria. La dirección final se calcula sumando la dirección base y un desplazamiento de 16 bits. Este esquema permite al 80286 acceder hasta 2²⁴ bytes de memoria (16 MB). Además, se menciona que cada descriptor proporciona atributos de segmento (código ejecutable, datos, solo lectura, etc.) y niveles de privilegio para controlar el acceso a la memoria. La sección resalta la capacidad del 80286 para gestionar la memoria de forma más eficiente y segura que su predecesor, el 8086, gracias al direccionamiento segmentado que permite la administración de segmentos de memoria con diferentes permisos y atributos. Se introduce el concepto de memoria protegida y las ventajas que esto ofrece en términos de seguridad y gestión de recursos.
3. Direccionamiento en el 80386 y Modos de Direccionamiento
El documento describe el modo de direccionamiento del 80386, incluyendo un modo de direccionamiento "8086 virtual". Este modo mantiene la compatibilidad con el 8086, mapeando un espacio de 1 MB del espacio de direcciones del 8086 en cualquier parte de los 4 GB del espacio de direcciones del 80386. Esto permite al sistema operativo ejecutar varios programas 8086 simultáneamente, cada uno en su propio espacio de direcciones de 1 MB. Se mencionan los cuatro registros de direcciones del sistema de 32 bits, utilizados para referenciar tablas o segmentos en el modo protegido del 80386. Aunque la información es principalmente utilizada por el microprocesador, el programador puede acceder a ella. La sección contrasta la capacidad de direccionamiento del 80386 con la del 8086, resaltando el salto significativo en la capacidad de gestión de memoria. Se introduce el concepto de virtualización a nivel de direccionamiento, una técnica clave para la multitarea y la gestión eficiente de recursos de memoria.