软件设计师学习笔记7-输入输出技术+总线+可靠性+性能指标

news2024/11/12 6:39:01

目录

1.输入输出技术

1.1数据传输控制方式

1.2中断处理过程

2.总线

3.可靠性

3.1可靠性指标

3.2串联系统与并联系统

3.3混合模型

4.性能指标


1.输入输出技术

即CPU控制主存与外设交互的过程

1.1数据传输控制方式

(1)程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/0能力不高,严重影响CPU的利用率。

其中,无条件传送是系统默认所有I/0都是准备好的,直接开始操作;而程序查询是CPU每一次都去询问各个I/O设备是否准备好,只要有一个设备没准备好就要重复查询,所以严重影响CPU利用率

(2)程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。(即数据的传输与CPU是一个并行的过程)

简单来讲就是,老师(CPU)上课讲课,让你做笔记,你做笔记的过程不影响老师继续讲课,只需要做完告诉老师即可

(3)DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/0接口开始DMA传输)

简单来讲,就是DMA相当于助教,CPU只负责初始化,DMA打工就行

(4)效率:I/O处理机 > 通道方式 > DMA方式 > 程序中断方式 > 程序控制(查询)方式

前两者知道有这个东西就行

1.2中断处理过程

(1)CPU无需等待也不必查询I/0状态

(2)当I/0系统准备好以后,发出中断请求信号通知CPU

(3)CPU接到中断请求后,保存正在执行程序的现场(用栈保存现场),打断的程序当前位置即为断点

(4)(通过中断尚量表)转入I/O中的服务程序的执行,完成I/O系统的数据交换(中断向量表用于保存中断服务程序的入口地址)

(5)返回被打断的程序继续执行(恢复现场)

2.总线

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。(分时双工,性能不是很高)

总线的分类:

数据总线(DataBus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。

地址总线(AddressBus):用来指定在RAM(RandomAccessMemory)之中储存的数据的地址。

控制总线(ControlBus):将微处理器控制单元(ControlUnit)的信号,传送到周边设备。

3.可靠性

3.1可靠性指标

平均无故障时间:MTTF = 1 / λ, λ为失效率

平均故障修复时间:MTTR = 1 / μ, μ为修复率

平均故障间隔时间:MTBF = MTTR + MTTF

系统可用性 = MTTF / MTBF * 100%

在实际应用中,一般MTTR很小,所以通常认为MTBF ≈ MTTF

可靠性可以用MTTF / (1 + MTTF)来度量

3.2串联系统与并联系统

跟物理上的电路差不多,其中方块为系统中的某一个部件

(1)串行系统

该图片来自希赛软考

R = R1 * R2 * …… * Rn,其中R为可靠性

(2)并行系统

通过部件的冗余来提高容错性和可靠性

该图片来自希赛软考

R = 1 - (1 - R1) * (1 - R2) * …… * (1 - Rn),其中R为可靠性

3.3混合模型

该图片来自希赛软考

4.性能指标

(1)字长和数据通路宽度

字长:表示计算机一次能够读取的数据长度

数据通路宽度:指一次性数据线路能够通过的数据量

两者一般以bit为单位

(2)主存容量和存取速度

主存容量:eg:在16 G + 512 G的电脑里,主存就是16 G

存取速度:从主存读数据到读完回来,完成该操作的时间

(3)运算速度

运算速度是指计算机系统处理数据和执行指令的速度。主要由主频和浮点运算速度决定。

(5)吞吐量与吞吐率

吞吐量:某一个时间间隔内所完成的任务量

吞吐率:单位时间内完成的任务量

(6)响应时间(RT)(Response Time)与完成时间(TAT)

响应时间:从提交请求到完成请求的时间

(7)兼容性

一般为向下兼容

(8)主频与CPU时钟周期

主频:eg: 2.4 GHz表示一秒内能够有2.4 G次脉冲

CPU时钟周期 = 1 / 主频

(9)CPI(clock per instruction)与IPC(instruction per clock)

CPI:平均每条指令的平均时钟周期个数

IPC:每(时钟)周期运行指令条数

(10)MIPS(Million Instruction Per Second)与MFLOPS(Million Floating-point Operations per Second)

MIPS:百万条指令每秒

MIPS = 指令条数 / (执行时间 * 10 ^ 6) = 主频 / CPI = 主频 * IPC

MFLOPS:每秒百万个浮点操作

MFLOPS = 浮点操作次数 / (执行时间 * 10 ^ 6)

注:此处的指令条数和浮点操作次数都是以百万为单位,所有需要除以10 ^ 6

声明:笔记内容参考自希赛软考

上一篇:软件设计师学习笔记6-存储系统

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

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

相关文章

使用windeployqt和InstallShield打包发布Qt软件的流程

前言 Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程; 使用windeployqt打包Qt编译后的程序 Qt程序…

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理(问过)HTTP/1.1 新特性HTTP/2.0 与 RPC(问过)GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手(问过)为什么每次TCP 连…

Java的异常与错误

对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别? Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch&#x…

浅析Linux SCSI子系统:IO路径

文章目录 概述scsi_cmd:SCSI命令result字段proto_op字段proto_type字段 SCSI命令下发scsi_request_fnscsi_dev_queue_readyscsi_host_queue_ready SCSI命令响应命令请求完成的软中断处理 相关参考 概述 SCSI子系统向上与块层对接,由块层提交的对块设备的…

桌面图标不显示

问题 桌面图标不显示 解决办法 鼠标 右击->选择-查看->显示桌面图标

学习创建第一个 React 项目

目标 本篇的目标是配置好基础的环境并创建出第一个 React 项目。 由于之前没接触过相关的知识,所以还需要了解其依赖的一些概念。 步骤主要参考First React app using create-react-app | VS code | npx | npm - YouTube 0. 简单了解相关概念 JavaScript 一种语…

基于未来搜索算法优化的BP神经网络(预测应用) - 附代码

基于未来搜索算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于未来搜索算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.未来搜索优化BP神经网络2.1 BP神经网络参数设置2.2 未来搜索算法应用 4.测试结果:5…

MLCC产生噪音的原因及解决方案

1.内部构造及工作原理 MLCC是Multilayer Ceramic Capacitor多层片式陶瓷电容 决定电容容值大小的主要参数: 真空介电率 相对介电常数K:和MLCC使用材料有关的常数 有效面积S 介电层厚度d 堆叠层数N 所以面积越大堆叠层数越多的MLCC容值越高 2.MLCC产生啸…

shell数据结构

less可以创建一个文件分页 3次a,是不是连续的 重定向输出>会清空文件内容 cp一份新的,或者新建一个 journalctl 查看启动日志 将前面id传给 xargs 通过journalctl -b 查找对应的日志, pi好像的地址 ??&#xff1f…

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part III

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022openCV4.8.0) Part III 用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022openCV4.8.0) Part I_松下J27的博客-CSDN博客 用Cmake build OpenCV后&…

