You have a long journey ahead depending on how much you want to keep up with the changes.
I would not recommend any specific book until I knew what specific area of interest is. You have to love digital equipment (as hardware) more than software imho..
As an example and put very simply, you have MS chasing an extremelly bad JIT code generation chasing Java with much better chasing C++ that is behind modern CPU capabilities (yes Intel leads language design, not the other way around). This is happening all the time and even Intel is chasing GPU guys that cannot write a decent bloody compiler (or graphics driver software that doesn't cause childish problems). What a funny-looking graph..
Another way to look at it is Intel chasing AMD nicking Alpha ideas ripping transputers attempting custom FPGA or Amiga-like designs..
If you're as you say looking for software efficiency aspects, then sure: think MIMD, and it isn't available yet :) Seriously, for efficient you need to worry about only von Neumann architecture, and that cache memory is sacred. Or simply that easily exploitable hardware advances are coming to an abrupt end as evident with Intel's latest quad cores..
Then again, Google showed by doing all the dirty and distributed work of software you can lift the abstraction and still rule; ie. that it can payoff so kids programming mass-scale harware don't have to worry about it. According to them they crash/burn few 1TB disks by just running an odd testing process or two.
Pick your poison of course.. just don't do Java + Oracle, or C# + WPF + LINQ and talk about software efficiency :)