IP Library Granted Patent US 12,493,435
Granted Patent B1
US 12,493,435 · App. 18/734,666 · Granted Dec 9, 2025

Supporting mixed read in non-volatile memory controller

Inventors: Christoffer Holm Kjølbæk (Soeborg, DK); Rasmus Madsen (Skovlunde, DK); Lunkai Zhang (Portland, OR); Raj Ramanujan (Federal Way, WA); Martin Lueker-Boden (Fremont, CA)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,493,435
App. No.
18/734,666
Granted
Dec 9, 2025
Kind
B1
Abstract

When a memory system supports different read modes with different read latencies, such as reference read and self-referenced read, read data conflicts can occur for data returned from the memory cells in response to the issued read commands. To support such mixed read modes, embodiments for the memory controller can include separate queues for fast read commands and slow read commands and coordinate the issuing of the two command types. A mixed read coordinator can track issued slow read commands and determine whether a fast read command can be issued. The issued commands are ordered such that they are correctly associated with the read data returned from the memory cells.

Claims (44)

1 . An apparatus, comprising:

one or more memory arrays each comprising a plurality of non-volatile memory cells; and

a control circuit configured to:

read selected memory cells of the memory arrays using a first read mode and using a second read mode having a higher read latency than the first read mode;

maintain read commands using the first and second read modes respectively in first and second read command queues;

issue, to the memory array, the first read mode commands from the first read command queue and the second read mode commands from the second read command queue, determining where there is a timing conflict between a current first read mode command and a previously issued second read mode command and not issuing the first read commands during a timing conflict with one of the second read commands; and

associate read data returned from the memory array in response to the issued commands with the corresponding issued commands, including:

entering issued first read and second mode commands respectively in first and second issued command queues; and

in response to issuing a second read mode command, transferring the issued second read mode command from the second issued command queue to the first issued command queue and associating the read data returned from the memory array with commands from the first issued command queue.

2 . The apparatus of claim 1 , wherein each of the non-volatile memory cells comprises a resistive random access memory element and a two terminal selector element in series with the memory element.

3 . The apparatus of claim 2 , wherein the first read mode is a current-force referenced read and the second read mode is a current-force self-referenced read.

4 . The apparatus of claim 3 , wherein the resistive random access memory element comprises a magnetoresistive random access memory (MRAM) element.

5 . The apparatus of claim 3 , wherein the resistive random access memory element comprises a phase change memory element.

6 . The apparatus of claim 2 , wherein the two terminal selector element comprises an Ovonic Threshold (OTS).

7 . The apparatus of claim 1 , wherein the first issued command queue is a first first-in, first-out (FIFO) and the second issued command queue is a second FIFO.

8 . The apparatus of claim 1 , wherein, to determine whether there is the timing conflict between the current first read mode command and the previously issued second read mode command, the control circuit is further configured to:

maintain a conflict register having a plurality of register bits;

at each clock cycle of the control circuit, enter a register bit value indicating whether a second read mode has been issued during the clock cycle;

propagate the entered register bits through the conflict register one bit location at each clock cycle; and

determine whether there is the timing conflict between the current first read mode command and the previously issued second read mode command based on whether a subset of the register bits indicate that a second read mode command has been previously issued.

9 . The apparatus of claim 8 , wherein a number of register bits in the subset depends on the number of clocks cycles used by a read data returned in response to the corresponding issued read command.

10 . The apparatus of claim 8 , wherein a number of register bits in the subset depends on a relative amount of read latency between the first read mode commands and the second read mode commands.

11 . A method, comprising:

reading selected memory cells of one or more memory arrays using a first read mode and using a second read mode having a higher read latency than the first read mode;

maintaining read commands using the first and second read modes respectively in first read and second read command queues;

issuing, to the memory array, the first read mode commands from the first read command queue and the second read mode commands from the second read command queue, including:

determining where there is a timing conflict between a current first read mode command and a previously issued second read mode command; and

not issuing the first read commands during a timing conflict with one of the second read commands; and

associating read data returned from the memory array in response to the issued commands with the corresponding issued commands, including:

entering issued first read and second mode commands respectively in first and second issued command queues; and

in response to issuing a second read mode command, transferring the issued second read mode command from the second issued command queue to the first issued command queue and associating the read data returned from the memory array with commands from the first issued command queue.

12 . The method of claim 11 , wherein each of the non-volatile memory cells comprises a resistive random access memory element and a two terminal selector element in series with the memory element.

13 . The method of claim 12 , wherein the first read mode is a current-force referenced read and the second read mode is a current-force self-referenced read.

14 . The method of claim 13 , wherein the resistive random access memory element comprises a magnetoresistive random access memory (MRAM) element.

15 . The method of claim 13 , wherein the resistive random access memory element comprises a phase change memory element.

16 . The method of claim 12 , wherein the two terminal selector element comprises an Ovonic Threshold (OTS).

17 . The method of claim 11 , wherein the first issued command queue is a first first-in, first-out (FIFO) and the second issued command queue is a second FIFO.

18 . The method of claim 11 , wherein determining whether there is the timing conflict between the current first read mode command and the previously issued second read mode command includes:

maintaining a conflict register having a plurality of register bits;

at each clock cycle of the control circuit, enterring a register bit value indicating whether a second read mode has been issued during the clock cycle;

propagating the entered register bits through the conflict register one bit location at each clock cycle; and

determining whether there is the timing conflict between the current first read mode command and the previously issued second read mode command based on whether a subset of the register bits indicate that a second read mode command has been previously issued.

19 . The method of claim 18 , wherein a number of register bits in the subset depends on the number of clocks cycles used by a read data returned in response to the corresponding issued read command.

20 . The method of claim 18 , wherein a number of register bits in the subset depends on a relative amount of read latency between the first read mode commands and the second read mode commands.

Assignments (4)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2024
From: KJØLBÆK, CHRISTOFFER HOLM; MADSEN, RASMUS; ZHANG, LUNKAI; RAMANUJAN, RAJ; LUEKER-BODEN, MARTIN
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 067632/0874 →
References Cited (40)
US 6269018B1 · Monsma et al. · 2001 [cited by applicant]
US 6885577B2 · Tang et al. · 2005 [cited by applicant]
US 7272034B1 · Chen et al. · 2007 [cited by applicant]
US 7286395B2 · Chen et al. · 2007 [cited by applicant]
US 8750033B2 · Worledge · 2014 [cited by applicant]
US 8793554B2 · Billing et al. · 2014 [cited by applicant]
US 8938656B2 · Liu · 2015 [cited by applicant]
US 9025364B2 · Kinney et al. · 2015 [cited by applicant]
US 9299411B2 · Alam et al. · 2016 [cited by applicant]
US 9666259B1 · Jung et al. · 2017 [cited by applicant]
US 9697880B2 · Andre et al. · 2017 [cited by applicant]
US 10157965B2 · Sciarrillo · 2018 [cited by applicant]
US 10250281B2 · Achtenberg et al. · 2019 [cited by applicant]
US 10256402B1 · Rajamohanan et al. · 2019 [cited by applicant]
US 10373682B2 · Parkinson et al. · 2019 [cited by applicant]
US 10530393B2 · Ryabinin et al. · 2020 [cited by applicant]
US 10545692B2 · Franklin et al. · 2020 [cited by applicant]
US 10585735B2 · Kinney et al. · 2020 [cited by applicant]
US 10734073B1 · Bandyopadhyay et al. · 2020 [cited by applicant]
US 10847246B2 · Shin et al. · 2020 [cited by applicant]
US 10885991B2 · Parkinson et al. · 2021 [cited by applicant]
US 11398262B1 · Tran et al. · 2022 [cited by applicant]
US 11488662B2 · Franklin et al. · 2022 [cited by applicant]
US 11972822B2 · Tran et al. · 2024 [cited by applicant]
US 11978491B2 · Tran et al. · 2024 [cited by applicant]
US 20140269029A1 · Kinney et al. · 2014 [cited by applicant]
US 20140372792A1 · Slaughter et al. · 2014 [cited by applicant]
US 20160103735A1 · Lee et al. · 2016 [cited by applicant]
US 20180277187A1 · Ikegami et al. · 2018 [cited by applicant]
US 20190196995A1 · Shen · 2019 [cited by examiner]
US 20200006432A1 · Grobis et al. · 2020 [cited by applicant]
US 20200203361A1 · Kang et al. · 2020 [cited by applicant]
US 20210098064A1 · Lee et al. · 2021 [cited by applicant]
US 20210173786A1 · Muthiah · 2021 [cited by examiner]
US 20220283736A1 · Ben-Rubi · 2022 [cited by examiner]
EP 1841074A2 · 2007 [cited by applicant]
KR 20060108357A · 2006 [cited by applicant]
Saitoh, Shuhei, et al., “Oxide-based selector with trap-filling-controlled threshold switching,” Applied Physics Letters, Dec. 26, 2019, 6 pages. [cited by applicant]
Hu, G., et al., “Spin-transfer torque MRAM with reliable 2 ns writing for last level cache applications,” IEDM19-40, downloaded on Jul. 26, 2021, 4 pages. [cited by applicant]
Subbiah, Arul K., “A Flexible BCH decoder for Flash Memory Systems using Cascaded BCH codes,” Santa Clara University, Scholar Commons, Engineering Ph.D. Theses, Jun. 4, 2019, 118 pages. [cited by applicant]