sábado, febrero 28, 2009

Faros (I)

El otro díá me entretuve realizando una galería de fotos de faros,las cuales las hemos ido realizando a lo largo de varios viajes. Por completarla algo, dejo aquí algunas fotos y la historia de alguno de los faros, su situación y alguna de sus características técnicas:

Faro de Cabo San Vicente

Situado en el extremo suroeste de la Península Ibérica, sobre un promomontorio con vistas increibles al mar, y a la escaparda costa que constituye el parque nacional de la costa vicentina, está este poderoso faro, con un alcance de unas 32 millas náuticas. En sus alredeores es frecuente ver a una multitud de personas que vienen a contemplar la puesta de sol por el mar. Está situado a en coordenadas 37º01'.28 N, 8º59'.72 W y su potente óptica es una de las diez más potentes del mundo.

Faro del Cabo San Vicente

Si alguna vez tenéis oportunidad, no dejéis de ir a ver un atardecer al cabo. Merece la pena disfrutar del ocaso sobre el mar en esa costa.

Faro de Fraserburgh

Este antiguo faro de Kinnaird Head,en la localidad escocesa de Fraseburg, justo donde la costa forma un ángulo de 90º en dirección oeste, forma parte hoy en día del Museum of Scottish Lighthouses, un museo dedicado a los faros escoceses y su equipamiento. Su función la realiza ahora un pequeño faro, de estructura metálica situado al lado de éste. Está situado a 57° 41.9’N y 02° 00.1’W.

Faro Kinnaird Head

Cabo de Roca

Situado en la costa más occidental de la Europa continental, a 38°46′54.9″N, 9°29′50.3″W, este potente faro tiene un alcance de casi 23 millas náuticas. El faro está situado en un acantilado cuya altura sobre el nivel del mar es de 140 metros. Faro de Cabo de Roca

Al igual que ocurre con el de San Vicente,es habitual encontrarse aquí a mucha gente que viene a disfrutar del atardecer sobre el mar.

Fuentes de información

Technorati Tags:

miércoles, febrero 25, 2009

Sacelib: Gestión de cadenas y bloques de memoria más segura por Cisco

(vía reddit.programming) Publica la revista Dr Dobb's magazine un un pequeño artículo sobre The Safe C Library, una librería de código que implementa las recomendaciones recogidas en la especificación ISO/IEC TR 24731-1:2007,que define una serie de funciones alternativas a algunas existentes en la librería en C para poder usar funciones de copia de cadenas y de copia de bloques de memoria más segura. Entre otras cosas (del fichero safe_c_lib_readme.txt del código fuente) busca:
  • Proteger contra los desbordamientos de buffer (buffer overflows).
  • No producir cadenas no terminada por '\0'.
  • Informar en caso de truncar cadenas.
  • Manjadores de errores.

Las funciones que implementan son la aquellas encargadas de mover bloques de memoria (memcpy,memcmp,memset,memzero) y las funciones de manejo de cadena en C (strcpy,strcmp, strcasestr,strcpyfld,..). Las nuevas funciones utilizan el sufijo _s para distinguirlas de aquellas presentes en la librería estándar de C.

Otra librería más para facilitar el uso seguro de cadenas en C, aunque desde mi punto de vista, la única manera de acabar con este tipo de problemas es que el compilador genere códifo que compruebe los límites de los arrays. Lo malo es que el uso creativo de punteros en C, hace que implementar este tipo de verificaciones supongan una penalización importante en programas que hagan uso constante de punteros.

Sacelib está desarrollada por Cisco y la licencia es de tipo BSD.

Technorati Tags: ,

lunes, febrero 23, 2009

EEUU quiere mantener un registro de todos los usuarios que accedan a

Leía ayer Bill proposes ISPs, Wi-Fi keep logs for police, una propuesta de ley federal presentada por los republicanos (que recoge una doctrina similar de otra propuesta demócrata de hace tres años), con lo cual puede tener cierta probabilidad que se aprueba. Veamos la excusa para esto:
"While the Internet has generated many positive changes in the way we communicate and do business, its limitless nature offers anonymity that has opened the door to criminals looking to harm innocent children"
Se quiere proteger a los niños de las maldades que rondan por Internet, y para ello se requiere identificar a todos los usuarios que acceden a Internet. La ley además obliga a retener estos datos durante dos años, y extiende la obligación de hacerlo a los Hotspots WIFI - tanto públicos como privados -.

El dolor de cabeza que puede traer este tipo de leyes tanto para los bares que montan un sitio wifi gratuito, el que quiere compartir una conexión a Internet a través de FON, un hotel que ofrece dicho servicio o un simple usuario que tiene abierto para sus amigos una WIFI.

Un paso más hacia el control de las comunicaciones por parte de los gobiernos, que es realmente de lo que están preocupados, y no de la infancia. No debemos olvidar que por ley, los sistemas de voz tradicionales pueden ser pinchados por las fuerzas de seguridad. Quieren esa posibilidad en Internet, eso sí, por nuestro bien.

Para un gobierno, Internet se ha convertido en un cuarto poder, difícil de controlar e identificar quienes publican material que los puede dejar en ridículo y sobre todo, una nueva forma de hacer prensa mucho más barata de montar y con más alcance que la tradicional (aquí, en la Unión Europea, se impulsan legislaciones para regular los blogs)

Y por supuesto, Europa quiere que que la VoIP sea pinchable...

Technorati Tags: ,

domingo, febrero 22, 2009

Vaclav Klaus, sobre La dura realidad de la Unión Europea: es una

Alguien se ha atrevido de una vez a decirlo alto y claro: Vaclav Klaus,presidente de la República Checa, en su discurso ante el Parlamento Europeo ha expuesto lo que piensa sobre todo el mecanismo burocrático y planificador de la Unión Europea. Algunas fragmentos del discurso que dio en la Eurocámara que me han gustado:
In the politically correct rhetoric we keep hearing these days, we often hear about other possible effects of European integration, which are,however, of lesser and secondary importance.These are, moreover, driven by the ambitions of professional politicians and the people connected to them, not by the interests of ordinary citizens of member states.
Desde el Parlamento Europeo se dictan normas, muy lejanas y que tienen poco que ver con el ciudano de a pie y mucho con los eurócratas que desean manejar el poder y que los ciudadanos se comporten de acuerdo a las normas que ellos dicten. Quizás la prueba más palmaria haya sido la famosa constitución europea. En el referéndum que se convocó en España, no votó más que un 47% del censo electoral. ¿Qué validez puede tener el resultado de semanjante consulta?. Mucho peor fue en Francia e Irlanda donde fue rechazado. Sin embargo, los eurócratas no quedaron contentos, y decidieron remozarla, darle otro nombre, y ahora que se aprobara en cortes, sin ir a referéndum, por si las moscas. Se quiere súbditos que obedezcan ciegamente, no un ciudadano con poder de decisión. Esa fue una de las razones por las cual me hice cien kilómetros para votar en contra de la constitución europea, aunque sabía de sobra, que ya buscarían alguna manera de imponerla.

Si alguien tiene curiosidad que compare el comienzo de la constitución de EEUU:

NOSOTROS, el Pueblo de los Estados Unidos, a fin de formar una Unión más perfecta, establecer Justicia, afirmar la tranquilidad interior, proveer la Defensa común, promover el bienestar general y asegurar para nosotros mismos y para nuestros descendientes los beneficios de la Libertad, estatuimos y sancionamos esta CONSTITUCIÓN para los Estados Unidos de América.
con la de la Europea:
SU MAJESTAD EL REY DE LOS BELGAS, EL PRESIDENTE DE LA REPLBLICA CHECA, SU MAJESTAD LA REINA DE DINAMARCA, EL PRESIDENTE DE LA REPÚBLICA FEDERAL DE ALEMANIA, EL PRESIDENTE DE LA REPÚBLICA DE ESTONIA, EL PRESIDENTE DE LA REPÚBLICA HELEÅLNICA, SU MAJESTAD EL REY DE ESPANA, EL PRESIDENTE DE LA REPÚBLICA FRANCESA, LA PRESIDENTA DE IRLANDA, EL PRESIDENTE DE LA REPÚBLICA ITALIANA, EL PRESIDENTE DE LA REPÚBLICA DE CHIPRE, EL PRESIDENTE DE LA REPÚBLICA DE LETONIA, EL PRESIDENTE DE LA REPÚBLICA DE LITUANIA, SU ALTEZA REAL EL GRAN DUQUE DE LUXEMBURGO, EL PARLAMENTO DE LA REPÚBLICA DE HUNGRIÅLA, EL PRESIDENTE DE LA REPÚBLICA DE MALTA, SU MAJESTAD LA REINA DE LOS PAIÅLSES BAJOS, EL PRESIDENTE DE LA REPÚBLICA DE AUSTRIA, EL PRESIDENTE DE LA REPÚBLICA DE POLONIA, EL PRESIDENTE DE LA REPÚBLICA PORTUGUESA, EL PRESIDENTE DE LA REPÚBLICA DE ESLOVENIA, EL PRESIDENTE DE LA REPÚBLICA ESLOVACA, EL PRESIDENTE DE LA REPÚBLICA DE FINLANDIA, EL GOBIERNO DEL REINO DE SUECIA, SU MAJESTAD LA REINA DEL REINO UNIDO DE GRAN BRETANA E IRLANDA DEL NORTE,

La crítica mordaz contra el funcionamiento del parlamento europeo, donde no hay oposición, y toda nota discordante se ve como contraría al sistema. Klaus, procedente de un país que estuvo bajo una tiranía comunista, expone el problema sin pelos en la lengua:

The present decision making system of the European Union is different from a classic parliamentary democracy, tested and proven by the history.
Reconocer de una vez que estamos ante una de las economías planificadas más grandes (sino la más) del mundo tras la caída del bloque soviético:
We must say openly that the present economic system of the EU is a system of a suppresed market, a system of a permanently strenthening centrally controlled economy. Althought history has more than clearly proven that this is a dead end, we find ourselves walking the same path once again.
Esta parte del discurso será la que más ampollas habrá causado entre ciertos grupos presentes en el Parlamento Europeo. Pero la realidad es que el 50% del presupuesto de la Unión Europea se dedica a la PAC, Política Agraria Común, que dicta subvenciones, precios mínimos por debajo del cual no se puede vender un producto (cuota de intervención), pagos por arrancar y dejar en barbecho tierras o cuotas de producción de los mismos. Es, probablemente, la mayor economía dirigida del mundo. La prueba del fracaso es que los consumidores acabamos pagando muy caro, a través de nuestros impuestos y a través de unos precios mucho más caros en los productos. Quizás mucha gente no recuerde la cantidad de tierras de labor que se han arrancado, puesto en barbecho y el dueño cobrado, como se siembra para recibir la subvención más alta, en vez de satisfacer las necesidades de los consumidores o como los excedentes subvencionados se exportan a terceros países, dañando sus propias economías.

Mucha gente dirá que los agricultores europeos no pueden competir con esos países, dados que las condiciones laborales son mucho peores y se paga mucho menos. Quizás les convendría recordar lo bien que nos sentaba a los españoles que nos tiraran la fruta en la frontera de Francia durante los años ochenta.

De todas maneras, demasiada gente viviendo del cuento, señor Klaus, para pensar que aquí va a existir más libertad económica. Más bien, y dada la crisis en la que estamos envueltos, tendremos más aranceles (no dejéis de ver la referencia a Bastiat y los fabricantes de velas, que se ha hecho real), más control, y por supuesto, mucha más ineficiencia. Y como siempre, la clave para sacar beneficio, es detectar esas ineficiencias del sistema y aprovecharse de ellas: sino, ver el negocio redondo de las centrales solares fotovoltáicas en suelo....

Technorati Tags:

jueves, febrero 12, 2009

Informe seguridad X Force 2008

(vía Osnews) X-Force, una compañía que depende de IBM acaba de publicar su informa anual sobre la seguridad informática. Entre la información que aportan sobre las vulnerbilidades de los sistemas operativos:
  • Aumento del 13.5% de vulnerabilidades respecto al 2007.
  • Incremento de la gravedad de los problemas de seguridad, con un aumento del 15.3% de los calificados críticos y un 67.5% en los calificados medios.
  • Aproximadamente el 92% de estas vulnerabilidades son remotas.
  • De todas las vulnerabilidades, aproximadamente un 47% pueden ser corregidas con parches. Sin embargo cerca del 50% de años anteriores siguen si corregir.
  • La categoría que más vulnerabilidades tiene es la de aplicaciones web, aproximadamente el 55% de las mismas. Las que afectan a software que se ejecuta en máquinas de escritorio computan con un 20% del total.
  • Los últimos tres años los sistemas que más vulnerabilidades han sido descubiertas y publicadas son Apple y el kernel de Linux.
Interesante también leerse los apartados dedicados a vulnerabilidades web, donde vemos que siguen existiendo muchísimos problemas de inyección SQL, incluso estando este año por encima de los cross site scripting.

Según la editorial de Osnews lo que más está dando vuelta por Internet es esta tabla que indica el número total de vulnerabilidades hechas públicas para cada sistema operativo. El problema de esta métrica es saber de que tipo ha sido cada una de las vulnerabilidades publicadas.

El informe es extenso tiene cerca de cien páginas, y merece una lectura tranquila.

Technorati Tags:

martes, febrero 10, 2009

AMD Phenom II en socket AM3

AMD acaba de presentar el Phenom II para platasforma AM3. Entre las novedades de este micro destacan:
  • Nuevo proceso de fabricación con longitudes de canal de 45 nm, lo que ha permitido casi doblar el n?mero de transistores respecto al Phenom y disminuir la superficie de la oblea. Mejoras en los procesos de fabricaci?n para disminuir las corrientes de fuga.
  • Interfaz Hypertranport 3.0
  • Controladores de memoria para soporte de DDR3 y DDR3.
  • Socket AM3, plataforma compatible con AM2+. Esta compatibilidad es en una sola dirección, es decir se puede poner un chip AM3 en una placa base AM2+, pero no al contrario.
Este micro se presenta en empaquetados con cuatro o tres cores, y el nombre que recibe el núcleo es Dened. Compentencia en el mundillo, y más barato que el Core i7. Veremos si puede volver a sacar a AMD de la senda gris en la que ha transitado en los últimos tiempos.

Jerarquía de memoria

El chip lleva una caché de nivel 1, 64Kb de datos + 64 kb de instrucciones, y una caché de nivel 2 de 512 Kb por núcleo, con una caché compartida L3 de 6 MB o 4 MB en función del modelo del procesador. El caché L3 es dos ciclos más rápido que el presente en el Phenom, aunque va a menor velocidad que el de éste. La versión para servidores de este microprocesador, Shangai, tiene una particular técnica que permite desactivar zonas del caché L3 en caso de que se detecten exceso de errores, para preservar la integridad de los datos.

Microarquitectura

AMD ha aumentado el tamaño de los buffet internos del micro, mejorado la predicción de saltos y optimizaciones en la ejecución de ciertas instrucciones respecto al Phenom. Mejoras en las instrucciones que usan LOCK. Hay una descripción muy interesante de toda la microarquitectura en AMD K10 Micro-Architecture, donde explican la arquitectura interna del K10, con detalle de todas sus unidades internas y esquemas que permiten seguir los pasos que da el microprocesador para ejecutar las instrucciones.La predicción de saltos se ha mejorado a través de una técnica que permite al micro entrenar situaciones repetidas para afinar a la hora de tomar la decisión de predecir un salto ("path-based indirect branch prediction"). El artículo de xbitlabs es muy extenso y descriptivo de la microarquitectura del micro.

Ahorro de energía

El nuevo micro implementa diversas técnicas para el ahorro de energía. Una de ellas es que si cualquiera de los núcleos se para, vuelca automáticamente las cachés L1 y L2 del núcleo en la caché L3, lo cual permite al núcleo bajar la velocidad aún más. Esta tecnología recibe el nombre de Smart Fetch.

Referencias

Technorati Tags: ,

Londres quiere rastrear los viajes al extranjero de sus ¿ciudadanos o súdbitos?

Leía el pasado domingo la noticia que recogía el Mundo, Londres prepara una base de datos sobre los viajes de los británicos. El gobierno británico parece ser que ha decidido que la privacidad de sus ciudadanos vale un pimiento y está dispuesto a crear una gigantesca base de datos con información de los viajes al extranjero de los mismos. El Mundo enlaza con un artículo del Times Online, Spy centre will track you on holiday:
The database is the unpublicised part of the government’s so-called “e-borders” programme, intended to count everyone who comes in and out of the country by 2014. At the moment the UK Border Agency is running a pilot which monitors the travel movements of passengers on “high-risk” routes from a small number of airports, including Heathrow and Gatwick.
Intentar controlar todas los pasos que dan los ¿ciudadanos? del Reino Unido es el sueño húmedo de cualquier dictador de tres al cuarto. Pero que esto ocurra en la Inglaterra, el país que luchó contra la Alemania Nazi, cuando el resto de los países europeos no tardaron en ponerse a los pies del Tercer Reich lo único que causa es una gran intranquilidad. Datos como direcciones, números de teléfono, reserva de asientos, itinerarios y datos de tarjetas de crédito, en manos del poder político durante diez años al menos. ¿Cuánto tardarán en usarlos contra el enemigo político o simplemente fastidiar a personas incómodas?

Technorati Tags:

domingo, febrero 08, 2009

strlcpy y strlcat: Funciones en C para copia y concatenación de cadenas

Hace algún tiempo, vía Reddit.proggraming di con el artículo de Todd C. Miller y Theo de Raadt,strlcpy and strlcat - consistent, safe, string copy and concatenation., donde hablan las decisiones que les llevaron a diseñar estas dos funciones para mitigar los problemas de buffer overflow o desbordamiento de búfer tan habituales en los programas en escritos en C. El artículo definitivo para entender las consecuencias de seguridad de estos errores de programación es el Smashing The Stack For Fun And Profit que Aleph One publicó en el número 49 de la Phrack Magazine

El típico programa de un buffer overflow en C se da en la siguiente función:

int mi_funcion(char *input){
    char buf[256];
    ....
    ....
    strcat("CADENA",buf);
    ....
    ....
    return 0;
}
Si la cadena a la que apunta input es controlada por el usuario y no existe ningún límite en el número de caracteres (ya sea porque estamos leyendo de un fichero en disco, de la red o entrada del usuario vía teclado), al usar la función strcat acabaremos sobrepansando el tamaño de buf, y escribiendo en direcciones de memoria que no se debe. Si el programa donde se da este fallo se ejecuta con privilegios, puede aprovecharse para hacer una escalada desde un usuario normal a otro privilegiado.

Lo primero es usar las funciones de la librería estándar de C:strncpy y strncat.

char* strncpy(char *restrict s1, const char *restrict s2, size_t n);
char* strncat(char *restrict s1, const char *restrict s2, size_t n);
El cambio fundamental es es el parámetro n, que especifica el número de bytes del búfer apuntado por s1. Así cualquiera de esas dos funciones copiará como máximo n bytes o bien si encuentra en la cadena que esté copiando, el carácter que manda el fin de cadena en C, el \0.

Sin embargo estas dos funciones tienen dos problemas:

  • strncpy no termina con el \0 la cadena si se utiliza todo el búfer.
  • strncat rellena de ceros todo el búfer de destino hasta el tamaño que se especifica
Para evitar estos problemas Todd C. Miller y Theo de Raadt propusieron las funciones strlcat y strlcpy:
size_t strlcpy(char *dst, const char *src, size_t size);
size_t strlcat(char *dst, const char *src, size_t size);
Estas dos funciones garantizan que las cadenas están terminada con un \0 y permite detectar de manera sencilla en el caso de strlcat la existencia de que una cadena se trunque, como puede verse en este ejemplo sacado de la página de manual de MacOS X:
if (strlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
    goto toolong;
if (strlcat(pname, file, sizeof(pname)) >= sizeof(pname))
    goto toolong;
Las decisiones de diseño que llevaron a estas funciones están descritas en el artículo enlazado al principio. Aunque hace mucho tiempo del artículo, en el año 1999, es una lectura interesante para comprender la evolución de las API para evitar los problemas de seguridad.

Actualización

Me comenta mig21 que estas funciones no siempre le han gustado a otros desarrolladores. Por ejemplo, Ulrich Drepper, mantenedor de la GNU libc:
This is horribly inefficient BSD crap. Using these function only leads to other errors. Correct string handling means that you always know how long your strings are and therefore you can you memcpy (instead of strcpy).
Y es interesante el enlace a la entrada en la wikipedia de strlcpy.

Technorati Tags: ,

jueves, febrero 05, 2009

Manejo de la memoria y anotomia del uso de la memoria de un proceso en Linux

(vía reddit.programming Gustavo Duarte vuelve a la carga con dos excelentes y detalladas entradas que explica el mapa de memoria de un proceso en Linux y como el kernel utiliza la memoria. Entradas muy detalladas, con excelentes gráficos y referencias al código fuente de la implementación en Linux.

El blog de Gustavo Duarte tiene información muy interesante para cualquiera que le interese la programción a bajo nivel y como funciona los microprocesadores Intel. A tener en el agregador RSS, sin duda.

Technorati Tags: ,

miércoles, febrero 04, 2009

Proteccionismo económico, deuda pública

Una de las peores consecuencias de esta crisis económica que estamos sufriendo es la vuelta a las medidas proteccionistas. Los planes de rescate que se están estudiando en EEUU incluyen cláusulas para que sólo se beneficien aquellos proyectos que usen hierro y acero fabricano en EEUU, en Inglaterra hay huelgas pidiendo que se contraten a trabajadores británicos frente a extranjeros o se corta la inmigración de universitarios de fuera de la UE, o el ministro de industria español, Miguel Sebastián, pidiendo que se cumpre producto español. Es interesante repasar la lista de medidas proteccionistas que se está fraguando. Los franceses tampoco se libran de este club.

Una de las leyes que se aprobaron en EEUU durante el New Deal tras el crack de 1929 fue la Hawley_Tariff_Act que elevó los aranceles de importación para más de veinte mil productos, lo que acabó causando que otros países aumentaran los aranceles a los productos fabricados en EEUU e importados por ellos, con la correspondiente caída del comercio internacional y que según algunos economistas fue una de las causas que hizo más profunda la Gran Depresión (podéis ver El despeñadero proteccionista, un artículo de opinión sobre este tema)

En el caso de España, no está mal recordar que somos en tanto por ciento, el país más endeudado del mundo. Las exportaciones españolas vienen a ser aproximadamente un 20% del PIB español. Si de buenas a primeras, empezaran a aparecer aranceles,España sería un país muy perjudicado, con una deuda bestial a la que hacer frente y las dificultades para exportar.

Para acabar, me ha llamado la atención de la emisión de deuda pública de 67000 millones de dólares por parte del Tesoro americano. De esta emisión, aproximandamente 36300 millones se utilizará para, ¡pagar los vencimientos de otras emisiones de deuda anteriores!. Es decir, la pescadilla que se muerde la cola, ojo con este tipo de cosas, porque con la cantidad de dinero que están inyectando en diversas empresas americanas que son zombies, cuando tengan que hacer frente a los costes de estos planes - se habla de 800000 millones de dólares -, tendrán que recaudar vía fiscalidad ese dinero, porque si lo que piensan es ir emitiendo deuda para pagar la que va venciendo, el dólar puede empezar a cavar su tumba, porque como los compradores de deuda pública pierdan la confianza....

Technorati Tags: ,

martes, febrero 03, 2009

Novedades de Python 3.x en Developer Works

La gente de IBM ha publicado un par de artículos sobre las próximas novedades de Python 3.x. En el primero de ellos, Python 3 primer, Part 1: What's new en Python 3 primer, Part 2: Advanced topics se habla sobre:
  • La nueva función print()
  • El cambio de raw_input() a input()
  • Un nuevo tipo, bytes para almacenar enteros entre 0 y 127, es decir, caracteres ASCII no extendidos.
  • Permite identificadores que sean cadenas Unicode y evitar la conversión a ASCII de la función repr()
  • Aparece una nueva manera de utilizar cadenas formateadas, aparte del operador %. Los objetos tienen ahora un o format
  • Cambios en los diccionarios. Desaparecen algunos métodos.
  • Nuevo modelo de entrada y salida
  • Class decorators
  • Metaclasses
  • Abstract base classes
  • Cambio en la sintaxis de las excepciones.
  • Se añade la represantación binaria a los posibles literales numéricos y se modifica el octal
  • Anotación de funciones
Puede verse en los dos artículos de Developer Works pueden verse varios ejemplos de lo anterior. Espero poco a poco, ir viéndolas y experimentando con ellas, aunque la versión 3.0 tardará en estar generalizada y convivirá mucho tiempo con la 2.x, es interesante ver las novedades, es especial porque poco a recibido alguna de las características de la versión 3.x para que se pueda ir adaptando el código.

Technorati Tags:

domingo, febrero 01, 2009

¿El que se parecen un UltraSparc y un Z80A?

Leyendo un documento sobre el microprocesador de Sun UltraSPARC, me llamó la atención la existencia de cuatro juegos de registros globales, cuyo uso se controla a través de una serie de campos en el registro PSTATE. Esta técnica no es nueva en el mundo de los microprocesadores, porque existía algo similar en el antiguo Z80A de Zilog: tenía duplicados los registros principales y se podía aprovechar la velocidad de cambio a este juego de registros alternativos para evitar en el tratamiento de interrupciones almacenar todos el banco de registros en la pila. En el caso de la UltraSparc, tiene cuatro juegos de registros globales. Si alguien tiene curiosidad de ver como se selecciona cada juego, puede mirar cif.S, en el código fuente de Linux, aunque este código sólo lo puede ejecutar la CPU en modo privilegiado.

Referencias

  1. UltraSPARC III Cu User's manual
  2. STP1031, UltraSPARCTM-II
  3. OpenSPARC T1 Microarchitecture Specification

Technorati Tags: ,