EDN首页   博客首页 用户登陆  |  注册
aaa
发表于 2008/11/5 18:54:29

0

关于投票

满足嵌入式系统应用的多核处理器SoC设计

随着嵌入式处理需求的快速增长,系统架构正朝着多处理器设计的方向发展,以解决单处理器系统复杂度太高和计算能力不足的问题。凭借其高逻辑密度及高性能硬模块,新一代FPGA已经使功能强大的芯片多处理(CMP)解决方案成为现实。目前的挑战在于如何在该解决方案的范畴内快速完成设计的开发与创建。
  
赛灵思嵌入式开发套件(EDK)工具和IP具有很大的灵活性,用户可以利用它们以FPGA逻辑为基础设计出独具特色的定制多处理解决方案,从而同时满足价格和性能目标要求。本文将主要介绍以PowerPC和MicroBlaze嵌入式处理器为基础的赛灵思解决方案中的多处理概念。
  
应用领域
  
性能和功能划分是设计多处理器系统的主要动力。总的来说,多处理在以下这些常见场合中会发挥作用:
  
1. 多个独立功能。设计可能需要应对多个独立的处理任务。解决这个问题的好方法是为每个处理任务创建独立的专用处理模块,并为每个处理模块分配专用处理器和外设集。
  
2. 控制或数据层面卸载。常见情况是既有实时任务(计算或数据密集型),也有非实时任务,从而可能导致单处理器解决方案无法做出及时的响应。对于这种情况,您可以分配一个从处理器以便及时完成实时任务,主处理器则完成其他常规任务,并且充当到主机系统的接口。主处理器同时也监控从处理器。从处理器可能包含专用功能或接口,从而能够满足计算性能要求。相应的例子包括网络负载分担、媒体处理以及安全算法等。
  
3. 接口处理。对于作为多接口之间的桥梁或开关的系统,您可以分配一个从处理器用于处理每个接口上的数据,而用一个或者多个主处理器处理更高级的桥接或者开关任务。
  
4. 数据流处理。对于数据流计算问题,您可以安排多个处理器以流水线的方式处理数据流。多处理器流水线的每一级都要在将数据传到下一个处理器之前完成一部分计算任务。这是提高系统吞吐量的一种有效方式。
  
5. 可靠性和冗余度。您可以多次复制处理系统以提高可靠性和冗余度。
  
6. 对称处理。传统的对称处理(SMP)是一种十分有用的解决方案,您可以利用它来提升那些不存在明确划分边界的应用性能。一个具有SMP功能的OS层可以管理并行任务,并且在多处理器之间自动调度这些任务。然而,SMP使用模型不适用于赛灵思处理器,因为它们缺乏实现SMP所需的高速缓存相关性。
  
除了SMP场合,其他的所有应用场合均适合赛灵思公司带有EDK工具的FPGA的应用。赛灵思处理解决方案的独特之处在于,它可以针对应用要求来灵活定制每个处理子系统。例如,并不是所有的处理器都需要一个高速缓存或者浮点单元。通过为特定处理器分配特定的功能,您可以创建一个能够实现所有设计目标的专用解决方案。
  
简单且可扩展的系统架构
  
正如您见到的那样,有许多种使用模型适合多处理器使用。同时存在多种系统架构的可能性。为某一应用场合明确一种单纯且可扩展的拓扑和架构是一件令人头疼的事情,所以定义一个可以满足大部分需求的基线架构会将有所帮助。
  
图1给出了一个双内核架构。这个架构展示了简单且可扩展的多处理器系统定义。您可以基于这个定义衍生出新的拓扑来应对设计约束或挑战。该架构的主要概念如下:

点击看大图

图1:双处理器架构。
  
1. 这个架构是两套完全独立的单处理器系统的简单扩展,是通过将系统与通信元件连接在一起实现的。
  
2. 共享元件全部采用多端口(或者双端口)结构。这些元件的多端口特性使得每个处理器的系统总线在静态和动态负载方面都独立于其他总线。通过隔离各个处理子系统,您可以确保系统总线不会因为一个处理器的事务执行而不能给另一个处理器或者外设使用。所有的多端口外设都在内部完成不同端口上的访问仲裁。
  
3. 关键共享外设是多端口存储器控制器(MPMC)。MPMC通过不同的端口接口访问外部存储器。多个处理器可以通过独立端口连接到MPMC上。这种拓扑使得 PowerPC和MicroBlaze处理器能够以最小的延迟和高带宽同时访问外部存储器。MPMC目前最多可以提供8个端口,这样就可以将三到四个处理器连接到一个外部存储器上。
  
4. 这个架构还可以在处理器之间共享内部块RAM存储器。片上块RAM共享是一种在处理器之间传输KB尺寸数据的高速方式。块RAM的访问也可以是确定性的,这对于某些应用而言是一个重要要求。
5. 除了共享存储器外,还有另外2个内核 - XPS Mailbox和XPS Mutex,它们可以提供形式简单的处理器间通信。XPS Mailbox内核以同步或异步方式为两个处理器提供低延迟、FIFO风格的消息传递接口。它可用于直接传送消息或者用于传送共享存储器中存储的消息指针。您可以使用XPS Mutex内核在2个处理器上为软件共享资源(无论它们是片上资源还是片外资源)的访问进行 仲裁。总的来说,这些内核可帮助您在每个处理器上创建协作软件程序。
  
6. 一些系统可能期望共享非多端口外设(比如UART、SPI或I2C)。这种情况需要在没有连至外设的总线和连至外设的总线之间提供一个系统总线桥。图1给出了一个在两个处理器之间共享UART的总线桥的应用情况。
  
7. 图1特意指出PowerPC405是第一处理器,MicroBlaze是第二处理器,以说明每个处理器的某些特性。然而,经过很小的改动就可以将任何一个处理器替换成其他的处理器。因此这个架构可以在不同的处理器之间实现无缝转换。
  
虽然图1给出了推荐的整体多处理架构,但是不同的约束可能需要您进一步改善该架构。例如,在逻辑面积和资源使用是关键考虑因素的系统中,所有处理器都可以连接到相同的系统总线上。虽然这降低了系统的确定性,增加了总线的运行负载,但是它通过消除新的系统总线以及消除IP的多端口需求而节省了面积。
  
还可实现其他衍生架构,例如在独立系统总线上连接一个高性能处理器,或在共享系统总线上连接多个低性能处理器。您还可以通过利用多级桥连接处理子系统来创建层次化拓扑。EDK所提供的各种工具和IP可以帮助你进一步优化这个基本拓扑,直到其满足您的需要为止。
  
其他考虑因素
  
通常情况下,多处理器架构还需要考虑其他一些因素。例如,您需要在两个处理器之间以非冲突方式定义存储器映射。EDK提供的自动地址生成工具将这一任务简化成简单的按钮操作。
  
您也需要考虑您的时钟和复位网络。您可以选择给所有处理器提供相同速率的时钟,或者让每个处理器使用不同的时钟域。同样,您也可以将复位域定义在不同层次上,例如仅处理器复位、处理器子系统复位和系统复位。处理器必须独立连至调试端口,从而能为每个处理器创建一个独立的调试进程。
  
除了硬件因素,还需要设计软件系统,以便它们能够协同运转。这包括使用共享存储器、消息传递以及一些常见的同步概念,例如屏障(barrier)和会合 (rendezvous)等,从而使系统以可预测性和同步的方式运行。市场上也有商用软件栈可以提供更高级的通信范例。

http://article.ednchina.com/Embedded/200810251202171.htm

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(315) | 回复(0)

发表于 2008/11/5 18:53:25

0

关于投票

利用新一代整合技术 解决多媒体应用处理器设计问题

制程的进展,对多媒体应用处理器的设计者来说,是相当重要的议题,因为无论是缩小处理器体积,使其可安置在愈来愈小的行动终端装置中,或是减少漏电问题,克服难缠的静态功耗增加,都对设计者有相当大的帮助,不过IC设计部份,也需配合改良,发挥制程最佳优势…

随制程几何尺寸变化,功耗问题产生剧烈改变,从250nm到130nm,每个制程世代的漏电流都不甚明显,但到了90nm,漏电流突然跃升为几乎与动态功耗相等情况;65nm继续恶化,到了45nm漏电流几乎是动态功耗3倍。

据市调机构IBS计算,面对45nm制程,若漏电流状况无法改善,约有50%的芯片设计会因为严重的漏电流问题面临重新设计,换句话说,意味着极庞大的前期设计投资成本,将大幅增加。

当然多媒体应用处理器设计者,也面临这种窘境,想藉由重新设计求解,显然是缘木求鱼的方式,所以,从制造层面解决漏电流问题,是比较好的方式。德州仪器(TI)就在45nm制程经努力研究,成功找出大幅减少漏电问题的方法,而芯片设计也配合进行许多改善措施,相辅相成使制程微缩不再加剧功耗问题。

从制造问题着手 解决45nm制程漏电

德仪从硅层级开始,改采不同材料,即高介电系数(High-K)和金属闸极(Metal Gate),从材料层面克服漏电问题。到了IC层级,TI设计动态电压频率缩放(Dynamic Voltage Frequency Scaling)、顺向偏压(Forward Body-Bias;FBB)、逆向偏压(Reverse Body-Bias;RBB)、Retention Til Access(RTA)内存…等高度细密电源管理新技术。

内存是另1个例子,它也有待机电力问题。因为,在1个数组里有许多晶体管,但在任何1个时间点,我们只使用其中1个晶体管,大多数晶体管在此时只会存取于内存中的某一处。

例如,装置有1个很大的内存,可能包含数百万个晶体管,同时,每1个晶体管都在漏电。或许在任何1个时间点,装置只是存取其中的一小部分,其它绝大部分,其实都可以处在低电力状态。因此,必须为高速链路进行偏压处理,德仪有1项技术称为Retention Til Access(RTA)内存,可保留到实际存取时才加以使用。

利用这前述项技术,顾名思义,装置只会启动包含其实际所需信息的小区块,内存绝大部分保持在低电力模式,直到实际需要时,才会启动。每次只启动实际需要区块,而不会启动整个内存。当然记忆数据要加以保留,但还是可保持在比快速存取时更低的电力状态,藉此减少内存的平均电力消耗。

然后,再回到系统层级,德仪发展出许多突破性新技术。软件方面,藉由特制软件,可预测处理器执行为完成特定作业时须达到的速率。例如,以720p高画质处理影像时,必须比以VGA模式处理影像时更高的系统频率速率,若在VGA模式状态,透过软件减缓频率速度,对实际播放效能不减,消耗功率却能随之降低。

除此之外,降低频率速度时,电压也会降低,这使电力消耗降得更低。高度细密的电源管理做法,从制程层级到电路设计层级和系统设计层级,全面性的电源管理做法,是TI减低45nm制程漏电现况的技术重点。

45nm制程开发漏电挑战

转移至新的芯片制程时,当然还是会遇到许多问题。特别是在45nm制程,因为这是业界第1使用浸润式微影(Immersion Lithography)新技术。此外,运用新材料,例如,金属闸极材料(Metal Gate)、高介电系数(High-K)材料,也都是芯片制程发展相关的挑战,但漏电现象是比较严重的问题。

但数字芯片的节能设计经验,面对模拟功能就不见得行!德仪的芯片并不只具备数字功能,也加进模拟功能,模拟技术比数字技术更难转移到45nm制程,因为转移模拟技术,会对基本装置造成更多要求。举例来说,正反器(Flip-Flop)是1个逻辑装置,也是熟悉的逻辑组件,虽然这种逻辑组件只要花一些时间设计好,制作也不困难。但相对而言,操作放大器有好几百个参数必需注意,转移模拟功能难度与挑战反而比数位芯片更严苛。

除此之外,通常当芯片制程从130nm移转到90nm、65nm到45nm制程,电源供应器的电压会随之改变,通常会稍微下降,每个制程节点可能下降到100mV上下,并降低电源供应。由于这个现象,当动态范围改变,为晶体管进行偏压及实作晶体管各项功能的方式,也必须改变,这也使得模拟技术转移困难增加。

但降低功耗可使装置具更高竞争优势,因为,就使用者观点而言,省电即代表装置可使用的时间更久。例如,拍摄影像时,对使用者而言,频率速度加倍并可能并未带来显著差异,因此,这加倍频率形同浪费。但若电力能加倍,拍摄时间也随之加倍,对使用者而言是非常显而易见的好处。因此,如何在微层级管理电源,尽可能为使用者提供最长的装置使用时间,才是芯片设计的重点。

当然,达到效能基本要求,如提供高画质功能,也是相当重要的。但一旦能达到最基本的要求,对行动装置而言,最重要的就是要提供使用者最长的电池使用时间。芯片在达到领先效能后,就得注重45nm产品的电源管理,兼顾这两者,才能设计出贴近使用者真实需求的组件与最终产品。(本文作者Bill Krenik/德州仪器无线终端事业部技术长)



图说:德仪运用多种技术,克服45nm制程漏电问题。(TI)



图说:兼顾高效能与低功耗组件,才能创造真正贴近市场的产品。(TI)

http://tech.digitimes.com.tw/ShowNews.aspx?zCatId=A32&zNotesDocId=0000109124_2FF2ORZ718M0CD5Z0F0J3

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(442) | 回复(0)

发表于 2008/11/5 17:32:31

0

关于投票

处理器设计发展:单芯片同步多处理技术

2008年10月22日 09:42     
在指定的建置技术下,要将个别处理器性能发挥到极限非但不容易,也没有效率。更快的频率、更深的管线和更大的缓冲存储器会占用更大的芯片面积同时增加功耗成本,削弱了原本可提升10%性能的效益。有时候在没有选择的情况下,不得不将频率速度提高并将电源和冷却子系统升级;倘若使用将负载划分到多个处理器的方式,不但可以增加最大整体性能限制,亦可简化处理器设计使其更有效率。
  
目前有许多系统级芯片(SoC)设计利用多处理器的优势,但它们均针对特定应用或采用松散耦合方式。直到最近,针对软件多处理方案的SoC设计选项依然受到限制。但MIPS32 1004K同步处理系统(CPS) SoC组件的推出,意味着可在单一操作系统环境下实现芯片上对称式多重处理(SMP)。
  
虽然平行编程很容易让软件工程师理解,但并非所有现今的程序代码都是针对平行处理平台所编写,业界已有许多针对平行软件的范例,其中有一些对软件设计人员来说也相当熟悉。
  
数据平行算法
  
数据平行算法(Data-parallel algorithm)将数据组划分到多处理器,甚至到若干个CPU中。在教科书中,可将大型数据组看作一个大量输入文件或数据数组;但在嵌入式系统中,它可能意味着高I/O和事件服务频宽。在某些SoC架构中,多个输入数据来源(如网络接口端口)可以被静态地分配到针对自然平行数据、执行相同驱动程序/路由程序代码的多个处理器中。
  
当在单一数据数组或输入流中利用多处理器性能时,用于分割并管理数据的平行算法就很常见。这种算法对于单处理器来说通常不是最理想的,但由于具备了更灵活的频宽运算特性,因此可提供效率补偿。这些针对平行运算算法均具备灵活性,但要是将一个工作程序转换成一个平行数据算法也许不具任何意义,甚至是相当困难或是不可能实现的,而这完全取决于程序相依性这类因素。如果绝大部分的应用程序运算都仅采用很少的常规运算循环来实现,那么,为提高性能,系统设计师也许要明确地建置数据平行算法。
  
随着用于PC、工作站和服务器的多核心X86芯片问世,新的数据库和工具套件应运而生,使得平行算法得以轻易地在少量的处理器上实现。许多用于嵌入式架构的数据库和工具套件都是开放且可携的,如MIPS为GCC所做的C/C++以及Fortran扩展,也正逐渐成为标准GNU编译器的一部分。
  
平行控制编程
  
平行控制编程(Control-parallel programming)并非根据输入,而是根据任务分割工作。若将一个以100人制造一台汽车为单位的汽车制造工厂比喻为一个100信道平行数据算法,并将平行控制程序比喻为一个具有100人的组装线工作站,各工作站负责百分之一的工作量,通常组装线的效率会比较高,但组装一台车的工作量就只有这么多,这样的限制在科学程序代码扩充到几千个处理器时非常显著,然而对于平行SoC架构而言这并不是个问题。
  
软件工程师通常将程序划分成若干个阶段以易于编码、除错和维护,并减少指令内存和快取的工作量。通常,平行控制分解早已设在可见的操作系统(OS)任务层。在类似于Unix的系统中,单一命令‘cc’会依序呼叫C语言前置处理器、编译器、组译器和连结程序。它们之中的几个可以同时执行,每个连续程序利用前一个阶段的输出作为输入,在类似于Unix这样的OS内使用档案或软件管线。
  
当独立分解的执行任务尚未完成时,需进行一些软件工程,使应用程序在OS和底层硬件上是可见的,并能在任务间明确地传递数据。但是不应该需要对阶段算法进行重写。粗粒度的任务分解可透过档案、网络应用程序(socket)或管线的进程通讯来实现。而针对细粒度的控制,如Posix执行绪API——pthreads,可由许多OS支持,包括Linux、Windows以及许多实时操作系统。
  
复杂的、模块化的多任务嵌入式软件系统时常会展现出意外的同步。整体系统任务很可能涉及到对应不同输入的不同责任等多项任务。若没有一个时间共享的OS,各任务就必须在个别处理器上执行。在一个时间共享的单处理器上,它们在轮流时间中执行;在一个具有SMP操作系统的多核心处理器上,它们能在可利用的处理器上同步执行。
  
分布式处理
  
分布式典型运算在网络客户服务器模式中很常见,它在某些时候不被认为是‘平行’的。客户端服务器程序设计基本上是一种控制流程分解的形式。程序任务并不是独自执行所有的运算,而是将工作请求发送到针对特定工作设计的特殊系统任务。客户端服务器程序设计大多都在LAN和WAN上完成,但SMP SoC也遵循相同的范例。未作修改的客户端服务器二进制数据可透过芯片上的TCP/IP或空回绕网络(loopback network)接口进行通讯,或者使用更有效率的方法,利用区域通讯协议在内存中传递缓冲数据。
  
这些方法可能会被单独或组合使用,以藉助SMP的性能优势。有人甚至可能会建构一个分布式SMP服务器的平行数据数组,且各数组均建置一个控制流程管线。
  
在SoC系统中,可以对处理器的静态实体分解任务进行平行处理,处理器的平行任务可于硬件中完成,这可以减少软件开销和实体尺寸,但却不能提供灵活性。
  
如果可以将一个嵌入式应用静态地分解成客户端和服务器,并透过芯片互连进行通讯,那么只需要使用讯息传递程序代码建置一个共享协议,以便将系统互相连系。讯息传递协议可提供一个抽象层,使或多或少的处理器配置都能执行一般的应用程序代码,但无论任何配置,处理器的负载平衡就如同硬件分割一样是静态的。要达到更灵活的平行系统程序设计,可利用具有共享资源多核心处理器系统上的软件任务分配来实现。
  
在SMP操作系统中,所有的处理器都面对相同的内存、I/O组件和全域OS状态,这使得处理器间的程序移转更简单、更有效率,也更容易平衡负载。不需要额外的编程或系统管理,在单CPU上利用时间分段执行的多任务程序,将能同时在一个SMP系统中的CPU上执行。如同Linux,一个SMP的排程器可切换处理器的程序。
执行多个处理程序的Linux应用程序不需要修改,就可以利用SMP平行特性,而且通常不需要进行重新编译。SMP Linux环境为可用处理器之间的调整提供了许多工具,如提高/降低任务的优先级,或是对于在处理器子集上执行任意任务加以限制。要使用不同的实时排程体制,必须要有适当的核心支持。
  
类似Unix的OS能为应用程序提供一些针对相关任务优先级排程的控制,甚至在单核心处理器时间共享系统中也是如此。传统的外部命令和系统呼叫指令在Linux系统中被强化,藉由更精致的机制排定任务优先级、任务组或特定系统使用者。另外,在多核心处理器配置中,任一Linux任务都具有一个参数,用来指定那一组处理器可排定任务。预设参数即为整个系统处理器组,但这种具有类似于CPU的系统处理器组却是可控制的。
  
SMP范例要求所有处理器找寻所有相同地址下的内存;对于低性能的处理器,必须透过将所有处理器的指令预取和加载/储存流通量,置放在一个共享的内存和I/O总线上来达成。然而这种模式随着处理器的增加而失去效用,因为总线会成为瓶颈。即使在单核心处理器系统中,高性能嵌入式核心的指令和数据频宽需求亦支配了主存储器和处理器间的缓冲存储器。
  
在一个每颗处理器均具备独立快取的系统中,其本质上已不属于SMP,当一个处理器的快取保存了内存中唯一一个最近位置值的复制数据时,这时不对称就产生了,必须加入快取一致性协议来恢复对称。
  
在一个所有处理器都连接到一个公共总线的简单系统中,快取控制器可监控总线,以得知哪一个高速缓存保存了指定内存位置的最新版本。在更先进的系统中,是利用交换结构的点对点的连接将处理器连接到内存,因此快取一致性需要更高度的支持。一致性管理单元应该对内存执行施加全域指令,产生干涉讯号来维护处理器核心间的高速缓存一致性。
  
像Linux这样的SMP OS可自由地转移任务,动态地均衡处理器负载。在嵌入式SoC中,绝大部份的整体运算可以在中断服务中执行。好的负载均衡和性能调整必须对发生中断服务的地方进行控制。Linux OS具有一个类似于IRQ的控制接口,可让使用者和程序确认哪一个处理器负责指定的中断服务。
  
快取忆体一致性基础架构很实用,不仅在SMP的处理器间,在处理器和I/O DMA通道之间也相当有用。若是使用软件的方式,便需要在每个I/O DMA作业之前或之后利用CPU来处理DMA缓冲器,对于I/O密集的应用而言,性能将大受影响;而使用I/O一致性硬件将I/O DMA连接到内存的方式,可以对DMA串流进行排序,并与一致的加载/储存流程整合在一起,免除了软件的开销。
  
快取一致性管理单元应该对处理器、I/O和内存间的内存串流施加命令,这可增加处理器内存存取时间的周期,透过管线停滞产生处理器周期损失的结果。然而,一些如在单一核心上使用硬件多执行绪的方法,可允许单核心执行并行的指令串流,以增加管线的效率。
  
各核心的执行绪看起来就如同OS软件中完善的CPU,包括具有独立的中断输入。执行绪共享相同的缓冲存储器和功能单元并插入到它们的管线执行中。若一个执行绪停滞了,另一个可以继续执行,让一致性内存子系统延迟周期循环下去,否则将会遗失。管理多核心的相同SMP OS可以管理它们的硬件执行绪,针对SMP编写的软件可运用多执行绪处理,反之亦然。
  
若两个执行绪同时争取一个管线,其性能相较于在许多独立核心上两个执行绪来得更低,应该对SMP Linux核心进行负载均衡最佳化。对于功耗最佳化,排程器可以将工作一次一个加载到一个核心的虚拟处理器上,使其它的处理器处于低功耗状态。在性能最佳化方面,可以将工作分配到许多核心上,然后将多执行绪加载到每个核心中,直到所有的核心都有一个进展中的任务为止。
  
利用芯片上多处理功能可实现高SoC性能。SMP平台和软件提供了一个具有灵活性的高性能运算平台,能大幅提升单一处理器的速度,而这通常只需要稍微、或者根本不需要修改应用程序代码。

http://product.ccidnet.com/art/3483/20081017/1592885_1.html

系统分类: 资源共享  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(306) | 回复(0)

发表于 2008/11/5 17:29:27

0

关于投票

一种可重用的SOC验证平台

功能验证已经成为开发SOC的主要问题。SOC采用基于IP的设计方法学,加快了产品的面市时间,与此同时SOC也带来了更多的挑战。SOC验证问题是其中的挑战之一。验证在整个芯片设计中的投入是相当大的,大约占整个芯片设计的70%,实现高效的功能验证对芯片的一次流片成功起着至关重要的作用。
无论采用何种验证工具,其验证目的都是为了达到一定的功能覆盖,排除芯片设计中的错误,区别是开发的验证平台的可重用性以及可维护性等。便于维护、重用的验证平台可以节约宝贵时间,减少开发者在平台搭建过程中的工作量,加快SOC验证,有利于新产品的面市。本文介绍Synopsys的RVM验证方法学,是采用openvera硬件验证语言建立目标模型环境、激励自动生成、含错误指示的自核对式测试、覆盖状况分析能力[1]。
RVM验证方法学
Synopsys提供的RVM是在openvera基础上,结合随机验证和覆盖率驱动技术发展起来的一种基于事务的验证方法,适于对SOC某一模块的RTL级验证。显然可以直接利用openvera 来实现对SOC某一模块的RTL验证,但对于协议复杂的模块,其重用性可维护性大大降低。所谓事务是指被设计对象与事务处理器之间通过接口所做的一次数据或控制的传输[2]。事务可以是一次寄存器的读写这样的简单事务,也可以是具有一定比特个数且各比特间有一定关系的复杂事务。基于事务的思想把验证提高到更高的抽象层次——事务层,使验证不仅仅停留在信号级上,还提升到了事务级上,提高了验证效率。RVM采用分层的、模块的验证平台结构。RVM验证平台分为五层:测试层、激励产生层、功能层、控制层、信号层。其验证结构如图1[3]所示。
.          

                            
图1  RVM验证平台

信号层:提供与DUT(device under test被验证模块)外部物理接口信号连接的信号名,验证环境采用虚端口来代替真实的信号名,因此对DUT真实信号的改变不会影响到验证平台或者测试例。接口信号虽然可以被信号层以上的所有层访问,但应避免信号层以上的层直接访问信号层,除非特别需要。
控制层:包括驱动器和监控器,它们也是特殊的处理器。驱动器主要完成对接口信号的驱动以及监测;监控器主要监测需要监测的接口信号,把监测到的信息,以数据的形式组装并通过函数或者通道反馈给自检器。在这一层中事务被定义为在某一接口上的基本数据传输或者控制操作,例如一次DUT内部寄存器写,以太网帧传输。基本传输或者操作与声明的接口的独立时序有关。
功能层:包括事务处理器和自检器,处理应用级的事务。与物理层的基于接口的事务不同,功能层的事务与接口或物理层事务没有一一对应的相关性。功能层的事务是部分DUT或者整个DUT执行的,高于物理接口模型的更高级别的抽象。一个功能层事务可以使多个控制层事务在不同的接口被执行。事务处理器主要完成,组装DUT配置需要的数据对象,按照协议组装特定数据类型的数据对象,通过通道传送数据对象到下层模块驱动器。对于协议比较复杂的模块,事务处理器也非常复杂,尽可能将协议部分在事务处理器中实现,对协议的修改不会影响到下层模块,易于验证平台的维护。自检器:该模块实现数据自动对比,避免了看波形的费时费力,但看波形仍是十分必要的,通过看波形,分析DUT的信号时序,直接定位DUT的错误。
测试层:在整个验证平台的最高层,平台搭建完毕之后就可以开发测试例了, 测试例的开发对全面验证DUT的功能起至关重要的作用。测试例有正常、异常测试例;验证平台应该支持正常及异常测试例。通过限制产生器产生目标测试例。
激励产生层:产生器,随机产生需要的数据对象或者事务对象,根据实际需要产生符合需求的数据类型,用不同的属性来区分不同的数据对象。产生器是一个特殊的处理器,通过输出通道把被封装的数据或者事务传送到下层模块。整个验证过程中随机激励的产生是均匀分布的,也可以通过设置权重调整。这种测试的均匀分布对于随机测试是非常必要的,可以覆盖尽可能多的状况,其性能取决于设计规模、编译时间、连接时间、执行时间、存储器使用量以及测试向量的数目[4]。Vera特有的随机稳定[3](random stability),可以使多次仿真运行产生相同的数据或者事务对象。在DUT设计有误然后被修改的情况下,随机稳定特性可以使产生器产生相同的事务,检查DUT错误之处是否被正确修改。
功能覆盖:功能覆盖与各个层次都有关,尤其与事务处理器、驱动器、自检器直接相关。对DUT的功能覆盖包括针对验证平台的激励功能覆盖、针对DUT的行为功能覆盖,理解DUT功能并制定详细合理的功能覆盖点,编写测试例,适当修改验证平台,达到预期功能覆盖率,全面验证DUT的功能。注意一些非法功能覆盖点是不能被覆盖到的。
RVM的分层结构使验证的抽象层次从信号层提升到事物层。因此验证工程师不必关心DUT内部的实现细节,只需根据设计工程师提供的详细设计文档,提取DUT工作需要的激励和输入输出端口信息,按照一定的时序关系就可以进行验证平台的搭建和验证代码的编写工作了。
RVM提供了方便验证平台搭建的基类库。主要包括构造事物对象的rvm_data类、构造事务对象的处理器(transactor)的rvm_xactor类、构造传输事务对象的通道(channel)的rvm_channel类、构造整个验证环境的rvm_env类、反馈信息的rvm_log类、事件通知rvm_notify类。验证工程师根据这些类根据不同的DUT灵活实现各个模块的设计,模块间的同步,搭建的验证平台易于调试、重用、维护。
RVM验证方法学在SD Memory Card验证平台搭建中的应用
SD功能简介:
SD Memory Card(secure digital memory card)是市场上通用的一种用于存储音视频等文件的卡,被广泛应用在电子产品中。SD是APB(advanced peripheral bus)总线的外挂设备,通过SD控制器与APB总线相连。控制器分别通过命令线、数据线负责向卡发送命令,从卡接收响应,向卡发送数据,接受来自卡的数据。通信过程中卡是被动的 ,在接收到控制器相关命令后进行相应的反馈。
根据SD卡协议,结合RVM验证方法搭建APB端验证平台,搭建卡的模型,如图2所示。图1中的DUT被这里的SD控制器代替。
              

                   
图2  SD控制器RTL级验证平台

随机激励产生器:为了模拟对SD卡的读写操作,APB端可以抽象出2种数据类型,第一种是关于对SD卡的读写操作的数据类型,是APB端产生器传送给APB端事务处理器的数据apb_trans_1。第二种是APB端事务处理器传送给APB端驱动器的数据apb_trans_2。卡的模型端制定一种数据类型sd_trans。利用不同的传输通道传输不同的数据。
事务处理器:APB端事务处理器接收本端产生器通过通道传送来的数据apb_trans_1,然后按照SD卡协议通过输送通道把组装的事务apb_trans_2传给APB端驱动器,并从本端驱动器到事务处理器的输送通道中接收APB端驱动器反馈的数据;卡端事务处理器从接收通道中接收事务sd_trans,根据不同的属性组装相应的事务sd_trans,通过输送通道把事务传给卡端卡端驱动器,同时接收驱动器的反馈。
驱动器:从接收通道中接收数据并根据不同的数据属性执行不同的操作,此模块涉及对控制器外部接口信号的操作,可以对接口信号驱动或者采样。APB端驱动器的2个线程(同时进行的操作):1)按照APB读写数据的协议对控制器进行读写操作;2)监测中断信号,中断到达后读取中断并把组装的数据通过通道传给APB端事务处理器。SD卡端驱动器的2个线程:1)按照一定的接口时钟监测数据线、命令线、把检测到的数据组装成卡端的数据类型,通过输送通道传给SD端事务处理器;2)等待从接收通道接收数据,根据数据的属性来判断是对数据线进行操作,还是对命令线进行操作,把数据驱动到数据线或者命令线上。对于相同总线功能模型的模块,该模块可以被重用。

监控器:APB端监控器按照DUT接口协议对需要监测的信号线采样,把需要对比(由自检器完成)的数据,例如当监测到是对控制器进行写操作并且是写入控制器FIFO(first in first out)中,或者是写入命令时就需要组装apb_trans2 并把这种数据通过通道或者函数传送给自检器,同样处理从控制器读取的需要对比的数据。SD卡的模型端也可以设置一个监控器,但卡端驱动器也对命令线以及数据线监测、驱动,因此可以直接复用此端驱动器,在驱动DUT之前把被驱动的需要反馈的数据通过通道或者函数传给自检器,把监测到的数据传给事务处理器 的同时,又传送给自检器。采用这种方式处理卡的模型端的平台,减少了模块数量,减轻了程序员的负担,仔细分析模块功能,重复利用各个模块中都能利用到的功能可以减少平台搭建的时间。
自检器:把APB端发送的数据以及命令,与SD卡的模型端接收的数据以及命令做比较;把APB端读出的数据以及命令的响应,与SD卡的模型端发送的数据以及命令的响应做比较。
测试例和功能覆盖:正常测试例包括对SD卡的读写操作、对卡的写保护、解锁卡。异常测试例,限于篇幅只做简单介绍,例如SD卡的模型端发送数据时结束比特出错时,控制器在结束比特错误中断使能的情况下,应该产生中断信号,这种测试例可以在测试例中限制产生器使其产生特定的测试例覆盖这种情况,如果利用大量的随机测试来覆盖这种情况,就太耗费时间了。SD控制器的激励功能覆盖点主要是控制SD卡的各种命令,例如单块读、写命令,多块读、写命令、擦除命令、解卡命令、锁卡命令等。行为功能覆盖点主要是DUT内部寄存器的状态。
测试结果
通过编写随机测试例、异常测试例,使DUT的代码覆盖率(由仿真工具自动统计)达到96.5%,功能覆盖率(功能覆盖点由验证工程师制定)达到100%。通过与设计工程师交流确定代码覆盖率达不到100%的原因,例如缺少测试例、设计中有冗余代码等原因。通过开发直接测试例,修改设计代码,使代码覆盖达到要求。验证中生成的.log文件中包含一些错误报警信息,假设数据的自动对比过程中存在错误,错误就会被打印出来,便于错误查找。同时仔细看仿真生成的波形,排除DUT时序错误的现象,也可以看到设计工程师定义的DUT内部信号,更快更准的定位DUT设计的错误。
SD验证模块在整个系统级验证中的应用
在系统级验证中,重点是各个模块的功能验证,各个模块的接口协议是否正确,整个芯片中各个设计模块间的通信是否正确[5]。我们可以将模块级验证平台的部分模块复用到系统级验证平台中,实现激励随机产生,输出结果对比等功能,减轻了验证工程师的工作量和提高了验证的效率。系统级验证时模块验证平台中的产生器、事务处理器、驱动器被实际的总线替代。如果驱动的功能是代替外设IP,在系统级验证时需要用实际的外设IP来代替,如果芯片的功能是产生芯片级管脚信号,此时驱动仍可以重用。在SD系统验证时,原来模块级验证平台的APB端产生器、APB端事务处理器、APB端驱动器被APB BRIDGE所替代,APB端的激励从ARM送出,而SD模块级验证平台的其它模块,被重用到系统级,起到模拟卡的操作和输入输出结果比对的功能。系统级验证的结构如图3所示
    

                           
图3  SD控制器系统级重用模型

本文作者创新观点
结合随机化验证和覆盖率驱动技术搭建的RVM验证平台,具有良好的层次性,可维护性、重用性,能更快捷全面地验证SOC模块的功能。而且模块级的部分验证平台可以重用到系统级,减少了系统级验证平台的搭建时间,加快产品的面市时间。
参考文献
1 孙海平,丁健.系统芯片(SoC)验证方法与技术[M].北京:
电子工业出版社,2005
2 孟庆,何乐年等.基于事务的SoC验证策略.半导体技术
[J],2002,27(6):29--32
3 SYNOPSYS.Reference Verification  Methodology  User Guide.Version 8.5.11.December 2004
4 RASHINKAR P,PATERSON P,SINAGHL.系统芯片(SOC)验证方法与技术[M].北京:电子工业出版社,2005.
5 陈辉,申敏,刘树军.结合覆盖率驱动技术的RVM验证方法学在SOC验证中的应用[J].微计算机信息,2006,9-2:115。
作者简介:杜宁(1983-),男,山东肥城人,硕士研究生,通信与信息系统专业,研究方向:第三代移动通信技术。郑建宏,男,重庆邮电大学通信学院教授,主要研究方向为第三代移动通信TD-SCDMA手机终端芯片的研发。
Biography:Du Ning(1983-),male,Feicheng city of Shandong province,postgraduate, major:telecommunication,research on technique of the third generation mobile communication. Zheng Jian-hong, male,professor ,department:college of communication ,Chongqing university of posts and telecommunications ,research on designing of the ASIC for the third generation mobile phone of TD-SCDMA.
通信地址:重庆邮电大学76信箱 邮编:400065  E-mail:duning1983@sohu.com

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(386) | 回复(0)

发表于 2008/11/4 16:57:24

0

关于投票

从MP3到高清电视的多媒体处理器架构分析

目前,多媒体设备的范围非常广泛:从儿童使用的价格不到20美元的MP3播放机到屏幕尺寸几乎和电影院里差不多的家用平板显示器。在先进的电视机上显示图像意味着需要对高清分辨率的H.264比特流进行解码,所需的处理器马力要比解码MP3文件所需马力高3个数量级以上。这种处理能力不对等的另一个例子则是照相手机和摄像机的比较。手机所拍的图像视频为QCIF(176x144)格式,而目前的摄像机的视频格式则为HD MPEG-2。这些格式对设备的视频子系统的处理能力的需求差别极大。对于SoC设计师来说,如果能够保持处理器基础架构不变将是非常有益的。否则,如果需要重新设计来满足如此宽的应用范围中的每项设计应用需求,必将导致更高的设计成本及更长的上市时间。

消费者可能想在不同设备上播放和共享内容。绝大多数人已经拥有多套多媒体设备,如电视机、机顶盒、DVD机、手机、电脑、PMP等。未来设备的一个重要能力就是能够在这些设备之间传输和/或转移内容。在这些极其不同的设备之间需要具有互操作性。由于所用的音视频编码标准有很多,互操作性要求基础多媒体处理架构具有可编程性。然后在软件中编入编码标准,从而使得终端设备灵活并能实现升级。

可编程性同时也意味着可以对影响音频和图像质量的关键算法进行升级??即通过升级使其具有所需的功能,这是因为工程师不断地研发用来提高音频和图像质量的新方法,事实上也正是这些语音和图像质量使得其产品具备与竞争产品之间的差异化。可编程性同样也使得器件制造商进一步实现产品差异化,可以为用户提供不同的SoC使用方法,降低流片风险,并延长产品的市场寿命。

结果,多媒体处理器架构必须覆盖很大范围的复杂度并能够软件可编程。ARC Vraptor采用了特殊的多核方案:多个高性能处理器被连接到多个SIMD处理器和多个DMA引擎,还采用了面向不同域的加速器。所有这些都带有低开销,低延迟的通信信道和本地宽带数据总线。

图1:ARC VRaptor 多媒体处理器架构。
图1:ARC VRaptor 多媒体处理器架构

并行多媒体处理

对于可提供的实际时钟频率来说,当需要比一个单处理器的能力还高的性能时,并行处理是加速的唯一方法。但是,Amdahl定律告诉我们,只有算法的一部分可以并行,而有些部分是不能并行的,因而最终的加速系数,并非并行处理器的数量。极少应用可以容易地实现全并行,通过增加处理器就可以实现系统性能的线性加速。而现实中的多媒体应用的并行处理可以涉及到全过程:并行得到的好处不但非微不足道,而且肯定可以大大地增加效率并改善性能,如果并行处理得好的话。在为所运行的应用设计一个好的子系统之前,设计师应该仔细地分析这些应用的性质,看一看如何将这些应用分配到各个处理单元中。

视频和图像算法通常容易实现并行处理;一幅图像的左上角的像素与一幅图像的右下角的像素关联很少,故可以独立进行处理,因此处理可以并行。在一幅简单图像的获取和显示过程中,处理的情况是这样的:从图像获取阶段基本上都是并行处理,到视频压缩/解压缩的信息墒编解码阶段变成完全串行处理,然后再返回到显示器上像素的全并行处理。显然,需要一个既擅长串行处理又擅长并行处理的混合处理器架构

像MPEG-2这类视频编码标准处理的数据块为8x8,而更新的一些标准,像H.264和VC-1,则采用颗粒更细的4x4数据块。另一个例子是H.264的许多预测模式,这些模式利用某像素数据与相邻4x4数据块之间的关联性并引入相关性。靠近镜头和显示器两侧的处理趋势是追求更细的颗粒度。自适应算法被广泛采用,算法中滤波器的选择取决于周边像素值,等于又一次引入相关性。

精细的粒度意味着通信事件之间需要的计算量较小,这使得有效的通信机制至关重要。ARC公司VRaptor架构的SIMD引擎设计用于自动实现超细粒度,而VRaptor架构的工作信道为处理引擎中的同步和通信提供一个有效的手段。

除并行之外,还有另外一个轴,沿着这个轴能够使操作得到优化和加速。除了将应用分配到一系列处理引擎上,与此同时还可以将每个处理或数据转移单元配置到最适用于并行任务。VRaptor架构没有采用通常的方案,即一个处理器可以适用于所有任务的方案。而是采用了与通常不一样的方案:其处理架构由一组处理引擎和数据转移引擎组成,每个都只适用于特定的任务,故对其进行配置使其完成所适合的任务。这些引擎在一个数据流水线中一起工作。下面将继续描述VRaptor架构中每个处理引擎的具体功能,但要首先快速地看一下位于配置核心的配置工具??ARChitect。

ARChitect处理器配置

使用ARChitect时,设计师可以通过ARChitect工具的拖放式GUI来加入应用中所需要的功能,并去掉应用中不需要的功能。在ARChitect中有20000多个处理器内核配置选项,包括内核周边的功能选项,例如高速缓存的类型和容量、紧耦合的存储器、存储器管理单元、中断、DSP子系统、计时器和调试部件等;也包括核内部的功能选项,例如寄存器的类型和容量、地址宽度、系统接口、指令集选择和客户定制扩展。性能和芯片尺寸之间的折衷很容易实现,从而导致一个最佳方案。最终的结果是比固定架构的内核体积更小,功耗更低。在ARChitect中,设计师也可以为系统设计来选择、增加和配置所需的软件编解码,硬线加速器,以及DMA引擎。

在部件被选定并配置好后,轻轻一点就可以产生RTL,软件工具(仿真器,编译器,代码连接器等)以及EDA工具脚本。ARChitect一开始被设计用来配置ARC自己的IP,不过现在也被其他半导体生产商用来配置他们的IP。

点击看大图
图2:ARChitect 系统配置工具。

可配置的RISC处理器

ARChitect架构基于ARC700可配置处理器核系列。这些核比较节省硅片,性能好,并能定制和扩展以适合所需的特定应用。ARChitect架构有很多等级,从一个单ARC710D CPU到多个可配置的ARC750D CPU,每个CPU都带有多个多媒体处理器,多个加速器和多个I/O设备。

最小的配置小于0.5mm2,采用90nm工艺,存储器除外。每个处理器从一个ARC750 CPU架构的基本配置上扩展,确保与ARCompact ISA的指令级兼容性,并允许采用与支持其它ARC子系统和处理器相同的工具集,包括MetaWare,,Green Hills和GNU工具,所有这些工具都提供广泛的建模(profiling),调试和汇编支持。通过平衡往ARC700 CPU增加客户指令扩展的能力,ARC客户可以利用其深入的应用经验对VRaptor架构的部件进一步优化,并进一步实现其产品的差异化。

SIMD引擎

与ARC视频子系统类似,VRaptor架构利用一个单指令、工作在128位数据向量上的多路数据(SIMD)多媒体处理器来扩展ARC700 CPU系列。操作数来自一个专用的向量寄存器文件,可以组织成4个32位单元,8个16位单元或16个8位单元。SIMD处理器通常采用与ARC700 CPU相同的时钟频率,并具有两种工作方式:一个是只简单地扩展ARC700 CPU系列流水线的紧耦合方式;另一个是松耦合方式。在松耦合方式中,SIMD处理器与ARC700 CPU架构并行,并高效率地独立工作。

SIMD处理器利用跳转和分支指令实现了全控制能力。精细的并行决策机制利用预测执行提升了代码性能。利用一个进取型的正向数据网络提升了流水线效率,从而减少了关键路径和运算。SIMD指令集全正交,并具有从各个用于所有指令和额外的转移指令的标量寄存器广播数据的能力。先进的多媒体处理器功能允许ARC VRaptor架构的SIMD引擎通过从ARC700系列的CPU上卸载低级控制代码来释放ARC700系列处理器,使之用于系统管理和数据流管理。VRaptor架构允许用一个ARC700系列的控制处理器来控制多个多媒体处理器。

多媒体DMA处理器

VRaptor架构采用了一个多媒体增强型2D DMA控制器转移数据出入系统。它们独立地转移数据,从而释放了处理器,使得处理器能够专注于计算任务。ARC以视频为中心的DMA被优化来转移视频编码应用中常见的2D数据块。紧耦合的2D DMA引擎转移以非常高效率的方式设置和运行,通常只需一个单指令。由于视频数据转移以较小的突发数据串进行,这对降低开销来说非常重要。例如,H.264标准要求抓取许多4x4像素数据块,因为要按这个粒度进行运动补偿。多媒体DMA有许多通道以便允许参考帧输入数据块和被解码的像素数据块能并行设置和操作。处理器引擎也可以通过共享的宽带存储器来直接共享数据。DMA处理器被特别设计用于处理器和系统存储器之间的数据转移。

特定域扩展

VRaptor架构可以利用特定域加速器进行无缝扩展。典型地,这些扩展能够实现大数据块处理,以便在ARC700 CPU或SIMD处理器上运行,不过若以一个固定的硬件模块来实现这些处理块效率要高得多。VRaptor 架构包括多标准可变长度的解码器和编码器。由于数据的相关性,这些信息代码块不能并行,又由于大量的查找信息在一个小表里,所以符号的编码和解码按硬连接扩展的方式来实现将效率更高,不过为了满足多视频编码标准,编码和解码应保持足够的灵活性。

运动估计是另外一个领域,这里,绝对差运算的重复简单求和需要大量的数据重组和转移,并执行大量的数据。尽管在一个VRaptor架构SIMD引擎上能够高效率地实现这类的运动补偿算法,但仔细的设计探索和折衷证明了按硬连接扩展的方式来实现视频编码的运动估计具有明显的优势。在探索硬连接扩展的设计空间与全部可编程块的比较时,ARChitect自动地配置软件和编译工具,使得他们与所选的系统架构相匹配。这就使得系统设计师能够在不需要调整或改变手头上软件的条件下快速地对性能和实现结果进行测试。

工作通信信道

32位工作通信信道是处理引擎通信的工具。工作通信信道开销低,处理器间的通信延迟小,这些对于实现需要精细粒度通信的视频和音频应用来说都是至关重要的。处理器引擎之间的共享数据存储器允许进行本地的、高速的、以及宽带数据通信。正在申请专利的ARChitect多媒体架构中的工作通信信道技术是一套基于远程调用的工作信道协议。它提供多个VRaptor核、VRaptor加速器以及VRaptor I/O单元之间的点对点硬件链路、承载命令以及变元(arguments)。对于增强性能,信道被缓冲而输入进行排队。因此发送器和接收器在发送和接收信息时不需要“及时集中数据(rendezvous in time)”。工作通信信道能够使发送器明白无误地更新接收器中的寄存器。依赖于发送器能够直接写函数变量寄存器,然后再写送往程序计数器的远程函数入口点,这就允许非常高效的远程方法调用(即一个远程过程调用)。从接收器来看,该操作所用的时钟周期与本地调用一样多,故效率是非常高的。

点击看大图
图3:VRaptor 处理架构中的工作通信信道。

工作通信信道技术受到ARC可配置ISA中的指令扩展的直接支持,从而省去了信息解释开销。它提供一个统一的编程模型,从而精简了通常与多处理器架构相关的编程开销。

基于VRaptor架构的系统

目前有两个多媒体子系统,每个都包括绝大部分的VRaptor功能。ARC视频子系统是一个用于标清分辨率的多标准视频解码解决方案。它包括一个ARC700类处理器,一个为视频编码应用优化的SIMD处理器,一个2D DMA控制器,外加一个信息解码加速器。ARC语音先进子系统瞄准的是高保真的语音产品,例如汽车娱乐系统和高清光盘播放机。其配置与ARC视频子系统相类似:一个ARC700类处理器,一个为语音编码应用优化的SIMD处理器和一个DMA引擎。基于VRaptor其它子系统很快就会发布。

本文小结

ARC VRaptor多媒体架构正在用ARC的新一代多媒体子系统来实现。能够全部利用所有架构功能的初期产品已在今年初向全球的SoC设计师提供。基于VRaptor架构的系统具有可升级性,低功耗,节省大众市场产品所需硅片面积,同时保持了可编程性。具有工作通信信道的VRaptor的特殊混合方案,为ARC公司解决未来的从高保真到高清领域的音频、视频和图形应用打下了坚实的基础。

作者:Marco Jacobs

多媒体部欧亚区经理

marco.jacobs@arc.com

ARC International公司

系统分类: 消费电子  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(307) | 回复(0)

发表于 2008/11/4 16:56:16

0

关于投票

利用符合HomePlug的智能SoC构建模块实现主流功能的数字家庭应用

许多年来,消费电子领域里的许多人一直听说能将各种不同的音/视频娱乐设备、计算机、安全监控设备和其它设备互通互联的“数字家庭”即将来临。遗憾的是,这些预测常常是建立在家庭为了布设高速网络进行预布线和再装修的基础上,只有这样才能满足动态传送多媒体信息所要求的连接性。

很大程度上,这些限制将数字家庭局限在整个消费市场的一小部分,即能够负担数万美元的布线费用并使用高端音视频设备的少部分用户。然而对于像网页浏览冲浪或传输文件这类的非实时数据运算任务来说,无线技术被证明是非常有用的,但由于墙体和其它干扰造成的信号劣化的影响,无线技术始终无法稳定地提供所需的覆盖、可靠性以及实时动态音视频内容所需的带宽。

家庭设备间互操作性要求进一步提升的另一个原因是潮水般涌现的各种新型音视频应用。例如,数以百万计的iPod用户希望以一种无缝和舒适的方式在家中的任何地方欣赏音乐。而且越来越多基于互联网的视频(像YouTube和可下载的电视节目)应用、视频点播业务还有用户自创的视频内容都使得用户能够把数字视频方便地分布到家庭的各个地方变得日益重要。与通过那些中间物理媒质(像购买的CD音乐和租借/购买的DVD)携带的内容不一样,迅速增长的各类节目内容正以原始数字信息流入家庭。结果是,利用和欣赏这类数字内容的机会大大增加,当然条件是能够很容易地将这些内容分布到家庭中的各个地方。

实现真正的数字家庭连接

使真正的数字家庭功能成为主流的条件是能有一种可靠易用的技术连接各种消费类设备(既有低端也有高端),无需进行任何专门的布线,同时能够恒定地提供并维持支持实时和动态音视频内容所需的带宽、覆盖和可靠性。能够实现上述功能的技术目前已经以HomePlug标准的形式得到了验证,该标准可通过任何一个家庭都已存在的电源线网络来支持可靠的高带宽通信。

成立于2000年的HomePlug电源线联盟已经吸引了全球消费电子、通信和零售业的许多领先厂商来创建具有高度互操作性和极具鲁棒性的系列标准,最终目标是利用现有的住宅布线将数字信号分布到家庭的各个角落。由于许多设备已经采用了这种技术,且全球已经安装了数以百万计符合HomePlug的产品,故HomePlug已成为电源线通信的标准。

让音乐无处不在

虽然在家里处处能够欣赏音频通常指的是多房间音频系统(MRAS),也代表了最受追捧的家庭娱乐解决方案中的一种,不过这些功能对许多消费者而言是可望而不可及的。在金字塔的顶部是费用高达2万美元的整个房屋预布线或翻修,而在金字塔的底部是导致每个房间成音乐孤岛的低成本分立系统。现在,HomePlug技术将有助于数字家庭功能向金字塔的底部推进,从少数富有的家庭推向大量的低端主流用户,从而使得各类音视频设备能够方便地通过现有布线网络实现互联。

随着HomePlug 生态系统中各类产品的增加,能够容易地与其它符合HomePlug 的设备互联互通很快就会成为许多消费者购买时的一个关键考虑因素。为了充分利用好这波机会,设计生产消费电子产品的OEM厂商需要在提供嵌入式智能的同时,能够迅速和更加成本有效地集成HomePlug 技术和多种CE接口,以便支持他们的特定应用。

迈向成功的构建模块:SoC

开发这种数字家庭生态系统设备的关键因素将是完全SoC解决方案的可用性,以便提供集成各种目标应用的全部接口。例如,这种SoC除了提供电源线接口外,还要能处理以太网通信、控制网络协议栈、管理数据处理以及处理用户接口功能(见图1)。

图1:Arkados AI-1100系统级芯片(SoC)
图1:Arkados AI-1100系统级芯片(SoC)

通过省去大多数多器件板级方案所需的板级布线、装配要求和潜在的故障点,SoC在成本和可靠性方面还具有很大的优势。单芯片SoC架构还能消除与分立器件设计中每个芯片上必须实现的驱动电路有关的成本、功耗和时序问题。

最终,对于产品设计师来说,SoC提供了极大的好处:它提供了一个完整的嵌入式解决方案,具有软件支持和经验证的参考设计,从而使他们能够轻松集成符合HomePlug的通信功能,同时把主要精力集中在使其产品体现差异化的高级功能上。

相同智能的基本SoC方案可以与不同的参考设计和固件一起用来在扬声器、数字像框、监视器或音视频存储和分配中心之间实现符合HomePlug规范的通信。这不仅能够使用户快速且方便地实现将音视频分配到各房间的愿望,而且通过集成其它的数字音视频应用,例如安全监控、对讲和婴儿监控等,来为扩展和升级他们的HomePlug互联系统打下广泛的基础。

数字家庭梦想的实现

看一看下面的典型数字家庭的使用场景。用户一回到家,将其iPod插到带有HomePlug接口的充电座上,他们的音乐库就立即成为家庭体验环境的一部分。在经过卧室时,用户可以在有HomePlug连接的数字像框上调用iPod接口,并选择一个播放列表,然后就可以在房屋各处安放并有HomePlug连接的扬声器上播放音乐。随后,当他们晚饭后坐在客厅里想观看他们一早下载到iPod中所喜欢的电视节目中的一段最新情节时,只需要简单地在有HomePlug连接的平板电视上弹出菜单并直接从iPod读取视频流。在观看的过程中,如果有人按门铃,用户只需简单地切换电视屏幕菜单就可以观看安装在门前并带HomePlug连接的监控摄像机。不是以iPod为中心的用户怎么办?只需要用任何型号的MP-3、数字视频记录器(DVR)或者计算机系统(PC或苹果电脑)置入上述场景中即可,而所有的基本原理都保持不变。

实质上,数字家庭就是提供分布于家中各处的“源”与“目的”之间灵活的连接性,因此只需用户弹指的功夫,即可立即欣赏音视频内容,无论他们位于家里的什么地方(见图2)。

点击看大图
图2:Arkados 公司的技术可以用来实现家庭中音视频信号的源和目的之间的数字连接

总之,无论需要将音视频内容分配到家庭环境中什么地方,HomePlug技术能够提供最具成本效益的解决方案。对于OEM厂商、产品设计师、零售商和家庭设计师或业务提供商来说,提供符合HomePlug的智能电源线接口的SoC将成为通往成功之路的基本构建模块。

作者:Oleg Logvinov

Arkados公司

Email: oleg@arkados.com

系统分类: 消费电子  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(392) | 回复(0)

发表于 2008/11/4 16:25:10

0

关于投票

CMMB移动电视芯片SC6600V及其应用方案分析

中国移动数字多媒体广播(CMMB)是被中国广电总局颁布为行业标准的自主知识产权移动多媒体广播标准。展讯通信有限公司于2008年5月推出业界首款 CMMB 标准的手机电视单芯片解决方案 SC6600V。SC6600V不仅具有灵活的系统方案,而且基于展讯的手机基带芯片和移动多媒体芯片,可以开发支持中国自主知识产权标准的产品方案。

  

高性能、低功耗的移动电视芯片

目前,支持CMMB标准的芯片产品多是信道解调芯片,必须要外配信源解码处理器芯片来完成信源解码,从而才能真正实现手机电视功能。SC6600V是业界首颗集成了CMMB解调和H.264信源解码的高性能、低功耗芯片,它的集成度提高直接带来利益点就是功耗和成本的降低,丰富的外围接口以及灵活的功能选择给这款芯片增添了增值的空间,扩展了其应用领域。

图1 SC6600V芯片功能结构图。
图1 SC6600V芯片功能结构图。

SC6600V功能结构如图1所示。SC6600V从功能上划分主要包括一个高性能的微处理器、一个CMMB解调器,一个视音频解码器、一个电源管理单元,以及丰富的通用外围接口(包括外部的存储控制器和显示控制器等),每个功能模块都采用了模块化设计,模块化的设计使得整个芯片具有非常好的可靠性和灵活度。这款芯片的主要特点如下:

丰富的外围接口:SC6600V的输入信号支持是从Tuner接收下来的中频信号,也可以是经过CMMB信道解调之后的MFS流。因此,SC6600V除了可以支持中频输入信号之外,还可以支持外配主流CMMB解调器,提供了灵活的输入接口。在视频输出方面,支持解码后的视频YUV标准输出,并且可以直接输出到LCD显示屏进行显示。同时也支持旁路视频解码器而直接输出MFS流,这两种选择可依据应用方案的不同而定。音频输出支持I2S接口。此外,还有很多丰富的外围接口可为产品应用方案的扩展提供便利。

灵活的信道解调:信道解调模块完全支持CMMB标准的信号传输和复用规范,将中频信号解调为MFS流输出到其他模块。在标准频率范围内,实现了移动多媒体广播系统广播信道物理层各功能模块,完成了移动多媒体广播信道物理层传输信号的帧结构、信道编码、调制技术以及传输指示信息。可以实现支持多种信道编码和调制方式用以满足不同业务、不同传输环境对信号质量的不同要求。

多标准信源解码:信源解码模块支持H.264视频解码标准以及多种通行的音频解码标准(如MPEG1 audio layer 1/2, MP3, AAC LC和AAC + (LP)等),采样率最高可达到48KHz,解码速率最高可达320kbps,同时支持双声道。并且完全可以通过更新固件来实现对新增标准的支持。

 

全功能视频后处理:显示图像可以支持WQVGA、QVGA、CIF以及QCIF等,并且可以实现对解码视频进行缩放功能以适配不同的显示屏幕,这样就从硬件上支持了芯片对终端产品显示屏幕大小的自适应,扩展了产品应用的范围。支持三层逻辑层(背景层、图像层和视频层)。针对图像抖动和色彩纠正都采取了相应的技术手段。

稳定的电源管理: 芯片本身集成了电源管理单元,支持待机、开机等的电源管理功能,此外,本单元不仅可以支持片内的供电,还可以实现对片外芯片进行供电,从而在某些应用情况下可大幅降低系统功耗。芯片内核电压1.8V,I/O接口电压1.8~3.3V。高性能的主控CPU模块主要负责应用软件的运行,及芯片内部中断处理功能,而在芯片的调试方面则提供了完善的调试接口,如JTAG接口等。

软件平台稳定完善

为了缩短客户的设计时间,增强其产品开发能力,SC6600V提供一套完善的驱动程序和应用软件的通用接口,能够提供快速有效的客户软件设计。同时考虑了产品差异化设计的通用接口和优化空间。对于上层业务功能的拓展和软件的优化提供了灵活的平台基础。

底层软件灵活而稳定: 固件程序开发中考虑到了产品的可扩展性,如音频解码可以通过更新固件来完成对新标准的支持,还有传输层可以通过更新固件来更换或者增加条件接收(CA)模块等。模块驱动程序开发完善,从外围接口到信道解调,从视频解码到音频解码,从图形处理到各种信号输出模块,都具有稳定而完善的驱动程序,这将作为芯片软件库提供给用户。但是,由于底层软件的开发与客户差异化设计是透明的,因此底层软件不具备用户可开发性。

应用软件扩展性能强大:基于实时操作系统的应用软件采用标准化和模块化相结合的设计思想,使得新业务应用可以按照展讯公司的标准接口在不同的系统平台上进行扩展。包括ESG、Play/Record Engine的中间件都可以进行更新和再扩展,而针对手机电视、PMP和USB电视棒等不同的应用产品终端,SC6600V的软件平台都进行了完善和科学化的设计,可使客户产品迅速上市。

产品差异化设计空间大:虽然目前同类产品还没有充斥市场,但是展讯在进行SC6600V的软件设计上早已考虑到产品差异化问题。针对不同的用户可以提供具有差异化的应用平台,灵活的GUI设计、支持不同的CA。SC6600V产品将提供一整套的SDK给客户,从底层驱动/固件到适配层软件/API,再到中间件以及针对不同终端产品的应用软件。

  

应用方案灵活性强

SC6600V可支持两种系统平台集成方式:一种是配合外部主控设备的手持电视终端系统,如配合展讯的GSM/GPRS芯片系列和TD-SCDMA基带芯片系列的手机电视平台。这些外部的主控芯片设计可以与SC6600V进行通信。外部处理器只对SC6600V进行少量控制和处理响应。这样的设计将保证其与各种射频前端和后端的应用处理器的灵活整合。

另一种是无需外部主控设备的独立的手持电视终端系统,SC6600V支持独立的单芯片系统平台(无需外接处理器),作为单芯片系统平台,它主要应用于便携式移动多媒体终端,如PMP和电视棒等,此时,SC6600V主要是从外部E2PROM或者T-Flash卡进行系统启动。从SC6600V应用系统的范围上看,它主要应用于移动设备、个人媒体播放机和其他的便携式电子设计产品。

 

点击看大图
图3 PMP和USB电视棒方案

手机电视方案

SC6600V可以同展讯公司的数款基带芯片系列搭配成芯片组以设计出2G/3G的手机电视终端。由此可以实现CMMB+GSM和CMMB+TD-SCDMA方案。

PMP和USB电视棒方案

针对PMP和USB电视棒等便携式终端产品,SC6600V展示出了单芯片的优势方案,仅仅外部搭配高频头、存储器等很少的外围器件,就可以很方便的实现整机方案。

点击看大图
图2 手机电视方案

 

本文小结

目前,手机电视功能基本上只能在昂贵的智能手机上实现,而SC6600V 单芯片方案可以让手机制造商和运营商能把手机电视服务推向主流功能手机市场,并把费用控制在合理的区间内。凭借 SC6600V 芯片的研发成功,展讯将为业界提供全方位的手机电视终端解决方案,推动手机电视进入大众市场,从而满足手机电视业务的商用需求。

作者:朱胜利

 展讯通信(上海)有限公司


系统分类: 数字电视  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(543) | 回复(0)

发表于 2008/11/4 16:12:27

0

关于投票

评论:EDA功能验证的漫漫长路

集成电路IC)开发过程中,验证是非常昂贵的流程。而且也很难高效地完成验证。工业界目前广泛采用的是覆盖率驱动式验证(CDV),但这种方法也被认为是不完备的验证方法。

在执行验证环境时必须满足下列三个条件才能发现设计的缺陷,:

1. 缺陷必须被激活,例如包含缺陷的代码段必须被使用。

2. 缺陷必须传递到可观察的点,例如设计的输出。

3. 缺陷必须可探测,例如可检查的行为和表现为失效。

像代码覆盖和功能覆盖这样的技术可以保证设计代码被激活。然而,它们却无法保证缺陷的传递,以及缺陷可以被检查程序和/或断言语句检测出来。

验证环境必须运行贯穿整个设计的通路(从输入到检查程序),但这些临时的内部关系并不体现在代码覆盖率信息中。很可能代码只是被测试案例无意的副作用所覆盖。代码覆盖可以指明仿真时运行的代码,但无法告诉用户在这段代码中缺陷是否会传递到检查程序,并引起测试案例的失效。此外,代码覆盖并未表面输出行为是否被正确地检验了。

功能覆盖是覆盖率技术中的新生代,允许验证工程师指明他们想要运行什么样的设计行为。理论上,功能覆盖确实可能检测出一些临时的中间关系,但很可能某一功能覆盖点被当作副作用忽略了,导致无法执行相关功能的结果。在伪随机输入序列时,这种情况更有可能发生。设计中大量的可能路径、功能覆盖代码中可能的代码错误,以及其主观性,意味着进行完全的测试是不现实的。与代码覆盖类似,功能覆盖也无法表明行为检查是否充分。也无法知道实际上哪条从输出到检查程序的路径已经被验证了。

功能鉴定是基于功能级的失误仿真,是完全不同的方法,可以测量功能验证的完备程度。通过在设计中插入人工缺陷,功能鉴定测量了验证环境运行设计功能和将人工缺陷传递到检查程序,并引起失效的能力。无法探测的人工缺陷意味着存在验证盲区。如果人工缺陷无法被发现,那么就证明了该验证无法将实际的设计缺陷都找出来。功能鉴定是第一个可以直接测量验证环境、发现缺陷能力的技术。功能鉴定直接覆盖了现有的验证环境,并不是验证的分支,就像检查程序不是综合的分支一样。


验证就是对设计代码功能质量的测量。由于我们要依赖验证代码来告诉我们设计代码的质量,因此从基于仿真的验证伊始就存在这个问题,即无法测量验证代码质量。专业的验证工程师是质量控制的专家,对他们来说功能鉴定不啻是一场革命。这样他们就有了客观的反馈来改进验证流程,并且他们还可以控制验证代码的质量。

设计人员具有多种方法客观量度他们的工作,例如设计的面积、延时和功耗。而验证领域则缺乏客观、全面的方法进行衡量,因此还保持着“艺术”的特征。功能鉴定给验证工程师同样的客观量度方法,这样他们可以跟设计工程师一样进行判断了。验证工程师现在可以从艺术领域进入到科学领域,可以客观地演示他们的才能并改进验证。

电子设计自动化(EDA)研究人员对覆盖技术总是感到困惑。为了演示新技术的有效性,他们需要进行测量。由于覆盖方法已经被测量过了,验证技术的主要创新已经转移到如何自动生成覆盖设计的输入序列。但这并不是工业界真正需要的。EDA需要将潜在设计缺陷的探测进行自动化,保证缺陷可以传递,并且设计缺陷可以被检查出来。

EDA行业的典型循环是:在每一个制造节点,都有新的挑战出现;解决这些问题并且EDA研究就像前进去寻找未来节点的挑战。对衡量验证质量来说,覆盖并不是个好方法,但这个行业会继续向前发展,并假设这个问题已经解决了。大量的资源和努力都用于将EDA用户推向CDV方法。然而,还有一只大象在屋里——覆盖并无法充分测量!

功能鉴定可以提供对设计验证客观、完备的度量。这样各种选择和策略都会被间接测量,因此验证团队和工程师都要变得小心翼翼。对具有专业性的验证人员来说,这是一个喜讯:他们可以客观地展示他们有多么优秀。我们可以预见,由于具有客观的度量方法,更多的工程师会被吸引到验证领域。我们还可以预见到未来会有更多结构创新的EDA验证产品出现,它们可以将潜在缺陷的传递和检验自动化。这一行业需要认识到,对目前的功能鉴定来说,过去的覆盖方法并不充分。功能鉴定需要对衡量验证方法进行根本上的重新思考,并且意味着深刻的变革。

作者:Mark Hampton是Certess公司的CTO。

系统分类: 资源共享  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(338) | 回复(0)

发表于 2008/5/20 10:26:15

0

关于投票

如何在SoC设计中加入低开销、低功耗的音频处理功能

如果你打算设计一个包含数字音频的SoC系统,或者正在进行这样一个项目,那么花几分钟时间阅读本文可以帮助你在各种技术参数之间做出更好的平衡,避免设计方向出现偏差,提高流片的成功率,从而节省数周的开发时间。我们将为你逐一分析设计备选方案,评估中的关键因素以及由此做出的决策。

消费类音频产品的历史

消费类音频产品的历史最早可以追溯到130年前,在开始的100年间,音频回放只能采用模拟技术。那时采用数字技术的产品体积庞大,价格昂贵,对于消费类产品来说也过于复杂。直到1982年,CD光盘和CD播放器的出现彻底改变了这种局面,黑胶唱片设备似乎一夜之间就消失了。

与此同时,个人电脑的迅速普及使消费类音频产品与数字技术紧密结合在一起。基于磁盘和闪存的MP3(如iPOD)等数字音乐播放器已经取代了磁带设备。今后音频产品的发展方向是什么呢?那就是更加真实的还原声音。声音还原技术一直在不断的发展完善,从早期的单声道到立体声,再到用多个扬声器营造的3D环绕音效。短短几年间,家庭影院系统已经从5.1声道进化为10.1声道。每次技术的飞跃都伴随着更多声道,更高的采样位数,以及更强的处理能力。

日趋复杂的音频编解码格式对性能的需求不断增长,要求处理器的主频也不断提高。然而,提高主频会给设计带来一系列的问题,更高的主频意味着更高的功耗,更多的发热量,需要容量更大的电池,为了散热而增加的风扇也会增加产品成本,并会带来令人讨厌的噪音。SoC设计过程中,更高的处理器主频同时会使时序收敛变得更困难。所有这些问题都应该引起设计者的注意。

迄今为止,销量最大的数字音频播放器是移动电话。除了拨打电话的功能,现在的移动电话实际上都是小型的多媒体终端,既可以播放音视频内容,又能运行包含了复杂音效的游戏,这些功能要求移动电话具有强劲的音频处理能力,同时功耗又要尽可能的低,因为消费者总是希望他们购买的手机有足够长的待机时间,同时希望MP3播放器在提供优秀音质的同时也能长时间播放。

伴随着音频的数字化,视频也已经完成了数字化。如今大多数的视频播放设备都兼容多种音频标准。在汽车音响领域,数字化也在如火如荼的进行中。多年以前,CD被作为标准装备装入汽车,近年来,随着高保真卫星广播的普及,数字收音机也进入了汽车电子领域。在GPS导航设备中,需要文本到语音的转换,某些GPS设备还兼具个人媒体播放器的功能。

音频编解码

编解码格式是所有数字音频应用中的核心元素,它定义了模拟音频信号如何数字化并被压缩成比特流,以及比特流如何被解压并还原为模拟音频信号。

在消费类产品领域最流行的压缩算法是MP3格式,它于1991年同MPEG-1视频标准一起推出,90年代中期,诞生了第一台MP3播放器。随后,厂商们不停在推广其他可以提供更高保真度和更低比特率的算法格式,但MP3仍然在音频标准中占有重要地位,当前几乎所有的消费类产品都支持MP3格式。

大多数的音频编解码算法都采用有损压缩来降低所需的比特率。有损压缩可以减小数据交换和存储的带宽需求,从而降低成本,这也是厂商们采用有损压缩的原因。然而,有损压缩也会降低音频的质量,质量下降的程度与压缩算法有关。只要有足够强大的处理能力,就可以将声音损失控制在人耳无法分辨的水平,因此压缩算法研究人员依然在不断改进他们的算法。不同的应用需要根据自身特点在音频质量和带宽需求之间作出平衡,造成了多种数字音频编解码格式并存的局面。

当你开始考虑如何实现一种音频编解码算法时,你实际上有4种备选方案

1. 在通用处理器上依靠软件实现音频编解码。例如在PC上运行的MP3播放器程序。

2. 利用专用的硬件实现音频编解码,早期的便携MP3播放器采用这种方案。

3. 在DSP处理器上依靠软件实现音频编解码。

4. 在基于通用处理器进行扩展的音频专用处理器上用软件实现音频编解码。

方案1,用一个通用处理器来实现所有系统功能,包括用户界面,I/O和数字音频编解码。这个方案有以下几个优点。首先,音频编解码只是通用处理器上运行的一段软件程序,唯一的硬件开销也许只是增加少量的指令内存。其次,由于采用了软件实现编解码,可以实现多种编解码算法。最后,当出现新的编解码算法时,只需要升级软件就可以支持。

这种方案也的缺点也很明显。数字音频对于暂时失灵很敏感,因为人耳可以捕捉到非常细小的错误。在这一点上音频应用比视频应用的要求更苛刻。在视频应用中,一个错误的像素往往不会被注意到,而音频应用中则不然。采用通用处理器来进行音频编解码,由于处理器还会执行其他的任务,其带宽并非音频专用,这样增加了音频编解码暂时失灵的概率。

除此以外,大多数的通用处理器没有音频专用指令,不能高效的执行音频编解码程序,从而不得不提高处理器的主频,在单位时间里执行更多的指令来达到性能要求。

硬件实现编解码

方案2,采用一颗性能相对较低的处理器搭配专门的音频处理硬件,所有的音频处理任务都由专用硬件来完成。通常,这块硬件作为外设挂在系统总线上。音频采样由处理器通过总线送给编解码硬件,或者由编解码硬件通过DMA直接从内存中读取。在这种方案中系统总线也是共享的。

使用专用编解码硬件的优点在于针对某种特定的编解码格式,它的面积和功耗与其他方案比较是最优的。因此90年代中期的MP3播放器都采用这种方案。它的缺点是每种编解码格式都要增加硬件模块来支持。如图1的设计中,为了支持3种编解码格式,就必须在设计中增加3块硬件逻辑。因此,在需要多格式音频的设计中,这种方案就不再具有优势,而几乎当前所有的SoC设计都需要支持多格式音频编解码。其次,如果编解码算法进行了升级或者出现了bug,为了修复问题,整个SOC芯片就必须重新流片,而不可能通过软件升级来修正错误。此外,实现新的编解码算法时,必须要设计新的硬件模块,将它集成到系统设计中,并重新流片。

图1
图1:在使用专用编解码硬件的方案中,每种编解码格式都需增加硬件模块来支持。

方案3,在通用DSP处理器上通过软件来实现音频编解码,系统中同时包括一颗用来作控制的主处理器(这里的通用DSP处理器是指没有专门针对音频处理做过优化的DSP处理器)。采用DSP处理器的方案有很多优点。首先,DSP处理器中都有硬件乘法器,可以极大提高音频编解码程序的执行效率。其次,因为采用软件方式实现,只增加少量的存储器开销就可以支持多格式音频编解码。实现新的编解码算法也仅仅需要编写新的软件,不必重新流片,从而延长产品的生命周期。

采用DSP的方案也有缺点。大多数DSP的C编译器效率都比较低,所以一般不用DSP来做控制。系统的控制需要通用处理器来完成。而且,16或32位的DSP处理器对音频处理来说并不是最理想的。虽然当前大多数编解码算法采用16位采样,但在运算的中间过程中为了避免舍入错误,需要留有一定余量。所以16位DSP处理器在实现复杂音频算法时会带来问题。使用双精度整数计算可以避免问题,但效率又不够高导致需要更高的处理器主频。反过来,32位DSP处理器又不能被充分利用。实际上,对于音频算法而言,24位DSP处理器是最适合的。

音频专用RISC处理器

基于上述考虑,我们提出了第4种方案,即采用音频专用处理器。基于通用处理器进行音频处理的扩展,使处理器在高效执行音频编解码程序的同时,保持C编译器的效率。图2所示就是一个采用音频专用处理器进行编解码的系统。

图2
图2:采用音频专用处理器进行编解码的系统。

这种设计方案有很多优点。首先,音频专用扩展使处理器更加高效的执行音频算法,在较低的主频下提供算法所需的性能,从而显著降低系统功耗。与基于DSP的方案一样,此方案便于实现多格式的音频编解码,也可以通过升级软件来支持新的编解码算法。它的不足之处在于大家对于音频专用处理器的概念还很陌生,下面我们就来介绍一下音频专用处理器。

Tensilica Hi-Fi2音频处理引擎是基于32位Tensilica Xtensa RISC处理器经过配置和扩展得到的,它可以非常高效的完成音频处理任务。顾名思义,Hi-Fi2音频处理引擎是Tensilica第二代音频处理器。Hi-Fi2音频处理引擎中最关键的扩展就是增加了两个24位的硬件乘法器,它们可以大大提高音频计算的速度。

然而,乘法器本身并不会减少执行音频算法需要的周期数,周期数减少是因为Hi-Fi2音频处理引擎每个周期可以执行1到2条指令。48位或56位宽的寄存器可以存放2个24位的采样值。利用这些寄存器文件可以高效的处理立体声音频数据。Tensilica总共在Xtensa RISC处理器上添加了300条音频专用指令,创建了一个灵活高效的音频算法处理引擎。

一套优秀的音频SOC解决方案不仅限于高性能的硬件,还需要有编解码软件,而由于时间的原因,你可能并不打算自己编写程序。虽然从互联网上可以找到一些音频处理程序,但是这些程序并没有经过优化,执行起来效率不高。其次,像Dolby音频编解码这样需要授权的程序是很难在互联网上找到的。目前流行的音频编解码算法都已经移植到了Tensilica的Hi-Fi2音频处理引擎上,而且支持的格式还在不断增加,如图3所示,所有这些编解码程序都是用C语言编写的。处理器的RISC基本指令和音频扩展指令都允许程序员继续用C语言来编程,在保证性能的前提下,提高了软件的可维护性。

点击看大图
图3:目前流行的音频编解码算法都已经移植到了Tensilica的Hi-Fi2音频处理引擎上。

Hi-Fi2音频处理引擎是采用Tensilica可配置技术,针对Xtensa LX2处理器的一套扩展指令。Tensilica利用这些扩展指令,配置出了Diamond 330Hi-Fi音频处理器,因此在330Hi-Fi处理器上可以运行所有基于Hi-Fi2音频处理引擎的编解码程序。Tensilica的Hi-Fi音频处理引擎应用于多项产品,在不同的工艺下得到了验证,出货量已经达到千万。当前的最主要的应用还在移动电话领域,今后产品的应用将会扩展到视频产品,消费类广播,超便携PC等领域。

作者:Steven Leibson

技术顾问

Tensilica公司


系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(363) | 回复(0)

发表于 2007/12/25 20:25:07

1

关于投票

多核SoC的嵌入式软件开发

典型的多核系统将应用代码分成两个主要部分:控制与用户接口代码、不间断处理代码。控制用户接口部分运行在ARM微处理器上,不间断处理代码运行在DSP上或者第二个ARM内核上。这种多核解决方案有很多好处,但它的主要弊端是增加了交互软件设计与调试应用程序的复杂性。这两篇连载文章(第2部分将发表在2006年12月刊)将详细讨论开发、调试多处理器系统时将遇到的一系列复杂问题及其系统级解决方法。 (斜体)

与几年前相比,生产嵌入式应用产品的OEM感受到了越来越大的市场压力。产品的新功能和新特性、业界新标准、市场供求、用户对低功耗甚至零功耗的不断追求,以及产品成本等愈来愈多的因素都会对典型嵌入式设计产生影响。这使得目前市场上的各种应用产品,从纯粹的消费电子(如蜂窝电话、MP3播放器、数码相机)到基础设备(如磁盘驱动器、路由器、视频卡)和平台设施(如基站,电话系统,WAN交换机等),都产生了变化。这些变化促使研发人员开发更加完善和复杂的软件,并在高端产品上使用大量的FPGA。这些变化同时也将设计者推向了ASIC/SOC与非传统硬件模型——多核设计。

多核系统的特点和优缺点

ASIC/SOC具有较高的集成度,适合低功耗的特殊应用,但多数注重成本的的设计都会包含更多的功能特性与可编程的元素。这与行业标准与协议的不停改变密不可分。无论是GSM电话、MP3、DivX/Mpeg4、 DSL/Cable调制解调器,还是无线局域网或者其它任何产品标准,其协议都以非常快的速度变化着,但顾客并不希望频繁升级硬件。从生产成本(工具、流水线的建立等)角度来考虑,对单一产品平台重复使用是非常必要的,这意味系统对软件的要求更高了,因此也需要更多的软硬件协作。

软硬件交互过程势必使系统集成时间延长,并产生大量的、只能针对特定硬件使用的软件,因此大量的可编程微处理器被加入到系统中。虽然只要处理器的速度足够快,软硬件交互引起的性能下降问题都可以迎刃而解,但是无论从成本还是功耗来看,提高处理器的主频换取性能都是一种非常“不经济”的解决方案。

典型的多核系统将应用代码分成两个主要部分
图1:典型的多核系统将应用代码分成两个主要部分:控制与用户接口代码、不间断处理代码。控制用户接口部分运行在ARM微处理器上,不间断处理代码运行在DSP上。

一个典型的例子就是利用DSP处理连续数据的应用。开发者完全可以利用一个低端DSP芯片来处理标准的媒体流协议,相对于由高端处理器组成的系统,这种方法的功耗损失非常小,而且可降低系统成本。DSP的特定指令集与专用存储器、总线结构使其能够完成较复杂的数字处理算法,但是这些特性往往不支持高级语言,因此基于DSP的很多应用必须采用汇编语言来编码。由于不同DSP的汇编指令与编程模型不同,所以DSP之间的代码移植非常困难。这已成为应用开发的瓶颈。为解决这个瓶颈,一种方案是根据功能将应用代码分为两部分:必须由DSP执行的代码和可以被其它处理器执行的代码,DSP只需要处理前者即可,这样就出现了多核(多处理器)设计。

典型的多核系统将应用代码分成两个主要部分:控制与用户接口代码、不间断处理代码。控制用户接口部分运行在ARM微处理器上,不间断处理代码运行在DSP上(图1)或者第二个ARM内核上(如图2。由于以下一些原因,这种模型非常有意义。

(1)开发者可以使用高级语言,如C/C++或者Java对微处理器进行编程。基于DSP的很多应用都必须使用汇编语言来编码,而很多其它处理器,如ARM则没有这些限制。

(2)在微处理器上可以运行RTOS或者OS,更加充分的利用微处理器的优势(合理的中断响应时间,大量的存储资源,虚拟的或者被保护的存储器,简单的上下文切换操作等等)。

(3)DSP对不间断处理的代码有很好的支持。如果控制用户接口代码与不间断工作的代码都由同一个处理器来执行的话,频繁的中断(连续的切换)会导致系统功耗非常大。而且,DSP往往有很多特殊功能,可以加速数据移动与处理操作(DMA,双端口存储器,针对滤波处理的MACs,针对FFT与编码的位操作,索引查找表,针对内部/外部器件访问的分离总线结构,等等)。

(4)两个不同的内核可以分别独立运行。这意味着当不需要执行任何操作时,微处理器可以进入休眠状态(唤醒微处理器的方式可以是:定时器、刷新LCD的按键、电池电量检查,等等)。当对数据流没有操作时,DSP同样可以进入休眠状态。由于微处理器与DSP都可以进入休眠状态,所以系统的功耗被大大的降低了。而且,不同的内核可以分别运行在不同的主频下,只要能够满足主频的要求,设计者完全可以使用更低功耗更低成本的芯片。

(5)两种处理器可以使用不同的总线模型。

(6)两种处理器芯片可以通过共享的片外存储器、中断、邮箱、串口、FIFO,或者其它连接方式进行通信,并且所有通信机制不但支持松耦合,而且支持紧耦合同步。

但是,多核解决方案的主要弊端是增加了交互软件设计与调试应用程序的复杂性。

多核系统的不间断处理代码还可以运行在第二个ARM内核上
图2:多核系统的不间断处理代码还可以运行在第二个ARM内核上,如ARM公司的MPCore。

多核系统的设计方案

系统设计之初,设计人员必须对如何满足系统所有需要有一个总体的规划,如果可能,设计人员还应该预留一部分系统资源以备将来功能的扩展。

(1)硬件总体设计硬件总体设计是指对系统基本器件的选择与配置,如,主要处理器的类型、主要通信配置、如何使用、用户接口的选择,等等。

(2)软件总体设计在大多数嵌入式应用中,软件设计在很大程度上依赖于系统的硬件配置。部分软件模块与系统软件联系并不紧密,程序员可以将其模块化;此外还有很多软件与底层硬件直接联系,很难模块化。目前通常的做法是将尽可能多的与硬件相关的软件模块隔离成为HAL(硬件提取层)的形式进行处理。既然处理器的速度足够快,存储器相对便宜,那么HAL的使用是完全可行的。在设计中,使用RTOS或者其它标准软件非常重要。

(3)开发工具与资源这方面的具体内容包括JTAG访问、交叉触发、逻辑分析仪或者实时跟踪,以及明确反映芯片内部状态的输出管脚等等。使用支持多核调试的调试器与仿真器,如:RealView Debugger 与 RealView ICE,系统的调试过程会变得非常简单。利用RealView Debugger,开发人员可以同时对两个处理器进行调试。此外,RealView Debugger带有同步功能,可以使两个处理器内核同时启动或者停止。

处理器的选型

处理器的选型受多种因素的影响。对多核系统,尤其是ARM+DSP系统(虽然DSP可以由支持或者不支持DSP功能的微处理器、微控制器来代替),进行处理器选型时主要考虑以下几点:

1. 处理外部事件需要的响应时间。

2. 致力于实时算法的应用代码数量。例如,将MP3播放器与无线电话中的音频处理功能模块相比较,前者的功耗远远小于后者。其原因是MP3播放器仅仅需要解码音频流,产生相应的正确信号,并发送到模拟输出单元即可,而无线电话必须处理与MP3播放器相比低得多的外部比特率,这迫使处理器必须完成更多工作来实现压缩/解压缩、编码/解码、并应用滤波/声音合成,以最终达到合乎要求的音质。此外,无线电话中的音频处理很可能需要进行协议的转换。当然,硬件方面的支持可以代替处理器的一部分工作。MP3播放器不是一个实时系统,它可以使用简单的预取缓存来减少响应时间。而无线电话必须在相对较短的时间窗口(或者音质下降不甚明显时)内对信号进行处理。

3. 相比较于软件处理,采用硬件可以达到更好效果的应用模块的数量。当标准变化比较快时,修改软件是一种比较安全的做法,这样可以避免改动新产品的物理设计。但当标准相对比较稳定时,采用最合适的硬件可以使成本降到最低,并且能在相同功耗或价格的基础上使系统达到最高性能。

4. 对算法要求较高的应用的数量。DSP的独特设计使其有以下三点特殊功能:能够高效地处理迭代算法,特别是乘加运算(MAC);能够迅速地传输数据(接收外设输入,并在处理循环之后将数据返还到外设输出);能够与外设紧密交互。

5. 市场对价格与功耗的灵敏度。

针对这些需求,ARM处理器的功能越来越强多,其应用也越来越广。例如新一带ARM内核提供了对DSP扩展指令的支持(如ARM9E)。部分ARM芯片可以被用作微控制器,拥有微控制器的一系列特性,例如紧密耦合的片上外设、增强的位访问与控制、大容量片内存储器,片内Flash、多种片内外设、等待态控制和向量中断等。ARM处理器还开始支持真正的可变时钟频率。

在具体芯片设计完成之前,用于原型平台的开发板可以帮助开发人员对多核系统进行验证。通常,这些板大多使用特定的总线结构进行连接,使用FPGA仿真部分外设,存储器以及部分总线模型。Integrator是ARM的提供的原型验证平台,它提供对多核系统的支持。

更进一步,很多设计中当硬件平台还没就绪时,只能通过仿真来开发软硬件模型和应用算法。对于多核系统来说,仿真的方法并不是很多。ARM公司的SoC Designer工具可以将ARMulator仿真与特定的DSP仿真进行绑定。类似于SoC Designer的产品同样也支持使用C语言编写的硬件模型进行联合仿真。同时,某些仿真甚至可以直接在仿真中加入纯粹的行为元素。很多仿真的速度非常快,几乎与真正芯片的速度相同(因为PC机的主频非常高)。通过仿真,开发人员可以得到系统硬件的许多内部状态信息,以实现更好的设计。

作者:Paul Kimelman,ARM公司

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(677) | 回复(0)

发表于 2007/12/25 20:04:25

1

关于投票

系统级芯片工具箱助力实现完美设计方法

现在的系统设计主要依赖两个步骤:能够充分选择和分析可用构建模块,然后加入到“专门配料”中,让产品与众不同。你知道的可以信任的可用构建模块越多,完善“配料风味”所需的时间就越多。

为了帮助设计师,这里列出了一些有助于IP选择的最新IP产品和工具,还有一些建议。且让我们首先从SoC“配方”最重要的阶段开始:可用的组件。

最新的SoC IP组件

总是有那么多新的让人激动的IP组件可供讨论。如果你是Google老手,能从中搜索到可以帮助准备这一有7道菜的SoC大餐的大部分预构建IP模块。今年推出的IP模块也有不少非常引人注目。

Faraday公司的超宽带(UWB)媒体存取控制器(MAC)IP解决方案具有高传输率和低引脚数目。把Faraday的UWB MAC IP集成到你的SoC设计中,有可能获得超过200Mbps的吞吐量—是目前大多数ASSP(专用标准产品)的两倍。

利用外设组件接口(PCI)可获得更高速度,但所需引脚数目也许比复杂SoC设计上的要多。Faraday的解决方案整合了一个业界标准MAC-PHY接口(MPI),用于SoC和外部UWB物理层(PHY) IC之间的通信。预了解更多关于UWB的信息,请参见www.electronicdesign.com, ED Online 12045 上“The Year Of Ultra-Wideband”一文。

如果你需要高密度逻辑、非易失性存储器解决方案IP,不妨考虑Kilopass Technology公司的外加永久存储器(XPM)。它采用90纳米标准(XPM90G)和低功率(XPM-90LP) CMOS工艺技术实现。

这种XPM产品可专门针对数字内容保护和数字版权管理方案或其它需要密钥的应用提供现场可编程存储器解决方案。其它应用包括固件和校准参数、硬件配置,以及启动代码存储。

需要PCI Express Gen 2控制器IP模块吗?GDA Technologies公司的GPEX-2 IP专门针对延时、链路利用率、功耗和可靠性进行了优化。此外,它的占位面积很小。目标应用主要瞄准带有终端(end-point)、根联合体(root complex)、交换机和桥接设备的网络和电信领域。

GPEX-2可提供一种灵活、可升级的易于定制的架构。它支持32位、64位、128位数据宽度,可被配置为每条链路1、2、4、8、16个通道。它与应用逻辑、PHY设计及目标技术无关。而且,这种经验证过的解决方案符合PCI SIG标准,将让你能迅速上手并运行起来。

若你在为音频应用寻找(比如脉冲宽度调制控制器、异步采样率转换器,或数模转换器)基于标准CMOS的IP实现方案,Anagram Technologies公司是一个很好的选择。该公司最近推出了一个利用它称之为数字纯逻辑SoC IP构建的产品系列。

该系列基于数字过滤和delta-sigma技术,适合于低功率应用和那些要求高度集成化及模拟信号精确重建的应用。这一系列的产品完全兼容CMOS,故自动布局布线软件能够完全控制任何数字纯逻辑IP模块的版图。

这种控制提供了一些传统优势,比如把数字噪声耦合最小化的,而且没有获得良好线性度所需的其它实现方案中常出现的典型器件匹配问题。目标应用包括小型、低成本、低功率、高保真度多媒体、汽车,及消费类产品。

至于有关安全的IP,参见ED Online 15387“Has Anyone Seen My Data?”一文。要了解把FPGA设计转变为ASIC的基本原理,参见ED Online 16143 “Avoid The Bird Flu With Proper FPGA Migration”一文。

测试“配方”

如果你的设计很复杂,比如包含多个内核和复杂的IP模块、若干总线,及多个时钟,则你可能希望能够透过一个窗口来查看设计,监控实时调试和性能优化。

但实时调试和性能调节需要对芯片内部进行访问,而芯片这时往往处于系统的某个典型负载之下。更糟糕的是,必须把跟踪数据(trace data)过滤到便于管理的相应数量。

不过不必悲观,隧道尽头自有光明,这得益于英飞凌(通过IPextreme获得)的被称为多内核调试解决方案(MultiCore Debug Solution,MCDS)的IP。MCDS让你能够对选定内核和芯片内部的总线及其它信号执行周期精确的跟踪,且完全是非入侵式的、实时的,并在典型的“实际”负载下。

MCDS支持无限多的调试目标,包括处理器内核、IP模块、信号总线,或任何信号集。一旦集成到你的SoC中,MCDS会选择并存储指定模块的跟踪数据,然后把数据转给软件用于调试和分析(图1)。

在观察阶段,特定源(比如指令指针、地址和数据总线、工艺ID等等)的目标跟踪信息被收集,用于对目标对象的分析和调试。但由于你可能只需要收集某些条件下的数据,当数据在指定触发器条件下被收集时,你可以通过和逻辑分析仪差不多相同的方法来予以控制。

这些跟踪数据作为压缩消息被存储在存储器中,并可通过JTAG等普通接口存取。该实现方案的好处在于它的简单性,因为不需要增加任何引脚来支持这种功能性。

在实验环境无法复制的条件下进行实时调试的能力是非常宝贵的,尤其是在不可能连接探针,或这么做很容易影响结果的情况下。这种设置还减轻了重建这么一个环境的负担。

如果我有一把锤子

IP行业一直都在致力于开发一些有用的辅助工具,以期创建出色的SoC产品。例如,Chip Estimate公司推出一站式采购网站,专门用来帮助你找到适合自己需要的IP和工具,帮助你规划自己的SoC。网站访客可以过滤搜索IP,按类型浏览可用IP,还可以每次发现一个感兴趣的模块时,就标注为喜欢的IP。

此外,Chip Estimate公司的InCyte工具也能够帮助你规划SOC设计,并尝试不同的假设环境(图2)。该工具让你和你的团队能对采用IP模块及制造数据的性能和成本进行评估。通过对处理器、功率和技术节点的权衡,在设计阶段早期,你就可以站在一个更好的角度来针对自己的SoC作出明智的决策。

InCyte采用了高级别的设计规范作为输入,包括门电路数目、目标性能、外部总线连接信息、目标IP模块,以及系统的存储器配置。在快速分析之后,它会给出一份报告,其中包含有关裸片面积、性能、功率、泄漏、良率、目标封装和生产成本的高度精确的评估结果。

“新的芯片规划技术可在常规IC设计流程开始之前就给出IP、工艺技术和架构决策等方面的相关信息。这些工具可以精确预测裸片尺寸、功率、泄漏、性能和封装芯片成本,从而把稍后被迫取消项目、浪费本来就缺乏的设计师资源、错失目标市场商机等等风险降至最低,”Chip Estimate营销副总裁 Casey Jones表示。

“把实现系统的设计数据反馈回芯片规划的新方法可以提高整个传统EDA设计流程的速度,增强精确成本意识,”Jones补充道。欲了解更多信息,请参见www.electronicdesign.com, Drill Deeper 16432“Cost Aware Design Methodology”一文。

无晶圆厂半导体协会的硬IP质量风险评估(Hard IP Quality Risk Assessment)工具让IP供应商、SoC设计商、独立的器件制造商以及半导体晶圆代工商能够彼此更高效地进行交流。这种宏驱动电子数据表工具还能够提供在从预购到授权设计与制造的每个阶段购买和集成目标IP所需的信息,从而节省大量时间。

有了这种工具,你可以对不同供应商提供的同类IP模块进行比较,最终了解“隐藏的”授权成本。而一旦了解了所有的授权成本,你就能够更好地做出明智的决策,选择出最适合你的应用需求的IP模块。

该工具的输出是一个风险评估曲线图,旨在让SoC设计人员理解IP供应商的设计方法。它还可根据不同的标准(比如设计、集成、验证、目标工艺技术、文档、可靠性和测试等)评估采用IP的风险。

此外,据Chip Estimate总裁Adam Traidman表示,无厂半导体协会和Chip Estimate正在密切合作,以期为设计人员提供大量易于获得的IP数据,包括质量信息,以让他们能够在设计采用的IP方面做出最佳决策。

一些小技巧建议

一些重要的白皮书论述了新的SoC设计方法,它们对IP的选择很有帮助。

东芝的“Power-Saving Clock-Gating Technique is an Inseparable Part of SoC Design”一文讨论了如何利用时钟门控设计来实现低功率并提高时序性能。此外,该文还给出了一些颇有价值的时钟门控技术指南,并指出了应该避免的错误。

东芝的另一篇文章“Impact of Multiple-Voltage Domain (MultiVDD) Design Implementation on Large”,介绍了MultiVDD设计的低功率优点,这种方案在实现低功率设计的同时提供了所需的性能和功能性。但需谨慎,这类设计需要大量的规划和预先分析,尤其是在SoC架构方面。

至于在IP协商期间常常遇到的识别问题方面的信息,请参见无晶圆厂半导体协会的“The Current State Of Semiconductor Intellectual Property (SIP) Licensing”一文。

Silistix 公司的David Lautzenheiser撰写的“Self-timed Interconnect Enables True IP Reuse”一文讨论了简化和加速IP复用过程的方法。该文还谈到了IP核之间的数据流,以及如何用自定时逻辑取代全球的基于时钟的总线系统,以改进核内通信,提高IP复用能力。

Cologne Chip 公司Michael Gude 和 Gerriet Mueller 发表的“Fully Digital Implemented Phase Locked Loop”一文介绍了一种设计锁相环的方法。该方法只采用了数字单元库,可克服把传统模拟技术集成到日益缩小的CMOS工艺技术中的典型问题。该文还提供了有关利用纯数字仿真器验证功能性的信息。

作者:Daniel Harris

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(432) | 回复(0)

发表于 2007/12/25 20:00:31

1

关于投票

普通IC设计师现在也能做出一流的低功耗SoC设计

随着Cadence设计系统公司宣布推出业界第一套集逻辑设计、验证和实现于一体的完整的低功耗SoC解决方案Cadence Low-Power Solution,为SoC设计工程师提供从逻辑设计到GDS-II输出的完整设计流程。它的出现意味着低功耗SoC设计已不再是业界一流半导体供应商的专利,借助这套工具,现在普通的IC设计工程师也可以轻松地完成90纳米以下先进CMOS工艺节点的低功耗SoC设计。因此它对于中国新创的IC设计公司来说具有非同寻常的意义,因为它们普遍将SoC视为赶超海外半导体供应商的一种机遇,而这套工具首次意味着它们将能够开发出与业界一流半导体供应商同样出色的先进低功耗SoC产品。Cadence Low-Power Solution对业界一流的半导体供应商(如TI和Broadcom)来说同样意义重大,Cadence全球副总裁兼产品和技术首席战略官徐季平博士在接受《电子系统设计》采访时表示:“这套工具可使它们的生产率提高3到5倍。”

Cadence Low-Power Solution第一个将Si2 Common Power Format(CPF,通用功耗格式)规范与Cadence的Encounter和Incisive技术集成在一起。CPF是可在设计初期详细定义功耗架构的标准化格式,它提供了一个标准的词典,从设计到验证和实现均可标识,从而保证了整个流程的一致性。CPF使得IC设计工程师第一次可在整个设计流程中保存和使用统一的低功耗设计信息,从而第一个为广大IC设计工程师提供了一个以统一的设计视角对一个低功耗SoC设计进行验证、综合和物理实现的完整解决方案。它有效避免了费力的人工操作,大大降低了与功耗相关的芯片故障,并在设计过程初期就可提供功耗的可预测性。

随着消费者要求下一代多功能多媒体电子设备能够具备更长的工作时间,以及商用化电池技术尚看不到明显的进步迹象,因此OEM只好采用电源管理技术和更低功耗器件来满足这一需求,而这促使低功耗设计技术逐步成为主流。例如,便携应用设备需要较长的电池使用时间,这就使得合适的功耗节约成为必然。高度集成、高性能的90纳米以下芯片对热量管理提出了挑战,而这就要求整个芯片的功率优化。而大型终端产品应用如服务器群组的所有层面都需要功率优化,以降低整体能量消耗。此外,与封装相关的成本考虑也推动着设计师采用低功耗设计。

为了满足这些不同的需求,设计师正越来越多地采用高级低功耗设计方式,例如电源关断(PSO)、多供应电压(MSV)以及状态保留功率闸(SRPG)。然而这些技术的EDA支持是支离破碎的,不同的工具需要不同的方式来表示低功耗意图。结果,设计师不得不通过一系列的特殊手段定义低功耗功能,例如在同一个设计中多次人工地输入功耗数据。这个过程不仅枯燥而且很容易出错,更重要的是,它使得设计的可预测性和验证变得极其困难。

目前的设计逻辑是

徐季平博士指出:“目前的设计可以说对逻辑是‘相连的’,因为所有流程都处理逻辑信息,可以自动完成。但对功耗来说是‘不相连’的,因为针对每个流程,功耗问题都是独立的,并相互影响。而且最重要的是还不能自动完成功耗设计,许多地方需要手动来完成。”

全新的Cadence Low-Power Solution通过在CPF规范中建立一个设计功耗意图的单一的表示法解决了这一困难,促进了IP复用和RTL轻便性。这种表现法跨越了逻辑设计师、验证工程师和实现工程师所使用的Cadence Logic Design Team Solution和Digital Implementation解决方案,包括计划和以指标为驱动的流程管理、仿真、逻辑综合、等效验证、测试、布局、布线和电压降分布分析。它能够让由多类型专家构成的整个项目团队以包含了低功耗意图的共同的设计角度开始工作。它还大幅提高了设计可预测性,并将芯片故障的风险降到最低。

CPF 1.0已经过了Power Forward Initiative(PFI)顾问们的全面审核,他们是代表电子产业各细分市场的领导厂商,包括半导体、代工厂、半导体设备、系统和电子设计自动化公司。PFI顾问提供了超过500项建议,这些都已经加入到CPF 1.0中,他们于2006年末捐献给Si2 Low Power Coalition(LPC)。LPC将负责未来CPF的推进。LPC已经审核了CPF 1.0,按照Si2标准化进程,已将CPF暂时批准为Si2规格。

“Low Power Coalition已全体一致地选择采用了CPF 1.0的技术,并使整个业界可以普遍使用。”Si2总裁兼CEO Steve Schultz说,“这一消息的发布非常清楚地展示了CPF在整个低功耗流程的广泛适用性,并显示出从一个或多个提供商提供的不同工具的互用性的潜力。”

“对于那些一直在寻找低功耗设计性能的设计师而言,这是一次巨大的进步。”徐季平博士指出,“这是第一个能向设计师提供在寄存器传输级自动呈现低功耗技术的解决方案,并保证能够在验证、前端实现和物理实现步骤的全过程使用一个通用的格式正确执行。”

该解决方案保证能够在验证

Cadence Low-Power Solution在用户端也已得到了广泛的好评。例如,Sandbridge工程部副总裁Gary Nacer表示:“Cadence低功耗解决方案为我们实现低功耗设计提供了单一的前端到后端的流程。之前,我们已经采用了Cadence低功耗解决方案进行芯片出带,而在集成了针对电源关断设计的验证性能后,我们相信该流程将会让我们能以最小的风险提供有竞争力的低功耗产品。”

NXP半导体SoC 设计技术高级副总裁Barry Dennington说,“过去,我们依赖私人的解决方案定义功耗意图来支持功耗方法学孤岛,包括动态电压频率调整(DVFS),但如今我们已经利用了Common Power Format的便利来优化精密型,65纳米,低功耗IC中SoC功耗架构。”

Fujitsu电子器件业务单元设计平台开发部总经理Shoji Ichino也表示:“由于对高级低功耗技术的需求在我们的ASIC/COT业务中一直持续增长,我们正在开发一个基于Cadence的CPF低功耗流程的ASIC低功耗解决方案,我们期望可以在高端90纳米和65纳米设计和主流设计中都可以采用MSV/PSO技术。我们计划在2007年的第二个季度可以完成这一解决方案。

Cadence Low-Power解决方案目前还只适用于纯数字SoC产品的开发。不过,徐季平博士指出:“我们的下一代产品将支持混合信号SoC产品的开发,此外,我们也将发展低功耗封装技术。”

供应情况

作为Cadence Torino项目的一个里程碑,Cadence Low-Power解决方案目前已经上市,并且预定将于年内加入支持Cadence新技术的有功耗意识的流程。其它Torino的产品将于2007年内陆续公布。

作者:陈路,执行主编,《电子系统设计》

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(509) | 回复(0)

发表于 2007/12/23 21:38:59

0

关于投票

SoC处理器的定标原则

半导体器件定标(scaling)在量上的不断进展蕴育着系统级芯片(SoC)器件在设计和结构上质的深刻变化。IC器件定标可以加强功率效率、增加带宽和显著改进功能集成性,而要挖掘出硅的全部性能潜力,还须在设计复杂性管理和改进设计可重用性方面做同样的努力。代表ITRS对半导体定标的一致观点的一个简易技术模型示出了芯片设计上一系列重大变化。较高层次的可编程性可以缓解经济上的压力。专用处理器性能的不断提高和器件的自动生成将使处理器芯核在SoC结构体系中发挥重大作用,诸如从高性能控制到以前只能由硬连接逻辑才可以实现的数据密集型任务等。

系统复杂性将使基于软件的处理器可编程性的发展快于其它SoC可编程性机制的发展。内在的以及可提取的系统级并行性的增加将使专用处理器成为先进SoC的基础构建模块。这一处理器定标模型预计,15年内,有着数千个完整特征的处理器的单芯片设计将很普及,包含数百个处理器的设计更是比比皆是。这一模型还表明,多处理器SoC(MPSoC)的计算性能将每年提升65%。包括专用型在内的处理器,将主导芯片上的逻辑区,而处理器RAM将主导芯片上的存储区。SoC设计的核心问题将从目前子系统、处理器以及逻辑块的设计转向将含有丰富软件的子系统快速而可靠地集成在具有完整硬/软件系统的设计方面。

面对SoC的设计挑战

1965年,戈登-摩尔博士出色地预见到了IC晶体管数量上的指数式增长模式。作为摩尔定律的直接结果,现在工程师们可以把整个系统置于一块芯片上。在0.13微米标准单元制造工艺中,硅密度通常超过10万门/mm2。因此,当今即使一枚低成本的芯片(芯片面积50mm2)也可能有5百万个逻辑门。现今SoC设计的好处人所共知。相比于较低集成度的电路设计,SoC集成将降低产品成本、提高性能并延长电池寿命。不过,SoC的设计人员也受到这些数百万门设计的复杂性的困扰。许多小组报告称,其高达70%的研发工作用在了模块或系统级的验证上。随着SoC设计复杂性和芯片密度的增长,设计时间和成本将会不断迅速攀高。尽管EDA工具有了重大改进,但现行SoC的设计方法无法填补逻辑复杂性与设计师生产率间的空白。此外,单一SoC设计的成本在飞涨。仅一枚芯片的设计和验证成本通常就超过上千万美元。为应对SoC研发的机遇、困难和高昂花费,一些公司正在开发适合多个产品和客户、适用性较强的专用SoC。这样做可为这些公司评估其SoC投资提供所需的规模经济依据。寻求对目标应用领域的最佳支持和广泛应用性之间的恰当平衡是目前电子系统设计的中心课题。

软件可编程性是根本

这种设计挑战驱使嵌入式处理器走入SoC设计更为核心的位置。高级语言的可编程性可同时满足功能性的更迅速开发和对变更要求更敏捷的适应性。数据密集型SoC的功能,特别是对高吞吐量和低功率要求的功能,一般由不可更改的硬连接逻辑担纲。通用的嵌入式RISC芯核一直以来都在处理低性能的用户界面、系统管理和应用控制功能,以应付这些功能的内在复杂性和易变性。但是,通用嵌入式处理器的发展之路存在两个不足。第一,这类处理器进展缓慢。它们一旦有任何新改变,所用硬件和软件工具都要手工研发。处理器设计师会遗漏那些只对特定用途至关重要的特性,同时他们常常也会把不是大家都需要的无关特性加到每次实现中。开发新的处理器方案与软件环境的高成本高投入,制约了为适合目标应用所进行的对处理器架构的微雕细琢。第二,最终产品的复杂性要求把多个不同子系统集成到单一SoC上,半导体器件的定标可以做到这一点。下一代SoC通常将融合重要的控制、信号、媒介、加密和网络处理等子系统。设计的最大难点将不再是各子系统的实现,而是正确和最佳实现所有预期功能的系统设计。当然,没有用于SoC上所有处理器的统一架构和工具,没有易操作的多处理器仿真和通用的软件开发工具,SoC系统集成将难于实现。

处理器定标模型

国际半导体技术蓝图(ITRS)描绘了今后15年半导体工业在硅器件密度和性能上的主流趋势。它作为技术规划的目标曾经推动了摩尔定律的发展。基础半导体技术的不断定标与改进高性能通用处理器架构的预期回报缩减形成鲜明对比。过去15年计算机系统技术和性能的定标经验不能简单地用于今后15年的嵌入式SoC。ITRS蓝图可作为进一步预测SoC设计中处理器作用的基础。这种处理器定标扩展模型具有决定性的一点,即晶体管级的密度增长(如摩尔定律所预测)可以有效地被用来进行电子产品性能、效率和适应性的不断改进。

此模型的建立基于下列所预计的变化:入门级定标:器件尺寸的变小和器件密度的不断增加为在SoC器件上迅速集成电子系统特性提供了技术能力和经济推动力。今后15年,随着典型的批量生产SoC器件的复杂性由数百万门上升到5亿门,技术和经济因素将使SoC设计结构有很大改变。图1对进行标准单元逻辑综合和布局的典型门密度及最差情形时钟速率作了预测。



需遵循的可编程性:SoC设计成本的上升将推动可编程性在更多SoC功能中的运用,以限制研发费用开支和增加潜在制造量。可编程性的增加将使一块IC可以满足很多产品的需要,并可以通过软件迅速并低价地修复设计错误。最终产品在增加功能复杂性的要求上,相对于其它可配置性或可编程性机制而言,更倾向基于软件的处理器可编程性。然而,基于处理器的软件操作不是SoC设计中可编程性发挥作用的唯一形式。源于标准可编程逻辑器件的FPGA逻辑模块也将出现,尽管程序设计模型(一种硬件描述语言而非高级编程语言)和电路效率方面的局限性将可能制约FPGA在可编程接口和专用计算结构的应用。现今,相对于同一IC加工工艺的逻辑单元标准来说,基于FPGA的逻辑存在约5倍时钟速率和密度增加10倍以上等不利条件。如ITRS蓝图所预测,线宽将由现今的130nm缩小到2016年的约22nm,由FPGA架构对线路延迟的高敏感性不但不会减小,反而会继续增加。

定制的处理器:定制的专用处理器将可有效替代硬连接逻辑功能块。图2示出用专用指令集定制处理器的性能效果,并对Tensilica Xtensa架构(T1050)的每MHz EEMBC用户基准性能与Xtensa的基础版本、ARM(64位方案)和MIPS(64及32位方案)进行了比较。定制的处理器快达50倍。

 

但单凭性能就让SoC设计师广泛采纳专用处理器是不够的。还需要具备两种特性:即处理器架构必须拥有高度的适应性以满足精确指令集的应用需要;硬件和软件必须无缝地一并生成,而无需专门的处理器硬件或软件技能,并且不增加验证风险。

此外,从应用源代码完全自动生成新处理器方面来看在降低劳动强度和技能水平、增加处理器架构的最优性方面有着极大的前景。?应用的并行性:系统应用中内在并行性的增长和这种并行性方法的改进,将大量使用小型专用处理器芯核作为先进SoC设计的自然结构。随着SoC集成越来越多的不同功能以及数据流分辩力的增加,所提取的并行性也将增加。多种应用中的性能将只受制于以适当的高带宽、低等待时间、处理器间通信等方式,在一个器件上集成多个处理器的能力。该处理器定标模型预计,小型、扩展的处理器将得到大量使用,先进的设计将纳入数百或数千个通信芯核。许多高性能、数据并行、单指令多数据 (SIMD) 长指令字芯核会在每个芯片上使用。图3示出芯片面积为140mm2下的模型。



多个处理器的集总性能:SoC设计师将利用指令级和任务级两个并行性。专用处理器架构将利用指令级并行性,在单一种算法内,通过矢量(SIMD)和长指令字技术使吞吐量和效率大为增加。多个处理器自然利用任务级并行性。集成式开发工具和处理器生成器将使设计师可以研究由简单的增强型RISC处理器到庞大的长指令字矢量架构的各处理器的扩展范围,他们还将可以探查各种不同的处理器数量和系统拓朴。大量简单处理器和小量复杂处理器的模型产生了相似的整体吞吐量预测。吞吐量集总性能示于图4中(假定芯片面积为140mm2,处理器架构适度扩展)。在较小型简单扩展处理器和较庞大型数据并行处理器两种情形下,性能增长率(年增65%)及绝对值(1013操作/秒)是相似的。



SoC设计的新方法

一种加快多功能数百万门SoC开发的全新途径正在出现。

第一,用可扩展处理器代替寄存器传输级(RTL)设计中的常规嵌入式处理器芯核和硬连接逻辑功能,以缩短设计时间和取得完全可编程性。软件开发工具、仿真模型和硬件优化设计必须由一种单一的源描述生成,以加速研发进程,确保完整性和正确性。

第二,这些专用处理器是定制的,其运行功能与它们所代替的硬性RTL逻辑功能块近乎等效。数据密集型应用中的高性能和易适应性可使这些定制处理器作为SoC设计的基本结构而发挥更大的作用。处理器的这种多方面作用可为控制和数据功能带来更加完整更为普遍的可编程性。单一的可编程多处理器SoC(MPSoC)可用于多种应用和多个客户。随着标准的变化,新功能可以加到软件上,由于避免了SoC的反复(respins),因而降低了整个研发成本。

一般来讲,硬件和软件的研发均各自依照一套不同的高度专业化的设计技能展开。技能上的差异和协调上的困难使SoC设计变得日趋昂贵、风险高及缓慢。多处理器芯核SoC设计方法学的统一可使系统划分、子系统设计以及硬/软集成变得更快,从而造就出具有更高可重用性和更好投资回报的SoC平台。

基于处理器的SoC设计调节了晶体管不断增长而工程师人数相对不足的矛盾。软件任务层面上的功能说明要比等效的硬件逻辑功能设计简便和快捷得多,因此这种以软件为中心的设计方法蕴藏着更高设计生产率的潜力。而且,专用处理器的使用可保留软件方法的优势,并可使处理器处理许多以前只在硬件逻辑中实现的数据密集型任务。

结语

对数字系统设计的定量预测可以概括为一句话,即“SoC处理器定标的原则”。第一部分:以软件为核心的多处理器SoC设计将成为一种标准的设计方法,典型的片上处理器数量每年上升30%,到2015年将会有数千个处理器。第二部分:典型的基于处理器的SoC的集总计算能力将每年增长65%,到2010年达到每秒1万亿次操作。这种处理器定标模型表明了先进系统级芯片架构清晰的发展远景,典型设计可由功用各异的大量处理器构建。“海量处理器”SoC设计方法使用完全可编程的应用调节处理器作为集成式系统的基本构建功能块。

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(497) | 回复(0)

发表于 2007/12/23 21:37:23

0

关于投票

基于SOPC的指纹识别系统设计

引言

人的指纹具备的唯一性、终身不变性、易获取和难以复制等特点,使得指纹识别很早就成为身份识别中的一种技术手段。随着科学技术的发展,指纹识别已经成为目前最为实用、应用最为广泛的生物识别技术,尤其在民用生物识别技术中。指纹识别技术已经在金融、医疗、公安、门禁系统等领域得到了广泛的应用。

传统的指纹识别系统都是基于PC机的,这种系统具有识别速度快、样本存储量大、软件设计技术成熟等优点。但是,基于PC机的指纹识别系统由于价格昂贵、移动性能差、功耗高等缺点限制了其应用的进一步扩大。自二十世纪末以来,半导体技术和嵌入式技术的快速发展,为人们设计廉价的便携式指纹识别系统提供了一个技术上的实现平台。 本文介绍了一种基于ALTERA公司推出的SOPC(System on a Programmable Chip,片上可编程系统)技术的指纹识别系统的设计方案。该系统以ALTERA公司的Cyclone II系列FPGA和NIOSII软核处理器为核心,并采用富士通公司的MBF200指纹采集芯片设计,是一种简单实用的嵌入式指纹识别系统。

1 指纹识别系统原理

指纹识别系统一般由指纹图像采集、指纹图像预处理、指纹特征提取、指纹特征匹配、特征数据库等几部分组成。指纹识别系统的原理框图如图1所示。该系统首先由指纹采集设备采集到指纹图像将其转化为数字图像;然后对指纹数字图像进行预处理,再通过图像增强、分割、平滑、细化等处理过程得到便于指纹特征提取的数字图像:接着提取细化后的图像细节特征点;最后将提取到的特征与特征数据库中的特征数据进行匹配,并输出识别结果。

2 系统硬件设计

2.1 SOPC技术与NIOS II软核处理器

SOPC (System on a Programmable Chip,片上可编程系统)是ALTERA公司提出来的一种灵活、高效的SOC解决平台。它将处理器、存储器、I/O口、LVDS、CDR等系统设计所需要的功能模块集成到一个PLD器件上,从而构建成一个可编程的片上系统。基于SOPC技术的系统设计十分灵活,用户可以根据自己的实际要求,并利用IPCore资源组合构建出不同的应用系统,从而实现软硬件协同设计。



NIOS II软核处理器是ALTERA公司于2004年推出的通用32位RISC CPU,它能满足任何应用32位嵌入式微处理器的需要.用户可以获得超过200 DMIPS的性能。NIOS II软核处理器具有32位处理器的基本结构单元(32位指令大小,32位数据和地址路径,32位通用寄存器和32个外部中断源),设计者可以根据系统需求的变化来调整嵌入式系统的特性,以选择满足性能和成本的最佳方案。Nios II系列可支持用户自定义指令,而NIOS II ALU则直接与用户自定义的指令逻辑相连。由于设计者能为系统中使用的每个Nios II处理器创建多达256个专用指令,因此,设计者能够调整系统硬件以增强对实时软件算法的处理能力。ALTERA公司同时还推出了Nios II集成开发环境(IDE)和一些常用的免费IP核,以方便设计者的软件开发。另外,设计者使用Altera公司Quartus II开发软件中的SOPC Builder系统开发工具还能够很容易地创建专用的处理器系统,并能够根据系统的需求添加Nios II处理器核的数量。

2.2 系统硬件结构

一般的指纹识别系统主要由指纹采集模块、系统核心模块、数据存储模块和输出显示模块等几部分组成。其系统硬件结构框图如图2所示。



本系统中的采集模块采用富士通公司的MBF200指纹传感器芯片,该芯片的分辩率高达500dpi(dots per inch),并带有8bit数据接口,可以采集300×256大小的指纹数字图像。MBF200芯片提供有三种接口(SPI、USB和MCU)方式,本系统中采用MCU方式,其内置的标准8位微处理器总线使其性能大大加强。MBF200的工作流程分为两部分:首先是初始化参数的设置,即使MBF200设置相应的参数,然后选择其工作方式;其次是采用查询等待方式采集指纹数据。

由于系统每次采集的指纹图像数据量达几十KB,故在系统核心模块中集成了一个硬逻辑协处理器。这个协处理器负责查询指纹芯片的状态和指纹图像数据采集存储任务。该协处理器是用硬件描述语言设计的一个有限状态机,其状态机模型如图3所示。系统复位后,协处理器将进入空闲状态并等待主处理器的复位信号;当正确接收到主处理器的复位信号后,协处理器进入查询状态;查询状态主要查询指纹芯片的中断状态位,当查询到有效中断状态位后,系统将进人数据采集存储状态;在数据采集存储状态,协处理器从指纹芯片读出数据并保存在系统的存储区SRAM中,读完整个指纹图像后即向NIOS II处理器发出中断信号并重新进入空闲状态,以等待主处理器复位。

本系统的核心模块是在ALTERA公司的Cy-clone II 2C35上实现的,相应的软件开发套件包括Quartus II 5.0和NIOS II 5.0集成开发环境(IDE)。

Cyclone II系列FPGA是ALTERA公司最新推出的低成本、高性价比的通刚FPGA,CycloneII 2C35具有32,216个LE单元、105个M4K RAM块、35个嵌入式乘法器,完全可以满足系统的性能要求。通过QuartusII中的软件工具SOPC Builder可实现NIOS II处理器的创建和各种IP模块的管理和配置,以构建系统的核心模块。图2中,根据系统的实际要求由SOPC Builder配置的处理器核心包括NIOS II处理器、指纹卡PIO、协处理器PIO、Avalon Tri-Atate Bridge、UART模块和LCD PIO等模块。配置好这些模块后,便可进行系统生成。SOPC Builder在系统生成过程中可生成HDL源文件和BDF文件。SOPC Builder为定制的NIOS II核心模块创建的一个符号(Symbol)就存放在BDF文件中,用户可以在Quartus软件中使用该符号。本系统核心模块是使用Quartus的符号表文件编译生成的。

数据存储模块包括512 KB的SRAM和4 MB的FLASH。SRAM用来存放采集到的指纹图象数据和程序运行时的临时数据。4 MB的FLASH则用于存放系统应用程序和特征数据库。系统的识别结果可以通过LCD输出。

3 系统软件的设计

系统软件可利用C语言在NIOS II集成开发境下开发。Nios II集成开发环境(IDE)是Nios II软核处理器的主要开发工具,包括编辑、编译和程序调试。Nios II IDE为软件开发提供了一个集成的设计开发环境。它有一个包括工程管理、源代码开发和基于JTAG调试功能的图形界面(GUI),故可大大简化复杂的Nios II处理器设计。



指纹识别算法流程主要包括背景分割、方向图计算及方向滤波、二值化、细化、特征提取和特征匹配等。采集的指纹图像容易受到各种因素的影响而使图像质量变差,比如手指按压的方向和力度、皮肤的干湿程度、传感器的特征差异等。因此,指纹识别算法首先要对指纹图象进行处理,以把有用的前景信息和背景区分开。本系统算法采用方差法进行图像分割。然后采用基于块方向图计算的方向滤波。接着利用动态阀值法进行二值化处理,以把指纹灰度图像转化为仅用0、1表示的二值图像。对二值化后的二值图像进行细化可得到骨架图象。接下来的特征提取阶段是用模板匹配的方法获取细节特征点(端点、分叉点)的位置、方向和类型信息。最后和特征匹配则采用基于细节特征点匹配的算法。
   
4 结束语

本文给出了一种基于SOPC的指纹识别系统的设计方案。使用SOPC技术进行系统设计具有开发周期短、设计灵活、可把若干外部模块综合设计到一片高密度FPGA中等优点,同时设计更小巧、成本更低、更便于系统升级。虽然目前SOPC技术还处于推广阶段,但国内外已经有很多高校和公司进行了实际应用方面的研究。因此,我们有理由相信,SOPC技术在不久的将来一定会有更广阔的应用空间!

来源:http://www.edw.com.cn/news/show.aspx?ClassID=124&ArticleID=60762

 

系统分类: CPLD/FPGA  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(672) | 回复(0)

发表于 2007/12/23 21:33:06

0

关于投票

如何利用嵌入式软件设计SoC

美国Globalpress公司举办的2007电子高峰会议上,举办了一场SoC(系统芯片)的专题讨论会:设计师如何利用嵌入式软件作为SoC器件设计的关键。会议上的专家各抒己见。
  
完整方案比单个硬件重要
  
主持人:Gartner公司的高级分析师John Barber
  
软件在嵌入式产品中的份量越来越重。自2000年来,价值观念发生了巨大的变化,2000年以前,主张是器件,即让我们的器件与竞争对手的性能、品质进行对比具有优势,这就是那时形成鲜明特色的关键。现今,制造商和客户需要的是解决方案,而不仅仅是器件。我的价值主张,我的鲜明特色,必须是完整的解决方案,包括与硬件一块推出的可以立即投入大批量制造的软件栈。
  
硬件与软件将设法整合到单个流程
  
Mentor Graphics系统级设计总监Bill Chown
  
我们过去所从事的是硬件设计,现在则还需要辅以软件应用方面的大量工作。但这两者的“婚姻”却并不幸福。在两者之间,我们需要填补在基础架构方面的鸿沟,如今的硬件不是从头设计的,需要进行基础架构的复用。需要复用的包括处理单元、内存、接口器件... ...许多基 础设计事先已经被人们所了解、得到了分析和预先进行了配置。我们需要把它插入到系统中,提供针对硬件的软件能力,以及针对具体应用的软件能力。在用户对硬件和应用软件的使用目标的这两个空间之间,我们必须确保能让他们寻求到与他们的具体需求相应的问题所在,但是最大限度减小他们花在两个空间之间的工作量。
  
EDA代表电子设计自动化,但我们有时候会迷失,而忘却了“自动化”一词正是我们在这个空间中应该完成的工作。我们应该回顾在这个流程中应该实现自动化的对象是什么?那并不仅仅意味着工具的改进,而且意味着我们能通过标准化来简化问题。
  
总结一下,我们能让人们去做的事情,是从一个在系统空间中的概念设计,一直到完成整个流程。概念设计上的革新是关键,我们需要灵活多样;随着设计的进行,我们需要尝试不同的解决方案。如果我不知道我在做什么,就无法去尝试替代方案。所以良好的分析将告诉我,我所做的工作将会把我带向何方。这些不同的任务中的每一项,都对应着每一个团队所从事的领域。因此,这是一个复杂的世界,但我们将设法将其整合到一起。在实现整合的过程中,我们应该能加速、改动,并将来自于不同领域的软件与硬件、系统与验证集成到单个流程中。
  
软件的关键作用是保证批量
  
MIPS Technologies公司市场行销副总裁Jack Browne
  
在SoC设计时,我们所面临的挑战是多方面的。首先我们希望能向市场上推出种类多样的产品。以MIPS公司为例,有3种不同的微架构系列,10种不同的处理器内核。我们必须具有某种能让我们能投入制造的业务模式,因为本公司的业务模式是基于IP(知识产权)使用费的,我们的年收入的一半来自于授权和版权使用费。客户的产品要达到制造批量,交货则需要3~4年;他们拿到所设计出的芯片,要2年,然后他们再让OEM来设计出系统,而这又要花上2年。所以,该供应链有一个问题:如果我的收入严格取决于制造批量,你应该如何来支付这些开发的费用?费用的支付要延后4年,财经界是不能容忍战略性项目上的亏损的,你必须展示出业务的良好性。
  
另外一个挑战是,你希望进入不同的、类型各异的市场。其中每个市场的成功的临界数量(客户数量)是不同的。同时你还必须支持不同的OS(操作系统)。你必须有解决所有这些问题的方案。我们的做法是,承认人们有一个平台。软件,无论是Linux还是其他的实时操作系统,一直到应用层次。我们所追求的关键一点,是使用硬件抽象层。从根本上来说,如果我有两家不同的客户,他们决定购买不同的套装,或者甚至不同的USB控制器,则通过硬件抽象层,如你的PC中的BIOS,我可以实现不同的偏好,而不用移植操作系统。
  
你去考察供应链上的不同玩家的商业模式的话,就会发现,将操作系统移植到另一个硬件平台上的工作并不能提供多少余地。如果你所选择的应用不对路的化,则很难实现足够的产量。如果你考察如今的标准数字电视的话,就会发现其中有些采用了300万行的软件。而你将看到2年后的HDTV将采用500万行的软件,而且其中有16个处理器,用于处理不同的任务。
  
所以软件的关键作用就是保证批量。如何找到一个合理的财经运作模式,是EDA、IP公司、半导体公司、软件公司共同努力解决的挑战。

多处理器的软件设计法
  
Tensilica公司市场行销副总裁Steve Roddy
  
软件的重要性到底有多高?有人认为市场规模尚小,有些人认为它很重要,另一些人则主张我们处在一个临界阶段,许多软件都实现了移植。
  
3种观点也许都是正确的,具体取决于其市场。但我想退一步思考一下处理器也许倒也无妨。一个有趣的问题是,如今和未来的应用应该需要多少个处理器?这里借用ITRS(国际半导体技术发展路线图),来展示在每个工艺节点对应着的、每个SoC上平均使用的处理器的数量(图1)。当前,ITRS宣称每个SoC上平均有32个可编程器件。我们知道,有些可能数量会多些,有些则少些。Tensilica与Cisco合作,推出了基于130nm节点的、采用192个处理器的设计。所以处理器的数量会出现迅速增长。而软件正是在此之上运行的。



图1 2005 IRTS MPSoC 发展图可看出,多核设计时代来到了
  
是的,软件的复杂程度和架构的复杂程度都正在增加。即便处理器的数量在增长,它们并不全都一模一样。这些器件上将出现多样化的处理器。
  
关于嵌入式的设计,很明显的一点是,软件的形式必然迥异于普通的通用型软件。事实上,嵌入式世界迥异于与通用型软件世界。在通用型应用的世界中,如Intel和AMD,在处理器上运行的软件在器件开始推出时尚不为人所知。因此一般采用通用型的计算,对于通用型的计算,人们采用通用的SMP Die Bucket 架构。在嵌入式世界中,如果你设计用于路由器的芯片的话,它就是供路由器专用的。优点就在于你知道器件的用途,所以其设计会针对具体应用进行优化,让人们能利用专用的处理器,如可重构的和可扩展的处理器,以节省面积、成本和功耗。因此两者的设计之道大相径庭。拥有许多可重编程的处理器,并不意味着你有一个全新的世界。系统架构和硬件架构研发者努力解决这个问题已经有几十年了。他们将其称为SoC,现在人们以处理器为单位进行设计,而不是硬件模块,他们在系统中引入了许多软件的东西。但这并不意味着在设计这些东西的方式上会遇到什么危机。

设计这些系统的风格,仍然具有一个SoC只有一个处理器的年代的SoC设计、架构所具备的那种多样性。你可以让处理器间具有一个看起来非常传统的联系,采用SMP通用型架构,你可以让处理器之间根据具体应用来建立互动关系,你可以在处理器间建立硬件风格的数据流。事实上,某些处理器甚至根本都不清楚芯片上有其他处理器的存在。这些东西的实现有多种多样的途径,成功的关键是功能划分,人们可以在功能模块中放入标准、API,事实上,在这些系统上运行的软件,可以造成复杂性极大增长,而我们在实现上仍然感受不到危机的存在,通过功能划分,经过优化的处理器、经过优化的API将通用型的程序与软件的所有复杂性隔离开来。



图2  随着处理器复杂度上升软件比例上升
  
设计者完全可以利用直截了当的设计方法来掌握如此复杂的,设计数百万行程序的软件工作。
  
软件发挥至关重要的作用
  
Wipro公司半导体/消费事业单位副总裁Siby Abraham
  
今天,推动半导体业发展的仍然是摩尔定律。对我来说,在设计中如何放入更多的逻辑、在一定的芯片面积上能放入多少个晶体管这一问题所带来的痛苦和挑战—这是技术经理和工程师们关心的问题,倒还比不上呈指数化增长的IC设计成本。源程序的复杂性的日益增长,而成本的上涨幅度超过了硬件的。
  
如今,逻辑电路的80%都被复用。这意味着SoC上只有20%的逻辑是用来体现其不同之处的。这也就是利用软件来实现SoC鲜明特色的地方。我们所看到的趋势是,根据我们过去4年所从事的项目,我们在软件和半导体业摸爬滚打了多年,SoC的未来在于多核架构方面的改进,而这正是软件发挥其效用的地方。
  
如今,我们的软件还不能有效而自然地利用好多架构带来的优势。挑战在于,软件工程师如何能利用众多核架构带来的优点。我们已经看到了在SoC中对软件的多方面的应用。软件的挑战,可以认为与硬件工程师们所面临的挑战是一样的。
  
我们今天所看到的更重要的一点是,现在需要那些不仅仅把自己划入硬件工程师或软件工程师等类别的工程师们,他们了解更多的专业,从而能利用众多领域的知识。我们看到一个大挑战,有的客户要求在产品供货时就能提供软件。
  
我们所看到的技术上的挑战,价格、性能、功耗,而如今软件团队也将承担相应的责任。如果没有可调试性,硬件团队将困难重重。
  
注1:关于此次讨论的详细报道及记者问答,将刊登在10月出版的专刊—《嵌入式系统开发》上;
注2:迎九根据此次会议的录音整理

 

系统分类: 嵌入式  |  用户分类: SOC技术  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(652) | 回复(0)

2345Next >Total , Page /