D4.8 Write transactions
D4.8.1 WriteNoSnoop
A WriteNoSnoop transaction is used in a region of memory that is not Shareable with other masters. A WriteNoSnoop transaction can result from: • A program action, such as a store operation. • An update of main memory for a cache line that is in a Non-shareable region of memory. |
WriteNoSnoop 用于一段不和其他master share的内存。用于: 1. store操作 2. Non-shareable的内存的cache update到主存中。 writenosnoop是针对不共享的内存的操作,所以不需要给其他的master发送snoop的消息。 可以是直接写内存,或者是将cache中的内容同步到内存。 |
D4.8.2 WriteUnique
A WriteUnique transaction is used in a region of memory that is Shareable with other masters. A single write occurs that is required to propagate to main memory or a downstream cache. |
和其他master共享的内存,writeunique是一个写操作,会将内容写入主存或downstream cache。 这个不是更新cache到主存的命令,是cpu直接发出的写的命令,这个时候如果有cache的话,cache的数据必须是处于clean的状态 |
In the case of master holding a line in a Clean state while performing a WriteUnique transaction, the cache line must be updated to the new value when the WriteUnique transaction response is received. | 如果有clean cache的话,更新之后cache的内容也必须得到更新 |
D4.8.3 WriteLineUnique
A WriteLineUnique transaction is used in a region of memory that is Shareable with other masters. A single write occurs, that is required to propagate to main memory or a downstream cache. | 写道主存或downstream cache |
A WriteLineUnique transaction must be a full cache line store and all bytes within the cache line must be updated | 一次必须是写整个cache的量 |
In the case of master holding a line in a Clean state while performing a WriteLineUnique transaction, the cache line must be updated to the new value when the WriteLineUnique transaction response is received. | 如果有clean cache的话,cache中的内容也必须得到更新。 |
D4.8.4 WriteBack
A WriteBack transaction is a write that can be used in Shareable and Non-shareable regions of memory. A WriteBack transaction is a write of a dirty cache line to update main memory or a downstream cache. | writeback属于cache维护命令,将dirty cache写道主存或downstream cache。 |
The difference between a WriteBack and a WriteClean transaction is whether the cache line remains allocated in the cache for a Shareable region of memory. After a WriteBack transaction, the cache line is no longer allocated. After a WriteClean transaction, the cache line remains allocated. |
writeback和writeclean的区别: writeback 写之后cache将变为invalid,writeclean写之后 cache依然 有效。 |
D4.8.5 WriteClean
A WriteClean transaction is a write operation that can be used in Shareable and Non-shareable regions of memory. A WriteClean transaction is a write of a dirty cache line to update main memory or a downstream cache. | 同writeback,也属于cache 维护类操作,将dirty cache更新到主存或downstream cache。 |
D4.8.6 WriteEvict
A WriteEvict transaction can be used when evicting a clean cache line. This transaction is used to write the line to a lower level of the cache hierarchy, such as an L3 or system level cache. A WriteEvict transaction is not required to update main memory. | |
A WriteEvict transaction must only be used in the following circumstances: • When the cache line is held in a UniqueClean state. • When the cache line has not been speculatively fetched from a different shareability domain. |
必须时unique clean,为啥? 能看出来这条操作是将upstream的cleancache写道downstream,为下次使用做准备。 |
Note It is important that a cache line that could have been speculatively fetched, so that it was located outside of its shareability domain, could become out-of-date as the cache line is not required to be updated by subsequent stores to the cache line. If a cache line could be a stale copy, then it must not be written back into its shareability domain by the use of a WriteEvict transaction. |
D4.8.7 Restrictions on WriteUnique and WriteLineUnique usage
Typically, WriteUnique and WriteLineUnique transactions are used by a non-cached component that is writing to a Shareable region of memory. However, WriteUnique and WriteLineUnique transactions can be used by a cached component that meets the requirements. |
WriteUnique and WriteLineUnique的典型使用场景是一个没有cache的master对shareable内存的写操作。 对有cache的master也可以,只是有下面一些限制: |
A cached component must be able to complete any incoming snoop transaction while a WriteUnique or WriteLineUnique transaction is in progress. A cached component must: | 在WriteUnique or WriteLineUnique执行时,component必须能完成其他master的snoop的操作,需要按如下规则操作: |
Complete any outstanding WriteBack, WriteClean, WriteEvict, or Evict transactions before issuing a WriteUnique or WriteLineUnique transaction | 在发出WriteUnique or WriteLineUnique传输之前,必须完成所有的WriteBack, WriteClean, WriteEvict, or Evict 传输。why? |
No additional WriteBack, WriteClean, WriteEvict, or Evict transactions can be issued until all outstanding WriteUnique or WriteLineUnique transactions are completed. | 在WriteUnique or WriteLineUnique完成之前不能发出额外的WriteBack, WriteClean, WriteEvict, or Evict 这些传输 |
Complete any incoming snoop transactions without the use of WriteBack, WriteClean, WriteEvict, or Evict transactions while a WriteUnique or WriteLineUnique transaction is in progress. | 当 WriteUnique or WriteLineUnique正在执行时,直接完成所有的snoop,而不需要执行WriteBack, WriteClean, WriteEvict, or Evict transactions |
WriteNoSnoop transactions can also be blocked behind WriteUnique and WriteLineUnique transactions. Therefore, the design of the master must ensure that an incoming snoop transaction can complete when a WriteNoSnoop transaction is blocked by an outstanding WriteUnique or WriteLineUnique transaction. | |
This is necessary, because earlier transactions that also might require earlier snoop transactions to complete, can prevent WriteUnique and WriteLineUnique transactions from progressing. | |
These requirements restrict the use of WriteUnique and WriteLineUnique transactions to components that can either: • Complete all snoop transactions without requiring any data to be supplied, for example write-through caches that do not keep dirty cache lines for Shareable data. • Complete snoop transactions by using the snoop data channel, CDDATA. |
|
总结一下:
WriteNoSnoop | 不与其他master共享内存,直接写内存或cache维护 |
WriteUnique | 没有cache的master写(部分cache行) |
WriteLineUnique | 没有cache的master写(整个cache行) |
WriteBack | cache维护指令,将cache写到downstream或主存中,写之后此cache变为invalid |
WriteClean | cache维护指令,将cache写到downstream或主存中,写之后cache依然存在,变为clean |
WriteEvict | 将upstream的clean cache写道downstream,并且invalid upstream的cache |
D4.8 Write transactions相关推荐
- D4.1 About an initiating master
The internal action requires: • For a load, the master must get the data from either: - A valid copy ...
- System.Transactions介绍
在.Net Framework 2.0中,新增了一个名称空间:System.Transactions.从其名字就可以看出来,里面包含了Transaction相关的类.System.Transactio ...
- 智源唐杰主编的IEEE Transactions on Big Data期刊被SCI收录 | AI日报
智源唐杰主编的IEEE Transactions on Big Data期刊被SCI收录 今日,IEEE Transactions on Big Data (简称:IEEE TBD)被SCI收录.IE ...
- System.Transactions深入了解
System.Transactions框架包含了一个称为LTM(Lightweight Transaction Manager)的TM,它隐式的将连接登记于事务中,从内部来看,是由ITransacti ...
- Oracle sessions,processes 和 transactions 参数 关系 说明
一.官网说明 1.1 processes 11gR2 的文档: Property Description Parameter type Integer Default value 100 Modifi ...
- “System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常。
"System.Transactions.Diagnostics.DiagnosticTrace"的类型初始值设定项引发异常. 参考文章: (1)"System.Tran ...
- System.Transactions:实现你自己的Resource Manager
By Sahil Malik[http://www.developer.com/net/net/article.php/11087_3565196_1] .net 2.0所带来最大的变化之一也许就是S ...
- 谈谈分布式事务之三: System.Transactions事务详解[下篇]
在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法.该方法对用于创建基于现有Transaction对 象的"依赖事务(Depende ...
- System.Transactions事务超时设置
System.Transactions 有2个超时属性(timeout 与 maxTimeout),可以通过配置文件来进行设置. 1. timeout System.Transactions 默认的t ...
- 主板19针接口_【新品上市】D4双通道还能组RAID!华南B365D4主板6/7/8/9代全兼容!...
友情提醒,又一款新品主板来了! 这款新品能用Win7能用Win10 双协议M.2还能组RAID 内外兼修 高性价比之选 九代i5超稳搭档,释放Intel优异性能 前!方!高!能! 畅享9代处理器 HN ...
最新文章
- 布赖恩·凯利看好比特币现金:更多的用例可以转化为价值
- 关于移除节点的IE和Firefox的兼容问题
- 浅谈webpack打包原理
- 解决VS命令提示符 “Setting environment for using Microsoft Visual Studio. 此时不应有“系列错误
- Flex与ASP.NET通过Remoting方式交互说明文档
- 8X53 VS 6763
- Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible
- 和大家分享2015年我逐步形成的六个管理认识
- python学习--关注容易被忽略的知识点---(一)python基础
- 一个房间里有4个小孩,2个戴黑帽,2个戴白帽
- 发动机压缩比怎么计算公式_精准的发动机压缩比计算方法与流程
- linux批量修改文件编码格式(包含子目录)
- 计算机基础知识面试题集合(包含计网OSI、TCP/IP、HTTP、TCP、UDP、三次握手、四次挥手、OS进程线程、死锁,常见数据结构及排序,Linux常用命令、数据库基础等。)
- Tensorflow1.7+cuda9.0+cudnn7.0中的各种意(da)外(keng)
- React实现(Web端)网易云音乐项目(五),错过了真的可惜呀
- android开发自定义键盘,Android 总结:自定义键盘实现原理和三种实例详解
- java B2B2C源码电子商务平台-配置中心svn示例和refresh
- 面试——Java字节面经(已获Offer)
- 联想WIN10进入BIOS进行设置的两种方法
- Python三国华容道程序-深度优先
热门文章
- Android视频列表自动播放功能
- Linux以百万兆字节显示内存大小
- bzoj5145 [Ynoi2018]未来日记 (多校第4场1013 Yuno and Claris)
- android兼容低版本方法,Android 应用程序向低版本兼容的问题
- 深入理解Attention及变种(三)
- 打字教程新手篇-指法练习的重要性和注意事项
- Python获取金山词霸每日一句
- MHZ是计算机的什么单位,电脑mhz是什么意思
- 点亮LED灯及IAR调试
- python乒乓球比赛规则介绍_乒乓球赛程 乒乓球比赛规则简介