C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)

文章目录 本栏简介1. 什么是设计模式2. GOF 设计模式3. 从面向对象谈起4. 深入理解面向对象5. 软件设计固有的复杂性5.1 软件设计复杂性的根本原因5.2 如何解决复杂性 ? 6. 结构化 VS. 面向对象6.1 同一需求的分解写法6.1.1 Shape1.h6.1.2 MainForm1.cpp 6.2 同一需求的抽象的…

时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)

时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价) 目录 时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于TSO-XGBoost金枪鱼算…

Android学习之路(11) ActionBar与ToolBar的使用

自android5.0开始,AppCompatActivity代替ActionBarActivity,而且ToolBar也代替了ActionBar,下面就是ActionBar和ToolBar的使用 ActionBar 1、截图 2、使用 2.1、AppCompatActivity和其对应的Theme AppCompatActivity使用的是v7的ActionBa…

数据分析基础(1)——超实用‼️Excel 常用函数和实用技巧

学习教程:☑️ 懒人Excel - Excel 函数公式、操作技巧、数据分析、图表模板、VBA、数据透视表教程 目录 一、Excel知识体系✨ 二、Excel 常用函数💡 三、Excel 技巧 🤔 补充: 1、自学数据分析学习路线 2、数据查询网站 一、…

服务器安全-增加clamav杀毒

1.安装epel源 yum install epel-release 2.安装 clamav yum install clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd pcre* gcc zlib zlib-devel libssl-devel libssl openssl …

代码随想录第32天|122.买卖股票的最佳时机 II,55. 跳跃游戏 ,45. 跳跃游戏 II

122.买卖股票的最佳时机 II 122. 买卖股票的最佳时机 II 思路比较简单 class Solution {public int maxProfit(int[] prices) {int res0,sum0;for(int i0;i<prices.length-1;i){if(prices[i1]-prices[i]>0){sumprices[i1]-prices[i];}ressum>res?sum:res;}return …

比较重合点的排斥能

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有2个1&#xff0c;B中有1个1&#xff0c;有一个点重合&#xff0c;排列组合&#xff0c;统计迭代次数并排序。 得到数据 构造平均列A 构造平均列…

JDK介绍

JDK,JRE和JVM之间的关系 JVM是运行环境&#xff0c;JRE是含运行环境和相关的类库&#xff0c;跟node环境是一个意思 JDK目录介绍 目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件include该路径下存放了一些…

DevOps系列文章 之 Python基础

流程控制和循环 if语句 它由三部分组成: 关键字本身, 用于判断结果真假的条件表达式, 以及当表达式为真或者非零时执行的代码块 可支持else和elif;条件表达式并不需要用括号括起来 1、标准if 条件语句的语法如下&#xff1a; if expression:expr_true_suite 如果表达式的值…

Java获取环境变量和运行时环境信息和自定义配置信息

System.getenv() 获取系统环境变量 public static void main1() {Map<String, String> envMap System.getenv();envMap.entrySet().forEach(x-> System.out.println(x.getKey() "" x.getValue())); } System.getenv() 获取的是操作系统环境变量列表&…