Apuntes Finales - Arquitectura de Computadoras PDF

Summary

These notes provide an introduction to computer architecture, focusing on the fundamental concepts of von Neumann architecture, hardware, software, and firmware. They discuss the key components including the CPU, memory, and input/output units, and how they interact.

Full Transcript

Eje temático Nº1 B-Introducción a la arquitectura de computadoras. Fundamentos de Arquitecturas de Computadoras Computadoras Digitales: Conceptos Introductorios Las computadoras digitales son dispositivos electrónicos que procesan información utilizando valores discretos (dígitos) en lugar de con...

Eje temático Nº1 B-Introducción a la arquitectura de computadoras. Fundamentos de Arquitecturas de Computadoras Computadoras Digitales: Conceptos Introductorios Las computadoras digitales son dispositivos electrónicos que procesan información utilizando valores discretos (dígitos) en lugar de continuos. Estos valores son generalmente representados en formato binario (0s y 1s). Las computadoras digitales se componen de varios componentes básicos que trabajan en conjunto para realizar tareas complejas. Arquitectura Von Neumann Esta arquitectura fue la propuesta por el matemático John von Neumann para la construcción de la computadora EDVAC en 1945 (la máquina se terminó de construir en 1949), sucesora de la que se considera la primer computadora electrónica, la ENIAC (1946). Los conceptos que propuso von Neumann han tenido una vigencia mucho más allá de la esperada en una industria como la de las tecnologías de la información. Por más que llame la atención todos los computadores modernos disponibles comercialmente poseen en el fondo la misma arquitectura que la EDVAC, definida en 1945. Mucho se ha adelantado en materia de los circuitos lógicos (la organización) que implementan la arquitectura, pero casi nada en los principios de diseño que planteó von Neumann hace más de 60 años (que en materia tecnológica representan más de una decena de generaciones completas). Se puede decir que la idea fundamental de von Neumann se apoya en el hecho que una operación compleja normalmente se puede dividir como una secuencia ordenada de operaciones más simples. En otras palabras lo que propuso fue construir una máquina capaz de ejecutar algoritmos en forma explícita. Para ello introdujo el concepto de "programa almacenado" como una "secuencia lógicamente ordenada de instrucciones", siendo las "instrucciones" las operaciones básicas que implementa el hardware a través de sus circuitos lógicos. Una Arquitectura de von Neumann tiene tres bloques constructivos básicos: la Unidad Central de Proceso (o CPU por su sigla en inglés), la Memoria y la Entrada/Salida. Las funciones de cada bloque son: ​ CPU: se encarga de ejecutar los programas. ​ Memoria: almacena el programa (conjunto de instrucciones ordenado lógicamente) y los datos (operadores y resultados de la ejecución de las instrucciones). ​ Entrada/Salida: comunica el computador con el mundo exterior, permitiendo la interacción con los usuarios y con otras computadoras. La Unidad Central de Procesamiento es la encargada de la ejecución de las instrucciones. Para ello la arquitectura de von Neumann propone que la misma cuente con los siguientes elementos básicos: ​ Unidad Aritmética-Lógica (ALU): circuito lógico que implementa operaciones de aritmética binaria (típicamente la operaciones básicas para representaciones "binario" y "complemento a 2" y lógicas (típicamente AND, OR, XOR y NOT bit a bit). También es habitual que implemente operaciones de desplazamiento y/o rotación de bits. ​ Unidad de Control: circuito secuencial que implementa el denominado "ciclo de instrucción", permitiendo acceder a la siguiente instrucción de un programa, leer sus operandos, efectuar la operación indicada en la ALU y guardar el resultado de la misma. ​ Banco (Set / Conjunto) de Registros: una serie de posiciones especiales de memoria, ubicadas físicamente dentro de la propia CPU, que permiten un acceso a operandos y lugares de almacenamiento de resultados mucho más veloz que si estuvieran en el sistema de memoria normal. Algunos de estos registros son de uso interno de la propia CPU más precisamente de su Unidad de Control) y otros son accesibles y utilizables por el programador. Hardware El hardware es la parte física de la computadora, es decir, todo aquello que se puede tocar, que es tangible: CPU, monitor, teclado, cables y demás elementos que se encuentran dentro de la computadora (circuitos). Desde un punto de vista más técnico, es una serie de dispositivos electrónicos relacionados entre sí, cuya función es controlar las operaciones a realizar, la entrada y la salida de datos de la información. Software El software es la parte “inteligente” de la computadora; no es tangible, pero indica al hardware lo que debe hacerse, de acuerdo a las instrucciones establecidas. Dicho de otro modo, el software se integra de las aplicaciones (programas) que usamos en la computadora. Firmware: El firmware es un tipo de software que se encuentra almacenado en la memoria interna de dispositivos electrónicos, generalmente en memoria no volátil como ROM, EPROM o flash. Es esencial para el funcionamiento básico del hardware, ya que actúa como una interfaz entre los componentes físicos del dispositivo y el software de nivel superior. Características principales: 1.​ Propósito específico: El firmware está diseñado para realizar funciones específicas del hardware. 2.​ Almacenamiento permanente: Aunque se puede actualizar en algunos casos, el firmware está pensado para permanecer en el dispositivo durante su vida útil. 3.​ Bajo nivel: Se ejecuta antes que otros programas, configurando y controlando los aspectos básicos del hardware. Estructura y Funcionamiento de un computador El computador es una entidad que interactúa con su entorno externo. Existen cuatro componentes estructurales principales: ​ Unidad Central de Procesamiento (procesador) ​ Memoria Principal: almacena datos ​ Entrada/Salida transfieren datos entre la computadora y el entorno externo ​ Sistema de Interconexión: mecanismo de conexión entre la CPU, la memoria y la E/S. Historia y Evolución de Computadores La evolución de los computadores se ha caracterizado por: ​ Incremento de la velocidad del procesador. ​ Disminución del tamaño de los componentes ​ Aumento del tamaño de memoria ​ Aumento de la capacidad de E/S y de la Velocidad. Primera generación (1940-1956) Estaban construidas con electrónica de válvulas. Se programaban en lenguaje de máquina. Un programa es un conjunto de instrucciones para que la máquina efectúe alguna tarea, y el lenguaje más simple en el que puede especificarse un programa se llama lenguaje de máquina (porque el programa debe escribirse mediante algún conjunto de códigos binarios). Segunda generación (1956-1964) La segunda generación de las computadoras reemplazó las válvulas de vacío por los transistores. Por eso, las computadoras de la segunda generación son más pequeñas y consumen menos electricidad que las de la anterior. La forma de comunicación con estas nuevas computadoras es mediante lenguajes más avanzados que el lenguaje de máquina, los cuales reciben el nombre de "lenguajes de alto nivel" o "lenguajes de programación". Tercera generación (1965-1971) La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. A finales de los años 1950 se produjo la invención del circuito integrado o chip, por parte de Jack S. Kilby y Robert Noyce. Después, llevó a la invención del microprocesador, en la formación de 1960, investigadores como él formaban un código, otra forma de codificar o programar. Cuarta generación (1971-1983) Fase caracterizada por la integración sobre los componentes electrónicos, lo que propició la aparición del microprocesador: un único circuito integrado en el que se reúnen los elementos básicos de la máquina. Se desarrolló el "chip".​ Se colocan más circuitos dentro de un "chip". Cada "chip" puede hacer diferentes tareas. Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer componente, la memoria primaria, es operado por otros "chips".​ Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio. Se desarrollan las microcomputadoras. Quinta generación (1983-1995) La quinta generación surge a partir de los avances tecnológicos que se encontraron. Se crea entonces la computadora portátil o laptop tal cual la conocemos en la actualidad. IBM presenta su primera laptop o computadora portátil y revoluciona el sector informativo. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con los que se manejan las computadoras. Ley de Moore La Ley de Moore es una observación hecha en 1965 por Gordon E. Moore, cofundador de Intel. Esta ley establece que el número de transistores en un chip se duplica aproximadamente cada dos años, lo que implica un incremento exponencial en el poder de procesamiento de las computadoras mientras que el costo por transistor disminuye. Implicaciones principales: Incremento en la potencia de las computadoras: Los procesadores se vuelven más rápidos y eficientes con cada generación. Esto ha permitido el desarrollo de tecnologías avanzadas en hardware y software. Reducción de costos: A medida que los componentes electrónicos se vuelven más pequeños, fabricar chips se vuelve más barato por transistor, lo que reduce el costo de los dispositivos tecnológicos. Miniaturización: La reducción en el tamaño de los transistores permite la creación de dispositivos más compactos, como teléfonos inteligentes, laptops y wearables. Límites físicos: Aunque la Ley de Moore ha sido válida durante décadas, en la actualidad enfrenta límites debido a restricciones físicas en la miniaturización de transistores, como la dispersión del calor y los efectos cuánticos. { Eje Temático Nº2 A - Componentes del Computador y Subsistema E/S. Tipos de Dispositivos de E/S: 1. Dispositivos de entrada Son aquellos que permiten al usuario ingresar información o comandos a un sistema. Se encargan de tomar datos del entorno o del usuario y transformarlos en señales que el sistema pueda entender. ​ Características: ○​ Solo envían datos al sistema. ○​ Transforman información del mundo físico (como texto, sonido o imágenes) en datos digitales. ○​ Permiten interactuar directamente con el sistema. Ejemplos: ​ Teclado: Para ingresar texto y comandos. ​ Ratón: Para mover un puntero y seleccionar elementos en la pantalla. ​ Micrófono: Para grabar sonidos o realizar comandos de voz. ​ Cámara: Para capturar imágenes o video. 2. Dispositivos de salida Son aquellos que permiten al sistema mostrar resultados o dar respuestas al usuario. Estos dispositivos convierten los datos digitales del sistema en algo que el usuario puede ver, escuchar o tocar. ​ Características: ○​ Solo sacan datos del sistema hacia el usuario. ○​ Transforman datos digitales en información que el usuario pueda interpretar. ○​ Suelen ser pasivos: el usuario no interactúa con ellos directamente para manipular la información. Ejemplos: ​ Pantalla: Para mostrar texto, imágenes y videos. ​ Altavoces: Para reproducir sonidos y música. ​ Impresora: Para crear documentos físicos en papel. ​ Proyector: Para mostrar imágenes o presentaciones en una superficie grande. 3. Dispositivos mixtos (entrada y salida) Son aquellos que pueden enviar y recibir datos al mismo tiempo. Estos dispositivos combinan las funciones de entrada y salida, permitiendo una interacción más completa y dinámica con el sistema. ​ Características: ○​ Pueden enviar información al sistema y recibir respuestas del mismo. ○​ Reducen la necesidad de usar varios dispositivos separados. ○​ Permiten una interacción activa, ya que funcionan bidireccionalmente. Ejemplos: ​ Pantalla táctil: Muestra información y permite interactuar tocando. ​ Impresora multifunción: Puede imprimir (salida) y escanear documentos (entrada). ​ Memoria USB: Permite guardar datos (entrada) y recuperar información (salida). ​ Consola de videojuegos: Recibe comandos del control y genera gráficos y sonidos para el jugador. Componentes del computador Funcionamiento del computador Sobre la estructura descrita, el computador ejecuta operaciones complejas mediante un encadenamiento lógico (programa) de un repertorio finito de operaciones simples, denominadas instrucciones. Una instrucción es un código binario que se interpreta por parte del procesador y da lugar a una serie predeterminada de operaciones elementales o microoperaciones. A su vez, una microoperación es una transferencia entre registros o entre registros y memoria, u operación aritmética, lógica o de desplazamiento efectuada sobre los datos en la ALU, y que tiene la particularidad de efectuarse en un solo ciclo de reloj. Las microoperaciones se describen mediante la notación de Nivel de Transferencia de Registro (RTL, Register Transfer Level), que utiliza un conjunto de expresiones y sentencias particulares. Así, por ejemplo, la transferencia de datos de un registro a otro será: B←A y significa que el contenido del registro A (fuente) se copia en el B (destino). El contenido del registro fuente no cambia A nivel circuital, la transferencia implica la activación de la señal de lectura de A y de escritura de B durante un pulso de reloj. Registros del Procesador La función de los registros de uso específico es: ​ Contador de Programa (PC, Program Counter): contiene la dirección de memoria de la instrucción en curso y se incrementa o modifica apuntando a la dirección de la próxima. ​ Registro de Instrucción (IR, Instruction Register): contiene el valor binario de la instrucción en curso, para ser decodificado y secuenciado por la UC. ​ Puntero de pila (SP, Stack pointer): apunta a la dirección tope de la pila en memoria (utilizada en la ejecución de subrutinas e interrupciones). ​ Registro Índice (IX, Index Register): utilizado en operaciones que requieren indexación, como el uso de tablas. Además de estos, existen otros registros no visibles al programador: ​ Registro de Direcciones (MAR, Memory Address Register), que contiene la dirección actual de memoria; ​ Registro de Datos (MBR, Memory Buffer Register) que almacena el dato a ser escrito en la memoria o el leído de ésta), ​ Registros temporales (T1 y T2), que almacenan los datos a operar en la ALU. Tipos de Interrupciones Un programa consiste en la ejecución secuencial de sus instrucciones. Sin embargo, existe un mecanismo que permite alterar el procesamiento normal de la CPU, denominado interrupción. Las interrupciones pueden originarse en varias fuentes: ​ Como resultado de una ejecución de una instrucción Ejemplo: desbordamiento aritmético (“overflow”), división por cero ​ Por un temporizador interno del procesador. Ejemplo: funciones regulares realizadas por el Sistema Operativo. ​ Por una operación de E/S. Ejemplo: para indicar la finalización normal de una operación. ​ Por un fallo de hardware. Ejemplo: error de paridad en la memoria, pérdida de energía Estructura de Interconexión Un computador está constituido por un conjunto de unidades o módulos de tres tipos elementales(procesador, memoria, E/S) que se comunican entre sí. En efecto, un computador es una red de módulos elementales. Por consiguiente, deben existir líneas para interconectar estos módulos. El conjunto de líneas que conectan los diversos módulos se denomina estructura de interconexión. El diseño de dicha estructura dependerá de los intercambios que deban producirse entre los módulos. Memoria a procesador: el procesador lee una instrucción o un dato desde la memoria. Procesador a memoria: el procesador escribe un dato en memoria E/S a procesador: Este lee datos de un dispositivo de E/S a través de un módulo de E/S. Procesador a E/S: el procesador envía datos a un módulo de E/S. Memoria a E/S y viceversa: Un módulo de E/S puede intercambiar datos directamente con la memoria, sin tener que pasar a través del procesador, utilizando acceso directo a memoria(DMA, Direct Memory Access). Interconexion con buses Un bus es un camino de comunicación entre dos o más dispositivos. Se trata de un medio de transmisión compartido. Al bus se conectan varios dispositivos, y cualquier señal transmitida por uno de estos dispositivos está disponible para que los otros dispositivos conectados al bus puedan acceder a ella. Los computadores poseen diferentes tipos de buses que proporcionan comunicación entre sus componentes a distintos niveles dentro de la jerarquía del sistema. El bus que conecta los componentes a distintos niveles dentro de la jerarquía del sistema. El bus que conecta los componentes principales del computador (procesador, memoria, E/S) se denomina bus del sistema. El bus del sistema está constituido por entre cincuenta y cien líneas. A cada línea se le asigna un significado o una función particular. Las líneas se pueden clasificar en tres grupos: Direcciones: Identifica la fuente o destino de un dato en la memoria o en los puertos de E/S. ​ El ancho del bus de direcciones determina la máxima capacidad de memoria posible en el sistema. Por ejemplo, un bus de 16 bits define un espacio para direcciones de 216 = 64K posiciones. Datos: Transmite datos propiamente dichos o instrucciones. ​ El ancho del bus de datos determina las prestaciones del sistema. Por ejemplo, si se utiliza un bus de 8 bits y se debe operar un dato de 16 bits, serán necesarios dos accesos a la memoria. Control: Transmite información de control y temporización. ​ Señal de escritura/lectura en memoria y en dispositivos de E/S ​ Petición y reconocimiento de interrupción; petición y cesión de bus. ​ Señales de reloj. Eje Temático Nº2 B - Componentes de Entrada/Salida. Dispositivos Externos Un dispositivo externo se conecta al computador mediante un enlace a un módulo de E/S. El enlace se utiliza para intercambiar señales de control, estado y datos entre el módulo de E/S y el dispositivo externo. Un dispositivo externo conectado a un módulo de E/S se denomina dispositivo periférico o periférico. Los dispositivos externos se pueden clasificar en tres categorías: De interacción con humanos: permiten la comunicación con el usuario del computador. De interacción con máquinas: permiten la comunicación con elementos del equipo De comunicación: permiten la comunicación con dispositivos remotos. Módulos de entradas y salidas: Un módulo de E/S es un elemento clave de una computadora, cada módulo se conecta al bus del sistema o a un conmutador central y controla uno o más dispositivos periféricos. Este no solo es un conector mecánicos que permite enchufar el dispositivo al bus del sistema; sino que también está dotado de cierta “inteligencia”, es decir, que el módulo contiene lógica interna (circuitos electrónicos y software) que permite gestionar la comunicación entre: ​ El dispositivo periférico (como un teclado o impresora). ​ El bus del sistema (que transporta datos al procesador o la memoria). La "inteligencia" del módulo de E/S incluye capacidades como: ​ Conversión de datos: Traducir señales del periférico (como pulsos eléctricos) a un formato entendible por el bus del sistema. ​ Gestión de interrupciones: Avisar al procesador cuando el periférico necesita atención (por ejemplo, cuando presionas una tecla en un teclado). ​ Control de flujo: Asegurarse de que los datos no se pierdan ni se saturen durante la transmisión entre el periférico y el sistema. ​ Buffering: Almacenar temporalmente los datos en un "buffer" para manejar diferencias de velocidad entre el periférico y la computadora. La comunicación entre un módulo de entrada/salida (E/S) y los dispositivos periféricos conectados a él, se realiza a través de señales de control, estado y datos. Los datos se intercambian en forma de un conjunto de bits que son enviados a, o recibidos desde, el módulo de E/S. Las señales de control determinan la función que debe realizar el dispositivo, tal como enviar datos al módulo de E/S, ENTRADA (INPUT) o LECTURA (READ), aceptar datos desde el módulo de E/S, SALIDA (OUTPUT) o ESCRITURA (WRITE), indicar el estado o realizar alguna función de control particular del dispositivo (por ejemplo, situar una cabeza del disco). Los datos son el conjunto de bits a ser enviados o recibidos del módulo de E/S. Las señales de estado indican el estado del dispositivo. Como por ejemplo están la LISTO/NO-LISTO (READY/NOT-READY) que indica si el dispositivo está preparado para la transferencia de datos. Funciones de un módulo: Las funciones principales del módulo de E/S es: ​ Control y temporización: Esto asegura que el procesador y los dispositivos externos puedan comunicarse de manera eficiente y ordenada. Para garantizar que no haya conflictos (por ejemplo, que dos dispositivos intenten usar el bus del sistema al mismo tiempo). ​ Comunicación con el procesador: Esta comunicación implica la decodificación de órdenes, datos, información de estado, reconocimiento de dirección ​ Comunicación con los dispositivos: implica intercambio de órdenes, información de estado y datos ​ Almacenamiento temporal de datos: En los sistemas computacionales, uno de los principales desafíos en la transferencia de datos entre la memoria principal y los dispositivos periféricos radica en la diferencia significativa en sus velocidades de operación. Mientras que la memoria principal y el procesador pueden procesar información a velocidades extremadamente altas, la mayoría de los dispositivos periféricos, como impresoras o discos duros, operan a velocidades considerablemente más bajas. Para superar esta disparidad, los módulos de E/S implementan un mecanismo llamado almacenamiento temporal de datos o buffering. El almacenamiento temporal funciona como una zona intermedia donde los datos pueden ser guardados mientras se gestionan las diferencias de velocidad. Por ejemplo, cuando la memoria envía datos hacia un periférico, estos son transferidos al módulo de E/S en ráfagas rápidas. Una vez allí, los datos permanecen almacenados hasta que el dispositivo periférico pueda procesarlos a su propia velocidad. ​ Detección de errores: los modulos son los responsables de la detección de errores y de informar de estos errores al procesador Canal de E/S: La evolución del funcionamiento de las E/S (entrada/salida) en los sistemas informáticos ha sido impulsada por la necesidad de mejorar la eficiencia, reducir la carga sobre el procesador y optimizar la gestión de recursos. A lo largo del tiempo, se han desarrollado varios métodos para manejar la E/S, culminando en los canales de E/S, que permiten una transferencia de datos más rápida y eficiente. Antes de hablar de los canales de E/S nombraremos formas de gestionar la E/S anteriores que son E/S programada es el método más básico de E/S. En este enfoque, el procesador es responsable de gestionar todo el proceso de transferencia de datos entre los dispositivos de E/S (como discos o teclados) y la memoria principal. El procesador debe verificar constantemente si el dispositivo está listo para enviar o recibir datos. Sistema de interrupciones, el procesador ya no necesita verificar constantemente el estado del dispositivo de E/S. En su lugar, el dispositivo genera una interrupción cuando está listo para transferir datos, lo que detiene temporalmente al procesador de su tarea actual. El procesador atiende la interrupción, transfiere los datos y luego retoma su trabajo. El DMA permite que los dispositivos de E/S transfieran datos directamente a la memoria sin necesidad de involucrar al procesador para cada operación. El procesador solo se encarga de iniciar el proceso de transferencia de datos y de manejar las interrupciones una vez que la transferencia ha concluido. El módulo DMA maneja el acceso a la memoria y la transferencia de datos de manera autónoma, lo que libera al procesador para realizar otras tareas. El canal de E/S amplía el concepto de DMA (Acceso Directo a Memoria) al incorporar un control aún más completo sobre las operaciones de entrada y salida (E/S) en un sistema informático. En un sistema con canales de E/S, la CPU ya no ejecuta directamente las instrucciones de E/S, sino que delega esta tarea al canal de E/S, que es un procesador especializado. Este procesador de uso específico está integrado en el propio canal de E/S y es el responsable de ejecutar las instrucciones de E/S almacenadas en la memoria principal. ¿Cómo funciona? 1.​ Inicio de la transferencia: La CPU inicia la transferencia de datos indicando al canal de E/S que debe ejecutar un programa almacenado en la memoria. Este programa especifica varios detalles, como: ○​ El dispositivo o dispositivos involucrados (por ejemplo, un disco, una impresora, etc.). ○​ El área o áreas de memoria donde los datos deben ser almacenados o leídos. ○​ La prioridad de la operación de E/S. ○​ Las acciones a tomar en caso de errores durante la transferencia. 2.​ Ejecución del programa por el canal: Una vez que la CPU le ha indicado al canal que debe ejecutar el programa, el canal sigue estas instrucciones y se encarga de gestionar la transferencia de datos. Esto significa que el canal de E/S maneja de forma autónoma la comunicación entre los dispositivos periféricos y la memoria sin que la CPU tenga que intervenir directamente en cada paso de la operación. Este sistema permite que el procesador se libere de las tareas de E/S, lo que mejora el rendimiento del sistema al permitir que la CPU se concentre en otras operaciones mientras el canal se ocupa de las transferencias de datos Interfaces Una interfaz es el mecanismo mediante el cual los módulos de E/S conectan y coordinan la transferencia de información entre el procesador, la memoria principal y los dispositivos periféricos. Es el punto de comunicación entre el sistema central y los dispositivos externos, asegurando que las diferencias de velocidad, formato de datos y requerimientos eléctricos no interfieran en el intercambio eficiente de datos. Una interfaz externa en el módulo de Entrada/Salida (E/S) se refiere al conjunto de conexiones y mecanismos que permiten que el procesador o el sistema informático se comunique con dispositivos externos, como discos duros, teclados, pantallas, impresoras, redes, etc. Interfaz externa en el contexto de E/S: 1.​ Punto de comunicación entre la CPU y los dispositivos periféricos: La interfaz externa actúa como un puente entre la unidad de procesamiento y los dispositivos de E/S. Esto incluye tanto los dispositivos de entrada (como un teclado o un ratón) como los dispositivos de salida (como una pantalla o impresora). 2.​ Función de la interfaz externa: ○​ Intercambio de datos: La interfaz externa facilita el envío y la recepción de datos entre la CPU y los dispositivos periféricos. ○​ Control de flujo: Gestiona la sincronización de la transmisión de datos, asegurando que no haya pérdida de información ni interferencias entre el procesador y los dispositivos. ○​ Conversión de señales: Los dispositivos externos y la CPU pueden usar diferentes tipos de señales (por ejemplo, eléctricas, ópticas, etc.), y la interfaz externa se convierte entre estos formatos. 3.​ Componentes típicos de una interfaz externa de E/S: ○​ Puertos físicos: Como puertos USB, HDMI, Ethernet, etc. ○​ Controladores: Circuitos que gestionan cómo los datos se transmiten a través de las interfaces. ○​ Protocolos de comunicación: Reglas que definen cómo se transmiten los datos entre el procesador y los dispositivos, como USB, Serial (RS-232), SATA, PCIe, etc. 4.​ Tipos de interfaces externas en módulos de E/S: ○​ Interfaces paralelas: Los datos se envían en múltiples bits simultáneamente, usando múltiples canales o líneas de comunicación. Ejemplo clásico: los puertos paralelos utilizados en impresoras antiguas. ○​ Interfaces seriales: Los datos se envían de uno en uno, un bit a la vez, a través de un solo canal o línea. Las interfaces USB e InfiniBand son ejemplos de interfaces seriales. Ejemplo de interfaces externas: ​ USB (Universal Serial Bus): Una de las interfaces externas más comunes, usada para conectar dispositivos como teclados, ratones, cámaras, discos duros externos, etc. ​ HDMI (High Definition Multimedia Interface): Interfaz externa usada para transmitir video y audio de alta definición entre dispositivos como computadoras, televisores y proyectores. ​ Ethernet: Usado para conectar dispositivos a una red de área local (LAN), permitiendo la transmisión de datos entre la computadora y otros dispositivos a través de cables de red. Bus serie firewire: Eje temático Nº4 - A Unidad Aritmetico Logica La ALU es la parte del computador que realiza realmente las operaciones aritméticas y lógicas con los datos. El resto de los elementos del computador(unidad de control, registros, memoria, E/S) están principalmente para suministrar datos a la ALU, a fin de que esta los procese y para recuperar los resultados. Con la ALU llegamos al estudio de lo que puede considerarse el núcleo o esencia del computador. Overflow y Carry Junto con el resultado de cada operación, la UAL (Unidad Aritmético Lógica) genera varios indicadores (flags) acerca del mismo, que se conocen por sus iniciales inglesas S,Z,V,C. Indicador de Signo S=1 indica que el resultado de la operación es negativo Indicador Z de resultado cero Z=1 si el resultado es cero (“zero”) Indicador C de acarreo C=1 si existe un acarreo (“carry”) Indicador V de overflow o desborde V=1 si el resultado de una suma entre números con bit de signo excede el mayor valor positivo o negativo que se puede representar. Tanto en la representación en Ca1 como en Ca2 una operación puede dar como resultado un número que excede la capacidad de la palabra de memoria, produciendo así el overflow. Al sumar dos números el overflow se puede dar sólo si los dos tienen el mismo signo; la suma de dos números de distinto signo nunca dará como resultado un número con módulo mayor al de mayor módulo de los dados, a lo sumo será igual (al sumarle 0 a otro número), pero en general será menor, por lo tanto no puede exceder la capacidad de la palabra de memoria. El overflow se reconoce cuando los bits de signo de los dos números que se suman son iguales entre sí pero distintos del bit de signo del resultado, o sea cuando los números son positivos y da resultado negativo o viceversa. En este caso el contenido de la palabra de memoria es incorrecto. Capacidad de representación, precisión, rango en sistema restringidos a n bits Capacidad de representación: es la cantidad de números que se puede representar, ya 𝑛 5 sea en punto fijo o no en 𝑏. ej: si en un sistema de 5 bits, sería 2 números, es decir; 32 números Precisión: Es la mínima diferencia entre un número representable y el siguiente. Se podría decir la diferencia entre 0 y su siguiente. Rango: El rango de un sistema está dado por el número representable y el número máximo representable. Ej: en binario con 5 dígitos es [0,31](donde 0 es 00000 y el 31 es 11111). Eje temático Nº4 B Una instrucción es la unidad mínima de un programa informático. Indica a la CPU qué operación debe realizar con los datos. Las instrucciones se codifican en un lenguaje de máquina, que es un conjunto de códigos binarios que la CPU puede entender. Programa Ensamblador El programa llamado Ensamblador toma el código fuente y lo traduce a un código máquina. Para esto, realiza los siguientes pasos: ​ Resuelve las directivas dirigidas al Ensamblador. ​ Calcula el tamaño de cada una de las instrucciones, y en base a ello resuelve los valores de las etiquetas. ​ Traduce todas las instrucciones a ceros y unos de acuerdo al formato de la instrucción. Elementos de una instrucción Código de operación (CodOp) Especifica la operación a realizar (suma, E/S, etc.) Dirección de la siguiente instrucción Indica a la CPU de donde captar la siguiente instrucción tras completarse la ejecución de la instrucción actual. Referencia a operandos fuente La operación puede implicar uno o más operandos fuente, que son entradas para la instrucción. Referencia al operando resultado: La operación puede producir un resultado, salida de la instrucción Los operandos pueden ser un registro, una posición de memoria, o un dispositivo de E/S. Las referencias a cualquiera de ellos se denomina dirección. ¿Cuántas direcciones por instrucción? Menos direcciones ​ CPU menos compleja ​ Instrucciones más cortas y simples ​ Más instrucciones por programa ​ Rápidas instrucciones de captación/ejecución de instrucciones Más direcciones ​ Instrucciones más complejas y largas ​ Permite disponer de un mayor número de registros de uso general ​ Las operaciones realizadas Inter registros son más rápidas Menos instrucciones por programa ​ Por razones de flexibilidad y facilidad para utilizar varios registros, las máquinas contemporáneas emplean una combinación de dos y de tres direcciones. Existen 4 instrucciones, las cuales son: -Procesamiento de datos: instrucciones aritméticas y lógicas -Almacenamiento de datos: instrucciones de memoria -Transferencia de datos: instrucciones de E/S -De control: instrucciones de comprobación y bifurcación. La CPU realiza una secuencia regular, que se repite hasta finalizar el programa, denominada ciclo de instrucción: ​ Trae la instrucción desde la memoria ​ Realiza el procesamiento correspondiente a la instrucción específica. Esto permite subdividir cada instrucción en al menos dos partes básicas: 1.​ Un ciclo de búsqueda o captación (fetch). 2.​ Un ciclo de ejecución. El ciclo de instrucción generalmente consta de tres etapas principales: A) Búsqueda (Fetch) 1.​ Descripción: La CPU recupera la instrucción desde la memoria principal (RAM). 2.​ Pasos clave: ○​ El contador de programa (PC, Program Counter) contiene la dirección de memoria de la próxima instrucción a ejecutar. ○​ Esa dirección se envía al bus de direcciones y la memoria devuelve el contenido de esa ubicación al procesador. ○​ La instrucción recuperada se guarda en el registro de instrucciones (IR, Instruction Register). 3.​ Resultado: Ahora la CPU tiene la instrucción lista para ser procesada. B) Decodificación (Decode) 1.​ Descripción: La instrucción recuperada se analiza para determinar qué operación debe realizarse y qué operandos se necesitan. 2.​ Pasos clave: ○​ La unidad de control (CU, Control Unit) interpreta los bits de la instrucción almacenada en el IR. ○​ Si la instrucción requiere operandos adicionales (por ejemplo, direcciones o valores específicos), se determinan en esta etapa. ○​ Se configuran los circuitos internos para ejecutar la operación. 3.​ Resultado: La CPU comprende qué debe hacer y cómo hacerlo. C) Ejecución (Execute) 1.​ Descripción: La CPU lleva a cabo la operación indicada por la instrucción. 2.​ Pasos clave: ○​ Si es una operación aritmética o lógica, se realiza en la Unidad Aritmético-Lógica (ALU). ○​ Si es una operación de memoria, como leer o escribir, se realiza el acceso a la memoria. ○​ Si es una operación de control, como un salto, se actualiza el contador de programa (PC). 3.​ Resultado: La operación se completa, y la CPU está lista para proceder con la siguiente instrucción. Secuencia General 1.​ Inicio: El procesador comienza con el ciclo de búsqueda. 2.​ Capta la instrucción: Lee desde memoria. 3.​ Ejecuta la instrucción: Procesa y completa la tarea asignada. 4.​ Repite: Vuelve al paso 1 hasta que no haya más instrucciones o se encuentre una orden de parada. Repertorio de instrucciones y modos de direccionamiento El repertorio de instrucciones determina el conjunto de operaciones que la CPU puede realizar y la forma en que se pueden realizar. Los modos de direccionamiento son distintas formas en que una misma operación puede ejecutarse para reducir el número de bits de la instrucción o hacer un manejo más eficiente de los datos. Por lo tanto, una misma operación puede dar lugar a varias instrucciones, con un modo de direccionamiento diferente: ​ Inmediato ​ Directo ​ Indirecto ​ Registro ​ Indirecto con registro ​ Con desplazamiento (Indexado) ​ Pila Direccionamiento Inmediato ​ Este modo puede utilizarse para definir y utilizar constantes, o para fijar valores iniciales de variables. ​ Normalmente el número se almacena en complemento a dos; el bit más a la izquierda del campo operando se utiliza como bit de signo. El operando está presente en la propia instrucción: ‒​ Operando = A ‒​ E.j. ADD 5 ‒​ Suma 5 al contenido del acumulador Rápido / muy sencillo Ventaja: Una vez captada la instrucción, no se requiere una referencia a memoria para obtener el operando; se ahorra un ciclo de memoria en el ciclo de instrucción. Desventaja: Rango limitado. Tamaño del número limitado a la longitud del campo de direcciones, que es pequeño comparado con la longitud de la palabra. Direccionamiento directo El campo de direcciones contiene la dirección efectiva del operando ​ EA = A ​ P.ej.,​ ADD A Busca en memoria la dirección A para el operando ​ Sólo requiere una referencia a memoria ​ No necesita ningún cálculo especial ​ Espacio de direcciones restringido Direccionamiento indirecto Espacio de direccionamiento grande. Si longitud de la palabra = N bits, se dispone de un espacio de 2N direcciones. Desventajas: ​ La ejecución de la instrucción requiere dos referencias a memoria para captar el operando:​ una para captar su dirección y otra para obtener su valor. ​ Lento. Direccionamiento registro El campo de direcciones referencia un registro, en lugar de una dirección de memoria principal. ​ EA = R Un campo de direcciones que referencia a registros consta de 3 o 4 bits, à pueden referenciarse un total de 8 o 16 registros de uso general Es necesario un campo pequeño de direcciones en la instrucción ​ No se requieren referencias a memoria ​ Ejecución muy rápida ​ Desventaja: Espacio de direcciones muy limitado ​ Las CPU modernas emplean múltiples registros de uso general. Direccionamiento indirecto con registro Es análogo al indirecto ​ EA = (R) El operando está en una celda de memoria referenciada mediante el contenido del Registro R La limitación del espacio se supera haciendo que R se refiere a una posición de palabra completa (un registro), que contenga la dirección. Emplea una referencia menos a memoria que el direccionamiento indirecto. Direccionamiento con desplazamiento Modo muy potente: combina direccionamiento directo e indirecto con registro. ​ EA = A + (R) Requiere que las instrucciones tengan dos campos de direcciones, al menos uno de ellos es explícito. ​ A = valor base, se utiliza directamente ​ R = registro que contiene el desplazamiento, cuyo contenido se suma a A para obtener la dirección efectiva. ​ Viceversa Tiene tres versiones: ​ Relativo ​ Con registro base ​ indexado Direccionamiento de pila Pila: Matriz lineal de posiciones ​ Los elementos se añaden en la cabecera. ​ La pila tiene asociado un puntero, cuyo valor es la dirección de la cabecera o tope de la pila. ​ El puntero de pila se mantiene en un registro. ​ El operando está (implícitamente) en el tope de la pila. ​ Son de hecho, direcciones de acceso indirecto con registro. ​ Las instrucciones máquina no necesitan incluir una referencia a memoria, operan implícitamente con la cabecera de la pila. ​ Bastante comunes en microprocesadores. Unidad Central de Procesamiento (CPU) Una CPU está compuesta por: ​ Un conjunto de Registros de uso general, en el que se almacenan temporalmente los datos que están siendo procesados, y otros de uso específico, con información utilizada para la interrelación entre los componentes); ​ Una Unidad Aritmético Lógica (ALU), en la que se realizan las operaciones entre los datos; ​ Una Unidad de Control, que decodifica las instrucciones del programa y en combinación con un circuito generador de señales temporales, genera las señales de control para los componentes anteriores Eje temático Nº4 - C ¿Qué es la arquitectura RISC? RISC es un acrónimo de Reduced Instruction Set Computing (conjunto reducido de instrucciones). Es un tipo de arquitectura de microprocesador que utiliza un conjunto de instrucciones pequeño y altamente optimizado, en lugar de un conjunto de instrucciones más complejo y versátil. Este enfoque puede suponer una serie de ventajas, como un mayor rendimiento, un menor consumo de energía y una reducción de costes. ¿Qué concepto representa la base de la arquitectura von Neumann? Este concepto es la base de la arquitectura de von Neumann. Es la idea de que los datos y el código pueden almacenarse en la misma memoria. También conocido como programa almacenado, este concepto puede ser descrito Tecnica para aumentar la velocidad de procesamiento: Pipeline El pipeline es una técnica que divide la ejecución de instrucciones en varias etapas independientes, permitiendo que múltiples instrucciones se procesen de manera simultánea. Unidad de control microprogramada Microinstrucción: Cada ciclo de instrucción se puede dividir en unidades más pequeñas. Una división común de estos ciclos incluye subciclos como la captación (fetch), el ciclo indirecto, la ejecución (execute) y la interrupción (interrupt). Sin embargo, en la mayoría de los casos solo se ejecutan los subciclos de captación y ejecución en un ciclo de instrucción típico. La captación es el proceso en el que el procesador lee la instrucción desde la memoria, y la ejecución es donde se realiza la operación indicada por la instrucción, como una suma o una carga de datos. Para diseñar una unidad de control eficaz, es necesario profundizar más en estos ciclos. Cómo se aborda en la segmentación de procesadores, cada uno de estos ciclos principales puede descomponerse aún más en pasos más pequeños que involucran registros y otras operaciones del procesador. Estos pasos pequeños, que son operaciones de bajo nivel que afectan a los registros y realizan tareas simples, se conocen como microoperaciones. El prefijo "micro" denota que cada operación es muy simple y realiza una acción pequeña dentro de un ciclo o subciclo mayor. Por ejemplo, en el subciclo de captación, una microoperación podría ser leer una instrucción de la memoria, y en el subciclo de ejecución, una microoperación podría ser realizar una suma en la ALU. Una unidad de control microprogramada es un componente dentro de un procesador o unidad central de procesamiento (CPU) que gestiona la ejecución de las instrucciones de un programa mediante un conjunto de microinstrucciones. Su función es coordinar y controlar el flujo de datos y las operaciones que realiza la computadora, decodificando las instrucciones de alto nivel y convirtiéndolas en señales de control de bajo nivel que afectan a las unidades funcionales del sistema (como el ALU, registros, memoria, etc.). En lugar de usar circuitos lógicos fijos como en las unidades de control tradicionales, una unidad de control microprogramada utiliza una memoria especial llamada memoria de control para almacenar las microinstrucciones. Estas microinstrucciones controlan el comportamiento de la CPU y se ejecutan secuencialmente, permitiendo una mayor flexibilidad y facilidad de modificación en el diseño. La memoria de control contiene un conjunto de microinstrucciones que definen el comportamiento de la unidad de control del procesador. Estas microinstrucciones son instrucciones de bajo nivel que controlan cómo interactúan las diferentes partes del procesador, como los registros, la ALU (unidad aritmético-lógica) y la memoria. El registro de dirección de control es el encargado de almacenar la dirección de la siguiente microinstrucción a leer de la memoria de control. Cuando el procesador ejecuta una instrucción, este registro indica cuál es la microinstrucción que debe leer a continuación. Una vez que se lee una microinstrucción desde la memoria de control, esta se transfiere a un registro intermedio de control, que es el responsable de generar las señales de control necesarias para la ejecución de la instrucción. Estas señales de control son las que permiten a las diferentes unidades del procesador realizar las acciones correspondientes. La parte izquierda del registro intermedio de control se conecta a las líneas de control que salen de la unidad de control, lo que significa que, al leer una microinstrucción, se ejecuta de inmediato. La unidad lógica de secuenciamiento es otro componente importante que se encarga de cargar el registro de dirección de control con la nueva dirección de la microinstrucción siguiente y de emitir una orden de lectura para que la memoria de control lea la próxima microinstrucción. El proceso de ejecución se lleva a cabo en un ciclo de reloj, lo que asegura que todas las acciones se realicen de manera sincronizada.

Use Quizgecko on...
Browser
Browser