User scheduled direct memory access using virtual addresses
First Claim
1. An interface device for transferring data associated with data processing commands directly between a user'"'"'s host system having a main memory and an external data processing system in response to user commands without direct host operating system management during individual memory transfer transactions, comprising:
- means for representing said data processing commands and associated data as command/pointer packets comprising said data processing commands and virtual pointers to said associated data in virtual memory space of the user'"'"'s host system;
means on said interface device, coupled to said virtual memory space, for directly translating said virtual pointers of said command/pointer packets to physical pointers which identify physical addresses within said main memory at which said associated data is located; and
means on said interface device for transferring said associated data from and to said main memory at said physical addresses.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to an intelligent direct memory access (DMA) controller which interprets user commands from a host system, translates virtual addresses from the user applications program to physical addresses, and retrieves blocks of data from the main system memory at the request of the user'"'"'s code, rather than at the request of the kernel code of the host system. This is accomplished by representing the data processing commands of the user and the data associated therewith as respective command/pointer packets comprised of data processing commands and virtual pointers to the associated data in virtual memory space of the user'"'"'s host system. The virtual pointers of the command/pointer packets may then be translated to physical pointers for purposes of identifying physical addresses within the main memory at which the associated data is located. The associated data may then be read from the physical address in the main memory without interrupting the host processor. Techniques are also disclosed whereby the attributes of virtual memory systems such as page fault and access fault correction may be maintained in conjunction with the user scheduled DMA technique of the invention.
-
Citations
42 Claims
-
1. An interface device for transferring data associated with data processing commands directly between a user'"'"'s host system having a main memory and an external data processing system in response to user commands without direct host operating system management during individual memory transfer transactions, comprising:
-
means for representing said data processing commands and associated data as command/pointer packets comprising said data processing commands and virtual pointers to said associated data in virtual memory space of the user'"'"'s host system; means on said interface device, coupled to said virtual memory space, for directly translating said virtual pointers of said command/pointer packets to physical pointers which identify physical addresses within said main memory at which said associated data is located; and means on said interface device for transferring said associated data from and to said main memory at said physical addresses. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An interface device for transferring graphics primitives associated with graphics commands directly between a user'"'"'s host system having a main memory and a graphics subsystem in response to user commands without direct host operating system management during individual memory transfer transactions, comprising:
-
means for representing said graphics commands and graphics primitives as command/pointer packets comprising said graphics commands and virtual pointers to said graphics primitives in virtual memory space of the user'"'"'s host system; means on said interface device, coupled to said virtual memory space, for directly translating said virtual pointers to physical pointers which identify physical addresses within said main memory at which said graphics primitives are located; and means on said interface device for transferring said graphics primitives from and to said main memory at said physical addresses. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. An interface device for transferring graphics primitives associated with graphics commands directly between a user'"'"'s host system having a main memory and a graphics subsystem in response to user commands without direct host operating system management during individual memory transfer transactions, comprising:
-
means for representing said graphics commands and graphics primitives as command/pointer packets comprising said graphics commands and virtual pointers to said graphics primitives in virtual memory space of the user'"'"'s host system; means on said interface device for translating said virtual pointers to physical pointers which identify physical addresses within said main memory at which said graphics primitives are located, said translating means comprising a DMA processor having access to a user privileged shadow page table for each user controlled process of said host system, each shadow page table being created and updated by a processor driven operating system of said user'"'"'s host system in response to an indication that translations required to access graphics primitives are not in said shadow page table so as to contain current translations of physical pointers corresponding to said virtual pointers, and a command/pointer packet buffer for sequentially storing said command/pointer packets for parsing by said DMA processor; DMA state means responsive to said DMA processor for transferring said graphics primitives from and to said main memory at said physical addresses; and synchronizing means for synchronizing reads and writes of said shadow page tables and user'"'"'s virtual memory space in main memory by said user'"'"'s host system to reads and writes of said shadow page tables and user'"'"'s virtual memory space in main memory by said DMA state means so that data consistency in main memory is maintained.
-
-
30. A method for providing direct memory access by an external data processing system to data stored in a main memory of a user'"'"'s host system in response to a plurality of user'"'"'s data processing commands without direct host operating system management during individual memory transfer transactions, comprising the steps of:
-
representing each of said user'"'"'s data processing commands and associated data as a command/pointer packet including a virtual pointer to said associated data in virtual memory space of said user in said user'"'"'s host system; directly translating by an interface device said virtual pointer to a physical pointer which identifies a physical address within said main memory at which said associated data is located; and accessing said main memory by said interface device at the physical address identified by said physical pointer in order to transfer data to and from said main memory. - View Dependent Claims (31, 32, 33, 34, 35, 36)
-
-
37. A method for providing direct memory access by an external data processing system having an interface device with a DMA processor to data stored in a main memory of a user'"'"'s host system in response to a user'"'"'s data processing command without direct host operating system management during individual memory transfer transactions, comprising the steps of:
-
preapproving all direct memory accesses by said external data processing system requested by said user in said user'"'"'s data processing command by writing a shadow page table root address in the DMA processor; assembling a plurality of command/pointer packets for each user process, each of said command pointer packets comprising a user'"'"'s data processing command and a virtual pointer in virtual memory space of the user'"'"'s host system to data in said main memory for use in processing of said user'"'"'s data processing commands; storing each of said command/pointer packets in a buffer on said interface device for sequentially storing said command/pointer packets for parsing by said DMA processor; parsing each command/pointer packet by said DMA processor to obtain said user'"'"'s data processing command and said virtual pointer; writing said user'"'"'s data processing command to an input of said external data processing system; translating said virtual pointer into a corresponding physical pointer which identifies a physical address in said main memory at which said data is located, said translating performed by said DMA processor on said interface device by accessing translation information stored in said shadow page table, indicated by said shadow table root address; determining a word count identifying the word length of said data; and transferring to an input of said external data processing system a number words of said data corresponding to said word count, said data transfer starting at an address in said main memory identified by said physical pointer, said data transfer controlled by a DMA state device responsive to said DMA processor, said DMA state device and said DMA processor located on said interface device. - View Dependent Claims (38, 39, 40, 41, 42)
-
Specification