以非序列方式接收的数据文件的高效存储的制作方法

文档序号:6368952阅读:162来源:国知局
专利名称:以非序列方式接收的数据文件的高效存储的制作方法
相关申请和交叉引用本申请要求由黄炎提出的以下临时专利申请作为优先权并结合其全文作为参考。
2001年11月30日提交的“对非特定客户的点播数据的随机存储”,申请号为60/337,280。
本申请还要求由黄炎提出的以下专利申请作为优先权并结合其全文作为参考。
2000年5月31日提交的“非特定客户的点播数据广播”,申请号为09/584,832。
该文件序列的文件数据存储模式具有特定的明显特征。因为每个文件的数据块被顺序地存储在永久存储器的预定位置,对于数据文件检索来说,总的搜索时间是最小的。用于存储数据,例如MPEG数据文件的永久存储器通常是一个硬盘或是用于访问存储位置的搜索时间很长的其它装置。因此当把对存储文件的快速访问作为主要的设计标准时,该文件序列数据存储模式就非常有用了。此外,将数据块顺序存储在永久存储器的预定位置的数据文件管理也可变得非常简单。
但是,该文件序列数据存储范例在某些情况下并不适合。简而言之,当数据块没有以序列方式被接收时,要提高文件序列数据存储模式的检索效率就必须以降低存储速度为代价。这是因为当数据块以非序列方式被接收但是以文件序列方式被存储时,需要搜索时间来写入每个接收的数据块。用于数据存储的总的搜索时间就会妨碍充分利用数字数据服务器和数字数据接收器之间的可用通信带宽。在许多应用中,接收的数据被存储的速率必须大大高于用户访问接收数据文件所需的实际时间。这种情况下,用户就不会受益于文件序列数据存储模式的数据检索效率。
由于上述原因,需要一种存储接收数据的方法或系统,其方式使得在数据存储期间的总搜索时间保持最小。
附图的简要说明本发明通过附图中所示的例子以举例而非限定的方式来说明,在附图中,相同的参考标记表示相同的部件。


