Method and system of cache management using spatial separation of outliers
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/45
G06F-012/00
G06F-012/14
출원번호
US-0859072
(2001-05-16)
우선권정보
GB-0025102 (1998-11-16)
발명자
/ 주소
Kramskoy, Jeremy Paul
Charnell, William Thomas
Darnell, Stephen
Dias, Blaise Abel Alec
Guthrie, Philippa Joy
Plummer, Wayne
Sexton, Jeremy James
Wynn, Michael John
Rautenbach, Keith
Thomas,
출원인 / 주소
Esmertec AG
대리인 / 주소
Caesar, Rivise, Bernstein, Cohen &
인용정보
피인용 횟수 :
27인용 특허 :
36
초록▼
A method and a system of cache management using spatial separation of outliers. The system includes a dynamic compiler arranged to create compiled fragments of code having dominant code blocks and outliers. Memory coupled to the dynamic compiler is managed by a compiler manager such that dominant co
A method and a system of cache management using spatial separation of outliers. The system includes a dynamic compiler arranged to create compiled fragments of code having dominant code blocks and outliers. Memory coupled to the dynamic compiler is managed by a compiler manager such that dominant code blocks are stored in one portion of the memory and the outliers are stored in another portion of the memory. Storing the dominant path code separate from the outliers increases efficiency of the system.
대표청구항▼
1. A computer system comprising:a dynamic compiler; the dynamic compiler including: an execution history recorder configured to record the number of times a fragment of code is executed, the execution history recorder having a threshold; a code-executing interpreter for executing the code coupled to
1. A computer system comprising:a dynamic compiler; the dynamic compiler including: an execution history recorder configured to record the number of times a fragment of code is executed, the execution history recorder having a threshold; a code-executing interpreter for executing the code coupled to the execution history recorder; a compiler manager coupled to the execution history recorder; a compiler coupled to the compiler manager, the compiler arranged to create compiled fragments of code having dominant code blocks and at least one outlier; and wherein memory is coupled to the dynamic compiler, the memory managed by the compiler manager such that dominant code blocks are stored in one portion of the memory and the at least one outlier is stored in another portion of the memory. 2. A system as claimed in claim 1, the outlier having instructions to synchronize states.3. A system as claimed in claim 2, wherein the outlier is operable to pass control to a block of glue code.4. A system as claimed in claim 3, wherein the glue code instructs the code executing interpreter to interpret a non-dominant fragment of code.5. A system as claimed in claim 4, wherein the at least one outlier is patched so as to access a compiled version of the non-dominant fragment of code.6. A system as claimed in claim 1, the dynamic compiler further including at least two outliers, and wherein dominant fragments of code and the at least two outliers are stored in a code buffer in the memory, the dominant fragments of code filled from one end of the code buffer and the at least two outliers filled from the other end of the code buffer.7. A system as claimed in claim 1, the dynamic compiler further including at least two outliers, and wherein dominant fragments of code and the at least two outliers are stored in a code buffer in the memory, the dominant code fragments and at least two outliers filled from the same end of the code buffer.8. A system as claimed in claim 1, the dynamic compiler further including a threshold tuner coupled to the execution history recorder, the threshold tuner operable to adjust the threshold of the execution history recorder.9. A system as claimed in claim 1, the dynamic compiler further including:a memory searcher coupled to the code-executing interpreter; a converter device coupled to the interpreter; and an execution device coupled to the converter device. 10. A system as claimed in claim 1, the dynamic compiler further including a queue coupled to the compiler.11. A system as claimed in claim 1, the compiler manager having a memory manager that monitors memory available to the compiler.12. A system as claimed in claim 11, wherein a deleter is coupled to the memory manager.13. A system as claimed in claim 1, wherein the number of times the fragment of code is executed is recorded when the fragment of code is executed by the code-executing interpreter.14. A system as claimed in claim 1, wherein the dynamic compiler is a multi-threaded system and the compiler runs on a separate thread so the progress of code execution is not blocked.15. A system as claimed in claim 1, wherein the execution history recorder is further configured to record from where a transfer of control into the fragment of code came and to where control is transferred out of the fragment of code.16. A system as claimed in claim 1, wherein the execution history recorder is further configured to alert the compiler manager when the fragment of code has been executed the threshold number of times.17. A system as claimed in claim 16, wherein the compiler manager administers the queue of frequently executed fragments of code for compilation.18. A system comprising:a code-executing interpreter; a memory searcher coupled to the code-executing interpreter; a converter device coupled to the code-executing interpreter; an execution device coupled to the converter device; an execution history recorder configured to record the number of times a fragment of code is compiled, the execution history recorder coupled to the code-executing interpreter and having a threshold; a threshold tuner coupled to the execution history recorder, the threshold tuner operable to adjust the threshold of the execution history recorder; a compiler manager coupled to the execution history recorder; a compiler coupled to the compiler manager; and memory coupled to the compiler and managed by the compiler manager such that dominant blocks of code are stored in one portion of the memory and at least one outlier is stored in another portion of the memory. 19. A system as claimed in claim 18, further comprising a queue coupled to the compiler.20. A system as claimed in claim 19, wherein the compiler manager further includes a memory manager that monitors memory available to the compiler.21. A system as claimed in claim 20, further comprising a deleter coupled to the memory manager.22. A system as claimed in claim 18, wherein the compiler generates compiled fragments of code with only one entry point.23. A method of compiling computer code, the method comprising:establishing an execution threshold within a code-executing interpreter; executing a number of fragments of the computer code; recording the number of times each of the fragments of code is executed; queuing one fragment of code for compilation when the number of times the one fragment of code has been executed matches a threshold; compiling the one fragment of code; generating outliers related to fragments of code that have not been executed the threshold number of times; and storing the one compiled fragment of code and the outliers in separate portions of memory. 24. A method as claimed in claim 23, further comprising adjusting the threshold after it is established.25. A method as claimed in claim 23, further comprising monitoring memory available to the compiler.26. A method as claimed in claim 25, further comprising deleting code from memory to meet the requirements of the compiler.27. A method as claimed in claim 23, further comprising running the compiler on a thread that is separate from a thread of the code-executing interpreter.28. A method as claimed in claim 23, further comprising recording a transfer of control into one fragment of code and a transfer out of the one fragment of code.29. A method as claimed in claim 23, further comprising searching memory for preexisting compiled versions of fragments of code.30. A method as claimed in claim 23, wherein the computer code includes at least one Method, and at least one of the fragments of code includes less than the entire at least one Method.31. A method as claimed in claim 23, further comprising performing an exception check.32. A method claimed as claim 31, further comprising performing a code optimization.33. A method as claimed in claim 31, further comprising interpreting exception code when an exception occurs.34. A method as claimed in claim 31, further comprising establishing a link to a bailout device.35. A method as claimed in claim 31, further comprising passing control to the code-executing interpreter.36. A method as claimed in claim 31, further comprising updating condition states.37. A method as claimed in claim 36, further comprising interpreting exception code after updating condition states.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (36)
Tremblay Marc ; O'Connor James Michael ; Steele ; Jr. Guy L. ; Vishin Sanjay ; Agesen Ole ; Heller Steven ; White Derek R., Bounded-pause time garbage collection system and method including write barrier associated with source and target instan.
Benitez Manuel E. ; Mattson ; Jr. James S. ; Buzbee William B. ; Shah Lacky V., Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control.
Carney William Peter ; England Laurence Edward ; Hochmuth Gary John ; Owings Brian ; Porter Eric Lynn ; Shannon Alfred William ; Wilson Robert Aaron, Event handling in a high level programming language environment.
Gray Jan (Redmond WA) O\Riordan Martin (Maynooth IEX), Method and system for destruction of objects using multiple destructor functions in an object-oriented computer system.
Chang Daniel T. (San Jose CA) Wolfsthal Yaron (Haifa ILX), Method and system for interfacing interpreted applications with compiled procedures using signature files.
Tairaku Hirokazu (Tokyo JPX) Inoue Kenichi (Tokyo JPX) Ito Chiaki (Tokyo JPX) Takimoto Kenji (Tokyo JPX) Tanido Shigetoshi (Tokyo JPX), Method of implementing a relocated compiled library program with an interpreter to control a manufacturing line.
Ju Dz Ching ; Muthukumar Kalyan ; Ramaswamy Shankar ; Simons Barbara Bluestein, Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring.
Alpert Alan I. (Hopewell Junction NY) Greenstein Paul G. (Fishkill NY) Rodell John T. (Wappingers Falls NY) Raghayan Ramanathan (Austin TX), Optimizing assembled code for execution using execution statistics collection, without inserting instructions in the cod.
Alpert Alan I. (Hopewell Junction NY) Greenstein Paul G. (Fishkill NY) Rodell John T. (Wappingers Falls NY) Raghavan Ramanathan (Austin TX), Program construct and methods/systems for optimizing assembled code for execution.
Sidik Judianto (San Jose CA) Leung Paul Chun-Hong (San Jose CA) Ng John Shek-Luen (San Jose CA) Warfield Jay William (San Jose CA), System and method for enabling a compiled computer program to invoke an interpretive computer program.
Palay Andrew J. (Mountain View CA) Unni Shankar (Campbell CA) Mehta Michey N. (San Jose CA), System and method for enabling, without recompilation, modification of class definitions and implementations in an objec.
Mattson ; Jr. James S. ; Shah Lacky V. ; Buzbee William B. ; Benitez Manuel E., System, method, and product for multi-branch backpatching in a dynamic translator.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.