G06F12/0607

MULTI-LEVEL PARTITIONED SNOOP FILTER
20230100746 · 2023-03-30 · ·

A system and method that partitions a snoop filter into sub-partitions that reflect an affinity between a given cluster of cache-coherent agents. The process of partitioning reduces messaging traffic between a cache coherent agents connected to a cache-coherent interconnect. A level of snoop filter partitioning using a range of addresses is disclosed. A unique way to define how many snoop filters are needed and which snoop filter is tracking which cache line, is disclosed. A hierarchy of snoop filters can be used with two levels: a cluster level and an interleaving level.

DYNAMIC REPARTITION OF MEMORY PHYSICAL ADDRESS MAPPING

Systems and methods for dynamic repartitioning of physical memory address mapping involve relocating data stored at one or more physical memory locations of one or more memory devices to another memory device or mass storage device, repartitioning one or more corresponding physical memory maps to include new mappings between physical memory addresses and physical memory locations of the one or more memory devices, then loading the relocated data back onto the one or more memory devices at physical memory locations determined by the new physical address mapping. Such dynamic repartitioning of the physical memory address mapping does not require a processing system to be rebooted and has various applications in connection with interleaving reconfiguration and error correcting code (ECC) reconfiguration of the processing system.

MEMORY SYSTEM AND OPERATING METHOD THEREOF
20230033610 · 2023-02-02 ·

Systems and methods that relate to memory devices are disclosed. In some implementations, a memory system includes a first data storage device and a second data storage device. Each of the first and second data storage devices includes a plurality of memory blocks, each memory block including a plurality of memory cells each operable to store one or more data bits, and page buffers that cache data to be written to the memory blocks or read from the plurality of memory blocks on a page basis, and a controller including a cache memory configured to temporarily store first data, and configured to move the first data from a portion of the cache memory to one or more of the page buffers of the first data storage device and allocate the portion of the cache memory as a temporary buffer for storing data.

Apparatus and method for improving input/output throughput of a memory system
11487678 · 2022-11-01 · ·

A memory system includes a plurality of memory dies and a controller coupled with the plurality of memory dies via a plurality of channels. The controller is configured to perform a correlation operation on at least some read requests among a plurality of read requests inputted from an external device so that the plurality of memory dies outputs plural pieces of data corresponding to the plurality of read requests via the plurality of channels in an interleaving way. The controller is configured to determine when to perform the correlation operation based on the number of the plurality of read requests.

Data storage system capable of performing interleaving scatter transmissions or interleaving gather transmissions
11487659 · 2022-11-01 · ·

A data storage system includes a first memory, a second memory, and a memory controller. The memory controller transmits a first data segment from the first memory to the second memory according to an initial address, adds a first interval value to the initial address to generate a succeeding address, and updates a stream number. When the stream number has not reached a target stream number, the memory controller transmits second data segment from the first memory to the second memory according to the succeeding address, and updates the stream number. When the stream number has reached the target stream number, the memory controller sets the stream number to an initial value, adds an offset value to the initial address to update the succeeding address, and transmits a third data segment from the first memory to the second memory according to the updated succeeding address.

SCALABLE ADDRESS DECODING SCHEME FOR CXL TYPE-2 DEVICES WITH PROGRAMMABLE INTERLEAVE GRANULARITY
20230086222 · 2023-03-23 · ·

Methods and apparatus relating to a scalable address decoding scheme for Compute Express Link™ or CXL™ Type-2 devices with programmable interleave granularity are described. In an embodiment, configurator logic circuitry determines an interleave granularity and an address range size for a plurality of devices coupled to a socket of a processor. A single System Address Decoder (SAD) rule for two or more of the plurality of the devices coupled to the socket of the processor is stored in memory. A memory access transaction directed at a first device from the plurality of devices is routed to the first device in accordance with the SAD rule. Other embodiments are also disclosed and claimed.

RECONFIGURABLE MEMORY MAPPED PERIPHERAL REGISTERS
20230091498 · 2023-03-23 ·

A computing device, including a processor; a memory, wherein the memory is accessible for memory operations via a range of logical memory addresses; a peripheral interface including a first control register; and a peripheral address remapping module configured to determine that the peripheral interface is unused for interfacing with a peripheral; determine a first memory address for accessing the first control register; determine a first logical memory address, the first logical memory address outside of the range of logical memory addresses for accessing the memory; and map the first logical memory address to the first memory address, wherein the first control register is accessible for memory operations using the first logical memory address.

TECHNIQUES ASSOCIATED WITH MAPPING SYSTEM MEMORY PHYSICAL ADDRESSES TO PROXIMITY DOMAINS
20230091974 · 2023-03-23 ·

Examples include techniques associated with mapping system memory physical addresses to proximity domains. Examples include mapping system memory physical addresses for a memory coupled with a multi-die system to proximity domains that include cores of a multi-core processor and the associated level 3 (L3) cache for use by each core included in a respective proximity domain. The mapping is to facilitate cache line ownership of a cache line in an L3 cache by an input/output device or agent located on a separate die from the multi-core processor.

MEMORY ARRAY FOR STORING ODD AND EVEN DATA BITS OF DATA WORDS IN ALTERNATE SUB-BANKS TO REDUCE MULTI-BIT ERROR RATE AND RELATED METHODS
20220342576 · 2022-10-27 ·

A memory array for storing odd and even data bits of data words in alternate sub-banks to reduce multi-bit error rate is disclosed. The memory array alternates odd data bits of a first plurality of data words in consecutive columns a first sub-bank of first and second memory banks and even data bits of the first plurality of data words in consecutive columns of a second sub-bank of the first and second memory banks. For example, the lowest bits of each of N data words are stored in a first N consecutive columns of a first sub-bank. The second bits of the N data words are stored in the next N consecutive columns of a second sub-bank. The N data bits in each of the bit positions of the N data words are interleaved in corresponding column mux sets. Alternating odd and even bits between sub-banks reduces multi-bit soft errors.

COMBINED ON-PACKAGE AND OFF-PACKAGE MEMORY SYSTEM

A combined on-package and off-package memory system uses a custom base-layer within which are fabricated one or more dedicated interfaces to off-package memories. An on-package processor and on-package memories are also directly coupled to the custom base-layer. The custom base-layer includes memory management logic between the processor and memories (both off and on package) to steer requests. The memories are exposed as a combined memory space having greater bandwidth and capacity compared with either the off-package memories or the on-package memories alone. The memory management logic services requests while maintaining quality of service (QoS) to satisfy bandwidth requirements for each allocation. An allocation may include any combination of the on and/or off package memories. The memory management logic also manages data migration between the on and off package memories.