<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 并行實(shí)時(shí)處理系統(tǒng)中總線仲裁問(wèn)題的研究及實(shí)現(xiàn)

          并行實(shí)時(shí)處理系統(tǒng)中總線仲裁問(wèn)題的研究及實(shí)現(xiàn)

          作者: 時(shí)間:2012-12-04 來(lái)源:網(wǎng)絡(luò) 收藏


          4.1 系統(tǒng)總線仲裁設(shè)計(jì)中的硬件部分
          多DSP總線連接結(jié)構(gòu)如圖6所示:






            為保證低優(yōu)先級(jí)的處理器發(fā)出緊急總線請(qǐng)求時(shí),可以及時(shí)得到響應(yīng),這里通過(guò)中斷的方式來(lái)響應(yīng)該請(qǐng)求,當(dāng)前控制總線的處理器一旦接到該中斷請(qǐng)求時(shí),將轉(zhuǎn)入預(yù)先設(shè)計(jì)的中斷服務(wù)子程序中,中斷子程序完成的工作有:保護(hù)好當(dāng)前的工作狀態(tài),交出總線控制權(quán),等待緊急總線操作的結(jié)束,重新獲取總線控制權(quán),恢復(fù)原來(lái)的工作狀態(tài)。這里要指出的是,必須將工作狀態(tài)保存完好,并在操作結(jié)束后正確的恢復(fù)回去,否則將會(huì)引起總線仲裁的混亂,導(dǎo)致系統(tǒng)死機(jī)。
          下面通過(guò)一個(gè)實(shí)際的多DSP共享總線操作例子來(lái)描述軟件工作的具體流程:
          在本例中,主片將數(shù)據(jù)分為n份,除自己保留一份外,將其余n-1份分發(fā)給從片,然后開(kāi)始進(jìn)行相應(yīng)的算法處理,在處理完成后,從片將同時(shí)向主片回寫(xiě)數(shù)據(jù),由于程序運(yùn)行過(guò)程有嚴(yán)格的時(shí)間限制,所以要求數(shù)據(jù)能被快速正確的傳送,并且不能發(fā)生總線沖突。程序流程如下:


            采用基于分布式并行的優(yōu)先級(jí)分層仲裁機(jī)制,可以滿足在實(shí)時(shí)環(huán)境中多DSP共享總線結(jié)構(gòu)的并行處理系統(tǒng)的總線仲裁要求,保證了系統(tǒng)總線仲裁的可靠性。
            由于系統(tǒng)的各個(gè)DSP的總線仲裁器獨(dú)立同構(gòu),即使某個(gè)處理器的總裁模塊發(fā)生故障,通過(guò)適當(dāng)?shù)能浖O(shè)置,將不會(huì)影響其他模塊的仲裁工作,同時(shí)能滿足系統(tǒng)正常工作狀態(tài)和帶故障工作狀態(tài)下的不同要求,提高了整個(gè)系統(tǒng)的可靠性。
            上面的硬件、軟件設(shè)計(jì)方案和流程具有通用性,對(duì)于其他共享總線的多處理器系統(tǒng)也基本適用,但具體的實(shí)現(xiàn)方案需要參考不同芯片自身的設(shè)計(jì)手冊(cè)來(lái)進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();