CN101107599B - 高速缓冲存储器控制方法和高速缓冲存储器控制装置 - Google Patents

高速缓冲存储器控制方法和高速缓冲存储器控制装置 Download PDF

Info

Publication number
CN101107599B
CN101107599B CN200680002425XA CN200680002425A CN101107599B CN 101107599 B CN101107599 B CN 101107599B CN 200680002425X A CN200680002425X A CN 200680002425XA CN 200680002425 A CN200680002425 A CN 200680002425A CN 101107599 B CN101107599 B CN 101107599B
Authority
CN
China
Prior art keywords
cache
memory
access
mentioned
hitting
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.)
Active
Application number
CN200680002425XA
Other languages
English (en)
Other versions
CN101107599A (zh
Inventor
金子圭介
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.)
Beijing Eswin Computing Technology Co Ltd
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101107599A publication Critical patent/CN101107599A/zh
Application granted granted Critical
Publication of CN101107599B publication Critical patent/CN101107599B/zh
Active 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
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的目的在于:削减伴随是否命中高速缓存的判定的功耗。为此,对各CPU或各线程,在设置了对高速缓冲存储器内的各通道的高速缓存重新装填是否可能的设定装置的对高速缓冲存储器进行存取的情况下,首先仅对重新装填被设定为“可能”的通道进行是否命中高速缓存的第1判定(步骤2-1、2-2),在是否命中高速缓存的第1判定结果为命中高速缓存的情况下,结束存取(步骤2-6)。在未命中高速缓存的情况下,仅对重新装填未被设定为“可能”的通道进行存取(步骤2-3),或者,进行对全部通道的存取的是否命中的第2判定(步骤2-4)。

Description

高速缓冲存储器控制方法和高速缓冲存储器控制装置
技术领域
本发明涉及装载了高速缓冲存储器的微处理器中的高速缓冲存储器控制方法和高速缓冲存储器控制装置。
背景技术
在微处理器中,为了隐蔽向外部存储器的存取的执行损失(penalty),装载了高速缓冲存储器。另外,在近年来装载了微处理器的***中,为了提高程序的执行性能,正在采用装载了多个处理器核心(core)的多处理器***或用于在一个处理器中高效地执行多个程序的可进行多线程(multi thread)处理的处理器。
在多处理器或多线程处理器中,以执行多个程序时的存储器共有并使用一个存储器空间的情形居多。即使对上述高速缓冲存储器,也不在各处理器、各线程上装载独立的高速缓冲存储器,而是共有并使用一个高速缓冲存储器或高速缓冲存储器***的情形居多。
通常,高速缓冲存储器采取具有多条通道的组相联(set-associative)结构。在程序对高速缓存存取的情况下,存取地址是命中高速缓存(cache hit),还是未命中高速缓存(cache miss),通常在对全部通道进行存取后加以判定。
在多处理器或进行多线程处理的处理器中,有一种方法,即,各自的程序所进行高速缓存的数据分配高速缓存通道,使之对相互的程序没有影响。此时,在未命中高速缓存的情况下,为了将数据重新装填到被分配给各程序的通道,在各程序中命中高速缓存的通道为所分配的通道的概率高。
不管如何,由于是对共有存储器进行高速缓存的共有高速缓冲存储器,所以是否命中的判定必须对全部通道进行,对全部通道进行存取的是否命中高速缓存的判定成为消耗无用的功率的状态。
为了降低高速缓存存取时的功耗,有仅对上一次进行了存取的通道进行是否命中高速缓存的判定,或者对上一次进行了存取的通道只有数据阵列进行存取的方法(专利文献1:日本专利申请公开特开平11-39216号公报)。但是,该方法有效之处仅限于取指令等地址按时序(sequential)变化的情形。另外,在多处理器***或进行多线程处理的处理器的情况下,被并行处理的程序的取指令地址或数据存取地址有时不连续,因而不能充分发挥其效果。
专利文献1:日本专利申请公开特开平11-39216号公报
在从多个处理器或线程存取的共有高速缓冲存储器中,在上述高速缓冲存储器可对各处理器或线程重新装填的通道进行分配的情况下,由于命中所分配的通道的概率高,故如对全部通道同时进行是否命中的判定,则消耗无谓的功率。
发明内容
因此,本发明的目的在于,提供一种可削减伴随是否命中高速缓存的判定的功耗的高速缓冲存储器控制方法和高速缓冲存储器控制装置。
为了解决上述课题,本发明的高速缓冲存储器控制方法是:对于由至少2个存储器单位构成的高速缓冲存储器,在每个存储器单位中预先设定高速缓存重新装填的可否,对于在高速缓冲存储器之中高速缓存重新装填被设定为“可”的存储器单位,有选择地进行存取,进行是否命中高速缓存的第1判定,在命中高速缓存时,结束对高速缓冲存储器的存取(以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取)。
按照该方法,对于高速缓冲存储器之中高速缓存重新装填被设定为“可”的存储器单位,有选择地进行是否命中高速缓存的第1判定,并且在判定命中高速缓存时,结束对高速缓冲存储器的存取(以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取),所以可削减伴随是否命中高速缓存的判定的功耗。而且,高速缓存重新装填被设定为“可”的存储器单位由于命中高速缓存的概率高,故以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取而结束的概率高,可有效地削减功耗。
在上述本发明的高速缓冲存储器控制方法中,理想情况是,当是否命中高速缓存的第1判定的结果为未命中高速缓存时,对于高速缓冲存储器之中高速缓存重新装填被设定为“否”的存储器单位,有选择地进行存取,进行是否命中高速缓存的第2判定。
按照该方法,由于对于高速缓存重新装填被设定为“否”的存储器单位进行是否命中高速缓存的第2判定,所以即使各自被许可的存储器单位是以不同的多个存取进行存取的高速缓冲存储器,也可对同一地址空间进行高速缓存。
另外,在上述本发明的高速缓冲存储器控制方法中,当是否命中高速缓存的第1判定的结果为未命中高速缓存时,也可对于高速缓冲存储器的全部存储器单位进行存取,进行是否命中高速缓存的第2判定。
按照该方法,由于对于全部存储器单位进行是否命中高速缓存的第2判定,所以即使各自被许可的存储器单位是以不同的多个存取进行存取的高速缓冲存储器,也可对同一地址空间进行高速缓存。
另外,在上述本发明的高速缓冲存储器控制方法中,高速缓冲存储器从至少2个存取元被存取,与至少2个存取元中的各存取元对应地,在每个存储器单位预先设定高速缓存重新装填的可否。
本发明的高速缓冲存储器控制装置包括:高速缓冲存储器,由至少2个存储器单位构成;高速缓存重新装填可否设定部,对于高速缓冲存储器在每个存储器单位中设定高速缓存重新装填的可否;存储器单位选择装置,根据高速缓存重新装填可否设定部的设定状态,对于高速缓冲存储器之中高速缓存重新装填被高速缓存重新装填可否设定部设定为“可”的存储器单位,可有选择地进行存取;以及是否命中控制部,对于高速缓存重新装填被设定为“可”的存储器单位,进行是否命中高速缓冲存储器的第1判定,在命中高速缓存时,结束对高速缓冲存储器的存取(以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取)。
按照该结构,对于高速缓冲存储器之中高速缓存重新装填被设定为“可”的存储器单位,有选择地进行是否命中高速缓存的第1判定,并且在判定命中高速缓存时,结束对高速缓冲存储器的存取(以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取),所以可削减伴随是否命中高速缓存的判定的功耗。而且,高速缓存重新装填被设定为“可”的存储器单位由于命中高速缓存的概率高,故以仅对高速缓存重新装填被设定为“可”的存储器单位进行存取而结束的概率高,可有效地削减功耗。
在上述本发明的高速缓冲存储器控制装置中,理想情况是,存储器单位选择装置在被是否命中控制部判定为未命中高速缓存时,对于高速缓冲存储器之中高速缓存重新装填被设定为“否”的存储器单位,可有选择地进行存取,是否命中控制部对于高速缓存重新装填被设定为“否”的存储器单位,进行是否命中高速缓存的第2判定。
按照该结构,由于对于高速缓存重新装填被设定为“否”的存储器单位进行是否命中高速缓存的第2判定,所以即使各自被许可的存储器单位是以不同的多个存取进行存取的高速缓冲存储器,也可对同一地址空间进行高速缓存。
另外,在上述本发明的高速缓冲存储器控制装置中,存储器单位选择装置在被是否命中控制部判定为未命中高速缓存时,对于高速缓冲存储器的全部存储器单位,可进行存取,是否命中控制部对于高速缓冲存储器的全部存储器单位,进行是否命中高速缓存的第2判定。
按照该结构,由于对于全部存储器单位进行是否命中高速缓存的第2判定,所以即使各自被许可的存储器单位是以不同的多个存取进行存取的高速缓冲存储器,也可对同一地址空间进行高速缓存。
另外,在上述本发明的高速缓冲存储器控制装置中,高速缓冲存储器从至少2个存取元被存取,高速缓存重新装填可否设定部与至少2个存取元中的各存取元对应地,在每个存储器单位预先设定高速缓存重新装填的可否。
另外,理想情况是,上述高速缓存重新装填可否设定部有设定每个存储器单位的高速缓存重新装填的可否的寄存器,可用软件变更寄存器的值。
发明的效果
如果应用本发明,则在装载多处理器或进行多线程处理的CPU(Central Processing Unit:中央处理单元)并装载共有高速缓冲存储器的***中,在高速缓存控制部可对各处理器或线程分配进行重新装填的通道的情况下,可降低高速缓存存取的功率而并不降低高速缓存存取周期的性能。
附图说明
图1是表示本发明的实施例1中的高速缓冲存储器控制装置的***结构的方框图。
图2是本发明的实施例1中的高速缓存存取的流程图。
图3是本发明的实施例1中的高速缓冲存储器控制装置的时序图(分配,通道内的命中)。
图4是本发明的实施例1中的高速缓冲存储器控制装置的时序图(分配,通道以外的命中)。
图5是本发明的实施例2中的高速缓存存取的流程图。
图6是本发明的实施例2中的高速缓冲存储器控制装置的时序图。
图7是表示本发明的实施例3中的高速缓冲存储器控制装置的***结构的方框图。
符号说明
(1-1)CPU1
(1-2)CPU2
(1-3)高速缓存控制部
(1-4)高速缓冲存储器
(1-5)存取调停控制部
(1-6)重新装填许可通道设定部
(1-7)CS信号生成部
(1-8)是否命中控制部
(1-9)通道1
(1-10)通道2
(1-11)通道3
(1-12)通道4
(1-13)CPU1 请求
(1-14)CPU1 ID
(1-15)CPU1 地址
(1-16)CPU2 请求
(1-17)CPU2 ID
(1-18)CPU2 地址
(1-19)存取地址
(1-20)通道1 CS信号
(1-21)通道2 CS信号
(1-22)通道3 CS信号
(1-23)通道4 CS信号
(1-24)通道1 命中信号
(1-25)通道2 命中信号
(1-26)通道3 命中信号
(1-27)通道4 命中信号
(1-28)数据选择信号
(1-29)通道1 数据
(1-30)通道2 数据
(1-31)通道3 数据
(1-32)通道4 数据
(1-33)高速缓存读出数据
(1-34)通道选择器
(1-35)存取结束信号
(1-36)CPU1 确认
(1-37)CPU2 确认
(1-38)时钟
(1-39)存取ID
(1-40)重新装填许可信息
(1-41)BCU
(1-42)IO总线
(1-43)许可设定寄存器1
(1-44)许可设定寄存器2
2-1第1存取的步骤
2-2是否命中第1判定的步骤
2-3第2存取的步骤
2-4是否命中第2判定的步骤
2-5高速缓存重新装填的步骤
2-6数据输出的步骤
2-7存取结束的步骤
具体实施方式
以下,参照附图说明本发明的实施例。
实施例1
图1表示实施例1中的高速缓冲存储器控制装置的***结构图。在图1中表示读出存取时的命中高速缓存动作所需的功能部。在该***中,CPU1(1-1)和CPU2(1-2)由高速缓存控制部(1-3)共有高速缓冲存储器(1-4)而动作。
在高速缓存控制部(1-3)中,符号(1-5)表示存取调停控制部,符号(1-6)表示重新装填许可通道设定部,符号(1-7)表示CS(ChipSelect:片选)信号生成部,符号(1-8)表示是否命中控制部。符号(1-43)表示许可设定寄存器1,符号(1-44)表示许可设定寄存器2。符号(1-41)表示总线控制部即BCU(Bus Control Unit:总线控制单元),符号(1-42)表示IO(Input/Output:输入/输出)总线。
在高速缓冲存储器(1-4)中,符号(1-9)表示通道1,符号(1-10)表示通道2,符号(1-11)表示通道3,符号(1-12)表示通道4。
符号(1-13)表示CPU1请求,符号(1-14)表示CPU1ID,符号(1-15)表示CPU1地址。符号(1-16)表示CPU2请求,符号(1-17)表示CPU2ID,符号(1-18)表示CPU2地址。符号(1-19)表示高速缓存控制部(1-3)的存取地址。
符号(1-20)表示通道1CS信号,符号(1-21)表示通道2CS信号,符号(1-22)表示通道3CS信号,符号(1-23)表示通道4CS信号。各通道的CS信号,即符号(1-20)~(1-23)中所示的各信号为负逻辑的信号。符号(1-24)表示通道1命中信号,符号(1-25)表示通道2命中信号,符号(1-26)表示通道3命中信号,符号(1-27)表示通道4命中信号。符号(1-28)表示数据选择信号。符号(1-29)表示通道1数据,符号(1-30)表示通道2数据,符号(1-31)表示通道3数据,符号(1-32)表示通道4数据。符号(1-33)表示高速缓存读出数据。符号(1-34)表示通道选择器。符号(1-35)表示存取结束信号。符号(1-36)表示CPU1确认,符号(1-37)表示CPU2确认。符号(1-38)表示时钟。符号(1-39)表示存取ID。符号(1-40)表示重新装填许可信息。
以下,详细地说明本实施例的高速缓冲存储器控制装置。在由CPU1(1-1)和CPU2(1-2)进行存储器存取的情况下,在高速缓存控制部(1-3)的存取调停控制部(1-5)中,调停从哪一CPU进行存取,根据受理了处理的CPU的ID生成进行高速缓存存取的存取ID(1-39)。在此处,受理了处理的CPU的ID直接成为存取ID(1-39)。
高速缓存控制部(1-3)通过存取ID(1-39),例如选择CPU1地址(1-15),送给高速缓冲存储器(1-4)。
在高速缓存控制部(1-3)中,具有重新装填许可通道设定部(1-6),具有设定由CPU1(1-1)和CPU2(1-2)执行中的程序对哪一通道许可重新装填的许可设定寄存器1(1-43)、许可设定寄存器2(1-44)。许可设定寄存器1(1-43)保持对CPU1(1-1)的设定,许可设定寄存器2保持对CPU2的设定。另外,许可设定寄存器1(1-43)、许可设定寄存器2(1-43)是可从BCU(1-41)经由IO总线(1-42)进行存取的寄存器,是可由软件自由地设定的寄存器。
高速缓冲存储器(1-4)具有组相联结构。在图中示出了4通道组相联结构的高速缓冲存储器(1-4)。具体地说,高速缓冲存储器(1-4)由通道1(1-9)、通道2(1-10)、通道3(1-11)、通道4(1-12)这4个存储器块(存储器单位)构成。各通道由保持标签(tag)数据的标签存储器和保持数据的数据存储器构成。
对各通道的存取通过从CS信号生成部(1-7)输入CS信号来执行。CS信号生成部(1-7)生成通道1CS信号(1-20),输入到通道1(1-9)。输入了CS信号的通道1(1-9)对存取地址(1-19),在本例中为CPU1地址(1-15),进行是否命中高速缓存的判定,并将通道1命中信号(1-24)输出给是否命中控制部(1-8)。在命中高速缓存的情况下,从通道1内的数据存储器输出通道1数据(1-29)。其它的通道也同样地动作。
是否命中控制部(1-8)接受通道1命中信号(1-24)、通道2命中信号(1-25)、通道3命中信号(1-26)、通道4命中信号(1-27),只要任意一个命中信号被认定(assert),则判断为命中高速缓存,输出数据选择信号(1-28)。另外,是否命中控制部(1-8)在输出数据选择信号(1-28)的同时,还输出存取结束信号(1-35),告知存取调停控制部(1-5)存取已结束,存取调停控制部(1-5)根据当前正存取的存取ID(1-39)输出CPU1确认(1-36)或CPU2确认(1-37)。
通道选择器(1-34)如上所述接受数据选择信号(1-28),选择已命中的通道的数据,将高速缓存读出数据(1-33)输出给CPU1(1-1)和CPU2(1-2)。
图2表示本发明的实施例1中的高速缓存存取的流程图。如果从CPU1(1-1)或CPU2(1-2)发生存取,则决定由存取调停控制部(1-5)受理存取的CPU,生成存取ID(1-39),开始高速缓存存取。
一旦开始高速缓存存取,则从重新装填许可通道设定部(1-6)向CS信号生成部(1-7),以存取ID(1-39)为基础输出重新装填许可信息(1-40)。在受理了CPU1(1-1)的情况下许可设定寄存器1(1-43)的内容,在受理了CPU2(1-2)的情况下许可设定寄存器2(1-44)的内容作为重新装填许可信息(1-40)输出。其结果是,在CS信号生成部(1-7)仅对所分配的通道生成CS信号,由此对所分配的通道进行存取(步骤2-1)。
进行了存取的通道进行是否命中判定,并将作为进行了是否命中判定的结果的命中信号返回到是否命中控制部(1-8)。在是否命中控制部(1-8)进行是否命中的第1判定(步骤2-2)。
在是否命中控制部(1-8)从任意一个通道认定了命中信号的情况下,判定为命中,在输出了所命中的通道的数据(步骤2-6)后,结束存取(步骤2-7)。
在步骤2-2中由是否命中控制部(1-8)判定为未命中的情况下,在CS信号生成部(1-7)对未被重新装填许可通道设定部(1-6)内的许可设定寄存器1(1-43)分配的剩余通道生成CS信号,进行第2存取(步骤2-3)。
进行了第2存取的通道将作为是否命中判定的结果的命中信号返回到是否命中控制部(1-8)。在是否命中控制部(1-8)进行是否命中的第2判定(步骤2-4)。在从任意一个通道认定了命中信号的情况下,判定为命中,在输出了所命中的通道的数据(步骤2-6)后,结束存取(步骤2-7)。
在是否命中的第2判定(步骤2-4)为未命中的情况下,开始来自外部存储器的重新装填的处理(步骤2-5)。
图3是实施例1中的时序图,是在所分配的通道内命中的情况下的时序图。图中示出了来自CPU1(1-1)的存取的情况。
另外,假设对CPU1(1-1),在重新装填许可通道设定部(1-6)对通道1和通道2设定重新装填的许可。
在周期3-1中发生来自CPU1(1-1)的高速缓存请求,在存取调停控制部(1-5)中受理来自CPU1(1-1)的存取,生成存取ID(1-39)。即,存取ID(1-39)输出表示CPU1(1-1)的“ID1”。
重新装填许可通道设定部(1-6)从存取ID(1-39)将“0011”作为重新装填许可信息(1-40)输出给CS信号生成部(1-7)。在图中,重新装填许可信息(1-40)表示,各个位(bit)与各通道对应地,如果是1则被许可。
CS信号生成部(1-7)生成只是通道1、通道2的CS信号,认定通道1CS信号(1-20)、通道2CS信号(1-21),不认定通道3CS信号(1-22)、通道4CS信号(1-23)。
输入了CS信号的通道1(1-9)、通道2(1-10)对存取地址(1-19)进行是否命中判定,在周期3-2中,输出通道1命中信号(1-24)、通道2命中信号(1-25)。图3中示出了命中通道1的情形。
是否命中控制部(1-8)观察通道1命中信号(1-24)、通道2命中信号(1-25),判定为已命中通道1,输出存取结束信号(1-35),结束高速缓存控制。同时,输出选择通道1的信号,作为数据选择信号(1-28)。
在存取调停控制部(1-5)从存取结束信号(1-35)和存取ID(1-39),将确认信号返回到存取ID(1-39)所表示的CPU。在图中,由于是来自CPU1(1-1)的存取,故认定CPU1确认(1-36)。
在通道选择器(1-34)观察数据选择信号(1-28)以选择通道1数据(1-29),并输出通道1的数据作为高速缓存读出数据(1-33)。
在将重新装填高速缓存的通道分配给多处理器的各CPU或各线程,重新装填的通道被各CPU、各线程限定的情况下,高速缓存存取所命中的通道在上述所分配的通道内的概率高。特别是,在各CPU、各线程分割存储器空间,即使在同一物理存储器内也无共有存储器空间的情况下,其概率为100%。
在这样的情况下,即使对共有高速缓冲存储器的全部通道进行存取,由于在所分配的通道内命中的概率高,所以使未被分配的通道的存储器动作会无谓地消耗功率。
仅对所分配的通道进行存取,在该通道内命中的情况下,无需对剩余通道进行存取。
另外,用本发明的方法在所分配的通道内命中的情况下,以及在第1存取中对全部通道进行存取的情况下,直至存取结束的周期数不变。
按照本发明,只要考虑在上述所分配的通道内命中的概率,即可实现功率降低而性能又不致变差。
图4是实施例1中的时序图,是在所分配的通道以外命中的情况下的时序图。图4中示出了命中通道3的情况下的动作。周期3-4的动作与图3的周期3-1相同。
在周期3-5中,由于未命中进行过存取的通道1、通道2,所以通道1命中信号(1-24)和通道2命中信号(1-25)未被认定。高速缓存控制部(1-3)在是否命中的第1判定中判断为未曾命中,开始是否命中的第2判定。
在周期3-5中由于对未被分配的通道3、通道4进行存取,从CS信号生成部(1-7)生成通道3CS信号(1-22)、通道4CS信号(1-23)。
在周期3-6中输出通道3命中信号(1-26)和通道4命中信号(1-27)。
是否命中控制部(1-8)进行第2判定周期,当由通道3命中信号(1-26)命中通道3时,结束高速缓存控制,输出存取结束信号(1-35)。同时,输出通道3的选择信号作为数据选择信号(1-28)。
在通道选择器(1-34)观察数据选择信号(1-28)以选择通道3数据(1-31),输出通道3的数据作为高速缓存读出数据(1-33)。
再有,虽然没有图示,但在图3的周期3-6中通道3命中信号(1-26)、通道4命中信号(1-27)均未被认定的情况下,是否命中控制部(1-8)判断为高速缓存未命中,在周期3-6以后,高速缓存控制部(1-3)开始来自外部存储器的重新装填的处理。
如果进行上述2阶段的存取,则在共有存储器空间内存在命中被自CPU以外的CPU分配到自CPU的通道以外的通道的数据的情况下,也可进行来自高速缓冲存储器的数据读出。
另外,也无需通过高速缓存存取对外部存储器进行存取,与全部通道存取时同样地可使用共有高速缓冲存储器。
另外,如上所述,由于通常命中高速缓存的通道在所分配的通道内命中的概率高,所以若从程序的总体执行来考虑,则能够以与全部通道存取时同等的存取性能来实现功耗降低。
再有,在本实施例中虽然对读出存取进行了说明,但就写入存取而言,也可用同样的方法来实现功耗降低。
另外,在本实施例中虽然对高速缓冲存储器的各通道当被输入CS信号时进行是否命中判定并输出数据的高速缓冲存储器进行了说明,但高速缓冲存储器内的标签存储器、数据存储器即使是可用标签存储器用的CS信号、数据存储器用的CS信号分别进行存取的高速缓冲存储器,也可执行同样的处理。
实施例2
图5是本发明的实施例2中的高速缓存存取的流程图。
在实施例2中,只是实施例1中的第2存取时的存取通道数不同,从存取开始至第1存取的步骤(步骤2-1、2-2)与第2存取以后的步骤(步骤2-4、2-5、2-6、2-7)相同。
在实施例2中,在第2存取(步骤3-1)中,对全部通道进行存取。
图6是实施例2中的时序图。图中示出了命中未被分配的通道的情形的时序图。
再有,命中所分配的通道的情形是与实施例1完全相同的存取时序(图3)。
周期6-1的动作与图3的周期3-1相同。
在周期6-1中,由于未命中已存取过的通道1、通道2,所以通道1命中信号(1-24)和通道2命中信号(1-25)未被认定。高速缓存控制部(1-3)在是否命中的第1判定中判断为未曾命中,开始是否命中的第2判定。
在周期6-2中,进行全部通道的存取。从CS信号生成部(1-7)生成通道1CS信号(1-20)、通道2CS信号(1-21)、通道3CS信号(1-22)、通道4CS信号(1-23)。
在周期6-3中输出通道1命中信号(1-24)、通道2命中信号(1-25)、通道3命中信号(1-26)、通道4命中信号(1-27)。
是否命中控制部(1-8)进行是否命中的第2判定,当由通道3命中信号(1-26)命中通道3时,结束高速缓存控制,输出存取结束信号(1-35)。同时,输出通道3的选择信号作为数据选择信号(1-28)。
在通道选择器(1-34)观察数据选择信号(1-28)以选择通道3数据(1-31),输出通道3的数据作为高速缓存读出数据(1-33)。
再有,与实施例1同样地,在实施例2中虽然也仅示出读出存取,但对写入存取也可应用同样的方法。
实施例3
图7表示实施例3中的高速缓冲存储器控制装置的***结构图。在图7中表示读出存取时的命中高速缓存动作所需的功能部。
该***中的CPU(7-1)是以时间单位切换程序计数器等的内部资源信息而执行多个程序的CPU,或用一个CPU并行执行多个程序的CPU(多线程)。在此处,假设本实施例的CPU(7-1)是进行通常的多线程动作,在存储器存取的执行中线程不作切换的CPU。
符号(7-2)表示存取控制部,符号(7-3)表示CPU地址,符号(7-4)表示CPU请求,符号(7-5)表示CPU确认,符号(7-6)表示处理ID。符号(7-7)表示保持每个处理ID的重新装填许可通道的设定的许可设定寄存器。
在从CPU(7-1)进行存取的情况下,输出CPU请求(7-4),与之同步地输出当前正在执行的处理的识别符即处理ID(7-6)。存取控制部(7-2)接受CPU请求(7-4),开始高速缓存存取。另外,将存取ID(1-39)输出给重新装填许可通道设定部(1-6)。在重新装填许可通道设定部(1-6)中有对每个处理ID可设定重新装填许可通道的许可设定寄存器(7-7),将与存取ID(1-39)对应的设定作为重新装填许可信息(1-40)输出。在该实施例中,处理ID(7-6)作为存取ID(1-39)直接原样输出,但如果能够理解为与处理ID(7-6)对应,也可以是不同的数据。
其后的处理与实施例1、实施例2相同,得到同样的效果。
如上所述,CPU(7-1)进行通常的多线程动作,在读出存取过程中(在读出数据返回前)线程不作切换。即,在高速缓存读出数据(1-33)被输入到CPU(7-1)之前线程不作切换。因此,高速缓存读出数据(1-33)总是启动了其读出存取的与处理ID(7-6)对应的数据。因此,CPU(7-1)可原样取入高速缓存读出数据(1-33)。
另外,与实施例1同样地示出了仅仅是读出存取的功能,但对写入存取也可应用同样的方法。
再有,在上述各实施例中,是否命中的第1判定的结果是,完成对命中高速缓存的情形的高速缓冲存储器的存取,进行对未命中高速缓存的情形的高速缓冲存储器的剩余通道或全部通道的存取,以进行是否命中的第2判定。但是,是否命中的第1判定的结果,也可以是在未命中高速缓存的情况下不进行对高速缓冲存储器的剩余通道或全部通道的存取,也就是说不进行是否命中的第2判定,使来自外部存储器的重新装填的处理开始。
工业上的可利用性
本发明的高速缓冲存储器控制装置具有可降低高速缓存存取的功率而几乎不降低高速缓存存取周期的性能的效果,作为装载多处理器或进行多线程处理的CPU并装载共有高速缓冲存储器的***是有用的。

Claims (4)

1.一种高速缓冲存储器控制方法,其中,对于由至少2个存储器单位构成的高速缓冲存储器,对每个存储器单位预先设定高速缓存重新装填的可否,基于根据受理了处理的CPU的ID、或根据作为当前正在执行的处理的识别符的处理ID生成的、进行高速缓存存取的存取ID,对于在上述高速缓冲存储器之中高速缓存重新装填被设定为“可”的存储器单位,有选择地进行存取,进行是否命中的判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第1判定,在命中高速缓存时,结束对上述高速缓冲存储器的存取,
当上述是否命中高速缓存的第1判定的结果为未命中高速缓存时,根据上述存取ID,对于上述高速缓冲存储器之中高速缓存重新装填被设定为“否”的存储器单位,有选择地进行存取,进行是否命中的判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第2判定,在命中高速缓存时结束向上述高速缓冲存储器的存取,在上述是否命中高速缓存的第2判定为未命中的情况下,开始来自外部存储器的重新装填的处理。
2.一种高速缓冲存储器控制方法,其中,对于由至少2个存储器单位构成的高速缓冲存储器,对每个存储器单位预先设定高速缓存重新装填的可否,基于根据受理了处理的CPU的ID、或根据作为当前正在执行的处理的识别符的处ID生成的、进行高速缓存存取的存取ID,对于在上述高速缓冲存储器之中高速缓存重新装填被设定为“可”的存储器单位,有选择地进行存取,进行是否命中的判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第1判定,在命中高速缓存时,结束对上述高速缓冲存储器的存取,
当上述是否命中高速缓存的第1判定的结果为未命中高速缓存时,对于上述高速缓冲存储器的全部存储器单位有选择地进行存取,进行是否命中的判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第2判定,在命中高速缓存时结束向上述高速缓冲存储器的存取,在上述是否命中高速缓存的第2判定为未命中的情况下,开始来自外部存储器的重新装填的处理。
3.一种高速缓冲存储器控制装置,包括:高速缓冲存储器,由至少2个存储器单位构成;高速缓存重新装填可否设定部,对于上述高速缓冲存储器,对应于根据受理了处理的CPU的ID、或根据作为当前正在执行的处理的识别符的处理ID生成的、进行高速缓存存取的存取ID,对每个存储器单位设定高速缓存重新装填的可否;存储器单位选择装置,根据上述高速缓存重新装填可否设定部的设定状态,对于上述高速缓冲存储器之中高速缓存重新装填被上述高速缓存重新装填可否设定部设定为“可”的存储器单位,能够有选择地进行存取;以及是否命中控制部,对于上述高速缓存重新装填被设定为“可”的存储器单位进行是否命中的判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓冲存储器的第1判定,在命中高速缓存时,结束对上述高速缓冲存储器的存取,
上述存储器单位选择装置在通过上述是否命中控制部判定为未命中高速缓存时,根据上述存取ID,对于上述高速缓冲存储器之中高速缓存重新装填被设定为“否”的存储器单位,能够有选择地进行存取,上述是否命中控制部对于上述高速缓存重新装填被设定为“否”的存储器单位,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第2判定,在命中高速缓存时结束向上述高速缓冲存储器的存取,在上述是否命中高速缓存的第2判定为未命中的情况下,开始来自外部存储器的重新装填的处理。
4.一种高速缓冲存储器控制装置,包括:高速缓冲存储器,由至少2个存储器单位构成;高速缓存重新装填可否设定部,对于上述高速缓冲存储器,对应于根据受理了处理的CPU的ID、或根据作为当前正在执行的处理的识别符的处理ID生成的、进行高速缓存存取的存取ID,对每个存储器单位设定高速缓存重新装填的可否;存储器单位选择装置,根据上述高速缓存重新装填可否设定部的设定状态,对于上述高速缓冲存储器之中高速缓存重新装填被上述高速缓存重新装填可否设定部设定为“可”的存储器单位,能够有选择地进行存取;以及是否命中控制部,对于上述高速缓存重新装填被设定为“可”的存储器单位,进行是否命中判定,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓冲存储器的第1判定,在命中高速缓存时,结束对上述高速缓冲存储器的存取,
上述存储器单位选择装置在通过上述是否命中控制部判定为未命中高速缓存时,对于上述高速缓冲存储器的全部存储器单位,能够进行存取,上述是否命中控制部对于上述高速缓冲存储器的全部存储器单位,根据作为进行是否命中判定后的结果的命中信号来进行是否命中高速缓存的第2判定,在命中高速缓存时结束向上述高速缓冲存储器的存取,在上述是否命中高速缓存的第2判定为未命中的情况下,开始来自外部存储器的重新装填的处理。
CN200680002425XA 2005-03-22 2006-03-22 高速缓冲存储器控制方法和高速缓冲存储器控制装置 Active CN101107599B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP081544/2005 2005-03-22
JP2005081544 2005-03-22
PCT/JP2006/305676 WO2006101113A1 (ja) 2005-03-22 2006-03-22 キャッシュメモリ制御方法およびキャッシュメモリ制御装置

Publications (2)

Publication Number Publication Date
CN101107599A CN101107599A (zh) 2008-01-16
CN101107599B true CN101107599B (zh) 2011-09-21

Family

ID=37023773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680002425XA Active CN101107599B (zh) 2005-03-22 2006-03-22 高速缓冲存储器控制方法和高速缓冲存储器控制装置

Country Status (5)

Country Link
US (1) US7636812B2 (zh)
EP (1) EP1862906A4 (zh)
JP (1) JP4080527B2 (zh)
CN (1) CN101107599B (zh)
WO (1) WO2006101113A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4635063B2 (ja) * 2008-03-11 2011-02-16 株式会社東芝 キャッシュメモリ制御回路及びプロセッサ
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
JP6012263B2 (ja) * 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US8984368B2 (en) 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845309A (en) * 1995-03-27 1998-12-01 Kabushiki Kaisha Toshiba Cache memory system with reduced tag memory power consumption
US6038647A (en) * 1995-12-06 2000-03-14 Fujitsu Limited Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US6351788B1 (en) 1996-10-30 2002-02-26 Hitachi, Ltd. Data processor and data processing system
JPH11139216A (ja) 1997-11-12 1999-05-25 Primo Hanbai Kk 車載用機器のホルダー装置
GB9727485D0 (en) * 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
JP2000099399A (ja) 1998-09-19 2000-04-07 Apriori Micro Systems:Kk ウェイ予測型キャッシュメモリとそのアクセス方法
KR100351504B1 (ko) * 2000-06-05 2002-09-05 삼성전자 주식회사 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
US6823426B2 (en) * 2001-12-20 2004-11-23 Intel Corporation System and method of data replacement in cache ways
US7055004B2 (en) * 2003-09-04 2006-05-30 International Business Machines Corporation Pseudo-LRU for a locking cache
US7516275B2 (en) * 2006-04-25 2009-04-07 International Business Machines Corporation Pseudo-LRU virtual counter for a locking cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845309A (en) * 1995-03-27 1998-12-01 Kabushiki Kaisha Toshiba Cache memory system with reduced tag memory power consumption
US6038647A (en) * 1995-12-06 2000-03-14 Fujitsu Limited Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device

Also Published As

Publication number Publication date
JPWO2006101113A1 (ja) 2008-09-04
US20090235028A1 (en) 2009-09-17
EP1862906A4 (en) 2009-01-07
WO2006101113A1 (ja) 2006-09-28
CN101107599A (zh) 2008-01-16
EP1862906A1 (en) 2007-12-05
US7636812B2 (en) 2009-12-22
JP4080527B2 (ja) 2008-04-23

Similar Documents

Publication Publication Date Title
CN101107599B (zh) 高速缓冲存储器控制方法和高速缓冲存储器控制装置
US6684302B2 (en) Bus arbitration circuit responsive to latency of access requests and the state of the memory circuit
US8756605B2 (en) Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US8112652B2 (en) Multiprocessor system power management of shared memories powering down memory bank only when all processors indicate not powering that memory bank
JP2001350638A (ja) 多重スレッド使用方法、多重スレッド処理システム、スレッド実行コントローラおよびバッファ使用方法
GB2421325A (en) Setting a thread to a wait state using a wait instruction
JP2005182825A5 (zh)
US20100312968A1 (en) Arithmetic processing apparatus and method of controlling the same
TWI603198B (zh) 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
JP5285915B2 (ja) マイクロプロセッサアーキテクチャ
US7490223B2 (en) Dynamic resource allocation among master processors that require service from a coprocessor
CN102226894A (zh) 一种移动设备内存管理方法及装置
CN102346682A (zh) 信息处理装置及信息处理方法
US20070055852A1 (en) Processing operation management systems and methods
US20070198984A1 (en) Synchronized register renaming in a multiprocessor
WO2010024071A1 (ja) キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム
US6801985B1 (en) Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
TWI548994B (zh) 以複數個引擎支援指令序列的執行之互連結構
CN101504566A (zh) 一种降低cpu功耗的方法和一种cpu
US20030172250A1 (en) Multidispatch cpu integrated circuit having virtualized and modular resources and adjustable dispatch priority
JP5932261B2 (ja) メモリ制御装置、メモリ制御方法
US7493471B2 (en) Coprocessor receiving renamed register identifier from master to complete an operation upon register data ready
CN102609306A (zh) 多核处理芯片对视频处理任务的处理方法及其***
US9063865B2 (en) Processor circuit with shared memory and buffer system
JP2009505178A (ja) 少なくとも2つの命令実行部と少なくともデータ及び/または命令のための第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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151106

Address after: Kanagawa

Patentee after: SOCIONEXT Inc.

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210224

Address after: 2179, 2nd floor, building D, 33, 99 Kechuang 14th Street, economic and Technological Development Zone, Daxing District, Beijing (centralized office area)

Patentee after: Beijing yisiwei Computing Technology Co.,Ltd.

Address before: Kanagawa Prefecture, Japan

Patentee before: SOCIONEXT Inc.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No. 2179, 2nd Floor, Building D, Building 33, No. 99, Kechuang 14th Street, Economic and Technological Development Zone, Daxing District, Beijing 100176 (centralized office area)

Patentee after: Beijing ESWIN Computing Technology Co.,Ltd.

Address before: No. 2179, 2nd Floor, Building D, Building 33, No. 99, Kechuang 14th Street, Economic and Technological Development Zone, Daxing District, Beijing 100176 (centralized office area)

Patentee before: Beijing yisiwei Computing Technology Co.,Ltd.