CN110928682B - 外部设备访问计算机内存的方法 - Google Patents

外部设备访问计算机内存的方法 Download PDF

Info

Publication number
CN110928682B
CN110928682B CN201911109177.4A CN201911109177A CN110928682B CN 110928682 B CN110928682 B CN 110928682B CN 201911109177 A CN201911109177 A CN 201911109177A CN 110928682 B CN110928682 B CN 110928682B
Authority
CN
China
Prior art keywords
memory
computer
storage structure
external device
address
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.)
Active
Application number
CN201911109177.4A
Other languages
English (en)
Other versions
CN110928682A (zh
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.)
Shenzhen Guomicrochip Technology Co ltd
Original Assignee
Shenzhen Guomicrochip 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 Shenzhen Guomicrochip Technology Co ltd filed Critical Shenzhen Guomicrochip Technology Co ltd
Priority to CN201911109177.4A priority Critical patent/CN110928682B/zh
Priority to US17/792,476 priority patent/US20230049427A1/en
Priority to PCT/CN2020/081218 priority patent/WO2021093249A1/zh
Publication of CN110928682A publication Critical patent/CN110928682A/zh
Application granted granted Critical
Publication of CN110928682B publication Critical patent/CN110928682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

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

Description

外部设备访问计算机内存的方法
技术领域
本发明涉及基于PCI-E总线的数据传输领域,尤其涉及一种如FPGA等外部设备访问计算机内存的方法。
背景技术
当前,FPGA(Field Programmable Gate Array)等外部设备和计算机的通信主要通过USB、PCIe等外设接口,一般通过计算机上的软件进行通信。以FPGA为例,如果FPGA需要和计算机共享内存,一般是在FPGA上实现一个***设备,作为计算机的***设备寻址空间,以实现计算机对这些区域的访问。
这类访问可以通过CPU直接访问,也可以通过计算机上的DMA访问。例如可以采用FPGA中提供内存访问空间给CPU读写的方式,但是这会大大消耗计算机的CPU资源,给计算机的CPU带来很大的负担。而采用DMA方式,如果是应用在Linux***,将会受限于Linux内存的分配策略,只能实现有限大小的连续内存分配,因此,在计算机上分配内存给外设访问的情况下,只能实现少量内存空间。当需要更大的内存空间的时候,需要软件驱动的介入,以实现不同内存片段的地址信息传递,且速度也比较慢。
而且现有技术一般通过把FPGA中的内存映射到计算机内存地址空间,这会导致计算机访问此空间的延迟很大。
发明内容
本发明为了解决现有技术中只能访问有限连续内存空间的技术问题,提出了一种外部设备访问计算机内存的方法。
本发明提出的外部设备访问计算机内存的方法,包括步骤:
步骤1,所述外部设备向计算机申请一定大小的内存空间,并接收所述计算机反馈的多个内存块;
步骤2,所述外部设备通过顺序存储结构或链式存储结构建立外部设备和计算机的内存映射关系;
步骤3,当所述外部设备发起读写操作,根据所述外部设备和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。
具体的,所述顺序存储结构或链式存储结构的各元素记录每一个内存块的地址和大小以及映射的外部设备寻址空间连续空间的偏移地址来建立所述外部设备和计算机的内存映射关系。
进一步,所述步骤3具体包括:
步骤3.1,当所述外部设备的内存读写访问设备有数据传输需求,发起读操作或写操作;
步骤3.2,所述外部设备从所述顺序存储结构或链式存储结构中找到其寻址空间的操作地址对应的计算机的内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作;
步骤3.3,通过PCI-E连接设备向所述计算机发送中断信号,告知计算机有数据需要接收。
进一步,所述步骤3.2还包括:
当遇到所述内存块结束,则结束一次猝发,并从所述顺序存储结构或链式存储结构中取到下一个内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作,直至数据传输完毕再执行步骤3.3。
优选的,所述外部设备将其寻址空间连续空间的地址值的散列算法结果作为散列表的索引,将所述索引对应的值存储所述地址值对应的所述顺序存储结构或链式存储结构的元素,通过所述散列表来找到所述操作地址对应的所述顺序存储结构或链式存储结构中的元素。
在一个具体实施例中,所述顺序存储结构包括数组,所述链式存储结构包括链表。
在一个具体实施例中,由所述内存块组成的总内存空间的信息包括总内存空间的大小和读写方向。
具体的,所述计算机通过PCI-E连接设备与所述外部设备连接。所述计算机的处理器、内存以及PCI-E连接设备通过同一根内存总线连接。所述PCI-E连接设备通过PCI-E线缆或PCI-E光缆与所述外部设备连接。
具体的,所述步骤2中,所述外部设备将所述顺序存储结构或链式存储结构保存在一配置内存中,将所述顺序存储结构或链式存储结构的存储地址和大小以及由所述内存块组成的总内存空间的信息保存在一配置寄存器中。
具体的,所述计算机采用的操作***为Linux***或WINDOWS***。
本发明通过相应的存储结构将计算机内存的碎片化的内存块组合成一个可连续访问的内存空间,在外部设备上实现对应的映射关系,使得外部设备可以快速地访问计算机的内存,以实现计算机操作***和FPGA的高速、大量内存数据的共享。
附图说明
图1为本发明的结构框图。
图2为本发明的准备阶段的流程图。
图3为本发明的FPGA读写操作的流程图。
具体实施方式
下面结合附图对本发明的原理及方法进行详细说明。
如图1所示,本发明的计算机(即PC***)在本实施例中涉及到的部件包括CPU(处理器)、内存总线、内存和PCI-E连接设备。FPGA涉及到的部件包括控制模块、内存读写访问设备以及配置内存和配置寄存器。
计算机的处理器用来运行相对比较复杂的***软件,以及在FPGA访问内存以后接收中断信号,不需要在FPGA访问内存的过程中消耗资源。内存总线将计算机的处理器、内存以及PCI-E连接设备连接,使三者具有统一的寻址空间。PCI-E连接设备是对接FPGA的PCI-E接口卡,在计算机的PC***中,体现的是一个PCI-E设备,其连接到内存总线,并通过PCI-E线缆或PCI-E光缆和FPGA连接,并且在FPGA访问内存结束之后向处理器发送中断信号。其中,PCI-E线缆可以有1对、4对、8对或16对。
FPGA的控制模块通过PCI-E线缆或PCI-E光缆与计算机的PCI-E连接设备连接,其可以根据配置内存中存在的列表,把FPGA的内存读写访问设备访问的请求,翻译成向PC***发起的内存读写请求。配置内存中存储着用来将计算机内存的多个不连续的内存块拼接成一个连续的内存空间的链式存储结构或者是顺序存储结构,然后配置寄存器中存储链式存储结构或者是顺序存储结构的地址以及大小、多个内存块的总大小等,主要是存储链式存储结构或者是顺序存储结构的地址,其他的在优选实施例中可以将其大小等其他信息进行存储。链式存储结构或者是顺序存储结构中的每一个元素存储的内容包含:1、计算机的内存块的绝对地址,2、计算机的内存块的大小,3、通过计算得到的该内存块对应的FPGA的寻址空间连续空间的偏移地址。当然,更进一步还可以包含每个内存块的读写方向:读方向或者写方向,或者读写方向。内存读写访问设备指的是FPGA中任何需要对计算机进行内存读写访问的设备,内存读写访问设备对FPGA的控制模块所管控的内存空间读写,将由控制模块直接映射成对计算机的内存的读写。
上述顺序存储结构可以采用数组等,而链式存储结构可以采用链表。
为了尽快找到很多个内存块对应的链表,本发明采用散列表来快速定位到FPGA的寻址空间连续空间的地址值对应的链式存储结构或者是顺序存储结构的那组元素,从而从一个较小的范围来快速找到对应的计算机的内存块的地址。本发明将外部设备(如FPGA)的寻址空间连续空间的地址值的散列算法结果作为散列表的索引,将散列表的各索引对应的值存储外部设备的地址值(即操作地址)对应的顺序存储结构或链式存储结构的元素,通过散列表来找到操作地址对应的顺序存储结构或链式存储结构中的元素。也就是说,以链表为例,本发明有两层查找关系,首先是通过散列表来找到对应的那组链表,然后再找到具体的对应的那个链表,再从该链表中找到操作地址对应的计算机的内存块的绝对地址。具体的,散列表的地址也被存储在配置寄存器中,进一步还可以存储散列表的大小。在一个实施例中,散列表取外部设备的寻址空间的高位地址值作为散列算法的输入,而高位地址值具体取决于计算机的内存块的碎片化程度,取碎片化大小以上高位的地址。例如,计算机内存块中最小的碎片是1MB,则取20bit以上的地址。具体的散列算法可以是按若干位进行异或,例如针对32位地址空间,取20bit~31bit,则可以以3位一组,做4组的异或,然后再将散列算法的结果作为散列表的索引,索引的值中的链表元素保存着映射表中对应外部设备寻址空间的元素的地址。因此,外部设备的寻址空间中的某个操作地址要访问计算机的具体某个内存块的地址,可以通过检索散列表的索引对应的值,再通过该值对应的链表组检索到具体的那个链表,再通过链表中的映射关系找到对应计算机寻址空间的地址,即内存块的地址。本实施例的散列表可以采用哈希表。
本发明通过散列表,如果采用串行操作,只需要3个周期即可完成地址映射,如果发生哈希碰撞,最多只需要3+7=10个周期。由于内存空间访问具有连续性,所以最差哈希的概率不高。
下面基于上面的结构对本发明的FPGA访问计算机内存的方法进行详细说明。
图2示出的是本发明的准备阶段,在准备阶段,FPGA的控制模块向计算机的处理器申请一定大小的内存空间,并接收计算机反馈的多个内存块。FPGA通过数组或链表记录每一个内存块的地址和大小,并记录数组或链表的存储地址,以及由这些内存块组成的总内存空间的大小和读写方向等来建立FPGA和计算机的内存映射关系。
具体的以链表为例,FPGA将链表存储在配置内存中,将链表的存储地址和大小以及由这些内存块组成的总内存空间的信息(大小及读写方向)写入在配置寄存器中。
当FPGA发起读写操作,根据FPGA和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。
如图3所示,具体的当FPGA的任意一个内存读写访问设备有数据传输需求,通过总线或者是其他具备数据传输功能的模块发起读操作或写操作;FPGA的控制模块从链表中找到操作地址对应的计算机的内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作。当遇到内存块结束,则结束一次猝发,并从链表中取到下一个内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作,直至数据传输完毕,再通过PCI-E连接设备向计算机的处理器(CPU)发送中断信号,告知计算机有数据需要接收。
通过本发明的上述技术方案,FPGA的设备可以直接访问计算机的内存,该访问是透明的,并且不需要计算机处理器的接入,也不需要计算机处理器为FPGA的设备分配连续的内存空间,因此可以适合常见的LINUX和Windows操作***,同时FPGA的设备对计算机内存的访问,不需要区分具体哪个内存块,对FPGA的设备来说,只需要像普通内部资源访问一样就可以完成,不需要做特别的操作,提升访问计算机的内存速度。并且除了本实施例中所列举的FPGA设备以外,本发明还适用于其他需要访问计算机内存的外部设备。
以上具体实施例仅用以举例说明本发明的结构,本领域的普通技术人员在本发明的构思下可以做出多种变形和变化,这些变形和变化均包括在本发明的保护范围之内。

Claims (11)

1.一种外部设备访问计算机内存的方法,其特征在于,包括步骤:
步骤1,所述外部设备向计算机申请一定大小的内存空间,并接收所述计算机反馈的多个内存块;
步骤2,所述外部设备通过顺序存储结构或链式存储结构建立外部设备和计算机的内存映射关系;将外部设备的寻址空间连续空间的地址值的散列算法结果作为散列表的索引,将散列表的各索引对应的值存储外部设备的操作地址对应的所述顺序存储结构或链式存储结构的元素,通过所述散列表来找到所述操作地址对应的所述顺序存储结构或链式存储结构中的元素;
步骤3,当所述外部设备发起读写操作,根据所述外部设备和计算机的内存映射关系找到计算机中对应的偏移地址,生成读写操作猝发指令,在计算机的内存上实现读写操作。
2.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述顺序存储结构或链式存储结构的各元素记录每一个内存块的地址和大小、以及映射的外部设备寻址空间连续空间的偏移地址,以此来建立所述外部设备和计算机的内存映射关系。
3.如权利要求2所述的外部设备访问计算机内存的方法,其特征在于,所述步骤3具体包括:
步骤3.1,当所述外部设备的内存读写访问设备有数据传输需求,发起读操作或写操作;
步骤3.2,所述外部设备从所述顺序存储结构或链式存储结构中找到其寻址空间的操作地址对应的计算机的内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作;
步骤3.3,通过PCI-E连接设备向所述计算机发送中断信号,告知计算机有数据需要接收。
4.如权利要求3所述的外部设备访问计算机内存的方法,其特征在于,所述步骤3.2还包括:
当遇到所述内存块的地址结束,则结束一次猝发,并从所述顺序存储结构或链式存储结构中取到下一个内存块的地址,生成读写操作猝发指令,从计算机的内存的对应位置进行读操作或写操作,直至数据传输完毕再执行步骤3.3。
5.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述散列表取外部设备的寻址空间的高位地址值作为散列算法的输入。
6.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述顺序存储结构包括数组,所述链式存储结构包括链表。
7.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述计算机通过PCI-E连接设备与所述外部设备连接。
8.如权利要求7所述的外部设备访问计算机内存的方法,其特征在于,所述计算机的处理器、内存以及PCI-E连接设备通过同一根内存总线连接。
9.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述步骤2中,所述外部设备将所述顺序存储结构或链式存储结构保存在一配置内存中,将所述顺序存储结构或链式存储结构的存储地址和大小保存在一配置寄存器中。
10.如权利要求7所述的外部设备访问计算机内存的方法,其特征在于,所述PCI-E连接设备通过PCI-E线缆或PCI-E光缆与所述外部设备连接。
11.如权利要求1所述的外部设备访问计算机内存的方法,其特征在于,所述计算机采用的操作***为Linux***或windows***。
CN201911109177.4A 2019-11-13 2019-11-13 外部设备访问计算机内存的方法 Active CN110928682B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911109177.4A CN110928682B (zh) 2019-11-13 2019-11-13 外部设备访问计算机内存的方法
US17/792,476 US20230049427A1 (en) 2019-11-13 2020-03-25 Method for external devices accessing computer memory
PCT/CN2020/081218 WO2021093249A1 (zh) 2019-11-13 2020-03-25 外部设备访问计算机内存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911109177.4A CN110928682B (zh) 2019-11-13 2019-11-13 外部设备访问计算机内存的方法

Publications (2)

Publication Number Publication Date
CN110928682A CN110928682A (zh) 2020-03-27
CN110928682B true CN110928682B (zh) 2023-06-09

Family

ID=69852951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911109177.4A Active CN110928682B (zh) 2019-11-13 2019-11-13 外部设备访问计算机内存的方法

Country Status (3)

Country Link
US (1) US20230049427A1 (zh)
CN (1) CN110928682B (zh)
WO (1) WO2021093249A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114063931B (zh) * 2021-11-26 2023-04-25 重庆科创职业学院 一种基于大数据的数据存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
CN101231619A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于非连续页的动态内存管理方法
CN109144712A (zh) * 2017-06-19 2019-01-04 北京信威通信技术股份有限公司 内存池构建、内存分配方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101506793B (zh) * 2006-08-23 2012-09-05 陈锦夫 在动态虚拟记忆中运行操作***
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7979645B2 (en) * 2007-09-14 2011-07-12 Ricoh Company, Limited Multiprocessor system for memory mapping of processing nodes
US20110161620A1 (en) * 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
CN102521184A (zh) * 2011-12-20 2012-06-27 北京遥测技术研究所 一种在pci总线上实现数据高速传输的方法
US20160154756A1 (en) * 2014-03-31 2016-06-02 Avago Technologies General Ip (Singapore) Pte. Ltd Unordered multi-path routing in a pcie express fabric environment
US10275171B2 (en) * 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
CN104486365B (zh) * 2014-09-28 2018-02-02 浪潮(北京)电子信息产业有限公司 双控之间通信方法和***
US9804988B1 (en) * 2015-10-30 2017-10-31 Amazon Technologies, Inc. Device full memory access through standard PCI express bus
CN106339258B (zh) * 2016-08-10 2019-10-18 西安诺瓦星云科技股份有限公司 可编程逻辑器件与微处理器共享内存的管理方法及装置
CN110019051A (zh) * 2018-04-18 2019-07-16 上海锐智集数电子有限公司 一种基于通用文件***的高速数据记录方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
CN101231619A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于非连续页的动态内存管理方法
CN109144712A (zh) * 2017-06-19 2019-01-04 北京信威通信技术股份有限公司 内存池构建、内存分配方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Yehuda Afek.Cache index-aware memory allocation.ISMM '11: Proceedings of the international symposium on Memory management.2011,全文. *
游理通 ; 王振杰 ; 黄林鹏 ; .一个基于日志结构的非易失性内存键值存储***.计算机研究与发展.2018,(09),全文. *
魏海涛 ; 姜昱明 ; 李建武 ; 张娅 ; .内存管理机制的高效实现研究.计算机工程与设计.2009,(16),全文. *

Also Published As

Publication number Publication date
CN110928682A (zh) 2020-03-27
US20230049427A1 (en) 2023-02-16
WO2021093249A1 (zh) 2021-05-20

Similar Documents

Publication Publication Date Title
US20200081848A1 (en) Storage device and system
US9928172B2 (en) Method and apparatus for accessing data stored in a storage system that includes both a final level of cache and a main memory
US7287101B2 (en) Direct memory access using memory descriptor list
US9135190B1 (en) Multi-profile memory controller for computing devices
US20020144027A1 (en) Multi-use data access descriptor
KR102317657B1 (ko) Nvdimm을 포함하는 장치 및 그것의 엑세스 방법
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
CN115495389B (zh) 存储控制器、计算存储装置以及计算存储装置的操作方法
TWI727236B (zh) 資料位寬轉換器及其系統晶片
CN114556881B (zh) 一种地址翻译方法及装置
CN113051195A (zh) 存储器、gpu及电子设备
CN114461541A (zh) 芯片数据读取方法、写入方法、装置、设备以及存储介质
US9104600B2 (en) Merging direct memory access windows
CN110928682B (zh) 外部设备访问计算机内存的方法
US20240193084A1 (en) Storage System and Method for Accessing Same
CN113296691B (zh) 数据处理***、方法、装置以及电子设备
US9858007B2 (en) Decoupling host and device address maps for a peripheral component interconnect express controller
CN115883022B (zh) Dma传输控制方法、装置、电子设备及可读存储介质
CN113778934B (zh) 基于PCIe的高速实时传输***
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
WO2019199544A1 (en) Data cache segregation for spectre mitigation
US11650736B2 (en) SGL processing acceleration method and storage device
CN106325377B (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
CN116418848A (zh) 网络节点的配置和访问请求的处理方法、装置
CN112286863A (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: 20220704

Address after: 518000 Room 201, A building, 1 front Bay Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretarial Co., Ltd.)

Applicant after: Shenzhen guomicrochip Technology Co.,Ltd.

Address before: 22A, Guoshi building, 1801 Shahe West Road, high tech Zone community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: GUOWEI GROUP (SHENZHEN) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant