Brevet FR3100907A1 — publié le 20210319

Test de programme La présente description concerne un procédé comprenant une étape de sélection de zones mémoire (154) à partir de positions d'instructions d'un programme, les instructions occupant chacune un ou plusieurs emplacements mémoire (510), et les zones (154) comprenant pour chaque emplacement mémoire (510) un même nombre de bits, de préférence égal à un ou deux. Figure pour l'abrégé : Fig. 5 Test de programme La présente description concerne de façon générale les dispositifs électroniques programmables, et les procédés d'exécution d'instructions d'un programme. Un programme est constitué d'une suite d'instructions. Les instructions sont par exemples stockées dans une mémoire reliée à une unité de traitement séquentiel de données telle qu'un microprocesseur. A l'exécution du programme, des instructions peuvent être exécutées plusieurs fois, par exemple lorsque le programme comprend une boucle. Des instructions peuvent ne pas être exécutées, suite par exemple à une instruction de branchement, c'est-à-dire une instruction indiquant une partie du programme à exécuter après l'instruction de branchement. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente, schématiquement et sous forme de blocs, un mode de réalisation d'un système comprenant un dispositif programmable ; la figure 2 représente, par une vue partielle et schématique de deux mémoires, un mode de réalisation d'un procédé mis en oeuvre lors de l'exécution d'instructions d'un programme ; la figure 3 représente, schématiquement et sous forme de blocs, un mode de réalisation d'un dispositif programmable ; la figure 4 représente, schématiquement et sous forme de blocs, un autre mode de réalisation d'un système comprenant un dispositif programmable ; la figure 5 représente, par une vue partielle et schématique de deux mémoires, un autre mode de réalisation du procédé de la figure 2 ; et la figure 6 représente, par une vue partielle et schématique de deux mémoires, un autre mode de réalisation du procédé de la figure 2. Procédé comprenant une étape de sélection de zones mémoire (154) à partir de positions d'instructions d'un programme, les instructions occupant chacune un ou plusieurs emplacements mémoire (510), et lesdites zones (154) comprenant pour chaque emplacement mémoire (510) un même nombre de bits (N), de préférence égal à un ou deux. Procédé selon la revendication 1, comprenant l'exécution d'au moins une partie desdites instructions et, pour chaque instruction exécutée, le stockage d'une valeur dans l'une desdites zones (154) sélectionnée à partir de la position de l'instruction exécutée. Procédé selon la revendications 2, dans lequel chacune desdites zones comprend au moins un premier bit et au moins un deuxième bit, ladite valeur comprenant : la valeur un à l'emplacement du premier bit si l'instruction exécutée a un prédicat à la valeur "vrai" ; la valeur un à l'emplacement du deuxième bit si l'instruction exécutée a un prédicat à la valeur "faux" ; et la valeur un aux emplacements des premier et deuxième bits si l'instruction exécutée n'est pas une instruction à prédicat ; Procédé selon la revendication 3, dans lequel le stockage est effectué parallèlement à ladite exécution. Procédé selon l'une quelconque des revendications 2 à 4, dans lequel le stockage est effectué simultanément pour des instructions exécutées simultanément. Procédé selon l'une quelconque des revendications 2 à 5, comprenant, après ladite exécution, une étape de vérification de la présence de ladite valeur dans chacune desdites zones (154) et/ou la détection de l'absence de ladite valeur dans l'une desdites zones (154). Procédé selon l'une quelconque des revendications 2 à 6, dans lequel ledit stockage comprend l'écriture, à un emplacement de mot mémoire (540) comprenant au moins une desdites zones (154), d'un mot ayant, en dehors de ladite au moins une desdites zones (154), le contenu dudit emplacement de mot mémoire (540) avant l'écriture. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel lesdites zones (154) sont situées dans au moins deux banques mémoire (152H, 152L) distinctes. Procédé selon les revendications 7 et 8, dans lequel ledit emplacement de mot mémoire (540) a des bits de poids faibles situés dans l'une des deux banques (152L) et des bits de poids forts situés dans l'autre des deux banques (152H). Dispositif (110 ; 300 ; 410) configuré pour mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 9. Circuit intégré (112) comprenant un dispositif selon la revendication 10. Circuit selon la revendication 11, comprenant lesdites zones (154) et configuré pour exécuter lesdites instructions. Circuit selon la revendication 12, configuré pour être relié à une mémoire extérieure (452) au circuit et pour transmettre le contenu desdites zones (154) à la mémoire extérieure (452). Dispositif (450) comprenant ladite mémoire extérieure (452) d'un circuit selon la revendication 13, configuré pour recevoir les contenus desdites zones (154) et écrire les contenus desdites zones (154) dans ladite mémoire extérieure (452). Dispositif selon la revendication 13 dans sa dépendance à la revendication 3, configuré pour vérifier la présence de ladite valeur dans le contenu de chacune desdites zones (154) et/ou la détection de l'absence de ladite valeur dans l'un desdits contenus.