嵌入式系统是当今计算机工业发展的一个热点。随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。如此密集的集成度使我们现在能够在一小块芯片上把以前由CPU和若干I/O接口等数块芯片实现的功能集成起来,由单片集成电路构成功能强大的、完整的系统,这就是我们通常所说的片上系统SoC(System on Chip)。由于功能完整,SoC逐渐成为嵌入式系统发展的主流。 SoC相比板上系统,具有许多优点: ① 充分利用IP技术,减少产品设计复杂性和开发成本,缩短产品开发的时间; SoC的设计过程中,{zj1}特色的是IP复用技术。即选择所需功能的IP(给出IP定义)核,集成到一个芯片中用。由于IP核的设计千差万别,IP核的连接就成为构造SoC的关键。片上总线(On-Chip Bus,OCB)是实现SoC中IP核连接最常见的技术手段,它以总线方式实现IP核之间数据通信。与板上总线不同,片上总线不用驱动底板上的信号和连接器,使用更简单,速度更快。一个片上总线规范一般需要定义各个模块之间初始化、仲裁、请求传输、响应、发送接收等过程中驱动、时序、策略等关系。 由于片上总线与板上总线应用范围不同,存在着较大的差异,其主要特点如下: ① 片上总线要尽可能简单。首先结构要简单,这样可以占用较少的逻辑单元;其次时序要简单,以利于提高总线的速度;第三接口要简单,如此可减少与IP核连接的复杂度。 ② 片上总线有较大的灵活性。由于片上系统应用广泛,不同的应用对总线的要求各异,因此片上总线具有较大的灵活性。其一,多数片上总线的数据和地址宽度都可变,如AMBA AHB支持32位~128位数据总线宽度;其二,部分片上总线的互连结构可变,如Wishbone总线支持点到点、数据流、共享总线和交叉开关四种互连方式;其三,部分片上总线的仲裁机制灵活可变,如Wishbone总线的仲裁机制可以xx由用户定制。 ③ 片上总线要尽可能降低功耗。因此,在实际应用时,总线上各种信号尽量保持不变,并且多采用单向信号线,降低了功耗,同时也简化了时序。上述三种片上总线输入数据线和输出数据线都是分开的,且都没有信号复用现象。 片上总线有两种实现方案,一是选用国际上公开通用的总线结构;二是根据特定领域自主开发片上总线。本文就目前SoC上使用较多的三种片上总线标准——ARM的AMBA、Silicore的Wishbone和Altera的Avalon进行讨论,对三者特性进行分析和比较。 1 AMBA总线 AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM公司设计的一种用于高性能嵌入式系统的总线标准。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统宏单元的可重用性。AMBA总线规范是一个开放标准,可免费从ARM获得。目前,AMBA 拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM处理器内核的SoC设计中,已经成为广泛支持的现有互联标准之一。AMBA总线规范2.0于1999年发布,该规范引入的先进高性能总线(AHB)是现阶段AMBA实现的主要形式。AHB的关键是对接口和互连均进行定义,目的是在任何工艺条件下实现接口和互连的{zd0}带宽。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)进行连接。
AMBA的AHB适用于高性能和高时钟频率的系统模块。它作为高性能系统的骨干总线,主要用于连接高性能和高吞吐量设备之间的连接,如CPU、片上存储器、DMA设备和DSP或其它协处理器等。其主要特性如下: ◇ 支持多个总线主设备控制器; AMBA的ASB适用于高性能的系统模块。在不必要适用AHB的高速特性的场合,可选择ASB作为系统总线。它同样支持处理器、片上存储器和片外处理器接口与低功耗外部宏单元之间的连接。其主要特性与AHB类似,主要不同点是它读数据和写数据采用同一条双向数据总线。 AMBA的APB适用于低功耗的外部设备,它已经过优化,以减少功耗和对外设接口的复杂度;它可连接在两种系统总线上。其主要特性如下: ◇ 低速、低功耗外部总线; 2 Wishbone总线 Wishbone{zx0}是由Silicore公司提出的,现在已被移交给OpenCores组织维护。由于其开放性,现在已有不少的用户群体,特别是一些免费的IP核,大多数都采用Wishbone标准。 Wishbone总线规范是一种片上系统IP核互连体系结构。它定义了一种IP核之间公共的逻辑接口,减轻了系统组件集成的难度,提高了系统组件的可重用性、可靠性和可移植性,加快了产品市场化的速度。Wishbone总线规范可用于软核、固核和硬核,对开发工具和目标硬件没有特殊要求,并且几乎兼容已有所有的综合工具,可以用多种硬件描述语言来实现。 Wishbone总线规范的目的是作为一种IP核之间的通用接口,因此它定义了一套标准的信号和总线周期,以连接不同的模块,而不是试图去规范IP核的功能和接口。 Wishbone总线结构十分简单,它仅仅定义了一条高速总线。在一个复杂的系统中,可以采用两条Wishbone总线的多级总线结构:其一用于高性能系统部分,其二用于低速外设部分,两者之间需要一个接口。这个接口虽然占用一些电路资源,但这比设计并连接两种不同的总线要简单多了。用户可以按需要自定义Wishbone标准,如字节对齐方式和标志位(TAG)的含义等等,还可以加上一些其它的特性。Wishbone的一种互连结构如图2所示。
灵活性是Wishbone总线的另一个优点。由于IP核种类多样,其间并没有一种统一的间接方式。为满足不同系统的需要,Wishbone总线提供了四种不同的IP核互连方式: ◇ 点到点(point-to-point),用于两IP核直接互连; 还有一种片外连接方式,可以连接到上面任何一种互连网络中。比如说,两个有Wishbone接口的不同芯片之间就可以用点到点方式进行连接。 Wishbone总线主要特征如下: ◆ 所有应用适用于同一种总线体系结构; 3 Avalon总线 Avalon总线是Altera公司设计的用于SOPC(System On Programmable Chip,可编程片上系统)中,连接片上处理器和其它IP模块的一种简单的总线协议,规定了主部件和从部件之间进行连接的端口和通信的时序。 Avalon总线的主要设计目的如下:① 简单性,提供一种非常易于理解的协议;② 优化总线逻辑的资源使用率,将逻辑单元保存在PLD(Programmable Logic Device,可编程逻辑器件)中;③ 同步操作,将其它的逻辑单元很好地集成到同一PLD中,同时避免复杂的时序。
Avalon总线主要特性如下: ◇ 32位寻址空间; 4 三种片上总线比较 通过以上对三种总线特性的介绍,可以对三种总线作个比较,如表1所列。 表1 三种总线特性比较 基于三种总线的特性,可以得出其应用的综合比较,如表2所列。 表2 三种总线应用综合比较 三种总线各有特点,决定了其应用范围的不同。AMBA 总线规范拥有众多第三方支持,被ARM公司90%以上的合作伙伴采用,已成为广泛支持的现有互连标准之一。Wishbone异军突起,其简单性和灵活性受到广大SoC设计者的青睐。由于它是xx免费的,并有丰富的免费IP核资源,因此它有可能成为未来的片上系统总线互连标准。Avalon主要用于Altera公司系列PLD中,{zd0}的优点在于其配置的简单性,可由EDA工具快速生成,受PLD厂商巨头Altera极力推荐,其影响范围也不可忽视。 结语 本文对SoC中常用的三种总线AMBA、Wishbone和Avalon的特性进行了详细分析和比较,在此基础上阐述了各自的应用范围,为SoC设计中总线选择提供了参考。SoC系统中总线的选择不仅要看其性能,还要看其应用范围,是否有足够的IP核资源可用等等。另外,SoC中可以选用的总线还有很多,如IBM的CoreConnect、Plamchip的CoreFrame、Mentor Graphics的FISPbus等等。虽然这些总线目前的应用范围都远不如本文介绍的三种总线广泛,但是各有其特点和适用领域。因此,在SoC中选用片上总线时,需要进行认真选择。 |