计算机体系结构基础

现代计算机都是基于Von Neumann体系结构的,不管是嵌入式系统、PC还是服务器。这种体系结构的主要特点是:CPU(CPU,Central Processing Unit,中央处理器,或简称处理器Processor)和内存(Memory)是计算机的两个主要组成部分,内存中保存着数据和指令,CPU从内存中取指令(Fetch)执行,其中有些指令让CPU做运算,有些指令让CPU读写内存中的数据。

 

冯诺依曼五大结构:输入、输出、存储器、控制器、运算器

CPU包含:寄存器、程序计数器PC、指令解码器、算术逻辑单元、地址和数据总线Bus(CPU和内存之间用地址总线、数据总线和控制线连接起来,32位处理器有32条地址线和32条数据线)

 

加载load:在x86平台上,硬盘是ATA、SATA或SCSI总线上的设备,保存在硬盘上的程序是不能被CPU直接取指令执行的,操作系统在执行程序时会把它从硬盘拷到内存,这样CPU才可以取指令执行,这个过程称为加载。

进程process:程序加载到内存之后,成为操作系统调度执行的一个任务,就称为进程

线程thread:操作系统进行运算调度的最小单元,一个进程可包含多个线程,每条线程并行执行不同的任务。

多进程:允许多个任务同时运行

多线程:允许单个任务分成不同的部分运行

 

访问设备与访问内存的区别:内存是被动地等待被读或被写,设备会自己产生数据,需要主动通知CPU来读取数据,例如敲键盘产生一个输入字符,用户希望计算机马上响应自己的输入,这就要求键盘设备主动通知CPU来读这个字符并做相应处理,给用户响应。

中断机制interrupt:每个设备都有一条中断线,通过中断控制器连接到CPU,当设备需要主动通知CPU时就引发一个中断信号,CPU正在执行的指令将被打断,程序计数器会设置成某个固定的地址(这个地址由体系结构定义),于是CPU从这个地址开始取指令(或者说跳转到这个地址),执行中断服务程序(ISR,Interrupt Service Routine),完成中断处理之后再返回先前被打断的地方执行后续指令。

中断处理一般步骤先判断哪个设备引发了中断,然后调用该设备驱动程序提供的中断处理函数进一步处理。

异常的产生 CPU当前执行的指令出了问题

中断的产生与指令的执行是异步的,异常的产生与指令的执行是同步的

 

MMU(Memory Management Unit)内存管理单元:实现虚拟地址到物理地址的转换,还提供内存保护机制

MMU将虚拟地址映射到物理地址是以页Page为单位

页表定义虚拟内存和物理内存的映射关系

操作系统把虚拟地址空间划分为用户空间和内核空间

 

Memory Hierarchy分级存储器体系:按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快

 

寄存器、Cache和内存中的数据都是掉电丢失的,这称为易失性存储器(VolatileMemory),与之相对的,硬盘是一种非易失性存储器(Non-volatile Memory)。除了访问寄存器由程序指令直接控制之外,访问其它存储器都不是由指令直接控制的,有些是硬件自动完成的,有些是操作系统配合硬件完成的。

 

Cache从内存取数据时一次取一个Cache Line缓存起来,操作系统从硬盘取数据时一次取几KB缓存起来,都是希望这些数据以后会被访问到。大多数程序的行为都具有局部性(Locality)的特点:它们会花费大量的时间反复执行一小段代码(例如循环),或者反复访问一个很小的地址范围中的数据(例如访问一个数组)。所以预读缓存的办法是很有效的:CPU取一条指令,我把它相邻的指令也都缓存起来,CPU很可能马上就会取到;CPU访问一个数据,我把它相邻的数据也都缓存起来,CPU很可能马上就会访问到。设想有两台计算机,一台有32KB的Cache,另一台没有Cache,而内存都是512MB的,硬盘都是100GB的,虽然多出来32KB的Cache和内存、硬盘的容量相比微不足道,但由于局部性原理,有Cache的计算机明显会快很多。高速存储器即使容量只能做得很小也能显著提升计算机的性能,这就是Memory Hierarchy的意义所在。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值