Language selection

Search

Patent 2777729 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: (11) CA 2777729
(54) English Title: ELECTRONIC CONTROL UNIT HAVING A REAL-TIME CORE MANAGING PARTITIONING
(54) French Title: UNITE ELECTRONIQUE DE COMMANDE A NOYAU TEMPS REEL GERANT UN PARTITIONNEMENT
Status: Deemed expired
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 9/50 (2006.01)
  • G06F 12/14 (2006.01)
(72) Inventors :
  • RENAULT, GUY (France)
(73) Owners :
  • SAGEM DEFENSE SECURITE (France)
(71) Applicants :
  • SAGEM DEFENSE SECURITE (France)
(74) Agent: GOUDREAU GAGE DUBUC
(74) Associate agent:
(45) Issued: 2015-06-09
(86) PCT Filing Date: 2010-10-19
(87) Open to Public Inspection: 2011-04-28
Examination requested: 2012-04-13
Availability of licence: N/A
(25) Language of filing: French

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/EP2010/006361
(87) International Publication Number: WO2011/047823
(85) National Entry: 2012-04-13

(30) Application Priority Data:
Application No. Country/Territory Date
0905077 France 2009-10-22

Abstracts

English Abstract

The invention relates to an electronic control unit including a microcontroller provided with a dynamic memory, corresponding to the variable data, and a read-only memory, corresponding to the code of an operating software system having a built-in real-time core for executing computer tasks, the dynamic and read-only memories comprising areas assigned to partitions allocated to the real-time core for one partition and to at least one of the tasks for each of the other partitions, said control unit being physically combined with a programmed address bus such that each partition cannot write into another area of the dynamic memory and moreover cannot execute another area of the read-only memory. The real-time core corresponds to timing for allocating an execution time to each partition.


French Abstract

Unité électronique de commande comprenant un microcontrôleur pourvu d'une mémoire dynamique associée aux données variables et d'une mémoire morte associée au code d'un système logiciel d'exploitation intégrant un noyau temps réel pour exécuter des tâches informatiques, les mémoires dynamique et morte comportant des zones affectées à des partitions allouées pour l'une au noyau temps réel et pour d'autres chacune à au moins une des tâches et étant associée à un bus d' adresses programmé physiquement pour que chaque partition ne puisse pas, d'une part écrire dans une autre des zones de la mémoire dynamique, et d'autre part exécuter une autre des zones de la mémoire morte et le noyau temps réel est associé à une temporisation pour allouer à chaque partition un temps d'exécution.

Claims

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





11
REVENDICATIONS
1. Unité électronique de commande comprenant un
microcontrôleur pourvu d'une mémoire morte contenant un code
d'un système logiciel d'exploitation intégrant un noyau temps
réel pour exécuter des tâches informatiques, et d'une mémoire
dynamique contenant des données variables en relation avec le
noyau temps réel et les tâches, les mémoires dynamique et morte
comportant des zones affectées à des partitions allouées pour
l'une au noyau temps réel et pour d'autres chacune à au moins
une des tâches et étant associées à un bus d'adresses programmé
physiquement pour empêcher chaque partition, d'une part,
d'écrire dans une autre des zones de la mémoire dynamique et,
d'autre part, d'exécuter une autre des zones de la mémoire
morte et le noyau temps réel est associé à une temporisation
pour allouer à chaque partition un temps d'exécution, dans
laquelle la partition allouée au noyau temps réel contient une
liste de tâches prêtes à être exécutées établie par partition
et le noyau temps réel est agencé pour gérer un pointeur de
partition pour accéder à la liste des tâches prêtes, et la
liste des tâches prêtes se présente sous la forme d'une tête de
chaînage qui contient les adresses de contextes de la première
et de la dernière des tâches prêtes à être exécutées.
2. Unité selon la revendication 1, dans laquelle le
noyau temps réel est agencé pour commander une exécution des
partitions selon un cycle d'exécution circulaire.
3. Unité selon la revendication 2, dans laquelle le
cycle d'exécution comprend une même partition plusieurs fois.
4. Unité selon la revendication 2, dans laquelle le
cycle d'exécution comprend un intervalle de réserve temporelle.
5. Unité selon la revendication 1, dans laquelle la
partition allouée au noyau temps réel contient des pages
mémoires allouées chacune à une tâche pour contenir les
registres de chaque tâche, le noyau temps réel étant agencé
pour gérer un pointeur de tâche destiné à contenir l'adresse de
la page de la tâche en cours d'exécution.




12
6. Unité selon la revendication 1, dans laquelle
l'unité de commande est un microcircuit incorporant un jeu
d'instructions d'un microcontrôleur et de périphériques d'un
tel microcontrôleur.
7. Unité selon la revendication 1, dans laquelle le
microcontrôleur est un réseau logique programmable.
8. Unité électronique de commande comprenant un
microcontrôleur pourvu d'une mémoire morte contenant un code
d'un système logiciel d'exploitation intégrant un noyau temps
réel pour exécuter des tâches informatiques, et d'une mémoire
dynamique contenant des données variables en relation avec le
noyau temps réel et les tâches, les mémoires dynamique et morte
comportant des zones affectées à des partitions allouées pour
l'une au noyau temps réel et pour d'autres chacune à au moins
une des tâches et étant associées à un bus d'adresses programmé
physiquement pour empêcher chaque partition, d'une part,
d'écrire dans une autre des zones de la mémoire dynamique et,
d'autre part, d'exécuter une autre des zones de la mémoire
morte et le noyau temps réel est associé à une temporisation
pour allouer à chaque partition un temps d'exécution, dans
laquelle l'unité est agencée de manière que seulement deux
partitions puissent s'exécuter à un instant donné et le
microcontrôleur est agencé pour gérer quatre tampons pour les
deux partitions pouvant s'exécuter à un instant donné :
.cndot. un tampon pour le code et un tampon pour les
données de la partition allouée au noyau
temps réel ; et
.cndot. un tampon pour le code et un tampon pour les
données de la partition allouée à la tâche
active audit instant.
9. Unité selon la revendication 8, le noyau temps réel
est agencé pour commander une exécution des partitions selon un
cycle d'exécution circulaire.
10. Unité selon la revendication 9, dans laquelle le
cycle d'exécution comprend une même partition plusieurs fois.
11. Unité selon la revendication 9, dans laquelle le
cycle d'exécution comprend un intervalle de réserve temporelle.

Description

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



CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
1
Unité électronique de commande à noyau temps réel gérant
un partitionnement

La présente invention concerne une unité électro-
nique de commande à noyau temps réel gérant un partition-
nement. La présente invention est plus particulièrement
destinée à des applications aéronautiques.
Parmi celles-ci, il est connu sous l'acronyme
FADEC (de l'anglais full authority digital engine
control ou régulateur moteur numérique à totale autori-
té) une unité de commande comportant un microcontrôleur
intégrant un système logiciel d'exploitation pour exécu-
ter des tâches d'applications informatiques. Ces applica-
tions peuvent être exécutées en tout ou partie de façon
simultanée. Le système d'exploitation incorpore un noyau
temps réel (ou RTOS de l'Anglais Real-Time Operating
System ) pour gérer l'exécution des applications et as-
surer un routage de données entre deux applications et
entre les applications et le matériel. Il est prévu un
partitionnement avec des partitions allouées à chaque ap-
plication pour éviter que les applications ne se pertur-
bent mutuellement lors de leur exécution. Ce partitionne-
ment est régi dans le domaine aéronautique par la norme
ARINC 653 qui prévoit un partitionnement spatial, qui ga-
rantit qu'une application ne peut écrire dans une zone
mémoire affectée à une partition d'une autre application,
et un partitionnement temporel qui garantit qu'un temps
d'exécution sera alloué à chaque application. Ce parti-
tionnement permet d'avoir des applications de fournis-
seurs différents et / ou de criticité différente. Les
noyaux temps réel compatibles avec la norme ARINC 653
sont cependant onéreux et présente l'inconvénient que le
partitionnement est purement logiciel et peut être rendu
inefficace par une application qui s'exécuterait en-
COPIE DE CONFIRMATION


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
2
dehors du noyau temps réel.
En outre, dans les noyaux multitâches, lorsque
l'ordonnanceur du noyau commande le passage d'une pre-
mière tâche à une deuxième tâche, le contexte de la pre-
mière tâche (c'est-à-dire l'ensemble des valeurs d'états
du microcontrôleur qui sont nécessaires à son exécution
et sont notamment enregistrées dans les registres mémoi-
res du microcontrôleur) doit être sauvegardé tandis que
le contexte de la deuxième tâche doit être retrouvé et
restauré. Les changements de contexte sont ainsi relati-
vement longs et ce d'autant plus que les microcontrôleurs
comportent un nombre de registres à sauvegarder de plus
en plus important. Les changements de partitions sont
tout aussi longs pour les mêmes raisons. Ceci constitue
un inconvénient supplémentaire des noyaux multitâches
compatibles avec la norme ARINC 653.
Un but de l'invention est de fournir une unité de
commande offrant un partitionnement spatial et temporel
fort.
A cet effet, on prévoit, selon l'invention, une
unité électronique de commande comprenant un microcontrô-
leur pourvu d'une mémoire morte contenant un code d'un
système logiciel d'exploitation intégrant un noyau temps
réel pour exécuter des tâches informatiques, et d'une mé-
moire dynamique contenant des données variables en rela-
tion avec les tâches. La mémoire morte et la mémoire dy-
namique comportent des zones affectées à des partitions
allouées pour l'une au noyau temps réel et pour d'autres
chacune à au moins une des tâches. La mémoire morte et la
mémoire dynamique sont associées à un bus d'adresses pro-
grammé physiquement pour empêcher chaque partition, d'une
part, d'écrire dans une autre des zones de la mémoire dy-
namique et, d'autre part, d'exécuter une autre des zones
de la mémoire morte et le noyau temps réel est associé à


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
3
une temporisation pour allouer à chaque partition un
temps d'exécution.
Ainsi, le bus d'adresse est programmé physique-
ment de sorte qu'une tâche exécutée dans une partition
n'a aucun moyen matériel pour écrire des données ou exé-
cuter du code dans une autre partition que celle qui lui
a été allouée. L'échange de données entre partitions ne
peut pas matériellement être effectué sans passer par le
noyau temps réel via la programmation du bus d'adresse.
Le noyau temps réel assure de la sorte l'intégrité des
données des partitions autres que celles en cours
d'exécution. Le noyau temps réel garantit en outre que
chaque tâche pourra s'exécuter en allouant à chacune des
tâches une fenêtre temporelle d'exécution. Les tâches
peuvent alors s'exécuter de manière concurrente en limi-
tant au maximum le risque d'une perturbation mutuelle de
leur exécution.
Avantageusement, le noyau temps réel est agencé
pour commander une exécution des partitions selon un cy-
cle d'exécution circulaire et, de préférence encore, le
cycle d'exécution peut comprendre une même partition plu-
sieurs fois.
Un tel cycle est simple à gérer.
De préférence encore, le cycle d'exécution com-
prend un intervalle de réserve temporelle.
La réserve temporelle permet de rajouter une ou
plusieurs tâches de manière simple sans remaniement com-
plet du cycle d'exécution.
Selon une première caractéristique particulière-
ment intéressante de l'invention, la partition allouée au
noyau temps réel contient des pages mémoires allouées
chacune à une tâche pour contenir les registres de chaque
tâche, le noyau temps réel étant agencé pour gérer un
pointeur de tâche destiné à contenir l'adresse de la page


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
4
de la tâche en cours d'exécution.
Ceci permet d'accélérer le changement de registre
en évitant la nécessité d'une sauvegarde, dans une zone
d'adresse fixe prédéfinie, des registres de la tâche en
cours et une restitution des registres de la tâche à exé-
cuter. Il en résulte un changement de contexte relative-
ment rapide ayant une durée indépendante du nombre de re-
gistres. Ceci permet également d'assurer un partitionne-
ment des registres en obligeant une commande appropriée
du pointeur de tâches pour accéder à un registre.
Selon une deuxième caractéristique particulière-
ment intéressante de l'invention, la partition allouée au
noyau temps réel contient une liste de tâches prêtes à
être exécutées établie par partition et le noyau temps
réel est agencé pour gérer un pointeur de partition pour
accéder à la liste des tâches prêtes et, de préférence,
la liste des tâches prêtes se présente sous la forme
d'une tête de chaînage qui contient les adresses de
contextes de la première et de la dernière des tâches
prêtes à être exécutées.
Ceci permet un changement rapide de partition par
la simple mise à jour du pointeur de partition.
D'autres caractéristiques et avantages de
l'invention ressortiront à la lecture de la description
qui suit de modes de réalisation particuliers non limita-
tifs de l'invention.
Il sera fait référence aux dessins annexés, parmi
lesquels :
- la figure 1 est une représentation schématique
du partitionnement spatial de la mémoire morte et de la
mémoire vive,
- la figure 2 est une représentation schématique
de l'unité de commande conforme à l'invention montrant en
particulier l'organisation du partitionnement de la mé-


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
moire vive,
- la figure 3 est une représentation schématique
de l'ordonnancement des partitions.
L'invention est ici décrite dans une application
5 aéronautique pour la régulation d'un ou plusieurs moteurs
d'un aéronef. L'unité de commande est ici du type FADEC
et est conforme à la norme ARINC 653.
En référence aux figures, l'unité de commande
conforme à l'invention est un microcircuit de type SOC
(de l'anglais System On Chip ) comportant le jeu
d'instructions d'un microcontrôleur et ses périphériques.
L'unité de commande peut également être réalisée sous la
forme d'un réseau logique programmable ou FPGA (de
l'anglais Field Programmable Gate Array ). A titre
d'exemple, le microcontrôleur peut être écrit en langage
VHDL et reprogrammable.
L'unité de commande comprend ainsi un micro-
contrôleur 1 pourvu d'une mémoire morte 2 ou ROM (pour
Read Only Memory ) et d'une mémoire vive 3 ou dynami-
que (également appelée RAM pour Random Access Memo-
ry ) . L'unité de commande comprend en outre notamment
des moyens non représentés de connexion à des capteurs
disposés sur le ou les moteurs et à des instruments de
commandes disposés dans le poste de pilotage de
l'aéronef.
La mémoire morte 2 comporte des zones affectées à
des partitions (PO à P3) allouées pour l'une au code d'un
système logiciel d'exploitation et pour d'autres au code
d'applications ou programmes informatiques comportant des
tâches. La mémoire morte 2 est associée à un bus
d'adresses programmé physiquement pour que chaque parti-
tion ne puisse pas exécuter du code dans une autre des
zones de la mémoire morte que celle qui lui a été affec-
tée. Le système logiciel d'exploitation incorpore un


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
6
noyau temps réel ayant pour fonctions d'assurer
l'ordonnancement des tâches et de garantir le respect de
contraintes temporelles prédéterminées pour l'exécution
des tâches. La partition PO est ainsi allouée au code du
noyau temps réel et les autres partitions (ici les parti-
tions P1 à P3) sont allouées chacune au code d'une ou
plusieurs tâches (ici les tâches Ti à T6).
La mémoire vive 3 comporte des zones affectées à
des partitions (PO à P3) allouées pour l'une au noyau
temps réel et pour d'autres chacune à au moins une des
tâches et est associée à un bus d'adresses programmé phy-
siquement pour que chaque partition ne puisse pas écrire
dans une autre des zones de la mémoire vive que celle qui
lui a été affectée. La partition PO est ainsi allouée aux
données et autres variables du noyau temps réel et les
autres partitions (ici les partitions P1 à P3) sont al-
louées chacune aux données d'une ou plusieurs tâches (ici
les tâches Ti à T6).
Il est ainsi réalisé un partitionnement spatial
mis en oeuvre via un mécanisme d'adressage virtuel géré
par un contrôleur mémoire qui est incorporé au micro-
contrôleur et qui gère un bus d'adresses et un bus de
données (par analogie avec l'adressage virtuel classique,
l'adresse programmée correspond à l'adresse virtuelle et
l'adresse réelle à l'adresse physique ; voir la figure
1). Des tampons (ou buffers ou TLB pour Translation
Lookaside Buffer dans les microcontrôleurs de type MPC
5554) sont prévus pour programmer l'adresse de transla-
tion permettant de passer de l'adresse programmée à
l'adresse réelle. Le microcontrôleur gère ainsi quatre
tampons pour les deux partitions pouvant s'exécuter à un
instant donné :
. un tampon pour le code et un tampon pour les
données de la partition PO allouée au noyau temps réel ;


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
7
un tampon pour le code et un tampon pour les
données de la partition PX allouée à la tâche active au-
dit instant.
Tous les accès aux codes et aux données
s'effectuent via les tampons : lorsqu'un tampon est effa-
cé, l'accès à l'adresse physique est impossible. Ainsi,
en utilisant seulement quatre tampons, seules les deux
partitions désirées (noyau temps réel et tâche applica-
tive sélectionnée) sont accessibles. Les autres parti-
tions sont inaccessibles.
De plus, il est possible de donner aux tampons
des permissions superviseur et utilisateur de manière à
protéger la partition PO (mode superviseur) allouée au
noyau temps réel contre des accès non désirés par une
partition applicative s'exécutant en mode utilisateur.
Le noyau temps réel est en outre agencé pour met-
tre en oeuvre une temporisation pour allouer à chaque par-
tition Pl à P3 un temps d'exécution. Une temporisation
est un multiple d'un cycle de base cadencé par une inter-
ruption de l'horloge du microcontrôleur et la tâche acti-
vée par cette interruption appelle la routine de gestion
du temps du noyau temps réel de sorte que le noyau temps
réel reprend le contrôle à chacune de ces interruptions
pour décider si l'exécution de la partition en cours doit
être suspendue. Le noyau temps réel est ici plus particu-
lièrement agencé pour commander une exécution des parti-
tions et donc des tâches selon un cycle d'exécution cir-
culaire. Le cycle d'exécution comprend un intervalle de
réserve temporelle R permettant l'ajout de nouvelles par-
titions en prenant le temps d'exécution de celles-ci à la
réserve temporelle.
La partition PO allouée au noyau temps réel
contient des pages mémoires (PM1 à PM6) allouées chacune
à une tâche (Tl à T6) pour contenir les registres de cha-


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
8
que tâche, le noyau temps réel étant agencé pour gérer un
pointeur de tâche (PT) destiné à contenir l'adresse de la
page de la tâche en cours d'exécution.
La partition PO allouée au noyau temps réel
contient une liste de tâches prêtes à être exécutées éta-
blie par partition (LTP1 à LTP3) et le noyau temps réel
est agencé pour gérer un pointeur de partition (PP) pour
accéder à la liste des tâches prêtes (LTP1 à LTP3).
Chaque liste des tâches prêtes (LTP1 à LTP3) se
présente sous la forme d'une tête de chaînage qui
contient les adresses de contextes de la première et de
la dernière des tâches prêtes à être exécutées. Le noyau
temps réel maintient à jour la liste des tâches prêtes en
fonction de la survenance d'évènements (comme des appels
de fonctions ou des interruptions) déclencheurs desdites
tâches. En outre, le noyau temps réel tient compte des
priorités éventuelles accordées à chaque tâche pour or-
donner la liste des tâches prêtes.
Au lancement de l'exécution des tâches prêtes de
chaque partition, le noyau temps réel déclenche une tem-
porisation et, à la fin de la temporisation, suspend
l'exécution de ladite partition pour lancer l'exécution
des tâches prêtes de la partition suivante.
Le changement de partition se fait par la mise à
jour du pointeur de partition.
Le changement de contexte préalable à l'exécution
d'une nouvelle tâche se fait en introduisant dans le
pointeur de tâche PT l'adresse de la page mémoire conte-
nant les registres de la tâche à exécuter. La structure
de l'unité de commande décrite ci-dessus permet une mise
en oeuvre particulièrement efficace du mode de changement
de contexte de l'invention car elle autorise notamment
des modifications du jeu d'instructions et des périphéri-
ques du microcontrôleur.


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
9
Le changement de contexte (tâche ou partition)
est rapide et de durée constante. En effet, sa durée est
indépendante, d'une part, du nombre de registres internes
du microcontrôleur et, d'autre part, du nombre de tâches
prêtes ou du nombre de partitions à gérer.
L'invention permet ainsi un fonctionnement multi-
tâche et temps réel du microcontrôleur tout en respectant
la norme ARINC 653 en limitant le coût de l'unité de com-
mande.
De manière classique, la partition PO allouée au
noyau temps réel contient d'autres listes chaînées pour
gérer les ressources du noyau temps réel (temporisations,
files d'attente...) .
Bien entendu, l'invention n'est pas limitée aux
modes de réalisation décrits mais englobe toute variante
entrant dans le champ de l'invention telle que définie
par les revendications.
En particulier, les partitions peuvent avoir des
tailles identiques ou différentes.
Le cycle d'exécution peut comprendre une même
partition une ou plusieurs fois.
Différents moyens pour éviter une sauvegarde et
une restauration ultérieure des registres sont envisagea-
bles :
- modifier les instructions d'accès aux registres
pour y accéder en mode indexé, l'index étant fourni par
le pointeur de tâche, et non en mode direct ;
- quand l'adresse de la zone des registres est
configurable, autoriser une reconfiguration dynamique (et
pas uniquement au démarrage) à l'aide du pointeur de tâ-
che (pas de modification des instructions) ;
- créer un bus d'adresse, dédié aux registres,
dont une zone d'adresse peut être configurée dynamique-
ment à l'aide du pointeur de tâche.


CA 02777729 2012-04-13
WO 2011/047823 PCT/EP2010/006361
L'unité électronique peut avoir une structure
différente de celle décrite. Par exemple, la mémoire
morte 2 peut également être de type EEPROM (pour Elec-
trically Erasable Programmable Read Only Memory ) ou NVM
5 (pour Non Volatile Memory ).

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 2015-06-09
(86) PCT Filing Date 2010-10-19
(87) PCT Publication Date 2011-04-28
(85) National Entry 2012-04-13
Examination Requested 2012-04-13
(45) Issued 2015-06-09
Deemed Expired 2017-10-19

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $800.00 2012-04-13
Application Fee $400.00 2012-04-13
Registration of a document - section 124 $100.00 2012-05-02
Maintenance Fee - Application - New Act 2 2012-10-19 $100.00 2012-09-19
Maintenance Fee - Application - New Act 3 2013-10-21 $100.00 2013-09-23
Maintenance Fee - Application - New Act 4 2014-10-20 $100.00 2014-09-25
Final Fee $300.00 2015-03-16
Maintenance Fee - Patent - New Act 5 2015-10-19 $200.00 2015-09-24
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 2012-04-13 2 88
Claims 2012-04-13 2 64
Drawings 2012-04-13 2 23
Description 2012-04-13 10 412
Representative Drawing 2012-04-13 1 7
Cover Page 2012-06-13 2 43
Claims 2014-02-21 2 74
Claims 2014-12-16 2 101
Representative Drawing 2015-05-14 1 4
Cover Page 2015-05-14 2 42
PCT 2012-04-13 11 390
Assignment 2012-04-13 6 160
Assignment 2012-05-02 2 66
Correspondence 2012-06-05 1 89
Correspondence 2012-06-05 1 76
Correspondence 2012-06-11 1 21
Correspondence 2012-06-20 1 47
Prosecution-Amendment 2013-08-27 2 83
Prosecution-Amendment 2014-02-21 5 181
Prosecution-Amendment 2014-06-18 2 79
Prosecution-Amendment 2014-12-16 5 227
Correspondence 2015-03-16 1 38