CN110168508A - Via effective breaking point detection of cache - Google Patents
Via effective breaking point detection of cache Download PDFInfo
- Publication number
- CN110168508A CN110168508A CN201780083409.6A CN201780083409A CN110168508A CN 110168508 A CN110168508 A CN 110168508A CN 201780083409 A CN201780083409 A CN 201780083409A CN 110168508 A CN110168508 A CN 110168508A
- Authority
- CN
- China
- Prior art keywords
- cache
- storage address
- monitoring
- miss
- breakpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title abstract description 9
- 238000003860 storage Methods 0.000 claims abstract description 176
- 238000012544 monitoring process Methods 0.000 claims abstract description 92
- 238000000034 method Methods 0.000 claims description 17
- 230000000717 retained effect Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims 1
- 238000007689 inspection Methods 0.000 description 27
- 238000007726 management method Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000000151 deposition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Effective breaking point detection via cache includes monitoring memory location by the cache-miss in detection cache.The reservoir address that will be monitored is stored in monitoring list, and if there is any cache line with reservoir address overlap in cache, is evicted from.When detecting based on memory access operation generation cache-miss, determine whether a part for importeding into the cache line in cache based on cache-miss is Chong Die with the storage address being stored in monitoring list.When there is overlapping, one or more monitoring operations are handled to storage address, and evict the cache line of importing from from cache.
Description
Background technique
When writing code during the exploitation in software application, developer generally take plenty of time " debugging " code with
Find the run time error in code.In doing so, if developer can take drying method to carry out source code mistake
It reproduces and localizes, the behavior of program is such as observed based on different inputs, insertion debugging code is (for example, printing variate-value, chasing after
Track executes branch etc.), temporarily delete code section etc..Tracking run time error is opened with finding out that code error may occupy to apply
Send out a big chunk of time.
The debugging application (" debugger ") of many types has been developed to assist developer to carry out code debugging mistake
Journey.These tools enable developer to track, visualize and change the execution of computer code.For example, debugger can incite somebody to action
Code command executes visualization, variate-value can be presented in the different time during code execution, can enable developer
Enough change code execution path, and/or can enable developer be arranged on interested code element " breakpoint " and/or
" point of observation " (when reaching during execution, the execution of code being caused to be suspended) etc..
A kind of debugging application of emerging form enables " time travel ", " reversed " or " history " debugging, wherein program
It executes and is recorded/traced into one or more tracking files by tracking application, then one or more of tracking files can be with
It is used to the execution of playback programs later, for carrying out forward and backward analysis.For example, " time travel " debugger can make
To breakpoint/point of observation (as traditional debugging device) and reversed breakpoint/point of observation before developer's setting.
One in realization " time travel " debugger challenge relate to how reset in a manner of flexible and efficient with
It detects when to encounter point-of-interest (for example, breakpoint/point of observation) during track file.The one kind explored is used for during playback
The mechanism of tracking point of interest is the Hardware Breakpoint realized using processor.Although high-performance, the use of Hardware Breakpoint has
The shortcomings that seriously limiting breakpoint quantity (for example, four in INTEL processor) that can be monitored simultaneously, and will inherently adjust
Examination device realizes the hardware for being tied to specific support.
Another mechanism explored is wherein, to access each tracking operation (example of memory using software breakpoint
Such as, to the reading or write-in of the memory of storing data, or the reading/extraction executed from the memory of storage program code)
It is all accompanied with extracode instruction, checks whether access will lead to and encounters breakpoint.However, incidentally have the shortcomings that it is serious, i.e.,
No matter whether the memory access actually encounters breakpoint, checks whether breakpoint occur in every memory access Shi Douhui.Permitted
In multi-environment, the execution of subsidiary code command causes for every memory access all using tens of to hundreds of additional places
The device period is managed, this has significant adverse effect to the appreciable playback performance of human user.
Summary of the invention
At least some embodiments described herein are related to using cache (for example, the high speed of hardware or emulation processor
Caching or some other cache memory architectures) it detects when to occur to storage address that is just monitored or monitoring
Access (for example, for read, be written or taking-up/execution).In other words, the use that the embodiments herein passes through cache
Effective breaking point detection is provided, the quantity for needing to be implemented the memory access operation of breakpoint inspection is significantly limited.As herein
Described, embodiment makes it possible to execute breakpoint inspection when cache-miss occurs.Therefore, the embodiments herein is not pair
Each memory access is carried out breakpoint inspection, but breakpoint inspection is limited to only result in, depositing for cache-miss occurs
Reservoir access.Compared with existing solution, the embodiments herein greatly subtracts when can detect breakpoint during tracking playback
Few expense as caused by debugger (for example, checking the additional processor period that breakpoint occurs).
In some embodiments, it includes the mark storage to be monitored that memory location is monitored by using cache
Device address, and at least based on the storage address is identified, the storage address is stored in monitoring list and is determined
Whether (multiple) any cache line Chong Die with the storage address is already present in cache.If high speed is slow
It is implicitly present in (multiple) any such cache line in depositing, then evicts them from the cache from.When detecting
When cache-miss occurs based on memory access operation, which includes determining to be based on the cache-miss
Imported into another cache line in the cache a part whether be stored in the monitoring list described in
Storage address overlapping.When the part of the cache line of importing is really Chong Die with the storage address, will handle
To one or more monitoring operations of the storage address, and evict from the cache cache of the importing from
Row.
There is provided the content of present invention is to introduce some concepts in simplified form, these concepts will be in following specific reality
It applies in mode and further describes.The content of present invention is not intended to the key features or essential features for identifying theme claimed,
It is intended to be used to assist in the range of theme claimed.
Detailed description of the invention
It, will be by reference to institute in attached drawing in order to describe that the mode of above and other advantages and features of the invention can be obtained
The specific embodiment of diagram is presented the more specific description of the invention being briefly described above.It should be understood that these attached drawings are only retouched
Exemplary embodiments of the invention have been drawn, therefore have been not considered as restriction on its scope, the present invention will be by using attached drawing benefit
It is described and is explained with supplementary features and details, in which:
Fig. 1, which is shown, helps the example computing device that cache promotes effective breaking point detection;
Fig. 2 shows the example embodiment of the replay component using cache related with storage operation is executed;
Fig. 3 shows the example embodiment of replay component;
Fig. 4 shows the example flow diagram that breakpoint inspection is executed when cache-miss occurs;And
Fig. 5 shows through the use of cache the example flow diagram for monitoring the method for memory location.
Specific embodiment
At least some embodiments described herein are related to the use of cache (for example, the height of hardware or emulation processor
Speed caching or some other cache memory architectures) it detects when to occur to memory that is just monitored or monitoring
Location access (for example, for read, be written or extraction/execution).In other words, the embodiments herein is by using cache
Effective breaking point detection is provided, the number for needing to be implemented the memory access operation of breakpoint inspection is significantly limited.As herein
Described, embodiment ensures only just to need to be implemented breakpoint inspection when cache-miss occurs.Therefore, the embodiments herein is not
It is breakpoint inspection to be carried out to each memory access, but breakpoint inspection is limited to only result in generation cache-miss
Memory access.Therefore, compared with existing solution, when the embodiments herein can detect breakpoint during tracking playback
Greatly reduce the expense as caused by debugger (for example, checking the additional processor period that breakpoint occurs).
(multiple) memory that specifically, the embodiments herein operates to ensure to evict from and be monitored from cache
Corresponding (multiple) any cache lines in location.For example, according to the embodiments herein, it, will be based on disconnected when defining new breakpoint
The point storage address to be monitored is added to monitoring list.In addition, if existing in cache at the time of defining breakpoint
(multiple) any cache line Chong Die with storage address, then evict them from from cache.When based on to storage
The access of device address and when cache-miss occurs, execute breakpoint inspection.Specifically, will based on cache-miss and
It imported into the cache line in cache and is compared with the storage address list monitored in list, to determine whether to deposit
It is being overlapped.If be not overlapped, cache-miss is normally followed, and it is slow to allow cache line to be retained in high speed
In depositing.However, if there is overlapping, then the one or more monitoring operations of execution (for example, it is determined whether breakpoint is actually encountered,
And the generation of breakpoint is handled when encountering breakpoint).In addition, if there is overlapping, then cache line is evicted from from cache,
If visited again later so that another cache-miss --- and another breakpoint inspection will be executed --- will occur
If asking storage address.In this way, it is only necessary to the memory access operation for leading to generation cache-miss
Breakpoint inspection is executed, rather than breakpoint inspection is carried out to each memory access operation.
As used in the present description and claims, term " breakpoint " and " point of observation " are used interchangeably, to refer to
In generation, causes to reset with the point-of-interest of interruption/pause executable code playback when being encountered.Particularly, breakpoint/point of observation
Memory location corresponding with the specific part of executable code be may refer to (for example, code line, variable-definition, function are fixed
Justice etc.) and/or memory location corresponding with the data stored by executable code (for example, store the value variable, constant,
The memory location of data structure etc.).Therefore, breakpoint/point of observation may refer to the storage address of the executable code of storage
And/or the storage address of the runtime storage used by execution code.
In addition, the embodiments herein is not limited to when referring to " storage address " for breakpoint/point of observation and monitored
Monitor the byte at the individual address.On the contrary, successive byte of the embodiment monitoring to any given quantity since the address
Access.Therefore, monitoring is also referred to since the address to any reference of monitoring " address " or " storage address " herein
The range of the byte of specified quantity.
In order to realize foregoing teachings, Fig. 1, which is shown, helps the example calculations that cache promotes effective breaking point detection
Environment 100.As depicted, embodiment may include or utilize the dedicated or general purpose computer system including computer hardware
101, computer hardware such as one or more processors 102, system storage 103, one or more data storages
104, and/or input/output hardware 105 (for example, all keyboard/mouse hardware 105a as depicted, networking hardware 105b and aobvious
Show equipment 105c).In some embodiments, computer system 101 and component therein may include virtualized environment.
Embodiment in the scope of the invention includes for carrying or storing computer executable instructions and/or data structure
Physics and other computer-readable mediums.Such computer-readable medium can be times that can be accessed by computer system 101
What usable medium.The computer-readable medium for storing computer executable instructions and/or data structure is computer stored equipment.
The computer-readable medium of load capacity calculation machine executable instruction and/or data structure is transmission medium.Therefore, as example rather than
Limitation, the embodiment of the present invention may include at least two completely different computer-readable mediums: computer stored equipment and
Transmission medium.
Computer stored equipment is to store the physical hardware devices of computer executable instructions and/or data structure.It calculates
Machine storage facilities includes various computer hardwares, and such as RAM, ROM, EEPROM, solid state drive (" SSD "), flash memory, phase transformation are deposited
It reservoir (" PCM "), optical disk storage, disk memory or other magnetic storage facilities or can be used to hold with computer
The form of row instruction or data structure stores program code and can be accessed and be executed to be realized this hair by computer system 101
Bright disclosed functional (one or more) any other hardware device.Thus, for example, computer stored equipment can wrap
It includes discribed system storage 103, can store computer executable instructions and/or the discribed data of data structure are deposited
Other reservoirs of storage 104 or such as processor storage internal etc, as discussed later below.
Transmission medium may include network and/or data link, can be used to load capacity calculation machine executable instruction or
The program code of data structure form, and can be accessed by computer system 101." network " is defined as can be in computer
One or more data link of electronic data are transmitted between system and/or module and/or other electronic equipments.When passing through network
Or another communication connection (hardwired, wireless or hardwired or wireless combination) is to computer system when transmitting or providing information,
The connection can be considered as transmission medium by computer system.Combinations of the above should also be included in the range of computer-readable medium
It is interior.For example, input/output hardware 105 may include networking hardware 105b (for example, hardwired or wireless network interface modules),
It connects the network and/or data-link that can be used to the program code of load capacity calculation machine executable instruction or data structure form
Road.
In addition, when reaching various computer system components, the program of computer executable instructions or data structure form
Code can be off-loaded automatically from transmission medium and be transmitted to computer stored equipment (vice versa).For example, passing through network or data
The received computer executable instructions of link or data structure can be buffered in the RAM in network hardware 105b, then most
Be sent to eventually the less volatibility at system storage 103 and/or computer system 101 computer stored equipment (for example,
In data storage 104).It should therefore be understood that can include utilizing transmission at also (or even main) for computer stored equipment
In the computer system component of medium.
Computer executable instructions include such as instruction and data, are performed when at (multiple) processor 102, described
Instruction and data makes computer system 101 execute specific function or functional group.Computer executable instructions can be such as two into
File processed, the intermediate format instructions of such as assembler language etc or even source code.
It will be understood by those skilled in the art that can be in the network computing environment of the computer system configurations with many types
The middle practice present invention, including personal computer, desktop computer, laptop computer, message handling device, handheld device, many places
Manage device system, based on microprocessor or programmable consumer electronics, network PC, minicomputer, mainframe computer, mobile electricity
Words, PDA, tablet computer, pager, router, interchanger etc..The present invention can also be practiced in distributed system environment,
In hardwired data links, wireless data link or group by hardwired and wireless data link (passed through by network linking
Close) local and remote computer system be carried out task.In this way, computer system can wrap in distributed system environment
Include multiple composition computer systems.In distributed system environment, program module can be located locally and remote memory storage
In equipment.
As illustrated, data storage 104 can store the computer executable instructions and/or data knot for indicating application code
Structure, such as track record component 106a, tracking replay component 106b, operating system 107 and application 108 (including apply 108
Executable code 108a part).Data storage 104 can also store other kinds of data, it is such as one or more with
Track file 109.When application code is carrying out (for example, using (multiple) processor 102), system storage 103 can be deposited
Store up corresponding runtime data, runtime data structure, computer executable instructions etc..Therefore, Fig. 1 is by system storage
103 106'(of recording/reproducing data when illustratively including operation include replay data structure 106c), operation when operating system data
107' and using data 108'(include using 108 run-time variables, data structure when being executed etc. and conduct when operation
The runtime code part 108a' of copy in the memory of code section 108a).
Track record component 106a can be used for tracking the execution of application, such as answering including its executable code part 108a
It is stored in (multiple) tracking files 109 with 108, and by tracking data.In some embodiments, component 106a is tracked and recorded
Independent utility, and in other embodiments, it be integrated into such as operating system 107, management program, debugging external member etc. it
In another component software of class.Track record component 106a can also exist in entirely different computer system.Therefore, with
Track record component 106a can track code in the execution of another computer systems division.Then, (multiple) generated by the tracking
Tracking file 109 can be transmitted (for example, being used for computer system 101 by tracking playback group using networking hardware 105b)
Part 106b is reset.Although (multiple) tracking files 109 are depicted as being stored in data storage 104, they can also be by
Exclusively or it is temporarily recorded in system storage 103 or at some other storage facilities.
Fig. 1 further includes that simplifying for the internal hardware component of (multiple) processor 102 indicates.As illustrated, each processor
102 include multiple processing unit 102a.Each processing unit can be (that is, physical processor core) and/or logic of physics
(that is, the logic core presented by the physical core of support hyperthread, wherein executing more than one application at physical core
Thread).Thus, for example, even if processor 102 can only include single physical processing unit (core) in some embodiments,
It also may include two or more processing units 102a presented by the single physical processing unit.
Each processing unit 102a is executed by application (for example, track record component 106a, tracking replay component 106b, behaviour
Make system 107, application code part 108a etc.) defined in processor instruction, and from predefined processor instruction set frame
Which is selected instruct in structure.The particular, instruction set framework of each processor 102 be based on processor manufacturer and processor model and
Variation.Universal instruction set framework includes IA-64 and IA-32 framework from INTEL Corp., from advanced micromodule equipment company
AMD64 framework and various Advance RISC Machines (" ARM ") framework from ARM Pty Ltd, but exist it is many its
It his instruction set architecture and can be used by the present invention.In general, " instruction " is the minimum outside that can be executed from processor
The code unit of (that is, outside processor).
Each processing unit 102a is from shared processor cache 102b (that is, being shared by processing unit 102a) acquisition
Manage device instruction, and based in shared cache 102b data, based on the data in register 102c, and/or not defeated
Processor instruction is executed in the case where entering data.In general, shared cache 102b is the part of storage system memory 103
The random access memory of a small amount of (that is, a small amount of for the system storage 103 of typical amount) of copy in processor.Example
Such as, when executing the executable code part 108a for applying 108, shared cache 102b is by runtime code part 108b'
Subset be stored in the code cache part of shared cache 102b, and using data 108' when other are run
(for example, variable, data structure etc.) is stored in the data high-speed caching part of shared cache 102b.At (if multiple)
Reason unit 102a needs to be not yet stored in the data in shared cache 102b, then " cache-miss " occurs, and
And the data (some other data may be evicted from from shared cache 102b) are extracted from system storage 103.Register
102c is hardware based storage location, is based on the instruction set architecture of (multiple) processor 102 and is defined.
What tracking replay component 106b was based on by executing (multiple) tracking files 109 at (multiple) processor 102
The code of executable entity comes from reasonable time to code supply to reset one or more tracking files 109
The tracking data (for example, register value, memory value etc.) of (multiple) tracking files 109.Thus, for example, track record component
106a can be recorded at (multiple) processor 102 using 108 one or more code section 108a execution, while will be with
Track data (for example, code command of the memory value read by code command, register value supply) are stored in (multiple) tracking
In file 109.Then, tracking replay component 106b can re-execute (multiple) code section at (multiple) processor 102
108a, while the tracking data to code supply from (multiple) tracking files 109, so that code is to track the time with it
Identical mode is performed.
Replay component 106b is tracked also by executing breakpoint inspection related with cache-miss come during playback
Detect the breakpoint in code.For example, tracking replay component 106b can use cache 102b at processor, or can be with
Using some other caches, the cache in system storage 103 is such as stored in as replay data structure 106c.
Fig. 2 shows the example embodiment of the replay component using cache related with storage operation is executed
200.Particularly, the embodiment 200 of Fig. 2 shows to execute on memory 202 and reads 201a and/or be written what 201b was operated
Replay component 201 (for example, tracking replay component 106b of such as Fig. 1).Memory 202 may include the system storage of Fig. 1
103 a part.In some embodiments, memory 202 includes the data structure that is maintained by replay component 201 (for example, such as
Replay data structure 106c), which is reproduced in the memory actually observed during tracking and reads and/or be written.Cause
This, for example, memory 202 may include replay data structure 106c comprising can be by tracked executable entity addressing
The cache data structure of reading etc. that the tracked entity of whole memory copy, reproduction is seen.
Memory 202 includes storing the memory (for example, code section 108a') of the code of executable entity and by can
Execute the operation memory that the code of entity uses.Therefore, read 201a operation may include obtained from memory 202 it is executable
The code of instruction is read, and/or obtains the runtime data being stored in memory 202 (for example, variable or other data knots
Structure) reading data.Write-in 201b operation may include the data write-in being stored in runtime data in memory 202.Though
Right Fig. 2, which is depicted, reads 201a and write-in 201b operation, but it is to be understood that when memory access operation is just in fetcher code number
According to when, processor operation can be considered as " execution " or " extraction " operation.As used in the present specification and claims
, it reads 201a and operates " execution " and/or " extraction " memory access operation that should be interpreted as including in the appropriate case, it is all
Such as when operation is just in access code data.
As depicted in Figure 2, replay component 201 is executed by cache 203 reads 201a and write-in 201b operation.
In general, cache 203 is operated in the mode similar with processor cache (for example, cache 102b of Fig. 1).Cause
This, in general, cache 203 stores multiple cache lines, each cache line can with (for example, in system storage
In 103) storage address is associated, and stores since the storage address and may span across several storage address
The cached copy of a part of the memory of (size depending on cache line).Therefore, each cache line can
To include the data being stored in multiple storage address.
Other than using cache 203 in a usual manner, replay component 201 is also to promote that cache only is occurring
The mode that breakpoint inspection is executed when miss uses cache 203.Specifically, replay component 201 ensures to include and be stored in
Any cache line (for example, replay data structure 106c) of the data of storage address overlapping in monitoring or monitoring list
Holding is expelled out of from cache.Therefore, replay component 201 is evicted from and is made when the breakpoint is added to monitoring list for the first time
For breakpoint theme storage address overlapping (multiple) any cache line, and also evict from when it and monitoring list in
The overlapping of any storage address when any cache line for being imported due to cache-miss.This will in conjunction with Fig. 3 into
Row description, Fig. 3 show replay component 300 example embodiment (for example, corresponding to Fig. 1 tracking replay component 106b or
The replay component 201 of Fig. 2).
Although it is worth noting that, for ease of description, describing through the use of cache and monitoring memory position
The embodiment set, but in the context of playback (that is, tracking replay component 106b/ replay component 300), it will be appreciated that these
Embodiment is also applied in the context of record (that is, track record component 106a).For example, debugging application can also in record
It identifies to monitor memory location and encounters breakpoint/point of observation.Therefore, it is retouched in conjunction with tracking replay component 106b/ replay component 300
The component and movement stated are equally applicable to track record component 106a.
As depicted in figure 3, replay component 300 may include multiple sub-components, such as, memory access component
301, breakpoint component 302, monitoring list element 303 and/or cache management component 304.Discribed sub-component 302-304
Mark and arrangement be merely possible to an example of description auxiliary, and it will be appreciated by those of ordinary skill in the art that playback group
The specific identifier and quantity of the sub-component of part 300 can be based on realizations and great changes have taken place.
Memory access component 301 executes storage operation to memory 202 by cache 203, such as reads
201a and/or write-in 201b, to be reset based on tracking file 109.For example, based on code (for example, code section
It 108a) is played out and/or based on the data in (multiple) tracking files 109, memory access component 301 can execute memory
201a and/or write-in 201b are read to memory 202.
Breakpoint component 302 manage user-defined breakpoint/point of observation on the code section 108a that is such as just being played out it
The breakpoint defined in debugging application (for example, application comprising replay component 300) of class, or storage are determined by code section 108a
The data structure of justice or the storage address of variable.Therefore, when breakpoint/point of observation is defined, the mark storage of breakpoint component 302
Interested corresponding storage address in device 202.After identifying interested storage address, breakpoint component 302 uses prison
It surveys list element 303 address is stored in monitoring list.As mentioned above, term " storage address " is also refer to deposit from this
The successive byte range that memory address starts.In this way, breakpoint component 302 can store the base to be monitored in monitoring list
Location, and the byte quantity to be monitored since the address.Breakpoint component 302 also requests no longer needing storage address
When --- such as when removing user-defined breakpoint/monitoring point --- from monitoring list in remove storage address.
Description as combined Fig. 4 and cache management component 304 discusses in more detail, breakpoint component 302 is also used
Monitoring list executes breakpoint inspection after cache-miss occurs, it is determined whether was likely encountered breakpoint/point of observation.When
When being likely encountered breakpoint/point of observation, one or more monitoring operations are can also be performed in breakpoint component 302, are comprised determining whether
It effectively meets breakpoint and removes the operation of imported cache line from cache.
Monitoring list element 303 receives one or more interested storage address from breakpoint component 302, and by those
Each of address (and possible since the byte quantity to be monitored each address) is stored in monitoring list, such as
Replay data structure 106c is stored in system storage 103 by tracking replay component 106b.Monitoring list element 303 goes back root
Interested storage address is removed from monitoring list according to the request from breakpoint component 302.The address monitored in list can
To promote appointing for such as realization target of the use of fast search, efficient memory, addition/deletion address speed or the like
What data structure appropriate is stored, array, chained list, layered structure etc..
During the operation of memory access component 301, cache management component 304 leads the part of memory 202
Enter into cache 203, and evicts the part of memory 202 from from cache 203 in due course.As described above, high speed
Caching 203 is usually operated in a manner of being similar to processor cache.Therefore, the management of cache management component 304 high speed
Caching 203, so that the part of the memory 202 of recent visit is stored in the addressable data line in cache 203 by it.
In this way, when memory access component 301 is accessed and (reads 201a or write-in 201b operation for example, executing) in memory 202 not yet
When being present in the storage address in cache 203, occur " cache-miss ", and since the storage address
A part of the data of (and may span across multiple storage address) is directed in a line of cache 203.Then, by
Memory access component 301 executes the subsequent operation to the storage address to the row data in cache 203.If
When being all full cache-miss occurs for all rows in cache 203, then will be (for example, minimum recently accessed
) a line " evicting from " returns to memory 202, allow to imported into new data in cache 203.
However, cache management component 304 is herein in connection with breakpoint group other than executing these standard cache functions
Part 302 and monitoring list element 303 are operated, using ensure to evict from from cache 203 with as breakpoint/point of observation master
Storage address (successive byte including the specified quantity since the storage address) overlapping of topic is directed to high speed
(multiple) any cache line (regardless of whether having effectively met breakpoint/point of observation) in caching 203.As previously indicated,
Embodiment operation ensures to include and any cache line for the Chong Die data of storage address being stored in monitoring list
Holding is expelled out of from cache.
Therefore, new breakpoint/point of observation is identified in conjunction with breakpoint component 302, and monitor list element 303 to break with this
The corresponding interested storage address of point/point of observation is added to monitoring list, if Chong Die with the storage address is (more
It is a) any cache line is present in cache 203, cache management component 304 from cache 203 by
(multiple) any cache line Chong Die with the storage address out.Which ensure that the height Chong Die with storage address in next time
When be directed in cache 203 later cache-miss will occur for fast cache lines.Note that when it is added to monitoring
When list, storage address (including since the byte quantity the address) can be slow with single high speed existing in cache
Existing multiple cache line overlappings in capable or cache are deposited, and therefore can evict multiple cache lines from.Example
Such as, interested memory in byte quantity, cache line size and/or the cache line monitored at the address
Location (including bytes range) start, data relevant to interested individual address can across two (or more) cache
Row.
In addition, cache management component 304 is to breakpoint component 302 after detecting cache-miss occurs
Notice cache-miss is (so that breakpoint component 302 may determine whether to be overlapped and may execute one or more
Monitoring operation).Then, based on from the received instruction of breakpoint component 302, when the cache line and the address weight in list is monitored
When folded, cache management component 304 evicts the high speed being directed in cache 203 related with cache-miss from
Cache lines.
For example, Fig. 4 shows the example flow diagram 400 for executing breakpoint inspection after cache-miss occurs.
Flow chart 400 starts and proceeds to the frame 402 for detecting cache-miss at frame 401.For example, frame 402 can be
Memory access component 301 executes memory access operation to storage address of the not yet cache in cache 203
(for example, reading 201a and/or write-in 201b) Shi Fasheng.Therefore, cache-miss occurs, and at frame 403, high speed
Cache line is imported into cache 203 by cache management component 304, which includes to come from memory 202
In data corresponding with memory access operation.
Appearance based on frame 402 and/or 403, cache management component 304 are also slow to the notice high speed of breakpoint component 302
Deposit miss.Therefore, at decision box 404, then breakpoint component 302 executes overlapping and checks to determine whether to have encountered breakpoint
It (that is, "Yes" from decision box 404) or not yet encounters breakpoint (that is, "No" from decision box 404).Overlapping checks to include disconnected
Point component 302 by the address monitored in list with the memory that is stored in frame 403 in imported cache line
Location is compared.If there is overlapping, it would be possible that having encountered breakpoint.If be not overlapped, breakpoint is not yet encountered.
Overlapping checks to may include inspection to cache line address associated with cache line, and/or to depositing
The analysis for any extra address that the data in cache line also cover is stored up (for example, in memory also will be slow in high speed
Deposit row in cache line address after those of address).Therefore, when determine monitoring list in monitored address whether with
When the cache line overlapping of importing, overlapping checks that the cache line address that can include determining that the cache line of importing is
It is no correspond to previously when monitored address is added to monitoring list from cache deported cache line high speed
Cache row address, even if and/or determine whether monitored address be that cache line is covered address --- it is not high speed
Cache row address.
As depicted, if breakpoint component 302 determines that breakpoint is not Chong Die with cache line (that is, because monitoring list
In address and the address in the cache line of importing it is not be overlapped), then flow chart 400 terminates at 405.In such case
Under, since the cache line of importing is retained in cache 203, normally follow cache-miss.Therefore, example
Such as, breakpoint component 302 can notify cache management component 304 to stay in the cache line of importing in cache 203,
So management assembly 304 stays in the cache line of importing in cache 203.
However, if 302 determination of breakpoint component may encounter breakpoint (that is, because monitoring list in address with lead
The address overlap in cache line entered), then flow chart 400 proceeds to the frame 406 of execution (multiple) monitoring operation and evicts from
The frame 407 of cache line, then terminates at frame 408.Note that even if the cache line being directed in cache can
It can include the storage address Chong Die with the particular memory address being located in monitoring list, the code reset is actually
Possibly can not be from the cacheline access particular memory address (and being therefore actually not likely to be encountered breakpoint).This is
Because as previously discussed, cache line may include data corresponding with multiple storage address, including particular memory
Device address.Therefore, because to the memory access operation of the storage address in addition to particular memory address, just monitored
Particular memory address may be directed in cache line.
In block 406, breakpoint component 302 executes one or more monitoring operations.(multiple) these operations may include true
The fixed monitored storage address whether actually encountered as breakpoint/point of observation theme, reports the experience (for example, debugging
At user interface in) and/or cause to evict the cache line from by frame 407.(multiple) specific operation being performed can
Changed with the property based on the memory access operation (read 201a or 201b is written) for leading to cache-miss.
For example, if the operation of cache-miss is caused to be from reading data or write-in data, (multiple) operations
Can be 1) (multiple) processor 102 to be placed in Verbose Mode, a processor instruction makes 102 single -step operation of (multiple) processor
(single-stepping), the execution journal (since (multiple) processor is placed in Verbose Mode and generating) of instruction 2) is checked
With determine whether to encounter breakpoint (that is, determine monitored storage address whether be read or write-in) and 3) by cache
Row evicts (frame 407) from.(multiple) operations can also report result (for example, at user interface of debugging application).Therefore, these
Operation, which will lead to, occurs the breakpoint inspection for being read out or being written to data after reading or generation is written.However, these are grasped
It can change, so that opposite situation is set up and (occurred that is, checking breakpoint before reading or writing).
In some cases, " monitoring operation " of frame 406 can determine that encountering breakpoint carries out any monitoring without practical.
For example, when the monitored bytes range since theme storage address covers the cache line entirely imported, monitoring
Operation can determine encounter breakpoint and execute appropriate type operation (for example, monitored storage address it is just monitored with into
Row is read, and is read).Therefore, although being referred to as in the present specification " monitoring operation ", the operation in frame 406 can
To include means for determining whether (multiple) that encounter breakpoint even if any operation --- it is not carried out actual monitoring.
After executing (multiple) monitoring operation in block 406, in frame 407, cache management component 304 is from breakpoint
Component 302 notifies the cache line for evicting the importing in cache 203 when doing so from.It is worth noting that, the height imported
Fast cache lines are removed from cache 203 --- regardless of whether actually encountering breakpoint ((multiple) monitoring operation in such as frame 406
It is identified).This is because replay component 300 ensure to evict from from cache it is Chong Die with any monitored storage address
Any cache line, thus whenever exist the cache-miss Chong Die with monitored storage address when execute needle
Breakpoint inspection to each monitored storage address.
Some cache optimizations may be implemented to further increase monitoring by using cache in some embodiments
The performance of memory location, and/or reduce cache and use.For example, cache line can be imported by some embodiments
It specifies in the memory for monitoring, rather than imported into normal cache.Therefore, " evict from " may include cancelling reference
The position of cache line in designated memory otherwise makes it invalid, rather than execute actual cache by
It operates out.Cache line can be imported into cache by other embodiments, but be then moved into another and faced
When memory location to be monitored, and evict it from from the temporary memory location.Therefore, term " evicting from " should be interpreted
Any operation that cache line will be kept invalid, whether actually no matter this is evicted from is evicted operation to cache execution.
Some embodiments also merge cache-miss.For example, if frequently access cache line is (for example, conduct
A part of circulation, function etc.), then some embodiments can to avoid frequently evicting cache line from during the visit at these,
Monitoring operation is executed to cache line when cache line is present in cache, is then evicted from after frequent access stops
It.Different heuristicses can be used to determine whether that cache line should be considered as to frequent access.For example, in thread stacks
The cache line for data breakpoint can execute possess the function of the stack frame when be retained, being directed in function
The cache line of breakpoint can be retained, etc. when executing the code of the function.
In view of aforementioned, Fig. 5 shows showing for the method 500 for monitoring memory location by using cache
Example flow chart.It is combined with the component and data described in conjunction with Fig. 1-Fig. 4 to describe Fig. 5.Although method 500 is illustrated as a system
Column movement, but the particular order of the movement in method 500 is not limited to shown sequence.
As illustrated, method 500 includes the movement 501 of the mark storage address to be monitored.For example, movement 501 can
To include that the mark breakpoint/point of observation of breakpoint component 302 has been defined (for example, defeated by the user at debugging software application
Enter).In conjunction with defined point of observation, breakpoint component 302 can be identified as breakpoint/point of observation result and depositing for being monitored
Memory address.The store code (for example, runtime code part 108a') that storage address may include and just be played out is opposite
The storage address or corresponding with the runtime storage as used in code (for example, applying data 108' when operation) answered
Storage address.
Method 500 further includes the movement 502 being stored in storage address in monitoring list.Acting 502 may include, until
It is few to be based on mark storage address, storage address is stored in monitoring list.For example, being made based on the mark of breakpoint component 302
The storage address to be monitored for breakpoint/point of observation result, monitoring list element 303 can deposit the storage address
It stores up in monitoring list (including the byte quantity to be monitored started at the address), such as replay data structure 106c.It takes
Array, chained list, layered structure etc. can be used to store the monitoring list in certainly Yu Shixian.
Method 500 further includes evicting (multiple) cache line Chong Die with storage address from (if if they exist, which)
Movement 503.Movement 503 may include, at least based on mark storage address, determine Chong Die with storage address one or
Whether multiple cache lines are already present in cache, and in the presence of one or more cache lines, from height
One or more cache lines are evicted from speed caching.For example, identifying in conjunction with breakpoint component 302 as breakpoint/point of observation knot
Fruit and the storage address to be monitored, and monitor list element 303 and the storage address is stored in monitoring list, it is high
Fast cache management component 304 is evicted from the storage address from cache 203 (including the specified bytes model since the address
Enclose) overlapping any cache line --- if they exist, which in cache 203.In some embodiments, this
It is to be completed in the case where breakpoint component 302 is issued and instructed to cache management component 304.Doing so ensure that when to being marked
Cache-miss will be present when occurring in the memory access operation of the storage address of knowledge.
Method 500 further includes the movement 504 that cache-miss occurs for detection.Movement 504 may include based on storage
Device access operation detects the generation of cache-miss.For example, based on the access of memory access component 301 not yet in high speed
The memory access operation of the part of memory 202 in caching 203, cache management component 304 can be in cache
Cache-miss is registered on 203, and the part of memory 202 is imported into the cache line in cache 203
In.
Method 500 further include determine the cache line that is imported based on cache-miss whether with storage address
The movement 505 of overlapping.Movement 505 may include, at least based on the generation of cache-miss, determining based on cache not
Hit the cache line in imported into cache a part whether be stored in the storage address monitored in list
Overlapping.For example, cache management component 304 can be to breakpoint component when acting generation cache-miss in 504
302 notice cache-miss.The cache that breakpoint component 302 can will then be imported based on cache-miss
Row with monitoring list be compared, with determine monitoring list in any address (including their specified range) whether at a high speed
Cache lines overlapping.
As illustrated, movement 504 includes movement 505a of the processing to the monitoring operation of storage address.Acting 505a can be with
Including handling one or more to storage address when a part of the cache line of importing is Chong Die with storage address
A monitoring operation.For example, if breakpoint component 302 determines that importeding into high speed based on cache-miss delays in movement 505
The cache line deposited is really Chong Die with the storage address being stored in monitoring list, then breakpoint component 302 can handle
One or more monitoring operations make (multiple) processor 102 such as to determine that (multiple) processor 102 is placed in Verbose Mode
Single -step operation, report result etc..As discussed, even if being practically without the monitored storage address of access, it is also possible to send out
Raw overlapping.Therefore, in these cases, processing can include determining that one or more monitoring operations of storage address to work as and deposit
Reservoir access operation does not encounter breakpoint when not being written or read storage address.Alternatively, if encountering breakpoint, one
A or multiple monitoring operations may include that the result of breakpoint inspection (for example, encountering breakpoint with instruction) is reported at user interface.
Movement 504 further includes the movement 505b for evicting the cache line of importing from.Movement 505b may include, when importing
When a part of cache line is really Chong Die with storage address, the second cache line is evicted from from cache.It can replace
Dai Di, when the part of the cache line of importing is not Chong Die with storage address, the second cache line is retained in height
In speed caching.For example, if breakpoint component 302 determines in movement 505 imported into cache based on cache-miss
In cache line really be stored in monitoring list in storage address it is Chong Die, then breakpoint component 302 can indicate height
Fast cache management component 304 evicts that a line from from cache.It is worth noting that, regardless of whether actually encountering breakpoint (example
Such as, as determined by movement 505a), cache line is all removed from cache.This is because replay component 300 ensures
Any cache line Chong Die with any monitored storage address is evicted from from cache, to be related to whenever existing
The breakpoint inspection to each monitored storage address is carried out when the cache-miss of monitored storage address.
Therefore, embodiment described herein ensure to evict from from cache and just monitored (multiple) storage address
Corresponding any (multiple) cache lines, to only execute breakpoint inspection to cache-miss.Therefore, when definition is new
When breakpoint, monitoring list will be added to based on the storage address that breakpoint to be monitored, and if at a high speed when defining breakpoint
There is (multiple) any cache line Chong Die with storage address in caching, then evicts them from cache from.So
Afterwards, when cache-miss occurs based on the access to storage address, breakpoint inspection is executed.Specifically, it will be based on
Cache-miss imported into the cache line in cache and is compared with the storage address list monitored in list
Compared with to determine whether there is overlapping.If there is no overlapping, then normally following cache-miss, and allow high speed
Cache lines retain in the caches.However, if there is overlapping, then executing one or more monitoring operations.In addition, whenever
When in the presence of overlapping, cache line is evicted from from cache, so that another cache-miss will occur --- and
Another breakpoint inspection will be executed --- if accessing storage address again later.In this way, it is only necessary to right
Cause the memory access operation of cache-miss to execute breakpoint inspection, rather than each memory access operation is held
Row breakpoint inspection.
Although with this theme of the dedicated language description of structural features and or methods of action, it should be appreciated that appended right is wanted
Theme defined in book is asked to be not necessarily limited to the sequence of above-mentioned described feature or movement or above-mentioned movement.But it is described
Feature and movement as realization claim exemplary forms and be disclosed.
The embodiment of the present invention may include or using including such as one or more processors and system storage
Etc computer hardware dedicated or general purpose computer system, discuss in greater detail below.Reality in the scope of the invention
Applying example further includes for carrying or storing the physics of computer executable instructions and/or data structure and other computer-readable Jie
Matter.This computer-readable medium can be can be by any usable medium of general or specialized computer system accesses.Storage meter
The computer-readable medium of calculation machine executable instruction and/or data structure is computer storage media.Load capacity calculation machine is executable
The computer-readable medium of instruction and/or data structure is transmission medium.Therefore, as an example, not a limit, reality of the invention
Applying example may include at least two completely different computer-readable mediums: computer storage media and transmission medium.
Computer storage media is the physical storage medium for storing computer executable instructions and/or data structure.Physics
Storage medium includes computer hardware, such as RAM, ROM, EEPROM, solid state drive (" SSD "), flash memory, phase transition storage
It (" PCM "), optical disk storage, disk memory or other magnetic storage facilities or can be used to refer to so that computer is executable
The form of order or data structure stores program code and can be by general or specialized computer system accesses and execution to realize
Any other functional (multiple) hardware storage equipment disclosed in this invention.
Transmission medium may include network and/or data link, can be used to load capacity calculation machine executable instruction or
The program code of data structure form, and can be by general or specialized computer system accesses." network " is defined as can
One or more data link of electronic data are transmitted between computer system and/or module and/or other electronic equipments.When
It transmits or provides to computer system by network or another communication connection (hardwired, wireless or hardwired or wireless combination)
When information, which can be considered as transmission medium by computer system.Combinations of the above should also be included in computer-readable Jie
In the range of matter.
In addition, when reaching various computer system components, it can be by computer executable instructions or data structure form
Program code be automatically transmitted to computer storage media from transmission medium (vice versa).For example, network can will be passed through
Or the received computer executable instructions of data link or data structure are buffered in Network Interface Module (for example, " NIC ")
In RAM, the computer storage of the less volatibility of computer system RAM and/or computer systems division is then finally sent it to
It deposits in medium.It should therefore be understood that can include utilizing transmission medium at also (or even main) for computer storage media
In computer system component.
Computer executable instructions include such as instruction and data, described when executing at one or more processors
Instruction and data makes general-purpose computing system, dedicated computer system or dedicated treatment facility execute specific function or function
Group.Computer executable instructions can be such as binary file, intermediate format instructions of such as assembler language etc or very
To being source code.
It will be understood by those skilled in the art that can be in the network computing environment of the computer system configurations with many types
The middle practice present invention, including personal computer, desktop computer, laptop computer, message handling device, handheld device, many places
Manage device system, based on microprocessor or programmable consumer electronics, network PC, minicomputer, mainframe computer, mobile electricity
Words, PDA, tablet computer, pager, router, interchanger etc..The present invention can also be practiced in distributed system environment,
In hardwired data links, wireless data link or group by hardwired and wireless data link (passed through by network linking
Close) local and remote computer system be carried out task.In this way, computer system can wrap in distributed system environment
Include multiple composition computer systems.In distributed system environment, program module can be located locally and remote memory storage
In equipment.
It will further be appreciated by those of ordinary skill in the art that the present invention can be practiced in cloud computing environment.Cloud computing ring can be distributed
Border, but this is not required.When being distributed, cloud computing environment can carry out international distribution within the organization and/or have across more
The possessed component of a tissue.In this specification and following following claims, " cloud computing is defined for realizing to can match
Set the model of the on-demand network access of the shared pool of computing resource (for example, network, server, reservoir, application and service).
" definition of cloud computing is not limited in suitable any other many merits that can be obtained when deployed from this model.
Cloud computing model can be made of various characteristics, such as on-demand Self-Service, extensive network access, resource pool, fast
Fast elasticity, measurement service etc..Cloud computing model can also occur in the form of various service models, and such as software services
(" SaaS "), platform service (" PaaS ") and infrastructure services (" IaaS ").Different deployment models can also be used
To dispose cloud computing model, private clound, community cloud, public cloud, mixed cloud etc..
Some embodiments of such as cloud computing environment etc may include system, which includes one or more hosts,
Each host can run one or more virtual machines.During operation, virtual machine simulated operation computing system supports operation system
System and it may also support one or more other applications.In some embodiments, each host includes management program, the management
Program simulates the virtual resource for virtual machine using the physical resource taken out from the view of virtual machine.Management program is also
Isolation appropriate is provided between virtual machine.Therefore, from the perspective of any given virtual machine, management program provides virtual machine
Even if with physical resource carry out interface illusion --- virtual machine only with the appearance of physical resource (for example, virtual resource) interface.
The example of physical resource includes processing capacity, reservoir, disk space, network bandwidth, media drive etc..
In the case where not departing from spirit or essential attributes of the invention, the present invention can carry out body in other specific forms
It is existing.Described embodiment is regarded as merely illustrative and not restrictive in all respects.Therefore, model of the invention
It encloses by appended claims rather than the description of front indicates.All changes in the meaning and equivalency range of claim
It is included within the scope of its.
Claims (15)
1. it is a kind of include one or more processors computer systems division realize for by the use of cache come
The method for monitoring memory location, which comprises
Identify the storage address to be monitored;
At least based on the storage address is identified, following operation is at least executed:
The storage address is stored in monitoring list;And
Determine whether the one or more cache lines Chong Die with the storage address are already present in cache, and
And when one or more of cache lines are already present in the cache, institute is evicted from from the cache
State one or more cache lines;
Based on memory access operation, the generation of cache-miss is detected;And
Generation at least based on the cache-miss determines and imported into the high speed based on the cache-miss
Whether a part of the cache line in caching is Chong Die with the storage address being stored in the monitoring list, and
When the part of the cache line of importing is really Chong Die with the storage address, following operation is at least executed:
Handle one or more monitoring operations to the storage address;And
Evict the cache line of the importing from from the cache.
2. the method as described in claim 1, wherein one or more of monitoring operations include by one or more of places
At least one of reason device is placed in Verbose Mode and makes at least one described processor single -step operation.
3. the method as described in claim 1 imported into the cache based on the cache-miss wherein determining
In cache line a part whether be stored in it is described monitoring list in the storage address it is Chong Die include determination
The matched storage of the storage address whether cache line of the importing includes and be stored in the monitoring list
Device address.
4. the method as described in claim 1, wherein handling and including to one or more monitoring operations of the storage address
It determines and encounters breakpoint when the memory access operation is written or reads the storage address.
5. the method as described in claim 1, wherein the memory access operation includes reading data, data write-in or code
Execute at least one of access operation.
6. the method as described in claim 1 further includes by the cache line accessed by the multiple storage operation
Monitoring operation is executed to merge the cache-miss for multiple storage operations, while being avoided in the multiple memory
Evict the cache line during operation from.
7. a kind of computer system, comprising:
One or more processors;And
One or more computer-readable mediums are stored with instruction on the computer-readable medium, and described instruction is by described one
A or multiple processors are executable, so that the computer system monitors memory location, institute by the use of cache
Stating instruction includes executable so that the computer system executes at least following instruction operated:
Identify the storage address to be monitored;
At least based on the storage address is identified, following operation is at least executed:
The storage address is stored in monitoring list;And
Determine whether the one or more cache lines Chong Die with the storage address are already present in cache, and
And when one or more of cache lines are already present in the cache, institute is evicted from from the cache
State one or more cache lines;
Based on memory access operation, the generation of cache-miss is detected;And
Generation at least based on the cache-miss determines and imported into the high speed based on the cache-miss
Whether a part of the cache line in caching is Chong Die with the storage address being stored in the monitoring list, and
When the part of the cache line of importing is really Chong Die with the storage address, following operation is at least executed:
Handle one or more monitoring operations to the storage address;And
Evict the cache line of the importing from from the cache.
8. computer system as claimed in claim 7, wherein one or more of monitoring operations include by one or
At least one of multiple processors are placed in Verbose Mode and make at least one described processor single -step operation.
9. computer system as claimed in claim 7 imported into the height based on the cache-miss wherein determining
A part of cache line in speed caching packet whether Chong Die with the storage address being stored in the monitoring list
It includes and determines whether the cache line of the importing includes matching with the storage address being stored in the monitoring list
Storage address.
10. computer system as claimed in claim 7, wherein when the importing cache line the part not with institute
When stating storage address overlapping, the cache line of the importing is retained in the cache.
11. computer system as claimed in claim 7, wherein handling one or more monitoring behaviour to the storage address
It includes determining when the memory access operation write-in or encounters breakpoint when reading the storage address.
12. computer system as claimed in claim 7, wherein handling one or more monitoring behaviour to the storage address
It includes determining when that breakpoint is encountered when the memory access operation is not written or reads the storage address.
13. computer system as claimed in claim 7, wherein the memory access operation includes that reading data, data are write
Enter or code executes at least one of access operation.
14. computer system as claimed in claim 7, described instruction includes executable so that the computer system executes such as
The instruction of lower operation: it is directed to by executing monitoring operation to the cache line accessed by the multiple storage operation to merge
The cache-miss of multiple storage operations, while it is slow to avoid evicting from the high speed during the multiple storage operation
Deposit row.
15. a kind of computer program product including one or more computer-readable mediums, in one or more of calculating
Instruction is stored on machine readable medium, described instruction can be performed by one or more processors, so that computer system passes through height
The use of speed caching monitors memory location, and described instruction includes executable so that the computer system at least executes following behaviour
The instruction of work:
Identify the storage address to be monitored;
At least based on the storage address is identified, following operation is at least executed:
The storage address is stored in monitoring list;And
Determine whether the one or more cache lines Chong Die with the storage address are already present in cache, and
And when one or more of cache lines are already present in the cache, institute is evicted from from the cache
State one or more cache lines;
Based on memory access operation, the generation of cache-miss is detected;And
Generation at least based on the cache-miss determines and imported into the high speed based on the cache-miss
Whether a part of the cache line in caching is Chong Die with the storage address being stored in the monitoring list, and
When the part of the cache line of importing is really Chong Die with the storage address, following operation is at least executed:
Handle one or more monitoring operations to the storage address;And
Evict the cache line of the importing from from the cache.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574672.2A CN116627811A (en) | 2017-01-13 | 2017-12-29 | Method, computer system and medium for monitoring memory location where breakpoint occurs |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/405,849 | 2017-01-13 | ||
US15/405,849 US10268558B2 (en) | 2017-01-13 | 2017-01-13 | Efficient breakpoint detection via caches |
PCT/US2017/068842 WO2018132269A2 (en) | 2017-01-13 | 2017-12-29 | Efficient breakpoint detection via caches |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310574672.2A Division CN116627811A (en) | 2017-01-13 | 2017-12-29 | Method, computer system and medium for monitoring memory location where breakpoint occurs |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110168508A true CN110168508A (en) | 2019-08-23 |
CN110168508B CN110168508B (en) | 2023-05-26 |
Family
ID=61007868
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780083409.6A Active CN110168508B (en) | 2017-01-13 | 2017-12-29 | Method, computer system and medium for monitoring memory location where breakpoint occurs |
CN202310574672.2A Pending CN116627811A (en) | 2017-01-13 | 2017-12-29 | Method, computer system and medium for monitoring memory location where breakpoint occurs |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310574672.2A Pending CN116627811A (en) | 2017-01-13 | 2017-12-29 | Method, computer system and medium for monitoring memory location where breakpoint occurs |
Country Status (4)
Country | Link |
---|---|
US (2) | US10268558B2 (en) |
EP (1) | EP3568767B1 (en) |
CN (2) | CN110168508B (en) |
WO (1) | WO2018132269A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127065A (en) * | 2021-04-19 | 2021-07-16 | 之江实验室 | Storage and computation integrated program partitioning method and device based on pure missing detection method |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740220B2 (en) | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
US10671512B2 (en) * | 2018-10-23 | 2020-06-02 | Microsoft Technology Licensing, Llc | Processor memory reordering hints in a bit-accurate trace |
US11061810B2 (en) * | 2019-02-21 | 2021-07-13 | International Business Machines Corporation | Virtual cache mechanism for program break point register exception handling |
US20220107992A1 (en) * | 2020-10-02 | 2022-04-07 | Business Objects Software Ltd | Detecting Trend Changes in Time Series Data |
US11593001B1 (en) * | 2021-08-02 | 2023-02-28 | Nvidia Corporation | Using per memory bank load caches for reducing power use in a system on a chip |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154463A1 (en) * | 2002-02-08 | 2003-08-14 | Betker Michael Richard | Multiprocessor system with cache-based software breakpoints |
US20040049712A1 (en) * | 2002-09-11 | 2004-03-11 | Betker Michael Richard | Processor system with cache-based software breakpoints |
US6862694B1 (en) * | 2001-10-05 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | System and method for setting and executing breakpoints |
US20080082720A1 (en) * | 2006-09-28 | 2008-04-03 | Moyer William C | Data processing system having cache memory debugging support and method therefor |
JP2009043061A (en) * | 2007-08-09 | 2009-02-26 | Oki Electric Ind Co Ltd | Debugging device and debugging method |
US7849450B1 (en) * | 2005-01-28 | 2010-12-07 | Intel Corporation | Devices, methods and computer program products for reverse execution of a simulation |
US20120173825A1 (en) * | 2010-12-30 | 2012-07-05 | Freescale Semiconductor, Inc. | Cache Result Register for Quick Cache Information Lookup |
US20150089159A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
US20150089155A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
US20150089154A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Managing high-coherence-miss cache lines in multi-processor computing environments |
US20150121127A1 (en) * | 2013-10-30 | 2015-04-30 | Sandeep Jain | Watchpoint support system for functional simulator |
US20150149984A1 (en) * | 2013-11-22 | 2015-05-28 | International Business Machines Corporation | Determining instruction execution history in a debugger |
US20150378928A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Managing read tags in a transactional memory |
US20160055100A1 (en) * | 2014-08-19 | 2016-02-25 | Advanced Micro Devices, Inc. | System and method for reverse inclusion in multilevel cache hierarchy |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535318A (en) | 1992-04-30 | 1996-07-09 | Ricoh Company, Ltd. | Debugging system for a hierarchically structured page description language |
US5664159A (en) | 1994-03-08 | 1997-09-02 | Exponential Technology, Inc. | Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register |
CA2211505C (en) | 1997-07-25 | 2002-02-05 | Ibm Canada Limited-Ibm Canada Limitee | Setting instance breakpoints in object oriented computer programs |
US6106572A (en) | 1998-03-25 | 2000-08-22 | Origins Software Company | Forward and reverse hierarchical page level debugger |
US6237135B1 (en) | 1998-06-18 | 2001-05-22 | Borland Software Corporation | Development system with visual design tools for creating and maintaining Java Beans components |
US6134710A (en) * | 1998-06-26 | 2000-10-17 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long cache misses |
US6182208B1 (en) | 1998-08-14 | 2001-01-30 | Lucent Technologies, Inc. | System for debugging (N) break points by dividing a computer program to (n+1) regions each contains no break point and using two registers to define the start and end addresses of each region |
US6795962B1 (en) | 1999-12-30 | 2004-09-21 | Microsoft Corporation | Machine independent debugger |
US6738868B2 (en) | 2000-06-10 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes |
US7000225B2 (en) | 2000-12-07 | 2006-02-14 | International Business Machines Corporation | Method for inserting global breakpoints |
US7047519B2 (en) | 2001-09-26 | 2006-05-16 | International Business Machines Corporation | Dynamic setting of breakpoint count attributes |
US7644394B2 (en) | 2001-11-30 | 2010-01-05 | International Business Machines Corporation | Object-oriented creation breakpoints |
US7269825B1 (en) * | 2002-12-27 | 2007-09-11 | Unisys Corporation | Method and system for relative address translation |
US7650592B2 (en) | 2003-03-01 | 2010-01-19 | Bea Systems, Inc. | Systems and methods for multi-view debugging environment |
US7272826B2 (en) | 2003-05-08 | 2007-09-18 | International Business Machines Corporation | Hierarchical breakpoint groups |
US7249225B1 (en) * | 2003-10-31 | 2007-07-24 | Sun Microsystems, Inc | Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy |
US7694278B2 (en) | 2004-07-09 | 2010-04-06 | Microsoft Corporation | Data cube script development and debugging systems and methodologies |
US7634761B2 (en) | 2004-10-29 | 2009-12-15 | Microsoft Corporation | Breakpoint logging and constraint mechanisms for parallel computing systems |
US7447942B2 (en) | 2005-07-19 | 2008-11-04 | Microsoft Corporation | Fast data breakpoint emulation |
US20070168736A1 (en) | 2005-12-19 | 2007-07-19 | Ottavi Robert P | Breakpoint groups |
US7840849B2 (en) | 2006-12-21 | 2010-11-23 | Novell, Inc. | Methods and apparatus for debugging software including divisions of an execution history of a debuggee program |
US8612720B2 (en) | 2007-02-09 | 2013-12-17 | Edgewater Computer Systems, Inc. | System and method for implementing data breakpoints |
US8095861B2 (en) | 2007-09-28 | 2012-01-10 | International Business Machines Corporation | Cache function overloading |
US8336032B2 (en) | 2007-12-05 | 2012-12-18 | International Business Machines Corporation | Implementing enhanced template debug |
US9032374B2 (en) | 2008-04-03 | 2015-05-12 | International Business Machines Corporation | Metadata-integrated debugger |
US8423965B2 (en) | 2009-06-23 | 2013-04-16 | Microsoft Corporation | Tracing of data flow |
US8539209B2 (en) * | 2009-08-24 | 2013-09-17 | Via Technologies, Inc. | Microprocessor that performs a two-pass breakpoint check for a cache line-crossing load/store operation |
JP2011070256A (en) | 2009-09-24 | 2011-04-07 | Toshiba Corp | Debugger and program |
US8745597B2 (en) | 2009-11-25 | 2014-06-03 | International Business Machines Corporation | Providing programming support to debuggers |
US20110154111A1 (en) | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | Memory Based Hardware Breakpoints |
US8578340B1 (en) | 2010-09-24 | 2013-11-05 | Ca, Inc. | Recording and replaying computer program execution with recorded execution event breakpoints |
US9552206B2 (en) | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US8832659B2 (en) * | 2010-12-06 | 2014-09-09 | University Of Washington Through Its Center For Commercialization | Systems and methods for finding concurrency errors |
US8656359B2 (en) | 2011-03-25 | 2014-02-18 | Sap Ag | Debugging data mappings |
US8522213B2 (en) | 2011-05-12 | 2013-08-27 | International Business Machines Corporation | Debugger and debugging methods using breakpoints conditioned on the static identity of data |
JP5843801B2 (en) | 2013-03-19 | 2016-01-13 | 株式会社東芝 | Information processing apparatus and debugging method |
CN104346274B (en) | 2013-07-29 | 2017-06-06 | 国际商业机器公司 | Program debugger and a kind of adjustment method of program |
US9021444B2 (en) | 2013-08-19 | 2015-04-28 | Concurix Corporation | Combined performance tracer and snapshot debugging system |
US9436603B1 (en) * | 2014-02-27 | 2016-09-06 | Amazon Technologies, Inc. | Detection and mitigation of timing side-channel attacks |
US9875173B2 (en) | 2014-06-30 | 2018-01-23 | Microsoft Technology Licensing, Llc | Time travel debugging in managed runtime |
US9588870B2 (en) | 2015-04-06 | 2017-03-07 | Microsoft Technology Licensing, Llc | Time travel debugging for browser components |
US9996448B2 (en) | 2016-02-25 | 2018-06-12 | Red Hat Israel Ltd | Breakpoint insertion into kernel pages |
US10152425B2 (en) * | 2016-06-13 | 2018-12-11 | Advanced Micro Devices, Inc. | Cache entry replacement based on availability of entries at another cache |
US10310977B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10740220B2 (en) | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
-
2017
- 2017-01-13 US US15/405,849 patent/US10268558B2/en active Active
- 2017-12-29 CN CN201780083409.6A patent/CN110168508B/en active Active
- 2017-12-29 CN CN202310574672.2A patent/CN116627811A/en active Pending
- 2017-12-29 EP EP17832713.6A patent/EP3568767B1/en active Active
- 2017-12-29 WO PCT/US2017/068842 patent/WO2018132269A2/en unknown
-
2019
- 2019-03-05 US US16/292,646 patent/US10599541B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6862694B1 (en) * | 2001-10-05 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | System and method for setting and executing breakpoints |
US20030154463A1 (en) * | 2002-02-08 | 2003-08-14 | Betker Michael Richard | Multiprocessor system with cache-based software breakpoints |
US20040049712A1 (en) * | 2002-09-11 | 2004-03-11 | Betker Michael Richard | Processor system with cache-based software breakpoints |
US7849450B1 (en) * | 2005-01-28 | 2010-12-07 | Intel Corporation | Devices, methods and computer program products for reverse execution of a simulation |
US20080082720A1 (en) * | 2006-09-28 | 2008-04-03 | Moyer William C | Data processing system having cache memory debugging support and method therefor |
JP2009043061A (en) * | 2007-08-09 | 2009-02-26 | Oki Electric Ind Co Ltd | Debugging device and debugging method |
US20120173825A1 (en) * | 2010-12-30 | 2012-07-05 | Freescale Semiconductor, Inc. | Cache Result Register for Quick Cache Information Lookup |
US20150089159A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Multi-granular cache management in multi-processor computing environments |
US20150089155A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Centralized management of high-contention cache lines in multi-processor computing environments |
US20150089154A1 (en) * | 2013-09-26 | 2015-03-26 | International Business Machines Corporation | Managing high-coherence-miss cache lines in multi-processor computing environments |
US20150121127A1 (en) * | 2013-10-30 | 2015-04-30 | Sandeep Jain | Watchpoint support system for functional simulator |
US20150149984A1 (en) * | 2013-11-22 | 2015-05-28 | International Business Machines Corporation | Determining instruction execution history in a debugger |
US20150378928A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Managing read tags in a transactional memory |
US20160055100A1 (en) * | 2014-08-19 | 2016-02-25 | Advanced Micro Devices, Inc. | System and method for reverse inclusion in multilevel cache hierarchy |
Non-Patent Citations (1)
Title |
---|
JOHN CAVICCHIO, COREY TESSLER, AND NATHAN FISHER: "Minimizing Cache Overhead via Loaded Cache Blocks and Preemption Placement", 《2015 27TH EUROMICRO CONFERENCE ON REAL-TIME SYSTEMS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127065A (en) * | 2021-04-19 | 2021-07-16 | 之江实验室 | Storage and computation integrated program partitioning method and device based on pure missing detection method |
CN113127065B (en) * | 2021-04-19 | 2022-07-08 | 之江实验室 | Storage and computation integrated program partitioning method and device based on pure missing detection method |
Also Published As
Publication number | Publication date |
---|---|
US10599541B2 (en) | 2020-03-24 |
EP3568767A2 (en) | 2019-11-20 |
US10268558B2 (en) | 2019-04-23 |
US20190196928A1 (en) | 2019-06-27 |
WO2018132269A2 (en) | 2018-07-19 |
US20180203780A1 (en) | 2018-07-19 |
CN110168508B (en) | 2023-05-26 |
EP3568767B1 (en) | 2020-11-04 |
CN116627811A (en) | 2023-08-22 |
WO2018132269A3 (en) | 2018-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110168508A (en) | Via effective breaking point detection of cache | |
KR102645481B1 (en) | Trace recording by logging inflows into lower-tier caches based on entries in higher-tier caches | |
CN111615687B (en) | Decoupling trace data streams using cache coherence protocol data | |
US20170161194A1 (en) | Page-based prefetching triggered by tlb activity | |
WO2017028908A1 (en) | Method for observing software execution, debug host and debug target | |
GB2516477A (en) | Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure | |
EP3577564B1 (en) | Efficient retrieval of memory values during trace replay | |
CN108463811A (en) | Record group indicator | |
KR20210021464A (en) | Cache-based trace replay breakpoints using reserved tag field bits | |
US20220269615A1 (en) | Cache-based trace logging using tags in system memory | |
US11907091B2 (en) | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches | |
WO2020096800A1 (en) | Leveraging existing logic paths during bit-accurate processor tracing | |
US20130339612A1 (en) | Apparatus and method for testing a cache memory | |
CN108536473A (en) | The method and apparatus for reading data | |
US9870400B2 (en) | Managed runtime cache analysis | |
CN110431536B (en) | Implementing breakpoints across an entire data structure | |
Shi et al. | Memory/disk operation aware lightweight VM live migration | |
US11989137B2 (en) | Logging cache line lifetime hints when recording bit-accurate trace | |
US20240193092A1 (en) | Processor support for using cache way-locking to simultaneously record plural execution contexts into independent execution traces | |
CN107766120B (en) | Method for recording object information in virtual machine and related equipment | |
KR102403063B1 (en) | Mobile device and management method of mobile device | |
US8769221B2 (en) | Preemptive page eviction | |
US11561896B2 (en) | Cache-based trace logging using tags in an upper-level cache | |
Wünsche et al. | Data Migration Policies in a Copy-on-Write Tiered Storage Stack-Conception and Implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |