A multi-tasking operating system and method updates PCI address values in
an extension register to ensure that various threads utilize the correct
values when accessing peripheral PCI devices. When application program
threads require access to a PCI device, the operating system writes the
high order bits of the PCI device address to two places: (1) the extension
register of the PCI host bridge to allow immediate addressing of the PCI
device, and (2) separate memory locations associated with the threads.
When a context switch occurs from a first thread to a second thread, the
operating system retrieves the stored value from the memory location
associated with the second thread and writes the value to the extension
register. In this manner, when the second thread requires access to its
PCI device, the proper address value is already located in the extension
register.
I valori di indirizzo del PCI degli aggiornamenti di elaborazione multitask del sistema operativo e di metodo in un'estensione registrano per accertarsi che i vari filetti utilizzino i valori corretti quando accedi ai dispositivi periferici del PCI. Quando i filetti di programma di applicazione richiedono l'accesso ad un dispositivo del PCI, il sistema operativo scrive le punte di alto ordine dell'indirizzo di dispositivo del PCI a due posti: (1) il registro di estensione del ponticello ospite del PCI per permettere il richiamo immediato del dispositivo del PCI e (2) le posizioni di memoria separate si sono associati con i filetti. Quando un interruttore di contesto si presenta da un primo filetto - un secondo filetto, il sistema operativo richiama il valore memorizzato dalla posizione di memoria connessa con il secondo filetto e scrive il valore al registro di estensione. In questo modo, quando il secondo filetto richiede l'accesso al relativo dispositivo del PCI, il valore di indirizzo adeguato già è situato nel registro di estensione.