CN113377596A - 用于存储和读取波形数据的方法及相关设备 - Google Patents
用于存储和读取波形数据的方法及相关设备 Download PDFInfo
- Publication number
- CN113377596A CN113377596A CN202110688191.5A CN202110688191A CN113377596A CN 113377596 A CN113377596 A CN 113377596A CN 202110688191 A CN202110688191 A CN 202110688191A CN 113377596 A CN113377596 A CN 113377596A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- waveform data
- subdata
- waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013461 design Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 21
- 238000004088 simulation Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种用于存储和读取波形数据的方法及相关设备,用于存储波形数据的方法,包括:在主机处接收波形数据;将波形数据分为多组子数据;将多组子数据分配到给定数量的多个存储单元;以及将多组子数据分别传输至分配的多个存储单元,其中,多个存储单元与主机通信地连接,基于此,可以通过网络通信的方式,将波形数据分成的多组子数据,分布式地存储到不同的存储单元上,进而不会产生波形数据存储到单一主机上,对主机存储空间要求过高导致成本较高的问题。
Description
技术领域
本公开涉及电路技术领域,尤其涉及一种用于存储和读取波形数据的方法及相关设备。
背景技术
在数字电路仿真过程中,仿真工具会在仿真开始后,记录数字电路各个节点的信号的运行情况,并保存成波形数据。由于波形数据记录着信号随着时间的变化信息,所以,仿真工具可以根据波形数据重新生成数字电路在运行时的波形。用户可以根据波形来综合判断数字电路的功能是否正确。传统的仿真工具都是将波形数据存储到单一的主机上,但是,伴随着波形数据越发庞大,这种存储方式对主机的存储空间的要求越来越高,增加了用户的成本。
发明内容
有鉴于此,本申请提供了一种用于存储和读取波形数据的方法及相关设备。
本申请第一方面,提供了一种用于存储波形数据的方法,包括:在主机处接收波形数据;将所述波形数据分为多组子数据;将所述多组子数据分配到给定数量的多个存储单元;以及将所述多组子数据分别传输至分配的所述多个存储单元,其中,所述多个存储单元与所述主机通信地连接。
本申请第二方面,提供了一种用于读取波形数据的方法,包括:接收用于读取波形数据的数据读取请求;根据所述数据读取请求,确定与所述波形数据对应的分组方式和分配方式;根据所述分组方式,确定与所述波形数据对应的至少一组子数据,根据所述分配方式,确定所述至少一组子数据所在存储单元的信息;根据所述存储单元的信息,从相应的存储单元中读取所述至少一组子数据;根据所述至少一组子数据,获得所述波形数据。
本申请第三方面,提供了一种计算装置,包括:存储器,存储至少一组指令;处理器,执行所述至少一组指令进行第一方面所述的方法,或者如第二方面所述的方法。
本申请第四方面,提供了一种可读存储介质,所述可读存储介质存储主机的至少一组指令,所述至少一组指令用于使所述主机执行如第一方面所述的方法,或者如第二方面所述的方法。
本申请实施例提供的用于存储和读取波形数据的方法及相关设备,在主机处接收波形数据,将波形数据分为多组子数据,将多组子数据分配到给定数量的多个存储单元,并将多组子数据分别传输至分配的多个存储单元,由于多个存储单元与产生波形数据的主机通信地连接,因此,可以通过网络通信的方式,将波形数据分成的多组子数据,分布式地存储到不同的存储单元上,进而不会产生波形数据存储到单一主机上,对主机存储空间要求过高导致成本较高的问题。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种主机的结构示意图;
图2示出了本申请实施例提供的一种仿真工具的结构示意图;
图3示出了本申请实施例提供的一种仿真系统的结构示意图;
图4示出了本申请实施例提供的一种波形数据的划分方式的示意图;
图5示出了本申请实施例提供的另一种波形数据的划分方式的示意图;
图6示出了本申请实施例所提供的一种用于存储波形数据的方法的流程示意图;
图7示出了本申请实施例所提供的一种用于读取波形数据的方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1示出了本申请实施例提供的一种主机10的结构示意图。该主机10可以是计算机主机。并且,该主机10包括:处理器101、总线102、存储器103、网络接口104和外围接口105。
其中,处理器101可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器101可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器101还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器101可以包括多个处理器101a、101b和101c。
存储器103可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据(例如,存储器103可以存储在编译过程产生的临时代码)。处理器101也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器103可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器103可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口104可以配置为经由网络向主机10提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口104可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口105可以配置为将主机10与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线102可以被配置为在主机10的各个组件(例如处理器101、存储器103、网络接口104和外围接口105)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器101、总线102、存储器103、网络接口104和外围接口105,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2示出了本申请实施例提供的一种仿真工具20的结构示意图。
在芯片设计领域,通常利用硬件仿真工具(emulator)或软件仿真工具(simulator)对一个设计进行硬件仿真或软件仿真。在一些实施例中,仿真工具20可以是软件仿真工具,该仿真工具20可以是运行在主机10上的计算机程序。例如,该仿真工具20的程序指令和数据存储在存储器103上,处理器101通过执行存储器103上存储的程序指令,执行仿真操作。
本申请图2示出的仿真工具20可以包括编译器200和仿真器210。编译器200可以将设计编译为目标代码,仿真器210可以根据目标代码进行仿真,产生仿真结果。可以理解的是,仿真工具20也可以是硬件仿真工具。
波形数据作为仿真工具20仿真设计产生的仿真结果,可存储到主机上。但是,当对片上系统芯片(System-On-Chip,简称SOC)等复杂的电路进行仿真时,会产生大量的波形数据,这些波形数据会占用巨大的存储空间。一旦波形数据占用的存储空间超过主机的存储空间,会导致产生的波形数据无法存储,影响仿真效果。随着芯片复杂度的提升,对芯片设计进行仿真产生的波形数据,很容易超出单一主机的存储空间。一种解决方案就是不断提升单主机的存储空间,但是这种做法需要满足最大的波形数据的存储需求,导致成本高昂且利用率低下。
为解决上述问题,本申请实施例提供一种新型的仿真系统。
图3示出了本申请实施例提供的仿真系统300的结构示意图。如图3所示,该仿真系统300可以包括:仿真工具20、计算装置30和多个存储单元31(例如,存储单元31a、31b和31c)。
其中,计算装置30可以包括第一接口单元302,用于与仿真工具20的连接。其中,第一接口单元302可以包括RS232接口、USB接口、LAN口、光纤接口、IEEE1394(火线接口)等。
本申请一些实施例中,计算装置30还可以包括第二接口单元304,用于与多个存储单元31的通信连接。其中,第二接口单元可以包括网络接口,可选地,网络接口为无线网络接口,如WIFI接口、蓝牙接口等。
多个存储单元31可以包括多个主机,不同的存储单元31可以属于不同的主机。并且,多个主机可以包括计算装置30所在的主机10,也可以不包括计算装置30所在的主机10。即,本申请实施例中,可以将子数据存储在主机10以及其他主机上,也可以仅将子数据存储在其他主机上。
需要说明的是,图3中仅以3个存储单元为例进行说明,本申请并不仅限于此,在其他实施例中,存储单元的数量还可以为2、4、5、6等,具体数量可以根据实际需要给定或设定。
图4示出了本申请实施例提供的一种波形数据的划分方式的示意图。如图4所示,计算装置30可以接收仿真工具20产生的波形数据40,并可以将波形数据40分为多组子数据,例如,分为第一组子数据41a、第二组子数据41b和第三组子数据41c。计算装置30可以将多组子数据41a至41c分配到给定数量的多个存储单元31,并将多组子数据41a至41c分别传输至分配的多个存储单元31,例如,将第一组子数据41a传输至分配的第一个存储单元31a、将第二组子数据41b传输至分配的第二个存储单元31b,将第三组子数据41c传输至分配的第三个存储单元31c。
本申请一些实施例中,计算装置30接收的波形数据40可以是由仿真工具(例如,硬件仿真工具或软件仿真工具)产生的、由其他波形文件(例如,VCD(value change dump)文件)提供的、或者由第三方应用程序生成的。其中,该设计可以是逻辑系统设计,也可以是其他电路系统的设计。而逻辑系统设计可以是片上系统芯片(System-On-Chip,简称SOC)的设计或者用于供专门应用的集成电路(Application Specific Integrated Circuit,简称ASIC)的设计。被仿真的设计又可以称为待测装置(Device Under Test,简称DUT)。
当然,本申请的波形数据并不仅限于逻辑系统设计输出的波形数据。在另一些实施例中,计算装置30接收的波形数据40还可以是其他工具输出的波形数据。即,本申请实施例中的波形数据40可以是仿真设计产生的波形数据,也可以是测试环境中的一些非RTL设计信号,例如assertion、checker、stream等波形数据。
本申请的一些实施例中,仿真工具20和计算装置30可以属于同一主机10。例如,仿真工具20和计算装置30的程序指令可以存储在同一主机10的存储器103上,处理器101通过执行存储器103上存储的仿真工具20的程序指令,执行仿真操作,处理器101通过执行存储器103上存储的计算装置30的程序指令,执行本申请实施例提供的存储、读取波形数据的操作。当然,本申请并不仅限于此,在另一些实施例中,仿真工具20和计算装置30也可以属于不同的主机,在此不再赘述。
本申请实施例中,计算装置30所在的主机10与多个存储单元31通信地连接,或者说,计算装置30所在的主机10与多个存储单元31所在的主机通信连接。其中,通信连接包括网络通信连接,即,计算装置30所在的主机10与多个存储单元31网络通信连接,以通过网络通信的方式,实现波形数据的分布式存储。
本申请的一些实施例中,计算装置30所在的主机10与多个存储单元31的通信协议包括RPC(Remote Procedure Call,远程过程调用协议)。RPC通信协议是一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。当然,本申请并不仅限于此,在另一些实施例中,还可以采用其他通信协议,在此不再赘述。
在本申请的实施例中,计算装置30可以根据波形数据40的特定参数,将波形数据40划分为多组子数据。如图4所示,计算装置30根据波形信号标识或模块划分方式,将波形数据40分为多组子数据41a至41c。
在一些实施例中,波形数据40可以包括多个波形信号的数据。多个波形信号具有与多个波形信号分别对应的多个波形信号标识。基于此,计算装置30可以根据多个波形信号标识,将每个波形信号的数据分为一组子数据。即,计算装置30根据波形信号标识,将波形数据40分为多组子数据,每组子数据为具有同一波形信号标识的数据。
需要说明的是,设计通常可以包括多个电路节点,每个电路节点会输出一个波形信号。这些波形信号通常由信号名、信号值和时间轴组成,并且,这些波形信号都具有对应的波形信号标识,以区分不同电路节点输出的信号。由于波形信号标识是设计本身就具有的参数,因此,基于波形信号标识进行分组,可以便于仿真工具20、计算装置30以及其他主机调用子数据,并根据子数据重组得到波形数据40。
在另一些实施例中,设计可以包括多个模块。波形数据40也会相应地包括多个模块的波形数据。基于此,计算装置30可以将多个模块中每个模块输出的波形数据分为一组子数据。即,计算装置30根据模块的划分方式,可以将波形数据40分成多组子数据,每组子数据包括一个模块的波形数据。
需要说明的是,为了便于仿真,一些实施例中,会将设计划分为多个模块,不同的模块对应不同的电路版图,具体的模块划分方式在此不再赘述。可以理解的是,每一个模块可以包括至少一个电路节点,即每个模块的波形数据包括至少一个波形信号的数据。将同一个模块的波形数据分为同一组子数据,可以便于子数据的读取以及重组。
图5示出了本申请实施例提供的另一种波形数据的划分方式的示意图。在另一些实施例中,如图5所示,计算装置30还可以按照时间顺序将波形数据40分为多个数据片段,例如,分成数据片段42a、42b和42c,一组子数据包括至少一个数据片段,例如,第一组子数据42a包括数据片段40a、第二组子数据42b包括数据片段40b、第三组子数据42c包括数据片段40c。
在一个示例性实施例中,计算装置30可以从接收到波形数据40开始计时,将1~1000s接收到的波形数据40分为一个数据片段,将1001s~2000s接收到的波形数据40分为一个数据片段,以此类推,直到波形数据40输出终止,并将每个数据片段分成一组子数据。当然,本申请并不仅限于上述三种分组方式,在此不再一一赘述。
回到图4,在本申请的实施例中,将波形数据40分成多组子数据之后,如图4所示,计算装置30可以将每组子数据分配给一个存储单元31,当然,计算装置30也可以将多组子数据分配给一个存储单元31。
在本申请的一些实施例中,计算装置30可以根据多个存储单元31的给定数量,使用哈希算法确定多组子数据的分配方式,并根据该分配方式将多组子数据分配给多个存储单元31。
一种可选地分配方式是,计算装置30将第一组子数据41a至第三组子数据41c分别分配给第一个存储单元31a至第三个存储单元31c,再将第四组子数据至第六组子数据分别分配给第一个存储单元31a至第三个存储单元31c,以此类推,直到把所有的子数据分配完成。
另一种可选地分配方式是,计算装置30将第一组子数据至第m组子数据分配给第一个存储单元31a,将第m+1组子数据至第n组子数据分配给第二个存储单元31b,将第n+1组子数据至第s组子数据分配给第三个存储单元31c。1≤m≤m+1≤n≤n+1≤s,m、n、s都是自然数。当然,本申请并不仅限于上述两种分配方式,在此不再赘述。
为了减少对网络带宽资源的占用,在本申请一些实施例中,计算装置30将波形数据40分成多组子数据之后,还会将多组子数据存储到主机10的缓存单元中,并判断是否达到预设传输条件;以及,响应于达到的预设传输条件,将多组子数据分别传输至分配的多个存储单元31。
也就是说,计算装置30将波形数据40分成多组子数据之后,会先将多组子数据存储到主机10的缓存单元中,并判断是否达到预设传输条件,若达到预设传输条件,缓存单元将多组子数据分别传输至分配的多个存储单元31,若未达到预设传输条件,多组子数据仍保存在缓存单元中,并不会传输到多个存储单元31中。
其中,预设传输条件包括以下的至少一个:缓存的剩余存储空间小于预设值;多组子数据的缓存时间达到预设时间;或接收到强制传输指令。当然,本申请并不仅限于此,在另一些实施例中,可以根据实际情况设置预设传输条件,在此不再赘述。
在本申请另一些实施例中,计算装置30还用于读取波形数据,其中,计算装置30接收用于读取波形数据的数据读取请求,根据数据读取请求,确定与波形数据对应的分组方式和分配方式,根据分组方式,确定与波形数据对应的至少一组子数据,根据分配方式,确定至少一组子数据所在存储单元31的信息,根据存储单元31的信息,从相应的存储单元31中读取至少一组子数据,如图4所示,从第一个存储单元31a中读取第一组子数据41a、从第二个存储单元31b中读取第二组子数据41b、从第三个存储单元31c中读取第三组子数据41c,根据至少一组子数据,获得波形数据,如图4所示,根据第一组子数据41a、第二组子数据41b和第三组子数据41c获得波形数据40。
需要说明的是,计算装置30获得待读取的波形数据之后,会将波形数据传输至发送数据读取请求的装置,该装置可以是仿真工具20,也可以是通过外围接口105与主机10连接的显示器等。
还需要说明的是,在本申请一些实施例中,计算装置30通过网络通信的方式,从存储单元31中读取子数据。可选地,计算装置30通过第二接口单元与存储单元31通信连接,二者之间的通信协议包括RPC通信协议等。
在一些可选地实施方式中,计算装置30接收到数据读取请求之后,根据数据读取请求,确定波形数据的范围,并确定与波形数据对应的分组方式和分配方式,其中分组方式和分配方式可以是计算装置30在波形数据的存储阶段预先设定好的。之后,计算装置30根据分组方式以及波形数据的范围,确定与波形数据对应的至少一组子数据,然后根据分配方式,确定至少一组子数据所在存储单元31的信息,即确定波形数据对应的至少一组子数据存储在那些存储单元31,根据存储单元的信息,从相应的存储单元31中读取至少一组子数据,并对至少一组子数据进行迭代,获得待读取的波形数据。
本申请一些实施例中,计算装置30从相应的存储单元31中读取至少一组子数据之后,计算装置30还可以将至少一组子数据存储到缓存单元中。其中,确定与波形数据对应的至少一组子数据之后,计算装置30还可以判断缓存单元中是否存储有至少一组子数据,若存储有,则从缓存单元中读取至少一组子数据,并根据至少一组子数据,获得待读取的波形数据;若没有存储,则根据分配方式,确定至少一组子数据所在存储单元31的信息,根据存储单元31的信息,从相应的存储单元31中读取至少一组子数据,根据至少一组子数据,获得待读取的波形数据。
本申请的实施例还提供了一种用于存储波形数据的方法。
图6示出了本申请实施例所提供的一种用于存储波形数据的方法600的流程示意图。方法600可以由图1所示的主机10执行。具体地,方法600可以由运行在主机10上的计算装置30(如图3所示)执行。该方法600可以具体包括以下步骤。
在步骤601,计算装置30在主机10处接收波形数据。
在一些实施例中,波形数据是仿真设计产生的。可选地,波形数据是图2所示的仿真工具20仿真设计产生的。在另一些实施例中,波形数据也可以是其他工具产生的,或者说,波形数据也可以是测试环境中的一些非RTL设计信号,例如assertion、checker、stream等波形数据。
在步骤602,计算装置30将波形数据分为多组子数据(例如图4所示第一组子数据41a、第二组子数据41b和第三组子数据41c)。
在一些实施例中,将波形数据分为多组子数据包括:根据波形信号标识或模块划分方式,将波形数据分为多组子数据。或者,将波形数据分为多组子数据包括:根据时间顺序,将波形数据分为多组子数据(例如图5所示第一组子数据42a、第二组子数据42b和第三组子数据42c)。
本申请的一些实施例中,波形数据包括多个波形信号的数据,多个波形信号具有与多个波形信号分别对应的多个波形信号标识,将波形数据分为多组子数据进一步包括:根据多个波形信号标识,将每个波形信号的数据分为一组子数据。
在另一些实施例中,设计包括多个模块,将波形数据分为多组子数据进一步包括:将多个模块的中每个模块输出的波形数据分为一组子数据。或者,在另一些实施例中,将波形数据分为多组子数据进一步包括:按照时间顺序将波形数据分为多个数据片段,一组子数据包括至少一个数据片段。
在步骤603,计算装置30将多组子数据分配到给定数量的多个存储单元31。例如,如图4所示的将第一组子数据41a分配给第一个存储单元31a、将第二组子数据41b分配给第二个存储单元31b、将第三组子数据41c分配给第三个存储单元31c。
本申请一些实施例中,将多组子数据分配到给定数量的多个存储单元31进一步包括:根据多个存储单元31的给定数量,使用哈希算法确定多组子数据的分配方式;以及根据分配方式将多组子数据分配给多个存储单元31。
在步骤604,将多组子数据分别传输至分配的多个存储单元31,其中,多个存储单元31与主机51通信地连接。本申请一些实施例中,主机51可以通过RPC通信协议将子数据传输存储单元31。
本申请实施例提供的用于存储波形数据的方法,可以通过网络通信的方式,将波形数据分成的多组子数据,分布式地存储到不同的存储单元31上,进而不会产生波形数据存储到单一主机上,对主机存储空间要求过高导致成本较高的问题。
本申请一些实施例中,用于存储波形数据的方法,还包括:将多组子数据存储到主机的缓存单元中;判断是否达到预设传输条件;以及响应于达到预设传输条件,将多组子数据分别传输至分配的多个存储单元31。
其中,预设传输条件包括以下的至少一个:缓存的剩余存储空间小于预设值;多组子数据的缓存时间达到预设时间;或接收到强制传输指令。
基于同一发明构思,与上述实施例用于存储波形数据的方法相对应的,本申请实施例还提供了一种用于读取波形数据的方法。
图7示出了本申请实施例所提供一种用于读取波形数据的方法700的流程示意图。方法700可以由图1所示的主机10执行。具体地,方法700可以由运行在主机10上的计算装置30(图3所示)执行。该方法700可以具体包括以下步骤。
在步骤701,计算装置30接收用于读取波形数据的数据读取请求。
在一些实施例中,参考图3,计算装置30接收仿真工具20发送的数据读取请求,当然,本申请并不仅限于此,计算装置30还可以接收并响应外部显示器等装置发送的数据读取请求,在此不再赘述。
在步骤702,计算装置30根据数据读取请求,确定与波形数据对应的分组方式和分配方式。
在一些实施例中,计算装置30接收到数据读取请求之后,根据数据读取请求,确定波形数据的范围,并确定与波形数据对应的分组方式和分配方式,其中,分组方式和分配方式可以是计算装置30在波形数据的存储阶段预先设定好的。
在步骤703,计算装置30根据分组方式,确定与波形数据对应的至少一组子数据。
在步骤704,计算装置30根据分配方式,确定至少一组子数据所在存储单元31的信息。
在步骤705,计算装置30根据存储单元31的信息,从相应的存储单元31中读取至少一组子数据(如图4所示的从第一个存储单元31a中读取第一组子数据41a、从第二个存储单元31b中读取第二组子数据41b、从第三个存储单元31c中读取第三组子数据41c)。
在一些实施例中,计算装置30通过网络通信的方式,从存储单元31中读取子数据。可选地,计算装置30通过第二接口单元与存储单元31通信连接,二者之间的通信协议包括RPC通信协议等。
在步骤706,计算装置30根据至少一组子数据,获得波形数据(如图4所示的根据第一组子数据41a、第二组子数据41b和第三组子数据41c获得波形数据40)。
需要说明的是,计算装置30获得待读取的波形数据之后,会将波形数据传输至发送数据读取请求的装置,该装置可以是仿真工具20,也可以是通过外围接口105与主机10连接的显示器等。
在一些实施例中,为了减少带宽资源的占用,从相应的存储单元31中读取至少一组子数据之后,还包括:将至少一组子数据存储到缓存单元中。
在此基础上,本申请一些实施例中,确定与波形数据对应的至少一组子数据之后,还包括:判断缓存单元中是否存储有至少一组子数据;若是,从缓存单元中读取至少一组子数据,并根据至少一组子数据,获得波形数据;若否,根据分配方式,确定至少一组子数据所在存储单元31的信息,根据存储单元31的信息,从相应的存储单元31中读取至少一组子数据,根据至少一组子数据,获得波形数据。
本申请实施例提供的用于读取波形数据的方法,可以通过网络通信的方式,从多个存储单元31上获得分布式存储的多组子数据,由于多组子数据分布式地存储到不同的存储单元31上,因此,不会产生波形数据存储到单一主机上,对主机存储空间要求过高导致成本较高的问题。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种计算装置30,该计算装置30包括存储器和处理器,存储器存储至少一组指令,处理器执行该至少一组指令进行波形数据的存储或读取。
本申请还提供了一种可读存储介质,可读存储介质存储主机的至少一组指令,至少一组指令用于使主机执行如上任一实施例提供的用于存储或读取波形数据的方法。
本申请实施例的可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是主机可读指令、数据结构、程序的模块或其他数据。主机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的可读存储介质存储的主机指令用于使主机执行如上任一实施例方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种用于存储波形数据的方法,其中,包括:
在主机处接收波形数据;
将所述波形数据分为多组子数据;
将所述多组子数据分配到给定数量的多个存储单元;以及
将所述多组子数据分别传输至分配的所述多个存储单元,其中,
所述多个存储单元与所述主机通信地连接。
2.根据权利要求1所述的方法,其中,所述设计包括多个模块,所述波形数据包括多个波形信号的数据,所述多个波形信号具有与所述多个波形信号分别对应的多个波形信号标识;
所述将所述波形数据分为多组子数据进一步包括:
根据所述多个波形信号标识,将每个波形信号的数据分为一组子数据;
或者,所述将所述波形数据分为多组子数据进一步包括:
将所述多个模块的中每个模块输出的波形数据分为一组子数据;
或者,所述将所述波形数据分为多组子数据进一步包括:
按照时间顺序将所述波形数据分为多个数据片段,一组子数据包括至少一个所述数据片段。
3.根据权利要求1所述的方法,其中,所述将所述多组子数据分配到给定数量的多个存储单元进一步包括:
根据所述多个存储单元的给定数量,使用哈希算法确定所述多组子数据的分配方式;以及
根据所述分配方式将所述多组子数据分配给所述多个存储单元。
4.根据权利要求1所述的方法,其中,还包括:
将所述多组子数据存储到所述主机的缓存单元中;
判断是否达到预设传输条件;以及
响应于达到所述预设传输条件,将所述多组子数据分别传输至分配的多个存储单元。
5.根据权利要求4所述的方法,其中,所述预设传输条件包括以下的至少一个:
所述缓存的剩余存储空间小于预设值;
所述多组子数据的缓存时间达到预设时间;或
接收到强制传输指令。
6.一种用于读取波形数据的方法,其中,包括:
接收用于读取波形数据的数据读取请求;
根据所述数据读取请求,确定与所述波形数据对应的分组方式和分配方式;
根据所述分组方式,确定与所述波形数据对应的至少一组子数据,根据所述分配方式,确定所述至少一组子数据所在存储单元的信息;
根据所述存储单元的信息,从相应的存储单元中读取所述至少一组子数据;
根据所述至少一组子数据,获得所述波形数据。
7.根据权利要求6所述的方法,其中,从相应的存储单元中读取所述至少一组子数据之后,还包括:
将所述至少一组子数据存储到缓存单元中。
8.根据权利要求7所述的方法,其中,确定与所述波形数据对应的至少一组子数据之后,还包括:
判断所述缓存单元中是否存储有所述至少一组子数据;
若是,从所述缓存单元中读取所述至少一组子数据,并根据所述至少一组子数据,获得所述波形数据;
若否,根据所述分配方式,确定所述至少一组子数据所在存储单元的信息。
9.一种计算装置,其中,包括:
存储器,存储至少一组指令;
处理器,执行所述至少一组指令进行如权利要求1至5任一项所述的方法,或者如权利要求6至8任一项所述的方法。
10.一种可读存储介质,其中,所述可读存储介质存储主机的至少一组指令,所述至少一组指令用于使所述主机执行如权利要求1至5任一项所述的方法,或者如权利要求6至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688191.5A CN113377596A (zh) | 2021-06-21 | 2021-06-21 | 用于存储和读取波形数据的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688191.5A CN113377596A (zh) | 2021-06-21 | 2021-06-21 | 用于存储和读取波形数据的方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377596A true CN113377596A (zh) | 2021-09-10 |
Family
ID=77578159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110688191.5A Pending CN113377596A (zh) | 2021-06-21 | 2021-06-21 | 用于存储和读取波形数据的方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377596A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003456A (zh) * | 2021-09-26 | 2022-02-01 | 芯华章科技股份有限公司 | 波形数据的显示方法、设备及存储介质 |
CN114328323A (zh) * | 2021-12-01 | 2022-04-12 | 北京三快在线科技有限公司 | 一种数据中转单元及基于数据中转单元的数据传输方法 |
CN114441922A (zh) * | 2022-04-02 | 2022-05-06 | 深圳市赛元微电子有限公司 | 一种半导体器件测试装置 |
CN117454835A (zh) * | 2023-09-07 | 2024-01-26 | 芯华章科技(厦门)有限公司 | 保存和读取波形数据的方法、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721354A (zh) * | 2016-01-18 | 2016-06-29 | 云南磊奥明科技有限公司 | 片上网络互联方法及装置 |
US20170255727A1 (en) * | 2016-03-02 | 2017-09-07 | Synopsys, Inc. | Circuit Verification on a Distributed Database Processing System |
CN109669917A (zh) * | 2018-12-24 | 2019-04-23 | 北京华大九天软件有限公司 | 一种基于优先级分组的波形存储方法 |
CN111611249A (zh) * | 2020-06-29 | 2020-09-01 | 平安银行股份有限公司 | 数据管理方法、装置、设备及存储介质 |
CN112016110A (zh) * | 2020-09-01 | 2020-12-01 | 三星电子(中国)研发中心 | 用于存储数据的方法、装置、设备以及存储介质 |
-
2021
- 2021-06-21 CN CN202110688191.5A patent/CN113377596A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721354A (zh) * | 2016-01-18 | 2016-06-29 | 云南磊奥明科技有限公司 | 片上网络互联方法及装置 |
US20170255727A1 (en) * | 2016-03-02 | 2017-09-07 | Synopsys, Inc. | Circuit Verification on a Distributed Database Processing System |
CN109669917A (zh) * | 2018-12-24 | 2019-04-23 | 北京华大九天软件有限公司 | 一种基于优先级分组的波形存储方法 |
CN111611249A (zh) * | 2020-06-29 | 2020-09-01 | 平安银行股份有限公司 | 数据管理方法、装置、设备及存储介质 |
CN112016110A (zh) * | 2020-09-01 | 2020-12-01 | 三星电子(中国)研发中心 | 用于存储数据的方法、装置、设备以及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003456A (zh) * | 2021-09-26 | 2022-02-01 | 芯华章科技股份有限公司 | 波形数据的显示方法、设备及存储介质 |
CN114328323A (zh) * | 2021-12-01 | 2022-04-12 | 北京三快在线科技有限公司 | 一种数据中转单元及基于数据中转单元的数据传输方法 |
CN114441922A (zh) * | 2022-04-02 | 2022-05-06 | 深圳市赛元微电子有限公司 | 一种半导体器件测试装置 |
CN114441922B (zh) * | 2022-04-02 | 2022-06-14 | 深圳市赛元微电子有限公司 | 一种半导体器件测试装置 |
CN117454835A (zh) * | 2023-09-07 | 2024-01-26 | 芯华章科技(厦门)有限公司 | 保存和读取波形数据的方法、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377596A (zh) | 用于存储和读取波形数据的方法及相关设备 | |
CN112632880B (zh) | 用于逻辑系统设计的编译方法、电子设备及存储介质 | |
CN112287569B (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
US20110004718A1 (en) | System, method, and computer program product for ordering a plurality of write commands associated with a storage device | |
US10489546B1 (en) | Modular system on chip configuration system | |
US9253275B2 (en) | Cognitive dynamic allocation in caching appliances | |
WO2018218954A1 (zh) | 一种验证平台和验证方法、计算机存储介质 | |
CN113742221A (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN114925644A (zh) | 在边缘系统验证逻辑系统设计的方法、边缘系统 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
US8984196B2 (en) | Accessing peripheral devices | |
US8533377B2 (en) | System and method for allocating transaction ID in a system with a plurality of processing modules | |
CN108959105B (zh) | 一种实现地址映射的方法及装置 | |
CN113377597B (zh) | 仿真系统以及存储、读取仿真数据的方法 | |
CN114666103B (zh) | 可信度量装置、设备、系统及可信身份认证方法 | |
CN114338386B (zh) | 一种网络的配置方法、装置、电子设备及存储介质 | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
US11520961B2 (en) | Heterogeneous-computing based emulator | |
CN116932451A (zh) | 一种数据处理方法、主机及相关设备 | |
CN112131806A (zh) | 验证设计的编译方法、电子设备及存储介质 | |
CN113806431A (zh) | 一种传输仿真数据的方法、电子系统及存储介质 | |
CN112580297B (zh) | 一种编解码数据的方法、电子设备及存储介质 | |
CN115392157B (zh) | 验证系统及在验证系统的多个fpga之间同步时钟的方法 | |
CN115858432B (zh) | 一种访问方法、装置、电子设备及可读存储介质 | |
CN111459867B (zh) | 一种usb转smi方法、装置、转换器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |