Slashdot Mirror


Understanding the Microprocessor

Citywide writes "Ars has a very thorough technical piece up entitled Understanding the Microprocessor. It's pitched lower than many Ars articles (all of which are a bit over my head, to be honest), but that's why it's worth checking out: it explains the fundamentals is a very clear and useful way. And as the author notes, this kind of information is really crucial to get a grip on before Hammer arrives."

36 of 165 comments (clear)

  1. Sure by gowen · · Score: 4, Funny
    This kind of information is really crucial to get a grip on before Hammer arrives
    Yeah, right. In exactly the same way its necessary to understand the principles of the cathode ray tube and sideband modulation before the new season of Buffy starts.
    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    1. Re:Sure by DarkHelmet · · Score: 4, Funny
      Oh my God? None of this news is really necessary?

      You mean I've been sacrificing my social life for nothing? Say it ain't so!

      You bastard... You cruel, cruel bastard... Can't you break things to the slashdot community gently?

      --
      /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
  2. Nomination by Apathy+costs+bills · · Score: 5, Funny

    Nomination for Best Diagram Ever. I really wish my "Introduction to MicroProcessors" had had something like that; instead we were drowned in the whiteboard handwavings of a man with an accent I could hardly understand. Maybe this guy should spin this off into a book, make a killing selling it to Undergrad CS students lost in space...

    --
    Kill Trolls Dead. Here's
    1. Re:Nomination by greechneb · · Score: 4, Funny

      Fortunately, my microprocessor teacher didn't have an accent, but nonetheless, the diagrams were on a whiteboard, and highly illegible. A book like this would be nice for students taking such a class. The worst part of my class was the $150 book, and using it only for the ASCII table. Then they decided to change the book the next year so I couldn't sell it back -

      On a related note - Anybody wanna buy a used book on architecture, programming, and interfacing with the 8086 and 8088 microprocessors? Rarely used, little wear, only used page 33 (ascii table)

    2. Re:Nomination by Anonymous Coward · · Score: 4, Funny

      Anybody wanna buy a used book on architecture, programming, and interfacing with the 8086 and 8088 microprocessors? Rarely used, little wear, only used page 33 (ascii table)

      I would, but I don't want to buy a book with a used ASCII table

    3. Re:Nomination by JonTurner · · Score: 4, Informative

      Maybe this guy should spin this off into a book,
      Too late. Charles Petzold has already done it. See CODE. It should be on every geek's bookshelf.

    4. Re:Nomination by SomeoneGotMyNick · · Score: 5, Insightful

      I disagree.....

      Everybody has a 'level' they need to start at when learning ANYTHING.

      More often than not, the starting level offered to someone is a bit higher than their current comprehension level on a given subject. It happens all the time to college freshmen. It doesn't mean they are dumb. They have the capability to learn it. It means that their life experiences and knowledge are incompatible with the method in which the subject material is being presented.

      With the assistance of an additional reference level (a bridge to knowledge, if you will), a person can then make 'the connection' to the material being taught. The microprocessor diagram helped me a lot. I learned about microprocessor theory from many books and diagrams. I'll be damned if I'll ever be able to share my knowledge with anyone else because it seemed tough to explain to someone else after I understood how it worked. I've always had a problem with 'dumbing down' anything I needed to explain. People always complain that I talk over their heads when they want an answer to a 'simple' question.

      The example given in this article greatly streamlines the concept. Now I can give a quick intro to microprocessors the next time the subject comes up.

    5. Re:Nomination by ccweigle · · Score: 3, Funny

      On the other hand, I found this one pretty confusing.

  3. Yo yo by Burgundy+Advocate · · Score: 4, Funny

    And as the author notes, this kind of information is really crucial to get a grip on before Hammer arrives.

    Yah, you don't want to be caught without da knowledge when the MC gets back in town to teach these new kids a "lesson".

    2 legit 2 quit! Hammer time, yo!! Word!

    --
    Dragging people kicking and screaming into reality since 1996.
    1. Re:Yo yo by M.C.+Hampster · · Score: 3, Funny
      2 legit 2 quit! Hammer time, yo!! Word!

      Finally, someone really understands me.

      --
      Forget the whales - save the babies.
  4. Re:Oh really? by insanecarbonbasedlif · · Score: 3, Insightful

    The only information you'll need to know once Hammer has arrived is that it's the fastest thing on the planet, and the only mass-market 64-bit processor.
    Oh yeah, and where to buy one. :-)

    Except for us who have to make informed decisions about future upgrade paths and which processors are going to provide the best cost and performance for our specific applications. Sometimes you need to know the specifics of how a processor operates and what it's specific strengths and benefits are before you recommend changing a companies whole server base etc...

    --
    Just because I doubt myself does not mean I find your position compelling.
  5. I concur! Not a joke! by mekkab · · Score: 4, Funny

    It is nice to have an appreciation for the underlying mechanisms of the things we use.
    As Socrates said, the unexamined life is not worth living.

    But as many EE or even ECE people know, most programmers don't give a rats ass about what the hardware is doing. those that do have this understanding ( OS people, real-time people, embedded people, well a lot of people!) have it because they need it.

    I'm not arguing that it isn't beneficial to know the difference between SIMD, SISD, MIMD, MISD systems, but if you aren't programming or designing for parallel systems, how will this help you when a new processor comes to market?!

    The "Hammer" line is just a fumble for relevance. Guess what? We're reading this on a computer. The relevance is already there!

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:I concur! Not a joke! by warpSpeed · · Score: 5, Funny
      ( OS people, real-time people, embedded people, well a lot of people!)

      embedded people, are they, like, fetuses?

      But seriously (and to stay on topic), I am really excited about hammer too. 64 bit processors for the people! I hope the mobo manufacturs get some nice, commodity products out there so that hammer is a viable chioce for my desktop!

    2. Re:I concur! Not a joke! by Sobrique · · Score: 3, Informative

      SIMD ~= Array processing. Take this bazillion element array and add 1 to each. MIMD ~= current multiprocessing. x processors running x separate bits of code.
      MISD is fairly near useless, since it's basically one great big implicit race condition. It's included in the list for completelness only.
      (These two processors in parallel, add 1 to this element and multiply it by 2. So do you get 2 (x+1) or do you get (2x + 1))

  6. This is news how? by radiumhahn · · Score: 5, Funny

    Everybody knows computers work because the ONEs and ZEROs are at war with each other...

    1. Re:This is news how? by vectra14 · · Score: 4, Funny

      you should never bend computer wires too much. you see, 0's are round, so they get through fine, but 1's tend to get stuck in the bends =)

  7. But i thought by youngerpants · · Score: 4, Funny

    that my 'puter was powered by a series of little mice on little wheels.

    Suppose I'd better stop putting food for them in the coffee cup holder. Who would have thought that the nice man from IT support was right all along

  8. Guess what? by mekkab · · Score: 3, Interesting

    If you are in that position,
    chances are you don't need, or you could write this article.

    Also, if you are a big enough player, you get some sample procs and run some benchmark tests, maybe even write some of your own.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:Guess what? by jgerman · · Score: 3, Insightful

      Except for those who may want to be in that position in the future, except for students who want to learn about it, except for children taking their first steps into becoming really good with computers. Except for ANYONE who doesn't want to be clueless about what's going on with something they bought, and why. ;)

      --
      I'm the big fish in the big pond bitch.
  9. Re:Oh really? by adewolf · · Score: 3, Insightful

    The DEC Alpha's have been 64 bit for a long time and the Alpha backplane is the fastest in the biz.

    Alex

    --
    "The Brady Bunch is back...working homicide"
  10. Re:Here's What I'd like to see by baywulf · · Score: 5, Interesting

    I've been studying hardware design for a while now and the following course documents from the (former) ARSDigita university are a clear yet consise depiction of what you would learn in a beginnning microprocessor design course.

    http://www.aduni.org/courses/how_computers_work/

  11. if you *really* want to understand by ch-chuck · · Score: 4, Interesting

    build one of these

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  12. Re:Oh really? by Glock27 · · Score: 3, Interesting
    Except for us who have to make informed decisions about future upgrade paths and which processors are going to provide the best cost and performance for our specific applications. Sometimes you need to know the specifics of how a processor operates and what it's specific strengths and benefits are before you recommend changing a companies whole server base etc...

    No one with a clue would ever do this any other way than by buying/borrowing a system for evaluation and running the specific application as a benchmark.

    The beauty of Hammer is that doing so will be quite inexpensive compared to other comparable options. :-)

    I stand by my original post.

    (BTW, my vote for most innovative Hammer feature is the integrated memory controller(s) - memory bandwidth scales with processor count in SMP systems.)

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  13. wow by netwiz · · Score: 4, Insightful

    This is quite possibly the best "intro to computers" on a high level that I've ever seen, and it even delves into some of the more specifics of CPU operation. Kudos to Ars...

    However, I still don't see how this is relevant to Hammer, as the article doesn't even go into detail about different takes on architecture vis a vis Intel and AMD. There's a few links at the end to a discussion of the diffs in the G4e and the P4, but nothing on the AMD side.

    [offtopic]
    Personally, I'm getting wary of various AMD products. I continually see issues w/ AMD and games (the EQ debacle being one of them), I see general weirdness w/ my software on my Athlon, and it just reminds me of all the hideously weird incompatibilities I've had over the years (some that aren't even regularly reproduceable, maybe it's a bad mobo?), and it makes me recall a discussion w/ some of my friends:

    "If you want it to run right, use Intel. Everyone, _everyone_ tests w/ Intel stuff first. From MS (yah, boo, whatever) to id, from nVidia to Creative Labs, everyone tests on Intel _first_."

    I'm not trying to bash AMD, it's just that, well, every time I use an AMD system, I end up experiencing weird glitchy errors, that come and go as they please. While my Athlon setup has been orders of magnitude more stable than past AMD systems, it's still not the rock that my P3 was.
    [/offtopic]

    1. Re:wow by aero6dof · · Score: 4, Insightful

      Having built and bought systems for many years now, I've decided that the processor doesn't matter much for stability. If you want a stable system, you need to put thought and money into selecting a solid motherboard, chipset, and power supply.

      AMD's problem is that their image is that of a "cost-saving" choice. So some system builders who use AMD go into "cost-saving" mode on all the other compenents of the system -- leading to a greater chance of instablility and a bad rep for AMD.

  14. Re:why? by oliverthered · · Score: 3, Informative

    "Basically, Hammer (64 bit cpus) = larger addressing space, not nescessarily faster processing."
    I suggest you go read the developer docs for the hammer.

    Memory addressing has been re-designed, because no-one uses the protection model in x86. etc....
    Do you understand me, or the developer docs, probably not.
    now read Understanding the Microprocessor and say that the Hammer isn't an improvement.

    --
    thank God the internet isn't a human right.
  15. Ahh! by Inoshiro · · Score: 3, Funny

    Words bad, hurt Oog head!

    Oog simple Caveman, like Hammer. Oog use 64-bit Hammer bash! Oog buy AMD. Oog love AMD!

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  16. Computer Organization and Design by Snoochie+Bootchie · · Score: 3, Interesting

    For a more detailed treament of the topic, take a look at David Patterson's and John Hennessy's _Computer Organization & Design_. It is an excellent text book on the topic.

  17. In Soviet Russia... by Phosphor3k · · Score: 3, Funny

    The microprocessors understand YOU!

    1. Re:In Soviet Russia... by Mac+Degger · · Score: 3, Interesting

      Do a google for "silicon zoo"; you should find a site which has loads of pictures of 'silicon art', basically 'doodles' (well, too high tech to call them doodles, really) made on production chips, in the die margins, whereever.

      One of them has a message to russian reverse engineers, in cyrilic russian, to the effect of "only steal from the best" :)

      --
      -- Waht? Tehr's a preveiw buottn?
  18. Re:Here's What I'd like to see by dohnut · · Score: 4, Informative


    I think what you would like, although it's a bit dated, would be Understanding Digital Computers. This book takes starts at the gate level and goes through the layout and operation of a simple 8 bit CPU. I got this book when I was 13. When I went to college and took my digital architecture classes I aced them, and even though that was much more difficult I credit my success to having read this book first instead of diving in naked like most students do/did. It's been forever since I've read it, but I still have it on my bookshelf.

    --
    Stupider like a fox! - H.S.
  19. This reminds me... by TeknoHog · · Score: 3, Funny

    You can compress data by removing all zeros, because they don't contain any information anyway. Besides, a "0" is more bulky than a "1" so you'll save more than half of the space.

    --
    Escher was the first MC and Giger invented the HR department.
  20. Pretty Useful by Badgerman · · Score: 3, Interesting

    This was definitely worth posting - it's a good, helpful summary. It's the kind of thing that I wish there was more of since I can pass the article on to people who need it.

    I'd like to see a series of books on the way computers work, at various levels of knowledge, so people can get the knowledge in bite-sized chunks. It'd be helpful to me, since I often end up being "Mr. Explainer" and I'd LOVE to just hand someone a book and get back to work.

    --
    "The Sage treasures Unity and measures all things by it" - Lao Tzu
  21. Just a few problems by drinkypoo · · Score: 4, Informative
    First of all, I think it would have been beneficial to examine a really stupid CPU (like the 8086 perhaps) before launching into stuff like SIMD.

    Second, the first two instruction types given are arithmetic and load/store. Unfortunately something like half the instructions (or more) in a program are usually arithmetic and branch instructions (conditional jumps in fact.) So those are definitely the things to discuss first, before load/store, if you're going to do it that way. I personally would bring all three types of operation to the front right away and then delve into how they work, but that's a personal decision.

    Speaking of branching instructions he describes forward and backward branches. This is silly. There are two kinds of branches, relative (offset) and absolute. You can jump to a location which is +/- however far from your current position, or you can jump to a specific address. Some CPUs only allow one or the other of these. x86 uses both. (A short jump is an 8 bit signed jump, -128/+127 offset from your current location. A near jump is 16 bit. A far jump specifies a segment and offset, because x86 uses a segmented memory model.) So branching forward or backward is only a significant concept (at all - of course the assembler handles this for you) when talking about relative branches.

    I thought that this article was going to talk about how it was actually done. Maybe I'm just special (where's my helmet?) but I've got most of this material (in this article) out of previous ars technica articles. The stuff in this comment I'm writing now, on the other hand, is based on a class in x86 assembly, the final for which is on this coming Tuesday. I want to know how the instruction decoder is put together, for example.

    If you ignore every other point I've made in this, consider the possibility that it is a big mistake to start talking about heavily pipelined CPUs. It would be best to start with the classic four-stage pipeline (fetch -> decode -> execute -> write) in which an instruction is fetched from memory (via the program counter; In x86 this is coupled with the CS register (code segment) and it is called the instruction pointer (IP or on 32 bit CPUs in 32 bit mode, EIP) and so you load the new instruction from CS:IP. As per my above paragraph a short or near jump updates IP or EIP, a far jump updates CS and [E]IP.

    Finally, is it just me or is it amusing that we're supposed to understand this before hammer arrives but every page has a gigantic animated Pentium IV ad? Up yours, ars adsica.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    1. Re:Just a few problems by drinkypoo · · Score: 3, Informative
      Is this a troll, or are some people still being taught about x86 segments and offsets?

      Probably everyone who takes a class in x86 assembler (I would have preferred 68k but x86 is what was offered here) is learning about segmented addressing. This is because:

      1. x86 CPUs still use segmented addressing. It is necessary to cross the 4GB boundary. In addition BIOS executes in real mode so even the most modern x86-based systems do segmented addressing at some point in the boot process.
      2. ASM is used for three things. The first is inline assembler for optimization. The second is drivers, where things either have to happen on schedule (one operation MUST follow the prior and be followed by another specific operation.) The third is embedded systems where ALL of the code is sometimes STILL written in assembler, from front to back, typically runs on small x86-based computers running some form of DOS, and is typically 16 bit real mode code.

      In addition even in 32 bit mode you still have and use segment registers. Oh, you might never CHANGE them, but they are still there. As the sibling to this comment points out, you can use them for optimization (changing DS and ES to allow your offsets to be the same, or smaller than they otherwise would be) and save a few cycles. The registers are there, and still in use.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Just a few problems by Hannibal_Ars · · Score: 5, Informative

      "First of all, I think it would have been beneficial to examine a really stupid CPU (like the 8086 perhaps) before launching into stuff like SIMD."

      Did you read the article, or did you just skim it. Nowhere do I launch into a discussion of SIMD. The only reason the term is present is because I used a diagram from a previous article.

      "Second, the first two instruction types given are arithmetic and load/store. Unfortunately something like half the instructions (or more) in a program are usually arithmetic and branch instructions (conditional jumps in fact.) So those are definitely the things to discuss first, before load/store, if you're going to do it that way. I personally would bring all three types of operation to the front right away and then delve into how they work, but that's a personal decision. "

      Yes, it's "personal decision," and I opted to go a different route. I think the order in which I introduced the concepts works. Other orders, are, of course, possible.

      "Speaking of branching instructions he describes forward and backward branches. This is silly. There are two kinds of branches, relative (offset) and absolute. You can jump to a location which is +/- however far from your current position, or you can jump to a specific address."

      Once you're done with your little intro to ASM, chief, you might stick around for some more advanced courses. In them, you'll learn that what branch prediction algorthims care about are whether a branch is forward or backward, because this tells you whether or not to assume it's part of a loop condition or not. I won't explain further, though, because a. I've covered the topic in previous articles, and b. I don't like to feed trolls anymore than I have to.

      "I thought that this article was going to talk about how it was actually done. Maybe I'm just special (where's my helmet?) but I've got most of this material (in this article) out of previous ars technica articles."

      Maybe if you'd have read the intro a little more closely, you'd know that I made it clear that everything in that article was covered in more depth in previous Ars articles. This article was intended as background for those articles.

      "If you ignore every other point I've made in this, consider the possibility that it is a big mistake to start talking about heavily pipelined CPUs."

      I don't discuss heavily pipelined CPUs, or pipelining in general, in this article. I do refer back to previous articles on the P4, but that's recommended as furthe reading. I'll cover pipelining in a future article (a point that I made clear in the conclusion.) And yes, I know that PC = IP in x86 lingo. Thank you. Now we all know that you know, too. Here's a cookie.

      "Finally, is it just me or is it amusing that we're supposed to understand this before hammer arrives but every page has a gigantic animated Pentium IV ad? Up yours, ars adsica. "

      I made one reference to Hammer in the intro, along with a reference to Itanium2, Yamhill, etc. Let it go, man. This article doesn't pretend to have much of anything specific to do with AMD.

      --
      Senior CPU Editor | Ars Technica | http://arstechnica.com/