CPU
中央处理器(:Central Processing Unit,CPU),是的主要设备之一。其功能主要是解释计算机以及处理计算机中的。所谓计算机的可编程性主要是指对CPU的。
x86或80x86是英代尔首先开发制造的一种体系结构的泛称。8086是由于所设计的16芯片,同时也是为架构系列之开端。
8086是16位处理器;直到32位的(i386)的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到对于这个架构发展了64位的扩充,并命名为。后来也推出了与之兼容的处理器,并命名为。两者一般被统称为x86-64或x64,开创了x86的64位时代。
值得注意的是Intel早在就与合作提出了一种用在系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
地址总线(Address Bus)是一种 ,是或有能力的单元,用来沟通这些单元想要访问(读取/写入)电脑存储器组件/地方的物理地址。
数据总线的宽度,随可寻址的存储器组件大小而变,决定有多少的存储器可以被访问。取个例子,一个 宽度的地址总线 (通常在 和 早期的 处理器中使用) 到达 2 的 16 次方 = 65536 = 64 的存储器地址,而一个 地址总线 (通常在像现今 的 PC 处理器中) 可以寻址到 4,294,967,296 = 4 的地址。80386-DX:主流版本。内部和外部都是32 位,也是32位。
CPU的主要运作原理,不论其外观,都是执行储存于被称为程序里的一系列指令。
CPU的运作原理可分为四个阶段:提取、解码、执行和写回。
第一阶段,提取,从程序内存中检索(为数值或一系列数值)。由指定程序内存的位置,程序计数器保存供识别目前程序位置的数值。
在解码阶段,指令被拆解为有意义的片断。根据CPU的(ISA)定义将数值解译为指令。一部分的指令数值为,其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个运算的运算目标。
执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。例如,要求一个加法运算,将会连接到一组输入和一组输出。输入提供了要相加的数值,而且在输出将含有总和结果。ALU内含电路系统,以于输出端完成简单的普通运算和逻辑运算(比如加法和)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,标志可能会被设置
在执行指令并写回结果数据之后,程序计数器的值会递增,反复整个过程,下一个指令周期正常的提取下一个顺序指令。
- 例如:的系列中央处理器属于复杂指令集()结构,而IBM的(用于苹果机)中央处理器属于精简指令集()结构。但是自从 Intel (P6)之后,复杂指令集的CPU也开始采用内核精简指令集,而在外围布置从复杂指令集到精简指令集的译码电路动态译码方式,籍此提高CPU的性能,使复杂指令集CPU也有可能在1个内运行一条甚至多条指令。
精简指令集,是的一种设计模式,也被称为RISC(Reduced Instruction Set Computing 的缩写)。这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执进程度更好,编译器的效率更高。目前常见的精简指令集包括、、、、、、(包括、)和等。
指令系统
计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。
指令
微机完成规定操作的命令,一条指令通常由操作码和地址码组成。操作数:
计算机在运行过程需要的数据称为操作数。
常见指令按功能可划分为: ①数据处理指令:包括算术运算指令、逻辑运算指令、移位指令、比较指令等。 ②数据传送指令:包括寄存器之间、寄存器与主存储器之间的传送指令等。 ③程序控制指令:包括条件转移指令、无条件转移指令、转子程序指令等。④输入-输出指令:包括各种外围设备的读、写指令等。有的计算机将输入-输出指令包含在数据传送指令类中。 ⑤状态管理指令:包括诸如实现置存储保护、中断处理等功能的管理指令
是将一种语言翻译为另一种语言的计算机。编译器将(source language) 编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如或C + + ,而目标语言则是目标机器的目标代码 (object code,有时也称作机器代码(machine code )),也就是写在计算机机器中的用于运行的代码。这一过程可以表示为: 源程序→编译器 →目标程序
Q: 不同平台的应用程序为什么不能跨平台运行,如i386的为不什么不能在armv上运行?
A:不同平台的指令集不一样,cpu的取指方式也不一样.(硬件层面)
Q:相到平台的应用程序为什么不能在不同的操作系统上运行,如i386的winodow和linux系统?
A:指令集虽然一样, 但不同系统的有不同的内核,API调用不一样.
阅读(924) | 评论(0) | 转发(0) |