2.2 片上系统(SoC)
当今的芯片设计者生产数以百万计的晶体管,设计和验证这样复杂的电路已成为一个非常艰巨的任务。由一个单独的公司来生产这种系统的所有部件是越来越罕见的。出于这一点,ARM以及其他半导体IP公司设计和验证组件(所谓的IP模块或处理器)。半导体公司允许在他们自己的设计使用这些模块,如微处理器、DSP、3D图形和视频控制器及许多其他功能。
半导体公司将这些模块和特定系统的其他部分集成到芯片上,形成一个系统级芯片(SoC)。为了形成系统,这些设备的构造者必须选择适当的处理器、内存控制器、片上存储器、外设、互连总线和其他逻辑块(可能包括模拟或射频部分)。
我们将在本书中使用ASIC(Application Specific Integrated Circuit)这个术语,这是一种为特定应用而设计的集成电路。一个单独的ASIC可能包含一个ARM处理器、内存和其他组件。这跟那些被称为系统级芯片的设备显然有很多相似的地方。SoC通常是指一种具有高集成度的设备,即在单一的设备上包括系统的很多部分,可能包括模拟、混合信号或射频电路。
大型半导体公司会投资几十亿美元来构建这些设备,在自己的平台上运行软件,通常也会做出很大的投资。用一个强大的处理器来生产一个复杂的系统,而不用移植一个或更多的操作系统和外围设备驱动程序,这将是非常罕见的。
当然,像Linux这样强大的操作系统需要大量的内存空间,不仅仅是在单一的硅器件上运行。由于单个设备不能包含整个系统,因此,片上系统的命名未必完全准确。抛开硅片面积的问题不谈,在通常的情况下,一个系统的许多部分需要专业的硅制造工艺并避免它们被放置到相同的晶片上。在一定程度上,SoC概念的扩展就是封装内系统(SiP),在一个单一的物理封装内结合了许多单独的芯片,也被广泛认为封装堆叠。SoC芯片采用的封装用于底部(用于连接到PCB)到顶部(包含连接到独立的软件包,可能包含一个闪速存储器或一个大的SDRAM器件)的连接。