外部设备访问计算机内存的方法技术

技术编号:23604428 阅读:28 留言:0更新日期:2020-03-28 05:35
本发明专利技术公开了一种外部设备访问计算机内存的方法,包括步骤:所述外部设备向计算机申请一定大小的内存空间,并接收所述计算机反馈的多个内存块;所述外部设备通过顺序存储结构或链式存储结构建立外部设备和计算机的内存映射关系;当所述外部设备发起读写操作,根据所述外部设备和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。本发明专利技术可以实现快速地连续地访问计算机内存的多个不连续内存区域,提升计算机操作系统和外部设备访问内存的速度。

How to access computer memory by external devices

【技术实现步骤摘要】
外部设备访问计算机内存的方法
本专利技术涉及基于PCI-E总线的数据传输领域,尤其涉及一种如FPGA等外部设备访问计算机内存的方法。
技术介绍
当前,FPGA(FieldProgrammableGateArray)等外部设备和计算机的通信主要通过USB、PCIe等外设接口,一般通过计算机上的软件进行通信。以FPGA为例,如果FPGA需要和计算机共享内存,一般是在FPGA上实现一个外围设备,作为计算机的外围设备寻址空间,以实现计算机对这些区域的访问。这类访问可以通过CPU直接访问,也可以通过计算机上的DMA访问。例如可以采用FPGA中提供内存访问空间给CPU读写的方式,但是这会大大消耗计算机的CPU资源,给计算机的CPU带来很大的负担。而采用DMA方式,如果是应用在Linux系统,将会受限于Linux内存的分配策略,只能实现有限大小的连续内存分配,因此,在计算机上分配内存给外设访问的情况下,只能实现少量内存空间。当需要更大的内存空间的时候,需要软件驱动的介入,以实现不同内存片段的地址信息传递,且速度也比较慢。而且现有技术一般通过把本文档来自技高网...

【技术保护点】
1.一种外部设备访问计算机内存的方法,其特征在于,包括步骤:/n步骤1,所述外部设备向计算机申请一定大小的内存空间,并接收所述计算机反馈的多个内存块;/n步骤2,所述外部设备通过顺序存储结构或链式存储结构建立外部设备和计算机的内存映射关系;/n步骤3,当所述外部设备发起读写操作,根据所述外部设备和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。/n

【技术特征摘要】
1.一种外部设备访问计算机内存的方法,其特征在于,包括步骤:
步骤1,所述外部设备向计算机申请一定大小的内存空间,并接收所述计算机反馈的多个内存块;
步骤2,所述外部设备通过顺序存储结构或链式存储结构建立外部设备和计算机的内存映射关系;
步骤3,当所述外部设备发起读写操作,根据所述外部设备和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。


2.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述顺序存储结构或链式存储结构的各元素记录每一个内存块的地址和大小以及映射的外部设备寻址空间连续空间的偏移地址来建立所述外部设备和计算机的内存映射关系。


3.如权利要求2所述的外部设备访问计算机内存的方法,其特征在于,所述步骤3具体包括:
步骤3.1,当所述外部设备的内存读写访问设备有数据传输需求,发起读操作或写操作;
步骤3.2,所述外部设备从所述顺序存储结构或链式存储结构中找到其寻址空间的操作地址对应的计算机的内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作;
步骤3.3,通过PCI-E连接设备向所述计算机发送中断信号,告知计算机有数据需要接收。


4.如权利要求3所述的外部设备访问计算机内存的方法,其特征在于,所述步骤3.2还包括:
当遇到所述内存块结束,则结束一次猝发,并从所述顺序存储结构或链式存储结构中取到下一个内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作,直至数据传输完毕再执行步骤3.3。
...

【专利技术属性】
技术研发人员:林铠鹏
申请(专利权)人:国微集团深圳有限公司
类型:发明
国别省市:广东;44

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

1