CN106909513A - 一种异步非对称的读写存储区管理方法 - Google Patents

一种异步非对称的读写存储区管理方法 Download PDF

Info

Publication number
CN106909513A
CN106909513A CN201710164034.8A CN201710164034A CN106909513A CN 106909513 A CN106909513 A CN 106909513A CN 201710164034 A CN201710164034 A CN 201710164034A CN 106909513 A CN106909513 A CN 106909513A
Authority
CN
China
Prior art keywords
data
enough
continuous
insufficient
space
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.)
Pending
Application number
CN201710164034.8A
Other languages
English (en)
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.)
Zhuhai Pantum Electronics Co Ltd
Original Assignee
Hangzhou Sutian Technology 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 Hangzhou Sutian Technology Co Ltd filed Critical Hangzhou Sutian Technology Co Ltd
Priority to CN201710164034.8A priority Critical patent/CN106909513A/zh
Publication of CN106909513A publication Critical patent/CN106909513A/zh
Pending legal-status Critical Current

Links

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/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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种异步非对称的读写存储区管理方法,数据由DMA写入和CPU读出,设置限制标志位,当存储区用到结尾放不下一个完整的数据包时,使限制标志位指向实际占用的结尾处,然后将完整的数据包存放到存储区的头部,从而使得交给DMA来搬运数据的地址是连续的。本发明当2个功能模块之间的数据交换可以参考生产者和消费者模型关系,即读取和写入是异步且非对称(读取长度和写入长度不等且可变)时,若数据由DMA写入,通过跳过环形FIFO尾部长度不够的空间来巧妙地解决DMA地址必须连续的问题。

Description

一种异步非对称的读写存储区管理方法
技术领域
本申请涉及读写存储区管理领域,具体是一种异步非对称的读写存储区管理方法。
背景技术
在一些应用场景中,对数据处理的实时性要求不高,但是数据传输速度要求较高,通常使用异步FIFO来传输数据。异步FIFO一般采用环形存储区来高效的实现,当然只是逻辑地址连续,实际地址不连续,因此在使用DMA进行数据写入,且单次传输长度不固定时,需要一种方法来解决地址不连续的问题。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种异步非对称的读写存储区管理方法,数据由DMA写入和CPU读出,设置限制标志位,当存储区用到结尾放不下一个完整的数据包时,使限制标志位指向实际占用的结尾处,然后将完整的数据包存放到存储区的头部,从而使得交给DMA来搬运数据的地址是连续的。
进一步的,向存储区放入数据的过程包括如下步骤:
i.要存入n个字节,首先判断空闲空间在内存中是否是连续的;若连续,就跳到ii。若不连续,就跳到iii;
ii.连续则判断空闲空间大小是否足够,足够就直接存入数据,不足够就提示剩余空间不足;
iii.不连续则先查看尾部空闲空间是否足够。若足够,就直接存入数据;若不足够,就跳到iv;
iv.尾部空闲空间不足够,则判断头部空闲空间是否足够。若足够,就直接存入数据;若不足够,就提示剩余空间不足。
进一步的,从存储区取出数据的过程包括如下步骤:
i.要取出n个字节,首先判断数据空间在内存中是否连续;若连续,就跳到ii;若不连续,就跳到iii;
ii.连续则判断数据空间是否足够,足够就直接取走数据,不足够就提示没有足够的数据;
iii.不连续则先判断尾部数据空间是否足够;若足够,就直接取走数据;若不足够,就跳到iv;
iv.尾部数据空间不足够,则判断头部和尾部数据空间总大小是否足够;若足够,就先取出全部的尾部数据,再从头部取走所需的剩余大小数据;若总大小不足够,就提示没有足够的数据。
本发明当2个功能模块之间的数据交换可以参考生产者和消费者模型关系,即读取和写入是异步且非对称(读取长度和写入长度不等且可变)时,若数据由DMA写入,通过跳过环形FIFO尾部长度不够的空间来巧妙地解决DMA地址必须连续的问题。
附图说明
图1是向存储区放入数据流程图;
图2是从存储区取出数据流程图;
图3-9是具体实施图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明的异步非对称的读写存储区管理方法,包括向存储区放入数据和从存储区取出数据两方面。
如图1所示,向存储区放入数据的过程包括如下步骤:
i.要存入n个字节,首先判断空闲空间在内存中是否是连续的。若连续,就跳到ii。若不连续,就跳到iii。
ii.连续则判断空闲空间大小是否足够,足够就直接存入数据,不足够就提示剩余空间不足。
iii.不连续则先查看尾部空闲空间是否足够。若足够,就直接存入数据。若不足够,就跳到iv。
iv.尾部空闲空间不足够,则判断头部空闲空间是否足够。若足够,就直接存入数据。若不足够,就提示剩余空间不足。
如图2所示,从存储区取出数据的过程包括如下步骤:
i.要取出n个字节,首先判断数据空间在内存中是否连续。若连续,就跳到ii。若不连续,就跳到iii。
ii.连续则判断数据空间是否足够,足够就直接取走数据,不足够就提示没有足够的数据。
iii.不连续则先判断尾部数据空间是否足够。若足够,就直接取走数据。若不足够,就跳到iv。
iv.尾部数据空间不足够,则判断头部和尾部数据空间总大小是否足够。若足够,就先取出全部的尾部数据,再从头部取走所需的剩余大小数据。若总大小不足够,就提示没有足够的数据。
具体通过如下方式实现:
1)使用一片内存作为存储区,大小为max;outx记录存储区占用区块的开始处,也即读取首地址;inx记录存储区空闲区块的开始处,也即写入的首地址; limit记录实际占用的结尾处。开始时的存储区如图3所示。
2)当数据生产者使用DMA搬运了n次数据到存储区后,图中灰色方块表示每次写入的数据,L[n]表示第n次数据搬运的数据长度。具体分布情况如图4所示。
3)数据消费者从存储区取走了部分数据后。如图5所示。
4)在写入过程中会出现如图6所示。
5)这时若数据生产者使用DMA搬运了L+5个数据到存储区,但是存储区的尾部只剩下L个数据大小的空间,所以从存储区头部开始存放,limit指向实际占用的结尾处。如图7所示。
6)在读取过程中会出现如下情况,如图8所示。
7)这时数据消费者要取走L+5个数据时,先取出从outx指向的地址开始到limit指向的地址为结尾的L个数据,limit重新指向max。然后再取出存储区头部的5个数据,outx指向首地址加5的地址。如图9所示。
在多功能打印机芯片的USB device驱动中,底层USB device驱动作为数据生产者,而上层数据处理模块为数据消费者,使用了这种方法来解决DMA地址要连续的问题。
USB 在数据收发过程中,驱动程序事先分配好存储空间给DMA使用,大部分情况是满512字节的长包,但也存在不满512字节的短包,因此会遇到存储区用到结尾时放不下一个USB包的情况。使用本发明的机制,让limit指向实际占用的结尾处,然后将USB包存放到存储区的头部(如果足够),从而使得交给DMA来搬运USB数据包的地址是连续的。

