计算机存储器组织的制作方法

文档序号:6746383阅读:432来源:国知局
专利名称:计算机存储器组织的制作方法
技术领域
本发明涉及到计算机存储器,具体地说,本发明涉及到对存储器中的存储区进行划分以及/或者对快擦写存储器(flash memory)的内容进行更新。本发明在广播和接收系统中的接收机/译码器、特别是数字交互式卫星电视和/或无线电系统的接收机/译码器内有特别的用途。但是,应该认识到,本发明并不局限于所述系统或该类型的系统,而是更一般地适用于多种计算机系统。
在计算机系统中,具体说在诸如用于数字电视或无线电设备的接收机/译码器之类的较大的、其中包括有计算机系统的系统中,通常要限制存储器的数量。这就意味着必须要对存储器进行组织以使得系统所需的各种功能所使用的存储器空间达到最小。此外,还必须要使访问存储器的至少某些部分所需的时间达到最小。
本发明的一个方面具体涉及到在存储器中设置或组织缓冲区。
用于设置缓冲区的通常技术是利用用来分配缓冲区的动态系统。但是,在现有的方法中,这种标准的系统具有某些缺陷。它会导致存储器中有存储残片,并且,对内务操作的需求会限制其速度。而且,如果需要扩大缓冲区,就需要移动存储器的数据块以便为这种扩大形成空间。
依照本发明的一个方面,提供了一种用于对计算机系统中的存储区内的缓冲区进行限定和寻址的系统,该系统包括池(pool)大小存储装置,它用于存储多个池大小;缓冲区大小存储装置,它用于存储用于各个池的缓冲区大小;以及,计算装置,它用于根据上述大小计算预定池中的预定缓冲区的地址。最佳的是,还包括用于以累加形式确定池大小并将它们以累加的形式存储在池大小存储装置中的装置。可在每个池的开始处限定一保留区,并设置用于选择累加池大小指令或计算装置的输出的装置。可检查预定池号、预定缓冲区号和预定字节的越界值。
目前,可使用多种类型的计算机存储器。不同类型存储器之间的一个主要区别在于易失性存储器和非易失性存储器。易失性存储器仅在向该存储器供电时才能保存其内容,一旦断电,就会丢失其内容,而非易失性存储器则即使是断电也能长期地保存其内容。另一个主要的区别是可写存储器和只读存储器。
易失性存储器一般就是RAM,而非易失性存储器则有多种类型。RAM通常是可写的,而只读存储器则就是ROM。后一种区别不一定是一成不变的。当然,从某种意义上说,任何存储器都必须可写一次,但是,尽管有一定的困难,某些ROM式存储器还是可以改变其内容。因此,有诸如PROM(可编程(即可写)只读存储器)、EEPROM(电可擦可编程存储器)以及快擦写存储器之类的存储器类型。
不同种类的存储器具有不同的特征(例如不同的读取时间和不同的成本),因此,在一个计算机系统中通常应使用几种不同类型存储器的组合。
本发明的另一个方面涉及到快擦写存储器。快擦写存储器通常与ROM相类似,因为它是非易失性的。通常还按与ROM相类似的方式即可读出但不能写入的方式使用快擦写存储器。但是,快擦写存储器是可以写入的,只是写入有些困难。具体地说,通常将快擦写存储器分成页,一般地说,每页的大小为数千字节,并且,按页对快擦写存储器进行写操作。更具体地说,为了写入快擦写存储器。必须擦除整个页,然后将新内容写进擦除后的页,此外,这种写操作基本上是一次不可中断的操作。(很明显,在擦除与写入之间可以有间隔。)从理论上说,可将快擦写存储器中的信息组织成单个字以上的有任何大小的单元。但是,实际上通常将信息组织成有显著大小的块。一个块可包括这样的数据,例如永久或半永久的信息的表或程序或子例程。通常将块的大小选定为小于页的大小(如果块大于页,则应将块分成小于页大小的子块)。
一般地说,在对快擦写存储器进行更新时,应该保留某些已存在于其中的信息。所以,这就需要将要被更新的页读入RAM以形成该页的映像,然后,通过将要加入的信息插进该页来更新RAM中的这种映像。同时,可删除该页内的不再需要的任何信息。然后,将更新后的映像写回快擦写存储器。
总的来说,块大小不是固定的,也就是说,不同的块有不同的大小。很明显,这就会在废弃某些现有的块并增加新块时出现困难。通过使得块可以移动,能够在很大程度上克服上述困难,因此,在更新一个页时,可重新排列要保留在该页中的块,所以,可将该页中的任何未用的区域合并进一个单个的大的未用区域。
如果块是可移动的,那么,它们就不能用固定的地址来寻址。相反,必需要对某种块定位或寻址数据结构进行维护,因此,实际上,可用某种名字或描述符来对块进行检索。在块有不同大小的情况下,这就需要有关块的位置和特征的信息。可用多种方式来实现这一点。因此,应在快擦写存储器的开始处保存有块的详细目录(它们的位置和特征),或者,在快擦写存储器的开始处保持有块的位置目录,并且,每个块都可包括一头标,它给出了块的特征。另外,对快擦写存储器的每一页来说都可保存有一独立的块定位数据结构。
所有的块定位数据结构均具有共同的特征即对该结构内容的每次变化来说都需要更新快擦写存储器。写一新块显然要更新快擦写存储器,删除一个块也相似地需要进行更新。尽管不一定是在物理上将块删除,但必须要更新块定位数据结构以指示该块已不再有效。
我们已经认识到,可将对快擦写存储器的更新要求限于增加新块,换句话说,可在不需更新快擦写存储器的情况下有效地删除块。为了做到这一点,将块定位数据结构至少部分地放在快擦写存储器外面的外部存储器内,最好是放在EEPROM存储器内。
外部存储器可存放基本上是全部的块定位数据结构即块地址和描述符。另外,外部存储器可仅存放各块在快擦写存储器内的位置,而各块的描述符则作为块本身的头标包括在快擦写存储器内。在这两种情况下,可将外部目录组织成用于整个快擦写存储器的单个结构或按页来组织外部目录。
但是,最好能通过仅将各块的有效位保存在外部存储器内来最大限度地减小外部存储器的大小,而块地址和描述符则保存在快擦写存储器自身内。这就能将外部存储器减小成为块有效性的位图。为了擦除快擦写存储器内的一个块,需要做的全部工作就是将外部存储器中的用于该块的位从“有效”改为“无效”。
就上述的页更新的一般过程而言,这一过程存在着问题。如果在这一过程中断了供给系统的电源(或其它主要系统中断或崩溃),那么,就会丢失RAM的内容,所以,会丢失写进快擦写存储器的页的经过更新的映像。在将更新过的页写回快擦写存储器之前,会擦除快擦写存储器页中先前更新过的信息。(并且,仅能部分地将更新过的页写回快擦写存储器,所以,会丢失该页的某些内容,而且,由于一般不知道断电的准确时间,所以通常无法精确地知道已将多少更新过的页的内容写进了快擦写存储器。)本发明的一个目的是消除或克服上述问题。
依照这一方面,本发明提供一种计算机中的快擦写存储器系统,其中,将快擦写存储器分成独立可写的页,所述快擦写存储器系统包括用于将快擦写存储器的一个页作为映像页拷贝进RAM存储器并更新该映像页的装置;用于将上述映像页写回快擦写存储器中不同页的装置;一主记录表,它保存在独立的非易失性存储器内并标识快擦写存储器中的有效页;以及,用于在已对快擦写存储器中的一个页进行了更新时对上述主记录表进行更新的装置。保存上述主记录表的存储器最好是EEPROM存储器。一般是通过主记录表来访问快擦写存储器。
在正常的操作中,所述主记录表会将快擦写存储器的某些页记录为有效,而将另一些页记录为无效,“无效”是指该页不包含有有效信息。一个页可按多种方式无效,因此,该页可以是空的,可以己成功地拷贝进另一个页,或者,已使写操作中断。
在本系统中,对一个页进行更新包括将所更新的页从快擦写存储器中现有的页拷贝至另一个页(所说的拷贝包括更新该页的内容)。因此,本系统必须总是将至少一个页保持为无效,也可将这个无效的页同样地说明为“备用页”。在对一个页进行更新时,仅在对该页的拷贝完成之后更新所述主记录表。因此,如果页拷贝中断,所述主记录表就会保持不变,所以,原有的页会保持为有效,而新页则仍标记为备用。可在以后重新进行拷贝或者放弃拷贝。
即使就上述系统而言,也存在有潜在的困难。到目前为止所述的系统依赖于对主记录表的更新。所以,重要的是确保主记录表有高度的完整性。
由于与更新快擦写存储器的一个页相比更新主记录表是非常快的,所以,在使用有足够容量去维持系统操作直至至少更新主记录表所需的那么长时间的电源的情况下,可刚好在更新主记录表之前检查电源的状态。但是,所述主记录表最好包括一检错部并且可在更新之后立即被拷贝至一后备记录表中。所述系统包括一个用于当使用主记录表访问快擦写存储器时检查主记录表出错情况并在主记录表有错的情况下使用后备记录表的装置。因此,如果主记录表有错,所述系统就将最近对快擦写存储器的更新处理为无效,就好像已中断了更新那样。
当然,可以将主记录表拷贝进后备记录表的操作中断。但是,仅在完成了主记录表的主更新之后才进行这种拷贝操作。以后对快擦写存储器的任何访问都包括对主记录表进行检查,主记录表不会有错,故不需要访问后备记录表,与该表的出错状态没有关系。
但是,在对快擦写存储器的下一次更新过程中,要更新主记录表。这种更新操作可能如上所述那样会中断,如果是这样的话,就必须使用后备记录表去访问更新之前的快擦写存储器。所以,不应允许后备记录表有错。通过作为对快擦写存储器进行更进的第一步(或至少在将更新过的映像页从RAM写入快擦写存储器的备用页之前)而将主记录表拷贝至后备记录表可以方便地做到这一点。
从以上的说明中可以看出,快擦写存储器中的信息或数据块并不位于固定的位置。在更新快擦写存储器的页时,这些页中的数据块可逐页移动并且还可能改变它们在页中的位置。所以,需要有某种形式的目录,从而,可在需要时找到数据块。所述目录信息保存在上述记录表中或保存在快擦写存储器本身内,可分散在上述两种存储单元内。
我们已经认识到,一般地说,所述目录信息通常不会改变,除非数据块本身发生了变化,所以,能很方便地将目录信息从及数据块存入快擦写存储器。但是,存在有这样一种目录型信息,它会在数据本身不变的情况下也即不管数据块是否有效的情况下发生变化。所以,能很方便地将数据块有效性信息存储进记录表。这就允许在不必更新快擦写存储器的情况下有效地删除一个数据块,需要做的全部工作就是将块指示符从有效改为无效。
当然,如果在后来对带有数据块的页进行更新,那么,就不能将带无效指示符的块从该页拷贝至RAM内的映像页,所以,这时可从更为实际的意义上删除这些块。(这些数据块实际仍保留在变成新备用页的旧页内但当然是不可访问的,并且,在将该新的备用页用于对快擦写存储器的下一次更新时,就会将所述数据块完全在物理上删除。)所以,对各个页来说,上述记录表最好包含有一组数据块有效性指示符,这些指示符可很方便地地呈单个位的形式。这会增加记录表的大小,这意味着可用多种标准技术来提供检错部,尽管可以使用错误检测或校正码或杂凑型函数,但最好是使用循环冗佘检测(CRC)。
当然,记录表中用于一个页的块有效性指示符必须与快擦写存储器中的该页内的块本身相联系。这一点可通过使快擦写存储器中的页内的块保持与它们在记录表中的指示符有相同的顺序来实现。但是,最好是在快擦写存储器的各页内提供一头标,该头标包含有一组指向该页中的数据块的实际位置的指针,这就使得在页中排列数据块时有较大的自由度。
用于页内各数据块的识别信息(例如块名)可包括在页头标中或者是作为块头标而处在数据块开始处。所述最佳实施例采用了后一种方式。所述识别信息可包括块连接信息,因此,可将大的数据单元分解成两个或更多的数据块。
本发明的另一个方面提供了一种供数据广播和接收系统使用的接收机/译码器,它包括如上所述的系统或存储器系统或快擦写存储器。
最佳的是,所述接收机/译码器还包括用于接收压缩的MPEG信号的装置、用于对接收到的信号进行译码以提供电视和/或无线电信号的装置、以及用于将所述电视信号提供给电视机和/或无线电的装置。
以下参照附图以纯粹举例的方式说明本发明的最佳特征,在附图中

图1示出了本发明最佳实施例的数字电视系统的整体结构;图2示出了上述数字电视系统的交互系统的结构;图3示出了下载至交互式接收机/译码器的存储器中的模块内的文件的结构;图4是上述计算机系统的相关部分的简化框图;图5是RAM的一部分的组织结构的图;图6示出了一个设置缓冲区(Set Buffers)命令的结构;图7是存储器管理单元的结构;图8是上述系统的框图;图9示出了所述快擦写存储器和记录表的逻辑结构;以及图10示出了一快擦写存储器页和记录表的一个子部分的逻辑结构。
图1示出了一数字电视系统1000的概貌。本发明包括一通常的数字电视系统2000,它使用周知的MPEG-2压缩系统来传送压缩后的数字信号。具体地说,广播中心内的MPEG-2压缩器2002接收数字信号流(一般是视频信号流)。压缩器2002通过链路2006与一多路复接器和扰码器2004相连。多路复接器2004接收多个其它输入信号、汇集一个或多个传输流并将压缩后的数字信号通过链路2010传给广播中心的发射器2008,所说的链路2010当然可以呈包括电信链路在内的多种形式。发射器2008通过上行链路2012将电磁信号传给卫星收发器2014,在该收发器中,对所述电磁信号作电处理并通过理论上的下行链路2016将其广播给地面接收机2018,所述地面接收机通常呈最终用户所拥有或租借的抛物面天线的形式。将接收机2018所接收的信号传给最终用户所拥有或租借的并与最终用户的电视机2022相连的集成接收机/译码器2020。接收机/译码器2020将压缩后的MPEG-2信号译码成用于电视机2022的电视信号。
条件接入系统3000与多路复接器2004和接收机/译码器2020相连并部分地位于广播中心内、部分地位于所述译码器内。条件接入系统3000能使得最终用户接入来自一个或多个广播提供者的数字电视广播。可将能对涉及到商业节目(也就是说,广播提供者所出售的一种或多种电视节目)的消息进行解密的智能卡(smart card)插进接收机/译码器2020。最终用户可利用译码器2020和智能卡以预订模式或每次观看付费模式购买商业节目。
交互系统4000也与多路复接器2004和接收机/译码器2020相连,并且也部分地位于广播中心内、部分地位于所述译码器内,而且能使得最终用户通过调制解调的反向信道(modemmed back channel)4002与多种应用程序相交互工作。
图2示出了本发明的数字电视系统1000的交互电视系统4000的总体结构。
例如,交互系统4000使得最终用户一经要求就能通过电视机根据屏幕目录来购买物品、查询本地新闻和天气形势图并玩游戏。
交互系统4000在总体上包括四个主要部件一位于广播中心(或其它地方)的创作工具4004,它能使广播提供者创建、开发、调试和测试应用程序;
一位于广播中心的应用程序和数据服务器4006,它与创作工具4004相连并用于使广播提供者准备、鉴别和格式化传给多路复接器和扰码器2004的应用程序及数据以便插进要加以广播给最终用户的MPEG-2传输流(一般是插进该传输流的专用部)中;一虚拟机,该虚拟机包括运行时间引擎(RTE)的4008,它是安装在最终用户所拥有或租借的接收机/译码器2020内的可执行代码,该代码可使最终用户接收、鉴别应用程序并对应用程序进行解压缩且将该应用程序装载进接收机/译码器2020的工作存储器2024内以便执行。引擎4008还可运行常驻的通用应用程序。引擎4008与硬件及操作系统无关。
一调制解调的反向信道4002,它位于接收机/译码器2020与应用程序和数据服务器4006之间,以便在最终用户请求时使指令服务器4006的信号将数据和应用程序插进MPEG-2传输流内。
所述交互电视系统利用“应用程序”来进行操作,所述应用程序对接收机/译码器和包含在其中的各个设备的功能进行控制。在引擎4008内,将应用程序表示为“资源文件”。“模块”是一组资源文件和数据。可能需要用若干个模块来组成一个应用程序。接收机/译码器的“存储器容积(volume)”是用于模块的存储空间。一个“接口”用于下载模块。可将模块从MPEG-2传输流中下载进接收机/译码器2020。
以下详细说明上述部件。
就本说明书而言,一个应用程序是一段计算机代码,它用于对最好是接收机/译码器2020的高层功能进行控制。例如,当最终用户将遥控器对准电视机2022的屏幕上所看到的按钮对象并按下确认键时,就运行与该按钮相关的指令序列。
交互性应用程序提供了菜单并在最终用户请求时执行命令且提供与应用程序的目的有关的数据。应用程序可以是常驻应用程序,也就是说,它们存储在接收机/译码器2020的ROM(或FLASH或其它非易失性存储器)中,或者可将应用程序广播并下载进接收机/译码器2020的RAM或FLASH存储器中。
应用程序的实例有·初始化应用程序(Initiating Application)。接收机/译码器2020配备有一常驻初始化应用程序,它是自适应的模块集合(以下将更详细地对这个术语进行界定),从而使接收机/译码器2020能在MPEG-2环境中立即运行。初始化应用程序提供了核心特征,如果必要的话,广播提供商可对该特征进行修改。初始化应用程序还提供了常驻应用程序与下载应用程序之间的接口。
·启动应用程序(Startup Application)。启动应用程序可使任何应用程序无论是下载的应用程序还是常驻的应用程序均能在接收机/译码器2020上运行。这种应用程序可用作在进行服务时为启动应用程序而执行的引导程序。将启动应用程序下载至RAM,因此,可很容易地更新该应用程序。可将启动应用程序配置成能在下载之后立即选择并运行各信道中可用的交互应用程序或者在预装之后选择并运行各信道中可用的交互应用程序。就预装而言,将所述交互应用程序装进存储器2024并在需要时用启动应用程序来加以启动。
·节目指南(Program Guide)。节目指南是这样一种交互应用程序,它提出了所有有关节目编排的信息。例如,节目指南可以提供如一数字电视集合(bouquet)的各信道中所提供的一周电视节目的信息。最终用户可通过按下遥控器2026上的按键来访问一附加屏幕,该附加屏幕叠加在电视机2022的屏幕上所显示出的事件上。所述附加屏幕是一浏览器,它给出了与数字电视集合的当前和下一个节目事件有关的信息。最终用户通过按下遥控器2026上的另一个按键可以访问这样一种应用程序,它能显示出与一周的节目事件有关的信息列表。最终用户还可按简单和定制的标准来对节目事件进行检索和排序。最终用户也可以直接访问选定的频道。
·每次观看付费(Pay Per View)应用程序。每次观看付费应用程序是一种可在数字电视集合的各PPV频道上连同条件访问系统3000使用的交互服务。最终用户可用TV指南或频道浏览器来访问该应用程序。此外,一旦在PPV频道上检测到PPV事件,每次观看付费应用程序就会自动开始。最终用户可用子智能卡3020或通过通信服务器3022(用调制解调器、电话和DTMF码、MINITEL或类似系统)来购买当前的节目事件。每次观看付费应用程序可常驻接收机/译码器2020的ROM或者可下载进译码器2020的RAM内。
·PC下载(PC download)应用程序。在请求时,最终用户可用PC下载应用程序来下载计算机软件。
·杂志浏览器应用程序。杂志浏览器应用程序包括根据最终用户通过屏幕按钮的导航来周期性地以视频方式广播图像。
·小测验(Quiz)应用程序。小测验应用程序最好与广播小测验节目相同步。例如,在电视2022的屏幕上显示出多选题,最终用户可用遥控器2026选择一个答案。小测验应用程序可将回答是否正确通知给用户并能对用户计分。
·电视购物(Teleshopping)应用程序。在电视购物应用程序的一个实施中,将出售的物品价格传给接收机/译码器2020并显示在电视2022上。用户可用遥控器选择要购买的具体物品。可按着将借方记入业已插进接收机/译码器2020的一个读卡器4036中的信用卡帐户的指令,将物品的订单通过调制解调的反向信道4002传送给电视购物应用程序和数据服务器4006或者传送给一电话号码已被下载至了接收机/译码器的独立销售系统。
·电视银行业务(Telebanking)应用程序。在电视银行业务应用程序的一个实例中,用户将银行卡插进接收机/译码器2020的一个读卡器中。接收机/译码器2020用存储在银行卡中或存储在接收机/译码器中的电话号码拨叫该用户的银行,然后,电视银行业务应用程序提供可用遥控器2026来选择的多个功能以便例如通过电话线下载帐户清单、在帐户之间传递资金、请求支票簿等。
·互联网浏览器(Internet Browser)应用程序。在互联网浏览器应用程序的一个实例中,用遥控器2026输入来自用户的诸如请求观看具有特定URL的网页的指令,并用调制解调的反向信道4002将这些指令传送给应用程序和数据服务器4006。然后,将适当的网页包括在来自广播中心的传输流中、用接收机/译码器2020通过上行链路2012、收发器2014和下行链路2016来接收该网页、并将该网页显示在电视2022上。
将应用程序存储在接收机/译码器2020的存储器存储单元内并将应用程序表示为资源文件。所述资源文件包括图形对象描述单元文件、变量块单元文件、指令序列文件、应用程序文件以及数据文件。
所述图形对象描述单元文件对屏幕即应用程序的人—机接口进行说明。所述变量块单元文件对应用程序所处理的数据结构进行说明。所述指令序列文件对应用程序的处理操作进行说明。所述应用程序文件提供了应用程序的入口点。
按这种方式构成的应用程序可使用诸如图标库文件、图像文件、字体文件、颜色表文件和ASCII文本文件之类的数据文件。一个交互式应用程序还可通过输入和/输出来获得联机数据。
引擎4008仅将它在给定时间需要的资源文件装进存储器。从图形对象描述单元文件、指令序列文件和应用程序文件中读出这些资源文件,在调用用于装载模块的过程之后将变量块单元文件存储在存储器中并加锁直至专门调用了卸载模块的过程。
参照图3,诸如电视购物模块之类的模块4010是一组资源文件和数据,包括单个的应用程序文件4012;不确定数量的图形对象描述单元文件4014;不确定数量的变量块单元文件4016;不确定数量的指令序列文件4018;以及在适当的情况下还包括诸如图标库文件、图像文件、字体文件、颜色表文件和ASCII文本文件之类的数据文件4020。
在MPEG数据流中,各个模块均包括一组MPEG表。每个MPEG表均可格式化为多个数据部。在MPEG数据流中,每个数据部均具有多达4千字节的“大小”。就通过串行端口和并行端口进行数据传输而言,例如,可将模块类似地分解成表和数据部,数据部的大小随传输用媒体而变。
按数据包的形式在MPEG数据流中传送模块,所述数据包在例如视频数据流、音频数据统和电视文本数据流等相应类型的数据流中一般为188字节。每个数据包的前面均是一个13位的数据包标识(PID),在MPEG数据流中传输的各个数据包均有一个PID。节目映射表(PMT表)包含有不同数据流的列表并根据相应的PID限定了各数据流的内容。PID可提示一个设备在数据流中存在有应用程序,用PMT来标识PID。
参照图4,接收机/译码器在总线21上包括一RAM存储器4022,它与微处理器20相连,而微处理器20则与FLASH存储器4024相连;一EEPROM存储器4024′;以及,ROM存储器4026。RAM存储器4022还与DMA(直接存储器存取)单元22相连,通过该DMA单元,(例如来自MPEG位流的)数据可直接进入RAM存储器。
RAM存储器为256K字节长并可分成3个区域为系统生产商保留使用的区城24;为虚拟机(VM)保留使用的区域25;以及,用户区26,它用于包含诸如缓冲区、应用程序30、30′、30″、数据等之类的多种信息。能使生产商在设计硬件以实现本系统时有显著自由度的功能规范限定了本系统;存储区24在实际上是用作上述功能规范所指定的功能与硬件之间的接口。存储区25中的VM实际上是一种用于计算机系统的操作系统,并且,可将VM和微处理器20一起看作是运行时间引擎(RTE)4008。可在不同的时间将多种不同的应用程序装进上述存储器。
VM与应用程序之间必需能进行通信,而且,不同的应用程序之间也必需能进行通信。这些通信主要是由为VM和各个应用程序所共用的缓冲区来控制的。
在本系统中,用一命令(设置缓冲区命令)来限定用户区26内的缓冲区32并将该缓冲区分成各个缓冲区。这就限定了多个缓冲池,对每个池而言,都给出了该池中的缓冲区的大小以及该池中的缓冲区的的数量。图6示出了设置缓冲区命令的逻辑格式。该格式包括一限定池数量NP的初始项目35,随后是一组项目36、36′、…,每个池有一个项目,每个池项目都由限定池大小PS(即池中的缓冲区数量)的第一子项目37以及限定池中缓冲区大小BS(即缓冲区的字节数)的第二子项目38构成。
为方便起见,以下列出以下使用的上述及其它参数NP池的数量对每个池来说—PS池大小(池中的缓冲区数量)BS缓冲区大小PN池号BN(池中的)缓冲区号ByN(缓冲区中的)字节号在用户存储区26中,由缓冲区构成的缓冲池从用户存储区的起点顺序地排列,如图5所示。所示的实际结构是3个缓冲池的结构,池1由5个中等大小的缓冲区构成,池2由6个小大小的缓冲区构成,池3由1个大大小的缓冲区构成。还应注意,每个缓冲池的开始处均包括有一16字节的保留部。该保留部可分成一个12字节的供用户作为缓冲区标志使用的子部以及一个4字节的为VM保留使用的子部。
PTE4008提供了一缓冲区管理器,它可被看作是构成了总线21与RAM存储器4022的用户区26之间的寻址路径27。图7示出了上述缓冲区管理器的逻辑结构。该结构首先在微处理器20的控制下被设置缓冲区命令所初始化,然后用于对任何预定的缓冲区进行寻址。
在缓冲区管理器中,将用于各池的子项目PS和BS传给多路复接器35,它形成了积PS*BS。用值64K(它表示RAM4022的用户区26的起始地址)来初始化累加器36,通过加法器37将一系列积PS*BS传给该累加器,而加法器37将所说的积加16,16表示各池的起始处的保留部的大小。所以,累加器36以连续的方式包含有各缓冲池的连续的起始地址。将这些池起始地址传给一累加地址寄存器38,所说的池起始地在顺序地存储在该累加地址寄存器中。还有,在初始化过程中,将池的数量NP存储在池数量寄存器39中,将池大小存储在池大小寄存器40中,将缓冲区大小BS按同样的顺序存储在缓冲区大小寄存器41中。
在初始化之后,就可对缓冲区加以寻址。为了能找到缓冲区的地址,用预定池的池号PN、该地内的预定缓冲区的缓冲区号BN、以及上述缓冲区中的预定字节的字节号ByN来限定预定的缓冲区。
用池号PN来从累加寄存器38和缓冲区大小寄存器40选出用于该池的适当项目。将缓冲区大小BS传送给多路复接器45,在多路复接器45中,用缓冲区号BN乘缓冲区大小BS。将得出的乘积传给增量器46,该增量器给所述乘积加上16。将累加寄存器38的输出传给加法器47,在该加法器中,给所说的输出加上字节号ByN。将增量器46的输出传给加法器48,在该加法器中,将所说的输出与加法器47的输出加起来。加法器48的输出作为预定的地址(即预定池的预定缓冲区的预定字节的地址)传送通过多路复接器49。
所述缓冲区管理器还包括检错电路。将池号PN传给比较器35,还将来自寄存器39的池数量NP传给比较器35,以便检查选定的池号不大于池的数量,也就是说检查选定的缓冲池在缓冲区的区域内。将缓冲区号BN传给比较器54,还将池大小寄存器40中的选定的项目的输出传给比较器54,以便检查选定的缓冲区号不大于选定的池中的缓冲区的数量,也就是说检查预定的缓冲区在选定的池内。将选定的字节号传给比较器55,还将选定的池中的缓冲区的大小传给比较器55,以便检查预定的字节号不大于缓冲区的大小,也就是说检查选定的字节在选定的缓冲区内。上述比较器均传送一共同的输出,以便在有任何检查失败时形成一出错信号ERR。
到目前的说明业已假定是对缓冲区进行寻址。但是,也可以是对缓冲区的池的保留或专用的16字节的开始区域进行寻址。这两种情况的选择受控于信号N/C,该信号可在正常的缓冲区访问与为方便起见称为缓冲区控制操作的操作之间进行选择。就正常的访问而言,选择缓冲区,仅为控制操作选择缓冲池的保留的开始区域。
将上述N/C信号传给多路复接器49。就正常的缓冲区访问而言,该信号会选择加法器48的输出,如上所述。但是,就对池的保留区的控制操作而言,所述多路复接器会相反直接选择加法器47的输出。由于这种来自累加寄存器38的路径不经过增量器46,这就会导致选定池的保留区中的预定字节而不是选定所述保留区后面的缓冲区之一。
就对缓冲区区域的控制操作而言,需要使比较器55无效。所以,就正常的缓冲区访问来说,信号N/C使上述比较器有效,而对控制操来说则使该比较器无效。将字节号ByN和保留的池区域中的字节数即16传给另一个比较器56,并且,信号N/C为系统访问而使该比较器被启动。该比较器检查预定的字节数不大于16,也就是说检查选定的字节在选定的池的起点处的保留区内。很明显,可对上述检查进行改进,以区别出是访问供用户作为缓冲区标志使用的12字节的子部还是为RTE保留使用的4字节的子部。
如果需要的话,如图9所示,设置缓冲区命令还可包括用户存储器结尾(User Memory End)参数34,以限定用户存储区26的结尾。进入设置缓冲区命令的最后一个项目存储在一适当的寄存器内并可用于检查缓冲区区域不会超过用户存储区26的结尾。(这一点一般来说是根本不可能的,因为,必须为应用程序30、30′、30″留出空间,但是,如将系统设计成缓冲区区域可位于用户区的中间某处而不是如上所述那样位于开始处,这种情况就有可能出现。)
从理论上说,可在任何时间用设置缓冲区命令去在初始化所说的缓冲区区域。但是,对缓冲区区域重新初始化实际上会导致丢失已存在于缓冲区内的所有(或几乎所有)信息,因此,一般仅在系统初始化时执行设置缓冲区命令。
参照图8,所说的系统包括一快擦写存储器4024、一RAM存储器4022以及一EEPROM存储器4026,它们在总线121上与微处理器120相连。(另外,EEPROM也可以直接与微处理器120相连。)所述快擦写存储器分成同样大小的8个页P1-P8,如图9所示。在这些页中,页P8是保留供生产商使用的,而其余的页则可供用户自由使用。
图9还示出了主记录表寄存器122和后备记录表寄存器123,这两个寄存器常驻EEPROM4026。上述记录表中的信息呈略微压缩和编码的形式。具体地说,表122的最后部分125是一CRC字节,它之前的部分126是标识着备用页的页号。表122的第一部分127由6个子部分127-1至127-6构成,每一个子部分均用于快擦写存储器的一个有效页(除备用页和保留页P8以外的6个页)。所说的子部分按顺序对应于这些其余页。
图10示出了快擦写存储器的页Pn和记录表的子部分127-m的逻辑结构以及它们之间的关系。(根据备用页的位置,m可以等于n或n-1。)首先考虑快擦写存储器的页,该页可包括最多16个数据块。页具有头标130,它包含有16个部分,每个部分均用于一个可能的数据块。头标130的各个部分包含有指向数据块的偏移量或指针,该指针实际上是数据块在页中的地址。所以,页中的数据块131、131′、……可以有任何的次序。每个数据块均包括一相应的头标132、132′、……,它们包含有与数据块有关的诸如块名、版本号、块大小、状态信号等之类多个项目。
记录表的子部分127-m包含16位,每一位均是一数据块有效性标识,它用于页头标130中的相应部分,如图所示。
以下说明对快擦写存储器中的页进行更新的过程。页更新所需的全部操作均由微处理120来进行。
首先,检查寄存器122中的主记录表的有效性,也就是说,计算出部分126和127的CRC并将其与存储存部分125内的CRC作比较。然后,将主记录表拷贝至后备记录表寄存器127(如果需要的话,还检查后备记录表的有效性以确保拷贝操作不会出错)。
其次,将要加以更新的页(旧页)从快擦写存储器拷贝至RAM存储器。抽出主记录表中用于该页的子部分127-m,从RAM存储器的页映像中删除标记为无效的任何数据块。将新数据块写进所说的页映像。
新数据块可能不会轻易地与其余的原有数据块之间的空间相匹配。一般地说,用多种大小的空白区将上述其余的数据块分隔开。所以,使这些空白区沿页映像上移以“挤出”它们之间的未用区域,从而将这些未用区域有效地移至页映像的底部,以开成一单个的大的未用区域。这就能确保将新数据块写进页映像(当然要假定不会超过页的容量)。当然,可通过将指针改变至数据块在页映像中的新位置来更新页映像中的块头标。
已从所述记录表中抽出该记录表的用于要加以更新的页的子部分。通过设置用于已加进页图像中的任何新数据块的有效性位来对抽出的子部分进行更新。
然后,从主记录表寄存器122中抽出记录表的整个部分127。实际删除与要加以更新的页(旧页)相对应的子部分。这就是先前单独抽出并业已被更新了的子部分。在适当的位置处将新的子部分(与新页相对应的子部分,所说的新页就是要将更新后的页写进其中的备用页)插进子部分序列。为此,必须使用于旧页与新页之间的任何页的子部分移动以填充已被删除并为新的子部分腾出空间的那个子部分。
再后,将RAM存储器中的更新后的页映像拷贝进如主记录表的部分126中的备用页号所标识的备用页。
此后,将备用页部分中的页号改变成已成为新备用页的那个旧页的页号。
再有,将更新后的记录表拷贝至主记录表寄存器122。最后,将主记录表寄存器122的更新后内容拷贝进后备记录表寄存器123,并且,如果需要的话,可检查寄存器122中的主记录表和/或备份记录表的内容的有效性。
例如在断电之后重新启动所述系统时,检查上述两个记录表的有效性,如果发现其中有一个是无效的,就用有效的那个来代替它(也就是说,将有效的记录表的内容拷贝至无效的记录表)。
应该认识到,以上完全是以举例的方式来说明本发明的,在本发明的范围内可对细节进行改进。
可独立地或以任何适当的组合形式来提供本说明书以及(在适当情况下)权利要求和附图中公开的各个特征。
在上述最佳实施例中,用计算机软件实现了本发明的某些特征。但是,对专家来说当然是很清楚,均可用硬件来实现这些特征中的任何一个。此外,应该认识到,可用电或类似的信号来实现用硬件、计算机软件或类似手段所实现的功能。
交叉引用了我们的共同未决的各个申请,所有这些申请都有相同的提交日期,这些申请题为“信号产生与广播”(代理人文档号PC/ASB/19707),“供加密广播信号的接收机使用的智能卡和接收机”(代理人文档号PC/ASB/19708),“广播和接收系统以及其条件接入系统(代理人文档号PC/ASB/197010),“从发射机通过接收机/译码器下载计算机文件到计算机”(代理人文档号PC/ASB/19711),“电视节目和其它数据的传送和接收”(代理人文档号PC/ASB/19712),“下载数据”(代理人文档号PC/ASB/19713),“计算机存储器组织”(代理人文档号PC/ASB/19714),“电视或无线电控制系统开发”(代理人文档号PC/ASB/19715),“从所发送的数据系统中提取数据段”(代理人文档号PC/ASB/19716),“访问控制系统”(代理人文档号PC/ASB/19717),“数据处理系统”(代理人文档号PC/ASB/19718),“广播和接收系统及其接收机/译码器和遥控器”(代理人文档号PC/ASB/19720)。本文引用了这些文件的内容。上述申请文件清单包括了本申请。
权利要求
1.一种用于对计算机系统中的存储区内的缓冲区进行限定和寻址的系统,该系统包括池大小存储装置,它用于存储多个池大小;缓冲区大小存储装置,它用于存储各个池的缓冲区大小;以及,计算装置,它用于根据上述大小计算预定池中的预定缓冲区的地址。
2.如权利要求1的系统,其特征在于,该系统包括用于以累加形式确定池大小并将它们以累加的形式存储在上述池大小存储装置内的装置。
3.如前述任何一个权利要求的系统,其特征在于,该系统包括用于在每个池的开始处限定一保留区的装置。
4.如权利要求2和3的系统,其特征在于,该系统包括用于选择累加池大小指令或上述计算装置的输出的装置。
5.如前述任何一个权利要求的系统,其特征在于,该系统包括用于检查预定池号、预定缓冲区号和预定字节的越界值的装置。
6.基本上如本文所述的用于在存储区内对缓冲区进行限定和寻址的系统。
7.一种计算机中的存储器系统,该系统包括快擦写存储器,它被分成独立可写的页;RAM存储器;独立的非易失性存储器,它用于存放一主记录表,该主记录表标识上述快擦写存储器中的有效页;用于将快擦写存储器的一个页作为映像页拷贝进RAM存储器并更新该映像页的装置;用于将上述映像页写回快擦写存储器中不同页的装置;一保存在独立的非易失性存储器内的主记录表,它标识快擦写存储器中的有效页;以及,用于在对快擦写存储器中的一页进行了更新时对上述主记录表进行更新的装置。
8.如权利要求7的存储器系统,其特征在于,所述主记录表包括一检错部,并且,还提供有一后备记录表,所述主记录表在更新之后立即被拷贝至该后备记录表;以及,在使用主记录表访问快擦写存储器时检查主记录表出错情况并在主记录表有错的情况下使用后备记录表的装置。
9.如权利要求8的存储器系统,其特征在于,所述检错部是一CRC部。
10.如权利要求7至9任何一个的存储器系统,其特征在于,对每一页来说,所述记录表都包括一组块有效性标识,它们用于相应页中的数据块。
11.如权利要求7至10任何一个的存储器系统,其特征在于,用于一个页中的数据块的识别信息包括在该页中。
12.如权利要求11的存储器系统,其特征在于,用于每个数据块的识别信息包括在该数据块中。
13.如权利要求7至12任何一个的存储器系统,其特征在于,所述的独立的非易失性存储器是EEPROM。
14.如权利要求7至13任何一个的存储器系统,其特征在于,所述记录表包括一备用页标识和一系列子记录,每个子记录均涉及到一相应的有效页。
15.一种基本上如本文所述的存储器系统。
16.一种对被分成独立可写的页的快擦写存储器进行更新的方法,该方法包括将快擦写存储器的一个页作为映像页拷贝进RAM存储器并对该映像页进行更新;将所述映像页写回快擦写存储器中的一个不同页;提供一主记录表,它保存在一独立的非易失性存储器内并用于标识快擦写存储器中的有效页;以及,在已对快擦写存储器中的一个页进行了更新时就更新上述主记录表。
17.如权利要求16的方法,其特征在于,该方法包括在所述主记录表中包括一检错部;提供一后备记录表,所述主记录表在更新之后立即被拷贝至该后备记录表;以及,在使用主记录表访问快擦写存储器时检查主记录表出错情况并在主记录表有错的情况下使用后备记录表。
18.如权利要求17的方法,其特征在于,将所述检错部计算为CRC。
19.如权利要求16至18任何一个的方法,其特征在于,对每一页来说,所述记录表都包括一组块有效性标识,它们用于相应页中的数据块。
20.如权利要求16至19任何一个的方法,其特征在于,用于一个页中的数据块的识别信息包括在该页中。
21.如权利要求20的方法,其特征在于,用于每个数据块的识别信息包括在该数据块中。
22.如权利要求16至21任何一个的方法,其特征在于,所述记录表存储在EEPROM内。
23.如权利要求16至22任何一个的方法,其特征在于,所述记录表包括一备用页标识和一系列子记录,每个子记录均涉及到一相应的有效页。
24.如权利要求16至23任何一个的方法,其特征在于,在将快擦写存储器的页作为映像页拷贝进RAM存储器之前检查所述主记录表的有效性。
25.如权利要求24的方法,其特征在于,在检查了所述主记录表的有效性之后立即将该主记录表拷贝进上述后备记录表。
26.如权利要求25的方法,其特征在于,在将所述主记录表拷贝进上述后备记录表之后立即检查该后备记录表的有效性。
27.如权利要求16至26任何一个的方法,其特征在于,对所述映像页中的有效数据块进行重新排列以消除数据块之间的未用空间。
28.一种基本上如本文所述的对被分成独立可写页的快擦写存储器进行更新的方法。
29.一种计算机内的快擦写存储器系统,其中,数据保存在该快擦写存储器内的数据块中,并且,保存有一数据块定位数据结构,以确定数据块的位置和描述符,所述数据块定位数据结构至少部分地保存在快擦写存储器外面的外部存储器内。
30.如权利要求29的快擦写存储器,其特征在于,所述外部存储器是一EEPROM存储器。
31.如权利要求29和30中的一个的快擦写存储器,其特征在于,所述外部存储器可保存基本上是全部的数据块定位数据结构。
32.如权利要求29和30中的一个的快擦写存储器,其特征在于,所述外部存储器仅保存数据块在快擦写存储器中的位置,而数据块的描述符则作为该数据块的头标包括在快擦写存储器内。
33.如权利要求31和32中的一个的快擦写存储器,其特征在于,将所述外部目录组织成用于整个快擦写存储器的单一结构。
34.如权利要求31和32中的一个的快擦写存储器,其特征在于,按页来组织所述的外部目录。
35.如权利要求29和34中的任何一个的快擦写存储器,其特征在于,对每个数据块来说,所述外部存储器仅包含有一有效性位,而数据块地址和描述符则均保存在快擦写存储器内。
36.一种供数字广播和接收系统用的接收机/译码器,它包括如权利要求1至15或29至35的任何一个的系统或存储器系统或快擦写存储器。
37.如权利要求36的接收机/译码器,其特征在于,该接收机/译码器还包括用于接收压缩的MPEG信号的装置;用于对接收到的信号进行译码以提供电视和/或无线电信号的装置;以及用于将所述电视信号提供给电视机和/或无线电设备的装置。
38.一种基本上如本文所述的数字广播和接收系统用的接收机/译码器。
全文摘要
在计算机系统中的存储器中,用缓冲区管理系统限定了缓冲区。一设置缓冲区命令限定了多个缓冲区的池(NP)并对每个池来说均限定了池内的由多个缓冲区构成的池大小(PS)以及该池中的缓冲区大小(BS)。将所述缓冲区管理系统初始化成存储有前述缓冲区大小并累加且存储前述池大小。为了对缓冲区进行寻址,所述缓冲区管理系统用所存储的信息确定缓冲区相对预定池的起始地址和缓冲区号。而且,就对分页的快擦写存储器进行更新而言,将快擦写存储器(4024)的一个页Pn作为一映像页拷贝进RAM存储器(4022),对该映像页进行更新并将其写回快擦写存储器中的不同的页。一主记录表(22)保存在一独立的非易失性存储器(EEPROM4026)内,以标识快擦写存储器内的有效页,在已对快擦写存储器中的一个页进行了更新时就对上述主记录表进行更新。所述主记录表包括一CRC检错部(25),在对主记录表进行了更新之后立即将该主记录表拷贝进一后备记录表(23)。
文档编号G11C16/10GK1262754SQ97182178
公开日2000年8月9日 申请日期1997年4月25日 优先权日1997年3月21日
发明者J-C·萨尔法蒂, C·德克莱克 申请人:卡纳尔股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1