JAVA: El impacto del lenguaje en la telefonia celular

Desde su aparición en el mundo de la telefonia celular ha creado estragos desde aplicaciones portables hasta el mundo de los juegos...lo que pido a los usuarios es que por favor dejen comentarios sobre el tema, links o algo que pueda relaionar con este tema...tengase en cuenta que su aporte sera tomado en cuenta para un proyecto de metodologia de la investigación que sera presentado en CUATRO meses en la Universidad Tenologica Nacional.

Desde ya muchas gracias Taringueros!!!



Un poco de historia para entrar en el tema:


Conozca más sobre la tecnología Java

La tecnología Java se creó como una herramienta de programación en una pequeña operación secreta y anónima denominada "the Green Project" en Sun Microsystems en el año 1991.

El equipo secreto ("Green Team", compuesto por trece personas y dirigido por James Gosling, se encerró en una oficina desconocida de Sand Hill Road en Menlo Park, interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses.

Intentaban anticiparse y prepararse para el futuro de la informática. Su conclusión inicial fue que al menos en parte se tendería hacia la convergencia de los dispositivos digitales y los ordenadores.

El resultado fue un lenguaje de programación que no dependía de los dispositivos denominado "Oak".

Para demostrar cómo podía contribuir este nuevo lenguaje al futuro de los dispositivos digitales, el equipo desarrolló un controlador de dispositivos de mano para uso doméstico destinado al sector de la televisión digital por cable. Por desgracia, la idea resultó ser demasiado avanzada para el momento y el sector de la televisión digital por cable no estaba listo para el gran avance que la tecnología Java les ofrecía.

Pero poco tiempo después Internet estaba listo para la tecnología Java y, justo a tiempo para su presentación en público en 1995, el equipo pudo anunciar que el navegador Netscape Navigator incorporaría la tecnología Java.

Actualmente, a punto de cumplir los 10 años de existencia, la plataforma Java ha atraído a cerca de 4 millones de desarrolladores de software, se utiliza en los principales sectores de la industria de todo el mundo y está presente en un gran número de dispositivos, ordenadores y redes de cualquier tecnología de programación.

De hecho, su versatilidad y eficiencia, la portabilidad de su plataforma y la seguridad que aporta, la han convertido en la tecnología ideal para su aplicación a redes, de manera que hoy en día, más de 2.500 millones de dispositivos utilizan la tecnología Java.

Más de 700 millones de ordenadores
708 millones de teléfonos móviles y otros dispositivos de mano (fuente: Ovum)
1000 millones de tarjetas inteligentes
Además de sintonizadores, impresoras, web cams, juegos, sistemas de navegación para automóviles, terminales de lotería, dispositivos médicos, cajeros de pago en aparcamientos, etc.
Hoy en día, puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet y superordenadores científicos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes.

El mejor modo de conocer todas estas aplicaciones es accediendo a java.com, un lugar fundamental para realizar compras y conocer los productos que, asimismo, constituye un recurso de información central para empresas, consumidores y desarrolladores de software que utilicen la tecnología Java.

Por qué los desarrolladores de software eligen la tecnología Java

El lenguaje de programación Java ha sido totalmente mejorado, ampliado y probado por una comunidad activa de unos cuatro millones de desarrolladores de software.

La tecnología Java, una tecnología madura, extremadamente eficaz y sorprendentemente versátil, se ha convertido en un recurso inestimable ya que permite a los desarrolladores:
Desarrollar software en una plataforma y ejecutarlo en prácticamente cualquier otra plataforma
Crear programas para que funcionen en un navegador Web y en servicios Web
Desarrollar aplicaciones para servidores como foros en línea, tiendas, encuestas, procesamiento de formularios HTML, etc.
Combinar aplicaciones o servicios basados en la tecnología Java para crear servicios o aplicaciones totalmente personalizados
Desarrollar potentes y eficientes aplicaciones para teléfonos móviles, procesadores remotos, productos de consumo de bajo coste y prácticamente cualquier dispositivo digital

Fuente: http://www.java.com/es/about/



Actualizació del post.....08/04/08


TECNOLOGÍA DE MICRPROCESADORES PARA LENGUAJE JAVA.

René Ortiz Mora.

C.A. La Electricidad de Caracas.

Departamento de Información Geográfica.

Apto. 2299 Caracas

1010-A Venezuela

Resumen.

La tecnología Java desarrollada por Sun Microsystems Inc. ha tomado por asalto al mundo de la programación. Simple, seguro y pequeño, el codigo orientado al objeto de Java promueve interfaces claras y reutilización del código, mientras su naturaleza distribuida hace a esta una selección natural para aplicaciones en red. Sun Microelectronics, una deivisión de Sun Microsystems, ha llevado el fenómeno un paso más allá, para plasmarlo en silicon. Ejecución directa de código Java sobre un microprocesador optimizado para estas aplicaciones, elmina los cuellos de botella que han restringido su rendimiento. El diseño PicoJava I permite e;evar el rendimiento de las aplicaciones Java orientando sus operaciones de acuerdo a la especificación de la Máquina Virtual Java. Adoptando laas técnicas sofisticadas de operaciones de plegado y mecanismos de "dribbling", se explotan las ventajas de la arquitectura basada en pila, eliminando la tradicional ineficiencia de la misma.



Abstract.

The Java technology developed by Sun Microsystems, Inc. has taken the programming world by storm. Simple, secure and small, Java's object-oriented code promotes clean interfaces and software reuse, while its distributed nature makes it a natural choice for network applications. Sun Microelectronics, a division of Sun Microsystems, has taken the Java phenomenon one step further by casting it into silicon. Direct execution of Java, on a processor optimized for these applications, eliminates bottlenecks that have restricted performance.picoJavaI's design enables outstanding performance for Java applications by tailoring its operations to the Java Virtual Machine specification. By adopting the progressive folding operation and dribbling mechanism, the advantages of a stack architecture are realized without the traditional inefficiency.



INTRODUCCIÓN.

Java arrancó como un proyecto de investigación en 1990, realizado por SUN Microsystems. La intención original era encontrar la manera de mejorar el software de aplicación existente en aquel entonces, el cual era dificil de integrar, actualizar y extender. La razon principal de estos problemas era la diversidad de familias de microprocesadores y CPU's usados por los fabricantes de hardware, resultando en un espacio limitado de aplicaciones por plataforma y practicamente un anclaje, software-plataforma. Era apremiante entonces, la aparición de un lenguaje para desarrollo de software tan flexible, que fuera capaz de armonizar con diferente hardware, tener excelente desempeño y ser pequeño y compacto de manera de correr en condiciones "estrechas". Con estos requerimientos en mente, el equipo "Green" de Sun, revisó los lenguajes existentes para aquel entonces, encontrando que ninguno de ellos cumpliría la tarea. El equipo decidió crear un nuevo lenguaje, especificamente diseñado para trabajar en las condiciones antes expuestas. El resultado fué un lenguaje de desarrollo orientado al objeto e independiente de la plataforma, que recibió el nombre código " Oak". "Oak" fué basado en C++, ya que se habia acordado que si un nuevo lenguaje iba a ser aceptado por los actuales desarrolladores de software, este necesitaba ser "similar" a los lenguajes existentes.C++ era considerado un buen marco de partida, posiblemente el más conocido y aceptado lenguaje de desarrollo.

"Oak" fué considerado un proyecto interesante pero sin aplicacion, por lo que Sun dirigió las gestiones del equipo "Green" hacia una compañía llamada First Person en asociacion con Time Warner, para el desarrollo de los equipos y software a ser utilizado en los sistemas de video por demanda. Esta y otra asociación con 3DO fracasó en 1993, justo cuando el NCSA (National Centre for Supercomputing Applications) desarrolló una aplicación llamada Mosaic, lo que implicaba el nacimiento de una nueva tecnología de internet conocida como el World Wide Web. El equipo de desarrollo de Sun encontró entonces que un lenguaje de programación independiente de la plataforma, que requería una pequeña cantidad de recursos era el ideal para programar sobre internet, lo cual hizo desplazar el enfoque de "Oak" desde los productos de consumo hacia el World Wide Web (un viaje con pronto retorno). El cambio de enfoque trajo consigo un cambio de nombre: Java.

Java, el lenguaje.

Tomando directamente la definición que Sun hace del lenguaje Java, podemos decir muchas cosas.

" Un lenguaje simple, orientado al objeto, adaptado al entorno de red, interpretado, robusto, seguro, neutral ante las arquitecturas, portable, de alto performance, multi-enlace y dnámico."

Java fue diseñado de manera que fuese facilmente programado, basado en C++, elimino la redundancia e inconsistencias, mantuvo la riqueza de su sintaxis y la mejoró, eliminó los apuntadores (poco entendidos y mal usados), permitiendo el acceso de los programadores de manera poco traumatica , o sea, simple. Uso el paradigma de orientación al objeto, uno de los mas avanzados y de mayor poder en el entorno de programación. Diseñado para habitar en ambientes distribuidos, se dotó a Java de librerías de rutinas para interactuar con el set de protocolos basados en TCP/IP, adaptado al entorno de red. Cuando el codigo de Java es compilado genera un archvo de objeto de arquitectura neutral, capaz de ser ejecutado sobre cualquier procesador con la implementación de un sistema de tiempo de ejecución para Java. El archivo objeto qe es producido en tiempo de compilación es llamado "code-byte"; para ser ejecutado requiere la presencia de una capa de traducción conocida como interprete, que convierte el codigo neutro "byte-code" en código de máquina específico para la plataforma en que el programa esté siendo interpretado. Robusto, diseñado para reducir al máximo los errores de programación, comenzando con la remoción de punteros, cuyo uso incorrecto puede causar sobre-escrituras o desbordamiento de memoria. Java usa el concepto de Colecta de Basura (garbage collection), para chequear sistematicamente que la memoria asignada sea des-asignada cuando no se valla a usar más. Además está compuesto por una sintaxis con chequeo intensivo y en línea, todas las variables y métodos deben ser explicitamente definidos antes de ser usados. Para la difícil misión d ser un lenguaje de programación seguro, Sun incluyó aspectos como negar acceso a los métodos tradicionales de intrusión, virus y violaciónes de código. Las miniaplicaciones Java (Applets) son tratadas como entes sin confianza (untrusted), de manera que no puedan accesar los recursos vitales del sistema. Su intima relación con los protocolos de red, permitieron insertar chequeos extra en los ambientes de interconexión, puertos y sockets en tiempo de ejecución. Sun, no solo hizo a Java capaz d correr en diferentes arquitecturas, se aseguró de que todo el código fuera independiente de la plataforma, incluso los de interacción con los perifericos, haciéndolo total y verdaderamente portable. De alto desempeño, aunque no es tan rápido como el de los lenguajes totalmente compilados, debido a que la ejecución de los mismos no presenta la fase de interpretación, Java es el más rápido de los lenguajes interpretados qua actualmente corra sobre servidores. Java evoluciona hacia un lenguaje multi-enlace de ejecución acercándolo a la ejecución real de múltiples tareas, debido al soporte desincronización incluido en su núcleo, aliviando las labores de prueba de errores que tradicionalmente el programador tenía que incluir en el código. Dinámico, Java fué diseñado para ser dinamicamente extendible, lo cual es posible mediante interconexiones de librerías, cuando el código es interpretado y no compilado. Las librerías son cargadas cuando sean necesarias, aún a través de la red, lo cual permite incorporar nuevas librerías a los servidores sin que los clientes se vean afectados.

Byte-Code.

Cuando el código fuente Java es compilado, se genera el archivo de objeto neutral "byte-code", en lugar de un archivo binario de una plataforma específica. El "byte-code" es un archivo de objeto neutral a la arquitectura, el cual puede ser ejecutado en cualquier sisteme qu tenga un intérprete Java y un sistema Java de tiempo de ejecución. El interprete es requerido para convertir el código neutro de objeto a las instrucciones específicas de la máquina; por otra parte el sistema de tiempo de ejecucuón es requerido para ejecutar y desplegar alguna salida. El interprete y el sistema de tiempo de ejecución son conocidos en conjunto como la Máquina Virtual Java ó JVM (Java Virtual Machine). La JVM crea una capa entre el código y la arquitectura y de esta manera aisla al "byte-code" del hardware.

Esta capa de traducción hace posible que el código de Java sea independiente de la plataforma y pueda correr inalterado sobre cualquier sistema que tenga su propia implementación de JVM.

Familia de Procesadores Java.

En Febrero de 1996, Sun, dando una muestra de fe absoluta en la tecnología Java y para apoyar de manera enérgica su propuesta de la computadora de red, proyecto en conjunto con ORACLE Corp, libera su tecnología de procesadores especialmente concebidos para ejecutar programas en Java.

La familia de procesadores Java cocnsiste en tres líneas de microprocesadores: picoJAVA, microJAVA y UltraJAVA, los cuales varían en precio, performance y aplicación.

El núcleo picoJAVA está diseñado para obtener las implementaciones en silicon con mejor relación precio/desempeño soportando la especificación de la Máquina Virtual Java. Autorizaciones para el uso del núcleo de bajo costo, harán posible procesadores optimizados para Java, para ser usados en las computadoras de red, teléfonos celulares, impresoras y otros mercados de consumo y de periféricos. Las primeras licencias para el uso de la tecnológía picoJAVA comenzaron su amplia distribución en la industria a finales de 1.996.

Los productos de nivel microJAVA, son basados en la tecnología picoJAVA, adicionando funciones de control, comunicaciones, manejo de memoria y entrada salida para aplicaciones específicas. Apuntando tanto a mercados de propósito general como aplicaciones específicas de la industria, los procesadores microJAVA oscilaran entre los 25 y 100 $; estos chips serán ideales para una gran cantidad de dispositivos basados en la red, tales como controladores y equipos de telecomando, así como productos de consumo tales como estaciones de juegos y de servicio(impresión, reservacion, directorios y centros de correo). Las primeras aplicaciones de estos procesadores están apareciendo en el mercado.

La lína de procesadores UltraJAVA, incluirán a los procesadores Java más rápidos. Esta línea dispondrá de avanzados circuitos gráficos y características de las mejoras de la próxima generación del set de instrucciones VIS de Sun Microelectronics. Los procesadores UltraJAVA apuntarán hacia procesamiento de gráficos avanzados en 3D y otras aplicaciones multimedia intensivas.

El Núcleo de Tecnología picoJAVA.

El objetivo es claro, ejecución directa del código neutro de objeto. Hasta ahora, el código ha sido corrido de dos maneras, a través de un intérprete (fig 1, caso 1), el cual retrasa considerablemente la ejecución, o con un compilador JIT (just In Time), el cual puede acelerar la ejecución pero expande el tamaño del código por un factor de tres o más, un grn problema para aplicaciones encajadas on sus restricciones de memoria (fig 1. caso 2).

La arquitectura del chip Java diseñada por Sun Microelectronics produce microprocesadores optimizados para Java que mejoran el desempeño general y minimizan el uso de memoria. Para acelerar sus resultados, el núcle picoJAVA ejecuta directamente el conjunto de instrucciones Java, eliminando la necesidad de un interprete o un compilador JIT (fig. 1 caso 3). El procesador es concebido con los requerimientos de Java en mente, ofreciendo un cumplimiento del 100% con la especificación de la Máquina Virtual Java, superando en el procesamiento de software Java a las plataformas basadas en otras arquitecturas comparables como Intel.

La Máquina Virtual Java.

La especificación JVM como ente que ejecuta el software Java, detalla el conjunto de instrucciones de Java, tipos de datos, operaciones de pila, grupo de constantes, areas de método, agrupación de data en tiempo de ejecución y el formato de archivo de clase. Los tipos de dato incluyen byte, short, integer (entero), long, float, double, char, object y direcciónde retorno (return address). Todos los operadores tienen ocho bits, pero son seguidos de unnúmero variable de operandos (0, 1 , 2, 3, etc). Hay 200 operadores asignados, 25 variaciones rápidas y tres reservadas. Los codigos intermedios de java (byte-codes) son relativamente pequeños, no hay espeificaciones de registros las variables locales son accesadas en realación a un apuntador base, lo cual resulta en un códigomuy compacto. La instrucción promedio tiene solamente 1.8 bytes, en comparación a los 4 bytes requeridos en la mayoría de los sistemas RISC.





Figura 1. Opciones de Ejecución del código Java.

Semejanzas con la aequitectura RISC.

Para diseñar un procesador que efectivamente implemente la JVM, la arquitectura picoJava I en Sun Microelectronics, se contaba con la experticia en el desarrollo de RISC, incluyendo metodología, procesos y técnicas de circuitos desarrolladas por Sun en los últimos 15 años. Orientado para el máximo desempeño en tiempo de ejecución, la arquitectura picoava I es simple, como se muestra en la figura 2. Se prestó mucha atención para hacer el núcleo fácil de personalizar para aplicaciones empaquetadas, con tamaños de cache variable y con o sin unidad de punto flotante junto con una unidad estandard de enteros.

La arquitectura picoJava I incluye un bus estilo RISC y un grupo de comandos de ación directa. Solamente aquellas instrucciones que directamente mejoren la ejecución de Java son implementadas en hardware. La mayoría de las instrucciones son ejecutadas de uno a tres ciclos. De aquellas instrucciones no implementdas directamente en hardware, aquellas que sean críticas para el desempeño del sistema son ejecutadas a través de microcodigo o máquinas de estado,mientras que las restantes son atrapadas y emuladas. Esta jerarquía de instrucciones libera un excelente desempeño en hardware de diseño dirigido a la aplicación.



Fig. 2.- Diagrama de bloques de PicoJava I.

El byte-code de Java (codigo objeto neutral) es guardado en un caché cuyo rango va de 0 a 16 kbytes. Este cache directamente mapeado tiene un tamaño de ocho bytes menos comparado con otros procesadores RISC pero debido a que las instrucciones de Java son mas cortas, el resultado final es aproximadamente el mismo. Un buffer de 12 bytes desacopla el cache de instrucción desde la unidad principal de ejcución. Un máximo de cuatro bytes puede ser escrito dentro del buffer en un solo ciclo, mientras que cicnco bytes pueden ser leídos desde el mismo. Debido a que la mayoría de las instrucciones tienen en promedio 1.8 bytes, el procesador puede leer mas de una instrucción en un solo ciclo. Todas las instrucciones consisten de 8 bits de código de operación y cero o mas bytes operandos como es definido en la especificación de la máquina virtual Java. Hasta cinco bytes en el encabezado del buffer de instrucciones pueden ser decodificados y enviados hacia el proximo estado de la pila, para su ejecución en un solo ciclo.

Existe una pila de cache incorporada en el chip usada por la unidad de ejecución para accesar los operandos necesitados por las unidades funcionales, el cual es equivalente a un archivo de registro usado en la mayoría de los diseños RISC. La pila contiene tanto dato enteros como de punto flotantes y no hay sobrecarga por el paso de operandos de hacia y desde la pila para cada unidad. Esto facilita el movimiento de data entre las unidades de punto flotante y de enteros.

La secuencia simple de 4 etapas.

La secuencia RISC en el diseño picoJava I tiene cuatro etapas que corresponden con los caminos fundamentales necesariospara la ejecución, muy similar a otras secuencias de RISC (fig. 3).

Las instrucciones de cómputo solo operan sobre la data de la pila y nunca sobre la data en memoria. Esto facilita la secuencia de computo e instrucciones de memoria. El cache de data puede ser accesado si es necesario en el tercer paso de la secuencia e ejecución. En una arquitectura basada en pila, la instrucción siguiendo una carga casi siempre depende de la data retornada por la carga. En consecuencia, el acceso a la data del cache no es secuencial.



Fig. 3.- Secuencia simple de 4 pasos de PicoJava I.

La secuencia de picoJava I, está también mejoradapara acelerar la ejecución de programas con orientación al objeto. Por ejemplo, incluye soporte para invocación a métodos junto con soporte para dismular la carga de variables locales. Mas aun, para mejorar el tiempo de ejecución, la secuencia tiene soporte para sincronización de tareas y una gran variedad de técnicas sofisticadas de "recolección de basura" basadas en barreras de escritura.

El cahe de data, como el cache de instrucciones, puede variar de cero a 16 Kbytes. Para mejorar el promedio de impactos, esta memoria cache esta diseñada como un grupo asociativo bidireccional de memoria. El camino de conexión entre la memoria cache de data de picoJava I y la maquina secuencial es de 32 bits. Un bus de entrada salida y unidades de interfaz de memoria sisrven como el enlace entre el núcleo picoJava I y cualquir otras interfaces que podrían residir en el mismo ambiente.

En resumen, esa arquitectura es simple y flexible, soportando un amplio rango de posibles aplicaciones, desde bajo costo hasta alto desempeño. Con el cache de datos configurable y la opción de incluir o excluir la unidad de punto flotante, los diseñadores para propósitos específicos pueden personalizar el núcleo del procesador para cumplir con su área específica, desempeño y requerimientos de potencia. Pr ejemplo, si se eliminara la unidad de punto flotante de una unidad picoJava con 4 Kb. de cachede instrucciones y 8 Kb. de cahe de data, se reduciría en un 20 % el area total del microprocesador.

Novedosa pila en hardware.

PicoJava I implementa una pila en hardware que soporta directamente la arquitectura basada en en pila de la Máquina Virtual Java. Las primeras 64 entradas en la pila estarán contenidas en la pila de cache del microprocesador picoJava. Todas las operaciones sobre la data en el picoJava I son realizadas a través de la pila de caché. La data del grupo de constantes y de las variables locales es empujada dentro de la pila, entonces las instrucciones accesan sus operandos desde dicha pila.

La pila del PicoJava I es principalment usada como un repositorio de información para las llamadas de métodos (fig. 4). La JVM un marco de métodopara cada método invocado en tiempo de ejecución. El marco contiene los parámetros para el métoso y las variables locales; también incluye el marco de estado el cual documenta la información pertinente al retorno luego de la ejecución de un método. El lenguaje Java tipicamente es basado en métodos, por lo que la orientación a la invocación de los mismos que desplega picoJava mejora enormemente el rendimiento del código.En el momento en que la orientación a objetos sea mejor dominada por los desarrolladores, la cantidad de llamadas a métodos se incrementará, para lo cual esta aruitectura estará preparada.

La pila del picoJava estáconstruida de manera que permite el solape entre métodos, permitendo el paso directo de parámetros entre los mismos, sin requerir copia alguna. Algunos marco de métodos pueden estar contenidos en la pila del cache al mismo tiempo para su rápido acceso. Para asegurar que la sobrecarga no ocurra, picoJava I se anticipa para el crecimiento de la pila en el fondo. Cuando haya espacio para la data en la pila del caché, entonces los valores serán restaurados.





Fig. 4.- Arquitectura de pila de PicoJava I.

Sun ideó un método ingenioso para almacenar en caché los datos si todos los registros están llenos. Por ejemplo, durante la ejecución de un método A, se invoca al método B, el archivo de registros de picoJava reserva los registros restantes y lleva al registro 1 si se necesita espacio adicional a los 64 registros existentes. Ahora, después que la ejecución del método B termina, retornándose a la ejecución del método A, surge algo que Sun llamó el "Dribbler" ó escurrridizo para restaurar los registros del método A. Este agente lee y escribe de manera permanente los datos de los 64 registros a memoria. Cuando el método B se apodera de los registros adicionales, el "Dribbler" ya ha copiado los datos (si no lo ha hecho, el procesador Java hará una pausa en las labores de procesamiento para hacerlo). Cuando el método B termina su ejecución y libera los registros, el "Dribbler" restaura los datos en la pila, regresando el método A a su estadoanterior (fig. 5).



Fig. 5.- Mecanismo de Dribbling de la pila.



La pila del caché es manejado como un bfer circular, el cual asegura que la pila crezca y se achique de manera predecible para evitar desbordamiento o sobreescritura. El almacenamiento y recuperación de los datos hacia y desde el cahe de data es disparado por las marcas de agua del mecanismo "Dribbling".

Acelerando el manejo de la pila.

En la mayoría de las implementaciones de la pila, las operaciones en la misma requieren diferentes pasos, impactando el rendimiento en la ejecución de la instrucción. Los operandos son accesados desde la pila con los necesarios pasos de poner y sacar. Además el acceso está limitado a la primra porción de la pila, si el valor deseado no está alli, es necesario mover el dato y guardarlo en un área de veriable local. Eliminando estos pasos extra, el rendimiento de la arquitectura típica de pila se dispara.



Fig. 6.- Muestra de Instrucciones Compuestas sin usar plegado.

Para incrementar su rendimiento en operaciones de pila, picoJava I apuesta en una operación de plegado, que usa un acceso ciclico simple aleatorio a la pila. La idea es que una instrucción que copia data de una variable local al tope de la pila es seguida inmediatamente por una instrucción que consume esa data. El decodificador de instrucciones detecta esta situación y efectivamente pliega las dos instrucciones, realizando la operación como si la variable local ya estuviera en el tope de la pila. Las simulaciones muestran que la operación de plegado elimina hasta el 60% de la ineficiencia heredada de la arquitectura basada en pila (fig. 6). En la figura 6 se revela que la mayor parte del tiempo se pierde en esoeras producidas por los movimientos de pila y no por las operaciones propiamente. Este gran porcentaje de tiempos de espera es reducido usando las operaciones de plegado como se manifiesta en la figura 7. Como resultado se obtiene una distribución de instrucciones más compacta que la creada por un procesador RISC de propósito general.



Fig. 7. Mezcla de instrucciones compuestas usando plegado.



Cuestion de rendimiento.

El rendimiento de picoJava I claramente muestra que el tiempo y el esfuerzo dedicados al diseño de este procesador bien vale los resultados. Recientes mediciones muestran que el picoJava I es de 15 a 20 veces más rápido que un 486 con un interprete, y 5 veces más rápido que un pentium con un compilador justo a tiempo (JIT) a iguales frecuencias de reloj (ver fig. 8).





Fig. 8.- Rendimiento PicoJava.

Conclusión.

El microprocesador para la ejecución de Java aún está en desarrollo, su aparición en el mercado lo ha ubicado en productos de consumo y pequeños dispositivos, como PDA's, tarjetas inteligentes (1), teléfonos, etc. Antes de que aborde un segmento mayor del mercado, deberá madurar y Sun tendrá que difundir su especificación entre los fabricantes de estaciones de trabajo de mediano rango. En el segmento de alto rendimiento, los desarrollos orientados especialmente para Java, no vencerán muy facilmente a un sistema RISC (2) con un compilador JIT.

Referencias.

www.sun.com/microelectronics/whitepapers

babbage.cs.qc.edu/Java/tutorial

FUENTE DE INFORMACION DE ACTUALIZACION DEL DIA 08/04/2008:

http://neutron.ing.ucv.ve/revista-e/No3/Java.htm




COMERNTAR NO CUESTA NADA!!!!!!!!!!!

Fuentes de Información

Dar puntos
30 Puntos
Votos: 0 - T!score: 0/10
  • 0 Seguidores
  • 40.673 Visitas
  • 2 Favoritos

30 comentarios

@ProyColmena Hace más de 6 años
En el foro del Proyecto colmena podes encontrar información sobre J2ME.

Te dejo el link.

http://xmstudio.com.ar/Sistemas/foro/viewtopic.php?t=46
@KaeserZero Hace más de 6 años
muy bueno, esta muy interesante tu aporte
@alex_12_dark Hace más de 5 años
weno no lei mucho , pero , me ases acordar cuando era novato asi que + 5
@Dycarlos Hace más de 5 años
mmm interesnate post ni me imaginaba eso
@Cossafachini Hace más de 5 años -1
No entiendo un cazzo...
@nano90bsso Hace más de 5 años
nadie va a leer tanto jajaa
@Alucard_Uchiha Hace más de 4 años -2
buena info, no la lei toda pero esta buena, y depues la leere toda, me tienen cagado con libro

sigue hasi
(yo todabia nisiquiera publico mi primer post pero esta bueno
@angel2516 Hace más de 3 años
Buen possttt
@dragoxan Hace más de 3 años
@mateus52 Hace más de 3 años
copiar y pegar???
@ezecavallo9 Hace más de 3 años -2
nano90bsso dijo:nadie va a leer tanto jajaa

yo igualll! ajaj
@shippuden1996 Hace más de 3 años +1
yo queria juegos
@ignis37 Hace más de 3 años +1
colla
@agus_lxc Hace más de 3 años +2
shippuden1996 dijo:yo queria juegos

yo tambien XD
@ewardojil Hace más de 3 años
lo mismo mas fome la wea
@autorized16 Hace más de 3 años
chomaso loco jaja
@leny14 Hace más de 3 años -1
y como carajo intalo los juegos,
seguro que ni vos leiste todo
@chatolandia123 Hace más de 3 años +2
Copio copio copio, PEGO PEGO PEGO !!!!!!!
@springer1995 Hace más de 3 años
JAVA: El impacto del lenguaje en la telefonia celular Man
@Rob_rockzz Hace más de 3 años -1
ezecavallo9 dijo:
nano90bsso dijo:nadie va a leer tanto jajaa

yo igualll! ajaj

yo tmpoko lo leere
@trijuan Hace más de 3 años
yo tengo ese celular y no encuentro ningun jueguitooooo!!!
@AbiiLaMeJoR Hace más de 3 años +1
agus_lxc dijo:
shippuden1996 dijo:yo queria juegos

yo tambien XD


yo también
@zentrix64 Hace más de 2 años
AbiiLaMeJoR dijo:
agus_lxc dijo:
shippuden1996 dijo:yo queria juegos

yo tambien XD


yo también


yo tambien ,,

como dijo zentrix64 alguna vez " el mundo seria mas facil si fuera como los post, COPY-PASTE"
@Jamesjon Hace más de 2 años
zentrix64 dijo:
AbiiLaMeJoR dijo:
agus_lxc dijo:
shippuden1996 dijo:yo queria juegos

yo tambien XD


yo también


yo tambien ,,

como dijo zentrix64 alguna vez " el mundo seria mas facil si fuera como los post, COPY-PASTE"


Yo aplicaciones...
@efm92 Hace más de 2 años

Requisitos  para circular por las rutas Argentinas
@Codubi Hace más de 1 año
JAJAJAJAJAJ LE BORRARON EL POST A THE-LOKO
@fghkl Hace más de 1 año
buen post me a claro mis dudas XD
@NrikitoMix Hace más de 11 meses
uj5