Saltar al contenido principal

Arquitectura hardware

La arquitectura hardware se refiere al conjunto de componentes físicos de un sistema informático y a la forma en la que estos componentes están interconectados y organizados.

Incluye tanto los elementos electrónicos internos, como la CPU, la memoria RAM, las tarjetas gráficas y de sonido, como los periféricos externos, como el teclado, el ratón, la impresora y los dispositivos de almacenamiento.

La arquitectura hardware también abarca el diseño de los buses de comunicación que permiten la transferencia de datos entre los diferentes componentes del sistema.

Un bus de comunicación en informática es como una "carretera" por la que viajan los datos dentro de un ordenador. Sirve para que los distintos componentes (como el procesador, la memoria y los dispositivos) puedan enviarse información entre sí.

El programador tiene que usar y orquestar cada uno de estos recursos para resolver el problema que tiene y analizar los datos de los que disponga para encontrar la solución. El programador estará casi siempre "hablando" con la CPU diciéndole qué es lo siguiente que tiene que hacer. Unas veces tendrá que pedirle a la CPU que use la memoria principal, otras la secundaria, los dispositivos de entrada/salida...

Para decirle a la CPU qué es lo que tiene que hacer, escribiremos estas instrucciones por adelantado. Estas instrucciones reciben el nombre de programa y el acto de encontrar las instrucciones adecuadas y escribirlas, programar.

CPU

La Unidad Central de Procesamiento (conocida por las siglas CPU, del inglés Central Processing Unit) es el componente del ordenador diseñado para estar obsesionado con "¿qué hago ahora?".

Si tu equipo está dentro de la clasificación de 3 GHz significa que la CPU preguntará "¿qué hago ahora?" 3000 millones de veces por segundo. Es decir, es el componente encargado de realizar las operaciones.

Por lo tanto, podemos decir que la CPU es responsable de ejecutar las instrucciones de los programas de software. La instrucción que ejecuta una CPU se denomina código máquina.

En las CPUs actuales podemos encontrar varias unidades de procesamiento que son denominadas núcleos. Esto permite ejecutar múltiples procesos o hilos (threads) de manera simultánea. La creación de programas que utilizan threads se denomina programación concurrente.

Memoria principal

La memoria principal se usa para almacenar la información que la CPU necesita de manera inmediata.

Entre esta información se guardan las instrucciones del programa y los datos que usa este programa. Esta es casi tan rápida como la CPU.

La información de esta memoria desaparece cuando se apaga el equipo, es decir, es volátil.

Memoria RAM

Generalmente a esta memoria también se la denomina memoria RAM. En realidad, la memoria RAM es la tecnología que se utiliza para implementar la memoria principal. Debido a la cantidad de tiempo que se lleva utilizando dicha tecnología, acabó por denominarse también memoria RAM.

Cuando se ejecuta un programa, el sistema operativo carga el código del programa y los datos necesarios en memoria principal. Durante la ejecución de un programa, en esta memoria se almacenan los datos que son manipulados por el programa.

Gestión de memoria

Los sistemas operativos modernos utilizan una técnica de gestión de memoria denominada memoria virtual. Esta técnica consiste en proporcionarle a cada programa la ilusión de tener su propia memoria exclusiva, independiente de la memoria física. Por lo tanto, cada programa cuenta con su propio espacio de direcciones de memoria virtuales. Esto significa que cada programa piensa que tiene un rango completo de acceso a todas las direcciones de memoria, por ejemplo de 0x00000000 a 0xFFFFFFFF en un sistema de 32 bits.

Cada dirección de memoria se identifica con un número hexadecimal. El sistema operativo es el encargado de transformar estas direcciones virtuales en direcciones de memoria físicas.

Este mecanismo permite aislar los diferentes procesos, evitando que un programa pueda acceder a datos de otro.

Cada dirección de memoria corresponde a una localización específica donde se almacena un dato o instrucción. La CPU utiliza estas direcciones para localizar y acceder a los datos e instrucciones necesarias.

Dirección de memoriaDato almacenado
0x00000000Instrucción 1
0x00000001Instrucción 2
0x00000002Instrucción 3
0x00000003Instrucción 4
...
0x0000A000Dato del programa 1
0x0000A001Dato del programa 2
0x0000A002Dato del programa 3
...
0xFFFFFFFF

Durante un ciclo de la CPU, esta busca una instrucción en memoria principal, descodifica la instrucción y ejecuta dicha instrucción. El resultado de dicha instrucción también se almacena en memoria principal.

Memoria secundaria

La memoria secundaria también se utiliza para almacenar información, pero es mucho más lenta que la memoria principal.

La ventaja de la memoria secundaria es que puede guardar información incluso cuando el equipo está apagado, por lo que no es volátil.

Cuando se ejecuta un programa, el sistema operativo carga el código del programa y los datos necesarios desde la memoria secundaria a la memoria principal para que la CPU pueda ejecutar el programa con más rapidez.

La CPU nunca interactúa directamente con la memoria secundaria, siempre se realiza antes una copia de los datos de memoria secundaria a memoria principal. Esto se debe a que la memoria secundaria es muy lenta y por lo tanto los programas serían más ineficientes.

Este tipo de memoria se utiliza para la persistencia de datos, es decir, para almacenar datos y programas durante largos períodos de tiempo.

Algunos ejemplos de memoria secundaria son los discos duros mecánicos (HDD), discos SSD, memorias USB, tarjetas SD, etc.

Dispositivos de entrada y salida

Los dispositivos de entrada y salida son los componentes de la arquitectura hardware de un sistema informático que permiten la comunicación entre el usuario y el computador.

Los dispositivos de entrada son aquellos que permiten a las personas introducir datos en un equipo. Los dispositivos de entrada que utilizaremos en esta materia son:

  • Teclado
  • Ratón

Los dispositivos de salida permiten proporcionarle información a una persona. Los dispositivos de salida que utilizaremos en esta materia son:

  • Monitor

Los dispositivos de entrada/salida realizan ambas funciones. Los dispositivos de entrada/salida que utilizaremos en esta materia son:

  • Unidad de almacenamiento

En un programa informático es común recibir datos desde un dispositivo de entrada. Por ejemplo, en un procesador de texto se recibe la entrada de texto a través del teclado.

Los programas procesan los datos recibidos por estos dispositivos de entrada, para más tarde mostrar estos datos procesados por dispositivos de salida. Por ejemplo, un procesador de textos imprime un documento en una impresora.