CN110347639A - 片上系统及其操作方法 - Google Patents

片上系统及其操作方法 Download PDF

Info

Publication number
CN110347639A
CN110347639A CN201910228208.1A CN201910228208A CN110347639A CN 110347639 A CN110347639 A CN 110347639A CN 201910228208 A CN201910228208 A CN 201910228208A CN 110347639 A CN110347639 A CN 110347639A
Authority
CN
China
Prior art keywords
processor
debugging
soc
information extraction
extraction command
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
Application number
CN201910228208.1A
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110347639A publication Critical patent/CN110347639A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了片上系统及其操作方法。所述片上系统(SoC)包括:多个处理器,被配置为:响应于在死锁状态下接收的各自的信息提取命令,存储各自的调试信息,其中,所述多个处理器具有不同的架构;系统总线,连接到所述多个处理器;SoC管理器,被配置为:响应于检测到死锁状态的发生,根据所述多个处理器中的每个处理器的架构不同地生成各自的信息提取命令,并通过系统总线将各自的信息提取命令发送至所述多个处理器。

Description

片上系统及其操作方法
本申请要求于2018年4月3日提交至韩国知识产权局的第10-2018-0038758号韩国专利申请的优先权和2018年7月27日提交至韩国知识产权局的第10-2018-0087692号韩国专利申请的优先权,所述韩国专利申请的公开通过整体引用包含于此。
技术领域
本发明构思涉及SoC及其操作方法。
背景技术
近年来,SoC已经被越来越多地使用。SoC在包括一个或多个处理器SoC的单个芯片中实现具有各种功能的复杂系统。包括在SoC中的多个处理器可在发送和接收必要数据时被操作。在SoC的这样的操作期间,可能发生意外的死锁(deadlock)状态。为了使开发人员或用户能够辨识死锁状态的原因,从包括在SoC中的处理器获得调试所需的调试信息的功能可在SoC中被实现。
发明内容
根据本发明构思的示例实施例提供一种片上系统(SoC)及其操作方法,SoC包括根据不同的架构设计并安装在其中的多个处理器,SoC能够在发生死锁状态时考虑所述多个处理器中的每个处理器的架构提取和/或存储调试信息。
根据示例实施例,一种SoC包括:多个处理器,被配置为:响应于在死锁状态下接收的各自的信息提取命令,存储各自的调试信息,其中,所述多个处理器具有不同的架构;系统总线,连接到所述多个处理器;SoC管理器,被配置为:响应于检测到死锁状态的发生,根据所述多个处理器中的每个处理器的架构不同地生成各自的信息提取命令,并通过系统总线将各自的信息提取命令发送至所述多个处理器。
SoC管理器还被配置为:在所述多个处理器响应于各自的信息提取命令存储各自的调试信息之后,对所述多个处理器和系统总线进行重置。
总线是与系统总线物理地分离或通过对系统总线进行划分而与系统总线逻辑地分离的调试总线,其中,SoC管理器响应于检测到死锁状态,通过调试总线将各自的信息提取命令发送至所述多个处理器。
各自的调试信息包括包含在所述多个处理器中的至少一个处理器中的状态寄存器的比特值。
SoC管理器包括:SoC控制器,被配置为:检测死锁状态;调试主机,被配置为:将各自的信息提取命令发送至所述多个处理器。
所述多个处理器中的至少一个处理器包括:中央处理器(CPU),被配置为:执行算术运算;调试资源,被配置为:存储由CPU以预定周期生成的状态信息,并响应于相应的信息提取命令,输出至少一部分状态信息作为相应的调试信息。
由调试资源输出的相应的调试信息被存储在不被所述多个处理器和系统总线的重新启动重置的存储空间中。
所述多个处理器中的至少一个处理器包括:中央处理器(CPU),被配置为:执行算术运算;子组件,被配置为:响应于相应的信息提取命令,从CPU提取相应的调试信息并存储相应的调试信息。
所述多个处理器中的至少一个处理器包括:中央处理器(CPU),被配置为:执行包括在相应的信息提取命令中的预定指令,以提取相应的调试信息并将相应的调试信息存储在不被所述多个处理器和系统总线的重新启动重置的存储区域中。
所述多个处理器中的每个处理器包括:调试主机,被配置为:响应于相应的信息提取命令,存储相应的调试信息。
所述多个处理器中的至少一个处理器包括:中央处理器(CPU),被配置为:执行算术运算;调试资源,被配置为:存储由CPU以预定周期生成的状态信息,其中,调试主机响应于相应的信息提取命令,将至少一部分状态信息标记为相应的调试信息。
所述多个处理器中的至少一个处理器包括:中央处理器(CPU),被配置为:执行算术运算;子组件,被配置为:从CPU提取相应的调试信息并存储相应的调试信息。
调试主机被配置为:响应于相应的信息提取命令,激活子组件。
调试主机被配置为:响应于相应的信息提取命令,控制子组件从CPU提取相应的调试信息。
调试主机被配置为:响应于相应的信息提取命令,将相应的调试信息存储在不被所述多个处理器和系统总线的重新启动重置的存储空间中。
根据示例实施例,一种SoC包括:多个处理器,所述多个处理器中的每个处理器包括第一接口、第二接口和中央处理器(CPU);系统总线,连接到第一接口;至少一个调试主机,连接到第二接口;SoC控制器,通过系统总线连接到所述多个处理器,并被配置为:检测所述多个处理器中的死锁状态,其中,调试主机被配置为:当发生死锁状态时,响应于SoC控制器的指令,将基于所述多个处理器中的每个处理器的架构生成的各自的信息提取命令发送至所述多个处理器;其中,所述多个处理器被配置为:响应于各自的信息提取命令,生成各自的状态信息。
所述多个处理器中的每个处理器包括所述至少一个调试主机中的调试主机。
调试主机通过系统总线连接到第二接口。
各自的状态信息包括紧接在发生死锁状态之前和之后的与所述多个处理器中的至少一个处理器有关的状态信息。
根据示例实施例,一种SoC包括:第一处理器,根据第一架构而设计;第二处理器,根据与第一架构不同的第二架构而设计;SoC控制器,被配置为:检测第一处理器和第二处理器中的至少一个中的死锁状态;调试主机,连接到第一处理器和第二处理器中的每个的从接口,并被配置为:当发生死锁状态时,在第一处理器和第二处理器被重置之前,通过经由从接口将各自的信息提取命令发送至第一处理器和第二处理器,来获得关于第一处理器和第二处理器的各自的调试信息;其中,第一处理器和第二处理器被配置为:响应于信息提取命令,使用不同的方法来存储各自的调试信息。
附图说明
从以下结合附图的具体实施方式,将更加清楚地理解本发明构思的以上和其他方面,其中:
图1是示出根据示例实施例的片上系统(SoC)的框图;
图2和图3是示出根据示例实施例的包括在SoC中的处理器的框图;
图4和图5示出根据示例实施例的SoC的操作;
图6是示出根据示例实施例的SoC的框图;
图7和图8示出根据示例实施例的SoC的操作;
图9和图10示出根据示例实施例的SoC的操作;
图11至图14是被提供为描述根据示例实施例的SoC的操作的流程图;
图15是示出根据示例实施例的包括SoC的电子装置的框图;
图16是示出根据示例实施例的包括SoC的自主驾驶车辆的框图。
具体实施方式
在下文中,将参照附图详细描述本发明构思的示例实施例。
图1是示出根据示例实施例的片上系统(SoC)的框图。
参照图1,SoC 10可包括诸如多个处理器11至13、图形处理器(GPU)14、数字信号处理器(DSP)15、SoC管理器16、存储器控制器17等的组件11至17。组件11至17可在通过系统总线18发送和接收数据时被操作。系统总线18可包括连接到组件11至17的多个接口(例如,主接口(master interface)和从接口(slave interface))。
例如,SoC管理器16可控制SoC 10的整体操作,并可包括电源管理逻辑、时钟管理逻辑等。存储器控制器17可包括这样的逻辑:用于将数据和控制命令发送至设置在SoC 10外部的易失性存储器或非易失性存储器并从设置在SoC 10外部的易失性存储器或非易失性存储器接收数据和控制命令的逻辑。GPU 14可处理将显示在连接到SoC 10的显示装置上的图像数据。
SoC 10可安装在诸如电子装置、自主驾驶车辆等的各种产品中,以通过多个处理器11至13来执行控制这些产品所需的操作。如果需要,多个处理器11至13可通过系统总线18将数据发送至SoC 10的其它组件,并从SoC 10的其它组件接收数据。
当SoC 10进入死锁状态时,SoC 10可将用于分析死锁状态的发生的原因的信息、导致死锁状态的源代码等作为调试信息提供给开发人员或用户。多个组件11至17可根据不同架构来设计和实现,因此,当发生死锁状态时必须执行以提取并存储调试信息的处理可针对多个组件11至17中的每个而不同。
例如,第一处理器11可以以预定周期将状态信息(或状况信息)存储在自身的内部调试资源中。因此,当发生死锁状态时,可通过读取和存储在第一处理器11的内部调试资源中存储的部分状态信息来获得关于第一处理器11的调试信息。另一方面,在第二处理器12和第三处理器13中,可不提供用于将状态信息存储在自身的调试资源中的功能。因此,当SoC 10进入死锁状态时,从第二处理器12和第三处理器13提取调试信息并存储调试信息的操作可在SoC 10的整体或者第二处理器12和第三处理器13被选择性地重新启动之前被执行。这里,重新启动可在没有用户操作的情况下自动地启动。根据示例实施例,第一处理器11至第三处理器13中的每个的状态信息可以是存储在包括在相应的处理器中的状态寄存器中的比特值。
SoC管理器16生成用于存储调试信息的信息提取命令,并将用于存储调试信息的信息提取命令发送至第二处理器12和第三处理器13。SoC管理器16可考虑第二处理器12和第三处理器13中的每个的架构来生成信息提取命令。响应于信息提取命令,第二处理器12和第三处理器13可输出和/或存储发生死锁状态的时间点、发生死锁状态的时间点之前和之后(优选但不是必须地,紧接在发生死锁状态的时间点之前和之后)的各个状态信息作为调试信息。例如,在死锁状态的发生之前和之后的预定时间段内的状态信息可被输出并存储为调试信息。
例如,当负责算术运算的CPU和能够从CPU获得状态信息的子组件包括在第二处理器12中时,SoC管理器16激活该子组件,以提取和/或存储关于第二处理器12的调试信息。此外,例如,SoC管理器16可将第三处理器13切换至调试模式,并可将包括预定指令的信息提取命令发送至第三处理器13。响应于包括在信息提取命令中的指令,关于包括在第三处理器13中的CPU的状态信息可被提取和/或存储为调试信息。例如,调试信息可被存储在与第一处理器11至第三处理器13不同的单独的存储空间中。存储空间可以是尽管SoC 10的整体或第一处理器11至第三处理器13中的至少部分的选择性的重新启动但不被重置的存储空间,并可被设置为非易失性存储器等。
与此同时,发生在SoC 10中的死锁状态可能伴随系统总线18的错误。因此,SoC管理器16可通过不同于系统总线18的单独的路径,将用于存储调试信息的信息提取命令发送至组件11至组件17中的至少一部分。例如,系统总线18可被逻辑地划分以定义第一总线和第二总线,并且第二总线在正常操作模式下不被激活并仅在发生死锁状态时被激活以被使用。可选地,可设置与系统总线18物理地分离的调试总线以在死锁状态下使用。
图2和图3是示出根据示例实施例的包括在SoC中的处理器的框图。
首先,参照图2,根据图2中示出的示例实施例的SoC 20可包括处理器21、系统总线25和SoC管理器26。SoC管理器26可包括检测是否发生死锁状态的SoC控制器27、当发生死锁状态时将信息提取命令发送至处理器21以获得调试信息的调试主机(debugging master)28。
处理器21可具有负责算术运算的至少一个CPU 22。CPU 22可具有用于将数据发送至SoC 20的其他组件并从SoC 20的其他组件接收数据的第一接口23和第二接口24。例如,CPU 22可通过第一接口23和系统总线25将数据发送至SoC控制器27并从SoC控制器27接收数据,并且可通过第二接口24和系统总线25将数据发送至调试主机28并从调试主机28接收数据。第一接口23可以是主接口,第二接口24可以是从接口。换言之,当通过第二接口24在处理器21与调试主机28之间发送并接收数据时,处理器21可作为用于调试主机28的从装置被操作。CPU 22可包括处理多条指令和数据配置软件的两个或更多个核。
在正常操作下,CPU 22可通过系统总线25将数据发送至SoC控制器27和SoC 20的其他组件,并从SoC控制器27和SoC 20的其他组件接收数据。换言之,CPU 22可通过第一接口23和系统总线25将数据发送至除了SoC控制器27之外的其他组件(诸如,GPU、数字信号处理器(DSP)、内部存储器、存储器控制器等),并从其他组件接收数据。
当SoC 20进入死锁状态时,包括在SoC 20中的大多数组件以及处理器21会停止操作并且不会响应。因此,当SoC 20进入死锁状态时,可能难以确定执行什么指令和访问什么数据。此外,当SoC 20被重新启动以解决死锁状态时,所有组件被重置。因此,可能难以辨识导致死锁状态的指令、数据和/或代码。由于上述情况,用于消除死锁状态的原因的调试操作的效率可被降低。
根据示例实施例,调试主机28可通过检测死锁状态的SoC控制器27的指令来提取关于处理器21的调试信息。调试主机28可通过在正常操作模式下不使用的第二接口24将用于获得调试信息的信息提取命令发送至CPU 22。例如,调试主机28可将适用于处理器21的架构的适当的信息提取命令发送至CPU 22。系统总线25可具有逻辑地划分的第一总线和第二总线,并且信息提取命令可通过在正常操作模式下不使用的第二总线来发送。
例如,当发生死锁状态时,调试主机28可生成包括用于强制输出处理器21的状态作为调试信息的指令的信息提取命令,并将信息提取命令发送至处理器21。由处理器21通过指令输出的调试信息可被存储在当SoC 20被调试主机28或SoC控制器27重新启动时不被重置的预定存储空间中。
在其他示例实施例中,通过由调试主机28发送的信息提取命令,包括在处理器21中并与CPU 22不同的子组件可被激活。子组件可从CPU 22提取调试信息,或可控制CPU 22将调试信息存储在自身的特定存储空间中。如可从上述示例实施例看出的那样,调试主机28可考虑处理器21的架构来选择适用于获得调试信息的指令,并包括发送至处理器21的信息提取命令中的指令。调试主机28可直接生成如上的信息提取命令,或可从SoC控制器27接收信息提取命令,以发送至处理器21。与此同时,调试主机28可与外部调试工具(例如,联合测试行动组(JTAG)调试工具)联合操作。
接下来,参照图3,根据示例实施例的SoC 30可包括处理器31、系统总线36、SoC控制器37等。根据示例实施例,调试主机35可设置在CPU 32与系统总线36之间。在图3中,调试主机35包括在处理器31中,但是调试主机35被设置为系统总线36与处理器31之间的单独的组件。当SoC 30具有与系统总线36分离的单独的调试总线时,调试主机35可连接在调试总线与处理器31之间。调试主机35可通过第二接口34(即,从接口)将数据发送至CPU 32并从CPU 32接收数据。
当SoC 30进入死锁状态时,SoC控制器37可通过系统总线36将指令发送至调试主机35,以获得调试信息。在死锁状态下,系统总线36的操作也被停止。因此,系统总线36可被划分为第一总线和第二总线,第一总线仅可在正常操作下被使用,第二总线仅可在发生死锁状态时被使用。SoC控制器37可通过第二总线将用于获得调试信息的指令发送至调试主机35。可选地,如先前所述,通过从系统总线36逻辑地划分的单独的调试总线,SoC控制器37可将用于获得调试信息的指令发送至调试主机35。
调试主机35可通过第二接口34访问CPU 32。调试主机35可从CPU 32强制地提取调试信息并存储调试信息,或可控制CPU 32为自身存储调试信息。调试信息可被存储在当SoC30或处理器31被重新启动时不被重置的存储空间中。例如,调试信息可被存储在包括在SoC30中的处理器31内的存储空间中,或除了处理器31之外的组件的存储空间中。
图4和图5示出根据示例实施例的SoC的操作。
参照图4和图5,SoC 100可包括多个处理器110至130、GPU 140、数字信号处理器150、SoC管理器160、存储器控制器170和系统总线180。SoC管理器160可包括SoC控制器161和调试主机162。
包括在SoC 100中的组件可根据将由SoC 100实现或提供的功能而被不同地添加或改变。例如,除了图4和图5中示出的组件之外,还可包括负责视频/音频编解码器处理的逻辑、用于处理由连接到SoC 100的各种传感器收集的信息的逻辑等。
如图4和图5中所示,多个处理器110至130可具有不同的架构。例如,第一处理器110可包括第一CPU 111和调试资源112,并且第一CPU 111的状态信息可以以预定周期存储在调试资源112中。当SoC 100进入死锁状态时,调试主机162访问第一处理器110的调试资源112,以标记或读取存储在调试资源112中的状态信息中的在与发生死锁状态的时间点接近的时间点(例如,紧接在死锁状态的发生之前和之后)存储的状态信息作为调试信息,从而获得关于第一处理器110的调试信息。
以与第一处理器110不同的方式,第二处理器120和第三处理器130可不提供用于自动地和/或周期性地存储可用作调试信息的状态信息的功能。因此,当SoC 100进入死锁状态时,调试主机162可响应于来自SoC控制器161的指令,从第二处理器120和第三处理器130中的每个获得调试信息。
首先,参照图4,当SoC 100进入死锁状态时,多个处理器110至130、GPU 140、数字信号处理器150、存储器控制器170等的操作可被停止。在死锁状态下,系统总线180也不能被正常操作。
死锁状态可由SoC控制器161检测。例如,多个处理器110至130、GPU140、数字信号处理器150和存储器控制器170中的至少一个可在其中包括计数器电路,SoC控制器161可以以预定周期从计数器电路接收信号。因此,如果即使经过预定周期也未从计数器电路接收到信号,则SoC控制器161可确定SoC 100进入死锁状态。可选地,当不管是否从计数器电路接收到信号而发生预定特定情况时,或当指示故障的发生的中断被检测到时,SoC 100可被确定为已经进入死锁状态。
当SoC 100被确定为已经进入死锁状态时,响应于SoC控制器161的指令,调试主机162可将用于获得调试信息的信息提取命令发送至SoC 100的组件中的至少一个组件。参照图5,调试主机162可将信息提取命令发送至多个处理器110至130,但是用于获得调试信息的信息提取命令还可被发送至GPU 140、数字信号处理器150、存储器控制器170等。
信息提取命令可包括根据多个处理器110至130的架构确定的各种指令。例如,通过发送至第一处理器110的信息提取命令,存储在调试资源112中的至少一部分状态信息可被选择为将被单独存储的第一处理器110的调试信息。此外,通过发送至第二处理器120的信息提取命令,子组件122被激活以从第二CPU 121提取调试信息并存储调试信息。在另一示例实施例中,通过来自调试主机162的信息提取命令,可控制第二处理器120强制地输出调试信息。从第二处理器120强制输出的调试信息可由调试主机162存储在SoC100内的预定存储空间中。如先前所述,调试主机162可将调试信息存储在不被SoC 100的重新启动重置的存储空间中。
与此同时,第三处理器130的第三CPU 131可执行包括在从调试主机160接收的信息提取命令中的预定指令,从而提取调试信息,并将调试信息存储在内部寄存器中。调试信息可被存储在不被SoC 100的重新启动重置的存储空间中。例如,存储调试信息的存储空间可以是位于第三CPU 131的外部的存储空间。
总之,多个处理器110至130可具有不同的架构,因此,用于在SoC 100进入死锁状态时提取并存储各自的调试信息的方法也不同。在示例实施例中,SoC控制器161和/或调试主机162识别多个处理器110至130中的每个的架构,从而针对多个处理器110至130中的每个选择用于提取并存储调试信息的合适的方法。SoC控制器161和/或调试主机162可将参照用于提取并存储基于架构选择的调试信息的方法而生成的信息提取命令发送至多个处理器110至130。因此,可使用对于多个处理器110至130中的每个的最优方法来存储调试信息。此外,在SoC 100被重新启动后,开发人员或用户可通过使用调试信息来有效地分析死锁状态的发生的原因。
图6是示出根据示例实施例的SoC的框图。
参照图6,根据示例实施例的SoC 200可包括多个处理器210至230、GPU 240、数字信号处理器250、SoC管理器260、存储器控制器270等。组件210至270可在通过系统总线280彼此通信时被操作。SoC管理器260可包括SoC控制器261和调试主机262。
在图6中,除了系统总线280之外,调试总线290包括在SoC 200中。调试总线290可以是与系统总线280物理地分离的总线,并且可在正常操作模式下维持未激活的状态。当SoC 200进入死锁状态时,调试总线290可被SoC管理器260激活。在下文中,将参照图7和图8更详细地描述SoC 200的操作。
图7和图8示出根据示例实施例的SoC的操作。
参照图7和图8,多个处理器210至230可具有不同的架构。例如,第一处理器210可包括第一CPU 211和调试资源212,并且第一CPU 211可将针对每个规定时间(set period)的状态信息和/或发生死锁状态时的状态信息作为调试信息存储在调试资源212中。因此,当SoC 200进入死锁状态时,在SoC 200被重新启动之前,关于第一处理器210的调试信息可从调试资源212提取,并可被存储在预定存储空间中。当SoC 200的重新启动完成时,存储在存储空间中的调试信息可被提供给用户或开发人员。换言之,在第一处理器210中,调试信息可仅通过选择并单独地存储在调试资源212中存储的部分状态信息来获得。
第二处理器220和第三处理器230可不提供第一处理器210的自动地和/或周期性地存储调试信息的功能。因此,当SoC 200进入死锁状态时,调试主机262可响应来自SoC控制器261的指令,或调试主机262自身可从第二处理器220和第三处理器230中的每个获得调试信息。
首先,参照图7,当SoC 200进入死锁状态时,GPU 240、数字信号处理器250、存储器控制器270等以及多个处理器210至230的操作可被停止。在死锁状态下,系统总线280的操作也被停止。
SoC控制器261可生成用于获得调试信息的信息提取命令,并将用于获得调试信息的信息提取命令发送至调试主机262。可选地,SoC控制器261仅将用于获得调试信息的指令发送至调试主机262,并且调试主机262可生成包括该指令的信息提取命令。换言之,信息提取命令可由SoC控制器261和调试主机262中的至少一个生成。
调试主机262可通过调试总线290将信息提取命令发送至多个处理器210至230。调试总线290可在SoC 200进入死锁状态之后被激活。与此同时,信息提取命令还可被发送至其他组件(诸如,GPU 240、数字信号处理器250、存储器控制器270等)。用于接收信息提取命令的组件的类型和数量由SoC控制器261确定。
多个处理器210至230具有不同的架构,所以发送至多个处理器210至230中的每个的信息提取命令可包括不同的指令。例如,发送至第一处理器210的信息提取命令可包括用于从存储在调试资源212中的状态信息选择调试信息并将选择的调试信息记录在单独的存储空间上的指令。
与第一处理器210不同,第二处理器220可不包括调试资源212。发送至第二处理器220的信息提取命令可包括用于强制第二CPU 221输出调试信息的指令,或可包括用于控制激活子组件222以从第二CPU 221提取调试信息的指令。发送至第三处理器230的信息提取命令可包括由第三CPU 231处理以控制第三CPU 231将调试信息记录在预定存储空间上的指令。换言之,具有根据多个处理器210至230中的每个的架构确定的指令的不同信息提取命令可被不同地发送至多个处理器210至230。
图9和图10示出根据示例实施例的SoC的操作。
首先,参照图9,在根据图9中示出的示例实施例的SoC 300中,多个处理器310至330可分别包括调试主机313、调试主机323和调试主机333。当SoC 300进入死锁状态时,SoC控制器360可将信息提取命令发送至多个处理器310至330中的每个。信息提取命令可包括用于存储和/或提取与处理器310至处理器330进入死锁状态时的状态信息对应的调试信息的指令。系统总线380在死锁状态下不能被正常地操作。因此,SoC 300可具有从系统总线380划分以用于在死锁状态下的操作的调试专用总线。
当第一处理器310的调试主机313接收到信息提取命令时,调试主机313可将周期性地和/或在第一处理器310进入死锁状态时存储在调试资源312中的状态信息标记为调试信息。调试主机313可将已经标记的调试信息存储在当SoC 300被重新启动时不被重置的存储空间中。第二处理器320的调试主机323可响应于信息提取命令而激活子组件322。已经激活的子组件322可从第二CPU 321接收调试信息,并存储调试信息。可选地,调试主机323响应于信息提取命令而直接访问第二CPU 321以强制第二CPU 321输出调试信息。当第三处理器330的调试主机333接收到信息提取命令时,用于控制第三CPU 331提取调试信息的指令可被发送至第三CPU 331。通过上述操作提取的调试信息可被存储在不被SoC 300的重新启动重置的存储空间中,并可在SoC 300被重新启动之后用于调试操作。
根据图10中示出的示例实施例的SoC 400的操作可与图9中示出的SoC 300的操作相似。然而,在图10中示出的示例实施例中,调试总线490可被设置为与系统总线480物理地分离的单独的总线。调试总线490在正常操作下不会被激活,相反,仅可在激活指令由SoC控制器460发送时(例如,在SoC 400进入死锁状态时)被激活。当SoC 400进入死锁状态时,SoC控制器460可通过调试总线490将信息提取命令发送至分别包括在多个处理器410至430中的调试主机413、423和433。调试主机413、423和433可通过使用包括在信息提取命令中的指令从第一CPU 311至第三CPU 321中的每个获得调试信息。
图11至图14是被提供为描述根据示例实施例的SoC的操作的流程图。
首先,参照图11,根据示例实施例的SoC的操作可通过检测死锁状态(S10)开始。死锁状态可由包括在SoC中的SoC控制器来检测。例如,包括在SoC中的多个组件可在其中包括各自的计数器电路,并且每个计数器电路可以以预定周期将信号发送至SoC控制器。当即使经过预定周期SoC控制器也未从多个计数器电路中的每个计数器电路接收到信号时,可确定发生死锁状态。此外,当包括在SoC中的多个组件中的每个组件检测到故障而生成中断时,可确认发生死锁状态。
当检测到死锁状态时,SoC控制器可发送适合多个处理器中的每个的架构的命令(S20)。该命令可以是包括用于提取指示SoC进入死锁状态时的多个处理器中的每个的状态的调试信息的指令的信息提取命令。信息提取命令可通过SoC控制器和调试主机发送至处理器,并且信息提取命令还可被发送至SoC的其它组件。
接收信息提取命令的处理器可响应于信息提取命令而存储和/或输出调试信息(S30)。如先前所述,多个处理器中的每个处理器存储和/或输出调试信息的方法可根据多个处理器中的每个处理器的架构来确定。例如,在处理器包括子组件的情况下,子组件可响应于信息提取命令而被激活。已经被激活的子组件可从包括在处理器中的CPU提取调试信息,并可将调试信息存储在预定存储空间中。在处理器不包括子组件的情况下,包括在信息提取命令中的指令由处理器中的CPU执行,并且调试信息可由CPU存储在存储空间中。存储空间可以是即使在SoC被重新启动时也不被重置的区域。
当调试信息被存储在上述区域中时,SoC可被重新启动(S40)。然而,根据示例实施例,仅进入死锁状态的一些组件可被重新启动。当SoC包括多个处理器并且多个处理器被分组并管理时,重新启动可基于组来执行。
当重新启动完成时,SoC可将在S30中存储的调试信息提供给开发人员或用户,并且开发人员和用户可使用调试信息来执行调试操作(S50)。从而,导致SoC的死锁状态的指令可被快速地辨识,因此,开发人员和用户的调试效率可提高。
图12是用于进一步描述在具有第一架构的处理器中执行图11的S30的示例实施例的流程图。接收信息提取命令的处理器可访问调试资源(S31)。调试资源可以是以预定周期或在包括在处理器中的CPU、核等发生死锁状态时记录状态信息的空间。当接收到信息提取命令时,处理器可检索在发生死锁状态时存储在调试资源中的状态信息(S32)。例如,可在S32中检索在与发生死锁状态的时间点接近的时间点的状态信息。
处理器可存储已经检索到的状态信息作为调试信息(S33)。如先前所述,调试信息可被记录在即使在SoC被重新启动时也不被重置的存储空间中。
图13是用于进一步描述在具有第二架构的处理器中执行图11的S30的示例实施例的流程图。第二架构可与参照图12描述的第一架构不同。
在图13中示出的示例实施例中,包括在处理器中的子组件可由信息提取命令激活(S34)。在S34中激活的子组件可以是访问已经进入死锁状态的处理器中的CPU或核以提取特定信息的逻辑。换言之,激活的子组件可从CPU提取调试信息,并存储调试信息(S35)。调试信息可被记录在SoC被重新启动时不被重置的存储空间中。
图14是用于进一步描述在具有第三架构的处理器中执行图11的S30的示例实施例的流程图。第三架构可与参照图11和图12描述的第一架构和第二架构不同。
在图14中示出的示例实施例中,可执行包括在信息提取命令中的预定指令(S36)。例如,来自信息提取命令的指令可由调试主机或处理器来执行。当指令被执行时,从处理器的CPU或核提取调试信息以被存储在处理器的内部寄存器中(S37)。同时,调试信息可被记录在处理器外部的存储空间中(S38)。如参照图12和图13所述,调试信息可被记录在不被SoC的重新启动重置的存储空间中。
除了SoC进入死锁状态的情况之外,参照图1至图14描述的示例实施例可应用于开发人员或用户为了开发和/或维护的目的需要调试信息的情况。换言之,即使当SoC未进入死锁状态时,需要调试信息的开发人员或用户也控制SoC控制器输出信息提取命令。在这种情况下,包括多个处理器的组件接收信息提取命令,从而存储调试信息。开发人员或用户使用存储的调试信息,使得调试可被执行,而不管死锁状态的进入如何。
图15是示出根据示例实施例的包括SoC的电子装置的框图。
根据图15中示出的示例实施例的电子装置1000(例如,计算机装置)可包括图像传感器1010、输入/输出(I/O)装置1020、存储器1030、SoC 1040、端口1050等。电子装置1000还可包括有线/无线通信装置、电源等。在图15中示出的组件中,可为电子装置1000设置端口1050,以与视频卡、声卡、存储器卡、通用串行总线(USB)装置等进行通信。电子装置1000可以是根据相关领域的智能电话、平板PC、智能可穿戴装置等以及台式计算机和膝上型计算机。
SoC 1040可执行特定操作、指令、任务等。SoC 1040可通过总线1060与除了图像传感器1010、I/O装置1020和存储器1030之外的连接到端口1050的其它装置进行通信。SoC1040可包括根据不同架构设计的多个处理器,并可根据参照图1至图14描述的各种示例实施例获得进入死锁状态时的调试信息。
存储器1030可以是存储电子装置1000的操作所需要的数据或多媒体数据的存储介质。存储器1030可包括易失性存储器(诸如,随机存取存储器(RAM))或非易失性存储器(诸如,闪存)。此外,存储器1030可包括固态硬盘(SSD)、硬盘驱动器(HDD)和光盘驱动器(ODD)中的至少一个作为存储装置。I/O装置1020可包括输入装置(诸如,键盘、鼠标和触摸屏)和输出装置(诸如,提供给用户的显示器和音频输出单元)。
图像传感器1010可被安装在将通过总线1060或其他通信单元连接到SoC1040的封装基底上。图像传感器1010可以以根据参照图1至图14描述的各种示例实施例的形式应用于电子装置1000。
图16是示出根据示例实施例的包括SoC的自主驾驶车辆的框图。
参照图16,自主驾驶车辆1100可包括SoC 1110、视觉传感器1120、主体控制模块(BMC)1130、存储器1140、通信模块1150等。SoC 1110可包括根据不同架构设计的多个处理器,并可根据参照图1至图14描述的各种示例实施例获得进入死锁状态时的调试信息。
SoC 1110可控制视觉传感器1120、主体控制模块1130、存储器1140和通信模块1150,从而提供自主驾驶车辆1100的自主驾驶功能。例如,SoC 1110可使用由视觉传感器1120收集的车辆周围的视觉信息、通过通信模块1150接收的交通信息等来确定驾驶环境,并可基于驾驶环境将主体控制模块1130与车辆的驾驶系统一起控制。
如上所述,根据本发明构思的示例实施例,当具有根据各种架构设计并安装在其中的多个处理器的SoC进入死锁状态时,在SoC被重新启动之前,可基于多个处理器中的每个处理器的架构来控制至少一部分处理器存储和/或输出调试信息。因此,调试使用导致SoC中的死锁状态的处理器的调试信息来执行,使得死锁状态的原因可被准确地辨识,调试的效率也可提高。
上述方法或算法的操作或步骤可被实现为计算机可读记录介质上或通过传输介质传输的计算机可读代码。计算机可读记录介质是可存储之后可由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、光盘(CD)-ROM、数字通用盘(DVD)、磁带、软盘和光学数据存储装置,不限于此。传输介质可包括通过互联网或各种类型的通信信道传输的载波。计算机可读记录介质还可分布在联网的计算机系统上,使得计算机可读代码以分布的方式存储和执行。
根据示例实施例,由附图中的框表示的组件、元件、模块或单元(诸如,图4中的调试资源112、子组件122、调试主机162和SoC控制器161)(在本段中统称为“组件”)中的至少一个可被实现为执行上述各自的功能的各种数量的硬件、软件和/或固件结构。例如,这些组件中的至少一个可使用可通过一个或多个微处理器或者其它控制设备的控制来执行各自的功能的直接电路结构(诸如,存储器、处理器、逻辑电路、查找表等)。此外,这些组件中的至少一个可由包含用于执行特定逻辑功能并由一个或多个微处理器或其它控制设备执行的一个或多个可执行指令的模块、程序或部分代码具体实现。这些组件中的两个或更多个可组合成执行组合的两个或更多个组件的所有操作或功能的单个组件。此外,这些组件中的至少一个的至少部分功能可由这些组件中的另一个执行。以上示例性实施例的功能方面可以以在一个或多个处理器上执行的算法实现。
以上描述中提供的实施例不排除与也在此提供或者或不在此提供但与本发明构思一致的另一示例或另一实施例的一个或多个特征相关联。例如,除非在特定示例的描述中另有提及,否则即使特定示例中描述的事物未在与其不同的示例中进行描述,该事物也可被理解为与不同的示例相关或组合。
尽管以上已经示出并描述示例实施例,但是对本领域技术人员将清楚是,在不脱离由所附权利要求限定的本发明构思的范围的情况下,可进行修改和改变。

Claims (20)

1.一种片上系统,包括:
多个处理器,被配置为:响应于在死锁状态下接收的各自的信息提取命令,存储各自的调试信息,其中,所述多个处理器具有不同的架构;
系统总线,连接到所述多个处理器;
片上系统管理器,被配置为:响应于检测到死锁状态的发生,根据所述多个处理器中的每个处理器的架构不同地生成各自的信息提取命令,并通过与系统总线分离的总线将各自的信息提取命令发送至所述多个处理器。
2.根据权利要求1所述的片上系统,其中,片上系统管理器还被配置为:在所述多个处理器响应于各自的信息提取命令存储各自的调试信息之后,对所述多个处理器和系统总线进行重置。
3.根据权利要求1所述的片上系统,其中,总线是与系统总线物理地分离或通过对系统总线进行划分而与系统总线逻辑地分离的调试总线,
其中,片上系统管理器响应于检测到死锁状态,通过调试总线将各自的信息提取命令发送至所述多个处理器。
4.根据权利要求1所述的片上系统,其中,各自的调试信息包括包含在所述多个处理器中的相应的处理器中的状态寄存器的比特值。
5.根据权利要求1所述的片上系统,其中,片上系统管理器包括:
片上系统控制器,被配置为:检测死锁状态;
调试主机,被配置为:将各自的信息提取命令发送至所述多个处理器。
6.根据权利要求5所述的片上系统,其中,所述多个处理器中的至少一个处理器包括:
中央处理器,被配置为:执行算术运算;
调试资源,被配置为:以预定周期存储由中央处理器生成的状态信息,并响应于相应的信息提取命令,输出至少一部分状态信息作为相应的调试信息。
7.根据权利要求6所述的片上系统,其中,由调试资源输出的相应的调试信息被存储在不被所述多个处理器和系统总线的重新启动重置的存储空间中。
8.根据权利要求5所述的片上系统,其中,所述多个处理器中的至少一个处理器包括:
中央处理器,被配置为:执行算术运算;
子组件,被配置为:响应于相应的信息提取命令,从中央处理器提取相应的调试信息并存储相应的调试信息。
9.根据权利要求5所述的片上系统,其中,所述多个处理器中的至少一个处理器包括:中央处理器,被配置为:执行包括在相应的信息提取命令中的预定指令,以提取相应的调试信息并将相应的调试信息存储在不被所述多个处理器和系统总线的重新启动重置的存储区域中。
10.根据权利要求1所述的片上系统,其中,所述多个处理器中的每个处理器包括:调试主机,被配置为:响应于相应的信息提取命令,存储相应的调试信息。
11.根据权利要求10所述的片上系统,其中,所述多个处理器中的至少一个处理器包括:
中央处理器,被配置为:执行算术运算;
调试资源,被配置为:以预定周期存储由中央处理器生成的状态信息,
其中,调试主机响应于相应的信息提取命令,将至少一部分状态信息标记为相应的调试信息。
12.根据权利要求10所述的片上系统,其中,所述多个处理器中的至少一个处理器包括:
中央处理器,被配置为:执行算术运算;
子组件,被配置为:从中央处理器提取相应的调试信息并存储相应的调试信息。
13.根据权利要求12所述的片上系统,其中,调试主机被配置为:响应于相应的信息提取命令,激活子组件。
14.根据权利要求12所述的片上系统,其中,调试主机被配置为:响应于相应的信息提取命令,控制子组件从中央处理器提取相应的调试信息。
15.根据权利要求10所述的片上系统,其中,调试主机被配置为:响应于相应的信息提取命令,将相应的调试信息存储在不被所述多个处理器和系统总线的重新启动重置的存储空间中。
16.一种片上系统,包括:
多个处理器,所述多个处理器中的每个处理器包括:第一接口、第二接口和中央处理器;
系统总线,连接到第一接口;
至少一个调试主机,连接到第二接口;
片上系统控制器,通过系统总线连接到所述多个处理器,并被配置为:检测所述多个处理器中的死锁状态,
其中,调试主机被配置为:当发生死锁状态时,响应于片上系统控制器的指令,将基于所述多个处理器中的每个处理器的架构生成的各自的信息提取命令发送至所述多个处理器,
其中,所述多个处理器被配置为:响应于各自的信息提取命令,输出和/或存储各自的状态信息作为各自的调试信息。
17.根据权利要求16所述的片上系统,其中,所述多个处理器中的每个处理器包括所述至少一个调试主机中的相应的调试主机。
18.根据权利要求17所述的片上系统,其中,所述至少一个调试主机通过系统总线连接到第二接口。
19.根据权利要求16所述的片上系统,其中,各自的状态信息包括紧接在发生死锁状态之前和之后的与所述多个处理器中的至少一个处理器有关的状态信息。
20.一种片上系统,包括:
第一处理器,根据第一架构而设计;
第二处理器,根据与第一架构不同的第二架构而设计;
片上系统控制器,被配置为:检测第一处理器和第二处理器中的至少一个中的死锁状态;
调试主机,连接到第一处理器和第二处理器中的每个的从接口,并被配置为:当发生死锁状态时,在第一处理器和第二处理器被重置之前,通过经由从接口将各自的信息提取命令发送至第一处理器和第二处理器,来获得关于第一处理器和第二处理器的各自的调试信息,
其中,第一处理器和第二处理器被配置为:响应于各自的信息提取命令,使用不同的方法来存储各自的调试信息。
CN201910228208.1A 2018-04-03 2019-03-25 片上系统及其操作方法 Pending CN110347639A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2018-0038758 2018-04-03
KR20180038758 2018-04-03
KR10-2018-0087692 2018-07-27
KR1020180087692A KR102550886B1 (ko) 2018-04-03 2018-07-27 시스템 온 칩 및 그 동작 방법

Publications (1)

Publication Number Publication Date
CN110347639A true CN110347639A (zh) 2019-10-18

Family

ID=68171870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910228208.1A Pending CN110347639A (zh) 2018-04-03 2019-03-25 片上系统及其操作方法

Country Status (2)

Country Link
KR (1) KR102550886B1 (zh)
CN (1) CN110347639A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138918A (zh) * 2021-04-16 2021-07-20 Oppo广东移动通信有限公司 应用于具有多系统的终端的调试方法、终端和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024080395A1 (ko) * 2022-10-12 2024-04-18 엘지전자 주식회사 시스템 교착 상태를 해소하는 복원 장치 및 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710300A (zh) * 2009-11-03 2010-05-19 北京龙芯中科技术服务中心有限公司 实现多核处理器ejtag可调试性的装置及系统
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US20110010530A1 (en) * 2009-07-10 2011-01-13 Via Technologies, Inc. Microprocessor with interoperability between service processor and microcode-based debugger
JP2013140630A (ja) * 2013-04-04 2013-07-18 Renesas Electronics Corp マルチプロセッサ装置
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
CN106970864A (zh) * 2016-01-13 2017-07-21 三星电子株式会社 片上系统、移动终端和用于操作片上系统的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10271185A (ja) * 1997-03-27 1998-10-09 Toshiba Corp 通信システム及びその障害管理方式
JP5460156B2 (ja) * 2009-07-14 2014-04-02 キヤノン株式会社 データ処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US20110010530A1 (en) * 2009-07-10 2011-01-13 Via Technologies, Inc. Microprocessor with interoperability between service processor and microcode-based debugger
CN101710300A (zh) * 2009-11-03 2010-05-19 北京龙芯中科技术服务中心有限公司 实现多核处理器ejtag可调试性的装置及系统
JP2013140630A (ja) * 2013-04-04 2013-07-18 Renesas Electronics Corp マルチプロセッサ装置
CN106970864A (zh) * 2016-01-13 2017-07-21 三星电子株式会社 片上系统、移动终端和用于操作片上系统的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138918A (zh) * 2021-04-16 2021-07-20 Oppo广东移动通信有限公司 应用于具有多系统的终端的调试方法、终端和存储介质
CN113138918B (zh) * 2021-04-16 2023-12-01 Oppo广东移动通信有限公司 应用于具有多系统的终端的调试方法、终端和存储介质

Also Published As

Publication number Publication date
KR102550886B1 (ko) 2023-07-05
KR20190116029A (ko) 2019-10-14

Similar Documents

Publication Publication Date Title
US10127032B2 (en) System and method for unified firmware management
CN105404525B (zh) 管理计算机系统中的基本输入输出系统配置的方法及装置
US9778844B2 (en) Installation of operating system on host computer using virtual storage of BMC
CN107122321A (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
US8230429B2 (en) Detecting a deadlock condition by monitoring firmware inactivity during the system IPL process
US9680712B2 (en) Hardware management and control of computer components through physical layout diagrams
US10120702B2 (en) Platform simulation for management controller development projects
CN106598637B (zh) 节点内的部件的选择性加载方法
CN106250279B (zh) 除错方法及其装置
CN110347639A (zh) 片上系统及其操作方法
US20200257994A1 (en) Inference processing system, inference processing device, and computer program product
US9749189B2 (en) Generating graphical diagram of physical layout of computer platforms
US10962593B2 (en) System on chip and operating method thereof
CN109086081B (zh) 一种即时提示SATA和NVMe设备在位变化的方法、系统及介质
US9910760B2 (en) Method and apparatus for interception of synchronization objects in graphics application programming interfaces for frame debugging
US9092333B2 (en) Fault isolation with abstracted objects
US8468393B2 (en) Triggering diagnostic operations within a data processing apparatus
US10297004B2 (en) Multiple frame buffers for windowless embedded environment
CN112100691A (zh) 一种硬件调试接口的保护方法、保护系统及可编程控制器
JP2015130023A (ja) 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム
US20230119536A1 (en) Application profiling to resize and reconfigure compute instances
CN108345789B (zh) 记录访存操作信息的方法及装置
CN103677969B (zh) 多显卡系统的显示器点亮方法
US11966309B2 (en) Saturation of multiple PCIe slots in a server by multiple ports in a single test card
US11347505B2 (en) Processor performance monitor that logs reasons for reservation loss

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