计算机内存和CPU的基础知识
计算机内存和CPU 的基础知识
内存
内存的基本单元是⼀个字节。⼀台有32兆内存的电脑⼤概能容纳3200万字节的信息。
在内存⾥的每⼀个字节通过⼀个 ⼀的数字来标识作为它的地址,如图1.4展⽰的⼀
样。
通常内存都是⼤块⼤块地使⽤⽽不是单个字节。在PC机结构中,命名了这些内存⼤
块,如图1.2展⽰的⼀样。
在内存⾥的数据都是数字的。字符通过⽤数字来表⽰字符的字符编码来储存。其中⼀
个最普遍的字符编码称为ASCII的编码是Unicode 。在这两种编码中最主要的区别是
ASCII使⽤⼀个字节来编码⼀个字符,但是Unicode每个字符使⽤两个字节 (或⼀个
字)。例如ASCII使⽤ 来表⽰字符⼤写A ;Unicode使⽤
来表⽰。因为ASCII使⽤⼀个字节,所以它仅能表⽰256种不同的字符。
Unicode将ASCII的值扩展成⼀个字,允许表⽰更多的字符。这对于表⽰全世界所有的
语⾔⾮常重要。
CPU
中央处理器 (CPU )是执⾏指令的物理设备。CPU执⾏的指令通常⾮常简单。指令可
能要求他们使⽤的数据存储在⼀个CPU称为寄存器的特殊储存位置中。CPU可以⽐访
问内存更快地访问寄存器⾥的数据。然⽽,在CPU⾥的寄存器是有限的,所以程序员
必须注意只保存现在使⽤的数据到寄存器中。
各类CPU执⾏的指令组成了该CPU 的机器语⾔。机器语⾔拥有⽐⾼级语⾔更基本的结
构。机器语⾔指令被编码成未加⼯的数字,⽽不是友好的⽂本格式。为了更有效的运
⾏,CPU必须能很快地解释⼀个指令的⽬的.机器语⾔就是为了这个⽬的设计的,⽽不
是让⼈们更容易理解⽽设计。⼀个其他语⾔写的程序必须转换成CPU 的本地机器语
⾔,才能在电脑上运⾏。
编译器是⼀个将⽤⽤程序语⾔写的程序翻译成特殊结构的电脑的机器语⾔的程序。通
常,每⼀种类型的CPU都有它⾃⼰ ⼀的机器语⾔。这是为什么为Mac写的程序不能
在IBM类型PC机运⾏的⼀个原因。
电脑通过使⽤时钟来同步指令的执⾏。时钟脉冲在⼀个固定的频率 (称为时钟频
率)。当你买了⼀台1.5GHz的电脑,1.5GHz就是时钟频率。时钟并不记录分和秒。它
以不变的速率简单跳动。电⼦计算机通过使⽤这个跳动来正确执⾏它们的操作,就像
节拍器的跳动如何来帮助你以正确的节奏播放⾳乐。⼀个指令需要跳动的次数 (或就
像他们经常说的执⾏周期)依赖CPU 的产⽣和模仿。周期的次数取决于它之前的指令
和其他因素。
CPU 80x86系列
IBM型号的PC机包含了⼀个来⾃Intel 80x86家族 或它的克隆)的CPU 。在这个家族的所
有CPU都有⼀些普遍的特征,包括有⼀种基本的机器语⾔。⽆论如何,最近的成员极
⼤地加强了这个特征。
8088 ,8086: 这些CPU从编程的观点来看是完全相同的。它们是⽤在早期PC机上的
CPU 。它们提供⼀些16位的寄存器:AX ,BX ,CX ,DX ,SI ,DI ,BP ,SP ,CS ,
DS ,SS ,ES ,IP ,FLAGS 。它们仅仅⽀持1M字节的内存,⽽且只能⼯作在实模式
下。在这种模式下,⼀个程序可以访问任何内存地址,甚⾄其它程序的内存 !这会使
排除故障和保证安全变得⾮常困难 !⽽且,程序的内存需要分成段。每段不能⼤
于64K 。
80286: 这种CPU使⽤在AT系列的PC机中。它在8088/86的基本机器语⾔中加⼊了⼀些
新的指令。然⽽,它主要的新的特征是16位保护模式。在这种模式下,它可以访问
16M字节的内存和通过阻⽌访问其它程序的内存来保护程序。可是,程序依然是分成
不能⼤于64K的段。
80386: 这种CPU极⼤地增强了80286的性能。⾸先,它扩展了许多寄存器来容纳32位
数据EAX ,EBX ,ECX ,EDX ,ESI ,EDI ,EBP ,ESP ,EIP)⽽且增加了两个新的16
位寄存器 (FS ,GS )。它同样增加了⼀个新的32位保护模式。在这种模式下,它可
以访问4G字节。程序同样分成段,但是现在每段⼤⼩同样可以到4G 。
80486/Pentium/Pentium Pro: 这些80x86家族的成员增加了不多的新的特征。它们主要
是提⾼了指令执⾏的速度。Pentium MMX: 这些处理器在Pentium基础上增加了MMX
指令 多媒体扩展) 。这些指令可以提⾼普通的图像操作的速率。
Pentium II: 它是拥有MMX 指令的Pentium处理器。Pentium III 本质上就是⼀个更快
的Pentium II 。