计算机组成原理:大而快——层次化存储

原文链接www.xiaocr.fun/index.php/2023/11/14/计算机组成原理大而快-层次化存储/

引言

关于两种局部性

  • 时间局部性:如果某个数据被访问,那么在不久的将来它可能再次被访问
  • 空间局部性:如果某个数据项被访问,与它相邻的数据项可能也将被访问

存储系统

根据局部性原理,构建计算机的存储系统,也称为存储层次结构

存储层次结构包括不同速度和容量的多级存储,存储速度越快,价格越昂贵,容量越小。

file


Tips:

同样的数据也有相似的层次性:靠近处理器那一层中的数据时那些较远层次中数据的子集

层次化存储可以由不同的层次组成,但是数据只能在两个相邻层次之间复制。在相邻两层之间信息交换的最小单元称为(block)。

file


Tips:

如果处理器所需的数据在本层的存储中找到,称为命中(hit),否则为失效(miss)。

存储技术

主要有四种:

主存采用动态随机存储(DRAM);靠近处理器的存储层次使用静态随机访问(SRAM);第三种为闪存;第四种为磁盘(disk)

DRAM

在SRAM中,只要提供电源,数值会被一直保存。而在 DRAM 中,使用电容保存电荷的方式来存储数据。采用单个晶体管来访问存储的电荷,或者读取它,或者改写它。DRAM的每个比特仅使用单个晶体管来存储数据,它比SRAM的密度更高,每比特价格更低廉由于DRAM在单个晶体管上存储电荷,因此不能长久保持数据,必须进行周期性的刷新与SRAM相比,这也是该结构被称为动态的原因。

闪存

闪存是一种电可擦除的可编程只读存储器(EEPROM)内含耗损均衡技术的控制器,将写操作尽量分散

Cache基础

理解图示:

file

工作原理介绍

在cache中为每个存储中的数据进行位置分配的最简单方式,就是基于它在存储中的地址来分配cache中的位置,这称为直接映射

找对应数据块

(块地址) mod (cache中的数据块数量)

(图示映射)

file

  • cache中要添加标签

这些标签(tag)保存了所需的地址信息,用来确定请求字是否在cache中

  • cache中添加有效位

用来标识该表现中是否保存着有效数据

  • cache还可以利用时间局部性,使用最近访问的数据替换不常访问的数据

    Cache进一步

    • 64 位地址。
    • 直接映射 cache。
    • cache大小为2"数据块,因此索引字段为n位。
    • 数据块大小为2”个单字(2"m+2字节),因此在单个数据块中使用m位来索引单字,使用地址的最低2位来索引字节。

file


例题加深理解:

file

关于cache容量

该直接映射的cache总容量:

  • 2^n * (单个block大小 + tag位数 + 有效位一位)

处理cache失效

定义:由于所需的数据不在cache之中,对cache发送的数据请求不能被响应

处理步骤:

  • 1.将PC的原始值(当前PC-4)发送到内存。
  • 2.对主存进行读操作,等待主存完成本次访问
  • 3.写cache 表项,将从内存获得的数据写人到该表项的数据部分,将地址的高位(来自 于ALU)写入标签字段,并将有效位置为有效。
  • 4.重启指令执行。这将会重新取指,本次取指将在指令 cache 中命中。与上述相比,数据访问的 cache 控制本质上是相同的。一旦失效,简单地暂停处理器,直到内存返回数据。

处理写操作

目的就是保持主存与cache一致

  • 写穿透(write through)

写穿透是总是同时更新cache和下一级存储,保证二者数据相同。但写每次都相当于访问主存,相当于miss,效率低

  • 写返回(write back)

处理写操作时,只更新cache对于数据块的数值。当数据块被替换时,再将更新后的数据块写入主存

cache的性能

  • 计算cache性能例题

file

  • 计算存储平均访问时间

file


虚拟存储

主存可以通常由磁盘实现的辅助存储当cache,这种技术成为虚拟存储 file


虚拟存储提出动机

  • 程序只读写分配给它的那部分主存,主存只需存储众多虚拟机中活跃的部分,就像cache只存放一个程序活跃部分
  • 我们只希望每个程序否编译到它自己的地址空间中——只有这个程序能访问的一系列存储位置,而虚拟存储实现了将程序地址空间转换为物理地址,这地址转换处理加强了各个程序之间的保护

Tips

  • 虚拟存储块被称为页(page),而不是block/line,这个是由于历史原因
  • 虚拟存储失效称为页失效(page fault)
  • 虚拟存储中,处理器产生一个虚拟地址,该地址通过软硬件转换为一个物理地址,物理地址可访问主存。
  • 虚拟存储中,地址被划分为虚拟页号(VPN,virtual page number)和页内偏移(Page Offset)

缺页失效的penalty有millions of cycles!

(图示)

file

file


页的存放与查找

  • 全相联映射的困难在于项的定位,全部进行检索是不切实际的

在虚拟存储中,我们实验一个索引主存的表来定位页,这个结果称为页表(PT,PageTable),位于主存

页表使用虚拟地址中的页号作为索引,找到相应的物理页号

file


关于缺页失效

如果虚拟也的有效位为无效,则会发生缺页失效

file

关于写

在虚拟存储系统中,写入存储层次结构的下一级(磁盘)可能需要数百万个时钟周期,因此写穿透是不可行的。

虚拟存储系统必须使用写回策略,对内存中的页进行单路写操作。并且当页被从主存中替换出时,将其复制到辅助存储

加快地址转换TLB

TLB(Translation Lookaside Buffer),也就是俗称的快表。由于页表存储在主存中,则程序每个访存请求至少需要两次访存。一次获得物理地址,一次访存获得数据

file


file


file


cache执行总结

file

虚拟存储中的保护

虚拟存储最重要的功能就是允许多个进程共享一个主存,同时为这些进程和OS提供内存保护

无论有意还是无意,一个恶意进程不能写另一个进程或OS的地址空间

file


本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146063.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

onlyoffice 进阶开发 二次开发 连接器(connector)开发

阅读须知:本文针对有对word/excel进行js操作的需求 本次改造基于V7.3.3进行,已经去除:连接器(connector)限制 可以自由调用Api.xxx()、connector.executeMethod()、connector.callCommand() 已经自行改造过docker更新进入仓库。 小伙伴们…

python 爬虫之requests 库以及相关函数的详细介绍

get 函数 当你使用 requests.get 函数时,你可以按照以下步骤来发起一个 GET 请求: 导入 requests 模块: 在你的 Python 脚本或程序中,首先导入 requests 模块。 import requests指定目标 URL: 设置你要请求的目标 URL…

ACM练习——第二天

今天又是一天课,满课,很累哈,计组真的挺难的,但是多学学还是可以学明白。行吧,继续进入今天的ACM练习,现阶段都是主要练习Java到C的语言过渡。 因为今天的题目多半都是昨天的延伸,我就不提供Jav…

Python的函数定义中99%的人会遇到的一个坑

列表是一种经常使用的数据类型。在函数的定义中,常常会使用列表作为参数。 比如,要测试一个接口的数据,接口返回的数据格式如下: {"code": "20000", "data": ["孙悟空","李白&quo…

【C语言学习】24 - strcpy()函数

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcpy():将str指向的字符串拷贝至dest,函数原型如下: char *strcpy(char *dest, const char *src);2 参数 strcpy()函数有两个参数src和dest: 参数s…

Python基础入门----使用Pipenv工具时产生的Pipfile和Pipfile.lock文件有什么区别以及有什么作用

文章目录 PipfilePipfile.lock实操示例当我们使用 Pipenv 工具进行 Python 项目的依赖管理时,会遇到两个重要的文件:Pipfile 和 Pipfile.lock。这两个文件在项目中扮演着不同但又相互补充的角色。接下来,我将详细介绍这两个文件的区别和作用,并提供一些具体的使用示例。 P…

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于入侵杂草优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

C 语言多维数组

C 语言多维数组 在本教程中,您将借助示例学习使用多维数组(二维和三维数组)。 在C语言编程中,您可以创建一个数组数组。这些数组称为多维数组。例如, float x[3][4];这x是二维(2d)数组。该数…

二分法中的两个模板

在acwing的算法基础课中,yxc给出了二分的两个模板,这里举有序数组查找某个数的例子来说明这两个模板。 模板1: 当我们将区间[l, r]划分成[l, mid]和[mid 1, r]时,其更新操作是r mid或者l mid 1;,计算mid时不需要加…

单链表经典OJ题(三)

目录 1、反转链表 2、合并两个有序链表 3、链表的中间结点 4、环形链表的约瑟夫问题 5、移除链表元素 6、移除元素 1、反转链表 206. 反转链表 - 力扣(LeetCode) 翻转链表的实质就是更改当前结点的前驱结点和后继结点 假设原链表为:1->2->…

深入理解强化学习——马尔可夫决策过程:随机过程和马尔可夫性质

分类目录:《深入理解强化学习》总目录 下图介绍了强化学习里面智能体与环境之间的交互,智能体得到环境的状态后,它会采取动作,并把这个采取的动作返还给环境。环境得到智能体的动作后,它会进入下一个状态,把…

【电子通识】USB端口颜色编码标识

不知道你有没有发现 USB 口有不同的颜色,黑色、蓝色、紫色、红色、黄色等等,你知道不同颜色的 USB 口各代表什么意思吗? 这些颜色不是USB规范所要求的,设备制造商之间也不一致。例如,Intel使用橙色表示充电端口&#…

Spring Cloud学习(八)【RabbitMQ 服务异步通讯】

文章目录 初识 MQ同步通讯异步通讯MQ 常见框架 RabbitMQ 快速入门RabbitMQ 单机部署RabbitMQ概述常见消息模型 SpringAMQPSimpleQueue 模型WorkQueue 模型发布订阅模型发布订阅-Fanout Exchange发布订阅-DirectExchange发布订阅-TopicExchange消息转换器 初识 MQ 同步通讯 同步…

007 Linux fork()函数

前言 本文将会以提问的形式展开向你介绍fork函数 文章重点 关于fork函数,本文重点在于解决以下疑问 疑问一: 为什么fork之前的代码只有父进程执行,然而fork之后的代码父子进程都要执行 疑问二: 1、既然fork之后父子进程会执行一…

微信小程序:页面跳转传参问题

今天后端大兄弟突然拿着一个反编译过来的小程序源码,问能不能改。我心里直道好家伙,WebGIS开发的岗位,前端的活儿真是一个不少。大致看了看有几处是调整页面和接口修改的,源码部分和Vue项目语法十分相像,就临阵磨枪&am…

【java面试题】Integer对象输出结果是?

/** Copyright (c) 2006, 2023, webrx.cn All rights reserved.**/package cn.webrx;/*** <p>Project: wxbili2mp4 - Test* <p>Powered by webrx On 2023-11-14 20:28:46* <p>描述&#xff1a;<p>** author webrx [webrx126.com]* version 1.0* since …

2.3.5 交换机的VRRP技术

实验2.3.5 交换机的VRRP技术 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.交换机的基本配置 六、任务验收七、任务小结 一、任务描述 某公司的网络核心层原来采用一台三层交换机&#xff0c;随着网络应用的日益增多&#xff0c;对网络的可靠性也提出了越来…

生信分析|基因组倍型鉴定

简介 基因组倍型通常指一个生物体细胞中染色体的组合&#xff0c;即染色体数目的倍数。在生物学中&#xff0c;主要有两种类型的基因组倍型&#xff1a;单倍体和多倍体。 「单倍体&#xff08;Haploid&#xff09;&#xff1a;」 单倍体生物体的细胞中只包含每一对同源染色体的…

凸包的学习之路

学习视频选择的是&#xff1a;清华大学邓俊辉教授的《计算几何》课程 关于我为什么学习 凸包&#xff08;Convex Hull&#xff09;&#xff1f; ——在学习过程中遇到了凸包问题&#xff0c;凸包在CV领域的基础性&#xff0c;使我觉得深入了解凸包是必要的。此外&#xff0c;…

交换机基础知识之安全配置

交换机在网络基础设施中扮演着重要角色&#xff0c;它促进了设备之间数据包的流动。正因此&#xff0c;采取适当的安全措施来保护网络免受未经授权的访问和潜在攻击至关重要。本文将全面解读交换机基础安全配置知识&#xff0c;并提供实践方案&#xff0c;以保证安全的网络环境…