Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29

Менеджер по управлению памяти для серверной платформы

05.10.2018, 14:09. Показов 2949. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как писать менеджер по управлению памяти для серверной платформы ведь там регистровая память и ecc что надо знать и как эти особенности работают? с точки зрения ассемблера что и как писать? информации для ассемблера не хватает. если есть мануалы на русском тоже будет хорошо.
и еще можно-ли задвинуть ecc вообще не обрабатывая эту информацию, я так понял что эта технология отжирает много ресурсов у платформы?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2018, 14:09
Ответы с готовыми решениями:

Помогите с выбором серверной платформы
Здравствуйте. Я новичок в теме серверных платформ. И передо мною встали вопросы выбора серверной платформы, а именно: какую серверную...

Выбор серверной памяти
Какую пямять выбрать? Оперативная память 4 Gb DDR2 PC5300 (667MHz) Kingston (KVR667D2D4F5/4G) FB-DIMM ECC Fully Buffered CL5 dual...

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти))
Вот тут появилась такая интересная задача: требуется сделать программу которая управляет 1024 ячейками памяти по 8 байт каждая. т.е. за...

15
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
10.10.2018, 03:25  [ТС]
хоть какую то информацию по программированию серверной памяти кто подкинет? как -то ведь программируют на ассемблере сервера? или с точки зрения написания программ нет разницы в написании ядра для серверного железа и железа обычного пк? я еще плохо разбираюсь в программировании нужна помощь.
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
10.10.2018, 16:06
Цитата Сообщение от krazkras Посмотреть сообщение
ecc что надо знать и как эти особенности работают?
Работают аппаратно.
Цитата Сообщение от krazkras Посмотреть сообщение
с точки зрения ассемблера что и как писать?
Как обычно.
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
11.10.2018, 06:26
Цитата Сообщение от krazkras Посмотреть сообщение
ведь там регистровая память и ecc
ошибки ECC обрабатываются контроллёром памяти в фоновом режиме на аппаратном уровне, а программирование самого контроллёра памяти прогеру не доступно (если не считать некоторых настроек). Там просто добавляется ещё/один бит к адресу столбца (в зависимости от типа памяти, 13 или 14-ый), который и должен поддерживать контроллёр. Иначе обработки ECC не будет.

А регистровая память не имеет прямого отношения к ECC - это буферная память, когда между планкой и контроллёром устанавливается доп.буфер. Альтернативой 'Registered DIMM' служит память типа 'Unbuffered DIMM', которая не имеет такого буфера и используется в десктопах. Другими словами, UDIMM тоже может быть с коррекцией ошибок ECC.
1
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
17.10.2018, 08:28  [ТС]
то есть никаких обработчиков прерываний для менеджера памяти писать не надо? воткнул планку с ecc, контроллер серверной мати или память сами будут все ошибки исправлять? и разницы в написании менеджера памяти под буферную память нет с десктопной памятью?
Я где-то читал про то что какие-то различия есть при написании ОС для серверной и десктопной версией компа. Но статья потерялась, и что там было забыл. теперь ищу инфу как писать менеджер память для ос с прицелом на сервер. инфы жутко не хватает.
какая вообще разница в написании прерываний и работе с памятью в написании ос под сервер? или разницы вообще нет? если забыть про особые условия работы сервера и десктопа то можно ос писать один в один как для десктопа?
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
17.10.2018, 10:15
Лучший ответ Сообщение было отмечено krazkras как решение

Решение

Цитата Сообщение от krazkras Посмотреть сообщение
воткнул планку с ecc, контроллер серверной мати или память сами будут все ошибки исправлять?
может ещё жирным шрифтом написать, что -ДА-
ECC автоматом исправляет 1-битные ошибки (SEC - Single Error Correction)
и просто определяет 2-битные DED (Double Error Detection).

Если ошибка SEC, то неправильный бит исправляется DRAM-контроллёром автоматически,
если DED, то детектируется и сообщается ОС в виде взведённого бита в регистре MSR. Обрабатывать или нет 2-битную ошибку зависит от твоего настроения - хочешь пускай её в игнор и получишь винегрет из данных, а если нет - то процессоры с поддержкой памяти ECC имеют вроде регистр-счётчик MSR, который считает кол-во DED-ошибок и определяет номер глючного чипа на модуле DDR-DIMM. (имена регистров не помню на вскидку)

Вот тебе даташит на контроллёр памяти, где описана подноготная ECC..
только непонятно, зачем это тебе?
Вложения
Тип файла: zip 2015---DDR3 memory controller.zip (466.2 Кб, 4 просмотров)
2
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
17.10.2018, 13:09  [ТС]
ну я примерно по есс такое что-то и читал. сенк за пояснение и информацию. а по поводу буферед памяти там все чисто аппаратно или тоже как -то на прерывания влияет или какие нибудь отличия в написании менеджера памяти есть?
надо это потому что есть желание писать для серверной системы с возможностью масштабировать, но дешевле зеоновские процы на мать обычную десктопную, но память серверная стоит дешево и ее много. дак и вопрос насколько написанный код будет отличаться для десктопа и сервера. Ну а чтоб разобраться надо понять мат часть. и поиск ничего не дал. точнее выходит информация для юзеров, а не тех кому важны внутренности. По серверному железу мало информации.
Ну а вы эксперт подскажите с чего начать, и имеет-ли смысл искать. теперь буду разбирать регистры работы с памятью. если буферная память не требует особых познаний(особого кода) то можно писать менеджер, включить в него обработчик прерывания есс и быть счастливым
0
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
29.10.2018, 12:57  [ТС]
меня интересует в первую очередь ddr4 lrdimm, rdimm чем отличаются? И еще можно мануал на русском я половину по английски не понимаю.

Добавлено через 8 минут
забыл. самое главное. при подключении планок памяти в серверную мать там надо втыкать особым образом, чтоб на каждый процессор на каждое ядро был быстрый доступ, а что надо делать чтоб на определенное ядро в нужную планку записывалась нужноя прога, чтоб на прямую был доступ а не через QPI? ведь не вручную выяснять где в адресном пространстве кончается 1 планка и начинается планка памяти другого проца.
Подробно объясните этот алгоритм.

Добавлено через 1 минуту
если можно с регистрами.
0
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
01.11.2018, 07:36  [ТС]
подскажите пожалуйста ответ

меня интересует в первую очередь ddr4 lrdimm, rdimm чем отличаются? И еще можно мануал на русском я половину по английски не понимаю.

Добавлено через 8 минут
забыл. самое главное. при подключении планок памяти в серверную мать там надо втыкать особым образом, чтоб на каждый процессор на каждое ядро был быстрый доступ, а что надо делать чтоб на определенное ядро в нужную планку записывалась нужноя прога, чтоб на прямую был доступ а не через QPI? ведь не вручную выяснять где в адресном пространстве кончается 1 планка и начинается планка памяти другого проца.
Подробно объясните этот алгоритм.

Добавлено через 1 минуту
если можно с регистрами.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
01.11.2018, 08:08
krazkras,
продублируй, пожалуйста, сообщение от 29 октября еще пару раз, а то с первого раза запомнить не получается...
1
01.11.2018, 08:46

Не по теме:

Давайте уважительнее относиться друг к другу.
Формально, krazkras ничего не нарушает. Он поднял интересующую его тему. Хотя корректнее было бы записать одной фразой, уж не знаю какой - правила предлагают нагло настойчивый вариант "Тема актуальна" - и мне он не нравится.

0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
01.11.2018, 09:21
ФедосеевПавел,
обычно добавляют краткое "Up" и тема "всплывает" в ТОР
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,913
Записей в блоге: 12
01.11.2018, 09:26
Да, так нейтральнее и меньше раздражает.
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
02.11.2018, 08:21
Цитата Сообщение от krazkras Посмотреть сообщение
можно мануал на русском
на русском - инфы по этой теме мало,
поэтому установи нормальный браузер [аля Google Chrome] и получишь встроенный переводчик. Есть и онлайн трансляторы: https://translate.google.com/ - юзаю его в основном для PDF-доков на инглише.
1
0 / 0 / 0
Регистрация: 07.04.2018
Сообщений: 29
05.11.2018, 10:59  [ТС]
я знаю сейчас у ддр4 контроллер в процессоре но тем не менее что нет никакого мануала по ddr4. но даже там я почти уверен нет четкого ответа как именно записать программу в ту планку памяти в которую надо, и именно привязанную к тому процессору которому надо.
поэтому прошу помочь мне идеей и информацией откуда взять решение. может вы лично с этим работали и вообще знаете как запрограммировать аппаратную часть именно так.
ну а если лично не сталкивались и нет даже идей как это сделать то хотя бы мануалом помогите.
но прошу писать по теме, а не обсуждать мою нубскую личность. если бы кругом было полно форумов по серверным платформам и аппаратная часть была б, как нефиг делать, я бы читал а не писал!!!!!!
0
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6213 / 2447 / 403
Регистрация: 29.07.2014
Сообщений: 3,178
Записей в блоге: 4
05.11.2018, 18:27
Цитата Сообщение от krazkras Посмотреть сообщение
нет никакого мануала по ddr4. но даже там я почти уверен нет четкого ответа как именно записать программу в ту планку памяти в которую надо
..с чего ты взял, что нет мануалов? гугли "даташит" и всё найдёшь.
А с другой стороны, ты (с сомнительным уровнем знаний) хочешь объять необъятное, поэтому и не знаешь, что именно нужно искать. Вот тебе несколько наводок, от которых можешь плясать..

Есть архитектуры SMP (симметричная много/процессорность) и NUMA (неравномерный доступ к памяти). Первая - это наши машины с одной/разделяемой памятью и несколькими процессорами, а вторая - как-правило серверная, где каждому процессору по-памяти:
Code
1
2
3
4
5
6
7
8
        S M P                      N U M A
   _____     _____             _____     _____ 
  | CPU |___| CPU |           | CPU |   | CPU | 
  |_____| | |_____|           |_____|   |_____|
 _________|_________            | |__QPI__| |
|        MEM        |         __|__       __|__
|___________________|        | MEM |     | MEM | 
                             |_____|     |_____|
При включении многопроцессорной машины, биос назначает всем процессорам свои номера, и делает один из них загрузочным 'BootStrap'. Конфигурация запоминается в таблице ACPI, от куда система в процессе работы может читать эти данные.

В SMP архитектуре шина-памяти одна, и для доступа к ней процики устраивают т.н. гонки, а система может успокаивать их по-разному - например выделять каждому CPU по кванту времени, или принудительными спин-блокировками остальных процессоров инструкцией(Lock), клонировать участки памяти, etc. Здесь нагружать отдельный CPU конкретной программой можно, только это геморно и приведёт к падению производительности, поскольку такой подход не предусматривался разрабами ОСи. Процессоров добавили для того, чтобы они параллельно выполняли одну/несколько задач.

В случае с NUMA картина меняется. Здесь уже несколько системных шин, поэтому физические процы не ругаются за шину, хотя ядра каждого из них по-прежнему работают в режиме SMP. Память тут считается неразделяемой, однако при больших нагрузках данные одного процессора вполне могут оказаться в памяти соседа. В этом случае, на поверхность всплывает проблема когерентности кэш-памяти, поддержка которой происходит по внешней шине QPI.

Таким образом, если ты в NUMA хочешь запустить программу на определённом процессоре с его памятью, тебе нужен планировщик потоков, который по данным из таблицы ACPI, будет направлять твой поток куда-нужно. Ещё можно пойти на таран, и тупо останавливать второй проц по 'HALT', тогда поток сам направится в нужное/свободное русло.

Так выглядит теория, с которой делятся с тобой:
М.Руссинович, Д.Соломон: "Внутреннее устройство Windows" (6-е издание)
Джеффри Рихтер: Windows для профессионалов (4-е издание)
..и гугл, по запросу "архитектура NUMA"
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2018, 18:27
Помогаю со студенческими работами здесь

Менеджер памяти
Пишу менеджер памяти и возник вопрос насчет реализации free. Как бы из функции убить переданный указатель ? то есть занулить его......

Менеджер памяти
Хочу написать свои аналоги malloc free. Загвоздка в том, что я не знаю как освобождать потом память, ведь VirtualFree не может освободить...

Менеджер памяти
Доброго времени суток. Столкнулся с такой проблемой... Необходимо написать эмулятор менеджера памяти, т.е. создать какой нибудь...

DLL и менеджер памяти
Добрый день. Написал библиотеку на XE6, в которой подключаюсь к веб-сервису и возвращаю record. В проекте на Delphi2006 подключаю эту...

Менеджер сегментированной памяти
Добрый вечер. Очень нужна помощь. Есть менеджер сегментированной памяти. Все вроде бы работает нормально, но преподаватель сказал, что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru