CN110502190A - 文件读写方法 - Google Patents
文件读写方法 Download PDFInfo
- Publication number
- CN110502190A CN110502190A CN201910810926.XA CN201910810926A CN110502190A CN 110502190 A CN110502190 A CN 110502190A CN 201910810926 A CN201910810926 A CN 201910810926A CN 110502190 A CN110502190 A CN 110502190A
- Authority
- CN
- China
- Prior art keywords
- ssd
- write
- read
- controller
- dma
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Radio Relay Systems (AREA)
Abstract
本发明提供了一种文件读写方法,本发明针对嵌入式操作系统,利用SSD的控制器和DMA功能,使用操作系统信号量和循环缓冲区资源,提出了一种提高星载嵌入式系统读写文件速度的方法,以期解决目前星载计算机系统读写文件速度受制于单个SSD控制器的DMA速度,进而提高星载计算机系统IO性能。本发明为持续大量的读写操作提供支持,发挥操作系统信号量、调度算法优势,降低星载嵌入式系统的处理器使用。本发明针对星载嵌入式系统,能够有效提高SSD读写速度,对于实现数据的高速访问和存储提供保证。
Description
技术领域
本发明涉及一种文件读写方法。
背景技术
星载计算机系统运用嵌入式操作系统后,使用文件系统能够使得综合电子系统软件的开发更加灵活和便捷。充分利用嵌入式操作系统提供的文件函数,方便开发应用程序。用户程序只需关注读写技术实现,不必担心IO资源限制。
随着卫星应用载荷数量提升,需提高星载计算机读写文件速度。综合电子星载计算机只有提高IO性能,才能满足卫星整体性能指标。
嵌入式文件系统在宇航星载计算机中有着广泛的应用,而现有实现技术中,主要有以外下两种实现方式:
1、利用FPGA控制存储器实现简易的文件系统,但无法与现有嵌入式操作系统接口对接,应用软件接口较难;
2、利用文件系统,但无法匹配高速载荷数据的读写需求。
发明内容
本发明的目的在于提供一种文件读写方法。
为解决上述问题,本发明提供一种文件读写方法,包括:
步骤S1,为当前星载嵌入式系统挂载SSD,其中,根据速度指标挂载多个SSD,保证在读写操作时存在多个SSD,提供所述SSD的控制器;
步骤S2,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址,其中,所述读写函数中的写函数,用于实现星载嵌入式系统的分段内存的数据通过控制器DMA搬移至SSD中;所述读写函数中的读函数,用于实现SSD中的数据通过控制器DMA搬移至星载嵌入式系统的分段内存;
步骤S3,同时启动每个SSD的控制器对应的控制器DMA,在写操作时通过所述写函数,把所述分段内存的数据搬移至SSD中,或在读操作时通过所述读函数,把SSD中的数据搬运至所述分段内存中,其中,所述分段内存的大小等于星载嵌入式系统的内存的数据大小/SSD个数,所述分段内存的偏移地址是星载嵌入式系统的内存的数据的搬移基地址加当前控制器位置*所述分段内存的大小;
步骤S4,等待所有的SSD控制器的控制器DMA结束;
步骤S5,根据读写需求,周期性重复步骤S3和步骤S4。
进一步的,在上述方法中,所述SSD的控制器为两个以上。
进一步的,在上述方法中,等待所有的SSD控制器的控制器DMA结束,包括:
针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成。
进一步的,在上述方法中,针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成,包括:
为每个SSD引进读写完成的结束变量,当所有控制器DMA完成后,完成标志才置位。
进一步的,在上述方法中,同时启动每个SSD的控制器对应的控制器DMA,包括:
在大量读写数据期间,连续性启动控制器DMA。
进一步的,在上述方法中,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址,
每个SSD虚拟地址转化为物理地址时,由SSD的FTL控制器决定其逻辑和物理地址映射关系。
与现有技术相比,本发明针对嵌入式操作系统,利用SSD的控制器和DMA功能,使用操作系统信号量和循环缓冲区资源,提出了一种提高星载嵌入式系统读写文件速度的方法,以期解决目前星载计算机系统读写文件速度受制于单个SSD控制器的DMA速度,进而提高星载计算机系统IO性能。本发明为持续大量的读写操作提供支持,发挥操作系统信号量、调度算法优势,降低星载嵌入式系统的处理器使用。本发明针对星载嵌入式系统,能够有效提高SSD读写速度,对于实现数据的高速访问和存储提供保证。
附图说明
图1是本发明一实施例的星载嵌入式系统读写文件的示意图;
图2是本发明一实施例的读写SSD的流程图;
图3是本发明一实施例的的利用信号量连续读写的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1至图3所示,本发明提供一种文件读写方法,包括:
步骤S1,为当前星载嵌入式系统挂载SSD,其中,根据速度指标挂载多个SSD,保证在读写操作时存在多个SSD,提供所述SSD的控制器;
在此,SSD为固态驱动器(Solid State Disk或Solid State Drive);
为星载嵌入式系统挂载SSD,根据速度指标挂载多个,保证在读写操作时存在多个SSD,确保多个SSD控制器不会相互影响;
步骤S2,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址,其中,所述读写函数中的写函数,用于实现星载嵌入式系统的分段内存的数据通过控制器DMA搬移至SSD中;所述读写函数中的读函数,用于实现SSD中的数据通过控制器DMA搬移至星载嵌入式系统的分段内存;
在此,读或写均是通过控制器DMA实现,节省星载嵌入式系统处理器资源;
凡是需要星载嵌入式系统内存和SSD交互数据,都需要使用SSD的虚拟地址和控制器DMA,通过控制器DMA实现数据交互,为星载嵌入式系统降低计算资源;
步骤S3,同时启动每个SSD的控制器对应的控制器DMA,在写操作时通过所述写函数,把所述分段内存的数据搬移至SSD中,或在读操作时通过所述读函数,把SSD中的数据搬运至所述分段内存中,其中,所述分段内存的大小(segsize)等于星载嵌入式系统的内存的数据大小(size)/SSD个数(n),所述分段内存的偏移地址是星载嵌入式系统的内存的数据的搬移基地址加当前控制器位置*所述分段内存的大小(segsize);
在此,通过分解大块内存数据,每个小块数据和SSD进行交互,保证多个SSD并行工作,整体提高星载嵌入式系统读写速度;
引进交互数据内存块分段DMA,充分利用内存、操作系统信号量和循环缓冲区资源,发挥多个SSD并行性能,倍数提高读写文件速度;
步骤S4,等待所有的SSD控制器的控制器DMA结束;
在此,因为同时启动SSD个数(n)个控制器DMA,需等待所有控制器DMA结束后,一次读写操作才算结束;
步骤S5,根据读写需求,周期性重复步骤S3和步骤S4,保证读写文件的速度。
在此,本发明针对嵌入式操作系统,利用SSD的控制器和DMA功能,使用操作系统信号量和循环缓冲区资源,提出了一种提高星载嵌入式系统读写文件速度的方法,以期解决目前星载计算机系统读写文件速度受制于单个SSD控制器的DMA速度,进而提高星载计算机系统IO性能。本发明为持续大量的读写操作提供支持,发挥操作系统信号量、调度算法优势,降低星载嵌入式系统的处理器使用。本发明针对星载嵌入式系统,能够有效提高SSD读写速度,对于实现数据的高速访问和存储提供保证。
本发明的文件读写方法一实施例中,所述SSD的控制器为两个以上。
在此,对于使用多个SSD作为存储介质的星载文件系统,至少需要两个或以上的为多个SSD提供了并行操作的控制器,成倍增长读写速度,从而保证高速的读写速度。
当使用多个SSD作为存储介质的星载文件系统,至少保证为星载嵌入式系统提供多个存储介质,确保软件读写可以并行操作。
本发明的文件读写方法一实施例中,步骤S4中,等待所有的SSD控制器的控制器DMA结束,包括:
针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成。
在此,引进保证所有控制器DMA完成的逻辑,确保星载文件系统中所有数据文件完整性。针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成。只有所有DMA结束才是完整读写函数,防止因各个SSD完成时间不一致,影响读写数据的正确性。
本发明的文件读写方法一实施例中,针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成,包括:
为每个SSD引进读写完成的结束变量,当所有控制器DMA完成后,完成标志才置位,保证了一次数据交互的完整性。
本发明的文件读写方法一实施例中,步骤S3中,同时启动每个SSD的控制器对应的控制器DMA,包括:
在大量读写数据期间,连续性启动控制器DMA。
在此,利用星载嵌入式系统中的信号量和循环缓冲区,保证读写数据连续性和正确性。
本发明的文件读写方法一实施例中,步骤S2,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址中,
每个SSD虚拟地址转化为物理地址时,由SSD的FTL控制器决定其逻辑和物理地址映射关系。
在此,由SSD的控制器实现均衡的使用物理地址,实现负载均衡;
综上所述,本发明能够提供对于运行嵌入式操作系统环境,进一步星载嵌入式系统读写文件速度,提高星载嵌入式系统IO性能有着积极的借鉴意义,在航天领域具有较好的实际工程应用价值。
具体的,本发明的设计原理和设计思路主要包含如下两部分,具体为:
(1)利用并行计算的思想,为每个SSD提供DMA起始内存地址和搬移大小,当所有DMA结束,完成一次读写操作;
(2)利用星载计算机嵌入式操作系统的信号量和循环缓冲区,保证连续高效完成单次读写SSD。
具体的,如图1至图3所示,本发明提供的一种提高星载嵌入式系统读写文件速度的方法包括步骤如下:
步骤一,针对星载计算机嵌入式文件系统的存储介质——SSD,创建三个物理设备,为嵌入式操作系统所识别,物理上保证是并行存在三个SSD;
步骤二,为SSD创建读写函数,函数操作的是SSD的虚拟地址,写函数实现星载嵌入式系统内存数据通过控制器DMA搬移至SSD,读函数实现SSD数据通过控制器DMA搬移至星载嵌入式系统内存。读写均是通过控制器DMA实现,节省星载嵌入式系统处理器资源;
步骤三,同时启动SSD控制器的控制器DMA,把分段内存的数据搬移至SSD(写)或从SSD搬运至内存(读);分段内存的大小(segsize)等于内存的数据大小(size)/SSD个数(3),分段内存的偏移地址是内存数据搬移基地址加分段内存大小(segsize);
步骤四,等待所有SSD控制器的DMA结束,因为同时启动SSD个数(3)个DMA,需等待所有DMA结束后,一次读写操作才算结束;
步骤五,根据读写需求,周期性重复步骤三和四,保证读写文件的速度。
本方法引入内存分割算法,降低单个DMA读写的数据量。同时启动多个DMA,并行完成读写操作,所有DMA结束后,一次读写完成。内存分割算法为每个SSD的DMA提供起始内存地址和搬移大小,所有DMA完成后,一次读写完成,确保了一次读写数据的完整性;
针对连续大量读写,利用星载计算机嵌入式操作系统的信号量、循环缓冲区等资源,重复内存分割读写,实现大量高速的IO操作。
综上所述,本发明方式以并行操作SSD方式显著提高星载嵌入式系统读写文件速度,从而提高星载嵌入式系统IO性能。相比于传统星载软件开发模式使用文件系统读写,该种方式可以极大提高星载软件读写文件的速度,具有较强的工程实践价值。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (6)
1.一种文件读写方法,其特征在于,包括:
步骤S1,为当前星载嵌入式系统挂载SSD,其中,根据速度指标挂载多个SSD,保证在读写操作时存在多个SSD,提供所述SSD的控制器;
步骤S2,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址,其中,所述读写函数中的写函数,用于实现星载嵌入式系统的分段内存的数据通过控制器DMA搬移至SSD中;所述读写函数中的读函数,用于实现SSD中的数据通过控制器DMA搬移至星载嵌入式系统的分段内存;
步骤S3,同时启动每个SSD的控制器对应的控制器DMA,在写操作时通过所述写函数,把所述分段内存的数据搬移至SSD中,或在读操作时通过所述读函数,把SSD中的数据搬运至所述分段内存中,其中,所述分段内存的大小等于星载嵌入式系统的内存的数据大小/SSD个数,所述分段内存的偏移地址是星载嵌入式系统的内存的数据的搬移基地址加当前控制器位置*所述分段内存的大小;
步骤S4,等待所有的SSD控制器的控制器DMA结束;
步骤S5,根据读写需求,周期性重复步骤S3和步骤S4。
2.如权利要求1所述的文件读写方法,其特征在于,所述SSD的控制器为两个以上。
3.如权利要求1所述的文件读写方法,其特征在于,等待所有的SSD控制器的控制器DMA结束,包括:
针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成。
4.如权利要求3所述的文件读写方法,其特征在于,针对读或写操作,为每个控制器引进一个控制器DMA的结束变量,当所有控制器DMA完成后,一次读写才完成,包括:
为每个SSD引进读写完成的结束变量,当所有控制器DMA完成后,完成标志才置位。
5.如权利要求1所述的文件读写方法,其特征在于,同时启动每个SSD的控制器对应的控制器DMA,包括:
在大量读写数据期间,连续性启动控制器DMA。
6.如权利要求1所述的文件读写方法,其特征在于,为每个SSD创建读写函数,所述读写函数操作的是每个SSD的虚拟地址,
每个SSD虚拟地址转化为物理地址时,由SSD的FTL控制器决定其逻辑和物理地址映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810926.XA CN110502190B (zh) | 2019-08-28 | 2019-08-28 | 文件读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810926.XA CN110502190B (zh) | 2019-08-28 | 2019-08-28 | 文件读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502190A true CN110502190A (zh) | 2019-11-26 |
CN110502190B CN110502190B (zh) | 2023-03-17 |
Family
ID=68590538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910810926.XA Active CN110502190B (zh) | 2019-08-28 | 2019-08-28 | 文件读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502190B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254321A (zh) * | 2021-06-07 | 2021-08-13 | 恒为科技(上海)股份有限公司 | 一种评估处理器内存访问性能的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN107967225A (zh) * | 2017-11-21 | 2018-04-27 | 深圳市统先科技股份有限公司 | 数据传输方法、装置、计算机可读存储介质和终端设备 |
CN110083571A (zh) * | 2019-03-27 | 2019-08-02 | 中国计量大学上虞高等研究院有限公司 | 一种分布式实时存储装置及其数据传输方法 |
-
2019
- 2019-08-28 CN CN201910810926.XA patent/CN110502190B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN107967225A (zh) * | 2017-11-21 | 2018-04-27 | 深圳市统先科技股份有限公司 | 数据传输方法、装置、计算机可读存储介质和终端设备 |
CN110083571A (zh) * | 2019-03-27 | 2019-08-02 | 中国计量大学上虞高等研究院有限公司 | 一种分布式实时存储装置及其数据传输方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254321A (zh) * | 2021-06-07 | 2021-08-13 | 恒为科技(上海)股份有限公司 | 一种评估处理器内存访问性能的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110502190B (zh) | 2023-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318164B2 (en) | Programmable input/output (PIO) engine interface architecture with direct memory access (DMA) for multi-tagging scheme for storage devices | |
EP3274806B1 (en) | Sequential write stream management | |
JP7008422B2 (ja) | NVMe装置に対しカーネルモードアクセス及び使用者モードアクセスを同時に可能にする方法及びホストコンピュータシステム並びに非一時的コンピュータ読出可能記録媒体 | |
CN103049397B (zh) | 一种基于相变存储器的固态硬盘内部缓存管理方法及系统 | |
US9836397B2 (en) | Direct memory access of dynamically allocated memory | |
US20140181365A1 (en) | Techniques to Configure a Solid State Drive to Operate in a Storage Mode or a Memory Mode | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
EP3506075A1 (en) | Mass storage device capable of fine grained read and/or write operations | |
US9324388B2 (en) | Allocating memory address space between DIMMs using memory controllers | |
CN117369729B (zh) | 一种zns ssd的附加写入实现方法 | |
JP2024054306A (ja) | ハードウェアベースのメモリ圧縮 | |
CN110502190A (zh) | 文件读写方法 | |
CN1503948A (zh) | 流水线化的ata设备初始化 | |
KR100809293B1 (ko) | 가상 머신에서 스택을 관리하는 장치 및 그 방법 | |
CN104199619A (zh) | 一种在nand中处理数据的方法及装置 | |
Bougioukou et al. | Prototyping and performance evaluation of a dynamically adaptable block device driver for PCIe-based SSDs | |
CN107861795A (zh) | 模拟物理tcm芯片的方法、系统、装置及可读存储介质 | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
CN103294632B (zh) | 一种总线载板、数据交互系统、数据处理方法及装置 | |
CN111625281A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
TWI774277B (zh) | 主機命令的執行方法及裝置 | |
TWI814647B (zh) | 執行主機命令的方法及電腦程式產品及裝置 | |
Campello | SMR: The next generation of storage technology | |
US11836314B1 (en) | Sensitivity adjustment for a touchpad of an information handling system | |
CN107422981B (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 |