Fundamentos de Arquitectura de Computadoras: Procesadores, Memoria y Firmware

Clasificado en Informática

Escrito el en español con un tamaño de 16,49 KB

Firmware: Conceptos y Actualización

1. Critique la frase “el firmware es hardware y software a la vez”

Respuesta: La frase es precisa. El firmware es una capa de software de bajo nivel que reside en un hardware específico (como una memoria ROM, EPROM o Flash). Actúa como el "cerebro" del hardware, controlando sus funciones básicas. Por lo tanto, es software en su naturaleza programable y hardware en su implementación física y su estrecha vinculación con el componente.

2. Mencione lo que puede suceder si se interrumpe una actualización de firmware.

Respuesta: Si se interrumpe una actualización de firmware, el componente puede quedar inservible (conocido como "bricking"). Esto se debe a que el proceso de actualización sobrescribe el software de control esencial. Una interrupción puede dejar el firmware incompleto o corrupto, impidiendo que el hardware funcione correctamente o incluso que se inicie, lo que podría estropear dicho hardware del equipo de forma permanente.

3. Explique por qué una actualización fallida de firmware podría causar que el dispositivo quede inutilizable.

Respuesta: Una actualización fallida de firmware puede dejar un dispositivo completamente inutilizable porque el firmware es el software fundamental que permite al hardware operar. Si este software se corrompe o se instala incorrectamente, el dispositivo no podrá inicializarse ni ejecutar sus funciones básicas, convirtiéndose en un "ladrillo" electrónico.

4. Ilustre el proceso de actualización de un firmware.

Respuesta: El proceso de actualización de firmware generalmente implica los siguientes pasos:

  1. Borrado: Se elimina el firmware antiguo del chip de memoria.
  2. Grabado/Escritura: Se escribe el nuevo firmware en el chip de memoria.
  3. Verificación/Lectura: Se lee el firmware recién grabado para asegurar que la escritura fue exitosa y que los datos son correctos.

5. ¿Qué hace posible que los celulares tengan un menú?

Respuesta: El firmware es el componente clave que hace posible que los celulares tengan un menú y una interfaz de usuario. Contiene el sistema operativo de bajo nivel y las instrucciones que permiten la interacción con el hardware y la presentación de opciones al usuario.

Arquitectura de Procesadores y Componentes

6. Compare una unidad de disco duro con una máquina de Von Neumann.

Respuesta: Un disco duro es un dispositivo de almacenamiento periférico que funciona como unidad de entrada y salida (E/S) para datos persistentes. En contraste, la arquitectura de Von Neumann es un modelo conceptual de computadora que describe una máquina compuesta por cinco componentes principales:

  • Unidad de Memoria
  • Unidad de Entrada
  • Unidad de Salida
  • Unidad de Control (UC)
  • Unidad Aritmético-Lógica (ALU)

La principal diferencia radica en que el disco duro es un componente de E/S dentro de un sistema que podría seguir la arquitectura de Von Neumann, mientras que esta última es un modelo arquitectónico completo de cómo interactúan los componentes fundamentales de una computadora.

7. Ordene históricamente los siguientes procesadores: 8088, 30386, z80, 8086, 80286.

Respuesta: El orden histórico correcto de los procesadores es:

  1. Zilog Z80 (1976)
  2. Intel 8086 (1978)
  3. Intel 8088 (1979)
  4. Intel 80286 (1982)
  5. Intel 80386 (1985)

8. Juzgue la frase: “el ensamblador de todos los procesadores es el mismo”

Respuesta: La frase es incorrecta. El lenguaje ensamblador es específico de la arquitectura del conjunto de instrucciones (ISA) de cada procesador. Aunque los principios generales son similares, las instrucciones, registros y modos de direccionamiento varían significativamente entre diferentes familias de procesadores (por ejemplo, x86, ARM, MIPS, Z80, etc.). Por lo tanto, el ensamblador para un procesador no es el mismo que para otro.

9. Explique: “las CPU’s modernas internamente son RISC y realizar la compatibilidad x86 consume energía”

Respuesta: La afirmación es correcta. Muchas CPU modernas, especialmente las de arquitectura x86, implementan internamente un diseño RISC (Reduced Instruction Set Computer), ejecutando micro-operaciones simples. Sin embargo, su interfaz externa sigue siendo CISC (Complex Instruction Set Computer) para mantener la compatibilidad con el vasto software x86 existente. El proceso de traducir las complejas instrucciones CISC a las micro-operaciones RISC internas (conocido como microcódigo o decodificación de instrucciones) consume recursos y, por ende, energía, contribuyendo a un mayor consumo energético en comparación con un diseño puramente RISC.

10. Indique el nombre de la primera CPU por software.

(No se proporcionó respuesta en el documento original)

11. A veces sería deseable reordenar las instrucciones de lectura/escritura. Indique el motivo por el cual esto podría ser potencialmente peligroso.

(No se proporcionó respuesta en el documento original)

12. Indique de los siguientes nombres cuáles NO SON procesadores: 4004, 8080, Z80, 8085, 8086, 80286.

Respuesta: De los nombres listados (4004, 8080, Z80, 8085, 8086, 80286), todos corresponden a procesadores. Son modelos históricos y significativos en la evolución de las CPU.

13. Describa la utilidad de un coprocesador matemático (ej: 80287).

(No se proporcionó respuesta en el documento original)

14. Indique el nombre del primer procesador que permitía realizar más de una operación por ciclo de reloj.

Respuesta: El Intel 8080 (1974) no fue el primer procesador en realizar más de una operación por ciclo de reloj. Los procesadores capaces de ejecutar múltiples operaciones por ciclo de reloj son aquellos con arquitecturas superescalares o pipeline avanzadas, que surgieron significativamente después. El 8080 era un procesador de 8 bits con un diseño más simple. Un ejemplo temprano de procesador con cierto grado de paralelismo (aunque no estrictamente "más de una operación por ciclo" en el sentido moderno) podría ser el Intel i486 con su pipeline de instrucciones, o procesadores posteriores con unidades de ejecución múltiples.

15. Anote las operaciones que se realizan en la ALU.

Respuesta: La Unidad Aritmético-Lógica (ALU) es el componente del procesador encargado de realizar las siguientes operaciones:

  • Operaciones Aritméticas: Suma, resta, multiplicación, división, incremento, decremento, etc.
  • Operaciones Lógicas: AND, OR, NOT, XOR, comparaciones, desplazamiento de bits (shift), rotación de bits, etc.

Es el "cerebro" matemático y lógico de la CPU.

16. Contraste la arquitectura CISC con la arquitectura RISC.

Respuesta: La comparación entre arquitecturas CISC (Complex Instruction Set Computer) y RISC (Reduced Instruction Set Computer) es fundamental en el diseño de procesadores:

  • RISC:
    • Conjunto de instrucciones reducido: Pocas instrucciones, simples y de longitud fija.
    • Ejecución rápida: Cada instrucción se ejecuta generalmente en un ciclo de reloj.
    • Diseño simple: Menos transistores, lo que puede llevar a menor consumo de energía y mayor eficiencia.
    • Compiladores complejos: Requieren compiladores más sofisticados para generar código eficiente.
  • CISC:
    • Conjunto de instrucciones complejo: Muchas instrucciones, algunas muy complejas y de longitud variable.
    • Ejecución variable: Las instrucciones pueden tardar varios ciclos de reloj en completarse.
    • Diseño complejo: Más transistores, lo que puede implicar mayor consumo y complejidad.
    • Compiladores más simples: Las instrucciones complejas pueden realizar tareas que en RISC requerirían varias instrucciones.

Gestión y Jerarquía de Memoria

17. Ordene las siguientes unidades de información de más pequeña a más grande:

Respuesta: El orden correcto de las unidades de información, de la más pequeña a la más grande, es:

  1. Bit (unidad mínima de información binaria)
  2. Nibble (4 bits)
  3. Byte (8 bits)
  4. Word (tamaño variable, típicamente 16, 32 o 64 bits, dependiendo de la arquitectura)
  5. Kilobit (1000 bits o 1024 bits, dependiendo del contexto)
  6. Kilobyte (1024 bytes)
  7. Megabit (1000 kilobits o 1024 kilobits)

Es importante notar la distinción entre bits (b) y bytes (B) y sus prefijos (kilo, mega, giga), ya que se usan en diferentes contextos (velocidad de red vs. capacidad de almacenamiento).

18. Especifique en qué parte de la RAM se encuentra la memoria superior.

Respuesta: La Memoria Superior (Upper Memory Area - UMA) se encuentra en los sistemas DOS/x86 por encima de la memoria convencional (los primeros 640 KB) y por debajo del primer megabyte (1024 KB). Esta área, que abarca desde los 640 KB hasta los 1024 KB, se utilizaba para mapear la BIOS, la memoria de video y las ROM de adaptadores, así como para cargar controladores de dispositivo y TSRs (Terminate and Stay Resident programs) en bloques de memoria superior (UMBs).

19. Indique el segmento que se utiliza como marco de página de la memoria expandida.

Respuesta: El segmento que se utiliza comúnmente como marco de página (page frame) para la memoria expandida (EMS) en sistemas DOS es el segmento D000h (o D0000h en notación de 20 bits). Este marco de página es un bloque de 64 KB dentro de la UMA que se utiliza para intercambiar páginas de memoria expandida.

20. Indique la cantidad máxima de memoria reservada para video en la RAM de un PC x86 con DOS.

Respuesta: En un PC x86 con DOS, la cantidad máxima de memoria reservada para video en la RAM (refiriéndose a la memoria de video mapeada en el espacio de direcciones de la CPU) no era típicamente "hasta 2MB" de RAM del sistema. La memoria de video dedicada (VRAM) en tarjetas gráficas podía ser de varios MB, pero el mapeo en el espacio de direcciones de la CPU (dentro de la UMA) era más limitado, generalmente en el rango de 640KB a 1MB. La respuesta de 2MB podría referirse a la capacidad total de VRAM de una tarjeta gráfica, no a la memoria RAM del sistema reservada para video en el contexto de DOS.

