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

news2025/5/10 2:23:38

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

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

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

相关文章

动态规划刷题

文章目录 动态规划三步问题题目解析代码 动态规划 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…

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

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

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

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

Linux软连接与时区日期

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

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” 的作用。对于一个的单位矩阵,其主对角线元素全为 1,其余…

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 ;}…

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

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

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

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

51c自动驾驶~合集22

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

基于javaweb的SpringBoot在线动漫信息平台系统设计和实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

【Qt】MVC设计模式

目录 一、搭建MVC框架 二、创建数据库连接单例类SingleDB 三、数据库业务操作类model设计 四、control层,关于model管理类设计 五、view层即为窗口UI类 一、搭建MVC框架 里面的bin、lib、database文件夹以及sqlite3.h与工程后缀为.pro文件的配置与上次发的文章…

ARM 处理器平台 eMMC Flash 存储磨损测试示例

By Toradex秦海 1). 简介 目前工业嵌入式 ARM 平台最常用的存储器件就是 eMMC Nand Flash 存储,而由于工业设备一般生命周期都比较长,eMMC 存储器件的磨损寿命对于整个设备来说至关重要,因此本文就基于 NXP i.MX8M Mini ARM 处理器平台演示…

本地部署DeepSeek-R1(Dify发件邮箱、找回密码、空间名称修改)

Dify配置发件邮箱 DIfy默认邮箱配置为空,在邀请团队成员注册时是不会发送邀请链接的,只能通过手动复制生成的注册链接发送给对应的人去注册设置密码。 这样很麻烦,并且在找回密码时也接收不了邮件,无法重置密码。 找到本地部署…

EasyRTC:支持任意平台设备的嵌入式WebRTC实时音视频通信SDK解决方案

随着互联网技术的飞速发展,实时音视频通信已成为各行各业数字化转型的核心需求之一。无论是远程办公、在线教育、智慧医疗,还是智能安防、直播互动,用户对低延迟、高可靠、跨平台的音视频通信需求日益增长。 一、WebRTC与WebP2P:实…

数据库数据恢复—SQL Server附加数据库报错“错误 823”怎么办?

SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复…

HTMLS基本结构及标签

HTML5是目前制作网页的核心技术&#xff0c;有叫超文本标记语言。 基本结构 声明部分位于文档的最前面&#xff0c;用于向浏览器说明当前文档使用HTML标准规范。 根部标签位于声明部分后&#xff0c;用于告知浏览器这是一个HTML文档。< html>表示文档开始&#xff0c;&l…