techwork: (Default)
techwork ([personal profile] techwork) wrote2022-04-30 07:52 pm

Максимум из XP

понимаю что никому не нужно.
Но я таки установил какое максимальное количество памяти реально может адресовать Windows XP с hal.dll распакованной из HALMACPI.DL_ и справкой ntkrpamp.exe в hex редакторе. Метод ещё времён Windows XP-64 когда люди не хотели её ставить но хотели получить обработку всех 4 гигабайт. А потом и 8 гигабайт с выходом двухгиговых планок.

Максимум это 12 гигабайт на самом деле - не важно 8+4 или 4+4+4 .

И связано это с тем что область выше 12 гигабайт во времена XP считалась служебной. По первых там было адресное пространство шины PCI у таких южных мостов как ICH7 и многих той же эпохи. А во вторых по скольку это адресное пространство служебное то оно использовалось видеодрайверами для обращения к ресурсам видеокарты. Иногда это повыше в адресной структуре но чаще всего 12.

Да если отключить в биосе там где возможно ту часть адресного пространства что используется для работы с железом можно воткнуть в старые в платы 16 гигов и они будут нормально работать. Но вот драйвера под Windows XP работать без синих экранов не будут. И это связано именно с драйверами этой ОС.

Да на такую плату если процессор 64 бита то можно установить Windows 7 64 бита и она будет видеть 16 или 14 гигов и работать с ними без сбоев. Ибо драйвера под неё были написаны по другому.

Но даже если Windows 7 там будет видеть 16 гигов и работать с ними то Windows XP - синий экран.

только если в системе 12 гигов то они будут работать одинаково стабильно и видеть 12 гигов. Опять таки не забыть о модификации ntkrpamp.exe если два и более ядер и ntkrnlpa.exe если одноядерник.

Так что не смотря на то что XP 32 бита в стоке и 4 гига видит не полностью. Она реально может работать с 12 гигами полностью с одинаковой стабильностью. Просто эта функция в ней по умолчанию отключена. А вот больше 12 это то что работать нормально не будет. Более того очень часто сам чипсет не сможет обработать две планки по 8 гигов или 4 планки по 4 гига. При том что одну 8 гиговую он нормально видит.

Потому что вся 900 серия чипсетов интел G31 G41 они все физически ограничены 12 гигами именно своими мостами ICH6,ICH7,ICH8,ICH9, и только ICH10 был избавлен от этого ограничения. Аналогично и у АМД.
Да есть хак который позволяет изменить биос но .... работать нормально это не будет.

Собственно именно поэтому больше 12 гигов Windows XP видеть и не должна - в её эпоху железо настольное не серверное не могло даже адресовать более 12 гигов памяти чисто физически. хотя PAE-36 может адресовать 64 гигабайта, но если просто сделать ключик /PAE в boot.ini вы получите синий экран. Потому что драйвера. режим этот чисто для серверного железа. XP и не должна в нём работать. и отключили его не потому что "злые маркетологи" а потому что не было рыночного соглашения о том как размещать адреса физических устройств и писать драйвера. Исторически всё пришло к 12 гигабайтам хотя в реальности там ещё хвост почти на гиг всегда и больше иногда. А не имея соглашения разработчику пришлось бы нести ответсвенность за падение в синий коврик. Но теперь спустя время можно понять что консенсус по драйверам сложился именно так - 12 гигов это законная часть для оперативной памяти. И если кто то XP ещё использует он может использовать её с 12 гигами и PAE-36 понимая что не будет синих экранов. А больше будут даже если железо уже и новее например P45 с официальной поддержкой 16 гигабайт. Но вот только драйвера для XP не смогут нормально на ней работать с включенной PAE-36 если в системе установлено более 12 гигов памяти. Хотя железо само физически это может. Но только с Win7.

[identity profile] archie-owl.livejournal.com 2022-04-30 10:12 pm (UTC)(link)
Карта у меня Radeon RX590
Про "одним куском" я понимаю. Но мне, как системному программисту, было интересно именно двухпроцовую систему погонять. Думал потестировать на ней разные варианты синхронизации доступа к данным. Да как-то так и не сподобился. Единственно что — погонял свои решения интеловских задач на параллельную обработку — я когда-то поучаствовал в их конкурсе. Кажется, в 2009м году. Было интересно, я даже 125 баксов призовых получил — три моих решения заняли второе место по скорости.

[identity profile] techwork.livejournal.com 2022-04-30 10:43 pm (UTC)(link)
???? — во всем материнках 21 века адвизором является чипсет. Как системный программист ты видишь только потоки. В скольких физических процессорах они это совершенно не важно. С точки зрения ОС будь то HT или много камней это пофиг, для ОС это просто потоки. Нагрузка распределяется просто по потокам.

чтобы увидеть разницу ты должен быть разработчиком чипсетов.
Так же разница есть между лезвиями- по сути лезвия в стойке обычно соеденены в кластерную структуру, реже в сетевую ифраструктуру влючая меш сеть.

Погонять на паралельную обработку в реальных задачах — просто пока ты в масштабах одного камня или чиплета не важно какой размерности то потоки лезвие не перекидывает на другие камни — ибо в одном камне быстрее, когда камня не хватает оно кидает поток на другой камень.
На каждо лезвии работает алгоритм поиска пути.
Но если это просто два камня то там всё просто — один заполнен кидаем на второй. И делает это адвизор согласно своему буферу предсказания ветвлений, а если нет такового то просто последовательно.

То есть при создании задачи на 36 потоков когда в камне их 32 произойдёт просто вытеснение четырёх потоков на второй камень. При этом если это речь идёт о не шибко умной системе а таких большинство то просто последовательное поступление комманд. Что выразиться в произвольных лагах во времени. Но они же есть и треадрипперах амдшных когда перекидывание на крест происходит. Просто IO выравнивает всех по этому перекрёстному перекидыванию. Чтобы RTOS работали без сбоя такта. Хотя для реального RT с жёстким контролем времени в теории они не пригодны для этого ARM Cotex R — это когда нужна абсолютная синхронность тактов обработки. Но в тоже время и пригодны — если подключены к системе со сверхточными часами. В отличии от амд арм может это и без на столько точных часов с обычными системными часами. Ну а если сделать и то и другое и температурный контроль и контроль параметров элементов то можно получить абсолютно точную систему. Правда не понятно нахрена такая точность ? Разве что звездолётами управлять.

У меня в своё время была куча майкрософтских сертификатов в том числе и на всякие дебильные конкурсы — ничего мне это не дало. не в той стране родился.

Так что я не понимаю что именно то хотел увидеть ? Что когда потоков больше чем на один камень то скорость вычислений падает потому что нет общего буфера предсказания ветвлений ? Ну да падает. И что ? она же падает в общем. Почему собственно нет смысла делать 33 потока или 34 потока если в системе 32 поточные камни. Если не заводить три лишних потока то на 32 отработка будет быстрее.
Но 36 уже имеет смысл.

[identity profile] archie-owl.livejournal.com 2022-04-30 11:06 pm (UTC)(link)
Я это всё примерно понимаю. Хотелось в живую посмотреть. Не знаю зачем. Из любопытства. Мне нравится понимать как железо работает, а лучший способ понять — построить грамотный тест и его погонять так и сяк. Но ты прав, я так и не придумал грамотный тест.

Я больше думал про кеш и его синхронизацию, чем про распределение тредов по камням.

А в конкурсах я участвую чисто из интереса. Ну и доказать себе что "я могу!" :) Так-то оно мне тоже никаких особо бонусов не приносит. В последнее время в хакерских конкурсах участвую. Интересно очень. По 16-18 часов в день сидел — не мог оторваться. Но я только реверс-инжиниринг беру, всякие веб-атаки меня не цепляют.