overlay技術:
分類: 大體分為軟體overlay 硬體
本文主要介紹 軟體實現overlay。至於硬體實現的方式或者說策略,目前能找到的資源有限,且自己還沒有弄清楚,所以當前情況下暫不介紹。
所謂overlay 即 實現 記憶體區域的重複利用。ram在soc上,是乙個快速但單位面積較大的元件,而單位面積較大代表成本較高。有乙個降低成本的方法,是將程式**放在較慢但單位面積較小的flash或rom上,當系統需要執行裡面的某些程式**時,才載入到記憶體裡執行。
overlay區域可是放置 rw data 也可以是 ro data。
需要注意的前提是:
1、模組a 和 模組b 不同時存在使用的可能。
2、當要替換掉 overlay 區域內的資料時,若有必要,請軟體實現儲存。
3、實現overlay的rw 、ro 應當是位置無關的。
4、overlay的相關區域的移動儲存由軟體負責實現。
下面以arm m系列的 sct檔案進行說明:
lr_irom1 0x00000000 0x0000f000
er_irom2 +0 0x0000ee00
rw_iram1 0x20010000 0x00003ff0
rw_iram2 0x20013ff0 uninit 0x00000010
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; overlay rawdata buffer0 and someoverlay function
rw_ovelay_raw0 0x20020000 overlay 0x2000
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; overlay rawdata buffer0 and someoverlay function
}lr_iromx 0x0000f000 0x0000300
er_iromx 0x20021000 overlay
}以上 檔案中,ram區域 0x20020000 ~ 0x200220 實現了overlay機制。其中,初始化存在的是touchdataprocesslib.o(rawdata0)的內容。
當需要overlayfunc.o 中的功能時候,則由軟體將相應的 overlayfunc.o (funcinfohead) 、 overlayfunc.o (+ro) 複製到
對應的overlay區域。 這樣就可以在0x20020000 ~ 0x200220 訪問到overlayfunc.o 的內容。
50 overlay 如何實現跨主機通訊?
上一節我們在 host1 中執行了容器 bbox1,今天將詳細討論 overlay 網路跨主機通訊的原理。在 host2 中執行容器 bbox2 bbox2 ip 為 10.0.0.3,可以直接 ping bbox1 可見 overlay 網路中的容器可以直接通訊,同時 docker 也實現了 dn...
Stream ResultSet實現原理與應用實踐
這篇我們來深入聊聊stream resultset的實現原理和應用實踐。原理解析 stream resultset的實現方式mysql官方文件中沒有說明,這裡我們只有自食其力閱讀原始碼了。首先和組內mysql大牛一起看了mysql select過程原始碼,這裡就不貼 了,直接說結論 mysql中沒有...
LVS Keeplived原理與實現
常用的軟負載均衡由如下幾種 nginx keeplived lvs keeplived haproxy keeplive dns負載均衡 lvs是四層負載均衡,也就是說建立在osi模型的第四層 傳輸層之上,傳輸層上有我們熟悉的tcp udp,lvs支援tcp udp的負載均衡。lvs的 主要通過修改...