计算机组成与配置
计算机的组成
1、控制器
2、运算器(CPU)
3、主存储器(内存)
4、外存
5、输入、输出设备
存储器:主存和外存
数据的表示
对于任意一个R进制数,它的每一位数值等于该位的数位乘以该位的权数。权数由Rk表示,K与该位和小数点之间的距离有关。当该位位于小数点左边,K值是该位和小数点之间的数码的个数,而当该位位于小数点的右边,K值是负值,其绝对值是该位和小数点之间数码的个数加1。
例如,十进制数1234.56,其数值可计算如下:
1234.56=1*103+2*102+3*101+4*100+5*10-1+6*10-2
二进制数10100.01B的值可计算如下:
10100.01B=1*24+1*22+1*2-2=20.25
十六进制数8ABH的值可计算如下:
8ABH=8*162+10*161+11*160=2219
十进制转二进制使用"除二取余"法,如将86转换为二进制数:
86/2=43——余0
43/2=21——余1
21/2=10——与1
10/2=5——余0
5/2=2——余1
2/2=1——余0
1/2=0——余1
将余数从下往上排列,即得1010110
二进制转八进制时,从右开始,每三位为一组,不够三位最高位向前补0即可。每组按权展开求和,最终得到八进制数。
例如:11101001=(011)(101)(001)=351
同理,二进制转十六进制,每四位为一组。
例如:11101001=(1110)(1001)=E9
1 |
-1 |
1-1 |
|
原码 |
0000 00001 |
1000 0001 |
1000 0010 |
反码 |
0000 00001 |
1111 1110 |
1111 1111 |
补码 |
0000 00001 |
1111 1111 |
0000 0000 |
移码 |
1000 00001 |
0111 1111 |
0000 0000 |
补码是最适合进行数字加减运算的数字编码。
定点数和浮点数
(1)定点数。小数点的位置固定不变的数。分为定点整数(纯整数,小数点在最低有效位数值之后)和定点小数(纯小数,小数点在最高有效位数值位之前)。
0.1011001 |
-0.1011001 |
|
原码 |
01011001 |
11011001 |
反码 |
01011001 |
10100110 |
补码 |
01011001 |
10100111 |
移码只用于表示浮点数的阶码,所以只用于整数。
浮点数表示:N=M*Re
其中M称为尾数,e为指数,R为基数。
例如:1234=1.234*103
浮点数的运算:对阶——尾数计算——结果格式化
校验码
计算机中的数据在进行存储和传输的过程中可能会发生失误。为了及时发现和纠正这类错误,在数据传输过程中要进行校验,也就是在传输的数据中增加数据校验码。
数据校验码是具有发现某些错误或具有自动纠错能力的数据编码,最常用的是奇偶校验码。
码距,是指在一个编码系统中任意两个合法编码(码字)之间不同的二进制位数叫这两个码字的码距。
1、奇偶校验
只能检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。
奇数+奇数=偶数;偶数+奇数=奇数;偶数+偶数=偶数;奇数+偶数=奇数。
2、海明码
海明码的校验码的位置必须是在2n位置(n从0开始,分别代表从左边数起分别是第1、2、4、8、16…),信息码也就是在非2n位置
… |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
位数 |
… |
I8 |
I7 |
I6 |
I5 |
I4 |
I3 |
I2 |
I1 |
信息位 |
||||
r3 |
r2 |
r1 |
r0 |
校验位 |
设数据位是n位,校验位是k位,则n和k必须满足关系:2k>=n+k+1
例如,求信息1011的海明码。
解答:(1)根据2k>=4+k+1,确定校验位为3位23>=4+3+1。
(2)列出公式表格。
7 |
6 |
5 |
4 |
3 |
2 |
1 |
位数 |
I4 |
I3 |
I2 |
I1 |
信息位 |
|||
r2 |
r1 |
r0 |
校验位 |
填入数值
7 |
6 |
5 |
4 |
3 |
2 |
1 |
位数 |
1 |
0 |
1 |
1 |
信息位 |
|||
r2 |
r1 |
r0 |
校验位 |
7=22+21+20,6=22+21,5=22+20,3=21+20
r2=I4⊕I3⊕I2=1⊕0⊕1=0
r1=I4⊕I3⊕I1=1⊕0⊕1=0
r0=I4⊕I2⊕I1=1⊕1⊕1=1
填入校验位
7 |
6 |
5 |
4 |
3 |
2 |
1 |
位数 |
1 |
0 |
1 |
1 |
信息位 |
|||
0 |
0 |
1 |
校验位 |
计算机系统结构分类
1、Flynn分类法
在Flynn分类法中,M.J.Flynn提出了下面几个定义:
指令流:机器执行的指令序列。
数据流:由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
多倍性:在系统性能瓶颈部件上同时处于同一执行阶段的指令或数据的最大可能个数。
按照指令和数据流不同的组织方式,计算机系统可分为四类:
1.单指令单数据流(SISD):单处理机,SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。流水线方式的单处理机有时也被当成SISD。第一代计算机。
2.单指令多数据流(SIMD):并行处理机、阵列处理机、超级向量处理机,各处理机以同步的形式执行同一条指令。图形处理方面。
3.多指令单数据流(MISD):流水线计算机,被证明不可能,至少是不实际。理论模型。
4.多指令多数据流(MIMD):多处理机,能够实现作业、任务、指令等各级全面并行。多核计算机。
2、冯氏分类法
1972年冯泽云提出用最大并行度来对计算机体系结构进行分类。所谓最大并行度是指计算机系统在单位时间内能够处理的最大二进制位数。
3、Handler分类法
根据计算机指令执行的并行度和流水线来对计算机系统进行分类。
4、Kuck分类方法
也是用指令流、执行流和多倍性来描述计算机系统特性,但其强调执行流的概念,而不是数据流。
存储器系统
存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。
存取方式 |
读写装置 |
数据块标志 |
访问特性 |
代表 |
顺序存取 |
共享 |
无 |
线性 |
磁带 |
直接存取 |
共享 |
数据块,每块一个唯一标志 |
可直接移到特定数据块 |
磁盘 |
随机存取 |
每个可寻址单元专有 |
每个寻址单元均有一个唯一地址 |
随时访问任何一个存储单元 |
主存 |
相连存取(属于随机存取) |
每个可寻址单元专有 |
每个寻址单元均有一个唯一地址 |
根据内容而非地址来选择读写点 |
Cache |
主存储器
1、随机存储器RAM:可写可读,断电信息无法保存。
1.DRAM动态随机存储器:不断刷新保存信息。
2.SRAM静态随机存储器:不断电不丢失。
2、只读存储器ROM:断电信息可保存。
根据编程类型ROM分为:
1.掩模式MROM:生产过程写入,无法改变。
2.一次可编程PROM:一次写入。
3.可擦除的EPROM:可多次改写。
4.闪存flash memory:支持不加电保存,快速擦除重写。
辅助存储器
又称外存储器(简称外存)。内存储器最突出的特点是存取速度快,但是容量小、价格贵;外存储器的特点是容量大、价格低,但是存取速度慢。内存储器用于存放那些立即要用的程序和数据;外存储器用于存放暂时不用的程序和数据。内存储器和外存储器之间常常频繁地交换信息。
常见的外存有磁盘存储器、硬盘存储器、磁盘阵列和光盘存储器。
1、磁带存储器
顺序存储、存储容量大、便于携带、价格便宜,但存储时间长。在微型计算机上一般用做后备存储装置,以便在硬盘发生故障时,恢复系统和数据。分为启停式和数据流式。
2、磁盘存储器
硬盘组成部分:主轴、组合臂、磁臂、读写磁头、磁道、扇区、柱面、马达。
磁盘标称的容量是格式化容量,计算公式如下:
存储容量=n*t*s*b
其中,n为保持数据的总记录面数,t为每面磁道数,s为每道的扇区数,b为每个扇区存储的字节数。
磁盘存取时间=寻道时间+等待时间+读/写时间
其中,读/写时间可忽略不计。
磁盘存取时间=平均寻道时间+平均等待时间
硬盘的数据传输速度分为内部数据传输和外部数据传输速率。内部数据传输速率是指磁头与硬盘缓存之间的数据传输速率,它的高低是评价一个硬盘整体性能的决定性因素。外部数据传输速率是指系统总线与硬盘缓存之间的数据传输速率,外部数据传输速率与硬盘接口类型和缓存大小有关。
3、磁盘阵列(RAID)
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升这个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个磁盘上。
1.RAID 0(无冗余和无校验的数据分块)代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整理存取性能。
2.RAID 1(磁盘镜像阵列)
RAID 1称为镜像,它将数据完全一直地分别写到工作磁盘和镜像磁盘,磁盘空间利用率为50%。
3.RAID 2(纠错海明码的磁盘阵列)
采用了海明码纠错技术,用户需增加校验盘来提供单纠错和双验错功能。对数据的访问涉及阵列中的每一个盘。大量数据传输时I/O性能较高,但不利于小批量数据传输。实际应用中很少使用。
4.RAID 3和RAID 4(奇偶校验码的磁盘阵列)
把奇偶校验码存放在一个独立的校验盘上。如果有一个盘失效,其上的数据可以通过对其他盘上的数据进行异或运算得到。读数据很快,但因为写入数据时要计算校验位,速度较慢。RAID 3采用位交叉奇偶校验,RAID 4采用块交叉奇偶校验码。RAID 3适用于大型文件且I/O需求不频繁的应用,RAID 4适用于大型文件的读取。
5.RAID 5(无独立校验盘的奇偶校验码的磁盘阵列)
无独立校验盘,校验信息分布在组内所有盘上,对于大批量和小批量数据的读写性能都很好,适用于I/O需求频繁的应用。
6.RAID 6(独立的数据硬盘与两个独立的分布式校验方案)
具有一个专用的、可快速访问的异步校验盘,该盘具有独立的数据访问通路,但其性能改进有限,价格却很昂贵。
7.RAID7(最优化的异步高I/O速率和高数据传输率)
RAID 7完全可以理解为一个独立存储计算机,它自身带有操作系统和管理工具,完全可以独立运行。
8.RAID 10(最可靠与高性能)
RAID 1+0也被称为RAID 10标准,实际是将RAID 1和RAID 0标准结合的产物。RAID 1是一个冗余的备份阵列,而RAID 0负责数据读写的阵列。由于利用了RAID 0极高的读写效率和RAID 1较高的数据保护与恢复能力,使RAID 10成为了一种性价比高的等级。
光盘存储器
利用激光束在记录表面存储信息,根据激光束的反射来读出信息。分不可擦写光盘,如CD-ROM、DVD-ROM等;可擦写光盘,如CD-RW、DVD-RAM等。
Cache存储器
在CPU的所有操作中,访问内存是最频繁的操作。由于一般微机中的主存储器的工作速度比CPU低一个数量级,加上CPU的所有访问都要通过总线这个瓶颈。所以,缩短存储器的访问时间是提高计算机速度的关键。采用在CPU和内存之间加进高速缓冲存储器cache的办法较好地解决了这一问题。
简单来说cache是为了解决高速运行的cpu与主存储器之间速度不匹配的问题。
CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为"命中",此时CPU直接中Cache中调用该内容;否则,就称为"不命中",CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。
如果以Hc为代表对Cache的访问命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache+主存的平均访问时间ta为:ta=Hc*tc+(1-Hc)*tm。
例题:某流水线计算主存的读/写时间为100ns,有一个指令和数据合一的cache,该cache的读/写时间为10ns,取指令的命中率为98%,取数据的命中率为95%。在执行某类程序时,约有1/5指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置cache后,每条指令的平均访问时间约为?
(2%*100ns+98%*10ns)+1/5*(5%*100ns+95%*10ns)=14.7ns
Cache映射机制
(1)直接映射
是一种多对一的映射关系,但一个主存块只能够复制到cache的一个特定位置上去。
关于其设计实现是基于模数计算行与主存的一个块是相互对应的。
i=j mod m
其中j是主存块的编号,m是cache的行数,而i是主存中块映射到cache中的行编号。
(2)全相联映射
主存的每一页可以映射到cache的任一块。如果淘汰cache中某一块的内容,则可调入任一主页的内容,因而较直接映射方式灵活。缺点是速度慢,只适用于小容量的cache。
(3)组相联映射
是直接映射与全相联映射的折中方案。它将cache中的块再分成组,通过直接映射方式决定组号,通过全相联的方式决定cache中的块号。
Cache替换算法
当cache产生了一次访问未命中之后,相应的数据应同时读入CPU和cache。但是当cache已存满数据后,新数据必须替换(淘汰)cache中的某些旧数据。最常用的替换算法有:
(1)随机淘汰算法。
(2)先进先出淘汰算法FIFO。
(3)最近最少未使用淘汰算法LRU。
Cache写操作
因为cache的内容是部分主存内容的副本,应该与主存内容保存一致。而CPU对cache的写入更改了cache内容,如何与主存内容保存一致就有几种写操作工作方式可供选择,统称为写策略。
1、写回法(write--back)
当cpu对cache写命中时,只修改cache的内容不立即写入主存,只当此行被换出时才写回主存。这种策略使cache在cpu—主存之间不仅在读方向而去在写方向上都起到高速缓存作用。
2、写直达法(write--through)
又称全写法,写透。是当cache写命中时,cache与主存同时发生写修改。
3、标记法
数据进入cache后,有效位置1,当cpu对该数据修改时,数据只写入主存并将该有效位置0。要从cache中读取数据时要测试其有效位,若为1则直接从cache中取数,否则从主存中取数。
虚拟存储
虚拟存储器是一个主存-辅存两级存储层次。它对应用程序是完全透明的,使应用程序不必作任何修改就可以在系统上运行。
Cache主要目的是提高存储器速度。Cache存储系统对系统程序员以上均透明。
输入输出系统
在计算机中,I/O系统可以有5种不同的工作方式,分别是程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机。
1、程序控制方式
分为无条件查询和程序查询方式。
(1)无条件传送方式,I/O端口总是准备好接受主机的输出数据,或是总是准备好向主机输入数据,而CPU在需要时,随时直接利用I/O指令访问相应的I/O端口,实现与外设的数据交换。优点是软、硬件结构简单,缺点是对时序要求高,只适用于简单的I/O控制。
(2)程序查询方式
程序查询方式也称为程序轮询方式,该方式采用程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的。
2、中断方式
当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作,与程序查询方式相比,大大提高了CPU的利用率。
3、DMA(直接内存存取)方式
DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过"DMA控制器(DMAC)"直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预。
4、通道控制方式
在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多地免去了CPU的接入,使主机和外设并行工作程度更高。
5、I/O处理机
指专门负责输入/输出的处理机。可以有独立的存储器、运算部件和指令控制部件。
总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。
按照总线相对应cpu或其他芯片的位置可分为:
(1)内部总线
寄存器之间和算数逻辑部件ALU与控制部件。
(2)外部总线
CPU与内存和I/O设备接口之间。
按照总线功能划分:
(1)地址总线——传送地址信息
(2)数据总线——传送数据信息
(3)控制总线——传送控制信号和时序信号
按总线在微机中的位置,可以分为机内总线和机外总线两种。
按总线功能划分,可以分为局部总线、系统总线、通信总线三种。
按照总线中数据线的多少,可以分为并行总线和串行总线。
指令系统
指令系统是指计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和"逻辑判断"能力。
1、复杂指令系统CISC
(1)指令数量多
(2)指令使用频率相差悬殊
(3)支持多种寻址方式
(4)变长的指令
(5)指令可对主存单元中的数据直接进行处理
(6)以微程序控制为主
2、精简指令系统(RISC)
(1)指令数量少
(2)指令的寻址方式少
(3)指令长度固定
(4)以硬布线逻辑控制为主
(5)单周期指令执行,采用流水线技术
(6)优化的编译器
(7)CPU中的通用寄存器数量多
上一篇: 干货:分布式系统详解
下一篇: 软件License许可设计思路