Actualizado el 12 de Septiembre del 2020 (Publicado el 14 de Enero del 2017)
735 visualizaciones desde el 14 de Enero del 2017
14,6 MB
121 paginas
Creado hace 12a (29/01/2013)
~1-I/73C.
bOIV
N=ttJ- "1057'
te~s
CENTftO DE INVE ST G A ·: 10111 Y Ol
ESTU r:o s (VHUO OS D[L
I. P. N.
B IBLI O TECA
I>!!'TN IER !A tl F(TI'\ IU
CENTRO DE
INVESTIGACION Y DE ESTUDIOS AVANZADOS DEL
INSTITUTO POLITECNICO NACIONAL
f? O ':;, 0
DEPARTAMENTO DE INGENIERIA ELECTRICA
SECCION DE COMPUTACION
ESTUDIO COMPARATIVO DE ARQUITECTURAS DE PROCESADORES CON
BASE EN LA GENERACION DE CODIGO
CENT~O D~ I:J':':STIGf~CT,i·' Y DE
ESL
'
:.v NfOOO~ vEL
I . p N
B IBLIO TECA
Tesis que presenta el
Ing. Octavia Hector Juarez
Espinosa para obtener el grado de MAESTRO EN CIENCIAS en la
especialidad
de
INGENIERIA
ELECTRICA
con
opcion
en
COMPUTACION.
Trabajo dirigido por el Dr . Jan Janecek Hyan.
Mexico D. F .
junio de
1990
CUTitt II£ INVESTIIA CIU y n
U TU t 18S AVAN ZAttS Il l
I. P. N.
.
IB LIOTE CA
INr,ENJERIA ELECTRI CA
Becario de
CONACYT
xM
A
LA MEMORIA DE MI PADRE
A MI MADRE Y HERMAHOS
A EVA
AGRADECIMIENTOS
Doy las gracias:
Al doctor Jan Janecek por sus enseilanzas, observaciones
y criticas para la realizaci6n de este trabajo.
Al doctor Guillermo Morales y al ing. Rodolfo Rosado por
el equipo facili tado para trabajar.
Al maestro Andres Vega por la lectura y correcci6n de
este texto.
A los maestros, compaileros y personal de la SECCION DE
COMPUTACION por sus enseilanzas, ayuda y solidaridad.
Al CONACYT y al CINVESTAV por la ayuda brindada para la
obtenci6n del grado.
I NO ICE
PAGINA
0.- INTRODUCCION
1.- DESCRIPCION DE ARQUITECTURAS
1. 1. - ARQUITECTURAS CON UN NUMERO LIMIT ADO DE
REGISTROS
1. 2.- ARQUITECTURAS CON UN NUMERO ABUNDANTE
DE REGISTROS
1. 3.- MAQUINAS DE PILA
1. 4 • - COMENTARIOS FINALES
2.- EL TRANSPUTER Y OCCAM
2 . 1. - MODOS DE DIRECCIONAMIENTO
2. 2.- DISENO DEL CONJUNTO DE INSTRUCCIONES
2. 3 • - EL LENGUAJE OCCAM
3.- SMALL C
3 • 1. - SOBRE SMALL C
3. 2.- SINTAXIS DEL LENGUAJE
3. 3.- DIFERENCIAS CON C
3. 4.- LA IMPLEMENTACION DE SMALL C
4 . - GENERACION DE CODIGO PARA EL TRANSPUTER
4 • 1. - EL TRANSPUTER Y EL LENGUAJE OCCAM
4. 2.- EL FORMATO DE SALIDA
4. 3 .- CODIGOS QUE SE PUEDEN UTILIZAR DENTRO DE
LA CONSTRUCCION GUY
4 • 4 • - ALGUNOS CODIGOS GENERADOS
4. 5 . - LA COMPILACION DE EXPRESIONES
4 • 6 . - LOS PSEUDOCODIGOS
4. 7 - - PROBLEMAS SURGIDOS AL IMPLEMENTAR LOS
CAMBIOS
4. 8.- ESTRUCTURAS DE DATOS UTILIZADAS
18
25
26
2 7
28
31
38
38
38
41
44
52
52
53
55
57
61
68
69
76
4.9.- EL ESPACIO DE TRABAJO DE UN PROCEDIMIENTO
4 . 10.- LAS CADENAS DE OPTIMIZACION
5 • - RESULTADOS
6.- CONCLUSIONES
REFERENCIAS
APENDICE A (SINTAXIS DE OCCAM)
APENDICE B (CODIGO GENERADO)
78
79
8 3
88
90
93
101
CENTl!'J DE !NVE.STIGACifN Y r.l
E::T Un!OS AVI.~Z OOS DEl
!. P. N.
B 1 ;:, I_ I 0 T E C A
1' u:r ·~IE P.!A F LF':Th.!':' A
INTRODUCCION
El presente
de
arqui tecturas basado en el c6digo generado para un compilador
conocido.
comparative
trabajo
estudio
es
un
En el disefio de arqui tecturas se puede apreciar una
la
modificaci6n
tecnologia, permite tener procesadores cada vez mas poderosos.
conceptos .
evoluci6n
de
La
de
El progreso de arqui tecturas se debe al deseo de obtener
mayor densidad de c6digo, que repercuta en una mayor velocidad
de ejecuci6n, lo que aparentemente se traduce a un alto precio
en el mercado y a procesadores complej os.
Uno de los principales criterios de disefio de arquitecturas
es sin duda la escritura de compiladores.
Algunos disefiadores de arquitecturas prefieren incluir en
conjunto
soportan
el
construcciones de lenguajes de alto nivel, mientras que otros
prefieren un conjunto muy reducido de instrucciones con su meta
principal fijada en la velocidad de ejecuci6n.
instrucciones,
algunas
que
de
A mayor sintonia existente entre una arquitectura de una
maquina y un compilador, el trabajo que se realiza es mucho mas
efectivo.
La sintonia entre arquitecturas y compiladores influye en
la escritura de los algoritmos de compilaci6n y de optimizaci6n
de un lenguaj e en particular.
Algunos de los problemas, relatives a la arquitectura, que
surgen al escribir un compilador son:
--Las maquinas de muchos
requieren que el
compilador asigne los registros, lo que se complica al tratar de
hacer optima la asignaci6n.
registros
--En las maquinas que utilizan ventanas de registros se
debe controlar cuando el numero de variables locales rebasa el
numero de registros asignados a ellas, asi como el salvado de
ventanas de
llamada cuando el nivel de anidamiento en una
llamada es mayor al numero de ventanas de llamada disponibles.
--cuando se tiene una arquitectura con paralelismo en las
introducir
los datos de dos
cuando hay dependencia entre
instrucci6n,
fases de ciclos de
retardos
instrucciones.
se
tienen que
-- Si el numero de modos de direccionamiento y el numero de
instrucciones es
rnuy abundante, el problema al escribir el
compilador es el proceso de seleccionar la instrucci6n y el modo
de direccionamiento adecuado.
En
este contexte una de las principales metas de este
trabajo es visualizar de una manera practica las posibilidades
que tiene la arquitectura del TRANSPUTER de INMOS en el contexte
de una arquitectura muy popular como es el 8086 de INTEL y de
algunas arquitecturas actuales
filosofia de
disefio.
con diferente
Aunque el TRANSPUTER es un chip disefiado para ambientes de
programaci6n paralelo, su comparaci6n en este trabajo es en el
ni vel secuencial.
El compilador utilizado para hacer la comparaci6n es SMALL
c y las arquitecturas en las que se hace la comparaci6n practica
son: 8086 de INTEL y TRANSPUTER de INMOS.
El interes por trabajar con el TRANSPUTER se debe a que es
una arquitectura fuera del disefio convencional de un procesador.
trabaj o esta compuesto de seis capi tulos. En el
primero de ellos se describen las arquitecturas objeto de esta
comparaci6n y las arquitecturas que constituyen el contexte.
Este
En el
segundo capitulo
se detalla el
conjunto de
instrucciones del TRANSPUTER y se describe el lenguaje OCCAM.
En el
tercer capitulo se describe
la
implementaci6n
del compilador de SMALL C .
En el capitulo cuatro se describen los cambios realizados
al compilador de SMALL C para generar c6digo para el TRANPUTER.
Los resultados de la comparaci6n de c6digos generados y de
velocidades de ej ecuci6n se presentan en el capitulo cinco, para
culminar con el capitulo seis de conclusiones.
CAPITULO 1
DESCRIPCION DE ARQUITECTURAS
Se entiende por arquitectura en este trabajo, lo
programador en
datos, formatos y conjunto de instrucciones .
lenguaje de maquina ve :
registros,
que un
tipos de
En este capitulo se categorizan las arquitecturas con base
sus
se hace una descripci6n de cinco
componentes
y
en
de ellas.
La categorizaci6n es la siguiente :
* HAQUINAS CON NUHERO LIHITADO DE REGISTROS .
Dentro de esta categoria se incluyen las maquinas que
trabajan con acumuladores y es aqui donde se incluye el
8086 de INTEL.
* HAQUINAS CON ABUNDANTE NUHERO DE REGISTROS
Arquitecturas tales como RISC y el Motorola 68000
incluyen en esta clase .
* HAQUINAS DE PILA
se
En esta categoria se hacen dos sub-categorias:
HAQUINAS DE PILA LIHITADA
En esta categoria se ubica el TRANSPUTER de I NMOS.
HAQUINAS DE PILA NO LIHITADA
La rna quina representati va de esta clase es la HP3 000.
categorizaci6n
hizo
base
con
se
en
la
La
caracteristica distintiva de cada arquitectura.
En el diseilo de cada arquitectura se puede encontrar una
filosofia y asi se pueden definir dos grupos:
El
de
un
a) . -
grupo
de
instrucciones de alto nivel. El termino instrucciones de alto
nivel
de
arquitecturas
arquitectura
significa :
conjunto
conjunto
con
una
con
un
instrucciones mils poderoso y capaz de soportar construcciones de
lenguajes de alto nivel.
El grupo de
un conjunto
reducido de instrucciones, que buscan aumentar la velocidad de
ejecuci6n.
las arquitecturas con
b) . -
A continuaci6n se hace una descripci6n de cada una de estas
arqui tecturas.
1.1.- ARQUITECTURAS CON UN CONJUNTO LIMIT ADO DE REGISTROS
La computadora diseiiada per Von Neumann cuenta solamente con
registro
acumulador, el que sirve para
interne,
todas
ej ecutar todas las operaciones.
El con tar con un registro para todas las operaciones, se
las milquinas con muchos
puede ver como el extreme opuesto a
registros.
Actualmente existen milquinas que conservan la estructura de
la milquina de Von Neumann, tales arquitecturas cuentan con un
acumulador y algunos registros auxiliares . Algunos ejemplos de
esas milquinas son: 8080, 8085 y 8086. El 8086 de Intel se
describe a continuaci6n.
1. 1.1 EL 8086 DE INTEL
8086/ 88
a
El microprocesador
los
microprocesadores convencionales, estil dividido
Comentarios de: Tesis: Octavio Juarez - ESTUDIO COMPARATIVO DE ARQUITECTURAS DE PROCESADORES CON BASE EN LA GENERACION DE CODIGO (0)
No hay comentarios