level 12
pengzhenxx
楼主
楼主看到不少人对CPU字长没有了解,只知道64位CPU要好些,还可以装64位系统,上大内存,也知道一般64位CPU好于32位,,但很少有概念,今天楼主就来探讨一下吧,字长究竟是如何影响CPU的
首先是概念-----CPU字长
一般而言主要通过以下几个方面判断CPU字长:
1.主要的寄存器长度,这里主要指通用寄存器,其他控制寄存器,分支相关寄存器,浮点寄存器可能比通用寄存器更长,达到48bit,128bit,256bit甚至更长,但这些寄存器,你无法直接调用,也无法通过这些寄存器寻址,编程绝大部分调用通用寄存器,所以不能看这些特殊寄存器
2.主要ALU的长度
3.数据总线的长度(内部的)
比如8086,它的主要寄存器,数据总线,ALU宽度,内部的寄存器与寄存器,寄存器与ALU之间的通道全部都是16bit长,所以他是16位CPU,,8088虽然外部只有8bit的总线,但内部和8086完全一样,所以它也是16位CPU,,
下图为8086的所有寄存器(ax,bx,cx,dx,sp,cs等等),全部是16bit长

Intel 80386开始支持32位CPU技术,也增加了几个32bit的寄存器,主要是eax,ebx,ecx,edx,esp,edp,sei,edi等等,其ALU和数据总线全部翻倍至32bit长,也就是说32位CPU相对16位CPU一次可以运算32位的数据了,但这究竟有什么优势呢?下面结合16位CPU和32位CPU来具体对比
(PS:80386虽然采用了32位CPU技术,也增加了保护模式和虚拟8086模式,但核心指令集依然是8086的扩充,本质并没有变化,现在的CPU依然继承了8086的核心指令集,所以有了x86系列CPU,现在的i7,AMD 8核的核心指令集依然继承了8086,所以学8086并不会过时)
2015年01月06日 14点01分
1
首先是概念-----CPU字长
一般而言主要通过以下几个方面判断CPU字长:
1.主要的寄存器长度,这里主要指通用寄存器,其他控制寄存器,分支相关寄存器,浮点寄存器可能比通用寄存器更长,达到48bit,128bit,256bit甚至更长,但这些寄存器,你无法直接调用,也无法通过这些寄存器寻址,编程绝大部分调用通用寄存器,所以不能看这些特殊寄存器
2.主要ALU的长度
3.数据总线的长度(内部的)
比如8086,它的主要寄存器,数据总线,ALU宽度,内部的寄存器与寄存器,寄存器与ALU之间的通道全部都是16bit长,所以他是16位CPU,,8088虽然外部只有8bit的总线,但内部和8086完全一样,所以它也是16位CPU,,
下图为8086的所有寄存器(ax,bx,cx,dx,sp,cs等等),全部是16bit长

Intel 80386开始支持32位CPU技术,也增加了几个32bit的寄存器,主要是eax,ebx,ecx,edx,esp,edp,sei,edi等等,其ALU和数据总线全部翻倍至32bit长,也就是说32位CPU相对16位CPU一次可以运算32位的数据了,但这究竟有什么优势呢?下面结合16位CPU和32位CPU来具体对比(PS:80386虽然采用了32位CPU技术,也增加了保护模式和虚拟8086模式,但核心指令集依然是8086的扩充,本质并没有变化,现在的CPU依然继承了8086的核心指令集,所以有了x86系列CPU,现在的i7,AMD 8核的核心指令集依然继承了8086,所以学8086并不会过时)



