Thom Hogan
Forum Pro
You're making the assumption that the card has something to do with the buffer. It doesn't. The buffer is sitting outside of EXPEED7, and EXPEED7 is taking fully formed images out of the buffer to send to the card write mechanism. If the diagram I have for EXPEED internals is still true—and I believe it is—the decision on when to move more information to the write mechanism is all EXPEED's. It can pause for the write mechanism.Okay, let me explain this step by step.Yes, the people reporting the problem state it happens while shooting. Therefore that means the camera is writing to the buffer so yes, there will be something in the buffer.
1. The problem happens when there's something in the buffer, and you start shooting again (very very very rarely).
2. Slow cards empty the buffer at a slower pace.
Again, that also is handled by EXPEED. Basically EXPEED is grabbing information from the memory that just consists of a block DNs, processing them into a file, writing that file back out to the memory, then as the card can take more images, moving that file from memory to the card.3. If things are in the buffer longer, it increases the odds you shoot and put new things in the buffer behind the stuff that isn't on the card yet.
As I've written several times, we've eliminated card brand, card size, and card speed as a trigger variable for the issue.4. The slower card leaves things in the buffer longer because they can't write quickly.
5. Therefore, using a slower card is more likely to trigger the issue than a fast card, even though it's still extremely extremely rare.
I spent most of my career in Silicon Valley in charge of organizations that had to deal with problems like this. Indeed, my first such job was managing software at Osborne, and on my very first day there I discovered that the software engineers had done something wrong: instead of waiting for the disc controller to send the operation complete flag, the code simply did NOP, NOP, NOP assuming that this was a long enough pause. (NOP is a code for No Operation, or just don't do anything with the CPU for a cycle.)
CFexpress is wildly complex, as its not a sequential write and has a load balancer (in theory) trying to make sure you don't fry just one page on the NAND.