分布式存储系统及其数据存储方法与流程

文档序号:30088265发布日期:2022-05-18 07:03阅读:281来源:国知局
分布式存储系统及其数据存储方法与流程

1.本公开涉及分布式存储系统及其数据存储方法,特别涉及为集成电路设计提供数据存储服务的分布式存储系统及其数据存储方法。


背景技术:

2.目前,针对集成电路(ic),特别是大规模集成电路,在设计阶段聚集了具有密集计算资源和存储资源使用的多方协作。
3.通过分配充裕的处理器和内存,以及适当调节的负载平衡器,目前已基本上能够准备充足的计算资源。
4.然而,另一方面,对存储资源的需求不只取决于容量,而且还取决于多个租户之间的带宽和服务质量(qos)。给定在线运行的密集输入输出(io)模式,设计高效存储以用于ic的eda协作已成为开发进程中非常具有挑战性的瓶颈之一。
5.传统方案是将分布式存储集群设计为具有多个副本,用于为来自客户端的多个电子设计自动化(eda)进程的高并行访问提供服务。
6.图1示出了传统用于eda协作的高并发访问的分布式存储系统实现方案。
7.作为仿真平台,提供多个虚拟机(vm)。客户端(client)访问虚拟机(vm),以在虚拟机(vm)中运行eda软件。
8.虚拟机(vm)使用多个计算节点提供的计算资源来完成前端设计和后端设计的设计工作。前端设计工作主要包括编码、模拟、合成(synthesis)等。后端设计工作主要包括布局布线、时序收敛、布局后模拟等。
9.在eda授权服务器的许可下,计算节点经由数据中心网络,在多个存储节点中存取数据。
10.从存储访问模式的角度讲,前端进程频繁读取和写入的文件既有小文件又有大文件,而后端进程则主要频繁读取和写入大文件。
11.除了数据内容读取和写入,大量文件的元数据管理也可能增加等待时间。
12.考虑到上述特性,在eda开发过程中,通用存储集群遇到了下述挑战:
13.1.由于通过多个网络交换机的长io路径,访问等待时间几乎不能满足要求。
14.2.高并行访问同时以随机的方式发生。作为结果,多个租户可能同时命中热点文件,这将导致突发同步读取和写入的qos困难。
15.3.后端设计请求高吞吐量,以载入/修改从存储集群移动过来的大文件。完成大文件读取/写入的总等待时间很长。
16.4.存储集群能够提供良好的可靠性,确保并行进程能够无故障运行。但是这也伴随着相当大的容量和带宽消耗的成本。
17.因此,仍然需要一种改进的数据存储方案,以便更好地使用分布式存储系统为集成电路设计提供数据存储服务。


技术实现要素:

18.本公开要解决的一个技术问题是提供一种分布式数据存储方案,其能够更好地为集成电路设计提供数据存储服务。
19.根据本公开的第一个方面,提供了一种数据存储方法,用于为集成电路设计提供数据存储服务的分布式存储系统,该方法包括:将多个存储节点中不同类型的存储器划分为第一类存储器和第二类存储器,其中第一类存储器的性能高于第二类存储器的性能,多个存储节点中的第一类存储器形成第一存储池,多个存储节点中的第二类存储器形成第二存储池;对于集成电路设计过程中产生的文件,根据其文件类型确定将文件写入第一类存储器还是第二类存储器;以及相应地在第一存储池或第二存储池中选择所确定类型的存储器,以写入文件。
20.可选地,对于集成电路设计过程中产生的文件,根据其文件类型确定将文件写入第一类存储器还是第二类存储器的步骤包括:根据文件的后缀名确定文件的文件类型;根据文件的文件类型确定文件的数据尺寸和/或访问模式和/或访问热度;以及根据文件的数据尺寸和/或访问模式和/或访问热度来确定将文件写入第一类存储器还是第二类存储器。
21.可选地,在文件类型对应于小文件和/或以随机方式访问和/或频繁访问的文件的情况下,将文件写入第一类存储器;并且/或者在文件类型对应于大文件和/或worm文件和/或按顺序访问的文件的情况下,将文件写入第二类存储器。
22.可选地,该方法还可以包括:针对集成电路设计过程中会产生的各种文件类型的文件,分别根据其文件类型对应的数据尺寸和/或访问模式和/或访问热度,在第一存储池或第二存储池中分别预先分配连续的存储空间;以及将文件的元数据保存并注册在分布式主机节点上。
23.可选地,该方法还可以包括:根据文件的属性确定文件的存储方式,以减少存储容量和带宽消耗。
24.可选地,对于能够重新生成的信号,不进行存储。
25.可选地,对于多个任务要求存储的多个文件中相同的共同向量,仅保存一次,并在分布式主机节点上注册共同向量列表,记录其元数据信息,并为其分配存储空间。
26.可选地,对于具有可识别模式的信号向量,记录其模式信息而不记录信号向量本身。
27.可选地,该方法还可以包括:在一个信号使用高于其所需要的采样率的情况下,对一个信号进行数据抽取,以减除冗余数据。
28.可选地,该方法还可以包括:根据分布式存储系统所使用的精确度,对信号的实际位宽进行调整,以便与分布式存储系统所使用的精确度相匹配。
29.根据本公开的第二个方面,提供了一种用于为集成电路设计提供数据存储服务的分布式存储系统,包括多个存储节点,每个存储节点包括至少一个存储器,其中,多个存储节点中不同类型的存储器被划分为第一类存储器和第二类存储器,其中第一类存储器的性能高于第二类存储器的性能,多个存储节点中的第一类存储器形成第一存储池,多个存储节点中的第二类存储器形成第二存储池;对于集成电路设计过程中产生的文件,根据其文件类型确定将文件写入第一类存储器还是第二类存储器,并且相应地在第一存储池或第二存储池中选择所确定类型的存储器,以写入文件。
30.根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
31.根据本公开的第四个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。
32.根据本公开的第五个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
33.由此,在集成电路(特别是大规模集成电路)设计的特定场景下,针对其有限类型的数据文件,从多个存储节点中不同性能的存储器分别形成的高性能存储池和低性能存储池中分配适应于文件类型的存储位置,实现了待存储文件的文件类型与存储空间的高效匹配,在避免存储设备成本大幅提升的同时,提升了文件的存取效率。
附图说明
34.通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
35.图1示出了传统用于eda协作的高并发访问的分布式存储系统实现方案。
36.图2是可用于实施本公开的数据存储方案的分布式存储系统的示意性架构图。
37.图3是根据本公开的数据存储方法的示意性流程图。
38.图4是实施本公开的数据存储方案的分布式存储系统的示意性逻辑架构图。
39.图5是对文件类型进行分类管理的示意图。
40.图6是连续写入数据和连续读取数据操作的示意图。
41.图7示意性地示出了对待存储数据的进一步规约方案。
42.图8示意性地示出了向量内简化方案。
43.图9示出了根据本发明一实施例可用于实现上述数据存储方法的计算设备的结构示意图。
具体实施方式
44.下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
45.本公开提出了一种用于为集成电路设计提供数据存储服务的分布式存储系统。该分布式存储系统包括多个存储节点,每个存储节点包括至少一个存储器。
46.这些存储器可以分别为各种不同的类型。在一些场合下,同一个存储节点上的多个存储器也可能属于不同的类型。
47.一些类型的存储器具有较高的性能,例如英特尔傲腾(optance)持久存储器,属于高性能持久性存储器,具有较高的存取速度,相应地也具有较高的成本。相比而言,另一些
类型的存储器具有相对较低的性能,例如硬盘驱动器(hdd)、固态硬盘(ssd)等,相应地也具有较低的成本。
48.图2是可用于实施本公开的数据存储方案的分布式存储系统的示意性架构图。
49.如图2所示,计算集群中的计算节点通过数据中心网络在多个存储节点中存取数据。
50.除了多个双列直插内存模块(dimm)、cpu接口、网络接口控制器(nic)等之外,每个存储节点可以包括硬盘驱动器(hdd)、固态硬盘(ssd)、高性能持久性存储器等一个或多个可能不同类型的存储器,用来存储集成电路设计过程中,例如eda仿真过程中所产生的数据、信号、文件等。
51.传统分布式存储系统中,基于存储节点分配数据存储任务。例如,根据各节点的忙闲程度及存储容量,分配当前的数据存储任务,确定将当前数据存储到哪个存储节点。
52.在传统分布式存储方案中,确定数据存储到哪个存储节点时,不考虑文件的类型。相应地也就没有基于文件的类型进行存储方案的优化。
53.事实上,对于普通的数据存储场景,往往并不需要基于文件的类型来确定分配方案。而且,对于普通的数据存储场景,文件的类型也较难以分析,难以预判各个文件的属性、访问模式、访问热度等,因而也就难以确定哪些文件适于存储到哪些存储节点或哪些存储位置。
54.然而,在集成电路设计的应用场景中,例如eda仿真过程中,所生成的数据或文件只有有限的类型。而且每种类型的数据或文件具有鲜明的属性,例如文件大小(数据尺寸)、访问模式、访问热度等。如果能够基于这样的数据或文件属性对存储方案进行优化,将会极大地提升存储的效率和性能。
55.图3是根据本公开的数据存储方法的示意性流程图。
56.如图3所示,在步骤s310,根据存储器的性能,将多个存储节点中不同类型的存储器划分为第一类存储器和第二类存储器。第一类存储器的性能高于第二类存储器的性能。多个存储节点中的第一类存储器形成第一存储池,多个存储节点中的第二类存储器形成第二存储池。
57.例如,可以将图2所示每个存储节点中的高性能持久性存储器与其它存储节点中的同等类似存储器分入一组,以形成分布式持久性存储器池,也即第一存储池,各存储节点中具有相对较低性能的hdd/ssd及其同等类似存储器分入另一组,以形成较低性能的分布式存储器池,也即第二存储池。
58.本公开作为示例给出了将存储器划分为较高性能和较低性能两类的情形,相应形成两个存储池。应当理解,也可以将存储器划分为更多个类型,形成更多个存储池。
59.图4是实施本公开的数据存储方案的分布式存储系统的示意性逻辑架构图。
60.各个存储节点中的硬盘驱动器(hdd)、固态硬盘(ssd)、高性能持久性存储器等各种存储器被分别基于性能高低放入第一存储池和第二存储池。换言之,以存储池的形式,对不同存储节点中相同或相似类型的存储器进行了逻辑重组。
61.当计算集群中的计算节点经由数据中心网络请求访问(存取)数据时,数据中心网络基于第一存储池和第二存储池的架构,来管理各个存储节点上的存储器,并调度要存取的数据。
62.这样,在步骤s320,对于集成电路设计过程中产生的文件,根据其文件类型确定将文件写入第一类存储器还是第二类存储器。
63.如上文所述,在集成电路设计场景下,所涉及的文件类型是有限的,相应属性、访问模式、访问热度等也都是可以预先获知的。
64.这样,例如可以直接根据文件的后缀名确定文件的文件类型。
65.然后,可以根据文件的文件类型确定文件的数据尺寸、访问模式(例如读取/写入方式)、访问热度中的至少一项。
66.这样,可以根据文件的数据尺寸、访问模式、访问热度中的至少一项,来确定将文件写入第一类存储器还是第二类存储器。从而优化数据的存储位置选择。
67.例如,在文件类型对应于小文件和/或以随机方式访问和/或频繁访问的文件的情况下,可以将文件写入具有较高性能的第一类存储器,以提升存取访问效率。
68.在在线操作的过程中,热点文件可以动态移动到高性能的持久性存储器池(也即第一存储池)中,以提高性能。在特定文件被多个租户频繁访问的情况下,可以将该文件放入高性能的持久性存储器(也即第一存储池)中,以确保满足等待时间和带宽等方面的性能要求。
69.而在文件类型对应于大文件和/或worm(一次写入多次读取)文件和/或按顺序访问的文件(如波形文件)的情况下,则可以将文件写入具有较低性能的第二类存储器,以节省设备成本。
70.然后,在步骤s330,相应地在第一存储池或第二存储池中选择所确定类型的存储器,以写入文件。
71.图5是对文件类型进行分类管理的示意图。其中以圆形、方形等不同的图形示意性地示出了有限数量的对象类型文件。
72.在用于ic开发的eda场景中,文件类型和特征是固定且有限的,因此提取文件的特征是直截了当的。
73.当要将这些不同类型的文件放入存储资源池中时,可以根据例如文件的后缀名直接确定其文件类型,例如类型a、
……
、类型x、
……
、类型z。根据文件的类型,可以确定将其存放到具有相对较高性能的第一存储池,还是具有相对较低性能的第二存储池。
74.由此,可以实现不同类型数据存取效率的显著提升。
75.另外,针对集成电路设计过程中会产生的各种文件类型的文件,分别根据其文件类型对应的数据尺寸和/或访问模式和/或访问热度,在第一存储池或第二存储池中分别预先分配连续的存储空间。
76.图6是本公开实现连续写入数据和连续读取数据操作的示意图。
77.可以例如基于文件(数据)的属性(例如数据尺寸、访问热度、访问模式)等信息,预先对各种类型的文件在存储资源池(第一存储池和第二存储池)中分别分配连续的存储空间。这样,可以实现文件的连续存取。
78.可以将文件的元数据等保存并注册在分布式主机节点上,已备日后查询访问。分布式主机节点可以用来确定存储节点的分布存储方式。
79.这样,基于文件条件,可以提前分配连续的物理介质位置。因此,在后续的数据写入过程中,对元数据进行修改的次数和频率都减少,从而节省了iops(每秒输入/输出次数)
和带宽资源。
80.在读取操作过程中,只需要提供所要读取的数据块相对于连续存储空间起始位置的偏移量(offset)和所要读取的数据尺寸l,即可便捷地访问所要读取的数据。这种设计方案通过避免传统对齐问题对文件系统中的存储性能的影响,提升了io的尺寸灵活性。
81.另外,还可以根据文件的属性来进一步确定文件的存储方式,以减少存储容量和带宽消耗。
82.例如可以通过数据规约(data reduction)处理来实现,减小数据存储的规模。可以在分布式主机节点上存储有关数据规约方式信息,以便后期需要获取通过数据规约记录的数据时,能够基于从存储器上读取的数据正确地获得期望的数据。
83.图7示意性地示出了对待存储数据的进一步规约方案,用于减少存储容量和带宽消耗。
84.在集成电路设计过程中,大多数时候,会同时提交多项并行任务(例如模拟、合成、布局布线),来收集更多数据,以便对整个过程加速。一些数据的数据量较大,需要占用较大的存储空间。而且一些类型的数据会需要多次存储,也会占用更多存储空间。
85.然而,在集成电路设计的特定应用场景下,一些数据可以通过数据规约方案来减少数据存储量。
86.如图7所示,在集成电路设计过程中,例如基于一些来自客户端节点的额外信息,如环境设置、经验证的设计、驱动器/刺激、寄存器编程等,生成多个波形文件,例如波形a、波形b、
……
、波形z。每个波形文件需要占用较大的存储空间。一个波形例如可以是一个大文件,其中包括大量向量。向量是“0”、“1”构成的序列,每一个时钟周期具有不同的值。
87.首先,可以基于从客户端节点取回的上述额外信息,将例如要存储的波形文件中的向量划分成多个组。然后对各组向量分别进行相应的数据规约处理。
88.第一组是一些不需要存储的数据。具体说来,对于那些能够重新生成的信号(信号也是一种向量),可以不进行存储。
89.例如,设计平台或驱动器产生的那些信号,如输入(input)、刺激(stimulus)、配置标志等,是不需要存储的。当将来需要载入波形时,可以以准确的格式重新生成这些信号。
90.第二组是多次出现的共同向量,可以对其进行向量间去重(向量间重复数据删除)处理。
91.对于多个任务要求存储的多个文件中相同的共同向量,可以仅保存一次,并在分布式主机节点上注册共同向量列表,记录其元数据信息,并为其分配存储空间。
92.例如,对于并行任务分享的信号,可以进行向量间去重处理。
93.每个任务会转储其自己的波形。但是多个波形文件中往往会存在一些特定的共同向量。所以,这些共同向量仅需要保存一次,而不需要多次重复存储,这就是所谓的“向量间重复数据删除”。可以在分布式主机节点上注册确定的唯一向量列表,以用于记录其元数据和存储资源分配信息。
94.第三组是具有用于进一步简化的可识别模式的信号。对于具有可识别模式的信号向量,可以仅记录其模式信息而不记录信号向量本身。
95.例如,时钟信号是规则的,因此其可以被记录为周期和重复次数,而不需要记录每个时钟周期的翻转值(flipped value)。
96.另一个例子是一些特定的标志信号,如重置信号。重置信号例如可以是个一维向量,具有n个位,每个位的数值“0”或“1”表示n个时钟周期中,哪些周期需要重置。n的数值可能为100万、1千万。相应地,重置信号将具有非常庞大的数据量。
97.然而,大多数时候,重置信号并不会发生变化(in action)。因此,不需要记录每个周期不变的值。可以仅记录在多少个周期中这个信号保持了相同的值。例如,一个向量可以记为“20个1,980个0”。这样,只需要以较少的数据量记录信号向量的模式信息,而不需要1000个位来实际记录整个向量本身。
98.由于这一操作需要查看每个向量内部数据情形,可以将这个步骤称为“向量内简化”。
99.这样,如上文所述,可以在存储池(相应地在第一存储池或第二存储池)中提前分配物理位置,以基于时序向量创建和转储来容纳顺序写入的数据内容。
100.下面参考图8更进一步描述向量内简化方案。
101.图8示意性地示出了向量内简化方案。
102.可以预先总结观测到的模式,存储在模式识别库中。这样,对于到来的(已去除重复的)向量进行评估,以进行模式匹配,识别向量所属的模式,然后按相应模式进行简化存储,实现格式压缩。
103.这样,对于具有所匹配的模式的向量,能够被提炼为简洁的描述,以取代较长的原始数据串。
104.进一步地,可以执行冗余度调整。在一个信号使用了高于其所需要的采样率的情况下,可以对这个信号进行数据抽取,以减除冗余数据。
105.例如,一个信号位数很长,然而,例如基于其上游和下游的操作处理需求、或相关数据的采样率,只需要其中前几个位,这样,可以仅抽取该信号的前几个位进行存储。
106.进一步地,还可以执行数据精度匹配调整。可以根据分布式存储系统所使用的精确度,对信号的实际位宽进行调整,以便与分布式存储系统所使用的精确度相匹配。
107.下一步是查看每个周期的数据表达。基于一个信号的位宽,以存储系统所使用的精度来评估要存储的信号的实际位宽。如果到来的信号数据采用了更多位来表达这个信号,可以进行精度匹配调整处理,以使信号位宽匹配所需要的精确度,从而减少所存储的内容,并因此节省容量和带宽。
108.例如,电路有上下游,只需要按最低精度存储上下游的全部信号数据即可。
109.上文中参考附图详细描述了本公开用于支持集成电路开发的存储系统增强创新方案。该方案能够为集成电路设计开发,特别是大规模集成电路的设计开发,提供良好的存储服务。
110.图9示出了根据本发明一实施例可用于实现上述数据存储方法的计算设备的结构示意图。
111.参见图9,计算设备900包括存储器910和处理器920。
112.处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(asic,application specific integrated circuit)或者现场
可编程逻辑门阵列(fpga,field programmable gate arrays)。
113.存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
114.存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的数据存储方法。
115.上文中已经参考附图详细描述了根据本发明的数据存储方案。
116.此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
117.或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
118.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
119.附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
120.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1