数据处理装置制造方法及图纸

技术编号:2919315 阅读:138 留言:0更新日期:2012-04-11 18:40
依赖关系存储部分M,表示各输出地址和输出值将哪个输入地址和输入值作为起源。行间逻辑与比较部分MR,进行存储在依赖关系存储部分M中的各行要素之间的逻辑与计算,并设定由输出模式和输入模式构成的输入输出组,其中,所述输出模式包括一个以上的输出地址和输出值,所述输入模式包括一个以上的输入地址和输入值。由此,能够提供在进行再利用的基础上将更准确的输入输出组登录在指令区间存储装置中的数据处理装置。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种从主存储装置读取指令行以及/或者值,并将进行运算处理的结果写入主存储装置处理的数据处理装置
技术介绍
一直以来,对于包括CPU(Central Processing Unit中央处理器)的微处理器,大家一直在进行着有关运算速度的高速化技术的研究开发。作为高速度化的技术,可以举出例如流水线操作、超标量体系结构(superscalar)、无序执行以及寄存器重命名技术等。流水线操作技术是将指令的执行处理分解为几个阶段,并对多个指令进行流水线作业式的同时处理的技术。超标量体系结构技术是准备两组以上的指令执行电路,同时并行执行多个指令的技术。无序执行技术是忽视指令的记述顺序而从若干个连续的指令当中找到能够先执行的指令并对其进行先行处理的技术。寄存器重命名技术是,例如在CISC(Complex Instruction Set Computer复杂指令集计算机)型号的芯片里,通过保持与历来芯片的指令互换性的同时增加通用寄存器的数量,来增大进行并行处理的概率的技术。像这样,谋求微处理器的运算速度的高速化时,将指令并行而执行是非常重要。但是在程序当中包括有根据某个指令的结果执行不同指令这样的依赖关系,换句话说包括有分支指令,大部分都会是这种情况。包括在这种这样的有分支指令的情况下时,如果通过并行处理进行先行处理的话,则发生存在以下的问题根据由于分支结果使得先行处理的内容变为无效的情况,从而存在运算速度高速化的效果也会变小的问题。于是,在程序中存在分支时,降低由于预测分支对象而先行处理变为无效的概率并提高并行处理的效果的技术,所谓的有关分支预测的研究被大量地进行着。但是,根据分支预测投机性地进行先行处理时,一般会遇到以下问题第一个问题是,因为需要经常验证预测是否必要,故不能减少先行指令列的执行时间本身;第二个问题是,由于需要对基于错误预测的一连串的全部先行运算结果进行无效化,故要增加能够一次性地进行投机性的先行处理的指令数量,需要相应的硬件成本;第三个问题是,指令之间的依赖关系越多,进行多重的先行处理的必要性就越大,并且预测正当性的验证处理、以及基于错误预测的处理的无效化处理就会变得极其复杂。另一方面,作为与分支预测技术不同的高速化技术,也有人提出称为值再利用的技术。该值再利用技术是如下的技术将关于程序一部分的输入值和输出值登录在再利用表中,对同样的位置进行再次执行时,如果输入值是登录在再利用表中的值,则输出被登录的输出值。作为根据这种值再利用的效果,可以举出以下效果(1)输入值如果和登录在再利用表中的输入值一致,则不需要验证执行结果。(2)只根据输入值和输出值总数来决定硬件成本,并可以省略的指令列的长度不被限制。(3)指令之间的依赖关系的多少,不会影响再利用机构的复杂程度。(4)能够削减冗长的加载/储存指令的同时,也能实现与此相伴的消耗功率的削减。在非专利文献(信息处理学会论文志高性能计算系统,HPS5,pp.1-12,Sep.(2002),“根据函值再利用以及并行事先执行的高速化技术”(中岛康彦、绪方胜也、正西申悟、五岛正裕、森真一郎、北村俊明、富田真治)(发行日2002年9月15日)中,记载了关于程序中的函数进行值再利用的技术。该现有技术中,利用了输入模块一般按照ABI(Application Binary Interface应用二进制接口)做成的事实,特别是利用了SPARC(Scalable Processor ARChitecture可缩放处理机体系结构)ABI。从而,通过特定该ABI中的函数的输入输出来实现值再利用。即不需要加入因用于值再利用的编译的专用指令,从而能够适用现有的输入模块。还有,通过动态性地掌握了函数的多重构造,将函数内局部寄存器和栈上的局部变量从再利用中的输入输出值去除,由此使得效率提高。特别是对于函数,和函数的复杂程度无关地,使得最多6个寄存器输入、最多4个寄存器输出、以及不包括局部变量的最小限度的主存储器值登录所产生的再利用和事先执行变为可能。以下关于现有技术进行详细的说明。首先,将单一的函数作为对象,明确一下什么是输入、什么是输出,并对用于进行1等级再利用所需要的机构进行说明。在程序中,函数一般都形成有多重结构。将函数A(Function-A)调出函数B(Function-B)的结构图表示在如图46(a)中。全局变量(Globals)能成为函数A的输入输出(Ain/Aout)以及函数B的输入输出(Bin/Bout)。函数A的局部变量(Locals-A)不是函数A的输入输出,但通过指针可以成为函数B的输入输出。还有,从函数A到函数B的参数(Args)可以成为向函数B的输入,而从函数B到函数A的返回值(Ret.Vat.)可以成为从函数B的输出。另外,函数B的局部变量(Locals-B)不包括在函数A和函数B的输入输出中。为了不依赖前后关系而再利用函数B,在执行函数B时,必须只将函数B的输入输出Bin/Bout作为输入输出进行登录。在此,将执行如图46(a)所示的程序结构时的主存储器中的内存印象图表示在图46(b)中。在这个内存印象图中,不包括Bin/Bout的区域只有Locals-B。所以,为了识别Bin/Bout,必须要分别确定Globals和Locals-B的分界、以及Locals-B和Locals-A的分界。对于前者,一般利用OS(Operating System操作系统)决定执行时的数据大小和栈大小的上限,而能够根据OS设定的界限(LIMIT)来确定Globals和Locals-B的分界。对于后者,能够通过利用B被调出之前的栈指针的值(SP in A)来确定Locals-B和Locals-A的分界。接着,关于识别给出的主存储器地址是全局变量、或者是哪个函数的局部变量的方法进行说明。假设装入输入模块满足在SPARC ABI中所规定的以下条件。另外,%fp意味着帧指针,%sp意味着栈指针。(1)%sp以上的区域中,%sp+0~63为寄存器退避区域、%sp+68-91为参数退避区域,都不是函数的输入和输出。(2)返回结构体时,隐含参数(Implicit Arg.)被存储在%sp+64-67。(3)明示参数(Explicit Arg.)被放在寄存器%o0-5和%sp+92以上的区域。首先,为了区别全局变量和局部变量,一般利用OS决定执行时的数据大小和栈空间的上限,并假设如下事项(1)全局变量被放在LIMIT未满的区域。(2)%sp是不会变为LIMIT以下,而LIMIT~%sp的区域为无效。将在满足以上条件的情况下函数A调用函数B时的内存印象图中的参数和帧的概要表示在图47中。以下,参照该图,对于区别A的局部变量和B的局部变量的方法进行说明。在该图中,(a)表示A在执行中的状态。LIMIT未满的粗框部分中存储有指令(Instructions)和全局变量(Global Vars.),而有效的值被存储在%sp以上。在%sp+64中,结构体的起始地址作为B将结构体作为返回值时的隐含参数而被存储。对B明示的参数的最开始6个字母是被存储在寄存器%o0~5,第七个字母以后的字母被存储在%sp+92以上。将基址寄存器作为%sp的操作数%sp+92出现时,该区域是参数的第本文档来自技高网...

【技术保护点】
一种数据处理装置,进行从主存储装置中读取指令区间、且将运算处理的结果写入主存储装置的处理,其特征在于,包括:第一运算装置,其基于从上述主存储装置读取的指令区间来进行运算;寄存器,其当由上述第一运算装置对上述主存储装置进行读出以及写入 时被使用;输入输出生成装置,其生成输入输出组,该输入输出组由当通过上述第一运算装置来进行对指令区间的运算时的输入模式和输出模式构成;指令区间存储装置,其存储由上述输入输出生成装置所生成的输入输出组,上述第一运算装置,在执行指令区间时 ,如果该指令区间的输入模式与存储在上述指令区间存储装置中的输入模式一致,则进行将输出模式输出到寄存器以及/或者主存储装置的再利用处理,该输出模式与上述输入模式相对应地存储在上述指令区间存储装置中,上述输入输出生成装置,包括: 依赖关系存储部分,其表示包括在输出模式中的各个输出要素将包括在输入模式中的哪一个输入要素作为起源;输入输出组设定装置,其基于上述依赖关系存储部分中所存储的信息来设定由包括一个以上的上述输出要素的输出模式、和包括一个以上的上述输入要素 的输入模式构成的输入输出组。...

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:中岛康彦
申请(专利权)人:国立大学法人京都大学独立行政法人科学技术振兴机构
类型:发明
国别省市:JP[日本]

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

1
相关领域技术
  • 暂无相关专利