描述符环管理的制作方法

文档序号:9687360阅读:594来源:国知局
描述符环管理的制作方法【
技术领域
】[0001]本公开涉及数据处理系统的领域。更具体地,本公开涉及包括描述符环(descriptorring)的数据处理系统,该描述符环用于存储指向存储器位置的指针。【
背景技术
】[0002]已知可提供一种数据处理系统,其包括描述符环来存储指向存储器位置的指针。这样的描述符环的一种使用是用在包括一个或多个通用可编程处理器的系统内,其在描述符环内存储指针数据以使得指针数据能够由一个或多个设备从描述符环中读取并被用于标识要由该一个或多个设备使用的缓冲器存储器中的区域。与这样的系统相关联的存储器寻址需要取决于地址转换数据的地址转换,以使得一个或多个设备使用来自描述符环的指针进行的存储器访问能够被执行。转换数据可使用诸如页表遍历(pagetablewalking)之类的机制来确定,这种机制需要执行相对较大数目的处理周期,从而至少在从描述符环读取的指针的首次使用时即引入延迟。【
发明内容】[0003]从一个方面来看,本公开提供了存储指向存储器位置的指针的描述符环;以及预抓取电路,该预抓取电路检测从所述描述符环读取的指针并预抓取针对与所述指针相对应的存储器地址的地址转换数据。[0004]本公开认识到:当指针被设备从描述符环中读取时,那么有可能很快将存在对于由该指针所标识的区域内的存储器地址的存储器访问。从而,检测来自描述符环的指针的读取并然后触发对针对与该指针相对应的存储器地址的地址转换数据的预抓取,有助于减少与指针的至少首次使用相关联的延迟,该指针的首次使用需要获得针对该指针的地址转换数据。[0005]从另一方面看,本公开提供了用于存储指向存储器位置的指针的描述符环装置;以及预抓取装置,该预抓取装置用于检测从所述描述符环读取的指针并且用于预抓取针对与所述指针相对应的存储器地址的地址转换数据。[0006]从又一方面看,本公开提供了:在描述符环内存储指向存储器位置的指针;检测从所述描述符环读取的指针;以及预抓取针对与所述指针相对应的存储器地址的地址转换数据。[0007]本公开的上述方面以及其他目的、特征和优点将从结合附图阅读的示例实施例的以下详细说明中变得清楚。【附图说明】[0008]图1示意性地示出了包括多个通用处理器、系统存储器管理单元和多个设备的数据处理系统,该多个设备使用系统存储器管理单元来访问存储器系统;[0009]图2示意性地示出了使用描述符环将指针存储到存储器内的缓冲器;[0010]图3示意性地示出了系统存储器管理单元的一部分;[0011]图4示意性地示出了通过识别到描述符环的访问模式来识别指针;以及[0012]图5是示意性地示出了针对检测到的指针的转换数据的预抓取的流程图。【具体实施方式】[0013]图1示意性地示出了数据处理系统2,其包括多个通用处理器4、6,其各自具有第一级数据缓存8、第一级指令缓存10和转换后备缓冲器12,该转换后备缓冲器12用于从由通用处理器4、6生成的虚拟地址转换为用于对第二级缓存14和主存储器16进行寻址的物理地址。[0014]系统存储器管理单元18被连接至主存储器16被用作管理由多个设备20、22对主存储器16的访问。这些设备例如可包括:DMA引擎、NIC设备、另一通用处理器(CPU)、图形处理单元(GPU)或自己可直接访问主存储器而非通过通用处理器4、6来访问的其他设备。[0015]主存储器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的通信的信道。[0016]设备20、22可使用虚拟寻址,从而系统存储器管理单元18包括转换后备缓冲器30,该转换后备缓冲器30用于将由设备20、22生成的虚拟地址转换成对主存储器16进行寻址所需的物理地址。当转换后备缓冲器30内针对需要转换的虚拟地址发生未命中(miss)时,使用经由页表遍历从页表数据28中推导出的地址转换数据对转换后备缓冲器30进行配置。系统存储器管理单元18还能够存储和施行访问许可,如在页表数据28中针对存储器的不同区域所规定的那样。[0017]图2示意性地示出了描述符环24和缓冲器26之间的示例关系。描述符环24是存储器中存储多个指针32的区域,该多个指针指向存储器16内的缓冲器26的相应起始位置。每个指针还可与相关联的指针所指向的缓冲器的状态数据相关联。指针数据由通用处理器4、6写入至环缓冲器24。指针数据由设备20、22从环缓冲器24中读取。与每个指针相关联的状态数据由设备20、22进行写/更新。[0018]描述符环24自身能够由可编程起始位置和可编程结束位置来表征,该可编程起始位置和可编程结束位置可在通用处理器4、6的软件控制下进行设置并随后被用于标识来自描述符环24的读取,因为这些读取将来自介于起始位置和结束位置之间的范围中的地址。对描述符环24进行规定的可编程数据的另一形式是使用页表数据28内针对将用作描述符环24的一个或多个存储器区域的字段,即形成描述符环24的(一个或多个)存储器区域可在页表数据28内被这样的标记。可通过指针的使用来辅助对描述符环24内的条目的管理,指针被维护以便指向描述符环24内要由(一个或多个)活动设备20、22使用的下一新条目位置。与描述符环24相关联的最后的条目指针可被用于向设备20、22指示它们要使用的下一指针能够在哪里被找到。[0019]图3示意性地示出了系统存储器管理单元18的一部分。这包括用来存储地址转换数据34的多个实例的系统存储器管理单元转换后备缓冲器30。当从设备20、22中的一个设备接收到虚拟地址时,将该虚拟地址与这些地址转换数据条目进行匹配,并且如果发生命中(hit),则命中的地址转换数据条目被用于生成合适的物理地址,该物理地址然后被转发至主存储器16。如果虚拟地址在转换后备缓冲器30内未命中,则页表遍历电路36用来发起在整个页表数据28中进行页表遍历处理以确定要被存储在转换后备缓冲器30内的合适地址转换数据。如果必要的话,转换后备缓冲器30内的一个现有条目将被驱逐,从而容纳新抓取的地址转换数据。转换后备缓冲器30的这样的动作将与本
技术领域
中的那些动作类似。[0020]预抓取电路38用来监听(snoop)从存储器16读取的数据、主存储器16内被访问的存储器位置的物理地址、以及这些访问是读还是写。此监听到的信息被预抓取电路38用于检测从描述符环24读取的指针并用于在这样的地址转换数据不存在于转换后备缓冲器30内时,触发对针对与从描述符环24读取的指针相对应的存储器地址的地址转换的预抓取。更具体地,预抓取电路38包括环识别电路40和指针识别电路42。[0021]环识别电路40用来根据用于读操作的物理地址识当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1