2011-03-23 60 views
0

我正在開發一個研究項目,爲多核(1000+)芯片開發OS。我們正在考慮實現一個虛擬內存類型系統來實現內存權限(讀/寫/執行),這將允許跨內核安全地共享內存。超出頁表的虛擬內存

基本上我們需要一個系統,使我們能夠將'頁面'標記爲可由另一個可寫的核心子集讀取......等等。我們不打算做地址翻譯(至少在這一點上),但我們需要一種有效設置和查詢權限的方法。它將成爲一個具有簡單TLB風格緩存的軟件填充數據結構。

我們的直覺是,簡單地爲每個核心複製頁表將會太昂貴(就內存使用而言)。

哪種數據結構對這類問題有效?

感謝

+0

什麼是你想要的最小頁面大小? – Zimbabao 2011-03-24 05:56:27

+0

我們很可能會看相當大的頁面,但在這一點上我們沒有考慮,我們可能會在看1MB-32MB之間的頁面可能更小,也許更大的一個確切的數字。我們也有興趣在允許多個頁面大小... – luke 2011-03-24 14:23:20

+0

一下怎麼樣大小的頁頭1K-4K設置權限爲每個核心/套核(如果他們是修復)。這將簡化查找和設置,應該很容易實現。 – Zimbabao 2011-03-24 15:01:10

回答

0

你有沒有看到了如何共同多核(2-12核)CPU的解決這個問題?

您是否知道在這些常見的多核CPU中使用的解決方案在哪裏/何時/爲什麼/如何 - 不會擴展到1,000+個內核?

換句話說 - 你可以量化現有的解決方案有什麼問題,它正在工作,並且一直在工作,CPU核心數爲< = 12?

如果您知道這一點 - 那麼答案就會比您想象的更接近,因爲它只需要瞭解AMD /英特爾如何在較小規模上解決問題 - 以及需要什麼使他們的解決方案在更大的解決方案上工作也許更多內存的表格,算法調整等)

看看AMD公司/英特爾的數據結構 - 然後用這些數據結構爲1,000多個核心構建一個軟件模擬器,並查看您的模擬的位置/時間/原因和方式失敗 - 如果失敗...

理想情況下,用戶可選數量的內核構建您的模擬器,然後使用不同數量的內核進行測試,測試和測試 - 按照您的方式工作,注意瓶頸方式。

你的模擬器應該工作完全以及AMD(如果你使用AMD的數據結構)或英特爾(如果您正在使用英特爾的數據結構) - 在相同核心數量爲他們的芯片之一...因爲它應該證明THEY(AMD/Intel)正在做他們正在做的事情(因爲它們是),並且因爲這將有助於證明您的仿真程序正在模擬正確模擬 - 在特定數量的內核上。

祝你好運!