Escribe para buscar…

Architecture

Todo ordenador es una CPU, una memoria y unos buses — y el programa que ejecuta vive en la misma memoria que los datos.

Se enseña en
Fundamentos de hardwareArquitectura de sistemasASIR

Introducción

Abre un portátil, un servidor de rack y el móvil que llevas en el bolsillo.

Por fuera no se parecen en nada.

Por dentro los tres hacen lo mismo: cogen una instrucción de la memoria, la ejecutan, y van a buscar la siguiente.

Esta idea tiene más de setenta años y no ha cambiado.

En 1945 John von Neumann escribió un informe sobre cómo debía construirse el EDVAC, y dejó en él una frase que lo decide casi todo: las instrucciones y los datos se guardan en la misma memoria.

Parece un detalle de ingeniería.

Es el motivo por el que un ordenador puede hacer cosas diferentes sin que nadie vuelva a soldarlo.

La máquina de von Neumann

Un ordenador tiene tres bloques y un camino que los une.

CPU Unidad de control ALU Registros Memoria principal instrucciones y datos Sistema de E/S teclado, disco, red, pantalla direcciones datos control bus de sistema

La CPU ejecuta instrucciones.

La memoria principal guarda las instrucciones que ejecutará y los datos con los que trabaja.

El sistema de entrada y salida conecta la máquina con todo lo que hay fuera: el teclado, el disco, la red, la pantalla.

Y el bus de sistema es el camino compartido por el que viajan las direcciones, los datos y las órdenes.

La memoria

La memoria principal es una lista de cajones numerados.

Cada cajón tiene una dirección — su número — y un contenido — los bits que hay guardados.

Para leer un cajón, la CPU hace dos cosas: pone la dirección en el bus de direcciones y pide una lectura por el bus de control.

La memoria responde poniendo el contenido en el bus de datos.

Para escribir, la CPU pone la dirección y el contenido, y pide una escritura.

Dentro de la CPU hay dos registros dedicados exactamente a esto: el MAR (Memory Address Register), que está conectado al bus de direcciones, y el MDR (Memory Data Register), conectado al bus de datos.

Cada uno está donde está porque cada uno lleva una cosa diferente: uno lleva dónde, el otro lleva qué.

Y la memoria necesita saber qué le pides. Una sola línea de control basta para distinguir lectura de escritura, porque solo hay dos opciones: un bit tiene dos valores y las operaciones son dos.

Quien activa esa línea es la unidad de control de la CPU.

Cuántas direcciones caben

Una memoria tiene 1024 palabras.

¿De cuántos bits debe ser el bus de direcciones?

¿Y qué capacidad total tiene la memoria si cada palabra es de 8 bits?

Muestra la solución

Con n líneas de dirección puedes formar 2ⁿ números diferentes.

Como 2¹⁰ = 1024, el bus de direcciones debe ser de 10 bits.

La capacidad es 1024 × 8 bits = 8192 bits = 1024 bytes, es decir 1 KiB.

Fíjate en la relación, porque la usarás mucho: la anchura del bus de direcciones limita cuánta memoria puedes poner en la máquina, y no hay manera de esquivarlo añadiendo módulos.

Los buses

Un bus es un haz de cables que comparten varios componentes.

Se clasifican de dos maneras, y las dos caen en el examen.

Según qué circula por él

  • El bus de direcciones lleva dónde. Es unidireccional: solo la CPU escribe en él.
  • El bus de datos lleva qué. Es bidireccional, porque los datos van y vienen.
  • El bus de control lleva qué hay que hacer y cuándo: lectura, escritura, reloj, interrupciones, peticiones del bus.

La anchura de cada uno decide cosas diferentes.

La anchura del bus de direcciones decide cuánta memoria puedes direccionar.

La anchura del bus de datos decide cuántos bits mueves de golpe.

Según qué conecta

  • El bus interno o bus de sistema une la CPU, la memoria y el chipset. Es corto, ancho y muy rápido, porque es el camino crítico de la máquina.
  • El bus externo o bus de expansión une el sistema con los periféricos: PCI Express, USB, SATA. Es más lento, más largo y pensado para que se enchufe y desenchufe material.

La frontera entre ambos es un puente: un circuito que adapta velocidades, anchuras y protocolos. En Motherboard lo verás con su nombre comercial.

Serie y paralelo

Un bus paralelo lleva todos los bits de una palabra a la vez, uno por cable.

Un bus serie los lleva uno detrás de otro por un solo par de cables.

Parece que el paralelo deba ganar siempre, y durante años ganó.

Pero cuanto más sube la frecuencia, más difícil es que los bits de un bus paralelo lleguen exactamente a la vez: los cables no tienen todos la misma longitud, la señal de uno perturba la del vecino — se llama diafonía — y hace falta una señal de reloj que sincronice todos los hilos.

Un bus serie no tiene ninguno de estos problemas, y por eso puede subir mucho más de frecuencia con el mismo coste.

Estás leyendo una vista previa.

Inicia sesión con Google para leer la página completa.

Inicia sesión con Google

Con cualquier cuenta de Google. Solo te pediremos que aceptes las condiciones del servicio.