CN104572507B - 用于控制功能组件的存储器使用的方法和设备 - Google Patents

用于控制功能组件的存储器使用的方法和设备 Download PDF

Info

Publication number
CN104572507B
CN104572507B CN201410549470.3A CN201410549470A CN104572507B CN 104572507 B CN104572507 B CN 104572507B CN 201410549470 A CN201410549470 A CN 201410549470A CN 104572507 B CN104572507 B CN 104572507B
Authority
CN
China
Prior art keywords
memory
virtual
physical
data item
page
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
CN201410549470.3A
Other languages
English (en)
Other versions
CN104572507A (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.)
Infinera Oy
Original Assignee
Tellabs Oy
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 Tellabs Oy filed Critical Tellabs Oy
Publication of CN104572507A publication Critical patent/CN104572507A/zh
Application granted granted Critical
Publication of CN104572507B publication Critical patent/CN104572507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Abstract

本发明涉及用于控制功能组件的存储器使用的方法和设备。本发明涉及控制例如路由器或交换机的网络接口的功能组件的存储器使用。被组织成包括虚拟存储器页的虚拟存储器的一部分被保留(201)用于功能组件的使用。在虚拟存储器页和以物理存储器实现的物理存储器区域之间形成(202)映射,并且将提供对于物理存储器区域的访问的数据项写入(203)一个或多个物理存储器区域。功能组件被启用,以直接访问被映射到虚拟存储器页的物理存储器区域,使得借助映射和与所述虚拟存储器页相关的虚拟存储器地址,从物理存储器读取(204)对于该物理存储器区域提供访问的数据项,并且该读取的数据项被传递(205)到该功能组件。

Description

用于控制功能组件的存储器使用的方法和设备
技术领域
本发明涉及用于控制功能组件的存储器使用的方法和设备,该功能组件可以,但不一定是,例如,网络元件的网络接口,例如,网络协议“IP”路由器的网络接口。此外,本发明涉及用于控制功能组件的存储器使用的计算机程序,并且涉及网络元件。
背景技术
虚拟存储器是涉及将处理所使用的存储器地址(称为虚拟地址)映射到物理存储器的物理地址的一项存储器管理技术的概念。处理所看到的虚拟存储器可以显示为被称为虚拟存储器页的一堆固定长度连续虚拟存储器块,它们是用于管理虚拟存储器和物理存储器之间的映射的基础数据单元。每个虚拟存储器页的大小优选为2的乘方,诸如,但不一定是,212字节=4096字节。操作系统管理物理存储器和虚拟存储器之间的映射。地址转换功能通常也被称为存储器管理单元“MMU”或分页存储器管理单元“PMMU”,将虚拟地址自动转换为物理地址,使得考虑中的处理能够以虚拟地址操作。
与许多电子设备相联系,诸如,数据传输网络的网络元件,不仅是中央处理单元“CPU”使用物理存储器运行一个或多个处理,也有诸如网络接口的外围组件使用物理存储器,例如,线卡“LC”和网络处理器“NP”。因此,需要管理由CPU和外围组件运行的一个或多个处理的存储器使用,使得它们不相互干扰。布置由CPU和外围组件运行的一个或多个处理的存储器使用的一种传统方法是,以相同方法应对CUP和外围组件所运行的处理,使得,对于这些的每个而言,由管理物理存储器和虚拟存储器之间的映射的操作系统提供具体虚拟存储器,并且存储器管理单元“MMU”被用于将虚拟存储器地址转换成物理地址。诸如处理数据分组或帧的网络处理器的外围组件的存储器使用,可能随时间推移而迅速改变。因此,上述用于管理存储器使用的传统方式的不便之处是,操作系统必须频繁执行针对这些外围组件的存储器管理,并且,结果必然是,运行操作系统的资源可能负载过重,以至于这些资源在一些情况下构成了限制整个电子设备的容量的瓶颈。
发明内容
下文给出了简化的摘要,以便提供对于各个发明实施例的某些方面的基本理解。发明内容不是本发明的广泛概述。也并非旨在识别本发明的重要或关键要素,也非详细描述本发明的范围。下文的发明内容主要以简化的形式给出了本发明的一些概念,作为对本发明示例性实施例的更具体描述的前言。
根据本发明,提供了一种用于控制至少一个功能组件的存储器使用的新设备,该至少一个功能组件可以但不一定是,例如,网络元件的网络结构,例如互联网协议“IP”路由器的网络结构。根据本发明的设备包括处理器系统,其被配置成:
-保留虚拟存储器的一部分,该保留的虚拟存储器部分包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-形成虚拟存储器页和用物理存储器实现的物理存储器区域之间的映射,物理存储器区域的特定一个被映射到虚拟存储器页的特定一个,以及
-将提供对于物理存储器区域的访问的数据项写入被映射到虚拟存储器页的物理存储器区域的一个或多个。
为了使得功能组件能够访问物理存储器区域中的所述一个,处理器系统被进一步配置成:
-从物理存储器并且至少基于该映射和与该虚拟存储器页中的一个相关的虚拟存储器地址,读取提供对于该物理存储器区域的所述一个的访问的数据项的特定一个,以及
-将由读取数据项指示的信息传递至功能组件,以便使得功能组件能够访问该物理存储器区域的所述一个。
上述数据项可以包含与考虑中的物理存储器区域相关的物理存储器地址,或者该数据项可以含有可借助其推导或获取物理存储器地址的信息。
上述设备所基于的原则是,提供对于考虑中的物理存储器区域的访问的数据项被写入物理存储器,使得数据项借助与映射到考虑中的物理存储器区域的虚拟存储器页相关的虚拟存储器可读取。因此,当分配考虑中的物理存储器区域时,可以借助所述虚拟存储器地址获得提供对于该物理存储器区域访问的数据项。因此,与导致由存储器管理单元“MMU”所执行的范围的物理地址不能被传递到功能组件的许多硬件架构相关的典型问题,诸如网络接口,可以通过稳健的方式,得以绕过。
在根据本发明的有利并且示例性实施例的设备中,处理器系统被配置成,防止在形成或改变另一虚拟存储器和其他物理存储器区域之间的另一映射的情形下,防止在虚拟存储器页和物理存储器区域之间的上述映射的改变。
根据本发明,也提供了一种新的网络元件,其可以是,例如,互联网协议“IP”路由器、以太网交换机、多协议标签交换“MPLS”交换机、软件限定网络“SDN”的网络元件和/或异步传输模式“ATM”交换机。根据本发明的网络元件包括:
-用于接收并向数据传输网络传送数据的一个或多个网络接口,
-用于缓冲接收到的和待传送的数据的物理存储器,以及
-连接至物理存储器和该一个或多个网络接口的处理器系统,
其中,处理器系统被配置成,构成根据本发明的用于控制该一个或多个网络接口的物理存储器的使用的设备。
根据本发明,也提供一种用于控制至少一个功能组件的存储器使用的新方法。根据本发明的方法包括:
-保留虚拟存储器的一部分,该保留部分的虚拟存储器包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-在虚拟存储器页和用物理存储器实现的物理存储器区域之间形成映射,物理存储器区域的特定一个被映射到虚拟存储器页的特定一个,以及
-将提供对于物理存储器区域的访问的数据项写入映射到虚拟存储器页的一个或多个物理存储器区域。
为了使得功能组件能够访问物理区域的所述一个,该方法进一步包括:
-从物理存储器并且至少基于映射和与该虚拟存储器页的所述一个相关的虚拟存储器地址,读取提供对于该物理存储器区域的所述一个的访问的数据项的特定一个,以及
-将由读取数据项指示的信息传递至功能组件,以便使得功能组件能够访问该物理存储器区域的所述一个。
根据本发明,也提供一种新的计算机程序,用于控制至少一个功能组件的存储器使用。根据本发明的计算机程序包括计算机可执行指令,用于控制可编程处理器,以:
-保留虚拟存储器的一部分,该虚拟存储器的保留部分包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-在虚拟存储器页和用物理存储器实现的物理存储器区域之间形成映射,物理存储器区域的特定一个被映射到虚拟存储器页的特定一个,以及
-将提供对于物理存储器区域的访问的数据项写入被映射到虚拟存储器页的物理存储器区域的一个或多个。
该计算机程序进一步包括计算机可执行指令,用于控制可编程处理器执行下列动作,以便使得功能组件能够访问物理存储器区域的所述一个:
-从物理存储器并且至少基于该映射和与虚拟存储器页中的一个相关的虚拟存储器地址,读取提供对于物理存储器区域的所述一个的访问的数据项的特定一个,以及
-将由该读取数据所指示的信息,传递至功能组件,以便使得功能组件能够访问物理存储器区域的所述一个。
根据本发明,也提供一种新的计算机程序产品。该计算机程序产品包括用根据本发明的计算机程序编码的非易失性计算机可读介质,例如光盘“CD”。
在随附的权利要求中描述了多个本发明的示例性和非限制性实施例。
本发明的各种示例性和非限制性实施例,无论是涉及架构还是操作方法,与本发明的另外目的和优势一起,当结合附图进行阅读时,将从下文对于特定示例性实施例的描述中得到最好的理解。
动词“包括”和“包含”在本文献中用作开放性限定,其既不排除也不要求未描述特征的存在。除非另有明确描述,在随附的依赖性权利要求中所叙述的特征是可相互自由组合的。此外,应理解的是,贯穿本文献“一个”或“一”亦即单数形式的使用不排除复数。
附图说明
下文结合附图更具体地解释本发明的示例性实施例及其优势,在附图中:
图1图示了与本发明的示例性实施例相关的示例性数据结构,
图2示出了根据用于控制至少一个功能组件的存储器使用的本发明的示例性实施例的方法的流程图,
图3图示了与本发明示例性实施例相关的示例性数据结构,以及
图4示出了包括根据本发明的示例性实施例的设备的网络元件的示意图。
具体实施方式
图1图示了与本发明的示例性实施例相关的示例性数据结构。虚拟存储器111被组织成包括被称为虚拟存储器页的固定长度相邻虚拟存储器块。在图1中,一些虚拟存储器页用参考编号112、113、114、115和116表示。虚拟存储器111用能用诸如一个或多个随机访问存储器“RAM”电路的一个或多个存储器设备实现的物理存储器120实现。虚拟存储器页是用于管理在虚拟存储器111和物理存储器120之间的映射的基础数据单元。在图1中,在虚拟存储器页和物理存储器120的固定长度相邻物理存储器区域之间的映射以其中中的一个用参考编号128表示的连接线示出。在图1所示的示例性情形中,虚拟存储器页113用物理存储器区域119实现,虚拟存储器页114用物理存储器区域118实现,并且虚拟存储器页116用物理存储器区域117实现。有利的是,每个虚拟存储器页的大小是2的乘方,例如,但不限于,212字节=4096字节。
下文参考图1中示出的数据结构和图2中示出的方法流程图,说明了用于控制至少一个功能组件的存储器使用的本发明的示例性实施例。上述功能组件可以是,例如,但不一定是,数据传输网络的网络元件的网络接口或网络处理器“NP”。具有第一数位“1”的图参考编号指图1,相应的是,具有第一数位“2”的参考编号的图指图2。在阶段201中,该方法包括保留虚拟存储器111的一部分,其中,该部分包括虚拟存储器页112-116。如从图1中可以看到的,保留部分110不一定必须开始于相邻内虚拟存储器页的边界,相应的是,保留部分110不一定必须结束于相邻虚拟页之间的边界。为了简化存储器管理,有利的是,虚拟存储器的保留部分110是如图1中所示的虚拟存储器地址空间的相邻区域。在阶段202中,该方法包括在虚拟存储器页和用物理存储器120实现的物理存储器区域之间形成上述映射。有利的是,例如,在形成或改变另一虚拟存储器和其他物理存储器区域之间的另一映射的情形下,防止改变映射。例如,借助用于指示考虑中的映射被锁定的一个或多个适当标识变量被锁定的情形下,可以防止这些改变。在阶段203中,该方法包括,将提供对于考虑中的物理存储器区域访问的数据项,写入每个物理存储器区域。在不限制通用性的条件下,并且出于阐释性目的,我们考虑虚拟存储器页113和116以及相对应的物理存储器区域119和117。在图1所示的示例性情形下,提供对于物理存储器区域117访问的数据项是在虚拟存储器页116中存储的从而在物理存储器区域117中的数据项125a。数据项125a可以包含与物理存储器区域117相关的物理存储器地址或者可借助其推导或获取物理存储器地址的信息。在该示例性情形下,数据项125a存储在虚拟存储器页116的开头,从而在物理存储器区域117的开头。数据项125可以包含指示例如物理存储器区域117的开头的物理存储器地址的信息。也可能的是,数据项125a存储在虚拟存储器页116的预定位置,从而在物理存储器区域117的相对应其他位置。同样,也可能的是,数据项125a包含指示物理存储器区域117的另一预定位置的物理存储器地址的信息。相对应的是,提供对于物理存储器区域119的访问的数据项是在虚拟存储器页113中、从而在物理存储器区域119中存储的数据项125b。
在不需要使得功能组件访问物理存储器区域中的一个的情形下,该方法包括阶段204和205。在阶段204中,该方法包括从物理存储器120中读取提供对于在考虑中的物理存储器区域访问的数据项。基于在虚拟和物理存储器之间的映射以及与映射到考虑中的物理存储器区域的虚拟存储器页虚拟存储器地址,读取该数据项。在不限制通用性的条件下,并且出于阐释目的,我们可以假定,考虑中的物理存储器区域时物理存储器区域119。在这种情形下,考虑中的虚拟存储器页是虚拟存储器页113,并且上述数据项是数据项125b。有利的是,数据项125b被读取,使得与虚拟存储器也113相关的虚拟存储器地址被传递到存储器管理单元“MMU”,存储器管理单元“MMU”与物理存储器120连接并且被配置成将虚拟存储器地址根据上述映射转换成相对应物理存储器地址。在阶段205中,该方法包括将读取数据项125b所指示的信息传递至功能组件,以便使得功能组件能够访问物理存储器区域119。数据项125b可以被传递至功能组件,或者可以借助数据项125b获取推导的信息,然后,推导的信息可以被传递至功能组件。例如,推导的信息可以是由数据项125b和预定偏移所表达的地址值之和。
在图1所示的示例性实施例中,每个虚拟存储器页由两个相互非重叠、大小相等并且相邻的虚拟存储器子页构成。例如,虚拟存储器页由虚拟存储器子页121和122构成。相应的是,每个物理存储器区域包括两个相互非重叠、大小相等并且相邻的物理存储器子区域,使得每个物理存储器子区域对应于虚拟存储器子页中的一个。例如,物理存储器区域117包括物理存储器子区域123和124,其分别对应于虚拟存储器子页121和122。值得注意的是,在每个虚拟存储器页中的虚拟存储器子页的数目以及对应在每个物理存储器区域内的物理存储器子区域的数目也可以大于二。由于物理存储器子区域相互是相等大小,所以与物理存储器子区域相关的物理存储器地址可以基于在相同物理存储器区域内的另一物理存储器子区域相关的物理存储器地址计算。例如,存储数据项126a的存储器定位的物理存储器地址是存储添加了物理存储器子区域123和124大小的数据项125a的存储器定位的物理存储器地址。有利的是,物理存储器子区域的大小和虚拟存储器子页的大小为2的乘方,例如,但不一定是,211字节=2048字节。使用物理存储器区域的功能组件可以做成了解物理存储器子区域的大小,使得该功能组件能够在与一个物理存储器区域的物理存储器子区域相关的物理存储器地址基础上,形成与相同物理存储器区域的另一物理存储器子区域相关的相对应物理存储器地址。
图3图示了与本发明的另一示例性实施例相关的示例性数据结构。虚拟存储器311被组织成包括固定长度虚拟存储器页。在图3中,一些虚拟存储器页用参考编号312、313、314、315和316所表示。虚拟存储器311用能够用一个或多个诸如一个或多个随机访问存储器“RAM”电路的一个或多个存储器设备实现。虚拟存储器页是用于管理在虚拟存储器311和物理存储器320之间的映射的基础数据单元。在图3中,在虚存储器页和物理存储器320的固定长度相邻物理存储器区域之间的映射以连接线示出,其中一个连接线用参考编号328表示。在图3所示的示例情形中,虚拟存储器页312用物理存储器区域319实现,虚拟存储器页314用物理存储器区域318实现,并且虚拟存储器页316用物理存储器区域317实现。
下文参考图3中所示的数据结构和图2中所示的方法流程图,说明了根据用于控制至少一个功能组件的存储器使用的本发明的示例性实施例的方法。具有第一数位“3”的图参考编号指图3,相应的,具有第一数位“2”的图参考编号指图2。在阶段201中,该方法包括保留虚拟存储器111的一部分310,其中,该部分包括虚拟存储器页312-316等。为了简化存储器管理,有利的是,虚拟存储器的保留部分310是如图3中所示的虚拟存储器地址空间的相邻区域。在阶段202中,该方法包括在虚拟存储器页和用物理存储器320实现的物理存储器区域之间形成上述映射。在阶段203中,该方法包括,将提供对于考虑中的其他一些物理存储器区域的数据项,写入映射到虚拟存储器页312的物理存储器区域319。在图3中,其中两个数据项用参考编号325和326表示。在不限定通用性的条件下,并且出于阐释目的,我们假定数据项325提供对于物理存储器区域317的访问,并且数据项326提供对于物理存储器区域318的访问。数据项325可以包含与物理存储器区域317相关的物理存储器地址,或者基于其可推导出或可获得物理存储器地址的信息。相应的是,数据项326可以包含与物理存储器区域318相关的物理存储器地址或者可基于其推导或获取物理存储器地址的信息。
在需要使得功能组件能够访问例如物理存储器区域318的情形下,该方法包括阶段204和205。在阶段204中,该方法包括从物理存储器320中读取提供对于物理存储器区域318访问的数据项326。读取操作可以包括基于与映射到考虑中的物理存储器区域318的虚拟存储器页314的虚拟存储器地址,获取数据项326的虚拟存储器地址。然后,数据项326的虚拟存储器地址被传递到存储器管理单元“MMU”,存储器管理单元“MMU”连接至物理存储器320并且被配置成将数据项326的虚拟存储器地址根据上述虚拟存储器页和物理存储器区域之间的上述映射转换成数据项326的相对应物理存储器地址。在根据本发明的示例性实施例的方法中,与虚拟存储器页312相关并且提供对于数据项325,……326访问的虚拟存储器地址查找表被维护。为了获取数据项326的虚拟存储器地址,使用与虚拟存储器页314相关的虚拟存储器地址作为查找键值,执行查找。在根据本发明另一示例性实施例的方法中,利用定向到与虚拟存储器页314相关的虚拟存储器地址的一个或多个逻辑和/或数学运算,获取数据项326的虚拟存储器地址。
根据本发明的一个示例性实施例的计算机程序包括计算机可执行指令,用于控制可编程的处理器执行根据本发明的上述示例性实施例中的任何一个的方法。
根据本发明示例性实施例的计算机程序包括用于控制至少一个功能组件的存储器使用的软件模块。该软件模块包括计算机可执行指令,用于控制可编程处理器:
-保留虚拟存储器的一部分,该保留部分的虚拟存储器包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-在虚拟存储器页和用物理存储器实施的物理存储器区域之间形成映射,该物理存储器区域的特定一个对应于虚拟存储器页的特定一个,以及
-将提供对于物理存储器区域的访问的数据项,写入映射到虚拟存储器页的物理存储器区域的一个或多个。
计算机程序进一步包括计算机可执行指令,用于控制可编程处理器执行下列动作,以便使得功能组件能够访问物理存储器区域的所述一个:
-从物理存储器并且至少基于该映射和与该虚拟存储器页中的所述一个相关的虚拟存储器地址,读取提供对于物理存储器区域的所述一个访问的数据项的特定一个,以及
-将由读取数据项所指示的信息传递至功能组件,以便使得该功能组件能够访问物理存储器区域的所述一个。
软件模块可以是例如用适当的编程语言实现并且具有适合于编程语言和可编程处理器的编译器的子程序或功能。
根据本发明的实施例的程序产品包括用根据本发明实施例的计算机程序编码的计算机可读介质,例如光盘(CD)。
根据本发明的一个实施例的信号被编码成,承载限定根据本发明一个实施例的计算机程序的信息。
图4示出了根据本发明示例性实施例的网络元件的示意图。例如,网络元件可以是互联网协议“IP”路由器、以太网交换机、多协议标签交换“MPLS”交换机、软件限定网络“SDN”的网络元件和/或异步传输模式“ATM”交换机。网络元件包括用于将数据传送到数据传输网络450的网络接口、和用于从数据传输网络接收数据的网络接口。在图4中,用于传送数据的两个网络接口用参考编号403和405表示,并且用于接收数据的一个网络接口用参考编号404表示。该网络元件包括网络处理器“NP”408,用于运行所使用的数据传输协议,例如,IP、传输控制协议“TCP”、以太网、ATM和/或MPLS。网络接口和网络处理器代表功能组件,用于控制和执行在网络元件和数据传输网络450之间的数据传输。网络元件包括物理存储器406,用于缓冲接收到的和待传送的数据。利用诸如一个或多个随机访问存储器“RAM”电路的一个或多个存储器设备,可以实现物理存储器406。网络元件包括连接至物理存储器406并且连接至网络接口403-405的处理器系统401。处理器系统401被配置成构造用于由网络接口403-405控制物理存储器406的使用的设备402。处理器系统401可以用一个或多个处理器电路实现,其每个可以是可编程处理器,其被提供有适当软件、诸如特定应用集成电路“ASIC”的专用硬件处理器或者诸如场可编程门阵列“FPGA”的可配置硬件处理器。在图4所示的示例性情形下,处理器系统401是网络元件的中央处理器单元“CPU”,并且设备402是用可由CPU执行的适当的程序装置和/或属于CPU的硬件装置所实现的。然而,也可能的是,用于控制物理存储器406的使用的装置包括独立于CPU的硬件装置。与一些硬件架构相结合,网络处理器“NP”408用与CPU相同的硬件实施,而与一些其他硬件架构相结合,网络处理器“NP”408用独立硬件实现。
下文参考图4、1和3说明了示例性情形中网络元件的功能。具有第一数位“1”的图参考编号指图1,具有第一数位“3”的图参考编号指图3,并且具有第一数位“4”的图参考编号指图4。处理器系统401被配置成:
-保留虚拟存储器111、311的部分110、310,其中,保留部分包括一个或多个相互非重叠和相邻的虚拟存储器页112-116,312-316,
-在虚拟存储器页和用物理存储器406实现的物理存储器区域之间形成映射,该物理存储器区域117、318的第一个被映射到虚拟存储器页116、314的第一个,以及
-将提供对于物理存储器区域访问的数据项125a、125b、325、326写入映射到虚拟存储器页112-116、312的物理存储器区域的一个或多个。
为了使得网络接口403-405中的一个或网络处理器408能够访问物理存储器区域117、318的第一个,该处理器系统401进一步被配置成:
-来自物理存储器406并且至少基于映射和与虚拟存储器页116、314的第一个相关的虚拟存储器地址,读取提供对于物理存储器区域117、318的第一个访问的数据项125a、326的特定一个,以及
-将读取数据项125a、326所指示的信息传递至网络接口中的所述,或者至网络处理器408,以便使得网络接口或网络处理器能够访问物理存储器区域117、318的第一个。
在根据本发明的示例性实施例的网络元件中:
-每个虚拟存储器页包括两个或多个相互非重叠、大小相等并且相邻的虚拟存储器子页121、122以及
-每个物理存储器区域包括两个或多个相互非重叠、大小相等并且相邻的物理存储器子区域123、124,每个对应于对应虚拟存储器页的虚拟存储器子页中的一个。
网络接口403-405和/或网络处理器408可以被配置成使用物理存储器子区域的链接列表,用于缓冲接收到的和待传送的数据。例如,该数据可以作为协议数据单元“PDU”而被处理,诸如互联网协议“IP”分组或以太网帧。每个协议数据单元可以被存储到一个或多个物理存储器子区域中,使得当需要两个或更多个物理存储器子区域时,该两个或更多个物理存储器子区域组成链接表。每个物理存储器子区域以及每个虚拟存储器子页的大小,可以是例如2048字节。
在根据本发明另一示例性实施例的网络元件中,每个网络接口403-405和/或网络处理器408被配置成,将物理存储器区域的链路列表用于缓冲接收到的和待传送的数据。每个物理存储器区域和每个虚拟存储器页的大小可以是例如4096字节。
在根据本发明的一个示例性实施例的网络元件中,处理器系统401被配置成保留虚拟存储器的部分110、310,使得虚拟存储器的保留部分在虚拟存储器111、311的地址空间中是相邻的。
在根据本发明的一个示例性实施例的网络元件中,处理器系统401被配置成将数据项125a、125b、325、326写入,使得每个数据项包含与可借助考虑中的数据项访问的物理存储器区域相关的物理存储器地址。
在根据本发明的示例性实施例的网络元件中,处理器系统401被配置成将数据项125a、125b的每个写入可借助考虑中的数据项访问的物理存储器区域117、119的特定一个。在这种情形下,有利的是,处理器系统401被配置成读取数据项125a中的所述一个,使得与虚拟存储器页116的第一个相关的虚拟存储器地址被传递至存储器管理单元“MMU”401,存储器管理单元“MMU”401连接至物理存储器406并且被配置成根据虚拟和物理存储器之间的映射将虚拟存储器地址转换成物理存储器地址。
在根据本发明的示例性实施例的网络元件中,处理器系统401被配置成,将提供对于物理存储器区域访问的所有数据项325、326写入到映射到虚拟存储器页312的第二个的物理存储器区域319的第二个。在这种情形下,处理器系统401被配置成执行下列动作,以便读取数据项326中的所述一个:
-基于与虚拟存储器页314的第一个相关的虚拟存储器地址,获取与虚拟存储器页312的第二个相关并且提供对于数据项326中的所述一个访问的另一虚拟存储器地址,以及
-将所述另一虚拟存储器地址传递到存储器管理单元“MMU”407,存储器管理单元“MMU”407连接至物理存储器406并且被配置成根据映射将另一虚拟存储器地址转换成物理存储器地址。
在根据本发明的示例性实施例的网络元件中,该处理器系统401被配置成,与虚拟存储器页312的第二个相关并且提供对于数据项325、326访问的虚拟存储器地址的查找表。为了获取提供对于数据项326中的一个访问的另一虚拟存储器地址,处理器系统401被配置成,将与虚拟存储器页314第一个相关的虚拟存储器地址作为查找键值,执行查找。
在根据本发明的示例性实施例的网络元件中,处理器系统401被配置成,执行一个或多个逻辑运算,用于基于与虚拟存储器页314的第一个相关的虚拟存储器,获取与虚拟存储器页312的第二个相关并且提供对于数据项326的所述一个访问的另一虚拟存储器地址。
在根据本发明的示例性实施例的网络元件中,处理器系统401被配置成,在形成或改变另一虚拟存储器和物理存储器406的其他物理存储器区域之间的另一映射的情形下,防止上述虚拟存储器页和上述物理存储器区域之间的映射变化。
在上文所给出的描述中所提供的具体示例不应被解释为限定随附的权利要求范围和/或应用性。

Claims (24)

1.一种用于控制至少一个功能组件的存储器使用的设备,其特征在于所述设备包括:
-用于保留虚拟存储器的一部分的装置,所保留的所述虚拟存储器的一部分包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-用于形成在所述虚拟存储器页和用物理存储器实现的物理存储器区域之间的映射的装置,所述物理存储器区域的第一个被映射到所述虚拟存储器页的第一个,以及
-用于将提供对于所述物理存储器区域的访问的数据项写入被映射到所述虚拟存储器页的所述物理存储器区域中的一个或多个的装置,
其中,为了使得所述功能组件能够访问所述物理存储器区域的所述第一个,所述设备进一步包括:
-用于根据所述映射将与所述虚拟存储器页的所述第一个相关的虚拟存储器地址转换成对应物理存储器地址的装置,
-用于使用所述物理存储器地址来从所述物理存储器读取提供对于所述物理存储器区域的所述第一个的访问的所述数据项的特定一个的装置,以及
-用于将所读取的数据项指示的信息传递至所述功能组件以便使得所述功能组件能够访问所述物理存储器区域的所述第一个的装置。
2.根据权利要求1所述的设备,其中,所述设备包括用于保留所述虚拟存储器的所述一部分使得所保留的所述虚拟存储器的一部分相邻的装置。
3.根据权利要求1所述的设备,其中,所述设备包括用于写入所述数据项使得所述数据项中的每个包括能借助考虑中的所述数据项访问的所述物理存储器区域相关的物理存储器地址的装置。
4.根据权利要求1所述的设备,其中,所述设备包括用于将所述数据项中的每个写入能借助考虑中的所述数据项访问的所述物理存储器区域中的特定一个的装置。
5.根据权利要求1所述的设备,其中,所述设备包括用于将所述数据项写入映射到所述虚拟存储器页的第二个的所述物理存储器区域中的第二个的装置。
6.根据权利要求5所述的设备,其中,为了读取所述数据项中的所述一个,所述设备包括:
-用于基于与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址获取与所述虚拟存储器页的所述第二个相关的另一虚拟存储器地址、以及提供对于所述数据项中的所述一个的访问的装置,以及-用于将另一虚拟存储器地址传递至与所述物理存储器连接的存储器管理单元、以及用于根据所述映射将所述另一虚拟存储器地址转换成物理存储器地址的装置。
7.根据权利要求6所述的设备,其中,所述设备包括用于维护与所述虚拟存储器页的所述第二个相关并且提供对于所述数据项的访问的虚拟存储器地址的查找表的装置,并且为了获取与所述虚拟存储器页的所述第二个相关并且提供对于所述数据项中的所述一个的访问的另一虚拟存储器地址,所述设备包括用于执行将与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址用作查找键值的查找的装置。
8.根据权利要求6所述的设备,其中,所述设备包括用于执行一个或多个逻辑操作的装置,所述一个或多个逻辑操作用于基于与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址,获取与所述虚拟存储器页的所述第二个相关并且提供对于所述数据项中的所述一个的访问的所述另一虚拟存储器地址。
9.根据权利要求1所述的设备,其中,所述设备包括用于在形成或改变另一虚拟存储器和其他物理存储器区域之间的另一映射的情形下防止所述虚拟存储器页和所述物理存储器区域之间的所述映射改变的装置。
10.一种网络元件,包括:
-用于控制并执行在所述网络元件和数据传输网络之间的数据传输的一个或多个功能组件,
-用于缓冲待传输的数据的物理存储器(406),以及
-根据用于控制所述一个或多个功能组件对所述物理存储器的使用的权利要求1-9中的任何一项的设备(401)。
11.根据权利要求10所述的网络元件,其中,所述功能组件中的每个包括用于将所述物理存储器区域的链接表用于缓冲接收到的和待传送的所述数据的装置。
12.根据权利要求10所述的网络元件,其中:
-每个所述虚拟存储器页由两个或更多个相互非重叠、相同大小以及邻近的虚拟存储器子页构成,以及
-映射至考虑中的所述虚拟存储器页的所述物理存储器区域包括两个或更多个相互非重叠、相同大小以及每个与所述虚拟存储器子页中的一个相对应的相邻物理存储器子区域。
13.根据权利要求12所述的网络元件,其中,每个所述功能组件包括用于将所述物理存储器子区域的链接表用于缓冲接收到的和待传送的所述数据的装置。
14.根据权利要求10所述的网络元件,其中,所述网络元件为下列中的至少一个:互联网协议“IP”路由器、以太网交换机、多协议标签交换“MPLS”交换机、软件限定网络“SDN”的网络元件、异步传输模式“ATM”交换机。
15.一种用于控制至少一个功能组件的存储器使用的方法,其特征在于所述方法包括:
-保留(201)虚拟存储器的一部分,所保留的所述虚拟存储器的一部分包括一个或多个相互非重叠并且相邻的虚拟存储器页,
-在所述虚拟存储器页和用物理存储器实现的物理存储器区域之间形成(202)映射,所述物理存储器区域的第一个被映射到所述虚拟存储器页的第一个,以及
-将提供对于物理存储器区域的访问的数据项写入(203)到被映射到所述虚拟存储器页的所述物理存储器区域中的一个或多个,
其中,为了使得所述功能组件能够访问所述物理存储器区域中的所述第一个,所述方法进一步包括:
-根据所述映射将与所述虚拟器存储页的所述第一个相关的虚拟存储器地址转换成对应物理存储器地址,
-使用所述物理存储器地址来从所述物理存储器读取(204)提供对于所述物理存储器区域的所述第一个的访问的所述数据项中的特定一个,以及
-将由所读取的数据项指示的信息传递(205)至所述功能组件,以便使得所述功能组件能够访问所述物理存储器区域中的所述第一个。
16.根据权利要求15所述的方法,其中,所述虚拟存储器的所述一部分是相邻的。
17.根据权利要求15所述的方法,其中,所述数据项中的每个包括与能借助考虑中的所述数据项访问的所述物理存储器区域相关的物理存储器地址。
18.根据权利要求15所述的方法,其中,所述所述数据项中的每个被写入能借助考虑中的所述数据项访问的所述物理存储器区域中的特定一个。
19.根据权利要求15所述的方法,其中,所述数据项被写入映射到所述虚拟存储器页中的第二个的所述物理存储器区域的第二个。
20.根据权利要求19所述的方法,其中,为了读取所述数据项中的所述一个,所述方法包括:
-基于与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址,获取与所述虚拟存储器页的所述第二个相关并且提供对于所述数据项中的所述一个的访问的另一虚拟存储器地址,以及
-将所述另一虚拟存储器地址传递至存储器管理单元,所述存储器管理单元连接至所述物理存储器,并且被配置成根据所述映射将所述另一虚拟存储器地址转换成物理存储器地址。
21.根据权利要求20所述的方法,其中,所述方法包括维护与所述虚拟存储器页的第二个相关并且提供对于所述数据项的访问的虚拟存储器地址的查找表;以及为了获取与所述虚拟存储器页的第二个相关并且提供对于所述数据项中的所述一个的访问的所述另一虚拟存储器地址,将与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址用作查找键值,来执行查找。
22.根据权利要求20所述的方法,其中,所述方法包括执行一个或多个逻辑操作,用于基于与所述虚拟存储器页的所述第一个相关的所述虚拟存储器地址获取与所述虚拟存储器页的所述第二个相关并且提供对于所述数据项中的所述一个的访问的所述另一虚拟存储器地址。
23.根据权利要求15所述的方法,其中,所述方法包括:在形成或改变另一虚拟存储器和其他物理存储器区域之间的另一映射的情况下,防止在所述虚拟存储器页和所述物理存储器区域之间的所述映射改变。
24.根据权利要求15-23中的任何一项所述的方法,其中:
-所述虚拟存储器页中的每个包括两个或更多个相互非重叠、大小相等并且相邻的虚拟存储器子页,以及
-被映射到考虑中的所述虚拟存储器页的所述物理存储器区域包括两个或更多个相互非重叠、相等大小以及每个与所述虚拟存储器子页中的一个相对应的相邻物理存储器子区域。
CN201410549470.3A 2013-10-16 2014-10-16 用于控制功能组件的存储器使用的方法和设备 Active CN104572507B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20136023A FI20136023A (fi) 2013-10-16 2013-10-16 Menetelmä ja laite toiminnallisen komponentin muistinkäytön hallitsemiseksi
FI20136023 2013-10-16

Publications (2)

Publication Number Publication Date
CN104572507A CN104572507A (zh) 2015-04-29
CN104572507B true CN104572507B (zh) 2018-04-13

Family

ID=51690847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410549470.3A Active CN104572507B (zh) 2013-10-16 2014-10-16 用于控制功能组件的存储器使用的方法和设备

Country Status (4)

Country Link
US (1) US20150106586A1 (zh)
EP (1) EP2863313B1 (zh)
CN (1) CN104572507B (zh)
FI (1) FI20136023A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293432A1 (en) * 2016-04-08 2017-10-12 David Oldcorn Memory management with reduced fragmentation
WO2018148923A1 (en) * 2017-02-17 2018-08-23 Intel Corporation Application and system fast launch by virtual address area container
CN108683523B (zh) * 2018-04-24 2021-05-14 国家电网有限公司信息通信分公司 一种基于网络虚拟化的sdn架构
CN110737608B (zh) * 2018-07-03 2024-03-15 阿里巴巴集团控股有限公司 一种数据操作方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6457107B1 (en) * 2000-02-28 2002-09-24 International Business Machines Corporation Method and apparatus for reducing false sharing in a distributed computing environment
CN103080912A (zh) * 2010-08-26 2013-05-01 飞思卡尔半导体公司 用于微处理器系统的存储器管理单元、微处理器系统及管理存储器的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
US7493465B2 (en) * 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US9361215B2 (en) * 2013-05-31 2016-06-07 Apple Inc. Memory allocation improvements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6457107B1 (en) * 2000-02-28 2002-09-24 International Business Machines Corporation Method and apparatus for reducing false sharing in a distributed computing environment
CN103080912A (zh) * 2010-08-26 2013-05-01 飞思卡尔半导体公司 用于微处理器系统的存储器管理单元、微处理器系统及管理存储器的方法

Also Published As

Publication number Publication date
CN104572507A (zh) 2015-04-29
EP2863313A1 (en) 2015-04-22
FI20136023A (fi) 2015-04-17
EP2863313B1 (en) 2016-05-25
US20150106586A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
CN104572507B (zh) 用于控制功能组件的存储器使用的方法和设备
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
DE102020125046A1 (de) Konfigurationsschnittstelle zum auslagern von fähigkeiten an eine netzwerkschnittstelle
DE102022102788A1 (de) Konfigurierbare vorrichtungsschnittstelle
DE102018127751A1 (de) Einheitlicher Adressraum für mehrere Verbindungen
CN103647850B (zh) 一种分布式版本控制系统的数据处理方法、设备及系统
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
CN109213697A (zh) 智能存储器数据存储或加载方法和装置
CN102195874A (zh) 数据分组的预提取
CN106030549B (zh) 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和系统
CN107220187A (zh) 一种缓存管理方法、装置及现场可编程门阵列
CN105408875B (zh) 在存储器接口上的分布式过程执行和文件系统
CN103218312A (zh) 文件访问方法及系统
DE112022002284T5 (de) Auslagerung der vermittlungsschicht 7 an eine infrastrukturverarbeitungseinheit für ein vermaschtes dienstnetz
CN103858393B (zh) 用于包的并行处理的包处理电路
CN103547995B (zh) 短指针
DE102020129690A1 (de) Semiflexibler paketzusammenführungs-steuerweg
DE102022117807A1 (de) Seitenfehlerverwaltungstechnologien
CN110266679A (zh) 容器网络隔离方法及装置
WO2017148484A1 (en) Solid-state storage device with programmable physical storage access
Esser Exploiting the iOS kernel
CN107250995A (zh) 存储器管理设备
CN109933278A (zh) 用于实现块设备挂载访问的方法和装置
US20110153691A1 (en) Hardware off-load garbage collection acceleration for languages with finalizers
Eilemann et al. Key/value-enabled flash memory for complex scientific workflows with on-line analysis and visualization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant