当前位置: 首页 > 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; 然后用工具连接 成功连接...

二维码生成原理及解码原理

☝☝☝二维码配图 二维码 二维码&#xff08;Quick Response Code&#xff0c;简称QR码&#xff09;是一种广泛使用的二维条形码技术&#xff0c;由日本公司Denso Wave在1994年开发。二维码能有效地存储和传递信息&#xff0c;广泛应用于商品追溯、支付、广告等多个领域。二维…...

云计算实训20——mysql数据库安装及应用(增、删、改、查)

一、mysql安装基本步骤 1.下载安装包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2.解压 tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3.卸载mariadb yum -y remove mariadb 查看解压后的包 [rootmysq…...

24年电赛——自动行驶小车(H题)基于 CCS Theia -陀螺仪 JY60 代码移植到 MSPM0G3507(附代码)

前言 只要搞懂 M0 的代码结构和 CCS 的图形化配置方法&#xff0c;代码移植就会变的很简单。因为本次电赛的需要&#xff0c;正好陀螺仪部分代码的移植是我完成的。&#xff08;末尾附全部代码&#xff09; 一、JY60 陀螺仪 JY60特点 1.模块集成高精度的陀螺仪、加速度计&…...

数组的增删查查改

1、增 1.Cpp #include <iostream> using namespace std; #include "add.h"int main() {//初始化数组int arr[5];//前四个元素为1&#xff0c;2&#xff0c;3&#xff0c;4for (int i 0; i < 4; i){arr[i] i1;}//数组第5个赋值为100arr[4] 100;for (int…...

设计模式——动态代理

设计模式——动态代理 动态代理的基本概念动态代理的实现步骤总结 在Java中&#xff0c;动态代理是一种强大的机制&#xff0c;它允许在运行时创建一个代理对象&#xff0c;这个代理对象可以代表另一个实际对象&#xff0c;它允许你在不直接操作原始对象的情况下&#xff0c;通…...

vue(element-ui组件) 的this.$notify的具体使用

getNotify() {this.noClose();let message "";message this.itemData.map((ele) > {const text "任务" ele.title "新增" ele.num "条言论";return this.$createElement("el-tooltip",{props: {content: text,pla…...

c++ - 模拟实现set、map

文章目录 前言一、set模拟实现二、map模拟实现 前言 在C标准库中&#xff0c;std::set 和 std::map都是非常常用的容器&#xff0c;它们提供了基于键值对的存储和快速查找能力。然而&#xff0c;关于它们的底层实现&#xff0c;C标准并没有强制规定具体的数据结构&#xff0c;只…...

计算机网络-PIM协议基础概念

一、PIM基础概念 组播网络回顾&#xff1a; 组播网络从网络结构上大体可以分为三个部分&#xff1a; 源端网络&#xff1a;将组播源产生的组播数据发送至组播网络。 组播转发网络&#xff1a;形成无环的组播转发路径&#xff0c;该转发路径也被称为组播分发树&#xff08;Multi…...

优化PyCharm:让IDE响应速度飞起来

优化PyCharm&#xff1a;让IDE响应速度飞起来 PyCharm&#xff0c;作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;在提供丰富功能的同时&#xff0c;有时也会出现响应慢的问题。这不仅影响开发效率&#xff0c;还可能打击开发者的积极性。本文将详细…...

对象转化为String,String转化为对象

title: 对象转化为string&#xff0c;string转化为对象 date: 2024-08-02 11:50:40 tags: javascript const obj { uname:haha, age:18,gender:女} //将对象转换成string JSON.stringify(obj) //取成一个对象&#xff0c;将字符串传化为对象 JSON.parse(obj)常用领域在localst…...

滨州哪里做网站/seo优化网站百度技术

目录 ZOOkeeper&#xff0c;Eureka和Redis集群有什么区别&#xff1f; zk集群 Eureka集群 Redis集群 过半数存活原则 ZOOkeeper&#xff0c;Eureka和Redis集群有什么区别&#xff1f; zk集群 Eureka集群 Redis集群 过半数存活原则...

凡科怎么建设网站/舟山seo

问题背景&#xff1a; 在Visual Studio 2017中打开一个往期工程&#xff0c;已知工程是在framework 4.6.1下生成的&#xff0c;同时在工程中调用Matlab生成的.dll文件&#xff0c;但是使用的Matlab的版本未知。 1、首先直接打开工程的时候&#xff0c;显示framework版本不对&am…...

文明网站建设方案/好看的网页设计作品

零基础学黑客&#xff0c;搜索公众号&#xff1a;白帽子左一作者&#xff1a;掌控安全—柚子 环境搭建 源码下载官网&#xff1a;https://www.wuzhicms.com/ 放到本地phpstudy根目录下&#xff0c;访问install路径进行安装。 访问后台&#xff1a; 访问前台&#xff1a; 敏感…...

网站建设公司简介范文/好口碑关键词优化地址

lvs fullnat开源出来有一阵子了&#xff0c;刚开源时研究过一阵子&#xff0c;现在重新捡起来发现它的优势不是一星半点的&#xff0c;闲下来总结了一下。 1、syn_proxy----------用于防御synflood攻击 可以在keepalived配置文件中针对每一个服务分别设置打开或关闭。 2、conne…...

wordpress2.9.2漏洞/seo排名工具外包

OpenStack-配仪表盘 【基于此文章的环境】点我快速打开文章 计算节点安装&#xff08;compute1&#xff09; 1、安装 yum install openstack-dashboard -y &>/dev/nullecho $? 2、配置 1. 官方配置 【官方地址】点我快速打开文章 2. 导入配置 lsrzcat local_settings &…...

贵阳营销网站建设公司/怎样制作免费网页

多态性 从派生类到基类转换 引用或指针既可以指向基类对象也可以指向派生类对象 只有通过指针或引用调用虚函数才会发生动态绑定...