BE1007932A7 - Procede et circuit de memorisation et de hierarchisation d'ordres d'effacement dans un dispositif de memoire. - Google Patents

Procede et circuit de memorisation et de hierarchisation d'ordres d'effacement dans un dispositif de memoire. Download PDF

Info

Publication number
BE1007932A7
BE1007932A7 BE9400967A BE9400967A BE1007932A7 BE 1007932 A7 BE1007932 A7 BE 1007932A7 BE 9400967 A BE9400967 A BE 9400967A BE 9400967 A BE9400967 A BE 9400967A BE 1007932 A7 BE1007932 A7 BE 1007932A7
Authority
BE
Belgium
Prior art keywords
block
order
erase
queue
program
Prior art date
Application number
BE9400967A
Other languages
English (en)
Inventor
Mickey Lee Fandrich
Richard Joseph Durante
Geoffrey Alan Gould
Timothy Wade Goodell
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of BE1007932A7 publication Critical patent/BE1007932A7/fr

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/20Suspension of programming or erasing cells in an array in order to read other cells in it

Landscapes

  • Read Only Memory (AREA)

Abstract

L'invention concerne un procédé de mise en file d'attente d'ordres d'effacement dans un dispositif de mémoire non volatile. Le procédé de mise en file d'attente comprend les étapes (310 à 316,318,320) consistant à : a) interrompre une exécution d'un premier ordre d'effacement associé à un premier bloc en réponse à une réception d'un deuxième ordre d'effacement associé à un deuxième bloc de mémoire de la file d'attente d'opérations; b) absorber l'ordre pour effacer le deuxième bloc; et c) valider la file d'attente d'opérations pour recevoir des ordres additionnels. L'invention concerne aussi un procédé destiné à hiérarchiser (310 à 316,330,342) un odre de programme associé à un premier bloc de mémoire lorsqu'il existe un ordre d'effacement associé à ce bloc ou à un autre bloc, ainsi qu'une mémoire non volatile pour la mise en oeuvre des procédés.

Description


   <Desc/Clms Page number 1> 
 



  "Procédé et circuit de mémorisation et de hiérarchisation d'ordres d'effacement dans un dispositif de mémoire"
La présente invention concerne des mémoires non volatiles à semi-conducteurs. De façon particulière, la présente invention concerne un procédé et un circuit de mémorisation d'ordres d'effacement qui dépassent la profondeur d'une file d'attente d'opérations qui mémorise des ordres d'utilisateur. 



   Une mémoire non volatile à semi-conducteur de l'art antérieur est la mémoire morte programmable et effaçable électriquement par flash, appelée aussi   mémoire"flash".   Les mémoires flash sont programmées électriquement et, lorsqu'elles ont été programmées, elles retiennent les données jusqu'à ce qu'elles soient effacées. Après effacement, les mémoires flash peuvent être programmées à l'aide d'un nouveau code ou d'une nouvelle donnée. 



   Les mémoires flash diffèrent des mémoires mortes programmables et effaçables électriquement classiques, ou"EEPROM", en ce qui concerne l'effacement. Les
EEPROM classiques utilisent typiquement un transistor de choix pour la commande d'effacement d'octets individuels. Les mémoires flash en revanche atteignent typiquement des densités beaucoup plus élevées en utilisant des cellules à transistor unique. Certaines des mémoires flash antérieures sont effacées en appliquant simultanément une tension élevée à la source de chacune des cellules de mémoire du réseau de mémoire. Il en résulte un effacement de tout le réseau. 



   Les conventions de la mémoire flash définissent un un logique lorsque le nombre d'électrons emmagasinés sur la grille flottante d'une cellule de mémoire est faible ou nul. La convention définit également un zéro logique lorsque de nombreux électrons sont emmagasinés sur la grille flottante de la cellule de mémoire. Un effacement de la mémoire flash amène un un logique à être mémorisé dans chaque 

 <Desc/Clms Page number 2> 

 cellule de bit. Des cellules de mémoire flash ne peuvent pas être écrasées individuellement, pour passer   d'un   zéro logique à un un logique, sans effacement préalable.

   En revanche, une cellule de mémoire flash peut être écrasée individuellement pour passer d'un un logique à un zéro logique, parce que ceci implique simplement d'ajouter des électrons à une grille flottante qui contient le nombre intrinsèque d'électrons associés à   l 1 état   effacé. 



   Le processus d'effacement, de programmation et de vérification des mémoires flash exige de commander avec attention les tensions nécessaires pour effectuer ces étapes. Par exemple, une mémoire flash de l'art antérieur est la mémoire flash à semi-conducteur à oxyde métallique complémentaire, ou mémoire flash   "CMOS",   28FOO8 commercialisée par Intel Corporation de Santa Clara, Californie, qui est une mémoire flash de 8 mégabits. La mémoire flash inclut un registre d'ordres pour gérer un effacement électrique et une nouvelle programmation. Des ordres d'effacement sont écrits à partir   d'us   microprocesseur de commande en utilisant des synchronisations normalisées d'écriture de microprocesseur.

   Le contenu du registre d'ordre sert d'entrée à une machine   d'état   interne qui commande le circuit d'effacement et de programmation. 



   Typiquement, seule une opération peut être effectuée à la fois à l'intérieur d'une mémoire flash. Ceci signifie que des ordres à haute priorité doivent attendre l'achèvement d'ordres à faible priorité qui ont été émis avant l'ordre à haute priorité. Par exemple, des ordres d'effacement de blocs exigent du temps et leur priorité est relativement faible. En revanche, des ordres de programmation peuvent être exécutés assez rapidement et leur priorité est supérieure à celle des ordres d'effacement de blocs. 

 <Desc/Clms Page number 3> 

 



  Cependant, dans des mémoires flash de l'art antérieur, dès lors que l'exécution d'un ordre d'effacement commence, l'exécution d'un ordre de programme est retardée jusqu'après l'exécution complète de l'ordre d'effacement de bloc. 



   C'est un but de la présente invention que de fournir un procédé et un circuit qui permettent à un utilisateur de traiter comme bloc de mémoire séparé chaque bloc de mémoire situé à l'intérieur d'un dispositif de mémoire non volatile. 



   C'est un autre but de la présente invention que de permettre à un utilisateur d'un dispositif de mémoire non volatile incluant de nombreux blocs de mémoire d'envoyer des ordres d'effacement de blocs sans devoir tenir compte de ce que d'autres blocs de mémoire sont actuellement en cours de programmation et d'effacement. 



   C'est encore un autre objet de la présente invention que de permettre à un utilisateur d'un dispositif de mémoire non volatile incluant de nombreux blocs de mémoire d'envoyer autant d'ordres d'effacement qu'il existe de blocs de mémoire. 



   C'est encore un autre but de la présente invention que de permettre à des ordres d'effacement d'être interrompus de manière à traiter des ordres de programme reçus ultérieurement. 



   Un autre but encore de la présente invention est une hiérarchisation d'ordres d'effacement en réponse à des interruptions dues à des ordres de programme. 



   De façon générale, ces buts sont atteints grâce à un procédé de mémorisation et de hiérarchisation d'ordres d'effacement pour un dispositif de mémoire non volatile. Le procédé empêche que la profondeur d'une file d'attente d'opérations, qui est responsable de mettre en file d'attente des ordres de programme et d'effacement, ne limite le nombre d'ordres 

 <Desc/Clms Page number 4> 

 d'effacement qui sont mémorisés à la fois. Le premier ordre d'effacement reçu sert d'élément de retenue d'emplacement, en retenant un emplacement à l'intérieur de la file d'attente d'opérations pour tous les ordres d'effacement reçus ultérieurement. Tous les ordres d'effacement reçus ultérieurement sont absorbés et sont enlevés de la file d'attente d'opérations.

   Par conséquent, la file d'attente d'opérations peut recevoir des ordres additionnels et un ordre d'effacement peut être mis en file d'attente pour chaque bloc de mémoire situé à l'intérieur du dispositif de mémoire non volatile. Des ordres d'effacement absorbés peuvent être hiérarchisés en réponse à des ordres de programme reçus ultérieurement. Des blocs sont marqués d'un drapeau, en utilisant un registre de priorité, en vue d'un effacement prioritaire. De plus, des fenêtres d'interruption situées à des points sûrs permettent une interruption d'opérations d'effacement pour traiter des interruptions résultant d'ordres. 



   De façon plus spécifique, l'invention fournit, selon un premier aspect, un procédé de mise en file d'attente d'une première multiplicité d'ordres d'effacement dans un dispositif de mémoire non volatile qui inclut une file d'attente d'opérations destinée à mettre des ordres d'effacement en file d'attente, caractérisé en ce que :

   la file d'attente d'opérations inclut deux sousfiles d'attente, le dispositif de mémoire non volatile comprend un réseau de mémoire principale incluant une deuxième multiplicité de blocs de mémoire, la deuxième multiplicité de blocs de mémoire est supérieure au nombre des sous-files d'attente incluses dans la file d'attente d'opérations, 

 <Desc/Clms Page number 5> 

 la première multiplicité d'ordres d'effacement est supérieure au nombre de sous-files d'attente incluses dans la file d'opérations, chaque ordre d'effacement est associé à un bloc de mémoire, et en ce que le procédé de mise en file d'attente comprend les étapes consistant à :

   a) interrompre une exécution d'un premier ordre d'effacement associé à un premier bloc en réponse à une réception d'un deuxième ordre d'effacement associé à un deuxième bloc de mémoire de la file d'attente d'opérations ; b) absorber l'ordre pour effacer le deuxième bloc ; et c) valider la file d'attente d'opérations pour recevoir des ordres additionnels. 



   Le procédé peut comprendre en outre l'étape consistant à : e) reprendre l'exécution du premier ordre d'effacement après l'étape c). 



   Dans ce cas, le procédé comprendre en outre l'étape consistant à : f) exécuter le deuxième ordre d'effacement. et peut alors comprendre en outre l'étape consistant à : g) déterminer si des ordres d'effacement ont été absorbés. 



   Selon un deuxième aspect, l'invention fournit un procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à hiérarchiser un ordre de programme associé à un premier bloc de mémoire lorsqu'un ordre 

 <Desc/Clms Page number 6> 

 d'effacement associé au premier bloc de mémoire a été absorbé, et caractérisé en ce qu'il comprend les étapes consistant à : a) si un ordre d'effacement associé à un deuxième bloc est en cours d'exécution :
1) achever l'effacement du deuxième bloc ;
2) effacer le premier bloc ; et
3) programmer le premier bloc. 



   L'étape a2) peut se produire sans interruption. 



   L'étape a3) peut se produire sans interruption. 



   Le procédé peut prévoir qu'un ordre d'effacement a été absorbé pour un troisième bloc de mémoire, et en que les étapes   al),   a2) et a3) sont effectués avant l'effacement du troisième bloc. 



   Selon un troisième aspect, l'invention fournit un procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à hiérarchiser un ordre de programme associé à un premier bloc de mémoire pour lequel un ordre d'effacement a été reçu précédemment, et caractérisé en ce qu'il comprend l'étape consistant à : a) si un ordre d'effacement associé au premier bloc est en cours d'exécution :
1) achever l'effacement du premier bloc ; et
2) programmer le premier bloc. 



   L'étape al) peut se produire sans interruption. 



   L'étape a2) peut se produire sans interruption.
Selon un quatrième aspect, l'invention fournit un procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file 

 <Desc/Clms Page number 7> 

 d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à mettre en oeuvre un ordre d'effacement associé à un premier bloc de mémoire après réception d'un ordre de programme associé au premier bloc, 
 EMI7.1 
 caractérisé en ce qu'il comprend les étapes consistant à : a) si un ordre d'effacement associé à un deuxième bloc est en cours d'exécution à la réception de l'ordre de programme :
1) achever l'effacement du deuxième bloc ;
2) effacer le premier bloc ;
3) programmer le premier bloc ;

   b) a) si un ordre d'effacement associé au premier bloc est en cours d'exécution à la réception de l'ordre de programme :
1) achever l'effacement du premier bloc ; et
2) programmer le premier bloc. 



   L'étape al) peut se produire sans interruption. 



   L'étape a2) peut se produire sans interruption. 



   L'étape a3) peut se produire sans interruption. 



   L'étape bl) peut se produire sans interruption. 



   L'étape b2) peut se produire sans interruption. 



   On peut prévoir que un ordre d'effacement associé à un troisième bloc de mémoire a été absorbé et que les étapes   al),   a2) et a3) sont effectuées avant l'effacement du troisième bloc. 



   Selon un cinquième aspect, l'invention fournit un procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à traiter une interruption d'effacement d'un premier bloc de mémoire due à un ordre de 

 <Desc/Clms Page number 8> 

 programme associé à un deuxième bloc de mémoire, caractérisé en ce qu'il comprend les étapes consistant 
 EMI8.1 
 à : a) déterminer si le deuxième bloc doit être effacé avant l'exécution de l'ordre de programme ; et b) si le deuxième bloc ne doit pas être effacé avant l'exécution de l'ordre de programme, programmer le deuxième bloc avant d'achever l'effacement du premier bloc. 



   L'étape a) peut comprendre l'étape consistant à déterminer si un effacement du deuxième bloc a été interrompu par la réception de l'ordre de programme. 



   Dans ce cas, il est possible que l'étape a) comprenne en outre l'étape consistant à déterminer si un ordre d'effacement associé au deuxième bloc a été reçu avant la réception de l'ordre de programme, et/ou que le deuxième bloc doive être effacé avant la programmation du deuxième bloc lorsqu'il est déterminé qu'un effacement du deuxième bloc a été interrompu par la réception de l'ordre de programme, et/ou que le deuxième bloc doive être effacé avant la programmation du deuxième bloc lorsqu'il est déterminé qu'un ordre d'effacement associé au deuxième bloc a été reçu avant la réception de l'ordre de programme. 



   Selon un sixième aspect, l'invention réalise une mémoire non volatile à semi-conducteur caractérisée en ce qu'elle comprend : a) un réseau de mémoire organisé sous la forme d'une première multiplicité de blocs de mémoire ; b) une file d'attente d'opérations destinée à mémoriser des ordres d'opérations sur le réseau de mémoire, la file d'attente d'opérations incluant une deuxième multiplicité de sous-files d'attente ; 

 <Desc/Clms Page number 9> 

 c) un dispositif de commande pour exécuter des ordres mémorisés dans la file d'attente d'opérations, le dispositif de commande incluant :
1) un moyen d'interruption, qui répond à une réception d'un deuxième ordre par la file d'attente d'opérations et qui est destiné à interrompre l'exécution d'un premier ordre mémorisé dans la file d'attente d'opérations ;

   et
2) un moyen d'absorption d'ordre d'effacement en réponse au moyen d'interruption, destiné à absorber le deuxième ordre et à valider la file d'attente d'opérations pour recevoir un ordre, en validant ainsi le dispositif de mémoire non volatile à semiconducteur pour la mise en file d'attente d'une troisième multiplicité d'ordres qui est supérieure à la deuxième multiplicité de sous-files d'attente. 



   D'autres buts, particularités et avantages de la présente invention ressortiront des dessins annexés et de la description détaillée qui suit. 



   La présente invention est illustrée à titre d'exemple et non à titre limitatif aux figures des dessins annexés dans lesquelles des références désignent des éléments similaires et dans lesquels :
La Figure 1 est un schéma fonctionnel d'un dispositif de mémoire non volatile. 



   La Figure 2 est un schéma fonctionnel de l'interface d'utilisateur du dispositif de mémoire non volatile. 



   La Figure 3 illustre des bits d'un registre global d'état et de registres d'état de blocs. 



   La Figure 4 est un schéma fonctionnel du dispositif de commande de réseau de la mémoire non volatile. 



   La Figure 5 est un schéma objet des algorithmes, appelés aussi prises en charge, responsables de l'effacement d'un bloc de mémoire. 

 <Desc/Clms Page number 10> 

 



   La Figure 6 est un schéma logique de l'algorithme du dispositif de commande d'effacement. 



   La Figure 7A illustre   l'état   de la file d'attente d'opérations et du registre de priorité avant l'absorption d'un ordre d'effacement de bloc. 



   La Figure 7B illustre   l'état   de la file d'attente d'opérations et du registre de priorité après l'absorption d'un ordre d'effacement de bloc. 



   La Figure 8 illustre sous forme de schéma logique la mise en oeuvre de la fenêtre d'interruption. 



   La Figure 9A illustre   l'état   de la file d'attente d'opérations et du registre de priorité lorsqu'un ordre de programme interrompt une exécution d'un ordre d'effacement. 



   La Figure 9B illustre   l'état   de la file d'attente d'opérations et du registre de priorité lorsqu'un ordre de programme interrompt une exécution d'ordre d'effacement et que le bloc à programmer est en cours d'effacement. 



   La Figure 9C illustre   l'état   de la file d'attente d'opérations et du registre de priorité lorsqu'un ordre de programme interrompt une exécution d'ordre d'effacement et qu'un ordre d'effacement concernant le bloc à programmer a été absorbé précédemment. 



   La Figure 10 illustre un système d'ordinateur qui inclut un dispositif de mémoire non volatile qui absorbe des ordres d'effacement. 



   On va maintenant décrire l'invention de façon détaillée,   c'est-à-dire   décrire en premier lieu une vue générale d'un dispositif de mémoire non volatile, en précisant l'interface d'utilisateur, le dispositif de commande de réseau et les mécanismes de traitement d'interruptions, et décrire en deuxième lieu l'absorption et la hiérachisation d'un ordre d'effacement et le traitement d'une interruption concernant un tel ordre et résultant d'un autre ordre. 

 <Desc/Clms Page number 11> 

 



   C'est donc par une vue générale d'un dispsoitif de mémoire non volatile que l'on décrira en premier lieu. 



   La Figure 1 illustre sous forme de schéma fonctionnel un dispositif de mémoire non volatile 20 qui incorpore le procédé et le circuit de la présente invention. Le dispositif de mémoire 20 inclut une interface 30 d'utilisateur, un dispositif de commande 40 de réseau, et un réseau 50 de mémoire non volatile. 



  L'utilisateur du dispositif de mémoire communique des ordres au dispositif de mémoire 20 par l'intermédiaire de signaux d'adresses 21, de signaux de commande 22 et de signaux de données 23. L'interface 30 d'utilisateur reçoit les signaux 21,22, et 23 qui représentent les ordres de l'utilisateur et les décode. L'interface 30 d'utilisateur inclut une file d'attente d'opérations qui permet au dispositif de mémoire 20 de mettre en file d'attente de nombreux ordres de l'utilisateur, que la file d'attente d'opérations communique au dispositif de commande 40 de réseau. Le dispositif de commande 40 de réseau exécute les ordres indiqués sur le bloc indiqué situé dans le réseau de mémoire non volatile 50. Des ordres exécutés par le dispositif de commande 40 de réseau incluent des ordres de programmes et des ordres d'effacement de blocs. 



   Comme décrit de façon plus détaillée ci-dessous, le dispositif de commande 40 de réseau permet au dispositif 20 de mémoire non volatile de mémoriser beaucoup plus d'ordres d'effacement que ceux qui peuvent être mémorisés dans la file d'attente d'opérations. En bref, le dispositif de commande 40 de réseau y parvient en interrompant une exécution d'un ordre d'effacement de bloc afin d'absorber un autre ordre d'effacement de bloc. L'ordre absorbé d'effacement de bloc est ensuite enlevé de la file d'attente d'opérations, ce qui permet à l'interface 30 

 <Desc/Clms Page number 12> 

 d'utilisateur de placer des ordres additionnels dans la file d'attente d'opérations. Après achèvement de l'effacement d'un bloc, le dispositif de commande 40 de réseau vérifie la présence d'ordres absorbés d'effacement de blocs, qui sont ensuite exécutés. 



  Comme décrit aussi de façon plus détaillée ci-dessous, le dispositif de commande 40 de réseau hiérarchise parmi des ordres absorbés d'effacement de blocs en réponse à des ordres de programmation et interrompt l'exécution d'ordres d'effacement de blocs pour exécuter des ordres de programmes qui ont été mis en file d'attente ultérieurement. 



   Avant de commencer cette description détaillée, considérons de nouveau de dispositif de mémoire 20. Le dispositif de mémoire comprend aussi des registres 70 de commande et un trajet 80 de lecture et d'écriture. 



  Ces circuits 70 et 80, en coopération avec l'interface 30 d'utilisateur et le dispositif de commande 40 de réseau, rendent relativement simple pour l'utilisateur l'utilisation du réseau 50 de mémoire. 



   Le réseau 50 de mémoire constitue une mémoire vive de donnée, non volatile, de grandes dimensions. 



  Le réseau 50 de mémoire non volatile inclut de préférence 32 blocs de cellules de mémoire flash. 



  Chaque bloc de mémoire fournit de préférence 64k octets de mémoire de donnée, qui peuvent être effacés séparément. 



   L'interface 30 d'utilisateur fonctionne comme arbitre entre l'utilisateur qui envoie des ordres et un dispositif de commande 40 de réseau qui exécute des ordres choisis. Par exemple, l'interface 30 d'utilisateur détermine si l'opération demandée par l'utilisateur est valide, étant donné   l'état   actuel du dispositif de commande 40 de réseau. L'interface 30 d'utilisateur reçoit comme entrée l'information d'ordre et d'adresse et détermine l'opération, ou 

 <Desc/Clms Page number 13> 

 ordre, que le dispositif de commande 40 de réseau devrait exécuter. Tel qu'il est utilisé ici, le terme d'information d'ordre 24 se réfère à la combinaison formée de signaux d'adresse, de signaux 23 de donnée et de signaux de commande 22 qui représentent des ordres.

   En outre, le circuit d'interface 30 d'utilisateur commande la mise en file d'attente d'adresse et de donnée, l'accès de l'utilisateur aux registres d'état, et le multiplexeur de sortie 120. 



   L'interface 30 d'utilisateur valide un accès de l'utilisateur au réseau 50 de mémoire en réponse à des ordres d'utilisateur communiqués par l'intermédiaire des signaux 21,22 et 23. A la réception d'un ordre, l'interface 30 d'utilisateur mémorise les signaux d'adresse, de donnée et d'ordre, 21,22 et 23 dans des tampons internes. Si l'opération demandée est un ordre de programme ou d'effacement de blocs, les signaux d'ordre, d'adresse et de donnée 21,22 et 23 sont transférés au dispositif de commande 40 de réseau par l'intermédiaire du bus 31 de file d'attente. Une information d'adresse associée à un ordre est envoyée par l'interface 30 d'utilisateur au trajet 80 de lecture et d'écriture par l'intermédiaire du multiplexeur 112. 



   L'interface 30 d'utilisateur envoie deux signaux, CMDRDY et SUSREQ, au dispositif de commande 40 de réseau. CMDRDY, abrégé de command ready,   c'est-à-dire   ordre prêt, indique qu'il existe au moins un autre ordre en attente d'exécution dans la file d'attente d'opérations. SUSREQ, abrégé de suspension request, c'est-à-dire demande de supension, informe le dispositif de commande 40 de réseau qu'il existe en attente une demande de suspension de l'exécution du dispositif de commande de réseau. 



   L'interface 30 d'utilisateur choisit une adresse d'entrée 114 pour le trajet 80 de lecture et 

 <Desc/Clms Page number 14> 

 d'écriture par l'intermédiaire d'une commande du multiplexeur 112 d'adresses d'entrée. L'adresse d'entrée choisie est, soit l'adresse détectée par les tampons à logique transistor-transistor, ou TTL, non représentés, du bus 21 d'adresse d'utilisateur, soit une adresse 110 entrée en sas venant de l'interface 30 d'utilisateur. 



   L'interface 30 d'utilisateur commande le multiplexeur 120 de donnée de sortie pour choisir une source pour sortir une donnée à l'utilisateur. Cette donnée est transférée par l'intermédiaire du bus 23 de donnée d'utilisateur. La donnée de sortie choisie peut être, soit une donnée 82 qui vient du trajet 80 de lecture et d'écriture, soit une donnée 32 du registre d'état de blocs, ou BSR, qui vient d'un ensemble de registres d'état de blocs, contenus à l'intérieur de l'interface 30 d'utilisateur. Ainsi, l'utilisateur peut recevoir une donnée du réseau 50 de mémoire ainsi qu'une information d'état concernant l'état du dispositif 20 de mémoire. 



   Le dispositif de commande 40 de réseau commande les différentes composantes nécessaires pour programmer, effacer et vérifier le réseau 50 de mémoire. Le dispositif de commande 40 de réseau exécute les algorithmes, appelés aussi prises en charge comme indiqué plus haut, qui séquencent le circuit haute tension du trajet 80 de lecture et d'écriture de manière à appliquer une charge dans les cellules de mémoire situées à l'intérieur du réseau 50 de mémoire ou en retirer une charge de ces cellules. 



  Le dispositif de commande 40 de réseau commande le circuit à haute tension et le réseau 50 de mémoire d'adresses en accédant à des registres 70 de commande par l'intermédiaire du bus central 100 de commande. 



   Le dispositif de commande 40 de réseau conduit à l'interface 30 d'utilisateur plusieurs signaux d'état. 

 <Desc/Clms Page number 15> 

 Le dispositif de commande 40 de réseau fournit à l'interface 30 d'utilisateur un signal RDY, abrégé de ready, c'est-à-dire prête, qui indique si le dispositif de commande 40 de réseau est ou non occupé ou prêt à commencer l'exécution d'un autre ordre. 



  NXTCMD, abrégé de next command, c'est-à-dire ordre suivant, indique à l'interface 30 d'utilisateur si le dispositif de commande 40 de réseau est en train d'exécuter l'ordre placé dans la file d'attente principale de la file d'attente d'opérations ou un autre ordre provoquant une interruption, qu'on apellera aussi ordre interrompant, situé dans la file d'attente secondaire de la file d'attente d'opérations. OPDONE, abrégé de operation done, c'est- à-dire opération achevée, indique l'achèvement de l'ordre actuellement en cours d'exécution. IDLE, c'est-à-dire en attente, indique que des opérations ont été suspendues avec succès et que l'utilisateur peut commander le dispositif de mémoire 20. 



   Le circuit d'accès 102 de commande permet au dispositif de commande 40 de réseau d'accéder aux registres 70 de commande par l'intermédiaire du bus central 100 de commande. En fonctionnement normal, le dispositif de commande 40 de réseau commande le circuit d'accès 102 de commande et commande donc un accès aux registres 70 de commande. Le circuit d'accès 102 de commande fait passer des informations vers le dispositif de commande 40 de réseau et depuis celuici. Le dispositif de commande 40 de réseau fournit au circuit d'accès 102 de commande une information d'état de sortie. 



   Le dispositif de commande 40 de réseau écrit dans les registres spécialisés 70 de commande en 
 EMI15.1 
 transférant au circuit d'accès 102 de commande par l'intermédiaire du bus 104 un signal de commande d'écriture, et une adresse de registre ainsi qu'une 

 <Desc/Clms Page number 16> 

 donnée correspondante d'écriture. Le circuit d'accès 102 de commande engendre ensuite un cycle d'écriture et le couple au bus central 100 de commande pour écrire dans le registre adressé de commande. Le dispositif de commande 40 de réseau lit les registres 70 de commande en transférant un signal de adresse de registre et de commande de lecture au circuit d'accès de commande par l'intermédiaire du bus 104. Le circuit d'accès 102 de commande engendre ensuite un cycle d'accès de lecture et le couple au bus central 100 de commande pour lire le registre de commande adressé. 



   Le registre de commande 112 inclut des registres spécialisés de commande et un circuit de commande du circuit à haute tension du trajet 80 de lecture et d'écriture en fonction de signaux 90 de commande. Le registre de commande 74 commande un circuit spécial d'accès de colonnes à l'intérieur du trajet 80 de lecture et d'écriture en fonction des signaux 91 de commande. Le registre de commande 76 inclut un ensemble de registres de lecture seulement, pour détecter et entrer en sas un ensemble de signaux 92 d'état venant du trajet 80 de lecture et d'écriture. 



  Le registre de commande 78 commande le trajet de lecture du trajet 80 de lecture et d'écriture par l'intermédiaire de signaux 93 de commande. En raison de sa fonction, le registre de commande 78 est également appelé registre alternatif 78 d'adresses. Le dispositif de commande 40 de réseau utilise le registre alternatif 78 d'adresses pour adresser au réseau de mémoire 50 pendant des effacements prioritaires, comme décrit de façon plus détaillée ciaprès. 



   Après avoir exposé une vue générale du dispositif de mémoire non volatile, on va maintenant en décrire successivement l'interface d'utilisateur, le 

 <Desc/Clms Page number 17> 

 dispositif de commande de réseau, et les mécanismes de traitement des interruptions. 



   L'interface 30 d'utilisateur, qui sera décrite en premier lieu, est illustrée à la Figure 2 sous forme de schéma fonctionnel. L'interface 30 d'utilisateur inclut une machine d'état 200 d'ordres, une file d'attente temporaire 202, une file d'attente 204 d'opérations et des registres d'état 206. 



   La machine d'état 200 d'ordres détermine l'ordre à exécuter sur la base d'une information d'ordre reçue de l'utilisateur. La machine d'état 200 d'ordres décode l'entrée d'ordres qui vient de l'utilisateur et dicte au reste du dispositif de mémoire 20 les étapes nécessaires pour exécuter cet ordre. La machine d'état 200 d'ordres envoie, si nécessaire, l'information d'ordres au dispositif de commande 40 de réseau. Si une opération de lecture doit être effectuée, la machine d'état 200 d'ordres envoie l'adresse au circuit 80 de lecture et d'écriture. La machine d'état 200 d'ordres commande la donnée disponible aux sorties par l'intermédiaire du multiplexeur 120 de sortie et aux entrées par le multiplexeur d'entrée 112. En outre, la machine d'état 200 d'ordres commande un accès aux registres d'état 206. 



   Si l'ordre demandé est un ordre qui n'est pas exécuté par le dispositif de commande 40 de réseau, par exemple un ordre de lecture du réseau ou de lecture des registres d'état, l'interface 30 d'utilisateur envoie les signaux de commande appropriés pour provoquer une exécution de l'ordre demandé. Si la demande d'ordres reçue est une demande qui doit être exécutée par le dispositif 40 de réseau, le code d'ordre qui est représentatif de l'ordre est utilisé pour engendrer un indice d'une table de sauts. 



  L'indice de la table de sauts, appelé aussi vecteur de déport, est envoyé à la file d'attente temporaire 202 

 <Desc/Clms Page number 18> 

   d'ordres,   d'adresses et de données. Le vecteur de déport est envoyé à la file d'attente 204 d'opérations. 



   Si un ordre doit être exécuté par le dispositif de commande 40 de réseau, l'interface 30 d'utilisateur couple l'information d'ordre, d'adresse et de donnée à la file d'attente temporaire 202 pour qu'elle y soit traitée. Dès lors que la file d'attente temporaire 202 reçoit une information d'ordre, de donnée et   d'adresse,   elle envoie l'information à la file d'attente d'opérations 204. Au fur et à mesure que des ordres de dispositif de commande de réseau sont envoyés à la machine d'état 200 d'ordres, elle envoie les ordres et l'information d'adresses et de données à la file d'attente temporaire 202. La file d'attente temporaire 202 les transmet ensuite à la file d'attente d'opérations 204.

   Lorsque la file d'attente d'opérations 204 est prête à accepter l'ordre dans l'une de ses deux files d'attente, l'ordre est placé dans la file d'attente active de la file d'attente d'opérations 204. Lorsque la machine d'état 200 d'ordres transfert une information à la file d'attente temporaire 202, elle place aussi un drapeau pour indiquer à la file d'attente d'opérations 204 qu'un ordre attend d'être ajouté à une file d'attente disponible. 



   Les deux files d'attente de la file d'attente d'opérations 204 sont la file d'attente principale et la file d'attente secondaire. La file d'attente principale indique l'ordre qui est à exécuter ou en cours d'exécution. La file d'attente secondaire mémorise l'ordre suivant, à exécuter à l'achèvement de l'ordre de la file d'attente principale. Dès lors que le dispositif de commande 40 de réseau achève l'exécution de l'opération située dans la file d'attente principale, cette opération est enlevée de 

 <Desc/Clms Page number 19> 

 la file d'attente 204 d'opérations afin de permettre l'exécution de l'opération suivante. Si un ordre à exécuter est mémorisé dans la file d'attente temporaire 202, le vecteur de déport, la donnée et l'adresse sont transférés à la file d'attente d'opérations 204 pour une exécution ultérieure.

   Une commutation de contexte permet une exécution d'un ordre mémorisé dans la file d'attente secondaire avant l'achèvement de l'ordre mémorisé dans la file d'attente principale. 



   L'interface 30 d'utilisateur permet trois couches de files d'attente d'ordres. Par exemple, lorsqu'un ordre reçu exige une opération du dispositif de commande 40 de réseau, et une opération qui n'est pas une opération en cours d'exécution, l'interface 30 d'utilisateur charge dans la file d'attente principale de la file d'attente d'opérations 204 la donnée concernant l'ordre et lance le fonctionnement du dispositif de commande 40 de réseau. Typiquement, la file d'attente secondaire est disponible pour recevoir des ordres additionnels de l'utilisateur tandis que le dispositif de commande 40 de réseau est en train d'exécuter un ordre situé dans la file d'attente principale.

   A la réception d'un ordre ultérieur, l'interface 30 d'utilisateur notifie au dispositif de commande 40 de réseau, par l'intermédiaire de l'affirmation d'un signal CMDRDY, qutun nouvel ordre a été placé dans la file d'attente d'opérations 204. 



  L'algorithme du dispositif de commande de réseau qui est actuellement en fonctinnement détermine si son fonctionnement doit être interrompu pour traiter l'opération mise en file d'attente. 



   De préférence, l'interface 30 d'utilisateur inclut un registre global d'état et un ensemble de 32 registres d'état de blocs, appelés aussi BSR selon les initiales des mots block status registers, un registre 

 <Desc/Clms Page number 20> 

 d'attente de blocs pour chaque bloc du réseau 50 de mémoire. La Fig. 3 illustre à titre d'exemple, des définitions de bits du registres d'état. Le registre d'état global représente   l'état   du dispositif de mémoire 20 en général et ne transmet aucune information spécifique d'un bloc. Bien qu'une opération défaillante puisse être détectée par l'intermédiaire du registre d'état global, le bloc réel dans lequel l'opération défaillante s'est produite ne peut être détecté qu'en lisant les registres d'état des blocs. 



   Les registres d'état des blocs, dont un seul est illustré, indiquent   l'état   d'opérations effectuées sur un bloc par l'intermédiaire d'un bit   RDY/IBSY,   abrégé de ready/busy, c'est-à-dire prêt/occupé. Si aucune information n'est actuellement en cours d'exécution sur un bloc, ceci est indiqué par   l'état   actif, RDY, du bit RDY/IBSY du bloc. De façon analogue, si un bloc est en cours de traitement, ceci est indiqué par   l'état   inactif,   IBSY   du   bit RDY/IBSY   du bloc. 



  L'interface 30 d'utilisateur peut accéder à chaque registre d'état de bloc pour surveiller   l'état   d'exécution des opérations du dispositif de commande de réseau. L'utilisateur peut accéder aux registres d'état 206 à un instant quelconque pour déterminer   l'état   du dispositif de commande 40 de réseau. 



   On va maintenant décrire le dispositif de commande 40 de réseau. Il   s'agit   d'une structure de traitement polyvalente. Comme représenté à la Figure 4, le dispositif de commande 40 de réseau inclut une mémoire de programme 230, un registre d'instructions 232, un compteur de programme 235, une unité arithmétique et logique ou ALU 236, et un fichier 238 de registres. 



   Le dispositif de commande 40 de réseau exécute des algorithmes mémorisés dans la mémoire de programme 

 <Desc/Clms Page number 21> 

 230. Ces algorithmes comprennent des mots d'instructions, en particulier des instructions de transfert de données, des instructions de calcul, des instructions de saut de séquence et des instructions de commande. Des instructions de transfert de données concernent des déplacements de données vers un fichier 238 de registre ou depuis celui-ci. Des instructions de saut de séquence permettent à une programmation de modifier le déroulement d'un algorithme en utilisant des appels de sous-programmes et des sauts conditionnels ou inconditionnels. Des instructions de calcul provoquent des opérations qui impliquent l'unité arithmétique et logique 236.

   Des instructions de commande constituent le moyen de mise en place ou d'enlèvement de deux drapeaux d'interruption et de mise en place d'indicateurs pour les sous-programmes de traitement d'interruptions. 



   L'accès à des algorithmes mémorisés dans la mémoire 230 de programmes s'effectue par l'intermédiaire de vecteurs de saut reçus de l'interface 30 d'utilisateur et d'adresses de programmes. Des adresses de programmes sont mémorisées dans les 32 premières adresses du circuit de mémoire 230 de programmes. La mémoire 230 de programmes reçoit du compteur 234 de programme une adresse à la fois. La mémoire 230 de programmes produit des instructions, une instruction à la fois, destinées au registre 238 d'instructions qui les entre en sas. 



   La fonction de base du compteur 234 de programme est de décoder l'instruction suivante à exécuter et d'indiquer l'instruction appropriée à suivre. En d'autres termes, le compteur 234 de programme permet une commutation de contexte entre les files d'attente principale et secodaire de la file d'attente d'opérations 204 et constitue uen structure d'interruption. L'adresse produite comme sortie du 

 <Desc/Clms Page number 22> 

 compteur 234 de programme est utilisée pour restituer l'instruction suivante à partir de la mémoire 230 de programmes en vue d'un transfert au registre 232 d'instructions et d'une exécution par l'unité arithmétique et logique 236. 



   Le compteur 234 de programme permet au dispositif de commande 40 de réseau une commutation de contexte pendant une interruption afin de sauvegarder le contexte du dispositif de commande de réseau d'une manière synchronisée. Ainsi, quand une opération d'interruption est achevée, une autre commutation de contexte est effectuée pour restaurer l'état d'origine du dispositif de commande de réseau et le fonctionnement d'origine peut continuer. 



   Le compteur 234 de programme inclut deux registres qui aident au traitement de l'interruption et à la commutation de contexte. Le registre de début d'interruption mémorise l'adresse d'un sous-programme de début d'interruption. Ainsi, lorsqu'une mise en oeuvre d'interruption commence, elle commence alors que le registre de début d'interruption indique le sous-programme. Le deuxième registre, le registre de retour d'interruption, exerce une fonction analogue. 



  Le registre de retour d'interruption mémorise l'adresse du programme à laquelle il faudra revenir après l'achèvement de la mise en oeuvre de l'interruption, et après l'envoi de l'ordre de retour, RET. 



   L'unité arithmétique et logique 236 exerce toutes les fonctions arithmétiques et logiques et elle ne sera pas décrite en détail dans ce qui suit. 



   Le fichier 238 de registre est divisé en deux sections. La première section, qui est appelée la section principale, contient des variables pour l'algorithme en cours d'exécution par le dispositif de commande 40 de réseau. La deuxième section contient 

 <Desc/Clms Page number 23> 

 des variables pour un algorithme d'interruption. Par conséquent, lorsqu'il prend en compte une interruption, le fichier 238 de registres commute de la section principale vers la deuxième section le contexte du dispositif de commande 40 de réseau. Toutes les opérations sont dès lors exécutées dans la section d'opération du fichier 238 de registres. Toutes les variables tenues dans la section principale du fichier de registres sont maintenues, mais elles ne sont pas accessibles pendant que l'interruption est prise en compte.

   Après l'algorithme de l'interruption, la commande revient à la section principale. 



   Le fichier 238 de registres inclut un registre de haute priorité, qui est utilisé pour indiquer une exécution d'ordres d'effacement prioritaire. 



   On va maintenant décrire le mécanisme de traitement d'interruptions. 



   L'architecture du dispositif de mémoire 20 prévoit un mécanisme d'interruption qui permet des interruptions d'algorithmes du dispositif de commande de réseau sans corruption, ni des données, ni des circuits de programmation ou d'effacement à haute tension. Le mécanisme d'interruption protège le dispositif de mémoire 20 avant la prise en compte de l'interruption en sortant le dispositif de mémoire 20 hors d'un état qui pourrait être dommageable au réseau. Par exemple, si le dispositif de commande 40 de réseau est en train de commander un processus d'effacement, les tensions nécessaires pour effacer le réseau sont abaissées afin d'éviter   d'endommager   le réseau de mémoire 50.

   Après la prise en compte de l'interruption, le dispositif de commande 40 de réseau est replacé dans un état à partir duquel le processus d'exécution d'origine peut se poursuivre. 

 <Desc/Clms Page number 24> 

 



   En particulier, le mécanisme d'interruption permet sans danger une interruption et une suspension de l'algorithme en cours d'exécution, en exécutant en premier lieu un sous-programme de début d'interruption placé par l'algorithme en cours d'exécution. Ce code de début d'interruption suspend en toute sécurité l'algorithme en cours d'exécution et effectue la commutation nécessaire de contexte des registres du compteur de programme.

   Dès lors que le sous-programme de début d'interruption a achevé l'exécution, le sousprogramme d'interruption commence son exécution et, à la fin de l'exécution du sous-programme d'interruption, un sous-programme de retour d'interruption est exécuté de manière à ajuster le compteur 234 de programme pour indiquer un point de retour sûr le code interrompu et effectuer une commutation de contexte des registres telle que le sous-programme interrompu puisse poursuivre son exécution. 



   Cette structure permet une interruption d'une opération d'effacement afin d'exécuter des ordres de programme reçus ultérieurement et d'absorber ultérieurement des ordres reçus d'effacement de blocs. 



  Des opérations d'effacement sur un réseau exigent un temps important. Si une opération d'effacement de bloc est en cours d'exécution et qu'une opération de programme attend une exécution, une demande d'interruption est engendrée et le sous-programme de début d'interruption vérifie le caractère approprié de l'algorithme d'interruption, et il séquence en toute sécurité les alimentations internes en énergie vers un état hors fonction avant l'exécution de l'algorithme de programme. 



   De préférence, le dispositif de commande 40 de réseau fournit deux drapeaux d'interruption : un drapeau d'interruption de file d'attente d'opérations 

 <Desc/Clms Page number 25> 

 et un drapeau d'interruption maître. Pour qu'une interruption soit prise en compte par le dispositif de commande 40 de réseau, il faut un ordre en attente, ce qui est indiqué par l'affirmation de CMDRDY, et il faut que les deux drapeaux d'interruption soient validés. Le drapeau d'interruption de file d'attente d'opérations, qui est initialement dans un état invalidé, est utilisé à l'intérieur d'algorithmes pour valider et invalider localement le traitement d'interruptions.

   Ainsi, un algorithme peut inclure des instructions, destinées au dispositif de commande 40 de réseau, pour valider et invalider le drapeau de file d'attente d'opérations pendant l'exécution de l'algorithme à divers points, qui peuvent respectivement être interrompus ou ne pas être interrompus. Le drapeau d'interruption de file d'attente d'opérations est de préférence invalidé automatiquement lorsqu'une instruction d'appel ou de retour est exécutée. 



   Le drapeau d'interruption maître, qui est validé initialement, est utilisé pour invalider des interruptions lorsqu'un algorithme ne peut pas traiter une interruption d'attente et pour traiter des ordres d'effacement prioritaire. 



   De préférence, des instructions envoyées par le dispositif de commande 40 de réseau commandent un traitement d'interruption et les drapeaux d'interruption. Ces ordres incluent une validation d'interruptions de file d'attente d'opérations ou ENI, une validation d'autres interruptions ou ENGI, une invalidation des interruptions de file d'attente d'opérations ou DSI, une invalidation d'autres interruptions ou DSGI et une mise en place du registre de début d'interruption ou SISR. ENI prend comme argument un point de retour sûr à l'algorithme, place à cette valeur le registre de retour d'interruption et 

 <Desc/Clms Page number 26> 

 place le drapeau d'interruption de file d'attente d'opérations. Le drapeau d'interruption maître est placé par ENGI. DSI restaure et invalide simplement le drapeau d'interruption de file d'attente d'opérations.

   De même, DSGI invalide le drapeau d'interruption maître. SISR prend comme argument l'adresse de sousprogramme de début d'interruption et place le registre de début d'interruption. A l'achèvement des sousprogrammes de début d'interruption, signifiés par l'instruction de retour, RET, le signal d'accusé de réception d'interruption et le signal de début sont affirmés. L'algorithme d'interruption est ensuite exécuté. A l'achèvement de l'algorithme d'interruption signifié par l'instruction signifié par l'instruction RET, le bit d'interruption est enlevé et il se produit un saut à l'adresse mémorisée dans le registre de retour d'interruption. L'algorithme interrompu poursuit ensuite son exécution. 



   En outre, l'adresse qui identifie le point de retour sûr de l'algorithme interrompu, le sousprogramme de retour d'interruption, peut être modifiée pendant l'exécution d'algorithme. 



   Ainsi, le point de retour d'interruption est mis à jour pendant l'exécution du code afin d'indiquer des points de retour différents. Ceci peut être accompli en modifiant le sous-programme de retour d'interruption ou en mettant à jour le registre de retour d'interruption pour indiquer des sousprogrammes différents de retour d'interruption en fonction de l'emplacement d'exécution de l'algorithme. 



  Par exemple, dans un algorithme d'effacement, le point de retour pour le sous-programme de condition préalable serait différent du point de retour pour la partie d'effacement de l'algorithme, et celui-ci serait lui-même différent du point de retour pour le sous-programme de condition ultérieure. 

 <Desc/Clms Page number 27> 

 



   On va maintenant décrire l'absorption et la hiérarchisation d'ordres d'effacement et le traitement d'interruptions résultant d'ordres de programme en donnant d'abord une vue générale, puis une description plus détaillée de l'absorption et de l'exécution d'ordres d'effacement, puis une description plus détaillée d'une interruption d'exécution d'effacement résultant d'ordres de programme, sans ou avec effacement prioritaire. 



   Etant donné la description précédente de l'interface 30 d'utilisateur et du dispositif de commande 40 de réseau, on va maintenant considérer, de façon génrale, le présent procédé de mémorisation d'ordres d'effacement. Ce procédé empêche que la profondeur de la file d'attente 204 d'opérations ne limite le nombre d'ordres d'effacement de blocs mémorisés, ou placés en file   d'attente, à   la fois. Le premier ordre d'effacement de bloc reçu sert d'élément de retenue d'emplacement pour tous les ordres d'effacement de bloc reçus ultérieurement. Tous les ordres d'effacement de bloc reçus ultérieurement sont absorbés et sont effacés de la file d'attente d'opérations 204.

   Par conséquent, la file d'attente d'opérations 204 reste libre de recevoir les ordres additionnels et un ordre d'effacement peut être entré en file d'attente pour chaque bloc de mémoire. Tel qu'elle est conçue ici, la mise en file d'attente d'ordres d'effacement n'implique aucun ordre particulier d'exécution. Une mise en file d'attente d'un ordre signifie que l'ordre est mémorisé en vue d'une exécution ultérieure. Lorsqu'il n'existe plus aucun ordre absorbé d'effacement en attente d'exécution, l'ordre d'effacement de   l'élément   de retenue d'emplacement est enlevé de la file d'attente d'opérations 204. 

 <Desc/Clms Page number 28> 

 



   Le présent procédé hiérarchise aussi entre des ordres d'effacement absorbés en réponse à des ordres de programme tout en interrompant une exécution d'un ordre d'effacement afin d'exécuter un ordre de programme reçu ultérieurement. Tel qu'il est utilisé ici, le terme d'effacement prioritaire concerne un ordre d'effacement qui doit être exécuté avant l'exécution d'un ordre de programme qui l'interrompt. 



  Un ordre d'effacement, reçu et absorbé antérieurement, concernant un bloc doit être exécuté avant un ordre de programme pour ce même bloc parce que   l'intégrité   de données mémorisées dans le dispositif de mémoire 20 serait compromise dans le cas contraire. Par exemple, si l'ordre de programme reçu ultérieurement est exécuté avant un ordre d'effacement reçu antérieurement, la donnée qui a été programmée à l'instant est perdue et le dispositif de mémoire 20 ne mémorise pas la donnée que l'utilisateur souhaite. 



   La Figure 5 est un schéma objet qui illustre la relation entre les diverses prises en charge, ou algorithmes qui commandent l'effacement du dispositif de mémoire 50 et qui effectuent l'absorption, la mise en file d'attente et la hiérarchisation des ordres d'effacement. Ces algorithmes sont mémorisés dans la mémoire de programme 230 du dispositif de commande 40 de réseau. 



   Le dispositif de commande 240 d'effacement coordonne les activités nécessaires pour effacer un bloc à la fois le réseau 50 de mémoire, pour effectuer un effacement prioritaire et pour exécuter l'ordre absorbé d'effacement. Le dispositif de commande 240 d'effacement se fie à des algorithmes 250,252 et 254 pour effacer des blocs de mémoire. Chaque algorithme 250,252 et 254 effectue une tâche spécifique et renvoie la commande au dispositif de commande 240 d'effacement. Un bloc 250 de condition préalable 

 <Desc/Clms Page number 29> 

 empêche un effacement excessif de cellules de mémoire situées à l'intérieur d'un bloc, pendant un effacement, en élevant la tension de seuil de chaque cellule de mémoire à un niveau minimal.

   Le bloc d'effacement 252 efface un bloc de cellules de mémoire et vérifie ensuite que la tension de seuil de chaque cellule de mémoire est appropriée. Le bloc 254 de condition ultérieure vérifie et répare des cellules de mémoire effacées avec excès à l'intérieur d'un bloc de mémoire effacé à l'instant. 



   Les algorithmes 250,252 et 254 accomplissent leur tâche en appliquant des tensions élevées à un bloc du réseau de mémoire 50. Les algorithmes 240, 250,252, 254 ne traitent des interruptions venant de la file d'attente 204   qu'à   des points connus, au cours de leur exécution, où les tensions sont à des niveaux sûrs. Les algorithmes 240,250, 252 et 254 incluent des fenêtres 300 d'interruption à ces emplacements sûrs pour traiter des interruptions. Les algorithmes 240,250, 252 et 254 incluent chacun au moins une fenêtre 300 d'interruption. Les fenêtres d'interruption ne peuvent être ouvertes que lorsque le drapeau d'interruption maître est validé.

   Par conséquent, en invalidant le drapeau d'interruption maître avant l'exécution du dispositif de commande 240 d'effacement, le dispositif de commande 40 de réseau commande si l'effacement se produit sans interruption. 



   Une fenêtre 300 d'interruption répond à des interruptions engendrées par la file d'attente d'opérations 204. S'il est possible de répondre immédiatement à l'ordre, la fenêtre 300 d'interruption le fait. Une fenêtre 300 d'interruption répond immédiatement à des ordres effacement en les absorbant et en validant la file d'attente d'opérations 204 pour recevoir des ordres additionnels. La fenêtre 300 

 <Desc/Clms Page number 30> 

 d'interruption répond à des ordres de programme en les exécutant immédiatement, si possible. si une exécution immédiate d'un ordre de programme n'est pas possible, la fenêtre 300 d'interruption assure une exécution rapide de tout ordre d'effacement qui doit précéder une exécution d'ordre de programme. 



   Etant donné cette vue d'ensemble, on considère maintenant le schéma logique de la Figure 6, qui illustre en détail le dispositif de commande 240 d'effacement. L'exécution du dispositif de commande 240 d'effacement commence à la réception d'un ordre d'effacement de bloc à un instant où aucun autre ordre d'effacement de bloc n'est en file d'attente, ni à l'intérieur de la file d'attente d'opérations 204, ni par absorption. En réponse, le dispositif de commande 240 d'effacement exécute en premier lieu un certain nombre de tâches d'aménagement aux étapes 242 à 248. 



  Le dispositif de commande 240 d'effacement commence à l'étape 242 en plaçant à   ! BSY   le bit   RDY/1BSY   associé au bloc à effacer. Ceci indique que le bloc est impliqué dans une certaine opération. 



   Le dispositif de commande 240 d'effacement initialise ensuite, à   l'étape   244, le registre de priorité à l'intérieur du réseau de commande 40 d'effacement. Le dispositif de commande 240 d'effacement utilise le registre de priorité pour déterminer si un effacement prioritaire est en cours ou est achevé à l'instant. Le dispositif de commande 240 d'effacement utilise aussi le registre de priorité pour placer un drapeau à un bloc pour un effacement prioritaire ;   c'est-à-dire   pour l'effacement suivant. L'initialisation du registre de priorité indique au dispositif de commande 240 d'effacement qu'aucun effacement prioritaire n'est en cours et qu'aucun bloc n'est marqué d'un drapeau pour un effacement suivant immédiat.

   Selon un mode de réalisation, le registre de 

 <Desc/Clms Page number 31> 

 priorité est initialisé en le plaçant à une valeur de FF, en hexadécimal. 



   Le dispositif de commande 240 d'effacement avance de l'étape 244 à l'étape 246. Pendant l'étape 246, le dispositif de commande 240 d'effacement choisit un emplacement sûr pour le retour après traitement d'une interruption et il mémorise l'adresse de cet emplacement dans le registre de retour d'interruption du compteur 234 de programme. L'emplacement de retour choisi à cet instant est l'étape 246. Selon un mode de réalisation, le registre de retour d'interruption est placé en envoyant un ordre de validation d'interruption ENI, qui valide aussi le drapeau d'interruption de file d'attente d'opérations.

   Afin d'empêcher toute interruption à un quelconque emplacement différent des emplacements connus et sûrs pendant l'exécution du programme d'effacement, le dispositif de commande 240 d'effacement invalide à l'étape 248 le drapeau d'interruption de file d'attente d'opérations. Selon un mode de réalisation, le dispositif de commande 240 d'effacement y parvient au moyen d'un ordre DSI d'invalidation d'interruptions de file d'attente d'opérations. 



   On suppose dans toute la description qui suit que le drapeau d'interruption maître est validé initialement. Cependant, ceci n'est pas nécessaire. Le drapeau d'interruption maître peut être validé ou invalidé par le dispositif de commande 40 de réseau avant de commencer l'exécution du dispositif de commande 240 d'effacement. Si le drapeau maître est invalidé, aucune interruption n'est traitée. 



   Le dispositif de commande 240 d'effacement est prêt à commencer à effacer un bloc de mémoire quand l'étape 248 est achevée. Le dispositif de commande 240 d'effacement efface le bloc associé à l'ordre actuel d'effacement de bloc au cours des trois étapes 

 <Desc/Clms Page number 32> 

 suivantes en utilisant un bloc 250 de condition préalable, un bloc 252 d'effacement 252 et un bloc 254 de condition ultérieure, qui incluent chacun une fenêtre 300 d'interruption. Quand le bloc est effacé, le dispositif de commande 240 d'effacement passe à l'étape 255 pour indiquer que le bloc est maintenant prêt et disponible pour d'autres opérations. Le dispositif de commande 240 d'effacement effectue ceci en faisant passer à RDY le bit   RDY/1BSY   du bloc. 



   Le dispositif de commande 240 d'effacement n'enlève pas immédiatement de la file d'opérations 204 l'ordre d'effacement. Le premier ordre d'effacement reçu reste dans la file d'attente d'opérations 204 en tant qu'élément de retenue d'emplacement pour tous les ordres d'effacement absorbés jusqu'à ce qu'ils aient tous été exécutés. 



   On va maintenant décrire l'absorption et l'exécution d'ordres d'effacement. 



   Après avoir a achevé l'effacement du premier bloc, le dispositif de commande 240 d'effacement va maintenant traiter les effets de toutes interruptions reçues précédemment. Le dispositif de commande 240 d'effacement traite en premier lieu les effets des ordres de programme interrompants aux étapes 256, 258, 280, 282, 270, 272 et 300. Ceci peut impliquer d'exécuter un effacement prioritaire aux étapes 258, 280 et 282 ou d'exécuter l'ordre de programme aux étapes 270, 272 et 300. Ces tâches achevées, le dispositif de commande 240 d'effacement passe, aux étapes 260, 262, 264 et   266, à l'identification   et à l'exécution d'ordres absorbés d'effacement. 



   La manière selon laquelle le dispositif de commande 240 d'effacement et la fenêtre 300 d'interruption accomplissent ces tâches peut être comprise en utilisant des exemples. Considérons en premier lieu la manière dont les algorithmes 240 et 

 <Desc/Clms Page number 33> 

 300 absorbent des ordres d'effacement reçus pendant l'exécution d'un autre ordre d'effacement. La Figure 7A illustre une situation dans laquelle un ordre d'effacement est absorbé : l'utilisateur envoie un deuxième ordre d'effacement pendant l'exécution d'un premier ordre d'effacement. La file d'attente principale mémorise un ordre d'effacer un bloc 5, qui est l'ordre de l'élément de retenue d'emplacement, et qui est actuellement en cours d'exécution. Le bit   RDY/IBSY   du bloc 5 a été placé à IBSY.

   La file d'attente secondaire mémorise l'ordre interrompant,   c'est-à-dire   l'ordre d'effacement du bloc 4. La présence de l'ordre dans la file d'attente secondaire est signalée par une affirmation du signal d'interruption d'ordre prêt, CMDRDY, par la file d'attente d'opérations 204. La première fenêtre 300 d'interruption atteinte après la réception de l'ordre dans la file d'attente secondaire traite l'interruption provoquée par la réception de l'ordre d'effacement du bloc 4. 



   La Figure 8 illustre sous forme d'un schéma logique la manière dont la fenêtre 300 d'interruption traite des interruptions d'ordres venant de la file d'attente d'opérations 204. En bref, la fenêtre 300 d'interruption détermine en premier lieu aux étapes 310 et 312 si une interruption peut être traitée. Si les drapeaux d'interruption le permettent, la fenêtre 300 d'interruption traite, aux étapes 314,316, 318 et 320, des interruptions d'ordre d'effacement. Aux étapes 314,316, 330,332, 334,336, 338,340 et 342, la fenêtre 300 d'interruption traite des interruptions d'ordres de programme.

   Quand les interruptions d'ordres ont été traitées, au fur et à mesure, la fenêtre 300 d'interruption ferme effectivement la fenêtre en empêchant la file d'attente d'opérations 

 <Desc/Clms Page number 34> 

 204 d'interrompre une exécution d'effacement sauf à un autre emplacement sûr. 



   La fenêtre 300 d'interruption ouvre à l'étape 310 une fenêtre de temps pour traiter des interruptions venant de la file d'attente d'opérations 204 en validant le drapeau d'interruption de file d'attente d'opérations. Puis, il est déterminé à l'étape 312, sur la base de   l'état   du drapeau d'interruption maître, si des interruptions peuvent être traitées. Si le drapeau d'interruption maître est validé, la fenêtre 300 d'interruption saute de l'étape 312 à l'étape 314. Le dispositif de commande 240 d'effacement permet au drapeau d'interruption maître de rester validé, tant qu'il n'existe à l'intérieur de la file d'attente secondaire aucun ordre de programme qui ne puisse pas être exécuté immédiatement.

   Selon l'exemple actuel, le drapeau d'interruption maître est validé parce que la file d'attente d'opérations 204 ne mémorise aucun ordre de programme d'un tel type. La fenêtre 300 d'interruption répond par un saut de séquence de l'étape 312 à l'étape 314. 



   Après avoir déterminé qu'une interruption venant de la file d'attente d'opérations 204 peut être traitée maintenant, la fenêtre 300 d'interruption détermine pendant l'étape 314 s'il existe un ordre à traiter. La fenêtre 300 d'interruption réalise cette détermination sur la base de l'état de CMDRDY. Dans l'exemple actuel, CMDRDY est affirmé en indiquant qu'il existe un ordre dans la file d'attente secondaire. La fenêtre 300 d'interruption répond en passant à l'étape 316. 



   La fenêtre 300 d'interruption examine la file d'attente secondaire pendant l'étape 316 pour déterminer le type d'ordre qui doit être traité. Dans l'exemple actuel, la file d'attente secondaire 

 <Desc/Clms Page number 35> 

 contient un ordre d'effacement du bloc 4. La fenêtre 300 d'interruption saute donc à l'étape 318. 



   L'ordre d'effacement du bloc 4 est absorbé pendant l'étape 318 en plaçant un bit d'absorption dans le registre d'état de bloc du bloc 4. Selon un mode de réalisation, le bit   RDY/iBSY   du bloc 4 est utilisé comme bit d'absorption. Ainsi, dans ce mode de réalisation, placer à IBSY le bit RDY/ ! BSY du bloc 4 indique à l'utilisateur que le bloc 4 est occupé et indique en outre au dispositif de commande 40 de réseau une absorption de l'ordre d'effacement du bloc 4. Après avoir absorbé l'ordre d'effacement du bloc 4, la fenêtre 300 d'interruption enlève l'ordre de la file d'attente secondaire à l'étape 320, comme illustré à la Figure 7B. Ceci permet à la file d'attente d'opérations 204 de recevoir de l'utilisateur encore un autre ordre.

   De cette manière, le dispositif de commande 40 de réseau peut absorber, et donc mettre en file d'attente, autant d'ordres d'effacement qu'il existe de blocs à l'intérieur du réseau de mémoire 50. 



   Après avoir achevé son traitement d'un ordre d'effacement interrompant, la fenêtre 300 d'interruption saute de l'étape 320 à l'étape 322. 



  Pendant l'étape 322, la fenêtre de temps dans laquelle les interruptions sont traitées est fermée en invalidant le drapeau d'interruption de file d'attente d'opérations. Ceci empêche l'affirmation de CMDRDY par suite d'une exécution d'un ordre d'effacement interrompant jusqu'à ce qu'une autre fenêtre 300 d'interruption soit atteinte. La fenêtre 300 d'interruption reprend ensuite un effacement à un point indiqué par une valeur mémorisée dans un registre de retour d'interruption à l'intérieur du dispositif de commande 40 de réseau. 

 <Desc/Clms Page number 36> 

 



   Comment des ordres d'effacement absorbés sont-ils identifiés et exécutés quand ils ont été absorbés ? Pour simplifier, on considère de nouveau la situation qui suit l'absorption de l'ordre d'effacement du bloc 4 et qui est illustrée à la Figure 7B. Supposons en outre qu'une poursuite de l'exécution de   l 1 ordre   d'effacement du bloc 5   n'est   interrompue que par des ordres d'effacement, et non par des ordres de programme. Ainsi, après exécution de   11 étape   255 du dispositif de commande 240 d'effacement, le registre de priorité est encore initialisé. Puisque le registre de priorité indique qu'aucun effacement prioritaire nIa été effectué à   l 1 instant,   le dispositif de commande 240 d'effacement saute de l'étape 256 à l'étape 258.

   Le dispositif de commande 240 d'effacement saute de l'étape 258 à   l'étape   260 parce que le registre de priorité indique aussi qu'aucun bloc n'est marqué d'un drapeau en vue d'un effacement prioritaire. 



   A   l'étape   260, le dispositif de commande 240 d'effacement commence le processus d'identification et de choix en vue de   l'exécution   d'un ordre absorbé d'effacement. Pendant   11 étape   260, c'est le bloc de mémoire, situé à l'intérieur du réseau de mémoire 50, dont   11 adresse   de valeur est la plus élevée qui est choisi pour être examiné. Le dispositif de commande 240 d'effacement détermine à   ltétape   262 si un ordre d'effacement a été absorbé pour le bloc choisi pour   11 examen.   Le dispositif de commande 240 d'effacement accomplit cette tâche en lisant le bit   RDY/1BSY   pour le bloc choisi pour examen. Si le   bi t RDY/1 BSY   est placé à RDY, aucun ordre d'effacement nIa été absorbé.

   Le dispositif de commande 240 d'effacement répond à ceci en passant à l'étape 266. Là, un autre bloc est choisi pour examen en décrémentant   11 adresse   de bloc par rapport à sa valeur précédente. Le dispositif de 

 <Desc/Clms Page number 37> 

 commande 240 d'effacement revient ensuite à l'étape 262 pour examiner le bit d'absorption associé au nouveau bloc choisi. Le premier ordre d'effacement absorbé identifié est exécuté.

   Dans l'exemple décrit, le dispositif de commande 240 d'effacement saute finalement de l'étape 262 à l'étape 246 parce qu'un ordre d'effacement du bloc 4 est marqué d'un drapeau par   l'état   IBSY de son bit   RDY/1BSY.   Le dispositif de commande 240 d'effacement place ensuite l'adresse du bloc 4 dans le registre alternatif 78 d'adresses et commence à exécuter l'ordre d'effacement du bloc 4. Lorsque l'effacement du bloc 4 est achevé, le dispositif de commande 240 d'effacement ramène à RDY le bit   RDY/1BSY.   



   L'ordre dans lequel des blocs d'effacement absorbés sont choisis pour exécution n'affecte pas le présent procédé d'absorption et d'exécution d'ordres d'effacement de blocs. D'autres procédés de choix d'ordres absorbés d'effacement de blocs en vue de leur exécution sont possibles et sont compatibles avec le présent procédé. 



   On va maintenant décrire le cas où un ordre de programme interrompt une exécution d'effacement, sans effacement prioritaire. 



   Un traitement d'interruption pendant une exécution d'ordre d'effacement devient plus complexe lorsque l'ordre d'interruption est un ordre de programme. Considérons en premier lieu la situation relativement simple qui se produit lorsqu'aucun ordre d'effacement de bloc   n'a   été reçu pour le bloc associé à l'ordre de programme interrompant concerné. La Figure 9A illustre une de ces situations. Un ordre de programme associé au bloc 1 a été placé à l'instant dans la file d'attente secondaire pendant l'exécution de l'ordre d'effacement du bloc 4. En réponse, la file d'attente d'opérations 204 affirme le signal CMDRDY. 

 <Desc/Clms Page number 38> 

 Le bloc en cours d'effacement est indiqué par le registre alternatif 78 d'adresses.

   L'ordre de   l'élément   de retenue d'emplacement, le bloc d'effacement 5, reste dans la file d'attente principale de la file d'attente d'opérations 204. 



   Un certain temps après la réception de l'ordre de programmation du bloc 1, une fenêtre 300 d'interruption est atteinte. L'exécution des étapes 310, 312 et 314 de la fenêtre 300 d'interruption se produit comme décrit précédemment, puisque le drapeau d'interruption maître est validé et que CMDRDY est affirmé. La fenêtre 300 d'interruption passe donc de l'étape 316 à l'étape 314. 



   L'ordre qui réside dans la file d'attente secondaire est examiné pendant l'étape 316. La fenêtre 300 d'interruption répond à une identification d'un ordre de programme en passant à l'étape 330. L'étape 330 commence le processus consistant à déterminer s'il existe des ordres d'effacement qui doivent être exécutés avant l'exécution de l'ordre de programme. Il s'agit d'un processus à étapes multiples. La fenêtre 300 d'interruption détermine en premier lieu à l'étape 330 si le bloc en cours d'effacement est le bloc qui doit être programmé. Si tel est le cas, l'effacement du bloc actuel est un effacement prioritaire et est achevé avant l'interruption. Cependant, dans notre exemple, le bloc 4 est actuellement en cours d'exécution et l'ordre de programme est associé au bloc 1.

   On notera que le bloc en cours d'effacement peut cependant être effacé avant l'exécution de l'ordre de programme, même si son effacement n'est pas une priorité. La fenêtre d'interruption répond en passant de l'étape 330 à l'étape 336. 



   La fenêtre 300 d'interruption détermine pendant l'étape 336 si le bloc associé à l'ordre de programme est prêt à être programmé. Cette détermination est 

 <Desc/Clms Page number 39> 

 effectuée en examinant le bit   RDY/IBSY   associé au bloc de programme. Si, comme c'est le cas pour l'exemple actuel, aucun ordre d'effacement n'a été absorbé pour le bloc de programme,   c'est-à-dire   si le bit   RDY/IBSY   est RDY, le bloc de programme est prêt à être programmé. La fenêtre 300 d'interruption passe à l'étape 338, afin de programmer le bloc de programme. 



  Une exécution de l'ordre de programme n'est pas interrompue parce que la prise en charge de programme n'inclut aucune fenêtre 30 d'interruption. La fenêtre 300 d'interruption passe à l'étape 322 quand l'ordre de programme a été exécuté et enlevé de la file d'attente secondaire. La fenêtre 300 d'interruption est ensuite fermée à l'étape 322 et le dispositif de commande 40 de réseau revient à l'exécution d'effacement. 



   On va maintenant décrire le cas où un ordre de programme interrompt une exécution d'effacement, avec un effacement prioritaire. 



   Une interruption d'une exécution d'ordre d'effacement par un ordre de programme devient plus compliquée lorsque des blocs de mémoire doivent être effacés avant l'exécution de l'ordre de programme. 



  Ceci peut se produire dans deux situations. 



  Considérons en premier lieu la plus simple de ces deux situations : un ordre de programme est reçu pour un bloc qui est en cours d'effacement. La Figure 9B illustre cette situation. La file d'attente secondaire contient un ordre de programmer une adresse située à l'intérieur d'un bloc 1 et CMDRDY a été affirmé. Un ordre d'effacement concernant le bloc 1 a été absorbé précédemment, comme indiqué par   l'état   ! BSY de son bit   RDY/IBSY   et est maintenant en cours d'exécution, comme indiqué par son adresse dans le registre alternatif 78 d'adresses. A cet instant, avant l'exécution de l'étape 332, le registre de priorité est initialisé en 

 <Desc/Clms Page number 40> 

 indiquant qu'aucun effacement prioritaire n'est en cours d'exécution. 



   L'interruption d'ordre représentée par l'affirmation de CMDRDY est traitée par la première fenêtre 300 d'interruption qui est atteinte ensuite. 



  La fenêtre 300 d'interruption exécute les étapes 310, 312,314 et 316 et passe à l'étape 330 comme décrit précédemment. La fenêtre 300 d'interruption découvre pendant l'étape 330 que le bloc associé à l'ordre de programme est actuellement en cours d'effacement. 



  Ainsi, l'ordre d'effacement actuellement en cours d'exécution doit être achevé avant l'exécution de l'ordre de programme. En fait, un effacement de ce bloc est maintenant une priorité. La fenêtre 300 d'interruption répond en passant à l'étape 332 où la valeur située dans le registre de priorité est modifiée pour indiquer qu'un effacement prioritaire est en cours. Selon un mode de réalisation, la valeur indicative d'un effacement prioritaire est 00 en hexadécimal. Puis, la fenêtre 300 d'interruption passe à l'étape 334. 



   La fenêtre 300 d'interruption accélère une exécution définitive de l'ordre de programme en empêchant toutes autres interruptions dans l'exécution de l'ordre d'effacement prioritaire. La fenêtre 300 d'interruption y parvient en invalidant à l'étape 334 le drapeau d'interruption maître. La fenêtre 300 d'interruption invalide ensuite à l'étape 322 le drapeau d'interruption de la file d'attente d'opérations et reprend l'exécution de l'ordre interrompu d'effacement. 



   L'exécution de l'ordre interrompu d'effacement, qui est maintenant devenu un ordre d'effacement prioritaire, reprend sans autre traitement d'interruptions venant de la file d'attente d'opérations 204. La raison en est que l'état invalidé 

 <Desc/Clms Page number 41> 

 du drapeau d'interruption maître amène des fenêtres ultérieures 300 d'interruption à passer de l'étape 312 à 322, en sautant par delà le traitement d'interruption. Quand l'exécution de l'ordre d'effacement prioritaire est achevée, le dispositif de commande 240 d'effacement fait passer à RDY à l'étape 255 le   RDY/1BSY   concernant, en indiquant que d'autres ordres peuvent être exécutés sur le bloc. 



   Le dispositif de commande 240 d'effacement est maintenant libre de passer à l'exécution de l'ordre de programme qui a provoqué l'effacement prioritaire. Ceci est effectué à l'étape 256 en déterminant si un effacement prioritaire s'est effectué à l'instant, en examinant le registre de priorité. Dans l'exemple actuel, le registre de priorité indique qu'un effacement prioritaire s'est effectué à l'instant. Le dispositif de commande 240 d'effacement passe donc à l'étape 270, où il ramène à sa valeur initialisée le registre de priorité. Puis, à l'étape 272, le dispositif de commande 240 d'effacement assure que la fenêtre 300 d'interruption atteinte immémdiatement ensuite traite l'ordre de programme. Le dispositif de commande 240 d'effacement y parvient en validant le drapeau d'interruption maître.

   Selon le mode de réalisation, ceci est effectué au moyen de l'ordre de drapeau de validation d'interruptions de file d'attente d'opérations ou ENI. Le dispositif de commande 240 d'effacement passe ensuite de l'étape 272 à une fenêtre 300 d'interruption. 



   Le bloc 1 est maintenant prêt à être programmé et le sera. L'exécution de la fenêtre 300 d'interruption se poursuit en passant par les étapes 310,312, 314, 330,336 et 338 comme décrit précédemment. 



   Considérons maintenant la deuxième situation dans laquelle une exécution d'ordre de programme doit être précédée par l'exécution d'ordres reçus précédemment 

 <Desc/Clms Page number 42> 

 d'effacement de blocs. Ceci se produit lorsqu'un ordre de programme est reçu pour un bloc qui a été marqué d'un drapeau en vue de son effacement mais qui n'est pas actuellement en cours d'effacement. La Figure 9C illustre cette situation. La file d'attente secondaire contient un ordre de programmation du bloc 1. Un ordre d'effacement du bloc 1 a été absorbé, comme indiqué par l'état   ! BSY   de son bit RDY/ ! BSY. Le bloc 4 est actuellement en cours d'effacement, ce qui est indiqué par l'état de son bit RDY/ ! BSY et par son adresse dans le registre alternatif 78 d'adresses.

   Le registre de priorité est initialisé parce qu'aucun effacement prioritaire n'est actuellement en cours d'exécution. 



  De plus, le drapeau d'interruption maître est validé et le drapeau d'interruption de file d'attente est invalidé. 



   Lorsqu'une fenêtre 300 d'interruption est atteinte après la réception de l'ordre de programme, la fenêtre 300 d'interruption répond à la situation illustrée à la Figure 9C en exécutant les étapes 310, 312,314, 316,330 et en atteignant l'étape 336, comme décrit précédemment. La fenêtre 300 d'interruption découvre pendant l'étape 336 que le bloc à programmer, le bloc 1, n'est pas prêt à être programmé parce que son bit RDY/ ! BSY indique une absorption antérieure d'un ordre d'effacement qui concerne le bloc 1. Ceci signifie que c'est non pas un, mais deux ordres d'effacement qui doivent être exécutés avant l'exécution de l'ordre de programme.

   Une modification du dispositif de commande 40 de réseau qui permet de sauvegarder l'état actuel de l'ordre d'effacement non prioritaire, c'est-à-dire l'ordre d'effacement du bloc 4, réduitrait ce nombre à un,   c'est-à-dire   l'ordre d'effacement prioritaire seul. La fenêtre 300 d'interruption répond à cette situation en plaçant un drapeau pour le bloc associé à l'ordre de programme 

 <Desc/Clms Page number 43> 

 d'effacement qui suit. La fenêtre 300 d'interruption y parvient à l'étape 340 en mémorisant dans le registre de priorité l'adresse du bloc à programmer, le bloc 1 dans notre exemple. Ensuite, une exécution rapide de l'ordre interrompu d'effacement, le bloc d'effacement 4 dans notre exemple, est assurée en invalidant à l'étape 342 le drapeau d'interruption maître.

   La fenêtre 300 d'interruption invalide ensuite à l'étape 322 le drapeau d'interruption de file d'attente d'opérations et revient au sous-programme interrompu. 



   Une exécution de l'ordre d'effacement interrompu s'effectue maintenant sans aucun traitement d'interruption, comme décrit précédemment. Le dispositif de commande 240 d'effacement passe de nouveau à l'étape 256 pour déterminer si un effacement prioritaire s'est produit à   l'instant.   Aucun ne s'est produit dans l'exemple actuel, et le dispositif de commande 240 d'effacement passe donc de l'étape 256 à l'étape 258. Le dispositif de commande 240 d'effacement détermine à l'étape 258, en examinant le registre de priorité, s'il existe un ordre d'effacement dont l'exécution constitue une priorité. 



  Selon le présente exemple, le registre de priorité indique que l'effacement du bloc 1 est une priorité, en d'autres termes, que le bloc 1 est le suivant à effacer. Ainsi, pendant l'étape 280, l'adresse mémorisée dans le registre de priorité est placée dans le registre alternatif 78 d'adresses afin de permettre une opération sur ce bloc. Le dispositif de commande 240 d'effacement modifie ensuite la valeur mémorisée dans le registre de priorité pour indiquer qu'un effacement prioritaire est en cours. Ceci est effectué à l'étape 282. 



   Le dispositif de commande 240 d'effacement commence maintenant à effacer le bloc indiqué par le 

 <Desc/Clms Page number 44> 

 registre alternatif 78 d'adresses en remontant à l'étape 246. Un effacement de ce bloc se produit lui aussi sans aucun traitement d'interruptions venant de la file d'attente d'opérations 204, bien que CMDRDY soit affirmé. La raison en est que le drapeau d'interruption maître reste invalidé. Le dispositif de commande 240 d'effacement passe donc encore une fois à l'étape 256. Cette fois, un effacement prioritaire s'est produit à l'instant. Le dispositif de commande 240 d'effacement traite l'exécution de l'ordre de programme qui a provoqué l'effacement prioritaire en passant par les étapes 270,272 et 300, comme décrit précédemment. 



   Finalement, il vient un temps où tous les ordres de programmes interrompants et tous les ordres d'effacement absorbés ont été exécutés. Lorsque ceci se produit, le dispositif de commande 240 d'effacement passe de l'étape 264 à l'étape 268. L'ordre de l'élément de retenue d'emplacement est finalement enlevé de la file d'attente d'opérations 204. Le dispositif de commande 240 d'effacement cesse ensuite toute exécution   jusqu'à   ce qu'il reçoive l'ordre d'effacement suivant. 



   La Figure 10 illustre sous forme de schéma fonctionnel un ordinateur personnel 400. L'ordinateur personnel 400 inclut une unité centrale de traitement, ou UCT, 402 et un moniteur 404 pour afficher visuellement l'information à un utilisateur de l'ordinateur. Un clavier 406 permet à l'utilisateur de l'ordinateur d'entrer une donnée dans l'unité centrale de traitement 402. En déplaçant une souris 408, l'utilisateur de l'ordinateur peut déplacer un indicateur affiché sur le moniteur. L'utilisateur de l'ordinateur peut aussi entrer une donnée pour l'unité centrale de traitement 402 par l'intermédiaire d'une tablette 409 à base de stylet, quimémorise une donén 

 <Desc/Clms Page number 45> 

 qui y est entrée en utilisant une pointe, une baguette, un stylet ou un autre dispositif adapté ç une opération manuelle.

   La mémoire 410 mémorise la donnée utilisée par l'unité centrale de traitement. La mémoire 410 inclut typiquement une unité de disque magnétique en vue d'une mémorisation dans une mémoire de masse. La mémoire 410 inclut aussi typiquement un dispositif de mémoire non volatile 20 pour mémoriser des données auxquelles l'accès doit être fréquent et rapide. 



   En résumé, un procédé d'interruption de l'exécution d'ordres d'effacement pour exécuter un ordre de programme reçu ultérieurement a été décrit. Il a également été décrit un procédé d'absorption d'ordres d'effacement de blocs qui permet de mettre en file d'attente un ordre d'effacement de blocs pour chaque bloc de mémoire, bien que la profondeur de la file d'attente d'opérations soit limitée. Une hiérarchisation parmi des ordres absorbés d'effacement de blocs se produit en réponse à des ordres de programmes interrompants. 



   Dans le document ci-dessus, l'invention a été décrite en référence à des modes de réalisation spécifiques donnés à titre d'exemple. Il est cependant évident que diverses modifications et variantes peuvent y être apportées sans s'écarter de l'esprit et du cadre plus larges de l'invention exposés dans les revendications annexées. La présente description, y compris les dessins, doit donc être regardée comme donnée à titre d'illustration et non dans un sens restrictif.

Claims (25)

  1. REVENDICATIONS 1. Procédé de mise en file d'attente d'une première multiplicité d'ordres d'effacement dans un dispositif de mémoire non volatile qui inclut une file d'attente d'opérations destinée à mettre des ordres d'effacement en file d'attente, caractérisé en ce que : la file d'attente d'opérations inclut deux sousfiles d'attente, le dispositif de mémoire non volatile comprend un réseau de mémoire principale incluant une deuxième multiplicité de blocs de mémoire, la deuxième multiplicité de blocs de mémoire est supérieure au nombre des sous-files d'attente incluses dans la file d'attente d'opérations, la première multiplicité d'ordres d'effacement est supérieure au nombre de sous-files d'attente incluses dans la file d'opérations, chaque ordre d'effacement est associé à un bloc de mémoire,
    et en ce que le procédé de mise en file d'attente comprend les étapes (310 à 316,318, 320) consistant à : a) interrompre une exécution d'un premier ordre d'effacement associé à un premier bloc en réponse à une réception d'un deuxième ordre d'effacement associé à un deuxième bloc de mémoire de la file d'attente d'opérations ; b) absorber l'ordre pour effacer le deuxième bloc ; et c) valider la file d'attente d'opérations pour recevoir des ordres additionnels.
  2. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à : e) reprendre l'exécution du premier ordre d'effacement après l'étape c).
  3. 3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre l'étape consistant à : <Desc/Clms Page number 47> f) exécuter le deuxième ordre d'effacement.
  4. 4. Procédé selon la revendication 3, caractérisé en ce qu'il comprend en outre l'étape consistant à : g) déterminer si des ordres d'effacement ont été absorbés.
  5. 5. Procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à hiérarchiser un ordre de programme associé à un premier bloc de mémoire lorsqu'un ordre d'effacement associé au premier bloc de mémoire a été absorbé, et caractérisé en ce qu'il comprend les étapes consistant à : a) si un ordre d'effacement associé à un deuxième bloc est en cours d'exécution (310 à 316,330, 336, 338) : 1) achever l'effacement du deuxième bloc ; 2) effacer le premier bloc ; et 3) programmer le premier bloc.
  6. 6. Procédé selon la revendication 5, caractérisé en ce que l'étape al) se produit sans interruption.
  7. 7. Procédé selon la revendication 5, caractérisé en ce que l'étape a2) se produit sans interruption.
  8. 8. Procédé selon la revendication 5, caractérisé en ce que l'étape a3) se produit sans interruption.
  9. 9. Procédé selon la revendication 5 caractérisé en ce que un ordre d'effacement a été absorbé pour un troisième bloc de mémoire, et en ce que <Desc/Clms Page number 48> les étapes al), a2) et a3) sont effectués avant l'effacement du troisième bloc.
  10. 10. Procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à hiérarchiser un ordre de programme associé à un premier bloc de mémoire pour lequel un ordre d'effacement a été reçu précédemment, et caractérisé en ce qu'il comprend les étapes consistant à : a) si un ordre d'effacement associé au premier bloc est en cours d'exécution (310 à 316,332, 334) : 1) achever l'effacement du premier bloc ; et 2) programmer le premier bloc.
  11. 11. Procédé selon la revendication 10, caractérisé en ce que l'étape al) se produit sans interruption.
  12. 12. Procédé selon la revendication 10, caractérisé en ce que l'étape a2) se produit sans interruption.
  13. 13. Procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à mettre en oeuvre un ordre d'effacement associé à un premier bloc de mémoire après réception d'un ordre de programme associé au premier bloc, EMI48.1 caractérisé en ce qu'il comprend les étapes consistant à : a) si un ordre d'effacement associé à un deuxième bloc est en cours d'exécution à la réception de l'ordre de programme (310 à 316,330, 336,338) : 1) achever l'effacement du deuxième bloc ; <Desc/Clms Page number 49> 2) effacer le premier bloc ; 3) programmer le premier bloc ;
    b) a) si un ordre d'effacement associé au premier bloc est en cours d'exécution à la réception de l'ordre de programme (310 à 316,330, 332,334) : 1) achever l'effacement du premier bloc ; et 2) programmer le premier bloc.
  14. 14. Procédé selon la revendication 13, caractérisé en ce que l'étape al) se produit sans interruption.
  15. 15. Procédé selon la revendication 13, caractérisé en ce que l'étape a2) se produit sans interruption.
  16. 16. Procédé selon la revendication 13, caractérisé en ce que l'étape a3) se produit sans interruption.
  17. 17. Procédé selon la revendication 13, caractérisé en ce que l'étape b1) se produit sans interruption.
  18. 18. Procédé selon la revendication 13, caractérisé en ce que l'étape b2) se produit sans interruption.
  19. 19. Procédé selon la revendication 13, caractérisé en ce que un ordre d'effacement associé à un troisième bloc de mémoire a été absorbé et en ce que les étapes al), a2) et a3) sont effectuées avant l'effacement du troisième bloc.
  20. 20. Procédé à mettre en oeuvre dans un dispositif de mémoire non volatile à semi-conducteur incluant une première multiplicité de blocs de mémoire et une file d'attente d'opérations pour mémoriser des ordres de l'utilisateur, destiné à traiter une interruption d'effacement d'un premier bloc de mémoire due à un ordre de programme associé à un deuxième bloc de mémoire, <Desc/Clms Page number 50> caractérisé en ce qu'il comprend les étapes consistant à : a) déterminer si le deuxième bloc doit être effacé avant l'exécution de l'ordre de programme (310 à 316,330, 336) ; et b) si le deuxième bloc ne doit pas être effacé avant l'exécution de l'ordre de programme, programmer le deuxième bloc (338) avant d'achever l'effacement du premier bloc.
  21. 21. Procédé selon la revendication 20, caractérisé en ce que l'étape a) comprend l'étape consistant à déterminer si un effacement du deuxième bloc a été interrompu par la réception de l'ordre de programme.
  22. 22. Procédé selon la revendication 21, caractérisé en ce que l'étape a) comprend en outre l'étape consistant à déterminer si un ordre d'effacement associé au deuxième bloc a été reçu avant la réception de l'ordre de programme
  23. 23. Procédé selon la revendication 21, caractérisé en ce que (310 à 316,330, 336,340, 342) le deuxième bloc doit être effacé avant la programmation du deuxième bloc lorsqu'il est déterminé qu'un effacement du deuxième bloc a été interrompu par la réception de l'ordre de programme.
  24. 24. Procédé selon la revendication 22, caractérisé en ce que (310 à 316,330, 336,340, 342) le deuxième bloc doit être effacé avant la programmation du deuxième bloc lorsqu'il est déterminé qu'un ordre d'effacement associé au deuxième bloc a été reçu avant la réception de l'ordre de programme.
  25. 25. Mémoire non volatile à semi-conducteur caractérisée en ce qu'elle comprend : a) un réseau de mémoire (5) organisé sous la forme d'une première multiplicité de blocs de mémoire ; <Desc/Clms Page number 51> b) une file d'attente (204) d'opérations destinée à mémoriser des ordres d'opérations sur le réseau de mémoire, la file d'attente d'opérations incluant une deuxième multiplicité de sous-files d'attente ; c) un dispositif de commande pour exécuter des ordres mémorisés dans la file d'attente d'opérations, le dispositif de commande incluant : 1) un moyen d'interruption (234), qui répond à une réception d'un deuxième ordre par la file d'attente d'opérations et qui est destiné à interrompre l'exécution d'un premier ordre mémorisé dans la file d'attente d'opérations ;
    et 2) un moyen d'absorption (300) d'ordre d'effacement en réponse au moyen d'interruption, destiné à absorber le deuxième ordre et à valider la file d'attente d'opérations pour recevoir un ordre, en validant ainsi le dispositif de mémoire non volatile à semi-conducteur pour la mise en file d'attente d'une troisième multiplicité d'ordres qui est supérieure à la deuxième multiplicité de sous-files d'attente.
BE9400967A 1993-10-26 1994-10-26 Procede et circuit de memorisation et de hierarchisation d'ordres d'effacement dans un dispositif de memoire. BE1007932A7 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14329393A 1993-10-26 1993-10-26

Publications (1)

Publication Number Publication Date
BE1007932A7 true BE1007932A7 (fr) 1995-11-21

Family

ID=22503430

Family Applications (1)

Application Number Title Priority Date Filing Date
BE9400967A BE1007932A7 (fr) 1993-10-26 1994-10-26 Procede et circuit de memorisation et de hierarchisation d'ordres d'effacement dans un dispositif de memoire.

Country Status (4)

Country Link
US (3) US5809541A (fr)
BE (1) BE1007932A7 (fr)
FR (1) FR2711831B1 (fr)
NL (1) NL194901C (fr)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JP3173407B2 (ja) * 1997-02-05 2001-06-04 日本電気株式会社 フラッシュeeprom内蔵マイクロコンピュータ
US5905905A (en) * 1997-08-05 1999-05-18 Adaptec, Inc. System for copying IOBS from FIFO into I/O adapter, writing data completed IOB, and invalidating completed IOB in FIFO for reuse of FIFO
US5920501A (en) * 1997-12-12 1999-07-06 Micron Technology, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US6606674B1 (en) * 2000-02-24 2003-08-12 Intel Corporation Method and apparatus for reducing circular list's thrashing by detecting the queues' status on a circular linked list
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
JP4230122B2 (ja) * 2001-03-30 2009-02-25 株式会社ルネサステクノロジ マイクロコンピュータ、書込み方法及び消去方法
US6614695B2 (en) * 2001-08-24 2003-09-02 Micron Technology, Inc. Non-volatile memory with block erase
US6898680B2 (en) * 2003-01-03 2005-05-24 Micrel, Incorporated Minimization of overhead of non-volatile memory operation
US7328301B2 (en) * 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
ITRM20030354A1 (it) 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
US7509452B2 (en) * 2004-01-19 2009-03-24 Ricoh Company, Ltd. Image forming apparatus, erasing method, and hard disk management method
KR101051703B1 (ko) 2004-08-09 2011-07-25 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
ITMI20041904A1 (it) * 2004-10-07 2005-01-07 Atmel Corp "metodo e sistema per un approccio di programmazione per un dispositivo elettronico non volatile"
US7496722B2 (en) * 2005-04-26 2009-02-24 Hewlett-Packard Development Company, L.P. Memory mapped page priorities
KR100843136B1 (ko) * 2006-11-14 2008-07-02 삼성전자주식회사 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법
US8046524B2 (en) * 2007-08-08 2011-10-25 Sandisk Technologies Inc. Managing processing delays in an isochronous system
US8074021B1 (en) 2008-03-27 2011-12-06 Netapp, Inc. Network storage system including non-volatile solid-state memory controlled by external data layout engine
US7945752B1 (en) * 2008-03-27 2011-05-17 Netapp, Inc. Method and apparatus for achieving consistent read latency from an array of solid-state storage devices
US10445226B2 (en) 2010-08-10 2019-10-15 Rambus Inc. Verify before program resume for memory devices
US8543758B2 (en) * 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US8659954B1 (en) * 2011-09-14 2014-02-25 Adesto Technologies Corporation CBRAM/ReRAM with improved program and erase algorithms
DE102012022728A1 (de) 2012-11-21 2014-05-22 Unify Gmbh & Co. Kg Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
US10310923B1 (en) 2014-08-28 2019-06-04 Seagate Technology Llc Probabilistic aging command sorting
US10318193B2 (en) * 2015-09-14 2019-06-11 Sandisk Technologies Llc Systems and methods of command authorization
US10831403B2 (en) 2017-05-19 2020-11-10 Seagate Technology Llc Probabalistic command aging and selection

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4752871A (en) * 1985-09-30 1988-06-21 Motorola, Inc. Single-chip microcomputer having a program register for controlling two EEPROM arrays
US5034922A (en) * 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
EP0376285B1 (fr) * 1988-12-27 1994-03-09 Nec Corporation Microcalculateur ayont une mémoire non volatile électriquement effaçable et programmable
EP0935255A2 (fr) * 1989-04-13 1999-08-11 SanDisk Corporation Système EEprom avec effacement en bloc
US5065364A (en) * 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
JPH04221496A (ja) * 1990-03-29 1992-08-11 Intel Corp 単一基板上に設けられるコンピュータメモリ回路およびコンピュータメモリを消去するためのシーケンスを終らせる方法
FR2672709B1 (fr) * 1991-02-11 1994-09-30 Intel Corp Machine d'etat d'ordre.
US5333300A (en) * 1991-02-11 1994-07-26 Intel Corporation Timing circuitry and method for controlling automated programming and erasing of a non-volatile semiconductor memory
US5355464A (en) * 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
US5245572A (en) * 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
JP2632104B2 (ja) * 1991-11-07 1997-07-23 三菱電機株式会社 不揮発性半導体記憶装置
US5224070A (en) * 1991-12-11 1993-06-29 Intel Corporation Apparatus for determining the conditions of programming circuitry used with flash EEPROM memory
JPH06131889A (ja) * 1992-10-14 1994-05-13 Toshiba Corp 半導体ファイル装置
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5341330A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device

Also Published As

Publication number Publication date
NL9401779A (nl) 1995-05-16
FR2711831B1 (fr) 1997-09-26
NL194901B (nl) 2003-02-03
FR2711831A1 (fr) 1995-05-05
NL194901C (nl) 2003-06-04
US5956742A (en) 1999-09-21
US5802343A (en) 1998-09-01
US5809541A (en) 1998-09-15

Similar Documents

Publication Publication Date Title
BE1007932A7 (fr) Procede et circuit de memorisation et de hierarchisation d&#39;ordres d&#39;effacement dans un dispositif de memoire.
EP1619589B1 (fr) Procédé de programmation d&#39;un contrôleur de DMA dans un système sur puce et système sur puce associé
FR2880963A1 (fr) Points d&#39;arrets logiciels destines a etre utilises avec des dispositifs a memoire
US6199121B1 (en) High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US9632788B2 (en) Buffering instructions of a single branch, backwards short loop within a virtual loop buffer
JPS5873085A (ja) 記憶階層制御方法
FR2606903A1 (fr) Procede et dispositif de gestion de points d&#39;arret dans un moniteur de logiciel
EP3182292B1 (fr) Procédé de prédiction d&#39;une donnée a précharger dans une mémoire cache
FR2699702A1 (fr) Systèmes de commande de micro-ordinateurs pour des communications interprogrammes et des méthodes de planification.
TW477930B (en) Buffer management method and system
JP2007179089A (ja) 情報処理装置、アクセス制御方法、及びプログラム
US6351822B1 (en) Method and apparatus for remapping read only memory locations
US3909794A (en) Method of storing control data upon the interruption of a program in a processing system
FR2778254A1 (fr) Circuits,systemes et procedes d&#39;ordinateur utilisant un nettoyage partiel d&#39;une memoire cache
EP0700554B1 (fr) Procede d&#39;ecriture d&#39;informations dans une memoire non-volatile
JP2011530744A (ja) 停止可能および再始動可能dmaエンジン
US8095784B2 (en) Computer system and method for activating basic program therein
FR2513778A1 (fr) Dispositif et procede d&#39;informatique
US10896111B2 (en) Data handling circuitry performing memory data handling function and test circuitry performing test operation during execution of memory data processing
JPH04333929A (ja) キャッシュメモリ制御方式
FR2956913A1 (fr) Procede de sequencement deterministe multitache
JPH0736784A (ja) 外部記憶装置
FR3136079A1 (fr) Méthode pour la gestion d’une zone de données sensible en mémoire FLASH
JP2005267232A (ja) データベース管理システム及びプリページング方法
FR2879014A1 (fr) Dispositif de traitement de l&#39;information comprenant un dispositif de memoire remanente, dispositif de memoire remanente et procedes pour ceux-ci

Legal Events

Date Code Title Description
RE20 Patent expired

Owner name: INTEL CORP.

Effective date: 20001026