马秦生,魏翠,孙力军,秦鸣,曹阳
武汉大学 电子信息学院,湖北 武汉 430079
摘要:本文主要介绍和分析了在集成芯片设计中几种常用的片上系统总线-CoreConnect 总线、AMBA 总
线、Wishbone 总线和OCP 总线,通过比较这些总线的特性及适用范围,展望了它们的发展前景。
关键词:IP SoC 片上总线
The Analyse And Research of embeded SoC Bus
Abstract:In this paper, the OCB of CoreConnect, AMBA(Advanced Microcontroller Bus Architecture),
Wishbone, OCP(Open Core Protocol) are mainly introduced and analyzed. By comparing the
characteristic and the applied scope of these SoC bus, the paper views the foreground of the SoC bus
mentioned above.
Key words: IP SoC OCB(On-Chip Bus)
1.引言
随着深亚微米工艺制造技术的发展,集成电路芯片的规模越来越大,目前,在单一IC芯片中已经允许包含数亿个晶体管。与此同时,IC 的设计方法也从基于时序驱动的方式,发展到了基于IP 复用的方式,这种基于IP 复用的设计方法已经在SoC 设计中得到了广泛应用。基于IP 复用的设计方法的关键是建立片上总线(OCB,on-chip bus),片上总线除了必须具有正确、高效和灵活的特点外,还必须具有可复用性。这样,就可以实现IP 芯核的可移植性和IP 设计的可复用性,就可以充分地利用公共外设核处理器,就可以提高从公共设计平台创建产品的定制化能力。因此,实现OCB 的标准化是十分必要的。近年来,许多公司相继制定了一些OCB 标准,其中影响较大的有CoreConnect 总线、AMBA(Advanced Microcontroller Bus Architecture)总线、OCP(Open Core Protocol)总线和Wishbone 总线,本文将对以上OCB 进行介绍和分析,对其性能和应用进行对比,并对其发展前景进行展望。
2.几种常用的SoC 总线的介绍
2.1 CoreConnect 总线
CoreConnect 总线规范是IBM 公司设计的一种SoC 总线协议,它能够使处理器、内存控制器和外设在基于标准产品平台设计中的集成和复用更加灵活,从而提高整个系统性能。CoreConnect 总线采用了总线分段的方式,共提供了三种基本类型总线:处理器局部总线PLB(ProcessorLocal Bus)、片内外设总线OPB(On-Chip Peripheral Bus)和器件控制寄存器总线DCR(Device Control Register)。此外,CoreConnect 还提供连接高性能总线和低性能总线的OPB 桥。CoreConnect 总线结构如图1 所示。CoreConnect 总线中的PLB 总线是一种高带宽、低延迟、高性能的处理器内部总线。高速的CPU 核、高速存储器控制器、仲裁器、高速的DMA 控制器等高性能、宽带宽的设备都连接在PLB 上。CoreConnect 总线中的OPB 总线用于连接具有不同的总线宽度及时序要求的外设和内存,以使这些外设和内存能够尽量减少对PLB 性能的影响。通常,一些低性能的设备都连接在OPB 总线上。在PLB 和OPB 之间有一个OPB 桥,用来实现PLB 主设备与OPB 从设备之间的数据传输。
CoreConnect 总线中的DCR 总线主要用来配置PLB 和OPB 主/从设备中的状态寄存
器和控制寄存器,该总线可以使PLB 从低性能状态中减小负荷,更有效的控制读写传输。DCR 总线取消了内存地址映射配置寄存器,因此,可以减少读取操作,增加处理器内部总线的带宽。CoreConnect 总线是一种完整的、通用的解决方案,它被认为是一种很好的结构性总线,主要应用于高性能嵌入式系统的设计。
2.2 AMBA 总线
AMBA(Advanced Microcontroller Bus Architecture)总线规范是ARM 公司设计的一种用于高性能嵌入式系统的总线标准。它独立于处理器和制造工艺技术,增强了各种应用中的外设和系统单元的可重用性。AMBA 总线是一个多总线系统,AMBA 2.0 规范中定义了三种可以组合使用的不同类型的总线:AHB(Advanced High-performance Bus)、ASB(AdvancedSystem Bus)和APB(Advanced Perpheral Bus)。该规范引入的高性能总线AHB 是现阶段AMBA 实现的主要形式。典型的基于AMBA 2.0 的SoC核心结构如图2 所示。AMBA2.0 规范中的AHB 总线适用于连接高性
能和高时钟频率的系统模块。它主要用于连接高性能和高吞吐量的设备, 如
CPU、片上存储器、DMA设备和协处理器等。作为高性能系统的骨干总线,AHB 可以对接口和互连均进行定义,并可以在任何工艺条件下实现接口和互连的最大带宽。
AMBA2.0 规范中的ASB 总线适用于连接高性能的系统模块。它的读/写数据总线采用
的是同一条双向数据总线,可以在某些高速且不必要使用AHB 总线的场合作为系统总线,可以支持处理器、片上存储器和片外处理器接口及与低功耗外部宏单元之间的连接。AMAB2.0 规范中的APB 总线适用于连接低功耗的外部设备模块。它是一个经过优化的可以减少系统功耗和降低外设接口设计复杂度的外设总线,APB 总线可连接在AHB 和APB系统总线上。AMBA2.0 各总线的性能如表1 所示。
2003 年,ARM 扩展了AMBA 技术的性能与灵活性,发布了AMBA 3.0。AMBA 3.0 包
括AMBA 3.0 AXI、AMBA 3.0 APB、AMBA 3.0 AHB-lite 和AMBA 3.0 ATB。基于AMBA 2.0和AMBA 3.0 的AMBA 总线互连结构如图3 所示。
AMBA 3.0 AXI 协议面向高性能、高频率的系统设计,它在AMBA 2.0 AHB标准的便
于集成、便于扩展等优点的基础上,扩展了AMBA 性能与灵活性,它支持乱序发送、乱序返回数据等操作,使总线带宽得到最大程度的利用。AMBA3.0 AXI 总线主要基于以下的设计目标:⑴高带宽、低时延的设计;⑵支持高频率操作而无需复杂桥连接;⑶满足宽频率操作而无需复杂桥连接;⑷满足宽范围系统成员的接口要求;⑸适合初始访问延时大的存储控制器;⑹互连体系结构实现灵活;⑺与已有的AMBA 系统连接简单。AXI 的总线协议采用了通道体系结构、支持多项数据交换、具有独立的地址和数据通道和双向VALID 和READY 握手机制,还具有增强的灵活性和低功耗的节电模式。
在AMBA 2.0 规范中的APB 协议基础上,AMBA 3.0 APB 协议做了补充,增加了两个
握手信号,即PREADY 信号和PSLVERR 信号。PREADY 信号用来Slave 延长APB 上的总线传输操作,而PSLERR 信号用来将Slave 的错误响应反馈给AXI 或AHB。
AMBA 3.0 AHB-Lite 协议是 AHB 的变化型,在该协议中只有一个Master,与AHB 相
比,少了Arbiter 和HGRANT/HBUSREQ 信号机制,以及Slave 不再回应RETRY/SPLIT
响应的机制。
2.3 Wishbone 总线
Wishbone 总线规范最先是由Silicore 公司提出,现在已被移交给OpenCores 组织维护。由于其具有开放性的特点,目前已经有不少的用户群体。Wishbone 总线规范的目的是作为一种IP 核之间的通用接口,因此它定义了一套标准的信号和总线周期,用以连接不同的模块。Wishbone 总线结构十分简单,它仅仅定义了一条高速总线。在一个复杂的系统中,可以采用两条Wishbone 总线的多级总线结构,其中一条用于高性能的系统部分,一条用于低速的外设部分,两者之间添加一个接口,该接口实现较简单。Wishbone 总线有很强的灵活性。IP 核的灵活性,使得其间的连接没有统一的方式。在Wishbone 总线协议中提供了四种不同的IP 互连方式:⑴
点到点(point-to-point),用于两个IP 核的直接互连;⑵数据流(data flow),用于多个串行IP 核之间的数据并发传输;⑶共享总线(shared bus),用于多个IP 共享一条总线;⑷交叉开关(crossbar switch),同时连接多个主从部件,
提高吞吐量;此外还提供一种片外连接方式,可以连接到以上任何一种互连网络中。如可以将两个有Wishbone 接口的不同芯片之间用点到点的方式进行连接。Wishbone总线的结构如图4 所示。
由于Wishbone 总线的简单性和可移植性,它的应用领域非常广泛。它可以应用于简单的嵌入式控制器中和一些高速系统中。但是在高性能的系统中,它往往不能准确地从多个执行程序中终止相应的单个执行程序。
2.4 OCP 总线
OCP(Open Core Protocol)总线规范是OCP-IP(开放式内核协议国际同盟)设计的
一个规范,是为了在SoC 设计中实现IP 核的即插即用而制定的片上总线规范,是一种不依赖于特定处理器内核的总线协议。只要IP 核和总线符合OCP 标准,即使更换处理器的内核和总线,也不需要重新设计IP 核,因此,该标准具有灵活的应用性。OCP 标准是目前唯一公开许可、并给出IP 核系统级综合要求的协议,它在片上系统通信上定义了一个高效的、总线独立的,可配置和高度可扩展的接口。OCP 协议以IP 核为中心,克服了反复定义、校验、证明和兼容接口的复杂性。OCP 的典型总线结构如图5 所示,该图包含三个独立的IP核实体和一个包装总线。
OCP 总线规范中不仅规定了数据总线信号和控制信号,而且规定了测试信号,并且OCP 的数据总线和地址总线均是可配置的。OCP 总线规范使用同步的单向信
号来简化系统设计和时序分析,同时也采用了主/从结构。OCP 总线支持流水线操作,并且通过线程标识符(thread identifiers)管理方式实现并发传送,大大增加了数据吞吐率。
IP 核的性质决定了它是否需要主从设备,接口包装模块是作为OCP 连接实体的补充部分。一次系统传输过程如下:首先一个系统OCP 主设备向它所连接的从设备(总线包装接口模块)发出命令、控制或者数据信息,接口模块便向片上总线系统提出请求,然后接收总线包装接口模块(作为OCP 的主设备)再将嵌入式总线操作转换成一个合法的OCP 命令,最后OCP 从设备接收并执行这个命令,从而完成一次传输过程,如图5 所示。在此过程中,由于OCP 并没有实现嵌入式总线的功能,OCP 的请求是通过嵌入式总线操作完成的。OCP 协议可以提供极高性能的多线程,同步初始和单请求/多数据事务。OCP 数据传输模型范围可以从简单通过通道请求相应的请求握手到复杂的乱序操作。
3.4 种SoC 总线的分析与比较
CoreConnect、AMBA、OCP、Wishbone 四种总线都是完全同步的设计,均是在时钟
的上升沿来驱动和采样信号的。它们最大的区别在于各自提供的特性和规范的完整性不同,详细特性见表2,应用综合比较见表3。
从设计成本上,CoreConnect 和AMBA 需要购买授权协议,而OCP 和Wishbone 则
是完全免费的。
从复杂程度上,CoreConnect、AMBA、OCP、Wishbone 总线结构依次从重到轻,分
成三个等级,CoreConnect 是重度设计,适合复杂和高端的应用,需要遵守严格的操作协议;AMBA 是中度设计,适合较复杂的应用,需要遵守较简单的操作协议;Wishbone 是轻度设计,适合较简单、灵活、可增加自己定义部分的应用;而OCP 是IP 核互连的接口协议,并且可以嵌入在CoreConnect 和AMBA 中使用,可以应用于中度和轻度设计。CoreConnect 虽然被适用范围所限制,但由于IBM 本身技术上的优势和巨大的影响力,其仍可以在业界长期存在。
AMBA 总线规范却拥有众多第三方支持,它被ARM 公司90%以上的合作伙伴采用,
并且目前在基于ARM 处理器内核的SoC 设计中,AMBA 已经成为具有较高支持度的现有的互连标准之一,其必将在大多数应用领域中被更多的设计者采用。
由于OpenCores 组织的大力支持,Wishbone 总线将在比较长的时间内,在自由设计
者和中小型EDA 企业中占据主导地位。
鉴于本身的灵活性,OCP 协议在自由设计者和中小型EDA 企业中将有很广阔的前景。
综上所述,在国内芯片市场,具有众多第三方支持的AMBA 总线和具有极强灵活性的
OCP 总线必将得到长足发展。
4.结论
简化设计,提高IP 的可重用性是SoC 总线的根本目的。而结构简单,数据吞吐量高,功耗低是SoC 总线标准的生命力。此外,总线的开放性也很重要,对于SoC 继承而言,单一的标准似乎难以对于不同的SoC 应用及性能要求提供最佳的解决方案。随着IP 核相关标准的制定及各种片上系统集成互连方案的使用,SoC 的总线规范也会进一步的发展。
参考文献
【1】 李瑞,张春元,罗莉.三种常用SoC 片上总线的分析与比较.单片机与嵌入式系统应用.2004 年第2期,P5~8
【2】 张丽媛,章军,陈新华.三种SoC 片上总线的分析与比较.山东科技大学学报,2005 年6 月,第24卷第2 期,P66~P69
【3】 陈林,王家兵.IP 核互连策略及规范. 2005,3
【4】 杨健.面向可重用SoC 设计的片上总线.2005 年第5 期,P18-18,P20,P22
【5】 Patrick Pelgrims, Tom Tierens and Dries Driessens. Overview AMBA Avalon CoreConnect Wishbone[EB/OL]. entorg/openpub/.
【6】 王磊.32 位软处理器MicroBlaze 的体系结构及其应用
【7】 Rudolf Usselmann. OpenCores SoC Bus Review. 2001
阅读(3815) | 评论(1) | 转发(0) |