LINUX.ORG.RU
ФорумTalks

А вот битая память, например

 


0

2

Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование? Коды Ридоса-Ломона всякие, вот это вот всё. Чтобы кодировалось-декодировалось внутри процессора, без внешней памяти, чтобы избавиться от курицы и яйца.

Дополнительные баллы получит объяснивший, почему спутники и марсоходы постоянно имеют проблемы из-за сбоев флеша/рам, если всё так просто решается.


Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование?

если сделаешь такой процессор, то может, осталось понять, накой это надо. особенно если можно сразу взять готовую память с ecc и соответствующий проц

Дополнительные баллы получит объяснивший, почему спутники и марсоходы постоянно имеют проблемы из-за сбоев флеша/рам, если всё так просто решается.

перекладывание проблем с одного чипа на другой ничего не решает, CPU тоже не на святом духе работает

t184256 ★★★★★
()

почему спутники и марсоходы постоянно имеют проблемы из-за сбоев флеша/рам, если всё так просто решается.

р-а-д-и-а-ц-и-я

mittorn ★★★★★
()

Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование

Когда-нибудь ECC будет обязательным даже на памяти из address sanitizer'а

mittorn ★★★★★
()

Может ли компьютер работать на оперативе из ашана

Если это не специфичная экзотика, чипы не били молотком, они не жарят сами себя от короткого замыкания и это действительно чипы памяти в нашем классическом понимании, то повышение напряжения и сброс таймингов даст больше шансов на положительный результат, чем весь вот этот геммор, который ты предлагаешь. Ах, да ECC ужа давно придумали.

Дополнительные баллы получит объяснивший, почему спутники и марсоходы постоянно имеют проблемы из-за сбоев флеша/рам, если всё так просто решается.

Потому что высокоэнергетическое космическое излучение и солнечный ветер (в быту, просто радиация) в тупую разрушают материалы. В частности, ЭМИ от подрыва ядерного оружия вызывает пробой в полупроводниках.

DarkAmateur ★★★★
()
Последнее исправление: DarkAmateur (всего исправлений: 3)

Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование?

Программно - нет, не может. Процессор оперирует байтами получаемыми из оперативной памяти. Любую программу реализующую это самое избыточное кодирование - процессору все равно придется где-то хранить, и это «где-то» будет в оперативной памяти из ашана.

ECC работает прозрачно для процессора (хотя и с уведомлением) и основано на банальном контроле четности для слов, хранящемся в дополнительных банках. ЕМНИП оно даже не всегда исправляет, а скорее уведомляет о вероятной ошибке в машинном слове.

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

Дополнительные баллы получит объяснивший, почему спутники и марсоходы постоянно имеют проблемы из-за сбоев флеша/рам, если всё так просто решается.

Ну почему - тебе должны были рассказать еще в школе. Зеленые человечки пакостят же =)

А решается оно ни разу не просто, а очень даже стандартными банальными мерами - рад. защитой, сознательным жертвованием производительности в угоду техпроцессу (чем больше площадь кристалла, тем сложнее зеленому человечку попасть из бластера в ячейку), дублированием, и его разновидностью - голосованием, а так же периодическими велосипедами наподобие такого - https://ibb.co/g4gfVvG (слабо посчитать сколько тута гигобайтов?).

В общем если вкратце, то вся сложность этих кодирований заключается в том, что кодирование тоже нужно кодировать.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)

Господа, а мы кажется помогаем кузькину мать собирать

DumLemming ★★★
()

Может. И в целом работает. Но это увеличивает задержки обращения к памяти и не все ошибки возможно скорректировать.

slowpony ★★★★★
()

Ну будет в панику валиться иногда, подумаешь - пнул его ногой по ресету и дальше поехал.

slowpony ★★★★★
()
Ответ на: комментарий от CrX

«аперитивы» - это «что». «оперативу» - «кому»

vaddd ★☆
()
Ответ на: комментарий от windows10

Любую программу реализующую это самое избыточное кодирование - процессору все равно придется где-то хранить

ECC работает прозрачно для процессора (хотя и с уведомлением) и основано на

