WO2021206903A1 - Apparatuses and methods for command/address tracking - Google Patents
Apparatuses and methods for command/address tracking Download PDFInfo
- Publication number
- WO2021206903A1 WO2021206903A1 PCT/US2021/023700 US2021023700W WO2021206903A1 WO 2021206903 A1 WO2021206903 A1 WO 2021206903A1 US 2021023700 W US2021023700 W US 2021023700W WO 2021206903 A1 WO2021206903 A1 WO 2021206903A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- command
- commands
- illegal
- pattern
- memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 102
- 239000004065 semiconductor Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 102100036285 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Human genes 0.000 description 4
- 101000875403 Homo sapiens 25-hydroxyvitamin D-1 alpha hydroxylase, mitochondrial Proteins 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
Definitions
- This disclosure relates generally to memory devices, including volatile memory, such as dynamic random access memory (DRAM).
- Data may be stored in individual memory cells of the DRAM,
- the memory cells may be organized in an array of rows and columns. Each memory cell in a row may be coupled to a word line and each memory cell in a column may be coupled to a bit line. Thus, every memory cell may be coupled to a word line and a bit line.
- DRAM dynamic random access memory
- hackers may exploit security vulnerabilities in hardware.
- hackers are known to repeatedly access one or more rows in DRAM (referred to as a row hammer attack) which may cause degradation of data stored on one or more rows in the vicinity of the hammered row.
- the degradation of the data may cause an error state that allows the hacker access to the memory and/or a computing system that includes the memory. Accordingly, detecting and preventing damage from hardware attacks may be desirable.
- an apparatus may include a command sequence generator configured to receive and store commands and provide a command sequence including at least one command, pattern matching circuitry configured to receive the command sequence and compare the command sequence to a pattern and generate a result, wherein the result indicates whether or not the pattern is included in the command sequence, wherein the pattern corresponds to one or more commands, and a count comparator configured to receive the result, and when the result indicates the pattern is included in the command sequence, the count comparator is further configured to update a count value associated with the command sequence including the pattern and compare the count value to a threshold value, wherein the count comparator is further configured to activate at least one of a stop command signal or a command alert signal based on comparison of the count value to the threshold value.
- an apparatus may include a command decoder configured to decode commands received from a memory controller, and circuitry configured to receive the commands and analyze the commands to determine if the commands include at least one of an illegal command or illegal command sequence, wherein when the circuitry determines the commands include at least one of the illegal command or the illegal command sequence, the circuitry is further configured to provide an active stop command signal to the command decoder, wherein the command decoder is configured to prevent execution of the illegal command or command sequence responsive to the active stop command signal.
- a method may include receiving from a memory controller a command sequence including at least one command, comparing the command sequence to a pattern that corresponds to an illegal command sequence including at least one illegal command, incrementing a count associated with the command sequence and comparing the count to a threshold value when a result indicates the command sequence includes the pattern, and issuing a signal configured to prevent execution of the command sequence when the count is equal to or greater than the threshold value.
- Figure 1 is a block diagram of a semiconductor device according to embodiments of the present disclosure.
- Figure 2 is a block diagram of command/address tracking circuitry according to embodiments of the present disclosure.
- Figure 3 is a block diagram of pattern matching circuitry according to embodiments of the present disclosure.
- Figure 4 is a flow chart of a method according to embodiments of the present disclosure.
- Figure 5 is a block diagram of a computing system including a memory device according to embodiments of the present disclosure.
- hackers may exploit security vulnerabilities in hardware devices, such as memory devices (e.g., flash, DRAM).
- memory devices e.g., flash, DRAM
- hackers may repeatedly access a row or group of rows in the memory which may cause data degradation in surrounding rows.
- Some memories may track the row addresses associated with access commands to detect row hammer attacks and increase the refresh rate of the surrounding rows to preserve the data.
- hackers may attack the memory based on particular commands and/or sequences of commands that may or may not have a memory address associated with the commands.
- a post package repair (PPR) command may be used to repair one or more defective rows in the memory by blowing one or more fuses and/or anti fuses to remap the row addresses to other auxiliary rows.
- PPR post package repair
- Issuing the PPR command causes the memory to turn on one or more charge pumps that provide high voltages to the memory. These high voltages are used to blow the fuses and/or antifuses to repair the memory.
- the memory is subject to the high voltages when the PPR command is issued regardless of whether or not fuses and/or antifuses are blown. Prolonged exposure to the high voltages, due to remaining in the PPR state or by repeatedly issuing the PPR command, could damage components on the memory and leave the memory, and/or a system including the memory, inoperable and/or vulnerable to a breach.
- refresh commands may be repeatedly issued. While refresh operations are routinely performed by the memory, repeated manual issuing of refresh commands may cause a thermal runaway condition in the memory, which may again cause damage and leave the memory and/or system inoperable and/or vulnerable.
- a sequence of commands may be used to disable and/or damage the memory. For example, during a calibration operation responsive to a calibration command, executing another command (e.g., a refresh command) may interfere with the calibration. The memory may be damaged and/or inoperable due to the execution of the other command during calibration. Thus, a sequence including a calibration command followed by another command may be used as an attack on the memory. Such a sequence may also inadvertently be issued by a legitimate user, perhaps due to a programming error in the user’s software.
- tracking circuitry may be included in a memory to monitor commands and detect and/or prevent execution of illegal commands and/or illegal command sequences.
- the tracking circuitry may receive and store commands and compare the commands and/or sequence of commands to one or more patterns corresponding to illegal commands and/or command sequences. When the comparison indicates an illegal command and/or command sequence has been detected, in some embodiments, the tracking circuitry may activate a signal to prevent execution of tire illegal command and/or activate a signal to provide notice of the illegal command.
- the tracking circuitry may keep counts of how many times illegal commands and/or illegal command sequences are received (either ever or within a time interval). In these embodiments, the tracking circuitry may only activate the signals when the counts equal or exceed threshold values associated with the illegal commands and/or illegal command sequences.
- FIG. 1 is a block diagram showing an overall configuration of a semiconductor device 100 according to at least one embodiment of the disclosure.
- the semiconductor device 100 may be a semiconductor memory device, such as a DRAM device integrated on a single semiconductor chip in some examples.
- the semiconductor device 100 includes a memory array 118.
- the memory array 118 is shown as including a plurality of memory banks. In the embodiment of FIG. 1, the memory array 118 is shown as including eight memory banks BANK0-BANK7. More or fewer banks may be included in the memory array 118 in other embodiments. Although Figure 1 illustrates only one memory array 118, it is understood that the device 100 may include multiple memory arrays 118 in other embodiments.
- Each memory bank includes a plurality of word lines WL, a plurality of bit lines BL and /BL, and a plurality of memory cells MC arranged at intersections of the plurality of word lines WL and the plurality of bit lines BL and /BL.
- the selection of the word line WL is performed by a row decoder 108 and the selection of the bit lines BL and /BL is performed by a column decoder 110.
- a selected word line WL may be driven to a desired charge by word line driver WD.
- the row decoder 108 includes a respective row decoder for each memory bank and the column decoder 110 includes a respective column decoder for each memory bank.
- the bit lines BL and /BL are coupled to a respective sense amplifier (SAMP).
- Read data from the bit line BL or ZBL is amplified by the sense amplifier SAMP, and provided to sub-amplifier transfer gate 120 over complementary local data lines (LIOT/B).
- the sub-amplifier transfer gate 120 may act as a switch to form a conductive path between the appropriate LIOT/B and appropriate shared main data lines (MIO).
- Read data may pass from the local data lines LIOT/B to the main data lines MIO via a conductive path provided by the sub- amplifier transfer gate 120 to a read amplifier 126, which provides the data to an IO circuit 122.
- Write data received from IO circuit 122 is output from a write amplifier 126 and provided to the sense amplifier SAMP over the complementary main data lines MIO, the sub-amp transfer gate 120, and the complementary local data lines LIOT/B, and written in the memory cell MC coupled to the bit line BL or /BL.
- the semiconductor device 100 may employ a plurality of external terminals for transmitting and receiving information from devices external to semiconductor device 100 (e.g., outside the memory), such as a memory controller (not shown in Figure 1).
- the external terminals may include command and address (C/A) terminals coupled to a command and address bus to receive commands and addresses, and a CS signal, clock terminals to receive clocks CK and /CK, data terminals DQ to provide data, an alert pin ALERT for providing an Alrt signal, and power supply terminals to receive power supply potentials VDD1, VDD2, VSS, VDDQ, and VSSQ.
- the clock terminals are supplied with external clocks CK and /CK that are provided to an input circuit 112.
- the external clocks may be complementary.
- the input circuit 112 generates an internal clock ICLK based on the CK and /CK clocks.
- the ICLK clock is provided to the command decoder 110 and to an internal clock generator 114.
- the internal clock generator 114 provides various internal clocks LCLK based on the ICLK clock.
- the LCLK clocks may be used for timing operation of various internal circuits.
- the internal data clocks LCLK are provided to the input/output circuit 122 to time operation of circuits included in the input/output circuit 122, for example, to data receivers to time the receipt of write data.
- the C/A terminals may be supplied with memory addresses.
- the memory addresses supplied to the C/A terminals are provided, via a command/address input circuit 102, to an address decoder 104.
- the address decoder 104 receives the address and supplies a decoded row address XADD to the row decoder 108 and supplies a decoded column address YADD to the column decoder 110.
- the address decoder 104 may also supply a decoded bank address BADD, which may indicate the bank of the memory array 118 containing the decoded row address XADD and column address YADD.
- the C/A terminals may be supplied with commands.
- commands include access commands for accessing the memory, such as read commands for performing read operations and write commands for performing write operations, as well as other commands and operations.
- the access commands may be associated with one or more row address XADD, column address YADD, and bank address BADD to indicate the memory cell(s) to be accessed.
- the commands may be provided as internal command signals to a command decoder 106 via the command/address input circuit 102.
- the command decoder 106 includes circuits to decode tiie internal command signals to generate various internal signals and commands for performing operations. For example, the command decoder 106 may provide a row command signal to select a word line WL and a column command signal to select a bit line BL.
- the device 100 may receive an access command which is a read command.
- an access command which is a read command.
- an activation command is received, and row and bank addresses are timely suppled with the activation command, followed by a read command and a column address is timely supplied with the read command, read data is read from memory cells MC in the memory array 118 corresponding to the row address and column address.
- the read command is received by the command decoder 106 (e.g., command controller), which provides internal commands so that read data from the memory array 118 is provided to the read amplifier 128.
- the read data is output to outside from the data terminals DQ via the input/output circuit 122.
- the device 100 may receive an access command which is a write command.
- an access command which is a write command.
- write data supplied to the data terminals DQ is written to a memory cells in the memory array 118 corresponding to the row address and column address.
- the write command is received by the command decoder 106, which provides internal commands so that the write data is received by data receivers in the input/output circuit 122.
- Write clocks may also be provided to the external clock terminals for timing the receipt of the write data by the data receivers of the input/output circuit 122.
- the write data is supplied via the input/output circuit 122 to the write amplifier 126, and by the write amplifier 126 to the memory array 118 to be written into the memory cell MC.
- the device 100 may also receive commands causing it to carry out a refresh operation.
- the refresh signal REF may be a pulse signal which is activated when the command decoder 106 receives a signal which indicates an auto-refresh and/or other refresh command.
- the refresh command may be externally issued to the memory device 100.
- the refresh command may be periodically generated by a component of the device 100.
- the refresh signal REF is provided to a refresh control circuit 116 (e.g., refresh controller).
- a refresh command provided to the refresh control circuit 116 may cause the device 100 to carry out refresh operations for one or more of the memory banks.
- the refresh control circuit 116 supplies a refresh row address RXADD to the row decoder circuit 108, which may refresh one or more word lines WL indicated by the refresh row address.
- the refresh control circuit 116 may control a timing of the refresh operation based on the refresh signal. Responsive to an activation of the refresh signal, the refresh control circuit 116 may generate and provide one or more refresh addresses.
- One type of refresh operation may be an auto-refresh operation. Responsive to an auto- refresh operation the device 100 may refresh a word line or a group of word lines of the memory array 118, and then may refresh a next word line or group of word lines of the memory responsive to a next auto-refresh operation.
- the refresh control circuit 116 may provide an auto-refresh address as the refresh address which indicates a word line or a group of word lines in the memory array 118.
- the refresh control circuit 116 may generate a sequence of refresh addresses such that over time the auto-refresh operation may cycle through all the word lines of the memory array 118.
- device 100 may include C/A tracking circuitry 130 (also referred to as tracking circuitry).
- the command decoder 106 may provide memory commands received CMD to the tracking circuitry 130.
- the tracking circuitry 130 may monitor the commands CMD to determine whether or not device 100 has received an illegal command and/or illegal command sequence. If the tracking circuitry 130 detects an illegal command and/or sequence, the tracking circuitry 130 may provide an active stop command signal StpCMD to the command decoder 106.
- An active StpCMD may cause the command decoder 106 to refrain from issuing the illegal commands to other components of device 100 and/or issue additional commands to prevent execution of the illegal commands.
- the command decoder 106 may modify the illegal commands such that non-illegal commands are executed. For example, if a refresh command is issued before a required latency period has elapsed after a calibration command, responsive to the active StpCMD, the command decoder 106 may modify the command sequence such that the required latency period elapses before issuing the refresh command.
- the tracking circuitry 130 may provide a command alert signal CMD Alrt to an alert pin of device 100.
- the tracking circuitry 130 may provide an active CMD Alert when an illegal command and/or sequence is detected.
- the CMD Alert signal may be used to generate a warning, error message, and/or other notification to a user or another device (not shown) in communication with the device 100.
- the CMD Alert signal may notify the user and/or other device that a command or command was detected, not executed and/or modified.
- the tracking circuitry 130 may store data relating to commands CMD received (e.g., command data).
- Example command data may include, but is not limited to, a number of times a command was received, a number of times within a time interval a command was received, when a command was received, and/or a combination thereof.
- the command data CMD Data may be provided by the tracking circuitry 130 to IO circuit 122, for example, responsive to a command data read command.
- the tracking circuitry 130 may receive internal clock signal LCLK from the internal clock generator 114.
- the LCLK may be used for timing of monitoring operations of the tracking circuitry 130.
- the LCKL may be used to determine a number of times a command is received during a time interval.
- tracking circuitry 130 may receive addresses from address decoder 104 (not shown). Addresses may be used to detect illegal commands when whether or not a command is illegal may depend on an address associated with the command. In some embodiments, tracking circuitry 130 may receive commands and/or addresses from the command address input circuit 102 in addition to and/or instead of the command decoder 106 and/or address decoder 104. In some embodiments, tracking circuitry 130 may provide StpCMD to the command address input circuit 102 in addition to and/or instead of the command decoder 106.
- the tracking circuitry 130 may form an integral part of the device 100.
- the tracking circuitry 130 may be formed in a same semiconductor die as the memory array 118.
- the tracking circuitry 130 may be on a same printed circuit board as the memory array 118.
- Power supply terminals of device 100 are supplied with power supply potentials VDD1, VDD2, and VSS.
- the power supply potentials VDD1, VDD2, and VSS are supplied to an internal voltage generator circuit 124.
- the internal voltage generator circuit 124 generates various internal potentials VPP, VOD, VARY, VPERI, and the like based on the power supply potentials VDD1, VDD2, and VSS supplied to the power supply terminals. While the various internal potentials and power supply potentials may be used for any of the different circuits of the device 100, the internal potential VPP is mainly used in the row decoder 108, the internal potentials VOD and VARY are mainly used in the sense amplifiers SAMP included in the memory array 118, and the internal potential VPERI is used in many peripheral circuit blocks.
- the power supply terminals are also supplied with power supply potentials VDDQ and VSSQ.
- the power supply potentials VDDQ and VSSQ are supplied to the input/output circuit 122.
- the power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be the same potentials as the power supply potentials VDD and VSS supplied to the power supply terminals in an embodiment of the disclosure.
- the power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be different potentials from the power supply potentials VDD and VSS supplied to the power supply terminals in another embodiment of the disclosure.
- the power supply potentials VDDQ and VSSQ supplied to the power supply terminals are used for the input/output circuit 122 so that power supply noise generated by the input/output circuit 122 does not propagate to the other circuit blocks.
- the components of semiconductor device 100 may transmit and/or receive information with other components of semiconductor device 100 without accessing the external terminals (e.g., C/A, DQ).
- the components may be coupled to one another by conductive traces for transmitting and/or receiving information (e.g., the CMD line, StpCMD line, XADD line).
- Components that can communicate with other components of semiconductor device 100 without accessing the external terminals may be considered on semiconductor device 100 (e.g., “on memory” or “of the memory” when semiconductor device 100 is a memory device) and other components or devices that must access the external terminals of semiconductor device 100 to communicate with components of semiconductor device 100 may be considered off and/or outside semiconductor device 100 (e.g., “off memory” when semiconductor device 100 is a memory device).
- FIG. 2 is a block diagram of C/A tracking circuitry 300 according to embodiments of the present disclosure.
- C/A tracking circuitry 300 (also referred to as tracking circuitry) may be included in C/A tracking circuitry 130.
- IO circuit 203 may be included in IO circuit 122 and command decoder 201 may be included in command decoder 106.
- the tracking circuitry 300 may include a command sequence generator 202, pattern matching circuitry 204, a count comparator 206, and a command data register 208.
- the command sequence generator 202 may receive commands CMD. In some embodiments, such as the one shown in Figure 2, the command sequence generator 202 may receive commands from the command decoder 201. In some embodiments, the command sequence generator 202 may store, at least temporarily, one or more of the received commands prior to providing the commands and/or command sequences (CS) to the pattern matching circuitry 204. In some examples, the command sequence generator 202 may include one or more buffers, latches, and/or registers for storing commands and/or command sequences. For example, if command sequences of interest are three commands long, the command sequence generator 202 may buffer commands until at least three commands are received and then provide the three commands (e.g., a command sequence) to the pattern matching circuitry 204.
- the command sequence generator 202 may buffer commands until at least three commands are received and then provide the three commands (e.g., a command sequence) to the pattern matching circuitry 204.
- a command sequence provided by the command sequence generator 202 may have a different number of commands (e.g., 1, 2, 4, etc.).
- the command sequence generator 202 may provide varying lengths of command sequences (LC).
- the command sequence generator 202 may provide single commands as well as multi-command sequences.
- the command sequence generator 202 may be programmed and/or hardcoded with the length or lengths of command sequences to provide.
- the command sequence generator 202 may receive tire length or lengths of command sequences from the pattern matching circuitry 204.
- the pattern matching circuitry 204 may receive the commands and/or command sequences from the command sequence generator 202.
- the pattern matching circuitry 204 may compare the received commands and/or command sequences to patterns of illegal commands and illegal command sequences. A result (Res) of the comparison may be provided to the count comparator
- the result may include the illegal command or command sequence (if any) detected by the comparison. In some embodiments, the result may further include a count of how many times the illegal command or command sequence has been detected. The count may be a count within a time interval (e.g., 500ms), a lifetime count, and/or a combination thereof.
- the patterns included in the pattern matching circuitry 204 may be written to a register. In other embodiments, the patterns in the pattern matching circuitry 204 may be hardcoded (e.g., hardwired, fuse blows). In some embodiments, the patterns may provide the lengths of the sequences desired from the command sequence generator 202. As will be discussed in more detail with reference to Figure 3, in some embodiments, the command sequence generator 202 may be included in the pattern matching circuitry 204 or the functions of the command sequence generator
- the 202 may be implemented by components of the pattern matching circuitry 204.
- the pattern matching circuitry 204 may activate the command alert CMD Alrt signal and/or the stop command StpCMD signal, which may be provided to an alert pin and the command decoder 201, respectively. For example, it may be desirable to block certain illegal commands or command sequences regardless of how many times tire illegal command and/or command sequence has been received (e.g., a calibration command followed too closely by an access command).
- the count comparator 206 may receive the result (Res) from the pattern matching circuitry 204.
- the count comparator 206 may include a comparator circuit and/or other logic circuits.
- the count comparator 206 may compare a number of times the illegal command and/or command sequence has been received to a threshold value.
- the count comparator 206 may include a register or other storage medium that stores the threshold value(s) for the illegal commands and/or command sequences.
- the count comparator 206 may further include a register or other storage medium for storing count values for keeping track of the number of times the illegal command and/or command sequence has been received.
- the count comparator 206 receives the threshold values (TV) from the pattern matching circuitry 204.
- the count comparator 206 may activate the CMD Alrt signal and/or the StpCMD signal. If the number of times is below the threshold value, count comparator 206 may update the count value but not activate CMD_Alrt and StpCMD. In some embodiments, the count comparator 206 may provide the illegal command and/or sequence and updated count value (CD) to the command data register 208.
- the count comparator 206 may not update any count values or activate any signals.
- the result received from the pattern matching circuitry 204 only includes an indication of the illegal command or sequence detected by the pattern matching circuitry 204.
- the count comparator 206 may include a counter that stores a number of times an illegal command and/or sequence has been received (e.g., a count value). The counter may be incremented each time the result indicates the illegal command and/or sequence has been received.
- the result may include both an indication of the illegal command and/or sequence and the count value. That is, in these embodiments, the pattern matching circuitry 204 stores and increments the counts for each illegal command and/or sequence received.
- the pattern matching circuitry 204 and/or count comparator 206 may receive an internal clock signal LCLK, which may be provided from an internal clock generator, such as internal clock generator 114.
- the LCLK signal may be used to measure a time interval (e.g., a number of clock cycles or a number of milliseconds).
- the count values associated with the illegal commands and/or sequences received may be reset (e.g., set to ‘0’) after the time interval. Resetting the count values may be used when certain illegal commands and/or sequences are blocked only if the illegal commands and/or sequences are provided a number of times within the time interval. For example, refresh commands may not be blocked if they are temporally spaced sufficiently to prevent triggering a thermal runaway condition.
- the command data register 208 may include one or more registers for storing data related to illegal commands and/or sequences (e.g. command data).
- command data may include the illegal commands and/or sequences received as well as their updated count values received from the count comparator 206.
- the command data may include when an illegal command and/or sequence was received.
- the command data register 208 may also store command data related to all commands received, not just illegal commands.
- the command data register 208 may receive commands CMD from the command sequence generator 202.
- the command data register 208 may be a multipurpose register (MPR).
- MPR multipurpose register
- the command data register 208 may be included in the pattern matching circuitry 204 or the functions of the command data register 208 may be implemented by components of the pattern matching circuitry 204.
- the command data may be read from the command data register 208 by a MPR read command and/or a command data register read command. Responsive to a read command, the command data register 208 may provide the command data CMD Data to 10 circuit 203.
- the command data may allow a user, another component of a memory, and/or a device in communication with the C/A tracking circuitry 300 to analyze use of the memory. For example, the command data may be analyzed to determine which attacks are most commonly attempted, In another example, the command data may be analyzed after a memory failure to determine if there are additional illegal commands or sequences that should be provided to the pattern matching circuitry 204. In some embodiments, the command data may be provided whenever the StpCMD and/or CMD Alrt signals are activated. The command data may be used to provide information as to what illegal command and/or command sequence has been detected, blocked, and/or modified.
- Figure 3 is a block diagram of pattern matching circuitry 300 according to embodiments of the present disclosure.
- pattern matching circuitry 300 may be included in pattern matching circuitry 204.
- the pattern matching circuitry 300 may include a pattern register 302, a comparator 304, and a result register 306.
- the pattern matching circuitry 300 may receive data, which may be provided to tire pattern register 302 and/or comparator 304.
- the data may be provided from a memory array, such as memory array 118 and/or an IO circuit such as IO circuit 122 and/or IO circuit 203.
- the pattern register 302 may store one or more patterns to be used in a pattern matching operation.
- the pattern register 302 may include multiple registers 308.
- Each register 308 may store one or more patterns.
- the pattern register 302 may be implemented using a multipurpose register (MPR). In these embodiments, a pattern may be written to the pattern register 302 using an MPR write command. In other embodiments, a pattern may be written to the pattern register 302 responsive to a pattern register write command.
- MPR multipurpose register
- pattern register 302 may also store additional data, such as threshold values associated with each pattern and/or lengths of each pattern.
- the threshold values TV and/or lengths of each pattern LC may be provided to other components in communication with the pattern matching circuitry 300 (e.g., command sequence generator 202).
- some or all of the patterns may be hardcoded (e.g., hardwired, fuse blows) in the pattern register 302. For example, patterns corresponding to illegal commands and/or illegal command sequences and/or other data relating to illegal commands and/or command sequences may be hardcoded in the pattern register 302.
- the comparator 304 may receive the pattern Pat from the pattern register 302 and a command and/or command sequence CS.
- CS may be received from a command sequence generator, such as command sequence generator 202.
- the comparator 304 may perform a pattern matching operation to determine if CS includes Pat.
- the comparator 304 may perform pattern matching operations for multiple patterns Pat, for example, when pattern register 302 includes more than one pattern. The pattern matching operations on multiple patterns may be performed sequentially or in parallel. Based on the determination of the pattern matching operation, the comparator 304 may generate a result Res.
- Res may include a count value of a number of times Pat is present in the CS, which Pat of multiple patterns was found in CS, and/or a combination thereof.
- Res may include an indication of an illegal command and/or sequence found in CS and/or a number of times the illegal command and/or sequence has been found.
- the pattern matching circuitry 300 may activate a stop command signal StpCMD and/or a command alert signal CMD Alrt responsive to the pattern matching operation performed by the comparator 304 determining that an illegal command and/or sequence is present in CS.
- the comparator 304 may include comparator logic such as a plurality of XOR logic circuits. The number of logic circuits may be based, at least in part, on a length (e.g., number of bits) in the pattern to be matched. In some embodiments, the comparator 304 may include one or more content addressable memory (CAM) cells. Other logic circuits or other circuit components (e.g., operational amplifiers) may be included in the comparator 304 in some embodiments.
- CAM content addressable memory
- the comparator 304 may include a buffer 312.
- the buffer 312 may temporarily store one or more commands received until a desired sequence length has been acquired.
- the comparator 304 may receive commands from a command decoder (e.g., command decoder 106, command decoder 201) rather than, or in addition to, receiving CS from a command sequence generator.
- the command sequence generator may be omitted.
- the result register 306 may store one or more results Res output by the comparator 304 responsive to the pattern matching operation.
- the result register 306 may include multiple registers 310. Each register 310 may store one or more results.
- the result register 306 may include a multipurpose register (MPR).
- MPR multipurpose register
- a result register 306 may be read using an MPR read command.
- a result may be read from the result register 306 responsive to a result register read command.
- the result may be provided to a count comparator such as count comparator 206.
- the comparator 304 may provide the Res to tiie count comparator in addition to or instead of the result register 306.
- the result register 306 may provide the result to an IO circuit, such as IO circuit 122. In some embodiments, the result register 306 may provide the result to a command data register, such as command data register 208. In some embodiments, the result register 306 may store command data related to illegal commands and/or sequences or all commands and/or sequences and provide CMD Data to the IO circuit. In these embodiments, the command data register may be omitted.
- Figure 4 is a flow chart of a method 400 according to embodiments of the present disclosure. In some embodiments, some or all of the method 400 may be performed by the tracking circuitry
- the tracking circuitry 200 the tracking circuitry 200, and/or pattern matching circuitry 300.
- the command sequence may include at least one command.
- the command sequence may be received by a command sequence generator, such as command sequence generator 202.
- the command sequence may be received by a buffer, such as buffer 312, of pattern matching circuitry, such as pattern matching circuitry 204 and/or pattern matching circuitry 300.
- “comparing the command sequence to a pattern and generating a result” may be performed.
- the comparing may be performed by pattern matching circuitry.
- the comparing may be performed by a comparator of the pattern matching circuitry, such as comparator 304.
- the pattern may correspond to an illegal command sequence including at least one illegal command.
- the method 400 may end after block 404 and blocks 406 and 408 may not be performed.
- the signal may prevent execution of the command sequence.
- the signal may cause a command decoder, such as command decoder 106 to prevent execution and/or modify the command sequence. If the result indicates the count is not equal or greater than the threshold value, method 400 may end after block 408 and block 410 may not be performed.
- “storing command data” may be performed.
- the command data may be associated with the command sequence.
- the command data may be stored in a register, such as command data register 208.
- block 412 may be performed even if blocks 406 and 408 and/or block 410 are not performed.
- the command data may be provided from the register responsive to a register read command.
- FIG. 5 is a block diagram of a computing system 500 including a memory device 508 according to embodiments of the present disclosure.
- the computing system 500 may include a user interface 502, a processor 504, a memory controller 506, and a memory device 508.
- the user interface 502 may include one or more components that receive input from a user 501 and/or provide output (e.g., text, graphics, sound) to the user 501.
- Example components include, but are not limited to, a keyboard, a mouse, a touchscreen, a display (e.g., liquid crystal display), a speaker, and a microphone.
- the processor 504 may include one or more processing units that perform computational operations.
- the processor 504 may be a multicore and/or multithread processor in some embodiments.
- the processor 504 may perform computational operations based, at least in part, on inputs received by the user interface 502 from the user 501.
- the memory controller 506 may provide an interface between the processor 504 and the memory device 508.
- the memory controller 506 may receive commands from the processor 504, for example, requests to retrieve for and/or store data from computational operations performed by the processor 504.
- the memory controller 506 may translate the commands from the processor 504 into memory commands executable by the memory device 508.
- the memory controller 506 may further provide data from the processor 504 in a manner in which the memory device 508 may store the data (e.g., in a memory array included in the memory device 508).
- the memory controller 506 may receive data requested by the processor 504 from the memory device 508 and/or other information from the memory device 508.
- the memory controller 506 may provide the data to the processor 504.
- the memory device 508 may include device 100 shown in Figure 1.
- the memory device 508 may include tracking circuitry 130 shown in Figure 1 and/or tracking circuitry 200 shown in Figure 2.
- the tracking circuitry may be used to detect and/or prevent the execution of illegal commands and/or sequences (for brevity, both illegal individual commands and sequences of commands will be referred to as illegal commands).
- the user 501 may provide illegal commands to the computing device 500.
- the user 501 may be another device or a person interacting with the computing device 500.
- the user 501 may be a user that is not permitted to access the computing system 500 or a portion thereof
- the user 501 may be a legitimate user of the computing system 500 that has inadvertently caused illegal commands to be issued.
- the user 501 may have misread the memory device 508 specifications and provided an inadequate latency between commands or programmed a defective loop that causes too many commands to be issued.
- the illegal commands may be provided to the user interface 502.
- the user 501 may bypass the user interface 502 and provide illegal commands directly to the processor 504, memory controller 506, and/or memory device 508.
- the illegal commands may be provided to the memory device 508 (e.g., directly or via the user interface 502, processor 504, and/or memory controller 506).
- the illegal commands may be received by a command decoder of the memory device 508, such as command decoder 106 and/or command decoder 201.
- the commands may be provided to the tracking circuitry of the memory device 508.
- the illegal commands may be detected by the tracking circuitry, for example, by pattern matching circuitry, such as pattern matching circuitry 204 and/or pattern matching circuitry 300, and/or a count comparator, such as count comparator 206. Responsive to detecting the illegal commands, the tracking circuitry may prevent the command decoder from causing the illegal commands to be executed by the memory device 508.
- the command decoder may modify the illegal commands.
- the tracking circuitry may further issue a command alert signal (CMD Alert).
- CMS Alert command alert signal
- the command alert signal may include data that indicates that the illegal commands were detected, not executed, and/or modified.
- the command alert signal may be provided to the memory controller 506.
- the command alert signal may be provided from the memory controller 506 to the processor 504, which, in some embodiments, may provide the command alert signal to the user interface 502.
- the user interface 502 may provide the command alert signal to the user 501 in some embodiments.
- the processor 504 and/or user interface 502 may be configured to restrict access to the computing system 500. For example, the user interface 502 may refuse to accept further input from the user 501 until a password or other authentication is received.
- the processor 504 may cease performing computational operations for a period of time and/or until an “all clear” signal is received from the user interface 502.
- the system 500 may take other actions responsive to the command alert signal and the embodiments of the disclosure are not limited to the two preceding examples.
- the apparatuses and methods disclosed herein may allow for detection of illegal commands and/or command sequences in some embodiments. In some embodiments, the apparatuses and methods disclosure herein may prevent the execution of illegal commands and/or command sequences. In some embodiments, the apparatuses and methods disclosed herein may allow for modification of the illegal commands and/or command sequences. In some embodiments, the apparatuses and methods disclosed herein may allow for notification of the receipt of illegal commands and/or command sequences and/or allow for command data to be provided. The apparatuses and methods disclosed herein may prevent damage to memory devices due to the execution of illegal commands and/or command sequences in some applications. Although the examples provided herein refer to DRAM, the principles of the present disclosure are not limited to a particular memory type.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
Abstract
Embodiments of the disclosure are drawn to apparatuses and methods for command/address tracking in memory. Tracking circuitry may be used to determine if commands and/or command sequences include illegal commands and/or illegal command sequences. If the commands and/or command sequences include illegal commands and/or illegal command sequences, the tracking circuitry may activate signals that prevent execution of the commands and/or notice of the detected illegal commands and/or command sequences.
Description
APPARATUSES AND METHODS FOR COMMAND/ADDRESS TRACKING-
RELATED APPLICATIONS
This application claims priority to U.S. Provisional Patent Application No, 16/840,946, filed April 6, 2020, entitled “APPARATUSES AND METHODS FOR COMMAND/ADDRESS TRACKING,” which is incorporated by reference herein, in its entirety and for all purposes,
BACKGROUND
This disclosure relates generally to memory devices, including volatile memory, such as dynamic random access memory (DRAM). Data may be stored in individual memory cells of the DRAM, The memory cells may be organized in an array of rows and columns. Each memory cell in a row may be coupled to a word line and each memory cell in a column may be coupled to a bit line. Thus, every memory cell may be coupled to a word line and a bit line.
In addition to security vulnerabilities in software, hackers may exploit security vulnerabilities in hardware. For example, hackers are known to repeatedly access one or more rows in DRAM (referred to as a row hammer attack) which may cause degradation of data stored on one or more rows in the vicinity of the hammered row. The degradation of the data may cause an error state that allows the hacker access to the memory and/or a computing system that includes the memory. Accordingly, detecting and preventing damage from hardware attacks may be desirable.
SUMMARY
According to at least one example of the present disclosure, an apparatus may include a command sequence generator configured to receive and store commands and provide a command sequence including at least one command, pattern matching circuitry configured to receive the command sequence and compare the command sequence to a pattern and generate a result, wherein the result indicates whether or not the pattern is included in the command sequence, wherein the pattern corresponds to one or more commands, and a count comparator configured to receive the result, and when the result indicates the pattern is included in the command sequence, the count comparator is further configured to update a count value associated with the command sequence including the pattern and compare the count value to a threshold value, wherein the count comparator is further configured to activate at least one of a stop command signal or a command alert signal based on comparison of the count value to the threshold value.
According to at least one example of the present disclosure, an apparatus may include a command decoder configured to decode commands received from a memory controller, and circuitry configured to receive the commands and analyze the commands to determine if the commands include at least one of an illegal command or illegal command sequence, wherein when the circuitry determines the commands include at least one of the illegal command or the illegal command sequence, the circuitry is further configured to provide an active stop command signal to the command decoder, wherein the command decoder is configured to prevent execution of the illegal command or command sequence responsive to the active stop command signal.
According to at least one example of the present disclosure, a method may include receiving from a memory controller a command sequence including at least one command, comparing the command sequence to a pattern that corresponds to an illegal command sequence including at least one illegal command, incrementing a count associated with the command sequence and comparing the count to a threshold value when a result indicates the command sequence includes the pattern, and issuing a signal configured to prevent execution of the command sequence when the count is equal to or greater than the threshold value.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a semiconductor device according to embodiments of the present disclosure.
Figure 2 is a block diagram of command/address tracking circuitry according to embodiments of the present disclosure.
Figure 3 is a block diagram of pattern matching circuitry according to embodiments of the present disclosure.
Figure 4 is a flow chart of a method according to embodiments of the present disclosure. Figure 5 is a block diagram of a computing system including a memory device according to embodiments of the present disclosure.
DETAILED DESCRIPTION
The following description of certain embodiments is merely exemplary in nature and is in no way intended to limit the scope of the disclosure or its applications or uses. In the following detailed description of embodiments of the present systems and methods, reference is made to the accompanying drawings which form a part hereof, and which are shown by way of illustration specific embodiments in which the described systems and methods may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice presently
disclosed systems and methods, and it is to be understood that other embodiments may be utilized and that structural and logical changes may be made without departing from the spirit and scope of the disclosure. Moreover, for the purpose of clarity, detailed descriptions of certain features will not be discussed when they would be apparent to those with skill in the art so as not to obscure the description of embedments of the disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the disclosure is defined only by the appended claims.
Hackers may exploit security vulnerabilities in hardware devices, such as memory devices (e.g., flash, DRAM). In a row hammer attack, hackers may repeatedly access a row or group of rows in the memory which may cause data degradation in surrounding rows. Some memories may track the row addresses associated with access commands to detect row hammer attacks and increase the refresh rate of the surrounding rows to preserve the data. In addition or alternatively to attacks based on memory addresses, hackers may attack the memory based on particular commands and/or sequences of commands that may or may not have a memory address associated with the commands.
For example, a post package repair (PPR) command may be used to repair one or more defective rows in the memory by blowing one or more fuses and/or anti fuses to remap the row addresses to other auxiliary rows. This may allow a memory with defective rows to continue to be used without the defective rows. However, the PPR command may also be exploited by hackers. Issuing the PPR command causes the memory to turn on one or more charge pumps that provide high voltages to the memory. These high voltages are used to blow the fuses and/or antifuses to repair the memory. However, the memory is subject to the high voltages when the PPR command is issued regardless of whether or not fuses and/or antifuses are blown. Prolonged exposure to the high voltages, due to remaining in the PPR state or by repeatedly issuing the PPR command, could damage components on the memory and leave the memory, and/or a system including the memory, inoperable and/or vulnerable to a breach.
In another example, refresh commands may be repeatedly issued. While refresh operations are routinely performed by the memory, repeated manual issuing of refresh commands may cause a thermal runaway condition in the memory, which may again cause damage and leave the memory and/or system inoperable and/or vulnerable.
A sequence of commands may be used to disable and/or damage the memory. For example, during a calibration operation responsive to a calibration command, executing another command (e.g., a refresh command) may interfere with the calibration. The memory may be damaged and/or inoperable due to the execution of the other command during calibration. Thus, a sequence
including a calibration command followed by another command may be used as an attack on the memory. Such a sequence may also inadvertently be issued by a legitimate user, perhaps due to a programming error in the user’s software.
Commands or sequences of commands that may damage the memory are referred to herein as “illegal commands” or “illegal command sequences.” Of course, it is understood that some “illegal” commands may only be illegal if issued too many times or too many times within a time interval (e.g., PPR commands); however, these potentially illegal commands and sequences are also referred to as illegal herein. Whether illegal commands are issued intentionally or inadvertently, it may be desirable to detect when illegal commands and/or command sequences are issued to a memory and prevent execution of the commands.
According to embodiments of the present disclosure, tracking circuitry may be included in a memory to monitor commands and detect and/or prevent execution of illegal commands and/or illegal command sequences. In some embodiments, the tracking circuitry may receive and store commands and compare the commands and/or sequence of commands to one or more patterns corresponding to illegal commands and/or command sequences. When the comparison indicates an illegal command and/or command sequence has been detected, in some embodiments, the tracking circuitry may activate a signal to prevent execution of tire illegal command and/or activate a signal to provide notice of the illegal command. In some embodiments, the tracking circuitry may keep counts of how many times illegal commands and/or illegal command sequences are received (either ever or within a time interval). In these embodiments, the tracking circuitry may only activate the signals when the counts equal or exceed threshold values associated with the illegal commands and/or illegal command sequences.
Figure 1 is a block diagram showing an overall configuration of a semiconductor device 100 according to at least one embodiment of the disclosure. The semiconductor device 100 may be a semiconductor memory device, such as a DRAM device integrated on a single semiconductor chip in some examples.
The semiconductor device 100 includes a memory array 118. The memory array 118 is shown as including a plurality of memory banks. In the embodiment of FIG. 1, the memory array 118 is shown as including eight memory banks BANK0-BANK7. More or fewer banks may be included in the memory array 118 in other embodiments. Although Figure 1 illustrates only one memory array 118, it is understood that the device 100 may include multiple memory arrays 118 in other embodiments. Each memory bank includes a plurality of word lines WL, a plurality of bit lines BL and /BL, and a plurality of memory cells MC arranged at intersections of the plurality of word lines WL and the plurality of bit lines BL and /BL. The selection of the word line WL is
performed by a row decoder 108 and the selection of the bit lines BL and /BL is performed by a column decoder 110. A selected word line WL may be driven to a desired charge by word line driver WD. In the embodiment of Figure 1, the row decoder 108 includes a respective row decoder for each memory bank and the column decoder 110 includes a respective column decoder for each memory bank. The bit lines BL and /BL are coupled to a respective sense amplifier (SAMP).
Read data from the bit line BL or ZBL is amplified by the sense amplifier SAMP, and provided to sub-amplifier transfer gate 120 over complementary local data lines (LIOT/B). The sub-amplifier transfer gate 120 may act as a switch to form a conductive path between the appropriate LIOT/B and appropriate shared main data lines (MIO). Read data may pass from the local data lines LIOT/B to the main data lines MIO via a conductive path provided by the sub- amplifier transfer gate 120 to a read amplifier 126, which provides the data to an IO circuit 122. Write data received from IO circuit 122 is output from a write amplifier 126 and provided to the sense amplifier SAMP over the complementary main data lines MIO, the sub-amp transfer gate 120, and the complementary local data lines LIOT/B, and written in the memory cell MC coupled to the bit line BL or /BL.
The semiconductor device 100 may employ a plurality of external terminals for transmitting and receiving information from devices external to semiconductor device 100 (e.g., outside the memory), such as a memory controller (not shown in Figure 1). The external terminals may include command and address (C/A) terminals coupled to a command and address bus to receive commands and addresses, and a CS signal, clock terminals to receive clocks CK and /CK, data terminals DQ to provide data, an alert pin ALERT for providing an Alrt signal, and power supply terminals to receive power supply potentials VDD1, VDD2, VSS, VDDQ, and VSSQ.
The clock terminals are supplied with external clocks CK and /CK that are provided to an input circuit 112. The external clocks may be complementary. The input circuit 112 generates an internal clock ICLK based on the CK and /CK clocks. The ICLK clock is provided to the command decoder 110 and to an internal clock generator 114. The internal clock generator 114 provides various internal clocks LCLK based on the ICLK clock. The LCLK clocks may be used for timing operation of various internal circuits. The internal data clocks LCLK are provided to the input/output circuit 122 to time operation of circuits included in the input/output circuit 122, for example, to data receivers to time the receipt of write data.
The C/A terminals may be supplied with memory addresses. The memory addresses supplied to the C/A terminals are provided, via a command/address input circuit 102, to an address decoder 104. The address decoder 104 receives the address and supplies a decoded row address XADD to the row decoder 108 and supplies a decoded column address YADD to the column
decoder 110. The address decoder 104 may also supply a decoded bank address BADD, which may indicate the bank of the memory array 118 containing the decoded row address XADD and column address YADD. The C/A terminals may be supplied with commands. Examples of commands include access commands for accessing the memory, such as read commands for performing read operations and write commands for performing write operations, as well as other commands and operations. The access commands may be associated with one or more row address XADD, column address YADD, and bank address BADD to indicate the memory cell(s) to be accessed.
The commands may be provided as internal command signals to a command decoder 106 via the command/address input circuit 102. The command decoder 106 includes circuits to decode tiie internal command signals to generate various internal signals and commands for performing operations. For example, the command decoder 106 may provide a row command signal to select a word line WL and a column command signal to select a bit line BL.
The device 100 may receive an access command which is a read command. When an activation command is received, and row and bank addresses are timely suppled with the activation command, followed by a read command and a column address is timely supplied with the read command, read data is read from memory cells MC in the memory array 118 corresponding to the row address and column address. The read command is received by the command decoder 106 (e.g., command controller), which provides internal commands so that read data from the memory array 118 is provided to the read amplifier 128. The read data is output to outside from the data terminals DQ via the input/output circuit 122.
The device 100 may receive an access command which is a write command. When an activation command is received, and row and bank addresses are timely suppled with the activation command, followed by a write command and a column address is timely supplied with the write command, write data supplied to the data terminals DQ is written to a memory cells in the memory array 118 corresponding to the row address and column address. The write command is received by the command decoder 106, which provides internal commands so that the write data is received by data receivers in the input/output circuit 122. Write clocks may also be provided to the external clock terminals for timing the receipt of the write data by the data receivers of the input/output circuit 122. The write data is supplied via the input/output circuit 122 to the write amplifier 126, and by the write amplifier 126 to the memory array 118 to be written into the memory cell MC.
The device 100 may also receive commands causing it to carry out a refresh operation. The refresh signal REF may be a pulse signal which is activated when the command decoder 106 receives a signal which indicates an auto-refresh and/or other refresh command. In some
embodiments, the refresh command may be externally issued to the memory device 100. In some embodiments, the refresh command may be periodically generated by a component of the device 100. The refresh signal REF is provided to a refresh control circuit 116 (e.g., refresh controller). A refresh command provided to the refresh control circuit 116 may cause the device 100 to carry out refresh operations for one or more of the memory banks.
The refresh control circuit 116 supplies a refresh row address RXADD to the row decoder circuit 108, which may refresh one or more word lines WL indicated by the refresh row address. The refresh control circuit 116 may control a timing of the refresh operation based on the refresh signal. Responsive to an activation of the refresh signal, the refresh control circuit 116 may generate and provide one or more refresh addresses.
One type of refresh operation may be an auto-refresh operation. Responsive to an auto- refresh operation the device 100 may refresh a word line or a group of word lines of the memory array 118, and then may refresh a next word line or group of word lines of the memory responsive to a next auto-refresh operation. The refresh control circuit 116 may provide an auto-refresh address as the refresh address which indicates a word line or a group of word lines in the memory array 118. The refresh control circuit 116 may generate a sequence of refresh addresses such that over time the auto-refresh operation may cycle through all the word lines of the memory array 118.
According to embodiments of the present disclosure, device 100 may include C/A tracking circuitry 130 (also referred to as tracking circuitry). In some embodiments, the command decoder 106 may provide memory commands received CMD to the tracking circuitry 130. The tracking circuitry 130 may monitor the commands CMD to determine whether or not device 100 has received an illegal command and/or illegal command sequence. If the tracking circuitry 130 detects an illegal command and/or sequence, the tracking circuitry 130 may provide an active stop command signal StpCMD to the command decoder 106. An active StpCMD may cause the command decoder 106 to refrain from issuing the illegal commands to other components of device 100 and/or issue additional commands to prevent execution of the illegal commands. In some embodiments, the command decoder 106 may modify the illegal commands such that non-illegal commands are executed. For example, if a refresh command is issued before a required latency period has elapsed after a calibration command, responsive to the active StpCMD, the command decoder 106 may modify the command sequence such that the required latency period elapses before issuing the refresh command.
In some embodiments, the tracking circuitry 130 may provide a command alert signal CMD Alrt to an alert pin of device 100. The tracking circuitry 130 may provide an active
CMD Alert when an illegal command and/or sequence is detected. The CMD Alert signal may be used to generate a warning, error message, and/or other notification to a user or another device (not shown) in communication with the device 100. In some embodiments, the CMD Alert signal may notify the user and/or other device that a command or command was detected, not executed and/or modified. In some embodiments, the tracking circuitry 130 may store data relating to commands CMD received (e.g., command data). Example command data may include, but is not limited to, a number of times a command was received, a number of times within a time interval a command was received, when a command was received, and/or a combination thereof. In some embodiments, the command data CMD Data may be provided by the tracking circuitry 130 to IO circuit 122, for example, responsive to a command data read command.
In some embodiments, the tracking circuitry 130 may receive internal clock signal LCLK from the internal clock generator 114. The LCLK may be used for timing of monitoring operations of the tracking circuitry 130. For example, in some embodiments, the LCKL may be used to determine a number of times a command is received during a time interval.
In some embodiments, tracking circuitry 130 may receive addresses from address decoder 104 (not shown). Addresses may be used to detect illegal commands when whether or not a command is illegal may depend on an address associated with the command. In some embodiments, tracking circuitry 130 may receive commands and/or addresses from the command address input circuit 102 in addition to and/or instead of the command decoder 106 and/or address decoder 104. In some embodiments, tracking circuitry 130 may provide StpCMD to the command address input circuit 102 in addition to and/or instead of the command decoder 106.
In some embodiments, the tracking circuitry 130 may form an integral part of the device 100. For example, the tracking circuitry 130 may be formed in a same semiconductor die as the memory array 118. In some examples, the tracking circuitry 130 may be on a same printed circuit board as the memory array 118.
Power supply terminals of device 100 are supplied with power supply potentials VDD1, VDD2, and VSS. The power supply potentials VDD1, VDD2, and VSS are supplied to an internal voltage generator circuit 124. The internal voltage generator circuit 124 generates various internal potentials VPP, VOD, VARY, VPERI, and the like based on the power supply potentials VDD1, VDD2, and VSS supplied to the power supply terminals. While the various internal potentials and power supply potentials may be used for any of the different circuits of the device 100, the internal potential VPP is mainly used in the row decoder 108, the internal potentials VOD and VARY are mainly used in the sense amplifiers SAMP included in the memory array 118, and the internal potential VPERI is used in many peripheral circuit blocks.
The power supply terminals are also supplied with power supply potentials VDDQ and VSSQ. The power supply potentials VDDQ and VSSQ are supplied to the input/output circuit 122. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be the same potentials as the power supply potentials VDD and VSS supplied to the power supply terminals in an embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals may be different potentials from the power supply potentials VDD and VSS supplied to the power supply terminals in another embodiment of the disclosure. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals are used for the input/output circuit 122 so that power supply noise generated by the input/output circuit 122 does not propagate to the other circuit blocks.
The components of semiconductor device 100 (e.g., command decoder 106, C/A tracking circuitry 130) may transmit and/or receive information with other components of semiconductor device 100 without accessing the external terminals (e.g., C/A, DQ). In some embodiments, the components may be coupled to one another by conductive traces for transmitting and/or receiving information (e.g., the CMD line, StpCMD line, XADD line). Components that can communicate with other components of semiconductor device 100 without accessing the external terminals may be considered on semiconductor device 100 (e.g., “on memory” or “of the memory” when semiconductor device 100 is a memory device) and other components or devices that must access the external terminals of semiconductor device 100 to communicate with components of semiconductor device 100 may be considered off and/or outside semiconductor device 100 (e.g., “off memory” when semiconductor device 100 is a memory device).
Figure 2 is a block diagram of C/A tracking circuitry 300 according to embodiments of the present disclosure. For context, an IO circuit 203 and a command decoder 201 are also shown. In some embodiments, C/A tracking circuitry 300 (also referred to as tracking circuitry) may be included in C/A tracking circuitry 130. IO circuit 203 may be included in IO circuit 122 and command decoder 201 may be included in command decoder 106. The tracking circuitry 300 may include a command sequence generator 202, pattern matching circuitry 204, a count comparator 206, and a command data register 208.
The command sequence generator 202 may receive commands CMD. In some embodiments, such as the one shown in Figure 2, the command sequence generator 202 may receive commands from the command decoder 201. In some embodiments, the command sequence generator 202 may store, at least temporarily, one or more of the received commands prior to providing the commands and/or command sequences (CS) to the pattern matching circuitry 204. In some examples, the command sequence generator 202 may include one or more buffers, latches, and/or
registers for storing commands and/or command sequences. For example, if command sequences of interest are three commands long, the command sequence generator 202 may buffer commands until at least three commands are received and then provide the three commands (e.g., a command sequence) to the pattern matching circuitry 204. Of course, a command sequence provided by the command sequence generator 202 may have a different number of commands (e.g., 1, 2, 4, etc.). In some embodiments, the command sequence generator 202 may provide varying lengths of command sequences (LC). For example, the command sequence generator 202 may provide single commands as well as multi-command sequences. In some embodiments, the command sequence generator 202 may be programmed and/or hardcoded with the length or lengths of command sequences to provide. In some embodiments, the command sequence generator 202 may receive tire length or lengths of command sequences from the pattern matching circuitry 204.
The pattern matching circuitry 204 may receive the commands and/or command sequences from the command sequence generator 202. The pattern matching circuitry 204 may compare the received commands and/or command sequences to patterns of illegal commands and illegal command sequences. A result (Res) of the comparison may be provided to the count comparator
206. The result may include the illegal command or command sequence (if any) detected by the comparison. In some embodiments, the result may further include a count of how many times the illegal command or command sequence has been detected. The count may be a count within a time interval (e.g., 500ms), a lifetime count, and/or a combination thereof. In some embodiments, the patterns included in the pattern matching circuitry 204 may be written to a register. In other embodiments, the patterns in the pattern matching circuitry 204 may be hardcoded (e.g., hardwired, fuse blows). In some embodiments, the patterns may provide the lengths of the sequences desired from the command sequence generator 202. As will be discussed in more detail with reference to Figure 3, in some embodiments, the command sequence generator 202 may be included in the pattern matching circuitry 204 or the functions of the command sequence generator
202 may be implemented by components of the pattern matching circuitry 204.
In some embodiments, when certain illegal commands and/or command sequences are detected by the pattern matching circuitry 204, the pattern matching circuitry 204 may activate the command alert CMD Alrt signal and/or the stop command StpCMD signal, which may be provided to an alert pin and the command decoder 201, respectively. For example, it may be desirable to block certain illegal commands or command sequences regardless of how many times tire illegal command and/or command sequence has been received (e.g., a calibration command followed too closely by an access command).
The count comparator 206 may receive the result (Res) from the pattern matching circuitry 204. The count comparator 206 may include a comparator circuit and/or other logic circuits. If the result indicates an illegal command and/or sequence was detected, the count comparator 206 may compare a number of times the illegal command and/or command sequence has been received to a threshold value. In some embodiments, the count comparator 206 may include a register or other storage medium that stores the threshold value(s) for the illegal commands and/or command sequences. In some examples, the count comparator 206 may further include a register or other storage medium for storing count values for keeping track of the number of times the illegal command and/or command sequence has been received. In some embodiments, the count comparator 206 receives the threshold values (TV) from the pattern matching circuitry 204. If the number of times an illegal command or command sequence has been received is equal to or greater than a threshold value, the count comparator 206 may activate the CMD Alrt signal and/or the StpCMD signal. If the number of times is below the threshold value, count comparator 206 may update the count value but not activate CMD_Alrt and StpCMD. In some embodiments, the count comparator 206 may provide the illegal command and/or sequence and updated count value (CD) to the command data register 208.
If the result received from the pattern matching circuitry 204 indicates that no illegal command and/or sequence was detected, then the count comparator 206 may not update any count values or activate any signals.
In some embodiments, the result received from the pattern matching circuitry 204 only includes an indication of the illegal command or sequence detected by the pattern matching circuitry 204. In these embodiments, the count comparator 206 may include a counter that stores a number of times an illegal command and/or sequence has been received (e.g., a count value). The counter may be incremented each time the result indicates the illegal command and/or sequence has been received. In some embodiments, the result may include both an indication of the illegal command and/or sequence and the count value. That is, in these embodiments, the pattern matching circuitry 204 stores and increments the counts for each illegal command and/or sequence received.
In some embodiments, the pattern matching circuitry 204 and/or count comparator 206 may receive an internal clock signal LCLK, which may be provided from an internal clock generator, such as internal clock generator 114. The LCLK signal may be used to measure a time interval (e.g., a number of clock cycles or a number of milliseconds). In some embodiments, the count values associated with the illegal commands and/or sequences received may be reset (e.g., set to ‘0’) after the time interval. Resetting the count values may be used when certain illegal commands
and/or sequences are blocked only if the illegal commands and/or sequences are provided a number of times within the time interval. For example, refresh commands may not be blocked if they are temporally spaced sufficiently to prevent triggering a thermal runaway condition.
The command data register 208 may include one or more registers for storing data related to illegal commands and/or sequences (e.g. command data). In some embodiments, command data may include the illegal commands and/or sequences received as well as their updated count values received from the count comparator 206. In some embodiments, the command data may include when an illegal command and/or sequence was received. In some embodiments, the command data register 208 may also store command data related to all commands received, not just illegal commands. For example, the command data register 208 may receive commands CMD from the command sequence generator 202. In some embodiments, the command data register 208 may be a multipurpose register (MPR). As will be discussed in more detail with reference to Figure 3, in some embedments, the command data register 208 may be included in the pattern matching circuitry 204 or the functions of the command data register 208 may be implemented by components of the pattern matching circuitry 204.
The command data may be read from the command data register 208 by a MPR read command and/or a command data register read command. Responsive to a read command, the command data register 208 may provide the command data CMD Data to 10 circuit 203. The command data may allow a user, another component of a memory, and/or a device in communication with the C/A tracking circuitry 300 to analyze use of the memory. For example, the command data may be analyzed to determine which attacks are most commonly attempted, In another example, the command data may be analyzed after a memory failure to determine if there are additional illegal commands or sequences that should be provided to the pattern matching circuitry 204. In some embodiments, the command data may be provided whenever the StpCMD and/or CMD Alrt signals are activated. The command data may be used to provide information as to what illegal command and/or command sequence has been detected, blocked, and/or modified.
Figure 3 is a block diagram of pattern matching circuitry 300 according to embodiments of the present disclosure. In some embodiments, pattern matching circuitry 300 may be included in pattern matching circuitry 204. The pattern matching circuitry 300 may include a pattern register 302, a comparator 304, and a result register 306.
The pattern matching circuitry 300 may receive data, which may be provided to tire pattern register 302 and/or comparator 304. The data may be provided from a memory array, such as memory array 118 and/or an IO circuit such as IO circuit 122 and/or IO circuit 203.
The pattern register 302 may store one or more patterns to be used in a pattern matching operation. In some embodiments, the pattern register 302 may include multiple registers 308. Each register 308 may store one or more patterns. In some embodiments, the pattern register 302 may be implemented using a multipurpose register (MPR). In these embodiments, a pattern may be written to the pattern register 302 using an MPR write command. In other embodiments, a pattern may be written to the pattern register 302 responsive to a pattern register write command. In some embodiments, pattern register 302 may also store additional data, such as threshold values associated with each pattern and/or lengths of each pattern. In some embodiments, the threshold values TV and/or lengths of each pattern LC, may be provided to other components in communication with the pattern matching circuitry 300 (e.g., command sequence generator 202). In some embodiments, some or all of the patterns may be hardcoded (e.g., hardwired, fuse blows) in the pattern register 302. For example, patterns corresponding to illegal commands and/or illegal command sequences and/or other data relating to illegal commands and/or command sequences may be hardcoded in the pattern register 302.
The comparator 304 may receive the pattern Pat from the pattern register 302 and a command and/or command sequence CS. In some embodiments, CS may be received from a command sequence generator, such as command sequence generator 202. The comparator 304 may perform a pattern matching operation to determine if CS includes Pat. In some embodiments, the comparator 304 may perform pattern matching operations for multiple patterns Pat, for example, when pattern register 302 includes more than one pattern. The pattern matching operations on multiple patterns may be performed sequentially or in parallel. Based on the determination of the pattern matching operation, the comparator 304 may generate a result Res. In some embodiments, Res may include a count value of a number of times Pat is present in the CS, which Pat of multiple patterns was found in CS, and/or a combination thereof. For example, Res may include an indication of an illegal command and/or sequence found in CS and/or a number of times the illegal command and/or sequence has been found. In some embodiments, the pattern matching circuitry 300 may activate a stop command signal StpCMD and/or a command alert signal CMD Alrt responsive to the pattern matching operation performed by the comparator 304 determining that an illegal command and/or sequence is present in CS.
In some embodiments, the comparator 304 may include comparator logic such as a plurality of XOR logic circuits. The number of logic circuits may be based, at least in part, on a length (e.g., number of bits) in the pattern to be matched. In some embodiments, the comparator 304 may include one or more content addressable memory (CAM) cells. Other logic circuits or other circuit
components (e.g., operational amplifiers) may be included in the comparator 304 in some embodiments.
In some embodiments, the comparator 304 may include a buffer 312. The buffer 312 may temporarily store one or more commands received until a desired sequence length has been acquired. In these embodiments, the comparator 304 may receive commands from a command decoder (e.g., command decoder 106, command decoder 201) rather than, or in addition to, receiving CS from a command sequence generator. Thus, in some embodiments, the command sequence generator may be omitted.
The result register 306 may store one or more results Res output by the comparator 304 responsive to the pattern matching operation. In some embodiments, the result register 306 may include multiple registers 310. Each register 310 may store one or more results. In some embodiments, the result register 306 may include a multipurpose register (MPR). In these embodiments, a result register 306 may be read using an MPR read command. In other embodiments, a result may be read from the result register 306 responsive to a result register read command. In some embodiments, the result may be provided to a count comparator such as count comparator 206. Optionally, in some embodiments, the comparator 304 may provide the Res to tiie count comparator in addition to or instead of the result register 306.
In some embodiments, the result register 306 may provide the result to an IO circuit, such as IO circuit 122. In some embodiments, the result register 306 may provide the result to a command data register, such as command data register 208. In some embodiments, the result register 306 may store command data related to illegal commands and/or sequences or all commands and/or sequences and provide CMD Data to the IO circuit. In these embodiments, the command data register may be omitted.
Figure 4 is a flow chart of a method 400 according to embodiments of the present disclosure. In some embodiments, some or all of the method 400 may be performed by the tracking circuitry
130, the tracking circuitry 200, and/or pattern matching circuitry 300.
At block 402, “receiving a command sequence,” may be performed. The command sequence may include at least one command. In some embodiments, the command sequence may be received by a command sequence generator, such as command sequence generator 202. In some embodiments, the command sequence may be received by a buffer, such as buffer 312, of pattern matching circuitry, such as pattern matching circuitry 204 and/or pattern matching circuitry 300.
At block 404, “comparing the command sequence to a pattern and generating a result” may be performed. The comparing may be performed by pattern matching circuitry. In some embodiments, the comparing may be performed by a comparator of the pattern matching circuitry,
such as comparator 304. In some embodiments, the pattern may correspond to an illegal command sequence including at least one illegal command.
When the result indicates the command sequence includes the pattern, at block 406, “incrementing a count associated with the command sequence” may be performed and at block 408 “comparing the count to a threshold value” may be performed. The incrementing and comparing may be performed by a count comparator, such count comparator 206. If the result indicates the command sequence does not include the pattern, the method 400 may end after block 404 and blocks 406 and 408 may not be performed.
When the count is equal to or greater than the threshold value, at block 410, “activating a signal” may be performed, In some embodiments, the signal may prevent execution of the command sequence. For example, the signal may cause a command decoder, such as command decoder 106 to prevent execution and/or modify the command sequence. If the result indicates the count is not equal or greater than the threshold value, method 400 may end after block 408 and block 410 may not be performed.
Optionally, in some embodiments, at block 412, “storing command data” may be performed. The command data may be associated with the command sequence. In some embodiments, the command data may be stored in a register, such as command data register 208. In some embodiments, block 412 may be performed even if blocks 406 and 408 and/or block 410 are not performed. In some embodiments, the command data may be provided from the register responsive to a register read command.
Figure 5 is a block diagram of a computing system 500 including a memory device 508 according to embodiments of the present disclosure. The computing system 500 may include a user interface 502, a processor 504, a memory controller 506, and a memory device 508.
The user interface 502 may include one or more components that receive input from a user 501 and/or provide output (e.g., text, graphics, sound) to the user 501. Example components include, but are not limited to, a keyboard, a mouse, a touchscreen, a display (e.g., liquid crystal display), a speaker, and a microphone. The processor 504 may include one or more processing units that perform computational operations. The processor 504 may be a multicore and/or multithread processor in some embodiments. The processor 504 may perform computational operations based, at least in part, on inputs received by the user interface 502 from the user 501.
The memory controller 506 may provide an interface between the processor 504 and the memory device 508. The memory controller 506 may receive commands from the processor 504, for example, requests to retrieve for and/or store data from computational operations performed by the processor 504. The memory controller 506 may translate the commands from the processor
504 into memory commands executable by the memory device 508. The memory controller 506 may further provide data from the processor 504 in a manner in which the memory device 508 may store the data (e.g., in a memory array included in the memory device 508). The memory controller 506 may receive data requested by the processor 504 from the memory device 508 and/or other information from the memory device 508. The memory controller 506 may provide the data to the processor 504.
In some embodiments, the memory device 508 may include device 100 shown in Figure 1. In some embodiments, the memory device 508 may include tracking circuitry 130 shown in Figure 1 and/or tracking circuitry 200 shown in Figure 2. The tracking circuitry may be used to detect and/or prevent the execution of illegal commands and/or sequences (for brevity, both illegal individual commands and sequences of commands will be referred to as illegal commands).
In the example shown in Figure 5, the user 501 may provide illegal commands to the computing device 500. The user 501 may be another device or a person interacting with the computing device 500. The user 501 may be a user that is not permitted to access the computing system 500 or a portion thereof However, the user 501 may be a legitimate user of the computing system 500 that has inadvertently caused illegal commands to be issued. For example, the user 501 may have misread the memory device 508 specifications and provided an inadequate latency between commands or programmed a defective loop that causes too many commands to be issued. Regardless of the intent of the user 501, in some embodiments, the illegal commands may be provided to the user interface 502. In other embodiments, the user 501 may bypass the user interface 502 and provide illegal commands directly to the processor 504, memory controller 506, and/or memory device 508. The illegal commands may be provided to the memory device 508 (e.g., directly or via the user interface 502, processor 504, and/or memory controller 506).
In some embodiments, the illegal commands may be received by a command decoder of the memory device 508, such as command decoder 106 and/or command decoder 201. The commands may be provided to the tracking circuitry of the memory device 508. The illegal commands may be detected by the tracking circuitry, for example, by pattern matching circuitry, such as pattern matching circuitry 204 and/or pattern matching circuitry 300, and/or a count comparator, such as count comparator 206. Responsive to detecting the illegal commands, the tracking circuitry may prevent the command decoder from causing the illegal commands to be executed by the memory device 508. In some embodiments, the command decoder may modify the illegal commands. The tracking circuitry may further issue a command alert signal (CMD Alert). The command alert signal may include data that indicates that the illegal commands were detected, not executed, and/or modified. The command alert signal may be provided to the memory controller 506. In
some embodiments, the command alert signal may be provided from the memory controller 506 to the processor 504, which, in some embodiments, may provide the command alert signal to the user interface 502. The user interface 502 may provide the command alert signal to the user 501 in some embodiments. In some embodiments, responsive to the command alert signal, the processor 504 and/or user interface 502 may be configured to restrict access to the computing system 500. For example, the user interface 502 may refuse to accept further input from the user 501 until a password or other authentication is received. In another example, the processor 504 may cease performing computational operations for a period of time and/or until an “all clear” signal is received from the user interface 502. The system 500 may take other actions responsive to the command alert signal and the embodiments of the disclosure are not limited to the two preceding examples.
The apparatuses and methods disclosed herein may allow for detection of illegal commands and/or command sequences in some embodiments. In some embodiments, the apparatuses and methods disclosure herein may prevent the execution of illegal commands and/or command sequences. In some embodiments, the apparatuses and methods disclosed herein may allow for modification of the illegal commands and/or command sequences. In some embodiments, the apparatuses and methods disclosed herein may allow for notification of the receipt of illegal commands and/or command sequences and/or allow for command data to be provided. The apparatuses and methods disclosed herein may prevent damage to memory devices due to the execution of illegal commands and/or command sequences in some applications. Although the examples provided herein refer to DRAM, the principles of the present disclosure are not limited to a particular memory type.
Of course, it is to be appreciated that any one of the examples, embodiments or processes described herein may be combined with one or more other examples, embodiments and/or processes or be separated and/or performed amongst separate devices or device portions in accordance with the present systems, devices and methods.
Finally, the above-discussion is intended to be merely illustrative and should not be construed as limiting the appended claims to any particular embodiment or group of embodiments. Thus, while various embodiments of the disclosure have been described in particular detail, it should also be appreciated that numerous modifications and alternative embodiments may be devised by those having ordinary skill in the art without departing from the broader and intended spirit and scope of the present disclosure as set forth in the claims that follow. Accordingly, the specification and drawings are to be regarded in an illustrative manner and are not intended to limit the scope of the appended claims.
Claims
1. An apparatus comprising: a command sequence generator configured to receive and store commands and provide a command sequence including at least one command; pattern matching circuitry configured to receive the command sequence and compare the command sequence to a pattern and generate a result, wherein the result indicates whether or not the pattern is included in the command sequence, wherein the pattern corresponds to one or more commands; and a count comparator configured to receive the result, and when the result indicates the pattern is included in the command sequence, the count comparator is further configured to update a count value associated with the command sequence including the pattern and compare the count value to a threshold value, wherein the count comparator is further configured to activate at least one of a stop command signal or a command alert signal based on comparison of the count value to the threshold value.
2. The apparatus of claim 1 , further comprising a command data register configured to store command data associated with the command sequence including the pattern.
3. The apparatus of claim 2, wherein the command data register is configured to provide the command data responsive to a register read command.
4. The apparatus of claim 1, wherein the count comparator is configured to reset the count value after a time interval.
5. The apparatus of claim 4, wherein the time interval is based, at least in part, on a clock signal.
6. The apparatus of claim 1, wherein the pattern matching circuitry includes: a pattern register configured to store the pattern; and
a comparator configured to compare the command sequence to the pattern and generate the result.
7. The apparatus of claim 6, wherein the pattern matching circuitry further includes a result register configured to store the result
8. The apparatus of claim 6, wherein the pattern register is further configured to store the threshold value and provide the threshold value to the count comparator.
9. The apparatus of claim 6, wherein the pattern register is further configured to store a number of commands to in the command sequence and provide the number of commands to the command sequence generator.
10. The apparatus of claim 1, wherein the count comparator includes a comparator and a counter.
11. An apparatus comprising: a command decoder configured to decode commands received from a memory controller; and circuitry configured to receive the commands and analyze the commands to determine if the commands include at least one of an illegal command or illegal command sequence, wherein when the circuitry determines the commands include at least one of the illegal command or the illegal command sequence, the circuitry is further configured to provide an active stop command signal to the command decoder, wherein the command decoder is configured to prevent execution of the illegal command or command sequence responsive to the active stop command signal.
12. The memory of claim 11, wherein when the circuitry determines the commands include at least one of the illegal command or the illegal command sequence, the circuitry is further configured to provide an active command alert signal to an alert pin of the memory.
13. The memory of claim 11, further comprising an IO circuit, wherein the circuitry is configured to provide command data associated with the commands to the IO circuit.
14. The memory of claim 13, wherein the command data is provided to the 10 circuit responsive to a register read command.
15. The memory of claim 13, wherein the command data is provided to the 10 circuit responsive to determining the commands include at least one of the illegal command or the illegal command sequence.
16. The memory of claim 11, further comprising an internal clock generator configured to provide a clock signal to the tracking circuitry, wherein determining if the commands include tiie at least one of the illegal command or the illegal command sequence is based, at least in part, on the clock signal.
17. The memory of claim 11, wherein the command decoder is configured to prevent execution of the illegal command or command sequence by modifying the illegal command or command sequence.
18. A method comprising: receiving from a memory controller a command sequence including at least one command; comparing the command sequence to a pattern that corresponds to an illegal command sequence including at least one illegal command; incrementing a count associated with the command sequence and comparing the count to a threshold value when a result indicates the command sequence includes the pattern; and issuing a signal configured to prevent execution of the command sequence when tiie count is equal to or greater than the threshold value.
19. The method of claim 18, further comprising storing command data associated with the command sequence in a register.
20. The method of claim 19, further comprising: receiving a read register command; and providing the command data responsive to the read register command.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227037212A KR20220160048A (en) | 2020-04-06 | 2021-03-23 | Apparatus and method for command/address tracking |
CN202180024969.0A CN115516564A (en) | 2020-04-06 | 2021-03-23 | Apparatus and method for command/address tracking |
EP21785281.3A EP4133486A4 (en) | 2020-04-06 | 2021-03-23 | Apparatuses and methods for command/address tracking |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/840,946 US11410713B2 (en) | 2020-04-06 | 2020-04-06 | Apparatuses and methods for detecting illegal commands and command sequences |
US16/840,946 | 2020-04-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021206903A1 true WO2021206903A1 (en) | 2021-10-14 |
Family
ID=77922788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2021/023700 WO2021206903A1 (en) | 2020-04-06 | 2021-03-23 | Apparatuses and methods for command/address tracking |
Country Status (5)
Country | Link |
---|---|
US (2) | US11410713B2 (en) |
EP (1) | EP4133486A4 (en) |
KR (1) | KR20220160048A (en) |
CN (1) | CN115516564A (en) |
WO (1) | WO2021206903A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230161496A1 (en) * | 2021-11-25 | 2023-05-25 | SK Hynix Inc. | Memory, memory system and operation method of memory system |
US11682435B2 (en) | 2020-04-06 | 2023-06-20 | Micron Technology, Inc. | Apparatuses and methods for detecting illegal commands and command sequences |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586383B2 (en) | 2018-10-16 | 2023-02-21 | Micron Technology, Inc. | Command block management |
US11676052B2 (en) * | 2020-04-15 | 2023-06-13 | Micron Technology, Inc. | Apparatuses and methods for inference processing on edge devices |
US20230205872A1 (en) * | 2021-12-23 | 2023-06-29 | Advanced Micro Devices, Inc. | Method and apparatus to address row hammer attacks at a host processor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170011790A1 (en) * | 2015-07-08 | 2017-01-12 | Texas Instruments Incorporated | Dual mode memory array security apparatus, systems and methods |
US20170109527A1 (en) * | 2015-10-19 | 2017-04-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and solid state drives including the same |
US20190073261A1 (en) * | 2015-08-28 | 2019-03-07 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US20190096472A1 (en) * | 2017-09-25 | 2019-03-28 | Intel Corporation | Memory chip having reduced baseline refresh rate with additional refreshing for weak cells |
US20200034046A1 (en) * | 2015-10-14 | 2020-01-30 | Rambus Inc. | High-throughput low-latency hybrid memory module |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9417297D0 (en) * | 1994-08-26 | 1994-10-19 | Inmos Ltd | Method and apparatus for testing an integrated circuit device |
US6307779B1 (en) * | 2000-07-28 | 2001-10-23 | Micron Technology, Inc. | Method and circuitry for bank tracking in write command sequence |
US6654848B1 (en) * | 2000-09-15 | 2003-11-25 | Advanced Micro Devices, Inc. | Simultaneous execution command modes in a flash memory device |
US20070245036A1 (en) * | 2006-03-03 | 2007-10-18 | Khaled Fekih-Romdhane | Illegal commands handling at the command decoder stage |
KR102087603B1 (en) * | 2013-10-07 | 2020-03-11 | 삼성전자주식회사 | Memory test device and operating method of the same |
KR102272259B1 (en) * | 2015-07-01 | 2021-07-06 | 삼성전자주식회사 | Semiconductor memory device having clock generation scheme based on command interworking |
US11042492B2 (en) * | 2017-10-24 | 2021-06-22 | Rambus Inc. | Memory module with programmable command buffer |
KR102536788B1 (en) * | 2018-09-05 | 2023-05-30 | 에스케이하이닉스 주식회사 | Controller and operating method thereof |
US10866747B2 (en) * | 2019-02-10 | 2020-12-15 | Hewlett Packard Enterprise Development Lp | Securing a memory drive |
US11410713B2 (en) | 2020-04-06 | 2022-08-09 | Micron Technology, Inc. | Apparatuses and methods for detecting illegal commands and command sequences |
-
2020
- 2020-04-06 US US16/840,946 patent/US11410713B2/en active Active
-
2021
- 2021-03-23 WO PCT/US2021/023700 patent/WO2021206903A1/en unknown
- 2021-03-23 KR KR1020227037212A patent/KR20220160048A/en unknown
- 2021-03-23 EP EP21785281.3A patent/EP4133486A4/en active Pending
- 2021-03-23 CN CN202180024969.0A patent/CN115516564A/en not_active Withdrawn
-
2022
- 2022-07-07 US US17/811,153 patent/US11682435B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170011790A1 (en) * | 2015-07-08 | 2017-01-12 | Texas Instruments Incorporated | Dual mode memory array security apparatus, systems and methods |
US20190073261A1 (en) * | 2015-08-28 | 2019-03-07 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US20200034046A1 (en) * | 2015-10-14 | 2020-01-30 | Rambus Inc. | High-throughput low-latency hybrid memory module |
US20170109527A1 (en) * | 2015-10-19 | 2017-04-20 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and solid state drives including the same |
US20190096472A1 (en) * | 2017-09-25 | 2019-03-28 | Intel Corporation | Memory chip having reduced baseline refresh rate with additional refreshing for weak cells |
Non-Patent Citations (1)
Title |
---|
See also references of EP4133486A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11682435B2 (en) | 2020-04-06 | 2023-06-20 | Micron Technology, Inc. | Apparatuses and methods for detecting illegal commands and command sequences |
US20230161496A1 (en) * | 2021-11-25 | 2023-05-25 | SK Hynix Inc. | Memory, memory system and operation method of memory system |
US12026392B2 (en) * | 2021-11-25 | 2024-07-02 | SK Hynix Inc. | Memory, memory system and operation method of memory system |
Also Published As
Publication number | Publication date |
---|---|
US20220335993A1 (en) | 2022-10-20 |
KR20220160048A (en) | 2022-12-05 |
US20210312961A1 (en) | 2021-10-07 |
US11682435B2 (en) | 2023-06-20 |
CN115516564A (en) | 2022-12-23 |
EP4133486A4 (en) | 2024-05-08 |
EP4133486A1 (en) | 2023-02-15 |
US11410713B2 (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11682435B2 (en) | Apparatuses and methods for detecting illegal commands and command sequences | |
US10755763B2 (en) | Apparatuses and methods for detection refresh starvation of a memory | |
US11798610B2 (en) | Apparatuses and methods for controlling steal rates | |
US11462291B2 (en) | Apparatuses and methods for tracking word line accesses | |
US11271735B1 (en) | Apparatuses, systems, and methods for updating hash keys in a memory | |
US11881247B2 (en) | Apparatuses, systems, and methods for resetting row hammer detector circuit based on self-refresh command | |
US11664063B2 (en) | Apparatuses and methods for countering memory attacks | |
US11074201B2 (en) | Apparatus with a security mechanism and methods for operating the same | |
US12032834B2 (en) | Memory with address-selectable data poisoning circuitry, and associated systems, devices, and methods | |
US20240282355A1 (en) | Apparatuses, systems, and methods for controller directed targeted refresh operations | |
US11790974B2 (en) | Apparatuses and methods for refresh compliance | |
US20240112717A1 (en) | Memory with deterministic worst-case row address servicing, and associated systems, devices, and methods |
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: 21785281 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20227037212 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021785281 Country of ref document: EP Effective date: 20221107 |