掌桥专利:专业的专利平台
掌桥专利
首页

指针之外的写入

文献发布时间:2024-04-18 19:58:21


指针之外的写入

本技术涉及数据处理。具体地,它们涉及数据处理装置的操作,该数据处理装置在由写入指针指示的位置处维持并写入存储器中的缓冲器。

对数据执行数据处理操作的数据处理装置可维持存储器中的缓冲器,该数据处理装置将数据值写入缓冲器中。为了跟踪下一数据值应当被写入缓冲器中的何处,数据处理装置可设置有存储写入指针的寄存器,该写入指针指示缓冲器中的当前写入位置。然后,当新的数据值被写入缓冲器,写入指针对应地更新。

至少一些示例提供了一种数据处理装置,该数据处理装置包括:

处理元件,该处理元件被配置为执行数据处理操作;

存储器,该存储器被配置为存储经受该数据处理操作的数据,其中作为该数据处理操作的一部分,处理电路被配置为维持该存储器中的缓冲器;

寄存器,该寄存器被配置为保持指示该缓冲器中的当前写入位置的写入指针;以及

高速缓存,该高速缓存被配置为高速缓存经受由该处理电路进行的该数据处理操作的该数据的副本,其中该数据的该副本被存储在高速缓存行中,其中该高速缓存被配置为在高速缓存行数据单元中执行从该存储器到该高速缓存中的分配以及从该高速缓存到该存储器的回写,

并且其中该处理元件被配置为使得,当该处理元件在由该写入指针确定的位置处执行对该缓冲器的数据写入时,该处理器在与该缓冲器中的数据写入的前进方向相对应的更新方向上更新该写入指针,并且该缓冲器中的该前进方向上由该写入指针指示的该位置和边界位置之间的另外的位置被发信号通知用预定值来写入。

至少一些示例提供了一种数据处理的方法,该方法包括:

执行数据处理操作;

将经受该数据处理操作的数据存储在存储器中,其中该数据处理操作包括维持该存储器中的缓冲器;

在寄存器中保持指示该缓冲器中的当前写入位置的写入指针;以及

将经受该数据处理操作的该数据的副本高速缓存在高速缓存中,其中该数据的该副本被存储在高速缓存行中,并且其中从该存储器到该高速缓存中的分配以及从该高速缓存到该存储器的回写是在高速缓存行数据单元中执行的;

并且当在由该写入指针确定的位置处执行对该缓冲器的数据写入时,在与该缓冲器中的数据写入的前进方向相对应的更新方向上更新该写入指针,并且发信号通知该缓冲器中的该前进方向上由该写入指针指示的该位置和边界位置之间的另外的位置要用预定值写入。

将参考如附图所示的本发明的实施方案,结合以下描述阅读,仅以举例的方式进一步描述本技术,其中:

图1A示意性地示出了根据一些公开示例的数据处理装置;

图1B示出了根据一些公开示例将样本数据写入缓冲器;

图2示意性地示出了根据一些公开示例的包括统计剖析电路的数据处理装置;

图3示意性地示出了根据一些公开示例的包括跟踪生成电路的数据处理装置;

图4A示出了根据一些公开示例的硬件影子栈机制的操作;

图4B示出了根据一些公开示例的软件栈;

图4C示出了根据一些公开示例的递降栈;

图5A至图5D示出了根据一些公开示例的在将新数据项推入到缓冲器中时和在从缓冲器弹出条目时的本技术;

图6示出了根据本技术细分为保持缓冲器的存储页面的存储器的区域;

图7A至图7D示出了根据一些公开示例的在将新数据项推入到缓冲器中时和在从缓冲器弹出条目时的本技术;

图8示出了其中根据本技术实现循环缓冲器的存储器的区域;

图9示意性地示出了根据一些公开示例的数据处理装置;并且

图10是显示根据一些公开示例的方法所采取的步骤序列的流程图。

