微处理器的工作方式

经过:马歇尔大脑克里斯·波莱特(Chris Pollette)|

微处理器是所有计算机的核心。乔格灰色/盖蒂图像

您要读取此页面的计算机使用微处理器做它的工作。微处理器是任何普通计算机的核心,无论它是台式机, 一种服务器或a笔记本电脑。微处理器有很多类型,但是它们以大致相同的方式做大致相同的事情。

微处理器 - 也称为中央处理器或中央处理单元 - 是一个完整的计算引擎,在单个芯片上制造。第一个微处理器是1971年推出的英特尔4004。4004不是很强大 - 它所能做的就是添加和减去,只能做4一次。但是,一切都在一个芯片上,真是太神奇了。在4004年之前,工程师从芯片集或离散组件中构建了计算机(晶体管一次有线)。4004驱动了第一个便携式电子计算器之一。

广告

如果您曾经想知道计算机中的微处理器正在做什么,或者您曾经想过微处理器类型之间的差异,请继续阅读。在本文中,您将了解如何简单的数字逻辑技术允许计算机完成工作,无论是玩游戏还是拼写检查文档!

微处理器进度:英特尔

英特尔8080“width=
由英特尔(Intel)于1974年推出,这位8080微处理器是第一个足以构建计算机的微处理器。科学与社会图片库/盖蒂图像

第一个将其进入家用计算机的微处理器是英特尔8080,一台芯片上的完整的8位计算机,于1974年推出。第一个在市场上真正飞溅的微处理器是Intel 8088,于1979年推出,并纳入IBM PC(最早于1982年左右出现)。如果您熟悉PC市场及其历史记录,您会知道,PC市场从8088到80286到80386,再到80486,再到Pentium Series to Core系列,再到Xeon系列。所有这些微处理器都是由英特尔制造的,所有这些微处理器都对8088的基本设计进行了改进。

自2004年以来,英特尔引入了具有多个核心和数百万晶体管的微处理器。但是,即使这些微处理器也遵循与较早芯片相同的一般规则。

广告

Intel Core i9处理器可以拥有最多八个核心,每个都可以执行原始8088上运行的任何代码,仅速度快6,700倍!每个核心都可以处理多个指令线程,从而使计算机可以更有效地管理任务。

从1970年代开始,英特尔的产品范围已大大扩大。截至撰写本文时,该公司仍然为计算机制作奔腾和核心CPU,但是高性能的PC和服务器可能会使用Xeon芯片。此外,英特尔还提供Celeron和Atom处理器线。Celeron的目的是入门级计算机用户,原子处理器更适合物联网一部分的移动设备和设备。

尽管英特尔仍然拥有大部分市场,但它拥有的竞争对手不仅仅是竞争对手。AMD在PC处理器市场中与Intel竞争,但在PC游戏玩家受欢迎的图形处理器芯片中也做大业务。Nvidia以图形芯片而闻名,也制造了CPU。2020年,苹果推出了其M系列芯片,该芯片取代了Apple用于其Macintosh计算机的英特尔芯片。三星也可能正在工作根据自己的专有处理器设计。越来越多的公司为其他电子产品(例如汽车和智能家居产品)建造处理器。市场越来越有竞争力。

广告

微处理器逻辑

英特尔奔腾4处理器。“width=
Intel Pentium 4处理器在2001年推出时是英特尔最快的处理器。英特尔/新闻记者

为了了解微处理器的工作原理,查看内部并了解创建一个逻辑是有帮助的。在此过程中,您也可以学习组装语言- 微处理器的母语 - 以及工程师可以为提高处理器速度所做的许多事情。

微处理器执行一系列机器指令,告诉处理器该怎么做。根据说明,微处理器做了三件基本的事情:

广告

  • 使用其ALU(算术/逻辑单元),微处理器可以执行数学操作,例如加法,减法,乘法和除法。现代微处理器包含完整的浮点处理器,可以在大型浮点数上执行极其复杂的操作。
  • 微处理器可以从一个移动数据记忆位置到另一个。
  • 微处理器可以做出决策,并根据这些决定跳到一套新的指令。

微处理器可能会有非常复杂的事情,但这是其三个基本活动。下图显示了一个非常简单的微处理器,能够做这三件事:

微处理器“width=
该图显示了一个简单的微处理器及其组件和功能。
事情怎兴发首页x么样

这与微处理器所获得一样简单。这个微处理器有:

  • 一个地址巴士(可能是8、16、32或64位)将地址发送到内存
  • 一种数据总线(可能是8、16、32或64位)可以将数据发送到内存或从内存接收数据
  • 一个(读和WR(写)线以告诉内存是设置还是获取地址的位置
  • 一种时钟线使时钟脉冲序列处理器
  • 一种重置线将程序计数器重置为零(或其他)并重新启动执行

让我们假设在此示例中,地址和数据总线均为8位。

这是这个简单的微处理器的组成部分:

  • 寄存器A,B和C只是由触发器制成的闩锁。(请参阅“边缘触发闩锁”中的部分布尔逻辑如何工作有关详细信息。)
  • 地址闩锁就像寄存器A,B和C。
  • 该程序计数器是一个闩锁,在被告知这样做时,可以额外的能力提高1,并在被告知这样做时重置为零。
  • ALU可以像8位加法器一样简单(请参阅ADDER上的部分布尔逻辑如何工作有关详细信息),或者它可能能够添加,减去,乘和除8位值。让我们在这里假设后者。
  • 测试寄存器是一个特殊的闩锁,可以从ALU中执行的比较中保存值。ALU通常可以比较两个数字以确定它们是否相等,是否比另一个大。它将这些值存储在触发器中,然后指令解码器可以使用这些值来做出决策。
  • 图中有六个标记为“ 3状态”的盒子。这些都是三态缓冲区。三态缓冲区可以通过1,0或它可以从本质上断开其输出(想象一个完全断开输出线与输出向往的电线的开关)。三态缓冲区允许多个输出连接到电线,但只有一个输出实际上将1或0驱动到线上。
  • 指令寄存器和指令解码器负责控制所有其他组件。

尽管本图中未显示它们,但指令解码器的控制线将是:

  • 告诉A寄存器以锁定数据总线上当前的值
  • 告诉B寄存器以锁存数据总线上的当前值
  • 告诉C寄存器至锁存值Alu当前输出的值
  • 告诉程序计数器注册以锁定数据总线上当前的值
  • 告诉地址寄存器到锁存到当前数据总线上的值
  • 告诉指令寄存器以锁存数据总线上的当前值
  • 告诉程序计数器增加
  • 告诉程序计数器重置为零
  • 激活六个三态缓冲区中的任何一个(六个单独的线)
  • 告诉ALU执行什么操作
  • 告诉测试登记册
  • 激活RD线
  • 激活WR线

进入指令解码器是测试寄存器和时钟线的位,以及指令寄存器的位。

广告

微处理器内存

上一节讨论了地址和数据总线以及RD和WR线路。这些公共汽车和线路连接到RAM或ROM - 通常两者都可以。在我们的样品微处理器中,我们有一个地址总线8位,数据总线8位宽。这意味着微处理器可以解决256个字节的内存,并且一次可以读取或写8位内存。让我们假设这个简单的微处理器具有128个字节的ROM,从地址0和128个字节开始从地址128开始。

只读存储器代表仅阅读记忆。ROM芯片由永久集合的预设字节编程。地址总线告诉ROM芯片哪个字节要在数据总线上获取并放置。当RD线更改状态时,ROM芯片将选定的字节显示在数据总线上。

广告

内存代表随机记忆。RAM包含信息,并且微处理器可以根据RD或WR线的信号来读取或写入这些字节。今天的公羊芯片的一个问题是,他们一旦忘记了一切力量熄灭。这就是为什么计算机需要ROM的原因。

顺便说一句,几乎所有计算机都包含一定数量的ROM(可以创建一个不包含RAM的简单计算机 - 许多微控制器通过将少数RAM字节放在处理器芯片本身上来做到这一点,但通常不可能创建一个不包含ROM的字节)。在个人电脑,ROM称为BIOS(基本输入输出系统)。当微处理器启动时,它开始执行在BIOS中找到的指令。BIOS指令执行诸如测试机器中的硬件之类的事情,然后转到硬盘以获取引导部门(看硬盘如何工作有关详细信息)。该引导扇区是另一个小程序,BIOS将其从磁盘上读取后将其存储在RAM中。然后,微处理器开始从RAM执行引导扇区的指令。引导扇区程序将告诉微处理器将其他内容从硬盘中获取到RAM,然后微处理器执行,依此类推。这就是微处理器加载和执行整个的方式操作系统

广告

微处理器说明

即使在上一个示例中显示的非常简单的微处理器也具有相当大的指令。指令的集合被实现为位模式,每个指令都将其加载到指令寄存器中时具有不同的含义。人类并不是特别擅长记住位模式,因此定义了一组简短的单词来代表不同的位模式。这个单词的集合称为组装语言处理器。一个汇编器可以很容易地将单词转换为其位模式,然后将汇编器的输出放置在存储器中,以供微处理器执行。

这是设计师在我们的示例中为简单的微处理器创建的一组汇编语言指令:

广告

  • LOADA MEM- 从内存地址加载注册
  • LOADB MEM- 从内存地址加载寄存器b
  • Conb Con- 将常数值加载到寄存器B中
  • 保存mem- 将寄存器b保存到内存地址
  • Savec Mem- 将寄存器C保存到内存地址
  • 添加- 添加A和B并将结果存储在C中
  • - 减去A和B并将结果存储在C中
  • mul- 乘以A和B并将结果存储在C中
  • div- 分配A和B并将结果存储在C中
  • com- 比较A和B并将结果存储在测试中
  • 跳addr- 跳到地址
  • jeq addr- 跳(如果平等)来解决
  • jneqaddr-跳跃(即使不是平等)来解决
  • JG addr- 跳跃,如果大于解决
  • jge addr- 跳跃(如果大于或相等)来解决
  • JL addr- 跳(如果少于)来解决
  • jle addr- 跳跃(如果少于或平等)来解决
  • 停止- 停止执行

如果您读过C编程如何工作,然后您知道这件简单的C代码将计算5个阶乘(其中5 = 5!= 5 * * 4 * 3 * 2 * 1 = 120):

a = 1; f = 1;而(a <= 5){f = f * a;a = a + 1;}

在程序执行结束时,变量F包含5个阶乘。

组装语言

一种C编译器将此C代码转换为汇编语言。假设RAM从该处理器中的地址128开始,并且ROM(包含汇编语言程序)从地址0开始,那么对于我们的简单微处理器,汇编语言可能看起来像这样:

//假设a在地址128 //假设f在地址1290 conb 1 // a = 1; 1 saveb 1282 conb 1 // f = 1; 3 saveb 1294 loada 128 //如果> 5> 5跳到175CONB 56 COM7 JG 178 LOADA 129 // f = f*a; 9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a = A+1; 13 CONB 114 ADD15 SAVEC 12816跳跃4 //循环回到IF17停止返回IF17

只读存储器

因此,现在问题是:“所有这些说明在ROM中的外观如何?”这些汇编语言指令中的每一个都必须由二进制编号表示。为了简单起见,让我们假设每个汇编语言指令都有一个唯一的数字,例如:

  • LOADA -1
  • LOADB -2
  • CONB -3
  • 保存-4
  • SAVEC MEM -5
  • 添加-6
  • 子-7
  • MUL -8
  • Div -9
  • com -10
  • 跳跃addr -11
  • jeq addr -12
  • jneq addr -13
  • JG ADDR -14
  • jge addr -15
  • JL ADDR -16
  • JLE ADDR -17
  • 停止-18

这些数字被称为opcodes。在ROM中,我们的小程序看起来像这样:

//假设a在地址128 //假设f在地址129ADDR OPCODE/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 1289 12810 3// CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12823 12823 12824 3 //// ADD27 5 // SAVEC 12828 12829 11 //跳跃430 831 18 //停止

您会看到,七行C代码变成了18行汇编语言,并且在ROM中变成了32个字节。

解码

指令解码器需要将每个Opcodes变成一组信号,这些信号驱动微处理器内部的不同组件。让我们以添加指令为例,看看它需要做什么:

  1. 在第一个时钟周期中,我们需要加载指令。因此,指导解码器需要:
  2. 激活程序计数器的三态缓冲区
  3. 激活RD线
  4. 激活数据中的三态缓冲区
  5. 将指令锁定到指令登记册中
  6. 在第二个时钟周期中,添加指令被解码。它需要做的很少:
  7. 将Alu的操作设置为加法
  8. 将ALU的输出锁定到C寄存器中
  9. 在第三个时钟周期中,程序计数器会增加(从理论上讲,这可以重叠到第二个时钟周期)。

每个指令都可以作为一组类似的测序操作分解,以适当的顺序操纵微处理器的组件。一些说明,例如此添加指令,可能需要两个或三个时钟周期。其他人可能需要五个或六个时钟周期。

广告

微处理器性能和趋势

的数量晶体管可用对处理器的性能有很大的影响。如前所述,像8088这样的处理器中的典型指令花了15个时钟周期来执行。由于乘数的设计,大约花了大约80个周期才能在8088上进行16位乘法。晶体管,更强大的乘数可以实现单周期速度。

更多的晶体管还允许一种称为的技术管道。在管道架构中,指令执行重叠。因此,即使可能需要五个时钟周期才能执行每个指令,但在执行的各个阶段也可以同时有五个指令。这样,看起来一个指令就完成了每个时钟周期。

广告

许多现代处理器都有多个指令解码器,每个解码器都有自己的管道。这允许多个指令流,这意味着在每个时钟周期中都可以完成多个指令。该技术实施可能非常复杂,因此需要大量晶体管。

趋势

如今,处理器似乎无处不在,而且这种趋势似乎并没有放缓。研究人员找到了方法使微处理器灵活,启用诸如智能服装。研究人员一直在研究使用方法光而不是电力,操作处理器。地平线上最大的变化可能是量子计算机的开发,这些计算机不仅限于使用1s和0s解决问题。虽然这些计算机可以处理更困难的问题更有效地,您不太可能很快在台式机上看到一台量子计算机。

广告

64位微处理器

微处理器“width=
找出64位处理器的工作方式,以及为什么他们可以处理几乎无限的RAM。amd

自1992年以来,六十四位处理器就一直与我们同在,在21世纪,它们已成为主流。这些处理器有64位Alus,64位注册表,64位公共汽车等。

世界需要64位处理器的原因之一是因为放大地址空间。32位芯片通常被限制在最多2 GB或4 GBRAM访问。当大多数家用计算机仅使用256 MB至512 MB的RAM时,这似乎很多。但是21世纪的家用计算机可以更快地处理数据(非常复杂的数据具有很多实数)。人们在做视频编辑在非常大图像上进行摄影编辑的人们受益于这种计算能力。高端游戏玩家也受益于更详细的高分辨率游戏。

广告

64位芯片可以打开更多选择,因为在可预见的将来,64位RAM地址空间本质上是无限的 - 2^64字节RAM是在十亿GB的RAM的顺序上。在64位地址总线和宽阔的高速数据总线上母板,64位机器还提供更快的I/O(输入/输出)速度硬盘驱动器视频卡。这些功能可以大大提高系统性能。

有关微处理器和相关主题的更多信息,请查看以下链接。

广告

最初出版:2000年4月1日

更多信息

相关文章

更多的链接

  • 今天的Cu Boulder。“基于突破灯的微处理器芯片可能会导致更强大的计算机,网络基础架构。”2015年12月23日(2021年9月22日)网络
  • 微软。“了解量子计算。”2月1日,2021年。https://docs.microsoft.com/en-us/azure/quantum/overview-understanding-quantum-computing
  • Patel,Prachi。C&EN。“研究人员报告了最复杂的柔性微处理器,但在塑料膜上芯片包装超过39,000个晶体管。”2021年7月26日。https://cen.acs.org/materials/electronic-materials/researchers-report-complex-flexible-micropersorsor/99/web/2021/07
  • 萨尔曼,阿里。wccftech.com。2021年6月18日。“三星可能会设计自己的定制CPU,因为它寻求前Apple和AMD工程师。”https://wccftech.com/samssung-might-design-isign-isn-custom-custom-cpu-as-it-seeks-former-apple-apple-anp-anple-and-Amd-Engineers/
  • 斯坦福大学。“管道如何工作。”(2021年9月22日)

游戏

广告

加载...