CN112578259B - 一种具有数据空间设置的线程调度方法 - Google Patents

一种具有数据空间设置的线程调度方法 Download PDF

Info

Publication number
CN112578259B
CN112578259B CN201910931825.8A CN201910931825A CN112578259B CN 112578259 B CN112578259 B CN 112578259B CN 201910931825 A CN201910931825 A CN 201910931825A CN 112578259 B CN112578259 B CN 112578259B
Authority
CN
China
Prior art keywords
test
data
thread
site
item
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.)
Active
Application number
CN201910931825.8A
Other languages
English (en)
Other versions
CN112578259A (zh
Inventor
吕效军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ingenic Semiconductor Co Ltd
Original Assignee
Beijing Ingenic Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ingenic Semiconductor Co Ltd filed Critical Beijing Ingenic Semiconductor Co Ltd
Priority to CN201910931825.8A priority Critical patent/CN112578259B/zh
Publication of CN112578259A publication Critical patent/CN112578259A/zh
Application granted granted Critical
Publication of CN112578259B publication Critical patent/CN112578259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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 the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种具有数据空间设置的线程调度方法,包括:S1在创建主线程前申请并开辟专属的数据空间,各测试项的Meas阶段时向此空间写入获取的数据,Upload阶段读取所述的数据空间的数据并通过总线上传给工作站进行处理;S2根据测试站点个数在工作站建立一个线程池,可容纳线程数为测试站点个数再加1,其中一个为主线程,其余为各测试站点子线程;S3主线程只负责各测试项的Setup和Meas阶段,并且在测试项1的Setup和Meas结束后立即启动测试项2的Setup和Meas,同时启动测试站点1子线程执行Upload、Calc和Judge阶段,并且在测试站点1的Upload结束后启动测试站点2子线程执行Upload、Calc和Judge,这样依次完成所有测试站点所有测试项的测试;S4同步各测试站点子线程并释放回收完成整个测试流程。

Description

一种具有数据空间设置的线程调度方法
技术领域
本发明涉及集成电路测试领域,特别涉及一种具有数据空间设置的线程调度方法。
背景技术
随着社会的发展,人们对电子产品功能的多样性和丰富性提出了越来越高的需求。而随着集成电路设计和制造技术的进步,这一需求的实现变为了可能,但芯片规模越来越大,一个芯片中不仅集成了中央处理器CPU、存储器Memory、通用外设接口USB、MIPI、SPI等,还集成了图形处理器GPU、图像处理器VPU、音频处理器Audio,甚至加密引擎AES、SHA等各种复杂的功能模块。
而芯片功能的复杂性和规模的扩大性,对芯片的测试提出了严峻的挑战,不仅增加了测试程序开发时间,还极大地增加了芯片的测试时间,提高了测试成本。
目前芯片的测试基本都是应用通用ATE测试机完成。常见的ATE测试机有V93000、T2000、J750等。通用ATE测试机主要由工作站、测试头组成,其中测试头由多块测试板卡组成,测试板卡内置测试向量发生器、时钟发生器、驱动器、比较器,并包含多个测试通道,可以实现与各Site待测器件的连接,对待测器件施加激励或捕获响应。
工作站负责对测试板卡的控制,通过API编程建立测试向量及相应的控制指令,通过下行总线发送给目标测试板卡,测试板卡执行测试并获取芯片响应数据,再通过上行总线上传到工作站,然后工作站对数据进行处理和判断,得出芯片的测试结果。如图1为ATE测试连接图。
芯片的测试往往包含多个测试项,每个测试项都分为测试向量建立(Setup)、测试数据获取(Meas)、测试数据上传(Upload)、测试数据处理(Calc)、结果判断(Judge)五个阶段,而ATE测试机一般也只能完成一个测试项的整个流程再进行下一个测试项的测试,相当于是测试项一个接一个的串行执行。
传统的提高芯片测试效率的做法是芯片的多测试站点(Site)并行测试,即设置同样的测试向量,同时启动测试卡对多个芯片进行测试,但由于测试板卡是共享与工作站之间的通信总线,工作站获取各Site芯片测试数据需要依次选中对应板卡通过总线顺序进行上传,然后再进行数据处理和结果判定。
传统的多测试站点(site)并行测试,只能实现芯片单个测试项的部分并行,即测试向量的设置及数据获取阶段,数据的上传、处理及结果判断site间依然是串行处理,整体并行度并不高,导致芯片测试效率及测试成本并不理想。
发明内容
为了解决上述问题,本发明的目的在于克服现有技术的不足,提供一种多线程的处理技术,实现了测试项测试数据上传、测试数据处理及结果判断三个阶段的时间隐藏,无论单Site还是多Site都极大地提高了芯片测试并行率,成倍地减少了测试时间,显著地降低了测试成本,具有很高的应用价值。
具体地,提供一种具有数据空间设置的线程调度方法,包括以下步骤:
S1,在创建主线程前申请并开辟专属的数据空间,各测试项的测试数据获取Meas阶段时向此空间写入获取的数据,测试数据上传upload阶段读取所述的数据空间的数据并通过总线上传给工作站进行处理;
S2,根据测试站点(site)个数在工作站建立一个线程池,可容纳线程数为测试站点个数再加1(Nthread=Nsite+1),其中一个为主线程,其余为各测试站点(site)子线程;
S3,所述的主线程只负责各测试项的测试数据建立和获取阶段,并且在测试项1的测试数据建立和获取结束后立即启动测试项2的测试数据建立和获取,同时启动测试站点1(site1)子线程执行测试数据上传、数据处理和结果判断阶段,并且在测试站点1(site1)的测试数据上传结束后启动测试站点2(site2)子线程执行测试数据上传、数据处理和结果判断,这样依次完成所有测试站点(site)所有测试项的测试;
S4,同步各测试站点(site)子线程并释放回收完成整个测试流程。
由此,本申请的优势在于:上述具有数据空间设置的线程执行步骤实现了各测试项Upload、Calc、Judge时间的隐藏,利用测试机测试板卡双端口RAM可以同时读写的特性,在线程设置前提前申请并开辟板卡专属数据空间,用于Meas阶段向其写入和Upload阶段读出的芯片输出数据的存储,节省了测试时间。
本发明还可以通过对多线程的应用,合理分配资源,隐藏了测试数据上传、计算及处理判断时间,实现了测试项及测试站点Site间的并行,达到了很高的测试效率,极大地缩短了测试时间,减少了测试成本,具有很高的实用价值及推广价值。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明涉及的现有技术的ATE测试连接示意框图。
图2是本发明涉及的功能示意框图。
图3是本发明涉及的具有数据空间设置的线程调度方法的示意流程图。
图4是本发明涉及的一个测试执行流程图。
图5是传统单site测试执行时间图。
图6是传统多site测试执行时间图。
图7是多线程多site测试执行时间图。
图8是多线程数据隐藏单site测试执行时间图。
图9是多线程数据隐藏多site测试执行时间图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
参见图3所示,提供一种具有数据空间设置的线程调度方法,包括以下步骤:
S1,在创建主线程前申请并开辟专属的数据空间,各测试项的测试数据获取Meas阶段时向此空间写入获取的数据,测试数据上传upload阶段读取所述的数据空间的数据并通过总线上传给工作站进行处理;
S2,根据测试站点(site)个数在工作站建立一个线程池,可容纳线程数为测试站点个数再加1(Nthread=Nsite+1),其中一个为主线程,其余为各测试站点(site)子线程;
S3,所述的主线程只负责各测试项的测试数据建立和获取阶段,并且在测试项1的测试数据建立和获取结束后立即启动测试项2的测试数据建立和获取,同时启动测试站点1(site1)子线程执行测试数据上传、数据处理和结果判断阶段,并且在测试站点1(site1)的测试数据上传结束后启动测试站点2(site2)子线程执行测试数据上传、数据处理和结果判断,这样依次完成所有测试站点(site)所有测试项的测试;
S4,同步各测试站点(site)子线程并释放回收完成整个测试流程。
所述的步骤S1中,为充分利用测试机板卡双端口RAM可以同时读写的特性。
所述的步骤S1中,所述的数据空间的大小应设为测试项所需获取最大数据量的大小。
所述的步骤S2中,其中,主线程用于执行各测试项的测试向量建立Setup、测试数据获取Meas阶段,测试站点Site子线程用于执行各对应Site的测试数据上传Upload、测试数据处理Calc、结果判断Judge阶段。
所述的步骤S2中,所述的子线程为独立子线程。
进一步包括,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
进一步包括,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite
所述的多测试站点为2n测试站点,其中,n为大于等于1的正整数,常用的为2site、4site、8site。
此外,以北京君正集成电路股份有限公司的一款SOC芯片的测试为另外的示例,执行流程如附图4,具体为:
1.根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem
2.根据测试机资源,建立多site测试,总site个数为Nsite。常用的如2site、4site、8site等。
3.在测试机执行各测试项,获取每个测试项执行时各阶段的测试时间。即测试向量建立(Setup)阶段、测试数据获取(Meas)阶段、测试数据上传(Upload)阶段、测试数据计算(Calc)及结果判断(Judge)阶段所需时间。如附图5为传统单Site测试执行时间图,附图6为传统多Site测试执行时间图,并且以2个Site为例。
4.根据Site个数建立线程池,可容纳线程数为Nthread=Nsite+1,其中一个为主线程,其余为各site独立子线程。
5.根据测试流程,从线程池创建主线程。
6.启动并运行主线程执行测试项1的测试向量建立及获取阶段,即Setup与Meas阶段。
7.主线程执行Site1测试项1的Upload阶段,完成后启动Site1子线程执行Site1测试项1的Calc+Judge阶段,同时主线程执行Site2测试项1的Upload阶段,待完成后启动Site2子线程执行Site2测试项1的Calc+Judge阶段。
8.如步骤7,依次由主线程执行各Site的Upload,并按顺序调度启动各Site子线程执行其对应Site的Calc+Judge阶段,然后进行线程同步,待全部执行完毕后释放各Site子线程。
9.循环执行步骤6-8,依次按顺序完成测试项1、测试项2到测试项Nitem的测试,即完成整个测试流程,如附图7为多线程多site测试执行时间图。
10.进一步地,为充分利用测试机板卡双端口RAM可以同时读写的特性,可以在步骤5创建主线程前申请并开辟专属数据空间,各测试项Meas阶段时向此空间写入获取的数据,upload阶段读取此空间的数据并通过总线上传给工作站进行处理。数据空间的大小应设为测试项所需获取最大数据量的大小。
11.根据步骤10的设置,调整步骤6-8执行的线程调度。主线程只负责各测试项的Setup+Meas阶段,并且在测试项1的Setup+Meas结束后立即启动测试项2的Setup+Meas,同时启动Site1子线程执行Upload+Calc+Judge阶段,并且在Site1的Upload结束后启动Site2子线程执行Upload+Calc+Judge,这样依次完成所有Site所有测试项的测试,最后同步各Site子线程并释放回收完成整个测试流程,如附图8为多线程数据隐藏单Site测试,附图9为多线程数据隐藏多Site测试。
12.更进一步地,可以根据步骤3对各测试项时间的获取,合并调整优化测试项,使各测试项Upload+Calc+Judge的时间小于并尽量与其Setup+Meas时间相等,这样就可以将各测试项Upload+Calc+Judge阶段最大限度地完全隐藏起来,获得更好的测试并行度,减少测试时间,降低测试成本。
以Site个数为Nsite,测试项个数为Nitem,单位测试项测试时间为Titem,单位测试项Setup、Meas、Upload、Calc、Judge阶段的测试时间分别为Tsetup、Tmeas、Tuplod、TCalc及TJudge
对比图5和图6可以看出,传统单Site测试,每个测试项都需要Setup、Meas、Upload、Calc、Judge五个阶段的测试时间,传统多Site测试,每个测试项的每个Site间Setup、Meas阶段并行执行,相当于节省了Site个数减一倍的Setup加Meas时间,即节省(Nsite-1)*(Tsetup+Tmeas)。
对比图5和图8可以看出,单Site测试下,本发明的多线程数据隐藏方式只需要各测试项的Setup、Meas时间,每个测试项的Upload、Calc、Judge阶段都隐藏到了后一测试项的Setup、Meas阶段,相当于比传统单Site测试节省了测试项个数减一倍的Upload、Calc、Judge时间,即节省(Nitem-1)*(Tuplod+TCalc+TJudge)。
对比图6和图9可以看出,多Site测试下,本发明的多线程数据隐藏方式每个测试项的Upload、Calc、Judge阶段也都隐藏到了后一测试项的Setup、Meas阶段,Site间Setup、Meas阶段为并行执行,相当于比传统多Site测试节省了测试项个数减一并乘以Site个数倍的Upload、Calc、Judge时间,即节省Nsite*(Nitem-1)*(Tuplod+TCalc+TJudge)。
对比图5和图9可以看出,本发明的多线程数据隐藏方式比传统单Site测试,不仅每个测试项Site间Setup、Meas阶段并行执行,前一测试项的Upload、Calc、Judge阶段还都会被隐藏到后一测试项的Setup、Meas阶段,节省了
(Nsite-1)*Nitem*(Tsetup+Tmeas)+Nsite*(Nitem-1)*(Tuplod+TCalc+TJudge)
=(Nsite-1)*(Nitem-1)*(Tsetup+Tmeas)+(Nsite-1)*(Tsetup+Tmeas)+(Nsite-1)*(Nitem-1)*(Tuplod+TCalc+TJudge)+(Nitem-1)*(Tuplod+TCalc+TJudge)
=(Nsite-1)*(Nitem-1)*Titem+(Nsite-1)*(Tsetup+Tmeas)+(Nitem-1)*(Tuplod+TCalc+TJudge)
即相当于节省了Site个数减一乘以测试项个数减一倍的单位测试项时间加Site个数减一倍的Setup、Meas时间和测试项个数减一倍的upload、Calc、Judge时间,而且,随Site个数和测试项数目的增加而增加,在更多的测试项数目需求更多的Site个数应用下会获得更高的测试收益,更大地减少测试时间。
由此可见,本发明方法无论在单Site还是多Site测试都能够完全隐藏测试数据上传、处理及判定阶段,获得非常理想的并行度,可以成倍地减少测试时间,极大地降低了测试成本,获得很好的使用效益。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种具有数据空间设置的线程调度方法,包括以下步骤:
S1,在创建主线程前申请并开辟专属的数据空间,各测试项的测试数据获取阶段时向此空间写入获取的数据,测试数据上传阶段读取所述的数据空间的数据并通过总线上传给工作站进行处理;
S2,根据测试站点个数在工作站建立一个线程池,可容纳线程数为测试站点个数再加1,其中一个为主线程,其余为各测试站点子线程;
S3,所述的主线程只负责各测试项的测试数据建立和获取阶段,并且在测试项1的测试数据建立和获取结束后立即启动测试项2的测试数据建立和获取,同时启动测试站点1子线程执行测试数据上传、数据处理和结果判断阶段,并且在测试站点1的测试数据上传结束后启动测试站点2子线程执行测试数据上传、数据处理和结果判断,这样依次完成所有测试站点所有测试项的测试;
S4,同步各测试站点子线程并释放回收完成整个测试流程。
2.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的步骤S1中,为充分利用测试机板卡双端口RAM可以同时读写的特性。
3.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的步骤S1中,所述的数据空间的大小应设为测试项所需获取最大数据量的大小。
4.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的步骤S2中,其中,主线程用于执行各测试项的测试向量建立、测试数据获取阶段,测试站点子线程用于执行各对应测试站点的测试数据上传、测试数据处理、结果判断阶段。
5.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的步骤S2中,所述的子线程为独立子线程。
6.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,进一步包括,根据芯片的规格定义,建立所需所有测试项,测试项总数为Nitem。
7.根据权利要求1所述的一种具有数据空间设置的线程调度方法,其特征在于,进一步包括,根据测试机资源,建立多测试站点测试,总测试站点个数为Nsite。
8.根据权利要求7所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的多测试站点为2n测试站点,其中,n为大于等于1的正整数。
9.根据权利要求8所述的一种具有数据空间设置的线程调度方法,其特征在于,所述的2n测试站点优选为2测试站点、4测试站点、8测试站点。
CN201910931825.8A 2019-09-29 2019-09-29 一种具有数据空间设置的线程调度方法 Active CN112578259B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910931825.8A CN112578259B (zh) 2019-09-29 2019-09-29 一种具有数据空间设置的线程调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910931825.8A CN112578259B (zh) 2019-09-29 2019-09-29 一种具有数据空间设置的线程调度方法

Publications (2)

Publication Number Publication Date
CN112578259A CN112578259A (zh) 2021-03-30
CN112578259B true CN112578259B (zh) 2022-06-10

Family

ID=75111049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910931825.8A Active CN112578259B (zh) 2019-09-29 2019-09-29 一种具有数据空间设置的线程调度方法

Country Status (1)

Country Link
CN (1) CN112578259B (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1519703B (zh) * 2003-01-23 2010-05-05 英业达股份有限公司 可组合挂接的计算机多线程测试系统及其方法
US7111198B2 (en) * 2003-06-12 2006-09-19 Inventec Corporation Multithread auto test method
US8683444B1 (en) * 2006-12-11 2014-03-25 Synopsys, Inc. System and method of debugging multi-threaded processes
CN103838654B (zh) * 2012-11-27 2016-01-13 重庆新媒农信科技有限公司 一种多线程和并发测试模拟器及其测试方法
CN106648872A (zh) * 2016-12-29 2017-05-10 深圳市优必选科技有限公司 用于多线程处理的方法及装置、服务器
CN108459966B (zh) * 2018-03-21 2021-11-16 东软集团股份有限公司 测试组件的调度方法、装置、设备和计算机可读存储介质
CN108874666A (zh) * 2018-05-30 2018-11-23 平安普惠企业管理有限公司 测试数据自动生成方法、装置、计算机设备及存储介质
CN109709424A (zh) * 2018-12-29 2019-05-03 中电科仪器仪表有限公司 一种emc自动测试系统多测试项并行测试的实现方法

Also Published As

Publication number Publication date
CN112578259A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US20170115353A1 (en) Granular dynamic test systems and methods
US8127187B2 (en) Method and apparatus of ATE IC scan test using FPGA-based system
JP4380907B2 (ja) 複数の仮想テスタをサポートする半導体テストシステム
US5781718A (en) Method for generating test pattern sets during a functional simulation and apparatus
TW200809232A (en) Test module with blocks of universal and specific resources
US7243278B2 (en) Integrated circuit tester with software-scaleable channels
US20080221824A1 (en) Test apparatus, test method and recording medium
WO2023035615A1 (zh) 一种多核测试处理器及集成电路测试系统与方法
US20120072788A1 (en) Integrated circuit with memory built-in self test (mbist) circuitry having enhanced features and methods
CN112578259B (zh) 一种具有数据空间设置的线程调度方法
CN112578260B (zh) 一种基于多线程技术提高芯片测试效率的方法
CN112579367B (zh) 一种测试过程中设置数据空间的处理方法
CN112579306B (zh) 一种线程设置和线程调度的方法
CN112579262B (zh) 一种具有测试项调整的多线程并行的处理方法
JP2002311090A (ja) 半導体集積回路およびテスト用ボード
CN108334428B (zh) 一种系统功能的并行测试方法
JP3257425B2 (ja) テスト回路及びテスト方法
US9632141B2 (en) Simultaneous transition testing of different clock domains in a digital integrated circuit
TWI266065B (en) Chip capable of testing itself and testing method thereof
JP2005528596A (ja) マルチタスク・アルゴリズミック・パターン・ジェネレータを有する半導体試験システム
TWI334187B (en) Wafer, test system thereof, test method thereof and test fixture thereof
TW200529022A (en) Dynamic waveform resource management
JP2004361098A (ja) 半導体集積回路、及び半導体集積回路装置
CN117806962A (zh) 一种基于国产mcu的嵌入式软件功能验证装置及验证方法
TW201606326A (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
GR01 Patent grant
GR01 Patent grant