CN118132151A - 多处理器并行架构中识别首个同步异常处理器的方法 - Google Patents
多处理器并行架构中识别首个同步异常处理器的方法 Download PDFInfo
- Publication number
- CN118132151A CN118132151A CN202410136322.2A CN202410136322A CN118132151A CN 118132151 A CN118132151 A CN 118132151A CN 202410136322 A CN202410136322 A CN 202410136322A CN 118132151 A CN118132151 A CN 118132151A
- Authority
- CN
- China
- Prior art keywords
- cpu
- cpus
- identifying
- instruction address
- instruction
- 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 34
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 27
- 230000002159 abnormal effect Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了多处理器并行架构中识别首个同步异常处理器的方法,其原理是:对每个CPU执行定时中断,得到各自的指令地址集合,然后通过取交集的方式检测不同CPU之间是否有相同的指令地址,根据取交集的结果识别指令地址异常于其他CPU的处理器。该多处理器并行架构中识别首个同步异常处理器的方法,解决了在进行定时中断时出现获取程序指令不精确的问题以及现有的关于多核处理器中异步处理器的识别方法中根据异常访存源地址进行计算和分析需要花费一定时间,导致延迟的问题。
Description
技术领域
本发明属于多处理器同步异常判断技术领域,涉及多处理器并行架构中识别首个同步异常处理器的方法。
背景技术
在多核处理器中,每个内核都有独立的计算能力和内存资源。这些内核可以协同工作,以实现更高的性能和并行处理能力。然而,在某些情况下,可能会出现内核异常,这可能导致系统崩溃或数据丢失。因此,识别出发生异常的内核处理器对于确保数据安全和系统稳定性至关重要。
现有的多核处理器中异步处理器识别一般有以下两种方案。
第一种是需要先确定一个内核为主内核,每个内核可以预设一个表示其运行状态的参数,主内核可以通过读取其他内核的状态参数,来判断其他内核是否出现异常。
第二种是通过内存保护机制为每一个内核设有一个被保护的存储地址,可以根据内存保护机制下记录的异常访存源地址,分析判断造成异常的内核。
但是,第一种通过主内核判断异常内核的方法,其依赖于主内核能够读取和判断其他内核的状态参数,如果主内核出现问题,可能无法正确检测其他内核的异常。第二种根据异常访存源地址进行分析和判断可能需要一定的时间,这会导致一定的延迟,降低了实时性能。
发明内容
本发明的目的是提供一种多处理器并行架构中识别首个同步异常处理器的方法,来解决在进行定时中断时出现获取程序指令不精确的问题以及现有的关于多核处理器中异步处理器的识别方法中根据异常访存源地址进行计算和分析需要花费一定时间,导致延迟的问题。
为了达到上述目的,本发明所采用的技术方案是:多处理器并行架构中识别首个同步异常处理器的方法,对每个CPU执行定时中断,得到各自的指令地址集合,然后通过取交集的方式检测不同CPU之间是否有相同的指令地址,根据取交集的结果识别指令地址异常于其他CPU的处理器。
作为本发明的一种优选的技术方案,获取各自的指令地址集合步骤具体如下:
通过事先分析CPU程序的每一条指令,获取每条指令的指令链表单元;
当中断响应时,硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来,而PC寄存器指向的就是下一条即将运行的指令在内存里的地址;对CPU执行定时中断,可以得到当前指令地址Ia;并以当前指令地址为基准在指令链表中进行后向回溯N个指令链表单元(事先设定,如N=3,),前向预取M条指令(事先设定,如M=2);并对各个CPU,都把(1+M+N)个指令链表中的指令地址枚举出来构成一个序列集合S={Ia_1,…,Ia_(1+M+N)},即CPU指令地址集合。
作为本发明技术方案的进一步改进,根据取交集的结果识别指令地址异常于其他CPU的处理器,具体为:
首先每个CPU在运行时是各自独立的,判断首次出现的异步CPU的过程可以执行一个K次循环,K为CPU个数,以第i个CPU为例,i=1,2,…,K,然后判断该CPU与其他CPU是否一致(假设K个CPU中只有一个CPU会产生异步);
假设异步CPU的异步检测结果计为k,k的初始值为-1,表示有2个及以上的CPU异步,若k=0,则各处理器核心均同步;若k>0,则第i个处理器核心异步,i=1,2,…,K。
作为本发明的一种优选的技术方案,每条链表单元均包括当前指令地址、上一条指令地址、下一条指令地址。
作为本发明的一种优选的技术方案,具体按照以下步骤实施:
首先对于第i个CPU,将除该CPU外的其他各个CPU的集合S取交集,记为I,然后统计I中的元素个数;表达式为:I=S1∩S2...∩Si-1∩Si+1...∩SK,其中S1、S2、…、Si-1、Si-2、…、SK表示为除第i个CPU外,其余各个CPU的集合S;
若I为空集,则结束本CPU处理过程,此时不能断定异步处理器,然后切换到下一个CPU,并跳转到第一步继续下一次循环;若I为非空集,则将I与第i个CPU的集合S再取一次交集,计为IS,其表达式为:IS=I∩Si;
继续统计IS中元素个数,若IS为空集,则第i个CPU出现异常,执行k=i,循环结束;若IS为非空集,则各CPU均同步执行,执行k=0,无需进一步判断,循环结束;最后根据执行k的结果生成结论,若k=0,则K个CPU均同步;若k>0,则第k个CPU异步;若k=-1,则有两个或者更多CPU出现异步。
本发明的有益效果是:本发明的多处理器并行架构中识别首个同步异常处理器的方法,具有以下优点:
(1)本发明通过定时中断获取指令地址集合,并进行交集计算,可以实时地检测处理器的状态。可以保持较好的实时性能,及时发现首个同步异常处理器的存在。
(2)本发明作为一种相对简单有效的方法,不需要额外的状态参数或内存保护机制,可以在较低的开销下实现。
(3)本发明通过取交集的方式,可以准确地检测不同CPU之间是否有相同的指令地址,从而确定是否有首个同步异常处理器出现。可以提供较高的精确性,避免误判。
附图说明
图1是本发明的一种多处理器并行架构中识别首个同步异常处理器的原理图。
具体实施方式
下面结合附图说明和具体实施例对本发明的技术方案做进一步的详细说明。
实施例1
本发明的多处理器并行架构中识别首个同步异常处理器的方法,其原理是:对每个CPU执行定时中断,得到各自的指令地址集合,然后通过取交集的方式检测不同CPU之间是否有相同的指令地址,根据取交集的结果识别指令地址异常于其他CPU的处理器。
本发明旨在利用每个CPU获得相应的程序指令地址集合,通过对集合取交集的方式来判断每个集合是否含有相同的地址元素,从而可以判断多核处理器并行架构中是否出现了处理器的同步异常,实现成本低,不受器件工作模式的限制,具有普遍适用性,在某种程度上排除其他因素对同步异常的影响,提高判断的准确性。
与现有的多核处理器中异步处理器识别方法相比,本发明的多处理器并行架构中识别首个同步异常处理器的方法,具有以下优点:
(1)本发明通过定时中断获取指令地址集合,并进行交集计算,可以实时地检测处理器的状态。可以保持较好的实时性能,及时发现首个同步异常处理器的存在。
(2)本发明作为一种相对简单有效的方法,不需要额外的状态参数或内存保护机制,可以在较低的开销下实现。
(3)本发明通过取交集的方式,可以准确地检测不同CPU之间是否有相同的指令地址,从而确定是否有首个同步异常处理器出现。可以提供较高的精确性,避免误判。
实施例2
如图1所示,与实施例1不同的是,在发明的一种多处理器并行架构中识别首个同步异常处理器的方法中,
获取各自的指令地址集合步骤具体如下:
通过事先分析CPU程序的每一条指令,获取每条指令的指令链表单元,每条链表单元均包括当前指令地址、上一条指令地址、下一条指令地址,其结构为:InsLink={Ia,La,Na}。
表一 指令地址名称
InstructAddress | 指令地址 |
LastInstructAddress | 上一条指令地址 |
NextInstructAddress | 下一条指令地址 |
当中断响应时,硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来,而PC寄存器指向的就是下一条即将运行的指令在内存里的地址;对CPU执行定时中断,可以得到当前指令地址Ia;并以当前指令地址为基准在指令链表中进行后向回溯N个指令链表单元(事先设定,如N=3,),前向预取M条指令(事先设定,如M=2);并对各个CPU,都把(1+M+N)个指令链表中的指令地址枚举出来构成一个序列集合S={Ia_1,…,Ia_(1+M+N)},即CPU指令地址集合。
根据取交集的结果识别指令地址异常于其他CPU的处理器,具体为:
首先每个CPU在运行时是各自独立的,判断首次出现的异步CPU的过程可以执行一个K次循环,K为CPU个数,以第i个CPU为例,i=1,2,…,K,然后判断该CPU与其他CPU是否一致(假设K个CPU中只有一个CPU会产生异步);
假设异步CPU的异步检测结果计为k,k的初始值为-1,表示有2个及以上的CPU异步,若k=0,则各处理器核心均同步;若k>0,则第i个处理器核心异步,i=1,2,…,K。
实施例3
如图1所示,本发明的多处理器并行架构中识别首个同步异常处理器的方法,具体按照以下步骤实施:
首先对于第i个CPU,将除该CPU外的其他各个CPU的集合S取交集,记为I,然后统计I中的元素个数;表达式为:I=S1∩S2...∩Si-1∩Si+1...∩SK,其中S1、S2、…、Si-1、Si-2、…、SK表示为除第i个CPU外,其余各个CPU的集合S;
若I为空集,则结束本CPU处理过程,此时不能断定异步处理器,然后切换到下一个CPU,并跳转到第一步继续下一次循环;若I为非空集,则将I与第i个CPU的集合S再取一次交集,计为IS,其表达式为:IS=I∩Si;
继续统计IS中元素个数,若IS为空集,则第i个CPU出现异常,执行k=i,循环结束;若IS为非空集,则各CPU均同步执行,执行k=0,无需进一步判断,循环结束;最后根据执行k的结果生成结论,若k=0,则K个CPU均同步;若k>0,则第k个CPU异步;若k=-1,则有两个或者更多CPU出现异步。
Claims (5)
1.多处理器并行架构中识别首个同步异常处理器的方法,其特征在于,对每个CPU执行定时中断,得到各自的指令地址集合,然后通过取交集的方式检测不同CPU之间是否有相同的指令地址,根据取交集的结果识别指令地址异常于其他CPU的处理器。
2.根据权利要求1所述的多处理器并行架构中识别首个同步异常处理器的方法,其特征在于:获取各自的指令地址集合步骤具体如下:
通过事先分析CPU程序的每一条指令,获取每条指令的指令链表单元;
当中断响应时,硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来,而PC寄存器指向的就是下一条即将运行的指令在内存里的地址;对CPU执行定时中断,可以得到当前指令地址Ia;并以当前指令地址为基准在指令链表中进行后向回溯N个指令链表单元,前向预取M条指令;并对各个CPU,都把1+M+N个指令链表中的指令地址枚举出来构成一个序列集合S={Ia_1,…,Ia_(1+M+N)},即CPU指令地址集合。
3.根据权利要求2所述的多处理器并行架构中识别首个同步异常处理器的方法,其特征在于:根据取交集的结果识别指令地址与其他CPU同步异常的处理器,具体为:
首先每个CPU在运行时是各自独立的,判断首次出现的异步CPU的过程可以执行一个K次循环,K为CPU个数,以第i个CPU为例,i=1,2,…,K,然后判断该CPU与其他CPU是否一致;
假设异步CPU的异步检测结果计为k,k的初始值为-1,表示有2个及以上的CPU异步,若k=0,则各处理器核心均同步;若k>0,则第i个处理器核心异步,i=1,2,…,K。
4.根据权利要求3所述的多处理器并行架构中识别首个同步异常处理器的方法,其特征在于:每条链表单元均包括当前指令地址、上一条指令地址、下一条指令地址。
5.根据权利要求4所述的多处理器并行架构中识别首个同步异常处理器的方法,其特征在于:具体按照以下步骤实施:
首先对于第i个CPU,将除该CPU外的其他各个CPU的集合S取交集,记为I,然后统计I中的元素个数;表达式为:I=S1∩S2...∩Si-1∩Si+1...∩SK,其中S1、S2、…、Si-1、Si-2、…、SK表示为除第i个CPU外,其余各个CPU的集合S;
若I为空集,则结束本CPU处理过程,此时不能断定异步处理器,然后切换到下一个CPU,并跳转到第一步继续下一次循环;若I为非空集,则将I与第i个CPU的集合S再取一次交集,计为IS,其表达式为:IS=I∩Si;
继续统计IS中元素个数,若IS为空集,则第i个CPU出现异常,执行k=i,循环结束;若IS为非空集,则各CPU均同步执行,执行k=0,无需进一步判断,循环结束;最后根据执行k的结果生成结论,若k=0,则K个CPU均同步;若k>0,则第k个CPU异步;若k=-1,则有两个或者更多CPU出现异步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410136322.2A CN118132151A (zh) | 2024-01-31 | 2024-01-31 | 多处理器并行架构中识别首个同步异常处理器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410136322.2A CN118132151A (zh) | 2024-01-31 | 2024-01-31 | 多处理器并行架构中识别首个同步异常处理器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132151A true CN118132151A (zh) | 2024-06-04 |
Family
ID=91236920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410136322.2A Pending CN118132151A (zh) | 2024-01-31 | 2024-01-31 | 多处理器并行架构中识别首个同步异常处理器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132151A (zh) |
-
2024
- 2024-01-31 CN CN202410136322.2A patent/CN118132151A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627335B2 (en) | Method and apparatus for data space profiling of applications across a network | |
US8813055B2 (en) | Method and apparatus for associating user-specified data with events in a data space profiler | |
US7836435B2 (en) | Checking for memory access collisions in a multi-processor architecture | |
US8166462B2 (en) | Method and apparatus for sorting and displaying costs in a data space profiler | |
US8136124B2 (en) | Method and apparatus for synthesizing hardware counters from performance sampling | |
US8032875B2 (en) | Method and apparatus for computing user-specified cost metrics in a data space profiler | |
US8640114B2 (en) | Method and apparatus for specification and application of a user-specified filter in a data space profiler | |
US8176475B2 (en) | Method and apparatus for identifying instructions associated with execution events in a data space profiler | |
CN100449477C (zh) | 用于嵌入式系统的实时调试器接口 | |
US5134701A (en) | Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities | |
US20020147965A1 (en) | Tracing out-of-order data | |
US7698690B2 (en) | Identifying code that wastes time performing redundant computation | |
CN106293881B (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
JP2011181068A (ja) | タイムスタンプを生成するための方法、装置およびトレースモジュール | |
US10733009B2 (en) | Information processing apparatus and information processing method | |
EP0530816A2 (en) | Microprocessor with cache memory and trace analyzer therefor | |
CN113010341A (zh) | 一种故障内存定位的方法和设备 | |
CN111459815B (zh) | 一种实时计算引擎测试方法和系统 | |
US9195524B1 (en) | Hardware support for performance analysis | |
CN118132151A (zh) | 多处理器并行架构中识别首个同步异常处理器的方法 | |
US7222064B1 (en) | Instruction processor emulation having inter-processor messaging accounting | |
JP2014182478A (ja) | 性能プロファイリング装置及び性能プロファイリング方法 | |
US7617416B2 (en) | System, method, and apparatus for firmware code-coverage in complex system on chip | |
US20040153790A1 (en) | Apparatus and method for detecting address characteristics for use with a trigger generation unit in a target processor | |
Bramley et al. | On the measurement of safe fault failure rates in high-performance compute processors |
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 |