Вы находитесь на странице: 1из 7

Arquitectura del Computador I Abril 2017 Vol. I, No.

Lenguaje de Mquina y Arquitectura


del Computador.
Frida Bolaos, Luis Fernando Alcantara, Josu Sols
Universidad Rafael Landvar

Resumen

La historia de la arquitectura de las computadoras se remonta a los orgenes de las mismas, para ser preciso
nos referimos a la primera generacin de las computadoras. Estas tuvieron su desarrollo antes y durante la
segunda guerra mundial. El motivo: siempre la necesidad de la comunicacin (en trminos del nivel ms
bajo: el lenguaje de maquina) y el manejo de clculos e informacin. Tambin empez a referirse al uso
de programas a base de la programacin de instrucciones en un conjunto de cdigos binarios.

I. Historia I. Alan Turing y John von Neumann


La idea principal para que una maquina
l gran salto que dio la computacin de

E los tubos al vacio puede marcarse en 1941


cuando se lanzo la Z3 de Konrad Zuse
que al igual que las maquinas anteriores traba-
pueda hacer mltiples tareas, como realizar un
calculo matemtico, guardar texto e interpretar-
lo, etc. es llamada la idea de la universalidad.
El origen de esta fue en un modelo terico con-
jaba con Rels, sin embargo la gran diferencia siderado por Alan Turing durante los siglos
de esta maquina radicaba en su funcionamien- XIX y XX.
to con instrucciones binarias en lugar del siste-
ma decimal que fue implementado en los dise-
os de Charles Babbage. Otro acontecimiento
importante es que en 1937 dos patentes de Zuse
anticipaban que las instrucciones de mquina
podan ser almacenadas en el mismo tipo de
almacenamiento utilizado por los datos. Este
es uno de los comportamientos que describe la
arquitectura de Von Neumann. Siendo imple-
mentado por primera vez en el diseo britnico
EDSAC en 1949.
Zuse tambin diseo el primer lenguaje de
alto nivel llamando Plankalkl en 1945, sin em-
bargo este nunca se public formalmente has-
ta 1971, y fue implementado por primera vez
en el 2000 por la Universidad de Berln, cinco Figura 1. Teora: Maquina Universal de Turing.
aos despus de la muerte de Zuse. Su trabajo Idea desarrollada por Alan Turing.
permaneci largamente desconocido para los La idea de Turing consiste en capturar la
ingenieros del Reino Unido y de los Estados esencia acerca de lo que puede ser computado
Unidos. IBM era consciente de esto y finan- y lo que no. Esta misma idea fue trasladada a
ci su compaa a inicios de la post-guerra en la practica por von Neumann quien formul la
1946, para obtener derechos sobre las patentes primera arquitectura general para computado-
de Zuse. res. Con esta podemos poner el software de

1
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

un programa dentro de un hardware y hacer adelante en detalle.


que este se comporte de una manera segn las
necesidades y repetir el mismo proceso con I. Mquinas
diferentes programas creados con diferentes
operaciones. El lenguaje de mquina est diseado para
manipular memoria utilizando un procesador
y un set de registros, estos conceptos permi-
ten lograr realizar las tareas deseadas. En este
caso el lenguaje Hack tambin maneja estos
conceptos que son definidos de la siguiente
manera:

I.1. Memoria
El termino memoria se refiere a la coleccin
de dispositivos de hardware que almacenan da-
tos e instrucciones en una computadora. Desde
el punto de vista de un programador, todas las
memorias tienen la misma estructura: Un arre-
glo continuo de celdas de un tamao especifico,
cada uno teniendo una direccin nica.

I.2. Procesador
Figura 2. Practica: Arquitectura Von Neumann. El procesador, normalmente llamado uni-
Idea desarrollada por John von Neumann. dad central de proceso o CPU, es un disposi-
tivo capaz de ejecutar un set de operaciones
elementales. stas tpicamente incluyen ope-
II. Lenguaje de Mquina
raciones aritmticas y lgicas, de acceso a la
Una computadora puede ser descrita cons- memoria y de control. Los operandos de estas
tructivamente, esto separando en capas su pla- operaciones son valores binarios que pueden
taforma de hardware y explicando cmo est ser almacenados ya sea en registros o en luga-
construida desde los chips de nivel bajo. Una res de memoria seleccionados.
computadora puede tambin ser descrita abs-
tractamente, especificando y demostrando la II. Comandos
capacidad de su lenguaje de mquina. Esto nos
ayuda a entender, no solo como programar una II.1. Operaciones aritmticas y lgicas
computadora para hacer cosas tiles, sino tam- Toda computadora es requerida para ejecu-
bin como su hardware fue diseado de cierta tar operaciones bsicas aritmticas como una
manera. El lenguaje de mquina est diseado suma o una resta como tambin operaciones
para codificar programas de lenguaje de bajo booleanas bsicas.
nivel como una serie de instrucciones de m-
quina. Usando estas instrucciones de mquina,
II.2. Acceso a memoria
el programador puede comandar al procesa-
dor a hacer operaciones lgicas y aritmticas, Los comandos de acceso a memoria caen
almacenar y devolver valores en memoria, mo- en dos categoras. Primero, como hemos visto,
ver valores entre registros, verificar condiciones los comandos aritmticos y lgicos estn au-
booleanas, etc. En este curso se estar trabajan- torizados a operar no solo en registros, pero
do con la computadora Hack, especificada mas tambin en posiciones de memoria. Segundo,

2
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

todas las computadoras poseen comandos di- instrucciones y una memoria de datos. Ambas
rectos de lectura y escritura, diseados para memorias son de 16-bit y tienen un espacio de
mover data entre registros y memoria. Estos direccin de 15-bit, significando esto que el ta-
comandos de acceso de memoria poseen dis- mao mximo direccionable de cada memoria
tintos tipos de mtodos de direccionamiento. es de 32K 16-bit palabras. El CPU puede ejecu-
Los tres tipos principales de direccionamiento tar solo programas que residen en memoria de
son los siguientes: instrucciones. La memoria de instrucciones es
de solo-lectura, y los programas son ledos en
Direccionamiento directo ella usando medios exgenos.

El modo mas comn para direccionar me-


moria es expresando una direccin especifica III.2. Registros
o usar un smbolo que se refiera a la direccin
especificada: El programador Hack debe tener conoci-
LOAD R1,67 // R1 = Memory[67] miento de dos tipos de registros de 16-bit lla-
mados D y A. Estos registros pueden ser mani-
Direccionamiento intermedio pulados explcitamente por instrucciones arit-
mticas y lgicas. Mientras D es usado para
Esta forma de direccionar es utilizada pa- almacenar valores de datos, A es utilizado co-
ra leer valores constantes que aparecen en el mo un almacenamiento de datos pero tambin
cdigo de instrucciones: En lugar de tratar el como de direccin de memoria. Dependiendo
campo numrico que aparece en la instruccin del contexto el contenido de A puede ser in-
como una direccin, simplemente leemos el terpretado como un valor de datos, o como
valor del campo en el registro: una direccin en la memoria de datos, o una
LOADI R1,67 // R1 = 67 direccin en la memoria de instrucciones.

Direccionamiento indirecto
En este modo de direccionamiento, la direc- IV. La instruccin A
cin de la locacin de memoria requerida no
La instruccin A es usada para asignar al
esta codificada en la instruccin; en su lugar, la
registro A un valor de 15-bit.
instruccin especifica una locacin de memo-
ria que posee la direccin requerida Este tipo
de direccionamiento es utilizado para manejar
punteros.

III. Especificacin del lenguaje Hack Esta instruccin causa que la computadora
LA computadora Hack es una plataforma almacene el valor especificado en el registro
von Neumann. Esta es una maquina de 16-bit, A. La instruccin A es utilizada para distintos
consistiendo de un CPU, dos mdulos sepa- propsitos. Primero, provee el nico camino
rados de memoria sirviendo como memoria para entrar en la computadora bajo el control
de instrucciones y datos, y dos dispositivos de de un programa. Segundo, prepara el escenario
entrada/salida mapeados; una pantalla y un para una instruccin C subsecuente diseada
teclado. para manipular cierta direccin de memoria,
esto por medio de asignar primero a A la di-
reccin requerida. Tercero, prepara el escenario
III.1. Espacios de direccin de memoria
para una instruccin C subsecuente que especi-
El programador Hack tiene que conocer dos fica un Jump o salto, esto leyendo primero la
tipos espacios de memoria: una memoria de direccin del destino del salto en el registro A.

3
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

VI. Manejo de Entrada/Salida

La plataforma Hack puede ser conectada a


V. La instruccin C dos dispositivos perifricos: una pantalla y un
teclado. Ambos dispositivos interactan con la
La instruccin C es el caballo de trabajo de plataforma de la computadora mediante mapas
la programacin Hack, es la instruccin que de memoria. Esto significa que dibujar pixeles
lleva todo a cabo. El cdigo de la instruccin en la pantalla es logrado mediante valores bina-
es una especificacin que responde tres pre- rios en un segmento de memoria asociado con
guntas: A) que hacer o ejecutar, B) donde al- la pantalla. As tambien, acceder a un teclado
macenar lo ejecutado y C) que hacer despus. es realizado leyendo una locacin de memoria
Junto con la instruccin A, esta especificacin asociada con el teclado.
determina todas las operaciones posibles de la
computadora.
VI.1. La pantalla

La computadora hack incluye una pantalla


en blanco-negro organizada en 256 filas de 512
El bit mas a la izquierda es el cdigo de
pixeles por fila. El contenido de la pantalla es
la instruccin C, que es 1. Los siguientes dos
representado en un mapa de memoria de 8K
bits no se utilizan. Los bits restantes de tres
que empieza en la direccin de RAM 16384.
campos correspondientes a las tres partes de
Cada fila en la pantalla fsica, empezando en
la representacin simblica de la instruccin.
la esquina superior izquierda, es representada
El campo jump de la instruccin C le dice al
en la RAM por 32 palabras consecutivas de
computador que hacer despus. Hay dos po-
16-bit. Para poder leer o escribir un pixel en la
sibilidades; La computadora debera realizar
pantalla, se lee o escribe su bit correspondiente
la siguiente instruccin en el programa, que
en RAM.
es default, o debera ejecutar una instruccin
localizada en algn otro lugar del programa.
En este caso, se asume que el registro A ha sido
previamente asignado a una direccin a donde VI.2. El teclado
se debe saltar. Un salto debe de materializarse
dependiendo de tres j-bits del campo jump La computadora Hack posee una interfaz
y en el valor de salida del ALU. El primer j-bit con el teclado fsico mediante un mapa de me-
especifica saltar si el valor es negativo, el se- moria localizado en la direccin de RAM 24576.
gundo j-bit en caso de que el valor sea cero, y Cuando una tecla es presionada, su cdigo AS-
el tercer j-bit en caso que sea positivo, esto nos CII de 16-bit aparece en RAM[24576]. Cuando
da ocho condiciones principales para realizar ninguna tecla es presionada, el cdigo 0 apare-
un jump. ce en esta locacin.

4
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

VII. Herramientas utilizadas para la de datos. Estas memorias son manipuladas de


interpretacin del Hack diferente manera pero bsicamente consisten
en informacin almacenada en registros.
VII.1. Assembler
La memoria de instrucciones consiste en ins-
III. Arquitectura del Computador trucciones ingresadas en un lenguaje de alto
nivel y que son traducidas a lenguaje de mqui-
Como ha sido mencionado ya varias veces
na en cdigo binario el cual el CPU puede leer
un computador tienen que ser capaz de eje-
e interpretar para ejecutar tareas especficas.
cutar las instrucciones recibidas en lenguaje
de mquina, el concepto que permite a una
La memoria de datos se encarga de alma-
computadora realizar e interpretar operacio-
cenar como nmeros binarios la informacin
nes, manejar memoria, utilizar condiciones boo-
que es manipulada por lenguajes de alto nivel
leanas, etc., es el de computador de programa
como variables y objetos, cada uno de estos
almacenado (stored program). El concepto ante-
tienen una direccin y un espacio en memoria
rior consiste en que el hardware funciona con
estos pueden ser consultados o modificados.
un repertorio especfico de instrucciones pre-
determinadas, estas instrucciones pueden ser
combinadas para poder desarrollar tareas ms III. CPU
complejas. Esta informacin no est integrada
directamente en el hardware, es manipulada Es una mquina de estado finito que, a su
como datos que estn almacenados en la me- vez, es un componente bsico de una compu-
moria del computador y que es bsicamente tadora que interpreta instrucciones de uno o
lo que se denomina software. La funcionalidad varios programas mediante operaciones bsi-
del computador depender entonces de las ins- cas aritmticas, lgicas y de entrada/salida. En
trucciones que sean cargadas en este. otras palabras, es el corazn de una computadora.
Todas las CPU actuales son microprocesadores
que significa que solo tienen un circuito o chip
I. Aquitectura von Neumann
integrado los cuales pueden contener los dis-
El concepto de stored program es la base positivos perifricos y otros componentes de
de varios modelos de arquitectura del compu- un sistema.
tador, uno de estos es la arquitectura von Neu- Las funciones principales que el CPU realiza
mann. Esta arquitectura consiste en una unidad es la de enviar y recibir seales de control,
de procesamiento central (CPU) que directa- direcciones de memoria y datos de un lugar
mente manipula la informacin, la memoria, a otro dentro del computador a travs de un
los datos que obtienen como inputs y produ- BUS: conjunto de conexiones fsicas que per-
ce outputs especficos de las acciones ejecu- miten que los componentes del hardware se
tadas. En pocas palabras dicta qu es lo que comuniquen entre s.
el computador realizar. La mquina que se- Los componentes que un CPU posee son los
r desarrollada, Hack, maneja datos de 16bits siguientes:
y su arquitectura esta basada en la von Neu-
mann. A continuacin se desarrollarn los ele- ALU (Arithmetic Logic Unit): Es un cir-
mentos fundamentales de la arquitectura von cuito combinacional que calcula todas las
Neumann. operaciones aritmticas y operaciones l-
gicas de bajo nivel entre valores binarios,
ceros y unos, de la computadora.
II. Memoria
Registros: El CPU est diseado para rea-
La memoria de esta arquitectura consiste lizar clculos simples por ello un registro
en dos tipos, la memoria de instrucciones y la es una memoria que posee gran veloci-

5
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

dad y poca capacidad que permite guar- para realizar un salto o bien cambiar el estado
dar temporalmente y acceder a valores de dgitos en un registro, en vez de producir
que se utilicen mucho por operaciones. resultados.
Unidad de Control (PC): Representada
por cdigo binario es capaz de decodi-
ficar y decidir cmo y que instruccin
es la siguiente a realizar. Por ello el fun-
cionamiento del CPU se puede describir IV. Registros
como un ciclo repetitivo ya que pasa una Se pueden manejar diferentes tipos de re-
instruccin se decodifica, se ejecuta y se gistros dependiendo de la arquitectura,en el
realiza la siguiente instruccin muchas caso de la mquina Hack, en la von Neumann
veces donde puede que la ALU compute, se manejan los siguientes:
manipule los registros, lea o escriba una
palabra en memoria. Registros de datos, son los que temporalmen-
te almacenan datos que son el resultado de
OPERACIONES: operaciones o valores constantes.

III.1. Leer: Registros de direcciones de memoria, al mo-


Es el primer paso que implica en localizar mento de ejecutar funciones se tiene que re-
una instruccin en memoria la cual es deter- currir mltiples veces a la informacin alma-
minada por el contador del programa (PC), cenada en memoria, por lo tanto, se estarn
el contador indica al CPU el lugar de la ins- manipulando continuamente direcciones en
truccin actual del programa. Luego se lee la esta para especificar a qu datos se desea ac-
instruccin donde el PC incrementa por la lon- ceder. Es necesario tener y poder utilizar esta
gitud de la instruccin en trminos de memo- direccin por lo tanto tiene que ser almacenada
ria que contendr la direccin siguiente en la en alguna parte la cual nos permita acceder a
secuencia. ella rpidamente.

Registro del programa contador, el PC per-


III.2. Decodificar:
mite conocer la instruccin siguiente que se
La instruccin se divide en partes que po- debe ejecutar pero para poder hacerlo es nece-
seen un significado para otras unidades dentro sario conocer la direccin de esta instruccin.
del CPU. Un grupo de nmeros, binarios, en La funcin de este registro es almacenar dicha
la instruccin indican que operacin se va a direccin la cual es actualizada por el CPU
realizar. ya sea si la instruccin actual contiene un co-
mando goto que da una direccin especfica
III.3. Ejecucin: o, de no tenerlo, el PC es incrementado de la
direccin n a la n+1 en memoria.
Despus de los pasos anteriores se ejecuta
la instruccin en donde las unidades que com-
ponen al CPU son conectadas de manera tal V. Inputs y outputs
que sea posible realizar la operacin deseada.
Para poder manejar los datos que entran
in salen del computador el CPU les asigna a
III.4. Escritura:
los elementos que los manejaran (mouse, key-
Se escriben, el/los resultados obtenidos en board,etc.) un espacio en memoria lo cual prin-
la ejecucin, en algn registro interno del CPU cipalmente consiste en un mapeo, asigna a cada
o en memoria principal y en algunos casos, los elemento una direccin, as se pueden manipu-
tipos de instrucciones, manipulan el PC, ya sea lar los valores de entrada para determinar las

6
Arquitectura del Computador I Abril 2017 Vol. I, No. 2

salidas. Gracias a ese diseo se puede interac- mente funciona nuestra mquina. La mquina
tuar con el computador, lo nico que hay que Hack que se present es una mquina relativa-
hacer es colocarnos en la direccin de memoria mente simple
a la cual se le asignan los inputs por ejemplo.

IV. Lenguaje y arquitectura II. Conclusiones


Las descripciones anteriores no ayudan a Compuertas primitivas como lo son
conceptualizar el tipo de intercambio que exis- Nand y Nor son el elemento principal pa-
te entre el lenguaje de mquina en el cual se ra la construccin de cualquier compuer-
escriben las instrucciones deseadas y el diseo ta o configuracin de compuertas ms
de mquina que las ejecutar. Pero, qu real- completa.
mente es lo que sucede en esa traduccin entre Es til reutilizar compuertas ya disea-
el lenguaje y la arquitectura? das e implementadas ya que permite pro-
fundizar en el funcionamiento de cada
Ahora nos topamos con el concepto de un componente.
Ensamblador. El ensamblador es lo que direc- Los HDL permiten disear circuitos de
tamente .ensambla"las instrucciones redactadas hardware ms eficientemente ya que se
en los smbolos del lenguaje mquina, los facilita la modificacin y la resolucin de
cuales un programador puede manejar ms errores sin tener que poseer el elemento
fcilmente, para convertirlas a instrucciones fsico.
binarias que, en el caso de la mquina Hack,
las conocemos como instrucciones de tipo A
o de tipo C (consultar seccin II Lenguaje de
Mquina). III. Trabajo Futuro

Como ya se manejan correctamente el fun-


Traduce lo y redacta en la estructura ya men-
cionamiento de un ALU y de los elementos de
cionada de 1s y 0s lo que se desea realizar,
memoria se puede trabajar en elementos ms
codifica comandos como los "jumps.o las di-
complejos que relacionen la lgica combinacio-
recciones de memoria a sus representaciones
nal con la secuencial, como por ejemplo una
en binario y las organiza en las palabras que
memoria RAM.
conforman las instrucciones de tipos A o C
para que sean entendidas por el CPU. Entonces
podemos decir que el ensamblador es el puente
que unifica el lenguaje, lo que deseamos hacer, Referencias
y la mquina.
[1] Nisan, Noam, and Shimon Schocken. The
V. Discusin elements of computing systems : building
a modern computer from first principles.
I. Discusin de Resultados Cambridge, Mass. London: MIT, 2008.
Al manejar conceptos de bajo nivel, se pue-
de comprender ms especficamente como real- [2] http://www.nand2tetris.org/.

Вам также может понравиться