Brevet FR2625341A1 — publié le 19890630

2625j 41 -- 1 _- SYSTEME DE GESTION DES PRIORITES D'ACCES A UNE MEMOIRE ET SON APPLICATION". La présente invention a pour objet un système de gestion des priorités d'accès à une mémoire comportant au moins un module demandeur pourvu de moyens pour émettre des demandes d'accès, un module d'arbitrage pour arbitrer entre les dites demandes d'accès et ainsi élire une demande d'accès à exécuter en priorité. Un tel système est bien connu dans l'industrie de l'informatique o il est fréquent que les ressources d'une mémoire soient partagées entre plusieurs demandeurs; les demandeurs formulent des demandes d'accès qui peuvent être simultanées alors que leurs exécutions ne sauraient l'être. Un tel système trouve notamment son application dans un système graphique comportant une mémoire vive dynamique DRAM mémorisant des pixels. Un système logique de priorité connu est décrit dans la demande de brevet français n'2 593 304; dans un tel système chaque module demandeur émet successivement des demandes d'accès, chaque demande d'accès ayant une priorité unique mais variable dans le temps notamment en fonction de la durée de la demande telle que détectée par le dit module d'arbitrage. Le module d'arbitrage ainsi décrit est complexe tant au niveau de sa fabrication, et donc de son coût, qu'au niveau de sa mise en oeuvre car une même demande y est pourvue d'une priorité variable dont il n'est pas simple de connaître l'impact sur les performances du système. La présente invention a pour but de supprimer cet inconvénient. A cet effet un système de gestion des priorités est - 2 - particulièrement remarquable en ce que chaque module demandeur est pourvu de moyens pour émettre séparément d'une part les demandes d'accès à un seul mot de la dite mémoire et d'autre part les demandes d'accès à plusieurs mots consécutifs de la dite mémoire, et en ce que le module d'arbitrage est pourvu de moyens pour recevoir et arbitrer les dites demandes d'accès avec des priorités distinctes même si elles émanent du même module demandeur. Ainsi chaque type de demande est formulée séparément et une priorité peut être affectée à chaque type selon qu'il s'agit du type à un seul mot ou du type à plusieurs mots. Le module d'arbitrage est plus simple à réaliser car il ne comporte plus de détecteur de bloc ainsi que décrit dans la demande de brevet déjà citée. La présente invention peut être mise en oeuvre avantageusement soit avec des priorités programmées c'est à dire modifiables pendant le fonctionnement du système, soit avec des priorités pré-programmées, ou cablées, c'est à dire non-modifiables pendant le fonctionnement du système. Dans le cas o les priorités sont cablées, il est ainsi possible de faire intervenir un signal extérieur d'horloge pour automatiser la gestion des priorités. Dans un mode préféré, le module d'arbitrage comporte d'une part un premier module pour arbitrer les demandes d'accès à un seul mot et ainsi pré-sélectionner une telle demande et d'autre part un deuxième module pour arbitrer entre la dite demande pré-sélectionnée et des demandes d'accès à plusieurs mots et ainsi élire une demande d'accès à exécuter. Ainsi un pré-arbitrage est effectué et le deuxième module d'arbitrage peut opérer d'autant plus vite ce qui est favorable dans le cas de lecture en rafare de pixels à afficher. Dans le cas d'une mémoire DRAM comme susdit, les demandes de rafraîchissement peuvent avantageusement être arbitrées par le dit deuxième module. - 3 - La présente invention sera mieux comprise avec la description de divers modes de réalisation exposés avec références aux dessins annexés. Les figures la et lb représentent deux modes d'implémentation. La figure 2 représente le découpage du module d'arbitrage. La figure 3 représente l'application de l'invention & un système graphique. La figure la représente un système logique de priorité similaire à celui de la demande de brevet déjà citée et ici incluse par référence pour ne pas alourdir la présente description. La différence essentielle réside dans le fait que chaque module demandeur comporte deux connexions de requête pour formuler d'une part les requêtes d'accès à un seul mot (DP.REQ1, GP.REQ-1, etc...), et d'autre part les requêtes d'accès à plusieurs mots, ou par blocs (DP.REQ-N, GP.REQN,etc...) . Si un module n'émet qu'un seul type de requête, une seule connexion est suffisante (CPU-REQ-1). Le circuit logique de priorité (CLP) comporte autant de registres (REGA, REGB,...REGI) qu'il y a d'entrées de requêtes; ces registres fonctionnent comme dans la demande de brevet déjà citée mais ils ne sont évidemment pas dédoublés et une seule valeur de priorité est affectée à chaque connexion en entrée; cette valeur peut être, comme précédemment, modifiée par une commande (VAL-REG) même pendant le fonctionnement du système; en fonction des priorités, une requête à exécuter (REQ.EX) est sélectionnée par le système. Sur la figure lb, un système de gestion similaire est représenté; les modules demandeurs comportent encore deux connexions pour formuler séparément chaque type de requête; par contre le système logique de priorité (SL) est constitué d'un système de portes logiques non modifiable du fait qu'il est cablé; les priorités sont donc fixées une fois pour toutes mais il est possible d'agir sur les portes avec un signal de 2625 3 4 1 -4- temps par exemple l'horloge (CLK) ou, dans un mode préféré, avec un signal de tranche de temps (TS) adéquatement choisi; le signal TS peut par exemple être représentatif de la période d'affichage et/ou de la- période de retour ligne de l'écran d'un système graphique; dans ce cas il est clair pour l'homme du métier que, suivant la période en cours, les divers modules demandeurs d'accès peuvent avantageusement être munis de priorités différentes; il appartient alors à l'homme du métier de disposer les portes logiques en conséquence de ses choix de conception et de fonctionnement du système; le signal TS peut aussi être représentatif du, ou combiné avec, le signal de retour trame; ces exemples de tranche de temps (TS) ne sont évidemment pas limitatifs. Sur la figure 2 le module d'arbitrage a été scindé en deux parties. Un premier module (SL-PRE) reçoit et arbitre exclusivement les demandes d'accès à un seul mot pour pré-sélectionner l'une d'elle (REQ-S), laquelle est transmise au deuxième module d'arbitrage; le deuxième module (SL.EX) reçoit et arbitre la dite demande pré-sélectionnée et la/les demande(s) d'accès à plusieurs mots pour élire une demande à exécuter; chacun des deux modules d'arbitrage peut indifféremment être soit programmable, soit cablé comme susdit. Cette disposition particulière est spécialement performante dans un système graphique tel que montré à la figure 3. Le système graphique comporte, connectés entre eux par des bus de données, de commande et d'adresse succinctement représentés, un micro-ordinateur de commande constitué d'un micro-processeur (P) avec sa mémoire de programme (MP) pour commander le système, un écran de visualisation graphique (CRT), une mémoire vive dynamique (DRAM) pour mémoriser les mots d'information d'affichage pour les fenêtres des lignes de l'écran, ladite DRAM devant être rafraîchie périodiquement, et un contrôleur graphique (CT-GRAPH) comprenant un interface - 5 - micro-ordinateur (INT), un processeur graphique (MCLP) et un processeur d'écran (DCLP). Le susdit premier module d'arbitrage est ici appelé arbitre de bus (BUSAR) , il arbitre les requêtes à un seul mot (REQ1, REQ2, REQ3) en provenance du micro-ordinateur (P), du processeur graphique (MCLP) et du processeur d'écran (DCLP), et il pré-sélectionne une requête (REQ.S). Le susdit deuxième module d'arbitrage est ici intégré dans le contrôleur de DRAM (CT.DRAM), il arbitre la dite requête (REQ.S) et les demandes d'accès en rafale (RAF) à plusieurs mots ainsi que les demandes de rafraîchissement (REQ-FR) en provenance du processeur d'écran (DCLP), et il élit une demande à exécuter (REQ.EX). Le dispositif ainsi agencé est bien adapté au processus d'affichage des pixels piloté par le DCLP; en effet le dit processus comporte d'une part une lecture préparatoire d'un mot descripteur (REQ.3) dans lequel se trouvent des informations nécessaires à la lecture proprement dite des pixels (RAF); il importe donc de donner une grande priorité à REQ3 pendant la période d'affichage et ceci est possible avec le dispositif décrit en agençant l'arbitre de bus (BUSAR) conformément à la description de la figure lb. Le système graphique est ainsi optimisé; ce mode de réalisation n'est pas limitatif et l'homme du métier peut envisager d'autres modes d'implémentation de la présente invention selon les cas particuliers de gestion de priorité d'accès qui se présentent à lui. - 6 - REVENDICATIONS: 1. Système de gestion des priorités d'accès à une mé- moire comportant au moins un module demandeur pourvu de moyens pour émettre des demandes d'accès, un module d'arbitrage pour arbitrer entre les dites demandes d'accès et ainsi élire une demande d'accès à exécuter en priorité, caractérisé en ce que chaque module demandeur est pourvu de moyens pour émettre sé- parément d'une part les demandes d'accès à un seul mot de la dite mémoire et d'autre part les demandes d'accès à plusieurs mots consécutifs de la dite mémoire, et en ce que le module d'arbitrage est pourvu de moyens pour recevoir et arbitrer les dites demandes d'accès avec des priorités distinctes même si elles émanent du même module demandeur. 2. Système de gestion selon la revendication 1, carac- térisé en ce que les dites priorités distinctes sont program- mables, c'est à dire modifiables pendant le fonctionnement du système. 3. Système de gestion selon la revendication 1, carac- térisé en ce que les dites priorités distinctes sont pré-pro- grammées, ou cablées, c'est à dire non modifiables pendant le fonctionnement du système. 4. Système de gestion selon les revendications 1, 2 ou 3, caractérisé en ce que le dit module d'arbitrage comporte d'une part un premier module pour arbitrer les demandes d'ac- cès à un seul mot et ainsi pré-sélectionner une telle demande et d'autre part un deuxième module pour arbitrer entre la dite demande présélectionnée et les demandes d'accès à plusieurs mots et ainsi élire une demande d'accès à exécuter. 5. Système de gestion selon les revendications 1, 2, 3 ou 4, la mémoire étant une DRAM nécessitant des rafraichisse- ments périodiques, caractérisé en ce que le dit module d'arbi- trage est aussi pourvu de moyens pour recevoir et arbitrer une demande de rafraîchissement laquelle est arbitrée comme étant une demande d'accès à plusieurs mots. 6. Application du système de gestion selon la revendi- cation 5 à un système graphique comportant un processus d'affichage agencé pour émettre d'une part des demandes - 7 - d'accès à un seul mot et d'autre part des demandes d'accès à plusieurs mots consécutifs, chaque dite demande d'accès à un seul mot étant utilisée pour préparer une prochaine lecture de pixels laquelle lecture est l'objet d'une demande d'accès à plusieurs mots.