CN112416815A - 一种基于srio的高速存储回放方法 - Google Patents

一种基于srio的高速存储回放方法 Download PDF

Info

Publication number
CN112416815A
CN112416815A CN202011445919.3A CN202011445919A CN112416815A CN 112416815 A CN112416815 A CN 112416815A CN 202011445919 A CN202011445919 A CN 202011445919A CN 112416815 A CN112416815 A CN 112416815A
Authority
CN
China
Prior art keywords
srio
data
address
memory
playback method
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
CN202011445919.3A
Other languages
English (en)
Other versions
CN112416815B (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.)
CSIC (WUHAN) LINCOM ELECTRONICS CO LTD
Original Assignee
CSIC (WUHAN) LINCOM ELECTRONICS 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 CSIC (WUHAN) LINCOM ELECTRONICS CO LTD filed Critical CSIC (WUHAN) LINCOM ELECTRONICS CO LTD
Priority to CN202011445919.3A priority Critical patent/CN112416815B/zh
Publication of CN112416815A publication Critical patent/CN112416815A/zh
Application granted granted Critical
Publication of CN112416815B publication Critical patent/CN112416815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/0673Single storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于SRIO的高速存储回放方法,该方法包括统一对齐地址映射和二级流水。本发明的有益效果是:通过统一对齐地址映射,使得SRIO数据和磁盘文件数据在同一物理地址中,避免了SRIO数据和磁盘文件数据在内存中的搬移,利用直接IO,节省了CPU在系统中开销,充分利用了异步无缓存和DMA的高速特性。通过两级直接IO流水线使得SRIO数据进出内存和磁盘文件数据进出内存得以同时流水进行,避免了由于二者的先后顺序造成不必要的阻塞。节省了系统资源并提高了传输带宽。

Description

