多核微处理器及其除错方法技术

技术编号:4063928 阅读:226 留言:0更新日期:2012-04-11 18:40
一种多核微处理器及其除错方法。上述多核微处理器包括第一处理核、第二处理核以及耦接于第一处理核及第二处理核的总线。总线于第一处理核及第二处理核间传递信息。响应于所侦测到的既定事件,第一处理核停止执行使用者程序指令,并经由总线中断第二处理核。响应于被第一处理核所中断,第二处理核停止执行使用者程序指令。每一处理核在停止执行使用者程序指令之后,输出其状态。每一处理核等待直到经由总线接收到来自另一处理核的通知,开始提取并执行使用者程序指令,其中该通知由另一处理核已准备开始提取并执行使用者程序指令时作出。本发明专利技术的双核能在相同时间传送其状态检查点至存储器,并同时恢复使用者程序指令的执行。

【技术实现步骤摘要】

本专利技术有关于多核处理器,特别有关于多核处理器的除错(debug)。
技术介绍
处理器包含一组微码程序(microcode routine),其呈现休眠状态(dormant) 直到被软件启动而写入至控制暂存器内(例如WRMSR指令)。微码程序以下称为追踪器 (tracer),其可当作一种进行处理器的除错与效能调校(time)的工具。一旦追踪器被启 动,则有各种的事件可将追踪器触发,使其收集处理器状态信息并将处理器状态信息写入 至存储器中的指定地址。使用追踪器的方法之一是在规则性间隔中调用(invoke)追踪器。 例如,每次当处理器执行并引退(retire)N个指令时(例如100000个指令,其数量由使用 者所设定),追踪器会传送(dump)处理器的状态至存储器。被传送的处理器状态以下将称 为检查点(checkpoint)。在对处理器进行除错时,工程师可从检查点获得处理器状态,并将 处理器状态输入至模拟器中进行模拟。模拟器接收到来自检查点的处理器状态,以作为其输入的一部份。模拟器的输入 为存储器的状态以及暂存器的状态(或是处理器的快取存储器),其包括处理器所执行的 程序。模拟器为一理想处理器的功能性模型。也就是说,模拟器以处理器的初始输入状态 开始执行,并引退在存储器中程序的指令,以便产生符合目标处理器结构(例如x86结构) 的处理器的正确的输出状态。接着,模拟器的输出状态会与实际处理器所产生的输出状态 进行比较,其将有助于对设计上的错误进行除错。上述过程概括地描述如下1.处理器会执行与引退N个指令,以及追踪器会传送检查点的状态至存储器。2.追踪器会重新开始执行被中止的处理器程序。(在一情况中,追踪器会重置处 理器,而重置微码会从被传送至存储器的状态检查点来重新载入处理器的状态。)3.步骤1与2会持续执行,直到使用者侦测到错误发生而停止循环,并将状态检查 点储存于一文件中。4.从上述文件回送第一状态检查点至模拟器。5.模拟器会执行与引退N个指令。6.将目前模拟的处理器状态与下一个状态检查点进行比较。如果不符合的话,逻 辑设计工程师会使用这些信息对处理器进行除错。7.否则,从上述文件回送下一个状态检查点至模拟器,并重复步骤5与6。除了存储器的覆盖区(footprint)以及暂存器状态之外,回送至模拟器的输入亦 包括关于由处理器外部的代理者(agent)所产生的事件出现的信息。例如,中断请求会发 送至处理器。再者,系统内的其他代理者会对存储器进行读取以及写入,其中存储器由处理 器以及其他代理者共同使用。其他代理者可以是输入装置与输出装置或是其他处理器。这 些事件发生在由不同代理者所共同使用的结构处理器总线上,因此可由连接至上述总线的 逻辑分析仪进行撷取且与在总线上传送至存储器的状态检查点的时间有关联。在双核处理器的情况中,由一核所执行的动作可能会影响到另一核的功能。例如,一核对存储器进行存取时会影响到另一核的操作。尤其是,部分错误只会发生在两核之间 的交互作用(interaction)期间。在使用模拟器来对双核处理器进行除错的过程中,会侦测到一问题。具体地,实际 处理器内的每一核会部分且独立地执行追踪器的停止、传送以及描述于前面步骤1与2的 重新开始等程序。因此,在实际处理器的操作中由两核所产生的状态检查点并不需要彼此 在时间上有关联。此外,由于追踪器的停止及重新开始等程序不能协调一致,因此部分核交 互作用相关的错误很可能无法被复制。
技术实现思路
本专利技术提供一种多核微处理器。上述多核微处理器包括一第一处理核以及一第 二处理核;以及一总线,耦接于上述第一处理核及上述第二处理核,用以于上述第一处理核 以及上述第二处理核之间传递信息。上述第一处理核以及上述第二处理核被配置为响应 于所侦测到的一既定事件,上述第一处理核停止执行使用者程序指令,并经由上述总线中 断上述第二处理核;响应于被上述第一处理核所中断,上述第二处理核停止执行使用者程 序指令;每一上述处理核在停止执行使用者程序指令之后,输出其状态;以及每一上述处 理核等待直到经由上述总线接收到来自另一上述处理核的通知,开始提取并执行使用者程 序指令,其中该通知由另一上述处理核已准备开始提取并执行使用者程序指令时作出。再者,本专利技术提供一种除错方法,适用于一多核微处理器,其中上述多核微处理器 包括一第一处理核、一第二处理核以及用以于上述第一处理核与上述第二处理核之间传递 信息的一总线。上述除错方法包括通过上述第一处理核,侦测一既定事件;响应于所侦测 到的上述既定事件,通过上述第一处理核停止执行使用者程序指令;经由上述总线,通过上 述第一处理核中断上述第二处理核;响应于被上述第一处理核所中断,通过上述第二处理 核停止执行使用者程序指令;在每一上述处理核停止执行使用者程序指令之后,输出其状 态;以及通过每一上述处理核,等待直到经由上述总线接收到来自另一上述处理核的通知, 开始提取并执行使用者程序指令,其中该通知由另一上述处理核已准备开始提取并执行使 用者程序指令时作出。本专利技术所述的双核处理器能在相同时间传送其状态检查点至存储器,并同时恢复 使用者程序指令的执行。附图说明图1是显示根据本专利技术一实施例所述的具有双核处理器的系统的电路图;图2是显示图1中系统的操作流程图。具体实施例方式为让本专利技术的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施 例,并配合所附图式,作详细说明如下。实施例为了解决上述问题,可修改双核处理器,使得当一核的追踪器触发时,其能中断另 一处理器以便引起另一处理器内的追踪器来传送状态检查点。然后,两核能彼此进行通信(communicate),使得两核能同时重新启动。参考图1,图1是显示根据本专利技术一实施例所述的具有双核处理器108的系统100 的电路图。系统100包括芯片组128,其中芯片组128经由处理器总线134耦接于双核处 理器108。系统100亦包括系统存储器132,其耦接于芯片组128。双核处理器108包括两 核,其可各自称为核0104A以及核1104B或可统称为核104。核0104A会将其状态158A写 入至系统存储器132,而核1104B会将其状态158B写入至系统存储器132,其中核0104A的 状态158A以及核1104B的状态158B可统称为核状态158。核状态158包含核104的多个 暂存器与多个快取存储器的内容。在一实施例中,由于追踪器可执行一写回无效操作以强 制快取数据写至存储器,使得存储器状态可以被撷取,于是快取存储器的内容不会包含在 核状态158内。每一核104A、104B包括指令快取存储器102以及指令翻译器112,其中指令翻译器 112会将从指令快取存储器102所提取的指令转译成微指令(microinstruction)以提供至 每一核104A、104B内的多个执行单元与存储器子系统122。每一核104A、104B亦包括总线 接口单元126,其耦接于执行单元与存储器子系统122并介于及连接于(interface)核104 与处理器总线134之间。每一核104A、104B亦包括微码(microcode)单元118。微码单元118包括微定序 器(microsequencer)(未显示),其可从微码只读本文档来自技高网
...

【技术保护点】
一种多核微处理器,其特征在于,包括:一第一处理核以及一第二处理核;以及一总线,耦接于上述第一处理核及上述第二处理核,用以于上述第一处理核以及上述第二处理核之间传递信息;其中上述第一处理核以及上述第二处理核被配置为:响应于所侦测到的一既定事件,上述第一处理核停止执行使用者程序指令,并经由上述总线中断上述第二处理核;响应于被上述第一处理核所中断,上述第二处理核停止执行使用者程序指令;每一上述处理核在停止执行使用者程序指令之后,输出其状态;以及每一上述处理核等待直到经由上述总线接收到来自另一上述处理核的通知,开始提取并执行使用者程序指令,其中该通知由另一上述处理核已准备开始提取并执行使用者程序指令时作出。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:G葛兰亨利陈巨轩
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1