多处理器运行的嵌入式系统

多处理器运行的嵌入式系统,第1张

在早期开发微处理器的嵌入式软件时,条件比较简单,只有一个CPU、数量有限的存储器、若干、还可能有简单的网络。

今天,情况已经变化。嵌入式系统可能是多CPU,甚至是DSPCPU的组合。存储器和数据率都属于海量,此外,开发队伍遍布全球,而且客户要求提供几乎不可能达到的可靠性。

嵌入式软件供应商怎样才能够满足开发商的需要,包括消息传送、存储器管理、CPU/DSP之间的通信、容错和系统级开发工具呢?

DSP越来越复杂和更加强大时,开发商逐渐认识到,必须在这些器件上运行实时 *** 作系统。当执行多任务时,实时 *** 作系统能够有效地使用DSP的资源,并且对误差处理和存储器地址分配等作业有帮助。

对于TIgerSHARCDSP,实时 *** 作系统通过“链接端口”处理通信,控制其它CPUDSP,并且产生同步。为CPUDSP同时提供通用的API(应用程序接口)可改善开发时间、编写文件和代码维护。

实时 *** 作系统结构的一项重要进步是内部处理通信能力—嵌入式系统的作业如何与其它作业交换数据。传统办法是分享存储器的“信箱”,采用信号量进行存取和控制。

多处理器运行的嵌入式系统,第2张

1消息的通过

多处理器运行的嵌入式系统,第3张

2错误的处理

随着嵌入式系统变得更为复杂。许多开发团队转而使用异步的信息通行结构(参阅图1)。从程序员的观点来看,例如在OSE实时 *** 作系统中,作业只要简单地发送消息和另一个作业接收消息。这样做的优点很多,由于实时 *** 作系统处理了存储器的地址分配,系统的调用数就减少。作业可在系统内任何地方接收。甚至可通过背板接收到在另一块电路板的作业;不管作业在哪里,实时系统都可对它进行处理,事实上,消息通行的异步方式是指一个作业不能锁住另一个正在等候信号的作业;有时候在复杂的分布系统中,这样做是很重要的。

异步的消息通行结构还有另外的优点,它可将项目划分成几部分,再分配到几个小组作并行开发。

存储器管理是另一个结构问题。当系统要得更加动态和更加着重存储器时,嵌入式系统的存储器管理就变得十分重要。在动态系统中,一个不可避免的问题是数据分段。虽然无用信息收集法可作为一种解决方案,但是它的风险会影响到系统的实时性能。

OSE实时 *** 作系统正用于全球的基站中,经常放置在远端台站。对网络供应商来说,损失客房的空中时间或票据信息都是不可取的。OSE用两种地址分配方式来消除分段,“堆置(heap)”,根据黄金分割法的顺序分配存储器地址,从而限制分段;轮询缓冲器(a pool of buffers),此时任务分配为轮询存储器,而且只分配到预定容量的缓冲器中。一旦某个缓冲器被使用,它就回到系统内。结果是轮询的全部存储器随时保持“可用”状态。这种办法还有一些重要特点,如不会受到存储器搜索延时的影响。

现代实时 *** 作系统结构的进展是误差处理(参阅图2)。在传统系统中,软件开发者为了处理可能发生的任何错误,在系统访问后必须编写“差错代码”,例如,出现失效的存储器地址分配错误。不难想到,当项目越大和开发队伍扩大时,将有许多人写出大量的差错码。在OSE结构中,错误处理是内建在系统访问的运作。

从程序员的观点来看,应用提出对系统访问,而实时 *** 作系统完成其它工作。如果系统访问失败,则内核将调用中央错误处理器去解决问题。

这样做有很多好处。第一,应用码更加紧凑和可靠,而且开发和排错也更快。第二,更多错误处理可在系统级进行,构成更牢靠的容错系统。

 

各种处理器之间的通信

嵌入式开发的最重要发展趋势也许就是混合设计和多CPU/DSP设计了。这种设计有系统级、电路板级、甚至芯片级,例如,集成器件诸如TI公司OMAP,它的特点是ARM核和一个DSP结合。

实时 *** 作系统开发商加紧CPUDSP两者的开发,但是怎样解决DSPCPU的通信呢?Enea嵌入式科技公司构建了一种链接处理器。它是实时 *** 作系统的一部分,用来处理整个系统内各任务的分散消息,不管消息来自邻近的DSP或是在另一插卡上的CPU。它的工作能够跨越大部分通信机制,包括以太网、串行口、CANCompact PCI等。这种链接处理器是智能的,能够检测出传输机制的故障和寻找出新的路由。它还能够根据名称来分配任务,甚至发送不知道接收方的位置/路径的任务。

构建在链接处理器上,OSE的开发人员开发出两种系统访问方式,称为“搜索”和“连接”。“搜索”访问让某一任务决定需要与另一任务通信的路径。一旦知道路径后,该任务即可“连接”上接收的任务。同时表明,如果该任务遇到有任何事件发生,则内核将会告知发送任务方。接收任务所驻留的电路板是否已移走或失效,都会告诉发送方。因而,该任务可将(失效)的复印件重新“搜索”一次,或者将一份新的接收方任务复印件送到(热插拔)的替换电路板上。

 

缩短开发时间

面市时间是大事迫使软件和工具供应商提出解决方案。例如Ericsson等公司的许多前阶段开发,在实际硬件未完成前是在OSE的“软内核”上进行的,软内核是一种已移植到Windows上的一种实时 *** 作系统,使工程师能够在台式PC上开发代码。这种开发环境可支持多内核,甚至支持链接处理器技术。

在查错阶段,许多工作可使用“系统级”查错工具。工具对运行在系统内的任务,状态以及性能提供可见度,工具可动态地分析存储器的使用情况;用一个任务或一组任务分析对CPU的要求;对通过系统的消息进行跟踪;甚至可让工程师在系统级上设置断点,以及对运行中的系统注入测试和分析用的信号。因而,工程师即可在工作台上而无需在现场快速查错。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2420587.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存