CN112732501B - 一种测试方法及多处理器soc芯片 - Google Patents
一种测试方法及多处理器soc芯片 Download PDFInfo
- Publication number
- CN112732501B CN112732501B CN202110018480.4A CN202110018480A CN112732501B CN 112732501 B CN112732501 B CN 112732501B CN 202110018480 A CN202110018480 A CN 202110018480A CN 112732501 B CN112732501 B CN 112732501B
- Authority
- CN
- China
- Prior art keywords
- command
- slave
- slave system
- main system
- cache
- 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
Links
- 238000010998 test method Methods 0.000 title claims abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 45
- 239000000872 buffer Substances 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 20
- 238000007639 printing Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 14
- 238000011161 development Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000750 progressive effect Effects 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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/273—Tester hardware, i.e. output processing circuits
-
- 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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
- G06F11/2242—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
-
- 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/2273—Test methods
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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/5016—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 the resource being the memory
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
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)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种测试方法及多处理器SOC芯片,包括:通过主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;通过从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。这样,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。
Description
技术领域
本申请涉及SOC芯片技术领域,特别涉及一种测试方法及多处理器SOC芯片。
背景技术
随着芯片技术的高速发展,芯片的复杂度也越来越高,之前由几颗芯片一起才能实现的功能,现在可以在一颗芯片上得以实现,这样导致在越来越多的SOC(即System OnChip,片上***)芯片中,CPU(即Central Processing Unit,中央处理器)数量从之前的一个增加到当前的几个,几十个甚至更多。而此类多处理器SOC芯片的架构一般是由一个包括主CPU的主***和其他多个包括子CPU的子***组成。通常由于主***和各个子***所需要实现的功能不同,所以对CPU的性能要求也各不相同,所以在CPU IP(即IntellectualProperty,一段具有特定电路功能的硬件描述语言程序)的选型上,主CPU和多个子CPU的架构也各不相同。这些CPU IP来自不同的CPU IP厂商的各系列CPU IP,比如ARM,Cadence,Synopsys等CPU IP厂商。而各个CPU IP厂商针对其CPU提供的配套IDE(IntegratedDevelopment Environment,集成开发环境)也大不相同。
在芯片开发过程中,测试是极为重要的一个环节,其保证了芯片设计的正确性。对于此类多处理器SOC芯片的测试任务,通常会按照各***来划分,由不同的测试人员来负责主***和其他子***的测试。由于各***的CPU架构的不同,所以一般情况下,各个***所使用的测试用例开发环境也不同,一般都是基于CPU IP厂商所提供的IDE。不同的测试人员在不同的开发环境中开发测试用例,这样就有很大的可能性导致整个SOC芯片测试用例开发失去了统一性和一致性,最终导致测试漏洞以及测试效率低下。
发明内容
有鉴于此,本申请的目的在于提供一种测试方法及多处理器SOC芯片,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。其具体方案如下:
第一方面,本申请公开了一种测试方法,应用于多处理器SOC芯片,所述多处理器SOC芯片包括主***和至少一个从***,所述方法包括:
通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;
通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。
可选的,所述方法还包括:
通过所述主***在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存;
通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息;
通过所述从***在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存;
通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
可选的,所述方法还包括:
根据中断信号的优先级调用对应的中断服务程序,处理对应的输出信息。
可选的,所述将相应的第二输出信息写入对应的从***输出缓存之前,还包括:
通过所述从***监测对应的所述从***输出缓存当前是否为空闲状态,若是,则将所述第二输出信息写入对应的从***输出缓存。
可选的,所述调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息,包括:
调用所述第二中断信号对应的中断服务程序,将所述第二输出信息打印到终端显示界面进行显示。
可选的,所述方法还包括:
预先为所述主***和所述从***在共享存储中分别分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
可选的,所述方法还包括:
若所述第一命令不为所述主***命令集中所述主***的命令,且不为子***对应的命令,则清空所述主***输入缓存;
若所述第二命令不为所述从***命令集中的命令,则清空所述从***输入缓存。
第二方面,本申请公开了一种多处理器SOC芯片,所述多处理器SOC芯片包括主***和至少一个从***,其中,
所述主***,用于解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;
所述从***,用于解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。
可选的,所述主***,还用于在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存,通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息;
所述从***,还用于在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存,通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
可选的,所述多处理器SOC芯片,还包括:
共享存储,用于为所述主***和所述从***分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
可见,本申请通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。也即,本申请统一了主***和从***的命令处理方式,降低了各***处理命令的差异性,这样,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种测试方法流程图;
图2为本申请公开的一种具体的命令执行流程图;
图3为本申请公开的一种具体的测试方法流程图;
图4为本申请公开的一种具体的多处理器SOC芯片架构图;
图5a为本申请公开的一种具体的输入缓存分配示意图;
图5b为本申请公开的一种具体的输出缓存分配示意图;
图6为本申请公开的一种具体的信息输出***工作流程图;
图7为本申请公开的一种具体的主***中断处理流程图;
图8为本申请公开的一种多处理器SOC芯片结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在芯片开发过程中,测试是极为重要的一个环节,其保证了芯片设计的正确性。对于此类多处理器SOC芯片的测试任务,通常会按照各***来划分,由不同的测试人员来负责主***和其他子***的测试。由于各***的CPU架构的不同,所以一般情况下,各个***所使用的测试用例开发环境也不同,一般都是基于CPU IP厂商所提供的IDE。不同的测试人员在不同的开发环境中开发测试用例,这样就有很大的可能性导致整个SOC芯片测试用例开发失去了统一性和一致性,最终导致测试漏洞以及测试效率低下。为此,本申请提供了一种SOC芯片测试方案,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。
参见图1所示,本申请实施例公开了一种测试方法,应用于多处理器SOC芯片,所述多处理器SOC芯片包括主***和至少一个从***,所述方法包括:
步骤S11:通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存。
在具体的实施方式中,可以基于从***的名称对从***的命令进行命名。例如,sub_a,sub_b,sub_c,添加至主***命令集中,当主***解析命令时,当命令名为sub_a,sub_b,sub_c时,主***则将命令名之后的参数作为子***的命令分发到子***中去执行。
并且,若所述第一命令不为所述主***命令集中所述主***的命令,且不为子***对应的命令,则清空所述主***输入缓存。
具体的,当所述主***的所述主***输入缓存接收到输入的所述第一命令行,则通过预设命令解析函数,解析该第一命令行,得到对应的第一命令及其第一参数,主***在所述主***命令集中查询所述第一命令,若查询不到,则清空主***输入缓存,等待下一条命令行的输入,如果查询到,且不为以子***名称命名的命令,则执行所述第一命令,执行完成后,清空所述主***输入缓存,等待下一条命令行的输入,若为以子***名称命名的命令,则所述第一参数作为第二命令行发送至对应的从***输入缓存。
步骤S12:通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。
在具体的实施方式中,若所述第二命令不为所述从***命令集中的命令,则清空所述从***输入缓存。
例如,参见图2所示,图2为本申请公开的一种具体的命令执行流程图。利用主***和各子***的input buffer(输入缓存)实现命令的输入,在主***中实现一套命令处理机制,通过这套命令处理机制来执行主***命令,并分发各子***命令到各子***执行。同时在各子***中实现一套命令处理机制,用于执行从主***分发过来的子***命令。在主***命令集中,为分发各子***命令,建立以子***名为命令名的命名方式。当主***的input buffer接收到输入命令行时,通过命令解析函数,解析此命令行,并得到此命令行所表示的命令及其参数,在主***的命令集中查询此命令,如果未查询到此命令,此命令即为未知命令,主***则清空input buffer等待下一条命令行的输入,如果查询到此命令,且不为子***名字命名的命令则执行此命令,当命令执行完成后,清空input buffer并等待下一条命令行的输入。而对于以子***名字命名的命令,主***则将此命令之后的参数作为子***的命令行发送到相应的子***的input buffer中去,而子***命令解析流程和主***命令解析流程一致,子***通过命令解析函数,解析此命令行,并得到此命令行表示的命令及其参数,在子***的命令集中查询此命令,如果未查询到此命令,此命令即为未知命令,子***则清空input buffer等待下一条命令行的输入,如果查询到此命令,则执行此命令,当命令执行完成后,清空input buffer并等待下一条命令行的输入。
也即,本申请实施例可以建立主***和各子***的命令处理机制,即主***要支持哪些命令,各子***要支持哪些命令,各***如何处理这些命令。在主***中建立主***的命令列表,在各子***中建立各自的命令列表,并且创建这些命令所要实现功能的函数,并在命令和函数之间建立调用关系。当输入某命令时,***会根据所输入的命令,查询命令列表,调用其相对应的函数执行,完成此命令。而这些命令集以及其所要实现的功能,基于多处理器SOC芯片测试需求来确定。
可见,本申请实施例通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。也即,本申请实施例统一了主***和从***的命令处理方式,降低了各***处理命令的差异性,这样,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。
参见图3所示,本申请实施例公开了一种具体的测试方法,应用于多处理器SOC芯片,所述多处理器SOC芯片包括主***和至少一个从***,所述方法包括:
步骤S21:通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存。
步骤S22:通过所述主***在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存。
在具体的实施方式中,本实施例可以通过所述主***监测对应的所述主***输出缓存当前是否为空闲状态,若是,则将所述第一输出信息写入对应的主***输出缓存。
步骤S23:通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息。
在具体的实施方式中,可以调用所述第一中断信号对应的中断服务程序,将所述第一输出信息打印到终端显示界面进行显示。
步骤S24:通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。
步骤S25:通过所述从***在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存。
在具体的实施方式中,可以通过所述从***监测对应的所述从***输出缓存当前是否为空闲状态,若是,则将所述第二输出信息写入对应的从***输出缓存。
步骤S26:通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
在具体的实施方式中,可以调用所述第二中断信号对应的中断服务程序,将所述第二输出信息打印到终端显示界面进行显示。
进一步的,本实施例可以根据中断信号的优先级调用对应的中断服务程序,处理对应的输出信息。
也即,本申请实施例可以确定多处理器SOC芯片中的子***在主***的中断***中所分配的中断资源,即ICC(即Inter Chip Communication)中断信号。本实施例中,可以为每个子***选取一个ICC中断号来使用,在另外一些实施例中,也可以一个子***在主***的中断***中分配多个ICC中断号。并且,对于主***和各子***,如果各***的信息输出需要具有优先级的需求,则可以通过在主机***的中断模块中,为各自***的中断号配置相应的优先级别,以此达到各自信息输出的优先级。
在具体的实施方式中,可以预先为所述主***和所述从***在共享存储中分别分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
并且,可以基于连续的空间地址分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。这样,只需利用一个基地址即可实现缓存分配,并且便于地址调整。
其中,本实施例可以为主***和从***中每个CPU core(核心)均分配对应的输出缓存,各***信息的输出以各***中CPU的core为单位,在任一core上,命令的执行信息和结果信息通过该core所在的***写入该core对应的输出缓存。
例如,参见图4所示,图4为本申请实施例公开的一种具体的多处理器SOC芯片架构图,主***HOST和子***SUB_A,SUB_B,SUB_C的处理器均为4核CPU。其中,共享RAM(即Random Access Memory,随机存储器)能够同时被主***和所有子***访问,主要用于各个***之间的通信。本实施例中的主***HOST和子***SUB_A,SUB_B,SUB_C可以利用此共享RAM来是实现各个***的input buffer(输出缓存)和output buffer(输出缓存),对于input buffer,主***和个子***各分配一块RAM空间,各个***的input buffer用于接收储存输入的命令行,一般命令行不会超过几百个字节,所以其分配的大小一般为几百个字节。对于output buffer,各***的CPU均为4核CPU,所以要为每个***中CPU的每个核分配一块RAM空间,各***的output buffer用于储存本***CPU的每个核的输出信息,其大小一般为几百个字节到几K字节不等,大小根据实际的共享RAM大小以及实际需求共同确定。需要指出的是,多处理器SOC芯片中,主***和各子***都会独自使用各自***的memory管理方式,对于各***之间的数据交互,必须要考虑到各***间memory cache一致性问题,因此共享RAM地址空间,在各个***中需要配置为non-cacheable模式,以确保各***之间数据的一致性,这样才保证各***交互数据的正确性。
例如,参见图5a所示,图5a为本申请实施例公开的一种具体的输入缓存分配示意图。参见图5b所示,图5b为本申请实施例公开的一种具体的输入缓存分配示意图为各***的input buffer和output buffer在共享RAM中的分配。在具体的实施方式中,可以分配于共享RAM的连续地址空间,便于在实际使用中调整其在共享RAM中的地址空间位置。
例如,参见图6所示,图6为本申请实施例公开的一种具体的信息输出***工作流程图,参见图7所示,图7为本申请实施例公开的一种具体的主***中断处理流程图。在命令执行过程中以及命令执行完成后,主***和各子***会有命令执行的相关信息和最终结果信息要输出,这些信息由主***和各子***分别写入主***和各子***的output buffer。各***信息的输出以各***中CPU的core为单位,即每个core分配有一个output buffer,在此core上,命令的执行信息和结果信息会由此core所在的***写入其对应的outputbuffer。所有output buffer的信息最终由主***处理并输出。具体的,可以由主***调用打印函数把信息打印到终端,呈现给测试人员。当某个***中的CPU的某一个core需要输出信息时,此***首先检查此core的output buffer的状态是否为空闲状态,如果状态为非空闲,则等待此output buffer中的信息由主***处理完毕,如果状态为空闲,则此***首先更新此output buffer的状态为非空闲,然后把需要输出的信息写入到此output buffer,再通过操作此***中的ICC模块触发此***在主***的中断***中的中断信号,之后此***继续执行其他业务。主***收到中断信号,并进入此中断信号对应的中断服务程序,在此中断服务程序中,主***开始处理output buffer中的信息,调用打印函数,把这些信息输出到主***的终端显示***上。处理完毕后,更新此output buffer状态为空闲,最后清除中断信息并退出中断服务程序,之后主***继续执行其他业务。
需要指出的是,本申请实施例为多处理器SOC芯片主***和各子***分配独占的输入缓存和输出缓存,用于命令行的输入和信息的输出,从而降低了各***共享一个缓存所带来的软件开发的复杂度。并且,统一了多处理器SOC芯片测试***中主***和各子***的命令处理方式,使主***和各子***的命令输入和信息输出一致化,从而降低了各***处理命令的差异性,增强了各***在测试用例开发的粘合度,提高了测试用例开发的效率,降低了测试用例开发的复杂度。进一步的,利用多处理器SOC芯片的ICC中断资源来实现各***的输出消息在主***中的处理请求,而不需要增加芯片的硬件设计来支持此功能。
另外,本申请实施例公开的测试方法不限于应用于多处理器芯片,其也可以应用于包含多个处理器的电路***。
参见图8所示,本申请实施例公开了一种多处理器SOC芯片,所述多处理器SOC芯片包括主***11和至少一个从***12,其中,
所述主***11,用于解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;
所述从***12,用于解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。
可见,本申请实施例通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令。也即,本申请实施例统一了主***和从***的命令处理方式,降低了各***处理命令的差异性,这样,能够保障多处理器SOC芯片测试的统一性和一致性,从而提升测试效率以及降低测试漏洞的出现率。
所述主***11,还用于在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存,通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息。
所述从***12,还用于在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存,通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
在具体的实施方式中,所述主***根据中断信号的优先级调用对应的中断服务程序,处理对应的输出信息。
并且,所述从***,具体用于监测对应的所述从***输出缓存当前是否为空闲状态,若是,则将所述第二输出信息写入对应的从***输出缓存。
所述主***,具体用于调用所述第二中断信号对应的中断服务程序,将所述第二输出信息打印到终端显示界面进行显示。
并且,所述主***,还用于若所述第一命令不为所述主***命令集中所述主***的命令,且不为子***对应的命令,则清空所述主***输入缓存。
所述主***,还用于若所述第二命令不为所述从***命令集中的命令,则清空所述从***输入缓存。
进一步的,所述多处理器SOC芯片,还包括:
共享存储13,用于为所述主***和所述从***分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种测试方法及多处理器SOC芯片进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种测试方法,其特征在于,应用于多处理器SOC芯片,所述多处理器SOC芯片包括主***和至少一个从***,所述方法包括:
通过所述主***解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;
通过所述从***解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令;
其中,所述方法还包括:
通过所述主***在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存;
通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息;
通过所述从***在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存;
通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
2.根据权利要求1所述的测试方法,其特征在于,所述方法还包括:
根据中断信号的优先级调用对应的中断服务程序,处理对应的输出信息。
3.根据权利要求1所述的测试方法,其特征在于,所述将相应的第二输出信息写入对应的从***输出缓存之前,还包括:
通过所述从***监测对应的所述从***输出缓存当前是否为空闲状态,若是,则将所述第二输出信息写入对应的从***输出缓存。
4.根据权利要求2所述的测试方法,其特征在于,所述调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息,包括:
调用所述第二中断信号对应的中断服务程序,将所述第二输出信息打印到终端显示界面进行显示。
5.根据权利要求1所述的测试方法,其特征在于,所述方法还包括:
预先为所述主***和所述从***在共享存储中分别分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
6.根据权利要求1至5任一项所述的测试方法,其特征在于,所述方法还包括:
若所述第一命令不为所述主***命令集中所述主***的命令,且不为子***对应的命令,则清空所述主***输入缓存;
若所述第二命令不为所述从***命令集中的命令,则清空所述从***输入缓存。
7.一种多处理器SOC芯片,其特征在于,所述多处理器SOC芯片包括主***和至少一个从***,其中,
所述主***,用于解析主***输入缓存中的第一命令行,以得到对应的第一命令和第一参数,若所述第一命令为主***命令集中所述主***的命令,则执行所述第一命令,若所述第一命令为子***对应的命令,则将所述第一参数作为第二命令行发送至对应的从***输入缓存;
所述从***,用于解析所述第二命令行,以得到对应的第二命令和第二参数,若所述第二命令为所述从***的从***命令集中的命令,则执行所述第二命令;
其中,所述主***,还用于在执行所述第一命令后,将相应的第一输出信息写入对应的主***输出缓存,通过所述主***的中断触发模块触发对应的第一中断信号,以调用所述第一中断信号对应的中断服务程序,处理所述第一输出信息;
所述从***,还用于在执行所述第二命令后,将相应的第二输出信息写入对应的从***输出缓存,通过所述从***的中断触发模块触发所述主***中该从***对应的第二中断信号,以便所述主***调用所述第二中断信号对应的中断服务程序,处理所述第二输出信息。
8.根据权利要求7所述的多处理器SOC芯片,其特征在于,还包括:
共享存储,用于为所述主***和所述从***分配所述主***输入缓存、所述从***输入缓存、所述主***输出缓存、所述从***输出缓存。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018480.4A CN112732501B (zh) | 2021-01-07 | 2021-01-07 | 一种测试方法及多处理器soc芯片 |
PCT/CN2021/143261 WO2022148298A1 (zh) | 2021-01-07 | 2021-12-30 | 一种测试方法及多处理器soc芯片 |
US18/259,675 US20240054059A1 (en) | 2021-01-07 | 2021-12-30 | Test Method and Multi-Processor SOC Chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018480.4A CN112732501B (zh) | 2021-01-07 | 2021-01-07 | 一种测试方法及多处理器soc芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732501A CN112732501A (zh) | 2021-04-30 |
CN112732501B true CN112732501B (zh) | 2023-02-24 |
Family
ID=75591030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110018480.4A Active CN112732501B (zh) | 2021-01-07 | 2021-01-07 | 一种测试方法及多处理器soc芯片 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240054059A1 (zh) |
CN (1) | CN112732501B (zh) |
WO (1) | WO2022148298A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732501B (zh) * | 2021-01-07 | 2023-02-24 | 苏州浪潮智能科技有限公司 | 一种测试方法及多处理器soc芯片 |
CN115640046A (zh) * | 2021-07-20 | 2023-01-24 | 荣耀终端有限公司 | 命令的发送方法、存储介质和设备 |
CN113945772A (zh) * | 2021-10-14 | 2022-01-18 | 中国电子科技集团公司第四十一研究所 | 一种基于矢量网络分析仪的快速连续点测量***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235715A (zh) * | 2013-03-27 | 2013-08-07 | 青岛中星微电子有限公司 | 一种片上***SoC命令处理的方法、装置及芯片 |
CN105389235A (zh) * | 2015-10-28 | 2016-03-09 | 致象尔微电子科技(上海)有限公司 | 一种异构多核调试***与方法 |
US20190272217A1 (en) * | 2018-03-02 | 2019-09-05 | SK Hynix Inc. | Memory system and operating method thereof |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484188B2 (en) * | 2006-03-15 | 2009-01-27 | Marvell International Technology Ltd. | On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits |
US9594655B2 (en) * | 2013-07-25 | 2017-03-14 | Altera Corporation | Cache debug system for programmable circuits |
CN106933760A (zh) * | 2017-03-13 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种基于axi协议的dma控制器及数据上传方法 |
CN110018935A (zh) * | 2019-04-10 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 存储设备测试方法、***、装置及计算机可读存储介质 |
CN112732501B (zh) * | 2021-01-07 | 2023-02-24 | 苏州浪潮智能科技有限公司 | 一种测试方法及多处理器soc芯片 |
-
2021
- 2021-01-07 CN CN202110018480.4A patent/CN112732501B/zh active Active
- 2021-12-30 WO PCT/CN2021/143261 patent/WO2022148298A1/zh active Application Filing
- 2021-12-30 US US18/259,675 patent/US20240054059A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235715A (zh) * | 2013-03-27 | 2013-08-07 | 青岛中星微电子有限公司 | 一种片上***SoC命令处理的方法、装置及芯片 |
CN105389235A (zh) * | 2015-10-28 | 2016-03-09 | 致象尔微电子科技(上海)有限公司 | 一种异构多核调试***与方法 |
US20190272217A1 (en) * | 2018-03-02 | 2019-09-05 | SK Hynix Inc. | Memory system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2022148298A1 (zh) | 2022-07-14 |
US20240054059A1 (en) | 2024-02-15 |
CN112732501A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112732501B (zh) | 一种测试方法及多处理器soc芯片 | |
CN112099941B (zh) | 实现硬件加速处理的方法、设备和*** | |
US7634388B2 (en) | Providing policy-based operating system services in an operating system on a computing system | |
US6785892B1 (en) | Communications between partitioned host processors and management processor | |
KR100733852B1 (ko) | 계산기 시스템 | |
CN100578456C (zh) | 信息处理装置、进程控制方法 | |
CN109144619B (zh) | 图标字体信息处理方法、装置及*** | |
US8615586B2 (en) | Discovery of logical images at storage area network endpoints | |
RU2397535C2 (ru) | Устройство обработки информации, способ управления областью памяти и компьютерная программа | |
KR20140034246A (ko) | 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스 | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US8141084B2 (en) | Managing preemption in a parallel computing system | |
JPH10320282A (ja) | 仮想キャッシュ・コントロール方法及び装置 | |
US5745763A (en) | Method and apparatus for device driver funnelling | |
CN115794419B (zh) | Gpu的调控***及方法 | |
CN109376104B (zh) | 一种芯片及基于其的数据处理方法和装置 | |
CA3129982A1 (en) | Method and system for accessing distributed block storage system in kernel mode | |
US8001364B2 (en) | Dynamically migrating channels | |
CN111078516A (zh) | 分布式性能测试方法、装置、电子设备 | |
CN115525417A (zh) | 数据通信方法、通信***及计算机可读存储介质 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
CN115421787A (zh) | 指令执行方法、装置、设备、***、程序产品及介质 | |
CN101411165B (zh) | 利用代理服务器控制嵌入式设备与外部的通信的方法和设备 | |
US20140149691A1 (en) | Data processing system and data processing method | |
CN115878517A (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 |