软考——软件设计师中级2023年11月备考(1.计算机组成原理)
一、计算机组成原理
1.数据的表示
1.1 十进制转R进制
方法:对十进制数除R取余,最后对余数取倒序
如:

1.2 原码反码补码

1.3 浮点数

1.4 校验码 —— 海明码 (非重点,了解即可)
海明码的构成方法: 在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。

n = 16 , 根据关系式依次带入校验位k:
当K=4时,
- 1
16 + 4 X
当k= 5 时,
√
最终选C
2. CPU
2.1 计算机体系结构——五大部件


- 例如 买手机或平板时 ,6+128G或8+128G等,6/8相当于计算机的主存(主存储器),128G相当于计算机的辅存(辅助存储器)
- 计算机的主机包括两大部件:CPU和内存(主存储器)。而对于声卡、显卡、鼠标键盘这些都是属于外设。
2.2 主存储器

2.3 运算器

- 助记:ALU 算数 逻辑 单元(arithmetical logic unit)、register(寄存器)、I(instruction)指令、
- 数据缓冲寄存器 DR:作为CPU和内存、外设之间数据传送的中转站,作为CPU和内存、外设之间在操作速度上的缓冲。
2.4 控制器

3. Flynn分类法

- !!! 多指令流单数据流:理论上存在而实际上不存在
- Flynn分类法中主要有两个指标:一个是指令流,一个是数据流。指令流为机器执行的指令序列;数据流是由指令调用的数据序列。无论是指令流还是数据流,它们都分为两种类型:单、多。
4. 指令系统
-
指令
指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位,由二进制表示。
一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。
-
指令格式
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。
一条指令通常包括操作码字段和地址码字段两部分:

-
寻址方式 !!

数据寻址:(速度:快->慢)

-
CISC(复杂指令集 计算机)和RISC(精简指令集计算机)

-
指令的流水处理
指令控制方式有 顺序方式、重叠方式和流水方式。
流水方式:是指并行性或并发性嵌入计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
--> 取指 --> 分析 --> 执行 -->

下图:左图是 未使用流水线执行指令情况; 右图是 使用流水线执行指令情况

例:1.流水线周期计算,n条指令全部执行完毕所需时间计算

解:
流水线周期: 2ns(纳秒) (注:流水线周期是指在(取指、分析、执行)三个阶段中时间最长的一段)
1条指令执行时间):2ns + 2ns + 1ns = 5ns
100条指令全部执行完毕:5ns + (100 - 1) * 2ns = 203ns
吞吐率:TP = 100 / 203
0.5
完成100条指令,加速比:S = 5 * 100 / 203 = 2.46 (如果不使用流水线,则采用顺序执行的方法)
例2:吞吐率计算

-
例3 流水线的加速比

5. 存储系统
5.1 存储系统的层次结构

- 在上图中,存储速度最快、效率最高的就是寄存器,它位于CPU中,在CPU中,拥有运算器和控制器,而在运算器和控制器中,就会存在相应的寄存器。而寄存器的容量是极小的,但是速度非常快。
主存 — 辅存:实现虚拟存储系统,解决了主存容量不够的问题。
Cache — 主存:解决了主存与CPU速度不匹配的问题。由硬件自动完成

