[ale] Computer Architecture class?

Ed Cashin ecashin at noserose.net
Tue Sep 3 21:02:20 EDT 2013


On Tue, Sep 3, 2013 at 4:05 PM, leam hall <leamhall at gmail.com> wrote:

> Hey all, reverse question. Coursera has a Computer Architecture class
> starting in a couple weeks.
>
> https://www.coursera.org/course/comparch
>
> I like the *idea* of knowing that sort of stuff but I've never been in a
> job that would need it. Has anyone done so and can you tell me, on list or
> off, what the job was like? I'm certain I want to know more and do more,
> but don't want to spend time chasing the wrong dream. This course is one of
> several I could take, so I'm trying to pick one and go with it.
>

 I think that the stuff I know about how hardware is designed makes it
easier for me to talk to the software developers who really understand how
the hardware works.

For example, if I really understand the way the CPU cache is designed, the
tradeoffs, etc., then it helps me remember how the caches really work, and
then I can learn and retain the reason why you need a memory barrier in
some circumstances, and then I can intelligently talk to someone about why
it's safe or dangerous to do such-and-such in the implementation of a more
scalable locking primitive without using a memory barrier.

Well, I guess to be fair it gets me halfway there.  There's also the stuff
that makes a memory barrier important, like compiler instruction reordering
(not relevant to the arch class) and CPU-level instruction reordering
(arch-class relevant).  For the latter, understanding branch prediction,
instruction pools, etc., is a good background!

If the levels of software you're planning to work with are way higher than
the systems programming level, then I can't say how relevant you'll find
the course.  And it's really hard to learn if the material doesn't seem
relevant.

By the way, I saw you mention assembly language, and I've recently
refreshed what few skills I have in that area by re-learning NASM, this
time for x86_64.  I have two little things on github in a "low" repo you
can see.  I use Linux and Mac OS X for these toy examples.

  https://github.com/ecashin/low

-- 
  Ed Cashin <ecashin at noserose.net>
  http://noserose.net/e/
  http://www.coraid.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ale.org/pipermail/ale/attachments/20130903/bcfb41d4/attachment-0001.html>


More information about the Ale mailing list