EP0202166B1 - Circuit de mémoire d'image virtuelle permettant le multifenêtrage - Google Patents

Circuit de mémoire d'image virtuelle permettant le multifenêtrage Download PDF

Info

Publication number
EP0202166B1
EP0202166B1 EP86401008A EP86401008A EP0202166B1 EP 0202166 B1 EP0202166 B1 EP 0202166B1 EP 86401008 A EP86401008 A EP 86401008A EP 86401008 A EP86401008 A EP 86401008A EP 0202166 B1 EP0202166 B1 EP 0202166B1
Authority
EP
European Patent Office
Prior art keywords
address
image memory
interface
memory
indirection table
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.)
Expired - Lifetime
Application number
EP86401008A
Other languages
German (de)
English (en)
Other versions
EP0202166A1 (fr
Inventor
Ciaran O'donnell
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.)
O'DONNELL, CIARAN
Original Assignee
O'Donnell Ciaran
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 O'Donnell Ciaran filed Critical O'Donnell Ciaran
Publication of EP0202166A1 publication Critical patent/EP0202166A1/fr
Application granted granted Critical
Publication of EP0202166B1 publication Critical patent/EP0202166B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Definitions

  • the present invention relates to a virtual image memory circuit allowing multi-windowing.
  • the circuit of the invention is associated with a screen with point addressing (in English terminology “raster screen” or “bitmap screen”) which uses a two-dimensional coordinate system.
  • the circuit of the invention comprises a two-dimensional image memory, the addressing of which is carried out according to a coordinate system similar to that used for the addressing of the screen.
  • This memory is larger than the screen size. It can thus memorize a set of images of which only a few are displayed, in whole or in part, at a given instant.
  • a window is defined as a surface of finite dimension and any shape of a two-dimensional display space.
  • the screen is considered as a rectangular window on this display space. Any number of windows can be defined on the display space, these may be separate, or overlap, partially or completely. These windows constitute areas onto which images contained in the image memory are projected.
  • the invention relates to a virtual image memory circuit.
  • virtual refers to the fact that an image of the image memory can be projected onto a window separate from the window represented by the screen, and thus not be viewed.
  • window designates in the rest of the text both a finite surface of the display space and the image projected on this surface.
  • a first multi-window method is described in the article "WINDX-Windows for the UNIX environment" by Peter Colins presented at USENIX conference, Salt Lake City, 1984.
  • the image memory is divided into 8x16 rectangular cells elementary image points.
  • a page is defined as a rectangular set of cells.
  • the content of a page is viewed through a screen window, which maps a rectangular region of the page to a rectangular region of the screen. Several windows can be created simultaneously on the screen.
  • Each window is defined by a set of pointers designating cells in a page of the image memory.
  • the addressing of the image memory by the video generator delivering the video signal to the screen is therefore carried out by means of an indirection table containing said pointers.
  • This indirection table allows you to quickly modify an image displayed on the screen. Indeed, the modification of the image displayed in a window of the screen is obtained without any physical movement of cells in the image memory, but simply by a modification of the content of the pointers of the indirection table associated with this window.
  • This indirection table also allows better management of the image memory because the white areas, generally large, that a displayed image contains, can be represented in the image memory by a single cell designated by each of the pointers which correspond to white cells on the screen.
  • the main drawback of this system is that the processor which manages the accesses, in writing or in reading, to the image memory does not pass through the indirection table but on the contrary directly addresses the image memory.
  • This structure also has the defect that the processor does not directly know the displayed image but must read the content of the table of pointers to explicitly know the address of the memory cells making up this displayed image. This necessary reading step considerably limits the speed of modification of the screen content.
  • a virtual memory circuit comprising an image memory and an indirection table in which said indirection table is used only by the processor.
  • Such a virtual memory circuit is used in particular in certain computers of the RIDGE COMPUTERS Company.
  • the use of an indirection table by the processor accessing read and write memory is therefore known.
  • This indirection table constitutes the memory management unit which performs an automatic translation of the addresses used in most advanced processors.
  • the image memory accessed by the processor through the indirection table is copied into a second memory which is addressed only by the video generator.
  • the blocks translated by the indirection mechanism are blocks of fixed size in one dimension (page), which corresponds to the use of a virtual memory managing a program memory.
  • Each element addressed by this indirection table corresponds to a certain number of entire lines on the screen.
  • To make a multi-window it is necessary to have a two-dimensional division, that is to say a division where the dimensions of a block in the dimensions X and Y are less than that of a line of characters on the screen.
  • the circuit described in this article has a drawback similar to that of the circuit described in the previous article, namely that the difference between the modes of access of the processor and the video generator to the image memory does not allow rapid and efficient management by the processor of the image displayed on the screen.
  • An image memory circuit is also known in which the addressing of the image memory is always done through an indirection table.
  • the processor and the video generator then access the image memory symmetrically.
  • the image memory contains only the image viewed and does not allow multi-windowing.
  • this image has a number of rows or columns which is not of the form 2 " , where n is an integer, direct addressing of the memory by the processor would result in a significant waste of this memory.
  • the indirection table used in this known circuit has the sole purpose of limiting the waste of memory by performing address transcoding.
  • This indirection table consists of a read only memory (ROM) and therefore does not allow the image displayed to be modified by updating this table.
  • the subject of the invention is a virtual image memory circuit which in particular overcomes the drawbacks of the circuits according to the prior art.
  • a first characteristic of the invention resides in the symmetrical addressing of the image memory by the processor and the video generator. This makes it possible to simplify the management of the image memory and in particular any modification by the processor of the image displayed on the screen thanks to the identity of the addressing of the memory by the video generator and the processor.
  • an indirection table made up of a random access memory constitutes the second characteristic of the circuit of the invention.
  • This indirection table contains a set of pointers each designating an area of the image memory. The possibility of modifying the contents of this indirection table allows on the one hand the processor to create multiple windows and on the other hand to modify the windows, visible or not visible on the screen, or to move the visible windows on the screen, without having to physically move the content of the image memory.
  • This indirection table also makes it possible to limit the waste of memory when the number of rows or columns of the affected image is not a power of 2.
  • the interface receives read or write orders from an external processor.
  • it constitutes a buffer for storing the signals delivered by the processor as long as access to the image memory or to the indirection table is not authorized, for example when access is requested by the video generator.
  • It can include a memory management unit addressable by the processor (image memory and central memory).
  • the n elementary blocks displayed on the screen correspond to the first n pointers of the indirection table.
  • the video generator addresses only these n pointers. Addressing is performed periodically to refresh the image.
  • n first pointers of the indirection table we mean the pointers contained in the n lowest addresses of the indirection table.
  • the means arranged on the one hand between the video generator and the interface and on the other hand the indirection table comprises a first row address register and a first column address register for receiving the addresses delivered by said video generator, a second row address register and a second column address register for receiving the addresses delivered by said interface and means for concatenating the upper parts of the addresses delivered by a row address register and a column address register and for concatenating the lower parts of the addresses delivered by a row address register and a register column addresses, the address resulting from the concatenation of the upper parts of the addresses being applied to the indirection table and the address resulting from the concatenation of the lower parts of the addresses being applied to the image memory.
  • FIGS 6a, 6b and 6c illustrate multi-windowing by means of the circuit of the invention.
  • FIG. 1 illustrates the correspondence between the elementary blocks of the image memory and the rectangular areas of the screen.
  • This screen 2 is composed of a set of n identical rectangular areas denoted Zi, Z 2 , ..., Zn
  • the size of an area corresponds to the size of an elementary block of the image memory.
  • the screen 2 is a subset of a two-dimensional space 3 comprising N identical rectangular areas or N * n.
  • the areas of this space that are not displayed, that is to say that do not correspond to the screen, are used to create virtual windows.
  • a point in space 3 is identified by a virtual address.
  • the image memory 4 is composed of a set of identical rectangular blocks 8.
  • This image memory is of the two-dimensional type, that is to say that the image stored in an elementary block is represented in the same way only when it is displayed in an area of the screen 2. This means that two elementary points located on the screen in two successive lines and on the same column, are stored in the memory 4 in two successive lines and in a same column of an elementary block 8.
  • This two-dimensional structure has the advantage, over a linear memory, of simplifying certain functions such as scrolling an image in a block or in a window.
  • each elementary block 8 of the memory 4 is carried out by a set of pointers forming an indirection table 6.
  • Each pointer comprises two address fields which designate the coordinates of the first word of the first line of a block elementary.
  • a set of n pointers determined from among the N pointers of the indirection table are associated with the zones Zi, Z 2 , ..., Z n of the screen 2. These pointers are for example the first n pointers of the table d 'indirection, that is to say the pointers corresponding to the first n addresses of this table.
  • the other pointers designate elementary blocks not visible on the screen. The creation, movement or deletion of a window on the screen is thus carried out simply by updating the content of the indirection table.
  • the screen 2 can be composed of 2304 lines, of 1728 image points each. It can be divided into 972 zones of 64x64 image points each, or 36 rows of 27 zones each.
  • the size of the memory is for example 1024 Kmots of 16 bits each, each image point being coded on one bit.
  • This memory is divided into 4096 elementary blocks each consisting of 64 lines of 4 words.
  • the indirection table has 4096 addresses, each containing a pointer designating an elementary block of the memory.
  • the first 1152 addresses for example, correspond to the elementary blocks displayed on the screen; the other pointers correspond to the virtual zone containing the windows not displayed.
  • FIG. 2 shows a schematic drawing of a virtual image memory circuit according to the invention.
  • This circuit mainly comprises the image memory 4, the indirection table 6, a video generator 10, an interface 12 and a means 26. It also includes a data bus 14 to which the image memory 4 is connected, the video generator 10, the interface 12 and, through a latch 16, the indirection table 6. It finally comprises several address buses 18, 20, 22 and 24 respectively connecting the interface 12 to the means 26, the generator video at means 26, means 26 at the indirection table 6, and the indirection table 6 at the image memory 4.
  • the addressing of the image memory 4 by the video generator 20 and the interface 12 is done via the indirection table 6.
  • the means 26 receives virtual addresses delivered by the video generator 10 and the interface 12, that is to say addresses expressed according to the two-dimensional display space.
  • the interface 12 delivers virtual addresses designating any image element of the display space.
  • the addresses delivered by the video generator can only designate the picture elements corresponding to the screen, that is to say to a determined window of the display space.
  • the addresses received by means 26 are de composed of a high address and a low address, the first designating an area number in the display area and the second designating a word in this area.
  • the upper address is transmitted, by bus 22, to the indirection table 6 which delivers to the image memory 4 the physical address of the block corresponding to this area.
  • the low address is transmitted directly to the image memory 4 by the bus 23; it constitutes an address index of the zone and the block.
  • the video generator 10 In refresh mode, the video generator 10 successively delivers the virtual addresses of the words whose coordinates are contained within the limits of the screen. Each virtual address corresponds, via the indirection table 6, to a physical address of the image memory 4. The word contained at this address is received by the video generator 10 by the data bus 14. The words thus received from the image memory are then transmitted in the form of a video signal S to a display means.
  • the interface 12 delivers a virtual address on the address bus 20.
  • This virtual address can designate any word of the display space, corresponding to the screen or to a window that is not displayed.
  • the interface 12 can also address the indirection table 6.
  • the selection of the image memory 4 or of the indirection table 6 is ensured by selection signals CSM or CST transmitted by the interface 12.
  • the interface 12 can read or write to the image memory, the data transmission being carried out by the data bus 14.
  • the virtual address delivered by the interface 12 is used to designate a pointer to the indirection table, the data transmission being carried out by the buses 14 and 24, the lock 16 being on.
  • the modification of the content of the indirection table 6 by the interface 12 makes it possible to modify the organization of the windows and in particular the image displayed on the screen very simply, without it being necessary to physically move data in the image memory.
  • the video generator 10 and the interface 12 accessing the image memory in the same way, a modification of the content of the indirection table is transparent to the video generator.
  • the main control signals emitted by the interface 12 have been indicated in FIG. 2. These are CSM and CST to select the image memory and the indirection table respectively, RD / WR to indicate whether the access is in read or write, RAFO and RAF1 which commands the replacement of the last word sent by the video generator respectively by the value "0" or the value "1".
  • the processor addresses the central memory and the image memory in a conventional manner via a memory management unit.
  • the main memory contains programs and data; it is one-dimensional.
  • the image memory contains picture elements; it is two-dimensional. Access to the two memories is therefore not identical.
  • the addressing by the memory management unit is direct.
  • the memory management unit is connected directly to the memory circuit and a conditioned permutation means is arranged between the processor and the memory management unit.
  • This permutation means is designed to be transparent for the received address signal or to exchange bits of this address signal as indicated above.
  • the state of the permutation means can be controlled simply by the state of an unused bit of the virtual address.
  • This permutation means can be implemented by two multiplexers controlled simultaneously, the first of which receives the bits of ranks N, N + 1, ..., N + L + 1 on a first input and the bits of ranks M, M + 1, ..., M + L + 1 on a second input, and the second of which receives the rank bits M, M + 1, ..., M + L + 1 on a first input and the bits N, N + 1 , ..., N + L + 1 on a second input.
  • the other address bits are not affected by the permutation means.
  • the interface 12 can comprise in series the conditioned permutation means and the memory management unit; the address bus 20 is then also directly connected to the central memory.
  • the memory management unit is connected at the input directly to the processor. Its address output is connected directly to the central memory and is connected to the image memory by a means operating a fixed permutation between the bits of ranks N, N + 1, ..., N + L + 1 and the bits of rank M, M + 1, ..., M + L + 1.
  • This permutation means can be only virtual, the permutation consisting only in modifying the connections of the address lines of the bus 20 on the input pins of the means 26.
  • the interface 12 only includes a memory management unit.
  • Bus 20 is connected to the central memory without permutation of address lines and to means 26, for addressing the image memory, with permutation of certain address lines.
  • FIG. 3 illustrates an embodiment of the means 26. This comprises two address registers 28 and 30 receiving the virtual row and column addresses delivered by the video generator 10, and two address registers 32 and 34 receiving the virtual row and column addresses delivered by the interface 12. The addresses received by each register have an upper part and a lower part.
  • the upper parts of the line addresses are delivered by the register 28 or by the register 32 on an address bus 40.
  • the upper parts of the column addresses are delivered by the register 30 or by the register 34 on a bus d address 42.
  • the addresses present on these buses 40, 42 are concatenated to constitute an address for accessing the indirection table 6.
  • the address bus 22 results from the juxtaposition of the address buses 40, 42.
  • the lower parts of the row addresses are delivered by registers 28 and 32 on an address bus 44
  • the lower parts of the column addresses are delivered by registers 30 and 34 on an address bus 46.
  • These lower parts of row and column addresses constitute an index for designating a word from the memory block selected by the upper parts of the addresses of lines and columns.
  • the bus 23 delivering this index to the image memory 4 results from the juxtaposition of the address buses 44, 46.
  • FIGS. 4a to 4c and 5a to 5c respectively show the formats of the addresses delivered by the interface and by the video generator.
  • FIGS. 4a, 4b and 4c respectively illustrate the format of the address delivered by the video generator, and the addresses received by the indirection table and the image memory.
  • the address delivered by the video generator has 4 fields: a PY field indicating a number of block rows, an INDY field indicating a line number in a block, a PX field indicating a number of blocks in a row of blocks, and an INDX field indicating a word number in a line of a block.
  • the PY and INDY fields are received in register 28 and the PX and INDX fields by register 30.
  • the INDY and INDX fields comprise 7 bits (for 128 lines) and 2 bits (for 4 words per line) respectively.
  • the PY and PX fields have 8 and 4 bits respectively. Of these, only the 5 least significant bits of PY are used, in order to address one of the 18 rows on the screen. The 4 least significant bits of PX are used to address one of the 14 tiles in a row of tiles on the screen.
  • the PX and PY fields are concatenated to form a selection address in the indirection table.
  • the content of this address is concatenated with the fields INDY and INDX to constitute the physical address @M of a word in the image memory (FIG. 4c).
  • the address delivered by the interface is broken down into 4 fields like the address delivered by the video generator. These 4 fields represented in FIG. 5a are identical to those in FIG. 4, the only difference being that the three most significant bits of PY are not necessarily zero. If they are zero, the address delivered by the interface is an address corresponding to a word displayed on the screen. More precisely, when the three most significant bits of PY are zero, the interface accesses one of the first n addresses of the indirection table, which corresponds to one of the blocks projected on the screen. If one of these three bits is non-zero, the address delivered by the interface corresponds to any word in the memory.
  • This word can be displayed on the screen because the indirection table is not used bijectively, a pointer from one of the first n addresses and a pointer from another address can designate the same block.
  • a pointer from one of the first n addresses and a pointer from another address can designate the same block.
  • the interface that is to say for the processor, all the windows are virtual; during accesses, it ignores whether all or part of the window it addresses is visible or not.
  • access to the first n addresses of the indirection table is only carried out to update the pointers after a modification of the organization of a window (scrolling, for example) or after the reorganization of the presentation of the windows on the screen.
  • the PY and INDY fields are received in the address register 32 and the PX and INDX fields in the register 34.
  • the PX and PY fields are grouped together (FIG. 5b) to form an access address to the indirection table.
  • the content of this address is concatenated with the fields INDY and INDX to constitute the physical address @M of a word in the image memory (FIG. 5c).
  • FIG. 6a shows the image memory 4 of the circuit of the invention. This memory includes three windows 48, 50 and 52.
  • Window 48 represents the image displayed on the screen. This window is made up of n identical rectangular blocks of the image memory, each block being identified by a pointer from the indirection table. The blocks displayed on the screen are, for example, those designated by the first n pointers of the indirection table.
  • the windows 50 and 52 are also each composed of a set of identical rectangular blocks of the image memory, each block being identified by a pointer from the indirection table.
  • a window can be represented with a different shape in the image memory and on the screen.
  • Each window is made up of independent rectangular tiles, each associated with a pointer.
  • Each block of a window can thus be projected on the screen independently of the other blocks of the window.
  • a window made up of contiguous blocks of the image memory can thus appear in the form of disjoint zones on the screen and conversely a set of disjoint blocks of the image memory can be displayed on the screen in the form of a rectangle.