5. 2 存储器的分类
5.2.1 按存储器所处的位置分类:
- 内存(主存):设在主机内或主板上,用来存放机器当前运行所需要的程序和数据,以便向CPU提供信息。相对于外存,其特点是容量小、速度快。
- 外存(辅存):如磁盘、磁带、光盘和U盘等,用来存放当前不参加运行的大量信息,而在需要时调入内存。容量大但速度慢
5.2.2 按材料分类
- 磁存储器:用磁性介质做成,如磁芯、磁泡、磁膜、磁鼓、磁带及磁盘等。
- 半导体存储器:根据所用元件可分为:双极型和MOS型;根据数据是否需要刷新可分为:静态和动态。
- 光存储器:利用光学方法读/写数据的存储器,如光盘
5.2.3 按工作方式分类
- 读/写存储器(RAM):既能读取数据也能存入数据的存储器。
- 只读存储器:工作过程中仅能读取的存储器。
根据数据的写入方式又可细分为:ROM、PROM、EPROM、EEPROM等。
- 固定只读存储器(ROM):这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制。
- 可编程的只读存储器(PROM):其中的内容可以由用户一次性写入,写入后不能再修改。
- 可擦除可编程的只读存储器(EPROM):其中的内容既可以读出,也可以由用户写入,写入后还可以修改,紫外线照射擦除信息。
- 电擦除可编程的只读存储器(EEPROM):与EPROM相似,既可以读出,也可以写入,只不过这种存储器采用电擦除的方式进行数据的改写。
- 闪速存储器(FM)(Flash Memory):简称闪存,其特性介于EPROM和EEPROM之间,类似于EEPROM,也可使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM。
5.3 高速缓存Cache
5.3.1 局部性原理
- 空间局部性:在最近的未来要用到的 信息(包括指令和数据),很可能与现在正在使用的信息在存储空间上是临近的。(即:指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。)
例如:数组元素、顺序执行的指令代码
- 时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息。
例如:循环结构里面的指令代码
- 基于局部性原理,不难想到,可以把CPU目前访问到的地址“周围”的部分数据放到Cache中,以提高访问效率。
- 使用Cahe改善系统性能的依据是程序的局部性原理
- 在计算机的存储体系中, Cache是访问速度最快的层次。
5.3.2 高速缓存中的地址映像方法
要把主存中的地址映射为Cache存储器里面的地址,地址映像方法有三种:
- 直接映像:指主存的块与Cache块的对应关系是固定的。优点是地址变换简单,缺点是灵活性差、Cache块冲突率高。

- 全相联映像:允许主存的任一块可以调入Cache存储器的任何一个块的空间中。优点是Cache的位置不受限制,十分灵活,缺点是无法从主存块号中直接获得Cache的块号,访问速度慢、地址变换较复杂、成本太高。

- 组相联映像:是前两种方式的折衷方案,具体方法是将Cache先分成组再分成块。即组间采用直接映像方式、组内的块采用全相联映像方式。

5.3.3 替换算法
选择替换算法的目标是使Cache获得最高的命中率。常用的替换算法有以下几种:
- 随机替换(RAND)算法:用随机数发生器产生一个要替换的块号,将该块替换出去。
- 先进先出(FIFO)算法:将最先进入的Cache信息块替换出去。
- 近期最少使用(LRU)算法:将近期最少使用的Cache中的信息块替换出去。这种算法较先进先出算法要好些,但此法也不能保证过去不常用的将来也不常用。
- 优化替换(OPT)算法:先执行一次程序,统计Cache的替换情况。有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换,达到最有目的。
5.3.4 Cache的性能分析


试题12:A
A:Cache中的内容也是主存中有的,并没有“扩大”
试题17:D
A、B:Cache和主存之间是由计算机硬件完成的,并不是操作系统,也不是通过编程
试题19:A
Cache总结:
- Cache位于CPU和主存之间由硬件来实现,容量小,速度比主存块5~10倍,由快速地半导体存储器制成,是主存的副本,无法扩充主存的容量。
5.4 主存
5.4.1 主存的编址


解:
K =
, M =
, G =
第(1)问:B
内存地址从AC000H到C7FFFH(两个十六进制数进行加减,再加1),C7FFFH-AC000H = 1BFFFH(因为十六进制,所以每借一位加16),再加1,得1C000H,(将其转换成K单位,要对结果除以1024)。将其转为十进制:(0×
+ 0×
+ 0×
+ C×
+ 1×
)/1024=112K。
第(2)问:A
总容量为112K×16bit,该芯片每个存储单元存储位数:(112K x 16bit) / (28 x 16K) = 4bit
5.5 硬盘(磁盘)(了解公式即可)

5.6 总线系统

根据总线所处位置不同,分为三种类型:
- 片内总线:是芯片内部的总线。它是CPU芯片内部寄存器和寄存器之间、寄存器与ALU之间的公共连接线。
- 系统总线:是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。按系统总线传输信息内容的不同,又分为3类:数据总线、地址总线和控制总线。
- 通信总线
6.输入输出技术
CPU与外设之间的数据传送方式:
6.1 直接程序控制方式
直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方法分为:无条件传送和程序查询方式两种情况。
- 无条件传送方式:(无条件地与CPU交换数据)在此情况下,外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。
- 程序查询方式:(先通过CPU查询外设状态,准备好之后再与CPU交换数据)在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据
6.2 中断方式
对于程序控制I/O的方法,其主要的缺点:CPU必须等待I/O系统完成数据的传输任务,整个系统的性能严重下降。
利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O的状态,而可以抽身出来处理其他任务。当I/O系统准备好了以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被中断的程序继续执行。
与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。
6.3 直接存储器存取方式(DMA)!!!
直接存储器存取(Direct Memory Access, DMA)方式是在存储器与I/O设备间直接传送数据,即在内存和I/O设备之间传送一个数据块的过程中,不需要CPU的任何干涉,是一种完全由DMA硬件完成I/O操作的方式。

D
7.计算机系统的可靠性
计算机系统的可靠性是指从它开始运行(t=0)到某个时刻t这段时间内能正常运行的概率,
用R(t) 表示

- 串联部件的可靠度 = 各部件的可靠度的乘积
- 并联部件的可靠度 = 1 - 部件失效率的乘积 (失效率 = 1 - 可靠度)
首先是3个R的并联,接着是2个R的并联,最后是串联。
选B
相关文章:
软考——软件设计师中级2023年11月备考(1.计算机组成原理)
一、计算机组成原理 1.数据的表示 1.1 十进制转R进制 方法:对十进制数除R取余,最后对余数取倒序 如: 1.2 原码反码补码 1.3 浮点数 1.4 校验码 —— 海明码 (非重点,了解即可) 海明码的构成方法&…...
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(四)
思维导图 一、日期对象 1.1 实例化 实例化,默认得到当前时间,也可以指定时间 1.2 日期对象方法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…...
【前端】HTML5 Audio 预加载 按照队列顺序播放音频, 可以陆续往队列中加内容
【前端】Audio 按照队列顺序播放音频, 可以陆续往队列中加内容 var 音频库 {} var 当前音频集合 [] /*** 将文本添加到队列中* 持续去播放* 播放过的音频会自动从队列中删除* * 已规划* 要保障同时进行加载的数据不能超过5个(线程池 5)* * param 文本*/播放音频队列(文本){i…...
【单片机】13-实时时钟DS1302
1.RTC的简介 1.什么是实时时钟(RTC) (rtc for real time clock) (1)时间点和时间段的概念区分 (2)单片机为什么需要时间点【一定的时间点干什么事情】 (3)RTC如何存在于…...
springboot和vue:十三、VueX简介与安装与推荐视频+前端数据模拟MockJS
VueX简介与安装与推荐视频 VueX用于管理分散在vue各个组件中的数据。每一个VueX的核心都是一个store,当store中的状态发生变化时,与之绑定的视图也将重新渲染。store中的状态不允许被直接修改,只能显示提交mutationVueX中有五个重要的概念&a…...
[React] Zustand状态管理库
文章目录 1.Zustand介绍2.创建一个store3.使用方法3.1 获取状态3.2 更新状态3.3 访问存储状态3.4 处理异步数据3.5 在状态中访问和存储数组3.6 持续状态 4.总结 1.Zustand介绍 状态管理一直是现代程序应用中的重要组成部分, Zustand使用 hooks 来管理状态无需样板代码。 更少…...
【ChatGPT】ChatGPT发展历史
更多优质文章请看底部:ChatGPT与日本首相交流核废水事件-精准Prompt... hello,我是小索奇,在AI日益庞大的环境下,接下来将为大家不断的ChatGPT学习 ChatGPT使用了 Transformer 结构,建立在 OpenAI的 GPT-3.5 大型语言模…...
分布式文件存储系统Minio实战
分布式文件系统应用场景 互联网海量非结构化数据的存储需求电商网站:海量商品图片视频网站:海量视频文件网盘 : 海量文件社交网站:海量图片 1. Minio介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存…...
【MySQL】MySQL 官方安装包形式
MySQL 官方提供3种包: 1. 源码包 mysql-5.7.42.tar.gz mysql-5.7.42-aarch64.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.42.tar.gz需要用户根据自己的CPU架构选择对应的…...
使用sqlmap获取数据步骤
文章目录 1.使用sqlmap获取所有数据库2.使用sqlmap获取当前连接数据库3.使用sqlmap获取当前数据库下所有表名4.使用sqlmap获取当前数据库下某个表下所有列名5.使用sqlmap获取当前数据库下某个表下指定字段的数据6.测试当前用户是否是管理员7.使用burpsqlmap批量检测8.脱库命令9…...
[论文笔记]GLM
引言 今天带来论文GLM: General Language Model Pretraining with Autoregressive Blank Infilling的笔记。论文中文标题为 通用语言模型预训练与自回归填空。 有很多不同类型的预训练架构,包括自编码模型(BERT、RoBERTa、ALBERT)、自回归模型(GPT系列)以及编码器-解码器模型…...
漏洞扫描环境:win10系统用VMware Workstation打开虚拟机若干问题
win10系统用VMware Workstation打开虚拟机若干问题 一 .VMware打开虚拟机就蓝屏重启怎么解决?一. VMware打开虚拟机就蓝屏重启怎么解决?方法一:1、同时按下CTRLSHIFTESC打开任务管理器功能,之后依次点击-详细信息-性能后出现下列界…...
OpenCV实现模板匹配和霍夫线检测,霍夫圆检测
一,模板匹配 1.1代码实现 import cv2 as cv import numpy as np import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]#图像和模板的读取 img cv.imread("cat.png") template cv.imread(r"E:\All_in\o…...
消息队列实现进程之间通信方式
1. snd 源代码 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)typedef struct{ long msgtype; //消息类型char data[1024]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long)int main(i…...
用简单例子讲清楚webgl模板测试
文章目录 搭建简易的webgl环境绘制简单三角形(不带stencilTest)绘制另一个三角形(不带模板测试)加入模板测试总结调参练习 搭建简易的webgl环境 一直以来,我只是想通过搭建纯webgl环境,进行开发,来清楚地了…...
区块链(8):p2p去中心化之websoket服务端实现业务逻辑
1 业务逻辑 例如 peer1和peer2之间相互通信 peer1通过onopen{ write(Mesage(QUERY_LATEST))} 向peer2发送消息“我要最新的区块”。 peer2通过onMessage收到消息,通过handleMessage方法对消息进行处理。 handleMessage根据消息类型进行处理 RESPONSE_BLOCKCHAIN:返回区块链…...
composer安装与设置
1、到官网下载 composer.phar。下载地址:Composer 2、将下载的composer.phar 复制到 composer 文件夹中 3、在composer文件夹中新建文件 composer.bat,内容为 php "%~dp0composer.phar" %* 5、设置环境变量的path,添加composer文件夹...
unordered_map/unordered_set的学习[unordered系列]
文章目录 1.老生常谈_遍历2.性能测试3.OJ训练3.1存在重复元素3.2两个数组的交集Ⅱ3.3两句话中的不常见单词3.4两个数组的交集3.5在长度2N的数组中找出重复N次的元素 1.老生常谈_遍历 #pragma once #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <l…...
C++位图—布隆过滤器
目录 位图概念位图应用 布隆过滤器简介布隆过滤器的优缺点布隆过滤器应用场景布隆过滤器实现布隆过滤器误判率分析 总结 位图概念 位图是一种数据结构,用于表示一组元素的存在或不存在,通常用于大规模数据集的快速查询。它基于一个位数组(或位…...
SQL SELECT 语句进阶
之前探讨了SQL SELECT 语句的基础内容,包括语法、字段选择、记录限制和数据源指定。今天将进一步深入,探讨多表连接、过滤结果集和逻辑运算等高级主题,还有LIKE 模糊查询、ORDER BY 对结果集排序、运用聚合函数汇总结果以及 GROUP BY 子句与相关应用。 本文将继续使用《三国…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
