CN101305334A - 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎 - Google Patents

降低的本地总线通信量的磁盘驱动器操作的智能存储引擎 Download PDF

Info

Publication number
CN101305334A
CN101305334A CNA2005800488353A CN200580048835A CN101305334A CN 101305334 A CN101305334 A CN 101305334A CN A2005800488353 A CNA2005800488353 A CN A2005800488353A CN 200580048835 A CN200580048835 A CN 200580048835A CN 101305334 A CN101305334 A CN 101305334A
Authority
CN
China
Prior art keywords
data
storage engines
local bus
function
driver
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
CNA2005800488353A
Other languages
English (en)
Other versions
CN101305334B (zh
Inventor
安迪·米尔斯
肯特·P·费希尔
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.)
Nvidia Corp
NetCell Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN101305334A publication Critical patent/CN101305334A/zh
Application granted granted Critical
Publication of CN101305334B publication Critical patent/CN101305334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus 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/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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/061Improving I/O performance
    • 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明揭示一种新颖的智能存储引擎的概念,其是针对例如文件复制和移动这样的连接磁盘驱动器操作,以及例如搜索、病毒扫描以及卷合并这样的更加精细的过程。在一个实施例中,利用本地处理器的智能并通过适合的驱动器(60)和API(App.B)访问的存储引擎(40)进行磁盘访问操作,而不会加重主机CPU(22)的负担且不会向本地CPU总线(34)上强加数据通信量,除了在适当的情况下返回结果数据。

Description

降低的本地总线通信量的磁盘驱动器操作的智能存储引擎
本申请案主张2004年12月29日申请的第60/640,634号美国临时申请案的优先权,所述申请案的全文以引用的形式并入本文中。
技术领域
本发明涉及数字计算系统,特别涉及降低与所选磁盘驱动器操作有关的本地总线通信量的方法和装置。
背景技术
很多现代计算机器(包括如台式或膝上型个人计算机)采用一个或一个以上硬盘驱动器来存储操作系统、应用程序和数据文件。在一些情况下,多个磁盘驱动器可连接到单个PC,作为用以将操作系统与数据文件分开的构件、作为专门的音频-视频磁盘文件,或者以冗余独立磁盘阵列(RAID)的配置彼此耦合以提高性能和可靠性。磁盘驱动器可以多种配置部署在机器内部或作为可移动设备部署在外部等。为了本申请案的目的,所有这些布置都认为是“连接的”驱动器。换句话说,我们在这里使用术语“连接的”意味着不需要使数据通过网络就可以在本地总线和连接的驱动器之间传输数据。出于这个目的,可移动驱动器也认为是“连接的”。而且,在本申请案中,存储设备如通过IEEE 1394、USB、SATA或其它类型的连接与主机耦合的磁盘驱动器也认为是直接“连接的”,以与网络连接区分。
不论连接的磁盘驱动器存储系统的数量、类型和布置如何,许多主机应用程序或操作涉及到将数据从一个磁盘驱动器上的一个位置移动(或复制)至同一驱动器上的另一位置、或至另一个逻辑分区、或者至一个物理上独立的磁盘驱动器。其它常见操作包括在存储在硬盘驱动器上的文件中查找特定数据,或者在备份应用程序中同步文件。这类操作或应用的例子包括文件复制、移动、磁盘驱动器碎片整理、反病毒扫描、数据扫描(查找),以及数据迁移和转换。
上述应用的已知实施方式需要涉及主机CPU,并且明显地增加所述磁盘驱动器所连接的主机总线的负荷。(在本申请案中,术语“主机总线”和“本地总线”是可互换的。存在许多此类总线,其中PCI总线便是一个众所周知的例子。)增加CPU负担并在本地总线上强加繁重通信量的磁盘操作会因此导致其它不涉及文件移动操作的应用程序变慢,因为用于执行这些后台操作的同一主机数据总线也供其它应用程序使用。例如,关于如今存在的备份和反病毒应用程序最常见的抱怨之一是它们经常是强行执行的,即,它们会打断当前的应用程序并且由于大量的数据需要穿过系统总线往复传递而经常将高速计算机的性能降低。最糟糕的是,当扫描或备份过程开始执行时,如果系统内存几乎用尽,这些基本的操作会导致过多的磁盘交换发生。
为了图示说明,图1在简化的概念图10中表示计算机和连接的磁盘驱动器。所述图显示了一个正在运行的文件复制操作12,由一对进出磁盘驱动器16的数据流14表示。另外,正在运行的应用程序20使得CPU 22对分别存储在驱动器26和28上的其它数据执行各种读、写和处理。涉及这些驱动器的读和写操作引起额外的数据流,如30、32所示。图中的所有四个数据流导致本地总线34上的通信量。
仍然需要通过硬件和软件的智能应用来提高计算机系统的性能以更好地利用现有的资源。如果由特定的常见应用程序和操作(特别是那些涉及进出连接的存储设备的数据传送的应用程序和操作)强加在CPU和其本地总线上的负荷能够减轻,那么整个系统的性能将会显著提高。
通过下面参照附图对优选实施例的详细描述,可显而易见地得知其它的方面和好处。
发明内容
附图说明
图1是一个主机系统和连接的DAS磁盘驱动器的简化概念图(现有技术)。
图2是本发明一实施例中,采用“智能存储引擎”(在下文中称为“ISE”)的主机系统和连接的DAS磁盘驱动器的简化概念图。
图3是用于说明本发明中ISE的一个实施例的简化硬件方框图。
图4是用于说明本发明中ISE的替代实施例的简化硬件方框图。
图5是用于说明本发明中ISE的一个实施例的简化软件方框图。
具体实施方式
现有技术的缺陷和局限性可以通过新颖的智能存储引擎概念的不同实施例解决。所述利用本地处理器智能且通过合适的应用编程接口(API)访问的存储引擎不增加CPU负荷并且不在本地CPU总线上强加数据通信量而执行磁盘访问操作,除了适当情况下的结果数据。
本发明应用于基于PC的存储等,其中一个硬驱动器密切耦合或直接连接在主机CPU内部本地总线上,或者支持外部直接连接存储的外部扩展端口上,称为“直接连接存储”或数据采集系统(DAS)。这样的CPU内部总线可以是,例如,总线规格中PCI族中的一种。外部端口可以是例如USB2,1394或者外部SATA端口。
本发明可通过描绘图2进行概念上的说明。所述图显示了与图1相同的主机,其运行有与上述相同的文件复制操作以及应用程序。主要的不同在于ISE(智能存储引擎)40,其在示例中为逻辑上部署在所述本地总线34和磁盘驱动器16,26,28之间的硬件和软件的组合。图1中的文件复制过程12不再是由CPU执行而使得数据通过本地总线34往复地流动。在这里,改为由一个新的ISE过程42执行文件复制操作,并且数据流不再在本地总线中移动,因此降低了本地总线和CPU的负荷。复制由ISE执行,其仅仅通过本地总线传递很少的高级命令44。来自ISE的简单应答能够表明操作完成。在这个例子中,没有用户数据经过本地总线以执行复制操作12。
因此,在一方面,本发明能够通过使用一个专门的,独立的处理器或“存储引擎”实施,其能够从主机CPU上卸去某些与磁盘相关的功能的负荷,从而降低CPU以及这些驱动器正常连接的主机总线的额外开销和负荷。
本发明的另一方面,以对应用程序透明的方式支持存储引擎。本发明的另一方面,所述存储引擎能够通过应用程序编程接口执行增强功能,以便增强PC的整体性能。主机应用程序,库函数,设备驱动器等能够优选地通过适合的API利用ISE。
例如,单一命令“DS_DiskdataBlockCopy”可用于CPU以通知ISE从驱动器16(或其它驱动器)的源位置向目的地位置复制一个数据块。(见下面说明性的API函数和可能的语法)
本发明的ISE通常包括一个主机接口,用于连接主机总线或“本地总线”;一个驱动器接口,用于连接一个或一个以上磁盘驱动器;以及一个处理器,位于ISE本地。如图3,换句话说,所述ISE处理器独立于所述主机CPU或处理器。在一些实施例中,所述ISE还可以包括本地高速缓存存储器。以及,所述ISE可以包括其它的存储器用于存储软件,例如闪存存储器(FLASH memory)。
在一个实施例中,所述主机接口实施标准接口,如ATA,快速ATA,AT应用编程接口(ATAPI)等,这些都是众所周知的存储设备接口。根据一个替代实施例,主机接口实施串行链路接口,如SATA接口。
通常,所述ISE针对直接存储连接应用程序而从主机上卸去特定任务的负荷,正如下面所详细说明的。其能够减轻主机CPU的负荷以及降低主机本地总线(比如PCI总线)上的通信量,以提高系统性能。
在一个当前优选实施例中,主机应用程序或者主机操作系统可以直接调用ISE。多个客户应用程序或过程同样能够在很少或不对主机造成负荷的情况下部署。实例包含病毒扫描、备份同步支持、迁移、索引、碎片整理等等。几乎任何在CPU和连接的磁盘驱动器存储器之间的CPU本地总线上强加通信量的操作都可以全部或部分地卸荷给ISE,以提高整个系统的性能。
在驱动器侧,可以部署一个或一个以上磁盘驱动器的几乎任何配置,这取决于所采用的磁盘控制器的能力。
RAID功能实施为一个控制器设备(集成电路,专用集成电路(ASIC),系统芯片(SOC),印刷电路板(PCB)等)是有利的,其还可以实施ISE的功能。
本发明包括如下有益效果:
复制或备份大的数千兆字节级视频文件不再占用主机总线或CPU。
在减少涉及主机CPU的情况下支持数据流。
反病毒程序可以在不中断应用程序的情况下在后台运行。
在数据经过驱动器的接口时对其进行活动扫描(反病毒)。
后台碎片整理可以更频繁进行。
图3是简化的硬件方框图,用于说明ISE 76的一个实施例。在这个当前优选实施例中,所述ISE包括一个ISE处理器内核80,其可以包括,例如,66兆赫或100兆赫IP内核处理器。所述引擎具有主机接口78,用于连接到主机本地总线84,如通常用于个人计算机和其它基于微处理器的系统的PCI总线。一个主机直接存储器访问(DMA)块82用本地总线(或“CPU总线”——在这里的意义相同)实施DMA操作。一个本地高速缓存存储器86可以被所述存储引擎访问或者设在所述存储引擎内用于数据缓冲以优化整个系统性能。可以使用SDRAM等在主机接口和驱动器接口之间的数据路径中进行数据缓冲。对于目前的技术,大约512MB缓存应所述足够,这也可以根据存储器和相关接口的发展而变化。另外,本地软件存储器,例如使用FLASH存储器88,优选地实施为能存储和更新可以由所述ISE处理器80执行的软件。也可以使用各种形式的只读存储器(ROM)。
如果需要,主机接口78可以实施ATA模拟,如共同转让的标题为“RAID ControllerSystem and Method with ATA Emulation Host Interface”的第6,772,108B1号美国专利所述,其以引用的形式并入本文中。
在一个实施例中,数据路径带宽可以是高速缓存器800MB/S;主机533MB/S;以及驱动器400MB/S。标记为“RAID XOR”的方框90指用于实施RAID操作的构件,优选地是在数据路径上“即时”的。磁盘驱动器存储系统的即时的异或(XOR)冗余操作在第6,018,778号美国专利中描述,其以引用的形式并入本文中。
磁盘驱动器接口92可以采用各种形式。在一个简单的例子中,其包括标准ATA接口,用于连接最多4个IDE磁盘驱动器。其可包括一个或一个以上UDMA接口;或者一个或一个以上SATA接口;或其它技术。本发明的ISE概念可应用于DAS系统中可用的任何需要的磁盘驱动器/驱动器接口技术。
标记为驱动器切换器94的方框本质上包括数据路径切换和匹配函数,如申请人的第WO 2004/095255A2号PCT国际公开案以及相应的第US-2004-0264309A1号美国专利申请公开案,其均以引用的形式并入本文中。在当前优选商业实施例中,RAID异或引擎包括在这个驱动器切换器94中,尽管在图3中表示为一个独立的方框。
图4为存储引擎另一实施例的简化的方框图。类似图3或4的实施例可以方便地实施为磁盘控制器单元的一部分,例如,在主板或者子板上。在这个例子中,设有一个100兆赫的专门存储处理器,尽管根据需要支持的所要功能或者性能要求,其频率可高出或低出许多。高速缓存器可以包含1GB或者更多,这取决于应用程序要求。
在图4的例子中,数据路径带宽可以是高速缓存器2GB/S;PCI-Express主机接口250MB/S(1×)或者1GB/S(4×);以及驱动器1.2GB/S。另一实施例实施多达如512个64位字的数据活动扫描和匹配,用于类似病毒签名扫描的应用程序。RAID等级0,1,XL,5都可以包括在内。在进出所述主机总线的数据传送之前,也可对数据流和数据流队列进行管理。
操作
在运行中,有两个一般类型的操作。根据第一模式,标准文件操作,如文件复制和文件移动,被文件系统过滤器截取并且直接送到所述ISE以在驱动器之间移动数据块。在第二模式中,定义一个API用于第三方应用程序,如反病毒软件、备份软件、磁盘镜像、磁盘碎片整理工具等等。其中每个都将依次讨论。
现在参考图5,这个简化的命令和数据流程图表示应用程序50,其可以使用或可以不使用DriectStor API命令。文件系统过滤器模块54监视给操作系统(OS)文件系统56的命令。其检查给出的命令是否指向当前连接在与所述存储引擎66相关的控制器的磁盘驱动器。如果所述命令指向这样的驱动器(例如,图5中的驱动器B(72))并且如果一个命令被所述过滤器54辨识出是其能够处理的预定命令集中的一个,那么所述过滤器54截取所述命令,这样所述命令不会到达标准操作系统文件系统,所述文件系统由内核56和标准磁盘驱动器代码58实施。而是,所述过滤取54使用DirectStor API直接向经装配以实施所述API的特定驱动器60发送一个或一个以上命令。所述驱动器60设置为能够识别DirectStor API命令并且将它们直接转递到所述存储引擎66以执行。
在另一实施例中,第三方应用程序50在其代码中使用了DS API 52。因而,所述应用程序将命令直接发送给所述驱动器60,驱动器60又将它们转递给所述存储引擎66。所述存储引擎响应于DS API而执行代码,以执行磁盘驱动器操作,如本地移动和复制,意味着不需要在PCI总线62上放置任何数据。对所述引擎的每次调用都被分配一个标签用于识别,正如下面进一步说明的。
所述引擎66可选地包括高速缓存存储器68用于缓冲进出连接的驱动器A(70)和/或B(72)的数据传送,从而直到操作完成为止不需要穿过所述PCI本地总线以及不使用主机CPU循环。正如所提到的,任何合适的随机访问存储器都可以用来实施所述高速缓存,如DRAM或SDRAM。在一个实施例中,一个磁盘控制器印刷电路板在其板上包括存储引擎和高速缓存,连同主机和驱动器接口。
这些API为独立软件开发商(ISV)定义,如反病毒、游戏、流数字媒体密集的应用程序、可能会要求私人安全隐藏存储空间的应用程序、备份和碎片整理软件。通过调用这些API,所述应用程序能够直接向NetCell ISE发送命令。
所述API能够以任何形式实施或者发布,包括但不限于:
——动态连接库(DLL)。
——Windows服务。
——组建对象模型(COM)对象。
下面是ISE激活的主机应用程序/库/设备驱动器与本发明一个实施例的ISE之间的ISE ATA命令接口的说明性例子。这个实施例中使用商标“DirectStor”作为智能存储引擎的简写形式。
DirectStor说明性命令特征集
块复制/移动命令
1、说明
这些命令/子命令定义为在两个数组之间复制或移动数据块,或者在同一数组内移动数据。第二数组可以是与第一数组连接到同一个卡的内部数组或者是连接到eSATA端口的外部数组。
2、命令代码:83h
3、子命令
先前的特征寄存器的目录具体说明这些子命令。
-MOVE_SET_SRC_LBA
-MOVE_SET_LAST_LBA
-MOVE_SET_DEST_LBA
-MOVE_PROCEED
-MOVE_SUSPEND
-MOVE_ABORT
-MOVE_STATUS
MOVE_SET_SRC_LBA
用于设置所述源数组的起始逻辑块地址(LBA)的子命令。
输入
Figure A20058004883500111
输出
Figure A20058004883500112
Figure A20058004883500121
MOVE_SET_LAST_LBA
用于设置源数组的结束逻辑块地址的子命令。
输入
Figure A20058004883500122
输出
Figure A20058004883500131
MOVE_SET_DEST_LBA
用于设置目的地数组的起始逻辑块地址子命令。
输入
Figure A20058004883500132
输出
Figure A20058004883500141
MOVE_PROCEED
用于进行已发出的块复制/移动命令的执行的子命令。
输入
Figure A20058004883500142
输出
Figure A20058004883500143
Figure A20058004883500151
MOVE_SUSPEND
用于挂起已发出的块复制/移动命令的执行的子命令。
输入
Figure A20058004883500152
输出
Figure A20058004883500153
MOVE_ABORT
用于取消正在发出的块复制/移动命令的子命令。
输入
Figure A20058004883500161
输出
Figure A20058004883500162
MOVE_STATUS
用于获取正在发出的块复制/移动命令的进程状态的子命令。
输入
Figure A20058004883500171
输出
Figure A20058004883500172
下面是本发明的高层API的一些例子。这些仅为说明性的而不是完全的。本发明的一些实施例不需要使用API;一些实施方法对于应用程序将是透明的。
快速块移动API
DS_DiskdataBlockCopy
这个函数将数据块从一个位置复制到同一磁盘卷的另一位置或者与ISE相连的另一磁盘卷。
int DS_DiskdataBlockCopy (
     DS_REQUEST Dsr,
     DS_VOL_BLOCK_LOCATION*DestBlockLocation,
     DS_VOL_BLOCK_LOCATION*SrcBlockLocation,
     PFN_PROGRESS ProgressCallback
    );
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
DestBlockLocation
包含目的地卷块的位置信息。
SrcBlockLocation
包含源卷块的位置信息。
ProgressCallback
回调函数的指针,将每隔特定的时间调用所述回调函数以向调用程序进程通知已发出的命令。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_DiskdataBlockMove
这个函数将数据块从一个位置移动到相同磁盘卷的另一位置或者与ISE连接的另一磁盘卷。
int DS_DiskdataBlockMove (
     DS_REQUEST Dsr,
     DS_VOL_BLOCK_LOCATION*DestBlockLocation,
     DS_VOL_BLOCK_LOCATION*SrcBlockLocation,
     PFN_PROGRES S ProgressCallback
     );
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
DestBlockLocation
包含目的地卷块的位置信息。
SrcBlockLocation
包含源卷块的位置信息。
ProgressCallback
回调函数的指针,将每隔特定的时间调用所述回调函数以向调用程序进程通知已发出的命令。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_DiskdataBlockErase
所述函数从磁盘卷上删除数据块。
int DS_DiskdataBlockErase(
     DS_REQUEST Dsr,
     DS_VOL_BLOCK_LOCATION*BlockLocation,
     PFN_PROGRESS ProgressCallback
);
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
BlockLocation
包含卷块的位置信息。
ProgressCallback
回调函数的指针,将每隔特定的时间调用所述回调函数以向调用程序进程通知已发出的命令。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_DiskdataBlockFill
所述函数用给定的数据模式填充磁盘卷上的块。
int DS_DiskdataBlockFill(
     DS_REQUEST Dsr,
     DS_VOL_BLOCK_LOCATION*BlockLocation,
     ULONG Pattern,
     PFN_PROGRESS ProgressCallback
);
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
BlockLocation
包含卷块的位置信息。
Pattern
包含数据模式。
ProgressCallback
回调函数的指针,将每隔特定的时间调用所述回调函数以向调用程序进程通知已发出的命令。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_CreatDiskImage
所述函数在目标卷上创建卷的完全磁盘镜像。
int DS_CreatDiskImage(
     DS_
     char DestVolume,
     char SrcVolume,
     USHORT CommadTag,
     PFN_PROGRESS ProgressCallback
);
参数
Volume
由操作系统分配的目的地卷字母。
Volume
由操作系统分配的源卷字母。
CommandTag
每个DirectStorAPI用命令标签标记。这个标签在调用程序提供的回调函数中传递。这将有助于使调用程序对于所有或一群API具有单个回调函数。同时,API的调用程序也可以通过将同一标签传给取消命令API来取消操作。
ProgressCallback
回调函数的指针,将每隔特定的时间调用所述回调函数以向调用程序进程通知已发出的命令。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_DiskdataBlockRead
应用程序调用这个函数以从磁盘卷中读取数据块。
int DS_DiskdataBlockRead(
    DS_REQUEST Dsr,
    DS_VOL_BLOCK_LOCATION*BlockLocation,
    PBYTE DataBuffer
);
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
BlockLocation
包含卷块的位置信息。
DataBuffer
指向输入数据缓冲器的指针。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_DiskdataBlockWrite
应用程序调用这个函数以将数据块写入磁盘卷。
int DS_DiskdataBlockWrite(
     DS_REQUEST Dsr,
     DS_VOL_BLOCK_LOCATION*BlockLocation,
     PBYTE DataBuffer
     );
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
BlockLocation
包含卷块的位置信息。
DataBuffer
指向输出数据缓冲器的指针。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
DS_Abort
使用这个函数取消已向ISE发出的命令。
int DS_Abort(
    DS_REQUEST Dsr,
    );
参数
Dsr
DirectStor请求参数。每个请求与一个标签值相关。
通过回调函数向调用程序通知这个标签值。所述API的调用程序可以通过用相同的标签调用取消API来取消操作。
返回值
如果成功返回0,如果有错误返回非零值。
说明性反病毒API
DS_ScanVolumeforSignature
这个函数对卷进行扫描以寻找特定签名。所述应用程序能够略过实际的病毒签名或者指向存储在安全磁盘区域上的签名的标签。间隔特定时间调用略过的回调函数以通知进程。
int DS_ScanVolumeforSignature(
     char Volume,
     USHORT CommadTag,
     DS_SIGNATURE*pSignature
     PFN_PROGRESS ProgressCallback
      );
参数
Volume
由操作系统分配的目标卷字母。
CommandTag
每个DirectStorAPI用命令标签标记。这个标签在调用程序提供的回调函数中传递。这将有助于使调用程序对于所有或一群API具有单个回调函数。同时,API的调用程序也可以通过将同一标签传给取消命令API来取消操作。
pSignature
病毒签名。其可以是实际病毒签名或者是指向存储在安全区域上的签名的标签。请参见数据结构节获取更多信息。
返回值
如果成功返回0,如果有错误返回非零值。错误代码说明请见5.5节。
其它说明性的函数可包括以下函数:
DS_AbortScan
DS_ScanVolumeBlock
DS_StorSignature
DS_WriteToSecureDiskZone
DS_ReadFromSecureDiskZone
DS_SavePassword
DS_VerifyPassword
数据结构
DS_REQUEST
在一个实施例中,对ISE的每个请求都与一个标签值相关联。这个标签可在调用程序回调函数中传回给调用程序。这将有助于使调用程序对于所有或一群API具有单个回调函数。API的调用程序可以通过用相同的标签调用取消API来取消操作。
typedef struct
{
WORD RequestTag;
DWORD Timeout;/*延时以毫秒计,由DirectStor强制为最大30秒*/
DWORD NotificationInterval;/*以毫秒计的回调函数间隔,由DirectStor强制为最小0.5秒,最大30秒*/
int Process ID;
int Thread ID;
}DS_REQUEST;
DS_VOL_BLOCK_LOCATION
typedef struct
{
char Volume;/*由操作系统分配的磁盘卷字母*/
WORD ControlWord;/*1=整个卷,2=卷块*/
ULONGLONG StartLBA;/*卷块的起始逻辑块地址*/
ULONGLONG SizeInSectors;/*扇区中卷块的大小*/
}DS_VOL_BLOCK_LOCATION;
DS_SIGNATURE/*搜索特定的参考签名*/
根据以上描述,本发明的一些主要特征和方面可描述为包括一种存储引擎装置,其针对直接连接到至少一个硬盘驱动器而设置,且配置成执行通常由主机CPU执行的功能,所述主机CPU通过高速本地总线或者主机串行链路而连接到存储处理设备以作为直接连接的存储设备。通常,所述存储引擎接收命令,响应于接收到的命令对数据执行数据移动或处理指令(所述数据是存储在硬盘驱动器上的数据,或者是去往主机或者磁盘驱动器的在本地RAM存储器上高速缓存的数据),并向所述连接的主机处理器返回结果。如上所示,这些命令可为在同一驱动器内或者跨驱动器复制或者移动数据,或者执行如病毒扫描的操作。重要的是,这些操作是由存储引擎执行的,其在本地总线或主机串行链路上移动用户数据通信。
将使用所述存储引擎的命令可以通过截取从主机处理器到操作系统的命令而发生,或者通过预定的应用程序编程接口(API)而发生。这使得特殊数据操作可供应用程序(如反病毒程序)使用,而不会为主机CPU和/或本地总线增加负荷。这样的指令能够基于逻辑地址块(LBA)源和目的地信息识别目标数据。
这里所揭示的类型的存储引擎可以通过不同的方式实施和使用,其中包括大体上在单一集成电路中;大体上在单一电路板中;集成在PC中;在数字视频记录系统中实施;在数字视频系统中实施,或者以所属领域的技术人员通过上述内容将容易得知的其它许多方式实施。
对于所属领域的技术人员,显而易见可以在不脱离本发明的基本原理的情况下对上述实施例的细节进行变化。本发明的范围应该仅由所附权利要求书确定。

