Arquitectura de Sistemas. 6 Arquitectura Von Neumann.


Arquitectura Von Neumann






LINK AL CUADERNO CON TODA LA INFORMACIÓN DEL CAPITULO:

https://notebooklm.google.com/notebook/b613b634-9bba-4092-810e-0c923475a3b2



Arquitectura Von Neumann

La arquitectura de von Neumann es un modelo conceptual de diseño de computadoras que fue propuesto por el matemático y científico de la computación John von Neumann a principios de la década de 1940. Es uno de los modelos de arquitectura más influyentes en la historia de las computadoras y todavía se utiliza ampliamente en la actualidad.

La arquitectura de von Neumann se compone de los siguientes componentes principales:

1. Unidad Central de Procesamiento (CPU): La CPU es el cerebro de la computadora y está compuesta por la Unidad de Control (Control Unit) y la Unidad Aritmético-Lógica (ALU). La Unidad de Control se encarga de interpretar las instrucciones almacenadas en la memoria y de controlar las operaciones de la computadora. La ALU realiza operaciones aritméticas y lógicas, como sumas, restas, comparaciones, etc.

2. Memoria: La memoria es utilizada para almacenar tanto los datos como las instrucciones que el programa necesita para ejecutarse. En la arquitectura de von Neumann, tanto los datos como las instrucciones se almacenan en una memoria unificada, conocida como Memoria Principal o Memoria Central. Esto significa que los programas y los datos se tratan de la misma manera y se accede a ellos utilizando direcciones de memoria.

3. Unidad de Entrada/Salida (E/S): La unidad de E/S se encarga de la comunicación entre la computadora y el mundo exterior. Permite la entrada de datos desde dispositivos de entrada, como teclados o ratones, y la salida de resultados hacia dispositivos de salida, como pantallas o impresoras.

4. Bus de Datos: El bus de datos es un conjunto de cables que permite la transferencia de datos entre la CPU, la memoria y los dispositivos de E/S. Los datos se transmiten en forma de bits a través del bus de datos.

5. Bus de Direcciones: El bus de direcciones es otro conjunto de cables que se utiliza para transmitir las direcciones de memoria. La CPU utiliza el bus de direcciones para acceder a ubicaciones específicas en la memoria para leer instrucciones o escribir datos.

6. Unidad de Control: La unidad de control es responsable de controlar y coordinar todas las operaciones de la computadora. Interpreta las instrucciones almacenadas en la memoria y emite las señales adecuadas para ejecutar cada instrucción. Además, supervisa el flujo de datos entre la memoria, la CPU y los dispositivos de E/S.

La arquitectura de von Neumann se caracteriza por su programa almacenado, lo que significa que las instrucciones y los datos se almacenan juntos en la memoria y se tratan de la misma manera. Esto permite una mayor flexibilidad y facilidad de programación, ya que los programas pueden modificarse y adaptarse sin necesidad de cambiar el hardware de la computadora.

La arquitectura de von Neumann proporciona un marco conceptual para el diseño de computadoras que consta de una CPU, memoria, unidad de E/S, buses de datos y direcciones, y una unidad de control. Este modelo ha sido fundamental para el desarrollo de la computación moderna y ha sentado las bases para muchas arquitecturas de computadoras actuales.

Es un modelo descriptivo de cómo funciona una computadora. Concretamente, de sus componentes.

Data de los años 1950s, con la llegada de las primeras computadoras electrónicas.

Todas las computadoras en la actualidad, menos las cuánticas, se rigen por esta arquitectura.

Consiste en el siguiente esquema:

La CPU se encarga de la ejecución del programa.

Tiene 3 partes:

  • Registros: Son las memorias de trabajo. Las operaciones deben hacerse sobre registros. Por ejemplo si queremos sumar dos variables debemos llevarlas a registros a través del bus, desde la memoria, y sumarlas, dejando el resultado en otro registro, y luego llevar ese registro a memoria.
  • Unidad Aritmético Lógica: Realiza las operaciones. Todas. Es básicamente un sistema combinacional. Aunque tiene un registro de estados donde indica datos acerca de las operaciones que realiza.
  • Unidad de Control: Es un sistema combinacional, que se encarga de la ejecución del programa. Esto es, ir llevando el control de qué es lo siguiente que hay que ejecutar, ejecutarlo y seguir.

Ejemplo:

Si tenemos un programa

A=B+C

En un lenguaje cualquiera de programación.

En Assembler, se verá de la siguiente forma:

Mov B a R1 //traer el contenido de la dirección B de memoria, al registro R1, a través del BUS.

Mov C a R2 //traer el contenido de C a R2.

Add R1 R2 // Hacer R1=R1+R2

Mov R1 a A // guardar en la dirección C el contenido de R1

Intervienen los registros R1 y R2, las direcciones de memoria A, B y C, correspondientes a las variables. La unidad de control va ejecutando línea a línea y pasando a la siguiente.

La ULA hace la suma y deja en su registro de estados, por ejemplo, si hubo o no Overflow. Pues tal vez la suma desbordó.

En la memoria reside EL Programa a ejecutar y los datos que el mismo procesará.

Recordemos la definición de computadora, como máquina que computa, es decir, que procesa datos.

EL programa, porque, a nivel de la arquitectura, es uno sólo.

Estudiaremos en el Sistema Operativo, que en caso de haber multitasking, se creará la ilusión de que múltiples programas son ejecutados a la vez. Pero eso lo maneja el nivel de SO, y va pasando a la arquitectura UN SOLO PROGRAMA, el cuál esta va ejecutando. Si ese programa se compone de intercalar grupos de líneas de múltiples programas, a la arquitectura no le importa, y lo maneja el SO. De hecho la multitarea es un ilusión que provee el SO.

La velocidad de la CPU es tal que percibimos y creemos la multitarea como tal. Un procesador de 3 Ghz ejecuta 3.000.000.000 de instrucciones por segundo. Entonces no hay problema si ejecuta unos cuantos miles de un proceso y pasa al siguiente. En SO estudiaremos bajo qué reglas esto propicia el funcionamiento habitual de la computadora.

El programa está todo alojado en memoria. Consta de una lista de instrucciones en código máquina. Es decir tiras de ceros y unos. El Assembler aporta una traducción uno a uno de dichas tiras, en base a mnemotécnicos que nos permiten entender qué está pasando en cada instrucción.

Cada instrucción de Assembler ejecuta acciones MUY SIMPLES y unitarias dentro de la computadora. El poder radica en la ejecución de muchas instrucciones y muy rápido.

También tenemos en memoria los datos, de entrada, de proceso intermedio y de salida de los programas.

La arquitectura Von Neumann implicó, conceptualmente, tomar una decisión muy importante de diseño: TODO VA EN LA MEMORIA RAM, en la misma memoria, en una sola.
Las arquitecturas llamadas “Harvard” proponen el uso de diferentes memorias.

Si bien en el centro de la computadora, conceptualmente, la arquitectura es Von Neumann, se ha tomado lo mejor de ambos mundos, y lo vemos reflejado, en el almacenamiento secundario, en la memoria de video, en la memoria local de una tarjeta controladora de disco, etc. HAY MEMORIAS AUXILIARES, al estilo Harvard, pero la computadora es básicamente Von Neumann.

Un resumen de las partes de la CPU:

La CPU (Unidad Central de Procesamiento) es el componente principal de una computadora y desempeña un papel crucial en el procesamiento de datos y la ejecución de instrucciones. La CPU consta de varias partes importantes, cada una con su función específica. A continuación, se describen en detalle las partes principales de la CPU:

1. Unidad de Control (Control Unit): La Unidad de Control es responsable de coordinar y controlar todas las operaciones de la CPU. Su función principal es interpretar y ejecutar las instrucciones almacenadas en la memoria. La Unidad de Control genera señales de control que regulan el flujo de datos y las operaciones realizadas por otras partes de la CPU.

2. Unidad Aritmético-Lógica (ALU): La Unidad Aritmético-Lógica es el componente de la CPU encargado de realizar operaciones aritméticas (como sumas, restas, multiplicaciones, divisiones) y operaciones lógicas (como comparaciones y operaciones booleanas) en los datos. La ALU opera en bits y realiza cálculos y operaciones lógicas según las instrucciones proporcionadas por la Unidad de Control.

3. Registros: Los registros son pequeñas unidades de almacenamiento de alta velocidad ubicadas dentro de la CPU. Se utilizan para almacenar temporalmente datos e instrucciones que se están procesando activamente. Algunos registros comunes incluyen:

   - Registro de Propósito General (General-Purpose Register): Se utilizan para almacenar datos intermedios durante el procesamiento. Son rápidamente accesibles para la ALU y la Unidad de Control.

   - Registro de Instrucciones (Instruction Register): Almacena la instrucción actual que se está ejecutando.

   - Contador de Programa (Program Counter): Mantiene la dirección de memoria de la siguiente instrucción a ser ejecutada.

   - Registro de Dirección de Memoria (Memory Address Register): Contiene la dirección de memoria de los datos o instrucciones que se están leyendo o escribiendo.

   - Registro de Acumulador (Accumulator): Almacena el resultado de las operaciones realizadas por la ALU.

4. Unidad de Memoria Caché: La memoria caché es un tipo de memoria de acceso rápido y alta velocidad que se encuentra dentro de la CPU. Almacena copias de datos e instrucciones que se acceden con frecuencia. La memoria caché mejora el rendimiento del sistema al reducir el tiempo de acceso a la memoria principal, ya que los datos se pueden recuperar más rápidamente desde la caché.

5. Bus Interno: El bus interno es un conjunto de cables y líneas de comunicación que permiten la transferencia de datos y señales entre las diferentes partes de la CPU. Los buses internos incluyen el bus de datos, que transporta los datos entre la ALU, los registros y la memoria, y el bus de control, que lleva las señales de control generadas por la Unidad de Control.

Estas son las partes principales de una CPU en una arquitectura de von Neumann típica. Cada parte desempeña un papel esencial en el procesamiento de datos y la ejecución de instrucciones, trabajando en conjunto para realizar las operaciones necesarias para realizar tareas computacionales.

Unidad aritmético lógica

La Unidad Aritmético-Lógica (ALU) es una parte fundamental de la CPU (Unidad Central de Procesamiento) que se encarga de realizar operaciones aritméticas y lógicas en los datos. A continuación, se describe en detalle el rol de la ALU:

1. Operaciones Aritméticas: La ALU está diseñada para llevar a cabo diversas operaciones aritméticas básicas, como suma, resta, multiplicación y división. Estas operaciones se realizan en números binarios representados por bits. La ALU puede operar en números de diferentes tamaños, desde bits individuales hasta números de varios bytes, dependiendo de la arquitectura de la CPU.

2. Operaciones Lógicas: Además de las operaciones aritméticas, la ALU también realiza operaciones lógicas en los datos. Las operaciones lógicas incluyen operaciones booleanas, como AND, OR, NOT y XOR. Estas operaciones se utilizan para comparar valores, evaluar condiciones y manipular bits individuales en los datos.

3. Comparaciones: La ALU es capaz de realizar comparaciones entre dos valores y determinar si son iguales, mayores o menores. Esto es especialmente útil en el contexto de las instrucciones condicionales en la programación, donde se toman decisiones basadas en los resultados de comparaciones.

4. Desplazamiento y Rotación: La ALU puede realizar operaciones de desplazamiento y rotación en los datos. El desplazamiento implica mover los bits en una dirección específica, ya sea hacia la izquierda o hacia la derecha, y se utiliza en operaciones como multiplicación o división por potencias de dos. La rotación implica mover los bits de manera circular, donde los bits que salen por un extremo entran por el otro, lo que puede ser útil en ciertos algoritmos y manipulación de datos.

5. Bandera de Estado: La ALU también es responsable de actualizar la bandera de estado o los bits de estado, que indican el resultado de la operación realizada. Estos bits de estado pueden incluir señales como cero (indicando que el resultado es cero), negativo (indicando que el resultado es negativo) o desbordamiento (indicando que el resultado excede la capacidad de representación).

En general, el rol de la ALU es realizar operaciones matemáticas y lógicas en los datos según las instrucciones proporcionadas por la Unidad de Control. La ALU es un componente altamente optimizado y de alta velocidad, lo que permite una rápida ejecución de cálculos y operaciones en la CPU. Su función es esencial para llevar a cabo las operaciones requeridas en programas y algoritmos, permitiendo el procesamiento de datos y la toma de decisiones en una computadora.

Unidad de control

La Unidad de Control (UC) es una parte vital de la CPU (Unidad Central de Procesamiento) de una computadora. Su función principal es interpretar y ejecutar las instrucciones almacenadas en la memoria, coordinando y controlando todas las operaciones realizadas por la CPU. A continuación, se describe en detalle el rol y funcionamiento de la Unidad de Control:

1. Decodificación de Instrucciones: La UC recibe las instrucciones de la memoria principal una por una. Su primera tarea es decodificar cada instrucción para comprender qué operación se debe realizar y qué datos se requieren para completar la operación. Utiliza un conjunto de circuitos de decodificación y registros internos para interpretar el código de operación y los operandos de la instrucción.

2. Generación de Señales de Control: Una vez que la UC ha decodificado una instrucción, genera las señales de control adecuadas para coordinar las operaciones requeridas por la instrucción. Estas señales se envían a diferentes partes de la CPU y otros componentes del sistema para activar o desactivar las operaciones necesarias. Por ejemplo, puede enviar una señal para activar la ALU (Unidad Aritmético-Lógica) y realizar una suma, o puede enviar una señal para acceder a una ubicación específica de memoria y leer datos.

3. Control del Flujo de Datos: La UC también controla el flujo de datos entre las diferentes partes de la CPU y la memoria. Utiliza los buses internos, como el bus de datos y el bus de direcciones, para transferir datos y direcciones entre la memoria principal, la ALU, los registros y otros componentes de la CPU. La UC activa los circuitos de multiplexión y direccionamiento adecuados para enrutar los datos a donde sean necesarios.

4. Gestión de Instrucciones y Flujo de Programa: La UC se encarga de gestionar el flujo de instrucciones y el flujo del programa en ejecución. Mantiene un registro del contador de programa (PC) que indica la dirección de memoria de la siguiente instrucción a ejecutar. Después de ejecutar una instrucción, la UC incrementa el contador de programa para apuntar a la siguiente instrucción en secuencia.

5. Control de Operaciones de E/S: La UC también puede controlar las operaciones de entrada y salida (E/S) de la computadora. Activa los circuitos y protocolos necesarios para transferir datos entre los dispositivos de E/S y la memoria o la CPU. Esto implica enviar señales de control y direcciones adecuadas para leer o escribir datos desde o hacia los dispositivos periféricos, como teclados, pantallas o impresoras.

6. Detección de Excepciones y Manejo de Interrupciones: La UC está preparada para detectar excepciones y manejar interrupciones durante la ejecución del programa. Puede recibir señales de interrupción desde dispositivos externos o detectar condiciones excepcionales, como divisiones por cero o desbordamientos. Cuando se produce una excepción o interrupción, la UC toma medidas adecuadas para manejar la situación, como guardar el estado actual del programa y transferir el control a una rutina de manejo de excepciones.

En resumen, la Unidad de Control es responsable de interpretar las instrucciones, generar señales de control, coordinar las operaciones de la CPU y controlar el

 flujo de datos y el flujo del programa. Es el componente clave que permite que la CPU ejecute instrucciones y realice operaciones de manera secuencial y coordinada, siguiendo las instrucciones del programa y controlando las operaciones necesarias para procesar datos y realizar tareas computacionales.

Registros

Los registros son pequeñas unidades de almacenamiento de alta velocidad ubicadas dentro de la CPU (Unidad Central de Procesamiento). Juegan un papel fundamental en el procesamiento de datos y la ejecución de instrucciones. Algunos de los registros más comunes utilizados en una CPU:

1. Registro de Propósito General: Estos registros son utilizados para almacenar temporalmente datos intermedios durante el procesamiento. Son rápidamente accesibles por la ALU (Unidad Aritmético-Lógica) y la Unidad de Control. Estos registros permiten realizar operaciones aritméticas y lógicas en los datos. La cantidad y el tamaño de los registros de propósito general pueden variar según la arquitectura de la CPU, pero generalmente se utilizan para almacenar datos, direcciones de memoria, resultados parciales y otros valores temporales.

2. Registro de Instrucciones (Instruction Register): Este registro almacena la instrucción actual que se está ejecutando. Cuando la Unidad de Control decodifica una instrucción de la memoria, se almacena en el Registro de Instrucciones para que la CPU pueda acceder a ella y ejecutarla. Este registro contiene el código de operación y los operandos necesarios para realizar la operación específica indicada por la instrucción.

3. Contador de Programa (Program Counter): También conocido como Registro de Instrucción de Siguiente Dirección (Next Instruction Address Register), el Contador de Programa es un registro especial que mantiene la dirección de memoria de la siguiente instrucción a ser ejecutada. Después de ejecutar una instrucción, el Contador de Programa se incrementa para apuntar a la siguiente instrucción en secuencia. Esto permite que el flujo del programa avance correctamente y se ejecuten las instrucciones en el orden adecuado.

4. Registro de Dirección de Memoria (Memory Address Register): Este registro almacena la dirección de memoria de los datos o instrucciones que se están leyendo o escribiendo. Cuando se necesita acceder a la memoria, la Unidad de Control utiliza el Registro de Dirección de Memoria para especificar la ubicación exacta en la memoria a la que se debe acceder.

5. Registro de Acumulador (Accumulator): El Registro de Acumulador es un registro especial utilizado para almacenar el resultado de operaciones realizadas por la ALU. Es comúnmente utilizado en arquitecturas de CPU donde la ALU opera sobre los datos y guarda el resultado en este registro. El valor almacenado en el Registro de Acumulador se puede utilizar en operaciones posteriores o puede ser transferido a la memoria o a otros registros según sea necesario.

Además de estos registros, también existen otros registros especializados en algunas arquitecturas de CPU, como el Registro de Pila (Stack Pointer) utilizado para controlar la pila de ejecución de instrucciones, el Registro de Estado (Status Register) que almacena banderas o indicadores de estado, y los Registros de Desplazamiento y Rotación utilizados en operaciones específicas.

Los registros en una CPU desempeñan un papel fundamental en el almacenamiento temporal de datos, direcciones de memoria, instrucciones y resultados parciales. Son componentes de alta velocidad y acceso rápido que permiten un procesamiento eficiente y coordinado de datos y operaciones en la CPU. Los registros son esenciales para la ejecución de instrucciones y el correcto funcionamiento de la CPU.

Cache en la CPU

La memoria caché es una memoria de alta velocidad y pequeña capacidad ubicada dentro de la CPU (Unidad Central de Procesamiento). Su objetivo principal es mejorar el rendimiento del sistema al reducir el tiempo de acceso a la memoria principal, que generalmente es más lenta pero de mayor capacidad. La memoria caché actúa como una capa intermedia entre la CPU y la memoria principal, almacenando copias de datos e instrucciones que se acceden con frecuencia. A continuación, se describen las características y el funcionamiento de la memoria caché en la CPU:

1. Jerarquía de Memoria: En un sistema de computadora, la memoria se organiza en una jerarquía. En la parte superior de la jerarquía se encuentra la memoria caché, seguida de la memoria principal (RAM) y, en algunos casos, de la memoria secundaria (disco duro). A medida que se desciende en la jerarquía, la capacidad de almacenamiento aumenta, pero el tiempo de acceso se vuelve más lento.

2. Localidad de Referencia: El principio clave en el diseño de la memoria caché es la localidad de referencia. Este principio se basa en la observación de que los programas tienden a acceder a un conjunto limitado de datos e instrucciones de forma repetida en un corto período de tiempo. La memoria caché aprovecha esta propiedad almacenando en su interior los datos e instrucciones más utilizados, lo que reduce la necesidad de acceder repetidamente a la memoria principal.

3. Estructura de Memoria Caché: La memoria caché consta de varias líneas o bloques de memoria. Cada línea tiene una capacidad para almacenar un conjunto de datos o instrucciones contiguas. La cantidad de líneas en la memoria caché depende de su tamaño, que se mide en kilobytes o megabytes. Las líneas de la memoria caché se organizan en conjuntos, y cada conjunto tiene un número fijo de líneas.

4. Principio de Localidad: Cuando la CPU necesita acceder a un dato o instrucción, primero busca en la memoria caché. Si el dato o instrucción se encuentra en la caché (un acierto de caché), se accede de forma rápida. En caso de que no se encuentre en la caché (un fallo de caché), la CPU debe buscar en la memoria principal, lo que lleva más tiempo.

5. Algoritmo de Reemplazo: Si la memoria caché está llena y se necesita espacio para almacenar nuevos datos o instrucciones, se debe tomar una decisión sobre qué línea de la caché reemplazar. Esto se hace utilizando algoritmos de reemplazo, como el algoritmo de reemplazo LRU (Least Recently Used, Menos Recientemente Utilizado), donde se reemplaza la línea que no se ha accedido durante más tiempo.

6. Política de Escritura: Cuando la CPU modifica un dato que está en la memoria caché, se deben tomar decisiones sobre cómo reflejar ese cambio en la memoria principal. Existen dos políticas de escritura comunes: escritura por demanda (write-on-demand) y escritura inmediata (write-through). La escritura por demanda actualiza el dato modificado en la caché y lo escribe en la memoria principal solo cuando se necesita. La escritura inmediata actualiza tanto la caché como la memoria principal de forma simultánea.

La memoria caché en la CPU es una memoria de alta velocidad que almacena copias de datos e instrucciones utilizados con frecuencia. Su objetivo es reducir el tiempo de acceso a la memoria principal y mejorar el rendimiento del sistema. La memoria caché aprovecha el principio de localidad de referencia y utiliza algoritmos de reemplazo y políticas de escritura para gestionar el almacenamiento y actualización de los datos en la caché.

Buses

En la arquitectura de Von Neumann, los buses son componentes fundamentales que se utilizan para la transferencia de datos y la comunicación entre diferentes partes del sistema. Hay tres tipos principales de buses en una arquitectura Von Neumann: el bus de datos, el bus de direcciones y el bus de control. A continuación, se describe en detalle cada uno de ellos:

1. Bus de Datos: El bus de datos es el canal a través del cual se transfieren los datos entre los diferentes componentes del sistema. Permite la transferencia de información, ya sea desde la memoria principal hacia la CPU o desde la CPU hacia la memoria principal. También se utiliza para transferir datos entre la CPU y otros dispositivos, como periféricos de entrada y salida. El ancho del bus de datos determina la cantidad de bits que se pueden transferir simultáneamente y, por lo tanto, afecta la capacidad de transferencia de datos.

2. Bus de Direcciones: El bus de direcciones se utiliza para indicar la ubicación de memoria o dispositivos periféricos específicos a los que se desea acceder. La CPU envía la dirección de memoria deseada a través del bus de direcciones para realizar operaciones de lectura o escritura en esa ubicación específica. El ancho del bus de direcciones determina la cantidad de direcciones que se pueden representar y, por lo tanto, afecta el tamaño máximo de la memoria que se puede acceder.

3. Bus de Control: El bus de control lleva señales de control que coordinan y sincronizan las operaciones dentro del sistema. Estas señales controlan el flujo de datos y la ejecución de instrucciones. Algunas de las señales comunes que se transmiten a través del bus de control incluyen señales de sincronización de reloj, señales de inicio o parada de operación, señales de lectura o escritura de memoria, señales de control de interrupciones y señales de control de operaciones específicas de la CPU, como operaciones aritméticas y lógicas.

En una arquitectura de Von Neumann, estos buses están interconectados y permiten la comunicación entre la CPU, la memoria principal y los dispositivos periféricos. La Unidad de Control utiliza el bus de control para enviar señales de control a los diferentes componentes del sistema, mientras que la CPU utiliza el bus de direcciones y el bus de datos para acceder a la memoria y transferir datos. Los buses facilitan la transferencia de datos y el flujo de control dentro del sistema, lo que permite la ejecución de instrucciones y el procesamiento de datos.

Normalmente en un PC los buses están contenidos en la placa madre

La motherboard, también conocida como placa base o placa madre, es el componente principal de un PC y juega un papel fundamental en el funcionamiento y la interconexión de todos los demás componentes. A continuación, se describe en detalle el rol de la motherboard en un PC:

1. Conexión y Soporte de Componentes: La motherboard proporciona los conectores y puertos necesarios para conectar y soportar otros componentes del PC. Esto incluye el socket del procesador, los slots de memoria RAM, los slots de expansión (como PCI, PCIe), los conectores para unidades de almacenamiento (como SATA o M.2), los puertos USB, los puertos de audio y video, entre otros. Estos conectores y puertos permiten que los diferentes componentes se comuniquen y funcionen juntos de manera eficiente.

2. Circuito Impreso: La motherboard es una placa de circuito impreso (PCB) que aloja e interconecta todos los componentes del PC. En su superficie, encontramos una compleja red de pistas de cobre que conectan los diferentes componentes y permiten el flujo de datos y energía entre ellos. La disposición y diseño de estas pistas se hace de manera que optimice el rendimiento y la estabilidad del sistema.

3. Soporte del Procesador: La motherboard alberga el socket o zócalo donde se instala el procesador. Este socket proporciona la interfaz física y eléctrica necesaria para conectar el procesador a la motherboard. Además, la motherboard proporciona el sistema de alimentación (VRM) necesario para suministrar la energía adecuada al procesador.

4. Controladores de E/S: La motherboard incluye controladores de entrada/salida (E/S) integrados que permiten la comunicación entre los componentes conectados y los periféricos. Estos controladores pueden incluir, por ejemplo, controladores de red (Ethernet), controladores de audio, controladores USB, controladores SATA, etc. Estos controladores permiten la comunicación y el intercambio de datos entre el PC y los dispositivos externos.

5. BIOS/UEFI: La motherboard alberga el firmware de sistema básico conocido como BIOS (Basic Input/Output System) o UEFI (Unified Extensible Firmware Interface). El BIOS/UEFI es responsable de la inicialización y configuración inicial del hardware del PC, así como de proporcionar una interfaz para realizar cambios en la configuración del sistema, como la secuencia de arranque, la configuración de la memoria y otras opciones de configuración.

6. Control de Energía: La motherboard gestiona el suministro de energía al PC. Incluye circuitos de regulación de voltaje y protección que garantizan un suministro de energía adecuado y estable a todos los componentes. Además, la motherboard puede incluir características de gestión de energía para optimizar el consumo de energía y permitir funciones como el modo de suspensión o hibernación.

La motherboard es entonces el componente central de un PC que proporciona las conexiones, soporte y funciones necesarias para que todos los demás componentes funcionen juntos de manera eficiente. Es el eje que permite la interconexión y comunicación entre el procesador, la memoria, los dispositivos de almacenamiento, los periféricos y otros componentes, y proporciona características esenciales como el control de energía y la configuración del sistema.

El número característico de una arquitectura: la cantidad de bits

Cuando se habla de una arquitectura de "X bits" en referencia a un sistema informático, se está haciendo referencia al tamaño de los registros y las operaciones de datos que ese sistema puede manejar de manera eficiente. El número de bits se refiere a la cantidad de información que se puede procesar o almacenar en paralelo en una sola operación.

En una arquitectura de 8 bits, por ejemplo, los registros y las operaciones de datos están diseñados para trabajar con bloques de 8 bits a la vez. Esto significa que el sistema puede manejar datos de hasta 8 bits de longitud en una sola instrucción o operación. Del mismo modo, en una arquitectura de 16 bits, los registros y las operaciones de datos están diseñados para trabajar con bloques de 16 bits.

El tamaño de la arquitectura en bits tiene implicaciones en términos de la capacidad de direccionamiento de memoria, la precisión de los cálculos y el rango de valores que se pueden representar. Por ejemplo, en una arquitectura de 8 bits, se pueden representar valores enteros en el rango de 0 a 255 (2^8 - 1), mientras que en una arquitectura de 16 bits, el rango se amplía a 0 a 65,535 (2^16 - 1).

Además, el tamaño de la arquitectura también influye en la eficiencia y el rendimiento del sistema. Una arquitectura de mayor tamaño, como una de 32 bits o 64 bits, puede manejar operaciones y cálculos más complejos y trabajar con conjuntos de datos más grandes en cada ciclo de reloj. Esto puede resultar en un rendimiento más rápido y capacidades de procesamiento más avanzadas en comparación con arquitecturas de menor tamaño.

El número de bits en una arquitectura determina el tamaño de los registros y las operaciones de datos que el sistema puede manejar, lo que a su vez tiene implicaciones en la capacidad de direccionamiento de memoria, la precisión de los cálculos y el rendimiento del sistema.

Ejemplos de arquitecturas de 8 bits

Algunos ejemplos de arquitecturas de 8 bits históricamente significativas:

1. Intel 8080: Lanzado en 1974, el Intel 8080 fue un microprocesador de 8 bits ampliamente utilizado en las primeras computadoras personales. Tenía un bus de datos y un bus de direcciones de 8 bits, y podía direccionar hasta 64 KB de memoria. Fue utilizado en sistemas como el Altair 8800 y el IMSAI 8080.

2. Zilog Z80: Introducido en 1976, el Zilog Z80 fue un microprocesador de 8 bits altamente exitoso y compatible con el Intel 8080. Tenía un conjunto de instrucciones mejorado y se utilizó en numerosos sistemas populares, como el Sinclair ZX Spectrum, el Commodore 128 y el Game Boy original.

3. MOS Technology 6502: Lanzado en 1975, el MOS Technology 6502 fue un microprocesador de 8 bits asequible y ampliamente utilizado. Fue utilizado en computadoras domésticas como el Apple II, el Commodore 64 y el Atari 2600. Tenía un bus de datos de 8 bits y un bus de direcciones de 16 bits.

4. Microchip PIC: La familia de microcontroladores PIC (Programmable Interface Controllers) de Microchip Technology incluye varios modelos de 8 bits ampliamente utilizados en aplicaciones embebidas. Estos microcontroladores de 8 bits se utilizan en una amplia gama de dispositivos, desde electrodomésticos hasta automóviles y sistemas industriales.

Ejemplos de arquitecturas de 16 bits

Algunos ejemplos de arquitecturas de 16 bits que han sido ampliamente utilizadas:

1. Intel 8086/8088: El Intel 8086 fue lanzado en 1978 y fue uno de los primeros microprocesadores de 16 bits. Junto con su versión más económica, el Intel 8088, estos procesadores fueron utilizados en las primeras computadoras personales, como el IBM PC original. Tenían un bus de datos y un bus de direcciones de 16 bits, y podían direccionar hasta 1 MB de memoria.

2. Motorola 68000: Introducido en 1979, el Motorola 68000 fue un microprocesador de 16/32 bits muy influyente. Aunque tenía un bus de datos de 16 bits, podía realizar operaciones internas de 32 bits, lo que lo convertía en un procesador de arquitectura híbrida. Fue ampliamente utilizado en computadoras y sistemas embebidos, como el Apple Macintosh original y las consolas de juegos Sega Genesis y Neo Geo.

3. ARM Cortex-M: La familia de microcontroladores Cortex-M de ARM es muy popular en aplicaciones embebidas. Estos microcontroladores de 16/32 bits están diseñados para ofrecer un rendimiento eficiente en términos de consumo de energía y costo. La arquitectura Cortex-M se utiliza en una amplia gama de dispositivos, desde electrodomésticos y dispositivos médicos hasta sistemas de control industrial y automoción.

4. Intel 80286: Lanzado en 1982, el Intel 80286, también conocido como Intel 286, fue un microprocesador de 16 bits utilizado en computadoras de la época. Ofrecía mejoras significativas en velocidad y capacidad de memoria en comparación con el Intel 8086/8088. El Intel 80286 fue un hito en la evolución de las arquitecturas de 16 bits y allanó el camino para el desarrollo de procesadores más avanzados.

Ejemplos de arquitecturas de 32 bits

Algunos ejemplos de arquitecturas de 32 bits que han sido ampliamente utilizadas:

1. Intel 80386: Lanzado en 1985, el Intel 80386, también conocido como Intel 386, fue un microprocesador de 32 bits revolucionario. Introdujo importantes mejoras en términos de rendimiento y capacidad de memoria en comparación con sus predecesores. Fue utilizado en computadoras personales y estaciones de trabajo de la época y sentó las bases para las arquitecturas de 32 bits posteriores.

2. ARM Cortex-A: La familia de procesadores Cortex-A de ARM es ampliamente utilizada en dispositivos móviles y sistemas embebidos de alto rendimiento. Estos procesadores de 32 bits ofrecen un rendimiento eficiente en términos de consumo de energía y son conocidos por su arquitectura escalable y capacidades de procesamiento multimedia. Han sido utilizados en smartphones, tabletas y otros dispositivos móviles.

3. AMD Ryzen: La serie de procesadores AMD Ryzen es una arquitectura de 32 bits y 64 bits lanzada en 2017. Estos procesadores han ganado popularidad en el mercado de PC de escritorio y ofrecen un rendimiento competitivo en términos de potencia de procesamiento y eficiencia energética. Han sido utilizados tanto en computadoras de consumo como en sistemas de alto rendimiento para aplicaciones exigentes.

4. PowerPC: La arquitectura PowerPC, desarrollada por IBM, Motorola y Apple, es una arquitectura de procesador de 32 bits utilizada en una variedad de sistemas, desde computadoras personales hasta servidores y consolas de videojuegos. Fue utilizado en computadoras Apple Macintosh, así como en las consolas de videojuegos Nintendo GameCube y Wii.

Ejemplos de arquitecturas de 64 bits

Algunos ejemplos de arquitecturas de 64 bits que han sido ampliamente utilizadas:

1. x86-64 (AMD64/Intel 64): Esta arquitectura de 64 bits es una extensión de la arquitectura x86 utilizada en la mayoría de las computadoras personales y servidores. Fue introducida por AMD con el nombre de AMD64 y posteriormente adoptada por Intel como Intel 64. Es compatible con aplicaciones de 32 bits y ofrece mejoras significativas en términos de capacidad de memoria y rendimiento. Es ampliamente utilizado en sistemas operativos como Windows, macOS y Linux.

2. ARMv8-A: La arquitectura ARMv8-A es utilizada en procesadores ARM de 64 bits, que son comunes en dispositivos móviles, como smartphones y tabletas, así como en sistemas embebidos y servidores de baja potencia. Ofrece un rendimiento mejorado y soporte para aplicaciones de 64 bits. ARMv8-A también es compatible con aplicaciones de 32 bits.

3. IBM POWER: La arquitectura POWER, desarrollada por IBM, es una arquitectura de 64 bits utilizada en servidores y sistemas de alto rendimiento. Es conocida por su capacidad de procesamiento en paralelo y su enfoque en la computación de alto rendimiento. La arquitectura POWER se utiliza en sistemas empresariales y en supercomputadoras de alto rendimiento.

4. SPARC64: La arquitectura SPARC64, desarrollada por Oracle (anteriormente Sun Microsystems), es una arquitectura de 64 bits utilizada en servidores y sistemas empresariales. Es compatible con múltiples subprocesos y está diseñada para ofrecer un alto rendimiento en entornos empresariales y de misión crítica.

Arquitecturas de 128 bits ?

A 2021, no existen arquitecturas de procesador convencionales de 128 bits que hayan sido ampliamente adoptadas en sistemas comerciales o de consumo. Las arquitecturas de 128 bits se encuentran más comúnmente en el ámbito teórico o en aplicaciones especializadas.

Sin embargo, en algunos contextos, se han utilizado extensiones o registros de 128 bits para realizar operaciones específicas en procesadores de 64 bits existentes. Por ejemplo, los procesadores x86-64 tienen registros SIMD (Single Instruction, Multiple Data) de 128 bits, que permiten realizar operaciones simultáneas en múltiples elementos de datos.

Además, en el campo de la criptografía, existen algoritmos y protocolos que utilizan longitudes de clave de 128 bits. Por ejemplo, el estándar de cifrado AES (Advanced Encryption Standard) utiliza claves de 128 bits para proteger la seguridad de la información.

Podríamos pensar en la combinación de estas nuevas memorias como una arquitectura Harvard, pero es más preciso verlo en base a una arquitectura principal Von Neumann con memorias auxiliares.

La memoria RAM habitualmente arranca vacía, pues es volátil.

Entonces, de dónde saca el programa inicial ?

SIEMPRE la secuencia de encendido de una computadora, sea cual sea, incluidos los STR, es así: copiar la ROM en la RAM, y ejecutar ese programa.

Por ejemplo en la inyección de combustible de un motor, el programa queda ejecutando copiado de ROM a RAM y listo.

En un PC, el programa ejecuta, (BIOS) chequea el hardware y se va a buscar el SO a disco. Y ahí le pasará el control a éste y sigue la ejecución por ahí.

La ROM, por contener las BIOS, y la memoria secundaria, por contener el Sistema Operativo, son ineludibles al considerar la computadora. Sin embargo no son elementos centrales en el modelo Von Neumann, son accesorios.

Las BIOS comprenden un chequeo básico de la memoria, la detección de los dispositivos en los buses auxiliares (por ejemplo el bus que contiene los discos), el bus de video, etc. Bajo una información básica va a buscar el sistema operativo a disco y este sigue paso por paso.

Ejemplos de mucho cómputo:

  • Videojuegos
  • Simulaciones
  • Renderización u otras tareas relacionadas con diseño, procesamiento de imágenes, de video, etc.
  • Resolución de problemas matemáticos pesados.
  • Romper códigos, deducir contraseñas por fuerza bruta, romper encriptación, etc.

Muchas veces el cuello de botella no está tanto en la arquitectura, ni en la interconexión local dentro de la computadora, sino en la red… en la conexión a algún servicio, etc.

También el cómputo de tiempo real, en el responder a tiempo, ha evolucionado mucho. Basta considerar los sistemas de los aviones o de los autos. Cuando medimos cómputo por unidad de tiempo, estos sistemas resultan con altos requerimientos.

Si consideramos la computadora real, cualquiera, tenemos no sólo los elementos Von Neumann, pues debemos procesar entradas y salidas. Tenemos dispositivos de entrada, de salida y de almacenamiento. Todos ellos van subordinados a la CPU, en su periferia, por eso se les dice periféricos. Esto incluye teclado, mouse, sensores y actuadores, etc.

Se comunican con la CPU por medio de interrupciones. Una interrupción es una señal que informa a la CPU que se requiere una acción.

Por ejemplo: “estamos chocando”, “alguien ha pulsado una tecla”, …

Cuando llega a la CPU una interrupción, se le informa a la CPU por una línea especial, un cable llamado INTR por ejemplo. Y esto lo trae el controlador de interrupciones, quien está conectado a la CPU por la línea INTR y a los dispositivos por las líneas llamadas IRQ.

El resultado obtenido es que la CPU está procesando y en determinado momento recibe una interrupción, analiza cuál es, determina en función de la misma el código a ejecutar (consulta las tablas de interrupciones y obtiene la dirección del código). Ese código se llama handler de la interrupción… y lo ejecuta. Y sigue con lo que estaba.

Esta es otra forma de multitarea más básica, a nivel de la arquitectura.

Los drivers de los dispositivos, no son más que los handlers para las interrupciones que éste genera.

Los dispositivos reciben la denominación de periféricos por estar subordinados a la CPU.

Ese es el gran concepto de la arquitectura Von Neumann, el tener una máquina centrada en la CPU y la RAM.

En la memoria está el programa. El mismo está en código máquina. El código máquina depende del procesador. Cada procesador (se organizan por familias) tiene un determinado conjunto de instrucciones que reconoce, el instruction set. Contiene todo lo que se puede hacer en su lenguaje máquina.  Es usual que los instruction set de los procesadores viejos venga incluido en el de los nuevos. Por compatibilidad.

En la memoria reside Código máquina.

El Assembler es una forma amigable, de leer 1 a 1 las líneas de CM.

Un lenguaje de alto nivel (ejemplo C, C++, etc) COMPILA o INTERPRETA para ir a CM.

La compilación implica tomar todo el programa y traducirlo a CM, una vez y queda.

La interpretación implica traducir línea a línea a CM y ejecutar.

Ejemplo un código C viene en un conjunto de módulos .c los compilo, genero un ejecutable, y ese archivo con CM lo ejecuto cuantas veces quiera.

También podría usar un intérprete C para ejecutarlo dentro de él, sin compilar. Esto sirve para debugging.

Java es un caso especial. Porque corre en una máquina virtual que está en el navegador o en el ambiente de ejecución. Entonces el código generado se traduce no a CM sino a la JVM y es en el navegador que se interpreta línea por línea, traduciendo a CM.

La otra forma de trabajar con Java es compilar a CM. Generar un a.out “pelado”. Ahí perdemos la portabilidad, que es la razón de ser del lenguaje. Y voy a la línea de ejecución de Linux y lo ejecuto ./a.out   ….. un ejecutable “salvaje”. No es portable multiplataforma.

La cantidad de bits de una arquitectura es el “ancho de las calles”. Es decir, la unidad de intercambio entre los registros de la CPU y la memoria.

Por ejemplo:

Z80…………………. 8 bits

8086……………… 16 bits

80386…………… 32 bits

Pentium IV 3Ghz 32bits…. 2004

Pentium D…………. 64 bits.

128 bits ?

Este número determina el resto de la arquitectura.

Cantidad de bits

Lenguajes de distinto nivel

Assembler

Registros

Stack

Arquitectura 8086

Una arquitectura típica de 8 bits: el procesador Z80.

https://es.wikipedia.org/wiki/Zilog_Z80

El IBM PC (16 bits, profesional, USD 3.000.-) se lanzó al mercado en 1981.

Sin embargo, en los 80’s hubo una gran corriente de computadoras domésticas, orientadas a los juegos pero también a algunos programas utilitarios. Todas ellas de 8 bits, y en general basadas en la CPU Z80 de Zilog creada en 1976.

https://es.wikipedia.org/wiki/Commodore_64

Características del Z80:

Es un procesador de 8 bits.

El Z80 tenía ocho mejoras fundamentales respecto al Intel 8080:

  • Un conjunto de instrucciones mejorado, incluyendo los nuevos registros índice IX e IY y las instrucciones necesarias para manejarlos. MAS INSTRUCCIONES.
  • Dos bancos de registros que podían ser cambiados de forma rápida para acelerar la respuesta a interrupciones. MAS REGISTROS.
  • Instrucciones de movimiento de bloques, E/S de bloques y búsqueda de bytes. SIMPLIFICA LA PROGRAMACION
  • Instrucciones de manipulación de bits. FACILITA PROGRAMACION Y ELIMINA NECESIDAD DE TRUCOS.
  • Un contador de direcciones para el refresco de la DRAM integrado, que en el 8080 tenía que ser proporcionado por el conjunto de circuitos de soporte. SIMPLIFICA LA EJECUCION DE LOS PROGRAMAS
  • Alimentación única de 5 voltios. AUMENTA SU COMPATIBILIDAD CON DIFERENTES DISPOSITIVOS
  • Necesidad de menos circuitos auxiliares, tanto para la generación de la señal de reloj como para el enlace con la memoria y la E/S. AUMENTA SU COMPATIBILIDAD Y SIMPLIFICA LAS COMPUTADORAS QUE LO ADOPTAN
  • Más barato que el Intel 8080.
  • Una tipo especial de reset que solo reinicia el contador de programa de modo que el Z80 se puede usar en un sistema de desarrollo ICE (In-Circuit Emulator).1

El Z80 eliminó rápidamente al Intel 8080 del mercado y se convirtió en uno de los procesadores de 8 bits más populares. Las primeras versiones funcionaban a 2,5 MHz, pero su velocidad ha aumentado hasta los 20 MHz. Así, la versión más utilizada fue el Z80A funcionando a 3,58 MHz (un cuarto de la frecuencia PAL o NTSC) siendo la velocidad de fábrica de 4 MHz.2

En la actualidad Zilog sigue fabricando versiones del Z80 original y otros modelos compatibles con él que mejoran las prestaciones.

Las patas del procesador se pueden agrupar en:

  • Corriente y reloj.
  • Control de los buses y control en general.
  • Direcciones.
  • Datos.

Aquí notamos que en la computadora, la comunicación a través del BUS implica pasar direcciones (bus de direcciones) y datos (bus de datos). Entre ambos conforman el bus general del sistema.

Una arquitectura típica de 16 bits: el procesador 8086.

El IBM PC creado en 1981

https://es.wikipedia.org/wiki/IBM_PC

3,56 Mhz Esto implica 3,56 x 1.000.000 ciclos/seg=3.560.000 ciclos/seg (operaciones/seg)

256 Kb RAM

Si había disco duro, era de 10 Mb.

El procesador era un Intel 8088

https://es.wikipedia.org/wiki/Intel_8086_y_8088

Procesadores de 16 bits 8086 y 8088

La evolución de los procesadores Intel.

8086 (16 bits) (3,56Mhz)

8088

80286 (20 Mhz)

80386 (32 bits) (32 Mhz)

80486

Pentium (60 Mhz …)

Pentium MMX

Pentium II (233 Mhz…)

Pentium III (500 Mhz)

Pentium IV ( se llegaba a los 3 Ghz)

Pentium D (64 bits) (1 Ghz….)

Dual Core (multinúcleo)

Quad Core

I3

I5

I7

I9

Hasta 5 Ghz

Hasta 128 Gb RAM

8 núcleos

Fines 2018

Arquitectura Intel 8086.

La computadora a bajo nivel es una máquina MUY simple.

La potencia de la computadora no está en ningunos de sus niveles específicamente sino en la posibilidad de ejecutar MUY RAPIDO instrucciones MUY SIMPLES.

A nivel de Assembler, la computadora tiene REGISTROS, que son unas memorias básicas para realizar operaciones. No puedo operar nada que no esté en registros. Y el resultado va en registros también.

También está la memoria, que es un gran array. Puedo llevar y traer de memoria a registros.

También están los buses por los cuales interactuamos para las interrupciones, etc.

También tenemos el stack que nos permite apilar y desapilar. Stack es LIFO. Last in first out.

AX x (BX**2)

Hay 2 enfoques: RISC y CISC. RISC:… la computadora tiene pocas operaciones posibles pero las hace muy rápido. CISC: la computadora sabe a nivel de Assembler hacer más cosas.

Actualmente se combina lo mejor de los dos mundos.

Pero una máquina RISC pura, por ejemplo, no sabe multiplicar, hay que hacerlo en base a sumas. Etc.

Y todo esto cierra la visión de la computadora a nivel de su arquitectura.

En las clases siguientes, tomando la arquitectura como un dato, trabajaremos el nivel del sistema operativo.

Cierre del nivel de Arquitectura.


Los procesadores Intel

Una lista de algunos de los procesadores más conocidos de Intel junto con algunas de sus principales características:

1. Intel 4004: Fue el primer microprocesador de un solo chip lanzado por Intel en 1971. Tenía una arquitectura de 4 bits y operaba a una frecuencia de reloj de 740 kHz.

2. Intel 8008: Lanzado en 1972, fue uno de los primeros microprocesadores de 8 bits. Operaba a una frecuencia de reloj de hasta 200 kHz y tenía un conjunto de instrucciones mejorado en comparación con el Intel 4004.

3. Intel 8080: Introducido en 1974, fue otro microprocesador de 8 bits utilizado en las primeras computadoras personales. Tenía una velocidad de reloj de hasta 2 MHz y era compatible con el conjunto de instrucciones del Intel 8008.

4. Intel 8086/8088: Estos microprocesadores de 16 bits se lanzaron en 1978. El Intel 8086 tenía un bus de datos de 16 bits y operaba a velocidades de hasta 10 MHz, mientras que el Intel 8088 era una versión de menor costo con un bus de datos externo de 8 bits.

5. Intel 80286: Lanzado en 1982, fue un microprocesador de 16 bits que ofrecía mejoras significativas en rendimiento y capacidad de memoria en comparación con sus predecesores. Operaba a velocidades de hasta 20 MHz y tenía un modo de memoria protegida.

6. Intel 80386: Introducido en 1985, fue uno de los primeros microprocesadores de 32 bits de Intel. Tenía un conjunto de instrucciones ampliado, una caché interna y podía manejar hasta 4 GB de memoria física. Operaba a velocidades de hasta 33 MHz.

7. Intel Pentium: El primer procesador de la línea Pentium fue lanzado en 1993 y marcó una transición hacia la arquitectura x86 de 32 bits. Ofrecía un rendimiento mejorado y fue utilizado en numerosas computadoras personales durante los años 90.

1. Procesador Pentium: El procesador Pentium fue lanzado por Intel en 1993 y fue un hito en la línea de productos de Intel. Utilizaba la arquitectura x86 de 32 bits y ofrecía un rendimiento notablemente superior a los procesadores anteriores. Los primeros modelos de Pentium tenían frecuencias de reloj que oscilaban entre 60 MHz y 200 MHz. Ofrecían una memoria caché de nivel 1 (L1) mejorada en comparación con los procesadores anteriores y eran populares en las computadoras personales de la década de 1990.

2. Procesador Pentium MMX: Lanzado en 1996, el Pentium MMX (MultiMedia eXtension) fue una mejora del Pentium original. Presentaba extensiones multimedia que mejoraban el rendimiento en tareas como gráficos, audio y video. Además, tenía una memoria caché L1 más grande y un conjunto de instrucciones optimizado para aplicaciones multimedia. Los procesadores Pentium MMX tenían frecuencias de reloj que iban desde 166 MHz hasta 300 MHz.

3. Procesador Pentium II: El Pentium II fue lanzado en 1997 y representó otro salto en el rendimiento de los procesadores Intel. Introdujo el nuevo factor de forma Slot 1 y presentaba mejoras significativas en la arquitectura interna. Tenía frecuencias de reloj que iban desde 233 MHz hasta 450 MHz. El Pentium II también incluía una memoria caché L2 integrada en el procesador, lo que mejoraba aún más el rendimiento.

4. Procesador Pentium III: El Pentium III fue lanzado en 1999 y continuó la línea de procesadores Intel de alto rendimiento. Tenía frecuencias de reloj que iban desde 450 MHz hasta 1.4 GHz. El Pentium III introdujo la tecnología SSE (Streaming SIMD Extensions), que mejoraba el rendimiento en aplicaciones multimedia y de procesamiento de datos. Además, presentaba una memoria caché L2 más grande y mejoras en la arquitectura interna para ofrecer un mejor rendimiento en aplicaciones exigentes.

5. Procesador Pentium 4: Lanzado en el año 2000, el Pentium 4 fue un procesador de alto rendimiento enfocado en el aumento de la velocidad de reloj y el rendimiento en tareas con un solo hilo de ejecución. Presentaba frecuencias de reloj que iban desde 1.3 GHz hasta más de 3.8 GHz. El Pentium 4 introdujo la microarquitectura NetBurst, que incluía una tubería de instrucciones más larga y una memoria caché L2 más grande. Sin embargo, a medida que las aplicaciones comenzaron a aprovechar mejor los múltiples núcleos, el rendimiento del Pentium 4 se vio superado por otros procesadores posteriores.

6. Procesador Pentium D: Lanzado en 2005, el Pentium D fue el primer procesador de Intel en utilizar una arquitectura de doble núcleo en el mercado de consumo. Cada núcleo operaba a frecuencias de reloj que iban desde 2.66 GHz hasta 3.73 GHz. El Pentium D ofrecía un mejor rendimiento en tareas multitarea

8. Intel Core: Introducido en 2006, la serie de procesadores Intel Core marcó un cambio hacia la microarquitectura basada en el conjunto de instrucciones x86-64 de 64 bits. Estos procesadores ofrecían un mayor rendimiento, eficiencia energética y capacidades multimedia mejoradas.

