Bajar Sitio Completo 65Kb

Bajar trabajo Completo 94kb

 
Procesadores y microprocesadores PA-RISC
sistemas informáticos PA-RISC
 
 
     

 

Arquitectura PA-Risc

ARQUITECTURA PA-RISC 

DESCRIPCION

ORGANIZACIÓN DEL SISTEMA

PROCESO DE RECURSOS

CONTROL DE LA DIRECCION Y DE ACCESO

MEMORIA CACHE

CONTROL E INTERRUPCIONES DE FLUJO

INTERRUPCIONES

INSTRUCCIONES

CONCLUSION

DESCRIPCION

INTRODUCCION

Pa-risc es una extensión de los principios de la arquitectura de la computadora reducida del sistema de instrucción (RISC). El diseño simple proporciona funcionamiento excepcional y es ideal para el uso en una amplia familia de sistemas rentables, compatibles. Algunos usos típicos incluyen: la informática comercial, usos científicos y de la ingeniería intensiva de computación y control en tiempo real.

Las arquitecturas de la computadora desarrolladas en los años 60 y los años 70 se han desarrollado hacia complejidad de aumento del sistema. Estas arquitecturas, libremente llamadas las computadoras del sistema de instrucción compleja (CISCs), tienen sistemas de instrucción grandes el contener de muchas instrucciones especializadas. El uso de CISCs microcodificó típicamente los programas de control (es decir, microcódigo) para proporcionar la ayuda para las funciones complejas y los idiomas de alto nivel.

La investigación extensa en patrones del uso de computadora revela que las computadoras de uso general pasan el hasta 80% de su tiempo que ejecuta instrucciones simples tales como carga, lo almacenan, y ramifican. Las instrucciones más complejas se utilizan infrecuentemente. Desafortunadamente, mientras que estas instrucciones complejas agregan funcionalidad, también agregan por encima por descifrar adicional de la instrucción, microcódigo, y duraciones más largas de ciclo. Los gastos indirectos adicionales reducen el funcionamiento de las instrucciones simples, a menudo-ejecutadas y niegan cualquier ventaja de poner instrucciones en ejecución complejas. Estos resultados conducidos al concepto de la computadora reducida del sistema de instrucción.

Los procesadores Pa-risc ponen una evolución en ejecución controlada de la arquitectura del procesador que se diseña cuidadosamente para preservar la inversión del software de un cliente. La compatibilidad delantera del código de objeto está garantizada. Esto permite el software escrito para un procesador para ejecutarse en cualquier otro procesador sin la modificación. El sistema de instrucción se diseña para ser una blanco excelente para los recopiladores óptimos y se optimiza para las instrucciones simples, a menudo usadas que se ejecutan en un ciclo de la CPU. La puesta en práctica de funciones más complejas se asigna al software del sistema o a los procesadores de la ayuda tales como el coprocesador punto-flotante. El sistema de instrucción es también muy regular; todas las instrucciones son de longitud fija (32-Bits) y los opcodes y los campos importantes del registro aparecen siempre en las mismas localizaciones.

El sistema de la entrada-salida (I/O) memoria-traz y está alcanzado con las instrucciones de la carga y del almacén para la simplicidad, la flexibilidad, y la velocidad. Se optimiza para los ambientes intensivos de la informática comercial de I/O así como para usos en tiempo real del control. Las capacidades de dirección son más de gran alcance lejano que ésos encontrados en 32 típicos - los sistemas del BIT. El uso de 48-Bit, de 56-Bit, o de direcciones virtuales 64-Bit se apoya con compatibilidad completa sobre la familia de sistemas entera. También se apoyan los espacios de dirección virtuales múltiples y las estructuras de datos muy grandes (hasta 4 Gbytes). Un mecanismo de gran alcance de la protección apoya sistemas operativos seguros y estructurados.

El Pa-risc se diseña para apoyar sistemas de alto rendimiento y fault-tolerant del multiprocesador y es una plataforma ideal para los usos del AI. La arquitectura puede tomar la ventaja inmediata de desarrollar tecnologías del hardware y del software con el alto rendimiento de recopiladores óptimos avanzados

CARACTERISTICAS

Las características del RISC proporcionadas por el Pa-risc incluyen:

  • Puesta en práctica de hardware directa del sistema de instrucción.No hay microcódigo necesario para la sola ejecución del ciclo. Las máquinas convencionales requieren varios ciclos realizar incluso instrucciones simples.
  • Tamaño fijo de la instrucción -- todas las instrucciones son una palabra (32-Bits) en longitud. Esto simplifica la instrucción trae el mecanismo puesto que la localización de los límites de la instrucción no es una función del tipo de la instrucción.
  • Número pequeño de los modos de dirección -- el sistema de instrucción utiliza la dislocación corta, la dislocación larga y modos índice para tener acceso a memoria.
  • Acceso de memoria reducido -- cargue y almacene solamente la memoria del acceso de las instrucciones. No hay instrucciones de cómputo que tienen acceso a memoria; las instrucciones de load/store funcionan entre la memoria y un registro. Se simplifica el hardware del control y se reduce al mínimo la duración de ciclo de la máquina.
  • Facilidad de la can¢ería -- las instrucciones fueron diseñadas de ser fácilmente divisibles en piezas. El tamaño fijo de las instrucciones permiten que las instrucciones sean instaladas fácilmente.

Pa-risc proporciona una arquitectura flexible y extensible que maximice funcionamiento de cualquier tecnología de semiconductor dada. Pa-risc incluye extensiones a los conceptos del RISC que ayudan a alcanzar niveles dados del funcionamiento en un costo perceptiblemente más bajo que otros sistemas. Las extensiones principales se resumen abajo:

  • Sistemas y ayuda del caché del rendimiento muy alto para los cachés virtualmente tratados
  • Sistemas del multiprocesador para la avería-tolerancia o funcionamiento creciente
  • Un coprocesador punto-flotante para las operaciones punto-flotante de IEEE
  • Un monitor Coprocesador del funcionamiento para la medida de funcionamiento
  • Una unidad especial de la función del eliminar errores a asistir a eliminar errores del software
  • Sistema extremadamente grande y eficiente de la memoria virtual con 48-Bit, 56-Bit, o el 64-Bit addressing
  • gerencia Exigir-paginada de la memoria
  • Protección del acceso de memoria a través de un almacenador intermediario de Lookaside de la traducción del hardware (TLB)
  • I/O Memoria-traz
  • Recopiladores óptimos
  • Sistema de instrucción extensible para los requisitos del específico del producto

El procesador PA-risc es solamente un elemento de un sistema completo. Un sistema también incluye órdenes de la memoria, los adaptadores de I/O, y la interconexión de los buses. El cuadro 11 demuestra un sistema típico del multiprocesador con un bus central de la alta velocidad y dos conexiones a los buses de la bajo-velocidad. Los procesadores se refieren a memoria central en el bus central y los adaptadores de I/O en los buses alejados. Los procesadores son módulos en el bus y pueden ser la blanco de transacciones tales como interrupciones y reajustes de sistema externos

ORGANIZACIÓN DEL SISTEMA

.



El módulo de procesador se organiza para proporcionar una máquina del cómputo del alto rendimiento. La unidad central de proceso (CPU) incluye un sistema del registro general, registros de dirección virtuales y registros de estado de la máquina. Un caché es opcional, pero es un componente tan rentable que casi todos los procesadores incorporan este hardware. En los procesadores que apoyan la memoria virtual que trata, un almacenador intermediario del lookaside de la traducción del hardware (TLB) se incluye para proporcionar virtual a las conversiones de dirección absolutas.

Cualquier procesador puede incluir las unidades especiales de la función (SFUs) y los coprocesadores. Estas unidades dedicadas del hardware aumentan substancialmente funcionamiento al ejecutar algoritmos seleccionados del hardware. Colectivamente, SFUs y los coprocesadores se llaman los procesadores de la ayuda . Las funciones punto-flotante son proporcionadas por un coprocesador, mientras que un algoritmo del proceso de señal se podría realzar con un SFU especializado.

Los adaptadores de I/O con altas demandas de la anchura de banda están conectados con el bus central de un rendimiento más alto, mientras que dispositivos más lentos se pueden conectar con buses alejados más rentables.

MEMORIA Y DIRECCIONES DE ENTRADA Y SALIDA

Los objetos en la memoria central y el sistema de I/O se tratan usando 32 - las direcciones absolutas mordidas. Una dirección absoluta es 32 - el entero sin signo mordido que valor es la dirección del octeto bajo-tratado del operando que señala.

 

INDICADOR ABSOLUTO

DIRECCION ABSOLUTA DEL CERO. 32

El cuadro ilustra la relación del espacio de dirección de I/O al espacio de dirección de la memoria central. Direcciones 0 con memoria de la referencia 0xEFFFFFFF. Direcciones 0xF0000000 a través 0xFFFFFFFF de los registros de la referencia I/O. Esta estructura da casi 4 Gbytes de espacio de dirección de memoria y de 256 MBYTES de espacio de dirección de I/O.

Memoria y direcciones de i/o

 



La memoria se refiere siempre con direcciones del octeto, comenzando con la dirección 0 y el extender con la dirección definida más grande de non-I/O (0xEFFFFFFF ). Las unidades direccionables son octetos, halfwords (2 octetos), palabras (4 octetos), y palabras dobles (8 octetos). Una comparación de las unidades direccionables se demuestra
en sgte. cuadro con los números relativos del octeto indicados dentro de los bloques.

Unidades físicas de la dirección y del almacenaje de la memoria

  

Todas las unidades direccionables se deben almacenar en sus límites naturalmente alineados. Un octeto puede aparecer en cualquier dirección, halfwords debe comenzar en incluso las direcciones, las palabras deben comenzar en las direcciones que son múltiplos de 4, y las palabras dobles comienzan en las direcciones que son múltiplos de 8. Si se utiliza una dirección virtual sin alinear, una interrupción ocurre.

Los bits dentro de unidades más grandes se numeran siempre a partir de la 0 comenzando con el BIT más significativo.

El espacio de dirección de I/O se refiere a palabras, a halfwords, y a octetos. Los registros de I/O están alcanzados usando la carga normal y almacenan instrucciones.

La memoria virtual se organiza en los espacios lineares de 2 32 = 4.294.967.296 octetos cada uno. Cada espacio es señalado por un identificador del espacio o una identificación del espacio . El objeto dentro del espacio es especificado por una compensación 32-Bits . El encadenamiento de un identificador del espacio y de esta compensación forma una dirección virtual completa.

La traducción de virtual a las direcciones absolutas es lograda por los almacenadores intermediarios del lookaside de la traducción (TLBs) Los campos en la entrada de TLB para una página particular permiten el control del acceso a la página para la lectura, la escritura o la ejecución. Tal acceso se puede restringir a un solo proceso, o a un sistema de procesos, o se puede permitir a todos los procesos.

NIVELES DE PA-RISC

Cuatro niveles de la arquitectura del procesador se han definido: 0 , 1 , 1,5 , y 2 . Memoria absoluta de la ayuda de los sistemas del nivel 0 que trata solamente; la memoria virtual no se apoya, y así que los identificadores del espacio no se utilizan. Nivel 1, 1,5, y 2 sistemas tienen dirección virtual y se diferencian solamente en el número de bits significativos en sus identificadores del espacio. Tienen 2 16 , 2 24 , y 2 32 espacios virtuales, respectivamente. Para prever el crecimiento a sistemas más grandes, cada procesador de un nivel más alto tiene un sobreconjunto de las capacidades de los procesadores de nivel inferior.

PROCESO DE RECURSOS

La arquitectura proporciona los registros, la información del estado, y los protocolos para el cómputo, tratando, y control de la ejecución y de interrupciones. Algunos de estos recursos se describen abajo.

REGISTROS INUSITADOS

Actualmente, hay varios registros y BIT-campos dentro de los registros que no tienen ninguna función asignada a ellos. Todos tales recursos de proceso se clasifican en cinco categorías:

  1. Bits reservados -- Bits, pero reservado actualmente inusitados para el uso futuro posible. Una operación LEÍDA es legal, y el valor leído detrás es todos los ceros. Una operación del ESCRIBIR es legal pero el valor escrito debe ser todos los ceros. Escribir unos es una operación indefinida. (por ejemplo, escribir unos puede causar estos Bits a no más largo leídos como ceros.)
  2. Bits no existentes -- arquitectónico estos Bits no existen. Una operación LEÍDA es legal y puede volver ceros o qué fue escrita por último. Una operación del ESCRIBIR es también legal, pero no tiene ningún efecto en funcionalidad del sistema.
  3. Bits indefinidos -- arquitectónico estos bits son indefinidos. Una operación LEÍDA es legal y el valor leído es indefinido. Una operación del ESCRIBIR es también legal, pero no tiene ningún efecto en funcionalidad del sistema.
  4. Registros reservados -- un registro se numera que pero actualmente inusitado. LEA y ESCRIBA las operaciones son operaciones indefinidas.
  5. Registros no existentes -- un registro que no existe en sistemas del nivel 0. Una operación LEÍDA vuelve ceros. Una operación del ESCRIBIR no tiene ningún efecto (se ejecuta como instrucción nula).

REGISTROS GENERALES

32 - los registros generales mordidos proporcionan el recurso central para todo el cómputo. Se numeran GR 0 GR directo 31, y están disponibles para todos los programas en todos los niveles del privilegio.

GR 0, GR 1, y GR 31 tienen funciones especiales. GR 0, cuando está referido como operando de la fuente, entrega ceros. Cuando GR 0 se utiliza como destinación, se desecha el resultado. GR 1 es la blanco implicada de la instrucción IZQUIERDA INMEDIATA de la ADICIÓN. GR 31 es el registro compensado del acoplamiento de la dirección de instrucción para la instrucción base-relativa de la llamada del procedimiento del interspace ( RAMA Y ACOPLAMIENTO EXTERNO ). GR 1 y GR 31 se pueden también utilizar como registros generales; sin embargo, las convenciones del software pueden restringir ocasionalmente su uso.

 

registros generales

 

 

 

 

 

GR 0

 

 

 

Permanente cero

 

 

 

 

 

 

 

 

GR 1

 

 

 

Blanco para ADDIL o el uso general

 

 

 

 

 

 

 

 

GR 2

 

 

 

Uso general

 

 

 

 

 

 

 

 

GR 3

 

 

 

Uso general

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GR 30

 

 

 

Uso general

 

 

 

 

 

 

 

 

GR 31

 

 

 

Registro del acoplamiento para BLE o el uso general

 

 

 

 

REGISTROS DE LA SOMBRA

Las puestas en práctica deben proporcionar siete registros llamados los registros de la sombra, numerados SHR 0 SHR directo 6, en el cual el contenido de GRs 1, 8, 9, 16, 17, 24, y 25 se copia sobre interrupciones. El contenido de estos registros generales se restaura de sus registros de la sombra cuando una VUELTA de la instrucción de la INTERRUPCIÓN Y del RESTORE se ejecuta.

REGISTROS DEL ESPACIO

En los sistemas que apoyan memoria virtual, ocho registros del espacio, numerados el SR 0 a el SR 7, contienen los identificadores del espacio para la dirección virtual. Las instrucciones especifican los registros del espacio directamente en la instrucción o indirectamente a través de contenido del registro general.

Las direcciones de instrucción, computadas por instrucciones de rama, pueden utilizar cualesquiera de los registros del espacio. El SR 0 es el registro del acoplamiento del espacio de dirección de instrucción para la instrucción base-relativa de la llamada del procedimiento del interspace ( RAMA Y ACOPLAMIENTO EXTERNOS ). Los operandos de los datos pueden especificar el SR 1 a el SR 3 explícitamente, y el SR 4 a el SR 7 indirectamente, vía los registros generales.

El SR 1 a el SR 7 no tienen ninguna función especial; sin embargo, su uso será obligado normalmente por convenciones del software. Por ejemplo, la convención siguiente apoya a grupos de proceso sin traslapo. El SR 1 a el SR 3 proporcionan general-utilizan indicadores virtuales. El SR 4 sigue el espacio de la dirección de instrucción (IA) y proporciona el acceso a los datos literales contenidos en el segmento de código actual. El SR 5 señala a un espacio que contiene datos confidenciales de proceso, el SR 6 a un espacio que contiene los datos compartidos por un grupo de procesos, y el SR 7 a un espacio que contiene el código público, los literales, y los datos del sistema operativo. El cuadro 27 ilustra a esta convención.

SRs 5 a 7 se puede modificar solamente por el código que se ejecuta en el nivel más privilegiado.

 

registros del espacio

 

 

 

 

 

SR 0

 

 

 

Identificación del espacio del código del acoplamiento

 

 

 

 

 

 

 

 

SR 1

 

 

 

Uso general

 

 

 

 

 

 

 

 

SR 2

 

 

 

Uso general

 

 

 

 

 

 

 

 

SR 3

 

 

 

Uso general

 

 

 

 

 

 

 

 

SR 4

 

 

 

Espacio de las pistas IA

 

 

 

 

 

 

 

 

SR 5

 

 

 

Datos confidenciales de proceso

 

 

 

 

 

 

 

 

SR 6

 

 

 

Datos compartidos

 

 

 

 

 

 

 

 

SR 7

 

 

 

Código público, literales, y datos del sistema operativo

 

 

 

 

 

CONTROL DE LA DIRECCION Y DE ACCESO

 

Los procesadores Pa-risc utilizan octeto que tratan para traer instrucciones y datos de la memoria central o de los registros de I/O. Las direcciones del octeto pueden ser direcciones absolutas o direcciones virtuales. Cuando las direcciones absolutas se utilizan directamente, no se realiza ningunos cheques de las derechas de la protección o de acceso. Los accesos de memoria que usan direcciones absolutas se llaman los accesos absolutos. Las direcciones virtuales se traducen a las direcciones absolutas y experimentan la comprobación de las derechas de la protección y de acceso. Los accesos de memoria que usan direcciones virtuales se llaman los accesos virtuales.

Las instrucciones que se refieren a memoria son carga (memoria a registro), almacén (registro a memoria), e instrucciones del semáforo. Varios sistemas de control y las instrucciones caché-relacionadas generan las direcciones que utilizan la conversión de dirección, la protección, y las derechas de acceso que comprueban mecanismos. Las instrucciones del cómputo no se refieren a memoria, sino realizan transformaciones de los datos usando los valores obtenidos de los registros generales y volviendo resultados a estos registros.

Cuatro niveles de la arquitectura del procesador se han definido: 0 , 1 , 1,5 , y 2 . Los sistemas del nivel 0 son fundamental diferentes de sistemas del nivel 1, 1,5, y 2. Nivele 0 direcciones absolutas de la ayuda de los sistemas solamente y no tenga ningún registro del espacio. Nivele 1, 1,5, y 2 sistemas proporcionan la dirección virtual con el uso de 16-Bits, 24-Bits, y el espacio 32-Bits se coloca, respectivamente.

La memoria virtual se estructura como sistema de espacios virtuales, cada los 2 32 octetos que contienen (4 gigabytes). Los procesadores del nivel 1 tienen 2 16 espacios de dirección, los procesadores del nivel 1,5 tienen 2 24 espacios de dirección, y los 2 procesadores llanos tienen 2 32 espacios de dirección.

Durante la conversión de dirección virtual, un espacio es seleccionado por un identificador del espacio contenido en la porción superior de la dirección virtual. La compensación del octeto dentro del espacio es especificada por los 32 bits más bajos de la dirección virtual.

Para los propósitos de la gerencia de la memoria, el espacio de dirección se subdivide lógicamente en las páginas , cada 4 kilobytes en longitud. La compensación del octeto en la página es especificada por los menos 12 bits significativos de la dirección virtual. El cuadro 31 ilustra la estructura de espacios, de páginas, y de compensaciones.

La ayuda se proporciona para la emulación de tamaños más grandes de la página. Ocho páginas contiguas, con las primeras de estas páginas que comienzan por un límite del octeto 32K, se refieren como grupo de la página.

Estructura de espacios, de páginas, y de compensaciones

 

 

MEMORIA CACHE

Las memorias de caché son los almacenadores intermediarios intermedios del almacenaje de la alta velocidad que contienen instrucciones y datos recientemente alcanzados. Estos cachés no necesitan seguir siendo coherentes con memoria y los artículos de I/O. El almacenamiento se puede traer en el caché, sólo como resultado de las referencias hechas por la corriente de la instrucción. El software puede quitar explícitamente artículos del caché. Consecuentemente, el software puede controlar qué porciones de la memoria pueden estar presentes en el caché. Los artículos en el caché se pueden quitar por el hardware en cualquier momento. El software puede por lo tanto no confiar en los artículos particulares restantes en el caché.

Una opinión constante del software de la operación del caché requiere que las puestas en práctica nunca escriban una línea limpia del caché de nuevo a memoria. Limpie los medios "no almacenados en" en comparación con "no cambiado". Los medios sucios "almacenaron en". Una línea del caché en la cual fue almacenado de una manera tal que fuera sin cambios se considera ser sucia.

Para asegurar coherencia del sistema de la memoria, y para reducir al mínimo el caché que limpia con un chorro de agua, las instrucciones y los datos en memoria se pueden traer en los cachés solamente bajo ciertas circunstancias. Esta operación de traer la información de la memoria en un caché se refiere como mover-en. En general, solamente las instrucciones y los datos referidos por instrucciones ejecutadas se pueden mover adentro. El software puede utilizar los bits de la referencia y otros mecanismos controlados por interrupciones para determinarse cuando las líneas están potencialmente en el caché de la instrucción, el caché de los datos, o ambos.

Ninguna referencia de datos puede causar a mover-en al caché de la instrucción y ninguna referencia de la instrucción puede causar a mover-en al caché de los datos. Esto significa que la ejecución de DATOS RASANTES DEPOSITA o PURGA la instrucción del CACHÉ de los DATOS garantiza que la línea tratada, si se ha referido como datos pero no como instrucciones, no es ningún presente más largo en el sistema del caché. Semejantemente, solamente se requiere una instrucción RASANTE del CACHÉ de la INSTRUCCIÓN de garantizar que una línea cuál se ha referido como instrucciones pero no como datos, no sea ningún presente más largo en el sistema del caché.

Si está puesto en ejecución, el BIT de U (Uncacheable) se encuentra en la entrada de los datos TLB asociada a una página. Si o no el U-BIT está puesto en ejecución, el estado de este BIT si está puesto en ejecución, si la referencia de la memoria es virtual o absoluta, y si la referencia está hecha de una página en los espacios de la memoria o de dirección de I/O se determina si la referencia se puede mover en el caché de los datos.

El software debe fijar el U-BIT asociado a todas las páginas en el espacio de dirección de I/O a 1. Referirse a una página al espacio de dirección de I/O para el cual el U-BIT es 0 es una operación indefinida.

Cambiar el estado del U-BIT para una página no tiene ningún efecto en las líneas del caché de los datos de esa página que existen ya en el caché. Una página del espacio de dirección de memoria que tiene su U-BIT fijado a 0 se llama una página cacheable. Las páginas del espacio de dirección de I/O y las páginas que tienen su U-BIT fijado a 1 se llaman las páginas uncacheable. Es posible que las líneas del caché de los datos de una página uncacheable existan en un caché de los datos. Este caso puede ser causado cambiando una página cacheable a uncacheable después de que las referencias a esta página fueran movidas en el caché de los datos.

CONTROL E INTERRUPCIONES DE FLUJO

La arquitectura define un modelo en el cual el flujo del control pase a la instrucción secuencial siguiente en memoria a menos que esté dirigido de otra manera por instrucciones de rama, el nulificacion de instrucciones, o interrupciones. La arquitectura requiere que un programa de la CPU aparezca ejecutar instrucciones en la orden en la cual aparecen aunque en realidad la orden se puede cambiar internamente. El modelo de la ejecución de la instrucción descrito en este capítulo proporciona una vista lógica de los pasos implicados en la ejecución de la instrucción. Las secciones en el nulificacion, ramificando, y las interrupciones demuestran cómo el control de flujo se puede alterar durante el curso de la ejecución de programa.

EJECUCION DE LA INSTRUCCIÓN

El flujo de la instrucción implica el calcular de la dirección de la instrucción actual y entonces el traer, el descifrar, y el ejecutar de esa instrucción. Este proceso implica el realizar de la secuencia de evento enumerada abajo sin importar el tipo de la instrucción. (Aunque estos acontecimientos se enumeran en secuencia, muchos de ellos pueden ocurrir en paralelo. Es solamente necesario que aparecen ser lógicamente secuencial.) En la descripción que sigue, los valores de los BITs de PSW son los valores que existen antes de que se ejecute la instrucción. Los cambios a los BITs de PSW afectan solamente instrucciones después de la instrucción actual. Este flujo de la ejecución de la instrucción se demuestra en el siguiente cuadro:

Proceso de la Interrupción

 

NULIFICACION

Una instrucción anulada es una instrucción que se salta encima. No tiene ningún efecto en el estado de la máquina (a menos que eso el avance de las coletas de IA y el B-BIT, el N-BIT, el X-BIT, el Y-BIT, y el Z-BIT en el PSW se fija a 0). El contador de la recuperación no decremented para una instrucción anulada. Las instrucciones anuladas no toman a grupo 3 interrupciones (aunque pueden tomar interrupciones del grupo 1, 2, o 4).

Todas las instrucciones de rama y las instrucciones de cómputo pueden anular la ejecución de la instrucción siguiente. Para las instrucciones de rama, el nulificacion se puede especificar explícitamente. En el caso de instrucciones de cómputo, el nulificacion se realiza condicional basó en el resultado de una prueba.

RAMIFICACION

Los ramas son otra manera de alterar el flujo durante la ejecución de programa. La arquitectura proporciona instrucciones de rama incondicionales y condicionales. Las instrucciones de rama incondicionales ramifican siempre a la blanco especificada. Las instrucciones de rama condicionales primero realizan una cierta operación (el movimiento, compara, agrega, o prueba de BIT) y en seguida ramifican si el resultado de la condición especificada se resuelve.

 ACOPLAMIENTO

El acoplamiento se proporciona en ciertas instrucciones de rama de permitir una trayectoria de vuelta para las llamadas del procedimiento. El punto de vuelta es cuatro octetos después de la instrucción siguiente. Puesto que la ejecución de todos los ramas es seguida por la ejecución de la instrucción en retrasa la ranura (o la falta de información si está anulado), él debe ser observada que el punto de vuelta está especificado siempre como cuatro octetos después de la instrucción siguiente y no ocho octetos después de la instrucción del RAMA Y del ACOPLAMIENTO. Cuando la instrucción siguiente no es espacial secuencial, después cuatro octetos después de la instrucción siguiente no son iguales que ocho octetos después de la instrucción del RAMA Y del ACOPLAMIENTO.

El mecanismo del acoplamiento está disponible para los ramas del intraspace y del interspace. Para los ramas del intraspace, la compensación del punto de vuelta se ahorra en el registro especificado GR t. de la blanco para los ramas del interspace, la compensación del punto de vuelta se ahorra siempre en GR 31, y la identificación del espacio del punto de vuelta se ahorra en el SR 0 (excepto en sistemas del nivel 0 donde está no existente el SR 0).

INTERRUPCIONES

Las interrupciones son las anomalías que ocurren durante la instrucción que procesa, haciendo el control de flujo ser pasado a una interrupción que maneja rutina. En el proceso, cierto estado de procesador es ahorrado automáticamente por el hardware. Sobre la terminación de la interrupción que procesa, una VUELTA DE LA INTERRUPCIÓN o la VUELTA de la instrucción de la INTERRUPCIÓN Y del RESTORE se ejecuta, que restaura el estado de procesador ahorrado, y la ejecución procede con la instrucción interrumpida.

Del punto de vista de la respuesta a las interrupciones, el procesador se comporta como si no fuera canalizado. Es decir, se comporta como si se traiga y se ejecute una sola instrucción, y cualquier condición de la interrupción levantada por esa instrucción se maneja en aquella 'epoca. Si no hay ninguno, se trae la instrucción siguiente, etcétera.

Las averías, atrapan, interrumpen , y los cheques son las diversas clases de las interrupciones que pueden suceder durante el proceso de la instrucción. Las definiciones de las cuatro clases de interrupciones son como sigue:

 

 

tabla 1: clases de interrupciones

 

 

 

 

 

 

Grupo 1:

 

 

 

1

 

 

 

Cheque prioritario de la máquina

 

 

 

 

 

 

 

 

 

 

 

 

Grupo 2:

 

 

 

2

 

 

 

Interrupción de apagón

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

Trampa del contador de la recuperación

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

Interrupción externa

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

cheque de la máquina de la Bajo-prioridad

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29

 

 

 

Interrupción del monitor del funcionamiento

 

 

 

 

 

 

 

 

 

 

 

 

Grupo 3:

 

 

 

6

 

 

 

Avería de página de la falta fault/Instruction de la instrucción TLB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

Trampa de la protección de la memoria de la instrucción

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

La instrucción elimina errores de la trampa

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

Trampa de la instrucción ilegal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

Trampa de la instrucción de la rotura

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

Trampa privilegiada de la operación

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

Trampa privilegiada del registro

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

Trampa del desbordamiento

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

Trampa condicional

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

Trampa de la excepción de la ayuda

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

Avería de página de la falta fault/Data de los datos TLB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

avería de la falta de la instrucción TLB del No-acceso

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

 

avería de página de los datos de la falta fault/Non-access de los datos TLB del No-acceso

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

 

Trampa de las derechas de acceso de memoria de los datos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

 

Trampa de la identificación de la protección de la memoria de los datos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

 

Trampa sin alinear de la referencia de datos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

Trampa de la referencia de datos de la protección trap/Unaligned de la memoria de los datos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

Trampa de la rotura de la memoria de los datos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

Trampa sucia del BIT de TLB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

 

Trampa de la referencia de la página

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

31

 

 

 

Los datos eliminan errores de la trampa

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

 

Trampa de la emulación de la ayuda

 

 

 

 

 

 

 

 

 

 

 

 

Grupo 4:

 

 

 

23

 

 

 

trampa de la transferencia del Alto-privilegio

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

 

trampa de la transferencia del Bajo-privilegio

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

 

Trampa tomada del rama

 

 

 

 

 

 

 

Los números de la interrupción en la lista antedicha son los números individuales del vector que se determinan invocan qué tratante de la interrupción para cada interrupción. Los números de grupo se determinan cuando la interrupción particular será procesada durante el curso de la ejecución de la instrucción. La orden que las interrupciones se enumeran dentro de cada grupo ( no los números de la interrupción) determinan la prioridad de interrupciones simultáneas (de lo más arriba posible a lo más bajo posible).

PRIORIDADES DE LA INTERRUPCION

La máquina prioritaria comprueba (que pertenecen al grupo que 1) se puede ocurrir y procesar en cualquier momento. Pueden ser síncronos o asincrónicos con la instrucción que procesa, pueden ser asociados a más de una instrucción, y su significado exacto y el proceso es dependiente de la puesta en práctica.

Todas las interrupciones con excepción de cheques prioritarios de la máquina se toman entre las instrucciones. Las interrupciones simultáneas múltiples pueden ocurrir porque un número de instrucciones son capaces de levantar varias interrupciones síncronas simultáneamente, y porque ciertas interrupciones son asincrónicas con respecto a la corriente de la instrucción.

Las interrupciones del grupo 2 ocurren asynchronously con respecto a la corriente de la instrucción.

Las interrupciones del grupo 3 son síncronas con respecto a la corriente de la instrucción y se señalan antes de la terminación de la instrucción que las produce.

INSTRUCCIONES

El sistema de instrucción Pa-risc consiste en las instrucciones definidas, undefined, ilegales, y nulas. Este capítulo discute los conceptos de instrucciones indefinidas y nulas y contiene una descripción detallada de cada instrucción definida. También se incluyen las descripciones de las condiciones, de sus completers, y de la notación usada en las descripciones de la instrucción.

Las descripciones de la instrucción se dividen en los grupos funcionales siguientes:

  1. Instrucciones de la referencia de la memoria.
  2. Instrucciones de rama.
  3. Instrucciones inmediatas largas.
  4. Instrucciones del cómputo.
  5. Instrucciones del control de sistema.
  6. Instrucciones de la ayuda.

Las instrucciones son siempre 32 BITs en anchura. Un opcode importante 6-Bit es siempre el primer campo. Los registros de la fuente, si están especificados, son a menudo los dos campos siguientes 5-Bit. Los registros de la blanco, si están especificados, no están fijados en ningún campo particular 5-Bit. Dependiendo del opcode principal, el resto de la palabra de la instrucción se divide en los campos que especifican valores inmediatos, los registros del espacio, las extensiones adicionales del opcode, las condiciones, y el nullification.

INSTRUCCIONES INDEFINIDAS E ILEGALES

No todos los 64 opcodes principales posibles del sistema de instrucción se definen como instrucciones válidas. (véase el apéndice D, los "códigos de operación" , para una lista de los opcodes válidos de la instrucción.) Un opcode importante indefinido se considera una instrucción ilegal . La ejecución de una instrucción ilegal causa una trampa de la instrucción ilegal.

INSTRUCCIONES NULAS

Las instrucciones nulas ocurren cuando las características unimplemented de la arquitectura están alcanzadas. El efecto de una instrucción nula es idéntico a una instrucción anulada a menos que eso el contador de la recuperación decremented. No hay efecto sobre el estado de la máquina a menos que se avance eso las coletas de IA y el B-BIT, el N-BIT, el X-BIT, el Y-BIT, y el Z-BIT de PSW se fijan a 0. Las instrucciones nulas ocurren lo más comúnmente posible en sistemas del nivel 0. Por ejemplo, en un sistema del nivel 0, la instrucción que escribe valores en los registros del espacio es una instrucción nula.

NOTACIONES DE LA INSTRUCCIÓN

Cada instrucción se describe detalladamente en las páginas siguientes. Cada descripción incluye el nombre completo de la instrucción, del formato de la mnemónica y del sintaxis del lenguaje ensamblador, del formato de instrucción de máquina, del propósito, de una descripción narrativa, de una descripción operacional, de excepciones, y de notas referentes a uso. En algunos casos, las notas de programación son incluidas para la dirección adicional a los programadores. La operación de la instrucción se describe en a C-como lengua algorítmica. Esta lengua es igual que el lenguaje de programación de C con algunas excepciones. Éstos son:

  1. Los caracteres "{ }" se utilizan para denotar campos del BIT.
  2. El operador de asignación usado es "="en vez de" = ".
  3. Las funciones "gato" (encadenamiento), y toma del "xor" (exclusivo lógico O) un número variable de las discusiones, para las cuales no hay disposición en C.
  4. El uso de la declaración del interruptor es incorrecto porque no utilizamos las expresiones constantes para todos los casos.

Para el sintaxis completo y otras consideraciones usados en programas del lenguaje ensamblador de la escritura, refiera por favor al manual de referencia del lenguaje ensamblador ..

REGISTROS

En general, un nombre de registro consiste en dos o tres letras mayúsculas. El nombre de un miembro de un arsenal del registro consiste en un nombre de registro seguido por un índice en corchetes. Por ejemplo, "GR[1 ]" denota el registro general 1.

Los registros y los órdenes nombrados del registro usados en las descripciones operacionales son:

 

 

tabla 1:

 

registro

 

 

 

gama

 

 

 

descripción

 

 

 

 

 

 

 

GR[t ]

 

 

 

t=0..31

 

 

 

Registros generales

 

 

 

 

 

 

 

 

 

 

 

 

SHR[t ]

 

 

 

t=0..6

 

 

 

Registros de la sombra

 

 

 

 

 

 

 

 

 

 

 

 

SR[t ]

 

 

 

t=0..7

 

 

 

Registros del espacio

 

 

 

 

 

 

 

 

 

 

 

 

CR[t ]

 

 

 

t=0, 8,,31

 

 

 

Registros de control

 

 

 

 

 

 

 

 

 

 

 

 

CPR[uid][t ]

 

 

 

t=0..31

 

 

 

Registros del "uid" de Coprocesador

 

 

 

 

 

 

 

 

 

 

 

 

FPR[t ]

 

 

 

t=0..31

 

 

 

Registros punto-flotante del coprocesador

 

 

 

 

 

 

 

La palabra del estado del procesador y la palabra del estado del procesador de la interrupción, denotada por "PSW" y "IPSW", se tratan como serie de 1-Bit y de campos del mu'ltiple-BIT. Un campo de cualquiera es denotado por el nombre de registro seguido por un nombre de campo en corchetes, y las gamas del BIT dentro de tales campos son denotadas por la notación generalmente. Por ejemplo, PSW[C/B ] denota el campo 8-Bit de carry/borrow del PSW y PSW[C/B]{0 } denota el BIT 0 de ese campo.

TEMPORALES

Un nombre temporal abarca letras tres o más minúsculos y denota una cantidad que requiera el nombramiento, o para la claridad, o debido a las limitaciones impuestas por la consecutividad de la notación operacional. Puede o puede no representar un recurso de proceso real en el hardware. La longitud de la cantidad denotada por un temporal se determina y es implícito igual a la de la cantidad primero asignada a ella en una descripción operacional.

CONTROL DE LAS ESTRUCTURAS Y LAS FUNCIONES

Las estructuras del control usadas en la notación son relativamente estándares. Las declaraciones de la expresión describen un cómputo realizado por el ALU o un poco de otro hardware para sus efectos secundarios más bien que el valor del cómputo. Las funciones enumeraron abajo se utilizan localizar los cálculos largos que se utilizan en varios lugares. Los puntos y comas separan las declaraciones.

 

 

tabla 3:

 

función

 

 

 

descripción

 

 

 

 

 

assemble_3(x)

 

 

 

Monta un número del registro del espacio 3-Bit: return(cat(x{2}, x{0..1 }))

 

 

 

 

 

 

 

 

assemble_12(x, y)

 

 

 

Monta un 12-Bit inmediato: return(cat(y, x{10}, x{0..9 }))

 

 

 

 

 

 

 

 

assemble_17(x, y, z)

 

 

 

Monta un 17-Bit inmediato: return(cat(z, x, y{10}, y{0..9 }))

 

 

 

 

 

 

 

 

assemble_21(x)

 

 

 

Monta un 21-Bit inmediato: return(cat(x{20}, x{9..19}, x{5..6}, x{0..4}, x{7..8 }))

 

 

 

 

 

 

 

 

cat(x1..., xn)

 

 

 

Concatena las discusiones pasadas, x1 a través del xn .

 

 

 

 

 

 

 

 

low_sign_ext(x, len)

 

 

 

Quita el BIT de derecha de x y extiende el campo a la izquierda con ese BIT para formar una cantidad 32-Bit. El campo está de tamaño len : return(sign_ext(cat(x{len-1}, x{0..len-2}), len))

 

 

 

 

 

 

 

 

lshift(arg1, arg2)

 

 

 

arg1 es cambiado de puesto lógicamente a la izquierda por el número de los BITs especificados en arg2 .

 

 

 

 

 

 

 

 

mem_load

 

 

 

Vea "las instrucciones de la referencia de la memoria" en la página 515.

 

 

 

 

 

 

 

 

mem_store

 

 

 

Vea "las instrucciones de la referencia de la memoria" en la página 515.

 

 

 

 

 

 

 

 

rshift(arg1, arg2)

 

 

 

arg1 es cambiado de puesto lógicamente a la derecha por los BITs arg2.

 

 

 

 

 

 

 

 

send_to_copr(u, t)

 

 

 

Envía 5-Bit el valor t a la unidad u del coprocesador .

 

 

 

 

 

 

 

 

sign_ext(x, len)

 

 

 

Amplía x en la izquierda con los BITs de muestra para formar una cantidad 32-Bit, tomando el BIT extremo izquierdo para el campo del tamaño len como el BIT de muestra.

 

 

 

 

 

 

 

 

sign_ext_64(x, len)

 

 

 

Idéntico al sign_ext(x, len) exceptúe que amplía el valor a 64 BITs: sign_ext_64(x, len) { si (x{0}==1) return(cat(-1{0..31}, sign_ext(x, len)); return(cat(0{0..31} otro, sign_ext(x, len)); }

 

 

 

 

 

 

 

 

store_in_memory(space, compensación, bajo, alta, indirecta, data)

 

 

 

 

 

 

 

 

 

 

 

 

 

La función store_in_memory es idéntica al mem_store a menos que ésa él fuerce los datos para ser almacenada en memoria central. Los datos pueden permanecer opcionalmente en el caché.

 

 

 

 

 

 

 

 

xor(x1..., xn)

 

 

 

Produce Bitwise la exclusiva o de las discusiones pasadas.

 

 

 

 

 

 

 

 

zero_ext(x, len)

 

 

 

Amplía x a la izquierda, porque el campo del tamaño len , con ceros para formar una cantidad 32-Bit.

 

 

 

 

 

 

 

 

zero_ext_64(x, len)

 

 

 

Idéntico al zero_ext(x, len) exceptúe que amplía el valor a 64 BITs: return(cat(0{0..31}, zero_ext(x, len)))

 

 

 

 

 

INSTRUCCIONES DE REFERENCIA DE MEMORIA

Las instrucciones de la referencia de la memoria cargan valores en y almacenan valores de los registros generales. Los tipos incluidos son: dislocación corta, dislocación larga, y puesto en un índice. Es posible modificar el valor bajo en un registro general por la dislocación o el índice.

INSTRUCCIONES DE CONTROL DEL CACHE

Algunas instrucciones de la referencia de la memoria contienen un campo del control del caché 2-Bit, el cc , que proporciona una indirecta al procesador en cómo resolver coherencia del caché. El procesador puede desatender la indirecta sin integridad de compromiso del sistema, pero el funcionamiento se puede realzar por después de la indirecta.

Hay tres diversas categorías de las indirectas del control del caché: cargue las indirectas del control del caché de la instrucción, almacene las indirectas del control del caché de la instrucción, y las indirectas del carga y claras de la palabra de la instrucción del caché del control. Las indirectas del control del caché son especificadas por el completer del cc a la instrucción y codificadas en el campo del cc de la instrucción.

La indirecta espacial del control del caché del lugar es una recomendación al procesador de traer la línea tratada del caché de la memoria pero de no desplazar ningunos datos existentes del caché porque hay buen lugar espacial pero lugar temporal pobre.

 

 

tabla 9-1:

 

completer

 

 

 

descripción

 

 

 

cc

 

 

 

 

 

 

 

< ningunos >

 

 

 

Ninguna indirecta

 

 

 

00

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reservado

 

 

 

01

 

 

 

 

 

 

 

 

 

 

 

 

Sl

 

 

 

Lugar Espacial

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Reservado

 

 

 

11

 

 

INSTRUCCIONES INMEDIATAS

Las instrucciones inmediatas no se refieren a memoria. Computan valores cualquiera de un inmediato largo cambiada de puesto (21 BITs de largo), de la fuente de un registro largo cambiado de puesto inmediato y, o de un registro bajo más una dislocación 14-Bit. Este valor computado entonces se almacena en otro registro general. Estas instrucciones se utilizan típicamente de computar los valores de direcciones de los artículos de datos. La instrucción COMPENSADA de la CARGA se puede también utilizar para cargar simplemente un 14-Bit inmediato en un registro.

INSTRUCCIONES DE RAMA

Las instrucciones de rama se clasifican en tres categorías importantes: ramas locales incondicionales, ramas externos incondicionales, y ramas locales del condicional. Dentro de estas categorías hay secundario-clasificación basada en cómo se computa la dirección de la blanco, si o no un remite está ahorrado, y si o no los cambios del privilegio pueden ocurrir. No todas las opciones están disponibles para cada categoría. Las secciones siguientes describen los tipos de ramas. La operación de cada instrucción de rama se detalla en las secciones de la descripción de la instrucción en este capítulo.

Características de la rama

 

El cuadro categoriza las características de las instrucciones de rama. Clasificación de las instrucciones de rama

 

INSTRUCCIONES DE CÓMPUTO

Las instrucciones del cómputo se abarcan de la aritmética, lógico, cambian de puesto, extraen, y depositan instrucciones. Los dos campos 5-Bit que seguían el campo del opcode 6-Bit podían consistir en las combinaciones siguientes:

  1. Dos registros de la fuente.
  2. Un registro de la fuente y un registro de la blanco.
  3. Un registro de la fuente y un 5-Bit inmediato.
  4. Un registro de la blanco y un 5-Bit inmediato.

INSTRUCCIONES ARITMETICAS Y LOGICAS

Estas instrucciones realizan operaciones aritméticas y lógicas entre dos operandos en registros y almacenan el resultado en un registro. Cada instrucción de arithmetic/logical también especifica la ocurrencia condicional de un salto o de una trampa, basada en su opcode y el campo de la condición. No todas las opciones están disponibles en cada instrucción. Solamente se definen esas operaciones y opciones consideraban útil.

OPERACIONES ARITMETICAS INMEDIATAS

Las instrucciones aritméticas inmediatas funcionan entre un inmediato 11-Bit muestra-extendido y el contenido de un registro. El resultado se almacena en un registro. Las operaciones inmediatas pueden atrapar opcionalmente en desbordamiento. Además, inmediato agrega puede atrapar en una condición específica.

El campo inmediato 11-Bit tiene el BIT de muestra en la posición de derecha, pero los otros 10 BITs están en la orden generalmente. El campo de la extensión del opcode 1-Bit se determina si el desbordamiento causa una trampa.

INSTRUCCIONES DE CONTROL DEL SISTEMA

Las instrucciones del control de sistema proporcionan movimientos especiales del registro, control de la máscara del sistema, vuelta de la interrupción, las derechas de acceso de la punta de prueba, las operaciones de la gerencia de la memoria, y las funciones puesta en pra'ctica-dependientes.

Las instrucciones de la gerencia de la memoria generan direcciones de la instrucción y de los datos. La formación de la dirección es similar a la de las instrucciones puestas en un índice de la carga. La única diferencia es que el registro de índice nunca está cambiado de puesto antes de agregar al registro bajo. La formación de la dirección, los completers, y los encodings del campo del BIT se demuestran:

 

 

completers del control de sistema

 

cmplt

 

 

 

descripción

 

 

 

m

 

 

 

 

 

 

 

< ningunos >

 

 

 

no modifique el registro bajo

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

M

 

 

 

modifique el registro bajo

 

 

 

1

 

 

 

 

 

 

Selección del identificador del espacio

 

  

Operaciones de sistema

 

 

INSTRUCCIONES DE AYUDA

El diseño Pa-risc se conforma generalmente con el concepto de un sistema de instrucción simple puesto en ejecución en hardware rentable. Ciertos algoritmos pueden beneficiar de aumentos substanciales del funcionamiento dedicando el hardware especializado para ejecutar instrucciones especializadas. Pocos algoritmos confían solamente en el hardware especializado solamente y es ventajoso combinar el procesador con los procesadores adicionales de la ayuda juntados de cerca a él.

Además de las instrucciones ejecutadas por una unidad central de proceso, el sistema de instrucción contiene instrucciones de invocar el especial, opcional, las funciones del hardware proporcionadas por los dos tipos de procesadores de la ayuda: Unidades especiales de la función (SFUs) y coprocesadores.

INSTRUCCIONES ESPECIALES DE LA UNIDAD DE LA FUNCIONES (SFU)

El mecanismo de SFU se piensa para ciertas extensiones arquitectónico definidas de la instrucción, tales como hardware multiply/divide del hardware o del cifrado binario de punto fijo, tan bien como para las extensiones puesta en pra'ctica-específicas, tales como procesadores de la ayuda de la emulación o conexiones directas del regulador de I/O.

SFUs está conectado con el interfaz del registro general e invocado por instrucciones especiales de la operación. Estas instrucciones hacen la unidad de la ejecución realizar cualesquiera de varias operaciones (determinadas por la extensión del opcode), que puede utilizar el contenido de registros, o pueden escribir detrás un resultado. Algunas instrucciones anulan condicional la instrucción siguiente.

Algunas operaciones especiales de la función traslapan su ejecución con instrucciones que tienen éxito. Estas operaciones requieren que el estado de unidad especial de la función esté ahorrado y restaurado cuando se hace un interruptor del contexto. Un dispositivo de seguridad ocurre si se solicita un resultado especial de la función antes de que la operación haya terminado, o la unidad especial de la función está ocupada. Un SFU no se requiere para llevar a cabo su estado en registros direccionables. En lugar, las operaciones de SFU se utilizan para ahorrar y para restaurar el estado, tan bien como pasarle operandos y recibir resultados de él.

Las unidades especiales definidas de la función se conformarán con los requisitos de las instrucciones definidas de SFU, para poderlas poner en ejecución como unidades especiales incorporadas o interconectadas de la función. La trampa de la emulación de la ayuda permite la puesta en práctica del software de cualquier instrucción especial definida de la operación.

El procesador debe también proporcionar el nivel actual del privilegio a las unidades especiales de la función. Los niveles del privilegio podrían ser difusión cada vez que cambian o se podrían transmitir con cada operación de SFU. El uso del nivel del privilegio por el SFU es específico a cada uno de las unidades. El párrafo de la operación de cada descripción de la instrucción de SFU especifica la información necesaria que debe estar disponible para el SFU en la función del "sfu_operation".

Hay cuatro formatos de instrucción para las instrucciones especiales de la unidad de la función según lo dado abajo. El opcode principal es 0x04 para las operaciones de SFU.

  1. Operación Especial Cero

04

sop1

0

sfu

n

sop2

6

15

2

3

1

5

  1. Operación Especial Una

04

sop

1

sfu

n

t

6

15

2

3

1

5

  1. Operación Especial Dos

04

r

sop1

2

sfu

n

sop2

6

5

10

2

3

1

5

  1. Operación Especial Tres

04

r2

r1

sop1

3

sfu

n

sop2

6

5

5

5

2

3

1

5

El SCR (registro de la configuración de SFU) es un registro de control 8-Bit, en el CR 10 BITs 16,,23, que se utiliza para indicar la presencia y la utilidad de una puesta en práctica de hardware de un SFU. Bit 1 en el SCR corresponde al eliminar errores SFU. Para el resto de los BITs en el SCR, el SCR{i } corresponde a un SFU indefinido con un identificador de la unidad que sea igual que la posición de BIT, que es los SFU con el uid i.

Cuando SCR{i } es 1, el SFU con el uid i se implica para ser presente y usable. Las instrucciones de SFU se pasan al SFU y la operación definida ocurre. Las excepciones que resultan de la operación causan la instrucción de ser terminado con una trampa de la excepción de la ayuda. Las trampas de la emulación de la ayuda no se permiten ocurrir para el SFU con el uid i cuando SCR{i } es 1. Es una operación indefinida para fijar a 1 el BIT del SCR que corresponde a un SFU no existente.

Cuando SCR{i } es 0, no se implica que el SFU con el uid i está ausente del sistema, pero algo que el SFU, si presente, no se está utilizando actualmente. Cuando el BIT del SCR es 0, la instrucción de SFU se termina con una trampa de la emulación de la ayuda. Las trampas de la excepción de la ayuda no se permiten ocurrir para el SFU con el uid i cuando SCR{i } es 0.

Fijar el BIT de SCR{i } a 0 debe desemparejar lógicamente el SFU con el uid i. que éste debe asegurarse de que el estado del SFU con el uid i esté congelado apenas antes de la transición de SCR{i } a partir la 1 a 0 y que el estado no cambia mientras SCR{i } es 0. Cuando SCR{i } es 0, el SFU con el uid no debo responder a ninguna operaciones de SFU para el SFU con el uid i. el estado congelado de un SFU, por ejemplo, podría también estar un estado en el cual se deja el SFU "armado" a la trampa cualquier operación subsecuente. Por ejemplo, si el coprocesador con el uid i está en "armar-a-atrape" el estado y SCR{i } es 0, cualquier operación que implica ese SFU no debe causar una trampa de la excepción de la ayuda.

La precedencia de las interrupciones que son aplicables a las operaciones para el SFU con el uid i depende del estado de SCR{i }. La trampa de la excepción de la ayuda y la trampa de la emulación de la ayuda se toman siempre en la orden de la prioridad según lo descrito en

CONCLUSION

La arquitectura del PA RISC de HP sigue muchas de las mismas consideraciones del diseño de otras arquitecturas del RISC tales como usar sistemas de instrucciones relativamente pequeños con un solo tamaño para ciertas instrucciones. La característica mas distintiva de la arquitectura ha sido probablemente el uso de los tamaños muy grandes del caché (1 MB y sube), y tamaños de bloque relativamente grandes del caché para mejorar el funcionamiento de usos intensivos de la memoria, particularmente los que utilizan localizaciones secuenciales.

 



Daniela Ilarraza 26-04-2004