计算机组成原理笔记-第1章 计算机系统概论

第一章 计算机系统概论

笔记PDF版本已上传至Github个人仓库:CourseNotes,欢迎fork和star,拥抱开源,一起完善。

该笔记是最初是没打算发网上的,所以很多地方都为了自我阅读方便,我理解了的地方就少有解释;我不理解的地方理解后加上的解释便很多。

因此,若读者在阅读过程中遇到错误或理解问题,请评论区留言或者私信,我们一起讨论:看到会及时回复。

1.1 计算机系统简介

  • 计算机系统组成
    • 硬件:计算机的实体,如主机、外设等
    • 软件:由具有各类特殊功能的信息(程序)组成,分为应用软件,系统软件
  • 计算机体系结构和计算机组成的区别
    • 计算机体系结构研究的是程序员所见到的计算机系统的属性概念性的结构与功能特性,具体来说就是指令系统、数据类型、寻址技术、I/O 机理
    • 计算机组成研究的是如何实现计算机体系结构所体现的属性,例如如何实现乘法指令

1.2 计算机系统基本组成

1.2.1 基本概念
  • 冯诺依曼计算机的特点
    • 计算机5部分组成
    • 指令和数据具有同等地位,按照地址寻访
    • 指令和数据用二进制表示
    • 指令由操作码地址码组成
    • 存储程序
    • 运算器为中心

  • 现代计算机硬件框图

1.2.2 五大部件的基本组成

  • 存储器的基本组成
    • 存储体:由若干个存储单元构成
    • 存储单元:也叫存储存放一串二进制代码,每个存储单元赋予一个地址号,按地址寻访
    • 存储字:存储单元中二进制代码的组合,和存储单元意思相近
    • 存储字长:存储单元中二进制代码的位数存储字长:存储单元中二进制代码的位数,按字编址时,机器字长=存储字长。假如按字节编址,存储器一个存储单元大小为1个字节。现在的计算机都是按字节编址了。
    • 主存地址寄存器(MAR):连接地址总线,可以反映存储单元的个数
    • 主存数据寄存器(MDR):连接数据总线,可以反映存储字长
      • 例:MAR=4,MDR=8,则由 2 4 = 8 2^4=8 24=8个存储单元,每个存储单元可以存储8个数,因此存储体容量为 8 × 8 = 64 8\times8=64 8×8=64
  • 运算器的基本组成

    • ALU(Arithmetic&logical Unit)算术逻辑单元是能实现多组算术运算和逻辑运算的组合逻辑电路。ALU是组合逻辑电路,要保存就需要用到时序逻辑电路
    • ACC(Accumulator)累加寄存器,专门用来存放操作数或运算结果。两个操作数中的指令的通常一个操作数在累加器A中,运算完成后累加器A中便可得到运算结果。
    • MQ(Multiple—Quotient Register)乘商寄存器。主要负责数据的乘法与除法运算并可保存运算结果
  • 控制器的基本组成

    • PC(Program Counter)程序计数器,存放当前欲执行指令在存储器的存放位置
    • IR(Instruction Register)指令寄存器,用来存放指令的,存放当前正在执行的指令,包括指令的操作码,操作数
    • CU(Control Unit)控制单元,是整个控制器的核心,分析指令,然后发出各种控制信号
1.2.3 指令的执行过程

  • 取指令(1、2、3 、4): PC MAR M MDR IR ,(PC)+1 PC
  • 分析指令 (5):OP(IR) CU
  • 执行指令 (6、7、8、9)Ad(IR) MAR M MDR ACC

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

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

  • 存储容量:存储器的容量应该包括主存容量辅存容量

  • 主存容量:指主存中存放二进制代码的总位数,定义为【存储容量=存储单元个数X存储字长】,例如,MAR=16,MDR=32,则【存储容量= 2 16 × 32 = 2 21 2^{16}\times32=2^{21} 216×32=221位】

    • 辅存容量:辅存容量通常用字节数来表示,如硬盘有80G( 1 G = 1024 M = 2 10 × 2 20 = 2 30 1G=1024M=2^{10}\times2^{20}=2^{30} 1G=1024M=210×220=230Byte)容量
    • 区别:是否为易失性存储器。
  • MIPS (Million Instructions Per Second):每秒钟CPU能执行的指令总条数 (单位:百万条/秒)。
    M I P S = Instruction count Execution time × 1 0 6 \mathrm{MIPS}=\frac{\text{Instruction count}}{\text{Execution time}\times10^6} MIPS=Execution time×106Instruction count

  • CPI(Cycle Per Instruction):执行一条指令所需时钟周期数。

  • FLOPS(Floating Point Operation Per Second):每秒浮点运算次数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【鸿蒙】 模拟器运⾏

【鸿蒙】HUAWEI DevEco Studio安装-CSDN博客 【鸿蒙】创建第⼀个鸿蒙项⽬-CSDN博客 点击 Tools 菜单下的 Device Manager 点击 Install ,安装模拟器 下载模拟器相关的SDK,点击 Finish 选择安装⽬录,点击 New Emulator 选择设备类型&#…

【ARMv8/ARMv9 硬件加速系列 2 -- ARM NEON 加速运算介绍】

文章目录 ARM NEONNEON 向量寄存器NEON 寄存器使用方式NEON 寄存器的视图NEON 寄存器别名NEON 寄存器的用途ARM NEON 在ARMv8架构中,引入了一组新的寄存器,称为向量寄存器(Vector Registers),用于支持高效的向量和浮点计算。这些寄存器是SIMD(Single Instruction, Multi…

PCL common中常见的基础功能函数

文章目录 一、common模块中的头文件二、common模块中的基本函数1、angles.h2、centroid.h1)计算给定一群点的3D中心点,并且返回一个三维向量2)计算给定的三维点云的协方差矩阵。3)计算正则化的3*3的协方差矩阵以及给定点云数据的中心点4)利用一组点的指数对其进行一般的、…

【SQL】in 和 exists 的区别

在 SQL 中,IN 和 EXISTS 都用于过滤查询结果,但它们在使用场景和性能方面有一些区别。下面是详细的解释: 1. IN IN 操作符用于检查某个值是否存在于一个指定的列表或子查询的结果集中。IN 常用于较小的数据集和静态值列表。 语法 SELECT …

报错:has naming conflicts with other components, ignored

在 Vue 项目编译时,出现如下报错 [unplugin-vue-components] component "xxx"(xxx/Index.vue) has naming conflicts with other components, ignored. [unplugin-vue-components] component "xxx"(xxx/Index.vue) has naming conflicts with …

FFmpeg源码:bytestream2_peek_be32函数分析

一、bytestream2_peek_be32函数的声明 FFmpeg源码中bytestream2_peek_be32函数的声明如下: DEF(unsigned int, be32, 4, AV_RB32, AV_WB32) 该宏定义有多层。把它简化,其函数声明可以等价于: static unsigned int bytestream2_peek_be32(G…

GSettings(一)——Root 权限的服务调用Gsetting失效

错误描述 当在 root 权限下拉起的服务中,调用 Gsetting 设置 key,无法实现持久化,并且命令行查看 key 并没有设置成功,命令行运行会输出如下警告: (process:183768): dconf-WARNING **: 10:55:36.400: failed to comm…

代码随想录——分发饼干(Leetcode455)

题目链接 贪心 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int count 0;for(int i 0, j 0; i < g.length && j < s.length; i, j){if(s[j] > g[i]){count;}else{i--;}}return count;} }

springboot中获取某个注解下面的某个方法参数值

要获取方法的参数值&#xff0c;你首先需要有一个类的实例&#xff0c;并且需要能够实际调用该方法。在Java中&#xff0c;方法的参数值是在方法被调用时由调用者传入的&#xff0c;因此&#xff0c;你不能直接从外部“获取”一个未调用方法的参数值。 下面是一个简单的示例&a…

IDS使用规则

ids入侵检测系统 Snort(基于特征的入侵检测系统) 软硬件配套 snort官网链接&#xff1a;Snort - Network Intrusion Detection & Prevention System(https://www.snort.org) 环境&#xff1a;centos7,拖动需要开共享粘贴板和开双向 一、daq 1、预装dap所需程序 yum inst…

为什么五笔没人用了?

五笔输入法现在较少人使用的原因主要有以下几点&#xff1a; 学习门槛高&#xff1a;五笔输入法的学习难度相对较大&#xff0c;需要掌握所有的字根&#xff0c;全面了解编码的规律&#xff0c;并学习每个字的拆字原则&#xff0c;这要求用户有相当高的耐心和时间去学习和练习…

外星人Alienware m15R7 原厂Windows11系统

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

【MySQL进阶之路 | 高级篇】InnoDB存储结构

1. 数据库的存储结构 : 页 索引结构给我们提供了高效的索引方式&#xff0c;不过索引信息以及数据记录都是保存在文件上的.确切说是存储在页结构中.另一方面&#xff0c;索引是在存储引擎中实现的&#xff0c;MySQL服务器上的存储引擎负责对表中数据的读取和写入操作.不同的存…

Java | Leetcode Java题解之第165题比较版本号

题目&#xff1a; 题解&#xff1a; class Solution {public int compareVersion(String version1, String version2) {int n version1.length(), m version2.length();int i 0, j 0;while (i < n || j < m) {int x 0;for (; i < n && version1.charAt(…

速卖通测评成本低见效快,自养号测评的实操指南,快速积累销量和好评

对于初入速卖通的新卖家而言&#xff0c;销量和评价的积累显得尤为关键。由于新店铺往往难以获得平台活动的青睐&#xff0c;因此流量的获取成为了一大挑战。在这样的背景下&#xff0c;进行产品测评以积累正面的用户反馈和销售记录&#xff0c;成为了提升店铺信誉和吸引潜在顾…

QGraphicsItem 的函数 itemChange 缩放和旋转无信号发出

如果在使用 QGraphicsItem 的 itemChange 函数时&#xff0c;发现缩放和旋转没有信号发出&#xff0c;可能是因为以下几个原因&#xff1a; 未设置正确的标志&#xff1a;确保你已经设置了 QGraphicsItem::ItemSendsGeometryChanges 标志。这个标志告诉 QGraphicsItem 在几何形…

Redis 的安装与部署

本文为Redis的Linux版单机部署。 上传 redis-3.2.8 源码到 /opt/software/ 解压到 /opt/module/ [huweihadoop101 software]$ tar -zxvf redis-3.2.8.tar.gz -C /opt/module/安装依赖 [huweihadoop101 software]$ sudo yum -y install gcc-c tclRedis是C语言编写的 编译安装…

【Linux】CentOS 7 安装配置 postfix 邮件服务器随笔

本文并不是完整配置教程&#xff0c;只是配置过程中零散代码随笔&#xff0c;不成系统 记录配置 PostFix 邮件服务器过程&#xff0c;由于经常用到&#xff0c;会不定时更新完善 yum install -y postfix dovecot cyrus-sasl-plain cyrus-sasl mailx# 设置hostname hostnamect…

Hive建表乱码解决--设置编码格式UTF8

1.创建Hive元数据库 Hive元数据存储在MySQL中&#xff0c;因此需要进入MySQL中创建Hive元数据库&#xff1b;若已存在Hive元数据库&#xff0c;则修改元数据库字符格式 hive建库语句&#xff1a; create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;只有修改…