Anda di halaman 1dari 7

UNIDAD 3Aplicar las tcnicas para la optimizacin del cdigo intermedio generado

Las sentencias de un bloque bsico constituyen una unidad sobre la cual se


aplican las optimizaciones locales. Estas optimizaciones se pueden dividir en:
a) Optimizaciones que no modifican la estructura.
Son:
1. Eliminacin de sub-expresiones comunes.
2. Eliminacin de cdigo muerto.
2. Eliminacin de cdigo muerto.
3. Renombrar variables temporales.
4. Intercambio de sentencias independientes adyacentes.

b) Transformaciones algebraicas.
Son aquellas transformaciones que simplifican expresiones y/o reemplazan
operaciones costosas de la mquina por otras menos costosas.

Cdigo Intermedio
En accin Cdigos de tres direcciones
Cada orden son funciones de dos registros
Solo se puede utilizar tipos bsicos, no hay funciones y todo el cdigo se
realiza por bloques
La gestin de memoria se realiza en el cdigo

Tendremos que afrontar algunas cuestiones


Gestin de etiquetas para implementar mediante saltos condicionales o
incondicionales las estructuras de control (mientras).
Tabla de smbolos

Comprobar las reglas sobre declaraciones de identificadores


Asociar, a cada identificador que encontramos en tiempo de compilacin, la
memoria que le corresponder en tiempo de ejecucin.

Codigo de Tres Direcciones Uno concreto y sencillsimo para nuestros primeros


ejemplos y ejercicios Vamos a simplificar un poco el codigo de tres
direcciones.
# comentario $p2 :read
# lectura $p2 :write
# escritura $p4 : $p3
# copia $p21 : $p32 + $p13
# operacion, admite +, -, *, / ident:
# etiqueta $p8 : jump ident
# salto condicional: salta si <= 0 Simplificaciones: Todas las variables son
temporales ( se ordena leer y escribir en memoria sin decir dnde) y
equivalentes entre s(todos son numeros enteros). (No distinguimos
acumulador, ni registros entre s, ni registros de posiciones de memoria; no
hay offsets. . . )

http://ocw.unican.es/ensenanzas-tecnicas/procesadores-delenguaje/materiales-de-clase-1/codigo-intermedio.pdf
http://ditec.um.es/~jmgarcia/papers/ensayos.pdf

UNIDad 4

x86 es la denominacin genrica dada a ciertos microprocesadores de la familia Intel, sus


compatibles y la arquitectura bsica a la que estos procesadores pertenecen, por la
terminacin de sus nombres numricos: 8086, 80286, 80386, 80486, etc. Son comnmente
conocidos por versiones abreviadas de sus nombres, como 286 i286, 386 i386, 486
i486, e incluso 086, por i8086 o i8088 (su respectiva versin de 8 bits).
A partir del i486, sus sucesores sern conocidos por los nombres no numricos referentes a
la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les
comercializ (a menudo seguido de su frecuencia, en megahertzios, de ciclos de reloj),
como los Pentium (y Pentium MMX), o los K5, para el 80586 ( i586), en sus respectivas
versiones de Intel y AMD; los Pentium Pro, Pentium II, Pentium III y K6, as como los
6x86, de Cyrix, para el 80686 ( i686); los Pentium 4, Pentium D y K7 (Athlon, Athlon
XP, Duron y Sempron), para los 80686 de sptima generacin. Con la octava generacin de
procesadores compatibles x86, los x86-64, que utilizan arquitectura y bus de 64 bits, con
posibilidad de mltiples ncleos, introducida por AMD y clonada por Intel, se introducen
por primera vez nuevas variantes y formas, en lo que a la denominacin y clasificacin del
procesador se refiere, tales como el nombre comercial tecnologa del modelo, la
compaa fabricante, su nmero de serie, la cantidad de bits a la que puede trabajar o la
cantidad de ncleos por los que est compuesto, por ejemplo: Intel Core 2 Duo E2180, o lo
que es lo mismo, i686 Intel Pentium de doble ncleo E2180, de 64 bits y de 1,6 a 2,0
Ghz; AMD Athlon 64 X2, es decir, un AMD 64 bits, Athlon X de doble ncleo a 2 Ghz;
todos ellos englobados bajo el denominador comn x86-64, y compatibles con
subarquitecturas anteriores de 32, 16 y 8 bits, de la familia de procesadores x86 de Intel, y
compatibles.

La comercial popularidad de esta arquitectura hizo que muchos fabricantes, adems de


