编程基础必学知识之计算机组成原理详解

0 网络
去网络学习
软件:具有各类特殊功能的信息(程序)组成
软件类型定义举例
系统软件用来管理整个计算机系统标准程序库,语言处理程序,操作系统,数据库管理系统,网络软件
应用软件按任务需要编制成的各种程序科学计算程序,数据处理程序,过程控制程序,事务管理程序

计算机系统的层次结构

image

计算机系统的体系结构

分类区别定义
计算机体系结构有无乘法指令程序员见到的计算机系统的属性,即概念性的结构和功能特性(指令系统,数据类型,寻址技术,I/O机理)
计算机组成如何实现乘法指令实现计算机体系结构所体现的属性(具体指令的实现)
冯.诺依曼计算机的特点

1.计算机由运算器,存储器,控制器,输入设备和输出设备五大部分组成

2.指令和数据以同等地位存放与存储器内,并可按地址寻访

3.指令和数据用二进制表示

4.指令由操作码和地址码组成

5.存储程序

6.以运算器为中心

冯.诺依曼计算机硬件框图

image

现代计算机硬件框图

image

设某机的指令字长为16位,其中操作码占6位,地址码占10位。
操作码操作性质具体内容
000001取数将指令地址码指示的存储单元中的操作数取到运算器的累加器ACC中
000010存数将ACC中的数存至指令地址码指示的存储单元中
000011将ACC中的数与指令地址码指示的存储单元中的数相加,结果存于ACC中
000100将ACC中的数与指令地址码指示的存储单元中的数相乘,结果存于ACC中
000101打印将指令地址码指示的存储单元中操作数打印输出
存储器的基本组成
组成解释
存储单元存放一串二进制代码
存储字存储单元中二进制代码的组合
存储字长存储单元中二进制代码的位数每个存储单元赋予一个地址号
MAR存储器地址寄存器,反映存储单元的个数 2**n
MDR存储器数据寄存器,反映存储字长 n
运算器基本组成
寄存器,操作数,运算加法减法乘法除法
ACC被加数及和被减数及差乘积高位被除数及余数
MQ乘数及乘积低位
X加数减数被乘数除数
控制器的基本组成
简称意义作用解释
PC取指令取指,访存存放当前欲执行指令的地址,具有计数功能(PC)+1->pc
IR分析指令取指,访存存放当前欲执行的指令
CU执行指令执行,访存控制单元
以取数指令为例

image
程序首地址PC

取指令:PC->MAR->存储体M-MDR->IR

分析指令:IR->CU

执行指令:IR->MAR->M->MDR->ACC

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

机器字长:CPU一次能处理数据的位数,与CPU中的寄存器位数有关。
运算速度:主频,吉普森法(每条指令的执行的时间以及他们在全部操作中所占的百分比TM=i=1nfiti),MIPS(百万条指令每秒),CPI(执行一条指令所需时钟周期数),FLOPS(每秒浮点运算次数)
存储容量(存放二进制信息的总位数)
分类组成
主存容量存储单元×字节数
主存容量字节数
辅存容量字节数
指令和数据都存于存储器中,计算机如何区分它们?

1.通过不同的时间段,在取指令阶段取出的为指令,在执行指令阶段取出为数据
2.通过地址源:由PC提供存储单元地址的取出的是指令,由指令地址码提供存储单元地址取出的是操作数。

第二章 计算机的发展及应用

Moore定律:微芯上集成的晶体管数目每三年翻两番

计算机的应用

一、科学计算和数据处理
二、工业控制和实时控制
三、网络技术
1.电子商务
2.网络教育
3.敏捷制造
四、虚拟现实
五、办公自动化和管理信息系统
六、CAD/CAM/CIMS
七、多媒体技术
八、人工智能
芯片集成度的提高受以下三方面的限制
芯片集成度受物理极限的制约
按几何级数递增的制作成本
芯片的功耗、散热、线延迟
计算机代替部分
光计算机利用光子取代电子进行运算和存储
DNA生物计算机通过控制DNA分子间的生化反应
量子计算机利用原子所具有的量子特性

第三章 系统总线

计算机系统五大部件之间的互连的方式有两种

1.分散连接:各部件之间使用单独的连线

2.总线连接:将各部件连到一组公共信息传输线上

总线:连接各个部件的信息传输线,是各个部件共享的传输介质
总线传输特点:某一时刻只能有一路信息在总线上传输,即分时使用。为了减轻总线负载,总线上的部件应通过三态驱动缓冲电路与总线相连
总线上信息的传输:
串行:每条线可一位一位的传输二进制代码,一串二进制代码可在一段时间内逐一传输完成
并行:若干条传输线同时传输若干条二进制代码
面向 CPU 的双总线结构框图

image

单总线结构框图

image

以存储器为中心的双总线结构框图

image

总线分类解释
片内总线芯片内部的总线,如寄存器与寄存器之间,寄存器与算逻单元ALU之间。
系统总线计算机各部件之间的信息传输线(CPU,主存,I/O设备等)
系统总线-数据总线双向传输,其位数与机器字长,存储字长有关
系统总线-地址总线单向,与存储地址,I/O地址有关
系统总线-控制总线单向,发出各种控制信号。有出(存储器读、存储器写总线允许、中断确认),有入(中断请求、总线请求)
通信总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。分为串行通信和并行通信
总线物理实现

image

总线特性
总线特性
机械特性指总线在机械连接方式上的一些性能,尺寸,形状,引脚的个数以及排列的顺序,接头处的可靠接触
电气特性总线的每一根传输线上信号的传输方向和有效的电平范围
功能特性每根传输线的功能。地址总线用来指出地址码;数据总线传递数据;控制总线发出控制信号
时间特性信号的时序关系
总线性能指标
性能指标
总线宽度数据线分根数,用bit
总线带宽每秒传输的最大字节数(MBps)
时钟同步/异步同步,异步
总线复用地址线与数据线复用
信号线数地址线,数据线和控制线的总和
总线控制方式突发,自动,仲裁,逻辑,计数
其他指标负载能力(驱动能力),电源电压,总线宽度能否扩展等
总线标准
总线标准:系统与各模块,模块与模块之间的一个互连的标准界面
为什么要设立总线标准:为了使设计简化,模块生产批量化,确保其性能稳定,质量可靠,实现可移化,便于维护。
总线标准数据线地址线总线时钟带宽特性
ISA16248MHz(独立)16MBps
EISA32328MHz(独立)33MBps
VESA(VL-BUS)3233MHz(CPU)133MBps
PCI32 6433MHz(独立)66MHz(独立)132MBps528MBps良好的兼容性,即插即用,支持多主设备,具有与处理器和存储器子系统完全并行操作的能力,提供数据和地址奇偶校验,可扩充,软件兼容性好,支持两种电压标准5V、3.3V,采用多路复用
AGP3266.7MHz(独立)133MHz(独立)266MBps533MBps
RS-232C串行通信总线标准数据终端设备(计算机)和数据通信设备(调制解调器)之间的标准接口
USB串行接口总线标准普通无屏蔽双绞线带屏蔽双绞线最高1.5 Mbps(USB1.0)12Mbps(USB1.0)480Mbps(USB2.0)具有真正的即插即用,很强的连接能力,数据传输率,标准统一

总线结构

单总线结构

image

双总线结构

image

三总线结构

image

三总线结构又一

image

四总线结构

image

总线判优控制

为什么要设置总线判优控制:总线上所连接的各类设备,按其对总线有无控制功能分为主设备(模块)和从设备(模块)。主设备对总线有控制权,从设备只能响应从主设备发来的总线命令,对总线没有控制权。总线上的信息是又主设备启动的,若多个主设备同时要使用总线时,就由总线控制器的优判,仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。
总线优判控制分为集中式和分布式两种
集中式种类特点
链式查询连线简单,易于扩充,对电路故障最敏感
计数器定时查询优先级设置较灵活,对故障不敏感,连线及控制过程较复杂
独立请求响应速度快,优先级次序控制灵活,但连线多,总线控制复杂

总线通信

通信方式特点适用场合
同步通信指由统一时钟控制的通信,控制方式简单,灵活性差,当系统中各部件工作速度差异较大时,总线工作效率明显下降一般用于总线长度较短,各部件存取时间比较一致的场合
异步通信指没有统一时钟控制的通信,部件采用应答方式进行联系,控制方式较同步复杂,灵活性高,当系统中各部件工作速度差异较大时,有利于提高总线工作效率又分为不互锁,半互锁,全互锁
半同步通信既可以像同步通信一样由统一时钟控制,又可以像异步通信一样允许传输时间不一致,工作效率介于两者之间
分离式通信1.各模块欲占用总线使用权必须提出申请2.在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式,不再等待对方回答信号3.各模块在准备数据的过程中都不占用总线,使总线可以接受其他模块的请求4.总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分的利用了总线的有效占用,从而实现了总线在多个主,从模块间进行交叉重叠并行传送。大型计算机系统
同步式数据输入传输

image

同步式数据输出传输

image

第四章 存储器

存储器分类

image

存储器速度容量和价位的关系

image

缓存主存层次和主存辅存层次

image

缓存主存--解决CPU和主存速度不匹配的问题
主存辅存--解决存储系统的容量问题

主存的主要技术指标

存储容量
指主存能存放二进制代码的总位数
存储容量=存储单元个数*存储字长
存储容量=存储单元个数*存储字长/8
存储速度
由存取时间和存取周期来表示,存取时间指存储器的访时间,存取周期指存储器进行两次独立的存储器操作所需的最小时间间隔
存储器带宽
单位时间内存储器存取的信息量,单位可以用字/秒或字节/秒或位/秒。提高存储器带宽可以1.缩短存取周期2.增加存储字长,使每个存取周期可读/写更多的二进制位数3.增加存储体

静态RAM

image

动态RAM
动态RAM通过电容来存储电荷的原理来存储信息,电容上有足够多的电荷表示存1,无电荷表示存0,电容上电荷一般只能维持1——2ms,因此,必须在2ms内对其所存储单元恢复一次原状态,这个过程称为再生或刷新。
动态RAM时序图
先由RAS¯将行地址送入行地址缓存器,再由CAS¯将列地址送入列地址缓存器,因此CAS¯滞后于RAS¯的时间必须要超过其规定值
RAS¯CAS¯正、负电平的宽度要大于规定值,以保证芯片内部正常工作
行地址对RAS¯的下降沿以及列地址对CAS¯的下降沿应有足够的地址建立时间和地址保持时间,已确定行、列地址均能准确写入芯片。
动态RAM读时序

行地`RAS¯有效
写允许WE¯有效(高)
列地址CAS¯有效
数据DOUT有效

动态RAM写时序

行地址RAS¯有效
写允许WE¯有效(低)
数据DIN
列地址CAS¯有效

动态RAM刷新

刷新实质是将原信息读出,在由刷新放大器形成原信息并重新写入的再生过程

集中刷新--在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。之后剩余的时间进行读写操作或维持信息。因此存在“死时间”或访存“死区”。

image

分散刷新--对每行存储单元的刷新分散到每个存取周期内完成。其中把机器的周期tc分成两段,前半段tM用来读写或维持信息,后半段tR用来刷新,不存在死时间,但存取周期长

image

异步刷新--异步刷新为前两种的结合,既可以缩短死时间,又可以充分利用2ms的特点

image

动态RAM和静态RAM的比较
在同样大小的芯片中,动态RAM的集成度远高于静态RAM。
动态RAM行、列地址按先后顺序输送,减少了芯片的引脚,封装尺寸也减少
动态RAM的功耗比静态RAM小
动态RAM的价格比静态RAM的价格便宜
由于使用动态元件(电容),因此它的速度比静态RAM低
动态RAM需要再生,故需要配置再生电路,也需要消耗一部分功率。通常,容量不大的高速缓存器大多用静态RAM实现

存储器与CPU的连接

存储容量的扩展
位扩展--增加存储字长
字扩展--增加存储器字的数量
字、位扩展--既增加存储字的数量,又增加存储字长
存储器与CPU连接
地址线的连接--CPU的地址线往往比存储芯片的地址线数多,通常总是将CPU地址线的低位与存储器的芯片的地址线相连,CPU地址线的高位或在存储芯片的扩充时用,或作其他用途。
数据线的连接--CPU的数据线与存储器的也不等,因此必须对存储芯片扩位使其相等
片选线的连接--是CPU与存储芯片正确工作的关键
合理选择存储芯片--指存储芯片类型(RAM或ROM)和数量的选择。通常用ROM存放程序,标准子程序和各类常数等。RAM为用户编程设计。此外,尽量选择连线简单方便。

提高访存速度的措施

单体多字系统--在一个存取周期内,从同一地址取出4条指令,然后在逐条送至CPU执行。增大存储器带宽,提高存储器工作速度。前提是,指令和数据在主存内必须是连续存放。
多体并行系统--采用多提模块组成的存储器,每个模块具有相同的容量和存取速度,各自具有独立的寄存器(MAR),数据寄存器(MDR),地址译码,驱动电路和读写电路。

image

高位交叉编址的多体存储器

image

低位交叉编址的多体存储器

image


高速缓冲存储器

Cache的基本结构

image

地址映射变换机构--将CPU送来的主存地址转换为Cache地址。

Cache--主存地址映射

直接映射
优点:实现简单,只需要利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中
缺点:不够灵活,每个主存快只能固定的对应某个缓存块,即使缓存内还空着许多位置也不能被占用,使缓存的空间得不到充分的利用。此外,如果程序恰好重复访问对应同一缓存位置不同的主存块,就要不停的进行替换,降低命中率。
全相联映射--允许主存中每一字块映射到Cache中的任何一块位置上。
优点:灵活,命中率高,缩小了快冲突率。
缺点:所需的逻辑电路甚多,成本较高。
组相联映射

第五章 输入输出系统

输入输出系统发展的四个阶段

1.早期阶段
分散连接 CPU和I/O设备 串行工作 程序查询方式
2.接口模块和DMA阶段
总线连接 CPU和I/O设备并行工作
3.具有通道结构的阶段
4.具有I/O处理机的阶段

输入输出系统的组成

1.I/O软件
I/O指令 CPU指令的一部分
操作码命令码设备码
通道指令:通道自身的指令 指明数组的首地址、传送字数、操作命令。
I/O硬件
设备 I/O接口
设备 设备控制器 通道

I/O设备与主机的联系方式

1.I/O设备编址方式

统一编址 用取数存数指令
不统一编址 有专门的I/O指令

2.设备寻址

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

3.传送方式

串行 并行

4.联络方式

立即响应方式
异步方式采用应答信号

image

同步工作采用同步时标联络

5.I/O设备

辐射式连接

image

总线式连接

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

1.程序查询方式

image

2.程序中断方式

倘若CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应。

3.DMA方式(直接存储器存取)

主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA这种占有称为窃取或挪用。窃取的时间一般为一个周期,故又把DMA占用的存取周期窃取周期或挪用周期。

I/O接口

为什么设置I/O接口

实现设备的选择
实现数据缓冲达到速度匹配
实现数据串--并格式转换
实现电平转换
实现电平转换
传送控制命令
反映设备的状态("忙","就绪","中断请求")

端口和接口的关系

端口是指接口电路中的一些寄存器,这些寄存器用来存放数据信息,控制信息和状态信息,相应的端口被分别称为数据端口,控制端口,和状态端口。若干个端口加上相应的控制逻辑才能组成接口。

接口的功能和组成

总线连接方式的I/O接口电路

设备选择线,数据线,命令线,状态线

接口的功能和组成

接口功能接口组成
选址功能设备选择电路
传送命令的功能命令寄存器,命令译码器
传送数据的功能数据缓冲寄存器
反映设备状态的功能设备标记状态

image

接口类型

分类种类
按数据传送方式并行接口(Intel 8255) 串行接口(Intel 8251)
按功能选择的灵活性可编程接口(Intel 8255,Intel 8251) 不可编程接口(Intel 8212)
按通用性通用接口(Intel 8255、 Intel 8251) 专用接口(Intel 8279、 Intel 8275)
按数据传送的
广告一下
热门教程
PHP7报A non well formed numeric value encountered 0
Linux系统下关闭mongodb的几种命令分享 0
mongodb删除数据、删除集合、删除数据库的命令 0
Git&Github极速入门与攻坚实战课程 0
python爬虫教程使用Django和scrapy实现 0
libnetsnmpmibs.so.31: cannot open shared object file 0
数据结构和算法视频教程 0
redis的hash结构怎么删除数据呢? 0
C++和LUA解析器的数据交互实战视频 0
mongodb errmsg" : "too many users are authenticated 0
C++基础入门视频教程 0
用30个小时精通C++视频教程可能吗? 0
C++分布式多线程游戏服务器开发视频教程socket tcp boost库 0
C++培训教程就业班教程 0
layui的util工具格式时间戳为字符串 0
C++实战教程之远程桌面远程控制实战 1
网络安全培训视频教程 0
LINUX_C++软件工程师视频教程高级项目实战 0
C++高级数据结构与算法视频教程 0
跨域问题很头疼?通过配置nginx轻松解决ajax跨域问题 0
相关文章
【译】JavaScript数据结构(3):单向链表与双向链表 16
10个JavaScript难点 16
【译】苹果拒绝支持PWA,有损Web的未来 16
iView 一周年了,同时发布了 2.0 正式版,但这只是开始... 16
nodejs+mongodb构建一个简单登录注册功能 16
【译】JavaScript数据结构(4):树 16
组件化开发与黑箱 16
TypeScript - 不止稳,而且快 16
webpack3+anujs+ReactCSSTransitionGroup 16
原生js实现图片放大镜效果 16
WEB缓存探究第二弹——实战 16
纯笔记:vfork 的一些使用场景(顺便讲一下 fork 的原理) 16
Android APP 内部捐赠实现(支付宝&微信) 16
WKWebView 的一些小总结 16
模型评价(一) AUC大法 16
开始使用GraphQL 16
Webpack模块化原理简析 16
gulp使用问题记录 16
使用Angular4动画为页面添彩 16
Python27 Matplotlib (win64 python2.7) 安装及简单使用 16