当前位置: 首页 > article >正文

【软考-架构】1.2、指令系统-存储系统-cache

GitHub地址:https://github.com/tyronczt/system_architect
✨资料&文章更新✨

指令系统

计算机指令执行过程:取指令一一分析指令一一执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码:最后执行指令,取出指令执行所需的源操作数。

CISC 是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现;

RISC 是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)。

考试真题

第一题

答案为:第一空选 A,第二空选 D。

以下是具体解析:

  • Flynn 分类法的概念:Flynn 分类法是根据计算机在执行程序过程中指令流和数据流的不同组合,将计算机系统分为 4 类。其中,指令流是指机器执行的指令序列,数据流是指由指令流调用的数据序列,包括输入数据和中间结果,但不包括控制信息。
  • Flynn 分类法的 4 类计算机
    • 单指令流单数据流(SISD):这种计算机每次只执行一条指令,并且只对一个数据进行操作。传统的冯・诺依曼体系结构的计算机就属于 SISD 类型,如早期的个人计算机。
    • 单指令流多数据流(SIMD):SIMD 计算机有多个处理单元,它们在同一个控制部件的控制下,执行相同的指令,但操作于不同的数据上。典型的应用场景是对大量数据进行相同的处理,如向量处理机、阵列处理机等。
    • 多指令流单数据流(MISD):MISD 计算机具有多个处理单元,每个处理单元可以执行不同的指令,但都对同一个数据进行操作。这种结构在实际中应用较少,因为它的实用性相对较低,一个数据被多个不同的指令处理可能会导致数据处理的复杂性和不确定性增加。
    • 多指令流多数据流(MIMD):MIMD 计算机中有多个处理单元,它们可以独立地执行不同的指令,并且操作于不同的数据上。当前主流的多核计算机就属于 MIMD 类型,每个核心都可以独立地处理不同的任务或程序,多个核心之间可以通过共享内存或其他通信机制进行协作,从而实现多任务并行处理,提高计算机的整体性能和效率。

第二题

正确选项是 D. 指令长度不固定,指令格式和寻址方式多。

复杂指令集计算机(CISC)设计的初衷是为了通过单条指令完成复杂的任务,从而减少程序的指令数量和提高程序的执行效率。以下是各选项的具体分析:

A. 只设置使用频度高的一些简单指令,不同指令执行时间差别很小 - 这个描述更符合精简指令集计算机(RISC)的特点,而非CISC。CISC包含了大量的复杂指令,包括一些不常用的指令,这些指令的执行时间可能会有很大差异。

B. CPU中设置大量寄存器,利用率低 - 这个描述并不准确。虽然CISC架构确实可能拥有较多的寄存器,但其主要特征并不是寄存器利用率低。实际上,寄存器的利用情况更多依赖于编译器优化和具体的应用场景。

C. 常采用执行速度更快的组合逻辑实现控制器 - 这一点也是RISC架构的一个特点,因为RISC倾向于使用硬连线控制来加速指令处理。而CISC系统通常更复杂,可能会使用微代码(microcode)来实现指令解码和执行。

D. 指令长度不固定,指令格式和寻址方式多 - 这确实是CISC的一个重要特征。CISC架构支持多种不同的寻址模式和指令格式,并且为了灵活性,指令长度通常是可变的。这使得CISC处理器能够处理各种复杂操作,尽管这也增加了指令解码的复杂性。

指令系统-流水线


流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。

流水线执行时间:1条指令总执行时间 +(总指令条数-1)* 流水线周期。

流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。

公式:指令条数/流水线执行时间。

流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,

公式:不使用流水线执行时间/使用流水线执行时间。

考试真题

第一题

流水线的吞吐率是指单位时间内流水线完成的任务数或输出的结果数。在流水线中,如果各段的操作时间不同,那么流水线的吞吐率将由耗时最长的那段决定,因为这将决定整个流水线完成一个任务所需的总时间。

在这个问题中,流水线有5段,其中1段的时间为2ns,另外4段的时间为1ns。由于流水线是并行工作的,所以完成一个任务的总时间将是各段时间中的最大值,即2ns。但是,这只是完成第一个任务的时间。从第二个任务开始,每个任务都只需要额外的2ns,因为流水线中的各个段可以同时处理不同的任务。

然而,这里有一个细节需要注意:当第一个任务进入流水线后,需要等待所有5段都完成后才能算作一个完整完成的任务。但从第二个任务开始,每进入一个新任务,只需要等待最慢的那一段(2ns)完成即可,因为其他段已经在处理前一个任务了。

因此,完成100个任务的总时间将是:
第一个任务的时间:2ns + 4 * 1ns = 6ns(所有段都完成第一个任务)
剩下99个任务的时间:99 * 2ns = 198ns(每个任务只需要最慢的那段时间)

总时间:6ns + 198ns = 204ns

但是,我们需要注意这里的单位。题目要求的是每秒的吞吐率,而我们的计算结果是以纳秒为单位的。所以,我们需要将总时间转换为秒:
204ns = 204 * 10^-9 s

然后,我们可以计算吞吐率:
吞吐率 = 完成的任务数 / 总时间
= 100 / (204 * 10^-9) ≈ 490 * 10^6 个/s

所以,利用此流水线完成100个任务的吞吐率约为490 * 10^6个/s,选项B是正确的。

第二题

答案:D C

第一空:单缓冲区时间计算

单缓冲区的关键限制在于读入缓冲区和传输至用户区必须串行执行。每个块的总时间由三个阶段组成:

  • 第一块:读入缓冲区(15μs)→ 传输至用户区(5μs)→ 处理数据(1μs),共 21μs。
  • 后续9块:由于缓冲区不可复用,每个块需等待前一块的读入和传输完成后才能开始,每块时间为 15μs(读入) + 5μs(传输) = 20μs。

总时间 = 21 + 9×20 = 201μs
对应选项 D

第二空:双缓冲区时间计算

双缓冲区的优势在于读入缓冲区与传输至用户区可并行:

  • 第一块:读入缓冲区(15μs)→ 传输至用户区(5μs)→ 处理数据(1μs),共 21μs。
  • 后续9块:读入缓冲区(15μs)可与前一块的传输和处理并行,因此每块仅需 15μs(读入)。

总时间 = 21 + 9×15 = 156μs
对应选项 C

第三题

第一空:完成n个连续任务的总时间

对于k段流水线,各段执行时间均为t,在理想情况下(任务连续输入且无阻塞),总时间的计算公式为:总时间 = (k + n - 1) × t
推导逻辑

  1. 第一个任务需要完整经历k个阶段,耗时 k × t
  2. 后续每个任务只需等待前一个任务完成一个阶段即可进入流水线,每个新增任务耗时 t,因此后续n-1个任务耗时 (n-1) × t 。
  3. 总时间为两者之和:k × t + (n-1) × t = (k + n - 1) × t
    对应选项 B

第二空:流水线最大加速比

某5段浮点加法运算器的各段执行时间分别为6ns、7ns、8ns、9ns、6ns,计算其最大加速比:最大加速比 = 4
推导逻辑

  1. 非流水线执行时间:每个任务需顺序执行所有阶段,总时间 6 + 7 + 8 + 9 + 6 = 36ns
  2. 流水线周期:由最长的阶段时间决定,即 9ns
  3. 流水线执行时间:处理n个任务的时间为 5 × 9 + (n - 1) × 9 = 9n + 36ns(当n→∞时,近似为 9n)。
  4. 加速比公式
    在这里插入图片描述
    对应选项 A

存储系统

地址映射,由硬件自动完成映射,有三种方法:

  • 直接映射
  • 全相联映像
  • 组组相连映像

考试真题

第一题

按照Cache地址映像的块冲突概率从高到低排列的顺序为:B. 直接映像→组相联映像→全相联映像
解析

  1. 直接映像:主存中的每个块只能映射到Cache中唯一固定的块。若多个主存块映射到同一Cache块,则冲突概率最高
  2. 组相联映像:将Cache分为若干组,组内全相联映射,组间直接映射。冲突概率介于直接映像和全相联之间,属于折中方案
  3. 全相联映像:主存块可映射到Cache中任意块,冲突概率最低(仅当Cache满时才会冲突)

排序逻辑
直接映像的严格映射规则导致高冲突率,而全相联的灵活性最大程度减少了冲突,组相联通过分组部分缓解冲突,因此顺序为 直接映像 > 组相联映像 > 全相联映像

第二题

关于Cache与主存间地址映射的正确叙述是:D. 由硬件自动完成Cache与主存之间的地址映射

关键解析

  1. 硬件自动管理机制
    Cache与主存的地址映射(包括直接映射、全相联映射、组相联映射)由计算机硬件逻辑电路实现,如地址转换部件、相联存储器(CAM)和比较器等。这些操作在CPU访存时实时完成,无需软件干预。
  2. 选项错误原因
    • A. 操作系统负责管理:操作系统不参与实时地址映射,仅负责内存分配等高层管理,而非具体的Cache映射逻辑。
    • B. 程序员编程处理:地址映射对程序员透明,无需通过代码控制,属于底层硬件功能。
    • C. 应用软件调度:应用软件无法直接操作Cache映射规则,其运行依赖于硬件自动完成地址转换。

结论

Cache与主存的地址映射由硬件自动实现,确保高速访问和低延迟,与软件无关。正确答案为 D

相关文章:

【软考-架构】1.2、指令系统-存储系统-cache

GitHub地址:https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 指令系统 计算机指令执行过程:取指令一一分析指令一一执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据…...

CI/CD与容器化技术核心知识点的QA

CI/CD与容器化技术核心知识点的Q&A 以下是CI/CD和容器化技术的经典必考面试题及详解,结合行业实践与理论核心整理而成: 一、CI/CD核心概念与流程 简述CI/CD的核心目标与实现价值 答案:通过自动化流水线实现快速、可靠的软件交付,减少人工干预,提升开发与运维协作效率…...

动态规划刷题

文章目录 动态规划三步问题题目解析代码 动态规划 1. 状态表示:dp[i],表示dp表中i下标位置的值 2. 状态转移方程:以i位置位置的状态,最近的一步来划分问题,比如可以将状态拆分成前状态来表示现状态,dp[i] …...

不谓侠--记录

音乐《不谓侠》 衣襟上 别好了晚霞 余晖送我牵匹老马 正路过 烟村里人家 恰似当年故里正飞花 醉过风 喝过茶 寻常巷口寻个酒家 在座皆算老友 碗底便是天涯 天涯远 无处不为家 蓬门自我也像广厦 论意气 不计多或寡 占三分便敢自称为侠 刀可捉 拳也耍 偶尔闲来…...

2025-03-01 学习记录--C/C++-C语言 整数类型对比

C语言 整数类型对比 类型位数范围(有符号)范围(无符号)格式化符号char8-128 到 1270 到 255%c 或 %hhdshort16-32,768 到 32,7670 到 65,535%hdint32-2,147,483,648 到 2,147,483,6470 到 4,294,967,295%dlong32 或 64-2,147,483…...

Python核心技术,Django学习基础入门教程(附环境安装包)

文章目录 前言1. 环境准备1.1Python安装1.2选择Python开发环境1.3 创建虚拟环境1.4 安装 Django 2. 创建 Django 项目3. Django项目结构介绍4. 启动开发服务器5. 创建 Django 应用6. 应用结构介绍7. 编写视图函数8. 配置 URL 映射9. 运行项目并访问视图10. 数据库配置与模型创建…...

MFC中CMutex类和CSingleLock类,配合使用疑惑

在使用CMutex过程中,看到别人使用了CSingleLock类,想着明明CMutex已经可以实现线程同步了,为什么还有使用CSingleLock类呢? 在MFC中,虽然CMutex类本身可以实现线程同步,但通常会与CSingleLock类一起使用&am…...

爬虫系列之【数据解析之正则】《二》

目录 前言 一、正则基本使用 1.1 导包 1.2 接口方法 1.3 换行匹配问题 二、实战案例 完整代码 前言 在爬虫工作中,我们主要会遇到两种类型的文本数据: JSON格式数据 HTML文档数据 对于JSON字符串数据,通常使用Python的字典操作进行键…...

HTML AI 编程助手

HTML AI 编程助手 引言 随着人工智能技术的飞速发展,编程领域也迎来了新的变革。HTML,作为网页制作的基础语言,与AI技术的结合,为开发者带来了前所未有的便利。本文将探讨HTML AI编程助手的功能、应用场景以及如何利用它提高编程…...

RFID工具柜DW-G104R|智能存储,便捷高效

一、行业背景 RFID智能工具柜(DW-G104R)RFID工具管理柜是一种结合RFID技术和智能柜设备的新型工具管理设施,通过自动化管理可以提高工具管理的效率和准确性。 在工业生产中,工具柜是工具存储和管理的重要设备。传统工具柜存在管…...

【前端面试】如何不通过正则:验证IP地址合法性

前言 在 Web 开发中,验证用户输入的 IP 地址是否合法是一个常见需求 面试中也会问到 通常,我们会使用正则表达式来完成这个任务,因为它简洁高效。然而,正则表达式对于初学者来说可能有些晦涩难懂。本文将介绍一种不使用正则表达…...

中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比

Redis是内存数据库,它的数据一般存放在内存中,一旦断电或者宕机,存在内存中的数据就会丢失。当然,它也具备数据持久化的能力,本文就将介绍Redis的三种持久化方式及其优劣势对比。 一、RDB(Redis Database&…...

Linux软连接与时区日期

软连接 使用ln命令创建软连接。 在系统中创建软连接,可以将文件,文件夹连接到其他为止。 类似于Windows系统的快捷方式。 语法:ln -s 参数1 参数2 -s选项,创建软连接。 参数1,被链接的文件或文件夹。 参数2&#xff0…...

安全测试之五:SQL Server注入漏洞几个实例

示例 1:在 GET 请求中测试 SQL 注入 最简单且有时最有效的情况是针对登录页面进行测试。当登录页面请求用户输入用户名和密码时,攻击者可以尝试输入以下字符串 “ or 11”(不包含双引号): https://vulnerable.web.ap…...

2024 ChatGPT大模型技术场景与商业应用视频精讲合集(45课).zip

2024ChatGPT大模型技术场景与商业应用视频精讲合集,共十三章,45课。 01. 第一章 ChatGPT:通用人工智能的典范 1.1 ChatGPT概述 .mp4 1.2 通用能力 .mp4 1.3 通用人工智能风口 .mp4 02. 第二章 大模型:ChatGPT的核心支撑 2.1 底层…...

HTTP四次挥手是什么?

四次挥手,这是TCP协议用来关闭连接的过程。四次挥手是确保两个主机之间能够安全、可靠地关闭连接的重要机制。我会用简单易懂的方式来讲解,帮助你理解它的原理和过程。 1. 什么是四次挥手? 定义 四次挥手是TCP协议用来关闭连接的过程。它通…...

前端内存泄漏的几种情况及方案

前端内存泄漏是常见但容易被忽视的问题,可能导致页面卡顿、崩溃或性能下降。以下是几种典型场景及解决方案: 1. 未清理的全局变量 场景: 意外创建全局变量(未使用 var/let/const)。主动挂载到 window 的大对象未释放…...

人工智能之数学基础:线性代数中的特殊矩阵

本文重点 矩阵是数学中一个重要的工具,在各个领域都有广泛的应用。其中,一些特殊矩阵由于具有独特的性质,在特定的问题中发挥着关键作用。 单位矩阵 单位矩阵是一种特殊的方阵,在矩阵乘法中起到类似于数字 “1” 的作用。对于一个的单位矩阵,其主对角线元素全为 1,其余…...

单例模式---是 Spring 容器的核心特性之一

1.最近面试让手写一个单例;我一直知道单例;但是一直很困惑;工作中也没怎么用过;为什么面试总问;今天我才知道思考出来;单例是spring容器的核心特性;很多知识我只知道是什么;但是没有…...

代码随想录算法【Day59】

47. 参加科学大会 思路 使用Dijkstra 算法 计算从起点(节点 1)到终点(节点 n)的最短路径。用优先队列(小顶堆) 维护当前未访问的最短路径节点,每次选择距离最短的未访问节点进行更新&#xff…...

Linux篇——工具

在有了前面的基础知识后,我们现在基本能够使用Linux的相关基本操作了,但我们知道,没有工具我们是无法便捷地实现某些功能的,因此我们这篇内容来谈谈Linux中的工具。 一、软件包管理器yum 我们知道,我们要想获得一个软…...

leetcode第77题组合

原题出于leetcode第77题https://leetcode.cn/problems/combinations/ 1.树型结构 2.回溯三部曲 递归函数的参数和返回值 确定终止条件 单层递归逻辑 3.代码 二维数组result 一维数组path void backtracking(n,k,startindex){if(path.sizek){result.append(path);return ;}…...

通过fgets获取文件内容

#include <stdio.h> char *fgets(char *s, int size, FILE *stream); 使用fgets获取文件内容 #include <stdio.h> #include <stdlib.h>int main(void) {char str[100] {0};FILE *fp NULL;fp fopen("./test_file", "r");if (NULL …...

STaR(Self-Taught Reasoner)方法:让语言模型自学推理能力(代码实现)

STaR&#xff08;Self-Taught Reasoner&#xff09;方法&#xff1a;让语言模型自学推理能力 在大型语言模型&#xff08;LLM&#xff09;的推理能力优化中&#xff0c;STaR&#xff08;Self-Taught Reasoner&#xff09; 是一种引人注目的技术&#xff0c;属于“修改提议分布…...

[创业之路-329]:华为铁三角实施的步骤

一、通用过程 华为铁三角实施的步骤主要包括以下几个关键阶段&#xff1a; 1、明确角色与职责 确定铁三角成员&#xff1a;组建由客户经理&#xff08;AR&#xff09;、解决方案经理&#xff08;SR&#xff09;和交付经理&#xff08;FR&#xff09;组成的铁三角团队。制定岗…...

在 Ubuntu 下通过 Docker 部署 Caddy 和 PHP-FPM 服务器

引言 大家好&#xff0c;今天我们要聊的主题是如何在 Ubuntu 上通过 Docker 部署 Caddy 和 PHP-FPM 服务器。Caddy 是一个现代化的 web 服务器&#xff0c;支持 HTTPS&#xff0c;配置简单&#xff1b;而 PHP-FPM 是 PHP 的 FastCGI 进程管理器&#xff0c;能够高效处理 PHP 请…...

工程化与框架系列(10)--微前端架构

微前端架构 &#x1f3d7;️ 微前端是一种将前端应用分解成更小、更易管理的独立部分的架构模式。本文将详细介绍微前端的核心概念、实现方案和最佳实践。 微前端概述 &#x1f31f; &#x1f4a1; 小知识&#xff1a;微前端的核心理念是将前端应用分解成一系列独立部署、松耦…...

Nacos + Dubbo3 实现微服务的Rpc调用

文章目录 概念整理基本概念概念助记前提RPC与HTTP类比RPC接口类的一些理解 实例代码主体结构父项目公共接口项目提供者项目项目结构POM文件实现配置文件实现公共接口实现程序入口配置启动项目检查是否可以注入到Nacos 消费者项目项目结构POM文件实现配置文件实现注册RPC服务类实…...

算法-数据结构(图)-弗洛伊德算法复现(Floyd)

弗洛伊德算法&#xff08;Floyd-Warshall算法&#xff09;是一种用于求解所有节点对最短路径的动态规划算法&#xff0c;适用于有向图或无向图&#xff0c;且能处理带有负权边的图&#xff08;但不能有负权环&#xff09;。该算法的时间复杂度为 O(V3)O(V3)&#xff0c;其中 VV…...

51c自动驾驶~合集22

我自己的原文哦~ https://blog.51cto.com/whaosoft/11870502 #自动驾驶数据闭环最前沿论文 近几年&#xff0c;自动驾驶技术的发展日新月异。从ECCV 2020的NeRF问世再到SIGGRAPH 2023的3DGS&#xff0c;三维重建走上了快速发展的道路&#xff01;再到自动驾驶端到端技术的…...