Method and apparatus for the context switching of devices
AssigneeSun Microsystems, Inc.
InventorsDavid S. H. Rosenthal, Robert Rocchetti, Curtis Priem, Chris Malachowsky
Life of this patent
Estimating the term…
Loading patent…
AssigneeSun Microsystems, Inc.
InventorsDavid S. H. Rosenthal, Robert Rocchetti, Curtis Priem, Chris Malachowsky
Estimating the term…
The system of the present invention provides for the context switching of devices connected through the system's memory management unit and is particularly useful in a multi-tasking computer system in which multiple processes access the same device. In the method and apparatus of the present invention, devices that are connected to the system through the MMU are controlled using the page fault mechanism of the MMU and the page fault handler in each segment. Addresses are allocated in the process address space for each process to provide for the addressing of the devices and device queues connected through the MMU, such that one device or one device queue is mapped into one segment of each process address space that will access the device. The "valid bits" associated with each page in a segment are turned on/off by the process or operating system in order to control the device. If the valid bits are off and an attempt is made to access at the address a page fault occurs and the page fault mechanism invokes the page fault handler of the corresponding segment. The page fault mechanism of the MMU and the page fault handler of each segment are then utilized to perform a context switch of the device.
A multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages which are grouped into segments, each of said pages having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, each of said segments having a page fault handler associated with it which is invoked when a page fault occurs in the segment, said system further comprising a means for controlling the context switching of said device comprising:
A multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, said system further comprising a means for providing the time sharing of the user defined device, said means comprising:
A multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one user-defined device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising segments, said segments comprising at least one page, each page having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space each of said segments having a page fault handler associated with it, said system further comprising a means for providing the time sharing of the user defined device, said means comprising:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one user-defined device which is connected to the system through a memory management unit (MMU), said device executing commands issued by the CPU, said being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a corresponding valid bit that invokes a page fault if the bit is not set an attempt is made to access the address space, a process for providing the time sharing of the user defined device, a method for performing context switching comprising the steps of:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one user-defined device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a valid bit that involes a page fault if the bit is not set and an attempt is made to access the address space, a process for providing the time sharing of the user defined device, said means comprising the steps of:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one user-defined device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, a process for providing the time sharing of the user defined device, said means comprising the steps of:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one user-defined device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, a process for providing the time sharing of the user defined device, said means comprising the steps of:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages which are grouped into segments, each of said pages having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, each of said segments having a page fault handler associated with it which is invoked when a page fault occurs in the segment, a method for controlling said device comprising the steps of:
In a multi-tasking system in which multiple processes are executed by a central processing unit (CPU) of the system on a time-shared basis using context switching, the context of the CPU being the state of the CPU with respect to a particular process, the switching of the CPU from one process to another process referred to as process switching, said system further comprising at least one device which is connected to the system through a memory management unit (MMU), said device being mapped into the process address space of each process which may access the device, said process address space comprising pages, each page having a corresponding valid bit that invokes a page fault if the bit is not set and an attempt is made to access the address space, a method for providing the time sharing of the user defined device, said method comprising the steps of:
Dependencies are inferred from the claim text.