具有地址转换探测的处理装置和方法

文档序号:9221636阅读:256来源:国知局
具有地址转换探测的处理装置和方法【专利说明】具有地址转换探测的处理装置和方法[0001]相关申请交叉引用[0002]本申请主张2012年12月21日提交的美国申请号为13/723,379的权益,所述申请的内容以引用的方式并入本文。[0003]领域[0004]本公开大体上针对数据处理装置,所述装置包括采用与存储器页表的地址转换有关的转换后备缓冲器(TLB)。[0005]背景[0006]在数据处理的领域中,虚拟寻址的使用是众所周知的。通常,提供页表来利用与虚拟地址相关联的数据的对应物理存储器位置来维护虚拟地址列表,即:地址转换。从虚拟地址的页表列表中获取存储数据的物理存储器地址的过程被称为页表查询(pagetablewalk)ο[0007]通常使用4Kb和8Kb的虚拟页,但是可以使用更大的尺寸,如2Mb或4Mb或更大。与处理器的操作速度相比,页表查询可花费大量的时间。为了避免进行页表查询来获取对应于虚拟地址的存储数据的每一个物理地址(即:每一个转换),使用转换后备缓冲器(TLB)来存储处理器使用或可能使用的地址转换。[0008]通常,处理器会首先在与存储器页表相关联的TLB中寻找所需的地址转换。如果找到所需的地址转换,那么不需要查询页表。如果没找到所需的地址转换,那么查询页表来找出地址转换。在某些情况下,将可以服务不同功能的多级TLB设置在处理器与页表之间,以便处理器将下降穿过若干级别的层次结构而寻找所需的转换,并且只在下降穿过TLB的层次结构中没有发现所需的转换时执行页表查询。[0009]一般会在任何类型的数据处理器中采用页表和TLB,任何类型的数据处理器包括但不限于:中央处理单元(CPU)、图形处理单元(GPU)和加速处理单元(APU)。[0010]示例性实施方案概述[0011]提供一种数据处理装置,所述装置采用与各自的处理器相关联的多个转换后备缓冲器(TLB),TLB被配置来存储由处理器共用的存储器页表的选择地址转换。配置处理装置,使得当处理器请求地址转换而在与这个处理器相关联的TLB中没找到地址转换时,针对请求的地址转换探测另一TLB。针对另一TLB的探测可以发生在用于请求的地址的页表的查询之前,或者页表查询可以与探测同时开始。在探测成功找到请求的地址转换的情况下,可以避免或停止页表查询。[0012]在一个实施方案中,数据处理装置包括第一和第二处理单元以及共用存储器的页表。第一转换后备缓冲器(TLB)层次结构被配置来存储由第一处理单元使用的页表的选择地址转换。第二TLB层次结构被配置来存储由第二处理单元使用的页表的选择地址转换。处理装置被配置来在出现一种状况时针对由第一处理单元请求的地址转换探测第二TLB层次结构,所述状况为在第一TLB层次结构中没找到请求的地址转换。[0013]这种数据处理装置可以被配置来在出现一种状况时针对请求的地址转换进行页表的查询,所述状况为在第二TLB层次结构中没找到请求的地址转换。或者,数据处理装置可以被配置来在第二TLB层次结构的探测的同时针对请求的地址转换开始页表的查询。[0014]在一些实施方案中,数据处理装置也被配置来在出现一种状况时针对由第二处理单元请求的地址转换探测第一TLB层次结构,所述状况为在第二TLB层次结构中没找到由第二处理单元请求的地址转换。在这种情况下,数据处理装置可以被配置来在出现一种状况时针对由第二处理单元请求的地址转换进行页表的查询,所述状况为在第一TLB层次结构的探测中没找到由第二处理单元请求的地址转换。或者,数据处理装置可以被配置来在第一TLB层次结构的探测的同时针对由第二处理单元请求的地址转换开始页表的查询。[0015]例如,处理单元可以是相同的或不同的类型,如中央处理单元(CPU)、图形处理单元(GPU)或加速处理单元(APU)或它们的一些组合。第一或第二处理单元中的任一个或第一或第二处理单元两者,可以是分别与各自的TLB层次结构相关联的多个第一或第二处理单元中的一个。[0016]在一个实例中,所有的第一处理单元都是CPU,并且第一TLB层次结构包括单独的一级TLB,所述单独的一级TLB与每一个CPU相关联以存储由这个CPU使用的页表的选择地址转换;和与一级TLB相关联的二级TLB。在这个实例中,处理装置被配置来不成功地搜寻与第一处理单元相关联的一级TLB和二级TLB以便找到由第一处理单元请求的地址转换,并将其作为针对由第一处理单元请求的地址转换探测第二TLB层次结构的状况。[0017]在另一个实例中,所有的第一处理单元都是GPU,并且第一TLB层次结构包括单一TLB,所述单一TLB与所有的GPU相关联以存储由GPU使用的页表的选择地址转换。在这个实例中,处理装置被配置来不成功地搜寻单一TLB以便找到由第一处理单元请求的地址转换,并将其作为针对由第一处理单元请求的地址转换探测第二TLB层次结构的条件。[0018]数据处理装置可以具有多个包括第二处理单元的多个第二处理单元,其中第二TLB层次结构包括单独一级TLB,所述单独一级TLB与多个第二处理单元中的每一个相关联以存储由这个第二处理单元使用的页表的选择地址转换;和与一级TLB相关联的二级TLB。在这种情况下,处理装置被配置来通过搜寻与选择的第二处理单元相关联的一级TLB和二级TLB,来针对由第一处理单元请求的地址转换来探测第二TLB层次结构,以便找到由第一处理单元请求的地址转换。[0019]在另一个实施方案中,数据处理装置包括第一转换后备缓冲器(TLB),其被配置来存储由第一处理单元使用的页表的选择地址转换;以及第二TLB,其被配置来存储由第二处理单元使用的页表的选择地址转换。处理装置被配置来在出现一种状况时针对由第一处理单元请求的地址转换探测第二TLB,所述状况为在第一TLB中没找到请求的地址转换。[0020]这种数据处理装置可以包括二级TLB,其中第一和第二TLB包括被配置来存储由第一和第二处理单元使用的页表的选择地址转换的TLB层次结构的第一级,并且二级TLB包括TLB层次结构的第二级。在这种情况下,数据处理装置可以被配置来在出现一种状况时针对请求的地址转换进行页表的查询,所述状况为在第二TLB或二级TLB的探测中没找到请求的地址转换。作为一个替代实施方案,数据处理装置可以被配置来在出现一种状况时在第二TLB的探测的同时针对请求的地址转换开始页表的查询,所述状况为在二级TLB中没找到请求的地址转换。[0021]也提供了对应于示例实施方案和替代实施方案的方法。[0022]另外,另一实施方案提供存储指今集的非暂态计算机可读存储介质,所述指令集由通用计算机执行以便促进选择性设计的集成电路的制造。非暂态计算机可读存储介质包括指令,所述指今是用于包括实施方案的一个或多个方面的装置的制造的硬件描述语言(HDL)指令。[0023]这种集成电路可以包括第一TLB层次结构,其被配置来存储由第一处理单元使用的页表的选择地址转换;和第二TLB层次结构,其被配置来存储由第二处理单元使用的页表的选择地址转换。在这种情况下,集成电路被配置来在出现一种状况时针对由第一处理单元请求的地址转换探测第二TLB层次结构,所述状况为在第一TLB层次结构中没找到请求的地址转换。[0024]作为一个替代实施方案,集成电路可以包括第一转换后备缓冲器(TLB),其被配置来存储由第一处理单元使用的页表的选择地址转换;和第二TLB,其被配置来存储由第二处理单元使用的页表的选择地址转换。在这种情况下,集成电路被配置来在出现一种状况时针对由第一处理单元请求的地址转换探测第二TLB,所述状况为在第一TLB中没找到请求的地址转换。[0025]附图简述[0026]可以从结合附图以举例方式给出的以下描述中获得更加详细的理解。[0027]图1为可以实施一个或多个公开的实施方案的处理装置的框图。[0028]图2为可以实施一个或多个公开的实施方案的另一处理装置的框图。[0029]图3为可以实施一个或多个公开的实施方案的又一处理装置的框图。[0030]详述[0031]今天,数据处理装置无处不在并且合并成大量的不同类型的产品。通常,处理器被配置来利用转换后备缓冲器(TLB)以便避免每一次处理器请求存储在页表上的地址转换时都要查询页表当前第1页1 2 3 4 5 
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1