EP4573452A1 - Cache scanning - Google Patents
Cache scanningInfo
- Publication number
- EP4573452A1 EP4573452A1 EP22787104.3A EP22787104A EP4573452A1 EP 4573452 A1 EP4573452 A1 EP 4573452A1 EP 22787104 A EP22787104 A EP 22787104A EP 4573452 A1 EP4573452 A1 EP 4573452A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- cache
- state machine
- rams
- memory state
- scan
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
- G06F11/3656—Debugging of software using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
Definitions
- RAMs Random Access Memories
- caches often carry functional debug information that can be useful in a case of a software crash or computer lockup.
- the code and conditions present in the RAMs can be helpful to find the root cause of the software crash.
- some RAMs and caches may not have direct software visibility for debugging and may not have an interface to examine the contents of the RAMs.
- This specification describes a system which can dump the contents of the one or more embedded RAMs during a scan dump process. This allows a debugging system or a user to examine the contents of the RAMs, which may not have direct software visibility. For example, the contents of multiple static RAMs (SRAMs) can be dumped to a logic scandump chain. The contents of the logic scandump chain can then be dumped during a scan dump, e.g., using existing logic scandump framework.
- SRAMs static RAMs
- the systems and methods described allow for visibility into the code and conditions stored within RAMs or SRAMs, which typically do not have visibility for debugging. Additionally, the systems and methods described in this specification can be integrated with an existing test path, e.g., a built-in self-test path. Integrating the described system with the existing test path can prevent or reduce timing impacts on the functional path of the system. Also, the systems and methods can advantageously create a continuous data stream to dump SRAM or cache data with increased efficiency, e.g., without any dummy or empty cycles of signals. Additionally, the systems and methods can utilize existing logic scandump framework to read cache data. For example, dumping SRAM data to an off-chip DRAM using existing scandump framework avoids additional timing and performance impact on the system during a debug process. Additionally, the systems and methods can be integrated with an existing reset flow, e.g., on a phone, which enables dumping of the SRAM data without connecting to external equipment.
- an existing test path e.g., a built-in self-test
- FIG. 1 is a diagram of an example system on a chip.
- FIG. 5 is a flowchart of a method of dumping the contents of embedded RAMs.
- FIG. 1 is a diagram of an example system 100 on a chip.
- the system 100 allows the content of embedded caches or RAMs, which usually do not have software visibility, to be dumped so that the contents can be examined.
- Example functional components that have embedded RAMs that do not support software visibility include caches that store cache lines in embedded RAMs as well as translation lookaside buffers that store translation entries in embedded RAMs. These functional components are often populated by logic circuitry of hardware devices, and therefore, the contents of these components is typically not accessible by software.
- the system 100 includes multiple static RAMs (SRAMs) 102, 104, 106 and a logic scandump chain 108.
- the logic scandump chain can be a logic framework which dumps logic content of the chip to an external storage device, e.g., an external DRAM.
- the logic scandump chain is utilized to also dump the logic from the SRAMs 102, 104, 106.
- dumping the code and conditions present in the SRAMs to an external location can be helpful to find the root cause of a software crash or computer lockup.
- a scan dump process can include dumping the code and conditions present in the SRAMs.
- a signal can be generated to dump the contents of the SRAM 106 to the logic scandump chain 108.
- This process can be repeated for any number of SRAMs. Automatically triggenng the daisy chain to dump the next SRAM can create a continuous data stream to dump SRAM data, e g., without any dummy or empty cycles of signals. Contents of every SRAM are dumped to the logic scandump chain 108, the logic scandump chain 108 continues dumping the contents to an external storage device, e.g., an external DRAM.
- FIG. 2 illustrates a diagram of an example functional component 200 for dumping an SRAM.
- the component 200 can be part of a cache.
- the functional component 200 includes a RAM wrapper 202.
- the RAM wrapper 202 includes a memory built in self-test (MBIST) interface 204 and an SRAM or cache 206.
- the functional component 200 can include a test controller that is configured to generate test signals for a test path 210, e.g., an MBIST path, and the functional component can have a functional path 208 which is separate from the test path 210.
- the MBIST interface 204 includes a scan memory state machine 212 which can be activated to dump the SRAM 206.
- the scan memory state machine 212 can be activated.
- the scan memory state machine 212 can generate a signal to dump the SRAM 206.
- the multiplexor 214 can select the signal from the scan memory state machine 212, and the multiplexor 216 can select the signal from the scan memory state machine 212.
- the SRAM 206 can receive the signal to dump its contents to the scan memory state machine 212.
- the scan memory state machine 212 can contain an N-bit register 220, where N is the width of the SRAM databus.
- the scan memory state machine 212 can read the first address of the SRAM 206, which is captured into the N-bit register 220.
- the scan memory state machine 212 can perform a serial shift of the N-bit register 220 to unload the data, which will take N cycles because it is an N-bit register 220. After N serial shifts of the N-bit register 220, the scan memory state machine 212 increments the address of the SRAM 206 by one, performs a read on the corresponding address, and updates the content of the N-bit register 220 with the new data read from the SRAM 206. The N-bit register 220 can continue to unload the data on the output signal 226 on every clock cycle 222, and output signal 226 can continue to unload data through the logic scandump chain. When all of the addresses of the SRAM 206 are read out, the scan memory state machine 212 can output a done signal 224. If there are additional SRAMS, the done signal 224 can trigger the next scan memory state machine, e.g., in a daisy chain.
- the contents of the logic scandump chain 300 can then be examined by a debugging system or user. If the logic scandump chain 300 contains the contents of an SRAM due to the process described above, the contents of the SRAM will also be available to be examined by the debugging system or user. This allows for visibility into the code and conditions stored within the SRAM. As discussed above, SRAMS and caches typically do not have visibility for debugging, and the code and conditions stored within the SRAM can be helpful to find the root cause of a software crash.
- FIG. 4 illustrates a system 400 on a chip that allows the content of embedded caches or RAMs, which usually do not have software visibility, to be dumped so that the contents can be examined.
- the system 400 includes multiple functional components 200a, 200b, 200c, which can be, for example, implemented according to the example functional component 200 of FIG. 2.
- each functional component contains a RAM wrapper, an MBIST interface, an SRAM, a scan memory state machine, etc. as described above.
- the system 400 also includes the logic scandump chain 300 as described above.
- a signal 218 is generated to begin a scandump, e.g., by software writing a value to a configuration register, the signal 218 can be forwarded to the first functional component 200a.
- the functional component 200b can receive the done signal 224a at the scan memory state machine of the functional component 200b.
- the scan memory state machine of the second functional component 200b can be activated and can generate a signal to dump the SRAM 206b of the second functional component 200b.
- the scan memory state machine can contain an N-bit register as described above, and can perform a serial shift of the N-bit register to unload the data from the SRAM using output signal 226b, as described above. When all of the contents of the SRAM are read out, the scan memory state machine can output a done signal 224b to trigger the next functional component 200c.
- the functional component 200c can receive the done signal 224b at the scan memory state machine of the functional component 200c.
- the scan memory state machine of the third functional component 200c can be activated and can generate a signal to dump the SRAM 206c of the third functional component 200c.
- the scan memory state machine can contain an N-bit register as described above, and can perform a serial shift of the N-bit register to unload the data from the SRAM using output signal 226c, as described above. When all of the contents of the SRAM are read out, the scan memory state machine can output a done signal 224c, e.g., to trigger a next functional component. This process can be repeated for any number of functional components and SRAMs in a system.
- the system 400 contains the contents of each SRAM, e.g., due to the process described above, the contents of each SRAM will also be available to be examined by the debugging system or user. This allows for the content of the embedded RAMs, which usually do not have software visibility, to be dumped so that the contents can be examined.
- the scan memory state machine generates a signal to dump the SRAM (504).
- the scan memory state machine can send a signal similar to the signal sent to the SRAM 206 of FIG. 2, as described above.
- the scan memory state machine reads the first address of the SRAM (506).
- the contents of the first address can be read by an N-bit register similar to register 220 of FIG. 2.
- the scan memory state machine reads the next address of the SRAM (512).
- the contents of the corresponding address of the SRAM can be read by the N-bit register and sent to a logic scandump chain, as described in FIG. 2.
- the address is incremented once for every N shifts of the N-bit register, and a read is performed once for every N shifts of the N-bit register.
- the N-bit register sends the read data to the logic scandump chain on every clock cycle, so that data is not lost.
- the serial shift of the N-bit register is a continuous process until the entire content of the SRAM is read out. If there are additional addresses in the SRAM, the scan state memory machine continues to output the contents (branch to 508) of the SRAM (510). This loop can repeat until the scan state memory machine reads all of the addresses of the SRAM, e.g., a pre configured maximum address is reached, and sends the contents to the logic scandump chain through the N-bit register.
- the scan memory state machine When all of the addresses of the SRAM are read out, the scan memory state machine outputs a done signal (514). For example, if there are additional SRAMS, the done signal can trigger the next scan memory state machine, e.g., in a daisy chain.
- Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory storage medium for execution by, or to control the operation of, data processing apparatus.
- the computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
- the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
- data processing apparatus refers to data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the apparatus can also be, or further include, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- the apparatus can optionally include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
- Embodiment 1 is a cache of a system-on-a-chip having one or more embedded random-access memories (RAMs), the cache comprising: a scan memory state machine configured to generate signals for dumping the contents of the one or more embedded RAMs during a scan dump process.
- RAMs embedded random-access memories
- Embodiment 2 is the cache of embodiment 1, wherein the cache comprises a test controller that is configured to generate test signals that are separate from a functional path.
- Embodiment 3 is the cache of embodiment 2, wherein the cache is configured to select between a signal from the test controller and a signal from the scan memory state machine.
- Embodiment 4 is the cache of embodiment 3, wherein the cache further comprises a multiplexor configured to select between a functional path and a signal either from the test controller or from the scan memory state machine.
- Embodiment 5 is the cache of any one of embodiments 1-4, wherein the cache is configured to activate the scan memory state machine in response to software writing a value to a configuration register.
- Embodiment 6 is the cache of any one of embodiments 1-5, wherein the cache has cache lines stored in the one or more embedded RAMs.
- Embodiment 7 is the cache of any one of embodiments 1-6, wherein the cache is a translation lookaside buffer having translation entries stored in the one or more embedded RAMs.
- Embodiment 8 is the cache of any one of embodiments 1-7, wherein the one or more embedded RAMs do not have a scan input.
- Embodiment 10 a method performed by a cache of a system-on-a-chip, the method comprising: generating, by a scan memory state machine of the cache, signals for dumping the contents of one or more embedded random-access memories of the cache; and providing, by the scan memory state machine, the generated signals to the one or more embedded RAMs during a scan dump process.
- Embodiment 11 is the method of embodiment 10, wherein the cache comprises a test controller that is configured to generate test signals that are separate from a functional path.
- Embodiment 12 is the method of embodiment 11, wherein the cache is configured to select between a signal from the test controller and a signal from the scan memory state machine.
- Embodiment 13 is the method of embodiment 12, wherein the cache further comprises a multiplexor configured to select between a functional path and a signal either from the test controller or from the scan memory state machine.
- Embodiment 14 is the method of any one of embodiments 10-13, wherein the cache is configured to activate the scan memory state machine in response to software writing a value to a configuration register.
- Embodiment 15 is the method of any one of embodiments 10-14, wherein the cache has cache lines stored in the one or more embedded RAMs.
- Embodiment 16 is the method of any one of embodiments 10-15, wherein the cache is a translation lookaside buffer having translation entries stored in the one or more embedded RAMs.
- Embodiment 17 is the method of any one of embodiments 10-16, wherein the one or more embedded RAMs do not have a scan input.
- Embodiment 18 is the method of any one of embodiments 10-17, wherein the one or more embedded RAMs are static RAMs.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2022/044249 WO2024063767A1 (en) | 2022-09-21 | 2022-09-21 | Cache scanning |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4573452A1 true EP4573452A1 (en) | 2025-06-25 |
Family
ID=83689846
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP22787104.3A Withdrawn EP4573452A1 (en) | 2022-09-21 | 2022-09-21 | Cache scanning |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4573452A1 (en) |
| CN (1) | CN119856161A (en) |
| TW (1) | TW202414420A (en) |
| WO (1) | WO2024063767A1 (en) |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8527825B2 (en) * | 2010-09-21 | 2013-09-03 | Qualcomm Incorporated | Debugger based memory dump using built in self test |
-
2022
- 2022-09-21 WO PCT/US2022/044249 patent/WO2024063767A1/en not_active Ceased
- 2022-09-21 EP EP22787104.3A patent/EP4573452A1/en not_active Withdrawn
- 2022-09-21 CN CN202280100155.5A patent/CN119856161A/en active Pending
-
2023
- 2023-07-20 TW TW112127068A patent/TW202414420A/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| CN119856161A (en) | 2025-04-18 |
| WO2024063767A1 (en) | 2024-03-28 |
| TW202414420A (en) | 2024-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5513318A (en) | Method for built-in self-testing of ring-address FIFOs | |
| US8542546B2 (en) | Semiconductor memory device and method for testing same | |
| CN103154906B (en) | For the method and apparatus of execute store dump | |
| US20080059850A1 (en) | Self programmable shared bist for testing multiple memories | |
| US6802036B2 (en) | High-speed first-in-first-out buffer | |
| JP2015176619A (en) | semiconductor integrated circuit | |
| US5978935A (en) | Method for built-in self-testing of ring-address FIFOs having a data input register with transparent latches | |
| WO2024063767A1 (en) | Cache scanning | |
| US20040128604A1 (en) | Memory bypass with support for path delay test | |
| US7013414B2 (en) | Test method and test system for semiconductor device | |
| US7398443B2 (en) | Automatic fault-testing of logic blocks using internal at-speed logic-BIST | |
| US10170199B2 (en) | Testing content addressable memory and random access memory | |
| US20250266117A1 (en) | Computer-implemented method for testing logic circuit implementing the cache function | |
| US8589749B1 (en) | Memory content protection during scan dumps and memory dumps | |
| JP4622443B2 (en) | Semiconductor integrated circuit | |
| US20090132870A1 (en) | Dynamic mask memory for serial scan testing | |
| US7246300B1 (en) | Sequential flow-control and FIFO memory devices having error detection and correction capability with diagnostic bit generation | |
| US8307249B2 (en) | At-speed bitmapping in a memory built-in self-test by locking an N-TH failure | |
| US7719908B1 (en) | Memory having read disturb test mode | |
| TWI783898B (en) | Test circuit and method for reading data from a memory device during memory dump | |
| JP2970088B2 (en) | LSI tester | |
| US20070226573A1 (en) | System on chip having test circuit | |
| JP4891055B2 (en) | Test circuit | |
| JP4894376B2 (en) | Semiconductor integrated circuit device | |
| TW202533244A (en) | Repair data controller for memories with serial repair interfaces |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250319 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20250930 |