一种内存存取方法及装置制造方法及图纸

技术编号:4158955 阅读:243 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种内存存取方法与装置,所述内存存取方法包括:获取外设硬件的物理内存需求;根据外设硬件的物理内存需求,为外设硬件分配多块连续物理内存;根据为外设硬件分配的多块连续物理内存,建立至少包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的地址和内存长度,最低级内存描述表存储了为外设硬件分配的多块连续物理内存的地址和长度;将最高级内存描述表存储的下一级内存描述表的地址和内存长度传给外设硬件,外设硬件根据多级内存描述表到达为其分配的多块连续物理内存,并利用多块连续物理内存进行数据存取。

Memory access method and device

The present invention provides a memory device and access method, including the memory access method: physical memory requirement of peripheral hardware; according to the physical memory requirements of peripheral hardware, distribution of multi block continuous physical memory for the peripheral hardware; according to the distribution of peripheral hardware multi block continuous physical memory, set contains at least the most advanced and multi-level the memory of the lowest description table, each memory description table stores the next level memory description table address and memory length, the lowest memory description table stores the address and length of a plurality of continuous physical memory allocation for the peripheral hardware; the most advanced memory description table to store the next level of the memory address description table and the memory length to the peripheral hardware, peripheral hardware according to the multistage memory description table for a plurality of continuous physical memory to its distribution, and the use of a plurality of continuous physical memory Data access.

【技术实现步骤摘要】

本专利技术关于计算机内存管理技术,特别是关于计算机外设硬件驱动程序的 连续内存块的内存管理技术,具体的讲是一种内存存取方法及装置
技术介绍
在现有技术中,计算机外设硬件需要通过直接内存存取(DMA)方式与海 量内存交互数据。操作系统采用基于页面的方式来管理内存,在系统运行一段 时间后会出现内存碎片,这样就无法直接分配得到满足交互数据要求的连续物 理内存。如图1所示,为现有技术的内存存取技术方案之一。如果外设硬件驱动程序 需要一块1G大小的连续物理内存作为外设硬件与系统的交互数据内存,物理页 面大小为4K,那么可直接从系统中分配一块1G的连续物理内存,并由系统告诉 外设硬件这块连续物理内存的基地址和长度,外设硬件即可与这块内存进行数 据交互。这种内存存取方式虽然提供了一种最为简单的外设硬件直接内存存取的方 法,但是采用该方法进行数据交互时,外设硬件一次传输的内容将受限于系统 连续物理内存的大小。就图l所示的实例而言,系统必须存在一块空闲的1G或 大于1G的连续物理内存,否则外设硬件与系统的交互数据将无法进行。如图2所示,为现有技术的内存存取技术方案之二。如果外设硬件驱动程序 需要一块1G大小的连续物理内存作为外设硬件与系统的交互数据内存,系统最 大连续物理内存为2M,物理页面大小为4K,那么可先从系统中分配一块2M的 连续物理内存,用于存储一组指针,每个指针指向一块独立的连续物理内存, 这些独立的连续物理内存大小相同, 一般可为一个页面大小,这些独立的连续物理内存之和大于或等于1G,并由系统告诉外设硬件用于存储指针的那块连续 物理内存的地址和内存长度。外设硬件通过读取指针的内容,获取到对应的独 立连续物理内存的地址,即可与这块独立连续物理内存进行交互数据。这种方 式通过指针与独立连续物理内存的映射关系来实现,指针与独立连续物理内存 的映射关系可被称作线性描述符表。这种方式虽然减小了对系统连续物理内存的需求,但是对存储指针(线性 描述符表)的连续物理内存的需求仍然很高。就图2所示的实例而言,系统必须存在一块空闲的2M或大于2M的连续物理内存以存储线性描述符表,否则外设 硬件与系统的交互数据将无法进行。中国专利技术专利03115874.9公开了一种静态内存管理方法,该专利技术专利所公 开的技术方案被合并于此,以作为本专利技术的现有技术。中国专利技术专利申请200610099137.2公开了一种微电脑系统的直接内存存取 作业方法,该专利技术所公开的技术方案被合并于此,以作为本专利技术的现有技术。
技术实现思路
本专利技术提供一种内存存取方法及装置,通过多级非线性的内存描述机制使 系统与外设硬件之间进行数据交互,在无需大量的系统连续物理内存的情况下, 仍可使系统与外设硬件之间进行海量数据交互。本专利技术的目的之一是提供一种内存存取方法,所述的方法包括获取外设 硬件的物理内存需求;根据所述外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存;根据为所述外设硬件分配的多块连续物理内存,建立至少 包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描 述表的地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块 连续物理内存的地址和长度;将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级内存描述 表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存进行数据 存取。本专利技术的目的之二是提供一种内存存取装置,所述的装置包括内存需求 获取单元,获取外设硬件的物理内存需求;外设硬件内存分配单元,根据所述 外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存;内存描述 表建立单元,根据为所述外设硬件分配的多块连续物理内存,建立至少包含最 高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的 地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物 理内存的地址和长度;数据交互单元,将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级 内存描述表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存 进行数据存取。本专利技术采用多级非线性内存描述表结构,使系统对外设硬件进行内存分配 不再受限于系统中最大连续物理内存。特别是当操作系统运行一段时间之后内 存碎片不断增加时,同样能够为外设硬件分配到所需的物理内存,只需要将最 高级表的地址和长度告知外设硬件,就能通过该多级非线性表到达为该外设硬 件分配的连续物理内存。该方案还能够通过扩展该非线性表的级数来实现海量 内存的存取,为将来满足硬件设备对内存的更高要求做好准备。 附图说明图l为现有技术中内存存取原理图之一;图2为现有技术中内存存取原理图之二;图3为本专利技术实施例的系统原理图4本专利技术实施例内存存取装置的细化结构图5本专利技术实施例1的内存存取装置的细化结构图6为本专利技术实施例1的外设硬件等长内存分配单元的细化结构图7为本专利技术实施例1的一种多级内存描述原理图8为本专利技术实施例1的内存存取装置的工作方法流程图; 图9本专利技术实施例2的内存存取装置的细化结构图;图10为本专利技术实施例2的外设硬件组合内存分配单元的细化结构图11为本专利技术实施例2的一种多级内存描述原理图12为本专利技术实施例2的另一种多级内存描述原理图13为本专利技术实施例2的内存存取装置的工作方法流程图14为本专利技术实施例一种通用的多级非线性内存描述原理图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,下面结合实施方式和 附图,对本专利技术做进一步详细说明。在此,本专利技术的示意性实施方式及其说明 用于解释本专利技术,但并不作为对本专利技术的限定。图3为本专利技术实施例的系统原理图,如图所示,内存存取装置301连接外设 硬件302和物理内存303,内存存取装置301为外设硬件302分配所需的物理内存, 所需的物理内存由多块连续物理内存组成,此外内存存取装置301还负责将这些 连续物理内存的地址告知外设硬件302,外设硬件302通过访问这些连续物理内 存实现与系统的数据交换。该系统还包括微处理器304,连接内存存取装置301, 它主要完成系统的核心控制功能。图4为本专利技术实施例内存存取装置301的细化结构图。如图所示,内存存取 装置301包括内存需求获取单元3011,连接外设硬件302,获取外设硬件的物 理内存需求;外设硬件内存分配单元3012,根据所述外设硬件的物理内存需求, 从物理内存303中为所述外设硬件分配多块连续物理内存3031,这些连续物理内 存块包括MO、 Ml,, Mn;内存描述表建立单元3013,根据为所述外设硬件 分配的多块连续物理内存3031 ,在物理内存303中建立至少包含最高级和最低级 的多级内存描述表3032,每级内存描述表存储了下一级内存描述表的地址和内 存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物理内存 3031的地址和长度;数据交互单元3014,将所述最高级内存描述表存储的下一 级内存描述表的地址和内存长度传给所述外设硬件302,所述外设硬件302根据 所述多级内存描述表3032到达为其分配的多块连续物理内存3031,并利用所述9多块连续物理内存303 1进行本文档来自技高网
...

【技术保护点】
一种内存存取方法,其特征是,所述的方法包括: 获取外设硬件的物理内存需求; 根据所述外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存; 根据为所述外设硬件分配的多块连续物理内存,建立至少包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物理内存的地址和长度; 将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级内存描述表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存进行数据存取。

【技术特征摘要】
1. 一种内存存取方法,其特征是,所述的方法包括获取外设硬件的物理内存需求;根据所述外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存;根据为所述外设硬件分配的多块连续物理内存,建立至少包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物理内存的地址和长度;将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级内存描述表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存进行数据存取。2、 根据权利要求l所述的方法,其特征在于,根据所述外设硬件的物理内 存需求,为所述外设硬件分配多块连续物理内存,包括为所述外设硬件分配相同长度的多块连续物理内存,所述相同长度的多块连续物理内存的长度之和大于或等于所述外设硬件的物理内存需求;或为所述外设硬件分配多种长度的多块连续物理内存,所述多种长度的多块 连续物理内存的长度之和大于或等于所述外设硬件的物理内存需求。3、 根据权利要求2所述的方法,其特征在于,为所述外设硬件分配相同长 度的多块连续物理内存,所述相同长度的多块连续物理内存的长度之和大于或 等于所述外设硬件的物理内存需求,具体包括按照连续物理内存长度由大到小的顺序进行排序;如果最大长度的多块连续物理内存之和大于或等于所述外设硬件的物理内 存需求,则将最大长度的多块连续物理内存分配给所述外设硬件;如果最大长度的多块连续物理内存之和小于所述外设硬件的物理内存需 求,则按照内存长度由大到小的顺序尝试分配其他长度的连续物理内存,直到 某个长度的多块连续物理内存之和大于或等于所述外设硬件的物理内存需求,并将该长度的多块连续物理内存分配给所述外设硬件。4、 根据权利要求2所述的方法,其特征在于,为所述外设硬件分配多种长 度的多块连续物理内存,所述多种长度的多块连续物理内存的长度之和大于或 等于所述外设硬件的物理内存需求,具体包括按照连续物理内存长度由大到小的顺序进行排序;如果最大长度的多块连续物理内存之和大于或等于所述外设硬件的物理内存需求,则将所述最大长度的多块连续物理内存分配给所述外设硬件;如果所述最大长度的多块连续物理内存之和小于所述外设硬件的物理内存 需求,则按照内存长度由大到小的顺序尝试分配其他长度的连续物理内存,直 到所分配的多种长度的多块连续物理内存之和大于或等于所述外设硬件的物理 内存需求,并将所述多种长度的多块连续物理内存分配给所述外设硬件。5、 根据权利要求l所述的方法,其特征在于,所述方法还包括 为每级内存描述表分配相同长度的至少一块连续物理内存;或 为每级内存描述表分配多种长度的多块连续物理内存。6、 一种内存...

【专利技术属性】
技术研发人员:汪锐周志雄
申请(专利权)人:北京恒光创新科技股份有限公司北京恒光通信技术有限公司北京恒光科技发展有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1