【计算机组成原理笔记】

【计算机组成原理笔记】

1.1 计算机系统简介

  • 计算机系统由软件和硬件组成。软件又可分为系统软件和应用软件。

  • 计算机体系结构指的是(机器语言)程序员所看到的计算机系统属性概念性的结构与功能特性。(研究有无乘法指令)

  • 计算机组成是实现计算机体系结构所体现的属性(比如具体指令的实现,研究如何实现乘法指令)

系统复杂性管理方法

1.抽象:隐藏系统中不重要的环节

==2.3Y:1)层次化,将被设计的系统划分为多个模块或子模块、2)模块化:有明确定义的功能和接口、3)规则化:模块更容易被重用。

1.2 计算机的基本组成

冯诺依曼计算机的特点:

1.计算机由五大部分组成
2.指令和数据放在同等地位的存储器,可按地址寻访
3.指令和数据以二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心
在这里插入图片描述

存储器的基本组成

在这里插入图片描述
MAR:存储器地址寄存器,反映存储单元的个数。
MDR:存储器数据寄存器,反映存储字长。

  • 存储器的基本组成:存储体->存储单元->存储元件,存储单元存放一串二进制代码。
  • 存储字是存储单元中二进制代码的组合

运算器的基本组成及操作过程

在这里插入图片描述

控制器的基本结构

在这里插入图片描述

控制器的功能:解释指令,并保证指令的按序执行。

主机完成一条指令的过程

以取数指令为例:

  1. PC把指令的地址送给MAR
  2. MAR送给存储体
  3. 在控制器的控制下存储体把存储单元中的取数指令送给MDR
  4. MDR送给IR
  5. OP(IR)送给CU进行分析指令
  6. 在控制器的控制下把IR中的数的指令送给MAR,再从MAR给存储体取数,再把数给MDR,再把MDR给ACC。
    在这里插入图片描述

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

  1. 机器字长:CPU一次能处理数据的维数与CPU中的寄存器位数有关
  2. 运算速度:1)主频、2)核数,每个核支持的线程数、3)吉普森法、4)CPI,执行一条指令所需时钟周期数、5)MIPS 每秒执行百万条指令、6)FLOPS 每秒浮点运算次数、7)经验法,比如测试一个机子执行i++10万次的速度。
  3. 存储容量:存放二进制的总位数,一般有主存容量和辅存容量,主存容量为存储单元个数 X 存储字长,还可以用字节数来表示。

3.1 总线的基本概念

总线是各个部件共享的传输介质
总线上的信息传送有两种:串行和并行
总线结构的计算机举例:1.单总线结构。2.面向CPU的双总线结构框图3.以存储器为中心的双总线结构。
在这里插入图片描述
在这里插入图片描述

3.2 总线的分类

  • 片内总线:芯片内部的总线
  • 系统总线:计算机各部件直接的信息传输线,又可分为:1.数据总线(双向,与机器字长、存储字长有关)、2.地址总线(单向,与存储地址、I/O地址有关)、3.控制总线(有出 有入)
  • 通信总线:用于计算机系统之间或计算机系统与其他系统之间的通信,传输方式还是串行和并行。

3.3 总线特性及性能指标

总线物理实现

在这里插入图片描述

总线特性

  1. 机械特性:尺寸、性状、管脚数、排列顺序
  2. 电气特性:传输方向和有效的电平范围
  3. 功能特性:每根传输线的功能:地址、数据、控制
  4. 时间特性:信号的时序问题

总线的性能指标

  1. 总线宽度:数据线的根数
  2. 标准传输率:每秒传输的最大字节数(MBps)
  3. 时钟同步/异步
  4. 总线复用:地址线 与 数据线 复用
  5. 信号线数:地址线、数据线、控制线数的总和
  6. 总线控制方式
  7. 其他指标:比如负载能力

总线标准

例如

3.4 总线结构

  • 单总线结构

  • 多总线结构:1.双总线机构、2.三总线结构、3.三总线结构、4.四总线结构、

  • 总线结构举例:1.传统微型机总线结构、2.VL-BUS局部总线结构、3.PCI总线结构、4.多层PCI总线结构

