CN107451019B - 处理器核心中的自测试 - Google Patents

处理器核心中的自测试 Download PDF

Info

Publication number
CN107451019B
CN107451019B CN201710216193.8A CN201710216193A CN107451019B CN 107451019 B CN107451019 B CN 107451019B CN 201710216193 A CN201710216193 A CN 201710216193A CN 107451019 B CN107451019 B CN 107451019B
Authority
CN
China
Prior art keywords
self
test
circuitry
memory transaction
processor core
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
CN201710216193.8A
Other languages
English (en)
Other versions
CN107451019A (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.)
ARM Ltd
Original Assignee
ARM 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 ARM Ltd filed Critical ARM Ltd
Publication of CN107451019A publication Critical patent/CN107451019A/zh
Application granted granted Critical
Publication of CN107451019B publication Critical patent/CN107451019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2236Detection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2236Detection 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/2242Detection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请涉及处理器核心中的自测试。公开了用于处理器核心自测试的装置和方法。装置包括处理器核心电路,用于通过执行数据处理指令来执行数据处理操作。单独的自测试控制电路使得处理器核心电路暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态。还存在自测试支持电路,其中处理器核心电路响应于自测试指令序列,来通过自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。

Description

处理器核心中的自测试
技术领域
本公开涉及数据处理领域。更具体地,涉及在处理器核心中进行自测试以识别故障。
背景技术
处理器核心可以被提供有识别处理器核心随时间发展的故障的能力。自测试的一种方法是,提供以锁步方式操作的两个处理器核心,从而可以通过参考一个核心的输出来识别另一核心的输出中的差异。另一种方法是基于软件的,该基于软件的方法可能优于双核锁步方法,因为其具有减少的面积并节省功率。然而,当代处理器核心的程度和复杂性可能意味着,这样的软件本身可能是巨大的和复杂的。此外,通常需要在频繁地执行自测试软件从而快速识别核心中的故障与接受执行这种自测试软件产生的更大中断之间进行平衡。自测试软件不仅暂时将核心的“真实”数据处理置于保持状态,而且通常将执行自测试软件的结果写入存储器。根据实现处理器核心的上下文,自测试功能可能需要相对较高的“故障分级”能力。例如,可能需要提供大于90%的故障分级能力(即,自测试能够识别可能出现的故障中的至少90%)。事实上,在一些要求严格的安全性的实现方式中,可能需要故障分级能力大于99%。为了使用自测试软件来提供这种故障分级能力,可能需要投入大量的精力来编写和迭代优化这种软件,因此当需要非常高的故障分级能力时,双核锁步方法可能是优选的。
发明内容
在至少一些实施例中,本技术提供了一种装置,包括:处理器核心电路,用于通过执行数据处理指令来执行数据处理操作;自测试控制电路,用于使得处理器核心电路暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态;以及自测试支持电路,其中处理器核心电路响应于自测试指令序列,来通过自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。
在至少一些实施例中,本技术提供了一种操作数据处理装置的方法,包括以下步骤:通过在处于第一状态中的处理器核心电路中执行数据处理指令来执行数据处理操作;从自测试控制电路发信令,以使得处理器核心电路暂时从第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态;以及通过处理器核心电路中的自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。
在至少一些实施例中,本技术提供了一种设备,包括:用于通过执行数据处理指令来执行数据处理操作的装置;用于控制自测试处理的装置,自测试处理包括使得用于执行数据处理操作的装置暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动用于执行数据处理操作的装置的情况下返回执行数据处理指令的第一状态;以及用于支持自测试处理的装置,其中用于执行数据处理操作的装置响应于自测试指令序列,来通过用于支持自测试处理的装置将至少一个自测试数据条目导出到用于控制自测试处理的装置。
附图说明
下面将通过示例的方式参考附图中所示出的实施例来进一步描述本技术,其中:
图1示意性地示出了一个实施例中的装置,包括处理器核心和自测试控制器;
图2示意性地示出了一个实施例中的装置,包括双核处理器和自测试控制器;
图3示意性地示出了一个实施例中的处理器核心,其中指令类别比特位被导出到自测试控制器;
图4示意性地示出了一个实施例中的处理器核心的组件,其中存储器事务指示被从总线接口单元导出到自测试控制器;
图5示意性地示出了一个实施例中的总线接口单元和存储缓冲器的更多细节;
图6是示出一个实施例中的由定时器触发的处理器核心的上下文切换的时序图;
图7是示出一个实施例中的响应于预定事件的处理器核心的上下文切换的时序图;
图8示出了根据一个实施例的方法进行的一系列步骤;
图9示出了根据一个实施例的方法进行的一系列步骤;以及
图10示出了根据一个实施例的方法进行的一系列步骤。
具体实施方式
至少一些实施例提供了一种装置,包括:处理器核心电路,用于通过执行数据处理指令来执行数据处理操作;自测试控制电路,用于使得处理器核心电路暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态;以及自测试支持电路,其中处理器核心电路响应于自测试指令序列,来通过自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。
本技术提供了组合软件和硬件两个方面的自测试方法。在处理器核心外部提供自测试控制器(硬件监视器),用于管理自测试。该硬件监视器可以以多种不同的方式被提供,例如可以被提供作为核心(CPU)的外围设备,其针对需要执行的自测试发出命令。另外,提供了自测试支持电路,通过该自测试支持电路可以将自测试数据条目导出到自测试控制电路。这意味着自测试数据条目以非常直接的方式被提供给自测试控制电路。这与现有技术基于软件的自测试方法形成对照,其中自测试数据条目的导出通常包括将这些自测试数据条目写入存储器(例如,以循环冗余校验(CRC)值的形式),这需要自测试软件控制核心的操作的许多方面,例如包括附加指令(例如,存储指令)以将该数据通过存储器系统传播到存储器。因此,本技术提供的是,自测试数据条目更直接可见,尽管来自核心内的潜在“深处”。另外,本技术不要求处理器核心进入特殊的自测试状态以执行其自测试,因此处理器核心可以借助于它的正常上下文切换机制容易地在它通常的数据处理和自测试之间进行切换。此外,经过一段时间的自测试,处理器核心可以在不需要重新启动(重设)自身的情况下快速返回执行(常规)数据处理指令。因此,支持常规数据处理和自测试之间的快速上下文切换。
在一些实施例中,处理器核心电路能够在返回执行数据处理指令的第一状态之后,完成至少一个自测试数据条目的导出。自测试支持电路(通过该自测试支持电路将自测试数据条目导出到自测试控制电路)提供独立的路径,具体地,独立于处理器核心的存储器接口/系统,由此经过一段时间的自测试之后,不需要在可以恢复执行数据处理指令(在第一状态中)之前通过存储器系统的特定阶段对自测试数据条目进行任何“清除”。
依赖于将要从处理器核心被导出到自测试控制电路的特定自测试数据条目,以及自测试数据条目源自处理器核心中的哪里,自测试支持电路可以采取各种形式。在一个实施例中,自测试支持电路包括从处理器核心电路到自测试控制电路的专用自测试数据路径。因此,支持将自测试数据条目高效并且独立地导出到自测试支持电路。
在一些实施例中,自测试支持电路包括指令类型指示电路,并且至少一个自测试数据条目包括由指令类型指示电路提供的至少一个指令类型指示,其中自测试控制电路响应于接收至少一个指令类型指示,来维持指令类型计数,并且其中自测试控制电路能够将指令类型计数与预期指令类型计数进行比较。因此,自测试控制电路可以被配置为监视正在由处理器核心执行的数据处理指令的指令类型。此外,指令类型表示处理器核心内通常已经存在的信号(意味着,没有自测试能力的处理器核心通常具有该信号),由此使得能够导出指示类型指示所需要的附加自测试支持电路是不太重要的。该自测试控制电路可以维持指令类型计数,例如对一个特定指令类型的实例进行计数(然而也考虑了对多个指令类型进行计数),然后将该计数与预期的指令类型计数(基于已经执行的已知的自测试指令序列)进行比较。在指令类型计数和预期的计数出现差异的情况下,这表明在指令类型指示从核心中“被挑出”之前核心中已出现故障。注意,不需要指导处理器核心是如何构造以针对该技术进行工作的,这意味着这些监视技术可以应用于广泛的处理器核心电路,并且实际上不需要针对具体处理器核心对自测试能力进行费时费力地配置。例如,在系统设计者对处理器核心的特定配置和布局具有灵活性的情况下,不需要针对自测试技术进行重新配置,而纯基于软件的方法通常需要进行重新配置。
提供指令类型指示的指令类型指示电路可以被提供在处理器核心电路内的一系列位置。例如,在一些实施例中,处理器核心电路包括指令提取电路,并且指令类型指示电路被包括在指令提取电路内。例如,指令类型可以在指令提取电路中被用来确定给定的指令是如何在处理器核心电路的部分(在指令提取电路之后)中被处理的。一个示例是,其中处理器核心电路包括多个执行流水线,并且向这些执行流水线中的一个发出指令是依赖于指令类型的,因为每个执行流水线可以具有它自己的专长。
实际上,本技术认识到,为了自测试的目的,指令类型指示可以被维持到流水线的稍后阶段(即使流水线的这些后面部分可能不会明确地需要它),这样它可以被用作自测试上下文内的指示符。指令类型指示可以在沿着执行流水线的多个点处从处理器核心电路被导出,从而提供一种机制,通过该机制可以支持更细粒度的故障位置识别。
如上所述,指令类型指示可以从处理器核心电路内的一系列位置被导出,并且在一些实施例中,处理器核心电路包括指令引退电路,并且指令类型指示电路被包括在指令引退电路之内。因此,虽然指令类型指示可能不需要被维持到指令引退电路(即,实质上是执行流水线的结束),但是在执行流水线内维持这个信息到这个点,意味着自测试可以识别执行流水线中到这个点为止的故障。
自测试支持电路也可以在处理器核心电路内以其他方式被实现。例如在一些实施例中,处理器核心电路包括存储器事务缓冲电路,用于在存储器事务请求被发出到存储器系统之前临时保持存储器事务请求,其中自测试支持电路包括存储器事务请求指示电路,并且至少一个自测试数据条目包括由存储器事务请求指示电路提供的至少一个存储器事务请求指示,其中自测试控制电路响应于接收至少一个存储器事务请求指示,来维持存储器事务请求计数,并且其中自测试控制电路能够将存储器事务请求计数与预期存储器事务请求计数进行比较。因此,存储器事务请求的指示表示可以被导出到自测试控制电路的自测试数据条目的另一示例,并且这样的示例中的自测试支持电路包括存储器事务请求指示电路,例如形成总线接口单元和/或存储缓冲器的一部分。自测试控制电路可以通过将看到的(计数的)存储器事务请求的数量与预期的数量进行比较来识别处理器核心电路中与存储器事务相关的故障。
在一些示例中,自测试支持电路包括在存储器事务缓冲电路之前的存储器事务请求指示电路和在存储器事务缓冲电路之后的存储器事务请求指示电路,并且至少一个自测试数据条目包括来自存储器事务缓冲电路之前的和之后的存储器事务请求指示。因此,不仅可以在缓冲电路之前和之后检查存储器事务请求的数量是否正确,而且例如在缓冲电路具有一定配置(即,当存储器事务请求与相同或相似的(小偏移量)地址相关时它们被合并到缓冲器中的相同条目)的情况下,监视缓冲器之前和之后的存储器事务请求的数量可以识别该进程是否正确发生、或者是否发生故障。
存储器事务缓冲电路(例如,存储缓冲器)可以被配置为尽可能快地不断地排出它的条目(既,将这些请求通过存储器系统传递到外部存储器)。事实上,存储系统本身可能会反向施压,以使得存储缓冲器尽快排出它的条目。这可能在监视存储器事务缓冲电路内的存储器事务请求的数量方面产生困难。为了解决这个问题,本技术在一些示例中提供了自测试支持电路,包括存储器事务阻塞电路,用于根据来自自测试控制电路的阻塞信号阻止向存储器系统发出存储器事务请求。因此,阻止发出缓冲的存储器事务请求的能力使得能够临时地建立存储器事务缓冲电路的稳定状态,以便于存储器事务请求计数。
用于断言和解除阻塞信号的标准可以被不同地配置,但在一些示例中,自测试控制电路能够断言阻塞信号,直到从存储器事务缓冲电路接收到关于存储器事务缓冲电路充满的指示。这不仅允许更彻底地测试存储器事务缓冲电路,而且还提供用于确定何时解除阻塞信号的有效机制。
存在多种确定存储器事物缓冲电路充满的方式,但是在一些示例中,这是通过监视进入存储器事务缓冲电路的存储器事务请求的数量来完成的,其中知道缓冲电路可以容纳多少存储器事务请求。
然而,本技术认识到,如上所述,存储器事务缓冲电路可以将存储器事务请求合并为单个条目,因此在缓冲电路接收的存储器事务请求的数量与作为结果被占用的条目的数量之间可能不存在简单对应关系。因此,在一些实施例中,关于存储器事务缓冲电路充满的指示包括由存储器事务缓冲电路生成的缓冲器充满信号。因此,当缓冲器中的所有条目都被占用时,缓冲器生成缓冲器充满信号。
然而,本技术进一步认识到,当寻求填充存储器事务缓冲电路时,可能发生死锁情况,这可能阻止存储器事务缓冲电路达到充满状态。例如,如果地址寄存器中的故障导致地址更改,则缓冲电路可能无法向所要求的条目添加事务请求,因为用于该地址的条目(错误地)被完全占用,并且系统然后挂起,等待该条目清除(其由于阻塞信号的断言而不能进行)。为了解决这个问题,本技术提供了具有定时器电路的自测试控制电路的一些示例,并且自测试控制电路响应于来自定时器电路的已逝时间段信号(elapsed period signal),来断言超时错误信号。例如,当阻塞信号被断言并且存储器事务缓冲器电路开始填充时,可以启动定时器,并且一旦缓冲器和电路充满,在已逝时间段期满之前,则使定时器清零。如果达到已逝时间段,则这是可能会发生死锁的指示,并且在这种情况下可以通知错误。
自测试控制电路可以使得处理器电路以各种方式在第一状态与第二状态之间进行切换。在一些示例中,自测试控制电路能够使得处理器核心电路在返回第一状态之前在执行自测试指令序列的第二状态中操作预定时间段。因此,可以设定预定时间段,使得自测试软件的运行时间不会显著影响处理器核心电路通常的数据处理操作。当处于第二状态(执行自测试指令序列)时,对处理器核心的中断可能被禁止,并且如果处理器核心仍然要快速响应中断(在某些实现方式中可能是重要的),则有限运行时间的自测试软件是必要的。
可以提供另一种机制以支持自测试功能对核心的正常操作的这种有限中断,即,通过将优先级应用于被执行的软件。例如,在一些实施例中,处理器核心电路能够在由相应的数据处理指令集定义的一个以上应用的数据处理操作之间进行切换,其中每个应用具有预定义优先级,并且处理器核心电路响应于针对比当前执行的应用的预定义优先级具有更高的预定义优先级的应用的执行请求,来暂停当前执行的应用并且执行具有更高的预定义优先级的应用,并且其中自测试指令序列被定义为具有比装置中可用的最高优先级低的预定义优先级。该配置然后确保自测试指令序列不能主导并且总是可以被更高优先级的应用结束,从而向系统设计者(特别是软件作者)提供机制,以确保关键应用总是可以被保证优先于自测试应用被执行。
自测控制电路本身可以以各种方式被控制,但是在一些示例中,处理器核心发出一个或多个命令以配置自测试控制电路和/或使其执行特定任务。例如,在一些实施例中,自测试控制电路通过执行以下操作中的至少一个来响应至少一个接收到的命令:配置它自己和处理器核心电路以用于在第二状态中进行操作;使得处理器核心电路切换到第二状态;以及使得处理器核心电路切换回第一状态,并且根据从处理器核心电路接收的至少一个自测试数据条目来确定自测试结果。
执行自测试的结果(特别是当识别到在自测试控制电路接收到的自测试数据条目与预期之间出现差异时),可以以各种方式来处理。在一些示例中,装置还包括错误管理控制电路,其中自测试控制电路能够在处理器核心电路完成执行自测试指令序列之后发出自测试结果,并且错误管理控制电路响应于自测试结果来发起错误响应。错误管理电路可以以多种方式响应于这种故障识别,但是在一些示例中,错误响应包括禁用装置的至少一个组件。错误管理电路还可以基于自测试结果生成故障分级。
一些示例提供了一种操作数据处理装置的方法,包括以下步骤:通过在处于第一状态中的处理器核心电路中执行数据处理指令来执行数据处理操作;从自测试控制电路发信令,以使得处理器核心电路暂时从第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态;以及通过处理器核心电路中的自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。
一些示例提供了一种设备,包括:用于通过执行数据处理指令来执行数据处理操作的装置;用于控制自测试处理的装置,包括使得用于执行数据处理操作的装置暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动用于执行数据处理操作的装置的情况下返回执行数据处理指令的第一状态;以及用于支持自测试支持处理的装置,其中用于执行数据处理操作的电路响应于自测试指令序列来通过用于支持自测试处理的装置将至少一个自测试数据条目导出到用于控制自测试处理的装置。
现在将参考附图描述一些特定示例实施例。
图1示意性地示出了一个实施例中的装置10,包括处理器12、SBIST(自测试)控制器14、总线仲裁器16、和错误管理控制器18。处理器12包括处理器核心20,处理器核心20在图1中由功能电路22、外围端口24和RAM 26表示。级别2(L2)高速缓存器28也被示出。处理器核心20经由其外围端口24和示出的总线与外围设备进行通信,总线在示例中被示出为ARMAXI总线。提供了总线仲裁器16,使得多个外围设备30和SBIST控制器14可以全部耦合到相同的总线结构。定义了多个命令,通过这些命令,处理器核心20可以设置SBIST控制器14的特定配置并定义其操作。在这个示例中,这些命令是“配置”(具有各种相关联的配置参数),其针对核心中应当被监视的部分和监视的预期结果来配置SBIST控制器。在示出的示例中,核心20的监视包括指令类型监视,其中SBIST控制器14接收正在由核心20的功能电路22执行的指令类型的指示。因此,SBIST控制器14还被提供有指令类型计数器32,其中它维持至少一个指令类型的计数。SBIST控制器14还包括定时器34,其功能将在下面更详细地进行讨论。定时功能也可以由单独计时器(构成外围设备30中的一个)提供。“监视”命令(由SBIST控制器14从核心接收)配置控制器,以开始监视核心。最后,“比较”命令结束监视,并且然后控制器将监视结果与预期指令类型计数32进行比较。然后将自测试的结果(SBIST结果)从SBIST控制器14发送给错误管理控制器18。错误管理控制器可以响应于指示故障的SBIST结果,生成故障分级、或者例如禁用系统的特定组件。注意,指令类型通过专用路径从功能电路22被直接发送到SBIST控制器14,而不是通过外围端口24和总线系统。
图2示意性地示出了另一示例系统50,其具有与图1的示例共同的多个组件,并且这些组件具有相同的参考编号,并且在此不再赘述。图1所示出的示例设备10与图2所示出的示例设备50之间的一个区别是在图2的示例中存在附加的处理器核心54。该处理器核心54被类似地配置,具有功能电路58、RAM 56和端口60(通过该端口60可以与外围设备进行通信),其中在图2的示例中外围端口60是低延迟外围设备端口(LLPP),实现快速通信。功能电路58和功能电路22都具有专用路径,通过该专用路径它们能够将内部状态的条目(即,自测试数据条目)直接传递到SBIST控制器62。SBIST控制器62在图2的示例中被示出为维持事务计数64,这使得SBIST控制器62能够监视任一处理器核心内的存储器事务请求并与预期值进行比较。图2中还示出了命令控制电路66,其使得控制器能够根据上述通过总线接收的“配置”、“监视”和“比较”命令被配置。功能电路22还包括应用调度器68,使得多个应用能够被功能电路22并发(但不是同时)执行,例如执行数据处理操作的“常规”应用、和用于将数据条目传递到SBIST控制器62的自测试应用。
图3示意性地示出了一个示例实施例中的处理器核心70的一些组件,在该示例实施例中指令类型的自测试监视被执行。示出了处理器核心70的流水线结构。本领域普通技术人员将理解,仅示出了选择的组件,以便为本技术提供适当的上下文。处理器核心的各种其它组件通常也将以本领域普通技术人员熟悉的方式存在。图3中示出了存储器接口72、指令提取电路74、指令缓存76、提取队列78、预解码电路80、分支预测电路82、指令队列84、解码电路86和88、以及执行电路90(包括执行单元92和引退阶段94)。本领域普通技术人员将熟悉其中这样的流水线结构从存储器中获取指令、对指令进行排队、发出用于执行的指令、执行指令、并最终引退指令的方式。图3中示出的布置具体被配置为将指令类型指示符导出到SBIST控制器,并且参考指令队列84可以看出,其中“类别比特位”(通过与指令相关联的指令队列被传播)可以通过处理器核心70的外围上的引脚96被导出到SBIST控制器。根据处理器核心响应的不同类型的指令的数量,指示给定指令类型所需的比特位的数量将会变化,但是应当理解,这通常将是相对有限数量的比特位,由此导出紧凑指示符。因此,SBIST控制器能够对经过执行流水线中的这个点的特定类型的指令的数量进行计数,并且在与预期计数相比出现差异的情况下,在这个点之前的电路中的故障(例如,“卡住”故障)可以被识别。类别比特位被提供与处理器核心中的指令队列中的指令相关联(如图3所示出的),这样在指令队列末尾,可以将给定指令适当地发出给两个解码单元86或88(它们具有与跟随在各自之后的执行电路的特定设置相关的专用配置)中的一个。以前,类别比特位不会被传播超过这个点(如图3中示出的提取与执行之间的边界),但是在图3中示出的示例的一个变型中,核心可以“人为地”维护这个类别比特位到执行流水线末尾处的最后引退阶段94为止。这样做能够识别到最后引退阶段为止的错误。从执行流水线的最后阶段导出类别比特位,可以在从指令队列导出类别比特位之外被执行,或被执行作为从指令队列导出类别比特位的替代。两个步骤之间的仲裁可以由输出控制仲裁电路98来管理(当它们共享导出引脚96时)。或者,可以提供单独的引脚100以连接到单独的专用路径。
图4示意性地示出了一个实施例中的可以将本技术应用于存储器事务请求的方式。图4总体上示出了两个并行执行流水线,每个执行流水线具有不同的结构。第一执行流水线包括解码电路120、算术逻辑电路(ALU)122、移位电路(SHF)124、乘法电路(MUL)126、和加载/存储电路128。该执行流水线的结果更新寄存器文件130中的内容。第二执行流水线包括解码电路132、ALU电路134、移位电路(SHF)136、分支电路138、和加载/存储电路140。该执行流水线的结果也适当地更新寄存器文件130中的内容。图4的上部还示出了加载/存储单元128与存储器系统的接口的交互。如图所示,该接口包括总线接口单元(BIU)142、存储缓冲器144、和信道控制电路146。
在正常使用情况下,由加载/存储单元128发出的加载经由BIU 142传送到L2存储器(并且可能超出),同时由加载/存储单元128发出的存储在经由BIU 142传送到L2存储器之前临时缓冲在存储单元(STU)144中。存储缓冲器144中的存储存储器事务请求包括地址、和要存储在该地址的相关数据,并且地址是可以被导出到SBIST控制器的一个自测试数据条目。在图4中示出的示例中,这通过存储器重建端口(MRP)148传送。MRP 148还可以将来自信道控制电路146的事务指示传送到SBIST控制器。因此,SBIST控制器可以监视输入到存储缓冲器处的和输出到L2存储器处的存储存储器事务的数量。图4还示出了信道控制电路146从SBIST控制器的接收“就绪”信号,下面将参照图5更详细地进行讨论。
图5更详细地示出了图4的BIU 142、存储缓冲器144、和信道控制器146。从图5可以看出,SBIST控制器150经由存储器重建端口148接收信息,该信息来自存储缓冲器144之前、以及来自信道控制器146去往L2存储器的输出处。这些信息是事务指示172的形式,其可以是例如完整的地址或缩写版本(对于SBIST控制器该缩写版本具有足够的信息)。这样的缩写可以由事务指示电路172执行。SBIST控制器包括事务计数和比较电路152,通过该事务计数和比较电路152可以将在接口之前或之后观察到的事务的数量与预期的数量进行比较。事务比较电路152被链接到就绪信号发生器156,该就绪信号发生器156断言或解除就绪信号,该就绪信号由信道控制电路146的信道阻塞器电路174接收。当就绪信号被断言时,信道阻塞器174因此是透明的,但是当就绪信号没有被断言时,信道阻塞器174将到L2存储器的总线(AXI)信道阻塞,使得存储器事务请求不能离开BIU 142。这使得,随着存储器事务请求继续被接收,BIU 142和存储缓冲器(STU)144中的槽被填充。当SBIST控制器150确定BIU142和STU 144充满时,它释放信道,即,断言就绪信号。图5中的SBIST控制器可以根据从STU144的存储缓冲器控制电路158接收到的缓冲器充满信号来确定存储缓冲器已满,尽管在一些实施例中,它可以在不接收明确信号的情况下,通过对进入存储缓冲器的事务的数量进行计数以及通过知道存储缓冲器中的槽的数量来确定何时存储缓冲器一定充满。一旦信道被释放,SBIST控制器150对流出到存储器的事务的数量进行计数,并将其与预期的数量进行比较。如果出现差异,则可以如上所述发送错误。注意,这里使用纯软件技术来监视故障将是非常困难的,因为单元持续地将事务排出到存储系统的其余部分。一种可能是使得软件发起一连串的存储器事务(其涌入存储器系统),但是这也直接增加了测试软件的运行时间和相应代码的大小。
图5还示出了存储缓冲器控制电路158包括合并控制电路160,用于管理多个存储请求可以被缓冲在存储缓冲器144的相同条目中的过程(在该多个存储请求与相同地址相关的情况下)。例如,存储缓冲器144中的每个槽可以保存16个字节,这是要存储的数据条目的大小(32比特位)的四倍,因此合并控制电路160可以最多将四个存储事务请求合并到存储缓冲器144中的一个槽。鉴于本技术涉及故障识别,这里认识到,错误也可能在这个过程本身中发生,并且当故障发生时应当被合并到存储缓冲器中的一个条目的两个存储在事实上可能没有这样做,这是由于这些存储中的一个存储的地址的改变(例如,由于地址寄存器中的“卡住”故障)。注意,SBIST控制器150还包括定时器154,当就绪信号被去断言时该定时器154被启动,并且如果该定时器期满,则SBIST控制器150断定存储缓冲器144以某种方式处于死锁状态。例如,如果地址寄存器中的故障产生地址的更改,则缓冲电路可能不能向所要求的条目添加事务请求,因为将被用于该地址的条目(错误地)被完全占用,并且然后系统挂起,等待该条目被清除(由于阻塞信号的断言,清除操作不能进行)。然后,SBIST控制器150可以向系统的错误管理控制器发送错误。
图6和图7是示出处理器核心在上下文之间(具体地,在正常数据处理操作与执行自测试指令之间)进行切换的时序图。在图6中示出的示例中,两个状态之间的切换由定时器触发,该定时器被提供作为系统中的外围设备。此外,该附图的垂直刻度指示正在被执行的操作的相对优先级,其中上下文切换(C/S)操作本身具有最高优先级,而正常数据处理操作(“上下文1”)和自测试(SBIST)具有相同的优先级,并且空闲状态是最低优先级。由定时器触发,处理器核心进行上下文切换,并且开始执行相关的指令序列(上下文1或SBIST)。注意,SBIST操作本身被保存(S)阶段和恢复(R)阶段夹在中间,因为在上下文之间的“普通”上下文切换仅需要在切换之前将通用寄存器推送到存储器,SBIST阶段通常更具破坏性并且所有其他架构寄存器(例如,MPU)也可能需要被推送到存储器,因此需要单独的保存(S)和恢复(R)阶段。然而,应当注意的是,本技术的SBIST软件可以分为多个执行线程,每个线程周期性地运行,并且不是所有的SBIST软件线程都将破坏所有寄存器的内容。因此,根据具体实现,在所示出的每个SBIST上下文切换处将需要针对寄存器的不同数量的保存和恢复动作。图6还将第一状态(其中上下文1是活跃的)和第二状态(其中自测试是活跃的)的组合表示为“主循环”,其随后无限期地重复,这样定期进行的自测试形成核心的操作的一部分,并且故障可以被快速识别。此外,定时器的设置确保自测试操作被保持在有限数量的处理器时间内,因此不会显著影响处理器核心的常规操作。
图7示出了其中自测试上下文与其他(常规数据处理)上下文(1和2)之间的转换是由预定事件触发的示例时序图。这些上下文的相对优先级也用图的垂直刻度示出,其中自测试上下文具有最低优先级,上下文1具有下一个更高的优先级,并且上下文2具有还要更高的优先级,其中最高优先级的操作是上下文切换操作本身。可以触发这种上下文切换的示例事件是,例如更高优先级的上下文应当开始执行。
图8示出了根据一个示例实施例的方法进行的一系列步骤。在步骤200处,通过由核心发出的并且经由外围总线发送的“配置”命令来编程SBIST控制器。然后,一旦被正确配置,通过经由外围总线从核心发送到SBIST控制器的“监视”命令来启动自测试监视。作为响应,在步骤204处,SBIST控制器发信号给核心,核心应当上下文切换到执行预定的自测试指令序列。然后在步骤206和步骤208处,作为对执行这些自测试指令的响应的一部分,将来自被监视的处理器核心的一部分的自测试数据条目直接(经由专用路径)导出到SBIST控制器。自测试指令的执行继续进行,直到达到它们的自然结束、或者发生预定事件使得核心上下文切换回它正常的数据处理操作、或者定时器期满(指示已经达到自测试的时间限制)。这个确定在步骤210处做出,直到确定为真,否则流程循环回到步骤208。此后,响应于步骤210处的肯定确定,流程进行到步骤212处,其中核心上下文切换回它的先前(正常数据处理)上下文。在步骤214处,由SBIST控制器确定在观察到的自测试数据与预定期望之间是否存在差异。如果不存在差异,则在步骤216处,“良好”SBIST结果被发送到系统的错误管理控制器,而如果观察到差异,则在步骤218处,错误被类似地发送给错误管理控制器。
图9示出了根据一个示例实施例的方法执行的一系列步骤,其中SBIST控制器被配置为监视处理器核心正在执行的指令的指令类别类型。在步骤250处,核心上下文切换到自测试,并且在步骤252处,相应的数据条目然后经由专用“SBIST”路径/引脚被直接导出到SBIST控制器。在步骤254处,SBIST控制器维持类别类型的计数。然后,在步骤256处,根据预定事件或定时器期满,处理器核心切换回它的数据处理上下文,并且在步骤258处,将SBIST控制器维持的计数与预期值进行比较。最后在步骤260处,在错误管理控制器中,任何不匹配被标记为故障。应当理解,自测试上下文可以通过任何上述讨论的机制(即,基于定时器或事件,以及自测试软件的自然结束)被结束(在步骤256)。
图10示出了根据一个示例实施例的方法执行的步骤序列,其中SBIST控制器被配置为监视存储器事务请求。在步骤300处,核心切换到它的自测试上下文。在步骤302处,SBIST去断言(de-assert)去往存储器接口的信道控制器的就绪信号,此后在步骤304处,确定是否看见缓冲器充满信号(或者指示缓冲器充满的预期数量的事务)。当没有看见时,流程进行至步骤306,其中检查是否出现定时器(SBIST控制器在去断言就绪信号时启动该定时器)超时,并且如果没有超时,流程返回到步骤304。如果出现超时,然后在步骤308处,将其直接发送给错误管理控制器作为与自测试程序相关的观察到的错误。当在步骤304处确定缓冲器充满时,则在步骤310处,断言就绪信号。然后随着存储器事务从(一个或多个)缓冲器传送到存储器系统,SBIST控制器根据通过将存储器接口连接到SBIST控制器的专用路径接收到的相应指示,来对存储器事务的数量进行计数。一旦接收到这组指示,则在步骤314处将计数与预期值进行比较,并且在步骤316处,在错误管理控制器中,将任何不匹配标记为错误,指示存储器接口内的故障。
综上所述,公开了用于处理器核心自测试的装置和方法。装置包括处理器核心电路,用于通过执行数据处理指令来执行数据处理操作。单独的自测试控制电路使得处理器核心电路暂时从执行数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动处理器核心电路的情况下返回执行数据处理指令的第一状态。还存在自测试支持电路,其中处理器核心电路响应于自测试指令序列,来通过自测试支持电路将至少一个自测试数据条目导出到自测试控制电路。
在本申请中,词语“配置为”或“布置为”用于表示装置的元件具有能够执行定义的操作的配置。在这种情况下,“配置”是指硬件或软件的互连的布置或方式。例如,设备可以具有提供定义的操作的专用硬件,或者可以对处理器或其他处理设备进行编程以执行功能。“配置为”或“布置为”并不意味着设备元件需要以任何方式进行更改从而提供定义的操作。
尽管本文参照附图详细描述了说明性实施例,但是应当理解,本发明不限于这些精确的实施例,并且在不偏离由所附权利要求限定的本发明的范围的情况下,本领域技术人员可以做出各种改变、添加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可以与独立权利要求的特征进行各种组合。

Claims (18)

1.一种数据处理装置,包括:
处理器核心电路,用于通过执行数据处理指令来执行数据处理操作;
自测试控制电路,用于使得所述处理器核心电路暂时从执行所述数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动所述处理器核心电路的情况下返回执行所述数据处理指令的所述第一状态;以及
自测试支持电路,其中所述处理器核心电路响应于所述自测试指令序列,来通过所述自测试支持电路将至少一个自测试数据条目导出到所述自测试控制电路,其中:
所述处理器核心电路包括存储器事务缓冲电路,用于在存储器事务请求被发出到存储器系统之前临时保存所述存储器事务请求,
所述自测试支持电路包括存储器事务请求指示电路,并且所述至少一个自测试数据条目包括由所述存储器事务请求指示电路提供的至少一个存储器事务请求指示,
所述自测试控制电路响应于接收所述至少一个存储器事务请求指示,来维持存储器事务请求计数,
所述自测试控制电路能够将所述存储器事务请求计数与预期存储器事务请求计数进行比较,并且
所述自测试支持电路包括在所述存储器事务缓冲电路之前的存储器事务请求指示电路和在所述存储器事务缓冲电路之后的存储器事务请求指示电路,并且所述至少一个自测试数据条目包括来自所述存储器事务缓冲电路之前的和之后的存储器事务请求指示。
2.如权利要求1所述的装置,其中,所述处理器核心电路能够在返回执行所述数据处理指令的所述第一状态之后,完成所述至少一个自测试数据条目的导出。
3.如权利要求1所述的装置,其中,所述自测试支持电路包括从所述处理器核心电路到所述自测试控制电路的专用自测试数据路径。
4.如权利要求1所述的装置,其中,所述自测试支持电路包括指令类型指示电路,并且所述至少一个自测试数据条目包括由所述指令类型指示电路提供的至少一个指令类型指示,
其中所述自测试控制电路响应于接收所述至少一个指令类型指示,来维持指令类型计数,
并且其中所述自测试控制电路能够将所述指令类型计数与预期指令类型计数进行比较。
5.如权利要求4所述的装置,其中,所述处理器核心电路包括指令提取电路,并且所述指令类型指示电路被包括在所述指令提取电路之内。
6.如权利要求4所述的装置,其中,所述处理器核心电路包括指令引退电路,并且所述指令类型指示电路被包括在指令引退电路之内。
7.如权利要求1所述的装置,其中,所述自测试支持电路包括存储器事务阻塞电路,用于根据来自所述自测试控制电路的阻塞信号阻止向所述存储器系统发出所述存储器事务请求。
8.如权利要求7所述的装置,其中,所述自测试控制电路能够断言所述阻塞信号,直到从所述存储器事务缓冲电路接收到所述存储器事务缓冲电路是充满的指示。
9.如权利要求8所述的装置,其中,所述存储器事务缓冲电路是充满的指示包括指示何时所述存储器事务请求计数达到预期存储器事务请求计数的所述至少一个存储器事务请求指示。
10.如权利要求8所述的装置,其中,所述存储器事务缓冲电路是充满的指示包括由所述存储器事务缓冲电路生成的缓冲器充满信号。
11.如权利要求7所述的装置,其中,所述自测试控制电路包括定时器电路,并且所述自测试控制电路响应于来自所述定时器电路的已逝时间段信号,来断言超时错误信号。
12.如权利要求1所述的装置,其中,所述自测试控制电路能够使得所述处理器核心电路在返回所述第一状态之前在执行所述自测试指令序列的所述第二状态中操作预定时间段。
13.如权利要求1所述的装置,其中,所述处理器核心电路能够在针对由相应的数据处理指令集定义的一个以上应用的数据处理操作之间进行切换,
其中每个应用具有预定义优先级,并且所述处理器核心电路响应于针对比当前执行的应用的预定义优先级具有更高的预定义优先级的应用的执行请求,来暂停所述当前执行的应用并且执行具有更高的预定义优先级的应用,
并且其中所述自测试指令序列被定义为具有比所述装置中可用的最高优先级低的预定义优先级。
14.如权利要求1所述的装置,其中,所述自测试控制电路通过执行以下操作中的至少一个来响应至少一个接收到的命令:
配置所述自测试控制电路和所述处理器核心电路以用于在所述第二状态中进行操作;
使得所述处理器核心电路切换到所述第二状态;以及
使得所述处理器核心电路切换回所述第一状态,并且根据从所述处理器核心电路接收的所述至少一个自测试数据条目来确定自测试结果。
15.如权利要求1所述的装置,包括错误管理控制电路,其中所述自测试控制电路能够在所述处理器核心电路完成执行所述自测试指令序列之后发送自测试结果,并且所述错误管理控制电路响应于所述自测试结果来发起错误响应。
16.如权利要求15所述的装置,其中,所述错误响应包括禁用所述装置的至少一个组件。
17.一种操作数据处理装置的方法,包括以下步骤:
通过在处于第一状态中的处理器核心电路中执行数据处理指令来执行数据处理操作;
从自测试控制电路发信令,以使得所述处理器核心电路暂时从所述第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动所述处理器核心电路的情况下返回执行所述数据处理指令的所述第一状态;以及
通过所述处理器核心电路中的自测试支持电路将至少一个自测试数据条目导出到所述自测试控制电路,其中:
所述处理器核心电路包括存储器事务缓冲电路,用于在存储器事务请求被发出到存储器系统之前临时保存所述存储器事务请求,
所述自测试支持电路包括存储器事务请求指示电路,并且所述至少一个自测试数据条目包括由所述存储器事务请求指示电路提供的至少一个存储器事务请求指示,
所述自测试控制电路响应于接收所述至少一个存储器事务请求指示,来维持存储器事务请求计数,
所述自测试控制电路能够将所述存储器事务请求计数与预期存储器事务请求计数进行比较,并且
所述自测试支持电路包括在所述存储器事务缓冲电路之前的存储器事务请求指示电路和在所述存储器事务缓冲电路之后的存储器事务请求指示电路,并且所述至少一个自测试数据条目包括来自所述存储器事务缓冲电路之前的和之后的存储器事务请求指示。
18.一种数据处理设备,包括:
用于通过执行数据处理指令来执行数据处理操作的装置;
用于控制自测试处理的装置,该自测试处理包括使得所述用于执行数据处理操作的装置暂时从执行所述数据处理指令的第一状态切换到执行自测试指令序列的第二状态,然后在不需要重新启动所述用于执行数据处理操作的装置的情况下返回执行所述数据处理指令的所述第一状态;以及
用于支持自测试处理的装置,其中所述用于执行数据处理操作的装置响应于所述自测试指令序列,来通过所述用于支持自测试处理的装置将至少一个自测试数据条目导出到所述用于控制自测试处理的装置,其中:
所述用于执行数据处理操作的装置包括用于在存储器事务请求被发出到存储器系统之前临时保存存储器事务请求的装置,
所述用于支持自测试处理的装置包括用于指示存储器事务请求的装置,并且所述至少一个自测试数据条目包括由所述用于指示存储器事务请求的装置提供的至少一个存储器事务请求指示,
所述用于控制自测试处理的装置响应于接收所述至少一个存储器事务请求指示,来维持存储器事务请求计数,
所述用于控制自测试处理的装置能够将所述存储器事务请求计数与预期存储器事务请求计数进行比较,并且
所述用于支持自测试处理的装置包括在所述用于临时保存存储器事务请求的装置之前的用于指示存储器事务请求的装置和在所述用于临时保存存储器事务请求的装置之后的用于指示存储器事务请求的装置,并且所述至少一个自测试数据条目包括来自所述用于临时保存存储器事务请求的装置之前的和之后的存储器事务请求指示。
CN201710216193.8A 2016-04-11 2017-04-01 处理器核心中的自测试 Active CN107451019B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1606107.9A GB2549280B (en) 2016-04-11 2016-04-11 Self-testing in a processor core
GB1606107.9 2016-04-11

Publications (2)

Publication Number Publication Date
CN107451019A CN107451019A (zh) 2017-12-08
CN107451019B true CN107451019B (zh) 2022-06-28

Family

ID=59895491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710216193.8A Active CN107451019B (zh) 2016-04-11 2017-04-01 处理器核心中的自测试

Country Status (3)

Country Link
US (1) US10331531B2 (zh)
CN (1) CN107451019B (zh)
GB (1) GB2549280B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6360387B2 (ja) * 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
US10628274B2 (en) * 2017-12-05 2020-04-21 Qualcomm Incorporated Self-test during idle cycles for shader core of GPU
JP6570608B2 (ja) * 2017-12-21 2019-09-04 キヤノン株式会社 検査装置、撮像装置、電子機器および輸送装置
US11074147B2 (en) 2018-11-30 2021-07-27 International Business Machines Corporation Continuous mutual extended processor self-test
WO2021074484A1 (en) * 2019-10-18 2021-04-22 Minima Processor Oy Method, arrangement, and computer program product for organizing the excitation of processing paths for testing a microelectric circuit
CN113049939A (zh) * 2019-12-27 2021-06-29 中移物联网有限公司 一种芯片老化自测试方法及系统
US11360870B2 (en) * 2020-03-26 2022-06-14 Intel Corporation Functional safety compliant self-testing
US11210188B1 (en) * 2021-05-06 2021-12-28 Raytheon Company Systems and methods for processor monitoring and recovery
CN117687848A (zh) * 2022-09-05 2024-03-12 华为云计算技术有限公司 一种处理器及检测处理器错误的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58127243A (ja) * 1982-01-25 1983-07-29 Nec Corp 論理回路
US5818250A (en) * 1996-07-03 1998-10-06 Silicon Graphics, Inc. Apparatus and method for determining the speed of a semiconductor chip
JP3576457B2 (ja) * 1999-05-11 2004-10-13 シャープ株式会社 1チップマイクロコンピュータおよびその制御方法、ならびにそれを用いたicカード
WO2001086448A2 (en) * 2000-05-08 2001-11-15 Transilica, Inc. A diagnostic tool for a portable thread environment
US7162612B2 (en) * 2000-08-16 2007-01-09 Ip-First, Llc Mechanism in a microprocessor for executing native instructions directly from memory
US6892322B1 (en) * 2000-10-26 2005-05-10 Cypress Semiconductor Corporation Method for applying instructions to microprocessor in test mode
US7509533B1 (en) * 2003-06-30 2009-03-24 Sun Microsystems, Inc. Methods and apparatus for testing functionality of processing devices by isolation and testing
US7461242B2 (en) * 2005-11-03 2008-12-02 Ati Technologies Ulc Method and apparatus for providing context switching of logic in an integrated circuit using test scan circuitry
CN101788945B (zh) * 2010-02-04 2011-09-28 电子科技大学 一种多电路板或多模块电子系统的诊断测试系统及方法
US8640243B2 (en) * 2012-03-22 2014-01-28 International Business Machines Corporation Detecting malicious computer code in an executing program module
US9116876B2 (en) * 2012-12-18 2015-08-25 Qualcomm Incorporated Programmable built-in-self tester (BIST) in memory controller
US9146833B2 (en) * 2012-12-20 2015-09-29 Intel Corporation System and method for correct execution of software based on a variance between baseline and real time information
TWI508087B (zh) * 2013-07-01 2015-11-11 Mstar Semiconductor Inc 記憶體信號的動態相位追蹤方法及其相關控制電路
KR20150029213A (ko) * 2013-09-09 2015-03-18 삼성전자주식회사 다양한 테스트 패턴을 획득하는 자체 테스트 회로를 포함하는 시스템 온 칩 및 그것의 자체 테스트 방법

Also Published As

Publication number Publication date
GB2549280A (en) 2017-10-18
GB2549280B (en) 2020-03-11
US10331531B2 (en) 2019-06-25
CN107451019A (zh) 2017-12-08
US20170293541A1 (en) 2017-10-12

Similar Documents

Publication Publication Date Title
CN107451019B (zh) 处理器核心中的自测试
CN109872150B (zh) 具有时钟同步操作的数据处理系统
KR100951092B1 (ko) 정교한 멀티스레드 디스패치 차단 방법, 장치 및 컴퓨터 판독가능한 기록 매체
TWI613588B (zh) 在核心間同步運作的方法、微處理器及電腦程式產品
TWI613593B (zh) 在微處理器中至多核心的微碼傳播
US7987385B2 (en) Method for high integrity and high availability computer processing
US9098653B2 (en) Verifying processor-sparing functionality in a simulation environment
TW201508635A (zh) 多核心微處理器動態重新配置
US20060184770A1 (en) Method of implementing precise, localized hardware-error workarounds under centralized control
US11016768B2 (en) Hardware support for OS-centric performance monitoring with data collection
KR102602004B1 (ko) 공유 리소스 액세스 제어 방법 및 장치
CN111052074A (zh) 具有自描述依从性信息的固件组件
KR20060024029A (ko) 태스크 스위칭에 의한 제로 오버헤드 컴퓨터 인터럽트
US7568138B2 (en) Method to prevent firmware defects from disturbing logic clocks to improve system reliability
US12079612B2 (en) Firmware boot task distribution to enable low latency boot performance
CN113672250A (zh) 用于存储器设备固件升级的接口和热重置路径
US20210109758A1 (en) Post completion execution in an out-of-order processor design
US7991933B2 (en) Synchronizing processors when entering system management mode
US10037259B2 (en) Adaptive debug tracing for microprocessors
WO2007099606A1 (ja) プロセサ制御方法
BRPI0813077B1 (pt) sistema de módulo de processamento de computador
US9417941B2 (en) Processing device and method of executing an instruction sequence
CN111095228A (zh) 具有一个存储器通道的第一启动
JPH1049373A (ja) パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置
US11966750B2 (en) System-on-chip management controller

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