CN107025068A - 在存储器内异步复制数据 - Google Patents

在存储器内异步复制数据 Download PDF

Info

Publication number
CN107025068A
CN107025068A CN201610899744.0A CN201610899744A CN107025068A CN 107025068 A CN107025068 A CN 107025068A CN 201610899744 A CN201610899744 A CN 201610899744A CN 107025068 A CN107025068 A CN 107025068A
Authority
CN
China
Prior art keywords
processor
data
memory
asynchronous
replication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610899744.0A
Other languages
English (en)
Other versions
CN107025068B (zh
Inventor
拉马·克里希纳·戈文达拉胡
程立群
帕塔萨拉蒂·兰加纳坦
迈克尔·R·马蒂
安德鲁·加勒廷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202010474833.7A priority Critical patent/CN111813333B/zh
Publication of CN107025068A publication Critical patent/CN107025068A/zh
Application granted granted Critical
Publication of CN107025068B publication Critical patent/CN107025068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

公开了在存储器内异步复制数据。一种示例方法,所述示例方法包括:在通过处理器执行软件应用期间,通过与所述处理器分离的复制处理器接收对异步数据复制操作的请求以在能够由所述复制处理器访问的存储器内复制数据,其中,所述请求是从复制管理器接收的,所述复制管理器能够由在管理所述软件应用的执行的操作系统的用户空间中的所述软件应用访问;响应于所述请求,通过所述复制处理器发起所述异步数据复制操作;通过所述处理器继续执行所述软件应用;通过所述复制处理器确定所述异步数据操作系统已经完成;以及响应于确定所述异步复制操作已经完成,通过所述复制处理器选择性地通知所述软件应用所述异步复制操作已经完成。

Description

在存储器内异步复制数据
技术领域
本说明书涉及用于在存储器内异步地执行复制操作的技术。
背景技术
在软件应用执行期间,处理器可能需要频繁地在存储器内复制或者移动数据。例如,网络堆栈可以在存储器内将数据从在第一位置处的用户缓冲区移动到在可通过网络接口访问的第二位置处的网络缓冲区以便发送该数据。软件应用还可以执行在存储器内将数据显式地从一个位置复制到另一个位置。当复制大量数据时,如果在等待复制操作完成的同时处理器的执行阻塞,则可能会发生处理延迟。
发明内容
本申请的主题大体上涉及计算机存储器,并且具体地涉及用于在存储器内异步地执行复制操作的技术。
通常,可以将在本说明书中描述的主题的一个创新方面体现在以下方法中,该方法包括:在通过处理器执行软件应用期间,通过与处理器分离的复制处理器接收对异步数据复制操作的请求以在能够由复制处理器访问的存储器内复制数据,其中,该请求是从复制管理器接收的,所述复制管理器能够由在管理软件应用的执行的操作系统的用户空间中的软件应用访问;响应于该请求,通过复制处理器发起异步数据复制操作;通过处理器继续执行软件应用;通过复制处理器确定异步数据操作系统已经完成;响应于确定异步复制操作已经完成,通过复制处理器选择性地通知软件应用异步复制操作已经完成。
该方面的其它实施例包括:配置为执行所述方法的动作的、编码在计算机存储装置上的对应系统、设备、和计算机程序。
可以实施本说明书中描述的主题的具体实施例,以便实现一个或者多个下面的优点。所描述的技术可以使用虚拟(或者内核地址)作为具有可能会跨页面边界的任意对齐和任意长度的参数。所述技术可以通过允许中央处理单元(CPU)将可以由处理器完成的其它工作与复制操作重叠来异步地实现复制,并且,如果处理器正在从事复制操作,则其无法异步地实现复制。所述技术可以允许复制完成的同步通知或者异步通知。进一步地,对是否应该将源地址或者目的地地址及其范围的内容带入高速缓存中进行控制。通过在不涉及操作系统内核的情况下使用虚拟地址来允许软件应用发起异步复制操作,可以减少在复制操作期间在用户空间与内核空间之间的模式切换次数,这会使性能得到提高。另外,这些控制将允许更为有效地利用高速缓存,产生性能的改进。
在下面的附图和描述中陈述了本说明书描述的主题的一个或者多个实施例的细节。本主题的其它特征、方面、和优点将通过描述、附图、和权利要求书而变得显而易见。
附图说明
图1是系统的框图,在该系统中可以实施异步复制过程。
图2是用于提供异步复制操作的示例过程的流程图。
图3描绘了用于异步复制操作的示例过程。
图4是可以用于实施本文件描述的系统和方法的计算装置的框图。
在各个附图中,类似的附图标记和名称指示类似的元件。
具体实施方式
本公开涉及提供用于异步存储器复制和高速缓存管理的技术。
很多现代的处理器在高时钟速度下运行,这意味着在处理中即使是轻微延迟都会导致大量的周期丢失和性能下降。例如,能够每秒执行100亿个指令的处理器可以在等待阻塞操作完成所花费的1纳秒内执行10个指令。在许多情况下,与处理器的速度相比,存储器复制操作可以是相对缓慢的操作。在复制操作期间,如果处理器正在从事于用于复制的负载存储操作,则处理器无法执行其它工作。在大量数据复制的情况下,在处理器等待复制完成时可能会浪费潜在有用的处理器周期。如果这种复制操作是频繁的,则处理器的效率会受到百分之几甚或更多的阻碍。
而且,在许多情况下,复制数据使数据进入到高速缓存中。如果不再相对频繁地重复使用数据或者根本不再使用数据,则使数据进入到高速缓存中会污染高速缓存内的工作集并且妨碍其它有可能更有用的数据被高速缓存或者从高速缓存中移除。
本公开涉及用于数据的异步复制的技术。一种示例技术包括使用与中央处理单元(CPU)分离的复制处理器来独立于CPU异步地复制数据。当复制处理器执行异步复制时,CPU可以执行其它操作。复制处理器的异步复制操作可以通过可从用户空间访问的异步复制管理器(ACM)来控制。复制处理器可以能够将虚拟地址当作参数,从而可以在这些复制操作期间减少或者消除对从用户空间到内核空间或者从内核空间到用户空间的昂贵模式切换的需求。复制处理器可以通知异步复制管理器复制已经完成,或者异步复制管理器可以轮询复制处理器以确定复制何时已经完成。异步复制管理器还可以包括高速缓存管理。例如,可以通过异步复制管理器来设置高速缓存标记以确定复制处理器是否对数据进行了高速缓存。可以在不对操作系统存储器访问操作进行显著改变的情况下实施所描述的异步复制技术。
图1是系统100的框图,在该系统100中可以实施异步复制过程。如图所示,系统100包括耦合至高速缓存112和存储器120的处理器102。操作系统110在处理器102上执行并且与处理器102交互。操作系统110管理一个或者多个用户应用108和异步复制管理器(ACM)106。异步复制管理器106也耦合至复制处理器104。复制处理器104也耦合至存储器120和高速缓存112。
系统100包括处理器102。在一些实施方式中,处理器102可以是包括在计算机系统中的通用中央处理单元(CPU)。处理器102也可以是专用处理器或者嵌入式处理器、或者用于特定系统或者子系统的专用控制器。虽然在图1A至1B中示出了单个处理器102,但是在一些实施方式中,可以包括两个或者更多个处理器102。在一些实施方式中,处理器102可以是x86兼容处理器,或者还可以是另一种类型的处理器。
在一些实施方式中,处理器102可以包括一个或者多个处理器核心(未示出),每一个处理器核心都能够执行一个或者多个执行线程。处理器核心可以彼此同时地执行这些线程。在一些实施方式中,处理器102、处理器核心、或者这两种部件都可以包括用于对数据进行高速缓存的集成存储装置。处理器102或者处理器核心还可以包括微代码,该微代码包括限定部件的行为的指令。
该系统包括配置为在存储器120内执行数据复制操作的复制处理器104。该复制处理器104可以并入处理器102中(例如,作为与处理器核心分离的部件)。在一些实施方式中,复制处理器104集成在与处理器102相同的封装中,或者是包括处理器102的“芯片上系统”的一部分。复制处理器104还可以是与处理器102分离的硬件部件或者耦合至处理器102的分离的模块。可以将复制处理器104实施为集成输入/输出装置的一部分或者实施为直接存储器存取(DMA)系统的一部分。
系统100还包括一个存储器120或者多个存储器120。存储器120可以包括任何类型的存储器或者数据库模块,并且可以采取易失性存储器和/或非易失性存储器的形式,包括但不限于,磁性介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、或者任何其它合适的本地或者远程存储器部件。存储器120还可以包括集成到处理器102、处理器核心、或者在系统100内的其它部件中的高速缓存存储器。
系统100还包括操作系统110。在操作中,操作系统110在处理器102上执行,并且指导处理器102执行一个或者多个用户应用108。操作系统140可以是在处理器102上执行的商业操作系统或者开放源代码操作系统。
由处理器102执行的软件应用108可以引起异步复制操作。软件应用108可以与异步复制管理器106接口连接以执行并且协调异步复制。例如,应用108可以调用在异步复制管理器106中限定的函数以发起异步复制。作为响应,异步复制管理器106可以请求复制处理器104在存储器120中执行数据复制。在一些情况下,可以从用于异步复制操作的应用108显式地调用异步复制管理器106,或者可以响应于对用于复制存储器的标准操作系统例程(例如,memcpy)的调用而调用异步复制管理器106。在这种情况下,memcpy的实施方式可以包括确定是否应该异步地执行特定复制操作的指令,并且,如果应该异步地执行特定复制操作,则发起异步复制。这种实施方式可以在不对软件应用108进行改变的情况下实现对本技术的利用。
当复制处理器104与处理器102分离时,处理器102能够在异步复制操作期间自由地继续执行。例如,处理器102可以在复制操作期间继续执行应用108、另一种应用、或者其它操作。处理器102可以继续执行软件应用108的其它指令,这些指令不取决于复制操作的结果。在另一示例中,处理器102可以对另一种软件应用执行上下文切换并且在执行异步复制操作的同时执行该应用。而且,当可经由异步复制管理器106从用户空间访问复制处理器104时,在执行复制操作时任何上下文切换都可能是不必要的。具体地,可能不需要处理器102对操作系统110执行模式切换以便发起异步复制操作,从而引起性能的改进。在一些情况下,如果资源被占用,则可以将复制操作默认设置成标准同步负载存储技术。例如,如果复制处理器104不可用于执行异步复制操作,则操作系统110可以使用处理器102执行标准复制操作。
异步复制管理器106还可以确保存储器在异步复制操作期间仍然受到保护。例如,在异步复制操作之前或者期间,异步复制管理器106可以保护在存储器120中的位置,所述位置与在存储器120内的从其复制数据的源地址和在存储器120内的用于接收数据的目的地地址对应。在复制操作完成之后,异步复制管理器106可以对存储器位置撤销保护以便允许访问。
在一些情况下,异步复制管理器106可以在不“固定(pinning)”与位置相关联的存储器页面的情况下保护在存储器120中的位置。固定存储器页面涉及对页面进行标记,从而使得页面不会被交换到在存储器120外的物理存储器位置,诸如,例如,第二存储位置(例如,硬盘驱动器)。在不固定存储器页面的实施方式中,异步复制管理器106可以保护与物理位置对应的虚拟存储器页面。
在复制操作已经完成之后,异步复制管理器106然后可以对在存储器120中的位置撤销保护。在一些情况下,异步复制管理器106可以使用转换后备缓冲区(TLB)来促进异步复制操作。异步复制管理器106可以保持TLB与任何内核重映射活动同步以维持一致的页面表。在一些情况下,在发生页面错误时,异步复制管理器106可以生成精确的中断。该精确的中断可以包括信息,诸如,当前正在复制并且无法写入的存储器位置的指示。可以实施软件应用108以处理这种指示,诸如,通过在允许复制操作完成的特定时间量之后重试复制操作。在一些实施方式中,如果遇到页面错误,则可以通过常规负载/存储复制机制来重试该操作。
在一些实施方式中,异步复制管理器106对复制处理器104的请求可以包括通知指示,该通知指示用于指示要如何处理异步复制操作完成的通知。通知指示可以,例如,向复制处理器104指示异步复制管理器106将进行轮询直到设置完成标记为止。例如,复制处理器104可以在异步复制操作完成时将完成文字或者完成位写入特定存储器位置,并且异步复制管理器106可以轮询该存储器位置以确定复制操作的状态。通知指示可以,例如,向复制处理器104指示复制处理器104应该在异步复制操作完成时向异步复制管理器106传递中断。异步复制管理器106本身可以处理该中断或者允许中断处理程序来处理该中断。
在一些实施方式中,异步复制管理器106可以提供用于异步地复制大量数据的技术。例如,异步复制管理器106可以限制一次复制的字节的数目。例如,可以将每一次复制的字节限制在一定数目内,诸如,512字节、64千字节、或者另一数目的字节。在一些情况下,可以将待复制的大量数据分为更小的部分。例如,可以在复制之前,将1Gb的数据分为64Kb部分。按照这种方式,其它复制操作不必在开始之前等待整个大数据文件被复制,而可以交错在复制划分后的更小数据部分的操作内。在一些情况下,异步复制管理器106可以在大量数据的复制期间切换,从而使得可以复制更小量的数据。例如,可以使大量数据复制操作暂停,从而使得,更小的数据复制操作不必等待大数据复制操作完成。例如,在大数据复制操作期间,异步复制管理器106可以保存信息,诸如,源地址、目的地地址、总字节数目、当前存储器位置、或者其它信息。在复制更小的数据之后,异步复制管理器106可以基于保存的信息来继续大数据复制。在一些情况下,在处理器102上执行的线程可以分别具有专用异步复制管理器106,并且在一些情况下,多个线程可以共享单个异步复制管理器106。在一些实施方式中,系统100可以包括多个复制管理器,从而允许将大复制操作并行成多个更小的复制操作。
在一些实施方式中,异步复制管理器106提供高速缓存控制。在一些情况下,应用108可以用信号通知异步复制管理器106以确定高速缓存行为。例如,应用108可以调用异步复制管理器106函数,包括指示是否对数据(源或者目的)进行高速缓存的高速缓存标记。在一些实施方式中,异步复制管理器106可以确定是否对待复制的数据进行高速缓存。例如,异步复制管理器106可以分析软件应用(例如,通过检查待在当前应用上下文中执行的未来指令或者过去执行历史)并且预测将来是否有可能使用复制的数据。如果将来有可能会使用该数据,则异步复制管理器106可以确保对该数据进行高速缓存,并且如果将来不可能会使用该数据,则异步复制管理器106可以确保不对该数据进行高速缓存。例如,异步复制管理器106可以在发送至复制处理器104的复制请求中包括高速缓存标记值。例如,在网络上下文中,在网络缓冲区或者NIC DMA中的目的地数据很少被重复使用,并且因此可以得益于不应该对目的地数据进行高速缓存的信号。
图2是用于提供异步复制操作的示例过程200的流程图。过程200包括在应用108、异步复制管理器(异步复制管理器)106、复制处理器104、和用于异步地复制数据的存储器120之间的交互。在210中,应用108将复制操作请求发送至异步复制管理器106。例如,应用108可以在执行期间调用在异步复制管理器106内的一个或者多个函数并且提供关于所请求的复制操作的信息(诸如,源地址、目的地地址、用于复制的字节、是否应该对数据进行高速缓存的指示、在完成时的通知方法等)。
在215中,异步复制管理器106准备复制操作。例如,异步复制管理器106可以分析所请求的操作,并且在请求该操作之前执行各种任务。在一些情况下,异步复制管理器106可以在请求复制操作之前保护合适的存储器位置(例如,用于该复制的源和目的地)。异步复制管理器106还可以分析所请求的复制操作,并且确定是否如限定一样请求该操作或者将该操作分成多个复制操作,诸如,例如,在大复制操作的情况下。如上所述,异步复制管理器106还可以对虚拟存储器部件(例如,页面表、TLB等)执行任何准备以允许其在复制操作期间维持这些结构的同步。异步复制管理器106还可以将从软件应用108发送的任何虚拟存储器地址(例如,源地址和目的地地址)转换成在存储器内的物理地存储器地址。
在220中,异步复制管理器106将复制操作请求发送至复制处理器104。复制操作请求包括关于所请求的复制操作的信息(例如,源地址、目的地地址、用于复制的字节、是否应该对数据进行高速缓存的指示等)。在一些情况下,复制处理器104可以分析该请求以确定其目前是否可以执行复制操作。如果不能执行,诸如,如果另一复制操作正在进行中,则复制处理器104可以将该请求排队稍后执行,或者可以向异步复制管理器106指示目前不能执行该请求。在一些情况下,异步复制管理器106可以基于针对该操作的指示的优先级来将复制操作排队,从而使得先于较低优先级操作执行较高优先级的操作。
在225中,复制处理器104与存储器120交互以执行复制操作。在225中的复制操作期间,应用108继续在CPU上执行,如205中所示。在235中,复制处理器104确定复制操作已经完成。在240中,复制处理器104向异步复制管理器106指示所请求的复制操作已经完成。可以使用上述各种技术来传送该指示。
在245中,异步复制管理器106在复制完成时结束复制操作。异步复制管理器106例如可以对任何之前保护的数据撤销保护。在250中,异步复制管理器106向应用108报告复制操作完成。在应用108已经指示不需要指示完成(例如,通过在初始函数调用中传送这种指示)的情况下,可以省略该步骤。
图3描绘了用于异步复制操作的示例过程300。例如,可以通过图1中所示的系统100来实施过程300。在305中,通过复制处理器接收对异步复制操作的请求。可以在通过与复制处理器分离的处理器执行软件应用期间从该软件应用接收该请求。还可以从可由在管理软件应用的执行的操作系统的用户空间中的软件应用访问的复制管理器接收请求。在一些情况下,可以在处理器不执行模式切换的情况下生成该请求。
在310中,响应于该请求通过复制处理器发起异步数据复制操作。在一些情况下,发起异步数据复制操作通过第一处理器来执行,并且包括,第一处理器指令与第一处理器不同的第二处理器来执行异步数据复制操作。例如,第一处理器可以是CPU并且该第一处理器指令第二处理器(复制处理器)执行异步复制操作。在315中,通过处理器继续执行软件应用。软件应用的执行可以在过程300中的所有步骤中连续地发生。
在320中,确定异步复制操作已经完成。在325中,响应于确定异步复制操作已经完成,复制处理器选择性地通知软件应用异步复制操作已经完成。例如,复制处理器可以确定操作已经完成并且将中断发送至异步复制管理器,该异步复制管理器可以与软件应用交互。作为另一示例,复制处理器可以确定操作已经完成并且设置异步复制管理器轮询或者检查的完成标记。
图4是可以用于实施该文件描述的系统和方法的计算装置400和450(作为客户端或者作为服务器或者多个服务器)的框图。计算装置400旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。计算装置450旨在表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能手机、和其它类似的计算装置。另外,计算装置400或者450可以包括通用串行总线(USB)闪速驱动。USB闪速驱动可以存储操作系统和其它应用。USB闪存驱动可以包括输入/输出部件,诸如,无线发射器或者可以插入到另一计算装置的USB端口的USB连接器。本文所示的部件、它们的连接和关系、以及它们的功能仅仅旨在作为示例,并且不旨在限制本文件中描述的和/或要求的实施方式。
计算装置400包括:处理器402、存储器404、存储装置406、连接至存储器404和高速扩展端口410的高速接口408,和连接至低速总线414和存储装置406的低速接口412。每个部件402、404、406、408、410和412利用不同的总线互相连接,并且可以安装在公共主板上或者根据需要以其它的方式安装。处理器402可以对在计算装置400内的指令进行处理,包括存储在存储器404中或者存储装置406上以用于在外部输入/输出装置(诸如,耦合至高速接口408的显示器416)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种存储器一起使用。同样,可以连接多个计算装置400,每个装置提供部分操作(例如,作为服务器库、一组刀片式服务器、或者多处理器系统)。
存储器404存储在计算装置400内的信息。在一种实施方式中,存储器404是一个或者多个易失性存储器单元。在另一实施方式中,存储器404是一个或者多个非易失性存储器单元。存储器404还可以是另一种形式的计算机可读介质,诸如,磁盘或者光盘。
存储装置406能够为计算装置400提供海量存储装置。在一种实施方式中,存储装置406可以是或者可以包括计算机可读介质,诸如,软盘装置、硬盘装置、光盘装置、或者磁带装置、闪速存储器或者其它类似的固态存储器装置,或者装置的阵列(包括存储区域网络或者其它配置的装置)。计算机程序产品可以有形地体现为信息载体。计算机程序产品还可以包含指令,该指令在执行时执行一种或者多种方法,诸如,上文描述的那些方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器404、存储装置406、或者在处理器402上的存储器。
高速控制器408管理计算装置400的带宽密集型操作,而低速控制器412管理较低的带宽密集型操作。这种功能分配仅仅是示例性的。在一种实施方式中,高速控制器408耦合至存储器404、显示器416(例如,通过图形处理器或者加速度计)、和高速扩展端口410,该高速扩展端口410可以接受各种扩展卡(未示出)。在实施方式中,低速控制器412耦合至存储装置406和低速扩展端口414。低速扩展端口414可以包括各种通信端口(例如,USB、蓝牙、以太网、和无线以太网),可以耦合至一个或者多个输入/输出装置,诸如键盘、指示装置、扫描器、或者组网装置(诸如交换机或者路由器),例如通过网络适配器。
如图所示,可以利用多种不同形式来实施计算装置400。例如,计算装置400可以实施为标准服务器420,或者多次在一组这样的服务器中实施。还可以将计算装置400实施为机架式服务器424。另外,计算装置400可以实施在个人计算机(诸如,膝上型计算机422)中。替选地,来自计算装置400的部件可以与移动装置(未示出)(诸如,装置450)中的其它部件结合。每个这种装置可以包含计算装置400和450中的一个或多个,并且整个系统可以由彼此通信的多个计算装置400和450组成。
除了其它部件之外,计算装置450还包括处理器452、存储器464、输入/输出装置(诸如,显示器454)、通信接口466和收发器468。装置450还可以设置有用于提供附加存储的存储装置,诸如微型硬盘或者其它装置。部件450、452、564、454、566和568中的每一个使用各种总线互相连接,并且一些部件可以安装在公共的主板上或者根据需要以其它方式安装。
处理器452可以执行在计算装置450内的指令,包括存储在存储器464中的指令。可以将处理器实施为包括分离的且多个模拟和数字处理器的芯片的芯片集。另外,处理器可以使用任何数目的架构来实施。例如,处理器410可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器、或者MISC(最小指令集计算机)处理器。处理器可以提供,例如,对装置450的其它部件的协调,诸如,用户界面的控制、由装置450运行的应用、和通过装置450进行的无线通信。
处理器452可以通过耦合至显示器454的控制接口458和显示器接口456来与用户通信。显示器454可以是,例如,TFT(薄膜晶体管液晶显示屏)显示器或者OLED(有机发光二极管)显示器、或者其它合适的显示技术。显示接口456可以包括合适的用于驱动显示器454向用户呈现图形和其它信息的电路系统。控制接口458可以接收来自用户的命令并且对命令进行转换以提交至处理器452。另外,外部接口462可以提供与处理器452的通信,以便使装置450能够与其它装置进行近区域通信。在一些实施方式中,外部接口462可以提供例如有线通信,或者在一些实施方式中可以提供无线通信,并且还可以使用多个接口。
存储器464存储在计算装置450内的信息。可以将存储器464实施为以下中的一个或多个计算机可读介质或媒体、一个或者多个易失性存储器单元、或者一个或者多个非易失性存储器单元。还可以提供扩展存储器444并且通过扩展接口442将扩展存储器444连接至装置450,该扩展接口442可以包括,例如,SIMM(单列直插存储器模块)卡接口。这种扩展存储器444可以为装置450提供附加存储空间,或者还可以存储装置450的应用或者其它信息。具体地,扩展存储器444可以包括用于执行或者补充上文描述的过程的指令,并且还可以包括安全信息。因此,例如,可以将扩展存储器444提供为装置450的安全模块,并且可以用允许安全使用装置450的指令来对其进行编程。另外,可以经由SIMM卡与附加信息(诸如,将识别信息通过不可侵入的方式放在SIMM卡上)一起来提供安全应用。
存储器可以包括,例如,闪速存储器和/或NVRAM存储器,如下文所描述的。在一种实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在执行时执行一种或者多种方法,诸如,上文所描述的那些方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器464、扩展存储器444、或者在处理器452上的存储器,可以通过例如收发器468或者外部接口462来接收该信息载体。
装置450可以通过通信接口466无线地通信,若需要,该通信接口466可以包括数字信号处理电路系统。通信接口466可以提供在各种模式或者协议下的通信,诸如,GSM语音通话、SMS、EMS、或者MMS短信发送、CDMA、TDMA、WCDMA、CDMA2000、或者GPRS等。这种通信可以例如通过无线电频率收发器468发生。另外,短程通信可以使用诸如蓝牙、WiFi、或者其它这种收发器(未示出)发生。另外,GPS(全球定位系统)接收器模块440可以将附加的与导航或者位置有关的无线数据提供至装置450,若合适,该无线数据可以供在装置450上运行的应用使用。
装置450还可以使用音频编解码器460进行可听地通信,该音频编解码器460可以接收来自用户的口头信息并且将口头信息转换为可用的数字信息。音频编解码器460还可以以其他方式为用户生成可听见的声音,诸如,通过扬声器,例如,在装置450的听筒中的扬声器。这种声音可以包括来自语音通话的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括通过在装置450上运行的应用生成的声音。
如图所示,可以将计算装置450实施成多种不同的形式。例如,可以将计算装置450实施为蜂窝电话480,也可以将计算装置450实施为智能手机482、个人数字助理、或者其它类似的移动设备的一部分。
在各种实施方式中,如果在先的操作不成功(例如,如果不执行该确定),则不执行“响应于”或者“由于”另一操作(例如,确定或者识别)而执行的操作。“自动地”执行的操作是在没有用户介入(例如,介入用户输入)的情况下执行的操作。本文中用条件语言描述的特征可以描述可选的实施方式。在一些示例中,从第一装置“传输”到第二装置包括:第一装置将数据放入传输链路以供第二装置接收,但是可以不包括接收数据的第二装置。相反,从第一装置“接收”可以包括从传输链路接收数据,但是可以不包括传输数据的第一装置。
通过计算系统进行“确定”可以包括:计算系统请求另一装置执行该确定并且将结果提供至计算系统。
可以在数字电子电路系统中、或者在计算机软件、固件、或者硬件中(包括本说明书所公开的结构及其结构等效物)、或者它们中的一个或者多个的组合中实施本说明书中描述的主题的实施例和操作。
术语“数据处理设备”包含用于处理数据的所有种类的设备、装置、和机器,包括:例如,可编程处理器、计算机、芯片上系统、或者前述中的多种或者组合。设备可以包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,设备还可以包括为探讨中的计算机程序创建执行环境的代码,例如,构成处理器固件、操作系统、跨平台运行时环境、虚拟机、或者它们中的一个或者多个的组合的代码。
可以用任何形式的编程语言(包括编译语言或者解释语言、陈述性语言或者程序语言)来编写计算机程序(也称为程序、软件、软件应用、脚本或者代码),并且可以按照任何形式(包括作为独立式程序或者模块、部件、子例程、对象、或者适合用于计算环境的其它单元)来部署计算机程序。计算机程序可以但并非必须与文件系统中的文件对应。可以将程序存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中,或者存储在专用于所讨论中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或者多个模块、子程序、或者部分代码的文件)中。可以将计算机程序部署为在一个计算机上执行或者在位于一个站点处或者分布在多个站点中并且通过通信网络互相连接的多个计算机上执行。
可以通过一个或者多个可编程处理器来进行本说明书中所描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来进行动作。也可以通过专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))来执行过程和逻辑流程,并且也可以将设备实施为专用逻辑电路系统。
适合执行计算机程序的处理器包括例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是用于根据指令执行动作的处理器、和用于存储指令和数据的一个或者多个存储器装置。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储装置(例如,磁盘、磁光盘、或者光盘),或者计算机可以操作地耦合以接收来自该海量存储装置的数据或者将数据传输至该海量存储装置或者进行两者。然而,计算机无需具有这种装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器、或者便携式存储装置(例如,通用串行总线(USB)闪存驱动),仅举几例。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如,半导体存储器装置(例如,EPROM、EEPROM、和闪速存储器装置);磁盘(例如,内部硬盘或者可移动盘);磁光盘、和光盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何发明或者可能被要求的内容的范围的限制,而是作为针对特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的场境下描述的某些特征还可以组合地实施在单个实施例中。相反,在单个实施例的场境中描述的各种特征也可以分立地或者按照任何合适的子组合实施在多个实施例中。此外,虽然上文可能将特征描述为以某些组合来起作用并且最初甚至同样地对该特征进行了要求,但是在一些情况下可以从组合中删除来自所要求的组合的一个或者多个特征。并且所要求的组合可以指向子组合或者子组合的变化。
同样,虽然在附图中按照特定顺序示出了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继的顺序来进行这种操作,或者需要进行所有图示的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,不应该将在上述实施例中的各种系统部件的分离理解为在所有实施例中需要这种分离,并且应该理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
由此,已经描述了本主题的具体实施例。其它实施例在以下权利要求书的范围内。在某些情况下,在权利要求书中叙述的动作可以按照不同的顺序来进行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

Claims (20)

1.一种通过一个或者多个处理器执行的计算机实现的方法,所述方法包括:
在通过处理器执行软件应用期间,通过与所述处理器分离的复制处理器接收对异步数据复制操作的请求,所述异步数据复制操作用于在能够由所述复制处理器访问的存储器内复制数据,其中,所述请求是从复制管理器接收的,所述复制管理器能够由在操作系统的用户空间中的所述软件应用访问,所述操作系统管理所述软件应用的执行;
响应于所述请求,通过所述复制处理器发起所述异步数据复制操作;
通过所述处理器继续执行所述软件应用;
通过所述复制处理器确定所述异步数据复制操作已经完成;
响应于确定所述异步复制操作已经完成,通过所述复制处理器向所述软件应用选择性地通知所述异步复制操作已经完成。
2.根据权利要求1所述的方法,其中,从所述复制管理器接收到的所述请求是在所述处理器没有对所述操作系统执行模式切换的情况下生成。
3.根据权利要求1所述的方法,其中,所述请求包括虚拟地址参数,所述虚拟地址参数识别包含要被复制的数据的源位置和所述数据要被复制到的目的地位置。
4.根据权利要求1所述的方法,其中,从所述复制管理器接收到的所述请求包括高速缓存标记,所述高速缓存标记指示所复制的数据是否应该存储在与所述处理器相关联的高速缓存中。
5.根据权利要求1所述的方法,其中,所述异步数据复制操作指示所述存储器内的源地址和所述存储器内的目的地地址,其中从所述源地址复制数据,所述目的地地址用于接收所述数据,并且所述方法进一步包括:
在发起所述异步数据复制操作之前,保护在所述存储器中与所述源地址和所述目的地地址对应的位置。
6.根据权利要求5所述的方法,其中,保护所述位置是在没有固定与所述位置相关联的虚拟存储器页面的情况下执行。
7.根据权利要求5所述的方法,所述方法进一步包括:响应于确定所述异步复制操作已经完成,对所述存储器中的所述位置撤销保护。
8.根据权利要求1所述的方法,其中,所述处理器和所述复制处理器共同位于芯片上系统装置内。
9.根据权利要求1所述的方法,其中,所述处理器和所述复制处理器位于通过数据总线连接的分离的装置中。
10.一种系统,包括:
存储器,所述存储器用于存储数据;
处理器,所述处理器能够操作用于执行第一操作,所述第一操作包括:
执行软件应用;以及
复制处理器,所述复制处理器与所述处理器分离并且通信地耦合至所述存储器和所述处理器,所述复制处理器能够操作用于执行第二操作,所述第二操作包括:
在通过所述处理器执行所述软件应用期间,接收对异步数据复制操作的请求,所述异步数据复制操作用于在能够由所述复制处理器访问的所述存储器内复制数据,其中,所述请求是从复制管理器接收的,所述复制管理器能够由在操作系统的用户空间中的所述软件应用访问,所述操作系统管理所述软件应用的执行;
响应于接收到所述请求,发起所述异步数据复制操作;
确定所述异步数据复制操作已经完成;以及
响应于确定所述异步复制操作已经完成,向所述软件应用选择性地通知所述异步复制操作已经完成。
11.根据权利要求1所述的系统,其中,从所述复制管理器接收到的所述请求是在所述处理器没有对所述操作系统执行模式切换的情况下生成。
12.根据权利要求1所述的系统,其中,所述请求包括虚拟地址参数,所述虚拟地址参数识别包含要被复制的数据的源位置和所述数据要被复制到的目的地位置。
13.根据权利要求1所述的系统,其中,从所述复制管理器接收到的所述请求包括高速缓存标记,所述高速缓存标记指示所复制的数据是否应该存储在与所述处理器相关联的高速缓存中。
14.根据权利要求1所述的系统,其中,所述异步数据复制操作指示所述存储器内的源地址和所述存储器内的目的地地址,其中从所述源地址复制数据,所述目的地地址用于接收所述数据,并且所述第二操作进一步包括:
在发起所述异步数据复制操作之前,保护在所述存储器中与所述源地址和所述目的地地址对应的位置。
15.根据权利要求14所述的系统,其中,保护所述位置是在没有固定与所述位置相关联的虚拟存储器页面的情况下执行。
16.根据权利要求14所述的系统,所述第二操作进一步包括:响应于确定所述异步复制操作已经完成,对所述存储器中的所述位置撤销保护。
17.根据权利要求1所述的系统,其中,所述处理器和所述复制处理器共同位于芯片上系统装置内。
18.根据权利要求1所述的系统,其中,所述处理器和所述复制处理器位于通过数据总线连接的分离的装置中。
19.一种存储指令的非暂时性计算机可读介质,所述指令在被执行时能够操作用于致使至少一个处理器执行操作,所述操作包括:
在通过处理器执行软件应用期间,通过与所述处理器分离的复制处理器接收对异步数据复制操作的请求,所述异步数据复制操作用于在能够由所述复制处理器访问的存储器内复制数据,其中,所述请求是从复制管理器接收的,所述复制管理器能够由在操作系统的用户空间中的所述软件应用访问,所述操作系统管理所述软件应用的执行;
响应于所述请求,通过所述复制处理器发起所述异步数据复制操作;
通过所述处理器继续执行所述软件应用;
通过所述复制处理器确定所述异步数据复制操作已经完成;
响应于确定所述异步复制操作已经完成,通过所述复制处理器向所述软件应用选择性地通知所述异步复制操作已经完成。
20.根据权利要求19所述的计算机可读介质,其中,从所述复制管理器接收到的所述请求是在所述处理器没有对所述操作系统执行模式切换的情况下生成。
CN201610899744.0A 2015-10-16 2016-10-14 在存储器内异步复制数据 Active CN107025068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010474833.7A CN111813333B (zh) 2015-10-16 2016-10-14 在存储器内异步复制数据的方法、系统和介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/885,786 2015-10-16
US14/885,786 US10191672B2 (en) 2015-10-16 2015-10-16 Asynchronous copying of data within memory

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010474833.7A Division CN111813333B (zh) 2015-10-16 2016-10-14 在存储器内异步复制数据的方法、系统和介质

Publications (2)

Publication Number Publication Date
CN107025068A true CN107025068A (zh) 2017-08-08
CN107025068B CN107025068B (zh) 2020-06-16

Family

ID=57240816

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010474833.7A Active CN111813333B (zh) 2015-10-16 2016-10-14 在存储器内异步复制数据的方法、系统和介质
CN201610899744.0A Active CN107025068B (zh) 2015-10-16 2016-10-14 在存储器内异步复制数据

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010474833.7A Active CN111813333B (zh) 2015-10-16 2016-10-14 在存储器内异步复制数据的方法、系统和介质

Country Status (5)

Country Link
US (2) US10191672B2 (zh)
EP (2) EP3657341B1 (zh)
CN (2) CN111813333B (zh)
DK (2) DK3657341T3 (zh)
TW (2) TWI650703B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413202A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品
CN113711188A (zh) * 2019-04-25 2021-11-26 Emc Ip控股有限公司 连续复制系统中的数据分发

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1906594A (zh) * 2004-01-09 2007-01-31 国际商业机器公司 使用虚拟技术保持远程拷贝的一致性
US20090276571A1 (en) * 2008-04-30 2009-11-05 Alan Frederic Benner Enhanced Direct Memory Access
US20100058024A1 (en) * 2008-09-01 2010-03-04 Sony Computer Entertainment Inc. Data Transfer Apparatus, Data Transfer Method And Processor
US20110106905A1 (en) * 2009-10-30 2011-05-05 International Business Machines Corporation Direct sending and asynchronous transmission for rdma software implementations

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US8327101B2 (en) 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8712961B2 (en) * 2011-09-23 2014-04-29 International Business Machines Corporation Database caching utilizing asynchronous log-based replication
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
TWI478055B (zh) * 2012-12-11 2015-03-21 Gemtek Technology Co Ltd 非對稱式處理之多核心系統與其網路設備
US9311225B2 (en) * 2013-01-04 2016-04-12 Microsoft Technology Licensing, Llc DMA channels
US9235485B2 (en) * 2013-07-22 2016-01-12 International Business Machines Corporation Moving objects in a primary computer based on memory errors in a secondary computer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1906594A (zh) * 2004-01-09 2007-01-31 国际商业机器公司 使用虚拟技术保持远程拷贝的一致性
US20090276571A1 (en) * 2008-04-30 2009-11-05 Alan Frederic Benner Enhanced Direct Memory Access
US20100058024A1 (en) * 2008-09-01 2010-03-04 Sony Computer Entertainment Inc. Data Transfer Apparatus, Data Transfer Method And Processor
US20110106905A1 (en) * 2009-10-30 2011-05-05 International Business Machines Corporation Direct sending and asynchronous transmission for rdma software implementations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K. VAIDYANATHAN ET AL: "Efficient Asynchronous Memory Copy Operations on Multi-Core Systems and I/OAT", 《IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413202A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品
CN110413202B (zh) * 2018-04-28 2024-03-08 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品
CN113711188A (zh) * 2019-04-25 2021-11-26 Emc Ip控股有限公司 连续复制系统中的数据分发
CN113711188B (zh) * 2019-04-25 2024-04-05 Emcip控股有限公司 连续复制系统中的数据分发

Also Published As

Publication number Publication date
EP3156906B1 (en) 2020-02-12
EP3156906A1 (en) 2017-04-19
TW201921242A (zh) 2019-06-01
CN111813333A (zh) 2020-10-23
DK3156906T3 (da) 2020-03-16
CN107025068B (zh) 2020-06-16
EP3657341A1 (en) 2020-05-27
US10191672B2 (en) 2019-01-29
DK3657341T3 (da) 2022-11-07
TWI710950B (zh) 2020-11-21
EP3657341B1 (en) 2022-08-31
CN111813333B (zh) 2021-09-14
US10481811B2 (en) 2019-11-19
TWI650703B (zh) 2019-02-11
US20190163381A1 (en) 2019-05-30
TW201716985A (zh) 2017-05-16
US20170109082A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
EP3637269B1 (en) Managing storage devices
US10334047B2 (en) Remote direct memory access with reduced latency
US20190317910A1 (en) Processing of events for accelerators utilized for parallel processing
CN101390057B (zh) 两级中断服务例程
CN104376036B (zh) 具有减少时延的分组处理的套接字管理
US10055371B2 (en) Apparatus and method for RDMA with commit ACKs
KR20160079646A (ko) 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법
KR102683728B1 (ko) 데이터 스토리지 시스템의 낮은 쓰기 레이턴시를 얻는 방법
CN105453043B (zh) 在不受i/o协议或目标设备支持时提供队列屏障
US8280197B1 (en) Managed background loading of image resources in resource-constrained devices
CN104104705B (zh) 分布式存储系统的接入方法和设备
US9304711B2 (en) Latency reduction in read operations from data storage in a host device
CN116149559A (zh) 队列处理方法、装置、服务器、电子设备和存储介质
CN107025068A (zh) 在存储器内异步复制数据
US9490988B2 (en) Continuous information transfer with reduced latency
US9311225B2 (en) DMA channels
WO2023201648A1 (zh) 文件的操作装置、计算机设备和操作设备
US20240160372A1 (en) Prepopulating commands at a storage device for accelerated host-issued live migration of storage data
CN117632788A (zh) 在存储器装置处的同步请求处置
CN118051472A (zh) 存储数据实时迁移的在存储设备处的预填充命令
US20180307640A1 (en) Data transfer apparatus, data transfer method, and computer-readable medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant