CN109213638B - 半导体装置 - Google Patents
半导体装置 Download PDFInfo
- Publication number
- CN109213638B CN109213638B CN201810642759.8A CN201810642759A CN109213638B CN 109213638 B CN109213638 B CN 109213638B CN 201810642759 A CN201810642759 A CN 201810642759A CN 109213638 B CN109213638 B CN 109213638B
- Authority
- CN
- China
- Prior art keywords
- analysis
- peripheral circuit
- target peripheral
- circuit group
- peripheral circuits
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/3167—Testing of combined analog and digital circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3187—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- 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/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
- Tests Of Electronic Circuits (AREA)
- Hardware Redundancy (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
本公开涉及半导体装置。根据一个实施例,半导体装置通过使用在正常模式下使用的用户程序作为分析程序并且使具有相同功能的多个***电路以锁步方式操作来基于用户程序执行处理,在锁步方式下多个***电路以一致的方式操作,并且所述半导体装置通过确定分别从以锁步方式操作的多个***电路获得的多个分析信息的匹配或失配来进行***电路的故障诊断。
Description
相关申请的交叉引用
本申请基于并要求于2017年6月29日提交的日本专利申请No.2017-127226的优先权权益,该日本专利申请的公开内容通过引用整体上并入本文。
技术领域
本公开涉及半导体装置,并且例如涉及包括CPU核心和用于CPU核心的多个***电路的半导体装置。
背景技术
如今,车载控制***需要在每个单个零件中用功能安全设计建立。特别是,车辆控制MCU(微控制器单元)需要改善其故障自诊断功能。故障自诊断功能的示例是通过使DFT(Design For Test,可测性设计)电路在单个半导体装置中操作来检测诸如CMOS击穿的故障是否发生的功能(Field-BIST:可用于客户端环境中的DFT电路)。在日本未经审查的专利申请公开No.H9-325946和2014-132384中公开了故障自诊断功能的另一个示例。
日本未经审查的专利申请公开No.H9-325946中公开的微处理器将在测试模式生成电路中生成的相同测试模式同时供给到多个微处理器,由比较器电路进行比较并确定在那些微处理器中获得的测试结果是否都相同,并且当它们都相同时确定所有微处理器都正常操作。
日本未经审查的专利申请公开No.2014-132384中公开的微型计算机包括:输出比较单元,其在正常操作模式下比较主核心与检查器核心的输出;移位结果比较单元,其在失配位置指定模式下比较主核心与检查器核心的扫描链的输出;表存储单元,其存储包含关于多个触发器(flip-flop)和多个功能块的信息的表;以及控制单元,当在正常操作模式下由输出比较单元检测到失配时该控制单元将模式切换到失配位置指定模式,并且从表中提取与基于移位结果比较单元的比较结果指定的触发器相对应的功能块,并且在失配位置指定模式下停止功能块的功能。
发明内容
即使使用日本未经审查的专利申请公开No.H9-325946和2014-132384中公开的技术,也不能在动态地控制包括由执行程序的CPU核心使用的***电路的整个芯片的功能的同时执行故障诊断。这种随着功能的动态控制的故障诊断将使得能够在不使用测试模式等的情况下指定故障的寄存器的地址或位。但是,日本未经审查的专利申请公开No.H9-325946和2014-132384中公开的技术需要测试模式,并因此不能够随着功能的动态控制来执行故障诊断,并且要花长时间来缩窄故障位置。
从附图和本说明书的描述中,本发明的其它问题和新颖特征将变得清楚。
根据一个实施例,半导体装置通过使用在正常模式下使用的用户程序作为分析程序并且使具有相同功能的多个***电路以锁步方式(lock-step fashion)操作来基于用户程序执行处理,在锁步方式下多个***电路以一致的方式操作,并且半导体装置通过确定分别从以锁步方式操作的多个***电路获得的多个分析信息的匹配或失配来进行***电路的故障诊断。
根据上述一个实施例,能够缩短缩窄(narrow down)故障位置所需的时间。
附图说明
从以下结合附图对特定实施例的描述,上述和其它方面、优点和特征将变得更清楚,其中:
图1是根据第一实施例的半导体装置的框图;
图2是根据第一实施例的分析子***的框图;
图3是根据第一实施例的比较单元的框图;
图4是示出根据第一实施例的半导体装置的分析处理的流程的流程图;
图5是示出根据第一实施例的半导体装置的第一分析步骤的流程的流程图;
图6是示出根据第一实施例的半导体装置的第二分析步骤的流程的流程图;
图7是示出根据第一实施例的半导体装置的第三分析步骤的流程的流程图;
图8是示出根据第二实施例的半导体装置的分析处理的流程的流程图;
图9是根据第三实施例的半导体装置的框图;
图10是根据第三实施例的分析子***的框图;
图11是图示根据第三实施例的分析子***与根据第一实施例的分析子***之间的区别的图;
图12是图示图11中所示的第一总线的地址解码器的操作的图;
图13是图示图11中所示的第二总线的地址解码器的操作的图;
图14是根据第四实施例的半导体装置的框图;
图15是根据第五实施例的半导体装置的框图;
图16是根据第五实施例的分析子***的框图;
图17是示出根据第五实施例的半导体装置的第一分析步骤的流程的流程图;
图18是示出根据第五实施例的半导体装置的第二分析步骤的流程的流程图;以及
图19是示出根据第五实施例的半导体装置的第三分析步骤的流程的流程图。
具体实施方式
以下描述和附图被适当缩短和简化,以使说明清晰。另外,作为用于执行附图中的各种处理的功能块示出的元件可以作为硬件由CPU(中央处理单元)、存储器或其它电路配置,或者可以作为软件由加载到存储器等的程序实现。因此,对于本领域技术人员明显的是,那些功能块可以以各种形式实现,诸如仅硬件、仅软件或那些的组合,并且不限于任一种。在附图中,一致的参考标记表示一致的结构元件,并且省略其冗余的说明。
另外,可以使用任何类型的非瞬态计算机可读介质将上述程序存储并提供给计算机。非瞬态计算机可读介质包括任何类型的有形存储介质。非瞬态计算机可读介质的示例包括磁存储介质(诸如软盘、磁带、硬盘驱动等等)、光磁存储介质(例如,磁-光盘)、CD-ROM(只读存储器)、CD-R、CD-R/W,以及半导体存储器(诸如掩模ROM、PROM(可编程ROM)、EPROM(可擦除PROM)、闪存ROM、RAM(随机存取存储器)等等)。程序可以使用任何类型的瞬态计算机可读介质提供给计算机。瞬态计算机可读介质的示例包括电信号、光信号和电磁波。瞬态计算机可读介质可以经由诸如电线或光纤的有线通信线路或无线通信线路将程序提供给计算机。
另外,在根据第一实施例的半导体装置1中,程序在诸如CPU核心和分析核心之类的运算装置中执行,并且在以下的描述中,根据取出地址(该取出地址是运算装置中的程序计数器的计数值)取出(或读取)写在程序中的指令以及执行取出的指令的处理被称为“执行程序”。另外,从运算装置向***电路发出作为在运算电路中执行指令的结果而生成的操作指令,由此***电路基于操作指令执行操作。具体而言,诸如CPU核心之类的运算装置通过执行程序来生成访问信号(或控制信号),并使用访问信号向***电路给予操作指令。更具体而言,***电路包括多个寄存器,并且那些寄存器存储由访问信号给予的值,并且***电路根据该值执行各种操作。
图1示出了根据第一实施例的半导体装置1的框图。如图1中所示,根据第一实施例的半导体装置1包括CPU***10、内部存储器21、程序存储单元22、分析子***30以及***电路组40a至40d。根据第一实施例的半导体装置1包括作为执行用户程序的程序执行单元的CPU核心11和分析核心37。CPU核心11主要以正常操作模式执行用户程序,而分析核心37主要以分析模式执行用户程序。下面详细描述根据第一实施例的半导体装置1,包括CPU核心11的操作和分析核心37的操作。
内部存储器21保持由CPU***10中的第一CPU核心(例如,CPU核心11)在执行程序期间生成的数据。另外,内部存储器21保持从分析子***30输出的错误信息Error_Info。
程序存储单元22可以是与CPU***10在相同的半导体芯片上形成的存储器,或者可以是与CPU***10在不同的半导体芯片上形成的存储器。程序存储单元22存储要由CPU***10执行的程序。
在图1所示的一个示例中,CPU***10包括第一CPU核心(例如,CPU核心11)、中断控制器12以及内部总线13。在CPU***10中,CPU核心11执行存储在程序存储单元22中的程序。在根据第一实施例的半导体装置1中,存在由CPU核心11执行的各种程序,诸如管理用户程序的OS(操作***)和由用户创建的用户程序,并且下面描述其中CPU核心11执行用户程序的示例。
中断控制器12接收来自分析子***30中的分析核心37或***电路组40a至40d的中断请求,并指示CPU核心11执行中断处理。当CPU核心11被指示执行中断处理时,它执行预定的例外处理,并且在处理结束时,指示中断控制器12清除中断请求。
内部总线13是半导体装置1中的多个总线之一,并且它将地址信号和数据信号供给到另一个电路。地址信号指示作为操作指令的目的地的值以及从诸如CPU核心的程序执行单元输出的数据。内部总线13包括地址解码器13a。地址解码器13a解码从CPU核心11输出的访问地址ACS_addr,并生成要供给到由访问地址ACS_addr指示的目的地的地址信号。在图1所示的示例中,地址解码器13a解码访问地址ACS_addr并生成寄存器地址信号REG_addr和模块地址信号Peri_SEL。
分析子***30根据来自CPU核心11的指令基于用户程序执行***电路组40a至40d的缺陷分析。分析子***30至少包括分析设置寄存器31、比较单元32和第二CPU核心(例如,分析核心37)。稍后描述包括那些电路块的分析子***30的详细配置。
下面仅描述在分析核心37正在操作时的地址信号和数据路径。分析核心37是包括在分析子***30中的程序执行单元,并且它具有与CPU核心11相同的配置。当分析核心37执行***电路组40a至40d的缺陷分析时,它执行存储在程序存储单元22中的用户程序。当分析核心37执行用户程序时,它输出分析地址Analyze_addr和数据D。分析地址Analyze_addr和数据D通过CPU***10中的内部总线13和分析核心37被发送到***电路组40a至40d。另外,基于从分析核心37供给的数据D通过由***电路组40a至40d执行的处理所生成的数据D通过分析核心37和内部总线13被发送到分析核心37。
***电路组40a至40d中的每一个是具有相同电路配置的多个***电路的集合。属于不同***电路组的***电路具有彼此不同的电路配置。***电路的示例是协处理器、定时器、数模转换器电路、模数转换器电路等。
在根据第一实施例的半导体装置1中,基于从访问地址ACS_addr生成的模块地址信号Peri_SEL来启用具体的***电路。另外,在根据第一实施例的半导体装置1中,基于从访问地址ACS_addr生成的寄存器地址信号REG_addr来启用被启用的***电路中的具体寄存器(图1中的reg)。然后,数据D被存储到启用的寄存器中。数据D包含给予***电路关于要执行的操作和要计算的数值的指令的操作指令。
另外,在根据第一实施例的半导体装置1中,分析子***30基于施加到分析设置寄存器31的分析执行设置值将分析执行设置信号Analyze_SET在启用和禁用之间切换。在启用的分析执行设置信号Analyze_SET所施加到的***电路组中,***电路组中包括的至少两个***电路同时被启用。然后,数据D被同等地给予到同时被启用的***电路的寄存器。
下面简要描述根据第一实施例的半导体装置1的操作。根据第一实施例的半导体装置1具有其中由CPU核心11执行用户程序的正常操作模式以及其中由分析核心37执行用户程序以验证***电路的缺陷的缺陷验证模式。
在正常操作模式下,CPU核心11基于执行包含在用户程序中的指令的结果而向***电路发出操作指令。具体而言,在正常操作模式下,半导体装置1中的CPU核心11使用***电路执行关于由用户程序实现的功能的处理。
另一方面,在缺陷验证模式下,分析核心37基于执行包含在用户程序中的指令的结果而向***电路发出操作指令。另外,在缺陷验证模式下,分析子***30将与包括分析目标***电路的***电路组对应的分析执行设置信号Analyze_SET切换为启用,使得分析目标***电路和与分析目标***电路具有相同的电路配置的多个***电路在相同的操作指令下操作。然后,在缺陷验证模式下,分析子***30将从已在相同操作指令下操作的多个***电路获得的处理结果进行比较,并由此分析***电路的缺陷。
下面详细描述分析子***30。图2示出了根据第一实施例的分析子***30的框图。如图2中所示,根据第一实施例的分析子***30包括分析设置寄存器31、比较单元32、模块选择器33、仲裁器34、缓冲RAM 35、DMA电路36以及分析核心37。
分析核心37基于作为分析执行设置值之一由CPU核心11存储到分析设置寄存器31中的取出地址通过使用包括在分析目标***电路组中的比较目标***电路来执行用户程序。要注意的是,分析目标***电路组和比较目标***电路由存储在分析设置寄存器31中的分析执行设置值指定。另外,当CPU核心11将取出地址存储到分析设置寄存器31中时,它停止用户程序的执行直到由分析核心37对该用户程序的执行停止,或者通过使用未包括在分析目标***电路组中的***电路来执行程序。在根据第一实施例的半导体装置1中,描述了停止用户程序的执行直到由分析核心37对该用户程序的执行停止的示例。
分析设置寄存器31存储由从CPU核心11供给的分析执行设置信号Analyze_SET给予的各种设置值。具体而言,分析设置寄存器31存储分析执行设置值,该分析执行设置值至少包括分析目标***电路设置值和比较目标***电路设置值、识别开始由分析核心37执行用户程序的处理的点的开始取出地址,以及识别结束由分析核心37执行的户程序的处理的点的结束取出地址。
分析目标***电路设置值是指定包括***电路组40a至40d中所包括的***电路之中将用于缺陷分析的多个分析目标***电路的分析目标***电路组的设置值。比较目标***电路设置值指示在分析目标***电路组中所包括的***电路之中要进行比较的比较目标***电路。比较目标***电路是要分析的***电路。
比较单元32基于包含输入到分析目标***电路和从分析目标***电路输出的地址和数据中的至少一个的分析信息来比较从分析目标***电路组中所包括的多个***电路中的每一个获得的信息,并输出指示指示不同值的位的位置的错误信息。稍后详细描述比较单元32。
在分析执行设置值不存储在分析设置寄存器31中的正常操作模式下,模块选择器33基于从第一CPU核心供给的模块地址信号来输出使多个***电路中的每一个单独进入操作状态的个体模块地址信号。具体而言,模块选择器33将由内部总线13中的地址解码器13a从访问地址ACS_addr生成的***地址信号Peri_addr转换成单独启用每个***电路的模块地址信号Peri_SEL。通过模块选择器33从***地址信号Peri_addr到模块地址信号Peri_SEL的地址转换是通过在指定规则下转换地址值的解码来执行的。
另一方面,在分析执行设置值被存储在分析设置寄存器31中的缺陷分析模式下,不管模块地址信号如何,模块选择器33基于分析目标***电路设置值来输出给出操作指令的分析目标选择信号以使得包括在分析目标***电路组中的至少两个分析目标***电路进行操作,而。根据第一实施例的模块选择器33控制***电路,使得包括在分析目标***电路组中的所有分析目标***电路操作。具体而言,模块选择器33将与由分析目标***电路设置值指示的多个***电路对应的分析目标选择信号Analyze_SEL从禁用切换到启用。
在正常操作模式下,仲裁器34基于输入到多个***电路的寄存器地址信号REG_addr来仲裁输入到多个***电路以及从多个***电路输出的数据D。在缺陷分析模式下,仲裁器34基于分析目标***电路设置值提取包含输入到分析目标***电路和从分析目标***电路输出的地址和数据中的至少一个的分析信息,并且基于比较目标***电路设置值将从比较目标***电路输出的数据发送到位于上游侧的电路(例如,已对***电路做出操作指令的CPU核心11和分析核心37侧)。更具体而言,基于比较目标***电路设置值和分析目标***电路设置值,仲裁器34将从程序执行单元(例如,CPU核心11或分析核心37)输出到比较目标***电路的操作指令分发给分析目标***电路。然后,仲裁器34响应于给定的操作指令而提取从分析目标***电路组中所包括的多个***电路输出的数据作为分析信息。另外,仲裁器34将从比较目标***电路输出的数据发送到已经做出操作指令的CPU核心11或分析核心37。
缓冲RAM 35按照生成的次序保持由比较单元32生成的错误信息。DMA电路36根据来自分析核心37的指令将保持在缓冲RAM35中的错误信息Error_Info输出到内部存储器21。
下面详细描述比较单元32。图3示出了根据第一实施例的比较单元32的框图。要注意的是,在图3中,还与比较单元32一起示出了从其向比较单元32输入信息的仲裁器34、向仲裁器34供给分析目标***电路设置值和比较目标***电路设置值的分析设置寄存器31以及从比较单元32向其输出信息的缓冲RAM 35。
如图3中所示,比较单元32包括参考通道寄存器50、目标通道寄存器510至514、比较器核心52和时钟选择器56。参考通道寄存器50存储关于被指派为比较目标***电路的***电路的分析信息。目标通道寄存器510至514中的每一个存储关于除了比较目标***电路之外的分析目标***电路的分析信息。要注意的是,分析信息包含要输入到***电路和从***电路输出的数据以及指派***电路的地址信息。
在比较器核心52中,异或(XOR)电路(图3中的530至534)、与(AND)电路(图3中的540至544)和D触发器电路(图3中的550至554)被放置成分别与目标通道寄存器510至514对应。要注意的是,对于每个对应的目标通道寄存器,异或电路、与电路和锁存电路之间的连接关系是相同的。在下面的描述中,下面仅描述与目标通道寄存器510对应的D触发器电路、异或电路和与电路之间的连接关系。
异或电路530输出存储在目标通道寄存器510中的目标信息Tag0_info和存储在参考通道寄存器50中的参考信息Ref_info之间的异或(exclusive OR)结果。具体而言,当目标信息Tag0_info与参考信息Ref_info匹配时,异或电路530的输出值为“0”,并且当它们不匹配时输出值为“1”。
与电路540输出异或电路530的输出值与值“1”之间的逻辑与(AND)的结果。具体而言,与电路540在异或电路530的输出值为“1”时输出“1”,并且在异或电路530的输出值为“0”时输出“0”。
D触发器电路550在时钟信号的上升沿处保持与电路540的输出值。D触发器电路550的输出值是错误信息Error_Info。作为时钟选择器56从施加到***电路组40a至40d的操作时钟中选择要施加到包括分析目标***电路的***电路组的操作时钟的结果,确定D触发器电路550的操作时钟。具体而言,时钟选择器56基于存储在分析设置寄存器31中的分析目标***电路设置值来确定要选择的操作时钟。换句话说,比较单元32基于施加到***电路组的操作时钟之中施加到分析目标***电路组的操作时钟来操作。要注意的是,可以使用两相锁存电路来代替D触发器电路。
在上述电路配置中,当比较目标***电路发生故障时,比较单元32输出与分析目标***电路对应的所有错误信息Error_Info都是“1”的错误信息。另外,当任一个分析目标***电路发生故障时,比较单元32输出与发生故障的分析目标***电路对应的错误信息Error_Info为“1”并且其它错误信息Error_Info为“0”的错误信息。
在根据第一实施例的半导体装置1中,以这种方式生成错误信息Error_Info并将其存储到内部存储器21中。然后负责分析的人分析这个错误信息Error_Info并由此识别有缺陷的***电路。要注意的是,CPU核心11可以分析所生成的错误信息Error_Info并辨识有缺陷的***电路,并且执行处理以避免在用户程序的后续执行中使用有缺陷的***电路。
下面描述在根据第一实施例的半导体装置1的操作之中作为根据第一实施例的半导体装置1中的特征操作的分析模式的操作。图4是示出根据第一实施例的半导体装置的分析处理的流程的流程图。
根据第一实施例的半导体装置1开始分析模式,例如,分析模式通过诸如发出通知来自***电路的异常的发生的中断请求或者发出被有意输入的分析模式开始指令作为对CPU核心11的中断请求的事件被触发。如图4中所示,在开始分析模式之后,根据第一实施例的半导体装置1执行对分析子***30设置操作条件的第一分析步骤(步骤S1)。
接下来,半导体装置1执行第二分析步骤,该第二分析步骤通过使用分析核心37来执行用于用户程序等的分析的分析程序(步骤S2)。之后,半导体装置1执行第三分析步骤,该第三分析步骤输出在步骤S2中执行的分析程序的执行结果(步骤S3)。
下面描述第一分析步骤到第三分析步骤的详细处理流程。图5是示出根据第一实施例的半导体装置中的第一分析步骤的流程的流程图。
如图5中所示,在第一分析步骤中,CPU核心11开始操作(步骤S10)。接下来,CPU核心11从内部存储器或外部存储器取出要用于分析的分析程序(例如,用户程序)中的指令,并由此用户程序被执行(步骤S11)。假设用户程序包含生成要存储到分析设置寄存器31中的分析执行设置值的指令。然后,CPU核心11将指定要分析的***电路组(例如,分析目标***电路组)的分析目标***电路设置值存储到分析设置寄存器31中(步骤S12)。另外,CPU核心11将指定包括在分析目标***电路组中的***电路之中的要比较的***电路(例如,比较目标***电路)的比较目标***电路设置值存储到分析设置寄存器31中(步骤S13)。通过步骤S12和S13中的操作,模块选择器33参考分析设置寄存器31中的分析执行设置值,并且将要施加到分析目标***电路组的分析目标选择信号Analyze_SEL切换为启用(步骤S14)。作为参考图1的具体示例,在由分析目标***电路设置值指定的***电路是包括在***电路组40a中的***电路A0至A3的情况下,模块选择器33将分析目标选择信号Analyze_SEL[0]至Analyze_SEL[3]之中的分析目标选择信号Analyze_SEL[0]设置为启用(例如,高电平)。
然后,CPU核心11基于用户程序中的指令将指定要用于分析的用户程序的开始点和结束点的开始取出地址和结束取出地址存储到分析设置寄存器31中(步骤S15)。之后,CPU核心11向分析核心37给出激活指令(步骤S16),并进入待机状态,直到来自***电路或分析核心37的中断处理或DMA电路的操作结束(步骤S17)。
图6是示出根据第一实施例的半导体装置1中的第二分析步骤的流程的流程图。如图6中所示,在根据第一实施例的半导体装置1的第二分析步骤中,处理基于第一分析步骤的步骤S16中对分析核心37的激活指令以分析核心37的操作的开始为起始(步骤S20)。
在开始操作之后,分析核心37通过基于存储在分析设置寄存器31中的开始取出地址取出存储在内部存储器21或内部存储器21中的用户程序中的指令来开始执行用户程序(步骤S21)。然后,分析核心37基于用户程序向比较目标***电路发出操作指令(通过执行用户程序中的指令而生成的指令)(步骤S22)。在步骤S22中向比较目标***电路发出的操作指令由仲裁器34分发到被指定为分析目标***电路的多个***电路。
然后,比较单元32比较作为***电路根据操作指令操作的结果而获得的结果(步骤S23)。在步骤S23中,仲裁器34基于存储在分析设置寄存器31中的分析目标***电路设置值和比较目标***电路设置值来提取在分析核心37与分析目标***电路组之间交换的信号,并向比较单元32供给该信号。
具体而言,当分析信息是地址信号时,仲裁器34将要施加到基于比较目标***电路设置值指定的比较目标***电路的地址信号施加到比较目标***电路,并且进一步将这个地址信号存储到目标通道寄存器510中。另外,仲裁器34将指定比较目标***电路的地址信号施加到除比较目标***电路之外的分析目标***电路组,并且还将要施加到分析目标***电路组的地址信号存储到目标通道寄存器510至514中。另一方面,当分析信息是数据时,仲裁器34控制数据的传输和接收,使得要在基于比较目标***电路设置值指定的比较目标***电路与分析核心37之间发送和接收的数据被发送到分析核心37并从分析核心37接收,并且将数据存储到目标通道寄存器510中。另外,仲裁器34将与比较目标***电路相同的数据施加到除比较目标***电路之外的分析目标***电路组,并且还将输入到分析目标***电路组和从分析目标***电路组输出的数据存储到目标通道寄存器510至514中。
然后,当在步骤S23中通过比较确定从分析目标***电路组中所包括的***电路获取的分析信息匹配时(步骤S24中的“是”),分析核心37重新开始用户程序的执行,并且重复从步骤S22到步骤S28的操作(步骤S29)。
另一方面,当在步骤S23中通过比较确定从分析目标***电路组中包括的***电路获取的分析信息包含与其它比较结果不匹配的位时(步骤S24中的“否”),分析核心37停止用户程序的执行并向中断控制器12做出中断请求,并由此通知CPU核心11发生异常(步骤S25)。然后,比较单元32将关于错误位的信息作为错误信息Error_Info写入到缓冲RAM 35中(步骤S26)。之后,CPU核心11清除分析核心37的中断请求,并且分析核心37重新开始操作(步骤S27)。因为分析核心37由此重新开始操作,所以分析核心37重新开始用户程序的执行(步骤S28),然后,分析核心37继续步骤S22至步骤S28的操作,直到用户程序的执行定位到达结束取出地址(步骤S29)。
当在步骤S29中确定分析核心37执行用户程序的分析处理已经结束时,分析核心37激活DMA电路36(步骤S30)。之后,分析核心37进入睡眠状态(步骤S31)。
图7是示出根据第一实施例的半导体装置中的第三分析步骤的流程的流程图。如图7中所示,在第三分析步骤中,基于在第二分析步骤中的步骤S30中来自分析核心37的指令激活DMA电路36(步骤S41)。然后,DMA电路36将存储在缓冲RAM 35中的分析结果(例如,错误信息Error_Info)按其被存储的次序传送到内部存储器21(步骤S42)。响应于从缓冲RAM35向内部存储器21传送错误信息Error_Info的完成,CPU核心11取消待机状态(步骤S43)。然后CPU核心11通过使用输出接口电路(未示出)将存储在内部存储器21中的错误信息Error_Info输出到外部(步骤S44)。
通过以上描述,根据第一实施例的半导体装置1在分析模式下将要施加到一个比较目标***电路的地址信号或数据施加到与比较目标***电路处于相同配置的至少一个分析目标***电路,使得比较目标***电路和分析目标***电路在相同的操作指令下操作。然后,根据第一实施例的半导体装置1比较从在相同操作指令下操作的***电路获得的执行结果,并由此获得用于分析***电路中的缺陷的错误信息Error_Info。另外,根据第一实施例的半导体装置1在分析模式下基于用户程序发出用于使***电路操作的操作指令。因此,根据第一实施例的半导体装置1可以分析在***电路中出现的缺陷,而无需准备用于测试扫描电路、BIST(内置的自测试)电路等的校准。
使用扫描电路或BIST测试的测试方法通过对扫描电路或BIST电路应用用于对在触发器之间的信号传播路径中的CMOS晶体管的存储器单元破坏或堆叠故障进行诊断的DFT(可测性设计)模式来分析缺陷,难以发生故障的寄存器或存储器的具体地址。
另一种测试方法使用测试器将用于功能评估或批量生产测试的功能模式输入到半导体装置,并由此通过其行为来估计故障位置并缩窄逻辑。在这种情况下,虽然当故障发生在可以由现有功能模式覆盖的线路或逻辑中时可以容易地进行故障分析,但是,如果发生未被功能模式覆盖并且在半导体装置的设计过程中没有完成通过逻辑验证的操作检查的故障,那么需要创建用于故障分析的新测试模式。
另外,通过增加DFT模式和功能模式的电路缺陷覆盖率的上升趋势变得缓和或接近饱和状态。假设覆盖率达到90%,那么,为了实现1%的附加增长,需要创建用于覆盖要分析的具体线路的模式,而创建这种模式是不现实的。
但是,根据第一实施例的半导体装置1通过使用发生缺陷的用户程序来执行缺陷验证,并且由此能够在不添加测试电路或者添加DFT模式或功能模式的情况下验证***电路中的缺陷。通过使用根据第一实施例的半导体装置1,能够显著减少测试所需的工时和时间。
另外,在根据第一实施例的半导体装置1中,能够以***电路中的寄存器为单位或以寄存器中的位为单位来验证缺陷。由此,根据第一实施例的半导体装置1可以通过禁用发生缺陷的寄存器来继续执行CPU***10中的程序。
第二实施例
在第二实施例中,描述在根据第一实施例的半导体装置1中在分析模式期间CPU核心11的操作的另一个实施例。在根据第一实施例的半导体装置1中,在分析核心37执行用于分析的用户程序的分析模式期间,CPU核心11进入待机状态并且不执行程序。另一方面,在根据第二实施例的半导体装置1中,在分析模式期间,CPU核心11不进入待机状态并且执行用户程序。要注意的是,在执行根据第二实施例的操作的情况下,使用与根据第一实施例的半导体装置1的硬件配置相同的硬件配置,并且仅软件配置与第一实施例的软件配置不同,并且因此使用与第一实施例的参考标记一致的参考标记作为第二实施例中的半导体装置的参考标记。
图8是示出根据第二实施例的半导体装置的分析处理的流程的流程图。如图8中所示,在根据第二实施例的半导体装置1中,CPU核心11在步骤S50中开始操作。然后CPU核心11取出存储在程序存储单元22等中的用户程序中的指令并执行用户程序(步骤S51)。在步骤S51中的用户程序的执行中使用***电路。只要***电路中没有异常,CPU核心11就继续执行用户程序(步骤S52)。
另一方面,当在执行用户程序期间通过中断请求通知在***电路中发生的异常时,CPU核心11执行步骤S53的处理作为例外处理之一。在步骤S53中,生成分析目标***电路设置值,该分析目标***电路设置值将包括发生异常的***电路的***电路组中除了不用于分析的***电路以外的多个***电路设置为分析目标***电路。要注意的是,不用于分析的***电路是被确定为不具有异常的***电路,并且在以下描述中它们被称为分析排除***电路。根据第二实施例,包括在一个***电路组中的***电路中的仅一些被设置为分析目标***电路设置值。
然后,根据第二实施例的半导体装置1执行图4中描述的第一分析步骤至第三分析步骤,并且它还与第二分析步骤及第三分析步骤并行地执行步骤S54的处理。在步骤S54的处理中,通过使用分析排除***电路来继续用户程序的执行。
另外,在完成第三分析步骤之后,根据第二实施例的半导体装置1禁止使用被确定为具有异常的***电路(步骤S55)。另一方面,根据第二实施例的半导体装置1将被确定为不具有异常的***电路添加到可由用户程序使用的***电路(步骤S56)。
通过以上描述,根据第二实施例的半导体装置1从分析操作中排除了包括比较目标***电路的分析目标***电路组中一些***电路,并且通过使用被排除的***电路来继续用户程序的执行。另外,根据第二实施例的半导体装置1可以使得通过分析确定为不具有异常的***电路返回到可以被用户程序使用的状态,并且在后续操作中停止使用具有异常的***电路。通过这种处理,根据第二实施例的半导体装置1能够增强半导体装置的操作连续性。
第三实施例
在第三实施例中,描述分析子***30中的模块选择器的另一个实施例。图9示出了根据第三实施例的半导体装置3的框图,并且图10示出了根据第三实施例的分析子***30a的框图。
如图9中所示,根据第三实施例的半导体装置3包括分析子***30a以代替分析子***30。如图9中所示,分析子***30a包括模块选择器33b以代替模块选择器33。在下文中详细描述模块选择器33与模块选择器33b之间的差异。
首先描述在正常操作模式下模块选择器33与模块选择器33b之间的差异。模块选择器33通过解码生成到***电路的地址信号。另一方面,模块选择器33b通过地址转换生成到***电路的地址。
具体而言,在正常操作模式下,模块选择器33基于从CPU核心11侧供给的模块地址信号Peri_SEL输出使多个***电路中的每一个单独进入操作状态的个体模块地址信号。另一方面,模块选择器33b将从CPU核心11侧供给的模块地址信号Peri_SEL移位达针对要访问的每个***电路确定的移位量,并由此生成单独指定***电路的***地址信号Peri_addr。
接下来,描述在分析模式下模块选择器33与模块选择器33b之间的差异。在分析模式下,不管模块地址信号Peri_addr如何,模块选择器33都输出使包括在分析目标***电路组中的所有分析目标***电路都进入操作状态的分析目标选择信号。另一方面,在分析模式下,模块选择器33b从用作基本地址信号的模块地址信号Peri_SEL中输出与包括在分析目标***电路组中的所有分析目标***电路对应的多个模块地址信号Peri_addr。
使用模块选择器33还是模块选择器33b由放置在分析子***与***电路之间的总线的电路形式确定。图11示出了图示根据第三实施例的分析子***与根据第一实施例的分析子***之间的差异的图。
在图11所示的***配置图中,***包括CPU核心61、分析核心62、内部存储器63、I/O接口电路64、***电路65和66、内部总线71、第一总线(例如,子内部总线72)、第二总线(例如,子内部总线73)以及分析子***30和30a。要注意的是,I/O接口电路64例如包括半导体装置与另一个装置(诸如USB接口电路、车载通信接口电路或无线通信接口)之间的通信接口。另外,***电路65和66包括用于CPU核心的专用电路,诸如AD转换电路、DA转换电路、定时器、PWM信号生成电路或协处理器。
连接到内部总线71的是用作总线主设备的CPU核心61和分析核心62,以及用作总线从设备的内部存储器63和I/O接口电路64。子内部总线72是内部总线71的子内部总线,并且它通过分析子***30连接到内部总线71。连接到子内部总线72的是仅作为总线从设备操作的多个***电路65。子内部总线73是内部总线71的子内部总线,并且它通过分析子***30a连接到内部总线71。连接到子内部总线73的是可以在作为总线从设备操作与作为总线主设备操作之间切换的***电路66。
另外,子内部总线72包括执行地址信号的解码的地址解码器DEC_A,并且子内部总线73包括执行地址信号的解码的地址解码器DEC_B。子内部总线72和73通过置于其内部的地址解码器来控制访问目的地与访问源之间信号的发送和接收。另外,解码器DEC_A和DEC_B在其生成地址的方式上是不同的。下面描述解码器DEC_A的操作与解码器DEC_B的操作之间的差异。
首先,图12示出了图示图11中所示的第一总线(例如,子内部总线72)的地址解码器的操作的视图。在图12所示的示例中,用作总线主设备的***电路81a至81c和用作总线从设备的***电路83a至83c连接到子内部总线72。另外,地址解码器82a至82c被放置在子内部总线72内部。地址解码器82a至82c与用作总线主设备的***电路81a至81c对应地放置。地址解码器82a至82c基于输入地址信号生成指定要访问的***电路83a至83c中的任何一个的地址信号。例如,虽然地址解码器82c可以生成与***电路83a至83c中的任何对应的访问地址,但是当***电路81c将指示***电路83b的地址信号施加到***电路82c时,***电路82c生成指示***电路83b的访问地址。分析子***30用作***电路81a至81c。
接下来,图13示出了图示图11中所示的第二总线(例如,子内部总线73)的地址解码器的操作的视图。在图13所示的示例中,可以通过切换总线主设备和总线从设备来操作的***电路连接到子内部总线73。另外,在图13所示的示例中,***电路91a至91c和***电路93a至93c通过子内部总线73彼此连接。地址解码器92a至92c被放置在子内部总线73内部。地址信号从访问源***电路输入到地址解码器92a到92c。然后,在地址解码器92a至92c中,只有与访问目的地***电路对应的地址解码器传递输入访问地址。
在图13所示的示例中,当从***电路91c对***电路93b进行访问时,从***电路91c发出的访问地址被输入到地址解码器92a至92c,并且只有与***电路93b对应的地址解码器92b传递访问地址。另外,当从***电路93b对***电路91c进行访问时,从***电路93b发出的访问地址被输入到地址解码器92a到92c,并且只有与***电路91c对应的地址解码器92c传递访问地址。分析子***30a用作***电路91a至91c。
通过使用分析子***30a,例如当将***电路93a至93c设置为分析目标***电路时,能够由模块选择器33b生成指示***电路93a至93c的多个地址并将所述多个地址分别应用于地址解码器92a至92c。
如上所述,存在各种总线格式,并且通过使用包括模块选择器33b的分析子***30a,能够在包括子内部总线73类型的总线的***中执行与第一实施例中相同的分析处理,而不限于子内部总线72的类型。
第四实施例
在第四实施例中,描述作为根据第一实施例的半导体装置1的另一个实施例的半导体装置4。图14示出了根据第四实施例的半导体装置的框图。要注意的是,在图14中未示出***电路组40b至40d。
如图14中所示,根据第四实施例的半导体装置4具有将中断仲裁器14添加到根据第一实施例的半导体装置1的配置。当***电路中出现异常时,中断仲裁器14仲裁分别从多个***电路做出的多个中断请求,并向CPU核心11通知所述多个中断请求中的任何一个。具体而言,中断仲裁器14选择从比较目标***电路做出的中断请求,并将那个请求通知给CPU核心11。另外,从中断仲裁器14向其输入中断请求的中断控制器12输出中断通知信号INT_ntf,以向分析核心37通知中断请求是从***电路做出的。
在根据第一实施例的半导体装置1中,多个***电路在分析模式下在相同时段期间在相同的操作指令下进行操作。因此,当例如由于用户程序的问题而不是***电路的缺陷而在***电路中发生异常时,中断请求同时从多个***电路发出。因此,在根据第一实施例的半导体装置1中,有可能同时做出具有相同优先级的多个中断请求。
在如上所述同时做出多个具有相同优先级的中断请求的情况下,CPU核心11不能确定要选择哪个中断请求来执行中断处理,这造成半导体装置1在程序执行状态下停止的死锁,从而阻碍分析的执行。
根据第四实施例的半导体装置4通过使用中断仲裁器14仲裁同时做出的多个中断请求,并且仅将从比较目标***电路做出的中断请求输出到中断控制器12。CPU核心11由此可以通过响应于一个中断请求INT而对比较目标***电路执行例外处理来清除中断标志。另外,可以通过中断通知信号INT_ntf向中断控制器12通知在***电路组中对分析核心37做出中断请求,并因此根据中断通知信号INT ntf执行例外处理。
下面描述在分析模式下清除中断标志的例外处理。在根据第四实施例的半导体装置4中,已经接收到中断通知信号INT_ntf的分析核心37执行先前在程序中定义的例外处理,并因此清除比较目标***电路的中断请求。在这个时候,在根据第四实施例的半导体装置4中,通过模块选择器33的设置,能够清除来自除比较目标***电路以外的分析目标***电路的中断请求。另外,当在执行清除控制时存在中断请求的输出接口的状态未正确改变的通道时,可以由比较单元32检测到。
另外,利用中断仲裁器14,能够减少CPU核心11在用户模式下清除中断标志的处理并且最小化中断控制器12的通道数量的增加。
另外,利用中断仲裁器14,在根据第四实施例的半导体装置4中,仅将从比较目标***电路做出的中断请求通知给中断控制器12。因此,根据第四实施例的半导体装置4不能检测来自分析目标***电路的中断请求;但是,在分析目标***电路中发生意外中断的情况下,由比较单元32将接口与比较目标***电路的中断输出进行比较,并由此检测到差异,并且因此从分析子***30做出由于差异引起的中断请求。
另外,与从中断仲裁器14通知的中断请求相比,将更高的优先级置于从分析子***30通知的中断请求,并且因此中断仲裁器14不干扰分析。
第五实施例
在第五实施例中,描述作为根据第一实施例的分析子***30的另一个实施例的分析子***30b。图15示出了根据第五实施例的半导体装置5的框图,其包括分析子***30b。图16示出了分析子***30b的框图。
如图15和16中所示,分析子***30b具有从分析子***30中消除分析核心37的配置。在根据第五实施例的半导体装置5中,在分析模式下用户程序的执行由CPU核心11进行。下面参考图17和18描述根据第五实施例的半导体装置5的操作。
图17是示出根据第五实施例的半导体装置中的第一分析步骤的流程的流程图。如图17中所示,在第一分析步骤中,CPU核心11开始操作(步骤S60)。接下来,CPU核心11从内部存储器或外部存储器取出要用于分析的分析程序(例如,用户程序)中的指令,并由此用户程序被执行(步骤S61)。假设用户程序包含生成要存储到分析设置寄存器31中的分析执行设置值的指令。然后,CPU核心61将指定要分析的***电路组(例如,分析目标***电路组)的分析目标***电路设置值存储到分析设置寄存器31中(步骤S62)。另外,CPU核心11将指定分析目标***电路组中包括的***电路之中要比较的***电路(例如,比较目标***电路)的比较目标***电路设置值存储到分析设置寄存器31中(步骤S63)。通过步骤S62和S63中的操作,模块选择器33参考分析设置寄存器31中的分析执行设置值,并且将要施加到分析目标***电路组的分析目标选择信号Analyze_SEL切换为启用(步骤S64)。
图18是示出根据第五实施例的半导体装置中的第二分析步骤的流程的流程图。如图18中所示,在根据第五实施例的半导体装置5的第二分析步骤中,CPU核心11基于开始取出地址来取出存储在内部存储器21或程序存储单元22中的用户程序的指令,并由此开始执行用户程序,并且基于用户程序向比较目标***电路发出操作指令(步骤S70)。
然后,比较单元32比较作为***电路根据操作指令操作的结果而获得的结果(步骤S71)。在步骤S71中,仲裁器34基于存储在分析设置寄存器31中的分析目标***电路设置值和比较目标***电路设置值来提取在分析核心37与分析目标***电路组之间交换的信号,并将该信号供给到比较单元32。
然后,当通过步骤S71中的比较确定从分析目标***电路组中所包括的***电路获取的分析信息匹配时(步骤S72中的“是”),分析核心37重新开始执行用户程序(步骤S76),并重复从步骤S71到步骤S76的操作(步骤S77)。
另一方面,当通过步骤S71中的比较确定从分析目标***电路组中所包括的***电路获取的分析信息包含与其它比较结果不匹配的位时(步骤S72中的“否”),比较单元32向中断控制器12做出中断请求,并由此向CPU核心11通知发生异常(步骤S73)。然后,比较单元32将关于错误位的信息作为错误信息Error_Info写入到缓冲RAM 35中(步骤S74)。之后,CPU核心11清除从比较单元32通知的中断请求,然后CPU核心11重新开始该操作(步骤S76)。由此,CPU核心11重新开始操作并重新开始用户程序的执行(步骤S76)。然后,CPU核心11继续从步骤S71到步骤S76的操作,直到用户程序的执行定位到达结束取出地址(步骤S77)。
当在步骤S77中确定CPU核心11执行用户程序的分析处理已结束时,CPU核心11激活DMA电路36(步骤S78)。
图19是示出根据第五实施例的半导体装置中的第三分析步骤的流程的流程图。如图7中所示,在第三分析步骤中,在第二分析步骤中的步骤S30中基于来自分析核心37的指令激活DMA电路36(步骤S41)。然后,DMA电路36将存储在缓冲RAM 35中的分析结果(例如,错误信息Error_Info)按其存储的次序传送到内部存储器21(步骤S42)。响应于从缓冲RAM 35向内部存储器21传送错误信息Error_Info的完成,CPU核心11取消待机状态(步骤S43)。然后CPU核心11通过使用输出接口电路(未示出)将存储在内部存储器21中的错误信息Error_Info输出到外部(步骤S44)。
如上所述,与第一实施例中的分析类似的***电路组的缺陷分析也可以通过CPU核心11在分析模式下执行用户程序来执行,而不放置分析核心。分析核心37是与CPU核心11具有相同电路配置的电路,并且其占据芯片上的大面积。通过消除分析核心37,可以减小芯片面积。
虽然已经根据若干实施例描述了本发明,但是本领域技术人员将认识的是,可以在所附权利要求的精神和范围内以各种修改来实践本发明,并且本发明不受限于上述示例。
另外,权利要求的范围不受上述实施例的限制。
此外,要注意的是,申请人的意图是涵盖所有权利要求要素的等同物,即使稍后在审查进程期间被修订。
本领域普通技术人员可以根据期望组合第一至第五实施例。
Claims (15)
1.一种半导体装置,包括:
程序执行单元,被配置为执行用户程序;
***电路组,被配置为包括具有相同电路配置并由所述程序执行单元控制的多个***电路;以及
分析子***,被配置为根据来自所述程序执行单元的操作指令基于所述用户程序来执行所述***电路组的缺陷分析,
其中所述分析子***包括
分析设置寄存器,被配置为存储分析执行设置值,所述分析执行设置值至少包括分析目标***电路设置值以及比较目标***电路设置值,所述分析目标***电路设置值指定包括所述***电路组中所包括的***电路之中要用于缺陷分析的多个分析目标***电路的分析目标***电路组,所述比较目标***电路设置值指定所述分析目标***电路组中所包括的***电路之中要比较的比较目标***电路,
模块选择器,被配置为控制所述***电路组的操作状态,使得包括在所述分析目标***电路组中的所有分析目标***电路基于所述分析目标***电路设置值操作,
仲裁器,被配置为基于所述比较目标***电路设置值和所述分析目标***电路设置值将从所述程序执行单元输出到所述比较目标***电路的操作指令分发到包括在所述分析目标***电路组中的所述多个***电路,并且然后响应于给定的操作指令来提取从包括在所述分析目标***电路组中的所述多个***电路输出的数据作为分析信息,并且将从所述比较目标***电路输出的数据发送到所述程序执行单元,以及
比较单元,被配置为基于所述分析信息来比较从包括在所述分析目标***电路组中的所述多个***电路中的每一个***电路获得的信息,并且输出识别第一位的位置的错误信息,所述第一位指示不同值。
2.如权利要求1所述的半导体装置,其中所述比较单元比较指示从所述程序执行单元输出的操作指令的目的地的地址信号,所述地址信号被施加到包括在所述分析目标***电路组中的所述多个***电路中的每一个***电路,并且所述比较单元输出识别第二位的位置的地址错误信息作为错误信息,所述第二位指示不同地址值。
3.如权利要求1所述的半导体装置,其中所述比较单元基于施加到所述***电路组的操作时钟之中施加到所述分析目标***电路组的操作时钟而操作。
4.如权利要求1所述的半导体装置,其中所述程序执行单元包括:
CPU核心,被配置为将所述分析执行设置值输出到所述分析设置寄存器,所述分析执行设置值至少包括所述分析目标***电路设置值、所述比较目标***电路设置值以及识别所述用户程序中的指令之中要执行的指令的位置的取出地址,以及
分析核心,被配置为基于由所述CPU核心存储到所述分析设置寄存器中的所述分析执行设置值中所包括的所述取出地址来执行所述用户程序。
5.如权利要求4所述的半导体装置,其中,在所述分析核心基于所述分析执行设置值执行所述用户程序的分析模式下,所述CPU核心停止所述用户程序的执行直到由所述分析核心进行的所述用户程序的执行停止,或者执行所述用户程序并且使不包括在所述分析目标***电路组中的***电路操作。
6.如权利要求1所述的半导体装置,其中
在所述分析执行设置值未存储在所述分析设置寄存器中的正常操作模式下,所述模块选择器基于从所述程序执行单元供给的模块地址信号输出使所述多个***电路中的每一个***电路单独进入操作状态的个体模块地址信号,以及
在所述分析执行设置值被存储在所述分析设置寄存器中的分析模式下,不管所述模块地址信号如何,所述模块选择器输出使包括在所述分析目标***电路组中的所有分析目标***电路都进入操作状态的分析目标选择信号。
7.如权利要求1所述的半导体装置,其中
在所述分析执行设置值未存储在所述分析设置寄存器中的正常操作模式下,所述模块选择器使从所述程序执行单元供给的模块地址信号移位达针对每个要访问的***电路确定的移位量,并生成单独指定***电路的***地址信号,以及
在所述分析执行设置值被存储在所述分析设置寄存器中的分析模式下,所述模块选择器从所述模块地址信号中输出与包括在所述分析目标***电路组中的所有***电路对应的多个模块地址信号。
8.如权利要求1所述的半导体装置,包括:
中断仲裁器,被配置为当在***电路中发生异常时仲裁分别从所述多个***电路发出的多个中断请求,并且向所述程序执行单元通知所述多个中断请求中的任意一个中断请求。
9.一种半导体装置,包括:
第一CPU核心,被配置为执行用户程序;
***电路组,被配置为包括具有相同电路配置并由所述第一CPU核心控制的多个***电路;以及
分析子***,被配置为根据来自所述第一CPU核心的指令基于所述用户程序执行所述***电路组的缺陷分析,
其中所述分析子***包括
分析设置寄存器,被配置为存储分析执行设置值,所述分析执行设置值至少包括分析目标***电路设置值以及比较目标***电路设置值,所述分析目标***电路设置值指定包括所述***电路组中所包括的***电路之中要用于缺陷分析的多个分析目标***电路的分析目标***电路组,所述比较目标***电路设置值指定所述分析目标***电路组中所包括的***电路之中要比较的比较目标***电路,
模块选择器,被配置为控制所述***电路组的操作状态,使得包括在所述分析目标***电路组中的所有分析目标***电路基于所述分析目标***电路设置值操作,
仲裁器,被配置为基于所述分析目标***电路设置值提取包含输入到包括在所述分析目标***电路组中的所述多个***电路以及从包括在所述分析目标***电路组中的所述多个***电路输出的地址和数据中的至少一个的分析信息,并且基于所述比较目标***电路设置值将从所述比较目标***电路输出的数据发送到位于上游的电路,以及
比较单元,被配置为基于所述分析信息来比较从包括在所述分析目标***电路组中的所述多个***电路中的每一个***电路获得的信息,并且输出识别第一位的位置的错误信息,所述第一位指示不同值。
10.如权利要求9所述的半导体装置,其中所述比较单元比较指示从所述第一CPU核心输出的操作指令的目的地的地址信号,所述地址信号被施加到包括在所述分析目标***电路组中的所述多个***电路中的每一个***电路,并且所述比较单元输出识别第二位的位置的地址错误信息作为错误信息,所述第二位指示不同地址值。
11.如权利要求9所述的半导体装置,其中所述比较单元基于施加到所述***电路组的操作时钟之中的施加到所述分析目标***电路组的操作时钟而操作。
12.如权利要求9所述的半导体装置,其中
所述分析子***还包括第二CPU核心,所述第二CPU核心被配置为基于作为所述分析执行设置值之一由所述第一CPU核心存储到所述分析设置寄存器中的取出地址通过使用包括在所述分析目标***电路组中的比较目标***电路来执行所述用户程序,以及
当所述取出地址被存储到所述分析设置寄存器中时,所述第一CPU核心停止所述用户程序的执行直到由所述第二CPU核心对所述用户程序的执行停止,或者通过使用不包括在所述分析目标***电路组中的***电路来执行程序。
13.如权利要求9所述的半导体装置,其中
在所述分析执行设置值未存储在所述分析设置寄存器中的正常操作模式下,所述模块选择器基于从所述第一CPU核心供给的模块地址信号输出使所述多个***电路中的每一个***电路单独进入操作状态的个体模块地址信号,以及
在所述分析执行设置值被存储在所述分析设置寄存器中的分析模式下,不管所述模块地址信号如何,所述模块选择器输出使包括在所述分析目标***电路组中的所有***电路都进入操作状态的分析目标选择信号。
14.如权利要求9所述的半导体装置,其中
在所述分析执行设置值未存储在所述分析设置寄存器中的正常操作模式下,所述模块选择器使从所述第一CPU核心供给的模块地址信号移位达针对每个要访问的***电路确定的移位量,并生成单独指定***电路的***地址信号,以及
在所述分析执行设置值被存储在所述分析设置寄存器中的分析模式下,所述模块选择器从所述模块地址信号中输出与包括在所述分析目标***电路组中的所有***电路对应的多个模块地址信号。
15.如权利要求9所述的半导体装置,包括:
中断仲裁器,被配置为当在***电路中发生异常时仲裁分别从所述多个***电路发出的多个中断请求,并且向所述第一CPU核心通知所述多个中断请求中的任意一个中断请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017127226A JP6786449B2 (ja) | 2017-06-29 | 2017-06-29 | 半導体装置 |
JP2017-127226 | 2017-06-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213638A CN109213638A (zh) | 2019-01-15 |
CN109213638B true CN109213638B (zh) | 2023-03-28 |
Family
ID=64738557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810642759.8A Active CN109213638B (zh) | 2017-06-29 | 2018-06-21 | 半导体装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10656201B2 (zh) |
JP (1) | JP6786449B2 (zh) |
CN (1) | CN109213638B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941584B (zh) * | 2019-11-19 | 2021-01-22 | 中科寒武纪科技股份有限公司 | 运算引擎和数据运算方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01262485A (ja) * | 1988-04-12 | 1989-10-19 | Konica Corp | 電子回路装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0297115A (ja) * | 1988-10-03 | 1990-04-09 | Nec Ibaraki Ltd | タイマテスト方式 |
JPH08137824A (ja) * | 1994-11-15 | 1996-05-31 | Mitsubishi Semiconductor Software Kk | セルフテスト機能内蔵シングルチップマイコン |
JPH09325946A (ja) | 1996-06-05 | 1997-12-16 | Toshiba Corp | マルチプロセッサのテスト回路 |
JP2817723B2 (ja) * | 1996-08-20 | 1998-10-30 | 日本電気株式会社 | タイマ診断回路 |
WO2000023315A2 (en) * | 1998-10-21 | 2000-04-27 | Deka Products Limited Partnership | Fault tolerant architecture for a personal vehicle |
JP4422076B2 (ja) * | 2005-07-07 | 2010-02-24 | 株式会社ルネサステクノロジ | データ処理装置、電子制御ユニット、ならびに自動車 |
US20110208948A1 (en) * | 2010-02-23 | 2011-08-25 | Infineon Technologies Ag | Reading to and writing from peripherals with temporally separated redundant processor execution |
JP2014132384A (ja) | 2013-01-04 | 2014-07-17 | Renesas Electronics Corp | マイクコンピュータ及びその制御方法 |
KR20150063848A (ko) * | 2013-12-02 | 2015-06-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
KR101552852B1 (ko) * | 2014-12-15 | 2015-09-14 | 와이피피 주식회사 | 3중화 디지털 보호 계전기 및 그 운영 방법 |
JP2016184189A (ja) * | 2015-03-25 | 2016-10-20 | ルネサスエレクトロニクス株式会社 | 診断プログラム、診断方法および半導体装置 |
JP6602579B2 (ja) * | 2015-07-15 | 2019-11-06 | ルネサスエレクトロニクス株式会社 | 半導体装置およびシステム |
JP6407127B2 (ja) * | 2015-11-05 | 2018-10-17 | 日立オートモティブシステムズ株式会社 | 電子制御装置及び電子制御方法 |
DE102017209856A1 (de) * | 2017-06-12 | 2018-12-13 | Robert Bosch Gmbh | Recheneinheit und Betriebsverfahren hierfür |
US10862670B2 (en) * | 2018-05-18 | 2020-12-08 | Infineon Technologies Ag | Automotive nonce-misuse-resistant authenticated encryption |
-
2017
- 2017-06-29 JP JP2017127226A patent/JP6786449B2/ja active Active
-
2018
- 2018-05-03 US US15/970,057 patent/US10656201B2/en active Active
- 2018-06-21 CN CN201810642759.8A patent/CN109213638B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01262485A (ja) * | 1988-04-12 | 1989-10-19 | Konica Corp | 電子回路装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190004110A1 (en) | 2019-01-03 |
JP2019012319A (ja) | 2019-01-24 |
JP6786449B2 (ja) | 2020-11-18 |
US10656201B2 (en) | 2020-05-19 |
CN109213638A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836373B2 (en) | On-chip field testing methods and apparatus | |
US10042791B2 (en) | Abnormal interrupt request processing | |
US7469273B2 (en) | Multi-processor system verification circuitry | |
US6957371B2 (en) | Method and apparatus for embedded built-in self-test (BIST) of electronic circuits and systems | |
US7882405B2 (en) | Embedded architecture with serial interface for testing flash memories | |
EP3198725B1 (en) | Programmable ic with safety sub-system | |
JPH0260145B2 (zh) | ||
EP2381266B1 (en) | Self-diagnosis system and test circuit determination method | |
Mariani et al. | A flexible microcontroller architecture for fail-safe and fail-operational systems | |
CN109213638B (zh) | 半导体装置 | |
US8046648B1 (en) | Method and apparatus for controlling operating modes of an electronic device | |
JP2016038599A (ja) | マイクロコンピュータ及びマイクロコンピュータシステム | |
KR20050016545A (ko) | 시스템을 부팅하기 위해 프로세서들 및 관련 펌웨어의양호한 그룹을 결정하는 시스템 및 방법 | |
US9702933B1 (en) | System and method for concurrent interconnection diagnostics field | |
US5712822A (en) | Microprocessor memory test circuit and method | |
JP7329568B2 (ja) | チップおよびその設計方法と故障解析方法と故障解析システム | |
CN114487793A (zh) | 芯片功能性测试单元、测试方法、芯片和自动测试*** | |
CN112912958A (zh) | 使用内置自测控制器测试只读存储器 | |
JP6588068B2 (ja) | マイクロコンピュータ | |
US12019118B2 (en) | Processing system, related integrated circuit, device and method | |
US9529047B2 (en) | Integrated circuit device and method of performing self-testing within an integrated circuit device | |
JP2014159982A (ja) | 半導体装置およびその診断方法 | |
US7076711B1 (en) | Automatic testing of microprocessor bus integrity | |
CN116382951A (zh) | 可编程信号聚合器 | |
JP2004302727A (ja) | Fpgaの動作チェック方式 |
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 |