当前位置: 首页 > news >正文

《计算机组成原理》(第3版)第1章 计算机系统概论 复习笔记

第1章 计算机系统概论

一、计算机系统简介

(一)计算机的软硬件概念
1.计算机系统由“硬件”和“软件”两大部分组成
(1)所谓“硬件”,是指计算机的实体部分,如主机、外部设备等。
(2)所谓“软件”,是指由人们事先编制的具有各类特殊功能的程序组成,如操作系统等。
2.计算机的软件通常又可以分为两大类:系统软件和应用软件
(1)系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,高效运行。
(2)应用软件又称为应用程序,它是用户根据任务需要所编制的各种程序。

(二)计算机系统的层次结构
1.现代计算机的解题过程,如图1-1所示。
在这里插入图片描述
图1-1 计算机的解题过程
(1)早期计算机只有机器语言,用户用二进制代码来编写程序,如图1-2所示。
在这里插入图片描述
计图1-2 实际机器M1
(2)汇编语言。没有机器能直接识别这种语言,必须先将汇编语言程序翻译成机器语言程序,然后才能被机器接受自动运行。算机系统便具有两级层次结构,如图1-3所示。
在这里插入图片描述
图1-3 具有两级层次结构的计算机系统
(3)高级语言,如FORTRAN、BASIC等。有三级层次结构的计算机系统,如图1-4所示。在这里插入图片描述
图1-4 具有三级层次结构的计算机系统
(4)翻译程序有两种:一种是编译程序,另一种是解释程序。
①编译程序是将用户编写的高级语言程序的全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序。
②解释程序是将源程序的一条语句翻译成对应于机器语言的一条语句,并且立即执行这条语句,接着翻译源程序的下一条语句,并执行这条语句。
(5)由于软件的发展,机器M0是直接将机器M1中的每一条机器指令翻译成一组微指令,即构成一个微程序。这样又可认为计算机系统具有四级层次结构,如图1-5所示。
在这里插入图片描述
图1-5 具有四级层次结构的计算机系统
(6)上述四级层次结构的系统中,实际上在实际机器M1与虚拟机器M2之间还有一级虚拟机器,它是由操作系统软件构成的,如图1-6所示。
在这里插入图片描述
图1-6 多级层次结构的计算机系统

(三)计算机组成和计算机体系结构
1.计算机体系结构
计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,即概念性的结构与功能特性。包括指令集、数据类型、存储器寻址技术、I/O机理等。
2.计算机组成
计算机组成是指如何实现计算机体系结构所体现的属性,它包含了许多对程序员来说是透明的硬件细节。例如,指令系统体现了机器的属性,这属于计算机结构的问题。但指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,这些都属于计算机组成问题。

二、计算机的基本组成

(一)冯·诺依曼计算机的特点
冯·诺依曼(Von Neumann)提出了“存储程序”的概念。以此概念为基础的各类计算机通称为冯·诺依曼机。它的特点可归结如下:
①计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成。
②指令和数据以同等地位存放于存储器内,并可按地址寻访。
③指令和数据均用二进制数表示。
④指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
⑤指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
⑥机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。

(二)计算机的硬件框图
典型的冯·诺依曼计算机是以运算器为中心的,如图1-7所示。
在这里插入图片描述
图1-7 典型的冯·诺依曼计算机结构框图
现代的计算机已转化为以存储器为中心,如图1-8所示。
在这里插入图片描述
图1-8 以存储器为中心的计算机框图
1.图中各部件的功能
①运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器内;
②存储器用来存放数据和程序;
③控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果;
④输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式;
⑤输出设备可将机器运算结果转换为人们熟悉的信息形式。
2.现代计算机由三大部分组成:
CPU、I/O设备及主存储器(Main Memory,MM),如图1-9所示。
在这里插入图片描述
图1-9 现代计算机的组成框图
(1)算术逻辑单元(Arithmetic Logic Unit,ALU)简称算逻部件,用来完成算术逻辑运算。
(2)控制单元(Contro1 Unit,CU)用来解释存储器中的指令,并发出各种操作命令来执行指令。ALU和CU是CPU的核心部件。
(3)I/O设备也受CU控制,用来完成相应的输入、输出操作。

(三)计算机的工作步骤
1.上机前的准备
(1)建立数学模型
建立数学模型,研究对象的变化规律就变成了解一系列数学问题,可通过计算机求解。
(2)确定计算方法
确定对应的计算方法,将其变成适合计算机运算的加、减、乘、除四则运算
(3)编制解题程序
编制解题程序就是将运算步骤用一一对应的机器指令描述。
2.计算机的工作过程
细化的计算机组成框图,如图1-10所示。
在这里插入图片描述
图1-10 细化的计算机组成框图
(1)主存储器
主存储器(简称主存或内存)包括存储体M、各种逻辑部件及控制电路等。主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出)。
(2)运算器
运算器最少包括3个寄存器和一个算术逻辑单元(ALU)。表1-1列出了寄存器存放不同类别操作数的情况。
在这里插入图片描述
表1-1 各寄存器所存放的各类操作数
(3)控制器
控制器是计算机的神经中枢,由它指挥各部件自动、协调地工作。控制器由程序计数器(Program Counter,PC)、指令寄存器(Instruction Register,IR)以及控制单元(CU)组成。
①PC用来存放当前欲执行指令的地址,且具有自动加1的功能,即可自动形成下一条指令的地址。
②IR用来存放当前的指令,IR的内容来自主存的MDR。IR中的操作码(OP(IR))送至CU,记作OP(IR)→CU,用来分析指令。
(4)I/O
I/O子系统包括各种I/O设备及其相应的接口。

三、计算机硬件的主要技术指标

(一)机器字长
机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。

(二)存储容量
存储器的容量应该包括主存容量和辅存容量。主存容量是指主存中存放二进制代码的总位数。辅存容量通常用字节数来表示。

(三)运算速度
计算机的运算速度与机器的主频、执行什么样的操作、主存本身的速度(主存速度快,取指、取数就快)等都有关。

相关文章:

《计算机组成原理》(第3版)第1章 计算机系统概论 复习笔记

第1章 计算机系统概论 一、计算机系统简介 (一)计算机的软硬件概念 1.计算机系统由“硬件”和“软件”两大部分组成 (1)所谓“硬件”,是指计算机的实体部分,如主机、外部设备等。 &#xff0…...

达梦数据库的系统视图v$cachers

达梦数据库的系统视图v$cachers 达梦数据库的系统视图V$CACHERS的作用是显示缓存中的项信息,在 ini 参数 USE_PLN_POOL !0 时才统计。这个视图帮助数据库管理员监控和分析缓存的使用情况,优化数据库性能。通过查询V$CACHERS视图,可以获取缓存…...

电路元件基本知识详解

电路元件基本知识详解 在现代电子技术中,电路元件是构成各种电子电路的基本单元。它们各自具有不同的特性和功能,通过不同的连接方式实现多种多样的电路功能。本文将详细介绍几种常见的电路元件及其基本知识。 ### 一、电阻器 #### 1. 电阻器的基本概…...

从零开始写一个微信小程序

从零开始写一个微信小程序可以分为几个步骤。以下是一个详细的指南,帮助你从头到尾完成一个简单的微信小程序。 ### 一、准备工作 1. **注册微信小程序账号**: - 前往[微信公众平台](https://mp.weixin.qq.com/)注册一个小程序账号。 - 进行企业认证(个人账号需要申…...

07030405复杂可编程逻辑器件CPLD现场可编程阵列FPGA

复杂可编程逻辑器件CPLD&现场可编程阵列FPGA 7.3 复杂可编程逻辑器件CPLD7.3.1CPLD的结构 7.4现场可编程门阵列FPGA7.4.1FPGA实现逻辑功能的基本原理7.4.2FPGA结构简介1.可编程逻辑块2.I/O块3.可编程连线资源CPLD与FPGA的区别 7.5可编程逻辑器件开发过程简介编程条件 7.3 复…...

《雅思口语真经总纲1.0》话题实战训练笔记part1——5. Bus or taxi

《雅思口语真经总纲1.0》笔记——第四章:口语素材大全(part1、part2、part3回答准则及练习方法,不包括范例答案)★★★★★ 文章目录 Bus or taxiHou often do you take the bus?20240803答评价疑问 When was the first time you…...

《工程检索增强生成系统时的七个失败点》论文 AI 解读

周末使用 AI 速度了一篇 RAG 相关的论文,文中提到的【设计 RAG 系统时需要考虑的七个失败点】非常有价值,简单整理一下分享出来,大家如果感兴趣可以继续阅读原文。 论文名称:Seven Failure Points When Engineering a Retrieval A…...

每日一题——贪心算法

1005. K 次取反后最大化的数组和 - 力扣(LeetCode) 题解: 一开始有点理解错他的意思,以为是i是题目中会给出,所以一开始没有什么思路,然后当看了题解之后,就知道了原来i是自己订的&#xff0c…...

Artix7系列FPGA实现SDI视频编解码+图像缩放+多路视频拼接,基于GTP高速接口,提供4套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的FPGA图像缩放方案本博已有的已有的FPGA视频拼接叠加融合方案本方案的无缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图S…...

HTTP 状态码详细介绍

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内…...

React前端面试每日一试 5.什么是受控组件和非受控组件?

在React中,受控组件和非受控组件是两种处理表单数据的方式。理解这两种方式对于管理和维护表单状态非常重要。 受控组件(Controlled Components) 受控组件是指那些表单数据完全由React组件的状态控制的组件。也就是说,表单元素的…...

代码随想录打卡第四十四天

代码随想录–动态规划部分 day 44 动态规划第11天 文章目录 代码随想录--动态规划部分一、力扣1143--最长公共子序列二、力扣1035--不相交的线三、力扣53--最大子数组和四、力扣392--判断子序列 一、力扣1143–最长公共子序列 代码随想录题目链接:代码随想录 给定…...

【JAVA】枚举类的使用:通过枚举类名称得到对应值进行输出

枚举类其实就是一个特殊的class。 /*** ClassName: CardType* Description:数字卡类型对应的文字卡类型*/ public enum CardType {NORMAL_CARD("金普卡"),BUSINESS_CARD("商务卡"),PRIVATE_CARD("黑金无限卡");private String cardName;CardTyp…...

20240731软考架构------软考6-10答案解析

每日打卡题6-10答案 6、【2012年真题】 难度:一般 若系统中的某子模块需要为其他模块提供访问不同数据库系统的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库&#xff0c…...

学习记录——day25 多线程编程 临界资源 临界区 竞态 线程的同步互斥机制(用于解决竟态)

目录 ​编辑 一、多进程与多线程对比 二、 临界资源 临界区 竞态 例1:临界资源 实现 输入输出 例2:对临界资源 进行 减减 例子3:临界资源抢占使用 三、线程的同步互斥机制(用于解决竟态) 3.1基本概念 3.2线…...

[RK3566]linux下使用upgrade_tool报错

linux下使用upgrade_tool报错Creating Comm Object failed! Rockusb>uf /home/zhuhongxi/RK3566_AOSP_SDK/rockdev/Image-rk3566_tspi/update.img Loading firmware... Support Type:RK3568 FW Ver:b.0.00 FW Time:2024-08-03 12:00:09 Loader ver:1.01 Loader Time:…...

系统架构师(每日一练13)

每日一练 答案与解析 1.应用系统构建中可以采用多种不同的技术,()可以将软件某种形式的描述转换为更高级的抽象表现形式,而利用这些获取的信息,()能够对现有系统进行修改或重构,从而产生系统的一个新版本。答案与解析 问题1 A.逆…...

Error: No module factory available for dependency type: CssDependency

本篇主要用来记录VUE打包的问题点,今天使用npm run build:prod 打包VUE出现如下问题: Error: No module factory available for dependency type: CssDependency 因为测试和预发布都挺正常的,正式环境竟然出问题,废话不多说&…...

【langchain学习】使用Langchain生成多视角查询

使用Langchain生成多视角查询 导入所需库: from langchain.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables import RunnablePassthrough from config import llm设置提示模板&#x…...

ASPCMS 漏洞详细教程

一.后台修改配置文件拿shell 登录后台 如下操作 保存并抓包 将slideTextStatus的值修改为1%25><%25Eval(Request(chr(65)))25><%25 放包&#xff08;连接密码是a&#xff09; 然后用工具连接 成功连接...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...