一种基于SRIO的高速存储回放方法
技术领域
本发明涉及一种存储回放方法,具体为一种基于SRIO的高速存储回放方法,属于数字信号处理技术领域。
背景技术
在高性能嵌入式系统中,传输速率超过1GB/s的系统常用到SRIO,使得SRIO成为了高速数据交换传输的重要的途径,当系统中有数据存储和回放的需求时时,针对SRIO数据的高速存储回放功能成为了这一领域的关键技术。
在高性能嵌入式系统中,采用Linux系统作为存储单元的操作系统,为了使得文件能够高速读写,通常采用O_DIRECT方式文件,可以绕过系统缓存直接进行数据读写,可以保障数据读写速率,但是采用该方式打开的文件无法直接使用SRIO需要的物理空间。
基于此,本申请提出一种基于SRIO的高速存储回放方法。
发明内容
本发明的目的就在于为了解决问题而提供一种基于SRIO的高速存储回放方法。
本发明通过以下技术方案来实现上述目的:一种基于SRIO的高速存储回放方法,包括:
统一对齐地址映射,在Linux系统上,使SRIO驱动使用的物理内存与用户空间内存、文件O_DIRECT读写空间一致;
二级流水,利用同区映射的连续对齐物理内存区域,以地址递增的方式同时连续的进行SRIO的直接DMA和磁盘文件异步无缓存读写两条流水线;
其中,所述统一对齐地址映射的程序流程包括:
(1)、在Linux系统中,在设备初始化过程中,注册一段对齐的连续的物理内存(内存块A),并删除内核对特殊页表的特殊处理,使特殊页表可以与普通页表一样使用;
(2)、创建一个内核模块,注册一个MISC设备(设备RMEM),该MISC设备的驱动中,包含open、close、read、write、mmap,mmap可以将内存块A直接映射到用户层,提供给用户的应用程序进行访问;
(3)、软件中打开设备RMEM,通过read操作获取到内存块A的地址和大小,再通过mmap操作将内存块A映射到用户层,提供给应用程序进行访问;
所述二级流水的程序流程包括:
(1)、接收到门铃后,根据门铃的消息内容提交文件写入操作,将对应内存地址的数据写入磁盘,提交后不等待写入完成,立即继续等待接收下一个门铃消息;
(2)、需要进行回放时,根据需要回放的数据长度,循环提交递增偏移地址的文件读取操作,将数据读取到相应物理内存中,直到写入到用于数据回放的逻辑地址的尾部时,回到首地址;
(3)、当上述(2)中的一次数据读取完成时,会通知软件通过SRIO将数据发送到指定设备,至此实现了存储和放回两级直接IO流水。
作为本发明再进一步的方案:所述统一对齐地址映射映射完成后,可以访问连续的逻辑地址,也可以访问连续的物理地址,并且在该段地址对齐的位置可以使用无缓存进行快速读写。
作为本发明再进一步的方案:所述SRIO驱动的SRIO数据抵达物理内存的同时进行数据存储,同样在读取数据的同时可以进行SRIO数据发送,且在数据读写时,使用异步无缓存,在SRIO数据写入对应区域后,只需提交磁盘文件读写到队列。
作为本发明再进一步的方案:所述二级流水程序在进行回放时,提交异步IO需要携带表示内存块计数的数据。
作为本发明再进一步的方案:所述统一对齐地址映射的程序在初始化过程中所注册的连续对齐物理内存采用环形队列。
本发明的有益效果是:该基于SRIO的高速存储回放方法设计合理,通过统一对齐地址映射,使得SRIO数据和磁盘文件数据在同一物理地址中,避免了SRIO数据和磁盘文件数据在内存中的搬移,利用直接IO,节省了CPU在系统中开销,充分利用了异步无缓存和DMA的高速特性。通过两级直接IO流水线使得SRIO数据进出内存和磁盘文件数据进出内存得以同时流水进行,避免了由于二者的先后顺序造成不必要的阻塞。节省了系统资源并提高了传输带宽。
附图说明
图1为本发明统一对齐地址映射流程示意图;
图2为本发明存储模式下二级直接IO流水原理示意图;
图3为本发明回放模式下二级直接IO流水原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1~3,一种基于SRIO的高速存储回放方法,包括:
统一对齐地址映射,在Linux系统上,使SRIO驱动使用的物理内存与用户空间内存、文件O_DIRECT读写空间一致;
二级流水,利用同区映射的连续对齐物理内存区域,以地址递增的方式同时连续的进行SRIO的直接DMA和磁盘文件异步无缓存读写两条流水线;
其中,所述统一对齐地址映射的程序流程包括:
(1)、在Linux系统中,在设备初始化过程中,注册一段对齐的连续的物理内存(内存块A),并删除内核对特殊页表的特殊处理,使特殊页表可以与普通页表一样使用;
(2)、创建一个内核模块,注册一个MISC设备(设备RMEM),该MISC设备的驱动中,包含open、close、read、write、mmap,mmap可以将内存块A直接映射到用户层,提供给用户的应用程序进行访问;
(3)、软件中打开设备RMEM,通过read操作获取到内存块A的地址和大小,再通过mmap操作将内存块A映射到用户层,提供给应用程序进行访问;
所述二级流水的程序流程包括:
(1)、接收到门铃后,根据门铃的消息内容提交文件写入操作,将对应内存地址的数据写入磁盘,提交后不等待写入完成,立即继续等待接收下一个门铃消息;
(2)、需要进行回放时,根据需要回放的数据长度,循环提交递增偏移地址的文件读取操作,将数据读取到相应物理内存中,直到写入到用于数据回放的逻辑地址的尾部时,回到首地址;
(3)、当上述(2)中的一次数据读取完成时,会通知软件通过SRIO将数据发送到指定设备,至此实现了存储和放回两级直接IO流水。
在本发明实施例中,所述统一对齐地址映射映射完成后,可以访问连续的逻辑地址,也可以访问连续的物理地址,并且在该段地址对齐的位置可以使用无缓存进行快速读写。
在本发明实施例中,所述SRIO驱动的SRIO数据抵达物理内存的同时进行数据存储,同样在读取数据的同时进行SRIO数据发送,且在数据读写时,使用异步无缓存,在SRIO数据写入对应区域后,只需提交磁盘文件读写到队列,不需要等待完成,保证整个存储流程顺畅不会出现阻塞的现象,保证性能。
在本发明实施例中,所述二级流水程序在进行回放时,提交异步IO需要携带表示内存块计数的数据。
在本发明实施例中,所述统一对齐地址映射的程序在初始化过程中所注册的连续对齐物理内存采用环形队列。
工作原理:在使用该基于SRIO的高速存储回放方法时,通过修改Linux内核,将同一段连续对齐物理内存映射给SRIO驱动和用户空间,可以实现程序中SRIO数据需要访问的物理内存与磁盘文件读写需要访问的物理内存地址一致。外部SRIO数据通过直接DMA发送至对应的物理内存,软件将该段物理内存以异步无缓存的方式写入磁盘。同理,软件通过异步无缓存的方式将磁盘数据读出至物理内存,然后通过直接DMA的方式直接发送至SRIO对端设备。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (7)

