嵌入式系统是当今计算机工业发展的一个热点。随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统SoC(System on Chip)。由于功能完整,SoC逐渐成为嵌入式系统发展的主流。
SoC相比板上系统,具有许多优点:
① 充分利用IP技术,减少产品设计复杂性和开发成本,缩短产品开发的时间;
② 单芯片集成电路可以有效地降低系统功耗;
③ 减少芯片对外引脚数,简化系统加工的复杂性;
④ 减少外围驱动接口单元及电路板之间的信号传递,加快了数据传输和处理的速度;
⑤ 内嵌的线路可以减少甚至避免电路板信号传送时所造成的系统信号串扰。
SoC的设计过程中,最具特色的是IP复用技术。即选择所需功能的IP(给出IP定义)核,集成到一个芯片中用。由于IP核的设计千差万别,IP核的 连接就成为构造SoC的关键。片上总线(On-Chip Bus,OCB)是实现SoC中IP核连接最常见的技术手段,它以总线方式实现IP核之间数据通信。与板上总线不同,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。
由于片上总线与板上总线应用范围不同,存在着较大的差异,其主要特点如下:
① 片上总线要尽可能简单。首先结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP核连接的复杂度。
② 片上总线有较大的灵活性。由于片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。其一,多数片上总线的数据和地址宽度都可变,如AMBA AHB支持32位~128位数据总线宽度;其二,部分片上总线的互连结构可变,如Wishbone总线支持点到点、数据流、共享总线和交叉开关四种互连方式;其三,部分片上总线的仲裁机制灵活可变,如Wishbone总线的仲裁机制可以完全由用户定制。
③ 片上总线要尽可能降低功耗。因此,在实际应用时,总线上各种信号尽量保持不变,并且多采用单向信号线,降低了功耗,同时也简化了时序。上述三种片上总线输入数据线和输出数据线都是分开的,且都没有信号复用现象。
片上总线有两种实现方案,一是选用国际上公开通用的总线结构;二是根据特定领域自主开发片上总线。本文就目前SoC上使用较多的三种片上总线标准——ARM的AMBA、Silicore的Wishbone和Altera的Avalon进行讨论,对三者特性进行分析和比较。
AMBA总线
AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性。AMBA总线规范是一个开放标准,可免费从ARM获得。目前,AMBA 拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM处理器内核的SoC设计中,已经成为广泛支持的现有互联标准之一。AMBA总线规范2.0于1999年发布,该规范引入的先进高性能总线(AHB)是现阶段AMBA实现的主要形式。AHB的关键是对接口和互连均进行定义,目的是在任何工艺条件下实现接口和互连的最大带宽。AHB接口已与互连功能分离,不再仅仅是一种总线,而是一种带有接口模块的互连体系。
AMBA总线规范主要设计目的如下:① 满足具有一个或多个CPU或DSP的嵌入式系统产品的快速开发要求;② 增加设计技术上的独立性,确保可重用的多种IP核可以成功地移植到不同的系统中,适合全定制、标准单元和门阵列等技术;③ 促进系统模块化设计,以增加处理器的独立性;④ 减少对底层硅的需求,以使片外的操作和测试通信更加有效。
AMBA总线是一个多总线系统。规范定义了三种可以组合使用的不同类型的总线:AHB(Advanced High-performance Bus)、ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。
典型的基于AMBA的SoC核心部分如图1所示。其中高性能系统总线(AHB或ASB)主要用以满足CPU和存储器之间的带宽要求。CPU、片内存储器和DMA设备等高速设备连接在其上,而系统的大部分低速外部设备则连接在低带宽总线APB上。系统总线和外设总线之间用一个桥接器(AHB/ASB-APB-Bridge)进行连接。