WO2002052414A1 - Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites - Google Patents

Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites Download PDF

Info

Publication number
WO2002052414A1
WO2002052414A1 PCT/FR2001/004176 FR0104176W WO02052414A1 WO 2002052414 A1 WO2002052414 A1 WO 2002052414A1 FR 0104176 W FR0104176 W FR 0104176W WO 02052414 A1 WO02052414 A1 WO 02052414A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
processing unit
header
message
communication bus
Prior art date
Application number
PCT/FR2001/004176
Other languages
English (en)
Inventor
Erwan Lavarec
Laurent Tremel
Original Assignee
Wany Sa
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 Wany Sa filed Critical Wany Sa
Priority to CA002432384A priority Critical patent/CA2432384A1/fr
Priority to US10/451,032 priority patent/US6859847B2/en
Priority to JP2002553647A priority patent/JP2004521412A/ja
Priority to IL15648201A priority patent/IL156482A0/xx
Priority to KR10-2003-7008448A priority patent/KR20030072573A/ko
Priority to EP01995776A priority patent/EP1344131A1/fr
Publication of WO2002052414A1 publication Critical patent/WO2002052414A1/fr
Priority to HK04105915A priority patent/HK1063228A1/xx

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Definitions

  • the present invention relates to the field of parallel electronic architectures (multiprocessors and multitasking). It relates to an architecture comprising a plurality of processing units connected to a communication bus and dialoguing with one another according to a new protocol.
  • processing unit designates any machine which is designed to automatically execute one or more distinct tasks. It can be a wired type processing unit. Preferably, it is a programmable processing unit comprising a processor (microprocessor, microcontroller, etc.) which is programmed to automatically execute one or more distinct tasks.
  • the processing unit can be a programmable machine, such as for example a microcomputer, a peripheral of a machine, a “daughter” card mounted on a backplane motherboard, etc.
  • each processing unit is identified on the bus by its own physical address.
  • the communication protocols known to date allow a first processing unit (hereinafter called the transmitting unit) to dialogue with a second processing unit (hereinafter called the target unit).
  • the transmitting unit sends a message to the target unit, with a view for example to triggering the execution by the target unit of a predefined task
  • the transmitting unit transmits on the bus the address of the target unit.
  • Each processing unit is able to decode an address sent on the bus, and when a target unit recognizes its address, it loads the associated message into local memory and executes the task for which it is programmed.
  • the target and sending unit generally have similar address and data buses of fixed size.
  • the present invention aims to propose a new parallel architecture which overcomes this drawback and which, moreover, is more easily upgradeable and modular, by adding a new processing unit, replacing or deleting a processing unit.
  • the parallel architecture of the invention which is known in that it comprises a plurality of processing units connected to a communication bus, each processing unit being designed to automatically execute one or more predefined tasks .
  • each processing unit is configured so that each of its tasks is associated with a header; each processing unit is designed to communicate with the other processing units according to the following protocol: sending on the bus of a message comprising at least one header characterizing a functionality, and possibly a frame consisting of one or more words, and in that each processing unit is designed to decode each header passing over the bus, and so, depending on the value of this header, either ignore the message sent on the bus, or execute the task associated with the header of this message.
  • the operation of the architecture of the invention is based on a new principle which is the addressing of a functionality on the communication bus, rather than the addressing of a target processing unit. given.
  • the header which characterizes a functionality thus makes it possible to wake up all the connected processing units which recognize this functionality, so that these processing units execute in parallel the task associated with this functionality.
  • FIG. 1 is a general block diagram of an exemplary architecture according to the invention, of the multi-master / multi-slave type, with several processing units connected to a 16-bit parallel bus (D0-D15), designated more usually bus,
  • D0-D15 16-bit parallel bus
  • - Figure 2 shows a detailed electrical diagram for the realization of the FIFO memory and the validation memory of a processing unit
  • - Figure 3 shows a timing diagram of the main signals used during a write operation a header on the bus by a master processing unit
  • FIG. 4 shows a timing diagram of the main signals implemented during a write operation on the bus ⁇ , by the master processing unit, of a word of a frame.
  • FIG. 5 represents a timing diagram of the main signals implemented during a reading operation, by a slave processing unit, of a valid header present on the bus ⁇ ,
  • FIG. 6 represents a timing diagram of the main signals implemented by a slave processing unit, after reception by this slave processing unit of a valid header, and writing on the bus oc, of a frame of words by the master processing unit,
  • FIG. 7 represents a timing diagram of the main signals implemented by a slave processing unit, after reception of an invalid header and writing on the bus ⁇ of a word of a frame by the processing unit.
  • master processing With reference to the general block diagram of FIG. 1, an architecture according to the invention comprises several processing units 1a, 1 £>, ..., 1n, which are connected to a parallel data bus, hereinafter called bus ⁇ -
  • the architecture of FIG. 1 is advantageously of the multi-master / multi-slave type.
  • one of the processing units 1a, 1b, ..., or 1n wants to send a message on the bus ⁇ , it takes the direction of the bus and becomes the master unit, the other units becoming slaves.
  • This operating mode involves the implementation of write access arbitration means to the bus, which means receive input signals from each processing unit for write write access request to the bus, and deliver output for each unit for authorizing write access to the bus signals.
  • write access arbitration means being also known to those skilled in the art, they are not shown in FIG. 1 and will not be described more fully in the present text.
  • the invention is moreover not limited to an architecture of the multi-master / multi-slave type, but can for example also be applied to the production of an architecture with a single master processing unit capable of writing to the bus, the other processing units being always slaves, and being able to access the bus only in read mode.
  • the bus is a data bus which is generally composed of (q) parallel electrical conductors, q being an integer greater than or equal to 1.
  • the bus is a bus consisting of sixteen parallel electrical conductors (16-bit bus (D0-D15)).
  • the processing unit 1a is a 16-bit machine (data bus D0- D15)
  • the processing unit 1 _ is a 4-bit machine (data bus D0- D3)
  • the processing unit 1 ⁇ is an 8-bit machine (data bus D0-D7).
  • A, B, C, D, ... a processing unit capable of communicating only on one (AG) will be of color A; a processing unit capable of communicating a maximum of two (AG) will be color B; a processing unit capable of communicating a maximum of four (AG) will be color C, a processing unit capable of communicating a maximum of eight (AG) will be color D, etc.
  • a word corresponds to the value of the bus ⁇ at a given instant.
  • the maximum size of a word is limited by the number of parallel bus conductors - Message
  • a message corresponds to the succession of words which are written in series on the bus by a processing unit.
  • a message is made up of a first word which is a header (Function Key), followed by a frame which is, depending on the serial format used, made up of one or more successive words.
  • Serial format (FR) is, depending on the serial format used, made up of one or more successive words.
  • serial format allows you to define all the words that make up a message traveling on the bus.
  • the serial formats usable on the bus can be very different, and necessarily have the common characteristic that the first word of a message is a header.
  • XXXX indicates that it is possible to take any possible value.
  • the 0 indicates that all the conductors of this AG are set to zero.
  • FP-A we use the AG first conductors of the bus for all the other words which will compose the frame of the message thereafter. We therefore address all the processing units connected to the bus and having the desired functionality, since by definition even the smallest processing unit can communicate on an AG.
  • FP-B we use the 2AG first conductors of the bus for all the other words which will compose the frame of the message thereafter.
  • FP-C we use the 4AG first conductors of the bus for all the other words that will compose the message frame thereafter.
  • FP-D we use the first 8AG conductors of the bus for all the other words that will compose the message frame thereafter.
  • the FP-AB format is intended for both processing units that can read on 1 AG and those that can read on 2 AG. Those who read on 1 GA have sufficient information to fulfill the functionality but do not necessarily have all the details. Those who read on 2 GA can for example have an error correcting code on the 2 em ⁇ AG to check the information which passed on the 1 st AG.
  • the FP-AD format is a format which can for example be advantageous for the transmission of small images on the bus -
  • the first AG can be used to code the average level of gray (or color) of a block of 9 pixels. Processing units having access only to this information still benefit from the data: an image three times smaller.
  • the header is the first word of any message passing on the bus, and it mainly defines what functionality is addressed.
  • this header also makes it possible to define:
  • Functionality Any function (or task) which can be executed automatically by a processing unit connected to the bus is called “functionality”.
  • Each processing unit is configured so as to include its own functionality table, which associates each task executable by the processing unit, with a header value.
  • this table of functionalities also defines for each functionality, the serial format (FS) associated with this functionality, as well as the length of a message associated with this functionality.
  • FS serial format
  • the number of possible functionalities depends solely on the number of AGs that it can reach on the bus and on the value of the AG.
  • a processing unit 1a, 1b, ..., or 1n When a processing unit 1a, 1b, ..., or 1n has taken the direction of the bus ⁇ , it begins by writing a header on the bus (FunctionKey), then writes then on the bus to a frame (a or more words in depending on the serial format (FS) used).
  • FunctionKey a header on the bus
  • FS serial format
  • the header is read by each slave processing unit.
  • the header mainly allows each slave processing unit to determine whether the frame sent on the bus a is intended for it, and if so, what is the task that it must perform.
  • the slave processing unit When the header sent on the bus is not part of the functional table of a slave processing unit, the latter ignores the frame sent on the bus subsequent to the header. Otherwise, the slave processing unit also reads the frame sent on the bus after the header, and automatically executes the task which is associated with this header in its functionality table.
  • the novelty of the communication protocol of the invention stems from the fact that when a message is written on the bus by a master processing unit, an addressing of a given localized slave processing unit is not carried out on the bus by an address (physical or logical), but the functionalities (tasks) of the slave processing units are addressed, the message being processed in parallel by all the processing units having a functionality associated with the header issued on the bus.
  • a processing unit 1a, ..., 1n essentially comprises:
  • a validation memory 3 a memory 4 of the FIFO type
  • a logic unit 5 allowing the sequencing of the operation of the validation memory 3 and of the FIFO memory 4, from clock signals CLKA and CLKD,
  • a data bus 6, hereinafter called the interface bus - an internal bus 7, on which the microprocessor 2 can read or write data
  • - three-state registers 6a which under the control of microprocessor 2 (signal 8) allow the writing present on the interface bus 6 (D0-D15) of the data present on the internal bus 7.
  • This interface bus is a data bus (n) bits [(DO - Dn-1)] generally consisting of (n) parallel electrical conductors, [n integer less than or equal to q (size of the bus ⁇ )], connected in parallel to the first n conductors of the bus a- Microprocessor (2) / internal bus (7)
  • the microprocessor is usually associated with a random access memory (RAM), which for the sake of simplification has not shown in this figure 1, and to which the microprocessor 2 can usually access read and write.
  • This random access memory contains the table of functionalities of the processing unit, as well as the operating program of the microprocessor, which will be detailed later.
  • the internal bus 7 is an ISA bus which usually comprises:
  • the validation memory 3 can either be a random access memory or a read only memory. Preferably, it is an EEPROM type memory.
  • This validation memory operates in correspondence table so as to list the valid headers, the address port of this validation memory 3 being connected to the bus ⁇ -
  • the output port of this validation memory 3 is connected (signals 9) to microprocessor 2, on a port of this microprocessor dedicated to processing interrupts.
  • the read access to the validation memory 3 is sequenced by the signal 5a, delivered by the logic unit 5, from the clock signals CLKA and CLKD.
  • the validation memory 3 has the function of validating or not (signals 9), for the microprocessor 2, a header present on the bus ⁇ -
  • a header present on the bus ⁇ -
  • the microprocessor 2 is informed that it must load the frame which is transmitted on the bus after the header which has been validated .
  • the microprocessor 2 ignores the frame which is sent on the bus ⁇ after this header.
  • the validation memory 3 is produced by means of an integrated circuit CI1 such as for example the integrated circuit marketed under the reference AM29F010.
  • the memory address port corresponds to the inputs A0 to A15, which are connected respectively in parallel to the electrical conductors of the bus (D0- D15).
  • the signal “Write_Ad” corresponds to signal 5a in FIG. 1, and the signals “Address_rejected”, “IRQ # 5”, “IRQ # 4” “IRQ # 3” “IRQ # 2” “IRQ # P” on the memory output port correspond to the aforementioned signals 9 of the diagram in FIG. 1.
  • the validation of the memory is distributed over several levels, but the useful validation is coded on the signal IRQ #P.
  • IRQ #P When this IRQ #P signal is for example in the low state (respectively in the high state), the header which is present on the bus is validated (respectively not validated) for the microprocessor 2.
  • the FIFO memory 4 is connected at the input to the bus ⁇ via the interface bus 6, and at the output to the data bus of the internal bus 7.
  • the microprocessor 2 can control the loading, in the FIFO memory 4, of a word present on the bus ⁇ , by means of the write signal 10, as well as the output of a word stored in the FIFO memory 4, and its writing on the data bus of the internal bus 7, by means of the read signal 11.
  • the sequencing of the loading of a word in FIFO memory 4, or of a reading of a word in FIFO memory 4 is synchronized by a timing signal 5b, delivered by logic unit 5 from CLKA and CLKD clock signals.
  • the FIFO memory 4 also delivers at the output for the microprocessor 2 status signals 12 making it possible to indicate to the microprocessor 2 its filling level.
  • the FIFO memory 4 is produced from two 8-bit integrated circuits CI2 and CI3, and for example from integrated circuits marketed under the reference IDT7200, each integrated circuit CI2 and CI3 being dedicated respectively to the storage of the most significant bits (D8 to D15) and of the least significant (D0 to D7) of the bus ⁇ .
  • the signals referenced in FIG. 2 "EmptyJlag_H”, “FullJlag_H”, “HalfJull_H”, “EmptyJlag_B”, “FullJlag_B”, “HalfJull_B”, correspond to the aforementioned status signals 12 of the block diagram of FIG.
  • the signal referenced “Write_FIFO_OK” corresponds to the above-mentioned write signal 10 in FIG. 1.
  • the signals “Read_ FIFO _ B” and “Read _FIFO _ H” correspond to the aforementioned read signal 11 in FIG 1.
  • the signal “Reset_FIFO »I s a reset signal of the FIFO memory which is delivered by the microprocessor 2, and which is used to initialize the memory 4.
  • the data bus of the internal bus 7 of a processing unit is connected in parallel to the interface bus 6, via one or more three-state registers 6a.
  • the processing unit 1a implementing a 16-bit internal bus (DJSA0- DJSA15)
  • two eight-bit registers dedicated to writing in parallel on the interface bus 6 can be used, and thereby even on the bus ⁇ , respectively the eight least significant bits (D- ISA0-DJSA7) and the eight most significant bits (DJSA8-DJSA15) of the data bus of the internal bus 7.
  • Transfer to the bus (DO- D15 ) of data present on the data bus (DJSAO - DJSA15) of the internal bus 7 is controlled by the microprocessor by means of the write signal 8 (FIG. 1).
  • each microprocessor 2 of a processing unit outputs two clock signals 2a and 2b, which are connected, via doors 13 with open collector, to a clock bus (CLKA, CLKD) common to all processing units.
  • CLKA, CLKD clock bus
  • the clock signals CLKA and CLKD correspond respectively to the clock signals 2a and 2b of the microprocessor 2 of this master processing unit; the clock signals 2a and 2b of the other slave processing units are floating and isolated from the clock bus CLKA and CLKD.
  • the exchange of data on the bus is thus clocked by the master processing unit, the slave processing units ensuring the loading of the messages written on the bus ⁇ (validation memory 3 / signal 5a; FIFO memory 4 / signal 5b) whatever their own clock speed (natural operating frequency of their microprocessor 2). Processing units having different own clock speeds can therefore advantageously interact with one another.
  • the microprocessor 2 of a processing unit is programmed to execute the following main program in a loop: a) reading in FIFO memory 4 of a message (header and frame), b) decoding of the functionality associated with this header in the functionality table; c) automatic execution of the routine (task) corresponding to this functionality.
  • step c) it may happen that the microprocessor 2 is required to write on the bus ⁇ a message, in order to activate a functionality managed by one or more other processing units. connected to the bus ⁇ -
  • the processing unit writes on the bus the header coding this functionality, and the frame of the words of the message, then releases the bus ⁇ -
  • the timing diagrams of the main signals used during such a write operation are shown in Figures 3 and 4 respectively.
  • the signals “Datajsa” correspond to the data bus of the internal bus 7, that is to say for example to the bits DJSA0 to DJSA15 (FIG. 2) of the internal bus 7 of the processing unit 1a.
  • the signals Com_CLKA and Com_CLKB correspond to signals 2a and 2b above.
  • the writing of a header on the data bus of the internal bus 7 is done at the base address +2 offset; then the writing of the data on the data bus of the internal bus 7 is done at the base address +3 offset (cf. signals AOJSA and A1 JSA).
  • Loading a message present on bus n ( Figures 5 and 6)
  • the execution of the aforementioned main program is interrupted by the validation data which comes from the validation memory (the "IRQ #P" signal changes state ).
  • the microprocessor then executes a secondary routine for loading into FIFO memory 4 the header and the word frame sent on the bus following this header, the corresponding processing unit operating as a slave.
  • FIG. 6 represents the timing diagrams of the main signals implemented during a reading operation on the bus ⁇ , by a slave processing unit, of a valid header
  • FIG. 6 represents the timing diagrams of the main signals implemented during a reading operation on the bus ⁇ , by a slave processing unit, of a frame of words (FIG. 6 / "Data n", "Data n + 1") written on the bus by a master processing unit, in relation to a valid header previously written on the bus ⁇ -
  • the IRQ # P interrupt momentarily changes state.
  • the capture of this valid header in the FIFO 4 memory (signal 10 / Writing_FIFO_OK) is done by the simultaneous action of the signals CLKA and CLKD.
  • the capture of data in the FIFO memory 4 is clocked only by the signal CLKD.
  • Reception of an invalid header / figure 7 With reference to figure 7, when the header present on the bus ⁇ is not valid for a slave processing unit, the interrupt signal IRQ # P does not change state, and the aforementioned main program of microprocessor 2 is not interrupted.
  • the microprocessor 2 does not command the loading of the header present on the bus ⁇ in the FIFO memory 4 (signal Writing_FIFO_OK does not change state), nor subsequently the loading in FIFO memory 4 of the frame of words passing over the bus after this header. The message passing over the bus is thus ignored by the slave processing unit.
  • the multi-processor architecture which has been described with reference to FIGS. 1 to 7 has the main advantages below:
  • This parallel architecture is “universal”: it makes it possible to make dialogue between them different processing units, and in particular processing units having data buses (bus interface 6) of different sizes; the only limitation on the size of the processing units that can be connected is the number of bits in parallel of the bus', this architecture does not work with a single data format, but works with any data format, greater than or equal to the size of the atom of granularity (AG).
  • the processing units can communicate with one another regardless of their processors, and above all regardless of the clock rate of their processors.
  • a robot comprising a backplane mother board on which five daughter cards are mounted (a daughter card corresponding to a processing unit): a propulsion card for controlling the movement of the robot, a sound card, a camera card, and a behavioral decision card (calculator) to manage the robot's behavior.
  • a propulsion card for controlling the movement of the robot
  • a sound card for controlling the movement of the robot
  • a camera card for capturing images
  • a behavioral decision card (calculator)
  • At least two processing units are configured with the same header, that is to say, include in their table functionalities with the same header value (see below).
  • the “emergency stop” / propulsion card, sound card and behavioral decision card configured with the same header value '1').
  • at least one processing unit is designed to execute several tasks, and is configured so that each task is associated with a different header.
  • the propulsion card includes in its functional table the header values '1', '2', '3', '6' and '10' associated respectively with the following functionalities: "emergency stop” , "Request to move forward”, “request to move back”, “recognition of a human”, “request to identify the cards present”.
  • the value header 'V coding the "emergency stop” functionality is always valid for the propulsion card, the sound card, and the behavioral decision card.
  • the propulsion card includes in its functionality table this header value associated with the “emergency stop” functionality, and the associated routine (task) is stopping the robot's movement motor.
  • the sound card has in its functionality table this header value '1' associated with the "emergency stop” functionality, and the associated routine is the emission of an alert sound by the card.
  • the behavioral decision card includes in its functionality table this header value associated with the “emergency stop” functionality, and the associated routine is to memorize and date the event while verifying that the stop emergency has taken place by checking that the camera observes a still image.
  • Activation of the "emergency stop” functionality by writing the header value '1' on the bus can be carried out on the initiative of either the propulsion card (in the event of engine overheating detected by this card ), either from the camera card (if an obstacle is detected by this card), or from the behavioral decision card.
  • This emergency stop function is never triggered on the initiative of the sound card.
  • a processing unit is designed to, after recognition of a valid header, load into FIFO memory 4 the message transiting on the bus ⁇ , and this prior to the execution of the task associated with the message header.
  • the processing unit will not necessarily include a FIFO memory 4.
  • the validation memory 3 could be replaced by any other means of decoding the headers passing over the bus, and by example by a decoding table performed in combinatorial logic.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

L'architecture électronique parallèle comporte une pluralité d'unités de traitement (1a, 1b,...1n) connectées à un bus de communication, chaque unité de traitement étant conçue pour exécuter automatiquement une ou plusieurs tâches prédéfinies. Chaque unité de traitement est configurée de telle sorte que chacune de ses tâches est associée à un en-tête, et conçue pour communiquer avec les autres unités de traitement selon le protocole suivant : envoi sur le bus d'un message comportant au moins un en-tête caractérisant une fonctionnalité, et éventuellement une trame constituée d'un ou plusieurs mots; chaque unité de traitement est en outre conçue pour décoder chaque en-tête transitant sur le bus, et pour, en fonction de la valeur de cet en-tête, soit ignorer le message émis sur le bus, soit exécuter la tâche associée à l'en-tête de ce message.

Description

ARCHITECTURE ELECTRONIQUE PARALLELE COMPORTANT UNE PLURALITE D'UNITES DE TRAITEMENT CONNECTEES A UN BUS DE COMMUNICATION, ET ADRESSABLES PAR LEURS FONCTIONNALITES
La présente invention concerne le domaine des architectures électroniques parallèles (multiprocesseurs et multitâches). Elle a pour objet une architecture comportant une pluralité d'unités de traitement connectées à un bus de communication et dialoguant entre elles selon un nouveau protocole.
Dans le présent texte, on désigne par « unité de traitement », toute machine qui est conçue pour exécuter automatiquement une ou plusieurs tâches distinctes. Il peut s'agir d'une unité de traitement de type câblée. De préférence, il s'agit d'une unité de traitement programmable comportant un processeur ( microprocesseur, microcontrôleur,...) qui est programmé pour exécuter automatiquement une ou plusieurs tâches distinctes. De manière non exhaustive, l'unité de traitement peut être une machine programmable, tel que par exemple un micro-ordinateur, un périphérique d'une machine, une carte « fille » montée sur une carte mère fond de panier, etc.
A ce jour, dans les architectures électroniques comportant plusieurs unités de traitement reliées par un bus de communication, chaque unité de traitement est repérée sur le bus par une adresse physique qui lui est propre. Les protocoles de communication connus à ce jour permettent de faire dialoguer une première unité de traitement (dite par la suite unité émettrice) avec une seconde unité de traitement (dite par la suite unité cible). Ainsi, lorsque l'unité émettrice envoie un message à l'unité cible, en vue par exemple de déclencher l'exécution par l'unité cible d'une tâche prédéfinie, l'unité émettrice émet sur le bus l'adresse de l'unité cible. Chaque unité de traitement est apte à décoder une adresse émise sur le bus, et lorsqu'une unité cible reconnaît son adresse, elle charge en mémoire locale le message associé et exécute la tâche pour laquelle elle est programmée. L'unité cible et émettrice ont généralement des bus d'adresses et de données similaires et de taille fixée.
Avec ce type d'architecture et de protocole de communication connus, il est difficile de réaliser un système muti-tâches dans lequel plusieurs unités de traitement réalisent en parallèle une même tâche (ou fonctionnalité), car ce parallélisme des unités de traitement nécessite une gestion compliquée de l'adressage des unités de traitement.
La présente invention vise a proposer une nouvelle architecture parallèle qui permet de pallier cet inconvénient et qui de surcroît est plus facilement évolutive et modulable, par ajout d'une nouvelle unité de traitement, remplacement ou suppression d'une unité de traitement.
Ce but est atteint par l'architecture parallèle de l'invention qui est connue en ce qu'elle comporte une pluralité d'unités de traitement connectées à un bus de communication, chaque unité de traitement étant conçue pour exécuter automatiquement une ou plusieurs tâches prédéfinies.
1. De manière caractéristique et nouvelle selon l'invention, chaque unité de traitement est configurée de telle sorte que chacune de ses tâches est associée à un en-tête ; chaque unité de traitement est conçue pour communiquer avec les autres unités de traitement selon le protocole suivant : envoi sur le bus d'un message comportant au moins un en-tête caractérisant une fonctionnalité, et éventuellement une trame constituée d'un ou plusieurs mots, et en ce que chaque unité de traitement est conçue pour décoder chaque en-tête transitant sur le bus, et pour, en fonction de la valeur de cet en-tête, soit ignorer le message émis sur le bus, soit exécuter la tâche associée à l'en-tête de ce message.
Ainsi, le fonctionnement de l'architecture de l'invention repose sur un principe nouveau qui est l'adressage d'une fonctionnalité sur le bus de communication, plutôt qu'un adressage d'une unité de traitement cible donnée. Dans l'invention, l'en-tête qui caractérise une fonctionnalité permet ainsi de réveiller toutes les unités de traitement connectées qui reconnaissent cette fonctionnalité, afin que ces unités de traitement exécutent parallèlement la tâche associée à cette fonctionnalité. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description ci-après d'un exemple préféré de réalisation de l'invention, laquelle description est donnée à titre d'exemple non limitatif, et en référence au dessin annexé sur lequel :
- la figure 1 est un synoptique général d'un exemple d'architecture selon l'invention, de type multi-maîtres / multi-esclaves, avec plusieurs unités de traitement connectées à un bus parallèle 16 bits (D0-D15), désigné plus généralement bus ,
- la figure 2 représente un schéma électrique détaillé pour la réalisation de la mémoire FIFO et de la mémoire de validation d'une unité de traitement, - la figure 3 représente un chronogramme des principaux signaux mis en œuvre lors d'une opération d'écriture d'un en-tête sur le bus par une unité de traitement maître,
- la figure 4 représente un chronogramme des principaux signaux mis en œuvre lors d'une opération d'écriture sur le bus α, par l'unité de traitement maître, d'un mot d'une trame.
- la figure 5 représente un chronogramme des principaux signaux mis en œuvre lors d'une opération de lecture, par une unité de traitement esclave, d'un en-tête valide présent sur le bus α,
- la figure 6 représente un chronogramme des principaux signaux mis en œuvre par une unité de traitement esclave, après réception par cet unité de traitement esclave d'un en-tête valide, et écriture sur le bus oc, d'une trame de mots par l'unité de traitement maître,
- et la figure 7 représente un chronogramme des principaux signaux mis en œuvre par une unité de traitement esclave, après réception d'un en- tête non valide et écriture sur le bus α d'un mot d'une trame par l'unité de traitement maître. En référence au synoptique général de la figure 1 , une architecture conforme à l'invention comprend plusieurs unités de traitement 1a, 1£>, ..., 1n, qui sont connectées à un bus de données parallèle dit par la suite bus α- L'architecture de la figure 1 est avantageusement de type multi- maîtres/multi-esclaves. Lorsque l'une des unités de traitement 1a, 1b, ..., ou 1n veut émettre un message sur le bus α, elle prend la direction du bus et devient unité maître, les autre unités devenant esclaves. Une fois son message émis sur le bus, l'unité de traitement maître libère le bus, une autre unité de traitement pouvant à son tour prendre la direction du bus α, pour émettre un message. Ce mode de fonctionnement implique la mise en œuvre de moyens d'arbitrage de l'accès en écriture au bus, lesquels moyens reçoivent en entrée en provenance de chaque unité de traitement des signaux de demande d'accès en écriture au bus, et délivrent en sortie pour chaque unité de traitement des signaux d'autorisation d'accès au bus en écriture. Ces moyens d'arbitrage étant par ailleurs connus de l'homme du métier, ils ne sont pas représentés sur la figure 1 et ne seront pas plus amplement décrits dans le présent texte.
L'invention n'est par ailleurs pas limitée à une architecture de type multi-maîtres/multi-esclaves, mais peut par exemple également s'appliquer à la réalisation d'une architecture avec une seule unité de traitement maître apte à écrire sur le bus, les autres unités de traitement étant toujours esclaves, et pouvant accéder au bus uniquement en lecture. Définitions des principaux termes :
BUS g
Le bus est un bus de données qui est d'une manière générale composé de (q) conducteurs électriques parallèles, q étant un entier supérieur ou égal à 1. Dans l'exemple particulier illustré sur les figures 1 et 2, le bus est un bus constitué de seize conducteurs électriques parallèles (bus 16 bits(D0-D15)). Atome de granularité ( AG)
L'atome de granularité » désigné ci après (AG) correspond à la plus petite taille d'unité de traitement pouvant dialoguer sur le bus ( voir ci- après la définition de « couleur »). Si on considère que le bus est d'une manière générale composé de q conducteurs électriques parallèles, (q étant un entier supérieur ou égal à un), alors : q= AG. 2P. AG est nécessairement une puissance de deux. Couleur d'une unité de traitement La « couleur » d'une unité de traitement est définie par la taille (nombre de bits) de son bus de données. Dans l'exemple particulier de la figure 1 , l'unité de traitement 1a est une machine 16 bits ( bus de données D0- D15), l'unité de traitement 1 _ est une machine 4 bits (bus de données D0- D3), ..., l'unité de traitement 1α est une machine 8 bits (bus de données D0-D7). Par la suite, les « couleurs » d'unité de traitement seront notées
A,B,C,D,... selon la convention suivante : une unité de traitement capable de ne communiquer que sur un (AG) sera de couleur A ; une unité de traitement capable de communiquer au maximum sur deux (AG) sera de couleur B ; une unité de traitement capable communiquer au maximum quatre (AG) sera de couleur C ;une unité de traitement capable communiquer au maximum sur huit (AG) sera de couleur D, etc.. Mot
Un mot correspond à la valeur du bus α à un instant donné. La taille maximale d'un mot est limitée par le nombre de conducteurs parallèles du bus - Message
Un message correspond à la succession de mots qui sont écrits en série sur le bus par une unité de traitement. Un message est composé d'un premier mot qui est un en-tête (Function Key), suivi d'une trame qui est, selon le format série utilisé, composée d'un ou plusieurs mots successifs. Format série (FR)
Le format série permet de définir tous les mots qui composent un message transitant sur le bus. Les formats séries utilisables sur le bus peuvent être très différents, et ont nécessairement pour caractéristique commune que le premier mot d'un message est un en-tête.
Un exemple de format série standard, et non limitatif de l'invention, est donné ci-après :
Figure imgf000008_0001
Suivant la fonctionnalité, codée par l'en-tête, d'autres formats série peuvent être dérivés de ce format standard ; le format série le plus simple avec contrôle de la transmission étant : en-tête / sentinelle. Dans une variante de réalisation encore plus simple (sans contrôle de l'intégrité des données transmises), il est envisageable qu'un message puisse être constitué uniquement d'un entête. Format parallèle (FP)
On associe à chaque couleur (A,B,C,D,...) d'unité de traitement un formatage particulier des messages qui transitent sur le bus α- Un exemple de codage du format parallèle (FP) est donné dans le tableau ci-après :
Figure imgf000009_0001
XXXX désigne qu'il est possible de prendre n'importe quelle valeur possible.Le 0 désigne que tous les conducteurs de cet AG sont mis à zéro.
Forme de chacun des FP :
Le FP-A : on utilise les AG premiers conducteurs du bus pour tous les autres mots qui composeront la trame du message par la suite. On s'adresse donc à toutes les unités de traitement connectées au bus et ayant la fonctionnalité recherchée, puisque par définition même la plus petite unité de traitement peut communiquer sur un AG.
Le FP-B : on utilise les 2AG premiers conducteurs du bus pour tous les autres mots qui composeront la trame du message par la suite. Par définition, on exclut les unités de traitement qui ne sont pas capables d'y accéder, puisque de toute façon elles n'auront pu décoder le XXXX qui était sur le 2emeAG. On s'adresse forcément aux seules machines capables de communiquer sur 2 AG. Le FP-C : on utilise les 4AG premiers conducteurs du bus pour tous les autres mots qui composeront la trame du message par la suite.
Le FP-D : on utilise les 8AG premiers conducteurs du bus pour tous les autres mots qui composeront la trame du message par la suite.
Les formats mixtes ( FP-AB, FP-AC, FP-AD, FP-ACD,...) permettent de fournir une donnée plus raffinée (plus de détails) si les processeurs auxquels on s'adresse ont les moyens de lire la donnée sur plusieurs AG.
Exemple d'utilisation des formats mixtes FP-AB et FP-AD :
Le format FP-AB s'adresse à la fois aux unités de traitement pouvant lire sur 1 AG et à celles pouvant lire sur 2 AG. Celles qui lisent sur 1 AG ont une information suffisante pour remplir la fonctionnalité mais n'ont pas forcément tous les détails. Celles qui lisent sur 2 AG peuvent par exemple avoir un code correcteur d'erreur sur le 2emθ AG pour vérifier l'information qui a transité sur le 1er AG. Le format FP-AD est un format qui peut par exemple être intéressant pour la transmission de petites images sur le bus - Le premier AG peut servir à coder le niveau moyen de gris (ou de couleur) d'un pavé de 9 pixels. Les unités de traitement ayant accès uniquement à cette information bénéficie quand même de la donnée : une image trois fois plus petite. Pour les unités de traitement ayant également accès au format FP-D, elles pourront bénéficier de la lecture de 8 AG en tout, les autres AG lui permettant par exemple de rajouter la différence par rapport à la moyenne pour connaître la valeur des pixels du pavé (principe des ondelettes de Haar). En-tête (FunctionKey)
Selon une caractéristique essentielle de l'invention, l'en-tête est le premier mot de tout message transitant sur le bus , et il définit principalement quelle est la fonctionnalité qui est adressée. De préférence, mais non nécessairement, cet en-tête permet également de définir :
- le format parallèle du message, - le format série du message,
- la « couleur » de l'unité de traitement qui a généré le message ( unité de traitement maître)
- une information qualitative sur la longueur du message. Fonctionnalité On appelle « fonctionnalité » toute fonction (ou tâche) qui peut être exécutée automatiquement par une unité de traitement connectée au bus oc-
Table des fonctionnalités Chaque unité de traitement est configurée en sorte de comporter une table des fonctionnalités, qui lui est propre, et qui associe chaque tâche exécutable par l'unité de traitement, à une valeur d'en-tête. De préférence, cette table des fonctionnalités définit également pour chaque fonctionnalité, le format série (FS) associé à cette fonctionnalité, ainsi que la longueur d'un message associé à cette fonctionnalité. Pour une unité de traitement donnée, le nombre de fonctionnalités possibles dépend uniquement du nombre d'AG qu'elle peut atteindre sur le bus et de la valeur de l'AG.
Généralités sur le protocole de communication de l'invention L'échange de messages sur le bus α est réalisé entre une unité de traitement maître qui a pris la direction du bus, et qui de ce fait est la seule unité de traitement autorisée à écrire des données sur le bus a, et les autres unités de traitement esclaves, qui peuvent accéder uniquement en lecture au bus α-
Lorsqu'une unité de traitement 1a, 1b, ..., ou 1n a pris la direction du bus α, elle commence par écrire sur le bus un en-tête (FunctionKey), puis écrit ensuite sur le bus a une trame ( un ou plusieurs mots en fonction du format série (FS) utilisé).
L'en-tête est lu par chaque unité de traitement esclave. L'en-tête permet principalement à chaque unité de traitement esclave de déterminer si la trame émise sur le bus a lui est destinée, et dans l'affirmative, quelle est la tâche qu'elle doit exécuter.
Lorsque l'en-tête émis sur le bus ne fait pas partie de la table des fonctionnalités d'une unité de traitement esclave, cette dernière ignore la trame émise sur le bus consécutivement à l'en-tête. Dans le cas contraire, l'unité de traitement esclave lit également la trame émise sur le bus après l'en-tête, et exécute automatiquement la tâche qui est associée à cet en-tête dans sa table des fonctionnalités.
Ainsi, la nouveauté du protocole de communication de l'invention découle du fait que lors de l'écriture d'un message sur le bus par une unité de traitement maître, on ne réalise pas un adressage d'une unité de traitement esclave donnée localisée sur le bus par une adresse (physique ou logique), mais on réalise un adressage des fonctionnalités (tâches) des unités de traitement esclaves, le message étant traité en parallèle par toutes les unités de traitement possédant une fonctionnalité associée à l'en-tête émis sur le bus. Exemple de structure d'une unité de traitement (1a, —, 1n)
En référence à la figure 1 , une unité de traitement 1a, ..., 1n comporte essentiellement :
- un microprocesseur 2,
- une mémoire de validation 3, - une mémoire 4 de type FIFO,
- une unité logique 5 permettant le séquencement du fonctionnement de la mémoire de validation 3 et de la mémoire FIFO 4, à partir de signaux horloges CLKA et CLKD,
- un bus de données 6, dit par la suite bus interface, - un bus interne 7, sur lequel le microprocesseur 2, peut lire ou écrire des données, - des registres trois états 6a, qui sous la commande du microprocesseur 2 (signal 8) permettent l'écriture sur le bus interface 6 (D0-D15) des données présentes sur le bus interne 7.
Bus interface (6) Ce bus interface est un bus de données (n) bits [(DO - Dn-1)] constitué d'une manière générale de (n) conducteurs électriques parallèles, [n entier inférieur ou égal à q (taille du bus α)], reliés en parallèle aux n premiers conducteurs du bus a- Microprocesseur (2) / bus interne (7) Le microprocesseur est de manière usuelle associé à une mémoire vive (RAM), qui par soucis de simplification n'a pas été représentée sur cette figure 1 , et à laquelle le microprocesseur 2 peut de manière usuelle accéder en lecture et en écriture. Cette mémoire vive comporte la table des fonctionnalités de l'unité de traitement, ainsi que le programme de fonctionnement du microprocesseur, qui sera détaillé ultérieurement.
Le bus interne 7 est un bus ISA qui comporte de manière usuelle :
- un bus de données [ bus de donnés 16bits / DJSAO à DJSA15 dans le cas de l'unité de traitement 1a au format 16 bits], - un bus d'adresse non représenté sur le synoptique général de la figure
1 , et dont les deux bits d'adresse de poids faible sont référencés respectivement AOJSA et A1 JSA sur les chronogrammes des figures 3 et 4, et
- un bus de contrôle constitué par les signaux d'écriture WrJSA et de lecture RdJSA (signaux délivrés par le microprocesseur 2) et par le signal de sélection CsJSA, issu du décodage des signaux de lecture et d'écriture ; ces signaux WrJSA, RdJSA, et CsJSA ne sont pas représentés sur le synoptique de la figure 1 , et apparaissent uniquement sur les chronogrammes des figures 3 et 4. Mémoire de validation (3)
La mémoire de validation 3 peut indifféremment être une mémoire vive ou une mémoire morte. De préférence, il s'agit d'une mémoire de type EEPROM. Cette mémoire de validation fonctionne en table de correspondance de façon à lister les en-têtes valides, le port d'adresse de cette mémoire de validation 3 étant relié au bus α- Le port de sortie de cette mémoire de validation 3 est relié (signaux 9) au microprocesseur 2, sur un port de ce microprocesseur dédié au traitement des interruptions.
L'accès en lecture à la mémoire de validation 3 est séquence par le signal 5a, délivré par l'unité logique 5, à partir des signaux horloge CLKA et CLKD. Tel que cela apparaîtra plus clairement ultérieurement dans la description, la mémoire de validation 3 a pour fonction de valider ou non (signaux 9), pour le microprocesseur 2, un en-tête présent sur le bus α- A cet effet, à chaque adresse de la mémoire de validation (correspondant à une valeur d'en-tête pouvant être émise par une unité de traitement sur le bus α) est stockée une donnée qui est reconnue par le microprocesseur 2 comme étant une donnée, soit de validation, soit de non validation de l'entête. Lorsque la donnée délivrée en sortie par la mémoire de validation 3 (signaux 9) est une donnée de validation, le microprocesseur 2 est informé qu'il doit charger la trame qui est émise sur le bus après l'en- tête qui a été validé. A l'inverse, lorsque la donnée issue de la mémoire de validation est une donnée qui ne valide pas l'en-tête, le microprocesseur 2 ignore la trame qui est émise sur le bus α après cet en-tête.
Ces données de validation ou de non validation pour chaque adresse de la mémoire 3 sont propres à chaque unité de traitement 1a, 1 b, ..., 1n, et permettent de personnaliser le fonctionnement de l'unité de traitement.
En référence à la figure 2, dans un exemple particulier de réalisation, la mémoire de validation 3 est réalisée au moyen d'un circuit intégré CI1 tel que par exemple le circuit intégré commercialisé sous la référence AM29F010. Dans cette réalisation, le port d'adresse de la mémoire correspond aux entrées A0 à A15, lesquelles sont raccordées respectivement en parallèle aux conducteurs électriques du bus (D0- D15). Le signal « Ecriture_ Ad » correspond au signal 5a de la figure 1 , et les signaux « Adresse_rejetée », « IRQ#5 », « IRQ#4 » « IRQ#3 » « IRQ#2 » « IRQ#P » sur le port de sortie de la mémoire correspondent aux signaux 9 précités du synoptique de la figure 1. Dans cette réalisation, la validation de la mémoire est répartie sur plusieurs niveaux, mais la validation utile est codée sur le signal IRQ #P. Lorsque ce signal IRQ #P est par exemple à l'état bas (respectivement à l'état haut), l'en-tête qui est présent sur le bus est validé (respectivement non validé) pour le microprocesseur 2. Mémoire FIFO (4)
En référence à la figure 1 , la mémoire FIFO 4 est raccordée en entrée au bus α via le bus interface 6, et en sortie au bus de données du bus interne 7. Le microprocesseur 2 peut commander le chargement, dans la mémoire FIFO 4, d'un mot présent sur le bus α, au moyen du signal d'écriture 10, ainsi que la sortie d'un mot stocké dans la mémoire FIFO 4, et son écriture sur le bus de données du bus interne 7, au moyen du signal de lecture 11. Le séquencement du chargement d'un mot dans la mémoire FIFO 4, ou d'une lecture d'un mot en mémoire FIFO 4 est synchronisé par un signal de cadencement 5b, délivré par l'unité logique 5 à partir des signaux horloges CLKA et CLKD. La mémoire FIFO 4 délivre également en sortie pour le microprocesseur 2 des signaux d'état 12 permettant d'indiquer au microprocesseur 2 son niveau de remplissage.
En référence à la figure 2, dans un exemple particulier de réalisation, la mémoire FIFO 4 est réalisée à partir de deux circuits intégrés 8 bits CI2 et CI3, et par exemple à partir de circuits intégrés commercialisés sous la référence IDT7200, chaque circuit intégré CI2 et CI3 étant dédié respectivement au stockage des bits de poids fort (D8 à D15) et de poids faible (D0 à D7) du bus α. Dans cette variante de réalisation, les signaux référencés sur la figure 2 « EmptyJlag_H », «FullJlag_H », « HalfJull_H », « EmptyJlag_B », «FullJlag_B », « HalfJull_B », correspondent aux signaux d'état 12 précités du synoptique de la figure 1 , et permettent le codage de l'état de remplissage de chaque registre FIFO ( CI2 et CI3). Le signal référencé « Ecriture_FIFO_OK » correspond au signal d'écriture 10 précité de la figure 1. Les signaux « Lecture_ FIFO _ B » et « Lecture _FIFO _ H » correspondent au signal de lecture 11 précité de la figure 1. Le signal «Reset_FIFO » est un signal de remise à zéro de la mémoire FIFO qui est délivré par le microprocesseur 2, et qui est utilisé pour initialiser la mémoire 4. Registres trois états (6a)
Le bus de données du bus interne 7 d'une unité de traitement est connecté en parallèle au bus interface 6, via un ou plusieurs registres trois états 6a. Dans le cas par exemple de l'unité de traitement 1a mettant en œuvre un bus interne 16 bits ( DJSA0- DJSA15), on pourra utiliser deux registres huit bits dédiés à l'écriture en parallèle sur le bus interface 6, et par là-même sur le bus α, respectivement des huit bits de poids faible (D- ISA0-DJSA7) et des huit bits de poids forts (DJSA8-DJSA15) du bus de données du bus interne 7. Le transfert sur le bus (DO- D15) d'une donnée présente sur le bus de données (DJSAO - DJSA15) du bus interne 7 est commandé par le microprocesseur au moyen du signal d'écriture 8 (figure 1). Signaux horloge CLKA et CLKD
En référence à la figure 1 , chaque microprocesseur 2 d'une unité de traitement délivre en sortie deux signaux horloge 2a et 2b, qui sont connectés, via des portes 13 à collecteur ouvert, à un bus horloge (CLKA, CLKD) commun à toutes les unités de traitement. Lorsqu'une unité de traitement prend la direction du bus (unité de traitement maître), les signaux horloges CLKA et CLKD correspondent respectivement aux signaux horloge 2a et 2b du microprocesseur 2 de cette unité de traitement maître ; les signaux horloges 2a et 2b des autres unités de traitement esclaves sont quant à eux flottants et isolés du bus horloge CLKA et CLKD. L'échange de données sur le bus est ainsi cadencé par l'unité de traitement maître, les unités de traitement esclaves assurant le chargement des messages écrits sur le bus α ( mémoire de validation 3/ signal 5a ; mémoire FIFO 4 / signal 5b) quelle que soit leur vitesse d'horloge propre (fréquence propre de fonctionnement de leur microprocesseur 2). Des unités de traitement possédant des vitesses d'horloge propres différentes peuvent donc avantageusement dialoguer entre elles.
Fonctionnement du microprocesseur (2) d'une unité de traitement Programme principal
Le microprocesseur 2 d'une unité de traitement est programmé pour exécuter en boucle le programme principal ci-après : a) lecture en mémoire FIFO 4 d'un message (en-tête et trame) , b) décodage de la fonctionnalité associée à cette en-tête dans la table des fonctionnalités ; c) exécution automatique de la routine (tâche) correspondant à cette fonctionnalité.
Ecriture d'un message sur le bus n ( figure 3 et 4)
Au cours de l'exécution de la routine de l'étape c) précitée, il peut arriver que le microprocesseur 2 soit amené à écrire sur le bus α un message, afin d'activer une fonctionnalité gérée par une ou plusieurs autres unités de traitement connectées au bus α- Dans ce cas, après avoir pris la direction du bus α, l'unité de traitement écrit sur le bus l'en-tête codant cette fonctionnalité, et la trame des mots du message, puis libère le bus α- Les chronogrammes des principaux signaux mis en œuvre lors d'une telle opération d'écriture sont représentés respectivement sur les figures 3 et 4.
Sur ces figures 3 et 4, les signaux « Datajsa » correspondent au bus de données du bus interne 7, c'est-à-dire par exemple aux bits DJSA0 à DJSA15 (figure 2) du bus interne 7 de l'unité de traitement 1a.
Les signaux Com_CLKA et Com_CLKB correspondent aux signaux 2a et 2b précités. L'écriture d'un en-tête sur le bus de données du bus interne 7 se fait à l'adresse de base +2 d'offset ; ensuite l'écriture de la donnée sur le bus de donnée du bus interne 7 se fait à l'adresse de base +3 d'offset(cf. signaux AOJSA et A1 JSA). Chargement d'un message présent sur le bus n ( figures 5 et 6)
En cas de présence d'un en-tête valide sur le bus α, l'exécution du programme principal précité est interrompu par la donnée de validation qui est issue de la mémoire de validation (le signal « IRQ #P » change d'état). Le microprocesseur exécute alors une routine secondaire de chargement en mémoire FIFO 4 de l'en-tête et de la trame de mots émise sur le bus à la suite de cet entête, l'unité de traitement correspondante fonctionnant en esclave.
Les chronogrammes des principaux signaux mis en œuvre lors d'une opération de lecture sur le bus α, par une unité de traitement esclave, d'un en-tête valide sont représentés sur la figure 5. La figure 6 représente les chronogrammes des principaux signaux mis en œuvre lors d'une opération de lecture sur le bus α, par une unité de traitement esclave, d'une trame de mots ( figure 6 / « Donnée n » , « Donnée n+1 ») écrite le bus α par une unité de traitement maître, en relation avec un en- tête valide précédemment écrit sur le bus α-
En référence à la figure 5, s'agissant d'un en-tête valide pour l'unité de traitement esclave, en sortie de la mémoire validation 3, l'interruption IRQ#P change momentanément d'état. La capture de cet entête valide dans la mémoire FIFO 4 ( signal 10 / Ecriture_FIFO_OK) se fait par l'action simultanée des signaux CLKA et CLKD.
En référence à la figure 6, la capture d'une donnée dans la mémoire FIFO 4 est cadencée uniquement par le signal CLKD. Réception d'un en-tête non valide / figure 7 En référence à la figure 7, lorsque l'en-tête présent sur le bus α n'est pas valide pour une unité de traitement esclave, le signal d'interruption IRQ#P ne change pas d'état, et le programme principal précité du microprocesseur 2 n'est pas interrompu. Le microprocesseur 2 ne commande pas le chargement de l'en-tête présent sur le bus α dans la mémoire FIFO 4 (signal Ecriture_FIFO_OK ne change pas d'état), ni ultérieurement le chargement en mémoire FIFO 4 de la trame de mots transitant sur le bus après cet en-tête. Le message transitant sur le bus est ainsi ignoré par l'unité de traitement esclave.
L'architecture multi processeurs qui a été décrite en référence aux figures 1 à 7 présente les principaux avantages ci-après :
- le principe d'adressage des unités de traitement par leurs fonctionnalités au moyen de l'en-tête (FunctionKey) permet de simplifier la gestion du parallélisme des tâches exécutées par les unités de traitement, et par là- même simplifie la programmation des unités de traitement ; en outre, il permet de réaliser à moindre coût une architecture puissante, à partir d'unités de traitement de faible puissance. - Cette architecture est avantageusement modulaire, et très facilement évolutive ; elle est en outre très robuste : on peut lui changer sa forme « à chaud » (en fonctionnement) par ajout, suppression ou remplacement d'une unité de traitement, sans perturber grandement l'exécution du programme général de fonctionnement de l'architecture ; certaines unités de traitement qui constituent cette architecture peuvent donc tomber en panne sans qu'il soit nécessaire de réaliser un arrêt général du fonctionnement de l'architecture.
- Cette architecture parallèle est « universelle » : elle permet de faire dialoguer entre elles des unités de traitement différentes, et en particulier des unités de traitement ayant des bus de données (bus interface 6) de tailles différentes ; la seule limitation sur la taille des unités de traitement pouvant être connectées est le nombre de bits en parallèle du bus ', cette architecture ne fonctionne pas avec un format unique de données, mais fonctionne avec tout format de données, supérieur ou égal à la taille de l'atome de granularité (AG).
- l'échange de données sur le bus de communication (bus a) étant cadencé par l'unité de traitement maître qui a pris la direction du bus (signaux CLK et CLD), les unités de traitement peuvent dialoguer entre elles quels que soient leurs processeurs, et surtout quelle que soit la cadence d'horloge de leurs processeurs. Exemple d'application
On réalise un robot comportant une carte mère fond de panier sur laquelle sont montées cinq cartes filles ( une carte fille correspondant à une unité de traitement) : une carte de propulsion pour commander le déplacement du robot, une carte sonore, une carte caméra, et une carte de décision comportementale ( calculateur) pour gérer le comportement du robot. Les tableaux 1 , 2 , 3, 4 ci-après donnent un exemple d'implémentation d'en-têtes et de fonctionnalité associées.
TABLEAU 1
Figure imgf000021_0001
TABLEAU 2
Figure imgf000022_0001
TABLEAU 3
Figure imgf000023_0001
TABLEAU 4
Figure imgf000024_0001
•U- : aptitude de la carte à écrire l'en-tête sur le bus
1Î : aptitude de la carte à charger l'en-tête présente sur le bus en mémoire FIFO (validité de l'en-tête). Dans cette application, au moins deux unités de traitement (cartes filles) sont configurées avec un même en-tête, c'est-à-dire comportent dans leur table des fonctionnalités à une même valeur d'en-tête (voir ci-après la fonctionnalité « arrêt d'urgence » / carte propulsion, carte sonore et carte de décision comportementale configurées avec la même valeur d'en-tête '1'). Egalement, dans cette application, au moins une unité de traitement est conçue pour exécuter plusieurs tâches, et est configurée de telle sorte que chaque tâche est associée à un en-tête différent. Par exemple, la carte propulsion comporte dans sa table des fonctionnalités les valeurs d'en-tête '1 ', '2', '3', '6' et '10' associées respectivement aux fonctionnalités suivantes : « arrêt d'urgence », « demande de déplacement en avant », « demande de déplacement en arrière », « reconnaissance d'un humain », « demande d'identification des cartes présentes ».
Afin de mieux comprendre les tableaux ci-dessus, la fonctionnalité « arrêt d'urgence » va être plus particulièrement commentée.
Fonctionnalité « arrêt d'urgence »
L'en-tête de valeur 'V codant la fonctionnalité « arrêt d'urgence » est toujours valide pour la carte propulsion, la carte sonore, et la carte de décision comportementale. La carte propulsion comporte dans sa table des fonctionnalités cette valeur d'en-tête associée à la fonctionnalité « arrêt d'urgence », et la routine (tâche) associée est l'arrêt du moteur de déplacement du robot. La carte sonore comporte dans sa table des fonctionnalités cette valeur d'en-tête '1 ' associée à la fonctionnalité « arrêt d'urgence », et la routine associée est l'émission d'un son d'alerte par la carte. La carte de décision comportementale comporte dans sa table des fonctionnalités cette valeur d'en-tête associée à la fonctionnalité « arrêt d'urgence », et la routine associée est de mémoriser et dater l'événement tout en vérifiant que l'arrêt d'urgence à bien eu lieu en vérifiant que la caméra observe une image fixe. Lorsque l'en-tête de valeur '1 ' transite sur le bus α, les routines (tâches) de chacune de ces cartes correspondant à cette fonctionnalité sont activées en parallèle.
A l'inverse, l'en-tête de valeur '1 ' codant la fonctionnalité « arrêt d'urgence » n'est jamais valide pour la carte caméra. Lorsque cet en-tête est présent sur le bus ce, le message correspondant est ignoré par la carte caméra qui continue a fonctionner normalement.
L'activation de la fonctionnalité « arrêt d'urgence » par écriture de la valeur d'en-tête '1 ' sur le bus peut être réalisée à l'initiative soit de la carte propulsion ( en cas de surchauffe moteur détectée par cette carte), soit de la carte caméra ( en cas de détection d'une obstacle par cette carte), soit de la carte de décision comportementale. Cette fonctionnalité « arrêt » d'urgence n'est jamais déclenchée à l'initiative de la carte sonore. Les tableaux ci-dessus permettent à l'homme du métier de définir, pour chaque carte, sa table des fonctionnalités, ainsi que le contenu de sa mémoire de validation 3 qui assure le décodage des en-têtes.
Dans la variante la variante de réalisation particulière de la figure 1 , une unité de traitement est conçue pour, après reconnaissance d'un en-tête valide, charger en mémoire FIFO 4 le message transitant sur le bus α, et ce préalablement à l'exécution de la tâche associée à l'entête du message. Dans une variante de réalisation plus simple, il est toutefois envisageable de concevoir une unité de traitement qui exécute une tâche associée à un en-tête après reconnaissance de cet en-tête sur le bus α, sans chargement préalable du message en mémoire locale. Dans ce cas, l'unité de traitement ne comportera pas nécessairement de mémoire FIFO 4. Egalement, dans une autre variante, la mémoire de validation 3 pourrait être remplacée par tout autre moyen de décodage des en-têtes transitant sur le bus, et par exemple par une table de décodage réalisée en logique combinatoire.

Claims

REVENDICATIONS
1. Architecture électronique parallèle comportant une pluralité d'unités de traitement (1a, 1 b.,...1n) connectées à un bus de communication, chaque unité de traitement étant conçue pour exécuter automatiquement une ou plusieurs tâches prédéfinies, caractérisée en ce que chaque unité de traitement est configurée de telle sorte que chacune de ses tâches est associée à un en-tête, en ce que chaque unité de traitement est conçue pour communiquer avec les autres unités de traitement selon le protocole suivant : envoi sur le bus d'un message comportant au moins un en-tête caractérisant une fonctionnalité, et éventuellement une trame constituée d'un ou plusieurs mots, et en ce que chaque unité de traitement est conçue pour décoder chaque en-tête transitant sur le bus, et pour, en fonction de la valeur de cet en-tête, soit ignorer le message émis sur le bus, soit exécuter la tâche associée à l'en-tête de ce message.
2. Architecture selon la revendication 1 caractérisée en ce qu'au moins une unité de traitement est conçue pour charger en mémoire le message transitant sur le bus préalablement à l'exécution d'une tâche.
3. Architecture selon la revendication 1 ou 2 caractérisée en ce que qu'au moins deux unités de traitement sont configurées avec un même entête.
4. Architecture selon la revendication 1 ou 2 caractérisée en ce qu'au moins une unité de traitement est conçue pour exécuter plusieurs tâches, et est configurée de telle sorte que chaque tâche est associée à un en-tête différent.
5. Architecture selon l'une des revendications 1 à 4 caractérisée en ce que le bus de communication est un bus de données composé de (q) conducteurs parallèles (q entier supérieur ou égal à 1), en ce que chaque unité de traitement comporte un bus (6) de données (n) bits [(n entier inférieur ou égal à q)] qui est connecté en parallèle aux (n) premiers conducteurs du bus de communication.
6. Architecture selon la revendication 5 caractérisée en ce qu'au moins une unité de traitement est conçue pour émettre sur le bus un message selon le format série suivant : écriture sur le bus d'un premier mot correspondant à l'en-tête, puis écriture successivement de chaque mot constituant la trame du message.
7. Architecture selon l'une des revendications 1 à 6 caractérisé en ce qu'au moins une unité de traitement comporte : un processeur (2) programmé pour exécuter une ou plusieurs tâche distinctes, des moyens de décodage conçus pour valider ou non pour le processeur (2) un en-tête transitant sur le bus de communication, une mémoire (4) connectée au bus de communication, accessible en lecture par le processeur (2), et permettant sous la commande du processeur (2) le chargement d'un message transitant sur le bus de communication.
8. Architecture selon la revendication 7 caractérisée en ce que les moyens de décodage comportent une mémoire de validation (3) dont le port d'adresse est connecté au bus de communication, en ce que chaque valeur d'en-tête pouvant transiter sur le bus de communication correspond à une adresse de cette mémoire de validation (3), et en ce qu'à chaque adresse de cette mémoire de validation correspondant à un en-tête est stockée une donnée de validation ou de non validation de l'en-tête.
9. Architecture selon la revendication 8 caractérisée en ce que le port de sortie de la mémoire de validation (3) est connecté à un port du processeur (2) dédié au traitement des interruptions.
10. Architecture selon l'une quelconque des revendication 1 à 9 caractérisée en ce qu'elle est de type multi-maîtres/multi-esclaves, et en ce que l'échange de données sur le bus de communication est cadencé par l'unité de traitement maître qui a émis le message.
PCT/FR2001/004176 2000-12-22 2001-12-21 Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites WO2002052414A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CA002432384A CA2432384A1 (fr) 2000-12-22 2001-12-21 Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites
US10/451,032 US6859847B2 (en) 2000-12-22 2001-12-21 Parallel electronic architecture comprising a plurality of processing units connected to a communication bus, and addressable by their functional capabilities
JP2002553647A JP2004521412A (ja) 2000-12-22 2001-12-21 通信バスに接続され、それぞれの機能によってアドレス指定される複数のプロセッサユニットを含む並列コンピュータアーキテクチャ
IL15648201A IL156482A0 (en) 2000-12-22 2001-12-21 Parallel electronic architecture comprising a plurality of processing units connected to a communication bus, and addressable by their functional capabilities
KR10-2003-7008448A KR20030072573A (ko) 2000-12-22 2001-12-21 통신 버스에 접속되는 복수의 프로세싱 유닛을 구비하며그들의 각각의 기능에 의해 어드레스되는 병렬 전자 장치
EP01995776A EP1344131A1 (fr) 2000-12-22 2001-12-21 Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites
HK04105915A HK1063228A1 (en) 2000-12-22 2004-08-09 Method for executing a plurality of tasks in parallel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0016858A FR2818774B1 (fr) 2000-12-22 2000-12-22 Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites
FR00/16858 2000-12-22

Publications (1)

Publication Number Publication Date
WO2002052414A1 true WO2002052414A1 (fr) 2002-07-04

Family

ID=8858068

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/004176 WO2002052414A1 (fr) 2000-12-22 2001-12-21 Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites

Country Status (10)

Country Link
US (1) US6859847B2 (fr)
EP (1) EP1344131A1 (fr)
JP (1) JP2004521412A (fr)
KR (1) KR20030072573A (fr)
CN (1) CN1230745C (fr)
CA (1) CA2432384A1 (fr)
FR (1) FR2818774B1 (fr)
HK (1) HK1063228A1 (fr)
IL (1) IL156482A0 (fr)
WO (1) WO2002052414A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005089055A2 (fr) * 2004-03-19 2005-09-29 Nortel Networks Limited Procede pour communiquer des capacites de traitement sur une voie de communication
US8254372B2 (en) 2003-02-21 2012-08-28 Genband Us Llc Data communication apparatus and method
US8346239B2 (en) 2006-12-28 2013-01-01 Genband Us Llc Methods, systems, and computer program products for silence insertion descriptor (SID) conversion
US8908541B2 (en) 2009-08-04 2014-12-09 Genband Us Llc Methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway
CN104360904A (zh) * 2014-10-16 2015-02-18 四川长虹电器股份有限公司 基于事件总线的模块间消息传递机制

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0622408D0 (en) * 2006-11-10 2006-12-20 Ibm Device and method for detection and processing of stalled data request
US9292409B2 (en) * 2013-06-03 2016-03-22 Infineon Technologies Ag Sensor interfaces

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0200447A2 (fr) * 1985-04-30 1986-11-05 EMI Limited Système de transmission de données
US5841580A (en) * 1990-04-18 1998-11-24 Rambus, Inc. Integrated circuit I/O using a high performance bus interface
US5898845A (en) * 1996-10-29 1999-04-27 Intervoice Limited Partnership Assigning and utilizing overlapping address space for multiple cards on a common computer bus

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6185631B1 (en) * 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6690676B1 (en) * 1998-11-23 2004-02-10 Advanced Micro Devices, Inc. Non-addressed packet structure connecting dedicated end points on a multi-pipe computer interconnect bus
US6529504B1 (en) * 1999-06-02 2003-03-04 Sprint Communications Company, L.P. Telecommunications service control point interface
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0200447A2 (fr) * 1985-04-30 1986-11-05 EMI Limited Système de transmission de données
US5841580A (en) * 1990-04-18 1998-11-24 Rambus, Inc. Integrated circuit I/O using a high performance bus interface
US5898845A (en) * 1996-10-29 1999-04-27 Intervoice Limited Partnership Assigning and utilizing overlapping address space for multiple cards on a common computer bus

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8254372B2 (en) 2003-02-21 2012-08-28 Genband Us Llc Data communication apparatus and method
WO2005089055A2 (fr) * 2004-03-19 2005-09-29 Nortel Networks Limited Procede pour communiquer des capacites de traitement sur une voie de communication
WO2005089055A3 (fr) * 2004-03-19 2006-03-30 Nortel Networks Ltd Procede pour communiquer des capacites de traitement sur une voie de communication
US7990865B2 (en) 2004-03-19 2011-08-02 Genband Us Llc Communicating processing capabilities along a communications path
US8346239B2 (en) 2006-12-28 2013-01-01 Genband Us Llc Methods, systems, and computer program products for silence insertion descriptor (SID) conversion
US8908541B2 (en) 2009-08-04 2014-12-09 Genband Us Llc Methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway
US9559978B2 (en) 2009-08-04 2017-01-31 Genband Us Llc Methods, systems, and computer readable media for intelligent optimization of digital signal processor (DSP) resource utilization in a media gateway
CN104360904A (zh) * 2014-10-16 2015-02-18 四川长虹电器股份有限公司 基于事件总线的模块间消息传递机制

Also Published As

Publication number Publication date
IL156482A0 (en) 2004-01-04
FR2818774A1 (fr) 2002-06-28
EP1344131A1 (fr) 2003-09-17
US20040059888A1 (en) 2004-03-25
CN1486460A (zh) 2004-03-31
JP2004521412A (ja) 2004-07-15
US6859847B2 (en) 2005-02-22
HK1063228A1 (en) 2004-12-17
FR2818774B1 (fr) 2003-03-21
CN1230745C (zh) 2005-12-07
KR20030072573A (ko) 2003-09-15
CA2432384A1 (fr) 2002-07-04

Similar Documents

Publication Publication Date Title
EP0272969B1 (fr) Procédé et appareil programmable pour le transcodage de chaînes de caractères
EP0063071B1 (fr) Procédé et dispositif de transmission de données numériques
FR2632096A1 (fr) Systeme de microcalculateur a bus multiple avec arbitrage d'acces aux bus
FR2632090A1 (fr) Commande du fonctionnement en pipe-line d'un systeme de micro-calculateur utilisant le dimensionnement dynamique des bus avec un processeur 80386 et une unite de commande d'antememoire 82385
WO2002052414A1 (fr) Architecture electronique parallele comportant une pluralite d'unites de traitement connectees a un bus de communication, et adressables par leurs fonctionnalites
FR2539260A1 (fr) Systeme de transmission de donnees
EP1324175B1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
FR2765706A1 (fr) Lecteur de cartes a puces a protocole de transmission rapide
EP0553163A1 (fr) Procede pour repartir la memoire d'un circuit integre entre plusieurs applications
EP0540427A1 (fr) Circuit d'interface pour carte à circuit intégré
EP2585982B1 (fr) Procede de gestion de la communication entre un dispositif electronique et un appareil de communication
EP0938048B1 (fr) Procédé de transfert de données en série, et interface de bus série synchrone mettant en oeuvre un tel procédé
FR2990534A1 (fr) Procede d'envoi automatique de lignes de commande pour acceder a un site internet et dispositif mettant en oeuvre le procede
EP1603049A1 (fr) Interfacage de modules fonctionnels dans un systeme sur une puce
EP0512881B1 (fr) Procédé et dispositif de sélection d'informations utilisables par une unité locale reliée à un système de transmission numérique
EP0191999B1 (fr) Procédé d'adressage entre une station émettrice d'un message et au moins une station réceptrice dans un réseau de communication et dispositif permettant la mise en oeuvre du procédé
FR2662523A1 (fr) Dispositif controleur d'unites de memoire de masse multiprocesseur a bus central unique.
EP0589743A1 (fr) Dispositif modulaire permettant le couplage et le multiplexage de bus de différents types
EP0264325A1 (fr) Automate pour rendre compatible un processeur avec un bus d'un autre processeur
WO1999031618A1 (fr) Microcircuit a logique cablee comportant une interface de communication numerique
FR2707117A1 (fr) Système de téléchargement de données de programme pour calculateur de gestion de processus.
FR2582423A1 (fr) Memoire tampon a interposer entre deux systemes synchrones a vitesses differentes
WO2014122097A1 (fr) Système de processeur multi-utilisateurs de traitement d'informations
EP0077864A1 (fr) Dispositif de balayage de lignes de communications comportant un generateur d'adresses
FR2632095A1 (fr) Methode et dispositif pour poster selectivement des cycles d'ecriture en utilisant une unite de commande d'antememoire 82385

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 156482

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 10451032

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2002226494

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1020037008448

Country of ref document: KR

Ref document number: 2432384

Country of ref document: CA

Ref document number: 2002553647

Country of ref document: JP

Ref document number: 806/KOLNP/2003

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2001995776

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 018220886

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020037008448

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2001995776

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2001995776

Country of ref document: EP