图1是根据本发明一个实施例的数字数据系统的方框图;图2是可用于实现本发明的一个机顶盒的硬件结构的方框图;图3是根据本发明一个实施例的用于存储作为非序列数据块接收的数据文件的高效写入系统的数据存储方法的流程图;图4是根据本发明的一个方面、用于产生一个自由存储块列表的一个优选方法的流程图;图5是表示将数据文件划分为多个数据块的方框图;图6是表示在数字数据接收机中接收的序列数据块的存储的方框图;和图7是表示索引表的方框图。
优选实施例的详细说明本发明构思了几种数据存储系统,适于高速存储作为非序列数据块接收的数据文件。在一个优选实施例中,数据块以接收的顺序被存储,且这些数据块的正确顺序被保持在独立的数据结构中。这样可使数据存储期间的总搜索时间最小,并可实现文件数据块的顺序检索。在另一个优选实施例中,数据文件被安排成具有若干大数据块,使得接收机可将永久存储器的较大部分分配给每个数据文件。这种方法可平衡存储期间的总搜索时间与文件检索期间的总搜索时间,和减轻当存储文件被删除时永久存储器被释放所导致的存储碎片的某些影响。
在以下描述中,为了便于说明,阐述了许多具体的细节,以便提供对本发明更全面的理解。很显然,对于本领域的普通技术人员来说,没有这些细节本发明也可以被实施。在其它情况下,公知的结构和设备以框图的形式被示出,以避免对本发明不必要的赘述。功能性和操作性的综述图1示出了根据本发明一个例子的数字数据系统100的方框图。数字数据系统100包括一个数字数据服务器102,它通过网络104与数字数据接收器106相耦合。可以看出,数字数据系统100是一个通用结构,可采取多种适当的形式。例如,数字数据服务器102可提供数字视频广播服务,视频和数据点播服务,互联网服务等等。网络104可以采取多种形式,例如光纤网络,卫星网络,有线网络,不同媒介的组合,也可以是广域网,例如互联网等等。数字数据接收机104可以是一个机顶盒(STB),个人计算机,个人数字助理(PDA)等等。
在视频点播(VOD)或视频请求(VOR)服务的方面,数字数据服务器102可以采取远程VOR服务器的形式,数字数据接收机106可以采取STB的形式。这种情况下,VOR服务器向STB广播与用户服务相关联的数据(例如MPEG-2数据文件)。请求VOD服务的请求方这里被称为“顾客”。
根据本发明的某些例子,每个数据文件被划分为多个数据块,且根据一个非顺序调度矩阵,多个数据文件由服务器被传输至客户,例如机顶盒。可使用各种技术来产生这样的一个调度矩阵。一种这样的技术是在美国专利申请No.09/584,832中,其名称为“为广播系统提供视频点播服务的系统和方法”,是由Khoi Nhu Hoang于2000年5月31日提交的,这里引用其内容作为参考。
图2是可用于实施本发明的适于作为数字数据接收机106的一个机顶盒200的硬件结构的方框图。然而,本发明的范围并不局限于机顶盒。该实施例非限制性地可应用于与VOD服务和/或数据点播服务(DOD)相关联的任何系统。
机顶盒200包括正交幅度调制(QAM)解调器202,中央处理单元(CPU)204,本地存储器208,缓冲高速存储器210,具有视频和音频解码功能的解码器212,图形覆盖模块214,用户接口218,通信链路220,和快速数据总线222。CPU 204控制机顶盒200的所有操作,从而响应于顾客要求而选择数据,解码所选的数据,解压缩被解码的数据,重新组合被解码的数据,将解码数据存储在本地存储器208或缓冲高速存储器210,和发送存储数据到解码器212。在一个示例实施例中,本地存储器208包括非易失性永久存储器(例如,硬盘驱动器),缓冲高速存储器包括易失性存储器(例如,RAM)。
根据某些实施例,QAM解调器202包括发射机和接收机模块,以及以下部件中的一个或多个1)专用加密/解密模块,2)前向纠错解码器/编码器,3)调谐器控制,4)下行和上行处理器,和5)CPU和存储器接口电路。QAM解调器202接收调制的中频(IF)信号,取样,并将信号解调以恢复数据。
在一个示例实施例中,当允许访问时,解码器212将至少一个数据块解码以将该数据块变换为可在输出屏幕上显示的图像。具体来说,视频解码器212a将数据块的视频部分变换为可显示图像。音频解码器212b将数据块的音频部分变换为可听见的声音。输出装置224可以是任何适合的装置,例如电视,计算机,任何适当的显示器,VCR等等。
图形覆盖模块214通过,例如提供alpha混合或画中画功能,来提高显示图形质量。
用户接口218可实现机顶盒200的用户控制,即由顾客来控制。用户接口218可以是任何适当的装置,例如遥控装置,键盘,智能卡等等。
通信链路220提供附加的通信连接。通信链路220可通过操作耦合到其它计算机,或者,通信链路220可被用于实施双向通信。
数据总线222可以是可购买到的“快速”数据总线,其适于以实时方式进行数据通信。这种数据总线例如是,USB,火线等等。
图3是根据本发明的一个方面的数据存储方法300的流程图,提供用于存储作为非序列数据块接收的数据文件的高效写入机制。该方法300非常适于其中数据文件存储的总搜索时间必须被最小化的应用。方法300可以由计算机实施的处理来实现,该处理可以被例示在具有标准计算机系统结构的各种装置上,例如STB或个人计算机。或者,方法300可使用ASIC、DSP、或其它这类器件并结合非易失性永久存储器和易失性瞬时存储器的来实施。方法300适用于以数据块形式接收的任何类型的数字数据;包括MPEG数据,JPEG数据等等。
步骤301产生了一个自由存储块列表,步骤302产生了一个已用存储块列表。自由/已用存储块列表的每个单元都提供一个间接寻址(indirection),指向为特定数据块分配的永久存储器的一个自由/已用部分。该间接寻址可以只是一个存储偏移,或者可以是一个真实的指针,或是以本领域技术人员公知的其它方式间接指向下一个存储块位置。以下参照图4更详细说明执行步骤301的一个优选实施例。
步骤304接收一个用于存储的数据块。该步骤假定可以进行某些预处理。例如,属于一个未被选择用于存储的文件的数据块或者之前己被接收和存储的数据块都可以被立即丢弃。然而,在接收到下一个所需数据块时,步骤306访问自由存储块列表以获取下一个自由存储块的间接寻址。步骤306中一旦获得间接寻址,步骤308就将接收的数据块存储在下一个自由存储块间接寻址所指示的永久存储器的部分中。然后一个更新的自由存储块列表步骤310将从自由存储块列表中删除下一个自由存储块间接寻址。更新的已用存储块列表步骤312将下一个自由存储块间接寻址增加到已用存储块列表中。
可以看出,图3的方法300产生的数据结构是以数据块的接收顺序来存储多个数据文件。这不同于以文件序列方式存储数据的现有技术的数据存储机制。在数据只是被写入存储器的下一个序列部分时,以数据块被接收的顺序来存储数据可减少数据写入期间的总搜索时间。为了实现对数据文件的顺序访问,步骤314更新一个数据索引表以反映在永久存储器中接收数据块的位置。
步骤316执行其它必要的整理工作(housekeeping)。例如,在优选实施例中,自由存储块列表、已用存储块列表、和索引表在瞬时快速访问存储器中是激活的。显然有理由的是,可以周期性将这些数据结构写入永久存储器中,以避免不正常关机期间的损失并可用于以后的操作。此外,整理步骤316可确定该自由存储器列表是否减少。如果是,则必须分配更多的存储空间用于此数据存储进程,或者可能必须收回未使用的存储空间并将间接寻址增加到列表的后面。
步骤318确定了是否必须检索更多的数据。当必须检索更多数据时,处理控制返回到步骤304以接收下一个数据块。当没有更多的数据必须被检索时,或当处理是空闲时,方法300完成。
图4表示用于执行图3的产生自由存储块列表的步骤301的一种优选方法的流程图。方法301必须在每个数据存储时间段的开始被执行。步骤350确定一个自由存储块列表是否先前己被创建。本发明期望来自数据文件的数据块可以在一个或多个时间段内累积。因此当接收某些数据文件的方法开始时,永久存储器可能已被分配且文件已被部分存储。
在一个初始状态,当没有自由存储块列表已被创建时,流程控制进行到步骤352,用于分配可存储N个数据块的永久存储器的一部分。通常,其它的处理将控制对永久存储器的访问,且通过间接指向第一数据块的存储器开端的偏移、来响应对N个数据块的存储器分配的请求。步骤354获得间接指向被分配永久存储器的开端的偏移。步骤356基于接收的偏移创建一个自由存储块列表,包括对N个存储位置的N个间接寻址。
当一个自由存储块列表已被创建时,流程控制从步骤350进行到步骤358,用于从永久存储器中检索所要求的信息,以重建自由的和己用的存储块列表。步骤360以适于存储输入数据块的分类格式来重建自由和已用的存储块列表。
现在将利用图5-7来表述本发明的数据结构如何设计用于数据块接收的一种可能的顺序。图5是表示将数据文件划分为多个数据块的方框图。为了便于参考,将列举这些数据文件的标注单元。数据文件402被划分为多个数据块,例如数据块410,412,414和416。类似的,数据文件404被划分为多个数据块,例如420,422,424和426;数据文件406被划分为多个数据块,例如430,432,434和436;数据文件408被划分为多个数据块,例如440,442,444和446。
数据块410是数据文件402的第一数据块,由标号(1,1)表示。标号(1,1)中的第1个数字表示数据文件的文件号。标号(1,1)中的第2个数字表示给定数据文件(本例中是数据文件402)中的块编号。类似的,块412是数据文件402中的第二数据块,被表示为标号(1,2)。块414是数据文件402中的第三数据块,被表示为标号(1,3)。块416是数据文件402中的第四数据块,被表示为标号(1,4),等等。对所有数据文件404-408都采用这种命名方法,以后将不再赘述,因为这是不言而喻的。
图6表示从一个接收数据块的示例序列到永久存储器中的存储的映射图。列表502是以接收顺序排列的图5中数据块的列表。列表502具有单元504,506,508,510,512,514,516,518,520,522。注意这些单元的每一个都对应于一个特定的数据块,并且这些单元关于接收数据块所对应的文件是非顺序的。
数据结构550是永久存储器中用于存储接收列表502的接收数据块的部分。即,列表502的每个单元都具有关于其对应数据块的存储位置的信息。在此特定例子中,列表502中对每个单元的映射如下1)单元504被映射到值为“位置_1”552的地址信息,
2)单元506被映射到值为“位置_2”554的地址信息,3)单元508被映射到值为“位置_3”556的地址信息,4)单元510被映射到值为“位置_4”558的地址信息,5)单元512被映射到值为“位置_5”560的地址信息,6)单元514被映射到值为“位置_6”562的地址信息,7)单元516被映射到值为“位置_7”564的地址信息,8)单元518被映射到值为“位置_8”566的地址信息,9)单元520被映射到值为“位置_9”568的地址信息,10)单元522被映射到值为“位置_10”570的地址信息,等等。
正如以上参照图3对步骤314的描述,对每个数据文件都创建一个索引表,从而存储的数据块可通过顺序方式被访问。图7是表示当接收图6的示例接收列表502所提供的数据块时,对每个数据文件所创建的索引表的方框图。
图7示出了分别对应图5的数据文件402,数据文件404,数据文件406,数据文件408的索引表602,604,606和608。
索引表602包括数据块编号列610和地址列612。数据块编号列610包括来自数据文件402的数据块的数据块编号,例如数据块(1,1)614,(1,2)618,(1,3)622,(1,4)626等等。
这些索引表被周期性更新、以将基于数据块的值填充到地址列,这些数据块以下述方式被存储在列表中。图7中索引表602,604,606,608的每个地址列将参照图6的列表502来描述。
地址列612包括地址信息616,620,624,628等等。基于列表502中的单元和图6中块550的地址信息之间的映射,索引表602的地址列612如下1)地址信息616包含值“位置_3”,2)地址信息620包含一个空值,直到索引表602被更新以包括基于列表502的信息,即当MPEG-2数据块(1,2)被存储在列表502中时的索引表602,3)地址信息624包含值“位置_2”,4)地址信息628包含值“位置_4”,等等。
类似地,索引表604包括一个数据块编号列640和地址列642。数据块编号列640包括数据文件404的数据块的数据块编号,例如数据块(2,1)644,(2,2)648,(2,3)652,(2,4)656等等。
图7中索引表604的地址列642将参照图6的列表502来描述。地址列642包括地址信息646,650,654,658等等。基于列表502中的单元和图5中块550的地址信息之间的映射,索引表604的地址列642包括如下值1)地址信息646包含值“位置_1”,2)地址信息650包含值“位置_7”,3)地址信息654包含一个空值,直到索引表604被更新以包括例如基于列表502的信息,4)地址信息658包含一个空值,直到索引表604被更新以包括基于列表502的信息,等等。
类似地,索引表606包括一个数据块编号列660和地址列662。数据块编号列660包括数据文件406的数据块的数据块编号,例如数据块(3,1)664,(3,2)668,(3,3)672,(3,4)676等等。
图7中索引表606的地址列662将参照图6的列表502来描述。地址列662包括地址信息666,670,674,678等等。基于列表502中的单元和图6中块550的地址信息之间的映射,索引表606的地址列662包括如下值1)地址信息666包含值“位置_8”,2)地址信息670包含一个空值,直到索引表606被更新以包括例如基于列表502的信息,3)地址信息674包含一个空值,直到索引表606被更新以包括基于列表502的信息,4)地址信息678包含值“位置_10”,等等。
类似地,索引表608包括一个数据块编号列680和地址列682。数据块编号列680包括数据文件408的数据块的数据块编号,例如数据块(n,1)684,(n,2)688,(n,3)692,(n,4)696等等。
图7中索引表608的地址列682将参照图6的列表502来描述。地址列682包括地址信息686,690,694,698等等。基于列表502中的单元和图5中块550的地址信息之间的映射,索引表608的地址列682包括如下值1)地址信息686包含值“位置_6”,2)地址信息690包含值“位置_9”,3)地址信息694包含一个空值,直到索引表604被更新为包括例如基于列表502的信息,4)地址信息698包含值“位置_5”,等等。
当只有一个数据文件的情况下,对应于这一个数据文件只有一个索引文件被创建。
上述实施例的说明是参照图3-7进行的。
本发明的数据存储系统非常适用于多种多样的数据类型,例如视频点播系统中的MPEG-2数据,包括互联网服务器广播的静态数据的HTML数据,与电子目录相关的数字数据,用于证券报价的电子发送等等。本数据存储系统特别适用于要求接收大量的小数据文件、从而使得存储速度效率远远要比文件检索速度更为重要的应用。
在参照图3-7说明的实施例中,数据块以接收的顺序被存储,从而在数据存储期间使总搜索时间最小。在典型的应用中,一定的数据文件将被接收,存储和使用,并通常在使用之后被删除。数据文件的删除对应于多个数据块的释放。如图3-7的机制所述,通过删除而释放的存储位置应当被收回,并被合并回自由存储块列表,以便这些块可使用。然而,文件数据块的非顺序特性将不可避免地导致可用自由存储空间的大量碎片。因此随着用户开始删除文件,用于存储的总搜索时间将开始增加,这是由于自由存储空间实际上不再是有顺序的。
为了减少由于碎片而引起的总搜索时间劣化,本发明提出将永久存储器的多个部分分配到每个数据文件。例如,假定一个特定文件要求16G字节的存储空间。本发明提出将存储器的1000个16M字节部分分配给此特定文件。这是通过将自由列表的这些部分分配给该特定文件来实现的。然后,一旦该特定文件被删除且存储器的这些部分被释放,文件的碎片情况就不会很严重。当然,应当理解,通过将数据文件排列在大数据块中用于传输,也可以实现最小化碎片和总搜索时间的其它方法。
在前述说明中,本发明已参照特定实施例进行了说明。然而,显而易见,在不脱离本发明的精神和范围的前提下,可以进行各种各样的修改和变化。相应的,说明书和附图应当被认为是示例性的说明,而不是为了限制本发明。
权利要求
1.一种计算机实施的方法,用于存储被配置为多个数据块的至少一个数字数据文件,该计算机实施的方法包括如下步骤产生一个自由存储块列表,其包括与被分配用于存储所述至少一个数字数据文件的永久存储器的N个未使用块相关联的间接寻址;接收与所述至少一个数据文件相关的一个特定数据块;从所述自由存储块列表中选择与下一个存储块相关联的下一个间接寻址;更新所述自由存储块列表以指示所述下一个存储块被使用;和在所述下一个存储块存储所述特定数据块。
2.如权利要求1所述的计算机实施方法,其中,产生一个自由存储块列表的步骤包括确定所述自由存储块列表是否已被创建的步骤。
3.如权利要求2所述的计算机实施方法,其中,当确定所述自由存储块列表己被创建时,所述产生一个自由存储块列表的步骤包括以下步骤从永久存储器中检索数据文件信息;由所述检索的数据文件信息而重建所述自由存储块列表。
4.如权利要求2所述的计算机实施方法,其中,当确定所述自由存储块列表未被创建时,所述产生一个自由存储块列表的步骤包括以下步骤分配永久存储器的一部分用于存储至少一个数据文件;获得指向永久存储器的所述分配部分的开始点的一个间接寻址;和创建所述自由存储块列表。
5.如权利要求4所述的计算机实施方法,其中,永久存储器的所述分配部分表示N个存储块,其中N是一个整数。
6.如权利要求5所述的计算机实施方法,其中,所述创建所述自由存储块列表的步骤包括产生与所述N个存储块相关联的N个间接寻址。
7.如权利要求1所述的计算机实施方法,其中,接收与所述至少一个数据文件相关联的特定数据块的步骤包括如下步骤从数字数据服务器接收一个给定数据块;确定所述给定数据块是否被请求;和当所述给定数据块未被请求时丢弃所述给定数据块。
8.如权利要求7所述的计算机实施方法,其中,确定所述给定数据块是否被请求的步骤包括确定所述给定数据块是否先前已被接收和存储之步骤。
9.如权利要求7所述的计算机实施方法,其中,确定所述给定数据块是否被请求的步骤包括确定所述给定数据块是否属于已被用户请求的一个文件之步骤。
10.如权利要求1所述的计算机实施方法,其中,更新所述自由存储块列表的步骤包括从所述自由存储块列表中删除所述下一个间接寻址之步骤。
11.如权利要求1所述的计算机实施方法,其中,更新所述自由存储块列表的步骤包括将所述下一个间接寻址标记为被使用之步骤。
12.如权利要求1所述的计算机实施方法,其中,所述自由存储块列表是在瞬时存储器中产生的。
13.如权利要求12所述的计算机实施方法,其中,所述自由存储块列表被周期性地写入永久存储器以便存储和反映更新。
14.如权利要求1所述的计算机实施方法,还包括创建一个索引表的步骤,该索引表反映了下一个数据块的位置,以使得所述至少一个文件可以是被顺序访问的文件。
15.一种用于管理以非序列方式接收的数据的方法,所述方法减少用于数据存储的总搜索时间,该方法包括以下由计算机实施的步骤以所述数据被接收的顺序来存储所述数据;和创建和保留索引表,该索引表可实现对所述存储数据的文件顺序检索。
16.如权利要求15的方法,其中所述数据包括来自多个不同数据文件的若干个数据块。
17.如权利要求15的方法,其中所述数据包括数字数据。
18.如权利要求15的方法,其中每个所述索引表对应于来自与所述数据相关联的多个数据文件中的一个数据文件。
19.如权利要求15的方法,其中所述索引表包括对应于所述存储数据的地址信息。
20.如权利要求15的方法,其中,所述索引表被保留在缓冲高速存储器中和永久存储器中,其中所述缓冲高速存储器和所述永久存储器与接收所述数据的一个系统相关联。
21.如权利要求15的方法,其中,以所述缓冲高速存储器中保留的所述索引表中的信息周期性地更新被保留在所述永久存储器中的所述索引表。
22.一种用于管理数据的方法,该方法包括以下由计算机实施的步骤在一接收机中接收所述数据,以所述数据被接收的顺序而存储所述数据,以形成存储数据;将所述存储数据表示为一个列表;基于所述列表而创建和保留索引表;和其中所述索引表包括对应于所述存储数据的地址信息;和所述索引表被用于定位所述存储数据。
23.一种用于管理数据的方法,该方法包括以下由计算机实施的步骤以所述数据被接收的顺序而存储所述数据,以形成存储数据;将所述存储数据表示为一个列表;基于所述列表而创建和保留索引表;和其中所述索引表包括对应于所述存储数据的地址信息;所述索引表被保留在缓冲高速存储器中和永久存储器中,其中所述缓冲高速存储器和所述永久存储器与接收所述数据的一个系统相关联;及所述索引表被用于定位所述存储数据。
24.一种用于管理数据的设备,包括计算机装置,包括存储装置,用于以所述数据被接收的顺序而存储所述数据以形成存储数据;表示装置,用于将所述存储数据表示为一个列表;创建和保留装置,用于基于所述列表而创建和保留索引表;其中所述索引表包括对应于所述存储数据的地址信息;所述索引表被保留在缓冲高速存储器中和永久存储器中,其中所述缓冲高速存储器和所述永久存储器与接收所述数据的一个系统相关联;及所述索引表被用于定位所述存储数据。
25.一种用于管理数据的方法,该方法包括以下由计算机实施的步骤接收所述数据,其中所述数据包括来自多个不同数据文件的若干个数据块;以所述数据被接收的顺序而存储所述数据,以形成存储数据;将所述存储数据表示为一个列表;及基于所述列表而创建和保留索引表,其中,所述索引表被用于定位所述存储数据。
26.一种用于管理以非序列方式接收的数据的数据结构,其中所述数据包括来自多个不同数据文件的多个数据块;所述数据结构是一个列表;所述数据结构包括用于存储所述数据的若干个单元;和每个所述单元存储来自所述多个数据块的一个数据块;每个所述单元被映射到一个对应的地址位置。
27.如权利要求26的数据结构,其中一个索引表被创建而对应于所述多个不同数据文件的每一个;和其中所述索引表包含对应于所述数据块的所述地址信息,所述数据块对应来自所述多个不同数据文件的一个特殊数据文件。
全文摘要
本发明涉及数据存储系统,适于高速存储作为非序列数据块接收的数据文件。在优选实施例中,数据块以接收的顺序被存储,而这些数据块的正确顺序被保留在一个独立的数据结构中。这样可使数据存储期间的总搜索时间最小,并可实现文件数据块的顺序检索。在另一个优选实施例中,接收机将永久存储器的多个部分分配给每个数据文件。这种方法可平衡存储期间的总搜索时间与文件检索期间的总搜索时间,和减轻当存储文件被删除时永久存储空间被释放所导致的存储碎片的某些影响。
文档编号G06F12/02GK1474276SQ0314389
公开日2004年2月11日 申请日期2003年7月25日 优先权日2002年7月26日
发明者黄炎, 炎 黄 申请人:派威公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1