【软考网工笔记】计算机基础理论与安全——计算机硬件知识

news2025/1/8 0:48:52

计算机分级存储体系

计算机分级存储体系目前最常用的是三级存储体系。

CPU——CaChe(高速缓存)——主存——辅存

其中 Cache 是用于解决存取速度不够快,辅存是用于解决存储容量不够大,二者结合可在容量和速度实现提升的情况下尽可能的减少价格和成本。

DMA 成组数据传送方式

DMA(Direct Memory Access)方式,也称成组数据传送方式,或直接内存操作。

一个设备接口试图通过总线直接向另一个设备发送数据(一般是大批量的数据)的步骤包括:
(1)外设通过 DMA 的一种专门接口电路——DMA 控制器(DMAC)向 CPU 提出接管总线控制权的总线请求。

(2)CPU 收到该请求,在当前的总线周期结束后,会按 DMA 信号的优先级和提出 DMA 请求的先后顺序响应 DMA 信号,并让出总线控制权。

(3)外设获得总线控制权,并在 DMA 控制器的管理下实现外设和存储器数据的直接交换,而不需 CPU 干预。

(4)数据传送完毕后,外设接口向 CPU 发送 DMA 结束信号,并交还总线控制权。

内存按字节编址怎么计算

参考:

内存按字节编址,地址从A4000H到CBFFFH,共有多少个字节呢?_内存按字节编址,地址从a4000h到cbfffh,共有多少字节-CSDN博客

CaChe 高速缓冲存储器

在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。

高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。

CaChe 的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。

根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动的将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一单元内。

于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。

显然,CaChe 可以显著提高 CPU 数据输入输出的速率。

CPU 响应中断的时间

CPU 在同时满足下列两个条件时,响应中断:

(1)IF=1(对非屏蔽中断,没有此项要求);

(2)现行指令执行完。

CPU 在每一个指令周期的最终一个总线周期的最终一个时钟周期的开始采样中断请求输入线,若有中断请求,则下一步不进入取指令周期,而进入中断响应周期。

之所以把一条指令执行完作为响应中断的条件,是因为中断响应周期以及中断服务程序要占用 CPU 资源。

如果在执行一条指令的中间响应中断,则指令的当前状态既不能保存也无法加以恢复。

与此相对比,DMA 操作是在 DMA 控制器的作用下进行的,不占用 CPU 资源,所以在一条指令执行中间,当前总线周期结束即可进入 DMA 周期。

总线周期计算

参考:

https://blog.csdn.net/Cynthiavlili/article/details/130596132

Flynn 分类法

Flynn 于 1972 年提出了计算平台的 Flynn 分类法,主要根据指令流和数据流来分类,共分为四种类型的计算平台。

(1)单指令流单数据流机器(SISD)

SSID 机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU 只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是 SSID 机器,如冯诺.依曼架构,如 IBM PC 机,早期的巨型机和许多 8 位的家用机等。

(2)单指令流多数据流机器(SIMD)

SIMD 是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。Intel 处理器实现的 MMXTM、SSE(Streaming SIMD Extension)、SSE2 及 SSE3 扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于 SIMD。

(3)多指令流单数据流机器(MISD)

MISD 是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此 MISD 这是作为理论模型出现,没有投入到实际应用之中。

(4)多指令流多数据流机器(MIMD)

MIMD 机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于 MIMD 的范畴,例如 Intel 和 AMD 的双核处理器等都属于 MIMD。

主存储器组成

主存储器一般由地址寄存器数据寄存器存储体控制线路地址译码电路等部分组成。

(1)地址寄存器(MAR)

用来存放要访问的存储单元的地址码,其位数决定了其可寻址的存储单元的个数 M,即 M=2N。

(2)数据寄存器(MDR)

用来存放要写入存储体中的数据或从存储体中读取的数据。

(3)存储体系:存放程序和数据的存储空间。

(4)译码电路:根据地址译码器中的地址码在存储体中找到相应的存储单元。

(5)控制线路:根据读写命令控制主存储器各部分的相应操作。

高速缓存的命中率计算

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

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

相关文章

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测

回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB实ELM-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、极限学习机(ELM) 极限学习机是一种单层前馈神经网络,具有训练速…

【MATLAB】【Simulink仿真】向模型中添加自定义子系统

一、子系统的创建 1、启动Simulink,选择【新建】——【空白子系统】——【创建子系统】 2、选择【浏览组件库】,创建使能子系统。 3、保存至当前工作目录。 二、建立模型仿真 1、启动Simulink,选择【新建】——【空白子系统】——【创建子系…

国产编辑器EverEdit - 使用技巧:变量重命名的一种简单替代方法

1 使用技巧:变量重命名的一种简单替代方法 1.1 应用场景 写过代码的都知道,经常添加功能的时候,是把别的地方的代码拷贝过来,改吧改吧,就能用了,改的过程中,就涉及到一个变量名的问题&#xff…

手持PDA终端,提升零售门店管理效率

随着科技的不断进步和零售行业的持续发展,手持PDA终端的应用将会越来越广泛。它将不断融合更多先进的技术和功能,为零售门店管理带来更加便捷、高效、智能的解决方案。 手持PDA终端是集成了数据处理、条码扫描、无线通信等多种功能于一体的便携式设备‌…

机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告

逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告 目录 逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告1 逻辑回归算法1.1 概念理解1.2 算法导入1.3 算法优缺点 2 LogisticRegression理解2.1查看参数定义2.2 参数理解2.3 方法2.4基本格式 3 数据标准…

ICLR2017 | Ens | 深入研究可迁移的对抗样本和黑盒攻击

Delving Into Transferable Adversarial Examples And Black-Box Attacks 摘要-Abstract引言-Introduction对抗深度学习和可迁移性-Adversarial Deep Learning And Transferability对抗深度学习问题生成对抗样本的方法评估方法 非目标性对抗样本-Non-Targeted Adversarial Exam…

在IDEA中如何用git拉取远程某一分支的代码

想要在idea中拉取远程某一分支的代码,我们可以在idea中使用git命令 1.选择idea的Terminal窗口 2.使用git -v 命令查看一下git的版本,顺便测试一下能否使用git命令(不能使用的话需要在idea中进行相关配置) 3.使用 git fetch命令更新…

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

🍬引言 🍬什么是低代码平台? 低代码平台(Low-Code Platform)是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比,低代码平台大大简化了开发过程&a…

基于51单片机(STC32G12K128)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、定时器02、矩阵按键模块3、8X8彩色点阵屏 四、主函数总结 系列文章目录 前言 《贪吃蛇》,一款经典的、怀旧的小游戏,单片机入门必写程序。 以《贪吃蛇》为载体,熟悉各种屏幕…

【开源】创建自动签到系统—QD框架

1. 介绍 QD是一个 基于 HAR 编辑器和 Tornado 服务端的 HTTP 定时任务自动执行 Web 框架。 主要通过抓包获取到HAR来制作任务模板,从而实现异步响应和发起HTTP请求 2. 需要环境 2.1 硬件需求 CPU:至少1核 内存:推荐 ≥ 1G 硬盘:推…

【区块链】零知识证明基础概念详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 零知识证明基础概念详解引言1. 零知识证明的定义与特性1.1 基本定义1.2 三个核心…

豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery

[豆包ai 生成动态tree 增、删、改以及上移下移 htmljquery) 人工Ai 编程 推荐一Kimi https://kimi.moonshot.cn/ 推荐二 豆包https://www.doubao.com/ 实现效果图 html 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

Redis(一)基本特点和常用全局命令

目录 一、Redis 的基本特点 1、速度快&#xff08;但空间有限&#xff09; 2、储存键值对的“非关系型数据库” 3、 功能丰富 4、 支持集群 5、支持持久化 6、主从复制架构 二、Redis 的典型应用场景 1、作为存储热点数据的缓存 2、作为消息队列服务器 3、作为把数据…

SpringMVC(三)请求

目录 一、RequestMapping注解 1.RequestMapping的属性 实例 1.在这里创建文件&#xff0c;命名为Test: 2.复现-返回一个页面&#xff1a; 创建test界面&#xff08;随便写点什么&#xff09;&#xff1a; Test文件中编写&#xff1a; ​编辑 运行&#xff1a; 3.不返回…

K8s集群平滑升级(Smooth Upgrade of K8S Cluster)

简介&#xff1a; Kubernetes ‌ &#xff08;简称K8s&#xff09;是一个开源的容器编排和管理平台&#xff0c;由Google开发并维护。它最初是为了解决谷歌内部大规模容器管理的问题而设计的&#xff0c;后来在2014年开源&#xff0c;成为云原生技术的核心组成部分。‌‌1 K8…

NO.1 《机器学习期末复习篇》以题(问答题)促习(人学习),满满干huo,大胆学大胆补!

目录 一、新手初学&#xff1f;该如何区分[人工智能] [机器学习] [深度学习]&#xff1f; [1]浅谈一下我的理解 [2]深度交流一下 人工智能&#xff08;AI, Artificial Intelligence&#xff09; 机器学习&#xff08;ML, Machine Learning&#xff09; 深度学习&#xff0…

零基础也能建站: 使用 WordPress 和 US Domain Center 轻松五步创建网站 (无需编程)

创建一个网站可能听起来很复杂&#xff0c;但只要使用正确的工具&#xff0c;你可以通过五个简单步骤构建一个专业网站 — — 无需编写任何代码&#xff01;在本教程中&#xff0c;我们将使用 WordPress 和 US Domain Center 指导你完成整个过程。完成后&#xff0c;你将拥有一…

pdf预览 报:Failed to load module script

pdf 预览报&#xff1a; Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “application/octet-stream”. Strict MIME type checking is enforced for module scripts per HTML spec. 报错原因&#xff1a…

【JVM】总结篇之对象内存布局 执行引擎

文章目录 对象内存布局对象的实例化对象的内存布局对象的方问定位 执行引擎 对象内存布局 对象的实例化 new对象流程&#xff1f;&#xff08;龙湖地产&#xff09; 对象创建方法&#xff0c;对象的内存分配。&#xff08;360安全&#xff09; 1.判断对象对应的类是否加载、链…

力扣hot100——动态规划 多维动态规划

前言&#xff1a;题太多了TAT&#xff0c;只贴了部分我觉得比较好的题 32. 最长有效括号 class Solution { public:int longestValidParentheses(string s) {int n s.size();s " " s;vector<int> dp(n 1, 0);int ans 0;for (int i 2; i < n; i) {if…