当前位置: 首页 > news >正文

企业网站建设费用财务处理godaddy上传网站

企业网站建设费用财务处理,godaddy上传网站,快速建设一个网站,手机老是下载一些做任务的网站本文翻译自#xff1a;http://duartes.org/gustavo/blog/微信公众号#xff1a;技术原理君 本文简要的展示了现代Intel处理器的CPU cache是如何组织的。有关cache的讨论往往缺乏具体的实例#xff0c;使得一些简单的概念变得扑朔迷离。也许是我可爱的小脑瓜有点迟钝吧#…本文翻译自http://duartes.org/gustavo/blog/微信公众号技术原理君 本文简要的展示了现代Intel处理器的CPU cache是如何组织的。有关cache的讨论往往缺乏具体的实例使得一些简单的概念变得扑朔迷离。也许是我可爱的小脑瓜有点迟钝吧但不管怎样至少下面讲述了故事的前一半即Core 2的 L1 cache是如何被访问的 L1 cache – 32KB8路组相联64字节缓存线 1. 由索引拣选缓存组行 在cache中的数据是以缓存线line为单位组织的一条缓存线对应于内存中一个连续的字节块。这个cache使用了64字节的缓存线。这些线被保存在cache bank中也叫路way。每一路都有一个专门的目录directory用来保存一些登记信息。你可以把每一路连同它的目录想象成电子表格中的一列而表的一行构成了cache的一组set。列中的每一个单元cell都含有一条缓存线由与之对应的目录单元跟踪管理。图中的cache有64 组、每组8路因此有512个含有缓存线的单元合计32KB的存储空间。 在cache眼中物理内存被分割成了许多4KB大小的物理内存页page。每一页都含有4KB / 64 bytes 64条缓存线。在一个4KB的页中第0到63字节是第一条缓存线第64到127字节是第二条缓存线以此类推。每一页都重复着这种划分所以第0页第3条缓存线与第1页第3条缓存线是不同的。 在全相联缓存fully associative cache中内存中的任意一条缓存线都可以被存储到任意的缓存单元中。这种存储方式十分灵活但也使得要访问它们时检索缓存单元的工作变得复杂、昂贵。由于L1和L2 cache工作在很强的约束之下包括功耗芯片物理空间存取速度等所以在多数情况下使用全相联缓存并不是一个很好的折中。 取而代之的是图中的组相联缓存set associative cache。意思是内存中一条给定的缓存线只能被保存在一个特定的组或行中。所以任意物理内存页的第0条缓存线页内第0到63字节必须存储到第0组第1条缓存线存储到第1组以此类推。每一组有8个单元可用于存储它所关联的缓存线译注就是那些需要存储到这一组的缓存线从而形成一个8路关联的组8-way associative set。当访问一个内存地址时地址的第6到11位译注组索引指出了在4KB内存页中缓存线的编号从而决定了即将使用的缓存组。举例来说物理地址0x800010a0的组索引是000010所以此地址的内容一定是在第2组中缓存的。 但是还有一个问题就是要找出一组中哪个单元包含了想要的信息如果有的话。这就到了缓存目录登场的时刻。每一个缓存线都被其对应的目录单元做了标记tag这个标记就是一个简单的内存页编号指出缓存线来自于哪一页。由于处理器可以寻址64GB的物理RAM所以总共有64GB / 4KB 224个内存页需要24位来保存标记。前例中的物理地址0x800010a0对应的页号为524,289。下面是故事的后一半 在组中搜索匹配标记 由于我们只需要去查看某一组中的8路所以查找匹配标记是非常迅速的事实上从电学角度讲所有的标记是同时进行比对的我用箭头来表示这一点。如果此时正好有一条具有匹配标签的有效缓存线我们就获得一次缓存命中cache hit。否则这个请求就会被转发的L2 cache如果还没匹配上就再转发给主系统内存。通过应用各种调节尺寸和容量的技术Intel给CPU配置了较大的L2 cache但其基本的设计都是相同的。比如你可以将原先的缓存增加8路而获得一个64KB的缓存再将组数增加到4096每路可以存储256KB。经过这两次修改就得到了一个4MB的L2 cache。在此情况下需要18位来保存标记12位保存组索引缓存所使用的物理内存页的大小与其一路的大小相等。译注有4096组就需要lg(4096)12位的组索引缓存线依然是64字节所以一路有4096*64B256KB字节在L2 cache眼中内存被分割为许多256KB的块所以需要lg(64GB/256KB)18位来保存标记。 如果有一组已经被放满了那么在另一条缓存线被存储进来之前已有的某一条则必须被腾空evict。为了避免这种情况对运算速度要求较高的程序就要尝试仔细组织它的数据使得内存访问均匀的分布在已有的缓存线上。举例来说假设程序中有一个数组元素的大小是512字节其中一些对象在内存中相距4KB。这些对象的各个字段都落在同一缓存线上并竞争同一缓存组。如果程序频繁的访问一个给定的字段比如通过虚函数表vtable调用虚函数那么这个组看起来就好像一直是被填满的缓存开始变得毫无意义因为缓存线一直在重复着腾空与重新载入的步骤。在我们的例子中由于组数的限制L1 cache仅能保存8个这类对象的虚函数表。这就是组相联策略的折中所付出的代价即使在整体缓存的使用率并不高的情况下由于组冲突我们还是会遇到缓存缺失的情况。然而鉴于计算机中各个存储层次的相对速度不管怎么说大部分的应用程序并不必为此而担心。 一个内存访问经常由一个线性或虚拟地址发起所以L1 cache需要依赖分页单元paging unit来求出物理内存页的地址以便用于缓存标记。与此相反组索引来自于线性地址的低位所以不需要转换就可以使用了在我们的例子中为第6到11位。因此L1 cache是物理标记但虚拟索引的physically tagged but virtually indexed从而帮助CPU进行并行的查找操作。因为L1 cache的一路绝不会比MMU的一页还大所以可以保证一个给定的物理地址位置总是关联到同一组即使组索引是虚拟的。在另一方面L2 cache必须是物理标记和物理索引的因为它的一路比MMU的一页要大。但是当一个请求到达L2 cache时物理地址已经被L1 cache准备resolved完毕了所以L2 cache会工作得很好。 最后目录单元还存储了对应缓存线的状态state。在L1代码缓存中的一条缓存线要么是无效的invalid要么是共享的shared意思是有效的真的J。在L1数据缓存和L2缓存中一条缓存线可以为4个MESI状态之一被修改的modified独占的exclusive共享的shared无效的invalid。Intel缓存是包容式的inclusiveL1缓存的内容会被复制到L2缓存中。在下一篇讨论线程threading锁定locking等内容的文章中这些缓存线状态将发挥作用。下一次我们将看看前端总线以及内存访问到底是怎么工作的。这将成为一个内存研讨周。
http://wiki.neutronadmin.com/news/254873/

相关文章:

  • 企业网站怎样做可以搜索到肇东网站建设云聚达
  • 网页设计入门基础知识seo营销排名
  • 成都山猫vi设计公司苏州关键词优化企业
  • 漯河做网站公司win7系统可以做网站吗
  • 如何做自己的简历网站别具光芒 Flash互动网站设计
  • 国字型布局网站直播软件开发商
  • 做网站的一些费用app下载赚钱
  • 国外的一些网站哪些网站做ip向小说
  • 有没有兼职做设计的网站商业网站网站建设
  • 做网站的是什么工作蓝色门户网站
  • 网站开发计划wordpress < 3.6.1
  • 网站的背景图怎么做手机端网站思路
  • 个人电脑可以做网站服务器吗遵义建设厅网站
  • 素材网站有哪些织梦仿站时怎么取俩个网站的页面整合
  • 电子商务网站建设定义工作服定制
  • 定制化网站开发公司百度竞价排名广告
  • 做百度网站网站排名赚钱吗知识付费微网站开发
  • 如何自己开发微网站搞个网站需要多少钱
  • 网站开发费用报价手机微网站怎么做的
  • 韩国美食做视频网站电商运营培训机构
  • 建网站需要多少钱c 网站开发案例大全
  • 做网站必须先买域名吗网页设计素材图标
  • asp网站关键字装潢设计公司门头
  • 现在最常用网站开发工具中国成熟iphone
  • 比较好的购物网站设计兼职网站推荐
  • 宁波网站快速优化网站用什么系统
  • 怎样增加网站权重旅游网站的设计
  • 南宁公司网站模板建站ui设计师证书有用吗
  • 设计一个网站多少钱有哪些搜索引擎
  • 采购网站大全工信部网站 验证码