CN102023845A - 一种基于状态机的Cache并发访问管理方法 - Google Patents

一种基于状态机的Cache并发访问管理方法 Download PDF

Info

Publication number
CN102023845A
CN102023845A CN2010106117951A CN201010611795A CN102023845A CN 102023845 A CN102023845 A CN 102023845A CN 2010106117951 A CN2010106117951 A CN 2010106117951A CN 201010611795 A CN201010611795 A CN 201010611795A CN 102023845 A CN102023845 A CN 102023845A
Authority
CN
China
Prior art keywords
state
subregion
cache
state machine
read
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
CN2010106117951A
Other languages
English (en)
Other versions
CN102023845B (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.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing 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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201010611795.1A priority Critical patent/CN102023845B/zh
Publication of CN102023845A publication Critical patent/CN102023845A/zh
Application granted granted Critical
Publication of CN102023845B publication Critical patent/CN102023845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种基于状态机的Cache并发访问管理方法,将多个基本存储单元划归为一个基本的Cache分区,本分区内所有存储单元共享存储状态,存储状态划分为多个细粒度子状态,子状态间通过状态机转换;包括四种操作:查找分区操作,读操作,缓存操作和写操作。本发明在保证系统稳定的前提下有效提高了缓存的访问效率。

Description

一种基于状态机的Cache并发访问管理方法
技术领域
本发明涉及存储系统管理领域,具体涉及一种基于状态机的Cache并发访问管理方法
背景技术
Cache狭义上指处理器内部的高速缓冲存储器,即将根据程序运行的时间局部性和空间局部性原理,将最近访问的数据及其邻近的数据放入一个高性能的缓冲区中,这些数据将来很可能被用到。广义上来讲,数据流在计算机中的移动过程不仅仅包括从内存到处理器,还包括从磁盘到内存或从其它外设到内存的过程,而这些过程中的数据访问都具有时间局部性和空间局部性的特征,因此将最近访问过的数据放入速度更高一级的缓存中,是一种通用的加速方法,也常常称为Cache。本文所指的Cache是广义的Cache,尤其是从磁盘到内存数据通路上的Cache。
如前所述,Cache机制将最近访问的数据或其物理位置上邻近的数据放入高速缓存中,那么对高速缓存来讲,就分为四种类型的操作:
●读操作:读命中的情况下,本次读请求被定向到高速缓存,因此高速缓存需要做一次读取数据的操作。
●写操作:写命中的情况,和读操作类似。
●缓存操作:读或写不命中,而本次读或写操作的地址又在Cache范围之内,因此需要从磁盘读取最新的数据并填充到高速缓存中,为将来使用。
●刷新操作:在Cache容量不足的情况下,则需要替换现有Cache中的数据到磁盘上,并从磁盘读取新的数据到Cache中。如果原Cache上的内容为写操作所更新的最新内容,通常称为脏数据(Dirty Data),则需要将脏数据刷回到磁盘上去。
以上四种操作中,除了对Cache中的具体数据进行操作外,对Cache中的用来管理数据的控制信息也需要进行相应的更新。
由于上述各种更新操作都可能同时作用于同一个高速缓存单元上,因此实际操作中就需要对每个高速缓存单元做保护操作,使得不同的更新操作之间不会发生冲突,确保高速缓冲中的数据信息和状态信息都处于一致状态。
常用的保护机制是使用锁,即每次操作时对该高速缓存单元加锁,使用后将锁释放。但通常一个高速存储器上会有非常多的存储单元,如果对每个存储单元都单独做锁操作,开销较大。如果将多个存储单元共用一个锁,则会造成锁的伪共享,即原本可以并发的操作,由于共享一个锁而造成无法并发的情况,带来系统性能的损失。
发明内容
为解决上述问题,本发明能够提供了一种Cache基于状态机的管理方法。
一种基于状态机的Cache并发访问管理方法,将多个基本存储单元划归为一个基本的Cache分区,本分区内所有存储单元共享存储状态,存储状态划分为多个细粒度子状态,子状态间通过状态机转换;包括四种操作:查找分区操作,读操作,缓存操作和写操作。
本发明的第一种优选技术方案在于:所述子状态间转换不需要互斥或仅需要基于原子指令的同步原语。
本发明的第二种优选技术方案在于:所述子状态包括EMPTY,CLEAN,DIRTY,FETCH,FILLFLUSH和INVAL。
本发明的第三种优选技术方案在于:所述查找分区操作过程为:传入磁盘上分区编号,若无制定空闲分区时重新分配;查找过程中若发现有分区的引用计数为0,其状态为CLEAN,而且DIRTY位图非全0,则清空DIRTY位图;若分配过程中,发现本应被分配的目标状态为DIRTY,则启动一次刷新操作。
本发明的第四种优选技术方案在于:所述读操作过程中,每个读操作的请求可以有三个流向,分别为重定向至后端存储设备,读完即止;从缓存设备读基本块,或者从后端存储设备读基本块并缓存;重定向到后端存储读取基本块,并尝试预取整个分区。
本发明的第五种优选技术方案在于:所述缓存操作过程如下:
A、检测分区是否为空,若是转D;
B、测试并尝试EMPTY至FETCH转换,保证只有一个缓存者执行后续操作,若失败,转D;
C、读后端存储,开始缓存过程,若返回非0,则出错,释放分区,置分区变量为空,转D;若后端存储返回0,直接返回;
D、检查基本分区是否非空,若非空,则转化为读操作;
E、若BIO为空,则释放分区。
本发明的第六种优选技术方案在于:所述写操作在多数情况下都是无条件将分区状态改为DIRTY,并写入缓存,其过程为:
F、检测分区是否为空,若是则直接转至后端存储;
G、检查分区状态,若为CLEAN,则表明之前为有效数据的读数据,需要先将其无效,设置状态为INVAL;
H、检查分区的状态,若为FILL则一直循环等待;
I、当状态不是FILL时将状态设置为DIRTY;
J、写缓存结束,开始对高速缓存设备操作。
本发明在保证系统稳定的前提下有效提高了缓存的访问效率。
附图说明
图l为缓存模块内I/O路径细分
图2为缓存中分区状态转换图
具体实施方式
本发明中将多个基本存储单元划归为一个基本的Cache分区,本分区内的所有存储单元共享存储状态。进一步,将存储状态划分为多个细粒度的子状态,子状态间通过状态机的方式实现转变,使得状态间的转换不需要互斥或仅需要基于原子指令的同步原语。
具体来讲,每个分区都有一个状态,该状态表明了当前分区中数据是否有效以及是否处于缓存操作过程中等信息。主要包括如下几种状态:
●EMPTY:表示本分区中无任何有效数据,可重新使用。此处的有效数据指可供文件系统读取的正确数据,包括脏数据和从磁盘读出来并写至高速存储设备的数据。
●CLEAN:表示本分区中没有脏数据,此处的脏数据指只存在于高速缓存而不存在于后端存储的最新数据。但此状态并不代表此分区所有的基本存储单元都含有有效数据(比如之前只发生过部分写入)。
●DIRTY:表示分区中有脏数据。
●FETCH:表示一个缓存操作已经开始了IO过程,最多已经完成了读后端存储,但还没开始写高速缓存。
●FILL:表示缓存操作已经在写高速缓存(读后端存储完毕)
●FLUSH:表示一个写回操作处理一个分区的全部过程(未被写者打扰)
●INVAL:在缓存状态为CLEAN的情况下,有写操作发生于该分区上.
除了上述状态外,状态间的转换操作可细分为更多的步骤,如图1所示。细分有利于简化分区的状态管理,并尽可能在合适的时机确定下一步动作,减少不必要的等待、放弃以及冗余操作等可能性。
基于上述状态及细分后的路径动作,状态转换如图2所示。需要说明的几点:
·实线箭头为正常的状态转换
·点虚线箭头为设备驱动返回error或者资源分配失败等情况下导致的状态转换路径,为了显眼在文字上加了(!)
·粗斜体+下划线文字表示相应线程将放弃后续I/O步骤
·带disaster的表明sysCache已经无法恢复数据或保证数据正确性操作过程为:
查找分区:
查找一个分区,传入参数idx为磁盘上以分区为单位的分区编号。若指定无空闲分区时重新分配,那么在查找失败的情况下,尽力分配一个分区。查找过程中,若发现有分区的引用计数为0,其状态为CLEAN,而且dirty位图非全0,那么则清空dirty位图。在分配过程中,如果发现本来应该被分配的目标,其状态为DIRTY,则启动一次对它的刷新操作。
读操作:
读请求入口,在这里,每个读请求有三个去向:
1)重定向至后端存储设备,读完即止。
2)从缓存设备读基本块,或者从后端存储设备读基本块并缓存。
3)重定向到后端存储读取基本块,并且尝试预取整个分区.
缓存操作:
流程如下:
1.检测分区是否为NULL,若是转4
2.test_and_set(EMPTY,FETCH),保证只有一个缓存者执行后续操作。若test_and_set成功,对应于状态机C1从EMPTY到FETCH的转换;若失败,转4
3.读后端存储,开始缓存过程(C2阶段),若返回非0,表示很早出错,则test_and_set(FETCH,EMPTY),对应于状态机中C2(!)从FETCH到EMPTY的转换。若TAS失败,对应于状态机中C2(!)在DIRTY,CLEAN,FLUSH等状态上向自身的转换。然后释放分区,置分区变量为NULL,转4;若读后端存储返回为0,至少当前上下文未出错,直接返回。
4.检查基本分区是否为空,若非空,则退化为读操作。
5.若bio为空,则释放分区
写操作:
大多数情况下,写操作都是无条件地将分区状态改为DIRTY,并开始写入高速缓存,原型如下:
1.检测分区是否为空,若是则直接转至后端存储。
2.检查分区状态,如果为CLEAN,则表明之前为有效数据的读数据,需要首先将其无效掉,设置状态为INVAL。
3.检查分区的状态,若为FILL则一直循环等待
4.将状态设置为DIRTY,对应于状态机中所有经W1向DIRTY的转换。这里要注意的是需要原子地对状态进行检测如果不是FILL才能设置成DIRTY。
5.过程转入W2.开始对高速缓存设备操作。

Claims (7)

1.一种基于状态机的Cache并发访问管理方法,其特征在于:将多个基本存储单元划归为一个基本的Cache分区,本分区内所有存储单元共享存储状态,存储状态划分为多个细粒度子状态,子状态间通过状态机转换;包括四种操作:查找分区操作,读操作,缓存操作和写操作。
2.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述子状态间转换不需要互斥或仅需要基于原子指令的同步原语。
3.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述子状态包括EMPTY,CLEAN,DIRTY,FETCH,FILLFLUSH和INVAL。
4.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述查找分区操作过程为:传入磁盘上分区编号,若无制定空闲分区时重新分配;查找过程中若发现有分区的引用计数为0,其状态为CLEAN,而且DIRTY位图非全0,则清空DIRTY位图;若分配过程中,发现本应被分配的目标状态为DIRTY,则启动一次刷新操作。
5.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述读操作过程中,每个读操作的请求可以有三个流向,分别为重定向至后端存储设备,读完即止;从缓存设备读基本块,或者从后端存储设备读基本块并缓存;重定向到后端存储读取基本块,并尝试预取整个分区。
6.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述缓存操作过程如下:
A、检测分区是否为空,若是转D;
B、测试并尝试EMPTY至FETCH转换,保证只有一个缓存者执行后续操作,若失败,转D;
C、读后端存储,开始缓存过程,若返回非0,则出错,释放分区,置分区变量为空,转D;若后端存储返回0,直接返回;
D、检查基本分区是否非空,若非空,则转化为读操作;
7E、若BIO为空,则释放分区。
7.如权利要求1所述一种基于状态机的Cache并发访问管理方法,其特征在于:所述写操作在多数情况下都是无条件将分区状态改为DIRTY,并写入缓存,其过程为:
F、检测分区是否为空,若是则直接转至后端存储;
G、检查分区状态,若为CLEAN,则表明之前为有效数据的读数据,需要先将其无效,设置状态为INVAL;
H、检查分区的状态,若为FILL则一直循环等待;
I、当状态不是FILL时将状态设置为DIRTY;
J、写缓存结束,开始对高速缓存设备操作。
CN201010611795.1A 2010-12-17 2010-12-17 一种基于状态机的Cache并发访问管理方法 Active CN102023845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010611795.1A CN102023845B (zh) 2010-12-17 2010-12-17 一种基于状态机的Cache并发访问管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010611795.1A CN102023845B (zh) 2010-12-17 2010-12-17 一种基于状态机的Cache并发访问管理方法

Publications (2)

Publication Number Publication Date
CN102023845A true CN102023845A (zh) 2011-04-20
CN102023845B CN102023845B (zh) 2014-05-21

Family

ID=43865168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010611795.1A Active CN102023845B (zh) 2010-12-17 2010-12-17 一种基于状态机的Cache并发访问管理方法

Country Status (1)

Country Link
CN (1) CN102023845B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999441A (zh) * 2012-11-15 2013-03-27 清华大学 一种细粒度内存访问的方法
CN108027766A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 预取指令块
CN110347338A (zh) * 2019-06-18 2019-10-18 重庆大学 混合内存数据交换处理方法、系统及可读存储介质
CN110569001A (zh) * 2019-09-17 2019-12-13 深圳忆联信息系统有限公司 基于固态硬盘的L2P表dirty位标记方法和装置
CN113254025A (zh) * 2021-06-28 2021-08-13 中南大学湘雅医院 基于原语状态机的关键字特征集合编译方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US20050172082A1 (en) * 2004-01-30 2005-08-04 Wei Liu Data-aware cache state machine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US20050172082A1 (en) * 2004-01-30 2005-08-04 Wei Liu Data-aware cache state machine

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999441A (zh) * 2012-11-15 2013-03-27 清华大学 一种细粒度内存访问的方法
CN102999441B (zh) * 2012-11-15 2015-06-17 清华大学 一种细粒度内存访问的方法
CN108027766A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 预取指令块
CN108027766B (zh) * 2015-09-19 2022-04-29 微软技术许可有限责任公司 预取指令块
CN110347338A (zh) * 2019-06-18 2019-10-18 重庆大学 混合内存数据交换处理方法、系统及可读存储介质
CN110569001A (zh) * 2019-09-17 2019-12-13 深圳忆联信息系统有限公司 基于固态硬盘的L2P表dirty位标记方法和装置
CN113254025A (zh) * 2021-06-28 2021-08-13 中南大学湘雅医院 基于原语状态机的关键字特征集合编译方法、装置及设备

Also Published As

Publication number Publication date
CN102023845B (zh) 2014-05-21

Similar Documents

Publication Publication Date Title
CN102741826B (zh) 在无约束事务存储器(utm)系统中执行模式切换
JP6518191B2 (ja) アドレス断片化に対するメモリ・セグメントのリマッピング
US8171205B2 (en) Wrap-around sequence numbers for recovering from power-fall in non-volatile memory
CN101861571B (zh) 用于修改存储器存取次序的系统、设备及方法
US9244883B2 (en) Reconfigurable processor and method of reconfiguring the same
US7953953B2 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN102317925B (zh) 存储器系统和控制存储器系统的方法
CN102741806A (zh) 使用缓冲存储加速事务的机构
US20060294330A1 (en) Managing memory pages
US6950909B2 (en) System and method for reducing contention in a multi-sectored cache
CN102023845B (zh) 一种基于状态机的Cache并发访问管理方法
JP2008234074A (ja) キャッシュ装置
CN110781016B (zh) 一种数据处理方法、装置、设备及介质
US9507534B2 (en) Home agent multi-level NVM memory architecture
CN109165321B (zh) 一种基于非易失内存的一致性哈希表构建方法和系统
US20170322735A1 (en) Memory device including risky mapping table and controlling method thereof
CN104216684A (zh) 一种多核并行系统及其数据处理方法
CN102203737B (zh) 多线程访问多副本的方法和装置
CN104375955A (zh) 高速缓冲存储器设备及其控制方法
JP4297846B2 (ja) アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法
US20160210234A1 (en) Memory system including virtual cache and management method thereof
CN105426130B (zh) 邮件快速处理方法
US11940914B2 (en) Performance aware partial cache collapse
US20220405253A1 (en) Mechanism for managing a migration of data with mapped page and dirty page bitmap sections

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
TR01 Transfer of patent right

Effective date of registration: 20220727

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right