Down and to the Right

Today in class we discussed the aspects about software and hardware programming that i hate to admit are important, and for that i am sad. The good news is that this lecture is a one off and wont, according to my professor, ever happen again. Here are the common pitfalls of computer architecture:

  1. ignoring cost when developing software or hardware
  2. ignoring what your customers are looking for
  3. ignoring trends in technology
  4. focusing on Local optimizations
  5. over-optimizing and creating complexity
  6. faulty performance measures

Unfortunately, I cant really argue against any of these items. There is a certain benefit to the “Well, It Works!” mentality – at least they reach production from time to time, usually ahead of time. It is with great regret that i have to admit so much. It is a real shame.

Optimizing is still my drive, and doing things the best way is always going to be something i can drive for, i just have to accept that the best way is subjective to the goals of whatever project I am part of. Lucky for me, game development requires optimization in spades =D

At least from here on out VHDL is going to be taking the reigns and everything we code is going to be focused on speed.

We looked at a graph, plotting the cost/performance versus performance graph. This graph plotted three technologies (A, B, C), each overlapping and shaped like a flat bottomed U and broken into three distinct parts.

  1. Under-Utilization on the left, with quickly decreasing cost for any performance gain
  2. Optimal-Utilization at the bottom, where cost and benefit are matched
  3. Over-utilization on the right, with sharply increasing cost for any performance boost.

Cost can come from anywhere, including but not limited to books, effort, hardware or tools. A laundry list of anything you can imagine that would impact your ability to improve a product. My focus has always been on optimization and understanding the underlying technology can only help. Writing my first CPP & ASM application was a lot of fun, but there is an added layer of complication in that it was MASM ASM and blah blah blah – all kinds of crazy platform dependencies. Hopefully this class will make me happy, i want to over-optimize the shit out of this mother board I got.