Claims (3)

1.一种异步非对称的读写存储区管理方法,数据由DMA写入和CPU读出,其特征在于:设置限制标志位,当存储区用到结尾放不下一个完整的数据包时,使限制标志位指向实际占用的结尾处,然后将完整的数据包存放到存储区的头部,从而使得交给DMA来搬运数据的地址是连续的。
2.如权利要求1所述的异步非对称的读写存储区管理方法,其特征在于:
向存储区放入数据的过程包括如下步骤:
要存入n个字节,首先判断空闲空间在内存中是否是连续的;若连续,就跳到ii;
若不连续,就跳到iii;
连续则判断空闲空间大小是否足够,足够就直接存入数据,不足够就提示剩余空间不足;
不连续则先查看尾部空闲空间是否足够,若足够,就直接存入数据;若不足够,就跳到iv;
尾部空闲空间不足够,则判断头部空闲空间是否足够;
若足够,就直接存入数据;若不足够,就提示剩余空间不足。
3.如权利要求1所述的异步非对称的读写存储区管理方法,其特征在于:
从存储区取出数据的过程包括如下步骤:
要取出n个字节,首先判断数据空间在内存中是否连续;若连续,就跳到ii;若不连续,就跳到iii;
连续则判断数据空间是否足够,足够就直接取走数据,不足够就提示没有足够的数据;
不连续则先判断尾部数据空间是否足够;若足够,就直接取走数据;若不足够,就跳到iv;
尾部数据空间不足够,则判断头部和尾部数据空间总大小是否足够;若足够,就先取出全部的尾部数据,再从头部取走所需的剩余大小数据;若总大小不足够,就提示没有足够的数据。
CN201710164034.8A 2017-03-20 2017-03-20 一种异步非对称的读写存储区管理方法 Pending CN106909513A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710164034.8A CN106909513A (zh) 2017-03-20 2017-03-20 一种异步非对称的读写存储区管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710164034.8A CN106909513A (zh) 2017-03-20 2017-03-20 一种异步非对称的读写存储区管理方法

Publications (1)

Publication Number Publication Date
CN106909513A true CN106909513A (zh) 2017-06-30

Family

ID=59187486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710164034.8A Pending CN106909513A (zh) 2017-03-20 2017-03-20 一种异步非对称的读写存储区管理方法

Country Status (1)

Country Link
CN (1) CN106909513A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800867A (zh) * 2010-01-19 2010-08-11 深圳市同洲电子股份有限公司 一种实现环形缓冲区的方法、装置及数字电视接收终端
CN102169420A (zh) * 2011-04-18 2011-08-31 杭州海康威视系统技术有限公司 缓冲区循环读写方法及装置
CN104375952A (zh) * 2013-08-14 2015-02-25 南宁市跃龙科技有限公司 一种从环形缓冲区读取数据的方法
CN104461933A (zh) * 2014-11-07 2015-03-25 珠海全志科技股份有限公司 内存管理方法及其装置
US20160330283A1 (en) * 2014-06-20 2016-11-10 Huawei Technologies Co., Ltd. Data Storage Method and Network Interface Card

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800867A (zh) * 2010-01-19 2010-08-11 深圳市同洲电子股份有限公司 一种实现环形缓冲区的方法、装置及数字电视接收终端
CN102169420A (zh) * 2011-04-18 2011-08-31 杭州海康威视系统技术有限公司 缓冲区循环读写方法及装置
CN104375952A (zh) * 2013-08-14 2015-02-25 南宁市跃龙科技有限公司 一种从环形缓冲区读取数据的方法
US20160330283A1 (en) * 2014-06-20 2016-11-10 Huawei Technologies Co., Ltd. Data Storage Method and Network Interface Card
CN104461933A (zh) * 2014-11-07 2015-03-25 珠海全志科技股份有限公司 内存管理方法及其装置

Similar Documents

Publication Publication Date Title
US10453730B2 (en) Interfaces and die packages, and appartuses including the same
CN106528461A (zh) 储存设备及其中断生成方法
CN104360967B (zh) 存储器系统、主机控制器以及dma的控制方法
CN103280238B (zh) 基于FPGA的eMMC控制器及其工作方法
CN102253898B (zh) 一种图像数据的内存管理方法及装置
EP2151748A3 (en) Storage apparatus, memory area managing method thereof, and flash memory package
CN104951402B (zh) 存储装置及其操作方法和计算系统
CN103377695A (zh) 存储系统、存储器件、存储控制器及操作其的方法
CN103744621A (zh) 缓冲区循环读写的方法及装置
CN102722516A (zh) 一种针对NAND Flash烧录文件的生成方法及相应的装置
CN109558344A (zh) 一种适用于网络传输的dma传输方法及dma控制器
US7600205B2 (en) Net/wiring selection method, net selection method, wiring selection method, and delay improvement method
CN105940381A (zh) 存储器访问期间的数据重排序
CN102402401A (zh) 一种磁盘io请求队列调度的方法
CN101160571A (zh) 信息处理装置以及信息处理方法
CN109992234A (zh) 图像数据读取方法、装置、电子设备及可读存储介质
CN1940974A (zh) 便携式电子装置及ic卡
CN105917414A (zh) 非易失性存储器中冗余信息的管理
CN106909513A (zh) 一种异步非对称的读写存储区管理方法
CN101777077B (zh) 嵌入式设备文件系统实现方法
CN107566972A (zh) 一种基于ble标准的蓝牙数据高速传输方法及装置
CN104516988B (zh) 一种文件写入方法和装置
CN102541639A (zh) 一种cpu 卡数据处理方法、系统及cpu 卡
EP1962219A3 (en) Apparatus and method for managing digital rights management contents in portable terminal
CN105739919B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200422

Address after: 310012 A408 room, Neusoft building, 99 Huaxing Road, Hangzhou, Zhejiang, Xihu District

Applicant after: HANGZHOU SHUOTIAN TECHNOLOGY Co.,Ltd.

Applicant after: ZHUHAI PANTUM ELECTRONICS Co.,Ltd.

Address before: 310012 A408 room, Neusoft building, 99 Huaxing Road, Hangzhou, Zhejiang, Xihu District

Applicant before: HANGZHOU SHUOTIAN TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170630