Також, можливо, вам знадобиться завантажити Прикріплені файли (RED_PILL.exe і Project1.exe), гіпердрайвер і гіперагент, за допомогою яких можна контролювати засобами апаратної віртуалізації все без винятку події, пов'язані з передачею управління процесору.
Архітектура сучасних обчислювальних систем тримається на трьох китах: процесорі, що виробляє маніпуляції з інформацією, сховища інформації та пристроїв завантаження / розвантаження інформації із зовнішнього середовища.
Сховище інформації на даний момент складається з двох частин - Оперативної Пам'яті і довготривалих пристроїв зберігання (вінчестерів). Такий поділ пов'язаний з неможливістю до нинішнього часу об'єднувати властивості швидкісного доступу до інформації з функцією довготривалого зберігання великого об'єму інформації в одному пристрої.
В даний час саме обмеження щодо доступу до ОП є основною проблемою підвищення загального швидкодії обчислювальних установок. Багато на це заперечать, що на їх машинах варто по 2 гігабайти і все прекрасно працює. Але те ж саме говорили і десять років тому, тільки про обсяг 200 мегабайт. І двадцять років тому, але про обсяг в 16 мегабайт, я ще пам'ятаю, як це ж говорили і про 640 кбайт, тридцять років тому.
Що дає оперативна пам'ять об'ємом скажімо в один Терабайт?
В сучасних обчислювальних системах (мається на увазі залізо + ОС) такий обсяг потрібен тільки для серверів, і то не всіх.
Але це вірно тільки в тому випадку, якщо ОП не є довготривалим запам'ятовуючим пристроєм, типу флеш-пам'яті. Якщо ця пам'ять здатна зберігати інформацію тривалий час, як зараз це робить зовнішні накопичувачі, то при такому обсязі можна поєднати функції зберігання інформації і оперативного доступу до неї, тобто всю інформацію зберігати і обробляти безпосередньо в Оперативної Пам'яті.
Сучасні контролери флеш-пам'яті забезпечують час доступу до інформації на рівні 1 Гб в секунду, причому це з одного контролера має 8 каналів для підключення флеш-мікросхем. В реально присутніх в якості комерційних продуктів системах забезпечується швидкість в 2-4 Гбайта в секунду ... Малувато звичайно, до 10-20 Гбайт / сек для традиційних ОП не дотягує.
Другою проблемою є метод доступу до інформації на такий Масивною ОП, оскільки вона має сторінкову організацію з розміром сторінок в 4 Кбайта - процесор з такою пам'яттю безпосередньо працювати не може ...
Але ці дві проблеми вирішуються одним способом - включенням до складу Масивною ОП Кеша з довільним методом доступу до інформації.
Теоретично все піддається реалізації, але індустрія до таких рішень на даний момент не готова, хоча повний набір необхідних технологій і є. Скажімо так, - час їх не за горизонтом, а й трапиться це не завтра ... проблема в мізках і їх неготовність до революційних змін, - подавай їм, бач, що не революцію, - а еволюцію.
Ну й добре, буде еволюція ...
Уже зараз є потреба в ОП об'ємом в терабайт і більше, навіть без функції довготривалого зберігання інформації. Обсяги ОП на серйозних обчислювальних установках в кілька терабайт не рідкість, але це арифметична сума ОП всіх серверів кластера. Одиничний процесор в складі такого кластера не має безпосереднього доступу до всього обсягу ОП, а тільки до невеликої частини, розташованої на його власній материнській платі. У багатьох випадках цього недостатньо, потрібно мати обсяг ОП в терабайтного масштабу саме в прямому доступі будь-якого процесора обчислювальної системи.
Ось цю актуальну задачу і спробуємо вирішити за допомогою емулятора Масивною Оперативної Пам'яті.
Підійдемо до проблеми по-російськи, з допомогою сокири і який там Матері ...
Як сокири будемо використовувати апаратуру віртуалізації, а матір залишимо для загадкової російської душі, готової витрачати весь вільний від основної роботи час на цю академічну тему.
Отже: як накопичувач Масивною Оперативної Пам'яті будемо використовувати SSD-диск, це звичайно неефективно, але це є під рукою.
Підкачування і вивантаження інформації з Кеша здійснюватимемо процесором в режимі хоста, в який будемо виходити за фактом відсутності в кеші необхідної інформації з основного накопичувача.
Гіпердрайвером буде «Червона пігулка», допрацьована для 64бітние режиму, оснащена необхідними обработчиками подій і має власний драйвер для роботи з дисковим контролером на інтерфейсі AHCI.
В результаті програмами хоста Гіпердрайвера реалізується емуляція нового, невідомого досель пристрою під назвою «Масивна Оперативна Пам'ять».
На реальній системі спочатку завантажується Гіпердрайвер, який ініціалізує обладнання, системні таблиці, забирає в монопольне використання контролер флеш-накопичувача (SSD диска) і сам диск. Потім, уже на активній Масивною Оперативної Пам'яті, завантажується операційна система, таким чином, весь життєвий цикл ОС проходить за участю емульованого Гіпердрайвером неіснуючого в реальності обладнання.
Для ОС видно тільки кінцевий результат роботи такого обладнання - збільшений розмір Оперативної Пам'яті:
Операційна система (Windows 7-x64). спокійно починає працювати з такою емуліруемой Масивною Оперативної Пам'яттю, вважаючи, по простоті душевній, її реально існуючої. Правда ця конкретна ОС геть відмовляється працювати з об'ємом оперативної пам'яті понад 196 Гбайт, хоча їй пропонується обсяг 240 Гбайт. При цьому стабільна робота ОС без зависань на призначених для користувача програмах забезпечується при обсязі ОП не більше 150 Гбайт.
У такій емуліруемой пам'яті спокійно йдуть тести на продуктивність ОП. Зрозуміло, що результати цих тестів скажімо так: «від лукавого ..», але тим не менш, важливий сам факт.
Реальний потенціал навіть емульованого за допомогою обладнання віртуалізації неіснуючого пристрою виявився напрочуд життєздатний і високий, і це при скромних 500 Мбайтах / сек пропускної здатності SSD наявному на даному макеті (теоретичних - на практиці не більше 250-300 Мбайт / сек).
Було запущено два тести на випадкове читання в обсязі 1 Гбайт кожен, якісь звернення до пам'яті потрапляють в Кеш, а якісь ні, і їх доводиться довантажувати з флеш-накопичувача. В результаті виходить, що макет забезпечує в тестах пропускну здатність в 3 Гб / сек сумарно.
Це вже навіть більше, ніж може забезпечити серверна плата в режимі NUMA, але не дотягує до продуктивності пам'яті в режимі SMP-доступу.
При цьому потрібно мати на увазі, що цифри пропускної здатності актуальні для аварійного режиму Кеш-промаху, тобто коли в кеші відсутній потрібна сторінка і її потрібно підкачувати з флеш-накопичувача. У нормальному режимі (присутності інформації в кеші) доступ до такої масивної пам'яті за швидкістю і латентності нічим не відрізняється від стандартної ОП.
На наявному в реальності залозі можна створювати цілком успішні комерційні рішення, при ціні 80-100 тисяч рублів за один Тбайт Оперативної пам'яті. Це вже дуже навіть привабливі ціни, при швидкостях доступу навіть вище, ніж можуть забезпечити сучасні 4-х сокетних материнські плати (такі рішення поки можуть містити до 4х64 Гбайта = 256 Гбайт ОП, на швидкості доступу 4-5Гбайт / сек).
Якщо заточити внутрішні прошивки флеш-накопичувачів під специфіку Масивною Оперативної Пам'яті, а ще краще повністю переробити інтерфейс доступу до флеш-накопичувача, то можна отримувати значно більш продуктивні рішення.
Таким чином, стандартна апаратура віртуалізації, в зв'язці з флеш-накопичувачами може використовуватися для створення комерційно успішних рішень для збільшення обсягу Оперативної Пам'яті і довготривалого зберігання в ній інформації.
Наступним етапом, еволюційно, можна переходити і до чисто апаратної реалізації Масивною Оперативної Пам'яті ....