计算机原理(一)

计算机原理(一)

计算机原理(了解)

总线:

总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。从另一个角度来看,如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能发送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。总线的带宽(即单位时间内可以传输的总数据数)为:总线带宽 = 频率×宽度(Bytes/sec)。  

PC上一般有五种总线:

数据总线(Data Bus):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
地址总线(Address Bus):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
控制总线(Control Bus):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为USB Bus和1394 Bus。
扩展总线(Expansion Bus):可连接扩展槽和计算机。
局部总线(Local Bus):取代更高速数据传输的扩展总线。  

冯诺依曼计算机特点:

1.采用二进制存储数据
2.硬件系统由运算器,控制器,存储器和输入,输出设备组成。
3.程序和数据预先存放在存储器中,按地址访问存储器。
4.操作时根据程序中指令执行的顺序,从存储器中取出指令或数据,有控制器解释执行,运算器完成运算。  
控制器来控制执行:控制器产生信号,指挥其他部件进行执行。

非冯诺依曼结构:

神经网络:利用人脑模型思想作为设计模范
基因算法:利用生物学和DNA演化思想开发算法
量子计算:采用量子力学  
undefined

处理器:执行程序

处理器组成:控制器(控制单元)+运算器(数据通路)
控制器:对指令进行译码,产生控制信号。
运算器;完成指令的执行(执行运算,包括运算部件和寄存器)
寄存器:寄存临时数据或控制信息
常用寄存器:
GRS:存放操作数和中间结果
PC:存放下一条要执行指令的地址
IR:存放当前指令。  

程序执行过程

undefined

操作系统基本功能:

1.防止应该被失控的应用程序滥用
2.为应用程序提供简单一致的机制来控制复杂的低级硬件。  

计算机指令

高级语言->汇编语言->机器语言(指令系统)
指令系统:一台计算机的所有及其执行的结合
指令系统是软硬件的接口。
指令系统的要求:完备性,有效性,规整性,兼容性。
指令长度:一条指令长度包含的二进制代位数,取决于操作代码(加减乘除等)长度,操作数(数据)地址长度和地址个数。
地址个数:操作结果的地址,下条指令的地址。
指令分为:定长指令和变长指令。
操作码:定长操作码,变长操作码。
常见的指令格式:
三地址指令,二地址指,单地址指令,零地址指令,可变地址数指令。
寻址:人看到的地址->硬件的物理地址
寻址方式包括:指令寻址和操作数寻址(一般)  

数据表示

数据表示:计算机硬件能直接识别的数据类型。
浮点数的运算:
N=M*R^e
其中M称为尾数,e是指数,R为基数
浮点数就是用这种方法来表示大范围的数。浮点数表示的精度取决于尾数的宽度,范围取决于基数的大小和指数的宽度。  
undefined

数据的宽度

位(bit)是计算机处理,存储,传输信息的最小单位。
在计算机二进制中的计量的单位是字节。
除了位和字节外,还用字(word)表示,字就是字节。  

undefined


undefined

数据存放方式

undefined

数据的边界对齐

许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数(alignment modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。这种强制的要求一来简化了处理器与内存之间传输系统的设计,二来可以提升读取数据的速度。比如这么一种处理器,它每次读写内存的时候都从某个8倍数的地址开始,一次读出或写入8个字节的数据,假如软件能保证double类型的数据都从8倍数地址开始,那么读或写一个double类型数据就只需要一次内存操作。否则,我们就可能需要两次内存操作才能完成这个动作,因为数据或许恰好横跨在两个符合对齐要求的8字节内存块上。某些处理器在数据不满足对齐要求的情况下可能会出错,但是Intel的IA32架构的处理器则不管数据是否对齐都能正确工作。不过Intel奉劝大家,如果想提升性能,那么所有的程序数据都应该尽可能地对齐。  
undefined

数据的校验

undefined

常用校验方法

奇偶校验法
海明校验法
CRC(循环冗余)校验  

CRC、MD5、SHA1都是通过对数据进行计算,来生成一个校验值,该校验值用来校验数据的完整性。

不同点:
1. 算法不同。CRC采用多项式除法,MD5和SHA1使用的是替换、轮转等方法;
2. 校验值的长度不同。CRC校验位的长度跟其多项式有关系,一般为16位或32位;MD5是16个字节(128位);SHA1是20个字节(160位);
3. 校验值的称呼不同。CRC一般叫做CRC值;MD5和SHA1一般叫做哈希值(Hash)或散列值;
4. 安全性不同。这里的安全性是指检错的能力,即数据的错误能通过校验位检测出来。CRC的安全性跟多项式有很大关系,相对于MD5和SHA1要弱很多;MD5的安全性很高,不过大概在04年的时候被山东大学的王小云破解了;SHA1的安全性最高。
5. 效率不同,CRC的计算效率很高;MD5和SHA1比较慢。
6. 用途不同。CRC一般用作通信数据的校验;MD5和SHA1用于安全(Security)领域,比如文件校验、数字签名等。  

程序的机器表示是汇编语言,而MIPS是汇编语言指令集。有,R,I,J三种类型。有很多指令,不一一记录了。


计算机控制器

作用:取指令,分析指令->执行指令,获得下一条指令的的地址,执行环境的建立和保护。


流水线

1.计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似, 因此称为流水线技术
2.从本质上讲,流水线技术是一种时间并行技术。  
流水线技术使得处理器可以同时执行多条指令。

硬件要求:

独立工作的各子功能部件;
各部件处理时间尽可能相等,争取最大工作频率;
解决访存冲突,即允许不同指令的同时读、写功能;
解决同步问题,保证以相同的速度处理  

流水线特点

在流水线处理器中,连续任务是充分发挥流水线的效率必要条件之一
一个任务的执行过程可以划分成多个有联系的子任务,每个子任务由一个专门的功能部件实现
每个功能部件后面都有缓冲存储部件,用于缓冲本步骤的执行结果
同时有多个任务在执行;每个子任务的功能部件并行工作,但各个功能部件上正在执行的是不同的任务
各子任务执行的时间应尽可能相近
流水线有装入时间和排空时间,只有流水线完全充满时, 流水线的效率能得到充  

流水线冲突

数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突
控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突
结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突,比如说,前面后面指令同时访问存储器  

微程序,微指令,微命令

一条机器指令就是一个微程序,执行机器指令需要几个CPU周期就包含几个微指令,即一个CPU周期整体是一个微指令,微指令包含若干微命令,微命令发送给CPU内部部件执行微操作。