Live data from Hacker News

Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

arxiv.org

41–49 of 49 posts

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#41
post #30

Earlier quoted context omitted.

Which is the whole chip, because if you only refresh any limited number of rows, the next row outside that range becomes a viable indirect target as shown by Half-Double. Alternatively you would also count the refresh as a hammer on its adjacent rows.

> Which is the whole chip, because ... Here's the actual Half-Double paper: https://www.usenix.org/system/files/sec22-kogler-half-double... Note two things: - The entire chip is already refreshed every 32ms to 64ms, because the capacitors which implement DRAM lose their charges over time. - The time required to induce an exploitable bit flip is (in one system tested) was ~22ms So: Even if it was the whole chip - vs.,…

Yes. Something like that would likely solve the problem entirely.

I don't know if it's doable with the current ABI between the memory controller and the memory chips, without adding a bunch of expensive static memory to the controller. It may require a protocol change. Possibly just another wire to signal back to the controller that excessive charge leakage was detected and it needs to do an early full refresh, but even that means basically a new generation of RAM.

I'm thinking that either each memory chip gains a few bits per row to store predicted charge leakage (or an actual extra bit designed to leak faster than the main bits, coupled to a detector) or the memory controller would need an array of memory for the maximum supported number of rows. Either one is possible, but a design headache.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#42

It's my long standing opinion[1] that we shouldn't accept any RAM that can be subject to random bit flips. Most of the mitigations are just security through obscurity. [1] https://news.ycombinator.com/item?id=33860477

> Most of the mitigations are just security through obscurity.

When manufacturers are sufficiently lazy.

If you put a refresh counter into each memory row at like <1% overhead, you can actually guarantee that a thousand or a hundred accesses forces nearby cells to refresh and stay well inside their safety margin.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#43

Earlier quoted context omitted.

> It's my long standing opinion[1] that we shouldn't accept any RAM that can be subject to random bit flips. Every system fails eventually.

Yes things fail, but currently random bit flips are not considered a failure.

They are, that’s why ECC exists, and those who are willing to pay for it, can get it.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#44

Earlier quoted context omitted.

> Okay then refresh the whole thing and not just a single row whenever TRR is triggered. How would you refresh the whole DRAM? Refresh is simply reading the row and writing it back, it is sequential in nature. > Or interleave activations with refreshes. Say, after every 5 activations, refresh the next row in the refresh cycle. It makes zero sense. Refresh is disturbance in itself. You are entering a recursion here wh…

> At the end you have DRAM that you cannot read from or write to at all because it’s always refreshes itself. Be so kind as to run the math on this for me? There must be something that I'm missing, because it looks like you're describing a system in which a refresh causes so much disturbance that another refresh is immediately required. Such a system seems incapable of reliably storing a byte and reading it back. The…

> you're describing a system in which a refresh causes so much disturbance that another refresh is immediately required.

Well, if you need to refresh a bunch of rows after any other read, you will spend more time refreshing things rather doing useful work.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#45
post #10
post #9

Earlier quoted context omitted.

Where did I imply that they should use an incorrect underestimation of row disturbance? If they actually measured these things, they'd know how far away a disturbance can be created before it becomes so weak the normal refresh cycle fixes it.

It is not feasible for DRAM (or the memory controller) to maintain a fully accurate simulation of DRAM. If it was easy they'd have done it.

You don't have to simulate it that hard. If you do TRR semi-aggressively and have it give a big boost to the neighboring rows' counter you can handle further away aggressor rows.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#46
post #11

Earlier quoted context omitted.

Okay then refresh the whole thing and not just a single row whenever TRR is triggered. Or refresh the whole thing after a certain number of row activations. Or interleave activations with refreshes. Say, after every 5 activations, refresh the next row in the refresh cycle. I'm not a DRAM expert. They can figure it out. I promise if you refresh the whole chip after every row activation you won't have rowhammer. It'll…

> Okay then refresh the whole thing and not just a single row whenever TRR is triggered. How would you refresh the whole DRAM? Refresh is simply reading the row and writing it back, it is sequential in nature. > Or interleave activations with refreshes. Say, after every 5 activations, refresh the next row in the refresh cycle. It makes zero sense. Refresh is disturbance in itself. You are entering a recursion here wh…

> It makes zero sense. Refresh is disturbance in itself. You are entering a recursion here where the mere act of refreshing increases the counter values of victim rows making refresh even more frequent. At the end you have DRAM that you cannot read from or write to at all because it’s always refreshes itself.

That's not how infinite sequences work.

If each refresh causes 1/n more refreshes, then your total time spend on extras is is 1/(n-1) of your original number.

So even if you had an extreme 5:1 ratio, 100 accesses would cause 20 additional accesses which would cause 4 additional accesses which would cause 1 additional access. It would be fine.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#47
post #10

Earlier quoted context omitted.

It is not feasible for DRAM (or the memory controller) to maintain a fully accurate simulation of DRAM. If it was easy they'd have done it.

This problem has never existed with bigger DRAM cells. At some point in time, a few generations of DRAM ago, they have reduced the dimensions so much and without discovering adequate mitigations for the problems introduced by this, that the DRAM reliability has become inadequate. The reason why they did this was to reduce the fabrication costs. It is likely that the pressure to reduce the fabrication costs has been c…

> By increasing the fabrication costs, it would be easy to eliminate the RowHammer problem, while still having memory prices several times lower than the current prices.

But current prices you mean during this huge spike? Sure, you could double fabrication costs while dropping prices a lot from today's state. But that's not impressive. That still costs more than I want.

If you could reduce the price significantly from when it was sitting at $2-3 a GB, I'd be interested, but I'd need a bunch of evidence.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#48
post #39

Earlier quoted context omitted.

Agreed, my DIY NAS with ECC DDR4 has ran for over 5 years and I have 0 ECC errors in that time. Something must be very wrong with OP's setup. Perhaps the RAM has been overclocked too far.

Well that's DDR4. Apparently DDR5 was made with tighter tolerances and less safety margin, which is why many people argue ECC should be mandatory in DDR5 - it actually relies on it.

There are plenty of DDR5 machines without ECC[1], and yet they're not constantly crashing in the way that frequent bitflips would suggest.

[1] DDR5's built-in ECC is not the same as traditional "end to end" ECC, and is meant to correct bitflips on the die, not between the RAM and the CPU, so ECC errors that you see are actually suggestive of a bad connection between the RAM and CPU.

Re: Demystifying DRAM Read Disturbance: RowHammer and RowPress Phenomena

#49
post #39

Earlier quoted context omitted.

Well that's DDR4. Apparently DDR5 was made with tighter tolerances and less safety margin, which is why many people argue ECC should be mandatory in DDR5 - it actually relies on it.

There are plenty of DDR5 machines without ECC[1], and yet they're not constantly crashing in the way that frequent bitflips would suggest. [1] DDR5's built-in ECC is not the same as traditional "end to end" ECC, and is meant to correct bitflips on the die, not between the RAM and the CPU, so ECC errors that you see are actually suggestive of a bad connection between the RAM and CPU.

Most bitflips don't cause immediate crashes, or crashes at all. They just silently corrupt your data.
Post reply on HN