CN106462392B - 用于高速缓冲存储器存取模式选择的方法和设备 - Google Patents

用于高速缓冲存储器存取模式选择的方法和设备 Download PDF

Info

Publication number
CN106462392B
CN106462392B CN201580026298.6A CN201580026298A CN106462392B CN 106462392 B CN106462392 B CN 106462392B CN 201580026298 A CN201580026298 A CN 201580026298A CN 106462392 B CN106462392 B CN 106462392B
Authority
CN
China
Prior art keywords
data
access
cache memory
array
address
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
CN201580026298.6A
Other languages
English (en)
Other versions
CN106462392A (zh
Inventor
S·K·凡库玛汉堤
S·R·香农
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106462392A publication Critical patent/CN106462392A/zh
Application granted granted Critical
Publication of CN106462392B publication Critical patent/CN106462392B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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
    • 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/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • 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
    • 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/0877Cache access modes
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • 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/601Reconfiguration of cache memory
    • G06F2212/6012Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
    • 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/603Details of cache memory of operating mode, e.g. cache mode or local memory mode
    • 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

Abstract

本发明涉及一种特定方法,所述方法包含基于存储在发布队列处的数个指令、执行单元的数个活跃线程,或基于这两者,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择。所述方法进一步包含执行第一高速缓冲存储器存取。当选定所述第一高速缓冲存储器存取模式时,执行所述第一高速缓冲存储器存取包含执行标记存取,并在执行所述标记存取之后执行数据阵列存取。当选定所述第二高速缓冲存储器存取模式时,执行所述第一高速缓冲存储器存取包含与所述数据阵列存取并行地执行所述标记存取。

Description

用于高速缓冲存储器存取模式选择的方法和设备
相关申请案之交叉参考
本申请案主张2014年5月27日申请的共同拥有的第14/287,331号美国非临时专利申请案的优先权,所述申请案的内容以全文引用的方式明确地并入本文中。
技术领域
本发明大体上涉及可重新配置的提取管线。
背景技术
技术的进步已产生较小且较强大的计算装置。例如,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话和平板计算机,其体积小,重量轻,且易于由用户携带。许多此类计算装置包含并入其中的其它装置。例如,无线电话还可包含数字静态相机、数码摄像机、数字记录器和音频文件播放器。并且,此类计算装置可处理可执行指令,包含软件应用程序,例如可用于存取互联网的网络浏览器应用程序,及利用静态或摄像机并提供多媒体播放功能性的多媒体应用程序。
计算装置可包含处理器和高速缓冲存储器。高速缓冲存储器可用于存储由处理器在执行期间所使用的信息(例如,指令或数据)。在高速缓冲存储器处存取信息可花费多个处理器的时钟周期。在高速缓冲存储器处可更快速地存取信息的一种方法是通过存取高速缓冲存储器的标记阵列,同时存取高速缓冲存储器的数据阵列。然而,相比于循序存取标记阵列和数据阵列,同时存取标记阵列和数据阵列可消耗更多的电力。
发明内容
本发明呈现可重新配置的提取管线的各个方面。基于(例如)存储在发布队列中的数个指令、执行单元的数个活跃线程、省电模式指示器、静态模式输入或其组合,可重新配置的提取管线可在并行加载操作和串行加载操作之间进行动态的切换。在特定方面,当发布队列存储特定数目的指令以使得在执行单元请求发布队列所请求的数据之前,可重新配置的提取管线可向发布队列提供所请求的数据时,可重新配置的提取管线执行串行加载操作(例如,以便节省电力)。因此,当可重新配置的提取管线在串行操作模式中操作时,相比于并行加载操作,包含可重新配置的提取管线的电子装置可使用更少的电力来加载数据。当发布队列存储数个指令以使得在执行单元请求发布队列所请求的数据之前,可重新配置的提取管线无法向发布队列提供所请求的数据时(例如,如果发布队列是空的并且执行单元正在等待指令,或者如果发布队列会在串行加载操作向发布队列提供所请求的数据之前请求所请求的数据),可重新配置的提取管线执行并行加载操作(例如,以便快速提取数据)。因此,当可重新配置的提取管线在并行操作模式中操作时,相比于串行加载操作,包含可重新配置的提取管线的电子装置可更快速地加载数据。另外,基于发布队列中的数个指令、执行单元处的数个活跃线程,或基于目前需要(例如,速度或省电)的其它因素,可重新配置的提取管线可在串行操作模式和并行操作模式之间进行动态的切换。
在特定方面,方法包含基于存储在发布队列处的数个指令、执行单元的数个活跃线程,或基于这两者,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择。方法进一步包含执行第一高速缓冲存储器存取。当选定第一高速缓冲存储器存取模式(例如,串行操作模式)时,执行第一高速缓冲存储器存取包含执行第一标记存取,并在执行第一标记存取之后执行第一数据阵列存取。当选定第二高速缓冲存储器存取模式(例如,并行操作模式)时,执行第二高速缓冲存储器存取包含执行第二标记存取,同时进行第二数据阵列存取。其中第一标记存取是在第二标记存取之前执行且第一数据阵列存取是在所述第二高速缓冲存储器存取之后执行。
在另一特定方面,设备包含存取模式选择电路、标记阵列、数据阵列和地址产生单元。存取模式选择电路经配置以基于存储在发布队列处的数个指令、耦合到高速缓冲存储器的执行单元的数个活跃线程,或基于这两者,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择,并且经配置以基于所述选择,产生存取模式信号。地址产生单元经配置以,响应于指示选定第一高速缓冲存储器存取模式(例如,串行操作模式)的存取模式信号,向标记阵列发射第一标记地址、接收对应于来自标记阵列的第一标记地址的第一标记数据,以及向数据阵列发射数据请求。数据请求包含第一标记数据和第一数据地址。地址产生单元进一步经配置以,响应于指示选定第二高速缓冲存储器存取模式(例如,并行操作模式)的存取模式信号,向标记阵列发射第二标记地址,同时向数据阵列发射第二数据地址,其中所述地址产生单元进一步经配置以在发射所述第二标记地址之前发射所述第一标记地址且在发射所述第二数据地址之后发射所述数据请求。
在另一特定方面,非暂时性计算机可读媒体存储指令,在由处理器执行时,所述指令使处理器基于存储在发布队列处的数个指令、执行单元的数个活跃线程,或基于这两者,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间执行选择。非暂时性计算机可读媒体进一步存储指令,在由所述处理器执行时,所述指令使处理器执行第一高速缓冲存储器存取。当选定第一高速缓冲存储器存取模式(例如,串行操作模式)时,第一高速缓冲存储器存取包含执行第一标记存取,并在执行第一标记存取之后执行第一数据阵列存取。当选定第二高速缓冲存储器存取模式(例如,并行操作模式)时,第二高速缓冲存储器存取包含执行第二标记存取,同时进行第二数据阵列存取,其中所述第一标记存取是在所述第二标记存取之前执行且所述第一数据阵列存取是在所述第二高速缓冲存储器存取之后执行
在另一特定方面,设备包含用于基于存储在发布队列处的数个指令、执行单元的数个活跃线程,或基于这两者,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择的装置。设备进一步包含用于当选定第一高速缓冲存储器存取模式时,在第一高速缓冲存储器存取期间通过以下操作执行高速缓冲存储器存取的装置:执行第一标记存取;以及在执行第一标记存取之后执行第一数据阵列存取;以及当选定第二高速缓冲存储器存取模式时,执行第二标记存取,同时进行第二数据阵列存取,其中第一标记存取是在第二标记存取之前执行且第一数据阵列存取是在所述第二高速缓冲存储器存取之后执行。由所揭示的方面中的至少一个方面提供的一个特定优点是包含基于操作条件(例如,存储在发布队列处的数个指令、执行单元的数个活跃线程、省电模式指示器、静态模式输入或其组合),可重新配置的提取管线的电子装置可以在串行操作模式和并行操作模式之间切换。当可重新配置的提取管线在串行操作模式中操作时,相比于并行加载操作,可重新配置的提取管线可使用更少的电力加载数据。当可重新配置的提取管线在并行操作模式中操作时,相比于串行加载操作,可重新配置的提取管线可更快速地加载数据。因此,电子装置可获得与经配置以执行串行加载操作的管线相关联并与经配置以执行并行加载操作的管线相关联的益处。
本发明的其它方面、优点及特征将在审阅全部申请案之后变得显而易见,所述全部申请案包含以下部分:附图说明、具体实施方式及权利要求书。
附图说明
图1是描绘可重新配置的提取管线的特定的方面的图式;
图2是描绘可重新配置的提取管线的另一特定方面的图式;
图3是说明操作可重新配置的提取管线的方法的流程图;
图4是说明包含可重新配置的提取管线的通信装置的框图。
具体实施方式
参看图1,揭示了可重新配置的提取管线的特定说明性方面,并将其总体上指定为100。可重新配置的提取管线包含高速缓冲存储器150和执行单元144。高速缓冲存储器150(例如,数据高速缓冲存储器或指令高速缓冲存储器)可包含控制器102、地址产生单元(AGU)104、标记阵列106、数据阵列108、标记逻辑126和选择逻辑128。AGU 104可包含AGU存储器132。数据阵列108可包含多个集合110到116。每一集合(例如,集合114)可包含多个通路(例如,通路118到124)。
控制器102可经配置以基于控制数据142,在第一高速缓冲存储器存取模式(例如,并行操作模式)和第二高速缓冲存储器存取模式(例如,串行操作模式)之间进行选择。在特定方面,控制数据142指示存储在发布队列中的数个指令、执行单元(例如,执行单元144或另一执行单元)的数个活跃线程、省电模式指示器、静态模式输入或其组合。例如,发布队列可存储数个循序指令。在本实例中,执行单元144可周期性地向发布队列请求指令(例如,每一时钟周期一个指令)。如果使用串行操作模式所加载的数据在发布队列处被接收到之前,存储在发布队列中的指令的数目等于或超过(例如,执行单元144或另一执行单元)所请求的指令的数目,那么使用串行操作模式而不是并行操作模式可能不会增加执行时间。因此,当更多的指令存储在发布队列处时(例如,存储在发布队列处的指令的数目超过阈值),控制器102可选择用于高速缓冲存储器150的串行操作模式,并且当较少的指令存储在发布队列处时(例如,存储在发布队列处的指令的数目没有超过阈值),可选择并行操作模式。
作为另一实例,执行单元144可经配置以用于多线程操作。在本实例中,每一线程可从耦合到高速缓冲存储器150的存储器装置中读取数据(例如,发布队列或寄存器组)。当多个线程活跃时,每一线程可以较低速率从存储器装置读取数据(例如,因为当前线程可为空载的,而其它线程是活跃的)。因此,当更多的线程是活跃的时候(例如,活跃线程的数目超过阈值),控制器102可选择用于高速缓冲存储器150的串行操作模式,并且当较少的线程是活跃的时候(例如,活跃线程的数目没有超过阈值),可选择并行操作模式。作为另一实例,电子装置可包含高速缓冲存储器150和执行单元144。电子装置可经配置以进入省电模式(例如,由于低电池电量状态,由于缺少用户活动或由于用户指定的电力设置)。如下所述,相比于并行加载操作,串行加载操作可消耗更少的电力。因此,当电子装置处于省电模式时,控制器102可选择用于高速缓冲存储器150的串行操作模式。作为另一实例,用户可在串行操作模式和并行操作模式之间进行选择。用户可向控制器102提供选择(例如,通过使用静态模式输入(例如,用户指定的高速缓冲存储器配置设置))。在本实例中,控制数据142可包含指示选择的一或多个位。因此,控制器102可基于由选择指示的用户偏好,选择用于高速缓冲存储器150串行操作模式或并行操作模式。
在例示性方面中,控制器102可经配置以在执行高速缓冲存储器150处的多个高速缓冲存储器存取中的每一高速缓冲存储器存取之前,在并行操作模式和串行操作模式之间进行动态的选择。例如,第一高速缓冲存储器存取可在并行操作模式中执行,并且第二高速缓冲存储器存取可在串行操作模式中执行,如下所述。作为另一实例,第一高速缓冲存储器存取可在串行操作模式中执行,并且第二高速缓冲存储器存取可在并行操作模式中执行,如下所述。控制器102在并行操作模式和串行操作模式之间进行选择之后,控制器102可向AGU 104和指示选定操作模式(例如,并行操作模式或串行操作模式)的标记逻辑126发射控制信号。在特定方面,基于第一操作条件(例如,存储在发布队列处的数个指令、执行单元处的数个活跃线程、省电模式指示器、静态模式输入或其组合),控制器102可在并行操作模式和串行操作模式之间进行选择以确定第一高速缓冲存储器存取的操作模式。基于第二操作条件(例如,存储在发布队列处的数个指令、执行单元处的数个活跃线程、省电模式指示器、静态模式输入或其组合),控制器102可在并行操作模式和串行操作模式之间进行选择以确定第二高速缓冲存储器存取的操作模式。第一操作条件可与第二操作条件相同,或不同于第二操作条件。
响应于从控制器102接收指示并行操作模式的控制信号并响应于接收高速缓冲存储器请求138(例如,由执行单元144产生的高速缓冲存储器请求),AGU 104可产生数据地址(例如,在第一时钟周期期间)。AGU 104可向标记阵列106发送标记请求134(例如,对应于数据地址的数个最低有效位),并同时(例如,在第二时钟周期期间)向数据阵列108发送数据请求136(例如,对应于数据地址的数个最高有效位)。数据请求136可识别数据阵列108的特定集合(例如,集合114)。响应于接收标记请求134,标记阵列106可识别含有所请求的数据的数据阵列108的特定集合的特定通路(例如,通路120)(例如,在第二时钟周期期间)。标记阵列106可向对应于特定通路的标记逻辑126发射信号(例如,在第二时钟周期期间)。响应于从标记阵列106接收信号和从控制器102接收指示并行操作模式的控制信号,标记逻辑126可向选择逻辑128发射(例如,在第二时钟周期期间)标记信号。标记信号可指示特定通路。响应于接收数据请求136,数据阵列108可向选择逻辑128发射存储在所识别的集合的每一通路(例如,集合114的通路118到124)处的数据(例如,在第二时钟周期期间)。基于标记信号和特定集合,选择逻辑128可输出(例如,在第二时钟周期期间)对应于特定通路(例如,通路120)的选定数据130。选择逻辑128可向执行单元144、向发布队列或向另一装置输出选定数据130。在特定方面,选定数据130包含至少一个处理器指令。在另一特定方面,选定数据130包含在执行至少一个处理器指令期间将由执行单元(例如,执行单元144)使用的数据。
响应于从控制器102接收指示串行操作模式的控制信号并响应于接收高速缓冲存储器请求138,AGU 104可产生数据地址(例如,在第一时钟周期期间)。AGU 104可向标记阵列106发送标记请求134(例如,在第二时钟周期期间)。响应于接收标记请求134,标记阵列106可向AGU 104发射标记数据140,并可向标记逻辑126发射信号(例如,在第二时钟周期期间)。标记数据140和信号可识别特定通路(例如,通路120)。响应于从标记阵列106接收信号并从控制器102接收指示串行操作模式的控制信号,标记逻辑126可向选择逻辑128发射指示特定通路的标记信号(例如,在第三时钟周期期间)。AGU104可向数据阵列108发射数据请求136(例如,在第三时钟周期期间)。数据请求136可识别特定集合(例如,特定集合114)和特定通路(例如,通路120)。数据阵列108可向选择逻辑128发射对应于特定集合的特定通路的数据。数据阵列108可阻止除特定集合以外的数据阵列108的集合(例如,集合110、112和116)向选择逻辑128发射数据信号(例如,通过阻止与除特定集合以外的集合相关联的预充电)。选择逻辑128可从数据阵列108接收(例如,在第三时钟周期期间)对应于特定通路的数据,并从标记逻辑126接收标记信号,所述标记信号识别对应于特定通路的输入线。选择逻辑128可输出(例如,在第三时钟周期期间)对应于所识别的通路的选定数据130。在特定方面,选定数据130包含至少一个处理器指令。在另一特定方面,选定数据130包含在执行至少一个处理器指令期间将由执行单元(例如,执行单元144)使用的数据。相比于并行操作模式,串行操作模式可使用更少的电力加载数据(例如,通过阻止与除特定集合以外的集合相关联的预充电)。
尽管并行加载操作被描述为采用两个时钟周期以便完整,但是并行加载操作可采用少于两个时钟周期以便完整,或采用长于两个时钟周期以便完整。尽管串行加载操作被描述为采用三个时钟周期以便完整,但是串行加载操作可采用少于三个时钟周期以便完整,或采用长于三个时钟周期以便完整。相比于并行加载操作,串行加载操作可采用更多时钟周期以便完整。
如上文所解释,控制器102可经配置以在执行高速缓冲存储器150处的多个高速缓冲存储器存取中的每一高速缓冲存储器存取之前,在并行操作模式和串行操作模式之间进行动态的选择。当高速缓冲存储器150从串行操作模式切换到并行操作模式时,数据阵列108处可发生数据碰撞。为了说明,如上文所解释,在串行操作模式中,AGU 104可经配置以在第一时钟周期期间产生第一数据地址(例如,对应于串行操作模式请求)。标记阵列106可在第二时钟周期期间进行存取。数据阵列108可在第三时钟周期期间进行存取。当并行操作模式请求紧跟在串行操作模式请求之后时,AGU 104可经配置以在第二时钟周期期间产生第二数据地址(例如,对应于并行操作模式请求)。在并行操作模式中,标记阵列106和数据阵列108可同时进行存取(例如,在第三时钟周期期间)。因此,在第三时钟周期期间,串行操作模式请求和并行操作模式请求可产生多次尝试使用数据阵列108,从而引起数据碰撞。
下文描述避免数据碰撞的两种方法。在避免数据碰撞的第一种方法中,并行操作模式请求可延迟(例如,在AGU 104处)至少一个时钟周期。在避免数据碰撞的第二种方法中,串行操作模式请求(例如,数据阵列108存取)可延迟(例如,在AGU 104处)至少一个时钟周期。
例如,当执行避免数据碰撞的第一种方法时,AGU 104可根据串行操作模式(例如,在第二时钟周期期间)从标记阵列106接收与第一高速缓冲存储器存取相关联的标记数据140,并且可根据并行操作模式(例如,同样在第二时钟周期期间)产生与第二高速缓冲存储器存取相关联的数据地址。AGU 104可延迟(例如,直到第四时钟周期)发射并行操作模式请求的标记请求134和数据请求136(例如,通过在AGU存储器132中存储对应于并行操作模式请求的所产生的地址)。因此,可避免数据阵列108处的潜在的数据碰撞(例如,在第三时钟周期期间),因为串行操作模式的数据请求136在特定时钟周期(例如,第三时钟周期)期间进行发射,并且并行操作模式的数据请求136在另一时钟周期(例如,第四时钟周期)期间进行发射。
作为另一实例,当执行避免数据碰撞的第二种方法时,AGU 104可根据串行操作模式(例如,在第二时钟周期期间)从标记阵列106接收与第一高速缓冲存储器存取相关联的标记数据140,并且AGU 104可根据并行操作模式(例如,同样在第二时钟周期期间)产生与第二高速缓冲存储器存取相关联的地址。AGU 104可延迟(例如,直到第四时钟周期)发射串行操作模式请求的数据请求136(例如,通过在AGU存储器132中存储对应于串行操作模式请求的标记数据140)。因此,可避免数据阵列108处的潜在的数据碰撞(例如,在第三时钟周期期间),因为并行操作模式的数据请求136在特定时钟周期(例如,第三时钟周期)期间进行发射,并且串行操作模式的数据请求136在另一时钟周期(例如,第四时钟周期)期间进行发射。
当高速缓冲存储器150从并行操作模式切换到串行操作模式时,高速缓冲存储器150可正常处理并行操作请求和串行操作请求。例如,在第一时钟周期期间根据第二高速缓冲存储器存取模式(例如,并行操作模式)执行标记存取(例如,在选择逻辑128处发射标记请求134和接收标记信号)之后,标记阵列106可在紧跟第一时钟周期之后的第二时钟周期中根据第一高速缓冲存储器存取模式(例如,串行操作模式)执行对应于第二高速缓冲存储器存取的第二标记存取。在本实例中,标记阵列106可经配置以在第一时钟周期期间执行对应于并行操作模式的第一标记存取,并且标记阵列106可经配置以在紧跟第一时钟周期之后的第二时钟周期期间执行对应于串行操作模式的第二标记存取。
尽管图1说明集合114和116的通路耦合到共同输入线,所述共同输入线耦合到选择逻辑128,但是集合110到116的通路中的每一个通路可耦合到共同输入线,或可个别地耦合到选择逻辑128。尽管图1说明选择逻辑128直接向执行单元144发射选定数据130,但是在其他方面,一或多个逻辑元件(例如,缓冲器、寄存器组或发布队列)可位于选择逻辑128和执行单元144之间。
基于操作条件(例如,存储在发布队列处的数个指令、执行单元144处的数个活跃线程、省电模式指示器、静态模式输入或其组合),包含可重新配置的提取管线100的电子装置可在并行操作模式和串行操作模式之间切换。当可重新配置的提取管线100在并行操作模式中操作时,相比于串行加载操作,可重新配置的提取管线100可更快速地加载数据。当可重新配置的提取管线100在串行操作模式中操作时,相比于并行加载操作,可重新配置的提取管线100可使用更少的电力加载数据。当存储在发布队列处的指令的数目超过阈值时或当执行单元(例如,执行单元144或另一执行单元)处的活跃线程的数目超过阈值时,使用串行加载操作所加载的数据可在不增加执行时间的情况下进行发射(例如,因为可在数据被请求之前加载数据)。因此,电子装置可获得与经配置以执行串行加载操作的管线相关联并与经配置以执行并行加载操作的管线相关联的益处。
图2说明包含图1的高速缓冲存储器150和执行单元144的可重新配置的提取管线200的特定方面。可重新配置的提取管线200还包含发布队列202。发布队列202可为高速缓冲存储器150的部分,或与高速缓冲存储器150分离。可重新配置的提取管线200可以与图1的可重新配置的提取管线100类似的方式操作。然而,将选定数据130提供到发布队列202。控制数据142可包含发布队列202中的数个指令的指示。例如,当至少特定数目(例如,四个)的指令存储在发布队列202处时,高速缓冲存储器150可经配置以在并行操作模式中操作。当少于特定数目的指令存储在发布队列202处时,高速缓冲存储器150可在串行操作模式中操作。在特定方面,并行操作模式和串行操作模式之间的选择是另外地或可替代地基于执行单元(例如,执行单元144或另一执行单元)的数个活跃线程、省电模式指示器(例如,由高速缓冲存储器外部的装置设置的指定装置是否应该进入省电模式的指示器)、静态模式输入(例如,识别并行操作模式或串行操作模式的用户指定的选择)或其组合(例如,上文参看图1所描述的)。
基于操作条件(例如,存储在发布队列202处的数个指令、执行单元144处的数个活跃线程、省电模式指示器、静态模式输入或其组合),包含可重新配置的提取管线200的电子装置可在并行操作模式和串行操作模式之间切换。当可重新配置的提取管线200在并行操作模式中操作时,相比于串行加载操作,可重新配置的提取管线200可更快速地加载数据。当可重新配置的提取管线200在串行操作模式中操作时,相比于并行加载操作,可重新配置的提取管线200可使用更少的电力加载数据。当存储在发布队列202处的指令的数目超过阈值时或当执行单元(例如,执行单元144或另一执行单元)处的活跃线程的数目超过阈值时,使用串行加载操作所加载的数据可在不增加执行时间的情况下进行发射(例如,因为可在数据被请求之前加载数据)。因此,电子装置可获得与经配置以执行串行加载操作的管线相关联并与经配置以执行并行加载操作的管线相关联的益处。
图3是说明操作可重新配置的提取管线的方法300的特定方面的流程图。方法300包含,在302处,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择。在各种方面中,第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间的选择是基于存储在发布队列处的数个指令、基于执行单元处的数个活跃线程、基于省电模式指示器、基于静态模式输入或其组合。
在第一方面中,基于执行单元144的数据请求线程是否接收到使用串行操作模式可提供数据之前的执行时间(例如,由于执行单元处的数个其它活跃线程),图1的控制器102在串行操作模式和并行操作模式之间进行选择。当其它活跃线程的数目等于或超过阈值(例如,超过与使用串行操作模式载入数据相关联的时钟周期的数目)时,使用串行加载操作而不是并行加载操作不会增加执行时间。如上文所描述,相比于并行加载操作,串行加载操作可消耗更少的电力。
例如,对于串行加载操作,三个线程可在图1的执行单元144处活跃。在本实例中,活跃线程可交替(例如,每一线程可每一三个时钟周期控制一次执行单元144)。在本实例中,串行加载操作采用三个时钟周期以提供数据。数据请求线程将在第一时钟周期期间请求数据,并且直到第四时钟周期才会再次控制执行单元144。在本实例中,串行加载操作在第三时钟周期期间(例如,在数据请求线程重新获得对执行单元144的控制之前)提供所请求的数据。因此,使用串行加载操作并不延迟数据请求线程,并且如上文参看图1所描述,相比于并行加载操作,使用更少的电力。当活跃线程的数目并不等于或超过阈值(例如,并不等于或超过与使用串行操作模式载入数据相关联的时钟周期的数目)时,使用串行加载操作而不是并行加载操作将会增加执行时间。因此,在此情况下,并行加载操作(而不是串行加载操作)可用于更快速地向数据请求线程提供数据。
在第二方面中,基于使用串行操作模式加载的数据在发布队列202处被接收到之前,存储在发布队列202处的指令的数目是否等于或超过(例如,执行单元144或另一执行单元)所请求的指令的数目,图2的控制器102可在串行操作模式和并行操作模式之间进行选择。当使用串行操作模式加载的数据在发布队列202处被接收到之前,存储在发布队列202处的指令的数目等于或超过所请求的指令的数目时,使用串行加载操作而不是并行加载操作不会增加执行时间。如上文参看图1所描述,相比于并行加载操作,串行加载操作可消耗更少的电力。因此,使用串行加载操作可消耗更少的电力,并且性能没有降低。可替代地,当使用串行操作模式加载的数据在发布队列202处被接收到之前,存储在发布队列202处的指令的数目并不等于或超过所请求的指令的数目时,使用串行加载操作而不是并行加载操作将会增加执行时间。因此,在此情况下,并行加载操作(而不是串行加载操作)可用于更快速地向发布队列202提供数据。
方法300还包含,在304处,执行第一高速缓冲存储器存取。当选定第一高速缓冲存储器存取模式时,执行第一高速缓冲存储器存取包含执行标记存取,并在执行标记存取之后执行数据阵列存取。当选定第二高速缓冲存储器存取模式时,执行第一高速缓冲存储器存取包含执行标记存取,同时进行数据阵列存取。例如,当选定串行操作模式时,图1的AGU104或图2的AGU 104可向标记阵列106发射标记请求134,并可在第二时钟周期期间接收标记数据140。在本实例中,AGU 104可在第三时钟周期期间向数据阵列108发射数据请求136。作为另一实例,当选定并行操作模式时,图1的AGU 104或图2的AGU 104可向标记阵列106发射标记请求134,并在第二时钟周期期间向数据阵列108发射数据请求136。方法300可包含执行一或多个另外的高速缓冲存储器存取,以及在每一高速缓冲存储器存取之前,在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间进行选择。
图3的方法300可通过处理单元开始和/或执行,所述处理单元例如中央处理单元(CPU)、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、控制器、另一硬件装置、固件装置,或其任何组合。作为实例,图3的方法300可由一或多个处理器或执行指令的执行单元执行,如参看图1、2和4进一步所描述的。
根据方法300操作的电子装置可基于操作条件(例如,发布队列中的数个指令、执行单元处的数个活跃线程、省电模式指示器、静态模式输入或其组合),在并行操作模式和串行操作模式之间切换。当电子装置在并行操作模式中操作时,相比于串行加载操作,电子装置可更快速地加载数据。当电子装置在串行操作模式中操作时,相比于并行加载操作,电子装置可使用更少的电力加载数据。当存储在发布队列处的指令的数目超过阈值时或当执行单元处的活跃线程的数目超过阈值时,使用串行加载操作加载的数据可在不增加执行时间的情况下进行发射(例如,因为可在数据被请求之前加载数据)。因此,电子装置可获得与经配置以执行串行加载操作的管线相关联并与经配置以执行并行加载操作的管线相关联的益处。
参看图4,框图描绘包含可重新配置的提取管线464的移动装置400的特定的说明性方面。移动装置400,或其组件可包含、实施或包含在一种装置内,所述装置例如通信装置、移动电话、蜂巢式电话、计算机、便携式计算机、平板计算机、存取点、机顶盒、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、移动位置数据单元、桌上型计算机、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播放器,或便携式数字视频播放器。
移动装置400可包含处理器410,例如数字信号处理器(DSP)。处理器410可包含可重新配置的提取管线464,或可不同于可重新配置的提取管线464。可重新配置的提取管线464可经配置以在第一高速缓冲存储器存取模式(例如,串行操作模式)中操作和在第二高速缓冲存储器存取模式(例如,并行操作模式)中操作之间进行动态的选择,如上文参看图1到3所描述。可重新配置的提取管线464可对应于图1的可重新配置的提取管线100或图2的可重新配置的提取管线200。处理器410可耦合到存储器432(例如,非暂时性计算机可读媒体)。
图4还展示耦合到处理器410且耦合到显示器428的显示控制器426。编解码器(CODEC)434也可耦合到处理器410。扬声器436和麦克风438可耦合到CODEC 434。无线控制器440可耦合到处理器410,并可进一步耦合到天线442。
在特定方面,处理器410、显示控制器426、存储器432、CODEC 434、无线控制器440,以及可重新配置的提取管线464包含于封装内系统或片上系统装置422中。输入装置430和电源444可耦合到片上系统装置422。此外,在特定方面,如图4所说明,显示器428、输入装置430、扬声器436、麦克风438、天线442和电源444位于片上系统装置422的外部。然而,显示器428、输入装置430、扬声器436、麦克风438、天线442和电源444中的每一者可耦合到片上系统装置422的组件,例如接口或控制器。可重新配置的提取管线464可包含于片上系统装置422中,如图4中所展示,或可包含于一或多个单独的组件中。
结合所描述的方面,设备(例如,移动装置400)可包含用于执行指令的装置(例如,图1或图2的执行单元144),所述装置耦合到用于获取数据的装置(例如,图1或图2的高速缓冲存储器150)。用于获取数据的装置可包含用于选择存取模式的装置(例如,图1或图2的控制器102)、用于存储标记数据的装置(例如,图1或图2的标记阵列106)、用于存储数据的装置(例如,图1或图2的数据阵列108),以及用于产生地址的装置(例如,图1或图2的地址产生单元(AGU)104)。用于选择存取模式的装置可经配置以基于存储在用于存储指令的装置(例如,图2的发布队列202)处的数个指令、用于执行指令的装置处的数个活跃线程,或基于这两者,在第一存取模式和第二存取模式之间进行选择,并且经配置以基于所述选择,产生存取模式信号。用于产生地址的装置可经配置以,响应于指示选定第一存取模式的存取模式信号,向用于存储标记数据的装置发射标记地址(例如,图1或图2的标记请求134)、从用于存储标记数据的装置接收标记数据(例如,图1或图2的标记数据140),以及向用于存储数据的装置发射数据请求(例如,图1或图2的数据请求136)。数据请求可包含标记数据和数据地址。用于产生地址的装置可进一步经配置以,响应于指示选定第二存取模式的存取模式信号,向用于存储标记数据的装置发射标记地址,同时向用于存储数据的装置发射数据地址。
结合所描述的方面,非暂时性计算机可读媒体存储指令,在由处理器执行时,所述指令使处理器基于操作条件(例如,存储在发布队列处的数个指令、执行单元处的数个活跃线程、省电模式指示器、静态模式输入或其组合),启动或在第一高速缓冲存储器存取模式和第二高速缓冲存储器存取模式之间执行选择。非暂时性计算机可读媒体可进一步存储指令,在由处理器执行时,所述指令使处理器启动或执行第一高速缓冲存储器存取。当选定第一高速缓冲存储器存取模式时,执行第一高速缓冲存储器存取可包含执行标记存取,并在执行标记存取之后执行数据阵列存取。当选定第二高速缓冲存储器存取模式时,执行第一高速缓冲存储器存取可包含执行标记存取,同时进行数据阵列存取。
非暂时性计算机可读媒体可对应于图4的存储器432。处理器可对应于图1的控制器102或执行单元144、图2的控制器102或执行单元144,或图4的处理器410。发布队列可对应于图2的发布队列202。非暂时性计算机可读媒体可存储指令,在由处理器执行时,所述指令使处理器执行上文参看图3所述的操作。
所属领域的技术人员将进一步了解,结合本文所揭示的各个方面所描述的各种说明性逻辑块、配置、模块、电路、和算法步骤可实施为电子硬件、计算机软件,或这两者的组合。上文已大体上就各种说明性组件、块、配置、模块、电路和步骤的功能性对它们加以描述。此功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计限制。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解译为会引起偏离本发明的范畴。
结合本文中所揭示的方面描述的方法或算法的步骤可以硬件的形式、由处理器执行的软件模块的形式或以这两者的组合形式完全体现。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸式磁盘、压缩光盘只读存储器(CD-ROM)或本领域中已知的任何其它形式的非暂时性存储媒体中。例示性非暂时性(例如有形的)存储媒体耦合到处理器,使得处理器可从所述存储媒体读取信息,且将信息写入到所述存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可以驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。
提供对所揭示方面的先前描述以使得所属领域的技术人员能够制造或使用所揭示的方面。所属领域的技术人员将容易明白对这些方面的各种修改,且在不脱离本发明的范畴的情况下,本文中所界定的原理可应用于其它方面。因此,本发明并不意图限于本文展示的方面,而应被赋予与如通过所附权利要求书界定的原理及新颖特征一致的可能的最广范围。

Claims (22)

1.一种用于高速缓冲存储器存取模式选择的方法,其包括:
在串行高速缓冲存储器存取模式中执行第一高速缓冲存储器存取,其包括:
执行第一标记存取;
存储对应于所述第一标记存取的标记数据;以及
基于所存储的标记数据执行第一数据阵列存取;以及
在并行高速缓冲存储器存取模式中执行第二高速缓冲存储器存取,其包括与第二数据阵列存取并行地执行第二标记存取,
其中所述第一标记存取是在所述第二标记存取之前执行且所述第一数据阵列存取是在所述第二高速缓冲存储器存取之后执行。
2.根据权利要求1所述的方法,其中执行所述第一数据阵列存取包括:
基于根据所述第一标记存取所确定的标记信号,选择对应于数据阵列的多个通路的特定通路的特定数据;以及
向数据信号选择电路发射所述特定数据。
3.根据权利要求2所述的方法,其中执行所述第一数据阵列存取进一步包括:
在所述特定数据被发射到所述数据信号选择电路之后,在所述数据信号选择电路处,基于所述标记信号选择所述特定数据。
4.根据权利要求3所述的方法,其中执行所述第一数据阵列存取进一步包括:
在于所述数据信号选择电路处选择所述特定数据之后,向发布队列发射所述特定数据。
5.根据权利要求1所述的方法,其中执行所述第二数据阵列存取包括:
将对应于由所述第一数据阵列存取所存取的数据阵列的多个通路的数据发射到数据信号选择电路。
6.根据权利要求5所述的方法,其中执行所述第二数据阵列存取进一步包括:
在所述数据被发射到所述数据信号选择电路之后,在所述数据信号选择电路处,基于所述第二标记存取选择对应于所述多个通路中的特定通路的特定数据。
7.根据权利要求6所述的方法,其中执行所述第二数据阵列存取进一步包括:
在选择所述特定数据之后,向发布队列发射所述特定数据。
8.根据权利要求1所述的方法,其进一步包括:
基于存储在发布队列处的数个指令、执行单元的数个活跃线程、省电模式指示器、静态模式输入或其组合,确定在所述串行高速缓冲存储器存取模式中执行所述第一高速缓冲存储器存取。
9.根据权利要求8所述的方法,其进一步包括:
基于所述发布队列中的所述指令的数目、所述执行单元处的所述活跃线程的数目,所述省电模式指示器、所述静态模式输入或其组合,确定在所述并行高速缓冲存储器存取模式中执行所述第二高速缓冲存储器存取。
10.一种用于高速缓冲存储器存取模式选择的设备,其包括:
标记阵列;
数据阵列;以及
地址产生单元,其经配置以:
响应于指示选定串行高速缓冲存储器存取模式的存取模式信号:
向所述标记阵列发射第一标记地址;
从所述标记阵列存储对应于所述第一标记地址的第一标记数据;以及
向所述数据阵列发射数据请求,其中所述数据请求包含所述第一标记数据和第一数据地址;以及
响应于指示选定并行高速缓冲存储器存取模式的所述存取模式信号,与向所述数据阵列发射第二数据地址并行地向所述标记阵列发射第二标记地址,
其中所述地址产生单元进一步经配置以在发射所述第二标记地址之前发射所述第一标记地址且在发射所述第二数据地址之后发射所述数据请求。
11.根据权利要求10所述的设备,其进一步包括存取模式选择电路,所述存取模式选择电路经配置以:
基于存储在发布队列处的数个指令、耦合到高速缓冲存储器的执行单元的数个活跃线程,或基于这两者,在所述串行高速缓冲存储器存取模式和所述并行高速缓冲存储器存取模式之间选择;以及
基于所述选择产生所述存取模式信号。
12.根据权利要求11所述的设备,其中所述高速缓冲存储器包括指令高速缓冲存储器。
13.根据权利要求11所述的设备,其中所述高速缓冲存储器包括所述发布队列。
14.根据权利要求11所述的设备,其中所述高速缓冲存储器包括数据高速缓冲存储器。
15.根据权利要求11所述的设备,其中所述存取模式选择电路进一步经配置以基于省电模式指示器、静态模式输入或其组合,在所述串行高速缓冲存储器存取模式和所述并行高速缓冲存储器存取模式之间进行选择。
16.根据权利要求10所述的设备,其进一步包括标记逻辑,所述标记逻辑经配置以:
基于所述第一标记数据,输出标记信号;以及
向数据信号选择电路发射所述标记信号。
17.根据权利要求10所述的设备,其中发布队列经配置以接收对应于所述第一标记地址的数据。
18.根据权利要求17所述的设备,其中对应于所述第一标记地址的所述数据包含将存储在所述发布队列处的至少一个指令。
19.一种存储指令的非暂时性计算机可读媒体,在由处理器执行时,所述指令使所述处理器:
在串行高速缓冲存储器存取模式中执行第一高速缓冲存储器存取,其包括:
执行第一标记存取;
存储对应于所述第一标记存取的标记数据;以及
基于所存储的标记数据执行第一数据阵列存取;以及
在并行高速缓冲存储器存取模式中执行第二高速缓冲存储器存取,其包括与第二数据阵列存取并行地执行第二标记存取,
其中所述第一标记存取是在所述第二标记存取之前执行且所述第一数据阵列存取是在所述第二高速缓冲存储器存取之后执行。
20.一种用于高速缓冲存储器存取模式选择的设备,其包括:
用于存储标记数据的装置;
用于存储数据的装置;以及
用于产生地址的装置,所述用于产生地址的装置经配置以:
在串行高速缓冲存储器存取模式中:
向所述用于存储标记数据的装置发射第一标记地址;
响应于所述第一标记地址,存储从所述用于存储标记数据的装置接收的第一标记数据;以及
向所述用于存储数据的装置发射数据请求,其中所述数据请求包含所述第一标记数据和第一数据地址;以及
在并行高速缓冲存储器存取模式中,与向所述用于存储数据的装置发射第二数据地址并行地向所述用于存储标记数据的装置发射第二标记地址,
其中所述用于产生地址的装置进一步经配置以在发射所述第二标记地址之前发射所述第一标记地址且在所述第二数据地址之后发射所述数据请求。
21.根据权利要求20所述的设备,其进一步包括用于基于存储在发布队列处的数个指令、执行单元的数个活跃线程、省电模式指示器、静态模式输入或其组合,在所述串行高速缓冲存储器存取模式和所述并行高速缓冲存储器存取模式之间进行选择的装置。
22.一种数据阵列碰撞避免方法,所述方法包括:
基于标记阵列的第一存取确定标记数据,所述标记阵列的所述第一存取在串行模式高速缓冲存储器存取操作期间;
存储所述标记数据;
在所述串行模式高速缓冲存储器存取操作之后起始的并行模式高速缓冲存储器存取操作期间并行地执行所述标记阵列的第二存取和数据阵列的第一存取;以及
在所述并行模式高速缓冲存储器存取操作之后,基于所存储的标记数据执行所述数据阵列的第二存取以完成所述串行模式高速缓冲存储器存取操作。
CN201580026298.6A 2014-05-27 2015-05-01 用于高速缓冲存储器存取模式选择的方法和设备 Expired - Fee Related CN106462392B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/287,331 US9529727B2 (en) 2014-05-27 2014-05-27 Reconfigurable fetch pipeline
US14/287,331 2014-05-27
PCT/US2015/028720 WO2015183467A1 (en) 2014-05-27 2015-05-01 Method and apparatus for cache access mode selection

Publications (2)

Publication Number Publication Date
CN106462392A CN106462392A (zh) 2017-02-22
CN106462392B true CN106462392B (zh) 2018-07-17

Family

ID=53274794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580026298.6A Expired - Fee Related CN106462392B (zh) 2014-05-27 2015-05-01 用于高速缓冲存储器存取模式选择的方法和设备

Country Status (6)

Country Link
US (2) US9529727B2 (zh)
EP (2) EP3629184A1 (zh)
JP (1) JP6258525B2 (zh)
KR (2) KR20170081275A (zh)
CN (1) CN106462392B (zh)
WO (1) WO2015183467A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529727B2 (en) 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline
WO2017196142A2 (en) * 2016-05-12 2017-11-16 Lg Electronics Inc. System and method for optimizing dram bus switching using llc
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10896044B2 (en) 2018-06-21 2021-01-19 Advanced Micro Devices, Inc. Low latency synchronization for operation cache and instruction cache fetching and decoding instructions
JP7070384B2 (ja) * 2018-12-10 2022-05-18 富士通株式会社 演算処理装置、メモリ装置、及び演算処理装置の制御方法
US11436144B2 (en) 2020-04-10 2022-09-06 Micron Technology, Inc. Cache memory addressing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717892A (en) * 1995-01-17 1998-02-10 Advanced Risc Machines Limited Selectively operable cache memory
CN1489768A (zh) * 2001-01-31 2004-04-14 Ħ��������˾ 非易失性磁高速缓冲存储器
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684298B1 (en) * 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US6604174B1 (en) * 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
JP2003242029A (ja) 2002-02-15 2003-08-29 Hitachi Ltd 半導体集積回路
JP2004171177A (ja) 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置
GB2410584B (en) * 2003-02-20 2006-02-01 Samsung Electronics Co Ltd Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels
TWI261198B (en) * 2003-02-20 2006-09-01 Samsung Electronics Co Ltd Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US20050268022A1 (en) 2004-05-26 2005-12-01 Pelley Perry H Cache line memory and method therefor
JP2006059068A (ja) 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
US7751269B2 (en) 2006-09-28 2010-07-06 Infineon Technologies Ag Coupling device for transmitting data
US8667225B2 (en) 2009-09-11 2014-03-04 Advanced Micro Devices, Inc. Store aware prefetching for a datastream
US8762644B2 (en) * 2010-10-15 2014-06-24 Qualcomm Incorporated Low-power audio decoding and playback using cached images
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
JP5591969B1 (ja) * 2013-03-27 2014-09-17 株式会社東芝 マルチコアプロセッサおよび制御方法
US9734080B2 (en) * 2013-08-08 2017-08-15 Nxp Usa, Inc. Cache organization and method
US9529727B2 (en) 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717892A (en) * 1995-01-17 1998-02-10 Advanced Risc Machines Limited Selectively operable cache memory
CN1489768A (zh) * 2001-01-31 2004-04-14 Ħ��������˾ 非易失性磁高速缓冲存储器
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance

Also Published As

Publication number Publication date
US9529727B2 (en) 2016-12-27
JP6258525B2 (ja) 2018-01-10
EP3149594B1 (en) 2019-11-27
US20160328325A1 (en) 2016-11-10
JP2017517065A (ja) 2017-06-22
EP3629184A1 (en) 2020-04-01
US10007613B2 (en) 2018-06-26
CN106462392A (zh) 2017-02-22
KR20170012254A (ko) 2017-02-02
KR20170081275A (ko) 2017-07-11
KR101757355B1 (ko) 2017-07-12
WO2015183467A1 (en) 2015-12-03
EP3149594A1 (en) 2017-04-05
US20150347308A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
CN106462392B (zh) 用于高速缓冲存储器存取模式选择的方法和设备
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
CN105786448B (zh) 一种指令调度方法及装置
CN103119537B (zh) 用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置
CN105940381B (zh) 存储器控制器和由存储器控制器执行的方法
CN108885590A (zh) 开销感知高速缓存替换
US8996788B2 (en) Configurable flash interface
TW200949533A (en) Utilization of a store buffer for error recovery on a store allocation cache miss
CN108170500A (zh) 下载进度刷新方法、终端设备及计算机可读存储介质
CN104102500B (zh) 一种应用程序的进程启动方法及计算机系统
CN112230992B (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
CN104460934A (zh) 多cpu调度方法及装置
CN104603747B (zh) 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法
CN107402783A (zh) 一种后台应用程序的管理控制方法及用户终端
CN101809547A (zh) 使用n路高速缓冲存储器的系统和方法
CN107111461A (zh) 在基于中央处理单元(cpu)的系统中通过经压缩存储器控制器(cmc)使用背靠背读取操作来提供存储器带宽压缩
CN104025065A (zh) 用于存储器层次察觉的生产者-消费者指令的装置和方法
CN108351836A (zh) 具有选择性储存的多级非易失性缓存
CN104854557B (zh) 存取高速缓存的设备和方法
CN106796505B (zh) 指令执行的方法及处理器
CN104461273B (zh) 一种信息显示方法和终端设备
CN106462506A (zh) 呼入数据的受控缓存注入
CN106528188B (zh) 一种应用加速方法及装置
CN103810117B (zh) 处理器用指令存储系统
CN104714779B (zh) 指令处理方法及装置

Legal Events

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

Granted publication date: 20180717

Termination date: 20210501