26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述
26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述
文章目录
1.1 计算机的发展



1.2 计算机硬件和软件

1.2.1 计算机硬件的基本组成
早期的冯诺依曼机


对于同一个功能,既可以用软件实现,也可以用硬件实现
冯诺依曼计算机的特点
- 计算机由五大部件组成
- 指令和数据以同等地位存于存储器,可按地址访问(统一编址,指令和数据所在存储单元无差异)
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心(输入和输出设备与存储器之间的数据传送经过运算器完成,运算器算是一个中转站。这样就会让运算器的数据计算的效率降低)
- 即输入设备先把数据交给运算器,然后再转交给存储器,存储器要输出时,也是存储器先交给运算器然后运算器交给输出设备
数据驱动方式:
- 控制流驱动:指令–>数据
- 数据流驱动:数据–>指令
现代计算机的结构

以存储器为中心,输入的数据直接交给存储器,输出的时候也由存储器直接给输出设备,更多的解放运算器的运算时间

1.2.2 各个硬件的工作原理

注:现在的计算机通常把MAR,MDR也集成在CPU内
主存储器的基本组成

从主存中拿就是在MAR写地址,存储器根据地址拿出来数据写到MDR里面去。
往主存中写就是在MAR写地址,MDR写数据,表明CPU想把MDR的数据存在哪里,然后存储器根据MAR地址把MDR存在相应的位置

运算器的基本组成

控制器的基本组成

计算机的工作过程






总结:

1.2.3 计算机软件



1.2.4 计算机系统的层次结构


汇编语言指令和机器语言指令一一对应
LOAD: 取数操作 ,MUL: 乘法操作



1.2.5 计算机系统的工作原理


每次要执行可执行文件的时候都要从外存中把可执行文件调入内存中,然后CPU进行处理,用户可以通过输入设备进行交互,结果可以通过输出设备显示或者打印什么的

整个程序执行的过程就是对应指令执行的过程
存储程序工作方式详解(可以看看做个了解)
计算机组成原理中的“存储程序”工作方式是由冯·诺依曼于1945年提出的核心设计思想,其核心是将程序和数据以二进制形式预先存储到计算机内存中,由控制器自动按顺序执行指令,实现自动化运算。以下是其具体工作原理和特点的解析:
一、核心定义与基本原理
- 程序与数据统一存储
程序指令和操作数据均以二进制形式存储在内存中,两者通过地址区分。控制器根据指令地址逐条读取,并通过操作码和操作数解析执行逻辑- 统一性:指令和数据在物理存储上没有区别,仅在逻辑上被赋予不同含义(如程序区、数据区的划分)
- 二进制编码:所有信息(指令、数据)均以0/1代码表示,简化了硬件设计
- 自动执行与控制流程
- 顺序执行:程序计数器(PC)指示当前指令地址,默认按地址递增顺序执行
- 条件跳转:遇到分支指令(如条件转移),PC跳转至目标地址,改变执行顺序
二、工作流程的四大阶段
- 程序与数据输入
通过输入设备(如键盘)将程序和数据存入内存,内存划分为多个可寻址的存储单元,按地址编号管理 - 指令执行周期
每条指令的执行分为三个阶段:- 取指:从内存中读取指令并送入控制器
- 译码:解析指令的操作码(动作类型)和操作数(数据地址)
- 执行:运算器根据操作码处理数据,结果存回内存或寄存器
- 控制器的核心作用
控制器负责协调各部件:通过译码生成控制信号,指挥运算器、存储器等协同工作,并更新PC以指向下一条指令 - 结果输出
处理后的数据通过输出设备(如显示器)呈现,或继续存储在内存中供后续指令使用
三、冯·诺依曼体系的支持结构
存储程序方式依托以下硬件架构实现:
- 五大部件协作:运算器、存储器、控制器、输入设备、输出设备分工明确
- 二进制与直接寻址:数据以二进制存储,内存单元可直接通过地址访问
- 集中控制:指令执行由控制器统一调度,实现高效的顺序处理
四、优势与局限性
-
优势
- 高度自动化:程序预存后无需人工干预,计算机可连续执行复杂任务
- 灵活扩展:通过修改程序即可实现不同功能,无需调整硬件
- 效率提升:结合流水线、缓存技术,现代计算机进一步优化了执行速度
-
局限性
-
顺序执行瓶颈:串行处理导致并行计算能力受限,需通过多核、超线程等技术弥补
-
存储墙问题:CPU与内存速度差异导致性能瓶颈
-
安全性依赖
:恶意程序可能通过存储漏洞攻击系统,需依赖防护机制
-
五、历史意义与现代发展
存储程序原理奠定了现代计算机的基础,其影响包括:
- 技术革命:从ENIAC的手动配线到EDVAC的自动执行,标志着计算机从专用设备转向通用工具
- 持续演进:尽管冯·诺依曼结构存在局限,但其核心理念仍是当代计算机设计的基石,并通过哈佛架构(指令与数据分离存储)、量子计算等创新拓展边界
通过这一机制,计算机得以从简单的计算工具演变为支撑人工智能、大数据等复杂应用的通用平台,体现了“存储程序”思想的深远影响。
1.3 计算机性能指标

- 机器字长:能够直接处理的二进制数据的位数
- 指令字长:一个指令中包含的二进制代码的位数
- '存储字长:一个存储单元二进制数据的位数
1.3.1 存储器性能指标


1.3.2 CPU性能指标
CPU主频:CPU内数字脉冲信号振荡的频率,其实就是1秒里面有多少个时钟周期


注:公式中主频的值反映的是:每秒钟会出现多少个时钟周期。

注:注意与存储器的容量或者文件的大小中的K、M、G、T的区别
1.3.3 系统整体的性能指标

动态测试:基准程序(跑分软件)是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较。
思考:

知识点回顾

存储器的容量:衡量计算机的存储容量
机器字长:衡量计算机并行处理的能力
数据通路带宽:衡量计算机在功能部件之间传送数据的能力
相关文章:
26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述
26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述 文章目录 26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述1.1 计算机的发展1.2 计算机硬件和软件1.2.1 计算机硬件的基本组成1.2.2 各个硬件的工作原理1.2.3 计算机软件1.2.4 计算机系统的层次结构1.2.5 计算机系统…...
转换算子介绍
### 转换算子的定义与用法 #### 定义 转换算子(Transformation Operators)是指用于处理分布式数据集的操作符,在大数据框架中广泛使用,例如Apache Flink和Apache Spark。这些操作符允许开发者对数据集执行各种变换操作࿰…...
Android学习总结之Glide自定义三级缓存(实战篇)
一、为什么需要三级缓存 内存缓存(Memory Cache) 内存缓存旨在快速显示刚浏览过的图片,例如在滑动列表时来回切换的图片。在 Glide 中,内存缓存使用 LruCache 算法(最近最少使用),能自动清理长…...
单片机开发软件
目录 纯编码 vscode Ardunio Keil 1. 集成化开发环境(IDE) 2. 多架构芯片支持 3. 高效的代码生成与优化 4. 强大的调试与仿真功能 5. 丰富的库函数与生态系统 6. 教育与企业级适用性 典型应用场景 半编码半图形化 STM32CUBEIED 1. 图形化配置…...
LeetCode100.2 字母异位词分组
观察题目,需要把strs中的元素按照字母进行归类,一个朴素的思路是:遍历strs,对每个元素排序后插入哈希表中,随后再遍历一遍表将其转化为vector<vector<string>>。 class Solution { public:vector<vect…...
深入了解 Stable Diffusion:AI 图像生成的奥秘
一、引言 AI 艺术与图像生成技术的兴起改变了我们创造和体验视觉内容的方式。在过去几年里,深度学习模型已经能够创造出令人惊叹的艺术作品,这些作品不仅模仿了人类艺术家的风格,甚至还能创造出前所未有的新风格。在这个领域,Sta…...
Python爬虫实战:研究ajax异步渲染加密
一、引言 在当今数字化时代,数据已成为推动各行业发展的核心驱动力。网络爬虫作为一种高效的数据采集工具,能够从互联网上自动获取大量有价值的信息。然而,随着 Web 技术的不断发展,越来越多的网站采用了 AJAX(Asynchronous JavaScript and XML)异步渲染技术来提升用户体…...
大语言模型训练的两个阶段
先说结论:第一阶段在云平台训练至收敛 第二阶段本地GPU微调 一、阶段划分的核心逻辑 阶段目标资源特点典型耗时占比成本敏感度预训练获取通用表征能力需要大规模分布式计算70-90%高(追求每美元算力)微调适配特定任务需要领域数据安全/低延迟…...
显示的图标跟UI界面对应不上。
图片跟UI界面不符合。 要找到对应dp的值。UI的dp要跟代码里的xml文件里的dp要对应起来。 蓝湖里设置一个宽度给对应上。然后把对应的值填入xml. 一个屏幕上的图片到底是用topmarin来设置,还是用bottommarin来设置。 因为第一节,5,7 车厢的…...
OJ判题系统第6期之判题逻辑开发——设计思路、实现步骤、代码实现(策略模式)
在看这期之前,建议先看前五期: Java 原生实现代码沙箱(OJ判题系统第1期)——设计思路、实现步骤、代码实现-CSDN博客 Java 原生实现代码沙箱之Java 程序安全控制(OJ判题系统第2期)——设计思路、实现步骤…...
css中的 vertical-align与line-height作用详解
一、vertical-align 详解 作用对象:行内元素(inline/inline-block)或表格单元格内容核心功能:控制元素在行框内的垂直对齐方式常用取值: baseline(默认):基线与父元素基线对齐top&a…...
vue数据可视化开发echarts等组件、插件的使用及建议-浅看一下就行
在 Vue 项目中使用 ECharts 进行数据可视化开发时,可以结合 Vue 的响应式特性和 ECharts 的强大功能,实现动态、交互式的图表展示。 一、ECharts 基础使用 1. 安装 ECharts npm install echarts2. 在 Vue 组件中使用 ECharts <template><div…...
高并发内存池(三):TLS无锁访问以及Central Cache结构设计
目录 前言: 一,thread cache线程局部存储的实现 问题引入 概念说明 基本使用 thread cache TLS的实现 二,Central Cache整体的结构框架 大致结构 span结构 span结构的实现 三,Central Cache大致结构的实现 单例模式 thr…...
在Taro中开发一个跨端Svg组件,同时支持小程序、H5、React Native
Taro系列中一直没有跨端的绘图工具,小程序端支持canvas但是不支持svg,RN端有 react-native-svg 支持svg,但是没有很好原生的canvas插件,社区的canvas都是基于WebView实现的,或者skia,这个插件的书写方式和c…...
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
背景说明: 每次把教学照片上传csdn,都需要打开相册,一张张截图,然后ctrlV黏贴到CSDN内,我觉得太烦了。 改进思路: 是否可以先把所有照片都上传到csdn,然后再一张张的截图(去掉幼儿…...
SIP协议栈--osip源码梳理
文章目录 osiposip主体结构体code main函数 状态机转化结构体code状态转换 sip事务结构体code osip_dialog结构体code 创建并发送200 OK响应 osip_message结构体code osip_eventcode 打印接收到的SIP消息 osip OSIP(Open Source Implementation of SIP)…...
Python零基础入门到高手8.4节: 元组与列表的区别
目录 8.4.1 不可变数据类型 8.4.2 可变数据类型 8.4.3 元组与列表的区别 8.4.4 今天彩票没中奖 8.4.1 不可变数据类型 不可变数据类型是指不可以对该数据类型进行原地修改,即只读的数据类型。迄今为止学过的不可变数据类型有字符串,元组。 在使用[]…...
深度学习入门:深度学习(完结)
目录 1、加深网络1.1 向更深的网络出发1.2 进一步提高识别精度1.3 加深层的动机 2、深度学习的小历史2.1 ImageNet2.2 VGG2.3 GoogleNet2.4 ResNet 3、深度学习的高速化3.1 需要努力解决的问题3.2 基于GPU的高速化3.3 分布式学习3.4 运算精度的位数缩减 4、深度学习的应用案例4…...
OpenCV CUDA模块中矩阵操作------矩阵元素求和
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在OpenCV的CUDA模块中,矩阵元素求和类函数主要用于计算矩阵元素的总和、绝对值之和以及平方和。这些操作对于图像处理中的特征提取、…...
使用Scrapeless Scraping Browser的自动化和网页抓取最佳实践
引言:人工智能时代浏览器自动化和数据收集的新范式 随着生成性人工智能、人工智能代理和数据密集型应用程序的快速崛起,浏览器正在从传统的“用户互动工具”演变为智能系统的“数据执行引擎”。在这一新范式中,许多任务不再依赖单一的API端点…...
java数组题(5)
(1): 思路: 1.首先要对数组nums排序,这样两数之间的差距最小。 2.题目要求我们通过最多 k 次递增操作,使数组中某个元素的频数(出现次数)最大化。经过上面的排序,最大数…...
使用Thrust库实现异步操作与回调函数
文章目录 使用Thrust库实现异步操作与回调函数基本异步操作插入回调函数更复杂的回调示例注意事项 使用Thrust库实现异步操作与回调函数 在Thrust库中,你可以通过CUDA流(stream)来实现异步操作,并在适当的位置插入回调函数。以下是如何实现的详细说明&a…...
物联网无线传感方向专业词汇解释
涡旋电磁波(VEMW):一种具有轨道角动量的电磁波,其特性在于能够在传播过程中携带额外的相位信息,从而增加通信系统的容量和灵活性。波前:波动传播过程中,同一时刻振动相位相同的所有点构成的几何曲面,代表波…...
Maven 插件参数注入与Mojo开发详解
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
C++中void*知识详解和注意事项
一、void* 是什么? 在 C/C 中,void* 表示一个通用指针类型(generic pointer),可以指向任意类型的对象,但 不能直接解引用或进行算术运算,必须先进行类型转换。 void* ptr; // 可以指向任意类型…...
2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积
2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积 上面试卷可点下方,支持在线编程,在线测评~ 2024年全国信息素养大赛 算法创意实践挑战赛复赛(小学组)_c_少儿编程题库学习中心-嗨信奥 5月17号 全国青…...
【补充笔记】修复“NameError: name ‘ZhNormalizer‘ is not defined”的直接方法
#工作记录 一、问题描述 在运行CosyVoice_For_Windows项目时,出现以下报错: File "F:\PythonProjects\CosyVoice_For_Windows\cosyvoice\cli\frontend.py", line 74, in __init__ self.zh_tn_model ZhNormalizer(remove_erhuaFalse, fu…...
预训练模型实战手册:用BERT/GPT-2微调实现10倍效率提升,Hugging Face生态下的迁移学习全链路实践
更多AI大模型应用开发学习内容,尽在聚客AI学院。 一. 预训练模型(PTM)核心概念 1.1 什么是预训练模型? 预训练模型(Pre-trained Model, PTM)是在大规模通用数据上预先训练的模型,通过自监督学…...
并发笔记-给数据上锁(二)
文章目录 核心挑战 (The CRUX)29.1 并发计数器 (Concurrent Counters)1. 简单非并发计数器 (Figure 29.1)2. 同步计数器(单锁版本 - Coarse-Grained Lock, Figure 29.2)3. 可伸缩计数:近似/懒惰计数器 (Approximate/Sloppy Counter, Figure 2…...
mac docker弹窗提示Docker 启动没有响应
一、原因分析 这台笔记电脑是Mac M3操作系统,安装Docker之后,Docker应用程序一直启动不起来。 二、解决办法 sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/Pri…...
