EP1960891A1 - Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant. - Google Patents

Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant.

Info

Publication number
EP1960891A1
EP1960891A1 EP06819883A EP06819883A EP1960891A1 EP 1960891 A1 EP1960891 A1 EP 1960891A1 EP 06819883 A EP06819883 A EP 06819883A EP 06819883 A EP06819883 A EP 06819883A EP 1960891 A1 EP1960891 A1 EP 1960891A1
Authority
EP
European Patent Office
Prior art keywords
bus
access
master
master device
data
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.)
Ceased
Application number
EP06819883A
Other languages
German (de)
English (en)
Inventor
Renaud Dore
Ludovic Jeanne
Patrick Fontaine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THOMSON LICENSING
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of EP1960891A1 publication Critical patent/EP1960891A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter

Definitions

  • the present invention relates to the field of electronics and computers and more particularly the high-performance deterministic buses.
  • a local processor bus (or PLB of the English "Processor Local Bus") described with reference to Figure 9 in the patent application US687905 filed by the company International Business Machines Corporation includes several slaves and masters. Also, a bus access priority is set for the masters. In the PLB, the lowest-priority master has access to the bus only when another master with access to the bus releases it.
  • this technique has the disadvantage of not guaranteeing bandwidth and latency for each master. Also, this bus is not suitable for low-level communications (including physical layer type (or abbreviated PHY) or access a communication channel (or MAC abbreviated to "Media Access Control”). Neither is it suitable for partitioning between hardware and software resources.
  • PHY physical layer type
  • MAC MAC abbreviated to "Media Access Control”
  • the object of the invention is to allow a deterministic bus intended to be connected to a higher priority main master device and to secondary master peripherals and thus to guarantee a minimum bit rate and / or a maximum latency for a secondary master. to the bus, when the master master uses a small fraction of the time available on the bus.
  • the invention proposes a method of access to a bus intended to be connected to a higher priority main master device and to secondary master peripherals, the bus being adapted to the transmission of data to and / or from devices.
  • the method comprises: - a bus access authorization step to the main master device when it requests access to the bus;
  • the selection step comprises:
  • the selection step comprises an arbitration step for access to the bus between the secondary master peripherals when the secondary device that has the token does not request access to the bus.
  • the arbitration step comprises:
  • the method comprises a step of selecting the type of write or read access.
  • the method comprises
  • the bus comprises at least one slave device, the method comprising access to the bus for reading and / or writing to a device authorized to transmit data to or from the or at least one of the slave devices.
  • the invention also relates to a bus access device for connection to a higher priority master master device and to secondary master peripherals, the bus being adapted for data transmission between the peripherals; advantageously, the device comprises:
  • the invention also relates to a system which comprises: a bus;
  • the system comprises at least one slave device connected to the bus, the slave device or devices that can not request access to the bus.
  • the device or peripherals are memories.
  • the main master device comprises a microprocessor.
  • the main master device comprises means of access to a wireless medium.
  • the system comprises a component that includes the bus and at least one of the secondary master devices and, optionally, the primary master device.
  • FIG. 1 is a very schematic diagram of a communication system according to a particular embodiment of the invention.
  • FIG. 2 schematically represents the layered structure of the system of FIG. 1;
  • FIG. 3 details the system of FIGS. 1 and 2 applied to a device exchanging data with an access layer to the medium;
  • FIG. 4 shows a bus implemented in the system of FIG. 1;
  • FIGS. 5 and 6 illustrate timing diagrams during data exchanges on the bus of FIG. 4;
  • FIG. 7 presents a bus access algorithm of FIG. 4
  • FIGS. 8 and 9 show examples of access to the bus of FIG. 4; - Figures 10 and 1 1 illustrate referees adapted to manage access on the bus of Figure 4; and
  • Figure 12 shows a master connected to the bus of Figure 4.
  • Figure 1 schematically shows a communication system 1 according to a particular embodiment of the invention.
  • the system 1 comprises:
  • the masters 1 10 to 1 12 are adapted to initiate read and / or write data transfers on the bus 10. They have a lower priority than the master 100 to access the bus.
  • the number of masters is not limited and can take any value (for example,
  • the invention notably allows a fluidity in the accesses when the number of masters is high.
  • Slaves 120 to 123 receive and / or transmit data on the bus 10 and can not initiate data transfers.
  • at least one slave is connected to the bus 10.
  • FIG. 2 schematically represents the layered structure of the system 1. More specifically, the system 1 implements at least three layers comprising: a physical layer or PHY;
  • MAC Media Access Control
  • the medium is, for example, a wireless communication layer (for example infra-red, radio (especially according to WiFi standards,
  • the bit rate of the transferred data can in particular reach a few hundred megabits.
  • Figure 2 shows in particular a distribution between the hardware (or electronic components) and software (or “hardware / software partitioning” in English).
  • the system 1 comprises in particular:
  • a MAC core 20 comprising the bus 10, the MAC core being connected to a data transmission medium (physical layer) and / or to an application layer; a central unit MAC or MAC CPU (or Central Processing
  • an application layer 23 and a random access memory or SDRAM 24 which is connected to the layer 23 via a bidirectional link 28.
  • the physical layer 20 and the MAC layer are connected by a PHY-MAC interface 25 which comprises: a bidirectional connection 252 for controlling between the layer 20 and the unit 22; and
  • the application layer 23 is connected to the core 20 and the unit 22 via the bus 10 (interface 26) for the data transmission and a bidirectional link 270 respectively.
  • the bus 10 is connected to several masters of the same priority (not shown in FIG. 2), to at least one slave (not shown in FIG. 2) and to the unit 22 which is the main master device of the bus with a priority stronger than other masters, says secondary master devices.
  • the unit 22 has priority for access to the bus 10 (unlike the state of the art where a CPU has a lower priority than masters to access a bus).
  • Figure 3 details the system 1 applied to a device exchanging data with the MAC layer.
  • the bus 10 whose access is controlled by the arbiter 13 connects:
  • control units of the physical layer respectively in transmission 201 (connected to link 251) and in reception 202 (connected to link 250); two DMA units 321 for sending and 322 for receiving in a security coder 32 (encrypting, for example, data);
  • the bus 221 is a control bus of the other units of the system (for example for an initialization). It is implemented, for example, in the form of the so-called APB portion of an AMBA® bus). It is connected to link 252.
  • the units 201 to 205, the encoder 32 and the decoder 31 belong to the MAC core 20
  • the system of which an example is given for illustrative purposes in FIG. 3 thus comprises:
  • a single component comprises the MAC core 20 is, for example, the programmable component type (eg PGA (or "Programmable Gate Array”), PLD (or “Programmable Logic Device”), dedicated component or ASIC (of the English “Application Specifies Integrated Circuit” or “integrated circuit for specific application” in French) or microcontroller
  • the invention has the advantage of a very compact bus connecting several masters to the In fact, according to the state of the art, to guarantee a level of bus efficiency inside a component, the bus is divided into complete sub-buses (with data, addresses and controls), each of the sub-buses being assigned to a master.
  • the MAC CPU 22 and the MAC core 20 are in the same component.
  • the component comprising the MAC core 20 and, if applicable, the MAC CPU 22 also comprises the memory 30.
  • the MAC CPU 22, the units 201 and 202, the module 206, the encoder 32 and the decoder 31 are all or in part in separate components.
  • the bus 10 is connected to two slave memories.
  • the bus 10 can be connected to more slaves.
  • Figure 4 shows the bus 10 with some masters (the unit 22 and the encoder 32) and slave (the memory 30 and another memory 301 to better view shared connections or not).
  • the unit 22 (respectively 32) is connected to the referee 13 in the master to referee direction via:
  • a write address bus 400 (respectively 410) (or "address-write") of 16 bits (or 20 bits according to a variant);
  • a write data bus 401 (respectively 41 1) (or “data-write”) of 32 bits (or 16 or 64 bits according to variants);
  • a write data size link 402 (respectively 412) (or "size-write”) over 2 bits;
  • a read address bus 404 (respectively 414) (or "address-read") of 16 bits (or 20 bits according to a variant);
  • a read data size link 405 (respectively 415) (or “size-write”) over 2 bits; and a read request link 406 (respectively 416) (or
  • the unit 22 (respectively 32) is connected to the referee 13 in the referee direction to the secondary master device, via:
  • a read data bus 407 (or "data-read") of 32 bits (or 16 or 64 bits according to variants) shared by all the masters connected to the bus 13.
  • a bus access authorization link connects a secondary master device to the arbitrator 13; in this case, a secondary master device can access to the bus write and read simultaneously if the master device master does not take control.
  • a master device can also access the write bus (respectively read) at the same time as the main master device accesses the read bus
  • the types of access by the secondary master device and the main master device being different.
  • two bus access authorization links connect a secondary master device to the arbiter 13.
  • two secondary master peripherals can access to the bus simultaneously, one in writing and the other in reading.
  • This variant has the advantage of clarifying access to the bus and allow faster access and / or higher rates.
  • the slave 301 (respectively 30) is connected to the referee 13 in the referee to slave direction via:
  • a write address bus 420 (or “address-write”) shared by all the slaves connected to the bus 13, of 16 bits (or 20 bits according to a variant);
  • a write data bus 421 (or “data-write”) shared by all the slaves, of 32 bits (or 16 or 64 bits according to variants);
  • a write data size link 423 (respectively 433) (or “size-write”) over 2 bits; a read address bus 422 (or “address-read”) shared by all the slaves, of 16 bits (or 20 bits according to a variant);
  • a read data size link 424 (respectively 434) (or “size-read”) on 2 bits;
  • the slaves 30 and 301 are connected to the referee 13 in the slave-to-referee direction, via a read data bus 425 (respectively 435) (or “data-read") of 32 bits (or 16 or 64 bits according to variants).
  • the data size signals 402, 412, 405, 415, 423, 433, 424 and 434 make it possible to define several data sizes conveyed on the bus 10.
  • three predefined values of Data size is possible, for example: 8, 16 and 32 bits.
  • the data bus comprises more than 32 bits (for example, 64 or 128 bits), the predefined values are then chosen according to the size of the bus (for example, for a 64-bit bus, four data size values, namely 8, 16, 32 and 64 bits, can be predefined).
  • the predefined values follow an arithmetic progression of factor 2 (a predefined value being equal to twice the previous one).
  • the predefined values do not follow an arithmetic progression and may be arbitrary while remaining smaller than or equal to the size of the data bus.
  • the data is coded in a fixed size and the data size signals (and the corresponding links) are omitted.
  • the arbiter 13 is, for example, implemented in the form of an electronic circuit, a programmable circuit, an ASIC or a microcontroller or microprocessor. Bus cabling identifies the highest priority CPU master (or primary master device), masters of the same priority (or secondary master devices), and slaves.
  • the bus 10 comprises other signals such as the clock (or CLK) and reset (or reset) signals which are connected to all the peripherals connected to the bus and to the arbiter 13.
  • the clock signal n ' is not shown in the figures to ensure readability.
  • FIG. 5 illustrates a timing diagram during data exchanges on the bus 10 according to an embodiment where read and write operations of data can be simultaneous.
  • a read operation and a simultaneous write operation are well suited to the masters that allow these operations (for example, masters who have direct access to memory or DMA (Direct Memory Access) in transmission and reception paired).
  • DMA Direct Memory Access
  • All the signals are synchronous with a clock signal 50.
  • the write address signals 51 are activated at the same time as the data 52 for the master which has received authorization from access via the corresponding signal "bus grant". These signals remain valid during a clock cycle.
  • a master requests (signal 53 "read-enable") and obtains access to the bus on a rising edge of the clock signal 50.
  • the corresponding data (for example provided by the slave) are presented in the cycle of next clock (signal 55), a read access (signal 54) being granted by the referee 13.
  • the bus 10 is separated into two separate buses which function respectively for reading and writing.
  • the invention allows high rates on the physical layer.
  • data rates on the physical layer greater than 100 Mbps with a 32-bit data bus.
  • the read / write instantaneous rate can reach 2.56 Gbit / s.
  • the clock can be clocked at much higher speeds (for example 80 MHz).
  • the flows are then increased proportionally.
  • the maximum latency for accessing the bus is equal to the product of the number of secondary master devices by the number of clock ticks per cycle.
  • FIG. 6 illustrates a timing diagram during data exchanges on the bus 10 according to an alternative embodiment of the invention, the reading and writing operations being done sequentially and not simultaneously.
  • the elements 51 and 52 are common to Figures 5 and 6 and have the same references. They are therefore not described further.
  • the data reading signal at a specific address 63 is implemented only when the bus is free to read.
  • the bus arbitrator manages in a decorrelated manner the read accesses and the write accesses. Access to the bus is alternately read and write. According to an alternative embodiment of the invention, the read accesses and the write accesses do not occur alternately and the priority between reading and writing is defined in any manner, for example, random, or on the contrary according to a law. predefined, in particular according to the order of arrival and / or according to the priority of the secondary master device requesting access to the bus.
  • FIG. 7 presents a bus access algorithm 10 (which can for example be implemented in VHDL when the arbiter is implemented in a programmable component).
  • the arbitrator 13 is initialized, the output signals are inactivated and the internal registers (in particular a current master register) are also initialized. Then, read / write cycles of data are implemented. These cycles are synchronized to the clock signal, an elementary loop in the flowchart corresponding to a clock cycle.
  • the elementary loop begins with a test 71, during which the arbitrator 13 checks whether the central unit 22 wishes access (write-enable signal or read-enable enabled). If so, access is given to the central unit 22 during a step 72 by activation of the signal 408.
  • the central unit 22 has not requested access, and access may be given to another master.
  • the arbitrator 13 manages cycles so that each of the secondary masters of the same priority have equitable access to the bus 10. Also, the arbitrator 13 defines an ordered sequence among the secondary master peripherals. Thus, during a step 73, it checks whether it has reached the end of the sequence. If so, during a step 740, it resets the sequence and considers the first secondary master device as the current master. Otherwise, during a step 741, it goes to the next secondary master device in the sequence that becomes the current master.
  • the ordered sequence is fixed by being defined a first time in a random manner or according to the types of masters.
  • the ordered sequence is randomly changed in step 740.
  • master brewing can be achieved for greater equity.
  • the ordered sequence is modified during step 740 as a function of external events (for example, as a function of a command transmitted by the main master or a secondary master).
  • the arbitrator 13 checks whether the current master M has requested access to the bus. If so, it gives the bus access to the current master during a step 76. If not, it determines a master Mj among the masters who requested access to the bus during a step of arbitration 77 and gives access to the bus during a step 78.
  • the arbitration step 77 allows in particular to increase the bandwidth when the current master does not request access to the bus.
  • the masters being connected to the bus according to their priority, for example, in a purely electronic implementation, with pins assigned according to the respective priority of the masters);
  • an access according to a logical order dependent on the previous accesses for example, access to a master which generally requests access following the access of another given master
  • the logical order being for example tabulated
  • the algorithm preferably corresponds to a hardware implementation using logic gates.
  • the write access signals can be summarized as follows:
  • bus-grant (Mp) write-enable (Mp)
  • bus-grant (M) wte-enable (Mp)). w ⁇ te-enable (M);
  • Mp represents the main master (here unit 22), M the current master and Mj the master determined by an arbitration step;
  • bus-grant (X) represents the bus access authorization signal for an X master, write-enable (X), the bus access request signal by a master X and w ⁇ te-enable (X ) the opposite signal (obtainable with an inverting door).
  • the operator " Represents a logical multiplication and can be implemented using an AND gate.
  • Step 73 can be implemented using a counter.
  • the above operations are synchronized to the clock.
  • FIGS. 8 and 9 show the successive accesses to the bus 10. More precisely, FIG. 8 corresponds to a simplified implementation that does not provide access to the bus when neither the MAC CPU nor the current master requests the bus (II n there are no steps 77 and 78 in this case).
  • FIG. 9 shows the successive accesses to the bus 10 according to the algorithm presented with reference to FIG. 7, implementing an arbitration phase when neither the MAC CPU nor the current master requests the bus.
  • the first column represents the masters (the MAC CPU has a parameter ⁇ / equal to i).
  • the master with N equal to 5 is the current master does not request access to the bus.
  • the secondary master device with N equal to 2 is the current master, it requests and obtains access to the read bus (symbolized by the letter R).
  • the unit 22 requests read access and obtains it, prohibiting read access for the secondary master device with N equal to 3.
  • the referee gives the hand to the unit 22 in priority or, if the unit 22 does not request access to the bus, to the current master ( ⁇ / taking the successive values of the ordered sequence (2, 3, 4, 5, 6, 7)) in writing (symbolized by the letter W) or in reading.
  • the table of FIG. 9 successively comprises the following lines:
  • the secondary master device selected by the arbitrator during the selection step, the main master device not requiring access to the bus;
  • the master device having access to the bus for reading
  • the MAC CPU requests the read hand and thus obtains it.
  • the master selected with N equal to 3 does not request the hand; the master with N being 6 being the only master to request access to the bus, during the arbitration step, he gets access to the bus read.
  • the master with N equaling 2 requests access to the bus both in writing and writing and obtains this access, the master selected with N equaling 4 not requiring access to the bus.
  • the master master and the secondary master devices with N equaling 7 and 5 request access to the bus.
  • the master master thus obtains access to the bus.
  • the secondary master device with N equaling 3 also requests access to the bus.
  • the referee selects the master with N equal to 5. The latter thus obtains access to the bus.
  • the master selected with N equaling 6 not requesting access to the bus the referee, during an arbitration step between the masters with N equaling 3 and 7 gives the hand at the device with N worth 7. Then, during a cycle 907, the master with N equal to 3 has access to the bus.
  • the arbitration phase makes it possible to use the time slots (or "time slots" in English) when the main master and the secondary master do not request access to the bus.
  • FIG. 10 illustrates the structure of the arbiter 13, the read accesses and the write accesses to the bus being decorrelated.
  • Referee 13 includes:
  • a write-size multiplexer 133 a read access selection module 134;
  • the access selection module 130 receives as inputs the signals 403, 413 (respectively 406, 416) write access request write-enaalt from the different masters. It implements the algorithm of Figure 7 to give access to one of the masters and activates, where appropriate:
  • one of the access authorization signals (bus-grant) 4010 to 4110 (respectively 409 to 419) associated with the master having received the access authorization;
  • the address multiplexer 131 receives the address signals 400, 410 (respectively 404, 414) from the different masters. It outputs the address signals 420 (respectively 422) as a function of the control signal 138 (respectively 139) it receives.
  • the address multiplexer 132 also generates a control signal 1390 depending on the device (slave) including the selected address.
  • the data multiplexer 132 receives the data signals 401, 41 1 (respectively 425, 435) from the different slaves. It outputs the data signals 421 (data-write) (respectively 407 (data-read)) as a function of the control signal 138 (respectively 1390) that it receives.
  • the bus accepts only a slave adapted to provide read data.
  • the module 136 and the signal 1390 (and the means generating it) are omitted.
  • the size multiplexer 133 receives the signals of size 402, 412 (respectively 404, 414) from the different masters. It outputs the signals of size 433
  • control signal 138 (respectively 424) as a function of the control signal 138
  • FIG. 11 illustrates a structure of an arbitrator 14 according to an alternative embodiment of the invention, corresponding to an implementation in which read and / or write accesses are authorized for the main master device and / or only one secondary master device during a given cycle.
  • Referee 14 is similar to the referee with the exception of modules 131 and 134 which are replaced by a single address selection module 140, the bus being unable to support writing and simultaneous reading.
  • Each master receives a read / write access authorization signal 141, 142 which is dedicated to it.
  • the other elements are similar, have the same references and are not described further.
  • the module 140 receives the write access request authorization signals 403, 413 and read 406, 416 from the different masters connected to the bus. It generates:
  • control signals 138 and 139 as a function of the master thus determined and the type or types of access (write or read) requested by the master thus determined.
  • the invention is not limited to the embodiments described above.
  • the invention is compatible with numbers and functions of masters and / or slave different from those described above.
  • the number of data bit, address, data size transmitted in parallel on the bus is not fixed and may take other values than those indicated above according to various embodiments of the invention.
  • These signals may in particular be implemented by a CPU (of the English “Central Process Unit” or central processing unit).
  • the invention allows a great flexibility of use, facilitates a reconfiguration of a base core for adaptation to a particular application and / or a specific physical layer and is well suited to a modular design.
  • the invention is also compatible with a completely electronic implementation (in the form of components) or, conversely, partly with software (for example in the case of "radio software” (or “software radio” in English that can be Reconfigured easily according to the context.)
  • the invention is applicable to many fields, and in particular in the field of wired or wireless communications (including an interface with a physical layer of the IEEE 802.16 type, IEEE802.15.3 (UWB )).

Abstract

Selon l'invention, un bus (10) est destiné à être relié à un maître principal (22) à des maîtres secondaires (32), le bus étant adapté à la transmission de données entre les périphériques. Afin de garantir un débit minimal et/ou une latence maximale entre les maîtres secondaires lorsque le maître principal utilise une faible fraction du temps disponible sur le bus, le maître principal a la plus forte priorité et comprend des moyens d'accès à un médium sans fil, le procédé d'accès au bus comprenant : - une étape d'autorisation d'accès au bus au maître principal lorsqu'il demande l'accès au bus ; et- une étape de sélection d'accès au bus à un des maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus.

Description

Procédé d'accès à un bus de transmission de données, dispositif et système correspondant.
1. Domaine de l'invention. La présente invention concerne le domaine de l'électronique et de l'informatique et plus particulièrement les bus à hautes performances déterministes.
2. Arrière plan technologique. Selon l'état de la technique, un bus local de processeur (ou PLB de l'anglais «Processor Local Bus ») décrit en regard de la figure 9 dans la demande de brevet US687905 déposé par la société International Business Machines Corporation comprend plusieurs esclaves et maîtres. Aussi, une priorité d'accès au bus est définie pour les maîtres. Dans le PLB, le maître qui a la plus petite priorité a accès au bus uniquement lorsque un autre maître ayant accès au bus le libère.
Cette technique présente l'inconvénient de ne pas garantir la bande passante et la latence pour chaque maître. Aussi, ce bus n'est pas adapté aux communications de bas niveau (notamment de type couche physique (ou PHY en abrégé) ou d'accès un canal de communication (ou MAC en abrégé de l'anglais « Media Access Control »). Il n'est pas non plus adapté à un partitionnement entre des ressources matérielles et logicielles.
3. Résumé de l'invention. L'invention a pour but de pallier ces inconvénients de l'art antérieur.
Plus particulièrement, l'invention a pour objectif de permettre un bus déterministe destiné à être relié à un périphérique maître principal de plus forte priorité et à des périphériques maîtres secondaires et donc de garantir un débit minimal et/ou une latence maximale pour un maître secondaire au bus, lorsque le maître principal utilise une faible fraction du temps disponible sur le bus.
A cet effet, l'invention propose un procédé d'accès à un bus destiné à être relié à un périphérique maître principal de plus forte priorité et à des périphériques maîtres secondaires, le bus étant adapté à la transmission de données à destination et/ou en provenance des périphériques. Selon l'invention, le procédé comprend : - une étape d'autorisation d'accès au bus au périphérique maître principal lorsqu'il demande l'accès au bus ;
- une étape de sélection d'accès au bus à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus.
Selon une caractéristique préférée, l'étape de sélection comprend :
- une étape d'attribution d'un jeton tournant à chacun des périphériques maîtres secondaires, - une étape d'autorisation d'accès au bus au périphérique maître secondaire qui a le jeton, lorsqu'il demande l'accès au bus. Avantageusement, l'étape de sélection comprend une étape d'arbitrage pour l'accès au bus entre les périphériques maîtres secondaires lorsque le périphérique secondaire qui a le jeton ne demande pas l'accès au bus.
Selon d'autres caractéristiques, l'étape d'arbitrage comprend :
- une étape de sélection aléatoire d'un périphérique secondaire demandant l'accès au bus ;
- une étape de sélection du dernier périphérique secondaire ayant eu l'accès au bus qui demande l'accès au bus ;
- une étape de sélection du périphérique secondaire qui demande l'accès au bus et qui n'a pas eu accès au bus depuis le plus longtemps ; ou
- une étape de sélection du périphérique secondaire qui demande l'accès au bus depuis le plus longtemps.
Selon une caractéristique particulière, le procédé comprend une étape de sélection du type d'accès en écriture ou en lecture.
Selon une autre caractéristique particulière, le procédé comprend
- une étape d'autorisation d'accès au bus en lecture au périphérique maître principal lorsqu'il demande l'accès au bus en lecture ;
- une étape de sélection d'accès au bus en lecture à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus en lecture ; - une étape d'autorisation d'accès au bus en écriture au périphérique maître principal lorsqu'il demande l'accès au bus en écriture ; et - une étape de sélection d'accès au bus en écriture à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus en écriture.
Selon une caractéristique avantageuse, le bus comprend au moins un périphérique esclave, le procédé comprenant un accès au bus en lecture et/ou en écriture à un périphérique autorisé pour transmettre des données à destination ou en provenance du ou au moins un des périphériques esclaves.
L'invention concerne également un dispositif d'accès à un bus destiné à être relié à un périphérique maître principal de plus forte priorité et à des périphériques maîtres secondaires, le bus étant adapté à la transmission de données entre les périphériques ; avantageusement, le dispositif comprend :
- des moyens d'autorisation d'accès au bus au périphérique maître principal lorsqu'il demande l'accès au bus ; et
- des moyens de sélection d'accès au bus à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus.
L'invention se rapporte aussi à un système qui comprend : - un bus ;
- un périphérique maître principal de plus forte priorité relié au bus ;
- des périphériques maîtres secondaires de même priorité et reliés au bus ; et - un dispositif d'accès au bus tel que précisé précédemment selon l'invention ; le bus étant adapté à la transmission de données entre les périphériques.
Avantageusement, le système comprend au moins un périphérique esclave relié au bus, le ou les périphériques esclaves ne pouvant pas demander l'accès au bus.
Selon une caractéristique particulière, le ou les périphériques sont des mémoires.
Avantageusement, le périphérique maître principal comprend un microprocesseur. Selon une caractéristique particulière, le périphérique maître principal comprend des moyens d'accès à un médium sans fil. Selon une caractéristique préférée, le système comprend un composant qui comprend le bus et au moins un des périphériques maîtres secondaires et, éventuellement, le périphérique maître principal.
4. Liste des figures.
L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels :
- la figure 1 est un synoptique très schématique d'un système de communication selon un mode particulier de réalisation de l'invention ;
- la figure 2 représente schématiquement la structure en couches du système de la figure 1 ;
- la figure 3 détaille le système des figures 1 et 2 appliqué à un dispositif échangeant des données avec une couche d'accès au médium ;
- la figure 4 présente un bus mis en oeuvre dans le système de la figure 1 ;
- les figures 5 et 6 illustrent des chronogrammes lors d'échanges de données sur le bus de la figure 4 ;
- la figure 7 présente un algorithme d'accès au bus de la figure 4 ;
- les figures 8 et 9 présentent des exemples d'accès au bus de la figure 4 ; - les figures 10 et 1 1 illustrent des arbitres adaptés à gérer les accès sur le bus de la figure 4 ; et
- la figure 12 présente un maître connecté au bus de la figure 4.
5. Description détaillée de l'invention. La figure 1 présente schématiquement un système de communication 1 selon un mode particulier de réalisation de l'invention. Le système 1 comprend :
- un bus 10 ;
- un arbitre 13 gérant les accès au bus 10 ; - un maître périphérique principal 100 ayant la plus grande priorité pour accéder au bus 10 ; - des maîtres périphériques secondaires 1 10 à 1 12 connectés au bus 10 ; et
- des esclaves 120 à 123.
Les maîtres 1 10 à 1 12 sont adaptés à initier des transferts de données en lecture et/ou écriture sur le bus 10. Ils ont une priorité moindre que le maître 100 pour accéder au bus. Avantageusement, le nombre de maîtres n'est pas limité et peut prendre une valeur quelconque (par exemple,
3, 10 ou 100). Plus le nombre de maîtres est élevé, plus les autorisations d'accès au bus doivent être gérées au mieux, le temps et la bande passante alloués à chacun des maîtres étant plus faibles en moyenne. L'invention permet notamment une fluidité dans les accès lorsque le nombre de maîtres est élevé.
Les esclaves 120 à 123 reçoivent et/ou transmettent des données sur le bus 10 et ne peuvent pas initier de transferts de données. D'une manière générale, selon l'invention, au moins un esclave est connecté au bus 10.
La figure 2 représente schématiquement la structure en couches du système 1. Plus précisément, le système 1 met en oeuvre au moins trois couches comprenant : - une couche physique ou PHY ;
- une couche de contrôle d'accès au médium ou MAC (de l'anglais « Media Access Control ») ; et
- une couche applicative.
Le médium est, par exemple, une couche de communication sans fil (par exemple infra-rouge, radio (notamment selon les normes WiFi,
IEEE802.1 1 , IEEE 802.16 et/ou IEEE 802.15) ou par courants porteurs) ou filaire. Le débit des données transférées peut notamment atteindre quelques centaines de Mégabits.
La figure 2 présente notamment une répartition entre les éléments matériels (ou composants électronique) et logiciels (ou « hardware/software partitioning » en anglais). Le système 1 comprend notamment :
- un coeur MAC 20 comprenant le bus 10, le coeur MAC étant relié à un médium de transmission de données (couche physique) et/ou à une couche applicative) ; - une unité centrale MAC ou MAC CPU (ou « Central Processing
Unit » en anglais) 22 ;
- une couche applicative 23 ; et - une mémoire vive ou SDRAM 24 qui est reliée à la couche 23 via une liaison bidirectionnelle 28.
La couche physique 20 et la couche MAC sont reliées par une interface PHY-MAC 25 qui comprend : - une liaison bidirectionnelle 252 de contrôle entre la couche 20 et l'unité 22 ; et
- deux liaisons monodirectionnelles 250 et 251 de transmission de données entre la couche 20 et le coeur MAC 20.
La couche applicative 23 est reliée au coeur 20 et à l'unité 22 via respectivement le bus 10 (interface 26) pour la transmission de données et une liaison bidirectionnelle 270 de contrôle.
Le bus 10 est relié à plusieurs maîtres de même priorité (non représentés sur la figure 2), à au moins un esclave (non représenté sur la figure 2) et à l'unité 22 qui est le périphérique maître principal du bus avec une priorité plus forte que les autres maîtres, dit périphériques maîtres secondaires. Ainsi, l'unité 22 est prioritaire pour l'accès au bus 10 (contrairement à l'état de l'art où un CPU a une priorité plus faibles que des maîtres pour accéder à un bus).
La figure 3 détaille le système 1 appliqué à un dispositif échangeant des données avec la couche MAC.
Selon le système illustré en regard de la figure 3, le bus 10 dont les accès sont contrôlés par l'arbitre 13 relient :
- une interface 220 reliant le bus 10 à un bus 221 interne à l'unité 22, l'interface 220 et le bus 221 appartenant au MAC CPU 22 ;
- une mémoire esclave 30 ;
- deux unités de contrôle de la couche physique respectivement en émission 201 (relié à la liaison 251 ) et en réception 202 (reliée à la liaison 250); - deux unités DMA respectivement d'émission 321 et de réception 322 dans un codeur de sécurité 32 (chiffrant, par exemple, des données) ;
- deux unités DMA respectivement d'émission 31 1 et de réception 312 dans un décodeur de sécurité 31 (déchiffrant, par exemple, des données) ; et
- deux unités DMA respectivement d'émission 205 et de réception 203 reliés tous deux à une interface 204 maître d'un bus d'application 33, les unités 203 et 205 ainsi que l'interface maître 204 appartenant à un module 206 d'interface avec l'application.
Le bus 221 est un bus de contrôle des autres unités du système (par exemple pour une initialisation). Il est mis en oeuvre, par exemple, sous forme de la partie dite APB d'un bus AMBA ®). Il est relié à liaison 252.
Les unités 201 à 205, le codeur 32 et le décodeur 31 appartiennent au coeur MAC 20
Le système dont un exemple est donné à titre illustratif en figure 3 comprend ainsi :
- un périphérique maître principal correspondant au MAC CPU 22 ;
- huit maîtres 201 à 205, 321 , 322, 31 1 , 312 de même priorité (correspondant par exemple aux maîtres 1 10 à 112 de la figure 1 ) ou périphériques maîtres secondaires ; et
- un esclave 30.
L'invention permet avantageusement un partitionnement entre des ressources matérielles et logicielles, ce partitionnement pouvant se faire suivant différentes configurations matérielles. En effet, selon un mode préféré de réalisation, un seul composant comprend le coeur MAC 20 est, par exemple, du type composant programmable (par exemple PGA (ou « Programmable Gâte Array »), PLD (ou « Programmable Logic Device »), composant dédié ou ASIC (de l'anglais « Application Spécifie Integrated Circuit » ou « circuit intégré pour application spécifique » en français) ou microcontrôleur. Ainsi, l'invention présente l'avantage d'un bus très compact reliant plusieurs maîtres à l'intérieur d'un composant. En effet, selon l'état de l'art, pour garantir un niveau d'efficacité de bus à l'intérieur d'un composant, le bus est divisé en sous-bus complets (avec données, adresses et contrôles) distincts, chacun des sous-bus étant affecté à un maître.
Selon une autre variante, le MAC CPU 22 et le coeur MAC 20 sont dans un même composant.
Selon encore une variante, le composant comprenant le coeur MAC 20 et, le cas échéant, le MAC CPU 22 comprend également la mémoire 30. Selon d'autres variantes, le MAC CPU 22, les unités 201 et 202, le module 206, le codeur 32 et le décodeur 31 sont tous ou en partie dans des composants séparés.
Selon une variante de réalisation non représentée, le bus 10 est relié à deux mémoires esclaves. Bien entendu, le bus 10 peut être relié à plus d'esclaves.
La figure 4 présente le bus 10 avec quelques maîtres (l'unité 22 et le codeur 32) et esclave (la mémoire 30 et une autre mémoire 301 permettant de mieux visualiser les connexions partagées ou non). L'unité 22 (respectivement 32) est reliée à l'arbitre 13 dans le sens maître vers arbitre via :
- un bus d'adresses en écriture 400 (respectivement 410) (ou « address-write ») de 16 bits (ou 20 bits selon une variante) ;
- un bus de données en écriture 401 (respectivement 41 1 ) (ou « data-write ») de 32 bits (ou 16 ou 64 bits selon des variantes) ;
- une liaison de taille de données en écriture 402 (respectivement 412) (ou « size-write ») sur 2 bits ;
- une liaison de requête d'écriture 403 (respectivement 413) (ou « write-enable ») sur 1 bit ;
- un bus d'adresses en lecture 404 (respectivement 414) (ou « address-read ») de 16 bits (ou 20 bits selon une variante) ;
- une liaison de taille de données en lecture 405 (respectivement 415) (ou « size-write ») sur 2 bits ; et - une liaison de requête de lecture 406 (respectivement 416) (ou
« write-enable ») sur 1 bit.
L'unité 22 (respectivement 32) est reliée à l'arbitre 13 dans le sens arbitre vers périphérique maître secondaire, via:
- une liaison d'autorisation d'accès au bus 408 (respectivement 418) (ou « bus-grant ») ; et
- un bus de données en lecture 407 (ou « data-read ») de 32 bits (ou 16 ou 64 bits selon des variantes) partagé par tous les maîtres connectés au bus 13.
Selon le mode de réalisation décrit en regard de la figure 4, une liaison d'autorisation d'accès au bus relie un périphérique maître secondaire à l'arbitre 13 ; dans ce cas, un périphérique maître secondaire peut accéder au bus en écriture et en lecture simultanément si le périphérique maître principal ne prend pas la main.
Selon une variante de l'invention, un périphérique maître peut également accéder au bus en écriture (respectivement en lecture) en même temps que le périphérique maître principal accède au bus en lecture
(respectivement en écriture), les types d'accès par le périphérique maître secondaire et le périphérique maître principal étant différents.
Selon une autre variante, deux liaisons d'autorisation d'accès au bus, respectivement en lecture 409 à 419 et en écriture 4010 à 41 10, relient un périphérique maître secondaire à l'arbitre 13. Dans ce cas, deux périphériques maîtres secondaires peuvent accéder au bus simultanément, l'un en écriture et l'autre en lecture. Cette variante présente l'avantage de clarifier les accès au bus et de permettre des accès plus rapides et/ou à plus fort débits. L'esclave 301 (respectivement 30) est relié à l'arbitre 13 dans le sens arbitre vers esclave via :
- un bus d'adresses en écriture 420 (ou « address-write ») partagé par tous les esclaves connectés au bus 13, de 16 bits (ou 20 bits selon une variante) ; - un bus de données en écriture 421 (ou « data-write ») partagé par tous les esclaves, de 32 bits (ou 16 ou 64 bits selon des variantes) ;
- une liaison de taille de données en écriture 423 (respectivement 433) (ou « size-write ») sur 2 bits ; - un bus d'adresses en lecture 422 (ou « address-read ») partagé par tous les esclaves, de 16 bits (ou 20 bits selon une variante) ;
- une liaison de taille de données en lecture 424 (respectivement 434) (ou « size-read ») sur 2 bits ; Les esclaves 30 et 301 sont reliés à l'arbitre 13 dans le sens esclave vers arbitre, via un bus de données en lecture 425 (respectivement 435) (ou « data-read ») de 32 bits (ou 16 ou 64 bits selon des variantes).
Les signaux de taille de données 402, 412, 405, 415, 423, 433, 424 et 434 permettent de définir plusieurs tailles de données véhiculées sur le bus 10. Ainsi, avec une taille de données codée sur 2 bits, trois valeurs prédéfinies de taille de données sont possibles, par exemple : 8, 16 et 32 bits. Selon une variante, le bus de données comprend plus que 32 bits (par exemple 64 ou 128 bits), les valeurs prédéfinies sont alors choisies en fonction de la taille du bus (par exemple, pour un bus à 64 bits, quatre valeurs de taille de données, soit 8, 16, 32 et 64 bits, peuvent être prédéfinies). Ici, préférentiellement, les valeurs prédéfinies suivent une progression arithmétique de facteur 2 (une valeur prédéfinie étant égale au double de la précédente). Selon d'autres variantes, les valeurs prédéfinies ne suivent pas une progression arithmétique et peuvent être quelconques en restant inférieure ou égale à la taille du bus de données.
Selon une variante de réalisation, les données sont codées suivant une taille fixe et les signaux de tailles de données (et les liaisons correspondantes) sont omis.
L'arbitre 13 est, par exemple, mis en oeuvre sous forme de circuit électronique, de circuit programmable, d'ASIC ou de microcontrôleur ou microprocesseur. Le câblage du bus permet d'identifier le maître CPU de priorité la plus forte (ou périphérique maître principal), les maîtres de même priorité (ou périphériques maîtres secondaires) et les esclaves.
Le bus 10 comprend d'autres signaux tel que les signaux d'horloge (ou CLK) et de réinitialisation (ou reset) qui sont reliés à tous les périphériques connectés au bus et à l'arbitre 13. Le signal d'horloge n'est pas représenté sur les figures afin d'en assurer la lisibilité.
La figure 5 illustre un chronogramme lors d'échanges de données sur le bus 10 selon un mode de réalisation où des opérations de lecture et d'écriture de données peuvent être simultanées. Une opération de lecture et une opération d'écriture simultanées sont bien adaptées aux maîtres qui permettent ces opérations (par exemple, maîtres qui ont des accès directs à la mémoire ou DMA (de l'anglais « Direct Memory Access ») en émission et en réception appairés).
Tous les signaux sont synchrones d'un signal d'horloge 50. Sur un premier front montant d'horloge, les signaux d'adresse en écriture 51 sont activés en même temps que les données 52 pour le maître qui a reçu une autorisation d'accès via le signal correspondant « bus grant ». Ces signaux restent valides pendant un cycle d'horloge.
Simultanément, un maître demande (signal 53 « read-enable ») et obtient l'accès au bus sur un front montant du signal d'horloge 50. Les données correspondant (par exemple fournies par l'esclave) sont présentées au cycle d'horloge suivant (signal 55), un accès en lecture (signal 54) étant accordé par l'arbitre 13. Selon une variante de réalisation de l'invention, le bus 10 est séparé en deux bus distincts qui fonctionnent respectivement en lecture et en écriture.
L'invention permet des débits élevés sur la couche physique. A titre illustratif, pour une horloge de bus cadencée à 40 MHz (pour une mise en oeuvre sous forme de FPGA), des débits sur la couche physique supérieurs à 100Mbit/s avec un bus de données de 32 bits. Le débit instantané en lecture et écriture peut atteindre 2,56 Gbit/s. Avec une mise en oeuvre sous forme d'ASIC, l'horloge peut être cadencée à des vitesses très supérieure (par exemple 80 MHz). Les débits sont alors augmentés proportionnellement. Pour un périphérique maître secondaire, la latence maximale pour accéder au bus (hors accès du maître principal) est égal au produit du nombre de périphériques maîtres secondaires par le nombre de coups d'horloge par cycle. La figure 6 illustre un chronogramme lors d'échanges de données sur le bus 10 selon une variante de réalisation de l'invention, les opérations de lecture et d'écriture se faisant séquentiellement et non simultanément.
Les éléments 51 et 52 sont communs aux figures 5 et 6 et portent les mêmes références. Ils ne sont donc pas décrits davantage. Le signal de lecture de données à une adresse spécifique 63 est mis en oeuvre uniquement lorsque le bus est libre en lecture.
Selon le mode de réalisation correspondant au chronogramme de la figure 6, l'arbitre du bus gère de façon décorrélée les accès en lecture et les accès en écriture. Les accès au bus se font alternativement en lecture et en écriture. Selon une variante de réalisation de l'invention, les accès en lecture et les accès en écriture ne se font pas alternativement et la priorité entre lecture et écriture est définie d'une manière quelconque, par exemple, aléatoire, ou au contraire suivant une loi prédéfinie, notamment selon l'ordre d'arrivée et/ou selon la priorité du périphérique maître secondaire demandant un accès au bus.
La figure 7 présente un algorithme d'accès au bus 10 (qui peut par exemple mis en oeuvre en VHDL lorsque l'arbitre est implémenté dans un composant programmable).
Au cours d'une étape d'initialisation 70 correspondant à une activation du signal reset, l'arbitre 13 est initialisé, les signaux de sorties sont inactivés et les registres internes (notamment un registre de maître courant) sont également initialisés. Ensuite, des cycles de lecture/écriture de données sont mis en oeuvre. Ces cycles sont synchronisés sur le signal d'horloge, une boucle élémentaire dans l'organigramme correspondant à un cycle d'horloge.
La boucle élémentaire commence par un test 71 , au cours duquel l'arbitre 13 vérifie si l'unité centrale 22 souhaite un accès (signal write-enable ou read-enable activé). Dans l'affirmative, l'accès est donné à l'unité centrale 22 au cours d'une étape 72 par activation du signal 408.
Dans la négative, l'unité centrale 22 n'a pas demandé d'accès, et l'accès pourra être donné à un autre maître. L'arbitre 13 gère des cycles pour que chacun des maîtres secondaires de même priorité aient un accès équitable au bus 10. Aussi, l'arbitre 13 définit une séquence ordonnée parmi les périphériques maîtres secondaires. Ainsi, au cours d'une étape 73, il vérifie s'il a atteint la fin de la séquence. Si oui, au cours d'une étape 740, il réinitialise la séquence et considère le premier périphérique maître secondaire comme maître courant. Sinon, au cours d'une étape 741 , il passe au périphérique maître secondaire suivant dans la séquence qui devient le maître courant.
Selon un premier mode de réalisation de l'invention, la séquence ordonnée est fixe en étant définie une première fois de manière aléatoire ou en fonction des types de maîtres.
Selon une variante, la séquence ordonnée est modifiée aléatoirement au cours de l'étape 740. Ainsi, on peut obtenir un brassage des maîtres pour une plus grande équité. Selon une autre variante, la séquence ordonnée est modifiée au cours de l'étape 740 en fonction d'événements extérieurs (par exemple, en fonction d'une commande transmise par le maître principal ou un maître secondaire).
Ensuite, au cours d'une étape 75, l'arbitre 13 vérifie si le maître courant M a demandé un accès au bus. Dans l'affirmative, il donne l'accès au bus au maître courant au cours d'une étape 76. Dans la négative, il détermine un maître Mj parmi les maîtres qui ont demandé un accès au bus au cours d'une étape d'arbitrage 77 et lui donne accès au bus au cours d'une étape 78. L'étape d'arbitrage 77 permet notamment d'augmenter la bande passante lorsque le maître courant ne demande pas un accès au bus. Plusieurs stratégies d'arbitrage sont envisageables pour l'étape
77, notamment :
- une stratégie d'attribution aléatoire ; - un accès donné au dernier maître ayant eu accès au bus ;
- un accès en fonction du numéro de priorité des maîtres (les maîtres étant connectés au bus en fonction de leur priorité, par exemple, dans une mise en oeuvre purement électronique, avec des broches affectées en fonction de la priorité respective des maîtres);
- un accès en fonction d'un ordre logique dépendant des accès précédent (par exemple, accès à un maître qui généralement demande l'accès suite à l'accès d'un autre maître donné) (l'ordre logique étant par exemple tabulé) ;
- un accès en fonction du type (lecture ou écriture) d'accès demandé, une priorité étant donnée à l'un des deux types d'accès ; et/ou
- un accès au premier périphérique qui a demandé un accès au bus.
L'algorithme correspond préférentiellement à une mise en oeuvre matérielle à l'aide de portes logiques. On peut résumer les signaux d'accès en écriture de la manière suivante :
- bus-grant(Mp) = write-enable(Mp) - bus-grant(M) = wήte-enable(Mp)). wήte-enable(M);
- bus-grant(Mj) = write-enable(Mp).wήte-enable(M). write-enable(Mj) où :
- Mp représente le maître principal (ici l'unité 22), M le maître courant et Mj le maître déterminé par une étape d'arbitrage ; et
- où bus-grant(X) représente le signal d'autorisation d'accès au bus pour un maître X, write-enable(X), le signal de demande d'accès au bus par un maître X et wήte-enable(X) le signal opposé (pouvant être obtenu à l'aide d'une porte inverseuse). L'opérateur « . » représente une multiplication logique et peut être mise en oeuvre à l'aide d'une porte ET.
L'étape 73 peut-être mise en oeuvre à l'aide d'un compteur. Les opérations ci-dessus sont synchronisées sur l'horloge. Les figures 8 et 9 présentent les accès successifs au bus 10. Plus précisément, la figure 8 correspond à une mise en oeuvre simplifiée ne prévoyant pas d'accès au bus lorsque ni le MAC CPU ni le maître courant ne demande le bus (II n'a pas d'étapes 77 et 78 dans ce cas). La figure 9 présente les accès successifs au bus 10 selon l'algorithme présenté en regard de la figure 7 mettant en oeuvre une phase d'arbitrage lorsque ni le MAC CPU ni le maître courant ne demande le bus.
Selon la figure 8, on suppose que la séquence ordonnée est (2, 3, 4, 5, 6, 7).
Les éléments mentionnés dans la première ligne du tableau de la figure 8 représentent le maître courant en fonction du temps : des maîtres de même priorité sont numérotés avec un paramètre N prenant les valeurs 2 à
7. La première colonne représente les maîtres (le MAC CPU a un paramètre Λ/ égal a i ).
Au cours d'un premier cycle, le maître avec N valant 5 est le maître courant ne demande pas l'accès au bus.
Au cours d'un second cycle 80, le périphérique maître secondaire avec N valant 2 est le maître courant, il demande et obtient l'accès au bus en lecture (symbolisé par la lettre R).
Au cours d'un troisième cycle 81 , l'unité 22 demande l'accès en lecture et l'obtient, interdisant un accès en lecture pour le périphérique maître secondaire avec N valant 3.
Au cours des cycles suivants 82, 83, 84..., l'arbitre accorde la main à l'unité 22 en priorité ou, si l'unité 22 ne demande pas l'accès au bus, au maître courant (Λ/ prenant les valeurs successives de la séquence ordonnée (2, 3, 4, 5, 6, 7)) en écriture (symbolisé par la lettre W) ou en lecture.
On note qu'il peut y avoir un accès en écriture et un accès en lecture simultané par le maître courant et/ou l'unité 22 (certains maîtres mais non nécessairement tous supportent peuvent supporter des accès en lecture et en écriture). C'est le cas, par exemple, au cours d'un cycle 85, où l'unité
22 a accès au bus en écriture et un maître courant (N valant 6) a accès au bus en lecture (correspondant à la variante où un tel accès est possible). C'est également le cas, au cours d'un cycle 86, où le périphérique maître secondaire avec N valant 2 accède au bus à la fois en lecture et en écriture.
Selon la figure 9, on suppose que la séquence ordonnée est également est (2, 3, 4, 5, 6, 7).
Le tableau de la figure 9 comprend successivement les lignes suivantes :
- l'indication que le périphérique maître principal demande le bus avec le type d'accès requis écriture LVou lecture R ; - la valeur du paramètre N correspondant aux périphériques maîtres secondaire demandant l'accès au bus en lecture ;
- la valeur du paramètre N correspondant aux périphériques maîtres secondaire demandant l'accès au bus en écriture ; - le périphérique maître secondaire sélectionné par l'arbitre lors de l'étape de sélection, le périphérique maître principal ne demandant pas l'accès au bus ;
- le périphérique maître ayant l'accès au bus en lecture ; et
- le périphérique maître ayant l'accès au bus en écriture Dans l'exemple donné ici, on suppose que si le périphérique maître principal demande la main, un périphérique maître secondaire ne peut pas avoir accès au bus.
Au cours d'un premier cycle 900, deux périphériques maîtres secondaires correspondant à N valant respectivement 2 et 6 demandent un accès en lecture. L'arbitre ayant sélectionné le maître avec N valant 2 lui donne donc l'accès au bus.
Au cours d'un second cycle 901 , la MAC CPU demande la main en lecture et l'obtient donc.
Au cours d'un troisième cycle 902, le maître sélectionné avec N valant 3 ne demande pas la main ; le maître avec N valant 6 étant le seul maître à demander l'accès au bus, au cours de l'étape d'arbitrage, il obtient l'accès au bus en lecture.
Au cours d'un quatrième cycle 903, le maître avec N valant 2 demande accès au bus à la fois en écriture et en écriture et obtient cet accès, le maître sélectionné avec N valant 4 ne demandant pas l'accès au bus.
Au cours d'un cinquième cycle 904, le maître principal et les périphériques maîtres secondaires avec N valant 7 et 5 demandent l'accès au bus. Le maître principal obtient donc l'accès au bus. Au cours d'un sixième cycle 905, le périphérique maître secondaire avec N valant 3 demande également l'accès au bus. L'arbitre sélectionne le maître avec N valant 5. Ce dernier obtient donc l'accès au bus.
Au cours d'un septième cycle 906, le maître sélectionné avec N valant 6 ne demandant pas l'accès au bus, l'arbitre, au cours d'une étape d'arbitrage entre les maîtres avec N valant 3 et 7 donne la main au périphérique avec N valant 7. Ensuite au cours d'un cycle 907, le maître avec N valant 3 a accès au bus.
Puis, au cours des deux étapes suivantes 908 et 909, aucun maître ne demande le bus, ce dernier reste donc libre. Ainsi, la phase d'arbitrage permet d'utiliser les intervalles de temps (ou « time slots » en anglais) lorsque le maître principal et le maître secondaire ne demandent pas d'accès au bus.
La figure 10 illustre la structure de l'arbitre 13, les accès en lecture et les accès en écriture au bus étant décorrélés. L'arbitre 13 comprend :
- un module de sélection d'accès en écriture 131 ;
- un multiplexeur d'adresses en écriture 131 ;
- un multiplexeur de données en écriture 132 ;
- un multiplexeur de taille en écriture 133 ; - un module de sélection d'accès en lecture 134 ;
- un multiplexeur d'adresses en lecture 135 ;
- un multiplexeur de données en lecture 136 ;
- un multiplexeur de taille en lecture 137.
Le module de sélection d'accès 130 (respectivement 134) reçoit en entrées les signaux 403, 413 (respectivement 406, 416) de demande d'accès en écriture {write-enablé} en provenance des différents maîtres. Il met en oeuvre l'algorithme de la figure 7 pour donner l'accès à l'un des maîtres et active, le cas échéant :
- l'un des signaux d'autorisation d'accès (bus-grant) 4010 à 4110 (respectivement 409 à 419) associé au maître ayant reçu l'autorisation d'accès ; et
- un signal de commande 138 pilotant les multiplexeurs 131 à 133 (respectivement 135 à 137) en fonction du maître ayant reçu l'autorisation d'accès. Le multiplexeur d'adresses 131 (respectivement 135) reçoit les signaux d'adresses 400, 410 (respectivement 404, 414) en provenance des différents maîtres. Il présente en sortie les signaux d'adresse 420 (respectivement 422) en fonction du signal de commande 138 (respectivement 139) qu'il reçoit. Le multiplexeur d'adresses 132 génère également un signal de commande 1390 en fonction du périphérique (esclave) comprenant l'adresse sélectionnée. Le multiplexeur de données 132 (respectivement 136) reçoit les signaux de données 401 , 41 1 (respectivement 425, 435) en provenance des différents esclaves. Il présente en sortie les signaux de données 421 (data- write) (respectivement 407 (data- read)) en fonction du signal de commande 138 (respectivement 1390) qu'il reçoit.
Selon une variante de l'invention, le bus n'accepte qu'un esclave adapté à fournir des données en lecture. Dans ce cas, le module 136 et le signal 1390 (et les moyens le générant) sont omis.
Le multiplexeur de taille 133 (respectivement 137) reçoit les signaux de taille 402, 412 (respectivement 404, 414) en provenance des différents maîtres. Il présente en sortie les signaux de taille 433
(respectivement 424) en fonction du signal de commande 138
(respectivement 139) qu'il reçoit.
La figure 1 1 illustre une structure d'un l'arbitre 14 selon une variante de réalisation de l'invention, correspondant à une mise en oeuvre où les accès en lecture et/ou en écriture sont autorisés pour le périphérique maître principal et/ou un seul périphérique maître secondaire durant un cycle donné.
L'arbitre 14 est similaire à l'arbitre à l'exception des modules 131 et 134 qui sont remplacés par un module de sélection d'adresses 140 unique, le bus ne pouvant pas supporter une écriture et une lecture simultanée. Chaque maître reçoit un signal d'autorisation d'accès en lecture/écriture 141 , 142 qui lui est dédié. Les autres éléments sont similaires, portent les mêmes références et ne sont pas décrits davantage. Le module 140 reçoit les signaux de demande d'autorisation d'accès au bus en écriture 403, 413 et en lecture 406, 416 des différents maîtres connectés au bus. Il génère :
- des signaux d'autorisation d'accès au bus 141 , 142 en fonction du maître déterminé par la mise en oeuvre de l'algorithme de la figure 7 et ;
- des signaux de commande 138 et 139 en fonction du maître ainsi déterminé et du ou des types d'accès (écriture ou lecture) demandés par le maître ainsi déterminé.
Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. En particulier, l'invention est compatible avec des nombres et des fonctions de maîtres et/ou d'esclave différents de ceux décrits précédemment.
En outre, le nombre de bit de données, d'adresses, de taille des données transmis en parallèle sur le bus n'est pas figé et peut prendre d'autres valeurs que celles indiquées précédemment selon différents modes de réalisation de l'invention.
Les signaux indiquant la taille des données transmises simultanément sont omis lorsque la taille des données transmises est fixe. Par ailleurs, d'autres signaux que ceux décrits précédemment peuvent être présents sur le bus, selon et notamment :
- un signal de changement dynamique de l'ordre des périphériques maîtres secondaires dans les étapes d'arbitrages ; - un signal d'activation ou non de la mise en oeuvre d'un arbitrage si le périphérique maître secondaire sélectionné par l'arbitre pour accéder au bus ne demande pas l'accès ;
- un signal de changement dynamique de l'ordre de sélection d'accès au bus à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus.
Ces signaux peuvent notamment être mis en oeuvre par un CPU (de l'anglais « Central Process Unit » ou unité centrale de traitement).
L'invention permet une grande souplesse d'utilisation, facilite une reconfiguration d'un coeur de base pour une adaptation à une application particulière et/ou une couche physique spécifique et est bien adaptée à une conception modulaire. Ainsi, l'invention est également compatible avec une mise en oeuvre totalement électronique (sous forme de composants) ou, au contraire, en partie logicielle (par exemple dans le cas de « logiciels radio » (ou « software radio » en anglais pouvant être reconfiguré facilement en fonction du contexte). Par ailleurs, l'invention est applicable à de nombreux domaines, et notamment dans le domaine des communications filaires ou sans fil (notamment une interface avec une couche physique du type IEEE 802.16, IEEE802.15.3 (UWB)).

Claims

REVENDICATIONS
1. Procédé d'accès à un bus de données (10), destiné à être relié à un périphérique maître principal (100, 22) et à des périphériques maîtres secondaires (1 10 à 112, 201 à 205, 32, 321 , 322, 31 1 , 312), le bus étant adapté à la transmission de données à destination et/ou en provenance desdits périphériques et véhiculant des trames de niveau couche MAC, caractérisé en ce que, le maître principal a la plus forte priorité d'accès au bus et comprend des moyens d'accès à un médium sans fil et en que ledit procédé comprend :
- une étape d'autorisation (72) d'accès au bus au périphérique maître principal lorsqu'il demande (71 ) l'accès au bus ; et
- une étape de sélection (75) d'accès au bus à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus.
2. Procédé selon la revendication 1 , caractérisé en ce que l'étape de sélection comprend :
- une étape d'attribution (740, 741 ) d'un jeton tournant à chacun desdits périphériques maîtres secondaires ; et - une étape d'autorisation (76) d'accès au bus au périphérique maître secondaire qui a le jeton, lorsqu'il demande l'accès au bus (75).
3. Procédé selon la revendication 2, caractérisé en ce l'étape de sélection comprend une étape d'arbitrage (77) pour l'accès au bus entre les périphériques maîtres secondaires lorsque le périphérique secondaire qui a le jeton ne demande pas l'accès au bus (75).
4. Procédé selon la revendication 3, caractérisé en ce que l'étape d'arbitrage comprend une étape de sélection aléatoire d'un périphérique secondaire demandant l'accès au bus.
5. Procédé selon la revendication 3, caractérisé en ce que l'étape d'arbitrage comprend une étape de sélection du dernier périphérique secondaire ayant eu l'accès au bus qui demande l'accès au bus.
6. Procédé selon la revendication 3, caractérisé en ce que l'étape d'arbitrage comprend une étape de sélection du périphérique secondaire qui demande l'accès au bus et qui n'a pas eu accès au bus depuis le plus longtemps.
7. Procédé selon la revendication 3, caractérisé en ce que l'étape d'arbitrage comprend une étape de sélection du périphérique secondaire qui demande l'accès au bus depuis le plus longtemps.
8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend une étape de sélection du type d'accès en écriture ou en lecture.
9. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend
- une étape d'autorisation d'accès au bus en lecture au périphérique maître principal lorsqu'il demande l'accès au bus en lecture ;
- une étape de sélection d'accès au bus en lecture à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus en lecture ;
- une étape d'autorisation d'accès au bus en écriture au périphérique maître principal lorsqu'il demande l'accès au bus en écriture ; et
- une étape de sélection d'accès au bus en écriture à un des périphériques maîtres secondaires lorsque le périphérique maître principal ne demande pas l'accès au bus en écriture.
10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ledit bus comprend au moins un périphérique esclave (120 à 123,
30), le procédé comprenant un accès au bus en lecture et/ou en écriture à un périphérique autorisé pour transmettre des données à destination ou en provenance dudit ou au moins un desdits périphériques esclaves.
1 1. Dispositif d'accès (13, 14) à un bus de données, (10) destiné à être relié à un périphérique maître principal (100,22) et à des périphériques maîtres secondaires, le bus étant adapté à la transmission de données à destination et/ou en provenance desdits périphériques et véhiculant des trames de niveau couche MAC, caractérisée en ce que ledit périphérique maître principal est de plus forte priorité d'accès au bus et comprend des moyens d'accès à un médium sans fil , et en ce que ledit dispositif comprend :
- des moyens d'autorisation d'accès au bus au périphérique maître principal lorsqu'il demande l'accès au bus ; et
- des moyens de sélection d'accès au bus à un des périphériques maîtres secondaires (1 10 à 1 12, 201 à 205, 32, 321 , 322, 31 1 , 312) lorsque le périphérique maître principal ne demande pas l'accès au bus.
12. Système caractérisé en ce qu'il comprend : - un bus de données ;
- un périphérique maître principal de plus forte priorité relié audit bus ;
- des périphériques maîtres secondaires de même priorité et reliés audit bus ; et - un dispositif d'accès au bus selon la revendication 1 1 ; le bus étant adapté à la transmission de données à destination et/ou en provenance desdits périphériques.
13. Système selon la revendication 12, caractérisé en ce qu'il comprend au moins un périphérique esclave relié audit bus, ledit ou lesdits périphériques esclaves ne pouvant pas demandé l'accès au bus.
14. Système selon la revendication 13, caractérisé en ce que ledit ou lesdits périphériques sont des mémoires.
15. Système selon l'une quelconque des revendications 12 à 14, caractérisé en ce que ledit périphérique maître principal comprend un microprocesseur.
16. Système selon l'une quelconque des revendications 12 à 15, caractérisé en ce qu'il comprend un composant qui comprend ledit bus et au moins un desdits périphériques maîtres secondaires.
17. Système selon la revendication 16, caractérisé en que ledit composant comprend ledit périphérique maître principal.
EP06819883A 2005-12-14 2006-12-01 Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant. Ceased EP1960891A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0553872A FR2894696A1 (fr) 2005-12-14 2005-12-14 Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant
PCT/EP2006/069181 WO2007068606A1 (fr) 2005-12-14 2006-12-01 Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant.

Publications (1)

Publication Number Publication Date
EP1960891A1 true EP1960891A1 (fr) 2008-08-27

Family

ID=36889282

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06819883A Ceased EP1960891A1 (fr) 2005-12-14 2006-12-01 Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant.

Country Status (7)

Country Link
US (1) US20100122000A1 (fr)
EP (1) EP1960891A1 (fr)
JP (1) JP2009519524A (fr)
KR (1) KR20080080538A (fr)
CN (1) CN101331469B (fr)
FR (1) FR2894696A1 (fr)
WO (1) WO2007068606A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5775101B2 (ja) * 2013-01-18 2015-09-09 日本電信電話株式会社 信号受信回路
TWI494944B (zh) * 2013-10-25 2015-08-01 Phison Electronics Corp 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置
CN106610906A (zh) * 2015-10-27 2017-05-03 深圳市中兴微电子技术有限公司 一种数据访问方法及总线
US9965410B2 (en) 2016-01-21 2018-05-08 Qualcomm Incorporated Priority-based data communication over multiple communication buses

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062414A1 (en) * 2000-06-21 2002-05-23 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE445861B (sv) * 1984-12-12 1986-07-21 Ellemtel Utvecklings Ab Prioritetsfordelningsanordning for datorer
CA2021826A1 (fr) * 1989-10-23 1991-04-24 Darryl Edmond Judice Circuit de retardement commande par un circuit logique pour empecher l'unite centrale de perdre le controle du bus
DE69030640T2 (de) * 1989-11-03 1997-11-06 Compaq Computer Corp Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
JP2507643B2 (ja) * 1989-12-28 1996-06-12 株式会社日立製作所 共通バス制御方法及びその制御装置並びにマスタ装置と計算機システム
JP3260456B2 (ja) * 1992-12-25 2002-02-25 株式会社日立製作所 コンピュータシステムおよびそれに適した集積回路並びに要求選択回路
JP3195489B2 (ja) * 1994-03-03 2001-08-06 株式会社日立製作所 外部記憶制御装置およびバス切り替え制御方法
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US5925118A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and architectures for overlapped read and write operations
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
GB2337138B (en) * 1998-01-30 2002-12-18 * Sgs-Thomson Microelectronics Limited Arbitration
US6073132A (en) * 1998-03-27 2000-06-06 Lsi Logic Corporation Priority arbiter with shifting sequential priority scheme
US6745243B2 (en) * 1998-06-30 2004-06-01 Nortel Networks Limited Method and apparatus for network caching and load balancing
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
JP2001195353A (ja) * 2000-01-06 2001-07-19 Rohm Co Ltd Dma転送システム
US6587905B1 (en) 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
US6859852B2 (en) * 2000-09-08 2005-02-22 Texas Instruments Incorporated Immediate grant bus arbiter for bus system
US6745273B1 (en) * 2001-01-12 2004-06-01 Lsi Logic Corporation Automatic deadlock prevention via arbitration switching
JP2002251370A (ja) * 2001-02-21 2002-09-06 Noritsu Koki Co Ltd 要求調停方法、要求調停装置、メモリ装置、および写真処理システム
JP2002278922A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd コンピュータバスシステム
JP2002312309A (ja) * 2001-04-09 2002-10-25 Nec Eng Ltd 調停回路及び調停方法
JP2002318782A (ja) * 2001-04-20 2002-10-31 Nec Corp バスシステム
JP3791005B2 (ja) * 2001-11-20 2006-06-28 日本電気株式会社 バスアクセス調停装置及びバスアクセス調停方法
US6931470B2 (en) * 2002-02-11 2005-08-16 Motorola, Inc. Dual access serial peripheral interface
JP2003256358A (ja) * 2002-02-28 2003-09-12 Sony Corp アービタ装置及び方法、並びに、リソース共有システム
JP2003348097A (ja) * 2002-05-29 2003-12-05 Hitachi Ulsi Systems Co Ltd 無線lan装置
US20030229743A1 (en) * 2002-06-05 2003-12-11 Brown Andrew C. Methods and structure for improved fairness bus arbitration
US7107365B1 (en) * 2002-06-25 2006-09-12 Cypress Semiconductor Corp. Early detection and grant, an arbitration scheme for single transfers on AMBA advanced high-performance bus
JP2005071049A (ja) * 2003-08-22 2005-03-17 Murata Mach Ltd データ転送制御装置
KR101089324B1 (ko) * 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
US8478921B2 (en) 2004-03-31 2013-07-02 Silicon Laboratories, Inc. Communication apparatus implementing time domain isolation with restricted bus access
US20060026329A1 (en) * 2004-07-30 2006-02-02 Yu James K System and method for an arbiter rewind
JP2006172256A (ja) * 2004-12-17 2006-06-29 Renesas Technology Corp 情報処理装置
GB2426604B (en) * 2005-05-26 2010-07-14 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US7467245B2 (en) * 2005-07-22 2008-12-16 Cisco Technology, Inc. PCI arbiter
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062414A1 (en) * 2000-06-21 2002-05-23 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO2007068606A1 *

Also Published As

Publication number Publication date
FR2894696A1 (fr) 2007-06-15
JP2009519524A (ja) 2009-05-14
CN101331469A (zh) 2008-12-24
CN101331469B (zh) 2011-11-09
WO2007068606A1 (fr) 2007-06-21
KR20080080538A (ko) 2008-09-04
US20100122000A1 (en) 2010-05-13

Similar Documents

Publication Publication Date Title
US9021156B2 (en) Integrating intellectual property (IP) blocks into a processor
US5467455A (en) Data processing system and method for performing dynamic bus termination
US6910092B2 (en) Chip to chip interface for interconnecting chips
US9367517B2 (en) Integrated circuit package with multiple dies and queue allocation
US7080169B2 (en) Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
JP2000259557A (ja) 多数の機能モジュールを接続するためのポート管理コントローラ
TW200830109A (en) Controller link for manageability engine
US9021169B2 (en) Bus system including ID converter and converting method thereof
EP1960891A1 (fr) Procede d'acces a un bus de transmission de donnees, dispositif et systeme correspondant.
EP1324175B1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
US6697904B1 (en) Preventing starvation of agents on a bus bridge
TWI313412B (en) Method and apparatus for intermediate buffer segmentation and reassembly
US20050289278A1 (en) Apparatus and method for programmable completion tracking logic to support multiple virtual channels
US6323755B1 (en) Dynamic bus locking in a cross bar switch
US20120117286A1 (en) Interface Devices And Systems Including The Same
US7657682B2 (en) Bus interconnect with flow control
EP2965213A1 (fr) Procédé de contrôle de bande passante pour système sur puce
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
US7069363B1 (en) On-chip bus
FR2948785A1 (fr) Terminateur de transaction
US8819325B2 (en) Interface device and system including the same
Wang et al. An on-chip CDMA communication network
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
US8347258B2 (en) Method and apparatus for interfacing multiple dies with mapping for source identifier allocation
FR2827995A1 (fr) Procede et dispositif de gestion de memoire

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080331

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: THOMSON LICENSING

17Q First examination report despatched

Effective date: 20101004

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20140912