ARQUITECTURA X86. x86 es la denominación genérica dada a ciertos microprocesadores de la familia Intel, sus compatibles y la arquitectura básica a la que estos procesadores pertenecen, por la terminación de sus nombres numéricos: 8086, 80286, 80386, 80486, etc. Son comúnmente conocidos por versiones abreviadas de sus nombres, como 286 ó i286, 386 ó i386, 486 ó i486, e incluso 086, por i8086 o i8088 (su respectiva versión de 8 bits). A partir del i486, sus sucesores serán conocidos por los nombres no numéricos 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 séptima generación. Con la octava generación de procesadores compatibles x86, los x86-64, que utilizan arquitectura y bus de 64 bits, con posibilidad de múltiples núcleos, introducida por AMD y clonada por Intel, se introducen por primera vez nuevas variantes y formas, en lo que a la denominación y clasificación del procesador se refiere, tales como el nombre comercial ó tecnología del modelo, la compañía fabricante, su número de serie, la cantidad de bits a la que puede trabajar o la cantidad de núcleos por los que está compuesto, por ejemplo: Intel Core 2 Duo E2180, o lo que es lo mismo, i686 ó Intel Pentium de doble núcleo 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 núcleo a 2 Ghz; todos ellos englobados bajo el denominador común 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, además de Intel, empezaran a fabricar en masa microprocesadores basados en esta arquitectura. Estas compañías son entre otras AMD, Cyrix, NEC Corporation y Transmeta.
La arquitectura es notablemente no limpia, por mantener compatibilidad con la línea de procesadores de 16 bits de Intel, que a su vez también eran compatibles con una familia de procesadores de 8 bits. Existen dos sucesores de 64 bits para esta arquitectura. Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está basada en un modelo de arquitectura CISC (del inglés Complex Instruction Set Computing). Procesadores Intel Dentro de la familia de los procesadores que Intel ha fabricado a lo largo de su historia están los procesadores x86, entre los cuales podemos mencionar los 286, 386, 486, 586, 686.
La velocidad de los procesadores se mide en Megahertz (MHz =Millones de ciclos por segundo). Este parámetro indica el número de ciclos de instrucciones que el procesador realiza por segundo, pero sólo sirve para compararlo con procesadores del mismo tipo. Parámetros significativos de un procesador son su ancho de bus, medido en bits y la frecuencia de reloj a la que trabajan, medida en hertzios, tamaño de memoria caché medido en Kb (kilobytes).
Intel Pentium Los Intel Pentium son una gama de microprocesadores con arquitectura x86 producidos por Intel. El procesador Pentium se lanzó al mercado el 22 de marzo de 1993, sucediendo al procesador Intel 80486. Intel no lo llamó 586 debido a que no es posible registrar una marca compuesta solamente de números y a que la competencia utilizaba hasta ahora los mismos números que Intel para sus procesadores equivalentes (AMD 486, IBM 486, etc). También es conocido por su nombre clave P54C. Pentium MMX Características técnicas El procesador Intel Pentium está formado por 3,1 millones de transistores y direcciona memoria con 64 bits. Integra dos memorias caché de 8 KBytes (una para datos y otra para código) y tiene dos unidades aritmético lógicas (ALU), lo que le permite hacer tratamiento paralelo. Por tanto el Pentium puede ejecutar hasta dos instrucciones por ciclo de reloj. Está optimizado para ejecutar código de 16 bits. El Pentium se produjo en distintas versiones. Funcionaba a una velocidad de reloj de 60 MHz o 66 MHz en su lanzamiento, que se aumentó hasta los 233 MHz del último modelo producido. Las primeras versiones utilizaban el el zócalo Socket 5, mientras que las posteriores del Pentium MMX, el Socket 7. Intel Pentium II
El Pentium II es un microprocesador con arquitectura x86 diseñado por Intel, introducido en el mercado el 7 de mayo de 1997. Esta basado en una versión modificada del núcleo P6, usado por primera vez en el Pentium Pro. Los cambios fundamentales respecto a éste último fueron mejorar el rendimiento en la ejecución de código de 16 bits, añadir el conjunto de instrucciones MMX y eliminar la memoria caché de segundo nivel del núcleo del procesador, colocándola en un tarjeta de circuito impreso junto a éste.
El Pentium II se comercializó en versiones que funcionaban a una frecuencia de reloj de entre 233 y 450 MHz. La velocidad de bus era originalmente de 66 MHz, pero en las versiones a partir de los 333 MHz se aumentó a 100 MHz. Posee 32 KB de memoria caché de primer nivel repartida en 16 KB para datos y otros 16 KB para instrucciones. La caché de segundo nivel es de 512 KB y trabaja a la mitad de la frecuencia del procesador, al contrario que en el Pentium Pro, que funcionaba a la misma frecuencia. Como novedad respecto al resto de procesadores de la época, el Pentium II se presentaba en un encapsulado SEC, con forma de cartucho. El cambio de formato de encapsulado se hizo para mejorar la disipación de calor. Este cartucho se conecta a las placas base de los equipos a través de una ranura Slot 1. El Pentium II contiene 7,5 millones de transistores. Intel Pentium III
El Pentium III es un microprocesador de arquitectura i686 fabricado por Intel. Fue lanzado el 26 de febrero de 1999. Las primeras versiones eran muy similares al Pentium II, siendo la diferencia más importante la introducción de las instrucciones SSE. Al igual que con el Pentium II, existía una versión Celeron de bajo presupuesto y una versión Xeon para quienes necesitaban de gran poder de cómputo. Esta línea ha sido eventualmente reemplaza por el Pentium 4, aunque la linea Pentium M esta basada en el Pentium III. Intel Pentium 4 El Pentium 4 es un microprocesador de séptima generación basado en la arquitectura x86 y manufacturado por Intel. Es el primer microprocesador con un diseño completamente nuevo desde el Pentium Pro de 1995. El Pentium 4 original, denominado Willamette, trabajaba a 1,4 y 1,5 GHz; y fue lanzado en noviembre de 2000. Para la sorpresa de la industria informática, el Pentium 4 no mejoró el viejo diseño P6 según las dos tradicionales formas para medir el rendimiento: velocidad en el proceso de enteros u operaciones de coma flotante. La estrategia de Intel fue sacrificar el rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por segundo y una mejora en las instrucciones SSE. X86-64 (INTEL CORE DUO) Pero la verdadera revolución en los procesadores Intel se produce en julio de 2.006, con la salida al mercado de los Intel Core 2 Duo. Esta gama ha sido desarrollada no solo por la presión ejercida por AMD, sino también para poder cumplir con las especificaciones exigidas por Apple para los Mac PC. Durante los años 2.005 y 2.006, AMD había superado nuevamente a Intel en el rendimiento de sus procesadores, tanto en los procesadores de un solo núcleo
como en los de doble núcleo. La respuesta de Intel llegó en el verano de 2.006, con la presentación de los Core 2 Duo. Se trata de unos procesadores basados en la arquitectura de los Pentium M, que tienen una arquitectura mucho más eficiente que la de los Pentium 4. Como principales características, cuentan con un motor de ejecución ancho, cuatro FPUs y tres unidades SSE de 128bits, así como arquitectura de 64bits EM64T, tecnología de virtualización, Intel Enhanced SpeedStep Technology, Active Management Technology (iAMT2), MMX, SSE, SSE2, SSE3, SSSE3, y XD bit. Todos ellos con un consumo reducido (de 65 wattios).
ARQUITECTURA AMD64 Un año después que se creara la Intel Corp., AMD (Advanced Micro Devices) sale a la luz a manos de Jerry Sanders. Esta nueva empresa pretendía abrirse camino en el creciente mundo del hardware, mediante la reinvención de productos que ya estaban en el mercado. Jerry unió en su equipo a siete competentes graduados, formando así un grupo heterogéneo e innovador con ideas brillantes y ganas de comerse el mundo. Poco después ya consiguieron la financiación adecuada para comenzar a manufacturar productos, o más bien, rediseñar los ya existentes para ganar en velocidad y eficiencia; aun no disponían de los fondos necesarios para lanzar productos propios.
"Superioridad paramétrica" fueron las palabras insignia de la empresa en sus comienzos, cuando introdujeron en el mercado una garantía de calidad sin precedente en la industria. Todos los productos eran testados y fabricados bajo un estándar de la época (similar a las actuales ISO's), sin ningún costo añadido a los consumidores. En el quinto año de la empresa, ya se contaba con 1,500 empleados fabricando más de 200 diferentes productos. AMD se convirtió en la primera compañía mundial en cuanto a inversiones en investigaciones, recursos y desarrollo. A finales de 1981 ya se había logrado doblar el número de ventas del año anterior, con lo que se preveía un crecimiento casi exponencial. En los comienzos de la empresa, tuvo que realizar varios acuerdos de adhesión a su competidor Intel, con los cuales colaboraban conjuntamente, utilizaban tecnología común e intercambiaban conocimientos del sector. AMD-64. x86-64 es una arquitectura basada en la extensión del conjunto de instrucciones x86 para manejar direcciones de 64 bits. Además de una simple extensión contempla mejoras adicionales como duplicar el número y el tamaño 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 múltiples variantes del Athlon 64 y del Pentium 4 de Intel, en éste último caso bajo una versión de Intel llamada Intel 64 (antes EM64T). Descripción de la arquitectura
El conjunto de instrucciones del AMD x86-64 (renombrado posteriormente como AMD64) es una extensión 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 número de registros de propósito general se ha incrementado de 8 en los procesadores x86-32 a 16, y el tamaño de todos estos registros se ha incrementado de 32 bits a 64 bits. Adicionalmente, el número 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 número 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 sólo la mitad está disponible para aplicaciones en la mayoría de las versiones de Microsoft Windows, el sistema operativo dominante en entornos domésticos. Las implementaciones futuras de la arquitectura del AMD64 puede proporcionar hasta 2 exabytes de memoria disponible. Si la paginación de memoria se utiliza correctamente, los sistemas operativos de 32 bits podrían tener acceso a algunas de las extensiones de dirección físicas sin tener que realizar la ejecución en modo largo (long). Aunque la memoria virtual de todos los programas en el modo de 32 bits está limitada a 4 GB. Instrucción de acceso a datos relativa al puntero: Las instrucciones ahora pueden hacer referencias relativas al puntero de instrucciones (registro RIP). Esto permite crear código independiente de la posición que permite un código mucho más eficiente en librerías dinámicas y código cargado en tiempo de ejecución.
Llamadas al sistema más rápidas. Debido a que la segmentación no está soportada en el modo de 64 bits, las llamadas al sistema no tienen las latencias asociadas con almacenar y recuperar la información de segmentación ni tienen que realizar las comprobaciones necesarias de protección a nivel de segmentación. Por lo tanto, AMD ha introducido un nuevo interfaz de llamadas al sistema, al que se accede utilizando solamente la instrucción "SYSCALL". Aunque los sistemas operativos todavía pueden utilizar el sistema de interrupciones para las llamadas al sistema, en el modo de 64 bits utilizar "SYSCALL" es más rápido. Instrucciones SSE. La arquitectura AMD 64 incluye las extensiones de Intel SSE y SSE2, las últimas cpus incluyen SSE3 también. También están soportadas las instrucciones del x86 y MMX. Bit NX. El bit NX es una característica del procesador que permite al sistema operativo prohibir la ejecución del código en área de datos, mejorando la seguridad. Esta características está disponible en los modos de 32 y 64 bits, y está soportada por Linux, Solaris, Windows XP SP2, Windows Server 2003 SP1. MODOS DE FUNCIONAMIENTO
Hay dos modos primarios de operación para esta arquitectura: Modo Largo: Es el algunos BSDs, GNU/Linux (x86_64), Solaris 10, Windows XP Professional (edición x64) y Windows Vista (edición x64). Dado que el conjunto de instrucciones es el mismo, no hay una penalización importante en la ejecución del código x86. Esto no sucede en la arquitectura de Intel IA-64,
donde las diferencias en el ISA subyacente implican que la ejecución de código de 32 bits equivale a utilizar un procesador completamente diferente. En todo caso, en AMD 64, las aplicaciones de 32 bits del x86 podrían todavía beneficiarse de una recompilación a 64 bits. Los registros adicionales disponibles en el código de 64 bits, pueden ser utilizados por un compilador de alto nivel para la optimización. Usando el modo largo, un sistema operativo de 64 bits puede ejecutar aplicaciones de 32 bits y 64 bits simultáneamente. También un x86-64 incluye un soporte nativo para ejecutar las aplicaciones de 16 bits del x86. Microsoft ha excluido explícitamente el soporte para aplicaciones de 16 bits en la edición x64 de Windows XP Professional debido a los problemas de conseguir que el código de 16 bits del x86 pueda funcionar con su emulador WoW64. Modo de Herencia: El modo utilizado por los sistemas operativos de 16 bits, como MS-DOS, y los sistemas operativos de 32 bits, como Windows XP. En este modo, sólo se puede ejecutar código de 16 bits o de 32 bits. Los sistemas operativos de 64 bits como Windows XP Professional x64 y Windows Server 2003 x64 no se ejecutarán.
ARQUITECTURA POWER PC. PowerPC (usualmente abreviada PPC) es el nombre original de la arquitectura de computadoras de tipo RISC, fue desarrollada por IBM, Motorola y Apple. Los procesadores de esta familia son producidos por IBM y Freescale Semiconductor que es la división de semiconductores y microprocesadores de Motorola, siendo utilizados principalmente en ordenadores o computadores Macintosh de Apple Computer hasta el año 2006. CARACTERISTICAS Arquitectura RISC Diseñado para computadores (Mac) de Apple Distribuidos por la firma Freescale Semiconductors Sólido soporte para aplicaciones de diseño gráfico Respaldo por el Gigante Azul IBM
El PowerPC en un procesador de tercera generación de la arquitectura RISC (Reduced Instruction Set Computing). Se dice y se pronostica que el futuro de la computación está en la arquitectura RISC. Ya Luis Inzunza predecía desde
1991 que el actual Pentium sería RISC, y aunque no lo fue, se sigue diciendo que en un futuro no muy lejano Intel cambiará a RISC porque la actual tecnología CISC (Complex Instruction Set Computing) llega a sus límites ya que basa su poder de cómputo en los ciclos de reloj (Mhz) fenómeno que genera mucho calor. La arquitectura RISC tuvo claramente su razón de ser cuando ciertos estudios demostraron que el 20% de las instrucciones cumplían con el 80% de la carga de trabajo. Entonces se buscó la manera de simplificar las instrucciones de ese 20% a sumas y restas; el 20% de carga de trabajo restante sí se computa más lentamente que en la arquitectura CISC porque se simula por programática (software), pero el resultado final es una respuesta mucho más rápida al problema general. La formulita matemática que mejor se acerca para medir el desempeño de una máquina es la siguiente: t = n * c * T, donde: t: Es el tiempo requerido para la ejecución de algún programa o subrutina por parte del procesador. n: Es el número total de instrucciones contenidas en el programa o subrutina antes referidos. c: Cantidad de ciclos de reloj requeridos por el procesador para completar una instrucción "promedio" de su conjunto de instrucciones. T: Duración del ciclo de reloj. Equivalente al recíproco de la frecuencia de oscilación del reloj. Por ejemplo, para un procesador a 50 Mhz, se tiene un ciclo con duración de 20 nanosegundos (20 mil millonésimas de segundo). Debido a la simplificación de las instrucciones del 80% de la carga de trabajo, el producto n*c es menor para RISC, lo que redunda en una ejecución más rápida. Procesador CELL
El procesador Cell, es un procesador multi-núcleo diseñado por las empresas IBM, Sony y Toshiba desde el marzo del 2001. Este procesador va a ser usado inicialmente por la PlayStation 3, pero se tiene previsto usarlo también en los productos electrónicos que fabrican estas empresas, que van desde televisores de alta definición hasta ordenadores. Los componentes del procesador son: o 1 Power Processor Element (PPE). o 8 Synergistic Processor Elements (SPEs). o Bus de Interconexión de los Elementos (EIB). o Controlador de Acceso Directo a Memoria (DMAC). o 2 Controladores de Memoria Rambus XDR. o Una interfaz Rambus FlexIO (Input / Output). El PPE es el núcleo principal, este se encarga de coordinar el trabajo de todos los demás núcleos (SPEs), mediante la tecnología SMT (Simoultaneous MultiThreading). El PPC toma el control del sistema operativo y deja a los SPEs el trabajo de los demás procesos. EL PPE esta basado en la arquitectura PowerPC de 64 bits, tiene 32 KB de caché L1 y 512 KB de caché L2, tiene también tecnología de doble hilo y puede ejecutar dos instrucciones por hilo. Este procesador esta hecho como los RISC clásicos, o sea no es como los PowerPC tradicionales, por eso no tiene implementado la predicción de saltos, y la ejecución de instrucciones es en orden; lo que ahorra una cantidad considerable de transistores, pasando todo ese trabajo al compilador.
Los SPE son los procesadores auxiliares, son unidades de cálculo vectorial. Pueden ejecutar hasta dos instrucciones por ciclo. Cada SPE tiene 128 registros de 128 bits cada uno, 4 unidades de coma flotante, 4 unidades aritméticas enteras y una memoria local de 256 KB (esta memoria es SRAM como las memorias caché, pero no es una de ellas). Al no utilizar memoria caché, se simplifica el diseño del SPE. Los SPEs tienen memoria local para tomar los datos que requieren más rápidamente. El bus de interconexión de elementos, EIB, esta compuesto por 4 canales de datos de 128 bits, permite la comunicación entre todos los elementos del procesador, permite también cargar y mover 16GB de datos por segundo hacia y fuera del Cell respectivamente. Para mantener lleno este ancho de banda, el procesador Cell utiliza en sus controladores de I/O y la memoria las tecnologías diseñadas por la empresa Rambus (conocida por haber fabricado las veloces memorias RAM para Pentium 4, las RIMM, que no tuvieron aceptación en el mercado). La memoria XDR de Rambus es bastante rápida, llegando a velocidades 12 veces superiores a las memorias convencionales de 533Mhz actuales. La velocidad a la que llega es de 4.8Ghz. La tecnología FlexIO, también de Rambus, es una interface de entrada y salida bastante rápida. Esta constituido por 12 conexiones punto a punto unidireccionales de 1byte, 7 de estas conexiones son de salida y 5 son de entrada. El FlexIO puede tener una velocidad desde 400Mhz hasta 8GHz. El chip Cell ha ahorrado muchos transistores al no implementar caché para los SPEs, ejecución fuera de orden, predicción de saltos, etc., dejando todo ese trabajo al compilador; con el fin de poner mas procesadores (SPEs) lo que aumenta el poder de procesamiento, y además para que el chip sea más sencillo y gaste menos energía. Este chip es un monstruo con sus 234 millones de transistores, la mayoría dedicados al poder de procesamiento por lo anteriormente expuesto, y como utiliza muchos "cerebros", la generación de calor se disemina por todo el procesador.
Otras características de este procesador son: o Fabricación en 90nm (nanómetros). o Frecuencia de trabajo desde 3.2 GHz. o 1,3 Voltios. o Operación a 85ºC con un disipador. o El prototipo tiene 221mm2. o Utiliza la tecnología SOI (Silicio sobre aislante) Otras características que tiene el Cell es que es escalable, fue diseñado para poder trabajar con otros Cell. Un PPC de un Cell tiene el potencial de comunicarse con un PPC o un SPE de otro Cell que se encuentre en la misma placa madre, en la misma red o en cualquier parte del mundo si ambos estos conectados a Internet. ARQUITECTURA DEC-ALPHA. DEC Alpha es una arquitectura diseñada por DEC e introducida en 1992 bajo el nombre AXP, como reemplazo a la serie VAX. Cuenta con un set de instrucciones RISC de 64 bits especialmente orientada a cálculo de punto flotante. Una de las arquitecturas de computadoras existentes. La arquitectura Alpha se caracteriza por seguir la filosofía RISC (Conjunto reducido de instrucciones). El primer procesador que hizo gala de la tecnología Alpha fue el 21064. La organización de sus registros es de uso general con una arquitectura que se puede encuadrar como de registro-registro. Esto hace que la mayoría de sus instrucciones operen sobre los registros, haciendo uso de la memoria RAM sólo para instrucciones de carga y almacenamiento. La razón es que se intenta minimizar los accesos a memoria, puesto que suponen el cuello de botella para los procesadores actuales. La longitud de palabra de los registros es de 64 bits, ya sea desde el PC (contador de programa), pasando por los registros de enteros, punto flotante, etc.
Está preparado para manejar datos de 64 bits, pero también puede manejar datos de 32, 16 bits y por último de 8 bits. ARQUITECTURA MIPS. MIPS, acrónimo de Microprocessor without Interlocked Pipeline Stages, es una arquitectura de procesadores tipo RISC desarrollada por MIPS Computer Systems Inc. Los diseños de MIPS se usan en las estaciones de trabajo de SGI, y tienen mucha implantación en sistemas empotrados, dispositivos que soportan Windows CE, y en los routers de Cisco. La consola Nintendo 64, la Sony PlayStation, la Sony PlayStation 2, y la consola portátil Sony PSP usan procesadores MIPS. A finales de los 90, se estimó que uno de cada tres chips tipo RISC que salieron al mercado estaban basados en MIPS. Las primeras implementaciones de MIPS fueron de 32 bits (generalmente con caminos de datos y registros internos también de 32 bits), mientras que las versiones posteriores eran de 64 bits. Se ha retocado el juego de instrucciones del procesador hasta un total de cinco veces, siempre conservando la compatibilidad hacia atrás. Estas versiones son conocidas como MIPS I, MIPS II, MIPS III, MIPS IV, y MIPS 32/64. La última, MIPS 32/64, define también instrucciones de control de registros. También hay disponibles otras extensiones, incluyendo MIPS-3D que es un tipo de órdenes de coma flotante para implementar las funciones 3D más comunes, MDMX que es un set de instrucciones SIMD para cálculo de enteros usando los registros de 64 bits destinados a números en coma flotante, MIPS16 que añade compresión al juego de instrucciones haciendo que los programas ocupen menos espacio, a las que se suma la reciente adición de MIPS MT, que añade nuevas capacidades de multithreading similares al HyperThreading de los últimos procesadores de Intel.
Un procesador MIPS consiste en una unidad de procesamiento entero (CPU) y una colección de coprocesadores que llevan a cabo tareas auxiliares u operan sobre otro tipo de datos tales como punto flotante. Los sistemas basados en procesadores MIPS típicamente dividen la memoria en tres partes. La primera parte, segmento de texto (programa) se encuentra en la parte baja de la memoria. Comienza en la dirección 400000 hex y es donde se almacenan las instrucciones del programa. Encima del segmento de texto, encontramos el segmento de datos que a su vez se divide en área Estática y Dinámica. El área estática comienza en la dirección 10000000 hex . Contiene objetos cuyos tamaños son conocidos por el compilador y existen mientras ejecuta el programa. El área dinámica es asignada a medida que es solicitado a través de malloc (por ejemplo, lenguaje C).
La tercera parte es el segmento STACK (pila) se encuentra a partir de la dirección 7fffffff hex y crece en sentido contrario. El tamaño de los registros en la arquitectura MIPS es de 32 bits. Al conjunto de 32 bits se le llama palabra (word). MIPS posee 32 registros numerados entre 0 y 31, y algunos de ellos poseen funciones específicas. Este número bajo de registros se debe a un principio en la tecnología de Hardware: P1: Pequeño es mejor. Un número grande de registros incrementa el tiempo de ciclo de reloj porque la señal le toma más tiempo en viajar. ARQUITECTURA DE PROCESADORES. CISC La tecnología CISC (Complex Instruction Set Computer) nació de la mano de Intel, creador en 1971 del primer microchip que permitiría el nacimiento de la informática personal. Más concretamente, sería en 1972 cuando aparecería el 8080, primer chip capaz de procesar 8 bits, suficiente para representar números y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar número y letras nacería la cuarta generación de ordenadores, la de los conocidos como PC u ordenadores personales. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la actualidad la mayoría de los sistemas CISC de alto rendimiento
implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas generalmente microinstrucciones. La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC. La microprogramación significa que cada instrucción de máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj, al menos uno por microinstrucción. Es así entonces como los chips CISC utilizan comandos que incorporan una gran diversidad de pequeñas instrucciones para realizar una única operación. Cuando el sistema operativo o una aplicación requiere de una de estas acciones, envía al procesador el nombre del comando para realizarla junto con el resto de información complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC varían de tamaño y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder así reservárselo en la memoria interna. Además, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema. Entre las bondades de CISC destacan las siguientes: Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creación de sftware. Mejora la compactación de código. Facilita la depuración de errores. Ejemplo de microprocesadores basados en la tecnología CISC: MIPS, Millions Instruction Per Second.
PA-RISC, Hewlett Packard. SPARC, Scalable Processor Architecture, Sun Microsystems. POWER PC, Apple, Motorola e IBM.
RISC. (Reduced Instruction Set Computer). Buscando aumentar la velocidad del procesamiento se descubrió en base a experimentos que, con una determinada arquitectura de base, la ejecución de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de encapsulado. La idea estuvo inspirada también por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta.
Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones complejas. La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo más rápidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. Así, las instrucciones más breves y sencillas de un procesador RISC son capaces de ejecutarse mucho más aprisa que las instrucciones más largas y complejas de un chip CISC. Sin embargo, este diseño requiere de mucha más RAM y de una tecnología de compilador más avanzada. Las características comunes a todos los procesadores RISC, fuente de sus capacidades de altas prestaciones, son: Modelo
de
conjunto
de
instrucciones
Load/Store
(Cargar/Almacenar). Sólo las instrucciones Load/Store acceden a memoria; las demás operaciones en un RISC, tienen lugar en su gran conjunto de registros. Ello simplifica el direccionamiento y acorta los tiempos de los ciclos de la CPU, y además facilita la gestión de los fallos de paginas (page faults) en entornos de memoria virtual. Además, permite un elevado nivel de concurrencia a consecuencia de la independencia de las operaciones de Load/Store de la ejecución del resto de las instrucciones. Arquitectura no destructiva de tres direcciones. Los procesadores CISC destruyen la información que existe en alguno de los registros, como consecuencia de la ejecución normal de instrucciones; esto es debido a su arquitectura de dos direcciones, por la cual el resultado de una operación sobrescribe uno de los registros que contenía a los operandos. Por contra, las instrucciones RISC, con tres direcciones, contienen los campos de los dos operandos y de su resultado. Por lo tanto, tanto los operandos origen como el destino, son mantenidos en
los registros tras haber sido completada la operación. Esta arquitectura "no destructiva" permite a los compiladores organizar las instrucciones de modo que mantengan llenos los conductos (pipelines) del chip, y por tanto reutilizar los operandos optimizando la concurrencia. Instrucciones simples, de formato fijo, con pocos modos de direccionamiento. Las instrucciones simples reducen de manera muy significativa el esfuerzo para su descodificación, y favorecen su ejecución en pipelines. Las instrucciones de longitud fija, con formatos fijos, implican que los campos de códigos de operación (opcodes) y de los operandos están siempre codificados en las mismas posiciones, permitiendo el acceso a los registros al mismo tiempo que se está descodificando el código de operación. Todas las instrucciones tienen una longitud equivalente a una palabra y están alineadas en la memoria en límites de palabra (word boundaries), ya que no pueden ser repartidas en pedazos que puedan estar en diferentes páginas. Ausencia de microcódigo. El microcódigo no se presta a la ejecución en ciclos únicos, ya que requiere que el hardware sea dedicado a su interpretación dinámica. La programación en microcódigo no hace que el software sea más rápido que el programado con un conjunto de instrucciones simples. Todas las funciones y el control, en los procesadores RISC, están "cableados" (hardwired), para lograr una máxima velocidad y eficiencia. Ejecución en conductos (pipelined). Las instrucciones simples, de formato fijo y ciclo único permiten que las diferentes etapas de los ciclos de ejecución (búsqueda o fetch, descodificación, ejecución, y escritura del resultado o result write-back) para instrucciones múltiples, se puedan realizar simultáneamente, de un modo más simple y eficaz. Ejecución en ciclos únicos (single-cycle). El resultado directo de los conjuntos de instrucciones que ofrecen los procesadores RISC, es que cada instrucción puede ser ejecutada en un único ciclo de la CPU. Esto invalida la creencia de que las microinstrucciones en microcódigo, creadas para ser ejecutadas en un solo ciclo de procesador, son más rápidas que las instrucciones del lenguaje ensamblador. Ya que el caché
esta construido partiendo de la misma tecnología que el almacenamiento de control del microprograma, una única instrucción puede ser ejecutada a la misma velocidad que una microinstrucción. La ejecución en ciclos únicos también simplifica la gestión de las interrupciones y los conductos (pipelines). Entre las ventajas de RISC tenemos las siguientes: La CPU trabaja mas rápido al utilizar menos ciclos de reloj para ejecutar instrucciones. Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones. Cada instrucción puede ser ejecutada en un solo ciclo del CPU Ejemplo de microprocesadores basados en la tecnología RISC: Intel 8086, 8088, 80286, 80386, 80486. x86. Motorola 68000, 68010, 68020, 68030, 6840.