[go: up one dir, main page]

CN108121686A - 多处理器和多处理器系统 - Google Patents

多处理器和多处理器系统 Download PDF

Info

Publication number
CN108121686A
CN108121686A CN201711202502.2A CN201711202502A CN108121686A CN 108121686 A CN108121686 A CN 108121686A CN 201711202502 A CN201711202502 A CN 201711202502A CN 108121686 A CN108121686 A CN 108121686A
Authority
CN
China
Prior art keywords
core
debug
register information
control unit
cores
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.)
Granted
Application number
CN201711202502.2A
Other languages
English (en)
Other versions
CN108121686B (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN108121686A publication Critical patent/CN108121686A/zh
Application granted granted Critical
Publication of CN108121686B publication Critical patent/CN108121686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

本发明涉及多处理器和多处理器系统。即使当处理器核心的数量增加时,也能防止多处理器的大小增加。所述多处理器包含多个核心和调试控制单元。所述多个核心中的至少一个是调试核心,所述调试核心连接到所述调试控制单元,使得所述调试控制单元能参考并更新所述调试核心中的寄存器信息。所述调试控制单元将第一核心中的寄存器信息传送到所述调试核心,所述第一核心是所述多个核心之一,并且是待调试的核心。所述调试核心通过使用所传送的寄存器信息来调试程序,将在所述第一核心中执行所述程序。

Description

多处理器和多处理器系统
相关申请的交叉引用
本申请基于于2016年11月28日提交的第2016-230039号日本专利申请,并要求其优先权,所述日本专利申请整体通过引用并入本文。
技术领域
本公开涉及一种多处理器和一种多处理器系统。例如,本公开涉及一种用于调试由核心处理器执行的程序的多处理器和多处理器系统。
背景技术
第2000-76199号日本未经审查专利申请公开案公开了一种有关包含调试终端的多处理器装置的技术。第2000-76199号日本未经审查专利申请公开案中公开的多处理器装置包含用于每个处理器的调试接口(I/F)。
第2006-302162号日本未经审查专利申请公开案公开了一种有关多处理器系统的技术。第2006-302162号日本未经审查专利申请公开案中公开的多处理器系统包含用于每个处理器的调试功能单元,并且还包含控制电路中的调试功能单元。
发明内容
然而,本发明人已发现以下问题。第2000-76199号和第2006-302162号日本未经审查专利申请公开案中的每一者包含例如调试I/F的调试控制单元或调试功能单元,以便直接调试每个处理器核心。因此,存在处理器大小根据处理器核心数量而增加的问题。
从以下说明书描述和附图中将更清楚其它目的和新颖特征。
根据一个实施例,多处理器中包含的调试控制单元被配置为将第一核心中的寄存器信息传送到调试核心,第一核心是多个核心之一并且是待调试的核心,调试核心连接到调试控制单元,使得调试控制单元可以参考并更新调试核心中的寄存器信息。
根据上述方面,即使当处理器核心的数量增加时,也有可能防止处理器的大小增加。
附图说明
从以下结合附图从某些实施例的描述中,将更加清楚上述以及其它方面、优点和特征,其中:
图1是示出根据第一实施例的多处理器和调试器系统的配置的框图;
图2是示出根据第一实施例的多处理器的核心的内部配置的框图;
图3是示出根据第一实施例的多处理器的核心之间环形总线配置的框图;
图4是示出根据第一实施例的调试过程的流程的流程图;
图5是示出根据第一实施例的替换多处理器核心中的数据的过程流程的流程图;
图6是示出根据第二实施例的多处理器和调试器系统的配置的框图;
图7是示出根据第二实施例的替换多处理器核心中的数据的过程流程的流程图;
图8是示出根据第三实施例的替换多处理器核心中的数据的过程流程的流程图;
图9是示出根据第三实施例在多处理器中恢复程序执行之前进行的过程流程的流程图;以及
图10是示出根据第四实施例的多处理器系统的配置的框图。
具体实施方式
以下参照附图详细说明应用上述解决程序的方式的具体实施例。在整个附图中相同符号被指定给相同部件,并且为了使说明更清楚,视情况省略其重复说明。
在以下实施例中,当需要时,通过使用单独的部分或单独的实施例来说明本公开。然而,除非另有说明,否则这些实施例彼此并不相关。也就是说,它们以这样的方式相关,即一个实施例是另一个实施例的一部分或全部的修改实例、应用实例、详细实例或补充实例。此外,在以下实施例中,在提及元件数目等(包含数目、值、数量、范围等)的情况下,除了明确指定所述数目或所述数目基于其原理显然限定于特定数目的情况之外,所述数目不限于所述特定数目。也就是说,也可以使用比特定数目更大的数目或更小的数目。
此外,在以下实施例中,除了明确指定部件或部件基于其原理显然不可缺少的情况之外,这些部件(包含操作步骤等)不一定是必不可少的。类似地,在以下实施例中,当提及部件等的形状、位置关系等时,基本上类似于或相似所述形状的形状等也包含在所述形状内,除了明确指定形状或基于其原理排除该形状的情况之外。对于上述数目等(包含数目、值、数量、范围等)也是如此。
下文说明发明人如何达成下述实施例的思想的细节。作为用于车载信息系统的片上系统(SoC)的实例,存在通过处理从相机提供的图像来识别人或车辆的图像识别处理的处理器。这样的图像识别处理处理器是包含多个核心处理器(核心)的并行处理处理器。为了调试在多个核心上运行的程序,有必要在程序执行过程中同时检查多个核心的状态。因此,期望每个核心具有调试功能。然而,当每个核心都具有调试功能时,电路大小就会增加。同时,处理器的大小与制造成本直接相关。因而,希望处理器的大小尽可能小。因此,发明人已经发现以下实施例。
<第一实施例>
图1是示出根据第一实施例的多处理器101和调试器系统102的配置的框图。调试器系统102连接到多处理器101,并调试在多处理器101上运行的程序。调试器系统102例如是信息处理系统,例如计算机,并包含调试器108。作为在调试器系统102上运行的调试程序的调试器108从用户接收指令,向多处理器101提供与调试相关的指令,并输出调试结果等。
多处理器101包含调试控制单元103以及核心0_104、1_105、2_106和3_107。应注意,核心数目不一定是四个。也就是说,核心数目应至少为两个。调试控制单元103连接到作为调试核心的核心0_104(以下称为调试核心),使得调试控制单元103可以参考并更新核心0_104中的寄存器信息。调试控制单元103控制核心0_104,以便调试在核心0_104中运行的程序。调试控制单元103将作为多个核心之一且作为待调试的核心的第一核心中的寄存器信息传送到调试核心。
核心0_104至3_107中的每一个将寄存器信息存储在其内部寄存器、程序计数器、状态寄存器等中。寄存器信息被称为核心独特数据。核心0_104至3_107通过环形总线以环形配置连接。
图2是示出根据第一实施例的多处理器101的核心0_104的内部配置的框图。核心0_104包含寄存器信息1040、断点1044和I/F 0_301。如上所述,寄存器信息1040是存储在寄存器1041、程序计数器(PC)1042、状态寄存器1043等中的值。此外,调试控制单元103连接到核心0_104,使得它可以参考并更新寄存器1041、PC 1042和状态寄存器1043中的值。
断点1044是存储指令地址的区域,在开始调试之前该指令地址被设置并且在该指令地址中在某个中点程序被停止。I/F 0_301包含接收缓冲器3011和传输缓冲器3012。接收缓冲器3011是用于接收从邻近核心0_104的核心(例如核心3_107)传送的独特数据并且临时存储所接收到的独特数据的存储区。传输缓冲器3012是用于临时存储核心0_104的独特数据(即寄存器信息1040)以便将其传送到邻近核心0_104的核心(例如核心1_105)的存储区。也就是说,当核心0_104传送寄存器信息1040时,它将最初存储在寄存器1041、PC 1042和状态寄存器1043中的寄存器信息1040存储到传输缓冲器3012中。此外,核心0_104用存储在接收缓冲器3011中的寄存器信息来重写寄存器1041、PC 1042和状态寄存器1043。
应注意,每个核心1_105、2_106和3_107的内部配置类似于图2所示的配置,除了所述核心未连接到调试控制单元103以使所述调试控制单元能参考并更新所述核心中的寄存器信息之外。因此,所述核心既未在附图中图形化的示出,也未在说明书中被说明。
图3是示出连接根据第一实施例的多处理器101的核心的环形总线配置的框图。核心0_104、1_105、2_106和3_107分别包含与总线接口连接的I/F 0_301、1_302、2_303和3_304。具体地,I/F 0_301连接到I/F 1_302和3_304,并且I/F 1_302连接到I/F 0_301和2_303。此外,I/F 2_303连接到I/F 1_302和3_304,并且I/F 3_304连接到I/F 0_301和2_303。也就是说,每个核心通过总线I/F以环形配置连接到其相邻核心。此外,每个核心的独特数据沿图3中的箭头指示的方向传送。应注意,箭头指示的方向仅仅是实例,它可能是相反的方向。此外,核心的连接顺序也不限于此实例。
当每个核心从调试控制单元103接收到替换所述核心的独特数据的指令时,所述核心以预定顺序将其自身的独特数据传送到相邻核心之一。具体地,核心0_104的独特数据通过I/F 0_301的传输缓冲器传送到I/F 1_302的接收缓冲器。此外,核心1_105的独特数据通过I/F1_302的传输缓冲器传送到I/F 2_303的接收缓冲器。此外,核心2_106的独特数据通过I/F 2_303的传输缓冲器传送到I/F 3_304的接收缓冲器。此外,核心3_107的独特数据通过I/F 3_304的传输缓冲器传送到I/F 0_301的接收缓冲器。此外,每个核心将存储在其I/F的接收缓冲器中的独特数据存储到其内部寄存器中。
图4是示出根据第一实施例的调试过程的流程的流程图。在图4中,各个事件通过箭头连接,从而指示事件根据箭头的方向以时间顺序发生。应注意,在图4中,根据事件发生的地点,各个事件被分为调试器108的事件、调试控制单元103的事件和核心0_104的事件。
针对在调试期间程序可呈现的程序执行状态定义模式。具体来说,模式包含其中执行程序的执行模式和正在实施调试的调试模式。在图4所示的实例中,从调试器108开始流程的模式是调试模式。
此外,一般来说,在调试期间执行的任务包含(1)设置断点、(2)更改待调试的核心、(3)逐步执行,以及(4)恢复程序。此外,在任务(1)至(4)中的每个任务中参考并更新(即读取和写入)核心中的信息。
应注意,(2)更改待调试的核心意味着由调试器108操作的核心更改为由调试的操作者(以下称为“调试操作者”)指定的核心。执行调试时,首先进行核心的这种更改。也就是说,确定待调试的程序的一部分正在其中运行的核心。之后,使所确定的核心进行逐步执行的过程,和/或设置断点并且将由核心执行的程序提前到断点。图4示出了流程的实例。
(1)设置断点
当程序将在某个指令地址处停止时,在每个内核中设置断点。具体来说,首先,调试器108从调试操作者接收程序中的指令地址的指定,并向调制控制单元103输出将接收到的指令地址设置为断点的指令(以下称为“断点设置指令”)(200)。调试控制单元103响应于断点设置指令将指令地址写入每个核心的断点1044中(210)。
之后,调试器108响应于来自调试操作者的指令向调试控制单元103输出执行程序的指令(以下称为“程序执行指令”)(201)。调试控制单元103将模式更改为执行模式(211),并使核心0_104执行程序(220)。应注意,在其它核心1_105至3_107中也并行执行程序。
当核心0_104上运行的程序到达断点处的指令地址时,核心0_104停止其操作(221),并将该停止通知调试控制单元103。在被通知停止时,调试控制单元103将模式更改为调试模式(212),停止所有核心,并将该停止通知调试器108。
在被通知停止时,调试器108通过调试控制单元103参考并更新停止的核心0_104中的寄存器信息(202)。
(2)更改待调试的核心
当待调试的核心从核心0_104更改为另一个核心时,待调试的核心的独特数据被传送到核心0_104。通过这样做,可以调试在未连接到调试控制单元103的核心上运行的程序的一部分。
具体地,调试器108响应于来自调试操作者的指令向调试控制单元103输出更改待调试的核心的指令(以下称为“调试目标更改指令”)(203)。在接收到此指令后,调试控制单元103替换核心的数据(213)。应注意,稍后将说明用于替换核心数据的方法的细节。作为此替换的结果,调试器108通过调试控制单元103参考并更新停止的核心0_104中的寄存器信息(204)。此时,核心0_104中的寄存器信息已经被待调试的核心的寄存器信息替换。
(3)逐步执行
当进行逐步执行时,调试器108响应于来自调试操作者的指令向调试控制单元103输出逐步执行的指令(以下称为“逐步执行指令”)(205)。在接收到此指令后,调试控制单元103设置进行逐步执行的步骤的数目,并将模式更改为执行模式(214)。核心0_104通过步骤214中设置的步骤数目来执行程序(222)。之后,核心0_104停止其操作(223)并将该停止通知调试控制单元103。
在被通知停止后,调试控制单元103将模式更改为调试模式(215),并通知调试器108模式更改为调试模式。在被通知模式更改后,调试器108通过调试控制单元103参考并更新已经完成逐步执行的核心0_104中的寄存器信息(206)。
(4)恢复程序
当程序恢复时,调试器108响应于来自调试操作者的指令向调试控制单元103输出恢复程序的指令(以下称为“程序恢复指令”)(207)。在接收到指令后,调试控制单元103将模式更改为执行模式(216),使核心0_104至3_107恢复程序的执行(224)。
当核心0_104上运行的程序到达断点处的指令地址时,核心0_104停止其操作(225),并将该停止通知调试控制单元103。在被通知停止时,调试控制单元103将模式更改为调试模式(217),停止所有核心,并将该停止通知调试器108。
在被通知停止后,调试器108通过调试控制单元103参考并更新核心0_104中的寄存器信息(208)。应注意,当程序在步骤225中尚未到达断点时,核心0_104至3_107继续操作,直到完成程序执行。通过重复上述过程,实施将待调试的核心的独特数据传送到核心0_104的过程。
图5是示出根据第一实施例的替换处理器核心中的数据的过程流程的流程图。图5中的过程对应于图4的步骤213中的核心数据替换过程。首先,调试控制单元103参考核心0_104的寄存器信息1040,从而确定所述寄存器信息是否是待调试的核心的独特数据(401)。这里,假设原始核心的识别信息包含在寄存器信息1040中。接着,当调试控制单元103确定寄存器信息不是待调试的核心的独特数据时,核心0_104指示每个核心将其独特数据传送到相邻核心(402)。接着,过程返回到步骤401。在步骤401中,当调试控制单元103确定寄存器信息是待调试的核心的独特数据时,这意味着调试控制单元103可以参考并更新的寄存器信息是待调试的核心的独特数据。因此,调试控制单元103完成核心数据替换过程。也就是说,独特数据被重复地传送到以环形配置连接的核心之间的相邻核心,直到待调试的核心的独特数据被传送到核心0_104。也就是说,待调试的核心的独特数据以桶队方式传送到核心0_104。
如上所述,在此实施例中,调试控制单元可以参考并更新存储在多个核心之一中的寄存器信息,即存储在调试核心中的寄存器信息。此外,核心以环形配置连接,使得作为核心独特数据的寄存器信息可以在核心之间传送。因此,甚至调试控制单元不能参考的核心中的寄存器信息也可以被相继传送到调试核心。通过这样做,有可能在调试核心中基本上执行在待调试的核心上运行的程序的一部分的调试。此外,由于仅需要一个调试控制单元,即使处理器包含多个核心也可以减小处理器的大小。
应注意,此实施例也可以表示如下。也就是说,多处理器包含多个核心和调试控制单元。多个核心中的至少一个是调试核心,调试核心连接到调试控制单元,使得调试控制单元可以参考并更新调试核心中的寄存器信息。调试控制单元将第一核心中的寄存器信息传送到调试核心,第一核心是多个核心之一并且是待调试的核心。以这种方式,即使增加处理器核心的数目,也能够防止或减少处理器的大小增加。
此外,调试核心通过使用传送的寄存器信息来调试将在第一核心中执行的程序。以这种方式,能够基本上在第一核心中执行调试。
多个核心以环形配置连接。当调试核心中的寄存器信息不是待调试的第一核心的寄存器信息时,调试控制单元将寄存器信息传送到与调试核心相邻的核心。这样,即使对于调试控制单元不能直接参考和更新的寄存器信息,调试控制单元也能够通过调试核心来参考和更新所述寄存器信息。
<第二实施例>
第二实施例是上述第一实施例的修改实例。根据第二实施例的多处理器进一步包含保存区。调试控制单元将调试核心中的寄存器信息传送到保存区后,将第一个核心中的寄存器信息传送到调试核心。以这种方式,与第一实施例相比,能够使数据替换过程的时间一致,从而提高调试操作的平均速度。
图6是示出根据第二实施例的多处理器101a和调试器系统102的配置的框图。多处理器101a包含调试控制单元103、核心0_104、1_105、2_106和3_107以及保存区501。保存区501是可以存储作为核心独特数据的寄存器信息的存储区。应注意,核心0_104至3_107中的每一个通过总线连接到保存区501。也就是说,核心独特数据可以在任意核心之间传送,并且核心独特数据也可以在任意核心与保存区501之间传送。
应注意,除了步骤213中的核心数据替换过程之外,调试过程流程大致类似于图4所示的第一实施例中的流程。图7是示出根据第二实施例的替换处理器核心中的数据的过程流程的流程图。图7示出了通过使用保存区501在核心0_104与待调试的核心之间交换独特数据的过程。
首先,调试控制单元103确定连接到调试控制单元103的核心0_104的寄存器信息是否是待调试的核心的独特数据,从而确定是否替换数据(601)。当调试控制单元103确定替换数据时,其将核心0_104中的寄存器信息复制到保存区501,从而保存数据(602)。接下来,调试控制单元103指示将待调试的核心的寄存器信息复制到核心0_104(603)。也就是说,调试控制单元103将待调试的核心的独特数据传送到调试核心。接着,调试控制单元103指示将存储在保存区501中的数据复制到待调试的核心(604)。也就是说,调试控制单元103将保存的数据传送到待调试的核心。应注意,当调试控制单元103在步骤601中确定核心0_104的寄存器信息是待调试的核心的独特数据时,调试控制单元103完成数据替换过程。
如上所述,第二实施例包含其中保存调试核心的原始独特数据的保存区501,以及将核心彼此连接并将每个核心连接到保存区501的总线。在前述第一实施例中,当核心数目大并且待调试的核心位于远离调试核心的位置时,数据替换的次数(传送的次数(以下简称为传送次数))增加,因此有可能延长调试操作。与此相反,在第二实施例中,数据替换过程中的数据传送次数是三次。因而,能够使数据替换过程的时间一致。因此,与第一实施例相比,可以提高调试操作的平均速度。
<第三实施例>
第三实施例是上述第二实施例的修改实例。当待调试的核心更改为多个核心中的第二核心时,根据第三实施例的调试控制单元将调试核心中的寄存器信息传送到第一核心,并将第二核心中的寄存器信息传送到调试核心。以这种方式,与第二实施例相比,可以提高核心数据替换过程的速度。
此外,当调试核心被更改为第二核心时,调试控制单元确定调试核心中的寄存器信息是否被重写。接着,当调试控制单元确定调试核心中的寄存器信息已被重写时,其将所述寄存器信息传送到第一核心。以这种方式,当寄存器信息尚未被重写时,不传送寄存器信息。因此,能够减少传送次数,并且能够进一步提高处理速度。
应注意,所述配置类似于图6所示的第二实施例中的配置,并且调试过程流程与图4所示的第一实施例中的流程大致相似。然而,图4的步骤213中的核心数据替换过程以及步骤211和216中更改为执行模式的过程不同。
在前述第二实施例中,当更改了待调试的核心时,总是需要图7的步骤602、603和604中的三次数据传送。也就是说,在第二实施例中,在作为调试核心的核心0_104与待调试的核心之间交换数据。与此相反,在第三实施例中,假设多次更改待调试的核心。首先将核心0_104的独特数据保存在保存区501中,接着将待调试的核心的独特数据传送到核心0_104。然后,在读取和写入核心0_104的寄存器信息之后,将作为此寄存器信息的核心独特数据写回到待调试的原始核心。
图8是示出根据第三实施例的替换多处理器101a的核心中的数据的过程流程的流程图。首先,调试控制单元103确定待调试的核心是否是核心0_104(701)。当待调试的核心是核心0_104时,过程进行到步骤702,而当待调试的核心不是核心0_104时,过程进行到步骤706。
当在步骤701中待调试的核心是核心0_104时,调试控制单元103确定核心0_104中的寄存器信息是否是核心0_104的独特数据(702)。当核心0_104中的寄存器信息是核心0_104的独特数据时,调试控制单元103完成所述过程。这是因为由于核心0_104中的寄存器信息是核心0_104的独特数据,所以可以通过使用核心0_104的独特数据来进行调试,因此不需要替换数据。
另一方面,当步骤702中核心0_104中的寄存器信息不是核心0_104的独特数据时,调试控制单元103确定核心0_104的寄存器信息是否已被调试器108重写(703)。应注意,调试器108通过调试控制单元103重写(更新)核心0_104的寄存器信息。因此,调试控制单元103可以确定寄存器信息是否被重写。
当在步骤703中寄存器信息尚未被重写时,过程进行到步骤705。这是因为由于寄存器信息尚未被重写,核心0_104中的寄存器信息与待调试的原始核心的寄存器信息相同。因此,不需要重写寄存器信息,并且可以在不重写寄存器信息的情况下进行调试。
另一方面,当在步骤703中核心0_104的寄存器信息已被调试器108重写时,调试控制单元103传送核心0_104中已被重写的寄存器信息并由此将其返回到待调试的原始核心(704)。
之后,调试控制单元103将保存在保存区501中的核心0_104的寄存器信息(独特数据)传送到核心0_104(705)。
接下来,当在步骤701中待调试的核心不是核心0_104时,调试控制单元103确定核心0_104中的寄存器信息是否是核心0_104的独特数据(706)。当核心0_104中的寄存器信息是核心0_104的独特数据时,过程进行到步骤710,而当寄存器信息不是独特数据时,过程进行到步骤707。
当在步骤706中核心0_104中的寄存器信息不是核心0_104的独特数据时,调试控制单元103确定核心0_104的寄存器信息是否已被调试器108重写(707)。
当在步骤707中寄存器信息尚未被重写时,过程进行到步骤709。这是因为由于寄存器信息尚未被重写,所以核心0_104中的寄存器信息与待调试的原始核心的寄存器信息相同。因此,不需要重写寄存器信息,并且可以在不重写寄存器信息的情况下进行调试。
另一方面,当在步骤707中核心0_104的寄存器信息已被调试器108重写时,调试控制单元103传送核心0_104中已被重写的寄存器信息并由此将其返回到待调试的原始核心(708)。
之后,调试控制单元103将保存在保存区501中的核心0_104的寄存器信息(独特数据)传送到核心0_104(709)。
当在步骤706中核心0_104中的寄存器信息是核心0_104的独特数据时,调试控制单元103复制核心0_104的寄存器信息并由此将其保存在保存区501中(710)。之后,过程进行到步骤709。
下面说明使用图8所示的流程进行调试的实例。具体地,在实例中,核心1_105成为待调试的核心,因此读取核心1_105的独特数据。之后,核心2_106成为待调试的核心,因此读取核心2_106的独特数据。
首先,在步骤701中,由于待调试的核心是核心1_105,所以过程进行到步骤706。接下来,在步骤706中,由于核心0_104中的寄存器信息是核心0_104的独特数据,所以过程进行到步骤710。接着,在步骤710中,将核心0_104的独特数据保存在保存区501中。
之后,过程进行到步骤709,将作为待调试的核心的核心1_105的独特数据传送到核心0_104。以这种方式,调试器108可以通过连接到核心0_104的调试控制单元103读取独特数据,以获取核心1_105的独特数据。此外,到目前为止,数据传送的次数是两次。
之后,核心2_106成为待调试的核心。接着,在步骤701中,由于待调试的核心是核心2_106,所以过程进行到步骤706。此外,由于核心0_104中的寄存器信息是核心1_105的独特数据,所以过程进行到步骤707。
在步骤707中,由于位于核心0_104中的核心1_105的独特数据尚未被重写,所以过程进行到步骤709。接着,在步骤709中,将核心2_106的独特数据传送到核心0_104。
以这种方式,调试器108可以通过连接到核心0_104的调试控制单元103读取独特数据,以获取核心2_106的独特数据。此外,当待调试的核心从核心1_105更改为核心2_106时进行的数据传送的次数是一次。
在图8所示的流程中,当替换待调试的核心的数据时,仅核心0_104的独特数据被存储在保存区501中。因此,需要将保存的数据传送到核心0_104以恢复程序的执行。相应地,图9是示出根据第三实施例在处理器中恢复程序执行之前进行的过程流程的流程图。
首先,调试控制单元103确定核心0_104中的寄存器信息是否已被调试器108重写(801)。当在步骤801中寄存器信息尚未被重写时,过程进行到步骤803。另一方面,当在步骤801中核心0_104中的寄存器信息已被调试器108重写时,调试控制单元103传送核心0_104中已被重写的寄存器信息并由此将其返回到待调试的原始核心(802)。
之后,调试控制单元103将保存在保存区501中的核心0_104的寄存器信息(独特数据)传送到核心0_104(803)。以这种方式,能够恢复所有核心的独特数据,从而恢复程序的执行。
如前所述,在第二实施例中,总是进行三次数据传送,以替换待调试的核心的独特数据和核心0_104的独特数据。与此相反,在第三实施例中,当必须完成的所有事情是参考并更新核心中的寄存器信息时,进行两次传送就足够,即传送到保存区501以及从待调试的核心传送到核心0_104。此外,当待调试的核心进一步更改为另一个核心时,当存储在核心0_104中的待调试的核心的独特数据尚未被重写时,只须进行一次传送。此外,即使独特数据已被重写,也只须进行两次传送。
然而,当程序的执行恢复时,需要将数据从保存区501传送到核心0_104。因此,当存储在核心0_104中的待调试的核心的独特数据尚未被重写时,需要额外进行一次传送,而当独特数据已被重写时,需要额外进行两次传送。也就是说,当待调试的核心被更改且程序的执行被恢复时,在某些情况下最多需要进行四次数据传送。
第三实施例在停止执行程序的状态中参考多个核心中的数据的情况下是有效的。与第二实施例相比通过减少数据传送的次数,可以提高调试操作的速度。
<第四实施例>
第四实施例是上述第一至第三实施例的修改实例。也就是说,第四实施例是多处理器系统,其包含:根据第一至第三实施例之一的多处理器;以及包含多个保存区的存储器,每个保存区对应于多个核心中的相应一个核心,且被配置为存储相应核心的寄存器信息。也就是说,使用现有的存储器作为核心的寄存器信息的保存区。
图10是示出根据第四实施例的多处理器系统100的配置的框图。多处理器系统100包含多处理器101b和存储器901。多处理器101b包含调试控制单元103以及核心0_104、1_105、2_106和3_107。核心0_104至3_107中的每一个通过总线连接到存储器901。
存储器901是设置在多处理器101b外部的存储器设备,并存储程序等(未示出)。此外,存储器901存储核心0数据902、核心1数据903、核心2数据904和核心3数据905。核心0数据902是核心0_104的寄存器信息的副本。类似地,核心1数据903是核心1_105的寄存器信息的副本,核心2数据904是核心2_106的寄存器信息的副本。此外,核心3数据905是核心3_107的寄存器信息的副本。
调试控制单元103在调试时指示每个核心将其寄存器信息保存在存储器901中。以这种方式,调试控制单元103可以通过核心0_104来参考并更新存储器901中的核心0数据902至核心3数据905。
<其它实施例>
此外,尽管在上述实施例中将本公开解释为硬件配置,但是本公开不限于硬件配置。通过使诸如中央处理单元(CPU)的处理器执行计算机程序来实现任意过程,可以实现本公开。
在上述实例中,可以使用任何类型的非暂时性计算机可读介质将程序存储至计算机并提供给计算机。非暂时性计算机可读介质包含任何类型的有形存储介质。非暂时性计算机可读介质的实例包含磁存储介质(例如软盘、磁带、硬盘驱动器等)、光磁存储介质(例如磁光盘)、CD-ROM(压缩盘只读存储器)、CD-R(可记录压缩盘)、CD-R/W(可重写压缩盘)和半导体存储器(例如掩模ROM、PROM(可编程ROM)、EPROM(可擦除PROM)、闪存ROM、RAM(随机存取存储器)等)。可以使用任何类型的暂时性计算机可读介质来将程序提供给计算机。暂时性计算机可读介质的实例包含电信号、光信号和电磁波。暂时性计算机可读介质可以经由有线通信线路(例如电线和光纤)或无线通信线路向计算机提供程序。
上文已经基于实施例具体地解释了本申请的发明人所作的本公开。然而,本公开不限于上述实施例,毋庸置疑,在不脱离本公开的精神和范围的情况下可以进行各种修改。
第一、第二、第三和第四实施例可以由所属领域的普通技术人员按需要进行组合。
虽然已经根据几个实施例描述了本发明,但是所属领域的技术人员将认识到,可以在所附权利要求书的精神和范围内以各种修改来实施本发明,并且本发明不限于上述实例。
此外,权利要求书的范围不受上述实施例的限制。
另外,应注意的是,申请人的意图是涵盖所有权利要求要素的等同内容,即使在审查期间后续会有所修改。

Claims (8)

1.一种多处理器,包括:
多个核心;以及
调试控制单元,
其中,
所述多个核心中的至少一个核心是调试核心,所述调试核心被连接到所述调试控制单元,使得所述调试控制单元能够参考并更新所述调试核心中的寄存器信息,以及
所述调试控制单元将第一核心中的寄存器信息传送到所述调试核心,所述第一核心是所述多个核心之一并且是待调试的核心。
2.根据权利要求1所述的多处理器,其中,
所述调试核心通过使用所传送的寄存器信息来调试将在所述第一核心中被执行的程序。
3.根据权利要求1所述的多处理器,进一步包括保存区,其中,在将所述调试核心中的所述寄存器信息传送到所述保存区之后,所述调试控制单元将所述第一核心中的所述寄存器信息传送到所述调试核心。
4.根据权利要求3所述的多处理器,其中,
当所述待调试的核心被更改为所述多个核心中的第二核心时,所述调试控制单元将所述调试核心中的所述寄存器信息传送到所述第一核心,并且
所述调试控制单元将所述第二核心中的寄存器信息传送到所述调试核心。
5.根据权利要求4所述的多处理器,其中,
当所述待调试的所述核心被更改为所述第二核心时,所述调试控制单元确定所述调试核心中的所述寄存器信息是否已被重写,以及
当所述调试控制单元确定了所述调试核心中的所述寄存器信息已被重写时,所述调试控制单元将所述寄存器信息传送到所述第一核心。
6.根据权利要求1所述的多处理器,其中,
以环形配置来连接所述多个核心,以及
当所述调试核心中的所述寄存器信息不是待调试的所述第一核心的寄存器信息时,所述调试控制单元将该寄存器信息传送到与所述调试核心相邻的核心。
7.根据权利要求1所述的多处理器,其中,
所述寄存器信息包含程序计数器的值或状态寄存器的值中的至少一个。
8.一种多处理器系统,包括:
根据权利要求1所述的多处理器,以及
存储器,其包括多个保存区,所述保存区中的每一个对应于所述多个核心中的相应的核心并且被配置为存储该相应的核心的寄存器信息。
CN201711202502.2A 2016-11-28 2017-11-27 多处理器和多处理器系统 Active CN108121686B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-230039 2016-11-28
JP2016230039A JP6744806B2 (ja) 2016-11-28 2016-11-28 マルチプロセッサ

Publications (2)

Publication Number Publication Date
CN108121686A true CN108121686A (zh) 2018-06-05
CN108121686B CN108121686B (zh) 2023-06-09

Family

ID=60043048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711202502.2A Active CN108121686B (zh) 2016-11-28 2017-11-27 多处理器和多处理器系统

Country Status (5)

Country Link
US (1) US10489271B2 (zh)
EP (1) EP3327573B1 (zh)
JP (1) JP6744806B2 (zh)
CN (1) CN108121686B (zh)
TW (1) TW201820169A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631840A (zh) * 2019-10-08 2021-04-09 瑞萨电子美国有限公司 用于通过内部和外部调试器设备评估内部和外部系统处理器的设备和方法
CN118445188A (zh) * 2024-05-07 2024-08-06 北京中科昊芯科技有限公司 一种多核心同步调试方法、系统及介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897714B (zh) * 2018-07-03 2022-05-24 中国人民解放军国防科技大学 一种区域自治的多核或众核处理器芯片
US10824540B2 (en) 2018-12-28 2020-11-03 Datalogic Ip Tech S.R.L. Terminal failure buster
JP7357328B2 (ja) * 2019-02-26 2023-10-06 株式会社ユピテル システムおよびプログラム等
JP7378254B2 (ja) * 2019-09-19 2023-11-13 キヤノン株式会社 マルチプロセッサデバイス
US12321247B2 (en) 2020-03-26 2025-06-03 T-Head (Shanghai) Semiconductor Co., Ltd. Multi-core processor debugging systems and methods
CN116340188B (zh) * 2023-05-26 2023-08-04 深流微智能科技(深圳)有限公司 Gpu芯片渲染任务的调试方法及系统
WO2025197786A1 (ja) * 2024-03-19 2025-09-25 ヌヴォトンテクノロジージャパン株式会社 選択装置、および、選択方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152427A1 (en) * 2001-04-13 2002-10-17 Lg Electronics Inc. Debugging apparatus and method
CN101535962A (zh) * 2006-11-15 2009-09-16 高通股份有限公司 用于可信/不可信数字信号处理器调试操作的方法及系统
CN101710300A (zh) * 2009-11-03 2010-05-19 北京龙芯中科技术服务中心有限公司 实现多核处理器ejtag可调试性的装置及系统
CN102117241A (zh) * 2009-12-30 2011-07-06 华为技术有限公司 一种多核系统调试方法和多核系统
US20120210103A1 (en) * 2011-02-16 2012-08-16 Industrial Technology Research Institute System and method for multi-core synchronous debugging of a multi-core platform
CN102880536A (zh) * 2012-09-07 2013-01-16 杭州中天微系统有限公司 一种多核处理器的jtag调试方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147189A (ja) * 1994-11-25 1996-06-07 Hitachi Ltd 並列計算機のオペレーティングシステムのデバッグ方法
JP2000076199A (ja) 1998-08-28 2000-03-14 Nec Corp デバッグ端子を有するマルチプロセッサ装置
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
US20050262396A1 (en) * 2004-04-26 2005-11-24 Agilent Technologies, Inc Apparatus and method for automated test setup
US7627784B1 (en) * 2005-04-06 2009-12-01 Altera Corporation Modular processor debug core connection for programmable chip systems
JP4600134B2 (ja) 2005-04-25 2010-12-15 富士通セミコンダクター株式会社 マルチプロセッサシステム
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
TW201145016A (en) * 2010-06-15 2011-12-16 Nat Univ Chung Cheng Non-intrusive debugging framework for parallel software based on super multi-core framework
EP2690558B1 (en) * 2011-03-24 2020-01-22 Renesas Electronics Corporation Semiconductor device
JP5660010B2 (ja) * 2011-11-21 2015-01-28 トヨタ自動車株式会社 情報処理装置、データ復帰方法
US9404970B2 (en) * 2014-11-14 2016-08-02 Cavium, Inc. Debug interface for multiple CPU cores

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020152427A1 (en) * 2001-04-13 2002-10-17 Lg Electronics Inc. Debugging apparatus and method
CN101535962A (zh) * 2006-11-15 2009-09-16 高通股份有限公司 用于可信/不可信数字信号处理器调试操作的方法及系统
CN101710300A (zh) * 2009-11-03 2010-05-19 北京龙芯中科技术服务中心有限公司 实现多核处理器ejtag可调试性的装置及系统
CN102117241A (zh) * 2009-12-30 2011-07-06 华为技术有限公司 一种多核系统调试方法和多核系统
US20120210103A1 (en) * 2011-02-16 2012-08-16 Industrial Technology Research Institute System and method for multi-core synchronous debugging of a multi-core platform
CN102880536A (zh) * 2012-09-07 2013-01-16 杭州中天微系统有限公司 一种多核处理器的jtag调试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
OMER KHAN,ET AL.: "Hardware/Software Codesign Architecture for Online Testing in Chip Multiprocessors", 《IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING》 *
王琪等: "可复用微处理器片上调试功能的设计与实现", 《计算机辅助设计与图形学学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631840A (zh) * 2019-10-08 2021-04-09 瑞萨电子美国有限公司 用于通过内部和外部调试器设备评估内部和外部系统处理器的设备和方法
CN118445188A (zh) * 2024-05-07 2024-08-06 北京中科昊芯科技有限公司 一种多核心同步调试方法、系统及介质

Also Published As

Publication number Publication date
EP3327573B1 (en) 2023-09-06
TW201820169A (zh) 2018-06-01
CN108121686B (zh) 2023-06-09
JP6744806B2 (ja) 2020-08-19
EP3327573A1 (en) 2018-05-30
US20180150386A1 (en) 2018-05-31
US10489271B2 (en) 2019-11-26
JP2018088048A (ja) 2018-06-07

Similar Documents

Publication Publication Date Title
CN108121686B (zh) 多处理器和多处理器系统
CN113167831B (zh) 在已部署的汽车平台上执行自测的测试系统
US9606923B2 (en) Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program
CN104598402A (zh) 一种闪存控制器和闪存控制器的控制方法
CN108694052B (zh) 一种固件升级方法、固件升级装置及固件升级系统
US12436868B2 (en) Code inspection method under weak memory ordering architecture and corresponding device
CN107273245B (zh) 运算装置与运作方法
US9430314B2 (en) Memory program upon system failure
CN107315449B (zh) 计算机设备、读取时间的方法和写入时间的方法
US20170192838A1 (en) Cpu system including debug logic for gathering debug information, computing system including the cpu system, and debugging method of the computing system
US10216679B2 (en) Semiconductor device and control method thereof
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
US10042554B2 (en) Increased bandwidth of ordered stores in a non-uniform memory subsystem
CN116049035A (zh) 一种缓存一致性的验证和调试的实现方法
CN105138308A (zh) 一种更新寄存器的方法及装置
US10958597B2 (en) General purpose ring buffer handling in a network controller
US20250190337A1 (en) Electronic control device and write control method
CN116136949A (zh) 一种多核SoC的调试方法及应用其的调试系统
CN112802527B (zh) 嵌入式闪存高速编程的实现方法、嵌入式闪存的编程系统
CN119396752B (zh) Dma传输系统、方法、设备、存储介质及程序产品
JP6217386B2 (ja) マルチプロセッサ用プログラム生成方法
CN107025132B (zh) 中断配置方法和装置
US20250335251A1 (en) Computer-readable recording medium storing scheduling program, information processing apparatus, and scheduling method
CN114510449A (zh) 一种多核嵌入式系统、通信方法、设备及存储介质
CN119105982A (zh) 通信方法、装置、系统及处理器

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