FR2874103A1 - Utilisation de la mmu pour la detection de borne de memoire tampon - Google Patents

Utilisation de la mmu pour la detection de borne de memoire tampon Download PDF

Info

Publication number
FR2874103A1
FR2874103A1 FR0451770A FR0451770A FR2874103A1 FR 2874103 A1 FR2874103 A1 FR 2874103A1 FR 0451770 A FR0451770 A FR 0451770A FR 0451770 A FR0451770 A FR 0451770A FR 2874103 A1 FR2874103 A1 FR 2874103A1
Authority
FR
France
Prior art keywords
buffer
memory
buffer memory
terminal
managing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
FR0451770A
Other languages
English (en)
Other versions
FR2874103B1 (fr
Inventor
Fabrice Devaux
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trango Virtual Processors SRL
Original Assignee
Trango Virtual Processors SRL
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 Trango Virtual Processors SRL filed Critical Trango Virtual Processors SRL
Priority to FR0451770A priority Critical patent/FR2874103B1/fr
Priority to PCT/FR2005/002020 priority patent/WO2006024781A1/fr
Publication of FR2874103A1 publication Critical patent/FR2874103A1/fr
Application granted granted Critical
Publication of FR2874103B1 publication Critical patent/FR2874103B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

La présente invention se rapporte à un procédé de gestion d'une mémoire tampon utilisée par un programme informatique mettant en oeuvre une unité de gestion de mémoires MMU, caractérisé en ce qu' il comporte une étape de détection d'un accès dépassant de la mémoire tampon réalisée par l'exploitation du signal d'exception généré par la MMU lors du franchissement d'au moins une borne de ladite mémoire tampon, ce signal commandant au moins l'une des actions de gestion AG constituées par l'exécution d'une routine de gestion des moyens d'accès et par l'exploitation de la mémoire tampon.

Description

UTILISATION DE LA MMU POUR LA DETECTION
DE BORNE DE MEMOIRE TAMPON
La présente invention se rapporte au domaine de la 5 gestion de la mémoire dans le monde informatique.
La présente invention se rapporte plus particulièrement à la détection des bornes d'une mémoire tampon. L'invention a pour but d'optimiser la détection de ces bornes en diminuant le nombre d'opérations de vérifications par l'exploitation des messages émis par l'unité de gestion de mémoire MMU.
L'art antérieur connaît déjà des procédés de gestion des mémoires permettant la détection des bornes de la mémoire tampon. En l'occurrence, à chaque écriture ou lecture d'un octet, de données dans ladite mémoire, un certain nombre d'instructions de vérification est effectué par un logiciel pour déterminer si la mémoire est pleine dans le cas d'une mémoire tampon d'envoi ou vide dans le cas d'une mémoire tampon de réception. On dénombre près d'une dizaine d'instructions à chaque accès à la mémoire, qui, la plupart du temps, sont inutiles au regard de la taille de la mémoire tampon. En effet, l'atteinte d'une des bornes de ladite mémoire est rare au regard du nombre d'accès écriture/lecture dans la mémoire. Cette solution réalise une gestion de mémoire en mettant en jeu des mécanismes de détection de borne de mémoire fastidieux avec une dizaine d'instructions effectuées à chaque accès mémoire.
L'art antérieur connaît également la famille de systèmes d'exploitation UNIX qui met en oeuvre des procédés de gestion de débordement de pile automatique. Une pile est associée à chaque processus du système, et est composée d'une page de mémoire valide avec la mémoire physique correspondante suivie de pages non valides sans allocation de mémoire physique. La pile se remplit et se vide par écriture/lecture successives de données. Lorsque le processus accède à une page non valide mitoyenne à une page valide de la pile, cela signifie que la pile est pleine, son dimensionnement étant alors trop petit et ne peut exécuter une commande d'écriture. Le système d'exploitation convertit ladite page invalide en page valide en lui allouant la mémoire physique correspondante et ré-exécute la commande d'écriture de données ayant engendré l'accès à une page non valide. Ce mécanisme peut être reproduit plusieurs fois jusqu'à obtention d'une mémoire pile de capacité suffisamment grande. Par ce mécanisme, la pile subit une extension de mémoire d'un seul côté. Cette solution réalise une adaptation de taille de mémoire en étendant la mémoire initiale.
La présente invention entend remédier aux inconvénients de l'art antérieur en proposant un procédé de détection d'une ou des deux bornes d'une mémoire tampon sans qu'aucune instruction de vérification de taille de mémoire ne soit réalisée lors des nombreux accès à la mémoire.
En outre, la présente invention met en oeuvre un procédé ne réalisant pas d'adaptation de taille de mémoire, c'est-à-dire qu'à la détection d'une borne de la mémoire, la capacité de cette dernière n'est pas accrue. Le procédé de la présente invention modifie alors l'index de lecture ou d'écriture de la mémoire vers une autre zone de mémoire.
A cet effet, l'invention concerne dans son acception la plus générale un procédé de gestion d'une mémoire tampon utilisée par un programme informatique mettant en uvre une unité de gestion de mémoires MMU, caractérisé en ce qu'il comporte une étape de détection d'un accès dépassant de la mémoire tampon réalisée par l'exploitation du signal d'exception généré par la MMU lors du franchissement d'au moins une borne de ladite mémoire tampon, ce signal commandant au moins l'une des actions de gestion AG constituées par l'exécution d'une routine de gestion des moyens d'accès et par l'exploitation de la mémoire tampon.
De préférence, ladite détection du signal d'exception est réalisée par le système d'exploitation.
Avantageusement, l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page absente.
Selon une variante, l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page invalide.
Selon un mode de réalisation, la mémoire tampon est utilisée pour émettre un message.
Selon un mode de mise en oeuvre, l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page interdite en écriture.
Selon un autre mode de réalisation, la mémoire tampon est utilisée pour recevoir un message.
Selon un mode de mise en oeuvre, l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page interdite en lecture.
Selon un mode de mise en oeuvre particulier, la 5 mémoire tampon est utilisée selon un mode FIFO.
Avantageusement, lesdites actions AG sont exécutées par le système d'exploitation.
Selon une variante, l'exécution desdites actions AG 10 est déléguée par le système d'exploitation au programme informatique ayant généré le signal d'exception.
Selon un autre mode de mise en oeuvre particulier, la mémoire tampon est exploitée en mode circulaire.
On comprendra mieux l'invention à l'aide de la description, faite ciaprès à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées.
- la figure 1 représente des agencements possibles de zones mémoires aux propriétés différentes; - la figure 2 représente un ordinogramme illustrant le mode opératoire d'accès à la mémoire.
La présente invention met en oeuvre un procédé de détection de borne d'une mémoire tampon en utilisant l'unité de gestion de mémoire MMU du système.
Dans un mode de réalisation particulier, un système met en oeuvre des mécanismes d'envoi ou de réception de messages. Ces mécanismes nécessitent la mise en place d'au moins une mémoire tampon permettant la mémorisation temporaire d'au mois une partie d'un message échangé.
En référence à la figure 1, chacune des mémoires tampon est composée d'un ensemble de pages valides (10) associées à un espace de mémoire physique, et d'au moins une page non valide (21) d'une part et/ou de l'autre de ladite mémoire tampon. Concrètement, on place une page non valide avant la mémoire tampon et/ou une page non valide après la mémoire tampon.
Dans une variante, il est possible de substituer ladite ou lesdites pages non valides par une ou des pages absentes (20), c'est-à-dire des pages non référencées dans les tables de l'unité de gestion de mémoire MMU. Les mécanismes décrits après s'appliquent de la même façon. Cette variante présente un grand avantage qui réside dans l'absence de création d'entrées de translation TLB relatives à cette ou ces pages et ne consomme ainsi pas d'entrées de translation TLB.
Un programme utilisant une mémoire tampon, écrit des données dans ladite mémoire pour constituer le message à envoyer ou lit les données contenues dans ladite mémoire pour reconstituer le message reçu.
Un programme écrit un message qu'il désire envoyer. Pour cela, il accède à la mémoire tampon et écrit les données dans ladite mémoire de façon automatique, c'est-à-dire sans qu'aucune vérification de capacité d'espace mémoire libre restant ne soit effectuée. Au fur et à mesure de l'ajout de données dans la mémoire tampon, le pointeur (31) d'écriture se rapproche de la borne (42) de la zone mémoire: la capacité libre disponible dans ladite mémoire diminue, jusqu'à devenir inférieure à la taille des données à écrire. Le programme tente d'écrire ces données, mais le pointeur déborde sur la partie adjacente (21) à la mémoire, en l'occurrence une page non valide.
Dans une variante, un programme reçoit un message, mis dans une mémoire tampon. Il lit progressivement les données contenues dans ladite mémoire sans aucune procédure de vérification de l'existence de données non lues dans la mémoire. Lorsque aucune donnée non lue ne perdure dans ladite mémoire, le programme tente d'accéder à une zone de mémoire adjacente de ladite mémoire tampon, en l'occurrence une page non valide.
Dans les deux variantes ci-dessus, l'accès à une zone non valide entraîne automatiquement une exception accès invalide de la part de l'unité de gestion de mémoire MMU. L'accès à la mémoire en écriture ou lecture de la mémoire est alors annulée.
Dans un autre mode de réalisation, à la mémoire tampon constituée de pages valides, est associée au moins une page absente d'une part et/ou de l'autre de ladite mémoire tampon. Lors de l'accès à cette zone absente, la MMU émet une exception translation absente , connue également sous les appellations TLB miss ou TLB refill .
Selon un troisième mode de réalisation, le processeur du dispositif mettant en oeuvre le procédé de la présente invention, propose un mécanisme indiquant les propriétés, telles que la lecture ou l'écriture, des pages mémoire. Ce mécanisme peut, par exemple, consister en la présence d'un ou de bits caractérisant la propriété d'accès en écriture de la mémoire, la propriété d'accès en lecture de la mémoire... Par exemple, un processeur du type PowerPC propose cette spécificité.
La (ou les) zone (s) adjacente (s) à la mémoire tampon sont des pages mémoires valides dont les propriétés en écriture ou en lecture sont incompatibles avec celle de l'utilisation faite de la mémoire tampon. C'est-à-dire, toujours en référence à la figure 1, pour une mémoire tampon de réception (lecture) (12), la propriété de lecture de la ou les pages adjacentes (11) a été désactivée. Ainsi l'accès en mode lecture de cette zone, va générer une exception accès invalide .
De même, pour une mémoire tampon d'envoi de message (écriture) (11), la propriété d'écriture de la ou les pages adjacentes (12) a été désactivée. Une exception accès invalide est ainsi générée lors de l'accès en mode écriture de cette zone.
L'exception produite, quel que soit le mode de réalisation précédent choisi, est remontée au système d'exploitation. Habituellement les systèmes utilisent plusieurs mémoires tampon. En effet, lorsqu'une desdites mémoire tampon est pleine, le système d'exploitation bascule sur une autre mémoire tampon de sorte que les données de ladite mémoire tampon pleine puissent être envoyées avant qu'elle ne soit réutilisée Dans une variante, il est possible de n'avoir qu'une seule mémoire tampon, mais cela induit en général des performances moindres dues au temps de traitement de ladite mémoire avant de pouvoir la réutiliser.
Dans une variante, l'exception est automatiquement gérée par le processus de l'application fautive, c'est-à- dire par celui qui a engendré ladite exception, le système d'exploitation ayant délégué ses pouvoirs à l'applicatif.
En référence à la figure 2, l'accès à la mémoire ne réalise pas d'exception: la lecture et/ou l'écriture dans la mémoire sont réalisées. A l'exception, le contenu de la mémoire est exploité : soit le contenu de la mémoire tampon est envoyé, dans le cas d'une mémoire tampon d'émission, soit la mémoire est vide et prête à recevoir de nouvelles données, pour une mémoire tampon de réception.
De plus, ledit système d'exploitation, par l'une des actions de gestion dont il dispose, exécute une routine de gestion des accès qui s'applique à la mémoire tampon exploitée. Pour cela, elle modifie l'index actif d'écriture ou de lecture dans la zone mémoire, de façon générale un pointeur, pour le transférer vers une autre mémoire tampon correspondant à la suite du message, une mémoire vide dans le cas d'un message à envoyer, une mémoire remplie dans celui d'un message reçu.
Dans ce dessein, le système d'exploitation maintient une base de données, indiquant l'état de chaque tampon.
L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet.

Claims (13)

REVENDICATIONS
1. Procédé de gestion d'une mémoire tampon utilisée par un programme informatique mettant en oeuvre une unité de gestion de mémoires MMU, caractérisé en ce qu'il comporte une étape de détection d'un accès dépassant de la mémoire tampon réalisée par l'exploitation du signal d'exception généré par la MMU lors du franchissement d'au moins une borne de ladite mémoire tampon, ce signal commandant au moins l'une des actions de gestion AG constituées par l'exécution d'une routine de gestion des moyens d'accès et par l'exploitation de la mémoire tampon.
2. Procédé de gestion d'une mémoire tampon selon la revendication 1, caractérisé en ce que ladite détection du signal d'exception est réalisée par le système d'exploitation.
3. Procédé de gestion d'une mémoire tampon selon la 20 revendication 1 ou 2, caractérisé en ce que la mémoire tampon est utilisée pour émettre un message.
4. Procédé de gestion d'une mémoire tampon selon la revendication 3, caractérisé en ce que l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page interdite en écriture.
5. Procédé de gestion d'une mémoire tampon selon la 30 revendication 1 ou 2, caractérisé en ce que la mémoire tampon est utilisée pour recevoir un message.
6. Procédé de gestion d'une mémoire tampon selon la revendication 5, caractérisé en ce que l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page interdite en lecture.
7. Procédé de gestion d'une mémoire tampon selon la revendication 1, 2, 3 ou 5, caractérisé en ce que l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page absente.
8. Procédé de gestion d'une mémoire tampon selon la revendication 1, 2, 3 ou 5, caractérisé en ce que l'étape de franchissement d'une borne de la mémoire tampon est réalisée par la détection du signal d'exception généré lors de l'accès à une page invalide.
9. Procédé de gestion d'une mémoire tampon selon l'une quelconque des revendications précédentes, caractérisé en ce que la mémoire tampon est utilisée selon un mode FIFO.
10. Procédé de gestion d'une mémoire tampon selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdites actions AG sont exécutées par le système d'exploitation.
11. Procédé de gestion d'une mémoire tampon selon l'une quelconque des revendications précédentes, caractérisé en ce que l'exécution desdites actions AG est déléguée par le système d'exploitation au programme informatique ayant généré le signal d'exception.
12. Procédé de gestion d'une mémoire tampon selon l'une quelconque des revendications précédentes, caractérisé en ce que la mémoire tampon est exploitée en mode circulaire.
13. Système pour la mise en oeuvre du procédé selon 5 l'une quelconque des revendications précédentes comprenant une unité de gestion de la mémoire (MMU).
FR0451770A 2004-08-03 2004-08-03 Utilisation de la mmu pour la detection de borne de memoire tampon Expired - Fee Related FR2874103B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0451770A FR2874103B1 (fr) 2004-08-03 2004-08-03 Utilisation de la mmu pour la detection de borne de memoire tampon
PCT/FR2005/002020 WO2006024781A1 (fr) 2004-08-03 2005-08-03 Utilisation de la mmu pour la detection de borne de memoire tampon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0451770A FR2874103B1 (fr) 2004-08-03 2004-08-03 Utilisation de la mmu pour la detection de borne de memoire tampon

Publications (2)

Publication Number Publication Date
FR2874103A1 true FR2874103A1 (fr) 2006-02-10
FR2874103B1 FR2874103B1 (fr) 2006-11-17

Family

ID=34947819

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0451770A Expired - Fee Related FR2874103B1 (fr) 2004-08-03 2004-08-03 Utilisation de la mmu pour la detection de borne de memoire tampon

Country Status (2)

Country Link
FR (1) FR2874103B1 (fr)
WO (1) WO2006024781A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253434A5 (en) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind Ordinator for computer virtual memory - compares segment size in auxiliary memory with available storage space in main memory
US5892979A (en) * 1994-07-20 1999-04-06 Fujitsu Limited Queue control apparatus including memory to save data received when capacity of queue is less than a predetermined threshold
US6014723A (en) * 1996-01-24 2000-01-11 Sun Microsystems, Inc. Processor with accelerated array access bounds checking
US6189054B1 (en) * 1997-09-18 2001-02-13 Infineon Technologies Ag System for operating a circulating memory which can be addressed via a write and/or read pointer by outputting a signal upon an occurrence of a jump of the pointer
US20020144077A1 (en) * 2001-03-30 2002-10-03 Andersson Peter Kock Mechanism to extend computer memory protection schemes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253434A5 (en) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind Ordinator for computer virtual memory - compares segment size in auxiliary memory with available storage space in main memory
US5892979A (en) * 1994-07-20 1999-04-06 Fujitsu Limited Queue control apparatus including memory to save data received when capacity of queue is less than a predetermined threshold
US6014723A (en) * 1996-01-24 2000-01-11 Sun Microsystems, Inc. Processor with accelerated array access bounds checking
US6189054B1 (en) * 1997-09-18 2001-02-13 Infineon Technologies Ag System for operating a circulating memory which can be addressed via a write and/or read pointer by outputting a signal upon an occurrence of a jump of the pointer
US20020144077A1 (en) * 2001-03-30 2002-10-03 Andersson Peter Kock Mechanism to extend computer memory protection schemes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Non-Active Address Protection for Computer Systems With Extended Memory Addressing", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 29, no. 4, 1 September 1986 (1986-09-01), New York, US, pages 1482, XP000023307 *

Also Published As

Publication number Publication date
FR2874103B1 (fr) 2006-11-17
WO2006024781A1 (fr) 2006-03-09

Similar Documents

Publication Publication Date Title
US8074014B2 (en) Storage systems using write off-loading
JP4279553B2 (ja) フラッシュメモリシステムの迅速スリープ解除方法
CN100504816C (zh) 使高速缓存线暂时无效和重新有效的方法和数据处理系统
US7543123B2 (en) Multistage virtual memory paging system
US7783606B2 (en) Method and system for remote data recovery
US8074027B2 (en) Multi-level read caching for multiplexed transactional logging
US8627025B2 (en) Protecting data during different connectivity states
JP6050503B2 (ja) 階層キャッシュを用いたメールのインデックス化および検索
EP2718825A2 (fr) Architecture de stockage pour une application de sauvegarde
EP2583176B1 (fr) Détection d'erreurs dans des fichiers
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees.
US8458232B1 (en) Systems and methods for identifying data files based on community data
FR3033061A1 (fr)
US20110167049A1 (en) File system management techniques for computing environments and systems
JP5241298B2 (ja) 履歴上のファイル名およびロケーションをインデックス付きにすることによりファイル・サーチおよびファイル操作を支援するためのシステムおよび方法
CN103986779A (zh) 一种应用数据传输方法、装置及终端设备
CN101122918A (zh) 用于传输数据的方法和系统
EP0395749A1 (fr) Procede et dispositif de protection et d'universalisation d'un logiciel
US8086580B2 (en) Handling access requests to a page while copying an updated page of data to storage
FR2874103A1 (fr) Utilisation de la mmu pour la detection de borne de memoire tampon
FR2609195A1 (fr) Procede de gestion d'antememoires associees a des processeurs dans une architecture multiprocesseur a bus unique et systeme de traitement de donnees fonctionnant suivant ce procede
EP2102768A1 (fr) Procédé et dispositif de gestion de données dans un environnement distribué
US8185564B1 (en) Redirection of embedded content
EP1679585A3 (fr) Système et procédés pour un disque de recouvrement et cache utilisant une mémoire flash portable
US8082334B1 (en) Providing direct access to managed content

Legal Events

Date Code Title Description
CD Change of name or company name
ST Notification of lapse

Effective date: 20100430