用户态的CPU,只允许执行指令集中的部分指令。一般而言,IO相关和把内存保护相关的所有执行在用户态下都是被禁止的,NXT贴片机CPU卡,此外其它一些特权指令也是被禁止的,比如用户态下不能将PSW的模式设置控制位设置成内核态。
控制器之所以知道数据放哪里、做什么运算(比如是做加法还是逻辑运算?)都是由指令告诉控制器的,每个指令对应一个基本操作,NXT贴片机CPU卡现场测试,比如加法运算对应一个指令。例如,将两个MDR寄存器(保存了来自内存的两个数据)中的值拷贝到ALU中,然后根据的操作指令执行加法运算,将运算结果拷贝会一个MDR寄存器中,NXT贴片机CPU卡可换修,后写入到内存。
关于CPU的多核和多线程
1、CPU的物理个数由主板上的插槽数量决定,每个CPU可以有多核心,每核心可能会有多线程。
2、多核CPU的每核(每核都是一个小芯片),在OS看来都是一个*的CPU。
3、对于超线程CPU来说,每核CPU可以有多个线程(数量是两个,比如1核双线程,2核4线程,4核8线程),每个线程都是一个虚拟的逻辑CPU(比如windows下是以逻辑处理器的名称称呼的),而每个线程在OS看来也是*的CPU。
关于CPU上的高速缓存
1、高速的缓存是CPU的寄存器,它们和CPU的材料相同,靠近CPU或接近CPU,访问它们没有时延(lt;1ns)。但容量很小,小于1kb。
2、寄存器之下,是CPU的高速缓存。分为L1缓存、L2缓存、L3缓存,每层速度按数量级递减、容量也越来越大。
3、每核心都有一个自己的L1缓存。L1缓存分两种:L1指令缓存(L1-icache)和L1数据缓存(L1-dcache)。L1指令缓存用来存放已解了码指令,L1数据缓存用来放访问非常频繁的数据。
4、L2缓存用来存放近期使用过的内存数据。更严格地说,NXT贴片机CPU卡备品充足可换修,存放的是很可能将来会被CPU使用的数据。
5、多数多核CPU的各核都各自拥有一个L2缓存,但也有多核共享L2缓存的设计。无论如何,L1是各核私有的(但对某核内的多线程是共享的)。