【计算机组成原理笔记】

news/2024/5/3 14:11:48/文章来源:https://blog.csdn.net/qq_33950926/article/details/120316262

【计算机组成原理笔记】

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对主存的利用率

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

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

相关文章

3036: 莫比乌斯最大值isUsefulAlgorithm(2023郑州轻工业大学校赛

题意: 有n个问题和闲聊 问题的格式是’what’s S问题S_{问题}S问题​’ 闲聊的格式是 S问题S_{问题}S问题​S回答S_{回答}S回答​,S问题S_{问题}S问题​的长度>0 对于每个 S回答S_{回答}S回答​ ,只能回答在这句话之前提问的问题 那么…

线程池ThreadPoolExecutor原理

文章目录线程池ThreadPoolExecutor原理核心参数如何设置核心线程数和最大线程数线程空闲时间阻塞队列设置线程池的五种状态原理执行流程拒绝策略线程淘汰机制线程池ThreadPoolExecutor原理 核心参数如何设置 核心线程数和最大线程数 线程池中线程数量我们一般要区分任务的类…

操作技巧 | Revit中如何新建系统类型并赋予颜色?

大家好,这里是行走的安利机---建模助手。 新建系统后,把材质赋予系统,以做出不同颜色的管道和风管系统,那么:Revit中如何新建系统类型并赋予颜色呢? 下面小编说下解决方案。 REVIT 具体解决办法如下 正…

携多款产品亮相“深圳先进制造业集群展”,华秋积极探索发展机遇

4月7日,在深圳市工业和信息化局指导下,由深圳先进技术研究院作为总促进机构的深圳市新一代信息通信产业集群于第十一届中国电子信息博览会(CITE2023)期间举办 “深圳先进制造业集群展”。 本次先进制造业集群展以“科技带动产业创…

设计干货:PCB为什么要拼版?PCB拼版的适用方式分享

PCB为什么要拼版? 拼版主要是为了满足 生产的需求 ,有些PCB板太小,不满足做夹具的要求,所以需要拼在一起进行生产。 拼版也可以提高SMT贴片的 焊接效率 ,如只需要过一次SMT,即可完成多块PCB的焊接。 同时…

FPGA纯verilog实现UDP通信,三速网自协商仲裁,动态ARP和Ping功能,提供工程源码和技术支持

目录1、前言2、我这里已有的UDP方案3、UDP详细设计方案MAC层发送MAC发送模式ARP发送IP层发送IP发送模式UDP发送MAC层接收ARP接收IP层接收UDP接收SMI读写控制SMI配置10/100/1000M仲裁ICMP应答 (ping)ARP缓存CRC校验以太网测试模块RGMII转GMII模块4、vivado工程详解5、上板调试验…

《大众金融》企业级开发实战

目录 主要内容 1 配置中心简介 1.1 什么是配置 1.2 传统配置形式存在的问题 1.3 配置中心的作用 2 Apollo简介 2.3 Apollo特性 2.4 产品对比 2.5 Apollo初体验 2.5.1 访问控制台 应用配置中心Apollo-讲义 主要内容 1)了解配置中心的概念以及使用场景 2&…

单元测试系列 | 如何更好地测试依赖外部接口的方法

背景 在现在这个微服务时代,我们项目中经常都会遇到很多业务逻辑是依赖其他服务或者第三方接口。工作中各位同学对于这类型场景的测试方式也是五花八门,有些是直接构建一个外部mock服务,返回一些固定的response;有些是单元测试都不写&#x…

Linux复习 / 命令与权限部分QA梳理

文章目录前言Q&AshellQ:什么是shell?Q:shell的作用?Q:为什么要有shell?Q:shell的生命周期多长?Q:shell的原理/实现是怎样的?Q:为什么会有内建…

Scrum Master 应该采取哪些措施来提高团队效率?

项目经理应该从这5方面提高团队的开发效率 1、目标明确有时间节点 提高团队开发效率,最重要的是明确目标与期限。制定SMART目标,明确告知成员要实现什么,输出什么,标准以及时限等,需要考虑目标的可达成性和目标与项目的…

【牛客刷题专栏】0x17:JZ17打印从1到最大的n位数(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

Java初阶(异常)

文章目录一、异常的结构体系二、异常的处理2.1 防御式编程2.2 异常的抛出2.4 异常的捕获(异常的具体处理方式)(1)异常声明 throws(2) 捕获处理 try-catch2.4 异常的处理流程三、自定义异常类一、异常的结构…

go学习线路图

1. go学习线路图 1.1.2. 资源 先决条件 GoSQL 通用开发技能 学习 GIT,在 GitHub 上建立一些仓库,与其它人分享你的代码了解 HTTP(S) 协议,request 方法(GET, POST, PUT, PATCH, DELETE, OPTIONS)不要害怕使用 Google&a…

和数软件荣获上海市“专精特新”企业荣誉认定

近日,上海市经济和信息化委员会公示了2022年上海市“专精特新”企业名单。根据《关于组织开展2022年创新型中小企业评价、专精特新中小企业认定和复核工作的通知》(沪经信企〔2022〕776号),经专家评审和综合评估,上海和…

学会吊打面试官之map

小白:大牛,我最近学习了一些C的STL容器,但是我还是有一些疑惑,特别是对于map,我不太理解它的底层实现和具体用法。能否跟我讲一下? 大牛:当然可以啊,map是一种非常常用的关联式容器…

小企业选择什么样的CRM系统比较合适,有什么特点?

CRM客户管理系统已经成为各种规模的企业,特别是小型企业的重要工具。CRM系统帮助小型企业更有效地管理客户数据和互动,简化销售流程,并提高客户满意度。市场上有如此多的选择,小企业该如何选择合适的CRM系统? 什么是C…

深圳CPDA|如何着手商业数据分析?

商业数据分析是一项非常重要的工作,可以帮助企业做出更明智的决策。 下面是一些着手商业数据分析的步骤: 1.确定你的问题 首先需要明确你想要解决什么问题。 这通常需要与业务团队沟通,以便了解他们正在寻找哪些信息。 2.收集数据 收集数…

linux语言学习记录

文章目录前言一、linux文件结构二、指令三、Gvim编辑器1、命令模式2、底行命令四、正则表达式1、表达式匹配举例2、对文件里面内容进行操作3、使用 \( 和 )\ 符号括起正规表达式,即可在后面使用\1和\2等变量来访问和中的内容前言 记录自己学习linux的笔记&#xff…

IFPUG功能点度量5:计算功能规模

功能点计数类型:开发项目、升级项目、应用 一、 三种功能能规模计算: 1、开发项目计算 DFP(开发项目功能规模)ADD(交付用户的功能规模)CFP(转换功能的功能规模) 2、升级项目计算 …

【代码笔记】Pytorch学习 DataLoader模块详解

Pytorch DataLoader模块详解dataloader整体结构DataLoaderinit 初始化参数解释代码解析IterableDataset 判断构建Sampler,单样本构建BatchSampler,组建batch构建collate_fn 对获取的batch进行处理其他的一些逻辑判断_get_iterator代码解析multiprocessin…