Add conclusions and do some misc fixes.
[matthijs/projects/internship.git] / Report / Main / Conclusions.tex
1 \chapter{Conclusions}
2 During this internship, I have of course learned a lot. While a large part of
3 these lessons are very practical in nature (from how working in a company works
4 to how to solve specific coding problems), there are also a number of higher
5 level observations to be made.
6
7 For example, I have found that the main challenge in solving a problem, is
8 defining the actual problem you want to solve. This is clearly visible in the
9 specification of MontiumC: If you don't know what the goals are, you can't
10 really work towards them. But, on a smaller scale, this also holds on a smaller
11 scale. When, during coding you encounter a problem, it's often easy to try to
12 solve that problem. However, after stacking a few small solutions on top of each
13 other, things get complicated real fast. Then, it helps to take a step back and
14 try to find the bigger problem you are trying to solve, and evaluate
15 subsolutions in that perspective.
16
17 During my (limited amount of) work with the new hardware design, it became
18 quickly apparent that trying to design the hardware in an optimal way, was
19 completely impossible (when trying to stay within area and power constraints).
20 The most important issue in this design is finding the balance between two sides
21 of a tradeoff, which was quite often hardware vs compiler complexity. Especially
22 this last issue makes it very clear that when designing hardware, the supporting
23 tooling should be designed in parallel, to prevent the tooling from needing to
24 be overly complex.
25
26 These limitations are also visible when working with the old hardware: The
27 hardware poses a lot of limitations on its input, which makes it quite hard to
28 build a proper compiler, that can reliably compile anything that it is supposed
29 to. Again, adapting the hardware to support the compiler, has the potential to
30 make the compiler considerably less complex and more reliable, at the cost of
31 larger hardware complexity, area and power consumption.
32
33 All in all, I feel that this internship has worked out quite well. The people
34 were cooperating, the job was fun yet challenging and the result is
35 well-received.