Language selection

Search

Patent 2904176 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2904176
(54) English Title: BANDWIDTH CONTROL METHOD FOR AN ON-CHIP SYSTEM
(54) French Title: PROCEDE DE CONTROLE DE BANDE PASSANTE POUR SYSTEME SUR PUCE
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 13/372 (2006.01)
(72) Inventors :
  • LIU, CELINE (France)
  • CHARRIER, NICOLAS (France)
  • MARTI, NICOLAS (France)
(73) Owners :
  • SAGEM DEFENSE SECURITE (France)
(71) Applicants :
  • SAGEM DEFENSE SECURITE (France)
(74) Agent: NORTON ROSE FULBRIGHT CANADA LLP/S.E.N.C.R.L., S.R.L.
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 2014-03-04
(87) Open to Public Inspection: 2014-09-12
Availability of licence: N/A
(25) Language of filing: French

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/EP2014/054121
(87) International Publication Number: WO2014/135513
(85) National Entry: 2015-09-04

(30) Application Priority Data:
Application No. Country/Territory Date
1352017 France 2013-03-06

Abstracts

English Abstract

The invention concerns a bandwidth control method in an on-chip system comprising at least one main master module, at least one secondary master module, at least one slave module and a bus connected to each module on a communication link, the bus comprising interconnection means to make at least one common slave module communicate with at least one main master module and with at least one secondary master module via at least one common path portion, the method comprising the following steps carried out for each common slave module: first detection of a first request to access the common slave module, issued by a main master module, definition of a blocking time Dj associated with the common slave module, blocking, during blocking time Dj, of any data transfer on the at least one common path portion between a secondary master module and the common slave module.


French Abstract

L'invention concerne un procédé de contrôle de bande passante dans un système sur puce comprenant au moins un module maître principal, au moins un module maître secondaire, au moins un module esclave et un bus connecté à chaque module sur un lien de communication, le bus comprenant des moyens d'interconnexion pour faire communiquer au moins un module esclave commun avec au moins un module maître principal et avec au moins un module maître secondaire par au moins une portion de route commune, le procédé comprenant les étapes suivantes réalisées pour chaque module esclave commun: première détection d'une première requête d'accès au module esclave commun émise par un module maître principal, détermination d'un délai de blocage Dj associé au module esclave commun, blocage pendant le délai de blocage Dj de tout transfert de données sur l'au moins une portion de route commune entre un module maître secondaire et le module esclave commun.

Claims

Note: Claims are shown in the official language in which they were submitted.





20
REVENDICATIONS
1. Procédé de contrôle de bande passante dans un système sur puce
comprenant au moins un module maître principal (Ma), au moins un
module maître secondaire (M1, Mk), au
moins un module esclave
(S1, ..., Sn) et un bus (B) connecté à chaque module sur un lien de
communication, le bus (B) comprenant des moyens d'interconnexion
pour faire communiquer au moins un module esclave commun avec au
moins un module maître principal et avec au moins un module maître
secondaire par au moins une portion de route commune, le procédé
comprenant les étapes suivantes réalisées pour chaque module esclave
commun (Sj):
¨ première détection (DET1) d'une première requête d'accès au
module esclave commun (Sj) émise par un module maître
principal (Ma),
¨ détermination (CALC) d'un délai de blocage D j associé au module
esclave commun (Sj),
¨ blocage (BLOCK) pendant le délai de blocage D j de tout transfert
de données sur l'au moins une portion de route commune entre
un module maître secondaire (Mi) et le module esclave commun
(Sj).
2. Procédé selon la revendication 1, dans lequel la première détection
(DET1) entraîne une incrémentation (INCR) d'un compteur
d'occurrences (Cj) associé au module esclave commun (Sj), le délai D j
de blocage associé au module esclave commun (Sj) croissant en
fonction de la valeur .nu.j dudit compteur d'occurrences (Cj).
3. Procédé selon la revendication 2, dans lequel l'étape de détermination
(CALC) comprend une lecture de la valeur .nu.j du compteur d'occurrences



21
associé au module esclave commun (Sj) et un calcul du délai D j de
blocage selon la formule D j = .nu.2 * T max + T B, où
¨ T max est la durée d'un transfert de données de taille maximale
entre un module maître et un module esclave, et
¨ T B est la durée de propagation d'une requête dans le bus (B).
4. Procédé selon l'une des revendications 2 et 3 comprenant en outre les
étapes de :
¨ deuxième détection (DET2) d'une deuxième requête d'accès à un
module esclave n'étant pas le module esclave commun (Sj)
émise par un module maître principal (Ma) connecté au module
esclave commun (Sj) par l'intermédiaire du bus (B), et
¨ décrémentation (DECR) du compteur d'occurrences (Cj) associé
au module esclave commun (Sj) entraînée par la deuxième
détection (DET2).
5. Procédé selon l'une des revendications 2 à 4, dans lequel l'étape de
blocage (BLOCK) est réalisée seulement si la valeur .nu.j du compteur
d'occurrences (Cj) associé au module esclave commun (Sj) est
supérieure (MINC) à un premier seuil d'occurrences N j prédéterminé.
6. Procédé selon l'une des revendications 2 à 5, comprenant en outre une
étape d'envoi (STAT) d'un message de statut à un contrôleur d'erreurs
seulement si la valeur .nu.j du compteur d'occurrences (Cj) associé au
module esclave commun (Sj) est supérieure (MAXC) à un deuxième
seuil d'occurrences N'j prédéterminé supérieur ou égal au premier seuil
d'occurrences N j.
7. Procédé selon l'une des revendications 2 à 6, comprenant en outre des
étapes de :



22
¨ troisième détection (DET3) d'une troisième requête d'accès au
module esclave commun (Sj) émise par un module maître
principal (Ma), la troisième détection étant postérieure à la
première détection (DET1),
¨ décrémentation (DECR) du compteur (Cj) associé au module
esclave commun (Sj) avant la troisième détection (DET3) réalisée
à chaque fois que le temps écoulé depuis la première détection
(DET1) franchit une valeur multiple d'un seuil temporel T j
prédéterminé.
8. Procédé selon l'une des revendications 1 à 7, dans lequel les étapes de
détection (DET1, DET2, DET3) et/ou de blocage (BLOCK) sont réalisées
sur le lien de communication entre un module maître secondaire (Mi) et
le bus (B).
9. Procédé selon l'une des revendications 1 à 8, dans lequel chaque étape
de détection (DET1, DET2, DET3) comprend des sous-étapes de :
¨ première interception (CATCH1) d'un signal comprenant une
adresse d'accès,
¨ recherche (SEARCH) d'un module esclave destinataire
correspondant à l'adresse d'accès dans une table d'adressage
prédéterminée.
10. Procédé selon la revendication 9 dans lequel le signal comprenant une
adresse d'accès est HADDR, l'étape de première interception étant
réalisée sur un lien de communication selon le protocole AHB.
11. Procédé selon l'une des revendications 1 à 10, dans lequel l'étape de
blocage (BLOCK) comprend les sous-étapes suivantes répétées
pendant le délai de blocage D j :



23
¨ deuxième interception (CATCH2) d'un signal de réponse à
destination du module maître secondaire (Mi) positionné à une
valeur active indiquant une disponibilité du module esclave
commun (Sj),
¨ repositionnement (FILTER) dudit signal de réponse à une valeur
inactive indiquant une indisponibilité dudit module esclave
commun (Sj).
12. Procédé selon la revendication 11, dans lequel le signal de réponse est
HREADY, l'étape de blocage (BLOCK) étant réalisée sur un lien de
communication selon le protocole AHB.
13.Dispositif (W1, ..., Wi, ..., Wk) de contrôle de bande passante
comprenant des moyens de détection de signaux, des moyens de
stockage, N compteurs d'occurrence et des moyens de traitement
configurés pour mettre en oeuvre N fois en parallèle le procédé de
contrôle de bande passante selon l'une des revendications 1 à 12, N
étant supérieur ou égale à un.
14.Système sur puce comprenant au moins un module maître principal
(Ma), au moins un module maître secondaire (M1, ..., Mk), au moins un
module esclave (S1, ..., Sn) et un bus (B) connecté à chaque module
sur un lien de communication, le bus comprenant des moyens
d'interconnexion pour faire communiquer au moins un module esclave
commun avec au moins un module maître principal et avec au moins un
module maître secondaire par au moins une portion de route commune,
et au moins un dispositif de contrôle de bande passante (W1, ..., Wi, ...,
Wk) selon la revendication 13 connecté à un module maître secondaire
(M1, ..., Mk), à au moins un maître principal (Ma), et au bus (B).

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
1
Procédé de contrôle de bande passante pour système sur puce
DOMAINE DE L'INVENTION
L'invention se rapporte au domaine des systèmes sur puce souvent désigné
par le terme anglais system on chip ou son abréviation SoC.
L'invention concerne plus particulièrement les systèmes sur puce dans
lesquels les interconnexions entre modules sont réalisées par des bus
informatiques internes.
ART ANTERIEUR
Un système sur puce (SoC), est un système complet embarqué sur une
puce pouvant comprendre un ou plusieurs processeurs, de la mémoire, des
périphériques d'interface et/ou d'autres composants nécessaires à la
réalisation d'une fonction complexe.
Les SoC présentent généralement une architecture hiérarchisée : des
modules maîtres effectuent des requêtes d'accès en lecture ou écriture
à des modules dits esclaves . Par exemple, des maîtres typiques sont
les processeurs ou les contrôleurs d'accès direct à la mémoire (DMA) ; des
esclaves typiques sont des mémoires de stockage ou des périphériques
réseau.
Les interconnexions entre des maîtres et des esclaves sont typiquement
prises en charge par des bus informatiques internes compatibles avec un
ou plusieurs protocoles de communication.
Par exemple, le protocole AMBA ( Advanced Microcontroller Bus
Architecture ) est un standard de communication aujourd'hui largement
utilisé notamment sur les SoC multiprocesseurs. Ce protocole se décline en
plusieurs versions et variantes, dont par exemple AHB ( Advanced High-
performance Bus ) et AXI ( Advanced eXtensible Interface ) qui sont
plus particulièrement dédiées aux transferts de données haut-débit par
salves ( bursts ).
En référence à la figure 1, un bus informatique B assure des
interconnexions entre k modules maîtres Mi, i e [[1,1d1 et n modules

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
2
esclaves Sj, JE [[1,n. Le bus B comprend k ports esclaves PSi, i e [[1,k]]
sur chacun desquels est connecté un module maître, et n ports maîtres
PMj, j e [[1, rd, sur chacun desquels est connecté un module esclave. Ainsi,
le bus est vu comme un esclave par chaque module maître, et vu comme
un maître par chaque module esclave. Sur chaque liaison entre un port du
bus et un module, des données peuvent être transmises selon un protocole
de communication spécifique.
Le bus B comprend des moyens de routage internes, par exemple un ou
plusieurs étages de commutateurs ( switches ) représentés sur la figure 1
par des flèches en pointillés. Ces moyens assurent le routage de
communications entre un maître et un esclave.
Le bus B illustré sur la figure 1 réalise toutes les interconnexions possibles

entre un des k maîtres et un des n esclaves, soit k *n interconnexions.
Ainsi, l'esclave 51 peut par exemple recevoir des requêtes émises par les
plusieurs maîtres, et être en accès partagé alternativement entre ceux-ci.
Par exemple, le maître M1 peut être en cours d'accès à 51, tandis que le
maître M2 reste en attente. Une fois l'accès par M1 terminé, le maitre M2
peut à son tour réaliser un accès à 51.
Ces attentes peuvent notamment s'avérer gênantes dans le cas ou des
accès de haute priorité doivent être réalisés très rapidement. C'est le cas
par exemple des systèmes sur puce de niveau de criticité A selon le
standard RTCA DO-254, sur lesquels des pannes ou même des lenteurs de
transaction peuvent avoir des conséquences catastrophiques, comme par
exemple, des systèmes sur puce dédiés au contrôle des commandes d'un
aéronef.
Par ailleurs, certains systèmes sur puce font une distinction physique entre
des maîtres principaux de haute priorité et des maîtres secondaires de plus
basse priorité. Sur de tels systèmes, les accès demandés par un maître
principal doivent être prioritaires par rapport aux accès demandés par un
module maître secondaire ; par conséquent, le blocage d'une transaction en
cours impliquant un module maître secondaire alors qu'un maître principal
est maintenu en attente peut avoir des conséquences dramatiques.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
3
Or, la plupart des bus informatiques AMBA vendus dans le commerce
n'offrent de contrôle des transactions entre un maître et un esclave, et ne
permettent pas gérer des priorités entre plusieurs maîtres.
PRESENTATION DE L'INVENTION
L'invention vise à résoudre les problèmes de l'art antérieur.
Pour ce faire, l'invention concerne notamment un procédé de contrôle de
bande passante dans un système sur puce comprenant au moins un
module maître principal, au moins un module maître secondaire, au moins
un module esclave et un bus connecté à chaque module sur un lien de
communication, le bus comprenant des moyens d'interconnexion pour faire
communiquer au moins un module esclave commun avec au moins un
module maître principal et avec au moins un module maître secondaire par
au moins une portion de route commune, le procédé comprenant les étapes
suivantes réalisées pour chaque module esclave commun:
¨ première détection d'une première requête d'accès au module
esclave commun émise par un module maître principal,
¨ détermination d'un délai de blocage associée au module esclave
commun,
¨ blocage pendant le délai de blocage de tout transfert de données
sur l'au moins une portion de route commune entre un module
maître secondaire et le module esclave commun.
Le procédé décrit permet notamment de réserver de la bande passante
pour tout module maître principal souhaitant accéder à un module esclave
commun tous deux interconnectés au moyen de n'importe quel bus
informatique AMBA vendu dans le commerce. L'adaptation d'un bus
informatique AMBA pour les besoins d'un système sur puce à haut niveau
de criticité n'est donc pas nécessaire.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
4
DESCRIPTION DES FIGURES
D'autres caractéristiques, buts et avantages de l'invention ressortiront de la

description qui suit, qui est purement illustrative et non limitative, et qui
doit
être lue en regard des dessins annexés sur lesquels :
¨ La figure 1 représente schématiquement un système sur puce connu.
¨ La figure 2 représente schématiquement deux transactions
successives.
¨ La figure 3 représente une séquence de signaux du protocole AXI
émis au cours d'une lecture.
¨ La figure 4 représente une séquence de signaux du protocole AXI
émis au cours d'une écriture.
¨ Les figures 5a à 5d représentent des diagrammes d'étapes du
procédé de contrôle de bande passante selon l'invention.
¨ La figure 6 représente l'évolution dans le temps de la valeur d'un
compteur associé à un module esclave commun en fonction de
requêtes détectées.
¨ La figure 7 représente schématiquement un système sur puce
protégé grâce au dispositif de contrôle de bande passante selon
l'invention.
Sur l'ensemble des figures, les éléments similaires portent des références
identiques.
DESCRIPTION DETAILLEE DE L'INVENTION
La figure 1 a été décrite précédemment.
En référence à la figure 2, une transaction TRANSO, TRANSI entre un
maître et un esclave comporte au moins deux phases. Dans une première
phase de requête, le module maître demande notamment un accès à un
esclave que celui-ci accepte ou refuse. Si l'accès est accepté, une
deuxième phase de transfert DATAO, DATAI débute dans laquelle des
données sont transférées par salves du maître vers l'esclave dans le cas
d'une écriture, ou de l'esclave vers le maître dans le cas d'une lecture.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
Dans chacune des phases de requête et de transfert, des informations sont
échangées entre le maître et l'esclave sur des signaux parallèles. Pour
réaliser une transaction en lecture ou en écriture les signaux doivent être
positionnés selon une séquence ordonnée comprenant les phases de
5 requête et de transfert.
Plusieurs phénomènes peuvent indiquer une consommation importante de
bande passante sur la route de communication entre le maître et l'esclave.
Premièrement, si la durée TO, respectivement Ti, d'une phase de transfert
de données DATAO, respectivement DATAI, est trop long.
D'autre part, si le temps écoulé TI1 entre le début de deux transactions
successives TRANSO et TRANSI à un même esclave par un même maître
est trop court.
Le protocole AXI définit une interface unique pour décrire des transactions
entre un module maître et un module esclave, un module maître et le port
esclave d'un bus, ou le port maître d'un bus et un module esclave.
Cette interface se compose de cinq canaux :
¨ Deux canaux dédiés à la lecture (un canal de contrôle et un canal de
données)
¨ Trois canaux dédiés à l'écriture (un canal de contrôle, un canal de
données et un canal de réponse).
Les canaux transportent chacun un ensemble de signaux émis par une
source et ce de manière unidirectionnelle. Par exemple, le canal de contrôle
de lecture transporte des signaux de requête depuis un maître vers un
esclave, tandis que le canal de données de lecture retourne alors des
signaux porteurs de données depuis un esclave vers un maître.
Deux exemples de séquence de positionnement pour une lecture et une
écriture selon le protocole AXI vont maintenant être détaillés.
EXEMPLE DE LECTURE SELON LE PROTOCOLE AXI
La figure 2 illustre par exemple une séquence de positionnement de
signaux pour une lecture selon le protocole AXI, réalisée en quatre

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
6
transferts de données. Les fonctions des signaux utilisés sont récapitulées
dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
ARADDR Maître Adresse de lecture.
ARVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse de lecture valide, sinon à O.
ARREADY Esclave Indique si l'esclave est prêt (1) ou non (0) pour
accepter une adresse de lecture et des signaux de
contrôle associés.
RREADY Maître Indique si le maître est prêt (1) ou non (0) pour
recevoir des données de lectures.
RDATA Esclave Données de lectures.
RVALID Esclave Indique si les données de lecture attendues sont
prêtes pour le transfert (1) ou non (0)
RLAST Esclave Indique le dernier transfert de données en lecture.
En référence à la figure 2, une transaction en lecture selon le protocole AXI
comprend les étapes suivantes.
Le signal ACLK est synchronisé sur une horloge source. Un maître émet le
signal ARADDR contenant une adresse de lecture A de l'esclave à laquelle
il souhaite accéder en lecture. Parallèlement, le maître positionne à un le
signal ARVALID pour signifier à l'esclave destinataire la validité de
l'adresse
A.
L'esclave confirme la disponibilité de l'adresse A en positionnant le signal
ARREADY.
Le maître positionne ensuite le signal RREADY à un pour signifier à
l'esclave qu'il est prêt à lire des données.
Les données de lecture sont ensuite transmises par l'esclave sur le signal
RDATA. La figure 2 illustre une salve de quatre transferts D(A0), D(A1),
D(A2) et D(A3). Pendant chaque transfert, le signal RVALID est positionné

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
7
à un par l'esclave pour signifier au maître la validité des données. Pour
indiquer au maître qu'un transfert est le dernier, le signal RLAST est
positionné à un au début du dernier transfert D(A3).
La lecture illustrée en figure 2 est réalisée en treize coups d'horloge (entre
les coups d'horloge TO et T13), dont huit pour la seule phase de transfert de
données.
EXEMPLE D'ECRITURE SELON LE PROTOCOLE AXI
La figure 3 présente un exemple une séquence de positionnement de
signaux pour une écriture selon le protocole AXI également réalisée en
quatre transferts de données. Les fonctions de ces signaux sont
récapitulées dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
AWADDR Maître Adresse d'écriture.
AWVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse d'écriture valide, sinon à 0.
AWREADY Esclave Indique si l'esclave est prêt (1) ou non (0) pour
accepter une adresse d'écriture et des signaux de
contrôle associés.
WREADY Esclave Indique si l'esclave est prêt (1) ou non (0) pour
recevoir des données d'écriture.
WDATA Maître Données d'écriture.
WVAL ID Maître Indique si les données d'écriture sont prêtes pour
le transfert (1) ou non (0) à l'esclave.
BRESP Esclave Résultat de l'écriture (2 bits) : OKAY, EXOKAY,
SLVERR, ou DECERR.
BVALID Esclave Positionné à 1 pendant la transmission par le
l'esclave d'un résultat d'écriture valide, sinon à 0.
WLAST Maître Indique le dernier transfert de données en
écriture.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
8
BREADY Maître Positionné à 1 pour signifier que le maître est
prêt
à recevoir un résultat d'écriture, sinon à 0.
En référence à la figure 3, une transaction en lecture selon le protocole AXI
comprend les étapes suivantes.
Le signal ACLK est synchronisé sur une horloge source. Un maître émet le
signal AWADDR contenant une adresse d'écriture A de l'esclave à laquelle
il souhaite accéder. Parallèlement, le maître positionne à un le signal
AWVALID pour signifier à l'esclave destinataire la validité de l'adresse A.
L'esclave confirme la disponibilité de l'adresse A en positionnant le signal
AWREADY à un.
Le maître positionne ensuite le signal WREADY à un pour signifier à
l'esclave qu'il est prêt à transmettre des données à écrire.
Les données d'écriture sont ensuite transmises par le maître sur le signal
WDATA. La figure 3 illustre une salve de quatre transferts D(A0), D(A1),
D(A2) et D(A3). Au début du premier transfert, le signal BREADY est
positionné à un par le maître pour indiquer qu'il est prêt à recevoir un
résultat d'écriture qui sera transmis à la fin de la séquence. Pendant chaque
transfert, le signal WVALID est positionné à un par le maître pour signifier à

l'esclave la validité des données à écrire. Pour indiquer à l'esclave qu'un
transfert D(A3) est le dernier, le signal WLAST est positionné à un au début
du dernier transfert.
Pour confirmer l'écriture au maître, l'esclave positionne ensuite le signal
BRESP à la valeur OKAY. Ce positionnement est accompagné d'un
positionnement du signal BVALID à un pendant la durée de transmission de
la valeur OKAY. Le maître repositionne enfin le signal BREADY à zéro une
fois cette valeur reçue.
L'écriture illustrée en figure 3 est réalisée en dix coups d'horloge (entre
les
coups d'horloge TO et T10), dont sept pour la seule phase de transfert de
données.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
9
D'autres signaux du protocole AXI sont en pratique positionnés pendant une
lecture ou une écriture mais ils ne sont pas détaillés dans le présent
document dans un souci de simplicité.
Les autres protocoles de la famille AMBA (AHB, AHB-Lite, APB) suivent le
même principe général de transaction en écriture/écriture réalisent les
phases successives de requête et de transfert de données avec des
signaux différents.
Chaque interface entre un bus conforme au standard AMBA et un module
esclave ou maître peut implémenter un des protocoles de la famille AMBA.
En référence à la figure 7, soit un système sur puce comprenant au moins
un module maître principal Ma, au moins un module maître secondaire Ml,
..., Mi, ..., Mk, au moins un module esclave Si, ..., Sj, ..., Sn et un bus B
connecté à chaque module par un lien de communication.
le bus B comprend des moyens d'interconnexion pour faire communiquer
au moins un module esclave commun Sj avec au moins un module maître
principal Ma et au moins un module maître secondaire Ml, ..., Mi, ..., Mk.
Dans le présent document, un module esclave dit commun désignera un
module esclave sur lequel plusieurs modules maître concurrents peuvent
accéder par l'intermédiaire du bus B.
La route de communication entre un module maître secondaire Mi et un
module esclave Sj comprend au moins deux liens de communication: un
premier lien de communication entre le module maître secondaire Mi et un
port esclave PSi du bus B, et un deuxième lien de communication entre un
port maître PMj du bus B et le module esclave Sj. Les signaux émis par le
module maître secondaire Mi transitent par le port esclave PSi, puis sont
routés par le bus B vers le port maître PMj puis sont transmis au module
esclave Sj connecté à ce port maître PMj. Les signaux émis par le module
esclave Sj à destination du maître secondaire Mi suivent la même route en
sens inverse.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
De manière similaire, la route de communication entre un module maître
principal Ma et le module esclave Sj comprend deux liens de
communication : un premier lien de communication entre le module maître
Ma et un port esclave PSa du bus B, et un deuxième lien de communication
5 entre le port maître PMj du bus B et le module esclave commun Sj. Les
signaux émis par le module maître Ma transitent par le port esclave PSa,
puis sont routés par le bus B vers le port maître PMj puis sont transmis au
module esclave Sj connecté à ce port maître PMj. Les signaux émis par le
module esclave Sj à destination du maître secondaire Mi suivent la même
10 route en sens inverse.
Les deux routes de communications entre le module esclave commun Sj et
les modules maître concurrents Ma et Mi ont donc au moins une portion de
route commune. Cette portion de route commune comprend au moins le
port maître PMj et le lien de communication entre ce port maître PMj et le
module esclave commun Sj.
Le procédé de contrôle de bande passante de l'invention va maintenant être
décrit en référence aux diagrammes des figures 5a à 5d.
Dans une étape de première détection DET1 , une première requête
d'accès à un module esclave commun Sj émise par un module maître
principal Ma est détectée.
Un délai de blocage D1 associé au module esclave commun Sj est ensuite
déterminé dans une étape référencée CALC .
Enfin, tout transfert de données sur l'au moins une portion de route
commune entre un module maître secondaire Mi quelconque et le module
esclave commun Sj est bloquée BLOCK , et ce pendant le délai de
blocage Di déterminé précédemment.
Pendant le délai D1 de blocage, la portion de route commune partagée avec
le module maître principal Ma n'est pas occupée par des données
transférées entre un module maître secondaire Mi et le module esclave
commun Sj. Par conséquent, de la bande passante est libérée sur la route

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
11
de communication entre un module maître principal (par exemple le module
Ma) et le module esclave commune Sj.
Le procédé peut être répété pour tous les modules esclaves communs du
système sur puce.
Dans une variante de réalisation, on peut faire varier le délai de blocage D1
associé à un module esclave Sj commun selon le nombre de requêtes
d'accès à ce module Sj émises par un ensemble de modules maîtres.
Cette variation peut être assurée par un compteur d'occurrences Cj associé
au module esclave commun Sj. La première détection DET1 est alors suivie
d'une incrémentation INCR dudit compteur d'occurrences Cj associé au
module esclave commun Sj, dont la valeur croît avec le délai Dj.
Ainsi, plus des modules maîtres principaux sollicitent des accès au module
esclave commun Sj, plus des modules maître secondaires requérant des
accès à ce module esclave commun Sj seront sanctionnés, c'est-à-dire
devront attendre pour y accéder.
L'étape de détermination CALC peut comprendre une lecture de la valeur yj
du compteur d'occurrences associé au module esclave commun Sj et
calculer le délai D1 de blocage selon une formule prédéterminée.
Le délai de blocage D1 peut par exemple être proportionnel à la valeur yj du
compteur d'occurrences correspondant. On peut également appliquer la
formule suivante :
D1 = vi * Tmõ + TB, OU
¨ Tmõ est la durée d'un transfert de données prédéterminé entre,
par exemple la durée d'un transfert de taille maximale autorisé
dans le système entre un module maître et un module esclave.
¨ TB est la durée de propagation d'une requête dans le bus B.
Le compteur d'occurrences Cj peut par ailleurs être décrémenté DECR
après une deuxième détection DET2 d'une deuxième requête émise par un

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
12
module maître principal pouvant avoir accès au module esclave commun Sj
par l'intermédiaire du bus B, à un autre module esclave que le module Sj.
Le module maitre principal émetteur de la deuxième requête peut être
l'émetteur de la première requête, ou plus généralement tout module maître
principal disposant d'une route de communication le liant au module esclave
commun Sj. Ainsi, un maître secondaire souhaitant accéder à un module
esclave commun ne sera pas sanctionné si aucun module maître principal
n'a besoin d'accéder à ce même module Sj.
Dans une variante non illustrée, l'étape de décrémentation DECR peut être
remplacée par une remise à zéro complète du compteur d'occurrence Cj.
L'étape de blocage (BLOCK) peut en outre comprendre les sous-étapes
suivantes répétées pendant le délai de blocage D1:
¨ deuxième interception CATCH2 d'un signal de réponse à
destination du module maître secondaire Mi positionné à une
valeur active indiquant une disponibilité du module esclave
commun Sj,
¨ repositionnement FILTER dudit signal de réponse à une
valeur inactive indiquant une indisponibilité dudit module esclave
commun Sj.
Ceci permet d'assurer un blocage pendant la phase de requête, avant que
la phase de transfert ne commence. Ainsi, aucune donnée ne transite sur la
route de communication entière entre le module esclave secondaire Mi et le
module esclave commun Sj, y compris la portion de route commune avec le
module maître principal Ma. De plus, le module maître secondaire peut, à la
réception du signal de réponse, demander un autre accès à un autre
module sans perdre du temps à transférer des données qui seraient de
toutes façon bloquées avant d'atteindre le module esclave commun Sj.
Par ailleurs, l'étape de blocage BLOCK peut être réalisée
inconditionnellement, ou seulement si une condition est remplie.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
13
Une condition peut consister à comparer dans une étape référencée
TESTI la valeur yi du compteur d'occurrences associé au module Sj
avec un premier seuil d'occurrences Ni prédéterminé.
¨ si yi > Ni ( MING ) alors le blocage BLOCK est réalisé ;
¨ sinon ( OK1 ), le blocage BLOCK n'est pas réalisé.
Cette condition permet de réserver une plage de valeurs pour le compteur
d'occurrences Cj dans laquelle des accès au module esclave commun ne
sont pas considérés pénalisants, car ne consomment pas suffisamment de
bande passante pour retarder des accès demandés au module esclave
commun Sj de façon significative.
Un module maître secondaire souhaitant accéder au module esclave
commun Sj ne sera alors pas sanctionné. En d'autres termes, ce premier
seuil permet de ne pas introduire systématique des blocages dans le
système, mais uniquement lorsque la valeur du compteur sort de cette
plage de valeurs.
Le procédé peut en outre comporter une étape supplémentaire d'envoi
STAT d'un message de statut vers un contrôleur d'interruption (non
représenté sur les figures) après un blocage BLOCK. Cette étape STAT
permet notamment de notifier la consommation courante de bande
passante à un module maître, esclave ou bien à tout autre module tiers du
système sur puce.
Par ailleurs, l'étape d'envoi STAT peut être réalisée inconditionnellement,
ou seulement si une condition est remplie.
Une condition peut consister à comparer dans une étape référencée
TEST2 la valeur vi du compteur d'occurrences Cj associé au module Sj
avec un deuxième seuil d'occurrences N'i prédéterminé.
¨ si yi > N'i ( MAXC ) alors l'envoi STAT est réalisé ;
¨ sinon ( 0K2 ), l'envoi STAT n'est pas réalisé.
Le deuxième seuil N'i peut être supérieur au premier seuil Ni. Ne sont alors
notifiés dans l'étape STAT que des messages indiquant des
consommations de bande passante critiques pour le système.

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
14
Le procédé peut également comprendre des étapes de:
¨ troisième détection DET3 d'une troisième requête d'accès au
module esclave commun Sj émise par un module maître principal, la
troisième détection étant postérieure à la première détection DET1,
¨ décrémentation DECR du compteur Cj associé au module esclave
commun Sj avant la troisième détection DET3, à chaque fois que le
temps écoulé depuis la première détection DET1 franchit une valeur
multiple d'un seuil temporel prédéterminé.
Cette variante permet de prendre en considération la fréquence d'accès de
l'ensemble des modules maîtres principaux au module esclave commun Sj
pour calculer un délai de blocage, et sanctionner un module maitre
secondaire requérant un accès à ce même esclave commun Sj.
En effet, si aucun module maître principal n'accède au module esclave
commun Sj dans une plage de temps supérieure au seuil temporel, la valeur
du compteur Cj va diminuer progressivement, et ainsi diminuer le temps de
blocage imposé à un module maître secondaire requérant un accès à Sj.
Cette variante peut être réalisée à l'aide d'un compteur de temps associé au
module esclave commun Sj.
Après la première détection DET1 de la première requête émanant d'un
module maître principal au module esclave commun Sj, le compteur de
temps est initialisé et démarré dans une étape RESETT .
Dans une étape ELAPS, la valeur du compteur de temps est surveillée. A
chaque fois ( TIMEOUT ) que la valeur de ce compteur de temps franchit
le seuil temporel Ti, le compteur d'occurrence Cj est décrémenté, et le
compteur de temps est réinitialisé et redémarré RESETT.
En revanche, si la troisième détection DET3 survient avant que la valeur du
compteur de temps ne franchisse le seuil temporel ( OKT ), alors le
compteur d'occurrence Cj n'est pas décrémenté.
Chaque compteur Cj peut être un compteur d'occurrences configuré avec
une valeur d'incrément égale à 1.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
En variante, chaque compteur est un compteur dont la valeur d'incrément
est supérieure à 1. Chaque incrémentation et décrémentation modifie alors
la valeur du compteur d'une valeur supérieure à 1.
5 Un exemple d'évolution du compteur Cj associé à un module esclave
commun Sj en fonction de requêtes d'accès détectées au cours du temps
va maintenant être détaillé en regard de la figure 6.
La valeur du compteur Cj est initialement configurée à la valeur 1, et son
incrément à 1 également.
10 Survient une première détection DET1 d'une première requête d'accès
émise par un module maître principal au module esclave Sj ; le compteur Cj
est alors incrémenté INCR à la valeur 2. Le compteur de temps associé au
module esclave Sj est par ailleurs initialisé et démarré (étape RESETT).
Survient ensuite une deuxième détection DET2 d'une deuxième requête
15 d'accès émise par un module maître principal pouvant avoir accès module
esclave Sj, à un autre module esclave que le module Sj ; le compteur Cj est
alors décrémenté DECR à la valeur 1.
Lorsque le seuil temporel Ti est atteint (TIMEOUT) par le compteur de
temps, une décrémentation DECR du compteur d'occurrences Cj est
réalisée, sa valeur devenant égale à 0. Le compteur de temps associé au
module esclave Sj est par ailleurs réinitialisé et redémarré (RESETT).
Enfin, survient une troisième détection DET3 d'une troisième requête
d'accès émise par un module maître principal au module esclave Sj, avant
que le seuil temporel Ti ne soit a nouveau atteint par le compteur de temps
associé au module Sj. Le compteur Cj est alors incrémenté à la valeur 1. Le
compteur de temps associé au module esclave Sj est par ailleurs réinitialisé
et redémarré (RESETT).
L'étape de réinitialisation/redémarrage RESETT du compteur de temps
associé au module esclave commun Sj est effectuée pour chaque première
détection DET1, et/ou chaque troisième détection DET3.
L'étape RESETT peut également être réalisée pour chaque deuxième
détection DET2.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
16
Par ailleurs, les étapes de détection DET1, DET2, DET3 peuvent être
réalisée sur le lien de communication entre le module maître secondaire Mi
et le bus B. Cet emplacement de détection permet de distinguer simplement
et avec certitude que le module maître émetteur d'une requête est
secondaire et non principal, et donc de bloquer ses accès à un module
esclave au profit d'un module maître principal tiers.
De la même manière, l'étape de blocage BLOCK peut être réalisée sur ce
même lien de communication. Ceci garantit que seul le module maître
secondaire émetteur de la requête d'accès au module esclave commun Sj
sera bloqué.
Les étapes de détection DET1, DET2, DET3 peuvent par ailleurs
comprendre des sous-étapes de
¨ première interception CATCH1 d'un signal comprenant une
adresse d'accès,
¨ recherche SEARCH d'un module esclave destinataire
correspondant à l'adresse d'accès dans une table d'adressage
prédéterminée.
Les étapes de détection DET1, DET2, DET3 et/ou de blocage BLOCK
peuvent par ailleurs être réalisées chacune sur un lien de communication
selon un protocole suivant le standard AMBA, tel que le protocole AXI ou le
protocole AHB.
Les signaux suivants du protocole AXI peuvent être utilisés :
¨ signal comprenant une adresse d'accès intercepté dans l'étape de
détection :
o pour un accès en écriture : AWADDR (le signal AWVALID doit
être positionné à 1 pour signifier la validité de l'adresse),
o pour un accès en lecture : ARADDR (le signal ARVALID doit
être positionné à 1 pour signifier la validité de l'adresse),
¨ signal de réponse intercepté dans l'étape de blocage BLOCK :
AWREADY (pour un accès en écriture) ou ARREADY (pour un accès
en lecture),
Les signaux suivants du protocole AHB peuvent également être utilisés :

CA 02904176 2015-09-04
WO 2014/135513
PCT/EP2014/054121
17
¨ signal comprenant une adresse d'accès intercepté dans l'étape de
détection : HADDR (le signal HSELx doit être positionné à 1 pour
signifier la validité de l'adresse),
¨ signal de réponse intercepté dans l'étape de blocage : HREADY
positionné à HIGH (ce signal est alors repositionné à LOW dans la
sous-étape de repositionnement pour indiquer une indisponibilité du
module esclave commun Sj au module maître secondaire Mi).
Le compteur de temps peut être par ailleurs synchronisé avec une horloge
utilisée pour synchroniser des signaux de communication entre le module
maître et le module esclave. Le compteur de temps peut alors s'incrémenter
pour chaque front montant détecté sur le signal ACLK d'un lien de
communication suivant le protocole AXI ; ainsi, le seuil temporel est vu
comme un nombre maximal de coups d'horloge.
Le procédé de contrôle de bande passante peut être généralisé à tout
protocole du standard AMBA ou à toute combinaison de protocoles de la
famille AMBA utilisée sur une route de communication entre un module
maître et un module esclave interconnectés par au moins un bus B.
Le procédé de contrôle de bande passante peut être mis en oeuvre dans un
dispositif Xi qui va maintenant être détaillé.
Le dispositif Xi de contrôle de bande passante comprend des moyens de
détection de signaux, des moyens de stockage, n compteurs d'occurrences
et des moyens de traitement configurés pour mettre en oeuvre n fois en
parallèle le procédé de contrôle de bande décrit plus haut. Le dispositif Xi
peut également comprendre n compteurs de temps.
Les moyens de stockage du dispositif Xi sont prévus pour le stockage de n
délais de blocage, n premiers seuils d'occurrences, de n deuxièmes seuils
d'occurrences et/ou de n seuils temporels.
Les moyens de stockage du dispositif Xi sont également prévus pour
stocker n identifiants de modules esclaves communs, et n tables
d'adressages.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
18
Toutes ces informations peuvent être écrites dans les moyens de stockage
une seule fois avant la mise en service du système sur puce, ou être
reconfigurées dynamiquement.
Les moyens de stockage peuvent par exemple être une ou plusieurs
mémoires flash ou EEPROM.
En référence à la figure 7, l'invention concerne également un système sur
puce comprenant au moins un module maître principal Ma, au moins un
module maître secondaire M1, ..., Mi, ..., Mk, au moins un module esclave
Si, Sj, ...,
Sn et un bus B connecté à chaque module sur un lien de
communication et au moins un dispositif de contrôle de bande passante X1,
..., Xi, ..., Xk tel que décrit plus haut.
Le bus B comprend des moyens d'interconnexion pour faire communiquer
au moins un module esclave commun avec au moins un module maître
principal et avec au moins un module maître secondaire par au moins une
portion de route commune.
Chaque dispositif de contrôle de bande passante X1, ..., Xi, ..., Xk est
connecté à un module maître secondaire M1, Mk, à
au moins un maître
principal Ma, et au bus B.
Le dispositif de contrôle de bande passante X peut, au choix, être intégré à
un bus, faire partie d'un module maître secondaire, ou bien être se
présenter sous la forme d'un module autonome placé sur la liaison entre un
module maître secondaire et un port esclave d'un bus B. Chaque dispositif
peut alors être associé à un seul module maître secondaire et bloquer des
requêtes d'accès émanant de ce module maître secondaire.
Dans chaque dispositif de contrôle de bande passante X1, ..., Xi, ..., Xk
associé à un module maître secondaire respectif M1, ..., Mi, ..., Mk, un
compteur d'occurrences Cj, un premier seuil d'occurrence Nj, un deuxième
seuil d'occurrence N'1, un compteur de temps et un seuil temporel peuvent
être affectés à un module esclave commun Sj présent dans le système sur
puce.

CA 02904176 2015-09-04
WO 2014/135513 PCT/EP2014/054121
19
De cette manière, toute requête d'accès à un module esclave commune
émanant d'un module maître secondaire peut être contrôlé, et ce avec des
paramètres spécifiques à chaque paire formée par un module maître
secondaire et un module esclave commun.
Dans le mode de réalisation de système sur puce illustré en figure 7, un
seul module maître principal Ma est présent, et peut avoir accès à tous les
modules esclaves, qui sont tous des modules esclaves communs partagés
avec les modules maîtres secondaires Ml, ..., Mi, ..., Mk. En conséquence,
chaque dispositif de contrôle de bande passante est connecté au module
maître principal Ma, et est destiné à bloquer des requêtes émanant d'un
module maître secondaire respectif.
En variante, un système peut comporter plusieurs modules maîtres
principaux, et les modules esclaves ne sont pas tous des modules esclaves
communs.
Les dispositifs de contrôle de bande passante peuvent être insérés dans un
système sur puce classique tel que celui illustré en figure 1 de la manière
suivante:
¨ identification des modules esclaves communs parmi les modules
esclaves connectés à un bus B;
¨ Pour chaque module esclave commun identifié,
o identification des modules maîtres secondaires pouvant avoir
accès au module esclave commun par l'intermédiaire du bus
B,
o identification des modules maîtres principaux pouvant avoir
accès au module commun par l'intermédiaire du bus B,
¨ Pour chaque module maître secondaire identifié,
o insertion d'un dispositif de contrôle de bande passante
respectif sur le lien de communication entre le module maître
secondaire et le bus B,
o connexion du dispositif de contrôle de bande passante inséré
à chaque module maître principal identifié.
Un système sur puce selon l'invention est alors obtenu.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(86) PCT Filing Date 2014-03-04
(87) PCT Publication Date 2014-09-12
(85) National Entry 2015-09-04
Dead Application 2017-03-06

Abandonment History

Abandonment Date Reason Reinstatement Date
2016-03-04 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2015-09-04
Registration of a document - section 124 $100.00 2015-11-16
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
SAGEM DEFENSE SECURITE
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Abstract 2015-09-04 2 88
Claims 2015-09-04 4 139
Drawings 2015-09-04 4 369
Description 2015-09-04 19 803
Representative Drawing 2015-09-04 1 4
Cover Page 2015-10-08 1 40
International Search Report 2015-09-04 16 485
Declaration 2015-09-04 1 55
National Entry Request 2015-09-04 5 215