CN105446898A - 描述符环管理 - Google Patents

描述符环管理 Download PDF

Info

Publication number
CN105446898A
CN105446898A CN201510590733.XA CN201510590733A CN105446898A CN 105446898 A CN105446898 A CN 105446898A CN 201510590733 A CN201510590733 A CN 201510590733A CN 105446898 A CN105446898 A CN 105446898A
Authority
CN
China
Prior art keywords
pointer
descriptor rings
memory
address
data
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.)
Granted
Application number
CN201510590733.XA
Other languages
English (en)
Other versions
CN105446898B (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.)
ARM Ltd
Original Assignee
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN105446898A publication Critical patent/CN105446898A/zh
Application granted granted Critical
Publication of CN105446898B publication Critical patent/CN105446898B/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及描述符环管理。利用描述符环24来辅助一个或多个通用处理器4、6与一个或多个设备20、22之间的通信的数据处理系统采用系统存储器管理单元18来管理由设备20、22对主存储器16的访问。系统存储器管理单元18使用地址转换数据来将由设备20、22生成的存储器地址转换为被供应给主存储器16的地址。系统存储器管理单元18内的预抓取电路38用来检测从描述符环24读取的指针并将地址转换数据预抓取至系统存储器管理单元18的转换后备缓冲器30中。

Description

描述符环管理
技术领域
本公开涉及数据处理系统的领域。更具体地,本公开涉及包括描述符环(descriptorring)的数据处理系统,该描述符环用于存储指向存储器位置的指针。
背景技术
已知可提供一种数据处理系统,其包括描述符环来存储指向存储器位置的指针。这样的描述符环的一种使用是用在包括一个或多个通用可编程处理器的系统内,其在描述符环内存储指针数据以使得指针数据能够由一个或多个设备从描述符环中读取并被用于标识要由该一个或多个设备使用的缓冲器存储器中的区域。与这样的系统相关联的存储器寻址需要取决于地址转换数据的地址转换,以使得一个或多个设备使用来自描述符环的指针进行的存储器访问能够被执行。转换数据可使用诸如页表遍历(pagetablewalking)之类的机制来确定,这种机制需要执行相对较大数目的处理周期,从而至少在从描述符环读取的指针的首次使用时即引入延迟。
发明内容
从一个方面来看,本公开提供了存储指向存储器位置的指针的描述符环;以及预抓取电路,该预抓取电路检测从所述描述符环读取的指针并预抓取针对与所述指针相对应的存储器地址的地址转换数据。
本公开认识到:当指针被设备从描述符环中读取时,那么有可能很快将存在对于由该指针所标识的区域内的存储器地址的存储器访问。从而,检测来自描述符环的指针的读取并然后触发对针对与该指针相对应的存储器地址的地址转换数据的预抓取,有助于减少与指针的至少首次使用相关联的延迟,该指针的首次使用需要获得针对该指针的地址转换数据。
从另一方面看,本公开提供了用于存储指向存储器位置的指针的描述符环装置;以及预抓取装置,该预抓取装置用于检测从所述描述符环读取的指针并且用于预抓取针对与所述指针相对应的存储器地址的地址转换数据。
从又一方面看,本公开提供了:在描述符环内存储指向存储器位置的指针;检测从所述描述符环读取的指针;以及预抓取针对与所述指针相对应的存储器地址的地址转换数据。
本公开的上述方面以及其他目的、特征和优点将从结合附图阅读的示例实施例的以下详细说明中变得清楚。
附图说明
图1示意性地示出了包括多个通用处理器、系统存储器管理单元和多个设备的数据处理系统,该多个设备使用系统存储器管理单元来访问存储器系统;
图2示意性地示出了使用描述符环将指针存储到存储器内的缓冲器;
图3示意性地示出了系统存储器管理单元的一部分;
图4示意性地示出了通过识别到描述符环的访问模式来识别指针;以及
图5是示意性地示出了针对检测到的指针的转换数据的预抓取的流程图。
具体实施方式
图1示意性地示出了数据处理系统2,其包括多个通用处理器4、6,其各自具有第一级数据缓存8、第一级指令缓存10和转换后备缓冲器12,该转换后备缓冲器12用于从由通用处理器4、6生成的虚拟地址转换为用于对第二级缓存14和主存储器16进行寻址的物理地址。
系统存储器管理单元18被连接至主存储器16被用作管理由多个设备20、22对主存储器16的访问。这些设备例如可包括:DMA引擎、NIC设备、另一通用处理器(CPU)、图形处理单元(GPU)或自己可直接访问主存储器而非通过通用处理器4、6来访问的其他设备。
主存储器16存储描述符环24、缓冲器26和页表数据28。描述符环24可由通用处理器4、6和设备20、22进行写和读。描述符环24用于辅助通用处理器4、6和设备20、22之间的通信。通用处理器4、6能够将指针写至主存储器16内的存储器地址区域,这些存储器地址区域在设备20、22执行的处理中用作它们所使用的缓冲器26。设备20、22从描述符环24读取指针以识别用作它们的缓冲器的区域,并然后通常依据它们的功能执行来自那些缓冲器的读操作或者至那些缓冲器的写操作中的一者。设备20、22还可对描述符环24内的指针所关联的状态数据进行更新,其中该状态数据然后被通用处理器4、6读取从而提供从设备20、22到通用处理器4、6的通信的信道。
设备20、22可使用虚拟寻址,从而系统存储器管理单元18包括转换后备缓冲器30,该转换后备缓冲器30用于将由设备20、22生成的虚拟地址转换成对主存储器16进行寻址所需的物理地址。当转换后备缓冲器30内针对需要转换的虚拟地址发生未命中(miss)时,使用经由页表遍历从页表数据28中推导出的地址转换数据对转换后备缓冲器30进行配置。系统存储器管理单元18还能够存储和施行访问许可,如在页表数据28中针对存储器的不同区域所规定的那样。
图2示意性地示出了描述符环24和缓冲器26之间的示例关系。描述符环24是存储器中存储多个指针32的区域,该多个指针指向存储器16内的缓冲器26的相应起始位置。每个指针还可与相关联的指针所指向的缓冲器的状态数据相关联。指针数据由通用处理器4、6写入至环缓冲器24。指针数据由设备20、22从环缓冲器24中读取。与每个指针相关联的状态数据由设备20、22进行写/更新。
描述符环24自身能够由可编程起始位置和可编程结束位置来表征,该可编程起始位置和可编程结束位置可在通用处理器4、6的软件控制下进行设置并随后被用于标识来自描述符环24的读取,因为这些读取将来自介于起始位置和结束位置之间的范围中的地址。对描述符环24进行规定的可编程数据的另一形式是使用页表数据28内针对将用作描述符环24的一个或多个存储器区域的字段,即形成描述符环24的(一个或多个)存储器区域可在页表数据28内被这样的标记。可通过指针的使用来辅助对描述符环24内的条目的管理,指针被维护以便指向描述符环24内要由(一个或多个)活动设备20、22使用的下一新条目位置。与描述符环24相关联的最后的条目指针可被用于向设备20、22指示它们要使用的下一指针能够在哪里被找到。
图3示意性地示出了系统存储器管理单元18的一部分。这包括用来存储地址转换数据34的多个实例的系统存储器管理单元转换后备缓冲器30。当从设备20、22中的一个设备接收到虚拟地址时,将该虚拟地址与这些地址转换数据条目进行匹配,并且如果发生命中(hit),则命中的地址转换数据条目被用于生成合适的物理地址,该物理地址然后被转发至主存储器16。如果虚拟地址在转换后备缓冲器30内未命中,则页表遍历电路36用来发起在整个页表数据28中进行页表遍历处理以确定要被存储在转换后备缓冲器30内的合适地址转换数据。如果必要的话,转换后备缓冲器30内的一个现有条目将被驱逐,从而容纳新抓取的地址转换数据。转换后备缓冲器30的这样的动作将与本技术领域中的那些动作类似。
预抓取电路38用来监听(snoop)从存储器16读取的数据、主存储器16内被访问的存储器位置的物理地址、以及这些访问是读还是写。此监听到的信息被预抓取电路38用于检测从描述符环24读取的指针并用于在这样的地址转换数据不存在于转换后备缓冲器30内时,触发对针对与从描述符环24读取的指针相对应的存储器地址的地址转换的预抓取。更具体地,预抓取电路38包括环识别电路40和指针识别电路42。
环识别电路40用来根据用于读操作的物理地址识别返回的数据是否居于描述符环24内。在一些实施例中,描述符环24的软件可编程起始点和结束点可被供应至环识别电路40并被用于确定读地址是否居于起始点和结束点之间的区域内。页表数据还可被用于识别来自描述符环24的读取。其他实施例可采取启发式方法。一种示例启发式方法是将经受高于阈值频率的读操作的存储器区域识别为与描述符环24相对应。对具体存储器区域的读操作的数目可在例如转换后备缓冲器30内的转换后备缓冲器条目34内存储的附加数据内进行跟踪。与描述符环24相对应的地址转换数据将具有高的使用频率,并且这可由地址转换数据内所提供的附加数据字段进行记录,并被环识别电路40用于将具体存储器区域识别为与描述符环24相对应。可能由环识别电路40使用的另一启发(可能与前述启发相结合)是被跟踪的存储器区域如它们的地址转换数据内所记录的那样经受读操作和写操作二者。在至少一些实施例中,设备20、22通常将执行对描述符环的读和写二者,而它们对指针所指向的缓冲器26将仅执行读或仅执行写。
指针识别电路42可用来在从描述符环24读取的候选指针数据匹配一个或多个预定指针特性时将它识别为指针。这些预定指针特性可以是候选指针数据具有与有效存储器地址相对应的形式。不与有效存储器地址相对应的候选指针数据不能是指针。指示有效存储器地址的候选指针数据的特性的更具体示例是:候选指针数据内预定长度的最高有效位部分是全零或全一。
指针识别电路42识别指针的另一方式是通过检测从描述符环24内与针对先前的读指针的访问模式相匹配的一个或多个存储位置中读取的候选指针数据。这样的访问模式可采用多种不同形式,例如,候选指针数据是从先前已经从其中读取过指针的存储器地址中读取的。内容可寻址存储器可被用于存储先前读取的指针的地址以及候选指针数据的地址,该候选指针数据的地址与这样的内容可寻址存储器内的先前地址进行比较以识别候选指针数据的地址是否匹配先前检测到的指针的地址。
在其他实施例中,检测到的访问模式可基于候选指针数据与先前读指针的地址的偏移。该偏移如果对应于所检测的用于指针访问的跨步(stride)模式,则可被用于将候选指针数据识别为将经受地址转换预抓取的指针数据。
图4示意性地示出了描述符环24内与先前读取的指针的访问模式相匹配的存储位置的上文论述的示例,候选指针数据被从这些存储位置中读取。用“#”标记的地址位置是先前已经从其中读取过指针的地址位置。这些地址被存储在内容可寻址存储器(CAM)44中。随着描述符环24的一部分被读取,被读出的数据被放入CAM44。当来自设备的其他读/写被系统MMU18看到时,这些其他读/写在CAM44中相对于环的先前存储的部分进行比较以进行任何命中,并将那些已经命中的行标记为存储了之后被请求的地址。周期性地,系统MMU18在此结构中寻找跨步模式(例如,每第3个8字节值)并因此确定每第3个8字节量值是指针并且应当被预抓取。
用于将候选指针数据识别为与指针相对应的另一选项是它是从描述符环24内的存储位置中读取的,并且该存储位置与先前读取的指针值偏移所观察到的跨步(参见标记为“*”的条目)。由于每个指针在它与先前的指针偏移时被识别,这可被用于生成跨步值,该跨步值然后可被用于在数据被设备20、22中的一个设备识别并用作指针之前预测候选指针数据是否与指针相对应。
图5是示意性地示出了针对检测到的指针的转换数据的预抓取的流程图。在步骤46,处理等待直到存在来自描述符环24的读取。当存在来自描述符环24的读取时,则步骤48确定该读取的存储位置是否匹配指示读取是对指针的读取的预定访问模式。如果没有匹配,则处理返回至步骤46。如果来自描述符环24的读取的存储位置匹配访问模式,则处理前进至步骤50,其中候选指针数据被检查以确定它是否匹配有效的地址,例如如同所述的那样,它的最高有效位是全零或全一。如果候选指针数据未对应于有效地址,则处理再次返回至步骤46。如果识别出的候选指针数据对应于有效地址,则处理进行至步骤52,其中做出关于该地址在转换后备缓冲器30内是否命中的确定。如果存在命中,则针对该指针的地址转换已经从页表数据28中取回并且不需要任何预抓取。如果在转换后备缓冲器30内未命中,则处理进行至步骤54,其中由页表遍历电路36执行的页表遍历被触发从而取回针对新遇到的指针的地址转换数据。处理然后返回至步骤46。
另外可能的(一个或多个)示例实施例是其中描述符环24可由诸如PCIe总线之类的总线上的事务提示位(transactionhintbit)来标识,该事务提示位指示针对请求所预想的读/写模式是什么。其他可能性包括设备可向系统MMU18指示哪些读取对应于描述符环24读取,设备可提供关于哪些读取对应于描述符环24读取的提示,或者将设备连接到系统MMU18的总线提供关于使用/重复使用的提示,其可被用于确定描述符环24是什么(例如,指示某一位置将包括大量的重复使用,这将是较好的指示符)。
描述符环24通常通过一个或多个通用处理器4、6的动作被填充以指针数据,该一个或多个通用处理器4、6执行将指针数据写入到描述符环24中的程序指令。此后,一个或多个设备从描述符环24中读指针数据以识别被分配以供一个或多个设备(例如,DMA设备、NIC设备、另一CPU、GPU等等)使用的存储器区域。
在至少一些实施例中,系统存储器管理单元18被提供以管理由一个或多个存储器设备对存储器16内的存储器位置的访问。该系统存储器管理单元18可使用地址转换数据来将由一个或多个设备产生的设备存储器地址转换为被提供给存储器的物理存储器地址。系统存储器管理单元18还可提供其他或可供选择的功能,例如,控制由一个或多个设备对存储器内不同存储器地址空间区域的访问许可。
尽管将认识到地址转换数据可以以各种不同的方式来访问,提供地址转换数据的一种高效方式是使用页表遍历电路36通过在整个页表数据中执行页表遍历来确定地址转换数据。虽然这样的页表遍历技术的使用可以是表示存储器系统配置的高效且灵活的方式,但它会遭受为了访问新的地址转换数据而需要相对较慢的页表遍历过程的缺点。在这样的示例实施例中,针对检测到的指针的地址转换数据的预抓取有助于解决该问题。
描述符环24可由预抓取电路38以各种不同的方式进行识别。在一些实施例中,预抓取电路可读取一个或多个可编程描述符环标识符(例如,寄存器值或页表条目),该一个或多个可编程描述符环标识符规定了存储器地址空间中用作描述符环的一个或多个区域。因此,软件编程者能够有效地向预抓取电路指定存储器的哪些区域应被看做描述符环,对指针的读取可从该描述符环中被检测到。
在其他示例实施例中,预抓取电路可包括环识别电路40,该环识别电路用来将描述符环24识别为存储器地址空间中经历由一个或多个设备以高于阈值频率进行读取的一个或多个区域。描述符环24的特性是它将倾向于由设备以相对于存储器地址空间的其他区域被读取的频率的较高频率进行读取。因此,用作描述符环的存储器区域可通过具有高于阈值水平的读取频率的特性(可能可编程的或启发式地被确定)而被识别出来。
预抓取电路识别描述符环的另一可能方式是使用环识别电路40,该环识别电路40将描述符环识别为存储器地址空间中经历由一个或多个设备的读和写二者的一个或多个区域。通常,一个或多个设备20、22将用来对存储器地址空间内的一般存储器区域进行读或写,而非二者,然而读和写二者将倾向于对描述符环来执行,因为指针将被从描述符环中读取并且针对缓冲器区域26的状态更新被写入到描述符环24,从而这样的状态更新能够如所需的那样被报告回一个或多个通用处理器4、6。
在一些实施例中,预抓取电路可包括指针识别电路42,该指针识别电路42用来通过检测具有一个或多个预定特性的候选指针数据来识别从描述符环中读取的指针。从而,从描述符环24中读取的数据可被检查以确定它是否具有一个或多个预定特性,并且如果是,则将其标识为指针。
候选指针数据的一个或多个特性可采取多种形式,但在一些实施例中该一个或多个特性可以是将候选指针数据标识为有效存储器地址的特性。在一些实施例中,这些与有效存储器地址相对应的特性可以不具有为全零或全一的候选指针数据的预定长度的最高有效位部分(这样的形式通常用于较大的存储器地址空间内,其中在实践中仅顶部或底部是必须的)。
在一些示例实施例中,预抓取电路38可包括指针识别电路42,该指针识别电路42通过检测从描述符环内与针对先前读取的指针的访问模式相匹配的一个或多个存储位置中读取的候选指针数据来识别指针。该访问模式可具有多种形式,例如,候选指针数据是在描述符环24内先前被识别为存储指针的地址处从描述符环24中读取的。通常的描述符环可用来重复使用指针被存储的位置和/或针对给定指针的转换数据可被清除,但指针然后再次被访问,此时因为它先前已经被识别出来,所以它能够被快速地识别为指针并且然后转换数据被抓取。内容可寻址存储器44提供了一种高性能机制,其可在一些实施例中被用于存储先前指针地址从而准许与候选指针数据的候选地址的快速比较。
与访问模式相匹配的另一示例包括:来自描述符环内的候选地址的读取具有与先前读取的指针的偏移,该偏移与所检测到的针对指针访问的跨步模式相匹配。描述符环内的指针数据通常以具有介于指针值之间的特征跨步的重复模式被列出。一旦该跨步被识别出来(例如,启发式地),那么给定指针的识别可被用于预测从与给定指针相隔跨步长度的位置中读取的数据也将是指针值并且可有效地经历地址转换预抓取。
尽管已经在这里参考附图详细描述了本发明的示例性实施例,但应理解本发明不限于那些精确实施例,并且在不背离本发明如所附权利要求所定义的范围和精神的情况下,本领域技术人员在这里可进行各种改变、添加和修改。例如,在不背离本发明的范围的情况下,可进行从属权利要求的特征与独立权利要求的特征的各种组合。

Claims (18)

1.一种装置,包括:
描述符环,该描述符环存储到存储器位置的指针;以及
预抓取电路,该预抓取电路检测从所述描述符环读取的指针并且预抓取针对与所述指针相对应的存储器地址的地址转换数据。
2.如权利要求1所述的装置,包括一个或多个通用处理器和一个或多个设备,所述一个或多个通用处理器执行将所述指针写入到所述描述符环的程序指令,所述一个或多个设备从所述描述符环读取所述指针,以识别被分配以供所述一个或多个设备使用的存储器区域。
3.如权利要求2所述的装置,包括系统存储器管理单元,该系统存储器管理单元管理由所述一个或多个设备对存储器内的存储器位置的访问,所述系统存储器管理单元使用所述地址转换数据来将由所述一个或多个设备生成的设备存储器地址转换成被供应给所述存储器的物理存储器地址。
4.如权利要求3所述的装置,包括页表遍历电路,该页表遍历电路通过在全部页表数据中执行页表遍历来确定所述地址转换数据。
5.如权利要求1所述的装置,其中,所述预抓取电路被配置为使用一个或多个可编程描述符环标识符来识别所述描述符环,所述一个或多个可编程描述符环标识符规定了存储器地址空间中用作所述描述符环的一个或多个区域。
6.如权利要求5所述的装置,其中,所述一个或多个可编程描述符环标识符包括页表数据内针对存储器地址空间中用作所述描述符环的所述一个或多个区域的标志。
7.如权利要求1所述的装置,其中,所述预抓取电路包括环识别电路,该环识别电路将所述描述符环识别为经历由所述一个或多个设备以高于阈值频率进行读取的存储器地址的一个或多个区域。
8.如权利要求1所述的装置,其中,所述预抓取电路包括环识别电路,该环识别电路将所述描述符环识别为经历由所述一个或多个设备进行的读和写的存储器地址的一个或多个区域。
9.如权利要求1所述的装置,其中,所述预抓取电路包括环识别电路,该环识别电路使用与总线事务相关联的提示数据来识别到所述指针的存储器访问。
10.如权利要求1所述的装置,其中,所述预抓取电路包括指针识别电路,该指针识别电路通过检测从所述描述符环读取的、具有一个或多个预定指针特性的候选指针数据来识别所述指针。
11.如权利要求10所述的装置,其中,所述一个或多个预定指针特性是所述候选指针数据内的、与对应于有效存储器地址的一个或多个预定值相匹配的一个或多个字段。
12.如权利要求11所述的装置,其中,所述一个或多个预定值为:
所述候选指针数据的预定长度的最高有效位部分是全零或者全一。
13.如权利要求1所述的装置,其中,所述预抓取电路包括指针识别电路,该指针识别电路通过检测从所述描述符环内与针对先前读取的指针的访问模式相匹配的一个或多个存储位置中读取的候选指针数据来识别所述指针。
14.如权利要求13所述的装置,其中,与所述访问模式相匹配包括:来自所述描述符环内被识别为先前已经存储过指针的候选地址的读取。
15.如权利要求14所述的装置,其中,所述指针识别电路包括内容可寻址存储器,该内容可寻址存储器在环缓冲器内存储先前指针地址,指针已经从所述环缓冲器被读取,并且所述候选地址通过使用所述内容可寻址存储器来与所述先前指针地址进行比较。
16.如权利要求13所述的装置,其中,与所述访问模式相匹配包括:来自所述描述符环内具有相对于先前读取的指针的偏移的候选地址的读取,所述偏移与所检测到的用于指针访问的跨步模式相匹配。
17.一种装置,包括:
描述符环装置,该描述符环装置用于存储到存储器位置的指针;以及
预抓取装置,该预抓取装置用于检测从所述描述符环读取的指针并且预抓取针对与所述指针相对应的存储器地址的地址转换数据。
18.一种方法,包括以下步骤:
在描述符环内存储到存储器位置的指针;
检测从所述描述符环读取的指针;以及
预抓取针对与所述指针相对应的存储器地址的地址转换数据。
CN201510590733.XA 2014-09-23 2015-09-16 用于数据处理的装置及方法 Active CN105446898B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/494,000 2014-09-23
US14/494,000 US9697136B2 (en) 2014-09-23 2014-09-23 Descriptor ring management

Publications (2)

Publication Number Publication Date
CN105446898A true CN105446898A (zh) 2016-03-30
CN105446898B CN105446898B (zh) 2021-03-19

Family

ID=54106485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510590733.XA Active CN105446898B (zh) 2014-09-23 2015-09-16 用于数据处理的装置及方法

Country Status (4)

Country Link
US (1) US9697136B2 (zh)
KR (1) KR102478766B1 (zh)
CN (1) CN105446898B (zh)
GB (1) GB2531395B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111699506A (zh) * 2018-04-23 2020-09-22 华为技术有限公司 指令处理
CN113835891A (zh) * 2021-09-24 2021-12-24 哲库科技(北京)有限公司 资源分配方法、装置、电子设备及计算机可读存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277477B2 (en) * 2015-09-25 2019-04-30 Vmware, Inc. Load response performance counters
US10353629B2 (en) * 2017-09-19 2019-07-16 Arm Limited Handling in-order and out-of-order ring buffer updates
US10585689B1 (en) * 2017-12-20 2020-03-10 Cisco Technology, Inc. Shared memory interface for application processes
US10705762B2 (en) * 2018-08-30 2020-07-07 Micron Technology, Inc. Forward caching application programming interface systems and methods

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
US20090063793A1 (en) * 2006-04-17 2009-03-05 Hitachi, Ltd. Storage system, data management apparatus and management allocation method thereof
US20100088328A1 (en) * 2008-10-06 2010-04-08 Vmware, Inc. Namespace mapping to central storage
CN102065568A (zh) * 2009-11-17 2011-05-18 中国科学院微电子研究所 基于数据描述符的mac软硬件交互方法及其硬件实现装置
CN103634230A (zh) * 2013-11-29 2014-03-12 华中科技大学 一种基于动态预测的网络驱动层数据包接收方法和系统
US8972630B1 (en) * 2013-09-25 2015-03-03 Netronome Systems, Incorporated Transactional memory that supports a put with low priority ring command

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822788A (en) 1996-12-20 1998-10-13 Intel Corporation Mechanism for prefetching targets of memory de-reference operations in a high-performance processor
US6965962B2 (en) 2002-12-17 2005-11-15 Intel Corporation Method and system to overlap pointer load cache misses
US8024547B2 (en) * 2007-05-01 2011-09-20 Vivante Corporation Virtual memory translation with pre-fetch prediction
US8161265B2 (en) 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for multi-level indirect data prefetching
JP5287301B2 (ja) * 2009-01-30 2013-09-11 富士通株式会社 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
US20090063793A1 (en) * 2006-04-17 2009-03-05 Hitachi, Ltd. Storage system, data management apparatus and management allocation method thereof
US20100088328A1 (en) * 2008-10-06 2010-04-08 Vmware, Inc. Namespace mapping to central storage
CN102065568A (zh) * 2009-11-17 2011-05-18 中国科学院微电子研究所 基于数据描述符的mac软硬件交互方法及其硬件实现装置
US8972630B1 (en) * 2013-09-25 2015-03-03 Netronome Systems, Incorporated Transactional memory that supports a put with low priority ring command
CN103634230A (zh) * 2013-11-29 2014-03-12 华中科技大学 一种基于动态预测的网络驱动层数据包接收方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111699506A (zh) * 2018-04-23 2020-09-22 华为技术有限公司 指令处理
CN111699506B (zh) * 2018-04-23 2023-09-01 华为技术有限公司 指令处理
CN113835891A (zh) * 2021-09-24 2021-12-24 哲库科技(北京)有限公司 资源分配方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
US20160085669A1 (en) 2016-03-24
US9697136B2 (en) 2017-07-04
GB2531395B (en) 2016-08-03
KR20160035545A (ko) 2016-03-31
CN105446898B (zh) 2021-03-19
GB201512975D0 (en) 2015-09-09
KR102478766B1 (ko) 2022-12-19
GB2531395A (en) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105446898A (zh) 描述符环管理
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
US9141556B2 (en) System translation look-aside buffer with request-based allocation and prefetching
JP6273733B2 (ja) 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
JP2017516228A (ja) 自己書き換えコードのハードウェアサポートを提供する方法及び装置
US20140115297A1 (en) Detection of conflicts between transactions and page shootdowns
CN107818053B (zh) 用于存取高速缓存的方法与装置
US11775445B2 (en) Translation support for a virtual cache
US20110264887A1 (en) Preload instruction control
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US10545879B2 (en) Apparatus and method for handling access requests
CN104636203A (zh) 用于通过较少位来表示处理器上下文的方法和装置
CN112631961A (zh) 一种内存管理单元、地址转译方法以及处理器
CN104239237A (zh) 一种tlb管理方法及装置
US8195889B2 (en) Hybrid region CAM for region prefetcher and methods thereof
JP2020523678A (ja) 論理ディレクトリを使用したキャッシュ構造
CN111367831A (zh) 翻译页表的深度预取方法、部件、微处理器及计算机设备
Haque et al. Dew: A fast level 1 cache simulation approach for embedded processors with fifo replacement policy
CN108959125B (zh) 一种支持数据快速获取的存储访问方法和装置
CN115269454A (zh) 数据访问方法、电子设备和存储介质
CN108874691B (zh) 数据预取方法和内存控制器
CN108874690B (zh) 数据预取的实现方法和处理器
JP2008009857A (ja) キャッシュ制御回路およびプロセッサシステム
US11474953B2 (en) Configuration cache for the ARM SMMUv3

Legal Events

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