En la ingeniería de computadora, el uso de las ventanas del registro del es una técnica para mejorar el funcionamiento de una operación particularmente común, la llamada de procedimiento . Dedicando el hardware a este problema, casi todos los programas de computadora funcionarán más rápidamente. Éste era una de las características del diseño principales del diseño original de Berkeley RISC, que sería comercializado más adelante como el SPARC, el AMD 29000, y Intel i960 .
La mayoría de los diseños de la CPU incluyen una pequeña cantidad de memoria muy de alta velocidad conocida como registros . Los registros son utilizados por la CPU para llevar a cabo valores temporales mientras que trabajan en cadenas más largas de instrucciones. El considerable funcionamiento se puede agregar a un diseño con más registros, sin embargo, puesto que los registros son un pedazo visible del sistema de instrucción de la CPU, el número no puede ser cambiado típicamente después de que se haya lanzado el diseño.
Mientras que los registros casi son una solución universal al funcionamiento, tienen una desventaja. Diversas partes de un programa de computadora todas utilizan sus propios valores temporales, y por lo tanto compiten para el uso de los registros. Puesto que una buena comprensión de la naturaleza del flujo de programa en el tiempo de pasada es muy difícil, no hay manera fácil para que el revelador sepa por adelantado cuántos registros deben utilizar, y cuántos a dejar a un lado para otras partes del programa. En general estas clases de consideraciones se no hacen caso, y los reveladores, y más probable, los recopiladores que utilizan, que intentan utilizar todos los registros visibles a ellos.
Aquí es donde las ventanas del registro llegan a ser útiles. Puesto que cada parte de un programa quiere los registros para su propio uso, tiene sentido de proporcionar varios sistemas de los registros para las diversas partes del programa. Por supuesto si estos registros fueran visibles, habría simplemente más registros a competir encima, el " trick" es hacerlos invisibles. Esto es realmente algo más simple que puede ser que suene; el movimiento a partir de una porción del programa a otra durante una llamada de procedimiento es fácilmente " seen", es logrado por uno de una pequeña cantidad de instrucciones y extremos con uno de un sistema semejantemente pequeño. En el diseño de Berkeley, estas llamadas harían un nuevo sistema de registros ser " in" intercambiado; en ese punto, o marcado como " dead" (o " reusable") cuando la llamada termina.
En el diseño de Berkeley RISC, solamente ocho registros eran visibles a los programas, fuera de un total de 64. El sistema completo de registros era conocido como el archivo de registro del, y sistema del detalle de ocho como ventana . El archivo permitió que hasta ocho llamadas de procedimiento tuvieran sus propios sistemas de registro. Mientras el programa no llamara abajo de cadenas más largo de ocho llamadas profundas, los registros nunca tuvieron que ser derramados (ahorrados hacia fuera a de memoria principal o al escondrijo), un proceso terrible lento comparado al acceso del registro. Para muchos programas una cadena de seises es tan profunda como irá el programa.
Por la comparación la arquitectura del SPARC de Sun Microsystems proporciona la visibilidad simultánea en cuatro sistemas de ocho registros cada uno. Tres sistemas de ocho registros cada uno son " windowed". Ocho registros (i0 con i7) forman los registros de la entrada al nivel del proceso actual. Ocho registros (L0 con L7) son locales al nivel del proceso actual, y a ocho registros (o0 con o7) son las salidas del nivel del proceso actual al nivel siguiente llamado. Cuando se llama un procedimiento, la ventana del registro cambia de puesto por dieciséis registros, la ocultación de la vieja entrada se coloca y el local viejo se coloca y la fabricación de la vieja salida coloca los nuevos registros de la entrada. Finalmente, ocho registros (g0 con el G7) son global visibles a todos los niveles de procedimiento.
El AMD 29000 mejoró el diseño permitiendo que las ventanas estén del tamaño variable, que ayuda a la utilización en el caso común donde están necesarios menos de ocho registros para una llamada. También separó los registros en un sistema global de 64, y 128 adicionales para las ventanas.
Las ventanas del registro también proporcionan una trayectoria fácil de la mejora. Puesto que los registros adicionales son invisibles a los programas, las ventanas adicionales se pueden agregar en cualquier momento. Por ejemplo, el uso de la programación orientada al objeto da lugar a menudo a un mayor número de " smaller" llama, que puede ser acomodada aumentando las ventanas a partir del ocho a dieciséis por ejemplo. Éste era el acercamiento usado en el SPARC, que ha incluido más ventanas del registro con más nuevas generaciones de la arquitectura. El resultado final es poco derramamiento lento del de la ventana del registro y operaciones del terraplén del porque desbordan las ventanas del registro menos a menudo.
Las ventanas del registro no son la única manera de mejorar funcionamiento del registro. El grupo en la Universidad de Stanford que diseñaba la arquitectura de las MIPS consideró el Berkeley trabajar y decidía que el problema no era bastantes registros, pero haciendo el uso pobre de ellas. En lugar de otro invirtieron más tiempo en su recopilador, cerciorándose de que utilizó sabio el sistema más grande disponible en el sistema de instrucción de las MIPS . Esto dio lugar a la complejidad reducida de la viruta, con una mitad del número total de registros, mientras que ofrecía un rendimiento potencialmente más alto en esos casos donde un solo procedimiento podría hacer uso del espacio más grande del registro. En el extremo, con los recopiladores modernos, el diseño de las MIPS hace un mejor uso de su espacio del registro incluso durante llamadas de procedimiento.
El considera también: registro de que retitula
.
| Random links: | Teorema de Dirichlet en progresiones aritméticas | El municipio de Bushnell, Michigan | Recibimiento virtual | Universidad de Estambul | Mongaguá |