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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 片上嵌入式多處理器的一致性機(jī)制設(shè)計(jì)

          片上嵌入式多處理器的一致性機(jī)制設(shè)計(jì)

          作者: 時(shí)間:2011-07-12 來源:網(wǎng)絡(luò) 收藏

            如果在向前移動(dòng)的過程中出現(xiàn)停頓,分布式系統(tǒng)將出現(xiàn)活鎖現(xiàn)象。在上,這將在沒有向前發(fā)展的“載入/存儲(chǔ)”的程序計(jì)數(shù)器中得到反映。當(dāng)多個(gè)緩存試圖獲得緩存線的所有權(quán)失敗時(shí),這種情況常常發(fā)生。如果在該系統(tǒng)中適當(dāng)?shù)亟⒁粋€(gè)全局串行順序,則每個(gè)代理程序就可以按照這個(gè)順序來處理請(qǐng)求。必須按照公平方式來建立全局串行順序,并且公平地將各種資源(端口、總線、緩沖器)分配給多線程/多

            另一個(gè)與防止活鎖有關(guān)的問題是流量控制。系統(tǒng)的流量控制將限制資源的分配。以ad-hoc方式實(shí)現(xiàn)的流量控制可能導(dǎo)致活鎖,而常見的一種情況就是在響應(yīng)請(qǐng)求的同時(shí),過度地使用重試或否定應(yīng)答(NACK)。

            其它考慮

            除了死鎖和活鎖之外,工程師還應(yīng)該考慮以下的問題:

            緩存層次和DMA:當(dāng)事務(wù)穿過緩存層次時(shí)將產(chǎn)生死鎖問題。通常,我們可以采納在更廣泛的協(xié)議中使用的相同,以便在單獨(dú)的(虛擬或真實(shí))通道/FIFO中保留請(qǐng)求和回復(fù)。

            另一個(gè)問題是確定增強(qiáng)的緩存級(jí)別(L1緩存、L2緩存或L3緩存),以及I/O應(yīng)在哪個(gè)位置上從域進(jìn)入和提取緩存線。通常情況下,包含(inclusion)問題的相關(guān)解決機(jī)在很大程度上依賴于具體的應(yīng)用或系統(tǒng)。通過在系統(tǒng)的事務(wù)集合包含線索(hint),可一致性系統(tǒng)中使用線索來進(jìn)行預(yù)取和數(shù)據(jù)放置。一個(gè)顯而易見的例子就是路由。在路由系統(tǒng)中,需要把外來IP包的頭文件與一個(gè)表進(jìn)行匹配,以該IP包的目標(biāo)緩沖器/接口。通過利用線索對(duì)事務(wù)進(jìn)行分類(如讀出/寫入、命中/不命中策略),可以將這些頭文件放在靠近較低緩存級(jí)別的位置。

            同步和屏障(barrier)操作:許多ISA提供各種必須映射到一致性系統(tǒng)的原子語義(atomic primitive)。較弱的內(nèi)存系統(tǒng)要求一種被稱為屏障的安全網(wǎng)落,它可以在發(fā)送敏感代碼序列期間,強(qiáng)迫發(fā)生某種行為(通常在或線程發(fā)出的“存儲(chǔ)”和“載入”操作之間)。這種屏障一般通過插入ISA支持的專用屏障指令來實(shí)現(xiàn)。一致性系統(tǒng)可能需要通過動(dòng)態(tài)地停滯某些事務(wù)來對(duì)這些操作作出響應(yīng),以支持這些行為。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(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); })();