快取存储器及快取存储器的管理方法

文档序号:1296032 发布日期:2020-08-07 浏览:6次 >En<

阅读说明:本技术 快取存储器及快取存储器的管理方法 (Cache memory and management method thereof ) 是由 林瑞源 卢彦儒 于 2019-01-30 设计创作,主要内容包括:本申请公开一种快取存储器及快取存储器的管理方法。快取存储器包含存储电路、缓冲电路以及控制电路。缓冲电路以先进先出的方式存储数据。控制电路耦接于存储电路及缓冲电路,且用来在存储电路中找到存储空间,并将该数据写入所述存储空间。(The application discloses a cache memory and a management method of the cache memory. The cache memory comprises a storage circuit, a buffer circuit and a control circuit. The buffer circuit stores data in a first-in first-out manner. The control circuit is coupled to the storage circuit and the buffer circuit, and is used for finding a storage space in the storage circuit and writing the data into the storage space.)

快取存储器及快取存储器的管理方法

技术领域

本发明涉及快取存储器,尤其涉及多阶层快取存储器。

背景技术

图1为现有电子装置的架构图。电子装置100包含处理器110、第一级(L1)快取存储器120、第二级(L2)快取存储器130以及系统存储器140。L1快取存储器120及L2快取存储器130通常为静态随机存取存储器(Static Random-Access Memory,SRAM),而系统存储器140通常为动态随机存取存储器(Dynamic Random-Access Memory,DRAM)。L2快取存储器130包含控制电路132及存储电路136。控制电路132将数据写入存储电路136或从存储电路136读取数据。存储电路136的数据结构以及控制电路132所采用的用来存取存储电路136的演算法为本技术领域技术人员所熟知,故不再赘述。以下分别就快取存储器的包容模式(inclusive mode)及专有模式(exclusive mode)讨论电子装置100所遭遇的问题。包容模式及专有模式为本技术领域技术人员所熟知,故不再赘述。

图2为电子装置100操作于包容模式的部分流程图。于数据存取过程中,当数据于L1快取存储器120未命中(miss)时,L1快取存储器120便向L2快取存储器130请求数据(步骤S210)。在步骤S220中,控制电路132检查存储电路136中是否存储L1快取存储器120所请求的数据。假设存储电路136中没有存储L1快取存储器120所请求的数据(亦即L2快取存储器没有命中),则控制电路132向系统存储器140请求数据(步骤S230)。接着,L2快取存储器130取得来自系统存储器140的数据(步骤S240),然后L2快取存储器130将数据回复给L1快取存储器120(步骤S250)。收到L2快取存储器130所回复的数据之后,L1快取存储器120存储该数据。最后,L1快取存储器120向L2快取存储器130广播(broadcast)数据(步骤S260)。在步骤S260中,控制电路132需检查存储电路136的标签(tag)并且将数据写入存储电路136中。因为L2快取存储器130的容量通常大于L1快取存储器120的容量,所以存取存储电路136也相对地耗时。举例来说,如果存取L1快取存储器120需要1个系统时钟的周期,则存取存储电路136可能需2~3个周期。由于步骤S260相对地耗时,所以控制电路132无法立即处理的下一个存取命令,造成处理器110停滞(stall)。

图3为电子装置100操作于专有模式的部分流程图。于数据存取过程中,当数据在L1快取存储器120未命中时,L1快取存储器120便向L2快取存储器130请求数据(步骤S310)。在步骤S320中,控制电路132检查存储电路136中是否存储L1快取存储器120所请求的数据。假设存储电路136中存储L1快取存储器120所请求的数据(亦即L2快取存储器命中(hit)),则控制电路132将数据回复给L1快取存储器120(步骤S330)。接着,L1快取存储器120踢出(evict)一行数据(line data)至L2快取存储器130(步骤S340)。在步骤S340中,控制电路132需检查存储电路136的标签并且将该行数据写入存储电路136的适当位置中。由于存取存储电路136相对地耗时,所以步骤S340可能使得控制电路132无法立即处理的下一个存取命令,造成处理器110停滞。

发明内容

鉴于现有技术的不足,本公开的一目的在于提供一种快取存储器及快取存储器的管理方法,以提升电子装置的效能。

本申请公开一种快取存储器,包含一存储电路、一缓冲电路以及一控制电路。该缓冲电路以先进先出的方式存储一数据。该控制电路耦接于该存储电路及该缓冲电路,且用来在该存储电路中找到一存储空间,并将该数据写入该存储空间。

本申请还公开一种快取存储器的管理方法,该快取存储器包含一存储电路及一缓冲电路,该缓冲电路以先进先出的方式存储数据,该方法包含:当一目标数据被写入该快取存储器时,将该目标数据写入该缓冲电路,而不检查该存储电路;以及在该存储电路中找到一存储空间,并将该目标数据写入该存储空间。

本申请还公开一种快取存储器,包含一第一级快取存储器、一第二级快取存储器以及一暂存器。第一级快取存储器包含一第一控制电路。第二级快取存储器包含一第二控制电路。暂存器耦接于该第一控制电路及该第二控制电路。该第一控制电路及该第二控制电路参考该暂存器的一暂存值以分别控制该第一级快取存储器及该第二级快取存储器操作于一包容模式(inclusive mode)或一专有模式(exclusive mode)。

通过在快取存储器中设置缓冲电路,快取存储器的存取速度得以提升。相较于传统技术,采用本公开的快取存储器的电子装置可以减少处理器停滞的发生机率。再者,本公开的快取存储器易于在包容模式及专有模式之间切换。

有关本公开的特征、实作与技术效果,兹配合附图作实施例详细说明如下。

附图说明

图1为现有电子装置的架构图;

图2为现有电子装置操作于包容模式的部分流程图;

图3为现有电子装置操作于专有模式的部分流程图;

图4为本公开电子装置的一实施例的架构图;

图5为本公开快取存储器的管理方法的一实施例的流程图;

图6为图5的步骤S540的一实施例的流程图;以及

图7为本公开电子装置的另一实施例的架构图。

符号说明

100、400、70 电子装置

110、410、72 处理器

120、420、724、734 L1快取存储器

130、430、74 L2快取存储器

140、440 系统存储器

132、432、7241、7341、742 控制电路

136、436、7242、7342、746 存储电路

434、744 缓冲电路

720、730 核心

722、732 处理单元

76 暂存器

S210~S260、S310~S340、S510~S580、S610~S640 步骤

具体实施方式

以下说明内容的技术用语是参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释是以本说明书的说明或定义为准。

本公开的公开内容包含快取存储器及快取存储器的管理方法。由于本公开的快取存储器所包含的部分元件单独而言可能为已知元件,因此在不影响该装置实施例的充分公开及可实施性的前提下,以下说明对于已知元件的细节将予以省略。此外,本公开的快取存储器的管理方法的部分或全部流程可以是软件及/或固件的形式,并且可通过本公开的快取存储器或其等效装置来执行,在不影响该方法实施例的充分公开及可实施性的前提下,以下方法实施例的说明将着重于步骤内容而非硬件。

图4为本公开电子装置的一实施例的架构图。电子装置400包含处理器410、L1快取存储器420、L2快取存储器430以及系统存储器440。L2快取存储器430包含控制电路432、缓冲电路434以及存储电路436。缓冲电路434以先进先出(first-in first-out,FIFO)的方式存储数据,而存储电路436非以先进先出的方式存储数据。在一些实施例中,缓冲电路434的容量小于存储电路436的容量,如此一来,控制电路432对缓冲电路434的存取速度可以大于对存储电路436的存取速度。存储电路436存储多个标签及对应所述标签的多个数据。存储电路436的数据结构为本技术领域技术人员所熟知,故不再赘述。缓冲电路434可以以SRAM实作或是以暂存器(例如触发器)实作,存储电路436以SRAM实作。L1快取存储器420及L2快取存储器430可以操作于包容模式或专有模式。

图5为本公开快取存储器的管理方法的一实施例的流程图。图5的流程适用于包容模式及专有模式。当控制电路432从L1快取存储器420或系统存储器440获得目标数据并且要存储该目标数据时,控制电路432将目标数据写入缓冲电路434而不检查存储电路436的标签(步骤S510)。接着,控制电路432判断L2快取存储器430是否处于闲置(idle)状态(步骤S520)。如果步骤S520为否,控制电路432进一步判断是否有另一目标数据需要被写入L2快取存储器430(步骤S530)。如果步骤S530为是,则控制电路432将该另一目标数据写入缓冲电路434(步骤S510);如果步骤S530为否,则控制电路432寻找及/或回复数据(包含存取缓冲电路434及/或存储电路436)(步骤S540)。步骤S540结束后,流程回到步骤S520。

当L2快取存储器430处于闲置状态时(步骤S520为是),控制电路432判断缓冲电路434是否为空(步骤S550)。如果缓冲电路434没有存储任何数据(亦即步骤S550为是),则回到步骤S520。如果缓冲电路434不为空(亦即步骤S550为否),则控制电路432在存储电路436中寻找存储空间(步骤S560),然后将目标数据从缓冲电路434中读出并且写入存储电路436(步骤S570)。换言之,步骤S560及步骤S570的目的在于将目标数据从缓冲电路434移到存储电路436。搬移之后,该目标数据只存在于存储电路436而不存在于缓冲电路434。换言之,缓冲电路434及存储电路436不同时存储同一笔行数据。步骤S570完成后,控制电路432即完成将目标数据写入L2快取存储器430(步骤S580),然后流程回到步骤S520。

在步骤S560中,该存储空间可以是未被占用的空间或是即将被踢出的数据所占用的空间。控制电路432可以根据演算法(例如最近最少使用(Least Recently Used,LRU))及存储电路436中的标签找到即将被踢出的数据。

由图5的流程可知,缓冲电路434可能同时存储多目个标数据,而控制电路432以先进先出的方式按序将所述目标数据读出并写入存储电路436。在一些实施例中,缓冲电路434中的数据具有与存储电路436中的数据相同的格式(例如皆为行数据的格式),以简化步骤S570。

因为在步骤S510中控制电路432不需要检查存储电路436的标签来找出适合的存储空间(无论是空的存储空间或是即将被踢出的数据所占用的空间),所以理论上步骤S510只需要1个系统时钟的周期即可完成。作为比较,因为控制电路432将目标数据写入存储电路436时需要先检查标签,所以控制电路432直接将目标数据写入存储电路436至少需要2个系统时钟的周期(视存储电路436的大小而定)。换言之,缓冲电路434可以提升L2快取存储器430的速度。

步骤S520的闲置状态包含:(1)控制电路432没有待处理的读写操作时;以及(2)L2快取存储器430未命中时,从控制电路432向系统存储器440请求数据后至收到系统存储器440回复的期间。因为系统存储器440的一次存取所需的系统时钟的周期数通常远大于控制电路432将数据写入存储电路436所需的系统时钟的周期数,所以控制电路432在情况(2)中有充裕的时间执行步骤S560及S570。

综合上述,因为无论是L2快取存储器430在包容模式下未命中或是在专有模式下命中,就处理器410的角度而言,L2快取存储器430的操作只需要1个系统时钟的周期,所以处理器410不会被停滞,因此大幅增加电子装置400的效能。

图6为图5的步骤S540的一实施例的流程图。当L1快取存储器420未命中而向L2快取存储器430请求数据时,控制电路432检查缓冲电路434及存储电路436是否存储目标数据(步骤S610)。如果命中(亦即缓冲电路434或存储电路436存有该目标数据,步骤S620为是),则控制电路432读取该目标数据,并回复该目标数据给L1快取存储器420(步骤S630)。如果未命中(亦即缓冲电路434及存储电路436皆未存储该目标数据,步骤S620为否),控制电路432向系统存储器440请求数据(步骤S640)。

图7为本公开电子装置的另一实施例的架构图。电子装置70包含处理器72、L2快取存储器74以及暂存器76。处理器72包含核心720及核心730。核心720包含处理单元722及L1快取存储器724。L1快取存储器724包含控制电路7241及存储电路7242。核心730包含处理单元732及L1快取存储器734。L1快取存储器734包含控制电路7341及存储电路7342。简言之,处理器72为一个多核心的架构,核心720及核心730有各自的L1快取存储器(分别为724及734),且共用L2快取存储器74。L2快取存储器74包含控制电路742、缓冲电路744以及存储电路746。控制电路742、缓冲电路744及存储电路746的功能分别与控制电路432、缓冲电路434及存储电路436相似,故不再赘述。控制电路7241、控制电路7341及控制电路742耦接暂存器76,可读取暂存器76中的暂存值。

L1快取存储器724的控制电路7241、L1快取存储器734的控制电路7341以及L2快取存储器74的控制电路742参考暂存器76的暂存值来分别控制L1快取存储器724、L1快取存储器734及L2快取存储器74操作于包容模式或专有模式。换言之,L1快取存储器及L2快取存储器以可程序化的方式切换于包容模式及专有模式两者之间。如此一来,电子装置70不需要在设计阶段就决定L1快取存储器724、L1快取存储器734以及L2快取存储器74的操作模式,而是使用者可以在电路完成后再根据实际的应用(亦即动态调整)设定暂存器76的暂存值。在一些实施例中,暂存器76可以是处理器72的控制暂存器。

以下为电子装置70的应用范例。

范例一:当核心720及核心730平行处理(亦即执行同一程序)时,暂存器76的暂存值可以被设定为第一数值(例如1),使得L1快取存储器724、L1快取存储器734及L2快取存储器74操作于包容模式。

范例二:当核心720及核心730分别执行第一程序及第二程序,且第一程序及第二程序共用指令及/或数据时,暂存器76的暂存值可以被设定为第一数值(例如1),使得L1快取存储器724、L1快取存储器734及L2快取存储器74操作于包容模式。

范例三:当核心720及核心730分别执行第一程序及第二程序,且第一程序及第二程序不共用指令及/或数据时(亦即第一程序及第二程序为独立的程序),暂存器76的暂存值可以被设定为第二数值(例如0),使得L1快取存储器724、L1快取存储器734及L2快取存储器74操作于专有模式。

在范例一及范例二中,包容模式有助于减少数据的移动次数(亦即提高命中率),所以电子装置70的效能可以获得提升。在范例三中,专有模式有助于L1快取存储器724、L1快取存储器734及L2快取存储器74存储更多的指令及/或数据,所以电子装置70的效能可以获得提升。

在一些实施例中,前述的控制电路432、控制电路7241、控制电路7341及控制电路742可以由有限状态机(包含多个逻辑电路)实作。

由于本技术领域技术人员可通过本公开的装置实施例的公开内容来了解本公开的方法实施例的实施细节与变化,因此,为避免赘文,在不影响该方法实施例的公开要求及可实施性的前提下,重复的说明在此予以省略。请注意,前述附图中,元件的形状、尺寸、比例以及步骤的顺序等仅为示意,是供本技术领域技术人员了解本公开之用,非用以限制本公开。

虽然本公开的实施例如上所述,然而所述实施例并非用来限定本公开,本技术领域技术人员可依据本公开的明示或隐含的内容对本公开的技术特征施以变化,凡此种种变化均可能属于本公开所寻求的专利保护范围,换言之,本公开的专利保护范围须视本说明书的权利要求所界定者为准。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种分布式存储系统及其存储方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类