当前位置: 首页 > news >正文

计算机原理

第一章 计算机系统概论

第一节 计算机发展简史

知识点1 计算机发展经历的历史阶段

一、手工计算阶段
1、十进制计数法
2、算筹算盘计算尺
二、机械计算阶段
1、十进制计数法
2、机械加法器机械计算器计算器
3、布尔代数(乔治·布尔)
三、电子计算阶段
1、1945 ENIAC(第一台电子数字计算机,十进制计数法)
2、1949 EDSAC(第一台存储程序的计算机,二进制计数法)

第二节 计算机系统

知识点1 冯·诺依曼思想体制:

一、采用二进制数字代码形式表示各种信息
1、都是“0”和“1”组成的二进制数据

二、采用存储程序控制工作方式

三、计算机硬件由五大部件组成
1、输入设备:将外界数据、命令输入到计算机的内存,常见的输入设备有键盘、鼠标、触摸屏、扫描仪、数码相机等。
2、存储器:由内存或称主存(主机内部的存储器)、外存或称辅助存储器(主机外部的存储器)组成。习惯将主存和CPU合在一起称主机。主存包括随机存储器(RAM)和只读存储器(ROM);外存有磁盘、磁带、光盘等。
3、运算器:由算术逻辑单元(Arithmetic Logical Unit, ALU)、累加器和一组通用寄存器组成,通常其位数等于字长。
4、控制器:是计算机的指挥中心,由指令部件、时序部件和控制部件组成。运算器和控制器合称为中央处理器(CPU)。
5、输出设备:将计算机的处理结果转换成文字、图形、声音等形式输出,常见的输出设备有显示器、打印机等。输入输出设备合称为外围设备(或外部设备)。

知识点2 计算机系统总线

计算机通过总线将五大部件连接起来,包括:
一、数据总线(Data Bus,DB):用来传递数据信息,是双向总线。
二、地址总线(Address Bus,AB):用于传送CPU发出的地址信息,是单向总线。
三、控制总线(Control Bus,CB):用于传送控制信号、时序信号和状态信息。每一根线的方向是一定的、单向的,但作为一个整体则是双向的。

知识点3 计算机系统的层次结构

第三节 计算机系统的技术指标

知识点1 性能指标

一、机器字长:字长是指计算机的运算部件能同时处理的二进制数据的位数。字长通常是字节的整倍数。
衡量机器字长的单位可用“位(bit)”,位是计算机内最小的信息单位。8位构成一个“字节(byte)”,现代计算机的机器字长一般都是8位的整数倍,如8位,16位、32位、64位和128位等,即字长分别为1个字节、2个字节、4个字节或是16个字节,所以也可以用“字节”来表示机器字长。
1、字长越长,计算机的运算精度就越高。
2、字的内容分为指令字和数据字。
二、内存容量
1、可以以字长为单位,也可以以字节(8个二进制位为一个字节Byte)为单位计算
2、以字节计算容量时,以210=1024为换算单位,即1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024G
三、运算速度
用每秒能执行的指令条数来表示的,单位一般用MIPS(Million Instructions Per Second,每秒百万条指令)。

第二章 数字逻辑基础

第一节 逻辑代数与逻辑门

知识点1 逻辑代数与普通代数的区别

逻辑代数和普通代数一样用字母代表变量,称为逻辑变量。和普通代数不同的是,逻辑变量的取值只有两种:“1”和“0”,这里的“1”和“0”,不再像普通代数那样具有数值大小的含义,而是表示所研究问题的两个相互对立的逻辑状态。
知识点2 三种基本逻辑运算
一、逻辑“与(乘)”关系
只有当决定一件事情的所有条件全部具备时,这件事情才会发生,这样的逻辑关系称为逻辑“与(乘)”关系。

二、逻辑“或(加)”关系
在决定一件事情的所有条件中,只要具备任何一个,这件事情就会发生,这样的逻辑关系称为逻辑“或(加)”关系。

三、逻辑“非”关系
当决定一件事情的条件不具备时,这件事情才会发生,这样的逻辑关系称为逻辑“非”关系。非就是相反,就是否定。

四、常用复合逻辑运算
与非(先“与’’后“非’’)、或非(先“或”后“非”)、异或运算。

第二节 组合逻辑电路

知识点1 逻辑电路的分类

通常数字系统的逻辑电路可以分为两大类:组合逻辑电路和时序逻辑电路。组合逻辑电路是指电路的输出状态只与当时输入状态有关,而与电路的以前状态无关,即输出与输入的关系具有即时性,不具备记忆功能。 常用的组合逻辑电路有:全加器、译码器和数据选择器。

知识点2 全加器

全加器是实现两个一位二进制数相加的一种组合逻辑电路。
输入:设Ai为被加数,Bi为加数,低位进位Ci
输出:和数Si,本位进位Ci+1 表2.4 全加器真值表

知识点3 译码器

译码器的功能就是将指定的数码翻译为相应的状态输出,使其输出端中相应的一路有信号输出(电位或脉冲)。
例如一个3位的二进制数码可有8个状态,如下表所示:

知识点4 数据选择器

数据选择器又称多路开关,它是以“与或门”或“与或非门”为主的逻辑电路,其作用是在选择信号的作用下,从多个输入通道中选择一个通道的数据作为输出。它的作用相当于一个具有多个输入端的单刀多掷开关。

第三节 常用时序电路

知识点1 时序电路的概念

逻辑电路的输出状态不但与当时输入状态有关,而且还与电路以前的状态有关,这种逻辑电路称为时序逻辑电路。
因此,时序逻辑电路中必须要有能够储存信息的记忆元件――触发器。触发器也是构成各种复杂时序逻辑电路中的基本部件。

知识点2 触发器——RS触发器

触发器的种类很多,按时钟控制方式来分,有电位触发、边沿触发、主从触发等方式的触发器;按功能来分,有RS型、D型、JK型等触发器。
RS触发器的工作原理:
①当电路输入端S=0,R=1时,则使触发器为“1”状态,即Q=1。
②当S=1,R=0时,则使触发器为“0”状态。这时G1的两个输入端(S和Q)都为高电位,因而G1的输出端Q为低电位。
③当S=1,R=1时,触发器不会变化,维持原来的状态。
④当S=0,R=0时,则与非门G1和G2的输出端Q和Q都将为1,一旦撤去S和R的低电位,触发器的状态都是不确定的。
D触发器的工作原理:
D触发器可以用RS触发器构成,只有一个数据D(Data)输入端,因而不存在输出值不确定的问题。
D触发器的功能很简单,D端是什么值,输出端Q就是什么值,由于触发器的状态是由D输入端决定,故称D触发器。
只有同步脉冲CLK到来之时,D触发器才能实现相关功能;D触发器是一个由打入脉冲CLK控制(或同步)的能够打入1位数据的存储器件;另外R是异步(不受时钟信号CLK控制)清零端,S是异步置1端。

知识点3 寄存器——基本寄存器

寄存器的作用是寄存二进制数的。例如用四个D触发器组成一个4位的寄存器。存储时将四位二进制数分别接到四个触发器D端,则只要来一个CLK脉冲就使四个触发器的输出反映成四位二进制数的状态,完成“寄存”。
在寄存器中常用的是上升沿触发器D型触发器。

移位寄存器不仅能够存储数据,而且具有移位的功能,即组成寄存器的各触发器的状态随CLK脉冲的到来而左移或右移。按照数据移动的方向,可分为单向移位和双向移位两大类。
知识点4 计数器
计数器的分类主要有下面几种:
(1)按构成计数器的触发器的翻转次序分类,可分为异步计数器和同步计数器。当计数脉冲CLK输入时,所有触发器同时都翻转的计数器称为同步计数器;当计数脉冲CLK输人时,各级触发器不同时翻转的计数器称为异步计数器。
(2)按计数过程中计数器中数字的增减来分类,可分加法计数器、减法计数器和可逆计数器(加减计数器)。
(3)按计数器中数字的编码方式来分类,可分为二进制计数器和十进制计数器。

第三章 计算机中的信息表示

第一节 数值型数据的表示

知识点1 进位计数制及其相互转换

所谓进位计数制,就是人们利用数字符号来计数的方法。凡是用数字符号排列,按由低位向高位进位计数的方法叫做进位计数制,简称计数制或进位制。进位计数制有很多种,计算机科学中常用的是二进制、十进制、十六进制。
一个数无论采用何种进位制表示,都包含两个基本要素:基数和位权。
1、基数:任何一种计数制允许选用的基本数字符号的个数叫做基数。
例如,十进制中有0~9共十个符号,基数为10;二进制中只有0和1共两个符号,基数为2;十六进制中有0~9、A、B、C、D、E、F共十六个符号,基数为16。
2、位权:一个数字符号所表示的数值等于该数字乘以一个与它所在数位有关的常数,这个常数叫做“位权”,简称“权”。位权的大小是指以基数为底,数字符写所在位置的序号为指数的整数次幂。
3、二进制数的特点:
容易实现。工作可靠。运算简单。便于逻辑运算与逻辑设计。
4、R进制  十进制——按权展开

5、十进制  二进制

6、十六进制  二进制
不论是十六进制的整数部分或小数部分,只要把每一位十六进制数用等值的四位二进制数代替即可。
例:(3AB.7E)16= (?)2 (0011 1010 1011.0111 1110)2
例:( 3 A B . 7 E )16
( 0 0 1 1 1 0 1 0 1 0 1 1 . 0 1 1 1 1 1 1 0 ) 2
7、二进制  十六进制
以小数点为界,整数部分从低到高,小数部分从高到低,四位一组,不足四位补零,每四位二进制数对应一位十六进制数。
注意:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,则出错。
例:(1010011101.011011)2= (?)16
( 2 9 D . 6 C )16
例: ( 0 0 1 0 1 0 0 1 1 1 0 1 . 0 1 1 0 1 1 0 0 ) 2
(29D.6C)16

知识点2 无符号数和带符号数的表示

1、无符号数的表示
所谓无符号数,就是整个机器字长的全部二进制位均表示数值位(没有符号位),相当于数的绝对值。
例:X1=01001;表示无符号数9
X2=11001;表示无符号数25
对于机器字长为n位的无符号数的表示范围是: 0~2n-1
若字长为8位,则数的表示范围为0~255。
2、带符号数的表示
对于带符号数的正号“+”或负号“-”,计算机是无法识别的,因此在计算机中需要把数的正、负符号数码化。
一般用数的最高位表示数的正负,通常约定“0”表示正号,“1”表示负号。

假设计算机字长为8位,用一个机器字来表示一个带符号数,则带符号数在计算机中的表示形式为。

一个数在计算机内的表示形式称为机器数,这个数本身的值称为该机器数的真值。
将真值转换为计算机硬件能够直接识别、处理的机器数时,根据其数值部分编码方法的不同,相应的机器数又有三种不同的编码:原码、反码、补码。
知识点2 无符号数和带符号数的表示
(1)正整数的表示:

(2)负整数的表示:

计算机中如何表示小数呢?一般有两种表示格式:定点表示与浮点表示。所谓定点与浮点,是指数中小数点的位置是固定的还是浮动的。
(3)定点小数表示:
约定所有数的小数点位置固定在符号位之后、有效数值之前,其格式如下:

(4)定点整数表示:约定所有数的小数点位置固定在有效数值位之后

假设字长是n+1位,则:

(5)浮点数表示:在浮点表示中,小数点的位置可以任意浮动。为了使小数点可以自由浮动,在计算机中,一个浮点数N由阶码E和尾数M两部分组成。 N = M×RE
Ef E1 E2 …… Em Mf M1 M2 …… Mn
Mf : 代表浮点数的符号
n:其位数反映浮点数的精度
m:其位数反映浮点数的表示范围
阶码E:用补码和移码表示
尾数M:用补码或原码表示,要求表示成规格化形式,即1/2≤ |M|<1
知识点3 十进制数的编码
在某些场合下,人们希望计算机能够直接对十进制数据进行运算,这时就要用到二进制编码的十进制数,简称BCD(Binary Coded Decimal)码。
在BCD码中,每1位十进制数都用4位二进制编码表示。4位二进制数码有16种组合,而十进制数字只有0~9共10个数字,所以有6种组合为无效代码。
BCD码的编码形式有多种,其中最常用的是8421BCD码。

8421BCD码运算的问题(编码校正)。
例1:8+7=1000+0111=1111 非法编码
8+7=1000+0111=1111+0110=0001 0101 正确编码
例2:9+8=1001+1000=0001 0001 非法编码
9+8=1001+1000=00010001+0110=0001 0111 正确编码
如何进行调整使之符合十进制数的运算和进位规律呢?
通常规则有两条:
① 若两个BCD数相加结果大于1001,亦即大于十进制数9,则应作加0110(即加6)调整;
② 若两个BCD数相加结果在本位上并不大于1001,但确产生了进位,相当于十进制运算大于等于16,则也要作加0110(即加6)调整。

第二节 非数值型数据的表示

知识点1 字符编码

非数值型数据的表示分为字符、汉字、位图图像和语音四项。字符又叫符号数据,包括字母和符号,是计算机中用得最多,一般使用7位二进制编码来表示。
现世界上最通用的编码方案是ASCII(美国国家标准信息交换码,American Standard Code for Information Interchange),它是7位二进制代码,通常用一个字节表示,其中最高位用作奇偶校验。

知识点2 汉字编码

用计算机进行汉字信息处理,必须将汉字代码化,即对汉字进行编码,称为汉字输入码。汉字的编码有输入码、内码、字形码三种形式。
(1)汉字的输入码:
组成编码方案主要分为三大类:数字编码、拼音码、字形编码。
数字编码:常用的是国标区位码,用数字串输入一个汉字。区位码是将国家标准局公布的6763个两级汉字分为94区,每个区分94位,实际上是把汉字排列成二维数组,每个汉字在数组中的下标就是区位码;
拼音码:以汉语拼为基础的输入方法;
字形编码:是用汉字的形状来进行的编码。如五笔字形码。
(2)汉字的内码:
同一个汉字以不同输入方式进入计算机时,编码长度以及0、1组合顺序差别很大,在汉字信息进一步存取、使用、交流时十分不方便,必须转换成长度一致且与汉字唯一对应的能在各种让算机系统通用的编码,满足这种规则的编码称为汉字内码。

(3)汉字字形码:
存储在计算机内在屏幕上显示或在打印机上输出时,需要知道汉字的字形信息,汉字内码并不能直接反映汉字的字形,而要采用专门的字形码。字形信息的表示大体上有两类形式:一类是用活字或文字版的固体字形形式,另一类是点阵表示法或矢量表示法等形式,其中最基本的也是大多数字形库采用的,是以点阵的形式存储汉字字形编码的方法。

知识点3 位图图像的表示

位图图像是由一个个离散点(像素点)的二进制数字组成的数字图像,需要经过采样和量化处理。
第一步采样,即用特殊的设备(如扫描仪)得到图像的每一个像素点,对每个像素点进行采样,得到灰度值;
第二步量化,即把灰度值转换成n位二进制表示的数值(能表示2n个不同的灰度值),就得到所谓的位图图像,可以直接放入计算机存储起来。
知识点4 语音的表示
语音是一种模拟信号,和位图图像处理类似,必须经过采样、量化等模/数转换处理。
第一步采样,一般由麦克风、录音机等拾音设备把语音信号变成频率和幅度连续变化的电流信号。
第二步量化,用专门的模/数转换电路将每一个离散数据值转换成一个n位二进制表示的数字量。

第四节 指令信息的表示

知识点1 指令格式

用二进制代码表示指令的结构形式,通常分成操作码和地址码两部分。
操作码OP
操作码用来表明本条指令要求计算机完成的操作,如加法,减法,取数等,CPU中有专门的译码电路来识别解释各操作码。
地址码D
地址码用来给出参加本次运算的操作数和运算结果所在的地址

相关文章:

  • 面试官:你说说Kafka是怎么保证消息可靠性的
  • 网络原理(3)——TCP协议
  • vue 中 清除form 校验状态
  • 关于继承是怎么样的?那当然是很好理解之
  • 解决Linux中Eclipse启动时找不到Java环境的问题
  • vue+elementUI实现指定列的单元格可编辑
  • 【09】进阶JavaScript事件循环Promise
  • C语言救赎之路,有些鸟儿是困不住的!(其4) (逻辑运算符+函数)
  • SpringCloudGateway之限流集成篇
  • 数据库笔记
  • 【Godot4.2】颜色完全使用手册
  • 第二十七节 Java 多态
  • Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)
  • Git版本管理工具
  • python中的类与对象
  • #Java异常处理
  • __proto__ 和 prototype的关系
  • 4. 路由到控制器 - Laravel从零开始教程
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • input的行数自动增减
  • iOS小技巧之UIImagePickerController实现头像选择
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js面向对象
  • maven工程打包jar以及java jar命令的classpath使用
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • passportjs 源码分析
  • Twitter赢在开放,三年创造奇迹
  • Vue.js-Day01
  • 理解在java “”i=i++;”所发生的事情
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (23)Linux的软硬连接
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (定时器/计数器)中断系统(详解与使用)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)3D模板阴影原理
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET CORE 第一节 创建基本的 asp.net core
  • .netcore如何运行环境安装到Linux服务器
  • .NET程序员迈向卓越的必由之路
  • .NET和.COM和.CN域名区别
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @staticmethod和@classmethod的作用与区别
  • @Transient注解
  • [ 第一章] JavaScript 简史
  • [1204 寻找子串位置] 解题报告
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [C#] 基于 yield 语句的迭代器逻辑懒执行