用于存储器管理单元的事务调度器的制作方法

文档序号:20686341发布日期:2020-05-08 18:51阅读:147来源:国知局
用于存储器管理单元的事务调度器的制作方法

相关申请的交叉引用

本申请要求2017年9月20日提交的标题为“用于存储器管理单元的事务调度器”的第62/561,181号美国临时申请的权益,所述申请的内容特此以全文引用的方式明确地并入。

本文所描述的各个方面及实施例涉及计算机存储器系统,且具体而言,涉及增加与存储器管理单元(mmu)中使用的转换硬件相关联的利用率。



背景技术:

虚拟存储器是由大多数现代计算系统提供的存储器管理技术。使用虚拟存储器,计算系统的中央处理单元(cpu)或外围装置可使用映射到物理存储器空间内的物理存储器地址的虚拟存储器地址来存取存储器缓冲器。以此方式,cpu或外围装置可能够寻址比原本可能存在的物理地址空间更大的物理地址空间,及/或可利用存储器缓冲器的连续视图,所述视图实际上跨越物理存储器空间在物理上不连续。

常规上通过使用用于将虚拟存储器地址转换成物理存储器地址的存储器管理单元(mmu)来实施虚拟存储器。mmu可集成到计算系统的cpu中(cpummu),或可包括为外围装置提供存储器管理功能的单独电路(系统mmu或smmu)。在常规操作中,作为非限制性实例,mmu从例如直接存储器存取(dma)代理、视频加速器及/或显示引擎的“上游”装置接收存储器存取请求。对于每个存储器存取请求,mmu将包含于存储器存取请求中的虚拟存储器地址转换成物理存储器地址,随后使用经转换的物理存储器地址处理存储器存取请求。

因为可能需要mmu在短时间间隔内重复地转换相同虚拟存储器地址,所以可通过缓存mmu内的地址转换数据来提高mmu及整个计算系统的性能。就此而言,mmu可包含称为转换缓存(还称为转换后备缓冲器,或tlb)的结构。转换缓存提供转换缓存条目,其中可存储先前生成的虚拟到物理存储器地址转换映射以供稍后存取。如果mmu随后接收到用于转换存储于转换缓存中的虚拟存储器地址的请求,则mmu可从转换缓存检索对应物理存储器地址,而不是重新转换虚拟存储器地址。

然而,在mmu按到达次序处理进入事务流中的事务的情形中,可能会丢失通过使用转换缓存获得的性能优势。举例来说,mmu可具有可各自一次处理一个事务的多个独立的并行转换机器。然而,然而,独立的并行转换机器可基于进入转换请求流而结束执行多个相同的转换(例如,其中多个请求处于相同存储器区域中)。这样会导致浪费硬件资源,具体来说,转换机器及总线带宽。



技术实现要素:

以下呈现关于本文中所公开的一或多个方面及/或实施例的简化概述。因此,以下概述不应被视为关于所有预期方面及/或实施例的详尽概述,也不应认为以下概述识别关于所有预期方面及/或实施例的关键或至关重要的元素,或描绘与任何特定方面及/或实施例相关联的范围。因此,以下概述具有以下唯一目的:以简化形式呈现和与本文中所公开的机构相关的一或多个方面及/或实施例相关的某些概念以先于下文呈现的具体实施方式。

根据各个方面,具有多个并行转换机器的存储器管理单元(mmu)可收集进入事务流中的事务,及选择合适的事务来调度到所述并行转换机器。举例来说,mmu可包含调度器,所述调度器可识别属于相同地址集(例如,具有相同地址转换)的不同事务,及将一个事务从每个事务集调度到个别转换机器。因此,调度器可用于确保多个并行转换机器不执行相同的存储器转换,因为共享相同地址转换的其它事务可从转换后备缓冲器获得转换结果。以此方式,由于较少的复制存储器存取,因此可增加与存储器转换硬件(例如,并行转换机器)相关联的利用率,这样也可允许数据总线服务于其它请求并因此增加存储器转换系统中的带宽。

根据各个方面,用于调度存储器事务的方法可包括:在耦合到存储器转换单元的调度器处接收包括多个存储器事务的事务流,所述存储器转换单元经配置以并行地执行多个存储器地址转换;在所述事务流中的所述多个存储器事务中识别一或多个事务集,每个事务集包含共享存储器地址转换的一或多个存储器事务;及将一个存储器事务调度到所述存储器转换单元以每事务集进行转换,使得所述存储器转换单元经配置以每事务集执行一个存储器地址转换。

根据各个方面,用于处理存储器事务的设备可包括:存储器转换单元,其经配置以并行地执行多个存储器地址转换;及调度器,其耦合到所述存储器转换单元,其中所述调度器可接收包括多个存储器事务的事务流;在所述事务流中的所述多个存储器事务中识别一或多个事务集,每个事务集包含共享存储器地址转换的一或多个存储器事务;及将一个存储器事务调度到所述存储器转换单元以每事务集进行转换,使得所述存储器转换单元每事务集执行一个存储器地址转换。

根据各个方面,设备可包括:用于接收包括多个存储器事务的事务流的装置;用于在所述事务流中的所述多个存储器事务中识别一或多个事务集的装置,其中所述一或多个事务集各自包含共享存储器地址转换的一或多个存储器事务;及用于将一个存储器事务调度到经配置以并行地执行多个存储器地址转换的存储器转换单元以每事务集进行转换,使得所述存储器转换单元经配置以每事务集执行一个存储器地址转换的装置。

根据各个方面,非暂时性计算机可读存储媒体可具有记录在其上的计算机可执行指令,其中所述计算机可执行指令可经配置以使一或多个处理器接收包括多个存储器事务的事务流;在所述事务流中的所述多个存储器事务中识别一或多个事务集,其中所述一或多个事务集各自包含共享存储器地址转换的一或多个存储器事务;及将一个存储器事务调度到经配置以并行地执行多个存储器地址转换的存储器转换单元以每事务集进行转换,使得所述存储器转换单元经配置以每事务集执行一个存储器地址转换。

与本文所公开的方面及实施例相关联的其它目标及优点基于附图及详细描述对本领域技术人员将是显而易见的。

附图说明

由于在结合附图考虑时通过参考以下详细描述更好地理解本文所描述的各个方面及实施例及其许多附带优点,因此将容易获得对本文所描述的各个方面及实施例及其许多附带优点的更全面了解,所述附图只是为了说明而不是限制本公开而呈现,且其中:

图1说明根据各个方面的示范性计算系统,所述计算系统包含从上游装置到提供地址转换服务的存储器管理单元(mmu)的通信流。

图2说明根据各个方面的示范性mmu,所述mmu可使用多个并行转换机器提供地址转换服务。

图3说明根据各个方面的示范性mmu,所述mmu可包含调度器以提高与多个并行转换机器相关联的利用率及提高存储器转换系统中的带宽。

图4说明根据各个方面的可在图3中所示的调度器中执行的示范性方法。

图5说明根据各个方面的示范性时间线,所述时间线展示可通过使用图3中所示的调度器实现以提高与多个并行转换机器相关联的利用率及提高存储器转换系统中的带宽的性能优势。

图6说明可根据本文所描述的各个方面及实施例配置的示范性电子装置。

具体实施方式

在以下描述及相关附图中公开各个方面及实施例以展示与示范性方面及实施例有关的具体实例。在阅读本公开之后,相关领域的技术人员将显而易见替代方面及实施例,且可在不脱离本公开的范围或精神的情况下构造并实践替代方面及实施例。另外,将不详细地描述或可省略熟知元件以免混淆本文中所公开的方面及实施例的相关细节。

词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何实施例不必应解释为比其它实施例优选或有利。同样,术语“实施例”并不要求所有实施例均包含所论述特征、优点或操作模式。

本文中使用的术语仅描述特定实施例且不应解释为限制本文所公开的任何实施例。除非上下文另外明确指示,否则如本文所用,单数形式“一(a/an)”及“所述”意图也包含复数形式。本领域技术人员应进一步理解,术语“包括(comprises/comprising)”及“包含(includes/including)”在用于本说明书中时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。

此外,各个方面及/或实施例可就将由例如计算装置的元件执行的动作序列来进行描述。本领域技术人员将认识到,本文中所描述的各种动作可由特定电路(例如,专用集成电路(asic))、由一或多个处理器正执行的程序指令,或由两者的组合执行。另外,本文中描述的这些动作序列可被视为全部体现在具有存储于其上的一组对应计算机指令的任何形式的非暂时性计算机可读媒体内,所述计算机指令在执行时将使相关联的处理器执行本文中描述的功能性。因此,本文所描述的各种方面可以许多不同形式体现,已预期其全部在所要求的主题的范围内。另外,对于本文中描述的方面中的每一个,任何此类方面的对应形式可在本文中描述为例如“经配置以……的逻辑”及/或经配置以执行所描述的动作的其它结构组件。

在讨论用于在如本文所公开的具有多个并行转换机器的存储器管理单元(mmu)中增加硬件利用率、增加产量及减小总线带宽要求的示范性设备及方法之前,描述提供虚拟到物理存储器地址转换的常规计算系统。就此而言,图1是说明示范性计算系统100的框图,其中中央处理单元(cpu)mmu102为cpu104提供地址转换服务,及系统mmu(smmu)106为上游装置108、110及112提供地址转换服务。应理解,计算系统100及其元件可涵盖已知数字逻辑元件、半导体电路、处理核心及/或存储器结构等中的任一者,或其组合。本文中所描述的各方面并不限于任何特定元件布置,且所公开的技术可容易地扩展到半导体裸片或封装上的各种结构及布局。

如图1中所看到,计算系统100包含上游装置108、110及112,所述上游装置分别具有连接到互连件126的对应从端口(s)120、122及124的主端口(m)114、116及118。在一些方面中,作为非限制性实例,上游装置108、110及112中的每一者可包括外围装置,例如,直接存储器存取(dma)代理、视频加速器及/或显示引擎。互连件126可从上游装置108、110及112接收存储器存取请求(未展示),及可将存储器存取请求从主端口(m)128传递到smmu106的从端口(s)130。在接收每个存储器存取请求之后,smmu106可执行虚拟到物理存储器地址转换,及可基于地址转换经由系统互连件136存取存储器132及/或从装置134。如图1中所示,smmu106的主端口(m)138与系统互连件136的从端口(s)140通信。系统互连件136又经由主端口(m)142及144分别与存储器132及从装置134的从端口(s)146及148通信。在一些方面中,作为非限制性实例,存储器132及/或从装置134可包括系统存储器、系统寄存器,及/或存储器映射的输入/输出(i/o)装置。应理解,尽管smmu106服务于上游装置108、110及112,但是一些方面可规定smmu106可服务于比图1所说明更多或更少的装置。

如上所述计算系统100还包含具有集成在其中的cpummu102的cpu104。通过与smmu106向上游装置108、110及112提供地址转换服务相同的方式,cpummu102可为cpummu102的cpu存储器存取请求(未展示)提供地址转换服务。在执行cpu存储器存取请求的虚拟到物理存储器地址转换之后,cpummu102可经由系统互连件136存取存储器132及/或从装置134。具体而言,cpu104的主端口(m)150与系统互连件136的从端口(s)152通信。随后,系统互连件136经由主端口(m)142及144分别与存储器132及从装置134的从端口(s)146及148通信。

为了改进性能,例如cpummu102及/或smmu106的mmu可提供转换缓存(未展示),以存储先前产生的虚拟到物理存储器地址转换映射。然而,在具有多个并行转换机器的mmu的情况下,在mmu按到达次序处理进入事务流中的事务的情况下可降低通过使用转换缓存(还称为转换后备缓冲器,或tlb)实现的性能优势。

就此而言,提供图2以在示范性mmu200的背景下说明上述问题,所述mmu可使用包含多个并行转换机器222、224的存储器转换硬件220来提供地址转换服务。尽管图2中所示的实例mmu200包含两个并行转换机器222、224,但是本领域技术人员将了解,本公开预期存储器转换硬件220可包含比图2中所示的两个更多的转换机器。在图2中所示的实例mmu200中,当按到达次序处理进入事务流210中的事务时,存储器转换硬件220可基于进入事务流210中的事务而结束执行相同的存储器转换。举例来说,在图2中,进入事务流210可包含属于相同地址区域(例如,4k存储器区域)的第一事务(a1)218及第二事务(a2)216。此外,进入事务流210可包含属于相同地址区域的第三事务(b1)214及第四事务(b2)212,该地址区域不同于与第一事务218及第二事务216相关联的地址区域。一般来说,将仅需要转换第一事务218及第三事务214,因为与第一事务218处于相同地址区域中的第二事务216应能够利用来自第一事务218的转换结果,及相同推理可适用于第三事务214及第四事务212。

然而,因为图2中所示的mmu200按到达次序为进入事务流210中的事务212-218转换地址,所以相同存储器地址区域内的事务将全部执行相同转换,从而利用所有并行硬件来执行复制遍历并因此提高数据总线业务。此问题适用于一次执行多于一(1)个转换的任何存储器转换单元,例如,图2中所示的存储器转换硬件220。举例来说,在图2中,并行转换机器222、224各自具有一次处理一(1)个事务的能力,其中处理一(1)个事务的n个并行机器各自产生可在存储器转换硬件220中处理的总共n个并行事务。因此,基于如图2中所示的到达次序方案,第一事务218发送到第一转换机器222及下一事务216发送到第二转换机器224,由此并行转换器机器222、224实质上基本上同时地执行相同地址转换。

因此,为了避免浪费的硬件资源及总线带宽使并行转换机器222、224执行相同转换,图3说明引入调度器350的示范性mmu300,所述调度器可执行如图4中所说明的方法400以提高与存储器转换硬件220相关联的利用率、提高产量、减少总线带宽要求并允许数据总线服务于其它请求。举例来说,参考图4中的框410,调度器350可收集进入事务流210中的事务及选择合适的事务发送到转换机器222、224。就此而言,在框420处,调度器350可确定第一事务218及第二事务216属于相同地址集,及类似地确定第三事务214及第四事务212属于相同地址集。在一个实例中,调度器350可基于事务处于相同存储器区域内或另外具有类似事务属性而识别事务集。一般来说,当识别用于对共享或基本上有可能共享相同地址转换的多个事务进行分组的事务集时,调度器350可采用或另外考虑可引起不同地址转换的任何合适的事务参数。

在各种实施例中,参考图4中的框430,调度器350随后可将每事务集一(1)个事务调度到可用转换机器222、224,由此增加在给定时间处理的唯一事务的数目及在减少总线带宽要求的同时增加产量。举例来说,在由于处于相同存储器区域中,事务216、218分组在一个事务集中而事务214、212分组在另一事务集中的实例中,调度器350可将第一事务218发送到第一转换机器222,及第二事务216可仅从转换缓存或tlb获得与第一事务218相关联的转换结果。在类似方面中,调度器350可将第三事务214发送到第二转换机器224,并且未发送到存储器转换硬件220的第四事务212可从转换缓存或tlb获得来自第三事务214的转换结果。

根据各个方面,图5说明可通过结合图4中所示的方法400使用图3中所示的调度器350实现以提高与多个并行转换机器相关联的利用率及提高存储器转换系统中的带宽的性能优势。举例来说,在图5中,第一时间线510展示在图2中所示的mmu200中执行地址转换所需的时间单元数目,这假设每事务两(2)个并行时隙及四(4)个时间单元。在第一时间线510中,第一转换机器222开始在时间t0处处理第一事务218及在时间t4处结束转换第一事务218。此外,第二转换机器224开始在时间t1处处理第二事务216及在时间t5处结束转换。因此,从时间t1直到时间t4,两个转换机器222、224执行相同地址转换,及其它事务214、212分别直到时间t8及t9才完成。相反,提供第二时间线520以展示与上述调度器350相关联的性能优势。具体而言,并非在时间t1处开始处理事务流210中的第二事务216,调度器350可跳过第二事务216,因为转换将与第一事务218相同,这表示当已结束第一事务218时,第二事务216可在时间t4处从转换缓存或tlb获得转换结果。因此,在时间t1处,调度器350可发送第三事务214以进行转换,所述第三事务属于相对于已发送用于转换的事务218不同的事务集。因此,当存储器转换硬件220已完成调度的第三事务214时,第三事务214及事务流210中与第三事务214共享相同转换的所有其它事务可在时间t5处获得适当转换。

根据各个方面,图6说明可采用如图3中所说明的mmu300的示范性电子装置600,所述mmu可经配置以执行图4中所示及上文更详细地描述的方法400。举例来说,图6中所示的电子装置600可为包含至少一个中央处理单元(cpu)610的基于处理器的系统,所述cpu包含处理器612及用于快速存取临时存储的数据的缓存616。cpu610可进一步包含cpummu614,用于为cpu存储器存取请求提供地址转换服务。根据各个实施例,cpu610可耦合到系统总线620,所述系统总线可将包含于电子装置600中的包含smmu628的各种其它装置相互耦合,其中cpummu614及/或smmu628可根据图3中所示的mmu300配置。如本领域技术人员将显而易见,cpu610可通过系统总线620交换地址、控制及数据信息,以与包含于电子装置600中的其它装置通信,所述其它装置可包含合适装置。举例来说,如图6中所说明,包含于电子装置600中的装置可包含存储器子系统630,所述存储器子系统可包含静态存储器632及/或动态存储器634、一或多个输入装置622、一或多个输出装置624、网络接口装置626,及显示控制器640。在各个实施例中,输入装置622可包含任何合适的输入装置类型,包含但不限于输入按键、开关、语音处理器等。输出装置624可类似地包含任何合适的输出装置类型,包含但不限于音频、视频、其它视觉指示器等。网络接口装置626可为经配置以允许数据交换到网络680及从网络680交换数据的任何装置,所述网络可包括任何合适的网络类型,包含但不限于有线或无线网络、专用或公用网络、局域网(lan)、广域网(wlan)及因特网。网络接口装置626可支持所需的任何类型的通信协议。cpu610可通过系统总线620存取存储器子系统630。

根据各个实施例,cpu610还可通过系统总线620存取显示控制器640以控制发送到显示器670的信息。显示控制器640可包含存储器控制器642及存储器644,以响应于与cpu610的通信而存储发送到显示器670的数据。显示控制器640将信息发送到显示器670以经由视频处理器660显示,所述视频处理器将待显示的信息处理成适合于显示器670的格式。显示器670可包含任何合适的显示器类型,包含但不限于,阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、led显示器、触摸屏显示器、虚拟-现实耳机,及/或任何其它合适的显示器。

本领域技术人员将了解,可使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中可能参考的数据、指令、命令、信息、信号、位、符号及码片。

此外,本领域技术人员将了解,结合本文中所公开的方面而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性描述了各种说明性组件、块、模块、电路及步骤。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本文所述的各个方面及实施例的范围。

结合本文中所公开的方面而描述的各种说明性逻辑块、模块及电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器与dsp核心的结合,或任何其它此种配置)。

结合本文中公开的方面描述的方法、序列及/或算法可直接以硬件、以由处理器执行的软件模块或以硬件与软件模块的组合来体现。软件模块可驻留在ram、闪存存储器、rom、eprom、eeprom、寄存器、硬盘、可装卸式磁盘、cd-rom或本领域中已知的任何其它形式的非暂时性计算机可读媒体中。示范性非暂时性计算机可读媒体可耦合到处理器,使得处理器可从非暂时性计算机可读媒体读取信息及将信息写入到非暂时性计算机可读媒体。在替代方案中,非暂时性计算机可读媒体可集成到处理器。处理器及非暂时性计算机可读媒体可驻留在asic中。asic可驻留在iot装置中。在替代方案中,处理器及非暂时性计算机可读媒体可为用户终端中的离散组件。

在一或多个示范性方面中,本文中所描述的功能可以硬件、软件、固件或其任何组合实施。如果实施于软件中,则可将功能作为一或多个指令或代码而存储在非暂时性计算机可读媒体上或经由非暂时性计算机可读媒体进行传输。计算机可读媒体可包含存储媒体及/或通信媒体,所述媒体包含可有助于将计算机程序从一处传送到另一处的任何非暂时性媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此类计算机可读媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所需程序代码且可由计算机存取的任何其它媒体。此外,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、dsl或红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,则所述同轴缆线、光纤缆线、双绞线、dsl或红外线、无线电及微波等无线技术包含在媒体的定义中。在本文可互换使用的术语磁盘及光盘包含cd、激光光盘、光学光盘、dvd、软盘及蓝光光盘,其通常以磁性方式再现数据及/或用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

虽然前述公开内容展示说明性方面及实施例,但本领域技术人员应了解,在不脱离如由所附权利要求书定义的本公开的范围的情况下,可在其中进行各种改变及修改。此外,根据本文所述的各种说明性方面及实施例,本领域技术人员将了解,上文所述的及/或所附的任何方法权利要求中所述的任何方法中的功能、步骤及/或动作无需以任何特定次序执行。更进一步,在以单数形式在上文描述或所附权利要求书中陈述任何元件的程度上,本领域技术人员将了解单数形式也预期复数形式,除非明确陈述限于单数形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1