CN102591783B - 可编程存储器控制器 - Google Patents
可编程存储器控制器 Download PDFInfo
- 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
Links
- 238000013519 translation Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 25
- 230000011664 signaling Effects 0.000 claims description 16
- 230000001934 delay Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 20
- 238000013507 mapping Methods 0.000 description 12
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 7
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 6
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000004615 ingredient Substances 0.000 description 3
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 2
- 229940044442 onfi Drugs 0.000 description 2
- 101001114057 Homo sapiens P antigen family member 1 Proteins 0.000 description 1
- 101001114056 Homo sapiens P antigen family member 2 Proteins 0.000 description 1
- 102100023219 P antigen family member 1 Human genes 0.000 description 1
- 102100023220 P antigen family member 2 Human genes 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- RSXXGWGVKBYFGH-UHFFFAOYSA-N grandone Natural products CC(=CCC1=C(O)C(CC=C(C)C)(CC=C(C)C)C(=C(C(=O)c2ccccc2)C1=O)O)C RSXXGWGVKBYFGH-UHFFFAOYSA-N 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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的存储器控制器,其中所述基元包括从包含命令周期、地址周期和数据周期的组中选择的一个或多个。
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)
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)
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)
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 |
-
2010
- 2010-11-03 US US12/939,135 patent/US9465728B2/en active Active
-
2011
- 2011-10-13 JP JP2011225919A patent/JP5787444B2/ja active Active
- 2011-11-01 TW TW100139794A patent/TW201232255A/zh unknown
- 2011-11-02 KR KR1020110113447A patent/KR20120047203A/ko not_active Application Discontinuation
- 2011-11-03 CN CN201110342779.1A patent/CN102591783B/zh not_active Expired - Fee Related
Patent Citations (3)
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 |