A set of registers are provided for a protocol engine driving I/O transactions requested by a host. A fixed set of defined data elements are determined for the protocol under which the I/O transaction is to be performed. Each register maps to a data structure base address or to a different data element offset or byte count. During initialization, the registers are programmed by an operating system device driver with offsets from a base address and byte counts for each data element within the defined set as those data elements are found within an operating system specific data structure for the I/O transaction, although data elements having a fixed size for each operating system may not require the byte count to be specified. For each I/O transaction requested, the base address in the host memory of the operating system specific data structure is programmed by the device driver into a register. The I/O protocol engine utilizes the base address together with the offset and byte count information to commence the requested I/O transaction. The base address is programmed by the device driver into the appropriate register on an each I/O basis, without requiring translation of the entire data structure. By permitting the hardware to be configured to effectively utilize the operating system data structure, the need for data structure translation is eliminated, CPU utilization is reduced, and increased I/O throughput is achieved.

Un ensemble de registres sont donnés pour un moteur de protocole conduisant des transactions d'I/O demandées par un hôte. Un ensemble fixe d'éléments d'informations définis sont déterminés pour le protocole sous lequel la transaction d'I/O doit être exécutée. Chaque registre trace à une adresse de base de structure de données ou à un nombre d'octets différent d'excentrage ou d'élément d'informations. Pendant l'initialisation, les registres sont programmés par un module de gestion de périphérique de logiciel d'exploitation avec des excentrages d'une adresse de base et des nombres d'octets pour chaque élément d'informations dans l'ensemble défini pendant que ces éléments d'informations sont trouvés dans une structure de données spécifique de logiciel d'exploitation pour la transaction d'I/O, bien que des éléments d'informations ayant une taille fixe pour chaque logiciel d'exploitation puissent ne pas exiger du nombre d'octets d'être indiqués. Pour chaque transaction d'I/O demandée, l'adresse de base dans la mémoire de centre serveur de la structure de données spécifique de logiciel d'exploitation est programmée par le module de gestion de périphérique dans un registre. Le moteur de protocole d'I/O utilise l'adresse de base ainsi que l'information de nombre d'octets d'excentrage et pour débuter la transaction demandée d'I/O. L'adresse de base est programmée par le module de gestion de périphérique dans le registre approprié sur une chaque base d'I/O, sans exiger la traduction de la structure de données entière. En permettant au matériel d'être configuré pour utiliser efficacement la structure de données de logiciel d'exploitation, le besoin de traduction de structure de données est éliminé, l'utilisation d'unité centrale de traitement est réduite, et la sortie accrue d'I/O est réalisée.

 
Web www.patentalert.com

< (none)

< Vaccine

> Method for identifying the language of individual words

> (none)

~ 00015