计算机组成体系结构
计算机系统组成计算机的基本硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部件组成运算器、控制器 等…被集成在一起统称为中央处理单元Central Processing UnitCPU存储器是计算机系统中的记忆设备分为内部存储器和外部存储器内部存储器速度高、容量小一般用于【临时存放程序数据】、【中间结果】外部存储器容量大、速度慢可以【长期保存程序、数据】输入设备、输出设备合称为外部设备简称外设输入设备用于输入原始数据及各种命令输出设备则用于输出处理结果输入/输出I/O键盘和鼠标是最常用的输入设备。键盘通过扫描码将按键信息传输给计算机鼠标则通过【光电、机械】方式检测移动和按键操作并将相应的信号发送给计算机常见的输入输出方式有通道方式通道是一种特殊的处理机它具有自己的指令系统和程序可以独立地执行通道程序控制外设与内存之间的数据传输通道方式进一步提高了 CPU 与外设的并行工作能力适用于连接多个高速外设的系统中断输入输出方式⭐中断输入输出方式是计算机系统中【重要】的数据输入输出方式中断输入输出方式指当外部设备完成数据准备、需要 CPU 处理的事件时主动向 CPU 发送中断请求信号CPU 在接收到中断请求后暂停当前正在执行的程序转而去处理与该中断请求—对应—中断服务程序完成对外部设备的操作或处理相关事件处理完后再返回原来被中断的程序继续执行中断方式提高了 CPU 的利用率使 CPU 可以与外设【并行】工作中断请求外部设备在完成数据准备或发生特定事件如打印机完成一次打印任务、键盘有按键按下等时通过硬件电路向 CPU 发送中断请求信号该信号会通知 CPU 有外部事件需要处理中断响应CPU 执行每条指令的最后一个时钟周期都会检查是否有中断请求到来若检测到中断请求且此时 CPU 允许中断即中断允许标志位为 1则 CPU 会暂停当前正在执行的程序保存当前程序断点【程序计数器 PC 的值】程序状态字等现场信息然后根据中断源类型、中断向量表找到对应的中断服务程序入口地址开始执行中断服务程序中断处理CPU 执行中断服务程序完成对外部设备的相应操作在中断服务程序中通常还会对中断请求进行应答以清除中断请求信号防止再次触发中断。中断返回当中断服务程序执行完毕后CPU 会恢复之前保存的现场信息程序计数器 PC 的值、寄存器的值和程序状态字等然后返回到原来被中断的程序继续执行使程序能够继续正常运行中断输入输出方式【特点】实时响应性好能够及时响应外部设备的请求对于实时性要求较高的任务如实时数据采集、实时控制等非常重要外部设备可以在需要时立即向 CPU 发出中断请求CPU 能够迅速做出响应并进行处理减少了响应延迟提高 CPU 利用率与程序查询方式相比CPU 无需不断地查询外设状态在等待外设数据准备的过程中可以继续执行其他程序只有当外设准备好数据并发出中断请求时CPU 才会暂停当前工作去处理外设事务大大提高了 CPU 的利用率可实现 [多任务并发] 处理多个外部设备可以同时向 CPU 发送中断请求CPU 可以根据中断优先级等策略依次处理各个中断请求从而实现多个任务的并发处理使计算机系统能够同时管理和控制多个外部设备提高系统的整体性能和效率程序控制查询方式程序控制分为 【无条件传送】【程序查询方式】两种方法简单硬件开销小但I/0能力不高严重影响 CPU 的利用率【无条件传送】特点硬件简单、软件实现容易、适用场景有限CPU 在需要时【直接】对端口进行读或写操作无需考虑外设的当前状态默认外设始终处于准备好接收或发送数据的状态硬件简单不需要复杂的硬件电路来实现 CPU 与外设之间的状态交互软件实现容易程序中只需使用简单的输入输出指令即可完成数据传输适用场景有限只适用于那些工作速度非常快或非常慢且对数据传输的实时性要求不高的外设【程序查询方式】CPU 利用率低实时性较差 数据传输可靠性较高优点是硬件简单CPU 通过执行程序不断地查询外设的状态通过读取外设的状态寄存器来判断外设是否准备好进行数据传输如果外设未准备好CPU 则继续查询直到外设准备好为止内存与接口的编制方式在计算机系统中内存与接口的编址方式主要有**【独立编址】、【统一编址】**两种独立编址内存和接口分别有各自独立的地址空间使用不同的指令和控制信号来访问内存和接口有专门的输入输出指令如 IN、OUT 指令用于对接口进行操作访问内存则使用专门的内存访问指令缺点指令类型增多、编程相对复杂、I/O 端口的操作灵活性受限优点地址空间清晰、指令系统简洁、译码电路相对简单指令系统简洁对接口的操作有专门的指令指令格式和功能相对简单易于设计和实现地址空间清晰内存和接口的地址空间相互独立界限分明易于理解和管理不会产生地址冲突问题译码电路相对简单由于内存和接口的地址空间是分开的所以设计地址译码电路时可以分别针对内存和接口进行设计电路结构相对简单统一编址也称为存储器映射编址是将接口中的寄存器等当作内存单元一样进行编址内存、接口 共用一个地址空间对接口的访问就像对内存的访问一样使用相同的指令来进行读写操作缺点地址空间冲突、内存空间相对减少、译码电路相对复杂优点指令系统统一、编程方便、I/O 端口的操作灵活性高直接存储器访问DMA方式在DMA控制器(硬件)的控制下外设直接与内存进行数据交换无需 CPU 干预DMA 方式主要用于高速外设与内存之间的大批量数据传输如磁盘、磁带等。它可以大大提高数据传输速度减少 CPU 的干预提高系统的整体性能CPU 功能、组成⭐CPU主要功能程序控制通过执行指令来控制程序的执行顺序是CPU的重要功能⭐操作控制一条指令功能的实现需要若干操作信号配合完成CPU产生每条指令的操作信号并将操作信号送往不同的部件控制相应的部件按指令的功能要求进行操作时间控制CPU 对各种操作进行时间控制指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格的控制数据处理 CPU通过对数据进行算术运算、逻辑运算、等进行加工处理数据加工处理的结果被人们所利用对数据的加工处理也是 CPU最根本的任务CPU 主要由【运算器】【控制器】【寄存器组】【内部总线】等部件组成运算器运算器—组成算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器算术逻辑单元 ALU负责处理数据实现对数据的算术运算、逻辑运算累加寄存器 AC也称累加器是一个寄存器当运算器—算数逻辑单元—执行—算数运算、逻辑运算为算术逻辑单元提供一个工作区数据缓存寄存器DR作为CPU和内存、外部设备之间数据的—中转站—操作速度之间的—缓冲对内存储器进行读写、DR暂时存放内存储器的指令/数据并将不同的时段数据进行隔离在单累加器结构运算器中数据缓存寄存器DR 还可作为——数据寄存器状态条件寄存器 PSW存储和反映CPU当前的工作状态和指令执行结果的相关信息由算数指令和逻辑指令运行、测试——结果建立的各种条件码内容主要分为状态标志和控制标志运算器-主要功能执行所有算术运算加、减、乘、除、等基本运算及附加运算执行所有的逻辑运算并进行逻辑测试如与、或、非、零值测试或两个值的比较等考试时候如果这个选项有争议就不要选择它 A\B都可以实现\情况就不需要选择状态寄存器选项了控制器运算器只能完成运算控制器用于控制整个 CPU 的工作它决定了计算机运行过程的【自动化】它不仅要保证程序的正确执行而且要能够处理异常事件一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑等几个部分指令控制逻辑完成取指令、分析指令和执行指令的操作过程分取指令、指令译码、按指令操作码执行、形成下一条指令地址、等步骤指令寄存器 IR当 CPU 执行一条指令时先把它从内存储器取到缓冲寄存器中再送入 IR 暂存指令译码器根据 IR 的内容产生各种微操作指令控制其他的组成部件工作完成所需的功能。程序计数器PC具有【寄存信息、计数】两种功能又称为指令计数器程序的执行分为两种情况【顺序执行】、【转移执行】CPU 中 PC 用来跟踪下一条要执行指令在存储器中的地址地址寄存器 AR保存当前 CPU 所访问的内存单元的地址指令译码器 ID指令分为操作码和地址码两个部分为了执行任何给定的命令必须 对操作码进行分析以便识别所有完成的操作中断控制逻辑用于控制各种中断请求并根据优先级的高低对中断请求进行排队逐个交给 CPU 处理时序控制逻辑为每条指令按时间顺序提供应有的控制信号总线逻辑为多个功能部件服务的信息通路的控制电路寄存器组寄存器组专用寄存器、通用寄存器运算器和控制器中的寄存器是专用寄存器其作用是固定的。通用寄存器的用途广泛并且由程序员规定其用途其数目因处理器的不同有所差异多核CPU核心又称为【内核】是 CPU 最主要的组成部分CPU 所有的计算、接受/存储命令、处理数据都由【核心执行】各种 CPU 核心都具有固定的逻辑结构一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有合理的布局CPU主要厂商AMD 和 Intel的双核技术在物理结构上有很大的不同AMD 将两个内核做在一 个 Die 上通过直接架构连接起来集成度更高Intel 是将放在不同核心上的两个内核封装在一起因此称为【双芯】将 AMD 的方案称为【双核】可靠性可靠性指标是用于衡量系统、设备、产品或过程在规定条件下和规定时间内完成规定功能的能力的一系列参数下面是一个程序运行的过程 |-----MTTF----|--MTTR--|---MTTF---|--MTTR--|-----MTTF-----| |---------MTBF------| MTTF 平均无故障时间指从开始使用到发生故障前的平均工作时间 MTTF1/λ - λ为失效率指工作到某一时刻尚未失效的产品在该时刻后单位时间内发生失效的概率 - λ(t) 表示单位为时间的倒数如 1/h每小时、1 / 次每次等 MTTR 平均故障修复时间即出现故障到修复完成所需要的平均时间 MTTR1/μ - μ为修复率指维修人员在单位时间内修复故障产品的概率 MTBF 平均故障间隔时间指相邻两次故障之间的平均工作时间MTBF 越长说明产品的可靠性越高 MTBFMTTRMTTF 系统可用性产品在规定的条件下和规定的时刻或时间区间内处于可工作或可使用状态的概率 MTTE/(MTTRMTTF)x100% - 在实际应用中一般MTTR很小所以通常认为MTBF≈MTTF - 可靠性可以用可以用 MTTF/(1MTTF) 来度量串联系统只要其中有一个单元发生故障整个系统就会失效串联系统是指系统中的所有单元部件或子系统必须都正常工作系统才能正常运行可靠性特点串联系统的可靠性取决于系统中可靠性最低的单元。由于所有单元都要正常工作系统才有效所以随着串联单元数量的增加系统的整体可靠性会迅速下降可靠性计算假设串联系统中有n个单元每个单元的可靠度分别为R1、R2、R3… RsR1∗R2∗R3∗...∗RnR_s R_1 * R_2 * R_3 * ... * R_nRs​R1​∗R2​∗R3​∗...∗Rn​例如一个串联系统由三个单元组成它们的可靠度分别为0.9、0.8和0.7那么系统的可靠度Rs0.9∗0.8∗0.70.504R_s 0.9*0.8*0.7 0.504Rs​0.9∗0.8∗0.70.504并联系统只有当所有单元都发生故障时系统才会失效并联系统是指系统中只要有一个单元正常工作系统就能正常运行可靠性特点并联系统提高了系统的可靠性和容错能力。因为只要有一个单元正常工作系统就能保持功能所以相比串联系统其整体可靠性更高尤其在单元数量较多时更为明显**可靠性计算**假设并联系统中有n个单元每个单元的可靠度分别为R1、R2、R3...R_1、R_2、R3 ...R1​、R2​、R3...则系统的不可靠度Fp(1−R1)∗(1−R2)∗(1−R3)∗...∗(1−Rn)F_p (1-R_1) * (1-R_2) * (1-R_3) * ... * (1-R_n)Fp​(1−R1​)∗(1−R2​)∗(1−R3​)∗...∗(1−Rn​)那么并联系统的可靠度Rp1−Fp(1−R1)∗(1−R2)∗(1−R3)∗...∗(1−Rn)R_p 1-F_p (1-R_1) * (1-R_2) * (1-R_3) * ... * (1-R_n)Rp​1−Fp​(1−R1​)∗(1−R2​)∗(1−R3​)∗...∗(1−Rn​)一个并联系统由三个单元组成它们的可靠度分别为 0.9、0.8和0.7则系统的不可靠度FpF_pFp​(1-0.9) x (1-0.8) x (1-0.7) 0.006系统的可靠度RpR_pRp​ 1-0.006 0.994串联系统和并联系统在不同的应用场景中各有优劣实际的复杂系统往往是串联和并联结构相结合的混合系统一半串联、并联中级考试中也通常是根据【混合模型图】 设计公式总线特点分时双工一条总线同一时刻仅允许一个设备发送但允许多个设备接收总线分类数据总线Data BusDB用于在 CPU、内存、I/O 设备等之间传输数据数据总线的宽度决定了计算机一次能传输的数据量32 位数据总线表示计算机一次可以传输 32 位(4 字节数据)地址总线Address BusAB主要用来传输地址信息CPU 通过地址总线指定访问内存单元 、I/O 设备地址地址总线的宽度决定了计算机的寻址能力如 32 位地址总线可以寻址2322^{32}232个不同的地址空间即 4GB 的内存空间计算机在直接寻址时需要从内存读取操作数要先将操作数的地址送到地址总线上。控制总线Control BusCB用于传输控制信号、时序信号和状态信息等协调计算机各部件的工作例如读 / 写信号、中断请求信号、时钟信号等都通过控制总线来传输按层次结构分类片内总线是集成电路芯片内部各功能单元之间的连线用于实现芯片内部的信息传输如 CPU 芯片内部的寄存器、算术逻辑单元ALU等之间的连接。系统总线连接计算机主机内各大部件如 CPU、内存、I/O 接口等是计算机系统的核心总线常见的系统总线有 ISA 总线、PCI 总线等外部总线用于计算机与外部设备之间的连接和通信如 USB 总线、IEEE 1394 总线等主要用于连接外部设备如打印机、扫描仪、移动存储设备等

相关新闻

NestJS + Kafka 秒杀系统完整实践总结

NestJS + Kafka 秒杀系统完整实践总结

文章目录前言1. 为什么在秒杀场景中用 Kafka 消息队列异步下单?2. Kafka 消息队列的基础概念回顾3. 秒杀中 Kafka 常见高频问题解析Q1. 如何保证 Kafka 消息不丢失?Q2. 如何保证秒杀下单的**幂等性**?Q3. Kafka 如何保证**顺序消费**&#xf…

2026/10/18 15:34:19 阅读更多 →
Java入门9 类和对象

Java入门9 类和对象

1. 面向对象的初步认知1.1 什么是面向对象Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成⼀件事情。用面向对象的思想…

2026/10/20 4:46:28 阅读更多 →
Arduino-LMIC区域配置指南:EU868/US915/AU915等频段设置

Arduino-LMIC区域配置指南:EU868/US915/AU915等频段设置

Arduino-LMIC区域配置指南:EU868/US915/AU915等频段设置 【免费下载链接】arduino-lmic LoraWAN-MAC-in-C library, adapted to run under the Arduino environment 项目地址: https://gitcode.com/gh_mirrors/ard/arduino-lmic Arduino-LMIC是一款强大的LoR…

2026/10/18 14:46:12 阅读更多 →

最新新闻

数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

十年前我第一次在模拟器里敲下 show mac address-table,看着那几行 MAC 和端口映射,并不觉得数据链路层有什么特别。直到后来排障时发现,很多网络“通了却不对”的问题,根源都藏在这一层。数据链路层是连接物理传输与网络逻辑之间…

2026/10/20 5:22:05 阅读更多 →
信呼OA v1.9.1部署与流程实战:中小团队生产级协同底座

信呼OA v1.9.1部署与流程实战:中小团队生产级协同底座

简介:信呼协同办公OA系统v1.9.1是一款面向中小企业及IT运维/开发人员的开源办公平台解决方案,旨在解决多终端协作、流程标准化与系统可定制化等核心管理需求。资源包共1256个文件,主体为606个PHP后端逻辑文件、231个GIF/79个PNG/3个JPG等前端…

2026/10/20 5:22:05 阅读更多 →
jstat实战:用JDK自带工具监控JVM内存与GC

jstat实战:用JDK自带工具监控JVM内存与GC

在Java服务卡顿、内存飙高、接口超时的时候,绝大多数人第一反应是抓一把jstack看线程,或者拉一份heap dump慢慢分析。但很多时候,问题的根源根本不在某个线程卡在哪行代码,而是整个堆的“新陈代谢”出了问题——对象疯狂创建、回收…

2026/10/20 5:22:05 阅读更多 →
Yume1.5交互式世界生成实战:单卡12FPS实时渲染与部署全解析

Yume1.5交互式世界生成实战:单卡12FPS实时渲染与部署全解析

第一次在某个开源项目页里看到“单卡 12 FPS 实时交互渲染”这句话,我还以为是拿预渲染视频抽帧充数。直到自己把提示词敲进去,生成出一片雨夜小巷,拖动路灯,地上的积水反光跟着偏移角度的那一刻,我才确定:…

2026/10/20 5:22:05 阅读更多 →
c++11学习

c++11学习

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 5:22:05 阅读更多 →
视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

1. 从离散Token到连续视觉:时间序列分析的新思路拆解时间序列分析这个领域,做的人多,但真正让人眼前一亮的突破少。传统方法从统计模型一路走到深度学习,Transformer架构进来之后,大家发现一个尴尬的事实:文…

2026/10/20 5:21:04 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →