Está en la página 1de 13

Números binarios

Los números binarios son un sistema de numeración que utiliza únicamente dos dígitos: 0 y 1. A diferencia del
sistema decimal que utilizamos en el día a día, que cuenta con diez dígitos (del 0 al 9), el sistema binario utiliza
únicamente dos dígitos, lo que lo hace muy útil en el ámbito de la informática y la electrónica.

En el sistema binario, cada dígito representa una potencia de 2, empezando desde la derecha y avanzando hacia
la izquierda. Por ejemplo, el número binario 1011 se leería como "uno-cero-uno-uno" y representa:

1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11

Como puedes ver, cada posición en el número binario representa una potencia de 2: la posición más a la
derecha representa 2^0 (que es 1), la siguiente posición representa 2^1 (que es 2), la siguiente representa 2^2
(que es 4), y así sucesivamente.

En informática, los números binarios se utilizan para representar la información en forma de bits (0 o 1). Los
bytes, que son grupos de 8 bits, se utilizan para almacenar caracteres, números y otros datos en las
computadoras. Por ejemplo, la letra "A" se representa en binario como 01000001 (que se puede leer como "cero
uno cero cero cero cero cero uno").

Números hexadecimales
Los números hexadecimales son un sistema de numeración que utiliza 16 dígitos distintos, que van del 0 al 9 y
de la A a la F. Este sistema es muy utilizado en el ámbito de la informática para representar números binarios de
una manera más compacta y fácil de leer.

En el sistema hexadecimal, cada dígito representa una potencia de 16, empezando desde la derecha y
avanzando hacia la izquierda. Por ejemplo, el número hexadecimal 3F se leería como "tres-ef" y representa:
3 * 16^1 + F * 16^0 = 48 + 15 = 63

Como puedes ver, cada posición en el número hexadecimal representa una potencia de 16: la posición más a la
derecha representa 16^0 (que es 1), la siguiente posición representa 16^1 (que es 16), la siguiente representa
16^2 (que es 256), y así sucesivamente.

En la informática, los números hexadecimales se utilizan para representar números binarios de una manera más
compacta y fácil de leer. Cada dígito hexadecimal representa cuatro bits (mediante la combinación de 0 y 1), por
lo que dos dígitos hexadecimales juntos representan un byte completo (ocho bits). Por ejemplo, el número
hexadecimal 2B se puede representar en binario como 0010 1011, que son dos bytes.

Convertir entre binario y decimal


La conversión entre números binarios y decimales es relativamente sencilla. Para convertir un número binario a
decimal, lo que debes hacer es multiplicar cada dígito binario por la potencia de 2 correspondiente a su posición,
y sumar los resultados. Por ejemplo, si tenemos el número binario 1011, su conversión a decimal sería:
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11
Así, el número binario 1011 es igual al número decimal 11.

Para convertir un número decimal a binario, se realiza el proceso inverso. Dividimos el número decimal entre 2 y
obtenemos su cociente y resto. El resto será el primer dígito binario, y luego repetimos el proceso con el
cociente, hasta que el cociente sea cero. Por ejemplo, si queremos convertir el número decimal 25 a binario:
25 / 2 = 12 con resto 1 (el primer dígito es 1)
12 / 2 = 6 con resto 0 (el segundo dígito es 0)
6 / 2 = 3 con resto 0 (el tercer dígito es 0)
3 / 2 = 1 con resto 1 (el cuarto dígito es 1)
1 / 2 = 0 con resto 1 (el quinto dígito es 1)

Por lo tanto, el número decimal 25 en binario es 11001.


Es importante tener en cuenta que para realizar esta conversión, el número binario debe estar escrito en notación
posicional, es decir, con una posición asignada a cada dígito que representa una potencia de 2 distinta.

Convertir entre hexadecimal y decimal


La conversión entre números hexadecimales y decimales es muy similar a la conversión entre binario y decimal.
En el sistema hexadecimal, cada dígito representa una potencia de 16, empezando desde la derecha y
avanzando hacia la izquierda.

Para convertir un número hexadecimal a decimal, lo que debes hacer es multiplicar cada dígito hexadecimal por
la potencia de 16 correspondiente a su posición, y sumar los resultados. Por ejemplo, si tenemos el número
hexadecimal 3F, su conversión a decimal sería:
3 * 16^1 + F * 16^0 = 48 + 15 = 63
Así, el número hexadecimal 3F es igual al número decimal 63.

Para convertir un número decimal a hexadecimal, se realiza el proceso inverso. Dividimos el número decimal
entre 16 y obtenemos su cociente y resto. Si el resto es menor que 10, se utiliza el dígito correspondiente. Si es
mayor o igual a 10, se utiliza la letra correspondiente (A para 10, B para 11, y así sucesivamente). Luego,
repetimos el proceso con el cociente, hasta que el cociente sea cero. Por ejemplo, si queremos convertir el
número decimal 255 a hexadecimal:
255 / 16 = 15 con resto 15 (el último dígito es F)
15 / 16 = 0 con resto 15 (el primer dígito es F)
Por lo tanto, el número decimal 255 en hexadecimal es FF.

Es importante tener en cuenta que para realizar esta conversión, el número hexadecimal debe estar escrito en
notación posicional, es decir, con una posición asignada a cada dígito que representa una potencia de 16
distinta.

Convertir entre binario y hexadecimal


La conversión entre números binarios y hexadecimales es bastante sencilla. Como recordarás, un dígito
hexadecimal representa cuatro bits (mediante la combinación de 0 y 1). Por lo tanto, para convertir un número
binario a hexadecimal, lo que debemos hacer es agrupar los bits de 4 en 4, empezando desde la derecha, y
reemplazar cada grupo por el dígito hexadecimal correspondiente.

Por ejemplo, si tenemos el número binario 1101010111, lo que debemos hacer es agrupar los bits de 4 en 4,
empezando desde la derecha:
1101 0101 11

Luego, reemplazamos cada grupo por el dígito hexadecimal correspondiente:


D53
Por lo tanto, el número binario 1101010111 en hexadecimal es D53.

Para convertir un número hexadecimal a binario, se realiza el proceso inverso. Debemos reemplazar cada dígito
hexadecimal por sus cuatro bits correspondientes. Por ejemplo, si tenemos el número hexadecimal C2, lo que
debemos hacer es reemplazar cada dígito por sus cuatro bits correspondientes:
C2
1100 0010

Por lo tanto, el número hexadecimal C2 en binario es 11000010.

Es importante tener en cuenta que si el número binario no es múltiplo de 4, es necesario agregar ceros a la
izquierda para completar el último grupo de 4 bits. De igual forma, si el número hexadecimal tiene dígitos menos
significativos que faltan para completar un grupo de cuatro bits, se debe agregar ceros a la izquierda para
completar el último grupo.
Decimal Binario (Byte) Hexadecimal
--------- -------------------------- -------------
0 0 00000000 0
1 1 00000001 1
2 10 00000010 2
3 11 00000011 3
4 100 00000100 4
5 101 00000101 5
6 110 00000110 6
7 111 00000111 7
8 1000 00001000 8
9 1001 00001001 9
10 1010 00001010 A
11 1011 00001011 B
12 1100 00001100 C
13 1101 00001101 D
14 1110 00001110 E
15 1111 00001111 F

Números BCD
Los números BCD (del inglés Binary Coded Decimal) son una forma de representar números decimales
utilizando solamente los dígitos binarios 0 y 1.

En el sistema BCD, cada dígito decimal (0 a 9) es representado por su equivalente binario de 4 bits. Por ejemplo,
el número decimal 7 se representa en BCD como 0111 (equivalente binario de 4 bits del 7) y el número decimal 9
se representa como 1001 (equivalente binario de 4 bits del 9).

Debido a que cada dígito decimal se representa con 4 bits en el sistema BCD, un número de 2 dígitos en BCD
requerirá 8 bits para su representación. Por ejemplo, el número decimal 23 se representa en BCD cómo 0010
0011 (equivalentes binarios de 4 bits del 2 y el 3, respectivamente).

Aunque el sistema BCD puede ser útil para ciertas aplicaciones, como en dispositivos de visualización de
números, su uso es limitado en la actualidad debido a que ocupa más espacio de almacenamiento que otros
sistemas de codificación de números, como el sistema binario puro.

Aritmética binaria
La aritmética binaria es un conjunto de operaciones matemáticas que se realizan utilizando números
binarios (que solo contienen los dígitos 0 y 1) en lugar de números decimales convencionales (que
contienen los dígitos del 0 al 9). Las operaciones básicas en la aritmética binaria son la suma, la resta,
la multiplicación y la división.

La suma binaria es similar a la suma decimal, pero solo se permiten los dígitos binarios 0 y 1. La regla
básica es que 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, y 1 + 1 = 10 (es decir, 0 lleva a la siguiente posición y 1
se mantiene en la posición actual). Por ejemplo, la suma binaria de 101 (en decimal 5) y 110 (en
decimal 6) es 1011 (en decimal 11).

La resta binaria también es similar a la resta decimal, pero solo se permiten los dígitos binarios 0 y 1.
La regla básica es que 0 - 0 = 0, 0 - 1 = 1 con un préstamo de la siguiente posición, 1 - 0 = 1 y 1 - 1 =
0. Por ejemplo, la resta binaria de 110 (en decimal 6) y 101 (en decimal 5) es 001 (en decimal 1).

La multiplicación binaria es similar a la multiplicación decimal, pero solo se permiten los dígitos binarios
0 y 1. La regla básica es que 0 x 0 = 0, 0 x 1 = 0, 1 x 0 = 0, y 1 x 1 = 1. Por ejemplo, la multiplicación
binaria de 101 (en decimal 5) y 110 (en decimal 6) es 11110 (en decimal 30).
La división binaria también es similar a la división decimal, pero solo se permiten los dígitos binarios 0
y 1. La regla básica es que se debe buscar el divisor más grande que se pueda restar del dividendo sin
obtener un número negativo, y luego se continúa con el resto. Por ejemplo, la división binaria de 1011
(en decimal 11) entre 10 (en decimal 2) es 101 con un resto de 1 (en decimal 1).

La aritmética binaria se utiliza ampliamente en la electrónica digital, en particular en los circuitos


lógicos digitales y en la programación de computadoras.

Ejemplos
Algunos ejemplos de operaciones aritméticas binarias:

Suma binaria:
1101 (en decimal 13) + 1010 (en decimal 10) = 10111 (en decimal 23)

Resta binaria:
10110 (en decimal 22) - 1101 (en decimal 13) = 10001 (en decimal 17)

Multiplicación binaria:
101 (en decimal 5) x 110 (en decimal 6) = 11110 (en decimal 30)

División binaria:
101101 (en decimal 45) / 101 (en decimal 5) = 10110 con un resto de 1 (en decimal 9)

La notación complemento a dos


La notación de complemento a dos es una forma de representar números enteros en binario, que permite realizar
operaciones aritméticas y lógicas de manera eficiente. Para entenderla, es necesario tener en cuenta que en la
representación binaria, los números se expresan en términos de potencias de dos, comenzando por la posición
más a la derecha.

Por ejemplo, el número binario "1011" se puede interpretar como 1x2³ + 0x2² + 1x2¹ + 1x2 ⁰ = 8 + 0 + 2 + 1 = 11
en decimal.

La notación de complemento a dos se utiliza para representar tanto números positivos como negativos en
binario, de tal forma que la operación de suma y resta pueda ser realizada de manera similar a como se hace con
números en decimal.

Para obtener el complemento a dos de un número en binario, se deben seguir los siguientes pasos:

1. Invertir todos los bits del número original (cambiar 0 por 1 y 1 por 0)
2. Sumarle 1 al resultado obtenido en el paso anterior

Veamos un ejemplo para ilustrar el proceso. Si queremos obtener el complemento a dos de "1011" (que
representa el número 11 en decimal), debemos seguir los siguientes pasos:

Invertir todos los bits: "0100"


Sumarle 1: "0101"

Entonces, el complemento a dos de "1011" es "0101".

Para entender por qué esto funciona, podemos pensar en la notación de complemento a dos como una forma de
representar los números negativos en binario. En esta notación, el bit más a la izquierda (el "bit de signo") indica
si el número es positivo o negativo. Si este bit es 0, el número es positivo, y si es 1, el número es negativo.

Por ejemplo, en la notación de complemento a dos de 4 bits, el número más grande que se puede representar es
"0111" (que representa el número 7 en decimal). Si intentamos sumarle 1 a este número, obtenemos "1000",
pero este número no puede ser representado en 4 bits, ya que el bit más a la izquierda indica que es negativo.
Por lo tanto, si interpretamos "1000" como un número en la notación de complemento a dos, representa el
número -8 en decimal.

De esta forma, la notación de complemento a dos permite representar tanto números positivos como negativos
en binario, y realizar operaciones aritméticas y lógicas de manera eficiente.

Aritmética en complemento a dos


La aritmética en complemento a dos es una forma eficiente de realizar operaciones aritméticas y lógicas con
números enteros en binario. En esta notación, los números negativos se representan mediante el complemento a
dos del valor absoluto del número.

Para sumar dos números en complemento a dos, se realiza la suma binaria de los dos números, ignorando
cualquier acarreo que se genere al sumar el bit más significativo (el bit de signo). Si el resultado de la suma tiene
un acarreo en el bit de signo, entonces se interpreta como un número negativo en complemento a dos.

Veamos un ejemplo para ilustrar el proceso. Queremos sumar los números -3 y 5, representados en
complemento a dos por "11111101" y "00000101", respectivamente.

Sumamos los dos números en binario, ignorando el acarreo del bit de signo:

11111101
+ 00000101
----------
00000010

El resultado de la suma es "00000010". Como no hay acarreo en el bit de signo, el resultado se interpreta como
el número 2 en complemento a dos.

Por lo tanto, la suma de -3 y 5 en complemento a dos es igual a 2.

Para restar dos números en complemento a dos, se utiliza el mismo proceso que para sumar, pero en este caso
se realiza la resta binaria. Es decir, se toma el complemento a dos del segundo número (el sustraendo), y se
suma al primer número (el minuendo) en binario. Si el resultado tiene un acarreo en el bit de signo, entonces se
interpreta como un número negativo en complemento a dos.

Veamos un ejemplo para ilustrar el proceso. Queremos restar 5 de -3, representados en complemento a dos por
"11111101" y "00000101", respectivamente.

Tomamos el complemento a dos de 5:

00000101 (sustraendo)
11111010 (complemento a dos del sustraendo)

Sumamos los dos números en binario, ignorando el acarreo del bit de signo:

11111101 (minuendo)
+ 11111010 (complemento a dos del sustraendo)
----------
11110111

El resultado de la suma es "11110111". Como hay acarreo en el bit de signo, el resultado se interpreta como el
número -9 en complemento a dos.

Por lo tanto, la resta de -3 menos 5 en complemento a dos es igual a -9.

En general, para realizar operaciones aritméticas y lógicas en complemento a dos, es importante tener en cuenta
el rango de los números que se pueden representar y cómo interpretar los resultados en función del acarreo en el
bit de signo.
Cálculo Lógico binario (Álgebra de Bool)
La lógica booleana es una forma de matemáticas que se utiliza para manipular valores binarios, donde los
valores son verdadero (1) o falso (0). La lógica booleana se utiliza en la informática para realizar operaciones
lógicas en los datos.

Los operadores lógicos más comunes son AND, OR y NOT. En la lógica booleana, el AND se representa por un
punto (.), el OR por una barra vertical (|), y el NOT por un signo de exclamación (!).

Operador AND (Y lógico):


A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1
El operador AND devuelve 1 solo cuando ambos valores de entrada son 1.

Operador OR (O lógico):
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1
El operador OR devuelve 1 si al menos uno de los valores de entrada es 1.

Operador NOT (NO lógico):


A NOT A
0 1
1 0
El operador NOT invierte el valor de entrada. Si el valor de entrada es 0, devuelve 1 y si el valor de entrada es 1,
devuelve 0.

Operador XOR (O exclusivo):


A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0
El operador XOR devuelve 1 solo si uno de los valores de entrada es 1 y el otro es 0.

Operador NAND (No-Y lógico):


A B A NAND B
0 0 1
0 1 1
1 0 1
1 1 0
El operador NAND es lo opuesto al operador AND. Devuelve 0 solo cuando ambos valores de entrada son 1.
Operador NOR (No-O lógico):
A B A NOR B
0 0 1
0 1 0
1 0 0
1 1 0
El operador NOR es lo opuesto al operador OR. Devuelve 0 si al menos uno de los valores de entrada es 1.

Estas tablas de verdad son esenciales en la lógica booleana y son utilizadas para realizar operaciones lógicas en
la informática.

Flip-Flop / Cerrojo
Un Flip-Flop es un circuito secuencial que tiene la capacidad de almacenar un bit de información. Este
tipo de circuitos se utiliza en la construcción de memorias, contadores y otros dispositivos digitales que
requieren la retención de información en el tiempo. Existen varios tipos de Flip-Flops, como el tipo D, el
tipo JK, el tipo T, entre otros. En esta explicación me centraré en el Flip-Flop tipo D, que es uno de los
más utilizados.

Flip-Flop tipo D
El Flip-Flop tipo D consta de una entrada de datos (D), una entrada de reloj (CLK) y dos salidas (Q y
Q'). Cuando el pulso del reloj es 1, la salida Q del Flip-Flop cambia al valor de la entrada de datos D en
ese momento. Por otro lado, la salida Q' será el complemento de la salida Q, es decir, si Q es 1,
entonces Q' será 0, y viceversa.

Cuando el pulso del reloj es 0, la salida Q del Flip-Flop no cambia, sino que mantiene su valor actual.
Por lo tanto, el Flip-Flop tipo D se comporta como un "almacenador" de datos, ya que retiene el último
valor de la entrada de datos hasta que se recibe un nuevo pulso del reloj. La tabla de verdad
proporcionada a continuación muestra el comportamiento del Flip-Flop tipo D en función de las
entradas D y CLK, y las salidas Q y Q'. Como se puede observar en la tabla, cuando el pulso del reloj
es 0, la salida Q no cambia, y cuando el pulso del reloj es 1, la salida Q cambia al valor de la entrada
de datos D.

En resumen, un Flip-Flop o cerrojo es un circuito secuencial que puede almacenar un bit de


información. El Flip-Flop tipo D es uno de los más utilizados y consta de una entrada de datos, una
entrada de reloj y dos salidas. Cuando el pulso del reloj es 1, la salida Q del Flip-Flop cambia al valor
de la entrada de datos D en ese momento, y cuando el pulso del reloj es 0, la salida Q no cambia y
retiene su valor actual.

Tabla de verdad para un Flip-Flop tipo D:


D CLK Q(t) Q(t+1)
0 0 Q Q
0 1 Q 0
1 0 Q Q
1 1 Q 1

Explicación de la tabla:
D: entrada de datos.
CLK: pulso del reloj.
Q(t): estado de salida del Flip-Flop en el tiempo t.
Q(t+1): estado de salida del Flip-Flop en el tiempo t+1.

En resumen, cuando el pulso del reloj (CLK) es 0, la salida Q(t+1) es igual al estado actual de la salida (Q(t)).
Cuando el pulso del reloj es 1, la salida Q(t+1) cambia al valor de la entrada de datos (D) en ese momento.

Flip-Flop JK
El Flip-Flop JK es un tipo de circuito secuencial que se utiliza comúnmente en la electrónica digital. El Flip-Flop
JK es una extensión del Flip-Flop SR (Set-Reset), que permite la implementación de ciertos modos de operación
que no se pueden lograr con el Flip-Flop SR.

El nombre "JK" se deriva de las letras J y K, que son las entradas de control del Flip-Flop. Estas entradas se
utilizan para definir el modo de operación del Flip-Flop. El Flip-Flop JK tiene dos entradas principales, J y K, y dos
salidas principales, Q y Q'.

● J: entrada de habilitación de set. Si se aplica un pulso de entrada a J, la salida Q del Flip-Flop se


establece en 1 (set).
● K: entrada de habilitación de reset. Si se aplica un pulso de entrada a K, la salida Q del Flip-Flop se
restablece en 0 (reset).
● CLK: entrada de reloj. El Flip-Flop JK utiliza la señal del reloj para sincronizar las entradas J y K con la
salida Q.
● Q: salida del Flip-Flop. Es la salida principal que indica el estado actual del Flip-Flop.
● Q': salida complementaria del Flip-Flop. Es la salida inversa de la salida Q.

La tabla de verdad para el Flip-Flop JK es la siguiente:


J K CLK Q(t) Q(t+1)
0 0 0 Q Q
0 0 1 Q Q
0 1 0 Q Q
0 1 1 Q 0
1 0 0 Q Q
1 0 1 0 Q
1 1 0 Q ~Q
1 1 1 ~Q Q

En esta tabla, "~" denota la negación lógica o el complemento. La entrada de reloj (CLK) solo tiene efecto cuando
su valor cambia de 0 a 1 (flanco de subida). En resumen, el Flip-Flop JK tiene cuatro modos de operación
principales: set, reset, toggle y mantener.

● Set: si J es 1 y K es 0, la salida Q se establecerá en 1 en el flanco de subida del reloj.


● Reset: si J es 0 y K es 1, la salida Q se restablecerá en 0 en el flanco de subida del reloj.
● Toggle: si J y K son 1, la salida Q cambiará de estado (alternará) en el flanco de subida del reloj.
● Mantener: si J y K son 0, el estado del Flip-Flop se mantendrá en su estado actual en el flanco de subida
del reloj.

El Flip-Flop JK es un circuito muy versátil y se utiliza en una variedad de aplicaciones, como la memoria RAM y
los contadores

Buffers
Un buffer es un circuito electrónico que se utiliza para amplificar una señal y hacerla más fuerte. En términos
generales, un buffer es un dispositivo que se utiliza para mantener la integridad de una señal mientras se
transmite a través de un circuito. Los buffers son importantes porque las señales electrónicas tienden a
debilitarse a medida que viajan a través de un circuito, lo que puede resultar en una pérdida de información o una
señal distorsionada.

Un buffer se compone típicamente de un transistor y algunos componentes adicionales, como resistencias y


condensadores. El transistor actúa como un interruptor que controla el flujo de corriente a través del circuito,
mientras que los otros componentes ayudan a asegurar que la señal se amplifique correctamente. Los buffers se
utilizan comúnmente en aplicaciones como la amplificación de señales de audio y la transmisión de datos en
circuitos digitales.

Dispositivos de tres estados:


Un dispositivo de tres estados es un circuito electrónico que puede ser configurado para tener uno de tres
estados de salida diferentes: alto, bajo o alta impedancia. En un estado alto, la salida del dispositivo está
conectada a un nivel alto de voltaje. En un estado bajo, la salida del dispositivo está conectada a un nivel bajo de
voltaje. En un estado de alta impedancia, la salida del dispositivo está desconectada del circuito y actúa como un
circuito abierto.

Los dispositivos de tres estados son útiles en situaciones donde múltiples dispositivos necesitan compartir una
línea de comunicación. En estos casos, los dispositivos pueden configurarse para transmitir datos en una línea
compartida en momentos diferentes. Cuando un dispositivo está en un estado de alta impedancia, su salida no
afecta a la línea de comunicación y permite que otros dispositivos transmitan datos.

En resumen, los buffers se utilizan para amplificar señales y mantener la integridad de la señal mientras se
transmite a través de un circuito, mientras que los dispositivos de tres estados son útiles para compartir una línea
de comunicación entre múltiples dispositivos sin interferir con los datos transmitidos por otros dispositivos.
Las memorias semicondutoras son dispositivos electrónicos que se utilizan para almacenar información digital de
forma permanente o temporal. Estos dispositivos se basan en tecnologías de semiconductores, y se utilizan en
una amplia variedad de aplicaciones, desde dispositivos móviles hasta centros de datos.

Las memorias semiconductoras


Pueden dividirse en dos categorías principales: las memorias de acceso aleatorio (RAM) y las memorias de solo
lectura (ROM). Las RAM se utilizan para almacenar información temporalmente y se borran cuando se apaga el
dispositivo, mientras que las ROM se utilizan para almacenar información permanentemente y no se borran
cuando se apaga el dispositivo.

Existen varias tecnologías diferentes de memorias semiconductoras, cada una con sus propias características y
ventajas. Algunas de las tecnologías más comunes son:

DRAM (Dynamic Random Access Memory): Es una memoria RAM que almacena información de forma temporal.
Utiliza condensadores para almacenar información, y se actualiza periódicamente para evitar que la información
se pierda. La DRAM es relativamente rápida, pero necesita ser actualizada con frecuencia.

SRAM (Static Random Access Memory): Es una memoria RAM que almacena información de forma temporal.
Utiliza circuitos lógicos para almacenar información, y no necesita actualizarse periódicamente. La SRAM es más
rápida que la DRAM, pero también es más cara y consume más energía.

Flash: Es una memoria ROM que almacena información de forma permanente. Utiliza transistores de puerta
flotante para almacenar información, y se utiliza en dispositivos como unidades flash USB y tarjetas de memoria.
La memoria flash es relativamente lenta en comparación con la RAM, pero es más barata y consume menos
energía.

EEPROM (Electrically Erasable Programmable Read-Only Memory): Es una memoria ROM que se puede
reprogramar y borrar eléctricamente. Utiliza transistores de puerta flotante, y se utiliza en dispositivos como
módems y sistemas de control de automóviles. La EEPROM es más lenta que la RAM y la memoria flash, pero
es más fácil de programar y borrar.

EPROM (Erasable Programmable Read-Only Memory): Es una memoria ROM que se puede borrar mediante
exposición a luz ultravioleta. Utiliza transistores de puerta flotante, y se utiliza en dispositivos como sistemas de
control de automóviles y sistemas de juegos antiguos. La EPROM es más lenta que la EEPROM, pero puede
almacenar información de forma permanente.

Visión genérica de un Microprocesador (basada en el Intel 8080)


El microprocesador 8080 es un procesador de 8 bits diseñado por Intel en la década de 1970. La arquitectura de
este microprocesador consta de las siguientes partes principales:

Unidad de control (Control Unit): Esta unidad es responsable de controlar la secuencia de operaciones que se
realizan en el procesador. También se encarga de decodificar las instrucciones y determinar qué operación se
debe realizar.

Unidad aritmético-lógica (ALU): La ALU es la parte del procesador que realiza las operaciones aritméticas y
lógicas, como sumas, restas, multiplicaciones, divisiones, comparaciones, entre otras.

Registros de propósito general: El 8080 cuenta con seis registros de propósito general de 8 bits cada uno,
denominados B, C, D, E, H y L. Estos registros se utilizan para almacenar datos temporales y direcciones de
memoria.

Registros especiales: El 8080 también cuenta con algunos registros especiales, como el registro acumulador (A),
el registro de estado (PSW) y el registro de puntero de pila (SP). El registro acumulador se utiliza para almacenar
los resultados de las operaciones aritméticas y lógicas, mientras que el registro de estado contiene información
sobre el resultado de la última operación realizada. El registro de puntero de pila se utiliza para almacenar la
dirección de la cima de la pila de la memoria.

Unidad de memoria: La unidad de memoria del 8080 está compuesta por una memoria de acceso aleatorio
(RAM) y una memoria de solo lectura (ROM). La RAM se utiliza para almacenar datos y programas temporales,
mientras que la ROM se utiliza para almacenar el código de programa permanente.

Bus de datos y direcciones: El bus de datos se utiliza para transferir datos entre el procesador y la memoria,
mientras que el bus de direcciones se utiliza para señalar la ubicación de los datos en la memoria.

En resumen, la arquitectura simplificada de un microprocesador basado en el 8080 consta de una unidad de


control, una unidad aritmético-lógica, registros de propósito general y especiales, una unidad de memoria y buses
de datos y direcciones.

Memoria
La organización de la memoria en un microprocesador basado en el 8080 consta de dos tipos de memoria: la
memoria RAM y la memoria ROM.

Memoria RAM:
La memoria RAM es la memoria principal del sistema y se utiliza para almacenar datos y programas en tiempo
de ejecución. En un microprocesador basado en el 8080, la memoria RAM se organiza en dos tipos:

a) Memoria de trabajo: Esta es la memoria RAM que el procesador utiliza para almacenar datos y programas en
tiempo de ejecución. La memoria de trabajo puede variar en tamaño según el diseño del sistema, pero en
general, puede oscilar entre 256 bytes y varios kilobytes. En este tipo de memoria, cada dirección de memoria
corresponde a un byte de datos y se direcciona mediante los buses de direcciones del procesador.
b) Memoria de pila: Esta es una sección especial de la memoria RAM que se utiliza para almacenar
temporalmente direcciones de retorno y otros datos de contexto durante la ejecución de subrutinas y funciones.
En un microprocesador basado en el 8080, la memoria de pila se organiza como una pila de datos LIFO (Last-In-
First-Out) que se accede mediante el registro de puntero de pila (SP). La pila de datos puede oscilar entre 16 y
256 bytes, según el diseño del sistema.

Memoria ROM:
La memoria ROM es la memoria que contiene el código de programa permanente, que no cambia durante la
ejecución del programa. En un microprocesador basado en el 8080, la memoria ROM se utiliza para almacenar el
BIOS del sistema, el cargador de arranque y otros programas que son necesarios para iniciar y operar el sistema.
La memoria ROM se organiza en bloques de 256 bytes, y cada bloque se direcciona mediante los buses de
direcciones del procesador.

Un diagrama simple de la organización de la memoria en un microprocesador basado en el 8080:


+--------------------------------+
| Memoria de ROM |
| (Código de |
| programa permanente) |
| |
| Direcciones de 0x0000 a |
| 0x3FFF |
+--------------------------------+
| |
| Memoria de RAM |
| (Datos y programas |
| en tiempo de ejecución) |
| |
| Direcciones de 0x4000 a |
| 0xFFFF |
+--------------------------------+
| Memoria de pila |
| |
| Direcciones de 0xFF00 a |
| 0xFFFF |
+--------------------------------+

En este diagrama, la memoria del sistema se divide en tres secciones principales:

Memoria de ROM: Esta sección contiene el código de programa permanente, que no cambia durante la ejecución
del programa. La memoria de ROM se organiza en direcciones que van desde 0x0000 hasta 0x3FFF.

Memoria de RAM: Esta sección contiene los datos y programas en tiempo de ejecución. La memoria de RAM se
organiza en direcciones que van desde 0x4000 hasta 0xFFFF.

Memoria de pila: Esta sección es una sección especial de la memoria RAM que se utiliza para almacenar
temporalmente direcciones de retorno y otros datos de contexto durante la ejecución de subrutinas y funciones.
La memoria de pila se organiza en direcciones que van desde 0xFF00 hasta 0xFFFF.

Es importante tener en cuenta que la cantidad exacta de memoria disponible y la ubicación de las diferentes
secciones pueden variar según el diseño del sistema.
En un sistema de memoria con un bus de direcciones de 16 bits y un bus de datos de 8 bits, cada dirección de
memoria está representada por 16 bits, lo que significa que hay un total de 2^16 = 65,536 posibles direcciones de
memoria. El bus de datos de 8 bits significa que cada acceso a memoria transfiere un byte de datos (8 bits).

Para acceder a una dirección de memoria en un sistema con este tipo de bus, el microprocesador coloca la
dirección de memoria deseada en el bus de direcciones de 16 bits. Luego, envía una señal de control para
indicar que la dirección está disponible en el bus. Después de que la memoria recibe la dirección, la memoria
devuelve el byte de datos almacenado en esa dirección al microprocesador a través del bus de datos de 8 bits.

El proceso de acceso a memoria en un sistema con un bus de direcciones de 16 bits y un bus de datos de 8 bits
se puede resumir en los siguientes pasos:

● El microprocesador coloca la dirección de memoria deseada en el bus de direcciones de 16 bits.


● El microprocesador envía una señal de control para indicar que la dirección está disponible en el bus.
● La memoria recibe la dirección y devuelve el byte de datos almacenado en esa dirección al
microprocesador a través del bus de datos de 8 bits.
● El microprocesador recibe el byte de datos y lo utiliza según sea necesario en el programa en ejecución.

Es importante tener en cuenta que en sistemas con un bus de datos de 8 bits, el microprocesador debe realizar
varias transferencias de datos para leer o escribir un dato de 16 bits. Para leer o escribir un dato de 16 bits, el
microprocesador debe realizar dos accesos de memoria, uno para cada byte de datos de 8 bits que conforman el
dato de 16 bits. Además, el microprocesador debe garantizar que los bytes de datos se escriban y se lean en el
orden correcto para asegurar que el dato de 16 bits se almacene correctamente en la memoria.

La arquitectura de un procesador de 8 bits.

Registro acumulador (A): Este registro de 8 bits es el registro de trabajo principal de la CPU y se utiliza para
realizar operaciones aritméticas y lógicas.

Registros de propósito general (B, C, D, E, H, L): Estos son registros de 8 bits que se utilizan para almacenar
datos y direcciones.

Registro de estado (FLAGS): Este registro contiene información sobre el estado de la CPU después de realizar
una operación aritmética o lógica. El registro FLAGS consta de 8 bits, y cada bit representa una bandera de
estado diferente, como el acarreo, el cero, el signo y el paridad.

Registro de puntero de pila (SP): Este registro de 16 bits se utiliza para apuntar a la ubicación de la memoria
donde se almacena la pila.

Registro de contador de programa (PC): Este registro de 16 bits contiene la dirección de la siguiente instrucción
que se va a ejecutar.

Unidad de control: Esta unidad se encarga de controlar la secuencia de ejecución de las instrucciones y de
coordinar el acceso a los diferentes elementos de la CPU.

Unidad aritmético-lógica (ALU): Esta unidad realiza operaciones aritméticas y lógicas en los datos almacenados
en los registros.

Memoria: La CPU se comunica con la memoria para leer y escribir datos y programas.

En resumen, la arquitectura simplificada de una CPU del estilo del 8080 consta de una serie de registros, una
unidad de control, una unidad aritmético-lógica y la memoria.

También podría gustarte