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,并由系统告诉外设硬件用于存储指针的那块连续 物理内存的地址和内存长度。外 ...
【技术保护点】
一种内存存取方法,其特征是,所述的方法包括: 获取外设硬件的物理内存需求; 根据所述外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存; 根据为所述外设硬件分配的多块连续物理内存,建立至少包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物理内存的地址和长度; 将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级内存描述表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存进行数据存取。
【技术特征摘要】
1. 一种内存存取方法,其特征是,所述的方法包括获取外设硬件的物理内存需求;根据所述外设硬件的物理内存需求,为所述外设硬件分配多块连续物理内存;根据为所述外设硬件分配的多块连续物理内存,建立至少包含最高级和最低级的多级内存描述表,每级内存描述表存储了下一级内存描述表的地址和内存长度,最低级内存描述表存储了为所述外设硬件分配的多块连续物理内存的地址和长度;将所述最高级内存描述表存储的下一级内存描述表的地址和内存长度传给所述外设硬件,所述外设硬件根据所述多级内存描述表到达为其分配的多块连续物理内存,并利用所述多块连续物理内存进行数据存取。2、 根据权利要求l所述的方法,其特征在于,根据所述外设硬件的物理内 存需求,为所述外设硬件分配多块连续物理内存,包括为所述外设硬件分配相同长度的多块连续物理内存,所述相同长度的多块连续物理内存的长度之和大于或等于所述外设硬件的物理内存需求;或为所述外设硬件分配多种长度的多块连续物理内存,所述多种长度的多块 连续物理内存的长度之和大于或等于所述外设硬件的物理内存需求。3、 根据权利要求2所述的方法,其特征在于,为所述外设硬件分配相同长 度的多块连续物理内存,所述相同长度的多块连续物理内存的长度之和大于或 等于所述外设硬件的物理内存需求,具体包括按照连续物理内存长度由大到小的顺序进行排序;如果最大长度的多块连续物理内存之和大于或等于所述外设硬件的物理内 存需求,则将最大长度的多块连续物理内存分配给所述外设硬件;如果最大长度的多块连续物理内存之和小于所述外设硬件的物理内存需 求,则按照内存长度由大到小的顺序尝试分配其他长度的连续物理内存,直到 某个长度的多块连续物理内存之和大于或等于所述外设硬件的物理内存需求,并将该长度的多块连续物理内存分配给所述外设硬件。4、 根据权利要求2所述的方法,其特征在于,为所述外设硬件分配多种长 度的多块连续物理内存,所述多种长度的多块连续物理内存的长度之和大于或 等于所述外设硬件的物理内存需求,具体包括按照连续物理内存长度由大到小的顺序进行排序;如果最大长度的多块连续物理内存之和大于或等于所述外设硬件的物理内存需求,则将所述最大长度的多块连续物理内存分配给所述外设硬件;如果所述最大长度的多块连续物理内存之和小于所述外设硬件的物理内存 需求,则按照内存长度由大到小的顺序尝试分配其他长度的连续物理内存,直 到所分配的多种长度的多块连续物理内存之和大于或等于所述外设硬件的物理 内存需求,并将所述多种长度的多块连续物理内存分配给所述外设硬件。5、 根据权利要求l所述的方法,其特征在于,所述方法还包括 为每级内存描述表分配相同长度的至少一块连续物理内存;或 为每级内存描述表分配多种长度的多块连续物理内存。6、 一种内存...
【专利技术属性】
技术研发人员:汪锐,周志雄,
申请(专利权)人:北京恒光创新科技股份有限公司,北京恒光通信技术有限公司,北京恒光科技发展有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。