ES2371767T3 - Procedimiento y aparato para llevar a cabo una operación atómica de semáforo. - Google Patents

Procedimiento y aparato para llevar a cabo una operación atómica de semáforo. Download PDF

Info

Publication number
ES2371767T3
ES2371767T3 ES05820885T ES05820885T ES2371767T3 ES 2371767 T3 ES2371767 T3 ES 2371767T3 ES 05820885 T ES05820885 T ES 05820885T ES 05820885 T ES05820885 T ES 05820885T ES 2371767 T3 ES2371767 T3 ES 2371767T3
Authority
ES
Spain
Prior art keywords
traffic light
address
bus
processing
memory region
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
ES05820885T
Other languages
English (en)
Inventor
Thomas Philip Speier
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2371767T3 publication Critical patent/ES2371767T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Bus Control (AREA)

Abstract

Un sistema (100) de procesamiento que comprende: un bus (106; 106a, 106b); una región (104) de memoria acoplada al bus; y una pluralidad de componentes (102; 102a, 102b) de procesamiento que tienen acceso a la región (104) de memoria por medio del bus (106; 106a, 106b), estando configurado cada uno de los componentes de procesamiento para llevar a cabo una operación de semáforo para obtener acceso a la región (104) de memoria solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus (106; 106a, 106b), caracterizado porque la solicitud simultánea es llevada a cabo emitiendo simultáneamente dos copias de una dirección de semáforo al emplazamiento de semáforo por medio del bus (106; 106a, 106b).

Description

Procedimiento y aparato para llevar a cabo una operación atómica de semáforo
Campo
La presente revelación versa en general acerca de sistemas de procesamiento que emplean una arquitectura de bus y, más específicamente, acerca de procedimientos y aparatos para llevar a cabo una operación atómica de semáforo.
Antecedentes
Los ordenadores han revolucionado la industria de la electrónica permitiendo que tareas sofisticadas de procesamiento sean llevadas a cabo con solo unos toques en un teclado. Estas tareas sofisticadas implican un número increíblemente elevado de componentes complejos que se comunican entre sí de una manera rápida y eficiente usando un bus. Un bus es un canal o camino entre componentes en un ordenador.
Muchos buses residentes en un ordenador han sido implementados tradicionalmente como buses compartidos. Un bus compartido proporciona un medio para que un número cualquiera de componentes se comuniquen entre sí por medio de un camino o un canal comunes. En años recientes, la tecnología de bus compartido ha sido sustituida en gran medida por conexiones con conmutación punto a punto. Las conexiones con conmutación punto a punto proporcionan una conexión directa entre dos componentes por el bus mientras se comunican entre sí. Pueden usarse múltiples enlaces directos para permitir que varios componentes se comuniquen al mismo tiempo. Puede usarse un árbitro de bus para gestionar las comunicaciones por el bus.
El diseño convencional de buses incluye canales separados de lectura, escritura y direccionamiento. un componente al que el árbitro del bus concede acceso al bus puede llevar a cabo una operación de lectura o escritura poniendo una dirección en el canal de direccionamiento y enviado la señal de control apropiada de lectura/escritura usando señalización de banda lateral. Cuando el componente escribe datos a otro componente en el bus, envía los datos por el canal de escritura. Cuando el componente lee datos de otro componente en el bus, recibe los datos por el canal de lectura.
Un ordenador que implemente una arquitectura de bus puede incluir varios componentes de procesamiento conectados a la memoria. La memoria puede estar dividida en regiones, ya sea por el sistema diseñado o dinámicamente durante la operación. Cada componente de procesamiento puede tener su propia región de memoria dedicada. Por otra parte, las “regiones de memoria compartida” son regiones de memoria a las que se puede acceder por procesamiento múltiple. Puede usarse un semáforo para gestionar el acceso a las regiones de memoria compartida. Un “semáforo” es una bandera de soporte físico o lógico que reside en un emplazamiento de memoria compartida que indica la accesibilidad de un recurso compartido. Un componente de procesamiento que necesite el acceso a la región de memoria compartida puede leer el semáforo para determinar la accesibilidad de la región de memoria compartida. Si el semáforo indica que la región de memoria compartida está disponible, entonces el componente de procesamiento puede configurar el semáforo para que indique que la región de memoria compartida está bloqueada y proceder a acceder a la memoria. Es preciso que el proceso de lectura y de puesta del semáforo se lleve a cabo atómicamente. Es decir, ningún otro componente de procesamiento debería poder acceder al semáforo durante este proceso. En el documento JP 60118961 se da a conocer la técnica relevante anterior.
El acceso atómico al semáforo no es inherente con los protocolos de bus convencionales. En vez de ello, se trata de un caso especial que se añade al protocolo de bus y que a menudo requiere un soporte físico especial. El soporte físico adicional aumenta la complejidad del árbitro del bus y de los componentes de procesamiento, y puede dar como resultado un retardo añadido de procesamiento dentro del sistema. En consecuencia, existe la necesidad en la técnica de implementar un acceso atómico al semáforo dentro del marco del protocolo de bus con un mínimo soporte físico adicional sin degradar el rendimiento.
Resumen
La invención se define por las reivindicaciones independientes 1 y 12. En un aspecto de la presente invención, un sistema de procesamiento incluye un bus, una región de memoria acoplada al bus y una pluralidad de componentes de procesamiento que tienen acceso a la región de memoria por medio del bus, estando configurado cada uno de los componentes de procesamiento para llevar a cabo una operación de semáforo para obtener acceso a la región de memoria solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus.
En otro aspecto de la presente invención, un sistema de procesamiento incluye un bus, una región de memoria acoplada al bus y una pluralidad de componentes de procesamiento que tienen acceso a la región de memoria por medio del bus, teniendo cada uno de los componentes de procesamiento medios para llevar a cabo una operación de semáforo para obtener acceso a la región de memoria solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus.
55 E05820885 15-11-2011
En otro aspecto adicional de la presente invención, puede ser llevado a cabo un procedimiento de gestión del acceso a una región de memoria por un bus por parte de una pluralidad de componentes de procesamiento. El procedimiento incluye llevar a cabo una operación de semáforo por parte de uno de los componentes de procesamiento para obtener acceso a la región de memoria, llevándose a cabo la operación de semáforo solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus.
Se entiende que otras realizaciones de la presente invención serán inmediatamente evidentes a los expertos en la técnica a partir de la siguiente descripción detallada, en la que diversas realizaciones de la invención son mostradas y descritas a título de ilustración. Según se captará, la invención es susceptible de otras realizaciones diferentes y sus varios detalles son susceptibles de modificación en diversos aspectos adicionales, todo sin apartarse del alcance de las reivindicaciones adjuntas. En consecuencia, los dibujos y la descripción detallada deben considerarse de naturaleza ilustrativa y no restrictiva.
Breve descripción de los dibujos
Se ilustran aspectos de la presente invención a título de ejemplo, y no a modo de limitación, en los dibujos adjuntos, en los que:
la FIG. 1 es un diagrama conceptual de bloques que ilustra un ejemplo de un sistema de procesamiento;
la FIG. 2 es un diagrama conceptual de bloques que ilustra un ejemplo de una conexión punto a punto en un sistema de procesamiento entre un componente de procesamiento y una región de memoria compartida por medio de un bus;
la FIG. 3 es un diagrama conceptual de bloques que ilustra un ejemplo de un protocolo de bus usado en un sistema de procesamiento que soporta la emisión simultánea de dos emplazamientos de dirección diferentes a una región de memoria compartida por medio de un bus;
la FIG. 4 es un diagrama conceptual de bloques que ilustra un ejemplo de un sistema de procesamiento que tiene una arquitectura de bus de dos canales.
Descripción detallada
La detallada descripción presentada más abajo en conexión con los dibujos adjuntos tiene la intención de ser una descripción de diversas realizaciones de la presente invención y no se propone que represente las únicas realizaciones en que la presente invención puede ser puesta en práctica. La descripción detallada incluye detalles específicos con el propósito de proporcionar una comprensión cabal de la presente invención. Sin embargo, será evidente para los expertos en la técnica que la presente invención puede ser puesta en práctica sin estos detalles específicos. En algunos casos, estructuras y componentes bien conocidos son mostrados en forma de diagrama de bloques para evitar oscurecer los conceptos de la presente invención.
La FIG. 1 es un diagrama conceptual de bloques que ilustra un ejemplo de un sistema de procesamiento. El sistema 100 de procesamiento puede ser un ordenador, o estar residente en un ordenador, y ser susceptible de procesar, recuperar y almacenar información. El sistema 100 de procesamiento puede ser un sistema dedicado o estar integrado en un dispositivo, como un teléfono móvil. Según se muestra en la FIG. 1, dos componentes 102a y 102b de procesamiento dentro del sistema 100 de procesamiento pueden compartir un recurso común 104 usando un bus
106. Cada componente 102a y 102b de procesamiento puede ser cualquier tipo de componente de gestión por bus, incluyendo, a título de ejemplo, un microprocesador, procesador de señales digitales (DSP), un puente, lógica programable, puerta discreta o lógica de transistor o cualquier otro componente de procesamiento de la información. El recurso común 104 puede ser cualquier tipo de componente esclavo del bus, incluyendo, a título de ejemplo, un registro, una memoria, un puente o cualquier otro componente capaz de recuperar y almacenar información. En la realización mostrada en la FIG. 1, el recurso común 104 es una región de memoria. La expresión “región de memoria” se refiere a cualquier dispositivo de memoria, a cualquier porción de un dispositivo de memoria, a una región de un mapa de memoria o similares.
Puede usarse un árbitro 108 del bus para gestionar el acceso a la región 104 de memoria compartida. En una realización del árbitro 108 del bus, un componente 102a o 102b de procesamiento que quiera acceder a la región 104 de memoria compartida puede emitir una solicitud de lectura o escritura al árbitro 108 del bus. El árbitro 108 del bus puede ser usado para configurar una interconexión 110 del bus para conceder al componente 102a o 102b de procesamiento solicitante acceso a la región 104 de memoria compartida para que lleve a cabo la operación de lectura o escritura. En el caso de que múltiples solicitudes de lectura y/o de escritura procedentes de uno o más componentes de procesamiento compitan en el árbitro 108 del bus, el árbitro 108 del bus puede determinar entonces la secuencia en la que se llevarán a cabo las operaciones de lectura y/o de escritura y configurar dinámicamente la interconexión 110 del bus en consecuencia. La secuencia de las operaciones de lectura y/o escritura puede basarse en cualquier esquema de arbitraje y de las limitaciones generales de diseño, pero generalmente intentará equilibrar algún tipo de prioridad de sistema de concesiones basado en prioridades con una esquema de equidad.
55 E05820885 15-11-2011
Como superposición al esquema de arbitraje del bus, un componente 102a o 102b de procesamiento puede efectuar una operación de semáforo con la región 104 de memoria compartida para obtener acceso exclusivo a la región de memoria compartida. La operación de semáforo permite que el componente 102a o 102b de procesamiento determine el estado del semáforo y configure el semáforo si la región 104 de memoria compartida está disponible. En este ejemplo particular, el semáforo está almacenado en la región 104 de memoria compartida, pero, como apreciarán los expertos en la técnica, el semáforo puede estar almacenado en cualquier lugar del sistema 100 de procesamiento. El componente 102a o 102b de procesamiento puede efectuar la operación de semáforo de varias maneras. A título de ejemplo, un componente 102a o 102b de procesamiento configurado como un microprocesador puede incluir un soporte lógico para efectuar la operación de semáforo por medio de una instrucción de intercambio. La instrucción de intercambio puede ser utilizada para leer el semáforo de la región 104 de memoria compartida introduciéndola en un primer registro interno y para almacenar después en el emplazamiento de semáforo, en la región 104 de memoria compartida, un semáforo actualizado procedente de un segundo registro interno. El semáforo actualizado puede ser una bandera que indique un bloqueo para la región 104 de memoria compartida, lo que siempre será cierto tras una operación de lectura de semáforo, porque o bien el componente 102a o 102b de procesamiento logre el bloqueo o bien la región 104 de memoria compartida ya esté bloqueada. Esto sigue el algoritmo de verificación y configuración que es bien conocido en la técnica.
Es preciso que la operación de semáforo se realice con una operación atómica de lectura/escritura en el bus 106. Un enfoque es hacer que el árbitro 108 del bus bloquee el arbitraje del bus en un único componente de procesamiento durante la operación de semáforo. A título de ejemplo, un componente 102a o 102b de procesamiento que quiera acceder a la región 104 de memoria compartida puede realizar la operación de semáforo solicitando una operación de lectura bloqueada para determinar el estado del semáforo, seguida por una operación de escritura bloqueada para actualizar el estado del semáforo. Cuando el árbitro 106 del bus detecta una solicitud de una operación de lectura bloqueada para el emplazamiento de semáforo, concede al componente 102a o 102b de procesamiento acceso a la región 104 de memoria compartida a través de la interconexión 110 del bus y bloquea el arbitraje del bus retardando todas las demás solicitudes de lectura y/o escritura a la región 104 de memoria compartida procedentes de todos los demás componentes de gestión por bus hasta que el componente 102a o 102b de procesamiento actualice el estado del semáforo.
La desventaja de este enfoque es que permite que un componente 102b de procesamiento anule el esquema de arbitraje del bus decidido por el diseñador del sistema. Esto puede tener un impacto negativo en el rendimiento del sistema 100 de procesamiento. Además, una vez que el árbitro 106 del bus bloquea el arbitraje del bus en el componente de procesamiento en respuesta la solicitud de llevar a cabo una operación de semáforo, el árbitro 106 del bus no puede limitar al componente 102a o 102b de procesamiento a esta operación. Un componente 102a o 102b de procesamiento podría bloquear arbitrariamente otros componentes de procesamiento porque piense que no está obteniendo el ancho de banda que requiere.
Otra desventaja de este enfoque es que es un caso especial de protocolo de bus que requiere un soporte físico adicional. Este soporte físico adicional podría ser eliminado si la operación de semáforo pudiera ser realizada atómicamente dentro del marco del protocolo de bus. Un protocolo de bus que pudiera soportar una operación atómica de semáforo permitiría la solicitud simultánea de una operación de lectura y escritura. A continuación se describirá un ejemplo de una arquitectura de bus que implementa este protocolo.
La FIG. 2 es un diagrama conceptual de bloques que ilustra un ejemplo de una conexión punto a punto en un sistema de procesamiento entre un componente de procesamiento y una región de memoria compartida por medio de un bus. Se concede al componente 102 de procesamiento acceso a la región 104 de memoria compartida a través de la interconexión 110 del bus bajo el control del árbitro 108 del bus. En este ejemplo, la complejidad del bus 106 puede reducirse eliminando el canal de direccionamiento que se usa en las estructuras de bus convencionales. Puede lograrse la eliminación del canal de direccionamiento redefiniendo el canal de escritura como un “canal de transmisión” 106a. El canal 106a de transmisión puede ser usado como un medio genérico para la emisión de información de direcciones y de datos de escritura desde el componente 102 de procesamiento hasta la región 104 de memoria de forma multiplexada por división de tiempo. Se describe un ejemplo de este protocolo de bus en la solicitud de patente estadounidense titulada A Multiple Address Two Channel Bus Structure, con nº de serie 10/833.716, presentada el 27 de abril de 2004, con expediente de agente nº 040237, cuyo contenido se incorpora al presente documento por referencia.
El componente 102 de procesamiento puede escribir en la región 104 de memoria compartida emitiendo una dirección por el canal 106a de transmisión y, a la vez, señalando una operación de escritura a la región 104 de memoria compartida usando señalización de banda lateral. Tras la emisión de la dirección, el componente 102 de procesamiento puede emitir datos de escritura por el canal 106a de transmisión. La región 104 de memoria compartida puede almacenar los datos de escritura en un bloque de memoria que comienza con la dirección emitida previamente por el canal 106a de transmisión.
El componente 102 de procesamiento puede leer de la región 104 de memoria compartida emitiendo una dirección por el canal 106a de transmisión y, a la vez, señalando una operación de lectura a la región 104 de memoria compartida usando señalización de banda lateral. La región 104 de memoria compartida puede leer datos de un
60 E05820885 15-11-2011
bloque de memoria que comienza con la dirección emitida por el canal 106a de transmisión y emitir los datos leídos al componente 102 de procesamiento por medio de un canal 106b de recepción.
El protocolo de bus puede estar configurado para soportar la emisión de dos emplazamientos de dirección diferente a la vez por el canal 106a de transmisión a la región 104 de memoria compartida. Este concepto está ilustrado en el diagrama conceptual de bloques de la FIG. 3. Se muestra una conexión punto a punto entre el componente 102 de procesamiento y la región 104 de memoria compartida a través de la interconexión 110 del bus bajo el control del árbitro 108 del bus. En este ejemplo, puede usarse la porción superior del canal de transmisión (Dirección A) para acceder a un segundo emplazamiento 104b de dirección de la región 104 de memoria compartida. Con este configuración, el componente 102 de procesamiento puede solicitar (1) dos operaciones de lectura simultáneamente,
(2) dos operaciones de escritura simultáneamente o (3) operaciones simultáneas de lectura y escritura en las mismas o en diferentes direcciones. Una de las señales de banda lateral puede estar asociada con cada uno de los emplazamiento de dirección.
El protocolo de bus puede usar un esquema de direccionamiento implícito para gestionar solicitudes simultáneas de operaciones de lectura y escritura a la misma dirección. A título de ejemplo, el componente 102 de procesamiento puede emitir la dirección para que se lleve a cabo la primera operación como Dirección A, y la dirección para la segunda operación que deba llevarse a cabo como Dirección B. La secuencia de lectura/escritura llevada a cabo por la región 104 de memoria compartida puede basarse en este esquema de direccionamiento para mantener la coherencia secuencial. Así, si se usa la misma dirección para la Dirección A y la Dirección B y el componente 102 de procesamiento señala una operación de escritura para la Dirección A y una operación de lectura para la Dirección B, entonces la región 104 de memoria compartida esperará hasta que los datos de escritura emitidos por el canal 106a de transmisión se escriban a la región 104 de memoria compartida antes de proporcionar los datos recién escritos en esta dirección al canal de recepción para su transmisión al componente 102 de procesamiento. A la inversa, si el componente 102 de procesamiento señala una operación de lectura para la Dirección A y una operación de escritura para la Dirección B, entonces la región 104 de memoria compartida proporcionará los datos de esta dirección al canal de recepción antes de escribir los datos nuevos procedentes del canal 106a de transmisión a esta dirección de la región 104 de memoria compartida.
La FIG. 4 es un diagrama conceptual de bloques que ilustra un ejemplo de un sistema de procesamiento que tiene una arquitectura de bus de dos canales. La arquitectura de bus de dos canales puede estar soportada por un protocolo de bus similar al expuesto en conexión con las FIGURAS 2 y 3. En este ejemplo, puede llevarse a cabo una operación atómica de semáforo dentro del marco del protocolo de bus. Más específicamente, el componente 102a de procesamiento puede solicitar simultáneamente una operación de lectura y escritura al emplazamiento de semáforo. Esto puede lograrse emitiendo la dirección del semáforo como Dirección A y como Dirección B por el canal de transmisión a la interconexión 110. Si el protocolo de bus usa el esquema de direccionamiento implícito descrito más arriba, entonces el componente 102a de procesamiento señala una operación de lectura para la Dirección A y una operación de escritura para la Dirección B. Dependiendo de las solicitudes pendientes procedentes de otros componentes de procesamiento, el árbitro 108 de bus adoptará una decisión sobre si la interconexión 110 del bus debería ser configurada inmediatamente para conceder al componente 102a de procesamiento acceso a la región 104 de memoria compartida o demorar la conexión. En cualquier caso, una vez que se concede acceso al componente 102a de procesamiento a la región 104 de memoria compartida, la operación de lectura y escritura puede ser llevada a cabo atómicamente. No es preciso que el árbitro 108 del bus reconozca en la solicitud una operación de semáforo ni que bloquee la región 104 de memoria compartida. Más bien, el árbitro 108 de bus meramente concede al componente 102a de procesamiento acceso a la región 104 de memoria compartida según el esquema de arbitraje del bus. Si otro componente 102b de procesamiento realiza una operación de semáforo, puede usarse el esquema de arbitraje del bus para gestionar el acceso a la región 104 de memoria compartida, pero la operación de semáforo propiamente dicha es invisible para el árbitro 108 del bus.
La operación atómica de lectura y escritura para la operación de semáforo puede ser llevada a cabo una vez que el árbitro 108 del bus concede al componente 102a de procesamiento acceso a la región 104 de memoria compartida. La dirección de semáforo que ocupa tanto a la Dirección A como a la Dirección B por el canal 106a de transmisión, junto con la señalización asociada, puede ser encaminada por medio de la interconexión 110 del bus a la región 104 de memoria compartida. Tras la emisión de la dirección de semáforo, el componente 102a de procesamiento puede emitir un semáforo actualizado durante el siguiente ciclo de reloj, que también se encamina a la región 104 de memoria compartida a través de la interconexión 110 del bus. El semáforo actualizado puede ser emitido desde un registro interno en el componente 102a de procesamiento usando una instrucción de intercambio o mediante otro medio. Un controlador de memoria (no mostrado), que forma parte o está separado de la región 104 de memoria, determina la secuencia en la que se llevará a cabo la operación de lectura y escritura en base al esquema de direccionamiento implícito expuesto más arriba o a cualquier otro procedimiento. En este caso, el controlador de memoria detecta una solicitud de una operación de lectura para la Dirección A y una solicitud de una operación de escritura para la Dirección B y, en consecuencia, determina que se llevará a cabo en primer lugar la operación de lectura desde la dirección de semáforo. Se lleva a cabo la operación de lectura recuperando el semáforo de la región 104 de memoria compartida y emitiéndolo por el canal 106b de recepción al componente 102a de procesamiento a través de la interconexión 110 del bus. Una vez que está completa la operación de lectura, la operación de escritura se lleva a cabo escribiendo el semáforo actualizado recibido por el canal 106a de transmisión a la dirección de
55 E05820885 15-11-2011
semáforo. El semáforo actualizado es una bandera que indica que la región de memoria compartida está bloqueada, ya sea por el componente 102a de procesamiento como consecuencia de la operación de semáforo o previamente por otro componente de gestión por bus.
El componente 102a de procesamiento carga la emisión de semáforo desde la región 104 de memoria compartida por medio del canal 106b de recepción en un registro interno, usando de nuevo una instrucción de intercambio o mediante cualquier otro medio. Una vez que esto ocurre, el árbitro 108 del bus queda libre para reconfigurar la interconexión 110 del bus para gestionar solicitudes de otros componentes de gestión por bus. El componente 102a de procesamiento determina a partir del semáforo si la región 104 de memoria compartida está disponible. Si el componente 102a de procesamiento determina que la región 104 de memoria compartida no está disponible (es decir, está bloqueada), entonces no intentará ni leer ni escribir a la región 104 de memoria compartida. El componente 102a de procesamiento puede seguir intentando llevar a cabo operaciones de semáforo hasta que la región 104 de memoria compartida se haga disponible más tarde. Por otro lado, si el componente 102a de procesamiento determina que la región 104 de memoria compartida está disponible (es decir, no está bloqueada), entonces puede leer y escribir a la región 104 de memoria compartida según el esquema de arbitraje del bus implementado por el árbitro 108 del bus. Otros componentes de gestión por bus no intentarán ni leer ni escribir en la región 104 de memoria compartida, porque detectarán un bloqueo debido al semáforo actualizado escrito con anterioridad por el componente 102a de procesamiento. Una vez que el componente 102a de procesamiento ya no precise acceder a la región 104 de memoria compartida, llevará a cabo una operación de escritura al emplazamiento de semáforo para cambiar la bandera para indicar que la región 104 de memoria compartida está sin bloqueo. Tras esta operación de escritura, otros componentes de gestión por bus pueden ser capaces de acceder a la región 104 de memoria compartida a través de una operación de semáforo con éxito.
Los diversos bloques, módulos, circuitos, elementos y/o componentes ilustrativos descritos en conexión con las realizaciones dadas a conocer en el presente documento pueden ser implementados o llevados a cabo con un procesador de uso general, un procesador de señales digitales (DSP), un circuito integrado para aplicaciones específicas (ASIC), una matriz de puertas programable in situ (FPGA) u otro componente de lógica programable, una puerta discreta o lógica de transistor, componente discretos de soporte físico o cualquier combinación de los mismos diseñada para llevar a cabo las funciones descritas en el presente documento. Un procesador de uso general puede ser un microprocesador, pero, de forma alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estado convencionales. Un procesador también puede ser implementado como una combinación de componentes de cálculo; por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunto con un núcleo de DSP o cualquier otra configuración de ese tipo.
Los procedimientos o algoritmos descritos en conexión con las realizaciones dadas a conocer en el presente documento pueden implementarse directamente en un soporte físico, en un módulo de soporte lógico ejecutado por un procesador o en una combinación de los dos. Un módulo de soporte lógico puede residir en la memoria RAM, en memoria flash, en memoria ROM, en memoria EPROM, en memoria EEPROM, en registro, un disco duro, un disco extraíble, un CD-ROM o en cualquier otra forma de medio de almacenamiento conocida en la técnica. Un medio de almacenamiento puede estar acoplado al procesador, de modo que el procesador pueda leer información del medio de almacenamiento y escribir información en el mismo. De manera alternativa, el medio de almacenamiento puede ser parte integral del procesador.
Se proporciona la anterior descripción de las realizaciones dadas a conocer para permitir que cualquier persona experta en la técnica realice o use la presente invención. Diversas modificaciones de estas realizaciones serán evidentes de inmediato para los expertos en la técnica, y los principios genéricos definidos en el presente documento pueden ser aplicados a otras realizaciones sin apartarse del espíritu o el alcance de la invención. Así, no se pretende que la presente invención esté limitada a las realizaciones mostradas en el presente documento, sino que debe otorgársele todo el alcance coherente con las reivindicaciones en las que la referencia a un elemento en singular no se pretende que signifique “uno y solo uno”, a no ser que se afirme así específicamente, sino más bien “uno o más”. Todos los equivalentes estructurales y funcionales a los elementos de las diversas realizaciones descritas de principio a fin de esta revelación que son conocidos o lleguen a ser conocidos más tarde a las personas con un dominio normal de la técnica son incorporados expresamente al presente documento por referencia y se pretende que estén abarcados por las reivindicaciones. Además, nada de lo dado a conocer en el presente documento se pretende que esté dedicado al público, con independencia de si tal revelación está enumerada de forma explícita en las reivindicaciones. Ningún elemento de las reivindicaciones debe ser interpretado según las estipulaciones del 35 U.S.C. §112, sexto párrafo, a no ser que el elemento sea enumerado expresamente usando la expresión “medio para” o, en el caso de una reivindicación de procedimiento, el elemento sea enumerado usando la expresión “etapa para”.

Claims (18)

  1. REIVINDICACIONES
    1. Un sistema (100) de procesamiento que comprende:
    un bus (106; 106a, 106b);
    una región (104) de memoria acoplada al bus; y
    5 una pluralidad de componentes (102; 102a, 102b) de procesamiento que tienen acceso a la región (104) de memoria por medio del bus (106; 106a, 106b), estando configurado cada uno de los componentes de procesamiento para llevar a cabo una operación de semáforo para obtener acceso a la región (104) de memoria solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus (106; 106a, 106b), caracterizado porque la solicitud simultánea es llevada a
    10 cabo emitiendo simultáneamente dos copias de una dirección de semáforo al emplazamiento de semáforo por medio del bus (106; 106a, 106b).
  2. 2. El sistema de procesamiento de la reivindicación 1 en el que cada uno de los componentes (102; 102a, 102b) de procesamiento está configurado, además, para solicitar la operación de lectura y escritura para la operación del semáforo proporcionando una señal de solicitud de la operación de lectura al emplazamiento de semáforo
    15 con una copia de la dirección de semáforo, y proporcionando una señal de solicitud de la operación de escritura al emplazamiento de semáforo con la otra copia de la dirección de semáforo.
  3. 3. El sistema de procesamiento de la reivindicación 1 en el que cada uno de los componentes (102; 102a, 102b) de procesamiento está configurado, además, para llevar a cabo una operación de semáforo emitiendo un semáforo actualizado al emplazamiento de semáforo tras la emisión simultánea de las dos copias de la
    20 dirección de semáforo.
  4. 4. El sistema de procesamiento de la reivindicación 3 en el que el emplazamiento de semáforo está configurado para recuperar el semáforo en respuesta a la solicitud de la operación de lectura a la dirección de semáforo procedente de uno de los componentes (102; 102a, 102b) de procesamiento, y para emitir el semáforo recuperado a dicho uno de los componentes de procesamiento, estando configurado el emplazamiento de
    25 semáforo, además, para almacenar el semáforo actualizado en respuesta la solicitud de la operación de escritura a la dirección de semáforo.
  5. 5. El sistema de procesamiento de la reivindicación 4 en el que el bus comprende, además, un canal (106a) de transmisión y un canal (106b) de recepción y en el que cada uno de los componentes (102; 102a, 102b) de procesamiento está configurado, además, para emitir las dos copias de la dirección de semáforo, seguidas por
    30 el semáforo actualizado, al emplazamiento de semáforo por medio del canal (106a) de transmisión, y en el que el emplazamiento de semáforo está configurado, además, para emitir el semáforo recuperado a dicho uno de los componentes de procesamiento por medio del canal de recepción.
  6. 6. El sistema de procesamiento de la reivindicación 5 en el que cada uno de los componentes (102; 102a, 102b)
    de procesamiento está configurado, además, para determinar si la región (104) de memoria está disponible a 35 partir del semáforo recuperado emitido por medio del canal de recepción.
  7. 7. El sistema de procesamiento de la reivindicación 6 en el que cada uno de los componentes (102; 102a, 102b) de procesamiento está configurado, además, para escribir datos en la región (104) de memoria, si se determina que la región (104) de memoria está disponible, emitiendo una dirección de datos de escritura y los datos de escritura a la región de memoria por medio del canal (106a) de transmisión, y en el que cada uno de los
    40 componentes (102; 102a, 102b) de procesamiento está configurado, además, para leer datos de la región (104) de memoria, si se determina que la región (104) de memoria está disponible, emitiendo una dirección de datos de lectura a la región (104) de memoria por medio del canal (106a) de transmisión y leyendo los datos de lectura del canal (106b) de recepción.
  8. 8. El sistema de procesamiento de la reivindicación 1 en el que el bus (106; 106a, 106b) comprende un canal
    45 (106a) de transmisión que tiene una pluralidad de líneas y en el que cada uno de los componentes de procesamiento está configurado, además, para solicitar la operación de lectura y escritura para la operación de semáforo emitiendo una copia de la dirección de semáforo por medio de una primera porción de las líneas y la otra copia de la dirección de semáforo por medio de una segunda porción de las líneas.
  9. 9. El sistema de procesamiento de la reivindicación 8 en el que cada uno de los componentes (102; 102a, 102b)
    50 de procesamiento está configurado, además, para proporcionar una señal de solicitud de una operación de escritura con dicha una copia de la dirección de semáforo en la primera porción de las líneas, y una señal de solicitud de una operación de escritura a dicha otra copia de la dirección de semáforo en la segunda porción de las líneas.
  10. 10. El sistema de procesamiento de la reivindicación 9 en el que el emplazamiento de semáforo está configurado, además, para llevar a cabo la operación de lectura solicitada antes de llevar a cabo la operación de escritura solicitada.
  11. 11. El sistema de procesamiento de la reivindicación 1 en el que cada unidad de procesamiento está configurada 5 para emitir las dos copias de la dirección de semáforo por medio de un único canal (106a).
  12. 12. Un procedimiento de gestión del acceso a una región (104) de memoria por medio de un bus (106; 106a, 106b) por parte de una pluralidad de componentes (102; 102a, 102b) de procesamiento, comprendiendo el procedimiento:
    llevar a cabo una operación de semáforo por parte de uno de los componentes (102; 102a, 102b) de
    10 procesamiento para obtener acceso a la región (104) de memoria, llevándose a cabo la operación de semáforo solicitando simultáneamente una operación de lectura y de escritura a un emplazamiento de semáforo por medio del bus, caracterizado porque la solicitud simultánea comprende la emisión de dos copias de una dirección de semáforo desde dicho uno de los componentes de procesamiento al emplazamiento de semáforo por medio del bus (106; 106a, 106b).
    15 13. El procedimiento de la reivindicación 12 en el que las solicitudes de la operación de lectura y escritura para la operación del semáforo comprende, además, proporcionar, desde dicho uno de los componentes (102; 102a, 102b) de procesamiento, una señal de solicitud de una operación de lectura al emplazamiento de semáforo con una copia de la dirección de semáforo, y proporcionar, desde dicho uno de los componentes (102; 102a, 102b) de procesamiento, una señal de solicitud de una operación de escritura al emplazamiento de semáforo con la
    20 otra copia de la dirección de semáforo.
  13. 14. El procedimiento de la reivindicación 12 en el que la ejecución de la operación de semáforo por parte de dicho uno de los componentes (102; 102a, 102b) de procesamiento comprende la emisión de un semáforo actualizado al emplazamiento de semáforo por medio del bus tras la emisión simultánea de las dos copias de la dirección de semáforo.
    25 15. El procedimiento de la reivindicación 12 que, además, comprende la recuperación del semáforo del emplazamiento de semáforo en respuesta a la solicitud de la operación de lectura a la dirección de semáforo por parte de dicho uno de los componentes (102; 102a, 102b) de procesamiento, la emisión del semáforo recuperado del emplazamiento de semáforo a dicho uno de los componentes (102; 102a, 102b) de procesamiento por medio del bus (106; 106a, 106b) y el almacenamiento del semáforo actualizado en el
    30 emplazamiento de semáforo en respuesta a la solicitud de la operación de escritura a la dirección de semáforo.
  14. 16. El procedimiento de la reivindicación 15 en el que el bus comprende, además, un canal (106a) de transmisión y un canal (106b) de recepción y en el que dicho uno de los componentes (102; 102a, 102b) de procesamiento emite las dos copias de la dirección de semáforo, seguidas por el semáforo actualizado, al emplazamiento de semáforo por medio del canal (106a) de transmisión, y en el que el emplazamiento de semáforo emite el
    35 semáforo recuperado a dicho uno de los componentes de procesamiento por medio del canal (106b) de recepción.
  15. 17. El procedimiento de la reivindicación 16 que, además, comprende la determinación, en dicho uno de los componentes (102; 102a, 102b) de procesamiento, de si la región (104) de memoria está disponible a partir del semáforo recuperado.
    40 18. El procedimiento de la reivindicación 17 en el que dicho uno de los componentes (102; 102a, 102b) de procesamiento determina que la región de memoria está disponible, comprendiendo el procedimiento, además, la escritura de datos a la región (104) de memoria emitiendo una dirección de datos de escritura y los datos de escritura desde dicho uno de los componentes (102; 102a, 102b) de procesamiento a la región (104) de memoria por medio del canal (106a) de transmisión.
    45 19. El procedimiento de la reivindicación 17 en el que dicho uno de los componentes (102; 102a, 102b) de procesamiento determina que la región de memoria está disponible, comprendiendo el procedimiento la lectura de datos de la región (104) de memoria emitiendo una dirección de datos de lectura desde dicho uno de los componentes de procesamiento a la región (104) de memoria por medio del canal (106a) de transmisión y la emisión de los datos de lectura desde la región (104) de memoria a dicho uno de los componentes (102; 102a,
    50 102b) de procesamiento.
  16. 20. El procedimiento de la reivindicación 12 en el que el bus comprende un canal (106a) de transmisión que tiene una pluralidad de líneas y en el que cada uno de los componentes (102; 102a, 102b) de procesamiento está configurado, además, para solicitar la operación de lectura y escritura para la operación de semáforo emitiendo una copia de la dirección de semáforo por medio de una primera porción de las líneas y la otra copia de la
    55 dirección de semáforo por medio de una segunda porción de las líneas.
  17. 21.
    El procedimiento de la reivindicación 20 que, además, comprende proporcionar de una señal de solicitud de una operación de lectura al emplazamiento de semáforo con dicha una de las copias de la dirección de semáforo en la primera porción de las líneas, y una señal de solicitud de una operación de escritura a dicha otra copia de la dirección de semáforo en la segunda porción de las líneas.
  18. 22.
    El procedimiento de la reivindicación 12 en el que la emisión de las dos copias de la dirección de semáforo comprende la emisión simultánea de las dos copias de la dirección de semáforo por medio de un único canal (106a).
ES05820885T 2004-10-22 2005-10-24 Procedimiento y aparato para llevar a cabo una operación atómica de semáforo. Active ES2371767T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US971740 1997-11-17
US10/971,740 US7610463B2 (en) 2004-10-22 2004-10-22 Method and apparatus for performing an atomic semaphore operation

Publications (1)

Publication Number Publication Date
ES2371767T3 true ES2371767T3 (es) 2012-01-09

Family

ID=36087815

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05820885T Active ES2371767T3 (es) 2004-10-22 2005-10-24 Procedimiento y aparato para llevar a cabo una operación atómica de semáforo.

Country Status (15)

Country Link
US (1) US7610463B2 (es)
EP (1) EP1812868B1 (es)
JP (2) JP2008518329A (es)
KR (1) KR100915260B1 (es)
CN (1) CN101080706B (es)
AT (1) ATE527601T1 (es)
DK (1) DK1812868T3 (es)
ES (1) ES2371767T3 (es)
HK (1) HK1108297A1 (es)
IL (1) IL182733A (es)
MX (1) MX2007004870A (es)
PL (1) PL1812868T3 (es)
PT (1) PT1812868E (es)
TW (1) TWI396088B (es)
WO (1) WO2006047570A1 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631152B1 (en) * 2005-11-28 2009-12-08 Nvidia Corporation Determining memory flush states for selective heterogeneous memory flushes
US20080059674A1 (en) * 2006-09-01 2008-03-06 Jiaxiang Shi Apparatus and method for chained arbitration of a plurality of inputs
US20090292885A1 (en) * 2008-05-22 2009-11-26 Fujitsu Limited Method and apparatus for providing atomic access to memory
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8751860B2 (en) 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US8599886B2 (en) 2010-08-26 2013-12-03 Qualcomm Incorporated Methods and apparatus for reducing transfer qualifier signaling on a two-channel bus
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
CN102523481A (zh) * 2011-12-09 2012-06-27 成都东方盛行电子有限责任公司 一种节目播出系统用数据交换缓存的方法
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
JPWO2016080183A1 (ja) * 2014-11-18 2017-08-31 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法、およびプログラム
CN105630714B (zh) * 2014-12-01 2018-12-18 晨星半导体股份有限公司 接口资源分析装置及其方法
US9928174B1 (en) * 2016-03-16 2018-03-27 Amazon Technologies, Inc. Consistent caching
JP2019082897A (ja) * 2017-10-31 2019-05-30 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456965A (en) 1980-10-14 1984-06-26 Texas Instruments Incorporated Data processing system having multiple buses
US4594657A (en) 1983-04-22 1986-06-10 Motorola, Inc. Semaphore for memory shared by two asynchronous microcomputers
JPS60118961A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd メモリの共通領域アクセス制御方式
GB9406477D0 (en) * 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
EP0695999A3 (en) * 1994-06-30 1998-07-08 Digital Equipment Corporation System bus with separate address and data bus protocols
US5548780A (en) * 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
US5960441A (en) * 1996-09-24 1999-09-28 Honeywell Inc. Systems and methods for providing dynamic data referencing in a generic data exchange environment
JPH10177560A (ja) * 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US6745274B1 (en) * 2000-04-25 2004-06-01 Hewlett-Packard Development Company, L.P. Apparatus and method for synchronizing multiple accesses to common resources
US6513089B1 (en) * 2000-05-18 2003-01-28 International Business Machines Corporation Dual burst latency timers for overlapped read and write data transfers
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US6603683B2 (en) * 2001-06-25 2003-08-05 International Business Machines Corporation Decoding scheme for a stacked bank architecture
JP3662233B2 (ja) * 2002-03-06 2005-06-22 株式会社東芝 論理回路を含むバスバッファ回路
KR100803450B1 (ko) * 2002-11-19 2008-02-14 엘지노텔 주식회사 공유 버스 시스템의 스케줄링 장치 및 그 방법
US7360035B2 (en) * 2004-09-01 2008-04-15 International Business Machines Corporation Atomic read/write support in a multi-module memory configuration

Also Published As

Publication number Publication date
JP2011048834A (ja) 2011-03-10
CN101080706A (zh) 2007-11-28
ATE527601T1 (de) 2011-10-15
US20060090051A1 (en) 2006-04-27
PL1812868T3 (pl) 2012-03-30
EP1812868B1 (en) 2011-10-05
US7610463B2 (en) 2009-10-27
KR100915260B1 (ko) 2009-09-03
IL182733A0 (en) 2007-07-24
TWI396088B (zh) 2013-05-11
JP5558982B2 (ja) 2014-07-23
TW200634529A (en) 2006-10-01
WO2006047570A1 (en) 2006-05-04
PT1812868E (pt) 2011-12-21
JP2008518329A (ja) 2008-05-29
IL182733A (en) 2012-05-31
EP1812868A1 (en) 2007-08-01
MX2007004870A (es) 2007-07-04
DK1812868T3 (da) 2012-02-13
HK1108297A1 (en) 2008-05-02
KR20070084362A (ko) 2007-08-24
CN101080706B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
ES2371767T3 (es) Procedimiento y aparato para llevar a cabo una operación atómica de semáforo.
JP5890049B2 (ja) セマフォ予約をクリアする方法および装置
TWI620071B (zh) 一微控制器之虛擬通用輸入/輸出
ES2313297T3 (es) Estructura de bus de dos canales de direcciones multiples.
JP3790713B2 (ja) 共用バス上の装置に対するトランザクションの選択的宛先設定
EP1999577B1 (en) Efficient execution of memory barrier bus commands
ES2643437T3 (es) Interfaz periférica serie
ES2575095T3 (es) Memoria configurada para proporcionar acceso simultáneo de lectura / escritura a múltiples bancos
KR20070059859A (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
US20120290806A1 (en) Selective routing of local memory accesses and device thereof
US8386719B2 (en) Method and apparatus for controlling shared memory and method of accessing shared memory
US9003092B2 (en) System on chip bus system and a method of operating the bus system
US20060218355A1 (en) Multi-process support with data atomicity guaranteed with shared register of data of control signals
JP5058890B2 (ja) バス制御装置
JP2004030161A (ja) コンピュータシステムにおける割り込み制御方法、コンピュータシステム、半導体集積回路、及びプログラム
JP5129040B2 (ja) 共有メモリを用いたバス通信装置
TW200813733A (en) Apparatus and methods for handling requests over an interface
JP2004062910A (ja) マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法
US9928195B2 (en) Interconnect and method of operation of an interconnect for ordered write observation (OWO)
ES2557991T3 (es) Procedimiento para operar un sistema de comunicación, nodo de coordinación de un sistema de comunicación, así como sistema de comunicación
WO2011137840A1 (zh) 内存容量的配置方法和装置
JP2006011779A (ja) データ転送回路、データ転送回路lsi、データ転送装置、データ処理装置、情報処理装置、データ転送方法、データ処理方法、および、情報処理方法。
JP2006236499A (ja) Fifoシステム
JP2002007109A (ja) メモリ制御装置