传统soc总线架构已不能满足新的联网嵌入式设计对高带宽数据流进行实时控制的需求,netsilicon开发的可编程总线带宽控制系统可以使多个资源同时访问总线,使其既满足应用要求又不会影响其他重要操作的性能。本文将对该系统的可编程总线带宽分配方案进行探讨。
图1:ns9xxx的带宽控制系统。
32位嵌入式设计越来越要求对网络上高带宽数据流进行实时控制,特别是在系统级芯片(soc)层面,以确定性和无争议的方式传输数据和控制信息变得非常重要。各种操作直接处于系统开发者既定的控制之下也很重要,而这在基于总线的soc设计中并不总是能够实现。
设计者和芯片供应商常常借鉴板级及系统级架构技术,以便在最短的设计时间内以最低的开发成本进行soc设计。由于手机和pda等设备对确定性的实时响应需求很少,所以传统解决方案在此类应用中表现还不错。
但在许多新的联网嵌入式设计中,传统总线架构不能满足共享总线对高带宽及高密度数据流的需求,在下列应用中尤其如此,如工业用人机界面(hmi)网络显示、pos终端设备,具有不同数据带宽需求的彩色打印机、网络投影仪和监视摄像机,以及网络打印机、数字复印机、多功能一体机、传真机和扫描仪等。
许多基于片上串行互连的替代方案正在研发中,这些替代方案类似于串行结构、交叉交换(crossbar switch)和基于数据包的总线。在这些新方案得以完善之前,鉴于时间和成本压力,必须找到能修改从板级设计借鉴过来的共享总线架构的方法,以满足新的32位嵌入式联网设计对确定性和实时性的要求。
传统soc总线的优缺点
soc开发者不愿意放弃这种通用共享总线,因为它可以减少设计周期中的规范制定及验证工作,能使soc的高层次集成如同将扩展卡插到背板上一样简单。通过采用通用总线,开发者可以集中精力投入到更高层次的决策中。
arm公司在高级微控制器总线架构(amba)中采用通用总线,允许获得许可的使用者专注于自己的应用开发,从而快速将产品推向市场。
微处理器、dma控制器、存储器控制器及其它更高性能的模块通过ahb连接。性能较低的模块,比如uart、通用输入/输出(gpio)及定时器等,则通过apb连接。
但是,基于arm的soc所瞄准的许多高端嵌入式应用,要求它们在处理这些应用的确定性与实时性需求的同时,还可以访问高带宽网络环境。
这些应用要求soc能够发出控制信号、采集数据并在网络上实时传输数据。基于不同的网络特性及其带宽要求,现有soc总线架构的性能将会得到尽可能的提升,例如,高端联网嵌入式应用可能要处理通过以太网连接从照相机传输到打印机的视频数据位流,或从服务器传输到打印机的图像,与此同时还可能根据与扫描、刷新和更新周期有关的确切要求对本地lcd显示进行更新。使用外部lcd时,lcd控制器必须知道通过该总线传输的具体字节数量、数据发送顺序以及数据在显示器上显示的特定时隙和顺序,同时也很必要将信息不断地馈送给lcd用于更新。
图2: ns9750原理框图。
共享总线的概念并不能满足soc中的这些要求。在典型的ahb设计中,总线主控是总线上全部的主要资源,也就是说,当总线空闲时,它们可向总线请求完成一个任务所需要的时间。但在基于arm的soc中,程序设计者不能直接控制当它们掌管总线时可得到多少总线资源。
共享总线架构用多种方式来区分这些操作的优先次序,包括:菊花链仲裁、集中式并行仲裁、基于自选或冲突监测的分布式仲裁以及带多个总线请求的总线仲裁。但当指定的主控接管总线后,其他操作就会搁置在一边。目前还没有一种机制能够让多个资源同时访问总线,使其既满足应用要求,又不会影响其他重要操作提供确