事务存储结构的实现_第1页
事务存储结构的实现_第2页
事务存储结构的实现_第3页
事务存储结构的实现_第4页
事务存储结构的实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、事件存储布局的实现摘要多核处置惩罚技能将成为盘算机的主流技能,基于多核开拓线程级并行已至关紧张,事件的引入可以或许办理如今线程所不克不及完成的成效,同时可以或许简化编程模子,事件存储能很好地实现事件特性。本文起首先容了T的根本原理,接着阐发了如今主流T体系LgT,侧重于数据版本办理和辩论办理机制的实现,进而将此体系的良好性显现出来。末了对本文举行了总结和预测。关键词事件存储;日记事件存储;体系布局;操纵体系随着多核处置惩罚器技能的不竭更新和生长,传统的串行步伐岂论在服从上照旧性能上都已经跟不上信息高速生长的足步了,步伐员不得不开拓线程级并行以进步片上盘算资源的利用服从,但也带来了新的挑衅和题目

2、。如今差异线程间的同步、对共享资源的拜候等都是通过锁和信号量机制完成的。然而,这种传统的基于锁和信号量的并发体系存在显着的范围性。粗粒度的锁对大量的共享数据做了庇护,但是可扩展性欠好,由于纵然在线程间不存在对共享数据的拜候的环境下也大概会出现辩论壅闭征象;细粒度的锁固然比粗粒度的锁扩展性能好,但由于算法方案的庞大性,平凡步伐员很难借助细力度的锁实现高效的应用。同时利用锁机制还会带来诸多题目,好比:死锁、优先级反转等,极大地影响了并行应用的服从和性能。事件存储(Transatinalery,T)的利用是办理上述存在题目一个很好的措施1。通过将差异并行实行的线程事件化,用事件操纵来取代锁机制能低落

3、编程的庞大性。事件是被单线程实行的对内存举行读写的有序操纵序列,其特性包罗:原子性、断绝性、同等性和长期性。通常事件的实行历程为:调用事件入口函数(begin_transatin)开始实行事件,当事件实行完毕后调用提交函数(it_transatin)开始提交事情,提交历程分为三个阶段(哀求提交、开始提交和完成提交),实行完提交后此事件也就实行完毕,从而继承实行下面的事件。但假设事件在实行或提交历程中产生辩论大概错误,那么通过其特有的回滚机制(rllbak)返回到此事件入口继承实行。事件的实行流程图如图1所示。图1事件实行流程为了实现事件的这些特性,需有一个很好的T体系来支持事件数据的版本办理(

4、Versinanageent)和事件的辩论办理(ntentinanageent)。版本办理同时对新值(事件提交后可见)和原始的旧值(事件实行历程中产生了回滚的规复数据)举行办理。根据数据存放方法的差异T体系区分版本办理为:积极版本办理(EagerVersinanageent)和懒惰版本办理(LazyVersinanageent)。积极版本办理是将新值置于目的存储区中,如许在提交时新值可以或许很快的得到实行,极大地低落了提交的时延;而懒惰版本办理是将原始的旧值置于目的存储区,固然会增长提交的延时但是低落了当事件产生回滚后实行的延时。辩论办理是差异事件实行历程中对共享资源拜候引发辩论而举行的辩论检

5、测以及办理的机制。辩论办理有积极的(Eager)和懒惰的(Lazy)两种计谋,假设辩论在读数据或写数据时立即被创造而举行仲裁,这种辩论检测是积极的;假设辩论是在事件举行提交时才创造并仲裁的,这种辩论检测那么是懒惰的。如今,基于T的硬件布局有许多种,图2中列出了如今几种盛行的硬件布局根据版本办理和辩论办理而举行的分类。本文将先容此中的一种布局LgT(日记事件存储),通过对其硬件布局拜见图3、版本办理、辩论办理的实现,显现了此布局的良好性,并给后续研究提供参考和帮助。图2T体系分类LgT是创立在多机体系中基于日记的T实现,每个核都有单独的私有ahe,并通过目次协议来维持数据的同等性。它接纳的是积极

6、的版本办理计谋和积极的辩论办理计谋。图3给出了LgT的硬件布局,它通过增长一些存放器和ahe中的读/写位很好地完成了对事件的操纵。图3LgT的硬件布局(图中黑框中为其特有布局)2.1版本办理(Versinanageent)LgT利用积极的版本办理,将新的实行数据存储在目的地区(目的地点)中,而将旧的数据存储在别的缓冲区。它通过在内存中开拓一块事件日记地区存储事件实行历程中被修改的数据(上文中提到的原始数据)和这些数据所对应的地点,新的实行数据那么被保存在目的存储区(目的地点),当实行完成提交时,这些新数据将会立即见效;当事件实行历程中或提交时产生辩论或错误必要回滚时,那么通过事件日记中记载的信

7、息规复失事件实行前的初始状态。刚开始创立线程时,每一个线程对应着一个日记而且为日记分派一块假造存储地区,并将该日记基地点写入LgBase存放器,当旧数据必要存储到日记时,LgT通过LgBase存放器中的值定位到日记的入口然后将旧数据的假造地点和值一同保存在日记中以便规复时利用。为了淘汰冗余日记,LgT为每一个ahe块添加了对应的写()位,用此来标识该ahe块在日记中的记载环境。当事件提交乐成后,LgT将对应ahe块的写()标记位清0并将LgPinter(日记指针)重新指向日记的入口处,以便处置惩罚后续事件。LgT也为每个ahe块设置了一个读(R)标记位,就像上面我们讨论的写()标记位一样。在每

8、个事件操纵历程中LgT同样将读标记位设置用于表现读操纵的实行(如图4所示),而且在事件竣事后,读标记位也清0。这种积极的版本办理形式的缺点就是在事件产生辩论或错误必要回滚时实行比力慢,在回滚时,LgT为了完成规复必需将原始数据从日记中读到符合的目的地点中然后重置写()位,同时由于有许多数据记载在日记中,以是规复历程必需根据由后向前(后进先出)的挨次举行。但在事件辩论比力少的环境下,这种形式可以或许带来高效的实行服从。为了能更好的明白LgT版本办理历程,图4通过一个例子举行了很好的阐发。(1)事件实行开始前的状态ahe数据块中存放着原始数据,每块的读(R)、写()位置0,LgBase(日记基址存

9、放器)指向日记入口地点,LgPtr(日记偏移指针)指向日记入口地点同时Tunt(事件计数器)置1代表正预备实行一个事件。(2)读00地点(十六进制地点)中的数据到存放器r1中,00地点对应数据块的读(R)标记位置1表现此数据被读。(3)将存放器r2中数据(这里假设为56)存入0地点中,由于0地点中存在原始数据34,将0地点和该原始数据一起根据LgBase中的日记入口地点存入日记中,并将LgPtr指针后移,指向用于存放下个数据的地点位,同时将0地点对应块的写()标记位置1,代表一次写操纵的完成,其他的状态稳定。(4)读取40地点中数据到存放器r3中,然后r3中数据加1,并将实行后的r3数据存回4

10、0地点中,该操纵对40地点对应块实行了一次读操纵和一次写操纵,将读(R)和写()标记位置1,然后将原始40地点对应块中数据存入日记中,存入LgPtr指向的地点中,同时将LgPtr指针后移。(5)事件提交后状态将与本领务相干的各个数据块对应读写标记位清0,将LgPtr置位到LgBase,Tunt置0。(本例仅针对单事件实行,假设是嵌套事件的实行,LgT布局会越发庞大,详细支持嵌套事件的LgT实现,请参考2)(6)事件回滚后状态事件在实行或提交历程中假设堕落必要回滚,那么将日记中记载的原始数据根据地点映射干系重新加载到对应ahe数据块中,同时将各个块对应读写标记位清0,LgPtr重置而且Tunt置

11、0。图4事件版本办理历程乐成提交和回滚2.2辩论办理(ntentinanageent)LgT接纳积极的辩论办理形式,而辩论办理中的一个紧张观点目次,就是在内存中开拓的一片用来记载共享数据索引和相干状态信息的地区,也称为目次表。此辩论办理以目次为桥梁,通过目次的阐发和消息转发机制来完成多处置惩罚机间的辩论检测。详细的实现步调归纳综合起来为:哀求操纵的处置惩罚机发出同等性哀求到目次;目次相应哀求并大概将哀求转发到其他一个或多个处置惩罚机上;每个相应哀求的处置惩罚机查抄自身状态看是否产生辩论;每个相应哀求的处置惩罚机给出应答信号,包罗辩论应答(nak)和非辩论应答(ak);发出哀求的处置惩罚机办理辩

12、论。事件产生辩论后的更换举动须根据目次中有用的ESI状态(ESI状态:dified(),ned(),Exlusive(E),Shared(S)rInvalidate(I)而定。下面结合图5中的辩论检测实例对辩论办理的详细举动举行说明。图5LgT辩论检测实例(1)事件开始处置惩罚机P开始实行事件,Tunt增1;此时仅目次中存放的ahe块信息有用。(2)处置惩罚机P向目次哀求数据信息步调:P在自身的ahe中寻不到某数据,立即发送独占哀求(GETX)到目次。步调:目次收到哀求后根据相应数据的索引寻到“老版本数据传给处置惩罚机P,当“老版本数据到达P时,P将此数据更为“新版本数据同时将本机此数据块对应

13、读/写标记位置1。步调:P担当数据完毕后,发送应答信号给目次表现已经乐成担当数据。与此同时目次中的状态信息为P(difiedbyP),表现此数据正在被处置惩罚机P变动。(3)检测到事件辩论步调:处置惩罚机Q发出哀求某共享数据的信号(GETS)给目次。步调:由于目次中此数据的状态为P,目次那么根据哀求转发给处置惩罚机P。步调:P担当到哀求后查抄本身的状态,由于P中相应数据块的写标记位已置,表白P正在修改此数据,不克不及满意Q的哀求,产生辩论。这时处置惩罚机P直接发送辩论信号给Q,当Q担当到辩论信号后举行辩论处置惩罚。步调:处置惩罚机Q同时将辩论信号发送给目次,表白此次哀求失败。(4)事件溢出的处

14、置惩罚处置惩罚机P照顾目次要将修改后的数据存到内存中(如今,内存中存在的是对应数据修改前的“脏数据)。步调:P发出PUTX哀求给目次。步调:目次成认后发送应答信号给P,照顾P可以发送。步调:P吸收到此信号后将数据写回内存(B_XAT)同时将溢出位置1(表白此数据已经不在ahe中)。如许在写回操纵完成后,P中相干数据块信息已置为无效,但是目次中仍旧保持着原先P持有数据时的状态,内存中对应地区已为修改后的“干净数据,目次中该数据相应的状态也由“老酿成了“新,表白内存中此数据已为更新后的数据。(5)溢出数据的事件辩论检测步调:处置惩罚机Q重新发出哀求数据信号给目次,由于目次中的状态还没有改变。步调:

15、目次根据当前状态再次将哀求转发给处置惩罚机P,而此时Q哀求的数据块已经写回内存中去了,并不在P的ahe中,P收到哀求信号后查抄到自身的溢出位已经置位,它以为此数据大概由于某种缘故原由不在ahe中,但是仍旧与它相干。好比:由于此数据块巨细大于ahe划定块巨细而不克不及放下,但仍需操纵。步调:P发出辩论信号(NAK)给Q,但是这个辩论并不是真正意义上的辩论,而是P假设的辩论。步调:Q收到辩论信号后处置惩罚辩论同时发送信号给目次,表白此次哀求再次失败。(6)目次中数据状态的懒惰(Lazy)更新处置惩罚机P提交事件后将Tunt减1,将对应ahe块的读/写标记位和溢出标记位清零,但此时目次中的状态仍旧为

16、P。步调:此时一旦处置惩罚机Q重新发出哀求此数据信号。步调:该信号会再一次通过目次转发给处置惩罚机P,但此时P的溢出位已经被清空。步调:P通过发送扫除信息(LEAN)给目次照顾目次不必再转发哀求信息,目次中的数据信息有用可以直接发送给哀求的处置惩罚机Q。步调:目次根据索引干系寻到相干数据发送给处置惩罚机Q。步调:Q收到数据后举行处置惩罚同时将应答信号发送给目次,表白哀求乐成同时将目次对应数据项状态置EQ,表现此时处置惩罚机Q独占此数据资源。但在实行辩论检测的历程中也会存在错误的辩论,好比:当处置惩罚机Q哀求拜候一个数据块,该数据块在目次中的状态为P,而处置惩罚机P已经实行到后续事件,同时也置了

17、溢出位。P发送辩论信号给Q,但这个辩论并不是因处置惩罚机Q哀求的数据正被其他占据而产生的辩论,是一种无关的辩论。以是必需接纳一种机制将目次状态实时更新。2.3操纵体系对LgT的支持由于事件的引入,传统操纵体系已经不克不及满意要求,必需变动或扩展操纵体系使事件能稳定高效的实行。起首,基于LgT体系,操纵体系卖力对日记举行创立和维护。它为每一个实行线程开拓一片日记地区,并将该地区入口地点写到LgBase存放器中,同时当某数据存入日记后使LgPinter指针后移,用来存放新数据。当产生回滚,操纵体系根据如今LgPinter指针从后向前规复数据直到LgPinter与LgBase指向雷同为止。其次,当实

18、行事件产生切换时,操纵体系可以通过扩显如今的TB(线程操纵块)来对事件相干存放器内容等信息举行保存。再次,当产惹事件级线程切换时,操纵体系断定切换缘故原由(包罗其他线程抢占、时间片到达、事件之间辩论等而实行的切换),照顾调理器接纳差异的切换计谋或辩论计谋来完成切换。末了,由于停顿内新创立的事件和被停顿事件辩论而导致活锁(被停顿事件挂起得不到实行,停顿内新创立事件由于辩论计谋不停回滚重新实行回滚,也得不到实行),操纵体系必需可以或许记载回滚次数并设定一个门限值,假设同一事件回滚数凌驾此门限,操纵体系可以强行中断该事件而调理其他事件。本文先容T的根本原理,并对当前主流T体系LgT举行阐发实现,得出以下结论:要实现高效的事件处置惩罚必必要有一个很好的基于事件模子的硬件布局。好比:LgT,硬件专门为T添加了LgBase、LgPinter等存放器并改变了ahe的布局,在ahe中参加了读(R)和写()标记位;如许对事件版本办理以及辩论办理都带来了亘古未有的作用,这也是此T布局良

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论