一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于版图验证的任务调度方法、装置、服务器和存储介质与流程

2021-11-05 20:40:00 来源:中国专利 TAG:


1.本公开涉及集成电路计算机辅助设计领域,具体涉及一种用于半导体集成电路设计中版图验证的任务调度方法、装置、服务器和存储介质。


背景技术:

2.随着集成电路技术的发展,芯片的特征尺寸越来越小,单个芯片的集成度也越来越高,而随着芯片规模的扩大,在集成电路设计的各个阶段所需验证的设计规则也在不断增多。其中集成电路版图的设计规则检查(drc)以及集成电路版图与原理图的一致性检查(lvs)变得越来越重要,它们对于消除错误、降低设计成本和减少设计失败的风险具有重要作用。在超大规模集成电路设计中,版图规模急剧膨胀,如何在有效时间内完成设计方案的验证工作成为各大eda厂商急需解决的问题。
3.并行处理包括分布式处理和多线程两种关键技术。分布式处理研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。多线程是处理对象粒度比分布式更小的并行处理方式。分布式处理每个处理单位的数据处理对象是一个进程,而多线程的处理对象是一个线程。每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程和进程的区别在于,多个进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。线程的运行中需要使用计算机的内存资源和cpu。
4.版图验证工具在涉及到超大规模电路的版图时,无论进程调度还是线程调度,都可以用生产者

消费者模型描述。在这个模型中,单机模式会因单个处理机的内存等硬件条件限制,会导致工具运行失败,这就需要运行多机模式,将版图数据分布到多个处理机上运行工具,版图验证工具设计的多机模式一般采用主从式的系统。在主从式的多机系统中,需要进行任务的调度与分配,将需要处理的任务分配到多机系统的从处理机上。目前已有的任务调度方法,缺乏对协同过程中子任务之间交互关系进行定量分析,存在任务分解与资源分配脱节的问题;另外,缺少对任务权重与资源能力的综合评估,这种分配方法容易造成重要度高的任务对资源过度占用,出现局部优化问题,不适用于版图验证工具的多机系统,会由于任务分配不当使部分从处理机闲置而导致多机系统效率低下,极大地影响了版图验证工具在多机模式下运行的速度。


技术实现要素:

5.为了解决上述技术问题,本公开提供了一种用于版图验证的任务调度方法、装置、
服务器和存储介质,可以高效均衡地对任务进行调度与分配,以提高多机系统的运行效率,进而提高版图验证工具在多机模式下的运行速度。
6.一方面本公开提供了一种用于版图验证的任务调度方法,应用于主从式的多机系统,该多机系统包括主处理机和与该主处理机通信连接的多个从处理机,其中,该任务调度方法包括:
7.利用主处理机读取版图数据;
8.将验证该版图数据的总任务进程切分成多个子任务;
9.对该多个子任务进行评级,以及对前述的多个从处理机进行评级;
10.根据前述多个子任务的评级数据调度该多个子任务,将未分配的多个子任务按其评级顺序逐个分配至未分配任务的多个从处理机中对应适配该子任务评级的从处理机。
11.优选地,前述将验证该版图数据的总任务进程切分成多个子任务的步骤包括:
12.将前述版图数据根据任务需求和前述多个从处理机的配置信息对总任务进程切分成前述的多个子任务,并分配相应的任务编号,
13.对前述总任务进程的切分是以版图结构层为单位,或者以版图结构层中的区域为单位进行的。
14.优选地,前述的任务调度方法还包括:
15.实时获取已分配子任务的任务编号,并据此更新未分配子任务的信息。
16.优选地,前述对该多个子任务进行评级的步骤包括:
17.根据对应未分配的该多个子任务的各自版图结构层中所有图形总数目进行评级,或者根据未分配的该多个子任务中对应区域内的图形总数目进行评级,以得到前述多个子任务的评级数据,
18.前述的图形总数目越大,则对应子任务的评级越高。
19.优选地,前述对前述的多个从处理机进行评级的步骤包括:
20.获取并识别前述多个从处理机的配置及性能信息,并据此分析判断前述从处理机的执行子任务的能力,对前述多个从处理机进行评级,以得到前述多个从处理机的评级数据,
21.前述从处理机的配置及性能信息包括:cpu数目及型号、内存信息、磁盘信息和操作系统信息,前述从处理机执行子任务的能力越强,该从处理机的评级越高。
22.优选地,前述根据前述多个子任务的评级数据调度该多个子任务,将未分配的多个子任务按其评级顺序逐个分配至未分配任务的前述多个从处理机中对应适配该子任务评级的从处理机的步骤包括:
23.获取任意未分配的子任务的任务信息及其评级数据;
24.监控前述多个从处理机状态,获取未分配有子任务的从处理机的评级数据;
25.将未分配的多个子任务按其评级顺序逐个根据当前未分配子任务的评级数据选定与之评级相同的未分配有子任务的从处理机,若无与之评级相同的未分配有子任务的从处理机,则选定比当前未分配子任务评级高一级的未分配有子任务的从处理机;
26.调度完成当前未分配子任务,更新前述未分配的子任务的任务信息。
27.另一方面本公开还提供了一种用于版图验证的任务调度装置,应用于主从式的多机系统,前述多机系统包括主处理机和与该主处理机通信连接的多个从处理机,其中,前述
任务调度装置设置在前述主处理机上,包括:
28.版图数据读入部件,用于读取版图数据;
29.任务管理部件,与前述版图数据读入部件通信连接,用于将验证前述版图数据的总任务进程切分成多个子任务,并对前述多个子任务进行评级;
30.从机管理部件,与前述多个从处理机通信连接,用于对前述多个从处理机进行评级;
31.任务调度部件,被配置为根据前述多个子任务的评级数据调度前述多个子任务,将未分配的多个子任务按其评级顺序逐个分配至未分配任务的多个从处理机中对应适配该子任务评级的从处理机。
32.优选地,前述的任务调度装置还包括:
33.显示部件,与前述主处理机通信连接,用于显示调度未分配的子任务分配至未分配有任务的从处理机的分配结果;
34.存储部件,分别连接前述任务管理部件和前述从机管理部件,用于存储前述版图数据和验证前述版图数据的总任务进程切分成多个子任务的方案及其评级数据,以及前述多个从处理机的评级数据。
35.另一方面本公开还提供了一种服务器,包括:
36.处理器;
37.存储器,用于存储一个或多个程序;
38.其中,当前述一个或多个程序被前述处理器执行,使得前述处理器实现如前所述的用于版图验证的任务调度方法。
39.又一方面本公开也提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如前所述的用于版图验证的任务调度方法。
40.本公开的有益效果是:本公开提供的用于版图验证的任务调度方法、装置、服务器和存储介质,能利用主处理机读取版图数据,再将验证该版图数据的总任务进程切分成多个子任务,并对该多个子任务进行评级,以及对多个从处理机进行评级,而后根据该多个子任务的评级数据调度该多个子任务,将未分配的多个子任务按其评级顺序逐个分配至未分配任务的多个从处理机中对应适配该子任务评级的从处理机,以此实现对从处理机的最大化使用,避免由于任务分配不当使部分从处理机闲置而导致多机系统效率低下,从而可以高效均衡地对任务进行调度与分配,以提高多机系统的运行效率,进而提高版图验证工具在多机模式下的运行速度。
附图说明
41.通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚。
42.图1示出本公开实施例一提供的一种用于版图验证的任务调度方法的流程示意图;
43.图2示出应用有图1所示任务调度方法的主从式多机系统的结构示意框图;
44.图3示出本公开实施例二提供的一种用于版图验证的任务调度装置的结构示意图;
45.图4示出对应图3所示实施例二中的任务调度部件的应用模型示意图;
46.图5示出本公开实施例三提供的一种服务器的结构示意图。
具体实施方式
47.为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的较佳实施例。但是,本公开可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本公开内容的理解更加透彻全面。
48.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。在本公开的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开。
49.下面,参照附图对本公开进行详细说明。
50.实施例一:
51.图1示出本公开实施例一提供的一种用于版图验证的任务调度方法的流程示意图,图2示出应用有图1所示任务调度方法的主从式多机系统的结构示意框图。
52.一方面本公开实施例一提供了一种用于版图验证的任务调度方法,该方法可以由搭载有eda设计工具的电子设备来执行,该电子设备例如可以是服务器,也可以是终端设备。在实际应用中,其应用于主从式的多机系统(如图2所示),该多机系统包括主处理机10和与该主处理机10通信连接的多个从处理机20,参考图1,该任务调度方法可具体包括如下的步骤s110到步骤s140:
53.步骤s110:利用主处理机读取版图数据。
54.在集成电路的版图设计中,印刷电路板(pcb)通常是先设计好原理图,再设置pcb的外形和尺寸,接着根据自己的习惯设置环境参数,而后导入网络表及元件的封装等数据,然后再设置工作参数,通常包括板层的设定和布线规则的设定,在这些准备工作完成后,就可以对元器件进行布局,接下来是自动布线、手工调整不合理的图件等工作,最后进行设计校验,形成版图,而版图(layout)是集成电路设计将设计并模拟优化后的电路转换成一系列几何图形,它包含了集成电路尺寸大小、各层拓扑定义等有关器件的所有物理信息,集成电路制造厂家再根据这些版图信息来制造掩膜。
55.版图验证工作量大,版图的验证主要包括设计规则验证(drc)和版图电路对照验证(lvs)两个方面。在版图设计中,要对每一个元器件的尺寸、形状、在芯片中的位置以及和其它元件的连接等都经过精心考虑,因此可以获得非常紧凑的版图和最佳的电路性能。而绘制版图过程中有时结构复杂且重复的器件(例如高压i/o开关器件)的小部分结构可能不满足设计需求,需要对局部的结构在验证后进行调整。而一般的验证调整方法,是对整体器件进行布局结构层打散的拆解操作,然后在进行修改,以保证器件在整体电路的性能要求。但包含多种器件的集成电路其版图数据,即gds文件非常大,这就导致设计和验证周期比较长,且在涉及到超大规模电路的版图时,处理机也会因为内存等硬件条件限制,会导致工具运行失败,这就极大地降低了验证的效率,而且电路的前仿真及版图的后仿真会消耗大量的时间,原因是现有的spice仿真软件对于版图后仿真的处理速度还无法满足设计者的要求。因此在主从式多机系统中,就需要进行任务的合理调度与资源分配,将需要处理的任务分配到多机系统的相应从处理机上,基于上述内容,在本实施例中,要完成验证任务的调配
首先可以通过主从式多机系统中的主处理机10读取完整的版图数据。
56.步骤s120:将验证该版图数据的总任务进程切分成多个子任务。
57.在步骤s120中,可具体包括:将前述版图数据根据任务需求和前述多个从处理机的配置信息对总任务进程切分成前述的多个子任务,并分配相应的任务编号,其中,对验证版图数据任务进程的切分是以版图结构层为单位,或者以版图结构层中的区域为单位进行的。具体的,例如:在涉及到超大规模电路的版图时,不同版图结构层上的图形数目及分布位置不同,对于图形数目较少的版图结构层,可适应处理机的执行能力(配置及性能信息)以版图结构层为单位进行验证子任务的切分,而对于图形数目较多且分布复杂的版图结构层,如果同样以版图结构层为单位,则需求的处理机的性能更高,验证时间更长,如需结构优化,则修改和重复验证的周期较长,不利于提高整体运行的效率,为减少单个子任务执行时间,也进一步降低对处理机的性能要求,以合理的资源配置尽可能的提高版图验证的整体效率,可将这类版图结构层基于图形数目进行区域划分,以不同区域为单位做切分,将验证任务切分为多个子任务,并分配相应的任务编号。
58.可选地,前述的任务调度方法还可以包括:
59.实时获取已分配子任务的任务编号,并据此更新未分配子任务的信息,以便动态追踪各个子任务的分配及完成情况,进而提高未分配子任务的分配效率,从而整体上提高版图设计和验证的效率。
60.步骤s130:对该多个子任务进行评级,以及对前述的多个从处理机进行评级。
61.在步骤s130中,对该多个子任务进行评级的步骤可具体包括:
62.根据对应未分配的该多个子任务的各自版图结构层中所有图形总数目进行评级,或者根据未分配的该多个子任务中对应区域内的图形总数目进行评级,以得到前述多个子任务的评级数据,前述的图形总数目越大,则对应子任务的评级越高。
63.对前述的多个从处理机进行评级的步骤可具体包括:
64.获取并识别前述多个从处理机20的配置及性能信息,并据此分析判断前述从处理机20的执行子任务的能力,对前述多个从处理机20进行评级,以得到前述多个从处理机20的评级数据,
65.前述从处理机20的配置及性能信息包括:cpu数目及型号、内存信息、磁盘信息和操作系统信息,前述从处理机20执行子任务的能力越强,该从处理机20的评级越高。
66.通过对子任务及执行子任务的从处理机20的双评级,以便更为清晰的获取子任务的状态和从处理机20执行分配子任务的能力,从而方便操作人员可以直观快捷的进行子任务的分配操作,有效提高从处理机20最大限度的执行利用,避免因子任务中图形数目过大而被分配从处理机20无法运行导致失败后重复分配的影响,有效减小操作时间,不仅提高子任务对应从处理机20的分配效率,也极大地提高了版图验证的整体效率。
67.步骤s140:根据前述多个子任务的评级数据调度该多个子任务,将未分配的多个子任务按其评级顺序逐个分配至未分配任务的前述多个从处理机中对应适配该子任务评级的从处理机。
68.在步骤s140中,根据前述多个子任务的评级数据调度该多个子任务,将未分配的多个子任务中的其中之一分配至未分配任务的前述多个从处理机中对应适配该子任务评级的从处理机可具体包括:
69.获取任意未分配的子任务的评级数据;
70.监控前述多个从处理机20的状态,获取未分配有子任务的前述多个从处理机20的评级数据;
71.从未分配的子任务的角度,按其评级顺序逐个根据当前未分配子任务的评级数据选定与之评级相同的未分配有子任务的从处理机20,若无与之评级相同的未分配有子任务的从处理机20,则选定比当前未分配子任务评级高一级的未分配有子任务的从处理机20,若依然没有,则选定比当前未分配子任务评级高两级的未分配有子任务的从处理机20,以此递推,直到找到适合分配的从处理机20;从处于空闲状态的从处理机20的角度,若当前有未分配的子任务,则按其评级顺序逐个根据当前未分配子任务的从处理机20的评级数据选定与之评级相同的未分配的子任务,若没有与其评级相同的任务,则去分配与其评级相差一级的任务,若依然没有,则去分配与其评级相差两级的任务,以此递推,直到找到适合分配的子任务;
72.调度完成当前未分配子任务,更新前述未分配的子任务的任务信息。
73.对于所有的从处理机20,在单个从处理机20上同一时间只有一个子任务在执行,该从处理机20完成当前的任务后,才会由主处理机10为该从处理机20分配新的子任务。
74.由此,本实施例一所述的用于版图验证的任务调度方法,可实现对从处理机的最大化使用,避免由于任务分配不当使部分从处理机闲置而导致多机系统效率低下,从而可以高效均衡地对任务进行调度与分配,以提高多机系统的运行效率,进而提高版图验证工具在多机模式下的运行速度。
75.实施例二:
76.图3示出本公开实施例二提供的一种用于版图验证的任务调度装置的结构示意图,图4示出对应图3所示实施例二中的任务调度部件的应用模型示意图。
77.参考图3,本公开实施例二提供了一种用于版图验证的任务调度装置100,该任务调度装置100同样是应用于主从式多机系统(如图2所示),假设该主从式多机系统包括一个主处理机10和三个从处理机20,为便于区分从处理机,将其编号为从机1、从机2和从机3,当前有一个版图验证的任务需要由该主从式多机系统完成。其中,该任务调度装置100设置在该主从式多机系统中的主处理机10上,包括:版图数据读入部件110、任务管理部件120、从机管理部件130和任务调度部件140。
78.可选地,位于主处理机10上的版图数据读入部件110可用于读取完整的版图数据并存储在主处理机10上。任务管理部件120与版图数据读入部件110通信连接,可以根据读入的版图数据、任务需求以及从处理机20的信息等,将验证该版图数据的总任务进程切分成多个子任务,并分配相应的编号(对任务的切分是以版图结构层或者版图结构层中的区域为单位进行的,具体如前述实施例一所述的内容,在此不做赘述),任务管理部件120完成对任务的切分后,会对所有的子任务进行评级,获取该多个子任务的评级数据。评级的依据是对应该子任务的所有版图结构层的图形总数目,或者该子任务对应区域内的图形总数目,图形总数目越大,则该子任务的评级越高。
79.例如任务管理部件120识别出该版图共有5个版图结构层,然后以版图结构层为单位将任务切分为5个子任务,分别编号为任务1、任务2、任务3、任务4和任务5,该任务管理部件120接着对所有的子任务进行评级,假设评级的结果是:任务1和任务2被评为1级,任务3
和任务4被评为2级,任务5被评为3级。
80.可选地,从机管理部件130与该主从式多机系统中的多个从处理机20(从机1、从机2和从机3)通信连接,对该多个从处理机20进行评级,获取其评级数据。评级的依据是从处理机20的配置以及性能信息,包括cpu数目以及型号、内存信息,磁盘信息、操作系统信息等,从处理机20的性能越好,其评级也会越高。假设该主从式多机系统中的多个从处理机20(从机1、从机2和从机3)评级的结果是:从机1被评为1级,从机2被评为2级,从机3被评为3级。
81.可选地,任务调度部件140分别与任务管理部件120和从机管理部件130通信连接,会根据该任务管理部件120对所有子任务的评级数据以及从机管理部件130对所有从处理机20的评级数据等,对未分配的子任务按其评级顺序逐个进行调度与分配。具体的,结合图4所示的任务调度部件140的应用模型,在一实施情形下,该任务调度部件140的程序流程如下:
82.101:任务调度部件140判断是否接收到从机管理部件130传递的处于空闲状态的从处理机的信息。若否,转101,若是,转102;
83.102:任务调度部件140查询任务管理部件120中是否有未分配的子任务。若否,转103,若是,转104;
84.103:任务调度部件140向从机管理部件130查询是否所有的从处理机都处于空闲状态,即当前的子任务是否都已经完成。若否,转102,等待新的子任务产生,或者等待所有的子任务结束;若是,任务调度部件140运行结束;
85.104:任务调度部件140为当前空闲的从处理机20分配合适的子任务,子任务分配结束后,转101。
86.综上所述并结合一实施例详细介绍该任务调度装置100的工作原理:
87.(1)从机管理部件130会监控所有的从处理机20的状态,当某一个从处理机20上的任务完成,处于空闲状态时,从机管理部件130会向任务调度部件140传递空闲的从处理机信息。
88.(2)任务调度部件140会去查询任务管理部件120中未分配子任务的信息,若当前没有未分配的任务,则该从处理机20继续处于空闲状态,等待新的子任务的产生或者其他的从处理机20的任务结束;若当前有未分配的子任务,则任务调度部件140会优先给该从处理机20分配与其评级相同的子任务,若没有与其评级相同的子任务,则去分配与其评级相差一级的子任务,若依然没有,则去分配与其评级相差两级的子任务,以此递推,直到找到适合分配的子任务。
89.(3)子任务分配完成后,任务调度部件140会将分配的子任务编号信息传递到任务管理部件120,然后任务管理部件120更新未分配的子任务信息。
90.具体的,例如假定从机管理部件130监控到从机1、从机2和从机3均处于空闲状态,从机管理部件130依据评级从高到低,依次向任务调度部件140传递从机3、从机2、从机1的信息。任务调度部件140首先接收到从机3处于空闲状态的信息,开始为从机3去分配子任务,任务调度部件140向任务管理部件120查询未分配的子任务信息,当前未分配的子任务有任务1、任务2、任务3、任务4和任务5。任务调度部件140优先为从机3分配与其评别相同的子任务,即级别为3的任务,级别为3的未分配任务是任务5,将任务5分配给从机3去完成。然
后,任务调度部件140接收到从机2处于空闲状态的信息,开始为从机2去分配子任务,当前未分配的子任务有任务1、任务2、任务3和任务4。任务调度部件140优先为从机2分配与其评别相同的子任务,级别为2的未分配子任务是任务3和任务4,任务3和任务4均可分配给从机2去完成,假设将任务4分配给从机2去完成。然后,任务调度部件140接收到从机1处于空闲状态的信息,开始为从机1去分配任务,查询未分配的子任务信息,当前未分配的子任务有任务1、任务2和任务3。任务调度部件140优先为从机1分配与其评别相同的子任务,而级别为1的未分配子任务是任务1和任务2,任务1和任务2均可分配给从机1去完成,假设将任务2分配给从机1去完成。
91.此时,从机1、从机2、从机3均在执行子任务,其中从机1在执行任务2,从机2在执行任务4,从机3在执行任务5,当前还未分配的任务是任务1和任务3。假设从机2最先完成任务4,然后从机管理部件130监控到从机2处于空闲状态,向任务调度部件140传递从机2处于空闲状态的信息,然后任务调度部件140开始为从机2去分配子任务,任务调度部件140优先为从机2分配与其评别相同的子任务,即级别为2的子任务,级别为2的未分配子任务是任务3,将任务3分配给从机2去完成。这样,从机1、从机2、从机3又均处在执行任务的状态,而当前还未分配的子任务是任务1。假设随后从机3率先完成任务5,然后从机管理部件130监控到从机3处于空闲状态,向任务调度部件140传递从机3处于空闲状态的信息,然后,任务调度部件接收到从机3处于空闲状态的信息,开始为从机3去分配子任务,而当前未分配的子任务只有任务1,且任务1的评别为2,从机3的评级为3,故任务调度部件140将任务1分配给从机3去完成,此时,从机1、从机2、从机3均在执行任务,其中从机1在执行任务2,从机2在执行任务3,从机3在执行任务1,当前没有未分配的子任务。
92.假设随后从机1完成任务2,从机管理部件130监控到从机1处于空闲状态,向任务调度部件140传递从机1处于空闲状态的信息。任务调度部件140向任务管理部件120查询未分配的子任务信息,查询结果是当前没有未分配的子任务,从机1继续处于空闲状态,等待新的子任务产生,或者等待所有的从处理机20均处于空闲状态,即所有的子任务均已完成。
93.在一种实施情形下,假设任务1在从机3上执行失败,从机管理部件130获取到执行失败的信息后,向任务管理部件120传递任务1执行失败的信息,任务管理部件120将任务1更新为未分配子任务,级别为1。然后任务调度部件140向任务管理部件120查询到当前有新的未分配任务1,将任务1分配给从机1去执行,而从机管理部件130监控到从机3处于空闲状态,向任务调度部件140传递从机3处于空闲状态的信息。任务调度部件140向任务管理部件120查询到当前没有未分配的子任务,则从机3继续处于空闲状态,等待新的子任务产生,或者等待所有的从处理机20均处于空闲状态,即所有的子任务均已完成。
94.假设随后从机2完成任务3,从机管理部件130监控到从机2处于空闲状态,向任务调度部件140传递从机2处于空闲状态的信息。任务调度部件140向任务管理部件120查询到当前没有未分配的子任务,则从机2和从机3均继续处于空闲状态,等待新的子任务产生,或者等待所有的从处理机20均处于空闲状态,即所有的子任务均已完成。假设最终从机1完成任务1,处于空闲状态,此时所有的子任务均已经完成,三个从机均退出运行,该主从式多机系统也退出结束运行。
95.可选地,前述的任务调度装置100还可以包括:显示部件和存储部件(未示出),其中,该显示部件与前述主处理机10通信连接,用于显示调度未分配的子任务分配至未分配
有子任务的从处理机20的分配结果;该存储部件则分别连接前述的任务管理部件120和从机管理部件130,用于存储前述版图数据和验证前述版图数据的总任务进程切分成多个子任务的方案及其评级数据,以及前述多个从处理机20的评级数据。
96.由此,本实施例二所述的用于版图验证的任务调度装置,可实现对从处理机20的最大化使用,避免由于任务分配不当使部分从处理机闲置而导致多机系统效率低下,从而可以高效均衡地对任务进行调度与分配,以提高多机系统的运行效率,进而提高版图验证工具在多机模式下的运行速度。
97.实施例三
98.图5示出本公开实施例三提供的一种服务器的结构示意图。
99.参考图5,本公开还提出了一种适于用来实现本公开实施例的示例性服务器的框图。需要明白的是,图5显示的服务器仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
100.如图5所示,服务器200以通用计算设备的形式表现。服务器200的组件可以包括但不限于:一个或者多个处理器或者处理单元210,存储器220,连接不同系统组件(包括存储器220和处理单元210)的总线201。
101.总线201表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
102.服务器200典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
103.系统存储器220可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)221和/或高速缓存存储器222。服务器200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统223可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd

rom,dvd

rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线201相连。存储器220可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开实施例各实施例的功能。
104.具有一组(至少一个)程序模块2241的程序/实用工具224,可以存储在例如存储器220中,这样的程序模块2241包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块2241通常执行本公开实施例所描述的实施例中的功能和/或方法。
105.进一步地,服务器200也可以与显示器300通信连接,用于显示集成电路版图数据验证子任务的调度分配结果及进度,该显示器300可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,该显示器300也可以是带输入设备的显示屏或触摸屏。
106.进一步地,该服务器200还可与一个或者多个使得用户能与该服务器200交互的设
备通信,和/或与使得该服务器200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口230进行。并且,服务器200还可以通过网络适配器240与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器240通过总线201与服务器200的其它模块通信。应当明白,尽管图中未示出,可以结合服务器200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
107.处理单元210通过运行存储在系统存储器220中的程序,从而执行各种功能应用以及数据处理,例如实现本公开实施例一所提供的用于集成电路版图验证的任务调度方法。
108.实施例四
109.本公开实施例四还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行本公开实施例一所提供的用于集成电路版图验证的任务调度方法,该方法包括:
110.利用主处理机读取版图数据;
111.将验证该版图数据的总任务进程切分成多个子任务;
112.对该多个子任务进行评级,以及对前述的多个从处理机进行评级;
113.根据前述多个子任务的评级数据调度该多个子任务,将未分配的多个子任务中的其中之一分配至未分配任务的前述多个从处理机中对应适配该子任务评级的从处理机。
114.本公开实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
115.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
116.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本公开实施例操作的计算机程序代码,前述程序设计语言包括面向对象的程序设计语言(诸如java、smalltalk、c ),还包括常规的过程式程序设计语言诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以
通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
117.此外,在本文中,所含术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
118.最后应说明的是:显然,上述实施例仅仅是为清楚地说明本公开所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本公开的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献