CN104981872B - 存储*** - Google Patents

存储*** Download PDF

Info

Publication number
CN104981872B
CN104981872B CN201380073070.3A CN201380073070A CN104981872B CN 104981872 B CN104981872 B CN 104981872B CN 201380073070 A CN201380073070 A CN 201380073070A CN 104981872 B CN104981872 B CN 104981872B
Authority
CN
China
Prior art keywords
pulse width
request signal
function
memory module
memory controller
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
CN201380073070.3A
Other languages
English (en)
Other versions
CN104981872A (zh
Inventor
B.奈尔
J.C.贾斯珀
J.V.洛夫莱斯
M.K.纳基穆图
J.朱
T.M.夸赫
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104981872A publication Critical patent/CN104981872A/zh
Application granted granted Critical
Publication of CN104981872B publication Critical patent/CN104981872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/1678Details of memory controller using bus width
    • 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/1689Synchronisation and timing concerns
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0638Organizing or formatting or addressing of data
    • 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/0673Single storage device
    • 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
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • 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/1003Interface circuits for daisy chain or ring bus memory arrangements
    • 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/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供了一种在经由总线耦合到主机存储器控制器的存储模块中使用的设备,包括:存储模块控制逻辑,其用来生成具有大于或等于最小脉冲宽度的脉冲宽度的至主机存储器控制器的请求信号,其中所述最小脉冲宽度包括保证所述主机储存器控制器检测所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了至所述主机存储器控制器的请求信号之外的至少一个功能。

Description

存储***
技术领域
本文所描述的实施例大体涉及存储***,在该存储***中主机存储器控制器在单个通道或总线上与具有与耦合到通道和主机存储器控制器的插槽兼容的引脚布局的多个存储模块通信。主机存储器控制器支持由耦合到通道的多个存储模块所使用的协议,诸如双倍数据速率第三代(Double Data Rate Third Generation,DDR3)协议。如果诸如双列直插式存储模块(Dual In-Line Memory Module,DIMM)之类的存储模块具有不同的定时用于在总线上输出数据,诸如具有不同类型的DIMM的情况,则主机存储器控制器必须在不同的耦合DIMM之中为那些定时差进行调整。主机存储器控制器可以传送单周期命令。
背景技术
在使用总线之前,主机存储器控制器必须配置存储模块用于操作。在DDR3协议中,主机存储器控制器可以使用模式寄存器设定(Mode Register Set,MRS)命令在存储模块封装上的存储器芯片中对多达八个模式寄存器进行编程,其中所述存储器芯片诸如动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)芯片。MRS命令标识存储器芯片上的模式寄存器并且包括指示是否反转数据的反转比特(inversion bit)。在训练了总线之后,主机存储器控制器于是可以使用总线用于读取和写入命令以及传递数据。
命令可以每命令每通路一比特地被发送。在正常定时模式期间,例如1N定时,在命令周期上将芯片选择信号放在总线上以促使所选择的存储模块接受该命令。在高速操作期间,诸如在2N定时期间,主机存储器控制器在命令之前一个时钟周期将芯片选择信号放在总线上以允许附加的设置时间。
时钟使能信号可以被用于管理存储模块中的内部时钟信号。时钟使能(clockenable,CKE)高信号激活内部时钟信号并且贯穿读取和写入访问被维持为高的。至存储模块的CKE低信号去激活内部时钟信号、设备输入缓冲器和输出驱动器。采取CKE低信号功率下降和刷新操作。
当从主机存储器控制器向存储模块传送写入时,在存储模块处的写入可以被直接写入到存储器芯片。然而,在具有写入缓冲器的存储模块中,可以实施信用***,其中主机存储器控制器被分配最大数目的写入信用并且如果不存在可用的写入信用,就不能发送写入命令。写入信用在发送写入命令时递减。当完成每个写入时存储模块将经由总线发送消息以将信用返回给主机存储器控制器,这在接收到该消息时使写入信用计数器递增。
为了避免当发送读取和写入请求时传送令人烦恼的模式,当前的主机存储器控制器可以对数据加扰以降低重复地产生可以在总线上引起错误的令人烦恼的模式的可能性。在接收到具有写入地址的加扰写入数据时,存储模块在写入地址处存储加扰写入数据。响应于读取请求,将加扰数据进行存储并且经由总线发送给主机存储器控制器以进行解扰和使用。
附图说明
举例来说参考未按比例绘制的附图来描述实施例,其中,同样的附图标记指的是相似的元件。
图1图示具有存储***的***的实施例。
图2图示存储模块的实施例。
图3图示存储***的引脚输出(pin-out)设计的实施例。
图4是用来生成和处理对功能进行编码的请求信号的操作的实施例。
图5图示用来在存储模块中确定定时调整以供输出的操作的实施例。
图6图示模式寄存器设定(MRS)命令的实施例。
图7图示用于生成和处理MRS命令的操作的实施例。
图8和9提供用于以两部分输出命令的定时图表。
图10和11图示用于生成和接受在多个时钟周期上发送的命令的操作的实施例。
图12图示用来指示至存储模块控制器的所支持的接口配置的操作的实施例。
图13图示针对存储模块控制器基于所支持的接口配置使用地址比特的操作的实施例。
图14图示用来使用命令来指示功率管理操作的操作的实施例。
图15图示用来使用写入信用来发送写入命令并且将写入信用返回给主机存储器控制器的操作的实施例。
图16图示用来生成带有写入信用计数器的读取数据分组的操作的实施例。
图17图示用来处理读取数据分组的操作的实施例。
图18图示用来使用错误信号处理错误操作流的操作的实施例。
图19图示用来处理写入错误的操作的实施例。
图20图示用来对经由总线传输的数据进行加扰和解扰的操作的实施例。
图21图示用来对存储模块中的写入数据进行解扰的操作的实施例。
图22图示用来设定指示总线接口配置的参数的操作的实施例。
图23图示用来选择总线接口配置以处理传递请求的操作的实施例。
具体实施方式
在以下描述中阐述了诸如逻辑实现方式、操作码、规定操作数的装置、资源分区/共享/复制实现方式、***部件的类型和相互关系、以及逻辑分区/集成选择的众多具体细节以便提供本发明的更透彻的理解。然而,由本领域技术人员将意识到的是,本发明可以在没有这样的具体细节的情况下予以实践。在其它情况中,未详细示出控制结构、门级电路和全软件指令序列以便不使本发明模糊。本领域普通技术人员利用所包括的描述将能够在没有过度实验的情况下实现适当的功能性。
本说明书中引用“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能未必都包括该特定特征、结构或特性。而且,这样的措词未必指的是相同的实施例。
在以下的描述和权利要求书中,可以使用术语“耦合”和“连接”连同它们的衍生体。应当理解这些术语并不意图作为彼此的同义词。“耦合”被用来指示两个或更多个元件彼此协作或交互,其中所述两个或更多个元件可以或者可以不与彼此直接物理或电气接触。“连接”被用来指示彼此耦合的两个或更多个元件之间的通信的建立。某些实施例涉及存储器件电子装配。实施例包括用于形成电子装配的设备和方法两者。
图1图示计算***2的实施例,所述计算***2包括典型地安装在母板上的一个或更多个处理器4、主机存储器控制器6和多个存储模块8a、8b。处理器4可以包括中央处理单元、多核处理器。主机存储器控制器6响应于来自处理器4的存储器存取请求经由总线10与多个存储模块8a、8b通信,所述总线10还称为通道、总线接口等,其中两个存储模块8a、8b单独且独立地连接到相同的总线10。主机存储器控制器6可以包括:请求计数器7,其中当接收到用于准予的请求信号时,使所述请求计数器递增,以便当后来基于在请求计数器7中所指示的请求数目发出准予时使用;写入信用计数器9,其指示允许写入请求被发送到存储模块8a、8b之一的信用数目;以及加扰种子值11,其被用来对来自存储模块8a、8b之一的读取请求数据进行解扰。
在图1的实施例中,存储模块8a、8b安装在***2母板上的插槽或存储器插口中。存储模块8a、8b可以包括相同或不同类型的存储模块,它们具有与母板上的存储器插槽中的引脚布置兼容的引脚布置。此外,存储模块可以支持相同或不同的存储器协议,诸如双倍数据速率***(Double Data Rate Fourth Generation,DDR4)协议和附加协议。尽管仅示出了两个存储模块8a、8b,但是可以存在多个存储模块。
存储模块8a、8b中的每一个包括分别在该存储模块的一侧或两侧上的存储器芯片12a、14a、16a、18a以及12b、14b、16b、18b用于存储数据。位于存储模块8a、8b封装的一侧或两侧上的存储器芯片,例如DRAM芯片,包括存储由处理器4使用的数据的存储元件。
每个存储模块8a、8b可以包括存储模块控制器20a、20b,用于与主机存储器控制器6协调存储器管理和访问操作。主机存储器控制器6包括逻辑,用于相对于连接到总线10的存储模块8a、8b管理读取和写入操作和存储器管理操作以及使处理器4与存储模块8a、8b连系(interface)。主机存储器控制器6可以与处理器4集成或者以与***2母板上的处理器4分开的逻辑来实现。
***2母板可以包括与不同类型的存储器芯片兼容的存储器插口,用以只要不同类型的存储模块8a、8b与存储器插口中的引脚架构兼容,就允许支持不同类型存储器件的不同类型存储模块8a、8b支持不同的存储器协议。
在一个实施例中,存储模块8a、8b可以包括相同或不同类型的动态随机存取存储器(DRAM)。在一个实施例中,存储模块8a、8b可以包括双列直插式存储模块(DIMM),诸如无缓冲DIMM(UDIMM)、负载减少的双列直插式存储模块(Load Reduced Dual In-Line MemoryModule,LRDIMM)、小轮廓双列直插式存储模块(Small Outline Dual In-Line MemoryModule,SODIMM)等等。存储模块8a、8b可以实现各种形式的存储器,包括但不限于NAND(闪速)存储器、铁电随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、诸如相变存储器(PCM)之类的三维(3D)交叉点存储器、结合忆阻器技术的存储器、磁阻式随机存取存储器(MRAM)、自旋传输矩(Spin Transfer Torque,STT)-MRAM等等。
在某些实施例中,因为不同类型的存储模块8a、8b可以被安装和连接到总线10,所以存储模块8a、8b可以支持不同的协议。例如,存储模块8a可以包括遵从双倍数据速率***(DDR4)静态DRAM(SDRAM)协议的DIMM类型,而存储模块8b可以使用不同的协议但是在相同的总线10上与使用DDR4协议的存储模块8a兼容。在存储模块8a、8b中还可以使用和实现替代的和不同的协议。
如果存储模块8a、8b支持不同的DRAM协议,则主机存储器控制器6被配置成经由总线10使用不同的协议进行通信,即特定于存储模块8a的第一协议、例如DDR4,以及特定于存储模块8b的第二存储器协议。至存储模块8a的读取和管理请求利用第一存储器协议来实现,而至第二存储模块8b的读取和管理请求使用第二存储器协议来实现。
图2提供如包括执行存储模块操作并且与主机存储器控制器6交互的存储模块控制器20的存储模块8的实施例的其它细节,其中存储模块8诸如存储模块8a、8b。在某些实现方式中,存储模块之一、例如8b,可以包括图2的存储模块,而另一存储模块、例如8a,可以不包括存储模块控制器20,诸如遵从DDR4标准的存储模块8a。在这样的实施例中,存储模块8a可以包括寄存器、诸如具有RDIMM的情况,或包括缓冲器、诸如具有LRDIMM的情况。
存储模块8可以包括:在具有可以使用模式寄存器设定(MRS)命令来配置的数据的存储模块控制器中的模式寄存器22;读取缓冲器24,用来响应于读取命令来缓冲被返回到主机存储器控制器6的读取数据;功率管理操作寄存器26,其指示功率管理操作用以执行;写入缓冲器28,用来在被写入到存储器芯片12、14、16、18之前对写入数据进行缓冲;写入信用计数器30,其指示用以返回到主机存储器控制器6的写入信用的数目;加扰种子值32,其被用来使经由总线10被传递到主机存储器控制器6的读取数据随机化;以及接口参数34,其标识总线10的所支持的接口配置。缓冲器和参数可以在存储模块控制器20内实现或者在存储模块8中的存储模块控制器20外部的电路中实现。参数中的某些参数可以在模式寄存器22中实现。
在某些实施例中,存储模块8a可以包括近存储器,其被配置为用于包括存储模块8b的远存储器的高速缓冲层。在这样的配置中,近存储模块8a应当具有使最频繁存取的***存储器地址的存取时间降低的效果,其中特定的远存储模块8b被设计成高速缓存所述***存储器地址。近存储器件可以被配置为用于其远存储器配对物的直接映射高速缓存器。
所描述的存储模块控制器20和主机存储器控制器6实施例可以在硬件逻辑来编码,诸如在专用集成电路(ASIC)、现场可编程门阵列(FPGA)等中来编码。
本发明的实施例的元件还可以被提供为用于存储机器可执行指令的机器可读媒介。机器可读媒介可以包括但不限于快闪速存储器、光盘、紧致磁盘-只读存储器(CD-ROM)、数字多用/视频盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播媒介或适合于存储电子指令的其它类型的机器可读媒介。例如,本发明的实施例可以下载为计算机程序,其可以通过网络传输从远程计算机(例如,服务器)传递到请求计算机(例如,客户端)。
图3图示存储模块8a、8b上的引脚的布置,以及主机存储器控制器6、总线10线路和存储模块8a、8b,其中这样的引脚指定在下面描述或者在本领域中是已知的。
把功能编码在请求信号中
在某些实施例中,存储模块控制器20可以向主机存储器控制器6发送请求信号,例如REQ#50,以指示对于主机存储器控制器6在读取缓冲器24中存在数据用以作为读取命令的一部分返回。请求信号可以包括图3的引脚输出简图中所示出的REQ#时钟使能(CKE)信号50。存储模块控制器18可以以最小脉冲宽度传输请求信号以保证由主机存储器控制器6检测,在某些实现方式中其可以包括两个时钟周期。存储模块控制器20此外还可以将附加功能编码到针对主机存储器控制器6的请求信号中用以执行。通过将附加功能编码在请求信号中,可以在一个信号中指示多个功能,以便使操作数目和在单个信号中传送的信息最大化。
图4图示由主机存储器控制器6和存储模块控制器20执行以使用请求信号将附加功能传送到主机存储器控制器6的操作的实施例。在发起用来生成请求信号的操作(在块100)时,其中所述请求信号可以是读取命令的一部分以将数据从读取缓冲器24传递回到主机存储器控制器6,存储模块控制器20确定(在块102)用来利用请求信号包括(includewith)的功能,该功能可以指示主机存储器控制器6执行的附加功能,诸如特定错误条件或中断或其它功能。存储模块控制器20于是确定(在块104)用来指示或编码所确定的功能的脉冲宽度。例如,可以使用等于用以保证通过主机存储器控制器6检测请求信号的最小脉冲宽度的脉冲宽度来指示或编码第一功能,可以使用比最小脉冲宽度大的附加脉冲宽度来指示附加功能。例如,如果保证检测的最小脉冲宽度是两个时钟,则用于请求信号的该最小脉冲宽度可以指示一个功能,而6、10和14的脉冲宽度可以指示又一附加的不同功能。14的脉冲宽度可以指示灾难性故障。此外,用于请求信号的与不同功能相关联的脉冲宽度可以由最小数目个时钟周期分隔开,诸如在某些实施例中是三个周期,以保证通过主机存储器控制器6的脉冲宽度的恰当检测。存储模块控制器20生成(在块106)具有确定脉冲宽度的请求信号以便发送到主机存储器控制器6。
当在引脚50上检测到(在块108)具有最小或第一脉冲宽度(例如,2个时钟)的请求信号REQ0#时,主机存储器控制器6使请求计数器7递增(在块110),所述请求计数器7指示需要被发送到发送该请求信号的存储模块8b的准予信号的数目。在使请求计数器7递增之后,主机存储器控制器6可以等待直到总线10、即数据总线上的插槽可用于发出多个准予请求,使得在不同的随机时间成批地处理在请求计数器7中所指示的请求。在接收到准予信号时,存储模块控制器20将读取缓冲器24中的数据发送(在块112)到主机存储器控制器6,诸如响应于来自主机存储器控制器6的读取请求而聚集和缓冲的数据。
在确定请求信号50的最小或第一脉冲宽度之后,如果请求信号50(在块114)不继续超过所测量的最小脉冲宽度,则控制结束。否则,如果(在块116)所测量的请求信号不继续超过第二脉冲宽度,例如6个时钟,则主机存储器控制器6可以执行(在块118)与该第二脉冲宽度相关联的第二功能。否则,如果(在块120)请求信号50不继续超过所测量的第三脉冲宽度,例如10个时钟,则主机存储器控制器6可以执行(在块122)与该第三脉冲宽度相关联的第三功能。如果脉冲宽度继续并且第四脉冲宽度、例如14个时钟被测量(在块124),则主机存储器控制器6可以执行(在块126)灾难性故障处理以便主机存储器控制器6执行。
尽管所描述的实施例涉及针对请求信号的四个不同脉冲宽度的四个功能,但是在某些实现方式中可以存在由多于或少于四个脉冲宽度表示的多于或少于四个功能。此外,一个脉冲宽度可以指示多个功能的集合用以执行。
在图4的操作中,在确定出脉冲宽度不继续超过与那些附加功能相关联的脉冲宽度之后,仅处理超出原始请求准予功能的功能。在替代实施例中,在测量与每个附加功能相关联的脉冲宽度时,即使脉冲宽度继续超过该所测量的脉冲宽度,也可以执行该附加功能,因此,当脉冲宽度的测量结果延伸超过触发器脉冲宽度时,执行每个功能。
在图4的所描述的实施例的情况下,可以由存储模块控制器20,通过使用针对存储模块控制器的不同脉冲宽度将不同的功能编码到请求信号中,所述不同脉冲宽度可以由保证主机存储器控制器6检测到脉冲宽度的最小数目时钟分隔开。这样,在单个请求信号中,存储模块控制器20可以用信号通知请求信号,诸如用来返回来自读取缓冲器24的数据的请求,以及多个不同功能之一。
基于与第二存储模块的部件差异调整来自第一存储模块的输出的定时以匹配来 自第二存储模块的定时
在某些实现方式中,存储模块8a和8b可以包括具有不同部件的不同类型存储模块。例如,存储模块8a可以包括或可以不包括在存储模块8b中未包括的寄存器和数据缓冲器,反之亦然,以及存储模块8a、8b可以支持不同的存储器协议。所描述的实施例提供用于一个存储模块(诸如8b)的技术,来调整其定时以匹配另一存储模块(例如8a)的定时,使得主机存储器控制器6不必针对来自不同存储模块(诸如不同类型的DIMM)的不同定时进行调整。通过使存储模块控制器20a、20b处理定时调整,避免了在主机存储器控制器处的过多回转周期和性能损失。
图5图示由存储模块控制器20、诸如存储模块控制器20b执行以基于与总线10上的其它存储模块8a、8b的部件差异来调整输出的定时的操作的实施例。在发起(在块200)用来从数据缓冲器24输出数据的操作时,存储模块控制器20b基于在通道上存储模块8a、8b的至少一个中的至少一个部件来确定(在块202)定时调整。块204-208提供用来确定定时调整的操作的实施例。存储模块控制器20b可以响应于具有影响输出的定时的至少一个部件(其不包括在其它第二存储模块8a中)的第一存储模块8b来使定时加速(在块204)。此外,可以响应于总线10上的具有影响在第二存储模块8b处的输出的定时的至少一个部件(其不包括在第一存储模块8b中)的其它第二存储模块8a来将延迟添加到(在块206)定时。
存储模块控制器20b于是可以根据定时的任何添加的延迟或加速确定(在块208)净(net)定时调整。存储模块控制器20b基于所确定的定时调整对从数据缓冲器24至主机存储器控制器6的输出的定时进行调整(在块210),以匹配在第二存储模块8a处的输出的定时。
例如,如果包括执行计算的控制器8b的存储模块8b包括在其它存储模块8a中未发现的数据缓冲器24,则定时调整可以包括当其它第二存储模块8a不包括诸如在第一存储模块8b中所包括的数据缓冲器时使输出的定时加速。在另一实现方式中,如果其它存储模块8a具有未包括在执行计算的存储模块8b中的寄存器,诸如具有RDIMM的情况,则定时调整包括使输出的定时延迟以适应其它存储模块8a中的未包括在进行计算的存储模块8b中的寄存器。如果针对数据缓冲器24的定时的加速大于针对其它存储模块8a中的寄存器所添加的延迟,则净定时调整会包括定时的加速。同样地,如果所添加的延迟大于加速,则净调整会包括向定时添加延迟。如果进行计算的存储模块8b不包括在其它存储模块中所包括的寄存器或数据缓冲器24,诸如如果其它存储模块8a是RDIMM和LRDIMM,则存储模块控制器20b可以使定时延迟,以便说明由其它存储模块8a中的附加部件引起的延迟。
存储模块8a、8b在至总线10的其命令、地址和控制总线上可以具有不同类型的部件,如果它们包括不同类型的DIMM的话,诸如UDIMM、RDIMM和LRDIMM。
在某些所描述的实施例中,对定时进行调整所针对的输出包括总线10中的数据总线上的数据从数据缓冲器24的输出。在替代实施例中,调整的输出信号可以包括除了数据输出之外的输出。
尽管相对于执行定时调整的一个存储模块描述了操作,但是总线10上的一个或多个存储模块8a、8b可以执行图5的定时调整。
在所描述的定时调整的情况下,存储模块控制器20b可以调整其输出的定时,诸如来自数据缓冲器24的输出,以匹配用于类似类型输出的来自其它存储模块8a的定时,使得主机存储器控制器6不需要执行任何定时调整来适应总线10上不同存储模块8a、8b的不同配置。
在模式寄存器设定(MRS)命令中对寄存器的使用进行编码
存储模块控制器20可以包括模式寄存器22。在某些实施例中,存储模块控制器20b可以实施与在其它控制器8a中所使用的第二存储器协议(诸如DDR 4)不同的第一协议。然而,存储模块控制器20b可以支持来自其它存储模块8a的第二协议(诸如DDR4)的某些命令,诸如模式寄存器设定(MRS)命令,还为了与实施第一存储器协议的存储模块控制器20a所使用的不同的目的而使用命令。
图6图示MRS命令250的实施例,其可以或可以不包括来自另一存储器协议(诸如DDR4)的MRS字段。命令250规定了指示MRS操作的操作代码252。地址寄存器A0-A13可以被用来为存储模块控制器20中的模式寄存器22之一提供数据,并且寄存器比特254指示用以将地址A0-A13中的数据写入到的模式寄存器22。例如,如果存在16个模式寄存器22,则四个寄存器比特254,诸如BA0、BA1、BG0、BG1,可以指示存储模块控制器20中的16个模式寄存器22之一来使用。
在一个实施例中,MRS命令250可以包括单周期命令,其可以被用来在针对总线操作训练总线10之前向存储模块8提供配置参数,所述总线操作诸如可以包括两个周期命令的读取和写入操作。这样,MRS命令250使用地址输入信号A0-A17,它们在图3的引脚输出设计中被示出为线52,以及使用命令输入信号BG1:0和BA1:0,它们在图3的引脚输出设计中被分别示出为线54和56。在某些实施例中,地址输入信号A14-16包含MRS命令操作代码。
图7图示由主机存储器控制器6和存储模块控制器20执行以对存储模块控制器20中的模式寄存器22进行编程的操作的实施例。在初始化期间,诸如在针对读取和写入操作训练总线10之前,这可以包括以两个时钟发送的命令,主机存储器控制器6可以生成(在块280)和发送MRS命令250,以指示存储模块控制器20中的模式寄存器22用包括在地址字段A13:0中的数据进行配置,该MRS命令250可以在一个时钟周期上被发送。
存储模块控制器20接收(在块282)MRS命令250以及确定(在块284)在线34和35上的寄存器比特254中所指示的模式寄存器22(图3)。存储模块控制器20于是将在地址比特A0:A13中所提供的数据写入(在块286)到所确定的模式寄存器22中。
主机存储器控制器6此外还可以使用根据DDR4协议的MRS命令250以发送到实施DDR4协议的存储模块、例如存储模块8a,以便对存储器芯片12a、14a、16a、18a之一上的八模式寄存器之一进行编程,其中,寄存器比特BA0、BA1、BG0标识存储器芯片中的模式寄存器,以及比特BG1指示是否比特被反转。这样,主机存储器控制器6可以针对实施不同存储器协议的存储器控制器20a、20b使用相同的MRS命令,以根据不同的协议引起不同的操作。例如,当MRS命令250被用于支持DDR4的存储模块8a时,MRS命令250将数据写入存储器芯片12a、14a、16a、18a之一中的模式寄存器。当被用于具有存储模块控制器20中的模式寄存器22的存储模块8b时,MRS命令250将数据写入存储模块控制器20中的模式寄存器22,而不是DRAM芯片12、14、16、18。这样,主机存储器控制器6可以使用与支持不同的存储器协议(例如,DDR4和某其它协议)的存储模块相同的MRS命令格式。
当仅对于命令的第一半接收芯片选择信号时由存储模块接受命令的第二半
所描述的实施例提供对于存储模块接受采用多个部分、诸如采用两个半部的命令的技术,其中仅必须接受针对存储模块8的一个芯片选择信号使得存储模块8以自发送了命令的第一半时起的延迟间隔,自动接受命令的第二半。其它实施例提供用于当存储模块8a、8b正以与规则定时模式(例如1N定时)相对比较高的速度进行操作时用于结合延迟以便在高速定时模式、例如2N定时下自动地接受命令的第二半的技术。
在某些实施例中,命令占用每通路两个比特并且在背靠背时钟(back-to-backclock)上被发送。这允许整个地址在一个命令中而不是在两个中被发送,诸如在一个命令中发送行和列信息。存储模块控制器20意识到通过对存储模块控制器20上的模式寄存器22进行编程的主机存储器控制器6的高速(2N)定时模式。
图8提供针对诸如读取命令的命令的规则定时模式(例如1N定时)的定时图表的实施例,所述命令以两部分被发送,其被示出为CMD0a、CMD0b、CMDla、CMDlb、CMD2a、CMD2b。对于第一存储模块8a,主机存储器控制器6可以在时钟周期300上将命令的第一半CMD0a和芯片选择信号S0#302(在图3中也被示出为SO#线58)放在总线上。第一存储模块8a在接收到芯片选择信号302时可以在周期300上接受命令的第一半CMD0a,以及此外还可以以自命令的第一半CMD0a起的延迟间隔(诸如在时钟周期304之后的一个时钟周期)自动地接受命令的第二半CMD0b。
主机存储器控制器6可以在时钟周期308上将命令CMD1的第一半CMD1a和芯片选择信号S2#306(在图3中也被示出为S2#线60)放在总线上以选择第二存储模块8b。第二存储模块8b在接收到芯片选择信号306时可以在周期308接受命令的第一半CMD1a,以及此外还可以在周期310之后的一个时钟周期自动地接受命令的第二半CMD1b。
图9提供针对比规则定时高的速度的高速定时模式(例如2N定时)的定时图表的实施例,其中被示出为CMD0a、CMD0b、CMDla、CMDlb、CMD2a、CMD2b的每个命令的两个部分保持在总线10上达两个时钟周期。主机存储器控制器6可以在时钟周期320上把命令的第一半CMD0a放在总线上达两个周期,并且对于第一存储模块8a在时钟周期324上把芯片选择信号S0#322(在图3中也被示出为SO#线38)放置在总线上自把命令的第一半CMD0a放置在总线10上时起一个周期,因而在高速定时模式下使芯片选择信号延迟。第一存储模块8a在接收到芯片选择信号322时可以在时钟周期324接受命令的第一半CMD0a,以及此外还可以在时钟周期328的开始以延迟间隔(被示为自芯片选择信号322的两个时钟周期)自动地接受命令的第二半CMD0b。
主机存储器控制器6可以在周期330上放出命令的第一半CMD1a,以及对于第二存储模块8b,在周期332上之后的一个周期放出芯片选择信号S2#332(在图3中也被示出为S2#线60)。第二存储模块8b在芯片选择信号332的时钟周期336上接受命令的第一半CMD1a,以及此外还可以在周期338之后的两个时钟周期自动读取命令的第二半CMD1b。这样,主机存储器控制器6在命令的第一半过半时使芯片信号延迟一个时钟周期,以及存储模块控制器20在读取命令的第一半之后使读取命令的第二半延迟两个周期。
图10图示针对在背对背周期上占用两个比特的命令的1N定时由主机存储器控制器6和存储模块控制器20执行的操作的实施例。主机存储器控制器6可以在初始化期间通过模式寄存器22中的比特对存储模块控制器20进行编程以便在1N定时模式下操作。当在规则定时模式1N下发起(在块350)两周期命令时,主机存储器控制器6在第一时钟周期内将命令的第一半(一个周期)放置(在块352)在总线10上。芯片选择命令也在第一时钟周期被放置(在块354)在总线10上。在存储模块控制器20检测到(在块356)针对当在规则定时模式下被编程时包括存储模块控制器20的特定存储模块8的芯片选择信号时,存储模块控制器20在第一时钟周期上在总线10上接受(在块358)命令的第一半。
此外,主机存储器控制器6在自第一时钟周期起的一个时钟周期的第二时钟周期中将命令的第二半(在背对背周期上自第一半起)放置(在块360)在总线10上。由芯片选择信号选择的存储模块8通过自接收到芯片选择信号和接受了命令的第一半时起等待一个周期延迟,在第二时钟周期上接受(在块362)总线10上的命令的第二半。存储模块控制器20可以在不要求芯片选择信号访问总线10的情况下自动接受总线10上的命令的第二半。
图11图示针对在背对背周期上占用两个比特的命令的高速定时模式(例如,2N)由主机存储器控制器6和存储模块控制器20执行的操作的实施例。存储模块控制器20可以在初始化期间通过模式寄存器22中的比特被编程以在高速定时模式下操作。当在高速定时模式下发起(在块380)两周期命令时,主机存储器控制器6在第一时钟周期内将命令的第一半(一个周期)放置在(在块382)总线10上。然后在第二时钟周期上将选择信号放置(在块384)在总线10上,其中所述第二时钟周期可以是自第一时钟周期起的一个时钟周期。这样,芯片选择信号可以以自放置了命令的第一半起的延迟(诸如一个时钟周期)地被放置在总线上。在存储模块控制器20当在高速定时模式下被编程时检测到(在块386)针对特定模块8的芯片选择信号时,存储模块控制器20以延迟地在第二时钟周期上接受(在块388)总线10上的命令的第一半。
此外,主机存储器控制器6在自第一时钟周期起两个周期的第三时钟周期中将命令的第二半(自第一半起的两个周期)放置(在块390)在总线10上。由芯片选择信号选择的存储模块8中的存储模块控制器20通过自接收到芯片选择信号和接受了命令的第一半时起等待两个周期延迟,在第四时钟周期上接受(在块392)总线10上的命令的第二半。存储模块控制器20可以在不等待总线10上的芯片选择信号的情况下自动接受命令的第二半。
所描述的实施例规定在高速定时模式(例如2N定时)下自发送命令的第一半起使芯片选择信号延迟一个时钟信号。此外,存储模块可以在芯片选择信号之后的两个时钟信号自动接受命令的第二半。在高速模式下,芯片选择信号的该延迟允许附加的设置时间。用于接受命令的第二半的延迟允许在不需要芯片选择信号的情况下自动接受命令。
在替代实施例中,芯片选择信号可以被放置在总线上以及命令的第二半可以以与所描述的一个时钟信号不同的间隔被接受。此外,在替代实施例中,命令可以包括两个以上的部分(例如,比特)和使用两个以上的时钟周期以及在不需要附加芯片选择信号用以接受的情况下,存储模块8a、8b可以以自芯片选择信号起的时钟信号延迟间隔自动接受命令的一个以上的附加部分。
确定如何设定存储模块中的高地址比特
存储模块控制器20可以被配置成在具有不同引脚和接口配置的存储模块8中操作,诸如具有比具有较少引脚的另一存储模块(诸如SO-DIMM)更多的引脚用于寻址的一个存储模块。具有较少寻址引脚的存储模块与具有可用于寻址的更多引脚的存储模块相比可以提供较小的地址空间。所支持的接口配置可以由于主机存储器控制器6和总线10的能力而变化,或者由于存储模块8的引脚和接口配置的能力而变化,其中存储模块8诸如是SO-DIMM或UDIMM。
对于这样的实施例,存储模块控制器20可以使用模式寄存器22之一来指示所支持的接口配置,诸如指示存储模块是否具有可用于高地址比特的引脚。在这样的情况中,如果存储模块控制器20在不具有可用于其它存储模块中的高地址比特的一个或更多个引脚的模块8中进行操作,则对于在该模块中不可用的那些高地址比特,存储模块控制器20会使用预定值,诸如0。这样,当不存在用于接收针对那些高地址比特的值的引脚时,存储模块控制器20为高地址比特假定值0。在一个实施例中,高地址比特可以包括图3的引脚输出简图中所示出的地址比特A1752和比特C2:062。诸如SO-DIMM的某些存储模块可能不包括引脚52和62。
图12图示由存储模块控制器20执行用来配置用于寻址的设置的操作的实施例。主机存储器控制器6可以向存储模块8发送指示所支持的接口配置的MRS信号。在接收到(在块400)指示所支持的接口配置的MRS信号时,存储模块控制器20可以更新由MRS信号所寻址的模式寄存器22,以指示所支持的接口配置,其可以指示DIMM类型,例如SO-DIMM、UDIMM等或者指示接口支持什么,例如指示高地址比特被支持或者不被支持。在响应中,存储模块控制器20设定(在块402)指示接口配置的所寻址的模式寄存器22以指示所通信的接口配置,诸如指示是否支持高地址比特。
图13图示由存储模块控制器20执行用来使用较高级地址比特处理寻址的操作的实施例。在接收到(在块420)来自主机存储器控制器6的具有地址比特的命令时,存储模块控制器20根据模式寄存器22确定所支持的接口配置,该信息指示当前存储模块8是否支持以高地址比特寻址。如果(在块422)所支持的接口配置不支持高地址比特,例如存储模块8不具有引脚52和62,则将针对所接收的地址的至少一个高地址比特设定为预定值,即,当不存在用于高地址比特的引脚时将高地址比特假定为0。如果(在块422)模式寄存器22中所指示的所支持的接口配置指示高地址比特可用,则存储模块控制器20针对在至少一个高地址引脚52、62上接收的地址使用(在块426)至少一个高地址比特。
在替代实施例中,存储模块控制器20可以为除了在存储模块上不具有引脚的高地址比特之外的地址比特提供预定值。
所描述的实施例允许存储模块控制器在具有可用于寻址的不同引脚配置的存储模块内操作,用以为不具有用来提供高地址比特的引脚的存储模块配置提供高阶地址比特。这样,存储模块控制器可以被部署且在诸如SO-DIMM和UDIMM的存储模块中操作,并且提供针对两种接口配置的完全寻址能力。
为CKE低信号提供扩展操作
所描述的实施例提供技术,用以当存储模块控制器在CKE引脚(诸如在图3的引脚输出简图中所示出的引脚64或66)上检测到时钟使能(CKE)低信号时允许在存储模块8中对在稍后时间要执行的功率管理操作进行预配置。这在激活CKE低信号时允许执行扩展系列的功率管理操作,诸如以进入预定义的睡眠状态。
在接收到CKE低信号时,根据先前发送的预CKE命令,能够激活不同的可能睡眠状态。这样的所指示的状态可以包括在高级配置和电源接口(Advanced Configuration andPower Interface,“ACPI”)规范中所规定的那些,诸如对于存储模块8的待机、睡眠或挂起的S3状态,该存储模块以较低的电平保持被供电;存储模块8的内容被保存到非易失性存储器且存储模块8断电的S4休眠状态;以及S5状态,其中存储模块8断电,同时向功率供应单元提供最小功率量。内容所保存到的非易失性存储器可以以各种形式出现,包括但不限于NAND(闪速)存储器、铁电随机存取存储器(FeTRAM)、基于纳米线的非易失性存储器、诸如相变存储器(PCM)的三维(3D)交叉点存储器、结合忆阻器技术的存储器、磁阻式随机存取存储器(MRAM)、自旋传输矩(STT)-MRAM。
图14图示由主机存储器控制器6和存储模块控制器20执行以促进使用CKE低信号的功率管理操作的操作的实施例。为了发起改变功率管理模式的操作,诸如改变成各种识别的睡眠模式之一,主机存储器控制器6经由总线10向存储模块控制器20发送(在块500)预CKE命令,其指示一个或更多个功率管理操作。在一个实施例中,预CKE命令可以指示一个或更多个特定操作或提供表示一系列操作的代码。例如,预CKE命令可以指示功率管理状态,诸如***状态或睡眠模式,例如ACPI睡眠模式状态的S3、S4和S5,其中存储模块控制器20可以将所述功率管理状态解释为一系列操作用以执行以实现该状态。
在接收到(在块502)预CKE命令时,存储模块控制器20设定功率管理操作寄存器26以指示预CKE命令中所指示的至少一个功率管理操作。在随后时间,当主机存储器控制器6想让存储模块8a、8b实现所指示的功率管理操作的状态改变时,主机存储器控制器6断言(在块506)CKE低信号56,例如在引脚64或66上为低(图2)。在检测到(在块508)CKE低信号时,存储模块控制器20确定(在块510)功率管理操作寄存器56是否指示操作用以执行,诸如指示睡眠模式状态或特定操作。如果无操作被指示,诸如零或缺省值,则存储模块控制器20可以执行(在块512)用于处理CKE低信号的缺省操作,诸如去激活内部时钟信号、预充电断电或自刷新操作。如果在寄存器26中指示操作或功率模式,则存储模块控制器20执行(在块514)在寄存器26中所指示的功率管理操作,以实现规定的功率管理状态,例如睡眠状态。
所描述的实施例提供用于配置存储模块控制器以在后续时间使用CKE低信号执行一系列功率管理操作的技术。在发送预CKE命令之后,主机存储器控制器6将断言CKE低信号用以响应于CKE低信号来触发与通常会被触发的相比更多的所涉及的功率管理操作以改变功率模式。在所描述的实施例的情况下,由于可以利用CKE低信号发起更多的所涉及的功率管理操作,诸如转变到睡眠模式,所以对于功率管理而言需要较少的信号。
提供用于写入命令的主机存储器控制器写入信用 所描述的实施例提供用以通过在返回的读取数据分组中包括写入信用来向主机存储器控制器6提供写入信用以使用用于发送写入命令来降低消耗总线上10的总线带宽的技术。
关于图1,主机存储器控制器6包括写入信用计数器9并且当写入信用计数器9具有正信用时将仅发送写入命令。当发送写入命令时使写入信用计数器9递减。对于每个存储模块8a、8b可以存在一个写入信用计数器9。存储模块8包括写入缓冲器28来缓冲所接收的写入数据,所述写入数据然后后来被降级到存储器芯片12、14、16、18中的存储元件中。存储模块控制器20具有写入信用计数器30,其指示用以返回到主机存储器控制器6的累积的写入信用。写入信用被用来调节写入缓冲器28的使用,因此主机存储器控制器6不发送写入数据以使写入缓冲器28溢出。
图15图示用于主机存储器控制器6和存储模块控制器20处理写入命令的操作的实施例。在生成写入命令时,主机存储器控制器6确定(在块602)写入信用计数器30是否大于0、非空。如果是这样,则向存储模块8发送(在块604)写入命令。如果(在块602)主机写入信用计数器9为空,则主机存储器控制器6等待直到信用可用于发送写入命令为止。
在接收到(在块610)写入命令时,存储模块控制器20将写入数据缓冲(在块612)在写入缓冲器30中。在使写入数据从写入缓冲器30降级(在块614)到存储器芯片12、14、16、18中的存储元件时,存储模块控制器20使写入信用计数器30递增,这指示信用返回到主机存储器控制器6以允许另一写入命令。如果(在块618)写入信用计数器30超过阈值,则存储模块控制器20生成(在块620)读取数据分组,其指示没有读取数据以及指示在写入信用计数器30中所指示的写入信用中的至少一个。将读取数据分组发送到(在块622)主机存储器控制器6以及将写入信用计数器30减少(在块624)所返回的信用数目。在某些实施例中,可以存在返回的有限数目个信用,因此写入信用计数器30可以或可以不减少至0。这样,如果在扩展的时间内不发送读取分组,则存储模块控制器20在没有数据的情况下发送读取数据分组来提供写入信用,因此主机存储器控制器8不缺乏写入信用并且不被阻止发送写入命令。在替代方案中,写入信用可以在除了读取数据分组之外的分组中返回。
图16图示由存储模块控制器20执行来生成读取数据分组以返回到主机存储器控制器4的操作的实施例。在生成(在块640)包括读取数据的读取数据分组以返回到来自主机存储器控制器6的读取请求时,如果(在块642)写入信用计数器30大于0,则存储模块控制器20在读取数据分组中指示(在块644)计数器30中的一些或所有的写入信用,以及向主机存储器控制器6发送(在块646)该读取数据分组。将写入信用计数器30减少(在块648)所返回的写入信用的数目,所述写入信用可以是或可以不是计数器30中的所有信用。这样,在读取数据分组中批处理写入信用以返回到主机存储器控制器6,因而优化用来传送信息的消息使用。由于存在固定的响应集,所以存储模块控制器20在一个分组中可以不指示所有的信用。例如,存储模块控制器20可能能够在读取分组中对于用以返回的写入信用数目指示0、1或4,或者如果在没有读取数据的情况下正返回写入信用(在图15中的块620)则对于非数据分组指示0、1、4或8。
图17图示由主机存储器控制器6执行来处理来自存储模块8的读取数据分组的操作的实施例。在接收到(在块660)读取数据分组时,如果(在块662)读取数据分组指示写入信用,则主机存储器控制器6使写入信用计数器9递增(在块664)在读取数据分组中所指示的写入信用数目。在使写入信用计数器9递增(来自块664)之后,或者如果不存在所提供的写入信用(来自块662的否分支),如果(在块666)读取数据分组包括读取数据,则处理读取数据(在块670)。在读取了该数据之后或者如果该分组不包括数据(来自块666的否分支),则丢弃读取数据分组(在块668)。
所描述的实施例提供技术,用于存储模块8采用通过对已经使用的其它消息或读取分组中的写入信用进行批处理使总线10带宽减小的方式将写入信用传送给主机存储器控制器6。
使用错误信号执行错误处理操作
所描述的实施例提供用于在存储模块8处简化的错误流的技术,用来与主机存储器控制器6协调错误处理。在所描述的实施例中,存储模块控制器20可以用信号通知在图2的引脚输出设计中所示出的错误引脚68ERR0#上的错误。存储模块控制器20可以断言错误引脚68上的错误(ERR)低信号,以用信号通知错误处理操作的开始,以及断言错误引脚68上的错误(ERR)高信号以用信号通知错误模式已经结束并且总线10被返回到准备好操作的初始状态。这样,用以在总线上10协调存储模块控制器20与主机存储器控制器6之间的错误处理的通信包括有限数目个信号以在更加广泛的错误处理协调的情况下避免消耗带宽。
图18图示用来当在存储模块8中检测到错误时管理错误处理操作的在存储模块控制器20与主机存储器控制器6之间的操作的实施例。在检测到(在块700)错误时,存储模块控制器20断言(在块702)总线10上的第一错误信号,例如引脚68(图2)上的ERR低信号,以便向主机存储器控制器6用信号通知错误处理操作已经开始。在检测到(在块704)第一错误信号(例如,引脚68上的ERR低信号)时,主机存储器控制器6发送(在块706)接收到第一错误信号的确认,并且然后响应于第一错误信号继续挂起(在块708)对具有错误的存储模块8的读取和写入操作。主机存储器控制器6此外还可以执行错误处理操作,诸如将写入信用计数器9设定(在块710)为最大值。这样,主机存储器控制器6假定,作为错误处理的一部分,所有的写入将被从写入缓冲器28充溢(flush)到存储器芯片12、14、16、18中的存储元件。
在接收到(在块712)来自接收第一错误信号的主机存储器控制器6的确认时,存储模块控制器20执行错误处理操作以使总线10返回到初始状态。这样的操作可以包括丢弃(在块716)所有待决读取请求、使在写入缓冲器28中的写入降级(在块718)到存储器芯片12、14、16、18中的存储元件、以及清除(在块722)用以返回的写入信用的写入信用计数器30。在完成错误处理操作之后,存储模块控制器20断言(在块724)第二错误信号,诸如错误引脚68上的ERR高,以用信号通知已经完成错误处理。在检测到(在块726)该第二错误信号时,主机存储器控制器6响应于检测到第二错误信号来重新开始(在块728)对存储模块的读取和写入操作。
在所描述的实施例的情况下,存储模块8和主机存储器控制器6与有限数目个信号协调并且在不互换经由总线所执行的事务和错误的众多通信的情况下执行完全错误处理操作。每个部件8和20假定响应于在存储模块8处的错误,另一个执行对总线10的完全重新初始化。
使用错误信号来指示写入请求错误和写入请求接受
所描述的实施例提供用于存储模块控制器20的技术,用来通过在正发送的写入请求的预定时间内不断言错误信号(诸如错误信号低)来向主机存储器控制器6指示写入请求成功地完成,以及通过断言错误信号来指示写入请求失败。在检测到错误信号时,如果在发送写入请求的预定时间内接收到错误信号,则主机存储器控制器6重新发送写入请求。这样,通过在完成每个写入请求之后不向主机存储器控制器6发送写入完成确认来保全总线10带宽。
图19图示由存储模块控制器20和主机存储器控制器6执行用来指示写入请求的接受以及写入请求中的错误的操作的实施例。当在正处理写入请求之一的情况下存储模块控制器20检测到(在块750)写入错误时,存储模块控制器20断言错误信号,诸如引脚68上的错误低信号ERR0#(图3)。存储模块控制器20保持错误高信号有效以指示没有发生错误。存储模块控制器20可以另外使用引脚68上的ERR0#信号来指示与写入请求错误不相关的错误。此外,存储模块控制器20通过在写入请求的预定时间内、诸如当发送或接收写入请求时不发送错误低信号来隐含地指示写入请求的成功完成。
在主机存储器控制器6检测到(在块754)错误低信号时,如果(在块756)在一个或多个写入请求的预定时间内接收到错误低信号,则主机存储器控制器20重新发送(在块758)在接收错误低信号的预定时间内发送的所确定的一个或多个请求。在某些实施例中,即使错误信号与写入错误无关,主机存储器控制器20也重新发送写入请求。这样,如果在预定时间内未接收到错误信号低,则主机存储器控制器20将写入请求处理为已经成功完成,以及如果在预定时间内接收到错误信号低,即使错误信号低正用信号通知与写入请求错误无关的错误,主机存储器控制器20也将写入请求处理为失败。
在重新发送写入请求(在块758)之后或者如果存在在预定时间内发送的写入请求(来自块756的否分支),主机存储器控制器6确定(在块760)是否存在与错误低信号相关的错误处理操作以与写入错误不相关地执行。如果是这样,则主机存储器控制器6执行(在块762)与写入错误不相关的错误处理操作。
在所描述的实施例的情况下,存储模块8在完成每个写入之后不发送写入完成确认。相反,如果在写入请求之后的预定时间内未接收到错误信号,则主机存储器控制器6假定写入完成。此外,如果在发送写入请求的预定时间内接收到错误信号,则即使存储模块控制器20在用信号通知了与写入错误不相关的错误,主机存储器控制器6也重新发送写入请求。
在存储模块中对读取数据加扰
所描述的实施例提供用于存储模块控制器20的技术,用来对写入数据进行解扰并且存储未加扰的写入数据并且然后对所存储的数据进行加扰以返回到读取请求,这包括读取地址的加扰。执行对正在总线10上传输用于读取和写入这二者的数据进行加扰以避免在传输中出现会在总线10上引起错误的令人烦恼的序列的可能性。
为了允许对读取数据加扰,主机存储器控制器6和存储模块控制器20分别维持加扰种子值11和32(如图1和2中所示)。两个种子值都被初始化成共同值,并且于是在处理了读取数据分组之后递增,使得递增的种子值32和11针对相同的读取数据分组被独立地设定成相同值,并且被用来响应于读取请求,对返回到主机存储器控制器6的读取数据分组中的读取请求数据加扰和解扰。此外,存储模块控制器20和主机存储器控制器6使用种子值11、32来实施用于相同数据加扰算法的电路逻辑,以对数据加扰和解扰,来去除总线10上发生令人烦恼的序列的似然性。在替代实施例中,主机存储器控制器6和存储模块控制器20可以通过本领域中已知的附加操作来更新种子值11和32。
图20图示由存储模块控制器20和主机存储器控制器6执行用来对横跨总线10传输的读取数据加扰的操作的实施例。在从主机存储器控制器6接收到(在块800)针对读取地址的读取请求时,存储模块控制器20从存储元件、例如存储模块8中的DRAM芯片12、14、16、18中检索(在块802)未加扰的读取数据。存储模块控制器20使用(在块804)加扰种子32对所请求的读取数据和读取地址加扰以包括在读取数据分组中来返回(在块806)到来自主机存储器控制器6的读取请求。然后(在块808)更新加扰器种子32。在一个实施例中,于是使用线性反馈移位寄存器(LFSR)电路以伪随机方式更新加扰器种子11、32。
在接收到读取分组时,主机存储器控制器6使用(在块812)加扰器种子11对读取数据分组解扰以确定读取数据和读取地址。然后确定(在块814)与未加扰的地址相关联的读取请求,使得可以将读取数据返回给该读取请求。(在块816)更新加扰器种子11。在替代实施例中,加扰器种子11和32可以在被用来加扰和解扰之前被更新。
图21图示由存储模块控制器20执行用来管理经加扰的写入数据的操作的实施例。在接收到(在块830)来自主机存储器控制器6的具有经加扰的写入数据的写入请求时,存储模块控制器20使用写入请求的写入地址对经加扰的写入数据解扰(在块832),并且然后将未加扰的数据写入(在块834)存储模块8中的存储器芯片12、14、16、18。
所描述的实施例允许存储模块控制器20存储未加扰的读取数据,并且然后通过使用种子值11和12对读取数据和地址这二者加扰以在总线10上返回,其中每个部件8和20更新所述种子值用于加扰和解扰操作。
选择多个总线接口配置之一用以使用
所描述的实施例提供接口参数34,用以在存储模块8中配置,所述接口参数34由存储器控制器20使用来确定由存储模块8使用的总线接口配置。这样,存储模块控制器20可以用不同的总线接口10操作,诸如具有不同总线宽度、即总线数据宽度的总线接口,诸如9比特接口、18比特接口、72比特接口等等。例如,可以实现存储模块控制器20的不同类型的DIMM可以具有不同的总线宽度配置,诸如不同数目的引脚,例如72、168、184、240等等,以实现不同的总线宽度。
图22图示由存储模块控制器20执行用来确定(在块900)接口参数34的操作的实施例。存储模块控制器20可以通过扫描总线10或者通过查询主机存储器控制器6在初始化期间确定总线10接口配置。可替代地,主机存储器控制器6或其它部件可以在初始化期间经由总线10传送关于总线10接口配置的信息,诸如总线宽度、引脚配置等等。在又一实施例中,存储模块8可以具有总线10外部的一个或更多个复用引脚(strapping pin),它们耦合到传送总线10接口配置的存储模块8。主机存储器控制器6或其它部件可以断言关于至少一个复用引脚的总线接口配置。如果仅存在两个所支持的总线接口配置用以传送,则可以使用一个复用引脚。如果存在存储模块控制器20支持的两个以上的所支持的总线接口配置,则可以存在附加引脚来指示两个以上的总线接口配置。在确定了(在块900)总线接口配置时,设定接口参数32用以指示所确定的接口参数。
图23图示由存储模块控制器20执行来基于总线接口配置处理传递请求的操作的实施例。在发起用来处理传递请求的操作(在块930)时,存储模块控制器20选择(在块932)与接口参数32对应的总线接口配置,其中所选择的总线配置可以包括第一、第二、第三或另外的总线配置中的一个,每个具有不同的总线带宽和引脚配置。例如,总线配置可以包括9比特、18比特和72比特数据总线,其中这些总线配置中的每一个可以具有不同数目个引脚。当处理传递请求和其它操作时使用该所选择的总线配置。
存储模块控制器20基于所选择的总线接口配置生成(在块934)多个传递以处理传递请求。例如,如果所选择的总线配置具有比由存储模块控制器20所支持的其它可能配置小的总线带宽,则该总线配置与具有较大总线带宽和更多引脚的所支持的总线接口配置所需要的相比,将需要更多传递来适应其较小的总线带宽。这样,存储模块控制器20可以基于所选择的总线接口配置的总线带宽将传递请求划分成不同数目的总线事务。所生成的传递在所选择的总线接口配置上被传送(在块936)。
所描述的实施例提供可在具有不同总线接口配置的存储模块8中操作的存储模块控制器20,以允许存储模块控制器20支持存储模块8的总线配置,其中所述存储模块以所述总线配置实现。
应当意识到的是,遍及该说明书中对“一个实施例”或“实施例”的引用意味着在本发明的至少一个实施例中包括结合该实施例所描述的特定特征、结构或特性。因此,强调和应当意识到的是,在该说明书的各个部分中对“实施例”或“一个实施例”或“可替代实施例”的两次或更多次引用未必全部指的是相同的实施例。此外,在本发明的一个或更多个实施例中可以适当地组合特定特征、结构或特性。
类似地,应当意识到的是,在本发明实施例的前述描述中,出于使本公开内容流线化的目的,有时将各种特征集合在单个实施例、附图或其描述中,有助于对各个发明性方面中的一个或更多个方面的理解。然而本公开内容的该方法不可被解释为反映以下意图:要求保护的主题需要比在每个权利要求中明白地陈述的特征更多的特征。相反地,由于以下权利要求反映了,发明性方面在于少于单个上述所公开的实施例的所有特征。因而,特此将详细描述之后的权利要求书明确合并到该详细描述中。

Claims (33)

1.一种在经由总线耦合到主机存储器控制器的存储模块中使用的设备,包括:
存储模块控制逻辑,其用来生成具有大于或等于最小脉冲宽度的脉冲宽度的至主机存储器控制器的请求信号,其中所述最小脉冲宽度包括保证所述主机存储器控制器检测所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了至所述主机存储器控制器的请求信号之外的至少一个功能,其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由所述主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
2.如权利要求1所述的设备,其中,所述请求信号致使所述主机存储器控制器生成准予信号,其中所述存储模块控制逻辑此外:
响应于接收到所述准予信号来向所述主机存储器控制器发送数据。
3.如权利要求2所述的设备,其中,所述请求信号的所述脉冲宽度致使所述主机存储器控制器响应于所述请求信号来执行由所述请求信号的所述脉冲宽度指示的除了发送所述准予信号之外的至少一个功能。
4.如权利要求1、2或3中任一项所述的设备,其中,生成具有比所述最小脉冲宽度大的至少第一脉冲宽度的请求信号指示至少第一功能,其中生成具有比所述第一脉冲宽度大的至少第二脉冲宽度的请求信号指示至少第二功能,其中生成具有比所述第二脉冲宽度大的至少第三脉冲宽度的请求信号指示至少第三功能。
5.如权利要求4所述的设备,其中,当生成具有所述第一脉冲宽度的请求信号时指示所述第一功能,其中当生成具有所述第二脉冲宽度的请求信号时指示所述第二功能,以及其中当生成具有所述第三脉冲宽度的请求信号时指示所述第三功能。
6.如权利要求1所述的设备,其中,所述最小脉冲宽度包括2个时钟以及其中以6个、10个和14个时钟的脉冲宽度之一的脉冲宽度生成所述请求信号,所述请求信号的所述脉冲宽度指示除了对所述请求信号的处理之外的用于所述主机存储器控制器执行的不同功能。
7.如权利要求1、2或3中任一项所述的设备,其中,所述请求信号包括时钟使能信号。
8.一种经由总线耦合到至少一个存储模块的设备,包括:
主机存储器控制器逻辑,其用来:
检测具有大于或等于最小脉冲宽度的脉冲宽度的来自所述存储模块的请求信号,其中所述最小脉冲宽度包括保证所述主机存储器控制器逻辑检测所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了至所述主机存储器控制器的请求信号之外的至少一个功能;
确定与所述请求信号的脉冲宽度对应的功能;以及
执行所确定的功能,
其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由所述主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
9.如权利要求8所述的设备,其中,所述主机存储器控制器逻辑此外:
响应于接收所述请求信号来生成准予信号以经由总线发送给所述存储模块。
10.如权利要求8或9中任一项所述的设备,其中,所述主机存储器控制器逻辑此外:
确定所述请求信号的所述脉冲宽度等于所述最小脉冲宽度,其中响应于所述请求信号的脉冲宽度等于所述最小脉冲宽度,所确定的功能包括没有附加功能的请求信号。
11.如权利要求8或9中任一项所述的设备,其中,所述主机存储器控制器逻辑此外:
确定所述请求信号的所述脉冲宽度,其中所确定的功能包括以下中的至少一个:
响应于所确定的脉冲宽度包括大于或等于所述最小脉冲宽度的至少第一脉冲宽度而包括第一功能;
响应于所确定的脉冲宽度包括大于所述第一脉冲宽度的至少第二脉冲宽度而包括第二功能;以及
响应于所确定的脉冲宽度包括大于所述第二脉冲宽度的至少第三脉冲宽度而包括第三功能。
12.如权利要求11所述的设备,其中当生成具有所述第一脉冲宽度的请求信号时仅指示所述第一功能,其中当生成具有所述第二脉冲宽度的请求信号时指示所述第二功能以及其中当生成具有所述第三脉冲宽度的请求信号时指示所述第三功能。
13.一种在经由总线耦合到主机存储器控制器的存储模块中执行的方法,包括:
生成具有大于或等于最小脉冲宽度的脉冲宽度的至所述主机存储器控制器的请求信号,其中所述最小脉冲宽度包括保证所述主机存储器控制器检测所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了至所述主机存储器控制器的请求信号之外的至少一个功能,
其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由所述主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
14.如权利要求13所述的方法,其中,所述请求信号致使所述主机存储器控制器生成准予信号,此外包括:
响应于接收到所述准予信号来向所述主机存储器控制器发送数据。
15.如权利要求14所述的方法,其中,所述脉冲宽度致使所述主机存储器控制器响应于所述请求信号来执行由所述请求信号的所述脉冲宽度指示的除了发送所述准予信号之外的至少一个功能。
16.如权利要求13、14或15中任一项所述的方法,其中,等于所述最小脉冲宽度的脉冲宽度指示仅所述请求信号而没有附加功能。
17.如权利要求13、14或15中任一项所述的方法,其中,生成具有比所述最小脉冲宽度大的至少第一脉冲宽度的请求信号指示至少第一功能,其中生成具有比所述第一脉冲宽度大的至少第二脉冲宽度的请求信号指示至少第二功能,其中生成具有比所述第二脉冲宽度大的至少第三脉冲宽度的请求信号指示至少第三功能。
18.如权利要求17所述的方法,其中,当生成具有所述第一脉冲宽度的请求信号时指示所述第一功能,其中当生成具有所述第二脉冲宽度的请求信号时指示所述第二功能,以及其中当生成具有所述第三脉冲宽度的请求信号时指示所述第三功能。
19.一种用于与经由总线耦合到的至少一个存储模块通信的方法,包括:
检测来自存储模块的具有大于或等于最小脉冲宽度的脉冲宽度的请求信号,其中所述最小脉冲宽度包括保证检测到所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了所述请求信号之外的至少一个功能;
确定与所述请求信号的脉冲宽度对应的功能;以及
执行所确定的功能,
其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
20.如权利要求19所述的方法,此外包括:
响应于接收到请求信号来生成准予信号以经由总线发送给所述存储模块。
21.如权利要求19或20中任一项所述的方法,此外包括:
确定所述请求信号的所述脉冲宽度等于所述最小脉冲宽度,其中所确定的功能包括响应于所述请求信号的脉冲宽度等于所述最小脉冲宽度的没有附加功能的请求信号。
22.如权利要求21所述的方法,此外包括:
确定所述请求信号的所述脉冲宽度,其中所确定的功能包括以下中的至少一个:
响应于所确定的脉冲宽度包括大于或等于所述最小脉冲宽度的至少第一脉冲宽度而包括第一功能;
响应于所确定的脉冲宽度包括大于所述第一脉冲宽度的至少第二脉冲宽度而包括第二功能;以及
响应于所确定的脉冲宽度包括大于所述第二脉冲宽度的至少第三脉冲宽度而包括第三功能。
23.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求13-22中任一项所述的方法。
24.一种在经由总线耦合到主机存储器控制器的存储模块中执行的***,包括:
用于生成具有大于或等于最小脉冲宽度的脉冲宽度的至所述主机存储器控制器的请求信号的部件,其中所述最小脉冲宽度包括保证所述主机存储器控制器检测所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了至所述主机存储器控制器的请求信号之外的至少一个功能,
其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由所述主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
25.如权利要求24所述的***,其中,所述请求信号致使所述主机存储器控制器生成准予信号,此外包括:
用于响应于接收到所述准予信号来向所述主机存储器控制器发送数据的部件。
26.如权利要求25所述的***,其中,所述请求信号的所述脉冲宽度致使所述主机存储器控制器响应于所述请求信号来执行由所述请求信号的所述脉冲宽度指示的除了发送所述准予信号之外的至少一个功能。
27.如权利要求24、25或26中任一项所述的***,其中,等于所述最小脉冲宽度的脉冲宽度指示仅所述请求信号而没有附加功能。
28.如权利要求24、25或26中任一项所述的***,其中,生成具有比所述最小脉冲宽度大的至少第一脉冲宽度的请求信号指示至少第一功能,其中生成具有比所述第一脉冲宽度大的至少第二脉冲宽度的请求信号指示至少第二功能,其中生成具有比所述第二脉冲宽度大的至少第三脉冲宽度的请求信号指示至少第三功能。
29.如权利要求28所述的***,其中,当生成具有所述第一脉冲宽度的请求信号时指示所述第一功能,其中当生成具有所述第二脉冲宽度的请求信号时指示所述第二功能,以及其中当生成具有所述第三脉冲宽度的请求信号时指示所述第三功能。
30.一种用于与经由总线耦合到的至少一个存储模块通信的***,包括:
用于检测来自存储模块的具有大于或等于最小脉冲宽度的脉冲宽度的请求信号的部件,其中所述最小脉冲宽度包括保证检测到所述请求信号所需的多个时钟周期,以及其中所述请求信号的脉冲宽度指示除了所述请求信号之外的至少一个功能;
用于确定与所述请求信号的脉冲宽度对应的功能的部件;以及
用于执行所确定的功能的部件,
其中,所生成的脉冲宽度包括等于所述最小脉冲宽度或是所述最小脉冲宽度倍数的多个脉冲宽度之一,其中所述多个脉冲宽度由保证由主机存储器控制器检测所述脉冲宽度所需的最小数目个时钟周期分隔开,以及其中所生成的不同脉冲宽度将不同的功能编码在所述请求信号中。
31.如权利要求30所述的***,此外包括:
响应于接收到请求信号来生成准予信号以经由总线发送给所述存储模块。
32.如权利要求30或31中任一项所述的***,此外包括:
用于确定所述请求信号的所述脉冲宽度等于所述最小脉冲宽度的部件,其中所确定的功能包括响应于所述请求信号的脉冲宽度等于所述最小脉冲宽度的没有附加功能的请求信号。
33.如权利要求32所述的***,此外包括:
用于确定所述请求信号的所述脉冲宽度的部件,其中所确定的功能包括以下中的至少一个:
响应于所确定的脉冲宽度包括大于或等于所述最小脉冲宽度的至少第一脉冲宽度而包括第一功能;
响应于所确定的脉冲宽度包括大于所述第一脉冲宽度的至少第二脉冲宽度而包括第二功能;以及
响应于所确定的脉冲宽度包括大于所述第二脉冲宽度的至少第三脉冲宽度而包括第三功能。
CN201380073070.3A 2013-03-15 2013-03-15 存储*** Active CN104981872B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/032633 WO2014143056A1 (en) 2013-03-15 2013-03-15 A memory system

