MXPA00007850A - Interrupciones de computadora de cero tiempo de procesamiento con conmutacion de trabajo. - Google Patents

Interrupciones de computadora de cero tiempo de procesamiento con conmutacion de trabajo.

Info

Publication number
MXPA00007850A
MXPA00007850A MXPA00007850A MXPA00007850A MXPA00007850A MX PA00007850 A MXPA00007850 A MX PA00007850A MX PA00007850 A MXPA00007850 A MX PA00007850A MX PA00007850 A MXPA00007850 A MX PA00007850A MX PA00007850 A MXPA00007850 A MX PA00007850A
Authority
MX
Mexico
Prior art keywords
work
task
cpu
latch
interruption
Prior art date
Application number
MXPA00007850A
Other languages
English (en)
Inventor
Brian Donovan
Original Assignee
Xyron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xyron Corp filed Critical Xyron Corp
Publication of MXPA00007850A publication Critical patent/MXPA00007850A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)

Abstract

La invencion constituye un sistema de interrupcion y cambio de trabajo de cero tiempo de procesamiento de hardware singular para la reduccion o eliminacion de latencia de interrupcion de tiempo de procesamiento de cambio de trabajo en arquitecturas de computadora. Sin perdida de tiempo, el sistema lleva a cabo un estado de trabajo y operaciones de guardar de restauracion entre un ciclo y el siguiente si n intervencion de software. Para cada Unidad de Procesamiento Central (1) la invencion usa uno o mas cerrojos auxiliares (3, 4) en donde un cerrojo (4) se usa como el cerrojo "de funcionamiento" y uno de los cerrojos auxiliares se fija a la memoria de almacenamiento de trabajo. La invencion alterna las conexiones entre los registros "de funcionamiento" alternativos y los registros auxiliares mientras que transfiere los otros trabajos hacia y desde la memoria de almacenamiento de trabajo (2). La invencion proporciona un sistema de enlace de trabajo para permitir el enlace de trabajos para ejecucion en secuencia obligatoria de trabajos enlazados. Ademas, la invencion incluye un sistema contador de "impaciencia" de prioridad para aumentar las prioridades relativas de los distintos trabajos a medida que se aproximan a sus lineas inactivas de trabajo.

Description

"INTERRUPCIONES DE COMPUTADORA DE CERO TIEMPO DE PROCESAMIENTO CON CONMUTACIÓN DE TRABAJO" CAMPO TÉCNICO Esta invención se relaciona con un circuito de procesamiento de interrupción y conmutación de trabajo y los métodos en los sistemas de procesamiento de datos.
ANTECEDENTES DE LA TÉCNICA Las computadoras modernas usan hardware especial para automatizar el procesamiento . de interrupción y conmutación de trabajo. Las interrupciones incluyen eventos tales como transferencias de l/O, relojes, fallas de hardware, interrupciones de software y fallas de software tales como las que se dividen entre cero. De manera que el programa de interrupción no altere el programa de funcionamiento, todos los estados del trabajo interrumpido deben guardarse. Luego, todos _ los nuevos estados de trabajo de interrupción deben recuperarse de la memoria y el procesamiento luego se continua con estos nuevos estados de interrupción de trabajo. Una vez que la interrupción de trabajo, se completa, usualmente se ejecuta una instrucción de regreso de la interrupción, ocasionando - que el proceso de guardar el estado se invierta por si mismo y restablezca el trabajo anterior. La mayoria de las computadoras modernas logran el proceso de cambio de trabajo usando un mecanismo de interrupción hardware que desactiva primero las interrupciones adicionales y guarda solamente el número minimo de registros de estado antes de saltar a un programa de servicio de interrupción especial. El programa de servicio de interrupción especial luego guarda el resto de los registros de trabajo tal y como se requiera. Luego carga el registro para los trabajos de interrupción. Este proceso se invierte para regresar de las interrupciones de manera que la computadora luego pueda regresar a su trabajo original . Durante las operaciones de guardar y restablecer los registros, cualesquiera de las interrupciones intentadas adicionales deben desactivarse para impedir la corrupción de los datos existentes del sistema. De esta manera, la computadora es insensible a las interrupciones durante estos períodos de tiempo, conocidos como latencia de interrrupción. Las arquitecturas de la computadora tradicional deben completar las instrucciones actuales antes de responder a las interrupciones. Típicamente, estas instrucciones varian extensamente en sus duraciones. Además, varias arquitecturas de computadora tienen latencias de interrupción diferentes dependiendo de los modos del proceso de ejecución actual y aquel del proceso de interrupción. Estos dos factores se combinan para ocasionar_ retardos de latencia de interrupción y tiempo de procesamiento altamente no determinante. Además, el retardo de latencia asociado con el comienzo de cada nuevo trabajo de interrupción, en las computadoras del estado actual de la técnica también es el tiempo empleado en la conmutación entre los trabajos. Este tiempo de conmutación es el tiempo de procesamiento de interrupción y cambio de trabajo. Es el tiempo usado para guardar y restablecer los registros y de esta manera es el tiempo no disponible para usarse en el procesamiento. Estas cantidades de tiempo de procesamiento de interrupción y cambio de trabajo asciende a decenas o cientos de ciclos en muchas computadoras modernas. Aún a regímenes de reloj de multi-Megahertz, la combinación de tanto el retardo de latencia como el tiempo requerido con respecto a los resultados a la conmutación de los resultados del tiempo de procesamiento en computadoras que sólo pueden procesar interrupciones a decenas o cientos de Kilohertz. Mientras tanto, las transferencias de datos de medios múltiples se llevan a cabo a desde decenas a cientos de megahertz. Como resultado de estas limitaciones de tiempo de computadora moderna en los tiempos de procesamiento y de - latencia de cambio de trabajo e interrupción, las computadoras actuales no pueden manejar los regímenes de datos requeridos sin el uso de memorias intermedias de almacenamiento extensas y procesadores especializados auxiliares. El tamaño de estas memorias intermedias ocasiona que los sistemas de medios múltiples abarquen docenas de circuitos integrados, cada uno con su costo inherente adicional. Aún a medida que los avances tecnológicos colocan más memoria en cada circuito integrado, el tamaño grande y complejidad de los métodos de transferencia de datos regulados actuales se continúan ocasionando costos de fabricación excesivos mientras que se disminuyen los funcionamientos de operación de la computadora. Las aplicaciones modernas requieren un número aún mayor de interrupciones que simplemente agrava adicionalmente el problema. Los sistemas de interrupción de registro múltiples y conmutación de trabajo se han propuesto anteriormente, pero todos han adolecido de distintas limitaciones. En particular, el uso de aparatos de registro grandes ocasiona un aumento concomitante en el alambrado y retardos relacionados con la capacitancia, desacelerando toda la computadora. Otros métodos han usado almacenamientos de registro separados _para 'almacenamiento de datos, pero esto da por resultado un desperdicio de - tiempo durante el curso del movimiento de los datos hacia y desde estos registros de guardar trabajo antes de la ejecución de una interrupción. Luego, debe usarse tiempo adicional para cargar los datos de trabajo en los registros para fines generales antes de que pueda comenzar el procesamiento de interrupción. Una desventaja adicional de las arquitecturas de computadora convencionales es que no incorporan métodos efectivos para trazar el flujo del procesador, incluyendo cambios de trabajo, sin emuladores y analizadores lógicos de hardware costosos. Mientras tanto, los emuladores de hardware convencionales no pueden probar las computadoras bajo condiciones de funcionamiento reales ya que no pueden funcionar tan rápidamente como las computadoras que están probando. Asimismo, las computadoras carecen de sistemas de ejecución de secuencia de enlace de trabajo a base de hardware y contadores "impacientes" de prioridad de linea inactiva para permitir que las interrupciones aumenten automáticamente sus prioridades con el transcurso de tiempo. Mientras tanto, las instrucciones de ciclos múltiples ininterrumpibles aumentan también los retardos de latencia de interrupción. Estos retardos de latencia pueden - ser cientos o aún miles de ciclos de longitud en las computadoras complejas modernas. Además, la línea de tubería actual de la CPU del estado actual de la técnica se lleva a cabo el procesamiento de datos y las instrucciones a fin de que puedan procesarse en cada ciclo mayor cantidad de datos e instrucciones. Esto tiene un número de desventajas. Cuando llega una interrupción, la línea de tubería de la CPU debe abandonar aquello que no se haya terminado en la línea de tubería y reajustar los distintos contadores para reanudar el procesamiento cuando se reinicia. Esto es llamado una "detención" de la línea de tubería. Cuando se lleva a cabo una instrucción de ramificación, la línea de tubería CPU debe ya sea adivinar de que manera la ramificación caminará, se detendrá o tratará de seguir los resultados de ramificación posibles múltiples. Todas estas varias situaciones de línea de tubería de CPU pueden ocasionar que las computadoras desperdicien los recursos de procesamiento y den por resultado retardos adicionales. Además, los sistema se computadora convencionales requieren regulación extensa para acomodar los altos regímenes de datos. Por lo tanto, por lo general no son tan apropiados para fabricación de construcción unitaria de un solo circuito integrado con sus ventajas en términos de costos, energía más baja y gastos de enfriamiento y funcionamientos aumentados.
COMPENDIO DE LA INVENCIÓN En vista de los problemas de limitaciones anteriormente descritos con respecto a las estructuras actuales y métodos de hacer funcionar las computadoras convencionales, un objeto de la presente invención es proporcionar un mecanismo singular de un mecanismo de interrupción de cero tiempo de procesamiento y de cambio de trabajo para usarse en arquitecturas de computadora para detectar las interrupciones en el fondo y luego llevar a cabo operaciones de guardar y restablecer el estado completo entre un ciclo del procesador y el siguiente sin intervención de software mientras que se emite el número de trabajos solamente mediante el tamaño del sistema de memoria de almacenamiento de trabajo y mientras que se conserva los aspectos de cero tiempo de procesamiento del mecanismo independientemente del tiempo de acceso de la memoria de trabajo. Un objeto adicional de la invención es impedir la pérdida de tiempo eliminando la necesidad de transferir el dato de trabajo de funcionamiento a un elemento de almacenamiento de estado de trabajo separado en -el instante del evento de interrupción y cambio de trabajo. Un objeto adicional de la invención es permitir el uso de parte de la memoria de trabajo del sistema para trazar de manera efectiva el flujo del procesador para uso de tiempo real de velocidad completa, en la depuración de la programación de la computadora. Un objeto adicional de la invención es proporcionar un sistema de enlazamiento de trabajo para permitir el enlazamiento de los trabajos para la ejecución en secuencia obligatoria de los trabajos enlazados como se requieren en los sistemas de. trabajos múltiples. Es también un objeto de la invención el proporcionar un sistema contador "impaciente" de prioridad de aumentar las prioridades relativas de distintos trabajos a medida que se aproximan sus líneas inactivas de prioridad de trabajo. Es un objeto adicional del mecanismo de interrupción y cambio de trabajo de la invención el eliminar la necesidad para memorias intermedias de almacenamiento extensas y procesadores especializados auxiliares con sus costos y retardos asociados. Un objeto adicional de la invención es que permite la interrupción de aquello que se consideraba anteriormente como siendo instrucciones no interrumpibles conmutando todo el estado del trabajo, no justamente el estado de los registros de CPU para eliminar la latencia involucrada por lo demás en instrucciones no interrumpibles de ciclos múltiples prolongadas. Es también un objeto de la invención crear una estructura de arquitectura de computadora determinante para eliminar de manera efectiva la impredicibilidad de latencia. Todavía otro objeto adicional del mecanismo de interrupción y cambio de trabajo de la invención es eliminar las porciones de la línea de tubería de CPU anteriormente requeridas y los circuitos de predicción de ramificación a fin de evitar mejor las detenciones y retardos de la computadora. Además, un objeto de la invención es la de que el sistema debe diseñarse para ser sencillo y compacto de manera suficiente en su circuito a fin de lograr sus objetos dentro de los límites de un solo circuito integrado pequeño capaz de implementarse dentro de una CPU dentro de los límites de los procesos de fabricación convencionales a fin de reducir la energía y requisitos de enfriamiento del circuito de la invención mientras que se mejoran las velocidades de procesamiento de la computadora. Un beneficio de la presente invención es la que permite que las computadoras procesen tanto las - - interrupciones como cambios de trabajo con un tiempo de procesamiento de cero y muy pocos ciclos de latencia, típicamente justamente uno o dos de la memoria local. Esto se logra empleando hardware paa automatizar completamente todo el proceso de interrupción y cambio de trabajo detectando las interrupciones en el fondo y luego llevando a cabo operaciones de guardar y restablecer el estado completo entre un ciclo del procesador y el siguiente sin intervención de software mientras que se limita el número de trabajos únicamente mediante el tamaño del- sistema de memoria de almacenamiento de trabajo y mientras que se conserva el tiempo de procesamiento de cero del mecanismo independientemente del tiempo de acceso de la memoria de trabajo. La presente invención evita el alambrado y retardo de capacitancia asociados con grupos de registros grandes. Usa un registro relativamente pequeño que se desacopla eléctricamente del proceso de antecedentes de la computadora para guardar y restablecer los estados de registro de un almacenamiento de memoria grande. Esto es de beneficio considerable debido a la densidad mucho más elevada de los almacenes de la memoria en comparación con los grupos de registro. Además, a expensas en la latencia, los almacenamientos de memoria externos pueden usarse para almacenar estados de registro. Esto aumenta considerablemente la capacidad del sistema para trabajos de tiempo de procesamiento de cero adicionales obtenibles. El mecanismo de interrupción y cambio de trabajo logra su objeto usando dos o más cerrojos de trabajo por bit de registro de trabajo. Cada uno de estos cerrojos puede conectarse alternativamente con el almacenamiento de memoria de trabajo grande o la CPU. De esta manera, aún cuando la CPU esté usando un cerrojo, el dato en otro cerrojo puede guardarse y el dato de trabajo adicional puede cargarse simultáneamente. Una máquina de estado pequeño controla la secuencia de los cambios de trabajo. La arquitectura del mecanismo de interrupción y cambio de trabajo añade menos de 2 retardos de compuerta a través y por encima de un solo registro. El tiempo de acceso de la memoria de acceso aleatoria de almacenamiento de trabajo (RAM) no se añade al tiempo de procesamiento de interrupción y cambio de trabajo. Los procesos de circuito integrados actuales permiten que la RAM de trabajo funcione dentro de un ciclo permitiendo una interrupción de "peor caso" y una latencia de cambio de trabajo de 2 ciclos. En contraste con los sistemas de computadora tradicionales, los sistemas determinantes tienen una independencia de latencia fija de modos de funcionamiento o interrupción, e independientemente de la duración de la instrucción actual.
En la invención presente, el sistema es interrumpible en cualquier momento puesto que el estado completo de la máquina se iconserva durante la interrupción. El retardo de interrupción es uno de 'los dos ciclos de latencia y por lo tanto es mucho más determinante que aquel de las computadoras tradicionales. Un beneficio adicional de la invención es que los sistemas son mucho más fáciles de diseñar, probar y depurar usando estructuras de interrupción determinantes. Todavía otro beneficio de esta invención es que es tolerante a fallas, puede colocarse por si o colocarse en un modo que permite la depuración individual de paso pox paso. Un beneficio adicional es el de que se requiere menos potencia de procesamiento y menos regulación que debe mantenerse en reserva cuando se usa una arquitectura determinante en . oposición a - una arquitectura no determinante resultante en configuraciones de- procesador menos costosas. Un beneficio adicional es que debido a que es determinante, la invención facilita nuevas oportunidades de aplicación de interrupción potenciales . Puesto que este mecanismo de interrupción y cambio de trabajo de la invención usa uno - de los cerrojos de trabajo como el registro conectado con la CPU, no se - requiere ninguna transferencia de datos en un elemento de almacenamiento de estado de trabajo separado como en los otros métodos. El resultado todavía es un beneficio adicional ya que el tiempo se guarda durante el curso del proceso. Un beneficio adicional de este sistema de interrupción y cambio de trabajo es la capacidad para crear una memoria de traza de una porción de la memoria de trabajo, permitiendo de esta manera la depuración de tiempo real a velocidad completa de las computadoras basadas en este sistema. Todavía un beneficio adicional de esta invención es su sistema de enlace de trabajo que permite que los trabajos se enlacen de manera que deben ejecutarse en secuencia. Esto guarda el tiempo a través de métodos de software. La invención proporciona un beneficio adicional ya que su sistema de contador de prioridad de línea inactiva de trabajo permite que los trabajos que han señalado una interrupción de hardware aumenten automáticamente su prioridad con el transcurso del tiempo. Esto es particularmente apropiado para trabajos más lentos tales como trabajos de audio que pueden comenzar a una prioridad baja. Usualmente la CPU encontrará tiempo para servir los trabajos de prioridad más bajos puesto que es - perfecto cualquier tiempo antes del siguiente período de muestra. Sin embargo, algunas veces, la CPU tiene muchos trabajos de prioridad elevados. En este caso, el sistema de contador de prioridad de línea inactiva de trabajo de la invención aumenta gradualmente la prioridad de los trabajos de prioridad más bajos a medida que se aproximan sus líneas inactivas . Un beneficio adicional de la invención es que los sistemas de computadora diseñados con este mecanismo de interrupción y cambio de trabajo puede manejar regímenes de dato de medios múltiples sin regulación significativa y sus circuitos de control inherentes. Esto permite mayor funcionalidad de I/O con mucho menos circuito. Todavía otro beneficio significativo de la invención es que permite que las interrupciones que se consideraban anteriormente como siendo instrucciones no interrumpibles conmutando todo el estado del trabajo, no justamente el estado de los registros de CPU, para eliminar la latencia involucrada por lo demás en instrucciones interrumpibles de ciclos múltiples prolongadas. Un beneficio „ adicional de este sistema de interrupción y conmutación de trabajo de la invención es su capacidad para reemplazar las funciones de predicción de ramificación y líneas de tubería en la CPU. La invención propuesta resuelve los problemas actuales que existen con - la CPU con líneas de tubería. Logra esto sin líneas de tubería o circuito de predicción de ramificación simplemente conmutando los trabajos. No se requiere predicción de ramificación. La CPU procesa las instrucciones de ramificación a medida que ocurren. Si las instrucciones de ramificación requieren datos que no están en la memoria local, el trabajo de ramificación se cambia por el trabajo de espera y el procesamiento continua. Un beneficio adicional de esta invención es de que es sencillo y lo bastante compacto para permitir su colocación en un solo circuito integrado pequeño compatible con los procesos de fabricación existentes. Como resultado, se reducen los requisitos de energía para el circuito real, las necesidades posibles para un equipo de enfriamento con requisitos concomitantes para energía de enfriamiento eléctrica extra ya sea se reducen o eliminan, y la velocidad de procesamiento de CPU se mejora mediante reducción en el tamaño y complejidad del circuito y la reducción de esta manera en el número de circuitos integrados e interconexiones de circuitos integrados del sistema. Los objetos, particularidades y ventajas de la invención anteriormente citados y otros se comprenderán más fácilmente al tomar en cuenta la siguiente descripción detallada de la invención, que se toma junto con los dibujos que se acompañan. BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un diagram de circuito de una modalidad de una rebanada del bit de un registro de trabajo de conformidad con la presente invención. La Figura 2 es una gráfica de flujo que ilustra la conmutación de trabajo. La Figura 3 es un diagrama funcional de un circuito de procesamiento de interrupción y cambio de trabajo. La Figura 4 es un diagrama de circuito de una implementación alternativa del sistema de interrupción y cambio de trabajo usando tres enchufes en vez de dos. La Figura 5 es un diagrama de circuito de un registro de trabajo con circuito de trazo adicional. La Figura 6 es un diagrama funcional de una implementación del sistema de control de trazo. La Figura 7 es un diagrama de tiempo que ilustra la secuencia de control para conmutación de trabajo de muestra. MEJORES MODOS PARA LLEVAR A CABO LA INVENCIÓN La Figura 1 muestra esquemáticamente una rebanada de bit de un registro de trabajo para una computadora 1.
Treinta y dos de estas rebanadas se usan para cada registro de 32 bit. Típicamente, una CPU usaría una pluralidad de - registros de 32 bit. La CPU 1 y la memoria de acceso aleatorio estática (SRAM) 2 pueden alternativamente conectarse con el enganche 3 y el enganche 4 (nunca con el mismo enganche) . Para fines de discusión comenzaremos con el enganche 3 conectado con la CPU y el enganche 4 conectado con la SRAM 2. En esta configuración, la CPU estaba haciendo funcionar el trabajo almacenado en el enganche 3. Mientras que la CPU 2 está haciendo funcionar un programa usando el enganche 3 de trabajo, el hardware procesa las interrupciones en el fondo. La Figura 3 ilustra esquemáticamente el circuito de procesamiento de interrupción. Las interrupciones de hardware 90 contienen todas las fuentes de hardware posibles para interrupciones incluyendo pasadores externos, y dispositivos periféricos internos y generadores de excepción. En la implementación preferida, a cada una de las fuentes de interrupción principales es asignada un número de trabajo de hardware fijo. Alternativamente, es posible una cartografía flexible entre el hardware y las fuentes y trabajos. Cuando los Registros del Contador de Tiempo de Expiración 91 llegan a su cuenta final, se envían una interrupción justamente como cualquier fuente de interrrupción de hardware 90. El trabajo controlado por un registro del contador de tiempo de expiración 91 funcionará después de que el registro del contador de tiempo de expiración 91 termina y cuando está funcionando transferirá automáticamente el nuevo valor del tiempo de expiración desde su registro de contador de tiempo de expiración 91. Las fuentes de interrupción posibles, los registros del contador de tiempo de expiración 91, y las interrupciones 90 de hardware se combinan en la compuerta 99 "O" y van hacia el Control de Capacitación de Interrupción 96. El conmutador de Control de Capacitación de Interrupción 96 se controla mediante el sistema de enlace de trabajo. El sistema de enlace de trabajo usa un Registro de Enlace 81 del trabajo que se lleva a cabo para alternar el cerrojo ENLAZADO 83 de un trabajo almacenado, a través del decodificador de trabajo 82 y la compuerta "Y" 100. La escritura al Registro de Enlace 81 también capacita el trabajo especificado. Después de que el cerrojo ENLAZADO se ha ajustado, cuando el trabajo pre-requerido funciona de nuevo, re-permitirá el trabajo especificado en el Registro de Enlace 81. Luego", el trabajo especificado puede hacerse funcionar. Al final del funcionamiento del trabajo ENLAZADO, incapacitará su propio cerrojo 97 de capacitación de interrupción si su cerrojo 83 ENLAZADO se ha ajustado a través del decodificador de trabajo 102 y el circuito de compuerta "Y" 103 y circuito de compuerta "O" 104. Un diagrama lógico para este circuito se muestra en la Figura 3A. De esta manera, este circuito garantizará que el - 1! trabajo enlazado y el trabajo pre-requerido funcionen de manera alternativa y que el trabajo ENLAZADO siempre funcione después del trabajo pre-requerido y no anteriormente. Las cadenas largas de trabajos enlazados son. posibles . Las señales de interrupción que llegan a través del Control de Capacitación de Interrupción 86 luego van a su registro 95 del contador de Prioridad de trabajo. Este registro está cargado desde el trabajo a través del BUS de la CPU, cuando funciona con la prioridad de partida del trabajo. El cerrojo 94 del régimen de Línea Inactiva también se carga cuando funciona el trabajo y luego este se carga en el Contador de Prioridad de Línea Inactiva de Trabajo 93. Las interrupciones que llegan a través del control de Capacitación de Interrupción 96 inician el funcionamiento del Contador de Prioridad de Línea Inactiva de Trabajo 93. El contador de Prioridad de Línea Inactiva de Trabajo 93 cuenta hasta que se lleva a cabo y luego envía una señal al contador 95 de Prioridad de Trabajo para aumentar la prioridad de trabajo en 1 . Esta misma señal se usa para volver a cargar el Cerrojo del Régimen de Línea Inactiva 94 hacia el Contador de Prioridad de Línea Inactiva de Trabajo 93. De esta manera, el trabajo puede ajustarse para aumentar su prioridad después de que se ha interrumpido a medida que se aproxima su línea inactiva.
Cada trabajo alimenta su prioridad desde el registro 95 del contador de prioridad de trabajo hacia el selector 19 de Prioridad. Este circuito recoge el trabajo de prioridad más elevado y pasa el número de trabajo y prioridad al controlador 20 del conmutador de Trabajo. Puesto que los trabajos pueden emplear el tiempo en espera de funcionar en uno de los cerrojos 4 o 3 (Figura 1), el Contador de Prioridad de Línea Inactiva 93 de prioridad de trabajo para el trabajo de espera se hace pasar a través del MUX 92 hacia el Controlador 20 del conmutador de trabajo. De esta manera, el controlador de trabajo 20 puede mantener aumentando la prioridad del trabajo de espera hasta que excede la prioridad del trabajo de funcionamiento y luego inicia un intercambio de trabajo. En caso de que una pluralidad de trabajos de prioridad iguales se presente simultáneamente al selector 19 de prioridad, el selector 19 de prioridad determinará la prioridad y seleccionará los trabajos en secuencia. El controlador 20 del conmutador de trabajo usa una máquina de estado pequeña para colocar en secuencia el bus del controlador de trabajo para lograr un conmutador de trabajo. La Figura 2 muestra una gráfica de flujo que explica los pasos llevados a cabo por el controlador 20 del conmutador de trabajo para lograr un conmutador de trabajo.
Durante el tiempo cero, en la Figura 1, el circuito se ajusta de la siguiente manera: la CPU 1 se conecta con el cerrojo 3; la línea de señal del bus A/B de control de trabajo se ajusta a B: la salida del cerrojo 3 Q va a través del multiplexor (MUX) 17 hacia la entrada de CPU 1; la salida de CPU 1 va a través de MUX 14 hasta la entrada D del cerrojo 3; las salidas del cerrojo 4 van a través de MUX 13 a la entrada de SRAM 2; y, la salida de SRAM 2 va a través de MUX 15 a la entrada D del -cerrojo 4. El primer paso en los trabajos de conmutación es leer el trabajo de la SRAM 2 hacia un cerrojo que no se está usando mediante la CPU 1, en este caso el cerrojo 4. Esto se logra colocando la dirección del -trabajo de interrupción en el bus de control de trabajo que es el bus de dirección de TRABAJO PARA LEER. La señal de RELOJ B luego almacena ese estado en el cerrojo 4. (Puesto que nuestro ejemplo es desde un comienzo en frió, no hay trabajo en el cerrojo 4. Normalmente habrá ahí un trabajo. Este trabajo puede escribirse de nuevo en la SRAM 2 al mismo tiempo en que se lee de la SRAM 2 el nuevo trabajo de interrupción, suponiendo que las direcciones de destino del trabajo de TRABAJO PARA ESCRIBIR y luego suponiendo la línea 1 de SRAM DE RELOJ. El nuevo trabajo se carga en el cerrojo 4 durante el tierno T2 (Figura 2) . En el mismo borde de reloj o una fracción de un ciclo después, la señal de control A/B se cambia a B ocasionando que el cerrojo 4 dé salida y tome la entrada desde CPU 1, y ocasionando que el cerrojo 3 tome la entrada y dé salida a SRAM 2. En este punto, si la tarea original se interrumpe de nuevo, la línea A/B se alterna de nuevo para conmutar los trabajos sin requerir una lectura de la SRAM 2. El ejemplo anteriormente citado es el caso de iniciación. Normalmente, una vez que se inicia habrá un trabajo que espera para hacerse funcionar cuando llega una nueva interrupción. De esta manera, el trabajo de espera se "lanzaría" (giraría) . Pero en la modalidad preferida, el trabajo de espera siempre se hace funcionar durante por lo menos un ciclo mientras que se obtiene el nuevo trabajo de interrupción desde la SRAM 2 y el trabajo de funcionamiento anterior se guarda en la SRAM 2. En secuencia, cuando el cerrojo 3 se conecta con la CPU 1 y está funcionando un trabajo, y mientras que el cerrojo 4 está reteniendo el siguiente trabajo programado para hacerse funcionar, si se detecta una nueva interrupción de trabajo siguiente programado para hacerse funcionar, se detecta una nueva interrupción de prioridad igual o más elevada mediante el selector de prioridad 19 (Figura 3), luego en Tl (Figura 2) la línea A/B se alterna a B, ocasionando que el dato del trabajo en el cerrojo 4 se fije a la CPU 1, mientras que el cerrojo 3 está ahora conectado con la SRAM 2. La nueva - dirección de trabajo de interrupción luego se coloca en el bus de control de trabajo de TRABAJO PARA LEER, y la dirección de trabajo de funcionamiento anterior se coloca en las líneas de TAREA PARA ESCRIBIR. En T2 (Figura 2), el dato de trabajo de interrupción anterior se coloca en SRAM 2, el nuevo dato de trabajo de interrupción se coloca en el reloj del cerrojo 3 y la CPU 1 habrá colocado en el reloj cualquier dato (si se programó) hacia el cerrojo 4. La línea A/B luego se hace alternar de nuevo hacia la A para hacer funcionar el nuevo trabajo de interrupción desde el cerrojo 3. Las implementaciones alternativas de la invención son posibles. La Figura 4 muestra un bit de registro implementado con 3 cerrojos en vez de 2. Aquí, 3 MUX de entrada 40 y 41 reemplazan los 2 MUX de entrada en el diseño de cerrojo 2 (Figura 1) . Un MUX 42 adicional se añade para seleccionar la SRAM 2 o la CPU 1. El cerrojo extra permite que los 3 trabajos tengan latencias de justamente 1 ciclo. Sin embargo, el circuito es mayor por bit y algo más lento debido al alambrado extra y la capacitancia. También hay retardos de compuerta adicionales a través de los MUX 40 y 41 en comparación con los MUX 13 y 17 más sencillos (Figura 1) . La configuración óptima para una aplicación determinada depende de las características específicas del proceso de fabricación del circuito integrado usado y las demandas de tiempo de la aplicación. La Figura 5 muestra una implementación de la función de trazo. Además, de la función de conmutación de trabajo que se describe en lo que antecede y que se muestra en la Figura 1, MUX 50 y el conmutador 51 de tri-estado se han añadido. La SRAM 2a de trazo se usa ya sea como la SRAM 2 de conmutación de trabajo o como la SRAM 2a de trazo cambiando -la dirección y línea de control de trazo/trabajo a MUX 50. Cuando la CPU 1 se almacena en el cerrojo 3 o 4, si está trazando, MUX 50 pasará el dato a la SRAM 2a de trazo. La Figura 6 muestra un diagrama funcional del controlador de trazo. Varios puntos de prueba se seleccionan mediante el MUX 60 para la prueba lógica mediante el cirucito lógico 61 de prueba. Si la lógica de prueba indica que la situación coincide con un punto de ajuste de la prueba del usuario, el controlador de trazo 62 comienza a trazar. El controlador de trazo 62 en su uso más sencillo envía direcciones de escritura de trazo en secuencia mientras que comprueba la señal de trazo. El controlador de trazo puede también diseñarse para trazar continuamente hasta que ocurra un evento, y luego dejar de trazar o trazar durante unos cuantos más pasos antes de detenerse. La lectura del dato de trazo se logra asegurándose el control de- paso en el tri-estado 51 (Figura 5) para cada bit que vaya a conectarse con el bit de lectura de trazo. Este dato puede leerse de un bit a la vez, puesto que la lectura del trazo no es un trabajo crítico de tiempo, o puede agruparse para la salida del registro usando un bus más amplio. Aún cuando se han descrito en lo que antecede varias modalidades de la presente invención, debe comprenderse que se han presentado a modo de ejemplo y no de limitación. Por lo tanto, el ancho y alcance de la presente invención no debe limitarse por ninguna de las modalidades ejemplares anteriormente descritas, sino que debe definirse únicamente de acuerdo con las siguientes reivindicaciones y sus equivalentes. Quedará comprendido por aquellas personas expertas en la técnica que pueden hacerse varios cambios en la forma y detalle sin desviarse del espíritu y alcance de la invención. Los términos y expresiones que se han empleado en la especificación que antecede se usan en la presente como términos de descripción y no de limitación, y no hay intención, en el uso de estos términos y expresiones de excluir los equivalentes de las particularidades mostradas y descritas o porciones de las mismas, siendo reconocido que el alcance de la invención se define y limita únicamente mediante las reivindicaciones que se darán a continuación.

Claims (1)

REIVINDICACIÓN:
1. En una microcomputadora que tiene una multiplicidad de registros que se ~ multiplexan selectivamente para comunicarse con una CPU, y una memoria del aparato de registro para almacenar una multiplicidad de aparatos de registro y siendo dirigidos de manera doble para leer un -primer aparato de registro simultáneamente con la escritura de un segundo aparato de registro, cada aparato de registro es designado para llevar a cabo un trabajo, una mejora para permitir la conmutación rápida entre los trabajos, comprendiendo la mejora : un primero y un segundo conjuntos de -cerrojo paira cada bit en el aparato de registro, cada conjunto de cerrojo incluye: un cerrojo; un primer multiplexor que tiene una salida conectada con la entrada del cerrojo, una primera entrada conectada con una salida de la CPU y una segunda entrada conectada con una salida de la memoria del aparato de registro citado; un segundo multiplexor que tiene una entrada conectada con la salida del cerrojo una primera salida conectada con una entrada de la CPU y una segunda salida conectada con una entrada de la memoria del aparato de registro, mediante lo cual un primer aparato de registro procesado mediante la CPU puede escribirse en los primeros aparatos de cerrojo en el mismo ciclo de reloj que un segundo aparato de registro se lee de la memoria del aparato de registro y se almacena en los segundos aparatos de cerrojo, y un tercer aparato de registro se lee de los segundos aparatos de cerrojo y se escribe en la memoria del aparato de registro citado.
MXPA00007850A 1998-02-13 1999-02-05 Interrupciones de computadora de cero tiempo de procesamiento con conmutacion de trabajo. MXPA00007850A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/023,333 US5987601A (en) 1997-02-14 1998-02-13 Zero overhead computer interrupts with task switching
PCT/US1999/002575 WO1999041661A1 (en) 1998-02-13 1999-02-05 Zero overhead computer interrupts with task switching

Publications (1)

Publication Number Publication Date
MXPA00007850A true MXPA00007850A (es) 2002-08-20

Family

ID=21814484

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA00007850A MXPA00007850A (es) 1998-02-13 1999-02-05 Interrupciones de computadora de cero tiempo de procesamiento con conmutacion de trabajo.

Country Status (14)

Country Link
US (2) US5987601A (es)
EP (1) EP1062572A4 (es)
JP (1) JP2002503845A (es)
KR (3) KR100647526B1 (es)
CN (1) CN1116639C (es)
AU (1) AU2659899A (es)
BR (1) BR9907848A (es)
CA (1) CA2320913C (es)
HK (1) HK1036663A1 (es)
ID (1) ID26818A (es)
MX (1) MXPA00007850A (es)
NO (1) NO20004043L (es)
TW (1) TW448366B (es)
WO (1) WO1999041661A1 (es)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845419B1 (en) * 2000-01-24 2005-01-18 Freescale Semiconductor, Inc. Flexible interrupt controller that includes an interrupt force register
DE60132633T2 (de) 2000-10-18 2009-01-15 Koninklijke Philips Electronics N.V. Digitale signalprozessorvorrichtung
US20030014474A1 (en) * 2001-05-30 2003-01-16 Mckaig Ray S. Alternate zero overhead task change circuit
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US7136419B2 (en) * 2002-06-20 2006-11-14 Lightfleet Corporation Pulse width communications using precision timing
US6920632B2 (en) * 2002-08-23 2005-07-19 Xyron Corporation Dynamic multilevel task management method and apparatus
JP2005165961A (ja) * 2003-12-05 2005-06-23 Matsushita Electric Ind Co Ltd 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路
US9286445B2 (en) * 2003-12-18 2016-03-15 Red Hat, Inc. Rights management system
US8533716B2 (en) * 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US7779239B2 (en) * 2004-07-28 2010-08-17 Intel Corporation User opt-in processor feature control capability
US9038070B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US7149129B2 (en) * 2004-10-25 2006-12-12 Lattice Semiconductor Corporation Memory output data systems and methods with feedback
JP4529661B2 (ja) * 2004-12-02 2010-08-25 株式会社アドヴィックス Abs制御装置
US7224622B2 (en) * 2005-02-14 2007-05-29 Himax Technologies, Inc. Method for writing data into memory and the control device
CN100361049C (zh) * 2005-03-08 2008-01-09 华硕电脑股份有限公司 计算机系统及其清除控制电路和清除环境设定内存的方法
JP4068106B2 (ja) * 2005-08-05 2008-03-26 三菱電機株式会社 リアルタイム組込み簡易モニタプログラム
US7937706B2 (en) * 2005-08-22 2011-05-03 Runtime Design Automation, Inc. Method and system for performing fair-share preemption
KR100679050B1 (ko) * 2005-12-12 2007-02-06 삼성전자주식회사 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
KR100663709B1 (ko) * 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
US8316158B1 (en) * 2007-03-12 2012-11-20 Cypress Semiconductor Corporation Configuration of programmable device using a DMA controller
WO2009022371A1 (ja) 2007-08-16 2009-02-19 Netcleus Systems Corporation タスク処理装置
US20110072247A1 (en) * 2009-09-21 2011-03-24 International Business Machines Corporation Fast application programmable timers
KR20150002129A (ko) * 2013-06-28 2015-01-07 에스케이하이닉스 주식회사 반도체 장치, 그를 포함하는 반도체 시스템 및 그 반도체 시스템의 테스트 방법
KR20170065845A (ko) 2015-12-04 2017-06-14 삼성전자주식회사 프로세서 및 제어 방법
US9971516B2 (en) 2016-10-17 2018-05-15 International Business Machines Corporation Load stall interrupt
CN108874517B (zh) * 2018-04-19 2021-11-02 华侨大学 固定优先级待机备用系统利用率划分能耗优化方法
CN111506531B (zh) * 2020-03-27 2023-06-02 上海赛昉科技有限公司 一种easy-master微码模块及其配置方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL294820A (es) * 1962-07-03
US3789365A (en) * 1971-06-03 1974-01-29 Bunker Ramo Processor interrupt system
US3757306A (en) * 1971-08-31 1973-09-04 Texas Instruments Inc Computing systems cpu
US4010448A (en) * 1974-10-30 1977-03-01 Motorola, Inc. Interrupt circuitry for microprocessor chip
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
US4034349A (en) * 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4507727A (en) * 1982-02-11 1985-03-26 Texas Instruments Incorporated Microcomputer with ROM test mode of operation
US4628158A (en) * 1982-07-16 1986-12-09 At&T Bell Laboratories Stored program controller
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer
EP0945787A3 (en) * 1991-07-08 2008-12-31 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
KR970008523B1 (ko) * 1991-10-21 1997-05-24 가부시키가이샤 도시바 프로세서
US5682554A (en) * 1993-01-15 1997-10-28 Silicon Graphics, Inc. Apparatus and method for handling data transfer between a general purpose computer and a cooperating processor

Also Published As

Publication number Publication date
AU2659899A (en) 1999-08-30
EP1062572A4 (en) 2003-06-25
HK1036663A1 (en) 2002-01-11
CN1293776A (zh) 2001-05-02
EP1062572A1 (en) 2000-12-27
US5987601A (en) 1999-11-16
ID26818A (id) 2001-02-15
KR100647526B1 (ko) 2006-11-23
CA2320913C (en) 2008-10-14
NO20004043L (no) 2000-10-11
TW448366B (en) 2001-08-01
KR20060024029A (ko) 2006-03-15
KR100617357B1 (ko) 2006-08-28
WO1999041661A1 (en) 1999-08-19
BR9907848A (pt) 2002-05-07
KR100635519B1 (ko) 2006-10-17
KR20060031883A (ko) 2006-04-13
JP2002503845A (ja) 2002-02-05
CN1116639C (zh) 2003-07-30
KR20010040959A (ko) 2001-05-15
NO20004043D0 (no) 2000-08-11
CA2320913A1 (en) 1999-08-19
US6981133B1 (en) 2005-12-27

Similar Documents

Publication Publication Date Title
MXPA00007850A (es) Interrupciones de computadora de cero tiempo de procesamiento con conmutacion de trabajo.
US9753729B2 (en) System for selecting a task to be executed according to an output from a task control circuit
US6629236B1 (en) Master-slave latch circuit for multithreaded processing
JP4006180B2 (ja) マルチスレッド式プロセッサでスレッド切替えイベントを選択するための方法および装置
JP3714598B2 (ja) マルチスレッド式プロセッサでのスレッド優先順位の変更
US6256775B1 (en) Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) Thread switch tuning tool for optimal performance in a computer processor
CA1091355A (en) Microprocessor system
EP1027645A1 (en) Thread switch control in a multithreaded processor system
WO1999021088A1 (en) An apparatus and method to guarantee forward progress in a multithreaded processor
US8327379B2 (en) Method for switching a selected task to be executed according with an output from task selecting circuit
US6298431B1 (en) Banked shadowed register file
JPS6145272B2 (es)
EP0169577B1 (en) Microcomputer
US20030014474A1 (en) Alternate zero overhead task change circuit
JPH05165641A (ja) シングルチップマイクロコンピュータ
JPS6352240A (ja) デ−タ処理装置
JPS6352241A (ja) マイクロプロセツサ
SU1711173A1 (ru) Устройство приоритетного доступа к общей шине
JPH10171670A (ja) タスク切り替え装置及びタスク切り替えプログラムを記録した媒体
JPH0247751A (ja) チャネル制御方式
JPH01102678A (ja) ベクトル処理装置

Legal Events

Date Code Title Description
FG Grant or registration
MM Annulment or lapse due to non-payment of fees