Brevet FR2613095A1 — publié le 19880930

ORDINATEUR COMPORTANT UNE UNITE DE COMMANDE D'ACCES DIRECT EN MEMOIRE PROGRAMMABLE DESCRIPTION Domaine technique La présente invention concerne une unité de commande DMA (accès direct en mémoire) à utiliser dans un système de micro- ordinateur ou mini-ordinateur. La présente invention permet plus précisément de réaliser une unité de commande DMA avec laquelle des dispositifs périphériques dont le nombre est supérieur au nombre des canaux DMA physiques prévus dans le système, peuvent exécuter des transferts de données DMA. Art antérieur Beaucoup de systèmes d'ordinateur actuels utilisent des canaux DMA pour permettre à des dispositifs périphériques de transférer des données, principalement vers et depuis la mémoire principale, sans passer par l'unité CPU (unité centrale de traitement). L'évitement de l'unité CPU présente naturellement l'avantage d'augmenter les vitesses de transfert des données et d'améliorer l'efficacité globale du système en raison du fait que l'unité CPU est libre d'assurer d'autres tâches pendant le transfert des données. La pratique la plus commune à ce jour consiste à prévoir un canal DMA physique pour chaque unité périphérique à accès DMA. A titre d'exemple d'un système d'ordinateur qui utilise un tel agencement, cn peut citer l'ordinateur personnel IBM PC. Cependant, le nombre des dispositifs périphériques qu'un utilisateur peut raccorder à son système d'ordinateur, a été accru et l'on s'attend à ce que cela continue. Par exemple, dernièrement sont apparus des lecteurs de disques optiques, des dispositifs de communications supplémentaires, des fichiers sur disques durs, des dispositifs de support de bandes, des imprimantes à grande vitesse, etc..., tous ces dispositifs pouvant utiliser avantageusement l'accès DMA. D'autre part, l'addition d'autres canaux DMA physiques est coûteuse en matériel système, y compris en compte IC, en volume réservé aux cartes de circuits et en volume réservé aux bus. On a envisagé le partage de canaux DMA entre des dispositifs périphériques avec la restriction d'un fonctionnement mutuellement exclusif. Le partage des canaux DMA est utilisé par exemple dans les systèmes d'ordinateur IBM XT et AT. Ces concepts, bien que requérant des modifications importantes du système de fonctionnement comme des sous routines supplémentaires, doivent être utilisés pour empêcher les dispositifs périphériques associés à chaque canal DMA de fonctionner simultanément. Un problème de performances significatif se pose aussi lorsque des unités de commande de fichiers ne sont pas suffisamment "intelligentes" pour permettre des opérations de recherche en chevauchement. On s'accommode du problème dans certains cas, par exemple lorsqu'un dispositif LAN (réseau local) et une unité de commande de fichier partagent le même niveau DMA et qu'une routine de service de fichier LAN doit passer d'un dispositif à l'autre. Le brevet des EUA n 3. 925.766 de Bardotti et autres, présente un système d'ordinateur dans lequel des niveaux de priorité sont attribués à des dispositifs périphériques et des requêtes d'accès pour communiquer avec une mémoire, sont sélectionnées selon les niveaux de priorité. Les attributions des niveaux de priorité peuvent être changées selon les raisons pour lesquelles les signaux de requête ont été générés ou selon les conditions de charge particulières du processeur central. Aucun chemin DMA n'est cependant prévu. Dans le brevet des EUA n 4.400.771 de Suzuki et autres, on présente un système à processeurs multiples dans lequel chacun des processeurs multiples peut accéder à une mémoire unique. Un circuit de registres programmables emmagasine des informations de priorité désignant une priorité d'accès à la mémoire pour chacun des processeurs. Les informations de priorité peuvent être modifiées manuellement, par un circuit externe ou par au moins l'un des processeurs. Le brevet de Suzuki et autres n'utilise cependant pas l'accès DMA à une mémoire depuis plusieurs dispositifs périphériques. Le brevet des EUA n 4.257.095 de Nadir est intéressant dans ses enseignements concernant les techniques d'arbitrage de bus. Les brevets des EUA suivants sont indiqués en tant qu'enseignements généraux relatifs à l'art antérieur des systèmes d'ordinateurs utilisant des unités de commande DMA: les brevets des EUA n 4.371.932 de Dinwiddie, Jr., et autres, n 4.419.728 de Larson, n 4.538.224 de Peterson, n 4.556. 962 de Brewer et autres et n 4.584.703 de Hallberg. Objets de l'invention En conséquence, un objet de la présente invention est de fournir un système d'ordinateur utilisant une unité de commande DMA dans lequel des dispositifs périphériques dont le nombre est plus important que celui des canaux DMA physiques prévus dans le système, peuvent se partager les canaux DMA sans rencontrer les problèmes des approches de l'art antérieur tels qu'indiqués ci dessus. Un autre objet de la présente invention est de fournir un tel système d'ordinateur dans lequel chaque dispositif périphérique à accès DMA est affecté de son propre niveau d'arbitrage d'accès DMA. Un autre objet de la présente invention est de fournir un tel système d'ordinateur dans lequel l'affectation des canaux DMA aux dispositifs périphériques peut être facilement commandée dans le logiciel sans modification importante du système de fonctionnement. Résumé de l'invention Pour la réalisation des objets de la présente invention tels qu'indiqu&s ci dessus ainsi que d'autres, on prévoit un système d'ordinateur comprenant une pluralité de périphériques demandant à bénéficier de l'accès DMYA, le nombre des périphériques étant supérieur au nombre des canaux DMA prévus dans le système. A certains périphériques, ont été attribués des canaux DMA affectés fixes tandis que d'autres périphériques se partagent les canaux DMA restants. Les canaux restants partagés sont appelés ici "canaux DMA programmables". Ces canaux DMA supplémentaires ne sont pas physiques et peuvent donc être qualifiés de canaux DMA "virtuels" pour les distinguer des canaux DMA physiques ou "réels". A chacun des périphériques, est attribuée une priorité de canal. Un circuit d'arbitrage emmagasine des valeurs d'affectation de canal DMA, une pour chacun des canaux DMA prévus dans le système. Pour chaque périphérique ayant un canal DMA affecté, une valeur d'affectation de canal DMA fixe est emmagasinée tandis que pour les périphériques restants qui se partagent les canaux DMA programmables, on emmagasine une valeur d'affectation de canal DMA programmable. Lorsqu'un périphérique désire un accès DMA, il transmet sa valeur de priorité de canal sur un bus d'arbitrage. La valeur de priorité de canal la plus élevée "gagne" sur le bus d'arbitrage. La valeur de priorité de canal gagnante est comparée à des valeurs d'affectation de canal DMA fixes et programmables. Si la comparaison de la valeur de priorité de canal à l'une des valeurs d'affectation de canal DSMA fixes ou programmables emmagasinées, est réussie, l'accès est garanti au canal DMA correspondant. Brève description des dessins La figure 1 est une représentation schématique d'un système d'ordinateur utilisant la présente invention. La figure 2 est un schéma conceptuel utilisé pour expliquer le fonctionnement de la présente invention. La figure 3 est un schéma logique représentant en détails un circuit d'arbitrage prévu dans des dispositifs périphériques du système d'ordinateur de la figure 1. La figure 4 est un schéma montrant des détails de l'un des bus du système d'ordinateur de la figure 1. La figure 5 est un schéma logique détaillé d'un circuit de commande d'arbitrage central utilisé dans le système d'ordinateur de la présente invention. La figure 6 est un schéma logique détaillé d'un circuit de commande DMA utilisé dans la présente invention. Description détaillée de la réalisation préférée de l'invention En se reportant tout d'abord à la figure 1 des dessins ci joints, on voit que celle ci est un schéma bloc d'un système d'ordinateur dans lequel la présente invention est avantageusement utilisée. Une unité CPU communique avec une mémoire principale , l'unité de commande de bus 16 et le co-processeur mathématique 14 par un bus système 26. La communication entre l'unité CPU et ses dispositifs périphériques associés se fait au travers d'une unité de commande de bus 16, cette dernière étant couplée aux dispositifs périphériques au travers du bus de famille 25. Dans le présent exemple,les dispositifs périphériques comprennent une mémoire auxiliaire 17, deux dispositifs de communications 18 et 19, un fichier de disques durs , un disque optique 21 et deux disques souples 23. D'autres périphériques peuvent naturellement être utilisés selon les besoins du système. Les dispositifs périphériques sont représentés génériquement par l'unité asservie DMA 24. Une unité de commande DMA 12 est prévue pour permettre au moins à des dispositifs sélectionnés parmi les dispositifs périphériques, d'accéder directement à la mémoire. Dans ce but, comme on l'expliquera plus en détails par la suite, le bus de famille ou au moins une partie de celui ci, est connecté à l'unité de commande DMA 12. Chaque périphérique qui bénéficie de l'accès DMA, comprend un circuit d'arbitrage 24 et à chaque périphérique comportant un circuit d'arbitrage, est affecté un niveau d'arbitrage (priorité). A nouveau, comme on l'expliquera plus en détails par la suite, un circuit de commande d'arbitrage central 11 est associé à l'unité de commande DMA pour arbitrer les dispositifs périphériques demandant en même temps l'accès DMA et pour informer l'unité de commande DMA du périphérique qui bénéficie de l'accès. Dans le système d'ordinateur utilisant la présente invention, le nombre de dispositifs périphériques qui peuvent bénéficier de l'accès DMA est supérieur au nombre des canaux DMA physiques prévus dans le système. Selon la présente invention, certains de ces dispositifs sont affectés de leur propre canal DMA attribué tandis que d'autres se partage les canaux DMA restant. Sur les canaux partages (programmables), l'accès se fait dans l'ordre de priorités pré-attribuées. Dans le présent exemple, on suppose qu'il y a huit canaux DMA physiques référencés 0 à 7. On suppose en outre que les canaux 0 et 4 sont partages et que les canaux restants 1- 3 et 5-7 sont affectés à des périphériques particuliers. En se reportant maintenant à la figure 2, on voit que celle ci est représentation conceptuelle utilisée pour expliquer les principes de la présente invention et montre un comparateur à deux ensembles d'entrées. Un ensemble est composé de quatre lignes issues d'un bus ARBUS (bus arbitrage). La valeur sur ARBUS indique le périphérique demandant un canal DMA et ayant le niveau d'arbitrage (priorité) le plus élevé. Si ce périphérique est l'un de ceux bénéficiant de l'un des canaux attribués 13 ou 5-7, l'accès est accordé directement à ce canal. D'autre part, si le périphérique est l'un de ceux ayant à partager un canal DMA programmable (canaux 0 et 4), l'accès n'est accordé que si son niveau de priorité correspond à l'une des valeurs pré-établies dans les registres 6 et 7. Cette opération sera expliquée plus en détails ci dessous en se référant aux figures 3-6. La figure 3 est un schéma logique de l'un des circuits d'arbitrage 28 utilisés dans chacun des périphériques bénéficiant de l'accès DMA. Le niveau d'arbitrage attribué aux périphériques est établi dans un registre que l'on appellera par la suite "registre d'attribution de priorité canal". Cette opération peut être assurée en utilisant l'une quelconque d'un certain nombre de techniques bien connus. De préférence, l'unité CPU adresse le périphérique au travers d'un port pré-attribué si bien que le niveau d'arbitrage peut être établi par logiciel. Ceci peut être assuré au travers de BIOS (système entree/sortie basique), de POST (auto-test sous alimentation) à la restauration, du système d'exploitation ou du programme d'application comme désiré. Autrement, il est possible d'entrer la valeur d'attribution de priorité canal par l'intermédiaire des commutateurs du matériel. Le circuit d'arbitrage réel est mis en oeuvre avec une unité d'arbitrage 72. Ce circuit comprenant les divers signaux indiqués à la figure 3, est présenté et décrit en détails dans le document "American National Standard/IEEE Standard", n ANSI/IEEE Std 696-1983, publié par le "Institute of Electrical and Electronics Engineers, Inc.", 13 juin 1983. En général, chaque dispositif incorporé dans le schéma d'arbitrage comporte un tel circuit et les circuits sont connectés ensemble par un bus ARBUS. Le bus ARBUS dans l'exemple représenté, comporte quatre lignes de données TMAO-TMA3, permettant 16 différents niveaux d'arbitrage. N'importe quel nombre désiré peut cependant être utilisé. Pendant une période de temps d'arbitrage déterminée par les signaux de commande pHLDA et HOLD, tous les dispositifs désirant prendre la commande. sur le bus (ceux ayant le signal IWANT au niveau haut, état "1") transmettent leur niveau d'arbitrage (priorité) sur le bus ARBUS. Ceci apparaît dans l'exemple de la figure 3 lorsque le signal /APRIO ("/" indiquant un signal "valeur vraie basse") passe au niveau bas ("0"). La valeur alors retenue dans le registre 70 est transférée au travers des portes ET 71 à l'unité d'arbitrage 72 et de là, sur les lignes ARBUS TMA0TMA3. A la fin de la période d'arbitrage, la valeur sur les lignes ARBUS TMA0-TMA3 sera la valeur du niveau d'arbitrage du dispositif ayant le niveau le plus élevé. Les formes d'ondes des divers signaux indiqués ici sont présentées en détails dans la norme ANSI/IEEE indiquée plus haut. Dans la réalisation préférée décrite ici, le bus ARBUS fait partie du bus de famille 25 connectant les périphériques à l'unité de commande de bus 16 et donc à l'unité CPU 10. La relation entre le bus ARBUS et le bus de famille 25 est décrite à la figure 4. Les détails du circuit de commande d'arbitrage central 11 et de l'unité de commande DMIA 12 sont représentés aux figures 5 et 6, respectivement, auxquelles on se reportera maintenant. Comme indiqué à la figure 5, les signaux HOLD et pHLDA issus du bus ARBUS sont utilisés pour générer un signal /ARBTIME (PERIODE ARBITRAGE). /ARBTIME est à l'état "0" pendant la période de temps o doit se dérouler l'arbitrage parmi les dispositifs périphériques en compétition pour obtenir un canal DES. Il reste à l'état "0" suffisamment longtemps pour que les signaux sur le bus ARBUS aient atteint des conditions d'état permanent, c'est à dire suffisamment longtemps pour que l'arbitrage soit achevé. Pour générer le signal /ARBTIME,le signal pHLDA est inversé par un inverseur 61, puis appliqué ensemble avec HOLD à des entrées respectives d'une porte OU Exclusif 62. Un multivibrateur mornocoup 63 dont la période d'impulsion de sortie est plus longue que la période d'arbitrage sur ARBUS, est déclenché par le front avant de l'impulsion de sortie de la porte OU Exclusif 62. La sortie du multivibrateur monocoup est mis en condition OU avec la sortie de la porte OU Exclusif 62 par une porte OU 64 afin de produire ainsi /ARBTIME. D'autres agencements sont naturellement possibles pour générer /ARBTIME. Selon une approche possible, les signaux de requête DKA issus de chaque dispositif, sont mis en condition OU ensemble et la sortie en condition OU est appliquée pour générer un signal d'impulsion de longueur appropriée. Dans tous les cas, la requête de base est le conditionnement de /ARBTIME à l'état "0" pour définir les périodes de temps o l'arbitrage se déroule sur ARBUS. Une logique de comparaison 40 est prévue pour chacun des canaux DMA physiques programmables dans le système et une logique de comparaison 49 est prévue pour chacun des canaux fixes. Chaque logique de comparaison 40 pour les canaux DMA programmables (les canaux 0 et 4 dans le présent exemple) comprend un registre 41 appelé "registre d'attribution de canal DMA" qui est chargé par l'unité CPU avec une attribution de canal DMA. Les logiques de comparaison 49, à savoir celles pour les canaux fixes, sont identiques aux logiques de comparaison 40 à l'exception du registre 40 qui est remplacé par un ensemble de commutateurs avec lesquels on établit manuellement l'attribution des canaux. Une seule des logiques de comparaison 40 et 49 est représentée en détails -étant donné que les autres sont identiques et que leurs signaux de sortie sont les mêmes. Les sorties des registres 41 pour les canaux programmables (logiques de comparaison 40) et les sorties des commutateurs pour les canaux fixes (logiques de comparaison 49) sont comparées aux signaux TMA0-TMA3 par un ensemble de portes OU Exclusif 42 dont les sorties sont appliquées aux entrées d'une porte OU Négatif 43. S'il y a correspondance entre l'attribution de canal et la valeur représentée par TMA0-TMA3 à la fin de la période d'arbitrage, c'est à dire si les signaux correspondants sont alors dans des états identiques, la sortie de la porte OU Négatif 43 (COMPARAISON 0 - COMPARAISON 7) sera à l'état "1". Naturellement, une seule porte OU Négatif 43 à la fois peut avoir une sortie active. En se reportant maintenant à la figure 6, on voit qu'à la fin de la période d'arbitrage lorsque /ARBTIME revient au niveau "1", un "l" issu de celui des signaux COMPARAISON 0 - COMPARAISON 7 qui est dans l'état "i", sera conditionné dans l'une des deux bascules 51 de l'unité de commande DMA 12. Les autres "1" de COMPARAISON 0 - COMPARAISON 7 seront dans l'état "0" et un "0" sera donc établi dans les positions correspondantes des bascules 51. Les sorties des bascules 51 sont appliquées aux entrées de requête DMA correspondantes (DREQ0 - DREQ3) de deux unités de commande DMA IC 52 connectées en cascade. Dans la réalisation décrite ici, les unités de commande IC 52 sont chacune constituées par une unité de commande DMA programmable du type 8237 fabriquée par Intel Corporation. Les unités de commande DMA IC 52 sont connectées en cascade par des portes OU Négatif 53. L'unité CPU peut être l'un quelconque de la série de micro-processeurs Intel iAPX 86 comme le 8088, le 8086 ou le 80286. Pour plus de détails sur les connexions entre les deux unités de commande IC et l'unité CPU, on pourra se reporter au manuel "1985 Intel Microsystem Components Handbook", pages 2- 57 à 2-71. En conséquence, pour un périphérique ayant un canal DMA attribué, une fois que le périphérique a la priorité sur ARBUS, il a l'usage immédiat d'un canal DMA. Pour un périphérique partageant l'un des canaux DMA, lorsqu'il a la priorité sur ARBUS, il ne peut utiliser immédiatement un canal DMA que si sa valeur d'attribution de priorité de canal telle que contenue dans son registre d'attribution de priorité de canal , correspond à l'une des valeurs d'attribution de canal DMA établies dans l'un des deux registres 41. Naturellement, le BIOS, le système d'exploitation ou le programme d'applications peut continuellement reprogrammer les valeurs d'attribution de canal contenues dans les registres d'attribution de canal DMA 41 des deux logiques de comparaison de canal programmable 40 afin de s'assurer que tous les périphériques demandant l'accès, peuvent finalement utiliser un canal DMA. De nombreux schémas de programmation différents peuvent être mis en oeuvre pour commander les valeurs emmagasinées dans les registres d'attribution de canal DMA 41 et les registres d'attribution de priorité de canal 70 des circuits d'arbitrage suivant l'application en cours d'utilisation. Dans un exemple simple, les valeurs établies dans les registres d'attribution de priorité sont fixes et les valeurs établies dans les registres d'attribution de canal DMA 41 sont alternées parmi au moins certaines des valeurs contenues dans les registres d'attribution de priorité 7C pour donner ainsi à chaque périphérique associé à l'un des canaux DMA programmables une chance d'obtenir l'utilisation d'un canal DMA. Si des périphériques "intelligents" ayant leur propre unité de commande, sont utilisés, des schémas plus complexes peuvent être mis en oeuvre. Par exemple, lorsqu'un périphérique affecté à un canal DMA programmable, désire l'accès, le périphérique peut demander au système d'exploitation ou à BIOS la disponibilité de l'un des canaux programmables. Si un canal est disponible, son numéro peut alors être conditionné dans les registres 70 et 41 pour garantir l'accès. Cependant, étant donné que la sélection du schéma de programmation n'entre pas dans le cadre de la présente invention mais est du ressort de l'utilisateur, nous ne décrirons pas d'autres exemples ici. D'autres applications de la présente invention sont aussi envisagées. Par exemple, des canaux DMA programmables prévus par l'utilisation de la présente invention, peuvent être utilisés comme canaux de support redondants pour certains des canaux attribues, ce qui augmente la fiabilité du système. Il est évident que diverses modifications de forme et de détails peuvent être apportées à la présente inventions sans pour autant sortir du cadre de celle ci tel que spécifié dans les revendications ci jointes. REVENDICATIONS 1. Un système d'ordinateur caractérisé en ce qu'il comprend: des moyens pour fournir une pluralité de canaux DMA, une pluralité de dispositifs périphériques comprenant des moyens pour requérir un accès DMA, et des moyens pour attribuer au moins l'un desdits dispositifs périphériques à un canal respectif desdits canaux DMA pour l'accès DMA et pour attribuer le reste desdits dispositifs périphériques au partage du reste desdits canaux DMA pour l'accès DMA. 2. Le système d'ordinateur de la revendication 1 dans lequel lesdits moyens d'attribution comprennent des moyens pour comparer des valeurs d'attribution de priorité de canal pour chacun desdits périphériques demandant l'accès DMA à un ensemble prédéterminé de valeurs d'attribution de canal D4A, et des moyens pour donner accès à un canal DMA correspondant à l'une desdites valeurs d'attribution de canal DMA lorsque l'une desdites valeurs d'attribution de priorité de canal est la même que ladite valeur desdites valeurs d'attribution de canal DMA. 3. Le système d'ordinateur de la revendication 2 dans lequel lesdits moyens de comparaison comprennent des moyens pour emmagasiner ledit ensemble prédéterminé de valeurs d'attribution de canal et des moyens pour comparer simultanément ladite valeur d'attribution de priorité de canal pour l'un desdits périphériques demandant l'accès DMA et ledit ensemble de valeurs d'attribution de canal. 4. Le système d'ordinateur de la revendication 3 comprenant en outre des moyens pour changer lesdites valeurs d'attribution de canal pour ledit reste desdits canaux DMA. 5. Un système d'ordinateur comprenant: une pluralité de dispositifs périphériques demandant l'accès DMA, un bus d'arbitrage, des moyens dans chacun desdits dispositifs périphériques pour demander l'accès DMA en plaçant sur ledit bus d'arbitrage une valeur d'attribution de priorité de canal pour le dispositif périphérique respectif, des moyens pour emmagasiner des premier et second ensembles de valeurs d'attribution de canal DMA, lesdites valeurs d'attribution de canal DMA étant en moins grand nombre que lesdits dispositifs périphériques et dans le même nombreque les canaux DMA prévus dans ledit système d'ordinateur, ledit premier ensemble desdites valeurs d'attribution de canal DMA étant fixe et correspondant aux valeurs prédéterminées fixes desdites valeurs d'attribution de priorité de canal, ledit second ensemble de valeur d'attribution DMA étant programmable et pouvant être alloué parmi les valeurs restantes desdites valeurs d'attribution de priorité de canal, des moyens pour comparer des valeurs d'attribution de priorité reçues sur ledit bus d'arbitrage audit ensemble de valeurs d'attribution de canal DMA emmagasinées, et des moyens pour garantir l'accès DMA à chacun desdits dispositifs périphériques dont la valeur d'attribution de priorité est trouvée par lesdits moyens de comparaison égale à l'une desdites valeurs d'attribution de canal DMA desdits premier et second ensembles. 6. Le système d'ordinateur de la revendication 5 dans lequel lesdits moyens d'emmagasinage comprennent pour chacune desdites valeurs d'attribution de canal DMA programmables un registre programmable par une unité centrale de traitement dudit système d'ordinateur. 7. Le système d'ordinateur de la revendication 5 dans lequel lesdits moyens d'emmagasinage comprennent pour chacune desdites valeurs d'attribution de canal DMA fixes, des moyens pour appliquer en entrée de manière fixe la valeur d'attribution de canal DMA respective. 8. Un dispositif périphérique pour un système d'ordinateur, comprenant: des moyens pour emmagasiner une valeur d'attribution de priorité de canal pour ledit dispositif, et des moyens à circuit d'arbitrage pour appliquer ladite valeur d'attribution de canal sur un bus d'arbitrage pour demander l'usage d'un canal DMA. 9. Le dispositif périphérique de la revendication 8 dans lequel ladite valeur d'attribution de priorité de canal est établie dans lesdits moyens d'emmagasinage par un port qui peut être adressé par une unité centrale de traitement. 10. Une méthode pour commander l'accès DSMA dans un système d'ordinateur, comprenant les étapes suivantes: l'attribution d'une valeur d'attribution de priorité de canal à chacune d'une pluralité de dispositifs périphériques demandant l'accès DMA, l'emmagasinage de manière fixe d'un premier ensemble de valeurs d'attribution de canal DMA pour des canaux DMA attribués à des dispositifs périphériques respectifs et l'emmagasinage programmable d'un second ensemble de valeurs d'attribution de canal DYMA pour des canaux D-A partages entre une pluralité de dispositifs périphériques, la transmission sur un bus depuis chacune desdites unités périphériques demandant l'accès DMA, de sa valeur d'attribution de priorité de canal, l'arbitrage sur ledit bus pour déterminer une valeur d'attribution de priorité de canal la plus élevée des unités périphériques demandant concurremment l'accès DMA, la comparaison de ladite valeur d'attribution de priorité de canal la plus élevée auxdits premier et second ensembles de valeurs d'attribution de canal DMA, et la garantie de l'accès à un canal DMA respectif par le dispositif périphérique correspondant lorsque ladite valeur de priorité de canal la plus élevée est égale à l'une desdites valeurs d'attribution de canal DMA contenues dans lesdits premier et second ensembles. La méthode de la revendication 10 dans laquelle ladite étape de comparaison comprend la comparaison simultanée de ladite valeur d'attribution de priorité de canal la plus élevée auxdits premier et second ensembles.