跳转到内容

微处理器设计/微处理器

来自维基教科书,开放的书籍,面向开放的世界

微处理器

[编辑 | 编辑源代码]

微处理器是计算机中使事情发生作用的设备。微处理器能够执行基本的算术运算,将数据从一个地方移动到另一个地方,并根据某些值的数量做出基本的决策。

台式个人电脑的组件。第 3 部分是 CPU。

处理器类型

[编辑 | 编辑源代码]

绝大多数微处理器可以在嵌入式高微控制器中找到。第二常见的处理器类型是常见的台式机处理器,例如英特尔的奔腾或 AMD 的速龙。不那么常见的是用于高端服务器的极其强大的处理器,例如 Sun 的 SPARC、IBM 的 Power 或英特尔的安腾。

从历史上看,微处理器和微控制器以“标准尺寸”的 8 位、16 位、32 位和 64 位提供。这些尺寸很常见,但这并不意味着其他尺寸不可用。一些微控制器(通常是专门设计的嵌入式芯片)可以采用其他“非标准”尺寸,例如 4 位、12 位、18 位或 24 位。位数代表 CPU 可以直接寻址的物理内存量。它也代表每次读写操作可以读取的位数。在某些情况下,这些是不同的;例如,许多 8 位微处理器具有 8 位数据总线和 16 位地址总线。

  • 8 位处理器可以一次读写 1 个字节,并且可以直接寻址 256 个字节
  • 16 位处理器可以一次读写 2 个字节,并且可以寻址 65,536 个字节(64 千字节)
  • 32 位处理器可以一次读写 4 个字节,并且可以寻址 4,294,967,295 个字节(4 吉字节)
  • 64 位处理器可以一次读写 8 个字节,并且可以寻址 18,446,744,073,709,551,616 个字节(16 艾字节)

通用与专用

[编辑 | 编辑源代码]

能够执行广泛任务的微处理器称为通用微处理器。通用微处理器通常是台式计算机系统中发现的 CPU 类型。这些芯片通常能够执行广泛的任务(整数和浮点运算、外部内存接口、通用 I/O 等)。我们将讨论一些其他类型的可用的处理器单元。

通用
通用处理单元,通常称为“微处理器”,是一种旨在集成到具有外围设备和外部 RAM 的更大系统中的芯片。这些芯片通常可以与非常广泛的软件一起使用。
DSP
数字信号处理器,简称 DSP,是一种专门设计用于快速算术运算,尤其是加法和乘法的芯片。这些芯片的设计考虑了处理速度,并且通常没有通用微处理器的灵活性。DSP 还具有特殊的地址生成单元,可以管理循环缓冲区、执行位反转寻址,并同时访问多个内存空间,而几乎没有开销。它们还支持零开销循环和单周期乘加指令。它们通常不如通用微处理器强大,但可以使用更少的功率(以瓦特为单位)执行信号处理任务。
嵌入式控制器
嵌入式控制器或“微控制器”是将附加硬件集成到单个芯片中的微处理器。许多微控制器在芯片本身集成了 RAM、ROM、A/D 和 D/A 转换器、中断控制器、定时器,甚至振荡器。这些控制器旨在用于没有整个计算机系统的情况,并且只需要执行少量简单处理。
可编程状态机
最简单的处理器,可编程状态机是一种极简的微处理器,专为非常小而简单的操作而设计。PSM 通常具有非常少量的程序 ROM 可用、有限的暂存存储器 RAM,并且它们在可以执行的指令类型和数量方面也受到限制。PSM 可以单独使用,或者(更常见的是)直接嵌入到更大芯片的设计中。
图形处理单元
计算机图形非常复杂,处理视频和游戏应用程序视觉效果的功能已卸载到一种称为 GPU 的特殊类型的处理器。GPU 通常需要专门的硬件来实现矩阵乘法和向量运算。GPU 通常也高度并行化,在多个像素和表面上同时执行着色计算。

应用类型

[编辑 | 编辑源代码]

微控制器和微处理器用于许多不同类型的应用程序。人们可能最熟悉台式 PC,但事实是,台式 PC 仅占当今使用中的所有微处理器的一小部分。我们将在下面列出微处理器的基本用途。

信号处理
信号处理是一个领域,需要微控制器芯片执行复杂的数学任务才能实现高性能。信号处理系统通常需要具有低延迟,并且非常依赖于截止日期。信号处理应用程序的示例是数字电视和无线电信号的解码。
实时应用
某些任务需要非常快地执行,即使是最小的延迟或效率低下也会造成损害。这些应用程序被称为“实时系统”,计时至关重要。实时系统的示例是现代汽车中的防抱死制动系统 (ABS) 控制器。
吞吐量和路由
吞吐量和路由是指处理器将数据从一个特定输入移动到输出的使用,而无需任何处理。一个例子是互联网路由器,它读取数据包并在不同的端口发送数据包。
传感器监控
许多处理器,尤其是小型嵌入式处理器,用于监控传感器。微处理器将对传感器信号进行数字化和滤波,或者读取信号并产生状态输出(传感器正常,传感器故障)。传感器监控处理器的示例是防抱死制动系统中的处理器:该处理器读取制动传感器以确定何时制动器锁死,然后输出控制信号以激活系统其余部分。
通用计算
通用处理器就像通常在台式 PC 中发现的处理器类型。英特尔和 AMD 等名称通常与这种类型的处理器相关联,这也是公众最熟悉的处理器类型。
图形
数字图形的处理是一个领域,专门的处理器单元经常被使用。随着数字电视的出现,图形处理器变得越来越普遍。图形处理器需要能够执行多个同步操作。例如,在数字视频中,每帧都需要处理一百万个或更多个像素,并且特定信号可能每秒有 60 帧!对图形处理器有利的是,像素的颜色值通常不依赖于周围像素的值,因此通常可以并行计算多个像素。
   

抽象层

[编辑 | 编辑源代码]

计算机系统以称为抽象层的方式开发。抽象层允许人们开发计算机组件(硬件和软件),而无需担心系统中其他层的内部设计。最高层是人们在计算机上使用的用户界面程序。最低层是各个计算机组件的晶体管布局。计算机系统中的一些层是(从最高到最低列出)

  1. 应用程序
  2. 操作系统
  3. 固件
  4. 指令集架构
  5. 微处理器控制逻辑
  6. 物理电路布局

本书主要关注指令集架构 (ISA) 和微处理器控制逻辑,但也会简要介绍操作系统 (OS)。上述主题通常属于计算机程序员的领域。最底层,物理电路布局则是硬件和 VLSI 工程师的工作。

操作系统

[编辑 | 编辑源代码]

操作系统是一个程序,它充当系统用户和计算机硬件之间的接口,并控制应用程序的执行。它是计算机上始终运行的程序,通常称为内核。

指令集架构是特定机器的汇编语言以及该汇编语言的相关机器码的长名称。我们将在下面讨论这一点。

汇编语言

[编辑 | 编辑源代码]

汇编语言是一种小型语言,它包含微控制器可以执行的每个单独命令的简短词语或“助记符”。每个命令都获得一个助记符,每个助记符对应一个机器命令。汇编语言被转换为二进制机器码(通过一个名为“汇编器”的程序)。机器码对每种不同类型的机器都是特定的。

常见的 ISA

[编辑 | 编辑源代码]
维基教科书包含关于多种不同类型汇编语言编程的书籍。有关汇编语言的更多信息,或有关特定 ISA 的书籍,请参阅 汇编语言

以下是一些最常见的 ISA,按流行程度排序(最流行的排在最前面)

  • ARM
  • IA-32 (英特尔 x86)
  • MIPS
  • 摩托罗拉 68K
  • PowerPC
  • 日立 SH
  • SPARC
  • RISC-V

摩尔定律

[编辑 | 编辑源代码]

支配微处理器世界的普遍规律是摩尔定律。摩尔定律最初由加州理工学院的卡弗·米德博士提出,并由英特尔创始人戈登·摩尔总结。摩尔定律指出,在相同价格下,单个芯片上的晶体管数量每 18 到 24 个月就会翻一番。自 1965 年首次提出以来,这条定律从未失误。当前的微处理器芯片包含数百万个晶体管,并且这个数字正在迅速增长。以下是摩尔在 1965 年的《电子学杂志》上对该定律的总结

最低组件成本的复杂性以每年大约两倍的速度增长……当然,短期内预计这种速度会持续下去,甚至会加快。从长远来看,增长速度有点不确定,尽管没有理由相信它在至少 10 年内不会保持几乎不变。这意味着到 1975 年,最小成本集成电路的组件数量将达到 65,000 个。我相信这样一个大型电路可以构建在一个晶圆上。
——戈登·摩尔

摩尔定律被错误地用来计算集成电路的速度,甚至用来计算它的功耗,但这两种解释都是错误的。此外,摩尔定律谈论的是“最小组件成本”芯片上的晶体管数量,这意味着相同价格下,芯片上的晶体管数量将会翻一番。这表明,价格较低的芯片可以具有更少的晶体管,而价格较高的芯片可以具有更多的晶体管。从经济角度来看,摩尔定律的一个结果是,公司需要继续创新并在单个芯片上集成更多晶体管,而不能提高价格。

摩尔定律不要求芯片的速度随着芯片上晶体管数量的增加而增加。然而,这两种测量通常是相关的。关于晶体管和摩尔定律,需要注意一些要点

  1. 较小的晶体管通常比较大的晶体管切换速度更快。
  2. 为了在单个芯片上获得更多晶体管,芯片需要做得更大,或者晶体管需要做得更小。通常,晶体管会变小。
  3. 随着晶体管变小,它们往往会泄漏电流。这意味着更小的晶体管需要更多的能量才能运行,并且它们会产生更多的热量。
  4. 晶体管往往会随着频率的增加而产生热量。更高的时钟频率往往会产生更多的热量。
Graph of More's Law Transistor Count from 1970 to 2020. The graph is a collection of points that forms a diagonal upward line.
从 1970 年到 2020 年的摩尔定律晶体管数量图。该图是形成对角向上线的点的集合。

摩尔定律有时被误解为意味着处理器速度(以赫兹为单位)每 18 个月翻一番。这不是完全正确的,尽管随着晶体管变得更小、更紧凑,处理器的速度确实往往会提高。随着多核处理器的出现,有些人使用摩尔定律来意味着处理器吞吐量随着时间的推移而增加,但这也不是严格意义上的事实(尽管它是摩尔定律的可能副作用)。

时钟频率

[编辑 | 编辑源代码]

微处理器通常以其时钟速度来讨论。时钟速度以赫兹(或兆赫兹或吉赫兹)为单位测量。赫兹是“每秒一个周期”。每个周期,微处理器都会执行某些任务,尽管不同类型的处理器在单个周期内完成的工作量不同。处理器在一个周期内可以完成的工作量以“每周期指令数”为单位测量。对于某些系统(例如 MIPS),每个周期有 1 条指令。对于其他系统(例如现代 x86 芯片),每个周期通常有许多指令。时钟频率等式如下

这意味着一个周期的持续时间与时钟频率成反比。时钟频率为 1MHz 的计算机的时钟时间为 1 微秒。时钟频率为 3.2GHz 的现代台式计算机的时钟时间大约为 3× 10-10 秒,或 300 皮秒。300 皮秒是一个非常短的时间,在每个时钟周期内,处理器内部需要发生很多事情。

计算机的基本元素

[编辑 | 编辑源代码]

所有计算机都有一些基本元素。这些元素是

  • CPU
  • 内存
  • 输入设备
  • 输出设备

根据特定的计算机体系结构,这些元素可能具有不同的尺寸,并且它们可能伴随着其他元素。

华夏公益教科书