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)
Comments (Closed after 30 days to reduce spam)
Posted by: 0 on February 27, 2008
Posted by: 0 on February 28, 2008
Posted by: Sh1fty on February 28, 2008
Posted by: Vytautas on February 28, 2008
Posted by: Evan on February 28, 2008
Posted by: Nihar on February 28, 2008
I think the best way to start thinking about the problem is to consider the various things you can trade off: there's the complexity of the solution, the total amount of storage space available at the next level up, the speed of reads and writes, and the effectiveness of your wear leveling strategy.
Start by figuring out which traits are important to you, and start coming with designs that maintain those traits.
Posted by: Evan on February 28, 2008
Posted by: Sh1fty on February 28, 2008
Posted by: 0 on February 29, 2008
Posted by: 6033Student on February 29, 2008
Posted by: E. Rosser on March 1, 2008
Posted by: Steven on March 1, 2008
Posted by: Vytautas on March 2, 2008
Posted by: Steven on March 2, 2008
Posted by: Vytautas on March 2, 2008
Posted by: Evan on March 2, 2008
Posted by: Francisco on March 4, 2008
Posted by: Steph on March 19, 2008
Comments have been closed.