Ok. Well, I’ve been kind of busy these days. Taking 5 classes (2 CIs and 2 labs will do that). So…I thought I’d take the easy way out, by giving you one of my problems to take a look at.
6.033 is Computer Systems Engineering. It has lots of different components to it – so far we’ve talked about the Therac-25, the X Windows System, multi-threading, and a couple of other things. It moves quickly through different topics, all of which are very interesting.
In particular, though, 6.033 has two design projects, where we’re presented with a fairly real world problem, and we have to try to solve it. This year, we have to create a controller for a NAND flash device.
The controller sits between the filesystem and the physical device itself, and has to make the flash look like a traditional magnetic disk, in spite of the fact that flash memory is distinctly unlike a magnetic disk.
Here’s the description of the problem: http://web.mit.edu/6.033/www/dp1/.
Feel free to submit solutions in the comments. My one recommendation is that you should make sure that you actually have enough RAM to store what you want. My friends and I spent multiple days coming up with and throwing out lots of different options, and none of us have a solution that we’re truly satisfied with, so don’t feel bad if you have a hard time coming up with something that works.
You can not solve this problem without making significant sacrifices in either the available storage space, the read and write performance, or the ability of the controller to balance wear over time.
I’ll post my solution after I give you guys time to play with it. Also – feel free to let me know if you have any questions – I know it’s kind of hard to follow at first. (And as usual, questions about other MIT-related things are also OK)