CN111045957A - 一种与处理器流水线伪同频的ICache实现方法 - Google Patents
一种与处理器流水线伪同频的ICache实现方法 Download PDFInfo
- Publication number
- CN111045957A CN111045957A CN201911361276.1A CN201911361276A CN111045957A CN 111045957 A CN111045957 A CN 111045957A CN 201911361276 A CN201911361276 A CN 201911361276A CN 111045957 A CN111045957 A CN 111045957A
- Authority
- CN
- China
- Prior art keywords
- icache
- data
- tag
- memory bank
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0851—Cache with interleaved addressing
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
本发明公开了一种与处理器流水线伪同频的ICache实现方法,属于集成电路技术领域。所述方法包括,步骤1:确定ICache的组织结构和工作频率;步骤2:设计ICache的访问和更新策略;步骤3:根据更新策略,确定每个存储体的时钟,保证伪同频ICache一个周期内可填充2*BW位宽的指令数据;步骤4:第一个周期请求访问ICache时,将Data存储体和Tag存储体相应地址的所有路的指令数据和valid+tag取出;步骤5:第二个周期请求访问ICache时,控制电路进行命中判断和Cacheline的有效判断。该方法能够实现ICache在处理器流水线的2分频下工作,且以流水线的时钟频率处理访问请求。
Description
技术领域
本发明涉及一种与处理器流水线伪同频的ICache实现方法,属于集成电路技术领域。
背景技术
在主流处理器中,一级Cache与内核紧耦合,由存储体构成,工作频率通常与CPU同频。随着集成电路工艺技术的进步,CPU的性能提升速度显著,而存储器的存取性能发展缓慢,导致两者之间的性能差距越来越大,即“存储墙”效应。在相同工艺下,存储器的工作频率往往低于CPU可正常运行的频率,严重制约着高性能处理器的发展,因此,Cache的设计是提高处理器整体性能的关键之一。
目前,Cache的研究主要有以下几大方向:Cache的结构、Cache的预取和替换策略、Cache的实现等,通过设计多级Cache结构、优化Cache的组织形式、改善Cache的预取或替换算法、以及研究CAM/RAM的实现等,有效减少了内存访问时间,降低了访问延时,从而提高Cache的效率。然而,上述研究并未降低处理器对存储器的工作频率要求,在相对低工艺下,存储器的工作频率往往较低,无法满足高性能处理器的要求,高性能处理器只能通过定制Cache来实现高频,由此增加了产品上市的人力成本和时间成本。
本发明提出一种与处理器流水线伪同频的ICache实现方法,在满足处理器流水线对ICache的时序要求的情况下,让ICache在处理器流水线的2分频下正常工作,以流水线的时钟频率处理访问请求(本发明称之为与处理器流水线“伪同频”),保证了ICache与流水线在不同工作频率下的协同工作,实现了ICache与处理器流水线伪同频,从而降低了处理器对存储器的工作频率要求。
发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种与处理器流水线伪同频的ICache实现方法,能够实现ICache在处理器流水线的2分频下工作,且指令提取速度与流水线同频。本发明提供的技术方案如下:
一种与处理器流水线伪同频的ICache实现方法,所述实现方法包括以下步骤:
步骤1:确定ICache的组织结构和工作频率;
步骤2:依据ICache的容量SN*WN*CN,以及处理器的相关参数,设计ICache的访问和更新策略,保证伪同频ICache能在处理器流水线的2分频下工作,且不影响处理器流水线的正常工作;
步骤3:根据所述步骤2中存储体的更新策略,确定每个存储体的时钟,保证伪同频ICache一个周期内可填充2*BW位宽的指令数据;
步骤4:第一个周期请求访问ICache时控制电路依据访问地址确定提取ICache中相应Data存储体和Tag存储体中相应地址的所有路的指令和valid+tag字段;
步骤5:第二个周期请求访问ICache时,控制电路进行命中判断和Cacheline的有效判断,若命中且有效,则将对应路的指令返回给处理器流水线,若不命中或无效,则将未命中或无效信号返回给处理器流水线,并通过总线访问下一级存储器。
进一步地,所述步骤1中,ICache由Tag存储体、Data存储体和控制电路构成;Tag存储体和Data存储体分别存储valid+tag字段和指令,其工作频率f2是内核工作频率f1的1/2;控制电路在访问ICache过程中控制读出哪个Data存储体和Tag存储体读出的字段,并进行命中判断和Cacheline有效判断,确定将哪一路的指令返回给处理器流水线。
进一步地,所述步骤2中,Data存储体共有个,其数据位宽为IW*WN,深度为Tag存储体共有2个,其数据位宽均为(tag+1)*WN,深度均为其中最高位“1”存储的是valid有效位,标志对应Cacheline中的指令是否有效。
进一步地,所述步骤2中,处理器流水线请求访问ICache,若命中且有效,则流水线以工作频率f1读取相应地址的指令;
若未命中或无效,则流水线通过总线向下一级存储器提出访问请求,并通过总线将附近的指令填充或更新进ICache,并把tag存储体中相应的有效位置1;
若要改写相应地址的指令,则直接通过总线对下一级存储器进行改写,并把tag存储体中相应的有效位置0。
进一步地,所述步骤4中,当处理器流水线请求访问ICache时,若访问地址对齐位宽为WW,控制电路根据处理器流水线访问地址的位确定提取哪个Data存储体的相应地址的WN路的指令,根据访问地址的第 位确定提取哪个Tag存储体的相应地址的WN路的valid+tag字段。
进一步地,所述步骤5中,在处理器流水线请求访问ICache的第二个周期,控制电路先根据Tag存储体输出的valid+tag字段进行Cacheline有效判断和命中判断;若tag未命中或tag命中但valid为0,则通过总线向下一级存储器发送访问请求,填充或更新ICache;若tag命中且valid为1,则将对应路的指令数据返回给流水线,完成指令的读取。
进一步地,所述更新或填充ICache策略包括:在clk_1的上升沿,将总线向ICache传输的BW位宽的数据划分为个IW位宽的指令数据,并行写入前个Data存储体中;在下一个处理器时钟clk周期,即在clk_2的上升沿,将总线向ICache传输的另一个BW位宽的数据划分为个IW位宽的指令数据,并行写入后个Data存储体中,保证了工作在内核2分频下的ICache能及时将总线传输的数据填入存储体中。
有益效果:
(1)本发明中ICache的存储体工作在两个相位偏差一个处理器时钟周期的时钟上,使ICache能在一个时钟周期内填充两个总线时钟周期传输的数据,并通过并行读取存储器的策略实现ICache以流水线的工作频率向处理器流水线发送指令,在满足处理器流水线对ICache的时序要求的情况下,保证了ICache与处理器流水线在不同工作频率下的协同工作,实现了ICache与处理器流水线伪同频。
(2)本发明的访存方式中,在处理器流水线请求访问ICache的第一个周期,提取相应地址的所有路的指令和valid+tag字段,在处理器流水线请求访问ICache的第二个周期,进行有效位和命中判断,并将对应路的指令字段返回给处理器流水线,本发明所述的ICache在访存过程中未增加其他时延,在保障处理器运行效率的情况下,降低了处理器对存储体的工作频率要求,使得存储器在工作频率较低的条件下依然能满足高性能处理器的要求,从而无需再定制Cache来实现高频,减少了产品上市的人力成本和时间成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为ICache的组织结构示意图,图1-(a)为Data存储体示意图,图1-(b)为Tag存储体示意图。
图2为ICache的访问流程图。
图3为ICache中存储体的时钟示意图。
图4为Data存储体的伪同频填充或更新时序图。
图5为Data存储体的伪同频取指令时序图。
具体实施方式
下面结合具体附图对本发明作进一步说明。
本发明提出的一种与处理器流水线伪同频的ICache实现方法,在符合条件下,其中SN为ICache的组数,BW为总线与ICache之间的数据位宽,IW为处理器流水线与ICache之间的数据位宽,本发明所述的ICache的工作频率是处理器流水线的1/2,一个周期可填充条数据位宽为IW的指令,在读命中的情况下,先读取条数据位宽为IW的指令,再通过控制电路控制ICache满足处理器流水线的时序要求,将指令依次传输给流水线,实现ICache与处理器流水线的伪同频;
所述实现方法包括以下步骤:
步骤1、确定ICache的组织结构和工作频率。
确定ICache由Tag存储体、Data存储体、控制电路构成,其中Tag存储体和Data存储体分别存储valid+tag字段和指令,其工作频率f2是流水线工作频率f1的1/2;控制电路控制读出哪个Data存储体的指令,并进行Cacheline有效判断和命中判断,确定将哪一路的指令返回给处理器流水线。
步骤2、依据ICache的容量SN*WN*CN,以及处理器的相关参数,如总线与ICache之间的数据位宽BW、处理器流水线与ICache之间的数据位宽IW,其中SN、WN、CN分别为Cache的组数、路数、Cacheline的大小。
参见图1,共有个Data存储体,其数据位宽为IW*WN,深度为共有2个Tag存储体,其数据位宽均为(tag+1)*WN,深度均为其中最高位“1”存储的是valid有效位,标志对应Cacheline中的指令是否有效;
设计ICache的访问和更新策略,保证所述伪同频ICache能在处理器流水线的2分频下工作,且不影响处理器流水线的正常工作。
参见图2,处理器流水线请求访问ICache,Data存储体和Tag存储体将相应地址的所有路的数据并行读出,随后,控制电路进行命中判断,若不命中,则流水线通过总线向下一级存储器提出访问请求,并通过总线将附近的指令更新或填充ICache进ICache,并把Tag存储体中相应的有效位置1;若命中,再进行有效判断,若命中且有效,即valid位为1,ICache将对应路的指令返回给处理器流水线;若命中且无效,即valid位为0,则流水线通过总线向下一级存储器提出访问请求,操作同不命中的情况;若要改写相应地址的指令,则直接通过总线对下一级存储器进行改写,并把Tag存储体中相应的有效位置0。
步骤3:根据所述步骤2中存储体的更新策略,确定每个存储体的时钟,保证伪同频ICache一个周期内可填充2*BW位宽的指令数据;
参见图3,将Data存储体分为前个和后个两批,前个存储体的时钟clk_1是基于处理器流水线时钟clk的2分频时钟,后个存储体的时钟clk_2在clk_1的基础上偏移了一个处理器时钟周期;Tag1存储体的时钟同clk_1,Tag2存储体的时钟同clk_2。
参见图4,以一个具体的例子,说明ICache的更新或填充策略,具体如下:
ICache的组数SN为64,路数WN为4,Cacheline大小CN为32B,总线与ICache之间的数据位宽BW为64,处理器流水线与ICache之间的数据位宽IW为32,tag数据位宽为20,共有4个Data存储体,D0、D1、D2、D3,其数据位宽为32*4,深度为128;共有2个Tag存储体,T0、T1,其数据位宽均为21*4,深度均为32;当存储体的使能信号mem_en和写使能信号mem_wmode同为高时,在clk_1的上升沿,将总线向ICache传输的64位宽的数据data_in0划分为2个IW位宽的指令数据,并行写入前2个Data存储体中,即data_in0[31:0]写入D0中,data_in0[63:32]写入D1中;在下一个处理器时钟clk周期,即clk_2的上升沿,将总线向ICache传输的另一个64位宽的数据data_in1并行写入后2个Data存储体中,即data_in1[31:0]写入D2中,data_in1[63:32]写入D3中,保证了工作在内核2分频下的ICache能及时将总线传输的指令数据填入存储器中。
所述步骤4在请求访问ICache中,将相应地址的所有路的valid+tag取出,同时,控制电路依据访问地址提取相应Data存储体的相应地址的所有路的指令;
当处理器流水线请求访问ICache时,若访问地址对齐位宽为WW,控制电路根据处理器流水线访问地址的位确定提取哪个Data存储体的相应地址的WN路的指令,根据流水线访问地址的第位确定提取哪个Tag存储体的相应地址的WN路的valid+tag字段。
所述步骤5中,在处理器流水线请求访问ICache的第二个周期,控制电路先根据Tag存储体输出的valid+tag字段进行Cacheline有效判断和命中判断;若tag未命中或tag命中但valid为0,则将未命中或无效信号返回给处理器流水线,并通过总线向下一级存储器发送访问请求,填充或更新ICache;若tag命中且valid为1,则将对应路的指令数据返回给流水线,完成指令的读取。
对于更新或填充ICache,在clk_1的上升沿,将总线向ICache传输的BW位宽的数据划分为个IW位宽的指令数据,并行写入前个Data存储体中;在下一个内核时钟clk周期,即在clk_2的上升沿,将总线向ICache传输的另一个BW位宽的数据划分为个IW位宽的指令数据,并行写入后个Data存储体中。
参见图5,基于图4的例子,说明所述ICache是如何实现与处理器流水线伪同频的取指令方法,具体如下:
当内核请求访问ICache时,mem_en为高,mem_wmode为低,在clk_1的上升沿,读出D0、D1和T1存储体中相应地址的4路32*4位宽的指令数据或21*4位宽的valid+tag字段,并保持读状态;在clk_2的上升沿,读出D2、D3和T2存储体中相应地址的4路32*4位宽的指令数据或4路21*4位宽的valid+tag字段,并保持读状态;访问地址对齐位宽为4,控制电路根据处理器流水线访问地址addr[3:2]确定提取哪个Data存储体的相应地址的4路的指令数据(addr[3:2]=2’dx提取Dx中的指令数据),同时,根据流水线访问地址addr[5]确定提取哪个Tag存储体的相应地址的4路的valid+tag字段(addr[5]=1时提取T1中的字段,addr[5]=0时提取T0中的字段)。
在处理器流水线请求访问ICache的第二个周期,控制电路对Tag存储体读出的valid+tag字段进行命中判断和Cacheline有效判断;若tag未命中,则通过总线向下一级存储器发送访问请求,更新或填充ICache;若tag命中,再进行有效判断,若valid为0,则同未命中操作,请求访问下一级存储器,更新或填充ICache;若valid为1,则将对应路的指令数据返回给流水线,完成指令的读取,参见图5,假设tag=20’h80000在第0路命中,且该Cacheline有效,依据请求地址对应返回相应指令数据。
以上所述,仅为本发明的具体实施方式,而并非本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种与处理器流水线伪同频的ICache的实现方法,其特征在于,所述实现方法包括以下步骤:
步骤1:确定ICache的组织结构和工作频率;
步骤2:依据ICache的容量SN*WN*CN,以及处理器的相关参数,设计ICache的访问和更新策略,保证伪同频ICache能在处理器流水线的2分频下工作,且不影响处理器流水线的正常工作;
步骤3:根据所述步骤2中ICache的更新策略,确定ICache中每个存储体的时钟,保证伪同频ICache一个周期内可填充2*BW位宽的指令数据;
步骤4:第一个周期请求访问ICache时,控制电路依据访问地址确定提取ICache中相应Data存储体和Tag存储体中相应地址的所有路的指令和valid+tag字段;
步骤5:第二个周期请求访问ICache时,控制电路进行命中判断和Cacheline的有效判断,若命中且有效,则将对应路的指令返回给处理器流水线,若不命中或无效,则将未命中或无效信号返回给处理器流水线,并通过总线访问下一级存储器。
2.根据权利要求1所述的一种与处理器流水线伪同频的ICache实现方法,其特征在于,所述步骤1中,ICache由Tag存储体、Data存储体和控制电路构成;Tag存储体和Data存储体分别存储valid+tag字段和指令,其工作频率f2是内核工作频率f1的1/2;控制电路在访问ICache过程中控制读出哪个Data存储体和Tag存储体的字段,并进行命中判断和Cacheline有效判断,确定将哪一路的指令返回给处理器流水线。
4.根据权利要求1所述的一种与处理器流水线伪同频的ICache实现方法,其特征在于,所述步骤2中,处理器流水线请求访问ICache,若命中且有效,则流水线以工作频率f1读取相应地址的指令;
若未命中或无效,则流水线通过总线向下一级存储器提出访问请求,并通过总线将附近的指令填充或更新进ICache,并把tag存储体中相应的有效位置1;
若要改写相应地址的指令,则直接通过总线对下一级存储器进行改写,并把tag存储体中相应的有效位置0。
7.根据权利要求1所述的一种与处理器流水线伪同频的ICache实现方法,其特征在于,所述步骤5中,在处理器流水线请求访问ICache的第二个周期,控制电路先根据Tag存储体输出的valid+tag字段进行Cacheline有效判断和命中判断;若tag未命中或tag命中但valid为0,则通过总线向下一级存储器发送访问请求,填充或更新ICache;若tag命中且valid为1,则将对应路的指令数据返回给流水线,完成指令的读取。
9.根据权利要求1所述的一种与处理器流水线伪同频的ICache实现方法,其特征在于,所述步骤2中,相关参数包括ICache与总线之间的数据位宽BW、处理器流水线与ICache之间的数据位宽IW;
ICache的容量中SN、WN、CN分别为Cache的组数、路数、Cacheline的大小。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911361276.1A CN111045957B (zh) | 2019-12-26 | 2019-12-26 | 一种与处理器流水线伪同频的ICache实现方法 |
PCT/CN2020/071629 WO2021128505A1 (zh) | 2019-12-26 | 2020-01-13 | 一种与处理器流水线伪同频的ICache实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911361276.1A CN111045957B (zh) | 2019-12-26 | 2019-12-26 | 一种与处理器流水线伪同频的ICache实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111045957A true CN111045957A (zh) | 2020-04-21 |
CN111045957B CN111045957B (zh) | 2023-10-27 |
Family
ID=70239880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911361276.1A Active CN111045957B (zh) | 2019-12-26 | 2019-12-26 | 一种与处理器流水线伪同频的ICache实现方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111045957B (zh) |
WO (1) | WO2021128505A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033351A1 (fr) * | 1999-10-29 | 2001-05-10 | Fujitsu Limited | Architecture de processeur |
CN1752925A (zh) * | 2004-09-24 | 2006-03-29 | 上海芯华微电子有限公司 | 可旁通寄存器和使用该寄存器的流水线电路 |
CN102968354A (zh) * | 2012-11-13 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种基于Intel Brickland-EX平台的同频锁步模式的自动切换方法 |
CN108763106A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种基于交叉存储的Cache实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010102623A (ja) * | 2008-10-27 | 2010-05-06 | Nec Electronics Corp | キャッシュメモリ及びその制御方法 |
CN104375962B (zh) * | 2014-11-10 | 2017-05-10 | 中国航天科技集团公司第九研究院第七七一研究所 | 系统芯片中cache与总线接口的统一位宽转换方法 |
-
2019
- 2019-12-26 CN CN201911361276.1A patent/CN111045957B/zh active Active
-
2020
- 2020-01-13 WO PCT/CN2020/071629 patent/WO2021128505A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001033351A1 (fr) * | 1999-10-29 | 2001-05-10 | Fujitsu Limited | Architecture de processeur |
CN1752925A (zh) * | 2004-09-24 | 2006-03-29 | 上海芯华微电子有限公司 | 可旁通寄存器和使用该寄存器的流水线电路 |
CN102968354A (zh) * | 2012-11-13 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种基于Intel Brickland-EX平台的同频锁步模式的自动切换方法 |
CN108763106A (zh) * | 2018-05-31 | 2018-11-06 | 西安微电子技术研究所 | 一种基于交叉存储的Cache实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021128505A1 (zh) | 2021-07-01 |
CN111045957B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7975108B1 (en) | Request tracking data prefetcher apparatus | |
US6212602B1 (en) | Cache tag caching | |
CN104252425B (zh) | 一种指令缓存的管理方法和处理器 | |
US9886385B1 (en) | Content-directed prefetch circuit with quality filtering | |
KR100454441B1 (ko) | 전폭캐쉬를가진집적프로세서/메모리장치 | |
TWI393050B (zh) | 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統 | |
US6356990B1 (en) | Set-associative cache memory having a built-in set prediction array | |
KR101509628B1 (ko) | 프로세서의 하이 어소시에이티브 캐시 메모리를 위한 scr 매커니즘 | |
US20150356024A1 (en) | Translation Lookaside Buffer | |
US11023410B2 (en) | Instructions for performing multi-line memory accesses | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
CN110362506B (zh) | 高速缓存存储器及其中实现的方法 | |
US7716424B2 (en) | Victim prefetching in a cache hierarchy | |
CN100392623C (zh) | 用于从地址高速缓存去除条目的方法和设备 | |
CN112631961A (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
US7017025B1 (en) | Mechanism for proxy management of multiprocessor virtual memory | |
US7657667B2 (en) | Method to provide cache management commands for a DMA controller | |
US6094711A (en) | Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance | |
US9280476B2 (en) | Hardware stream prefetcher with dynamically adjustable stride | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
EP2866148B1 (en) | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device | |
CN111124297B (zh) | 一种堆叠dram缓存的性能提升方法 | |
US7685372B1 (en) | Transparent level 2 cache controller | |
CN101930357A (zh) | 采用可配置的片上存储装置实现访存操作的系统及方法 | |
Chaudhuri et al. | Cache Coherence Protocol Design for Active Memory Systems. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |