Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. An apparatus comprising: logic for one or more memory devices, at least a portion of the logic in hardware, the logic to: receive a first logical address for an aggressor row for a volatile memory included in the one or more memory devices, the aggressor row associated with an activation that triggers a target row refresh (TRR) to one or more victim rows to protect against a row hammer error; determine a first physical address for the aggressor row based on an address translation scheme associated with the volatile memory; determine one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address and implement the address translation scheme on the one or more respective adjacent physical addresses to determine one or more respective logical addresses for the one or more victim rows; and select the one or more respective logical addresses for the TRR.
An apparatus protects against row hammer errors in volatile memory by performing target row refreshes (TRR). It receives a logical address for an "aggressor" memory row that experiences high access. It translates this logical address to a physical address using the memory's address translation scheme. Based on the aggressor row's physical address, it determines the physical addresses of adjacent "victim" rows susceptible to row hammer. It then translates these victim row physical addresses back to logical addresses using the same address translation scheme, and selects these logical addresses to be refreshed via TRR. This logic is implemented at least partially in hardware.
2. The apparatus of claim 1 , wherein the activation to trigger the TRR is responsive to a transaction rate based on a value of P, where P is set to reduce a likelihood of the row hammer error due to a total number of activations to the aggressor row before a scheduled row refresh to the one or more victim rows.
The apparatus from the previous description implements a TRR activation based on a transaction rate. The TRR is triggered when the number of accesses to the aggressor row reaches a threshold (defined by the value 'P') before the next scheduled refresh. The 'P' value is configured to reduce the likelihood of row hammer errors occurring due to excessive activations of the aggressor row before the normal refresh cycle. Essentially, a higher access rate to a row will trigger a refresh of neighboring rows more frequently.
3. The apparatus of claim 1 , the address translation scheme comprising at least one of a direct logical-to-physical, a mirroring, a vendor specific, or a bit inversion address translation scheme.
The apparatus from the first description uses an address translation scheme that can be direct logical-to-physical mapping, mirroring, vendor-specific remapping, or bit inversion. The choice of translation scheme affects how logical addresses are converted into physical addresses within the volatile memory. This provides flexibility to handle different memory architectures and optimize for performance or security.
4. The apparatus of claim 3 , the one or more memory devices comprising one or more dynamic random access memory (DRAM) devices, the DRAM devices included in a dual in-line memory module (DIMM).
The apparatus from the previous description includes DRAM (Dynamic Random Access Memory) devices organized within a DIMM (Dual In-line Memory Module). This details the physical memory component used in the apparatus.
5. The apparatus of claim 4 , comprising the mirroring address translation scheme includes swapping address bits pairwise on one side of the DIMM.
In the apparatus containing DRAM within a DIMM (as previously described), when the mirroring address translation scheme is active, it involves swapping address bits in pairs on one side of the DIMM. This remapping aims to distribute memory access patterns across different physical locations, mitigating row hammer effects.
6. The apparatus of claim 4 , comprising the vendor specific address translation scheme includes the logic to implement a remap operation specified by a vendor of the DIMM.
In the apparatus containing DRAM within a DIMM (as previously described), when the vendor-specific address translation scheme is active, the apparatus implements a remapping operation as defined by the DIMM vendor. This leverages vendor-provided algorithms or tables to remap logical addresses to physical addresses in a way optimized for that specific hardware.
7. The apparatus of claim 4 , comprising the bit inversion address translation scheme includes the logic to invert row address bits for the DRAM included in the DIMM based on the DRAM configured as part of a first rank for the DIMM arranged for row address bit inversion.
In the apparatus containing DRAM within a DIMM (as previously described), when the bit inversion address translation scheme is active, the apparatus inverts the row address bits for the DRAM. This inversion is conditional based on the DRAM being configured as part of a specific rank on the DIMM (configured for row address bit inversion), further randomizing memory access patterns.
8. The apparatus of claim 4 , comprising the address translation scheme includes the mirroring or vendor specific address translation schemes and also includes the bit inversion address translation scheme.
This invention relates to address translation schemes in computing systems, particularly for managing memory addresses in environments where direct address mapping is impractical or inefficient. The problem addressed involves optimizing address translation to improve performance, compatibility, or resource utilization in systems with specific hardware or vendor-specific requirements. The apparatus includes an address translation mechanism that supports multiple translation schemes, including mirroring, vendor-specific schemes, and bit inversion. Mirroring involves duplicating address ranges to allow access from multiple address spaces, while vendor-specific schemes adapt to proprietary hardware requirements. The bit inversion scheme reverses address bits to enable efficient memory access patterns or to work around hardware limitations. The address translation mechanism dynamically selects or combines these schemes based on system configuration or operational needs. For example, bit inversion may be used to optimize memory access in certain architectures, while mirroring ensures compatibility with legacy systems. The apparatus may be integrated into memory controllers, processors, or other components handling address translation. This approach enhances flexibility in address management, allowing systems to adapt to different hardware environments while maintaining performance and compatibility. The invention is particularly useful in embedded systems, specialized computing environments, or systems interfacing with diverse hardware components.
9. The apparatus of claim 8 , comprising the logic to: invert the first logical address for the aggressor row based on the bit inversion address translation scheme and determine a second physical address for the aggressor row based on the mirroring or vendor specific address translation schemes to the inverted first logical address; determine second one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address and determine one or more respective second logical addresses for the one or more victim rows based on the mirroring or vendor specific address translation schemes; invert the one or more respective second logical addresses; and select the inverted one or more respective second logical addresses for the TRR.
The apparatus using combined mirroring/vendor-specific and bit inversion address translation, first inverts the logical address of the aggressor row. Then, it determines a physical address based on the mirrored or vendor-specific scheme. Next, it finds physical addresses for victim rows adjacent to the aggressor row. It determines the logical addresses of the victim rows using the mirrored or vendor-specific scheme. These logical addresses are then inverted. Finally, these inverted victim row logical addresses are selected for TRR.
10. The apparatus of claim 4 , comprising the address translation scheme includes the bit inversion address translation scheme.
The apparatus containing DRAM within a DIMM (as previously described) uses an address translation scheme solely based on bit inversion.
11. The apparatus of claim 10 , comprising the logic to: invert the first logical address for the aggressor row based on the bit inversion address translation scheme to determine a second physical address for the aggressor row; determine second one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address; invert the one or more respective second logical addresses; and select the inverted one or more respective second logical address for the TRR.
The apparatus using bit inversion address translation inverts the logical address of the aggressor row to determine its physical address. Based on this physical address, it identifies adjacent physical addresses for victim rows. It then inverts the logical addresses of those victim rows and selects those inverted addresses for TRR.
12. The apparatus of claim 1 , the one or more memory devices comprising one or more dynamic random access memory (DRAM) devices, the volatile memory included in the one or more DRAM devices comprises double data rate (DDR) DRAM to include DDR3DRAM or DDR4 DRAM.
The apparatus described uses DRAM devices which are of the DDR (Double Data Rate) type, specifically DDR3 or DDR4 DRAM.
13. The apparatus of claim 1 , the logic is part of the one or more memory devices.
The apparatus's logic for determining and selecting victim rows for TRR, is integrated directly within the memory devices themselves.
14. The apparatus of claim 1 , the logic is part of a memory controller.
The apparatus's logic for determining and selecting victim rows for TRR is integrated into a dedicated memory controller.
15. The apparatus of claim 1 , the logic is part of a device that includes a memory controller and the one or more memory devices.
The apparatus's logic for determining and selecting victim rows for TRR is implemented within a device that combines both a memory controller and the memory devices themselves.
16. The apparatus of claim 1 , the one or more memory devices comprising one or more dynamic random access memory (DRAM) devices, the DRAM devices included in a dual in-line memory module (DIMM), wherein the logic is part of the DIMM.
The apparatus's logic for determining and selecting victim rows for TRR is integrated directly into the DIMM (Dual In-line Memory Module). The DIMM contains the DRAM devices.
17. A method comprising: receiving, at circuitry for controlling one or more memory devices, a first logical address for an aggressor row for a volatile memory included in the one or more memory devices, the aggressor row associated with an activation that triggers a target row refresh (TRR) to one or more victim rows to protect against a row hammer error; determining a first physical address for the aggressor row based on an address translation scheme associated with the volatile memory; determining one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address; determining one or more respective logical addresses for the one or more victim rows based on implementing the address translation scheme on the one or more respective physical addresses; and selecting the one or more respective logical addresses for the TRR.
A method for mitigating row hammer errors involves receiving a logical address of an aggressor row triggering a target row refresh (TRR). A physical address for the aggressor row is determined based on a defined address translation scheme. Physical addresses of adjacent victim rows are identified based on the aggressor's physical address. These victim row physical addresses are translated back to logical addresses using the same translation scheme. The victim row logical addresses are then selected for TRR. This is done by circuitry controlling the memory devices.
18. The method of claim 17 , wherein the activation to trigger the TRR is responsive to transaction rate based on a value of P, where P is set to reduce a likelihood of the row hammer error due to a total number of activations to the aggressor row before a scheduled row refresh to the one or more victim rows.
The method from the previous description activates the TRR based on a transaction rate. The TRR is triggered when the number of accesses to the aggressor row reaches a threshold (defined by the value 'P') before the next scheduled refresh. The 'P' value is set to reduce the likelihood of row hammer errors due to the total number of accesses to the aggressor row.
19. The method of claim 18 , the address translation scheme comprising at least one of a direct logical-to-physical, a mirroring, a vendor specific, or a bit inversion address translation scheme.
The method from the previous description utilizes an address translation scheme that can be direct logical-to-physical mapping, mirroring, vendor-specific remapping, or bit inversion.
20. The method of claim 19 , the one or more memory devices comprising one or more dynamic random access memory (DRAM) devices, the DRAM devices included in a dual in-line memory module (DIMM).
The method from the previous description involves using DRAM (Dynamic Random Access Memory) devices organized within a DIMM (Dual In-line Memory Module).
21. The method of 20 , comprising the mirroring address translation scheme includes swapping address bits pairwise on one side of the DIMM.
The method containing DRAM within a DIMM (as previously described), when using mirroring address translation, swaps address bits in pairs on one side of the DIMM to remap memory addresses.
22. The method of claim 20 , comprising the vendor specific address translation scheme includes a remapping operation specified by a vendor of the DIMM.
The method containing DRAM within a DIMM (as previously described), when using the vendor-specific address translation, performs a remapping operation as specified by the DIMM's vendor.
23. The method of claim 20 , comprising the bit inversion address translation scheme includes inverting row address bits for the DRAM included in the DIMM based on the DRAM configured as part of a first rank for the DIMM arranged for row address bit inversion.
The method containing DRAM within a DIMM (as previously described), when using bit inversion address translation, inverts row address bits for the DRAM. The inversion is conditional on the DRAM being configured as part of a specific rank on the DIMM arranged for row address bit inversion.
24. The method of claim 20 , comprising the address translation scheme including the mirroring or vendor specific address translation schemes and also including the bit inversion address translation scheme.
The method containing DRAM within a DIMM (as previously described) uses an address translation scheme that combines either mirroring or vendor-specific remapping with bit inversion.
25. The method of claim 24 , comprising: inverting the first logical address for the aggressor row based on the bit inversion address translation scheme; determining a second physical address for the aggressor row based on the mirroring or vendor specific address translation schemes to the inverted first logical address; determining second one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address; determining one or more respective second logical addresses for the one or more victim rows based on the mirroring or vendor specific address translation schemes; inverting the one or more respective second logical addresses; and selecting the inverted one or more respective second logical addresses for the TRR.
The method using combined mirroring/vendor-specific and bit inversion address translation, first inverts the logical address of the aggressor row. Then, it determines a physical address based on the mirroring or vendor-specific scheme applied to the inverted address. Next, it identifies physical addresses of victim rows adjacent to the aggressor row. It then translates those physical addresses back to logical addresses using the mirroring or vendor-specific scheme. These logical addresses are then inverted. Finally, these inverted victim row logical addresses are selected for TRR.
26. The method of claim 25 , comprising selecting including causing one or more respective logical addresses to be stored in a first-in, first-out (FIFO) memory, the FIFO memory used to schedule a TRR command to cause the TRR to be sent to the one or more victim rows.
The method of selecting logical addresses for TRR, described previously, includes storing the selected logical addresses in a FIFO (First-In, First-Out) memory. This FIFO memory is used to schedule a TRR command, ensuring that the refresh command is sent to the identified victim rows in the order they were selected.
27. At least one non-transitory machine readable medium comprising a plurality of instructions that in response to being executed by a system for accessing one or more memory devices causes the system to: receive a first logical address for an aggressor row for volatile memory included in the one or more memory devices, the aggressor row associated with an activation that triggers a pseudo target row refresh (TRR) to one or more victim rows to protect against a row hammer error; determine a first physical address for the aggressor row based on an address translation scheme associated with the volatile memory; determine one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address; determine one or more respective logical addresses for the one or more victim rows based on implementing the address translation scheme on the one or more respective physical addresses; and select the one or more respective logical addresses for the TRR.
A non-transitory machine-readable medium stores instructions that, when executed, cause a system to protect against row hammer errors by triggering target row refreshes (TRR). The instructions cause the system to receive a logical address for an aggressor row, determine its physical address based on an address translation scheme, identify physical addresses of adjacent victim rows, translate these victim row physical addresses back to logical addresses, and select these logical addresses for TRR.
28. The at least one non-transitory machine readable medium of claim 27 , wherein the activation to trigger the TRR is responsive to transaction rate based on a value of P, where P is set to reduce a likelihood of the row hammer error due to a total number of activations to the aggressor row before a scheduled row refresh to the one or more victim rows.
The machine-readable medium from the previous description contains instructions to trigger the TRR based on a transaction rate. The TRR is initiated when the number of accesses to the aggressor row reaches a threshold 'P' before the next scheduled refresh, where 'P' is set to minimize row hammer errors.
29. The at least one non-transitory machine readable medium of claim 28 , the address translation scheme comprising at least one of a direct logical-to-physical, a mirroring, a vendor specific, or a bit inversion address translation scheme.
The machine-readable medium from the previous description, includes instructions that implement an address translation scheme that is either direct logical-to-physical, mirroring, vendor-specific remapping, or bit inversion.
30. The at least one non-transitory machine readable medium of claim 29 , one or more memory devices comprising one or more dynamic random access memory (DRAM) devices, the DRAM devices included in a dual in-line memory module (DIMM).
The machine-readable medium from the previous description includes instructions for memory devices comprising DRAM (Dynamic Random Access Memory) within a DIMM (Dual In-line Memory Module).
31. The at least one non-transitory machine readable medium of claim 30 , comprising the address translation scheme including the mirroring or vendor specific address translation schemes and also including the bit inversion address translation scheme, the instructions to also cause the system to: invert the first logical address for the aggressor row based on the bit inversion address translation scheme; determine a second physical address for the aggressor row based on the mirroring or vendor specific address translation schemes to the inverted first logical address; determine second one or more respective adjacent physical addresses for the one or more victim rows based on the first physical address; determine one or more respective second logical addresses for the one or more victim rows based on the mirroring or vendor specific address translation schemes; invert the one or more respective second logical addresses; and select the inverted one or more respective second logical addresses for the TRR.
The machine-readable medium uses combined mirroring/vendor-specific and bit inversion address translation, and stores instructions that cause the system to invert the logical address of the aggressor row using bit inversion, determine a physical address using the mirroring/vendor-specific scheme, identify physical addresses of victim rows, translate them to logical addresses using mirroring/vendor-specific scheme, invert those logical addresses, and select the inverted logical addresses for TRR.
Unknown
November 21, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.