1.1.1 传统的计算应用分类及其特点
从智能家电到手机再到最大的超级计算机,虽然在计算机中使用了一套通用的硬件技术(见1.4节和1.5节),但不同的应用具有不同的设计要求,并以不同的方式使用核心硬件技术。宽泛地说,计算机主要用于如下三种不同的应用场景中。
笔记本形式的个人计算机(Personal Computer, PC)可能是最广为人知的计算机形式,本书的读者几乎都在广泛使用。个人计算机强调以低成本向单个用户交付良好的性能,通常运行第三方软件。这类计算方式推动了许多计算技术的发展,尽管它仅有40年的历史!
个人计算机:用于个人使用的计算机,通常包含图形显示器、键盘和鼠标。
服务器是过去曾是庞然大物的计算机的现代形式,通常只能通过网络访问。服务器适用于执行巨大的工作负载,其中可能包括单个复杂应用——通常是科学或工程应用程序,也可以执行许多小型作业,例如在构建大型Web服务器时发生的任务。这些应用程序通常来自其他来源(如数据库或模拟系统)的软件,但往往会针对特定需求进行修改或定制。服务器采用与桌面计算机相同的基础技术构建,但能够提供更强大的计算、存储和输入/输出能力。通常情况下,服务器更强调可靠性,因为相比单用户个人计算机而言,服务器发生故障的代价更高。
服务器:用于为多个用户并行运行大型程序的计算机,通常只能通过网络访问。
服务器的成本和功能范围跨度极其广泛。最低端的服务器可能比一台不带屏幕和键盘的桌面计算机稍贵一些,大约需要1000美元。此类低端服务器通常用于文件存储、小型商业应用或简单的Web服务。最高端的服务器则是超级计算机(supercomputer),当前的超级计算机一般由几十万个处理器和数太字节(terabyte)的内存组成,且成本高达几千万甚至数亿美元。超级计算机通常用于高端科学和工程计算,例如天气预报、石油勘探、蛋白质结构测定和其他大规模问题。尽管这样的超级计算机代表了最高的计算能力,但它们只占据了服务器中相对较小的一部分,在整个计算机市场中所占总销售收入的比例也很小。
超级计算机:具有最高的性能和成本的一类计算机,一般被配置为服务器且通常耗费数千万美元甚至数亿美元。
太字节:原始的定义为1099511627776(240)字节,而通信和辅助存储系统研发人员用其表示1000000000000(1012)字节。为了减少混淆,本书使用太比字节(tebibyte, TiB)这个术语来表示240字节,而使用太字节(terabyte, TB)表示1012字节。图1-1展现了十进制和二进制数值与名称的全部范围。
嵌入式计算机是计算机中最大的一个类别,其应用场景和性能范围也最为广泛。嵌入式计算机包括汽车、电视机中的微处理器或计算机,以及控制飞机或货船的处理器网络。当今的一个流行术语是物联网(IoT),它暗示着所有小型设备都可以通过互联网进行无线通信。嵌入式计算系统的设计目标是运行单一应用程序或者一组相关的应用程序,并且通常和硬件集成在一起以单一系统的方式一并交付。因此,尽管嵌入式计算机的数量庞大,但仍然有大多数用户从来没有意识到他们正在使用计算机。
嵌入式计算机:用于运行某预定应用程序或软件集合的计算机,一般内嵌于其他设备中。
图1-1 通过为所有常见规格术语添加二进制记法解决了2x与10y字节的不明确性。在最后一列中,我们标记了二进制术语比相应的十进制术语大出多少的具体比例,可以看到该数值从上往下逐渐增大。这些前缀可以用于位和字节,所以吉位(Gb)为109位,而吉比位(Gib)为230位。制定公制系统的组织创建了十进制名称的前缀,最后两个数据单位是在2019年提出的,用来预测全球存储系统的容量。所有前缀都来源于它们所代表的1000的幂的拉丁语词源
嵌入式应用常常具有特定的应用程序要求,这需要将最低性能与严格的成本及功耗限制结合在一起考虑。以音乐播放器为例,处理器只需要尽快执行有限的功能,除此之外,成本和功耗最小化是最重要的目标。尽管成本很低,但是嵌入式计算机通常对故障的容忍度较低,因为故障可能会令人不安(例如,新买的电视无法正常工作),甚至是破坏性的(例如,飞机或货船上的计算机系统崩溃)。在面向消费者的嵌入式应用(如数字家电)中,一般通过简单设计来获得可靠性——其重点在于尽可能地保证一项功能的正常运转。而在大型嵌入式系统中,采用了服务器领域的冗余技术。尽管本书的重点是通用计算机,但大多数概念直接或稍作修改即可适用于嵌入式计算机。
详细阐述 “详细阐述”是正文中的一些简短段落,提供读者可能感兴趣的特定主题的更多详细信息。因为后续材料并不依赖于详细阐述内容,所以对此不感兴趣的读者可以直接跳过。
许多嵌入式处理器都是使用处理器核进行设计的,处理器核是使用Verilog或VHDL(参见第4章)等硬件描述语言编写的处理器版本。它使得设计人员可将其他专用硬件与处理器核集成在一块单芯片上进行制造。