CN105393236A - 快速数据读写方法和装置 - Google Patents

快速数据读写方法和装置 Download PDF

Info

Publication number
CN105393236A
CN105393236A CN201480037236.0A CN201480037236A CN105393236A CN 105393236 A CN105393236 A CN 105393236A CN 201480037236 A CN201480037236 A CN 201480037236A CN 105393236 A CN105393236 A CN 105393236A
Authority
CN
China
Prior art keywords
file
metadata
data
read
write
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
CN201480037236.0A
Other languages
English (en)
Other versions
CN105393236B (zh
Inventor
方帆
李俊
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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105393236A publication Critical patent/CN105393236A/zh
Application granted granted Critical
Publication of CN105393236B publication Critical patent/CN105393236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种快速数据读写方法,应用于计算机系统中,所述计算机系统包括存储介质、主机以及硬件加速控制器HAC,所述硬件加速控制器通过接口与所述主机和存储介质相连,所述主机包括一中央处理器,所述主机与外部接口相连,所述方法包括:硬件加速控制器HAC接收中央处理器发送的读/写请求,所述读/写请求包括外部需要读取或写入数据的文件的元数据,所述读/写请求由所述中央处理器判断出系统进程发送的命令为到数据读/写请求后生成;根据所述元数据,从所述文件中读取数据;或者,将需要写入所述文件的数据写入所述文件;向所述中央处理器报告数据读/取结果。利用实施例提供的方法,使得文件系统的IO处理由HAC进行,主机可以处理更多的其他业务。

Description

快速数据读写方法和装置
技术领域
本发明涉及数据处理领域, 尤其涉及一种快速数据读写方法和装置。 背景技术
一个完整的计算机系统由计算系统,存储系统和网络系统三个系统组成, 这三者由一个操作系统来管理; 存储系统在操作系统中以文件系统方式存在, 文件系统的开销在整个操作系统的性能开销中占很大一部分。
现有技术一中, 文件系统和设备驱动程序是操作系统的一部分, 由 CPU 负责逻辑操作和数据操作, 当需要进行文件的读或写操作时, 由进程发起 10 请求, 该 10请求经过操作系统内核, 由 CPU处理。 其主要步骤如下: 进程需 要读写文件时向操作系统发起 10请求; 内核读取内存中的元数据, 对该 10 请求包装, 比如使得该 10请求包括文件的开始地址, 文件的长度等信息, 并 将该包装后的 10请求发送到设备驱动程序; 内核控制设备驱动程序, 将读或 写数据的请求发送到磁盘, 磁盘进行对应的读或写操作; 磁盘将数据传送到 内存, 并更新元数据, 以上步骤都需要 CPU参与, 耗费 CPU的计算能力。
现有技术二中, 对图 1A 中的软件栈进行修改, 修改后的软件栈如图 1B 所示, 图 1B中, 将文件系统和设备驱动程序从软件剥离, 并将文件系统和驱 动的相关操作固化在硬件中, 使用硬件来完成文件系统和驱动程序的相关操 作, 但是如果文件系统太大, 则元数据太多, 而元数据都被保持在内存中, 硬件的内存有限, 所以硬件能支持的文件大小和个数受限, 而且该技术需要 修改软件和硬件等多方面的内容, 因此不容易集成到现有的操作系统中。 发明内容 本发明的目的是提供一种快速数据读写方法和装置, 以加速文件系统的
10性能。
第一方面, 本发明实施例提供了一种快速数据读写方法, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述方法包括:
硬件加速控制器 HAC接收中央处理器发送的读 /写请求, 所述读 /写请求 包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处 理器判断出系统进程发送的命令为到数据读 /写请求后生成;
根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件 的数据写入所述文件;
向所述中央处理器报告数据读 /取结果。
结合第一方面,在第一种可能的实施方式中,所述读 /写请求为读请求时, 所述根据所述元数据, 从所述文件中读取数据进一步包括:
根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件; 述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块 数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
结合第一方面的第一种可能的实施方式, 在第二种可能的实施方式中, 所述方法还包括:
当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。 结合第一方面, 在第三种可能的实施方式中, 所述方法还包括: 当所述 读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中的数据, 所 述将需要写入所述文件的数据写入所述文件, 进一步包括:
根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述 HAC将所述需 要写入存储介质中的数据, 写入所述元数据对应的文件;
将所述本地内存中与所述元数据对应的文件, 同步到所述存储介质中。 结合第一方面的第三种可能的实施方式, 在第四种可能的实施方式中, 所述方法还包括: 当所述 HAC根据所述元数据确定所述本地不具有所述文件 时, 所述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
第二方面, 本发明实施例提供了一种快速数据读写装置, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述装置包括:
接口模块, 用于接收中央处理器发送的读 /写请求, 所述读 /写请求包括 外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器 判断出系统进程发送的命令为到数据读 /写请求后生成;
数据收发模块, 用于根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
结合第二方面, 在第一种可能的实施方式中, 所述装置还包括: 查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
结合第二方面的第一种可能的实施方式, 在第二种可能的实施方式中, 所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元根据 所述文件元数据确定本地内存中具有所述元数据对应的文件时, 将所述文件 对应的数据发送给所述主机。
结合第二方面, 在第三种可能的实施方式中, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。
结合第一方面的第三种可能的实施方式, 在第四种可能的实施方式中, 解析模块对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包 括所述文件的地址和长度信息; 命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对 所述存储介质进行写操作;
所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
第三方面, 本发明实施例提供了一种快速数据读写装置, 应用于计算机 系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控制器 HAC, 所述 硬件加速控制器通过接口与所述主机和存储介质相连, 所述主机包括一中央 处理器, 所述主机与外部接口相连, 所述装置包括: 网络接口; 处理器; 存 储器;
物理存储在所述存储器中的应用程序, 所述应用程序包括可用于使所述 处理器执行以下过程的指令:
通过网络接口接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
所述处理器根据所述元数据, 从所述文件中读取数据; 或者, 将需要写 入所述文件的数据写入所述文件;
所述网络接口向所述中央处理器报告数据读 /取结果。
结合第三方面,在第一种可能的实施方式中,所述读 /写请求为读请求时, 所述处理器根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内 存中是否具有与所述元数据对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
结合第三方面的第一种可能的实施方式, 在第二种可能的实施方式中, 当所述读 /写请求为读请求, 所述处理器根据所述文件元数据确定本地内存中 具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
结合第一方面, 在第三种可能的实施方式中, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述处理器根据所述 写请求中的元数据, 查找所述硬件加速控制器的本地内存中是否具有与所述 元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述处理器将所述 需要写入存储介质中的数据, 写入所述元数据对应的文件;
通过所述网络接口将所述本地内存中与所述元数据对应的文件, 同步到 所述存储介质中。
结合第三方面的第三种可能的实施方式, 在第四种可能的实施方式中, 对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文 件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文 件块数据的地址信息对应的存储空间。
通过上述方案, 由于文件系统的 10处理由专门的 HAC来处理, 10速度可 以大大提升, 因此整个文件系统的 10性能会得到很大的提升; 而且主机在 10 的消耗大大减少, 主机可以处理更多的其他业务; HAC能够以最小的代价集成 到操作系统中, 对硬件的改动比较小。 附图说明
图 1A为本发明实施例提供的现有技术二中修改前的软件栈示意图; 图 1B为本发明实施例提供的现有技术二中的软件栈示意图;
图 2为本发明实施例提供的 HAC位置示意图;
图 3为本发明实施例一提供的快速数据读写流程图;
图 4为本发明实施例一提供的快速数据读写框图;
图 5为本发明实施例提供的 HAC示意图;
图 6为本发明实施例二提供的快速数据读写装置结构示意图;
图 7为本发明实施例三提供的快速数据读写装置结构示意图。 具体实施方式
为了使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本 发明作进一步地详细描述, 显然, 所描述的实施例仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其它实施例, 都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的, 而非 旨在限制本发明。 在本发明实施例和所附权利要求书中所使用的单数形式的 "一种"、 "所述 "和"该"也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解, 尽管在本发明实施例中可能釆用术语第一、 第二等来描述各 种数据, 但这些数据不应限于这些术语。 这些术语仅用来将终端彼此区分开。
图 2为本发明实施例提供的 HAC位置示意图。 在图 2中, 机架服务器包 括底板 210, 存储介质 220 和硬件加速控制器 ( hardware acce l era te cont ro l ler, HAC ) 230。
底板 210包括南桥 211、 CPU212和内存 21 3, 南桥 211、 CPU212和内存
21 3用于对其它扩展卡进行控制, 实现主机的功能; 存储介质 220, 用于接收 主机的读或写操作请求, 并对存储介质中的闪存芯片进行各种访问和控制; 存储介质 220中的其它芯片可以和闪存芯片设置在一个印刷电路板 ( printed circuit board, PCB)上, 并通过 PCB走线相连, 最后呈现的形式是硬盘盒, 也可以将闪存芯片和存储介质的其它芯片做成扩展卡, 通过外设互联快速通 道(PCI- Express, PCIe )接口与底板 210相连; HAC230用于提供数据传输 的硬件通道, 通过 PCIe等接口和底板 210、 存储介质 220相连, 也可以集成 在存储介质 220上。
其中, 存储介质 220可以是固态硬盘(solid state drive, SSD) , 磁 盘驱动器 ( hardware accelerate controller, HHD)或其组合, SSD可以是 专用集成电路 ( application-specific integrated circuit, ASIC ) 或者 可编程逻辑器件(programmable logic device, PLD ) 。 该 PLD 可以是复杂 可编程逗辑器件 ( complex programmable logic device, CPLD ) , 现场可编 程逗辑门阵歹 ij ( field-programmable gate array, FPGA ) , 通用阵歹' ( generic array logic, GAL )或其组合。
图 3为本发明实施例一提供的快速数据读写方法流程图。 如图 3所示, 本实施例的主体是 HAC, HAC既可以集成在存储介质上, 也可以是独立的扩 展卡, 通过 PCIe接口、 SAS接口或者 SATA接口和主机相连。 本实施例包括 以下步骤:
步骤 310, HAC接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
具体地, HAC接收主机发送的命令, 该命令可以是文件的读或写请求, 也可以是将元数据写入本地的写请求, 该请求包括文件的元数据, 元数据 中可以包括文件的 ID, 偏移信息和长度信息, 其中, 该偏移信息和长度信 息等价于文件中数据的开始地址, 结束地址, 可以由文件中数据的开始地 址和结束地址, 确定文件的偏移信息以及长度信息。
320, 根据所述元数据, 从所述文件中读取数据; 具体而言, HAC接收到 CPU发送的读 /写请求后, 根据所述读请求中的元 数据, 查找所述硬件加速控制器的本地内存中是否具有与所述元数据对应的 文件;
所述读 /写请求为读请求时, 当所述 HAC根据所述元数据确定所述本地内 存中不具有所述文件时, 所述硬件加速控制器对所述元数据进行解析, 获取 所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
330 , 将需要写入所述文件的数据写入所述文件;
当所述读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中 的数据, H AC根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内 存中是否具有与所述元数据对应的文件; 如果所述本地内存中具有与所述元 数据对应的文件, 所述 HAC将所述需要写入存储介质中的数据, 写入所述元 数据对应的文件; 将所述本地内存中与所述元数据对应的文件, 同步到所述 存储介质中。
当所述 HAC根据所述元数据确定所述本地不具有所述文件时, 所述硬件 加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中 包括所述文件的地址和长度信息; 将所述文件块数据的地址信息转化为存储 介质能够识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主 机直接对所述存储介质进行写操作; 将所述需要写入存储介质中的数据写入 到所述存储介质中与所述文件块数据的地址信息对应的存储空间。
具体地, 在接收到主机的读或写请求时, HAC 查找该元数据对应的文 件在本地是否存在, 如果元数据对应的文件在本地不存在, HAC 根据预先 接收的文件系统类型, 解析文件系统的元数据, 根据元数据解析文件的块 数据, 并将文件的偏移信息和长度信息进行包装, 将其转化为文件块数据 的地址信息; 当请求为读请求, HAC 根据文件名确定本地具有该文件时, 将第一数据发送给主机, 其中, 第一数据是主机要读取的文件中的数据。
需要说明的是, 元数据指的是文件系统的文件组织信息, 不包括文件 的具体数据信息。
340 , 向所述中央处理器报告数据读 /取结果。
具体地, 当 HAC接收到的是读请求时, HAC向 CPU反馈的结果是读取到的 数据; 而当 HAC接收到的是写请求时, HAC向 CPU反馈的结果可以是一个数据 写入成功的确认消息。
进一步的, 在步骤 320和 330 中, HAC将文件块数据的地址信息转化为 10命令,并将 10命令发送到存储介质,用以对所述存储介质进行读或写操作。
其中, HAC解析文件块数据的地址信息,将该文件块数据的地址信息转化 为存储介质能够识别的 10命令, 并将 10命令发送给存储介质。
举例来说, 当 10命令为读操作命令时, HAC将读命令发送给存储介质, 用于存储介质根据读操作命令读取数据, 并接收存储介质返回的数据, 并将 该数据发送给主机; 其中, HAC将数据发送给主机时, 可以使用直接存储器访 问 ( Di rect Memory Acces s , DMA )将第一数据传输到主机内存, 也可以使用 一般的传输方式。
10命令为写操作命令, 写操作命令中包括主机地址信息, HAC将写操 作命令发送给存储介质, 用以存储介质根据主机地址信息, 将第二数据写 入到存储介质中。
在另一种实施例中, 还有可能是 CPU需要将元数据写入 HAC本地, HAC 接收主机发送的将元数据写入本地的写请求, 从主机读取写请求对应的元 数据, 将元数据写入到本地的元数据緩存区。
具体地, 将元数据写入 HAC本地的元数据緩存区包括两种情况: ( 1 ) 如果本地元数据緩存区有足够的存储空间, 则将元数据直接写 入本地元数据緩存区。
其中, 将元数据写入元数据緩存区是在进程切换时, 由主机发起的, 主 机在进程切换的时候会将即将被切换运行的进程的文件系统相关信息刷新到 元数据緩存区。 当进程打开或者关闭文件的时候, 主机能够捕捉到这个事件 的发生: 当进程打开一个文件后, 主机中的元数据就会增加, 主机会将元数 据写入到本地元数据緩存区; 当进程关闭某个文件时, 主机捕捉到该事件, 同时通知 HAC无效文件的元数据。
( 2 )如果元数据緩存区没有足够的存储空间, 选择替换緩存项, 将替换 緩存项删除, 将元数据写入替换緩存项的原始元数据緩存区。
其中, 替换緩存项的替换策略有很多现有技术可以使用, 比如, 最近最 少使用策略(leas t recent ly used, URL ) ,对象大小策略, 最少使用频率策 略( leas t frequent ly used, LFU ) ,最低关系值策略 ( lowes t re la t ive va lue , LRV )等。
图 4为本发明实施例提供的快速数据读写框图。 图 4中是 HAC中不存在 元数据对应的文件时, 主机如何通过 HAC, 读取第一数据或者写入第二数据, 其中, 在本实施例中, 将 HAC对数据的处理细化到 HAC中的每个模块。
如图 5所示, 图 5本发明实施例提供的 HAC示意图。 在图 5中, HAC包括 主机接口 510, 命令解析模块 520和数据收发模块 530。
主机接口 510, 用于接收主机的各种命令, 比如读或写请求, 主机接口 510可以是 PCIe接口, 也可以是其它总线接口; 命令解析模块 520用于解析 文件系统的元数据, 比如识别文件系统的类型, 解析该文件系统的超级块元 数据, 根据超级块元数据解析文件的块数据, 并将主机接口 510 过来的文件 的长度信息和偏移信息转化为文件块数据的地址信息, 并将解析完成后的块 数据的地址信息发送到数据收发模块 530;数据收发模块 530用于接收块数据 的地址信息, 将该地址信息转化为存储介质能够识别的 10命令, 并将 10命 令发送给存储介质。
步骤 401, 主机发送命令给主机接口。
具体地, 主机发送各种命令, 该命令包括比如读某个文件的命令, 将第 二数据写入某个文件的命令等。
步骤 402, 命令解析模块解析命令类型。
具体地, 命令解析模块 520解析命令类型, 比如, 该命令的类型可以是 文件的读或写请求, 也可以是将元数据写入本地的写请求, 当命令类型是文 件的读或写请求时, 该读或写操作请求中携带文件的文件名, 偏移信息和长 度信息, 执行步骤 403; 当命令类型是将元数据写入本地的写请求时, 执行步 骤 409。
步骤 403,命令解析模块解析元数据,将文件块数据的地址信息下发到数 据收发模块。
具体地, 当命令的类型是文件的读或写请求时, 命令解析模块 520查找 文件名对应的文件在本地是否存在, 如果不存在, 命令解析模块 520根据预 先写入的文件系统的类型, 解析文件系统的元数据, 根据元数据解析文件的 块数据, 并将主机接口发送的文件的偏移信息和长度信息转化为文件块数据 的地址信息。
步骤 404, 数据收发模块解析文件块数据的地址信息, 发送 10命令至存 储介质。
具体地, 数据收发模块 530接收命令解析模块 520发送的文件块数据的 地址信息, 将该文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 10命令发送到存储介质。 其中, 数据收发模块 530和存储介质间的存储 数据通道有多条, 该多条通道可以并行的进行读取第一数据。 当 10命令为读 操作命令时, 跳转至步骤 405, 当 10命令为写操作命令时, 跳转至步骤 406。
步骤 405,存储介质将第一数据发送给数据收发模块,数据收发模块发送 第一数据至主机内存。 具体地, 当 10命令为读操作命令时, 数据收发模块 530将所述读操作命 令发送给存储介质, 存储介质根据读操作命令读取第一数据, 并将第一数据 发送给数据收发模块 630, 数据收发模块 530接收存储介质发送的第一数据。 其中, 数据收发模块 530接收存储介质返回的第一数据后, 通过 DMA方式将 第一数据发送给主机内存。 完成后执行步骤 407。
步骤 406, 主机写入第二数据至存储介质。
具体地, 当 10命令为写操作命令时, 命令解析模块 520解析主机数据地 址信息后, 完成存储介质的配置, 主机将第二数据写入至存储介质。 完成后 执行步骤 407。
步骤 407, 数据收发模块发送完成消息至主机接口。
具体地, 完成步骤 405或者步骤 406后, 数据收发模块 530向主机接口 510发送完成消息。
步骤 408, 主机接口发送完成消息至主机。
步骤 409, 主机将元数据写入 HAC。
步骤 410, HAC接收元数据并保存到元数据緩存区。
具体地, 当命令类型是将元数据写入本地的写请求时, 主机将元数据写 入本地元数据緩存区。
利用本发明实施例提供的快速数据读取方法, HAC接收主机发送的文件的 读或写请求, 读或写请求包括文件的元数据; 当 HAC根据所述元数据确定本 地不具有所述文件时, 根据预先接收的文件系统类型, 解析文件系统的元数 据, 根据元数据解析文件的块数据, 将文件的偏移信息和长度信息转化为文 件块数据的地址信息; HAC将文件块数据的地址信息转化为 10命令, 并将 10 命令发送到存储介质, 用以对存储介质进行读或写操作, 使得文件系统的 10 处理由 HAC进行, 主机在 10处理上的消耗大大减少, 使得主机可以处理更多 的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到操作系统 时对硬件的改动较小。 相应的, 如图 6 所示, 本发明实施例二提供一种用以实现实施例一所述 方法的快速数据读取装置。该装置可以是前述实施例中的硬件加速器 HAC,应 用于计算机系统中, 所述计算机系统包括存储介质、 主机以及硬件加速控 制器 HAC, 所述装置通过接口与所述主机和存储介质相连, 所述主机包括 一中央处理器, 所述主机与外部接口相连, 其为本发明实施例装置包括: 接 口单元 610, 数据收发模块 620, 其中,
接口模块 610, 用于接收中央处理器发送的读 /写请求, 所述读 /写请 求包括外部需要读取或写入数据的文件的元数据,所述读 /写请求由所述中 央处理器判断出系统进程发送的命令为到数据读 /写请求后生成;
数据收发模块 620,用于根据所述元数据,从所述文件中读取数据;或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
进一步的, 在一种实施例中, 所述装置还包括:
查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元 文件对应的数据发送给所述主机。
在另一种实施例中,, 当所述读 /写请求为写请求时, 所述写请求中还包 括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。 硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块数 据中包括所述文件的地址和长度信息;
命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对 所述存储介质进行写操作;
所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
利用本发明实施例提供的装置,使得文件系统的 10处理由 HAC进行, 10 处理速度被大大提高, 而且主机在 10处理上的消耗大大减少, 使得主机可以 处理更多的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到 操作系统时对硬件的改动较小。
需要说明的是, 本实施例提供的一种数据处理装置所包括的各个单元只 是按照功能逻辑进行划分的, 但并不局限于上述的划分, 只要能够实现相应 的功能即可; 另外, 各功能单元的具体名称也只是为了便于相互区分, 并不 用于限制本发明的保护范围。
如图 7所示, 其为本发明实施例三提供的快速数据读取装置的结构示 意图。 该装置包括: 如图 7所示, 本实施例包括网络接口 81 0、 处理器 820 和存储器 830。
系统总线 840用于连接网络接口 81 0、 处理器 820和存储器 8 30。 网络接口 810用于与主机和 /或存储介质进行数据传输和通信。
存储器 830可以是永久存储器, 例如硬盘驱动器和闪存, 存储器 830中 具有软件模块和设备驱动程序。 软件模块能够执行本发明上述方法的各种功 能模块; 设备驱动程序可以是网络和接口驱动程序。
在启动时, 这些软件组件被加载到存储器 830中, 然后被处理器 820访 问并执行如下指令:
通过网络接口 810接收主机的中央处理器发送的读 /写请求, 所述读 /写 请求包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中 央处理器判断出系统进程发送的命令为到数据读 /写请求后生成;
所述处理器 820根据所述元数据, 从所述文件中读取数据; 或者, 将需 要写入所述文件的数据写入所述文件;
所述网络接口 810向所述中央处理器报告数据读 /取结果。
进一步地, 所述读 /写请求为读请求时, 所述处理器 820根据所述读请求 中的元数据, 查找所述硬件加速控制器的本地内存中是否具有与所述元数据 对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
进一步地, 当所述读 /写请求为读请求, 所述处理器 820根据所述文件 元数据确定本地内存中具有所述元数据对应的文件时, 通过网络接口 810将 所述文件对应的数据发送给所述主机。
进一步地, 当所述读 /写请求为写请求时, 所述写请求中还包括需要写入 存储介质中的数据, 所述处理器 820根据所述写请求中的元数据, 查找所述 本地内存中是否具有与所述元数据对应的文件;
如果所述本地内存中具有与所述元数据对应的文件, 所述处理器 820将 所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
通过所述网络接口 810将所述本地内存中与所述元数据对应的文件, 同 步到所述存储介质中。
进一步地, 当所述处理器 820根据所述元数据确定所述本地不具有所述 文件时, 所述处理器 820对所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度信息;
将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
利用本发明实施例提供的装置,使得文件系统的 10处理由 HAC进行, 10 处理速度被大大提高, 而且主机在 10处理上的消耗大大减少, 使得主机可以 处理更多的其他业务, HAC能够以最小的代价集成到操作系统中, HAC集成到 操作系统时对硬件的改动较小。
专业人员应该还可以进一步意识到, 结合本文中所公开的实施例描述的 各示例的单元及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来 实现, 为了清楚地说明硬件和软件的可互换性, 在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。 这些功能究竟以硬件还是软件方式来 执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能, 但是这种实现不应认为 超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、 处理 器执行的软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器 ( RAM ) 、 内存、 只读存储器(ROM ) 、 电可编程 R0M、 电可擦除可编程 R0M、 寄存器、 硬盘、 可移动磁盘、 CD-R0M、 或技术领域内所公知的任意其它形式 的存储介质中。
以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行 了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而 已, 并不用于限定本发明的保护范围, 凡在本发明的精神和原则之内, 所做 的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims (14)

  1. 权 利 要 求 书
    1、 一种快速数据读写方法, 应用于计算机系统中, 所述计算机系统包 括存储介质、 主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与 所述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接 口相连, 其特征在于, 所述方法包括:
    硬件加速控制器 HAC接收中央处理器发送的读 /写请求, 所述读 /写请求 包括外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处 理器判断出系统进程发送的命令为到数据读 /写请求后生成;
    根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件 的数据写入所述文件;
    向所述中央处理器报告数据读 /取结果。
  2. 2、 如权利要求 1所述的方法, 其特征在于, 所述读 /写请求为读请求时, 所述根据所述元数据, 从所述文件中读取数据进一步包括:
    根据所述读请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件; 述硬件加速控制器对所述元数据进行解析, 获取所述文件的块数据, 所述块 数据中包括所述文件的地址和长度信息;
    将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行读操 作。
  3. 3、 如权利要求 2所述的方法, 其特征在于, 所述方法还包括:
    当所述读 /写请求为读请求, 所述 HAC根据所述文件元数据确定本地内存 中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
  4. 4、 如权利要求 1所述的方法, 其特征在于, 所说方法还包括: 当所述读 /写请求为写请求时, 所述写请求中还包括需要写入存储介质中的数据, 所述 将需要写入所述文件的数据写入所述文件, 进一步包括:
    根据所述写请求中的元数据, 查找所述硬件加速控制器的本地内存中是 否具有与所述元数据对应的文件;
    如果所述本地内存中具有与所述元数据对应的文件, 所述 HAC将所述需 要写入存储介质中的数据, 写入所述元数据对应的文件;
    将所述本地内存中与所述元数据对应的文件, 同步到所述存储介质中。
  5. 5、 如权利要求 4所述的方法, 其特征在于, 还包括: 当所述 HAC根据所 述元数据确定所述本地不具有所述文件时, 所述硬件加速控制器对所述元数 据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和 长度信息;
    将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
    将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
  6. 6、 一种快速数据读写装置, 应用于计算机系统中, 所述计算机系统包括 存储介质、主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与所 述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接口 相连, 其特征在于, 所述装置包括:
    接口模块, 用于接收中央处理器发送的读 /写请求, 所述读 /写请求包括 外部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器 判断出系统进程发送的命令为到数据读 /写请求后生成;
    数据收发模块, 用于根据所述元数据, 从所述文件中读取数据; 或者, 将需要写入所述文件的数据写入所述文件; 并且向所述中央处理器报告数据 读 /取结果。
  7. 7、 如权利要求 6所述的 装置, 其特征在于, 还包括: 查找单元, 用于在所述读 /写请求为读请求时, 根据所述读请求中的元数 据, 查找本地内存中是否具有与所述元数据对应的文件;
    命令解析模块, 用于当所述查找单元根据所述元数据确定所述本地内存 中不具有所述文件时, 对所述元数据进行解析, 获取所述文件的块数据, 所 述块数据中包括所述文件的地址和长度信息;
    命令转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够 识别的 10命令, 并将所述 10命令发送到存储介质, 以代替所述中央处理器 直接对所述存储介质进行读操作。
  8. 8、 如权利要求 7所述的装置, 其特征在于, 所述数据收发模块还用于: 当所述读 /写请求为读请求时, 所述查找单元根据所述文件元数据确定本地内 存中具有所述元数据对应的文件时, 将所述文件对应的数据发送给所述主机。
  9. 9、 如权利要求 1 所述的装置, 其特征在于, 当所述读 /写请求为写请求 时, 所述写请求中还包括需要写入存储介质中的数据, 所述装置还包括: 查找单元, 用于根据所述写请求中的元数据, 查找本地内存中是否具有 与所述元数据对应的文件;
    如果所述本地内存中具有与所述元数据对应的文件, 所述数据收发模块 将所述需要写入存储介质中的数据, 写入所述元数据对应的文件;
    同步单元, 用于将所述本地内存中与所述元数据对应的文件, 同步到所 述存储介质中。
  10. 1 0、 如权利要求 9 所述的装置, 其特征在于, 还包括: 当所述查找单元 述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的 地址和长度信息;
    转化模块, 用于将所述文件块数据的地址信息转化为存储介质能够识别 的 10命令, 并将所述 10命令发送到存储介质, 以代替所述主机直接对所述 存储介质进行写操作; 所述数据收发模块用于将所述需要写入存储介质中的数据写入到所述存 储介质中与所述文件块数据的地址信息对应的存储空间。
  11. 11、 一种快速数据读写装置, 应用于计算机系统中, 所述计算机系统包 括存储介质、 主机以及硬件加速控制器 HAC, 所述硬件加速控制器通过接口与 所述主机和存储介质相连, 所述主机包括一中央处理器, 所述主机与外部接 口相连, 其特征在于, 所述装置包括: 网络接口; 处理器; 存储器;
    物理存储在所述存储器中的应用程序, 所述应用程序包括可用于使所述 处理器执行以下过程的指令:
    通过网络接口接收中央处理器发送的读 /写请求, 所述读 /写请求包括外 部需要读取或写入数据的文件的元数据, 所述读 /写请求由所述中央处理器判 断出系统进程发送的命令为到数据读 /写请求后生成;
    所述处理器根据所述元数据, 从所述文件中读取数据; 或者, 将需要写 入所述文件的数据写入所述文件;
    所述网络接口向所述中央处理器报告数据读 /取结果。
  12. 12、 如权利要求 11 所述的装置, 其特征在于, 所述读 /写请求为读请求 时, 所述处理器根据所述读请求中的元数据, 查找本地内存中是否具有与所 述元数据对应的文件; 所述元数据进行解析, 获取所述文件的块数据, 所述块数据中包括所述文件 的地址和长度信息;
    将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令通过网络接口发送到存储介质, 以代替所述主机直接对所述存储 介质进行读操作。
  13. 1 3、 如权利要求 12所述的装置, 其特征在于, 当所述读 /写请求为读请 文件时, 将所述文件对应的数据发送给所述主机。 14、 如权利要求 11 所述的装置, 其特征在于, 当所述读 /写请求为写请 求时, 所述写请求中还包括需要写入存储介质中的数据, 所述处理器根据所 述写请求中的元数据, 查找本地内存中是否具有与所述元数据对应的文件; 如果所述本地内存中具有与所述元数据对应的文件, 所述处理器将所述 需要写入存储介质中的数据, 写入所述元数据对应的文件;
    通过所述网络接口将所述本地内存中与所述元数据对应的文件, 同步到 所述存储介质中。
  14. 15、 如权利要求 14所述的装置, 其特征在于, 还包括: 当所述处理器根 据所述元数据确定所述本地不具有所述文件时, 所述处理器对所述元数据进 行解析, 获取所述文件的块数据, 所述块数据中包括所述文件的地址和长度 信息;
    将所述文件块数据的地址信息转化为存储介质能够识别的 10命令, 并将 所述 10命令发送到存储介质, 以代替所述主机直接对所述存储介质进行写操 作;
    将所述需要写入存储介质中的数据写入到所述存储介质中与所述文件块 数据的地址信息对应的存储空间。
CN201480037236.0A 2014-05-16 2014-05-16 快速数据读写方法和装置 Active CN105393236B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/077693 WO2015172391A1 (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置

Publications (2)

Publication Number Publication Date
CN105393236A true CN105393236A (zh) 2016-03-09
CN105393236B CN105393236B (zh) 2018-06-26

Family

ID=54479207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480037236.0A Active CN105393236B (zh) 2014-05-16 2014-05-16 快速数据读写方法和装置

Country Status (2)

Country Link
CN (1) CN105393236B (zh)
WO (1) WO2015172391A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918319A (zh) * 2019-03-22 2019-06-21 深圳忆联信息系统有限公司 一种固态硬盘控制器加速方法及其系统
CN112214166A (zh) * 2017-09-05 2021-01-12 华为技术有限公司 用于传输数据处理请求的方法和装置
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765055B (zh) * 2019-11-01 2021-12-21 北京忆芯科技有限公司 存储设备的控制部件
CN111679794B (zh) * 2020-06-17 2024-01-26 北京中存超为科技有限公司 多控存储系统中进行数据同步的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN1622056A (zh) * 2004-12-24 2005-06-01 北京中星微电子有限公司 一种访问文件的方法
CN1892619A (zh) * 2005-07-06 2007-01-10 美国亿科三友公司 Raid系统存储容量适应运行系统和方法
CN101799741A (zh) * 2009-02-09 2010-08-11 联想(北京)有限公司 存储数据读取装置和方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN1622056A (zh) * 2004-12-24 2005-06-01 北京中星微电子有限公司 一种访问文件的方法
CN1892619A (zh) * 2005-07-06 2007-01-10 美国亿科三友公司 Raid系统存储容量适应运行系统和方法
CN101799741A (zh) * 2009-02-09 2010-08-11 联想(北京)有限公司 存储数据读取装置和方法
CN102981783A (zh) * 2012-11-29 2013-03-20 浪潮电子信息产业股份有限公司 一种基于Nand Flash的Cache加速方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214166A (zh) * 2017-09-05 2021-01-12 华为技术有限公司 用于传输数据处理请求的方法和装置
CN109918319A (zh) * 2019-03-22 2019-06-21 深圳忆联信息系统有限公司 一种固态硬盘控制器加速方法及其系统
CN109918319B (zh) * 2019-03-22 2021-03-05 深圳忆联信息系统有限公司 一种固态硬盘控制器加速方法及其系统
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Also Published As

Publication number Publication date
CN105393236B (zh) 2018-06-26
WO2015172391A1 (zh) 2015-11-19

Similar Documents

Publication Publication Date Title
US10282128B2 (en) Data deduplication
US8762627B2 (en) Memory logical defragmentation during garbage collection
US8244962B2 (en) Command processor for a data storage device
CN105393236A (zh) 快速数据读写方法和装置
CN106126124B (zh) 一种数据处理方法及电子设备
US20080229046A1 (en) Unified support for solid state storage
CN103246609B (zh) 一种闪存存储设备中冷热数据区分管理的方法及装置
CN101344870B (zh) 一种复用性强的fifo控制模块及其管理内存的方法
CN105117351A (zh) 向缓存写入数据的方法及装置
EP2291748A2 (en) Maintenance of exo-file system metadata on removable storage device
CN101278270A (zh) 在虚拟存储器环境中处理dma请求的设备和方法
CN115543894B (zh) 存储系统、数据处理方法及装置、存储介质及电子设备
CN103049224A (zh) 将数据导入物理磁带的方法、装置和系统
CN1831750A (zh) 数据控制设备
EP2535820A2 (en) Method and apparatus for data access by a reprogrammable circuit module
CN104598161B (zh) 数据读取、写入方法和装置及数据存储结构
WO2001042985A2 (en) Sharing data between operating systems
US20110106815A1 (en) Method and Apparatus for Selectively Re-Indexing a File System
CN110019063A (zh) 计算节点数据容灾回放的方法、终端设备及存储介质
CN100489855C (zh) 使用最少的日志条目将数据库更改记入日志的设备和方法
US8046507B2 (en) Computer, external storage and method for processing data information in external storage
CN109684258A (zh) 一种信号处理装置及方法
US20060143313A1 (en) Method for accessing a storage device
CN115774701B (zh) 数据共享方法、装置、电子设备及存储介质
US20230409235A1 (en) File system improvements for zoned storage device operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210425

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.