Está en la página 1de 12

¿Qué hay detrás de

las computadoras?
RESUMEN PRIMERA PARTE

Lino Hernández Víctor Enrique


DISPOSITIVOS PROGRAMABLES | PROFR. ARMANDO TORRES CORONEL
1

Índice
Conceptos Básicos .............................................................................................................................. 2
La Maquina ...................................................................................................................................... 2
La operación más simple ................................................................................................................. 2
La suma ............................................................................................................................................ 4
Las complicaciones de un signo ...................................................................................................... 7
Algunos otros detalles ..................................................................................................................... 7
El problema del ordenamiento ........................................................................................................ 8
El concepto de memoria .................................................................................................................. 8

Mas memorias ............................................................................................................................... 11

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


2

Conceptos Básicos
La maquina
Maquina: Conjunto de instrumentos combinados que reciben una cierta energía definida para
transformarla y restituirla en forma más apropiada o para producir efectos determinados.

El concepto de maquina es totalmente independiente de su realización física. En esencia es un


recurso del ser humano para hacer las cosas de una forma más eficiente, una extensión del mismo
que le proporciona una mejora para realizar una tarea específica.

Autómata: Maquina que imita los movimientos de un ser animado.

La computadora es una maquina automática, que imita procesos intelectuales del ser humano con
una eficacia y rapidez muy elevados, que además de todo ello es reprogramable; además, pueden
existir en conjunto.

La computadora es una maquina secuencial que recorre una secuencia de estados definidos por su
programa. Y aunque las computadoras con capacidad de procesamiento paralelo son capaces de
ejecutar más de una tarea a la vez, esta aseveración sigue siendo correcta, con la diferencia de que
cada estado está determinado por la ejecución de un conjunto de acciones.

Por otra parte, el movimiento debe estar claramente definido, esto es, el autómata requiere una
descripción de lo que debe hacer.

La operación más simple


En 1847, George Boole publica sus primeras ideas sobre la lógica simbolica. Mas adelante
desarrollaría estas ideas, hasta conformar su teoría de lógica binaria, que constituye la base de la
computación moderna. El elemento básico de esta teoría es la variable binaria, una variable que
puede asumir uno, de solamente dos valores posibles. Estos dos valores pueden representar
cualquier cosa: su significado físico no es trascendente.

Si tenemos una sola variable, resulta que cualquier operación que queramos definir solamente
podrá alterar el valor de la variable de 0 a 1, o viceversa.

𝑦 = 𝑥̅
Del principio de doble negación se desprende inmediatamente que:

𝑦̅ = 𝑥̿ = 𝑥
Para una sola variable se puede definir una sola operación. Supongase que tenemos que decidir si
vamos, o no, al cine, y que la cuestión depende de dos variables: tenemos, o no tenemos, el dinero
y la película es, o no, interesante. Podemos tabular la decisión anterior.

No tengo dinero, no me interesa, entonces: no voy


Si tengo dinero, no me interesa, entonces: no voy
No tengo dinero, si me interesa, entonces: no voy
Si tengo dinero, si me interesa, entonces: si voy

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


3

Si la variable “dinero” la llamamos a, al “interés” b, y al ir, o no, y; además de asignarle el valor de


0 a la condición falsa, y el de 1 a la condición cierta, entonces podemos generar una tabla:

a b y
0 0 0
0 1 0
1 0 0
1 1 1
George Boole demostró que la operación lógica AND no puede ser reducida a ningún conjunto de
operaciones mas sencillas y, por lo tanto, constituye una operación lógica elemental. Por otra
parte, ya vimos que existe por lo menos una forma muy sencilla de realizar físicamente esta
operación. Simbólicamente, la operación es 𝒚 = 𝒂 ∗ 𝒃

a b y
0 0 0
0 1 1
1 0 1
1 1 1
Esta tabla corresponde a la operación lógica OR, que puede leerse como “la salida es cierta, si una
o ambas entradas son ciertas”. Una analogía eléctrica seria la conexión en paralelo de dos
apagadores que alimentan a un foco. El foco encenderá si uno, o ambos apagadores están
encendidos. Simbólicamente, la operación es 𝒚 = 𝒂 + 𝒃

Al igual que con la operación lógica AND, esta no puede reducirse a otras más sencillas. La lógica
simbólica requiere que ambas operaciones elementales puedan relacionarse, esto es, que una
pueda ser expresada en términos de la otra y viceversa. La prueba de que esto es así, se conoce
como el teorema de Morgan.

Una de las dos formas que toma el teorema de Morgan es:

𝒁 = ̅̅̅̅̅̅̅
̅+𝒃
𝒂 ̅ = 𝒂𝒃

Todas las operaciones concebibles en el marco de la lógica simbólica pueden ser realizadas por
medio de una combinación adecuada de cualquiera de las dos operaciones, así como de la
negación.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


4

La suma
Si tenemos dos variables booleanas, la suma aritmética de estas variables daría los siguientes
resultados:

a b y
0 0 0
0 1 1
1 0 1
1 1 0

El resultado de sumar uno más uno, no es representable en términos de una sola variable: sus dos
valores posibles, 0 y 1, ya los hemos usado, y el numero dos requiere de otra representación.

Esto es análogo a lo que ocurre cuando sumamos 5 + 7; el resultado no puede ser representado
con un solo digito, y utilizamos el recurso de definir una segunda propiedad de os números: su
valor posicional. Con esta convención, 5 + 7 = 12, se interpreta como “uno por 10 más dos”.
Decimos que se produjo un desborde en la suma, o un “acarreo”. Una computadora representa a
los números positivos en forma análoga. Asignamos un valor posicional a cada variable booleana,
donde cada posición representa un factor de dos. Así la secuencia 0, 1, 2, 3, 4, 5, … toma la forma
0, 1, 10, 11, 100, 101, …

Cualquier número (real, entero y positivo), puede ser representado por una secuencia de variables
booleanas, donde cada una posee su valor numérico, esto es, uno o cero, y su valor posicional,
esto es, 20 , 21 , 22 , 𝑒𝑡𝑐 −. Lo cual es una representación numérica base 2.

Cuando sumamos dos dígitos de una suma de números de varios dígitos, preguntamos si
“llevamos uno”, de una suma anterior. Por ejemplo, 15 + 9 = 5 + 9 igual a 4, llevamos una, y 1 + 1 =
2, más una que llevamos, tres: 34. En general, entonces, para la suma de dos dígitos intervienen
tres entradas: las dos de los dígitos, más el acarreo de entrada. El resultado, también en general,
tiene dos salidas: el resultado, más el acarreo de salida.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


5

Esta máquina funciona para cualquier base numérica, y la tabla de verdad para las dos variables de
salida queda como sigue:

a b 𝒄𝒆 s 𝒄𝒔
0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
1 1 0 0 1
0 0 1 1 0
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1

̅
̅∗𝒃+𝒂∗ 𝒃
𝑺= 𝒂

Se puede crear una maquina sumadora de tres variables booleanas, pero esto no es demasiado
útil en la vida real; se requieren sumar cantidades mucho más grandes. Una posible solución
consiste en concatenar una serie de sumadores completos de dos variables.

La entrada de acarreo menos significativa siempre recibe un cero lógico (para la suma del primer
digito no necesitamos el acarreo), y la salida de acarreo de una etapa se conecta a la entrada de la
siguiente. Este esquema nos permite sumar dos cantidades de tres variables booleanas cada una,
esto es, dos cantidades entre 0 y 7 representadas por las variables de salida, así como por el
acarreo de salida. Evidentemente es posible construir un esquema que permite sumar dos

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


6

cantidades arbitrariamente grandes, simplemente aumentando la estructura a la cantidad de


sumadores requerida.

Una variable booleana representa la cantidad mínima de información posible, 1 o 0, y recibe el


nombre de bit. Una secuencia de dos variables representa a dos bits, y así sucesivamente. La
cantidad de bits de las que se dispone en un momento dado, es una medida de la cantidad de
información que se puede representar. Ya hemos visto que dos variables booleanas representan 4
posibilidades diferentes. El sumador completo, con tres variables de entrada, maneja 8
posibilidades diferentes, etc.

Se estableció la cantidad de 8 bits como un estándar de información Esta cantidad recibe el


nombre de byte y representa 28 = 256 opciones diferentes. El doble de esta cantidad, es decir 16
bits, e conoce como Word y representa 65,536 opciones diferentes.

¿Cuál es el tiempo (conceptualmente hablando) mínimo para realizar una operación? En nuestro
caso, dado el tiempo para ejecutar una operación elemental como la unida, ¿Cuál es el tiempo
mínimo para ejecutar una suma sobre dos palabras de n bits?: sin considerar a la negación, dos
unidades, y no importa la cantidad de bits.

El precio que se paga es, desde luego, una mayor complejidad en la combinación de operaciones
elementales.

En términos de circuitos integrados comercialmente disponibles, un dispositivo popular es el


sumador de cuatro bits, esto es, un dispositivo que acepta dos cantidades de cuatro bits, más
acarreo, de entrada, y genera una suma de cuatro bits, más acarreo de salida. Estos dispositivos
pueden concatenarse para formar sumadores de 8, 12, 16 o más bits.

¿Cómo podemos sumar cantidades de 32, o más bits?: primero sumamos el digito menos
significativo, luego sumamos el siguiente digito, considerando el acarreo de la suma anterior, y así
sucesivamente. La solución secuencial implica que la maquina debe “recordar” el valor del acarreo
anterior.

Esta solución implica más tiempo de ejecución Si todos los factores son iguales, una máquina de
16 bits se tarda el doble que una de 32 bits para sumar dos cantidades de 32 bits. Pero, en
principio, una máquina de solamente dos bits es perfectamente capaz de sumar, secuencialmente,
dos cantidades arbitrariamente grandes Para el diseño de una máquina, siempre estarán del lado
opuesto de la balanza, la cantidad de componentes requerida y la velocidad de ejecución,
independientemente de la solución tecnológica concreta.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


7

Las complicaciones de un signo


Se define la notación “complemento a dos” como una de las maneras posibles de representar
números negativos en la base dos. Esta notación resuelve el problema del signo mediante el
recurso de agregarle un bit más al número. Por convención, en eta notación, un número es
positivo si el bit más significativo es 0 y negativo, si este bit es 1. De esta manera “0100”
representa +4. Esto es, para representar un numero n-1 bits se requieren n bits. El numero
negativo se obtiene restando de 2𝑛 el número.

La notación complemento a dos posee algunas propiedades muy interesantes, que podemos
ejemplificar en nuestra acostumbrada notación base 10. Supóngase que deseamos restar 4 de 7,
esto es, queremos obtener 7- 4. En notación complemento a diez, el 7 es 07, donde el 0 indica que
el 7 es positivo. Pero 7 – 4 es igual a escribir 7 +(-4). El “-4” se representa como 100 – 4 = 96,
donde el 9 indica que se trata de un numero negativo. Si ahora sumamos 07 + 96 con un sumador
de dos dígitos, obtenemos 03, que es el resultado correcto. También obtenemos un desborde,
pero no lo necesitamos.

En notación complementaria, la resta se puede convertir, en suma, complementando al


substraendo. Dado que el complemento a dos se puede obtener muy fácilmente, esta notación, es
casi universalmente aceptada en las computadoras modernas. Esto no quiere decir que no existan
otras maneras de tratar al signo menos.

Algunos otros detalles


Maquinas modernas operan sobre diversas representaciones numéricas, de acuerdo con las
necesidades concretas del problema que se desea resolver. De estas, podemos mencionar la de
enteros, la de enteros signados, y la de punto flotante. Esta última expresa cualquier cantidad en
la llamada notación científica.

Ninguna representación numérica es capaz de abarcar la totalidad de los números. No importa


cuánto tiempo nos dedicamos a escribir un número, siempre habrá alguno más grande, o más
pequeño, que no podamos escribir en este tiempo. Esto es, no importa el número de bytes o
palabras que destinemos a una representación numérica: su rango será finito. Por otra parte,
siempre habrá un límite para la cantidad más pequeña que podamos representar.

Estos hechos encierran una consecuencia sutil, que limita la precisión de las computadoras. Dada
una base numérica cualquiera, existen cantidades que no se pueden representar de manera
exacta. Por ejemplo, 1/3.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


8

El problema del ordenamiento


El ordenamiento de datos es un problema tan importante, que en algunos países las
computadoras reciben el nombre de ordenadores. De hecho, la primera aplicación comercial de
una computadora, fue el ordenamiento de los resultados de un censo poblacional en Estados
Unidos.

Un conjunto de variables puede ser utilizado para representar letras, por medio de un código
común aceptado por todos los interesados. Actualmente el código más popular, derivado del
teletipo, es el código ASCII Expandido, que utiliza 8 bits para representar cualquier letra, digito,
comando e inclusive algunos caracteres gráficos.

Una computadora puede manejar textos por medio de una representación numérica de las letras y
símbolos involucrados. El problema del ordenamiento, en consecuencia, se convierte en un
problema de ordenamiento numérico.

El reordenamiento de la secuencia hace necesario su almacenamiento en una memoria y la


posibilidad de alterar esta memoria, esto es, de cambiar su contenido. Por otra parte, el algoritmo
bubble sort, ilustra lo que es una ejecución condicional. El programa de la maquina debe alterar, o
no, el contenido de la memoria de acuerdo con el resultado de una operación aritmética. De
hecho, el programa debe seguir uno de dos caminos, en función a una bandera: un atributo de un
resultado aritmético.

La máquina debe poseer la capacidad de alterar, y repetir, la secuencia de ejecución de


instrucciones de acuerdo con las necesidades del algoritmo.

El concepto de memoria
En términos mecánicos, la memoria es simplemente un registro de algún evento para ser utilizado
en un tiempo futuro. Un papel escrito es una memoria.

En la actualidad se emplea un gran número de tecnologías para construir memorias de muy


diferentes capacidades y características, algunas de las cuales habremos de analizar más adelante.
Aquí nos interesa el concepto, independientemente de la realización física concreta.

Para construir un elemento de memoria con funciones booleanas elementales, se requiere definir
las operaciones NAND y NOR.

a b y
0 0 1
0 1 1
1 0 1
1 1 0

𝒚 = ̅̅̅̅̅̅̅
𝒂∗𝒃

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


9

Una manera de construir un elemento de memoria de acuerdo con la definición, es conectar la


salida de una compuerta NAND a una de las dos entradas de otra compuerta similar. La salida de
esta segunda compuerta se conecta, a su vez, a una de las entradas de la primera.

𝑡𝑛 a b q 𝑞̅
0 1 1 0 1
1 1 0 1 0
2 1 1 1 0

El circuito descrito constituye un elemento básico de memoria, conocido como biestable o flip-
flop. Posee dos entradas, ambas activas en cero lógico, una de las cuales asigna el valor 1 a q y la
otra restituye q a 0. En la nomenclatura de la computación, se trata de un flip-flop tipo SR. Existen
otros tipos de flip-flop’s, tales como el tipo T, JK y D.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


10

𝑡𝑛 d clk a b q 𝑞̅
0 0 0 1 1 0 1
1 1 0 1 1 0 1
2 1 1 1 0 1 0
3 1 0 1 1 1 0
4 0 0 1 1 1 0

Un flip flop de tipo D, admite una representación simbólica de la forma:

𝑞𝑛+1 = 𝑑𝑛
Donde el instante n+1 es el posterior al instante de ocurrencia de la señal de reloj clk n.

El concepto instante, en la práctica, y dependiendo de la tecnología y del flip flop, requiere de una
duración mínima. Por otra parte, la señal d debe estar estable un cierto tiempo previo y/o
posterior, a la ocurrencia del reloj. Estos tiempos definen la velocidad máxima de operación del
circuito. Desde el punto de vista conceptual, lo importante es que el reloj separa dos tiempos. El
estado, en el tiempo actual, de la salida q, corresponde al estado de entrada d, en el tiempo
previo.

Los flip flops se encuentran disponibles en la forma de circuitos integrados. A estos dispositivos se
les conoce como registros y cuentan con un número determinado de flip flops en su interior.

Con estos flip flops podemos almacenar variables booleanas. Con registros, podemos almacenar
bytes y palabras. Para lograr almacenar cantidades más grandes de información, se requiere de
algo distinto. Una memoria

Lo que distingue a una memoria de un registro, es el concepto de direccionamiento. Si vemos a la


memoria como un numero grande de registros contenidos en una caja negra, con entradas y
salidas comunes, nos hace falta un mecanismo para seleccionar a uno de estos registros en
particular. Esto es análogo a los apartados postales.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte


11

La selección se hace por medio de un decodificador de direcciones. Un decodificador incluye


circuitos similares para cada una de las posibles combinaciones de entrada. El decodificador
selecciona a uno de estos registros en particular y da señales de comando que activan, ya sea la
lectura, o escritura, del registro seleccionado.

Mas memorias
El concepto de memorias es el más general posible, en tanto que no solo es un archivo de
información, sino que su contenido puede ser alterado. Más aún: los cambios de contenido que
deseemos efectuar no están restringidos en ningún sentido. Podemos alterar el contenido de
cualquier dirección, independientemente de la dirección previa seleccionada. Estas memorias se
conocen con las siglas de RAM.

Un tipo de memorias que necesitamos para el diseño de una máquina, son llamadas “memorias de
solo lectura” o ROM. Dispositivos que, como su nombre lo indica, solamente pueden ser leídos,
pero su contenido no puede ser alterado por el usuario. Podríamos ver a este dispositivo como
una serie de registros cuyas entradas están conectadas permanentemente a unos y ceros.

También existen las PROM, o Programmable Read Only Memory. Memorias de lectura sumamente
importantes, no solamente porque permiten almacenar programas en firme, sino porque
permiten la realización de un gran número de funciones booleanas, a muy bajo costo, y
relativamente, a gran velocidad.

¿QUÉ HAY DETRÁS DE LAS COMPUTADORAS? | Resumen primera parte

También podría gustarte