ES2606128T3 - Arbitrador de espacio de datos - Google Patents

Arbitrador de espacio de datos Download PDF

Info

Publication number
ES2606128T3
ES2606128T3 ES10740057.4T ES10740057T ES2606128T3 ES 2606128 T3 ES2606128 T3 ES 2606128T3 ES 10740057 T ES10740057 T ES 10740057T ES 2606128 T3 ES2606128 T3 ES 2606128T3
Authority
ES
Spain
Prior art keywords
priority
master
bus
default
arbitrator
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES10740057.4T
Other languages
English (en)
Inventor
Michael I. Catherwood
Ashish Desai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Application granted granted Critical
Publication of ES2606128T3 publication Critical patent/ES2606128T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Un procesador digital, que comprende: un bus maestro (110; M0) por defecto que tiene una prioridad más alta en un modo por defecto; una pluralidad de buses maestros (105, 115; M1, M2, M3, M4) secundarios que tienen prioridades asociadas, en el que la pluralidad de buses maestros (105, 115; M1, M2, M3, M4) secundarios tienen una relación de prioridad predeterminada entre sí; estando el procesador digital caracterizado por un arbitrador (130, 135, 140, 145) de espacio de datos, en el que el arbitrador (130, 135, 140, 145) de espacio de datos es programable en un modo no por defecto para elevar una prioridad de cualquiera de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios para que tenga una prioridad más alta que la prioridad del bus maestro (110; M0) por defecto mientras mantiene la relación de prioridad predeterminada a únicamente aquellos buses maestros (105, 115; M1, M2, M3, M4) secundarios para los que el nivel de prioridad también se ha elevado por encima de la prioridad del bus maestro (110; M0) por defecto.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Arbitrador de espacio de datos
La presente divulgacion se refiere a procesadores digitales, y, mas particularmente, a sistemas de control de prioridad de arbitradores de datos en un procesador digital.
En sistemas embebidos que usan procesadores digitales, por ejemplo, microcontroladores, que tienen una pluralidad de dispositivos perifericos y una unidad de procesamiento central (CPU), se comparten ciertas unidades funcionales entre la CPU y al menos algunos de los perifericos tales como un controlador de acceso directo a memoria (DMA) o un controlador de depurador en circuito (ICD). Por lo tanto, se usa un arbitrador de espacio de datos para determinar derechos de acceso a la memoria o registros de funciones especiales que se comparten. En un arbitrador de espacio de datos para un sistema de multiples maestros, la CPU es tfpicamente el bus maestro de la prioridad mas alta. Un arbitrador de espacio de datos tfpico consiste en un codificador de prioridad y un conjunto de multiplexores de bus de datos. Un arbitrador de espacio de datos programable convencional implementa la capacidad de programacion en el codificador de prioridad pero usa prioridades predeterminadas en las que la CPU en general tiene la prioridad mas alta. Por lo tanto, cada vez que la CPU esta accediendo a la memoria todos los otros perifericos normalmente se bloquean. Sin embargo, en ocasiones en sistemas embebidos, justo de manera temporal, puede ser mas cntico responder a un evento externo, mediante, por ejemplo, un periferico para entonces asegurar alto rendimiento de CPU. El documento US 6.272.580 desvela un aparato y procedimiento para elevar dinamicamente un bus maestro de nivel inferior a un bus maestro de nivel superior en un sistema de arbitracion de multiples niveles.
Sin embargo, existe una necesidad de un arbitrador de espacio de datos mas flexible mejorado. Este y otros objetos pueden conseguirse mediante el procesador de datos y procedimiento de acuerdo con las reivindicaciones independientes. Mejoras adicionales estan caracterizadas en las reivindicaciones dependientes.
De acuerdo con una realizacion, un procesador digital puede comprender un bus maestro por defecto que tiene una prioridad mas alta en un modo por defecto; una pluralidad de buses maestros secundarios que tienen prioridades asociadas, en el que la pluralidad de buses maestros secundarios tienen una relacion de prioridad predeterminada entre sf; y un arbitrador de espacio de datos, en el que el arbitrador de espacio de datos es programable en un modo no por defecto para elevar una prioridad de cualquiera de los buses maestros secundarios para tener una prioridad mas alta que la prioridad del bus maestro por defecto mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad del bus maestro por defecto.
De acuerdo con una realizacion adicional, el arbitrador de espacio de datos puede conceder acceso a memoria de datos y la memoria de datos puede comprender al menos uno de memoria de acceso aleatorio, memoria de puerto dual, registros de funciones especiales. De acuerdo con una realizacion adicional, el procesador digital puede comprender adicionalmente un registro de prioridad de bus maestro que tiene bits de contraorden de prioridad, al menos uno de los buses maestros secundarios esta asignado a uno de los bits de contraorden de prioridad, en el que el registro de prioridad de bus maestro especifica programablemente cuales de la pluralidad de buses maestros secundarios tienen prioridades mas altas o mas bajas que la prioridad del bus maestro por defecto. De acuerdo con una realizacion adicional, establecer un bit de contraorden de prioridad puede provocar que se eleve un nivel de prioridad de un bus maestro secundario asociado por encima del nivel de prioridad del bus maestro por defecto. De acuerdo con una realizacion adicional, el procesador digital puede comprender adicionalmente un decodificador de direccion acoplado entre el arbitrador de espacio de datos y la memoria de datos. De acuerdo con una realizacion adicional, el procesador digital puede comprender adicionalmente un decodificador de direccion aproximada acoplado entre el arbitrador de espacio de datos y el bus maestro por defecto o buses maestros secundarios. De acuerdo con una realizacion adicional, el procesador digital puede ser un procesador de senales digitales y la memoria de acceso aleatorio puede dividirse en una memoria X y una memoria Y. De acuerdo con una realizacion adicional, el bus maestro por defecto puede ser una unidad de procesamiento central (CPU).
De acuerdo con otra realizacion, un procedimiento para arbitrar acceso de espacio de datos en un procesador digital, puede comprender: asignar prioridades a un bus maestro por defecto y a una pluralidad de buses maestros secundarios en el que el bus maestro por defecto tiene la prioridad mas alta en un modo por defecto y en el que la pluralidad de buses maestros secundarios tienen una relacion de prioridad predeterminada entre sf; y programar un arbitrador de espacio de datos en un modo no por defecto para elevar una prioridad de cualquiera de los buses maestros secundarios para tener una prioridad mas alta que la prioridad del bus maestro por defecto mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad del bus maestro por defecto.
De acuerdo con una realizacion adicional del procedimiento, el procedimiento puede comprender adicionalmente: solicitar acceso a un espacio de datos mediante un bus maestro secundario mientras el bus maestro por defecto tiene acceso al espacio de datos y si la prioridad del bus maestro secundario es mas alta que la prioridad del bus maestro por defecto, conceder acceso al espacio de datos bloqueando de otro modo el bus maestro secundario. De acuerdo con una realizacion adicional del procedimiento, el espacio de datos puede ser memoria de datos que
10
15
20
25
30
35
40
45
comprende al menos uno de memoria de acceso aleatorio, memoria de puerto dual, registros de funciones especiales. De acuerdo con una realizacion adicional del procedimiento, la etapa de programar un arbitrador de espacio de datos para elevar una prioridad de los buses maestros secundarios puede comprender la etapa de establecer un bit en un registro de prioridad de bus maestro. De acuerdo con una realizacion adicional del procedimiento, al menos uno del bus maestro secundario puede tener un bit asociado en el registro de prioridad de bus maestro. De acuerdo con una realizacion adicional del procedimiento, el arbitrador de espacio de datos puede comprender una unidad arbitradora separada para accesos de lectura y escritura. De acuerdo con una realizacion adicional del procedimiento, el arbitrador de espacio de datos puede comprender una unidad arbitradora separada para accesos de memoria y registro de funciones especiales.
Un entendimiento mas completo de la presente divulgacion y las ventajas de la misma puede obtenerse haciendo referencia a la siguiente descripcion tomada junto con los dibujos adjuntos en los que:
La Figura 1 muestra un diagrama de bloques de arbitradores de espacio de datos, multiplexores de bus y decodificadores de direccion en un sistema microcontrolador;
La Figura 2 muestra una tabla de prioridad de arbitrador de bus para varios buses maestros de acuerdo con una realizacion;
La Figura 3 muestra un diagrama de bloques de lectura de arbitrador de acuerdo con una realizacion;
La Figura 4 muestra un diagrama de bloques de escritura de arbitrador de acuerdo con una realizacion;
La Figura 5 muestra un diagrama de bloques de interconexion de arbitrador de acuerdo con una realizacion;
La Figura 6 y 7 muestran una tabla de verdad de ejemplo de arbitrador de RAM para cuatro buses maestros de
acuerdo con una realizacion;
La Figura 8 muestra ejemplos de temporizacion de arbitradores de RAM teniendo la CPU la prioridad mas alta;
La Figura 9 muestra ejemplos de temporizacion de arbitradores de RAM no teniendo la CPU la prioridad mas alta;
La Figura 10 muestra un diagrama de bloques de interconexion de arbitrador SFR de acuerdo con una realizacion; y
La Figura 11 muestra ejemplos de temporizacion de arbitradores de SFR teniendo la CPU la prioridad mas alta;
Aunque las realizaciones de esta divulgacion se han representado, descrito y definido por referencia a realizaciones de ejemplo de la divulgacion, tales referencias no implican una limitacion en la divulgacion, y no ha de inferirse tal limitacion. La materia objeto desvelada es considerable de modificacion, alteracion y equivalentes en forma y funcion, como se les ocurrira a los expertos en la materia en la tecnica pertinente y que tienen el beneficio de esta divulgacion. Las realizaciones representadas y descritas de esta divulgacion son unicamente ejemplos.
De acuerdo con diversas realizaciones, un arbitrador de espacio de datos esta disenado para permitir que se eleve la prioridad de cualquier bus maestro con relacion a la prioridad del bus maestro que tiene la prioridad mas alta en modo por defecto (en lo sucesivo “maestro por defecto”), aumentando de esta manera la flexibilidad de respuesta en tiempo real en un sistema de procesador digital. Esto puede conseguirse de una manera facil manteniendo la relacion de prioridad predeterminada entre el bus maestro elevado y unicamente aquellos buses maestros para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad del maestro por defecto. Por lo tanto, no es necesario reasignacion complicada de niveles de prioridad de cada bus maestro. De acuerdo con las ensenanzas de esta divulgacion, cada bus maestro (excepto el maestro por defecto) puede optar a contraordenar esta prioridad. Si el maestro por defecto es la CPU, cualquier prioridad de bus maestro (no de CPU) puede definirse, por ejemplo, a traves de bits de contraorden de prioridad programables definidos por usuario, para que sea mas alta o mas baja que la de la CPU. Sin embargo, la prioridad relativa de todos los buses maestros en el grupo de prioridades mas altas que las del maestro por defecto esta disenada para que no cambie. De manera similar, la prioridad relativa de todos buses maestros en el grupo de prioridades mas bajas que las del maestro por defecto no cambia. Las solicitudes de bus maestro entrantes simplemente se reordenan, por ejemplo, usando multiplexores, basandose en el estado de los bits de contraorden de prioridad. Se envfan a continuacion a un codificador de prioridad fija sencillo y se priorizan como es habitual. Las senales de concesion de bus resultantes se vuelven a mapear a continuacion de vuelta a su orden original, por ejemplo, usando de nuevo el estado de los bits de contraorden de prioridad, y al bus maestro ganador se le concede acceso de bus. Todos los otros buses maestros se bloquean.
La Figura 1 muestra un diagrama de bloques principal de un procesador 100 de senales digitales con tres buses maestros, una CPU 110, una unidad 105 de depurador en circuito (ICD) y un controlador 115 de acceso directo a memoria (DMA). Sin embargo, pueden aplicarse otras configuraciones con un procesador de fin general y diferentes buses maestros como se apreciara por un experto en la materia. Un decodificador 120 de direccion aproximada esta acoplado con estos buses maestros para decidir si una solicitud alcanza a la memoria de acceso aleatorio (RAM) o a
5
10
15
20
25
30
35
40
45
50
los registros de funciones especiales (SFR). Este decodificador de direccion aproximada genera una pluralidad de senales de salida que se acoplan con respectivos arbitradores 130 y 140 de lectura especializados, y arbitradores 135 y 145 de escritura especializados. Los arbitradores 130, 135 de RAM estan acoplados con un decodificador de direccion de nivel de panel para acceder a dos memorias 170 y 175 de acceso aleatorio estaticas (SRAM) separadas. Ademas, se proporciona una SRAM 180 de puerto dual (DP) que esta acoplada, por una parte, con la salida del decodificador 160 de direccion y, por otra, con un decodificador 190 de direccion aproximada especial que puede ser parte de o estar asociado con el decodificador 120 de direccion aproximada. Las salidas de todos los dispositivos 170, 175 y 180 de memoria estan acopladas a traves de diversos multiplexores 125, 150, 155 y 185 con los diferentes buses maestros 110, 105, 115. Una interfaz 165 de dispositivo periferico puede acoplarse directamente a traves del multiplexor 185 con la unidad 105 de ICD. Sin embargo, como se ha mencionado anteriormente puede usarse otra configuracion de memoria de acuerdo con diversas realizaciones, por ejemplo, puede usarse una unica memoria con un procesador de fin general.
Tambien, en esta realizacion espedfica de un procesador de senales digitales o microcontrolador, se proporcionan arbitradores separados para RAM y SFR. Ademas, en cada arbitrador se proporcionan arbitradores separados o accesos (130; 140) de lectura y accesos (135; 145) de escritura. Sin embargo, pueden usarse otros disenos y el numero de arbitradores real puede variar. Por ejemplo, puede usarse un unico arbitrador para proporcionar la misma funcionalidad.
De acuerdo con diversas realizaciones, los arbitradores son configurables mediante los diferentes buses maestros. Esto puede hacerse “al vuelo”, en otras palabras, un programa de usuario puede modificar la configuracion de acuerdo con respectivas necesidades del sistema en el que esta embebido el dispositivo. La Figura 2 muestra una tabla con una posible implementacion en la que un procesador digital esta asociado con, por ejemplo, cinco buses maestros tales como una CPU que es el bus maestro de la prioridad mas alta en un modo por defecto, y una pluralidad de buses maestros secundarios tales como una unidad de Ethernet, una unidad de USB, un controlador de DMA, y una unidad de ICD. Este esquema sencillo se amplfa facilmente para anadir mas buses maestros o usar menos, y no se basa en un codificador de prioridad programable mas grande, potencialmente mas lento. De acuerdo con una realizacion, el sistema puede no ser una solucion completamente programable debido a que la prioridad relativa de bus maestro en cada grupo puede permanecer fija. Esto puede conseguirse, por ejemplo, estableciendo bits respectivos en el registro de funciones especiales MSTRPR 195 que esta acoplado con los arbitradores 130, 135, 140 y 145 como se muestra en la Figura 1.
El registro 195 MSTRPR puede configurarse como sigue:
Mitad superior:
U
U
U
U
U
U
U
U
0
0
0
0
0
0
0
0
bit 15 bit 8
Mitad inferior:
U
U
L/E U L/E U L/E
U
0
0
DMAC (M3) 0 USB (M2) 0 ETH (M1)
0
bit 7 bit 0
en el que los bits 15-6 no se usan y los bits 6, 4, 2 y 0 estan reservados. El bit 5 de DMAC (M3) se usa para modificar la prioridad de bus maestro de DMAC con relacion a la prioridad de la CPU. Cuando se establece a 1: la prioridad de bus maestro de DMAC se eleva por encima de la de la CPU mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad de la CPU. Cuando se establece a 0: no hay cambio a la prioridad de bus maestro de DMAC. La prioridad del bus maestro de DMAC permanece por debajo de la de la CPU y esta en la relacion predeterminada a todos los otros buses maestros secundarios que no se han elevado por encima de la de la CPU. El Bit 3 de USB (M2) se usa para modificar la prioridad de bus maestro de USB con relacion a la prioridad de la CPU. Cuando se establece a 1: la prioridad de bus maestro de USB se eleva por encima de la de la CPU mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad de la CPU. Cuando se establece a 0: no hay cambio a la prioridad de bus maestro de USB. La prioridad del bus maestro USB permanece por debajo de la de la CPU y esta en la relacion predeterminada a todos los otros buses maestros secundarios que no se han elevado por encima de la CPU. El bit 1 de ETH (M2) se usa para modificar la prioridad de bus maestro de Ethernet con relacion a la prioridad de la CPU. Cuando se establece a 1: la prioridad de bus maestro de Ethernet se eleva por encima de la de la CPU mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad de la CPU. Cuando
5
10
15
20
25
30
35
40
45
50
55
se establece a 0: no hay cambio a la prioridad de bus maestro de Ethernet. La prioridad del bus maestro de Ethernet permanece por debajo de la de la CPU y esta en la relacion predeterminada a todos los otros buses maestros secundarios que no se han elevado por encima de la CPU.
De acuerdo con una realizacion, las prioridades por defecto en reseteo se establecen de manera que la CPU tiene la prioridad mas alta y el ICD la prioridad mas baja. En la realizacion anteriormente mostrada, la prioridad del bus maestro de ICD no se asigna a un bit en el registro 195 MSTRPR. Por lo tanto, su prioridad permanece en el nivel mas bajo. Sin embargo, en otras realizaciones, la prioridad de este dispositivo puede elevarse tambien y puede asignarse a un bit en el registro 195. De acuerdo con una realizacion, todos los buses maestros de prioridad elevada mantienen la misma relacion de prioridad con relacion entre su De acuerdo con una realizacion, todos los maestros cuya prioridad permanece por debajo de la de la CPU mantienen la misma relacion de prioridad con relacion entre sf. Por lo tanto, los buses maestros secundarios pueden dividirse en dos grupos. El primer grupo contiene los buses maestros secundarios con una prioridad elevada y el segundo grupo contiene los buses maestros secundarios cuya prioridad no se ha elevado.
Como se muestra en la Figura 2, unicamente se usan ciertos bits y dan como resultado ocho configuraciones diferentes teniendo cada una un diferente orden de prioridad de los respectivos buses maestros. Este esquema relativamente sencillo permite una implementacion facil en la que se mantiene la decodificacion a un mmimo. Sin embargo, en otras realizaciones, pueden aplicarse otros esquemas de decodificacion que permiten una mayor asignacion de prioridades.
Los arbitradores 130, 135, 140, 145 de espacio de datos priorizan solicitudes concurrentes desde los buses maestros (iniciadores) 110, 105, 115 para recursos de bus de espacio de datos (objetivos) 170, 175 y 180 usando una prioridad predeterminada. La matriz de bus conecta el bus maestro ganador con el recursos solicitado. Los buses maestros perdedores no se les concede acceso al recurso solicitado y pueden bloquearse hasta que la arbitracion determina que el recurso esta disponible para usarse por ellos (un azar estructural). Los arbitradores que controlan acceso al espacio de datos excluyendo el espacio de SFR se denominan como los arbitradores 130 y 135 de RAM de escritura y lectura. Los arbitradores que controlan el acceso al espacio de SFR se denominan como los arbitradores 140 y 145 de SFR de lectura y escritura. Cada arbitrador 130, 135, 140, 145 esta parametrizado para soportar 'n' buses maestros donde n=NUM-BUS-MASTERS, que permite que la misma celda hoja se use para todas las instancias. Los buses maestros de la CPU 110, DMAC 115 e ICD 105 pueden estar presentes en muchas realizaciones, por lo tanto en general NUM-BUS-MASTERS >= 3 para los arbitradores de RAM. De acuerdo con una realizacion espedfica, unicamente la CPU 110 y el ICD 105 pueden acceder al espacio de direccion de SFR, por lo tanto NUM-bUs-MASTERS = 2 (siempre) para los arbitradores 140 y 145 de SFR.
Los recursos de espacio de datos (DS) (que no incluye el espacio de direcciones de SFR) y objetivos de arbitrador pueden ser como sigue de acuerdo con una realizacion. Cada recurso requiere un arbitrador.
1. lectura de DS RAM (SRAM + DPSRAM frontal)
2. escritura de DS RAM (SRAM + DPSRAM frontal)
De acuerdo con una realizacion espedfica como se muestra en la Figura 1, el controlador 115 de DMA accede a DPSRAM 180 mediante el puerto trasero, por lo que puede observarse como un caso especial. Los recursos de espacio de direcciones de SFR y objetivos de arbitrador pueden ser como sigue de acuerdo con una realizacion. Cada recurso requiere un arbitrador.
1. Escritura de SFR
2. Lectura de SFR
De acuerdo con una realizacion, el bus maestro de la prioridad mas baja es M [n-1] donde n=NUM-BUS-MASTERS. Tanto para el arbitrador de RAM como el de SFR, esto puede ser siempre la macro del ICD. Las prioridades de bus maestro restantes son ligeramente programables por el usuario mediante el registro de control de prioridad de bus maestro, MSTRPR como se ha explicado anteriormente.
Una lectura de bus maestro 110, 105, 115 sera una lectura de datos desde la RAM 170, 175 (para los arbitradores de RAM) o de espacio de SFR (para los arbitradores de SFR). Una escritura de bus maestro sera una escritura de datos a la RAM 170, 175 (para los arbitradores de RAM) o de espacio de SFR (para los arbitradores de SFR). El control entre los buses maestros 110, 105, 115 y los arbitradores 130, 135, 140, 145 puede realizarse usando una solicitud de bus/toma de contacto de concesion. Todos los buses maestros 110, 105, 115 pueden solicitar un recurso de bus 170, 175, 180 declarando sus senales de solicitud de bus de lectura o escritura. Estaran unicamente permitidos a usar el recurso solicitado cuando el arbitrador 130, 135, 140, 145 asociado haya concedido acceso declarando la correspondiente senal de concesion de bus.
La interfaz de arbitrador de bus maestro de CPU puede ser la misma que todos los otros maestros. Sin embargo, puesto que puede completar tanto una lectura como una escritura en un ciclo de bus, en el que todos los otros buses maestros pueden, o bien leer, o bien escribir para cada transaccion de bus, la temporizacion de la interfaz es
5
10
15
20
25
30
35
40
45
50
55
ligeramente diferente.
Adicionalmente, en un modo de baja potencia, tal como por ejemplo, un modo EN REPOSO, la CPU 110 puede estar operando a una velocidad de reloj significativamente inferior que la de los dispositivos perifericos. Para evitar que la CPU 110 bloquee solicitudes de recursos posteriores de los perifericos, en el que un ciclo de solicitud de CPU podna abarcar muchos ciclos perifericos, las solicitudes de la CPU 110 no estan basadas en el reloj Q sino que estan sincronizadas a los relojes P antes de la presentacion a los arbitradores.
Puede haber 3 decodificadores de direccion implementados de acuerdo con una realizacion como se muestra en la Figura 1. El primer decodificador 120 de direcciones (decodificador de espacio aproximado de SFR) determina si las direcciones de lectura y escritura de la CPU 110 y el ICD 105 tienen como objetivo los arbitradores 130, 135, 140, 145 de SFR o RAM. El segundo decodificador 190 de direcciones (decodificador de espacio aproximado de DPSRAM) determina si la direccion de DMA (lectura o escritura) tiene como objetivo o no el DPSRAM 180 (trasero). El tercer decodificador 160 de direcciones (decodificador de panel WY) toma las direcciones resultantes de los arbitradores de lectura y escritura de RAM y los dirige a cualquiera del espacio de direcciones X o Y.
Un arbitrador de bus puede ser un bloque de logica combinatoria que prioriza continuamente todas las solicitudes de bus entrantes, genera una senal de concesion ganadora, y dirige el bus de direcciones maestro ganador al recurso arbitrado Puede consistir en un codificador de prioridad y un conjunto de multiplexores. El codificador de prioridad examina todas las solicitudes de bus entrantes y las prioriza basandose en una codificacion de prioridad programable como se ha explicado anteriormente. El resultado de esta codificacion se pasa a los multiplexores de direcciones y datos, y a un bus de concesion codificada de tipo “one-hot” que concede las transacciones de bus al bus maestro ganador. Los buses de direcciones y de datos correspondientes se seleccionan y el bus maestro ganador obtiene acceso al recurso solicitado. Todos los otros buses maestros solicitantes se retienen (bloquean) hasta el momento que se haya completado la transaccion del bus maestro ganador.
Los arbitradores 135, 145 de escritura de datos tambien dirigen el bus de datos maestro ganador al recurso arbitrado. La temporizacion de las senales de solicitud entrantes dicta la temporizacion de la senal de concesion resultante, el bus de direcciones de recursos y (segun sea apropiado) el bus de datos de recursos. La Figura 3 muestra un diagrama de temporizacion respectivo de transacciones de ejemplo para los arbitradores 130, 135 de RAM teniendo la CPU 110 la prioridad mas alta. La Figura 4 muestra un diagrama de temporizacion similar no teniendo la CPU 110 la prioridad mas alta. La salida del multiplexor de direcciones se retiene en un biestable P2 para mantener la direccion ganadora valida mas alla de Q3 (la direccion de CPU puede cambiar despues de Q3).
Un diagrama de temporizacion de transacciones de ejemplo para los arbitradores de SFR se muestra en la Figura 5 en el que esa CPU siempre tiene la prioridad mas alta de acuerdo con una realizacion. Las Figuras 6 y 7 muestran senales de control recibidas y generadas mediante el arbitrador en accesos de lectura y escritura, respectivamente.
El controlador 115 de DMA, ICD 105 y todos los buses maestros de perifericos declaran solicitudes de bus (xxx_bmx.mst_rd_req = 1 o xxx_bmx.mst_wr_req = 1, donde 'xxx' representa la abreviatura de bus maestro) en P3 si se requiere el acceso (lectura o escritura). El analisis a continuacion supone que el dispositivo no esta en modo de baja potencia, donde las frecuencias de reloj Q y de reloj P pueden diferir. Por ejemplo, en un modo EN REPOSO de baja potencia, la CPU sincroniza las solicitudes de arbitrador de bus a los relojes de P para mantener el rendimiento de arbitrador para cualquier bus maestro de perifericos de prioridad mas baja. De acuerdo con una realizacion, para solicitudes de lectura de CPU, la CPU 110 debe pre-decodificar combinatoriamente la instruccion cargada en ROMLATCH en Q3 para determinar si se requiere una solicitud de lectura. Una solicitud de lectura de CPU (xcpu_bmx.mst_rd_req = 1) se declarara por lo tanto algun tiempo despues de Q3. La arbitracion para tanto solicitudes de lectura como de escritura se completa combinatoriamente y la concesion de bus ganadora se declara a continuacion (xcpu_bmx.mst_rd_gnt = 1). Un biestable de tipo “latch” de CPU Q1 (biestable si la temporizacion de concesion hara la configuracion de Q1) retiene el resultado de la concesion, declarando cpu_pfu_stall = 1 y bloqueando la CPU si xcpu_bmx.mst_rd_gnt = 0.
De acuerdo con una realizacion, para la solicitud de escritura de CPU, la CPU 110 declarara la solicitud de escritura (xcpu_bmx.mst_wr_req = 1) en Q3 del ciclo de instruccion activo. Para los buses maestros de perifericos, las concesiones de arbitrador se examinan antes de P3 y si se declaran, provocaran que se niegue la senal de solicitud de bus maestro asociada en P3. Si la concesion de bus de un bus maestro de perifericos solicitante no se declara, la solicitud de bus maestro de perifericos permanecera declarada hasta el momento que halle que se ha de declarar la concesion. El bus maestro de perifericos comprobara el estado de la senal de concesion antes de P3 del siguiente ciclo.
De acuerdo con una realizacion, para lecturas de CPU, se examina la concesion de arbitrador de lectura durante Q1 y si xcpu_bmx.mst_rd_gnt = 1, la instruccion en marcha se permite continuar la ejecucion. La solicitud, xcpu_bmx.mst_rd_req, se negara en el siguiente Q3. Si la CPU 110 esta solicitando un acceso de lectura y la concesion de bus maestro no se declara (xcpu_bmx.mst_rd_gnt = 0), la CPU 110 bloqueara la PFU (cpu_pfu_stall = 0) y la instruccion de CPU en marcha (inhibiendo todas las actualizaciones de registro). La solicitud permanecera declarada hasta el momento que se conceda a la CPU acceso a recurso para completar el ciclo bloqueado.
5
10
15
20
25
30
35
40
45
50
55
De acuerdo con una realizacion, para escrituras de CPU, se examina la concesion de arbitrador de escritura anterior a Q3. Si xcpu_bmx.mst_wr_gnt = 1, la instruccion en marcha completa la ejecucion y no se bloquea la siguiente instruccion. Si la concesion de bus maestro no se declara (xcpu_bmx.mst_wr-gnt = 0), la instruccion en marcha reintenta (completa la ejecucion), almacenando en memoria intermedia la escritura de datos. Las siguientes instrucciones se bloquean hasta el momento que se halle la concesion a declarar. La solicitud de escritura permanece declarada mientras la CPU 110 esta bloqueada. En ambos casos, la CPU 110 comprobara el estado de la senal de concesion anterior a Q3 del siguiente ciclo. La CPU 110 retirara (completara) la instruccion en marcha pero almacenara en memoria intermedia la escritura de datos para finalizacion en algun tiempo mas tarde (es decir despues de que se declara la concesion). Para permitir que finalice cada instruccion despues de que se inicie, la CPU puede ser el unico bus maestro que pueda almacenar en memoria intermedia una escritura de datos. Todas las otras solicitudes de bus maestro se bloquean para tanto accesos de lectura como de escritura. Una lectura de bus maestro ganadora se completara en Q3 del clico despues de la solicitud. Una escritura de bus maestro ganadora tendra lugar en la Q1 que sigue a la solicitud de Q3.
De acuerdo con una realizacion, las lecturas y escrituras de bus maestro pueden finalizar a una velocidad de una por ciclo de bus para la CPU 110. La CPU 110 emite la solicitud (para lectura o escritura) en el mismo ciclo que la finalizara (si se concede acceso al recurso solicitado).
El caudal de datos para buses maestros de perifericos (es decir todos los otros buses maestros excepto la CPU) es asimetrico para lecturas y escrituras. Las solicitudes de lectura del bus maestro de perifericos que tendran lugar en un ciclo finalizaran la transaccion (si se concede acceso al recurso) en el siguiente ciclo. Sin embargo, las solicitudes de escritura de bus maestro de perifericos finalizaran la transaccion (si se concede acceso al recurso) en el mismo ciclo que la solicitud.
De acuerdo con una realizacion, los arbitradores de bus pueden no estar en tubenas, por lo que un bus maestro de perifericos debe completar una transaccion solicitada antes de solicitar otro acceso de bus. El caudal de datos de bus maestro de perifericos maximo es por lo tanto una transaccion cada 2 ciclos para lecturas (y una transaccion cada ciclo para escrituras).
Cada uno de los buses maestros de perifericos puede realizar cualquiera de una lectura o una escritura (pero no ambas) durante una transaccion arbitrada que han ganado. Sin embargo, de acuerdo con una realizacion, las solicitudes de lectura y escritura pueden arbitrarse por separado. En consecuencia, una solicitud de lectura y una de escritura desde dos buses maestros puede servirse en un ciclo. La CPU 110 puede completar una lectura y/o una escritura en un ciclo de bus. Uno o ambos de estos accesos pueden arbitrarse.
El registro de control de prioridad de bus maestro MSTRPR<15:0> del espacio de datos extendido (EDS), que puede localizarse en la CPU 110 puede usarse para modificar la prioridad de cada uno de los buses maestros de perifericos con relacion a la de la CPU 110.
De acuerdo con una realizacion, puede asignarse a cada bus maestro de perifericos un bit en el registro MSTRPR. Las asignaciones de bits para buses maestros espedficos se fijan pero 'M' numeros asociados con cada bus maestro variaran entre variables, dependiendo de que buses maestros esten presentes. Pueden anadirse buses maestros al registro MSTRPR (en localizaciones fijas) a medida que se desarrollan. De acuerdo con una realizacion, las entradas de bus maestro de arbitrador son siempre secuenciales (es decir M0, M1, M2, M3 etc.) en todas las variables.
Cuando el bit asignado esta establecido, el bus maestro de perifericos correspondiente se eleva para que este por encima de el de la CPU 110. La prioridad de la CPU permanecera por encima de la de los buses maestros de perifericos cuya prioridad no se ha elevado. De acuerdo con una realizacion, la prioridad relativa de los buses maestros de perifericos elevada por encima de la prioridad de la CPU permanecera igual como estaba antes de que se elevara por encima de la de la CPU 110. De manera similar, la prioridad relativa de los buses maestros de perifericos no elevados por encima de la prioridad de la CPU permanecera igual como estaba antes de que se elevara por encima de la de la CPU 110. El efecto del registro MSTRPR es como se muestra en la tabla mostrada en la Figura 2 donde se estan arbitrando 5 buses maestros.
De acuerdo con una realizacion, no todos los dispositivos pueden soportar Ethernet y/o perifericos USB, y la prioridad relativa asignada de estos buses maestros puede diferir de la mostrada en el ejemplo.
El parametro NUM-BUS-MASTERS define el numero de buses maestros soportados por cada uno de los arbitradores de RAM de DS/EDS. De acuerdo con una realizacion, puede requerirse un arbitrador de lectura y uno de escritura separados. Se muestra una tabla de verdad de arbitrador de RAM en la tabla representada en las Figuras 9 y 10 para NUM-BUS_MASTERS=4, y se aplica a tanto el arbitrador de lectura como al de escritura. Arbitra acceso de bus maestro a todo el espacio de DS/EDS excepto el espacio de direcciones de SFR.
De acuerdo con una realizacion, los buses maestros de la CPU e ICD siempre estan presentes. Los restantes buses maestros presentes en la tabla mostrada en la Figura 9 y 10 son el USB y DMAC que se asignan a los bits de registro de prioridad de bus maestro MSTRPR<3> y MSTRPR<5> respectivamente. Todos los otros bits MSTRPR se reservan o no se usan y por lo tanto son bits 'no preocupantes'.
5
10
15
20
25
30
35
40
45
50
55
Un diagrama de bloques para los arbitradores de RAM y bloque de decodificacion de direcciones con respectivas interconexiones de senal se muestra en la Figura 8. De acuerdo con una realizacion, la CPU 110 siempre se asigna a la entrada M0 del arbitrador 130 y 135. Todos los otros maestros se asignan a otras entradas de arbitrador (M1, M2 etc. sin huecos) en orden descendente de prioridad como se define mediante la especificacion del dispositivo. En consecuencia, puede asignarse el mismo bus maestro a diferentes puertos de entrada de arbitrador (Mx) en diferentes variables.
Todos los buses maestros deben acceder a RAM de DS/EDS mediante el arbitrador 130, 135 de RAM (la DPSRAM trasera para el DMAC se considera una excepcion de acuerdo con una realizacion). De acuerdo con una realizacion, el bus maestro de ICC puede unicamente obtener acceso al DS/EDS cuando ningun otro maestro esta solicitando acceso. La prioridad de bus maestro de ICD nunca puede elevarse por encima de la de cualquier otro maestro.
De acuerdo con una realizacion, se supone que todos los buses maestros de perifericos transferiran unicamente siempre datos a o desde direcciones en la SRAM de DS o DPSRAM (cualquier otra direccion sena indicativa de operacion erronea). Se permitiran por lo tanto las solicitudes de bus para cualquier direccion de bus maestro. La decodificacion de bloque de SRAM de DS y DPSRAM reside despues del multiplexor de direccion de arbitrador, por lo que las direcciones fuera de este rango daran como resultado arbitracion pero no tendran efecto sobre la memoria de DS. Sin embargo, el acceso a DS/EDS no implementado dara como resultado una trampa de direccion ilegal de CPU 110 (si el bus maestro solicitante era la CPU 110) o una trampa de software generica (si el bus maestro solicitante era cualquier bus maestro de perifericos excepto el ICD 105). Si el bus maestro de ICD 105 intenta acceder a DS/EDS no implementado, no tendra lugar la trampa. La concesion se emite como es habitual pero una lectura devolvera todo 0, y una escritura no tendra efecto. La CPU 110 debe enviar una senal al controlador de interrupciones para indicar que el bus maestro realizo la solicitud.
De acuerdo con una realizacion, en un procesador de senales digitales, las solicitudes de lectura de RAM X e Y de la CPU (cpu_xram_rd y cpu_yram_rd) pueden unirse en O logica para crear una unica senal de solicitud de lectura de RAM de CPU RAM (xcpu_bmx.mst_rd_req).
El decodificador 120 de direccion aproximada de SFR dirige la direccion de CPU a cualquiera del arbitrador 130, 135 de RAM o al arbitrador 140, 145 de bus de SFR basandose en un lfmite de direccion predeterminado para el espacio de SFR definido por el parametro SFR_BYTE_SIZE. Las solicitudes de bus asociadas con una direccion de CPU que es menor que el lfmite de SFR, se encaminaran al arbitrador 140, 145 de SFR. Pero las solicitudes asociadas con una direccion de CPU que es mayor o igual que el lfmite de SFR, se encaminara al arbitrador 130, 135 de RAM.
La salida de los arbitradores 130, 135, 140, 145 se alimenta a los decodificadores 160 de direccion de RAM donde la direccion ganadora se encamina al espacio de direcciones de DS/EDS correcto (X o Y) basandose en los parametros de Kmite de direccion X e Y XRAM_START_ADDR, XRAM_ADDR_WIDTH e YRAM_ADDR_WIDTH. El decodificador 160 de direcciones X/Y contiene biestables Q2 para muestrear y retener las senales de control de RAM que seleccionan el origen 170, 175 de datos de RAM. De acuerdo con una realizacion, la RAM 170, 175 X e Y pueden localizarse siempre para que sean contiguas en el DS. Por ejemplo, la RAM 175 Y se coloca inmediatamente despues del final de la RAM 170 X como se muestra en la Figura 1.
Como se ha mencionado anteriormente, un procesador de senales digitales o microcontrolador puede no incluir DPSRAM. Los espacios de direcciones de SRAM y (frontal) DPSRAM pueden combinarse en un unico espacio de direcciones de rAm X de DS/EDS para todos los buses maestros excepto para el DMAC 115. Puesto que de acuerdo con una realizacion, el DMAC 115 tiene exclusivamente acceso al bus trasero de DPSRAM, la arbitracion para este bus maestro unicamente se requiere para direcciones que caen fuera del rango de direcciones DPSRAM (es decir, para SRAM unicamente). Se permite que otros buses maestros accedan al bus de frontal de DPSRAM mientras que el DMAC 115 esta accediendo al bus trasero. DPSRAM 180 puede incluir logica para detectar y senalar escrituras concurrentes inadvertidas a la misma direccion de DPSRAM desde ambos puertos.
DPSRAM 180 puede localizarse en la misma direccion para ambos accesos frontal y trasero. El decodificador 190 de direccion aproximada de DPSRAM examina tanto solicitudes de datos de lectura como de escritura desde la DMAC 115 y determina si tienen o no por objetivo el espacio de direcciones DPSRAM. Si se detecta un acceso de DPSRAM, la solicitud de lectura o escritura correspondiente se encamina directamente a la DPSRAM 180 y no a los arbitradores 130, 135, 140, 145 de RAM. El decodificador 190 de direccion aproximada de DPSRAM tambien debe emitir inmediatamente una concesion de bus a la DMAC 115 para permitir el acceso al puerto DPSRAM trasero para finalizar. De hecho, el arbitrador puede verse como que ignora esta solicitud y puede conceder acceso a otro bus maestro a DS/EDS, incluyendo acceso a la DPSRAM 180 mediante el bus frontal.
De acuerdo con una realizacion, el arbitrador 140, 145 de SFR puede soportar unicamente 2 buses maestros, CPU 110 y ICD 105, por lo que NUM-BUS-MASTER = 2 (fijo). La CPU 110 siempre ganara cualquier arbitracion, independientemente del estado de cpu_arb_master_priority<7:0> puesto que el ICD 105 siempre esta a la prioridad mas baja (y no puede bloquear el ciclo).
La salida resultante de los arbitradores 140, 145 de SFR sera la senal de direccion, datos y lectura (o escritura) del bus maestro ganador. Para cumplir temporizacion para ciertos perifericos, la direccion de lectura ganadora se
5
10
15
20
25
30
35
retiene en un biestable P2. La decodificacion de direccion de perifericos se completa en cada periferico.
De acuerdo con una realizacion, para cumplir objetivos de velocidad de dispositivo, todas las concesiones de bus de SFR en respuesta a solicitudes de lectura de SFR (con la excepcion de direcciones de SFR de registro de CPU mapeadas en memoria como se explicara en mas detalle a continuacion) se ponen en tubenas para retardarlas en un ciclo. Los accesos de lectura de SFR daran como resultado un bloqueo de CPU y son por lo tanto 2 operaciones de ciclo.
Los registros de CPU mapeados en memoria pueden residir en el espacio de direcciones de SFR. Sin embargo, estos registros residen ffsicamente en la CPU 110. Todas las solicitudes de escritura de SFR se conceden inmediatamente (sometidas a arbitracion satisfactoria), permitiendo que se completen las escrituras de SFR en 1 ciclo.
Un diagrama de bloques para los arbitradores de SFR y bloque de decodificacion de direcciones se muestra en la Figura 11. Un diagrama de temporizacion de transacciones de ejemplo para los arbitradores de SFR se muestra en la Figura 5 (la CPU tiene siempre la prioridad mas alta).
De acuerdo con una realizacion, el ICD 105 puede leer o escribir cualquier SFR pero las escrituras a SFR de la CPU se inhiben a traves de firmware de ICD. Adicionalmente, si se activa cualquier proteccion de codigo, todos los accesos de SFR de ICD se inhiben mediante la macro del ICD de acuerdo con una realizacion, una trampa de CPU que desactiva las escrituras de CPU al espacio de SFR (cpu_disable_memwrite = 1) no debenan interferir con ninguna solicitud de escritura de SFR de ICD coincidente.
No estan activos relojes de sistema en un modo de EN SUSPENSION de baja potencia, por lo que todos los arbitradores 130, 135, 140, 145 estan inactivos. En un modo EN ESPERA, los relojes Q de la CPU se desactivan mientras los relojes P perifericos permanecen activos. En consecuencia, de acuerdo con una realizacion, la CPU 110 no puede hacer ninguna solicitud de bus de arbitrador mientras esta en el modo EN ESPERA. Puesto que todos los buses maestros de perifericos (incluyendo la macro de ICD) que operan usando relojes P, los arbitradores 130, 135, 140, 145 de bus de RAM y de SFR continuan operando de manera normal para estos buses maestros en modo EN ESPERA.
De acuerdo con una realizacion, en otro modo EN REPOSO de baja potencia, los relojes Q de la CPU corren a una fraccion binaria (programable) de los relojes P perifericos. Como se ha mencionado anteriormente, todos los buses maestros de perifericos corren usando los relojes P. En consecuencia, la CPU 110 debe proponer todas las solicitudes de bus de arbitrador hasta el ultimo ciclo (reloj P) de cada ciclo de reloj Q. El fallo al hacer esto dana como resultado que la CPU 110 monopolizara el arbitrador de bus, bloqueando todos los buses maestros de prioridad inferior durante la duracion de cada ciclo de CPU que requiere acceso de bus.
Aunque las realizaciones de esta divulgacion se han representado, descrito y se definen por referencia a realizaciones de ejemplo de la divulgacion, tales referencias no implican una limitacion sobre la divulgacion, y no se ha de inferir tal limitacion. La materia objeto desvelada es considerable de modificacion, alteracion y equivalentes en forma y funcion, como se le ocurrira al experto en la materia en la tecnica pertinente y que tiene el beneficio de esta divulgacion. Las realizaciones representadas y descritas de esta divulgacion son ejemplos unicamente.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Un procesador digital, que comprende:
    un bus maestro (110; M0) pordefecto que tiene una prioridad mas alta en un modo por defecto; una pluralidad de buses maestros (105, 115; M1, m2, M3, M4) secundarios que tienen prioridades asociadas, en el que la pluralidad de buses maestros (105, 115; M1, M2, M3, M4) secundarios tienen una relacion de prioridad predeterminada entre sf;
    estando el procesador digital caracterizado por un arbitrador (130, 135, 140, 145) de espacio de datos, en el que el arbitrador (130, 135, 140, 145) de espacio de datos es programable en un modo no por defecto para elevar una prioridad de cualquiera de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios para que tenga una prioridad mas alta que la prioridad del bus maestro (110; M0) por defecto mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros (105, 115; M1, M2, M3, M4) secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad del bus maestro (110; M0) por defecto.
  2. 2. El procesador digital de acuerdo con la reivindicacion 1, en el que el arbitrador (130, 135, 140, 145) de espacio de datos concede acceso a la memoria (170, 175, 180) de datos y en el que la memoria (170, 175, 180) de datos comprende al menos uno de entre memoria de acceso aleatorio, memoria de puerto dual y registros de funciones especiales.
  3. 3. El procesador digital de acuerdo con la reivindicacion 1 o 2, que comprende adicionalmente un registro (195) de prioridad de bus maestro que tiene bits de contraorden de prioridad, al menos uno de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios esta asignado a uno de dichos bits de contraorden de prioridad, en el que el registro (195) de prioridad de bus maestro especifica programablemente cuales de la pluralidad de buses maestros (105, 115; M1, m2, M3, M4) secundarios tienen prioridades mas altas o mas bajas que la prioridad del bus maestro (110, M0) por defecto.
  4. 4. El procesador digital de acuerdo con la reivindicacion 3, en el que establecer un bit de contraorden de prioridad provoca que se eleve un nivel de prioridad de un bus maestro (105, 115; M1, M2, M3, M4) secundario asociado por encima del nivel de prioridad del bus maestro (110; M0) por defecto.
  5. 5. El procesador digital de acuerdo con una de las reivindicaciones anteriores 2-4, que comprende adicionalmente un decodificador (160) de direcciones acoplado entre el arbitrador (130, 135, 140, 145) de espacio de datos y la memoria (170, 175, 180) de datos.
  6. 6. El procesador digital de acuerdo con una de las reivindicaciones anteriores, que comprende adicionalmente un decodificador (120) de direccion aproximada acoplado entre el arbitrador (130, 135, 140, 145) de espacio de datos y el bus maestro (110; M0) por defecto o los buses maestros (105, 115; M1, M2, M3, M4) secundarios.
  7. 7. El procesador digital de acuerdo con una de las reivindicaciones anteriores 2-6, en el que el procesador digital es un procesador de senales digitales y la memoria de acceso aleatorio se divide en una memoria X (170) y una memoria Y (175).
  8. 8. El procesador digital de acuerdo con una de las reivindicaciones anteriores, en el que el bus maestro por defecto es una unidad de procesamiento central (CPU).
  9. 9. Un procedimiento para arbitrar acceso de espacio de datos en un procesador digital, que comprende:
    asignar prioridades a un bus maestro (110; M0) por defecto y a una pluralidad de buses maestros (105, 115; M1, M2, M3, M4) secundarios, en el que el bus maestro (110; m0) por defecto tiene la prioridad mas alta en un modo por defecto y en el que la pluralidad de buses maestros (105, 115; M1, M2, M3, M4) secundarios tienen una relacion de prioridad predeterminada entre sf; estando el procedimiento caracterizado por la etapa de programar un arbitrador (130, 135, 140, 145) de espacio de datos en un modo no por defecto para elevar una prioridad de cualquiera de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios para que tenga una prioridad mas alta que la prioridad del bus maestro (110; M0) por defecto mientras mantiene la relacion de prioridad predeterminada a unicamente aquellos buses maestros (105, 115; M1, M2, M3, M4) secundarios para los que el nivel de prioridad tambien se ha elevado por encima de la prioridad del bus maestro (110; M0) por defecto.
  10. 10. El procedimiento de acuerdo con la reivindicacion 9, que comprende adicionalmente: solicitar acceso a un espacio de datos mediante un bus maestro (105, 115; M1, M2, M3, M4) secundario mientras dicho bus maestro (110; M0) por defecto tiene acceso a dicho espacio de datos y si la prioridad del bus maestro (105, 115; M1, M2, M3, M4) secundario es mas alta que la prioridad del bus maestro (110; M0) por defecto, conceder acceso al espacio de datos bloqueando de otra manera el bus maestro (105, 115; M1, M2, M3, M4) secundario.
  11. 11. El procedimiento de acuerdo con la reivindicacion 9 o 10, en el que el espacio de datos es memoria (170, 175, 180) de datos que comprende al menos uno de memoria de acceso aleatorio, memoria de puerto dual y registros de
    funciones especiales.
  12. 12. El procedimiento de acuerdo con una de las reivindicaciones anteriores 9-11, en el que dicha etapa de programar un arbitrador (130, 135, 140, 145) de espacio de datos para elevar una prioridad de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios comprende la etapa de establecer un bit en un registro (195) de
    5 prioridad de bus maestro.
  13. 13. El procedimiento de acuerdo con la reivindicacion 12, en el que los buses maestros (105, 115; M1, M2, M3, M4) secundarios estan cada uno asignados a un bit en dicho registro (195) de prioridad de bus maestro y el registro (195) de prioridad de bus maestro permite que se establezcan multiples bits para elevar el nivel de prioridad de multiples de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios por encima del nivel de dicho bus
    10 maestro (110; M0) por defecto.
  14. 14. El procedimiento de acuerdo con la reivindicacion 12 o 13, en el que al menos uno de dichos buses maestros (105, 115; M1, M2, M3, M4) secundarios tiene un bit asociado en dicho registro (195) de prioridad de bus maestro.
  15. 15. El procedimiento o procesador digital de acuerdo con una de las reivindicaciones anteriores, en el que el arbitrador (130, 135, 140, 145) de espacio de datos comprende una unidad arbitradora separada para accesos de
    15 lectura y escritura y/o el arbitrador (130, 135, 140, 145) de espacio de datos comprende una unidad arbitradora separada para accesos de memoria y de registro de funciones especiales.
ES10740057.4T 2009-07-21 2010-07-20 Arbitrador de espacio de datos Active ES2606128T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US818325 2001-03-27
US22714709P 2009-07-21 2009-07-21
US227147P 2009-07-21
US12/818,325 US8984198B2 (en) 2009-07-21 2010-06-18 Data space arbiter
PCT/US2010/042525 WO2011011364A1 (en) 2009-07-21 2010-07-20 Data space arbiter

Publications (1)

Publication Number Publication Date
ES2606128T3 true ES2606128T3 (es) 2017-03-22

Family

ID=43498256

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10740057.4T Active ES2606128T3 (es) 2009-07-21 2010-07-20 Arbitrador de espacio de datos

Country Status (7)

Country Link
US (1) US8984198B2 (es)
EP (1) EP2457169B1 (es)
KR (1) KR101624153B1 (es)
CN (1) CN102449612B (es)
ES (1) ES2606128T3 (es)
TW (1) TWI489292B (es)
WO (1) WO2011011364A1 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8975889B2 (en) * 2011-01-24 2015-03-10 Infineon Technologies Ag Current difference sensors, systems and methods
TW201339842A (zh) * 2012-03-20 2013-10-01 Copystar Backup & Storage Corp 協同式匯流排仲裁多工架構及依該架構所進行之資料存取仲裁方法
US20140082307A1 (en) * 2012-09-17 2014-03-20 Mobileye Technologies Limited System and method to arbitrate access to memory
CN104298628B (zh) * 2014-09-30 2017-12-29 中国电子科技集团公司第三十八研究所 一种用于并发访问的数据存储器仲裁电路及仲裁方法
CN104866455B (zh) * 2015-06-10 2017-10-13 首都师范大学 动态可重构高速串行总线中的多主仲裁方法
US10114776B2 (en) * 2016-11-03 2018-10-30 Microchip Technology Incorporated System arbiter with programmable priority levels
US11360544B2 (en) * 2018-10-03 2022-06-14 Google Llc Power management systems and methods for a wearable computing device
US11645216B2 (en) * 2020-11-30 2023-05-09 Dell Products L.P. Systems and methods for single-wire in-band pulse-addressable multiplexer

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3913070A (en) * 1973-02-20 1975-10-14 Memorex Corp Multi-processor data processing system
JPS5226124A (en) * 1975-08-22 1977-02-26 Fujitsu Ltd Buffer memory control unit
US4395753A (en) * 1980-06-26 1983-07-26 Gte Automatic Electric Labs Inc. Allocation controller providing for access of multiple common resources by a plurality of central processing units
US4493036A (en) * 1982-12-14 1985-01-08 Honeywell Information Systems Inc. Priority resolver having dynamically adjustable priority levels
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
US5151994A (en) * 1989-11-13 1992-09-29 Hewlett Packard Company Distributed fair arbitration system using separate grant and request lines for providing access to data communication bus
US5506989A (en) * 1990-01-31 1996-04-09 Ibm Corporation Arbitration system limiting high priority successive grants
US5191653A (en) * 1990-12-28 1993-03-02 Apple Computer, Inc. Io adapter for system and io buses having different protocols and speeds
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
US5553310A (en) 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
US5546548A (en) * 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
JPH07254906A (ja) * 1994-03-16 1995-10-03 Mitsubishi Electric Corp 優先処理機能を有するシフトレジスタ、それを用いたパケット通信用スイッチング装置及びそれを用いたatmネットワーク並びに優先処理を伴うパケット通信方式及び優先処理を伴うatm通信方式
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5761445A (en) * 1996-04-26 1998-06-02 Unisys Corporation Dual domain data processing network with cross-linking data queues and selective priority arbitration logic
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US5907689A (en) * 1996-12-31 1999-05-25 Compaq Computer Corporation Master-target based arbitration priority
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6052738A (en) * 1997-06-30 2000-04-18 Sun Microsystems, Inc. Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US6026459A (en) * 1998-02-03 2000-02-15 Src Computers, Inc. System and method for dynamic priority conflict resolution in a multi-processor computer system having shared memory resources
JP2000047974A (ja) * 1998-07-27 2000-02-18 Fujitsu Ltd バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
US6295553B1 (en) * 1998-12-22 2001-09-25 Unisys Corporation Method and apparatus for prioritizing delivery of data transfer requests
US6272580B1 (en) 1999-03-16 2001-08-07 Compaq Computer Corp. Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system
US6430641B1 (en) * 1999-05-04 2002-08-06 International Business Machines Corporation Methods, arbiters, and computer program products that can improve the performance of a pipelined dual bus data processing system
DE19930119C2 (de) * 1999-06-30 2001-06-07 Siemens Ag Prioritätsverwaltungsverfahren
US6411236B1 (en) * 1999-10-18 2002-06-25 Agere Systems Guardian Corp. Programmable priority encoder
US6654837B1 (en) * 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
DE60026908D1 (de) * 2000-07-05 2006-05-18 St Microelectronics Srl Arbitrierungsverfahren und Schaltungsarchitektur dazu
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
JP2002236658A (ja) * 2001-02-13 2002-08-23 Ricoh Co Ltd 調停装置
US7054330B1 (en) * 2001-09-07 2006-05-30 Chou Norman C Mask-based round robin arbitration
TW569236B (en) * 2002-10-03 2004-01-01 Via Tech Inc Multiple-grant controller with parallel arbitration mechanism and related method
US6990541B2 (en) * 2002-11-22 2006-01-24 Sun Microsystems, Inc. Arbitration unit for prioritizing requests based on multiple request groups
CN1261865C (zh) 2002-11-22 2006-06-28 上海奇码数字信息有限公司 内存源操作数的选择电路及选择方法
US7121639B2 (en) * 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
US7039737B1 (en) 2003-12-12 2006-05-02 Emc Corporation Method and apparatus for resource arbitration
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
US20090217280A1 (en) * 2008-02-21 2009-08-27 Honeywell International Inc. Shared-Resource Time Partitioning in a Multi-Core System

Also Published As

Publication number Publication date
US20110022756A1 (en) 2011-01-27
CN102449612A (zh) 2012-05-09
CN102449612B (zh) 2016-03-23
EP2457169B1 (en) 2016-09-14
US8984198B2 (en) 2015-03-17
KR20120036300A (ko) 2012-04-17
EP2457169A1 (en) 2012-05-30
WO2011011364A1 (en) 2011-01-27
TW201112004A (en) 2011-04-01
TWI489292B (zh) 2015-06-21
KR101624153B1 (ko) 2016-05-25

Similar Documents

Publication Publication Date Title
ES2606128T3 (es) Arbitrador de espacio de datos
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
US11501024B2 (en) Secure master and secure guest endpoint security firewall
CN109478169B (zh) 具有灵活地址解码的存储器控制器
EP0426413A2 (en) Multiprocessor arbitration in single processor arbitration schemes
EP1645967A1 (en) Multi-channel DMA with shared FIFO buffer
KR20210021302A (ko) 메모리 제어기에서의 리프레시 방식
JP2008130056A (ja) 半導体回路
WO2003001388A1 (en) System and method for controlling bus arbitration during cache memory burst cycles
US20130054896A1 (en) System memory controller having a cache
JPH08339346A (ja) バスアービタ
JP2024512625A (ja) アービトレーション中の書き込みバンクグループのマスク
KR20110128786A (ko) 특수 뱅킹 명령들을 갖는 마이크로컨트롤러
US11327836B1 (en) Protection of data on a data path in a memory system
US7006521B2 (en) External bus arbitration technique for multicore DSP device
JP2006251916A (ja) Dma転送システム及びdma転送方法
JP2015035155A (ja) 情報処理装置
JP2006260230A (ja) バス調停方法およびバス調停装置
JP2001306542A (ja) マルチプロセッサシステム
JP2009140055A (ja) マイクロコンピュータ
JPH03278145A (ja) 共有メモリ管理装置および共有メモリ