Description

  • La présente invention a pour objet un circuit de mémoire d'image virtuelle permettant le multifenêtrage. Le circuit de l'invention est associé à un écran à adressage par point (en terminologie anglosaxonne "raster screen" ou "bitmap screen") qui utilise un système de coordonnées à deux dimensions.
  • Le circuit de l'invention comprend une mémoire d'image bidimensionnelle dont l'adressage est réalisé suivant un système de coordonnées semblable à celui utilisé pour l'adressage de l'écran. Cette mémoire a une taille supérieure à la taille de l'écran. Elle peut ainsi mémoriser un ensemble d'images dont quelques unes seulement sont visualisées, en totalité ou en partie, à un instant donné.
  • La visualisation, ou affichage, d'une image se fait à travers une fenêtre. On définit une fenêtre comme étant une surface de dimension finie et de forme quelconque d'un espace d'affichage bidimensionnel. L'écran est considéré comme une fenêtre rectangulaire sur cette espace d'affichage. On peut définir sur l'espace d'affichage un nombre quelconque de fenêtres, celles-ci pouvant être disjointes, ou se recouvrir, partiellement ou totalement. Ces fenêtres constituent des zones sur lesquelles sont projetées des images contenues dans la mémoire d'image.
  • L'invention concerne un circuit de mémoire d'image virtuelle. Le qualificatif de "virtuelle" fait référence au fait qu'une image de la mémoire d'image peut être projetée sur une fenêtre disjointe de la fenêtre représentée par l'écran, et ainsi ne pas être visualisée.
  • Par abus de langage, le terme de fenêtre désigne dans la suite du texte aussi bien une surface finie de l'espace d'affichage que l'image projetée sur cette surface.
  • Une première méthode de multifenêtrage est décrite dans l'article "WINDX-Windows for the UNIX environment" de Peter Colins présenté à USENIX conference, Salt Lake City, 1984. Dans ce système, la mémoire d'image est divisée en cellules rectangulaires de 8x16 points élémentaires d'image. Une page est définie comme un ensemble rectangulaire de cellules. Le contenu d'une page est visualisé à travers une fenêtre d'écran, qui fait correspondre une région rectangulaire de la page à une région rectangulaire de l'écran. Plusieurs fenêtres peuvent être créées simultanément sur l'écran.
  • Chaque fenêtre est définie par un ensemble de pointeurs désignant des cellules dans une page de la mémoire d'image. L'adressage de la mémoire d'image par le générateur vidéo délivrant le signal vidéo à l'écran est donc réalisé par l'intermédiaire d'une table d'indirection contenant lesdits pointeurs. Cette table d'indirection permet de modifier rapidement une image affichée sur l'écran. En effet, la modification de l'image affichée dans une fenêtre de l'écran est obtenue sans aucun déplacement physique de cellules dans la mémoire d'image, mais simplement par une modification du contenu des pointeurs de la table d'indirection associée à cette fenêtre.
  • Cette table d indirection permet en outre une meilleure gestion de la mémoire d'image car les zones blanches, en général importantes, que contient une image visualisée, peuvent être représentéés dans la mémoire d'image par une seule cellule désignée par chacun des pointeurs qui correspondent à des cellules blanches de l'écran.
  • L'inconvénient principal de ce système est que le processeur qui gère les accès, en écriture ou en lecture, à la mémoire d'image ne passe pas par la table d'indirection mais adresse au contraire directement la mémoire d'image.
  • Cette dissymétrie n'est pas satisfaisante car elle complique le traitement de certaines fonctions. Considérons par exemple la fonction de défilement (en terminologie anglo-saxonne "scroll"). Pour réaliser ce défilement sur une image visualisée, c'est-à-dire projetée sur une fenêtre de l'écran, il suffit de mettre à jour le contenu des pointeurs désignant les cellules composant cette image visualisée. Cette opération est rapide et ne nécessite aucun déplacement physique du contenu des cellules de la mémoire. Au contraire, pour réaliser un défilement de la mémoire vue du processeur, il faut déplacer physiquement le contenu des cellules de la mémoire. Ce traitement présente l'inconvénient d'être long et compliqué.
  • Cette structure présente également le défaut que le processeur ne connaît pas directement l'image visualisée mais doit lire le contenu de la table des pointeurs pour connaître explicitement l'adresse des cellules de la mémoire composant cette image visualisée. Cette étape nécessaire de lecture limite considérablement la rapidité de modification du contenu de l'écran.
  • On connaît également un circuit de mémoire virtuelle comportant une mémoire d'image et une table d'indirection dans lequel ladite table d'indirection est utilisée uniquement par le processeur. Un tel circuit de mémoire virtuelle est utilisé dans notamment certains ordinateurs de la Société RIDGE COMPUTERS. L'utilisation d'une table d'indirection par le processeur accédant en lecture et en écriture à la mémoire est donc connue. Cette table d'indirection constitue l'unité de gestion de la mémoire qui réalise une traduction automatique des adresses utilisée dans la plupart des processeurs avancés.
  • Dans ce circuit, la mémoire d'image accédée par le processeur à travers la table d'indirection est recopiée dans une seconde mémoire qui est adressée uniquement par le générateur vidéo.
  • Le multifenêtrage n'est pas prévu dans ce circuit. Il serait d'ailleurs délicat à implanter. En effet, les blocs traduits par le mécanisme d'indirection sont des blocs de taille fixe dans une dimension (page), ce qui correspond à l'utilisation d'une mémoire virtuelle gérant une mémoire de programmes. Chaque élément adressé par cette table d'indirection correspond un certain nombre de lignes entières sur l'écran. Pour réaliser un multifenêtrage,il est nécessaire d'avoir un découpage bidimensionnel, c'est-à-dire un découpage où les dimensions d'un pavé dans les dimensions X et Y sont inférieures à celle d'une ligne de caractères sur l'écran.
  • Le circuit décrit dans cet article présente un inconvénient analogue à celui du circuit décrit dans l'article précédent, à savoir que la différence entre les modes d'accès du processeur et du générateur vidéo à la mémoire d'image ne permet pas une gestion rapide et efficace par le processeur de l'image affichée sur l'écran.
  • On connaît également un circuit de mémoire d'image dans lequel l'adressage de la mémoire d'image se fait toujours à travers une table d'indirection. Le processeur et le générateur vidéo accèdent alors à la mémoire d'image de manière symétrique.
  • Dans ce circuit, la mémoire d'image contient uniquement l'image visualisée et ne permet pas le multifenêtrage. Dans le cas où cette image a un nombre de lignes ou de colonnes qui n'est pas de la forme 2", où n est un entier, un adressage direct de la mémoire par le processeur se traduirait par un gaspillage important de cette mémoire.
  • Considérons par exemple un écran pouvant afficher 80 lignes de 25 caractères, chaque caractère ayant une taille de 9x14 points. La résolution de cet écran est de 720 lignes (80x9) et de 350 colonnes (25x14). Pour adresser un point d'image de cet écran, il faut donc 10 lignes d'adresses pour sélectionner une des 720 lignes de l'image (210 = 1024> 720) et 9 lignes d'adresses pour sélectionner une des 350 colonnes de l'image (29 = 512 > 350).
  • L'affichage d'une image de 80x9x25x14, ou 252000, points nécessite ainsi une mémoire d'image de 1024x512, ou 524888 points. Dans ce cas particulier, un adressage direct de la mémoire d'image se traduit par un gaspillage très important de la mémoire puisque plus de la moitié de celle-ci est inutilisée.
  • La table d'indirection utilisée dans ce circuit connu a pour seul but de limiter le gaspillage de la mémoire en réalisant un transcodage d'adresse. Cette table d'indirection est constituée d'une mémoire morte (ROM) et ne permet donc pas de modifier l'image visualisée par une mise à jour de cette table.
  • L'invention a pour objet un circuit de mémoire d'image virtuelle palliant notamment les inconvénients des circuits selon l'art antérieur. Une première caractéristique de l'invention réside dans l'adressage symétrique de la mémoire d'image par le processeur et le générateur vidéo. Ceci permet de simplifier la gestion de la mémoire d'image et notamment toute modification par le processeur de l'image affichée sur l'écran grâce à l'identité de l'adressage de la mémoire par le générateur vidéo et le processeur.
  • L'utilisation d'une table d'indirection constituée d'une mémoire vive constitue la deuxième caractéristique du circuit de l'invention. Cette table d'indirection contient un ensemble de pointeurs désignant chacun une zone de la mémoire d'image. La possibilité de modifier le contenu de cette table d'indirection permet d'une part au processeur de créer de multiples fenêtres et d'autre part de modifier les fenêtres, visibles ou non visibles sur l'écran, ou de déplacer les fenêtres visibles sur l'écran, sans avoir recours à un déplacement physique du contenu de la mémoire d'image. Cette table d'indirection permet également de limiter le gaspillage de la mémoire lorsque le nombre de lignes ou de colonnes de l'image affectée n'est pas une puissance de 2.
  • De manière précise, l'invention a pour objet un circuit de mémoire d'image virtuelle relié d'une part à un processeur, d'autre part à un générateur vidéo, ledit circuit comprenant:
    • - une mémoire d'image (4) bidimensionnelle organisée en N pavés élémentaires où N est un nombre entier, lesdits pavés étant rectangulaires et identiques,
    • - une table d'indirection (6) constituée d'une mémoire vive contenant une suite de N pointeurs, chaque pointeur notant l'adresse de début d'un pavé de la mémoire d'image, ledit générateur vidéo (10) étant susceptible de délivrer un signal vidéo correspondant au contenu de n pavés de la mémoire d'image composée des n pavés organisés en matrice, où n N, caractérisé en ce que le générateur vidéo et le processeur sont susceptibles d'adresser de façon symétrique la mémoire d'image par l'intermédiaire de la tablé d'indirection et en ce que ledit circuit comporte pour cela:
    • - une interface (12) pour accéder en lecture ou en écriture à la mémoire d'image et à la table d'indirection, l'adressage de la mémoire étant effectué à travers la table d'indirection,
    • - un moyen (26) disposé entre d'une part le générateur vidéo (10) et l'interface (12) et, d'autre part, la table d'indirection (6), ledit moyen recevant les adresses délivrées par ledit générateur vidéo et ladite interface et décomposant chaque adresse en une partie haute représentant l'adresse de début d'un pavé de la mémoire d'image et en une partie basse représentant un index pour désigner un mot de ce pavé, la partie haute d'une adresse étant reçue par la table d'indirection et la partie basse par la mémoire d'image,
    • - le circuit comprenant en outre des bus de données, d'adresses et de commandes et un moyen de séquencement.
  • L'interface reçoit des ordres de lecture ou d'écriture d'un processeur extérieur. Elle constitue notamment un tampon pour stocker les signaux délivrés par le processeur tant que l'accès à la mémoire d'image ou à la table d'indirection n'est pas autorisé, par exemple lorsque l'accès est demandé par le générateur vidéo. Elle peut comprendre une unité de gestion de la mémoire adressable par le processeur (mémoire d'image et mémoire centrale).
  • Selon un mode de réalisation particulier du circuit de l'invention, les n pavés élémentaires visualisés sur l'écran correspondent aux n premiers pointeurs de la table d'indirection. Le générateur vidéo n'adresse que ces n pointeurs. L'adressage est réalisé périodiquement pour le rafraîchissement de l'image.
  • Par n premiers pointeurs de la table d'indirection, on entend les pointeurs contenus dans les n adresses les plus basses de la table d'indirection.
  • Selon un mode de réalisation préféré, le moyen disposé d'une part entre le générateur vidéo et l'interface et d'autre part la table d'indirection comprend un premier registre d'adresses ligne et un premier registre d'adresses colonne pour recevoir les adresses délivrées par ledit générateur vidéo, un second registre d'adresses ligne et un second registre d'adresses colonne pour recevoir les adresses délivrées par ladite interface et des moyens pour concaténer les parties hautes des adresses délivrées par un registre d'adresses ligne et un registre d'adresses colonne et pour concaténer les parties basses des adresses délivrées par un registre d'adresses ligne et un registre d'adresses colonne, l'adresse résultant de la concaténation des parties hautes des adresses étant appliquée à la table d'indirection et l'adresse résultant de la concaténation des parties basses des adresses étant appliquée à la mémoire d'image.
  • Les caractéristiques et avantages de l'invention ressortiront mieux de la description qui va suivre, donnée à titre illustratif mais non limitatif, en référence aux dessins annexés, sur lesquels :
    • - la figure 1 illustre la correspondance entre un pavé de la mémoire d'image et une zone de l'écran de visualisation par l'intermédiaire des pointeurs de la table d'indirection,
    • - la figure 2 représente schématiquement un mode de réalisation du circuit de l'invention,
    • - la figure 3 représente un mode de réalisation du moyen 26 du circuit de la figure 2,
    • - les figures 4a, 4b et 4c illustrent respectivement les formats d'une adresse virtuelle délivrée par le générateur vidéo, de l'adresse correspondante délivrée par le moyen 26 et de l'adresse reçue par la mémoire d'image,
    • - les figures 5a, 5b et 5c illustrent respectivement les formats d'une adresse virtuelle délivrée par l'interface, de l'adresse correspondante délivrée par le moyen 26 et de l'adresse reçue par la mémoire d'image, et
  • les figures 6a, 6b et 6c illustrent le multifenêtrage au moyen du circuit de l'invention.
  • La figure 1 illustre la correspondance entre les pavés élémentaires de la mémoire d'image et les zones rectangulaires de l'éçran. Cet écran 2 est com posé d'un ensemble de n zones rectangulaires identiques notées Zi, Z2, ..., Zn La taille d'une zone correspond à la taille d'un pavé élémentaire de la mémoire d'image.
  • L'écran 2 est un sous-ensemble d'un espace bidimensionnel 3 comportant N zones rectangulaires identiques ou N * n. Les zones de cet espace qui ne sont pas affichées, c'est-à-dire qui ne correspondent pas à l'écran sont utilisées pour créer des fenêtres virtuelles. Un point de l'espace 3 est repéré par une adresse virtuelle.
  • La mémoire d'image 4 est composée d'un ensemble de pavés rectangulaires identiques 8. Cette mémoire d'image est de type bidimensionnel, c'est-à-dire que l'image mémorisée dans un pavé élémentaire est représentée de la même manière que lorsqu'elle est visualisée dans une zone de l'écran 2. Ceci signifie que deux points élémentaires se trouvant sur l'écran dans deux lignes successives et sur une même colonne, sont mémorisés dans la mémoire 4 dans deux lignes successives et dans une même colonne d'un pavé élémenlaire 8.
  • Cette structure bidimensionnelle présente l'avantage, sur une mémoire linéaire, de simplifier certaines fonctions telles que le défilement d'une image dans un pavé ou dans une fenêtre.
  • L'adressage de chaque pavé élémentaire 8 de la mémoire 4 est réalisé par un ensemble de pointeurs formant une table d'indirection 6. Chaque pointeur comporte deux champs d'adresses qui désignent les coordonnées du premier mot de la première ligne d'un pavé élémentaire.
  • Un ensemble de n pointeurs déterminés parmi les N pointeurs de la table d'indirection sont associés aux zones Zi, Z2, ..., Zn de l'écran 2. Ces pointeurs sont par exemple les n premiers pointeurs de la table d'indirection, c'est-à-dire les pointeurs correspondant aux n premières adresses de cette table. Les autres pointeurs désignent des pavés élémentaires non visibles sur l'écran. La création, le déplacement ou l'effacement d'une fenêtre sur l'écran s'effectuent ainsi simplement par une mise à jour du contenu de la table d'indirection.
  • A titre d'exemple de réalisation, l'écran 2 peut être composé de 2304 lignes, de 1728 points d'image chacun. Il peut être découpé en 972 zones de 64x64 points d'image chacune, soit 36 rangées de 27 zones chacune. La taille de la mémoire est par exemple de 1024 Kmots de 16 bits chacun, chaque point d'image étant codé sur un bit. Cette mémoire est découpée en 4096 pavés élémentaires constitués chacun de 64 lignes de 4 mots. Dans ce mode de réalisation, la table d'indirection comporte 4096 adresses, chacune contenant un pointeur désignant un pavé élémentaire de la mémoire. Les 1152 premières adresses, par exemple, correspondent aux pavés élémentaires visualisés sur l'écran ; les autres pointeurs correspondent à la zone virtuelle contenant les fenêtres non visualisées.
  • On a représenté sur la figure 2 un dessin schématique d'un circuit de mémoire d'image virtuelle conforme à l'invention. Ce circuit comprend principalement la mémoire d'image 4, la table d'indirection 6, un générateur vidéo 10, une interface 12 et un moyen 26. Il comprend également un bus de données 14 auquel sont reliés la mémoire d'image 4, le générateur vidéo 10, l'interface 12 et, à travers un verrou 16, la table d'indirection 6. Il comprend enfin plusieurs bus d'adresses 18, 20, 22 et 24 reliant respectivement l'interface 12 au moyen 26, le générateur vidéo au moyen 26, le moyen 26 à la table d'indirection 6, et la table d'indirection 6 à la mémoire d'image 4.
  • Conformément à l'invention, l'adressage de la mémoire d'image 4 par le générateur vidéo 20 et l'interface 12 se fait par l'intermédiaire de la table d'indirection 6.
  • Le moyen 26 reçoit des adresses virtuelles délivrées par le générateur vidéo 10 et l'interface 12, c'est-à-dire des adresses exprimées selon l'espace bidimensionnel d'affichage. L'interface 12 délivre des adresses virtuelles désignant n'importe quel élément d'image de l'espace d'affichage. Au contraire, les adresses délivrées par le générateur vidéo ne peuvent désigner que les éléments d'image correspondant à l'écran, c'est-à-dire à une fenêtre déterminée de l'espace d'affichage.
  • Les adresses reçues par le moyen 26 sont décomposées en une adresse haute et une adresse basse, la première désignant un numéro de zone de l'espace d'affichage et la seconde désignant un mot dans cette zone. L'adresse haute est transmise, par le bus 22, à la table d'indirection 6 qui délivre à la mémoire d'image 4 l'adresse physique du pavé correspondant à cette zone. L'adresse basse est transmise directement à la mémoire d'image 4 par le bus 23 ; elle constitue un index d'adresse de la zone et du pavé.
  • On décrira un mode de réalisation du moyen 26 en référence à la figure 3. On va d'abord indiquer le fonctionnement du circuit de la figure 2 en mode rafraîchissement dans lequel l'accès à la mémoire d'image est réalisé par le générateur vidéo 10, et en mode traitement, dans lequel l'accès à la mémoire d'image est réalisé, en lecture et en écriture, par l'interface 12.
  • En mode rafraîchissement, le générateur vidéo 10 délivre successivement les adresses virtuelles des mots dont les coordonnées sont contenues dans les limites de l'écran. A chaque adresse virtuelle correspond, par la table d'indirection 6, une adresse physique de la mémoire d'image 4. Le mot contenu à cette adresse est reçu par le générateur vidéo 10 par le bus de données 14. Les mots ainsi reçus de la mémoire d'image sont ensuite émis sous forme d'un signal vidéo S vers un moyen de visualisation.
  • En mode traitement, l'interface 12 délivre une adresse virtuelle sur le bus d'adresse 20. Cette adresse virtuelle peut désigner un mot quelconque de l'espace d'affichage, correspondant à l'écran ou à une fenêtre non visualisée.
  • L'interface 12 peut également adresser la table d'indirection 6. La sélection de la mémoire d'image 4 ou de la table d'indirection 6 est assurée par des signaux de sélection CSM ou CST émis par l'interface 12.
  • Lorsque la mémoire d'image 4 est sélectionné" (signal CSM validé), l'interface 12 peut lire ou écrire dans la mémoire d'image, la transmission des données étant réalisée par le bus de données 14. Lorsque la table d'indirection 6 est sélectionnée (signal CST validé), l'adresse virtuelle délivrée par l'interface 12 sert à désigner un pointeur de la table d'indirection, la transmission des données étant réalisée par les bus 14 et 24, le verrou 16 étant passant.
  • La modification du contenu de la table d'indirection 6 par l'interface 12 permet de modifier l'organisation des fenêtres et notamment l'image visualisée sur l'écran très simplement, sans qu'il soit nécessaire de déplacer physiquement des données dans la mémoire d'image. De plus, le générateur vidéo 10 et l'interface 12 accédant la mémoire d'image de la même manière, une modification du contenu de la table d'indirection est transparente pour le générateur vidéo.
  • On a indiqué sur la figure 2 les principaux signaux de commande émis par l'interface 12. Ce sont CSM et CST pour sélectionner respectivement la mémoire d'image et la table d'indirection, RD/WR pour indiquer si l'accès est en lecture ou en écriture, RAFO et RAF1 qui commande le remplacement du dernier mot adressé par le générateur vidéo respectivement par la valeur "0" ou la valeur "1".
  • Le processeur adresse la mémoire centrale et la mémoire d'image de manière classique par l'intermédiaire d'une unité de gestion de mémoire. La mémoire centrale contient des programmes et des données ; elle est unidimensionnelle. La mémoire d'image contient des éléments d'image ; elle est bidimensionnelle. L'accès aux deux mémoires n'est donc pas identique.
  • Dans le cas de la mémoire centrale, l'adressage par l'unité de gestion de mémoire est direct. Dans le cas de l'adressage de la mémoire d'image, il faut rendre l'adresse bidimensionnelle. Pour cela, il convient d'échanger les bits de rangs N,N+1,...,N+L+1 de l'adresse avec les bits de rangs M,M+1,...,M+L+1, où N, M et L sont tels que 2N est l'entier le plus proche, par valeur supérieure, de la longueur en mots d'une ligne sur l'écran, 2M est la hauteur en lignes d'un pavé et 2L est la longueur en mots d'un pavé. Par exemple, pour des pavés de 64x64 et des lignes comprenant 54 mots de 32 bits, on a N=5, M=6 et L=1.
  • Deux structures sont alors possibles selon que la mémoire centrale et la mémoire d'image sont deux zones d'un même circuit de mémoire ou selon qu'elles sont constituées de circuits indépendants.
  • Dans le premier cas, l'unité de gestion de mémoire est reliée directement au circuit de mémoire et un moyen de permutation conditionné est disposé entre le processeur et l'unité de gestion de mémoire. Ce moyen de permutation est conçu pour être transparent pour le signal d'adresse reçu ou pour échanger des bits de ce signal d'adresse comme on l'a indiqué plus haut.L'état du moyen de permutation peut être commandé simplement par l'état d'un bit inutilisé de l'adresse virtuelle. Ce moyen de permutation peut être réalisé par deux multiplexeurs commandés simultanément dont le premier reçoit les bits de rangs N,N+1 ,...,N+L+1 sur une première entrée et les bits de rangs M,M+1,...,M+L+1 sur une seconde entrée, et dont le deuxième reçoit les bits de rang M,M+1,...,M+L+1 sur une première entrée et les bits N,N+1,...,N+L+1 sur une seconde entrée. Les autres bits d'adresse ne sont pas affectés par le moyen de permutation.
  • Dans ce mode de réalisation, l'interface 12 peut comprendre en série le moyen de permutation conditionné et l'unité de gestion de mémoire ; le bus d'adresse 20 est alors également relié directement à la mémoire centrale.
  • Dans le second cas, l'unité de gestion de mémoire est reliée en entrée directement au processeur. Sa sortie d'adresse est reliée directement à la mémoire centrale et est reliée à la mémoire d'image par un moyen opérant une permutation fixe entre les bits de rangs N,N+1,...,N+L+1 et les bits de rang M,M+1,...,M+L+1. Ce moyen de permutation peut n'être que virtuel, la permutation consistant seulement à modifier les connexions des lignes d'adresse du bus 20 sur les broches d'entrée du moyen 26.
  • Dans ce second mode de réalisation, l'interface 12 comprend uniquement une unité de gestion de mémoire. Le bus 20 est relié à la mémoire centrale sans permutation de lignes d'adresse et au moyen 26, pour l'adressage de la mémoire d'image, avec permutation de certaines lignes d'adresse.
  • La figure 3 illustre un mode de réalisation du moyen 26. Celui-ci comprend deux registres d'adresses 28 et 30 recevant les adresses virtuelles de ligne et de colonne délivrées par le générateur vidéo 10, et deux registres d'adresses 32 et 34 recevant les adresses virtuelles de ligne et de colonne délivrées par l'interface 12. Les adresses reçues par chaque registre comporte une partie haute et une partie basse.
  • Les parties hautes des adresses de ligne sont délivrées par le registre 28 ou par le registre 32 sur un bus d'adresse 40. De même les parties hautes des adresses de colonnes sont délivrées par le registre 30 ou par le registre 34 sur un bus d'adresse 42. Les adresses présentes sur ces bus 40, 42 sont concaténées pour constituer une adresse d'accès à la table d'indirection 6. Le bus d'adresse 22 résulte de la juxtaposition des bus d'adresse 40, 42.
  • De la même manière, les parties basses des adresses de ligne sont délivrées par les registres 28 et 32 sur un bus d'adresses 44, et les parties basses des adresses de colonne sont délivrées par les registres 30 et 34 sur un bus d'adresse 46. Ces parties basses d'adresses de ligne et de colonne constituent un index pour désigner un mot du pavé de la mémoire sélectionné par les parties hautes des adresses de lignes et de colonnes. Le bus 23 délivrant cet index à la mémoire d'image 4 résulte de la juxtaposition des bus d'adresse 44, 46.
  • On a représenté respectivement sur les figures 4a à 4c et 5a à 5c les formats des adresses délivrées par l'interface et par le générateur vidéo.
  • A titre d'exemple, on a considéré une mémoire d'image de 4 Mo organisée en mots de 32 bits. Cette mémoire est découpée en pavés de 128x128 bits ; un pavé est donc représenté par 128 lignes de 4 mots. L'écran a une résolution de 2304 lignes de 1728 points d'images. L'image affichée sur l'écran est donc composée de 2304/128 = 18 rangées de 1728/128 = 13,5, soit 14 pavés.
  • Les figures 4a, 4b et 4c illustrent respectivement le format de l'adresse délivrée par le générateur vidéo, et les adresses reçues par la table d'indirection et la mémoire d'image.
  • L'adresse délivrée par le générateur vidéo comporte 4 champs : un champ PY indiquant un numéro de rangée de pavé, un champ INDY indiquant un numéro de ligne dans un pavé, un champ PX indiquant un numéro de pavé dans une rangée de pavés, et un champ INDX indiquant un numéro de mot dans une ligne d'un pavé.
  • Les champs PY et INDY sont reçus dans le registre 28 et les champs PX et INDX par le registre 30. Les champs INDY et INDX comportent respectivement 7 bits (pour 128 lignes) et 2 bits (pour 4 mots par ligne). Les champs PY et PX comportent respectivement 8 et 4 bits. Parmi ceux-ci, seuls les 5 bits de poids faible de PY sont utilisés, afin d'adresser l'une des 18 rangées de l'écran. Les 4 bits de poids faible de PX sont utilisés, afin d'adresser l'un des 14 pavés d'une rangée de pavés de l'écran.
  • Les champs PX et PY sont concaténés pour former une adresse de sélection dans la table d'indirection. Le contenu de cette adresse est concaténé avec les champs INDY et INDX pour constituer l'adresse physique @M d'un mot de la mémoire d'image (figure 4c).
  • L'adresse délivrée par l'interface se décompose en 4 champs comme l'adresse délivrée par le générateur vidéo. Ces 4 champs représentés sur la figure 5a sont identiques à ceux de la figure 4, la 35 seule différence étant que les trois bits de poids fort de PY ne sont pas nécessairement nuls. Dans le cas où ils sont nuls, l'adresse délivrée par l'interface est une adresse correspondant à un mot affiché sur l'écran. Plus précisément, lorsque les trois bits de poids forts de PY sont nuls, l'interface accède à l'une des n premières adresses de la table d'indirection, ce qui correspond à l'un des pavés projetés sur l'écran. Si l'un de ces trois bits est non nul, l'adresse délivrée par l'interface correspond à un mot quelconque de la mémoire. Ce mot peut être affiché sur l'écran car la table d'indirection n'étant pas utilisée de manière bijective, un pointeur de l'une des n premières adresses et un pointeur d'une autre adresse peuvent désigner un même pavé. Pour l'interface, c'est-à-dire pour le processeur, toutes les fenêtres sont virtuelles ; lors des accès, elle ignore si tout ou partie de la fenêtre qu'elle adresse est visible ou non. En général, l'accès aux n premières adresses de la table d'indirection n'est réalisé que pour mettre à jour les pointeurs après une modification de l'organisation d'une fenêtre (défilement, par exemple) ou après la réorganisation de la présentation des fenêtres sur l'écran.
  • Les champs PY et INDY sont reçus dans le registre d'adresses 32 et les champs PX et INDX dans le registre 34. Les champs PX et PY sont regroupés (figure 5b) pour former une adresse d'accès à la table d'indirection. Le contenu de cette adresse est concaténé avec les champs INDY et INDX pour constituer l'adresse physique @M d'un mot de la mémoire d'image (figure 5c).
  • Le circuit de l'invention permet de créer, modifier ou effacer très facilement des fenêtres sur l'écran. On a représenté sur la figure 6a la mémoire d'image 4 du circuit de l'invention. Cette mémoire comprend trois fenêtres 48, 50 et 52.
  • La fenêtre 48 représente l'image affichée sur l'écran. Cette fenêtre est composée de n pavés rectangulaires identiques de la mémoire d'image, chaque pavé étant repéré par un pointeur de la table d'indirection. Les pavés affichés sur l'écran sont, par exemple, ceux désignés par les n premiers pointeurs de la table d'indirection.
  • Les fenêtres 50 et 52 sont également composés chacune d'un ensemble de pavés rectangulaires identiques de la mémoire d'image, chaque pavé étant repéré par un pointeur de la table d'indirection.
  • Si ces pointeurs ne sont pas parmi les n premiers pointeurs de la table d'indirection, les fenêtres 50 et 52 ne sont pas affichées sur l'écran. Seule apparaît la fenêtre 48. C'est le cas représenté sur la figure 6b.
  • En revanche, si le contenu de n premiers adresses de la table d'indirection est modifié de sorte que certains des pointeurs désignent les zones de la mémoire d'image composant les fenêtres 50 et 52, ces fenêtres apparaissent sur l'écran. C'est le cas représenté sur la figure 6c.
  • On note dans ce cas qu'une fenêtre peut être représentée avec une forme différente dans la mémoire d'image et sur l'écran. En effet, chaque fenêtre est composée de pavés rectangulaires indépendantes associés chacune à un pointeur. Chaque pavé d'une fenêtre peut ainsi être projeté sur l'écran indépendamment des autres pavés de la fenêtre. Une fenêtre constituée de pavés contigus de la mémoire d'image peut ainsi apparaître sous forme de zones disjointes sur l'écran et inversement un ensemble de pavés disjoints de la mémoire d'image peut être visualisé sur l'écran sous la forme d'un rectangle.

Claims (5)

1. Circuit de mémoire d'image virtuelle relié d'une part à un processeur, d'autre part à un générateur vidéo, ledit circuit comprenant:
-une mémoire d'image (4) bidimensionnelle organisée en N pavés élémentaires où N est un nombre entier, lesdits pavés étant rectangulaires et identiques,
- une table d'indirection (6) constituée d'une mémoire vive contenant une suite de N pointeurs, chaque pointeur notant l'adresse de début d'un pavé de la mémoire d'image,
ledit générateur vidéo (10) étant susceptible de délivrer un signal vidéo correspondant au contenu de n pavés de la mémoire d'image composée des n pavés organisés en matrice, où n s; N, caractérisé en ce que le générateur vidéo et le processeur sont susceptibles d'adresser de façon symétrique la mémoire d'image par l'intermédiaire de la table d'indirection et en ce que ledit circuit comporte pour cela:
- une interface (12) pour accéder en lecture ou en écriture à la mémoire d'image et à la table d'indirection, l'adressage de la mémoire étant effectué à travers la table d'indirection,
- un moyen (26) disposé entre d'une part le générateur vidéo (10) et l'interface (12) et, d'autre part, la table d'indirection (6), ledit moyen recevant les adresses délivrées par ledit générateur vidéo et ladite interface et décomposant chaque adresse en une partie haute représentant l'adresse de début d'un pavé de la mémoire d'image et en une partie basse représentant un index pour désigner un mot de ce pavé, la partie haute d'une adresse étant reçue par la table d'indirection et la partie basse par la mémoire d'image,
- le circuit comprenant en outre des bus de données, d'adresses et de commandes et un moyen de séquencement.
2. Circuit selon la revendication 1, caractérisé en ce que les n pavés affichés sur l'écran sont ceux indiqués par les n premiers pointeurs de la table d'indirection.
3. Circuit selon la revendication 1, caractérisé en ce que le moyen (26) disposé d'une part entre le générateur vidéo (10) et l'interface (12) et d'autre part la table d'indirection (6) comprend un premier registre d'adresses ligne (28) et un premier registre d'adresses colonne (30) pour recevoir les adresses délivrées par ledit générateur vidéo, un second registre d'adresses ligne (32) et un second registre d'adresses colonne (34) pour recevoir les adresses délivrées par ladite interface et des moyens (40, 42, 44, 46) pour concaténer les parties hautes des adresses délivrées par un registre d'adresses ligne et un registre d'adresses colonne et pour concaténer les parties basses des adresses délivrées par un registre d'adresses ligne et un registre d'adresses colonne, l'adresse résultant de la concaténation des parties hautes des adresses étant appliquée à la table d'indirection et l'adresse résultant de la concaténation des parties basses des adresses étant appliquée à la mémoire d'image.
4. Circuit selon l'une quelconque des revendications 1 à 3, dans lequel l'interface (12) reçoit un signal d'adresse unidimensionnel d'un. processeur, caractérisé en ce que l'interface (12) comprend en série un moyen de permutation conditionné et une unité de gestion de mémoire, ledit moyen de permutation étant commandé pour permuter des bits d'adresse afin de rendre ladite adresse bidimensionnelle lorsqu'elle est destinée à la mémoire d'image.
5. Circuit selon l'une quelconque des revendications 1 à 3, dans lequel l'interface (12) reçoit un signal d'adresse unidimensionnel d'un processeur, caractérisé en ce que l'interface (12) comprend une unité de gestion mémoire, ladite interface délivrant sur un bus d'adresse une adresse bidimensionnelle par permutation de lignes d'adresse.
EP86401008A 1985-05-15 1986-05-12 Circuit de mémoire d'image virtuelle permettant le multifenêtrage Expired - Lifetime EP0202166B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8507412A FR2582132B1 (fr) 1985-05-15 1985-05-15 Circuit de memoire d'image virtuelle permettant le multifenetrage
FR8507412 1985-05-15

Publications (2)

Publication Number Publication Date
EP0202166A1 EP0202166A1 (fr) 1986-11-20
EP0202166B1 true EP0202166B1 (fr) 1990-10-31

Family

ID=9319326

Family Applications (1)

Application Number Title Priority Date Filing Date
EP86401008A Expired - Lifetime EP0202166B1 (fr) 1985-05-15 1986-05-12 Circuit de mémoire d'image virtuelle permettant le multifenêtrage

Country Status (5)

Country Link
US (1) US4815010A (fr)
EP (1) EP0202166B1 (fr)
JP (1) JPH079570B2 (fr)
DE (1) DE3675253D1 (fr)
FR (1) FR2582132B1 (fr)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation
US5396263A (en) * 1988-06-13 1995-03-07 Digital Equipment Corporation Window dependent pixel datatypes in a computer video graphics system
US5058041A (en) * 1988-06-13 1991-10-15 Rose Robert C Semaphore controlled video chip loading in a computer video graphics system
US5216413A (en) * 1988-06-13 1993-06-01 Digital Equipment Corporation Apparatus and method for specifying windows with priority ordered rectangles in a computer video graphics system
EP0617401A3 (fr) * 1989-07-28 1995-04-26 Hewlett Packard Co Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques.
US5142615A (en) * 1989-08-15 1992-08-25 Digital Equipment Corporation System and method of supporting a plurality of color maps in a display for a digital data processing system
EP0473767A1 (fr) * 1990-03-23 1992-03-11 Eastman Kodak Company Gestion de memoire virtuelle et agencement d'affectation pour systeme de traitement de donnees numeriques
DE69212035T2 (de) * 1991-04-08 1997-01-09 Matsushita Electric Ind Co Ltd Bildverarbeitungsgerät
US5257113A (en) * 1991-09-20 1993-10-26 International Business Machines Corporation Video mixing technique using JPEG compressed data
US5396597A (en) * 1992-04-03 1995-03-07 International Business Machines Corporation System for transferring data between processors via dual buffers within system memory with first and second processors accessing system memory directly and indirectly
JP3278756B2 (ja) * 1992-09-10 2002-04-30 日本テキサス・インスツルメンツ株式会社 画像処理方法及び装置
US5884016A (en) * 1993-01-11 1999-03-16 Sun Microsystems, Inc. System and method for displaying a selected region of a multi-dimensional data object
US5477242A (en) * 1994-01-03 1995-12-19 International Business Machines Corporation Display adapter for virtual VGA support in XGA native mode
JP3461980B2 (ja) * 1995-08-25 2003-10-27 株式会社東芝 高速描画方法および装置
US7075543B2 (en) * 2003-07-08 2006-07-11 Seiko Epson Corporation Graphics controller providing flexible access to a graphics display device by a host
JP3724578B2 (ja) * 2003-07-18 2005-12-07 セイコーエプソン株式会社 半導体装置及びその制御方法
JP4600108B2 (ja) * 2005-03-23 2010-12-15 セイコーエプソン株式会社 画像処理装置
US11573735B2 (en) * 2020-04-21 2023-02-07 Intel Corporation Technologies for media management in column-addressable memory media systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5454531A (en) * 1977-10-11 1979-04-28 Hitachi Ltd Crt display unti
JPS56118146A (en) * 1980-02-22 1981-09-17 Nec Corp Crt display device
US4407016A (en) * 1981-02-18 1983-09-27 Intel Corporation Microprocessor providing an interface between a peripheral subsystem and an object-oriented data processor
JPS58142487A (ja) * 1982-02-18 1983-08-24 Fuji Electric Co Ltd 特徴抽出装置
US4555775B1 (en) * 1982-10-07 1995-12-05 Bell Telephone Labor Inc Dynamic generation and overlaying of graphic windows for multiple active program storage areas
US4533910A (en) * 1982-11-02 1985-08-06 Cadtrak Corporation Graphics display system with viewports of arbitrary location and content
DE3381300D1 (de) * 1983-03-31 1990-04-12 Ibm Abbildungsraumverwaltung und wiedergabe in einem bestimmten teil des bildschirms eines virtuellen mehrfunktionsterminals.
US4598384A (en) * 1983-04-22 1986-07-01 International Business Machines Corp. Graphics display with improved window organization
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
JPS6184687A (ja) * 1984-10-02 1986-04-30 三洋電機株式会社 グラフィックディスプレイ装置
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system

Also Published As

Publication number Publication date
DE3675253D1 (de) 1990-12-06
EP0202166A1 (fr) 1986-11-20
US4815010A (en) 1989-03-21
FR2582132B1 (fr) 1987-07-17
JPH079570B2 (ja) 1995-02-01
JPS62222289A (ja) 1987-09-30
FR2582132A1 (fr) 1986-11-21

Similar Documents

Publication Publication Date Title
EP0202166B1 (fr) Circuit de mémoire d'image virtuelle permettant le multifenêtrage
FR2589601A1 (fr) Organisation de memoire notamment pour systeme d'affichage a ordinateur et procede d'organisation
EP0158785B1 (fr) Circuit câblé de gestion de fenêtres sur écran
FR2604019A1 (fr) Dispositif d'affichage video couleur pour systeme d'ordinateur, et procede de conversion de signaux video couleur a cet effet
FR2538588A1 (fr) Dispositif d'affichage pour l'affichage d'informations de supports multiples d'informations
FR2579794A1 (fr) Procede d'insertion et medaillons dans l'image fournie par un transformateur numerique d'images et transformateur numerique d'images mettant en oeuvre ce procede
FR2964236A1 (fr) Dispositif et procede de generation d'images multifenetres a priorite variable
US4910505A (en) Graphic display apparatus with combined bit buffer and character graphics store
EP0222638B1 (fr) Dispositif d'affichage graphique
EP0306403A1 (fr) Dispositif de visualisation à écran plat avec affichage sous commande de l'opérateur
EP0161175B1 (fr) Dispositif pour modifier l'aspect des points d'une image sur un écran d'une console de visualisation d'images graphiques
FR2477745A1 (fr) Dispositif d'affichage graphique en couleurs
US5991186A (en) Four-bit block write for a wide input/output random access memory in a data processing system
FR2637706A1 (fr) Dispositif d'effacement rapide de l'ecran d'affichage d'un ordinateur, notamment pour la creation d'images animees
EP0187077B1 (fr) Processeur de tracé de vecteur
EP0197846B1 (fr) Circuit contrôleur de signaux vidéo de couleur pour système de visualisation haute résolution, et système de visualisation comportant un tel circuit
FR2631474A1 (fr) Circuit et procede pour commander la presentation d'une information de couleurs a un dispositif d'affichage d'un systeme informatique
EP0575253A1 (fr) Dispositif de conversion des informations de sortie d'un radar pour leur visualisation sur un écran de télévision
EP0149399B1 (fr) Contrôleur de visualisation graphique
FR2697360A1 (fr) Système d'acquisition et de restitution d'une séquence d'images vidéo animée en temps réel.
FR2613109A1 (fr) Systeme d'affichage a balayage de trame avec generateur de caracteres a memoire a acces aleatoire
EP0908828B1 (fr) Procédé et système contrôle d'accès partagés à une mémoire vive
EP0306357A1 (fr) Unité de gestion d'accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données
EP0391755A2 (fr) Système de visualisation d'images
EP0487400A1 (fr) Architecture de terminal et circuit de gestion

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE GB

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: O'DONNELL, CIARAN

17P Request for examination filed

Effective date: 19870425

17Q First examination report despatched

Effective date: 19890424

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE GB

REF Corresponds to:

Ref document number: 3675253

Country of ref document: DE

Date of ref document: 19901206

GBT Gb: translation of ep patent filed (gb section 77(6)(a)/1977)
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 19951020

Year of fee payment: 10

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 19951031

Year of fee payment: 10

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Effective date: 19960512

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 19960512

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Effective date: 19970201