FR2778258A1 - Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces - Google Patents

Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces Download PDF

Info

Publication number
FR2778258A1
FR2778258A1 FR9805423A FR9805423A FR2778258A1 FR 2778258 A1 FR2778258 A1 FR 2778258A1 FR 9805423 A FR9805423 A FR 9805423A FR 9805423 A FR9805423 A FR 9805423A FR 2778258 A1 FR2778258 A1 FR 2778258A1
Authority
FR
France
Prior art keywords
memory
access
request
circuit
requests
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.)
Pending
Application number
FR9805423A
Other languages
English (en)
Inventor
Gerard Chauvel
Serge Laserre
Inverno Dominique Benoit Jac D
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.)
Texas Instruments France SAS
Original Assignee
Texas Instruments France SAS
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 Texas Instruments France SAS filed Critical Texas Instruments France SAS
Priority to FR9805423A priority Critical patent/FR2778258A1/fr
Priority to US09/170,834 priority patent/US6253297B1/en
Priority to US09/189,080 priority patent/US6412048B1/en
Priority to EP98309957A priority patent/EP0940757A3/fr
Priority to JP10377030A priority patent/JPH11345165A/ja
Publication of FR2778258A1 publication Critical patent/FR2778258A1/fr
Priority to US10/166,160 priority patent/US6934820B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

Ce contrôleur d'accès de trafic en mémoire (18) comprend un circuit (18d) pour associer, pour chaque demande d'une pluralité de demandes, une valeur de priorité initiale et des circuits (18b, 18d, 18e, 18e, 18f) pour modifier la valeur de priorité initiale pour certaines des demandes en une valeur de priorité différente, et un circuit de sortie (18d) pour délivrer un signal déclenchant l'accès à la mémoire en réponse à une demande possédant une valeur de priorité maximale.Application notamment à des téléphones portables à microprocesseurs.

Description

i
La présente invention a trait à des environ-
nements mettant en oeuvre une commande de mémoire et un
accès direct à la mémoire ("DMA") et a trait plus parti-
culièrement à des circuits, des systèmes et des procédés dans ces environnements pour réduire le temps de retard d'accès. De façon typique, une commande de mémoire est réalisée selon la technique de calcul au moyen d'un mécanisme désigné comme étant un contrôleur de mémoire, ou fréquemment désigné comme étant un contrôleur DRAM, étant donné qu'une mémoire dynamique à accès direct ("DRAM") est fréquemment le type de mémoire qui est commandé. Un contrôleur DRAM peut être un circuit séparé ou un module contenu dans un circuit plus étendu, et reçoit de façon typique des demandes pour l'accès à un ou plusieurs
emplacements à l'intérieur de la mémoire correspondante.
Pour répondre à chaque demande, le contrôleur de mémoire fait intervenir un circuit suffisant (par exemple des décodeurs d'adresses et des décodeurs logiques) pour envoyer les signaux de commande appropriés à une mémoire de manière que cette dernière soit commandée correctement afin
de valider et d'invalider ses circuits de mémoire.
Bien que certains contrôleurs DRAM permettent d'obtenir certains rendements d'accès à la mémoire, on a observé, en rapport avec les formes de réalisation de la présente invention, que certaines limitations apparaissent dans la technologie actuelle. Certaines de ces limitations sont provoquées par des contrôleurs DRAM, qui font apparaître un grand nombre de cycles de temps système, les cycles de temps système représentant les cycles présents lorsque la mémoire DRAM est occupée, mais n'est pas en train de recevoir ou d'émettre des données. Une solution commune pour réduire la pénalité globale provoquée par le
temps système consiste à utiliser des opérations en salves.
Les opérations en salve réduisent l-e temps global étant donné que de façon typique une seule adresse est requise avec une taille de salve, à la suite de quoi des unités successives de données (c'est-à-dire la salve) peuvent être soit lues, soit écrites sans temps système additionnel pour chaque unité de données. Cependant, même avec une technologie à salves, il est encore important d'examiner le nombre de cycles de temps système qui sont nécessaires pour une taille donnée de salve. A cet égard, dans la technologie actuelle, le rapport de la longueur d'une salve à la longueur totale d'accès fournit une mesure du rendement. Avec cette mesure, on peut améliorer le
rendement en augmentant la longueur de la salve, c'est-à-
dire en prévoyant de longs accès ininterrompus sous forme de salve. En d'autres termes, on considère que le rendement est plus élevé étant donné que pour le même nombre de cycles de temps système, il existe une augmentation du nombre de cycles d'accès de données par rapport aux cycles de temps système. Cependant les auteurs à la base de la présente invention ont constaté qu'une telle solution peut également présenter des inconvénients. Un inconvénient consiste en ce qu'une salve comprenant un nombre plus important de cycles empêche l'accès à la mémoire par un circuit demandeur différent pendant la salve; sinon, si le circuit demandeur différent peut interrompre la salve, alors ceci est obtenu de façon typique par une interruption qui ajoute alors des cycles du temps système pour arrêter la salve actuelle, puis ajoute un temps système supplémentaire pour faire redémarrer la salve une fois que
l'accès pour le circuit demandeur différent est terminé.
Ces inconvénients sont particulièrement conséquents dans un système qui comprend plus d'un processeur (par exemple un processeur, un microprocesseur, une unité commandée par programmation de commande du système, un contrôleur vidéo à usage général, spécifiques ou analogues) ayant accès à la
même mémoire DRAM.
Pour illustrer les limitations indiquées précédemment et par conséquent à titre d'introduction additionnelle, la figure 1, annexée à la présente demande, représente un chronogramme pour quatre accès à une mémoire principale par l'intermédiaire d'un contrôleur de mémoire DRAM, les accès étant repérés d'une manière générale par Ai à A4. Dans le cadre de cet exemple, on suppose que les accès Ai et A3 sont effectués par une première ressource Ri (par exemple une unité centrale CPU), tandis que les accès A2 et A4 sont effectués par une seconde ressource R2 (par exemple un périphérique externe). Les accès A1 à A4 seront examinés plus loin de façon plus détaillée et on notera à cet égard que la figure 1 est valable pour chaque exemple des nombres typiques de cycles d'horloge qui apparaissent lors de ces accès. Ces nombres ainsi que le cadencement des accès seront utilisés ultérieurement pour illustrer différents avantages des formes de réalisation selon la
présente invention.
L'accès Ai représente un accès de salve de lecture à la mémoire principale, la salve comportant huit mots de données. La première partie de l'accès A1 est une période de temps système qui, dans l'exemple de la figure 1, couvre six cycles. Ce temps système sera désigné dans la
présente description comme temps système et, comme cela est
connu dans la technique, inclut des opérations telles que la présentation de signaux de commande, incluant l'adresse devant être lue, à la mémoire principale et l'attente de l'opération de la mémoire principale en réponse à ces signaux. La seconde partie de l'accès Al est la présentation de la salve de données à partir de la mémoire principale. Dans le présent exemple, on suppose que la taille de la salve est égale à huit et que chaque quantité
d'une salve (par exemple 16 bits) délivre un seul cycle.
Par conséquent, la salve formée de huit quantités à 16 bits occupe un total de huit cycles. Pour conclure la discussion de l'accès Ai, un spécialiste de la technique notera par conséquent que cet accès s'étend sur un ensemble de 14 cycles. Les accès A2, A3 et A4 représentent respectivement la lecture d'une seule donnée, une salve d'écriture et l'écriture d'une seule donnée. Comme pour l'accès A1, chacun des accès A2, A3 et A4 commence avec un certain nombre de cycles de temps systèmes d'en-tête. De façon spécifique, l'opération de lecture de l'accès A2 utilise six cycles de temps systèmes d'en-tête, tandis que chacune des opérations d'écriture des accès A3 et A4 utilise trois cycles du temps système d'en-tête. En outre, chacun des accès A2, A3 et A4 est représenté comme utilisant un seul cycle par quantité de données. Par conséquent, les opérations sur une seule donnée des accès A2 et A4 consomment un seul cycle correspondant, tandis que l'opération de salve de l'accès A3 consomme huit cycles, chacun de ces huit cycles correspondant à l'une des huit salves des données d'écriture. Enfin, on notera que chacun des accès A2, A3 et A4 comprend également un temps système situé après l'accès des données, le temps système étant désigné dans ce document comme temps système de fin. Un tel temps système peut être dû à différentes opérations de commande, comme par exemple la précharge de rangées et/ou de blocs de mémoire ainsi que la réception d'un signal indiquant la fin d'un accès. Dans le présent exemple de la figure 1, l'opération de lecture de l'accès A2 utilise deux cycles de temps systèmes de fin, l'opération d'écriture de l'accès A3 utilise quatre cycles de temps systèmes de fin et l'opération d'écriture de l'accès A4 utilise cinq cycles
de temps systèmes de fin.
Pour en terminer avec certaines observations concernant l'illustration de la figure 1, il est maintenant intéressant d'examiner ces différents inconvénients. Comme premier inconvénient, on notera qu'un total de 47 cycles est utilisé pour accéder à seulement 18 quantités de données. Par conséquent, 29 cycles sont associés à des opérations de temps système, et par conséquent 62 pour cent des cycles (c'est-à-dire 29/47 = 0,62) concernent le temps système, ce qui laisse seulement 38 pour cent des cycles
(c'est-à-dire 18/47 = 0,38) pour l'accès réel aux données.
Comme autre considération concernant la solution de la figure 1, on notera qu'il apparaît, entre les accès A3 et
A4, un intervalle qui peut par exemple se présenter lors-
qu'il existe un intervalle suffisant entre les demandes conduisant à l'exécution des accès A3 et A4. Lorsqu'un tel intervalle apparaît, il existe encore des cycles d'horloge de temps de retard supplémentaires utilisés comme simples temps d'attente, et qui sont représentés sous la forme de 8 cycles dans l'exemple de la figure 1. Pendant cet intervalle de temps, la largeur de bande n'est pas utilisée pour l'accès aux données. En outre, à la suite du temps d'attente, il existe un temps de retard additionnel au début de l'accès A4 lorsque le contrôleur de DRAM introduit à nouveau le temps système de tête pour l'accès A4. Compte tenu de ce qui précède, un spécialiste de la technique notera que ce facteur ainsi que d'autres facteurs interviennent dans le temps moyens pour accéder aux données (c'est-à- dire le temps de retard) et augmentent ce temps
moyens et réduisent la performance globale du système.
Comme autre arrière-plan technologique, dans la technique on a adressé un certain temps de retard du système moyennant l'utilisation d'un accès DMA. L'accès DMA permet à des périphériques ou à des coprocesseurs d'accéder à la mémoire sans une utilisation intense des ressources de processeurs pour l'exécution du transfert de données. Un contrôleur de trafic regroupe et commande de façon séquentielle des accès DMA ainsi que des accès directs aux processeurs. Plus particulièrement, d'autres périphériques peuvent présenter des demandes d'accès au contrôleur de trafic et, pourvu qu'une demande soit satisfaite par le contrôleur, ils ont accès à la mémoire principale par l'intermédiaire d'un canal DMA. En outre, l'unité centrale CPU peut avoir également accès à la mémoire principale par l'intermédiaire d'un canal établi par l'intermédiaire du contrôleur de trafic et séparé de l'accès DMA. Dans tous les cas, la solution d'accès DMA fournit de façon typique un canal d'accès à la mémoire de sorte que des dispositifs
multiples peuvent avoir accès à la mémoire par l'intermé-
diaire de l'accès DMA.
Bien que l'accès DMA ait fourni à cet effet une performance améliorée dans différents contextes, les auteurs à la base de la présente invention ont également constaté qu'il ne permet pas d'éliminer les inconvénients
du contrôleur de mémoire décrit en référence à la figure 1.
En outre la présente invention inclut des considérations de priorité, qui peuvent être utilisées en liaison avec l'accès DMA et la commande du trafic et qui améliorent la performance du système tant seul qu'en combinaison avec un
contrôleur de mémoire perfectionné.
Compte tenu de ce qui précède, il existe un besoin d'éliminer les inconvénients de l'art antérieur et de fournir une commande de mémoire améliorée et une commande de trafic d'accès améliorée pour réduire le temps
de retard d'accès à la mémoire.
Selon un premier aspect, l'invention concerne un contrôleur d'accès de trafic en mémoire, apte à répondre à une pluralité de demandes pour réaliser l'accès à une mémoire, caractérisé en ce qu'il comporte: un circuit pour associer, pour chaque demande de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande; un circuit pour modifier la valeur initiale de priorité pour certaines sélectionnées de la pluralité de demandes, en une valeur de priorité différente; et un circuit pour délivrer un signal pour provoquer l'accès à la mémoire en réponse à une demande parmi la pluralité de demandes
possédant une valeur de priorité maximale.
Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour des données vidéo; et le circuit servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur provenant d'un circuit de mémoire servant à mémoriser des données vidéo, l'indicateur représentant un niveau de vide
du circuit de mémoire.
Selon une autre caractéristique de l'invention, le circuit de mémoire comprend un circuit de mémoire premier entré - premier sorti; et l'indicateur indique qu'une quantité de données vidéo dans le circuit de mémoire premier entré - premier sorti se situe à-delà d'un seuil de mémoire du circuit de mémoire premier entré - premier sorti. Selon une autre caractéristique de l'invention,une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un circuit périphérique, et le circuit pour modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à la mémoire présentée par un circuit périphérique
est en attente.
Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire; et le circuit servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à la mémoire pour l'exécution d'une régénération de
cette dernière est en attente.
Selon une autre caractéristique de l'invention, le contrôleur d'accès comporte en outre un circuit pour délivrer périodiquement une salve de demandes pour accéder à la mémoire pour l'exécution d'une régénération de la mémoire, la salve de demandes comprenant la demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, et le circuit pour modifier la valeur de priorité initiale en une valeur de priorité différente modifie la priorité initiale de n'importe quelle demande faisant partie de la salve de demandes d'accès à la mémoire pour l'exécution d'une régénération de la mémoire sont en attente après l'expiration d'un intervalle de temps prédéterminé. Selon une autre caractéristique de l'invention, le contrôleur d'accès comporte en outre un dispositif de mémoire programmable servant à indiquer un certain nombre de demandes devant être contenues dans la salve de demandes pour l'accès à la mémoire pour l'exécution d'une
régénération de cette dernière.
Selon une autre caractéristique de l'invention, le circuit servant à modifier de façon sélective la valeur de priorité initiale en une valeur de priorité différente ne modifie pas la valeur de priorité initiale si la demande d'accès à la mémoire est exécutée par un processeur central. Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande visant à accéder à des données vidéo dans la mémoire, le circuit servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur délivré par un circuit de mémoire servant à mémoriser des données vidéo, l'indicateur représentant un niveau de vide du circuit de mémoire, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par le circuit périphérique, le circuit servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à la mémoire présentée par un circuit périphérique est en attente; une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière; et le circuit servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire pour l'exécution d'une
régénération de cette dernière est en attente.
Selon une autre caractéristique de l'invention, le circuit servant à modifier sélectivement la valeur de priorité initiale en une valeur de priorité différente ne modifie pas la valeur de priorité initiale si la demande
d'accès à la mémoire est exécutée par un processeur cen-
tral.
Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande pour l'accès à des données vidéo dans la mémoire, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire par un processeur central, et la priorité initiale correspondant à la demande d'accès à des données vidéo dans la mémoire est une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la mémoire
effectuée par le processeur central.
Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire par un circuit périphérique, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un processeur central, et la priorité initiale correspondant à la demande d'accès à la mémoire présentée par un circuit périphérique a une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par le processeur central. Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un processeur central, et la priorité initiale correspondant à la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière possède une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par le processeur
central.
Selon une autre caractéristique de l'invention, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un circuit périphérique, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, une demande d'accès à la mémoire comprend
une demande d'accès à la mémoire présentée par un proces-
seur central, une demande d'accès à la mémoire comprend une demande d'accès à des données vidéo contenues dans la mémoire, et la priorité initiale correspondant à la demande d'accès à la mémoire présentée par le processeur central est supérieure à chacune des priorités correspondant respectivement à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par un circuit périphérique, à la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière et à la
demande d'accès à des données vidéo dans la mémoire.
Selon une autre caractéristique de l'invention, la priorité initiale correspondant à la demande d'accès à la mémoire présentée par le processeur central est supérieure à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par un circuit périphérique, la priorité initiale correspondant à la demande d'accès à la mémoire par un circuit périphérique est supérieure à la priorité initiale correspondant à la demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, et la priorité initiale correspondant à la demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire est supérieure à la priorité initiale correspondant à la demande d'accès à
des données vidéo dans la mémoire.
Selon une autre caractéristique de l'invention, le contrôleur comprend en outre: un circuit pour détecter qu'une demande revue d'accès à la mémoire est une demande d'accès en salve, et un circuit de conversion pour convertir la demande d'accès en salve en une pluralité de demandes d'accès en salve. le circuit de conversion convertit la demande d'accès en salve en une pluralité de demandes d'accès en salve si la demande d'accès en salve concerne une salve de quantités de données S, qui dépasse un nombre d'octets B. Selon une autre caractéristique de l'invention, le circuit de conversion convertit la demande d'accès en salve en un nombre entier N de demandes d'accès en salve, N étant égal à S divisé par B si B est divisé également en S. Selon un autre aspect, l'invention a trait à un système de calcul, caractérisé en ce qu'il comporte: une mémoire; un contrôleur d'accès de trafic en mémoire apte à répondre à une pluralité de demandes pour l'accès à la mémoire, et comportant: un circuit pour associer, pour chacune de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande, un circuit pour modifier la valeur de priorité initiale pour des demandes sélectionnées parmi la pluralité de demandes en une valeur de priorité différente; et un circuit servant à délivrer un signal pour réaliser l'accès à la mémoire en réponse à une demande faisant partie de la pluralité de demandes possédant une
valeur de priorité maximale.
Selon un autre aspect, l'invention a trait à un procédé pour faire fonctionner un contrôleur d'accès de trafic en mémoire apte à répondre à une pluralité de demandes d'accès à une mémoire, caractérisé en ce qu'il comprend les étapes consistant à: associer, pour chacune de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande; modifier la valeur de priorité initiale pour des demandes sélectionnées faisant partie de la pluralité de demandes en une valeur de priorité différente; et délivrer un signal pour déclencher l'accès à la mémoire en réponse à une demande parmi la pluralité de demandes possédant une valeur de priorité maximale. Selon une autre caractéristique, une demande d'accès à la mémoire comprend une demande d'accès à des données vidéo dans la mémoire, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur délivré par un circuit de mémoire servant à mémoriser des données vidéo, l'indicateur représentant un niveau de vide du circuit de mémoire. Selon une autre caractéristique, le circuit de mémoire comprend un circuit premier entré - premier sorti, et l'indicateur indique qu'une quantité de données vidéo dans le circuit de mémoire premier entré - premier sorti est supérieure à un seuil de mémorisation du circuit de
mémoire premier entré - premier sorti.
Selon une autre caractéristique, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un circuit périphérique, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire
présentée par le circuit périphérique est en attente.
Selon une autre caractéristique, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire pour l'exécution d'une
régénération de cette dernière est en attente.
Selon une autre caractéristique, le procédé comprend en outre la délivrance périodique d'une salve de demandes pour l'accès à la mémoire pour l'exécution d'une régénération de cette dernière, la salve de demandes comprenant la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente modifie la priorité initiale de n'importe quelle demande de la salve de demandes d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, qui sont en attente après l'expiration d'un
intervalle de temps prédéterminé.
D'autres caractéristiques et avantages de la
présente invention ressortiront de la description donnée
ci-après prise en référence aux dessins annexés, sur lesquels: - la figure 1, dont il a déjà été fait mention, représente un chronogramme d'une technique de l'art antérieur pour la délivrance de signaux d'accès par un contrôleur de mémoire DRAM en réponse à quatre demandes successif d'accès à la mémoire; - la figure 2 représente un schéma-bloc d'une plate-forme de transmission de données sans fil, dans laquelle la présente invention peut être mise en oeuvre; - la figure 3 représente un schéma-bloc fournissant une illustration plus détaillée de la mémoire SDRAM 24 et du contrôleur 18d de la mémoire DRAM de la figure 2; - la figure 4 représente un organigramme du traitement de demande d'accès à la mémoire par le dispositif de commande DRAM 18d pour réduire le temps de retard du système; - la figure 5 représente un chronogramme de signaux d'accès délivrés conformément au procédé selon l'organigramme de la figure 4; - la figure 6 représente un chronogramme de signaux d'accès prévus en réponse à quatre demandes successives d'accès à la mémoire et conformément au procédé selon l'organigramme de la figure 4; - la figure 7 fournit une représentation plus détaillée du contrôleur 18a de la mémoire DRAM, représenté sur la figure 3 et expliqué de façon plus détaillée dans les illustrations des figures 4 à 6; - la figure 8 représente un schéma-bloc représentant de façon plus détaillée le contrôleur de trafic 18 de la figure 2, en référence à différents aspects de priorité; - la figure 9 représente un organigramme de mode de mise en oeuvre de traitement de demandes d'accès à la mémoire par le contrôleur de trafic 18 pour réduire le retard du système, sur la base de différentes considérations de priorité; et -la figure 10 illustre un organigramme pour la mise en oeuvre du traitement de demandes d'accès à la mémoire par le contrôleur de trafic 18 pour réduire le temps de retard du système par subdivision de demandes d'accès en salve relativement étendues en deux demandes ou
plus d'accès en salves plus petites.
La figure 2 représente une forme de réalisation préférée d'une plateforme générale de traitement de données sans fil 10 dans laquelle différentes formes de réalisation de commandes de mémoire DRAM et de commandes de trafic décrites ici peuvent être mises en oeuvres et qui pourrait être utilisée par exemple pour la réalisation d'un téléphone à microprocesseur (également connu sous le nom "Smartphone") ou d'un dispositif de calcul portable. La plate-forme 10 de traitement de données sans fil comprend un processeur à usage général (central) 12 comportant une mémoire cache d'instructions 12a et une mémoire cache de données 12b, dont chacune comporte une unité correspondante de gestion de la mémoire d'instructions ("MMU") 12c et 12d, et en outre représente un circuit tampon 12e et une mémoire de fonctionnement 12f, tous ces éléments communiquant avec un bus SBUS du système. Le bus SBUS comprend des conducteurs SBUSd de transmission de données, de bus SBUSa de transmission d'adresses et de bus SBUSc de commande. Un processeur de signaux numériques ("DSP") 14a, qui possède sa propre mémoire cache interne (non représentée), et une interface périphérique 14b sont couplés au bus SBUS.Bien que ceci ne soit pas représenté, différents dispositifs périphériques peuvent par conséquent être couplés à une interface périphérique 14b incluant un convertisseur numérique/analogique ("DAC") ou une interface de liaison au réseau. Le processeur DSP 14a et l'interface périphérique 14b sont couplés à une interface DMA 16 qui est en outre
couplée à un contrôleur de trafic 18, qui sera décrit ci-
après de façon plus détaillée. Le contrôleur de trafic 18 est également couplé au bus SUBS ainsi qu'à un contrôleur vidéo ou un contrôleur LCD 20, qui communique avec un dispositif d'affichage LCD ou un dispositif d'affichage vidéo 22. Le contrôleur de trafic 18 est couplé par l'intermédiaire d'un bus 24a de transmission d'adresses, d'un bus 24d de transmission et d'un bus de commande 24c à une mémoire principale qui, dans la forme de réalisation préférée, est une mémoire dynamique synchrone à accès direct ("SDRAM") 24. En réalité, pour la discussion qui va suivre, on notera que le contrôleur de trafic 18 comprend un contrôleur 18a de mémoire DRAM en tant qu'interface pour la connexion entre le contrôleur de trafic 18 et la mémoire SDRAM 24. De même à cet égard, dans la présente forme de réalisation, le contrôleur 18a de la mémoire DRAM est un module situé dans le circuit qui constitue le contrôleur de trafic 18, et on notera que différents circuits et fonctionnalités décrits dans ce document comme faisant partie du contrôleur 18a de mémoire DRAM, peuvent être réalisés sous la forme d'un dispositif séparé et en réalité peuvent être utilisés dans différents autres contextes. En revenant à nouveau d'une manière générale au contrôleur de trafic 18, on notera enfin qu'il est couplé à une mémoire flash (ou à des mémoires flash) 26 par l'intermédiaire d'un bus 26a d'adresses, d'un bus 26d de données et d'un bus de
commande 26c.
On appréciera les aspects fonctionnels généraux de la plate-forme 10 de traitement de données sans fil, en notant qu'il utilise à la fois un processeur à usage général 12 et un processeur DSP 14a. Contrairement à des dispositifs actuels, dans lesquels un processeur DSP est affecté spécialement à des fonctions spécifiques fixes, le processeur DSP 14a de la forme de réalisation préférée peut être utilisé pour un nombre quelconque de fonctions. Cela permet à l'utilisateur d'obtenir le bénéfice complet du processeur DSP 14a. Par exemple, une zone dans laquelle le processeur DSP 14a peut être utilisé est associée à des fonctions telles que la reconnaissance de la parole, la compression et la décompression d'images et de signaux
vidéo, le cryptage de données, la conversion texte -
parole, etc. La présente architecture permet d'ajouter aisément de nouvelles fonctions et améliorations à la
plate-forme 10 de traitement de données sans fil.
On va maintenant se référer au contrôleur de trafic 18, à son fonctionnement général conjointement avec différents circuits qui lui sont couplés pour lui permettre de recevoir des demandes d'accès DMA et des demandes d'accès direct à partir du processeur central 12 et en réponse à ces deux demandes pour permettre des transferts en provenance/en direction des éléments suivants: - processeur central 12 en provenance/en direction de la mémoire SDRAM 24, - processeur central 12 en provenance/en direction de la mémoire flash 26, - mémoire flash 26 vers la mémoire SDRAM 24, - un périphérique couplé à l'interface de périphérique 14b en provenance/en direction de la mémoire SDRAM 24,
- mémoire SDRAM 24 vers le contrôleur vidéo ou LCD 20.
En outre, dans la forme de réalisation préférée, des accès, qui ne génèrent aucun conflit, peuvent apparaître simultanément. Le processeur central 12 peut exécuter une lecture à partir de la mémoire flash 26 en même temps qu'un transfert DMA est exécuté depuis la mémoire SDRAM 24 en direction du contrôleur vidéo ou LCD 20. Selon un autre aspect, étant donné que le contrôleur de trafic 18 peut agir de manière à permettre le transfert DMA depuis la mémoire SDRAM 24 en direction du contrôleur vidéo LCD 20, on notera qu'il inclut un circuit, qui dans la présente forme de réalisation, est constitué par une mémoire premier entré - premier sorti ("FIFO") 18b, de manière à prélever des salves de données à partir de la mémoire SDRAM 24 et les envoyer selon un flux continu, tel qu'il est requis, de données de pixels devant être envoyées au contrôleur vidéo
ou LCD 20.
A titre d'illustration, le contrôleur de trafic 18 est représenté comme comprenant une pile de demandes 18c pour indiquer de façon logique que différents circuits peuvent demander des transferts DMA pendant un intervalle de temps de chevauchement, et par conséquent ces différents transferts DMA demandés peuvent être en cours pendant un intervalle de temps commun. On notera que, dans la forme de réalisation préférée, il n'existe en réalité aucun dispositif de mémoire physique séparé en tant que pile de demande 18c, mais au lieu de cela, les différentes demandes arrivent par l'intermédiaire d'un ou de plusieurs conducteurs. Par exemple, une demande provenant d'un dispositif périphérique peut arriver dans un conducteur réservé pour une telle demande. Cependant, dans une solution plus complexe, la pile de demandes 18c peut représenter un dispositif physique réel de mémoire. De même dans le contexte de la réception de demandes d'accès, dans la forme de réalisation préférée seule une demande pour chaque source demandeuse peut être en cours à un instant dans le contrôleur de trafic 18 (ou contrairement à ce qui se produit pour des demandes de régénération décrites plus loin de façon détaillée). Cette limitation est assurée par la demande du fait qu'une quelconque source de demandes doit recevoir un accord de la part du contrôleur DMA 18 avant la délivrance d'une demande d'accès; par exemple l'accord peut indiquer que la demande précédente délivrée par la même source a été traitée. Cependant, dans une forme de réalisation plus compliquée, il est envisagé que de multiples demandes provenant de la même source puissent être en cours de traitement dans le contrôleur DMA 18. Pour revenir à la pile 18c, on va montrer que, dans tous les cas, de nombreuses demandes, provenant d'une source ou de sources différentes, peuvent être présentes simultanément; ces demandes sont analysées et traitées comme cela va être indiqué ci-après de façon détaillée. En outre, à cet égard, le dispositif de commande de trafic 18 comprend un dispositif de traitement de priorités qui sera décrit plus loin de façon détaillée de sorte que chacune de ces demandes en cours peut être sélectionnée dans un ordre défini par différentes considérations de priorité. En d'autres termes, dans une forme de réalisation, des demandes en attente sont traitées dans l'ordre dans lequel elles sont reçues tandis que, dans une autre forme de réalisation, l'accès de demande en attente est accordé dans un ordre différent de celui dans lequel elles sont reçues, comme cela sera indiqué plus loin. Enfin, le contrôleur de trafic 18 comprend des circuits servant à assister les connexions avec les différents circuits décrits précédemment, pour lesquels on a un accès direct ou un accès DMA. Par exemple, le contrôleur de trafic 18 comprend de préférence une interface de liaison à une mémoire flash, qui produit les signaux appropriés requis par des dispositifs flashes. Comme autre exemple, le contrôleur de trafic 18 comprend un contrôleur DRAM 18a indiqué précédemment et qui exécute la commande d'un automate fini et produit les signaux appropriés requis par la mémoire SDRAM 24. Cette dernière interface ainsi que différentes fonctionnalités qui lui sont associées, seront décrites plus loin de façon détaillée étant donné qu'elle fournit
différents aspects dans le cadre de la présente invention.
Après avoir introduit du contrôleur de trafic 18, on notera que l'on peut introduire différentes méthodologies selon l'invention dans la forme de
réalisation préférée, comme cela sera décrit plus loin.
Pour présenter une discussion ordonnée, on a classé ces méthodologies en celles concernant le contrôleur DRAM 18a, qui seront décrites en premier, et celles concernant certaines considérations de priorité qui sont traitées à l'intérieur du contrôleur de trafic 18, mais à l'extérieur du contrôleur DRAM 18a et qui seront décrites en second lieu. En définitive, on établira que ces méthodologies peuvent être combinées de manière à réduire les temps de retard, qui sinon pouvaient apparaître dans l'art antérieur. Dans la forme de réalisation préférée, le contrôleur DRAM 18a est spécifié de manière à supporter trois mémoires différentes. A titre d-'exemple, deux de ces mémoires sont la mémoire TMS626162 à 16 M.bits (512 K x 16 bits entrée/sortie x 2 blocs) et la mémoire TMS64E164 à 64 M.bits (M x 16 bits entrée/sortie x 4 blocs), dont chacune est disponible dans le commerce auprès de la société dite Texas Instruments Incorporated. Une troisième de ces mémoires est une mémoire à 64 M.bits organisée en 2 blocs. La longueur de salve à partir de la mémoire SDRAM 24 en réponse à une demande provenant du contrôleur DRAM 18a est entièrement programmable à partir d'une à huit quantités de données à 16 bits et, comme cela sera décrit plus loin de façon plus détaillée, peut être également étendue à 256 (longueur d'une page) par l'intermédiaire du contrôleur de trafic grâce à l'envoi d'une première demande désignée par REQ, suivie par une ou plusieurs demandes successives désignées par SREQ, ce qui permet toutes les longueurs de salve possibles entre 1 et 256 sans temps système additionnel. Dans la forme de réalisation préférée, cette programmabilité est obtenue par l'intermédiaire du contrôleur 18a de la mémoire DRAM à la mémoire SDRAM 24 et non au moyen de la taille de salve du registre de commande
de la mémoire SDRAM.
Un aspect intéressant, qui est mis en oeuvre dans la forme de réalisation préférée du contrôleur 18a de la mémoire DRAM fournit une réduction du temps de retard par réponse à des demandes d'accès à la mémoire, qui arrivent, sur la base d'une analyse de l'information d'état de la mémoire SDRAM 24. Cette fonctionnalité est représentée sous la forme d'un organigramme sur la figure 4 et sera décrite plus loin, mais on l'introduit ici en considérant tout d'abord le schéma de bloc matériel de la figure 3. La figure 3 représente à la fois la mémoire SDRAM 24 et le contrôleur 18a de la mémoire DRAM d'une manière plus détaillée que sur la figure 2, mais à nouveau avec seulement des éléments sélectionnés représentés pour simplifier l'illustration et concentrer la discussion sur
certains aspects de commande de la mémoire DRAM.
En se référant maintenant à la mémoire SDRAM 24 sur la figure 3, cette mémoire inclut de multiples blocs de mémoire indiqués en tant que blocs B0 à B3. Le nombre de blocs, qui ici est égal à quatre, est le cas de l'exemple dans lequel la mémoire SDRAM 24 est la mémoire de Texas Instruments à 64 M.bits introduite précédemment. Si on utilise une mémoire différente, alors le nombre de blocs peut également être différents (par exemple deux blocs si
on utilise la mémoire à 16 M.bits introduite précédemment).
Comme cela est connu dans la technique des mémoires SDRAM, chaque bloc dans une mémoire à blocs multiples possède un registre correspondant de rangées, qui indique l'adresse de rangée, qui est actuellement active dans le bloc correspondant. Sur la figure 3, ces registres de rangées sont marqués par B0_ROW à B3_ROW, qui correspondent
respectivement aux blocs B0 à B3.
En se référant maintenant au contrôleur 18a de la mémoire DRAM de la figure 3, dans la forme de réalisation préférée, ce contrôleur comprend un circuit suffisant pour indiquer différentes informations d'états, qui identifient le fonctionnement actuel de la mémoire SDRAM 24, et l'on décrira plus loin comment cette information est utilisée pour réduire le temps de retard. De préférence, cette information d'état comprend une copie de la même information mémorisée dans des registres de rangées B0_ROW à B3_ROW. Par conséquent le contrôleur 18a de la mémoire DRAM comporte quatre registres marqués AC_B0_ROW à ACB3_ROW, dont chacun indique l'adresse de rangée active
(si elle existe) pour des blocs correspondants BO à B3.
Autrement dit, l'information située dans les registres ACB0 ROW à AC B3 ROW du contrôleur 18a de la mémoire DRAM reproduit la même information que les registres de rangées B0_ROW à B3_ROW de la mémoire SDRAM 24. En outre, pour chacun des registres AC_B0_ROW à AC_ -B3_ROW, le contrôleur 18a de la mémoire DRAM contient un registre correspondant de bits C_B_R0 à C_B_R3, qui indique si l'accès à la rangée correspondante est actuellement réalisé. Par exemple, si le registre de bits CBR0 est positionné (par exemple sur une valeur égale à un), alors ceci indique que l'accès porte actuellement sur la rangée identifiée par l'adresse contenue dans ACBOROW, alors que si un bit est effacé, alors ceci indique qu'aucun accès n'est exécuté actuellement à la rangée identifiée par l'adresse dans ACBOROW, si une telle adresse est présente. De même pour chacun des registres AC BO ROW à AC B3 ROW, le contrôleur 18a de la mémoire DRAM comprend un registre correspondant de bits RAn qui indique que le contenu de AC BnROW est valable et que la mémoire SDRAM 24 comporte cette rangée active dans le bloc correspondant n. On notera que tous les registres RAn (c'est-à-dire RA0 à RA3) peuvent être positionnés simultanément à 1. Cela signifie que chaque bloc possède une rangée active, dont la valeur est contenue dans le registre respectif AC_Bn_ROW. Mais au contraire, seul un registre CB-Rn peut être positionné à 1 à un instant donné, étant donné qu'il indique à quel bloc s'effectue actuellement l'accès et que l'accès peut être
appliqué à un seul bloc à un instant donné.
Le contrôleur 18a de la mémoire DRAM inclut un circuit additionnel servant à produire différentes commandes envoyées à la mémoire SDRAM 24, décrite plus loin. A cet égard, le contrôleur 18a de la mémoire DRAM comprend de préférence un registre CURR_ACCESS, qui mémorise une information concernant la demande la plus récente (ou actuelle) à laquelle un accès a été réalisé dans la mémoire SDRAM 24. Cette information inclut la
partie restante de l'adresse de l'accès actuel (c'est-à-
dire l'adresse de colonne), sa direction et sa taille. En outre le contrôleur 18a de la mémoire DRAM inclut une entrée 28 destinée à recevoir une demande d'accès suivante (c'est-à-dire en attente). L'information de demande d'accès reçue au niveau de l'entrée 28 est présentée à un ensemble logique de comparaison/automate fini 30, qui a également accès à l'information d'état mémorisée dans les registres de bits RA0 à RA3 et C B R0 à C B R3, aux adresses de rangées dans les registres AC_B0_ROW à AC_B3_ROW et l'information mémorisée dans le registre CURRACCESS. Le circuit utilisé pour former l'ensemble logique de comparaison/automate fini 30 peut être choisi par un spécialiste de la technique parmi différentes solutions, et dans tous les cas, de manière à obtenir la fonctionnalité indiquée plus loin de façon détaillée en référence à la
figure 4. Avant cette description et à titre d'introduc-
tion, on notera en outre que l'ensemble logique de compa-
raison/automate fini 30 est connecté de manière à envoyer une adresse au bus 24a de transmission d'adresses entre le contrôleur 18a de la mémoire DRAM et la mémoire SDRAM 24, et d'envoyer des signaux de commande au bus de commande 24 entre le contrôleur 18a de la mémoire DRAM et la mémoire SDRAM 24. Enfin on notera, dans le cadre de la discussion, que les signaux de commande peuvent être combinés de différentes manières et identifiés comme des signaux différents de commande, dont chacun peut être délivré au cours d'un seul cycle, et qui sont utilisés pour obtenir les différents types d'accès désirés (c'est-à-dire lecture unique, lecture en salve, écriture unique, écriture en salve, auto- régénération, débranchement). Les signaux actuels de commande, qui sont communiqués pour effectuer ces commandes, incluent les signaux suivants: RAS, CAS,
DQML, DQMU, W, CKE, CS, CLK, et les signaux d'adresses.
Cependant, on se référera plus facilement aux combinaisons de ces signaux pour l'obtention de la fonctionnalité indiquée ci-après dans le tableau 1 au moyen de la commande correspondant à chaque fonction qu'en indiquant de façon détaillée les valeurs pour chacun des-différents signaux de commande.
Tableau 1
Commande DESCRIPTION
ACTV_x active le bloc x (c'est-à-dire que x représente un numéro de bloc particulier et inclut une
adresse de rangée).
DEAC_x précharge le bloc x (c'est-à-dire que x repré-
sente un numéro de bloc particulier).
DCAB précharge simultanée de tous les blocs.
READ commence une lecture d'une rangée active (inclut
le numéro de bloc et une adresse de colonne).
REFR auto-régénération.
WRITE commence une écriture d'une rangée active (inclut
le numéro de bloc et une adresse de colonne).
STOP arrête un accès en cours; par exemple pour une lecture unique, STOP est envoyé lors du cycle suivant après la commande READ, tandis que pour une lecture en salve à huit cycles, STOP est envoyé pendant le même cycle que celui de la délivrance de la huitième unité de données. On notera également qu'un accès peut être arrêté soit par une commande STOP, soit par une autre
commande LECTURE ou ECRITURE.
La figure 4 représente un organigramme d'un procédé illustré d'une manière générale en 40 et qui décrit le fonctionnement préféré d'un contrôLeur 18a de la mémoire DRAM en rapport avec des accès à la mémoire SDRAM 24, un tel procédé étant mis en oeuvre au moyen du fonctionnement exécuté d'une manière générale par l'ensemble logique de comparaison/machine à automate fini 30. Le procédé 40 commence un pas 42, lors duquel la demande suivante d'accès
à la mémoire (en abrégé "RQ") est sélectionnée pour l'ana-
lyse. Dans la forme de réalisation de la figure 3, la demande RQ est reçue à partir de l'entrée 28. Cependant, dans une variante, on notera que la demande peut provenir directement d'un bus ou analogue. En outre, à titre de
simplification, la présente description du procédé 40
illustre le fonctionnement une fois que des demandes RQ antérieures ont déjà été traitées et que des accès obtenus à chacun des blocs B0 à B3 de la mémoire SDRAM 24 ont été effectués; par conséquent, on suppose que chacun des registres AC BOROW à AC B3_ROW a été chargé avec des adresses de rangées correspondantes, et les autres registres de bits ont été placés dans l'état approprié sur
la base des lignes et/ou des blocs, qui sont actifs.
Comme autre hypothèse, on suppose qu'un accord antérieur a été obtenu pour un accès en cours à la mémoire, c'est-à-dire qu'actuellement il existe une information qui est communiquée par l'intermédiaire du bus 24d de transmission de données (soit une écriture dans la mémoire SDRAM 24, soit une lecture à partir de cette mémoire). Dans ces conditions, le procédé 40 se poursuit du pas 42 au pas 44. Cependant, avant de continuer par le pas 44, on notera
que les descriptions données ci-après fournissent aux
spécialistes de la technique une compréhension du mode de mise en oeuvre préféré même si les événements précédents supposés (c'est-à-dire rangées déjà actives) ne sont pas apparus. Le pas 44 détermine si le bloc, auquel l'accès doit être exécuté par la demande RQ à partir du pas 42 (désigné ci-après comme étant le bloc cible) est le même
bloc que celui auquel l'accès est actuellement réalisé.
L'ensemble logique de comparaison/automate fini 30 effectue cette détermination en comparant la partie concernant le bloc dans l'adresse située dans la demande RQ à la partie concernant le bloc dans l'adresse mémorisée dans le registre CURRACCESS. Si le bloc cible de la demande RQ est le bloc auquel l'accès est actuellement réalisé, alors le procédé 40 avance du pas 44 au pas 46 comme cela va être décrit immédiatement ci-après. D'autre part, si le bloc cible de la demande RQ se situe dans un bloc différent de celui auquel l'accès est actuellement réalisé, le procédé passe alors du pas 44 au pas 58 et ceci sera décrit plus
loin lorsqu'on donnera une description plus directe des
avantages à la suite du pas 46.
Alors que l'on a trouvé le fait que le bloc cible de la demande RQ est situé dans le même bloc que le bloc auquel l'accès est actuellement réalisé, le pas 46 détermine si la page, à laquelle l'accès est réalisé au moyen de la demande RQ (désignée ci-après comme étant la page cible) se situe dans la même rangée et est déjà active dans le bloc cible. A cet égard, on notera que les termes "page" et "rangée" peuvent être considérés comme désignant la même chose, étant donné que dans le cas des mémoires DRAM ou SDRAM, une rangée de ces mémoires correspond à une page d'informations. Par conséquent, le pas 46 détermine si la page cible (ou rangée cible) est située sur la même page
(ou rangée) que celle déjà active dans le bloc cible.
L'ensemble logique de comparaison/automate fini 30 effectue cette détermination en comparant la partie d'adresse de page de l'adresse contenue dans la demande RQ aux bits correspondants contenus dans l'adresse de rangée active
mémorisée dans le registre approprié pour le bloc cible.
Par exemple, si le bloc B0 est le bloc cible, alors le pas 46 compare l'adresse de page de la demande RQ aux bits correspondants dans la valeur de rangée active mémorisée dans le registre ACBOROW. Si la page cible est située dans la même rangée que celle déjà active dans le bloc
cible, alors le procédé 40 continue du pas 46 au pas 48.
Inversement, si la page cible est située dans une rangée différente de la rangée déjà active dans le bloc cible,
alors le procédé 40 se poursuit du pas 46 au pas 52.
Compte tenu de ce qui précède, on notera que le pas 48 est atteint lorsqu'à la fois le bloc cible de la demande RQ est le même que le bloc auquel l'accès est actuellement réalisé et que la page cible est également la rangée actuellement active dans le bloc cible. Par conséquent et pourvu qu'une amélioration considérable dans le temps de retard illustré ci-après, le pas 48 aligne la commande d'accès (par exemple LECTURE ou ECRITURE) pour la demande RQ devant apparaître pendant ou à proximité du cycle final de transfert de données de l'accès actuel. Pour mieux illustrer ce point, on a représenté sur la figure 5 un chronogramme à la fois de l'accès actuel CA et de l'opération du pas 48 en rapport avec l'accès se produisant à partir de la demande RQ (par exemple une lecture). De façon spécifique, on suppose à titre d'exemple que l'accès actuel CA produit une salve de 8 unités de données pendant huit cycles correspondants. Dans le cadre de cet exemple, le pas 48 aligne la commande d'accès devant apparaître pendant ou à proximité de la fin de l'accès actuel CA. Dans le mode de mise en oeuvre préféré, l'alignement spécifique du pas 48 est basé sur le fait que la demande RQ est une écriture ou une lecture. Par conséquent, chacune de ces
situations sera décrite ci-après séparément.
Pour le pas 48 d'alignement d'une commande d'accès lorsque la demande RQ est une écriture, la commande d'accès d'écriture est alignée de manière à être délivrée dans le cycle d'horloge qui intervient à la suite du dernier accès de données dans l'accès actuel CA. En d'autres termes, pour une demande RQ -qui est une écriture, si le dernier accès de données au cours de l'accès actuel CA apparaît pendant le cycle N, alors la commande d'accès d'écriture pour la demande RQ est alignée de manière à être délivrée lors du cycle N+1. On notera en outre que pendant le même cycle que celui pendant lequel la commande d'écriture est envoyée à un bus de commande, les données devant être écrites sont placées dans un bus de transmission de données. Par consequent les données devant être écrites sont présentes dans le bus de transmission de données également lors du cycle N+1 et de ce fait suivent directement les dernières données provenant de l'accès actuel CA, qui était présentes dans le bus de transmission de données lors du cycle N. Pour le pas 48 qui aligne une commande d'accès lorsque la demande RQ est une lecture, la commande d'accès de lecture est alignée de manière à être délivrée dans le premier cycle qui intervient à la suite du dernier cycle de données de l'accès actuel CA, moins le temps de retard CAS pour la lecture. De façon spécifique, dans la plupart des systèmes, il est envisagé que le temps de retard CAS puisse être de 1, 2, 3 ou 4 cycles en fonction de la mémoire, à
laquelle l'accès est réalisé, de la fréquence d'horloge.
Par conséquent, pour aligner la commande d'accès pour une demande RQ de lecture dans la forme de réalisation préférée, le nombre de cycles de retard CAS est soustrait du premier cycle intervenant à la suite du dernier cycle de données de l'accès actuel CA. En réalité, dans la forme de
réalisation préférée, l'ensemble logique de comparai-
son/automate fini 30 inclut un indicateur de la fréquence de bus actuelle et à partir de cette fréquence, un temps de retard CAS correspondant est sélectionné. En général plus la fréquence du bus est faible, plus le temps de retard CAS est faible. Par exemple, dans un mode inactif, lors duquel les millions d'instructions par seconde (MIPS) désirées sont faibles, la fréquence du bus est relativement faible et le temps de retard CAS est déterminé comme étant égal à 1. En continuant avec le pas 48 dans le cas d'un exemple d'une demande RQ de lecture et dans le cas o le temps de retard CAS est égal à 1 cycle, alors le pas 48 aligne la commande d'accès de lecture pour qu'il apparaisse 1 cycle avant le premier cycle intervenant à la suite du dernier cycle de données de l'accès en cours CA. En d'autres termes, pour une demande RQ qui est une lecture, si le dernier accès de données de l'accès en cours CA apparaît dans le cycle N, alors la commande d'accès de lecture pour la demande RQ est alignée lorsque le temps de retard CAS est égal à 1, pour être délivré dans le cycle N. C'est pourquoi, grâce à cet alignement, la commande d'accès de lecture est délivrée pendant le dernier cycle de données de l'accès en cours CA, et par conséquent les données qui sont lues en réponse à cette commande apparaissent dans le bus de transmission de données pendant le cycle N+1. Pour d'autres exemples comportant un ou plusieurs cycles additionnels de temps de retard CAS, l'accès de lecture est aligné de façon correspondante au moyen d'un ou de plusieurs cycles additionnels avant le dernier cycle de
données de l'accès en cours CA.
Une fois que la commande d'accès pour la demande RQ est alignée au moyen du pas 48, le pas 49 représente la délivrance de cette commande par le contrôleur 18a de la mémoire DRAM à la mémoire SDRAM 24 de manière à arrêter la demande RQ. Un avantage supplémentaire de cette opération apparaîtra ci-après, lorsque le procédé 48 passe au pas 50,
comme cela va être décrit directement ci-dessous. Lorsque le pas 50 est atteint à la suite des pas 48 et 49, ce pas exécute
l'accès en réponse à la commande d'accès alignée par le pas 48. Par conséquent, conformément à l'exemple de la figure 5, le pas 50 exécute la lecture qui de ce fait provoque la lecture de la première unité de données d'une salve à 8 unités de- données et qui est ensuite suivie jusqu'à ce que l'accès à la salve soit complet. Pour compléter l'exemple actuel, les sept unités de données restantes sont lues pendant sept cycles d'horloge successifs. Compte tenu de ce qui précède, on notera de nombreux avantages de l'opération décrite. Tout d'abord on notera que l'alignement effectué lors du pas 48 permet la lecture de la première unité de données de la demande RQ d'accès dans le cycle d'horloge qui suit immédiatement le dernier cycle de données de l'accès CA. En second lieu on notera que l'opération exécutée lors des pas 48 et 50 est telle que la rangée active est maintenue active et à la fois pendant le premier accès et tous les accès successifs concernant la même rangée dans le même bloc de mémoire. En d'autres termes, il n'existe aucun pas additionnel de précharge de la rangée entre l'apparition de ces accès. En outre, lors de la mise en oeuvre dans le cadre de cet aspect, la forme de réalisation préférée ne requiert pas que l'adresse pour la demande RQ soit à nouveau envoyée à la mémoire SDRAM 24 pour l'accès suivant, étant donné que l'adresse complète est déjà contenue dans le contrôleur 18a de la mémoire DRAM, par concaténation du contenu d'un registre de rangées (c'est-à-dire AC_Bn_ROW) avec l'adresse de colonne contenue dans le registre CURRACCESS. Par conséquent à nouveau la forme de réalisation préférée laisse active simplement la rangée précédemment active et exécute ensuite l'accès. Cet aspect consistant à laisser une rangée active apparaît également dans le cadre de la commande de salves d'accès DMA telle que décrite plus loin de façon détaillée, mais on notera dès maintenant, à titre d'introduction, que le contrôleur 18a de la mémoire DRAM peut recevoir une demande désignée par SREQ, une telle demande indiquant que cette demande concerne des données qui suivent en séquence des données qui viennent juste d'être demandées, et par conséquent peut être bien dirigée sur la même adresse de rangée que la demande immédiatement précédente. Dans tous les cas, on obtient une réduction du temps de retard qui sinon apparaissait dans l'art antérieur, lors de l'accès à une rangée, puis la précharge de cette rangée, puis le réadressage et la réactivation pour un accès ultérieur. En troisième lieu on notera que la figure 4 montre que le déroulement du procédé 40 revient du pas 50 au pas 42 et on notera que ceci peut se produire alors que l'accès réalisé lors du pas 50 est en cours. Par conséquent, bien que l'accès de la présente demande RQ se présente, le pas 42 peut commencer le traitement de la demande RQ suivante. Par conséquent, à cet égard, un spécialiste de la technique notera que si de multiples demandes de salves concernent le même bloc et la même page dans le bloc, alors le procédé 40 aligne d'une manière répétée la commande d'accès et exécute l'accès aux données de la même manière que cela est représenté sur la figure 5, en répétant de ce fait dans chaque cas successif, la réduction du temps de retard que l'on vient de décrire. Par conséquent, cette réduction s'applique à chaque accès successif et par conséquent peut conduire à un temps de retard nettement plus faible pour
des accès successifs, par rapport à l'art antérieur.
En se référant à nouveau au pas 46 sur la figure
4, la description va maintenant porter sur le cas o le
procédé 40 se poursuit du pas 46 au pas 52, en se rappelant que ceci se produit lorsque le bloc cible coïncide avec le bloc auquel l'accès est actuellement réalisé, mais que la page cible est sur une rangée autre que la rangée déjà active dans le bloc cible. Lors du pas 52, le procédé 40 attend l'achèvement de l'accès en cours. Dans la forme de réalisation préférée, cet achèvement est détecté par le contrôleur 18a de la mémoire DRAM, qui examine l'état d'un signal d'accès qui indique soit "accès en cours", soit "absence d'accès en cours". Plus particulièrement, lorsqu'il existe une modification de l'accès en cours à l'absence d'accès en cours, le contrôleur 18a de la mémoire DRAM sait que l'accès en cours est achevé, ce qui de ce fait provoque un pas d'arrêt 52. Ensuite, le pas 54 précharge la rangée, à laquelle l'accès a été réalisé, au moyen de l'accès qui est maintenant achevé, et ceci est réalisé au moyen du contrôleur 18a de la mémoire DRAM qui envoie une commande DEACx à la mémoire SDRAM 24. Ensuite, le pas 56 active la rangée, qui inclut la page cible grâce à l'envoi d'une commande ACTV_x, et à nouveau le procédé continue avec le pas 49 de sorte qu'une commande d'accès (par exemple par l'intermédiaire d'un signal LECTURE ou ECRITURE) peut être délivrée et l'accès à la rangée peut être exécuté lors du pas 50. En dernier lieu, on notera la désactivation et l'activation ultérieure des pas 54 et 56 et le scénario qui se produit dans le pire des cas en termes d'utilisation de cycles dans la forme de réalisation préférée; cependant la probabilité de ce scénario est relativement faible compte tenu des propriétés de localisation et de disposition spatiale de la plupart des
systèmes.
En se référant maintenant à nouveau au pas 44, la discussion va porter sur le cas o le procédé 40 se poursuit du pas 44 au pas 48, et on se rappellera que ceci se produit lorsque le bloc cible est différent du bloc auquel l'accès est actuellement réalisé. Avant le traitement, on notera ici que lorsque le pas 58 est atteint, la rangée actuellement active dans le bloc, auquel l'accès est actuellement réalisé (c'est-à-dire tel qu'il est évalué par le pas 44) n'est pas perturbé à partir du déroulement du procédé 40. En d'autres termes, cet autre déroulement ne désactive pas la rangée du bloc auquel l'accès est actuellement réalisé, et par conséquent on peut parfaitement réaliser à nouveau l'accès au moyen d'un accès ultérieur lors duquel cette rangée n'est pas désactivée entre des accès successifs. En se référant maintenant à nouveau au pas 58, ce dernier détermine s'il existe une rangée active dans le bloc cible. S'il en est ainsi, le procédé 40 se poursuit du pas 58 au pas 60. S'il n'existe aucune rangée active dans le bloc cible, alors le procédé 40 se poursuit du pas 58 au pas 70. L'opération exécutée lors du pas 58 est de préférence réalisée par l'ensemble logique de comparaison/automate fini 30 qui examine tout d'abord le registre de bits correspondant au bloc cible et qui indique son état actuel. Par exemple, si le bloc B1 est
le bloc cible, alors l'ensemble logique de comparai-
son/automate fini 30 évalue si le registre de bits RAl est réglé pour indiquer un état actif. A cet égard, on notera à nouveau que le temps de retard est réduit par rapport à un système qui attend que l'accès actuel soit terminé avant de commencer toutes les opérations utilisant un temps système
en vue de l'activation du bloc pour l'accès suivant.
Ensuite, le procédé 40 passe du pas 58 au pas 60.
Le pas 60 agit de la même manière que le pas 46 décrit précédemment, à cette différence près que lors du pas 60, le bloc cible est différent du bloc auquel l'accès est actuellement réalisé. Par conséquent le pas 60 détermine si la page cible est située dans la même rangée que dans le bloc cible. Si la page cible est située dans la même rangée que dans le bloc cible, le procédé 40 se poursuit du pas 60 au pas 62. Si la page cible est située dans une rangée différente de la rangée active dans le bloc cible, le procédé 40 se poursuit du pas 60 au pas 68. Les autres trajets commençant par les pas 62 et 68 vont être
décrits ci-après.
Le pas 62 aligne la commande d'accès pour la demande RQ, puis attend la fin de l'accès actuel. On notera cet alignement également en référence au pas 64 qui suit le pas 62. De façon typique, dans le pas 62, l'ensemble logique de comparaison/automate fini 30 aligne une commande d'accès (c'est-à-dire une commande LECTURE ou une commande ECRITURE) devant être envoyée à la mémoire SDRAM 24, qui amène le bloc cible à être le bloc auquel l'accès est actuellement réalisé. En outre on notera que cette opération exécutée lors du pas 62 s'effectue en général de la même manière que cela a été décrit précédemment en référence au pas 48; par conséquent, le lecteur se reportera, pour de plus amples détails, à la discussion du pas 48, ce qui montre que le pas 62 aligne de préférence la commande d'accès avant ou pendant le dernier cycle de données de l'accès en cours. C'est pourquoi le procédé se continue par le pas 64, qui délivre la commande LECTURE ou ECRITURE à la mémoire SDRAM 24, ceci étant suivi par le pas 66 lors duquel l'accès correspondant à la demande RQ est exécuté. Ensuite, le procédé 40 revient du pas 66 au pas 42
pour traiter la nouvelle demande d'accès à la mémoire.
En se référant à nouveau au pas 60, on se rappellera que l'organigramme passe au pas 68 lorsque la demande RQ est située dans une page différente de celle déjà active dans le bloc cible. Dans ce cas, le pas 68 précharge la rangée active actuelle dans le bloc cible. A nouveau, dans la forme de réalisation préférée, ceci est obtenu par envoi de la commande DEAC_x à la mémoire SDRAM 24. Ensuite, le pas 70 active la rangée, qui inclut la page cible, et le procédé se poursuit alors par le pas 62. A
partir de la description précédente du pas 62, un
spécialiste de la technique notera par conséquent que le pas 62 aligne la commande d'accès pour la demande RQ, ceci étant suivi par les pas 64 et 66 qui délivrent la commande
d'accès et exécutent l'accès correspondant à la demande RQ.
Ensuite, à nouveau le procédé 40 revient du pas 66 au pas
42 pour traiter la demande suivante d'accès à la mémoire.
Pour mieux apprécier la discussion précédente et ses avantages, on a représenté à nouveau sur la figure 6 des accès Al et A4 tirés de la figure 1, mais cette figure représente maintenant le cadencement des accès modifié lors de la mise en oeuvre du procédé 40 de la figure 4 et en supposant que chaque accès représente une demande d'accès à la mémoire permettant d'accéder à une rangée qui est déjà active dans l'un des blocs contenus dans la mémoire SDRAM 24. Dans cette hypothèse, un spécialiste de la technique peut aisément suivre les pas du procédé 40 et en conclure que les cycles du temps système de l'accès A2 sont
positionnés de manière à apparaître simultanément (c'est-à-
dire avec chevauchement) en tant que cycle final d'accès de données de l'accès Rl. Par conséquent, la seule unité de données provenant de l'accès A2 peut être lue pendant le cycle d'horloge qui suit directement la lecture de la dernière unité de données de la salve de l'accès Ai. De façon similaire en rapport avec l'accès A3, son temps système d'en-tête est avancé de manière à chevaucher en partie le même temps que la lecture unique de données à partir de l'accès A2 ainsi que pendant l'intervalle de temps du temps système de fin de l'accès A2. Par conséquent l'accès actuel aux données (écriture de salve) commence plus tôt que ce serait le cas si le temps système d'en- tête pour l'accès R3 ne commençait pas avant que le temps de système de fin de l'accès A2 soit achevé. En dernier lieu en rapport avec l'accès A4, on se rappellera que cet accès est reçu après un intervalle de 8 cycles. Cependant, étant donné que l'hypothèse est que l'accès A4 concerne une rangée qui est déjà active, on notera que le nombre de cycles pour son temps système d'en-tête est réduit (ou supprimé) étant donné qu'il n'y a aucune exigence pour que cette rangée soit préchargée, puis réactivée entre des accès. Par conséquent, le nombre total de cycles à la fois pour l'interstice et l'en-tête total est réduit, ce qui
réduit également par conséquent le temps de retard d'accès.
Par conséquent, en conclusion, un spécialiste de la technique notera que la capacité à maintenir des rangées actives pour des accès successifs -à la mémoire SDRAM augmente la largeur de bande sans augmenter la fréquence d'horloge et également réduit la consommation d'énergie,
qui est fréquemment importante dans des systèmes portables.
Par conséquent, le temps de retard total est réduit et la performance du système est fortement améliorée. En tant que considération finale, on notera que les améliorations précédentes sont dues à la localisation et à la disposition spatiale, qui existent dans de nombreux systèmes ou en réalité sont dues à certains programmes mis en oeuvre dans ces systèmes. A cet égard, dans la forme de réalisation préférée, le contrôleur 18a de la mémoire DRAM comporte en outre un bit programmable tel que l'état de ce bit valide ou invalide la fonctionnalité de la figure 4. Ainsi, s'il est établi pour une raison quelconque qu'une telle solution est indésirable (par exemple une hypothèse concernant la localisation ou la disposition spatiale est remise en question, ou on sait qu'un programme entraîne un accès aléatoire ou hautement imprévisible à la mémoire), alors ce bit peut être positionné dans l'état approprié pour invalider la fonctionnalité de la figure 4, ce qui a pour effet que le contrôleur 18a de la mémoire DRAM fonctionne plus à la manière d'un contrôleur de l'art antérieur. Au contraire, en positionnant ce bit de manière à permettre la fonctionnalité indiquée précédemment, alors les avantages indiqués ci-dessus de façon détaillée peuvent être obtenus pour des programmes, dans lesquels des accès successifs à la même rangée de la mémoire sont susceptibles de se produire. Après avoir décrit le contrôleur 18a de la mémoire DRAM sur la base de sa structure sur la figure 3, de son procédé sur la figure 4 et de ses résultats sur les figures 5 et 6, la figure 7 montre maintenant de façon plus détaillée un mode de mise en oeuvre possible des différents
détails présentés ci-dessus. Avant de poursuivre la des-
cription, on notera par conséquent -que la figure 7 est fournie à titre de conclusion de la présente discussion et que l'on ne décrira pas à nouveau différents détails qui ont été décrits précédemment, une formation additionnelle pouvant être affirmée par un spécialiste de la technique sur la base des enseignements de ce document. Par conséquent on comprendra quels sont les signaux d'entrée sur la figure 7, à partir de la discussion précédente, ces signaux d'entrée comprenant un signal servant à indiquer une demande d'accès en cours, un signal de commande pour sélectionner une mémoire à 16 M.bits ou une mémoire à 64 M.bits, un signal de commande sélectionnant si la mémoire, qui est commandée par le contrôleur 18a de la mémoire DRAM, possèdent 2 ou 4 blocs, et un signal de fréquence, qui peut être utilisé pour déterminer le temps
de retard CAS. Certaines connexions et détails supplé-
mentaires vont être indiqués ci-après.
Sur la figure 7, on peut voir que la partie d'adresse de rangée de bloc de la demande d'accès est appliquée à une première entrée d'un multiplexeur 72. La seconde entrée du multiplexeur 72 est connectée de manière à recevoir une adresse interne provenant du contrôleur 18a de la mémoire DRAM, dans lequel cette adresse interne représente l'adresse de rangée et de bloc pour la rangée à laquelle l'accès a été réalisé en dernier lieu (telle qu'elle peut être lue à partir de l'un quelconque des registres ACBnROW et RAn). L'entrée de commande du multiplexeur 72 reçoit le signal correspondant à la combinaison OU logique d'un signal SREQ qui est validé lorsqu'un signal de demandes successives SREQ est reçu ou lorsqu'un dépassement de page est détecté par le contrôleur 18a de la mémoire DRAM. Par conséquent, lorsqu'aucun de ces événements n'apparaît, le multiplexeur.72 transmet l'adresse provenant de la demande d'accès au contrôleur 18a de la mémoire DRAM, alors que si l'un ou l'autre de ces événements apparaît, le multiplexeur 72 transmet l'adresse provenant de la demande interne au contrôleur 18a de la mémoire DRAM. L'adresse de rangée délivrée par le multiplexeur 72 est appliquée aux entrées des quatre registres ACBnROW de sorte que l'adresse peut ensuite être mémorisée dans l'un approprié de ces quatre registres en vue d'une comparaison ultérieure; en outre le signal de sortie du multiplexeur 72 est connecté à une entrée de chacun de quatre comparateurs 740 à 743, la seconde entrée de chacun de ces comparateurs étant connectée de manière à recevoir l'adresse de rangée précédemment mémorisée provenant de registres correspondants ACBOROW à ACB3_ROW. Par conséquent chaque comparateur est à même de comparer l'adresse de rangée- de l'adresse actuelle à la dernière adresse de rangée pour le bloc correspondant (telle que mémorisée dans le registre ACBnROW). La sortie du comparateur 740 est connectée à une première entrée d'une porte ET 76a0 et à l'entrée d'un inverseur INV0 dont la sortie est connectée à une première entrée de la porte ET 76b0. De façon similaire, les sorties des comparateurs 741 à 743 sont connectées d'une manière comparable à des portes ET appariées. La seconde entrée de chacune des portes ET 76aO à 76b3 est connectée à la sortie d'un décodeur 2-parmi-4 78, qui reçoit une adresse de bloc à 2 bits de la part de la sortie d'adresse délivrée par le multiplexeur 72 et qui par conséquent est décodé en un signal de sortie SBANK, pour lequel l'une des quatre sorties du décodeur 78 est au niveau haut sur la base de celui des quatre blocs qui est adressé (ou des deux blocs, si on utilise une mémoire à deux blocs). Enfin, la troisième entrée de chacune des portes ET 76a0 à 76b3 est
connectée à la sortie des registres RAn correspondants.
Les sorties de chacune des portes ET 76a0 à 76b3 constituent des entrées de l'ensemble logique de comparaison/automate fini 30. Plus particulièrement, chaque porte ET qui comporte un "a" dans son identifiant délivre un signal à niveau haut si le même bloc et la même rangée (désignés de façon abrégée par SB_SR) sont adressés comme étant la rangée la plus récente (ou actuelle) qui a été adressée dans ce bloc. De façon similaire, chaque porte ET comportant a "b" dans son identifiant délivre un signal à niveau haut si le même bloc, mais une rangée différente (désigné de façon abrégée par SBDR) sont adressés en tant que rangée la plus récente (ou actuelle) qui a été adressée
dans ce bloc.
Enfin, comme entrées additionnelles de l'ensemble logique de comparaison/automate fini 30, on notera qu'à chaque couple de portes ET sont associés le registre CBRn ainsi qu'un signal de temps de retard LATRn introduit ici pour la première fois. En ce qui concerne ce signal, on notera que l'automate fini de l'ensemble logique de comparaison/automate fini 30 comprend de préférence des états suffisants pour satisfaire aux exigences de temps de retard qui apparaissent en raison de différentes combinaisons de commandes qui peuvent être envoyées à la mémoire SDRAM 24 (par exemple ACTVx, LECTURE, ECRITURE, etc.). Par exemple pour deux lectures successives, on peut avoir un temps de retard minimum de 9 cycles entre les instants d'accès des données pour ces lectures. Par conséquent, ce type de temps de retard ainsi que d'autres exigences concernant un temps de retard entre des commandes correspondent à des états dans l'ensemble logique de comparaison/automate fini 30, et ces états sont codés pour chaque rangée dans le signal de temps de retard LAT_Rn. Par conséquent, l'ensemble logique de comparaison/automate fini 30 prend en outre en compte le temps de retard pour chacune
de ces rangées avant de délivrer sa commande suivante.
Dans la description qui va suivre maintenant
concernant la fonctionnalité du contrôleur de trafic 18 au-
delà de celle du contrôleur 18a de la mémoire DRAM, qui
vient d'être mentionné, on va considérer cette fonctionna-
lité tout d'abord en se référant au schéma-bloc matériel de la figure 8. La figure 8 représente les blocs du contrôleur de trafic 18 tels que représentés sur la figure 2 et représente en outre certaines caractéristiques additionnelles. En considérant ces caractéristiques, on voit que le contrôleur de trafic 18 comprend une mémoire FIFO 18b et une pile de demandes 18c toutes deux indiquées précédemment, et à ce sujet on se rappellera brièvement que la mémoire FIFO 18b mémorise des données de pixels de salve pour leur transmission au contrôleur vidéo LCD 20, et que la pile de demandes 18 mémorise des demandes d'accès multiples de sorte que différentes demandes parmi ces demandes en attente peuvent être analysées et traitées
comme décrit ci-après.
En poursuivant avec la figure 8, dans la forme de réalisation préférée, une priorité est associée à chaque demande d'accès contenue dans la pile de demandes 18c, et de préférence cette priorité arrive également dans un conducteur associé à la demande correspondante. Cependant, dans une solution plus compliquée, la priorité peut être codée et mémorisée ainsi que la demande située dans la pile de demandes 18c. Comme cela va être indiqué ci-après de façon détaillée, la priorité peut être modifiée ensuite pour être amenée à une valeur différente de la valeur initiale. Par conséquent, dans la forme de réalisation préférée, lorsque la priorité existe en tant que signal dans un conducteur, ce signal peut être modifié dans ce conducteur (par exemple le passage d'un état binaire à un autre peut représenter une modification d'une faible priorité en une priorité élevée). D'une manière générale et comme cela apparaîtra à l'évidence ci-après, une priorité plus faible peut entraîner un retard avant que la demande d'accès correspondante soit traitée par envoi d'une demande correspondante au contrôleur 18a de la mémoire DRAM, tandis qu'inversement une priorité plus élevée peut conduire au fait qu'une demande d'accès correspondante peut être immédiatement transmise au contrôleur 18a de la mémoire DRAM même si d'autres considérations de rendement indiquent qu'un service actuel peut accroître le temps de retard. Ces variantes seront expliquées plus loin. Le contrôleur de trafic 18 comprend également un ensemble dispositif de traitement de priorités/automate fini 18d. L'ensemble dispositif de traitement de priorités/ automate fini 18d peut être agencé par un spécialiste de la
* technique conformément à différentes variantes de réalisa-
tion et, dans tous les cas, de manière à obtenir la fonctionnalité indiquée de façon détaillée dans la présente
description. A titre d'introduction à l'analyse des
priorités, on notera que l'ensemble dispositif de traite-
ment de priorités/automate fini 18d est représenté sur la figure 8 comme comportant une table de priorités 18dT. La table de priorités 18dT recense l'ordre dans lequel des demandes d'accès sont traitées par l'envoi de demandes correspondantes au contrôleur 18a de la mémoire DRAM. La priorité est basée sur un type de circuit qui a délivré la demande, et peut être basée en outre sur le fait qu'une priorité élevée a été ou non affectée à la demande de circuit donné, contraitement à sa priorité normale, la commutation dynamique des priorités étant décrite plus loin
de façon détaillée. Dans le cadre de la description et
comme cela est représenté sur la figure 8, l'ordre d'affectation de priorités par l'ensemble dispositif de traitement de priorités/automate fini 18d est représenté ici dans le tableau 2:
Tableau 2
Priorité Type de demande (avec une priorité optionnelle affectée) 1 Contrôleur et vidéo LCD 20 (priorité élevée) 2 Auto- régénération de la mémoire SDRAM 24 (priorité élevée) 3 Interface périphérique 14b (priorité élevée) 4 Bus SBUS (par exemple processeur central 12) 5 Interface périphérique 14b (priorité normale) 6 Auto-régénération de la mémoire SDRAM 24 (priorité normale) 7 Contrôleur vidéo et LCD 20 (priorité normale) 8 Mémoire flash 26 vers la mémoire SDRAM 24 A titre d'exemple pour démontrer l'information du tableau 2, si une première demande en cours provient du processeur central 12 (c'est-à-dire la priorité 4) et si une seconde demande est une demande à priorité élevée provenant de l'interface de périphérique 14b (c'est-à-dire priorité 3), alors la demande suivante délivrée par l'ensemble dispositif de traitement de priorités/automate fini 18d au contrôleur 18a de la mémoire DRAM est une demande qui correspond à la demande de priorité élevée provenant de l'interface de périphérique 14b en raison de sa priorité qui a une valeur supérieure. D'autres exemples apparaîtront à l'évidence dans le tableau 2 ainsi que dans
la description qui va suivre de la figure 9.
Pour mieux démontrer l'illustration des concepts
de priorité précédents, la figure 9 représente l'organi-
gramme d'un procédé désigné d'une manière générale par la référence 80 et qui décrit le fonctionnement des composants associés représentés sur la figure 8. Le procédé 80 commence par un pas 82, lors duquel une demande d'accès contenue dans la pile de demande 18c est analysée par l'ensemble dispositif de traitement de priorités/automate fini 18d. Comme on le notera dans la conclusion relative à
la description de la figure 9, à un instant donné
quelconque, l'apparition du pas 82 peut être telle qu'une seule demande ou de multiples demandes sont en cours dans la pile de demandes 18c. Dans tous les cas, en rapport avec une demande d'accès contenue dans la pile de demandes 18c,
le procédé 80 avance du pas 82 au pas 84.
Lors du pas 84, l'ensemble dispositif de traitement de priorités/automate fini 18d détermine s'il existe plus d'une demande en attente dans la pile de demandes 18c. Si c'est le cas, le procédé 80 passe du pas 84 au pas 86 et si ce n'est pas le cas, le procédé 80 avance du pas 84 au pas 86. Lors du pas 86, l'ensemble dispositif de traitement de priorités/automate fini 18d envoie une demande d'accès en mémoire au contrôleur 18a de la mémoire DRAM, qui correspond à la demande d'accès contenue dans la pile de demandes 18c qui a la priorité maximale. Par conséquent, le tableau 2 donné ci-dessus indique la demande qui est sélectionnée pour son traitement de cette manière. De même on notera que la figure 9 représente, sous la forme de lignes formées de tirets, un pas 86', qui est inclus de manière à démontrer que des priorités peuvent être modifiées, à n'importe quel moment, selon l'une quelconque des différentes manières indiquées ci-après. Dans tous les cas, le pas 86 délivre une demande d'accès à la mémoire au contrôleur 18-a de la mémoire DRAM, qui dans la forme de réalisation préférée doit réaliser l'accès à la mémoire SDRAM 24 de la manière décrite précédemment. Enfin, on se rappellera que dans la forme de réalisation préférée, en général une seule source de demande peut avoir seulement une demande en attente à un instant donné; par conséquent, dans un tel cas, il n'existe
pas deux demandes en attente ayant la même priorité.
Cependant, si on met en oeuvre une forme de réalisation dans laquelle de multiples de demandes peuvent être en attente en provenance de la mêmesource et avec la même priorité, il est alors envisagé, en ce qui concerne le pas 86, que ce pas 86 délivre de préférence une demande à la mémoire pour la demande d'accès qui a été en attente le plus longtemps. Une fois que la demande est envoyée au contrôleur 18a de la mémoire DRAM, le procédé 80 revient du pas 86 au pas 84 et par conséquent le processus ci-dessus se répète jusqu'à ce qu'il n'existe qu'une seule demande d'accès en attente; à cet instant, le procédé 80 passe au
pas 88.
Lors du pas 88, l'ensemble dispositif de traite-
ment de priorités/automate fini 18d délivre une demande d'accès à la mémoire au contrôleur 18a de la mémoire DRAM, qui correspond à la demande d'accès unique dans la pile de demandes 18c. Ensuite, le procédé 80 revient du pas 88 au pas 82, auquel cas le système traite la demande d'accès suivante en attente s'il en existe une dans la pile de demandes 18c, ou attend une telle demande suivante et
procède alors de la manière décrite précédemment.
Comme cela a été indiqué précédemment, la priorité associée à certains types de demandes en attente dans la pile de demandes 10c peut changer de façon dynamique à partir d'une valeur initiale. En particulier, dans la forme de réalisation préférée, les priorités associées à des demandes d'accès provenant de chacune des trois sources suivantes peuvent être modifiées: (1) contrôleur vidéo et LCD 20; (2) interface périphérique 14b; et (3) auto-régénération de la mémoire SDRAM 24. Pour mieux représenter le changement de priorités pour ces trois différentes sources, on va décrire chacune d'elles séparément ci-dessous et on se reportera à la figure 8 pour la discussion qui va suivre d'aspects supplémentaires du
contrôleur de trafic 18.
La priorité correspondant à une demande provenant du contrôleur vidéo et LCD 20 est affectée, sur la base de l'état indiquant quelle quantité de données reste dans la mémoire FIFO 18b (ce qui envoie des données vidéo au contrôleur vidéo et LCD 20). De façon spécifique, si à un instant donné la mémoire FIFO 18d est presque vide, alors une priorité relativement élevée est affectée à une demande délivrée par le contrôleur vidéo et LCD 20 à cet instant; inversement, si la mémoire FIFO 18b n'est pas presque vide
à un instant donné, alors une priorité normale (c'est-à-
dire relativement faible) est affectée à une demande provenant du contrôleur vidéo et LCD 20 à cet instant. Pour obtenir cette indication, la mémoire FIFO 18b est couplée de manière à délivrer un signal de commande à un ensemble dispositif de traitement de priorités/automate fini 18d. De même en liaison avec des priorités apparaissant en raison du caractère vide de la mémoire FIFO 18b, si la commande est déjà en attente en provenance du contrôleur vidéo et LCD 20 et si une priorité normale Ul était initialement affectée, alors cette priorité est modifiée en une priorité élevée si la mémoire FIFO 18b atteint certains degrés de vide. La définition du caractère vide de la mémoire FIFO
18b peut être choisie par un spécialiste de la technique.
Par exemple, à partir du tableau 2 on notera qu'une demande d'accès provenant du contrôleur vidéo et LCD 20 reçoit une priorité 1 (priorité élevée) ou une priorité 7 (priorité normale). Pour déterminer quelle priorité est affectée dans la forme de réalisation préférée, -un seuil unique de mémoire est choisi pour la mémoire FIFO 18b, et s'il existe dans la mémoire FIFO 18b une quantité de données inférieure à ce seuil, alors toute demande délivrée ou en attente, provenant du contrôleur vidéo et LCD 20, reçoit une priorité élevée alors que si la quantité de données dans la mémoire FIFO 18b est égale ou supérieure à ce seuil, alors toute demande délivrée ou en attente provenant du
contrôleur vidéo et LCD 20 reçoit une priorité normale.
Mais on notera en outre qu'un spécialiste de la technique peut choisir différents modes de sélection de priorité et que ceci ne limite pas nécessairement la priorité à seulement deux catégories. Par exemple, comme autre solution, on peut utiliser une échelle linéaire allant de un à un nombre plus élevé, comme par exemple une échelle de 1 à 5. Dans ce cas, si la mémoire FIFO 18b est remplie à 1/5-ème ou moins, alors une valeur de priorité un est affectée à une demande d'accès provenant du contrôleur vidéo et LCD 20. Comme autre exemple, si la mémoire FIFO 18b est remplie aux 4/5-èmes ou plus, alors une valeur de priorité cinq est affectée à une demande d'accès provenant
du contrôleur vidéo et LCD 20.
La priorité correspondant à une demande d'accès provenant de l'interface périphérique 14b reçoit initialement une valeur normale, mais cette valeur peut être modifiée de façon dynamique en une valeur plus élevée sur la base de la durée pendant laquelle la demande a été en attente. A cet égard, le contrôleur de trafic 18 comprend un circuit de minuterie 18e qui inclut un registre programmable 18aR servant à mémoriser un seuil de comptage à huit bits. Par conséquent, lorsqu'une demande d'accès provenant de l'interface périphérique 14b est mémorisée en premier dans la pile de demandes 18c, alors une priorité normale lui est affectée et, à partir du tableau 2, on notera que cette priorité normale en rapport avec les autres priorités a une valeur 5. Cependant, au moment de la mémorisation de cette demande, le circuit de minuterie 18e commence à effectuer son comptage. Si le comptage du circuit de minuterie 18e atteint la valeur mémorisée dans le registre programmable 18eR avant que la demande en attente soit traitée, alors le circuit de minuterie 18e envoie un signal de commande à l'ensemble dispositif de traitement de priorités/automate fini 18d pour modifier la priorité de la demande d'accès en la faisant passer d'une priorité normale à une priorité élevée. En se référant une fois de plus au tableau 2, on notera que cette priorité élevée en rapport avec les autres priorités possède une valeur égale à 3. On notera également que si la demande est traitée avant que le circuit de minuterie 18a atteigne sa limite programmée, alors la valeur de comptage est ramenée à zéro pour l'analyse de la demande périphérique suivante
en attente. En outre, alors que la description précédente
se réfère uniquement à une seule demande périphérique, une variante de réalisation permet conserver des valeurs de comptage séparées si plus d'une demande périphérique est en attente dans la pile de demandes 18c, dans laquelle chaque comptage séparé commence lorsque sa demande correspondante
est mémorisée.
La priorité correspondant à une demande d'auto-
régénération reçoit initialement une valeur normale, mais cette priorité peut ensuite être modifiée en une valeur plus élevée sur la base de la durée pendant laquelle la demande était en attente. Avant de décrire de façon détaillée cette procédure, on notera tout d'abord, à titre d'éléments de base pour la mémoire SDRAM, que l'on sait qu'un bloc complet doit être régénéré pendant un intervalle de régénération. Habituellement pour la plupart des mémoires SDRAM actuellement sur le marché, cette durée est standard et égale à 64 ms. Pendant cette durée de 64 ms, tous les blocs doivent être régénérés, ce qui signifie qu'un nombre donné de demandes requises d'auto-régénération
(par exemple 4 k) doit être envoyé à la mémoire SDRAM.
Comme cela est également connu dans la technique, une demande d'autorégénération n'inclut aucune adresse, mais au lieu de cela amène la mémoire SDRAM à incrémenter un pointeur désignant une zone dans la mémoire, qui est régénérée en réponse à une réception de la demande. De façon typique, cette zone couvre de multiples rangées et pour une mémoire à blocs multiples, provoque la régénération des mêmes blocs dans chacun des blocs
multiples en réponse à une seule demande d'auto-
régénération. Enfin, à titre de base pour l'auto-
régénération, dans la technique antérieure il existe d'une manière générale deux solutions pour envoyer les demandes d'auto-régénération à une mémoire SDRAM, la première solution envoyant les demandes d'auto-régénération à des intervalles de temps uniformément espacés au cours de la période de régénération, tandis qu'une seconde solution envoie une seule commande provoquant une régénération de toutes les lignes de tous les blocs, séquentiellement en réponse à cette commande. Cependant, dans la présente forme de réalisation selon l'invention, on notera que chacune de ces solutions de l'art antérieur présente des
inconvénients. Par exemple, si les demandes d'auto-
régénération sont réparties uniformément, alors chaque fois que l'une des demandes est reçue et traitée par la mémoire SDRAM 24, ceci entraîne une précharge de tous les blocs de la mémoire. Cependant, un tel résultat réduit les avantages du maintien de rangées actives pendant des intervalles de temps considérables comme cela est obtenu conformément à la présente invention. Comme autre exemple, si une seule commande est délivrée pour provoquer la régénération de toutes les rangées de tous les blocs, alors pendant cette période de régénération la mémoire est indisponible pour n'importe quelle source, ce qui peut être particulièrement gênant dans le système complexe. C'est- pourquoi la forme de réalisation préférée limite ces inconvénients comme cela va
être expliqué immédiatement ci-après.
Dans la forme de réalisation préférée, une auto-
régénération est réalisée par l'ensemble dispositif de traitement de priorités/automate fini 18d qui envoie des salves de demandes d'autorégénération au contrôleur 18a de la mémoire DRAM. D'une manière générale et comme cela va être décrit ci-après, les salves sont relativement petites, comme par exemple des salves contenant 4, 8 ou 16 demandes d'auto-régénération. Par conséquent, en réponse à ces
demandes, il existe des intervalles de temps pendant les-
quels la mémoire SDRAM 24 est préchargée en raison d'une
opération d'auto-régénération, et cette période est net-
tement plus courte que si 4096 demandes étaient délivrées successivement pour que la précharge se produise en réponse à l'ensemble de ces demandes au cours d'une seule trame temporelle. En outre, pendant l'intervalle de temps entre ces salves, d'autres demandes (ayant des priorités plus élevées) peuvent être traitées par l'ensemble dispositif de traitement de priorités/automate fini 18d. En réalité un grand nombre de ces autres demandes peuvent concerner des rangées déjà actives et par conséquent pendant cet intervalle de temps, ces rangées ne sont pas perturbées (c'est-à-dire préchargées) en raison d'une opération de régénération. En se référant maintenant aux détails pour la mise en oeuvre de ces opérations, le contrôleur de trafic 18 comprend un circuit de minuterie 18f pour mémoriser une
taille de salve de demandes d'auto-régénération (par exem-
ple 4, 8 ou 16). En réponse à un circuit de minuterie 18f,
un certain nombre de demandes de salves et le nombre indi-
qué dans le registre programmable 18fR sont ajoutés à la pile de demandes 18c et ce avec une priorité normale (par exemple 6 dans le tableau 2). A cet instant, le circuit de priorité 18f commence à avancer vers une valeur de temporisation (par exemple 256 microsecondes), tandis que
la salve de demandes d'auto-régénération est en attente.
Comme cela a été décrit ci-dessus de façon détaillée en
référence à la figure 9, l'ensemble dispositif de traite-
ment de priorités/automate fini 18d délivre des demandes au contrôleur 18a de la mémoire DRAM conformément à la priorité relative de n'importe quelle demande en attente présente dans la pile 18c. Par conséquent, si des demandes ayant le niveau de priorité 6 sont atteintes, ces demandes d'auto-régénération en attente sont envoyées au contrôleur 18a de la mémoire DRAM. Par conséquent, lorsque le circuit de minuterie 18c avance vers sa valeur de temporisation, l'un des deux événements se produit en premier. Un événement, qui consiste en ce que toutes les demandes d'auto-régénération en attente peuvent être envoyées au contrôleur 18a de la mémoire DRAM, et l'autre événement consiste en ce que le circuit de minuterie 18f atteint sa
valeur de temporisation. Si toutes les demandes d'auto-
régénération en attente sont envoyées au contrôleur 18a de la mémoire DRAM, alors le circuit de minuterie 18f est
ramené à zéro et une autre salve de demandes d'auto-
régénération est ajoutée à la pile de demandes 18c. D'autre part, si le circuit de minuterie 18f atteint sa valeur de temporisation, alors qu'une ou plusieurs des demandes d'auto-régénération de la salve précédente sont en attente, l'ensemble dispositif de traitement de priorités/automate fini 18d augmente de façon dynamique la priorité normale de la ou des demandes d'auto-régénération en attente pour leur donner une priorité élevée (par exemple 2 dans le tableau 2). En outre, à nouveau le circuit de minuterie 18f est
ramené à zéro et une autre salve de demandes d'auto-régé-
nération ayant une priorité normale est ajoutée à la pile de demandes 18c. Cependant, lorsque le procédé 80 continue à traiter des demandes en attente, la possibilité de traitement des demandes d'auto- régénération, dont la priorité a été accrue, est considérablement accrue pour le
changement considérable de priorité (par exemple de 6 à 2).
Compte tenu de ce qui précède, un spécialiste de la technique notera de nombreux avantages de la méthodologie de l'auto- régénération dans la forme de réalisation préférée. Par exemple, les salves de demandes d'auto-régénération évitent d'une manière générale une précharge trop fréquente des blocs. Au contraire, si on choisissait de transférer la commande d'auto-régénération d'une manière uniforme dans l'intervalle de régénération maximum, une commande d'auto- régénération serait envoyée à
la mémoire SDRAM 24 toutes les 15,62 microsecondes (c'est-
à-dire 64 ms/4096 lignes = 15,62 microsecondes). Par conséquent tous les blocs devraient être préchargés toutes les 15,62 microsecondes. Au contraire, sur la base de la forme de réalisation préférée qui regroupe les commandes d'auto-régénération sous la forme de salves, la capacité du
point de vue priorité permet à la salve de demandes d'auto-
régénération de rester en attente et dans de nombreux cas d'être traitée pendant l'intervalle qui subsiste entre des demandes ayant une priorité plus élevée. Ceci augmente le temps entre deux précharges globales. Par exemple, si 16 demandes d'auto-régénération sont regroupées, l'intervalle entre deux précharges globales (commande DCAB) peut être de 250 microsecondes. Ceci montre clairement l'avantage qu'il y a d'associer ce mécanisme à salves d'auto-régénération à un contrôleur 18a de la mémoire DRAM. Cette salve de demandes d'auto- régénération peut naturellement être interrompue par n'importe quelle demande ayant une priorité supérieure.
Pour conclure la présente description concernant
les priorités, on notera dans le tableau 2 qu'il existe deux types de demandes d'accès qui ont une priorité qui n'est pas modifiée. Une première de cette demande d'accès est une demande d'accès reçue en provenance du bus SBUS et, d'une manière plus caractéristique, qui inclut une demande d'accès provenant du processeur central 12. A cet égard, on notera en outre que par conséquent, dans des conditions normales, c'est-à-dire lorsqu'aucune autre demande n'a été modifiée de manière à posséder une priorité élevée, alors l'ordinateur central 12 possède la priorité maximale. Par conséquent, on considère qu'habituellement il existe des intervalles suffisants entre les instants o le processeur central 12 demande l'accès à la mémoire et, pendant ces intervalles, les demandes d'accès provenant d'autres
sources peuvent être traitées avec leur priorité normale.
Cependant, dans le cas o ces intervalles ne sont pas suffisants, le système de priorité de la forme de réalisation préférée sert en outre à traiter la priorité de ces autres demandes d'accès de sorte qu'elles sont également traitées sans poser des problèmes de blocage dans le système. Pour en terminer avec les priorités de la forme de réalisation préférée telles qu'indiquées dans le tableau 2, notera qu'une demande d'accès pour un transfert de la mémoire flash 26 à la mémoire SDRAM 24 reçoit toujours la
priorité la plus faible (priorité 8).
Conformément à un autre aspect selon l'invention inclus de préférence dans le contrôleur de trafic 18, la figure 10 illustre un procédé 90 également exécuté par l'ensemble dispositif de traitement de priorités/automate fini 18d et a trait à des demandes en salve. Au départ, on notera également que le procédé 90 est exécuté en parallèle avec le procédé 80 décrit en référence à la figure 9. Le procédé 90 commence par un pas 92, lors duquel une demande
d'accès mémorisée dans la pile de demandes 18c est sélec-
tionnée pour son analyse par l'ensemble dispositif de trai-
tement de priorités/automate fini 18d. Ensuite, lors du pas
94, l'ensemble dispositif de traitement de priorités/auto-
mate fini 18d détermine si la demande d'accès en attente est une demande en salve et s'il en est ainsi, détermine si la taille S de la demande en octets-est supérieure à une
taille de base prédéterminée B d'octets. A titre d'exem-
ples, on suppose que B est égale à huit. Si S est supérieur à B, alors le procédé 90 continue par le pas 96, tandis que si S est égal ou inférieur à B, alors le procédé 90 revient au pas 92 et de ce fait procède à l'analyse de la demande
d'accès suivante en attente.
Lors du pas 96, l'ensemble dispositif de traitement de priorités/automate fini 18d divise efficacement la demande en salve provenant du pas 94 en de multiples demandes en salve. Les avantages de cette opération vont être décrits plus loin, et tout d'abord on va décrire la technique de la forme de réalisation préférée pour la division de la demande. De préférence, cette opération est exécutée en remplaçant la demande en salve à partir du pas 94, avec des demandes en salve S/B, chaque demande en salve de remplacement concernant une salve de B octets. Par exemple, on suppose que le pas 94 est exécuté pour une demande en salve ayant une taille S égale à 32 octets. Dans ce cas, S est supérieure à B (c'est-à-dire que l'on a 32 > 8) et le procédé continue par le pas 96. Lors
du pas 96 dans cet exemple, l'ensemble dispositif de trai-
tement de priorités/automate fini 18d remplace la demande d'accès à 32 octets par quatre demandes en salve d'accès (c'est-à-dire que l'on a S/B = 32/8 = 4), lors desquelles chaque nouvelle demande a trait à une salve de 8 octets
(c'est-à-dire B = 8).
Dans une forme de réalisation préférée, dans laquelle le dispositif de commande de trafic 18 comprend un contrôleur 18a de la mémoire DRAM décrite ci-dessus, on notera en outre que les demandes subdivisées sont désignées de telle manière qu'elles peuvent être identifiées par le contrôleur 18a de la mémoire DRAM comme concernant des demandes en salve successives et permettre un rendement supérieur en rapport avec la transmission d'adresses. De façon spécifique, lorsqu'une demande en salve est subdivisée en de multiples demandes, alors la première demande est désignée comme étant la demande REQ envoyée au contrôleur 18a de la mémoire DRAM, et est codée comme cela est représenté ultérieurement dans le tableau 5. D'une manière générale, pour chacune des multiples demandes restantes, chacune est désignée comme étant une demande séquentielle SREQ pour le contrôleur 18a de la mémoire DRAM. Par conséquent, dans l'exemple o une demande en salve provenant d'une source Si est subdivisée en quatre demandes, alors les demandes délivrées par le contrôleur de trafic 18 au contrôleur 18a de la mémoire DRAM sont: (1) REQ[sl]; (2) SREQ[sl]; (3) SREQ[sl]; (4) SREQ[sl]. En ce qui concerne l'avantage qu'il y a d'effectuer cette distinction, on se rappellera d'une manière générale que le contrôleur 18a de la mémoire DRAM fonctionne dans certains cas de manière à maintenir actives des rangées dans la mémoire SDRAM 24 pour des accès successifs. Dans le présent contexte, on notera que, lorsque le contrôleur 18a de la mémoire DRAM reçoit une demande SREQ, on sait, sur la base de cette désignation, que cette demande concerne un groupe de données qui succède directement à une demande immédiatement précédente. Deux avantages sont par conséquent liés à cet aspect. Tout d'abord, dans la forme de réalisation préférée, une adresse additionnelle n'est pas transmise par le contrôleur de trafic 18 au contrôleur 18a de la mémoire DRAM pour une demande SREQ, ce qui réduit le temps système. En second lieu, en utilisant un incrément de l'adresse à laquelle l'accès est actuellement réalisé, le compteur 18a de la mémoire DRAM est à même de déterminer si les données recherchées par la demande SREQ sont situées dans la même rangée que celles actuellement active et, s'il en est ainsi, déclenche l'accès à ces données sans précharger la rangée entre l'instant de l'accès précédent
et l'instant de l'accès correspondant à l'accès SREQ.
Cependant, on notera finalement que dans la forme de réalisation préférée, le contrôleur 18a de la mémoire DRAM peut déterminer à partir de l'adresse à laquelle l'accès est actuellement réalisé, ainsi qu'à partir du nombre d'accès SREQ successifs et à partir de la taille de la salve, si un dépassement de page est apparu; si un dépassement de page est apparu, alors le contrôleur 18a de la mémoire DRAM déclenche la précharge de la rangée, à laquelle l'accès est actuellement réalisé, puis active la
rangée suivante qui correspond à la demande SREQ.
De même dans la forme de réalisation préférée et compte tenu de la capacité de traitement de priorités de l'ensemble dispositif de traitement de priorités/automate fini 18d, on notera que de multiples demandes résultant d'une demande en salve subdivisée peuvent être traitées différemment en ce qui concerne les désignations REQ et SREQ si une demande de priorité plus élevée provenant d'une source est reçue par le contrôleur de trafic 18 alors que les demandes subdivisées sont encore en attente. En particulier, dans un tel cas, la désignation REQ est à nouveau appliquée à la première des demandes multiples, mais également à la première demande qui suit une demande de priorité plus élevée insérée. Par exemple, on suppose à nouveau qu'une première demande en salve provenant d'une source sl est subdivisée en quatre demandes, mais on suppose également qu'une demande de priorité plus élevée est revue après que la seconde des quatre demandes subdivisées a été envoyée au contrôleur 18a de la mémoire DRAM. Dans ce cas, la séquence de demandes envoyée au contrôleur 18a de la mémoire DRAM sont: (1) REQ[S1]; (2) SREQ[S1]; (3) REQ[S2]; (4) REQ[S1]; SREQ[S1]. Par conséquent, on peut noter que la demande (2) est une demande successive pour la même adresse de rangée que la demande (1), et la demande (5) est une demande successive pour la même adresse de rangée que la demande (4); cependant une demande à priorité plus élevée (3) est insérée entre les demandes (2) et (4). Par conséquent à nouveau chaque demande SREQ est traitée de la manière décrite précédemment et par conséquent ne requiert pas l'envoi d'une adresse au contrôleur 18a de la mémoire DRAM, et peut par conséquent conduire à une même rangée que celle à laquelle l'accès a été réalisé par la ou les demandes,
qui la précède.
En conclusion après le pas 96, le procédé 90 revient au pas 92 pour analyser la demande d'accès en attente suivante. Enfin, en liaison avec le pas 96, on notera que dans l'exemple précédent on suppose que B réalise une division uniforme en S. Cependant, lorsque ce n'est pas le cas, le pas 96 remplace alors de préférence la simple demande d'accès par un nombre entier de demandes en salve égal à la partie entière de S/B plus un, chacune des demandes S/B concernant une salve de B octets, et la
demande additionnelle a trait au nombre restant d'octets.
Par exemple, pour une demande en salve DMA en attente avec S égal 35, alors le pas 96 remplace cette demande par quatre demandes d'accès recherchant chacune une salve de 8 octets, et une cinquième demande d'accès avec une salve de
3 octets.
Suite à la description du procédé 90, on notera
qu'il fournit des avantages uniques lorsqu'il est combiné à la possibilité de maintenir des rangées actives comme cela a été décrit en référence au contrôleur 18a de la mémoire DRAM, indiqué ci-dessus, et en outre en combinaison avec les aspects concernant les priorités, décrits en référence aux figures 7 et 8. Pour apprécier ceci, on se rappellera
que dans le début de la description concernant l'arrière-
plan technologique de l'invention, on a indiqué de quelle manière la taille des salves peut affecter le rendement. De façon spécifique, on a indiqué qu'une solution de l'art antérieur consistant à augmenter les tailles des salves pour éviter une pénalité du point de -vue du temps système, mais cette solution entraîne également des problèmes lorsqu'une salve de longue durée empêche l'accès d'autres circuits à la mémoire pendant la salve. Au contraire, on notera que le procédé 90 permet de subdiviser une demande en salve de grande longueur en de nombreuses salves plus petites. Cependant, s'il n'existe aucune demande de priorité plus élevée en attente, alors conformément aux enseignements de la présente invention, ces salves plus petites peuvent être envoyées continûment par le contrôleur DMA au contrôleur de la mémoire DRAM. En outre, étant donné que les salves accèdent à des emplacements de mémoire contigus, il est probable que chacune des petites salves successives accède à une rangée dans la mémoire SDRAM 24, qui est maintenue active, de sorte qu'il n'existe aucun temps système entre des accès successifs correspondant aux différentes salves successives. En outre, en tout point quelconque o la demande de priorité plus élevée est reçue par le contrôleur DMA, la présente invention réalise effectivement une interruption efficace de ce qui était une longue salve. De façon spécifique, étant donné que la longue salve a été subdivisée en de multiples salves plus petites, lorsqu'une demande à priorité plus élevée peut être insérée entre les apparitions de deux des petites salves et lorsqu'une demande de priorité plus élevée est traitée, les petites salves successives peuvent à nouveau être traitées jusqu'à ce que toutes ces petites salves soient complètes. Par conséquent, de cette manière, la demande de priorité est en réalité insérée au milieu de ce qui était initialement une demande en salve de longue durée, et il est probable que la salve est susceptible de redémarrer avec un temps système minimum. Par conséquent, en conclusion, les aspects selon la présente invention se combinent dans de nombreux cas pour permettre une salve effective plus longue, et dans d'autres cas pour permettre le traitement de demandes de priorités plus élevées sans avoir à attendre l'achèvement de la fin d'une salve degrande longueur.
Après avoir indiqué de façon détaillée diffé-
rentes fonctions générales et spécifiques du contrôleur de trafic 18 en rapport avec la mémoire SDRAM 24, on va main- tenant présenter les différents ports et signaux destinés à montrer à un spécialiste de la technique un mode selon
lequel différentes opérations parmi les opérations précé-
dentes peuvent être réalisées. A cet égard, le tableau 3 donné ci- après recense les ports de l'interface générale reliant le contrôleur de trafic 18 à la mémoire SDRAM 24:
Tableau 3
Nom de Type
broche (I=entrée, O=sortie Description
ou I/O= entrée/sortie) SDRAMDATA[15:0] I/O Bus de transmission de données à 16 bits SDRAMADDR[13:0] O Bus de transmission d'adresses multiplexées à 14 bits SDRAMCLK O Horloge du système CKE O Validation d'horloge pour le débranchement et l'auto-régénération /RAS O Echantillonnage d'adresse de ligne /CAS O Echantillonnage d'adresse de colonne /WE O Autorisation d'écriture DQML, DQMU O Masquage d'un octet de données CS I Sélection de plaquette CLK I Horloge SDRAM En outre les signaux indiqués ci-après dans le tableau 4 illustrent le mode selon lequel la forme de réalisation préférée du contrôleur de trafic 18 présente des demandes d'accès à la mémoire SDRAM 24 en réponse à des demandes d'accès présentées au contrôleur de trafic 18 à partir des différents circuits qui peuvent réaliser un accès DMA ou un accès direct (par exemple le processeur central 12, le processeur DSP 14a, un périphérique par l'intermédiaire de l'interface périphérique 14b, et un contrôleur vidéo ou LCD 20), tandis que le tableau 5 donné aussitôt après représente les états de ces signaux pour
l'exécution de différents types d'accès.
Tableau 4
Signal DESCRIPTION
DMAReq[3:0] Un bit par demande pour spécifier quel type de transfert est demandé dans le bus en direction/en provenance de la mémoire SDRAM 24 DMAReq_Dir Niveau bas pour une écriture de la mémoire SDRAM 24; niveau haut pour une lecture à partir de la mémoire SDRAM 24 DMA_Burst_Req_Size Indique la taille de la salve pour l'interruption de cette dernière après
le nombre précis d'accès spécifiés.
Tableau 5 DMAReq[3:0]* DMAReqDir DMA_ADDR Type d'accès 0000 x Aucun accès 0001(REQ) 0 DMAAddr[22:0] Ecriture de salve (1-8 accès) 0001(REQ) 1 DMA Addr[22:0] Lecture de salve (1-8 accès) (SREQ) 0 x Ecriture de
salve séquen-
tielle (1-8 accès) (SREQ) 1 x Lecture de salve séquentielle (1-8 accès)
x x Auto-
régénération 1000 0 SET-MODE SD Demande MRS RAM 1000 1 SET-MODESD Demande MRS RAM * Les accès sont produits par le contrôleur de trafic 18. Deux demandes présentées par le contrôleur de trafic 18 ne sont pas produites simultanément et par conséquent seul un bit est actif au même moment, ce qui évite d'avoir à décoder la demande. Avant que le contrôleur de trafic 18 envoie une demande suivante, il doit tout
d'abord recevoir un signal d'accord /SDRAMReqgrant.
L'accord signifie que la demande a été prise en compte et
est en cours de traitement.
** Les données DMA sont introduites dans le bus de transmission d'adresses SDRAM lorsque la commande MRS est exécutée pour programmer le registre de commande interne de
la mémoire SDRAM.
Lorsque la mémoire SETMODE_SDRAM est lue, les registres locaux pour le module du contrôleur de la mémoire SDRAM (pas le registre interne de la mémoire SDRAM) sont
lus.
Enfin le tableau 6 indiqué ci-après représente encore des signaux de commande supplémentaires et le bus de commande 24C entre le contrôleur de trafic 18 et la mémoire
SDRAM 24.
Tableau 6
Signal Description
SDRAM_ReqGrant Actif au niveau haut et indique que la demande d'accès à la mémoire SDRAM 24 a été accordée. L'adresse, la taille de la salve, l'octet/le mot et
la direction sont mémorisés locale-
ment et une nouvelle demande peut
ensuite être transmise en mode pipe-
line par le contrôleur de trafic 18.
SDRAMSave_Addr Indique le moment o le contrôleur de trafic 18 possède l'adresse pour la mise à jour du pointeur d'accès DMA
pour la salve suivante.
DMASingleAccessS Utilisation pour des accès unique et
ize combiné avec DMAADDR[0] pour pro-
duire des signaux de commande appropriés de manière à sélectionner
uniquement un seul octet d'un mot.
DMA_Addrin[22:0] Une adresse à 23 bits correspondant au début de la salve. DMAADDR[0] est
0 lors d'accès en salve.
SDRAM_Data_Ready_ Signal actif au niveau haut reçu par WriteDone le contrôleur de trafic 18 pour indiquer que l'opération effectuée sur les données est en cours et est exécutée lors du flanc montant suivant. A partir de ce qui précède, on peut noter que les formes de réalisation indiquées précédemment réduisent le temps de retard d'accès à la mémoire et peuvent être mises en oeuvre dans un contrôleur de mémoire DRAM, dans un système DMA, ou dans les deux, et tout cas fournit diffé- rents perfectionnements par rapport à l'art antérieur. En plus des enseignements indiqués précédemment, on notera également que, bien que les présentes formes de réalisation aient été décrites de façon détaillée, différents remplacements, changements et modifications peuvent y être apportés sans sortir du cadre de l'invention. Par exemple, différents signaux de commande peuvent être utilisés pour obtenir la fonctionnalité décrite, en particulier si un type différent de mémoire est mis en oeuvre dans la commande DRAM. Comme autre exemple, bien que les figures 4, 8 et 9 représentent d'une manière générale des procédés séquentiels au moyen d'organigrammes, on comprendra que la forme de réalisation préférée met en oeuvre des automates finis pour exécuter ces pas de traitement et que par conséquent la procédure peut s'effectuer vers d'autres états à partir de chaque état plutôt que d'une manière
séquentielle comme cela est représenté dans l'organigramme.
Comme autre exemple, bien que différentes considérations du point de vue priorité ont été indiquées, on peut prendre en compte d'autres considérations pour réduire le temps de retard, comme par exemple un réarrangement de l'ordre des
priorités pour certaines des sources indiquées précédem-
ment, ou bien par exemple l'exclusion de certaines des sources ou l'insertion d'autres sources dans le système à priorité (par exemple le processeur DSP 14a). Comme autre exemple, la plate-forme 10 de traitement de données sans fil est un schéma-bloc général. Par conséquent, on peut y inclure des caractéristiques additionnelles et on peut y
apporter des modifications, bien que de telles modifica-
tions ne soient pas représenté-es pour simplifier l'illustration et orienter la discussion ultérieure sur la mémoire DRAM et sur des aspects de commande DMA. A titre de résumé de caractéristiques non représentées, mais envisagées, la plate- forme 10 peut comprendre un contrôleur d'entrée/sortie I/O et une mémoire additionnelle telle qu'une mémoire RAM/ROM. En outre, une pluralité de dispositifs pourraient être couplés à la plate-forme 10 de traitement de données sans fil soit par l'intermédiaire d'un contrôleur I/O, soit sous la forme de périphériques par l'intermédiaire d'une interface périphérique 14b. De tels dispositifs peuvent inclure une carte à puce, un clavier, une souris, un ou plusieurs ports en série tels qu'un port de bus série universel ("USB") ou un port série d'interface RS232. A titre d'exemples de modifications particulières apportées à la plate-forme 10, les mémoires caches séparées du processeur 12 et du processeur DSP 14a pourraient être combinées sous la forme d'une mémoire cache unifiée. En outre, un circuit d'accélération matériel est un élément optionnel permettant d'accélérer l'exécution de langages tels que JAVA. Cependant, ce circuit n'est pas nécessaire pour le fonctionnement du dispositif. Enfin, bien que dans la forme de réalisation représentée on ait représenté un seul processeur DSP, on pourrait coupler aux bus de multiples processeurs DSP (ou d'autres coprocesseurs). A titre d'exemple final, la plate-forme 10 est indiquée uniquement à titre d'illustration, et on peut comprendre que de nombreux aspects de l'invention peuvent être mis en oeuvre dans d'autres systèmes possédant soit une commande de mémoire DRAM, soit une commande DMA, ou
bien ces deux commandes. Par conséquent, la description
précédente, ses exemples et d'autres caractéristiques pouvant être établies par un spécialiste de la technique sur la base des enseignements fournis par la présente
invention contribuent à illustrer cette dernière.

Claims (25)

REVENDICATIONS
1. Contrôleur d'accès de trafic en mémoire (18), apte à répondre à une pluralité de demandes pour réaliser l'accès à une mémoire (24), caractérisé en ce qu'il comporte: un circuit (18d) pour associer, pour chaque demande de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande; un circuit (18b, 18d, 18e, 18f) pour modifier la valeur initiale de priorité pour certaines sélectionnées de la pluralité de demandes, en une valeur de priorité différente; et un circuit (18d) pour délivrer un signal pour provoquer l'accès à la mémoire (24) en réponse à une demande parmi la pluralité de demandes possédant une valeur
de priorité maximale.
2. Contrôleur d'accès de trafic en mémoire selon la revendication 1, caractérisé en ce que: une demande d'accès à la mémoire (24) comprend une demande d'accès à la mémoire pour des données vidéo; et le circuit (18b, 18d, 18e, 18f) servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur provenant d'un circuit de mémoire (18b) servant à mémoriser des données vidéo, l'indicateur représentant un niveau de vide
du circuit de mémoire.
3. Contrôleur d'accès de trafic en mémoire selon la revendication 2, caractérisé en ce que: le circuit de mémoire (18b) comprend un circuit de mémoire premier entré - premier sorti; et l'indicateur indique qu'une quantité de données vidéo dans le circuit de mémoire premier entré premier sorti (18b) se situe à-delà d'un seuil de mémoire du
circuit de mémoire premier entré - premier sorti.
4. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire (24) comprend une demande d'accès à la mémoire présentée par un circuit périphérique (14b), et le circuit (18b, 18d, 18e, 18f) pour modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à la mémoire (24) présentée par
un circuit périphérique (14b) est en attente.
5. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire (24) comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire; et le circuit (18b, 18d, 18e, 18f) servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière est en attente.
6. Contrôleur d'accès de trafic en mémoire selon la revendication 5, caractérisé en ce que: il comporte en outre un circuit pour délivrer périodiquement une salve de demandes pour accéder à la mémoire pour l'exécution d'une régénération de la mémoire, la salve de demandes comprenant la demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, et le circuit (18b, 18d, 18e, 18f) pour modifier la valeur de priorité initiale en une valeur de priorité différente modifie la priorité initiale de n'importe quelle demande faisant partie de la salve de demandes d'accès à la mémoire pour l'exécution d'une régénération de la mémoire sont en attente après l'expiration d'un intervalle de temps prédétermine.
7. Contrôleur d'accès de trafic en mémoire selon la revendication 6, caractérisé en ce qu'il comporte en outre un dispositif de mémoire programmable servant à indiquer un certain nombre de demandes devant être contenues dans la salve de demandes pour l'accès à la mémoire pour l'exécution d'une régénération de cette dernière.
8. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que le circuit (18b, 18d, 18e, 18f) servant à modifier de façon sélective la valeur de priorité initiale en une valeur de priorité différente ne modifie pas la valeur de priorité initiale si la demande d'accès à la mémoire est
exécutée par un processeur central (12).
9. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire comprend une demande visant à accéder à des données vidéo dans la mémoire, le circuit (18b, 18d, 18e, 18f) servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur délivré par un circuit de mémoire servant à mémoriser des données vidéo, l'indicateur représentant un niveau de vide du circuit de mémoire, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par le circuit périphérique, le circuit (18b, 18d, 18e, 18f) servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps pendant lequel la demande d'accès à-la mémoire présentée par un circuit périphérique (14b) est en attente; une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière; et le circuit (18b, 18d, 18e, 18f) servant à modifier la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière est en
attente.
10. Contrôleur d'accès de trafic en mémoire selon la revendication 9, caractérisé en ce que le circuit (18b, 18d, 18e, 18f) servant à modifier sélectivement la valeur de priorité initiale en une valeur de priorité différente ne modifie pas la valeur de priorité initiale si la demande d'accès à la mémoire est exécutée par un processeur central (12).
11. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire (24) comprend une demande pour l'accès à des données vidéo dans la mémoire, une demande d'accès à la mémoire (24) comprend une demande d'accès à la mémoire par un processeur central (12), et la priorité initiale correspondant à la demande d'accès à des données vidéo dans la mémoire est une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la mémoire effectuée par le processeur
central (12).
12. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la -mémoire comprend une demande d'accès à la mémoire par un circuit périphérique (14b), une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un processeur central (12), et la priorité initiale correspondant à la demande d'accès à la mémoire (24) présentée par un circuit périphérique (14b) a une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la mémoire
présentée par le processeur central.
13. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un processeur central (12), et la priorité initiale correspondant à la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière possède une priorité inférieure à la priorité initiale correspondant à la demande d'accès à la
mémoire présentée par le processeur central (12).
14. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce que: une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un circuit périphérique (14b), une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un processeur central (12), une demande d'accès à la mémoire comprend une demande d'accès à des données vidéo contenues dans la mémoire, et la priorité initiale correspondant à la demande d'accès à la mémoire présentée par le processeur central (12) est supérieure à chacune des priorités correspondant respectivement à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par un circuit périphérique (14b), à la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière et à la
demande d'accès à des données vidéo dans la mémoire.
15. Contrôleur d'accès de trafic en mémoire selon la revendication 14, caractérisé en ce que: la priorité initiale correspondant à la demande d'accès à la mémoire (24) présentée par le processeur central (12) est supérieure à la priorité initiale correspondant à la demande d'accès à la mémoire présentée par un circuit périphérique (14b), la priorité initiale correspondant à la demande d'accès à la mémoire par un circuit périphérique (14b) est supérieure à la priorité initiale correspondant à la demande d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, et la priorité initiale correspondant à la demande d'accès à la mémoire (24) pour l'exécution d'une régénération de la mémoire est supérieure à la priorité initiale correspondant à la demande d'accès à des données
vidéo dans la mémoire.
16. Contrôleur d'accès de trafic en mémoire selon
l'une quelconque des revendications 1 à 3, caractérisé en
ce qu'il comprend en outre: un circuit pour détecter qu'une demande reçue d'accès à la mémoire est une demande d'accès en salve, et un circuit de conversion- pour convertir la demande d'accès en salve en une pluralité de demandes
d'accès en salve.
17. Contrôleur d'accès de trafic en mémoire selon la revendication 16, caractérisé en ce que le circuit de conversion convertit la demande d'accès en salve en une pluralité de demandes d'accès en salve si la demande d'accès en salve concerne une salve de quantités de données S, qui dépasse un nombre d'octets B.
18. Contrôleur d'accès de trafic en mémoire selon la revendication 16, caractérisé en ce que le circuit de conversion convertit la demande d'accès en salve en un nombre entier N de demandes d'accès en salve, N étant égal à S divisé par B si B est divisé également en S.
19. Système de calcul, caractérisé en ce qu'il comporte: une mémoire (24); un contrôleur (18) d'accès de trafic en mémoire apte à répondre à une pluralité de demandes pour l'accès à la mémoire, et comportant: un circuit (18b) pour associer, pour chacune de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande, un circuit (18b, 18d, 18e, 18f) pour modifier la valeur de priorité initiale pour des demandes sélectionnées parmi la pluralité de demandes en une valeur de priorité différente; et un circuit (18b) servant à délivrer un signal pour réaliser l'accès à la mémoire en réponse à une demande faisant partie de la pluralité de demandes possédant une
valeur de priorité maximale.
20. Procédé pour faire fonctionner un contrôleur (18) d'accès de trafic en mémoire apte à répondre à une pluralité de demandes d'accès à une mémoire, caractérisé en ce qu'il comprend les étapes consistant à: associer, pour chacune de la pluralité de demandes, une valeur de priorité initiale correspondant à la demande; modifier la valeur de priorité initiale pour des demandes sélectionnées faisant partie de la pluralité de demandes en une valeur de priorité différente; et délivrer un signal pour déclencher l'accès à la mémoire en réponse à une demande parmi la pluralité de
demandes possédant une valeur de priorité maximale.
21. Procédé selon la revendication 20, caractérisé en ce que: une demande d'accès à la mémoire (24) comprend une demande d'accès à des données vidéo dans la mémoire, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un indicateur délivré par un circuit de mémoire servant à mémoriser des données vidéo, l'indicateur représentant un
niveau de vide du circuit de mémoire.
22. Procédé selon la revendication 21, caractérisé en ce que: le circuit de mémoire (18b) comprend un circuit premier entré - premier sorti, et l'indicateur indique qu'une quantité de données vidéo dans le circuit de mémoire premier entré - premier sorti est supérieure à un seuil de mémorisation du circuit
de mémoire premier entré - premier sorti.
23. Procédé selon la revendication 20, caractérisé en ce que: une demande d'accès à la mémoire comprend une demande d'accès à la mémoire présentée par un circuit périphérique (14b), et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire présentée par le circuit périphérique (14b)
est en attente.
24. Procédé selon la revendication 23, caractérisé en ce que: une demande d'accès à la mémoire comprend une demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente est sensible à un intervalle de temps, pendant lequel la demande d'accès à la mémoire pour l'exécution d'une régénération de cette
dernière est en attente.
25. Procédé selon la revendication 24, caractérisé en ce qu'il comprend en outre: la délivrance périodique d'une salve de demandes
pour l'accès à la mémoire pour l'exécution d'une régénéra-
tion de cette dernière, la salve de demandes comprenant la demande d'accès à la mémoire pour l'exécution d'une régénération de cette dernière, et l'étape de modification de la valeur de priorité initiale en une valeur de priorité différente modifie la priorité initiale de n'importe quelle demande de la salve de demandes d'accès à la mémoire pour l'exécution d'une régénération de la mémoire, qui sont en attente après
l'expiration d'un intervalle de temps prédéterminé.
FR9805423A 1997-12-05 1998-04-29 Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces Pending FR2778258A1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
FR9805423A FR2778258A1 (fr) 1998-04-29 1998-04-29 Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
US09/170,834 US6253297B1 (en) 1998-04-29 1998-10-13 Memory control using memory state information for reducing access latency
US09/189,080 US6412048B1 (en) 1998-04-29 1998-11-09 Traffic controller using priority and burst control for reducing access latency
EP98309957A EP0940757A3 (fr) 1997-12-05 1998-12-04 Dispositif de commande de trafic avec commande de priorité et rafale pour la réduction de temps de latence d'accès
JP10377030A JPH11345165A (ja) 1997-12-05 1998-12-07 アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
US10/166,160 US6934820B2 (en) 1998-04-29 2002-06-10 Traffic controller using priority and burst control for reducing access latency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9805423A FR2778258A1 (fr) 1998-04-29 1998-04-29 Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces

Publications (1)

Publication Number Publication Date
FR2778258A1 true FR2778258A1 (fr) 1999-11-05

Family

ID=9525848

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9805423A Pending FR2778258A1 (fr) 1997-12-05 1998-04-29 Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces

Country Status (2)

Country Link
US (3) US6253297B1 (fr)
FR (1) FR2778258A1 (fr)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
US7065050B1 (en) * 1998-07-08 2006-06-20 Broadcom Corporation Apparatus and method for controlling data flow in a network switch
US6510497B1 (en) * 1998-12-09 2003-01-21 Advanced Micro Devices, Inc. Method and system for page-state sensitive memory control and access in data processing systems
TW457430B (en) * 1999-03-02 2001-10-01 Via Tech Inc Memory access control device
JP2000330965A (ja) * 1999-03-17 2000-11-30 Hitachi Ltd マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
JP3324572B2 (ja) * 1999-03-30 2002-09-17 三菱電機株式会社 情報処理装置並びにコンピュータに実行させるためのプログラムを記録した記録媒体
US6504549B1 (en) * 1999-05-19 2003-01-07 Ati International Srl Apparatus to arbitrate among clients requesting memory access in a video system and method thereof
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US7017020B2 (en) * 1999-07-16 2006-03-21 Broadcom Corporation Apparatus and method for optimizing access to memory
GB2357602A (en) * 1999-12-22 2001-06-27 Nokia Mobile Phones Ltd Memory controller for a memory array comprising different memory types
US6470433B1 (en) * 2000-04-29 2002-10-22 Hewlett-Packard Company Modified aggressive precharge DRAM controller
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
US6629075B1 (en) * 2000-06-09 2003-09-30 Speechworks International, Inc. Load-adjusted speech recogintion
US6745293B2 (en) 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
US6463001B1 (en) * 2000-09-15 2002-10-08 Intel Corporation Circuit and method for merging refresh and access operations for a memory device
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
US7224775B1 (en) * 2000-12-29 2007-05-29 Cisco Technology, Inc. System and method for providing prioritized access to a messaging system
WO2002095601A1 (fr) * 2001-05-22 2002-11-28 Koninklijke Philips Electronics N.V. Procede et systeme d'acces accelere a une memoire
US7016987B2 (en) * 2001-06-21 2006-03-21 Integrated Device Technology, Inc. Transaction aligner microarchitecture
US6806881B2 (en) 2001-09-18 2004-10-19 Seiko Epson Corporation Graphics controller for high speed transmission of memory read commands
US20030097582A1 (en) * 2001-11-19 2003-05-22 Yves Audebert Method and system for reducing personal security device latency
US6587390B1 (en) * 2001-12-31 2003-07-01 Lsi Logic Corporation Memory controller for handling data transfers which exceed the page width of DDR SDRAM devices
US6766385B2 (en) * 2002-01-07 2004-07-20 Intel Corporation Device and method for maximizing performance on a memory interface with a variable number of channels
TWI235919B (en) * 2002-03-05 2005-07-11 Via Tech Inc Data-transmission control method
TWI258081B (en) * 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
ITRM20020281A1 (it) * 2002-05-20 2003-11-20 Micron Technology Inc Metodo ed apparecchiatura per accesso rapido di memorie.
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US20040003164A1 (en) * 2002-06-27 2004-01-01 Patrick Boily PCI bridge and data transfer methods
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
JP4077295B2 (ja) * 2002-10-23 2008-04-16 株式会社東芝 同期型半導体記憶装置及びその動作方法
CN1882928B (zh) * 2003-12-09 2011-03-23 汤姆森特许公司 存储器控制器
US7624396B1 (en) * 2004-02-26 2009-11-24 Sun Microsystems, Inc. Retrieving events from a queue
US7433996B2 (en) * 2004-07-01 2008-10-07 Memocom Corp. System and method for refreshing random access memory cells
ATE400848T1 (de) * 2004-08-17 2008-07-15 Koninkl Philips Electronics Nv Verarbeitungsvorrichtung mit burst-lese- und - schreiboperationen
US7272070B2 (en) * 2004-12-21 2007-09-18 Infineon Technologies Ag Memory access using multiple activated memory cell rows
US20060271739A1 (en) * 2005-05-24 2006-11-30 Shu-Fang Tsai Management of transfer of commands
KR100640722B1 (ko) * 2005-10-05 2006-11-01 삼성전자주식회사 반도체 제어장치, 반도체 장치, 및 이들을 구비하는 시스템
US8259739B2 (en) * 2005-10-31 2012-09-04 Cisco Technology, Inc. Scatter and gather scheme for aggregating multiple high speed point-to-point interfaces
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
JP4936506B2 (ja) * 2005-12-08 2012-05-23 ルネサスエレクトロニクス株式会社 メモリ制御回路及びメモリ制御方法
KR100700156B1 (ko) * 2006-02-22 2007-03-28 삼성전자주식회사 다이나믹 메모리의 리프레쉬 컨트롤러, 이를 포함하는반도체 시스템 및 다이나믹 메모리의 리프레쉬 제어 방법.
KR100810060B1 (ko) * 2006-04-14 2008-03-05 주식회사 하이닉스반도체 반도체 메모리 소자 및 그의 구동방법
JP5233541B2 (ja) * 2008-09-17 2013-07-10 セイコーエプソン株式会社 メモリ制御回路、電子機器制御装置、および、複合機
US8499201B1 (en) 2010-07-22 2013-07-30 Altera Corporation Methods and systems for measuring and presenting performance data of a memory controller system
JP5759276B2 (ja) * 2011-06-09 2015-08-05 キヤノン株式会社 処理装置及び情報処理方法
US8627021B2 (en) 2011-08-31 2014-01-07 Qualcomm Incorporated Method and apparatus for load-based prefetch access
WO2013046607A1 (fr) * 2011-09-29 2013-04-04 パナソニック株式会社 Dispositif de commande
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9336112B2 (en) * 2012-06-19 2016-05-10 Apple Inc. Parallel status polling of multiple memory devices
JP6053384B2 (ja) * 2012-08-08 2016-12-27 キヤノン株式会社 情報処理装置、メモリ制御装置およびその制御方法
US9141561B2 (en) 2012-10-25 2015-09-22 Texas Instruments Incorporated Master circuits having dynamic priority leads coupled with memory controller
US9047198B2 (en) 2012-11-29 2015-06-02 Apple Inc. Prefetching across page boundaries in hierarchically cached processors
US9846663B2 (en) 2013-03-22 2017-12-19 Nxp Usa, Inc. Method of controlling direct memory access of a peripheral memory of a peripheral by a master, an associated circuitry, an associated device and an associated computer program product
US9229894B2 (en) * 2013-04-09 2016-01-05 Apple Inc. Protocol conversion involving multiple virtual channels
US9563369B2 (en) 2014-04-14 2017-02-07 Microsoft Technology Licensing, Llc Fine-grained bandwidth provisioning in a memory controller
GB2530017B (en) * 2014-08-26 2020-05-13 Advanced Risc Mach Ltd Double pumped memory techniques
US9990294B2 (en) 2016-02-24 2018-06-05 Apple Inc. Methods for performing a memory resource retry
KR102547795B1 (ko) * 2016-05-04 2023-06-27 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
WO2020226878A1 (fr) * 2019-05-03 2020-11-12 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Procédé et appareil pour déplacer des données d'une mémoire proche à une mémoire éloignée sur une interconnexion lente pour des applications irrégulières surexploitées

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829467A (en) * 1984-12-21 1989-05-09 Canon Kabushiki Kaisha Memory controller including a priority order determination circuit
WO1989005012A1 (fr) * 1987-11-16 1989-06-01 Intel Corporation Unite de commande de memoire pour un processeur de signaux video
US4858107A (en) * 1985-03-11 1989-08-15 General Electric Company Computer device display system using conditionally asynchronous memory accessing by video display controller
WO1993001553A1 (fr) * 1991-07-08 1993-01-21 Seiko Epson Corporation Architecture de microprocesseur pouvant prendre en charge plusieurs processeurs heterogenes
US5617545A (en) * 1992-06-10 1997-04-01 Hitachi, Ltd. Arbitration circuit capable of changing the priority and arrival time of nonselected requests

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7510904A (nl) * 1975-09-17 1977-03-21 Philips Nv Woordgroepsprioriteitsinrichting.
JPS58222361A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
JP2596180B2 (ja) * 1990-05-28 1997-04-02 日本電気株式会社 半導体集積メモリ回路
US5301299A (en) 1990-06-07 1994-04-05 Intel Corporation Optimized write protocol for memory accesses utilizing row and column strobes
EP0482575A3 (en) 1990-10-26 1992-05-27 Samsung Semiconductor, Inc. Storage system for a high-performance processor
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
US6175901B1 (en) * 1994-04-15 2001-01-16 Micron Technology, Inc. Method for initializing and reprogramming a control operation feature of a memory device
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5651138A (en) 1994-08-31 1997-07-22 Motorola, Inc. Data processor with controlled burst memory accesses and method therefor
US5752266A (en) * 1995-03-13 1998-05-12 Fujitsu Limited Method controlling memory access operations by changing respective priorities thereof, based on a situation of the memory, and a system and an integrated circuit implementing the method
JPH08328941A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
US5805905A (en) * 1995-09-06 1998-09-08 Opti Inc. Method and apparatus for arbitrating requests at two or more levels of priority using a single request line
US6081852A (en) * 1996-04-26 2000-06-27 Texas Instruments Incorporated Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list
US6094696A (en) * 1997-05-07 2000-07-25 Advanced Micro Devices, Inc. Virtual serial data transfer mechanism
US5889714A (en) * 1997-11-03 1999-03-30 Digital Equipment Corporation Adaptive precharge management for synchronous DRAM
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6349120B1 (en) * 1998-09-01 2002-02-19 Hughes Electronics Corporation Method for improving spectral sampling using sub-burst discreet fourier transforms

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829467A (en) * 1984-12-21 1989-05-09 Canon Kabushiki Kaisha Memory controller including a priority order determination circuit
US4858107A (en) * 1985-03-11 1989-08-15 General Electric Company Computer device display system using conditionally asynchronous memory accessing by video display controller
WO1989005012A1 (fr) * 1987-11-16 1989-06-01 Intel Corporation Unite de commande de memoire pour un processeur de signaux video
WO1993001553A1 (fr) * 1991-07-08 1993-01-21 Seiko Epson Corporation Architecture de microprocesseur pouvant prendre en charge plusieurs processeurs heterogenes
US5617545A (en) * 1992-06-10 1997-04-01 Hitachi, Ltd. Arbitration circuit capable of changing the priority and arrival time of nonselected requests

Also Published As

Publication number Publication date
US6412048B1 (en) 2002-06-25
US6253297B1 (en) 2001-06-26
US6934820B2 (en) 2005-08-23
US20020194441A1 (en) 2002-12-19

Similar Documents

Publication Publication Date Title
FR2778258A1 (fr) Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
EP0757465A1 (fr) Circuit HDLC à bus interne partage
EP2366147A1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
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.
FR2625340A1 (fr) Systeme graphique avec controleur graphique et controleur de dram
FR2752466A1 (fr) Dispositif processeur integre de signaux numeriques
FR2538976A1 (fr) Systeme de commutation de paquets synchrones de longueur fixe
FR2645666A1 (fr) Procede pour transferer des donnees par salves dans un microprocesseur
EP1081598B1 (fr) Dispositif à plusieurs processeurs partageant une mémoire collective
EP1530132A2 (fr) Procédé d'arbitrage de l'accès à une ressource partagée
FR2632092A1 (fr) Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
EP1081597B1 (fr) Dispositif à plusieurs processeurs ayant une interface pour une mémoire collective
FR2536884A1 (fr) Reseau de transfert de donnees entre plusieurs processeurs et une memoire
FR2820874A1 (fr) Procede de gestion a acces aleatoire et rapide d'une memoire dram
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
FR2778255A1 (fr) Commande de memoire utilisant une information d'etat de memoire pour reduire le temps d'attente d'acces
JPH11345165A (ja) アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
US6260119B1 (en) Memory cache management for isochronous memory access
FR2800551A1 (fr) Decodeur mpeg utilisant une memoire partagee
FR2797970A1 (fr) Adressage d'une memoire
FR2865291A1 (fr) Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede
EP1081603A1 (fr) acces à une ressource collective
EP1341093B1 (fr) Accès à une ressource collective
EP0908828B1 (fr) Procédé et système contrôle d'accès partagés à une mémoire vive
EP1293909B1 (fr) Controle d'accès dynamique d'une fonction à une ressource collective.