CN103354939B - 用于使dram和mram访问交错的存储器控制器和方法 - Google Patents

用于使dram和mram访问交错的存储器控制器和方法 Download PDF

Info

Publication number
CN103354939B
CN103354939B CN201180066332.4A CN201180066332A CN103354939B CN 103354939 B CN103354939 B CN 103354939B CN 201180066332 A CN201180066332 A CN 201180066332A CN 103354939 B CN103354939 B CN 103354939B
Authority
CN
China
Prior art keywords
memory
nonvolatile memory
volatile memory
precharge
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180066332.4A
Other languages
English (en)
Other versions
CN103354939A (zh
Inventor
S·M·阿拉姆
T·安德烈
D·古戈尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Everspin Technologies Inc
Original Assignee
Everspin Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Everspin Technologies Inc filed Critical Everspin Technologies Inc
Priority to CN201610027385.XA priority Critical patent/CN105702277B/zh
Publication of CN103354939A publication Critical patent/CN103354939A/zh
Application granted granted Critical
Publication of CN103354939B publication Critical patent/CN103354939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0036Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a magnetic RAM [MRAM] element or ferromagnetic cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2272Latency related aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

描述了用于使不同等待时间和页面尺寸的易失性和非易失性存储器交错的存储器控制和方法,其中,单个DDR3存储器控制器与许多存储器模块通信,其至少包括与例如动态随机存取存储器(DRAM)的易失性存储器集成在不同序列或通道中的例如自旋扭矩磁随机存取存储器的非易失性存储器。

Description

用于使DRAM和MRAM访问交错的存储器控制器和方法
技术领域
在本文中描述的示例性实施例一般地涉及存储器控制器,并且更具体地涉及存储器系统和方法,其包括用于使具有不同等待时间和页面尺寸的同步动态随机存取存储器(SDRAM)和自旋扭矩磁性随机存取存储器(ST-MRAM)交错的存储器控制器。
背景技术
计算机的速度很大部分由处理器的速度和在处理器与存储器之间快速地移动数据的能力确定。从存储器进行的数据传输已随着处理器与存储器之间的多通道或多路径的使用而增加。
等待时间指的是在存储器与处理器之间传送数据时的延迟,并且通常按时钟循环来测量。该处理器通常比存储器更快,因此其必须当存储器的适当段在数据能够被传送回到处理器之前被定位并被读取时延迟(等待)。存储在存储器中的数据以组定义。一个序列是在第一方向上(列)的多个组,并且一个通道是在第二方向上(行)的多个组。用于访问存储器的过程包括行和列识别所需的多个时钟循环及读或写指令。SDRAM与具有同步接口的系统总线同步,并且因此在对控制输入进行响应之前等待时钟信号且因此与计算机的系统总线同步。
存储器控制器管理到和来自存储器的数据的流动。其可以是单独芯片或被集成到另一芯片例如处理器中。用于数据传输的带宽可以包括一行的数千个位。双倍数据速率(DDR)存储器控制器驱动存储器,其中,在存储器时钟的上升和下降访问上传输数据。此DDR存储器控制器允许在不增加时钟速率或不增加总线宽度的情况下向存储器双倍传输数据。DDR2使最小读或写单元加倍至四个连续字。DDR3将最小读或写单元再次加倍至八个连续字。这在不必改变内部操作的时钟速率、仅仅是宽度的情况下提供了带宽和外部总线速率的另一加倍。此增加的读或写单元的不利方面是等待时间的增加。
虽然访问SDRAM的存储器控制器和方法是已知的,且访问例如ST-MRAM的其他类型的存储器的存储器控制器和方法是已知的,但并不知晓描述单个存储器控制器对SDRAM和ST-MRAM二者访问和交错。ST-MRAM利用替换方法以便对磁性隧道结(MTJ)元件进行编程,其具有进一步简化MRAM存储单元并降低写功率的潜力。不同于其中借助于外场来执行编程的常规MRAM,ST-MRAM编程是通过驱动电流直接地通过MTJ以改变自由层的极化方向来实现的。
DDR3ST-MRAM具有比DDR3DRAM更长的激活和预充电操作等待时间。在激活操作期间,从存储器阵列读取一页数据并存储在本地数据仓库锁存器中以用于到本地数据仓库锁存器的后续读和写操作。激活操作可以由激活命令或执行相同操作的任何其他命令发起。在预充电操作期间,来自本地数据仓库锁存器的数据被写回到存储器阵列,并且作为结果,该页在没有新的激活操作的情况下被认为是关闭或不可访问的。预充电操作可以由预充电或自动-预充电命令或执行相同操作的任何其他命令发起。除激活和预充电操作等待时间之外,ST-MRAM的页面尺寸(例如512位)小于DRAM的页面尺寸(达到16k位)。因此,ST-MRAM中的打开页面在ST-MRAM芯片中的本地数据仓库锁存器中具有较少数量的位。由于页面尺寸差异,在对ST-MRAM的激活操作之后读或写整个页面的读和写操作(响应于读或写命令的操作,从或向本地数据仓库锁存器读或写较小组的数据位,例如128位)的数目小于DRAM的操作的数目。当系统使用DDR3ST-MRAM和DRAM(由于存储器的高密度或来自ST-MRAM存储器部分要求的非易失性)二者时,将需要两个或更多存储器控制器以管理ST-MRAM和DRAM中的不同等待时间和页面尺寸。除现有DDR3DRAM通道之外,DDR3ST-MRAM还将需要与其自己的存储器控制器相关联的专用通道(更多地址、数据、控制引脚和路由)。
相应地,期望的是提供用于在序列或通道级上使由SDRAM和ST-MRAM组成的存储器交错并减少其等待时间的存储器控制器和方法。此外,根据结合附图及前述技术领域和背景技术进行的后续详细描述和所附权利要求,示例性实施例的其他期望特征和特性将变得显而易见。
发明内容
提出了用于单独编程的激活和预充电等待时间以及用于非易失性存储器的页面尺寸的使易失性和非易失性存储器访问交错的设备和方法。
一种存储器系统包括:存储器,包括包括第一部分和第二部分的多个易失性存储器组;以及至少一个非易失性存储器组,包括与第一部分和第二部分以序列或列中的一个配置的至少第三部分;以及存储器控制器,被耦合到易失性存储器组和非易失性存储器组,并被配置成使激活、读、写和预充电操作对第一、第二和第三部分的应用同步。
使易失性和非易失性存储器访问交错的第一示例性方法包括包括第一部分和第二部分的多个易失性存储器组以及至少一个非易失性存储器组,该非易失性存储器组包括与第一部分和第二部分以序列或列中的一个配置的至少第三部分,该方法包括使激活、读、写和预充电操作对第一、第二和第三部分的应用同步。
使易失性和非易失性存储器访问交错的第二示例性方法包括a)接收激活操作发起命令;b)确定序列地址是否等于非易失性存储器序列地址;c)如果步骤b)为否,则在易失性存储器序列中发起激活操作;d)将易失性存储器等待时间计数器复位为A;e)如果A不等于易失性存储器等待时间,则增量A并重复步骤e);f)如果A等于易失性存储器等待时间,则执行易失性存储器读/写操作;g)发起易失性存储器预充电操作;h)将易失性存储器预充电等待时间计数器复位为B;i)如果B不等于易失性存储器预充电等待时间,则增量B并重复步骤i)直至B等于易失性存储器预充电等待时间;j)如果步骤b)为是,则在非易失性存储器序列中发起激活操作;k)将非易失性存储器激活等待时间计数器复位为C;l)如果C不等于非易失性存储器等待时间,则增量C并重复步骤l);m)如果C等于非易失性存储器等待时间,则执行非易失性存储器读/写操作;n)发起非易失性存储器预充电操作;o)将非易失性存储器预充电等待时间计数器复位为D;以及p)如果D不等于非易失性存储器预充电等待时间,则增量D并重复步骤p)直至D等于非易失性存储器预充电等待时间。
使易失性和非易失性存储器访问交错的第三示例性方法包括使易失性和非易失性存储器访问交错,包括a)在易失性存储器序列和非易失性存储器序列中发起激活操作;b)将易失性存储器激活等待时间计数器复位为A;c)如果A不等于易失性存储器激活等待时间,则增量A并重复步骤c);d)如果A等于易失性存储器,执行易失性存储器读/写操作;e)发起易失性存储器预充电操作;f)将易失性存储器预充电等待时间计数器复位为B;g)如果B不等于易失性存储器预充电等待时间,则增量B并重复步骤g)直至B等于易失性存储器预充电等待时间;h)在步骤a)之后,将非易失性存储器激活等待时间计数器复位为C;i)如果C不等于非易失性存储器等待时间,则增量C并重复步骤i);j)如果C等于非易失性存储器等待时间,则执行非易失性存储器读/写操作;k)发起非易失性存储器预充电操作;l)将非易失性存储器预充电等待时间计数器复位为D;以及m)如果D不等于非易失性存储器预充电等待时间,则增量D并重复m)直至D等于非易失性存储器预充电等待时间。
使易失性和非易失性存储器访问交错的第四示例性方法包括a)在非易失性存储器和易失性存储器中发起激活操作;b)将非易失性存储器激活等待时间计数器设置成C;c)将非易失性存储器已激活标志设置成NO;d)如果C不等于非易失性存储器激活等待时间,则增量C并重复步骤d);e)如果C等于非易失性存储器激活等待时间,则将非易失性存储器已激活标志设置成YES;f)在步骤a)之后,将易失性存储器激活等待时间计数器设置成A;g)如果A不等于易失性存储器激活等待时间,则增量A并重复步骤g);h)如果A等于易失性存储器激活等待时间,则发起读/写操作;i)如果非易失性存储器已激活标志是NO,则将易失性存储器的数据总线部分识别为有效并完成仅用于易失性存储器的读/写操作;j)如果非易失性存储器已激活标志是YES,则将非易失性存储器和易失性存储器的数据总线部分识别为有效并完成易失性和非易失性存储器二者的读/写操作;k)如果存在未决的更多读/写操作,则发起读/写操作并从步骤i)开始重复;l)如果不再有未决的读/写操作,则在非易失性存储器和易失性存储器中发起预充电操作;m)将易失性存储器预充电等待时间计数器复位为B;n)如果B不等于易失性存储器预充电等待时间,则增量B并重复步骤n)直至B等于易失性存储器预充电等待时间;o)在步骤l)之后,将非易失性存储器预充电等待时间计数器复位为D;p)如果D不等于非易失性预充电等待时间,则增量D并重复步骤p)直至D等于非易失性预充电等待时间。
附图说明
下面将结合以下附图来描述本发明,其中,相似的附图标记表示相似的元件,并且
图1是根据第一示例性实施例的处理器与存储器之间的存储器控制器的方框图;
图2是为其配置第一示例性实施例的第一示例性方法的流程图;
图3是为其配置第二示例性实施例的第一示例性方法的流程图;
图4是根据第二示例性实施例的处理器与存储器之间的存储器控制器的方框图;
图5是根据第三示例性实施例的处理器与存储器之间的存储器控制器的方框图;
图6是为其配置第二和第三示例性实施例的第三示例性方法的流程图;以及
图7是根据示例性实施例的存储器控制器的方框图。
具体实施方式
以下详细描述本质上仅仅是说明性的,并且并不意图限制本主题或本申请的实施例和此类实施例的使用。在本文中被描述为示例性的任何实施方式不一定被理解为相比于其他实施方式而言是优选的或有利的。此外,不存在受到在前述技术领域、背景技术、发明内容和以下详细描述中提出的任何明示或默示理论的束缚的意图。
描述了存储器互连系统和方法,其中,主机芯片或可独立应用的芯片中的单个DDR3存储器控制器与许多存储器模块通信,所述许多存储器模块包括与动态随机存取存储器(DRAM)集成在不同的序列或通道中的至少一个自旋扭矩磁随机存取存储器(ST-MRAM)。虽然根据DRAM和ST-MRAM描述了示例性实施例,但该实施例将包括存储器系统,该存储器系统包括具有不同等待时间和页面尺寸的任何不同类型的存储器,例如易失性和非易失性存储器。
根据第一实施例,ST-MRAM与DRAM序列交错,其中,一序列的ST-MRAM芯片与来自另一DRAM芯片序列的那些DRAM芯片共享地址和数据总线。为每个序列提供了单独的芯片选择(CS)线。在用于DRAM和ST-MRAM两个序列的CS为高的情况下,可以同时地在DRAM和ST-MRAM二者中发起用于一个地址的激活操作。DRAM序列中的激活操作将比在ST-MRAM序列中更早地完成。因此,存储器控制器通过一旦DRAM激活操作完成就断言适当的CS信号而仅在DRAM序列中发起读或写操作。ST-MRAM序列中的激活操作在此时间期间可以正在进行中。稍后当ST-MRAM的激活操作完成时,发起对ST-MRAM序列的读或写操作。这使得能够在没有由于较长等待时间ST-MRAM而引起的减慢的情况下实现无缝DRAM访问。DDR3存储器控制器包括用于激活和预充电等待时间及用于ST-MRAM的页面尺寸的可编程寄存器。存储器控制器还包括用于ST-MRAM的序列地址的可编程寄存器。可以在运行时间期间通过软件对这些寄存器进行编程。当DDR3存储器控制器从主机芯片接收到存储器访问命令时,其将存储器地址的序列地址部分与ST-MRAM可编程序列地址寄存器相比较。如果序列地址指示ST-MRAM存储器访问,则控制器从可编程寄存器检索激活、预充电等待时间以及页面尺寸。控制器的硬件实施方式还将包含与DRAM分开的用于ST-MRAM的激活和预充电超时计数器,以指示相应的存储器激活和预充电完成的时间。
根据存储器互连系统的第二和第三实施例,ST-MRAM数据通道与DRAM交错,其中,数据总线的仅一部分被连接到ST-MRAM,而其余部分被连接到DRAM。地址总线被与ST-MRAM和DRAM二者共享。CS控制信号对于第二实施例而言可以是共享的,或者对于第三实施例而言可以是分开的。对于第二和第三两个实施例而言,在CS为高的情况下,可以同时地在DRAM和ST-MRAM二者中发起用于一个地址的激活操作。DRAM中的激活操作将比在ST-MRAM中更早地完成。随后,存储器控制器在共享CS信号的情况下在DRAM和ST-MRAM二者中发起读或写操作。被连接到DRAM的那部分数据总线将提供正确的读数据,而被连接到ST-MRAM的那部分数据总线将不会提供正确的读数据,因为ST-MRAM中的激活操作尚未完成。存储器控制器将忽视来自ST-MRAM的那部分数据,而仅将DRAM的数据总线用于有效数据。来自ST-MRAM的那部分数据稍后在ST-MRAM激活操作完成之后被读取。
DDR3存储器控制器包括用于激活和预充电等待时间及用于ST-MRAM的页面尺寸的可编程寄存器。存储器控制器还包括用于ST-MRAM的数据通道地址的可编程寄存器。可以在运行时间期间通过软件对这些寄存器进行编程。当DDDR3存储器控制器从主机芯片接收到存储器访问命令时,其从用于连接有ST-MRAM的数据通道的上述可编程寄存器检索激活、预充电等待时间和页面尺寸。数据通道的其余部分遵循DRAM等待时间和页面尺寸。控制器的硬件实施方式还将包含与DRAM分开的用于ST-MRAM的激活和PRECHAGE超时计数器,以指示相应的存储器激活和预充电完成的时间。
对于在本文中描述的存储器互连系统的任何实施例而言,DDR3存储器控制器还包含用于将来自主机芯片的存储器命令排队的队列。存储器命令可以由于其独有的序列或通道地址而被分类到DRAM和ST-MRAM存储器访问。用于存储器控制器的操作方法包括以下操作排队和发起算法:(a)ST-MRAM激活操作可以从激活操作的队列中比DRAM激活操作更早地被发起,(b)控制器中的ST-MRAM激活操作忙碌标志(由超时计数器提供)将ST-MRAM读/写操作排队,同时DRAM存储器访问操作可被发起,(c)在在ST-MRAM中发起预充电操作以关闭开放行之前,ST-MRAM中的更多读/写操作被排成队。由于ST-MRAM中的较长激活和预充电操作等待时间,排队算法等待并将更高数目(高于DRAM的)的读/写操作排队以保证在关闭开放行之前不存在用于已开放ST-MRAM行的未决读/写操作;因此,ST-MRAM预充电操作不如DRAM预充电操作那么频繁,(d)在ST-MRAM和DRAM预充电操作的系列中,可以更早地发起ST-MRAM预充电操作以隐藏较长的等待时间;(e)当从ST-MRAM和DRAM请求全页面访问时,由于与DRAM的页面尺寸差异,用于开放页面的ST-MRAM存储器读/写操作被执行不同的次数。
在本文中可以根据功能和/或逻辑块部件并参考可以由各种计算部件或设备执行的操作、处理任务以及功能的符号表示来描述技术和工艺。此类操作、任务以及功能有时被称为计算机执行的、计算机化的、软件实现的或计算机实现的。实际上,一个或多个处理器设备可以通过操作表示系统存储器中的存储器位置处的数据位的电信号来执行所述操作、任务和功能以及信号的其他处理。其中保持数据位的存储器位置是具有对应于该数据位的特定电、磁、光、电阻或有机性质的物理位置。应认识到的是图中所示的各种时钟部件可以用被配置成执行指定功能的任何数目的硬件、软件和/或固件部件来实现。例如,系统或部件的实施例可以采用各种集成电路部件,例如存储器元件、数字信号处理元件、逻辑元件、查找表等,其可以在一个或多个微处理器或其他控制器件的控制下执行多种功能。
为了简短起见,在本文中可能未详细地描述与数据处理有关的常规技术以及某些系统和子系统(及其单独操作部件)的其他功能方面。此外,包含在本文中的各种图中所示的连接线意图表示各种元件之间的示例性功能关系和/或物理耦合。应注意的是在本主题的实施例中可以存在许多替换或附加功能关系或物理连接。
图1是包括使数据传输在处理器104与存储器106之间交错的存储器控制器102的存储器系统100的第一示例性实施例的方框图。存储器控制器102和处理器104可以存在于同一芯片108上,并且其可以存在于单独芯片(未示出)上。存储器106包括第一序列112的易失性存储器114,优选地为DRAM,以及将磁隧道结用于数据存储的第二序列116的非易失性存储器118,优选地为ST-MRAM。易失性存储器114包括多个易失性存储器元件122,每个易失性存储器元件122包括多个易失性存储器组124。非易失性存储器118包括至少一个非易失性存储器元件126,每个非易失性存储器元件126包括多个非易失性存储器组128。
第一和第二CS线路132、133分别地从存储器控制器102向每个易失性存储器元件122提供第一和第二CS信号,并且第一和第二CS线路134、135分别地从存储器控制器102向每个非易失性存储器元件126提供第一和第二CS信号。在另一实施例(未示出)中,第一和第二CS线路132、133可以是从存储器控制器102到每个易失性存储器元件122的同一个CS线路,并且第一和第二CS线路134、135可以是从存储器控制器102到每个非易失性存储器元件126的同一个CS线路。第一地址/数据总线136将存储器控制器102耦合到易失性存储器元件122中的一个和非易失性存储器元件126中的一个。同样地,第二地址/数据总线138将存储器控制器102耦合到易失性存储器元件122中的一个和非易失性存储器元件126中的一个。虽然仅示出了两个地址/数据总线136、138,但应理解的是多个地址/数据总线中的每一个耦合一对易失性和非易失性存储器元件122、126中的每一个。
非易失性存储器118与易失性存储器114序列交错,其中,非易失性存储器芯片的序列与来自易失性存储器芯片的另一序列的那些共享地址和数据总线。为每个序列提供了单独的CS线132、134。在用于两个序列的CS为高的情况下,可以同时地在易失性存储器114和非易失存储器118二者中发起用于一个地址的激活操作。易失性存储器序列112中的激活操作将比在非易失性存储器序列116中的更早地完成。因此,存储器控制器102通过一旦易失性存储器激活操作完成就断言CS信号而仅在易失性存储器序列112中发起读或写操作。非易失性存储器序列116中的激活操作在此时间期间可以正在进行中。稍后当非易失性存储器的激活操作完成时,发起非易失性存储器序列116中的读或写操作。这使得能够没有由于较长等待时间非易失性存储器而引起的减慢的情况下实现无缝易失性存储器访问。
图2、3和6是图示出适合于使用存储器控制器以便使DRAM和MRAM访问交错的方法200、300、600的示例性实施例的流程图。结合方法200、300、600执行的各种任务可以由软件、硬件、固件或其任何组合来执行。出于说明性目的,方法200、300的以下描述可以参考上文结合图1所述的元件,并且方法600的描述可以参考随后结合图4和5所述的元件。实际上,可以由所述系统的不同元件,例如,处理器、显示器元件或数据通信部件来执行方法200、300、600的各部分。应认识到的是方法200、300、600可以包括任何数目的附加或替换任务,图2、3、6中所示的任务不需要按照所示顺序来执行,并且可以将方法200、300、600集成到具有在本文中未详细描述的附加功能的更全面的程序或过程中。此外,可以将图1、4、5中所示的任务中的一个或多个从方法200、300、600的实施例省略,只要预定的总体功能保持完整即可。
参考图2,用于单个激活操作、后面是图1的实施例的读/写和预充电操作的操作的第一示例性方法200的流程图,包括通过发布激活命令发起激活操作202,确定序列地址是否等于ST-MRAM地址204。如果不是,则向DRAM序列发布激活命令206,DRAM序列在DRAM序列中发起激活操作,并且将DRAM激活等待时间计数器A复位208。如果DRAM激活等待时间计数器A不等于DRAM激活等待时间210,则将DRAM激活等待时间计数器A增量212。如果DRAM激活等待时间计数器A等于DRAM激活等待时间210,则发布214DRAM读/写命令以发起DRAM读/写操作,发布216DRAM预充电命令以发起DRAM预充电操作,并且将DRAM预充电等待时间计数器B复位218。如果DRAM预充电等待时间计数器B不等于DRAM预充电等待时间220,则将DRAM预充电等待时间计数器B增量222。如果是,则过程200完成。
返回参考步骤204,如果序列地址等于ST-MRAM地址204,则向ST-MRAM序列发布224激活命令以在ST-MRAM序列中发起激活操作,并且将ST-MRAM激活等待时间计数器C复位226。如果ST-MRAM激活等待时间计数器C不等于ST-MRAM激活等待时间228,则将ST-MRAMACTIVAT等待时间计数器C增量230。如果ST-MRAM激活等待时间计数器C确实等于ST-MRAM激活等待时间228,则发布232ST-MRAM读/写命令以在ST-MRAM中发起读/写操作,发布234ST-MRAM预充电命令以在ST-MRAM中发起预充电操作,并将ST-MRAM预充电等待时间计数器D复位236。如果ST-MRAM预充电等待时间计数器D不等于ST-MRAM预充电等待时间238,则将ST-MRAM预充电等待时间计数器D增量240。如果ST-MRAM预充电等待时间计数器D确实等于ST-MRAM预充电等待时间238,则过程200完成。
参考图3,是用于同时发布激活命令的操作的第二示例性方法300的流程图,同时发布激活命令的操作用于同时发起激活操作、后面是对图1的实施例的交错DRAM和ST-MRAM二者的读/写和预充电操作。方法300包括向DRAM和ST-MRAM序列发布302激活命令以在DRAM和ST-MRAM序列二者中发起激活操作。将DRAM激活等待时间计数器A复位304,并且如果DRAM激活等待时间计数器A不等于DRAM激活等待时间306,则将DRAM激活等待时间计数器A增量308。如果DRAM激活等待时间计数器A确实等于DRAM激活等待时间306,则发布310DRAM读/写命令以发起DRAM读/写操作,发布312DRAM预充电命令以发起DRAM预充电操作,并将DRAM预充电等待时间计数器B复位314。如果DRAM预充电等待时间计数器B不等于DRAM预充电等待时间316,则将DRAM预充电等待时间计数器B增量318。
返回参考步骤302,当发布激活命令时,将ST-MRAM激活等待时间计数器C复位320。如果ST-MRAM激活等待时间计数器C不等于ST-MRAM激活等待时间322,则将ST-MRAM激活等待时间计数器C增量324。如果ST-MRAM激活等待时间计数器C确实等于ST-MRAM激活等待时间322,则发布326ST-MRAM读/写命令以发起ST-MRAM读/写操作,发布328ST-MRAM预充电命令以发起ST-MRAM预充电操作,并将ST-MRAM预充电等待时间计数器D复位330。如果ST-MRAM预充电等待时间计数器D不等于ST-MRAM预充电等待时间332,则将ST-MRAM预充电等待时间计数器D增量334。当ST-MRAM预充电等待时间计数器D等于ST-MRAM预充电等待时间332时,并且当DRAM预充电等待时间计数器B等于DRAM预充电等待时间316时,该过程完成。
图3的这种方法图示出用于同时激活操作的激活命令的同时发布作为示例。激活操作还可以接连地发起。还可以针对同时的预充电操作同时地发布到DRAM和ST-MRAM二者的预充电或自动-预充电命令。
图4是包括使数据传输在处理器404与存储器406之间交错的存储器控制器402的存储器系统400的第二示例性实施例的方框图。存储器控制器402和处理器404可以存在于同一芯片408上,并且其可以存在于单独芯片(未示出)上。存储器406包括多个易失性存储器元件414,优选地DRAM,以及使用磁隧道结以用于数据存储的至少一个非易失性存储器元件418,优选地ST-MRAM。易失性存储器414包括多个易失性存储器元件422,每个易失性存储器元件包括多个易失性存储器组424。非易失性存储器包括至少一个非易失性存储器元件426,每个非易失性存储器元件包括多个非易失性存储器组428。
CS线432从存储器控制器402向每个易失性存储器元件422和每个非易失性存储器元件426提供CS信号。地址总线437将存储器控制器402耦合到每个易失性存储器元件422和每个非易失性存储器元件426。第一数据线439将存储器控制器402耦合到易失性存储器元件424中的一个且第二数据线440将存储器控制器402耦合到非易失性存储器元件426中的一个。虽然仅示出了两个数据线439、440,但应理解的是多个数据线中的每一个分别地耦合易失性和非易失性存储器元件424、426中的每一个。
在操作中,第一数据总线439被连接到易失性存储器414,而第二部分440被连接到非易失性存储器418。地址总线437被非易失性存储器418和易失性存储器414二者共享。CS线432被耦合到易失性存储器414和非易失性存储器418。在CS为高的情况下,可以同时地在易失性存储器414和非易失性存储器418二者中发起用于一个地址的激活操作。易失性存储器414中的激活操作将比在非易失性存储器418中的更早地完成。随后,存储器控制器402在易失性存储器414和非易失性存储器418二者中发起读或写操作。被连接到易失性存储器414的数据总线439将提供正确的读数据,而被连接到非易失性存储器418的数据总线440将不会提供正确的读数据,因为非易失性存储器418中的激活操作尚未完成。存储器控制器402将忽视来自非易失性存储器418的那部分数据且仅使用易失性存储器414的数据总线439用于有效数据。在非易失性存储器激活操作完成之后读取来自非易失性存储器418的数据。
图5是包括使数据传输在处理器504与存储器506之间交错的存储器控制器502的存储器系统500的第三示例性实施例的方框图。存储器控制器502和处理器504可以存在于同一芯片508上,并且其可以存在于单独芯片(未示出)上。存储器506包括多个易失性存储器元件514,优选地为DRAM,以及使用磁隧道结以用于数据存储的至少一个非易失性存储器元件518,优选地为ST-MRAM。易失性存储器514包括多个易失性存储器元件522,每个易失性存储器元件包括多个易失性存储器组524。非易失性存储器包括多个非易失性存储器元件526,每个非易失性存储器元件包括多个非易失性存储器组528。
第一CS线532从存储器控制器502向每个易失性存储器元件522提供第一CS信号,并且第二CS线533从存储器控制器502向每个非易失性存储器元件526提供第二CS信号。地址总线537将存储器控制器502耦合到每个易失性存储器元件522和每个非易失性存储器元件526。第一数据线539将存储器控制器502耦合到易失性存储器元件522中的一个且第二数据线540将存储器控制器502耦合到非易失性存储器元件526中的一个。虽然仅示出了两个数据总线539、540,但应理解的是多个数据总线中的每一个分别地耦合易失性和非易失性存储器元件522、526中的每一个。
在操作中,数据总线539的第一部分与易失性存储器514耦合,并且数据总线540的第二部分耦合到非易失性存储器518。地址总线537被非易失性存储器518和易失性存储器514二者共享。第一CS线532被与易失性存储器514耦合且第二CS线533被耦合到非易失性存储器518。在两个CS线532、533上的CS信号为高的情况下,可以同时地在易失性存储器514和非易失性存储器518二者中发起用于一个地址的激活操作。易失性存储器514中的激活操作将比在非易失性存储器518中的更早地完成。随后,存储器控制器502通过断言CS线路532和533二者来在易失性存储器514和非易失性存储器518二者中或通过断言CS线532而仅在易失性存储器514中发起读或写操作。被连接到易失性存储器514的那部分数据总线将提供正确的读数据,而被连接到非易失性存储器518的那部分数据总线将不会提供正确的读数据,因为非易失性存储器518中的激活操作尚未完成。存储器控制器502将忽视来自非易失性存储器518的那部分数据且仅将易失性存储器514的数据总线用于有效数据。在非易失存储器518激活操作完成之后,读取来自非易失性存储器518的那部分数据。在访问来自非易失性存储器518的那部分数据的同时,存储器控制器502通过断言CS线532和533二者而在易失性存储器514和非易失性存储器518二者中或者通过断言CS线533而仅在非易失性存储器518中发起读或写操作。被连接到非易失性存储器518的那部分数据总线540将提供正确的读数据。
参考图6,是用于同时发起激活命令的操作第二示例性方法600的流程图,后面是对图4和5的实施例的交错DRAM和ST-MRAM二者的读/写和预充电命令,包括向DRAM和ST-MRAM通道发布602激活命令以在DRAM和ST-MRAM二者中发起激活操作。响应于此,在步骤604中,将ST-MRAM激活等待时间计数器C复位并将ST-MRAM_激活D标志设置成NO(否)。如果ST-MRAM激活等待时间计数器C不等于ST-MRAM激活等待时间606,则将ST-MRAM激活等待时间计数器C增量608。如果ST-MRAM激活等待时间计数器C等于ST-MRAM激活等待时间606,则将ST-MRAM_已激活标志设置成YES(是)610。
将DRAM激活等待时间计数器A复位612,并且如果不等于DRAM激活等待时间614,则将DRAM激活等待时间计数器增量616。如果DRAM激活等待时间计数器A等于DRAM激活等待时间614,则发布617读/写命令以发起读/写操作。如果ST-MRAM_已激活标志不是YES618,则响应于最近发布的读/写命令617将DRAM的数据总线部分设置为有效620,并重复步骤617。如果在步骤618中,ST-MRAM_已激活D标志是YES,则响应于最近发布的读/写命令617将DRAM和ST-MRAM二者的数据总线部分设置为有效622。如果存在用于激活命令602的未决的更多读/写命令624,则重复步骤617,但是如果为NO,则发布预充电命令626以同时地在DRAM和ST-MRAM中发起预充电操作并发起步骤628和634。在步骤628中,将DRAM预充电等待时间计数器B复位,并且如果DRAM预充电等待时间计数器B不等于DRAM预充电等待时间,则将DRAM预充电等待时间计数器B增量632。如果DRAM预充电等待时间计数器B等于DRAM预充电等待时间630。在步骤634中,将ST-MRAM预充电等待时间计数器D复位,并且如果不等于ST-MRAM预充电等待时间,则将其增量638。当ST-MRAM预充电等待时间计数器D等于ST-MRAM预充电等待时间636时,并且当DRAM预充电等待时间计数器B等于DRAM预充电等待时间630时,该过程完成。
耦合在处理器104与存储器106之间的存储器系统700的存储器控制器702包括可编程寄存器ST-MRAM定时寄存器704以单独地对用于ST-MRAM的激活和预充电等待时间进行编程。在DRAM定时寄存器706中对DRAM定时等待时间进行编程。存储器控制器702还包括ST-MRAM通道/序列地址寄存器708以对哪个序列或通道地址ST-MRAM被连接进行编程。存储器控制器还包括可编程寄存器ST-MRAM页面尺寸寄存器712以与DRAM分开地对用于ST-MRAM的页面尺寸进行编程。在DRAM页面尺寸寄存器714中对DRAM页面尺寸进行编程。可以通过软件在运行时间期间对上述寄存器进行编程,或者可以在系统启动时间期间从另一非易失性存储器源或熔丝(fuse)加载。
存储器控制器702还可以包括ST-MRAM通道/序列地址映射逻辑716,其在从主机芯片718的任何输入存储器访问中将序列或通道地址解码以识别该访问是否是对于ST-MRAM的。当DDR3存储器控制器702从主机芯片718接收到存储器访问命令时,在图1中所示的序列交错的情况下,其将存储器地址的序列地址部分与非易失性存储器可编程ST-MRAM通道/序列地址寄存器708相比较。如果序列地址指示非易失性存储器访问,则存储器控制器702从可编程ST-MRAM定时寄存器704和ST-MRAM页面尺寸寄存器712检索激活、预充电等待时间和页面尺寸。在图4和5中所示的通道交错的情况下,当DDR3存储器控制器702从主机芯片718接收到存储器访问命令时,其将存储器地址的通道地址部分与非易失性存储器可编程ST-MRAM通道/序列地址寄存器708相比较。如果通道地址指示非易失性存储器访问,则存储器控制器702从可编程ST-MRAM定时寄存器704和ST-MRAM页面尺寸寄存器712检索激活、预充电等待时间和页面尺寸。
存储器控制器702的硬件实施方式还将包含用于非易失性存储器而不是易失性存储器的被耦合到用于ST-MRAM720的激活和预充电超时计数器的ST-MRAM活动(Live)激活和预充电地址寄存器728以指示何时相应的非易失性存储器激活和预充电完成。用于易失性存储器的被耦合到用于DRAM724的激活和预充电超时计数器的单独DRAM活动激活和预充电地址寄存器722指示相应的易失性存储器激活和预充电何时完成。因此,单独地管理用于非易失性和易失性存储器的不同等待时间以增加存储器系统的带宽。
存储器控制器702的硬件实施方式还包含存储器访问排序器726,其将来自主机芯片718的存储器访问命令排队并发布易失性和非易失性存储器命令以发起用于增加的带宽的易失性和非易失性存储器操作。存储器命令和关联操作由于其独有的序列或通道地址可以被分类到DRAM(易失性)和ST-MRAM(非易失性)存储器访问中。存储器访问排序器726实现了用于存储器控制器的操作方法,其包括以下操作排队和发起算法:(a)ST-MRAM激活操作可以从激活操作的队列中比DRAM激活操作更早地被发起,(b)控制器中的ST-MRAM激活操作忙碌标志(由超时计数器提供)将ST-MRAM读/写操作排队,同时DRAM存储器访问操作可被发起,(c)在在ST-MRAM中发起预充电操作以关闭开放行之前,使ST-MRAM中的更多读/写操作排成队。由于ST-MRAM中的较长激活和预充电操作等待时间,排队算法等待并将更高数目(高于DRAM)的读/写操作排队以保证在关闭开放行之前在已开放ST-MRAM行中没有未决读/写操作;因此,ST-MRAM预充电操作不如DRAM预充电操作那么频繁,(d)在ST-MRAM和DRAM预充电操作的序列中,可以更早地发起ST-MRAM预充电操作以隐藏较长的等待时间;(e)当从ST-MRAM和DRAM请求全页面访问时,,用于一个开放页面的ST-MRAM存储器读/写操作由于与DRAM的页面尺寸差异被执行不同的次数。
可以使用有限状态机和逻辑电路来完成用于存储器访问排序器726、ST-MRAM活动激活和预充电地址寄存器728、用于ST-MRAM的激活和预充电超时计数器720、DRAM活动激活和预充电地址寄存器722以及用于DRAM的激活和预充电超时计数器724的硬件实施方式。存储器控制器702可以包含其他块。
处理器104可以用通用目的的处理器、内容可访问存储器、数字信号处理器、专用集成电路、现场可编程门阵列、任何适当的可编程逻辑器件、离散门或晶体管逻辑、离散硬件部件或被设计成执行本文所述功能的任何组合来实施或实现。处理器器件可以实现为微处理器、控制器、微控制器或状态机。此外,处理器器件可以实现为计算设备的组合,例如数字信号处理器和微处理器、多个微处理器、与数字信号处理器核相结合的一个或多个微处理器或任何其他此类配置的组合。
虽然在本文中公开的所述示例性实施例针对各种存储器结构,但本发明不一定局限于示例性实施例,该示例性实施例图示出可适用于多种半导体器件的本发明的发明方面。因此,上文公开的特定实施例仅仅是说明性的,并且不应将其理解为对本发明的限制,因为可以以对于受益于本文中的讲授内容的本领域的技术人员而言显而易见的不同但等价的方式来修改和实施本发明。因此,先前的描述并不意图使本发明局限于所阐述的特定形式,相反,意图覆盖可以包括在由所附权利要求定义的本发明的精神和范围内的此类替换、修改和等价物,因此本领域的技术人员应理解的是其可以在不脱离采取其最宽泛形式的本发明的精神和范围的情况下进行各种变更、置换和更改。
上文已相对于特定实施例描述了益处、其他优点以及问题的解决方案。然而,不应将该益处、优点、问题的解决方案以及可以促使任何益处、优点或解决方案发生或变得更加明显的任何元素理解为任何或所有权利要求的关键、所需或必不可少的特征或元素。在本文中所使用的术语“包括”、“包含”或其任何其他变体意图覆盖非排他性包括,使得包括一列元件的过程、方法、制品或设备不仅包括该元件,而且可以包括未明确列出或此类过程、方法、制品或设备所固有的其他元件。
虽然在前述详细描述中已提出了至少一个示例性实施例,但应认识到的是存在许多的变体。还应认识到的是示例性实施例仅仅是示例,并且并不意图以任何方式限制本发明的范围、可适用性或配置。相反,前述详细描述将为本领域的技术人员提供用于实现本发明的示例性实施例的方便指导方针,应理解的是在不脱离如在所附权利要求中所阐述的本发明的范围的情况下可以对在示例性实施例中描述的元件的功能和布置方面进行各种改变。

Claims (18)

1.一种存储器系统,包括:
地址总线;
耦合到地址总线的易失性存储器;
耦合到地址总线的非易失性存储器;以及
耦合到地址总线的存储器控制器,被配置为:
使激活、读、写和预充电操作对易失性存储器和非易失性存储器的应用同步,包括:
经过地址总线向易失性存储器和非易失性存储器提供用于激活操作的地址;
同时发起对易失性存储器和非易失性存储器二者中的地址的激活操作,其中激活操作从易失性存储器和非易失性存储器中的每一个读对应于地址的一页数据,并将数据存储在本地数据存储锁存器中以用于随后的读和写操作。
2.根据权利要求1的存储器系统,其中,非易失性存储器是ST-MRAM存储器。
3.根据权利要求1的存储器系统,其中,易失性存储器是DRAM存储器。
4.根据权利要求1的存储器系统,其中,非易失性存储器是ST-MRAM存储器以及易失性存储器是DRAM存储器。
5.根据权利要求1的存储器系统,其中,存储器控制器包括可编程寄存器,该可编程寄存器被配置为:
存储与在易失性存储器中不同的非易失性存储器激活和预充电操作等待时间和页面尺寸。
6.根据权利要求1的存储器系统,其中,存储器控制器包括可编程寄存器,该可编程寄存器被配置为:
存储非易失性存储器序列地址。
7.根据权利要求1的存储器系统,其中,存储器控制器包括存储器访问排序器,该存储器访问排序器被配置为:
在来自激活操作队列的易失性激活操作之前发起非易失性激活操作;
当发布易失性存储器访问操作时延迟非易失性读/写操作;
在在非易失性存储器中发起预充电操作之前将比易失性读/写操作更多的非易失性读/写操作排队;
在易失性预充电操作之前发起非易失性预充电操作。
8.根据权利要求7的存储器系统,其中存储器访问排序器还被配置为:
当全页面访问从易失性和非易失性存储器二者都被请求时,执行针对非易失性存储器的打开页面的多个非易失性存储器读/写操作,该多个非易失性存储器读/写操作的数目不同于针对易失性存储器的打开页面的多个易失性存储器读/写操作的数目。
9.根据权利要求1的存储器系统,其中,存储器控制器还被配置为:
在同时发起对易失性存储器和非易失性存储器二者中的地址的激活操作之后,在从非易失性存储器访问读数据之前,从易失性存储器组访问读数据或向其提供写数据。
10.一种在包括易失性存储器组和非易失性存储器组的存储器系统中使易失性存储器和非易失性存储器访问交错的方法,该方法包括;
使激活、读、写和预充电操作对易失性存储器组和非易失性存储器组的应用同步,其中所述同步包括:
由存储器控制器接收对应于读和写操作的存储器命令;
由存储器控制器经过向易失性存储器组和非易失性存储器组二者都提供地址的共享地址总线发布地址,所述地址对应于激活操作;
由存储器控制器发布芯片选择信号以同时发起在易失性存储器组和非易失性存储器组二者中的激活操作,其中激活操作从易失性存储器组和非易失性存储器组二者中的每一个读对应于所述地址的一页数据并将所述数据存储在本地数据存储锁存器中以用于随后的读和写操作;以及
由存储器控制器发布控制器命令,所述控制器命令对应于以对交错方式的对易失性存储器组和非易失性存储器组的读和写操作,其中用于存储器命令的地址由存储器控制器经过共享地址总线发布。
11.根据权利要求10的方法,其中,每个非易失性存储器组包括多个存储器单元,每个存储器单元具有自由层,并且同步步骤包括:
通过提供通过存储器单元的电流以改变自由层的极化方向来对每个存储器单元进行编程。
12.根据权利要求10的方法,其中,同步步骤包括:
在易失性和非易失性存储器组二者中发起激活操作;
在易失性和非易失性存储器组二者中发起读/写操作;
从易失性存储器组访问读数据或向其提供写数据;以及
随后,从非易失性存储器组访问读数据或向其提供写数据。
13.根据权利要求10的方法,其中,同步步骤包括:
在易失性和非易失性存储器组二者中发起激活操作;
在易失性和非易失性存储器组二者中发起读/写操作;
从易失性存储器组访问读数据或向其提供写数据;
在读取步骤之后,在易失性存储器组中发起读/写操作;以及
随后,从易失性存储器组和非易失性存储器组二者访问读数据或向其提供写数据。
14.根据权利要求10的方法,其中,同步步骤包括:
在易失性和非易失性存储器组二者中发起激活操作;
仅在易失性存储器组中发起读/写操作;
从易失性存储器组访问读数据或向其提供写数据;
在读取步骤之后,在易失性和非易失性存储器组二者中发起读/写操作;以及
随后,从易失性存储器组和非易失性存储器组二者访问读数据或向其提供写数据。
15.根据权利要求10的存储器,还包括:
在从非易失性存储器读取数据或向其写入数据之前,在数据线上从易失性存储器读取数据或在数据线上向易失性存储器写入数据。
16.一种使易失性存储器和非易失性存储器访问交错的方法,包括:
a)接收激活操作发起命令;
b)确定序列地址是否等于非易失性存储器序列地址;
c)如果步骤b)为否,则在易失性存储器组中发起激活操作;
d)将易失性存储器等待时间计数器复位为A;
e)如果A不等于易失性存储器等待时间,则将A增量并重复步骤e);
f)如果A等于易失性存储器等待时间,则执行易失性存储器读/写操作;
g)发起易失性存储器预充电操作;
h)将易失性存储器预充电等待时间计数器复位为B;
i)如果B不等于易失性存储器预充电等待时间,则将B增量并重复步骤i)直至B等于易失性存储器预充电等待时间;
j)如果步骤b)为是,则在非易失性存储器序列中发起激活操作;
k)将非易失性存储器激活等待时间计数器复位为C;
l)如果C不等于非易失性存储器等待时间,则将C增量并重复步骤l);
m)如果C等于非易失性存储器等待时间,则执行非易失性存储器读/写操作;
n)发起非易失性存储器预充电操作;
o)将非易失性存储器预充电等待时间计数器D复位;以及
p)如果D不等于非易失性存储器预充电等待时间,则将D增量并重复步骤p)直至D等于非易失性存储器预充电等待时间。
17.一种使易失性存储器和非易失性存储器访问交错的方法,包括:
a)在易失性存储器序列和非易失性存储器序列中发起激活操作;
b)将易失性存储器激活等待时间计数器复位为A;
c)如果A不等于易失性存储器激活等待时间,则将A增量并重复步骤c);
d)如果A等于易失性存储器,则执行易失性存储器读/写操作;
e)发起易失性存储器预充电操作;
f)将易失性存储器预充电等待时间计数器复位为B;
g)如果B不等于易失性存储器预充电等待时间,则将B增量并重复步骤g)直至B等于易失性存储器预充电等待时间;
h)在步骤a)之后,将非易失性存储器激活等待时间计数器复位为C;
i)如果C不等于非易失性存储器等待时间,则将C增量并重复步骤i);
j)如果C等于非易失性存储器等待时间,则执行非易失性存储器读/写操作;
k)发起非易失性存储器预充电操作;
l)将非易失性存储器预充电等待时间计数器复位为D;以及
m)如果D不等于非易失性存储器预充电等待时间,则将D增量并重复步骤m)直至D等于非易失性存储器预充电等待时间。
18.一种使易失性存储器和非易失性存储器访问交错的方法,包括:
a)在非易失性存储器和易失性存储器中发起激活操作;
b)将非易失性存储器激活等待时间计数器设置成C;
c)将非易失性存储器已激活标志设置成NO;
d)如果C不等于非易失性存储器激活等待时间,则将C增量并重复步骤d);
e)如果C等于非易失性存储器激活等待时间,则将非易失性存储器已激活标志设置成YES;
f)在步骤a)之后,将易失性存储器激活等待时间计数器设置成A;
g)如果A不等于易失性存储器激活等待时间,则将A增量并重复步骤g);
h)如果A等于易失性存储器激活等待时间,则发起读/写操作;
i)如果非易失性存储器已激活标志是NO,则将易失性存储器的数据总线部分识别为有效并仅对易失性存储器完成读/写操作,
j)如果非易失性存储器已激活标志是YES,则将非易失性存储器和易失性存储器的数据总线部分识别为有效并完成易失性存储器和非易失性存储器二者的读/写操作;
k)如果存在更多未决的读/写操作,则发起读/写操作并从步骤i)开始重复;
l)如果不再有未决的读/写操作,则在非易失性存储器和易失性存储器中发起预充电操作;
m)将易失性存储器预充电等待时间计数器复位为B;
n)如果B不等于易失性存储器预充电等待时间,则将B增量并重复步骤n)直至B等于易失性存储器预充电等待时间;
o)在步骤l)之后,将非易失性存储器预充电等待时间计数器复位为D;
p)如果D不等于非易失性预充电等待时间,则将D增量并重复步骤p)直至D等于非易失性预充电等待时间。
CN201180066332.4A 2010-12-17 2011-12-16 用于使dram和mram访问交错的存储器控制器和方法 Active CN103354939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610027385.XA CN105702277B (zh) 2010-12-17 2011-12-16 存储器系统和存储器控制器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201061424355P 2010-12-17 2010-12-17
US61/424,355 2010-12-17
PCT/US2011/065571 WO2012083211A1 (en) 2010-12-17 2011-12-16 Memory controller and method for interleaving dram and mram accesses

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610027385.XA Division CN105702277B (zh) 2010-12-17 2011-12-16 存储器系统和存储器控制器

