计算机组成原理:1. 计算机系统概论
更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验
文章目录
- 1.1 计算机系统简介
- 1.1.1 计算机软硬件概念
- 1.1.2 计算机的层次
- 1.1.3计算机组成和计算机体系结构
- 1.2 计算机的基本组成
- 1.2.1 冯·诺伊曼计算机的特点
- 1.2.2 计算机的硬件框图
- 1.2.3 计算机的工作步骤
- 1.3 计算机硬件的主要技术指标
- 1.3.1 机器字长
- 1.3.2 存储容量
- 1.3.3 运算速度
1.1 计算机系统简介
1.1.1 计算机软硬件概念
计算机系统由硬件和软件两大部分组成:
-
硬件:是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外部设备等。
-
软件:由人们事先编制的具有各类特殊功能的程序组成,通常存放在计算机的主存或辅存内。
计算机性能的好坏取决于软、硬件功能的总和。
计算机的软件通常又可以分为两大类:系统软件和应用软件:
-
系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行。它包括:标准程序库、语言处理程序、操作系统、服务程序、数据库管理系统、网络软件等。
-
应用软件又称为应用程序,它是用户根据任务需要所编制的各种程序,如科学计算程序、数据处理程序、过程控制程序、事务管理程序等。
1.1.2 计算机的层次
现代计算机具有多级层次的结构:

从计算机系统的多级层次结构来看,可以将硬件研究的主要对象归结为传统机器 M1M_1M1,和微程序机器 M0M_0M0。软件的研究对象主要是操作系统级以上的各级虚拟机。
1.1.3计算机组成和计算机体系结构
计算机体系结构:指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。
计算机组成:指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。
例:对于一个计算机来说,其具有乘法计算、除法计算等功能,这是其结构的组成部分,而对于乘法计算指令和除法计算指令实现的方式,则是计算机组成的问题。
1.2 计算机的基本组成
1.2.1 冯·诺伊曼计算机的特点
1945 年,数学家冯·诺依曼(von Neumann)在研究 EDVAC\text{EDVAC}EDVAC 机时提出了存储程序的概念。以此概念为基础的各类计算机通称为冯·诺依曼机。它的特点可归结如下:
- 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
- 指令和数据以同等地位存放于存储器内,并可按地址寻访。
- 指令和数据均用二进制数表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
1.2.2 计算机的硬件框图
典型的冯·诺依曼计算机是以运算器为中心的:

现代的计算机已转化为以存储器为中心:

图中各部件的功能如下:
-
运算器:完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内。
-
存储器:存放数据和程序。·控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。
-
输入设备:将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。
-
输出设备:将机器运算结果转换为人们熟悉的信息形式,如打印机输出、显示器输出等。
由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器(Central Processing Unit,CPU)。把输入设备与输出设备简称为
I/O设备(Input/Output Equipment)这样,现代计算机可认为由三大部分组成:CPU,I/O设备及主存储器(Main Memory,MM);CPU与主存储器合起来又可称为主机,I/O设备又可称为外部设备。

算术逻辑单元(Arithmetic Logic Unit,ALU):简称算逻部件,用来完成算术逻辑运算。
控制单元(Control Unit,CU):用来解释存储器中的指令,并发出各种操作命令来执行指令。
ALU 和 CU 是 CPU 的核心部件。I/O 设备也受 CU 控制,用来完成相应的输入、输出操作。
1.2.3 计算机的工作步骤
在许多科学技术的实际问题中,往往会遇到许多复杂的数学方程组,而数字计算机通常只能执行加、减、乘、除四则运算,这就要求在上机解题前,先由人工完成一些必要的准备工作。
这些工作大致可归纳为:
-
建立数学模型:找到一系列反映研究对象变化规律的数学方程组。
-
确定计算方法:针对数学模型对应有计算机可行的计算方法。
-
编制解题程序:编写相应的计算程序使可以通过计算机运行得到结果。
具体到计算机硬件部分:
-
主存储器存储计算程序及计算所需和产生的所有数据;
-
运算器读取主存储器的数据进行计算,并将中间结果存入主存储器;
-
控制器对这些指令进行分析来控制存储和运算的操作;
-
I/O设备最终将这些结果输出。
1.3 计算机硬件的主要技术指标
衡量一台计算机性能的优劣是根据多项技术指标综合确定的。其中,既包含硬件的各种性能指标,又包括软件的各种功能。这里主要讨论硬件的技术指标。
1.3.1 机器字长
机器字长是指 CPU 一次能处理数据的位数,通常与 CPU 的寄存器位数有关。字长越长,数的表示范围越大,精度也越高。机器的字长也会影响机器的运算速度。若 CPU 字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响机器的运算速度。
机器字长对硬件的造价也有较大的影响。它将直接影响加法器(或ALU)、数据总线以及存储字长的位数。所以机器字长的确定不能单从精度和数的表示范围来考虑。
1.3.2 存储容量
存储器的容量应该包括主存容量和辅存容量。
主存容量是指主存中存放二进制代码的总位数。即:存储容量二存储单元个数×存储字长\text{存储容量二存储单元个数} \times \text{存储字长}存储容量二存储单元个数×存储字长。
现代计算机中常以字节数来描述容量的大小,因一个字节已被定义为 8 位二进制代码,故用字节数便能反映主存容量。辅存容量通常用字节数来表示。
1.3.3 运算速度
计算机的运算速度与许多因素有关,如机器的主频、执行什么样的操作、主存本身的速度等都有关。
早期用完成一次加法或乘法所需的时间来衡量运算速度,即普通法,显然是很不合理的。后来采用吉普森(Gibson)法,它综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比,即:
TM=∑i=1nfitiT_{\text{M}} = \sum^{n}_{i = 1}{f_i t_i} TM=i=1∑nfiti
其中,TMT_{\text{M}}TM 为机器运行速度;fif_ifi 为第 iii 种指令占全部操作的百分比数;tit_iti 为第 iii 种指令的执行时间。
现在机器的运算速度普遍采用单位时间内执行指令的平均条数来衡量,并用 MIPS(Million Instruction Per Second,百万条指令每秒)作为计量单位。例如,某机每秒能执行 200 万条指令,则记作 2 MIPS。也可以用 CPI(Cycle Per Instruction)即执行一条指令所需的时钟周期(机器主频的倒数),或用 FLOPS(Floating Point Operation Per Second,浮点运算次数每秒)来衡量运算速度。
相关文章:
计算机组成原理:1. 计算机系统概论
更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验 文章目录1.1 计算机系统简介1.1.1 计算机软硬件概念1.1.2 计算机的层次1.1.3计算机组成和计算机体系结构1.2 计算机的基本组成1.2.1 冯诺伊曼计算机的特点1.2.2 计算机的硬件框图1.2.3 计算机的工作步骤1.3 计…...
【c#】c#常用小技巧方法整理(5)—— 字符串操作类
1、GetStrArray(string str, char speater, bool toLower) 把字符串按照分隔符转换成 List 2、GetStrArray(string str) 把字符串转 按照, 分割 换为数据 3、GetArrayStr(List list, string speater) 把 List 按照分隔符组装成 string 4、GetArrayStr(List list) 得到数组列表以…...
用队列实现栈VS用栈实现队列
之前我们就讲过队列,栈的基础知识,笔者之前有过详细的介绍,感兴趣的可以根据笔者的个人主页进行查找:https://blog.csdn.net/weixin_64308540/?typelately225. 用队列实现栈请你仅使用两个队列实现一个后入先出(LIFO&…...
MY2480-16P语音模块的使用
MY2480-16P语音模块的使用开发环境:STM32CUBEMXKEIL5辅助软件:串口助手、迅捷文字转语音一、MY2480-16P语音模块引脚图及引脚定义二、选择触发方式三、使用串口控制MY2480-16P语音模块四、模块使用指南开发环境:STM32CUBEMXKEIL5 辅助软件&a…...
I/O 多路复用
。新到来一个 TCP 连接,就需要分配一个进程或者线程,那么如果要达到 C10K,意味着要一台机器维护 1 万个连接,相当于要维护 1 万个进程/线程,操作系统就算死扛也是扛不住的。 一个进程虽然任一时刻只能处理一个请求&…...
2023 最新版网络安全保姆级指南,从0到1,建议收藏!
一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…...
力扣39.组合总数
文章目录力扣39.组合总数题目描述方法1:深搜回溯力扣39.组合总数 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可…...
sql的case when用法详解
简单CASE WHEN函数: CASE SCORE WHEN A THEN 优 ELSE 不及格 END CASE SCORE WHEN B THEN 良 ELSE 不及格 END CASE SCORE WHEN C THEN 中 ELSE 不及格 END等同于,使用CASE WHEN条件表达式函数实现: CASE WHEN SCORE A THEN 优WHEN SCORE …...
AtCoder Grand Contest 061(题解)
A - Long Shuffle 这道题本质是一个找规律的题 既然是打表题,我们先暴力把他打出来 (盗一张图.jpg) 接下来就是在这张图中挖掘答案 我们可以明显的看到偶数行是有一些规律的 要么是相邻对的互换,要么不变 不变和互换的位置也有讲究,在二进制…...
生成系列论文:文本控制的3d点云生成 TextCraft(一):论文概览
TextCraft: Zero-Shot Generation of High-Fidelity and Diverse Shapes from Text 论文原文: https://arxiv.org/abs/2211.01427 论文的研究动机 DALL2已经在文本控制的图像生成上取得很好的效果,但是基于文本控制的3d点云生成的研究还不太成熟&#…...
IDEA常用插件
常用IDEA插件 Codota 插件下载地址:Codota AI Autocomplete for Java and JavaScript - IntelliJ IDEs Plugin | Marketplace IDEA的自动补全功能已经很强大了,但是这个插件的自动补全功能更加强大,这是一个基于AI技术,学习了大量…...
Spring的事务传播机制
多个事务方法相互调用时,事务如何在这些方法之间进行传播,Spring中提供了七种不同的传播机制,来保证事务的正常执行: REQUIRED:默认的传播机制,如果存在事务,则支持/加入当前事务,如…...
Python:路径之谜(DFS剪枝)
题目描述 小张冒充 X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 nn 个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走…...
阿里巴巴在开源压测工具 JMeter 上的实践和优化
Apache JMeter [1] 是 Apach 旗下的开源压测工具,创建于 1999 年初,迄今已有超过 20 年历史。JMeter 功能丰富,社区(用户群体)庞大,是主流开源压测工具之一。 性能测试通常集中在新系统上线或大型活动前&…...
React Draggable插件实现拖拽功能
React Draggable插件实现拖拽功能1.下载Draggable插件2.引入Draggable插件3.设置一个div,并设置样式,并用Draggable包裹起来4.设置拖拽的范围5.Draggable常用props1.下载Draggable插件 npm install react-draggable2.引入Draggable插件 // 引入拖拽插件…...
MySQL-运算符
算术运算符: 加法运算-: 减法运算*: 乘法运算/: 除法运算,返回商%: 求余运算,返回余数例:创建n5表,插入数字100,查看数据表分别查看、-、*、/、%mysql> create table n5(-> num int); Query OK, 0 rows affected…...
Hudi-基本概念(时间轴、文件布局、索引、表类型、查询类型、数据写、数据读、Compaction)
文章目录基本概念时间轴(TimeLine)文件布局(File Layout)Hudi表的文件结构Hudi存储的两个部分Hudi的具体文件说明索引(Index)原理索引选项全局索引与非全局索引索引的选择策略对事实表的延迟更新对事件表的去重对维度表的随机更删…...
数据分享|中国各省、各市、各区县分年、分月、逐日平均气温数据(2000年~2019年)
今天分享给大家的是 2000 年~2019 年中国各省、各市、各县的分年、分月、逐日的平均气温数据(单位:摄氏度) 原始数据来源于国家气象科学数据共享服务平台-中国地面气候资料日值数据集(V3.0),原始数据是各个观测站点的日度数据,为了方便大家使用,我使用 Barnes 方法(…...
steam/csgo搬砖,2023年最暴利的项目
这个项目赚钱主要来源于两个地方: 1.比如说今天美元的汇率是1美元6.8人民币,那我们有特定的渠道能拿到1美元5.0-5.5左右人民币的价格,100美元的汇率差利润就有180元左右的利润,当然这个价格是根据国际的汇率上下会有浮动的。 2.…...
RDSDRDSPolarDBPolarDB-X的区别
RDS 阿里云关系型数据库(Relational Database Service,简称RDS),是一种稳定可靠、可弹性伸缩的在线数据库服务。 基于阿里云分布式文件系统和高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和PPAS(Post…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