Не находишь что эти два соседних предложения противоречат друг другу? Какие принципиальные препятствия аппаратно реализовать в контроллере памяти коррекцию ошибок?

cobold ★★★★★
()
Ответ на: комментарий от cobold

Не находишь что эти два соседних предложения противоречат друг другу? Какие принципиальные препятствия аппаратно реализовать в контроллере памяти коррекцию ошибок?

Давай сперва определимся, какую коррекцию ошибок мы хотим видеть. Ту коррекцию, без которой у тебя съедут пять пикселей на фотке котика? Или ту коррекцию, без которой у тебя над городом жахнет пару мегатонн?

У тебя в памяти есть массив блоков по 64 ячейки. ECC устроена так, что к каждому блоку добавляется одна ячейка, бит хранящий признак четности этого блока. Если у тебя по какой-то причине ячейка меняет состояние и четность перестает совпадать - алгоритм может определить корректное состояние этих 64 ячеек и его вернуть. Если же состояние меняет более одной ячейки - двоичный алгоритм уже не может восстановить исходное состояние, и может лишь сказать что блок содержит ошибку.

Упрощенно говоря, в данном случае идет булевое (в итоге) сравнение содержимого 64 ячеек с 1 контрольной ячейкой и при несовпадении - алерт алерт.

Вот только такое же несовпадение произойдет и в том случае, если высокоэнергетический квант выбъет контрольную ячейку. В данном случае блок тоже пометится как ошибочный. Это плохо, но терпимо.

А вот нетерпимее будет, когда прилетят два высокоэнергетических кванта в разные банки, и так совпадет что один из них перебьет состояние какой-нибудь ячейки в блоке данных (наших 64 ячейках), а второй из них в это же время перебьет наш контрольный бит с четного на нечетный, или наоборот. К чему это приведет - зависит от того, в каком блоке программы это сбойнет, и за что она отвечает. Если это вывод jpeg то на твоем котике кусок рыжей шерстинки превратится в черный, образно говоря. Если это программа предупреждения о ядерном нападении типа if (red_alert==true) {send_rockets_to_ussr();} и вместо false вернется true - то нутыпонел.

И тут ты сейчас такой думаешь, а не ввести ли нам еще контрольные ячейки? Ведь это очевидно.

Ввести можно. Можно даже ввести 1 к 1, т.е. 64 контрольных бита на 64 бита данных. Но к сожалению, помимо необходимости добавлять еще банки памяти и их адресацию, каждое обращение к одной ячейке требует один такт контроллера, а обработка такой ошибки потребует ресурсов в геометрической прогрессии, ведь как я уже писал, пострадать могут не только ячейки данных, но и ячейки контрольные.

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

Какие принципиальные препятствия аппаратно реализовать в контроллере памяти коррекцию ошибок?

Поэтому тезисно:

а) Уязвимость не только блока данных, но и блока коррекции данных;

б) Увеличение требований к вычислительным ресурсам либо снижение производительности;

в) Как следствие увеличение энергопотребления и цены;

г) Архитектурные ограничения. Существующий алгоритм коррекции способен восстанавливать целостность БИНАРНЫХ данных, при том с ограничением не более одного бита на шестьдесят четыре. Другие решения потребуют не математический алгоритм, а программный, который как я писал раньше - придется где-то хранить.

Такие дела.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Всё ещё не вижу ни одного комментария, заслуживающего ответа, но всё же. Речь идёт не об обнаружении сбоя и не об убогой ECC, а о полноценной коррекции с многократным оверхедом. И, опять же, речь идёт о чисто софтовой процедуре, на уровне ОС, выполняющей преобразования обращений к памяти и расположенной исключительно на внутренних буферах процессора, без использования внешней памяти для собственных нужд. Обрабатывать ситуацию сбоя внутри процессора в контексте задачи избыточно, нельзя уберечься ото всего.

Вопрос в основном касается использования широко доступных компонентов в жёстких условиях, примером тому может быть марсианский вертолётик. Разрабатывать специализированный SoC под него не посчитали нужным, но модификация ОС не выглядит чем-то невыполнимым, учитывая невысокие требования к вычислительной мощности.

HE_KOT
() автор топика
Последнее исправление: HE_KOT (всего исправлений: 1)
Ответ на: комментарий от windows10

Боже мой, да сделай тройную или пятерную избыточность и мажорирование ответа от каждого чипа памяти и будет у тебя за тот же такт все отрабатывать

cobold ★★★★★
()
Ответ на: комментарий от HE_KOT

о полноценной коррекции с многократным оверхедом

Ранговый код © гарантирует коррекцию, если ранг ошибки не выше заданного, но с многократным оверхедом.

quickquest ★★★★★
()
Ответ на: комментарий от cobold

Боже мой, да сделай тройную или пятерную избыточность и мажорирование ответа от каждого чипа памяти и будет у тебя за тот же такт все отрабатывать

ОМГ, так мы еще и не знаем как устроена оперативная память. Марш в гугол !

windows10 ★★★★★
()
Ответ на: комментарий от HE_KOT

И, опять же, речь идёт о чисто софтовой процедуре, на уровне ОС, выполняющей преобразования обращений к памяти и расположенной исключительно на внутренних буферах процессора, без использования внешней памяти для собственных нужд.

В случае с x86_64 это не возможно, поскольку даже если каким-то образом ты заставишь ОС хранить данные в TLB, хотя ни ее размер ни ее организация для этого не предназначены - исполняемые процессором команды все равно придется транслировать через ОЗУ, потому что регистры.

Если такое и делать - то на других архитектурах, поддерживающих размещение кода вне оперативной памяти.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Если такое и делать - то на других архитектурах, поддерживающих размещение кода вне оперативной памяти.

Ага ,в прошлом веке я так делал «мини управлятор» на КР1816ВЕ51 ©: 2 банка ПЗУ с аппаратным переключением оных ихним битом контроля чётности. Работало безотказно.

quickquest ★★★★★
()
Ответ на: комментарий от DarkAmateur

Некоторые чипы памяти хотят sweet spot по напряжению, стабильность уХудшается при дальнейшем его повышении.

coji
()
Ответ на: комментарий от quickquest

Ага ,в прошлом веке я так делал «мини управлятор» на КР1816ВЕ51 ©: 2 банка ПЗУ с аппаратным переключением оных ихним битом контроля чётности. Работало безотказно.

Отож. Сделать хитрожопую коррекцию памяти с заменой банок, резервированием ячеек и прочими финтами сделать несложно. Вообще.

Но здесь идет речь о портировании на ЭТО уже существующей не самой простой операционной системы.

windows10 ★★★★★
()
Ответ на: комментарий от HE_KOT

Вопрос в основном касается использования широко доступных компонентов в жёстких условиях,

А в чем вопрос? Можно ли использовать? Можно. Существует овердохрена алгоритмических методов выживания вычислений в жестких условиях. И это не только коды «Ридоса-Ломона», а чаще всякие виды дублирований (слово «дублирование» не очень походит, скорее триплирование, квадрирование и так далее) с разносом вычислительных действий во времени и пространстве. Главное - обеспечить на конструктивно-аппаратном уровне долговечность железа и интенсивность ошибок не выше заданной. А дальже мажорируйте как умеете

vaddd ★☆
()
Ответ на: комментарий от windows10

Но здесь идет речь о портировании на ЭТО уже существующей не самой простой операционной системы.

откуда это требование появилось? сам придумал?

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

ведь всей остальное системе не требуется ничего знать о том, что память будет изнутри устроена как-то иначе.

n_play
()
Ответ на: комментарий от n_play

откуда это требование появилось? сам придумал?

Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование?

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

man JEDEC.

man FSB/DMI/HT

Хотя конечно идея переходника с USB флешки в DDR5 DIMM - забавная :))

windows10 ★★★★★
()
Ответ на: комментарий от windows10

ECC работает прозрачно для процессора (хотя и с уведомлением)

Эта функция практически везде отключена.

lenin386 ★★★★
()
Ответ на: комментарий от cobold

Никогда не замечал, что количество чипов на модуле кратно 8? Условно говоря и сильно упрощая, каждый чип отдаёт по биту в байт. И как ты собрался мажорировать ответы от чипов?

lenin386 ★★★★
()
Ответ на: комментарий от HE_KOT

Стандартная для 70-х годов схема : компьютер загружается из ПЗУ, тестирует оперативу, работает с рабочей областью, если может. Ничего более инновационного придумано не было.

lenin386 ★★★★
()

Есть даже реальный пример, какие-то студенты собрали рабочую систему из поврежденных компонентов. Это было давно, ссылку я уже не найду, потому что точно помню, что читала на бумаге. Может даже в «Компьютерре».

Irma ★★
()
Последнее исправление: Irma (всего исправлений: 1)
Ответ на: комментарий от lenin386

Полагаю товарищ коряво выразился. Мажорирют не ответы от одного чипа. Мажорируют блоки памяти. Мажорируют вычисления в блоках.

И вообще вы тут все зря уперлись в память. «Там» сбоит все и везде, а не только память. Сбоят процессоры - и в кэшах, и в алу. Сбоит силовая часть - питание и управление. Причем сбои в силовой части самые опасные.

vaddd ★☆
()
Ответ на: комментарий от vaddd

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

HE_KOT
() автор топика
Ответ на: комментарий от lenin386

Владимир Ильич не тормозите! Воочую видел модули с 4 чипами, с 9 чипами, это что касается димов для ПК. Но речь то про память на некоем специальном вычислителе. На видеокартах, например, бывает 6 чипов. А на какой нить ембедщине и вовсе один

cobold ★★★★★
()
Ответ на: комментарий от cobold

4 чипа на модуле - это так называемая двухбитовая память. Один чип маскируется под два. Очень дешманское решение, сути это не меняет. 9 чипов - это ЕСС, это другое. Там 8 битов + 1 чётности. Работает также, просто есть контроль на аппаратном уровне. DRAM везде работает работает одинаково, она в принципе одинаковая. И на видеокартах это таже DRAM. На встраиваемых - там скорее всего хитрый контроллер памяти, который имитирует DRAM как SRAM. Он _очень тормозит доступ к оперативе и ничего не решает, кроме цены.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 3)
Ответ на: комментарий от HE_KOT

Проблема силовой части не в неудачном защелкивании. Проблема в катастрофическом выходе из строя - силовая часть работает при других токах и напряжениях и пробои приводят к совсем иным эффектам, чем в логической части

Мотивацию я уже фыр - в большинстве сообщений о сбоях фигурирует память.

Не постигайте технику посредством журналистов и официальных релизов. Память - это доступно и понятно простому человеку. А для инженера/программиста проблемы с памятью - самые управляемые и легкокомпенсируемые

vaddd ★☆
()
Последнее исправление: vaddd (всего исправлений: 1)

Может ли компьютер работать на оперативе из ашана, испозьлуя избыточное кодирование?

Он может и без этого работать, но программы будут иногда некорректно выполнятся, а также с некоторой вероятностью может падать операционная система.

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 1)
Ответ на: комментарий от Leupold_cat

А, так автор хочет использовать не только память из ашана, но и программы и операционки тоже из ашана?

vaddd ★☆
()
Ответ на: комментарий от n_play

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

Rambus делали. Латентность увеличивается. В результате - прирост производительности был не всегда и не везде.

Всё имеет свою цену.

tiinn ★★★★★
()
Ответ на: комментарий от windows10

еще раз, для напористых сельских дурачков:

тебе никто не мешает сделать набор хоть из 8 планок, хоть из скольки, которые будут работать параллельно (т.е. «многоканальная» архитектура) типа как «хаб». но для системы это будет выглядеть как 1 планка.

а потом развести отдельную плату под это дело, где кроме самих планок надо будет еще FPGA набросать «скетч», который посути будет проксировать обращение к модулю памяти и рассылать одновременно на все те модули параллельно. а потом будет забирать результаты (также параллельно) и отдавать наружу (быстренько собрав из всей кучи наиболее достоверный).

интерфейс подключения модулей и работы с ними тот же самый останется.

все дополнительные задержки и все чем тут местные аналитики пугают, будут только на проксирование комманд посути (потому что в остальном, модули те же самые будут) и формирование ответа.

(возможно придется немного пободаться с рефрешем, но это все решаемо)

Хотя конечно идея переходника с USB флешки в DDR5 DIMM - забавная :))

откуда ты этот словесный понос берешь? и какая связь с тем что мы тут обсуждаем?

n_play
()
Ответ на: комментарий от n_play

все дополнительные задержки и все чем тут местные аналитики пугают, будут только на проксирование комманд

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

vaddd ★☆
()
Ответ на: комментарий от n_play

а потом развести отдельную плату под это дело, где кроме самих планок надо будет еще FPGA набросать «скетч», который посути будет проксировать обращение к модулю памяти и рассылать одновременно на все те модули параллельно. а потом будет забирать результаты (также параллельно) и отдавать наружу (быстренько собрав из всей кучи наиболее достоверный).

Ну и херни ты наговорил. Лень объяснять. Лучше поинтересуйся у гугола или чатГПТ, почему твой компьютер поддерживает только DDR4, а не скажем DDR5 и одновременно DDR2.

интерфейс подключения модулей и работы с ними тот же самый останется.

И шо, я таки смогу вставить это в ноутбук?)

все дополнительные задержки и все чем тут местные аналитики пугают, будут только на проксирование комманд посути (потому что в остальном, модули те же самые будут) и формирование ответа.

Мсье всего лишь путает интерфейс с шиной, отсюда каскад последующих глупых идей.

Чтобы тебе «проксировать команды», на твоей плате должен будеть находиться микроконтроллер, работающий на частоте шины + частоте твоей собственной шины которую ты собираешься транслировать+10% на собственные нужды. Если у тебя на компьютере используется DDR3 и внутри твоего колхоза тоже DDR3 - суммарная вычислительная мощность твоего МК (как одноядерного, так и несколькоядерного) должна быть 1200+1200+240 = +\- 2600 МГц. Чё, забыл что мы говорим о бинарном коде, а значит дискретизация преследует нас повсюду?)

При первом же обращении к памяти, которая не сможет ответить в течение тактового импульса - твой контроллер памяти (вшитый в процессор естественно) попросту запишет в себя FAIL и твой спикер начнет систематично пищать долгим сигналом.

(возможно придется немного пободаться с рефрешем, но это все решаемо)

Напуркуа тебе рефреш, если ты выше говорил за интерфейс и проксирование? Рефреш остается на твоей совести, если он вообще нужен, а то мало ли, вдруг ты будешь использовать SRAM а не классическую DRAM.

откуда ты этот словесный понос берешь? и какая связь с тем что мы тут обсуждаем?

Перечитай сабж. Здесь человек спрашивает об обычной планке из говномаркета в обычном компьютере оттуда же, а значит все последующие условия определяются этими двумя.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

SRAM как сущность давно умерла. Она существует только в виде ассоциативной памяти в виде кеша на процессоре. Если попытаться впиндюрить классический модуль SRAM в современную ЭВМ, она только начнет показывать производительность на уровне 20 лет назад. Рефреш тоже давно в прошлом. Вся DRAM уже 30 лет регенеруется сама.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от HE_KOT

На refresh нужно лишний цикл. Лишний Цикл - это не дохрена ли ? Ты ведь понимаешь, что сейчас принято большинство команд делать быстрее, чем за такт? А тут получается минимум два. Товарищ, этот лишний цикл рефреша всем мозолил глаза давно. SRAM - таже история. Классичеcкая SRAM отвечает за цикл, что сейчас много. Ядер ведь сейчас тоже много.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 2)
Ответ на: комментарий от Andrew-R

это точно имеет смысл? Мне казалось, все контроллеры уже лет 200 как считают контрольные суммы, и «поплывшие» данные просто не считываются.

HE_KOT
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)