Microprocessor system bus protocol providing a fully pipelined input/output DMA write mechanism

   
   

A method and data processing system that supports pipelining of Input/Output (I/O) DMA Write transactions. An I/O processor's operational protocol is provided with a pair of instructions/commands that are utilized to complete a DMA Write operation. The instructions are DMA_Write_No_Data and DMA_Write_With_Data. DMA_Write_No_Data is an address-only operation on the system bus that is utilized to acquire ownership of a cache line that is to be written. The ownership of the cache line is marked by a weak DMA state, which indicates that the cache line is being held for writing to the memory, but that the cache line cannot yet force a retry of snooped operations. When each preceding DMA Write operation has completed or each corresponding DMA_Write_No_Data operation has been placed in a DMA Exclusive state, then the weak DMA state is changed to a DMA Exclusive state, which forces a retry of snooped operations until the write transaction to memory is completed. In this way, DMA Writes that are provided sequentially may be issued in a parallel manner on the system bus and their corresponding DMA_Write_No_Data operations may be completed in any order, but cannot be made DMA Exclusive unless the above conditions are satisfied. Further, once a DMA Exclusive state is acquired, a DMA_Write_With_Data may be issued for each of the sequential DMA Write operations in the DMA Exclusive state. The DMA_Write_With_Data may then be completed out-of-order with respect to each other. However, the system processor is sent the completion messages in the sequential order of the DMA Write operations, thus adhering to the processor requirements for ordered operations while providing fully-pipelined (parallel) execution of the DMA transactions.

Une méthode et un système de traitement de données qui soutient la canalisation de l'entrée-sortie (I/O) DMA écrivent des transactions. Le protocole opérationnel d'un processeur d'I/O est équipé de paire d'instructions/commands qui sont utilisés pour accomplir DMA écrivent l'opération. Les instructions sont DMA_Write_No_Data et DMA_Write_With_Data. DMA_Write_No_Data est adressent-seulement l'opération sur l'autobus de système qui est utilisé pour acquérir la propriété d'une ligne de cachette qui doit être écrite. La propriété de la ligne de cachette est marquée par un état faible de DMA, qui indique que la ligne de cachette est tenue pour écrire à la mémoire, mais que la ligne de cachette ne peut pas encore forcer une nouvelle tentative de snooped des opérations. Quand chaque DMA précédent écrivent l'opération a accompli ou chaque opération correspondante de DMA_Write_No_Data a été placée dans un état exclusif de DMA, alors l'état faible de DMA est changée en état exclusif de DMA, force dont une nouvelle tentative snooped des opérations jusqu'à ce que la transaction d'inscription à la mémoire soit accomplie. De cette façon, DMA écrit qui sont fournis séquentiellement peut être publié d'une façon parallèle sur l'autobus de système et leurs opérations correspondantes de DMA_Write_No_Data peuvent être accomplies dans n'importe quel ordre, mais ne peuvent pas être faites à exclusivité de DMA à moins que les conditions ci-dessus soient satisfaites. De plus, une fois qu'un état exclusif de DMA est acquis, un DMA_Write_With_Data peut être publié pour chacun de DMA séquentiel écrivent des opérations dans l'état d'exclusivité de DMA. Le DMA_Write_With_Data peut alors être out-of-order réalisé en ce qui concerne l'un l'autre. Cependant, le processeur de système est envoyé aux messages d'accomplissement dans l'ordre séquentiel de DMA écrivent des opérations, de ce fait adhérant aux conditions de processeur pour des opérations commandées tout en fournissant l'exécution (parallèle) plein-canalisée des transactions de DMA.

 
Web www.patentalert.com

< System and method for pre-fetching for pointer linked data structures

< System and method for reporting platform errors in partitioned systems

> Method and apparatus for accessing system information

> Application program interfaces and structures in a resource limited operating system

~ 00128