信息处理装置的制作方法

文档序号:6577769阅读:167来源:国知局
专利名称:信息处理装置的制作方法
技术领域
本发明涉及信息处理装置中的窥探处理。
背景技术
近年来,处理器中搭载多个CPU的多核已成为PC或机内设备中 的主流体系结构。传统技术中,CPU的性能提高之达成有赖于工艺微
细化导致的尺寸缩减和流水线级数的加深,使工作频率加快。但是,
从130- 90nm工艺开始基于工艺微细化的尺寸缩减的进展停滞了,且 工作频率加快后工作时的泄漏功率就会变得非常大,由于冷却成本、 电池寿命的制约而难以应用。多核技术是解决该问题的技术之一。由 于多核方式是通过多个CPU的并行处理来使性能提高,无需提高工作 频率,可抑制功耗的增加。
为了高效率地进行基于多核的并行处理,需要维持高速緩存一致 性。通常,CPU设有将命令和数据存取高速化的高速緩存。由于CPU 对高速緩存的写入是局部地进行的,最新数据往往不在存储器中,而 只存在于高速緩存中。CPU之间实现数据共享,但在不能直接参考写 入其他CPU的高速緩存的最新数据时,就需要对适当的CPU执行中 断,将最新数据写回存储器后再改写高速緩存。这会招致大的性能降 低。因而,在多核中,重要的是能够直接参考其他CPU的高速緩存中 写入的最新数据(-维持高速緩存一致性)。
作为用以维持高速緩存一致性的协议,公知的有MESI协议和 MOESI协议。用这些协议定义窥探处理。所谓窥探处理,是指某个 CPU更新高速緩存时根据需要向其他CPU请求,而接到请求的CPU更
新自身的高速緩存并返回应答的一系列的处理。
为了在基于多核的并行处理中在CPU之间共享数据,要执行许多窥探处理。这使得程序调试非常困难。通常,为了程序调试而设定断
点来使CPU停止,确认高速緩存、寄存器、存储器的值并指定出错的 原因。但是,多核中,即使让某个CPU停止也会有另一CPU上运行的
程序将这些值更新。专利文献l中记载有作为该问题对策的传统技术。
根据该专利文献l,断点异常时可选择仅使发生异常的CPU停止或使 全部CPU停止。通过使全部CPU停止,能够防止高速緩存、寄存器、
存储器的值之后又被更新。
专利文献1特开平6-332747号公报
在根据某个CPU上发生的断点异常而使其他CPU停止时,需要数 个周期至数十个周期左右,并不能使之立即停止。该周期数依赖于 CPU和调试控制器的安装,但一般规律是工作频率越高所需周期数就 越多。若在该期间执行了许多窥探处理,则即使在程序中设断点来使 某个CPU停止,来自其他CPU的窥探也会将高速緩存的状态更新。而 且,在该CPU停止后,即使在高速緩存中发现了错误结果,也难以确 定错误是在那个时刻混入的。因此,最好能提供与信息处理装置中的 窥探处理有关的、用以高效率地进行程序调试的技术。

发明内容
鉴于上述各点,本发明的课题是提供具有通过使设定的CPU以外 的窥探处理等待执行来高效率地调试多核中的并行处理的程序之功 能的信息处理装置。
以下,就本申请中公开的发明中的典型装置作概要说明。本发明 的信息处理装置构成为,设有具有使数据存取高速化的高速緩存的 多个CPU;可对上述多个CPU进行存取的数据存储器;具有将上述各 CPU的高速緩存数据的一部分复制并存储的高速緩存的窥探控制器; 以及程序调试用的调试控制器,上述多个CPU执行用以维持高速緩存 一致性的窥探请求和窥探处理,上述窥探控制器为维持高速緩存一致 性而受理上述来自多个CPU的窥探请求,并确定需要窥探处理的CPU 以执行窥探请求。本发明的效果是,能够提供具有通过使设定的CPU以外的窥探处
理等待执行来高效率地调试多核中的并行处理的程序之功能的信息 处理装置。


图l是本发明实施例的信息处理装置的框图。
图2是窥探控制器(SNC)的详细示图。
图3是窥探控制器(SNC)内的复制地址阵列(DAA)的详细示图。
图4是调试控制器(DBG)的详细示图。
图5表示窥探处理中的信号收发。
图6表示维持高速緩存一致性的MESI协议。
图7是窥探控制器(SNC)内的窥探屏蔽寄存器62 (SMR)的详 细示图。
图8表示窥探屏蔽寄存器(SMR)中设定的屏蔽条件。 图9是窥探控制器(SNC)内的窥探释放寄存器(SSR)的详细示图。
图10是窥探控制器(SNC)内的条件一致通知寄存器(MNR) 的详细示图。
图ll是调试模块(DBG)内的中断条件寄存器(BCR)的详细示图。
图12表示中断条件寄存器(BCR)中设定的中断条件。 图13是调试控制器(DBG)内的调试状态寄存器(DSR)的详 细示图。
图14是表示本发明的实施例中的调试流程的流程图。 图15表示图14中各模块的处理流程。 图16表示调试时的环境。
图17是不使用本发明的实施例的同时中断的执行时序图。 图18是使用本发明的实施例的同时中断的执行时序图。1:IC芯片
10、20、 30、 40:中央处理器(CPU)
11、21、 31、 41:高速緩存(CACHE)
50:窥探总线
60:窥探控制器(SNC)
61:复制地址阵列(DAA)
62:窥探屏蔽寄存器(SMR)
63:窥探释放寄存器(SRR)
64:条件一致通知寄存器(MNR)
70:-悉
80:共用存储器(MEM)
卯调试控制器(DBG)
130:仿真器
140:开发用板
150:开发环境
160:调试器
具体实施方式
《实施例》
以下,参照附图就本发明的信息处理装置的优选实施例进行说
明。构成实施例的各方框内的电路元件采用y^知的CMOS (互补型 MOS晶体管)和双极型晶体管等的半导体集成电路技术,在如单晶硅 那样的单个半导体衬底上形成,并无特别限制。
图l表示基于本发明的信息处理装置的多核系统的实施例。该多 核系统集成在IC芯片1上,由中央处理器IO、 20、 30、 40 (CPU)、 窥探总线50、窥探控制器60(SNC: Snoop Controller)、总线70、共 用存储器80 (MEM)、调试控制器90 (DBG)等构成。
中央处理器IO、 20、 30、 40(CPU)是读取、解释共用存储器80(MEM)上某个程序,并根据其结果执行数据的移动、算术运算、 逻辑运算等的通用电路。中央处理器IO、 20、 30、 40(CPU)分别设 有高速緩存ll、 21、 31、 41 (CACHE)。高速緩存用来保存有效位、 脏位、共用位、标记、数据。有效位、脏位、共用位分别表示緩存条 目是否有效、是否写入、是否共用其他中央处理器的高速緩存和数据。 通过这3个位表示MESI协议中的各高速緩存状态。标记是物理地址的 一部分,用于緩存命中判定。再有,MESI协议将参照图6后述。
窥探总线50是使中央处理器10、 20、 30、 40 (CPU)和窥探控制 器60 ( SNC )之间的窥探处理高速化的专用总线。连接中央处理器IO、 20、 30、 40 (CPU)、共用存储器80 (MEM)等的总线70独立地进 行数据的交换,因此不妨碍与存储器和周边逻辑电路等的数据传送。
窥探控制器60(SNC)通过控制中央处理器10、 20、 30、 40(CPU) 之间的高速緩存的更新来维持高速緩存的一致性。维持高速緩存的一 致性的窥探处理在后文中详述。
总线70是连接中央处理器10、 20、 30、 40 (CPU)、窥探控制器 60 (SNC)、调试控制器90 (DBG)、共用存储器80 (MEM)及周 边逻辑电路等的通用总线。中央处理器IO、 20、 30、 40(CPU)经由 总线70相互连接,并连接到共用存储器80 (MEM),而且经由窥探 总线50连接到窺探控制器60 (SNC)。
共用存储器80 (MEM)是SRAM和DRAM等的主存装置,保存 中央处理器IO、 20、 30、 40 (CPU)的处理所需的命令和数据。
调试控制器90 (DBG)通过经由芯片外的仿真器和布线120的数 据通信,进行对调试控制器90 (DBG)的内部寄存器、各中央处理器 的内部寄存器、高速緩存、内置存储器、窥探控制器60 (SNC)的内 部寄存器、共用存储器80 (MEM)、周边逻辑电路等资源的存取。 并可经由布线IOO执行中央处理器IO、 20、 30、 40 (CPU)的停止和 重启的指示。
图2是表示窥探控制器60 (SNC)的详细示图。窥探控制器60 (SNC)由复制地址阵列61 (DAA)、窥探屏蔽寄存器62 (SMR)、窥探释放寄存器63 (SRR)、条件一致通知寄存器64 (MNR)、窥探 控制逻辑65 (SNPL)构成。
通过来自各中央处理器的窥探请求来检索复制地址阵列61 (DAA),并根据结果执行对其他中央处理器的窥探。再有,蔬探控 制器60 (SNC)经由总线70连接到共用存储器80 (MEM)。在将窥 探处理的结果写回到共用数据的存储器80 (MEM)时使用该路径。
窥探屏蔽寄存器62 (SMR)保存关于窺探控制器60 (SNC)将 来自其他中央处理器的窥探锁闭的条件。
窥探释放寄存器63 (SRR)保存关于窥探是否被锁闭的状态。
条件一致通知寄存器64 (MNR)保存关于来自其他中央处理器 的窥探被锁闭时是否对向调试控制器90 (DBG)通知的设定。
窥探控制逻辑65 (SNPL)通过后述的窥探处理的控制、基于窥 探屏蔽寄存器62 (SMR)的设定的窥探屏蔽控制和基于条件一致通知 寄存器64 (MNR)的设定的布线IIO,进行对调试控制器卯(DBG) 的条件一致的通知。
图3是图2所示的窥探控制器60 (SNC)内的复制地址阵列61 (DAA)的详细示图。复制地址阵列61 (DAA)具有与各中央处理器 的高速緩存ll、 21、 31、 41 (CACHE)对应的复制地址611、 612、 613、 614。复制地址中,保持中央处理器的高速緩存信息中的有效位 6100、共用位6101、标记6102。
图4是图2所示的调试控制器90 (DBG)的详细示图。调试控制 器90( DBG )由中断条件寄存器91( BCR)、调试状态寄存器92( DSR)、 调试控制逻辑93 (DBGL)构成。
中断条件寄存器91 (BCR)保存用以使中央处理器IO、 20、 30、 40 (CPU)中发生断点异常的条件。
调试状态寄存器92( DSR)保存关于是否发生了断点异常的状态。
调试控制逻辑93 (DBGL)执行基于来自芯片外的仿真器的指示 的对芯片内资源的存取控制和根据中断条件寄存器91 ( BCR)的设定、 中央处理器IO、 20、 30、 40 (CPU)的状态和来自窥探控制器的条件一致通知的断点异常的发生控制,并在断点异常发生时执行对中央处
理器IO、 20、 30、 40(CPU)的停止请求和对调试状态寄存器92(DSR) 的写入。
图5是表示窥探处理中的信号收发的示图。窥探处理中进行如下 的一系列处理。首先,在中央处理器IO ( CPU)更新高速緩存ll (CACHE)时,为了维持中央处理器20 (CPU)的高速緩存21 (CACHE)之间的数据一致性,对窥探控制器60 (SNC)进行窥探 请求51。再有,在根据窥探请求的一系列的处理中,为了除了更新高 速緩存状态还执行填充和回写,在窥探请求51中包含读、写这样的指 令、存取对方的共用存储器80 (MEM)的地址和其写数据等。接到 窥探请求51的窥探控制器60 (SNC)进行复制地址阵列61 (DAA)的 检索和更新,并对中央处理器20 (CPU)进行高速緩存21 (CACHE) 的状态更新请求52。而且,接到状态更新请求52的中央处理器20 (CPU)进行高速緩存21 (CACHE)的更新,并将各自的结果作为 应答53、 54通知。另外,若复制地址阵列61 (DAA)的检索结果是, 高速緩存21 (CACHE)中没有有效的数据,窥探控制器60 (SNC) 就经由总线70存取共用存储器80 (MEM),并将应答53通知中央处 理器IO (CPU)。
图6是表示MESI协+义(Modified Exclusive Shared Invalid )的示 图。该MESI协议被用于窥探处理。MESI协议是取得高速緩存之间的 一致性的协议,高速緩存具有如下的4种状态。
1) M状态(变更状态,Modified State ):只在某个中央处理器 的高速緩存中存在,已从主存上的值变更。其他中央处理器在存取与 该高速緩存行相当的主存时,必须控制成可参考经变更的最新值。
2) E状态(排他状态,Exclusive State):只在某个中央处理器 的高速緩存中存在,但与主存上的值一致。
3) S状态(共用状态,Shared State):在多个中央处理器上存 在同样的緩存行,与主存的值一致。
4) I状态(无效状态,Invalid State):在高速緩存上不存在。再有,以下的说明中,也使用E,状态。E,状态是表示E状态210 或M状态200的高速緩存状态,但图6中未记载。使用E,状态是为了简 便,在复制地址阵列61 (DAA)中为将M和E状态设为不加区别的结 构而使用E,状态。当然,也可采用区别M和E状态的结构。
接着描述中央处理器IO、 20、 30、 40 (CPU)和窥探控制器60 (SNC)的窥探处理的动作。窥探处理使用图6所示的MESI协议,但 并无特别限制。这里执行读、写,将中央处理器IO (CPU)选择为窥 探处理的请求方,并将中央处理器20 (CPU)选择为窥探处理的被请 求方,但对于中央处理器的组合并无特别限制。首先,说明执行读的 情况。在中央处理器IO (CPU)上执行读而緩存未命中时,为了参考 中央处理器20、 30、 40 (CPU)的高速緩存21、 31、 41的最新数据而 进行窥探请求。此时的指令是读,地址是緩存未命中的共用存储器80 (MEM)的地址。窥探请求经由窥探总线50通知窥探控制器60 (SNC)。窥探控制器60 (SNC)检索复制地址阵列61 (DAA),调 查高速緩存21、 31、 41中是否存在最新数据。
若复制地址阵列61 (DAA)的检索结果是高速緩存21、 31、 41 中没有最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的
并^关于在其他中央处理器的高速緩存中未找到最新数据的应答返 送给中央处理器IO (CPU)。接到应答后中央处理器IO (CPU)就将 高速緩存11的适当条目从I状态230变更到E状态210。由于最新数据存 在于共用存储器80 (MEM),经由总线70或窥探控制器60 ( SNC ) 和窥探总线50写入中央处理器10 (CPU)的高速緩存ll。
若复制地址阵列61 (DAA)的检索结果是例如高速緩存21中存 在最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的适当 条目的复制地址阵列61 (DAA)的条目从I状态"0更新到S状态220, 同时将对应于高速緩存21的适当条目的复制地址阵列61 (DAA)的条 目从E,状态/S状态220更新到S状态220。而且,经由窥探总线50向中 央处理器IO (CPU)返回关于在其他中央处理器的高速緩存找到了最新数据的应答,同时向中央处理器20请求高速緩存状态的更新和最新 数据的转送。接到应答的中央处理器IO (CPU)将高速緩存ll的适当 条目从I状态230更新到S状态220。接到请求的中央处理器20将高速緩
并将最新数据返回窺探控制器60 (SNC)。窥探控制器60 (SNC)将 最新数据返回中央处理器IO (CPU),并写入高速緩存ll。
若中央处理器10 ( CPU )在执行读时緩存命中,则由于高速緩存 ll中存在最新数据而不执行窥探。
接着,说明执行写时的情况。若中央处理器IO (CPU)在执行写 时緩存未命中,则为参考中央处理器20、 30、 40 (CPU)的高速緩存 21、 31、 41的最新数据而进行窥探请求。此时的指令是写,地址是緩 存未命中的共用存储器80 (MEM)的地址。指令为写时,其写数据 也被输出。窥探请求经由窥探总线50通知到窥探控制器60 (SNC)。 窥探控制器60 (SNC)检索复制地址阵列61 (DAA),调查高速緩存 21、 31、 41中是否存在最新数据。
若复制地址阵列61 (DAA)的检索结果是高速緩存21、 31、 41 中无最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的适 当条目的复制地址阵列61 (DAA)的条目从I状态230更新到E,状态, 并将应答返回中央处理器10(CPU)。接到应答,中央处理器10(CPU) 将高速緩存11的适当条目从I状态230变更到M状态200。由于写执行前 的最新数据存在于共用存储器80 (MEM)中,经由总线"70或窥探控 制器60 ( SNC )和窥探总线50写入中央处理器(CPU )的高速緩存ll。
若复制地址阵列61 (DAA)的检索结果是例如高速緩存21中存 在最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的适当 条目的复制地址阵列61的条目从I状态230更新到E,状态,同时将对应 于高速緩存21的适当条目的复制地址阵列61 (DAA)的条目从M状态 200/E状态210/S状态220更新到I状态230。而且,将应答经由窥探总 线50返回中央处理器10 (CPU),同时向中央处理器20请求高速緩存 状态的更新和最新数据的转送。接到应答的中央处理器IO (CPU)将高速緩存11的适当条目从I状态230更新到M状态200 。接到请求的中央 处理器20将高速緩存21的适当条目从M状态200/E状态210/ S状态 220更新到I状态230,并将最新数据返回窥探控制器60 (SNC)。窥探 控制器60将最新数据返回中央处理器10(CPU),并写入高速緩存ll。
若中央处理器IO ( CPU)执行写时在M状态200/E状态210緩存命 中,则由于最新数据只存在于高速緩存ll而进行窥探。
若中央处理器IO (CPU)执行写时,在S状态220緩存命中,则为 了通知关于其他中央处理器的高速緩存中存在的数据不是最新这一 情况而进行窥探请求。窥探请求经由窥探总线50通知到窥探控制器60 (SNC)。窥探控制器60 (SNC)检索复制地址阵列61 (DAA),调 查高速緩存21、 31、 41中是否存在最新数据。
若复制地址阵列61 (DAA)的检索结果是高速緩存21、 31、 41 中无最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的适 当条目的复制地址阵列61 (DAA)的条目从S状态220更新到E,状态, 并将应答返回中央处理器IO( CPU )。接到应答的中央处理器IO( CPU) 就将高速緩存11的适当条目从S状态220变更到M状态200。
若复制地址阵列61 (DAA)的检索结果是例如高速緩存21中存 在最新数据,则窥探控制器60 (SNC)就将对应于高速緩存ll的适当 条目的复制地址阵列61 (DAA)的条目从S状态220更新到E,状态,同 时将对应于高速緩存21的适当条目的复制地址阵列61 (DAA)的条目 从S状态220更新到I状态230。而且,经由窥探总线50将应答返回中央 处理器IO (CPU),同时向中央处理器20 (CPU)请求高速緩存状态 的更新和最新数据的转送。接到了应答的中央处理器IO (CPU)将高 速緩存11的适当条目从S状态220更新到M状态200 。接到了请求的中 央处理器20将高速緩存21的适当条目从S状态220更新到I状态230。
如上所述, 一系列的窥探处理全部通过窥探控制器60 (SNC)执 行。因此,从中央处理器IO、 20、 30、 40 (CPU)接到窥探请求时, 进行是否与窥探屏蔽寄存器62 (SMR)的屏蔽条件一致的一致判定, 窥探控制器60 (SNC)中暂时地屏蔽对某个中央处理器以外的窥探请求的受理,从而能够防止其他中央处理器更新该中央处理器的高速緩 存的状态。
为了理解这点,对窥探控制器60 ( SNC )和调试控制器90 ( DBG ) 作详细说明。用图7、 8说明窥探屏蔽寄存器62 (SMR),用图9说明 窺探释放寄存器63 (SRR),用图10说明条件一致通知寄存器64 (MNR)。另外,用图ll、 12说明中断条件寄存器91 (BCR),用 图13说明调试状态寄存器92 (DSR)。然后,用图14说明窺探请求的 受理的屏蔽和将用了该屏蔽解除的多核中的并行处理程序调试容易 化的方法。
图7是图2所示的窥探控制器60 (SNC)内的窥探屏蔽寄存器62 (SMR)的详细示图。窥探屏蔽寄存器62 (SNM)中可设定屏蔽条件 A620、屏蔽条件B621、…等多个屏蔽条件。
图8表示窥探屏蔽寄存器62 (SMR)中设定的屏蔽条件。在屏蔽 条件A620、屏蔽条件B621、…中,可作为条件之对象设定中央处理器 6200、指令6201、地址6202、写数据6203,以将它们设为判定对象。 蔬探控制器60 (SNC)监视用作为条件之对象的中央处理器6200的设 定指定的中央处理器的窥探请求(指令、地址、写数据),进行是否 与指令6201、地址6202、写数据6203的进程描述符相一致的一致判定。
再有,说明中描述的是接受屏蔽条件A620,但对于其他屏蔽条 件的描述也一样。 一致判定就是,按照屏蔽条件组合6204的设定,从 这些屏蔽条件中选择1个或2个以上的逻辑和、逻辑积的组合。另外, 可将多个屏蔽条件一致的组合6205和判定一致的次数6206进一步作 为一致判定条件来进行选择。若判定为一致,窥探控制器60(SNC) 之后就不再受理来自作了窥探请求的中央处理器以外的中央处理器 的窥探请求。再有,也可在屏蔽条件A620中将不受理窺探请求的中央 处理器6207当作可设定,按照其设定控制成不受理中央处理器(CPU) 的窥探请求。
图9是图2所示的窥探控制器60 (SNC)内的窥探释放寄存器63 (SSR)的详细示图。窥探释放寄存器63 (SSR)通过指示符630表示关于窥探请求是否被屏蔽的状态。窥探请求被屏蔽时设定为l,窥探
请求的屏蔽状态可通过写入o来解除。
图10是图2所示的窥探控制器60 (SNC)内的条件一致通知寄存 器64(MNR)的详细示图。在对其他中央处理器的窥探请求被屏蔽时, 条件一致通知寄存器64( MNR)保存关于是否向调试控制器90( DBG ) 通知的设定,O表示不通知,l表示通知。再有,该通知的设定是按窥 探屏蔽寄存器62 (SMR)的屏蔽条件设定的。通过在条件一致通知寄 存器上预先进行通知的设定,可在窥探锁闭时指定是否用调试控制器 使断点异常发生,详细情况用图14、 15进行说明。
图11是图4所示的调试模块90 (DBG)内的中断条件寄存器91 (BCR)的详细示图。在中断条件寄存器91 (BCR)中,可设定中断 条件A910、中断条件B911、...等多个中断条件。
图12表示在中断条件寄存器91(BCR)中设定的中断条件。中断 条件A910、中断条件B911、…中可设定设为条件之对象的中央处理器 9100、程序计数器的值9101、写数据9102,以将它们作为判定对象。 调试模块90 (DBG)监视用设为条件之对象的中央处理器9100的设定
指定的中央处理器的程序计数器的值和写数据,进行是否与程序计数 器的值9101、写数据9102的进程描述符相一致的一致判定。再有,在 调试控制器90 (DBG)按每个中央处理器(CPU)分开的情况下,若 每个中央处理器(CPU)有寄存器,则不需要作为对象的中央处理器 9100的进程描述符。
再有,说明中描述的是接受中断条件A910,但其他中断条件也 同样。 一致判定就是按照中断条件组合9103的设定,从前述的中断条 件中选择1个或2个以上的逻辑和、逻辑积的组合。另外,也可进一步 将多个中断条件一致的组合9104和判定为 一致的次数9105作为一致 判定条件来选择。若判定为一致,则断点异常发生。所谓断点异常, 就是中央处理器(CPU)执行中的程序满足中断条件时从调试控制器 卯(DBG)向中央处理器(CPU)请求停止该程序的执行。可以将调 试控制器90 (DBG)构成为在断点异常中,可至少向满足中断条件的中央处理器(CPU)请求执行停止,也可同时向其他中央处理器
(CPU)请求执行停止。
图13是图4所示的调试控制器90 (DBG)内的调试状态寄存器92
(DSR)的详细示图。调试状态寄存器92 (DSR)通过指示符920表 示是否发生了断点异常。O为未发生断点异常的状态,l为发生了断点 异常的状态。
图14表示调试处理的流程图,图15表示各模块的处理顺序。再有, 假设成为窥探屏蔽寄存器62 (SMR)的屏蔽条件之对象的CPU核是中 央处理器IO( CPU ),作为屏蔽对象的CPU核是中央处理器20( CPU )。 多核的并行处理程序调试中,将窥探请求的受理屏蔽和断点异常造成 的中央处理器的停止结合起来进行。
首先, 一起进行从调试器160到调试控制器90 (DBG)的中断条 件和窺探请求的屏蔽条件的设定(S1001)。用图16说明这些设定方 法。成为调试对象的IC芯片1与开发用板140连接,并经由仿真器130 与PC或WS等的开发环境150连^t妄。调试器160在开发环境150上工作, 调试器160上的用户操作被通知到IC芯片1上的调试控制器90(DBG)。 用户一经在调试器160上设定共用存储器80 (MEM)上的程序设定断 点,其操作就通过接到其通知的调试控制器90 (DBG)经由总线70对 中断条件寄存器91 (BCR)进行写入而被实现。受理屏蔽的设定也与 上述一样,用户操作通过被通知到调试控制器卯(DBG)并对窥探屏 蔽寄存器62 (SMR)写入而被实现。
在这些寄存器的设定后,通过来自经由调试控制器90 (DBG) 的调试器160的用户操作,用各中央处理器起始程序执行(S1002)。 在程序执行中例如发生了读未命中(read miss) ^'I"青^L"F, 为: f:&会Ji 述窥探处理在发出了窥探请求的时刻进行窥探请求的屏蔽条件的命 中判定(S1003 )。该命中判定根据窥探请求中包含的读和写这样的 指令、存取对方的共用存储器80 (MEM)的地址和其写数据是否与 屏蔽条件相符来进行。若屏蔽条件命中,则窥探控制器SNC (60)不 受理来自其他中央处理器的窥探请求(S1004 )。另一方面,若未命中,则以后再受理窥探请求。
这里,就屏蔽条件的命中和窥探请求的屏蔽以具体例进行说明。
设成为窥探屏蔽寄存器62 (SMR)的屏蔽条件A620的条件之对象的 CPU核为中央处理器10(CPU),设指令为读,设地址为0x01234567, 将屏蔽条件组合设为指令和地址,并将写数据、其他屏蔽条件一致、 条件一致次数设为don,tcare(不在乎)。另外,作为屏蔽对象的CPU 核是中央处理器20。在满足以上设定的状态下,在中央处理器IO
(CPU)上执行程序,若在指令为读、地址为0xl234567时由于緩存 未命中等发生了窥探请求,则窺探请求的屏蔽条件由于指令和地址的 一致而成为命中。结果,窥探控制器60 (SNC)之后对来自中央处理 器20(CPU)的窥探请求不返回受理应答。结果,中央处理器20(CPU) 在窥探应答等待的状态停顿。由于其他中央处理器停顿而不进行处 理,因此,在用户用调试器160进行程序调试期间,由作为调试对象 的中央处理器以外的中央处理器不更新高速緩存。
窥探控制器60(SNC),在窥探请求的屏蔽条件一致时,按照条 件一致通知寄存器64 (MNR)的通知位640的设定,使窥探控制逻辑 65 ( SNPL)经由布线110将条件一致的情况通知调试控制器90 ( DBG )
(S1005 )。接到通知的调试控制器90( DBG )发生断点异常(S1007 )。 另一方面,若未设定,就不通知。通过预先在条件一致通知寄存器上 作通知设定,可在窥探锁闭时指定是否用调试控制器发生断点异常。 再有,调试控制器90 (DBG)监视中央处理器执行中的程序,在程序 满足中断条件时(S1006)使断点异常发生(S1007)。然后,调试控 制器90 (DBG)向中央处理器(CPU)发出执行停止请求,中央处理 器(CPU)停止该程序的执行(S1009)。这里,在同时中断是有效 的情况下,调试控制器90 (DBG)也对满足断点异常的发生条件的中 央处理器以外的中央处理装置请求程序的执行停止(S1008, S1010)。 设定同时中断的有效、无效的信息,保存在调试控制器内的同时中断 寄存器内的同时中断有效位上。O表示同时中断无效,l表示同时中断 有效。再有,也可采用这样的结构,可用窥探屏蔽寄存器62 (SMR)或调试控制器90 (DBG)设定将令其停止的中央处理器。
调试结束时(S1011),使中央处理器的动作重启。使中央处理 器的动作重启时对窥探释放寄存器63 (SRR)的释放位630写入0,将 窥探请求的受理屏蔽解除(S1012)。从而,在调试结束(S1013)后 再次用窥探控制器60 (SNC)接受窺探请求。窥探请求的受理屏蔽之 解除,可由用户调试中经由调试控制器卯(DBG)对窥探释放寄存器 63 (SRR)进行存取实现,在调试中想要重启时可利用其他中央处理 器的窥探请求实现。
为了通过某个中央处理器的断点异常的发生来使其他中央处理 器停止,由于要经由调试控制器90 (DBG)且其布线距离长,停止通 知需用数个周期到数十个周期。因此,如图17所示,其他中央处理器 在停止前还会执行多个命令(D, E,…,M),难以确定出错的部位。 而依据本发明,通过在某个中央处理器的断点异常发生的同时进行窥 探请求的屏蔽控制,各中央处理器在未受理窥探请求的状态下停顿, 而停止通知可在该停顿期间结束。这是由于窥探请求的受理屏蔽解除 在调试中的用户操作或调试结束之时,需要更长的时间。因此,如图 18所示,其他中央处理器在停止前执行的命令成为l个命令(D),出 错部位的确定就变得容易。
通过以上的处理,通过使被设定的中央处理器以外的窥探处理的 执行等待,能够高效率地调试多核中的并行处理程序。
以上基于实施例对本发明者构思的发明作了具体说明,但本发明 并不以上述实施例为限定,不言而喻,在不脱离其主题的范围内可进 行多种多样的变更。
权利要求
1.一种信息处理装置,其特征在于,具备第1处理装置;第2处理装置;具有设定有中断条件的中断条件寄存器的调试控制器;以及具有设定有屏蔽条件的窥探屏蔽寄存器的窥探控制器,所述调试控制器监视所述第1处理装置执行的程序,在所述程序的状态与所述中断条件相符时,使所述第1处理装置停止所述程序的执行,在所述第1处理装置对所述窥探控制器提出的窥探请求与所述屏蔽条件相符时,所述窥探控制器不受理来自所述第2处理装置的窥探请求。
2. 如权利要求l所述的信息处理装置,其特征在于,在所述程序的状态与所述中断条件相符时,所述调试控制器使所 述第2处理装置停止程序的执行。
3. 如权利要求l所述的信息处理装置,其特征在于, 在所述第l处理装置对所述窥探控制器提出的窥探请求与所述屏蔽条件相符时,所述调试控制器使所述第l处理装置停止程序的执行。
4. 如权利要求l所述的信息处理装置,其特征在于, 在所述第l处理装置对所述窥探控制器提出的窥探请求与所述屏蔽条件相符时,所述调试控制器使所述第2处理装置停止程序的执行。
5. —种信息处理装置,其特征在于,具备 多个处理装置;具有设定有中断条件的中断条件寄存器的调试控制器;以及具有设定有屏蔽条件的蔬探屏蔽寄存器的窥探控制器,所述调试控制器监视所述处理装置执行的程序,在所述处理装置之一即第l处理装置执行的程序的状态与所述中断条件相符时,使所述第l处理装置停止所述程序的执行,在所述第l处理装置对所述窥探控制器提出的窥探请求与所述屏 蔽条件相符时,所述窥探控制器不受理来自所述第l处理装置以外的 所述处理装置的窥探请求。
6. 如权利要求5所述的信息处理装置,其特征在于, 在所述第l处理装置执行的所述程序的状态与所述中断条件相符时,所述调试控制器使所述第l处理装置以外的所述处理装置停止程 序的执行。
7. 如权利要求5所述的信息处理装置,其特征在于, 在所述第l处理装置对所述窥探控制器提出的所述窥探请求与所述屏蔽条件相符时,所述调试控制器使所述第l处理装置以外的所述 处理装置停止程序的执行。
8. 如权利要求l所述的信息处理装置,其特征在于, 设定程序计数器的值和写数据中的至少一个,作为所述中断条件。
9. 如权利要求l所迷的信息处理装置,其特征在于, 设定所述窥探请求所包含的指令、地址、写数据中的至少一个,作为所述屏蔽条件。
10. —种调试方法,其特征在于,调试控制器监视第1处理装置执行的程序,在所述程序的状态与 设定在所述调试控制器内的中断条件寄存器中的中断条件相符时,使 所述第l处理装置停止所述程序的执行,在所述第l处理装置对所述窥探控制器提出的窥探请求与设定在 所述窺探控制器内的窥探屏蔽寄存器中的屏蔽条件相符时,使所述窥 探控制器不受理来自所述第2处理装置的窥探请求。
11. 如权利要求10所述的调试方法,其特征在于,在所述程序的状态与所述中断条件相符时,所述调试控制器使所 述第2处理装置停止程序的执行。
12. 如权利要求10所述的调试方法,其特征在于, 在所述第l处理装置对所述窥探控制器提出的窥探请求与所述屏蔽条件相符时,所述调试控制器使所述第l处理装置停止程序的执行。
13. 如^L利要求10所述的调试方法,其特;f正在于,在所述第l处理装置对所述窥探控制器提出的窥探请求与所述屏 蔽条件相符时,所述调试控制器使所述笫2处理装置停止程序的执行。
14. 如权利要求10所述的调试方法,其特征在于, 设定程序计数器的值和写数据中的至少一个,作为所述中断条件。
15. 如权利要求10所述的调试方法,其特征在于, 设定所述窥探请求所包含的指令、地址、写数据中的至少一个,作为所述屏蔽条件。
16. 如权利要求5所述的信息处理装置,其特征在于, 设定所述窥探请求所包含的指令、地址、写数据中的至少一个,作为所述屏蔽条件。
全文摘要
本发明的目的在于,提供具有通过控制窥探处理而高效率地调试并行处理的程序之功能的信息处理装置。构成为可用控制窥探处理的窥探控制器(60)设定对来自中央处理器的窥探请求的受理,通过窥探请求的受理,调试控制器(90)可使多个中央处理器(10、20、30、40)停止。
文档编号G06F12/08GK101556558SQ20091013404
公开日2009年10月14日 申请日期2009年4月8日 优先权日2008年4月8日
发明者高田雅士 申请人:株式会社瑞萨科技
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1