CN1809025A - 结合存储块支持多存储体的方法和设备 - Google Patents
结合存储块支持多存储体的方法和设备 Download PDFInfo
- Publication number
- CN1809025A CN1809025A CN200510121540.6A CN200510121540A CN1809025A CN 1809025 A CN1809025 A CN 1809025A CN 200510121540 A CN200510121540 A CN 200510121540A CN 1809025 A CN1809025 A CN 1809025A
- Authority
- CN
- China
- Prior art keywords
- memory
- pointer
- command
- memory module
- command memory
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 136
- 238000000034 method Methods 0.000 title claims description 9
- 238000003860 storage Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 18
- 239000004744 fabric Substances 0.000 claims description 8
- 230000008520 organization Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
一存储控制器系统包括一存储命令存储器模块来存储多个存储体的命令。系统包括多个控制机构,每个包括第一和第二指针,和每个模块位置的下一字段联系在一起,来提供多个存储体中给定的一个的命令的链接表。
Description
相关应用的交叉引用
没有可应用的。
关于联邦发起的研究的声明
没有可应用的。
背景技术
在本领域所知的是,网络设备,比如路由器和开关,能包括网络处理器来使得易于收发数据。某些网络处理器,例如英特尔公司生产的多核心,单芯片IXP网络处理器以及高速排队和FIFO(先进先出)结构由利用指针进行存储的描述符结构支持。公开号为US2003/0140196A1的美国专利申请披露了一个排队控制数据结构的例子。例如,用指针结构寻址的信息包描述符可以为32位或更少位。
也在本领域所知的是,控制存储器的存储容量需求随着在网络系统里被支持的排队数量的增加在持续地增加。典型的SRAM(静态随机读写存储器)解决方案,例如QDR(四倍数据率),在存储容量方面存储技术是受限的。众所周知的是,SRAM实现是昂贵的而且和DRAM(动态随机存取存储器)比较起来消耗了大量的不动产。然而,一些所知的DRAM实现,例如RLDRAM(减少等待时间DRAM),具有存储器将不同的存储体的存储命令分类来最大化存储器带宽利用。现有的存储控制器设计为每个存储体使用单独的FIFO,这导致了大量的存储单元,例如FIFOs(先进/先出)。例如在8体设计中,使用8个FIFOs,而在16体设计中,使用16个FIFOs。
图1示出了先前技术的包括主命令FIFO2来存储命令的基于体的存储器控制器1和基于储存体5a-h中的哪一个将处理命令来分类命令的体管理模块4。在所述的实施中有8个FIFOs 6a-h,每一个相应于每个存储体5a-h。引脚接口7配置在存储体5a-h和FIFOs 6a-h之间。每个FIFO的头/尾结构8a-h能控制每个FIFO 6a-h的数据输入输出。此外,每个FIFO 6a-h的先行结构9a-h能方便数据传送给引脚接口7。
利用这个配置,需要的和存储体数量相等的FIFOs需要相对大量的芯片区。此外,如果一个体FIFO未被充分使用,不用的存储器不能给由于特定存储体的命令超额而暂时超载的FIFO。如果一个体FIFO装满,背压信号将被送给主命令FIFO,这将反过来背压整个系统至因此没有命令丢失。背压信号减少吞吐量并且一般地使系统实施降级。进一步的,由于每个存储模块有一个单独的满,空,头指针和尾指针结构,8体存储器需要具有这些结构的8个设置等等。
附图概述
这里包含的实施例将从以下的详细说明以及联系附图更加充分地被了解,其中:
图1是先前技术的存储控制器的实现;
图2是包括网络设备的系统的例子的图,该网络设备包括具有基于体的存储控制器的网络处理器单元。
图2A是一个具有处理单元支持基于体的存储控制器的网络处理器的例子的图。
图3是一个运行微码的处理单元(PE)的例子的图。
图4是一个示出存储控制器执行的例子的图。
图5A-5D示出了在存储控制器里的序列的存储和使用命令;以及
图6是存储体和接口逻辑执行的例子的概括描述。
详细描述
图2示出了网络设备2的例子,该设备包括具有链接表悬挂队列的内容寻址存储器的网络处理器单元(NPUs),当处理来自于数据源6的收入信息包以及将处理后的数据传送到目的设备8时,定制存储命令。网络设备2包括,例如,路由器,开关等等。数据源6和目的设备8包括目前所知的或者将要开发的不同的网络设备,这些网络设备能被连接跨越通讯路径,例如具有OC-192(每秒10G比特)线速的光学路径。
所述的网络设备2能管理队列和访问将在下面详述的存储器。设备2以通过交换结构SF(例如,纵横或者共享的存储器交换结构)互连的线路卡LC1-LC4(“刀片”)的集合为特征。交换结构SF,例如,可以遵照CSIX(通用交换接口)或者其他结构技术例如HyperTransport,Infiniband,PCT(外围组件互连),Packet-Over-SONET,RapidIO,和/或UTOPLA(ATM(异步传输模式)的通用测试和操作物理层接口)。
单独的线路卡(例如LC1)可以包括一或多个物理层(PHY)设备PD1,PD2(例如,光的,有线的,以及无线物理层)处理网络连接上的通讯。物理层PD在不同网络媒体传输的物理信号和数字系统使用的比特(例如,“0”-s和“1”-s)之间进行翻译。线路卡LC也能包括帧设备(例如,以太网,同步光纤网络(SONET),高级数据链路(HDLC)调帧器或者其他的“第二层”设备)FD1,FD2执行例如误差检测和/或校正的对帧的操作。所示的线路卡LC也能包括一或多个网络处理器NP1,NP2为经由物理层接收的信息包执行信息包处理操作以及将信息包通过交换结构SF直接传送到线路卡LC,提供一个出口接口来传送信息包。潜在的,网络处理器NP可以代替帧设备FD来执行“第二层”的职责。
图2A示出了包括处理器12的系统10的例子,该系统能作为网络处理器提供。处理器12被连接到一或多个I/O设备,例如,网络设备14和16,以及存储系统18。处理器12包括多个处理器(“处理引擎”或“处理单元”)20,每一个具有多个控制硬件执行线程22。在所示的例子里,有“n”个处理单元20,每一个处理单元20能够处理多线程22,这将在下面更充分地描述。在所述的实施例里,硬件支持的线程的最大数目“N”为8。每一个处理单元20连接到相邻的处理单元并能和其通讯。
在一个实施例里,处理器12也能包括一个通用目的处理器24帮助下载微码控制处理单元20和处理器12的其他资源,并且执行其他的计算机类型功能例如处理协议和异常。在网络处理应用里,处理器24也能提供支持给不能通过处理单元20处理的高层网络处理任务。
每一个结合共享资源操作的处理单元20包括,例如,存储系统18,外部总线接口26,I/O接口28以及控制和状态寄存器(CSRs)32。I/O接口28负责控制和连接处理器12到I/O设备14,16。存储系统18包括动态随机存取存储器(DRAM)34,通过DRAM控制器36来访问和静态随机读写存储器(SRAM)38,通过SRAM控制器40来访问。尽管没有示出,处理器12也可以包括非易失性存储器来支持引导操作。DRAM 34和DRAM控制器36被典型地用来处理大列的数据,例如,在网络应用里,处理来自于网络信息包的有效载荷。在一个网络实施里,SRAM 38和SRAM控制器40被用来减少等待时间,快速存取任务,例如,访问查找表等等。
设备14,16可以为能够传输和/或接收网络通信数据的任意网络设备,例如连接到10/100Base T以太网,干兆以太网,ATM或者其他类型的网络的帧/MAC(媒体访问控制子层)设备,或者连接到交换结构的设备。例如,在一个配置里,网络设备14可以为以太网MAC设备(连接到以太网上,没有示出)传输数据到处理器12以及设备16可以为交换结构设备从处理器12接收处理的数据为了传输到交换结构。
此外,每一个网络设备14,16能包括多个端口被处理器12服务。I/O接口28因此支持一或多种类型的接口,例如为了信息包和单元在物理层设备和更高级的协议层(例如,链路层)之间传输的接口,或者在通信管理器和交换结构之间的为了异步传输模式(ATM),网际协议(IP),以太网,和类似的数据通讯应用的接口。I/O接口28可以包括单独的接收和传输块,每一个可以为处理器12支持的特定接口单独配置。
其他的设备,例如主计算机和/或总线外设(未示出),可以连接到被外部总线接口26控制的外部总线,也能被处理器12服务。
一般的,作为网络处理器,处理器12能连接到不同类型的通讯设备或者收/发数据的接口。处理器12作为网络处理器操作能接收来自于例如像网络设备14那样的网络设备的单元信息并且以并行的方式处理那些单元。单元信息能包括整个的网络信息包(例如,以太网信息包)或者像这样的包的一部分,例如,像通用交换接口(或者“CSIX”)单元或者ATM单元,或者信息包段。其他单元也如此预期。
处理器12的每一个功能单元连接到一个外部总线结构或者互连42。存储总线44a,44b分别连接存储控制器36和40,分别地,到存储系统18的各自的存储单元DRAM34和SRAM38。I/O接口28经由单独的I/O总线线路46a和46b分别连接到设备14和16。
参照图3,示出了处理单元20的一个例子。处理单元(PE)20包括控制单元50,该控制单元包括控制存储51,控制逻辑(或者微控制器)52以及上下文仲裁器/事件逻辑53。控制存储51用来存储微码。微码可以通过处理器24下载。PE线程22的功能性因此为了特定用户的应用被通过核心处理器24下载到处理单元的控制储存51的微码来确定。
微控制器52包括每一个被支持的线程的指令解码器和程序计数器(PC)单元。上下文仲裁器/事件逻辑53能从任意共享的资源,例如,SRAM38,DRAM34,或者处理器核心24等等接收消息。这些消息提供一个请求功能是否已经完成的信息。
PE20也包括执行数据路径54和连接到控制单元50的通用目的寄存器(GPR)文件单元56。数据路径54可以包括一些不同的数据路径单元,例如,ALU(数字逻辑单元),乘法器和内容寻址存储器(CAM)。
GPR文件单元56(GPRs)的寄存器以两个单独的体被提供,体A56a和体B56b。GPRs完全地在程序控制下被读写。GPRs,当在指令里作为资源使用时,提供操作数给数据路径54。当在指令里作为目的地使用时,它们和数据路径54的结果一起被写入。指令区分被资源或者目的地选择的特定GPRs的寄存器的数目。由控制单元50提供的指令里的操作码位选择哪一个数据路径单元将执行指令定义的操作。
PE20进一步包括写传输(传输输出)寄存器文件62和读传输(传输输入)寄存器文件64。写传输寄存器文件62的写传输寄存器存储将被写到在处理单元外部的资源的数据。在所述的实施例里,写传输寄存器文件被分割为SRAM(SRAM写传输寄存器62a)和DRAM(DRAM写传输寄存器62b)的单独的寄存器文件。读传输寄存器文件64用来存储来自于在处理单元20的外部的资源的返回数据。像写传输寄存器文件一样,读传输寄存器文件分别地被分割为SRAM和DRAM的单独的寄存器文件,寄存器文件64a和64b。传输寄存器文件62,64连接到数据路径54和控制存储50。应该注意的是处理器12的结构支持“反射器”指令允许任意PE访问其他任何PE的传输寄存器。
PE20也包括本地存储器66。本地存储器66被寄存器68a(“LM_Addr_1”),68b(“LM_Addr_0”)寻址,其提供操作数到数据路径54,从作为目的地的数据路径54接收结果。
PE20也包括本地控制和状态寄存器(CSRs)70,连接到传输寄存器,来存储本地内部线程和全程事件信号信息,以及其他控制和状态信息。其他存储和功能单元,例如,循环冗余校验(CRC)单元(未示出),也可以被包括在处理单元里。
PE20的其他寄存器类型包括下一个相邻(NN)寄存器74,连接到控制存储50和执行数据路径54,为存储从在管道的先前相邻PE接收的信息来处理下一个相邻输入信号76a,或从被本地CSRs 70的信息控制的相同的PE。在处理管道的下一个相邻输出信号76b到下一个相邻PE(“下流PE”)能在本地CSRs70的控制下被提供。因此,在任意PE上的线程能够通过下一个相邻信号发信号给下一个PE上的线程。
由于所述的硬件被示出并且在这儿对某些细节进行描述,可以理解的是在这里所示的和所描述的具有链接表悬挂队列来定制存储命令的内容寻址存储器的实施例可以应用于不同的硬件,处理器,结构,设备,开发系统/工具等等。
图4示出了存储控制器100的例子,其包括主命令FIFO 102提供命令给存储命令存储器模块104来存储多存储体106a-h的命令。控制机构108a-h,由于每个存储体106a-h连接到命令存储器模块104,能包括头指针和尾指针。每个存储体可选的先行模块110a-h能连接在命令存储模块104的数据出口端口和引脚接口逻辑112之间。本领域普通技术人员所知的是,先行模块110提高了写命令群和读命令群的最佳存储操作的有效性。也就是说,转换读命令到写命令和/或相反的转换能浪费存储周期。
在实施例里,在命令存储模块104里的每一个位置包括命令存储字段104a和下一个字段104b,其指向在给定的存储体的命令的链接表里的下一个入口。命令存储器模块104进一步包括有效标记104c,其能形成“有效比特阵列”的一部分。当入口包含有效命令时,或者头指针指向特定入口时,它的相应有效标记104c被设置。在入口被使用后,有效标记104c重置并且入口进入可用入口池。
控制机构108包括头指针109和尾指针111。最初,头指针和尾指针109,111指向相同的位置,该位置在初始化时被分配给相应的存储体。那儿头尾指针指向相同的位置,能假定命令存储器模块104不包括相应存储体的任意指令。一般的,每个控制机构108,和命令存储器模块104连接在一起,控制每个存储体命令的链接表。
当接收到给定存储体的新命令时,自由入口被命令存储器模块的有效标记104c所确定。新命令被写入头指针位置并且下一个自由入口位置被识别和放置在下一个字段104b。尾指针111被更新指向下一个自由入口位置。命令的链接表使用这个机构能被构建。
当引脚接口逻辑112从命令存储器模块104得到新指令时,尾指针111用来从存储器池里读出下一个命令。尾指针111接着用写在下一个指针位置的入口号来更新并且和使用的入口相应的有效标记104c被重置。
图5A-C,和图4联系在一起,示出了存储和使用在基于头指针109,尾指针111和命令存储器模块的下一个字段104b的命令存储器模块(图4)中的命令的处理顺序的例子。已经了解的是头尾指针109,111控制特定存储体命令的链接表以及头尾指针对存在于每一个存储体。
在图5A里,模块104并不包括连接头尾指针109,1111的体的任意命令,因此它们指向相同的位置,如命令存储器模块104的位置5所示。注意到位置5(15)的有效标记104c15由于头指针109指向这个位置被设置。在图5B里,来自于主命令FIFO102(图4)的第一命令C1存储在位置5的命令字段104a15里。作为命令存储器操作的一部分,下一个入口位置基于有效标记104c被识别。在所述的实施例里,位置7被识别为下一个入口位置并且这个信息被写入到位置5的下一个字段104b15。尾指针111被更新指向命令存储器模块的位置7并且位置7的有效标记104c17被设置。
在图5C里,第二命令C2从主命令FIFO102被接收并存储在位置7里。下一个入口位置被识别为位置1并且这个信息被写入位置7的下一个字段。尾指针111被更新指向位置1并且这个位置的有效标记被设置。
在图5D里,第一命令C1从命令存储器模块104被传送到先行结构110和引脚接口112。存储第一命令C1的位置5变成空并且有效标记104c被重置。头指针109被更新指向位置7,其包括第二命令C2,如此来处理顺序接收和使用的特定存储体的命令等等。
由于这里有一个多重存储体的命令存储器模块104,代替例如在传统实施里头使用的8或者16存储器模块,从而获得了存储模块利用的显著提高。此外,存储体FIFOs(链接表)能增长或者收缩来减少或者消除背压发生的数量。
已经了解的是宽范围的存储体的实施是可能的。图6示出了能连接到图4的引脚接口逻辑112的8存储体配置的一个例子。由于访问给定的存储体可能使得体在下一个或者下几个周期内不可用,引脚接口逻辑112通过保持追踪哪些存储体是可用的来最大化存储体的访问。对于不同的存储体的访问应该在时间上被分配来最大化存储器访问的有效性。此外,由于头尾指针在范例实施例里被示出,可以理解的是其他指针结构能被用来满足特定实施的需求。
其他实施例在以下的权利要求的范围之内。
Claims (21)
1、一存储控制器系统,包括:
存储命令存储器模块,存储用于多个存储体的命令,该存储命令存储器模块包括多个位置,每一个位置有命令存储器字段和下一位置字段;以及
多个连接到该存储命令存储器模块的控制机构,所述多个控制机构的每一个分别相应于多个存储体中的一个,每一个控制机构包括一第一指针和一第二指针,其中第一指针,第二指针和下一位置字段提供用于多个存储体中的给定一个的命令的链接表。
2、根据权利要求1所述的系统,其中第一指针指向下一个将被使用的指令,第二指针指向在其中存储命令的下一位置,并且下一位置字段包括通过第二指针的下一位置指向的指针。
3、根据权利要求1所述的系统,进一步包括主命令存储器设备来提供命令给存储命令存储器模块。
4、根据权利要求1所述的系统,其中在存储命令存储器模块里的多个位置的每一个包括有效标记。
5、根据权利要求4所述的系统,其中当命令被存储在第一位置相应位置和/或第二指针指向该位置时,有效标记被设置。
6、根据权利要求4所述的系统,其中有效标记被用来确定在存储命令存储器模块里的下一可用位置。
7、一网络处理器单元,包括:
存储控制器系统,包括
存储命令存储器模块,存储用于多个存储体的命令,该存储命令存储器模块包括多个位置,每一个位置有一命令存储器字段和一下一位置字段;以及
多个连接到该存储命令存储器模块的控制机构,多个控制机构的每一个分别相应于多个存储体中的一个,每一个控制机构包括一第一指针和一第二指针,其中第一指针,第二指针和下一位置字段提供用于多个存储体中的给定一个的命令的链接表。
8、根据权利要求7所述的单元,其中第一指针指向下一个将被使用的指令,第二指针指向在其中存储命令的下一位置,并且下一位置字段包括通过第二指针的下一位置指向的指针。
9、根据权利要求7所述的单元,进一步包括主命令存储器设备来提供命令给存储命令存储器模块。
10、根据权利要求7所述的单元,其中在存储命令存储器模块里的多个位置的每一个包括一个有效标记。
11、根据权利要求7所述的单元,其中网络处理器单元有形成于一个单独的管芯上的多核。
12、一网络传输设备,包括:
至少一线路卡,用于传输数据给交换结构的端口;
所述至少一线路卡包括具有配置来执行微码的多线程处理单元的一网络处理器单元,该网络处理器单元包括:
存储控制器系统,具有
存储命令存储器模块,存储用于多个存储体的命令,该存储命令存储器模块包括多个位置,每一个位置有一命令存储器字段和一下一位置字段;以及
多个连接到该存储命令存储器模块的控制机构,多个控制机构的每一个分别相应于多个存储体中的一个,每一个控制机构包括一第一指针和一第二指针,其中第一指针,第二指针和下一位置字段提供用于多个存储体中的给定一个的命令的链接表。
13、根据权利要求12所述的设备,其中第一指针指向下一个将被使用的指令,第二指针指向在其中存储命令的下一位置,并且下一位置字段包括通过第二指针的下一位置指向的指针。
14、根据权利要求12所述的设备,进一步包括主命令存储器设备来提供命令给存储命令存储器模块。
15、根据权利要求12所述的设备,其中在存储命令存储器模块里的多个位置的每一个包括一个有效标记。
16、根据权利要求15所述的设备,其中有效标记被用来确定在存储命令存储器模块里的下一可用位置。
17、一种存储在命令存储器模块里的多个存储体的命令的方法,包括:
接收用于多个存储体的第一个的第一命令;
存储该第一命令于位于存储命令存储器模块的第一位置的命令字段;
更新头指针/尾指针对的尾指针到存储命令存储器模块中的下一可用位置,该头指针/尾指针对相应于多个存储体的第一个;以及
存储指针到存储命令存储器模块的第一位置的下一位置字段中的下一可用位置,其中头指针、尾指针和下一位置字段提供用于多个存储体的第一个的命令的链接表。
18、根据权利要求17所述的方法,进一步包括为在存储命令存储器模块的下一可用位置设置有效标记。
19、根据权利要求18所述的方法,其中有效标记为第一位置被设置并且通过检查在存储命令存储器模块的位置的有效标记来确定另一可用位置。
20、根据权利要求17所述的方法,进一步包括传输来自于存储命令存储器模块的第一命令并且更新头指针。
21、根据权利要求17所述的方法,进一步包括当多个存储体的其他体的进一步的命令被接收和传输时,更新进一步的头/尾指针对。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/018,023 US20060136681A1 (en) | 2004-12-21 | 2004-12-21 | Method and apparatus to support multiple memory banks with a memory block |
US11/018,023 | 2004-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1809025A true CN1809025A (zh) | 2006-07-26 |
Family
ID=36388192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510121540.6A Pending CN1809025A (zh) | 2004-12-21 | 2005-12-21 | 结合存储块支持多存储体的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060136681A1 (zh) |
CN (1) | CN1809025A (zh) |
DE (1) | DE112005003204T5 (zh) |
WO (1) | WO2006069126A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150275B (zh) * | 2007-12-27 | 2015-12-16 | 桑迪士克企业知识产权有限责任公司 | 掉电后重建闪存控制器中使用的元数据的方法及闪存装置 |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185029B1 (en) * | 2003-06-27 | 2007-02-27 | Unisys Corporation | Method and apparatus for maintaining, and updating in-memory copies of the first and second pointers to reference the new versions of the first and second control structures that indicate available and allocated portions of usable space in the data file |
US7467256B2 (en) * | 2004-12-28 | 2008-12-16 | Intel Corporation | Processor having content addressable memory for block-based queue structures |
CN102804149B (zh) | 2010-03-18 | 2016-01-13 | 富士通株式会社 | 多核处理器系统及控制方法 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9607714B2 (en) | 2012-12-26 | 2017-03-28 | Nvidia Corporation | Hardware command training for memory using write leveling mechanism |
US9824772B2 (en) | 2012-12-26 | 2017-11-21 | Nvidia Corporation | Hardware chip select training for memory using read commands |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9378169B2 (en) * | 2012-12-31 | 2016-06-28 | Nvidia Corporation | Method and system for changing bus direction in memory systems |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9218291B2 (en) | 2013-07-25 | 2015-12-22 | International Business Machines Corporation | Implementing selective cache injection |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9471508B1 (en) * | 2015-04-09 | 2016-10-18 | International Business Machines Corporation | Maintaining command order of address translation cache misses and subsequent hits |
KR20210092467A (ko) * | 2020-01-16 | 2021-07-26 | 삼성전자주식회사 | 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526506A (en) * | 1970-12-28 | 1996-06-11 | Hyatt; Gilbert P. | Computer system having an improved memory architecture |
DE69316955T2 (de) * | 1992-09-18 | 1998-07-30 | Hitachi Ltd | Rechenanlage mit synchronem, dynamischem Speicher |
US5701434A (en) * | 1995-03-16 | 1997-12-23 | Hitachi, Ltd. | Interleave memory controller with a common access queue |
US6393534B1 (en) * | 1999-09-27 | 2002-05-21 | Ati International Srl | Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory |
US6611906B1 (en) * | 2000-04-30 | 2003-08-26 | Hewlett-Packard Development Company, L.P. | Self-organizing hardware processing entities that cooperate to execute requests |
US6772300B1 (en) * | 2000-08-30 | 2004-08-03 | Intel Corporation | Method and apparatus for managing out of order memory transactions |
US20020191603A1 (en) * | 2000-11-22 | 2002-12-19 | Yeshik Shin | Method and system for dynamic segmentation of communications packets |
US6532185B2 (en) * | 2001-02-23 | 2003-03-11 | International Business Machines Corporation | Distribution of bank accesses in a multiple bank DRAM used as a data buffer |
US6961804B2 (en) * | 2001-07-20 | 2005-11-01 | International Business Machines Corporation | Flexible techniques for associating cache memories with processors and main memory |
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US6925643B2 (en) * | 2002-10-11 | 2005-08-02 | Sandbridge Technologies, Inc. | Method and apparatus for thread-based memory access in a multithreaded processor |
US6996686B2 (en) * | 2002-12-23 | 2006-02-07 | Sun Microsystems, Inc. | Memory subsystem including memory modules having multiple banks |
-
2004
- 2004-12-21 US US11/018,023 patent/US20060136681A1/en not_active Abandoned
-
2005
- 2005-12-20 WO PCT/US2005/046297 patent/WO2006069126A2/en active Application Filing
- 2005-12-20 DE DE112005003204T patent/DE112005003204T5/de not_active Ceased
- 2005-12-21 CN CN200510121540.6A patent/CN1809025A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150275B (zh) * | 2007-12-27 | 2015-12-16 | 桑迪士克企业知识产权有限责任公司 | 掉电后重建闪存控制器中使用的元数据的方法及闪存装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006069126A3 (en) | 2006-11-23 |
WO2006069126A2 (en) | 2006-06-29 |
US20060136681A1 (en) | 2006-06-22 |
DE112005003204T5 (de) | 2007-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1809025A (zh) | 结合存储块支持多存储体的方法和设备 | |
US7487505B2 (en) | Multithreaded microprocessor with register allocation based on number of active threads | |
US11151033B1 (en) | Cache coherency in multiprocessor system | |
Adiletta et al. | The Next Generation of Intel IXP Network Processors. | |
US11886930B2 (en) | Runtime execution of functions across reconfigurable processor | |
EP0473777B1 (en) | High-speed packet switching apparatus and method | |
CN1159655C (zh) | 多端口内部高速缓存的动态随机存取存储器 | |
US7467256B2 (en) | Processor having content addressable memory for block-based queue structures | |
US7240164B2 (en) | Folding for a multi-threaded network processor | |
US7418543B2 (en) | Processor having content addressable memory with command ordering | |
CN1351791A (zh) | 带迁移字段缓冲的结构路由器 | |
US20060198385A1 (en) | Method and apparatus to prioritize network traffic | |
US7277990B2 (en) | Method and apparatus providing efficient queue descriptor memory access | |
WO2006069355A2 (en) | Method and apparatus to provide efficient communication between processing elements in a processor unit | |
US7441245B2 (en) | Phasing for a multi-threaded network processor | |
US20220011966A1 (en) | Reduced network load with combined put or get and receiver-managed offset | |
WO2023086574A1 (en) | Memory pooling bandwidth multiplier using final level cache system | |
US20060253660A1 (en) | Method and apparatus to provide dynamic hardware signal allocation in a processor | |
US20060140203A1 (en) | System and method for packet queuing | |
WO2022133043A1 (en) | Runtime execution of configuration files on reconfigurable processors with varying configuration granularity | |
US7359381B2 (en) | Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association | |
US20240311310A1 (en) | Multi-host memory sharing | |
US20060067348A1 (en) | System and method for efficient memory access of queue control data structures | |
US9268600B2 (en) | Picoengine pool transactional memory architecture | |
US9164794B2 (en) | Hardware prefix reduction circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |