用于优化从一个存储器到另一个存储器的数据传输的方法和系统技术方案

技术编号:35559571 阅读:27 留言:0更新日期:2022-11-12 15:41
公开了一种用于通过处理器(106)将数据从源存储器(102)移动到目标存储器(104)的方法和系统(100)。处理器(106)具有多个寄存器(114)并且源存储器(102)存储包括一个或多个加载指令和一个或多个存储指令的指令序列。处理器(106)将加载指令从源存储器(102)移动到目标存储器(104)。然后,处理器(106)启动来自目标存储器(104)的加载指令的执行,以便将来自源存储器(102)的数据加载到处理器(106)中的一个或多个寄存器(114)。然后执行返回到存储在源存储器(102)中的指令序列,并且处理器(106)将来自寄存器(114)的数据存储到目标存储器(104)。储器(104)。储器(104)。

【技术实现步骤摘要】
【国外来华专利技术】用于优化从一个存储器到另一个存储器的数据传输的方法和系统

技术介绍

[0001]在计算机系统或数据处理系统上运行的大多数程序执行大量数据传输操作,即将数据块从一个存储器移动到另一个存储器。程序的典型示例是引导加载程序。引导加载程序是一个简单的程序或代码序列,它通过将一组程序和数据从一个存储器传输到另一个存储器以由处理器执行来引导或启动计算机系统。在某些情况下,引导加载程序会引导连接到进入休眠或睡眠状态的计算机系统的设备。此类设备的示例包括经常进入休眠或睡眠状态的IoT设备。在某些示例中,引导加载程序每秒最多可引导这些IoT设备20次,这涉及大量数据传输操作。因此,优化将数据从一个存储器移动到另一个存储器的方法很重要。
[0002]通常,程序被编写并作为源代码或汇编代码指令序列提供给计算机系统。这些程序包括用于执行数据传输或将数据从一个存储器复制到另一个存储器的函数。将数据从一个存储器复制到另一个存储器的常用函数之一是称为memcpy()的存储器复制函数。该程序由程序员或用户以人可读格式(或源代码)编写,并由计算机系统中的编译器和/或汇编器转换为机器可读代码。然后,链接器将程序存储为一组指令(机器可读代码),这些指令可以加载到计算机系统的存储器中以由处理器执行。程序可以直接从外部源加载到存储器中并从存储器中执行,或者程序可以移动到存储器中,引导加载程序可以在执行之前将它们从存储器中传输到任何存储器中所需的最终位置。这种存储器的一个例子是ROM镜像。然后,处理器通过执行从存储器中取出的指令来执行数据传输或存储器复制。
[0003]一般来说,当处理器在一个时钟周期内取出一条指令以将数据从一个存储器移动到另一个存储器时,如果要取出的并发指令和要访问的数据在同一个存储器中,则指令的执行会停止。这是因为处理器无法同时从存储器中执行指令取出和数据访问。因此,数据传输操作通常由处理器在两个或更多时钟周期内完成。数据传输操作的执行时间的增加导致计算机系统的计算开销增加。因此,需要以更优化的方式将数据从一个存储器传输到另一存储器。

技术实现思路

[0004]提供本
技术实现思路
以便以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本
技术实现思路
并非旨在识别所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
[0005]本文公开了用于通过处理器将数据从源存储器移动到目标存储器的各种方法和系统。处理器具有多个寄存器并且源存储器存储包括一个或多个加载指令和一个或多个存储指令的指令序列。处理器将加载指令从源存储器移动到目标存储器。然后,处理器启动来自目标存储器的加载指令的执行,以便将数据从源存储器加载到处理器中的一个或多个寄存器。然后执行返回到存储在源存储器中的指令序列,并且处理器将数据从寄存器存储到目标存储器。
[0006]根据第一方面,提供了一种通过包括多个寄存器的处理器将数据从源存储器移动
到目标存储器的方法,所述源存储器存储指令序列,其中所述指令序列包括一个或多个加载指令以及一个或多个存储指令,所述方法包括以下步骤:将一个或多个加载指令从源存储器移动到目标存储器;启动来自目标存储器的一个或多个加载指令的执行;在执行一个或多个加载指令时,将数据从源存储器加载到所述处理器中的至少一个寄存器;将执行返回到存储在源存储器中的指令序列;和在执行来自源存储器的一个或多个存储指令时,将数据从至少一个寄存器存储到目标存储器。
[0007]任选地,将一个或多个加载指令从源存储器移动到目标存储器的步骤是通过执行处理器存储在源存储器中的指令序列中的一组数据传输指令来执行的。
[0008]任选地,将一个或多个加载指令从源存储器移动到目标存储器的步骤通过在执行指令序列之前执行一组预配置指令来执行。
[0009]任选地,移动一个或多个加载指令的步骤包括将一个或多个加载指令移动到目标存储器。
[0010]任选地,在执行指令序列中的第一分支指令时执行启动来自目标存储器的一个或多个加载指令的执行的步骤。
[0011]任选地,将执行返回到存储在源存储器中的指令序列的步骤是在执行存储在目标存储器中的一个或多个加载指令之后的第二分支指令或返回指令时执行的。
[0012]任选地,该方法还包括通过执行以下步骤来执行每条加载指令:在第一时钟周期从目标存储器获取加载指令,所述加载指令标识要从源存储器加载的数据的存储器地址;在第二时钟周期内从目标存储器中获取后续加载指令;和在第二时钟周期期间,将数据从源存储器中的存储器地址加载到多个寄存器中的寄存器。
[0013]任选地,该方法还包括通过执行以下步骤来执行每条存储指令:在第一时钟周期从源存储器中获取存储指令,所述存储指令标识用于存储数据的目标存储器中的存储器地址;在第二时钟周期内从源存储器中获取后续存储指令;和在第二时钟周期内,将来自多个寄存器中的寄存器的数据存储到目标存储器中的存储器地址。
[0014]任选地,一个或多个加载指令作为源存储器中数据的一部分存储在源存储器中。
[0015]任选地,指令序列和数据作为机器可读代码存储在源存储器中。
[0016]任选地,该方法还包括通过转换用户编写的源代码或汇编代码来生成指令序列。
[0017]任选地,一个或多个加载指令和一个或多个存储指令在用于将数据从源存储器移动到目标存储器的循环中执行。
[0018]根据第二方面,提供了一种配置用于移动数据的计算机系统,所述系统包括:源存储器,其配置为存储指令序列和所述数据,其中所述指令序列包括一个或多个加载指令和一个或多个存储指令;目标存储器;和处理器,其耦合到所述源存储器和所述目标存储器,被配置为执行指令序列,其中所述处理器被配置为:将一个或多个加载指令从源存储器移动到目标存储器;启动来自目标存储器的一个或多个加载指令的执行;在执行一个或多个加载指令时,将数据从源存储器加载到所述处理器中的至少一个寄存器;将执行返回到存储在源存储器中的指令序列;和在执行来自源存储器的一个或多个存储指令时,将数据从至少一个寄存器存储到目标存储器。
[0019]任选地,处理器在执行指令序列中的一组数据传输指令时将一个或多个加载指令移动到目标存储器。
[0020]任选地,处理器在执行指令序列之前在执行一组预配置指令时将一个或多个加载指令移动到目标存储器。
[0021]任选地,处理器在执行指令序列中的第一分支指令时启动来自目标存储器的一个或多个加载指令的执行。
[0022]任选地,处理器在执行存储在目标存储器中的一个或多个加载指令之后的第二分支指令或返回指令时将执行返回到指令序列。
[0023]任选地,源存储器存储指令序列中的一个或多个加载指令或作为数据中的数据元素存储。
[0024]任选地,目标存储器包括被配置为用于存储指令序列的堆栈存储器的目标存储器的一部分。
[0025]任选地,处理器通过指令路径和数据路径耦合到源存储器和目标存储器。
[0026]任选地,处理器通过指令路径从源存储器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种通过包括多个寄存器的处理器将数据从源存储器移动到目标存储器的方法,所述源存储器存储指令序列,其中所述指令序列包括一个或多个加载指令和一个或多个存储指令,所述方法包括:将所述一个或多个加载指令从所述源存储器移动到所述目标存储器;启动来自所述目标存储器的所述一个或多个加载指令的执行;在执行所述一个或多个加载指令时,将数据从所述源存储器加载到所述处理器中的至少一个寄存器;将执行返回到存储在所述源存储器中的所述指令序列;和在执行来自所述源存储器的所述一个或多个存储指令时将数据从所述至少一个寄存器存储到所述目标存储器。2.根据权利要求1所述的方法,其中将所述一个或多个加载指令从所述源存储器移动到所述目标存储器是通过执行所述处理器存储在所述源存储器中的所述指令序列中的一组数据传输指令来执行的。3.根据权利要求1所述的方法,其中将所述一个或多个加载指令从所述源存储器移动到所述目标存储器是通过在执行所述指令序列之前执行一组预配置指令来执行的。4.根据权利要求1、2或3所述的方法,其中移动所述一个或多个加载指令包括将所述一个或多个加载指令移动到所述目标存储器。5.根据任一前述权利要求所述的方法,其中启动来自所述目标存储器的所述一个或多个加载指令的执行是在执行所述指令序列中的第一分支指令时执行的。6.根据任一前述权利要求所述的方法,其中将执行返回到存储在所述源存储器中的所述指令序列是在执行存储在所述目标存储器中的所述一个或多个加载指令之后的第二分支指令或返回指令时执行的。7.根据任一前述权利要求所述的方法,其中所述方法还包括通过以下方式执行每个加载指令:在第一时钟周期内从所述目标存储器中获取加载指令,所述加载指令识别要从所述源存储器加载的数据的存储器地址;在第二时钟周期内从所述目标存储器中获取后续加载指令;和在第二时钟周期期间将数据从所述源存储器中的存储器地址加载到所述多个寄存器中的寄存器。8.根据任一前述权利要求所述的方法,所述方法还包括通过以下方式执行每个存储指令:在第一时钟周期内从所述源存储器中获取存储指令,所述存储指令识别所述目标存储器中用于存储数据的存储器地址;在第二时钟周期内从所述源存储器中获取后续存储指令;和在第二时钟周期内将来自所述多个寄存器中的寄存器的数据存储到所述目标存储器中的存储器地址。9.根据任一前述权利要求所述的方法,其中所述一个或多个加载指令作为所述源存储器中的数据的一部分存储在所述源存储器中。10.根据任一前述权利要求所述的方法,其中所述指令序列和所述数据作为机器可读
代码存储在所述源存储器中。11.根据任一前述权利要求所述的方法,其中所述方法还包括通过转换用户编写的源代码或汇编代码来生成所述指令序列。12.根据任一前述权利要求所述的方法,其中所述一个或多个加载指令和所述一个或多个存储指令在用于将数据从所述源存...

【专利技术属性】
技术研发人员:克里斯
申请(专利权)人:北欧半导体公司
类型:发明
国别省市:

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

1