WO2008042494A2 - Data processing system having cache memory debugging support and method therefor - Google Patents

Data processing system having cache memory debugging support and method therefor Download PDF

Info

Publication number
WO2008042494A2
WO2008042494A2 PCT/US2007/073833 US2007073833W WO2008042494A2 WO 2008042494 A2 WO2008042494 A2 WO 2008042494A2 US 2007073833 W US2007073833 W US 2007073833W WO 2008042494 A2 WO2008042494 A2 WO 2008042494A2
Authority
WO
WIPO (PCT)
Prior art keywords
effective address
cache
instruction
data
tlb
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.)
Ceased
Application number
PCT/US2007/073833
Other languages
English (en)
French (fr)
Other versions
WO2008042494A3 (en
Inventor
William C. Moyer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Priority to EP07840437A priority Critical patent/EP2074510A4/en
Priority to JP2009530492A priority patent/JP2010505195A/ja
Publication of WO2008042494A2 publication Critical patent/WO2008042494A2/en
Publication of WO2008042494A3 publication Critical patent/WO2008042494A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware

Definitions

  • the present invention relates generally to data processing, and more particularly, to a data processing system having cache memory debugging support and method therefor.
  • Data processing systems typically include debug circuitry to permit a programmer to determine various values within the system at different points in time. Some data processing systems allow the debug circuitry to operate in near "real-time". Currently in real-time debugging, if a variable is cached, the debug circuitry has no easy access to the latest value of the variable without a very intrusive set of operations to cause a central processing unit
  • FIG. 1 illustrates, in block diagram form, a data processing system in accordance with one embodiment of the present invention.
  • FIG. 2 illustrates, in block diagram form, a processor of the data processing system of FIG. 1.
  • FIG. 3 illustrates, in block diagram form, a portion of the processor of FIG. 2.
  • FIG. 4 illustrates an instruction bit field in accordance with the present invention.
  • bus is used to refer to a plurality of signals or conductors which may be used to transfer one or more various types of information, such as data, addresses, control, or status.
  • the conductors as discussed herein may be illustrated or described in reference to being a single conductor, a plurality of conductors, unidirectional conductors, or bidirectional conductors. However, different embodiments may vary the implementation of the conductors. For example, separate unidirectional conductors may be used rather than bidirectional conductors and vice versa. Also, plurality of conductors may be replaced with a single conductor that transfers multiple signals serially or in a time multiplexed manner.
  • the present invention provides, in one embodiment, a method and apparatus for showing a data block from a cache memory that is not directly visible on a system bus during a debugging operation.
  • the data block is shown by making the data block available on a system bus.
  • the data block cache status is not modified regardless of whether it is currently "dirty" or "clean".
  • the method is implemented as an instruction in a data processing system. The instruction causes the data block to be exposed to the system bus where it can be captured by a debugging circuit, such as an IEEE ISTO-5001 compliant NexusTM debugging unit.
  • NexusTM is a trademark of Freescale Semiconductor, Inc. located in Austin, Texas.
  • the current state of the cache is not affected, including data tag and status information associated with each cache entry, as well as all replacement location logic used to determine an entry to next be replaced on a cache miss.
  • the value can be retrieved from the system external to the cache so that it is made visible to the debugging circuit, without having the value written to the cache.
  • the instruction allows real-time debugging circuits to be able to view the current value of one or more variables in memory that may be hidden from access due to cache hierarchy without modifying the value or impacting the current state of the cache.
  • prior art systems utilize a series of memory access instructions such as load and store instructions, or utilize one or more cache management instructions, such as a block flush instruction, to cause operand values contained in one or more memory locations (which may be cached) to be made visible to a real-time debug unit so that the values can be captured and messaged out externally to the user of the system for debugging purposes.
  • cache management instructions such as a block flush instruction
  • these prior art methods interact with a cache or caches in the system and cause normal activity such as cache line replacements and allocations, and state changes to cache line status to occur, which intrusively modify the state of the system.
  • a method for operating a processor coupled to a system bus and having a cache comprises: receiving an instruction which indicates an effective address; and executing the instruction, wherein executing the instruction comprises: determining if the effective address results in a hit or a miss in the cache; and when the effective address results in a hit, providing data associated with the effective address from the cache to the system bus without modifying a state of the cache.
  • a method for operating a processor coupled to a system bus and having a cache comprising: receiving an instruction which indicates an effective address; determining that the effective address results in a hit in the cache, wherein determining comprises identifying a hit entry in the cache associated with the effective address; and when a dirty bit of the hit entry indicates that data stored in the hit entry is clean, providing at least a portion of the data stored in the hit entry from the cache to the system bus.
  • TLB table look-aside buffer
  • the method comprises: receiving an instruction which indicates an effective address and which includes a TLB exception indicator; providing the effective address to the TLB; when the effective address results in a miss in the TLB, selectively taking an exception based on the TLB exception indicator; and when the effective address results in a hit in the TLB, providing a translated address from the TLB corresponding to the effective address.
  • a data processing system that comprises a processor having a cache, the processor coupled to receive and execute instructions from debug circuitry.
  • the cache comprises a cache array storing a plurality of cache entries and cache control circuitry.
  • the cache control circuitry is coupled to the cache array and determines if an effective address indicated by an instruction received from the debug circuitry results in a hit or a miss in the cache array. When the effective address results in a hit, the cache control circuitry enables the cache array to provide data associated with the effective address to a system bus coupled to the processor and the debug circuitry without modifying a state of the cache array.
  • FIG. 1 illustrates, in block diagram form, a data processing system 10 in accordance with one embodiment of the present invention.
  • Data processing system 10 includes a processor 12, a debug circuit 14, an input/output (I/O) 16, and a memory 18, all bi- directionally coupled to a bus 20.
  • data processing system 10 may be located on a single integrated circuit or within a same device.
  • data processing system 10 may include any number of separate integrated circuits or separate devices interconnected with each other.
  • the memory 18 may be located on one or more integrated circuits, separate from the rest of data processing system 10.
  • the memory 18 may be any type of memory, such as, for example, a read only memory (ROM), a random access memory (RAM), non-volatile memory (e.g. Flash), etc. Also, memory 18 may be a memory or other data storage located within another peripheral or slave or on a different integrated circuit.
  • processor 12 and debug circuitry 14 are bus masters.
  • processor 12 is a processor capable of executing instructions, such as a microprocessor, digital signal processor, etc., or may be any other type of bus master, such as for example, a direct memory access (DMA) controller, or the like.
  • DMA direct memory access
  • other slave devices may be included in data processing system 10 that are not illustrated in FIG. 1, such as for example, another memory coupled to bus 20, as well as any type of peripheral circuit which resides on the system bus or coupled to I/O circuit 16.
  • Processor 12 includes a cache 13.
  • Cache 13 functions as a level one (Ll) cache for storing data and/or instructions for use by processor 12.
  • Ll level one
  • Cache 13 may comprise a separate data cache and a separate instruction cache.
  • Cache 13 comprises one or more data arrays, one or more tag arrays, and one or more status bit arrays.
  • the tag and status information may be stored in a common array.
  • Each cache entry consists of a block or line of data, a tag value which associates the data with a memory address, and status information, including whether the cache entry is valid, whether the cache entry is "dirty", i.e. modified with respect to the data associated with the same address in memory 18 or other external memory blocks if present, and other associated status information.
  • memory 18, or a portion of memory 18 may be characterized as a level two (L2) cache.
  • An input/output (I/O) module 16 is bi-directionally connected to the bus 20 and to external circuitry (not shown).
  • the I/O module 16 includes various interface circuits depending upon type of external circuitry that is connected to the I/O module 16.
  • I/O module 16 may optionally contain one or more alternate bus masters coupled to bus 20.
  • Debug circuit 14 is bi-directionally connected to bus 13 and to processor 12 via bus
  • Debug circuit 14 is also bi-directionally connected to external circuitry (not shown) such as a hardware tester or other debugging interface hardware.
  • debug circuitry 14 functions as a diagnostic check for data processing operations related to an access to cache 13, memory 18, and 1/0 module 16, and in other embodiments, other types of data retention circuits utilized by data processing system 10 whether internal to or external to data processing system 10.
  • the processor 12 and alternate bus masters obtain mastership of the system bus 20 as needed and selectively access the system memory 18 to retrieve and store data and instructions.
  • Debug circuitry 14 may be configured by the user of data processing system 10 to capture the values of one or more memory locations by monitoring addresses presented on bus 20, and capturing or sampling the related data values presented on bus 20.
  • the data values are provided by a selected slave device such as memory 18.
  • bus write operations the data values are provided by a bus master of bus 20 such as processor 12.
  • debug circuitry 14 monitors each transfer and selectively captures data values corresponding to data locations the user of debug circuitry 14 wishes to monitor. These values and conditions may be programmed into and transferred from debug circuitry 14 via the terminals shown in FIG 1. Certain limitations in prior art systems are overcome by the current invention. In prior art systems, if a data variable or value is located within cache 13, the data value may be modified with respect to the corresponding value in memory 18, i.e. the latest (most up to date) value is not present in memory 18, but only within cache 13. If debug circuitry 14 accesses memory 18 to obtain the desired variable's value, it will not get a correct copy, since the copy may be modified internally in cache 13.
  • An instruction is provided in data processing system 10 to allow debug circuitry 14 to "see” a value which may be stored in cache 13.
  • the instruction is herein after referred to as a "data cache block show” instruction and includes an effective address corresponding to the value.
  • the instruction is executed by the processor. It is determined if the effective address results in a "hit” or a "miss” in the cache. When the effective address results in a hit, the value is provided to bus 20 associated with the effective address from the cache 13.
  • Debug circuitry 14 then has access to the value from the bus 20 as it is provided by the processor. In one embodiment, debug circuitry 14 monitors transactions on bus 20, and is capable of sampling the address and associated data values as bus transfers occur.
  • Desired values can then be transferred after sampling to a user of the system performing a debugging operation by means of signals from debug circuitry 14 of FIG.1.
  • a state of cache 13 is not modified when the value is placed on the bus 20.
  • the effective address results in a miss, one feature of the instruction allows the value to be retrieved from another memory, such as for example, memory 18.
  • value is retrieved from another memory, the value is placed on bus 20 by the memory during retrieval, allowing access to the value by debug circuitry 14. Note that the value is not then stored in cache 13 as required by normal load and store instruction misses. The value is discarded after being shown on bus 20. By discarding the value and not allocating a replacement cache entry as is done for normal cache misses incurred by normal load and store instructions, the result of executing the data cache block show instruction has minimal effect on the state of the cache, thus simplifying debug of the system, since the debug operation is minimally intrusive. Cache lines are not replaced on misses, and no state changes occur to the status bits, data, or tag information contained in the cache. In addition, regardless of hit or miss outcome, the state of one or more cache line replacement algorithm state variables remain unchanged, such as least recently used status bits, etc.
  • a "dirty bit" is associated with a cache entry indicates whether or not data in the cache associated with the effective address is different (i.e. has been modified) from data stored at another memory location, such as memory 18, corresponding to the effective address.
  • a "dirty bit" associated with the effective address of the value is not modified when the value is retrieved from the cache and presented to the system bus 20 in response to executing the data cache block show instruction.
  • cache 13 is not modified if the value associated with the effective address in cache 13 is the same as the value in another memory location, i.e. the data is clean.
  • the data stored in the entry is provided to bus 20 and the entry is not modified.
  • a dirty bit of the hit cache entry indicates that data stored in the entry is dirty, the data stored in the entry is still provided to bus 20, and the entry is not modified, and the dirty bit is not cleared, unlike in prior art cache control instructions.
  • the data cache block show instruction will be discussed in more detail below.
  • FIG. 2 illustrates, in block diagram form, processor 12 of the data processing system 10 of FIG. 1.
  • Processor 12 includes cache 13, bus interface unit 26, general purpose registers (GPRS) 32 translation look-aside buffer (TLB) 35, internal debug circuitry 34, control circuitry 36, instruction decode unit 38, instruction fetch unit 40, and execution units 42.
  • GPRS general purpose registers
  • TLB translation look-aside buffer
  • cache 13 is bi-directionally coupled to control circuitry 36, to execution units 42, to instruction fetch unit 40, to TLB 35, to BIU 26, and to internal debug circuit 34.
  • TLB 35 is bi-directionally coupled to control circuitry 36, to execution units 42, and to cache 13.
  • Execution units 42 is bi-directionally coupled to cache 13, to instruction decode unit 38, to TLB 35, to control circuitry 36, and to GPRS 32.
  • BIU 26 is bi- directionally coupled to cache 13, to instruction fetch unit 40, to control circuitry 36, to execution units 42, and to bus 20.
  • GPRS 32 is bi-directionally coupled to control circuitry
  • Control circuitry 36 is bi-directionally coupled to instruction fetch unit 40, to instruction decode unit 38, to TLB 35, to cache 13, to BIU 26, to execution units 42, to internal debug circuit 34, and to GPRS 32.
  • Control circuitry 36 includes a condition register
  • Condition register 37 generally reflects results of instruction execution. Typically, these include relational values set as the result of an arithmetic, logical, or comparison operation instruction. In addition, in one embodiment, condition register 37 may be updated with status reflected during operation of the data cache block show instruction. For example, when the data cache block show instruction is provided by, for example, debug circuitry 14 for execution by processor 12, an error may occur during the attempted execution of the instruction. The condition register 37 comprises one or more error update indicators that can be updated by processor 12 in response to an error occurring during execution of the instruction. Instruction decode unit 38 is bi-directionally coupled to debug circuitry 14, to instruction fetch unit 40, and to execution units 42.
  • Instruction fetch unit 40 is bi- directionally coupled to debug circuitry 14, to instruction decode unit 38, to cache 13, and to BIU 26. Each of instruction fetch unit 40, instruction decode unit 38 and control circuitry 36 are directly coupled to debug circuitry 14. Note that in other embodiments, processor 12 may have different processing blocks and the connections between the blocks may be different.
  • FIG. 3 illustrates, in block diagram form, cache 13 and TLB 35 of the processor 12 of
  • Cache 13 includes cache control circuitry 54 and cache array 50.
  • TLB 35 includes TLB control circuitry 56 and buffer 58.
  • Cache array 50 is an array of random access memory cells organized as a plurality of entries.
  • cache array 50 comprises SRAM (static random access memory) memory cells. In other embodiments, other memory types are suitable.
  • entry 52 is representative of the plurality of entries and includes a TAG address bit field labeled "TAG ADDRESS FIELD", a TAG status bit field labeled "TAG STATUS BITS” and a data bit field labeled "DATA”.
  • the TAG status bit field includes a valid bit labeled "V” and a dirty bit labeled "D".
  • Cache array 50 is bi-directionally coupled to both cache control circuitry 54 and to bus 20 via BIU 26.
  • Cache control circuitry 54 is bi- directionally coupled to control circuitry 36.
  • Cache control circuitry 54 determines if an effective address pointed to by an instruction received from, for example, cache 13, memory 18, or debug circuitry 14 is a hit or a miss in cache 13.
  • buffer 58 is bi- directionally coupled to TLB control circuitry 56 and is for storing physical addresses that correspond to the effective addresses from execution units 42.
  • TLB control circuitry 56 is coupled to both control circuit 36 and to cache control circuitry 54 for providing a TLB hit or miss indicator.
  • TLB control circuitry 56 is also coupled to cache control circuitry 54 for providing a physical address corresponding to an effective address (EA). Address translation from an effective address to a physical address is performed by TLB 35 in a standard manner as is known in the art. Cache control circuitry 54 determines if an effective address pointed to by an instruction results in a hit or miss by comparing the physical address for an access provided by TLB 35, to the stored value(s) contained in one or more tag entries in cache array 50. In some embodiments, TLB 35 is optional, and if not present, the effective address
  • EA is provided directly to cache 13 without translation.
  • stored tag values correspond directly to effective addresses without address translation to a physical address occurring.
  • FIG. 4 illustrates a data cache block show instruction bit field 60 in accordance with the present invention.
  • the data cache block show instruction can be issued by any bus master of data processing system 10.
  • the data cache block show instruction is issued by debug circuitry 14.
  • one or more data cache block show instructions may be stored in program memory locations contained in memory 18, or elsewhere within data processor 10, and may be retrieved by processor 12 as a part of normal instruction stream processing.
  • bits [0 - 5] of the instruction are used to identify the instruction as the data cache block show instruction.
  • bits [0 - 5] are 011111.
  • bits [0 - 5] may be different.
  • the number of bits in each bit field may be different.
  • Bits [6 - 10] are labeled "#opt" and are for indicating which of five features are to be used with the instruction:
  • #opt [miss_fetch_true, signal TLB exceptions, size of show, mask data bkpt, record status].
  • Bits [11 - 15], labeled "RA” and bits [16 - 20] labeled “RB” are the effective address offset and the effective address base register values, respectively, use to compute the effective address of the data to be made available on bus 20. Bits [21 - 30] labeled “TBD” are not used for this instruction. Bit [31] indicates the end of the instruction.
  • the data cache block show instruction is provided to force visibility of a potentially cached location to an agent external to the processor 12, for example, debug circuitry 14 for debug visibility purposes.
  • No data breakpoint event occurs as part of the execution of this instruction if the option bit field #opt[mask_data_bkpt] of bits [6 - 10] indicates breakpoints should be masked.
  • Normal load and store instructions continue to generate data breakpoint events if so enabled by internal debug circuitry 34 of FIG. 2.
  • Watchpoint signaling is implementation dependent, and may also be controlled by internal debug circuitry 34 of FIG.
  • the data block is written to bus 20 regardless of whether it is "dirty” or "clean".
  • the size of the data block written to bus 20 is determined by the feature #opt[size_of_show], where "size of show” is a data block size indicator.
  • the data block "shown" by the instruction may be all of a cache line associated with an effective address or may be less than all of a cache line based on the size indicator. If the data block containing the byte addressed by the effective address is not in cache 13 and the feature #opt[miss_fetch_true] indicates that miss fetching should occur, the addressed block is fetched from another memory of the system, such as memory 18, to be made visible on bus 20 for capture by debug circuitry 14, and is discarded by processor 12. Otherwise, if #opt[miss_fetch_true] indicates no miss fetching is to occur, then the instruction is treated as a NOP (no operation) if a miss occurs and no data is provided to bus 20.
  • #opt[signal_TLB_exceptions] is set as true, then the effective address is translated to a physical address by TLB 35 and the physical address used to determine if the effective address results in a hit or a miss. If a TLB Miss or TLB Protection violation occurs, it is signaled within processor 12, and exception processing is initiated to deal with the generated error condition. Conversely, if #opt[signal_TLB_exceptions] is set as false, TLB Miss and TLB Protection violations are ignored, and the instruction is treated as a NOP of one if these conditions is encountered, and no exception is taken. If TLB errors, bus errors, or other errors occur as part of the execution of this instruction, the errors are signaled via a status bit in the control register 37 if #opt[record_status] is set.
  • the feature #opt[signal_TLB_exceptions] can be used with other instructions besides the data cache block show instruction.
  • #opt[signal_TLB_exceptions] is set true, a effective address associated with an instruction is provided to TLB 35.
  • an exception is taken based on the whether #opt[signal_TLB_exceptions] is set true or false.
  • a translated address is provided from TLB 35 for the effective address.
  • the function of the data cache block show instruction is independent of whether the data block containing the byte addressed by an effective address is characterized as "write through required" or "caching inhibited". In either case, the execution of the data cache block show instruction causes the data value to be made visible on bus 20 for sampling or capture by debug circuitry 14, without affecting the state of the cache. It should be apparent now, that using the data cache block show instruction of the current invention causes the latest data value associated with a memory location to be made visible on the system bus for sampling or capture by debug circuitry, regardless of whether the associated memory location is resident or not in the cache, and if resident, regardless of the clean or dirty status of the data, and in the process of making the value visible, no current cache state, data , tag, or status is altered.
  • the terms "comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
PCT/US2007/073833 2006-09-28 2007-07-19 Data processing system having cache memory debugging support and method therefor Ceased WO2008042494A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP07840437A EP2074510A4 (en) 2006-09-28 2007-07-19 DATA PROCESSING SYSTEM WITH CACHE MEMORY DEBUGGING SUPPORT AND CORRESPONDING METHOD
JP2009530492A JP2010505195A (ja) 2006-09-28 2007-07-19 キャッシュ・メモリ・デバッグ・サポートを有するデータ処理システムおよびそのための方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/536,085 2006-09-28
US11/536,085 US7555605B2 (en) 2006-09-28 2006-09-28 Data processing system having cache memory debugging support and method therefor

Publications (2)

Publication Number Publication Date
WO2008042494A2 true WO2008042494A2 (en) 2008-04-10
WO2008042494A3 WO2008042494A3 (en) 2008-11-27

Family

ID=39262339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/073833 Ceased WO2008042494A2 (en) 2006-09-28 2007-07-19 Data processing system having cache memory debugging support and method therefor

Country Status (4)

Country Link
US (3) US7555605B2 (enExample)
EP (1) EP2074510A4 (enExample)
JP (1) JP2010505195A (enExample)
WO (1) WO2008042494A2 (enExample)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972671B2 (en) * 2007-05-14 2015-03-03 Freescale Semiconductor, Inc. Method and apparatus for cache transactions in a data processing system
US20090006753A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick Design structure for accessing a cache with an effective address
US20090006754A1 (en) * 2007-06-28 2009-01-01 Luick David A Design structure for l2 cache/nest address translation
US7937530B2 (en) * 2007-06-28 2011-05-03 International Business Machines Corporation Method and apparatus for accessing a cache with an effective address
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US8495287B2 (en) 2010-06-24 2013-07-23 International Business Machines Corporation Clock-based debugging for embedded dynamic random access memory element in a processor core
EP2761464B1 (en) 2011-09-30 2018-10-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
EP2761480A4 (en) 2011-09-30 2015-06-24 Intel Corp APPARATUS AND METHOD FOR IMPLEMENTING MULTINIVE MEMORY HIERARCHY ON COMMON MEMORY CHANNELS
CN107391397B (zh) 2011-09-30 2021-07-27 英特尔公司 支持近存储器和远存储器访问的存储器通道
EP2761466B1 (en) 2011-09-30 2020-08-05 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
EP2761467B1 (en) 2011-09-30 2019-10-23 Intel Corporation Generation of far memory access signals based on usage statistic tracking
US10372590B2 (en) 2013-11-22 2019-08-06 International Business Corporation Determining instruction execution history in a debugger
US10268558B2 (en) * 2017-01-13 2019-04-23 Microsoft Technology Licensing, Llc Efficient breakpoint detection via caches
US11740993B2 (en) 2021-08-31 2023-08-29 Apple Inc. Debug trace of cache memory requests

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
JPH03248244A (ja) * 1990-02-27 1991-11-06 Toshiba Corp キャッシュメモリを備えたプロセッサ
US5341500A (en) * 1991-04-02 1994-08-23 Motorola, Inc. Data processor with combined static and dynamic masking of operand for breakpoint operation
US5317711A (en) * 1991-06-14 1994-05-31 Integrated Device Technology, Inc. Structure and method for monitoring an internal cache
US5636363A (en) 1991-06-14 1997-06-03 Integrated Device Technology, Inc. Hardware control structure and method for off-chip monitoring entries of an on-chip cache
US5375216A (en) * 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
JPH05265799A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd データ処理装置
JPH05289904A (ja) * 1992-04-09 1993-11-05 Nec Corp キャッシュメモリのデバッグツール
EP0569987A1 (en) * 1992-05-13 1993-11-18 Nec Corporation Microprocessor incorporating cache memory enabling efficient debugging
US5491793A (en) * 1992-07-31 1996-02-13 Fujitsu Limited Debug support in a processor chip
US5732405A (en) * 1992-10-02 1998-03-24 Motorola, Inc. Method and apparatus for performing a cache operation in a data processing system
JP3175757B2 (ja) * 1996-08-13 2001-06-11 日本電気株式会社 デバッグシステム
US5892897A (en) * 1997-02-05 1999-04-06 Motorola, Inc. Method and apparatus for microprocessor debugging
US6044478A (en) 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
JPH1115691A (ja) * 1997-06-27 1999-01-22 Matsushita Electric Ind Co Ltd プロセッサおよびデバッグ装置
US6260131B1 (en) * 1997-11-18 2001-07-10 Intrinsity, Inc. Method and apparatus for TLB memory ordering
US6016555A (en) * 1997-11-19 2000-01-18 Texas Instruments Incorporated Non-intrusive software breakpoints in a processor instruction execution pipeline
US6321331B1 (en) * 1998-04-22 2001-11-20 Transwitch Corporation Real time debugger interface for embedded systems
SE9801678L (sv) * 1998-05-13 1999-11-14 Axis Ab Datorchip och datoranordning med förbättrad avlusningsförmåga
US6532553B1 (en) * 1998-12-08 2003-03-11 Arm Limited Debugging data processing systems
US6321329B1 (en) * 1999-05-19 2001-11-20 Arm Limited Executing debug instructions
US6668339B1 (en) * 1999-07-28 2003-12-23 Mitsubishi Denki Kabushiki Kaisha Microprocessor having a debug interruption function
EP1182566B1 (en) * 2000-08-21 2013-05-15 Texas Instruments France Cache operation based on range of addresses
US6968446B1 (en) * 2001-08-09 2005-11-22 Advanced Micro Devices, Inc. Flags handling for system call instructions
US6862694B1 (en) * 2001-10-05 2005-03-01 Hewlett-Packard Development Company, L.P. System and method for setting and executing breakpoints
US7168067B2 (en) * 2002-02-08 2007-01-23 Agere Systems Inc. Multiprocessor system with cache-based software breakpoints
JP2003263337A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
US7346744B1 (en) * 2002-11-04 2008-03-18 Newisys, Inc. Methods and apparatus for maintaining remote cluster state information
US7010672B2 (en) * 2002-12-11 2006-03-07 Infineon Technologies Ag Digital processor with programmable breakpoint/watchpoint trigger generation circuit
US7039765B1 (en) * 2002-12-19 2006-05-02 Hewlett-Packard Development Company, L.P. Techniques for cache memory management using read and write operations
US6963963B2 (en) * 2003-03-25 2005-11-08 Freescale Semiconductor, Inc. Multiprocessor system having a shared main memory accessible by all processor units
US6954826B2 (en) 2003-05-21 2005-10-11 Freescale Semiconductor, Inc. Read access and storage circuitry read allocation applicable to a cache
US7434108B2 (en) * 2004-04-30 2008-10-07 Freescale Semiconductor, Inc. Masking within a data processing system having applicability for a development interface
GB2428842A (en) * 2004-05-19 2007-02-07 Arc Int Microprocessor architecture
TWI270769B (en) * 2004-11-15 2007-01-11 Sunplus Technology Co Ltd Trace, debug method and system for a processor
JP2006155098A (ja) * 2004-11-26 2006-06-15 Sanyo Electric Co Ltd マイクロコンピュータの評価方法、マイクロコンピュータの評価システム、マイクロコンピュータ
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7840845B2 (en) * 2005-02-18 2010-11-23 Intel Corporation Method and system for setting a breakpoint
JP2006252006A (ja) * 2005-03-09 2006-09-21 Seiko Epson Corp デバッグシステム、半導体集積回路装置、マイクロコンピュータ及び電子機器
US7254678B2 (en) * 2005-03-17 2007-08-07 International Business Machines Corporation Enhanced STCX design to improve subsequent load efficiency
US7299335B2 (en) * 2005-05-27 2007-11-20 Freescale Semiconductor, Inc. Translation information retrieval transparent to processor core
US20070006042A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Software debug support for cache flush with access to external data location(s) through debug port
US7552283B2 (en) * 2006-01-20 2009-06-23 Qualcomm Incorporated Efficient memory hierarchy management
US8352713B2 (en) * 2006-08-09 2013-01-08 Qualcomm Incorporated Debug circuit comparing processor instruction set operating mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP2074510A4 *

Also Published As

Publication number Publication date
US20080082720A1 (en) 2008-04-03
EP2074510A4 (en) 2012-06-13
JP2010505195A (ja) 2010-02-18
US7555605B2 (en) 2009-06-30
WO2008042494A3 (en) 2008-11-27
USRE49305E1 (en) 2022-11-22
USRE47851E1 (en) 2020-02-11
EP2074510A2 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
USRE49305E1 (en) Data processing system having cache memory debugging support and method therefor
US8972671B2 (en) Method and apparatus for cache transactions in a data processing system
US8688910B2 (en) Debug control for snoop operations in a multiprocessor system and method thereof
US7340564B2 (en) Tracing instruction flow in an integrated processor
US8370687B2 (en) Mechanism for storing and extracting trace information using internal memory in micro controllers
US7051239B2 (en) Method and apparatus for efficiently implementing trace and/or logic analysis mechanisms on a processor chip
US7447946B2 (en) Storage of trace data within a data processing apparatus
US8201025B2 (en) Debug messaging with selective timestamp control
US8145874B2 (en) System and method of data forwarding within an execution unit
US5996034A (en) Bus bridge verification system including device independent bus monitors
US8200908B2 (en) Method for debugger initiated coherency transactions using a shared coherency manager
JPH0552968B2 (enExample)
CN100524231C (zh) 用于非侵入跟踪的方法和装置
GB2451668A (en) Error correction in a set associative cache
US20060271919A1 (en) Translation information retrieval
US20060271759A1 (en) Translation information retrieval
US5938777A (en) Cycle list based bus cycle resolution checking in a bus bridge verification system
US20060174163A1 (en) Software breakpoints for use with memory devices
US7237149B2 (en) Method and apparatus for qualifying debug operation using source information
US7506205B2 (en) Debugging system and method for use with software breakpoint
US20080141002A1 (en) Instruction pipeline monitoring device and method thereof
JP2780555B2 (ja) キャッシュ・メモリ内蔵型マイクロプロセッサ
US20080140993A1 (en) Fetch engine monitoring device and method thereof
WO2006078790A2 (en) Software breakpoints for use with memory devices
JPH03129440A (ja) マイクロ・プロセッサ用アクセス・モニタ装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07840437

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2007840437

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2009530492

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE