User Tools

Site Tools


projects:cpu_display

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:cpu_display [2013/12/19 23:18]
lsilverwolf
projects:cpu_display [2013/12/19 23:35] (current)
lsilverwolf
Line 4: Line 4:
 {{:​projects:​lyra_cpu.jpg?​700|}} {{:​projects:​lyra_cpu.jpg?​700|}}
  
-==== What did you do? ====+==== What I Did ====
  
 I built a display/​diorama of an entire computer Central Processing Unit (CPU) out of nested cardboard boxes. I built a display/​diorama of an entire computer Central Processing Unit (CPU) out of nested cardboard boxes.
Line 12: Line 12:
 Inside of each outer level box are more boxes representing what happens inside of that particular unit. For example, inside of the ALU there is a box for the adder/​subtractor,​ which in turn contains a box with a gate level schematic of a 1-bit full adder inside. This allows the person exploring the diorama to extrapolate how the components fit together all the way from the individual gates to the top-level information stages. Inside of each outer level box are more boxes representing what happens inside of that particular unit. For example, inside of the ALU there is a box for the adder/​subtractor,​ which in turn contains a box with a gate level schematic of a 1-bit full adder inside. This allows the person exploring the diorama to extrapolate how the components fit together all the way from the individual gates to the top-level information stages.
  
-==== Why did you do it?  ====+==== Why I Did It  ====
  
 There were several reasons I chose to make a physical display of a CPU for my final project. First of all, I think that Computer Architecture is a very exciting field, and I wanted to make it more approachable for all audiences. When I set out to construct this display I had my 12-year-old sister in mind as my potential audience, and while I may have not achieved quite that level of clarity, I believe that I've made something that other Oliners can interact with and get excited about. ​ There were several reasons I chose to make a physical display of a CPU for my final project. First of all, I think that Computer Architecture is a very exciting field, and I wanted to make it more approachable for all audiences. When I set out to construct this display I had my 12-year-old sister in mind as my potential audience, and while I may have not achieved quite that level of clarity, I believe that I've made something that other Oliners can interact with and get excited about. ​
Line 18: Line 18:
 This project also wraps up the big picture of the entire course very well, because I've explored all of the levels of abstraction that we discussed in class throughout the semester. We started out initially talking about logic gates and binary math, and then slowly progressed up to the CPU itself, and in this project I present a little bit of everything. Through pulling it all together in this way, I certainly reinforced most of the concepts that I was having trouble with in the class and found gaps in my knowledge that I wasn't even aware I had. This project also wraps up the big picture of the entire course very well, because I've explored all of the levels of abstraction that we discussed in class throughout the semester. We started out initially talking about logic gates and binary math, and then slowly progressed up to the CPU itself, and in this project I present a little bit of everything. Through pulling it all together in this way, I certainly reinforced most of the concepts that I was having trouble with in the class and found gaps in my knowledge that I wasn't even aware I had.
  
-==== How did you do it? ====+==== How I Did It ====
  
 I started out by sketching out the CPU at its highest level of abstraction and deciding how many very large boxes I needed to acquire. I then determined what exactly went into each upper-level box and what subset of those things I wanted to also give boxes to. I started out by sketching out the CPU at its highest level of abstraction and deciding how many very large boxes I needed to acquire. I then determined what exactly went into each upper-level box and what subset of those things I wanted to also give boxes to.
  
-{{:​projects:​lyra_schematic1.jpg?​700 |}} +{{ :​projects:​lyra_schematic1.jpg?​700 |}} 
-{{:​projects:​lyra_schematic2.jpg?​700 |}}+{{ :​projects:​lyra_schematic2.jpg?​700 |}}
  
 Then I got a ton of boxes and some art supplies. Then I got a ton of boxes and some art supplies.
  
-{{:​projects:​lyra_supplies.jpg?​700 |}}+{{ :​projects:​lyra_supplies.jpg?​700 |}}
  
 In the end I decided on the following boxes: In the end I decided on the following boxes:
Line 122: Line 122:
  
 ====Future Work==== ====Future Work====
-In the end I wound up with a CPU that I could show off to a fellow Olin student, but I don't think that my 7th grade sister would understand it without me explaining it to her. If I were to continue to build on this project, I would make everything bigger so that I could add more detail everywhere. I was severely constrained by the sizes of the boxes I had access to, which made it hard for me to nest multiple boxes inside of one another. I also would like to include a reference packet that discusses the things I didn't have room to outline on the display like the logic gates and how a multiplexer or decoder uses the selector wires to select which input or output to use.+In the end I wound up with a CPU that I could show off to a fellow Olin student, but I don't think that my 7th grade sister would understand it without me explaining it to her. If I were to continue to build on this project, I would make everything bigger so that I could add more detail everywhere ​to widen the audience. I was severely constrained by the sizes of the boxes I had access to, which made it hard for me to nest multiple boxes inside of one another ​and add an appropriate level of detail to the project 
 + 
 +I also would like to include a reference packet that discusses the things I didn't have room to outline on the display like the logic gates and how a multiplexer or decoder uses the selector wires to select which input or output to use.
  
 ==== '​Gotchas'​ ==== ==== '​Gotchas'​ ====
 The main gotcha in this project was cutting the paper. Drawing the schematics took a long time, but it took an even longer time to cut the paper and cover everything to make it look pretty. It was also difficult to determine what level of detail I should portray on each level of abstraction. The main gotcha in this project was cutting the paper. Drawing the schematics took a long time, but it took an even longer time to cut the paper and cover everything to make it look pretty. It was also difficult to determine what level of detail I should portray on each level of abstraction.
 +
 +====Work Plan====
 +**Goal**\\
 +To create a physical display that explains what a CPU does and how it works. There will be several nested black boxes (IRL) and each one will be labeled with a description explaining what goes on inside of that black box. The largest box will be the CPU as a whole and the smallest black boxes will be the simple gates. The audience for these descriptions will be a parent or sibling that doesn’t know anything about computer architecture.
 +
 +I would also like to show some simple operations taking place in the CPU, preferably user-controlled. I could have a knob or series of buttons that activated a different set of lights through the display depending on the operation, or it could be as simple as using different colors of yarn for different operations with careful labeling.
 +
 +**Final demo**\\
 +The above display with a short presentation that I could give at expo explaining what a CPU is and why Computer Architecture is so cool.
 +
 +**Rough Schedule**\\
 +Wednesday Dec 4th - Have “schematic” of entire system, begin procuring boxes (2 hours)\\
 +Saturday Dec 7th - Decide which operations will be shown and how (1 hour)\\
 +Sunday Dec 8th - Have all descriptions completely written (5 hours)\\
 +Wednesday Dec 11th - Assemble the display (4 hours)\\
 +Saturday Dec 14th - Finishing assembling the display/ wire lights(?) (2 hours)\\
 +Sunday Dec 15th - Presentation complete (1 hour)\\
 +Sunday Dec 15th - Documentation complete (5 hours)\\
 +Monday Dec 16th - Project due\\
  
 ==== Work Plan Reflection ==== ==== Work Plan Reflection ====
 +I massively mis-judged this project. Not only did I want to include all of the possible detail on every level of abstraction,​ but I also wanted to have non-trivial user control over information flow, both of which turned out to be harder than they seemed. ​
 +
 +As far as the schedule goes, the order I laid out for myself did not end up to be effective either. I did come up with the schematic first, but the rest was dictated by the boxes that I had available to me, so I built the project module-by-module rather than writing all the descriptions and then putting them on the boxes. I also mis-judged how long it would take to assemble something of this scale, so instead of taking 4 hours to put it all together, it took me at least 20 total. Therefore, I was unable to implement the user-controlled data path following through the system.
  
 +I also did not judge how far apart Monday and Thursday are in finals week, so instead of having my whole project done by Monday, I only had 1.5 modules done by that point. Therefore, I was unable to give the type of presentation that I had anticipated giving during the final block for CompArch.
  
-Include everything necessary ​to pick up where you left off. This should include:  +I did implement a basic version of what I had planned ​to do, and I did learn a lot doing it, so overall I'd call my project ​a success. I was just not super accurate in my original work plan.
- Code  +
- Schematics  +
- build instructions  +
- A list of difficulties ​and ‘gotchas’ while doing this project  +
- Work Plan reflection  +
- A possible TODO to extend the depth of the project ​+
projects/cpu_display.1387513127.txt.gz · Last modified: 2013/12/19 23:18 by lsilverwolf