Claims (20)

1.一种智能存储引擎装置,用于降低关于连接的存储器操作的主机总线通信量,所述装置包括:
主机接口,用于从主机应用程序接收预定的指令或函数调用;
驱动器接口,将所述引擎耦合到至少一个连接的磁盘驱动器以用于数据传送;以及
所述存储引擎的板载处理器,用于响应于接收到的指令而实施与连接的存储设备的数据传送;
所述存储引擎经配置而实施与所述连接的存储设备的所述数据传送,而不将用户数据放置在所述主机总线或主机串行链路上。
2.根据权利要求1所述的存储引擎装置,其中,所述驱动器接口包括驱动器切换器,用于与多个磁盘驱动器进行可配置的连接。
3.根据权利要求1所述的存储引擎装置,包括DMA组件,用于与连接的主机进行DMA传送。
4.根据权利要求1所述的存储引擎装置,经设置通过预定的应用程序编程接口(API)从所述主机CPU接收数据移动或处理指令。
5.根据权利要求1所述的存储引擎装置,包括本地高速缓存存储器,用于临时存储用户数据。
6.根据权利要求1所述的存储引擎装置,包括用于在选取的文件流中即时扫描数据且将所述扫描数据与预定的参考序列匹配的构件。
7.一种用于以降低的本地总线通信量执行磁盘驱动器操作的方法,所述方法包括:定义至少一个主机应用程序函数,其要求访问至少一个磁盘驱动器并且具有对应的函数调用;
在存储引擎装置中实施所述函数调用;
将所述存储引擎装置连接到主机本地总线以及至少一个连接的磁盘驱动器;
监视所述本地总线,以便当被断言时检测所述函数调用;以及
响应于所述检测到的函数调用,在所述存储引擎装置中执行相应的函数,而不将用户数据放置在所述本地总线上;
以及完成后通过所述本地总线返回所述执行的函数的结果。
8.根据权利要求7所述的执行磁盘驱动器操作的方法,其中,在所述存储引擎中实施的所述主机应用程序函数包括文件复制和文件移动操作。
9.根据权利要求7所述的执行磁盘驱动器操作的方法,包括通过以下方式在主机软件内执行操作以完成操作系统调用操作:避开标准内建操作内核系统文件缓存软件层和硬件接口函数调用而改为将至少一个相应的命令直接发送给所述存储引擎。
10.根据权利要求7所述的方法,包括在两个磁盘驱动器之间移动数据,而不为所述主机本地总线或串行连接加载负荷。
11.根据权利要求7所述的执行磁盘驱动器操作的方法,包括:
提供文件系统过滤器模块,用于监视到所述操作系统文件系统的命令;
在所述文件系统过滤器模块中,检查给出的命令是否指向当前连接到所述存储引擎的磁盘驱动器;以及
如果命令是指向连接的磁盘驱动器,并且如果所述命令被所述过滤器模块识别出为预定的其可以处理的命令集中的一个,则拦截所述命令以在所述存储引擎中处理。
12.根据权利要求11所述的方法,包括向所述主机提供关于操作状态的周期性信息、排列请求的操作的状态以及在所述操作完成时提供全部结果。
13.根据权利要求11所述的方法,其中,最终结果包括对主机的指示,指示所述请求的操作没有完成或者所述操作成功地完成。
14.根据权利要求11所述的方法,其中,所述最终结果包括所请求的结果数据的递送。
15.根据权利要求11所述的方法,其中,操作包括从第一磁盘驱动器向第二磁盘驱动器移动文件、文件复制操作、磁盘卷合并、病毒扫描、RAID驱动-阵列重建中的一项操作。
16.根据权利要求11所述的方法,其中,所述操作包括搜索存储的用户数据。
17.一种用于以降低的本地总线通信量执行磁盘驱动操作的方法,所述方法包括:
定义至少一个应用程序函数,其需要访问至少一个磁盘驱动器;
在具有本地处理器和本地存储器的存储引擎装置中实施所述函数;
将所述存储引擎装置连接到主机本地总线以及至少一个连接的磁盘驱动器;
通过预定的API从应用程序接收函数调用;
响应于所述接收到的函数调用,在所述存储引擎装置中执行相应的函数,而不将用户数据放置在所述本地总线上,所述执行包括访问所述至少一个连接的磁盘驱动器;
以及,在完成后向所述应用程序返回所述执行的函数的结果。
18.根据权利要求17所述的方法,其中,所述应用程序是反病毒应用程序。
19.根据权利要求17所述的方法,其中,所述API包括磁盘块操作。
20.根据权利要求17所述的方法,其中,所述API包括搜索操作。
CN2005800488353A 2004-12-29 2005-12-22 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎 Active CN101305334B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US64063404P 2004-12-29 2004-12-29
US60/640,634 2004-12-29
PCT/US2005/046931 WO2006071817A2 (en) 2004-12-29 2005-12-22 Intelligent storage engine for disk drive operations with reduced local bus traffic

Publications (2)

Publication Number Publication Date
CN101305334A true CN101305334A (zh) 2008-11-12
CN101305334B CN101305334B (zh) 2012-01-11

Family

ID=36615465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800488353A Active CN101305334B (zh) 2004-12-29 2005-12-22 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎

Country Status (6)

Country Link
US (1) US7395358B2 (zh)
JP (1) JP2008527496A (zh)
KR (1) KR100919920B1 (zh)
CN (1) CN101305334B (zh)
TW (1) TWI366764B (zh)
WO (1) WO2006071817A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102566936A (zh) * 2010-12-28 2012-07-11 联想(北京)有限公司 一种磁盘数据读取方法、装置及磁盘驱动装置
CN104008073A (zh) * 2013-02-21 2014-08-27 希捷科技有限公司 具有虚拟机的cdata存储设备
CN104598336A (zh) * 2015-02-04 2015-05-06 北京神州云科数据技术有限公司 基于raid算法的重建方法及装置
CN109002255A (zh) * 2017-06-07 2018-12-14 三星电子株式会社 存储系统及其操作方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US7613840B2 (en) * 2006-08-17 2009-11-03 General Electric Company Methods and apparatus for dynamic data acquisition configuration parameters
US7917713B2 (en) * 2006-12-20 2011-03-29 International Business Machines Corporation Optimized data migration with a support processor
US20080320423A1 (en) * 2007-06-25 2008-12-25 International Business Machines Corporation System and method to protect computing systems
US8341428B2 (en) * 2007-06-25 2012-12-25 International Business Machines Corporation System and method to protect computing systems
JP2009064118A (ja) * 2007-09-05 2009-03-26 Nec Access Technica Ltd Usbデバイスバックアップ装置及びそれに用いるusbデバイスバックアップ方法並びにそのプログラム
US20100071064A1 (en) * 2008-09-17 2010-03-18 Weber Bret S Apparatus, systems, and methods for content selfscanning in a storage system
CN102187324A (zh) * 2008-11-13 2011-09-14 Lsi公司 用于直接附连存储系统的活动-活动故障转移
US7870308B2 (en) * 2008-12-23 2011-01-11 International Business Machines Corporation Programmable direct memory access engine
US8843449B2 (en) 2009-06-16 2014-09-23 Bmc Software, Inc. Unobtrusive copies of actively used compressed indices
KR101740679B1 (ko) 2010-08-03 2017-05-26 삼성전자주식회사 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템
WO2012140813A1 (ja) * 2011-04-14 2012-10-18 パナソニック株式会社 データ転送装置
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
JP6069962B2 (ja) * 2012-08-30 2017-02-01 富士通株式会社 情報処理装置、領域解放制御プログラム、および領域解放制御方法
US20140278328A1 (en) 2013-03-15 2014-09-18 Nvidia Corporation System, method, and computer program product for constructing a data flow and identifying a construct
US9015643B2 (en) * 2013-03-15 2015-04-21 Nvidia Corporation System, method, and computer program product for applying a callback function to data values
US9323502B2 (en) 2013-03-15 2016-04-26 Nvidia Corporation System, method, and computer program product for altering a line of code
US9171115B2 (en) 2013-04-10 2015-10-27 Nvidia Corporation System, method, and computer program product for translating a common hardware database into a logic code model
US9021408B2 (en) 2013-04-10 2015-04-28 Nvidia Corporation System, method, and computer program product for translating a source database into a common hardware database
US9015646B2 (en) 2013-04-10 2015-04-21 Nvidia Corporation System, method, and computer program product for translating a hardware language into a source database
CN106775456B (zh) 2016-11-22 2019-11-26 华为技术有限公司 一种数据处理方法、装置及系统
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
CN110825530B (zh) * 2018-08-10 2022-12-23 昆仑芯(北京)科技有限公司 用于人工智能芯片的指令执行方法和装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868734A (en) 1984-04-30 1989-09-19 Unisys Corp. Variable rate improvement of disc cache subsystem
US4942579A (en) * 1987-06-02 1990-07-17 Cab-Tek, Inc. High-speed, high-capacity, fault-tolerant error-correcting storage system
JPH04123160A (ja) * 1990-09-13 1992-04-23 Nec Corp 受信データ処理システム
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
JPH0822379A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd ディスクアレイ装置
US5884093A (en) * 1994-09-02 1999-03-16 Rock Solid Systems, Inc. Hard disk cache for CD-ROM and other slow access time devices
US5892969A (en) * 1996-03-15 1999-04-06 Adaptec, Inc. Method for concurrently executing a configured string of concurrent I/O command blocks within a chain to perform a raid 5 I/O operation
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5806086A (en) * 1996-06-11 1998-09-08 Data General Corporation Multiprocessor memory controlling system associating a write history bit (WHB) with one or more memory locations in controlling and reducing invalidation cycles over the system bus
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
US6108697A (en) * 1997-10-06 2000-08-22 Powerquest Corporation One-to-many disk imaging transfer over a network
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6185639B1 (en) * 1998-06-05 2001-02-06 International Business Machines Corporation System and method to reduce a computer system's interrupt processing overhead
US6065083A (en) * 1998-08-21 2000-05-16 International Business Machines, Inc. Increasing I/O performance through storage of packetized operational information in local memory
US6987927B1 (en) * 1998-09-09 2006-01-17 Smartdisk Corporation Enhanced digital data collector for removable memory modules
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US20030191957A1 (en) * 1999-02-19 2003-10-09 Ari Hypponen Distributed computer virus detection and scanning
US6385683B1 (en) * 1999-08-13 2002-05-07 Lsi Logic Corporation Methods and apparatus for raid hardware sequencing to achieve a higher performance raid architecture
US6772108B1 (en) 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
JP3999446B2 (ja) * 2000-06-30 2007-10-31 株式会社東芝 ディスク装置及び同装置を複数備えた計算機システム
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
GB2378783B (en) * 2001-08-17 2004-12-29 F Secure Oyj Preventing virus infection in a computer system
US7624439B2 (en) * 2001-10-29 2009-11-24 Seventh Knight Authenticating resource requests in a computer system
JP2003316525A (ja) * 2002-04-26 2003-11-07 Seiko Epson Corp ディスクアレイ制御装置
JP4304569B2 (ja) * 2002-06-27 2009-07-29 ソニー株式会社 データ記憶装置、データ記憶装置の制御方法、データ記憶装置の制御プログラム及びデータ記憶装置の制御プログラムを記録した記録媒体
US7529752B2 (en) * 2002-09-18 2009-05-05 Netezza Corporation Asymmetric streaming record data processor method and apparatus
US6904498B2 (en) 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
CN100371874C (zh) * 2003-04-21 2008-02-27 耐特塞尔公司 具有可重新配置的数据通路的盘阵列控制器及方法
DE20313678U1 (de) * 2003-09-01 2004-02-19 Leica Microsystems Wetzlar Gmbh Mikroskop
WO2005043395A1 (en) * 2003-10-20 2005-05-12 The Board Of Governors For Higher Education State Of Rhode Island: Providence Plantation A bottom-up cache structure for storage servers
JP2005135065A (ja) * 2003-10-29 2005-05-26 Hitachi Ltd 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
JP2005309793A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ処理システム
US20060095705A1 (en) * 2004-10-30 2006-05-04 James Wichelman Systems and methods for data storage management

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102566936A (zh) * 2010-12-28 2012-07-11 联想(北京)有限公司 一种磁盘数据读取方法、装置及磁盘驱动装置
CN102566936B (zh) * 2010-12-28 2015-04-29 联想(北京)有限公司 一种磁盘数据读取方法、装置及磁盘驱动装置
CN104008073A (zh) * 2013-02-21 2014-08-27 希捷科技有限公司 具有虚拟机的cdata存储设备
CN104008073B (zh) * 2013-02-21 2017-12-12 希捷科技有限公司 具有虚拟机的cdata存储设备
CN104598336A (zh) * 2015-02-04 2015-05-06 北京神州云科数据技术有限公司 基于raid算法的重建方法及装置
CN104598336B (zh) * 2015-02-04 2018-04-24 深圳神州数码云科数据技术有限公司 基于raid算法的重建方法及装置
CN109002255A (zh) * 2017-06-07 2018-12-14 三星电子株式会社 存储系统及其操作方法
CN109002255B (zh) * 2017-06-07 2023-12-12 三星电子株式会社 存储系统及其操作方法

Also Published As

Publication number Publication date
KR20080031150A (ko) 2008-04-08
JP2008527496A (ja) 2008-07-24
US20060143316A1 (en) 2006-06-29
WO2006071817A2 (en) 2006-07-06
TWI366764B (en) 2012-06-21
CN101305334B (zh) 2012-01-11
US7395358B2 (en) 2008-07-01
KR100919920B1 (ko) 2009-10-07
WO2006071817A3 (en) 2007-04-19
TW200636483A (en) 2006-10-16

Similar Documents

Publication Publication Date Title
CN101305334B (zh) 降低的本地总线通信量的磁盘驱动器操作的智能存储引擎
US8347060B2 (en) Storage system, storage extent release method and storage apparatus
US7536508B2 (en) System and method for sharing SATA drives in active-active RAID controller system
JP5128079B2 (ja) ユニバーサルストレージバスアダプタ
US8706986B2 (en) Load equalizing storage controller and control method for the same
US20020103966A1 (en) System and method for efficient data mirroring in a pair of storage devices
US7340551B2 (en) Bridge permitting access by multiple hosts to a single ported storage drive
US6529989B1 (en) Intelligent expansion ROM sharing bus subsystem
US6728791B1 (en) RAID 1 read mirroring method for host adapters
CN101965559A (zh) 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器
US7370175B2 (en) System, method, and apparatus to aggregate heterogeneous RAID sets
US5996045A (en) IDE disk drive arrangement that combines the capacity of a master drive and slave drive while hiding the presence of slave drive to a host computer
US7734868B2 (en) Universal RAID class driver
US7562111B2 (en) Multi-processor architecture with high capacity I/O
CN103403667A (zh) 数据处理方法和设备
JP2503183B2 (ja) バス・アダプタ・システム
US7398420B2 (en) Method for keeping snapshot image in a storage system
CN109313593B (zh) 存储系统
US10235053B1 (en) Method and system for using host driver for flexible allocation fast-sideways data movements
CN101443765A (zh) 数据库卸载处理
US7418545B2 (en) Integrated circuit capable of persistent reservations
US6701385B1 (en) Raid 1 write mirroring method for host adapters
US10732901B2 (en) Storage system and storage control method
US20230185739A1 (en) Efficient and concurrent model execution
EP4332747A1 (en) Systems and methods for integrating a compute resource with a storage device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant