计算机的子系统:

cpu,内存,输入输出

 

cpu:ALU,寄存器,控制单元

 

内存:地址,地址空间

 

输入输出:键盘,显示器

 

 

程序执行时,编译好的文件加载到内存中,内存从低地址到高地址依次为:代码区,存储指令;已初始化的静态变量;未初始化的静态变量;堆区,从低地址到高地址生长(malloc申请);栈区,从高地址到低地址生长(函数调用)

 

加载到内存中后

 

cpu:

算术逻辑单元:逻辑运算,移位,算术运算

寄存器:数据,指令,程序计数器

控制单元:具有用于控制的电路系统,控制各个子系统

 

主存:

地址,内存单元的位数,内存单元的地址的位数,地址空间

存储器的类型,RAM,ROM;存储器的层次:内存,高速缓存,寄存器

高速缓存位于cpu和主存之间,当cpu要取主存中的一个数据时,先访问高速缓存,存在则copy走,不存在则从主存中copy以该数据为开头的一个数据快放入高速缓存

高速缓存容量很小但效率很高。80—20规则(计算机在用80%的时间访问20%的数据)

 

 

输入输出:

非存储设备,键盘,显示器,打印机

存储设备,磁盘,光盘

 

子系统互联:

cpu和主存:

数据总线,传递数据,条数取决于计算机的字;

地址总线,传递地址,条数取决于存储空间的字;

控制总线:传递控制命令,条数取决于计算机的命令总数(是不是所有的命令都是简单的命令合成的?最简单的命令就是一个开关,用1和0就能控制)

 

IO设备的连接:IO都是些机电,磁,光学设备,而cpu和内存是电子设备,比IO速度快很多,所以IO要通过控制器连接到总线上

控制器:SCSI,火线,USB(数据通过数据包的形式传递);控制器内部有寄存器,像缓冲区一样吧?

IO设备的寻址:

独立寻址:控制单元用区别于主存的命令直接控制IO设备

存储器映射寻址:控制器中的寄存器编入主存的地址空间,使计算机有一个较小的指令集,但是减小了内存的大小(地址空间)

 

 

 

程序执行:

程序:一些处理数据的指令

程序和数据都储存在内存中

cpu使用重复的指令周期执行程序

 

指令周期:取指令:控制单元命令系统通过程序计数器寻址将下一条要执行的指令拷贝到指令寄存器中,并将其地址保存在程序计数器中,copy完成后,计数器自动加一指向内存中的下一条指令;译码,控制单元负责对指令寄存器中的指令译码,产生可执行的二进制代码;执行:控制单元发布解析后的指令到系统,系统完成相应的指令,比如加载内存中的某个数据,或让ALU将两个数据相加

 

 

输入输出操作:IO低速设备和cpu或内存高速设备之间的数据传递

 

 

计算机的体系结构:有CISC(complex instruction set computer),程序设计简单,但是cpu和控制单元的电路很复杂

还有RISC(reduce instruction set computer),复杂指令都用简单指令模拟

改善吞吐量(单位时间内处理的指令数)

 

流水线:通过对cpu和控制单元的设计,使控制单元能同时执行指令周期的三个阶段,提高吞吐量

并行处理:将计算机概括为cu,pu,mu,即控制单元,处理单元,内存单元。每个单元,计算机都可以有多个。在数据处理方面,可以把计算机的组织分为四类

SISD(single instruction single data):概念:一个指令流,一个数据流,指令流中的指令顺序执行,每个指令取数据流中的一个或多个数据操作;实现:一个cu把控制一个pu作用到内存上

SIMD(multiple data):概念:一个指令流同时顺序作用在多个数据流上;实现:一个控制单元用相同的指令控制多个pu调用内存

MISD:概念:多个指令流作用在一个数据流上。从未实现过

MIMD:概念:多个指令流作用在多个数据流上。可以同时执行多个任务,可以使用一个共享内存或多个内存区。MIMD才能是并行处理。

 

并行处理多用于科学团体的在传统计算机的体系结构上要长时间运行的任务,比如大矩阵的相乘,天气预报的大量数据的同时处理,空间的飞行模拟

 

 

注意:

  1. ALU只能处理寄存器中的数据。待处理的数据要先从内存中加载到寄存器中