CN101523359A - 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 - Google Patents

具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 Download PDF

Info

Publication number
CN101523359A
CN101523359A CNA2007800369813A CN200780036981A CN101523359A CN 101523359 A CN101523359 A CN 101523359A CN A2007800369813 A CNA2007800369813 A CN A2007800369813A CN 200780036981 A CN200780036981 A CN 200780036981A CN 101523359 A CN101523359 A CN 101523359A
Authority
CN
China
Prior art keywords
storing
data bits
tag array
micro tag
processor
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.)
Granted
Application number
CNA2007800369813A
Other languages
English (en)
Other versions
CN101523359B (zh
Inventor
R·C·金特
M·科诺斯
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.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Original Assignee
MIPS Technologies Inc
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
Priority claimed from US11/505,865 external-priority patent/US7650465B2/en
Application filed by MIPS Technologies Inc filed Critical MIPS Technologies Inc
Priority claimed from PCT/US2007/017896 external-priority patent/WO2008024221A2/en
Publication of CN101523359A publication Critical patent/CN101523359A/zh
Application granted granted Critical
Publication of CN101523359B publication Critical patent/CN101523359B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种具有减小数据高速缓存访问功率的微标签阵列的处理器和系统。该处理器和系统包括具有多个dataram、处理器流水线寄存器(402)和微标签阵列(410)。该微标签阵列被耦合到该高速缓存和处理器流水线寄存器。该微标签阵列存储基址数据位或基址寄存器数据位、偏移数据位、进位位以及路选数据位。当取出LOAD或STORE指令时,指令的至少部分基址和至少部分偏移与该微标签阵列中存储的数据比较。如果发生微标签阵列命中,那么该微标签阵列产生高速缓存dataram使能信号。该信号仅仅使能高速缓存的单个dataram。

Description

具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用
技术领域
本发明总体上涉及处理器,更具体地说,涉及减小处理器中的高速缓存访问功率。
背景技术
许多处理器具有高速缓存。高速缓存是用于临时存储数据的存储器块,与主存储器相比,其可以被处理器更迅速地访问。高速缓存阵列典型地由地址位的子集索引,并被标签以剩余的地址位。在集联(set-associative)高速缓存中,高速缓存中的每个索引可以保持多个存储器位置。例如,4路集联高速缓存可以在每个高速缓存索引上保持4个存储器位置。典型的集联高速缓存具有保持标签值的一个或多个阵列,称为tagram,以及保持数据值的一个或多个阵列,称为dataram。对于快速访问,通常在分开的dataram中实现每路数据。
为了使处理器在其峰值性能下或接近其峰值性能地操作,常规处理器的高速缓存的tagram和dataram在每个存储器读操作和每个存储器写操作过程中被并行激励(energize)和访问。在每次操作之后(例如,其中发生高速缓存命中),选择处理过程选择高速缓存的一个dataram的内容并将该内容提供给处理器。剩余的dataram的内容被忽略。
尽管该常规高速缓存访问技术起作用,但是在处理器的每个存储器读和每个存储器写操作过程中激励tagram和多个dataram浪费了能量。需要用于访问高速缓存的新技术和方法,其克服与常规高速缓存访问技术和方法相关的缺点和限制。
发明内容
本发明提供具有减小数据高速缓存访问功率的微标签阵列的处理器和系统。该处理器和系统包括具有多个dataram、处理器流水线(pipeline)寄存器以及微标签阵列的高速缓存。微标签阵列被耦合到高速缓存和处理器流水线寄存器。微标签阵列存储基址数据位或基址寄存器(base register)数据位、偏移数据位、进位位以及路选(wayselection)数据位。当LOAD(加载)或STORE(存储)指令被取出(fetch)时,该指令的至少一部分基址和至少一部分偏移与微标签阵列中存储的数据相比较。如果发生微标签阵列命中,那么微标签阵列产生高速缓存dataram使能信号。该信号仅仅使能高速缓存的单个dataram。如果发生微标签阵列命中,那么也产生禁止高速缓存tagram的信号。
本发明的一个特征是,使用处理流水线的前几级(early stages),以导出可用的高速缓存路选信息。基于先前的路选信息的该信息用来确定高速缓存的哪个dataram存储所需数据,以用来通过仅仅使能包含所需数据的dataram,主动地节省功率。
下面将参考附图详细描述本发明进一步的实施例、特征和优点,以及本发明的各个实施例的结构和操作。
附图说明
这里引入并构成说明书一部分的附图与实施例一起图示本发明,还用来说明本发明的原理和使所属领域的技术人员能进行和使用本发明。
图1是根据本发明实施例的处理器的视图。
图2是具有根据本发明第一实施例的微标签阵列的处理器的视图。
图3是具有根据本发明第二实施例的微标签阵列的处理器的视图。
图4是具有根据本发明第三实施例的微标签阵列的处理器的视图。
图5是具有根据本发明第四实施例的微标签阵列的处理器的视图。
图6是根据本发明的示例系统实施例的视图。
下面参考附图描述本发明。其中首次出现元件的附图典型地由相应参考数字中的最左边数位或多个数位表示。
具体实施方式
本发明提供具有微标签阵列的处理器和系统及其应用,该微标签阵列减小数据高速缓存访问功率。在下述的对本发明的具体说明中,提到“一个实施例”,“一实施例”、“示例实施例”等,表示所述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不是必需包括该特定特征、结构或特性。而且,这种措词并不必然指相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合其他明确描述或未明确描述的实施例来实现这种特征、结构或特性是在所属领域的技术人员的知识范围内的。
图1是根据本发明实施例的处理器100的视图。如图1所示,处理器100包括执行单元102、取出单元104、浮点单元106、加载/存储单元108、存储器管理单元(MMU)110、指令高速缓存112、数据高速缓存114、总线接口单元116、功率管理单元118、乘法/除法单元(MDU)120以及协处理器122。尽管在这里处理器100被描述为包括几个分离组件,但是这些组件中的许多组件是可选组件,将不是在本发明的每个实施例中都出现的;或是可以结合的组件,例如,使两个组件的功能性处在一个组件内。因此,图1所示的单独组件是说明性的,并不意图限制本发明。
执行单元102优选用算术逻辑单元操作(例如,逻辑、移位(shift)、加法、减法等)执行加载-存储(RISC)体系结构。在一个实施例中,执行单元102包括用于标量整数操作及地址计算的32位通用寄存器(未示出)。可选地,可以包括一个或多个附加寄存器堆组,以最小化内容切换开销(overhead),例如,在中断和/或异常处理过程中的内容切换开销。执行单元102与取出单元104、浮点单元106、加载/存储单元108、乘法-除法单元120和协处理器122接口连接。
取出单元104负责提供指令到执行单元102。在一个实施例中,取出单元104包括用于指令高速缓存112的控制逻辑、用于重编码压缩格式指令的记录器、动态分支预测、用于取出单元104与执行单元102的去耦合(decouple)操作的指令缓冲器,以及到便笺存储器(scratch pad)(未示出)的接口。取出单元104与执行单元102、存储器管理单元110、指令高速缓存112以及总线接口单元116接口连接。
浮点单元106与执行单元102接口连接,并对非整数数据进行操作。因为许多应用不需要浮点单元的功能性,因此处理器100的该组件将不是在本发明的所有实施例中都存在的。
加载/存储单元108负责数据加载和存储,并包括数据高速缓存控制逻辑。加载/存储单元108与数据高速缓存114及其他存储器如便笺存储器和/或填充缓冲器(fill buffer)接口连接。加载/存储单元108也与存储器管理单元110和总线接口单元116接口连接。
存储器管理单元110将虚拟地址转换为用于存储器访问的物理地址。在一个实施例中,存储器管理单元110包括转换旁路缓冲器(TLB),并可以包括分开的指令TLB和分开的数据TLB。存储器管理单元110与取出单元104和加载/存储单元108接口连接。
指令高速缓存112是被组织为多路集联高速缓存的片上(on-chip)存储器阵列,所述多路集联高速缓存例如2-路集联高速缓存或4-路集联高速缓存等。指令高速缓存112优选被虚拟地索引并被物理地加以标签,由此允许与高速缓存访问并行地发生虚拟-到-物理地址转换。在一个实施例中,该标签除物理地址位之外,还包括有效位和可选奇偶校验位。指令高速缓存112与取出单元104接口连接。
数据高速缓存114也是片上存储器阵列。数据高速缓存114优选被虚拟地索引并被物理地加以标签。在一个实施例中,该标签除物理地址位之外还包括有效位和可选奇偶校验位。如下面更详细描述的,本发明的一个特征是可以有选择地使能和禁止数据高速缓存114的组件,以减小处理器100消耗的总功率。数据高速缓存114与加载/存储单元108接口连接。
总线接口单元116控制用于处理器100的外部接口信号。在一个实施例中,总线接口单元116包括用来合并写通事项(write-throughtransaction)和来自未高速缓存的存储的集中写入(gather write)的崩溃(collapsing)写缓冲器。
功率管理单元118提供多个功率管理特征,包括低功率设计特征、主动(active)功率管理特征和掉电(power down)操作模式。在一个实施例中,处理器100执行等候指令,其发信号到处理器100的选定组件:执行和/或时钟应该暂停(halt),由此减少空闲期期间的功耗。这些功率管理特征是除在此参考例如图2-5描述的功率节省特征之外的特征。
乘法/除法单元120执行处理器100的乘法和除法操作。在一个实施例中,乘法/除法单元120优选包括流水线化的乘法器、结果和累加寄存器及乘法和除法状态机,以及要执行例如乘法、乘法-加法以及除法功能的控制逻辑。如图1所示,乘法/除法单元120与执行单元102接口连接。
协处理器122执行用于处理器100的各种开销功能。在一个实施例中,协处理器122负责虚拟-至-物理地址转换、执行高速缓存协议、异常处理、工作模式选择以及使能/禁止中断功能。协处理器122与执行单元102接口连接。
图2是具有根据本发明实施例的微标签阵列210的处理器的视图。除微标签阵列210之外,该处理器还包括寄存器堆202和处理器流水线寄存器204。
如图2所示,微标签阵列210包括寄存器212、214、216和218。这四个寄存器包括微标签210的阵列条目。微标签阵列210还包括比较器220、222和224,加法器226,和控制逻辑228、230和232。微标签阵列210被耦合到处理器流水线寄存器204。
寄存器212用来存储路选数据位。所存储的路选数据位标识高速缓存(诸如数据高速缓存114)的特定dataram,图1所示。寄存器212中存储的位数是B8。在一个实施例中,B8是具有1-热编码(hotencoding)的4位,该1-热编码表示在先前的高速缓存访问中使用4路中的哪一个。
寄存器214用来存储基址数据位。寄存器214中存储的位是通过流水线处理器寄存器204的基址部分206提供给寄存器214的。寄存器212中存储的位数是B4。在一个实施例中,B4是三十二位存储器基址的高(upper)二十七位。在另一实施例中,可以存储超过或少于二十七位。
寄存器216用来存储偏移数据位。寄存器216中存储的位是通过流水线处理器寄存器204的偏移部分208提供给寄存器216的。寄存器216中存储的位数是B6。在一个实施例中,B6是十六位存储器偏移的高十一位。在另一实施例中,可以存储超过或少于十一位。
寄存器218用来存储进位位。寄存器218中存储的进位位由加法器226产生。
如图2所示,每当阵列更新信号被应用于这些寄存器时,数据位被读到寄存器212、214、216和218中。该阵列更新信号由控制逻辑234产生。每当阵列无效信号被应用于这些寄存器,从寄存器212、214、216和218清除数据(或将其标记为无效)。该阵列无效信号由控制逻辑236产生。
微标签阵列210的比较器220被耦合到寄存器214和处理器流水线寄存器204的基址部分206。比较器220将处理器流水线寄存器204的基址部分206中存储的位与寄存器214中存储的位相比较。如果两组位匹配,那么比较器220产生命中信号。否则,比较器220产生未命中信号。比较器220的输出信号被提供给控制逻辑228。
微标签阵列210的比较器222被耦合到寄存器216和处理器流水线寄存器204的偏移部分208。比较器222将处理器流水线寄存器204的偏移部分208中存储的位与寄存器216中存储的位相比较。如果两组位匹配,那么比较器222产生命中信号。否则,比较器222产生未命中信号。比较器222的输出信号被提供给控制逻辑228。
微标签阵列210的比较器224被耦合到寄存器218和加法器226。比较器224将寄存器218中存储的进位位与由加法器226产生的进位位相比较。如果两个进位位匹配,那么比较器224产生命中信号。否则,比较器224产生未命中信号。比较器224的输出信号被提供给控制逻辑228。
加法器226将处理器流水线寄存器204的基址部分206中存储的位B5与处理器流水线寄存器204的偏移部分208中存储的位B7相加,并产生进位位。该进位位被提供给比较器224。该进位位还被存储在寄存器218中。在一个实施例中,加法器226将处理器流水线寄存器204的基址部分206中存储的存储器基址的低(lower)五位与处理器流水线寄存器204的偏移部分208中存储的存储器偏移的低五位相加。在另一实施例中,可以通过加法器226将超过或少于五位相加。
如果每个比较器220、222和224都产生命中信号,那么控制逻辑228产生微标签阵列条目命中信号。否则,控制逻辑228产生未命中信号。控制逻辑228的输出信号被提供给控制逻辑230和控制逻辑232。
控制逻辑230用来产生dataram使能信号。到控制逻辑230的输入是控制逻辑228的输出信号、LOAD/STORE ACCESS信号以及寄存器212中存储的路选数据位。
控制逻辑232用来产生tagram使能信号。到控制逻辑232的输入是控制逻辑228的输出信号和LOAD/STORE ACCESS信号。
图3是具有根据本发明实施例的微标签阵列310的处理器的视图。微标签阵列300包括多个阵列条目302。在本发明的优选实施例中,微标签阵列300包括从一至四阵列条目302。但是本发明不限于具有在一和四之间个阵列条目。如下面更详细地描述的,微标签阵列300是多条目微标签阵列,其以类似于微标签阵列210的方式操作。
图2和3的处理器如下操作。由处理器取出指令201。在实施例中,指令201是具有操作码(opcode)203、基址寄存器值205、目的(或源)寄存器值207以及偏移值209的LOAD或STORE指令。该基址寄存器值包括B1位,用来将寄存器堆202中存储的基址值传送到处理器流水线寄存器204的基址部分206。偏移值209包括B2位,其被存储在处理器流水线寄存器204的偏移部分208中。
使用比较器220将处理器流水线寄存器204的基址部分206中存储的位的子集与寄存器214中存储的位相比较。该比较确定指令201的基址是否匹配微标签阵列的阵列条目中存储的基址。
使用比较器222将处理器流水线寄存器204的偏移部分208中存储的位的子集与寄存器216中存储的位相比较。该比较确定指令201的偏移值是否匹配微标签阵列的条目中存储的偏移值。
为了发现在特定的dataram范围内的匹配和消除相邻集访问(neighbor set access),加法器226将流水线处理器寄存器204的位B5和B7(例如,基址值和指令201的偏移值的低五位)相加以产生进位值。然后该进位值与寄存器218中存储的进位值相比较。
如果与微标签阵列的特定条目相关的每个比较器220、222和224产生命中信号,那么控制逻辑228产生命中信号,这使得控制逻辑230使能由寄存器212中存储的位所指定的单个dataram。这也禁止tagram。
在一个实施例中,在处理器启动时,每个寄存器212、214、216和218被设为零。由处理器执行的第一个LOAD或STORE指令将访问数据高速缓存,而没有微标签阵列命中。因此,将以常规方式访问高速缓存。但是,高速缓存标签比较的输出结果将产生路选信息,该路选信息将被存储在微标签阵列的阵列条目的寄存器212中。该指令的基址值和偏移值也将被存储在阵列条目中。然后该信息可供与由处理器执行的下一个LOAD或STORE指令一起使用。
如果下一个LOAD或STORE指令在微标签阵列的第一条目内不产生命中,则找到另一微标签阵列条目,且访问信息被如上所述地存储。该填充处理将继续直到微标签阵列的所有可用条目被填充。在一实施例中,当这发生时,微标签阵列的第一条目被再次宣告适于数据存储。这种替代方案通常被称为最少最近填充替代方案,它容易使用移位寄存器(例如,1-热N位移位寄存器)实现。在本发明的其他实施例中实现了其它替代方案,诸如最少最近使用方案。
在一个实施例中,由于与LOAD/STORE访问事件相比,再填充操作是相对稀有的事件,因此每当发生tagram写入时,控制逻辑236使微标签阵列的所有阵列条目无效。在另一实施例中,控制逻辑236仅仅有选择地使微标签阵列的、其路选数据位与高速缓存的期望的再填充路线对应的阵列条目无效。该实施例提高了微标签阵列的效率。
因为微标签阵列是比较虚拟地址,因此当虚拟到物理地址转换改变时,将需要使该阵列无效。该改变可以是对TLB阵列的写入或在当前地址空间中的改变的结果。这些是相对稀有的事件,并且使整个阵列无效并不显著降低微标签阵列的效率。在替换的实施例中,在微TLB中包括地址空间标识符将去除地址空间的更改上的对无效的需要。在另一实施例中,仅仅那些影响微标签阵列中使用的特定虚拟页的TLB写入将引起无效。
图4是具有根据本发明实施例的微标签阵列410的处理器的视图。如图4所示,微标签阵列410包括寄存器212、414、216和218。这四个寄存器包括微标签410的阵列条目。微标签阵列410还包括比较器414、222和224,加法器226和控制逻辑228、230和232。微标签阵列410被耦合到处理器流水线寄存器402。
寄存器212用来存储路选数据位。该存储的路选数据位标识高速缓存(诸如数据高速缓存114)的特定dataram,图1所示。寄存器212中存储的位数是B8。在一个实施例中,B8是具有1-热编码的4位,该1-热编码表示在先前的高速缓存访问中使用4路中的哪一个。
寄存器414用来存储基址寄存器数据位。寄存器414中存储的位是通过处理器流水线寄存器402的基址寄存器部分404提供给寄存器414的。寄存器412中存储的位数是B4。在一个实施例中,寄存器414中存储的位数等于指令201的基址寄存器值205中包含的位数。在另一实施例中,在寄存器414中可以存储不同的位数,例如,如果指令201是压缩格式指令并且零被加到位B1以使基址寄存器值与普通格式指令的基址寄存器值相容。
如图4所示,处理器流水线寄存器402也在处理器流水线寄存器402的基址部分406中存储基址位B9。这些位来自寄存器堆202的寄存器,该寄存器与指令201的基址寄存器值205有关。在一个实施例中,位B9是寄存器堆202中存储的存储器基址值的低五位。
寄存器216用来存储偏移数据位。寄存器216中存储的位是通过流水线处理器寄存器402的偏移部分408提供给寄存器216的。寄存器216中存储的位数是B6。在一个实施例中,B6是十六位存储器偏移的高十一位。在其他实施例中,可以存储超过或少于十一位。
寄存器218用来存储进位位。寄存器218中存储的进位位由加法器226产生。
如图4所示,每当阵列更新信号被应用于这些寄存器时,数据位被读到寄存器212、414、216和218中。该阵列更新信号由控制逻辑234产生。每当阵列无效信号被应用于这些寄存器,从寄存器212、414、216和218清除数据(或将其标记为无效)。该阵列无效信号由控制逻辑236产生。
微标签阵列410的比较器414被耦合到寄存器412和处理器流水线寄存器402的基址寄存器部分404。比较器414将处理器流水线寄存器402的基址寄存器部分404中存储的位与寄存器412中存储的位相比较。如果两组位匹配,那么比较器414产生命中信号。否则,比较器414产生未命中信号。比较器414的输出信号被提供给控制逻辑228。
微标签阵列410的比较器222被耦合到寄存器216和处理器流水线寄存器402的偏移部分408。比较器222将处理器流水线寄存器402的偏移部分408中存储的位与寄存器216中存储的位相比较。如果两组位匹配,那么比较器222产生命中信号。否则,比较器222产生未命中信号。比较器222的输出信号被提供给控制逻辑228。
微标签阵列410的比较器224被耦合到寄存器218和加法器226。比较器224将寄存器218中存储的进位位与由加法器226产生的进位位相比较。如果两个进位位匹配,那么比较器224产生命中信号。否则,比较器224产生未命中信号。比较器224的输出信号被提供给控制逻辑228。
加法器226将处理器流水线寄存器402的基址部分406中存储的位B9与处理器流水线寄存器402的偏移部分408中存储的位B7相加,并产生进位位。该进位位被提供给比较器224。该进位位还被存储在寄存器218中。在一个实施例中,加法器226将处理器流水线寄存器402的基址部分406中存储的存储器基址的低五位与处理器流水线寄存器402的偏移部分408中存储的存储器偏移的低五位相加。在其他实施例中,可以由加法器226将超过或少于五位相加。
如果每个比较器414、222和224都产生命中信号,那么控制逻辑228产生微标签阵列条目命中信号。否则,控制逻辑228产生未命中信号。控制逻辑228的输出信号被提供给控制逻辑230和控制逻辑232。
控制逻辑230用来产生dataram使能信号。到控制逻辑230的输入是控制逻辑228的输出信号、LOAD/STORE ACCESS信号以及寄存器212中存储的路选数据位。
控制逻辑232用来产生tagram使能信号。到控制逻辑232的输入是控制逻辑228的输出信号和LOAD/STORE ACCESS信号。
图5是具有根据本发明实施例的微标签阵列510的处理器的视图。微标签阵列500包括多个阵列条目502。在本发明的优选实施例中,微标签阵列500包括从一至四阵列条目502。但是本发明不限于具有在一个和四个之间的阵列条目。微标签阵列500是以类似于微标签阵列410的方式操作的多条目微标签阵列。
如由图2和4的比较可以看到,通过图2的处理器的寄存器214和比较器220实现的基址比较被图4的处理器中的基址寄存器比较替代。该基址寄存器比较使用寄存器412和比较器414来实现。图4的处理器的这些特征避免需要宽的基址比较,且对于高速处理器,提供更多的时序灵活性。
图4和5的处理器以类似于这里根据图2和3的处理器描述的方式操作。因此,这里不必重复这些描述。这里请参见本发明的处理器怎样操作从而减小数据高速缓存访问功率的相关描述。
图6是根据本发明实施例的示例系统600的视图。系统600包括处理器602、存储器604、输入/输出(I/O)控制器606、时钟608以及定制硬件610。在一实施例中,系统600是专用集成电路(ASIC)或芯片上的系统(SOC)。
处理器602是包括在此描述的本发明的特征和/或实现本发明的方法实施例的任意处理器。在一个实施例中,处理器602包括指令取出单元、指令高速缓存、指令译码和分配单元、一个或多个指令执行单元、数据高速缓存、寄存器堆以及总线接口单元,类似于如上所述的处理器100。
存储器604可以是能存储指令和/或数据的任意存储器。存储器604可以包括,例如,随机存取存储器和/或只读存储器。
输入/输出(I/O)控制器606用来允许系统600的组件接收和/或发送信息到外围设备。I/O控制器606可以包括,例如,模数转换器和/或数-模转换器。
时钟608用来确定系统600的时序子系统什么时候改变状态。例如,每当时钟608的时钟信号运行(tick)时,系统600的状态寄存器捕捉由组合逻辑产生的信号。在一实施例中,可以改变时钟608的时钟信号。时钟信号也可以被划分(分频),例如,在它被提供给系统600的选定的组件之前。
定制硬件610是增加到系统600的任意硬件,以使系统600适于特定应用。定制硬件610可以包括,例如,用于解码音频和/或视频信号、加速图形操作和/或实现智能传感器所需的硬件。相关领域的技术人员将理解怎样实现定制硬件610使系统600适于特定应用。
尽管上面已经描述了本发明的多个实施例,但是应当理解,这些实施例是以例子的方式呈现的,而不是限制。对于所属领域的普通技术人员显而易见的是,在不脱离本发明的精神和范围的条件下,可以在形式上和细节上进行各种改变。此外,应该理解,在此提供的本发明的详细描述,而不是概要和摘要部分,意图用来解释权利要求。概要和摘要部分可以阐述发明人所构思的本发明的一个或多个示例性实施例,但不是所有示例性实施例。
例如,除使用硬件(例如,在中央处理单元(“CPU”)、微处理器、微控制器、数字信号处理器、处理器核心、片上系统(“SOC”)或任意其他可编程或电子器件内或与其耦合)的实施方式之外,实施方式也可以以设置在配置来存储软件的计算机可用(例如,可读)介质中的软件(例如,以任意形式如源、对象或机器语言设置的计算机可读代码、程序代码、指令和/或数据)实现。这种软件可以使得能够实现例如在此描述的设备和方法的功能、制造、建模、模拟、描述和/或测试。例如,这可以通过使用通用编程语言(例如,C、C++)、GDS II数据库、硬件描述语言(HDL)(包括Verilog HDL、VHDL、SystemC Register Transfer Level(RTL)等),或其他可用的程序、数据库和/或电路(即,示意图)捕捉工具来完成。这种软件可以被布置在任意巳知的计算机可用介质中,该计算机可用介质包括半导体、磁盘、光盘(例如,CD-ROM、DVD-ROM等),以及作为以计算机可用(例如,可读)传输介质(例如,载波或任意其他介质,包括基于数字、光学或模拟的介质)实现的计算机数据信号。因而,可以在包括因特网和内部网的通信网络上传送该软件。
应理解,在此描述的设备和方法实施例可以被包括在半导体知识产权核如微处理器核(例如,以HDL体现)中,并可以在集成电路的制造中转换为硬件。另外,在此描述的设备和方法可以体现为硬件和软件的组合。因此,本发明不应该受上述示例性实施例限制,而是应该仅仅根据下列权利要求和它们的等同范围来限定。

Claims (43)

1.一种实现加载和存储指令的处理器,包括:
高速缓存,其包括多个dataram;
处理器流水线寄存器,其存储基址数据位和偏移数据位;以及
微标签阵列,其耦合到该高速缓存和处理器流水线寄存器,其中该微标签阵列存储基址数据位、偏移数据位、进位位以及路选数据位,以及
如果该处理器流水线寄存器中存储的第一选择的基址数据位匹配该微标签阵列中存储的基址数据位,并且
如果该处理器流水线寄存器中存储的第一选择的偏移数据位匹配该微标签阵列中存储的偏移数据位,并且
如果通过该处理器流水线寄存器中存储的第二选择的基址数据位和该处理器流水线寄存器中存储的第二选择的偏移数据位的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
那么该微标签阵列输出使能信号,该使能信号使能由微标签阵列中存储的路选数据位规定的该高速缓存的第一dataram。
2.权利要求1的处理器,其中该第一选择的基址数据位由该处理器流水线寄存器中存储的基址数据位的子集构成。
3.权利要求1的处理器,其中该第一选择的偏移数据位由该处理器流水线寄存器中存储的偏移数据位的子集构成。
4.权利要求1的处理器,其中该第二选择的基址数据位由该处理器流水线寄存器中存储的基址数据位的子集构成,以及该第二选择的偏移数据位由该处理器流水线寄存器中存储的偏移数据位的子集构成。
5.权利要求1的处理器,其中,如果该处理器流水线寄存器中存储的第一选择的偏移数据位不匹配该微标签阵列中存储的偏移数据位,那么该微标签阵列输出使能高速缓存的tagram的使能信号。
6.权利要求1的处理器,其中该微标签阵列包括多个阵列条目,每个阵列条目存储基址数据位、偏移数据位、进位位以及路选数据位。
7.权利要求6的处理器,其中根据最少最近填充取代方案,取代微标签阵列中存储的数据。
8.一种实现加载和存储指令的处理器,包括:
高速缓存,其包括多个dataram;
处理器流水线寄存器,其存储基址寄存器数据位、基址数据位以及偏移数据位;以及
微标签阵列,其耦合到该高速缓存和处理器流水线寄存器,其中该微标签阵列存储基址寄存器数据位、偏移数据位、进位位以及路选数据位,以及
如果该处理器流水线寄存器中存储的第一选择的基址寄存器数据位匹配该微标签阵列中存储的基址寄存器数据位,并且
如果该处理器流水线寄存器中存储的第一选择的偏移数据位匹配该微标签阵列中存储的偏移数据位,并且
如果通过该处理器流水线寄存器中存储的第一选择的基址数据位和该处理器流水线寄存器中存储的第二选择的偏移数据位的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
那么该微标签阵列输出使能信号,该使能信号使能由该微标签阵列中存储的路选数据位规定的该高速缓存的第一dataram。
9.权利要求8的处理器,其中该第一选择的偏移数据位由该处理器流水线寄存器中存储的偏移数据位的子集构成。
10.权利要求8的处理器,其中该第二选择的偏移数据位由该处理器流水线寄存器中存储的偏移数据位的子集构成。
11.权利要求8的处理器,其中,如果该处理器流水线寄存器中存储的第一选择的偏移数据位不匹配该微标签阵列中存储的偏移数据位,那么该微标签阵列输出使能该高速缓存的tagram的使能信号。
12.权利要求8的处理器,其中该微标签阵列包括多个阵列条目,每个阵列条目存储基址寄存器数据位、偏移数据位、进位位以及路选数据位。
13.权利要求12的处理器,其中根据最少最近填充取代方案,取代该微标签阵列中存储的数据。
14.一种系统,包括:
高速缓存,其包括多个dataram;
处理器流水线寄存器,其存储第一数据位和第二数据位;以及
微标签阵列,其耦合到该高速缓存和处理器流水线寄存器,其中该微标签阵列存储第一数据位、第二数据位、进位位以及路选数据位,以及
如果该处理器流水线寄存器中存储的所选择的第一数据位匹配该微标签阵列中存储的第一组数据位,并且
如果该处理器流水线寄存器中存储的所选择的第二数据位匹配该微标签阵列中存储的第二组数据位,并且
如果通过该处理器流水线寄存器中存储的数据位的第一子集和该处理器流水线寄存器中存储的数据位的第二子集的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
那么该微标签阵列输出使能信号,该使能信号使能由该微标签阵列中存储的路选数据位规定的该高速缓存的第一dataram。
15.权利要求14的系统,其中该第一数据位是基址数据位,而该第二数据位是偏移数据位。
16.权利要求14的系统,其中该第一数据位是基址寄存器数据位,而该第二数据位是偏移数据位。
17.权利要求14的系统,其中该微标签阵列包括多个阵列条目,每个阵列条目存储基址数据位、偏移数据位、进位位以及路选数据位。
18.权利要求17的系统,其中根据最少最近填充取代方案,取代该微标签阵列中存储的数据。
19.一种有形的计算机可读存储介质,包括以软件实现的处理器,该处理器包括:
高速缓存,其包括多个dataram;
处理器流水线寄存器,其存储第一数据位和第二数据位;以及
微标签阵列,其耦合到该高速缓存和处理器流水线寄存器,其中该微标签阵列存储第一数据位、第二数据位、进位位以及路选数据位,以及
如果该处理器流水线寄存器中存储的所选择的第一数据位匹配该微标签阵列中存储的第一组数据位,并且
如果该处理器流水线寄存器中存储的所选择的第二数据位匹配该微标签阵列中存储的第二组数据位,并且
如果通过该处理器流水线寄存器中存储的数据位的第一子集和该处理器流水线寄存器中存储的数据位的第二子集的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
那么该微标签阵列输出使能信号,该使能信号使能由该微标签阵列中存储的路选数据位规定的该高速缓存的第一dataram。
20.权利要求19的有形计算机可读存储介质,其中该第一数据位是基址数据位,而该第二数据位是偏移数据位。
21.权利要求19的有形计算机可读存储介质,其中该第一数据位是基址寄存器数据位,而该第二数据位是偏移数据位。
22.权利要求19的有形计算机可读存储介质,其中该微标签阵列包括多个阵列条目,每个阵列条目存储基址数据位、偏移数据位、进位位以及路选数据位。
23.权利要求22的有形计算机可读存储介质,其中根据最少最近填充取代方案,取代该微标签阵列中存储的数据。
24.权利要求19的有形计算机可读存储介质,其中该处理器以硬件描述语言软件实现。
25.权利要求24的有形计算机可读存储介质,其中该处理器以Verilog硬件描述语言软件和VHDL硬件描述语言软件之一实现。
26.一种减小处理器中的数据高速缓存访问功率的方法,包括:
(1)在微标签阵列中存储基址数据位、偏移数据位、进位位以及路选数据位;以及
(2)如果该处理器流水线寄存器中存储的第一选择的基址数据位匹配该微标签阵列中存储的基址数据位,并且
如果该处理器流水线寄存器中存储的第一选择的偏移数据位匹配该微标签阵列中存储的偏移数据位,并且
如果通过该处理器流水线寄存器中存储的第二选择的基址数据位和该处理器流水线寄存器中存储的第二选择的偏移数据位的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
则使能由该微标签阵列中存储的路选数据位规定的高速缓存的第一dataram。
27.根据权利要求26的方法,其中步骤(2)包括将该处理器流水线寄存器中存储的基址数据位的子集与该微标签阵列中存储的基址数据位相比较。
28.根据权利要求26的方法,其中步骤(2)包括将该处理器流水线寄存器中存储的偏移数据位的子集与该微标签阵列中存储的偏移数据位相比较。
29.根据权利要求26的方法,其中步骤(2)包括将该处理器流水线寄存器中存储的基址数据位的子集和该处理器流水线寄存器中存储的偏移数据位的子集相加,以形成第二进位位。
30.根据权利要求26的方法,其中该微标签阵列包括多个阵列条目,以及步骤(1)包括在每个阵列条目中存储基址数据位、偏移数据位、进位位以及路选数据位。
31.权利要求30的方法,还包括:根据最少最近填充取代方案,取代该阵列条目中存储的数据。
32.一种减小处理器中的数据高速缓存访问功率的方法,包括:
(1)在微标签阵列中存储基址寄存器数据位、偏移数据位、进位位以及路选数据位;以及
(2)如果该处理器流水线寄存器中存储的第一选择的基址寄存器数据位匹配该微标签阵列中存储的基址数据位,并且
如果该处理器流水线寄存器中存储的第一选择的偏移数据位匹配该微标签阵列中存储的偏移数据位,并且
如果通过处理器流水线寄存器中存储的第二选择的基址数据位和该处理器流水线寄存器中存储的第二选择的偏移数据位的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
则使能由该微标签阵列中存储的路选数据位规定的高速缓存的第一dataram。
33.如权利要求32的方法,其中步骤(2)包括将该处理器流水线寄存器中存储的偏移数据位的子集与微标签阵列中存储的偏移数据位相比较。
34.如权利要求32的方法,其中步骤(2)包括将该处理器流水线寄存器中存储的基址数据位的子集和该处理器流水线寄存器中存储的偏移数据位的子集相加,以形成所述第二进位位。
35.如权利要求32的方法,其中该微标签阵列包括多个阵列条目,以及步骤(1)包括在每个阵列条目中存储基址寄存器数据位、偏移数据位、进位位以及路选数据位。
36.如权利要求32的方法,还包括:
根据最少最近填充取代方案,取代该阵列条目中存储的数据。
37.一种减小处理器中的数据高速缓存访问功率的方法,包括:
(1)在微标签阵列中存储第一数据位、第二数据位、进位位以及路选数据位;以及
(2)如果处理器流水线寄存器中存储的所选择的第一数据位匹配该微标签阵列中存储的第一组数据位,并且
如果该处理器流水线寄存器中存储的所选择的第二数据位匹配该微标签阵列中存储的第二组数据位,并且
如果通过该处理器流水线寄存器中存储的数据位的第一子集和该处理器流水线寄存器中存储的数据位的第二子集的相加而形成的第二进位位匹配该微标签阵列中存储的进位位,
则使能由微标签阵列中存储的路选数据位规定的高速缓存的第一dataram。
38.根据权利要求37的方法,其中步骤(2)包括比较基址数据位。
39.根据权利要求37的方法,其中步骤(2)包括比较基址寄存器数据位。
40.根据权利要求37的方法,其中该微标签阵列包括多个阵列条目,以及步骤(1)包括在每个阵列条目中存储第一数据位、第二数据位、进位位以及路选数据位。
41.权利要求40的方法,还包括:根据最少最近填充取代方案,取代该阵列条目中存储的数据。
42.权利要求40的方法,其中步骤(1)包括存储基址数据位。
43.权利要求40的方法,其中步骤(1)包括存储基址寄存器数据位。
CN2007800369813A 2006-08-18 2007-08-15 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 Expired - Fee Related CN101523359B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/505,865 US7650465B2 (en) 2006-08-18 2006-08-18 Micro tag array having way selection bits for reducing data cache access power
US11/505,869 US7657708B2 (en) 2006-08-18 2006-08-18 Methods for reducing data cache access power in a processor using way selection bits
US11/505,869 2006-08-18
US11/505,865 2006-08-18
PCT/US2007/017896 WO2008024221A2 (en) 2006-08-18 2007-08-15 Micro tag reducing cache power

Publications (2)

Publication Number Publication Date
CN101523359A true CN101523359A (zh) 2009-09-02
CN101523359B CN101523359B (zh) 2011-06-22

Family

ID=39102703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800369813A Expired - Fee Related CN101523359B (zh) 2006-08-18 2007-08-15 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用

Country Status (2)

Country Link
US (1) US7657708B2 (zh)
CN (1) CN101523359B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198026A (zh) * 2012-01-09 2013-07-10 辉达公司 指令高速缓存功耗降低
CN105260332A (zh) * 2015-09-09 2016-01-20 北京三未信安科技发展有限公司 一种对cpld数据包进行有序存储的方法及系统
WO2016192045A1 (zh) * 2015-06-02 2016-12-08 华为技术有限公司 存储器的访问系统及方法
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
CN107122128A (zh) * 2016-02-25 2017-09-01 Arm 有限公司 数据存储
CN109983446A (zh) * 2016-11-29 2019-07-05 高通股份有限公司 多模式缓存无效
CN113778526A (zh) * 2021-11-12 2021-12-10 北京微核芯科技有限公司 一种基于Cache的流水线的执行方法及装置
CN115087944A (zh) * 2020-02-25 2022-09-20 高通股份有限公司 系统物理地址大小感知高速缓存存储器

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069354B2 (en) 2007-08-14 2011-11-29 Mips Technologies, Inc. Power management for system having one or more integrated circuits
US8078897B2 (en) * 2008-01-18 2011-12-13 Texas Instruments Incorporated Power management in federated/distributed shared memory architecture
CA3039236C (en) 2008-07-08 2022-05-17 Proteus Digital Health, Inc. Ingestible event marker data framework
US9678878B2 (en) 2008-09-30 2017-06-13 Intel Corporation Disabling cache portions during low voltage operations
US8103830B2 (en) 2008-09-30 2012-01-24 Intel Corporation Disabling cache portions during low voltage operations
US8631207B2 (en) * 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques
US8341355B2 (en) 2010-05-25 2012-12-25 International Business Machines Corporation Reducing energy consumption of set associative caches by reducing checked ways of the set association
US20120290780A1 (en) * 2011-01-27 2012-11-15 Mips Technologies Inc. Multithreaded Operation of A Microprocessor Cache
US8904109B2 (en) * 2011-01-28 2014-12-02 Freescale Semiconductor, Inc. Selective cache access control apparatus and method thereof
US8756405B2 (en) 2011-05-09 2014-06-17 Freescale Semiconductor, Inc. Selective routing of local memory accesses and device thereof
US8612690B2 (en) 2012-01-17 2013-12-17 Qualcomm Incorporated Method for filtering traffic to a physically-tagged data cache
CN103019945B (zh) * 2012-11-26 2016-08-17 北京北大众志微系统科技有限责任公司 一种访存指令的执行方法
US9367468B2 (en) * 2013-01-15 2016-06-14 Qualcomm Incorporated Data cache way prediction

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109520A (en) * 1985-02-19 1992-04-28 Tektronix, Inc. Image frame buffer access speedup by providing multiple buffer controllers each containing command FIFO buffers
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5091851A (en) * 1989-07-19 1992-02-25 Hewlett-Packard Company Fast multiple-word accesses from a multi-way set-associative cache memory
US5440749A (en) 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
EP0461923B1 (en) * 1990-06-15 1997-10-01 Compaq Computer Corporation True least recently used replacement apparatus
EP0503514B1 (en) * 1991-03-11 1998-11-18 Silicon Graphics, Inc. Backward-compatible computer architecture with extended word size and address space
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
US6079014A (en) * 1993-12-02 2000-06-20 Intel Corporation Processor that redirects an instruction fetch pipeline immediately upon detection of a mispredicted branch while committing prior instructions to an architectural state
US5740402A (en) * 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
US5493523A (en) * 1993-12-15 1996-02-20 Silicon Graphics, Inc. Mechanism and method for integer divide involving pre-alignment of the divisor relative to the dividend
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing 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
US5572704A (en) * 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5537538A (en) * 1993-12-15 1996-07-16 Silicon Graphics, Inc. Debug mode for a superscalar RISC processor
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US5606683A (en) * 1994-01-28 1997-02-25 Quantum Effect Design, Inc. Structure and method for virtual-to-physical address translation in a translation lookaside buffer
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US6216200B1 (en) * 1994-10-14 2001-04-10 Mips Technologies, Inc. Address queue
WO1996012228A1 (en) * 1994-10-14 1996-04-25 Silicon Graphics, Inc. Redundant mapping tables
EP0803095A1 (en) * 1994-10-14 1997-10-29 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
WO1996012231A1 (en) * 1994-10-14 1996-04-25 Silicon Graphics, Inc. A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle
US5675758A (en) * 1994-11-15 1997-10-07 Advanced Micro Devices, Inc. Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
US5546545A (en) * 1994-12-09 1996-08-13 International Business Machines Corporation Rotating priority selection logic circuit
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
US5848433A (en) * 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
JPH0950401A (ja) 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH0991136A (ja) * 1995-09-25 1997-04-04 Toshiba Corp 信号処理装置
US5799165A (en) * 1996-01-26 1998-08-25 Advanced Micro Devices, Inc. Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting
US5670898A (en) * 1995-11-22 1997-09-23 Silicon Graphics, Inc. Low-power, compact digital logic topology that facilitates large fan-in and high-speed circuit performance
US5860151A (en) * 1995-12-07 1999-01-12 Wisconsin Alumni Research Foundation Data cache fast address calculation system and method
US5864707A (en) * 1995-12-11 1999-01-26 Advanced Micro Devices, Inc. Superscalar microprocessor configured to predict return addresses from a return stack storage
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
US6108769A (en) * 1996-05-17 2000-08-22 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
GB2317469B (en) * 1996-09-23 2001-02-21 Advanced Risc Mach Ltd Data processing system register control
US5966734A (en) * 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
US5802386A (en) * 1996-11-19 1998-09-01 International Business Machines Corporation Latency-based scheduling of instructions in a superscalar processor
US5909572A (en) * 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US5864341A (en) 1996-12-09 1999-01-26 International Business Machines Corporation Instruction dispatch unit and method for dynamically classifying and issuing instructions to execution units with non-uniform forwarding
IT1290499B1 (it) * 1997-03-28 1998-12-04 Borg Warner Automotive Tenditore per catene,con pattino in materia plastica e molla/e a lamina ad estremita' ricurve
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6085315A (en) * 1997-09-12 2000-07-04 Siemens Aktiengesellschaft Data processing device with loop pipeline
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
US6304960B1 (en) * 1998-08-06 2001-10-16 Intel Corporation Validating prediction for branches in a cluster via comparison of predicted and condition selected tentative target addresses and validation of branch conditions
US6223278B1 (en) * 1998-11-05 2001-04-24 Intel Corporation Method and apparatus for floating point (FP) status word handling in an out-of-order (000) Processor Pipeline
US6308252B1 (en) * 1999-02-04 2001-10-23 Kabushiki Kaisha Toshiba Processor method and apparatus for performing single operand operation and multiple parallel operand operation
US6473837B1 (en) * 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
JP2001034537A (ja) * 1999-07-23 2001-02-09 Toshiba Corp アドレス変換回路
US6546477B1 (en) * 1999-09-20 2003-04-08 Texas Instruments Incorporated Memory management in embedded systems with dynamic object instantiation
US6446197B1 (en) * 1999-10-01 2002-09-03 Hitachi, Ltd. Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions
US6430655B1 (en) * 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
US6374342B1 (en) * 2000-01-31 2002-04-16 Kabushiki Kaisha Toshiba Translation lookaside buffer match detection using carry of lower side bit string of address addition
US20010052053A1 (en) 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
US7032226B1 (en) 2000-06-30 2006-04-18 Mips Technologies, Inc. Methods and apparatus for managing a buffer of events in the background
US6557127B1 (en) * 2000-02-28 2003-04-29 Cadence Design Systems, Inc. Method and apparatus for testing multi-port memories
US6915395B1 (en) 2000-05-03 2005-07-05 Sun Microsystems, Inc. Active address content addressable memory
US6757817B1 (en) 2000-05-19 2004-06-29 Intel Corporation Apparatus having a cache and a loop buffer
US6505285B1 (en) * 2000-06-26 2003-01-07 Ncr Corporation Scratch segment subsystem for a parallel processing database system
US6760835B1 (en) 2000-11-22 2004-07-06 Lsi Logic Corporation Instruction branch mispredict streaming
US6988172B2 (en) * 2002-04-29 2006-01-17 Ip-First, Llc Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status
US7003630B1 (en) * 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US6836833B1 (en) 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
US7020752B2 (en) * 2003-02-07 2006-03-28 Sun Microsystems, Inc. Apparatus and method for snoop access in a dual access, banked and pipelined data cache memory unit
US7159103B2 (en) 2003-03-24 2007-01-02 Infineon Technologies Ag Zero-overhead loop operation in microprocessor having instruction buffer
TWI246658B (en) * 2003-04-25 2006-01-01 Ip First Llc Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
EP1658563B1 (en) * 2003-08-28 2013-06-05 MIPS Technologies, Inc. Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
JP4607517B2 (ja) * 2003-09-03 2011-01-05 東京エレクトロン株式会社 プラズマ処理装置
US20050050278A1 (en) * 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7185170B2 (en) * 2004-08-27 2007-02-27 Freescale Semiconductor, Inc. Data processing system having translation lookaside buffer valid bits with lock and method therefor
US20060095732A1 (en) 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US20060090034A1 (en) * 2004-10-22 2006-04-27 Fujitsu Limited System and method for providing a way memoization in a processing environment

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198026A (zh) * 2012-01-09 2013-07-10 辉达公司 指令高速缓存功耗降低
US9396117B2 (en) 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
CN107710172A (zh) * 2015-06-02 2018-02-16 华为技术有限公司 存储器的访问系统及方法
WO2016192045A1 (zh) * 2015-06-02 2016-12-08 华为技术有限公司 存储器的访问系统及方法
CN107710172B (zh) * 2015-06-02 2020-07-07 华为技术有限公司 存储器的访问系统及方法
US10901640B2 (en) 2015-06-02 2021-01-26 Huawei Technologies Co., Ltd. Memory access system and method
CN105260332A (zh) * 2015-09-09 2016-01-20 北京三未信安科技发展有限公司 一种对cpld数据包进行有序存储的方法及系统
CN105260332B (zh) * 2015-09-09 2018-04-20 北京三未信安科技发展有限公司 一种对cpld数据包进行有序存储的方法及系统
CN107122128A (zh) * 2016-02-25 2017-09-01 Arm 有限公司 数据存储
CN107122128B (zh) * 2016-02-25 2022-01-07 Arm 有限公司 数据存储
CN109983446A (zh) * 2016-11-29 2019-07-05 高通股份有限公司 多模式缓存无效
CN115087944A (zh) * 2020-02-25 2022-09-20 高通股份有限公司 系统物理地址大小感知高速缓存存储器
CN113778526A (zh) * 2021-11-12 2021-12-10 北京微核芯科技有限公司 一种基于Cache的流水线的执行方法及装置

Also Published As

Publication number Publication date
US7657708B2 (en) 2010-02-02
CN101523359B (zh) 2011-06-22
US20080046653A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
CN101523359B (zh) 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用
CN101375228B (zh) 具有省电指令高速缓存通路预测器和指令代替方案的微处理器
CN101377736B (zh) 乱序执行微处理器以及宏指令处理方法
CN102906719B (zh) 输入/输出地址到存储器地址的转换
US11132300B2 (en) Memory hierarchy using page-based compression
CN101694613B (zh) 不对准存储器存取预测
CN102483719B (zh) 基于块的非透明高速缓存
US7650465B2 (en) Micro tag array having way selection bits for reducing data cache access power
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
CN100390756C (zh) 一种将储存数据重新导向的虚拟集合高速缓存
TWI698745B (zh) 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體
US9477605B2 (en) Memory hierarchy using row-based compression
CN103729306A (zh) 经由地址范围检查的多cpu块无效操作绕过
US11650825B2 (en) Coprocessor synchronizing instruction suppression
CN103778070A (zh) 多个块一致性操作的并行处理
CN101211256A (zh) 一种专用双流水线risc指令系统及其操作方法
JP5954112B2 (ja) メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
CN101833517B (zh) 快取存储器系统及其存取方法
CN101535947A (zh) 两次发布的条件移动指令及其应用
TWI723069B (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法
WO2006027643A1 (en) A virtual address cache and method for sharing data stored in a virtual address cache
JP7070384B2 (ja) 演算処理装置、メモリ装置、及び演算処理装置の制御方法
US20190138308A1 (en) Unaligned memory accesses
CN101790719A (zh) 低开销/省电处理器同步机制及其应用
CN105183697B (zh) 嵌入式rsic‑dsp处理器系统及构建方法

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
ASS Succession or assignment of patent right

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20141210

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECHNOLOGIES INC.

Effective date: 20141210

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

Effective date of registration: 20141210

Address after: cambridge

Patentee after: ARM Overseas Finance Co.,Ltd.

Address before: American New Jersey

Patentee before: Overpass Bridge Co.,Ltd.

Effective date of registration: 20141210

Address after: American New Jersey

Patentee after: Overpass Bridge Co.,Ltd.

Address before: American California

Patentee before: MIPS Technologies, Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110622

CF01 Termination of patent right due to non-payment of annual fee