《数据处理装置.pdf》由会员分享,可在线阅读,更多相关《数据处理装置.pdf(30页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104106046A43申请公布日20141015CN104106046A21申请号201280069647922申请日20120214G06F9/38200601G06F12/0820060171申请人瑞萨电子株式会社地址日本神奈川县72发明人石崎雅胜74专利代理机构北京市金杜律师事务所11256代理人陈伟王娟娟54发明名称数据处理装置57摘要根据一个实施方式,数据处理装置具有存储器、指令高速缓存、运算处理部CPU、取出处理控制部。存储器存储通过多个指令描述的程序。指令高速缓存仅在执行包含在程序中的分支指令时动作,从存储器读出并预先存储比存储器的总线宽度大的容量的数据。运算。
2、处理部向存储器以及指令高速缓存的双方访问,使从存储器或者指令高速缓存读出的指令在流水线中执行。取出处理控制部根据在运算处理部中执行的分支指令,生成用于停止从存储器读出指令的取出处理的停止信号,向存储器输出。85PCT国际申请进入国家阶段日2014081386PCT国际申请的申请数据PCT/JP2012/0533472012021487PCT国际申请的公布数据WO2013/121516JA2013082251INTCL权利要求书2页说明书15页附图12页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书15页附图12页10申请公布号CN104106046ACN104106046。
3、A1/2页21一种数据处理装置,具有存储器,其存储通过多个指令描述的程序;指令高速缓存,其仅在执行包含在所述程序中的分支指令时动作,从所述存储器读出并预先存储有比所述存储器的总线宽度大的容量的数据;运算处理部,其向所述存储器以及所述指令高速缓存的双方访问,使从所述存储器或者所述指令高速缓存读出的指令在流水线中执行;以及取出处理控制部,其根据在所述运算处理部执行的分支指令,生成用于停止取出处理的停止信号,并将该停止信号向所述存储器输出,其中,所述取出处理是从所述存储器读出指令的处理。2根据权利要求1所述的数据处理装置,其中,所述指令高速缓存包含比较器,该比较器在所述运算处理部中执行分支指令时,比。
4、较向所述存储器访问的地址和预先存储的指令的地址,并在一致的情况下,判断为存储有相对于该分支指令来说的分支目标的指令,所述取出处理控制部是停止处理部,在所述比较器判断为在所述指令高速缓存中存储有分支目标的指令的情况下,生成用于在将存储于所述指令高速缓存的指令读出的期间停止所述取出处理的停止信号,并将该停止信号向所述存储器输出。3根据权利要求2所述的数据处理装置,其中,所述比较器对根据地址一致的指令而能够将存储在所述指令高速缓存中的指令读出的次数进行计数来作为命中量,所述停止处理部包含计数器,该计数器通过将所述命中量作为初始值并进行递减计数,设定使向所述存储器的访问停止的期间。4根据权利要求2所述。
5、的数据处理装置,其中,所述停止处理部在分支目标的指令再分支的情况下,取消使向所述存储器的访问停止的处理。5根据权利要求2所述的数据处理装置,其中,所述指令高速缓存具有所述存储器的总线宽度的N倍的容量,所述停止处理部使向所述存储器访问的次数最大停止N1次。6根据权利要求1所述的数据处理装置,其中,所述运算处理部包含指令队列,其从所述存储器预先读出并存储指令;指令解码器,其依次读出存储在所述指令队列的指令并对指令进行解码;指令执行部,其执行在所述指令解码器中解码得到的指令;指令取出接口部,其将来自所述指令队列的读出请求向所述存储器输出;以及预解码器,其判断在所述指令解码器中接下来要解码的指令是否是。
6、分支指令,如果该指令是分支指令,则生成用于停止所述取出处理的停止信号,并将该停止信号向所述指令取出接口部输出,所述取出处理控制部是所述预解码器。7根据权利要求6所述的数据处理装置,其中,所述预解码器在使所述取出处理停止后,当所判断出的分支指令在所述指令执行部中权利要求书CN104106046A2/2页3执行时,再次开始所述取出处理。8根据权利要求6所述的数据处理装置,其中,所述预解码器通过比较在所述指令解码器中接下来要解码的指令和预先存储的停止对象指令,来判断指令是否是分支指令。9根据权利要求6所述的数据处理装置,其中,所述存储器在读出指令时需要预定的等待期间。10根据权利要求8所述的数据处理。
7、装置,其中,所述预解码器在指令长度根据各指令而不同的情况下,根据通过在所述指令解码器中解码指令的结果所得到的指令长度,从所述指令队列选择并读出接下来要解码的指令。11根据权利要求10所述的数据处理装置,其中,所述预解码器具有关于所读出的多个指令分别并行判断是否是分支指令的多个子预解码器。12根据权利要求8所述的数据处理装置,其中,所述预解码器按每个所述停止对象指令而附加有位信息,所述位信息使得即使在判断成所述指令解码器中接下来要解码的指令为分支指令的情况下,也不生成用于停止所述取出处理的停止信号。13根据权利要求1所述的数据处理装置,其中,所述指令高速缓存包含比较器,该比较器在所述运算处理部中。
8、执行分支指令时,比较向所述存储器访问的地址和预先存储的指令的地址,并在一致的情况下,判断成存储有相对于该分支指令来说的分支目标的指令,所述运算处理部包含指令队列,其从所述存储器预先读出并存储指令;指令解码器,其依次读出存储在所述指令队列中的指令,并对指令进行解码;指令执行部,其执行在所述指令解码器中解码得到的指令;以及指令取出接口部,其将来自所述指令队列的读出请求向所述存储器以及所述指令高速缓存输出,所述取出处理控制部包含停止处理部,其当所述比较器判断成在所述指令高速缓中存储有分支目标的指令的情况下,生成用于在将存储于所述指令高速缓存中的指令读出的期间停止所述取出处理的停止信号,并将该停止信号。
9、向所述存储器输出;以及预解码器,其设置在所述运算处理部内,判断在所述指令解码器中接下来要解码的指令是否是分支指令,如果该指令是分支指令,则生成用于停止所述取出处理的停止信号,并将该停止信号向所述存储器输出。权利要求书CN104106046A1/15页4数据处理装置技术领域0001本发明涉及数据处理装置,例如,涉及具有存储器和指令高速缓存INSTRUCTIONCACHE的数据处理装置,其中,所述存储器存储通过多个指令描述的程序,所述指令高速缓存仅在执行分支指令时动作。背景技术0002在CPUCENTRALPROCESSINGUNIT中央处理单元等数据处理装置中,除了设有存储程序的存储器以外,还设。
10、有暂时存储程序的指令的指令高速缓存,以实现处理的高性能化。但是,数据处理装置在要执行的指令并未包含在指令高速缓存中的脱靶MISS时,产生补偿PENALTY。为了实现数据处理装置的处理的高性能化,该补偿不能被忽略。因此,在数据处理装置中,提出有通过对存储器以及指令高速缓存的双方进行访问来避免补偿的构成。0003此外,具有指令高速缓存的数据处理装置的构成在专利文献1日本特开2008052518号公报以及专利文献2日本特开2001142698号公报中公开。专利文献1中公开的CPU系统的动作条件是,CPU的动作速度是SDRAM的突发读取BURSTREAD时的动作速度以下。比较器在CPU处理分支指令时,。
11、判断在指令高速缓冲存储器中是否存储有分支目标的指令。当在指令高速缓冲存储器中存储有分支目标的指令的情况下,将该指令从指令高速缓冲存储器读出。0004在专利文献2中公开的CPU中,采用如下存储器访问方式在指令用存储器的访问的同时也进行主存储器的访问,无缝取出FETCH来自指令用存储器的指令代码和来自主存储器的指令代码。0005此外,在数据处理装置中,在从存储器预先读出并存储指令的指令队列中有空闲时,与执行指令无关地发生从存储器向指令队列读出指令的取出处理。关于该取出处理,在专利文献3日本2006048258号公报、专利文献4日本特开平06161750号公报、专利文献5日本特开2000357090。
12、号公报、以及专利文献6日本特开平05027972号公报中公开。0006在专利文献3公开的数据处理器中包含指令的取出控制部、保持通过取出控制部而被取出的指令的指令缓冲器、将保持在指令缓冲器中的指令按规定的顺序在流水线PIPELINE中执行的执行部。然后,取出控制部使用分支指令的指令地址,获得表示条件分支的预测方向和其准确度的预测信息,能够进行在条件分支指令中分支预测侧的指令的取出与分支非预测侧的指令的取出,同时根据预测信息选择性地停止分支非预测的指令的取出。0007专利文献4公开的CPU设置有提前分支条件检查电路,该提前分支条件检查电路在针对分支指令的预取出定时,检测标记TAG的状态,观察缓冲器。
13、或者条件代码中的零标志的内容,提前进行分支判断。0008专利文献5公开的CPU为了缩短在基于条件分支指令而产生高速缓存脱靶时向主说明书CN104106046A2/15页5存储器的访问时间,内置有分支预测机构。0009专利文献6公开的CPU使指令检测部介于指令队列与存储器之间,在指令队列读入的指令中含有分支指令的情况下,直至该分支指令的分支目标地址确定之前,暂停从存储器读出指令。0010现有技术文献0011专利文献0012专利文献1日本特开2008052518号公报0013专利文献2日本特开2001142698号公报0014专利文献3日本特开2006048258号公报0015专利文献4日本特开平。
14、06161750号公报0016专利文献5日本特开2000357090号公报0017专利文献6日本特开平05027972号公报发明内容0018但是,在现有的数据处理装置中,为了避免在要执行的指令未包含在指令高速缓存的脱靶时的补偿,向存储器以及指令高速缓存双方进行访问。因此,由于在现有的数据处理装置中,指令包含在指令高速缓存中而命中HIT时也向存储器进行访问,存在总是会消耗向存储器以及指令高速缓存双方访问的电力这样的问题。0019此外,在现有的数据处理装置中,在从存储器预先读出并存储指令的指令队列中有空闲时,与执行指令无关地发生从存储器读出指令的取出处理。因此,在现有的数据处理装置中,由于从存储器。
15、读出不需要的指令,所以因无用的存储器访问而消耗电力。特别是,在即将分支指令之前进行了取出处理的情况下,会从存储器读出根据分支的结果而不需要执行的指令,因此,存在因无用的存储器访问而导致电力消耗的问题。0020其它的课题与新的特征将从本说明书的描述以及添加附图而得以明确。0021用于解决课题的手段0022根据一个实施方式,数据处理装置具有存储器、指令高速缓存、运算处理部、取出处理控制部。存储器存储通过多个指令描述的程序。指令高速缓存仅在执行包含在程序中的分支指令时动作,从存储器读出并预先存储比存储器的总线宽度大的容量的数据。运算处理部向存储器以及指令高速缓存的双方访问,使从存储器或者指令高速缓存。
16、读出的指令在流水线中执行。取出处理控制部根据在运算处理部中执行的分支指令,生成用于停止从存储器读出命令的取出处理的停止信号,向存储器输出。0023发明效果0024根据所述一个实施方式,数据处理装置能够减少用于向存储器访问的电力的消耗。尤其是,数据处理装置能够减少在向存储器以及指令高速缓存的双方访问时消耗的电力、用于从存储器读出根据分支的结果而不需要执行的指令的取出处理中消耗的电力。附图说明0025图1是表示实施方式1涉及的数据处理装置的构成的框图。0026图2是表示实施方式1涉及的数据处理装置的指令高速缓存的进一步详细构成的说明书CN104106046A3/15页6框图。0027图3表示实施方。
17、式1涉及的数据处理装置的停止处理部的进一步详细构成的框图。0028图4是用于说明实施方式1涉及的数据处理装置的动作的时序图。0029图5是用于说明实施方式1涉及的数据处理装置的基于分支通知而进行的动作的时序图。0030图6是表示实施方式2涉及的数据处理装置的构成的框图。0031图7是表示实施方式2涉及的数据处理装置的指令高速缓存的进一步详细构成的框图。0032图8是用于说明实施方式2涉及的数据处理装置的动作的时序图。0033图9是表示实施方式3涉及的数据处理装置的构成的框图。0034图10是用于说明在不含有预解码器的构成的数据处理装置中预取出处理的时序的时序图。0035图11是表示实施方式3涉。
18、及的数据处理装置的指令队列以及预解码器的构成的框图。0036图12是用于说明实施方式3涉及的数据处理装置中预取出处理的时序的时序图。0037图13是用于说明实施方式3涉及的数据处理装置中执行预取出处理的条件分支指令的情况下的时序的时序图。0038图14是用于说明实施方式4涉及的数据处理装置中预取出处理的时序的时序图。0039图15是表示实施方式5涉及的数据处理装置的指令队列以及预解码器的构成的框图。0040图16是表示实施方式5的变形例涉及的数据处理装置的指令队列以及预解码器的构成的框图。0041图17是表示实施方式6涉及的数据处理装置的预解码器的构成的框图。0042图18是用于说明实施方式6。
19、涉及的数据处理装置中预取出处理的时序的时序图。0043图19表示实施方式7涉及的数据处理装置的构成的框图。0044图20是用于说明实施方式7涉及的数据处理装置的动作的时序图。具体实施方式0045以下,关于本发明涉及的实施方式参照附图进行说明。0046实施方式10047图1是表示实施方式1涉及的数据处理装置的构成的框图。图1所示的数据处理装置100包含CPU1、存储器2、指令高速缓存3、以及停止处理部4,从CPU1向存储器2以及指令高速缓存3的双方访问,从存储器2或者指令高速缓存3读出指令取出处理。数据处理装置100向存储器2以及指令高速缓存3双方访问,由此减少高速缓存脱靶的补偿。0048CPU。
20、1能够在流水线中执行从存储器2以及指令高速缓存3读出的指令。此外,CPU1在向存储器2以及指令高速缓存3访问时,向存储器2以及指令高速缓存3输出进行指令的读出的请求和读取目标的指令的地址。进而,CPU1在读出的指令为分支指令的情况下,输出分支通知。说明书CN104106046A4/15页70049存储器2存储通过多个指令描述的程序。存储器2基于来自CPU1的请求以及地址,将在该地址存储的指令向CPU1输出。用于从存储器2向CPU1输出指令的总线宽度为64位。0050指令高速缓存3仅在执行包含在程序中的分支指令时动作,将比存储器2的总线宽度大容量的数据从存储器2读出并预先存储。具体来说,指令高速。
21、缓存3能够存储相当于存储器2的总线宽度的2倍的128位的数据。然后,指令高速缓存3将所存储的数据分成64位的前半部分数据和64位的后半部分数据来存储。此外,存储在前半部分数据和后半部分数据中的指令是连续指令。0051进而,指令高速缓存3将所存储的指令的地址作为TAGADDR信息而存储。此外,指令高速缓存3含有比较从CPU1请求的指令的地址和在TAGADDR信息中存储的地址的比较器31。0052比较器31在CPU1中执行分支指令时,比较对存储器2进行访问的地址从CPU1请求的指令的地址和预先存储的指令的地址TAGADDR信息中存储的地址。然后,比较器31利用在指令高速缓存3中存储的指令的连续性,。
22、判断相对于从CPU1请求的指令的分支目标的指令存储在指令高速缓存3中。具体来说,比较器31在向存储器2访问的地址与存储在前半部分数据中的指令的地址一致的情况下,判断为分支目标的指令存储在后半部分数据中。0053图2是表示实施方式1涉及的数据处理装置100的指令高速缓存3的进一步详细构成的框图。图2所示的比较器31包含地址比较/命中判断部311、命中量计数器312。地址比较/命中判断部311通过来自CPU1的请求而被起动,比较向存储器2访问的地址和存储在TAGADDR信息中的地址,在两地址一致的情况命中时下输出命中的信息,在不一致的情况脱靶时下,输出脱靶的信息。0054命中量计数器312在向存储。
23、器2访问的地址与存储在前半部分数据中的指令的地址一致的情况下,输出命中量“2”。此外,命中量计数器312在向存储器2访问的地址与存储在后半部分数据中的指令的地址一致的情况下,输出命中量“1”。另外,命中量是表示CPU1能够向指令高速缓存3访问几次来读出数据的值。具体来说,在命中量为“2”的情况下,CPU1向指令高速缓存3进行2次访问而能够读出前半部分数据与后半部分数据。此外,在命中量“1”的情况下,CPU1向指令高速缓存3进行1次访问而仅能够读出后半部分数据。0055停止处理部4在比较器31判断为在指令高速缓存3中存储有分支目标的指令的情况下,生成用于在读出存储在指令高速缓存3中的指令的期间停。
24、止取出处理的停止信号,向存储器2输出。0056图3是表示实施方式1涉及的数据处理装置100的停止处理部4的进一步详细构成的框图。停止处理部4包含剩余停止量计数器41。剩余停止量计数器41通过来自CPU1的请求而被起动,基于来自指令高速缓存3的命中或者脱靶的信息、命中量,设置剩余停止量计数器量,当该剩余停止量计数器量为“0”时生成停止信号,并向存储器2输出。0057具体来说,剩余停止量计数器41根据来自指令高速缓存3的命中或者脱靶的信息、命中量而计算剩余停止量计数器量的初始值。例如,剩余停止量计数器41在从指令高速缓存3接收命中的信息和命中量“2”的情况下,将停止量计数器量设置为“1”,在从指令。
25、高速缓存3接收命中的信息和命中量“1”的情况下,将停止量计数器量设置为“0”。设置了说明书CN104106046A5/15页8初始值的剩余停止量计数器41在每次有来自CPU1的请求时,使停止量计数器量每次下降“1”。另外,在剩余停止量计数器41从CPU1接收分支信号的情况下,停止量计数器量无论是什么值都设为“0”,不生成停止信号。0058另外,数据处理装置100使向存储器2以及指令高速缓存3双方访问并读出的指令在选择器5中选择某一方的指令,向CPU1读出。例如,选择器5在从存储器2以及指令高速缓存3读出的指令相同的情况下,选择从指令高速缓存3读出的指令,在从存储器2以及指令高速缓存3读出的指令。
26、不同的情况下,选择从存储器2读出的指令。0059接下来,关于本实施方式1涉及的数据处理装置100的动作进行说明。图4是用于说明实施方式1涉及的数据处理装置100的动作的时序图。在图4所示的时序图中,分别示出了CPU1的时钟信号、读出目标地址、命中信息、命中量、停止信号、以及向存储器2的访问信号的波形。0060针对CPU1的一个时钟信号而使读出目标的指令的地址的一个地址从CPU1向存储器2以及指令高速缓存3输出。在图4所示的例子中,读出目标的指令的地址按地址A、地址A1、地址A2、地址A3、地址A4、以及地址A5的顺序,从CPU1向存储器2以及指令高速缓存3输出。0061首先,指令高速缓存3分别。
27、向前半部分数据存储地址A1的指令,向后半部分数据存储地址A2的指令。然后,比较器31在作为读出目标的指令的地址而接收到地址A1的情况下,比较所接收的地址A1和在TAGADDR信息中存储的地址。由于接收到的地址A1与在前半部分数据中存储的指令的地址一致,所以比较器31能够通过指令的连续性判断存储在后半部分数据中的指令的地址为地址A2。因此,比较器31将命中信息以及命中量“2”向停止处理部4输出。即,如图4所示,在读出目标的指令的地址是地址A1的定时,命中信息为“H”电平,命中量为“2”。0062由于在后半部分数据存储了地址A2的指令,所以停止处理部4能够在从指令高速缓存3读出地址A2的指令的期间。
28、停止向存储器2的访问。因此,剩余停止量计数器41在从比较器31指令高速缓存3接收到命中信息和命中量“2”时,将停止量计数器量设为“1”,在与向存储器2访问1次相当的期间,向存储器2输出停止信号。即,如图4所示,在读出目标的指令的地址为地址A2的定时,停止信号设为“H”电平。0063存储器2通过图1所示的运算处理部6而被输入对停止信号的反转信号和来自CPU1的请求的信号进行了AND运算而得到的信号作为向存储器2的访问信号。即,在来自CPU1的请求的信号为“H”电平,停止信号为“L”电平的情况下,向存储器2的访问信号为“H”电平,当停止信号为“H”电平时,向存储器2的访问信号为“L”电平。如图4所。
29、示,由于在读出目标的指令的地址为地址A2的定时,停止信号为“H”电平,所以向存储器2的访问信号为“L”电平。0064当向存储器2的访问信号为“L”电平时,停止从CPU1向存储器2的访问,数据处理装置100能够在从CPU1向存储器2的访问停止的期间减少消耗电力。0065如前所述,指令高速缓存3根据指令的连续性,分别向前半部分数据存储地址A1的指令,向后半部分数据存储地址A2的指令。但是,在CPU1执行地址A1的指令的结果是在接下来要读出的指令的地址为地址B的情况下,不能停止从CPU1向存储器2的访问。因此,CPU1对停止处理部4输出分支通知,取消停止信号为“H”电平。说明书CN104106046。
30、A6/15页90066图5是用于说明实施方式1涉及的数据处理装置100的基于分支通知进行的动作的时序图。在图5所示的时序图中,分别示出CPU1的时钟信号、读出目标地址、命中信息、命中量、停止信号、以及向存储器2的访问信号的波形。0067针对CPU1的一个时钟信号而使读出目标的指令的地址的一个地址从CPU1向存储器2以及指令高速缓存3输出。在图5所示的例子中,读出目标的指令的地址以地址A、地址A1、地址B、地址B1、地址B2、以及地址B3的顺序,从CPU1向存储器2以及指令高速缓存3输出。即,CPU1执行地址A1的指令的结果是,接下来读出的指令的地址从地址A2、地址A3、地址A4、以及地址A5的。
31、顺序变更为地址B、地址B1、地址B2、以及地址B3的顺序。0068但是,指令高速缓存3按照指令的连续性,分别向前半部分数据存储地址A1的指令,向后半部分数据存储地址A2的指令。然后,比较器31在作为读出目标的指令的地址而接收到地址A1的情况下,比较所接收的地址A1和在TAGADDR信息中存储的地址。由于所接收的地址A1与在前半部分数据中存储的指令的地址一致,所以比较器31通过指令的连续性而判断为在后半部分数据中存储的指令的地址为地址A2。因此,比较器31将命中的信息以及命中量“2”向停止处理部4输出。即,如图5所示,在读出目标的指令的地址为地址A1的定时,命中信息为“H”电平,命中量为“2”。。
32、0069停止处理部4进行将停止信号向存储器2输出的处理。但是,当地址A1的指令分支成地址B的指令时,接下来从CPU1请求的指令的地址不是地址A2,而是地址B。因此,若从CPU1向存储器2的访问停止,则CPU1进行高速缓存脱靶的补偿。因此,CPU1为了避免高速缓存脱靶,执行指令的结果是,在接下来读出的指令是分支的情况下,将分支通知向停止处理部4输出,取消使停止信号向存储器2输出的处理。即,如图5所示,在读出目标的指令的地址为地址A2的定时,取消停止信号为“H”电平。0070存储器2通过如图1所示的运算处理部6而被输入对停止信号的反转信号和来自CPU1的请求的信号进行了AND运算而得到的信号作为向。
33、存储器2的访问信号。因此,由于来自CPU1的请求的信号为“H”电平,停止信号为“L”电平,所以向存储器2的访问信号被维持为“H”电平的状态。0071当向存储器2的访问信号被维持在“H”电平的状态时,不停止从CPU1向存储器2的访问,数据处理装置100从CPU1向存储器2和指令高速缓存3双方访问,能够减少高速缓存脱靶的补偿。0072如以上那样,本实施方式1涉及的数据处理装置100在比较器31判断为向指令高速缓存3存储分支目标的指令的情况下,停止处理部4生成用于在读出存储于指令高速缓存3的指令的期间,停止取出处理的停止信号,向存储器2输出。因此,数据处理装置100在停止从CPU1向存储器2的访问的。
34、期间,能够减少消耗电力。0073另外,在数据处理装置100中,关于使存储器2形成在与CPU1相同的半导体衬底上的情况单芯片的半导体器件进行了说明,但也可以使存储器2形成在存在于CPU1的外部的不同半导体衬底上。但是,在使存储器2形成在存在于CPU1的外部的不同半导体衬底上的情况下,数据处理装置100有必要设置用于连接CPU1与存储器2的CPU接口。0074此外,数据处理装置100不限定于指令长度为固定的情况,也可以是指令长度可变的情况。说明书CN104106046A7/15页100075实施方式20076在实施方式1涉及的数据处理装置100中,关于包含能够存储相当于存储器2的总线宽度的2倍的数。
35、据的指令高速缓存3的构成进行了说明。但是,能够存储在指令高速缓存3中的数据的容量不限定于存储器2的总线宽度的2倍。因此,在本实施方式2涉及的数据处理装置中,关于包含与实施方式1相比能够存储的数据更大的指令高速缓存的构成进行说明。0077图6是表示实施方式2涉及的数据处理装置的构成的框图。图6所示的数据处理装置200包含CPU1、存储器2、指令高速缓存3A、以及停止处理部4,从CPU1向存储器2以及指令高速缓存3A的双方访问,从存储器2或者指令高速缓存3读出指令取出处理。此外,对于数据处理装置200与实施方式1涉及的数据处理装置100相同的构成要素,标注相同的附图标记,不重复详细的说明。0078。
36、指令高速缓存3A仅在执行包含在程序中的分支指令时动作,从存储器2读出并预先存储比存储器2的总线宽度大的容量的数据。具体来说,指令高速缓存3A能够存储相当于存储器2的总线宽度的4倍的256位的数据。然后,指令高速缓存3A将所存储的数据按每64位而分成D0数据、D1数据、D2数据、以及D3数据这4个数据来存储。另外,在D0数据D3数据中存储的指令是连续指令。0079进而,指令高速缓存3A将所存储的指令的地址存储为TAGADDR信息。此外,指令高速缓存3A包含比较器31A,该比较器31A比较从CPU1请求的指令的地址与存储在TAGADDR信息中的地址。0080当在CPU1中执行分支指令时,比较器31。
37、A比较向存储器2访问的地址从CPU1请求的指令的地址与预先存储的指令的地址存储在TAGADDR信息中的地址。然后,比较器31A利用在指令高速缓存3A中存储的指令的连续性,判断相对于从CPU1请求的指令的分支目标的指令存储在指令高速缓存3A中。具体来说,比较器31A在向存储器2访问的地址与在D0数据中存储的指令的地址一致的情况下,判断为分支目标的指令存储在D1数据D3数据中。0081图7是表示实施方式2涉及的数据处理装置200的指令高速缓存3A的进一步详细构成的框图。图7所示的比较器31A包含地址比较/命中判断部311A、命中量计数器312A。地址比较/命中判断部311A通过来自CPU1的请求而。
38、被起动,比较向存储器2访问的地址与存储在TAGADDR信息中的地址,在两地址一致的情况命中的情况下输出命中的信息,在不一致的情况下输出脱靶的信息。0082命中量计数器312A在向存储器2访问的地址与在D0数据中存储的指令的地址一致的情况下,输出命中量“4”。命中量计数器312A在向存储器2访问的地址与在D1数据中存储的指令的地址一致的情况下,输出命中量“3”。输出命中量“4”。命中量计数器312A在向存储器2访问的地址与在D2数据中存储的指令的地址一致的情况下,输出命中量“2”。输出命中量“4”。命中量计数器312A在向存储器2访问的地址与在D3数据中存储的指令的地址一致的情况下,输出命中量“。
39、1”。另外,命中量是表示CPU1能够向指令高速缓存3A访问几次来读出数据的值。具体来说,在命中量为“4”的情况下,CPU1向指令高速缓存3A访问4次,能够读出D1数据D3数据的指令。0083接下来,关于本实施方式2涉及的数据处理装置200的动作进行说明。图8是用说明书CN104106046A108/15页11于说明实施方式2涉及的数据处理装置200的动作的时序图。在图8所示的时序图中,分别示出了CPU1的时钟信号、读出目标地址、命中信息、命中量、停止信号、以及向存储器2的访问信号的波形。0084针对CPU1的一个时钟信号而使读出目标的指令的地址的一个地址从CPU1向存储器2以及指令高速缓存3A。
40、输出。在图8所示的例子中,读出目标的指令的地址按地址A、地址A1、地址A2、地址A3、地址A4、以及地址A5的顺序,从CPU1向存储器2以及指令高速缓存3A输出。0085首先,指令高速缓存3A分别向D0数据存储地址A1的指令、向D1数据存储地址A2的指令、向D2数据存储地址A3的指令、以及向D3数据存储地址A4的指令。然后,比较器31A在作为读出目标的指令的地址而接收到地址A1的情况下,比较接收的地址A1与存储在TAGADDR信息中的地址。由于接收的地址A1与存储在D0数据中的指令的地址一致,所以比较器31A根据指令的连续性,能够判断存储在D1数据D3数据中的指令的地址是地址A2地址A4。因此。
41、,比较器31A将命中的信息以及命中量“4”向停止处理部4输出。即,如图8所示,在读出目标的指令的地址是地址A1的定时,命中信息为“H”电平,命中量为“4”。0086由于在D1数据D3数据中存储有地址A2地址A4的指令,所以停止处理部4能够在从指令高速缓存3读出地址A2地址A4的指令的期间,停止向存储器2的访问。因此,剩余停止量计数器41在从比较器31A指令高速缓存3A接收到命中的信息和命中量“4”时,将停止量计数器量设置为“3”,在与向存储器2访问3次相当的期间,将停止信号向存储器2输出。即,如图8所示,在读出目标的指令的地址为地址A2地址A4的定时,停止信号为“H”电平。0087存储器2通过。
42、图1所示的运算处理部6而被输入对停止信号的反转信号和来自CPU1的请求的信号进行了AND运算而得到的信号作为向存储器2的访问信号。即,在来自CPU1的请求的信号为“H”电平,停止信号为“L”电平的情况下,向存储器2的访问信号为“H”电平,停止信号为“H”电平时为“L”电平。如图8所示,在读出目标的指令的地址是地址A2地址A4的定时,由于停止信号为“H”电平,所以向存储器2的访问信号为“L”电平。0088当向存储器2的访问信号为“L”电平时,从CPU1向存储器2的访问停止,数据处理装置200能够在从CPU1向存储器2的访问停止的期间,减少消耗电力。0089如以上那样,关于本实施方式2涉及的数据处。
43、理装置200,指令高速缓存3A具有存储器2的总线宽度的4倍的容量,停止处理部4使向存储器2访问的次数最大停止3次,因此,与本实施方式1相比,能够使停止向存储器2的访问的期间变长,使消耗电力更加减少。0090另外,指令高速缓存3A的容量不限定于4倍,也可以构成为,具有存储器的总线宽度的N倍的容量,停止处理部4使向存储器2访问的次数最大停止N1次。0091实施方式30092在实施方式1以及2涉及的数据处理装置100、200中,关于利用设置在CPU1的外部的停止处理部4取出处理控制部来停止向存储器2的访问的构成进行了说明。但是,CPU1在内部所包含的指令队列中有空闲的情况下,向存储器2访问,进行从该。
44、存储器2读出指令的预取出处理。因此,在本实施方式3涉及的数据处理装置中,关于在CPU的内部设置说明书CN104106046A119/15页12取出处理控制部来停止向存储器2的访问的构成进行说明。0093图9是表示本实施方式3涉及的数据处理装置的构成的框图。如图9所示的数据处理装置300包含CPU1以及CPU接口7,经由CPU接口7,从CPU1向存储器2访问,从存储器2读出指令预取出处理。另外,对于数据处理装置300与实施方式1涉及的数据处理装置100相同的构成要素,标注相同的附图标记,不重复进行详细的说明。0094数据处理装置300即使向存储器2的访问需要数个等待WAIT的等待期间,只要指令提。
45、供能力足够,则通常情况下的性能就不会降低。因此,数据处理装置300只要仅在执行分支指令时容许性能恶化即可。0095CPU1包含指令队列11、指令解码器12、数据通道13、指令取出接口部14、以及预解码器15。指令队列11是用于从存储器2事先读出指令预取出处理并存储的存储部。指令解码器12是依次读出存储在指令队列的指令,对指令进行解码的CPUCNT部的一部分。数据通道13是执行在指令解码器12中解码得到的指令的指令执行部。指令取出接口部14使从指令队列11的读出请求IFREQ向存储器2输出。0096预解码器15判断在指令解码器12中接下来要解码的指令是否是分支指令,如果该指令是分支指令,则生成用。
46、于停止预取出处理的停止信号,向指令取出接口部14输出。即,预解码器15能够作为取出处理控制部而发挥作用,停止向存储器2的访问。0097在说明本实施方式3涉及的数据处理装置300的动作前,说明不包含预解码器15的构成的数据处理装置的动作。图10是用于说明在不包含预解码器15的构成的数据处理装置中预取出处理的时序的时序图。图10的A是在执行分支指令的定时进行预取出处理的例子,图10的B是在执行分支指令前的定时进行预取出处理的例子。0098在此,在图10所示的时序图中,图示有分支指令、分支目标指令、以及预取出处理各自的时序。另外,在分支指令以及分支目标指令中,包含指令取出阶段IF、指令解码阶段D、以。
47、及执行阶段E。在指令取出阶段IFINSTRUCTIONFETCH中,进行将在指令队列中存储的指令向指令解码器读出的处理。在指令解码阶段DDECODE中,进行从指令取出阶段IF提供的指令的解码处理。在执行阶段EEXECUTE中,进行在指令解码阶段D中被解码得到的指令的执行。例如,进行算术逻辑计算和/或分支判断处理等。0099如图10所示,CPU分别在1时钟中处理分支指令以及分支目标指令的指令取出阶段IF以及指令解码阶段D,在2个时钟中处理以1个等待向存储器访问的预取出处理。因此,如图10的A所示的时序图示出那样,CPU如果在指令取出阶段IF开始的定时开始预取出处理的执行,就能够从执行阶段E的第1。
48、个时钟开始执行分支目标指令的预取出处理。0100如果能够从执行阶段E的第1个时钟开始执行分支目标指令的预取出处理,CPU就能够从分支指令的执行阶段E的第3个时钟开始执行分支目标指令的指令取出阶段IF。即,CPU能够将分支目标指令的指令取出阶段IF成为执行等待的期间IFSTALL抑制为1个时钟。0101但是,如图10的B所示的时序图示出那样,如果CPU在指令解码阶段D开始的定时开始预取出处理的执行,就不能从执行阶段E的第1个时钟开始执行分支目标指令的预取出处理。因此,由于CPU在执行阶段E的第1个时钟通过其它指令的预取出处理向存储器进行访问,所以不能为了执行分支目标指令的预取出处理而向存储器访问。
49、。因此,由于CPU进行的分支目标指令的预取出处理从分支指令的执行阶段E的第2个时钟开始,所以分说明书CN104106046A1210/15页13支目标指令的指令取出阶段IF成为执行等待的期间IFSTALL需要2个时钟。0102此外,在分支指令的指令解码阶段D之前开始的预取出处理由于从存储器读出与分支目标指令不同的指令,所以从存储器读出执行所不需要的指令,是无用的预取出处理。0103于是,在本实施方式3涉及的数据处理装置300中设置预解码器15,导入在分支指令前的时钟停止预取出处理的机构,因此,减少了向存储器2的不需要的访问,减少消耗电力。0104图11是表示实施方式3涉及的数据处理装置300的指令队列11以及预解码器15的构成的框图。预解码器15包含存储部151、比较部152、以及运算部153。存储部151预先存储有需要停止预取出处理的分支指令停止对象指令。存储部151存储有例如从分支指令1至分支指令N的N个分支指令。0105比较部152比较从指令队列11读出的对象指令与在存储部151中预先存储的分支指令停止对象指令。运算部153运算将对象指令和在存储部151中存储的分支指令的每一个进行比较而得到的结果,生成停止信号。在运算部153中生成的停止信号在放大器154中被放大至预定的电压电平,向指令取出接口部14输出。0106另外,指令队列11具。