Está en la página 1de 23

INTRODUCCIÓN

El poder de una computadora no surge de la complejidad. En cambio, la


computadora tiene la capacidad de realizar operaciones simples a una velocidad
extremadamente alta. Estas operaciones se pueden combinar para proporcionar las
capacidades informáticas con las que está familiarizado.

De acuerdo con esta idea, el diseño real de la computadora también es simple, como
verá.

(La belleza del diseño es que estas operaciones simples pueden usarse para
resolver problemas extremadamente complejos. El desafío del programador, por
supuesto, es producir la secuencia exacta de operaciones para realizar una tarea
determinada correctamente en todas las circunstancias posibles, ya que cualquier
error en la selección o secuencia de operaciones resultará en un programa "con
errores". Con la gran cantidad de instrucciones requeridas por los programas
modernos, no es sorprendente que algunos de los programas de hoy estén
realmente libres de errores.

En este capítulo, comenzaremos a explorar las operaciones que la computadora


puede realizar y veremos cómo esas operaciones funcionan juntas para
proporcionarle poder a la computadora. Para simplificar nuestra exploración,
comenzaremos por introducir un modelo de la computadora; un modelo que funciona
de manera muy similar a la computadora real, pero que es más fácil de entender
instintivamente.

El modelo que usaremos se llama Little Man Computer (LMC). El LMC original fue
creado por el Dr. Stuart Madnick en el MIT en 1965. En 1979, el Dr. Madnick produjo
una nueva versión del LMC, con un conjunto de instrucciones ligeramente
modificado; La última versión se utiliza en este libro. Es una fortaleza del modelo
original que opera de manera tan similar a una computadora real que aún es una
representación precisa de la forma en que funcionan las computadoras treinta y cinco
años después de su introducción.

Usando este modelo, introduciremos un conjunto de instrucciones simplificado, pero


típico, que una computadora puede realizar. Le mostraremos exactamente cómo se
ejecutan estas instrucciones en la computadora Little Man. Luego demostraremos
cómo se combinan estas instrucciones para formar programas.

DISEÑO DE LA PEQUEÑA COMPUTADORA HOMBRE

Comenzamos describiendo la distribución física de la computadora Little Man. En la


Figura 6.1 aparece un diagrama para la computadora Little Man.

El LMC consiste en una sala de correo amurallada, representada por la línea oscura
que rodea al modelo en el diagrama. Dentro de la sala de correo hay varios objetos:

Primero, hay una serie de cien buzones, cada uno numerado con una dirección que
va de 00 a 99. Se elige este sistema de numeración porque cada dirección del buzón
se puede representar con dos dígitos, y este es el número máximo de buzones que
se pueden representar por dos dígitos decimales.

Cada buzón está diseñado para contener una sola hoja de papel, sobre la cual se
escribe un número decimal de tres dígitos. Tenga en cuenta cuidadosamente que el
contenido de un buzón no es el mismo que la dirección de un buzón. Esta idea es
coherente con lo que ya sabe acerca de su casilla postal: el número de su casilla
postal identifica dónde va a recoger su correo, pero esto no tiene relación con el
contenido real de las letras que encuentra en ese buzón.

A continuación, hay una calculadora ... básicamente una calculadora de bolsillo


simple. La calculadora se puede usar para ingresar y retener temporalmente
números, y también para sumar y restar. La pantalla de la calculadora tiene tres
dígitos de ancho. Al menos para los fines de esta discusión, no se hace ninguna
provisión para números negativos, o para números mayores a tres dígitos. Como ya
saben, la aritmética del complemento de 10 podría usarse para este propósito, pero
eso no es de interés aquí.

En tercer lugar, hay un contador manual de dos dígitos, el tipo en el que hace clic
para incrementar el conteo.

El botón de reinicio para el contador de manos se encuentra fuera de la sala de


correo. Llamaremos a este contador un contador de ubicación de instrucciones.

Finalmente, está el hombrecito. Será su papel realizar ciertas tareas que se definirán
en breve.

Aparte del interruptor de reinicio en el contador de manos, la única interacción entre


la Computadora Little Man y el entorno exterior es una canasta de entrada y una de
salida.

Un usuario que se encuentre fuera de la sala de correo puede comunicarse con el


Little Man en la sala de correo colocando una hoja de papel con un número de tres
dígitos en la canasta, para que el Little Man la lea en el momento adecuado. De
manera similar, Little Man puede escribir un número de tres dígitos en una hoja de
papel y dejarlo en la cesta de salida, donde el usuario puede recuperarlo.

Tenga en cuenta que toda la comunicación entre la Computadora Little Man y el


mundo exterior se realiza mediante números de tres dígitos. A excepción del botón
de reinicio en el contador de ubicación de instrucciones, no es posible ninguna otra
forma de comunicación. Lo mismo ocurre en la sala de correo: todas las
instrucciones para el Hombre pequeño deben transmitirse como números de tres
dígitos.
FUNCIONAMIENTO DE LA LMC

Nos gustaría que el hombrecito haga un trabajo útil. Para este propósito, hemos
inventado un pequeño grupo de instrucciones que él puede realizar. Cada instrucción
constará de un solo dígito. Usaremos el primer dígito de un número de tres dígitos
para decirle al hombrecito qué operación realizar.

En algunos casos, la operación requerirá que Little Man use un buzón particular para
almacenar o recuperar datos (¡en forma de números de tres dígitos, por supuesto!).
Debido a que la instrucción solo requiere un dígito, podemos usar los otros dos
dígitos en un número de tres dígitos para indicar la dirección de buzón apropiada
para usar como parte de la instrucción. Por lo tanto, al usar los tres dígitos en una
hoja de papel, podemos describir una instrucción para Little Man de acuerdo con el
siguiente diagrama:

La parte de instrucciones del código de tres dígitos también se conoce como "código
de operación" o "código de operación para abreviar". El número de código de
operación asignado a una instrucción en particular es arbitrario, seleccionado por el
diseñador de la computadora en función de varios factores arquitectónicos y de
implementación. Los códigos de operación utilizados por el autor se ajustan a la
versión de 1979 del modelo Little Man Computer.

Ahora vamos a definir algunas instrucciones para que el hombrecito realice:

Instrucción de CARGA — código de operación 5

The Little Man se acerca a la dirección del buzón especificada en la instrucción. Lee
el número de tres dígitos ubicado en ese buzón, y luego se acerca a la calculadora y
marca ese número en la calculadora. El número de tres dígitos en el buzón no se
modifica, pero, por supuesto, el número original en la calculadora se reemplaza por
el nuevo número.
GUARDAR instrucción — código de operación 3

Esta instrucción es la inversa de la instrucción LOAD. El hombrecito se acerca a la


calculadora y lee el número allí. Escribe ese número en una hoja de papel y lo pone
en el buzón cuya dirección se especificó como parte de la dirección de la instrucción.
El número en la calculadora no ha cambiado; El número original en el buzón se
reemplaza con el nuevo valor.

AGREGAR instrucción — código de operación 1

Esta instrucción es muy similar a la instrucción LOAD. The Little Man se acerca a la
dirección del buzón especificada en la instrucción. Lee el número de tres dígitos
ubicado en el buzón y luego se acerca a la calculadora y lo agrega al número que ya
está en la calculadora. El número en el buzón no ha cambiado.

Instrucción de restar — código de operación 2

Esta instrucción es la misma que la instrucción ADD, excepto que Little Man resta el
valor del buzón del valor de la calculadora. El resultado de una resta puede dejar un
valor negativo en la calculadora. El Capítulo 5 discutió el uso de complementos para
implementar valores negativos, pero por simplicidad, el modelo LMC ignora esta
solución. Para los propósitos de nuestro modelo LMC, simplemente asumiremos que
la calculadora mantiene y maneja los valores negativos correctamente, y proporciona
un signo menos como indicador para indicar que el valor es negativo. Sin embargo,
Little Man no puede manejar números negativos fuera de la calculadora porque no
hay ninguna disposición en el modelo para almacenar el signo negativo dentro de la
restricción del sistema numérico de tres dígitos utilizado.
Instrucción de ENTRADA (o lea, si lo prefiere): código de opción 9, ‘‘ ‘’ ’’ 01

El hombrecito se acerca a la canasta y recoge el papelito de la canasta. Luego se


acerca a la calculadora y la introduce en la calculadora.

El número ya no está en la cesta, y el valor original de la calculadora ha sido


reemplazado por el nuevo número. Si hay varios trozos de papel en la canasta, Little
Man los recoge en el orden en que fueron enviados, pero cada instrucción de
ENTRADA maneja solo un único trozo de papel; otros valores de entrada deben
esperar la ejecución de instrucciones de ENTRADA subsiguientes. Algunos autores
utilizan el concepto de una cinta transportadora en lugar de la canasta interna, para
enfatizar este punto.

Instrucción de SALIDA (o impresión): código de apertura 9, '' dirección '' 02

The Little Man se acerca a la calculadora y anota el número que ve allí en una hoja
de papel. Luego camina hacia la canasta de salida y coloca la hoja de papel allí para
que el usuario la recoja fuera de la sala de correo. El número original en la
calculadora no ha cambiado. Cada instrucción de SALIDA coloca una sola hoja de
papel en la canasta de salida. Múltiples salidas requerirán el uso de múltiples
instrucciones de SALIDA.

Tenga en cuenta que las instrucciones de ENTRADA y SALIDA no utilizan ningún


buzón durante la ejecución, ya que el procedimiento para cada uno solo implica la
transferencia de datos entre una cesta de entrada o salida y la calculadora. Debido a
que esto es cierto, la parte de la dirección de la instrucción se puede usar para
ampliar la capacidad del conjunto de instrucciones, utilizando el mismo código de
operación con diferentes valores de "dirección" para crear una cantidad de
instrucciones diferentes. En la LMC, 901 es el código para una instrucción INPUT,
mientras que 902 se usa para una instrucción OUTPUT. En una computadora real,
por ejemplo, la dirección de instrucción se puede usar para especificar el dispositivo
de E / S en particular que se usará para la entrada o salida.
INSTRUCCIÓN DE DESCANSO DE CAFÉ (o HALT): código de operación 0

El hombrecito toma un descanso. The Little Man ignorará la parte de la dirección de


la instrucción.

Las instrucciones que hemos definido hasta ahora se dividen en cuatro categorías:

■ instrucciones que mueven datos de una parte de la LMC a otra (LOAD, STORE)

■ instrucciones que realizan aritmética simple (ADD, SUBTRACT)

■ instrucciones que realizan entrada y salida (INPUT, OUTPUT)

■ Instrucciones que controlan la máquina

Esto es suficiente por ahora. Discutiremos las instrucciones 6, 7 y 8 más adelante en


este capítulo.
UN PROGRAMA SENCILLO

Ahora veamos cómo podemos combinar estas instrucciones en un programa para


que Little Man haga un trabajo útil.

Antes de hacer esto, debemos almacenar las instrucciones en algún lugar, y


necesitamos un método para decirle al Hombre Pequeño dónde encontrar la
instrucción particular que se supone que debe realizar en un momento dado.

Sin discutir cómo llegaron allí, por ahora supondremos que las instrucciones se
almacenan en los buzones, comenzando en el número de buzón 00. The Little Man
llevará a cabo las instrucciones observando el valor en el contador de ubicación de
instrucciones y ejecutando la instrucción encontrada en el Buzón cuya dirección tiene
ese valor. Cada vez que el Hombre pequeño completa una instrucción, caminará
hacia el contador de ubicación de la instrucción y lo incrementará. Nuevamente
realizará la instrucción especificada por el contador. Por lo tanto, Little Man ejecutará
las instrucciones en los buzones secuencialmente, comenzando desde el buzón 00.

Dado que el contador de ubicación de instrucciones se restablece desde fuera de la


sala de correo, el usuario puede reiniciar el programa simplemente restableciendo el
contador a 00.

Ahora que tenemos un método para guiar a Little Man a través de un programa de
pasos de instrucciones, consideremos un programa simple que permitirá al usuario
fuera de la sala de correo usar la computadora Little Man para sumar dos números.
El usuario colocará dos números en la cesta de entrada. La suma de los dos
aparecerá como resultado en la cesta de salida. La pregunta es qué instrucciones
deberemos proporcionar para que Little Man realice esta operación.
ENTRADA 901

Como el Hombre pequeño debe tener acceso a los datos, el primer paso,
claramente, es hacer que el Hombre pequeño lea el primer número de la cesta en la
calculadora. Esta instrucción deja el primer número para ser agregado en la
calculadora.

TIENDA 99 399

Tenga en cuenta que no es posible que el Hombre pequeño simplemente lea otro
número en la calculadora. Hacer eso destruiría el primer número. En su lugar,
primero debemos guardar el primer número en algún lugar.

Mailbox 99 fue elegido simplemente porque está claramente fuera del camino del
programa.

Cualquier otro lugar que esté más allá del final del programa es igualmente
aceptable.

Almacenar el número en una ubicación que esté dentro del programa destruiría la
instrucción en esa ubicación. Esto significaría que cuando el Hombre pequeño fuera
a realizar esa instrucción, no estaría allí.

Más en serio, no hay forma de que Little Man distinga entre una instrucción y un
dato, ya que ambos están compuestos por números de tres dígitos. Por lo tanto, si
tuviéramos que almacenar datos en una ubicación que el Hombre pequeño usará
como una instrucción, el Hombre pequeño simplemente intentaría realizar los datos
como si fuera una instrucción. Como no hay forma de predecir lo que podrían
contener los datos, no hay manera de predecir lo que podría hacer el programa.

El concepto de que no hay manera de distinguir entre instrucciones y datos, excepto


en el contexto de su uso, es muy importante en informática. Por ejemplo, le permite a
un programador tratar una instrucción como información, modificarla y luego ejecutar
la instrucción modificada.
ENTRADA 901

Con el primer número guardado, estamos listos para que Little Man lea el segundo
número en la calculadora.

ADD 99 199

Tenga en cuenta que no hay ninguna razón específica para guardar el segundo
número. Si íbamos a realizar alguna operación que requiriera la reutilización del
segundo número, podría almacenarse en algún lugar.

En este programa, sin embargo, tenemos ambos números para realizar la suma. El
resultado es, por supuesto, dejado en la calculadora.

SALIDA 902

Todo lo que queda es que nosotros tengamos a Little Man enviando el resultado a la
canasta de salida.

DESCANSO DE CAFÉ 000

El programa está completo, así que permitimos que el hombrecito tome un descanso.

Estas instrucciones se almacenan secuencialmente desde el buzón 00, donde Little


Man las recuperará y las ejecutará una por una, en orden. El programa se muestra
de nuevo en la Figura 6.2.

Ya que tuvimos cuidado de ubicar los datos fuera del programa, este programa se
puede volver a ejecutar simplemente diciéndole al Hombre pequeño que comience
de nuevo.
UN CONJUNTO DE INSTRUCCIONES EXTENDIDO

Las instrucciones que hemos definido siempre deben ejecutarse en la secuencia


exacta especificada. Aunque esto es suficiente para segmentos de programa simples
que realizan una secuencia de operaciones, no proporciona ningún medio para
bifurcarse o hacer bucles, ambas construcciones que usted sabe son muy
importantes en la programación. Extendamos el conjunto de instrucciones agregando
tres instrucciones más para este propósito:

BRANCH INSTRUCCIONES INCONDICIONALES (a veces conocidas como JUMP):


código de inicio 6

Esta instrucción le dice al Hombre pequeño que camine hacia el contador de la


ubicación de la instrucción y que realmente cambie el contador a la ubicación que se
muestra en los dos dígitos de la dirección de la instrucción. (Suponga que el contador
de manos tiene ruedas para este propósito). Esto significa que la siguiente
instrucción que ejecutará Little Man se encuentra en esa dirección del buzón.

Esta instrucción es muy similar, conceptualmente, a la instrucción GOTO en BASIC.


Su ejecución siempre resultará en una ruptura en la secuencia a otra parte del
programa.

Tenga en cuenta que esta instrucción también utiliza los dígitos de la dirección de
una manera inusual, ya que Little Man no usa los datos en la dirección especificada.
De hecho, el Hombre pequeño espera encontrar una instrucción en esa dirección, la
siguiente que se realizará.

Instrucciones de BRANCH ON ZERO — código de operación 7

The Little Man caminará hacia la calculadora y observará el número almacenado allí.
Si su valor actual es cero, se dirigirá al contador de ubicación de la instrucción y
modificará su valor para que se corresponda con la dirección especificada dentro de
la instrucción. La siguiente instrucción ejecutada por el hombrecito se ubicará en esa
dirección.

Si el valor en la calculadora no es cero, simplemente procederá a la siguiente


instrucción en secuencia.

Instrucciones de BRANCH ON POSITIVE — código de operación 8

The Little Man caminará hacia la calculadora y observará el número almacenado allí.
Si su valor actual es positivo, se dirigirá al contador de ubicación de la instrucción y
modificará su valor para que se corresponda con la dirección especificada dentro de
la instrucción. La siguiente instrucción ejecutada por el hombrecito se ubicará en esa
dirección.

Si el valor en la calculadora es negativo, simplemente procederá a la siguiente


instrucción en secuencia. Cero se considera un valor positivo.

Tenga en cuenta que no es necesario proporcionar las instrucciones BRANCH ON


NEGATIVE o BRANCH ON NONZERO. Las instrucciones suministradas se pueden
utilizar juntas para lograr resultados equivalentes.

Estas tres instrucciones permiten romper con el procesamiento secuencial normal de


las instrucciones. Las instrucciones de este tipo se utilizan para realizar ramas y
bucles. Como ejemplo, considere el siguiente bucle WHILE-DO, común a muchos
lenguajes de programación:

WHILE Value = 0 DO

Task;

NextStatement
Este bucle podría implementarse usando la instrucción Little Man BRANCH de la
siguiente manera.

Suponga que estas instrucciones se encuentran en el buzón número 45 (los


comentarios se proporcionan a la derecha de cada línea):

45 LDA 90 590 90 se supone que contiene valor

46 BRZ 48 748 Rama si el valor es cero

47 HAB 60 660 Bucle de salida; Saltar a NextStatement

48 Aquí es donde se ubica la tarea.

59 BR 45 645 Fin a la tarea; bucle para probar de nuevo

60 Siguiente declaración

EJEMPLO

Aquí hay un ejemplo de un programa de Little Man que usa las instrucciones de
BRANCH para alterar el flujo del programa. Este programa encuentra la diferencia
positiva entre dos números (a veces conocida como la magnitud absoluta de la
diferencia). Para mayor comodidad, estamos introduciendo un conjunto de
abreviaturas para cada instrucción. Estas abreviaturas son conocidas como
mnemónicas (el primer "m" es silencioso). Una vez que aprenda a leer estos
mnemónicos, encontrará que los programas escritos con mnemónicos generalmente
son fáciles de leer. Es más común escribir programas de esta manera. Por un
tiempo, continuaremos imprimiendo tanto la mnemotécnica como el código, pero
eventualmente, dejaremos de imprimir el código. La mayoría de los programas
también están escritos con comentarios, que ayudan a aclarar el código. Las
instrucciones mnemotécnicas que usaremos se muestran en la Figura 6.3.

La abreviatura DAT se usa para indicar que un buzón particular se usará para
almacenar datos.

Los datos se pueden especificar por adelantado, por ejemplo, para usar como una
constante, o puede ser cero si la ubicación en particular se va a usar para almacenar
los datos más tarde, durante la ejecución del programa.

El programa, que se muestra en la Figura 6.4, funciona de la siguiente manera: las


primeras cuatro instrucciones simplemente ingresan y almacenan los dos números.
La quinta instrucción, en el buzón 04, resta el primer número del segundo. La
instrucción 05 prueba el resultado. Si el resultado es positivo, todo lo que queda por
hacer es imprimir la respuesta. Por lo tanto, la instrucción se puede utilizar para
derivar a la instrucción de impresión. Si la respuesta es negativa, la resta se realiza
en el otro orden. Entonces el resultado es la salida, y el hombrecito toma su
descanso. Tenga en cuenta que si se omite la instrucción COB (como se olvidó, ¡este
es un error muy común!), Little Man intentará ejecutar los datos almacenados en las
ubicaciones 10 y 11. Por favor estudie el ejemplo hasta que entienda cómo funciona
en cada detalle.
Las nueve instrucciones que conforman el conjunto de instrucciones que hemos
presentado son suficientes para realizar los pasos de cualquier programa de
computadora, aunque no necesariamente de la manera más eficiente. Es importante
que se dé cuenta de que, aunque simplificado, el conjunto de instrucciones de Little
Man es muy similar a los conjuntos de instrucciones que aparecen en la mayoría de
las computadoras reales. En computadoras reales, como en Little Man Computer, la
mayoría de los pasos de instrucción están relacionados con el movimiento de datos
entre el equivalente de ubicaciones de buzones y calculadoras, con cálculos muy
simples y con bifurcaciones de programas.

La computadora real difiere principalmente en las variaciones de estas instrucciones


que se proporcionan, y con la adición de algunas

instrucciones que proporcionan conveniencia de programación, particularmente


instrucciones de multiplicación y división, y también instrucciones que cambian los
datos en una palabra a la izquierda o la derecha. (Tenga en cuenta que el método
tradicional de realizar la multiplicación se puede hacer en la computadora usando las
instrucciones de MAYÚS y AÑADIR).
Discutiremos muchas de estas variaciones cuando veamos los conjuntos de
instrucciones en algunas computadoras reales, en los Capítulos 7, 8, 11 y en los
Capítulos 2 y 3 suplementarios.

EL CICLO DE INSTRUCCIONES

Nos referiremos a los pasos que el Hombre pequeño toma para realizar una
instrucción como el ciclo de instrucción. Este ciclo, que es similar para todas las
instrucciones, se puede dividir en dos partes:

1. La parte de recuperación del ciclo, en la que el hombrecito descubre qué


instrucciones debe ejecutar, y

2. La parte de ejecución del ciclo, en la que realiza el trabajo especificado en la


instrucción.

La parte de recuperación del ciclo es idéntica para cada instrucción. The Little Man
camina hacia el mostrador de ubicación y lee su valor. Luego va al buzón con la
dirección que corresponde a ese valor y lee el número de tres dígitos almacenado
allí. Ese número de tres dígitos es la instrucción a realizar. Esto se representa en los
dibujos de la Figura 6.5a.

La parte de recuperación del ciclo tiene que ocurrir primero: hasta que el Hombre
pequeño haya realizado la operación de recuperación, ¡ni siquiera sabe qué
instrucción ejecutará!

La parte de ejecución de cada instrucción es, por supuesto, diferente para cada
instrucción.

Pero incluso aquí, hay muchas similitudes. Las primeras seis instrucciones requieren
que el Hombre pequeño mueva los datos de un lugar de la sala de correo a otro. Las
primeras cuatro instrucciones involucran el uso de una segunda ubicación de buzón
para los datos.

La instrucción LOAD es típica. Primero, el hombrecito trae la instrucción. Para


realizar la fase de ejecución de la instrucción LOAD, Little Man primero mira el buzón
con la dirección que se encuentra en la instrucción. Lee el número de tres dígitos en
la hoja de papel en ese buzón y regresa la hoja de papel a su lugar. Luego camina
hacia la calculadora y marca el número en la calculadora. Finalmente, se acerca al
mostrador de ubicación y lo incrementa. Ha completado un ciclo de instrucción y está
listo para comenzar el siguiente. Estos pasos se muestran en la Figura 6.5b.
Con la excepción del paso en el que Little Man incrementa el contador de ubicación,
los pasos deben realizarse en la secuencia exacta que se muestra. (El contador de
ubicación puede incrementarse en cualquier momento después de que se haya
producido la búsqueda). Los pasos de búsqueda deben ocurrir antes de los pasos de
ejecución; dentro del alcance, el hombrecito debe mirar el contador de ubicación
antes de poder extraer las instrucciones de su buzón.

Al igual que la secuencia de instrucciones en un programa es importante, y usted


sabe que esto es cierto para cualquier idioma, Pascal, Little Man o cualquier otro, así
también es cierto que los pasos dentro de cada instrucción deben realizarse en un
orden particular .

Observe que las instrucciones ADD y SUBTRACT son casi idénticas a las
instrucciones LOAD. La única diferencia ocurre durante el paso de ejecución, cuando
el Little Man ingresa el número en la calculadora. En el caso de las instrucciones
aritméticas, el hombrecito suma o resta el número que lleva en la calculadora, en
lugar de simplemente

entrando en ella

Las otras instrucciones son ligeramente diferentes, aunque no más difíciles de


rastrear y comprender. Para mejorar su comprensión, debe seguir los pasos del
hombrecito a través de las seis instrucciones restantes.
UNA NOTA SOBRE EL ORDENADOR ARQUITECTOS

Como señalamos en el Capítulo 1, a John von Neumann generalmente se le


considera el desarrollador de la computadora tal como la conocemos hoy. Entre 1945
y 1951, von Neumann estableció una serie de pautas que se conocieron como la
arquitectura de von Neumann para computadoras.

Aunque se han desarrollado y construido otras arquitecturas informáticas


experimentales, la arquitectura de von Neumann sigue siendo la arquitectura
estándar para las computadoras; ninguna otra arquitectura ha tenido ningún éxito
comercial hasta la fecha. Es significativo que, en un campo donde el cambio
tecnológico se produce casi de la noche a la mañana, la arquitectura de las
computadoras prácticamente no ha cambiado desde 1951.

Las principales pautas que definen una arquitectura de von Neumann incluyen:

■ La memoria contiene programas y datos; Esto se conoce como el concepto de


programa almacenado. El concepto de programa almacenado permite que los
programas se cambien fácilmente.

■ La memoria se dirige de forma lineal; es decir, hay una sola dirección numérica
secuencial para cada ubicación de memoria.

■ La memoria es direccionada por el número de ubicación sin tener en cuenta los


datos que contiene.

Las instrucciones se ejecutan de forma secuencial a menos que una instrucción o un


evento externo (como el restablecimiento del contador de ubicación por parte del
usuario) haga que ocurra una rama.

Además, von Neumann definió la organización funcional de la computadora como


una unidad de control que ejecuta instrucciones, una unidad aritmética / lógica que
realiza cálculos aritméticos y lógicos, y memoria. La unidad de control y la unidad
aritmética / lógica forman la CPU, o unidad central de procesamiento.
Si revisa las pautas que se acaban de dar, observará que Little Man Computer es un
ejemplo de arquitectura de von Neumann. De hecho, nos encargamos de señalar las
características de la arquitectura de von Neumann durante nuestra discusión de Little
Man Computer.

RESUMEN Y REVISIÓN

El funcionamiento de la computadora puede ser simulado por un modelo simple. El


modelo de Little Man Computer consiste en un Little Man en una sala de correo con
buzones, una calculadora y un contador. Las cestas de entrada y salida proporcionan
comunicación al mundo exterior.

The Little Man Computer cumple con todos los requisitos de una arquitectura de
computadora de von Neumann.

The Little Man realiza el trabajo siguiendo instrucciones simples, que se describen
con números de tres dígitos. El primer dígito especifica una operación. Los dos
últimos dígitos se usan para varios propósitos, pero generalmente para apuntar a una
dirección. Las instrucciones proporcionan operaciones que pueden mover datos
entre las ranuras de correo y la calculadora, mover datos entre la calculadora y las
cestas de entrada y salida, realizar sumas y restas, y permitir que Little Man deje de
funcionar. También hay instrucciones que hacen que Little Man cambie el orden en el
que se ejecutan las instrucciones, ya sea de forma incondicional o en función del
valor en la calculadora.

Tanto los datos como las instrucciones se almacenan en ranuras de correo


individuales. No hay diferenciación entre los dos, excepto en el contexto de la
operación en particular que tiene lugar. El hombre pequeño normalmente ejecuta las
instrucciones secuencialmente desde las ranuras de correo, excepto cuando
encuentra una instrucción de bifurcación. En ese caso, anota el valor en la
calculadora, si es necesario, y reanuda la ejecución de las instrucciones desde la
ubicación apropiada.
Los pasos exactos realizados por Little Man son importantes porque reflejan de cerca
los pasos realizados en una CPU real al ejecutar una instrucción.

CONCEPTOS Y CONDICIONES CLAVE

Ciclo de instrucción

Direccionamiento de memoria lineal

Pequeña computadora del hombre

(LMC)

Mnemotécnica

Código de operación

Concepto de programa almacenado

Arquitectura de von Neumann

PREGUNTAS DE LA REVISIÓN DE LA LECTURA

6.1 Sin mirar el libro, dibuja una computadora Little Man. Etiqueta cada uno de los
componentes en tu dibujo.

6.2 Las instrucciones en la computadora Little Man son tres dígitos, divididos en dos
partes.

Mostrar el formato de una instrucción LMC.

6.3 Describa, paso a paso, lo que hace Little Man para ejecutar una instrucción de
STORE.

6.4 Describa, paso a paso, lo que hace Little Man para ejecutar una instrucción
INPUT.
6.5 Extienda el programa simple que se muestra en la Sección 6.3 para aceptar tres
entradas de un usuario, agregarlas y generar el resultado.

6.6 Si un usuario desea ingresar dos números, ¿qué debe hacer el programa Little
Man antes de ingresar el segundo número? ¿Por qué?

6.7 Escriba un programa de Little Man que acepte dos números como entrada y
emita los números en orden inverso.

6.8 Escriba un programa de Little Man que acepte dos números como entrada, resta
el primero del segundo y genera el resultado.

6.9 Explique con cuidado lo que hará el hombrecito cuando ejecute una instrucción
JUMP.

6.10 Explique cuidadosamente, paso a paso, lo que hará el hombrecito cuando


ejecute una instrucción BRANCH ON ZERO.

6.11 ¿Por qué el ciclo de instrucción se llama ciclo?

6.12 Incluso si se queda sin instrucciones para ejecutar, el Hombre pequeño solo
deja de intentar ejecutar las instrucciones bajo una condición. ¿Cuál es esa
condición? ¿Qué sucede si el hombrecito se queda sin instrucciones y esa condición
no se cumple?

6.13 El ciclo de instrucción se divide en dos fases. Nombra cada fase. La primera
fase es la misma para cada instrucción. ¿Cuál es el propósito de la primera fase que
hace esto cierto? Explica lo que hace el hombrecito durante la primera fase.

6.14 ¿Qué hace el Hombre Pequeño durante la segunda fase de un descanso para
tomar café o detener la instrucción?

También podría gustarte