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
Next revision Both sides next revision
projects:cpu_display [2013/12/19 22:15]
lsilverwolf
projects:cpu_display [2013/12/19 23:26]
lsilverwolf
Line 1: Line 1:
-====== Central Processing Unita display of not-so-black boxes ====== +====== Central Processing Unit ====== 
-By: Lyra Silverwolf +a display of not-so-black boxes 
- +==By: Lyra Silverwolf== 
-{{ :​projects:​lyra_cpu.jpg?​800 |}}+{{:​projects:​lyra_cpu.jpg?​700|}}
  
 ==== What did you do? ==== ==== What did you do? ====
Line 21: Line 21:
  
 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_schematic2.jpg?​700 |}}
 +
 +Then I got a ton of boxes and some art supplies.
 +
 +{{:​projects:​lyra_supplies.jpg?​700 |}}
  
 In the end I decided on the following boxes: In the end I decided on the following boxes:
Line 38: Line 45:
 On the lid of each box I described the function of that particular box in the context of the level within which it was contained. Inside of the box I drew a complete schematic of that item, and I wrote detailed descriptions of what each element in the schematic was responsible for doing, even if that element didn't have its own box. On the lid of each box I described the function of that particular box in the context of the level within which it was contained. Inside of the box I drew a complete schematic of that item, and I wrote detailed descriptions of what each element in the schematic was responsible for doing, even if that element didn't have its own box.
  
-==In the end I wound up with the following descriptions ​of the components: ==+===Component Descriptions === 
 +The names of all the components ​are underlined and the components that are represented by boxes are also bolded.
  
 **__Instruction Fetch Unit__** - The instruction fetch unit is responsible for keeping track of the CPU’s current location in the program it is running using the program counter (a piece of memory). Within the instruction fetch unit, the program counter can either be incremented to the next line of the code, branch to a line in the code a certain number of lines away from the one it is currently on, or jump to a completely different line specified by the previous instruction executed. It also houses the instruction memory, which consists of a lot of memory cells that store all of the CPU’s instructions. The fetch unit outputs the instruction stored at the location indicated by the program counter for execution by the CPU.  **__Instruction Fetch Unit__** - The instruction fetch unit is responsible for keeping track of the CPU’s current location in the program it is running using the program counter (a piece of memory). Within the instruction fetch unit, the program counter can either be incremented to the next line of the code, branch to a line in the code a certain number of lines away from the one it is currently on, or jump to a completely different line specified by the previous instruction executed. It also houses the instruction memory, which consists of a lot of memory cells that store all of the CPU’s instructions. The fetch unit outputs the instruction stored at the location indicated by the program counter for execution by the CPU. 
Line 113: Line 121:
 {{ :​projects:​lyra_dtrmux_inside.jpg?​300 |}} {{ :​projects:​lyra_dtrmux_inside.jpg?​300 |}}
  
-==== How can someone else build on it? ====+====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 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'​ ==== 
 +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 ​==== 
 + 
 Include everything necessary to pick up where you left off. This should include: ​ Include everything necessary to pick up where you left off. This should include: ​
  Code   Code 
projects/cpu_display.txt · Last modified: 2013/12/19 23:35 by lsilverwolf