LA MEMORIA DE UN ORDENADOR (I)

Un ordenador debe capaz de almacenar información, por ejemplo vuestro nombre.

La memoria de un ordenador es un conjunto de dispositivos electrónicos de forma que cada uno puede adoptar dos posiciones : encendido/apagado, pasa/no pasa corriente, etc. que podemos representar mediante los números 0 y 1 (sistema binario).

Así si la memoria de un ordenador tuviera uno solo de estos dispositivos (que vamos a llamar BIT), podríamos guardar en ella o un CERO o un UNO. (Una bombilla serviría como ordenador de 1 BIT si está encendida hay guardado y si no un 0). Iba a servirnos de poco.

Si agrupamos dos bits y formamos un BYTE , nos encontramos con que pueden estar : ambos apagados, el primero apagado y el segundo encendido, al revés o ambos encendidos, luego podríamos guardar 00 , 01 , 10 , 11 (o sea cuatro números distintos que podemos asociar al 0, 1 ,2 ,3).



Un cero binario vale cero esté en la posición que esté, pero un uno binario vale 1 si está en la primera posición de la derecha y vale 2 si está en la segunda.

valor

2

1

0+0 = 0

0

0

0+1=1

0

1

0+2=2

1

0

1+2=3

1

1



Vamos a construir una memoria que sea capaz de almacenar 10 BITS agrupados en en cinco BYTES de dos bits. Como cada BYTE puede contener un 0,1,2,3, ya podemos guardar por ejemplo : 0 3 1 3 2.

Bytes

bit1

bit2

Número

guardado

BYTE 1

0

0

0

BYTE 2

1

1

3

BYTE 3

0

1

1

BYTE 4

1

1

3

BYTE 5

1

0

2



Si añadimos bytes de dos bits podremos guardar tiras de números más largas : 0 3 3 2 1 0 0 1 3 2 1 ... ,pero no podemos guardar ni siquiera una cifra como el 6, el 7 o el 4.

¿Y si usamos BYTES más grandes? Por ejemplo de TRES BITS cada uno. Ahora las secuencias (ENCENDIDO/APAGADO) posibles serán: 000 – 001 – 010 – 011 – 100 – 101 – 110 – 111 , o sea en cada byte puedo guardar un número del cero al siete (ocho posibilidades). Las posiciones binarias ahora "valen" 4, 2, 1.

Si usamos una memoria de 7 bytes de 3 bits cada uno podremos almacenar por ejemplo: 1 3 7 2 4 0 7

byte

Bit1

4

Bit2

2

Bit3

1

NÚM. GUARDADO





Aunque añada más bytes solamente podré guardar en cada uno un número del cero al siete. Sigue siendo poco. Necesitamos memorias con bytes más grandes.


BYTE 1

0

0

1

1

BYTE 2

0

1

1

3

BYTE 3

1

1

1

7

BYTE 4

0

1

0

2

BYTE 5

1

0

0

4

BYTE 6

0

0

0

0

BYTE 7

1

1

1

7



Como los bytes solamente pueden almacenar números, si quiero que un byte pueda guardar una letra necesitaré previamente hacer una tabla donde a cada letra le corresponda un número, o sea una codificación.

Así por encima... (redondeamos) 10 cifras, 30 letras minúsculas, otras tantas mayúsculas, signos de puntuación, letras acentuadas, ... necesitamos codificar alrededor de DOSCIENTOS caracteres (letras, números, signos, otros) diferentes. ¿De qué tamaño hay que hacer cada byte?

¿De tres BITS? 000, 001, 010, 011, 100, 101, 110, 111. (ya hemos visto que sólo hay ocho opciones diferentes)

¿Cuatro bits? Los ocho de antes con un cero delante y los ocho de antes con un uno delante : Total 16 posibilidades.

¿Cinco? Total 32 , ¿Seis? .... 64 , ¿Siete?.... 128 , ¿Ocho?... 256 ¡ Ya sobran para los más de doscientos que necesitaba!

¡Voy a construir ordenadores con BYTES de ocho BITS ! : BYTE = OCTETO DE BITS

Lo primero que necesitamos es una tabla de codificación que asigne a cada número desde el 0 al 255 el carácter que le corresponde (tabla de códigos ASCII). Por ejemplo la M es 77, la A 65, la m (minúscula) es 109 ...

Tabla de algunos códigos ASCII




ACTIVIDAD : GUARDEMOS MARIA EN LA MEMORIA DE UN ORDENADOR

MARIA es : 77 65 82 73 65 . ¿Cómo se pasa a binario ? Ahora las posiciones de los ceros y unos "valen" (potencias de 2).

valor

128

64

32

16

8

4

2

1

0,1

0

1

1

1

0

0

0

1



64 + 32 + 16 +1 = 113 que en nuestra codificación sería la letra q.

Vamos con MARIA


ASCII

128

64

32

16

8

4

2

1




MARIA en dos colores

M

77

0

1

0

0

1

1

0

1

A

65

0

1

0

0

0

0

0

1

R

82

0

1

0

1

0

0

1

0

I

73

0

1

0

0

1

0

0

1

A

65

0

1

0

0

0

0

0

1



Hemos necesitado 40 BITS (5 BYTES uno por cada letra)

Si añadimos filas (bytes) y filas y filas ... hasta 1024 tenemos una memoria de un kilobyte (vulgarmente 1 k). (El primer ordenador doméstico que se comercializa en España allá por el año 1980 tenía 1k ampliable a 16).

1024 k hacen 1 Mega (Las memorias ahora andan por 512 Megas o 1024)

1024 Mega hacen 1 Giga (Los discos duros corrientes hoy pueden almacenar unos 80 Gigas y más)

1024 Gigas hacen 1 Tera ...

En un CDROM de 700 megas puedo guardar 700x1024x1024 bytes = 734.003.200 bytes (caracteres). Si un folio puede tener unas 70 líneas de 80 caracteres cada una son 5.600 caracteres cada folio, luego caben unos ¡130.000 folios!.

Claro que no sólo queremos guardar caracteres.... (colores, gráficos, sonidos, películas, ...).

ACTIVIDAD : ESCRIBE TU NOMBRE EN MINÚSCULAS EN BINARIO Y LUEGO COLOREA A DOS COLORES

¿los pegamos en la pared?