PatentDe  


Dokumentenidentifikation EP1489521 08.06.2006
EP-Veröffentlichungsnummer 0001489521
Titel Zugang von zwei synchronen Bussen mit asynchronem Takt zu einem synchronen Einport-RAM
Anmelder STMicroelectronics Belgium N.V., Zaventem, BE
Erfinder Levy, David, 3210 Lubbeek, BE
Vertreter derzeit kein Vertreter bestellt
DE-Aktenzeichen 60305017
Vertragsstaaten DE, FR, GB, IT
Sprache des Dokument EN
EP-Anmeldetag 16.06.2003
EP-Aktenzeichen 034471532
EP-Offenlegungsdatum 22.12.2004
EP date of grant 03.05.2006
Veröffentlichungstag im Patentblatt 08.06.2006
IPC-Hauptklasse G06F 13/16(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse G11C 7/10(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[en]
Field of the invention

The present invention is related to the access of two synchronous busses with asynchronous clocks to a synchronous single port Random Access Memory (RAM).

State of the art

A synchronous bus is a bus that has a clock and all signals of the bus are switched based on this clock. Both busses employed in present invention are synchronous since they both have a clock. However they are asynchronous to each other since there is no relationship between the two clocks.

There are many synchronisation systems allowing different busses to access to a RAM. They all start from the assumption the relative speed of the busses is known. Some methods are suggested to synchronise a signal A to a signal B, e.g. if one knows A is at least 3 times faster than B. Other methods are used if A is at least 3 times slower than B.

In the implementation of such systems one often encounters master/slave situations : the master is writing data or code to the RAM (depending on the application) and the slave is executing the code or using the data.

The alternative solution consists in using a dual port RAM, whereby bus A signals are simply connected to port A of the RAM and bus B signals to port B of the RAM. This approach is disadvantageous as in number of gates it takes twice the size of a single port RAM.

US-A-6 078 527 discloses a method to control the access of two synchronous busses with asynchronous clocks with unknown relative speed to a single port Random Access Memory.

Aims of the invention

The present invention aims to provide a method to control the access of two synchronous busses with asynchronous clocks with unknown relative speed to a synchronous single port Random Access Memory.

Summary of the invention

The invention is as set out in claims 1, 4 and 5.

Short description of the drawings

Fig. 1 represents a conceptual description of the method of the invention.

Fig. 2 represents an alternative concept.

Fig. 3 represents a specific example of the invention.

Fig. 4 represents a timing diagram showing the waveforms of the most important signals.

Detailed description of the invention

The present invention relates to the access of two synchronous busses with asynchronous clocks with unknown relative speed to a synchronous single port Random Access Memory (RAM). In the method disclosed in the invention the clock of bus A is switched off via a control flip-flop and then the clock of bus B is switched on, allowing the control and data signals to pass through simple multiplexers. Bus B becomes the owner of the RAM. Later on in the method of the invention the clock of bus B is switched off via the control flip-flop and then clock of bus A is switched on, such that bus A becomes owner of the bus. The method of the invention allows any relative speed between the bus clocks. Moreover, it allows an on-line modification of the clock speed : assuming clock A to be faster than clock B, it is allowed to modify it on-line, such that clock B will become faster than clock A.

The control flip-flop at the input determines which bus, A or B, is given access to the RAM. Suppose the control flip-flop is clocked on the clock of bus A. Figure 1 conceptually describes how to synchronise the bus A signal to grant access to the RAM to the relevant controller. Note that in Fig.1 flip-flops in grey are clocked by bus A and flip-flops in white by bus B.

When a request for changing the RAM clock is received, the control flip-flop output signal is changed. It is distributed to two branches, as shown in Fig.1. In one branch the output signal is inverted, resulting in a signal INV_OUT, and in the other branch it is applied to a circuit to synchronise it to the clock of the other bus, in this case bus B. The latter circuit outputs a signal CL_SW. Both resulting signals, INV_OUT and CL_SW, are then each applied directly to a first input of a combinatorial block (i.e. not involving flip-flops) in the same branch. They are also applied to a second input of the combinatorial block in the other branch, after having passed a circuit to synchronise the signal to the other clock, i.e. CL_SW is synchronised back to the clock of bus A yielding signal CL_SW_SW and INV_OUT is synchronised to the clock of bus B yielding INV_OUT_SW. The ellipse shaped blocks in Fig.1 perform combinatorial logics :

  • en1_comb is set high if both bus A and bus B synchronised signals agree that the RAM must be controlled by the clock of bus A.
  • en2_comb is set high if both bus A and bus B synchronised signals agree that the RAM must be controlled by the clock of bus B.
The signals coming out of the combinatorial blocks are then applied to falling edge flip-flops. These falling edge flip-flops ensure no glitch will be present at the RAM clock input.

The output signals of the falling edge flip-flops in each branch, en1 and en2, are sent to the control and data multiplexers, possibly via another combinatorial block 'Select bus', that also ensures that only if just one signal is active (either en1 or en2), the relevant bus is selected. As the longer delay on the bus A path (synchronisation to bus B and synchronisation back to bus A) ensures that never both en1 and en2 will be active together, the `Select bus' block only serves as an extra protection. It is not strictly necessary in the method of the invention.

The en1 and en2 signals are input to an AND-gate with the respective clock signals as the second input. After applying both AND-gates' output signals to an OR gate either the clock of bus A or that of clock B is selected as the single port programmable RAM clock.

Care should be taken in the layout for the gated clock. Between the input clock pin to a chip and the clock input to all flip-flops and RAMs, several buffers are inserted. These buffers are called clock tree. The clock tree purpose is to assure that all flip-flops and RAMs get the clock at the same moment, independent of their physical location in the chip. The time difference between the first and the last flip-flop/RAM getting the clock pulse is called the skew. The target of the clock tree is to minimise the skew. Some specialised tools perform this minimisation automatically. By adding the gates on the clock, as described in the method, the skew on the RAM clock input is deteriorated. So special care must be taken to minimise the skew here manually.

Figure 2 shows a variant of Figure 1. It describes a case where the control signal is clocked on bus B instead of on bus A. This implies the grey and white flip-flops are switched compared to Fig.1. Again the 'Select bus' block in this figure is used only as a second protection and is not a mandatory element.

A specific example of the conceptual scheme shown in Fig.1 is now provided. Bus A is an Advanced High Performance Bus (AHB) (an external controller). Bus B is a micro-controller with TC ('ADSL Transmission Convergence layer') clock. The external controller (bus A) shall download the program of the Micro-Controller (bus B) to the single-port RAM. Later, the Micro-Controller shall access this RAM, among other things, to read its program. This program shall thus be accessed by both the external controller and the Micro-Controller. Note this is an example of a master/slave situation as described before. Here the master is the external controller writing a program to the RAM. The slave is the Micro-Controller executing this program.

The external controller, through the Advanced High-performance Bus (AHB), selects which of the Micro-Controller or the external controller is granted access to the RAM. If the external controller is chosen, the inputs to the RAM are the AHB signals including the AHB clock. If the Micro-Controller is chosen, the inputs to the RAM are the Micro-Controller signals and the TC clock.

Figure 3 describes how to synchronise the AHB signal to grant access to the RAM to the relevant controller. Flip-flops in grey are clocked by AHB clock. Flip-flops in white are clocked by the TC clock.

If the external controller needs to access the RAM after it has granted access to the Micro-Controller, it shall perform this in two steps:

  1. 1. Put the Micro-Controller in wait state.
  2. 2. Select the External controller for program RAM access. It can then access the RAM. To allow the Micro-Controller to continue its task, it shall do it in two steps:
    1. 1. Select the Micro-Controller for program RAM access.
    2. 2. Remove the wait state on the Micro-Controller.

The timing diagram shown in Figure 4 describes the waveforms of the important signals when control is switched from the External Controller to the Micro-Controller.


Anspruch[de]
Verfahren zur Steuerung des Zugriffs von zwei synchronen Bussen mit asynchronen Takten mit unbekannter relativer Geschwindigkeit auf einen Single Port-Direktzugriffsspeicher, als RAM bekannt, umfassend die Schritte des: a) Versehens eines Synchronisationssystems, das zwei Busse und ein Steuer-Flip-Flop umfaßt, das auf den Takt eines dieser Busse getaktet ist, b) Versehens eines Signals zu diesem Steuer-Flip-Flop, das eine Änderung des Takts dieses RAMs anfordert, was ein Ausgangssignal des Steuer-Flip-Flops bewirkt, c) Anlegens dieses Ausgangssignal des Steuer-Flip-Flops an eine Umkehrschaltung, was ein Signal INV_OUT ergibt, und an eine Schaltung, um das Ausgangssignal auf den Takt des Busses zu synchronisieren, der nicht vom Steuer-Flip-Flop gesteuert wird, was ein Signal CL_SW ergibt, d) jeweiliges Anlegens des Signals INV_OUT und des Signals CL_SW an eine Schaltung, um diese auf den Takt des anderen Busses zu synchronisieren, was beziehungsweise die Signale INC_OUT_SW und CL_SW_SW ergibt, e) Anlegens des Signals INV_OUT und des Signals CL_SW_SW an einen ersten kombinatorischen Block, was ein Signal en1_comb ausgibt, und Anlegens des Signals CL_SW und des Signals INV_OUT_SW an einen zweiten kombinatorischen Block, was ein Signal en2_comb ausgibt, f) jeweiligen Anlegens des Signals en1_comb und des Signals en2_comb an ein Sampling-Flip-Flop für abfallende Flanken, was beziehungsweise die Signale en1 und en2 ergibt; g) Anlegens des Signale en1 und des Takts des Busses, der das Steuer-Flip-Flop steuert, an ein UND-Gatter, und des Signals en2 und des Takts des anderen Busses an ein UND-Gatter, und der Ausgänge dieser UND-Gatter an ein ODER-Gatter, h) Verwendens des Ausgangssignals dieses ODER-Gatters als das Taktsignal des RAMs, i) Anlegens der Signale en1 und en2 an einen kombinatorischen Block, der das Wählsignal ausgibt, das zwischen diesen Bussen wählt, an die Steuer- und Datenmultiplexer, die zur Kommunikation mit dem Single Port-RAM verwendet werden. Verfahren nach Anspruch 1, wobei der kombinatorische Block in Schritt i) einen Schutz umfaßt, um zu verhindern, dass die Signale en1 und en2 gleichzeitig aktiv werden. Verfahren zur Online-Taktgeschwindigkeitsänderung, das die Schritte des Verfahrens nach irgendeinem der obigen Ansprüche anwendet. Kommunikationsgerät, die das Verfahren nach irgendeinem der obigen Ansprüche anwendet. Computergerät, das das Verfahren nach irgendeinem der obigen Ansprüche 1-3 anwendet.
Anspruch[en]
A method to control the access of two synchronous busses with asynchronous clocks with unknown relative speed to a single port Random Access Memory, known as RAM, comprising the steps of : a) Providing a synchronisation system comprising two busses and a control flip-flop being clocked to the clock of one of said busses, b) Providing a signal to said control flip-flop requesting a change of the clock of said RAM, resulting in a control flip-flop output signal, c) Applying said control flip-flop output signal to an inverter circuit yielding a signal INV_OUT and to a circuit to synchronise said output signal to the clock of the bus not in control of said control flip-flop, yielding a signal CL_SW, d) Applying the signal INV_OUT and the signal CL_SW each to a circuit to synchronise to the clock of the other bus yielding signals INV_OUT_SW and CL_SW_SW, respectively, e) Applying the signal INV_OUT and the signal CL_SW_SW to a first combinatorial block outputting a signal en1_comb and applying the signal CL_SW and the signal INV_OUT_SW to a second combinatorial block outputting a signal en2_comb, f) Applying the signal en1_comb and the signal en2_comb each to a falling edge sampling flip-flop, yielding signals en1 and en2, respectively, g) Applying the signal en1 and the clock of the bus in control of said control flip-flop to an AND gate and the signal en2 and the clock of the other bus to an AND gate, and the outputs of said AND gates to an OR gate, h) Using the output signal of said OR gate as the clock signal of said RAM i) Applying the signals en1 and en2 to a combinatorial block that outputs the select signal selecting between said busses to the control and data multiplexers used for communication with said single port RAM. The method as in claim 1, wherein the combinatorial block in step i) comprises a protection to avoid the signals en1 and en2 be active simultaneously. A method for on-line clock speed modification, applying the steps of the method as in any of the previous claims. A communication device applying the method as in any of the previous claims. A computer device applying the method as in any of the previous claims 1-3.
Anspruch[fr]
Procédé pour commander l'accès de deux bus synchrones avec des horloges asynchrones à une vitesse relative inconnue à une mémoire d'accès aléatoire à port unique, connue comme mémoire RAM, comprenant les étapes de : a) fourniture d'un système de synchronisation comprenant deux bus et une bascule de commande étant cadencée pour l'horloge de l'un desdits bus, b) fourniture d'un signal à ladite bascule de commande demandant un changement de l'horloge de ladite mémoire RAM, résultant en un signal de sortie de bascule de commande, c) application dudit signal de sortie de bascule de commande à un circuit inverseur donnant un signal INV_OUT et à un circuit pour synchroniser ledit signal de sortie à l'horloge du bus ne commandant pas ladite bascule de commande, donnant un signal CL_SW, d) application du signal INV_OUT et du signal CL_SW chacun à un circuit pour synchroniser l'horloge de l'autre bus donnant des signaux INV_OUT_SW et CL_SW_SW, respectivement, e) application du signal INV_OUT et du signal CL_SW_SW à un premier bloc combinatoire fournissant un signal en1_comb et application du signal CL_SW et du signal INV_OUT_SW à un second bloc combinatoire fournissant un signal en2_comb, f) application du signal en1_comb et du signal en2_comb chacun à une bascule d'échantillonnage de front descendant, donnant des signaux en1 et en2, respectivement, g) application du signal en1 et de l'horloge du bus commandant ladite bascule de commande à une porte ET et du signal en2 et de l'horloge de l'autre bus à une porte ET, et des sorties desdites portes ET à une porte OU, h) utilisation du signal de sortie de ladite porte OU en tant que signal d'horloge de ladite mémoire RAM i) application des signaux en1 et en2 à un bloc combinatoire qui fournit le signal sélectionné sélectionnant entre lesdits bus aux multiplexeurs de commande et de données utilisés pour une communication avec ladite mémoire RAM à port unique. Procédé selon la revendication 1, dans lequel le bloc combinatoire dans l'étape i) comprend une protection pour éviter que les signaux en1 et en2 ne soient actifs simultanément. Procédé pour une modification de vitesse d'horloge en ligne, appliquant les étapes du procédé selon l'une quelconque des revendications précédentes. Dispositif de communication appliquant le procédé selon l'une quelconque des revendications précédentes. Dispositif informatique appliquant le procédé selon l'une quelconque des revendications précédentes 1 à 3.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com