常见的架构有2种
Risc架构
Cisc架构
Risc代表作类似手机,arm,主要目的是少耗电,降低功耗,可以工作更长的时间,CPU振动越快越耗电,Risc振动慢可以少耗电,Cisc也有低功耗的,如CPU最后出现U,V,Y都是代表低功耗
Risc主要用于嵌入式,手机,路由器,数控机
Risc指令集定长,指所有指定占字节数长度相同
Cisc指令集变长
最早的CPU是4位宽
之后慢慢发展8,16,32
4位都是unix和dos在使用还没有windows
8位的时候是有windows的,需要先启动dos再启动windows,基本没有窗口
8086 16位CPU ,出现段,windows在这个时候已经出现窗口了,20位线性地址
16位下使用实模式,都是物理地址,所有程序在同一内存中,可以修改段访问到别的进程,16位下地址运算段 地址*16+逻辑地址=线性地址
段地址的位置指向地址位置的开头
80286 16位,出现保护模式,只有段,没有页,不成熟
80386 32位,出现分页机制,段机制,权限机制已经成熟
WINNT之后4G内存,低2G内存是进程的,高2G内存是内核的,所有进程共享内核内存,因为进程需要通信所以共享,因为有页的存在所以正常情况下进程内存不能相互访问
4GB不是物理内存
低2G地址 0-0x7fffffff
高2G地址0x8000000-0xffffffff
因为有页保护所以正常不能访问到别的进程内存空间
段 是一种权限,主要是限制R3的各种资源,比如 mov cr4,eax 只能在内核修改,不允许在非特权的情况下执行该指令
类似IN OUT控制IO的指定也属于特权指令
16位下实模式有4个段 CS SS DS ES
这些用于寻址
在x86改为保护模式后意义已经不大,为了兼容汇编继续用起来,所以用于规划权限
x86有6个段,多了FS GS
1 | CS:代码段 DS:作用于地址上 数据段 SS:描述栈内的数据 ES:额外段 |