Publications (2)

Publication Number Publication Date
CN103354939A CN103354939A (zh) 2013-10-16
CN103354939B true CN103354939B (zh) 2016-03-16

Family

ID=46234205

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201180066332.4A Active CN103354939B (zh) 2010-12-17 2011-12-16 用于使dram和mram访问交错的存储器控制器和方法
CN201610027385.XA Active CN105702277B (zh) 2010-12-17 2011-12-16 存储器系统和存储器控制器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610027385.XA Active CN105702277B (zh) 2010-12-17 2011-12-16 存储器系统和存储器控制器

Country Status (4)

Country Link
US (3) US9135965B2 (zh)
EP (2) EP2652741B1 (zh)
CN (2) CN103354939B (zh)
WO (1) WO2012083211A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012083211A1 (en) 2010-12-17 2012-06-21 Everspin Technologies, Inc. Memory controller and method for interleaving dram and mram accesses
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
KR20130134918A (ko) * 2012-05-31 2013-12-10 삼성전자주식회사 불휘발성 메모리를 포함하는 컴퓨터 시스템 및 컴퓨터 시스템의 동작방법
US9110795B2 (en) 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US9092327B2 (en) 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US8959298B2 (en) 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types
US9378793B2 (en) * 2012-12-20 2016-06-28 Qualcomm Incorporated Integrated MRAM module
WO2015005903A1 (en) * 2013-07-09 2015-01-15 Hewlett-Packard Development Company, L.P. Write flow control for memory modules that include or interface with non-compliant memory technologies
EP3025347A1 (en) 2013-07-26 2016-06-01 Hewlett Packard Enterprise Development LP First data in response to second read request
US9606916B2 (en) * 2013-09-13 2017-03-28 Samsung Electronics Co., Ltd. Semiconductor devices including application processor connected to high-bandwidth memory and low-bandwidth memory, and channel interleaving method thereof
CN107209718B (zh) * 2015-03-11 2021-11-19 拉姆伯斯公司 高性能非易失性存储器模块
KR20170071872A (ko) * 2015-12-16 2017-06-26 삼성전자주식회사 메모리 컨트롤러, 전자 장치 및 메모리 컨트롤러의 제어 방법
US9837135B2 (en) 2016-03-03 2017-12-05 Samsung Electronics Co., Ltd. Methods for addressing high capacity SDRAM-like memory without increasing pin cost
US9830086B2 (en) * 2016-03-03 2017-11-28 Samsung Electronics Co., Ltd. Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group
KR102558947B1 (ko) * 2016-08-25 2023-07-25 에스케이하이닉스 주식회사 데이터 저장 장치
JP2018049381A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリ制御回路、メモリシステムおよびプロセッサシステム
US10747463B2 (en) 2017-08-04 2020-08-18 Micron Technology, Inc. Apparatuses and methods for accessing hybrid memory system
US10394456B2 (en) 2017-08-23 2019-08-27 Micron Technology, Inc. On demand memory page size
US11210019B2 (en) * 2017-08-23 2021-12-28 Micron Technology, Inc. Memory with virtual page size
US10572168B2 (en) * 2017-11-16 2020-02-25 International Business Machines Corporation DRAM bank activation management
US10558613B1 (en) * 2018-07-19 2020-02-11 EMC IP Holding Company LLC Storage system with decrement protection of reference counts
US10983724B2 (en) 2018-09-14 2021-04-20 Micron Technology, Inc. Controller with distributed sequencer components
US10896707B2 (en) * 2018-12-17 2021-01-19 Arm Limited Selective clock adjustment during read and/or write memory operations
TWI715114B (zh) * 2019-07-22 2021-01-01 瑞昱半導體股份有限公司 記憶體分時控制的方法及相關系統
CN112289353B (zh) * 2019-07-25 2024-03-12 上海磁宇信息科技有限公司 一种优化的具有ecc功能的mram系统及其操作方法
US10929301B1 (en) * 2019-08-22 2021-02-23 Micron Technology, Inc. Hierarchical memory systems
US11893276B2 (en) 2020-05-21 2024-02-06 Micron Technology, Inc. Apparatuses and methods for data management in a memory device
DE102021103872A1 (de) 2020-07-13 2022-01-13 Samsung Electronics Co., Ltd. Nichtflüchtige speichervorrichtung, die eine hocheffiziente e/a-schnittstelle unterstützt
KR20220008428A (ko) 2020-07-13 2022-01-21 삼성전자주식회사 고효율 입출력 인터페이스를 지원하는 불휘발성 메모리 장치
CN114415937B (zh) * 2021-12-06 2024-06-21 北京航空航天大学 一种非易失存储的存储控制器及控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1682199A (zh) * 2002-09-10 2005-10-12 诺基亚有限公司 一种包含非易失性ram和ram的存储电路
CN101573760A (zh) * 2007-01-22 2009-11-04 美光科技公司 具有处于相同分级层级的易失性及非易失性存储器装置的存储器系统及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301278A (en) 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
US5587961A (en) * 1996-02-16 1996-12-24 Micron Technology, Inc. Synchronous memory allowing early read command in write to read transitions
US20020159450A1 (en) * 2000-11-22 2002-10-31 Yeshik Shin Method and system for asymmetric packet ordering between communications devices
JP4722305B2 (ja) * 2001-02-27 2011-07-13 富士通セミコンダクター株式会社 メモリシステム
US6895522B2 (en) * 2001-03-15 2005-05-17 Micron Technology, Inc. Method and apparatus for compensating duty cycle distortion in a data output signal from a memory device by delaying and distorting a reference clock
JP4554616B2 (ja) * 2004-08-30 2010-09-29 ルネサスエレクトロニクス株式会社 半導体集積回路
US7420874B2 (en) 2005-04-06 2008-09-02 Rambus Inc. Integrated circuit memory device, system and method having interleaved row and column control
US7702839B2 (en) * 2005-04-12 2010-04-20 Nokia Corporation Memory interface for volatile and non-volatile memory devices
US20080313364A1 (en) 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7539062B2 (en) * 2006-12-20 2009-05-26 Micron Technology, Inc. Interleaved memory program and verify method, device and system
US8427891B2 (en) * 2007-04-17 2013-04-23 Rambus Inc. Hybrid volatile and non-volatile memory device with a shared interface circuit
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US7577021B2 (en) * 2007-11-21 2009-08-18 Magic Technologies, Inc. Spin transfer MRAM device with separated CPP assisted writing
US8478928B2 (en) 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
US8284594B2 (en) * 2009-09-03 2012-10-09 International Business Machines Corporation Magnetic devices and structures
US8375173B2 (en) 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
US10360143B2 (en) * 2010-07-01 2019-07-23 Qualcomm Incorporated Parallel use of integrated non-volatile memory and main volatile memory within a mobile device
WO2012083211A1 (en) * 2010-12-17 2012-06-21 Everspin Technologies, Inc. Memory controller and method for interleaving dram and mram accesses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1682199A (zh) * 2002-09-10 2005-10-12 诺基亚有限公司 一种包含非易失性ram和ram的存储电路
CN101573760A (zh) * 2007-01-22 2009-11-04 美光科技公司 具有处于相同分级层级的易失性及非易失性存储器装置的存储器系统及方法

Also Published As

Publication number Publication date
US9418001B2 (en) 2016-08-16
US20160019139A1 (en) 2016-01-21
US20120155160A1 (en) 2012-06-21
EP2652741B1 (en) 2019-02-20
EP3467832B1 (en) 2020-05-20
EP2652741A1 (en) 2013-10-23
CN105702277B (zh) 2018-05-08
US9135965B2 (en) 2015-09-15
CN105702277A (zh) 2016-06-22
WO2012083211A1 (en) 2012-06-21
US20160350031A1 (en) 2016-12-01
EP2652741A4 (en) 2016-07-06
US9740431B2 (en) 2017-08-22
CN103354939A (zh) 2013-10-16
EP3467832A1 (en) 2019-04-10

Similar Documents

Publication Publication Date Title
CN103354939B (zh) 用于使dram和mram访问交错的存储器控制器和方法
US11693783B2 (en) Apparatuses and methods for cache operations
US10915263B2 (en) Apparatuses and methods for partitioned parallel data movement
US20210181969A1 (en) Apparatuses and methods for data movement
US20200150864A1 (en) Apparatuses and methods for in-memory operations
CN107408404B (zh) 用于存储器装置的设备及方法以作为程序指令的存储
US11107520B2 (en) Apparatuses and methods for shift decisions
CN105474319B (zh) 用于配置混合存储器模块的存储器的i/o的设备及方法
EP3403184B1 (en) Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
CN101957726B (zh) 双列直插式存储模块中的相变存储器
US20130329491A1 (en) Hybrid Memory Module
US7782703B2 (en) Semiconductor memory having a bank with sub-banks
CN104115129A (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
CN103946826A (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
TWI660362B (zh) 用於記憶體內操作之裝置及方法
US9361956B2 (en) Performing logical operations in a memory
CN106856097A (zh) 半导体器件和包括它的半导体系统
CN102751966A (zh) 延迟电路和存储器的潜伏时间控制电路及其信号延迟方法
CN109478162A (zh) 半导体存储装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant