LINUX.ORG.RU
решено ФорумTalks

Если SSD такие медленные, почему никто не выпустит гибрид SSD+DRAM?

 , , , ,


0

3

Типа как в SSHD - базой будут чипы Flash, а под кэш, сравнительно небольшого объёма(около 16 ГБ), будут выделены быстрые чипы DRAM. Где-то читал, что DRAM даже дешевле производится, чем Flash-память. Или такое нигде не нужно?

Чтобы не пугать жизнь повидавших, поясню, что вопрос не про "Мне не хватает скоростей SSD(даже NVMe), почему не встроить в диск модуль DRAM?", а про "У DRAM-памяти скорость доступа к ячейке значительно выше, чем у флеш-памяти. Почему не использовать DRAM-модуль как кэш?"

P.S: Забыл, что такое уже применяется, спасибо людям из комментариев, что напомнили 🙏



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

Так те 16 гигов должны достаточно быстро сгрузиться во флеш. Чипы находятся достаточно близко, а не RAM->CPU->Flash

Во-первых с чего бы?

Во-вторых откуда они узнают что компьютер выключается? Ни SATA ни NVME не предусматривают сигнализирования?

В-третьих, если оно все настолько быстро, то смысл этого кеша, если можно сразу писать на флешку?

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

а одновременно?

И одновременно тоже, они на разных линиях висят.

наивный

С SATA это работало. Я же говорю что затык уже в ядре, а не пропускной способности.

Также, как и на всех hdd последние лет 30 - кэш write-through

На HDD кеш небольшого размера и не очень быстрый, его задача - минимизировать скрежет голов при частом обращении к одним и тем же файлам. Это не про скорость.

Для write-back на некоторых железячных рейд-контроллерах была батарейка

С батарейкой SSD вовсе не нужен - бери себе организовывай массив DRAM и пиши сразу туда. https://www.ixbt.com/news/hard/index.shtml?15/59/73 например.

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

У ХДД износ механики, что в большинстве пользовательских режимов использования приводит к тому, что ХДД сдохнет в разы быстрее, чем ССД исчерпает ресурс перезаписи

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

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

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

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

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

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

Не будет там несколько карт. PCI-E - это соединение точка-точка. И если там нет мостов, а их нет, если материнка не хитровыделанное китайское поделие для майнинга, то не будет там никаких переключений и никаких арбитров. Я тестировал производительность PCI-E на SSD и сетевых картах. Сколько должна выдавать по максимуму, столько и выдает.

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

Делают её внутри процессора потому, что она сейчас ассоциативная, а другая не востребована. Для работы любой памяти нужна шина, SRAM - не исключение.

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

с лучшем случае получишь что-нибудь типа одной трети.

Ты херню ответила. Членин прав, PCIe вполне может выдать всю пропускную способность. Собственно, есть SSD которые полностью x16 утилизируют.

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

Зачем тебе столько? Видеокарте вся эта скорость нафик не нужна. Проверено многократно, мизерное падение производительности, при переходе на x4 допустим. Ну, ОК. Видеокарта. Чего ещё? SSD всего 4 линии берет.

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

Моя статистика, чисто домашние с 2005 года:
1 сигейт с мухой ЦЦ, 1 сигейт начал сыпать ошибки(Power_On_Hours 81083) и отправлен на полку, 1 сигейт просто сдох(не стал разбираться чо с ним, ничего важного на нём не было), 1 ВД начал щёлкать головами, удалось запустить перевернув вверх ногами и слить данные
0 дохлых ССД

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

а про что же

Я написал там же - для минимизации износа механики на куче мелкой, быстрой, и частозапрашиваемой информации:

echo "1234" > /mnt/твой_hdd/file.txt;rm -f /mnt/твой_hdd/file.txt

заставят блин и голову твоего хдд шариться аж ноль раз независимо от настроек системы.

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

Я написал там же - для минимизации износа механики на куче мелкой, быстрой, и частозапрашиваемой информации:

и что, на скорость это не влияет?
и не замечал, что объём кэша зависит от бюджетности модели?

echo «1234» > /mnt/твой_hdd/file.txt;rm -f /mnt/твой_hdd/file.txt

заставят блин и голову твоего хдд шариться аж ноль раз независимо от настроек системы.

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

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

С батарейкой SSD вовсе не нужен - бери себе организовывай массив DRAM и пиши сразу туда.

Мне не очень понятно зачем сейчас вообще разделение на оперативную и «дисковую» память,особенно учитывая что никаких «дисков» уже чаще всего в ней и нет. Процессор вроде как способен напрямую адресовать 256 терабайтов памяти. Почему этой возможностью не пользуются? Например не нужно было бы тратить времени на процесс «загрузки» программ - то есть перекачки исполняемого кода через SATA или что там вместо него будет. Тем более execute in place ядро давно умеет - во всяких встроенных системах это применяется где часть адресного пространства занимает ПЗУ (тоже кстати флэш часто сейчас). Также не нужно было бы читать в ОЗУ read-only данные - они и так уже были бы в нем. А если данные модифицируются так copy on write тоже давно реализовано.

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

4 штуки, не помню с какого года, самый старый Power_On_Hours 30212
З.Ы. Percent_Lifetime_Remain - 26, на нём система стоит, у остальных износ по нулям

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

Потому что 1) файлы на диске фрагментированы. Откажись от фрагментации, вернись в чистоту в tr-dos - тогда пожалуйста. Только полагаю, что кроме тебя, и меня (я тоже хочу возрождения Beta Disk), идея мало кому зайдет. 2) пишется всё также секторами. И в допотопные времена ROM писалось блоками, и писалось отдельно и навечно. И Сейчас ничего не изменилось. Любая ssd пишется секторами, нельзя записать один байт. Execute in place и copy on write - это малосвязные вещи, не пытайся их объединить. Copy on write — просто абстракция. Оверхед, все, что мы любим, а как же?

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

За это время отъехало 2 ХДД

Продолжаем разговор. А хдд сколько годиков было, как их звали и брали вы их случайно не на али с доставкой на дом?

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

Мой личный опыт это не подтверждает, хотя и он не показателен.

Но лично для себя я определил другой критичный недостаток SSD: HDD еще задолго до смерти начинает подавать признаки болезни и дает время перенести данные. SSD нередко умирают внезапно и без объявления войны.

Я решил хранить важные данные на HDD, а SSD использовать только для операционной системы и больших игр.

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

Все проблемы с внезапной смертью ССД были связаны с ошибками в прошивке контроллера и я давно не видел новостей про новые проблемы

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

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

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

Я не записываю и это было давно

Ясно, осуждаете только по названиям компаний, в том смысле, что покупали только по названию компании, ЧТД.

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

HDD еще задолго до смерти начинает подавать признаки болезни и дает время перенести данные

Не всегда, не стОит на это рассчитывать. Иногда, случается также, как и SSD - чпоньк, и всё.

Я решил хранить важные данные на HDD, а SSD использовать только для операционной системы и больших игр.

И это правильно. Но по другой причине. Потому что есть методы восстановить HDD. Дорого, но если инфа действительно важная, от 400 евро - сумма не очень значительна. Пересадки блинов, замена электроники - вот это. С мёртвого SSD инфу не восстановит никто ни за какие деньги.

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

Потому что все уже смирились, никого этим не удивишь, и это не новость. Летят, по-прежнему, также.

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

Классическая PalmOS на Palm T5 примерно так и работала.

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

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

Дело не столько в адресации памяти, сколько в т.н. фон-неймановской архитектуре, т.е. легаси - данные и инструкции должны лежать в одном пространстве.

Плюс ко всему, возникнут сложности с разделением собственно пользовательских данных с данными программы. Вот лежит у тебя ELFик, выводящий на экран файл JPG - как ты себе представляешь обращение к нему? Средствами ФС (/home/vasya/file.jpg) уже не получится, потому что придется перерабатывать а) драйвер ФС; б) драйвер блочных устройств. Как тогда? file = fopen(#FE014A:#A007514E, rw); ?

Либо исчезнет относительно удобная концепция файловой системы (как иерархической структуры данных) и придется обращаться по старинке, по адресу и смещению, которые кстати еще придется откуда-то брать; либо громодить костыли-трансляторы из адресного пространства в файловое.

Тем более execute in place ядро давно умеет

Эээ неее, кроме твоего ведра, в компьютере есть еще много других подсистем, которые execute in place не умеют. Например БИВИС, которому кстати говоря предстоит откуда-то загрузить твое ведро.

Вдобавок XIP имеет свои минусы, а главное обязывает носитель жестко соответствовать стандартам, как им сейчас соответствует ОЗУ. Ну хорошо, допустим какой-нибудь NVMчик на PCIE4 (7 с хером гб\с) соответствует. А SATA3? А флешка (лайвы ты забыл наверное)? Представляешь как будут плеваться пользователи, если между нажатием на кнопку «Пуск» и открытием меню пройдет секунд 10, потому что массив пересортировывающийся в ОЗУ за 200 мс, будет пересортировываться 5 секунд?)

- - -

Чисто теоретически то, что ты написал - возможно.

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

Сделать это может разве что Apple, у которых аппаратный и программный отделы находятся в одном здании под одним менеджером.

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

и что, на скорость это не влияет?

Оно влияет на все, например на энергопотребление. Без кеша шпинделю придется раскручиваться 10 раз, с кешем два. Сэкономит 0.00004 Вт.

Но это не значит что кеш был введен ради энергопотребления.

Ради чего он был введен - я тебе объяснил. На что оно еще влияет - не имеет значения.

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

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

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

Средствами ФС (/home/vasya/file.jpg) уже не получится,

Почему нет? Работает же в линуксе tmpfs,делающая «диск» с файловой системой в оперативной памяти. Объяснить ей что вон с того абсолютного адреса лежит область флэш-памяти и пусть с ней работает.

есть еще много других подсистем, которые execute in place не умеют. Например БИВИС

Вот этот как раз таки in place и работает. Но да, лишняя сущность давно уже. ARM-компы вполне без него обходятся.

А SATA3?

С момента когда распространились SSD - тоже стало лишней сущностью.

А флешка

Никто не мешает сохранять в системе программные средства для совместимости с внешними носителями.

Чисто теоретически то, что ты написал - возможно. Но это должно поддерживаться процессором

В процессоре и так всё нужное давно есть (несколько разных механизмов трансляции адресов).

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

Да, безусловно.

это должно поддерживаться ОСями

Линукс адаптировать как раз проще всего будет. Execute in place он и так уже умеет. Делать файловые системы в разных странных местах он тоже умеет. Вот например файловая система в видеопамяти: https://github.com/Overv/vramfs С таким же успехом вместо видеокарты с обычной динамической RAM могла бы быть плата с флэш-памятью. И доступ сделать не через маленькое «окно»,а прямо весь накопитель в адресное пространство отобразить,благо оно огромное.

в результате получится абсолютно новая платформа,

Давно пора перестать тащить совместимость с компами тридцатилетней давности.

несовместимая со всеми предыдущими.

Да не так уж и не совместимая. Софт уже довольно давно от железа отвязали - в смысле что нормальные программы не лезут по абсолютным физическим адресам как во времена DOS и win95. Программе всё равно где в физическом адресном пространстве располагаются ее страницы. Если это не модифицируемый код - то почему бы им не быть и в флэш-памяти и прямо оттуда исполняться? Если же программа хочет изменить содержимое своей страницы - то copy on write эту страницу в обычное ОЗУ и пусть меняет.

Сделать это может разве что Apple

Всякие линуксовые одноплатники,дисков не имеющие, вполне себе без Эппла существуют. А на x86 мешает разве что отсутствие подробной технической документации на железо(чипсет) большинства системных плат.

watchcat382
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.