21. Compare la memoria expandida con la memoria extendida.

Respuesta: La distinción entre memoria expandida (EMS) y memoria extendida (XMS) es crucial en la gestión de memoria de sistemas x86 bajo DOS:

  • Memoria Expandida (EMS): Es una técnica de paginación que permite a los programas DOS acceder a memoria más allá de los 640 KB de memoria convencional, utilizando un marco de página de 64 KB dentro de la UMA para intercambiar bloques de 16 KB de memoria. Fue una solución para superar la limitación de 1 MB de los procesadores 8086/8088.
  • Memoria Extendida (XMS): Es la memoria directamente accesible por procesadores x86 (80286 y posteriores) que operan en modo protegido, superando el límite de 1 MB. Esta memoria es lineal y no requiere paginación compleja como EMS, siendo gestionada por un gestor de memoria extendida (XMS driver) como HIMEM.SYS.

22. Compare la memoria expandida con la memoria caché.

(No se proporcionó respuesta en el documento original)

23. Mencione qué se guarda en la Shadow RAM.

Respuesta: En la Shadow RAM (o memoria sombra) se guarda una copia de la BIOS (Basic Input/Output System) del sistema. Esto se hace para que la BIOS, que originalmente reside en una ROM más lenta, pueda ejecutarse desde la RAM, que es mucho más rápida, mejorando así el rendimiento del sistema durante el arranque y las operaciones de bajo nivel.

24. Indique en qué parte de la memoria extendida se encuentra la memoria alta.

Respuesta: La Memoria Alta (High Memory Area - HMA) se encuentra en los primeros 64 KB (menos 16 bytes) de la memoria extendida. Es un área especial accesible en modo real por los procesadores 80286 y posteriores, gracias a la línea de dirección A20. Permite cargar parte del sistema operativo (como DOS) por encima del límite de 1 MB, liberando memoria convencional.

25. Indique en qué parte de la memoria expandida se encuentra la memoria alta.

(No se proporcionó respuesta en el documento original)

26. Indique en qué parte de la memoria alta se encuentra la memoria expandida.

(No se proporcionó respuesta en el documento original)

27. Indique en qué parte de la memoria alta se encuentra la memoria extendida.

Respuesta: La respuesta "1024 y 1088kb" se refiere al rango de direcciones de la Memoria Alta (HMA), que va desde 1024 KB (1 MB) hasta 1024 KB + 64 KB (1088 KB). La HMA es, por definición, una parte de la memoria extendida, específicamente los primeros 64 KB de esta. Por lo tanto, la memoria extendida comienza en 1024 KB, y la HMA es la porción inicial de ella.

28. Diagrame una jerarquía de memoria ordenada por velocidad.

(No se proporcionó respuesta en el documento original, ya que requiere un diagrama visual. Sin embargo, la jerarquía de memoria por velocidad es la siguiente, de más rápida a más lenta y de menor a mayor capacidad/costo):

  1. Registros de la CPU
  2. Caché L1
  3. Caché L2
  4. Caché L3
  5. Memoria Principal (RAM)
  6. Almacenamiento Secundario (SSD/HDD)
  7. Almacenamiento Terciario (Cintas, etc.)

Características Avanzadas de Procesadores

29. Indique el primer procesador que permite protección de memoria.

Respuesta: El Intel 80386 (1985) fue el primer procesador x86 en introducir la protección de memoria. Esto permitió que el sistema operativo aislara los procesos entre sí, evitando que un programa defectuoso corrompiera la memoria de otro o del propio sistema operativo, lo que es fundamental para la estabilidad y seguridad de los sistemas operativos modernos.

30. Indique el primer procesador que permite paginación.

Respuesta: El Intel 80386DX (1985) fue el primer procesador x86 en incorporar la paginación de memoria. Esta característica permite al sistema operativo mapear direcciones de memoria virtual a direcciones físicas no contiguas, facilitando la implementación de memoria virtual y la gestión eficiente de la memoria para múltiples procesos.

31. Critique un procesador que impida la modificación del contador de programa por parte del software en ejecución.

(No se proporcionó respuesta en el documento original)

32. Critique un procesador que no disponga de registros de control.

(No se proporcionó respuesta en el documento original)

33. Indique el tamaño que debe tener el registro MDR.

Respuesta: El tamaño del registro MDR (Memory Data Register) depende de la arquitectura del bus de datos del procesador. Para un procesador con un bus de datos de 16 bits, el MDR típicamente tendría un tamaño de 16 bits, ya que su función es almacenar los datos que se leen o escriben desde/hacia la memoria.

34. Critique un procesador que no disponga de registros generales.

(No se proporcionó respuesta en el documento original)

35. Compare el funcionamiento de un simuproc de 16 bits con buses de 16 bits (cómo el del programa) con un simuproc de 16 bits con bus de datos de 8 bits (inventado).

(No se proporcionó respuesta en el documento original)

Entradas relacionadas: