ES2266579T3 - Procedimiento para el acceso a una unidad de instruccion para una red de datos. - Google Patents
Procedimiento para el acceso a una unidad de instruccion para una red de datos. Download PDFInfo
- Publication number
- ES2266579T3 ES2266579T3 ES02774365T ES02774365T ES2266579T3 ES 2266579 T3 ES2266579 T3 ES 2266579T3 ES 02774365 T ES02774365 T ES 02774365T ES 02774365 T ES02774365 T ES 02774365T ES 2266579 T3 ES2266579 T3 ES 2266579T3
- Authority
- ES
- Spain
- Prior art keywords
- instruction
- user
- pointer
- data
- application
- 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.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40019—Details regarding a bus master
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
- Read Only Memory (AREA)
- Mobile Radio Communication Systems (AREA)
- Bus Control (AREA)
Abstract
Procedimiento para el acceso a una unidad de instrucción (116) para una red de datos (102) con las siguientes etapas: - funcionamiento de varias aplicaciones (104, 106, 108, ...) en un usuario (100) de la red de datos (102), en el que las aplicaciones acceden a un bus de datos (110) del usuario (100), - escritura de al menos una estructura de la instrucción (118) en una zona de direcciones de una memoria del usuario (100) a través de una primera de las aplicaciones a través del bus de datos (110), caracterizado por las otras etapas: - escritura de un puntero (124) sobre la zona de direcciones en un registro de entrada (126) de la unidad de instrucciones (116) a través de la primera aplicación por medio del bus de datos (110), - acceso de la unidad de instrucciones (116) a la zona de direcciones a través del bus de datos (110) y procesamiento de la estructura de instrucciones (118), - escritura del puntero (124) en un registro de salida (136, 130) asociado a la primera aplicación después delprocesamiento de la estructura de instrucciones (118) a través del usuario (100).
Description
Procedimiento para el acceso a una unidad de
instrucción para una red de datos.
La invención se refiere a un procedimiento para
el acceso a una unidad de instrucción para una red de datos,
especialmente una Ethernet en tiempo real, a un producto de programa
de ordenador así como a un usuario con una unidad de instrucción de
este tipo y un sistema de comunicación.
Por un sistema de comunicación sincronizado
síncrono con propiedades de equidistancia se entiende un sistema
que está constituido por al menos dos usuarios, que están conectados
entre sí a través de una red de datos con el objeto del intercambio
mutuo de datos o bien de la transmisión mutua de datos. En este
caso, el intercambio de datos se lleva a cabo de una manera cíclica
en ciclos de comunicación equidistantes, que se predeterminan a
través del pulso de reloj de comunicación utilizado por el sistema.
Los usuarios son, por ejemplo, aparatos de automatización central,
aparatos de programación, aparatos de proyección o aparatos de
mando, aparatos periféricos como, por ejemplo, grupos estructurales
de entrada/salida, accionamientos, actuadores, sensores, controles
programables con memoria (SPS) otras unidades de control,
ordenadores o máquinas, que intercambian datos electrónicos con
otras máquinas, especialmente procesan datos de otras máquinas. Los
usuarios se llaman también nodos de red o nodos. Por unidades de
control se entienden a continuación unidades de regulación o
unidades de control, pero también, por ejemplo, conmutadores y/o
controladores de conmutación. Como redes de datos se utilizan, por
ejemplo, sistemas de bus, como por ejemplo bus de campo, Profibus,
Ethernet, Ethernet Industrial, FireWire o también sistemas de bus
internos de PC (PCI), etc., pero especialmente también Ethernet en
tiempo real isócrona.
Las redes de datos posibilitan la comunicación
entre varios usuarios a través de la reticulación, es decir, la
comunicación de usuarios individuales entre sí. La comunicación
significa en este caso la transmisión de datos entre los usuarios.
Los datos a transmitir se envían en este caso como telegramas de
datos, es decir, que los datos son agrupados en varios paquetes y
son enviados en esta forma a través de la red de datos al receptor
correspondiente. Por lo tanto, se habla también de paquetes de
datos. El concepto transmisión de datos se utiliza en este caso en
este documento totalmente como sinónimo de la transmisión mencionada
anteriormente de telegramas de datos o paquetes de datos.
En los sistemas de automatización distribuidos,
por ejemplo en el campo de la técnica de accionamiento, determinados
datos deben entrar en instantes determinados en los usuarios para
los que están destinados y deben ser procesados por los receptores.
Se habla en este caso de datos críticos en tiempo real bien de
tráfico de datos, puesto que una entrada inoportuna de los datos en
el lugar de destino conduce a resultados no deseados en el usuario,
en oposición a la comunicación de datos no crítica en tiempo real,
por ejemplo basada en Internet o bien en Intranet. De acuerdo con el
documento IEC 61491, EN61491 SERCOS Interface - Breve Descripción
Técnica (http:///www.sercos.de/deutch/index_{-}deutsch.htm)
se puede garantizar un tráfico de datos crítico en tiempo real con
éxito del tipo mencionado en sistemas de automatización
distribuidos.
Los componentes de automatización (por ejemplo,
controles, accionamientos, ...) disponen actualmente, en general,
de una interfaz con un sistema de comunicación sincronizado
cíclicamente. Un plano de ejecución del componente de automatización
(ciclo rápido) (por ejemplo, regulación de la posición en un
control, regulación del par motor de un accionamiento) está
sincronizado al ciclo de comunicación. De esta manera, se establece
el ciclo de la comunicación. Otros algoritmos de bajo rendimiento
(ciclo lento) (por ejemplo, regulaciones de la temperatura) de los
componentes de automatización se pueden comunicar de la misma manera
sólo a través de este pulso de reloj de comunicación con otros
componentes (por ejemplo, conmutadores binarios para ventiladores,
bombas, ...), aunque sería suficiente un ciclo más lento. A través
de la utilización de un solo pulso de reloj de comunicación para la
transmisión de todas las informaciones en el sistema se plantean
altos requerimientos a la anchura de banda del trayecto de
transmisión.
Durante el funcionamiento de la unidad de
instrucción para el accionamiento en la red de datos (interfaz de
comando) en un sistema multi-maestro, varias
aplicaciones pueden acceder al mismo tiempo o de una manera
consecutiva, pero en cualquier caso coordinada, a la unidad de
instrucción. Una coordinación de las aplicaciones individuales a la
interfaz de comando es necesaria en este caso para garantizar la
transferencia y el procesamiento de las instrucciones en la interfaz
de comando. Para la implementación de las aplicaciones pueden estar
previstos uno o varios procesadores (maestros) del usuario.
La coordinación ha sido realizada hasta ahora en
el plano del software (circuito de excitación), siendo bloqueadas
las aplicaciones a través de bloqueos de interrupción durante el
periodo de tiempo del procesamiento. En el plano del hardware, a
través de un bloqueo del bus se podría impedir un acceso adicional a
la interfaz de comando. De esta manera, se detiene igualmente el
software durante el periodo de tiempo del procesamiento.
Inconveniente:
- -
- Aunque una aplicación no quiera realizar ningún acceso a la interfaz de comando, se interrumpe el procesamiento del software en virtud de los mecanismos de bloqueo del bus.
- -
- A través del bloqueo de la interrupción, durante el periodo de tiempo del procesamiento de la instrucción no se puede procesar inmediatamente ya un acontecimiento de interrupción producido, sino que la rutina de interrupción es ejecutada posteriormente. El tiempo de bloqueo de interrupción más largo determina el tiempo de latencia de la interrupción del sistema.
Por lo tanto, la invención tiene el cometido de
crear un procedimiento mejorado para el acceso a una unidad de
instrucción para una red de datos. La invención tiene, además, el
cometido de crear un programa de ordenador mejorado para el acceso
de una aplicación a una unidad de instrucción de este tipo así como
un usuario para un sistema de comunicación.
Los cometidos en los que se basa la invención se
solucionan en cada caso con las características de las
reivindicaciones de patente independientes correspondientes. Las
formas de realización preferidas de la invención se indican en las
reivindicaciones dependientes de la patente.
De acuerdo con la invención, la transferencia de
la instrucción a la unidad de instrucción no se realiza directa,
sino indirectamente, siendo transmitido solamente un indicador a la
zona de direcciones de la estructura de instrucciones en la memoria
del usuario en el registro de entrada de la unidad de instrucción.
En este caso es especialmente ventajoso que la transferencia de la
instrucción a la unidad de instrucción se pueda realizar como acceso
de escritura "atómico" al registro de entrada, que solamente
necesita, por ejemplo, un pulso de reloj del bus.
De acuerdo con una forma de realización
preferida de la invención, la unidad de instrucción sirve para la
realización de determinadas operaciones básicas a través de la red
de datos. La unidad de instrucción se utiliza por las diferentes
aplicaciones del usuario a través de una interfaz común. En este
caso, todas las aplicaciones son tratadas como equivalentes. Una
unidad de arbitraje regula el acceso a un bus de datos interno del
usuario para el acceso a las aplicaciones a la unidad de
instrucción.
Es especialmente ventajoso que en virtud del
acceso de escritura "atómico" al registro de entrada de la
unidad de instrucción no se requieren mecanismos de bloqueo del bus
o bloqueos de interrupción. De acuerdo con la invención, se deposita
en primer lugar una estructura de instrucción en la memoria del
usuario, especialmente en la memoria de comunicación, antes de que
esta estructura de instrucción sea escrita a través de la escritura
de un puntero en la zona de la dirección de la estructura de la
instrucción en la memoria en el registro de entrada. Tanto el
procesador como también la unidad de instrucción pueden acceder a la
memoria de comunicación.
La unidad de instrucción accede entonces a la
estructura de la instrucción y la procesa. Esto tiene, en
comparación con la transferencia directa de los parámetros de la
instrucción a la unidad de instrucción, la ventaja de que se pueden
procesar estructuras de instrucciones de más de 32 bits. Además,
tampoco está limitada la duración de la realización para la
ejecución de una estructura de la instrucción y puede suministrar de
retorno mucha información diferente.
Otra ventaja es que se pueden emitir
instrucciones de varias aplicaciones, que no tienen que estar
necesariamente coordinadas entre sí. Además, se pueden escribir
también instrucciones iguales directamente unas detrás de otras en
el registro de entrada, sin tener que esperar a la realización de
cada instrucción individual.
De acuerdo con una forma de realización
preferida de la invención, se lleva a cabo una confirmación de
instrucciones recibidas a través del registro de entrada por medio
de la unidad de instrucción, porque la unidad de instrucción
registra la confirmación en un campo de confirmación en la
estructura de la instrucción en la memoria del usuario.
De acuerdo con otra forma de realización
preferida de la invención, no se plantean requerimientos de ningún
tipo en el bus de datos con respecto al bloqueo, es decir, que el
bus no es bloqueado nunca más allá de una operación de lectura o de
escritura individual. Además, la cantidad de información transmitida
entre las aplicaciones y la unidad de instrucción no está limitada
hacia arriba. No es necesaria una coordinación, como por ejemplo
bloqueos de interrupción entre las aplicaciones que llaman.
De acuerdo con otra forma de realización
preferida de la invención, se transfieren todas las instrucciones
depositadas por las aplicaciones en un ciclo de escritura al
registro de entrada (interfaz de comando), para evitar tiempos de
bloqueo del bus. A la interfaz de comando solamente se transfiere un
puntero (dirección) a una zona de la memoria, en la que se encuentra
la estructura de la instrucción depositada por la aplicación con
anterioridad en la memoria. De esta manera se evitan accesos de
escritura múltiples a la interfaz de comando, que son necesarias en
otro caso con instrucciones con varios operandos.
A partir de la zona de direcciones en la memoria
se leen entonces los datos de instrucciones desde la estructura de
instrucciones definida por la interfaz de comando, se interpreta y
se transfiere a la unidad de ejecución correspondiente para el
procesamiento.
Los usuarios del bus activos de bus de datos, es
decir, las aplicaciones activas, pueden realizar accesos de
escritura independientes entre sí a la interfaz de comando. De esta
manera, se soportan también las tareas múltiples a través de accesos
(mixtos) no ordenados de las diferentes aplicaciones sobre la
interfaz de comando. Para no bloquear mutuamente las tareas
individuales de una aplicación a través de bloqueos de interrupción,
se implementan en la interfaz de comando de una manera preferida
unos mecanismos, que permiten un acceso libre opcional de todas las
aplicaciones en diferente secuencia y en diferentes instantes a la
Interfaz.
De una manera preferida, las aplicaciones
reconocen si han sido recibidos sus punteros a una estructura de
instrucciones, que fue escrita en la Interfaz de comando. Si la
dirección leída y escrita son idénticas, entonces se acepta el
comando en la interfaz de comando. Si son diferentes, entonces
pueden ser responsables de ello dos posibilidades:
- -
- El comando no ha sido aceptado porque no había concluido todavía la recepción de un comando anterior.
- -
- El comando ya ha sido recibido, pero entre la escritura y la lectura ha sido recibido otro comando. Esta situación puede resultar tanto con una aplicación (Kernel con multitarea premtiva, cuando ésta no es administrada por el sistema operativo) como también en sistemas con varios usuarios físicos. Por lo tanto, se soportan por el hardware de una manera preferida dos mecanismos, que deben ser utilizados ambos por el software para el reconocimiento unívoco:
- \circ
- relectura de los datos recién leídos (dirección sobre la estructura de instrucciones) desde la interfaz de comando. En este caso, se reconoce si los datos de una aplicación han sido recibidos en la interfaz de comando. Si éste es el caso, entonces se ejecuta la instrucción a través de la interfaz de comando; en caso negativo, entonces se inscriben ya previamente los datos de una segunda aplicación en la interfaz y no se conmuta todavía desde el hardware a la lista de comandos, de manera que no podría aceptarse un comando de la primera aplicación,
- \circ
- confirmación de los datos recibidos. Se realizan entre escritura y relectura de la dirección las siguientes acciones en la interfaz de comando, como por ejemplo:
- -
- recepción de la instrucción a través de la interfaz de comando,
- -
- confirmación de la recepción a través de un campo de "reconocimiento" en la estructura de la instrucción también a través de la interfaz de comando,
- -
- descripción de la interfaz de comando con nuevos datos de direcciones a través de un segundo usuario,
de manera que no coinciden ya los
datos escritos y releídos. La recepción de una instrucción solamente
puede ser reconocida ahora de una manera en el campo de
"reconocimiento" de la estructura de
instrucción.
Para excluir una carrera crítica, se coloca de
una manera preferida solamente el campo de "reconocimiento",
antes de que se pueda escribir de nuevo la interfaz de usuario. La
recepción de un comando se termina, en general, con la concatenación
de la estructura de la instrucción en una lista de comandos, es
decir, que se lleva a cabo de una manera rápida. Una optimización en
un tiempo de recepción lo más corto posible y garantizado tiene
prioridad para no soportar tiempos de espera innecesarios en el
procesamiento del software en el caso de un nuevo acceso de
escritura.
De acuerdo con otra forma de realización
preferida de la invención se transfiere una instrucción o bien
secuencias de instrucciones de las aplicaciones sobre un registro de
entrada común utilizado (registro de comandos) de la unidad de
instrucción.
En este caso, se deposita en el registro de
comando la dirección (puntero) sobre una estructura de instrucción.
La estructura propiamente dicha contiene todos los datos necesarios
para el procesamiento de la instrucción. Para no bloquear, en el
caso de procesamiento largo de la instrucción, el registro de
comandos para toda la duración del procesamiento de la instrucción,
se concatena la estructura de instrucción transferida en una lista
de comandos. La estructura de la instrucción contiene a tal fin un
puntero "siguiente", con cuya ayuda se pueden concatenar
todavía estructuras no procesadas. El puntero "siguiente"
contiene la dirección de la siguiente estructura de instrucción no
procesada. A través de esta concatenación se consigue una
memorización intermedia de las estructuras de instrucción en la
lista de comando. De este modo se consigue un desacoplamiento entre
procesamiento de la instrucción y transferencia de la
instrucción.
Si se lleva a cabo un acceso de escritura desde
uno de los usuarios al registro, entonces se impide la recepción de
otros datos en el registro de comandos hasta que la instrucción
transferida está concatenada en la lista de comandos. Solamente
después de que la interfaz de comandos ha confirmado la recepción de
la instrucción a través de la colocación del campo de
"reconocimiento" correspondiente, se acepta un nuevo acceso de
escritura al registro de comandos.
Después de que las instrucciones transferidas a
través del registro de comandos han sido procesadas, se retornan las
estructuras de instrucciones correspondientes al usuario. En este
caso, para cada aplicación está presente un registro de retorno
separado, mencionado a continuación también como registro de salida,
a través del cual se transfieren las estructuras de instrucción.
Para no tener que garantizar ninguna recogida progresiva de las
estructuras de instrucciones en el registro de retorno a través de
los usuarios, se concatenan las estructuras procesadas en listas de
retorno separadas, en función de los usuarios. El retorno de cada
estructura procesada es conocido por el usuario respectivo. Las
estructuras de instrucciones concatenadas son retornadas en este
caso a través del registro de retorno.
De acuerdo con una forma de realización
preferida de la invención, una aplicación, una aplicación
transfiere una estructura de instrucción a través de un acceso de
escritura al registro de comandos en la interfaz de comando.
Como consecuencia del proceso de escritura en el
registro de comando no se aceptan datos de accesos de escritura
siguientes hasta que se concatena la estructura transferida desde la
interfaz de comando en la lista común de comandos y se confirma en
el campo de "reconocimiento" de la estructura la recepción. Sin
embargo, los accesos de lectura al registro de comandos están
permitidos en adelante. Para controlar si el valor recién registrado
ha sido introducido también en el registro de comandos, se releen de
nuevo los datos del registro. Si los datos de escritura y los datos
de lectura coinciden, entonces se ejecuta el ciclo de escritura en
el registro de comandos.
Sin embargo, si existen diferencias entre los
datos escritos y los datos leídos, entonces pueden ser responsables
de ello dos posibilidades:
- -
- En el periodo de tiempo entre el ciclo de escritura y el ciclo de lectura de una aplicación 1, la estructura de la instrucción registrada en el registro de comandos ya ha sido recibida en la lista de comandos y la confirmación ha sido colocada en el campo de "reconocimiento" de la estructura. La inscripción de nuevos datos en el registro de comandos ha sido liberada a continuación. Todavía antes de que la aplicación 1 haya realizado su ciclo de lectura, la aplicación 2 podría depositar un acceso de escritura al registro de comandos.
- -
- Antes de la escritura del registro de comandos a través de una aplicación 1 ha sido depositado ya un acceso de escritura por la aplicación 2. De esta manera, se impide la entrada de los datos siguientes de la dirección de la aplicación.
Si aparecen diferencias entre los datos de
escritura y los datos de lectura, entonces la aplicación debe
analizar el campo de "reconocimiento" de la estructura de la
instrucción. Si la confirmación está colocada en el campo de
"reconocimiento" de la estructura, entonces ha estructura de la
instrucción ha sido recibida y ha sido concatenada en la lista de
comandos. La recepción no confirmada de la estructura conduce a un
acceso de escritura cíclico al registro de comando (Polling).
Además, es especialmente ventajoso que los
procedimientos publicados se pueden aplicar o bien emplearen
sistemas de automatización, especialmente en máquinas de envase,
prensas, máquinas de inyección de plástico, máquinas textiles,
máquinas de imprenta, máquinas herramientas, robots, sistemas de
manipulación, máquinas de procesamiento de madera, máquinas de
procesamiento de vidrio, máquinas de procesamiento de cerámicas así
como productos semiacabados.
Otra ventaja es que la invención se puede
emplear tanto para aplicaciones en comunicaciones como también para
otras aplicaciones, como por ejemplo interfaces de comando de otros
subsistemas inteligentes, especialmente sistemas gráficos.
Por lo demás, se explican en detalle formas de
realización preferidas de la invención con referencia a los dibujos.
En este caso:
La figura 1 muestra un diagrama de bloques de
una forma de realización de un usuario de una red de datos de
acuerdo con la invención.
La figura 2 muestra una representación de
principio de la interfaz de comando.
La figura 3 muestra un ejemplo de estructuras de
instrucciones concatenadas en la memoria del usuario.
La figura 4 muestra un diagrama de flujo de una
forma de realización del procedimiento de acuerdo con la
invención.
La figura 1 muestra un usuario 100 de una red de
datos 102. En la red de datos 102 se puede tratar, por ejemplo, de
una Ethernet en tiempo real para aplicaciones en la técnica de
automatización. En una red de datos 102 de este tipo se conectan
típicamente varios usuarios, que están constituidos, en principio,
de la misma forma que el usuario 100. De este modo se crea un
sistema de comunicación.
El usuario 100 tiene varias aplicaciones 104,
106, 108, ..., que pueden acceder a un bus de datos 110 del usuario
100. El acceso de las aplicaciones 104, 106, 108, ... al bus de
datos se regula a través de un árbitro 112.
Además, el usuario 100 tiene una memoria 114 y
una unidad de instrucciones 116. La memoria 114 y la unidad de
instrucciones 116 están acopladas de la misma manera en el bus de
datos 110.
Cada una de las aplicaciones 104, 106, 108 puede
describir a través del bus de datos 110 la memoria 114 con una
estructura de instrucciones 118. En la forma de realización de la
figura 1, la estructura de instrucciones 118 está constituida por
una instrucción 120, que puede ser ejecutada por la unidad de
instrucciones, y por un campo de confirmación 122. La estructura de
instrucciones 118 es memorizada en una zona de direcciones de la
memoria 114, a la que apunta el puntero 124.
La unidad de instrucciones 116 está acoplada
tanto con el bus de datos 110 como también con la red de datos 102.
La unidad de instrucciones 116 sirve para la realización de
diferentes operaciones básicas, que se refieren a la red de datos
102 con relación a las aplicaciones 104, 106, 108, ... La unidad de
instrucciones 116 contiene una interfaz para las aplicaciones 104,
106, 108, ... que presente un registro de comandos 126 y varios
registros de retorno 128.
El registro de comandos 126 sirve como registro
de entrada para la memorización de punteros 124. Al registro de
comandos 126 puede acceder cualquiera de las aplicaciones 104, 106,
108, ... a través del bus de datos 110. En cambio, cada uno de los
registros de retorno 128 está asociado a una aplicación determinada.
Por ejemplo, el registro de retorno 130 está asociado a la
aplicación 104, el registro de retorno 132 está asociado a la
aplicación 106 y el registro de retorno 134 está asociado a la
aplicación 108, etc.
La unidad de instrucciones 116 contiene, además,
una lista de comandos 116, que se designa también, por decirlo así,
como pila. En la lista de comandos 136 se encuentran las
instrucciones aceptadas y a procesar.
Además, la unidad de instrucción 116 tiene un
circuito lógico 138 para el procesamiento de las instrucciones.
En el funcionamiento, una de las aplicaciones
del usuario 100, por ejemplo la aplicación 104 accede a través del
bus de datos 110 a la memoria 114, con el fin de depositar allí una
estructura de instrucciones 118. A continuación, la aplicación 104
accede a través del bus de datos 110 al registro de comandos 126 con
un acceso de escritura, con el fin de escribir el puntero 24 sobre
la estructura de instrucciones 118 en el registro de comandos 126.
La unidad de instrucción 116 recibe entonces la estructura de la
instrucción 118 desde la memoria 114 en la lista de comandos 136 y
confirma la recepción a través de una entrada correspondiente en el
campo de confirmación 122 de la estructura de instrucciones 118.
Después del procesamiento de la estructura de la
instrucción 118, la unidad de instrucciones 116 escribe el puntero
124 en el registro de retorno 130, que está asociado a la aplicación
104. La aplicación 104 puede consultar el registro de retorno 130 a
través de un acceso de lectura a través del bus de datos 110, para
verificar si la estructura de la instrucción 118 ya ha sido
procesada.
La figura 2 muestra un desarrollo de la interfaz
de ordenador de la figura 1.
El registro de comandos 126 se puede describir
en este caso por diferentes aplicaciones 104, 106, 108, ... de
forma no coordinada. A partir de las estructuras de las
instrucciones 118 recibidas resulta la lista de comandos 136.
Además, a cada uno de los registros de retorno
130, 132, 134, ... está asociada una lista de retorno 140, ..., al
registro de retorno 130, que está asociada de nuevo a la aplicación
104. Con la ayuda de la lista de retorno 140 se pueden tamponar la
salida de punteros 124.
La figura 3 muestra un ejemplo de realización
para una estructura de instrucciones en la memoria 114. En este
ejemplo de realización, la estructura de instrucciones 118 tiene un
campo 142 para la memorización de una o varias instrucciones 120
(ver la figura 1), un campo 144 para la memorización de una
confirmación, que corresponde al campo de confirmación 122 de la
figura 1 así como un campo 146 para la memorización de un puntero
148 sobre otra estructura de la instrucción 118, que está
constituida, en principio, igual. La otra estructura de la
instrucción 118 tiene un puntero 150 sobre otra estructura de la
instrucción 118, etc. La última estructura de la instrucción 118 de
la cadena no tiene otros punteros, con lo que está identificado el
último miembro de la estructura de la instrucción concatenada.
Las estructuras de la instrucción 118 tienen,
además, campos 152 para la memorización de parámetros, datos útiles
u operandos para la realización de la instrucción 120
respectiva.
Si se transfiere el puntero 124 en esta forma de
realización al registro de comandos 126 (ver la figura 1) y se
confirma la transferencia desde la unidad de instrucciones 116,
entonces se procesa toda la cadena de estructuras de instrucciones
118 en adelante desde la unidad de instrucciones 116. Con un único
acceso de escritura "atómica" al registro de comandos 126, por
ejemplo, dentro de un pulso de reloj del bus, se puede iniciar el
procesamiento de una secuencia de instrucciones a través de la
unidad de instrucción 116 por una aplicación.
La figura 4 muestra un diagrama de flujo de un
procedimiento para el funcionamiento del sistema de la figura 1. El
procedimiento se divide en un proceso de software 154 y un proceso
de hardware 156. Después del comienzo del proceso de software 154 en
la etapa 200, la aplicación, a la que pertenece el proceso de
software 154, ejecuta un acceso de escritura al registro de comando
en un ciclo de bus. Esto se lleva a cabo en la etapa 202. En el
ciclo de escritura, la aplicación 104 transfiere el puntero 124 a
una estructura de instrucción 118 o bien a una concatenación de
estructuras de instrucciones 118. De esta manera se inicia el
proceso de hardware 156.
En la etapa 204 del proceso de hardware 156 se
verifica si el registro de comandos se puede describir. Si éste no
es el caso, el ciclo termina en la etapa 206. En este caso, la
aplicación debe comenzar de nuevo el proceso de software 154 con la
etapa 200.
No obstante, cuando el registro de comandos se
puede describir, entonces se registra el puntero 124 transferido por
la aplicación 104 en el registro de comandos, lo que se lleva a cabo
en la etapa 206. A continuación, se bloquea la descripción del
registro de comandos en la etapa 208, para que otras aplicaciones no
puedan sobrescribir el puntero que se encuentra en el registro.
En la etapa 210 se recibe la estructura de la
instrucción o bien la estructura de la instrucción concatenada, es
decir, que se lleva a cabo una concatenación de las instrucciones a
procesar en la lista de comandos y una confirmación de la recepción
en el campo de confirmación de la estructura de la instrucción.
A continuación se libera de nuevo la descripción
del registro de comandos en la etapa 212 y se termina la ejecución
del proceso de hardware 156 con la etapa 206.
Después del ciclo de escritura en la etapa 202
se lleva a cabo en el proceso de software 154 un ciclo de lectura en
la etapa 214 en el registro de comandos en la etapa 214. En la etapa
216 se verifica si los datos escritos anteriormente en la etapa 202
en el registro de comandos, es decir, el puntero 124, están todavía
en el registro de comandos.
Si éste es el caso, entonces esto significa que
se lleva a cabo una recepción de la estructura de la instrucción en
la etapa 210, de manera que el proceso de software termina con la
etapa 218. En caso contrario, esto puede significar que se lleva a
cabo una recepción y ya otra aplicación ha descrito el registro de
comandos con otro puntero, o que no se realiza una recepción por
parte del proceso de hardware 156. En este caso, se verifica en la
etapa 220 el campo de confirmación en la estructura de la
instrucción. Cuando allí ha sido inscrita una confirmación, entonces
se puede terminar el proceso de software 154 de nuevo con la etapa
218. Si éste no es el caso, entonces el control del desarrollo pasa
a la etapa 202.
Claims (17)
1. Procedimiento para el acceso a una unidad de
instrucción (116) para una red de datos (102) con las siguientes
etapas:
- -
- funcionamiento de varias aplicaciones (104, 106, 108, ...) en un usuario (100) de la red de datos (102), en el que las aplicaciones acceden a un bus de datos (110) del usuario (100),
- -
- escritura de al menos una estructura de la instrucción (118) en una zona de direcciones de una memoria del usuario (100) a través de una primera de las aplicaciones a través del bus de datos (110),
caracterizado por las otras etapas:
- -
- escritura de un puntero (124) sobre la zona de direcciones en un registro de entrada (126) de la unidad de instrucciones (116) a través de la primera aplicación por medio del bus de datos (110),
- -
- acceso de la unidad de instrucciones (116) a la zona de direcciones a través del bus de datos (110) y procesamiento de la estructura de instrucciones (118),
- -
- escritura del puntero (124) en un registro de salida (136, 130) asociado a la primera aplicación después del procesamiento de la estructura de instrucciones (118) a través del usuario (100).
2. Procedimiento de acuerdo con la
reivindicación 1, en el que el acceso al bus de datos (110) se
regula a través de una unidad de arbitraje (112), en el que se
permite el acceso para un número predeterminado de pulsos de reloj
del bus y el número predeterminado de pulsos de reloj del bus es
suficiente para la escritura del puntero (124) en el registro de
entrada (126).
3. Procedimiento de acuerdo con la
reivindicación 1 ó 2, en el que la estructura de la instrucción
(118) contiene un campo de confirmación, con las siguientes etapas
adicionales:
- -
- bloqueo del registro de entrada (126) después de la escritura del puntero (124) a través del usuario (100),
- -
- escritura de una confirmación en el campo de confirmación (122) a través del usuario (100),
- -
- liberación del registro de entrada (126) a través del usuario (100) después de la confirmación.
4. Procedimiento de acuerdo con una de las
reivindicaciones anteriores 1 a 3, con las siguientes etapas
adicionales:
- -
- lectura del registro de entrada (126) a través de la primera aplicación después de la escritura del puntero (124),
- -
- verificación a través de la primera aplicación de si el registro de entrada (126) contiene el puntero (124),
- -
- si éste no es el caso, verificación de si ha sido memorizada una confirmación en el campo de confirmación (122).
5. Procedimiento de acuerdo con una de las
reivindicaciones anteriores 1 a 4, en el que la estructura de la
instrucción (118) contiene instrucciones ejecutable y datos
útiles.
6. Procedimiento de acuerdo con una de las
reivindicaciones anteriores 1 a 5, en el que a través de la primera
aplicación se escriben varias estructuras de la instrucción
concatenadas entre sí en la memoria y el puntero (124) apunta a la
zona de direcciones de la primera estructura de la instrucción (118)
de la cadena.
7. Producto de programa de ordenador para una
aplicación (104, 106, 108, ...) de un usuario (100) de una red de
datos (102), en el que la aplicación puede acceder a un bus de datos
(110) para varias aplicaciones del usuario (100), y el usuario (100)
presenta un registro de entrada (126) y un registro de salida (136,
130) asociado a la aplicación, con medios de programa para la
realización de las siguientes etapas:
- -
- escritura de una estructura de la instrucción (118) en una zona de direcciones de una memoria del usuario (100) a través del bus de datos (110),
caracterizado por las otras etapas:
- -
- escritura de un puntero (124) en la zona de direcciones en el registro de entrada (126) de una unidad de instrucciones (116) a través del bus de datos (110),
- -
- lectura del registro de entrada (126), para verificar que la estructura de la instrucción (118) ha sido confirmada a través de la unidad de instrucciones (116).
8. Producto de programa de ordenador de acuerdo
con la reivindicación 7, en el que se lleva a cabo una verificación
de un campo de confirmación (122) en la estructura de la instrucción
(118), cuando durante la lectura del registro de entrada (126), el
puntero (124) no está ya en el registro de entrada (126).
9. Producto de programa de ordenador de acuerdo
con la reivindicación 7 u 8, en el que varias estructuras de la
instrucción concatenadas entre sí son escritas en la memoria del
usuario (100), y el puntero (124) apunta a la zona de direcciones de
la primera estructura de la instrucción (118) de la cadena.
10. Producto de programa de ordenador de acuerdo
con la reivindicación 7, 8 ó 9, en el que se lee el registro de
salida (136, 130) asociado a la aplicación, con el fin de verificar
si la estructura de la instrucción (118) ha sido procesada por la
unidad de instrucciones (116).
11. Aparato de usuario (100) de una red de datos
(102) con
- -
- una unidad de instrucciones (116) para el acceso a la red de datos (102),
- -
- medios para el accionamiento de varias aplicaciones (104, 106, 108, ...), en el que las aplicaciones pueden acceder a un bus de datos (110) del usuario (100) y
- -
- medios para la escritura al menos de una estructura de la instrucción (118) en una zona de direcciones de una memoria del usuario (100) a través de una primera de las aplicaciones a través del bus de datos (110),
caracterizado por
- -
- medios para la escritura de un puntero (124) sobre la zona de direcciones en un registro de entrada (126) de la unidad de instrucciones (116) a través de la primera aplicación sobre el bus de datos (110),
- -
- medios para el acceso de la unidad de instrucciones (116)a la zona de direcciones a través del bus de datos (110) y procesamiento de la estructura de la instrucción (118) y
- -
- medios para la escritura del puntero (124) en un primer registro de salida (136, 130) que está asociado a la primera aplicación después del procesamiento de la estructura de la instrucción (118) a través del usuario (100).
12. Aparato de usuario (100) de acuerdo con la
reivindicación 11 con una unidad de arbitraje (112) para la
regulación del acceso al bus de datos (110), en el que se permite un
acceso durante un número predeterminado de pulsos de reloj del bus
para la escritura del puntero (124) en el registro de entrada
(126).
13. Aparato de usuario (100) de acuerdo con la
reivindicación 11 ó 12, en el que un campo de confirmación (122)
está contenido en la estructura de la instrucción (118) y con
- -
- medios para el bloqueo del registro de entrada (126) después de la escritura del puntero (124) a través del usuario (100),
- -
- medios para la escritura de una confirmación en el campo de confirmación (122) a través del usuario (100),
- -
- medios para la liberación del registro de entrada (126) a través del usuario (100) después de la confirmación.
14. Aparato de usuario (100) de acuerdo con la
reivindicación 11, 12 ó 13 con
- -
- medios para la lectura del registro de entrada (126) a través de la primera aplicación después de la escritura del puntero (124),
- -
- medios para la verificación a través de la primera aplicación de si el registro de entrada (126) contiene el puntero (124) y, si éste no es el caso, para la verificación de si ha sido memorizada una confirmación en el campo de confirmación (122).
15. Aparato de usuario (100) de acuerdo con una
de las reivindicaciones anteriores 11 a 14, en el que la estructura
de la instrucción (118) contiene instrucciones ejecutables y datos
útiles.
16. Aparato de usuario (100) de acuerdo con una
de las reivindicaciones anteriores 11 a 15, con varias estructuras
de instrucciones concatenadas entre sí en la memoria, en el que el
puntero (124) apunta a la zona de direcciones de la primera
estructura de la instrucción (118) de la cadena.
17. Sistema de comunicación con una red de datos
(102) y varios aparatos de usuarios de acuerdo con una de las
reivindicaciones anteriores 11 a 16.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10147411 | 2001-09-26 | ||
DE10147411 | 2001-09-26 | ||
DE10237350 | 2002-08-14 | ||
DE10237350A DE10237350A1 (de) | 2001-09-26 | 2002-08-14 | Verfahren zum Zugriff auf eine Befehlseinheit für ein Datennetz |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2266579T3 true ES2266579T3 (es) | 2007-03-01 |
Family
ID=26010222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02774365T Expired - Lifetime ES2266579T3 (es) | 2001-09-26 | 2002-09-13 | Procedimiento para el acceso a una unidad de instruccion para una red de datos. |
Country Status (8)
Country | Link |
---|---|
US (1) | US20050025139A1 (es) |
EP (1) | EP1430690B1 (es) |
CN (1) | CN1636373B (es) |
AT (1) | ATE331378T1 (es) |
CA (1) | CA2461763A1 (es) |
DE (1) | DE50207328D1 (es) |
ES (1) | ES2266579T3 (es) |
WO (1) | WO2003028337A2 (es) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4806295B2 (ja) * | 2006-05-25 | 2011-11-02 | 富士通株式会社 | 通信インターフェース装置及び通信方法 |
JP4890613B2 (ja) * | 2007-06-04 | 2012-03-07 | 富士通株式会社 | パケットスイッチ装置 |
US20100145340A1 (en) * | 2008-12-05 | 2010-06-10 | Kyphon Sarl | Introducer Tool for Bone Measurement |
CN108664213B (zh) * | 2017-03-31 | 2024-01-19 | 北京忆恒创源科技股份有限公司 | 基于分布式缓存的原子写命令处理方法与固态存储设备 |
DE102017208831A1 (de) * | 2017-05-24 | 2018-11-29 | Wago Verwaltungsgesellschaft Mbh | Verarbeitung von Prozessdaten |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5133062A (en) * | 1986-03-06 | 1992-07-21 | Advanced Micro Devices, Inc. | RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory |
JP2575557B2 (ja) * | 1990-11-13 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパーコンピユータシステム |
FR2702578B1 (fr) * | 1993-03-12 | 1995-04-14 | Bull Sa | Système de communication avec un réseau. |
US6467008B1 (en) * | 1999-03-01 | 2002-10-15 | Sun Microsystems, Inc. | Method and apparatus for indicating an interrupt in a network interface |
US7159223B1 (en) * | 2000-05-12 | 2007-01-02 | Zw Company, Llc | Methods and systems for applications to interact with hardware |
KR100716950B1 (ko) * | 2000-08-11 | 2007-05-10 | 삼성전자주식회사 | 버스 시스템 |
-
2002
- 2002-09-13 EP EP02774365A patent/EP1430690B1/de not_active Expired - Lifetime
- 2002-09-13 CN CN028187954A patent/CN1636373B/zh not_active Expired - Fee Related
- 2002-09-13 CA CA002461763A patent/CA2461763A1/en not_active Abandoned
- 2002-09-13 WO PCT/DE2002/003444 patent/WO2003028337A2/de active IP Right Grant
- 2002-09-13 ES ES02774365T patent/ES2266579T3/es not_active Expired - Lifetime
- 2002-09-13 AT AT02774365T patent/ATE331378T1/de not_active IP Right Cessation
- 2002-09-13 DE DE50207328T patent/DE50207328D1/de not_active Expired - Lifetime
-
2004
- 2004-03-26 US US10/809,446 patent/US20050025139A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN1636373A (zh) | 2005-07-06 |
EP1430690B1 (de) | 2006-06-21 |
ATE331378T1 (de) | 2006-07-15 |
WO2003028337A2 (de) | 2003-04-03 |
DE50207328D1 (de) | 2006-08-03 |
CN1636373B (zh) | 2010-06-16 |
WO2003028337A3 (de) | 2003-08-07 |
EP1430690A2 (de) | 2004-06-23 |
US20050025139A1 (en) | 2005-02-03 |
CA2461763A1 (en) | 2003-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2243765T3 (es) | Procedimiento para el arbitraje de un acceso a un bus de datos. | |
US5511166A (en) | Method and apparatus for receive frame sorting in a media access control/host system interface unit | |
US5434976A (en) | Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers | |
US8069333B2 (en) | Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
US10031786B2 (en) | Lockless multithreaded completion queue access | |
Michel | The Design and Evaluation of an Off-Host Communications Protocol Architecture | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
KR100842021B1 (ko) | Dma체인 | |
ES2266579T3 (es) | Procedimiento para el acceso a una unidad de instruccion para una red de datos. | |
US20090055837A1 (en) | Real-Time Distributed Processor Environment | |
CN108845829A (zh) | 一种系统寄存器访问指令的执行方法 | |
ES2258160T3 (es) | Procedimiento para la transmision de un telegrama de datos entre un dominio en tiempo real y un dominio no en tiempo real y unidad de acoplamiento. | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
US9660936B2 (en) | Method and apparatus for supporting reprogramming or reconfiguring | |
US6895481B1 (en) | System and method for decrementing a reference count in a multicast environment | |
US5206935A (en) | Apparatus and method for fast i/o data transfer in an intelligent cell | |
US7350015B2 (en) | Data transmission device | |
CN110178344B (zh) | 控制装置以及通信装置 | |
EP1115065B1 (en) | Effective channel priority processing for transfer controller with hub and ports | |
ES2242880T3 (es) | Procedimiento para el procesamiento de conjuntos de datos consistentes. | |
JPH064401A (ja) | メモリアクセス回路 | |
ES2240808T3 (es) | Procedimiento para la creacion de una tabla adinamica de direcciones para un nodo de acoplamiento en una red de datos y procedimiento para la transmision de un telegrama de datos. | |
US9632793B2 (en) | Method and device for aborting transactions, related system and computer program product | |
Mitchell | Tutorial: Introducing the XGATE module to consumer and industrial application developers |