CN102591783B - 可编程存储器控制器 - Google Patents

可编程存储器控制器 Download PDF

Info

Publication number
CN102591783B
CN102591783B CN201110342779.1A CN201110342779A CN102591783B CN 102591783 B CN102591783 B CN 102591783B CN 201110342779 A CN201110342779 A CN 201110342779A CN 102591783 B CN102591783 B CN 102591783B
Authority
CN
China
Prior art keywords
primitive
command
memory controller
command operation
data structure
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.)
Expired - Fee Related
Application number
CN201110342779.1A
Other languages
English (en)
Other versions
CN102591783A (zh
Inventor
霍华德·采
德米特里·维舍茨基
尼尔·迈宁格
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN102591783A publication Critical patent/CN102591783A/zh
Application granted granted Critical
Publication of CN102591783B publication Critical patent/CN102591783B/zh
Expired - Fee Related 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
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Read Only Memory (AREA)

Abstract

本发明一个实施例中的存储器控制器包括命令翻译数据结构430、前端420和后端440。该命令翻译数据结构430将命令操作映射为基元,其中所述基元由为一个或多个存储器设备所确定的命令操作分解得到。前端420从处理单元接收命令操作并使用所述命令翻译数据结构将每一个命令操作翻译为一个或多个相应基元的集合。后端440针对每一个接收到的命令操作将一个或多个相应基元的集合输出到给定的存储器设备。

Description

可编程存储器控制器
技术领域
本发明涉及可编程存储器控制器。
背景技术
常用的电子设备通常包括一种或多种类型的存储器。一般来说,利用存储器控制器(memory controller)对电子设备的一个或多个处理单元与一个或多个存储器单元之间的数据流进行管理。在常用电子设备中存储器的常见类型为闪存(flash memory)。闪存被设计为在存储器的大部分分区内可擦除和可编程。
在常用技术中,存在用于存储器设备的多种架构、命令集、协议、总线接口以及诸如此类的标准。例如,还存在用于闪存设备的多种标准,诸如legacy、ONFI、Samsung和JEDEC。这些闪存标准各有细微差别,并且每个都为供应商提供特定的命令。常用的存储器控制器通常使用单个的存储器标准或多个标准的小型子集来运行。架构、命令集、协议、信号接口定义等等的不同,使常用的存储器控制器无法支持对不同的存储器设备进行存储器访问。因此,对于存储器控制器来说,持续需要去支持多种标准。
发明内容
最好通过参考以下描述和用于示出本技术实施例的附图来理解本技术。
本技术的实施例针对可编程存储器控制器及其设定和操作。在设定实施例中,确定用于一个或多个存储器设备的命令集。该一个或多个存储器设备可包括一个或多个闪存设备,具有一种或多种不同的架构、遵循不同的标准、利用不同的通信协议、具有不同的接口和/或诸如此类。将命令操作的每一个都分解为一个或多个基元(primitive)。该基元可包括命令周期、地址周期和/或数据周期。将该命令操作与该一个或多个基元之间的映射存储在存储器控制器的命令翻译数据结构中。
在操作实施例中,使用一个或多个命令操作与一个或多个基元之间的映射对存储器控制器的命令翻译数据结构进行编程。该一个或多个基元由被确定用于一个或多个存储器设备的一个或多个命令操作分解得到。此后,该存储器控制器从一个或多个处理单元接收命令操作。由该存储器控制器使用该命令翻译数据结构将每一个接收到的命令操作翻译为一个或多个相应基元的集合。然后该存储器控制器针对每一个接收到的命令操作输出该由一个或多个相应基元组成的集合。将合适的基元输出到合适的存储器设备和/或合适的处理单元。
附图说明
本技术的实施例通过示例的方式而非限制性的方式示出,在附图中相同附图标记表示相似元素,其中:
图1示出了根据本技术一实施例,存储器控制器设定过程的流程图。
图2示出了根据本技术一实施例,包括存储器控制器的示范性系统的框图。
图3示出了根据本技术一实施例,将命令操作分解为基元的示例。
图4示出了根据本技术一实施例,示范性存储器控制器的框图。
图5示出了根据本技术一实施例,存储器控制器的操作的流程图。
图6示出了根据本技术一实施例,交叉存取基元和/或宏的一个或多个集合的示例。
具体实施方式
现在将详细参考根据本技术的实施例,其示例示出在附图中。虽然本技术将结合这些实施例加以描述,但可以理解的是它们并非意图将本发明限定于这些实施例。相反,本发明意图覆盖由随附权利要求所限定的本发明范围内所包括的替换、修改和等同物。此外,在本技术的以下详细描述中,提出了许多特定细节以提供对于本技术的彻底理解。但是,可以理解的是本发明可以省去这些特定细节而实施。在其他实例中,为了避免不必要的模糊本技术的各方面,并未对公知的方法、程序、组件和电路加以详细描述。
本技术的实施例针对可支持不同的命令集、协议和接口以及可支持将来新的命令集、协议和接口的可编程存储器控制器技术。此外,对每个命令来说,实施例减少了在处理器和存储器控制器之间通过的数据量。
参考图1,示出了根据本技术一个实施例的存储器控制器设定过程。该存储器控制器的设定过程将参考图2得到进一步的解释,该图2示出了包括存储器控制器的示范性系统。该存储器控制器210对一个或多个处理单元220与一个或多个存储器单元230之间的数据流进行管理。该处理单元220可以是微处理器、中央处理单元(CPU)、图形处理单元(GPU)、微控制器或者任何其他类似的处理单元。在一个实现方案中,该存储器单元230可以是闪存阵列、电路、芯片、卡、模块等等。在一个实现方案中,该存储器控制器210可以是单独的电路。在另一实现方案中,该存储器控制器210可以集成于处理单元220。
再次参考图1,该设定过程包括在110为一个或多个存储器设备确定命令操作。在一个实现方案中,存储器设备可以是一个或多个不同的闪存设备。对于诸如ONFI、JEDEC和/或诸如此类的一个或多个存储器标准,命令操作可包括例如页面读取、页面写入等等。命令操作可以包括构成一个或多个协议的一个或多个命令操作的一个或多个集合。命令操作还可与一个或多个信号接口定义相关联。
在120,将命令操作每一个分解为包括一个或多个周期的一个或多个基元。该基元可包括一个或多个命令(CMD)周期、一个或多个地址(ADDR)周期和/或一个或多个数据(DATA)周期。对于与一个或多个命令操作的一个或多个集合相对应的一个或多个协议中的每一个,还可将命令操作分解为针对基元中的一个或多个的一个或多个持续时间。对于与一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,还可将命令操作分解为在一个或多个基元之后的一个或多个延时。在一个或多个基元之前的持续时间和/或在一个或多个基元之后的延时可实现该一个或多个协议的定时参数。对于一个或多个命令操作的集合,还可将命令操作分解为一个或多个信号接口定义。该信号接口定义可为每个基元和/或协议定义各管脚的状态和/或用途。
现在参考图3,示出了命令操作310分解到基元320-350的示例。命令操作310可以为例如页面读取命令操作,且基元可以包括“读”基元(例如,CMD1)320、“地址”基元(例如,ADDR)330、“进行”基元(例如,CMD2)340以及“数据输出”基元(例如,DOUT)350。在另一个示例中,页面写入操作可以被分解为“写”基元(例如,CMD3)、“地址”基元(例如,ADDR)、“数据输入”基元(例如,DIN)以及“进行”基元(例如,CMD2)。该“读”基元(例如,CMD1)、“进行”基元(例如,CMD2)和“写”基元(例如,CMD3)是命令周期基元的示例。该“地址”基元(例如,ADDR)是地址周期基元的示例。该“数据输入”基元(例如,DIN)和“数据输出”基元(例如,DOUT)是数据周期基元的示例。
通过将存储器协议分解为基元,可以通过将基元作为构建块链接到一起来构造任意的复杂序列。在130,可任选地确定基元的一个或多个序列,该基元的一个或多个序列用于指定一个或多个命令操作的至少一部分。在一个实施方案中,可以为基元的一个或多个通用序列的每一个指定宏。该用于给定的序列的宏可以由一个或多个基元、一个或多个持续时间和/或一个或多个延时产生。在一实现方案中,持续时间和延时可通过“忙碌(busy)”和/或“轮询(poll)”的概念实现。忙碌和/或轮询概念被用来实现基元间的定时。但是,忙碌并未被置于总线上。表1示出了基元和宏的示范性集合。
ID 基元/宏 使用该基元/宏的示范性命令
0 busy,CMD,busy 基本基元,重置,缓存读取发布(Cache Read Issue)
1 busy,DOUT, busy 基本基元,读取的数据周期
2 busy,CMD,busy,DOUT,busy 读取状态
3 busy,CMD,ADDR,busy,DOUT,busy 读取状态扩展,读取ID
4 busy,CMD,ADDR,busy 读取参数页面,读取唯一ID,缓冲读取发布
5 busy,CMD1,ADDR,CMD2,busy 块擦除,回拷贝(copyback)读取,读取发布
6 busy,CMD,ADDR,DIN,busy 基本基元,页面程序发布(Page Program Issue)
7 busy, ADDR,busy 基本基元,提高对无法预见序列的适应性
8 busy, DIN,busy 数据输入(写入)
9 busy,CMD1,ADDR,DIN,CMD2,busy 页面程序发布+程序
10 busy,CMD1,ADDR,CMD2,busy,DOUT,busy 页面读取发布+数据读取
表1
在140,将该一个或多个基元存储在存储器控制器的命令翻译数据结构中。可采用可编程存储器控制器的基元与命令操作之间的映射来对命令翻译数据结构进行编程。对于与一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,该一个或多个命令操作与基元的一个或多个序列之间的映射还可包括用于一个或多个存储器设备的针对一个或多个基元的一个或多个持续时间。对于与一个或多个命令操作的集合相对应的一个或多个协议的每一个,该一个或多个命令操作与基元的一个或多个序列之间的映射还可包括用于一个或多个存储器设备的在基元中的一个或多个之后的一个或多个延时。该一个或多个命令操作与基元的一个或多个序列之间的映射还可包括用于一个或多个存储器设备的针对一个或多个命令操作集合的信号接口定义。可以在启动之初将该数据结构作为微码或者类似结构编程到存储器控制器中。该微码被写入和编程到存储器控制器中以适应用于一个或多个不同存储器设备的不同存储器设备标准、不同协议和/或特定特性。
如果在130还确定了基元的一个或多个序列,还可将该序列作为宏存储到命令翻译数据结构中。在此情况下,该数据结构提供操作命令与基元之间的映射以及任选地向每一标准提供宏。在另一实现方案中,可将存储器控制器的固件编程为选择性执行基元的一个或多个序列。
上述设定过程可以通过硬件、软件(例如,存储在一个或多个计算设备可读介质中的计算设备可执行指令)、固件(例如,计算设备可编程电路)或者硬件、软件和/或固件的一个或多个的组合来实现。
现在参考图4,示出了根据本发明一个实施例的示范性存储器控制器。该示范性存储器控制器的操作将参考图5得到进一步的解释。该存储器控制器210可包括命令缓冲器410、前端420、控制器存储器(例如,计算设备可读介质)430、后端440、控制器固件450以及平台(pad)接口460。可以理解的是该控制器还可包括多个其他组成部分,诸如命令先进先出(FIFO)缓冲器、数据和地址FIFO缓冲器、排序器(sequencer)FIFO缓冲器、状态寄存器、配置寄存器、控制逻辑和/或诸如此类。此外,可以将一个或多个组成部分设置为多个子组成部分,诸如写入后端和读取后端。类似地,前端420可以包括程序存储器430和/或后端440可以包括可编程固件450。
现在参考图5,在510,采用由被确定用于一个或多个存储器设备的一个或多个命令操作分解得到的一个或多个基元来对存储器控制器的命令翻译数据结构进行编程。在一个实现方案中,该命令翻译数据结构存储于控制器存储器430中。可以在设定过程中对该命令翻译数据结构进行编程,例如在启动之初。该命令翻译数据结构可以包括在一个或多个命令操作与一个或多个基元之间的映射。该命令翻译数据结构还可包括在一个或多个命令操作与一个或多个基元的一个或多个序列之间的映射。对于与一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,该命令翻译数据结构的映射还可以包括用于一个或多个存储器设备的针对一个或多个基元的一个或多个持续时间。对于与一个或多个命令操作的集合相对应的一个或多个协议的每一个,该命令翻译数据结构的映射还可以包括用于一个或多个存储器设备的在基元中的一个或多个之后的一个或多个延时。该命令翻译数据结构的映射还可以包括用于一个或多个存储器设备的针对一个或多个命令操作集合的一个或多个信号接口定义。
此后,在520,命令操作470被存储器控制器210从一个或多个处理单元220所接收。在一个实现方案中,可以将接收到的命令操作470缓冲到存储器控制器210的命令缓冲器410中。该命令缓冲器410可为先进先出(FIFO)缓冲器。
在530,存储器控制器使用命令翻译数据结构将命令操作470分别翻译为一个或多个相应基元480的集合。还可以使用命令翻译数据结构将在此被称为宏的部分给定的命令操作翻译为一个或多个基元的一个或多个序列。命令操作到一个或多个相应基元和/或一个或多个基元的序列的翻译还可以包括基元中一个或多个的持续时间。命令操作的翻译还可以包括基元中的一个或多个之后的一个或多个延时。命令操作到一个或多个相应基元和/或序列的翻译还可以包括一个或多个信号接口定义。在一个实施方案中,前端420将接收到的命令操作470转换为映射在程序存储器430内命令操作基元数据结构中的基元和/或宏480的集合。
在一个实现方案中,为了执行页面读取,使用表1的存储器控制器的前端可以在“0”基元码之后发布“1”基元码,或者发布“2”基元码来实现同样的任务。由前者所容许的灵活性允许在存储器单元阵列的不同选通芯片(CEs)或逻辑单元(LUNs)之间交错操作。这种基元的交错可以改善性能。在另一个示例中,即使硬件被设计为仅支持4KB,该方法仍然可以为8KB的页面设备提供支持。这可以通过发布6、8和0来实现。
在另一实现方案中,将基元作为微指令集的一部分使用,并且将存储器控制器命令的集合设置为指针列表或者实质上设置为微码。示范性微指令集和相应的存储器控制器命令集合在表2中示出。
表2
在540,将基元的集合从存储器控制器输出到一个或多个存储器设备和/或一个或多个处理单元。在一个实现方案中,后端440对包括任何可用持续时间和/或延时的基元和/或宏480的适当参数进行编码。该后端440随后根据任一可用的信号接口定义,将相应于每个接收到的命令操作470的基元和/或宏480的集合转换为相应的比特流490。该平台接口460在适当的时机输出该比特流490。
在另一实现方案中,选择的基元和/或宏可以被构建为硬件序列。该硬件序列可以通过后端440的可编程固件450实现。
如图6所示,后端440还可以对一个或多个基元和/或宏的集合进行交错操作。例如,每个页面读取可以被翻译为第一命令基元(例如,CMD1)和地址基元(例如,ADDR)、第二命令基元(例如,CMD2)、延时(例如,Busy)以及数据基元(例如,DOUT)。可以交错操作两个页面读取,从而可以在第一页面读取的延时(例如,Busy)期间发布第二页面读取的一部分基元。在此情况下,可以在第一页面读取(例如,PAGE1)的延时(例如,Busy)期间发布用于第二页面读取(例如,PAGE2)的第一命令基元。作为交错页面读取的结果,从存储器单元返回的数据被顺序返回,因此相应的数据基元(例如,DOUT)可与任何可用延时(例如,POLL)交错。
如上文所述,可以采用持续时间和/或基元之后的延时(在时钟周期中)来对每个基元进行编程。这使存储器控制器210可满足任何所需的定时参数。例如,在处理闪存设备中,通用操作进行某种类型的准备状态的轮询。为了卸载固件以避免必须手动实现轮询并因此耗尽时钟周期,作为所架构序列的一部分,可以为自动执行这一检查提供支持。
如上文所述,可对命令翻译数据结构加以扩展使其为每一基元定义各管脚的状态和/或用途从而处理不同的信号接口定义。例如,在一个标准中管脚A从flash获知用于在数据中计时的类时钟信号,而在另一标准中则用管脚B来代替。类似地,还可为每一基元指定双倍数据速率(DDR)和单倍数据速率(SDR)协议。
上面所述的存储器控制器和/或由存储器控制器执行的功能可以以硬件、软件(例如,存储在一个或多个计算设备可读介质中的计算设备可执行指令)、固件(例如,计算设备可编程电路)或者由硬件、软件和/或固件的一个或多个的组合来实现。
为了示例和描述的目的,本技术已经通过上述特定实施例进行了展示。他们并非意在穷尽或者将本发明限制到所公开的精确的形式,并且根据上述教导显然还可以有多种修改和变形。选择和描述的实施例是为了最好地解释本发明的原理及其实际应用,从而其他本领域的技术人员能够最好地利用本发明和各种适用于特定使用目的而具有不同修改的实施例。本发明的保护范围由附属的权利要求及其等效范围所界定。

Claims (17)

1.一种用于存储器控制器的设定的方法,包括:
为一个或多个存储器设备确定一个或多个命令操作的每一个(110);
将所述一个或多个命令操作的每一个分解为一个或多个包括一个或多个周期的基元(120);
将所述一个或多个基元存储在存储器控制器的命令翻译数据结构中(140);
其中,对于与所述一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的针对所述基元中的一个或多个的一个或多个持续时间;或者
对于与所述命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的在所述基元中的一个或多个之后的一个或多个延时;或者
对于一个或多个命令操作集合,所述命令翻译数据结构包括用于一个或多个存储器设备的一个或多个信号接口定义;以及
在一个或多个基元之前的持续时间和/或在一个或多个基元之后的时延实现所述一个或多个协议的定时参数,所述信号接口定义为每个基元和/或协议定义各管脚的状态和/或用途。
2.根据权利要求1的用于存储器控制器的设定的方法,其中所述一个或多个周期包括从包含命令周期、地址周期和数据周期的组中选择的一个或多个。
3.根据权利要求1的用于存储器控制器的设定的方法,进一步包括:
确定基元的一个或多个序列以指定一个或多个命令操作的至少一部分(130);以及
在存储器控制器中将基元的所述一个或多个序列存储在所述命令翻译数据结构中(140)。
4.根据权利要求1的用于存储器控制器的设定的方法,进一步包括:
确定基元的一个或多个序列以指定一个或多个命令操作的至少一部分(130);以及
在存储器控制器中对排序器的固件进行编程以选择性执行基元的所述一个或多个序列的每一个。
5.根据权利要求1的用于存储器控制器的设定的方法,其中所述一个或多个存储器设备包括至少两个不同的闪存设备。
6.一种用于存储器控制器的操作的方法,包括:
采用由被确定用于一个或多个存储器设备的一个或多个命令操作分解得到的一个或多个基元来对存储器控制器的命令翻译数据结构进行编程(510)其中,对于与所述一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的针对所述基元中的一个或多个的一个或多个持续时间;或者
对于与所述命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的在所述基元中的一个或多个之后的一个或多个延时;或者
对于一个或多个命令操作集合,所述命令翻译数据结构包括用于一个或多个存储器设备的一个或多个信号接口定义;以及
在一个或多个基元之前的持续时间和/或在一个或多个基元之后的时延实现所述一个或多个协议的定时参数,所述信号接口定义为每个基元和/或协议定义各管脚的状态和/或用途;
由所述存储器控制器从处理单元接收命令操作(520);
由所述存储器控制器使用所述命令翻译数据结构,将每一个命令操作翻译为一个或多个相应基元的集合(530);以及
将所述一个或者多个相应基元的集合从所述存储器控制器输出给给定的存储器设备(540)。
7.根据权利要求6的用于存储器控制器的操作的方法,其中在所述存储器控制器的设定过程中对所述命令翻译数据结构进行编程。
8.根据权利要求6的用于存储器控制器的操作的方法,其中将给定的命令操作的一部分翻译为一个或多个基元的相应序列。
9.根据权利要求6的用于存储器控制器的操作的方法,其中给定的命令操作到一个或多个相应基元的翻译包括给定的基元的持续时间。
10.根据权利要求6的用于存储器控制器的操作的方法,其中给定的命令操作到一个或多个相应基元的翻译包括在给定的基元之后的延时。
11.根据权利要求6的用于存储器控制器的操作的方法,其中给定的命令操作到一个或多个相应基元的翻译包括一个或多个信号接口定义。
12.根据权利要求6的用于存储器控制器的操作的方法,其中所述一个或多个基元包括从包含命令周期、地址周期和数据周期的组中选择的一个或多个。
13.一种存储器控制器,包括:
将命令操作映射为基元的命令翻译数据结构(430),其中所述基元由被确定用于一个或者多个存储器设备的命令操作分解得到,其中,对于与所述一个或多个命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的针对所述基元中的一个或多个的一个或多个持续时间;或者
对于与所述命令操作的一个或多个集合相对应的一个或多个协议的每一个,所述命令翻译数据结构包括用于一个或多个存储器设备的在所述基元中的一个或多个之后的一个或多个延时;或者
对于一个或多个命令操作集合,所述命令翻译数据结构包括用于一个或多个存储器设备的一个或多个信号接口定义;以及
在一个或多个基元之前的持续时间和/或在一个或多个基元之后的时延实现所述一个或多个协议的定时参数,所述信号接口定义为每个基元和/或协议定义各管脚的状态和/或用途;
前端(420),从处理单元接收命令操作,并且使用所述命令翻译数据结构将每一个接收到的命令操作翻译为一个或多个相应基元的集合;以及
后端(440),针对每一个接收到的命令操作将所述一个或多个相应基元的集合输出到给定的存储器设备。
14.根据权利要求13的存储器控制器,其中:
所述命令翻译数据结构(430)将命令操作映射为基元、一个或多个基元的持续时间以及在一个或多个基元之后的延时;
所述前端(420)使用所述命令翻译数据结构,将每一个接收到的命令操作翻译为一个或多个相应基元以及相应持续时间和相应延时中的一个或多个的集合;以及
后端(440)针对每一个接收到的命令操作,输出所述一个或多个相应基元以及所述相应持续时间和所述相应延时中的一个或多个的集合。
15.根据权利要求13的存储器控制器,其中:
所述命令翻译数据结构(430)将一个或多个命令操作的至少一部分映射为基元的序列、所述基元中的一个或多个的持续时间以及在所述基元中的一个或多个之后的延时;
前端(420)将给定的接收到的命令操作的至少一部分翻译为基元的给定的序列以及在所述给定的序列中所述基元中的一个或多个的所述持续时间和在所述基元中的一个或多个之后的所述延时;以及
后端(440)针对所述给定的接收到的命令操作,输出基元的所述给定的序列以及在所述给定的序列中所述基元中的一个或多个的所述持续时间以及在所述基元中的一个或多个之后的所述延时。
16.根据权利要求13的存储器控制器,其中所述一个或多个存储器设备包括至少两个不同的闪存设备。
17.根据权利要求13的存储器控制器,其中所述基元包括从包含命令周期、地址周期和数据周期的组中选择的一个或多个。
CN201110342779.1A 2010-11-03 2011-11-03 可编程存储器控制器 Expired - Fee Related CN102591783B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/939,135 2010-11-03
US12/939,135 US9465728B2 (en) 2010-11-03 2010-11-03 Memory controller adaptable to multiple memory devices

Publications (2)

Publication Number Publication Date
CN102591783A CN102591783A (zh) 2012-07-18
CN102591783B true CN102591783B (zh) 2015-08-26

Family

ID=45997938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110342779.1A Expired - Fee Related CN102591783B (zh) 2010-11-03 2011-11-03 可编程存储器控制器

Country Status (5)

Country Link
US (1) US9465728B2 (zh)
JP (1) JP5787444B2 (zh)
KR (1) KR20120047203A (zh)
CN (1) CN102591783B (zh)
TW (1) TW201232255A (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2763328C (en) * 2012-01-06 2015-09-22 Microsoft Corporation Supporting different event models using a single input source
US9245496B2 (en) * 2012-12-21 2016-01-26 Qualcomm Incorporated Multi-mode memory access techniques for performing graphics processing unit-based memory transfer operations
US9665533B2 (en) * 2013-12-20 2017-05-30 Rambus Inc. Blob pools, selectors, and command set implemented within a memory appliance for accessing memory
US20150261473A1 (en) * 2014-03-11 2015-09-17 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
KR101634312B1 (ko) 2014-04-04 2016-06-28 나상하 농약 교반용 워터젯 블로우 어셈블리
US9384830B2 (en) 2014-05-06 2016-07-05 Micron Technology, Inc. Apparatuses and methods for performing multiple memory operations
KR101789108B1 (ko) 2014-12-17 2017-10-23 나상하 농약 교반용 액체 기체 동시 분사형 워터젯 블로우 어셈블리
KR101767945B1 (ko) 2015-01-15 2017-08-14 나상하 농약교반기 일체형 농약통
US10554697B1 (en) * 2016-06-14 2020-02-04 Open Invention Network Llc Browser application selection and navigation operations in a co-browsing environment
CN107564563B (zh) * 2016-06-30 2020-06-09 华邦电子股份有限公司 存储器装置及其操作方法
CN109144907B (zh) * 2017-06-27 2021-08-10 北京忆芯科技有限公司 实现快速读取的方法及介质接口控制器
CN112214158B (zh) 2019-07-10 2024-03-22 慧荣科技股份有限公司 主机输出输入命令的执行装置及方法及计算机可读取存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636940B1 (en) * 1999-12-02 2003-10-21 International Business Machines Corporation Task control for high level commands in disk drives
CN101694635A (zh) * 2009-10-22 2010-04-14 中兴通讯股份有限公司 基于虚拟磁带库备份的控制方法、系统及近线存储节点
CN101719053A (zh) * 2009-11-27 2010-06-02 曹莹莹 一种通过spi接口读取iic存储卡的方法

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4360916A (en) 1979-12-31 1982-11-23 Ncr Canada Ltd.-Ncr Canada Ltee. Method and apparatus for providing for two bits-error detection and correction
JPH04128946A (ja) 1990-09-20 1992-04-30 Fujitsu Ltd アドレス変換方式
US5343481A (en) 1991-01-07 1994-08-30 Kraft Clifford H BCH error-location polynomial decoder
US5734926A (en) 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
US5533035A (en) 1993-06-16 1996-07-02 Hal Computer Systems, Inc. Error detection and correction method and apparatus
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
FR2737592B1 (fr) 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Circuit hdlc a bus interne partage
US5787279A (en) 1995-12-22 1998-07-28 International Business Machines Corporation System and method for conformationally-flexible molecular recognition
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6223144B1 (en) 1998-03-24 2001-04-24 Advanced Technology Materials, Inc. Method and apparatus for evaluating software programs for semiconductor circuits
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
JP3015023B1 (ja) * 1999-03-18 2000-02-28 株式会社サガミ電子工業 押釦スイッチ
US7457897B1 (en) 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US7934074B2 (en) 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US6760743B1 (en) 2000-01-04 2004-07-06 International Business Machines Corporation Instruction memory system for multi-processor environment and disjoint tasks
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US8108590B2 (en) 2000-01-06 2012-01-31 Super Talent Electronics, Inc. Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear
US6904458B1 (en) 2000-04-26 2005-06-07 Microsoft Corporation System and method for remote management
US6820142B2 (en) 2000-12-14 2004-11-16 International Business Machines Corporation Token based DMA
JP4722305B2 (ja) * 2001-02-27 2011-07-13 富士通セミコンダクター株式会社 メモリシステム
US20020161941A1 (en) 2001-04-30 2002-10-31 Sony Corporation And Electronics, Inc System and method for efficiently performing a data transfer operation
CN1122281C (zh) 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
US7237016B1 (en) 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US6772276B2 (en) 2002-01-04 2004-08-03 Intel Corporation Flash memory command abstraction
US7100103B2 (en) 2002-01-22 2006-08-29 Broadcom Corporation Efficient method for fast decoding of BCH binary codes
US6985977B2 (en) 2002-08-30 2006-01-10 National Instruments Corporation System and method for transferring data over a communication medium using double-buffering
JP4160808B2 (ja) 2002-09-18 2008-10-08 高圧ガス工業株式会社 メモリのリード/ライト制御回路、無接点メモリカード、リード/ライト装置及び無接点メモリカードのリード/ライトシステム
JP2004110438A (ja) 2002-09-18 2004-04-08 Nec Corp 画像処理装置、画像処理方法及びプログラム
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7277978B2 (en) 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
EP1528478A1 (en) 2003-11-03 2005-05-04 Sun Microsystems, Inc. Generalized addressing scheme for remote direct memory access enabled devices
JP2005202767A (ja) 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
US7979615B1 (en) 2004-03-08 2011-07-12 Pmc-Sierra Us, Inc. Apparatus for masked arbitration between masters and requestors and method for operating the same
US20050289253A1 (en) 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
US7392330B2 (en) 2004-07-02 2008-06-24 Mediatek Usa Inc. Memory access bandwidth allocation and latency control in a digital camera
US7689998B1 (en) 2004-07-13 2010-03-30 Microsoft Corporation Systems and methods that manage processing resources
EP1797645B1 (en) 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7386683B2 (en) 2005-03-29 2008-06-10 International Business Machines Corporation Method and apparatus for filtering snoop requests in a point-to-point interconnect architecture
US7380071B2 (en) 2005-03-29 2008-05-27 International Business Machines Corporation Snoop filtering system in a multiprocessor system
US20060236039A1 (en) 2005-04-19 2006-10-19 International Business Machines Corporation Method and apparatus for synchronizing shared data between components in a group
JP4177360B2 (ja) 2005-07-26 2008-11-05 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7441054B2 (en) 2005-09-26 2008-10-21 Realtek Semiconductor Corp. Method of accessing internal memory of a processor and device thereof
WO2007072317A2 (en) 2005-12-21 2007-06-28 Nxp B.V. Non-volatile memory with block erasable locations
US7602655B2 (en) * 2006-01-12 2009-10-13 Mediatek Inc. Embedded system
US7454546B1 (en) 2006-01-27 2008-11-18 Xilinx, Inc. Architecture for dynamically reprogrammable arbitration using memory
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
CN101051464A (zh) 2006-04-06 2007-10-10 株式会社东芝 说话人认证的注册和验证方法及装置
US7761636B2 (en) 2006-11-22 2010-07-20 Samsung Electronics Co., Ltd. Method and system for providing access arbitration for an integrated circuit in a wireless device
TW200823923A (en) 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
CN101715575A (zh) 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
JP2008158991A (ja) 2006-12-26 2008-07-10 Ricoh Co Ltd Nand型フラッシュメモリの制御システム
US8166212B2 (en) 2007-06-26 2012-04-24 Xerox Corporation Predictive DMA data transfer
JP5087347B2 (ja) 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US7877524B1 (en) 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
TWI375888B (en) * 2008-05-16 2012-11-01 Phison Electronics Corp Method, apparatus and controller for managing memories
US8464021B2 (en) 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
US9208108B2 (en) 2008-12-19 2015-12-08 Nvidia Corporation Method and system for improved flash controller commands selection
US8732350B2 (en) 2008-12-19 2014-05-20 Nvidia Corporation Method and system for improving direct memory access offload
US8694750B2 (en) 2008-12-19 2014-04-08 Nvidia Corporation Method and system for data structure management
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8392806B2 (en) 2009-09-02 2013-03-05 Texas Instruments Incorporated Method, device, and digital circuitry for providing a closed-form solution to a scaled error locator polynomial used in BCH decoding
TWI438779B (zh) * 2009-12-02 2014-05-21 Mstar Semiconductor Inc 通用記憶體輸入輸出產生裝置及方法
US20110161553A1 (en) 2009-12-30 2011-06-30 Nvidia Corporation Memory device wear-leveling techniques
US9594675B2 (en) 2009-12-31 2017-03-14 Nvidia Corporation Virtualization of chip enables

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636940B1 (en) * 1999-12-02 2003-10-21 International Business Machines Corporation Task control for high level commands in disk drives
CN101694635A (zh) * 2009-10-22 2010-04-14 中兴通讯股份有限公司 基于虚拟磁带库备份的控制方法、系统及近线存储节点
CN101719053A (zh) * 2009-11-27 2010-06-02 曹莹莹 一种通过spi接口读取iic存储卡的方法

Also Published As

Publication number Publication date
KR20120047203A (ko) 2012-05-11
TW201232255A (en) 2012-08-01
JP5787444B2 (ja) 2015-09-30
US20120110242A1 (en) 2012-05-03
US9465728B2 (en) 2016-10-11
JP2012099096A (ja) 2012-05-24
CN102591783A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102591783B (zh) 可编程存储器控制器
US11042297B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US7669033B2 (en) Pretranslating input/output buffers in environments with multiple page sizes
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US9710191B1 (en) Rapid memory buffer write storage system and method
US20120159286A1 (en) Data transmission device, memory control device, and memory system
CN108139994B (zh) 内存访问方法及内存控制器
CN106802870B (zh) 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法
CN108139989B (zh) 配备有存储器中的处理和窄访问端口的计算机设备
CN106547636A (zh) 除错系统与方法
CN115080471A (zh) 基于FPGA的nand flash接口控制器及读写方法
CN109614086B (zh) 基于SystemC和TLM模型的GPU纹理缓冲区数据存储硬件及存储装置
KR100463205B1 (ko) 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US20100262763A1 (en) Data access method employed in multi-channel flash memory system and data access apparatus thereof
US7945757B1 (en) Conserving and shaping address space with arrays
CN101488119B (zh) 地址译码方法、装置及单板
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
CN104021086A (zh) 一种8位单片机读写16位存储单元ram的实现方法
CN114625307A (zh) 计算机可读存储介质、闪存芯片的数据读取方法及装置
US8095746B1 (en) Conserving and shaping address space with arrays
JP2007048090A (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
CN104391801B (zh) Ddrii控制器的读写、状态转换、物理地址分配方法
Xin et al. Design and implementation of a NAND Flash controller in SoC
CN210377438U (zh) 一种嵌入式处理装置
CN115878021A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150826

Termination date: 20161103