CN109254883A - 一种片上存储器的调试装置及方法 - Google Patents
一种片上存储器的调试装置及方法 Download PDFInfo
- Publication number
- CN109254883A CN109254883A CN201710575820.7A CN201710575820A CN109254883A CN 109254883 A CN109254883 A CN 109254883A CN 201710575820 A CN201710575820 A CN 201710575820A CN 109254883 A CN109254883 A CN 109254883A
- Authority
- CN
- China
- Prior art keywords
- read
- debugging
- write
- control unit
- parsing
- 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
Links
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
-
- 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/2273—Test methods
-
- 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/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种片上存储器的调试装置和方法,包括输入控制单元、寄存器单元、控制单元和译码单元,其中,输入控制单元用于接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器单元;控制单元用于从所述寄存器单元获取所述解析后的调试控制信息,生成相应的调试读写信号并输出至译码单元;译码单元用于接收来自控制单元的调试读写信号以及外部输入的读写信号,并进行相应的读写操作。本发明根据调试控制信息生成调试读写信号,并根据调试读写信号和外部输入的读写信号进行相应的读写操作,实现了对片上存储器灵活地访问,满足了应用对数据分析以及根据分析结果校正数据的需求,更好地支持了***的灵活调试。
Description
技术领域
本发明涉及集成电路的片上***(System On a Chip,SOC)设计技术领域,尤其涉及一种片上存储器的调试装置及方法。
背景技术
近年来,随着大规模、超大规模集成电路的不断发展,嵌入式***因其集成度高、运行速度快、功耗低、可靠性好等特点得到广泛应用。由于片上存储器比片外存储器具有更强的数据访问能力和更低的访问功耗,嵌入式要想达到最佳的性能,应用片上存储器的优势是显而易见的。
但是,随之而来的是片上存储器的调试(Debug)问题。应用往往需要读取片上存储器的特定区域或者所有区域的数据进行调试,并需要实现对错误场景的校正。传统的调试方法倾向于设置断点,保存断点的指针信息,这种方法只能定位出错的位置,不能读写。一些改进的调试方法可以读取片上存储器的数据,但是不能满足应用对数据分析以及操作的需求,不能根据获取结果校正数据,因此不能更好地支持***灵活调试。
发明内容
为了解决上述技术问题,本发明提供了一种片上存储器的调试装置及方法,能够实现对片上存储器灵活地访问。
为了达到本发明目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种片上存储器的调试装置,包括输入控制单元、寄存器单元、控制单元和译码单元,其中:
输入控制单元,用于接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器单元;
寄存器单元,用于存储所述解析后的调试控制信息;
控制单元,用于从所述寄存器单元获取所述解析后的调试控制信息,生成相应的调试读写信号并输出至译码单元;
译码单元,用于接收来自控制单元的调试读写信号以及外部输入的读写信号,并根据所述调试读写信号和所述外部输入的读写信号进行相应的读写操作。
进一步地,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
进一步地,所述控制单元包括:状态控制单元、读控制单元和写控制单元,其中:
状态控制单元,用于获取所述调试使能状态和所述读写模式,使能或关闭读控制单元或写控制单元,当使能读控制单元时,将所述片上存储器和所述读写地址输出至读控制单元;当使能写控制单元时,将所述片上存储器和所述读写地址输出至写控制单元;
读控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试读信号并输出至译码单元;
写控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试写信号并输出至译码单元。
进一步地,还包括时间统计单元,其中:
所述译码单元还用于,生成读写完成标识并输出至所述控制单元;
时间统计单元,用于记录所述控制单元进行所述读写操作的时间或所述输入控制单元解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器单元;
所述寄存器单元还用于,存储所述读写错误或解析错误信息。
进一步地,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
进一步地,当所述片上存储器位于CPU内部时,所述控制单元还用于:
检测中央处理器CPU的内部寄存器的存储状态,在中央处理器CPU的内部寄存器的存储状态为空时,生成所述相应的调试读写信号;
当所述片上存储器位于二级缓存内部时,所述控制单元还用于:
检测二级缓存的内部寄存器的存储状态,在二级缓存的内部寄存器的存储状态为空时,生成所述相应的调试读写信号。
本发明实施例还提供了一种片上存储器的调试方法,包括:
接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器;
从寄存器获取所述解析后的调试控制信息,生成相应的调试读写信号;
根据所述调试读写信号以及外部输入的读写信号进行相应的读写操作。
进一步地,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
进一步地,所述方法还包括:
记录所述读写操作的时间或解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器。
进一步地,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
本发明的技术方案,具有如下有益效果:
本发明提供的片上存储器的调试装置及方法,根据调试控制信息生成调试读写信号,并根据调试读写信号和外部输入的读写信号进行相应的读写操作,实现了对片上存储器灵活地访问,满足了应用对数据分析以及根据分析结果校正数据的需求,更好地支持了***的灵活调试。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明第一实施例的片上存储器的调试装置的结构示意图;
图2为本发明第二实施例的片上存储器的调试装置的结构示意图;
图3为本发明实施例的一种片上存储器的调试方法的流程示意图;
图4为本发明优选实施例的片上存储器的调试方案在***中的整体架构示意图;
图5是本发明的一级调试电路在中央处理器(Central Processing Unit,CPU)中的整体框图;
图6是本发明的一级调试电路的实现单元划分示意图;
图7是本发明的一级调试电路的执行流程示意图;
图8是本发明的二级调试电路在二级缓存(L2Cache)中的整体框图;
图9是本发明的二级调试电路的实现单元划分示意图;
图10是本发明的二级调试电路的执行流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,根据本发明的一种片上存储器的调试装置,包括输入控制单元、寄存器单元、控制单元和译码单元,其中:
输入控制单元,用于接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器单元;
寄存器单元,用于存储所述解析后的调试控制信息;
控制单元,用于从所述寄存器单元获取所述解析后的调试控制信息,生成相应的调试读写信号并输出至译码单元;
译码单元,用于接收来自控制单元的调试读写信号以及外部输入的读写信号,并根据所述调试读写信号和所述外部输入的读写信号进行相应的读写操作。
需要说明的是,当调试读写信号为真时(即,当所述输入控制单元接收到调试控制信息,所述控制单元生成调试读写信号并输出至译码单元时),本发明的译码单元根据所述调试读写信号进行相应的读写操作;当调试读写信号为假时(即,当所述输入控制单元没有接收到调试控制信息,所述控制单元没有生成调试读写信号时),本发明的译码单元根据所述外部输入的读写信号进行相应的读写操作。
进一步地,所述片上存储器的调试装置还包括时钟单元,所述时钟单元,用于为所述片上存储器的调试装置的各个单元提供时钟信号。
进一步地,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
进一步地,所述调试控制信息还包括复位指令;
所述控制单元还用于,从所述寄存器单元获取所述复位指令,对所述调试装置进行复位操作。
在本发明一实施例中,所述片上存储器包括但不限于紧耦合存储(TightlyCoupled Memories,TCM)、一级指令缓存的索引地址随机存取存储器(Random AccessMemory,RAM)、一级指令缓存的数据RAM、一级数据缓存的索引地址RAM、一级数据缓存的数据RAM、二级缓存的索引地址RAM、二级缓存的数据RAM。
在本发明一实施例中,所述读写模式包括读模式、写模式、地址区域模式和地址自增模式,所述地址区域模式用于读取所述片上存储器的部分数据,所述地址自增模式用于读取所述片上存储器的所有数据。
在本发明一实施例中,所述读写地址包括读写起始地址和读写访问区域大小。
进一步地,所述控制单元具体包括状态控制单元、读控制单元和写控制单元,其中:
状态控制单元,用于获取所述调试使能状态和所述读写模式,使能或关闭读控制单元或写控制单元的时钟信号,当使能读控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至读控制单元;当使能写控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至写控制单元;
读控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试读信号并输出至译码单元;
写控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试写信号并输出至译码单元。
进一步地,所述写控制单元还用于,生成一致性反馈标识并存储至寄存器单元;
所述寄存器单元还用于,存储所述一致性反馈标识。
进一步地,如图2所示,所述调试装置还包括时间统计单元,其中:
所述译码单元还用于,生成读写完成标识并输出至控制单元;
时间统计单元,用于记录所述控制单元进行所述读写操作的时间或所述输入控制单元解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器单元;
所述寄存器单元还用于,存储所述读写错误或解析错误信息。
进一步地,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
进一步地,所述总线为高级可扩展接口(Advanced eXtensible Interface,AXI)总线或高级***总线(Advanced Peripheral Bus,APB)。
进一步地,当所述片上存储器位于CPU内部时,所述控制单元还用于:
检测中央处理器CPU的内部寄存器的存储状态,在中央处理器CPU的内部寄存器的存储状态为空时,生成所述相应的调试读写信号;
当所述片上存储器位于二级缓存内部时,所述控制单元还用于:
检测二级缓存的内部寄存器的存储状态,在二级缓存的内部寄存器的存储状态为空时,生成所述相应的调试读写信号。
如图3所示,根据本发明的一种片上存储器的调试方法,包括:
步骤301:接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器;
进一步地,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
进一步地,所述调试控制信息还包括复位指令;
所述方法还包括,从所述寄存器获取所述复位指令,对片上存储器的调试装置进行复位操作。
在本发明一实施例中,所述片上存储器包括但不限于紧耦合存储TCM、一级指令缓存的索引地址RAM、一级指令缓存的数据RAM、一级数据缓存的索引地址RAM、一级数据缓存的数据RAM、二级缓存的索引地址RAM、二级缓存的数据RAM。
在本发明一实施例中,所述读写模式包括读模式、写模式、地址区域模式和地址自增模式,所述地址区域模式用于读取所述片上存储器的部分数据,所述地址自增模式用于读取所述片上存储器的所有数据。
在本发明一实施例中,所述读写地址包括读写起始地址和读写访问区域大小。
进一步地,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
进一步地,所述总线为AXI总线或APB总线。
步骤302:从寄存器获取所述解析后的调试控制信息,生成相应的调试读写信号;
步骤303:根据所述调试读写信号以及外部输入的读写信号进行相应的读写操作。
需要说明的是,当调试读写信号为真时(即,当接收到调试控制信息并生成相应的调试读写信号时),根据所述调试读写信号进行相应的读写操作;当调试读写信号为假时(即,当没有接收到调试控制信息且没有生成调试读写信号时),根据所述外部输入的读写信号进行相应的读写操作。
进一步地,在所述步骤303之后,所述方法还包括:
记录所述读写操作的时间或解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器。
进一步地,在所述步骤303之后,所述方法还包括:当进行写操作时,生成一致性反馈标识并存储至寄存器。
进一步地,在所述步骤303从寄存器获取所述调试控制信息的步骤之后且生成相应的调试读写信号的步骤之前,所述方法还包括:
当所述片上存储器位于CPU内部时,检测中央处理器CPU的内部寄存器的存储状态,在中央处理器CPU的内部寄存器的存储状态为空时,生成所述相应的调试读写信号;
当所述片上存储器位于二级缓存内部时,检测二级缓存的内部寄存器的存储状态,在二级缓存的内部寄存器的存储状态为空时,生成所述相应的调试读写信号。
本发明实施例还提供了几个优选的实施例对本发明进行进一步解释,但是值得注意的是,该优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。下面的各个实施例可以独立存在,且不同实施例中的技术特点可以组合在一个实施例中联合使用。
如图4所示,根据CPU子***需求和架构,***片上存储划分为一级缓存和二级缓存,一级缓存包括一级指令缓存(L1 ICache)、一级数据缓存(L1 DCache)和紧耦合存储(Tightly Coupled Memories,TCM)存储。根据***存储的划分方式,片上存储的调试方案也划分为两个部分:一级调试电路(L1_TCM Debug)和二级调试电路(L2 Debug)。一级调试电路在CPU内部实现,包括对L1 ICache、L1 DCache和TCM以及其他CPU内部存储进行调试。所述二级调试电路对二级缓存(L2 Cache)进行调试,并在L2 Cache中实现。
如图5所示,本发明实现的一级调试电路实现了CPU内部片上存储的Debug功能,可以实现指令Debug和总线Debug两种方式,因此在CPU***中L1_TCM Debug需要接收CPU核(Core)和AXI总线从(Slave)接口发送的Debug指令,并完成Debug指令的解析;根据Debug指令信息访问CPU内部存储L1 ICache、L1 D Cache和TCM,通过选择器对指令存储***(Program Memory system,PMSS)和一级调试电路的访问存储接口进行选择后,连接一级指令缓存;通过选择器对数据存储***(Data Memory system,DMSS)和一级调试电路的访问存储接口进行选择后,连接一级数据缓存及紧耦合存储TCM;通过选择器对一级调试电路的输出数据和CPU的AXI主(Master)接口输出的数据进行选择之后通过AXI Master口输出,读数据输出给AXI Master接口供用户分析,写数据存入内部存储。
如图6所示,本发明的一级调试电路按CPU部分的Debug需求及功能实现划分为一级状态控制单元、一级读控制单元、一级写控制单元、一级主控制单元、一级从控制单元、一级寄存器单元、一级译码单元、一级时钟单元、一级时间统计单元、一级错误记录单元和指令解析单元,其中:
所述一级状态控制单元,完成一级调试电路的控制通路,根据调试配置方式和调试使能状态跳转至对应的状态,驱动各单元按流程执行。具体地,一级状态控制单元获取一级寄存器单元中存储的调试使能状态和读写模式,使能或关闭一级读控制单元或一级写控制单元的时钟信号,当使能一级读控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至一级读控制单元;当使能一级写控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至一级写控制单元;
所述一级读控制单元根据所述片上存储器和所述读写地址,生成相应的访问L1ICache TAG/Data RAM、L1 DCache TAG/Data RAM、TCM的调试读信号并输出至一级译码单元;
所述一级写控制单元根据所述片上存储器和所述读写地址,生成相应的访问L1ICache TAG/Data RAM、L1 DCache TAG/Data RAM、TCM的调试写信号并输出至一级译码单元;接收来自一级从控制单元的写数据,并输出至一级译码单元;
所述一级主控制单元将读取的数据按照AXI协议或APB协议(或联合测试工作组(Joint Test Action Group,JTAG)等其它协议),从调试主接口输出;
所述一级从控制单元解析CPU的AXI Slave接口发来的信息,将寄存器配置信息发送给一级寄存器单元,将写数据发送给一级写控制单元;
所述一级寄存器单元保存从指令解析单元接收的以及一级从控制单元接收的寄存器配置信息和解析信息,并保存错误标志、错误信息以及一致性问题反馈信息;
所述一级译码单元完成L1 ICache TAG RAM的读写选择、L1 ICache Data RAM的读写选择、L1 DCache TAG RAM的读写选择、L1DCache Data RAM的读写选择、TCM的读写选择、Slave接口的选择以及Master接口的选择;
所述一级时钟单元完成门控时钟,根据各单元的工作状态决定时钟是否关断;
所述时间统计单元完成一级状态控制单元各个状态的时间统计,包括读写操作时间、从接口解析时间、主接口发送数据时间,并跟预先设置的读写时间阈值、解析时间阈值及发送时间阈值进行比较,如果大于其中一个阈值,发送时间错误给一级错误记录单元;
所述一级错误记录单元,记录各个状态下的错误标志和错误信息,将结果输出给一级寄存器单元;
所述指令解析单元完成调试控制信息的解析,将调试控制信息中的寄存器配置信息发送给一级寄存器单元。
所述一级寄存器单元保存的寄存器配置信息和解析信息,如表一所示:
表一
如图7所示,本发明所述一级调试电路基本的执行方法包括以下步骤:
第一步:A1:用户通过应用程序配置Debug模式指令;或者,
B1:用户通过AXI Slave接口配置Debug模式;
第二步:A2:用户通过应用程序配置Debug使能指令;或者,
B2:用户通过AXI Slave接口配置Debug使能;
第三步:解析Debug模式指令和Debug使能指令,保存Debug模式和Debug使能信息至对应的寄存器,一级状态控制单元的状态机进入Debug状态;若解析错误,跳转至第九步;否则继续;
第四步:排空内部缓存,确定发往一级缓存TCM/L1Cache的数据已经完成,若执行出现错误,跳转至第九步;否则继续;
第五步:根据一级寄存器的配置信息确定读控制访问或写控制访问,若出现错误,跳转至第九步;否则继续;
第六步:根据一级寄存器的配置信息访问存储:
C6:读L1 ICache TAG RAM/L1 ICache Data RAM/L1 DCache TAG RAM/L1 DCacheData RAM/TCM数据,如果读取成功,则跳转至第七步;如果出现错误,则跳转至第九步;或者,
D6:写数据给L1 ICache TAG RAM/L1 ICache Data RAM/L1 DCache TAG RAM/L1DCache Data RAM/TCM;如果写数据成功,则跳转至第八步;如果出现错误,则跳转至第九步;
第七步:读数据返回给一级主控制单元,最终通过主接口输出,生成完成读操作标识并存储至一级寄存器单元;如果出现错误,则跳转至第九步;
第八步:数据访问完成,生成完成写操作标识并存储至一级寄存器单元,生成一致性反馈标识并存储至一级寄存器单元,时钟关断,至此正常Debug访问流程结束;
第九步:错误信息提取,错误类型写入一级寄存器单元中;
第十步:用户根据错误信息决定是否复位,重新执行Debug方案;
第十一步:用户根据写操作带来的一致性问题进行软件处理流程。
本发明的二级调试电路(L2 Debug)实现了L2 Cache内部存储的Debug功能,在L2Cache中实现,与L2 Cache的内部单元协作完成,需要协作完成内部单元的缓存清除;L2Cache通路和Debug通路选择对L2 TAG、L2 Data RAM,AXI Slave连接至L2 Debug单元,通过选择器对AXI Master和Debug的Master接口进行选择后输出。
如图8所示,本发明的二级调试电路实现总线Debug方式,因此在L2Cache中L2Debug需要接收AXI Slave接口、二级缓存控制单元发送的控制信息和数据,所述控制信息包括存储缓存单元的排空信号、Master0&Master1缓存控制单元的排空信号;根据第二寄存器单元的配置信息访问L2缓存TAG RAM和Data RAM,通过选择器对二级缓存控制单元的访问存储接口与二级调试电路的访问存储接口进行选择之后连接各个存储,包括TAG RAM的各个路(Way)各个块(Bank)、Data RAM的各个路(Way)各个块(Bank);通过选择器对调试主接口输出的数据和二级缓存主接口输出的数据进行选择之后通过AXI Master接口输出至双倍速率同步动态随机存储器/三级缓存/AXI2AXI桥(DDR/L3/AXI2AXI),供用户分析,写数据存入内部存储。本发明的二级缓存中除了二级缓存控制单元之外,还包括时钟单元、配置寄存器单元、Slave0控制解析单元、Slave1控制解析单元、TCM Slave控制解析单元、TCM请求产生发送单元(TCM REQ)、TCM存储控制单元、替换控制和缓存单元(Evictin buffer)、存储缓存(Store Buffer)单元、冲突检测单元(Harzard)、事件(Event)解析单元和Master0&Master1缓存控制单元。
如图9所示,本发明所述的二级调试电路(L2 Debug)实现了L2 Cache片上存储的Debug功能,按L2 Cache部分的Debug需求及功能实现划分为二级状态控制单元、二级读控制单元、二级写控制单元、二级主控制单元、二级从控制单元、二级寄存器单元、二级译码单元、二级时钟单元、二级时间统计单元和二级错误记录单元,其中:
所述二级状态控制单元,完成二级调试电路的控制通路,根据调试配置方式和调试使能状态跳转至对应的状态,驱动各单元按流程执行。具体地,二级状态控制单元获取二级寄存器单元中存储的调试使能状态和读写模式,使能或关闭二级读控制单元或二级写控制单元的时钟信号,当使能二级读控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至二级读控制单元;当使能二级写控制单元的时钟信号时,将所述片上存储器和所述读写地址输出至二级写控制单元;
所述二级读控制单元根据所述片上存储器和所述读写地址,生成相应的访问L2Cache TAG/Data RAM的调试读信号并输出至二级译码单元;
所述二级写控制单元根据所述片上存储器和所述读写地址,生成相应的访问L2Cache TAG/Data RAM的的调试写信号并输出至二级译码单元;接收来自二级从控制单元的写数据,并输出至二级译码单元;
所述二级主控制单元将读取的数据按照AXI协议或APB协议(或JTAG等其它协议),从调试主接口输出;
所述二级从控制单元解析CPU的AXI Slave接口发来的信息,将寄存器配置信息发送给二级寄存器单元,将写数据发送给二级写控制单元;
所述二级寄存器单元保存从二级从控制单元接收的寄存器配置信息和解析信息,并保存错误标志和错误信息以及一致性问题反馈信息;
所述二级译码单元完成L2 Cache TAG RAM的读写选择、L2 Cache TAG RAM的读写选择、Slave接口的选择以及Master接口的选择;
所述二级时钟单元完成门控时钟,根据工作与否,工作状态决定时钟是否关断;
所述时间统计单元完成二级状态控制单元各个状态的时间统计,包括读写操作时间、从接口解析时间、主接口发送数据时间,并跟预先设置的读写时间阈值、解析时间阈值及发送时间阈值进行比较,如果大于其中一个阈值,发送时间错误给二级错误记录单元;
所述二级错误记录单元,记录各个状态下的错误标志和错误信息,将结果输出给二级寄存器单元。
所述二级寄存器单元保存的寄存器配置信息和解析信息,如表二所示:
表二
如图10所示,本发明所述二级调试电路基本的执行方法包括以下步骤:
第一步:用户通过AXI Slave配置Debug模式;
第二步:用户通过AXI Slave配置Debug使能;
第三步:保存Debug模式和Debug使能信息至对应的寄存器,二级状态控制单元的状态机进入Debug状态;若出现错误,跳转至第九步;否则继续;
第四步:排空Master0与Master1内部Slot缓存和存储缓存单元(Store Buffer)内部的缓存,确定发往L2Cache的数据已经完成,若执行出现错误,跳转至第九步;否则继续;
第五步:根据二级寄存器的配置信息确定读控制访问或写控制访问,若出现错误,跳转至第九步;否则继续;
第六步:根据二级寄存器的配置信息(包括Way、Bank和Multiport等配置信息)访问存储:
C6:读L2 Cache TAG RAM/L2 Cache Data RAM对应的Way和Bank数据,如果读取成功,则跳转至第七步;如果出现错误,则跳转至第九步;或者,
D6:写数据给L2 Cache TAG RAM/L2 Cache Data RAM,如果写数据成功,则跳转至第八步;如果出现错误,则跳转至第九步;
第七步:读数据返回给二级主控制单元,最终通过主接口输出,生成完成读操作标识并存储至二级寄存器单元;如果出现错误,则跳转至第九步;
第八步:数据访问完成,生成完成写操作标识并存储至二级寄存器单元,生成一致性反馈标识并存储至二级寄存器单元,时钟关断,至此正常Debug访问流程结束;
第九步:错误信息提取,错误类型写入二级寄存器单元中;
第十步:用户根据错误信息决定是否复位,重新执行Debug方案;
第十一步:用户根据写操作带来的一致性问题进行软件处理流程。
本发明的片上存储的Debug方案的一致性支持需要软硬件协同处理,分为以下三种情况:
用户写L1 I/DCache和L2 Cache的TAG RAM时,正常模式下的操作是把相关的数据在Data RAM中,Debug模式下写TAG RAM会带来TAG RAM和Data RAM的不一致。此时,用户需要通过软件指令将DDR中的指令缓存数据取出,写入Data RAM中,以解决写数据带来的一致性问题。
用户写L1 I/DCache和L2 Cache的Data RAM时,正常模式下的WT(write through)类型的Data写入Cache RAM和外部存储(Memory),Debug模式下数据写入Cache RAM。此时,用户需要通过软件指令将任何写入Cache RAM的数据,也写入外部存储,以解决写数据带来的一致性问题。
CPU的内部缓存以及L2的Store Buffer有数据时,正常模式下数据写入Cache或者Memory,Debug模式下Cache和Memory的数据没有更新,所以硬件Debug单元等到CPU的内部缓存或L2的Store Buffer为空时,再进行Debug操作,完成读写数据,保证Cache RAM的数据是最新的。
本发明可实现以下三种Debug寄存器配置以及数据更改和收集方法:
方案一:支持如上所述的AXI协议配置和收集数据;
方案二:可实现APB协议支持,通过APB接口配置和收集数据;
方案三:可支持JTAG调试。
方案一的好处是可支持的传输类型多,Debug更灵活,方案二的好处是协议简单,方案简化。方案一和方案二可灵活选择实现一种,选用哪种方案取决于实际应用。方案三可选择支持,由实际应用需求决定。
这三种方案只需要修改Debug单元的Master控制和Slave控制即可,或者在控制单元添加选择,因为本发明的***中自带AXI总线,为了利用现有资源,本发明的优选实施例采用方案一的AXI协议配置和收集数据实现。
本发明可实现以下三种Debug模式触发方式:
方案A:支持CPU的断点直接调试,断点发生时,读取所有的存储的数据;
方案B:支持CPU的断点直接调试,断点发生时,根据配置读取存储的数据;
方案C:CPU的断点直接调试方法可配置。
方案A的好处是CPU发生断点时,直接将Debug的数据返回给用户,可以实时Debug,缺点是不能根据实际需求决定Debug与否;方案B的好处是CPU放生断点时,根据用户需求Debug,但是实时性不高。方案C结合了方案A和方案B的优缺点,根据用户需求选择实时性与否,但是方案的优化,增加了逻辑,三种方案的选择可以由实际应用灵活选择。
这三种方案只需要修改数据控制部分,方案A中如果断点调试一旦触发直接读取所有的数据,方案B根据配置读取,本发明实现的是方案C,方案C结合方案A和方案B灵活配置,如果***需求简单,且对面积要求高,可以采用方案A或方案B,简单实现,满足面积要求。
本发明提供的片上存储器的调试装置及方法,根据调试控制信息生成调试读写信号,并根据调试读写信号和外部输入的读写信号进行相应的读写操作,实现了对片上存储器灵活地访问,满足了应用对数据分析以及根据分析结果校正数据的需求,更好地支持了***的灵活调试。
本发明采用硬件专用电路实现对片上存储器的调试,所述片上存储器包括但不限于紧耦合存储TCM、一级缓存L1 I/DCache TAG RAM L1 I/DCache Data RAM以及二级缓存L2 Cache TAG RAM、L2 Cache Data RAM,并提供软硬件协同的低功耗和一致性访问支持。
本发明所有片上存储的Debug方案和原始结构独立,可以单独复位,便于Debug调试以及原始结构的正常运行;
本发明实现的读/写控制单元,能够灵活支持对***中所有RAM的读写访问;
本发明提供的一致性软硬件协同的保护方法,以及硬件一致性架构支持,保证读写数据的一致性,支持Cache一致性访问;
本发明可实现门控时钟,支持模块结构化访问和低功耗模式;
本发明通过AXI纵向实现单独的Slave访问控制和Master访问控制,支持非对齐的数据访问,以及多种数据传输方式;
本发明的寄存器单元以及读/写控制单元的实现,使访问RAM方式支持地址自增和指定区域访问;
本发明的指令解析单元和输入控制单元的实现,使L1_TCM Debug可支持指令Debug触发和外部总线Debug通路两种触发方式;
本发明可配置宏定义(Define)以及根据宏定义的不同实现路数(Way)、块数(Bank)、多端口(Multiport)区分,支持对L1_TCM Debug多Way灵活配置的访问;支持对L2Debug不同Bank、Multiport、Way灵活配置的访问;
本发明的L1_TCM外部总线Debug和L2 Debug采用AXI协议配置和访问;
本发明的错误记录单元的实现,支持Debug错误反馈。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种片上存储器的调试装置,其特征在于,包括输入控制单元、寄存器单元、控制单元和译码单元,其中:
输入控制单元,用于接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器单元;
寄存器单元,用于存储所述解析后的调试控制信息;
控制单元,用于从所述寄存器单元获取所述解析后的调试控制信息,生成相应的调试读写信号并输出至译码单元;
译码单元,用于接收来自控制单元的调试读写信号以及外部输入的读写信号,并根据所述调试读写信号和所述外部输入的读写信号进行相应的读写操作。
2.根据权利要求1所述的调试装置,其特征在于,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
3.根据权利要求2所述的调试装置,其特征在于,所述控制单元包括:状态控制单元、读控制单元和写控制单元,其中:
状态控制单元,用于获取所述调试使能状态和所述读写模式,使能或关闭读控制单元或写控制单元,当使能读控制单元时,将所述片上存储器和所述读写地址输出至读控制单元;当使能写控制单元时,将所述片上存储器和所述读写地址输出至写控制单元;
读控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试读信号并输出至译码单元;
写控制单元,用于根据所述片上存储器和所述读写地址,生成相应的调试写信号并输出至译码单元。
4.根据权利要求1所述的调试装置,其特征在于,还包括时间统计单元,其中:
所述译码单元还用于,生成读写完成标识并输出至所述控制单元;
时间统计单元,用于记录所述控制单元进行所述读写操作的时间或所述输入控制单元解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器单元;
所述寄存器单元还用于,存储所述读写错误或解析错误信息。
5.根据权利要求1所述的调试装置,其特征在于,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
6.根据权利要求1所述的调试装置,其特征在于,当所述片上存储器位于CPU内部时,所述控制单元还用于:
检测中央处理器CPU的内部寄存器的存储状态,在中央处理器CPU的内部寄存器的存储状态为空时,生成所述相应的调试读写信号;
当所述片上存储器位于二级缓存内部时,所述控制单元还用于:
检测二级缓存的内部寄存器的存储状态,在二级缓存的内部寄存器的存储状态为空时,生成所述相应的调试读写信号。
7.一种片上存储器的调试方法,其特征在于,包括:
接收并解析外部输入的调试控制信息,将所述解析后的调试控制信息存储至寄存器;
从寄存器获取所述解析后的调试控制信息,生成相应的调试读写信号;
根据所述调试读写信号以及外部输入的读写信号进行相应的读写操作。
8.根据权利要求7所述的调试方法,其特征在于,所述调试控制信息包括调试使能状态、读写模式、片上存储器和读写地址。
9.根据权利要求7所述的调试方法,其特征在于,所述方法还包括:
记录所述读写操作的时间或解析所述调试控制信息的时间,并与预先设置的读写时间阈值或解析时间阈值进行对比,如果超过所述读写时间阈值或解析时间阈值,将相应的读写错误或解析错误信息存储至寄存器。
10.根据权利要求7所述的调试方法,其特征在于,所述外部输入的调试控制信息为:用户程序输入的调试控制指令或总线输入的调试控制信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710575820.7A CN109254883B (zh) | 2017-07-14 | 2017-07-14 | 一种片上存储器的调试装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710575820.7A CN109254883B (zh) | 2017-07-14 | 2017-07-14 | 一种片上存储器的调试装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254883A true CN109254883A (zh) | 2019-01-22 |
CN109254883B CN109254883B (zh) | 2021-09-24 |
Family
ID=65051868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710575820.7A Active CN109254883B (zh) | 2017-07-14 | 2017-07-14 | 一种片上存储器的调试装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254883B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459857A (zh) * | 2020-03-31 | 2020-07-28 | 西安微电子技术研究所 | 一种tcm控制器及数据缓存读取方法 |
CN112015611A (zh) * | 2020-09-09 | 2020-12-01 | 厦门紫光展锐科技有限公司 | 芯片调试装置、***和芯片 |
CN112559437A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种调试单元及处理器 |
CN112685212A (zh) * | 2021-01-05 | 2021-04-20 | 上海擎昆信息科技有限公司 | 一种处理器异常的调试追踪方法、装置和*** |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828553A (zh) * | 2005-04-13 | 2006-09-06 | 威盛电子股份有限公司 | 片上***与应用于其中的测试/除错方法 |
US20120072791A1 (en) * | 2010-09-21 | 2012-03-22 | Qualcomm Incorporated | Debugger Based Memory Dump Using Built in Self Test |
CN102969027A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于存储器内建自测试的片上存储器调试方法及装置 |
US20160047859A1 (en) * | 2014-08-18 | 2016-02-18 | Duke University | Signal tracing using on-chip memory for in-system post-fabrication debug |
-
2017
- 2017-07-14 CN CN201710575820.7A patent/CN109254883B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828553A (zh) * | 2005-04-13 | 2006-09-06 | 威盛电子股份有限公司 | 片上***与应用于其中的测试/除错方法 |
US20120072791A1 (en) * | 2010-09-21 | 2012-03-22 | Qualcomm Incorporated | Debugger Based Memory Dump Using Built in Self Test |
CN103154906A (zh) * | 2010-09-21 | 2013-06-12 | 高通股份有限公司 | 使用机内自测试的基于调试器的存储器转储 |
CN102969027A (zh) * | 2012-11-28 | 2013-03-13 | 中国人民解放军国防科学技术大学 | 基于存储器内建自测试的片上存储器调试方法及装置 |
US20160047859A1 (en) * | 2014-08-18 | 2016-02-18 | Duke University | Signal tracing using on-chip memory for in-system post-fabrication debug |
Non-Patent Citations (1)
Title |
---|
尹远: ""片上存储器可调测试设计的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559437A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种调试单元及处理器 |
CN111459857A (zh) * | 2020-03-31 | 2020-07-28 | 西安微电子技术研究所 | 一种tcm控制器及数据缓存读取方法 |
CN111459857B (zh) * | 2020-03-31 | 2022-04-19 | 西安微电子技术研究所 | 一种tcm控制器及数据缓存读取方法 |
CN112015611A (zh) * | 2020-09-09 | 2020-12-01 | 厦门紫光展锐科技有限公司 | 芯片调试装置、***和芯片 |
CN112685212A (zh) * | 2021-01-05 | 2021-04-20 | 上海擎昆信息科技有限公司 | 一种处理器异常的调试追踪方法、装置和*** |
CN112685212B (zh) * | 2021-01-05 | 2024-03-19 | 上海擎昆信息科技有限公司 | 一种处理器异常的调试追踪方法、装置和*** |
CN116049035A (zh) * | 2022-12-27 | 2023-05-02 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
CN116049035B (zh) * | 2022-12-27 | 2024-02-09 | 合芯科技有限公司 | 一种缓存一致性的验证和调试的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109254883B (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254883A (zh) | 一种片上存储器的调试装置及方法 | |
USRE49305E1 (en) | Data processing system having cache memory debugging support and method therefor | |
US6889344B2 (en) | System and method for exposing hidden events on system buses | |
US8972671B2 (en) | Method and apparatus for cache transactions in a data processing system | |
US20110138124A1 (en) | Trace mode for cache memory system | |
CN103116551B (zh) | 应用于CLB总线的NorFLASH存储接口模块 | |
US20060112310A1 (en) | Storage of trace data within a data processing apparatus | |
JP2017504897A (ja) | 複数のトランザクションを扱うためのデータ処理システム及びデータ処理方法 | |
CN102969027A (zh) | 基于存储器内建自测试的片上存储器调试方法及装置 | |
US20060294343A1 (en) | Realtime compression of microprocessor execution history | |
CN111324493B (zh) | 针对处理器板级调试的开发***及方法 | |
CN101154184A (zh) | 一种微控制器jtag调试方法 | |
US7596719B2 (en) | Microcontroller information extraction system and method | |
CN112035389A (zh) | 一种plb-axi总线转换桥及其工作方法 | |
KR102542493B1 (ko) | 비휘발성 듀얼 인라인 메모리 모듈에 대한 커맨드 리플레이 | |
CN108427629A (zh) | 一种数据压缩的SoC芯片信息追踪装置和性能优化方法 | |
US20210200649A1 (en) | Error recovery for non-volatile memory modules | |
CN101458725A (zh) | 微控制器芯片及其调试方法 | |
CN114902198A (zh) | 用于异构存储器***的信令 | |
CN117234591A (zh) | 指令验证方法、***、设备、介质及产品 | |
CN102591763A (zh) | 一种基于确定性重放的处理器整体故障检测***与方法 | |
KR102584651B1 (ko) | 데이터 처리 | |
CN106126451A (zh) | 基于包含式Cache体系的多核处理器低功耗设计结构 | |
CN101998135A (zh) | 移动电视信号采集及播放***、控制方法 | |
CN104572515B (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 |