Publications (2)

Publication Number Publication Date
CN104981872A CN104981872A (zh) 2015-10-14
CN104981872B true CN104981872B (zh) 2018-11-06

Family

ID=51537392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380073070.3A Active CN104981872B (zh) 2013-03-15 2013-03-15 存储***

Country Status (8)

Country Link
US (11) US9990246B2 (zh)
EP (1) EP2973571B1 (zh)
JP (1) JP6139010B2 (zh)
KR (2) KR101670917B1 (zh)
CN (1) CN104981872B (zh)
BR (4) BR122016006764B1 (zh)
RU (1) RU2628124C2 (zh)
WO (1) WO2014143056A1 (zh)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990246B2 (en) 2013-03-15 2018-06-05 Intel Corporation Memory system
WO2014193574A1 (en) * 2013-05-13 2014-12-04 Rambus Inc. Buffer circuit with data bit inversion
US9740423B2 (en) * 2013-07-26 2017-08-22 Hitachi, Ltd. Computer system
IN2013CH04449A (zh) * 2013-09-30 2015-04-03 Empire Technology Dev Llc
US9484070B2 (en) * 2014-04-30 2016-11-01 Micron Technology, Inc. Apparatuses supporting multiple interface types and methods of operating the same
WO2016081192A1 (en) * 2014-11-20 2016-05-26 Rambus Inc. Memory systems and methods for improved power management
US10528410B2 (en) * 2014-12-16 2020-01-07 Intel Corporation Apparatus, method and system to exchange error information in a unified protocol communication
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
WO2016122498A1 (en) 2015-01-28 2016-08-04 Hewlett-Packard Development Company, L.P. Supporting differfent types of memory devices
US9594689B2 (en) * 2015-02-09 2017-03-14 International Business Machines Corporation Designated cache data backup during system operation
US10387259B2 (en) 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
JP2017045311A (ja) * 2015-08-27 2017-03-02 株式会社東芝 メモリシステム
US10031677B1 (en) * 2015-10-14 2018-07-24 Rambus Inc. High-throughput low-latency hybrid memory module
CN106611608B (zh) * 2015-10-23 2019-01-15 群联电子股份有限公司 存储器控制电路单元、存储器储存装置与数据传输方法
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
JP2017097825A (ja) * 2015-11-16 2017-06-01 株式会社東芝 ホスト機器および拡張デバイス
US10503686B2 (en) * 2015-12-09 2019-12-10 Microchip Technology Incorporated SPI interface with automatic slave select generation
US9785359B2 (en) * 2016-02-26 2017-10-10 Intel Corporation Sending packets using optimized PIO write sequences without sfences and out of order credit returns
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US10621119B2 (en) 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10310547B2 (en) * 2016-03-05 2019-06-04 Intel Corporation Techniques to mirror a command/address or interpret command/address logic at a memory device
US10152237B2 (en) * 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
KR102525229B1 (ko) 2016-05-13 2023-04-25 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 시스템
US10163485B2 (en) * 2016-05-25 2018-12-25 Mediatek Inc. Memory module, memory controller and associated control method for read training technique
US10198204B2 (en) 2016-06-01 2019-02-05 Advanced Micro Devices, Inc. Self refresh state machine MOP array
US10459855B2 (en) 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface
KR20180021284A (ko) * 2016-08-18 2018-03-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US20180059933A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Electrically-Buffered NV-DIMM and Method for Use Therewith
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
CN107885671B (zh) * 2016-09-30 2021-09-14 华为技术有限公司 一种非易失性内存的持久化方法和计算设备
US10521351B2 (en) * 2017-01-12 2019-12-31 International Business Machines Corporation Temporarily suppressing processing of a restrained storage operand request
US10180793B2 (en) * 2017-01-31 2019-01-15 Hewlett Packard Enterprise Development Lp Performance attributes for memory
US10846018B2 (en) * 2017-04-05 2020-11-24 Mediatek Inc. Memory device, memory controller and associated memory system operated according to selected clock signals
JP6780897B2 (ja) 2017-04-14 2020-11-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリリフレッシュ技術及びコンピュータシステム
CN107291421A (zh) * 2017-06-09 2017-10-24 中国电子科技集团公司第四十研究所 一种可编程图形序列发生***及方法
US10162406B1 (en) * 2017-08-31 2018-12-25 Micron Technology, Inc. Systems and methods for frequency mode detection and implementation
JP2019046051A (ja) * 2017-08-31 2019-03-22 東芝メモリ株式会社 メモリ装置およびデータ処理装置
US10908820B2 (en) * 2017-09-14 2021-02-02 Samsung Electronics Co., Ltd. Host-based and client-based command scheduling in large bandwidth memory systems
US10996888B2 (en) * 2017-10-31 2021-05-04 Qualcomm Incorporated Write credits management for non-volatile memory
US10769074B2 (en) 2017-11-09 2020-09-08 Microsoft Technology Licensing, Llc Computer memory content movement
DE102018124375A1 (de) * 2017-11-21 2019-05-23 Samsung Electronics Co., Ltd. Betriebsverfahren eines signalempfängers, pulsbreitensteuerungund elektronische vorrichtung mit denselben
KR102370278B1 (ko) * 2017-11-30 2022-03-07 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법
KR102493964B1 (ko) 2017-12-18 2023-02-01 삼성전자주식회사 스토리지 컨트롤러, 그것을 포함하는 스토리지 장치, 및 스토리지 컨트롤러의 동작 방법
US11226768B2 (en) * 2018-01-04 2022-01-18 Montage Technology Co., Ltd. Memory controller and method for accessing memory module
US10929029B2 (en) 2018-01-04 2021-02-23 Montage Technology Co., Ltd. Memory controller and method for accessing memory modules and processing sub-modules
CN110008147B (zh) * 2018-01-04 2021-11-19 澜起科技股份有限公司 存储器控制器以及用于对存储模块进行访问的方法
US11048645B2 (en) 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US10714159B2 (en) * 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10963404B2 (en) 2018-06-25 2021-03-30 Intel Corporation High bandwidth DIMM
US10884958B2 (en) 2018-06-25 2021-01-05 Intel Corporation DIMM for a high bandwidth memory channel
KR102029035B1 (ko) * 2018-07-26 2019-10-07 주식회사 우리비전 메인 보드 리버스 인터커넥션을 통한 메모리 모듈의 실장 테스트에 사용되는 메모리 모듈을 수납하는 메인 보드
US10782916B2 (en) 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US11074007B2 (en) * 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system
US10969994B2 (en) 2018-08-08 2021-04-06 Micron Technology, Inc. Throttle response signals from a memory system
US11409436B2 (en) 2018-08-08 2022-08-09 Micron Technology, Inc. Buffer management in memory systems for read and write requests
US11061751B2 (en) * 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US11080210B2 (en) * 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
US10740031B2 (en) 2018-09-25 2020-08-11 International Business Machines Corporation Interface scheduler for a distributed memory system
KR20200040183A (ko) 2018-10-08 2020-04-17 박흥균 라인 형태의 전자빔 방출 장치
US11650943B2 (en) * 2018-10-16 2023-05-16 Micron Technology, Inc. Flexible bus management
US10901657B2 (en) 2018-11-29 2021-01-26 International Business Machines Corporation Dynamic write credit buffer management of non-volatile dual inline memory module
US11403035B2 (en) * 2018-12-19 2022-08-02 Micron Technology, Inc. Memory module including a controller and interfaces for communicating with a host and another memory module
US10606794B1 (en) * 2019-05-14 2020-03-31 Infineon Technologies Ag Clock signal monitor for slave device on a master-slave bus
KR20200142219A (ko) * 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11249539B2 (en) 2019-06-28 2022-02-15 Integrated Device Technology, Inc. DDR5 client PMIC power up sequence and state transitions
US11699471B2 (en) 2019-09-25 2023-07-11 Intel Corporation Synchronous dynamic random access memory (SDRAM) dual in-line memory module (DIMM) having increased per data pin bandwidth
JP7419010B2 (ja) * 2019-10-04 2024-01-22 キヤノン株式会社 データ処理システムおよびデータ処理システムの制御方法
US11656673B2 (en) * 2019-12-30 2023-05-23 Micron Technology, Inc. Managing reduced power memory operations
US11182312B2 (en) 2020-04-02 2021-11-23 Micron Technology, Inc. Memory sub-system manufacturing mode
US11372544B2 (en) * 2020-09-24 2022-06-28 Netapp, Inc. Write type based crediting for block level write throttling to control impact to read input/output operations
US11709538B2 (en) * 2020-11-19 2023-07-25 Micron Technology, Inc. Minimizing power loss and reset time with media controller suspend
US11609868B1 (en) * 2020-12-31 2023-03-21 Waymo Llc Control calibration timing to avoid memory write blackout period
US11842056B2 (en) * 2021-10-25 2023-12-12 EMC IP Holding Company, LLC System and method for allocating storage system resources during write throttling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1433025A (zh) * 2001-12-19 2003-07-30 三星电子株式会社 用于控制半导体存储设备的ac定时参数的电路及其方法
CN102096611A (zh) * 2009-12-09 2011-06-15 英特尔公司 用于存储器装置中的差错管理的方法和***
CN102737718A (zh) * 2011-03-30 2012-10-17 联发科技股份有限公司 存储控制器与存储***
US8410819B2 (en) * 2010-12-29 2013-04-02 Stmicroelectronics, Inc. Programmable pulse width discriminator

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4148099A (en) * 1978-04-11 1979-04-03 Ncr Corporation Memory device having a minimum number of pins
US5448706A (en) * 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
JP3369227B2 (ja) 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
US5555250A (en) 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
US5784390A (en) 1995-06-19 1998-07-21 Seagate Technology, Inc. Fast AtA-compatible drive interface with error detection and/or error correction
US5805905A (en) * 1995-09-06 1998-09-08 Opti Inc. Method and apparatus for arbitrating requests at two or more levels of priority using a single request line
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
JPH1078934A (ja) 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US6260101B1 (en) 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
DE69836437T2 (de) 1997-12-05 2007-09-27 Intel Corporation, Santa Clara Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
US6088762A (en) 1998-06-19 2000-07-11 Intel Corporation Power failure mode for a memory controller
US6260127B1 (en) 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6457081B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus
US7363422B2 (en) * 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US6683884B1 (en) 2000-03-31 2004-01-27 Intel Corporation Shared credit round robin queuing
US7100028B2 (en) 2000-08-09 2006-08-29 Advanced Micro Devices, Inc. Multiple entry points for system call instructions
US6625685B1 (en) 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6931128B2 (en) 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US6658523B2 (en) 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6615217B2 (en) * 2001-06-29 2003-09-02 Bull Hn Information Systems Inc. Method and data processing system providing bulk record memory transfers across multiple heterogeneous computer systems
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US7076678B2 (en) 2002-02-11 2006-07-11 Micron Technology, Inc. Method and apparatus for data transfer
US6781911B2 (en) 2002-04-09 2004-08-24 Intel Corporation Early power-down digital memory device and method
US7469420B2 (en) 2002-05-21 2008-12-23 Thomson Licensing Key transport tamper protection
JP4222803B2 (ja) * 2002-09-11 2009-02-12 Necエレクトロニクス株式会社 データ処理装置およびデータ処理回路
KR100524952B1 (ko) 2003-03-07 2005-11-01 삼성전자주식회사 기록 매체의 데이터 보호 방법 및 이를 이용한 디스크드라이브
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
KR100475125B1 (ko) 2003-06-21 2005-03-14 삼성전자주식회사 데이터 버스 폭 변경이 자유로운 이동형 저장 장치 및이에 대한 데이터 버스 폭 설정 방법
JP2005025903A (ja) 2003-07-01 2005-01-27 Nec Micro Systems Ltd 半導体記憶装置
DE602004019797D1 (de) * 2003-09-10 2009-04-16 Qualcomm Inc Schnittstelle für hohe datenrate
US7177989B1 (en) 2003-12-31 2007-02-13 Intel Corporation Retry of a device read transaction
EP1735794B1 (en) 2004-03-31 2011-04-27 Micron Technology, Inc. Reconstruction of signal timing in integrated circuits
US7579683B1 (en) * 2004-06-29 2009-08-25 National Semiconductor Corporation Memory interface optimized for stacked configurations
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7660938B1 (en) 2004-10-01 2010-02-09 Super Talent Electronics, Inc. Flash card reader and data exchanger utilizing low power extended USB protocol without polling
US7525986B2 (en) 2004-10-28 2009-04-28 Intel Corporation Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US7571296B2 (en) 2004-11-11 2009-08-04 Nvidia Corporation Memory controller-adaptive 1T/2T timing control
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
US20060117160A1 (en) * 2004-12-01 2006-06-01 Intel Corporation Method to consolidate memory usage to reduce power consumption
US9384818B2 (en) * 2005-04-21 2016-07-05 Violin Memory Memory power management
US7319612B2 (en) * 2005-05-18 2008-01-15 Intel Corporation Performing multiple read operations via a single read command
JP2007004522A (ja) 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US8335894B1 (en) * 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8055833B2 (en) * 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
DE102005035207A1 (de) 2005-07-27 2007-02-01 Siemens Ag Verfahren und Vorrichtung zur Datenübertragung zwischen zwei relativ zueinander bewegten Komponenten
US7426607B2 (en) 2005-08-05 2008-09-16 Infineon Technologies Ag Memory system and method of operating memory system
US20110022850A1 (en) 2006-07-26 2011-01-27 Hondar Lee Access control for secure portable storage device
US8272781B2 (en) 2006-08-01 2012-09-25 Intel Corporation Dynamic power control of a memory device thermal sensor
US7900079B2 (en) 2006-08-11 2011-03-01 International Business Machines Corporation Data capture window synchronizing method for generating data bit sequences and adjusting capture window on parallel data paths
US7761725B2 (en) 2006-08-30 2010-07-20 Ati Technologies Ulc Clock generation for synchronous circuits with slow settling control signals
JP5056762B2 (ja) 2006-10-24 2012-10-24 富士通株式会社 データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム
US8122202B2 (en) 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
US7624225B2 (en) 2007-03-22 2009-11-24 International Business Machines Corporation System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US7624211B2 (en) 2007-06-27 2009-11-24 Micron Technology, Inc. Method for bus width negotiation of data storage devices
US7787375B2 (en) 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US7882324B2 (en) * 2007-10-30 2011-02-01 Qimonda Ag Method and apparatus for synchronizing memory enabled systems with master-slave architecture
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
US8045416B2 (en) 2008-03-05 2011-10-25 Micron Technology, Inc. Method and memory device providing reduced quantity of interconnections
US8255783B2 (en) 2008-04-23 2012-08-28 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US8154918B2 (en) 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory
TWI370361B (en) * 2008-08-21 2012-08-11 Ili Technology Corp Memory access controlling apparatus and control method thereof
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US20120030396A1 (en) 2009-03-02 2012-02-02 Zhichun Zhu Decoupled Memory Modules: Building High-Bandwidth Memory Systems from Low-Speed Dynamic Random Access Memory Devices
TWI416523B (zh) 2009-06-10 2013-11-21 Silicon Motion Inc 非揮發性記憶體之寫入錯誤管理方法、非揮發性記憶體、記憶卡、以及非揮發性記憶體之控制器
KR101585213B1 (ko) 2009-08-18 2016-01-13 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8862966B2 (en) * 2009-09-09 2014-10-14 Advanced Micro Devices, Inc. Adjustment of write timing based on error detection techniques
US8996785B2 (en) 2009-09-21 2015-03-31 Aplus Flash Technology, Inc. NAND-based hybrid NVM design that integrates NAND and NOR in 1-die with serial interface
KR101620348B1 (ko) 2009-10-16 2016-05-12 삼성전자주식회사 내부전원 발생장치, 이를 구비한 멀티채널 메모리 장치 및 이를 채용한 프로세싱 시스템
JP5421152B2 (ja) 2010-03-08 2014-02-19 ルネサスエレクトロニクス株式会社 半導体集積回路
JP5139465B2 (ja) 2010-03-31 2013-02-06 株式会社東芝 メモリチップ、情報記憶システム、読み出し装置
US8339891B2 (en) 2010-05-25 2012-12-25 Lsi Corporation Power savings and/or dynamic power management in a memory
US8898511B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8972723B2 (en) 2010-07-14 2015-03-03 Sandisk Technologies Inc. Storage device and method for providing a partially-encrypted content file to a host device
MX2013002773A (es) * 2010-09-16 2013-04-05 Apple Inc Controlador de memoria con multiples puertos con puertos asociados con las clases de trafico.
US8615638B2 (en) 2010-10-08 2013-12-24 Qualcomm Incorporated Memory controllers, systems and methods for applying page management policies based on stream transaction information
JP5032647B2 (ja) 2010-11-26 2012-09-26 株式会社東芝 データ記憶装置、コントロール装置及び暗号化方法
US8321649B2 (en) 2011-03-18 2012-11-27 Freescale Semiconductor, Inc. Memory controller address and data pin multiplexing
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
KR101451369B1 (ko) 2011-04-29 2014-10-16 엘에스아이 코포레이션 암호화된 전송 고체 상태 디스크 제어기
JP5720470B2 (ja) 2011-07-27 2015-05-20 富士通株式会社 処理装置,試験信号生成装置及び試験信号生成方法
US9025409B2 (en) * 2011-08-05 2015-05-05 Rambus Inc. Memory buffers and modules supporting dynamic point-to-point connections
US9047418B2 (en) * 2011-11-22 2015-06-02 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication
US9330031B2 (en) 2011-12-09 2016-05-03 Nvidia Corporation System and method for calibration of serial links using a serial-to-parallel loopback
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US8638153B2 (en) * 2012-03-29 2014-01-28 Qualcomm Incorporated Pulse clock generation logic with built-in level shifter and programmable rising edge and pulse width
US8667205B2 (en) 2012-04-30 2014-03-04 International Business Machines Corporation Deadlock resolution in end-to-end credit protocol
JP5836903B2 (ja) * 2012-09-04 2015-12-24 株式会社東芝 情報処理装置
US8730750B1 (en) * 2012-10-28 2014-05-20 Lsi Corporation Memory device with control circuitry for generating a reset signal in read and write modes of operation
US20140122777A1 (en) 2012-10-31 2014-05-01 Mosaid Technologies Incorporated Flash memory controller having multi mode pin-out
US9990246B2 (en) 2013-03-15 2018-06-05 Intel Corporation Memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1433025A (zh) * 2001-12-19 2003-07-30 三星电子株式会社 用于控制半导体存储设备的ac定时参数的电路及其方法
CN102096611A (zh) * 2009-12-09 2011-06-15 英特尔公司 用于存储器装置中的差错管理的方法和***
US8410819B2 (en) * 2010-12-29 2013-04-02 Stmicroelectronics, Inc. Programmable pulse width discriminator
CN102737718A (zh) * 2011-03-30 2012-10-17 联发科技股份有限公司 存储控制器与存储***

Also Published As

Publication number Publication date
US10579462B2 (en) 2020-03-03
BR122016006765B1 (pt) 2022-02-01
US20160098195A1 (en) 2016-04-07
BR122016007765B1 (pt) 2022-03-03
US10198306B2 (en) 2019-02-05
US20160098366A1 (en) 2016-04-07
EP2973571A4 (en) 2016-11-02
BR122016006765A2 (pt) 2019-08-27
RU2015134146A (ru) 2017-02-17
US20160132269A1 (en) 2016-05-12
US10783028B2 (en) 2020-09-22
KR101670917B1 (ko) 2016-11-01
US9990246B2 (en) 2018-06-05
US10152370B2 (en) 2018-12-11
US20150149735A1 (en) 2015-05-28
US10747605B2 (en) 2020-08-18
EP2973571B1 (en) 2020-04-22
KR20150120359A (ko) 2015-10-27
CN104981872A (zh) 2015-10-14
EP2973571A1 (en) 2016-01-20
US10795755B2 (en) 2020-10-06
BR122016006764B1 (pt) 2022-02-01
US20160179742A1 (en) 2016-06-23
JP6139010B2 (ja) 2017-05-31
US20160210187A1 (en) 2016-07-21
US20160147678A1 (en) 2016-05-26
US20160148653A1 (en) 2016-05-26
BR112015019459A2 (pt) 2017-07-18
BR122016006764A2 (pt) 2019-08-27
KR20160127168A (ko) 2016-11-02
WO2014143056A1 (en) 2014-09-18
US20160099044A1 (en) 2016-04-07
US20160211973A1 (en) 2016-07-21
US9852021B2 (en) 2017-12-26
US20160179604A1 (en) 2016-06-23
BR112015019459B1 (pt) 2021-10-19
JP2016514320A (ja) 2016-05-19
BR122016007765A2 (pt) 2019-08-27
US10185618B2 (en) 2019-01-22
RU2628124C2 (ru) 2017-08-15

Similar Documents

Publication Publication Date Title
CN104981872B (zh) 存储***
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
CN101976583B (zh) 极性驱动的动态片内终结
CN107481746A (zh) 用于操作ddr可兼容异步存储器模块的***和方法
CN107533509A (zh) 存储器设备特定的自刷新进入和退出
CN107153625A (zh) 与同步ddr协议可兼容的异步通信协议
CN101692219A (zh) 通过模块上寄存器的主动终止控制
TW200921671A (en) Memory control device and semiconductor processing apparatus
KR20150145465A (ko) 메모리 시스템 및 이의 동작 방법
CN102236622A (zh) 提高动态存储器带宽利用率的动态存储器控制器及方法
JP6370958B2 (ja) デバイス
CN115374030A (zh) 具有存储器发起的命令***的存储器以及相关联***、装置和方法
US20220365889A1 (en) Memory with a communications bus for device-to-controller communication, and associated systems, devices, and methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant