《用于微处理器的内存拷贝加速方法及装置.pdf》由会员分享,可在线阅读,更多相关《用于微处理器的内存拷贝加速方法及装置.pdf(24页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102968395 A(43)申请公布日 2013.03.13CN102968395A*CN102968395A*(21)申请号 201210493320.6(22)申请日 2012.11.28G06F 13/16(2006.01)G06F 9/38(2006.01)(71)申请人中国人民解放军国防科学技术大学地址 410073 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院(72)发明人石伟 任巨 邓宇 龚锐 郭御风张明 罗莉 马爱永 窦强王永文(74)专利代理机构湖南兆弘专利事务所 43008代理人赵洪 谭武艺(54) 发明名称用于微处理器的。
2、内存拷贝加速方法及装置(57) 摘要本发明公开了一种用于微处理器的内存拷贝加速方法及装置,方法步骤如下:1在微处理器增加内存拷贝单元;2)译码逻辑译码得到的内存拷贝指令发送给内存拷贝单元;内存拷贝单元通过相关检测部件检测新内存拷贝请求与其它内存拷贝请求之间的相关关系,将新内存拷贝请求及其相关关系缓存至请求队列;3)内存拷贝单元以页为单位执行当前内存拷贝请求并合并执行关联内存拷贝请求;装置包括专用于执行内存拷贝请求的内存拷贝单元和用于检测新内存拷贝请求与队列中其它内存拷贝请求之间的相关关系的相关检测部件。本发明具有内存拷贝性能高、硬件实现简单且代价小、扩展性好、兼容性强、并发性好、访存次数少、消。
3、耗功耗低的优点。(51)Int.Cl.权利要求书3页 说明书13页 附图7页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 3 页 说明书 13 页 附图 7 页1/3页21.一种用于微处理器的内存拷贝加速方法,其特征在于其实施步骤如下:1)预先在微处理器指令集中增加内存拷贝指令支持,在微处理器的指令执行流水线中增加专用于执行所述内存拷贝指令的内存拷贝单元;2)译码逻辑在进行译码时如果译码的指令为内存拷贝指令,则将内存拷贝指令转换为内存拷贝请求并发送给所述内存拷贝单元;所述内存拷贝单元接收译码逻辑发送的新内存拷贝请求,通过相关检测部件检测新内存拷贝请求与内存拷贝单元内用于缓。
4、存内存拷贝请求的请求队列中其它内存拷贝请求之间的相关关系,如果存在目的地址或者源地址与新内存拷贝请求的源地址相同的关联内存拷贝请求,则判定新内存拷贝请求存在具有相关关系的关联内存拷贝请求,当所述请求队列存在空闲项时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;3)所述内存拷贝单元从请求队列选择待执行的当前内存拷贝请求,与高速缓存及块表进行交互获取当前内存拷贝请求的物理地址,以页为单位执行当前内存拷贝请求;如果存在与当前内存拷贝请求具有相关关系的关联内存拷贝请求,则将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行。2.根据权利要求1所述的用于微处理器的内存拷贝加速方。
5、法,其特征在于:所述步骤2)中将新内存拷贝请求及其相关关系缓存至请求队列中时,所述请求队列中内存拷贝请求的内容域包括源地址、目的地址、拷贝长度、拷贝类型、源地址、目的地址、拷贝长度、有效位和关联标识位,其中源地址、目的地址、拷贝长度、拷贝类型与所述内存拷贝指令的内容相同;所述源地址表示未完成的源内存区域的起始地址,目的地址表示目的内存区域的起始地址,拷贝长度表示待拷贝长度; 所述源地址的初始值为源地址,目的地址的初始值为目的地址,拷贝长度的初始值为拷贝长度;所述有效位表示是否存在关联内存拷贝请求,有效位为1表示该内存拷贝请求与其之前的内存拷贝请求没有关联关系,可以由内存拷贝单元执行,有效位为0。
6、表示该内存拷贝请求与其之前的内存拷贝请求存在关联关系,目前还不能由内存拷贝单元单独执行,而由内存拷贝单元合并执行;所述关联标识位用于存储关联内存拷贝请求的编号;所述步骤3)中以页为单位执行当前内存拷贝请求时,建立用于存储当前进行的页拷贝操作的页拷贝记录的页拷贝状态表,页拷贝状态表中每一项页拷贝记录的内容域包括源页起始地址、目的页起始地址和拷贝长度信息。3.根据权利要求2所述的用于微处理器的内存拷贝加速方法,其特征在于,所述步骤3)的详细步骤如下:3.1)所述内存拷贝单元从请求队列选择有效位为1的当前内存拷贝请求,将当前内存拷贝请求根据虚拟存储器的页大小分解为多个页拷贝;3.2)所述内存拷贝单元。
7、与高速缓存及快表进行交互获取当前内存拷贝请求待执行页拷贝的物理地址;将待执行页拷贝的源页起始地址、目的页起始地址和拷贝长度信息建立页拷贝记录;3.3)更新当前内存拷贝请求在请求队列中的源地址、目的地址与长度,使源地址等于源地址减去待执行页拷贝的长度、目的地址 等于目的地址减去待执行页拷贝的长度,长度等于拷贝长度减去待执行页拷贝的长度;3.4)根据所述页拷贝状态表中记录的当前内存拷贝请求的待执行页拷贝访问高速缓存或外部存储器,以页为单位执行当前内存拷贝请求的页拷贝;同时所述内存拷贝单元扫权 利 要 求 书CN 102968395 A2/3页3描请求队列,如果请求队列中存在与当前内存拷贝请求存在相。
8、关关系的关联内存拷贝请求,则将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行;3.5)在待执行页拷贝执行完毕后,判断当前内存拷贝请求的所有页拷贝是否已经全部完成,如果还有页拷贝未完成则跳转执行步骤3.2),否则跳转执行下一步;3.6)发出信号,表明本次内存拷贝请求完成,并将与本次内存拷贝请求合并执行的关联内存拷贝请求的有效位设为1。4.根据权利要求3所述的用于微处理器的内存拷贝加速方法,其特征在于,所述步骤3.4)的详细步骤如下:3.4.1)根据所述页拷贝状态表中记录的当前内存拷贝请求的待执行页拷贝访问高速缓存或外部存储器,以页为单位执行当前内存拷贝请求的页拷贝;同时所述内存拷贝。
9、单元扫描请求队列,判定请求队列中是否存在有效位为0且关联标识位记录的为当前内存拷贝请求的关联内存拷贝请求,如果存在则跳转执行下一步,否则直接跳转执行步骤3.5);3.4.2)判断关联内存拷贝请求之间的关联关系,如果请求队列存在目的地址与当前内存拷贝请求的源地址相同的关联内存拷贝请求,则判定当前内存拷贝请求与其关联内存拷贝请求之间存在数据相关关系,跳转执行3.4.3);如果请求队列存在源地址与当前内存拷贝请求的源地址相同的关联内存拷贝请求,则判定当前内存拷贝请求与其关联内存拷贝请求之间存在源相关关系,跳转执行3.4.5); 3.4.3)将关联内存拷贝请求在请求队列中的各项进行修改:源地址不变;目。
10、的地址不变;拷贝长度等于拷贝长度原值减去当前内存拷贝请求的拷贝长度;源地址等于当前内存拷贝请求的源地址;目的地址等于目的地址原值加上当前内存拷贝请求的拷贝长度并减去当前内存拷贝请求的拷贝长度;拷贝长度等于当前内存拷贝请求的拷贝长度;然后跳转执行下一步; 3.4.4)当前内存拷贝请求后续的页拷贝时,每次从缓存读取一个拷贝单位数据后,同时写入当前内存拷贝请求对应的缓存数据区域与关联内存拷贝请求对应的目的数据区域中;在当前内存拷贝请求的所有页拷贝完成以后,对关联内存拷贝请求所在请求队列位置中的拷贝长度、目的地址和源地址进行修改:源地址等于关联内存拷贝请求的源地址;目的地址等于关联内存拷贝请求的目的地。
11、址;拷贝长度等于关联内存拷贝请求的拷贝长度;同时,将关联内存拷贝请求的有效位设为1,所述关联内存拷贝请求将由内存拷贝单元单独执行;跳转执行步骤3.5);3.4.5)当前内存拷贝请求后续的页拷贝时,每次从缓存读取一个拷贝单位数据后,将同时写入当前内存拷贝请求的目的地址以及与关联内存拷贝请求的目的地址;在当前内存拷贝请求的所有页拷贝完成以后,对关联内存拷贝请求所在请求队列位置中的拷贝长度进行修改:拷贝长度等于关联内存拷贝请求的拷贝长度减去当前内存拷贝请求的拷贝长度;将关联内存拷贝请求的有效位设为1,所述关联内存拷贝请求将由内存拷贝单元单独执行;跳转执行步骤3.5)。5.根据权利要求3或4所述的用于。
12、微处理器的内存拷贝加速方法,其特征在于:所述执行页拷贝时,如果所述内存拷贝单元读入或写回操作行为影响到高速缓冲中数据的一致性,对高速缓冲中的数据执行失效或者更新等操作。6.一种用于微处理器的内存拷贝加速装置,其特征在于包括:权 利 要 求 书CN 102968395 A3/3页4内存拷贝单元,专用于执行内存拷贝请求,设于微处理器的指令执行流水线中;相关检测部件,用于检测新内存拷贝请求与队列中其它内存拷贝请求之间的相关关系;微处理器指令集中设有内存拷贝指令支持,译码逻辑在进行译码时如果译码的指令为内存拷贝指令,则将内存拷贝指令转换为内存拷贝请求并发送给所述内存拷贝单元;所述内存拷贝单元接收译码逻。
13、辑发送的新内存拷贝请求,通过所述相关检测部件检测新内存拷贝请求与内存拷贝单元内用于缓存内存拷贝请求的请求队列中其它内存拷贝请求之间的相关关系,当所述请求队列存在空闲项时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;所述相关检测部件检测新内存拷贝请求与队列中其它内存拷贝请求之间的相关关系时,如果存在目的地址或者源地址与新内存拷贝请求的源地址相同的关联内存拷贝请求,则判定新内存拷贝请求存在具有相关关系的关联内存拷贝请求,当所述请求队列存在空闲项时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;所述内存拷贝单元从请求队列选择待执行的当前内存拷贝请求,与高速缓存及快表进行。
14、交互获取当前内存拷贝请求的物理地址,以页为单位执行当前内存拷贝请求;如果存在与当前内存拷贝请求具有相关关系的关联内存拷贝请求,则所述内存拷贝单元将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行。7.根据权利要求6所述的用于微处理器的内存拷贝加速装置,其特征在于,所述内存拷贝单元包含:请求队列,用于缓存内存拷贝请求及其相关关系;页拷贝状态表,用于记录当前进行的页拷贝操作建立对应的页拷贝记录;拷贝控制单元,用于控制请求队列和页拷贝状态表、与高速缓存及快表进行交互获取当前内存拷贝请求的物理地址、执行页拷贝操作;所述请求队列中内存拷贝请求的内容域包括源地址、目的地址、拷贝长度、拷贝类型、。
15、源地址、目的地址、拷贝长度、有效位和关联标识位,其中源地址、目的地址、拷贝长度、拷贝类型与所述内存拷贝指令的内容相同;所述源地址表示未完成的源内存区域的起始地址,目的地址表示目的内存区域的起始地址,拷贝长度表示待拷贝长度; 所述源地址的初始值为源地址,目的地址的初始值为目的地址,拷贝长度的初始值为拷贝长度;所述有效位表示是否存在关联内存拷贝请求,有效位为1表示该内存拷贝请求与其之前的内存拷贝请求没有关联关系,可以由内存拷贝单元单独执行,有效位为0表示该内存拷贝请求与其之前的内存拷贝请求存在关联关系,目前还不能由内存拷贝单元单独执行,而由内存拷贝单元合并执行;所述关联标识位用于存储关联内存拷贝请。
16、求的编号;所述页拷贝状态表中每一项页拷贝记录的内容域包括源页起始地址、目的页起始地址和拷贝长度信息。权 利 要 求 书CN 102968395 A1/13页5用于微处理器的内存拷贝加速方法及装置技术领域0001 本发明涉及计算机微处理器领域,具体涉及一种用于微处理器的内存拷贝加速方法及装置。背景技术0002 随着计算机领域的高速发展,应用程序对微处理器处理能力的要求越来越高。人们不断通过提高处理器的频率、采用新的体系结构等技术来改善处理器内核的性能。然而,在微处理器内核性能大幅提高的同时,存储器带宽的增加则相对缓慢得多。如果存储器无法为处理器内核提供充足的数据,处理器资源将无法得到充分利用。因。
17、此,提高内存拷贝等访存操作的性能成为处理器设计者日益关心的问题。0003 内存拷贝操作已经成为现代计算机系统中最为常见的一种操作。而许多应用的性能直接或间接地依赖于内存拷贝操作的性能。TCP/IP 协议及文件拷贝等应用程序一般都包含大量的内存拷贝操作,其整体性能也很大程度上由其中内存拷贝操作所花费的时间所决定。此外,一些操作系统函数同样需要内存拷贝操作的支持,如虚拟内存管理、页管理、缓存管理及进程通信等。在传统的计算机系统中,内存拷贝操作一般由一系列的访存指令Load/Store组成。在内存拷贝过程中,Load/Store指令一直占有处理器资源,阻塞后续指令执行。每条Load/Store指令都。
18、需要首先访问快表(TLB)以将指令中的虚地址转换为实地址,然后再访问高速缓存(Cache)。也就是说,一次Load/Store操作都需要访问一次TLB和访问一次高速缓存,功耗及性能开销较大。为了提高内存拷贝的效率,DMA技术被应用于大数据块拷贝。但是这种基于DMA的内存拷贝技术仍存在一定的缺点,如(1)DMA设备往往需要较长的启动时间,(2)在拷贝结束以后需要通过中断通知内核,(3)需要操作系统的支持。0004 综上所述,无论上述哪种内存拷贝实现方法,都存在性能相对较低的问题。此外,这些内存拷贝实现方法基本上都是针对某一单独的拷贝操作进行加速,而没有给出微处理器中多条相关内存拷贝操作的优化方法。
19、。随着体系结构与制造工艺的不断发展,处理器内核与存储器带宽之间的性能差距正在不断加大,需要频繁访存的内存拷贝操作的性能制约了处理器整体性能的提高;而与此同时,内存拷贝操作广泛存在于各种操作系统程序及用户程序之中。因此,这种内存拷贝的重要性及其现有技术中性能的低效性促使内存拷贝加速成为一个亟待解决的技术问题。发明内容0005 本发明要解决的技术问题是提供一种内存拷贝性能高、硬件实现简单且代价小、扩展性好、兼容性强、并发性好、访存次数少、消耗功耗低的用于微处理器的内存拷贝加速方法及装置。0006 为了解决上述技术问题,本发明采用的技术方案为:一种用于微处理器的内存拷贝加速方法,其实施步骤如下:说 。
20、明 书CN 102968395 A2/13页61)预先在微处理器指令集中增加内存拷贝指令支持,在微处理器的指令执行流水线中增加专用于执行所述内存拷贝指令的内存拷贝单元;2)译码逻辑在进行译码时如果译码的指令为内存拷贝指令,则将内存拷贝指令转换为内存拷贝请求并发送给所述内存拷贝单元;所述内存拷贝单元接收译码逻辑发送的新内存拷贝请求,通过相关检测部件检测新内存拷贝请求与内存拷贝单元内用于缓存内存拷贝请求的请求队列中其它内存拷贝请求之间的相关关系,如果存在目的地址或者源地址与新内存拷贝请求的源地址相同的关联内存拷贝请求,则判定新内存拷贝请求存在具有相关关系的关联内存拷贝请求,当所述请求队列存在空闲项。
21、时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;3)所述内存拷贝单元从请求队列选择待执行的当前内存拷贝请求,与高速缓存及快表进行交互获取当前内存拷贝请求的物理地址,以页为单位执行当前内存拷贝请求;如果存在与当前内存拷贝请求具有相关关系的关联内存拷贝请求,则将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行。0007 作为本发明用于微处理器的内存拷贝加速方法的进一步改进:所述步骤2)中将新内存拷贝请求及其相关关系缓存至请求队列中时,所述请求队列中内存拷贝请求的内容域包括源地址、目的地址、拷贝长度、拷贝类型、源地址、目的地址、拷贝长度、有效位和关联标识位,其中源地址、目。
22、的地址、拷贝长度、拷贝类型与所述内存拷贝指令的内容相同;所述源地址表示未完成的源内存区域的起始地址,目的地址表示目的内存区域的起始地址,拷贝长度表示待拷贝长度; 所述源地址的初始值为源地址,目的地址的初始值为目的地址,拷贝长度的初始值为拷贝长度;所述有效位表示是否存在关联内存拷贝请求,有效位为1表示该内存拷贝请求与其之前的内存拷贝请求没有关联关系,可以由内存拷贝单元执行,有效位为0表示该内存拷贝请求与其之前的内存拷贝请求存在关联关系,目前还不能由内存拷贝单元单独执行,而由内存拷贝单元合并执行;所述关联标识位用于存储关联内存拷贝请求的编号;所述步骤3)中以页为单位执行当前内存拷贝请求时,建立用于。
23、存储当前进行的页拷贝操作的页拷贝记录的页拷贝状态表,页拷贝状态表中每一项页拷贝记录的内容域包括源页起始地址、目的页起始地址和拷贝长度信息。0008 所述步骤3)的详细步骤如下:3.1)所述内存拷贝单元从请求队列选择有效位为1的当前内存拷贝请求,将当前内存拷贝请求根据虚拟存储器的页大小分解为多个页拷贝;3.2)所述内存拷贝单元与高速缓存及快表进行交互获取当前内存拷贝请求待执行页拷贝的物理地址;将待执行页拷贝的源页起始地址、目的页起始地址和拷贝长度信息建立页拷贝记录;3.3)更新当前内存拷贝请求在请求队列中的源地址、目的地址与长度,使源地址等于源地址减去待执行页拷贝的长度、目的地址 等于目的地址减。
24、去待执行页拷贝的长度,长度等于拷贝长度减去待执行页拷贝的长度;3.4)根据所述页拷贝状态表中记录的当前内存拷贝请求的待执行页拷贝访问高速缓存或外部存储器,以页为单位执行当前内存拷贝请求的页拷贝;同时所述内存拷贝单元扫描请求队列,如果请求队列中存在与当前内存拷贝请求存在相关关系的关联内存拷贝请说 明 书CN 102968395 A3/13页7求,则将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行;3.5)在待执行页拷贝执行完毕后,判断当前内存拷贝请求的所有页拷贝是否已经全部完成,如果还有页拷贝未完成则跳转执行步骤3.2),否则跳转执行下一步;3.6)发出信号,表明本次内存拷贝请求完。
25、成,并将与本次内存拷贝请求合并执行的关联内存拷贝请求的有效位设为1。0009 所述步骤3.4)的详细步骤如下:3.4.1)根据所述页拷贝状态表中记录的当前内存拷贝请求的待执行页拷贝访问高速缓存或外部存储器,以页为单位执行当前内存拷贝请求的页拷贝;同时所述内存拷贝单元扫描请求队列,判定请求队列中是否存在有效位为0且关联标识位记录的为当前内存拷贝请求的关联内存拷贝请求,如果存在则跳转执行下一步,否则直接跳转执行步骤3.5);3.4.2)判断关联内存拷贝请求之间的关联关系,如果请求队列存在目的地址与当前内存拷贝请求的源地址相同的关联内存拷贝请求(如应用程序通信的内存拷贝操作),则判定当前内存拷贝请求。
26、与其关联内存拷贝请求之间存在数据相关关系,跳转执行3.4.3);如果请求队列存在源地址与当前内存拷贝请求的源地址相同的关联内存拷贝请求(如基于进程拷贝通信的内存拷贝操作),则判定当前内存拷贝请求与其关联内存拷贝请求之间存在源相关关系,跳转执行3.4.5);3.4.3)将关联内存拷贝请求在请求队列中的各项进行修改:源地址不变;目的地址不变;拷贝长度等于拷贝长度原值减去当前内存拷贝请求的拷贝长度;源地址等于当前内存拷贝请求的源地址;目的地址等于目的地址原值加上当前内存拷贝请求的拷贝长度并减去当前内存拷贝请求的拷贝长度;拷贝长度等于当前内存拷贝请求的拷贝长度;然后跳转执行下一步; 3.4.4)当前内。
27、存拷贝请求后续的页拷贝时,每次从缓存读取一个拷贝单位数据后,同时写入当前内存拷贝请求对应的缓存数据区域与关联内存拷贝请求对应的目的数据区域中;在当前内存拷贝请求的所有页拷贝完成以后,对关联内存拷贝请求所在请求队列位置中的拷贝长度、目的地址和源地址进行修改:源地址等于关联内存拷贝请求的源地址;目的地址等于关联内存拷贝请求的目的地址;拷贝长度等于关联内存拷贝请求的拷贝长度;同时,将关联内存拷贝请求的有效位设为1,所述关联内存拷贝请求将由内存拷贝单元单独执行;跳转执行步骤3.5);3.4.5)当前内存拷贝请求后续的页拷贝时,每次从缓存读取一个拷贝单位数据后,将同时写入当前内存拷贝请求的目的地址以及与。
28、关联内存拷贝请求的目的地址;在当前内存拷贝请求的所有页拷贝完成以后,对关联内存拷贝请求所在请求队列位置中的拷贝长度进行修改:拷贝长度等于关联内存拷贝请求的拷贝长度减去当前内存拷贝请求的拷贝长度;将关联内存拷贝请求的有效位设为1,所述关联内存拷贝请求将由内存拷贝单元单独执行;跳转执行步骤3.5)。0010 所述执行页拷贝时,如果所述内存拷贝单元读入或写回操作行为影响到高速缓冲中数据的一致性,对高速缓冲中的数据执行失效或者更新等操作。0011 本发明还提供一种用于微处理器的内存拷贝加速装置,包括:内存拷贝单元,专用于执行内存拷贝请求,设于微处理器的指令执行流水线中;相关检测部件,用于检测新内存拷贝。
29、请求与队列中其它内存拷贝请求之间的相关关说 明 书CN 102968395 A4/13页8系;微处理器指令集中设有内存拷贝指令支持,译码逻辑在进行译码时如果译码的指令为内存拷贝指令,则将内存拷贝指令转换为内存拷贝请求并发送给所述内存拷贝单元;所述内存拷贝单元接收译码逻辑发送的新内存拷贝请求,通过所述相关检测部件检测新内存拷贝请求与内存拷贝单元内用于缓存内存拷贝请求的请求队列中其它内存拷贝请求之间的相关关系,当所述请求队列存在空闲项时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;所述相关检测部件检测新内存拷贝请求与队列中其它内存拷贝请求之间的相关关系时,如果存在目的地址或者源地址。
30、与新内存拷贝请求的源地址相同的关联内存拷贝请求,则判定新内存拷贝请求存在具有相关关系的关联内存拷贝请求,当所述请求队列存在空闲项时内存拷贝单元将新内存拷贝请求及其相关关系缓存至所述请求队列中;所述内存拷贝单元从请求队列选择待执行的当前内存拷贝请求,与高速缓存及快表进行交互获取当前内存拷贝请求的物理地址,以页为单位执行当前内存拷贝请求;如果存在与当前内存拷贝请求具有相关关系的关联内存拷贝请求,则所述内存拷贝单元将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行。0012 作为本发明用于微处理器的内存拷贝加速装置的进一步改进:所述内存拷贝单元包含:请求队列,用于缓存内存拷贝请求及其相关。
31、关系;页拷贝状态表,用于记录当前进行的页拷贝操作建立对应的页拷贝记录;拷贝控制单元,用于控制请求队列和页拷贝状态表、与高速缓存及快表进行交互获取当前内存拷贝请求的物理地址、执行页拷贝操作;所述请求队列中内存拷贝请求的内容域包括源地址、目的地址、拷贝长度、拷贝类型、源地址、目的地址、拷贝长度、有效位和关联标识位,其中源地址、目的地址、拷贝长度、拷贝类型与所述内存拷贝指令的内容相同;所述源地址表示未完成的源内存区域的起始地址,目的地址表示目的内存区域的起始地址,拷贝长度表示待拷贝长度; 所述源地址的初始值为源地址,目的地址的初始值为目的地址,拷贝长度的初始值为拷贝长度;所述有效位表示是否存在关联内。
32、存拷贝请求,有效位为1表示该内存拷贝请求与其之前的内存拷贝请求没有关联关系,可以由内存拷贝单元单独执行,有效位为0表示该内存拷贝请求与其之前的内存拷贝请求存在关联关系,目前还不能由内存拷贝单元单独执行,而由内存拷贝单元合并执行;所述关联标识位用于存储关联内存拷贝请求的编号;所述页拷贝状态表中每一项页拷贝记录的内容域包括源页起始地址、目的页起始地址和拷贝长度信息。0013 本发明具有下述优点:1、本发明通过获取内存拷贝请求和请求队列中其它内存拷贝请求之间的相关关系,在以页为单位执行当前内存拷贝请求的同时,具有关联关系的不同内存拷贝请求进行合并,减少访存次数,有效提高内存拷贝操作的效率。将整个拷贝。
33、操作划分为多个页拷贝,相关检测的粒度更细,能够增加内存拷贝指令与其它普通指令的之间的执行并行性,提高了系统性能,当内核中的后续指令与内存拷贝指令之间不存在相关性或者相关解除时,后续指令可以继续执行,而不需要等待拷贝指令的完成,能够加速传统内存拷贝操作,具有内存拷贝性能高、并发性好的优点。0014 2、本发明在微处理器现有指令集的基础上增加了专有的内存拷贝指令来进行内说 明 书CN 102968395 A5/13页9存拷贝,且采用专有硬件支持内存拷贝操作,对现有微处理器的指令集修改较小,而且执行内存拷贝时不需要经过数据写回单元,而是直接访问数据高速缓存或者外部存储控制器来实现数据的读取和写回,因。
34、此结构更加简单,也无需排队等待其他操作占用的数据写回单元,能够有效提高内存拷贝的性能以及处理器的综合处理性能;而且这种特性使得本发明易于应用于现有各种微处理器体系结构,在确保性能的同时降低了硬件设计的复杂度,硬件结构简单,代价小,扩展性好。0015 3、本发明对微处理器的原有硬件结构修改小,保留了处理器原先的流水线结构,因此原先的应用程序能够不加改动地运行于改动以后的处理器上,即改进后的微处理器可以完全兼容传统的应用程序,兼容性好。0016 4、本发明针对应用程序通信、进程拷贝通信的特殊拷贝操作存在的特点,将存在数据相关关系与源相关关系的内存拷贝操作进行合并,从而能够进一步减少内存拷贝实际访存。
35、的次数,提高了性能,降低了功耗,具有内存拷贝性能高、访存次数少、消耗功耗低的优点。0017 本发明用于微处理器的内存拷贝加速装置为与本发明内存拷贝加速方法相对应的结构,也具有与本发明内存拷贝加速方法相同的技术效果,因此在此不再赘述。附图说明0018 图1为本发明实施例的基本实施流程示意图。0019 图2为本发明实施例中内存拷贝指令的格式示意图。0020 图3为本发明实施例中内存拷贝指令的执行流程示意图。0021 图4为本发明实施例中步骤3)的实施流程示意图。0022 图5为本发明实施例中步骤3.4)的实施流程示意图。0023 图6为应用本发明实施例内存拷贝加速装置的微处理器流水线结构示意图。0。
36、024 图7为本发明实施例内存拷贝加速装置的访存连接关系示意图。0025 图8为应用本发明实施例内存拷贝加速装置的微处理器结构示意图。0026 图9为应用本发明实施例中内存拷贝加速单元的详细结构示意图。0027 图10为应用本发明实施例基于应用程序通信的内存拷贝加速原理示意图。0028 图11为应用本发明实施例基于进程拷贝通信的内存拷贝加速原理示意图。具体实施方式0029 如图1所示,本发明实施例用于微处理器的内存拷贝加速方法的实施步骤如下:1)预先在微处理器指令集中增加内存拷贝指令支持,在微处理器的指令执行流水线中增加专用于执行内存拷贝指令的内存拷贝单元;2)译码逻辑在进行译码时如果译码的指。
37、令为内存拷贝指令,则将内存拷贝指令转换为内存拷贝请求并发送给内存拷贝单元;内存拷贝单元接收译码逻辑发送的新内存拷贝请求,通过相关检测部件检测新内存拷贝请求与内存拷贝单元内用于缓存内存拷贝请求的请求队列中其它内存拷贝请求之间的相关关系(数据相关或源相关),如果存在目的地址或者源地址与新内存拷贝请求的源地址相同的关联内存拷贝请求,则判定新内存拷贝请求存在具有相关关系的关联内存拷贝请求,当请求队列存在空闲项时内存拷贝单元将新内存拷贝说 明 书CN 102968395 A6/13页10请求及其相关关系缓存至请求队列中;3)内存拷贝单元从请求队列选择待执行的当前内存拷贝请求,与高速缓存及快表进行交互获取。
38、当前内存拷贝请求的物理地址,以页为单位执行当前内存拷贝请求;如果存在与当前内存拷贝请求具有相关关系的关联内存拷贝请求,则将关联内存拷贝请求与当前内存拷贝请求中相同的页拷贝操作合并执行。0030 本实施例引入了专有的内存拷贝指令与硬件结构的内存拷贝单元,程序中内存拷贝操作采用专用的内存拷贝指令表示,而专有的内存拷贝单元负责执行拷贝指令,因此内存拷贝操作不需要经过数据写回单元,而是直接访问数据高速缓存或者外部存储控制器,提高处理器的性能;而且本实施例的内存拷贝单元还能够对拷贝请求队列中所有拷贝请求进行扫描,识别出各拷贝操作之间存在的关系,然后对一些相关的拷贝操作进行合并执行,从而减少拷贝操作开销,。
39、解决了现有内存拷贝技术访存开销大,进而影响微处理器性能的问题。而且本实施例的拷贝方法中,内存拷贝单元将整个拷贝操作划分为多个页拷贝,相关检测的粒度更细,能够增加内存拷贝指令与其它普通指令的之间的执行并行性,提高了系统性能;如果一条指令与前面的内存拷贝指令相关,该指令只需要内存拷贝指令拷贝完包含相关数据的页,即可立即执行,而不需要等待拷贝指令完成所有页的拷贝。0031 为了实现对内存拷贝的加速,本实施例预先在微处理器原有指令集的基础上增加内存拷贝指令支持。如图2所示,本实施例的内存拷贝指令包含拷贝类型域、源地址域、目的地址域与拷贝长度域四部分。该指令表示从源地址所指的内存区域开始向目的地址所指的。
40、内存区域拷贝数据,拷贝长度指明了拷贝的字节数。内存拷贝指令可支持多种不同的寻址方式,包括寄存器寻址、立即数寻址及基址寻址,在进行具体实现时可以实现全部寻址方式,也可实现其中一种或几种寻址方式。本实施例中,内存拷贝指令具体形式为mcopy src dst len,该指令代表将某一内存区域中的数据拷贝到另一内存区域,其中src表示源内存区域的起始地址,dst表示目的内存区域的起始地址,len表示本次内存拷贝所要拷贝的数据长度。0032 如图3所示,本实施例的内存拷贝指令与微处理器的现有指令集中的其它指令类型的执行步骤相同,其执行步骤如下:(1)读取指令:取指部件根据程序计数器的值从存储器中读取指令。
41、并存储到指令队列中,同时程序计数器指向下一条指令;(2)指令译码:译码部件从所述指令缓冲队列中取出一条指令进行译码;(3)指令执行:如果正在译码的指令是内存拷贝指令,该指令发送给内存拷贝加速装置并由内存拷贝加速装置(即内存拷贝单元)负责执行,否则,该指令进入传统的指令执行流水线。0033 本实施例步骤2)中将新内存拷贝请求及其相关关系缓存至请求队列中时,请求队列中内存拷贝请求的内容域包括源地址、目的地址、拷贝长度、拷贝类型、源地址、目的地址、拷贝长度、有效位和关联标识位,其中源地址、目的地址、拷贝长度、拷贝类型与内存拷贝指令的内容相同;源地址表示未完成的源内存区域的起始地址,目的地址表示目的内存区域的起始地址,拷贝长度表示待拷贝长度; 源地址的初始值为源地址,目的地址的初始值为目的地址,拷贝长度的初始值为拷贝长度;有效位表示是否存在关联内存拷贝请求,有效位为1表示由内存拷贝单元单独执行,有效位为0表示由内存拷贝单元合并执行;关联标识位用于存储关联内存拷贝请求的编号;步骤3)中以页为单位执行当前内存拷贝请求时,建立用于存储当前进行的页拷贝操作的页拷贝记录的页拷贝状态表,页拷贝状说 明 书CN 102968395 A10。