CN103443776B - 半导体装置 - Google Patents
半导体装置 Download PDFInfo
- Publication number
- CN103443776B CN103443776B CN201280014595.5A CN201280014595A CN103443776B CN 103443776 B CN103443776 B CN 103443776B CN 201280014595 A CN201280014595 A CN 201280014595A CN 103443776 B CN103443776 B CN 103443776B
- Authority
- CN
- China
- Prior art keywords
- supervision
- depositor
- central processor
- semiconductor device
- group
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/2002—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 interconnections or communication control functionality are redundant
- G06F11/2007—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 interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
半导体装置具有:第1和第2中央处理装置(0、3);以及设置在第2中央处理装置(3)的内部或外部的监视用寄存器组(60)。在监视用寄存器组(60)中,在程序的执行中从第1中央处理装置(0)转送了表示第1中央处理装置(0)的内部状态的信息,监视用寄存器组(60)对这些被转送的信息进行保持。监视用寄存器组(60)映射到第2中央处理装置(3)的存储器空间。
Description
技术领域
本发明涉及搭载了多个中央处理装置的半导体装置。
背景技术
为了使软件的开发高效化,多在中央处理装置(CPU:Central Processing Unit)上,搭载与JTAG(Joint Test Action Group,联合测试行为组织)标准等对应的片上调试功能。片上调试功能是如下这样的功能:通过专用接口输入指令码从而使CPU工作,取出半导体芯片内的资源信息。在片上调试功能中,存在能够在期望的地方停止用户/程序的执行的中断功能、能够获取用户/程序执行中的任意时刻的内部总线的信息的跟踪功能等。
在记载于日本特开2001-350648号公报(专利文献1)的技术中,在具备上述片上调试功能的微机中,进一步设置有:在用户/程序执行中向外部输出预定的内部状态信息的内部状态输出电路;以及用于输出所述内部状态信息的端子。
在日本特开平6-214819号公报(专利文献2)中也有与上述文献同样的记载。具体地讲,在该文献记载的微机中,设置有将程序计数器的内容输出到外部、或者选择在CPU与功能模块之间进行输入输出的信号等而输出到外部的输出电路。
但是,近年来,为了实现低功耗且高性能的系统,进行了将多个CPU搭载在相同的LSI(Large Scale Integration,大规模集成)上的多处理器(多核处理器)的开发。在搭载了多个CPU的系统的调试中,存在与搭载了单个CPU的系统不同的新的问题。
例如,在搭载了多个CPU的系统的调试中,对每个CPU实施中断、步骤执行、以及跟踪等。因此,为了进行高效率的调试,需要使各CPU的中断、步骤执行进行协调工作、以及知道各CPU的跟踪数据的时间关系。在日本特开2003-162426号公报(专利文献3)中,对具有用于这些的控制电路的计算机系统进行了记载。
调试用的端子组与多个CPU之间的连接方法也是在多处理器中固有的问题。根据植田等(非专利文献1),在假设了使用JTAG接口的调试时,关于JTAG端口与控制对象的CPU核心之间的连接方法,可以考虑4种类。即,存在进行级联连接还是并行/开关连接的选项、和是否具备获取CPU核心间的同步的功能等的选项。例如,日本特开2004-164367号公报(专利文献4)公开了如下的技术:通过使用了寄存器的简单结构的开关电路(选择电路),连接调试用端子组与所选择的CPU。
日本特开2009-193305号公报(专利文献5)公开了能够应对在将多个CPU搭载在相同的LSI上的多核LSI中,在其他CPU正常工作期间,某CPU失控而挂断(Hung Up)了共享总线的情况的技术。具体地讲,该文献的多核LSI具有:与第1共享总线连接的多个CPU;与第2共享总线连接的一个以上的模块;在第1共享总线与第2共享总线之间连接,对针对多个CPU的模块的接入进行调节的共享总线控制部;以及对是否从接入目标的模块,输出了对于各CPU的接入请求信号的响应信号进行监视的系统控制器。从由共享总线控制部向第2共享总线输出了接入请求信号开始经过预定时间为止,系统控制器在没有从接入目标的模块输出响应信号时,通过共享总线控制部向第1共享总线输出伪响应信号,使接入中的CPU的相应接入结束。
现有技术文献
专利文献
专利文献1:日本特开2001-350648号公报
专利文献2:日本特开平6-214819号公报
专利文献3:日本特开2003-162426号公报
专利文献4:日本特开2004-164367号公报
专利文献5:日本特开2009-193305号公报
非专利文献
非专利文献1:除了植田外4名,“Linux(登録商標)やマルチコア環境のデバッグを支える仮想化技術(支持Linux(注册商标)和多核环境的调试的虚拟化技术)”,日経エレクトロニクス(日经电子),2006年1月2日号,p.115-122
发明内容
发明所要解决的课题
在CPU由于某些理由而挂断时,在片上调试功能中不能取出已挂断的CPU的内部信息。因此,很难确定已挂断的程序的地方。
特别是,在搭载有多个CPU的多处理器的情况下,调试比单处理器的情况更困难。该理由是因为,在多处理器中,由于任务分配每次都改变因此挂断产生的重现性低,例如,每次执行程序时在不同的CPU中产生挂断。而且,在多处理器中,由于从各CPU产生接入因此容易产生资源竞争,并且为了操作大规模的程序而调试的分量也很多,这些都使调试变得更困难。
在单处理器的情况下,虽然实现了利用跟踪功能而使挂断时的调试容易化,但是在多处理器的情况下,由于电路规模和端子的制约,对所有的处理器附上与单处理器相同的跟踪功能是非常困难的。
上述日本特开2003-162426号公报(专利文献3)和日本特开2004-164367号公报(专利文献4),虽然以多处理器的调试的容易化为目的,但是对CPU挂断的情况并未提及。日本特开2009-193305号公报(专利文献5)虽然是关于CPU挂断的情况的发明,但并不是将重点放在消除挂断,提供用于调试容易化的手段的发明。
因此,本发明的目的在于,提供如下的半导体装置:在搭载了多个中央处理装置(CPU)的半导体装置中,在任意一个CPU挂断的情况下,能够比以往更容易地进行调试。
用于解决课题的手段
本发明的一实施方式的半导体装置,具有第1中央处理装置和第2中央处理装置;以及设置在第2中央处理装置的内部或外部的监视用寄存器组。在监视用寄存器组中,在程序的执行中从第1中央处理装置转送了表示第1中央处理装置的内部状态的信息,监视用寄存器组保持这些所转送的信息。监视用寄存器组映射到第2中央处理装置的存储器空间。
发明效果
根据上述实施方式,在第1中央处理装置挂断时,由于能够使用第2中央处理装置获取第1中央处理装置的内部状态,因此能够比以往更容易地进行调试。
附图说明
图1是示出本发明的实施方式1的微机芯片100的结构的框图。
图2是示出在图1所示的CPU0的内部信息的转送中使用的硬件的一例的电路图。
图3是用于对具有四个CPU的微机芯片中的CPU核心间的信号传送进行说明的概念图。
图4是在CPU3中设置的监视用寄存器组的一览表。
图5是用于对图4的各监视用寄存器进行说明的图。
图6是示出图1的CPU3的地址地图的一例的图。
图7是用于对CPU0没有挂断时的片上调试方法进行说明的图。
图8是用于对CPU0挂断时的片上调试方法进行说明的图。
图9是具有四个CPU的微机芯片中的各CPU的内部状态的读出路径成为环形结构的例子的图。
图10是示出具有四个CPU的微机芯片中的各CPU的内部状态的读出路径成为总线结构的例子的图。
图11是具有七个CPU的微机芯片中的各CPU的内部状态的读出路径成为树结构的例子的图。
具体实施方式
以下,参照附图详细说明本发明的实施方式。另外,对相同或相当的部分附上相同的参照标号,不重复进行其说明。
<实施方式1>
[微机芯片的结构]
图1是示出本发明的实施方式1的微机芯片100的结构的框图。参照图1,微机芯片100包括:多个中央处理装置(CPU);内部存储器21;用于将微机芯片100与外围设备连接的输入输出接口(外围IO)22;以及外部总线接口23。这些要素通过内部总线20而相互连接。另外,在图1中设置在微机芯片100上的多个CPU之中,作为代表示出了CPU0和CPU3。
输入输出接口22通过输入输出端口26而与设置在微机芯片100外部的外围设备连接。
外部总线接口23通过输入输出端口27与设置在微机芯片100外部的外部存储器(例如,DRAM(Dynamic Random Access Memory,动态随机访问存储器))或ASIC(Application Specific Integrated Circuit,专用集成电路)等连接。
CPU0包括:核心电路(CPU核心)10_0;存储器管理单元(MMU:Memory ManagementUnit)11_0;一级缓存(指令缓存(icache)13_0和数据缓存(dcache)12_0);调试电路14_0。核心电路10_0是执行存储于内部存储器21或外部存储器的程序的CPU的核心部分。存储器管理单元11_0进行虚拟地址与物理地址之间的转换。一级缓存是通过转送存储器的一部分数据而实现数据接入的高速化的缓存。调试电路14_0是为了实现JTAG ICE(In-circuitEmulator,内电路仿真器)的板上调试而设置在处理器内部的专用电路。
CPU3与CPU0同样,包括核心电路10_3、MMU11_3、一级缓存(12_3、13_3)、调试电路14_3。但是,如后所述,在CPU3的核心电路10_3中,设置有在程序执行中转送与CPU0的内部状态有关的信息的监视用的寄存器组。监视用的寄存器组被映射到CPU3的存储器空间。即,在构成监视用寄存器组的各寄存器上分配地址。向CPU3发布将该分配的地址记载为操作数地址的读出命令,从而能够读出保存在监视用寄存器组中的内容。
微机芯片100进一步包括:与多个CPU分别对应设置的JTAG接口15;开关电路24;JTAG端口28。在图1中代表性地示出与CPU0、3分别对应的JTAG接口15_0、15_3。
各JTAG接口15具有称为TAP(Test Access Port,测试接入端口)16的专用的控制器,通过TAP进行对应的CPU与连接于JATG端口28的外部调试装置之间的通信。JTAG接口15成为仅特定的TAP能够与外部的调试装置进行通信的规格。开关电路24对JTAG端口28与各JTAG接口15之间的连接进行切换。
图2是示出在图1所示的CPU0的内部信息的转送中使用的硬件的一例的电路图。
参照图2,在程序执行中,CPU0的内部信息被转送到设置在CPU3的核心电路10_3上的监视用寄存器组60。监视用寄存器组60被映射到CPU3的存储器空间。被转送的CPU0的内部状态例如是在程序执行时使用的程序计数器等特殊寄存器组30的值,是与在嵌入工作时保存的CPU上下文相当的信息。
在实施方式1的情况下,如图2所示,程序计数器(EPC:Execute Program Counter,也简单记载为PC)31的值、备份程序计数器(BPC:Backup Program Counter)32的值、程序状态字(PSW:Program Status Word)33的值、以及操作数接入(OA:Operand Access)的信息34等被转送到监视用寄存器组60。作为操作数接入的信息,可以例举操作数接入请求(REQ)、读取和写入属性(WR)、总线锁定请求属性(LOCK)、字节控制(BC)、操作数地址信息(ADDR)、以及对于操作数接入请求的总线接受(acknowledge)信号(DCC1HOAACK)等。在该实施方式的情况下,由于总线结构上的理由,总线接受信号(DCC1HOAACK)由数据缓存12_0输出。另外,BPC32在产生嵌入、陷阱、例外时保存PC的值。
虽然在图2中没有图示,但优选将图1的存储器管理单元11_0的内部信息、即TLB(Translation Look-aside Buffer,转译后备缓冲区)入口(与虚拟地址对应起来的物理地址的信息)也转送到监视用寄存器组60。
将被转送的CPU0的内部信息,考虑延迟(迟滞时间)而通过多个触发器(保持电路)而转送到监视用寄存器组。在图2的情况下,触发器41~45设置在作为信息输出侧的CPU0,触发器46~54设置在作为信息接收侧的CPU3。
关于构成监视用寄存器组60的各寄存器61~68的结构的详细,参照图4和图5在后面叙述。此处,相对于寄存器61、63、64、65、66的值在每个时钟周期更新,寄存器62、67、68的值不一定在每个时钟周期更新。
寄存器62仅在程序计数器(PC)的值被更新时,保持更新前的程序计数器的值。由于该目的,在寄存器62的前级设置有触发器52,并且设置有比较电路55。比较电路55比较在触发器51中保持的程序计数器的值、与在每个时钟周期输入的新的程序计数器的值,在两者一致时输出“0”,在不一致时输出“1”。触发器52在每个时钟周期保持程序计数器的值,仅在比较电路55的输出为“1”时(WE=“1”),通过将已保持的程序计数器的值输出到寄存器62从而更新寄存器62的值。
寄存器67、68仅在操作数地址和操作数接入的属性被更新时,保持更新前的值。由于该目的,在寄存器67、68的前级设置有触发器54。触发器54在每个时钟周期保持操作数地址和操作数接入的属性。触发器54在总线接受信号(DCC1HOAACK)被活性化时,通过将已保持的操作数地址和操作数接入的属性分别输出到寄存器67、68从而更新寄存器67、68的内容。
另外,监视用寄存器组60虽然不一定设置在CPU核心10_3的内部,但是为了缩短用于传递CPU0的内部信息的信号路径,期望如图2所示设置在CPU核心10_3的内部。如果将监视用寄存器组60设置在CPU3的外部,则当通过总线20连接监视用寄存器组60与CPU3之间时,在总线20挂断的情况下不能从CPU3接入到监视用寄存器组60。或者为了避免该问题,用多个专用信号线连接监视用寄存器组60与CPU3之间。
图3是用于对具有四个CPU的微机芯片中的CPU核心间的信号传送进行说明的概念图,示出了各CPU内部状态的读出路径构成为树状的例子。
参照图3,CPU0、1、2的各内部信息被转送到设置在CPU3的监视用寄存器组。而且,优选将用于保持CPU3自身的内部信息的监视用寄存器组设置在CPU3的内部。由于设置在CPU3的监视用寄存器组被映射到CPU3的存储器空间,因此能够使用搭载有一般的调试器的存储器转储功能,将这些CPU0~3的内部信息一并输出到CPU的外部。即,仅通过将期望的观测对象映射到CPU3的存储器空间,就能够使用存储器转储功能而从微机芯片的外部观测这些观测对象。不需要进行仿真器或仿真器固件等的调试器侧的改变。
另外,在实际对程序进行调试时,在初始阶段,优选将CPU3作为监视器专用而仅通过CPU0~CPU2使程序工作。并且,在某程度进行了调试的阶段,使用所有的CPU0~3而使程序工作更有效率。
[监视用寄存器组的详细]
图4是设置在CPU3的监视用寄存器组的一览表。图4所示的地址的高位比特(higher order bit)“XXXX_XX”表示存储器空间内的特定地址。
图5是用于对图4的各监视用寄存器进行说明的图。参照图4、图5,寄存器CRMCPU0PC~CRMCPU3PC(图2的寄存器61),分别保持CPU0~3的程序计数器(PC)的值(32比特:比特b0~b31)。
寄存器CRMCPU0BPC~CRMCPU3BPC(图2的寄存器63),分别保持CPU0~3的备份程序计数器(BPC)的值(32比特)。
寄存器CRMCPU0OLDPC~CRMCPU3OLDPC(图2的寄存器62),分别保持CPU0~3的程序计数器在刚好变为当前的值之前的值(OLDPC:32比特)。在CPU挂断时,与当前执行中的命令相比前一个以上的命令成为原因的情况较多,并且为了获取程序流,重要的是保持1级以上的程序计数器履历。
寄存器CRMCPU0PSW~CRMCPU3PSW(图2的寄存器64),分别保持CPU0~3的程序状态字(PSW)的值(32比特)。
寄存器CRMCPU0OAADDR~CRMCPU3OAADDR(图2的寄存器65),分别保持CPU0~3输出的操作数接入地址(OAADDR:32比特)。
寄存器CRMCPU0OAATTR~CRMCPU3OAATTR(图2的寄存器66),保持CPU0~3分别输出的操作数接入的属性(请求R、读取W、锁定L、字节控制BC)。具体地讲,R=0的情况表示无请求,R=1的情况表示有请求。W=0的情况表示写入请求,W=1的情况表示读取请求。W的值仅在R=1时为有效。L=0的情况不是锁定期间中,或者表示是解锁请求中,L=1的情况表示是锁定期间中,或者表示是锁定请求中。字节控制BC为4比特的字节控制信号,仅在R=1时为有效。
寄存器CRMCPU0OLDOAAD~CRMCPU3OLDOAAD(图2的寄存器67),保持与CPU0~3分别输出的当前的操作数接入地址相比前一个操作数接入地址(OLDOAAD)的值(32比特)。在CPU挂断时,由于与当前执行中的操作数接入相比前一个以上的操作数接入成为原因的情况较多,因此重要的是表示1级以上的操作数接入地址的履历。
寄存器CRMCPU0OLDOAAT~CRMCPU3OLDOAAT(图2的寄存器68),保持CPU0~3分别输出的当前的操作数接入的属性(请求R、读取W、锁定L、字节控制BC)的前一个的操作数接入的属性。在CPU挂断时,由于比当前执行中的操作数接入一个以上之前的操作数接入成为原因的情况较多,因此重要的是保持1级以上的操作数接入的属性的履历。
图6是示出图1的CPU3的地址地图的一例的图。
参照图6,H’0000_0000~H’1FFF_FFFF的512M字节被分割成块。在各块中分配16MB的外部区域。外部区域通过图1的外部总线接口23而接入。图1的内部存储器、外围IO22被分配到内部区域。
H’FE00_00000~H’FFFF_FFFF的32M字节被分配到系统区域。
图4的监视用寄存器组例如能够分配到位于系统区域内的区域A、或作为内部区域2M字节的一部分的区域B等没有分配给其他资源的空缺区域。
[调试方法的说明]
图7是用于对CPU0没有挂断时的片上调试方法进行说明的图。
参照图7,将CPU核心10_0自身、能够从CPU核心10_0接入的内部存储器21、输入输出接口22、以及外部总线接口23作为调试对象70。
首先,控制码从微机芯片100的外部到达调试电路14_0。在此时的控制码为操作数接入时,调试电路14_0将加载、贮存等命令发布到CPU核心10_0(图7的参照标号71)。CPU核心10_0接受来自调试电路14_0的命令,例如,接入到作为观测对象的内部存储器21(图7的参照标号72)。CPU核心10_0的存储器接入的结果,通过调试电路14_0、JTAG接口15_0、以及JTAG端口28输出到外部(图7的参照标号73)。
图8是用于对CPU0挂断时的片上调试方法进行说明的图。
作为CPU核心无法工作的原因,可以认为即使向CPU供给命令,总线接入路径也已占满。此时,CPU不能完成先行的操作数接入处理,而挂断。作为其他原因,可以认为是由于CPU核心内的错误而挂断的情况等。当CPU0挂断时,不能从调试对象系统70向外部发出信息。
如已经说明,在实施方式1的微机芯片100中,表示CPU0的内部状态的信息被转送到CPU核心10_3内的监视用寄存器组。并且,监视用寄存器组被映射到CPU3的存储器空间。因此,调试电路14_3通过向CPU3发布加载监视用寄存器组的内容的命令(图8的参照标号74),能够将已挂断的CPU0的信息通过JTAG接口15_3和JTAG端口28输出到外部(图8的参照标号75)。其结果,能够比以往更容易地进行调试。
<实施方式2>
在实施方式1中示出了如下例子:内部状态的读出路径构成为树状,使得表示CPU0~3的内部状态的信息被全部转送到设置于CPU3的监视用寄存器组。在实施方式2中,对各CPU的内部状态的读出路径的变形例进行说明。各CPU的内部状态的读出路径,不会被各CPU的结合网的方式(片上总线,片上网络的各拓扑)所左右,而能够自由地确定,因此本发明的片上调试方法适合片上多处理器。例如,即使在结合网在片上网络中取网格结构时,各CPU的内部状态的读出路径通过取树结构而能够使路径简单化。
图9是示出具有四个CPU的微机芯片中的各CPU的内部状态的读出路径成为环形结构的例子的图。在图9所示的例子中,CPU0的内部信息被转送到设置于CPU1的监视用寄存器组,CPU1的内部信息被转送到设置于CPU3的监视用寄存器组,CPU3的内部信息被转送到设置于CPU2的监视用寄存器组,CPU2的内部信息被转送到设置于CPU0的监视用寄存器组。即,各CPU的内部状态的读出路径成为环形结构。
图10是示出具有四个CPU的微机芯片中的各CPU的内部状态的读出路径成为总线结构的例子的图。在图10所示的例子中,CPU0~3各自的内部信息经由总线(BUS)而被转送到设置于CPU0~3的至少一个的监视用寄存器组。
图11是示出具有七个CPU的微机芯片中的各CPU的内部状态的读出路径成为树结构的例子的图。在图11中,示出了各CPU的内部状态的读出路径构成为树状的例子。具体地讲,CPU10、11的各内部信息被转送到设置于CPU1的监视用寄存器组,CPU20、21的各内部信息被转送到设置于CPU2的监视用寄存器组,CPU1、2的各内部信息被转送到设置于CPU0的监视用寄存器组。
应认为此次公开的实施方式在所有的点上为例示而不是限制的。本发明的范围由权利要求表示而不是由上述说明表示,意图包含与权利要求等同的意思和范围内的所有变更。
标号说明
0~3CPU,10核心电路(CPU核心),11存储器管理单元,12数据缓存,13指令缓存,14调试电路,15JTAG接口,20内部总线,21内部存储器,22输入输出接口,23外部总线接口,24开关电路,26、27输入输出端口,28JTAG端口,30特殊寄存器组,31程序计数器,33程序状态字,41~54触发器,60监视用寄存器组,100微机芯片。
Claims (9)
1.一种半导体装置,具有:
包括用于执行程序的第1核心电路的第1中央处理装置;
包括用于执行所述程序的第2核心电路的第2中央处理装置;以及
监视用寄存器组,设置在所述第2中央处理装置的内部或外部,在程序的执行中表示所述第1中央处理装置的内部状态的信息从所述第1中央处理装置转送到所述监视用寄存器组,所述监视用寄存器组保持所转送的信息,
所述监视用寄存器组映射到所述第2中央处理装置的存储器空间,
所述第2中央处理装置通过执行命令能够读取保存在所述监视用寄存器组中的数据。
2.根据权利要求1所述的半导体装置,其中,
所述第2中央处理装置,还包括:
调试电路,在通过专用端口从所述半导体装置的外部接收了特定命令时,将映射到存储器空间的所述监视用寄存器组的值输出到所述第2核心电路,将所输出的所述监视用寄存器组的值通过所述专用端口而输出到所述半导体装置的外部。
3.根据权利要求1所述的半导体装置,其中,
所述第1核心电路具有在程序的执行中使用的特殊寄存器组,
所述特殊寄存器组的值作为表示所述第1中央处理装置的内部状态的信息,被转送到所述监视用寄存器组。
4.根据权利要求3所述的半导体装置,其中,
所述特殊寄存器组包括程序计数器。
5.根据权利要求3所述的半导体装置,其中,
所述特殊寄存器组包括对操作数地址进行保持的寄存器。
6.根据权利要求1所述的半导体装置,其中,
所述第1中央处理装置包括进行虚拟地址与物理地址之间的转换的存储器管理单元,
通过所述存储器管理单元而与虚拟地址对应起来的物理地址的信息作为表示所述第1中央处理装置的内部状态的信息,被转送到所述监视用寄存器组。
7.根据权利要求1所述的半导体装置,其中,
作为所述监视用寄存器组的一部分的一个或多个监视用寄存器的值,通过在每个时钟周期从所述第1中央处理装置转送的信息而被更新。
8.根据权利要求1所述的半导体装置,其中,
所述半导体装置进一步具有一个或多个保持电路,该一个或多个保持电路分别设置在作为所述监视用寄存器组的一部分的一个或多个监视用寄存器的前级,
所述一个或多个保持电路分别保持在每个时钟周期从所述第1中央处理装置转送的新的信息,
所述一个或多个保持电路各自仅在已保持的信息的值变化时,通过变化前的信息来更新对应的监视用寄存器的值。
9.根据权利要求1所述的半导体装置,其中,
所述半导体装置进一步具有一个或多个保持电路,该一个或多个保持电路分别设置在作为所述监视用寄存器组的一部分的一个或多个监视用寄存器的前级,
所述一个或多个保持电路各自保持在每个时钟周期从所述第1中央处理装置转送的新的信息,
所述一个或多个保持电路各自在从所述第1中央处理装置接收的特定的信号被活性化的期间,通过已保持的信息来更新对应的寄存器的保持内容。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011066093 | 2011-03-24 | ||
JP2011-066093 | 2011-03-24 | ||
PCT/JP2012/053927 WO2012127955A1 (ja) | 2011-03-24 | 2012-02-20 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103443776A CN103443776A (zh) | 2013-12-11 |
CN103443776B true CN103443776B (zh) | 2017-02-15 |
Family
ID=46879118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280014595.5A Expired - Fee Related CN103443776B (zh) | 2011-03-24 | 2012-02-20 | 半导体装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130326539A1 (zh) |
EP (1) | EP2690558B1 (zh) |
JP (2) | JP5628411B2 (zh) |
CN (1) | CN103443776B (zh) |
WO (1) | WO2012127955A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205032B (zh) * | 2015-08-25 | 2018-06-26 | 华为技术有限公司 | Cpu互连装置、系统及其控制方法、控制装置 |
KR20180091364A (ko) * | 2017-02-06 | 2018-08-16 | 삼성전자주식회사 | 디버그 호스트로서 동작하는 cpu를 포함하는 시스템 온 칩 및 이의 동작 방법 |
US11105850B2 (en) * | 2018-05-24 | 2021-08-31 | Seagate Technology Llc | Secure debug system for electronic devices |
JP2020140380A (ja) * | 2019-02-27 | 2020-09-03 | ローム株式会社 | 半導体装置及びデバッグシステム |
JP7434114B2 (ja) | 2020-08-31 | 2024-02-20 | キオクシア株式会社 | メモリシステム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008191924A (ja) * | 2007-02-05 | 2008-08-21 | Toshiba Corp | フェールセーフcpu動作監視装置 |
CN101324855A (zh) * | 2008-08-12 | 2008-12-17 | 杭州华三通信技术有限公司 | 辅助cpu工作状态的检测方法、系统、组件及多cpu设备 |
CN101681286A (zh) * | 2007-06-11 | 2010-03-24 | 丰田自动车株式会社 | 多处理器系统及其控制方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2578182B2 (ja) * | 1988-10-28 | 1997-02-05 | 株式会社日立製作所 | デ−タ処理装置及びデ−タ処理システム |
JPH06214819A (ja) * | 1993-01-19 | 1994-08-05 | Toshiba Corp | 情報処理装置及びこの装置の評価システムならびに評価方法 |
US6728258B1 (en) * | 1995-11-15 | 2004-04-27 | Hitachi, Ltd. | Multi-processor system and its network |
JP3175757B2 (ja) * | 1996-08-13 | 2001-06-11 | 日本電気株式会社 | デバッグシステム |
US6142683A (en) * | 1997-04-08 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including data steering between a processor, an input/output port, and a trace logic |
US6185732B1 (en) * | 1997-04-08 | 2001-02-06 | Advanced Micro Devices, Inc. | Software debug port for a microprocessor |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
JP4335999B2 (ja) * | 1999-05-20 | 2009-09-30 | 株式会社ルネサステクノロジ | プロセッサ内蔵半導体集積回路装置 |
US7793261B1 (en) * | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6732307B1 (en) * | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
JP4190114B2 (ja) * | 1999-11-10 | 2008-12-03 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
JP2001350648A (ja) * | 2000-06-08 | 2001-12-21 | Hitachi Ltd | マイクロコンピュータ |
KR100802606B1 (ko) * | 2001-04-13 | 2008-02-13 | 엘지전자 주식회사 | 데이터의 천이 상태에 따른 디버깅 장치 및 방법 |
JP2003162426A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
JP2004164367A (ja) * | 2002-11-14 | 2004-06-10 | Renesas Technology Corp | マルチプロセッサシステム |
US7272759B2 (en) * | 2004-08-05 | 2007-09-18 | International Business Machines Corporation | Method and apparatus for system monitoring with reduced function cores |
CN100375060C (zh) * | 2005-06-20 | 2008-03-12 | 中兴通讯股份有限公司 | 一种嵌入式系统及其实时内存监控处理方法 |
JP5054558B2 (ja) * | 2008-02-14 | 2012-10-24 | ルネサスエレクトロニクス株式会社 | マルチコアlsi |
US7870430B2 (en) * | 2008-02-29 | 2011-01-11 | Freescale Semiconductor, Inc. | Method and apparatus for sharing debug resources |
JP5255887B2 (ja) * | 2008-04-08 | 2013-08-07 | ルネサスエレクトロニクス株式会社 | 情報処理装置及びデバッグ方法 |
-
2012
- 2012-02-20 JP JP2013505848A patent/JP5628411B2/ja not_active Expired - Fee Related
- 2012-02-20 WO PCT/JP2012/053927 patent/WO2012127955A1/ja active Application Filing
- 2012-02-20 CN CN201280014595.5A patent/CN103443776B/zh not_active Expired - Fee Related
- 2012-02-20 US US14/000,188 patent/US20130326539A1/en not_active Abandoned
- 2012-02-20 EP EP12760128.4A patent/EP2690558B1/en active Active
-
2014
- 2014-09-29 JP JP2014198515A patent/JP5756554B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008191924A (ja) * | 2007-02-05 | 2008-08-21 | Toshiba Corp | フェールセーフcpu動作監視装置 |
CN101681286A (zh) * | 2007-06-11 | 2010-03-24 | 丰田自动车株式会社 | 多处理器系统及其控制方法 |
CN101324855A (zh) * | 2008-08-12 | 2008-12-17 | 杭州华三通信技术有限公司 | 辅助cpu工作状态的检测方法、系统、组件及多cpu设备 |
Also Published As
Publication number | Publication date |
---|---|
JP5756554B2 (ja) | 2015-07-29 |
CN103443776A (zh) | 2013-12-11 |
JP5628411B2 (ja) | 2014-11-19 |
US20130326539A1 (en) | 2013-12-05 |
JPWO2012127955A1 (ja) | 2014-07-24 |
WO2012127955A1 (ja) | 2012-09-27 |
EP2690558A4 (en) | 2015-07-15 |
JP2014241172A (ja) | 2014-12-25 |
WO2012127955A9 (ja) | 2013-08-01 |
EP2690558B1 (en) | 2020-01-22 |
EP2690558A1 (en) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9892803B2 (en) | Cache management request fusing | |
US8359453B2 (en) | Real address accessing in a coprocessor executing on behalf of an unprivileged process | |
US7797503B2 (en) | Configurable memory system and method for providing atomic counting operations in a memory device | |
Abts et al. | The Cray BlackWidow: a highly scalable vector multiprocessor | |
US6851072B2 (en) | Fault management and recovery based on task-ID | |
CN103443776B (zh) | 半导体装置 | |
KR102424238B1 (ko) | 프로그래밍가능 논리부를 위한 메모리의 가상화 | |
US8904073B2 (en) | Coherence processing with error checking | |
CN111324493B (zh) | 针对处理器板级调试的开发系统及方法 | |
JP7385083B2 (ja) | システムオンチップ(soc)のための強化された耐久性 | |
US9448937B1 (en) | Cache coherency | |
TWI407306B (zh) | 快取記憶體系統及其存取方法與電腦程式產品 | |
Tornero et al. | An Open-Source FPGA Platform for Shared-Memory Heterogeneous Many-Core Architecture Exploration | |
WO2024049761A1 (en) | Memory contoller and near-memory support for sparse accesses | |
Saravu | Multi-Processor Memory Scoreboard: A multi-processor memory ordering and data consistency checker |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Tokyo, Japan Applicant after: Renesas Electronics Corporation Address before: Kanagawa Applicant before: Renesas Electronics Corporation |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20190220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |