计算机组成结构2

概念

存储系统

解决成本-速度-容量之前的矛盾问题
寄存器–cache–内存–硬盘–外存储

在这里插入图片描述

局部性原理

  • 时间局部:相邻的时间访问同一个数据
  • 空间局部:相邻的空间地址会被连续访问

cache

cpu与主存之间,命中cache后就不需要访问主存,但是cpu还是访问内存地址,这个时候需要需要做映射转换。

映射方法:主存地址转换为cache地址,由硬件自动完成,要解决主存很大,但是cache很小的问题。

  • 直接映射,主存先分区后分块与cache等分成块编号,主存区和cache块形成一对多的关系,每个主存块只有一个固定区可存放,容易产生冲突,使Cache效率下降。
  • 全相连映射,主存任何一块与cache中任意一块对应,主存的各块可以映射到Cache的任一块中,Cache的利用率高,块冲突概率低。
  • 组组相连(类似给cache加索引),组间采用直接映射,主存和cache都进去分组,组内使用全相连映射,适度兼顾二者的优点,尽量避免二者的缺点。

在这里插入图片描述

cache替换算法

  • 随机替换 :随机数发生器产生一个替换
  • 先进先出 :最先进入cache信息替换出来
  • 最近最少使用 :最少使用cache信息替换出来
  • 优化替换:先统计cache替换情况,再一次选择替换信息

磁盘结构和参数

一个磁盘由多个盘片叠加而成。一个盘片可能会有两个盘面。,每个盘面多个同心圆,每个同心圆就是一个磁道,每个同心圆划分多个扇区,数据存放到上扇区中。

在这里插入图片描述

调度算法:寻找磁道

读取数据的时间=寻道时间+旋转时间,寻道时间最长

  • 寻道时间:磁头移动到磁道
  • 等待时间:等待读写的扇区转到磁头下方
  • 先来先服务FCFS:进程请求先后顺序
  • 最短寻道时间优先SSTF:请求的磁道与当前磁道最近优先调度,磁道相同,顺序读取扇区号
  • 扫描算法SCAN:“电梯算法”选择磁头最近的请求磁道,向上或向下一个方向移动完后掉头
  • 单向扫描算法CSCAN:不根据请求,只单向移动

输入输出技术
内存与外设接口地址的编址方法

  • 独立编址:内存地址和接口地址各自独立地址空间,指令也独立不同
  • 统一编址:公用一个地址空间,不区分指令

计算机和外设间的数据交互

  • 程序控制查询方式:cpu主动查询外设是否完成数据传输,效率低。
  • 程序中断方式:外设完成后,向cpu发送中断,等待cpu处理数据,效率相对较高。
  • DMA直接主存存取:数据传输整个过程由DMA控制器完成,在主存与外设直接建立数据通道,效率很高。

一条指令结束后才会响应中断,一个总线周期结束后才会响应DMA请求

总线结构

总线是指计算机设备和设备之间传输信息的公共数据通道,总线上的设备所有共享

  • 内部总线:内部芯片总线,芯片与处理器之间
  • 系统总线:计算机各部分的连接(PCI)
    • 数据总线:并行传输数据位数
    • 地址总线:系统可管理的内存空间大小
    • 控制总线:传输控制命令
  • 外部总线:微机和外部设备的连接(usb、SCSI)

计算

cache命中率及平均时间

90%几率命中读取cache时间为一次1ns,10%不命中读取内存数据时间1000ns,读取一次的平均时间?

(1ns * 90%+1000ns * 10%)ns

磁盘
在这里插入图片描述

  • 不需要考虑寻道时间,磁头已经在R0磁道
  • 每个扇区读取时间=33/11=3ms
  • 顺序旋转处理记录,而读取+执行=6ms,必然无法顺序执行,因为执行3ms后旋转已经转到R2,每次读取需要旋转一次从R0-R2-R4…R10-R1-R3…-R9,为了顺序执行,就需要每次旋转,以此类推,因为每次磁道都不是顺序停留在想要的位置上。
  • 3 R0读取时间+3 R0执行时间+(10 * 3 旋转一次等待时间+3 读取时间+3 执行时间)* 10 旋转10次才能都读取完=6+36*10=366
  • 优化逻辑记录间隔存放R0-R2-R4…-R9,结果就是(3+3)*11=66

某系统中磁盘的磁道数为200 (0~199),磁头当前在184号磁道上。用户进程提出的磁盘访问请求对应的磁道号依次为184、187、176、182、199。若采用最短寻道时间优先调度算法 (SSTF) 完成磁盘访问,则磁头移动的距离(磁道数)是( )。

最近排序是:184-182-187-176-199(187对比176和199分别距离是11和12),计算 |184-184|+|182-184|+|187-182|+|176-187|+|199-176|=0+2+5+11+23=41

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

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

相关文章

C++相关概念和易错语法(3)(类的声明和定义、空指针分析、this指针)

1.类的声明和定义 注意类的声明和定义分离的时候,在定义处要使用域作用限定符,否则函数声明链接时的定位不到函数的定义。 这些成员变量、函数的作用于这个类域,将功能集成在一起,这体现出封装的思想。 在区分类的定义和声明时&…

Vue3_2024_7天【回顾上篇watch常见的后两种场景】___续

Vue3中监听多条数据的两种使用 1.watch【使用上一章写法,监听两个属性,然后执行相应操作…】 2.watchEffect【相对于使用watch,watchEffect默认页面初始加载,有点类似加配置:立即执行 immediate】 代码: …

这个故事有点长 - 东方绿舟

这个故事有点长 - 东方绿舟 这个地方很大,游玩一天是没有问题。东方绿舟的1号门入口处,是一个人工瀑布,上边写着东方绿舟几个大字。远远看去,这个瀑布非常壮观,水的流淌让人感到凉爽,很适合在那里拍照打卡。…

使用注意力机制的 LSTM 彻底改变时间序列预测

目录 一、说明二、LSTM 和注意力机制简介三、为什么要将 LSTM 与时间序列注意力相结合?四、模型架构训练与评估 五、验证六、计算指标七、结论 一、说明 在时间序列预测领域,对更准确、更高效的模型的追求始终存在。深度学习的应用为该领域的重大进步铺…

喜讯 ChatGPT 3.5 免登录|免注册就可以使用了

https://chat.openai.com/ 直接访问openai 官网直接使用,当然还是要魔法的,不用再去用别人二次开发的,还有次数限制,还有开会员😅才能用的。😀试用啦一下,基本秒回答,能力也是在线的…

llama-factory简介

llamafactory是什么,能干什么 LLaMA-Factory 是一个易于使用的大规模语言模型(Large Language Model, LLM)微调框架,它支持多种模型,包括 LLaMA、BLOOM、Mistral、Baichuan、Qwen 和 ChatGLM 等。该框架旨在简化大型语…

【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案

【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案 大家好 我是寸铁👊 总结了一篇【Python】无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案✨ 喜欢的小伙伴可以点点关注 💝 前言 今天寸铁…

JSON的定义、基本使用二

<script>//定义jsonvar json{"name" : "张三","age" : "18岁","addr" : ["北京","上海","天津"]}//获取数据console.log(json.age)console.log(json.name)console.log(json.addr)</…

渗透测试练习题解析 5(CTF web)

1、[安洵杯 2019]easy_serialize_php 1 考点&#xff1a;PHP 反序列化逃逸 变量覆盖 【代码审计】 通过 GET 的方式获取参数 f 的值&#xff0c;传递给变量 function 定义一个过滤函数&#xff0c;过滤掉特定字符&#xff08;用空字符替换&#xff09; 下面的代码其实没什么用…

Go语言如何处理文件

1.文件的重要性 文件不过是硬盘中的数据,看起来好像没什么了不起,但实际上,文件能够让程序员管理配置、存储程序的状态乃至从底层操作系统中读取数据。 UNIX型操作系统的一个重要特征是,将一切都视为文件。这意味着在操作系统看来,从键盘到打印机的所有东西都可像文件那样…

多线程(31)StampedLock和ReadWriteLock

StampedLock 是 Java 8 引入的一种新的锁机制&#xff0c;位于 java.util.concurrent.locks 包下。它可以被认为是 ReadWriteLock 的一个改进版&#xff0c;提供了一种乐观的读锁策略&#xff0c;这种策略可以在某些场景下减少锁的竞争&#xff0c;从而提高性能。与 ReadWriteL…

【Java】jdk1.8 Java代理模式,Jdk动态代理讲解(非常详细,附带class文件)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、什么是代理模式 想要学代理模式&#xff0c;我们就要先弄清一个概念“什么是代理”&#xff1f; 在我们的现实生活中&#xff0c;你或许不少听过关于代理的名词&#xff0c;如&#xff1a;代理商。那什么又叫做代理…

Rust---复合数据类型之结构体

目录 结构体的使用输出结果 结构体简化创建结构体更新语法元组结构体单元结构体&#xff08;unit struct&#xff09;结构体中的引用使用#[derive(Debug)]再次介绍 代码综合展示 与元组不同的是&#xff0c;结构体可以为内部的每个字段起一个富有含义的名称&#xff0c;因此无需…

【74LS191/48为可预置的四位二进制加/减法计数器3-9循环显示】2022-3-19

缘由我有电路原理图&#xff0c;想用proteus仿真&#xff0c;但是数码管不亮-嵌入式-CSDN问答 74LS191为可预置的四位二进制加/减法计数器 74ls191引脚功用 RCO进位/借位输出端 MAX/MIN进位/借位输出端 CTEN计数操控端 QA-QD计数输出端 U/D计数操控端 CLK时钟输入端 LO…

【Docker笔记03】【MySQL 与 Redis的主从安装】

一、前言 本系列是根据 B 站 尚硅谷 Docker 视频 学习记录笔记。因为没有视频课件&#xff0c;部分内容摘自 https://www.yuque.com/tmfl/cloud/dketq0。 本系列仅为自身学习笔记记录使用&#xff0c;记录存在偏差&#xff0c;推荐阅读原视频内容或本文参考笔记。 二、Mysql …

如何加速Docker镜像的构建过程?

要加速Docker镜像的构建过程&#xff0c;你可以考虑以下几种方法&#xff1a; 使用多阶段构建&#xff1a;多阶段构建可以帮助你减少镜像的大小&#xff0c;从而加速构建过程。你可以将构建过程分为多个阶段&#xff0c;每个阶段只保留必要的文件和依赖&#xff0c;最终构建出一…

10-用PySpark建立第一个Spark RDD

目录 RDD概念RDD特点建立RDD的方式不同工具建立RDD的方式使用PySpark Shell(交互环境)建立RDD使用VSCode编程建立RDD使用Jupyter Notebook建立RDD 总结 PySpark实战笔记系列第一篇 RDD概念 Apache Spark的核心组件的基础是RDD。所谓的RDD&#xff0c;即弹性分布式数据集&#…

Linux 关闭防火墙命令(新手)

关闭防火墙 查看防火墙状态 systemctl status firewalld.service 临时关闭防火墙&#xff08;重启失效&#xff09; systemctl stop firewalld.service 永久关闭防火墙 systemctl disable firewalld.servicesudo systemctl enable firewalld&#xff0c;这种方式输入命令…

施耐德 Unity Pro PLC 编程软件介绍

Unity Pro 软件基本介绍 Unity Pro 是施耐德中大型 PLC 的编程软件&#xff08;<–> 对应西门子 Step7&#xff09; 支持的 PLC&#xff1a;施耐德中大型 PLC 中型 PLC&#xff1a;Premium、M340&#xff08;<–> 对应西门子 S7-300、S7-1200&#xff09;大型 PL…

【C++】探索C++中的类与对象(上)

​​ &#x1f331;博客主页&#xff1a;青竹雾色间. &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ✨人生如寄&#xff0c;多忧何为 ✨ C是一种强大的编程语言&#xff0c;其面向对象的特性使得代码结构更加清晰、易于维护和扩展。在C中&#xff0c;类与…