CN1160631C - 改进虚拟存储器系统中存储器访问的技术 - Google Patents

改进虚拟存储器系统中存储器访问的技术 Download PDF

Info

Publication number
CN1160631C
CN1160631C CNB00805780XA CN00805780A CN1160631C CN 1160631 C CN1160631 C CN 1160631C CN B00805780X A CNB00805780X A CN B00805780XA CN 00805780 A CN00805780 A CN 00805780A CN 1160631 C CN1160631 C CN 1160631C
Authority
CN
China
Prior art keywords
memory
tlb
cache
processor
leaf
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.)
Expired - Lifetime
Application number
CNB00805780XA
Other languages
English (en)
Other versions
CN1352772A (zh
Inventor
H��˹�����Ʒ�˹��
H·斯特拉科夫斯基
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1352772A publication Critical patent/CN1352772A/zh
Application granted granted Critical
Publication of CN1160631C publication Critical patent/CN1160631C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0893Caches characterised by their organisation or structure
    • 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/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

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

根据本发明,公开了为减少存储器访问等待时间的方法和装置。当对转换查阅表(110)产生一个新的条目时,该新TLB条目指向存储器(108)的一个相应的TLB页。与更新TLB并行,该TLB页通过在TLB页超高速缓冲存储器(114)中存储该TLB页而临时移动到更接近处理器(102)。TLB页超高速缓冲存储器(114)比主存储器(108)临时更接近处理器。

Description

改进虚拟存储器系统中存储器访问的技术
发明领域
本发明一般涉及计算系统。具体说,本发明涉及存储器管理系统,更特别说,涉及通过使用在使用虚拟存储器寻址的计算机存储器系统中的一个转换查阅缓冲器以减少与由处理器访问存储器页相关的等待时间的方法和装置。
发明背景
虚拟存储器系统是允许寻址非常大容量存储器的系统,即使系统的主存储器包含较小的地址空间。虚拟存储器系统通过定义存储器管理单元来提供这一能力,尤其是,页或段,有虚拟存储器地址和相应的物理存储器地址。一个特别的虚拟存储器地址可以在主存储器内或在较慢的替补存储器内,例如磁盘空间。如果一个虚拟地址映射到的数据的物理地址是主存储器,则信息很容易被访问和利用。如果物理地址表明对应虚拟地址的页位于替补存储器,则该页被传输或交换到主存储器里,在主存储器中可以访问数据。传输一般需要其它信息从主存储器交换出去回到替补存储器为新信息腾出空位。这一传输一般在作为硬件或软件的存储器管理单元的控制下执行。
为了增加虚拟存储器访问的速度,也包含超高速缓冲存储器以存储最近使用的数据和指令。在为请求的信息访问主存储器之前首先访问这些超高速缓冲存储器。这些超高速缓冲存储器可以虚拟寻址或者物理寻址。然而,根据物理地址访问的超高速缓冲存储器需要在检查超高速缓冲存储器和主存储器之前进行虚拟对物理访问转换的处理。
页处理,亦即交换页的处理,依赖由存储器页索引的数据结构。这一数据结构包含根据提供的虚拟地址要访问的存储器的物理地址。包含物理页地址的这一数据结构通常采取由虚拟页号、表的大小、页号和虚拟存储器空间索引的页表的形式。页表通常这样大,使得它们被存储在主存储器中并经常将它们自己分页。这意味着,只要是需要一次存储器访问来获取物理地址和需要再一次访问来获取数据时,则每一次存储器访问至少要一次或多次。
用于使访问时间成本最小的一种技术是保存最后执行的转换,以便如果当前地址与前一个地址指向同一页时跳过映射处理。另外,为了节省附加的时间,利用为超高速缓冲存储器使用的位置原理带来的益处。如果该引用具有位置,则用于这些引用的地址转换也必须有位置。通过把这些地址转换保存在一个特殊的超高速缓冲存储器中,存储器访问很少需要第二次访问来转换地址。这一特殊的地址转换超高速缓冲存储器称为转换查阅缓冲器或“TLB”(translation look asidebuffer)。一个TLB条目像超高速缓冲存储器条目,其中标签部分保持虚拟地址部分,而数据部分保持物理页帧号、保护字段、使用位和修改或脏位。图1表示一个典型的TLB数据结构100的一个例子。
为增加访问虚拟存储器的速度可以使用一些不同的方法和技术。在一种方法中,使用较重的流水线存储器访问,其中在流水线的前面一个步骤执行TLB访问。另一个方法是直接匹配虚拟地址。这样的超高速缓冲存储器称为虚拟超高速缓冲存储器。这从超高速缓冲存储器命中访问的场合消除了TLB的转换时间。然而,不幸的是,一个缺点是处理要耗费很长的时间,并需要为每一个虚拟地址执行而不管地址位置。
应该注意,关于TLB的另外的讨论可以在David A.Patterson和John L.Hennessey著Computer Architecture,A QualitativeApproach Second Edition,(Morgan Kaufmann出版社)中第439-第457页找到。
考虑到前述内容,显然,希望有为在虚拟存储器环境中减少存储器访问等待时间的方法和装置。
发明概要
根据本发明,公开了一种在基于虚拟存储器的系统中减少存储器访问等待时间的方法。
根据本发明的一个方面,公开了一种在基于虚拟存储器的系统中减少存储器访问等待时间的装置,该装置包括:
一个处理器,用于执行可执行的指令;
一个主存储器,包括存储器阵列和读出放大器,并连接到该处理器,用于存储由该处理器执行的可执行指令,所述读出放大器用于接收来自所述存储器阵列的数据行;
一个超高速缓冲存储器,连接到该处理器和该主存储器,用于存储最近使用过的指令的一个子集,其中该超高速缓冲存储器比该主存储器在时间上更接近该处理器;
一个安排用以存储一个TLB页的TLB页超高速缓冲存储器,其中在所述处理器的指导之下,通过将对应于一个新TLB条目的一个新TLB页从主存储器移动到该TLB页超高速缓冲存储器而使该新TLB页移动到在时间上更接近该处理器,其中该TLB页超高速缓冲存储器比该主存储器更接近该处理器,并且其中在该TLB页超高速缓冲存储器中的一个TLB页超高速缓冲存储器条目指向一个相关的TLB页;其中该相关的TLB页分布于所述读出放大器。
附图的简要描述
本发明通过附图中的例子说明,而并不加以限制,附图中的参考号码指的是类似的元素。
图1表示常规安排的TLB数据结构。
图2表示一个根据本发明的一个实施例的基于虚拟存储器的计算机系统,它具有一个分布式TLB寄存器。
图3表示根据本发明的一个实施例的层次式存储器安排。
图4表示一个根据本发明的一个实施例的计算机系统,其中,一个TLB页被分布在一个DRAM存储器设备的阵列中。
图5表示基于图4所示计算机系统的一个示例地址映射模式。
图6表示一个计算机系统,其中,图4所示DRAM存储器设备阵列包括快速静态缓冲器。
图7表示根据本发明的一个实施例的计算机系统,它具有在存储器控制器中的一个TLB缓冲器,其通过高速数据互连连接到一个存储器阵列。
图8是一个流程图,详细说明根据本发明的一个实施例用于减少基于虚拟存储器的系统的存储器访问等待时间的过程。
较佳实施例的详细描述
现在详细参考本发明的一个优选实施例。该优选实施例的一个例子在附图中表示。虽然本发明结合优选实施例说明,但是应该理解,但其并不意欲限制本发明到一个优选实施例。相反,其目的是覆盖可以包括在由所附权利要求限定的本发明的精神和范围内的替换、修改和等价物。
为了减少在使用虚拟存储器寻址方案的计算机系统中的存储器等待时间,使用也称为TLB的转换查阅缓冲器来标识最近一组虚拟存储器地址到物理存储器地址的转换。在所说明的实施例中,计算机系统包括一个连接到主存储器和一个超高速缓冲存储器的处理器(具有一个相关的TLB)。通常,使用超高速缓冲存储器来存储先前从主存储器(诸如动态随机存取存储器,DRAM)获取的最近使用的存储器地址和相关的数据。通过在TLB中存储最近的虚拟存储器到物理存储器的转换(一般采取查找表的形式或LUT),对于存储在TLB中的这些转换而转换一个虚拟存储器地址到一个物理存储器地址所需要的时间减少为一次简单的表查阅操作。
因为在任何给定时刻处理器不能访问比在它的相关的TLB中说明的更多的物理存储器,因此,引起一次失中(亦即未发现被包含在该处理器的TLB中)的任何存储器页与实际更新TLB相并行地被移动到临时更接近处理器的更快的存储器(诸如L1或L2超高速缓冲存储器)。应该注意,通过更新TLB,意味着,因为TLB是频繁使用的页的超高速缓冲存储器,因此任何被决定为未由任一数目和类型的算法(例如一种随机算法)频繁使用的页被从TLB中清除或清空,为其虚拟存储器对物理存储器转换判定不在TLB中的存储器页腾出空间。
当跟踪处理器TLB时,进行一次备份复制,并保存在一个相关的存储器控制器中。在更换一个特定的TLB条目的时候,存储器控制器起动一个由该新TLB条目指向的相关的页(或其一部分)进入时间上更接近处理器的存储器层次的一段中。时间上更接近指的是为该特定存储器页或其一部分的存储器访问等待时间减少从而改善总的存储器访问时间。在一些实现中,由新TLB条目指向的整个存储器页(或块)移动到时间上更接近处理器,而在另一些实现中,只有相应于引起TLB条目自身改变的地址的一小部分被移动。传输到更接近处理器的存储器层次的段的存储器页的大小大部分取决于在各层次段之间的互连的带宽。
概括地说,如图2所示,本发明可以根据具有处理器102的计算机系统100说明,处理器102通过系统总线106连接到存储器控制器104,而总线106适当配置以提供对层次组织的系统存储器108的访问。在所述实施例中,层次组织的系统存储器108的各部件可以采取多种形式,诸如DRAM、SDRAM、SLDRAM、EDO、FPM、RDRAM等。在所述实施例中,系统总线106包括一个单向地址总线106-1,其安排为将由处理器102产生的存储器地址请求传送到存储器控制器104。系统总线106还包括一个单向的命令总线106-2,它结合地址总线106-1携带与存储器地址关联的命令。例如,当处理器102请求一条可执行指令时,处理器给命令总线106-2输出一个读请求(称为系统命令),其基本上与在地址总线106-1上的一个相应的存储器地址请求(称为系统地址)同时。
在所述实施例中,计算机系统100是一个基于虚拟存储器的计算机系统,因此存储器地址请求事实上是一个必须转换为物理存储器地址的虚拟存储器地址请求。以这种方式,可以访问在相应于系统存储器108的存储器空间中的适当的存储器地址。在计算机系统100中,处理器102产生虚拟地址,其由硬件和软件的结合转换为访问物理主存储器的物理地址。可以给一个特定的存储器页动态分配一组虚拟地址,使得虚拟存储器需要一个有时称为页表的数据结构,它把虚拟地址转换为物理地址。为减少地址转换时间,计算机系统100使用一个专用于地址转换的相关的超高速缓冲存储器,其在上面作为转换查阅缓冲器(TLB)110说明。
然而,应该注意,TLB110可以事实上位于系统设计者决定为对该特定计算机系统最合适的地方。在所述实施例中,TLB110采取查阅表(LUT)的形式,其用于标识最近的虚拟存储器地址对物理存储器地址的转换。通过在TLB110中存储最近的虚拟存储器对物理存储器的转换,对于存储在TLB110中的那些转换而转换一个虚拟存储器地址到物理存储器地址所需要的时间减少到一个简单的表查阅操作的时间,它要比一次虚拟存储器对物理存储器转换操作快很多。
在本发明的一个实施例中,每当处理器102产生一个特定的虚拟存储器请求时,就询问TLB110决定所请求的存储器页是否与在TLB110中的条目指向的一个存储器页关联。如上所述,根据位置原理,由一个特定TLB条目指向的存储器页的大小越大,则TLB命中的可能性越大,也就是说所请求的虚拟存储器页具有一个相关的TLB条目,从而不需要转换操作。然而,在所请求的存储器页不与一个TLB条目关联的场合(亦即失中),则必须转换所请求的虚拟存储器页地址并最终从系统存储器中检索。
在本发明的一个实施例中,采取TLB寄存器110的拷贝形式的控制器TLB112包括在控制器104中,其用于指向一个相应于TLB110中的一个新条目的存储器页(通常位于较低一级存储器中)。在一些实现中,由新TLB条目指向的整个存储器页(或块)移动到时间上更接近处理器的一个TLB页超高速缓冲存储器114(该TLB页超高速缓冲存储器时间上更接近处理器102)。应该注意,在其它实现中,仅相应于将引起TLB条目自身改变的地址的一小部分进行移动。传输到更接近处理器的存储器层次的段的存储器页的大小大部分取决于在系统存储器108的各层次部件之间的互连的带宽。应该注意,在这一场合,数据传输的大小由在TLB页超高速缓冲存储器114和主存储器之间的互连的带宽决定。在这些场合,存储器结构,诸如RAMBUSTM和/或SLDRAM(同步连接动态RAM),比更常用的快速页模式型存储器更适合。
应该注意,实际TLB跟踪机构可以采取任何数目实现的形式,当然取决于TLB自身的位置。在TLB位于处理器自身之内的情况下,TLB是可直接访问的,处理器能够给存储器控制器发布一个通知标志,基于TLB失中地址预取希望的数据。在一些情况下,该通知标志可以由在处理器上的专用控制管脚产生,而在另外一些情况下,可以由在处理器总线协议内的某些变化产生。在一个实施例中,该标志指示发生过一次TLB失中,以及TLB的哪一部分被无效。这可以由专用管脚总线产生,因为例如一个Pentium IITM处理器只有6个索引管脚和一个控制管脚。在一些场合,处理器可以在处理器总线上发布一个特殊的消息周期。该消息周期可以承载一个TLB条目索引以及新物理地址,以便为本发明的目的,控制器TLB112将总是相对于处理器TLB110最新。
在控制机构位于存储器控制器自身的场合,存储器控制器必须通过观察次级超高速缓冲存储器的传输量例如或者通常位于主存储器中的页表来跟踪TLB内容。在监视次级超高速缓冲存储器的场合,处理器必须允许访问在存储器控制器内的窥视电路。然而,如果次级超高速缓冲存储器不能被窥视和/或处理器没有指示TLB失中标志的话,则当对失中的地址发布物理地址访问时必须更新存储器控制器TLB。
图3表示按照本发明的一个实施例的系统存储器108的一个特定的实现。如同对熟悉计算机结构设计和编程技术的人所了解的,计算机系统诸如计算机系统100一般使用一个多级层次存储器系统。在该层次方法中,较快的、贵的、有限容量的存储器(亦即寄存器202)位于该层次的最高一级并继续到该层次最低级的较慢的、较低费用的、较高容量的存储器。通常,存储器层次包括一个称为超高速缓冲存储器204的小的快速存储器,它要么物理集成到处理器102(它通常是一个集成电路)内或安装在物理上靠近处理器102的地方,以便主要由于互连等待时间的减少(亦即临时靠近)增加速度。应该注意,可以有几个不同层次的超高速缓冲存储器诸如L1、L2等,每一个可以具有不同的大小和访问时间。通常,超高速缓冲存储器204能够存储数量级为16-512千字节的存储器,这些存储器具有数量级为3-30ns的典型访问时间,能够存储由处理器102最近使用的数据集,也称为工作数据集。
当从主存储器206读或对之写数据时,在超高速缓冲存储器204中也保存一份拷贝,连同关联的主存储器地址。超高速缓冲存储器204监视后继的读操作,看所需要的数据是否已经在该超高速缓冲存储器中。如果是(超高速缓冲存储器命中),则它被立即返回,放弃对主存储器的读(或不开始)。如果数据未被超高速缓冲存储(超高速缓冲存储器失中),则从主存储器中取数据,并且也保存在超高速缓冲存储器中。
超高速缓冲存储器204用比主存储器206更快的存储器芯片构成,所以一次超高速缓冲存储器命中用的时间比完成一次正常的存储器访问所用的时间短很多。超高速缓冲存储器可以位于和处理器同样的集成电路上以便进一步减少访问时间。在这种场合,常常知道作为基本超高速缓冲存储器,在CPU芯片外可以有一个较大的、较慢的次级超高速缓冲存储器。
应该注意,超高速缓冲存储器的最重要的特征是它的命中率-所有存储器访问能从超高速缓冲存储器204满足的比例。这又依赖于超高速缓冲存储器设计,但是最依赖于它相对于主存储器的大小。该大小由快速存储器芯片的成本和更重要的是物理大小极限所限制。
命中率还取决于正在运行的特定程序的访问模式(被读和写的地址序列)。超高速缓冲存储器依赖大多数程序的访问模式的两个特性:时间上的位置-如果曾经访问过某些内容,它有可能很快被再次访问,和空间位置-如果一个存储器位置被访问,则附近的存储器位置也可能被访问。为利用空间位置,超高速缓冲存储器常常一时操作几个字,“超高速缓冲存储器行”或“超高速缓冲存储器块”。主存储器读和写是整个超高速缓冲存储器行(仅可以超高速缓冲存储的事项)。
当处理器102希望写主存储器206时,根据处理器可能很快再读它的假设,数据首先写到超高速缓冲存储器204。使用各种不同的策略。在直写(write through)式超高速缓冲存储器中,数据在它被超高速缓冲存储的同时写到主存储器。在回写式超高速缓冲存储器中,当它被强迫从超高速缓冲存储器移出时它才写到主存储器。
如果所有的访问都是写,对于直写式策略,每一次对超高速缓冲存储器的写将需要主存储器写,从而使系统降到主存储器速度。然而,从统计上说,大多数访问是读,而大多数这些读将从超高速缓冲存储器中满足。直写比回写简单,因为一个要被置换的条目可以只在超高速缓冲存储器中被写复盖,因为它已经被复制到主存储器中,而回写需要超高速缓冲存储器启动对后随由主存储器读清空的条目的一次主存储器写(对一次处理器读)。然而,回写效率更高,因为一个条目可以在超高速缓冲存储器中写多次而不需对主存储器访问。当超高速缓冲存储器满了并希望超高速缓冲存储另外一行数据时,则选择一个要被回写到主存储器或“被清空”的超高速缓冲存储器条目。于是把该新行放在其位。选择哪一个条目被清空由“置换算法”决定。
在一个特别的实现中,系统存储器108包括TLB页超高速缓冲存储器114,用于存储要由在TLB110或者TLB112任何一个中的一个新条目指向的存储器页(或其部分)。
在所说明的实施例中,在最低一级,一个大容量外部存储器存储设备210,诸如磁带驱动器,具有相对无限制的存储容量,但是对任何地方的平均访问时间(亦即等待时间)从秒级到分级。在接下来的较低级,磁盘存储器(或任何等价的介质)208通常可以存储数千兆字节数据,访问时间的数量级大约为10ms,而在下一较高级,主存储器206(通常以DRAM类型存储器设备的形式)通常可以存储数量级为兆字节的数据,具有典型的访问时间大约为50ns到大约150ns。在本发明的一个实施例中,一个TLB页超高速缓冲存储器114以层次方式放置在主存储器206和提供减少主存储器访问次数的能力的超高速缓冲存储器204之间。通过存储由转换查阅缓冲器110指向的存储器页,例如,(在这一场合位于处理器102之内),主存储器访问的次数伴随减少,因为每次有一次TLB命中(亦即请求的存储器页在TLB110中有相关的条目),被请求的存储器页只需要从TLB页超高速缓冲存储器114中检索而不是从主存储器206检索,从而相对于没有TLB页超高速缓冲存储器114减少了总的系统存储器访问等待时间。应该注意,在下面的讨论中,相应于一个特定的TLB条目的存储器页称为TLB页。
图4表示根据本发明的一个实施例的一个计算机系统400,它具有驻留在一个芯片阵列中的TLB页。在所述实施例中,系统存储器108包括由多个DRAM型存储器设备形成的芯片阵列402。
当在操作时,如果例如要读一个特定的存储器单元,到处理器102产生一个相应于在该存储器阵列402中存储器单元的地址请求。因为形成阵列402的DRAM402-1到402-n的每一个在存储单元404的逻辑“矩形”中保存它们的内容,读例如存储在存储单元404-1中的数据需要首先使用由存储器控制器104提供的称为“行地址选择”(或“行地址选通”,“/RAS”)的信号激活行406。具体说,RAS是一个发送到DRAM的信号,它告诉后者相关的地址是一个行地址。
通常,/RAS信号基于由处理器102提供的地址请求的最高有效部分。当被接收到并被适当解码,/RAS信号引起在整个行406中的数据在一个称为恢复时间的时间期间后被传输到一个读出放大器408。所谓恢复时间是对于所选择的行稳定所需要的时间。在最一般的DRAM中,RAS到读出放大器的传输通常在数量级30ns。
一旦所选择的行稳定和在选择的行中的数据被传输到读出放大器408,则存储器控制器104进一步解码形成称为“列地址选择”(“/CAS”)信号的地址请求,该信号当被发送到一个DRAM时告诉它一个相关的地址是一个列地址。/CAS信号引起列选择电路(未示出)选择在现在包括希望数据的读出放大器中的存储器阵列的特定的存储单元(在该场合是404-1)。然后单元404-1的内容从读出放大器408被发送到数据总线108,在这里请求该数据的处理器102或其它设备可以读它。应该注意,在大多数DRAM中,CAS通常的数量级为30ns。
因此,通过从存储器阵列404-1移动数据到读出放大器408,从而移动数据时间上更接近处理器102。这一点可计量建立,因为一次RAS操作是移动希望数据到总线108的CAS操作的逻辑和物理的先行。
因为TLB页物理驻留在存储器阵列402中的部分相应于可以由一次行访问动作带入到读出放大器408的列,因此该TLB页移动到时间上更接近处理器102。因此,从物理和/或逻辑上链接几个读出放大器以便使与新TLB条目相关的整个TLB页驻留在该读出放大器中,从性能观点来说是有利的。通过这样做,对该特别的TLB页的任何访问将从一个总的更快的访问时间中受益。
一种这样的安排示于图5,其表示根据本发明的一个实施例在一个四DRAM存储器芯片的阵列之间的地址映射模式。
在图6所示的另一个实施例中,形成存储器阵列的存储器芯片在常规DRAM存储器阵列外包括一个快速静态缓冲器602。这种存储器芯片以由日本的NEC公司制造的DRAM“虚拟通道”系列作为例子。这一新的结构通过结合由高速寄存器配置的通道缓冲器实现了灵活的和高效的数据传输。在支持多媒体PC、工作站和因特网服务器的大容量DRAM中使用虚拟通道存储器。这一新存储器内核技术的关键特征是结合由在存储器中的高速寄存器配置的通道缓冲器。一个虚拟通道DRAM执行从存储器的前端处理的外面向和从这些通道缓冲器的读/写操作。或者是,诸如数据传输的内部操作在存储器单元和通道缓冲器之间传输,存储器单元的预充电和刷新独立于这些前端处理而执行。其结果,可以与前后处理并行执行后台处理。通过为并行处理建立一个支持结构,一个虚拟通道DRAM维持一个高平均数据传输速度和利用固有的存储器性能到最高可能的程度,部分由于以它自己访问存储器阵列的资源访问一个独立的通道的能力。这可以导致较低的总开销,低等待时间,高的通量和增强的总线效率(如果适当地使用的话),诸如当连接的各个虚拟通道被链接(或者物理的或者逻辑的)以形成TLB大小页的话。
图7表示按照本发明的一个实施例的系统700,它具有一个适合于高速TLB页传输的高速接口。系统700可以用在广阔的不同应用中,诸如计算机连网,数据连网,设备,视频处理,数字处理,或任何其它希望使用高速存储器设备好处的应用。可以使用(RAMBUS DRAM)RDRAM702执行各种不同的存储器功能,诸如存储与处理器102协作工作的可执行指令。也可以在像数据处理、数字图象操作程序等特别希望快速访问大容量数据的应用中使用RDRAM702存储由处理器102使用的数据。应该注意,系统700仅仅是例子,本发明的真正的范围和精神应该由下面的权利要求指示。
由于性能的考虑,希望具有对TLB页超高速缓冲存储器114尽可能高的传输率。因为在技术中公知,DRAM702-1到702-4固有的并行性支持高传输速率,于是DRAM702-1到702-4提供一个链接的TLB页到作为缓冲器704-1到704-4安排的一个TLB页超高速缓冲存储器703。然而,随着诸如由RAMBUS类型通道代表的高速互连的到来,TLB页超高速缓冲存储器114的放置可以扩展到包括能够通过高速总线708连接到DRAM702的任何位置。
图8是一个流程图,详细说明按照本发明的一个实施例为移动一个存储器页时间上更接近处理器的处理800。在802,处理器产生一个具有一个相关虚拟存储器地址的数据请求。在804,判定所请求的虚拟存储器页在TLB中是否有一个相关的TLB条目。如果判定所请求的存储器页没有相关的TLB条目,则在806使用页表把该虚拟存储器地址转换为一个物理存储器地址。同时在808,用相应于虚拟存储器向物理存储器转换的新TLB条目更新TLB。在810,相应于该新TLB条目的TLB页移动到时间上更接近处理器。在一个实施例中,TLB页被移动到一个在主存储器和超高速缓冲存储器之间分层放置的本地TLB页超高速缓冲存储器。
返回到804,如果判定所请求的存储器页确实在TLB中有一个相关的TLB条目,则在812从TLB页超高速缓冲存储器中检索所请求的存储器页。无论在哪种场合,然后把为所检索的页的希望的数据元素移动到处理器以便处理。
虽然为清楚和理解的目的详细说明上述发明,但是显然,在所附权利要求的范围内可以实现一定的改变和修改。
此外,应该注意,为实现本发明的处理和装置有另外可选择的方式。因此,本实施例考虑为说明性的,而非限制性的,并且本发明不限制在这里详细给出的实施例,而可以在所附权利要求的范围和等价物内修改。

Claims (5)

1.一种在基于虚拟存储器的系统中减少存储器访问等待时间的装置,该装置包括:
一个处理器,用于执行可执行的指令;
一个主存储器,包括存储器阵列和读出放大器,并连接到该处理器,用于存储由该处理器执行的可执行指令,所述读出放大器用于接收来自所述存储器阵列的数据行;
一个超高速缓冲存储器,连接到该处理器和该主存储器,用于存储最近使用过的指令的一个子集,其中该超高速缓冲存储器比该主存储器在时间上更接近该处理器;
一个安排用以存储一个TLB页的TLB页超高速缓冲存储器,其中在所述处理器的指导之下,通过将对应于一个新TLB条目的一个新TLB页从主存储器移动到该TLB页超高速缓冲存储器而使该新TLB页移动到在时间上更接近该处理器,其中该TLB页超高速缓冲存储器比该主存储器更接近该处理器,并且其中在该TLB页超高速缓冲存储器中的一个TLB页超高速缓冲存储器条目指向一个相关的TLB页;其中该相关的TLB页分布于所述读出放大器。
2.如权利要求1所述系统,其特征在于,所述主存储器是DRAM设备。
3.如权利要求2所述系统,其特征在于,所述DRAM设备是一个虚拟通道类型的DRAM,其中所述读出放大器是一个虚拟通道。
4.如权利要求1所述的系统,其特征在于,该系统进一步包括一个连接到所述处理器和存储器的一个存储器控制器,其中该存储器控制器还包括所述TLB页超高速缓冲存储器。
5.如权利要求4所述系统,其特征在于,所述存储器设备包括多个超高速缓冲存储器单元,其粒度在大小上与该TLB页对应。
CNB00805780XA 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问的技术 Expired - Lifetime CN1160631C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11788699P 1999-01-28 1999-01-28
US60/117,886 1999-01-28

Publications (2)

Publication Number Publication Date
CN1352772A CN1352772A (zh) 2002-06-05
CN1160631C true CN1160631C (zh) 2004-08-04

Family

ID=22375347

Family Applications (3)

Application Number Title Priority Date Filing Date
CN00805639.0A Pending CN1352771A (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统存取性能的技术
CNB00805780XA Expired - Lifetime CN1160631C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问的技术
CNB008056056A Expired - Fee Related CN1158607C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问等待时间的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN00805639.0A Pending CN1352771A (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统存取性能的技术

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB008056056A Expired - Fee Related CN1158607C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问等待时间的方法和系统

Country Status (7)

Country Link
US (1) US6442666B1 (zh)
EP (3) EP1196850B1 (zh)
JP (3) JP2002536715A (zh)
KR (3) KR20010101693A (zh)
CN (3) CN1352771A (zh)
AU (3) AU3693800A (zh)
WO (2) WO2000045267A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674441B1 (en) * 2000-07-26 2004-01-06 Ati International, Srl Method and apparatus for improving performance of an accelerated graphics port (AGP) device
SE0003398D0 (sv) * 2000-09-22 2000-09-22 Ericsson Telefon Ab L M Optimization of a pipelined processor system
US7203730B1 (en) 2001-02-13 2007-04-10 Network Appliance, Inc. Method and apparatus for identifying storage devices
DE60237583D1 (de) * 2001-02-13 2010-10-21 Candera Inc Failover-verarbeitung in einem speicherungssystem
US6622211B2 (en) * 2001-08-15 2003-09-16 Ip-First, L.L.C. Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US7032136B1 (en) 2001-09-07 2006-04-18 Network Appliance, Inc. Auto regression test for network-based storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7112884B2 (en) * 2002-08-23 2006-09-26 Ati Technologies, Inc. Integrated circuit having memory disposed thereon and method of making thereof
US7062610B2 (en) * 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US7752294B2 (en) * 2002-10-28 2010-07-06 Netapp, Inc. Method and system for dynamic expansion and contraction of nodes in a storage area network
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
CN1311366C (zh) * 2003-05-22 2007-04-18 群联电子股份有限公司 快闪存储器的平行双轨使用方法
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7171514B2 (en) * 2003-11-20 2007-01-30 International Business Machines Corporation Apparatus and method to control access to logical volumes using parallel access volumes
US7117337B2 (en) * 2004-02-19 2006-10-03 International Business Machines Corporation Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
CN100414518C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 改进的虚拟地址变换方法及其装置
CN100414519C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
EP1872229A4 (en) * 2005-04-07 2017-08-02 Insightful Corporation Method and system for handling large data sets in a statistical language
EP1717708B1 (en) * 2005-04-29 2010-09-01 STMicroelectronics Srl An improved cache memory system
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7805588B2 (en) * 2005-10-20 2010-09-28 Qualcomm Incorporated Caching memory attribute indicators with cached memory data field
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
US20080282055A1 (en) * 2005-12-29 2008-11-13 Rongzhen Yang Virtual Translation Lookaside Buffer
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
US8615643B2 (en) 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US8694712B2 (en) * 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8185716B2 (en) * 2007-10-22 2012-05-22 Qimonda Ag Memory system and method for using a memory system with virtual address translation capabilities
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
CN102110282A (zh) * 2011-03-14 2011-06-29 北京播思软件技术有限公司 一种嵌入式设备的屏幕绘图方法及系统
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103116556B (zh) * 2013-03-11 2015-05-06 无锡江南计算技术研究所 内存静态划分虚拟化方法
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
KR101821633B1 (ko) 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US20160103766A1 (en) * 2013-07-01 2016-04-14 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
JP6088951B2 (ja) * 2013-09-20 2017-03-01 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
WO2016122585A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Modifying characteristics of a memory segment
CN105373456B (zh) * 2015-11-19 2018-06-29 英业达科技有限公司 降低缓存命中率的内存测试方法
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
WO2019074743A1 (en) 2017-10-12 2019-04-18 Rambus Inc. NON-VOLATILE PHYSICAL MEMORY WITH DRAM CACHE MEMORY
KR20200123912A (ko) * 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
EP0471462B1 (en) * 1990-08-06 1998-04-15 NCR International, Inc. Computer memory operating method and system
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JP3135795B2 (ja) * 1994-09-22 2001-02-19 東芝マイクロエレクトロニクス株式会社 ダイナミック型メモリ
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database
US5996055A (en) 1997-11-26 1999-11-30 Digital Equipment Corporation Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space

Also Published As

Publication number Publication date
JP2002536717A (ja) 2002-10-29
JP2002536716A (ja) 2002-10-29
EP1181644A1 (en) 2002-02-27
US6442666B1 (en) 2002-08-27
EP1157335A1 (en) 2001-11-28
AU3352800A (en) 2000-08-18
WO2000045271A1 (en) 2000-08-03
AU3693800A (en) 2000-08-18
KR20010101694A (ko) 2001-11-14
CN1158607C (zh) 2004-07-21
WO2000045271A9 (en) 2001-10-04
CN1347526A (zh) 2002-05-01
JP2002536715A (ja) 2002-10-29
WO2000045270A2 (en) 2000-08-03
EP1157335A4 (en) 2004-05-26
KR20010101695A (ko) 2001-11-14
EP1196850A4 (en) 2004-05-26
WO2000045267A1 (en) 2000-08-03
EP1181644A4 (en) 2004-05-19
CN1352772A (zh) 2002-06-05
AU3693900A (en) 2000-08-18
EP1196850A1 (en) 2002-04-17
CN1352771A (zh) 2002-06-05
EP1196850B1 (en) 2016-08-24
WO2000045270A8 (en) 2001-03-15
KR20010101693A (ko) 2001-11-14

Similar Documents

Publication Publication Date Title
CN1160631C (zh) 改进虚拟存储器系统中存储器访问的技术
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US6578111B1 (en) Cache memory system and method for managing streaming-data
CN1317644C (zh) 简化了缓存替换策略的实现的多线程缓存方法和装置
US5781926A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill
JP4563486B2 (ja) 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
US20170060434A1 (en) Transaction-based hybrid memory module
WO2009140631A2 (en) Distributed computing system with universal address system and method
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
JP3866447B2 (ja) マルチプロセッサ・ノードデータ処理システムに使用するディレクトリエントリ割当てシステム及び方法
CN1421003A (zh) 对盘驱动事务处理采用存取日志
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US11126573B1 (en) Systems and methods for managing variable size load units
CN1896972A (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
US5835929A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of a line fill
US6598124B1 (en) System and method for identifying streaming-data
WO2002027498A2 (en) System and method for identifying and managing streaming-data
US20020069325A1 (en) Caching method using cache data stored in dynamic ram embedded in logic chip and cache tag stored in static ram external to logic chip
EP4116829A1 (en) Systems and methods for managing variable size load units
US6654854B1 (en) Caching method using cache tag and cache data stored in dynamic RAM embedded in logic chip
CN117312188A (zh) 混合ssd数据缓存预取系统及方法
WO2000045270A1 (en) Techniques for improving memory access in a virtual memory system

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Munich, Germany

Patentee after: Infineon Technologies AG

Address before: Munich, Germany

Patentee before: INFINEON TECHNOLOGIES AG

TR01 Transfer of patent right

Effective date of registration: 20120918

Address after: Munich, Germany

Patentee after: QIMONDA AG

Address before: Munich, Germany

Patentee before: Infineon Technologies AG

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151223

Address after: German Berg, Laura Ibiza

Patentee after: Infineon Technologies AG

Address before: Munich, Germany

Patentee before: QIMONDA AG

CX01 Expiry of patent term

Granted publication date: 20040804

CX01 Expiry of patent term