9. Intel Core i3, i5, i7, i9: Estas son las líneas de procesadores actuales de Intel, que ofrecen diferentes niveles de rendimiento y características. Los procesadores Core i3 son de nivel básico, los i5 son de nivel medio, los i7 son de nivel alto y los i9 son de nivel entusiasta. Ofrecen múltiples núcleos, frecuencias de reloj más altas, tecnologías de virtualización y características avanzadas para juegos y aplicaciones intensivas.

Una descripción más detallada de los procesadores Intel Core i3, i7 e i9:

1. Procesador Intel Core i3: El Intel Core i3 es una línea de procesadores de nivel básico de Intel. Está diseñado para aplicaciones cotidianas y tareas informáticas más ligeras. Algunas características comunes de los procesadores i3 incluyen:

   - Arquitectura de múltiples núcleos: Los procesadores i3 suelen tener 2 o 4 núcleos físicos, lo que permite un rendimiento multitarea decente.

   - Tecnología Hyper-Threading: La mayoría de los procesadores i3 tienen Hyper-Threading, lo que permite que cada núcleo ejecute dos hilos de forma simultánea, mejorando el rendimiento en tareas que pueden aprovecharlo.

   - Caché: Los procesadores i3 generalmente incluyen una caché L3 compartida y una caché L2 dedicada para cada núcleo, lo que mejora el rendimiento en el acceso a datos.

   - Frecuencias de reloj moderadas: Los procesadores i3 tienen frecuencias de reloj moderadas, que pueden variar según el modelo, generalmente en el rango de 2 a 4 GHz.

   - Consumo de energía: Los procesadores i3 tienden a ser eficientes en términos de consumo de energía, lo que los hace adecuados para sistemas de bajo consumo y dispositivos portátiles.

2. Procesador Intel Core i7: El Intel Core i7 es una línea de procesadores de alto rendimiento de Intel. Está diseñado para tareas exigentes, como juegos, edición de video y aplicaciones de productividad intensivas. Algunas características comunes de los procesadores i7 incluyen:

   - Arquitectura de múltiples núcleos: Los procesadores i7 suelen tener 4 a 8 núcleos físicos, lo que brinda un rendimiento excepcional en tareas multitarea y paralelas.

   - Tecnología Hyper-Threading: Todos los procesadores i7 tienen Hyper-Threading, lo que permite que cada núcleo ejecute dos hilos de forma simultánea, lo que aumenta aún más el rendimiento en aplicaciones que pueden aprovecharlo.

   - Caché: Los procesadores i7 tienen una generosa cantidad de caché L3 compartida y una caché L2 dedicada para cada núcleo, lo que mejora el rendimiento en el acceso a datos.

   - Frecuencias de reloj más altas: Los procesadores i7 suelen tener frecuencias de reloj más altas en comparación con los modelos i3, lo que les permite ofrecer un rendimiento más rápido en tareas intensivas.

   - Consumo de energía y disipación de calor: Debido a su rendimiento y frecuencias de reloj más altas, los procesadores i7 tienden a tener un consumo de energía y una disipación de calor más altos en comparación con los modelos i3.

3. Procesador Intel Core i9: El Intel Core i9 es la línea de procesadores de gama alta y máximo rendimiento de Intel. Está diseñado para aplicaciones exigentes, como edición de video 4K, creación de contenido y tareas de renderizado intensivas. Algunas características comunes de los procesadores

Algunas características comunes de los procesadores i9 incluyen:

  • Arquitectura de múltiples núcleos: Los procesadores i9 tienen un mayor número de núcleos físicos en comparación con los modelos i7, que van desde 8 hasta 18 núcleos. Esto les permite ofrecer un rendimiento excepcional en aplicaciones que requieren un alto grado de paralelismo.
  • Tecnología Hyper-Threading: Todos los procesadores i9 tienen Hyper-Threading, lo que duplica la capacidad de hilos y proporciona un rendimiento aún mayor en tareas intensivas en paralelo.
  • Caché: Los procesadores i9 tienen una cantidad generosa de caché L3 compartida y una caché L2 dedicada para cada núcleo, lo que mejora el rendimiento en el acceso a datos y la latencia de la memoria.
  • Frecuencias de reloj altas: Los procesadores i9 tienen frecuencias de reloj más altas en comparación con los modelos i7, lo que les permite ofrecer un rendimiento excepcional en aplicaciones de un solo hilo de ejecución.
  • Consumo de energía y disipación de calor: Debido a su mayor rendimiento y número de núcleos, los procesadores i9 tienden a tener un consumo de energía y una disipación de calor más altos que los modelos i7.

Preguntas de Arquitectura Von Neumann…

Para qué sirve el BUS ?

Permite la conexión entre la CPU y la memoria. Estos dos son los componentes fundamentales de la arquitectura Von Neumann. Transmite datos entre ellos.

Por qué el ancho del Bus es fundamental en una arquitectura ?

Coincide con el ancho de los registros de la CPU. Es un número característico de la arquitectura. Por ejemplo 8 bits en un Z80, 64 bits en un i3.

Por qué la RAM es la memoria primaria ?

Porque es la única memoria que la CPU puede acceder directamente, es decir en una sola operación, es decir en un Mov de Assembler.

Cuáles son las partes de la CPU y sus roles ?

UAL Unidad Aritmético Lógica ---- realizar operaciones.

Unidad de Control ----- controla la ejecución del programa.

Registros ----- son las memorias de trabajo de la CPU.

Por qué decimos que en la memoria está EL PROGRAMA, siendo que un sistema habitualmente es multitarea ?

La arquitectura es Monotarea. Podemos considerar si quieren el multitarea del paralelismo si hay más de un núcleo. Pero la arquitectura es básicamente monotarea. Ese programa tal vez tiene instrucciones mezcladas de varios programas, que ejecutan “a la vez” en el sistema operativo.

La arquitectura Von Neumann hace referencia a que un programa está en memoria junto con sus datos a procesar.

Cuál es la diferencia principal entre una arquitectura Harvard y una arquitectura Von Neumann ?

En la arquitectura Von Neumann, tenemos la CPU interactuando contra una única memoria principal. En la arquitectura Harvard, aparecen múltiples memorias.

Cuál de las dos predomina en una computadora de escritorio ?

Una computadora de escritorio, básicamente sigue una arquitectura Von Neumann, pues su núcleo es una CPU conectada con una memoria RAM. Pero es cierto que la ROM, la memoria secundaria, las cachés, memoria de video, etc. constituyen elementos arquitectónicos Harvard.

Dónde está físicamente el BUS en una computadora de escritorio ? Y en un celular ?

Está en la motherboard, tanto en una computadora como en un celular.

La arquitectura del celular y de la computadora son similares. A lo sumo en el celular tenemos menos posibilidad de disipar calor lo cual conlleva  a la existencia de procesadores, placas , especiales , que consumen menos y liberan menos calor. El otro factor importante es no agotar la batería. Por esa razón no podemos ponerle un i3 a un celular.

Para qué sirve la ROM? 

Contiene los programas esenciales para prender la computadora. De su ejecución se chequea lo básico y se busca en disco el sistema operativo.

No hay comentarios:

Publicar un comentario

Arquitectura de Sistemas (Microprocesadores I)

  Arquitectura de Sistemas (Microprocesadores I) Ing. Angel Caffa, MSc. MBA angelcaffa@gmail.com Teoría de Arquitectura de Sistemas  © 2026 ...