CN1489061A - 微处理器中的数据预取方法及微处理器 - Google Patents

微处理器中的数据预取方法及微处理器 Download PDF

Info

Publication number
CN1489061A
CN1489061A CNA031551254A CN03155125A CN1489061A CN 1489061 A CN1489061 A CN 1489061A CN A031551254 A CNA031551254 A CN A031551254A CN 03155125 A CN03155125 A CN 03155125A CN 1489061 A CN1489061 A CN 1489061A
Authority
CN
China
Prior art keywords
buffer memory
crb
data
computer program
instruction
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
CNA031551254A
Other languages
English (en)
Other versions
CN1224908C (zh
Inventor
戴维・S・雷
戴维·S·雷
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1489061A publication Critical patent/CN1489061A/zh
Application granted granted Critical
Publication of CN1224908C publication Critical patent/CN1224908C/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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/30047Prefetch instructions; cache control instructions

Abstract

本发明提供一种双重用途缓存复载缓冲器(CRB)来保存需求负载以及预取负载。一种新形式的数据缓存分块接触(DCBT)指令指定预取数据所要放入的缓存分级结构中的哪一级别。发出第一异步形式的DCBT指令以将数据流预取到L2缓存中。使用第二同步形式的DCBT指令来将数据从L2缓存预取到主CPU中的CRB,这将绕过L1数据缓存,并且将数据直接转发到寄存器堆。该CRB具有双重用途,并且用来保存常规缓存复载以及前述预取缓存线。

Description

微处理器中的数据预取方法及微处理器
技术领域
本发明一般涉及数字电子电路,特别涉及一种微处理器中用于不同工作负载类型的数据预取机制。
背景技术
一种提高处理器性能的公知技术是将存储器子系统分层为称作缓存(cache)的若干存储器级别。离主中央处理单元(CPU)最近的缓存典型地小且快。离主CPU越远的缓存越大且越慢。
另一种提高处理器性能的公知技术是将数据预取到离主CPU最近的缓存中。该技术帮助消除从远端缓存或存储器提取数据的延迟。很多指令集体系结构具有附加指令,用来将数据从存储器预取到处理器的缓存分级结构中。如果软件可以预先充分预测程序随后将要使用的存储器位置,则可以使用这些指令来有效消除缓存未命中(miss)延迟。
一种提供软件预取的方法已被归类为同步、面向软件的预取。当预取提示通常指定小量存储器如单一缓存线时,预取被认为是同步的。另外,指令可以如同任何其他载入指令以程序次序执行。PowerPCTM体系结构中称作数据缓存分块接触(data cache blocktouch,DCBT)的指令是同步预取指令的例子。
预取指令的另一指令类被认为是异步的,在这种情况下,这些指令可以指定极其大量的存储器来以缓存线单元为增量进行预取。流控制器可以用来独立于常规载入和存储指令而运行。
存在可以最有效利用预取软件和硬件技术的特定工作负载。微处理器系统中一种这样的工作负载称作流数据。在这种工作负载中,大量数据以流的形式输入核心微处理器。该数据经常用于一次性计算,然后回传出去。这对于图形类工作负载是常见的。经常,这种流数据的工作集远远大于级别1(L1)缓存的容量。另外,该数据经常仅使用一次。
先前的流机制使用硬件密集型数据预取机制来以流的形式将数据输入到L1缓存中。这些方案包括大量附加硬件来检测流和在需求负载之前进行预取。另外,当数据以流的形式输入到L1缓存中时,它经常取代缓存中的其他有用数据。
因此,需要一种机制来为不同类型的工作负载提供不同的数据预取方案。
发明内容
本发明提供一种在微处理器中预取数据的方法。微处理器具有缓存分级结构,包括缓存复载缓冲器(cache reload buffer,CRB)、L1缓存和L2缓存。该方法包括通过使用异步形式的数据缓存分块接触(DCBT)指令,将数据流预取到L2缓存中。该方法还包括通过使用同步形式的DCBT指令,将数据从L2缓存直接预取到CRB,而不将数据存储在L1缓存中。另外,该方法包括从CRB提取数据以进行处理。
附图说明
为更全面理解本发明及其优点,现在结合附图来参阅下面描述,其中:
图1是示出在微处理器中实现的数据流硬件的优选实施例的方框图;
图2示出一种新形式的数据缓存分块接触(DCBT)指令;
图3A是示出流事务(transaction)的异步预取操作的流程图;以及
图3B是示出流事务的同步预取操作的流程图。
具体实施方式
在下面讨论中,对各种特定细节进行阐述,以提供对本发明的彻底理解。然而,本领域的技术人员应该清楚,可以不在这些特定细节的情况下实施本发明。另外,公知单元以示意图或方框图的形式示出,从而不以累赘的细节使本发明变得不清楚。
还需要注意的是,除非另外指明,在此描述的所有功能可以采用硬件或软件或者其组合来执行。然而,在一个优选实施例中,除非另外指明,这些功能是根据代码如计算机程序代码、软件和/或编码为执行这些功能的集成电路由处理器如计算机或电子数据处理器来执行的。
参照图1,标号100在总体上表示实施本发明特性的数据流硬件。数据流硬件100可以在微处理器系统(未示出)中实现。最好,这种微处理器系统包括根据简化指令集计算(RISC)技术运行的PowerPCTM微处理器。
数据流硬件100包括通用寄存器堆(GPR)102、载入/存储单元(LSU)104以及L2缓存单元106。LSU 104包括解码/控制块108、地址生成(AGEN)块110、用于缓冲存储数据和地址的存储队列112、缓存复载缓冲器(CRB)114、L1数据标签(L1 D-标签)116、L1数据缓存(L1 D-缓存)118、L1缓存控制块120、L1标签比较块122、第一复用器124、寄存器(锁存元件集合)126、第二复用器128以及格式复用器130。L2缓存单元106包括L2缓存132、L2标签134、L2流控制器136、L2缓存控制块138以及L2标签比较块140。指令提取单元(未示出)从L1 I-缓存(未示出)提取指令,并且在发令总线(issue bus)142上将指令发到LSU。解码/控制块108从发令总线142接收指令,对指令进行解码,并且生成用于LSU 104数据流的控制信号。
AGEN块110从GPR 102接收寄存器源值RA和RB,并且执行寄存器源值RA和RB的相加操作,从而产生有效地址(EA)。对于常规载入指令,EA用来对L1 D-标签116和L1 D-缓存118寻址。L1D-标签116与L1标签比较块122一起指示在L1 D-缓存118中载入地址是否命中。存储队列112用于常规存储指令的操作期间。存储队列112从GPR 102接收数据,并且对L1 D-缓存118的写入请求排队。
CRB 114用来保存通过L2缓存线总线144从L2缓存132提取的多条缓存线。对于常规需求负载(demand load),从L2缓存132接收的缓存线写入到CRB 114中。然后,CRB 114仲裁存储队列112,以对L1 D-缓存118执行写入操作。例如,这可以采用CRB114总是具有最高优先级的简单仲裁方案来实现。对于预取负载,将通过L2缓存线总线144从L2缓存132接收的缓存线写入到CRB114中。然后,CRB 114通过格式复用器130将数据转发到GPR102,并且绕过L1 D-缓存118。当从L2缓存返回数据时,控制总线(未示出)指示数据是用于需求提取还是预取。
L2缓存132保存数据和指令缓存线。L2标签134以及L2标签比较块140用来指示在L2缓存中缓存地址是否命中。L2缓存控制块138控制L2缓存读写操作。L2流控制器136控制异步数据预取操作。流控制器为每个活动流保存地址和字节计数。当预取命令来自LSU 104时,它指定所要提取的初始地址和字节数。L2流控制器136通过进入存储器并且一次提取一条缓存线直到最大字节计数,提取在原始指令中指定的字节数。
在本描述中,“同步”是指作为微处理器常规指令流一部分的操作,而“异步”是指独立于常规指令流发起和运行的操作。
现在参照图2,示出本发明的数据缓存分块接触(DCBT)指令200。DCBT指令200包括操作码(OPCODE)字段202、TH字段204以及RA/RB字段206。操作码字段202指定所要发起的操作。TH字段204指定DCBT指令200是常规接触还是增强接触。RA/RB字段206包含GPR位置,它们用来形成有效地址(EA)。由RA/RB字段206指定的寄存器的内容在LSU中相加在一起(RA+RB)来形成EA。EA可以用作存储预取数据的存储器地址位置。对于DCBT指令200,EA还可以形成新控制字208。控制字208具有四个控制字段。这四个控制字段包括CONTROL(控制)字段208A、CACHEID(缓存ID)字段208B、UNITCNT字段208C以及STREAMID(流ID)字段208D。CONTROL字段208A指定开始/停止条件。CACHEID字段208B指定预取数据所要放入的缓存级别。例如,两位编码将具有下列意义:
00-L0缓存(CRB)
01-L1缓存
10-L2缓存
11-L3缓存
UNITCNT字段208C指定所要预取的缓存线数。STREAMID字段208D指定要开始哪个流。
在DCBT指令200中,从L3缓存一路降到L0缓存,指定预取数据所要放入的缓存级别。本方案中的L0缓存是双重用途CRB114。最好,软件将发起DCBT指令200将多条缓存线预取到L2缓存132中。然后,软件发起DCBT指令200将各条缓存线预取到作为CRB 114的L0缓存中。
在图3A中,一个流程图示出本发明的流事务的异步预取操作300A。在步骤302,指令单元发出第一DCBT指令到LSU。第一DCBT指令用来指示要执行到L2缓存中的流操作。在步骤304,UNITCNT字段208C指定所要预取的缓存线数。在步骤306,STREAMID字段208D指定要开始哪个流。在该步骤,从L3缓存一路降到L0缓存,指定预取数据所要放入的缓存级别。最好,本方案中的L0缓存是双重用途CRB。软件将发起DCBT指令以将各条缓存线预取到L0缓存(即CRB)中。在步骤308,CACHEID字段208B将缓存线带入L2缓存。在步骤310,LSU对该第一DCBT指令进行解码,以获得包含在第一DCBT指令中的控制信息。在步骤312,发出第二DCBT指令,以向目标为L2缓存的流操作提供起始有效地址(EA)。在步骤314,LSU还将控制信息和有效地址(EA)传到L2缓存。在步骤316,L2流控制器然后发起一系列存储器读取操作以将所有缓存线带入L2缓存。在步骤318,L2流控制器保存每个流的地址和计数字段。在步骤320,L2流控制器提取在步骤304指定的缓存线数。
现在参照图3B,一个流程图示出本发明的流事务的同步预取操作300A。在步骤322,发出第三DCBT指令,它指示将一条缓存线从L2缓存中的流数据预取到L0缓存。在步骤324,CACHEID 208B将数据取到L0缓存(CRB)中。在步骤326,发出第四DCBT指令,它指示从其预取的有效地址(EA)。在步骤328,LSU根据第四DCBT指令将第四DCBT指令和有效地址(EA)发送到L2缓存。在步骤330,L2缓存然后将数据返回到LSU。数据是以缓存线的形式返回的。缓存组织为多条缓存线。例如,典型的缓存线将为32字节到128字节。在步骤332,LSU将数据写入到CRB中,并且通过绕过L1缓存将数据直接转发到GPR。
发给LSU的随后需求负载将与CRB中的地址以及L1 D-标签执行地址比较,并且检查命中情况。常规需求负载流及其相关地址比较与指令流是同步的。如果在CRB中存在命中,则将数据直接从CRB转发到寄存器堆。注意,命中意味着地址被定位。
从上面描述中应该理解,在不脱离本发明的精神实质的情况下可以在本发明的优选实施例中进行各种修改和变更。本描述仅起说明的目的,而不是限制性的。本发明的范围仅由所附权利要求来限定。

Claims (11)

1.一种用于在具有缓存分级结构的微处理器中预取数据的方法,缓存分级结构包括缓存复载缓冲器(CRB)、L1缓存以及L2缓存,所述方法包括如下步骤:
通过使用异步形式的数据缓存分块接触(DCBT)指令,将数据流预取到L2缓存中;
通过使用同步形式的DCBT指令,将数据从L2缓存直接预取到CRB,而不将数据存储在L1缓存中;以及
从CRB提取数据以进行处理。
2.如权利要求1所述的方法,其中,CRB具有双重用途,并且用来保存常规缓存复载和预取缓存线。
3.如权利要求1所述的方法,其中,将数据流预取到L2缓存中的步骤包括如下步骤:
指定所要预取的缓存线数;
指定要开始哪个流;
将缓存线带入L2缓存;
对第一DCBT指令进行解码,以获得包含在第一DCBT指令中的控制信息;
发出第二DCBT指令,以向目标为L2缓存的流操作提供起始有效地址(EA);
将控制信息和有效地址(EA)传到L2缓存;
发起一系列存储器读取操作以将所有缓存线带入L2缓存;
保存每个流的地址和计数字段;以及
提取所指定的缓存线数。
4.如权利要求1所述的方法,其中,将数据从L2缓存直接预取到CRB而不将数据存储在L1缓存中的步骤包括如下步骤:
将数据取到CRB中;
发出第四DCBT指令以指示从其预取的有效地址(EA);
根据第四DCBT指令,将第四DCBT指令和有效地址(EA)发送到L2缓存;以及
将数据写入到CRB中,并且通过绕过L1缓存将数据直接转发到通用寄存器(GPR)。
5.一种用于在具有缓存分级结构的微处理器中预取数据的计算机程序产品,缓存分级结构包括缓存复载缓冲器(CRB)、L1缓存以及L2缓存,所述计算机程序产品具有其上实施有一个计算机程序的介质,所述计算机程序包括:
用于通过使用异步形式的数据缓存分块接触(DCBT)指令来将数据流预取到L2缓存中的计算机程序代码;
用于通过使用同步形式的DCBT指令来将数据从L2缓存直接预取到CRB而不将数据存储在L1缓存中的计算机程序代码;以及
用于从CRB提取数据以进行处理的计算机程序代码。
6.如权利要求5所述的计算机程序产品,其中,CRB具有双重用途,并且用来保存常规缓存复载和预取缓存线。
7.如权利要求5所述的计算机程序产品,其中,用于将数据流预取到L2缓存中的计算机程序代码包括:
用于指定所要预取的缓存线数的计算机程序代码;
用于指定要开始哪个流的计算机程序代码;
用于将缓存线带入L2缓存的计算机程序代码;
用于对第一DCBT指令进行解码以获得包含在第一DCBT指令中的控制信息的计算机程序代码;
用于发出第二DCBT指令以向目标为L2缓存的流操作提供起始有效地址(EA)的计算机程序代码;
用于将控制信息和有效地址(EA)传到L2缓存的计算机程序代码;
用于发起一系列存储器读取操作以将所有缓存线带入L2缓存的计算机程序代码;
用于保存每个流的地址和计数字段的计算机程序代码;以及
用于提取所指定的缓存线数的计算机程序代码。
8.如权利要求5所述的计算机程序产品,其中,用于将数据从L2缓存直接预取到CRB而不将数据存储在L1缓存中的计算机程序代码包括:
用于将数据取到CRB中的计算机程序代码;
用于发出第四DCBT指令以指示从其预取的有效地址(EA)的计算机程序代码;
用于根据第四DCBT指令将第四DCBT指令和有效地址(EA)发送到L2缓存的计算机程序代码;以及
用于将数据写入到CRB中的计算机程序代码和通过绕过L1缓存将数据直接转发到通用寄存器(GPR)的计算机程序代码。
9.一种微处理器,包括:
缓存复载缓冲器(CRB);
L2缓存,耦合到CRB,CRB被配置为从L2缓存接收一条或多条缓存线,其中,通过使用异步形式的数据缓存分块接触(DCBT)指令,将数据流预取到L2缓存中;
L1缓存,耦合到CRB,CRB被配置为将常规需求负载写入到L1缓存,并且对于预取负载绕过L1缓存,其中,通过使用同步形式的DCBT指令,将数据从L2缓存直接预取到CRB,而不将数据存储在L1缓存中;以及
通用寄存器堆(GPR),耦合到CRB,用于从CRB提取数据以进行处理。
10.如权利要求9所述的微处理器,其中,CRB具有双重用途,并且用来保存常规需求负载和预取负载。
11.如权利要求9所述的微处理器,还包括:
格式复用器,耦合到CRB和L1缓存,用于从L1缓存接收常规需求负载,并且从CRB接收预取负载,格式复用器耦合到GPR,以将常规需求负载和预取负载发送到GPR。
CNB031551254A 2002-08-29 2003-08-22 微处理器中的数据预取方法及微处理器 Expired - Lifetime CN1224908C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/232,248 US6957305B2 (en) 2002-08-29 2002-08-29 Data streaming mechanism in a microprocessor
US10/232,248 2002-08-29

Publications (2)

Publication Number Publication Date
CN1489061A true CN1489061A (zh) 2004-04-14
CN1224908C CN1224908C (zh) 2005-10-26

Family

ID=31976960

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031551254A Expired - Lifetime CN1224908C (zh) 2002-08-29 2003-08-22 微处理器中的数据预取方法及微处理器

Country Status (2)

Country Link
US (1) US6957305B2 (zh)
CN (1) CN1224908C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442249C (zh) * 2004-09-30 2008-12-10 国际商业机器公司 用于高速缓存器顺序列表的动态尺寸确定的系统和方法
CN101853303A (zh) * 2010-06-02 2010-10-06 深圳市迪菲特科技股份有限公司 一种基于语义智能存储方法及系统
CN101036117B (zh) * 2004-09-10 2010-12-08 卡威姆网络有限公司 低延时存储器的直接存取
CN102508642A (zh) * 2011-11-10 2012-06-20 华为技术有限公司 一种数据预取方法及装置
CN116909943A (zh) * 2023-09-08 2023-10-20 飞腾信息技术有限公司 一种缓存访问方法、装置、存储介质及电子设备

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901483B2 (en) * 2002-10-24 2005-05-31 International Business Machines Corporation Prioritizing and locking removed and subsequently reloaded cache lines
US20050010726A1 (en) * 2003-07-10 2005-01-13 Rai Barinder Singh Low overhead read buffer
US7194576B1 (en) * 2003-07-31 2007-03-20 Western Digital Technologies, Inc. Fetch operations in a disk drive control system
US7240161B1 (en) * 2003-07-31 2007-07-03 Western Digital Technologies, Inc. Instruction prefetch caching for remote memory
EP1769360A4 (en) * 2004-07-14 2008-08-06 Silicon Optix Inc SYSTEM AND METHOD FOR MANAGING A CACHE MEMORY
CN100527099C (zh) * 2005-02-15 2009-08-12 皇家飞利浦电子股份有限公司 用于提高数据处理设备的存储单元的性能的装置和方法
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US8438003B2 (en) * 2007-04-12 2013-05-07 Cadence Design Systems, Inc. Methods for improved simulation of integrated circuit designs
US8266381B2 (en) * 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8108619B2 (en) * 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US8595443B2 (en) * 2008-02-01 2013-11-26 International Business Machines Corporation Varying a data prefetch size based upon data usage
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8250307B2 (en) 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
US8117390B2 (en) * 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
US8176254B2 (en) * 2009-04-16 2012-05-08 International Business Machines Corporation Specifying an access hint for prefetching limited use data in a cache hierarchy
US8140759B2 (en) * 2009-04-16 2012-03-20 International Business Machines Corporation Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US8327078B2 (en) 2010-06-24 2012-12-04 International Business Machines Corporation Dynamic trailing edge latency absorption for fetch data forwarded from a shared data/control interface
US9507593B2 (en) 2011-12-23 2016-11-29 Intel Corporation Instruction for element offset calculation in a multi-dimensional array
US9489196B2 (en) 2011-12-23 2016-11-08 Intel Corporation Multi-element instruction with different read and write masks
EP2862069A4 (en) 2012-06-15 2016-12-28 Soft Machines Inc DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE
KR101818967B1 (ko) 2012-06-15 2018-01-16 인텔 코포레이션 명확화 없는 비순차 load store 큐
CN104823154B (zh) 2012-06-15 2017-12-29 英特尔公司 包括虚拟加载存储队列的处理器和系统
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
EP2862062B1 (en) 2012-06-15 2024-03-06 Intel Corporation A virtual load store queue having a dynamic dispatch window with a distributed structure
WO2013188701A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
EP2862058B1 (en) * 2012-06-15 2021-05-19 Intel Corporation A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order
US8487895B1 (en) 2012-06-26 2013-07-16 Google Inc. Systems and methods for enhancing touch event processing performance
US10963254B2 (en) * 2013-07-15 2021-03-30 Texas Instruments Incorporated Mechanism to queue multiple streams to run on streaming engine
US10963255B2 (en) * 2013-07-15 2021-03-30 Texas Instruments Incorporated Implied fence on stream open
US9996350B2 (en) * 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US20170286118A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Processors, methods, systems, and instructions to fetch data to indicated cache level with guaranteed completion
US10606600B2 (en) * 2016-06-03 2020-03-31 International Business Machines Corporation Fetched data in an ultra-short piped load store unit
US10467141B1 (en) * 2018-06-18 2019-11-05 International Business Machines Corporation Process data caching through iterative feedback
US20240078114A1 (en) * 2022-09-07 2024-03-07 Microsoft Technology Licensing, Llc Providing memory prefetch instructions with completion notifications in processor-based devices

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870599A (en) 1994-03-01 1999-02-09 Intel Corporation Computer system employing streaming buffer for instruction preetching
US5737495A (en) 1995-09-29 1998-04-07 Intel Corporation Method and apparatus for managing multimedia data files in a computer network by streaming data files into separate streams based on file attributes
US6128703A (en) 1997-09-05 2000-10-03 Integrated Device Technology, Inc. Method and apparatus for memory prefetch operation of volatile non-coherent data
US5948095A (en) 1997-12-31 1999-09-07 Intel Corporation Method and apparatus for prefetching data in a computer system
US6202130B1 (en) 1998-04-17 2001-03-13 Motorola, Inc. Data processing system for processing vector data and method therefor
US6253306B1 (en) 1998-07-29 2001-06-26 Advanced Micro Devices, Inc. Prefetch instruction mechanism for processor
US6119203A (en) 1998-08-03 2000-09-12 Motorola, Inc. Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US6073215A (en) * 1998-08-03 2000-06-06 Motorola, Inc. Data processing system having a data prefetch mechanism and method therefor
US6401192B1 (en) 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
US6311280B1 (en) 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6499116B1 (en) * 1999-03-31 2002-12-24 International Business Machines Corp. Performance of data stream touch events
US6748496B1 (en) * 2000-04-18 2004-06-08 Ati International Srl Method and apparatus for providing cacheable data to a peripheral device
US6785772B2 (en) * 2002-04-26 2004-08-31 Freescale Semiconductor, Inc. Data prefetching apparatus in a data processing system and method therefor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036117B (zh) * 2004-09-10 2010-12-08 卡威姆网络有限公司 低延时存储器的直接存取
CN100442249C (zh) * 2004-09-30 2008-12-10 国际商业机器公司 用于高速缓存器顺序列表的动态尺寸确定的系统和方法
CN101853303A (zh) * 2010-06-02 2010-10-06 深圳市迪菲特科技股份有限公司 一种基于语义智能存储方法及系统
CN102508642A (zh) * 2011-11-10 2012-06-20 华为技术有限公司 一种数据预取方法及装置
CN116909943A (zh) * 2023-09-08 2023-10-20 飞腾信息技术有限公司 一种缓存访问方法、装置、存储介质及电子设备
CN116909943B (zh) * 2023-09-08 2023-12-19 飞腾信息技术有限公司 一种缓存访问方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN1224908C (zh) 2005-10-26
US6957305B2 (en) 2005-10-18
US20040044847A1 (en) 2004-03-04

Similar Documents

Publication Publication Date Title
CN1224908C (zh) 微处理器中的数据预取方法及微处理器
US10394563B2 (en) Hardware accelerated conversion system using pattern matching
US6898674B2 (en) Apparatus, method, and system for synchronizing information prefetch between processors and memory controllers
US5623615A (en) Circuit and method for reducing prefetch cycles on microprocessors
US6785772B2 (en) Data prefetching apparatus in a data processing system and method therefor
JP5357017B2 (ja) 高速で安価なストア−ロード競合スケジューリング及び転送機構
US5524220A (en) Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems
EP1116102B1 (en) Method and apparatus for calculating indirect branch targets
US8984264B2 (en) Precise data return handling in speculative processors
RU2435204C2 (ru) Способ и устройство для кэширования команд переменной длины
US20040133769A1 (en) Generating prefetches by speculatively executing code through hardware scout threading
US11861367B2 (en) Processor with variable pre-fetch threshold
TW200818007A (en) Associate cached branch information with the last granularity of branch instruction variable length instruction set
US8943301B2 (en) Storing branch information in an address table of a processor
EP1460532A3 (en) Computer processor data fetch unit and related method
US20090198978A1 (en) Data processing apparatus and method for identifying sequences of instructions
US20080250208A1 (en) System and Method for Improving the Page Crossing Performance of a Data Prefetcher
US20040133767A1 (en) Performing hardware scout threading in a system that supports simultaneous multithreading
US20030182539A1 (en) Storing execution results of mispredicted paths in a superscalar computer processor
Pimentel et al. Hardware versus hybrid data prefetching in multimedia processors: A case study
Lekatsas et al. A decompression architecture for low power embedded systems
US20070239939A1 (en) Apparatus for Performing Stream Prefetch within a Multiprocessor System
Soltis et al. Itanium 2 processor microarchitecture overview
Patel Trace Caches in the Context of other Cacche Enhancements
JP2001505327A (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20051026