1.一种基于SRIO的高速存储回放方法,其特征在于,包括:
(a)统一对齐地址映射,在Linux系统上,使SRIO驱动使用的物理内存与用户空间内存、文件O_DIRECT读写空间一致;
(b)二级流水,利用同区映射的连续对齐物理内存区域,以地址递增的方式同时连续的进行SRIO的直接DMA和磁盘文件异步无缓存读写两条流水线。
2.根据权利要求1所述的一种基于SRIO的高速存储回放方法,其特征在于,所述统一对齐地址映射的程序流程包括:
(1)、在Linux系统中,在设备初始化过程中,注册一段对齐的连续的物理内存,记为内存块A,并删除内核对特殊页表的特殊处理,使特殊页表与普通页表一样使用;
(2)、创建一个内核模块,注册一个MISC设备,记为设备RMEM,该MISC设备的驱动中,包含open、close、read、write、mmap,mmap将内存块A直接映射到用户层,提供给用户的应用程序进行访问;
(3)、软件中打开设备RMEM,通过read操作获取到内存块A的地址和大小,再通过mmap操作将内存块A映射到用户层,提供给应用程序进行访问。
3.根据权利要求2所述的一种基于SRIO的高速存储回放方法,其特征在于,所述二级流水的程序流程包括:
(1)、接收到门铃后,根据门铃的消息内容提交文件写入操作,将对应内存地址的数据写入磁盘,提交后不等待写入完成,立即继续等待接收下一个门铃消息;
(2)、需要进行回放时,根据需要回放的数据长度,循环提交递增偏移地址的文件读取操作,将数据读取到相应物理内存中,直到写入到用于数据回放的逻辑地址的尾部时,回到首地址;
(3)、当上述(2)中的一次数据读取完成时,会通知软件通过SRIO将数据发送到指定设备,至此实现了存储和放回两级直接IO流水。
4.根据权利要求2所述的一种基于SRIO的高速存储回放方法,其特征在于:所述统一对齐地址映射映射完成后可以访问连续的逻辑地址或访问连续的物理地址,并且在该段地址对齐的位置使用无缓存进行快速读写。
5.根据权利要求1所述的一种基于SRIO的高速存储回放方法,其特征在于:所述SRIO驱动的SRIO数据抵达物理内存的同时进行数据存储,同样在读取数据的同时可以进行SRIO数据发送,且在数据读写时,使用异步无缓存,在SRIO数据写入对应区域后,只需提交磁盘文件读写到队列。
6.根据权利要求3所述的一种基于SRIO的高速存储回放方法,其特征在于:所述二级流水程序在进行回放时,提交异步IO需要携带表示内存块计数的数据。
7.根据权利要求6所述的一种基于SRIO的高速存储回放方法,其特征在于:所述统一对齐地址映射的程序在初始化过程中所注册的连续对齐物理内存采用环形队列。
CN202011445919.3A 2020-12-09 2020-12-09 一种基于srio的高速存储回放方法 Active CN112416815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011445919.3A CN112416815B (zh) 2020-12-09 2020-12-09 一种基于srio的高速存储回放方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011445919.3A CN112416815B (zh) 2020-12-09 2020-12-09 一种基于srio的高速存储回放方法

Publications (2)

Publication Number Publication Date
CN112416815A true CN112416815A (zh) 2021-02-26
CN112416815B CN112416815B (zh) 2023-05-23

Family

ID=74775553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011445919.3A Active CN112416815B (zh) 2020-12-09 2020-12-09 一种基于srio的高速存储回放方法

Country Status (1)

Country Link
CN (1) CN112416815B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023232079A1 (zh) * 2022-05-31 2023-12-07 上海寒武纪信息科技有限公司 数据存储、访问、运算方法及相关产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065854A1 (en) * 2006-09-07 2008-03-13 Sebastina Schoenberg Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
CN103731328A (zh) * 2014-01-02 2014-04-16 烽火通信科技股份有限公司 基于Linux共享内存实现家庭网关数据通信的系统及方法
CN108197038A (zh) * 2018-02-01 2018-06-22 深圳市风云实业有限公司 一种Linux数据传输方法、装置和用户终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080065854A1 (en) * 2006-09-07 2008-03-13 Sebastina Schoenberg Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor
CN102467473A (zh) * 2010-11-03 2012-05-23 Tcl集团股份有限公司 一种在用户空间和内核之间传输数据的方法和装置
CN103731328A (zh) * 2014-01-02 2014-04-16 烽火通信科技股份有限公司 基于Linux共享内存实现家庭网关数据通信的系统及方法
CN108197038A (zh) * 2018-02-01 2018-06-22 深圳市风云实业有限公司 一种Linux数据传输方法、装置和用户终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
(美)W. CURTIS PRESTON著: "《使用SAN与NAS》", 31 March 2003 *
RAPIDIO.ORG: "RapidIOTM Interconnect Specification Part 1: Input/Output Logical", 《HTTPS://RAPIDIO.ORG/RAPIDIO-SPECIFICATIONS/》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023232079A1 (zh) * 2022-05-31 2023-12-07 上海寒武纪信息科技有限公司 数据存储、访问、运算方法及相关产品

Also Published As

Publication number Publication date
CN112416815B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US10402335B2 (en) Method and apparatus for persistently caching storage data in a page cache
US9990138B2 (en) Out of order SGL read sorting in a mixed system with PRP read or system that supports only SGL reads
CN109445685B (zh) 一种用户态文件系统处理方法
US20170357462A1 (en) Method and apparatus for improving performance of sequential logging in a storage device
US11132145B2 (en) Techniques for reducing write amplification on solid state storage devices (SSDs)
EP3005126B1 (en) Storage systems and aliased memory
TWI737031B (zh) 多平面上頁面的片段資料讀取方法及電腦程式產品
CN111475436A (zh) 一种基于pcie交换网络的嵌入式高速sata存储阵列系统
CN101876956B (zh) Sd卡的文件存取方法及装置
US20220121581A1 (en) Controller and operation method thereof
CN109375568A (zh) 一种多源数据实时采集装置
CN112416815B (zh) 一种基于srio的高速存储回放方法
TWI410963B (zh) 作業系統輔助碟片快取電腦系統、方法與製圖子系統
WO2018166179A1 (zh) 一种基于sd卡的高速数据存储方法
CN114138200B (zh) 一种基于RocksDB的预写日志方法及系统
CN113031862B (zh) 一种基于nvme协议控制sata盘的存储系统
US20060143313A1 (en) Method for accessing a storage device
CN115113799A (zh) 主机命令的执行方法及装置
CN104298620A (zh) 一种耐擦写低能耗的外接计算机加速设备
US20030046499A1 (en) Integrated drive controller for systems with integrated mass storage
CN114860158A (zh) 一种高速数据采集记录方法
CN116340203A (zh) 数据预读取方法、装置、处理器及预取器
CN114265791A (zh) 一种数据调度方法、芯片以及电子设备
CN109388584A (zh) 一种透过不同映址空间实现弹性且快速存取硬件内存队列方法
CN101859232A (zh) 一种可变长度数据存储接口

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
GR01 Patent grant
GR01 Patent grant