3.5 总线控制

总线判优控制

在这里插入图片描述

  • 链式查询方式(好理解,忘了搜搜或者看看书)

总线通信控制

在这里插入图片描述

总线通信的四种方式

在这里插入图片描述
同步、异步、半同步通信的特点:在一个总线传输周期内(以输入为例)主模块发地址、命令(占用总线)、从模块准备数据(不占用总线)、从模块向主模块发送数据(占用总线)
对于分离式通信,就是充分挖掘系统总线每个瞬间的潜力

分离式通信特点:1.各模块有权申请占用总线2.采用同步方式通信,不等对方回答3.各模块准备数据时,不占用总线4.总线被占用时,无空闲

4.1 概述

存储器分类

  • 按存储介质分类:1.半导体存储器 TTL、MOS。 2.磁表面存储器:磁头、载磁体。3.磁芯存储器 硬磁材料、环状元件。4.光盘存储器。
  • 除了半导体存储器是易失的,其他都是非易失的。
  • 按存储方式分类:存取时间与物理地址无关为随机访问,有关为串行访问。

4.2 主存储器

  • 主存容量:主存存放二进制代码的总位数

半导体芯片简介

基本结构

包括了译码驱动、存储矩阵、读写电路。地址线和数据线决定了芯片容量;半导体芯片的片选线一般有两种,CS,CE,芯片选择或者芯片使能芯片。
在这里插入图片描述
译码驱动方式:线选法和重合法。

随机存取存储器

静态RAM和动态RAM

  • 动态RAM刷新:刷新与行地址有关:1.集中刷新(存取中心0.5us)2.分散周期(存取周期为1us)
  • DRAM一般为主存,SRAM为辅存

只读存储器(ROM)

1.掩模ROM(MROM)
2.PROM(一次性编程)
3.EPROM(多次性编程)
4.EEPROM(多次性编程)
5.Flash Memory(闪速型存储器)

存储器容量的扩展

  • 位扩展、字扩展、同时扩展

存储器与CPU的连接

  • 地址线的连接
  • 数据线的连接
  • 读/写命令线的连接
  • 片选线的连接
  • 合理选择存储芯片
  • 其他 时序、负载

存储器的校验

编码的检测能力与纠错能力和任意两组合法代码之间二进制位的最小差异数有关

  • 编码的最小距离:任意两组合法代码之间二进制位数的最小差异,L-1=D+C:L是编码的最小距离,也叫汉明距离。D是检测错误的位数,C是纠错的位数。
  • 汉明码采用奇偶校验和分组校验,并且汉明码的分组是一种非划分方式

汉明码的组成

汉明码的三要素 ,n为位数,k为检测位位数
在这里插入图片描述

提高访存速度的措施

  • 采用高速器件
  • 采用层次结构Cache-主存
  • 调整主存结构

单体多字系统

可以增加存储器的带宽,缺点,改一个很多都改变;读一个也会读取其他连续存取的数据
在这里插入图片描述

多体并行系统

  • 高位交叉 顺序编址
  • 低位交叉 各个体轮流编址,特点:在不改变存取周期的前提下,增加存储器的带宽

高性能存储芯片

  • SDRAM(同步DRAM):CPU无须等待
  • RDRAM:解决存储器带宽问题
  • 带Cache的DRAM

4.3 高速缓冲寄存器(听的不认真)

  • Cache命中率与Cache的容量和块长有关
  • 效率e与命中率有关:e=访问Cache的时间/平均访问时间 * 100%
  • Cache写操作:Cache和主存的一致性:写直达法和写回法:写直达法是写操作时数据即写入Cache也写入主存,写操作时间就是写入主存的时间,写回法是只写入Cache中
  • Cache的改进:1.增加Cache的级数。2.统一缓存和分立缓存
  • Cache主存的地址映射:1.直接映射。2.全相联映射。3.组相联映射。

4.4 辅助存储器

  • 特点:不直接与CPU交换信息。
  • 磁表面存储器的技术指标:
  • 在这里插入图片描述
  • 硬磁盘存储器:类型可分为固定磁头和移动磁头,或者按照可换盘和固定盘分类。
  • 硬磁盘存储器结构:主机到磁盘控制器到磁盘驱动器到盘片。
  • 光盘存储器。

5.1 概述

输入输出系统的组成

1.I/O软件

  • IO指令:CPU指令的一部分,由操作码、命令码、设备码组成
  • 通道指令:通道自身的指令,指出数组的首地址、传送字数、操作命令

2.I/O硬件

  • 输入输出设备、输入输出的I/O接口

I/O设备和主机之间的联系方式

1.I/O设备编址方式

  • 统一编址,此时CPU可直接用取数、存数指令对I/O接口操作
  • 不统一编址,有专门的I/O指令

2.设备选址

  • 用设备选择电路识别是否被选中

3.传送方式

串行和并行

4.联络方式

  • 立即响应
  • 异步工作采用应答信号(并行和串行)
  • 同步工作采用同步时标

5.I/O设备与主机的连接方式

  • 辐射式连接(分散式)
  • 总线连接

I/O设备与主机信息传送的控制方式

  • 程序查询方式
  • 程序中断方式:CPU和I/O部分的并行工作
  • DMA方式:主存和I/O之间有一条直接数据通道,不中断现行程序,周期挪用(周期窃取)

5.2 I/O设备(外部设备)

  • 大致分三类:人机交互设备、计算机信息存储设备、机机通信设备

5.3 I/O接口

为什么要设置接口(接口的功能?)

  1. 实现设备的选择
  2. 实现数据缓冲达到速度匹配
  3. 实现数据串-并格式转换
  4. 实现电平转换
  5. 传送控制命令
  6. 反映设备的状态

接口的功能和组成

  1. 总线连接方式的I/O接口电路:1.设备选择线。2.数据线。3.命令线。4.状态线。
    在这里插入图片描述
    左边的功能由右边的组成来实现。

I/O接口的基本组成

在这里插入图片描述
在这里插入图片描述

中断服务程序的流程

  1. 保护现场
  2. 中断服务
  3. 恢复现场
  4. 中断返回
    单重中断不允许中断嵌套,多重中断允许中断嵌套。

5.6 DMA方式

DMA与主存交换数据的三种方式

  • 1.停止CPU访问主存:控制简单、CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ROS服务通信如果先启动客户端,那么会请求异常需求,如何解决?最全】

问题: 如果在启动 ROS 服务的客户端之前启动了 ROS 服务,客户端可能会因为缺少服务而发出异常请求。这可能会导致服务端不知道如何处理请求,从而导致通信失败。要解决这个问题,有以下几种方法: 等待服务启动:在启动客…

C语言爱心代码大全集—会Ctrl+C就可以表白了

一、C语言爱心代码大全,会CtrlC就可以表白了! 博主整理了一个C语言爱心代码大全,里面有C语言爱心代码会动的动态效果和C语言爱心代码大全静态效果,只需复制粘贴就可以用啦! 1、动态C语言爱心代码效果图如下&#xff…

如何优雅地使用 Markdown?

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 要想优雅,首先得有一个丝滑、好用的Markdown编辑器。 我用typora做笔记三年多,收费之后我开始找替代品,尝试了很多,总是有这样那样的问题不满意&#x…

QT设置图标

可执行文件图标 把.ico文件放到工程目录中,于.pro文件同级,然后在.pro文件中加上 RC_ICONSxxx.ico窗口左上角图标和任务栏图标 在mainwindows的ui文件中 选择文件或选择资源。资源的话就是从QT resources中找。百度关键字QT resources。

软件测试面试复盘:技术面没有难倒我,hr面被虐的体无完肤

一般提到面试,肯定都会想问一下面试结果,我就大概的说一下面试结果,哈哈,其实不太想说,因为挺惨的,并没有像很多大佬一样 ”已拿字节阿里腾讯各大厂offer”,但是毕竟是自己的经历,无…

【JavaWeb】7—会话控制

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍…

7.redis-集群

一.概念 1.分片 集群中的每个redis实例都被认为是整个数据的一个分片,官方建议是最大1000个 2.槽位 redis集群有16384个哈希槽,每个key通过CRC16校验后通过总分片数量,对16384取模来决定放哪个槽,集群的每个节点负责一部分hash槽位。 3.槽位…

springboot+vue+java高速公路收费管理系统的设计

.第一,友好界面。高速公路收费管理系统开发设计,界面的友好性比较重要,满足这一要求才能体现出人性化设计特征,和用户应用系统便捷性相适应,动态的人机交互设计,用户应用系统的时候能感受到操作的便利&…

Maven核心概念

一、Maven基础知识 Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。 1、Maven模型 2、仓库分类 本地仓库:自己计算机上的一个目录中央仓库&a…

【vite+vue3】 多页面应用模式

需要注意到的点: 1. 项目文件结构 2. vite.config.js 的配置 3. 访问地址的路径 假设你有下面这样的项目文件结构 ├── package.json ├── vite.config.js ├── index.html ├── main.ts └── src├── project|————projectA&#xf…

1669_MIT 6.828 xv6代码的获取以及编译启动

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 6.828的学习的资料从开始基本信息的讲解,逐步往unix的一个特殊版本xv6过度了。这样,先得熟悉一下这个OS的基本代码以及环境。 在课程中其实…

Python工具库安装

1、Python工具库下载 (1)查询安装Python的版本信息。 按键 WinR,在弹出的“运行”对话框中输入cmd,在弹出的Dos系统中,输入python,即可查询得到Python的版本信息。本次所安装的python版本为3.8.10。 &…

后端开发之Swagger API开发工具

最近刚入职公司,做Java后端。当下对于新手程序员来说,的确并不友好,不仅是经济低迷,而且这次chatgpt的大火也极大地冲击了软件开发行业,所以小白必须抓紧时间卷,哪怕自己写出来的东西把自己搞失业……也要尽…

【Python从入门到进阶】14、字典高级应用

接上篇《13、元组高级应用及常见切片操作》 上两篇我们学习了Python中元组的高级应用,以及字符串、列表和元祖的切片操作。本篇我们来学习字典的高级应用,包括字典的查询、修改、添加、删除及遍历操作。 一、字典高级简介 我们通过前面的学习知道&…

ORACLE创建表空间、用户、授权和Navicat创建序列和触发器及解决ORA-00942、ORA-01219错误

问题描述:因为每次Oracle删除数据库的时候磁盘文件还没删除,然后自己手动停止Oracle,删除磁盘里的.DBF文件导致数据库重启后无法连接。 cmd sqlplus sys as sysdba执行alter database open;查看你报错的数据文件(就是你停止Orac…

Git 基础知识总结

Git 基础知识总结 1. Git 简介 Git 是什么 Git是一款分布式版本控制系统,可以有效地管理代码的版本和变更。Git可以在本地进行版本控制,也可以在多人协作开发时进行远程版本控制。Git的设计目标是速度快、数据完整性高、支持分布式、非线性开发流程。…

NVIDIA-cuSPARSE数据类型2023年(二)

4 cuSPARSE数据类型参考 4.1 数据类型 float,double,cuComplex,cuDoubleComplex后两个类型是来自cuComplex.h 4.2 cusparseStatus_t 表示库函数返回的状态,可以有以下取值: CUSPARSE_STATUS_SUCCESS 操作成功完成CUSPARSE_STATUS_NOT_INITIALIZED 库…

SpringBoot整合junitmybatis

SpringBoot整合junit&mybatis3,SpringBoot整合junit3.1 环境准备3.2 编写测试类4,SpringBoot整合mybatis4.1 回顾Spring整合Mybatis4.2 SpringBoot整合mybatis4.2.1 创建模块4.2.2 定义实体类4.2.3 定义dao接口4.2.4 定义测试类4.2.5 编写配置4.2.6 …

拉取代码到本地 git pull 和 git clone 的区别

一、git pull 使用 git pull 拉取代码,你需有权限。 从你自己的远程仓库拉取代码,或者使用你团队的仓库拉取代码。 1.有 有权限可以拉取代码的远程仓库 1. 所以首先要连接远程仓库,前提你得先有个本地仓库存放,如果没有先创建。 …

ToBeWritten之反入侵安全技术面经总结

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…