在本文公开的一个示例中,存在一种数据处理装置,该数据处理装置包括:

处理元件,该处理元件被配置为执行数据处理操作;

存储器,该存储器被配置为存储经受该数据处理操作的数据,其中作为该数据处理操作的一部分,该处理电路被配置为维持该存储器中的缓冲器;

寄存器,该寄存器被配置为保持指示该缓冲器中的当前写入位置的写入指针;以及

高速缓存,该高速缓存被配置为高速缓存经受由该处理电路进行的该数据处理操作的该数据的副本,其中该数据的该副本被存储在高速缓存行中,其中该高速缓存被配置为在高速缓存行数据单元中执行从该存储器到该高速缓存中的分配以及从该高速缓存到该存储器的回写,

并且其中该处理元件被配置为使得,当该处理元件在由该写入指针确定的位置处执行对该缓冲器的数据写入时,该处理器在与该缓冲器中的数据写入的前进方向相对应的更新方向上更新该写入指针,并且该缓冲器中的该前进方向上由该写入指针指示的该位置和边界位置之间的另外的位置被发信号通知用预定值来写入。

使用高速缓存来保持经受处理电路的数据处理操作的数据的临时副本通过在很大程度上避免与从存储器读取数据和向存储器写入数据相关联的等待时间来提高处理元件的效率。因此,在存储器中建立缓冲器的情况下,该缓冲器的更有效使用通常是由于高速缓存处理元件当前正在从缓冲器读取和写入缓冲器的数据项而产生的。此外,当高速缓存被组织为在高速缓存行数据单元中执行从存储器到高速缓存中的分配以及从高速缓存到存储器的回写时,这提高了高速缓存的存储器系统交互的效率。然而,这种基于高速缓存行的方法还意味着一般而言关于给定高速缓存行中的缓冲器内容的动作将意味着整个高速缓存行将首先需要由处理元件读取,之后处理元件可修改该高速缓存行中的任何数据项。本技术是基于以下认识:当参考写入指针来引导缓冲器使用时,并且当在缓冲器中存在数据写入的限定前进方向时,这意味着在写入指针之外的原本在写入指针到达该位置之前不访问的位置可通过整个基于高速缓存行的将数据移入和移出高速缓存的方法而不必要地带入高速缓存中。因此,本技术提出了一种方法,根据该方法,当处理元件执行对缓冲器的数据写入(如由写入指针导引的)时,缓冲器中由写入指针指示的位置和边界位置(在用于缓冲器的使用的写入前进方向上)之间的位置被发信号通知用预定值写入。此“发信号通知用预定值写入”一方面可涉及用预定值显式填充的对应高速缓存位置。在适当的过程中,包括预定值的高速缓存行随后可被写回到存储器(如果在此期间没有进一步修改的话)。另一方面,“发信号通知用预定值写入”可涉及被指示为(临时地)与预定值相关联的对应高速缓存位置。换句话说,对应的高速缓存位置(还)没有被显式修改。如下文将更详细讨论的,此技术可通过正式正确地注意这些位置的修改(覆盖它们确实必须在高速缓存行和/或存储器中被对应地修改的可能性)来支持缓冲器的使用,诸如相对快速连续地推入和弹出数据项,但同时通过不实际修改那些位置来节省功率/处理支出,因为知道修改在需要完全实现之前可能被逆转(或至少被放弃)。

如上文所提及,可不同地实现“发信号通知用预定值写入”,但在一些示例中,数据处理装置还包括存储元件,该存储元件与高速缓存相关联并且被配置为存储与高速缓存的每个高速缓存行相关联的指示符值,其中指示符值的相应位指示高速缓存行的哪些数据项被发信号通知为具有该预定值。因此,这提供了用于信令的有效机制,其中设定指示符值的位显示了高速缓存行的对应数据项应当具有预定值。

因此,在一些示例中,发信号通知该缓冲器中的该前进方向上由该写入指针指示的该位置和该边界位置之间的该另外的位置将用该预定值来写入包括:设定与和该另外的位置相关联的至少一个高速缓存行相关联的至少一个指示符值的位。

存储器中的该缓冲器可采取多种形式,但在一些示例中,该处理电路被配置为以后进先出方式维持该存储器中的该缓冲器,其中添加到该缓冲器的被推入数据项条目写入在由该写入指针确定的该位置处,其中被弹出数据项从该缓冲器的移除包括在与该前进方向相反的方向上从与由该写入指针确定的该位置相邻的弹出位置弹出该被弹出的数据项,并且其中该弹出位置被发信号通知用该预定值来写入。

在一些示例中,当提供了与高速缓存相关联并且被配置为存储与高速缓存的每一高速缓存行相关联的指示符值的存储元件时,该弹出的数据项从该缓冲器中的该移除包括取消设定与和该另外的位置相关联的该至少一个高速缓存行相关联的该至少一个指示符值的该位以及取消设定与该弹出位置相关联的指示符值的位。

边界位置可采取多种形式。在一些示例中,边界位置与高速缓存行极限相对应。在一些示例中,高速缓存行极限与高速缓存行末端相对应。在一些示例中,边界位置与高速缓存行开端相对应。

写入指针的使用及其更新方式可被不同地配置,例如取决于正在使用的缓冲器的类型,并且可能取决于针对该类型的缓冲器使用存储器位置的顺序所建立的惯例。在一些示例中,该处理元件被配置为在与该缓冲器中的数据写入的递升前进方向相对应的递升方向上更新该写入指针。在一些示例中,该处理元件被配置为在与该缓冲器中的数据写入的递降前进方向相对应的递降方向上更新该写入指针。

缓冲器可用于各种上下文。在一些示例中,由处理元件执行的数据处理操作包括数据样本,并且其中该存储器中的该缓冲器是样本数据缓冲器。在一些示例中,由处理元件执行的数据处理操作包括程序流跟踪数据的生成,并且其中该存储器中的该缓冲器是跟踪缓冲器。在一些示例中,由处理元件执行的数据处理操作包括分支指令和返回指令的执行,并且其中该存储器中的该缓冲器是硬件影子栈。在一些示例中,存储器中的缓冲器是软件栈,其中由处理元件执行的数据处理操作包括将数据推入到该软件栈上和从该软件栈弹出数据。

应当进一步注意,在边界位置为高速缓存行的极限的示例中,此极限可与该位置处的数据值临时存储于高速缓存中的高速缓存行的极限对应或不对应。换句话说,将预定值写入写入指针之外的另外的位置可能仅延伸到写入指针所指示的高速缓存行的末端。然而,预定值的写入也可比预定值的写入更远地延伸到另一个限定的边界。

因此,在一些示例中,该边界位置是其中该位置处的该数据值被临时存储在该高速缓存中的该高速缓存行的极限。

在一些示例中,边界位置是并非其中该位置处的该数据值被临时存储在该高速缓存中的该高速缓存行的另一高速缓存行的极限,并且其中致使在该处理元件执行对该缓冲器的该数据写入的由该写入指针确定的该位置和该另一高速缓存行的该极限之间的连续数据块被用该预定值写入。在一些示例中,边界位置与存储页面边界相对应。

可以关于其范围的各种方式例如通过限定缓冲器的末端的限制指针来管理缓冲器。在其他示例中,缓冲器可以是循环限定的,其中该处理电路被配置为以封装环绕方式维持该缓冲器,其中该缓冲器被布置为覆盖预定范围的存储器位置,并且当写入已经在该缓冲器中的数据写入的该前进方向上到达该预定范围的存储器位置的极限时,该处理电路在该预定范围的存储器位置的相反极限处执行对该缓冲器的下一数据写入,并且其中该连续数据块具有预定最大大小。

可实现的是,另外选择性地启用本技术。在一些示例中,该数据处理装置还包括至少一个控制寄存器,该至少一个控制寄存器被配置为保持控制值,其中该处理元件被配置为使得发信号通知要写入该缓冲器中的该前进方向上由该写入指针指示的位置和该边界位置之间的该另外的位置的该预定值进一步取决于该控制值。

这种选择性控制可以其他方式实现,并且在一些示例中,对存储在存储器中的数据的访问取决于存储在该存储器中所存储的至少一个访问控制表中的配置数据,其中该配置数据针对该存储器中的每个位置限定该访问的特性,并且其中该处理元件被配置为使得发信号通知要被写入该缓冲器中的该前进方向上由该写入指针指示的该位置和该边界位置之间的该另外的位置的该预定值进一步取决于与由该写入指针指示的该位置相对应的该配置数据。

进一步应当注意,预定值可被不同地实现。在一些示例中,预定值是零的表示。在一些示例中,使用另一有效数据表示,并且实际上可在可在系统中表示的数据值的全范围内选择任何值。在一些示例中,发信号通知要写入由该写入指针指示的该位置和该边界位置之间的该预定值具有关于所执行的该数据处理操作的空值含义。换句话说,预定值不是在系统中可表示的数据值范围内的数据值,而是在系统中具有明确“空值”含义的值。

本技术可在单个处理元件系统中实现或可在多处理器元件系统中实现。因此,在一些示例中,该存储器至少部分地与具有另一高速缓存的另一处理元件共享,并且该高速缓存和该另一高速缓存协同参与关于该高速缓存和该另一高速缓存的内容的高速缓存一致性协议。与另一处理元件共享存储器意味着,通常可在高速缓存(和另一高速缓存)中高速缓存的数据值可由多于一个的处理元件在存储器中访问。因此,高速缓存和另一高速缓存需要用特定高速缓存间通信来组织,使得不同处理元件对共享数据项的冲突修改不会出现。本技术可在这种上下文中找到特定的适用性,因为写入指针以外的例如填充完整的高速缓存行的写入方法意味着关于该高速缓存行的共享所有权问题不会出现。因此,避免了与传送放弃特定高速缓存行的所有权的请求相关联的延迟。

在本文所公开的一个示例中,存在一种数据处理的方法,该方法包括:

执行数据处理操作;

将经受该数据处理操作的数据存储在存储器中,其中该数据处理操作包括维持该存储器中的缓冲器;

在寄存器中保持指示该缓冲器中的当前写入位置的写入指针;以及

将经受该数据处理操作的该数据的副本高速缓存在高速缓存中,其中该数据的该副本被存储在高速缓存行中,并且其中从该存储器到该高速缓存中的分配以及从该高速缓存到该存储器的回写是在高速缓存行数据单元中执行的;

并且当在由该写入指针确定的位置处执行对该缓冲器的数据写入时,在与该缓冲器中的数据写入的前进方向相对应的更新方向上更新该写入指针,并且发信号通知该缓冲器中的该前进方向上由该写入指针指示的该位置和边界位置之间的另外的位置要用预定值写入。

现在将参考附图描述一些具体实施方案。

图1A示意性地示出了根据一些公开示例的数据处理装置。处理元件10被配置为针对存储在存储器20中的数据值执行数据处理操作。当前经受数据处理操作的数据值的临时副本被保持在与处理元件10相关联的高速缓存12中。对存储器20的访问由互连器14介导。作为其执行的数据处理操作的一部分,处理元件10在存储器20中维持缓冲器18。出于本技术的目的,缓冲器18可服务于广泛多种目的,并且下文参考以下附图更详细地描述各种示例。作为其对缓冲器18的管理的一部分,处理元件10包括写入指针寄存器22,该写入指针寄存器保持写入指针的当前值,该写入指针指示缓冲器18的内容的下一次修改将发生在何处。参考以下附图更详细地描述处理元件10、高速缓存12、缓冲器18和由写入指针寄存器22保持的写入指针的交互。图1A中的数据处理装置进一步被显示为包括另一处理元件30,该另一处理元件具有其自己的相关联的高速缓存32。高速缓存32和高速缓存12被布置为参与高速缓存一致性协议,以避免对共享数据(即,保存在存储器20的处理元件10和处理元件30均可访问的位置中的数据值)的冲突修改。

图1B示出了根据一些公开示例将样本数据写入缓冲器。所示出的缓冲器40用于样本数据的累积,其中样本数据的一部分42已经被存储在缓冲器中。关于此缓冲器维持两个指针,即下限指针44和写入指针46,该下限指针指示缓冲器的较低范围,该写入指针指示下一数据(样本数据项)要被写入的地方。因此,要写入缓冲器40的下一样本48被写入写入指针46指示的位置。然而,根据本技术,当写入下一样本48时,缓冲器40的在更新方向(即,可预期将另外的样本写入缓冲器中的方向)上延伸的(任意大小的)部分50被另外更新。此部分50的范围远至边界52。此边界可被不同地限定,特别是关于高速缓存样本数据的高速缓存(诸如图1A中的高速缓存12)的特性,诸如高速缓存行边界,或者关于数据被组织在保持缓冲器40的存储器中的方式的特性,诸如存储页面边界。

图2示意性地示出了根据一些公开示例的包括统计剖析电路的数据处理装置。装置100包括处理元件101、高速缓存102和存储器103。处理元件101被具体显示为包括统计剖析电路105,该统计剖析电路被布置为监视处理元件101执行数据处理操作的各个方面并且被布置为生成其写入存储器103中的剖析缓冲器106的样本数据流。所监视的方面不受限制并且可采取广泛多种形式,但出于示例性说明的目的,该附图显示了CPU监视器110、分支预测监视器111、总线监视器112以及高速缓存监视器113。这些监视器中的每一个监视器根据预定时标收集指示其监视的部件的相应操作的数据,并且将这些数据馈送到统计剖析电路105。统计剖析电路105生成样本数据流,该样本数据流的示例项107在图中示出。统计剖析电路105具有写入指针115,该写入指针既定位下一数据将被写入的位置又通知软件数据当前在剖析缓冲器106中结束的位置。在将样本数据107写入剖析缓冲器106时,样本数据被高速缓存在高速缓存102中。因此,本技术(如本文别处更详细描述的)被应用于关于高速缓存102的高速缓存行结构和/或将剖析缓冲器106保持在存储器中的管理的样本数据107的写入。

图3示意性地示出了根据一些公开示例的包括跟踪生成电路的数据处理装置。装置150包括处理元件151、相关联的高速缓存152和存储器153。处理元件151包括处理器内核154,该处理器内核通过执行所限定的程序指令序列来执行各种数据处理操作。为了使程序员监视和调试处理器内核154对那些程序指令的执行,处理元件进一步设置有跟踪生成电路156。跟踪生成电路156通过内核接口155接收处理器内核154的操作的指示。基于这些指示,跟踪生成电路156生成程序流跟踪数据流,该程序流跟踪数据流被写出到在存储器153中限定的跟踪缓冲器160。对跟踪缓冲器160的写入也被高速缓存在高速缓存152中。跟踪生成电路156经由FIFO(先进先出)缓冲器157和跟踪输出接口158写出跟踪数据。在此示例中,跟踪生成电路156采用跟踪缓冲器160作为循环缓冲器,即,在以限定的缓冲器大小写入最后一个条目之后,写入指针被封装成基址指针,并且开始重写缓冲器的现有内容。

在图4A和图4B中显示了本技术可获得应用的两个另外的示例性上下文。图4A示出了根据一些公开示例的硬件影子栈机制的操作。返回地址的栈以后进先出(LIFO)方式维持在存储器中,由此BL(分支和链接)指令的执行致使将下一指令的地址复制到链接寄存器中并且致使分支到达指令中指定的目的地。程序调用栈由所示出的结构遮蔽,由此BL指令致使地址被推入到此栈上并且返回指令致使地址从栈中弹出。所显示的常规配置在写入之前使写入指针递减,并且在读取之后弹出使指针递增。这当然可被不同地限定(例如,在递增/递减方向和动作排序方面)。返回地址的栈的至少一部分也被高速缓存在与处理元件相关联的高速缓存中。

图4B示出了根据一些公开示例的软件栈。此软件栈形成分配给软件以用于其自身目的的存储器的任意大小的部分。软件栈由栈指针指向(栈指针的值存储在软件可访问的栈指针寄存器中)。软件可将数据推入到栈上,从栈弹出数据,并且还可通过改变栈指针来保留和释放栈上的空间。后一个特征在图4B中示意性地示出,其中除了现有软件栈数据之外,对栈指针的更新还保留了存储器的一部分(“保留空间”)。所显示示例性软件栈的常规配置在推入时(在写入之前)使栈指针递减,并且在读取之后弹出使指针递增。这当然可被不同地限定(例如,在递增/递减方向和动作排序方面)。软件栈的至少一部分也被高速缓存在与执行软件的处理元件相关联的高速缓存中。

图4C示出了根据一些公开示例的“递降”栈。根据此栈配置,栈在“向下”方向上(即,朝向较低值地址)增长,并且指针总是指向所存储的最后一项的最低地址字节。因此,推入的数据项(新条目)被添加在由POINTER-ENTRYSIZE限定的位置处,然后指针被更新为取值POINTER-ENTRYSIZE(或者,等效地,指针被更新为POINTER-ENTRYSIZE,然后条目被写入该位置)。例如,指针开始指向0x508。写入的最后条目大小为8字节,并且被写入0x508至0x50F。当推入新条目时,将其写入0x500(至0x507),然后指针在推入之后指向0x500。

本技术应被理解为可应用于上文描述的任何示例性上下文(并且可应用于未明确示出的其他示例上下文),其中存储缓冲器数据(无论什么形式和无论出于什么目的)被高速缓存在访问该存储缓冲器数据的处理元件的本地高速缓存中。图5A至图5D示出了根据一些公开示例的在将新数据项推入到缓冲器中时和在从缓冲器弹出条目时的本技术。这些附图各自显示了一组数据存储位置,其中为了易于解释,这些数据存储位置可视为每个块表示8B存储器块,并且其中每一水平组的八个此类块一起因此对应于64B存储器,此对应于此示例中的高速缓存行大小。图5A显示了初始配置,其中影线块是先前已经被写入存储缓冲器的块。阴影箭头指示写入指针的当前位置,使得写入存储缓冲器的下一数据项将被写入紧接其右侧的位置,其中顺序写入填补高速缓存行200,然后从左侧继续顺序地进行下一高速缓存行201。然而,根据本技术,并且如图5b所示,当对高速缓存行200的下一写入发生(其自身占用另外两个8B块)时,此高速缓存行200中的其余块用每个8B块的预定值(在这种情况下显示为“00”,即“全零”)写入。因此,应当了解,写入指针(如更新的)和高速缓存行末端之间的空间被限定为无效的,使得处理元件也可“取得”整个行的所有权并将该组零写入此区。图5A至图5D显示了相对于存储缓冲器的“更新方向”,即,对存储缓冲器的另外的写入将前进的方向(以及以更精细的粒度级别从左到右遍历每个高速缓存行的存储器的值)。

然而,虽然可以单调递增的方式使用存储缓冲器,但是图5C和图5D显示了在从存储缓冲器移除(“弹出”)数据项时的情况的示例。在图5C的示例中,当从图5A至图5B的转变中写入的两个数据项202已被弹出时,此方法显示了仅写入指针被更新(即,数据项202实际上保留在高速缓存行中)。这些数据项202稍后可被写回存储器,尽管这取决于数据是如何被使用的。因为这些存储器位置现在处于写入指针上方的区域(其被认为是无效的)中,所以可能不需要这种回写,除非存在这些数据项已经临时存在的进一步结果,这需要回写以用于一致性。在图5D的示例中,另外两个数据项已从存储缓冲器弹出,并且写入指针现在与对应高速缓存行的开端对齐。注意,在此示例中,弹出位置已用预定值(即,在此情况下为“00”)显式写入,使得整个高速缓存行现在由该预定值填充。在一些具体实施中,当将此高速缓存行写回到存储器时可使用此事实,以便更有效地编码该回写,即由此高速缓存可简单地将高速缓存行作为“全零”报告给存储器系统,并且不必为高速缓存行的每个8B块提供显式数据值。

图6示出了根据本技术细分为保持缓冲器的存储页面的存储器的区域。影线区显示了已经被写入缓冲器的数据,由此可看出,在存储器的当前4kB页面内,写入指针指示与通过高速缓存行的部分路径相对应的存储器位置。在此示例中,当对缓冲器的下一写入发生时,不仅直到当前高速缓存行的末端的位置被用预定值写入,而且直到当前存储页面的末端的另外的位置也被用预定值写入。

图7A至图7D示出了根据一些公开示例的在将新数据项推入到缓冲器中时和在从缓冲器弹出条目时的本技术。为高速缓存300显示了一组4个高速缓存行的数据,为该高速缓存提供了对应的关联存储装置301,由此关联存储装置301提供与每个高速缓存行相对应的8位值,使得每个8位值中的一位与每个64B高速缓存行的每个8B数据项相对应。这些相关联存储装置的大小、数据项大小和高速缓存行大小仅仅是示例性的。处理元件利用与每个64B高速缓存行相关联的8位值来跟踪预定值到对应高速缓存行位置的标称写入。根据图7A中所示的初始配置,其中高速缓存行302为空(或至少无效并且可用于分配)并且其中写入指针指示高速缓存行302的第一数据项位置,推入导致图7B中所示的情形,其中已写入两个8B数据项并且对应地已将写入指针向右移动两个位置。此外,在另外的存储装置301的对应值中,最右手002D的六个位已被设定,从而将高速缓存行的其余部分标记为“空”。虽然这随后可通过将预定值显式写入对应的高速缓存行位置并且因此写入对应的存储器位置来跟进,但如图7C和图7D所示,在另外的存储装置301中使用符号可避免这种情况。在图7B的状态之后,添加单个另一8B数据项的另一推入发生,并且因此此数据项的对应位在另外的存储装置301中被清除。然后,在下一步骤处,由图7B和图7C的步骤推入到缓冲器上的三个数据项被弹出,使得高速缓存行302然后完全清除有效缓冲器数据。这些弹出致使另外的存储装置301中的对应条目被标记为指示“空”,使得整个高速缓存行被标记为“空”。因此,高速缓存行的空值状态意味着不需要被写回到存储器,并且因此可避免对应的存储器事务。

图8示出了其中根据本技术实现循环缓冲器的存储器的区域。循环缓冲器被限定为占用基址指针和限制指针之间的一组连续存储器位置。应当了解,循环缓冲器的扩展可被不同地限定(例如,作为基址指针和相关联的大小),并且这对于本公开不重要。写入指针指示正被写入循环缓冲器的新数据的当前写入位置的地址,并且所显示的增加存储器地址的方向也是写入前进方向。因此,当写入指针到达限制指针时,它的下一个增量致使它回复到基址指针的位置,并且其中最旧的数据被正在写入的最新数据重写。因此,在本技术的上下文中,其中写入指针以外的一个或多个数据值位置以预定值写入(或至少经标记以待写入),当存储缓冲器为诸如图8所示的循环缓冲器时,要以预定值写入的另外的位置可至少部分地环绕封装。可用预定值(为了获得更有效的高速缓存使用的益处)如此写入的另外位置的数量的最大大小然后可被施加以确保仅较旧的循环缓冲器数据的可接受部分可能被该技术擦除。

图9示意性地示出了根据一些公开示例的数据处理装置。处理元件401设置有本地高速缓存402,其通过该本地高速缓存耦接到互连器403。互连器403向处理元件提供对存储器404的访问,其中处理元件根据本文中所描述的技术的任何变型维持存储缓冲器405。处理元件401还包括写入指针寄存器406,该写入指针寄存器指示存储缓冲器405内的当前写入位置。另外,处理元件401包括写入控制寄存器407。保持在写入控制寄存器407中的位控制当前是否启用如本文所描述的写入指针之外的写入技术。这使得技术软件可控制。存储器404还被显示为保持访问控制表408,该访问控制表例如可以是限定访问控制和其他存储器区域特定特性的转换表的格式。替代地或除了写入控制寄存器407之外,可在访问控制表408中提供控制字段,该控制字段限定是否针对给定存储器区域启用如本文所描述的写入指针以外的写入技术。

图10是显示根据一些公开示例的方法所采取的步骤序列的流程图。步骤序列开始于步骤500,根据该步骤,将新数据项写入存储缓冲器。在步骤501处,将此新数据项高速缓存在寻求将此数据项写入存储缓冲器的处理元件的本地高速缓存中(根据写入指针指示的存储器位置),并且在步骤502处,更新写入指针。在步骤503处,确定写入指针是否与预限定边界位置(例如,高速缓存行极限或存储页面,这取决于如何实现技术)对齐。如果不是,则流程经由步骤504前进,其中发信号通知用预定值写入写入指针位置与下一边界位置(在存储缓冲器的写入前进方向上)之间的存储器位置。如上文参考先前附图所解释的,此信令可包括预定值的显式写入,或者替代地可包括与它们已经被分配了预定值的对应位置相关联地存储的单独指示。如果在步骤503处确定写入指针与预限定边界位置对齐,则流程直接前进到步骤505。在步骤505处,确定一个或多个高速缓存行是否还将被写回存储器。如果是这种情况,则在步骤506处,将包括预定值的高速缓存行写出存储缓冲器。否则继续进行另外的数据处理,如步骤507所表示。考虑到前面附图的描述,应当了解,步骤507的此另一处理可涉及另外的位置被发信号通知用预定值写入和/或用该预定值填补整个高速缓存行。

在简要的总体概述中,公开了数据处理装置和数据处理的方法,其中处理元件维持存储器中的缓冲器以支持该处理元件执行的数据处理。写入指针指示该缓冲器中的当前写入位置。高速缓存保持经受该数据处理操作的该数据的副本,并且从该存储器到该高速缓存中的分配以及从该高速缓存到该存储器的回写是在高速缓存行数据单元中执行的。当该处理元件在由该写入指针确定的位置处执行对该缓冲器的数据写入时,该处理器在与该缓冲器中的数据写入的前进方向相对应的更新方向上更新该写入指针,并且该缓冲器中的该前进方向上由该写入指针指示的该位置和边界位置之间的另外的位置被发信号通知用预定值来写入。

在本申请中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可以具有提供所限定的操作的专用硬件,或者可以对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。

虽然本文已结合附图详细描述了示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化、添加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可以与独立权利要求的特征一起进行各种组合。

相关技术
  • 存储系统中存储数据的写入方法、写入系统及相关装置
  • 数据读取、写入方法及数据读取、写入系统
  • 静态随机存取存储器及其写入辅助电路和写入操作方法
  • 编码地址的写入系统及写入方法
  • 使用非直接存储器指针的快速块写入命令及方法
  • 使用非直接存储器指针的快速块写入命令及方法
技术分类

06120116485858