存储系统及包括所述存储系统的片上系统的制作方法

文档序号:6524314阅读:176来源:国知局
存储系统及包括所述存储系统的片上系统的制作方法【专利摘要】在一个示例实施例中,存储系统包括:分层级的先进先出(FIFO)存储器,其被配置成存储数据;以及FIFO控制器,其被配置成控制去往和来自所述FIFO存储器的数据的输入和输出,其中,所述FIFO存储器包括第一层。所述第一层包括:高速输入FIFO存储器,其被配置成从外部设备接收数据;和高速输出FIFO存储器,其被配置成将数据输出到所述外部设备。所述FIFO存储器还包括第二层。所述第二层包括主FIFO存储器,其被配置成从所述高速输入FIFO存储器接收数据并且将数据输出到所述高速输出FIFO存储器。【专利说明】存储系统及包括所述存储系统的片上系统[0001]相关申请的交叉引用[0002]本申请要求于2012年12月18日向韩国知识产权局提交的韩国专利申请第10-2012-0148210号的优先权权益,通过引用将其全部公开内容结合于此。【
技术领域
】[0003]示例实施例涉及存储系统以及包括所述存储系统的片上系统(SoC)。【
背景技术
】[0004]先进先出(FIFO)存储器件是以FIFO方式存储数据的器件。FIFO存储器件使用写指针和读指针来管理数据输入和输出。FIFO存储器件正在以各种方式用于比如片上系统(SoC)的半导体系统中。[0005]随着系统处理的数据大小的增加,需要以高频操作的高性能存储器件。对于以高频操作的存储器件,FIFO存储器应当可以以高频来访问。然而,随着FIFO存储器的存储容量的增加,访问FIFO存储器所需的时间也增加。这提出了对实现高频存储器件的挑战。【
发明内容】[0006]一些示例实施例提供先进先出(FIFO)存储系统,其包括以分层级结构组织的高速、低容量输入和输出FIFO存储器以及低速、高容量主FIFO存储器以便以高速从外部设备接收数据并且向外部设备发送数据,并且提供包括所述FIFO存储系统的片上系统(SoC)。[0007]在一个示例实施例中,存储系统包括:分层级的先进先出(FIFO)存储器,其被配置成存储数据;以及FIFO控制器,其被配置成控制去往和来自所述FIFO存储器的数据的输入和输出,其中,所述FIFO存储器包括第一层。所述第一层包括:高速输入FIFO存储器,其被配置成从外部设备接收数据;和高速输出FIFO存储器,其被配置成将数据输出到所述外部设备。所述FIFO存储器还包括第二层。所述第二层包括主FIFO存储器,其被配置成从所述高速输入FIFO存储器接收数据并且将数据输出到所述高速输出FIFO存储器。[0008]在又一个示例实施例中,所述FIFO存储器包括输入FIFO管理器,其被配置成将数据输入到所述高速输入FIFO存储器,输出存储在所述高速输入FIFO存储器中的数据,并且将输出的数据输入到所述主FIFO存储器。[0009]在又一示例实施例中,所述FIFO控制器还包括输出FIFO管理器,其被配置成将数据输出到外部设备,其中,所述输入FIFO管理器输出存储在所述高速输入FIFO存储器中的数据并且响应于来自输出FIFO管理器的请求将输出的数据发送到所述输出FIFO管理器。[0010]在又一示例实施例中,所述FIFO控制器还包括输出FIFO管理器,其被配置成将数据输出到外部设备,其中,所述输入FIFO管理器响应于来自所述输出FIFO管理器的请求立即将派往高速输入FIFO存储器的数据发送给所述输出FIFO管理器。[0011]在又一示例实施例中,所述FIFO控制器包括:输出FIFO管理器,其被配置成输出存储在所述主FIFO存储器中的数据,将输出的数据输入到所述高速输出FIFO存储器,并且从所述高速输出FIFO存储器输出数据。[0012]在又一示例实施例中,所述FIFO存储器还被配置成将虚拟写指针和虚拟读指针提供给所述外部设备。[0013]在又一示例实施例中,所述FIFO存储器还被配置成提供与高速输入FIFO存储器、高速输出FIFO存储器和主FIFO存储器中的每一个相对应的写指针和读指针。[0014]在又一示例实施例中,所述主FIFO存储器的存储单元长度是所述高速输入FIFO存储器的存储单元长度和所述高速输出FIFO存储器的存储单元长度的η倍,η是大于I的自然数。[0015]在又一示例实施例中,所述主FIFO存储器的存储单元数量大于所述高速输入FIFO存储器的存储单元数量和所述高速输出FIFO存储器的存储单元数量。[0016]在又一示例实施例中,所述高速输入FIFO存储器的存储单元数量大于所述高速输出FIFO存储器的存储单元数量。[0017]在又一示例实施例中,所述高速输入FIFO存储器和所述高速输出FIFO存储器以第一频率操作,并且所述主FIFO存储器以第二频率操作,第二频率与第一频率不同。[0018]在又一示例实施例中,第一频率高于第二频率。[0019]在一个不例实施例中,一种片上系统(SoC)包括:第一电子系统,被配置成发送数据;第二电子系统,其被配置成接收数据;以及如权利要求1所述的存储系统,其被配置成在第一电子系统和第二电子系统之间临时存储数据。[0020]在一个示例实施例中,一种存储器包括:第一层,其以第一频率操作,被配置成执行以下操作中的至少一个:从外部设备接收数据以及将数据输出到外部设备。所述存储器还包括第二层,其以第二频率操作,被配置成执行以下操作中的至少一个:从第一层接收数据以及将数据输出到第一层。[0021]在又一示例实施例中,所述第一层包括:输入先进先出(FIFO)存储器,其被配置成从所述外部设备接收数据;以及输出FIFO存储器,其被配置成将数据输出到所述外部设备。[0022]在又一示例实施例中,所述第二层包括主FIFO存储器,其被配置成执行以下操作中的至少一个:从所述输入FIFO存储器接收数据以及将数据输出到所述输入FIFO存储器。[0023]在又一示例实施例中,一种存储系统包括存储器,其中第一层和第二层形成分层级的先进先出(FIFO)存储器。所述存储系统还包括FIFO控制器,其被配置成控制将数据输入到所述FIFO存储器以及从所述FIFO存储器输出数据。[0024]在又一示例实施例中,第一频率与第二频率相比具有更高的值。[0025]在又一示例实施例中,所述输入FIFO存储器的存储单元数量大于所述输出FIFO存储器的存储单元数量。[0026]在又一示例实施例中,所述第二层的主FIFO存储器的存储单元长度大于所述输入FIFO存储器的存储单元长度和所述输出FIFO存储器的存储单元长度。【专利附图】【附图说明】[0027]通过参照附图详细描述本发明的示例实施例,上述及其它方面和特征将变得更加明显,附图中:[0028]图1是根据示例实施例的存储系统的框图;[0029]图2是根据示例实施例的图1中所示的先进先出(FIFO)存储器的框图;[0030]图3是根据示例实施例的图1中所示的FIFO控制器的框图;[0031]图4是图示根据示例实施例的存储系统的结构的示图;[0032]图5是图示根据示例实施例的图4所示的存储系统的结构的应用示例的示图;[0033]图6是图示根据示例实施例的存储系统的数据输出操作的示图;[0034]图7是图示根据示例实施例的存储系统的数据输出方法的流程图;[0035]图8是图示根据示例实施例的图7的数据输出方法的应用示例的流程图;[0036]图9是图示根据示例实施例的存储系统的数据输入操作的示图;[0037]图10是图示根据示例实施例的存储系统的数据输入方法的流程图;[0038]图11是图示根据示例实施例的图10的数据输入方法的应用示例的流程图;以及[0039]图12是根据示例实施例的包括图1的存储系统的计算系统的框图。【具体实施方式】[0040]现在将参照附图在下文中更充分地描述示例实施例。附图上同样的元件由同样的参考标记标注。·[0041]这里公开了详细的说明性的实施例。然而,这里公开的特定结构细节和功能细节仅仅是代表性的,目的在于描述示例实施例。然而,这个本发明主题可以以许多替换形式来具体实现,而不应被看作仅仅局限于这里阐述的实施例。[0042]因此,尽管示例实施例能够具有不同的修改和替换形式,但在附图中以举例的方式示出了实施例,并且将在这里详细描述实施例。然而,应当理解没有意图将示例实施例局限于公开的特定形式。相反地,示例实施例将覆盖落入本公开的范围的所有修改、等效物以及替换方式。贯穿对附图的描述,同样的附图标记指代同样的元件。[0043]尽管这里可能使用术语第一、第二等等来描述不同的元件,但这些元件不应受到这些术语的限制。这些术语仅仅用于将一个元件与另一个元件区分开来。例如,第一元件可以被称为第二元件,类似地,第二元件也可以被称为第一元件,这样不会偏离本公开的范围。这里使用的术语“和/或”包括一个或多个相关列出项目中的任意一个以及所有组合。[0044]为了便于描述,这里可能使用空间关系术语,如“在...之下”、“下方”、“下”、“上方”、“上”等等,来描述图中示出的一个元件或特征与另外的元件或特征之间的关系。将会理解,所述空间关系术语意图涵盖除了附图中描绘的方向之外的、器件在使用或操作中的不同方向。例如,如果附图中的器件被翻转,则被描述为在其它元件或特征“下方”或“之下”的元件的方向将变成在所述其它元件或特征的“上方”。因此,示例术语“下方”可以涵盖上和下两个方向。可以使器件具有其它方向(旋转90度或其它方向),而这里使用的空间关系描述词应做相应解释。[0045]当一个元件被称为“连接”或“耦接”到另一元件时,它可以直接连接或耦接到所述另一元件,或者也可以存在居间的元件。相反,当一个元件被称为“直接连接到”或者“直接耦接到”另一元件时,不存在居间的元件。用于描述元件之间关系的其它词汇应当以类似的方式解释(例如,“在…之间”相对于“直接在…之间”、“相邻”相对于“紧邻”等等)。[0046]这里使用的术语仅仅是为了描述特定实施例,并非意图为限制性的。这里使用的单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文明确给出相反指示。还将理解,当在这里使用术语“包括”和/或“包含”时,表明存在所陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组合。[0047]还应注意到,在一些替换实现方式中,所提到的功能/动作可以不按附图中说明的顺序进行。例如,取决于所涉及的功能/动作,两个相继示出的图可能实际上是基本并行地运行的,或者有时可能以相反的顺序运行。[0048]在下列描述中提供特定细节以提供对示例实施例的全面理解。然而,本领域普通技术人员将会理解示例实施例可以在没有这些特定细节的情况下被实践。例如,可以在框图中示出系统以免以不必要的细节模糊示例实施例。在其它实例中,可以在没有不必要的细节的情况下示出公知的过程、结构以及技术以免模糊示例实施例。[0049]在下列描述中,将参照操作(例如,以流程图、流程示图、数据流程示图、结构图、框图等等的形式)的动作和符号表示描述说明性的实施例,所述操作可以被实现为包括例程、程序、对象、分量、数据结构等等的程序模块或者功能过程,其执行特定任务或者实现特定抽象数据类型并且可以使用现有的网络元件中的现有硬件来实现。这样的现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)、计算机等等。[0050]虽然流程图可以将所述操作描述成顺序的过程,但是许多操作可以平行地、并行地或者同时执行。此外,可以重新调整所述操作的顺序。当过程的操作完成时,过程可以终止,但也可以具有未包括在图中的附加操作。过程可以对应于方法、函数、过程、子例程、子程序等等。当过程对应于函数时,其终止可以对应于所述函数返回到调用函数或者主函数。[0051]这里公开的术语“存储介质”或者“计算机可读存储介质”可以表示用于存储数据的一个或多个器件,包括只读存储器(ROM)、随机存取存储器(RAM)、磁性RAM、磁芯存储器、磁盘存储介质、光存储介质、快闪存储器件和/或用于存储信息的其它有形的机器可读介质。术语“计算机可读介质“可以包括——但是不局限于——便携式或者固定的存储器件、光存储器件以及能够存储、包含或者携带指令和/或数据的各种其它介质。[0052]此外,示例实施例可以通过硬件、软件、固件、中间件、微码、硬件描述语言或它们的任意组合来实现。当在软件、固件、中间件或者微码中实现时,执行必要任务的程序代码或者代码段可以被存储在机器或者比如计算机可读存储介质的计算机可读介质中。当在软件中实现时,一个处理器或者多个处理器将执行必要的任务。[0053]代码段可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类别或者指令、数据结构或者程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或者存储内容被耦接到另一个代码段或者硬件电路。可以经由包括存储器共享、消息传递、令牌(token)传递、网络传输等等合适的方法传递、转发或者发送信息、自变量、参数、数据等等。[0054]图1是根据示例实施例的存储系统100的框图。图2是根据示例实施例的图1中所示的先进先出(FIFO)存储器110的框图。图3是根据示例实施例的图1中所示的FIFO控制器120的框图。[0055]参照图1,根据示例实施例的存储系统100包括FIFO存储器110和FIFO控制器120。[0056]FIFO存储器110被配置成以FIFO的方式存储数据以及操作。FIFO存储器110以其中先输入的数据被先输出的FIFO方式操作。FIFO存储器110提供指向输入数据将被写入的地址的写指针和指向将从其读取输出数据的地址的读指针。[0057]FIFO控制器120管理去往和来自FIFO存储器110的数据输入和输出。在数据输入的情况下,FIFO控制器120可以将数据输入到FIFO存储器110的写指针所指向的地址并且增大所述写指针。在数据输出的情况下,FIFO控制器120可以输出存储在FIFO存储器110的读指针所指向的地址中的数据并且增大所述读指针。[0058]FIFO控制器120可以从外部设备(例如,总线)接收输入命令或者输出命令并且根据所接收到的命令执行写操作或者读取操作。FIFO控制器120可以将FIFO存储器110的写指针和读指针初始化为0,来初始化FIFO存储器110。[0059]数据可以被输入到FIFO存储器110直到FIFO存储器110的存储空间变成满的。此外,数据可以从FIFO存储器110输出直到FIFO存储器110的存储空间变成空的。在一个示例实施例中,当写指针和读指针之间的差对应于FIFO存储器110的深度,则FIFO控制器120可以确定FIFO存储器110的存储空间是满的。在一个示例实施例中,当写指针和读指针指向相同的地址,则FIFO控制器120可以确定FIFO存储器110的存储空间是空的。[0060]此外,FIFO控制器120可以发送或者接收用于将数据写入FIFO存储器110的写选择信号、用于从FIFO存储器110读取数据的读选择信号、指示FIFO存储器110的存储空间完全满了的满信号、和指示FIFO存储器110的存储空间完全空了的空信号。这样的在FIFO控制器120和FIFO存储器110之间的信号发送和/或接收可以通过通信链路101来进行。通信链路101可以是双向的或者可以可替换地被实现为两个分开的单向链路。[0061]参照图2,图1的FIFO存储器110被分层级地配置成第一层LI和第二层L2。第一层LI包括输入(In)FIFO存储器111和输出(Out)FIFO存储器112,并且第二层L2包括主FIFO存储器113。[0062]InFIFO(输入FIFO)存储器111可以从外部设备接收数据并且存储所接收到的数据。OutFIFO(输出FIFO)存储器112可以将存储的数据输出到外部设备。InFIFO存储器111和OutFIFO存储器112可以以高速的第一频率操作。在一个示例实施例中,InFIFO存储器111和OutFIFO存储器112中的每一个可以被配置为I个端口的存储器、2个端口的存储器或者触发器。在一个示例实施例中,InFIFO存储器111和OutFIFO存储器112中的每一个也可以被配置为寄存器。[0063]主FIFO存储器113可以从InFIFO存储器111接收数据并将数据输出到OutFIFO存储器112。如稍后将描述的,在一个示例实施例中,主FIFO存储器113可以用作存储系统100的实际存储器。主FIFO存储器113可以以相对低速的第二频率操作。第一频率可以高于(或者大于)第二频率。主FIFO存储器113可以是一但是不局限于一静态随机存取存储器(SRAM)。[0064]InFIFO存储器lll、0utFIFO存储器112和主FIFO存储器113可以被配置成以FIFO的方式操作。[0065]参照图3,图1的FIFO控制器120包括InFIFO管理器121和OutFIFO管理器122。[0066]InFIFO管理器121可以将数据输入到InFIFO存储器111并且将存储在InFIFO存储器111中的数据输出到主FIFO存储器113。OutFIFO管理器122可以将存储在主FIFO存储器113中的数据输出到OutFIFO存储器112并且从OutFIFO存储器112输出数据。[0067]在图1中,FIFO存储器110和FIFO控制器120相互分离。然而,本领域普通技术人员显而易见的是FIFO存储器110和FIFO控制器120可以被彼此集成在一起。在一个示例实施例中,图3的InFIFO管理器121可以被实现为InFIFO存储器111的一部分,并且OutFIFO管理器122可以被实现为OutFIFO存储器112的一部分。[0068]现在将参照图4和图5描述根据示例实施例的存储系统100的结构。[0069]图4是图示根据示例实施例的存储系统100的结构的示图。[0070]参照图4,根据示例实施例的存储系统100可以被耦接到总线102以便发送和接收数据。[0071]存储系统100可以包括以分层级结构组织的InFIFO存储器111、OutFIFO存储器112和主FIFO存储器113。InFIFO存储器111和OutFIFO存储器112中的每一个可以被配置成具有小的存储空间并且可以以高速访问。主FIFO存储器113可以被配置成支持大的存储空间并且可以以相对低速访问。[0072]InFIFO管理器121可以管理输入到存储系统100的数据,并且OutFIFO管理器122可以管理从存储系统100输出的数据。[0073]InFIFO存储器111可以具有wl的宽度和dl的深度。与InFIFO存储器111一样,OutFIFO存储器112可以具有wl的宽度和dl的深度。主FIFO存储器113的存储空间可以具有w2的宽度和d2的深度。这里,宽度可以指示数据存储单元的长度(例如,字节或者字(word)),而深度可以指示数据存储单元的数量。[0074]在一个示例实施例中,因为数据从OutFIFO存储器112输出到外部设备,所以FIFO存储器110的宽度可以等于OutFIFO存储器112的宽度《I。此外,FIFO存储器110的深度可以等于InFIFO存储器111的深度dl、0utFIFO存储器112的深度dl和主FIFO存储器113的深度d2之和。[0075]在一个示例实施例中,主FIFO存储器113的宽度《2可以比InFIFO存储器111的宽度wl和OutFIFO存储器112的宽度wl相对更大。例如,主FIFO存储器113的宽度w2可以是InFIFO存储器111的宽度wl和OutFIFO存储器112的宽度wl的η倍(η是大于I的自然数)。主FIFO存储器113的深度d2可以比InFIFO存储器111的深度dl和OutFIFO存储器112的深度dl相对更大。在一个示例实施例中,因为InFIFO存储器111的深度dl和OutFIFO存储器112的深度dl远远小于FIFO存储器110的深度,所以InFIFO存储器111和OutFIFO存储器112可以以高速访问。[0076]因此,根据本实施例的包括以分层级结构组织的多个FIFO存储器111到113的存储系统100可以允许InFIFO存储器111和OutFIFO存储器112可以以高速访问,并且同时,可以提供主FIFO存储器113的大的存储空间。[0077]在一个示例实施例中,特定FIFO存储器(InFIFO存储器111和OutFIFO存储器112中的至少一个)可以以高频操作,并且主FIFO存储器113可以以低频操作。因此,可以提供低功率的存储系统100。[0078]存储系统100可以与主FIFO存储器113的驱动频率和等待时间(latency)无关地操作。存储系统100的驱动频率可以由InFIFO存储器111的驱动频率和OutFIFO存储器112的驱动频率来确定。因此,如果使用高速寄存器实现InFIFO存储器111和OutFIFO存储器112中的每一个,则可以提供以高频操作的高性能存储系统100。[0079]图5是图示根据示例实施例的图4中所示的存储系统100的结构的应用示例的示图。为简单起见,下列描述将集中于与图4的区别。[0080]参照图5,存储系统100的InFIFO存储器111可以具有d3的深度。在一个示例实施例中,InFIFO存储器111的深度d3可以比主FIFO存储器113的深度d2相对更小,并且可以比OutFIFO存储器112的深度dl相对更大。[0081]虽然图4和图5中未示出,但是InFIFO管理器121可以提供用来输入数据的输入时钟,并且OutFIFO管理器122可以提供用来输出数据的输出时钟。所述输入时钟和所述输出时钟可以是同步的或者异步的。所述输入时钟和所述输出时钟可以以相同频率或者不同频率操作。当所述输入时钟和所述输出时钟具有相同频率时,它们的相位可以是相同的或者不同的。[0082]在图4和图5中,根据本实施例的存储系统100经由InFIFO管理器121和/或OutFIFO管理器122被耦接到总线102,以便发送和接收数据。[0083]现在将参照图6到图11描述根据示例实施例的存储系统100的数据输入和输出操作。[0084]为了便于描述和为了例示的目的,在下文中将假定存储系统100的InFIFO存储器111和OutFIFO存储器112中的每一个具有四个存储单元并且主FIFO存储器113的宽度是InFIFO存储器111的宽度和OutFIFO存储器112的宽度的两倍。[0085]图6是图示根据示例实施例的存储系统100的数据输出操作的示图。[0086]参照图6的示例实施例,FIFO存储器110提供总共八个指针,并且OutFIFO管理器122使用所述指针将数据输出到外部设备。[0087]FIFO存储器110可以向外部设备提供虚拟写指针virtualwrptr和虚拟读指针virtualrdptr。因此,FIFO存储器110可以提供与传统FIFO存储器相同的接口。外部设备可以使用虚拟指针virtualwrptr和virtualrdptr以与访问单个FIFO存储器类似的方式与存储系统100接口。在一个示例实施例中,当虚拟写指针virtualwrptr和虚拟读指针virtualrdptr之间的差对应于FIFO存储器110的深度时,FIFO控制器120可以确定FIFO存储器110是满的。在一个示例实施例中,当虚拟写指针virtualwrptr与虚拟读指针virtualrdptr相同时,则FIFO控制器120可以确定FIFO存储器110是空的。[0088]FIFO存储器110也可以将写指针和读指针提供给InFIFO存储器111、OutFIFO存储器112和主FIFO存储器113中的每一个。在一个示例实施例中,当写指针和读指针之间的差对应于FIFO存储器111到113中的一个或多个的深度时,FIFO控制器120可以确定所述FIFO存储器111到113中的一个或多个是满的。在一个示例实施例中,当FIFO存储器111到113中的一个或多个的写指针和读指针指向同一地址,FIFO控制器120可以确定所述FIFO存储器111到113中的一个或多个是空的。[0089]OutFIFO管理器122可以将存储在OutFIFO存储器112中的数据输出到外部设备或者将存储在主FIFO存储器113中的数据输出到外部设备。此外,OutFIFO管理器122可以将从InFIFO管理器121接收到的数据输出到外部设备。[0090]图7是图示根据示例实施例的存储系统100的数据输出方法的流程图。[0091]参照图7,当从外部设备接收到数据输出命令时,OutFIFO管理器122可以确定OutFIFO存储器112是否是空的(S201)。OutFIFO管理器122可以通过比较OutFIFO存储器112的输出读指针outrdptr和输出写指针outwrptr来确定OutFIFO存储器112是否是空的或者数据是否存在于OutFIFO存储器112中。[0092]如果OutFIFO存储器112不是空的,则OutFIFO管理器122可以从OutFIFO存储器112输出数据并可以向外部设备发送输出的数据(S202)。然后,OutFIFO管理器122可以使所述输出读指针outrdptr增大(例如,I)(S203)并且使虚拟读指针virtualrdptr增大(S204)。[0093]如果OutFIFO存储器112是空的,则OutFIFO管理器122可以确定主FIFO存储器113是否是空的(S205)。OutFIFO管理器122可以通过比较主读指针mainrdptr和主写指针mainwrptr来确定主FIFO存储器113是否是空的或者数据是否存在于主FIFO存储器113中。[0094]如果主FIFO存储器113不是空的,则OutFIFO管理器122可以从主FIFO存储器113输出数据并可以向外部设备发送输出的数据(S206)。这里,因为主FIFO存储器113的宽度是OutFIFO存储器112的宽度的两倍,所以OutFIFO管理器122可以向外部设备发送第一数据(例如,最高有效位(MSB)数据)并且可以将相邻第二数据(例如,最低有效位(LSB)数据)输入到OutFIFO存储器112(S207)。然后,OutFIFO管理器122可以使主读指针mainrdptr增大(例如,I)(S208)、使虚拟读指针virtualrdptr增大(S209)并且使输出写指针outwrptr增大(S210)。[0095]如果主FIFO存储器113是空的,则OutFIFO管理器122可以请求InFIFO管理器121提供数据(S211)。因此,OutFIFO管理器122可以从InFIFO管理器121接收存储在InFIFO存储器111中的数据(S212)并且可以将所接收到的数据输出到外部设备(S213)。然后,OutFIFO管理器122可以增大输入读指针inrdptr(操作S214)并且增大虚拟读指针virtualrdptr(S215)。[0096]当OutFIFO存储器112、主FIFO存储器113和InFIFO存储器111是空的时,FIFO存储器110是空的。因此,OutFIFO管理器122可以通过比较虚拟读指针virtualrdptr和虚拟写指针virtualwrptr来预先识别FIFO存储器110是否是空的。在此情况下,FIFO控制器120可以向外部设备发送指示FIFO存储器110为空的空信号。[0097]在一个示例实施例中,当OutFIFO管理器122输出存储在主FIFO存储器113中的数据并且向外部设备发送输出的数据时,可以创建气泡(bubble),因为主FIFO存储器113的驱动频率相对较低。[0098]图8是图示根据示例实施例的图7的数据输出方法的应用示例的流程图。为简单起见,下列描述将集中于与图7的区别。[0099]参照图8,OutFIFO管理器122可以确定OutFIFO存储器112的空槽(emptyslot)数量是否等于或大于参考数量(S301)。槽可以对应于OutFIFO存储器112的存储单元。所述参考数量可以对应于上述η的值(例如,2)。[0100]在一个示例实施例中,OutFIFO存储器112的空槽数量等于或者大于所述参考数量,OutFIFO管理器122可以输出存储在主FIFO存储器113中的数据并且将所述数据输入到OutFIFO存储器112(S302)。然后,OutFIFO管理器122可以增大输出写指针outwrptr(例如,增大2)(S303)并且增大主读指针mainrdptr(例如,增大I)(S304)。[0101]当OutFIFO存储器112的深度是6或者更大时,OutFIFO管理器122不可以访问主FIFO存储器113。因此,不创建上述的气泡。[0102]图9是图示根据示例实施例的存储系统100的数据输入操作的示图。[0103]参照图9,InFIFO管理器121可以使用指针从外部设备接收数据。[0104]InFIFO管理器121可以将从外部设备接收到的数据存储在InFIFO存储器111或者主FIFO存储器113中。此外,InFIFO管理器121可以向OutFIFO管理器122发送从外部设备接收到的数据。[0105]图10是图示根据示例实施例的存储系统100的数据输入方法的流程图。[0106]参照图10,当从外部设备接收到数据输入命令时,InFIFO管理器121可以确定是否存在来自OutFIFO管理器122的数据请求(S401)。[0107]如果存在来自OutFIFO管理器122的数据请求,则InFIFO管理器121可以立即将派往InFIFO存储器111的数据发送给OutFIFO管理器122(S402)。这里,InFIFO管理器121可以不将数据存储在InFIFO存储器111中,并且输入读指针inrdptr和输入写指针inwrptr可以不改变。然而,如果InFIFO管理器121输出存储在InFIFO存储器111中的数据并且如上所述地将输出的数据发送到OutFIFO管理器122,则输入读指针inrdptr和输入写指针inwrptr可以被改变。[0108]如果没有来自OutFIFO管理器122的数据请求,则InFIFO管理器121可以将从外部设备接收到的数据输入到InFIFO存储器111(S403)。因此,InFIFO管理器121可以增大输入写指针inwrptr(例如,增大I)(S404)并且增大虚拟写指针virtualwrptr(S405)。[0109]InFIFO管理器121可以通过比较虚拟读指针virtualrdptr和虚拟写指针virtualwrptr来预先识别FIFO存储器110是否是满的。当FIFO存储器110是满的时,FIFO控制器120可以向外部设备发送指示FIFO存储器110为满的满信号。在此情况下,InFIFO管理器121可以延迟输入所述数据直到FIFO存储器110变成可用的为止。[0110]如果InFIFO存储器111的深度相对较短,则即使当FIFO存储器110不满时,InFIFO存储器111也可能变成满的。因此,有可能不可以存储从外部设备接收到的数据。[0111]图11是图示根据示例实施例的图10的数据输入方法的应用示例的流程图。为简单起见,下列描述将集中于与图10的区别。[0112]参照图11,InFIFO管理器121可以确定InFIFO存储器111的数据槽(dataslot)的数量是否等于或者大于参考数量(S501)。数据槽可以对应于InFIFO存储器111中的数据存储单元。所述参考数量可以对应于上述η的值(例如,2)。[0113]在一个示例实施例中,当InFIFO存储器111的数据槽的数量等于或者大于所述参考数量时,InFIFO管理器121可以输出存储在InFIFO存储器111中的数据并且将所述数据输入到主FIFO存储器113(S502)。然后,InFIFO管理器121可以增大输入读指针inrdptr(例如,增大2)(S503)并且增大主写指针mainwrptr(例如,增大I)(S504)。[0114]如果InFIFO存储器111的深度是4或者更大,则数据可以从InFIFO存储器111输出到主FIFO存储器113的两个或更多个存储单元。因此,上述情况不会发生。[0115]虽然图6和图9中未示出,但是存储系统100还可以包括:满信号发生器,其产生指示FIFO存储器110为满的信号;空信号发生器,其产生指示FIFO存储器110为空的信号;InFIF0满信号发生器,其产生指示InFIFO存储器111为满的信号;InFIF0空信号发生器,其产生指示InFIFO存储器111为空的信号;0utFIF0满信号发生器,其产生指示OutFIFO存储器112为满的信号;0utFIF0空信号发生器,其产生指示OutFIFO存储器112为空的信号;mainFIF0(主FIFO)满信号发生器,其产生指示主FIFO存储器113为满的信号;以及mainFIFO空信号发生器,其产生指示主FIFO存储器113为空的信号。[0116]在上述存储系统100中,主FIFO存储器113可以以比FIFO存储器110所需频率小的频率操作,并且主FIFO存储器113的宽度是FIFO存储器110的宽度的η倍。因此,主FIFO存储器113的驱动频率可以被减少到FIFO存储器110所需频率的I/η而不影响FIFO存储器110的带宽。[0117]根据示例实施例的存储系统100可以被提供为电子设备的各种组件之一,所述电子设备诸如计算机、超移动PC(ultra-mobilePC,UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、上网平板、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(portablemultimediaplayer,PMP)、便携式游戏设备、导航设备、黑盒、数码相机、三维电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、能够在无线环境中发送/接收信息的设备、构成家庭网络的各种电子设备之一、构成计算机网络的各种电子设备之一、构成远程信息处理网络的各种电子设备之一、射频识别(RFID)设备、或构成计算系统的各种组件之一。[0118]可以使用各种类型的封装来封装FIFO存储器110、FIFO控制器120或者存储系统100。例如,FIFO存储器110、FIF0控制器120或者存储系统100可以使用诸如层叠封装(packageonpackage,PoP)、球栅阵列(ballgridarray,BGA)、芯片尺寸封装(chipscalepackage,CSP)、塑料带引线芯片载体(plasticleadedchipcarrier,PLCC)、塑料双列直插封装(plasticdualin-linepackage,PDIP)、叠片内裸片封装(dieinwafflepack)、晶片内裸片形式(dieinwaferform)、板上芯片(chiponboard,COB)、陶瓷双列直插式封装(ceramicdualin-linepackage,CERDIP)、塑料标准四边扁平封装(plasticmetricquadflatpack,MQFP)、薄型四边扁平封装(thinquadflatpack,TQFP)、小外型集成电路封装(smalloutlineintegratedcircuit,S0IC)、缩小型小外型封装(shrinksmalloutlinepackage,SS0P)、薄型小外型封装(thinsmalloutlinepackage,TS0P)、系统级封装(systeminpackage,SIP)、多芯片封装(multichippackage,MCP)、晶片级结构封装(wafer-levelfabricatedpackage,WFP)和晶片级处理堆叠封装(wafer-levelprocessedstackpackage,WSP)的封装来封装。[0119]图12是根据示例实施例的包括图1的存储系统100的计算系统600的框图。[0120]参照图12,计算系统600可以包括输入/输出(1/0)设备610、控制器620、接口630、缓冲器640、存储器650、电源660以及总线670。[0121]1/0设备610、控制器620、接口630、缓冲器640和/或电源660可以通过总线670相互耦接。总线670对应于通过其传送数据的路径。[0122]1/0设备610可以包括键区、键盘以及输入和输出数据的显示设备。为了处理数据,控制器620可以包括微处理器、数字信号处理器、微控制器以及能够执行与那些上述组件类似的功能的逻辑设备中的至少一个。接口630可以将数据发送到通信网络或者从所述通信网络接收数据。接口630可以采用有线的或者无线的形式。例如,接口630可以包括天线或者有线的/无线的收发器。存储器650可以存储数据和/或命令。电源660可以转换从外部源接收到的电力并且将经转换的电力提供给组件610到650。一个或多个电源660可以被包括在计算系统600中。缓冲器640可以在存储器650和总线670之间临时存储输入到存储器650或者从存储器650输出的数据。[0123]虽然图中未示出,但是计算系统600还可以包括高速DRAM和/或SRAM以作为用于改善控制器620操作的操作存储器。[0124]根据示例实施例的存储系统100可以在缓冲器640内提供或者可以被提供为I/O设备610、控制器620、接口630或者存储器650的组件。根据示例实施例的存储系统100可以被提供为发送和接收数据的第一电子系统和第二电子系统之间临时存储数据的设备。存储系统100可以提供包缓冲、频率耦合以及总线匹配功能。[0125]在图12中,计算系统600可以被集成到一个半导体器件中。例如,I/O设备610、控制器620、接口630、缓冲器640、存储器650和/或电源660可以被集成到一个半导体器件中以形成片上系统(SoC)。在另一个示例中,它们可以形成应用处理器(AP)。[0126]计算系统600可以被应用到PDA、便携式计算机、上网平板、无线电话、移动电话、数字音乐播放器、存储卡以及可以在无线环境中发送和/或接收信息的所有电子产品。[0127]与这里公开的方面有关地描述的方法或算法的操作或者步骤可以直接在硬件中、在处理器运行的软件模块中或者在两者的组合中具体实现。软件模块可以驻留在RAM、快闪存储器、ROM、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPR0M)、寄存器、硬盘、可更换盘、CD-ROM或者本领域已知的任意其它形式的计算机可读记录介质中。记录介质可以被率禹接到处理器从而所述处理器可以从所述记录介质读取信息并且将信息写入所述记录介质。记录介质可以与所述处理器集成在一起。所述处理器和所述存储介质可以驻留在专用集成电路(ASIC)中。所述ASIC可以驻留在用户设备中。在替换方式中,所述处理器和所述存储介质可以作为分立组件驻留在用户设备中。[0128]总结以上详细的描述,本领域技术人员将会理解,可以对示例实施例进行许多变化和修改而实质上不脱离这里描述的原理。因此,公开的示例实施例仅在一般和描述的意义上使用。【权利要求】1.一种存储系统,包括:分层级的先进先出(FIFO)存储器,其被配置成存储数据;以及FIFO控制器,其被配置成控制向FIFO存储器输入数据和从FIFO存储器输出数据,其中,所述FIFO存储器包括:第一层,其包括:高速输入FIFO存储器,其被配置成从外部设备接收数据;和高速输出FIFO存储器,其被配置成将数据输出到所述外部设备;以及第二层,其包括:主FIFO存储器,其被配置成从所述高速输入FIFO存储器接收数据并且将数据输出到所述高速输出FIFO存储器。2.如权利要求1所述的存储系统,其中,所述FIFO控制器包括输入FIFO管理器,其被配置成:将数据输入到所述高速输入FIFO存储器,输出存储在所述高速输入FIFO存储器中的数据,并且将输出的数据输入到所述主FIFO存储器。3.如权利要求2所述的存储系统,其中所述FIFO控制器还包括:输出FIFO管理器,其被配置成将数据输出到所述外部设备,其中,输入FIFO管理器被配置成:输出存储在所述高速输入FIFO存储器中的数据,并且响应于来自输出FIFO管理器的请求将输出的数据发送到所述输出FIFO管理器。4.如权利要求2所述的存储系统,其中,所述FIFO控制器还包括:输出FIFO管理器,其被配置成将数据输出到外部设备,其中,所述输入FIFO管理器响应于来自所述输出FIFO管理器的请求立即将派往高速输入FIFO存储器的数据发送给所述输出FIFO管理器。5.如权利要求1所述的存储系统,其中,所述FIFO控制器包括输出FIFO管理器,其被配置成:输出存储在所述主FIFO存储器中的数据,将输出的数据输入到所述高速输出FIFO存储器,并且从所述高速输出FIFO存储器输出数据。6.如权利要求1所述的存储系统,其中,所述FIFO存储器还被配置成将虚拟写指针和虚拟读指针提供给所述外部设备。7.如权利要求6所述的存储系统,其中,所述FIFO存储器还被配置成提供与高速输入FIFO存储器、高速输出FIFO存储器和主FIFO存储器中的每一个相对应的写指针和读指针。8.如权利要求1所述的存储系统,其中,所述主FIFO存储器的存储单元长度是所述高速输入FIFO存储器的存储单元长度和所述高速输出FIFO存储器的存储单元长度的η倍,并且η是大于I的自然数。9.如权利要求1所述的存储系统,其中,所述主FIFO存储器的存储单元数量大于所述高速输入FIFO存储器的存储单元数量和所述高速输出FIFO存储器的存储单元数量。10.如权利要求9所述的存储系统,其中,所述高速输入FIFO存储器的存储单元数量大于所述高速输出FIFO存储器的存储单元数量。11.如权利要求1所述的存储系统,其中,所述高速输入FIFO存储器和所述高速输出FIFO存储器以第一频率操作,并且所述主FIFO存储器以第二频率操作,第二频率与第一频率不同。12.如权利要求11所述的存储系统,其中,第一频率高于第二频率。13.一种片上系统(SoC),包括:第一电子系统,其被配置成发送数据;第二电子系统,其被配置成接收数据;以及如权利要求1所述的存储系统,其被配置成在第一电子系统和第二电子系统之间临时存储数据。14.一种存储器,包括:第一层,其以第一频率操作,被配置成执行以下操作中的至少一个:从外部设备接收数据以及将数据输出到外部设备;以及第二层,其以第二频率操作,被配置成执行以下操作中的至少一个:从第一层接收数据以及将数据输出到第一层。15.如权利要求14所述的存储器,其中,所述第一层包括:输入先进先出(FIFO)存储器,其被配置成从所述外部设备接收数据;以及`输出FIFO存储器,其被配置成将数据输出到外部设备。16.如权利要求14所述的存储器,其中,所述第二层包括:主FIFO存储器,其被配置成执行以下操作中的至少一个:从所述输入FIFO存储器接收数据以及将数据输出到所述输入FIFO存储器。17.一种存储系统,包括:如权利要求14所述的存储器,其中,第一层和第二层形成分层级的先进先出(FIFO)存储器,以及FIFO控制器,其被配置成控制将数据输入到所述FIFO存储器以及从所述FIFO存储器输出数据。18.如权利要求14所述的存储器,其中,第一频率与第二频率相比具有更高的值。19.如权利要求15所述的存储器,其中,所述输入FIFO存储器的存储单元数量大于所述输出FIFO存储器的存储单元数量。20.如权利要求15所述的存储器,其中,所述第二层的主FIFO存储器的存储单元长度大于所述输入FIFO存储器的存储单元长度和所述输出FIFO存储器的存储单元长度。【文档编号】G06F13/16GK103870413SQ201310697939【公开日】2014年6月18日申请日期:2013年12月18日优先权日:2012年12月18日【发明者】李东翰,孔在燮申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1