CN1154049C - 双端口管道两级高速缓冲存储器系统 - Google Patents

双端口管道两级高速缓冲存储器系统 Download PDF

Info

Publication number
CN1154049C
CN1154049C CNB998153621A CN99815362A CN1154049C CN 1154049 C CN1154049 C CN 1154049C CN B998153621 A CNB998153621 A CN B998153621A CN 99815362 A CN99815362 A CN 99815362A CN 1154049 C CN1154049 C CN 1154049C
Authority
CN
China
Prior art keywords
cache
virtual address
level
chip
cache memory
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 - Fee Related
Application number
CNB998153621A
Other languages
English (en)
Other versions
CN1333906A (zh
Inventor
傅伟昌
穆拉
D·A·穆拉
马修斯
G·S·马修斯
塞勒
S·E·塞勒
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1333906A publication Critical patent/CN1333906A/zh
Application granted granted Critical
Publication of CN1154049C publication Critical patent/CN1154049C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

提供了提高处理器性能的新颖的芯片上高速缓冲存储器及操作方法。该芯片上高速缓冲存储器有两级。第一级是为低等待时间优化的而第二级是为容量优化的。两级高速缓存是流水作业的并能支持同时双端口存取。在第一与第二级高速缓存之间设置了排队结构,用于从较慢的第二级高速缓存上分离较快的第一级高速缓存。排队结构也是双端口的。两级高速缓存都支持不阻塞的操作。当在一级高速缓存上高速缓存不命中时,两个高速缓存都能继续处理其它高速缓存命中与不命中。第一级高速缓存是为整数数据优化的。第二级高速缓存能存储包含浮点在内的任何数据类型。本发明的新颖两级高速缓存系统提供强调吞吐量的高性能。

Description

双端口管道两级高速缓冲存储器系统
发明领域
本发明一般涉及电子数据处理装置领域。更具体地,本发明涉及调整缓冲存储器。
背景技术
现今许多计算机系统使用高速缓冲存储器来改进对较频繁地使用的数据与指令的存取速度。可将小的高速缓冲存储器集成在微处理器芯片本身上,从而,通过消除必须从微处理器芯片外面的外部存储器存取数据或指令而极大地改进了存取速度。
在正常数据加载访问例程期间,微处理器将首先查看芯片上高速缓冲存储器所要求的数据或指令是否驻留在那里。如果否,则微处理器查看不在芯片上的存储器。芯片上存储器,即高速缓冲存储器,比主存储器小。多个主存储器单元可映射到高速缓冲存储器中。代表最频繁地使用的数据与指令的主存储器单元或地址得到映射到高速缓冲存储器中。高速缓冲存储器项必须不仅包含数据,还包含与数据关联的地址的足够相关信息(“标记地址与状态”位)以便高效地通知已将哪些外部或主存储器地址映射到调整缓冲存储器中。为了增进在高速缓冲存储器中找到存储器地址的百分比(高速缓冲存储器“命中比”)希望将高速缓冲存储器设置成相关联的,例如可以多种方式将存储器中的特定单元存储在高速缓冲存储器中。
由于它们的低频率,大多数以前的调整缓冲存储器设计能提供相对地大的高速缓冲存储器,例如包含整数数据与较大的浮点数据两者的高速缓冲存储器。然而,随着微处理器频率与指令发布宽度的增加,芯片上高速缓冲存储器系统的性能越来越重要。在高速缓冲存储器设计中,低等待时间与高容量要求是不兼容的。例如,低等待时间存取的高速缓冲存储器通常意味着该高速缓冲存储器具有小的容量。反之,大的高速缓冲存储器意味着它具有长的存取等待时间。
由于上述原因及熟悉本技术的人员在阅读与理解本说明书时显而易的下述其它原因,希望为芯片上调整缓冲存储器开发改进的性能。
发明内容
根据本发明的一个方面,提供一种高速缓冲存储器,包括:
具有第一地址端口与第二地址端口的芯片上第一级高速缓存,其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址;
具有第一地址端口与第二地址端口的芯片上第二级高速缓存;以及
耦合在第一级高速缓存与第二级高速缓存之间的排队结构。
根据本发明的一个方面,提供一种具有处理器时钟信号的微处理器芯片,包括:
若干执行单元;
包含具有耦合在芯片上高速缓冲存储器与若干执行单元之间的至少两条地址总线的第一级高速缓存与第二级高速缓存的芯片上高速缓冲存储器,及耦合第一级高速缓存与第二级高速缓存的排队结构;
耦合在该芯片上高速缓冲存储器与该若干执行单元之间的至少两条数据总线,以及
其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址。
根据本发明的一个方面,提供一种计算机系统,包括:
具有处理器时钟信号的微处理器芯片,该微处理器芯片包括:若干执行单元;
芯片上高速缓冲存储器,该芯片上高速缓冲存储器包括:
具有第一地址端口与第二地址端口的第一级高速缓存,其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址;
具有第一地址端口与第二地址端口的第二级高速缓存;以及
耦合第一级高速缓存与第二级高速缓存的排队结构;
芯片外存储器;以及
总线,其中该总线将芯片外存储器连接在该微处理芯片上。
根据本发明的一个方面,提供一种存取高速缓冲存储器的方法,包括:
在第一处理器时钟周期中发送第一拟地址与第二虚拟地址给第一级高速缓冲存储器中的第一翻译后备缓冲器与第二翻译后备缓冲器,各翻译后备缓冲器具有若干项;
在第一处理器时钟周期中同时发送该第一虚拟地址与该第二虚拟地址给第二级高速缓冲存储器中具有比第一翻译后备缓冲器项数多的翻译后备缓冲器;以及
在第二处理器时钟周期之后,通过排队结构发送对应于第一虚拟地址的第一高速缓存命中/不命中信号给第二级高速缓冲存储器中的仲裁器。
根据本发明的一个方面,提供一种存取高速缓冲存储器的方法,包括:
在第一处理器时钟周期中起动在芯片上第一级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索,其中该芯片上第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收第一虚拟地址以及第二虚拟地址;
在第一处理器时钟周期中并行起动在芯片上第二级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索;
在第二处理器时钟周期之后,通过排队结构将对应于第一虚拟地址的第一高速缓存命中/不命中信号发送给芯片上第二级高速缓冲存储器中的仲裁器;
当第一高速缓存命中/不命中信号表示芯片上第一级高速缓冲存储器中第一虚拟地址的高速缓存不命中时,完成芯片上第二级高速缓冲存储器中第一虚拟地址的高速缓存搜索;
操作表示芯片上第二级高速缓冲存储器中第一虚拟地址的高速缓存命中的数据集;以及
将来自芯片上第二级高速缓冲存储器的数据集输出到控制给予来自芯片上第一级高速缓冲存储器的数据集与来自芯片上第二级高速缓冲存储器的数据集的路由选择优先权的多路复用器。
提供了提高微处理器性能的新颖的调整缓冲存储器与操作方法。在一个实施例中,高速缓冲存储器具有两级。第一级高速缓冲存储器具有第一地址端口与第二地址端口。第二级高速缓冲存储器类似地具有第一地址端口与第二地址端口。排队结构耦合在第一与第二级高速缓冲存储器之间。在另一实施例中,提供了存取高速缓冲存储器的方法。该方法包含将第一虚似地址与第二虚似地址提供给第一级高速缓冲存储器中的第一翻译后备缓冲器与第二翻译后备缓冲器。该方法还包含将第一虚似地址与第二虚似地址提供给第二级高速缓冲存储器中的翻译后备缓冲器。向第一级与第二级高速缓冲存储器提供第一似地址与第二虚拟地址发生在第一处理器时钟周期中。在第二处理器时钟周期之后通过排队结构将对应于第一虚拟地址的第一高速缓冲器命中/不命中信号提供给第二级高速缓冲存储器中的仲裁器。
附图说明
图1为展示按照本发明的说明的高速缓冲存储器的实施例的框图。
图2为展示按照本发明的说明的计算机系统的实施例的框图。
图3以流程图形式展示加载访问按照本发明的说明的两级高速缓冲存储器的方法。
图4以流程图形式展示加载访问按照本发明的说明的两级高速缓冲存储器的更详细实施例。
图5以流程图形式展示加载访问按照本发明的说明的两级高速缓冲存储器的另一方法。
图6以流程图形式展示加载访问按照本发明的说明的两级高速缓冲存储器的另一方法。
具体实施方式
提供了达到改进的高速缓冲存储的新颖的高速缓冲存储器。为了提供对本发明的彻底理解,在以下详细描述中陈述了许多特定细节。然而,熟悉本技术的人员会理解本发明可以不用这些特定细节实施。在其它实施中,为了不致冲淡本发明而未详细描述众所周知的方法、过程、部件、与电路。
图1为展示按照本发明的说明的高速缓冲存储器100的实施例的框图。图1示出高速缓冲存储器100包含第一级(L0)高速缓冲存储器110及第二级(L1)高速缓冲存储器120。第一级高速缓冲存储器110,L0在本说明书中也称作第一级高速缓存110。第二级高速缓冲存储器120,L1在本说明书中也称作第二级高速缓存120。将第一级高速缓存110设计成具有低数据加载访问等待时间。在一个实施例中,为了提供低加载访问等待时间,第一级高速缓存110只包含整数数据。对第一级高速缓存110的数据存取是在两个时钟周期中完成的。第二级高速缓存120具有比第一级高速缓存110大的容量并包含浮点数据以及整数数据。相应地,第二级高速缓存120具有比第一级高速缓存110长的加载访问等待时间。第一级高速缓存110与第二级高速缓存120是双端口的。如图1所示,第一级高速缓存110具有第一地址端口130与第二地址端口140。第二级高速缓存120具有第一地址端口150与第二地址端口160。排队结构170耦合在第一高速缓级110与第二高速缓存级120之间。本发明的排队结构170包括构造成达到本发明的上述目的逻辑电路。微处理器高速缓存体系结构的普通技术人员在阅读了这一公开时会理解可以用各种方式配置这一逻辑电路。
如图1中所示,将虚拟地址分别提供给各地址端口130、140、150与160。在一个实施例中,第一级高速缓存110的第一地址端口130接收第一虚拟地址,即第一存储器地址的虚拟地址VA0,第一级高速缓存110的第二地址端口140同时接收第二虚拟地址VA1。在一个实施例中,第二级高速缓存120的第一地址端口150接收第一虚拟地址VA0,第二级高速缓存110的第二地址端口160同时接收第二虚拟地址VA1。
图1还示出第一级高速缓存110具有第一翻译后备缓冲器190与第二翻译后备缓冲器200。第一翻译后备缓冲器190耦合在第一级高速缓存110的第一地址端口130上以接收第一虚拟地址VA0。第二翻译后备缓冲器200耦合在第一级高速缓存110的第二地址端口140上以接收第二虚拟地址VA1。在一个实施例中,第一级高速缓存110的各翻译后备缓冲器190与200包括至少32项。在一个实施例中,第一翻译缓冲器190与第二翻译缓冲器200是相同的双端口物理翻译缓冲器。第一翻译缓冲器190与第二翻译缓冲器200分别通过物理地址比较器240与310并通过排队结构170耦合在第二级高速缓存120中的仲裁器210上。排队结构170设计成将分别来自物理地址比较器240与310的第一级调整缓存命中/不命中信号及来自翻译后备缓冲器180的物理地址耦合到仲裁器210上。在另一实现中,并不存在图1中所示的第二级调整缓存120中的翻译后备缓冲器180。在这一实现中,通过排队结构170将来自第一翻译缓冲器190与第二翻译缓冲器200的物理地址耦合到仲裁器210上。分别来自物理地址比较器240与310的第一缓高速缓存命中/不命中信号也通过排队结构170到仲裁器210上。仲裁器210包含解释第一级高速缓存命中/不命中信号的逻辑电路。仲裁器210内的逻辑电路构造成达到本发明的预期功能。本领域中的普通技术人员在阅读了这一公开时会理解可配置这一逻辑电路的各种方式。
第一级高速缓存110还包含与第一翻译缓冲器190关联的第一高速缓存TAG(标记)220。第一高速缓存TAG220提供第一虚拟地址VA0的地址信息(“标记地址与状”位)。包含了类似地提供第一存储器请求的数据的第一高速缓存RAM230。在第一时钟周期中在第一级高速缓存110中完成存储器请求的高速缓存搜索。在第二时钟周期中,将来自第一翻译缓冲器190的物理地址在物理地址比较器240中与高速缓存TAG220物理地址数据进行比较来指示高速缓存命中/不命中与路径。在数据操作框250中使用这一信息,同时发送给排队结构170。数据操作框250包含用于路径选择,对齐及双向交换高速缓存RAM数据输出的逻辑电路。本领域中的普通技术人员从阅读本公开中会理解可以各种方式执行这些功能并将其组织成数据操作框250的一部分。如图1中所示,将多路复用器260耦合在数据操作框250上。多路复用器260进一步耦合在诸如寄存器文件270等功能单元及算术逻辑单元(ALU)280上。在一个实施例中,多路复用器260包含能将操作过的数据集引导到诸如寄存器文件270或ALU280等要求的位置的路由选择电路。微理器高速缓存体系结构领域中的普通技术人员阅读了本公开时会理解可用各种方式配置路由选择电路。
如图1中所示,第一级高速缓存110还包含与第二翻译缓冲器190关联的第二高速缓存TAG290。在一个实施例中,第一高速缓存TAG220与第二高速缓存TAG290为双端口(即即使对同一项也允许执行两个同时的加载访问)的同一物理TAG阵列的部分。第二高速缓存TAG220提供第二虚拟地址V工的地址信息(“标记地址与状态”位)。包含了类似地提供第二存储器请求的数据的第二高速缓存RAM300。在一个实施例中,高速缓存RAM230与高速缓存RAM300为双端口的同一物理数据阵列的部分。在第一时钟周期中在第一级高速缓存110中完成存储器请求的高速缓存搜索。在第二时钟周期中,在物理地址比较器3410中将来自第二翻译缓冲器200的物理地址与第二高速缓存TAG290物理地址数据进行比较以指示高速缓存命中/不命中与路径。在数据操作框320中使用高速缓存命中/不命中与路径信息并且还将其发送给排队结构170。数据操作框320包含用于路径选择、对齐及双向交换调整缓存RAM数据输出的逻辑电路。本领域中的普通技术人员从阅读本公开中会理解这些功能可用各种方式执行并组织成数据操作框250的部分。如图1中所示,多路复用器260耦合在数据操作框320上。多路复用器260进一步耦合在诸如寄存器文件270等功能单元及算术逻辑单元(ALU)280上。在一个实施例中,多路复用器260包含能将操作过的数据集引导到诸如寄存器文件270或ALU280等要求的位置的路由选择电路。
在图1的第二级高速缓存120中还示出翻译后备缓冲器180。在一个实施例中,第二级高速缓存120的翻译后备缓冲器180具有至少96基。在这一实施例中,翻译后备缓冲器180适应于同时接收分别来自第二级高速缓存120上的第一地址端口140与第二地址端口150的第一虚拟地址VA0与第二虚拟地址VA1。在这一实施例中,第二级高速缓存120是分体双端口的。这便是,即使对同一高速缓存线,只要这些高速缓存存取不是对同一存储体的,第二级高速缓存能提供两个同时的高速缓存加载访问。第二级调整缓存120的翻译后备缓冲器180通过排队结构170耦合在仲裁器210上。仲裁器210耦合在第二级高速缓存120中的高速缓存搜索级330上。本领域的普通技术人员在阅读了本公开时会理解,可用各种方式配置高速缓存搜索级330来进行高速缓存搜索。第二高速缓存搜索级330进一步耦合在第二级高速缓存120中的数据操作级340上。数据操作级340包含用于路径选择、对齐及双向交换检索到的高速缓存RAM数据输出的逻辑电路。本领域中的普通技术人员从阅读本公开中会理解可执行这些功能并将其组织成数据操作框340的部分的方式。第二级高速缓存120的数据操作级340耦合在上述多路复用器260上。如上面详述的,多路复用器260包含能将操作过的数据集引导到诸如寄存器文件250或ALU260等要求的位置上的路由选择电路。
在一个实施例中,第一级高速缓存110的第一地址端口130与第二级调整缓存120的第一地址端口150适应于同时接收第一虚拟地址VA0。在这一实施例中,第一级高速缓存110与第二级高速缓存120适应于在第一时钟周期中同时,例如并行,起动第一虚拟地址VA0的高速缓存搜索。在这一实施例中,第一级高速缓存110适应于在第一时钟周期中完成第一虚拟地址VA0的高速缓存搜索。排队结构170适应于从第一级高速缓存110中的物理地址比较器240将第一虚拟地址VA0的第一级命中/不命中信号耦合到第二级高速缓存120的仲裁器210上,从而在第二时钟周期之后,将第一级命中/不命中信号提供给仲裁器210。如果第一虚拟地址VA0的第一级命中/不命中信号向仲裁器210发信号表示在第一级高速缓存110中可获得(高速缓存“命中”)对应于第一虚拟地址VA0的第一高速缓存数据,则仲裁器不继续进行在第二级高速缓存120中的第一虚拟地址VA0的高速缓存搜索。反之,如果第一虚拟地址VA0的第一级命中/不命中信号向仲裁器210发信号表示在第一级高速缓存110中不能获得(高速缓存“不命中”)对应于第一虚拟地址VA0的第一高速缓存数据,则仲裁器允许在第二级高速缓存120流水线中向前进行第一虚拟地址VA0的高速缓存搜索,即数据存取。如果第一虚拟地址VA0的高速缓存搜索是在第二级高速缓存120中的高速缓存“命中”,便将数据集提供给第二级高速缓存120中的数据操作级340。在第二级高速缓存120的下一级上,将经过操作的数据集提交给上述多路复用器260。
在另一实施例中,第一级高速缓存110的第二地址端口140与第二级高速缓存120的第二地址端口160适应于同时接收第二虚拟地址VA1。在这一实现中,第一级高速缓存110与第二级高速缓存120适应于在第一时钟周期中同时起动第二虚拟地址VA1的高速缓存搜索。在这一实施例中,第一级高速缓存110适应于在第一时钟周期中完成第二虚拟地址VA1的高速缓存搜索。排队结构170适应于将第二虚拟地址VA1的第一级命中/不命中信号从第一级高速缓存110中的物理地址比较器310耦合到第二级高速缓存120中的仲裁器210上,从而在第二时钟周期之后将第一级命中/不命中信号提供给仲裁器210。如果第二虚拟地址VA1的第一级命中/不命中信号向仲裁器210发信号表示第二虚拟地址VA1是在第一级高速缓存110中的高速缓存“命中”,则仲裁器210不再继续在第二级高速缓存中进行第二虚拟地址VA1的高速缓存搜索。反之,如果第二虚拟地址VA1的第一级命中/不命中信号向仲裁器210发出信号表示第二虚拟地址VA1在第一级高速缓存110中为高速缓存“不命中”,则仲裁器210允许在第二级高速缓存120向前进行第二虚拟地址VA1的高速缓存搜索或数据存取。如果第二虚拟地址VA1的高速缓存搜索为第二级高速缓存120中的高速缓存“命中”,在二级高速缓存120中将数据集提供给数据操作级340并向前到多路复用器260,如上面讨论的。在一个实施例中,排队结构适应于同时将第一虚拟地址VA0的第一级命中/不命中信号及第二虚拟地址VA1的第一级命中/不命中信号提供给仲裁器210。
第一级高速缓存110设计成用于整数数据检索。这便是,在一个实施例中,本发明的两级高速缓存的分配策略只在第一级高速缓存110中存储整数数据,而数据操作逻辑只设计成处理整数数据大小与对齐。如上所述,在一个实施例中,第一翻译后备缓冲器190与第二翻译后备缓冲器200具有32项。同时,第二级高速缓存120设置有处理来自高速缓冲存储器100的整数与浮点数据检索的能力为了处理整数数据与浮点数据两者,第二级高速缓存120中的数据操作级340大于第一级高速缓存110中的数据操作框250与320。本发明设计成降低整数数据检索等待时间同时仍保持浮点吞吐量与容量,由于整数数据等待时间对总体微处理器性能更重要。本发明的一个实施例并不减慢整数数据检索来使浮点数据返回更快,但仍保持浮点吞吐量与容量。
在本发明的一个实施例中,带有其排队结构170的新颖的两级结构维持高速缓存数据的较高流水线吞吐量同时减少电路复杂性与制造成本。能在两个时钟周期内存取第一级高速缓存110中的整数数据。反之,其它降低等待时间的高速缓存设计的方法将小容量高速缓存用于大数据类型(如浮点数据),这导致浮点数据的合理的高速缓存“不命中”率。在本发明的一个实施例中,第一级高速缓存110中只包含整数数据。
在一个实施例中,第一级高速缓存110的设计是用于以小高速缓存容量提供高吞吐量的真正的双端口高速缓存。在这一实施例中,第一级高速缓存110不是分体的双端口并具有比较大的第二级高速缓存小的高速缓存线大小(32字节)。第一级高速缓存110用较小的高速缓存线大小使可包含在第一级高速缓存110内的不同存储单元数最大,同时由于数据局部性而仍允许合理的性能效益。第一级高速缓存110不是分体的高速缓存以便避免存储体冲突事件。这里,由于第一级高速缓存110处理32字节高速缓存线大小而否则存储体冲突事件是相当高的。再一次在这一实施例中,第一级高速缓存110处理整数数据。如果第一级高速缓存110接收整数数据请求,它在整数数据地址上执行高速缓存搜索,在第一时钟周期内确定是否具有高速缓存“命中”或“不命中”,并将这一结果发信号通知排队结构170。
第二级高速缓存120具有比第一级高速缓存110大的容量。在一个实施例中,第二级高速缓存120为分体的双端口并可能有存储体冲突。在这一实施例中选择了分体,因为考虑到较大的高速缓存容量第二级高速缓存120上的真正双端口结构会明显地更昂贵。采用8字节存储体大小(存取大于8字节同时使用两个存储体)及64字节高速缓存线大小,将第二级高速缓存120分成体不大可能导致存储体冲突。然而,如果第二级高速缓存120真的接收时同一存储体的两个同时的加载访问,它会将一个数据访问(通常为第二数据访问)放在排队结构170中而执行另一个(通常为第一数据访问)。在下一个时钟周期中,第二级高速缓存120能检索与执行保持在排队结构170中的数据访问,或第二级调整缓存120能在第一级高速缓存110中的高速缓存“不命中”的新数据访问上执行。从而,在本发明的新颖的两级高速缓存系统中,强调了高吞吐量。
图2为展示按照本发明的说明的计算机系统400的实施例的框图。图2示出计算机系统400包含按照处理器时钟操作的微处理器芯片410。微处理器能译码与执行诸如应用程序或有指令集的操作系统等计算机程序。在一个实施例中,微处理器能译码与执行诸如应用程序或带有来自多个指令集的指令的操作系统等计算机程序。微处理器芯片410包含示出为420A、420B…、420N的若干执行单元。芯片上高速缓冲存储器430包含结合图1说明的两级高速缓存结构。如结合图1说明的,芯片上高速缓冲存储器430包含第一级高速缓存(L0)440及第二级高速缓存(L1)450。第一级高速缓存440具有第一地址端口460及第二地址端口470。第二级高速缓存450具有第一地址端口480及第二地址端口490。芯片上高速缓冲存储器430包含耦合在第一级高速缓存440与第二级高速缓存450之间的排队结构500。计算机系统400芯片外存储器510。芯片外存储器510可包含动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、快速型存储器或其它替代存储器类型。计算机系统400包含将芯片外存储器510耦合在微处理器芯片410上的总线520。总线520可包含单一总线或多条总线的组合。作为实例,总线520可包括工业标准体系结构(ISA)总线、扩展的工业标准体系结构(EISA)总线、系统总线、x总线、ps/z总线、外围部件互联(PCI)总线、个人计算机卡国际协会(PCMCIA)总线、或其它总线。总线520可包括任何总线的组合。
在一个实施例中,第一级高速缓存440具有在任何给定的时钟周期上将第一地址端口460与第二地址端口470耦合到若干执行单元420A、420B…、420N中两个独立的执行单元上的至少两条地址总线,分别为530与540。在一个实施例中,第二级高速缓存450具有在任何给定的时钟周期将其第一地址端口480及第二地址端口490耦合到若干执行单元420A、420B…、420N中两上独立的执行单元上的至少两条地址总线,分别为550与560。
在一个实施例中,芯片上高速缓冲存储器430具有在芯片上高速缓冲存储器430与若干执行单元420A、420B…、420N中两个独立的执行单元之间耦合数据集的至少两条数据总线,570与580。
图3以流程图形式示出加载访问按照本发明的说明的两级缓冲存储器的方法。如图3中所示,本方法包括提供第一拟地址与第二虚拟地址给第一级(L0)高速缓冲存储器中的第一翻译后备缓冲器(TLB0)与第二翻译后备缓冲器(TLB1),700。各翻译后备缓冲器包含至少32项。本方法包括同时将第一拟地址与第二虚拟地址同时提供给第二级(L1)高速缓冲存储器中包含至少96项的翻译后备缓冲器,710。提供第一虚拟地址与第二虚拟地址给第一级(L0)与第二级(L1)发生在第一处理器时钟周期上。对应于第一虚拟地址的第一高速缓存命中/不命中信号是在第二处理器时钟周期之后通过排队结构提供给第二级(L1)高速缓冲存储器中的仲裁器的,730。
在图3的实施例中,在第二处理器时钟周期之后提供对应于第一虚拟地址的第一高速缓存命中/不命中信号给第二级(L1)高速缓冲存储器中的仲裁器进一步包含通过排队结构同时提供对应于第二虚拟地址的第二高速缓存命中/不命中信号给第二级(L1)高速缓冲存储器中的仲裁器。
图4以流程图形式示出加载访问按照本发明的说明的两级高速缓冲存储器的另一方法。如图4中所示,本方法包含在第一处理器时钟周期中启动在第一级(L0)高速缓冲存储器中高速缓存搜索第一虚拟地址与第二虚拟地址,800。本方法包含在第一处理器时钟周期中同时启动在第二级(L1)高速缓冲存储器中高速缓存搜索第一虚拟地址与第二虚拟地址,810。本方法进一步包含在第一处理器时钟周期中完成在第一级(L0)高速缓冲存储器中高速缓存搜索第一虚拟地址与第二虚拟地址,820。
在一个实施例中,图4的方法进一步包含在第二处理器时钟周期中操作表面在第一级(L0)高速缓冲存储器中高速缓存命中第一虚拟地址的数据集,并在第二处理器时钟周期中输出数据集。在一个实施例中,在第二处理器时钟周期中输出数据集包含将数据集发送给算术逻辑单元(ALU)。在另一实施例中,在第二处理器时钟周期中输出数据集包含发送数据集给寄存器文件。
在一个实施例中,图4的方法进一步包含在第二处理器时钟周期中操作表示在第一级(L0)高速缓冲存储器中高速缓存命中第二虚拟地址的数据集。在这一实施例中,本方法包含将来自第一级(L0)高速缓冲存储器的一或多个数据集提供给多路复用器(MUX)。多路复用器提供路由选择优先权给在第二处理器时钟周期内来自第一级(L0)高速缓冲存储器的数据集及来自第二级(L1)高速缓冲存储器的数据集。
图5以流程图形式示出加载访问按照本发明的说明的两级高速缓冲存储器的另一方法。如图5中所示,本方法包含在第一处理器时钟周期中启动在第一级(L0)高速缓冲存储器中高速缓存搜索第一虚拟地址与第二虚拟地址,900。本方法包含在第一处理器时钟周期中并行启动在第二级(L1)高速缓冲存储器中高速缓存搜索第一虚拟地址与第二虚拟地址,910。在第二处理器时钟周期之后,通过排队结构将对应于第一虚拟地址的第一高速缓存命中/不命中信号提供给第二级(L1)高速缓冲存储器中的仲裁器,920。当第一高速缓存命中/不命中信号表示第一级(L0)高速缓冲存储器中第一虚拟地址的高速缓存不命中时,在第二级(L1)高速缓冲存储器中继续进行第一虚拟地址的高速缓存搜索,930。本方法包含操作表示第二级(L1)高速缓冲存储器中第一虚拟地址的高速缓存命中的数据集,940。同样,在第二处理器时钟周期之,这过排队结构将对应于第二虚拟地址的第二高速缓存命中/不命中信号提供给第二级(L1)高速缓冲存储器中的仲裁器。当第二高速缓存命中/不命中信号表示第一级(L0)高速缓冲存储器中第二虚拟地址的高速缓存不命中时,在第二级(L1)高速缓冲存储器中继续进行第二虚拟地址的高速缓存搜索。本方法包含操作表示第二级(L1)高速缓冲存储器中第二虚拟地址的高速缓存命中的数据集。将来自第二级(L1)高速缓冲存储器的数据集输出到多路复用器,在其中多路复用器控制给予来自第一级(L0)高速缓冲存储器的数据集与来自第二级(L1)高速缓冲存储器的数据集路由选择优先权,950。
在一个实施例中,图5的方法包含给予来自第二级(L1)高速缓冲存储器的数据集路由选择优选权并重新引导来自第一级(L0)高速缓冲存储器的数据集通过第二级(L1)高速缓冲存储器。在另一实施例中,图5的方法包含给予来自第二级(L1)高速缓冲存储器的数据集路由选择优先权并强制第一级(L0)高速缓冲存储器去操作似乎它具有来自第一级(L0)高速缓冲存储器的数据集的高速缓存不命中(即令L1执L0已完成的数据存取,无论L0是否是高速缓存命中不命中)。在另一替代实施例中,当来自L1与L0的数据集正在同时返回到同一接收者时,将L0访问停止直到返回了L1访问为止。在一个实施例中,表示在第二级(L1)高速缓冲存储器中第一虚拟地址的高速缓存命中的数据集包含并行操作表示第二级(L1)高速缓冲存储器中第二虚拟地址的高速缓存命中的第二数据集。
图6以流程图形式示出加载访问按照本发明的说明的两级高速缓冲存储器的另一方法。如图6中所示,本方法包括当在第二级(L1)高速缓存中在第一虚拟地址与第二虚拟地址之间产生存储体冲突时在排队结构中排队第一虚拟地址,1000。在一个实施例中,当在第二级(L1)高速缓存中在第一虚拟地址与第二虚拟地址之间出现存储体冲突时在排队结构中队第一虚拟地址包括排队表示在第一级(L0)高速缓冲存储器中第二虚拟地址的第一级高速缓存不命中的命中/不命中信号。图6的方法进一步包括在第二时钟周期操作对应于第一级(L0)高速缓冲存储器中第二虚拟地址的高速缓存命中的来自第一级(L0)高速缓冲存储器的数据集,1010。在第二时钟周期中将经过操作的来自第一级(L0)高速缓冲存储器的数据集通过多路复用器输出到功能单元,1020。在整个本说明书中规定了第一虚拟地址与第二虚拟地址。在一个实施例中,第一虚拟地址与第二虚拟地址为虚拟地址。在替代实施例中,第一虚拟地址与第二虚拟地址可具有构成第一虚拟地址与第二虚拟地址的不同位数。
本发明提供了新颖的两级调整缓存系统,其中第一级是为低等待时间优化的而第二级是为容量优化的。现货同速缓存都能支持同时发生的双端口存取与流水线存取。在第一与第二级高速缓存之间设置了用于从较慢的第二级高速缓存上分离较快的第一级高速缓存的排队结构。该排队结构也是双端口的。两级高速缓存都支持不阻塞的。操作当在一级高速缓存上存在高速缓存不命中时,两个高速缓存都能继续处理其它高速缓存命中与不命中。第一级高速缓存是为整数数据优化的。第二级高速缓存能存储包含浮点在内的任何数据类型。本发明的新颖两级高速缓存系统提供强调吞吐量的高性能。

Claims (29)

1.一种高速缓冲存储器,包括:
具有第一地址端口与第二地址端口的芯片上第一级高速缓存,其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址;
具有第一地址端口与第二地址端口的芯片上第二级高速缓存;以及
耦合在第一级高速缓存与第二级高速缓存之间的排队结构。
2.权利要求1的高速缓冲存储器,其中该第一级高速缓存与该第二级高速缓存分别在第一与第二地址端口的每一个上同时接收64位虚拟地址。
3.权利要求2的高速缓冲存储器,其中该第二级高速缓存的第一地址端口与第二地址端口同时接收第一虚拟地址与第二虚拟地址。
4.权利要求1的高速缓冲存储器,其中该第一级高速缓存只包含整数数据,及其中该第二级高速缓存包含整数与浮点数据。
5.权利要求1的高速缓冲存储器,其中该第一级高速缓存的第一地址端口及该第二级高速缓存的第一地址端口同时接收第一虚拟地址,及其中该第一级高速缓存与该第二级高速缓存在第一时钟周期中起动第一虚拟地址的高速缓存搜索。
6.权利要求5的高速缓冲存储器,其中该第一级高速缓冲存储器在第一时钟周期中完成第一虚拟地址的高速缓存搜索,及其中该排队结构在第二时钟周期之后向第二级高速缓存发出第一虚拟地址的第一级高速缓存命中/不命中的信号。
7.一种具有处理器时钟信号的微处理器芯片,包括:
若干执行单元;
包含具有耦合在芯片上高速缓冲存储器与若干执行单元之间的至少两条地址总线的第一级高速缓存与第二级高速缓存的芯片上高速缓冲存储器,及耦合第一级高速缓存与第二级高速缓存的排队结构;
耦合在该芯片上高速缓冲存储器与该若干执行单元之间的至少两条数据总线,以及
其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址。
8.权利要求7的微处理器芯片,其中该第二级高速缓存为分体高速缓存,及其中该排队结构排队第二级高速缓存体冲突。
9.权利要求7的微处理器芯片,其中该排队结构排队第二级高速缓存体冲突及第一级高速缓存不命中。
10.权利要求7的微处理器芯片,其中该第一级高速缓存与该第二级高速缓存在第一时钟周期中同时起动第一虚拟地址的高速缓存搜索。
11.权利要求10的微处理器芯片,其中该第一级高速缓冲存储器在第一时钟周期中完成第一虚拟地址的高速缓存搜索,及其中该排队结构在第二时钟周期之后向第二级高速缓存发出第一虚拟地址的第一级高速缓存命中/不命中的信号。
12.一种计算机系统,包括:
具有处理器时钟信号的微处理器芯片,该微处理器芯片包括:若干执行单元;
芯片上高速缓冲存储器,该芯片上高速缓冲存储器包括:
具有第一地址端口与第二地址端口的第一级高速缓存,其中该第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收分别来自第一地址端口的第一虚拟地址以及来自第二地址端口的第二虚拟地址;
具有第一地址端口与第二地址端口的第二级高速缓存;以及
耦合第一级高速缓存与第二级高速缓存的排队结构;
芯片外存储器;以及
总线,其中该总线将芯片外存储器连接在该微处理芯片上。
13.权利要求12的计算机系统,其中该第二级高速缓存包含具有比第一翻译后备缓冲器多的项数的翻译后备缓冲器,及其中该翻译后备缓冲器同时接收来自第一地址端口的第一虚拟地址及来自第二地址端口的第二虚拟地址。
14.权利要求12的计算机系统,其中该第一级高速缓存与该第二级高速缓存在第一时钟周期中同时起动第一虚拟地址的高速缓存搜索。
15.权利要求14的计算机系统,其中该第一级高速缓冲存储器在第一时钟周期之后发送第一虚拟地址的高速缓存命中/不命中信号给排队结构,及该排队结构在第二时钟周期之后发送该高速缓存命中/不命中信号给该第二级高速缓存。
16.一种存取高速缓冲存储器的方法,包括:
在第一处理器时钟周期中发送第一拟地址与第二虚拟地址给第一级高速缓冲存储器中的第一翻译后备缓冲器与第二翻译后备缓冲器,各翻译后备缓冲器具有若干项;
在第一处理器时钟周期中同时发送该第一虚拟地址与该第二虚拟地址给第二级高速缓冲存储器中具有比第一翻译后备缓冲器项数多的翻译后备缓冲器;以及
在第二处理器时钟周期之后,通过排队结构发送对应于第一虚拟地址的第一高速缓存命中/不命中信号给第二级高速缓冲存储器中的仲裁器。
17.权利要求16的方法,其中在第二处理器时钟周期之后发送对应于第一虚拟地址的第一高速缓存命中/不命中信号给第二级高速缓冲存储器中的第一仲裁器进一步包含通过排队结构同时发送对应于第二虚拟地址的第二高速缓存命中/不命中信号给第二级高速缓冲存储器中的仲裁器。
18.权利要求16的方法,其中该方法还包括:
在第一处理器时钟周期中,起动在第一级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索;
在第一处理器时钟周期中,同时起动在第二级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索;以及
在第一处理器时钟周期中完成在第一级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索。
19.权利要求16的方法,其中该方法还包括:
在第二处理器时钟周期中操作表示在第一级高速缓冲存储器中第一虚拟地址的高速缓存命中的数据集;以及
在第二处理器时钟周期中输出该数据集。
20.权利要求19的方法,其中在第二处理器时钟周期中输出数据集包含将该数据集发送到寄存器文件。
21.权利要求16的方法,其中该方法还包括:
在第二处理器时钟周期中操作表示在第一级高速缓冲存储器中第二虚拟地址的高速缓存命中的数据集;以及
在第二处理器时钟周期内将来自第一级高速缓冲存储器的数据集发送给多路复用器(MUX),并提供路由选择优先权给来自第一级高速缓冲存储器的数据集及来自第二级高速缓冲存储器的数据集。
22.一种存取高速缓冲存储器的方法,包括:
在第一处理器时钟周期中起动在芯片上第一级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索,其中该芯片上第一级高速缓存包含各具有若干项的第一翻译后备缓冲器与第二翻译后备缓冲器,及其中该第一翻译后备缓冲器与该第二翻译后备缓冲器同时接收第一虚拟地址以及第二虚拟地址;
在第一处理器时钟周期中并行起动在芯片上第二级高速缓冲存储器中第一虚拟地址与第二虚拟地址的高速缓存搜索;
在第二处理器时钟周期之后,通过排队结构将对应于第一虚拟地址的第一高速缓存命中/不命中信号发送给芯片上第二级高速缓冲存储器中的仲裁器;
当第一高速缓存命中/不命中信号表示芯片上第一级高速缓冲存储器中第一虚拟地址的高速缓存不命中时,完成芯片上第二级高速缓冲存储器中第一虚拟地址的高速缓存搜索;
操作表示芯片上第二级高速缓冲存储器中第一虚拟地址的高速缓存命中的数据集;以及
将来自芯片上第二级高速缓冲存储器的数据集输出到控制给予来自芯片上第一级高速缓冲存储器的数据集与来自芯片上第二级高速缓冲存储器的数据集的路由选择优先权的多路复用器。
23.权利要求22的方法,其中从芯片上第二级(L1)高速缓冲存储器输出数据集到多路复用器进一步包括:
给予来自芯片上第二级(L1)高速缓冲存储器的数据集高于来自第一级(L0)高速缓冲存储器的路由选择优先权;以及
强制L0好像L0具有来自L0的数据集的高速缓存不命中那样操作,并令L1执行来自L0的数据集的高速缓存搜索。
24.权利要求22的方法,其中从芯片上第二级(L1)高速缓冲存储器输出数据集到多路复用器进一步包括:
给予来自芯片上第二级(L1)高速缓冲存储器的数据集高于来自芯片上第一级(L0)高速缓冲存储器的路由选择优先权;以及
强制L0好像L0具有来自L0的数据集的高速缓存不命中那样操作,并令L1执行来自L0的数据集的高速缓存搜索。
25.权利要求22的方法,其中操作表示芯片上第二级高速缓冲存储器中第一虚拟地址的高速缓冲命中的数据集包括并行操作表示芯片上第二级高速缓冲存储器中第二虚拟地址的高速缓存命中的第二数据集。
26.权利要求22的方法,其中该方法还包括当在芯片上第二级中在第一虚拟地址与第二虚拟地址之间发生存储体冲突时在排队结构中排队第一虚拟地址。
27.权利要求26的方法,其中当在芯片上第二级中在第一虚拟地址与第二虚拟地址之间发生存储体冲突时在排队结构中排队第一虚拟地址进一步包括在排队结构中排队表示芯片上第一级高速缓冲存储器中第二虚拟地址的第一级高速缓存不命中的第一命中/不命中信号。
28.权利要求22的方法,其中该方法进一步包括在第二时钟周期中操作芯片上第一级高速缓冲存储器中对应于芯片上第一级高速缓冲存储器中第二虚拟地址的高速缓存命中的数据集。
29.权利要求22的方法,其中该方法进一步包括在第二时钟周期中通过多路复用器将经过操作的数据集从芯片上第一级输出到功能单元。
CNB998153621A 1998-12-31 1999-12-29 双端口管道两级高速缓冲存储器系统 Expired - Fee Related CN1154049C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/223,847 US6272597B1 (en) 1998-12-31 1998-12-31 Dual-ported, pipelined, two level cache system
US09/223,847 1998-12-31

Publications (2)

Publication Number Publication Date
CN1333906A CN1333906A (zh) 2002-01-30
CN1154049C true CN1154049C (zh) 2004-06-16

Family

ID=22838194

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998153621A Expired - Fee Related CN1154049C (zh) 1998-12-31 1999-12-29 双端口管道两级高速缓冲存储器系统

Country Status (7)

Country Link
US (1) US6272597B1 (zh)
CN (1) CN1154049C (zh)
AU (1) AU2220500A (zh)
DE (1) DE19983859T1 (zh)
GB (1) GB2359910B (zh)
TW (1) TW454161B (zh)
WO (1) WO2000039764A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428209C (zh) * 2006-12-22 2008-10-22 清华大学 一种自适应的外部存储设备io性能优化方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10002120B4 (de) * 1999-02-13 2006-04-20 International Business Machines Corp. Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
US6625714B1 (en) * 1999-12-17 2003-09-23 Hewlett-Packard Development Company, L.P. Parallel distributed function translation lookaside buffer
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
US6427188B1 (en) * 2000-02-09 2002-07-30 Hewlett-Packard Company Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US6647464B2 (en) 2000-02-18 2003-11-11 Hewlett-Packard Development Company, L.P. System and method utilizing speculative cache access for improved performance
US6427189B1 (en) * 2000-02-21 2002-07-30 Hewlett-Packard Company Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline
US6729652B2 (en) 2001-12-26 2004-05-04 Cloud-Rider Designs Vehicle mud flap
US6862028B2 (en) 2002-02-14 2005-03-01 Intel Corporation Bin pointer and state caching apparatus and method
US20030163643A1 (en) * 2002-02-22 2003-08-28 Riedlinger Reid James Bank conflict determination
US7143239B2 (en) * 2003-08-07 2006-11-28 Hewlett-Packard Development Company, L.P. Cache structure and methodology
US7296139B1 (en) 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
US7334108B1 (en) 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
US7123496B2 (en) * 2004-05-10 2006-10-17 Intel Corporation L0 cache alignment circuit
US8886895B2 (en) * 2004-09-14 2014-11-11 Freescale Semiconductor, Inc. System and method for fetching information in response to hazard indication information
US7434009B2 (en) * 2004-09-30 2008-10-07 Freescale Semiconductor, Inc. Apparatus and method for providing information to a cache module using fetch bursts
US20080005728A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity in an execution environment
US20080005727A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for enabling cross language access to an addressable entity
US20080005528A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space
US20080005752A1 (en) * 2006-06-30 2008-01-03 Robert Paul Morris Methods, systems, and computer program products for generating application processes by linking applications
US20080127220A1 (en) * 2006-06-30 2008-05-29 Robert Paul Morris Methods, systems, and computer program products for creating an input-value-specific loadable instance of an application
US20080022265A1 (en) * 2006-06-30 2008-01-24 Morris Robert P Methods, systems, and computer program products for generating and using object modules
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080005719A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, systems, and computer program products for providing a program execution environment
US7734890B2 (en) * 2006-10-06 2010-06-08 Okralabs Llc Method and system for using a distributable virtual address space
WO2008047180A1 (en) * 2006-10-20 2008-04-24 Freescale Semiconductor, Inc. System and method for fetching an information unit
US20080120604A1 (en) * 2006-11-20 2008-05-22 Morris Robert P Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation
US20080320282A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Transaction Support For Executable Program Components
US20080320459A1 (en) * 2007-06-22 2008-12-25 Morris Robert P Method And Systems For Providing Concurrency Control For Addressable Entities
US20090249021A1 (en) * 2008-03-26 2009-10-01 Morris Robert P Method And Systems For Invoking An Advice Operation Associated With A Joinpoint
US8166229B2 (en) * 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
CN101770437B (zh) * 2008-12-30 2013-05-29 中国科学院电子学研究所 实现同步双端口存储器ip的并行读写的装置及方法
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
CN102591817B (zh) * 2011-12-30 2014-12-31 中山大学 一种多总线桥控制器及其实现方法
US10198358B2 (en) * 2014-04-02 2019-02-05 Advanced Micro Devices, Inc. System and method of testing processor units using cache resident testing
CN107038125B (zh) * 2017-04-25 2020-11-24 上海兆芯集成电路有限公司 具有加速预取请求的独立流水线的处理器高速缓存

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JP2703418B2 (ja) * 1991-04-24 1998-01-26 株式会社東芝 中央演算処理装置
US5442766A (en) * 1992-10-09 1995-08-15 International Business Machines Corporation Method and system for distributed instruction address translation in a multiscalar data processing system
US5510934A (en) * 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
EP0840231A1 (en) * 1996-10-31 1998-05-06 Texas Instruments Incorporated Microprocessor comprising multi-level cache memory
US6119222A (en) * 1996-12-23 2000-09-12 Texas Instruments Incorporated Combined branch prediction and cache prefetch in a microprocessor
US6101579A (en) * 1997-03-07 2000-08-08 Mitsubishi Semiconductor America, Inc. Multi-port memory device having masking registers
US6065091A (en) * 1997-05-30 2000-05-16 Via-Cyrix, Inc. Translation look-aside buffer slice circuit and method of operation
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US5930819A (en) * 1997-06-25 1999-07-27 Sun Microsystems, Inc. Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428209C (zh) * 2006-12-22 2008-10-22 清华大学 一种自适应的外部存储设备io性能优化方法

Also Published As

Publication number Publication date
GB2359910A (en) 2001-09-05
AU2220500A (en) 2000-07-31
DE19983859T1 (de) 2002-02-28
TW454161B (en) 2001-09-11
GB0112694D0 (en) 2001-07-18
WO2000039764A1 (en) 2000-07-06
US6272597B1 (en) 2001-08-07
CN1333906A (zh) 2002-01-30
WO2000039764A9 (en) 2000-12-07
GB2359910B (en) 2003-12-17

Similar Documents

Publication Publication Date Title
CN1154049C (zh) 双端口管道两级高速缓冲存储器系统
US5895487A (en) Integrated processing and L2 DRAM cache
US6965969B2 (en) Non-uniform cache apparatus, systems, and methods
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
US5826052A (en) Method and apparatus for concurrent access to multiple physical caches
EP0637800B1 (en) Data processor having cache memory
US7389402B2 (en) Microprocessor including a configurable translation lookaside buffer
US6223258B1 (en) Method and apparatus for implementing non-temporal loads
US7831760B1 (en) Serially indexing a cache memory
KR101456860B1 (ko) 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템
US20130046934A1 (en) System caching using heterogenous memories
US5649154A (en) Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US20060047884A1 (en) System and method for power efficent memory caching
CN1652092A (zh) 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
CN1955948A (zh) 用于管理高速缓存数据的数字数据处理设备和方法
CN1717664A (zh) 包含用于支持每周期多次存取的高速缓存存储器的微处理器
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
CN1306419C (zh) 一种高速缓存及从高速缓存读取数据的方法
CN1896972A (zh) 用于虚实地址变换及读写高速缓冲存储器的方法及装置
US6427189B1 (en) Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline
EP1111511B1 (en) Cache with multiple fill modes
US5761714A (en) Single-cycle multi-accessible interleaved cache
JP2003256275A (ja) バンク競合決定
US6240487B1 (en) Integrated cache buffers
US7649764B2 (en) Memory with shared write bit line(s)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040616

Termination date: 20121229