Intel, empezaran a fabricar en masa microprocesadores basados en esta arquitectura. Estas
compaas son entre otras AMD, Cyrix, NEC Corporation y Transmeta.
La arquitectura es notablemente no limpia, por mantener compatibilidad
con la lnea de procesadores de 16 bits de Intel, que a su vez tambin
eran compatibles con una familia de procesadores de 8 bits. Existen dos
sucesores de 64 bits para esta arquitectura:

IA64, empleada en los procesadores Itanium de Intel y no


compatible con X86, excepto bajo emulacin.

AMD64 o x86-64, de AMD, que es bsicamente una extensin de


64 bits de la familia x86.

Tcnicamente, la arquitectura es denominada IA32 (Intel Architecture 32


bits). Est basada en un modelo de arquitectura CISC (del ingls
Complex Instruction Set Computing).
Intel Itanium, antes conocida como IA-64 (Intel Architecture-64), es una
arquitectura de 64 bits desarrollada por Intel en cooperacin con
Hewlett-Packard para su lnea de procesadores Itanium e Itanium 2. Usa
direcciones de memoria de 64 bits y est basada en el modelo EPIC[1]
(Explicitly
Parallel
Instruction
Computing,
procesamiento
de
instrucciones explcitamente en paralelo).
Los procesadores Intel Itanium 2 representan el diseo de producto ms
complejo del mundo con ms de 1.700 millones de transistores. Esto
permite obtener slidas capacidades de virtualizacin, mejorar la
confiabilidad y niveles de rendimiento lderes del mercado.
A diferencia de productos de los pocos fabricantes* de procesadores
RISC que siguen operando, la serie de procesadores Intel Itanium 2
ofrece libertad al usuario final a travs de una amplia gama de opciones
de software con ms de 8.000 aplicaciones en produccin. Los
servidores y sistemas de cmputo de alto desempeo basados en el
procesador Itanium ofrecen soporte de misin crtica para Windows,
Linux, Unix y otros sistemas operativos.

Los ltimos pentiums, son en realidad mquinas RISC que emulan


a una mquina CISC por temas de retrocompatibilidad.

x86-64 es una arquitectura basada en la extensin del conjunto de


instrucciones x86 para manejar direcciones de 64 bits. Adems de una
simple extensin contempla mejoras adicionales como duplicar el
nmero y el tamao de los registros de uso general y de instrucciones
SSE.
Se trata de una arquitectura desarrollada por AMD e implementada bajo
el nombre de AMD64. El primer procesador con soporte para este
conjunto de instrucciones fue el Opteron, lanzado en abril de 2003.
Posteriormente ha sido implementado en mltiples variantes del Athlon
64 y del Pentium 4 de Intel, en ste ltimo caso bajo una versin de Intel
llamada Intel 64 (antes EM64T).
Descripcin de la arquitectura
El conjunto de instrucciones del AMD x86-64 (renombrado
posteriormente como AMD64) es una extensin directa de la
arquitectura del x86 a una arquitectura de 64 bits, motivado por el
hecho de que los 4GB de memoria que son direccionables directamente
por una CPU de 32 bits ya no es suficiente para todas las aplicaciones.
Algunos de los cambios:

Nuevos registros. El nmero de registros de propsito general se


ha incrementado de 8 en los procesadores x86-32 a 16, y el
tamao de todos estos registros se ha incrementado de 32 bits a
64 bits. Adicionalmente, el nmero de registros MMX de 128 bits
(usados para las instrucciones extendidas SIMD) se ha
incrementado de 8 a 16. Los registros adicionales incrementan el
rendimiento.

Registros XMM (SSE) adicionales: Igualmente el nmero de


registros de 128 bits (usados para las instrucciones SSE) han
aumentado de 8 a 16.

Espacio de direcciones mayor. Debido a la arquitectura de 64


bits, la arquitectura AMD64 puede direccionar hasta 16 exabytes
de memoria. Esto, comparado con los 4GB del x86-32, de los que
slo la mitad est disponible para aplicaciones en la mayora de
las versiones de Microsoft Windows, el sistema operativo
dominante en entornos domsticos. Las implementaciones futuras
de la arquitectura del AMD64 puede proporcionar hasta 2 exabytes
de memoria disponible. Si la paginacin de memoria se utiliza
correctamente, los sistemas operativos de 32 bits podran tener

acceso a algunas de las extensiones de direccin fsicas sin tener


que realizar la ejecucin en modo largo (long). Aunque la memoria
virtual de todos los programas en el modo de 32 bits est limitada
a 4 GB.

Figura 1.0

Figura 2.0

Figura 3.0

http://www.xataka.com/componentes-de-pc/arquitectura-x86-una-historiaimprescindible-de-la-informatica
http://www.intel.es/content/www/es/es/architecture-andtechnology/microarchitecture/intel-64-architecture-general.html

Anda mungkin juga menyukai