数据分发及缓冲的制作方法

文档序号:7682597阅读:86来源:国知局
专利名称:数据分发及缓冲的制作方法
数据分发及缓冲背景技术现有技术已经使得更快并且更高效地为点播有线网络的订户传送 信息成为可能。例如,在有线网络空间中,目前,数字有线电视为订 户提供许多频道,用于接收在相应的电视上点播重放的不同类型的流 数据内容。根据现有的有线电视技术,相应订户有时在他们的家庭中具有通 常所说的机顶盒设备,其接收由对应的有线电视公司所管理的服务器 发射的编码数字信息。相应机顶盒在接收到编码数字信息时,执行用 于重放用途的解码功能。 一旦经过解码,在观看者家庭中的相应机顶 盒采用从选定频道中得到的解码数据的合适"栅格化"信号来驱动对 应的电视系统。因此,电视观看者能够观看由有线电视公司发射并由 对应机顶盒接收的对应电视节目。通常,对应的有线电视公司保持或具有对信息库的存取权,该信 息可以被分发到对应的目标机顶盒。因此,订户可以从信息库中选择 条目,以在家庭环境中观看。发明内容一种用于自有线电视公司所管理的相应服务器提供内容的解决方案涉及将内容临时存储在一个或多个RAM (例如,随机存取存储器) 类型的存储器设备中。当这样使用时,诸如整个电影的内容可以存储 在RAM中,用于分发到启动点播观看电影的一个或多个订户。与如上所述的临时存储全部内容(例如,从开始到结束的若干电 影)以分发到相应订户的现有存储器(例如RAM)使用相关联的一个缺点是,与基于RAM的存储器设备相关联的成本。例如,考虑到被配 置为分发大量内容(例如,很多不同的电影)的服务器将需要巨大数量的基于RAM的存储器设备,以具有为很多不同订户提供很多不同类型电影的能力。对使用基于RAM的存储器的可能替代方案是将内容存储在基于磁 盘的存储器设备中。由于从基于磁盘的存储器设备中提供(例如,流 传送)内容可能是慢的并由此不能提供真正的点播(on-demand)体验, 其中,多个用户中的每一个可以控制对来自远程服务器的内容的接收, 所以该解决方案是不可接受的。下面的公开内容包括用于处理及分发内容的若干有用实施例。例 如,此处的一个实施例包括允许相对高带宽的接口,以经由相应数据 处理系统的一部分,快速地(相对于磁盘)从一个或多个闪速设备中 检索数据,该相应数据处理系统的一部分实现长的数据猝发,而该数 据处理系统的其它部分管理较短的数据猝发。例如,根据将在下面详细描述的一般实施例,此处的系统包括存 储器控制器,其协调对一个或多个基于闪速的存储器设备的存取。在 这种实施例中,存储器控制器除了具有闪速存储器设备阵列之外,还 具有对应的读取缓冲器以及写入缓冲器。读取缓冲器及写入缓冲器的 使用允许存储器控制器在将存储在写入缓冲器的数据切换到存储器设 备阵列、以及将存储器设备阵列中的数据传递到读取缓冲器之间进行 切换。在具体实施例中,存储在写入缓冲器中的数据是视频内容,例如 存储在存储器设备阵列中用于基于点播分发给订户的电影。读取缓冲 器可以被配置为包括一个或多个基于RAM的存储器设备,其存储从存储器设备阵列中检索到的数据片段(例如,视频内容的一部分)。因 此,不同于直接分发来自存储器设备阵列的数据,存储器控制器fe照从读取缓冲器(例如,高速缓冲存储器)流传送数据来分发视频内容。 在接收到提供当前不在读取缓冲器中的视频内容分段(section)的命令时,存储器控制器启动对用于随后片段的闪速存储器设备阵列的存取。 存储器控制器重复从读取缓冲器流传送数据并更新读取缓冲器内容的 这个过程,直到相应服务器全部分发了所请求的内容,或者相应订户 发出用于停止流传送对应内容的命令。在一个实施例中,该内容包括用于导航用途的嵌入式指针。例如, 存储在写入缓冲器、闪速存储器设备阵列、及读取缓冲器中的内容中 的指针指向前进及后退到内容中的不同位置。观看流传送的视频内容 的用户可以从相应的机顶盒发出命令,例如播放、快速前进、暂停、 倒回等。在相应服务器处管理视频内容流传送的处理器,基于对与流 传送的内容相关联的导航指针的使用,依照发出的命令来导航及分发 内容的不同部分。换句话说,在服务器处的过程根据用户命令的接收, 使用不同的导航指针来流传送内容的不同部分。这里的技术同样适用于例如这样的应用该应用为多个点播订户生成并分发诸如实况数据流或预先记录的数据流的可导航数据流。然 而,应注意,在此,这些配置不限于在这种应用中使用,并由此,这 里的配置及其变形同样适用于其它应用。除了经由诸如逻辑电路、缓冲器、寄存器等的离散硬件组件来潜 在实现之外,这里的其它实施例可以包括诸如计算机化设备(例如, 计算机处理器系统、主机计算机、个人计算机、工作站等)的硬件平 台,该硬件平台被配置为支持管理内容的存储及分发的前述技术。在 这种实施例中,计算机化设备包括存储器系统、处理器(例如,处理 设备)、以及相应的互连。互连将处理器耦合到存储器系统。采用应 用程序(例如,软件代码)来编码存储器系统,当该应用程序在处理 器上执行时,允许对内容的管理及分发。在此公开的本申请的其它实施例还包括软件程序,以执行上面所 概括并将在下面详细公开的方法实施例及操作。更具体地,这里的实 施例包括计算机程序产品(例如,计算机可读介质),其上包括编码 的计算机程序逻辑,该计算机程序产品可以在计算机化设备上执行, 以如在此说明的来管理内容的存储及分发。计算机程序逻辑,当在带 有计算系统的至少一个处理器上执行时,促使处理器来执行在此指示 为本公开实施例的操作(例如,方法)。在此进一步公开的这种设置 通常被提供为软件、代码和/或其它数据结构,其被设置或编码在计算机可读介质上,该计算机可读介质例如是光学介质(例如,CD-ROM)、 软盘、或硬盘、或其它介质,诸如在一个或多个ROM或RAM或PROM 芯片中的固件或微代码,或者作为专用集成电路(ASIC)或现场可编 程门阵列(FPGA),或者作为在一个或多个模块、共享库中的可下载 软件图像等。可以将软件或固件或其它这种配置安装在计算机化设备 上,以促使计算机化设备中的一个或多个处理器来执行在此说明的技 术。本申请的一个更具体的实施例针对计算机程序产品,其包括计算 机可读介质,该计算机可读介质具有存储在其上的指令,用于根据这 里的实施例来支持内容的管理及分发。当指令被相应计算机设备的处 理器执行时,促使处理器来执行如下步骤i)接收对内容流的特定部分 的请求;ii)响应于接收请求,启动从闪速存储器设备阵列存取数据块, 该数据块包括内容流的特定部分以及内容流的对应相连部分;iii)将所 存取的数据块的至少一部分存储在(基于RAM的)读取缓冲器中,用 于基于点播流传送到相应的目的地;以及,iv)启动将内容流的特定部 分传输到相应目的地。本公开的其它实施例包括软件程序和/或硬件, 来执行上面所概括并将在下面详细公开的任何方法实施例步骤及操 作。请注意,本发明内容并没有指定本公开内容或所要求保护的发明 的每一个实施例和/或增加的新颖方面。相反,本发明内容只提供了对不同实施例及相对于现有技术的对应新颖点的初步讨论。对于本发明 的额外细节和/或可能性视角(变换),读者可以参考本公开的详细描 述部分以及对应的附图。


根据下面对在附图中所说明的优选实施例更为具体的描述,本申 请的前述及其它目标、特征及优势将是显而易见的,其中,在不同视 图中,相同的附图标记表示相同的部分。附图没有必要地进行比例縮 放,相反,重点放在说明实例实施例、原理及概念上。 图1是根据这里的实施例的实例内容管理器的图示。 图2是根据这里的实施例包括指向将来片段及过去片段的多组指针的实例数据流的图示。图3是图示说明根据这里的实施例的缓冲流传送内容的实例的图示。图4是根据这里的实施例的存储器控制器的实例体系结构的图示。 图5是图示说明根据这里的实施例缓冲及分发内容的技术的流程图。图6和图7组合在一起形成图示说明根据这里的实施例缓冲及分发 (distribution)内容的更为具体的技术的流程图。
具体实施方式
下面的公开内容包括几个有用的实施例,其支持对闪速存储器 (flashmemory)及基于RAM的存储器设备的有效率使用。例如,点播 服务器系统在此包括存储器控制器,其协调对一个或多个基于闪速存 储器的存储器设备的存取。闪速存储器设备存储大量内容(例如,包 括嵌入式指针信息组的视频内容),其可以由多个目的地的每一个通 过相应的网络选择性地点播观看。除了具有对闪速存储器设备阵列的存取权之外,存储器控制器还 具有对对应的读取缓冲器及写入缓冲器的存取权。当对应的用户只请求闪速设备中的少量数据时,读取缓冲器能够存储从闪速设备中读出 的大量数据。根据这里的实施例高度获得高闪速读取性能的方式是发 起大的猝发读取。当流传送数据时,在任何给定时间,对应的处理引 擎对闪速设备进行存取并且利用少量的数据。在特定流内,读取存取 可以线性地寻址。因此,如果将初始的大猝发的剩余部分存储在较高 带宽的读取缓冲器中,那么可以实现最高的可能闪速吞吐量。由于类 似的原因,系统不仅可以包括写入缓冲器,如在此进一步所描述的, 还可以促进读取/写入交织。根据这里的实施例的高速缓冲存储器(高速缓冲存储器)对数据 进行高速缓存,例如被转发到请求用户的流传送数据。在一个实施例 中,写入缓冲器存储点播视频内容,其可以由不同的用户选择来观看。 读取缓冲器存储当前流传送给该用户的点播视频内容片段(segment)。图1是描述根据这里的实施例的通信系统100的实例的图示。在本 实例的情况中,通信系统100 (例如,内容仓库(content repository)及 数据流传送系统)包括内容管理器105、网络150 (例如,共用或专 用网络)、仓库1S0、数据流调节器109、以及用于观看视频信息、收 听音频信息等的多个用户域190 (例如,诸如用户域190-1,…,用户域 190-M的家庭环境)。在示出的实施例中,内容管理器105包括主机系统115、存储器 控制器120、写入缓冲器122、读取缓冲器124、以及存储器设备145。 每个用户域190 (例如,诸如个人家庭的订户环境)包括相应的媒体播 放器192 (例如,诸如电视、计算机系统、音频系统等的媒体播放器 192-1,,媒体播放器192-M)、以及机顶盒194(例如,机顶盒194-1,…, 机顶盒194-M)。内容管理器105驻留在相对于用户域190的远程服务器 位置处。根据一个实现方案,与用户域190-1相关联的相应用户(例如,订户)为相应的机顶盒194-1提供一个或多个输入信号196-1 (例如,由诸如订户操作的手持无线远程控制设备的设备所生成的导航控制信号), 用于控制由相应媒体播放器192-1 (例如,电视、视频播放器、音乐播放器等)重放的内容的流传送(例如,视频和/或音频信息)。在这种 实现方案中,相应的机顶盒194-1将从相应的订户接收到的输入控制信 号196-1通过网络150传送到主机系统115,该主机系统115至少部分地管 理将合适的数据提供给用户域190。根据通过用于给定内容流的网络150、从相应用户域190接收到的 命令(例如,开始、停止、快速前进、倒回等),内容管理器105的主 机系统115与存储器控制器120进行通信。例如,主机系统115可以向相 应的机顶盒194传送待进行流传送内容的标题(或者其它独特的标识 符)和/或待进行流传送的对应内容的位置。如早先所讨论的,存储器控制器120管理从存储器设备145中提取 数据的操作,该存储器设备145用于将流临时存储在读取缓冲器124中。 存储器控制器120将合适的内容通过网络150转发到观看或记录内容流 的相应订户,或者使主机系统115能够通过网络150将合适的内容流传 送到观看或记录内容流的相应订户。如果主机系统115尝试检索没有在 读取缓冲器124中发现的数据片段(例如,在高速缓冲存储器缺失时的 存取结果),那么存储器控制器120启动对存储器设备145的存取,以 将请求的片段以及相应内容流的其它片段传递到读取缓冲器124中。在 一个实施例中,存储器控制器120可以期望对内容流的新片段的需求, 用于存储在读取缓冲器124中(根据检测到主机系统115流传送数据并 发射来自存储在读取缓冲器124中的内容范围的末端的数据),以便主 机系统115可以为相应的订户提供不中断的观看体验。因此,每个家庭环境可以包括相对简单的机顶盒194,其允许,应 的用户通过网络150向内容管理器105接收(例如,流传送数据)及发 射(例如,输入命令)。如图所示,内容管理器105可以是位于中心位置的服务器,其根据用户请求,处理很多异步数据流并将这些异步数 据流分发到不同的目的地。在启动通过网络150向订户流传送内容之前,中心管理器105启动将内容存储在存储器设备145中。例如,仓库180可以包括内容库,例 如根据MPEG (运动图像专家组)格式编码的许多电影。仓库180中的 内容可以包括或可以不包括导航指针组。如果不包括,那么对于转发 到内容管理器105的多个内容流(例如,电影)的每一个,数据流调节 器109将导航指针组嵌入到对应的内容片段中,如图2所示。更具体地,图2是根据这里的实施例,插入到相应的内容流201中 的指针组的图示。内容流中的片段可以包括一个或多个不同类型的 MPEG帧信息(例如,I帧、B帧、P帧等)。片段可以是一个或多个图 像组(例如,GOP)。诸如插入的导航指针(例如,PS1、 PS2等)组的元数据可以包括 前进指针(例如,FPT1、 FPT2、 FPT3等)及后退指针(例如,BPT1、 BPT2、 BPT3等)。作为实例,从仓库180接收到的内容流201可以初始 包括SEG2、 SEG3、 SEG4、 SEG5等等。数据流调节器109产生内容流 202,以包括指到内容流其它位置的前进及后退指针。因此,在通过网 络150接收到来自观看内容流(201或202)的订户的不同命令时,主机 系统115能够执行下述操作诸如相同内容片段的重复传输(例如,响 应接收到暂停命令)、以正常观看速率来流传送内容流片段(例如, 根据播放命令)、发射内容流的未来片段(例如,根据接收到快速前 进命令)、发射内容流的早先片段(例如,基于接收到倒回(rewind) 命令)等等。因此,内容流202中的前进及后退指针的一个用途是允许相应的用 户控制在相应媒体播放器上重放存储在仓库180中的相应数据^的哪 部分。例如,插入的前进指针(例如,FPT1、 FPT2、 FPT3)及后退指针(例如,BPT1、 BPT2、 BPT3)允许相应的用户以不同的速率来执 行诸如快速前进及倒回功能的导航。换句话说,如果订户启动了慢的 快速前进速率,那么每片段之间的FPT1提供跳过相应内容流中下一个 相连帧的方式。FPT2允许跳过两个片段到随后的片段,并由此提供更 快的快速前进速率。FPT3允许跳过10个片段到随后的片段,并由此为 订户提供再快一些的快速前进速率。在后两种FPT2和FPT3的情况下, 订户可以分别观看内容流202的每第三和第十帧(例如,片段)。请注 意,在相应内容流中的后退指针(例如,可以使用BPT向后导航)采用 相似的方式。再次参考图l,数据流调节器109提供内容流202,其包括指到主机 系统115的插入的导航指针组。主机系统115接下来启动将内容流202存 储到写入缓冲器122中。在检测到存储在写入缓冲器122中的内容流202的一部分(例如, 一个或多个片段及对应的指针)超过阈值时,存储 器控制器120启动将写入缓冲器中的内容流202的一部分存储到存储器 设备145中。用于启动传递的阈值可以至少部分地基于用于写入存储器设备 145的块规模(size)。例如,在一个实施例中,内容管理器105可以包 括闪速存储器设备阵列,用于存储内容流202以及其它相似的内容流。 存储器设备145的阵列可以需要将指定的数据字节数目写入到存储中。 当写入缓冲器122包括多于特定内容流的指定字节数目时,可以将特定 内容从写入缓冲器122传递到存储器设备145。可以将存储在存储器设备145中的内容流202分发给一个或多个订 户。假设在本实例的情况中,在环境190-1中的相应用户生成输入196-1 (例如,经由远程控制设备的命令),以使与从读取缓冲器124流传送 的内容相关联的当前观看点快速前进。数据流管理器105以及更具体地 主机设备115,通过网络150接收该命令,并且此后使用(从读W缓冲 器124中接收到的)相应内容流中的前进指针用于向前跳,并且通过网络150将来自数据流140中不同位置的数据流传送到用户,如早先所讨论的。如所提到的,前进指针FPT1启用第一快速前进速率,前进指针 FPT2启用第二快速前进速率,前进指针FPT3启用第三快速前进速率等 等。在一个实施例中,网络150表示诸如互联网、广域网、局域网等网 络。因此,数据流管理器105-1用作集中的位置,其管理到诸如环境190 的多个不同位置的数据的流传送。尽管主机系统115可以接收来自读取缓冲器124的内容流202,但是 主机系统115可以从内容流202中去除导航指针,并且只将原始的MPEG 数据信息发射给用户。在这种实施例中,主机系统115使用如上讨论的 导航指针,从而根据从订户接收到的相应命令来流传送合适的内容。图3是根据这里的实施例,内容存储及分发系统的实例的图示。在 该实例实施例中,根据图l的图示,存储器控制器120在将内容从写入 缓冲器122传递到闪速存储器设备阵列345及将闪速存储器设备阵列 345中的内容传递到读取缓冲器124 (例如,高速缓冲存储器)之间进 行协调。如在图3中所描述的,可以将读取缓冲器124划分为多个存储 区域324 (例如,区域324-l,…,区域324-M),用于存储在网络150 上通过主机系统115流传送到相应订户的内容的各部分(例如,如上讨 论的多个片段,但不是整个电影)。例如,读取缓冲器124的区域324-1 可以存储流传送到用户域190-1的内容,读取缓冲器124的区域324-M可 以存储流传送到用户域190-M的内容,等等。存储器控制器120在将早先的片段传输到相应的订户之后,将存储 在闪速存储器设备阵列345中的下一个片段组(或者按照前进方向或者 按照反方向)传递到区域324中。在一个实施例中,主机系统115生成 使用新数据更新区域324的请求,这对于支持将数据连续地流传送给订 户是必要的。可选情况下,存储器控制器120可以监测给定区域的流传 送数据的当前片段位置,并且在必要时,通过将存储在闪速存储i设 备阵列345中的随后内容片段传递到读取缓冲器124的对应区域中,来更新读取缓冲器124中的区域。因此,这里的实施例支持如下操作保持闪速存储器设备阵列345, 以存储视频数据的一个或多个逻辑分组,该视频数据的一个或多个逻 辑分组能够由相应订户按照相连的方式进行重放;分配读取缓冲器124 (例如,基于RAM的存储器)的各部分,以存储视频数据的一个或多 个逻辑分组的不同对应片段,用于通过网络150流传送到不同的相应目 的地;以及,当由主机系统115将读取缓冲器中的当前片段流传送到相 应的目的地时,将区域324 (例如,基于RAM的存储器的各部分)更新 为视频数据的一个或多个逻辑分组的相应新片段。在一个实施例中,分发系统300包括闪速存储器设备阵列345 (例 如,基于NAND技术的阵列),其包括闪速存储器设备380-l、闪速 存储器设备380-2、…、闪速存储器设备380-J。闪速存储器设备阵列345 可以包括64个DIMM (Dual In-Line Memory Modules)(双重内嵌式内 存模块)。每个DIMM在其上可以具有8个(32吉字节)(32 Gigabyte) 闪速存储器设备。存储器控制器120将内容作为条数据(stripped data) 存储在闪速存储器设备阵列345中。通常,存储器控制器120从闪速存储器设备阵列345中存取数据块 (例如,多个字节),而不是存取单一字节。可以将块规模指定为来 自每个闪速存储器设备的2千字节(two kilobytes)(即,页面)的数 据。假设在闪速存储器设备阵列345中存在512个闪速存储器设备(例 如,多个DIMM中每一个DIMM的每个具有64乘8个闪速设备),那么 从闪速存储器设备阵列345中的单一存取可以包括超过1兆字节(one megabyte)的数据。将这种数据组块(chunk)从闪速存储器设备阵列345传递到te取 缓冲器124中的区域324将花费大量的时间,以及需要读取缓冲器124具 有非常大的规模,尤其如果读存储124存储用于流传送到很多不同订户的内容。为了减轻一个或两个这些问题,存储器控制器120可以将相应的存取截断为少于整个块。换句话说,可以从闪速存储器设备阵列345的指定地址来执行读取操作,并且该读取操作被提早截断。这允许闪速存储器设备的存储器子系统阵列345同时改善读取数据的粒度,并且 通过对从闪速存储器设备阵列345中存取到的数据的整个页面不进行 时钟输出,来降低执行读取操作所花费的时间。基于NAND的闪速存储 器设备支持读取截断,并且可用在这里描述的一个实施例中。存储器控制器120可以启动相应的块存取,并且将用于从闪速存储 器设备阵列345中读取数据的猝发规模设定为25%。在块存取的块读取 阶段期间,在闪速存储器设备阵列345中的数据是可用(例如,可以从 存储器设备的对应感测放大器中读取)之后,存储器控制器120仅仅存 取可用数据块的一部分(例如,在该实例中为25%)。因此,在本实例 的情况中,存储器控制器120将不存取来自闪速存储器设备阵列345中 每个闪速存储器设备的2千字节的可用数据。相反,存储器控制器120 将只存取并传递每闪速存储器设备的2千字节的四分之一 (例如,512 字节),用于传递到读取缓冲器124中的合适区域。基于将猝发规模设 定为25%,存储器控制器120传递来自闪速存储器设备阵列345的可用的 l兆字节的四分之一 (例如,按照512个闪速存储器设备进行条划分 (striped))。因此,这里的实施例可以包括启动从闪速存储器设备 阵列345中读取数据块;在数据块可用于从存储器设备阵列中检索之 后,将读取截断为仅仅检索数据块的一部分,而不是检索全部数据块; 以及,将检索到的数据块的一部分存储在读取缓冲器124的区域324中,该区域被分配用于将数据块的一部分基于点播流传送到相应的订户目 的地。在此描述的过程限制了整体存储子系统的吞吐量,但是允许设 计成为切实可行的。在缓冲器规模及整体吞吐量之间进行折中。将内容写入闪速存储器设备阵列345可以需要擦除旧数据,并且此 后将新数据写入闪速存储器设备阵列345。在允许将数据从存:储器设备 阵列345传递到读取缓冲器124与将数据从写入缓冲器122传递到闪速存储器设备阵列345之间,存储器控制器120可以允许修改模式,其中 可以修改存储在闪速存储器设备阵列345中的数据。例如,存储器控制 器120可以接收待存储在存储器设备阵列345指定位置的数据的新页 面。响应于接收到新页面,存储器控制器120检索包括当前页面的相连 页面的范围,该当前页面存储在存储器设备阵列中的、将被新页面改 写的位置。在本地缓冲器中,存储器控制器120将检索到的多个页面范 围中的当前页面替换为新页面。存储器控制器120启动擦除先前检索到 的相连页面范围的范围。在擦除之后,并且在修改模式时,存储器控 制器120启动存储多个检索到的页面,但是写入到指定位置的页面除 外。在该实例中,将新页面而不是旧页面写入到指定位置。因此,这里的实施例通过将数据的若干页面写入到64个页面的块 内并且不丢失数据的其它页面,来支持对闪速存储器中数据的有效率 的修改。例如,根据如上讨论的实施例,存储器控制器120可以将64个 页面读入到缓冲区中,擦除存取到的64个页面的块,并且将任何新页 面与旧页面组合,用于将块写回到闪速存储器设备阵列345中。图4是图示说明根据这里的实施例,用于实现一个或多个处理功能 (例如,存储器控制器处理功能)的样本体系结构的图示。例如,如 图所示,可以在相应的计算机系统中实现内容管理器105,该计算机系 统包括处理器313以及对应的软件代码(例如,存储器控制器应用程序 120-2),以执行在本文件中讨论的实施例。如早先所讨论的,并且作 为对图4中示出的实施例的替代,可以经由诸如逻辑门、缓冲器等硬件 组件、或者合适硬件及合适软件资源这两种类型的组合,来实现存储 器控制器120及内容管理器105。如图4所示,本实例的内容管理器105 (例如,计算机系统)包括 互连3U,其耦合存储器系统312、处理器313、输入/输出接口314。输 入/输出接口314允许(enable)内容管理器105存取写入缓冲器i22、存 储器设备145、读取缓冲器124、以及主机系统115,以及/或者与写入缓冲器122、存储器设备145、读取缓冲器124、以及主机系统115进行通信。采用存储器控制器应用程序120-1来编码存储器系统312,存储器 控制器应用程序120-1支持协调在写入缓冲器122与存储器设备145之间 的数据传递、存储器设备145与读取缓冲器124之间的数据传递,并且 与主机系统115进行通信的功能。存储器控制器应用程序120-1可以实施 为软件代码,例如,支持根据在此描述不同实施例的处理功能的数据 和/或逻辑指令(例如,存储在存储器中或者诸如磁盘的其他计算机可 读介质的代码)。在操作期间,处理器313经由互连311对存储器系统 312进行存取,以便开动(launch)、运行、执行、解释或另外执行存 储器控制器应用程序120-1的逻辑指令。存储器控制器应用程序120-1的 执行产生了存储器控制器过程120-2中的处理功能。换句话说,存储器 控制器过程120-2表示如在图1中所讨论的存储器控制器的一个或多个 部分。应注意,在图4的示出的计算机系统中执行的存储器控制器应用程 序120-l可以表示为存储器控制器应用程序120-l和/或存储器控制器过 程120-2中的一个或两个。为了该讨论的目的,将一般性的提及存储器 控制器120,作为执行或支持多种步骤及功能操作,以实行在此讨论的 技术。还应注意,这里的实例配置包括存储器控制器应用程序120-1本身 (即,未执行或未进行的逻辑指令和/或数据)。存储器控制器应用程 序120-1可以存储在计算机可读介质(诸如软盘)、硬盘或光学介质上。 存储器控制器应用程序120-1还可以存储在存储器系统312中,例如以固 件、只读存储器(ROM)的形式,或者如在该实例中,作为在例如随 机存取存储器(RAM)中可执行的代码。除了这些实施例之外,还.应 了解,这里的其它实施例包括在处理器313中执行存储器控制器一应用程 序120-1,作为存储器控制器过程120-2。因此,本领域的技术人员应了解,数据通信设备可以包括其它过程和/或软件和硬件组件,用于执行 在此描述的功能。图5是图示说明根据这里的实施例,使用闪速存储器或其它类型的 存储器设备145来促进内容分发的技术的流程图。请注意,将关于图l-4中的如上所讨的实施例来描述图5。此外,如上所述,请注意,可以使 用硬件和/或软件来实现存储器控制器120以及相关功能。在步骤510中,存储器控制器120接收对诸如内容流202的内容流的 特定部分的请求。在步骤520中,响应于接收该请求,存储器控制器120启动从存储 器设备145 (例如,闪速存储器设备阵列)存取数据块(例如,多个数 据字节)。由存储器控制器120所存取的数据块可以包括由主机系统115 请求的内容流202的特定部分,以及该内容流的对应相连部分。换句话 说,主机系统115可以请求存储器设备145中内容流202的片段SEG100。 响应于该请求,存储器控制器120可以启动从存储器设备145中存取数 据块,包括SEG100到SEG150,尽管主机系统115请求仅对SEG100进行 检索,用于存储在读取缓冲器122中以及通过网络150在未来传输到对 应的订户。在步骤530,存储器控制器120将所有(例如,SEG100到SEG150) 或者一部分(例如,如果发生存取被截断,那么是25%)存取到的数据 块(例如,SEG100到SEG112)存储在读取缓冲器124中,用于基于点 播流传送到相应的目的地,例如用户域190-1处的订户。在步骤540中, 存储器控制器120启动通过主机系统115将由请求所指定的内容流的特 定部分传输到相应订户目的地。图6和图7组合在一起形成根据这里的实施例的协调数据传递及数 据分发的技术的流程图600 (例如,流程图600-l以及流程图600-2)。在图6中流程图600-l的步骤610中,存储器控制器120接收来自主 机系统115对内容流的特定部分的请求,该内容流例如是存储在存储器 设备145中的内容流202。可以响应于订户将命令发送到主机系统115以 观看内容流,而发生来自主机系统115的请求。在一个实施例中,订户 从存储在存储器设备145中的内容列表中选择内容流(例如,电影)。在步骤615,响应于接收第一请求,存储器控制器120启动从(基 于闪速的阵列)存储器设备145存取数据块(例如,多个数据字节)。 被存取的数据块包括由存储器控制器120所请求的内容流的特定部分, 以及从主机系统115转发以被订户观看的内容流的对应相连 (contiguous)部分。在与步骤615相关联的子步骤620中,存储器控制器120启动从闪速 存储器设备阵列145读取数据块。在与步骤615相关联的子步骤625中,在数据块可用于从存储器设 备145中检索之后,存储器控制器截断从存储器设备145的相应数据读 取,以检索数据块的一部分(例如,数据块的25%),而不是检索来自 存储器设备145的所有数据块。换句话说,如上所述,存储器控制器120 可以向存储器设备请求比存储器控制器120实际传递到读取缓冲器124 中的更大的数据块。这可能要求增加的存取数目,以将存储器设备145 中的数据传递到读取缓冲器124。然而,传递及存储读取缓冲器124中 较小部分的数据降低了必须用来实现读取缓冲器124的基于RAM的存 储器的量。在步骤630中,存储器控制器120将从存储器设备145存取的数据块 的至少一部分存储在读取缓冲器124中,用于基于点播流传送到诸如用 户域190的相应的目的地。在步骤635中,存储器控制器120启动通过主机系统115将由该请求 所指定的内容流特定部分传输到相应订户目的地。在步骤640中,存储器控制器120接收对内容流202的不同或其它部 分的其他请求(例如,第二请求)。在步骤645中,存储器控制器120启动从读取缓冲器向主机系统115 传输新近请求的一部分内容。在这种情况下,由于读取缓冲器124恰巧 当前存储了由主机系统115所请求的内容片段,所以发生高速缓冲存储 器一致(hit)(例如,读取缓冲器124是高速缓冲存储器)。在步骤650,如上所述,在允许将数据从存储器设备145移动到读 取缓冲器124的传递操作的同时,存储器控制器120还保持写入缓冲器 122,用于临时存储用于最终存储在存储器设备阵列145中的接收数据。在步骤655中,响应于检测到在写入缓冲器122中接收数据超过阈 值,存储器控制器120: i)禁止从存储器设备阵列145到读取缓冲器124 的数据存取(传递),ii)启动将存储在写入缓冲器124中的接收数据(包 括或排除导航指针组)传递到存储器设备阵列145, iii)在传递期间,允 许将一个或多个内容流从读取缓冲器124向相应目的地的流传送,以便 订户可以观看不中断的电影,以及iv)在传递之后,重新允许将存储在 存储器设备阵列145中的数据向读取缓冲器124的传递。如所讨论的,这里的技术同样适用于诸如分发存储在基于闪速存 储器的存储器设备中的内容的应用。然而,应注意,这里的配置不限 于在这种应用中使用,并由此,这里的配置及其变形同样适用于其它 应用。尽管参考其优选实施例具体地示出并描述了本发明,但是本领域 的技术人员应了解,在不背离由所附权利要求所限定的本发明主旨及范围的情况下,其中可以进行形式及细节的各种变化。这种变化意图 包括在本发明的范围之内。同样,本发明实施例的在先描述并不意图 是限制性的。更确切地,在如下的权利要求中提出对本发明实施例的 任何限制。
权利要求
1.一种方法,包括接收对内容流的特定部分的第一请求;响应于接收所述第一请求,启动从存储器设备阵列存取数据块,所述数据块包括所述内容流的所述特定部分以及所述内容流的对应相连部分;将所述被存取的数据块的至少一部分存储在读取缓冲器中,用于基于点播流传送到相应目的地;以及启动将所述内容流的所述特定部分传输到所述相应目的地。
2. 根据权利要求l所述的方法,其中,启动从所述存储器设备阵 列存取数据块包括从所述存储器设备阵列中检索比由所述第一请求 指定的数据更多的数据;以及其中,存储至少一部分所述数据块包括将从所述存储器设备阵 列中检索到的、比由所述第一请求所指定的数据更多的数据存储在所 述读取缓冲器中。
3. 根据权利要求2所述的方法,进一步包括 接收对所述内容流的不同部分的第二请求;以及 启动从所述读取缓冲器传输所述内容的不同部分,所述内容流的所述不同部分包括在存储在所述读取缓冲器中的所述数据块的所述一 部分中。
4. 根据权利要求3所述的方法,其中,启动从所述存储器设备阵 列中存取数据块包括启动从所述存储器设备阵列读取所述数据块;在所述数据块可用于从所述存储器设备阵列中检索之后,截断相 应的读取,以检索所述数据块的一部分,而不是检索所有的所述数据 块;以及将所述数据块的所述一部分存储在所述读取缓冲器中。
5. 根据权利要求l所述的方法,其中,启动从所述存储器设备阵 列存取所述数据块包括启动从所述存储器设备阵列中读取所述数据块;在所述数据块可用于从所述存储器设备阵列中检索之后,截断所 述读取,以检索所述数据块的一部分,而不是检索所有的所述数据块; 以及将所述数据块的所述一部分存储在所述读取缓冲器的下述区域 中该区域被分配用于将所述数据块的所述一部分基于点播流传送到 所述相应目的地。
6. 根据权利要求l所述的方法,进一步包括在允许将数据从所述存储器设备阵列传递到所述读取缓冲器的同 时,保持写入缓冲器,用于临时地存储用于最终存储在所述存储器设 备阵列中的接收数据;以及响应于检测到所述接收数据超过阈值i) 禁止将数据从所述存储器设备阵列存取到所述读取缓冲器;ii) 启动将存储在所述写入缓冲器中的所述接收数据传递到所述存储器设备阵列;Hi)在所述传递期间,将所述读取缓冲器中的所述内容流的 所述特定部分流传送到所述相应目的地,以及iv)在所述传递之后,重新允许将存储在所述存储器设备阵 列中的数据传递到所述读取缓冲器。
7. 根据权利要求l所述的方法,进一步包括在允许将数据从所述存储器设备阵列传递到所述读取缓冲器之 间,允许修改模式,在该修改模式中可以修改存储在所述存储器设备 阵列中的所述数据;接收要存储在所述存储器设备阵列的相应位置处的数据的新页面;检索多个页面的范围,该多个页面包括存储在所述存储器设备阵 列的所述位置处的当前页面;将所述检索到的多个页面范围内的所述当前页面替换为所述新页 面;以及在所述修改模式期间,启动将包括所述新页面的所述多个页面存 储到所述存储器设备阵列,以便将所述新页面存储在所述存储器设备 阵列的所述相应位置处。
8. 根据权利要求7所述的方法,其中,启动将包括所述新页面的 多个页面存储到所述存储器设备阵列包括从所述存储器设备阵列中 擦除包括所述当前页面的所述多个页面。
9. 根据权利要求l所述的方法,其中,启动存取数据块包括对 闪速存储器设备阵列进行存取,该闪速存储器设备支持对存储数据的 多个字节进行块存取。
10. 根据权利要求9所述的方法,其中,存储所述被存取的数据块 的至少一部分包括将所述被存取的数据块的所述一部分存储到基于 RAM (基于随机存取存储器)的存储器中。
11. 根据权利要求10所述的方法,进一步包括保持所述闪速存储器设备阵列,以存储能够以相连方式重放的视 频数据的至少一个逻辑分组;以及分配所述基于RAM的存储器的各部分,以存储所述视频数据的所 述至少一个逻辑分组的不同对应片段,用于通过网络流传送到不同的相应目的地;以及当所述不同的对应片段被流传送到所述相应的目的地时,将所述 基于RAM的存储器的所述各部分更新为视频数据的至少一个逻辑分组的相应新片段。
12. —种支持选择和粘帖操作的计算机系统,所述计算机系统包括处理器;存储器单元,该存储器单元存储与由所述处理器执行的应用程序 相关联的指令;以及互连,该互连耦合所述处理器及所述存储器单元,允许所述计算 机系统执行所述应用程序并执行如下操作接收对内容流的特定部分的第一请求;响应于接收所述第一请求,启动从存储器设备阵列存取数据块, 所述数据块包括所述内容流的所述特定部分以及所述内容流的对应相 连部分;将所述被存取的数据块的至少一部分存储在读取缓冲器中,用于 基于点播流传送到相应目的地;以及启动将所述内容流的所述特定部分传输到所述相应目的地。
13. 根据权利要求12所述的计算机系统,其中,启动从所述存储 器设备阵列存取数据块包括从所述存储器设备阵列中检索比由所述 第一请求指定的数据更多的数据;以及其中,存储至少一部分所述数据块包括将从所述存储器设备阵 列中检索到的、比由所述第一请求所指定的数据更多的数据存储在所 述读取缓冲器中。
14. 根据权利要求13所述的计算机系统,进一步支持如下操作 接收对所述内容流的不同部分的第二请求;以及 启动从所述读取缓冲器传输所述内容的不同部分,所述内容流的所述不同部分包括在存储在所述读取缓冲器中的所述数据块的所述一 部分中。
15. 根据权利要求14所述的计算机系统,其中,启动从所述存储器设备阵列中存取数据块包括启动从所述存储器设备阵列读取所述数据块;在所述数据块可用于从所述存储器设备阵列中检索之后,截断相 应的读取,以检索所述数据块的一部分,而不是检索所有的所述数据块;以及将所述数据块的所述一部分存储在所述读取缓冲器中。
16. 根据权利要求13所述的计算机系统,其中,启动从所述存储 器设备阵列存取所述数据块包括启动从所述存储器设备阵列中读取所述数据块;在所述数据块可用于从所述存储器设备阵列中检索之后,截断所 述读取,以检索所述数据块的一部分,而不是检索所有的所述数据块; 以及将所述数据块的所述一部分存储在所述读取缓冲器的下述区域 中该区域被分配用于将所述数据块的所述一部分基于点播流传送到所述相应目的地。
17. 根据权利要求13所述的计算机系统,进一步支持如下操作在允许将数据从所述存储器设备阵列传递到所述读取缓冲器的同 时,保持写入缓冲器,用于临时地存储用于最终存储在所述存储器设备阵列中的接收数据;以及响应于检测到所述接收数据超过阈值i) 禁止将数据从所述存储器设备阵列存取到所述读取缓冲器;ii) 启动将存储在所述写入缓冲器中的所述接收数据传递 到所述存储器设备阵列;iii) 在所述传递期间,将所述读取缓冲器中的所述内容流的 所述特定部分流传送到所述相应目的地,以及iv) 在所述传递之后,重新允许将存储在所述存储器设备阵列中的数据传递到所述读取缓冲器。
18. 根据权利要求13所述的计算机系统,进一步支持如下操作 在允许将数据从所述存储器设备阵列传递到所述读取缓冲器之间,允许修改模式,在该修改模式中可以修改存储在所述存储器设备 阵列中的所述数据;接收要存储在所述存储器设备阵列的相应位置处的数据的新页面;检索多个页面的范围,该多个页面包括存储在所述存储器设备阵列的所述位置处的当前页面;将所述检索到的多个页面范围内的所述当前页面替换为所述新页 面;以及在所述修改模式期间,启动将包括所述新页面的所述多个页面存 储到所述存储器设备阵列,以便将所述新页面存储在所述存储器设备 阵列的所述相应位置处。
19. 根据权利要求18所述的计算机系统,其中,启动将包括所述 新页面的多个页面存储到所述存储器设备阵列包括从所述存储器设备阵列中擦除包括所述当前页面的所述多个页面。
20. 根据权利要求13所述的计算机系统,其中,启动存取数据块 包括对闪速存储器设备阵列进行存取,该闪速存储器设备支持对存储数据的多个字节进行块存取。
21. 根据权利要求20所述的计算机系统,其中,存储所述被存取 的数据块的至少一部分包括将所述被存取的数据块的所述一部分存 储到基于RAM (基于随机存取存储器)的存储器中。
22. 根据权利要求21所述的计算机系统,进一步支持如下操作 保持所述闪速存储器设备阵列,以存储能够以相连方式重放的视频数据的至少一个逻辑分组;以及分配所述基于RAM的存储器的各部分,以存储所述视频数据的至 少一个逻辑分组的不同对应片段,用于通过网络流传送到不同的相应 目的地;以及当所述不同的对应片段被流传送到所述相应的目的地时,将所述 基于RAM的存储器的所述各部分更新为视频数据的至少一个逻辑分组 的相应新片段。
23. —种系统,包括装置,用于接收对内容流特定部分的请求;装置,用于响应于接收所述第一请求,启动从存储器设备阵列存 取数据块,所述数据块包括所述内容流的所述特定部分以及所述内容 流的对应相连部分;装置,用于将所述被存取的数据块的至少一部分存储在读取缓冲 器中,用于基于点播流传送到相应目的地;以及装置,用于启动将所述内容流的所述特定部分传输到所述相应目 的地。
全文摘要
本申请涉及数据分发及缓冲。此处的一种点播服务器系统,包括存储器控制器,其协调对一个或多个基于闪速的存储器设备的存取。该闪速设备存储大量视频内容,该视频内容可以通过相应的网络,由多个目的地的每一个选择性地点播观看。除了具有对闪速存储器设备阵列的存取权之外,存储器控制器还具有对对应的读取缓冲器及写入缓冲器的存取权。读取缓冲器及写入缓冲器的使用允许存储器控制器在将存储在写入缓冲器中的数据传递到存储器设备阵列、与将存储器设备阵列中的数据传递到读取缓冲器之间进行切换。写入缓冲器存储可以被不同用户选择观看的点播视频内容。读取缓冲器存储当前被流传送到用户的点播视频内容片段。
文档编号H04N7/173GK101242520SQ200810002668
公开日2008年8月13日 申请日期2008年1月14日 优先权日2007年1月12日
发明者小弗朗西斯·J·施蒂夫特, 迈克尔·A·卡恩, 马修·G·萨金特 申请人:博路技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1