3、计算机的执行过程

三、存储器
1、存储器的分类
按存储器介质份分类
半导体存储器(TTL(集成度低、功耗高、速度快)、MOS(功耗低,集成度高))。U盘等;易失
磁表面存储器(磁头、载磁体)。如磁盘、磁带等;非易失
磁芯存储器(硬磁材料、环状元件);非易失
光盘存储器(激光、磁光材料);非易失
按存取方式分类
存取时间与物理地址无关(随机访问)
随机存储器 在程序的执行过程中可读可写
只读存储器 在程序的执行过程中只读
存取时间与物理地址有关(串行访问)
顺序存取存储器 磁带
直接存取存储器 磁盘
在计算机中的作用分类
主存储器
RAM(可读可写);静态RAM、动态RAM
ROM(只读);MROM、PROM、EPROM、EEPROM
辅助存储器 磁盘、磁带、光盘
Flash Memory
高速缓冲存储器(Cache)
2、存储器的层次结构
存储器三个主要特性:速度 容量 价格/位

缓存用来解决主存与CPU速度差距太大的问题,辅存用来解决主存容量问题

3、主存储器
主存的基本组成

主存与CPU的联系

分类
随机存储器 RAM(可读可写);静态RAM、动态RAM
只读存储器 ROM;MROM、PROM、EPROM、EEPROM
提高访存速度的措施
采用高速器件
采用层次结构 Cache-主存
调整主存结构
4、高速缓冲存储器
为了避免CPU出现空等现象,用在CPU与主存之间。

4.1、缓存的工作原理

    主存和缓存中都有字块,通过字块号主存与缓存想和关联,关联的字块中存放相同数据。CPU想读写主存某字块时,实际去读写缓存中与之对应的字块。缓存的结构如下图:

读操作过程:

写操作过程: CPU直接写到缓存中,关键点在于保证缓存与主存的一致性。
写直达法:
写操作时数据既写入cache又写入主存
写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
写回法(Write-back)
写操作时只把数据写入Cache而不写入主存,当Cache数据被替换出去时才写回主存
写操作时间就是访问Cache的时间,Cache块退出时,被替换的块需写回主存增加了Cache的复杂性
缓存的改机
增加Cache的级数,片载(片内)Cache,现在系统中基本都是三级缓存。
统一缓存和分立缓存,指令Cache 数据Cache,与指令执行的控制方式有关(是否是流水线)。
4.2、缓存与主存的地址映射
直接映射(离CPU近就采用这种方式)某一主存块只能固定映射到某一缓存块 不灵活、速度快

全相连映射 某一主存块能映射到任一缓存块 成本高、速度低

组相连映射 速度快、cache的命中率高

Cache中主存块的替换算法
随机算法(RAND):随机地确定替换的 Cache块。它的实现比较简单,但没有依据程序访问的局部性原理,故可能命中率较低
先进先出算法(FIFO):选择最早调入的行进行替换。它比较容易实现,但也没有依据程序访问的局部性原理,可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入 Cache的块替换掉。
近期最少使用算法(LRU):依据程序访问的局部性原理选择近期内长久未访问过的存储行作为替换的行,平均命中率要比FFO要高,是堆栈类算法。
LRU算法对每行设置一个计数器, Cache每命中一次,命中行计数器清0,而其他各行计数器均加1,需要替换时比较各特定行的计数值,将计数值最大的行换出。
最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行换出。每行也设置一个计数器,新行建立后从0开始计数,每访问一次,被访问的行计数器加1,需要替换时比较各特定行的计数值,将计数值最小的行换出。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

90天玩转Python—05—基础知识篇:Python基础知识扫盲,使用方法与注意事项

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

SSM整合----第一个SSM项目

文章目录 前言一、使用步骤1.引入库2.建表3 项目结构4 web.xml的配置5 配置数据源6 SpringMVC配置7 配置MyBatis Mapper8 书写控制类 总结 前言 提示:这里可以添加本文要记录的大概内容: SSM整合是指Spring、SpringMVC和MyBatis这三个框架的整合使用。…

MTK i500p AIoT解决方案

一、方案概述 i500p是一款强大而高效的AIoT平台,专为便携式、家用或商用物联网应用而设计,这些应用通常需要大量的边缘计算,需要强大的多媒体功能和多任务操作系统。该平台集成了Arm Cortex-A73 和 Cortex-A53 的四核集群,工作频…

【论文速读】| 大语言模型平台安全:将系统评估框架应用于OpenAI的ChatGPT插件

本次分享论文为:LLM Platform Security: Applying a Systematic Evaluation Framework to OpenAI’s ChatGPT Plugins 基本信息 原文作者:Umar Iqbal, Tadayoshi Kohno, Franziska Roesner 作者单位:华盛顿大学圣路易斯分校,华盛…

web安全学习笔记(7)

记一下第十一节课的内容。 这节课主要学习post传参和js弹窗与跳转 一、post传参 1.简单的post传参介绍 将index.php重命名为login.php,并将login.html从template文件夹下拿到根目录下,并删除template目录。 将login.html中内容改为如下所示&#xf…

Ubuntu下TexStudio如何兼容中文

怎么就想起来研究一下这个? 我使用大名鼎鼎的3Blue1Brown数学动画引擎Manim,制作了一个特别小的动画视频克里金插值。在视频中,绘制文字时,Manim使用到了texlive texlive-latex-extra这些库。专业的关系,当年的毕设没…

一个更难破解的加密算法 Bcrypt

BCrypt是由Niels Provos和David Mazires设计的密码哈希函数,他是基于Blowfish密码而来的,并于1999年在USENIX上提出。 除了加盐来抵御rainbow table 攻击之外,bcrypt的一个非常重要的特征就是自适应性,可以保证加密的速度在一个特…

设计模式:生活中的迭代器模式

迭代器模式可以通过日常生活中的餐厅菜单遍历来类比。想象一下,你走进一家餐厅,服务员给了你一本菜单。这本菜单就像是一个聚合对象,它包含了各种菜品。你可以一页一页地翻阅菜单,这个翻阅的过程就像是使用迭代器来遍历聚合对象的…

linux学习:gcc编译

编译.c gcc hello.c -o hello 用gcc 这个工具编译 hello.c,并且使之生成一个二进制文件 hello。 其中 –o 的意义是 output,指明要生成的文件的名称,如果不写 –o hello 的话会生成默 认的一个 a.out 文件 获得 C 源程序经过预处理之后的文…

书生·浦语训练营二期第三次笔记-茴香豆:搭建你的 RAG 智能助理

RAG学习文档1: https://paragshah.medium.com/unlock-the-power-of-your-knowledge-base-with-openai-gpt-apis-db9a1138cac4 RAG学习文档2: https://blog.demir.io/hands-on-with-rag-step-by-step-guide-to-integrating-retrieval-augmented-generation-in-llms-a…

C/C++ std::list 插入时即整理顺序(ASC升序)

下面是一个随机的 packet(帧)插入函数,ASC升序,按 “packet_seq” 来控制成员之间的顺序,该函数优化了,倾向头、倾向尾。 即: 根据 packet_seq 可以得出,插入位置的最短距离&#x…

【JavaScript】如何在npm中切换源以及使用指定源安装依赖

忘不掉的是什么我也不知道 想不起当年模样 看也看不到 去也去不了的地方 也许那老街的腔调是属于我的忧伤 嘴角那点微笑越来越勉强 忘不掉的是什么我也不知道 放不下熟悉片段 回头望一眼 已经很多年的时间 透过手指间看着天 我又回到那老街 靠在你们身边渐行渐远 …

SpringBoot中实现阿里云验证码

要在SpringBoot中实现阿里云验证码发送,可以按照以下步骤进行: 注册阿里云账号:首先,你需要在阿里云官网注册一个账号,并登录到阿里云控制台。 创建短信服务:在阿里云控制台中,选择"短信服…

C#/.NET/.NET Core推荐学习书籍(24年4月更新,已分类)

前言 古人云:“书中自有黄金屋,书中自有颜如玉”,说明了书籍的重要性。作为程序员,我们需要不断学习以提升自己的核心竞争力。以下是一些优秀的C#/.NET/.NET Core相关学习书籍(包含了C#、.NET、.NET Core、Linq、EF/E…

云原生安全当前的挑战与解决办法

云原生安全作为一种新兴的安全理念,不仅解决云计算普及带来的安全问题,更强调以原生的思维构建云上安全建设、部署与应用,推动安全与云计算深度融合。所以现在云原生安全在云安全领域越来受到重视,云安全厂商在这块的投入也是越来…

Stable Diffusion初级教程

一、入门篇 1. 理解基本概念 扩散模型(Diffusion Models):扩散模型是一种生成模型,通过逐步添加噪声到数据样本中,然后学习如何逐步去除这些噪声来恢复原始数据。Latent Diffusion Model (LDM):LDM是Stab…

【华为OD机试】需要打开多少监视器(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

34-4 CSRF漏洞 - CSRF跨站点请求伪造

一、漏洞定义 CSRF(跨站请求伪造)是一种客户端攻击,又称为“一键式攻击”。该漏洞利用了Web应用程序与受害用户之间的信任关系,通过滥用同源策略,使受害者在不知情的情况下代表攻击者执行操作。与XSS攻击不同,XSS利用用户对特定网站的信任,而CSRF则利用了网站对用户网页…

HiveSQL如何生成连续日期剖析

HiveSQL如何生成连续日期剖析 情景假设: 有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过…

C++:MySQL的事务概念与使用(四)

1、事务的概念 定义:事务是构成单一逻辑工作单元的操作集合,要么完整的执行,要么完全不执行。无论发生何种情况,DBS必须保证事务能正确、完整的执行。 性质:事务的四大ACID性质。 原子性(Atomicity):一个事…