CN102193852B - 系统芯片断点方法 - Google Patents
系统芯片断点方法 Download PDFInfo
- Publication number
- CN102193852B CN102193852B CN201110052997.1A CN201110052997A CN102193852B CN 102193852 B CN102193852 B CN 102193852B CN 201110052997 A CN201110052997 A CN 201110052997A CN 102193852 B CN102193852 B CN 102193852B
- Authority
- CN
- China
- Prior art keywords
- computing element
- breakpoint
- cpu
- soc
- event
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及系统芯片(SoC)断点方法和具有调试方法的SoC。SoC包括CPU和连到CPU的多个计算元件。CPU配置为用任务描述符来为计算元件编制程序,计算元件配置为接收描述符并根据其执行计算。任务描述符包括指定计算元件断点状态的字段。系统级事件状态寄存器(ESR)附接到CPU和计算元件,可由其存取。每个计算元件具有配置为将其当前状态与断点状态比较的比较器。计算元件配置为若其当前状态是断点状态则驱动到ESR的断点事件。每个计算元件具有可操作地附接到其的停止逻辑单元,该单元配置为停止计算元件的操作。ESR配置为驱动到停止逻辑单元的断点事件,以停止除驱动断点事件的计算元件以外的至少一个计算元件。
Description
技术领域
本发明涉及包括中央处理单元(CPU)和多个计算元件的信号处理系统芯片(SoC),具体地说,本发明涉及用于在CPU和多个计算元件进行处理期间实现断点并进行调试的方法。
相关技术
自上世纪九十年代以来,集成电路(IC)设计已经从芯片组观点演变为基于嵌入式内核的系统芯片(SoC)的构思。SoC集成电路包括各种功能块,例如,微处理器、接口、存储器阵列和数字信号处理器(DSP)。由此产生的SoC已经变得相当复杂。此外,在设计这些SoC时所使用的技术与芯片设计的复杂度是不成比例的。除了对组件化的功能块的预先测试之外,块与块之间的接口是通过各种众所周知的技术来进行功能验证的。预防(Preventive)步骤包括写入很多向量以核查设备的功能性,运行代码覆盖工具(code coverage tool)以评估测试结果。扫描链测试在现有技术中是众所周知的,其允许确定包含在功能块中的各个存储器和寄存器的内部状态。通常,不论这些测试等级如何,会在由此产生的SoC中遇到问题。此外,设备已经被制造以后,如果在设计中存在问题,则非常难以确定问题的原因。这个难点可能是由于成为问题的可能来源的功能块的数量以及缺乏对SoC设备的内部操作的可见性。此外,设备的操作可能与通常用于验证功能块的接口的简单功能向量明显不同。
尽管付出了这些努力,但是功能问题会发生在所制造的设备中。发生功能问题的可能性会随着SoC的复杂度的增加而增大。对于这种复杂的系统,几乎不可能写入向量以测试功能块的功能操作的所有不同的组合。而且,可能存在设计者未想到要测试的功能特征。此外,功能问题可能在操作的持续周期以后发生,并且因此不能通过运行简单的测试向量被容易地检测到。
当被制造的SoC发生功能问题时,设计者试图通过观察内部寄存器、内部存储器的状态或者通过监控设备管脚的输出(例如,通过各种现有的技术手段比如对设备管脚的测试探测,以及使用计算机驱动调试接口的更复杂的方法)来确定问题原因。通常,存在对SoC设备的内部状态的不足的可见性。在这些情况下,设计者必须推断出功能失效的原因是什么。因此,在问题被校正以前可能需要对电路设计进行几次修改。
因此,存在对用于调试包括了多个功能块,例如CPU和多个计算元件的系统芯片的方法的需要,并且具有这种方法将是非常有利的。
现在参照图1,图1示出了传统的系统芯片(SoC)10,其包括由交叉矩阵111连接的CPU101和多个计算元件109。系统10包括共用存储器103和用于访问存储器103的共用直接内存存取(DMA)单元105。可选择地,传统的系统10可以配备有总线和总线仲裁器以代替交叉矩阵111。当CPU101在计算元件109中的一个上运行任务时,CPU101将任务描述符传送给计算元件109,所述任务描述符包括各个参数:期望操作(操作码)和指定任务的运算对象,然后,CPU101指示计算元件109开始处理该任务。优选地,具体的操作码被提供在指令字内,该指令字还包括各种控制位。然后,CPU101监控每个计算元件109的完成状态以获得相应的结果,并且在任务接任务的基础上为每个计算元件109准备进一步的任务。
简要概述
根据本发明的一方面,提供了一种具有调试能力的系统芯片(SoC)。该系统芯片(SoC)包括中央处理单元(CPU)和连接到该CPU的多个计算元件。CPU被配置为使用任务描述符来为计算元件编制程序,并且计算元件被配置为接收任务描述符并根据任务描述符来执行计算。任务描述符包括指定计算元件的断点状态的字段。系统级事件状态寄存器(ESR)附接到CPU和计算元件,并且可由CPU和计算元件存取。计算元件中的每一个具有比较器,该比较器被配置为将计算元件的当前状态与断点状态进行比较。计算元件被配置为:如果和/或当计算元件的当前状态是断点状态时,驱动到事件状态寄存器(ESR)的断点事件。计算元件中的每一个具有可操作地附接到该计算元件的停止逻辑单元,其中,停止逻辑单元被配置为停止计算元件的操作。ESR可配置以驱动到停止逻辑单元的断点事件。除了驱动断点事件的计算元件以外的计算元件中的一个或多个可以被停止。调试控制寄存器(DCR)可以附接到CPU和计算元件,并且可由CPU和计算元件存取。DCR将控制输入提供给停止逻辑单元。DCR的控制输入可配置以使当单个计算元件驱动断点事件时,根据来自DCR的控制输入:除了所述单个计算元件以外的所有计算元件被停止、只有单个计算元件被停止、所有计算元件被停止,或者仅有一些而非所有计算元件被停止。
根据本发明的一方面,提供了一种用于调试系统芯片(SoC)的方法。SoC包括中央处理单元(CPU)和连接到该CPU的多个计算元件。CPU使用任务描述符来为计算元件编制程序。任务描述符可以由计算元件接收。(计算元件)根据任务描述符来执行计算。任务描述符包括指定计算元件的断点状态的字段。将计算元件的当前状态与断点状态进行比较。当计算元件的当前状态是断点状态时,驱动到事件状态寄存器(ESR)的断点事件。可以停止除了驱动断点事件的计算元件以外的计算元件的操作。
调试控制寄存器(DCR)被配置,并且根据DCR的配置来执行停止,其中,所述调试控制寄存器(DCR)被附接到CPU和计算元件上并可由CPU和计算元件存取。可以在计算中的一个结束时或者在计算中的一个持续期间对计算元件中的任意一个执行停止。当停止一个或多个计算元件时,CPU可以调试计算元件中的一个或多个。系统级事件状态寄存器(ESR)被附接到CPU和计算元件,并可由CPU和计算元件存取。ESR可以被访问以确定计算元件中的哪一个触发了断点事件,以及哪些计算元件是由于断点事件被停止的。可以根据(来自DCR的)控制输入来控制停止操作。当断点事件由单个计算元件驱动时,根据控制输入:除了所述单个计算元件以外的所有计算元件被停止、所有计算元件被停止、或者一些而非所有计算元件被停止。
当结合附图进行考虑时,前述方面和/或其它方面将根据以下详细描述变得明显。
附图简述
本文参照附图并仅通过举例的方式描述了本发明,其中:
图1示出了现有技术的传统系统芯片(SoC),该系统包括CPU和多个计算元件;
图2A示出了根据本发明的特征将任务描述符中的指令参数传送给计算元件的CPU的简化框图;
图2B示出了根据本发明的特征的方法的简化流程图;
图3和图3A示出了根据本发明的实施方式的具有执行任务中断并启用调试的电路的简化的系统芯片(SoC);
图4是示出了根据本发明的实施方式的电路的操作的流程图;
图5是示出了根据本发明的特征的计算元件中的一部分及其操作的示意性系统图;以及
图6是示出了本发明的一方面的、在视觉处理应用中对多个帧所执行的并行计算的流程图。
详细描述
现在将详细参照本发明的实施方式,所述实施方式的实施例在附图中被示出,其中,相似的参考编号始终指的是相似的元件。下面参照附图描述实施方式以解释本发明。
应该注意的是,尽管本文的讨论主要涉及用于在驱动器辅助应用中使用系统芯片(SoC)进行并行处理的视觉处理系统,但是,通过非限制性实施例,本发明可以可选择地被配置用于其它类型的系统芯片和并行处理。
在详细解释本发明的实施方式以前,应该理解的是,在本发明的应用中,本发明未受限于在以下描述中阐述的、或者在附图中示出的部件的设计和配置的细节。本发明能够具有其它实施方式,或者本发明可以通过各种方式来实施或执行。此外,应该理解的是,本文使用的措辞和术语是出于描述的目的,而不应视为是限制性的。
现在参照附图,图2A示出了将任务描述符中的指令参数传送给计算元件109的CPU101的简化框图。指令参数例如包括调试/ID控制位201、和例如15比特的值字段203。比特的数量通常是由断点状态的数量指示的,以使比特的数量可以适应以二进制,例如以基数2表示的所有可能的状态(例如,CE中的8个断点状态需要3比特的“值”字段)。
现在继续参照图2B,图2B示出了根据本发明的特征的方法20的简化流程图。是否建立断点的决定通常是由CPU101做出的。如果在判定框215中做出建立断点的决定,则CPU101随后写入(步骤211)任务描述符21。CPU101设置控制位201和相应的值字段203。计算元件109接受任务描述符21并内部地读取任务描述符21,并且在判定框205中解码信息,以使计算元件109将值字段203作为ID号或断点来使用。
如果控制位201被设置为“调试”,则值字段203包括(步骤209)断点状态号;与此相反,如果控制位被设置为“ID”,则值字段包括(步骤207)任务的ID值。因此,根据对控制位201的读取,计算元件109随后相应地使用值字段。
现在参照图5,图5是示出了根据本发明的特征的计算元件109中的一部分及其操作的示意性系统图。举例说明,计算元件109的状态机61被示出,该状态机61执行立体图像处理功能。计算元件109的状态在状态1、状态2、状态3、状态4和状态5之间变化,其中,状态1为闲置状态,在状态2中,根据来自第一照相机的图像(LI=左图像)来执行直接内存存取(DMA),在状态3中,根据来自第二照相机的图像(RI=右图像)来执行直接内存存取(DMA),在状态4中,两个图像之间的不一致结果(disparity result,DR)被写入,在状态5中,不一致状态被写入。计算元件109还包括事件检测器60,该事件检测器60实时地接收指示状态1至状态5中的一个的当前状态606。比较器603将当前状态606与先前当调试ID位201被设置为“调试”时在值字段203中指定的断点状态601进行比较。如果当前状态606是在寄存器中编制的断点状态601时,输出断点事件605。
现在参照图3和图3A,图3和图3A示出了根据本发明的实施方式的具有执行任务中断并启用调试的电路30的简化系统芯片(SoC)。首先参照图3A,计算元件109被连接到相应的停止逻辑块313。停止逻辑块313被配置为将停止信号315输出给计算元件(CE)109。计算元件109及其停止逻辑块313被标记为单个计算元件/停止逻辑块309。现在继续参照图3,计算元件/停止逻辑块309中的每一个通过硬连线状态线311被连接到事件状态寄存器(event status register,ESR)301。调试控制寄存器(debugcontrol register,DCR)303通过其输入控制逻辑305连接到CPU101并且可由CPU101访问,并且DCR303通过硬连线控制信号来驱动停止逻辑/计算元件块309。
现在继续参照图4,图4是示出了根据本发明的特征的电路30的操作的流程图40。DCR303由CPU101用控制调试过程的控制参数来初始化(步骤401)。任务描述符21由CPU101写入(步骤211)计算元件109,并且计算元件109读取(步骤213)任务描述符21。在步骤403中,计算元件109开始执行在任务描述符中指定的任务。在步骤405中,将计算元件109的当前硬件状态606与由断点索引203指定的断点状态601进行比较。如果当前硬件状态是断点状态601,则断点事件605发生(判定框407)。否则,计算元件109继续处理(步骤403)其任务。如果计算元件109永远达不到被编制的断点状态601,则在步骤403中,计算元件会在无中断的情况下完成其任务。当断点事件在判定框407中发生时,将信号生成(步骤409)给事件状态寄存器ESR301,并且断点事件605被寄存(即,存储在ESR301中)。事件状态寄存器(ESR)301可由停止逻辑313和CPU逻辑305访问。存储在ESR301中的断点事件605驱动输出到停止逻辑块313以及驱动输出通过逻辑块305到CPU101(步骤411)。CE109的操作的停止是由停止逻辑块313执行的,停止逻辑块313优选地接收存储在DCR303中的控制(事件屏蔽)参数,并且所述停止逻辑块313结合通过状态线311所发送的断点事件605来产生停止信号315,以停止(步骤413)计算元件CE109中的一个或全部。
调试控制寄存器(DCR)303
DCR303是通过启用/禁用系统产生的断点来控制芯片调试功能的读/写寄存器。在下面的实施例中,DCR303是32比特寄存器。
除了上述断点停止机制以外,系统还可以通过CPU101来支持计算元件109的停止机制。CPU101优选地通过soft_hardn位以在计算元件109的“软”停止与“硬”停止之间进行选择,所述soft_hardn位控制计算元件109的CPU停止请求类型。计算元件109可以被配置为当在输入端处从源自ESR301的线接收到确定停止时执行“软”停止或“硬”停止。
软停止:soft_hardn=1
停止请求将作为“软停止”被执行,以使计算元件109的活动在当前任务完成时停止。计算元件109可选择地驱动一确认到ESR301,即,当前任务被完成以及计算元件109处于停止状态。
如果CE109(通过soft_hardn输入信号)被配置为“软停止”模式,则当停止输入信号315被接收时,计算元件109优选地在当前任务完成时停止所有内部活动。因此,该模式允许CPU101在任务完成时调试计算元件109,并且因此在调试操作以后重启计算元件109。该特征是有利的,这是因为计算元件109通常被分派了一列任务,这些任务在没有来自CPU101的干预的情况下被顺序地执行,直到整个任务列表被完成为止。因此,在没有任务停止特征的情况下,计算元件(CE)109继续执行任务,直到其整个任务队列完成为止。
为了支持CPU停止机制,优选地存在两种被使用的信号:停止请求和停止确认。停止请求由CPU101产生,指示计算元件109在当前任务结束时停止处理(即,在软停止时)。停止请求信号是由DCR303中的屏蔽启用位来调节的。停止逻辑块313使用屏蔽和停止信号来产生驱动CE109电路的停止信号315。当任务完成时,CE109使到ESR301的停止确认有效。然后,停止确认状态可由CPU101读取。来自CPU101的停止请求信号仍然被确定有效,以使CE109保持停止状态。当CPU101读取到ESR中的停止确认时,CPU101随后使停止请求无效,并且作为结果,CE109使其停止确认无效并开始处理下一个任务。
硬停止soft_hardn=0:
来自CPU101的停止请求将作为硬停止被执行,以立即停止CE109的活动。
如果计算元件109被配置为“硬停止”模式,则当停止输入信号被接收时立即停止计算元件109。通常,在“硬”停止以后,计算元件109不能被可靠地从“硬”停止状态中被释放而期望CE109能够继续执行当前任务。当硬停止时,CE109的可读存储器元件(即,内部存储器、寄存器和状态机)保持其停止状态,并且可以由CPU101读取。在通过CPU101对CE109进行调试分析以后,CPU101通常在CE109退出停止状态以前重置CE109并为其重新编制程序。
与软停止机制相反,只有一个停止请求信号被用于影响停止机制。停止请求是由指示计算元件109立即停止处理的CPU101确定有效的。保持停止请求信号有效以使CE109维持停止状态。当CPU101使停止请求无效时,CE109开始处理新编制的任务。
在soft_hardn的两种状态下,当计算元件109被停止以后,CPU101接着调试计算元件109。当SoC重置时,soft_hardn=1。
调试启用(de):
de=1:调试被启用
de=0:调试被禁用
当SoC重置时,de=0。
CE109断点的停止自启用:(breakpoint halt selfenable,bphse)
bphse=0:禁用CE109断点的自停止。
bphse=1:启用CE109断点的自停止。
当SoC重置时,bphse=1。
CE109断点的停止全启用:(breakpoint halt all enable,bphae)
bphae=0:禁用全局停止(即,一个CE109断点不会同时停止所有的计算元件109)。
bphae=1:启用全局停止(即,一个CE109断点会同时将停止广播到所有计算元件109)。
当SoC重置时,bphae=1。
控制位bphse和bphae优选为独立地操作,以使以下所有组合都有效:
启用到计算元件109的停止请求(haltRQ):
对于八个计算元件109,优选地保留hrqe(7:0)以启用停止请求
hrqe(7:0)-启用到CE(7:0)109的haltRQ
hrqe(n)=0:禁用到计算元件109n的haltRQ
hrqe(n)=1:启用到计算元件109n的haltRQ
hrqe(n)被设置为允许到特定计算元件109的停止请求haltRQ,并且hrqe(n)通常由到计算元件109的控制线(7:0)实现。
当SoC重置时,hrqe(n)=1。
软件停止:swhalt:
swhalt=0:清除swhalt
swhalt=1:置位swhalt
当被置位时:
如果swh2cpu_en=1,则CPU101进入调试模式。
如果swh2ce_en=1,则计算元件109进入停止模式,条件是haltRQ位和de位(调试启用)也被确定有效。
当SoC重置时,swhalt=0。
到CPU的swhalt的启用:swh2cpu_en:
swh2cpu_en=0:停用到CPU101的swhalt
swh2cpu_en=1:启用到CPU101的swhalt
当被置位时:CPU101根据swhalt 进入调试模式
当SoC重置时,swh2cpu_en=1。
到CPU的CE断点停止的启用:bph2cpu_en:
bph2cpu_en=0:禁用从计算元件109到CPU101的断点事件
bph2cpu_en=1:启用从计算元件109到CPU101的断点事件
当被置位时:CPU101在任意断点停止时进入调试模式。
当SoC重置时,bph2cpu_en=1。
从CPU到CE的停止的启用:cpuh2ce_en:
cpuh2ce_en=0:禁用到CE的CPU停止
cpuh2ce_en=1:启用到CE的CPU停止
当被置位时:当CPU101提出停止时,计算元件109进入停止模式,条件是haltRQen位和调试启用(de)位也被确定有效。
当SoC重置时,cpuh2ce_en=1。
到CE的swhalt的启用:swh2ce_en:
swh2ce_en:=0:禁用到计算元件109的swhalt
swh2ce_en:=1:启用到计算元件109的swhalt
当被置位时:计算元件109根据swhalt进入停止模式,条件是haltRQen位和调试启用(de)位也被确定有效。
当SoC重置时,swh2ce_e=1。
事件状态寄存器(ESR)301
事件状态寄存器(ESR)301通常被配置为是部分只读的。ESR301由断点事件605设置,并且通过计算元件109的停止确认被进一步更新。可选择地,程序员可以访问事件状态寄存器(ESR)301以确定哪个CE109触发了断点事件605,以及哪些计算元件109已经由于断点事件605而停止。
hack_ce(7:0):关于八个计算元件109中的每一个的一个位
这些位通常是只读的:
hack_ce(n)=1:计算元件109n被停止。
hack_ce(n)=0:计算元件109n未被停止。
CPU101使用位hack_ce(7:0)以通过读取事件状态寄存器301的内容来确定何时开始计算元件109的调试(步骤59)。
当SoC重置时,hack_ce(7:0)=0。
bpevent_ce(7:0):关于八个计算元件109中的每一个的一个位
bpevent_ce(n)=1:bpevent_ce(n)通过来自计算元件109的断点事件信号来设置,所述断点事件信号向CPU101指示CE109已经达到预先指定的断点。
bpevent_ce(n)=0:CPU101通过将“1”写入bpevent_ce(n)位来可选择地清除事件。
当SoC重置时,bpevent_ce(n)=0。
现在参照图6,图6示出了在视觉处理应用中对多个帧所执行的并行计算的流程图70。多个图像帧通过一个或两个照相机来获取。从上至下示出了控制流程,其中,时间被分成三个主要的块,这些主要的块指示对帧(n-1)、帧n和帧(n+1)的处理。在帧(n)中示出了关于一个帧的完整流程,由于帧之间的依赖性使得前一帧和后一帧被部分地包含。计算元件109被标记VCE(vision computing element),其指示视觉计算元件109。当图像帧被接收之后,处理单元(即,CPU101、视觉计算元件109)被激活,其中,一些处理单元是并行的,而另一些处理单元是串行的。
现在参照帧n,CPU101通过将任务描述符写入(步骤711)计算元件VCE0和VCE1来为VCE1配置任务。
VCE0被分派(步骤713)接收当前图像帧的任务。当第一帧被接收(步骤713)时,VCE1执行构造“金字塔”的任务(步骤717),其中,以各种图像分辨率准备当前图像帧的图像数据以用于进一步的处理。当执行了任务717以后,VCE1随后执行对图像帧内所关注的对象制作列表的任务721。该列表被传送给CPU101,CPU101随后根据候选对象的列表来构造任务(步骤723)和任务队列。
在步骤723以后,VCE2、VCE3和VCE4全部开始并行处理。在步骤701中,VCE2执行分类任务,并且对图像帧中的所关注的对象进行分类,在步骤703中,VCE3为对象应用空间过滤,并且在步骤705中,VCE4为对象应用不同的空间过滤。将步骤701、703和705中的处理结果输出给CPU101,该CPU在做出决定的步骤707中整合数据,并且将可疑对象的列表传送给VCE5以初始化跟踪(步骤709)。
在进行上述处理的同时,CPU101(步骤715)根据从前一图像帧(n-1)接收到的对象来准备任务。在步骤719中,随着时间的推移,VCE5将前一帧和当前帧一起处理,同时,VCE5通过在不同帧的图像之间进行比较来执行对象跟踪。
将被跟踪对象的列表从VCE5传送到CPU101,或优选地传送到例如在步骤717中为下一帧(n+1)准备任务的第二CPU101。
考虑到该流程,能够看出CPU101能如何在各个时刻为多个计算元件109提前建立任务队列。
SoC应用中的断点实施例
继续参照图6,图6是示出了根据本发明的实施方式用于在系统芯片中编制程序并执行断点的方法的示例性流程。例如,如果在步骤701、705中,来自VCE2和VCE4的输出存在问题,则可以期望当VCE2109和/或VCE4109已经达到其处理过程中的某一阶段时停止VCE2109和/或VCE4109,以便随后确定哪个VCE109已经达到关于当前处理的错误结果,其中,VCE2和VCE4都将数据输出给CPU101以便做出决定(步骤707)。CPU101分别对具有所关注的断点状态601的VCE2109和VCE4109编制程序。然后,CPU101为停止逻辑块313编制程序,以当从任意VCE109接收断点时停止所有VCE109。一旦VCE109中的一个达到预先编制的断点状态601,则所有VCE109被停止。ESR301指示哪个VCE109是引起中断的原因,然后,CPU101能够调查VCE2109和VCE4109(以及系统中的任意其它VCE109)的内部状态。
虽然已经结合有限数量的实施方式描述了本发明,但是应该清楚的是,可以对本发明进行很多改变、修改和其它应用。
Claims (15)
1.一种具有调试能力的系统芯片SoC,所述系统芯片包括:
中央处理单元CPU;
多个计算元件,其可操作地连接到所述CPU,其中,所述计算元件包括在多个硬件状态之间变化的状态机,其中,所述CPU被配置为使用任务描述符来为所述计算元件编制程序,并且所述计算元件被配置为接收所述任务描述符并根据所述任务描述符来执行计算,其中,所述任务描述符包括指定所述计算元件的断点状态的字段;以及
系统级事件状态寄存器ESR,其可操作地附接到所述CPU和所述计算元件,并可由所述CPU和所述计算元件存取;
其中,所述计算元件中的每一个具有比较器,所述比较器被配置为将所述计算元件的当前状态与所述断点状态进行比较,其中,所述计算元件被配置为如果所述计算元件的当前状态是所述断点状态,则驱动到所述事件状态寄存器ESR的断点事件;
其中,所述计算元件中的每一个具有可操作地附接到该计算元件的停止逻辑单元,其中,所述停止逻辑单元被配置为停止所述计算元件的操作,
其中,所述ESR能够配置为驱动到所述停止逻辑单元的断点事件,以使除了驱动所述断点事件的计算元件以外的所述计算元件中的至少一个被停止。
2.如权利要求1所述的系统芯片SoC,还包括:
调试控制寄存器DCR,其可操作地附接到所述CPU和所述计算元件,并且可由所述CPU和所述计算元件存取;其中,所述DCR将控制输入提供给所述停止逻辑单元。
3.如权利要求2所述的系统芯片SoC,其中,所述DCR的所述控制输入可配置成当单个计算元件驱动所述断点事件时,根据来自所述DCR的所述控制输入,除了所述单个计算元件以外的所有所述计算元件被停止。
4.如权利要求2所述的系统芯片SoC,其中,所述DCR的所述控制输入可配置成当单个计算元件驱动所述断点事件时,根据来自所述DCR的所述控制输入,所有所述计算元件被停止。
5.如权利要求2所述的系统芯片SoC,其中,所述DCR的所述控制输入可配置成当单个计算元件驱动所述断点事件时,根据来自所述DCR的所述控制输入,一些而非所有所述计算元件被停止。
6.一种用于调试系统芯片SoC的方法,所述SoC包括中央处理单元CPU、可操作地连接到所述CPU的多个计算元件以及可操作地附接到所述CPU和所述计算元件并由所述CPU和所述计算元件可存取的系统级事件状态寄存器ESR,所述方法包括:
由所述计算元件读取从所述CPU接收到的任务描述符;
由所述计算元件开始在所述任务描述符中所指定的计算,其中,所述计算元件包括在多个硬件状态之间变化的状态机,其中,所述任务描述符包括指定所述计算元件的断点状态的字段;
将所述计算元件的当前状态与所述断点状态进行比较;
当所述计算元件的当前状态是所述断点状态时,由所述计算元件驱动到所述事件状态寄存器ESR的断点事件,从而将所述断点事件存储在所述事件状态寄存器ESR中;
驱动到所述计算元件的来自所述ESR的输出;以及
停止除了驱动所述断点事件的计算元件以外的所述计算元件中的至少一个的操作。
7.如权利要求6所述的方法,还包括:
配置一调试控制寄存器DCR,所述调试控制寄存器DCR可操作地附接到所述CPU和所述计算元件,并且可由所述CPU和所述计算元件存取;以及根据对所述DCR的配置来执行所述停止。
8.如权利要求6或7所述的方法,其中,所述停止可选择地是在所述计算中的一个结束时,或者在所述计算中的一个持续期间内,针对所述计算元件中的任意一个的。
9.如权利要求6或7所述的方法,还包括:
在所述停止时,所述CPU调试所述计算元件中的至少一个。
10.如权利要求6所述的方法,还包括:
访问所述ESR以确定所述计算元件中的哪一个触发了所述断点事件。
11.如权利要求6所述的方法,其中,一系统级事件状态寄存器ESR可操作地附接到所述CPU和所述计算元件,并且可由所述CPU和所述计算元件存取,所述方法还包括:
访问所述ESR以确定哪些计算元件由于断点事件被停止。
12.如权利要求6所述的方法,在所述停止以前,所述方法还包括:
根据控制输入来配置所述停止。
13.如权利要求12所述的方法,其中,所述驱动所述断点事件是源自单个计算元件,所述方法还包括:
根据所述控制输入,停止除了驱动所述断点事件的计算元件以外的所有所述计算元件。
14.如权利要求12所述的方法,其中,所述驱动所述断点事件是源自单个计算元件,所述方法还包括:
根据所述控制输入,停止所有所述计算元件。
15.如权利要求12所述的方法,其中,所述驱动所述断点事件是源自单个计算元件,所述方法还包括:
根据所述控制输入,停止一些但非所有所述计算元件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10155793.2 | 2010-03-08 | ||
EP10155793.2A EP2365441B1 (en) | 2010-03-08 | 2010-03-08 | System on chip breakpoint methodology |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102193852A CN102193852A (zh) | 2011-09-21 |
CN102193852B true CN102193852B (zh) | 2015-04-01 |
Family
ID=42110160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110052997.1A Active CN102193852B (zh) | 2010-03-08 | 2011-03-04 | 系统芯片断点方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8656221B2 (zh) |
EP (1) | EP2365441B1 (zh) |
CN (1) | CN102193852B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9008369B2 (en) | 2004-04-15 | 2015-04-14 | Magna Electronics Inc. | Vision system for vehicle |
US9436880B2 (en) | 1999-08-12 | 2016-09-06 | Magna Electronics Inc. | Vehicle vision system |
US9555803B2 (en) | 2002-05-03 | 2017-01-31 | Magna Electronics Inc. | Driver assistance system for vehicle |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5877897A (en) | 1993-02-26 | 1999-03-02 | Donnelly Corporation | Automatic rearview mirror, vehicle lighting control and vehicle interior monitoring system using a photosensor array |
US7655894B2 (en) | 1996-03-25 | 2010-02-02 | Donnelly Corporation | Vehicular image sensing system |
US7972045B2 (en) | 2006-08-11 | 2011-07-05 | Donnelly Corporation | Automatic headlamp control system |
US8726209B1 (en) * | 2012-02-14 | 2014-05-13 | C{dot over (a)}dence Design System, Inc. | Method and system for automatically establishing a component description format (CDF) debugging environment |
US8799715B2 (en) * | 2012-06-26 | 2014-08-05 | Apple Inc. | System on a chip (SOC) debug controllability |
CN105740119A (zh) * | 2016-01-29 | 2016-07-06 | 华为技术有限公司 | 一种芯片及芯片内多核的调试方法 |
KR102470893B1 (ko) * | 2018-06-27 | 2022-11-25 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355468A (en) * | 1992-04-06 | 1994-10-11 | Unisys Corporation | System for halting synchronous digital modules |
US6134676A (en) | 1998-04-30 | 2000-10-17 | International Business Machines Corporation | Programmable hardware event monitoring method |
US6598178B1 (en) | 1999-06-01 | 2003-07-22 | Agere Systems Inc. | Peripheral breakpoint signaler |
US7191373B2 (en) | 2001-03-01 | 2007-03-13 | Syntest Technologies, Inc. | Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques |
US6857084B1 (en) | 2001-08-06 | 2005-02-15 | Lsi Logic Corporation | Multiprocessor system and method for simultaneously placing all processors into debug mode |
US9003376B2 (en) * | 2002-08-09 | 2015-04-07 | Texas Instruments Incorporated | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems |
US7080283B1 (en) | 2002-10-15 | 2006-07-18 | Tensilica, Inc. | Simultaneous real-time trace and debug for multiple processing core systems on a chip |
US7367016B2 (en) * | 2003-07-14 | 2008-04-29 | Sun Microsystems, Inc. | Method and system for expressing the algorithms for the manipulation of hardware state using an abstract language |
US7219265B2 (en) | 2003-12-29 | 2007-05-15 | Agere Systems Inc. | System and method for debugging system-on-chips |
KR100880832B1 (ko) | 2004-02-10 | 2009-01-30 | 삼성전자주식회사 | 코-디버깅 기능을 지원하는 반도체 집적회로 및 반도체집적회로 테스트 시스템 |
US7444549B1 (en) | 2005-01-11 | 2008-10-28 | Sun Microsystems, Inc. | Method and apparatus for facilitating debugging of an integrated circuit |
US20090265582A1 (en) * | 2005-01-25 | 2009-10-22 | Nxp B.V. | Data processing system and method of debugging |
US8407528B2 (en) * | 2009-06-30 | 2013-03-26 | Texas Instruments Incorporated | Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems |
-
2010
- 2010-03-08 EP EP10155793.2A patent/EP2365441B1/en active Active
- 2010-05-13 US US12/779,422 patent/US8656221B2/en active Active
-
2011
- 2011-03-04 CN CN201110052997.1A patent/CN102193852B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436880B2 (en) | 1999-08-12 | 2016-09-06 | Magna Electronics Inc. | Vehicle vision system |
US9555803B2 (en) | 2002-05-03 | 2017-01-31 | Magna Electronics Inc. | Driver assistance system for vehicle |
US9008369B2 (en) | 2004-04-15 | 2015-04-14 | Magna Electronics Inc. | Vision system for vehicle |
US9191634B2 (en) | 2004-04-15 | 2015-11-17 | Magna Electronics Inc. | Vision system for vehicle |
US9428192B2 (en) | 2004-04-15 | 2016-08-30 | Magna Electronics Inc. | Vision system for vehicle |
Also Published As
Publication number | Publication date |
---|---|
US8656221B2 (en) | 2014-02-18 |
CN102193852A (zh) | 2011-09-21 |
EP2365441A1 (en) | 2011-09-14 |
EP2365441B1 (en) | 2018-01-24 |
US20110219217A1 (en) | 2011-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193852B (zh) | 系统芯片断点方法 | |
US9720797B2 (en) | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller | |
CN109117391B (zh) | 用于存储器系统的控制器 | |
US9223677B2 (en) | Generation of trace data in a multi-processor system | |
US7506205B2 (en) | Debugging system and method for use with software breakpoint | |
US7328380B2 (en) | Memory scrubbing logic | |
US20170024266A1 (en) | Memory system, information processing system, and host device | |
TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
JP2016009489A (ja) | データ処理装置用のメモリ・ビルトイン・セルフテスト | |
US9372702B2 (en) | Non-disruptive code update of a single processor in a multi-processor computing system | |
US10067710B2 (en) | Detecting buffer overflows in general-purpose GPU applications | |
TW200935246A (en) | Optimizing execution of single-threaded programs on a multiprocessor managed by compilation | |
US10078113B1 (en) | Methods and circuits for debugging data bus communications | |
CN100334561C (zh) | 程序调试装置、程序调试方法 | |
Restuccia et al. | Time-predictable acceleration of deep neural networks on fpga soc platforms | |
Jalle et al. | Contention-aware performance monitoring counter support for real-time MPSoCs | |
CN109086081B (zh) | 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质 | |
KR102550886B1 (ko) | 시스템 온 칩 및 그 동작 방법 | |
US7694175B2 (en) | Methods and systems for conducting processor health-checks | |
US10962593B2 (en) | System on chip and operating method thereof | |
US7251751B2 (en) | Diagnostic mechanisms within multi processing systems | |
EP2639692A2 (en) | Memory dump program, information processing apparatus, and memory dump method | |
CN107065737B (zh) | 通过使用通用微处理器来调试plc的方法 | |
JP7236811B2 (ja) | 情報処理装置 | |
KR20160075071A (ko) | 위성 상태를 기록하는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: WUBISHI VISUAL TECHNOLOGY CO., LTD. Free format text: FORMER OWNER: MOBILEYE TECHNOLOGIES LTD. Effective date: 20141120 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20141120 Address after: Israel Jerusalem Applicant after: MOBILEYE TECHNOLOGIES LTD. Address before: Cyprus Nicosia Applicant before: Mobileye Technologies Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |