Context switch data prefetching in multithreaded computer
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/46
G06F-012/00
G06F-009/26
G06F-009/30
G06F-009/44
출원번호
US-0739738
(2003-12-18)
등록번호
US-7493621
(2009-02-17)
발명자
/ 주소
Bradford,Jeffrey Powers
Kossman,Harold F.
Mullins,Timothy John
출원인 / 주소
International Business Machines Corporation
대리인 / 주소
Wood, Herron & Evans
인용정보
피인용 횟수 :
22인용 특허 :
14
초록▼
An apparatus, program product and method initiate, in connection with a context switch operation, a prefetch of data likely to be used by a thread prior to resuming execution of that thread. As a result, once it is known that a context switch will be performed to a particular thread, data may be pre
An apparatus, program product and method initiate, in connection with a context switch operation, a prefetch of data likely to be used by a thread prior to resuming execution of that thread. As a result, once it is known that a context switch will be performed to a particular thread, data may be prefetched on behalf of that thread so that when execution of the thread is resumed, more of the working state for the thread is likely to be cached, or at least in the process of being retrieved into cache memory, thus reducing cache-related performance penalties associated with context switching.
대표청구항▼
What is claimed is: 1. A method of performing a context switch operation in a multithreaded computer, the method comprising initiating a prefetch of data likely to be used by a thread prior to resuming execution of the thread, wherein the data for which the prefetch is initiated is determined using
What is claimed is: 1. A method of performing a context switch operation in a multithreaded computer, the method comprising initiating a prefetch of data likely to be used by a thread prior to resuming execution of the thread, wherein the data for which the prefetch is initiated is determined using state information stored during a prior context switch from the thread, wherein initiating the prefetch further includes retrieving the state information stored during the prior context switch from the thread, wherein the state information includes hardware prefetcher state information, wherein initiating the prefetch further includes initializing a hardware prefetcher using the hardware prefetcher state information, wherein the hardware prefetcher state information includes a base address value, wherein the hardware prefetcher state information further includes a stride value, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to prefetch starting at an address calculated by subtracting at least one of the stride value and a multiple of the stride value from the base address, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to repeat at least one prefetch operation performed prior to the prior context switch from the thread, wherein the state information identifies at least one cache line accessed prior to the prior context switch from the thread, and wherein initiating the prefetch further includes initiating prefetching of the cache line identified by the state information. 2. The method of claim 1, wherein initiating the prefetch of data likely to be used by a thread includes initiating a prefetch of at least one instruction likely to be executed by the thread. 3. The method of claim 1, wherein initiating the prefetch of data likely to be used by a thread includes initiating a prefetch of data likely to be processed by at least one instruction executed by the thread. 4. The method of claim 1, further comprising: restoring a working state for the thread; and resuming execution of the thread upon restoration of the working state therefor. 5. The method of claim 4, wherein initiating the prefetch is performed while restoring the working state for the thread. 6. The method of claim 4, wherein initiating the prefetch is performed prior to restoring the working state for the thread. 7. The method of claim 1, wherein the context switch operation includes context switching to another thread scheduled for execution prior to a context switch to the thread. 8. The method of claim 7, wherein initiating the prefetch is performed during at least one of restoring a working state for the other thread and resuming execution of the other thread. 9. The method of claim 1, further comprising storing the state information in connection with storing a working state for the thread during a context switch from the thread. 10. The method of claim 1, wherein the state information includes cache state information. 11. The method of claim 1, wherein instructing the hardware prefetcher is performed by an operating system in the computer. 12. The method of claim 1, wherein initiating the prefetch includes executing a touch instruction. 13. The method of claim 12, wherein executing the touch instruction is performed by an operating system in the computer. 14. The method of claim 1, wherein initiating the prefetch includes storing prefetch control data for the thread in a buffer, the method further comprising retrieving the prefetch control data from the buffer and performing a prefetch operation based upon the prefetch control data. 15. The method of claim 1, further comprising retrieving the data into a cache memory in response to initiating the prefetch. 16. A method of performing a context switch operation in a multithreaded computer, the method comprising initiating a prefetch of data likely to be used by a thread prior to resuming execution of the thread, wherein the data for which the prefetch is initiated is determined using state information stored during a prior context switch from the thread, wherein initiating the prefetch further includes retrieving the state information stored during the prior context switch from the thread, wherein the state information includes hardware prefetcher state information, wherein initiating the prefetch further includes initializing a hardware prefetcher using the hardware prefetcher state information, wherein the hardware prefetcher state information includes a base address value, wherein the hardware prefetcher state information further includes a stride value, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to prefetch starting at an address calculated by subtracting at least one of the stride value and a multiple of the stride value from the base address, wherein the context switch operation includes context switching to another thread scheduled for execution prior to a context switch to the thread, wherein initiating the prefetch is performed responsive to the thread being scheduled for execution immediately after execution of the other thread, wherein the state information identifies at least one cache line accessed prior to the prior context switch from the thread, and wherein initiating the prefetch further includes initiating prefetching of the cache line identified by the state information. 17. A method of performing a context switch operation in a multithreaded computer, the method comprising initiating a prefetch of data likely to be used by a thread prior to resuming execution of the thread, wherein the data for which the prefetch is initiated is determined using state information stored during a prior context switch from the thread, wherein initiating the prefetch further includes retrieving the state information stored during the prior context switch from the thread, wherein the state information includes hardware prefetcher state information, wherein initiating the prefetch further includes initializing a hardware prefetcher using the hardware prefetcher state information, wherein the hardware prefetcher state information includes a base address value, wherein the hardware prefetcher state information further includes a stride value, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to prefetch starting at an address calculated by subtracting at least one of the stride value and a multiple of the stride value from the base address, wherein the state information identifies at least one cache line accessed prior to the prior context switch from the thread, wherein initiating the prefetch further includes initiating prefetching of the cache line identified by the state information, and wherein initiating prefetching of the cache line identified by the state information includes executing a touch instruction to an address in the cache line. 18. A method of performing a context switch operation in a multithreaded computer, the method comprising initiating a prefetch of data likely to be used by a thread prior to resuming execution of the thread, wherein the data for which the prefetch is initiated is determined using state information stored during a prior context switch from the thread, wherein initiating the prefetch further includes retrieving the state information stored during the prior context switch from the thread, wherein the state information includes hardware prefetcher state information, wherein initiating the prefetch further includes initializing a hardware prefetcher using the hardware prefetcher state information, wherein the hardware prefetcher state information includes a base address value, wherein the hardware prefetcher state information further includes a stride value, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to prefetch starting at an address calculated by subtracting at least one of the stride value and a multiple of the stride value from the base address, wherein the state information includes cache state information and wherein the cache state information includes at least one of tag array information, most recently used information, and way prediction information. 19. The method of claim 18, wherein initializing the hardware prefetcher includes initializing the hardware prefetcher to repeat at least one prefetch operation performed prior to the prior context switch from the thread. 20. The method of claim 18, wherein the state information identifies at least one cache line accessed prior to the prior context switch from the thread, and wherein initiating the prefetch further includes initiating prefetching of the cache line identified by the state information.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (14)
Scales ; III Hunter Ledbetter ; Diefendorff Keith Everett ; Olsson Brett ; Dubey Pradeep Kumar ; Hochsprung Ronald Ray ; Beavers Bradford Byron ; Burgess Bradley G. ; Snyder Michael Dean ; May Cathy , Data processing system for processing vector data and method therefor.
Thompson, Carol L.; Zi gler, Michael L.; Huck, Jerome C.; Dwyer, Lawrence D. K. B., Method and apparatus for enabling a compiler to reduce cache misses by performing pre-fetches in the event of context switch.
Borkenhagen, John Michael; Eickemeyer, Richard James; Flynn, William Thomas; Wottreng, Andrew Henry, Method and apparatus for selecting thread switch events in a multithreaded processor.
Kahle, James Allan; Mayfield, Michael John; O'Connell, Francis Patrick; Ray, David Scott; Silha, Edward John; Tendler, Joel M., Software prefetch system and method for predetermining amount of streamed data.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Address expansion and contraction in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Address expansion and contraction in a multithreading computer system.
Ginzburg, Boris; Ronen, Ronny; Weissmann, Eliezer; Vaithianathan, Karthikeyan; Cohen, Ehud, Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator.
Ginzburg, Boris; Ronen, Ronny; Weissmann, Eliezer; Vaithianathan, Karthikeyan; Cohen, Ehud, Context switching mechanism for a processor having a general purpose core and a tightly coupled accelerator.
Bartik, Jane H.; Bradbury, Jonathan D.; King, Gary M.; Rosa, Daniel V.; Schmidt, Donald W., Hardware counters to track utilization in a multithreading computer system.
Bartik, Jane H.; Bradbury, Jonathan D.; King, Gary M.; Rosa, Daniel V.; Schmidt, Donald W., Hardware counters to track utilization in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Method for executing a query instruction for idle time accumulation among cores in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Thread context preservation in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Thread context preservation in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Thread context restoration in a multithreading computer system.
Bradbury, Jonathan D.; Busaba, Fadi Y.; Farrell, Mark S.; Gainey, Jr., Charles W.; Greiner, Dan F.; Heller, Lisa Cranton; Kubala, Jeffrey P.; Osisek, Damian L.; Schmidt, Donald W.; Slegel, Timothy J., Thread context restoration in a multithreading computer system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.