CN113918322A - 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 - Google Patents
在内存中动态存储逻辑系统设计的仿真数据的方法及设备 Download PDFInfo
- Publication number
- CN113918322A CN113918322A CN202111059728.8A CN202111059728A CN113918322A CN 113918322 A CN113918322 A CN 113918322A CN 202111059728 A CN202111059728 A CN 202111059728A CN 113918322 A CN113918322 A CN 113918322A
- Authority
- CN
- China
- Prior art keywords
- memory
- data segment
- data
- time
- signal
- 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 43
- 238000004088 simulation Methods 0.000 title claims abstract description 42
- 238000013461 design Methods 0.000 title claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种用于在内存中动态存储逻辑系统设计的仿真数据的方法及设备,所述仿真数据包括多个数据段,每一个数据段用于记录所述逻辑系统设计的一个信号在一段时间内的信号变化,所述方法包括:判断所述多个数据段中的一目标数据段是否满足预定条件;以及响应于所述目标数据段满足所述预定条件,将所述目标数据段从所述内存中移除并存储在硬盘中。根据本公开,能够动态地对内存中所存储的波形数据进行管理,在保证调试正常工作的同时,减小了仿真数据对内存的占用,释放了内存空间,有效提高了主机的运行性能。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种用于在内存中动态存储逻辑系统设计的仿真数据的方法及设备。
背景技术
在芯片的验证过程中,通常需要进行调试(debug)以确定芯片设计中出现故障的具体模块及其原因。在调试时,需要由主机载入大量的仿真数据,然后判断这些仿真数据是否与预期相符合,从而确定故障出现的位置和原因。然而,随着芯片设计规模的增大,在调试时主机所需要加载的仿真数据也越来越大,这些仿真数据占用了大量的主机内存,导致主机的运行性能下降。
发明内容
有鉴于此,本公开提出了一种用于在内存中动态存储逻辑系统设计的仿真数据的方法及设备。
根据本公开第一方面,提供了一种用于在内存中动态存储逻辑系统设计的仿真数据的方法,其中,所述仿真数据包括多个数据段,每一个数据段用于记录所述逻辑系统设计的一个信号在一段时间内的信号变化,所述方法包括:
判断所述多个数据段中的一目标数据段是否满足预定条件;以及
响应于所述目标数据段满足所述预定条件,将所述目标数据段从所述内存中移除并存储在硬盘中。
根据本公开第二方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
根据本公开第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述方法。
从上面所述可以看出,本公开提供的用于在内存中动态存储逻辑系统设计的仿真数据的方法及设备,通过将仿真数据中满足预设条件的数据段从内存中移除并存储在其他存储设备中,动态地对内存中所存储的波形数据进行管理,在保证调试正常工作的同时,减小了仿真数据对内存的占用,释放了内存空间,有效提高了主机的运行性能。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本公开实施例的验证系统的示意图。
图2为根据本公开实施例的用于在内存中动态存储逻辑系统设计的仿真数据的方法的示意性流程图。
图3为根据本公开实施例的队列的多个数据段的示意图。
图4A为根据本公开实施例的信号的树状结构的一个示意图。
图4B为根据本公开实施例的信号的树状结构的另一个示意图。
图5为本公开实施例所提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“一”或者“一个”并非限定数量,在通常情况下,“一”或者“一个”可以理解为一个或多个。
在芯片设计的调试过程中,主机加载大量的仿真数据到内存中。用户可以对该芯片设计的一个或多个模块进行调试。主机可以根据用户的调试指令,访问内存中与该一个或多个模块对应的部分仿真数据。例如,被调试模块的输入/输出信号在给定时间段内的波形数据可以被访问并处理(例如,经过渲染后进行显示)。
由于仿真数据的数据量伴随着芯片设计的规模增大而变得越来越大,这使得仿真数据占用了大量的主机内存,导致主机的诸如运行速度等运行性能的下降。鉴于此,如何在调试过程中降低仿真数据对内存的占用成为了亟待解决的问题。
本公开实施例提供的一种用于在内存中动态存储逻辑系统设计的仿真数据的方法及设备,通过将仿真数据中满足预设条件的数据段从内存中移除并存储在其他存储设备中,动态地对内存中所存储的波形数据进行管理,在保证调试正常工作的同时,减小了仿真数据对内存的占用,释放了内存空间,有效提高了主机的运行性能。
图1示出了根据本公开实施例的验证系统100的示意图。验证系统100可以包括验证工具102、主机104以及存储设备106。
验证工具102可以是用于仿真待测设备(Device Under Test,DUT)的软件或硬件系统。DUT也可以称为逻辑系统设计。逻辑系统设计(例如,ASIC或者System-On-Chip)可以由硬件描述语言(例如Verilog、VHDL、System C、或System Verilog)设计。软件的验证工具102可以是软件仿真器(simulator),用于在计算机(例如,主机104)上模拟DUT以及测试环境(testbench)的运行,从而获得DUT运行的仿真数据(例如,DUT各级别模块的波形数据)。可以理解的是,当验证工具102是软件仿真器时,验证工具102可以运行在主机104上。硬件的验证工具102可以是硬件仿真器(emulator)。硬件仿真器可以包括一个或多个可配置电路(例如,现场可编程门阵列,FPGA),从而使得DUT的网表文件可以在硬件仿真器上得到实现并最终实现对DUT的仿真。与软件仿真器类似,硬件仿真器也可以获得DUT运行的仿真数据。可以理解的是,当验证工具102是硬件仿真器时,验证工具102可以是一个与主机104通信地连接的独立硬件系统。
主机104可以用于配置验证工具102以运行DUT,以及从验证工具102获取仿真数据并存储到存储设备106。在一些实施例中,主机104可以是云计算系统中的一个虚拟主机。在一些实施例中,主机104还可以从其他数据源获取DUT的仿真数据,例如,仿真器将DUT的仿真数据存储在其他数据源中,主机104可以通过有线通信或无线通信或拷贝的方式从其他数据源获取DUT的仿真数据。
存储设备106可以是硬盘,用于长期存储仿真数据等。本文所指的硬盘是一种大容量的非易失性存储设备(例如,机械硬盘、SSD(固态硬盘,solid state disk)等)。存储设备106可以是主机104的一部分或者与主机104通信地连接的独立存储设备。
在调试阶段,主机104可以从存储设备106读取仿真数据(例如,与要调试的模块关联的波形数据)并存储在主机104的内存中。
在一些实施例中,主机104可以将满足一定条件的仿真数据存储从内存中移除并存储到存储设备106,以释放主机104的内存,保证主机的运行性能。例如,不常用的数据存储在主机104的内存中容易浪费内存资源,可以将这部分不常用的数据移至存储设备106中存储,需要用的时候从存储设备106中加载即可,由于这部分数据不常用,即使从存储设备106中加载也不会影响整体调试的效率。
图2示出了根据本公开实施例的用于在内存中动态存储逻辑系统设计的仿真数据的方法200的示意性流程图。在一些实施例中,用于在内存中动态存储逻辑系统设计的仿真数据的方法200可以由验证系统中的主机执行,例如图1中的主机104。
仿真数据可以包括多个数据段,每一个数据段用于记录逻辑系统设计的一个信号在一段时间内的信号变化。例如,逻辑系统设计的一个模块可以包括至少一种信号,信号随时间而变化,每个时间段内的信号变化则可以作为该信号的数据段。主机104在访问这些数据段时,可以向这些数据段分配相应的时间标签(time tag),该时间标签用于指示数据段最近被访问的时刻。根据该时间标签以及主机104的当前时间就可以确定每个数据段未被访问的时间长度并进一步确定哪些数据段长时间没有被访问到。这样,可以将这部分长时间未被访问到的数据段从内存中移除,从而释放内存的容量。
在一些实施例中,数据段的未被访问的时间长度可以基于当前时间和该数据段的时间标签得到。例如,数据段的未被访问的时间长度为当前时间和该数据段的时间标签之差。
在一些实施例中,多个数据段按照未被访问的时间长度在一个队列中顺序排列,该队列具有一预设长度。例如,该队列可以是一个先进先出(FIFO)队列,且多个数据段可以各自按照最近被访问的时刻在该队列中进行排序。这样,一个数据段在被访问之后可以被附加上相应的时间标签,记录被访问的时间,然后该数据段可以被放到该队列中。随着时间的推移,最近刚刚被访问的数据段总是刚被放入队列的。
图3为根据本公开实施例的队列的多个数据段的示意图。如图3所示,当前时间为t0,队列Q的预设长度为L,队列中包括数据段301、302、303、……、n等,数据段301的时间标签t1,则数据段301的未被访问的时间长度为△t1=t0-t1;数据段302的时间标签t2,则数据段302的未被访问的时间长度为△t2=t0-t2;数据段303的时间标签t3,则数据段303的未被访问的时间长度为△t3=t0-t3;数据段304的时间标签t4,则数据段304的未被访问的时间长度为△t4=t0-t4;……;数据段n的时间标签tn,则数据段n的未被访问的时间长度为△tn=t0-tn;△t1<△t2<△t3<△t4<……<△tn,也就是说,该队列中,数据段301的未被访问的时间长度最短,数据段304的未被访问的时间长度较长,数据段n的未被访问的时间长度最长,可以根据未被访问的时间长度将其中长时间未被访问的数据段从内存中移除,存储至存储设备106。
图2中,方法200可以具体包括以下步骤。
在步骤S202中,主机104可以判断多个数据段中的一目标数据段(例如,图3中的304)是否满足预定条件。
在一些实施例中,预定条件可以包括目标数据段的未被访问的时间长度(例如,图3中的△t4)大于预定时间长度。
在一些实施例中,预定时间长度可以基于内存的当前可用容量确定。其中,内存的当前可用容量大于一个给定值或给定比例时,预定时间长度可以设置为较长的长度。这样,可以在不影响主机的运行性能的同时,在内存中较全面地保留仿真数据,便于调试阶段的数据调用。当内存的当前可用容量小于一个给定值或给定比例时,预定时间长度可以设置为较短的长度,以尽可能多的释放内存容量,以保证主机的运行性能。
例如,主机104检测到内存的当前可用容量C无法满足当前任务所需的容量CR,则此时可以确定二者的差值CR-C,然后将队列Q中数据量之和大于或等于差值CR-C的多个数据段所对应的最小未被访问的时间长度作为预设时间长度。如图3所示,如果数据段n的数据量就大于CR-C,则可以将数据段n的未被访问的时间长度△tn作为预设时间长度,那么主机则将数据段n移除。如果数据段n,……,数据段304的数据量之和Cn+……+304大于CR-C,则可以将数据段n,……,数据段304中的最小未被访问时间△t4作为预设时间长度,那么主机104则将数据段n,……,数据段304等移除,保留数据段301-303。再例如,主机104检测到内存的当前可用容量C能够满足当前任务所需的容量CR,则可以选取大于或等于队列Q中最大的未被访问的时间长度△tn的任意值作为预设时间长度。如此,根据当前内存的可用容量或剩余容量来动态设置预定时间长度,更能符合主机运行的实际情况,能够兼顾主机的运行性能和调试阶段的数据调用。
在一些实施例中,主机104可以检测到内存的当前可用容量C小于预设容量阈值CY,则此时可以确定二者的差值CY-C。然后主机104可以将队列Q中数据量之和大于或等于差值CY-C的多个数据段所对应的最小未被访问的时间长度作为预设时间长度。如图3所示,如果数据段n,……,数据段304的数据量之和Cn+……+304大于CY-C,则可以将数据段n,……,数据段304中的最小未被访问时间△t4作为预设时间长度,那么主机则将数据段n,……,数据段304等移除,保留数据段301-303。再例如,内存的当前可用容量C大于或等于预设容量阈值CY,则可以选取大于或等于队列Q中最大的未被访问的时间长度△tn的任意值作为预设时间长度。如此,则可以保证主机内存的剩余容量一直大于预设容量阈值CY,一旦剩余容量小于预设容量阈值,则从队列Q中释放对应的符合预设条件的数据段,从而维持了内存的剩余容量一直高于预设容量阈值CY,可靠地保证主机的运行性能。预设容量阈值CY可以设置为保证主机运行性能所需的最小容量。
在一些实施例中,预定时间长度可以基于内存的当前可用容量比例确定。其中,当前可用容量比例是内存的当前可用容量与内存的总容量之比。而一般内存总容量已知,那么根据当前可用容量比例则可以确定出内存的当前可用容量。那么,与上述基于当前可用容量类似地,可以进一步地确定预定时间长度。
回到图2,在步骤S204中,响应于目标数据段满足该预定条件,主机104可以将目标数据段从内存中移除并存储在硬盘中。
如图1所示,响应于目标数据段满足预定条件时,主机104可以将目标数据段从内存中移除,并存储在存储设备106(例如硬盘)中。例如,图3中的数据段304的未被访问的时间长度超过预设时间长度,被从主机内存中移除后,存储在存储设备106中,当主机需要调用该数据段304时,可以从存储设备106中加载数据段304。
如前所述,仿真数据可以包括多个信号的多个数据段。这里的多个数据段可以包括一个信号在不同时间段中产生的数据段以及多个信号在同一个时间段产生的数据段。每个信号的数据段以关联的方式进行存储。例如,多个数据段可以以树状结构进行存储、或根据该多个数据段的连续的ID号等方式进行存储。这里,数据段的ID可以根据逻辑系统设计的描述来分配。例如,对于多个信号在同一个时间段产生的数据段的情况,在一个给定模块中,可以将该模块的时钟信号标记为ID1,然后沿着固定方向(例如,顺时针)依次顺序地分配后续信号为ID2、ID3、ID4、…、IDn。类似地,对于一个信号在不同时间段产生的多个数据段,ID号可以依据产生数据段的时间段的顺序依次分配给该信号的多个数据段。
在一些实施例中,一个信号的多个数据段可以以树状结构存储。该树状结构的多个节点对应于该信号的多个数据段。目标数据段可以包括至少一个该节点所对应的数据段。
图4A为根据本公开实施例的信号的树状结构400的一个示意图。
如图4A所示,一信号A的树状结构400可以包括节点401-407等,节点401-407分别表示该信号A的多个数据段。当其中一部分节点对应的数据段的未被访问的时间长度大于预定时间长度时(例如节点403、406、405、407的未被访问的时间长度大于预定时间长度,即满足预设条件),主机104可以将这些节点对应的数据段作为目标数据段从内存中移除,保留剩余的节点401、402、404对应的数据段。图4B为根据本公开实施例的信号的树状结构410的另一个示意图。树状结构410是树状结构400经过剪枝的结构。如图4B所示,被移除的节点403、406、405、407以虚线示出。
在一些实施例中,目标数据段可以包括相邻信号的多个数据段或同一信号的多个数据段。
通常,同一个信号的多个数据段之间互相关联。例如,一个使能信号在使能一个模块之后可能就不再需要,因此主机104也不再需要访问该信号。因此,当这个使能信号在一个很长时间段没有被访问时,一定是这个时间段里最早的数据段首先满足被移除的条件。主机104可以判定,当该使能信号的一个数据段长时间未被访问(也就是满足预定条件),那么该数据段的后续数据段也不会在短期内被访问。这样,主机104就可以确定该数据段的后续数据段都满足被移除的预定条件,并相应地从内存移除到存储设备106中。例如,如图4B所示,当节点403作为目标数据段从内存中移除时,主机104可以将该节点403后续的节点405、406、407对应的数据段也从内存中移除,以提高内存释放的效率。
进一步地,逻辑系统设计的一个模块的多个信号中相邻信号互相关联。当一信号C被确定为长时间未被访问,则与该信号C可以将相邻信号D的数据段也可能同样长时间未被访问,此时,可以将该信号C和信号D的更多个数据段等等均移除。也就是说,当逻辑系统设计的一个模块的一个信号的数据段满足被移除的条件(也就是预定条件)时,主机104可以判定该模块中与该信号相邻的信号的多个数据段也满足被移除的条件。
因此,在一些实施例中,所述逻辑系统设计包括多个模块,所述目标数据段包括与一个模块中的相邻信号对应的多个数据段。此时,响应于与一个模块的第一信号对应的数据段被确定满足所述预定条件,主机104可以将与所述第一信号的相邻信号对应的数据段确定为满足所述预定条件。
在又一些实施例中,所述目标数据段包括第二信号在一个时间段内的多个数据段。此时,响应于所述第二信号在所述时间段内一个数据段被确定为满足所述预定条件,主机104可以将所述时间段内的其他数据段确定满足所述预定条件。
进一步,由于相邻信号的多个数据段或同一信号的多个数据段之间互相关联,所以主机104可以优先将这部分数据从内存中移除。例如,如图3所示,预设时间长度可以为△t2,这样,未被访问的时间长度大于或等于△t2的数据段均符合预定条件。因此,队列Q中的数据段包括相邻信号的多个数据段(或同一信号的多个数据段)302、304,主机104可以优先将数据段302、304移除,然后再移除数据段303等目标数据段。
在一些实施例中,方法200还可以包括:基于预定数据量移除目标数据段。进一步地,预设数据量可以是内存的当前容量与预设容量阈值或执行当前任务所需的容量的差值。其中,由于内存的当前容量是一直变化的,而执行当前任务所需的容量也是变化的,那么预定数据量也地动态变化的,这样,可以避免一次内存移除目标数据段的时间过长或者移除目标数据段所释放的内存容量过多,影响调试阶段的效率。
在一些实施例中,方法200还可以包括:
确定所述内存是否满足内存回收要求;
响应于所述内存满足所述内存回收要求,判断所述一目标数据段是否满足所述预定条件。
在一些实施例中,所述内存回收要求包括如下一种:
所述内存的当前可用容量小于预设容量阈值;
或,所述内存的当前可用容量占总容量的比例小于预设比例;
或,所述内存的当前可用容量小于执行当前任务所需的容量;
或,所述内存的定期回收时间到期。
其中,可以设置相应的内存回收要求,作为内存回收的触发条件。具体来说,当内存的当前状态无法满足正常的运行时,就可以将长时间未被访问的数据段移除,以释放内存空间。或者,可以定期进行内存回收,从而有定时进行内存空间的释放。
在一些实施例中,在进行当前回收内存回收时,主机104可以从上一次内存回收结束的位置开始查找,能够提升查找的命中率和效率,进一步提高内存释放的效率。如图3中所示,上次内存回收结束的位置可以是数据段304的位置,即移除数据段n到数据段304的数据段,那么当前回收内存可以直接从数据段303的位置开始移除数据段。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的用于在内存中动态存储逻辑系统设计的仿真数据的方法。
图5示出了根据本公开实施例所提供的电子设备500的硬件结构示意图,该设备500可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中,处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的用于在内存中动态存储逻辑系统设计的仿真数据的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的用于在内存中动态存储逻辑系统设计的仿真数据的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的用于在内存中动态存储逻辑系统设计的仿真数据的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种用于在内存中动态存储逻辑系统设计的仿真数据的方法,其中,所述仿真数据包括多个数据段,每一个数据段用于记录所述逻辑系统设计的一个信号在一段时间内的信号变化,所述方法包括:
判断所述多个数据段中的一目标数据段是否满足预定条件;以及
响应于所述目标数据段满足所述预定条件,将所述目标数据段从所述内存中移除并存储在硬盘中。
2.如权利要求1所述的方法,其中,所述多个数据段按照未被访问的时间长度在一个队列中顺序排列,所述队列具有一预设长度。
3.如权利要求2所述的方法,其中,所述预定条件包括所述目标数据段的未被访问的时间长度大于预定时间长度,所述预定时间长度基于所述内存的当前可用容量确定。
4.如权利要求1-3中任一项所述的方法,其中,所述信号的多个数据段以树状结构存储,所述树状结构的多个节点对应于所述信号的多个数据段;
所述目标数据段包括至少一个所述节点所对应的数据段。
5.如权利要求1所述的方法,其中,所述逻辑系统设计包括多个模块,所述目标数据段包括与一个模块中的相邻信号对应的多个数据段。
6.如权利要求5所述的方法,进一步包括:
响应于与一个模块的第一信号对应的数据段被确定满足所述预定条件,将与所述第一信号的相邻信号对应的数据段确定为满足所述预定条件。
7.如权利要求1所述的方法,其中,所述目标数据段包括第二信号在一个时间段内的多个数据段。
8.如权利要求7所述的方法,进一步包括:
响应于所述第二信号在所述时间段内一个数据段被确定为满足所述预定条件,将所述时间段内的其他数据段确定满足所述预定条件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111059728.8A CN113918322A (zh) | 2021-09-09 | 2021-09-09 | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111059728.8A CN113918322A (zh) | 2021-09-09 | 2021-09-09 | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918322A true CN113918322A (zh) | 2022-01-11 |
Family
ID=79234420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111059728.8A Pending CN113918322A (zh) | 2021-09-09 | 2021-09-09 | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918322A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
CN116520709A (zh) * | 2023-06-16 | 2023-08-01 | 上海能誉科技股份有限公司 | 一种能源动力系统的运行优化装置及运行优化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678359A (zh) * | 2012-09-12 | 2014-03-26 | 复旦大学 | 一种集成电路波形图像快速显示方法 |
CN110196770A (zh) * | 2018-07-13 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 云系统内存数据处理方法、装置、设备及存储介质 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
CN112632880A (zh) * | 2020-12-28 | 2021-04-09 | 芯华章科技股份有限公司 | 用于逻辑系统设计的编译方法、电子设备及存储介质 |
-
2021
- 2021-09-09 CN CN202111059728.8A patent/CN113918322A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678359A (zh) * | 2012-09-12 | 2014-03-26 | 复旦大学 | 一种集成电路波形图像快速显示方法 |
CN110196770A (zh) * | 2018-07-13 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 云系统内存数据处理方法、装置、设备及存储介质 |
CN112416569A (zh) * | 2020-09-17 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 缓存内存调整方法、装置及计算机设备 |
CN112632880A (zh) * | 2020-12-28 | 2021-04-09 | 芯华章科技股份有限公司 | 用于逻辑系统设计的编译方法、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
CN115827568B (zh) * | 2022-11-23 | 2023-07-28 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
CN116520709A (zh) * | 2023-06-16 | 2023-08-01 | 上海能誉科技股份有限公司 | 一种能源动力系统的运行优化装置及运行优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8645116B2 (en) | Hybrid simulation system and method | |
CN113918322A (zh) | 在内存中动态存储逻辑系统设计的仿真数据的方法及设备 | |
KR20210011451A (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
JP2020194524A (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
US10643736B2 (en) | Method, apparatus and electronic device for read/write speed testing | |
CN112597064B (zh) | 对程序进行仿真的方法、电子设备及存储介质 | |
KR102581849B1 (ko) | 해제후 사용 메모리 손상 버그들의 근본 원인 식별 기술들 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
CN111241040B (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
EP2869189A1 (en) | Boot up of a multiprocessor computer | |
CN112133357A (zh) | 一种eMMC的测试方法及装置 | |
CN106202262B (zh) | 一种信息处理方法及电子设备 | |
EP3296878B1 (en) | Electronic device and page merging method therefor | |
CN111309475B (zh) | 一种检测任务执行方法及设备 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
US8359456B2 (en) | Generating random addresses for verification of distributed computerized devices | |
CN111209062A (zh) | 信息获取方法、装置、电子设备及计算机存储介质 | |
CN116594862B (zh) | Dbms的测试方法、装置、电子设备及可读存储介质 | |
CN112580297B (zh) | 一种编解码数据的方法、电子设备及存储介质 | |
KR101191530B1 (ko) | 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법 | |
CN116841697B (zh) | 处理mmio请求的方法、电子装置和存储介质 | |
CN112306825B (zh) | 内存操作记录方法、装置和计算机设备 | |
CN115357526A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
KR101907007B1 (ko) | 프로세스의 우선순위를 이용한 페이지 처리 방법 및 페이지 처리 장치 | |
CN114003456A (zh) | 波形数据的显示方法、设备及存储介质 |
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: 20220111 |