分类: 嵌入式
2017-02-18 22:33:17
中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。
中央处理器CPU包括运算逻辑部件、部件和控制部件。中央处理器从存储器或中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。指令是计算机规定执行操作的类型和操作数的基本命令。
①运算逻辑部件。可以执行定点或浮点的算术运算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。
②寄存器部件。包括通用寄存器、专用寄存器和控制寄存器。通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。
③控制部件。主要负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。其结构有两种:一种是以微存储为核心的微程序控制方式;一种是以为主的控制方式。
CPU的主要运作原理,不论其外观,都是执行储存於被称为程式里的一系列指令。在此讨论的是遵循普遍的-(zh-hans:冯·诺伊曼;zh-hant:)-架构设计的装置。程式以一系列数字储存在电脑记忆体中。差不多所有的-(zh-hans:;zh-hant:冯·纽曼)-CPU的运作原理可分为四个阶段:提取(fetch)、解码(decode)、执行(execute)和写回(writeback)。
CPU的位和字长 位:在和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是 “0”或是“1”在CPU中都是 一“位”。字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。
地址总线 (Address Bus;又称:位址总线) 属于一种电脑总线 (一部份),是由CPU 或有DMA 能力的单元,用来沟通这些单元想要存取(读取/写入)电脑内存元件/地方的实体位址。地址总线AB是专门用来传送地址的,由于地址只能从CPU传向外部存储器或输入输出端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n字节。地址总线的宽度,随可寻址的内存元件大小而变,决定有多少的内存可以被存取。
数据总线DB(DataBus)用于传送数据信息。数据总线是双向三态形式的总线,即它既可以把CPU的数据传送到存储器或输入输出接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
计算机最小的单位是位(bit),每8位组成一个字节(Byte),字节(B)也是存储器的最小存储单元。
b、B、Kb、KB、Mb、MB、Gb、GB之间的单位换算如下:
1B = 2的3次方*b = 8b
1Kb = 2的10次方*b = 1024b
1KB = 2的13次方*b = 2的10次方*B =1024B
1Mb = 2的20次方*b
1MB = 2的23次方*b = 2的20次方*B
1Gb = 2的30次方*b
1GB = 2的33次方*b = 2的30次方*B
4Gb = 2的32次方*b
4GB = 2的35次方*b = 2的32次方*B
至于为什么说16根地址总线的寻址空间为 2的16次方 = 64K(B),是因为字节(B)是内存的最小存储单元,每个地址总线可以对2个存储单元寻址(2B),所以16根地址总线可以寻址 2B的16次方 = 64K(B);
同理20根地址总线可以寻址的存储器空间是 2B的20次方 = 1MB;
32根地址总线的寻址空间是 2B的32次方 = 4GB;这也是为什么32位地址总线的系统的最大能搭配4GB内存的原因:再多的话CPU就找不到了。
关于地址总线和寻址空间的关系可以从下文得到更深刻的理解:
"8086有20根地址线,所以可寻址的存储器空间为1MB"。因为,2的20次方等于1MB,所以是这个结果。
问,为什么要这样算?这中间的那个过程是怎样的?(硬件是怎么实现的?)
假设有这么一台计算机,它只有1根地址线,那么请问它最多能对几个存储单元寻址?答案显然是2个.因为在任何2进制计算机中,所有物理元件只有 0,1两种状态,对应这个例子,我们假设已经把这唯一的一根地址线与两个存储单元a和b连上了,那么究竟怎么确定何时读a何时读b?有一个办法,当地址线上的电压是高电压时我们读a,相反是低电压时,我们读b.如此一来,你应该明白-----一根地址线的情况下,只能对2个存储单元进行寻址
依次类推,2根地址线时可以对4个存储单元进行寻址,对应的电压情况可以是:低低,低高,高低,高高;继续想下去,3根地址线就可以对8个存储单元进行寻址,4根就是16个,也就是说,当有n根地址线时,可以对2的n次方个存储单元进行寻址
: 什么是技术
技术:这里的技术是相对于32位而言的,这个位数指的是 GPRs(General-Purpose Registers,通用寄存器)的数据宽度为,指令集就是运行数据的指令,也就是说处理 器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的 UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。
64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上 的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下, 32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所 以要认清64bit处理器的优势,但不可迷信64bit。
要实现真正意义上的计算,光有的处理器是不行的,还必须得有的操作系统以及 的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现计算的。目前,在 处理器方面,Intel和两大处理器厂商都发布了多个系列多种规格的处理器;而在操作系统 和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的操作系统现在就只有 Windows XP X64,服务器版Windows 2003 serverR2本身也只是一个过渡性质的操作系统,在Windows Vista在真正系统,服务器版: Windows Server (Code Name "Longhorn")发布以后Windows 2003 server R2就将被淘汰 ,而且Windows XP X64, Windows 2003 serverR2本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善, 而且现在的应用软件还基本还相对少,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的 操作系统编写驱动程序和应用软件。所以要想实现真正的计算,只用Windows Vista,服务版代新的系统发布。
目前主流使用的技术主要有公司的技术、Intel公司的EM64T技术、和Intel公司 的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安 腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对技术和Intel的EM64T技术做一下简单介绍。
技术X86-64:
64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展X86指令集,使这款芯片在硬 件上兼容原来的32位X86软件,并同时支持X86-64的扩展计算,使得这款芯片成为真正的 X86芯片。这是一个真正的的标准,X86-64具有的寻址能力。
X86-64新增的几组寄存器将提供更快的执行效率。寄存器是内部用来创建和储存运算结果 和其它运算结果的地方。标准的32-bit x86架构包括8个通用寄存器(GPR),在X86-64中又增加了8组(R8-R9),将寄存器的数目提高 到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的 空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量 分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的可以 更有效的处理数据,可以在一个时钟周期中传输更多的信息。
要实现真正意义上的计算,光有的处理器还是不行的,还必须得有的操作系统以及64 位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现计算的,
简单来说: 的内存寻址比32位的大了好多,是以tb计算的,而32位知有几gb的内存寻址,指令集每 秒责行的数据会比32位的强大好多,当然前提是要在系统的配合下,加上64 位的软件 注:1024gb=1tb
实际上目前情况下在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况 下也是在32bit应用下性能更强