计算机系统
计算机系统???——》软件和硬件;
软件(中国大陆及香港用语,台湾称作软体)???——》一系列按照“特定顺序”组织的“计算机数据和指令的集合”;简单点说,程序加文档的集合体;
软件分类:系统软件、应用软件
硬件???——》由许多不同功能模块化的部件组合而成的,并在软件的配合下完成输入、处理、储存、和输出等4个操作步骤;
计算机基本硬件:运算器、控制器、存储器、输入输出设备;(五种基本硬件)
通过上面我们了解到计算机系统的大概知识;那么接下来我们来详细写一下!!!
CPU(中央处理单元)
CPU???——》一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心;
CPU功能???——》解释计算机指令以及处理计算机软件中的数据;???——》大致分为四种:程序控制,操作控制,时间控制,数据处理;
程序控制???——》通过指令控制执行顺序;
操作控制???——》一条指令的功能的实现需要若干操作系统信号来完成;
CPU组成:运算器、控制器、寄存器;
CPU内部图:(椭圆圈起来的属于运算器;矩形圈起来的属于控制器;)
解析:(第二张图)
取指阶段???——》在程序开始执行前,将程序的起始地址送入程序技术器(PC);根据地址读出指令,并将其装入指令寄存器(IR),同时程序计数器(PC)加1并且保存要执行的下一条指令;指令寄存器(IR)中的操作码被译码,指令被CPU识别;
执行阶段???——》CPU发出控制信号,根据指令中的地址码,在通用寄存器中找到原寄存器和目标寄存器;然后发送控制信号到算术逻辑单元(ALU),ALU处理网数据后,将处理后的数据存入目标寄存器;
运算器(ALU)
运算器???——》只能运算;
运算器的组成???——》算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器;
算术逻辑单元
算术逻辑单元:负责处理数据运算???——》算术运算和逻辑运算;
累加寄存器(AC)
累加寄存器(AC):通用寄存器,简称为累加器;
为ALU提供一个工作区;???——》当运算器的算术逻辑单元执行算术或逻辑运算时;
注意:
运算器中至少要有一个累加寄存器;???——》目前CPU中的累加寄存器,多达16个,32个,甚至更多
当使用多个累加器时,就变成通用寄存器堆结构;???——》其中任何一个可存放源操作数,也可存放结果操作数;???——》在这种情况下,需要在指令格式中对寄存器号加以编址;
数据缓冲寄存器(DR)
数据缓冲寄存器(DR):存放由内存储器读写的一条指令或一个数据字;
详细作用???——》
状态条件寄存器(PSW)
状态条件寄存器(PSW):???——》保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码和内容;
如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N)等等;
这些标志位???——》通常分别由1位触发器保存;
注意:
一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判决;
状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器;
控制器()
控制器???——》用于控制整个CPU的工作;???——》决定了计算机运行过程的自动化;
控制器的组成???——》指令寄存器(IR)、程序计数器(PC)、数据地址寄存器(AR)、指令译码器(ID);
控制器的控制逻辑???——》指令、时序、总线、中断等;
指令寄存器(IR)
指令寄存器(IR)???——》保存当前正在执行的指令;
指令寄存器在指令执行过程中的作用???——》
在一条指令执行时, 先把它从指令cache存储器(简称高速缓存)读出;
然后传送到指令寄存器;
又根据指令寄存器中的操作码字段传送到指令译码器;
操作码译码后,向操作控制器发出具体操作的特定信号;
程序计数器(PC)
程序计数器(PC)???——》确定下一条指令在内存中的地址;
注意:
- 当执行指令时,CPU会自动修改PC的内容,以便其保持的总是将要执行的下一条指令的地址;
- 由于大多数指令都是按顺序来执行的,所以修改的过程中通常只是简单的对PC加1;
数据地址寄存器(AR)
数据地址寄存器(AR)???——》保存当前CPU所访问的内存单元的地址;
使用地址寄存器???——》来保持地址信息,直到内存的读/写操作完成为止 ;???——》由于在内存和CPU之间存在着操作速度上的差别;
注意:
- 当CPU和内存进行信息交换时???——》都要使用“地址寄存器和数据缓冲寄存器”;
- 当CPU和外围设备交换信息时???——》同样使用“地址寄存器和数据缓冲寄存器”;
- 地址寄存器和数据缓冲寄存器、指令寄存器的结构一样;???——》通常使用单纯的寄存器结构;
- 信息的存入???——》一般采用电位-脉冲方式;
- 电位-脉冲方式???——》即电位输入端对应数据信息位,脉冲输入端对应控制信号;在控制信号作用下,瞬时地将信息打入寄存器;
CPU的寄存器
CPU中的寄存器大致分两类???——》用户可见寄存器、控制和状态寄存器
用户可见寄存器???——》用户可对这类寄存器编程;以及可以通过优化,使CPI因为使用这类寄存器而减少对主存的访问次数;
控制和状态寄存器???——》用户不可对这类寄存器编程???——》它们被控制部件或带有特权的操作系统程序使用,以控制CPU的操作;
用户可见寄存器
用户可见寄存器???——》通用、数据、地址、条件码;
通用寄存器 ???——》
可由程序设计者指定许多功能;
可用于存放操作数;
可作为寄存处???——》满足某种寻址方式所需;
数据寄存器
数据寄存器???——》用于存放操作数;
注意:
其位数应满足多数数据类型的数值范围;
地址寄存器
地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式;
条件码寄存器
条件码是CPU根据运算结果由硬件设置的位。将条件码放在一个或多个寄存器中,就构成了条件码寄存器。
控制和状态寄存器
MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。
MDR:存储器数据寄存器,用于存放欲访问存入存储器中的数据或最近从存储器中读出的数据。
PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。
IR:指令寄存器,存放当前欲访问的指令。
寄存器组
专用???——》运算器和控制器使用;
通用???——》内部总线
核心???——》内核,完成计算、接收/存储命令、处理数据
CPU技术参照
校验码
奇偶校验码???——》增加二进制传输系统最小距离的简单和广泛采用的方法;也是一种检错码;
奇偶校验码使用???——》通过增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验);???——》码距变为2,从而检测数据代码中奇数出错的编码;
码距变为2???——》在每一字节(8位)之外又增加了一“位”作为错误检测位;
码距???——》一个编码系统中任意两个合法编码之间至少有多少个二进制位不同;
注意:码距为1的编码是不能发现错误的;
奇偶校验码特点???——》
缺点:
- 不能发现偶数位的错误;???——》利用的是编码中1的个数的奇偶性作为依据;
- 只能校验出错误而无法对其进行修正;
为了能检测和纠正内存错误???——》首先出现的是内存“奇偶校验”;
注意:
- 内存中最小的单位???——》比特,也称为“位”;
- 位???——》只有两种状态,分别以1和0来标示;
- 一个字节(byte)???——》8个连续的比特;
不带奇偶校验的内存???——》每个字节只有8位;???——》若某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误;
在某字节中存储数据之后,在其8个位上存储的数据是固定的???——》位只能有两种状态1或0;
一定程度上能检测出内存错误???——》当CPU读取存储的数据时,再次把前8位中存储的数据相加,计算结果是否与校验位相一致;
校验位的添加方法???——》
- 水平奇偶校验码???——》对每个数据的编码添加校验位
- 垂直奇偶校验码???——》对一组数据的相同位添加一个校验位;
- 水平垂直奇偶校验码???——》先对一组数据垂直校验,所得结果再添加一位水平校验位;
海明码
海明码???——》奇偶校验的一个扩充,也就是在原数据间插入校验码;
校验过程:假设数据位m位,设置验证位k的长度满足纠正错误;
解析过程:
- 首先,利用2^k-1>m+k求出最小的验证码k,确定要插入的校验位的个数;
- 然后利用2^k-1先确定校验位所在编码的位置,再确定数据位(数据位由高到低依次占据海明码中剩下的位置);
- 数据位+校验码=海明吗;
【例子】设数据位8位;数据为01101001;
解析:
D1D2D3D4D5D6D7D8——》01101001;
海明吗???——》
检测错误???——》
注意:采用偶校验,则P1P2P3P4全为0时表示接受到的数据无错误(奇校验证全为1);反之,则出错;
P1=0+1+0+1+0=0;(1为代表,偶为0或奇为1)
循环冗余校验码
循环冗余校验码(又称为(n,k)码)???——》利用生成多样式为k个数据位产生r个校验证来进行编码;???——》编码长度:k+r(数据位+校验位);
校验位???——》信息码产生;
求CRC编码时???——》采用的是模2运算;
模2加减运算的规则???——》按位运算;???——》不发生借位和进位;
出色的检错能力???——》可检测所有小于等于检验位长度的突发错;
编码效率=(log2(码字数))/总位数;