CN111694697B - 半导体装置及调试系统 - Google Patents
半导体装置及调试系统 Download PDFInfo
- Publication number
- CN111694697B CN111694697B CN202010171828.9A CN202010171828A CN111694697B CN 111694697 B CN111694697 B CN 111694697B CN 202010171828 A CN202010171828 A CN 202010171828A CN 111694697 B CN111694697 B CN 111694697B
- Authority
- CN
- China
- Prior art keywords
- state
- selector
- access
- signal
- read
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 48
- 230000015654 memory Effects 0.000 claims description 65
- 230000004044 response Effects 0.000 claims description 31
- 238000000605 extraction Methods 0.000 claims description 30
- 230000007704 transition Effects 0.000 claims description 24
- 230000007175 bidirectional communication Effects 0.000 claims description 3
- 102100024348 Beta-adducin Human genes 0.000 description 15
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 15
- 102100034033 Alpha-adducin Human genes 0.000 description 10
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 10
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000000630 rising effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- 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
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
本发明的课题在于使调试系统以简单的构成且较少的开销实现从外部向半导体装置的访问。本发明涉及一种半导体装置及调试系统。LSI(11)具备:CPU(20)、调试控制部(21)、内部总线(22)、连接于内部总线的存储部(23、24、26)、及选择器(27)。选择器基于来自CPU的选择控制信号(CNT),成为将来自CPU的信号传输至内部总线的CPU选择状态、与将来自调试控制部的信号传输至内部总线的调试器选择状态中的任一者。原则上设为CPU选择状态。在通过调试控制部从外部装置(12、13)接收到规定指令时,通过将与该规定指令对应的信号从调试控制部发送至CPU,而将选择器暂时地设为调试器选择状态,从而通过调试器控制部向内部总线进行访问。
Description
技术领域
本发明涉及一种半导体装置及调试系统。
背景技术
在具备执行程序的CPU(Central Processing Unit,中央处理单元)等的半导体装置中,在开发要执行的程序时,大多数情况下会使用用于支援程序的调试作业的调试系统。
在调试作业中,期望在程序的动作中从外部对半导体装置内的存储部(为寄存器或未分类为寄存器的存储器等,以下称为内部资源)进行访问。为了响应该期望,大量调试系统具有如下构成,即从包含LSI(Large Scale Integration,大规模集成电路)等的半导体装置的外部利用串列通信等对内部资源进行访问,且能够进行必要的读写。
此时,也有时在执行指定的地址的命令时使CPU停止(中断)而向内部资源进行访问。但,有的装置也存在开始执行程序后CPU停止的问题。例如在马达控制装置中,如果CPU停止则存在无法控制马达的旋转而破坏装置的情况,所以应避免程序执行开始后的CPU停止。因此,应用于此种装置的调试系统要求不使CPU停止而向内部资源进行访问。
[背景技术文献]
[专利文献]
[专利文献1]日本专利第5400443号公报
[专利文献2]日本专利特开2004-86447号公报
发明内容
[发明要解决的问题]
为了调试而搭载于半导体装置的电路与原本的半导体装置的动作没有关系,所以期望尽可能地制成小规模的电路。
另外,在不使CPU停止而一面使程序进行动作一面进行调试作业的情况下,为了尽可能地不干扰程序的动作,较理想为以极小的开销(时脉开销)完成从外部向内部资源的访问。
此外,在专利文献1的调试系统中,在设置于半导体装置的调试电路内需要DMA(direct memory access,直接内存访问)控制器,所以电路规模变大(参考专利文献1的图4)。另外,需要将用于对CPU的存储器访问与调试器的存储器访问进行仲裁的总线仲裁电路设置于半导体装置内(参考专利文献1的图7),也因此导致电路规模变大,另外,用于获得访问权的开销(时脉开销)也变大。也就是说,在专利文献1的调试系统中,如果进入中断处理,则CPU以向中断专用的地址产生分支,由中断专用的调试程序进行控制的方式进行动作,所以调试动作所需的时脉数(也就是说开销)变大。
另外,在专利文献2的数据系统中,为了从外部向内部资源进行访问,而使用相当于半导体装置(微型计算机)原本所具备的DMA控制器的构成要素。反过来说,专利文献2的方法无法应用于不具有DMA控制器的半导体装置。另外,在专利文献2的方法中,为了利用调试(模拟)用的程序向内部资源实施访问,半导体装置的内部需要调试程序专用的RAM(Random Access Memory,随机访问存储器)(ERAM(Embedded RAM,嵌入式RAM))。结果为,设置于半导体装置的调试用电路的规模变大,且调试动作所需的时脉数(也就是说开销)也变大。
本发明的目的在于提供一种以简单的构成且较少的开销实现外部访问的半导体装置及调试系统。
[解决问题的技术手段]
本发明的半导体装置是如下构成(第1构成),该半导体装置具备总线、连接于所述总线的存储部、连接于所述总线的选择器、执行程序且能够经由所述选择器访问所述总线的处理部、及构成为能够与外部装置之间进行双向通信且能够经由所述选择器访问所述总线的调试控制部;且所述选择器基于来自所述处理部的选择控制信号采取第1选择状态、及第2选择状态中的任一状态,在来自所述处理部的第1信号及来自所述调试控制部的第2信号中,所述第1选择状态是将所述第1信号传输至所述内部总线,所述第2选择状态是将所述第2信号传输至所述内部总线;当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部从所述外部装置接收到规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器而与所述规定指令对应地向所述总线进行访问。
也可为如下构成(第2构成):根据所述第1构成的半导体装置,在所述选择器的状态被设为所述第2选择状态时,停止执行所述程序。
也可为如下构成(第3构成):根据所述第1或第2构成的半导体装置,在开始执行所述程序后,除了响应所述规定指令的接收而将所述选择器的状态暂时地设为所述第2选择状态时以外,将所述选择器的状态设为所述第1选择状态。
也可为如下构成(第4构成):根据所述第1至第3构成中任一项的半导体装置,所述调试控制部响应所述规定指令的接收将规定的访问开始信号输出至所述处理部,所述处理部响应所述访问开始信号的输入将所述选择器的状态从所述第1选择状态切换成所述第2选择状态;然后,当通过所述调试控制部进行的与所述规定指令对应的访问结束时,所述调试控制部将规定的访问结束信号输出至所述处理部,所述处理部响应所述访问结束信号的输入而使所述选择器的状态从所述第2选择状态恢复到所述第1选择状态。
也可为如下构成(第5构成):根据所述第4构成的半导体装置,所述处理部具有对所述程序的执行状态进行控制的状态机;在所述状态机处于进行构成所述程序的命令的提取及执行的提取状态时,当通过所述处理部接收所述访问开始信号的输入后,所述状态机转变为停止所述命令的提取及执行的中断状态,且响应已通过所述处理部接收到所述访问结束信号的输入,所述状态机恢复至所述提取状态;所述状态机在所述中断状态中将所述选择器控制为所述第2选择状态。
也可为如下构成(第6构成):根据所述第1至第5构成中任一项的半导体装置,当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部接收到读取指令作为所述规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器对所述总线进行相应于所述读取指令的读取访问,然后,将通过所述读取访问从所述存储部获取的读取数据发送至所述外部装置。
也可为如下构成(第7构成):根据所述第6构成的半导体装置,所述存储部具有被分配了多个地址的多个存储区域;通过所述读取指令来指定所述多个地址中的任一者;所述调试控制部在与所述读取指令对应的所述读取访问中,经由所述选择器对所述总线进行用于从所述存储部获取由所述读取指令所指定的地址的存储区域内的数据作为所述读取数据的访问,并将由此获得的所述读取数据发送至所述外部装置。
也可为如下构成(第8构成):根据所述第1至第5构成中任一项的半导体装置,当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部接收到写入指令作为所述规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器对所述总线进行与所述写入指令对应的写入访问;通过所述写入访问,在所述存储部进行与所述写入指令对应的数据的写入。
也可为如下构成(第9构成):根据所述第8构成的半导体装置,所述存储部具有被分配了多个地址的多个存储区域;通过所述写入指令来指定所述多个地址中的任一者并且指定写入数据;所述调试控制部在与所述写入指令对应的所述写入访问中,经由所述选择器对所述总线进行用于将所述写入数据写入至由写入指令所指定的地址的存储区域中的访问。
本发明的调试系统是如下构成(第10构成),具备:所述第1至第9构成中任一项的半导体装置、及连接于所述半导体装置且能够对所述半导体装置的所述调试控制部发送所述规定指令的外部装置。
[发明的效果]
根据本发明,可提供一种以简单的构成且较少的开销实现外部访问的半导体装置及调试系统。
附图说明
图1是本发明的第1实施方式的调试系统的概略构成图。
图2是表示设置于LSI内的存储部的图。
图3(a)、(b)是本发明的第1实施方式的读取访问及读取动作的说明图。
图4(a)、(b)是本发明的第1实施方式的写入访问及写入动作的说明图。
图5是本发明的第1实施方式的状态机的状态转变图。
图6是本发明的第1实施方式的向提取状态转变后的LSI的动作流程图。
图7是本发明的第1实施方式的响应读取指令的接收的LSI的时序图。
图8是本发明的第2实施方式的表示2个CPU、调试控制部、选择器及内部总线间的关系的图。
图9是本发明的第2实施方式的与针对CPU内部寄存器的访问相关的调试控制部及CPU的构成图。
具体实施方式
以下,参考附图对本发明的实施方式的示例具体地进行说明。在供参考的各图中,对同一部分标注同一符号,并在原则上省略关于同一部分的重复说明。此外,在本说明书中,就简化记载方面来说,有时通过对信息、信号、物理量、元件或部位等标记用于参考的记号或符号,而省略或简化该记号或符号所对应的信息、信号、物理量、元件或部位等的名称。例如,通过下述“RE”参考的读取使能信号(参考图1)有时记为读取使能信号RE,也可简称为信号RE,它们全都表示相同的事物。
<<第1实施方式>>
将对本发明的第1实施方式进行说明。图1是本发明的第1实施方式的调试系统10的概略构成图。调试系统10具备:内置有CPU(Central Processing Unit)的LSI(LargeScale Integration)11、外部调试装置12、及主机计算机13(以下可称为主机PC13)。
作为半导体装置的LSI11具备CPU(Central Processing Unit)20、调试控制部21、内部总线22及选择器27,并且具备1个以上的ROM(Read only memory,只读存储器)、1个以上的RAM(Random access memory)、及作为1个以上的周边电路的1个以上的外围设备(peripheral)作为连接于内部总线22的构成要素。在图1中,示出了ROM23作为1个以上的ROM中所含的1个ROM,示出了RAM24作为1个以上的RAM中所含的1个RAM,且示出了外围设备25作为1个以上的外围设备中所含的1个外围设备。以下,作为ROM、RAM及外围设备,着眼于ROM23、RAM24及外围设备25。在外围设备25中内置有寄存器26。
CPU20执行设置于LSI11的程序存储器(未图示)中所存储的程序。程序存储器也可内置于CPU20。CPU20通过在执行程序时根据需要经由选择器27访问内部总线22,可读入ROM23、RAM24或寄存器26的存储数据,或向RAM24或寄存器26写入数据。在以下说明中,在简称为程序的情况下,该程序是指应由CPU20所执行的程序或正由CPU20所执行的程序。
外部调试装置12经由设置于LSI11的未图示的端子连接于调试控制部21,作为调试控制部21与主机PC13之间的接口发挥功能。外部调试装置12及主机PC13以能够进行双向通信的形态彼此连接。在主机PC13中执行调试软件14。调试系统10的用户通过操作正执行调试软件14的主机PC13,可进行CPU20所执行的程序的调试作业。
参考图2,以下,为了方便,而将设置于LSI11且包含ROM23、RAM24及寄存器26的存储电路称为存储部30。存储部30中包含多个能够存储规定大小的数据的存储区域。对存储部30定义了规定的地址空间,并对构成存储部30的各存储区域分配了固有的地址。
选择器27具有第1输入部27a、第2输入部27b及输出部27c,第1输入部27a连接于CPU20,第2输入部27b连接于调试控制部21,输出部27c连接于内部总线22。对此进行详细说明。
CPU20及调试控制部21分别能够输出读取使能信号、写入使能信号、地址信号及写入数据,尤其将从CPU20输出的读取使能信号、写入使能信号、地址信号及写入数据分别称为读取使能信号RE1、写入使能信号WE1、地址信号ADD1及写入数据WD1,且尤其将从调试控制部21输出的读取使能信号、写入使能信号、地址信号及写入数据分别称为读取使能信号RE2、写入使能信号WE2、地址信号ADD2及写入数据WD2。关于写入数据,换句话说,也可以说是表示写入数据的信号,以下,为了记载方便,也有时将写入数据WD1、WD2记为信号WD1、WD2(关于下述写入数据WD也同样)。
第1输入部27a连接于设置在CPU20及选择器27之间且传递信号RE1、WE1、ADD1及WD1的配线,接收来自CPU20的信号RE1、WE1、ADD1及WD1的输入。第2输入部27b连接于设置在调试控制部21及选择器27间且传递信号RE2、WE2、ADD2及WD2的配线,接收来自调试控制部21的信号RE2、WE2、ADD2及WD2的输入。
另外,对于选择器27,从CPU20供给选择控制信号CNT,选择器27基于选择控制信号CNT将第1输入部27a及第2输入部27b中任一者选择性地连接于输出部27c。选择控制信号CNT为采取“1”或“0”值的1比特信号,在选择控制信号CNT的值为“0”时,选择器27的状态成为CPU选择状态,在选择控制信号CNT的值为“1”时,选择器27的状态成为调试器选择状态。以下,有时将选择器27的状态为CPU选择状态的情况简单地表达为“CPU选择状态”,同样地,有时将选择器27的状态为调试器选择状态的情况简单地表达为“调试器选择状态”。此外,所谓“调试器”是指供调试作业的部位的总称,可解释为包含调试控制部21、外部调试装置12及主机PC13的全部或一部分。
在CPU选择状态下,第1输入部27a连接于输出部27c,结果为,传递信号RE1、WE1、ADD1及WD1的配线经由输出部27c连接于内部总线22,而将这些信号RE1、WE1、ADD1及WD1传输至内部总线22。在调试器选择状态下,第2输入部27b连接于输出部27c,结果为,传递信号RE2、WE2、ADD2及WD2的配线经由输出部27c连接于内部总线22,而将这些信号RE2、WE2、ADD2及WD2传输至内部总线22。
尤其将从输出部27c输出的读取使能信号、写入使能信号、地址信号及写入数据分别称为读取使能信号RE、写入使能信号WE、地址信号ADD及写入数据WD。此外,写入数据(WD、WD1、WD2)是仅在执行下述写入访问时输出的数据。
在CPU选择状态下,第1输入部27a连接于输出部27c,所以将来自CPU20的读取使能信号RE1、写入使能信号WE1、地址信号ADD1及写入数据WD1作为读取使能信号RE、写入使能信号WE、地址信号ADD及写入数据WD从输出部27c输出至内部总线22。在调试器选择状态下,第2输入部27b连接于输出部27c,所以将来自调试控制部21的读取使能信号RE2、写入使能信号WE2、地址信号ADD2及写入数据WD2作为读取使能信号RE、写入使能信号WE、地址信号ADD及写入数据WD从输出部27c输出至内部总线22。
如此,CPU20可以在选择器27处于CPU选择状态时向内部总线22进行访问,调试控制部21可以在选择器27处于调试器选择状态时向内部总线22进行访问。作为向内部总线22的访问,有读取访问与写入访问。关于向内部总线22的读取访问或写入访问,换句话说,是经由内部总线22的向存储部30的读取访问或写入访问。对RAM24及寄存器26的访问为读取访问及写入访问中的任一者,但对ROM23的访问仅限于读取访问。
存储部30(例如RAM24)在从CPU20或调试控制部21接收到读取访问时进行将所需的读取数据RD输出至内部总线22的读取动作,在从CPU20或调试控制部21接收到写入访问时进行存储与经由内部总线22送来的写入数据WD对应的数据的写入动作。关于读取数据,换句话说,也可以说是表示读取数据的信号,以下,为了记载方便,也可将读取数据RD记为信号RD。
内部总线22包含用于将信号RE、WE、ADD、RD及WD(也就是信号RE、WE及ADD以及数据RD及WD)个别地传送的多根配线。构成内部总线22的配线中用于传送读取数据RD的配线分别连接于CPU20及调试控制部21。因此,在响应读取访问而从存储部30对内部总线22输出读取数据RD时,CPU20及调试控制部21可获取该读取数据RD。
此处,读取使能信号(RE、RE1、RE2)为采取“1”或“0”值的1比特信号,“1”的读取使能信号(RE、RE1、RE2)作为容许读取动作的信号发挥功能,且“0”的读取使能信号(RE、RE1、RE2)作为禁止读取动作的信号发挥功能。另外,写入使能信号(WE、WE1、WE2)也为采取“1”或“0”值的1比特信号,“1”的写入使能信号(WE、WE1、WE2)作为容许写入动作的信号发挥功能,且“0”的写入使能信号(WE、WE1、WE2)作为禁止写入动作的信号发挥功能。地址信号(ADD、ADD1、ADD2)是指定存储部30内的任一存储区域的地址的信号,具有与存储部30中所定义的地址空间的大小对应的比特数。读取数据(RD)是将存储部30内的任一存储区域内所存储的数据从该存储区域读出的数据。写入数据(WD、WD1、WD2)是应该写入至存储部30内的任一存储区域内的数据。读取数据及写入数据各自的比特数为任意比特(例如为8比特)。
另外,调试控制部21可对CPU20输出调试器访问开始信号Sacs及调试器访问结束信号Eacs,但关于这些信号将于下文叙述。
主机PC13(换句话说为调试软件14)能够基于调试系统10的用户对主机PC13的操作发布规定指令,所发布的规定指令经由外部调试装置12被发送至调试控制部21。
作为所述规定指令,有请求使调试控制部21进行读取访问的读取指令、与请求使调试控制部21进行写入访问的写入指令。如果是读取指令,则指定访问对象地址。如果是写入指令,则指定访问对象地址与写入数据。也可以认为在从外部调试装置12对调试控制部21发送读取指令时,将表示访问对象地址的信号被附加至读取指令而发送。同样地,也可以认为在从外部调试装置12对调试控制部21发送写入指令时,将表示访问对象地址的信号及表示写入数据的信号被附加至写入指令而发送。
访问对象地址是指存储部30的地址空间中的任一地址。由读取指令指定的访问对象地址是成为通过调试控制部21进行的读取访问的对象的地址,由写入指令指定的访问对象地址是成为通过调试控制部21进行的写入访问的对象的地址。由写入指令指定的写入数据表示应写入至访问对象地址的数据。
在发布了读取指令时,通过调试控制部21及CPU20的协动,而暂时地实现选择器27的调试器选择状态,通过在调试器选择状态下由调试控制部21对内部总线22进行相应于读取指令的读取访问,而获取访问对象地址的存储区域的存储数据作为读取数据RD。所获取的读取数据RD被从调试控制部21发送至外部调试装置12,并经由外部调试装置12送至主机PC13。
在发布了写入指令时,通过调试控制部21及CPU20的协动,而暂时地实现选择器27的调试器选择状态,通过在调试器选择状态下由调试控制部21对内部总线22进行与写入指令对应的写入访问,而向访问对象地址的存储区域内写入由写入指令指定的写入数据。
参考图3(a)及(b),对读取访问及读取动作进一步进行说明。在CPU选择状态下,CPU20能够基于自身所执行的程序进行读取访问,在调试器选择状态下,调试控制部21能够基于所接收到的读取指令进行读取访问。
如图3(a)所示,CPU20在CPU选择状态下的读取访问中,将“1”的读取使能信号RE1、与指定存储部30中所定义的多个地址中的任一者的地址信号ADD1作为读取使能信号RE及地址信号ADD经由选择器27输出至内部总线22,由此使存储部30进行读取动作。
如图3(b)所示,调试控制部21在调试器选择状态下的读取访问中,将“1”的读取使能信号RE2、与指定存储部30中所定义的多个地址中的任一者的地址信号ADD2作为读取使能信号RE及地址信号ADD经由选择器27输出至内部总线22,由此使存储部30进行读取动作。由地址信号ADD2指定的地址与由读取指令指定的访问对象地址一致。
在响应读取访问的读取动作中,存储部30(例如RAM24)读出经由内部总线22从CPU20或调试控制部21输入的地址信号ADD所指定的地址的存储区域的存储数据,并将所读出的数据作为读取数据RD输出至内部总线22。通过读取动作而输出至内部总线22的读取数据RD经由内部总线22与CPU20及调试控制部21之间的配线被输入至CPU20及调试控制部21。
参考图4(a)及(b)对写入访问及写入动作进一步进行说明。在CPU选择状态下,CPU20能够基于自身所执行的程序进行写入访问,在调试器选择状态下,调试控制部21能够基于所接收到的写入指令进行写入访问。
如图4(a)所示,CPU20在CPU选择状态下的写入访问中,将“1”的写入使能信号WE1、指定存储部30中所定义的多个地址中的任一者的地址信号ADD1、及应写入至由地址信号ADD1所指定的地址的存储区域中的写入数据WD1作为写入使能信号WE、地址信号ADD及写入数据WD经由选择器27输出至内部总线22,由此使存储部30进行写入动作。
如图4(b)所示,调试控制部21在调试器选择状态下的写入访问中,将“1”的写入使能信号WE2、指定存储部30中所定义的多个地址中的任一者的地址信号ADD2、及应写入至由地址信号ADD2所指定的地址的存储区域中的写入数据WD2作为写入使能信号WE、地址信号ADD及写入数据WD经由选择器27输出至内部总线22,由此使存储部30进行写入动作。由地址信号ADD2所指定的地址与由写入指令所指定的访问对象地址一致。写入数据WD2与由写入指令所指定的写入数据一致。
在响应写入访问的写入动作中,存储部30(例如RAM24)向经由内部总线22从CPU20或调试控制部21输入的地址信号ADD所指定的地址的存储区域中存储与来自CPU20或调试控制部21的写入数据WD对应的数据。有时写入动作后的所对应的存储区域的存储数据与写入数据WD一致,也有时根据规格,虽然为基于写入数据WD的数据但不与写入数据WD一致。
CPU20在原则上将选择器27的状态设为CPU选择状态,只在需要通过调试控制部21向内部总线22进行访问时将选择器27的状态设为调试器选择状态。关于实现所述行为的控制,将在与CPU20所具备的状态机的动作的关系下详细地进行说明。
图5是状态机的状态转变图。状态机控制CPU20中的程序的执行状态。状态机采取4种状态即空闲状态、预提取状态、提取状态及中断状态中的任一状态(state)。状态机的实体是存储有指示CPU20中的程序的执行状态为这4种状态中的哪一种状态的值的寄存器。空闲状态是开始通过CPU20执行程序之前的状态,状态机的初始状态为空闲状态。当开始对LSI11供给电源时,首先,状态机的状态成为空闲状态。
在开始对LSI11供给电源后,在LSI11中执行规定的初始化动作,当开始执行程序的准备到位时,状态机从空闲状态转变为预提取状态,然后转变为提取状态。预提取状态是即将转变为提取状态之前的状态,在从空闲状态或中断状态转变为提取状态时,经过预提取状态后转变为提取状态。预提取状态是用于开始或重新开始向程序存储器的访问的状态。
存储在程序存储器中的程序包含CPU20应执行的命令(命令代码)组,CPU20与CPU20的动作时脉同步地从程序存储器依次读出所需命令,通过经过解码等依次执行依次读出的命令而执行程序。将从程序存储器读出并获取所需命令的动作称为提取。提取状态是进行构成程序的命令的提取及执行的状态。在从未进行提取的空闲状态或中断状态转变为提取状态时,用于开始或重新开始向程序存储器的访问的区间只存在1时脉量的时间,在该区间内状态机成为预提取状态。因此,在从空闲状态或中断状态向预提取状态转变后,如果经过1时脉量的时间则从预提取状态转变为提取状态。1时脉量的时间相当于CPU20的动作时脉的1周期量的长度。
在预提取状态及提取状态下,选择器27的状态被设为CPU选择状态。也就是说,CPU20通过在预提取状态及提取状态下输出“0”的选择控制信号CNT来将选择器27的状态设为CPU选择状态。在因发生向提取状态的转变而在CPU20中开始执行程序后,只要来自调试控制部21的调试器访问开始信号Sacs未被CPU20接收,状态机的状态便维持为提取状态。此外,即使在空闲状态下,选择器27的状态也为CPU选择状态(但,也可设为调试器选择状态)。
通过在提取状态下反复进行命令的提取及执行来执行程序。因为在提取状态下设为CPU选择状态,所以CPU20能够依据自身所执行的程序自由地对内部总线22进行访问,从而能够使存储部30进行所需的读取动作或写入动作。
将转变成提取状态后的LSI11的动作流程图示于图6。一面参考图5及图6一面对转变成提取状态后的LSI11的动作进行说明。
在LSI11启动后,调试控制部21监视是否接收来自外部调试装置12的指令。当在步骤S11中从外部调试装置12接收读取指令或写入指令时,调试控制部21响应该接收,在步骤S12中对CPU20(换句话说是对状态机)输出规定的调试器访问开始信号Sacs,还将读取访问用信号或写入访问用信号输出至选择器27。调试器访问开始信号Sacs可以说是通知开始通过调试控制部21向内部总线22进行访问的信号,也可以说是请求将向内部总线22的访问的权限移交给调试控制部21的信号。
于在步骤S11中接收到读取指令的情况下,在步骤S12中将读取访问用信号输出至选择器27。读取访问用信号包含“1”的读取使能信号RE2与上述地址信号ADD2。由地址信号ADD2所指定的地址与由读取指令所指定的访问对象地址一致。
于在步骤S11中接收到写入指令的情况下,在步骤S12中将写入访问用信号输出至选择器27。写入访问用信号包含“1”的写入使能信号WE2与上述地址信号ADD2及写入数据WD2。由地址信号ADD2所指定的地址与由写入指令所指定的访问对象地址一致。写入数据WD2与由写入指令所指定的写入数据一致。
对选择器27的读取访问用信号或写入访问用信号的输出时序可以与调试器访问开始信号Sacs的输出时序同时,也可以不同时。对选择器27的读取访问用信号或写入访问用信号的输出只要在通过调试控制部21执行向内部总线22的实际访问的阶段进行即可。
此外,在调试作业中,有益的是在通过CPU20执行程序时向存储部30进行访问,因此,读取指令或写入指令基本上是在状态机处于提取状态时发布的。从而,在此认为在状态机处于提取状态时输出调试器访问开始信号Sacs。
当通过CPU20接收调试器访问开始信号Sacs的输入时,在步骤S13中,状态机响应该输入而立即从提取状态转变为中断状态,并且将“1”的选择控制信号CNT从CPU20输出至选择器27。
在中断状态中停止执行程序(详细来说是停止命令的提取及执行)。“1”的选择控制信号CNT作为表示状态机处于中断状态的信号发挥功能,接收“1”的选择控制信号CNT后选择器27的状态从CPU选择状态切换成调试器选择状态。也就是说,在中断状态中,选择器27的状态被设为调试器选择状态。反过来说,在选择器27的状态被设为调试器选择状态时,状态机处于中断状态,因此已停止执行程序(详细来说是已停止命令的提取及执行)。
在继步骤S13之后的步骤S14中,调试控制部21经由选择器27对内部总线22(换句话说是经由选择器27及内部总线22对存储部30)进行所需访问。此处的访问于在步骤S11中接收到读取指令的情况下是指将上述读取访问用信号经由选择器27输出至内部总线22,于在步骤S11中接收到写入指令的情况下是指将上述写入访问用信号经由选择器27输出至内部总线22。输出至内部总线22的读取访问用信号或写入访问用信号被传输至存储部30。基于读取访问用信号的输入,在存储部30中进行上述读取动作。或者,基于写入访问用信号的输入,在存储部30中进行上述写入动作。
当步骤S14中的访问结束时,在步骤S15中从调试控制部21对CPU20(换句话说是对状态机)输出规定的调试器访问结束信号Eacs。
当通过CPU20接收调试器访问结束信号Eacs的输入时,在步骤S16中,状态机响应该输入而立即从中断状态转变为预提取状态,然后转变为提取状态(也就是说,从中断状态经过预提取状态恢复至提取状态)。另外,在响应调试器访问结束信号Eacs的输入而从中断状态转变为预提取状态时,CPU20通过将选择控制信号CNT的值从“1”切换成“0”来使选择器27的状态恢复至CPU选择状态。通过恢复至提取状态,而重新开始执行因转变为中断状态而暂时地中断的程序。
在步骤S11中所接收的指令为写入指令的情况下,伴随着写入指令的接收的一连串动作在步骤S16阶段中结束(不执行下述步骤S17的处理)。
在步骤S11中所接收的指令为读取指令的情况下,也执行步骤S17的动作。在步骤S17中,调试控制部21将响应步骤S14中的访问(读取访问)而从存储部30输出至内部总线22的读取数据RD进行锁存(进行保存),并将所锁存的读取数据RD发送至外部调试装置12。该读取数据RD被从外部调试装置12送至主机PC13,被显示在主机PC13的显示画面上等以供调试作业。
调试控制部21具备用于进行所述锁存的锁存电路(未图示)。在图6中,图示了在步骤S16之后是否执行步骤S17的处理,但所述锁存的时序只要为响应步骤S14中的访问(读取访问)的、来自存储部30的读取数据RD出现在内部总线22的区间,便为任意时序。步骤S17中的读取数据RD向外部调试装置12的发送可以在所述锁存后的任意时序进行。例如,可以于在步骤S16中状态机恢复至提取状态而重新开始执行程序后,与程序的执行并行地进行读取数据RD向外部调试装置12的发送。
如上所述,调试系统10原则上将选择器27的状态设为CPU选择状态,当规定指令(读取或写入指令)由调试控制部21接收时,通过调试控制部21及CPU20的协动而将选择器27的状态暂时地切换成调试器选择状态(步骤S11~S13)。然后,在选择器27的状态被设为调试器选择状态时,调试控制部21经由选择器27相应于规定指令向内部总线22进行访问(换句话说,经由选择器27及内部总线22访问存储部30)(步骤S14)。
根据这种构成及动作,不需要总线仲裁电路或DMA控制器(因此电路追加只要为小规模即可),便可使调试器对存储部30进行访问时所需的开销变得极小。向中断状态的转变只要1时脉量的时间便足够,从中断状态的恢复也只要有1时脉量的时间便足够。虽然对该1时脉量的时间加上向存储部30的访问所需的时间,但通常对于LSI内置RAM等,能够以1时脉量的时间进行访问,所以能够以仅3时脉量的开销实现调试器向存储部30的访问,且几乎不妨碍CPU20的正常动作。
在开始执行程序后(也就是从空闲状态经过预提取状态转变为提取状态后),除了响应读取指令或写入指令的接收而将选择器27的状态暂时地设为调试器选择状态以外,选择器27的状态也被设为CPU选择状态。因此,伴随着程序的执行的CPU20向内部总线22的访问除了所述开销的区间以外,不受任何阻碍。
虽然从上述说明获得理解,但在接收到读取指令的情况下,调试控制部21在调试器选择状态下通过读取访问用信号的输出,经由选择器27对内部总线22进行相应于读取指令的读取访问(换句话说,经由选择器27及内部总线22对存储部30进行相应于读取指令的读取访问)。详细来说,在该读取访问中,调试控制部21经由选择器27对内部总线22进行(换句话说,经由选择器27及内部总线22对存储部30进行)用于从存储部30获取由读取指令所指定的地址(访问对象地址)的存储区域内的数据作为读取数据RD的访问,并将由此获得的读取数据RD发送至外部调试装置12。
另一方面,在接收到写入指令的情况下,调试控制部21在调试器选择状态下通过写入访问用信号的输出,经由选择器27对内部总线22进行相应于写入指令的写入访问(换句话说,经由选择器27及内部总线22对存储部30进行相应于写入指令的写入访问)。详细来说,在该写入访问中,调试控制部21经由选择器27对内部总线22进行(换句话说,经由选择器27及内部总线22对存储部30进行)用于向由写入指令所指定的地址(访问对象地址)的存储区域写入由写入指令所指定的写入数据的访问。
在图7示出响应读取指令的接收的LSI11的时序图。在图7中,波形y1表示调试器时脉的波形,波形y4表示CPU时脉的波形。CPU时脉是指CPU20的动作时脉。调试器时脉是指调试控制部21的一部分与外部调试装置12的动作时脉。调试控制部21的剩余部分与CPU20的动作时脉同步地进行动作。调试器时脉例如由外部调试装置12内的时脉生成电路(未图示)所生成,并经由外部调试装置12及调试控制部21间的通信线被提供至调试控制部21。CPU时脉与调试器时脉彼此不同步。不论CPU时脉及调试器时脉的频率的一致/不一致。通常,调试器时脉的频率低于CPU时脉的频率。
包含调试器时脉及CPU时脉的任意时脉是交替且周期性地采取高电位及低电位的矩形波信号。关于任意时脉或信号,高电位较低电位而言电位较高。在任意信号中,将从低电位向高电位的切换称为上升沿,将从低电位向高电位的切换的时序称为上升沿时序。此处,基于调试器时脉进行动作的调试控制部21的一部分以调试器时脉的上升沿为契机向自身引入输入信号,或改变应输出的信号的电平,或改变自身的状态,基于CPU时脉进行动作的调试控制部21的剩余部分及CPU20(包含状态机)以CPU时脉的上升沿为契机向自身引入输入信号,或改变应输出的信号的电平,或改变自身的状态。随着时间的经过,时序t1、t2、t3、t4、t5、t6、t7及t8按照该顺序到来。在时序t2、t3、t4、t5、t6、t7及t8中分别产生CPU时脉的上升沿。时序t2及t3间、时序t3及t4间、时序t4及t5间、时序t5及t6间、时序t6及t7间、时序t7及t8间的时间长度全部等于CPU时脉的1个周期。
在图7中,波形y2表示调试器数据,且示意性地表示从外部调试装置12向调试控制部21发送的信号。将读取指令或写入指令作为调试器数据送至调试控制部21。在图7的示例中,在时序t1以前或在时序t1时,从外部调试装置12向调试控制部21的读取指令的发布及发送已结束,在时序t1中,调试控制部21在自身的内部产生波形y3所表示的调试器访问脉冲。时序t1是调试器时脉中的某一个上升沿时序。调试器访问脉冲是与调试器时脉同步的脉冲信号,在调试控制部21中,通过利用CPU时脉使调试器访问脉冲同步而生成波形y8所表示的访问开始脉冲。访问开始脉冲产生于时序t2及t3间。访问开始脉冲作为上述调试器访问开始信号Sacs从调试控制部21被输出至CPU20。
响应访问开始脉冲(信号Sacs)的输入,在时序t3中,CPU20将波形y6所表示的程序存储器读取使能信号从高电位切换成低电位,并且产生用于使状态机转变成中断状态的中断脉冲。
在CPU20中设置有程序计数器,该程序计数器是对存储有下一个应提取的命令的程序存储器上的地址(以下,称为程序存储器地址)进行计数及指定,仅在程序存储器读取使能信号为高电位时,利用程序计数器使程序存储器地址与CPU时脉同步且以CPU时脉的周期依次更新下去。在图7中,“y5”表示程序存储器地址的时间序列变化。程序存储器读取使能信号仅在时序t3及t5间被设为低电位,在时序t3及t5间,程序存储器地址不具有有意义的值(在图7中,图示了“0”作为表示不是有意义的值)。
在图7中,“y10”表示状态机的状态的时间序列变化。在状态机处于提取状态时,对程序存储器地址进行访问,在下一时脉(也就是说经过CPU时脉中的1时脉量的时间后),提取且锁存成为访问对象的程序存储器地址中所存储的命令。也就是说,例如在时序t2及t3间的程序存储器地址为“24”的情况下,在时序t3中的CPU时脉的上升沿提取“24”的程序存储器地址的存储区域中所存储的命令(在图7中与命令代码“24bb”对应),所提取的命令在时序t3及t4间被锁存。直到时序t4为止,状态机处于提取状态而正进行命令的提取及执行。
通过对状态机提供波形y9所表示的中断脉冲,而以时序t4为分界,使状态机从提取状态转变为中断状态。在中断状态下,如上所述,选择器27的状态被设为调试器选择状态。调试控制部21以在时序t4及t5间将相应于读取指令的读取访问用信号经由选择器27传输至内部总线22的方式,将读取访问用信号输出至选择器27。波形y11表示对内部总线22施加的读取使能信号RE,在时序t4及t5间,根据来自调试控制部21的读取访问用信号,读取使能信号RE成为“1”(在图7中未图示地址信号ADD)。
当通过调试控制部21进行的读取访问结束时,调试控制部21生成波形y13所表示的访问结束脉冲。访问结束脉冲产生于时序t5及t6间。访问结束脉冲作为上述调试器访问结束信号Eacs从调试控制部21被输出至CPU20。
响应访问结束脉冲(信号Eacs)的输入,在时序t5,通过CPU20将程序存储器读取使能信号从低电位切换成高电位,以时序t5为分界,状态机从中断状态转变为预提取状态。当程序存储器读取使能信号恢复至高电位后,重新开始如上所述的程序存储器地址的更新动作。
当从中断状态转变为预提取状态并经过1时脉量的时间时,到达时序t6,以时序t6为分界,状态机从预提取状态转变为提取状态。在时序t6及t7间,由程序计数器指出储存有在时序t3及t4间被锁存的命令(在图7中与命令代码“24bb”对应)的下一个应提取的命令(在图7中与命令代码“25bb”对应)的程序存储器地址(在图7中与程序存储器地址“25”对应),在作为下一时脉周期的时序t7及t8间实际地提取且锁存所述下一个应提取的命令(在图7中与命令代码“25bb”对应)。在图7中,“y7”表示通过提取而锁存的命令(命令代码)的时间序列变化,其中,示出有“ffff”的区间(也就是时序t4及t7间的区间)表示程序的执行停止区间(命令的提取及执行的停止区间)。如上所述,可知已能够以3时脉量的开销实现调试控制部21向存储部30的访问。
在图7中,“y12”表示出现在内部总线22的读取数据RD,出现在内部总线22的读取数据RD在时序t6由调试控制部21锁存。“y14”表示被锁存的读取数据RD。被锁存的读取数据RD在时序t6以后从调试控制部21被发送至外部调试器装置12。
已示出了响应读取指令的接收的LSI11的时序图,但响应写入指令的接收的LSI11的时序图也相同。但,在接收到写入指令的情况下,在时序t4及t5间从调试控制部21经由选择器27向内部总线22输出写入访问用信号,当然,不进行从存储部30向内部总线22的读取数据RD的输出及通过调试控制部21进行的读取数据RD的锁存。
<<第2实施方式>>
对本发明的第2实施方式进行说明。在第2实施方式中,对能够适用于上述第1实施方式的几个应用技术、变化技术等进行说明。第2实施方式包含以下实施例EX2_1~EX2 _5。
[实施例EX2_1]
对实施例EX2_1进行说明。也可以在LSI11内设置有多个CPU20。在该情况下,将调整各CPU20的访问时序的仲裁电路(未图示)设置于LSI11,以使不会有2个以上的CPU20同时对内部总线22进行访问。为了具体说明,如图8所示,当考虑设置有CPU20[1]及20[2]作为多个CPU20的情况时,设置选择器27'代替上述选择器27作为仲裁电路的构成要素。选择器27'将传递来自CPU20[1]的访问用信号的信号线111、传递来自CPU20[2]的访问用信号的信号线112、及传递来自调试器控制部21的访问用信号的信号线113中的任一个选择性地连接于内部总线22。信号线111~113分别包含多根配线。来自CPU20[1]的访问用信号、来自CPU20[2]的访问用信号、及来自调试器控制部21的访问用信号分别包含读取使能信号、写入使能信号及地址信号,且在写入访问时还包含写入数据。
在接收来自外部调试装置12的读取指令或写入指令之前,仲裁电路以将信号线111或112连接于内部总线22的方式控制选择器27'。调试器控制部21在从外部调试装置12接收到读取指令或写入指令时,对各CPU20输出调试器访问开始信号Sacs,各CPU20响应调试器访问开始信号Sacs的输入而使各个状态机转变为中断状态。仲裁电路在所有CPU20的状态机转变为中断状态时,只要以将信号线113连接于内部总线22的方式控制选择器27'即可。
当通过调试器控制部21进行的访问结束时,从调试器控制部21对各CPU20及仲裁电路输出调试器访问结束信号Eacs,各CPU20响应调试器访问结束信号Eacs的输入而使各个状态机从中断状态经过预提取状态转变为提取状态。接收来自调试器控制部21的调试器访问结束信号Eacs的输出后,仲裁电路只要使选择器27'的状态返回至将信号线111或112连接于内部总线22的状态即可。在能够对内部总线22进行访问的CPU20有3个以上的情况下,也同样如此。
[实施例EX2_2]
将对实施例EX2_2进行说明。如果利用第1实施方式中所述的方法,则也可以向CPU20内所设置的寄存器(以下,称为CPU内部寄存器)通过调试器进行访问。
在该情况下,如图9所示,只要在CPU20内预先设置CPU内部寄存器131、CPU内部总线132、CPU内部选择器133、及CPU内部总线控制器134,将CPU内部寄存器131、CPU内部总线132、CPU内部选择器133、CPU内部总线控制器134分别看作是第1实施方式中的存储部30、内部总线22、选择器27、CPU20而实现与第1实施方式相同的连接关系及动作即可。
[实施例EX2_3]
将对实施例EX2_3进行说明。在图1的构成中,CPU20是对内部总线22进行访问的处理部的示例,但在本发明中,这种处理部并不限于CPU,对内部总线22进行访问的任意部位都可成为处理部。
[实施例EX2_4]
将对实施例EX2_4进行说明。构成LSI11的各电路元件是以半导体集成电路的方式形成,通过将该半导体集成电路封入至由树脂构成的壳体(封装体)内来构成半导体装置。但,也可以使用多个分立零件来构成与LSI11内的电路同等的电路。
[实施例EX2_5]
将对实施例EX2_5进行说明。本发明的调试系统具备:以LSI11所例示的半导体装置、及连接于半导体装置的外部装置。此处的外部装置在图1的构成中可以理解为是指外部调试装置12,也可以理解为包含外部调试装置12及主机PC13这两者。
本发明的实施方式可以在权利要求书中所示的技术思想的范围内适当地进行各种变更。以上实施方式仅为本发明的实施方式的示例,本发明或各构成要素的用语的意义不限于以上实施方式中所记载的意义。上述说明文中所示的具体数值仅为示例,理所当然可将它们变更为各种数值。
[符号的说明]
10 调试系统
11 LSI
12 外部调试装置
13 主机计算机
14 调试软件
20 CPU
21 调试控制部
22 内部总线
23 ROM
24 RAM
25 外围设备
26 寄存器
27 选择器
30 存储部
Claims (10)
1.一种半导体装置,其特征在于具备:总线、连接于所述总线的存储部、连接于所述总线的选择器、执行程序且能够经由所述选择器访问所述总线的处理部、及构成为能够与外部装置之间进行双向通信且能够经由所述选择器访问所述总线的调试控制部,且
所述选择器基于来自所述处理部的选择控制信号采取第1选择状态、及第2选择状态中的任一状态,在来自所述处理部的第1信号及来自所述调试控制部的第2信号中,所述第1选择状态是将所述第1信号传输至所述总线,所述第2选择状态是将所述第2信号传输至所述总线,
当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部从所述外部装置接收到规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器而与所述规定指令对应地向所述总线进行访问。
2.根据权利要求1所述的半导体装置,其特征在于:在所述选择器的状态被设为所述第2选择状态时,停止执行所述程序。
3.根据权利要求1或2所述的半导体装置,其特征在于:在开始执行所述程序后,除了响应所述规定指令的接收而将所述选择器的状态暂时地设为所述第2选择状态时以外,将所述选择器的状态设为所述第1选择状态。
4.根据权利要求1或2所述的半导体装置,其特征在于:所述调试控制部响应所述规定指令的接收将规定的访问开始信号输出至所述处理部,所述处理部响应所述访问开始信号的输入而将所述选择器的状态从所述第1选择状态切换成所述第2选择状态,
然后,当通过所述调试控制部进行的与所述规定指令对应的访问结束时,所述调试控制部将规定的访问结束信号输出至所述处理部,所述处理部响应所述访问结束信号的输入而使所述选择器的状态从所述第2选择状态恢复到所述第1选择状态。
5.根据权利要求4所述的半导体装置,其特征在于:所述处理部具有对所述程序的执行状态进行控制的状态机,
在所述状态机处于进行构成所述程序的命令的提取及执行的提取状态时,当通过所述处理部接收所述访问开始信号的输入后,所述状态机转变为停止所述命令的提取及执行的中断状态,且响应已通过所述处理部接收到所述访问结束信号的输入,所述状态机恢复至所述提取状态,
所述状态机在所述中断状态中将所述选择器控制为所述第2选择状态。
6.根据权利要求1或2所述的半导体装置,其特征在于:当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部接收到读取指令作为所述规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器对所述总线进行相应于所述读取指令的读取访问,然后,将通过所述读取访问从所述存储部获取的读取数据发送至所述外部装置。
7.根据权利要求6所述的半导体装置,其特征在于:所述存储部具有被分配了多个地址的多个存储区域,且
通过所述读取指令来指定所述多个地址中的任一者,
所述调试控制部在与所述读取指令对应的所述读取访问中,经由所述选择器对所述总线进行用于从所述存储部获取由所述读取指令所指定的地址的存储区域内的数据作为所述读取数据的访问,并将由此获得的所述读取数据发送至所述外部装置。
8.根据权利要求1或2所述的半导体装置,其特征在于:当所述选择器的状态为所述第1选择状态时,在通过所述调试控制部接收到写入指令作为所述规定指令时,通过所述调试控制部及所述处理部的协动将所述选择器的状态暂时地切换成所述第2选择状态,在所述选择器的状态被设为所述第2选择状态时,所述调试控制部经由所述选择器对所述总线进行与所述写入指令对应的写入访问,且
通过所述写入访问在所述存储部中进行与所述写入指令对应的数据的写入。
9.根据权利要求8所述的半导体装置,其特征在于:所述存储部具有被分配了多个地址的多个存储区域,且
通过所述写入指令来指定所述多个地址中的任一者并且指定写入数据,
所述调试控制部在与所述写入指令对应的所述写入访问中,经由所述选择器对所述总线进行用于将所述写入数据写入至由所述写入指令所指定的地址的存储区域中的访问。
10.一种调试系统,其特征在于具备:根据权利要求1至9中任一项所述的半导体装置、及
连接于所述半导体装置且能够对所述半导体装置的所述调试控制部发送所述规定指令的外部装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019044877A JP7202225B2 (ja) | 2019-03-12 | 2019-03-12 | 半導体装置及びデバッグシステム |
JP2019-044877 | 2019-03-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111694697A CN111694697A (zh) | 2020-09-22 |
CN111694697B true CN111694697B (zh) | 2023-09-19 |
Family
ID=72424104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010171828.9A Active CN111694697B (zh) | 2019-03-12 | 2020-03-12 | 半导体装置及调试系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11797421B2 (zh) |
JP (1) | JP7202225B2 (zh) |
CN (1) | CN111694697B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5132973A (en) * | 1989-11-06 | 1992-07-21 | Hewlett-Packard Company | Testable embedded RAM arrays for bus transaction buffering |
JP2907808B1 (ja) * | 1998-03-31 | 1999-06-21 | 三洋電機株式会社 | フラッシュメモリエミュレーション装置及びそれを用いたデバッグシステム |
JP2002082819A (ja) * | 2000-09-11 | 2002-03-22 | Hitachi Ltd | 半導体集積回路装置 |
JP2004038464A (ja) * | 2002-07-02 | 2004-02-05 | Renesas Technology Corp | デバッグ機能内蔵マイクロコンピュータ |
JP2004094451A (ja) * | 2002-08-30 | 2004-03-25 | Mitsubishi Electric Corp | オンチップjtagインタフェース回路およびシステムlsi |
CN1584851A (zh) * | 2003-08-21 | 2005-02-23 | 三洋电机株式会社 | 程序处理装置 |
JP2005316559A (ja) * | 2004-04-27 | 2005-11-10 | Oki Electric Ind Co Ltd | デバッグ回路およびデバッグ制御方法 |
JP2010225094A (ja) * | 2009-03-25 | 2010-10-07 | Fujitsu Semiconductor Ltd | 集積回路、デバッグ回路、デバッグコマンド制御方法 |
JP2010278255A (ja) * | 2009-05-28 | 2010-12-09 | Ricoh Co Ltd | 半導体デバイス及びそのデバッグ方法 |
CN102193883A (zh) * | 2010-03-10 | 2011-09-21 | 精工爱普生株式会社 | 电子设备 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54443Y2 (zh) | 1974-12-03 | 1979-01-11 | ||
JPH04123235A (ja) * | 1990-09-14 | 1992-04-23 | Fujitsu Ltd | マイクロプログラムのデバッグ方式及び方法 |
US6182247B1 (en) * | 1996-10-28 | 2001-01-30 | Altera Corporation | Embedded logic analyzer for a programmable logic device |
GB2329049B (en) * | 1997-09-09 | 2002-09-11 | Advanced Risc Mach Ltd | Apparatus and method for identifying exceptions when debugging software |
DE69908682T2 (de) * | 1998-03-20 | 2004-05-13 | Texas Instruments Inc., Dallas | Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor |
JP3913470B2 (ja) * | 2000-12-28 | 2007-05-09 | 株式会社東芝 | システムlsi |
JP2004086447A (ja) | 2002-08-26 | 2004-03-18 | Renesas Technology Corp | マイクロコンピュータ |
JP4833907B2 (ja) * | 2007-04-23 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2010049718A (ja) | 2009-12-03 | 2010-03-04 | Hitachi Ltd | 半導体装置 |
KR101992234B1 (ko) * | 2012-05-22 | 2019-06-24 | 삼성전자주식회사 | 디버깅 회로를 위한 클럭 제어 회로를 구비하는 집적 회로 및 이를 포함하는 시스템-온-칩 |
US20140053036A1 (en) * | 2012-08-15 | 2014-02-20 | Scott P. Nixon | Debugging multiple exclusive sequences using dsm context switches |
US9110682B2 (en) * | 2012-10-19 | 2015-08-18 | Microsoft Technology Licensing Llc | State machine control of a debugger |
JP6070600B2 (ja) | 2014-02-21 | 2017-02-01 | 株式会社デンソー | マイクロコンピュータ |
US9898229B1 (en) * | 2016-07-29 | 2018-02-20 | Sandisk Technologies Llc | Systems and methods of memory reads |
JP2018120449A (ja) * | 2017-01-26 | 2018-08-02 | ソニーセミコンダクタソリューションズ株式会社 | 演算処理装置および情報処理システム |
US10235272B2 (en) * | 2017-03-06 | 2019-03-19 | Xilinx, Inc. | Debugging system and method |
US11144417B2 (en) * | 2018-12-31 | 2021-10-12 | Texas Instruments Incorporated | Debug for multi-threaded processing |
-
2019
- 2019-03-12 JP JP2019044877A patent/JP7202225B2/ja active Active
-
2020
- 2020-03-06 US US16/811,237 patent/US11797421B2/en active Active
- 2020-03-12 CN CN202010171828.9A patent/CN111694697B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5132973A (en) * | 1989-11-06 | 1992-07-21 | Hewlett-Packard Company | Testable embedded RAM arrays for bus transaction buffering |
JP2907808B1 (ja) * | 1998-03-31 | 1999-06-21 | 三洋電機株式会社 | フラッシュメモリエミュレーション装置及びそれを用いたデバッグシステム |
JP2002082819A (ja) * | 2000-09-11 | 2002-03-22 | Hitachi Ltd | 半導体集積回路装置 |
JP2004038464A (ja) * | 2002-07-02 | 2004-02-05 | Renesas Technology Corp | デバッグ機能内蔵マイクロコンピュータ |
JP2004094451A (ja) * | 2002-08-30 | 2004-03-25 | Mitsubishi Electric Corp | オンチップjtagインタフェース回路およびシステムlsi |
CN1584851A (zh) * | 2003-08-21 | 2005-02-23 | 三洋电机株式会社 | 程序处理装置 |
JP2005316559A (ja) * | 2004-04-27 | 2005-11-10 | Oki Electric Ind Co Ltd | デバッグ回路およびデバッグ制御方法 |
JP2010225094A (ja) * | 2009-03-25 | 2010-10-07 | Fujitsu Semiconductor Ltd | 集積回路、デバッグ回路、デバッグコマンド制御方法 |
JP2010278255A (ja) * | 2009-05-28 | 2010-12-09 | Ricoh Co Ltd | 半導体デバイス及びそのデバッグ方法 |
CN102193883A (zh) * | 2010-03-10 | 2011-09-21 | 精工爱普生株式会社 | 电子设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2020149214A (ja) | 2020-09-17 |
US11797421B2 (en) | 2023-10-24 |
US20200293429A1 (en) | 2020-09-17 |
CN111694697A (zh) | 2020-09-22 |
JP7202225B2 (ja) | 2023-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4987537A (en) | Computer capable of accessing a memory by supplying an address having a length shorter than that of a required address for the memory | |
JP4529063B2 (ja) | システムシミュレータ、シミュレーション方法及びシミュレーションプログラム | |
JP4335999B2 (ja) | プロセッサ内蔵半導体集積回路装置 | |
CN113127302A (zh) | 一种板卡gpio的监控方法和装置 | |
US20070038795A1 (en) | Asynchronous bus interface and processing method thereof | |
US7428661B2 (en) | Test and debug processor and method | |
CN101421705B (zh) | 具有高储存容量的多媒体卡 | |
JP2513417B2 (ja) | 情報処理装置 | |
CN111694697B (zh) | 半导体装置及调试系统 | |
US5428623A (en) | Scannable interface to nonscannable microprocessor | |
CN111625411A (zh) | 半导体装置及调试系统 | |
WO2020209016A1 (ja) | 半導体装置及びデバッグシステム | |
US6463551B1 (en) | Debug circuit and microcomputer incorporating debug circuit | |
US20070038435A1 (en) | Emulation method, emulator, computer-attachable device, and emulator program | |
EP1168123A1 (en) | Program logic device | |
CN118349286B (zh) | 处理器、指令处理的装置、电子设备以及指令处理方法 | |
JPH1185673A (ja) | 共有バスの制御方法とその装置 | |
KR0167307B1 (ko) | 프로그램 분기 제어회로 | |
JP2004013289A (ja) | マイクロコントローラのオンチップデバッグ方法 | |
JP2000029508A (ja) | プログラマブルコントローラ | |
JP3366235B2 (ja) | データ読み出し制御装置 | |
CN116702666A (zh) | 一种ip核验证方法、装置及电子设备 | |
JP2009193604A (ja) | 半導体情報処理装置 | |
JP2005182410A (ja) | 情報処理デバイス及び情報処理装置 | |
JP2000207380A (ja) | マイクロコンピュ―タ |
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 |