软考高级之系统架构师之计算机基础

概述

今天是9月28日,距离软考高级只剩37天,加油!

概念

三种周期:

  • Clock Cycle:时钟周期,CPU主频,又称为时钟频率,时钟周期是时钟频率的倒数
  • Instruction Cycle:指令周期,取出并执行一条指令的时间
  • BUS Cycle:总线周期,也就是一个访存储器或I/O端口粮作所用的时间

三者关系:一个指令周期由若干个总线周期组成,一个总线周期时间又包含有若干个时钟周期。

主频为1GHz,则说明1秒钟有1G个时钟周期,每个时钟周期为1000*1000*1000/1G=1ns

吞吐率
吞吐率指的是单位时间内完成的任务数,常用表示方式有MIPS和MFLOPS:

  • MIPS:Million Instructions Per Second,每秒处理的百万级的机器语言指令数,主要用于衡量标量机性能
  • MFLOPS:Million Floating-point Operations Per Second,每秒百万个浮点操作,不能反映整体情况,只能反映浮点运算情况,主要用于衡量向量机性能。

完成一个指令需要5个机器周期,一个机器周期为3微秒(µs),则MIPS=1/15=0.067

1秒=1000毫秒(ms)=1000000微秒(µs)=1000000000纳秒(ns)

编码及浮点数

原码、反码、补码

原码:为二进制的数,如十进制数字10的原码为0000 1010

反码:正数与原码相同,如:十进制数字10的反码0000 1010,负数为原码0变1,1变0,符号位不变。如:十进制数字-10,原码1000 1010,反码1111 0101

补码:正数的补码与原码相同,如10的补码为:0000 1010。负数的反码为补码减1,如-10的反码:1111 0101,补码:1111 0110

计算机中数字以补码储存,因为原码和反码计算不准确,而补码是准确的,补码可以直接处理正负数的加减。

浮点数

科学计数法:N=尾数*基数(的指数)

  • 浮点数各部分表示意义:N = 尾数*基数指数
    • 一般尾数用补码,阶码用移码;
    • 阶码的位数决定数的表示范围,位数越多范围越大;
    • 尾数的位数决定数的有效精度,位数越多精度越高。
      浮点数所能表示的数值范围如下:最大的正数
  • 浮点数运算规则:对阶 > 尾数计算 > 结果格式化
    • 对阶时,小数向大数看齐;
    • 对阶是通过较小数的尾数右移实现的。

流水线

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。

并行包括同时性与并发性两种含义,同时性指两个或两个以上的事件在同一时刻发生,并发性指的是两个或两个以上的事件在同一时间间隔发生。
流水线建立时间:1条指令执行时间。
流水线周期:执行时间最长的一段

一条指令的执行过程可以分3个阶段:

  • 取指:按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。
  • 分析:对指令操作码部分进行译码,按照给定的寻址方式和地址字段中的内容形成操作数地址,并用这个地址读取操作数。
  • 执行:把运算结果写到通用寄存器或主存中。

顺序执行的过程:取址 -> 分析 -> 执行
使用流水线执行过程:
在这里插入图片描述
相关考点:
流水线执行时间(理论公式):(t1+t2+..+tk)+(n-1)*∆t
流水线执行时间(实践公式):k*∆t+(n-1)*∆t
流水线吞吐率:吞吐率TP=指令数/执行时间
流水线最大吞吐率:
在这里插入图片描述
流水线加速比:顺序执行时间/流水线执行时间

开机过程

BIOS引导程序是固化在ROM芯片上的,每当开机时自动执行BIOS引导程序。主要执行如下任务:

  • 标识和配置所有的即插即用设备。如果系统有即插即用设备的BIOS,系统将搜索和测试所有安装的即插即用设备,并为它们分配DMA通道、IRQ及它们需要的其他设备
  • 完成加电自检(POST)。加电自检主要检测和测试内存、端口、键盘、视频适配器、磁盘驱动器等基本设备。有一些新版本的系统还支持CD-ROM驱动器
  • 对引导驱动器可引导分区定位。在CMOS中,用户可以设置系统的引导顺序,以便对引导驱动器的可引导分区重新定位。大多数系统的引导顺序是软件驱动,然后是硬件驱动,其次是CD-ROM驱动器
  • 加载主引导记录及引导驱动器的分区表,执行主引导记录MBR。主引导记录在硬盘上找到可引导分区后,将其分区引导记录装入内存,并将控制权交给分区引导记录。由分区引导记录定位根目录,再装入操作系统。

Cache

Cache的功能全部由硬件实现。提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。在计算机的存储系统体系中,Cache是访问速度最快的层次。使用Cache改善系统性能的依据是程序的局部性原理。

  • 时间局部性:如果一个信息项正在被访问,那么在近期很可能还会被再次访问。程序的循环,堆栈等是产生时间局部性的原因;
  • 空间局部性:指一旦程序访问某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。

工作集理论:工作集是进程运行时被频繁访问的页面合集
工作原理:依据局部性原理,把主存储器中访问概率高的内容存放在cache中。当CPU需要读取数据时,首先在cache中查找是否有所需内容,如果有,则直接从cache中读取;若没有,再从主存中读取该数据,然后同时送往CPU和cache。

如果CPU需要访问的内容大多能在cache中找到(访问命中),则可以大大提高系统性能。CPU发出访存请求后,存储器地址先被送到cache控制器以确定所需数据是否已在cache中,若命中则直接对cache进行访问,该过程称为cache的地址映射。常见的映射方法有直接映射、相联映射和组相联映射:

  • 直接相联映像:Direct Mapping,硬件电路较简单,但冲突率很高
  • 全相联映像:Fully Associative Mapping,电路难于设计和实现,只适用于小容量的cache,冲突率较低
  • 组相联映像:n路组相联映射,N-ways Set-Associative Mapping,直接相联与全相联的折中

Cache中数据装满后必须淘汰现有数据,装入新数据,淘汰算法有:随机淘汰法、先进先出法FIFO、近期最少使用淘汰法LRU。LRU平均命中率最高。

Cache写数据常用方法包含以下几类:

  • 写直达:当要写cache时,数据同时写回主存储器,也称写通、贯穿
  • 写回:CPU修改cache的某一行后,相应数据不立即写入主存,而在该行被从cache中淘汰时,才把数据写回主存储器中。
  • 标记法:对cache中的每个数据设置一个有效位。当数据进入cache后,有效位置1,当CPU要对该数据进行修改时,只需将其写入主存储器,并将该位清0。当要从cache中读取数据时,需要测试其有效位:若为1则从cache中取,否则从主存中取。

校验码

校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。

常见的校验码有:中华人民共和国居民身份证的最后一位、ISBN号码的最后一位、组织机构代码的最后一位、数据传输的正确性验证码等。

代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为减少输入错误,编码专家发明各种校验检错方法,并依据这些方法设置校验码。

奇偶校验:只检奇数位错,不能纠错。
循环校验码CRC:可查错,不可纠错,运用模二除法计算校验码。
海明校验:可查错,可纠错;海明校验码校验位计算:2r>=r+m-1

性能评估

性能指标

计算机系统的性能一般包括两个大的方面:

  • 可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度,也可以是在一段时间内,能正常工作的时间所占的百分比
  • 处理能力,可分为三类指标:吞吐率、响应时间、资源利用率,即在给定时间区间中,各种部件被使用的时间与整个时间之比。

通常,计算机系统的可用性可从故障率(Failurerate)、健壮性(Robustness)和可恢复性(Recoverability)三个方面来进行评测:

  • 故障率是指在给定的时间里,系统故障和维护事件出现的次数
  • 健壮性是指系统检测和处理故障的能力,以及系统在各种故障情况下仍然具有的工作能力
  • 可恢复性是指系统从故障状态恢复到正常状态的能力。

计算机应用系统的可移植性对推广应用来说是重要的,但对于使用单一系统的多数用户而言,可用性指标主要包括故障率、健壮性和可恢复性。

另外,不同计算机(系统、模块)的性能指标也是不尽相同,重在理解:

  • 计算机:时钟频率(主频)、高速缓存、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率、响应时间、RASIS特性、平均故障响应时间、兼容性
  • 网络:设备级、网络级、应用级、用户级、吞吐量
  • 操作系统:系统的可靠性、系统的吞吐量、系统响应时间、系统资源利用率、可移植性
  • 数据库:数据库描述功能、管理功能、查询和操纵功能、维护功能、
  • web服务器:括最大并发连接数、响应延迟、吞吐量(每秒处理的请求数)、成功请求数、失败请求数、每秒点击次数、每秒成功点击次数、每秒失败点击次数、尝试连接数、用户连接

性能评估

计算机性能评估(评价)方法基本上分为两大类,测量方法和模型方法

  • 测量方法:通过一定的测量设备或测量程序,可以直接从系统中测得各项性能指标或与之密切的相关度量,然后由它们经过一些简单的运算,求出相应的性能指标。
  • 模型方法:其基本思想是,首先对要评估的系统建立适当模型,然后求出模型的性能指标,以便对系统进行性能评估。

测量方法中经典的性能评估方法:

  • 时钟频率法:计算机的时钟频率在一定程度上反映机器速度,对于同一种机型的计算机,时钟频率越高,计算机的速度就越快,但是不同体系结构的计算机,相同频率下,其速度和性能可能会差别很大。
  • 指令执行速度法:计算机发展中,由于加法的指令速度大体上可反映出乘法、除法等其他算术运算的速度,而逻辑运算、转移指令等简单指令的执行时间往往设计成与加法指令相同,因此可以采用加法指令的运算速度来衡量计算机的速度。常用MIPS评估系统性能。
  • 等效指令速度法:也称为吉普森或混合比例计算法,是通过各类指令在程序中所占比例进行计算后得到的计算机运算速度。需要计算各类指令在程序中所占的比例。
  • 数据处理速率法:Processing Data Rate,PDR,采用计算PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。PDR主要对CPU和主存储器的速度进行度量,不适合衡量机器的整体速度,不能全面反映计算机的性能,因为它没有涉及Cache、多功能部件等技术对性能的影响。
  • 综合理论性能法:CPT,该方法是首先计算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为最终的计算机性能。采用每秒百万次理论运算(MTOPS)评估系统性能。
  • 基准程序法:把应用程序中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark)。基准程序法是目前一致承认的测试系统性能的较好方法。考虑诸如IVO结构、操作系统、编译程序的效率对系统性能的影响,

另有一说,对计算机系统的性能进行评价的方法主要有三种:

  • 测量方法:主要是通过采用各种性能数据获取方法和运行各种不同类型的基准测试程序或工具来测量目标系统的性能情况
  • 分析方法:通过为计算机系统建立一种数学模型,进而在给定输入条件下通过计算来获取目标系统的性能情况
  • 模拟方法:通过构造系统模型和工作负载模型来近似模仿目标系统,以了解系统的特性

基准程序法

大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。

真实程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。

事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。

Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。
基准程序法主要针对CPU(有时包括主存)的性能,通常也会考虑I/O结构、操作系统、编译程序的效率等对系统性能的影响。

计算机系统的性能指标是一些精度较高的数据,用户调查问卷或专家小组法只能取得一些大致的、轮廓性的数据。多数用户并没有使用多种计算机系统,难以进行比较,所以计算机系统性能指标的评价一般不通过用户调查法来确定。

阿姆达尔定律

Gene Amdahl定律:提升一个系统的一个部分的性能对整个系统有多大影响。这里的系统,可指计算机系统或别的什么系统。

当提升系统的一部分性能时,对整个系统性能的影响取决于:

  1. 这一部分有多重要
  2. 这一部分性能提升多少

计算方法:
在这里插入图片描述

参考

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

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

相关文章

idea中maven项目打包成jar,报错没有主清单属性解决方法

使用idea自带的打包可能会出现一下问题 在pom.xml中引入下面的依赖&#xff0c;即可解决 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions&…

【算法】排序——插入排序及希尔排序

目录 前言 一、排序的概念及其应用 1.1排序的概念 1.2排序的应用 1.3常见的排序算法 二、插入排序的实现 基于插入排序的优化——希尔排序&#xff08;缩小增量排序 个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 LeetCode刷题 算法专栏 前言 这…

七、装饰者模式

这里写自定义目录标题 1、项目需求2、解决方案13、解决方案24、装饰者模式定义5、装饰者模式原理6、装饰者模式解决上述需求7、装饰者模式在jdk应用的源码分析 1、项目需求 2、解决方案1 3、解决方案2 可以控制类的数量&#xff0c;不至于造成很多的类在增加或者删除调料种类…

力扣-349.两个数组的交集

Idea 使用两个哈希集合&#xff0c;其中一个用来存储第一个数组&#xff0c;第二个来存储两个数组的交集&#xff0c;因为集合自带去重功能&#xff0c;因此最后用数组来接收就好了 AC Code class Solution { public:vector<int> intersection(vector<int>& n…

十大排序——2.归并排序

这篇文章我们来讲一下十大排序中的归并排序。 目录 1.概述 2.代码实现 3.总结 1.概述 归并排序主要是运用了归并的思想。 下面具体的来讲一下归并排序的整个流程和思想。 首先&#xff0c;给你一个无序的数组&#xff0c;要求你对它进行归并排序。归并排序首先需要将这个…

Qt扩展-KDDockWidgets 的使用

KDDockWidgets 的使用 一、概述二、原理说明三、代码实例1. 项目简述2. 布局源码 一、概述 KDDockWidgets 的使用相对比较简单&#xff0c;建议直接参考 其提供的例子。 二、原理说明 在这种多窗口布局显示的使用最常用的就是这两个类&#xff0c; 也就是 MainWindow 和 Doc…

初识Java 10-1 集合

目录 泛型和类型安全的集合 基本概念 添加一组元素 打印集合 List Iterator&#xff08;迭代器&#xff09; 本笔记参考自&#xff1a; 《On Java 中文版》 在进行程序设计时我们会发现&#xff0c;程序总是会根据某些在运行时才能知道的条件来创建新的对象。这意味着&am…

C#中实现单元测试的示例流程_MSTest测试项目

一、单元测试简介 1.1、单元测试简介 在《单元测试艺术》一书中对于单元测试的定义是&#xff1a;【一个单元测试是一段代码&#xff0c;这段代码调用一个工作单元&#xff08;指&#xff1a;调用软件中的一个方法&#xff0c;这个方法执行过程中所发生的所有行为以及最后产生…

Day05-循环高级和数组

循环高级 1.无限循环 概念&#xff1a; 又叫死循环。循环一直停不下来。 for格式&#xff1a; for(;;){System.out.println("循环执行一直在打印内容"); } 解释&#xff1a; 初始化语句可以空着不写&#xff0c;表示循环之前不定义任何的控制变量。 条件判断…

maven中relativepath标签的含义

一 relative标签的含义 1.1 作用 这个<parent>下面的<relativePath>属性&#xff1a;parent的pom文件的路径。 relativePath 的作用是为了找到父级工程的pom.xml;因为子工程需要继承父工程的pom.xml文件中的内容。然后relativePath 标签内的值使用相对路径定位…

ChatGPT 在机器学习中的应用

办公室里一个机器人坐在人类旁边&#xff0c;Artstation 上的流行趋势&#xff0c;美丽的色彩&#xff0c;4k&#xff0c;充满活力&#xff0c;蓝色和黄色&#xff0c; DreamStudio出品 一、介绍 大家都知道ChatGPT。它在解释机器学习和深度学习概念方面也非常高效&#xff0c;…

matplotlib绘图实现中文宋体的两种方法(亲测)

方法一&#xff1a;这种方法我没有测试。 第一步 找宋体字体 &#xff08;win11系统&#xff09; 2.matplotlib字体目录&#xff0c;如果不知道的话&#xff0c;可以通过以下代码查询&#xff1a; matplotlib.matplotlib_fname() 如果你是Anaconda3 安装的matplotlib&#x…

uni-app打包iOS ipa文件后不上架App store为用户提供下载解决过程记录

写在前面&#xff0c;itms-services协议是什么 itms-services协议是苹果提供的一种让iOS应用在用户设备上无线安装或升级的协议。 具体来说: itms-services表示iOS应用无线安装服务的URL方案,格式为:itms-services://?actiondownload-manifest&urlMANIFEST_URL其中MANIF…

Apache Beam 2.50.0发布,该版本包括改进功能和新功能

导读我们很高兴向您介绍 Beam 的新版本 2.50.0。该版本包括改进功能和新功能。请查看此版本的下载页面。 亮点 Spark 3.2.2 被用作 Spark 运行程序的默认版本&#xff08;#23804&#xff09;。Go SDK 新增默认本地运行程序&#xff0c;名为 Prism&#xff08;#24789&#xff0…

基于web的学校二手书城系统/二手书交易系统

摘 要 本文论述了学校二手书城系统的设计和实现&#xff0c;该网站从实际运用的角度出发&#xff0c;运用了计算机网站设计、数据库等相关知识&#xff0c;网络和Mysql数据库设计来实现的&#xff0c;网站主要包括用户注册、用户登录、浏览图书、搜索图书、查看图书并进行购买…

大数据Flink(八十五):Window TVF 支持多维数据分析

文章目录 Window TVF 支持多维数据分析 一、Grouping Sets 二、​​​​​​​Rollup

【数据库】存储引擎InnoDB、MyISAM、关系型数据库和非关系型数据库、如何执行一条SQL等重点知识汇总

目录 存储引擎InnoDB、MyISAM的适用场景 关系型和非关系型数据库的区别 MySQL如何执行一条SQL的 存储引擎InnoDB、MyISAM的适用场景 InnoDB 是 MySQL 默认的事务型存储引擎&#xff0c;只有在需要它不支持的特性时&#xff0c;才考虑使用其它存储引擎。实现了四个标准的隔…

Vue2+ElementUI 静态首页案例

源码 <template><div class"app-container home"><el-row type"flex" justify"space-around" class"row-bg"><el-card class"box-card cardDiv1"><el-col :span"5"><div clas…

软考-操作系统

/4操作系统的作用 进程 进程的概念 进程是程序的一次执行过程&#xff0c;没有程序就没有进程 进程可有多个线程&#xff0c;线程可共享资源 进程的两个基本属性&#xff1a; 可拥有资源的独立单位可独立调度和分配资源的基本单位 线程可共享&#xff1a; 内存地址空间代码…

自定义Unity组件——AudioManager(音频管理器)

需求描述 在游戏开发中&#xff0c;音频资源是不可或缺的&#xff0c;通常情况下音频资源随机分布&#xff0c;各个音频的操作和管理都是各自负责&#xff0c;同时对于音频的很多操作逻辑都是大同小异的&#xff0c;这就造成了许多冗余代码的堆叠&#xff0c;除此之外在获取各类…