程序存储器控制器中页面窗口的本地页面转换和许可存储的制作方法
【技术领域】
[0001] 该发明的技术领域为数字数据处理,并更具体地为程序存储器控制器中的存储器 页面转换和许可存储。
【背景技术】
[0002] 在支持虚拟存储器的处理器中,必须将CPU提供的虚拟地址转换为物理地址。这通 常由存储器管理单元(丽U)完成。MMU通常使用yTLB(微转换后备缓冲器)作为存储在MMU中 的页面转换条目的高速缓存。由CPU请求的每个虚拟地址需要被yTLB/MMU转换为物理地址, 以用于存储器访问。这通常在页面边界上执行。
[0003] 虚拟地址到物理地址转换发生在页面边界处(4K页面尺寸的最低粒度)。如果待转 换的访问地址为yTLB中的命中,则转换发生在单个周期中。但是如果访问地址为iiTLB中的 未命中,则必须从MMU请求该页面的转换数据。该转换数据获取可发生几十到几百个周期, 这取决于MMU中的页面转换和页表遍历延迟。
[0004] MMU/VTLB通常还提供转换的许可信息。由于对于L1I命中,许可信息需要用于服务 请求,因此该许可信息存储在L1I高速缓存中。
[0005] 如果通过yTLB查询每个虚拟地址,并且如果能够通过MMU使yTLB条目无效,那么将 很可能存在长的yTLB未命中延迟。如果在SRAM存储器中实施yTLB,则这也将导致增大的动 态功率消耗。
【发明内容】
[0006] 该发明提供当前页面转换寄存器,其存储当前页面的虚拟到物理地址转换数据以 及可选地访问相同页面的许可数据,以用于程序访问。如果访问地址在当前页面内,则从当 前页面转换寄存器访问地址转换和许可数据。该当前页面转换寄存器提供典型的转换后备 缓冲器和微转换后备缓冲器之上的该数据的高速缓存的附加级别。较小尺寸的当前页面转 换寄存器使用比典型体系结构更少的功率提供较快的页面命中/未命中确定以及较快的数 据访问。这有助于程序访问,其通常比数据访问更频繁地命中当前页面。
【附图说明】
[0007] 将在附图中示出该发明的这些和其他方面,其中:
[0008] 图1示出根据该发明的一个实施例的单核标量处理器;
[0009] 图2示出根据该发明的另一个实施例的双核标量处理器;
[0010] 图3示出根据该发明的另一个实施例的单核矢量处理器;
[0011] 图4示出根据该发明的另一个实施例的双核矢量处理器;
[0012 ]图5示出该发明的CPU的一个实施例的结构;
[0013]图6不出全局标量寄存器文件;
[0014]图7示出全局矢量寄存器文件;
[0015] 图8示出由乘法和相关功能单元共享的局部矢量寄存器文件;
[0016] 图9示出加载/存储单元的局部寄存器文件;
[0017] 图10示出断言寄存器文件;
[0018]图11示出根据该发明的一个优选实施例的中央处理单元的流水线时期(pipeline phase);
[0019] 图12示出单个获取分组的十六个指令;
[0020] 图13示出该发明使用的指令的指令编码的示例;
[0021]图14示出根据该发明的SIMD操作的进位控制;
[0022]图15示出该发明的主要部分的关系;以及 [0023]图16示意性示出该发明的虚拟到物理地址转换。
【具体实施方式】
[0024]图1示出根据该发明的一个实施例的单核标量处理器。单核处理器100包括标量中 央处理单元(0卩1])110,其耦合到分离的一级指令高速缓存(111)111和一级数据高速缓存 (L1D)112。中央处理单元核110可如本领域中已知的那样构造并且将通常包括寄存器文件、 整数算术逻辑单元、整数乘法器和程序流控制单元。单核处理器100包括二级组合指令/数 据高速缓存(L2)113,其容纳指令和数据。在优选实施例中,标量中央处理单元(CPU)llO、一 级指令高速缓存(L1I) 111、一级数据高速缓存(L1D) 112和二级组合指令/数据高速缓存 (L2)113在单个集成电路上形成。
[0025]在一个优选实施例中,该单个集成电路还包括辅助电路,诸如功率控制电路121、 仿真/跟踪电路122、测试设计(DST)可编程内建自测(PBIST)电路123和时钟电路124。在CPU 110外部并且可能在单个集成电路110上集成的是存储器控制器131。
[0026] CPU 110在程序控制下操作以针对定义数据执行数据处理操作。程序控制CPU 110 包括必须在解码和执行之前获取的多个指令。单核处理器100包括若干高速缓存存储器。图 1示出一对第一级高速缓存。一级指令高速缓存(L1I) 111存储由CPU 110使用的指令。CPU 110首先尝试从一级指令高速缓存121访问任何指令。一级数据高速缓存(L1D)112存储由 CPU 110使用的数据。CPU 110首先尝试从一级数据高速缓存112访问任何所需数据。两个一 级高速缓存(L1I 111和L1D 112)由二级统一高速缓存(L2)113支持。在一级指令高速缓存 111或一级数据高速缓存112的高速缓存未命中的事件中,从二级统一高速缓存113寻找所 请求的指令或数据。如果所请求的指令或数据存储在二级统一高速缓存113中,那么其被供 应到请求方一级高速缓存,以供应到中央处理单元核110。如本领域中已知,可同时将请求 的指令或数据供应到请求方高速缓存和CPU 110以加快使用速度。
[0027]二级统一高速缓存113经由存储器控制器131进一步耦合到更高级别的存储器系 统。存储器控制器131通过访问外部存储器(图1中未示出)处理二级统一高速缓存113中的 高速缓存未命中。存储器控制器131处理所有的存储器中心功能,诸如高速缓存能力确定、 误差检测和校正、地址转换等等。单核处理器100可为多处理器系统的一部分。在该情况下, 存储器控制器131处理在处理器之间的数据转移并维持处理器当中的高速缓存一致性。 [0028]图2示出根据该发明的另一个实施例的双核处理器。双核处理器200包括第一 CPU 210,其耦合到分离的一级指令高速缓存(L1I)211和一级数据高速缓存(L1D)212,以及包括 第二CPU 220,其耦合到分离的一级指令高速缓存(L1I)221和一级数据高速缓存(L1D)212。 中央处理单元210和220优选地以类似于图1中示出的CPU 110的方式构造。双核处理器200 包括单个共享的二级组合指令/数据高速缓存(L2)231,其支持所有四个一级高速缓存(L1I 211、L1D 212、L1I 221和L1D 222)。在优选实施例中,CPU 210、一级指令高速缓存(L1I) 211、一级数据高速缓存(L1D)212、CPU 220、一级指令高速缓存(L1I)221、一级数据高速缓 存(L1D)222和二级组合指令/数据高速缓存(L2)231在单个集成电路上形成。该单个集成电 路优选地还包括辅助电路,诸如功率率控制电路245、仿真/跟踪电路116、测试设计(DST)可 编程内建自测(PBIST)电路117和时钟电路118。该单个集成电路还可包括存储器控制器 251〇
[0029] 图3和图4示出类似于图1和图2中分别示出的单核和双核处理器的单核和双核处 理器。图3和图4与图1和图2的不同在于示出矢量中央处理单元。如下面进一步描述,单核矢 量处理器300包括矢量CPU 310。双核矢量处理器400包括两个矢量CPU 410和420。矢量CPU 310、410和420包括比相应标量CPU 110、210和220更宽的数据路径操作单元和更宽的数据 寄存器。
[0030] 矢量CPU 310、410和420与相应标量CPU 110、210和220的进一步不同在于包括流 引擎313(图3)和流引擎413和423(图5)。流引擎313、413和423类似。流引擎313将数据从二 级统一高速缓存313(L2)传输到矢量CPU 310。流引擎413将数据从二级统一高速缓存413传 输到矢量CPU 410。流引擎423将数据从二级统一高速缓存431传输到矢量CPU 420。根据优 选实施例,每个流引擎313、413和423管理多达两个数据流。
[0031]每个流引擎313、413和423在某些限制条件下传输数据。流包括特定类型的元素序 列。在流上操作的程序顺序地读取数据,依次在每个