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

做网站刷东西合肥百度搜索优化

做网站刷东西,合肥百度搜索优化,有名做网站公司,网站开发基于百度地图目录 🧩 从直接映射的弊端说起 🎯 Cache Miss 的三种类型 🔄 关联映射解决了什么问题? 🌐 全相联映射(Fully Associative Mapping) 地址结构(Address Breakdown) …

目录

🧩 从直接映射的弊端说起

🎯  Cache Miss 的三种类型

🔄 关联映射解决了什么问题?

🌐 全相联映射(Fully Associative Mapping)

地址结构(Address Breakdown)

🏗️ 工作原理简述:

 优点:

缺点:

举例说明:

♻️ 替换策略

🔍 命中延迟(Hit Latency) 


🧩 从直接映射的弊端说起

在缓存(Cache)设计中,直接映射(Direct Mapped Cache)是一种简单的实现方式。它将主存中的每一个块(Block)只能映射到缓存中的某一个固定位置。

比如:
一个主存地址 0x1234 经过地址映射公式后,只能放在缓存的第 i 行,不能放在别的位置。

这种设计虽然实现简单,访问速度快,但是也带来了明显的缺点:

弊端:冲突率高(High Conflict Rate)

即使主存中不同的块频繁被访问,但它们如果映射到缓存的同一个位置,会频繁地发生替换,导致缓存命中率(Cache Hit Rate)大大降低。

🎯  Cache Miss 的三种类型

在这个过程中,我们自然引出了三种常见的 Cache Miss(缓存未命中)类型:

英文术语中文翻译简单说明
Compulsory Miss (a.k.a Cold Miss)冷启动未命中/强制未命中第一次访问数据时,由于缓存中还没有它,无论如何都会未命中。
Conflict Miss冲突未命中不同的数据映射到同一个 Cache 行,频繁替换造成未命中。直接映射常见。
Capacity Miss容量未命中缓存空间不够大,无法容纳程序运行期间所有活跃数据,即便映射规则很好也会未命中。

 举个例子:

假设你有一个只有 4 行的缓存,每次都要访问 8 个不同的地址,如果使用直接映射,并且这些地址映射到相同的行上,那就会不断地互相替换,导致 冲突未命中。

🔄 关联映射解决了什么问题?

为了解决直接映射中的冲突未命中问题,计算机引入了关联映射策略,也就是 Associative Mapping。

我们今天重点讲解其中最灵活的一种方式——

🌐 全相联映射(Fully Associative Mapping)

定义:

Fully Associative Mapping 全相联映射 指的是:主存中的任何一个块都可以存储在缓存的任何一行,缓存中的任何一行都可以存放任何主存块。

因此,不需要通过地址中的一部分(如 Line Number 或 Index)来选择一个特定的缓存行。 

地址结构(Address Breakdown)

主存地址(memory address)被分为两个部分:

  • Tag(标记):用于与缓存中每行的 Tag 进行匹配,判断是否命中。

  • Block Offset(块内偏移):定位该块内的字节。

地址格式举例:假设主存地址为 32 bits,缓存块大小为 64 Bytes(即 2⁶),那么:

  • 低6位 = Block Offset

  • 高26位 = Tag

🏗️ 工作原理简述:

  1. 读请求发起:CPU 提供一个主存地址。

  2. 提取 Tag:从地址中提取出高位 Tag。

  3. 并行比较(Parallel Comparison):

    • 将该 Tag 与 Cache 中 每一行的 Tag 字段并行比较。

    • 若某一行匹配且 valid bit = 1,表示命中(Hit)。

    • 否则 Miss(未命中)。

实现这一过程需要 N 个比较器(N-way comparators),其中 N 是 Cache 行数,因此硬件开销大。

 优点:

  • 极大地减少了 Conflict Miss(冲突未命中):因为没有固定位置,数据不再“争抢”同一条 Cache 行。

  • 更灵活,缓存命中率高。

缺点:

  • 查找成本高:需要将每一条 Cache 行的 Tag 都拿出来对比。要使用并行比较器,硬件实现复杂。

  • 成本更高:硬件复杂度和功耗都比直接映射高很多。

虽然全相联映射能有效减少 冲突未命中,但并不能消除:

  • Compulsory Miss(冷启动未命中):首次访问某个数据块,Cache 中还没它。

  • Capacity Miss(容量未命中):当活跃数据总量超过缓存大小时发生。

  •  Conflict Miss 几乎被消除,因为任何块可以放在任何位置。

举例说明:

假设:

  • Cache 有 4 行,每行能存储一个数据块;

  • 每行存储:

    • Valid Bit(有效位)

    • Tag(标记)

    • Data Block(数据块)

LineValidTagData
010x12A...
110x45C...
210x7F0...
310xD02...

CPU 要访问地址 0x45C1100

  • 提取 Tag = 0x45C

  • 用 4 个比较器同时比较 4 行的 Tag 字段

  • 找到 Line 1 匹配,命中(Hit)

♻️ 替换策略

当 Cache 满了,而且需要替换一行时,我们必须选一个块被淘汰。

常见策略包括:

  1. LRU(Least Recently Used,最近最少使用)

    • 替换最久未被访问的块

    • 实现较复杂,需维护访问时间顺序

  2. Random Replacement(随机替换)

    • 随机选择一行替换

    • 简单但效率不一定最优

  3. FIFO(先进先出)

    • 最早进入缓存的块先被替换

    • 结构上比 LRU 更容易实现

🔍 命中延迟(Hit Latency) 

Hit Latency 是指 当访问的内存块已经在缓存中时,完成数据访问所需的时间,也就是说,这是在 cache 命中的情况下,系统从 cache 中获取数据所用的时间。

在结构上,hit latency 通常包括:

  1. 比较 Tag 的时间(也就是比较地址中的 tag 和缓存中所有 tag 的时间)

  2. 识别是否命中(命中线路的逻辑判断),通常通过一个 多输入 OR 门 得出是否有某一行匹配

 

例题:

 

http://www.dtcms.com/wzjs/26906.html

相关文章:

  • 做网站教程如乐搜索引擎优化排名
  • 湖北省城乡住房建设厅网站下载手机百度最新版
  • 品牌网站建设设计公司推广文章的步骤
  • 做防水施工 上什么网站找免费个人网站服务器
  • 中国最好的网站建设公司网站百度关键词排名软件
  • 建设自己的网站首页精准客户数据采集软件
  • 笋岗网站建设windows优化大师的优点
  • 云南微网站搭建百度服务中心
  • 网站首页确认书涟源网站seo
  • 虚拟机网站建设全国免费发布广告信息平台
  • 做一家网站需要多少钱做网站怎么赚钱
  • 昆明网站建设是什么意思网站如何被百度快速收录
  • 做的好的电商网站百度广告推广平台
  • 企业vi设计是什么意思啊北京做的好的seo公司
  • 平顶山市网站建设公司百度关键词价格查询
  • 知名的传媒行业网站开发百度百家自媒体平台注册
  • 十个程序员必备的网站南京百度
  • wordpress锚点河池网站seo
  • 广告设计公司vi设计seo资讯
  • wordpress 块状沈阳seo关键词
  • 怎么把网站做成自适应成都高端网站建设哪家好
  • thinkphp 做网站如何培训心得体会2000字
  • 昆明企业制作网站百度推广在哪里能看到
  • .net企业门户网站开发网站营销网站营销推广
  • 新疆生产建设兵团国土局网站自己接单的平台
  • 哪些网站做商标注册东莞做网页建站公司
  • wordpress搜索页面长春网站优化团队
  • 个人怎么做百度竞价衡水seo排名
  • 纪检监察信息网站建设如何在百度上做免费推广
  • 做go分析和kegg分析网站昆明网络营销