Slashdot Mirror


The Legacy of CPU Features Since 1980s

jones_supa writes: David Albert asked the following question:

"My mental model of CPUs is stuck in the 1980s: basically boxes that do arithmetic, logic, bit twiddling and shifting, and loading and storing things in memory. I'm vaguely aware of various newer developments like vector instructions (SIMD) and the idea that newer CPUs have support for virtualization (though I have no idea what that means in practice). What cool developments have I been missing? "

An article by Dan Luu answers this question and provides a good overview of various cool tricks modern CPUs can perform. The slightly older presentation Compiler++ by Jim Radigan also gives some insight on how C++ translates to modern instruction sets.

180 comments

  1. You are still right. by Lumpy · · Score: 0, Redundant

    All that is added is more instructions. but everything is still only binary math.

    --
    Do not look at laser with remaining good eye.
    1. Re:You are still right. by fintux · · Score: 1

      Actually there are also random number generators and all kinds of controllers (memory controller etc.) in many CPUs nowadays. But yes, mostly still binary math.

  2. Ask Slashdot by Anonymous Coward · · Score: 0

    The new Google, and hey the answer is even provided in the summary!

  3. Virtualisation dates from the 1960's ! by Eunuchswear · · Score: 5, Informative

    The first large scale availability of virtualisation was with the IBM 370 series, dating from June 30, 1970, but it had been available on some other machines in the 1960's.

    So the idea that "newer machines have support for virtualisation" is a bit old.

    --
    Watch this Heartland Institute video
    1. Re:Virtualisation dates from the 1960's ! by Anonymous Coward · · Score: 0

      Damn kids and their mechanical adders...

    2. Re:Virtualisation dates from the 1960's ! by Anonymous Coward · · Score: 1

      I agree. I used to work with IBM 370's and their VM/CMS back in the 70's.

    3. Re:Virtualisation dates from the 1960's ! by rwise2112 · · Score: 1
      Yeah.

      Also, vector processors are also from the 70's as well.

      --

      "For every expert, there is an equal and opposite expert"
    4. Re:Virtualisation dates from the 1960's ! by fuzzyfuzzyfungus · · Score: 1

      A nontrivial amount of 'progress' in hardware is really a story of the toy microcontrollers running DOS (that mortals could actually afford) gradually reinventing or acquiring features old enough to have owned hideous polyester disco suits; but historically only available on IBM systems that leased for the GDP of a small nation state...

    5. Re:Virtualisation dates from the 1960's ! by Eunuchswear · · Score: 2

      but historically only available on IBM systems that leased for the GDP of a small nation state...

      Apart from virtualisation not much has been pioneered by IBM.

      And we used to joke back in the day that the reason IBM were so keen on virtualisation was that they couldn't write a multi-user operating system, so they worked out how to let each user run his own copy of a single user operating system.

      --
      Watch this Heartland Institute video
    6. Re:Virtualisation dates from the 1960's ! by bws111 · · Score: 2

      Riiight. Other than minor little things like:

      System architecture being independant of machine implementation
      8 bit bytes
      32 bit words
      Byte addressable memory
      Standard IO connections

      And that is just stuff from the 360 family, 50 years ago.

    7. Re:Virtualisation dates from the 1960's ! by Eunuchswear · · Score: 1

      System architecture being independant of machine implementation

      Except that System 360 didn't really do that (see IBM System/360 Model 20 for example)

      And other systems, for example the ICT 1900 range, did.

      Standard IO connections

      What? No connector conspiracy?

      IBM weren't alone in standardising connectors, see ICT standard interface for example.

      It is true that System 360 was a huge wake up call for the industry, and it's effects stil linger today.

      --
      Watch this Heartland Institute video
    8. Re:Virtualisation dates from the 1960's ! by ripvlan · · Score: 1

      Ah man - you beat me to it. All of this Virtualization and Vector CPU stuff is pretty old. What is old is new again?!

      VAX/VMS, IBM/360, and most mainframes of yesteryear all had the concept of virtualization. When I learned what an OS was - it was in this context. This new fangled Unix thing was a switch to multi-program over multi-OS. Cheaper smaller CPUs without these extra features allowed for high-compute applications to exist on the desktop for personal use. And this enable lots of researchers to do their own thing - at a reduced cost.

      The balance of processing has moved back and forth over the years. 100% Server Mainframe (terminals) - to 100% Desktop (PCs) - to Network distributed sharing (X/Unix) - to Workstations on a Network - to the Web (looks like X) - and then back to the Server (Virtual Desktop VDI). There have been varying power of clients, full blown Workstations to Mobile devices. I remember watching the demo of Doom running on a mobile phone - which was really running on a Server with a vGPU outputting a video stream to the mobile device. And I've seen 3D rendering apps work the same way (vCPU/vGPU).

      My wayback machine memory is getting a tour of the local DEC plant when I was a kid. They showed us this thing called the CPU - it was as big as an IBM PC (probably the PDP/11 inside of a 8400). What a CPU was back then isn't what we consider it today. I remember thinking (as a kid) - man these things are huge and my home PC is so small... what the heck...that'll be gone soon ;-)

      The more things change - the more they stay the same. What the OP knew in 1980 is relevant - only the technical details have changed.

    9. Re:Virtualisation dates from the 1960's ! by ripvlan · · Score: 1

      sorry - meant 8600.

    10. Re:Virtualisation dates from the 1960's ! by plcurechax · · Score: 1

      The first large scale availability of virtualisation was with the IBM 370 series, dating from June 30, 1970, but it had been available on some other machines in the 1960's.

      So the idea that "newer machines have support for virtualisation" is a bit old.

      This point has been made since the first virtualization software on microcomputers were being experimented with. Those who don't know history are doomed to repeat it (or something similar depending how diligent your citation tracking it).

      I'm still waiting for someone tell us that IBM discovered perceptional acceptable lossy compression, such as JPEG, MP3, and MPEG, back in the mid-1960s mainframe era to generate image and videos for punchcards distribution.

      And Xerox PARC labs had a portable MP3 player prototype with a seamless white case with a steering-wheel styled interface, locked in its vaults of time.

    11. Re:Virtualisation dates from the 1960's ! by sjames · · Score: 2

      Yes, but he is clearly writing for people who grew up professionally with the x86.

      In the PC world, efficient virtualization is a new thing even though mainframes had it long ago.

    12. Re:Virtualisation dates from the 1960's ! by Rockoon · · Score: 1

      Yes, but he is clearly writing for people who grew up professionally with the x86.

      There was never an 8-bit x86, and that includes the 8088.

      --
      "His name was James Damore."
    13. Re:Virtualisation dates from the 1960's ! by david_thornley · · Score: 1

      It's a bit before my time, but I believe OS/VM was not originally an IBM product, but was from people in the User Group. There was a Free Software/Open Source culture back then, and then as now anybody who had a computer could participate. This included hacks to the OS itself, like HASP, which would read a whole card deck at a time and put it on disk, rather than the program reading cards from the reader each time it wanted more input.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    14. Re:Virtualisation dates from the 1960's ! by david_thornley · · Score: 1

      The 360/20 was an exception. All other 360s ran the same microcoded machine language, however different their internals were.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    15. Re:Virtualisation dates from the 1960's ! by sjames · · Score: 1

      The 8088 had an 8 bit external bus. Meanwhile, the z80 could do 16 bit fetches in a manner quite similar to the way an 8088 did a 16 bit fetch. Either way, 1 memory cycle got you 8 bits, so which is 8 bit and which is 16?

    16. Re:Virtualisation dates from the 1960's ! by bws111 · · Score: 1

      There is no OS/VM. VM-370 came from CP-67, which was an IBM project. No doubt many users contributed later, but the origins were IBM.

      HASP was an extension to OS/360 (z/OS predecessor) and has nothing to do with VM.

    17. Re:Virtualisation dates from the 1960's ! by Rockoon · · Score: 1

      The 8088 had an 8 bit external bus

      ..which has nothing to do with being 8-bit...

      bus width
      address lines
      fastest word size

      Which one of these has never been used to define the bitness of a machine? Yes, its the one you are using.

      Anyone with a triple channel i7 has a 192-bit desktop right now (thats the width of the data bus of first gen i7's) according to your idea of what machines a machine 8-bit...

      no IBM PC was ever 8-bit.. never.. they started with a 16-bit word size and 20-bit addresses.. some might argue they were 20-bit, but its pretty well accepted that 16 is the right description while 20 is the wrong description.

      8 isnt even wrong, its just retarded... something someone could only think was right if they didnt know fucking anything at all about what they are talking about... thats you.. and you know it.. so why are you talking? You know you certainly shouldnt be pretending to be knowledgeable.. so why are you doing it?

      --
      "His name was James Damore."
    18. Re:Virtualisation dates from the 1960's ! by sjames · · Score: 1

      Now go upstairs and change your pants.

      You also apparently don't know how multiple memory channels work. Hint: it's separate busses, that's where the speed comes from.

    19. Re:Virtualisation dates from the 1960's ! by Rockoon · · Score: 1

      Your defense of your claim that the 8086/8088 were 8-bit processors has come to this.

      I'd get off your lawn but its only artificial turf.... some dork that signed up to slashdot really early but never actually did shit...

      --
      "His name was James Damore."
    20. Re:Virtualisation dates from the 1960's ! by cwsumner · · Score: 1

      Note: The people using the terms 8bit/16bit were not so concerned with the CPU or ALU registers, they didn't know about the 4004 or 8008 microcontrollers. They were interested in how expensive the Memory boards were, and how fast the memory was. Which is dependent on the external data bus.

      There are multiple dialects of "Technish", just because you speak a different language doesn't mean you are right. ...or that they are right either.

  4. 1980s? by Anonymous Coward · · Score: 0, Interesting

    That's the 1960s, friend. Conceptually, not much has changed since then, it's just that it took a while for our manufacturing/matter manipulation to get small enough to make enough reliable transistors to implement these ideas cheaply.

    You probably *heard about these ideas* for the first time in the 1980s, though.

    1. Re:1980s? by operagost · · Score: 3, Insightful
      Everything the author wrote was accurate, although misleading. He wrote, "In the 80s, you might have used an 8-bit CPU." You also might have used a 16, 24, 32, or 36 bit CPU.

      He wrote, "introduced to x86 since the early 80s include paging / virtual memory, pipelining, and floating point." We know that some platforms had some of these features earlier than x86, but he was speaking to those who had been programming on the x86 platform. Of course, this ignores the x87 math coprocessor, but I digress.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    2. Re:1980s? by Anonymous Coward · · Score: 1

      Did you read the bit at the *top* of the article:
      "Everything below refers to x86 and linux, unless otherwise indicated. History has a tendency to repeat itself, and a lot of things that were new to x86 were old hat to supercomputing and HPC."

    3. Re:1980s? by Anonymous Coward · · Score: 1

      You are overreacting.

      There must be computers with registers far wider than 64-bits today. The article simply stated the most common capabilities.

    4. Re:1980s? by Opie812 · · Score: 5, Funny

      Then it's settled. Your edge case must apply to everybody. The article is wrong.

      --
      I'm not a nerd. Nerds are smart.
    5. Re:1980s? by Anonymous Coward · · Score: 0

      I've just stopped reading the fucking article at this point:

      For one thing, chips have wider registers and can address more memory. In the 80s, you might have used an 8-bit CPU, but now you almost certainly have a 64-bit CPU in your machine.

      It's almost like you didn't even read the sentence. Should I say WTF and stop reading because I currently use a 32-bit CPU. No, he was saying 8-bit was the most popular back then and 64-bit is the most popular now. He didn't write the fucking article just for you and your CPU history.

    6. Re:1980s? by Anonymous Coward · · Score: 0, Troll

      Eunuchswear is obviously an old person, if he was using computers in the '70s, and can't see very well any more. Either that or it's the Alzheimers, and he's forgotten the beginning of the summary by the time he's read to the end. So go easy on him.

    7. Re:1980s? by jofas · · Score: 2

      Current 64-bit path/register cpu architechture will satisfy most computing requirements for some time to come. The only real reason to increase data path width is to address more data. Until we have need to address 16 exabytes, 64 bit will remain in favour everywhere because $$$.

    8. Re:1980s? by operator_error · · Score: 4, Insightful

      I am staying away from your lawn, that's for sure. If my frisbee lands over there, you can keep it; you've earned it.

    9. Re:1980s? by fisted · · Score: 1

      What does that even mean? Pipeline-able executions? How much data? There is no context.

      I think we can safely assume "yes" and "one machine word" here

      [rants how crude the author's understanding of the matter is without giving a grain of indication that he's got a better understanding]

      Speaking of people who sound like they're in junior high.

    10. Re:1980s? by Eunuchswear · · Score: 1

      The author states right at the beginning of the article that he's focusing on x86.

      That's what makes the article absurd. The original question, to which the article is a response was:

      My mental model of CPUs is stuck in the 1980s: basically boxes that do arithmetic, logic, bit twiddling and shifting, and loading and storing things in memory. I’m vaguely aware of various newer developments like vector instructions (SIMD) and the idea that newer CPUs have support for virtualization (though I have no idea what that means in practice).

      What cool developments have I been missing? What can today’s CPU do that last year’s CPU couldn’t? How about a CPU from two years ago, five years ago, or ten years ago?

      So the moron then proceeds to blather on about Intel x86, quoting as "cool developments" stuff that has been around for forty odd years.

      --
      Watch this Heartland Institute video
    11. Re:1980s? by RabidReindeer · · Score: 2

      You are a retarded idiot. The author states right at the beginning of the article that he's focusing on x86. In the (late) 80s, most people had an IBM PC, if they had anything.

      "Most", maybe. But the late 1980s were the heyday of the Macintosh, Amiga and Atari ST.

      Come to think of it, I'm not even sure of "most" outside the business world. The Commodore 64 and Apple computers fit in there somewhere.

    12. Re:1980s? by Rockoon · · Score: 1

      You are a retarded idiot. The author states right at the beginning of the article that he's focusing on x86. In the (late) 80s, most people had an IBM PC, if they had anything.

      ..and there was never an 8-bit IBM PC. Talk about retarded... you're the idiot I guess.

      --
      "His name was James Damore."
    13. Re:1980s? by Anonymous Coward · · Score: 0

      RTF entire article. He caveated enough to get by without being technically wrong. Although his blog is highly x86-centric because of his work background, he admits he hasn't had the 50 year lifespan to have seen everything so have to give him some leeway.

      The blog isn't a peer-reviewed paper or textbook. Slashdot comment section on the other hand....

    14. Re:1980s? by Anonymous Coward · · Score: 0

      Eunuchswear is obviously an old person, if he was using computers in the '70s, and can't see very well any more. Either that or it's the Alzheimers, and he's forgotten the beginning of the summary by the time he's read to the end. So go easy on him.

      Crochety old people raising trivial objections because they are either starved for attention or resent the idea of reading what's in front of them are very well known to anyone who's ever worked a waitstaff/service job to pay for college. It's just not PC to talk about it, but anyone who's been there knows what I am talking about. Before the Baby Boomers these were rare individuals and it was easier to have compassion for them, but now they're everywhere.

    15. Re:1980s? by Anonymous Coward · · Score: 0

      I'm sorry about your aspergers.

    16. Re:1980s? by Anonymous Coward · · Score: 0

      Depends on your definition of 8-bits. The 8088 in the original IBM PC had an external 8 bit data bus, unlike the 8086.
      16 bit addressing had to be accomplished with additional hardware.
      Guess that means you are at least partially retarded.

    17. Re:1980s? by Anonymous Coward · · Score: 0

      The Intel (or AMD) CPU that you used to post that comment has registers of many different widths:

      Vector instructions operate on registers with 128-, 256-, and 512-bit registers: http://en.wikipedia.org/wiki/X86#x86_registers
      Floating point instructions that use the extended precision modes operate on registers with 80 bits: http://en.wikipedia.org/wiki/X86#Floating_point_and_SIMD

    18. Re:1980s? by Anonymous Coward · · Score: 0

      It's quite sad that people don't know more about the history of technology.

      I'd recommend a nice, fun read called the Nonlinear History of Radio. Google for the PDF. That's for electronics and the wonderful adventure it was in the first half of the 20th century.

      As for computers, I just know the stuff from the 1960s because it's awesome. To have such ideas and to just implement them with whatever they had at hand was really cool.

      I mean, I wonder what subby's brain would do if he read about this:

      https://en.wikipedia.org/wiki/...

      Or watched these

      https://www.youtube.com/watch?...
      https://www.youtube.com/watch?...
      https://www.youtube.com/watch?...

      Does he think this was done with a relay, maybe a lightbulb?

    19. Re:1980s? by pupsocket · · Score: 1

      A llifetime of stereotyping will do that to you.

    20. Re:1980s? by Rockoon · · Score: 0

      Depends on your definition of 8-bits. The 8088 in the original IBM PC had an external 8 bit data bus, unlike the 8086.

      The size of the data bus has never mattered wrt low level programming, and everyone who was ever involved in said low lever programming knows that, meaning that you are not included in that group. Conveniently you became an anonymous coward to defend yourself with even more ignorance. Idiot.

      The size of the address bus was 20-bits on both 8088 and 8086. Thats much wider than we see here in your last ditch effort to label these are 8-bit processors. Idiot.

      Guess that means you are at least partially retarded.

      Nope, it means that you dont know what matters and what does not. Idiot.

      --
      "His name was James Damore."
    21. Re:1980s? by Darinbob · · Score: 1

      True. The one article linked is every specifically x86 oriented (all hail to the monoculture). There really are far far too many people out there still who act as if microcomputers were the beginning of computer history.

    22. Re:1980s? by Darinbob · · Score: 2

      There is some interesting stuff. But it mostly boils down to ways to optimize code. The older chips may have had the idea for something but didn't implement it due to the enormous cost. Sometimes it's handy to have just a couple of instructions to help out rather than add a giant feature; is in having no floating point or multiplication (early RISC machines) but having an instruction to find first or last bit set which makes the software library to do this much faster.

      There are instructions to help out cryptography, which I don't think any computer in the 60s was concerned enough about to devote expensive hardware to it. Instructions to support atomic operations even within a multiprocessor environment is present in many modern CPUs too, whereas in the past if there were multiprocessors there would usually be some round-about way to do this. As processors got more complex with out of order execution and delayed writes, there was a need for instructions to synchronize operations, such as the "EIEIO" instruction on the PowerPC. Possibly some of this was present on early supercomputers but today these are present in mainstream processors.

    23. Re:1980s? by Darinbob · · Score: 1

      It's not that we're all crotchety though. But these articles are like going to a history class where you're taught that everything before 1960 isn't relevant, so just assume that JFK was the first president. There a monoculture out there with the PC, but it's not a representative of the state of the art, in the past or the present. It's not the most common chip, it's not the best designed chip, it's not a good chip for learning architecture with, there's nothing much to recommend it for except that it's compatible with Windows and Mac OS and the volume chipped makes it relatively inexpensive.

      If you don't learn history you're doomed to repeat it.

    24. Re:1980s? by Darinbob · · Score: 1

      You can have a memory bus interfaces a wider than 64 bits. This has nothing to do with word size or address space size, but the fact that reading and writing more bits at once is a big speed increase. Ie, DIMM memory with a 64 bit interface (more if you count ECC) was common long before there were 64-bit PCs.

      There are also floating point representations in common use with 80 bits, and a 128 bit format is in use but less common.

    25. Re:1980s? by Darinbob · · Score: 1

      8 bit was not the most popular back then. And 64 bit is not the most popular today. This may be true back then if you consider only the newly created microcomputer segment, and it may be true today if you consider only the PC & Mac segment.

      When 8 bit CPUs were new and thus few in number we had lots of computers already with 16 bits and more. The 8 bit CPUs were primarily used by hobbyists at the time, or as support for larger computers.

      Today the x86-64 is not the most common chip, because the majority of chips out there are on embedded systems rather than PCs and Macs. Count up all those phones which probably have more than one CPU on them, the CPU controllling your fuel system in the car, the CPU in your microwave, television, router, etc. The most common word width for embedded systems are 16 and 32 bits, and I think even 8 bit embedded systems out number the 64 bit ones.

      The article does not feel like it's been written by a junior high school student, I agree. But it does feel like it's written by an undergraduate student in the middle of the curve.

    26. Re:1980s? by Jeremy+Erwin · · Score: 1

      Moderation is our form of peer review.

    27. Re:1980s? by oddtodd · · Score: 1

      >> If you don't learn history you're doomed to repeat it.

      “What we learn from history is that we do not learn from history”

        Benjamin Disraeli

      --
      I have plenty of common sense, I just choose to ignore it. -- Calvin
    28. Re:1980s? by Blaskowicz · · Score: 1

      What about that part of the question?

      The things I’m most interested in are things that programmers have to manually take advantage of (or programming environments have to be redesigned to take advantage of) in order to use and as a result might not be using yet. I think this excludes things like Hyper-threading/SMT, but I’m not honestly sure.

      That is what the article is really about and what it is answering.
      The answers seem comprehensive and useful, i.e. you can switch page size to reduce pressure on the TLBs if your application benefits from it, you can ignore the branch penalties due to the hardware being so efficient at running branches.
      Your old rat's nest mainframe did not run at over 1GHz with a million or however many transistors dedicated to OoOE and branches you dumbfuck.

    29. Re:1980s? by Eunuchswear · · Score: 1

      Your old rat's nest mainframe did not run at over 1GHz with a million or however many transistors dedicated to OoOE and branches you dumbfuck.

      The CDC 6600, around 1964, had partial out of order execution. The IBM 360/91, 1966, had out of order execution.

      Twat.

      --
      Watch this Heartland Institute video
    30. Re:1980s? by tibit · · Score: 1

      Given that we had 80-bit extended precision FPU registers in 8087 chips 30 years ago, I don't think the 64-bit path/register assertion holds any water. I have lots of code that uses 128 bit registers and runs on pretty boring consumer CPUs. The reason to increase data path width is not to address more data, but to increase the throughput. I use 128 bit registers with code that uses no virtual memory and runs with a couple MBytes of RAM.

      --
      A successful API design takes a mixture of software design and pedagogy.
    31. Re:1980s? by tibit · · Score: 1

      Moreover: which cycles? Core? FSB? Memory? Eh? Under what test conditions?

      --
      A successful API design takes a mixture of software design and pedagogy.
    32. Re:1980s? by cwsumner · · Score: 1

      ... where you're taught that everything before 1960 isn't relevant, ...

      where you're taught that everything before 2000 isn't relevant, ...
      Fixed that for you. 8-)

    33. Re:1980s? by cwsumner · · Score: 1

      Current 64-bit path/register cpu architechture will satisfy most computing requirements for some time to come. ...

      "There is no reason that anyone would need more than 640KB."
      "The maximum number of computers needed in the United States is five."

      But yeah, 64bit is probably enough for a little while... 8-)

    34. Re:1980s? by cwsumner · · Score: 1

      I am staying away from your lawn, that's for sure. If my frisbee lands over there, you can keep it; you've earned it.

      Thank you. But I usually throw the Frisbees back, when I walk the dog. 8-)

  5. Prescott by Anonymous Coward · · Score: 1

    Also served as a space heater.

  6. Easily my favorite modern features by PhrostyMcByte · · Score: 4, Informative

    The latest generation of CPUs have instructions to support transactional memory.

    Near future CPUs will have a SIMD instruction set taken right out of GPUs where you can conditionally execute without branching.

    1. Re:Easily my favorite modern features by Anonymous Coward · · Score: 0

      Near future CPUs will have a SIMD instruction set taken right out of GPUs where you can conditionally execute without branching.

      Oh you mean like ARM has had since 1987?

    2. Re:Easily my favorite modern features by Anonymous Coward · · Score: 0

      Unlike today's CPUs which have GPUs taken right out of GPUs where you can conditionally execute without branching.

    3. Re:Easily my favorite modern features by Misagon · · Score: 2

      Yes, but instead of having a status register, you compare each item in one vector with each vector in another and get the results as a vector of booleans.
      Then execute a SIMD instruction, where each component scalar operation is conditional according to each corresponding boolean.

      Or, you could convert that vector of booleans into something else. For instance, you could count the number of leading 1's in the vector and store into a scalar, which would allow you implement operations such as strlen() or strcmp() with vectors.
      (It is a bit like programming in APL, if you have tried it)

      These types of operations have hitherto mostly been done by DSPs.
      An architecture for general-purpose computing under development that would do this well is The Mill. Mind you, it is very interesting in other ways. There is a lot of stuff about it on the web site, and good talks about various features on Youtube.

      --
      "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
    4. Re:Easily my favorite modern features by Anonymous Coward · · Score: 0

      It is great to hear that had already in 19. I am sure that also had in 19. What's great with this announcement is that will have both and as well as and (which I have no doubt also existed on some special purpose cpu ages ago), and manage to run them both at a much higher clockspeed, on multiple cores.

    5. Re:Easily my favorite modern features by Anonymous Coward · · Score: 0

      Sorry slashdot mangled everything I put inbetween less than and greater than signs.

      It is great to hear that $CPU_X had $FEATURE_X already in 19$YEAR_X. I am sure that $CPU_Y had $FEATURE_Y in 19$YEAR_Y. What's great with this announcement is that will have both $FEATURE_X and $FEATURE_Y as well as $FEATURE_Z and $FEATURE_W (which I have no doubt also existed on some special purpose cpus ages ago), and manage to run them both at a much higher clockspeed, on multiple cores.

    6. Re:Easily my favorite modern features by Anonymous Coward · · Score: 0

      That is just a mask update instruction, though. The question is whether you also want a branch-or-predicate style operation, that performs an implicit update of the mask and will branch if it all falls one way or the other. Anything else and you have to be careful to tie the scalar execution with the SPMD execution on the CPU core.

      In practice, though, I don't think mask manipulation is the biggest differentiator of GPU instruction sets. It's fully flexible memory addressing for read and write. Mask manipulation is as much a programming model issue as a hardware issue after a certain point of vector unit flexibility, and I think AVX is past that point already.

    7. Re:Easily my favorite modern features by avgapon · · Score: 1

      Unfortunately, at the moment the implementation is so buggy as to be useless.

    8. Re:Easily my favorite modern features by bws111 · · Score: 1

      Only on Intel. IBM Z and POWER processors have transactional memory.

    9. Re:Easily my favorite modern features by Darinbob · · Score: 2

      A lot of systems are going with a traditional general purpose CPU for the control system, but DSP CPUs for the hard core or time critical calculations. DSPs already have a lot of SIMD features.

      What's interesting is that DSPs are also adding more and more general purpose capabilities.

    10. Re: Easily my favorite modern features by Anonymous Coward · · Score: 0

      Like ARM (circa 1990).

  7. Re:You are still wrong by Anonymous Coward · · Score: 4, Informative

    The IBM 360/370 line and its successors have had decimal arithmetic (in addition to binary and after the 370/158 floating point) since the 1960/70s. Others have had these also.

  8. Cooking by morgauxo · · Score: 4, Funny

    There was a period in the 0s when PC processors were good for cooking eggs. You had to be careful with the AMD ones though, they had a tendency to burn the egg quickly.

    1. Re:Cooking by unixisc · · Score: 1

      I would imagine that the prizes for that would go to the Itanium and the Alpha. I've always thought it would be neat if one could establish a cluster farm in the open in the North Pole of Cold in Siberia, where the CPUs could be laid out w/o heat sinks and overclocked. It could be a good way of warming the air, while also providing fantastic supercomputing facilities. Of course, they'd have to be laid out in ways that they always face a wind chill of -40.

      Of course, one is more likely to get something out of an Alpha than an Itanium, but since the former is dead, I guess the Itanium will have to do

    2. Re:Cooking by Anonymous Coward · · Score: 2, Funny

      Since then, we have offloaded that task to the graphics card, thereby freeing up the main CPU for hash browns.

    3. Re:Cooking by Anonymous Coward · · Score: 0

      Indeed, the Thunderbirds were lightning fast at it.

    4. Re:Cooking by jellomizer · · Score: 4, Informative

      That was during the Mega/Gigahertz war, during the Golden Age of the Desktop.

      Power Usage wasn't an issue. Heating wasn't much of an issue as you can fit big honking liquid cooled heat sinks to your CPUs. We had these big upgradable towers which gave us room to fill with stuff.

      So we had hotter CPU's because we wanted the faster clock speed.

      What happened? Well first 3ghz kinda became the max you can go, and we moved to more parallel systems. (Multi-Core CPU's, and GPU), and we wanted more portable devices. Laptops became far more popular then smartphone and tablets. So power usages, size, and heat became a bigger issue.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    5. Re:Cooking by AmiMoJo · · Score: 1

      Shirley you mean Intel. Around 2000 the Pentium 4 silliness was in full swing. Super long execution pipeline, totally reliant on high clock speeds for performance. Those things could burn the Intel logo into your toast in under 5 seconds.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    6. Re:Cooking by operator_error · · Score: 2

      Why did you call that person Shirley?

    7. Re:Cooking by SuricouRaven · · Score: 1

      I've never worked with Itanium or Alpha, but on PCs the Pentium 4 was the undisputed King of Watts. Power usage on it got rather silly. You see that odd little four-pin power cable you going to the mainboard in addition to the main power bundle? That's the supplimentary power supply introduced to feed the insatable demands of the P4.

    8. Re:Cooking by Anonymous Coward · · Score: 1

      What happened? Well first 3ghz kinda became the max you can go, and we moved to more parallel systems. (Multi-Core CPU's, and GPU)

      Now if we can just get the damn software developers to implement these 'parallel' optimizations, many still don't (see Windows Vista when it first came out) and there are still many others that are still stuck in the single-threaded, single cpu/gpu mindset of throwing more raw power at it to cover up their poorly optimized crap.

    9. Re:Cooking by Anonymous Coward · · Score: 0

      I used to share an office and hallway with people working on a research project at the South Pole. There were plenty of stories of problems with their computers overheating, and issues where they would try to prop a door open, but it was difficult to get good circulation still while avoiding over doing it. It sounded like a mess, in part because getting equipment there was tricky, so corners got cut. Plus there was not much network connectivity, with limited bandwidth from satellites just barely visible for part of the day, with filtered data sent over the link and the bulk data shipped via tapes once a year.

    10. Re:Cooking by sjames · · Score: 1

      Not quite that, but there is a supercomputing center in Alaska to take advantage of easy cooling.

    11. Re:Cooking by unixisc · · Score: 1

      A solution might have been leaving the computers outdoors - on the terrace, as opposed to indoors, w/ a shade above it to prevent snowfall from landing on the board itself, while having the wind available from all 4 directions. Actually, that's why I used the spots in Siberia for my example - you wouldn't necessarily need a satellite for the internet and power too would be available. Keep a roof over to prevent rain or snow from actually falling on them, but have it open on all 4 sides so that regardless of how the wind blows, the CPUs get cooled.

    12. Re:Cooking by demonlapin · · Score: 1

      Stop what you're doing and watch Airplane! now.

    13. Re:Cooking by Anonymous Coward · · Score: 0

      Stop what you're doing and watch Airplane! now.

      And when you've finished watching it with the jokes taken out (i.e back to the original zero hour script)

      https://vimeo.com/69691270

    14. Re:Cooking by AmiMoJo · · Score: 1

      Shirley you can't be serious?!

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  9. Yeah, I remember when VMWare first came out... by sirwired · · Score: 5, Informative

    I remember when VMWare first came out, and there was all this amazement about all the cool things you could do with Virtual Machines. Very little mention anywhere that these were things you could do for decades already on mainframes.

    Same thing with I/O offloading (compared to mainframes, x86 and UNIX I/O offload is still quite primitive and rudimentary), DB-based filesystems (MS has been trying to ship one of those for over 20 years now; IBM has been successfully selling one (the AS/400 / iSeries) for 25, built-in encryption features, and a host of other features.

    1. Re:Yeah, I remember when VMWare first came out... by dpilot · · Score: 2

      I remember when the 8086 came out, Intel also brought out the 8087 FPU and the 8089 I/O Processor. The former got bundled into the CPU a few generations later. I don't rememeber details of the 8089, but it seems to have withered away. Nor does Wikipedia say much about it, once you differentiate it from the Hoth Wampa Cave Lego set.

      --
      The living have better things to do than to continue hating the dead.
    2. Re:Yeah, I remember when VMWare first came out... by Anonymous Coward · · Score: 0

      Yeah, most people didn't have a mainframe in their house.

    3. Re:Yeah, I remember when VMWare first came out... by iggymanz · · Score: 3, Informative

      http://pdf.datasheetcatalog.co...

      It wasn't used in IBM PCs, but was in some other systems such as Apricot PC and the Altos 586

    4. Re:Yeah, I remember when VMWare first came out... by fuzzyfuzzyfungus · · Score: 2

      Aside from the 'ignorance' and 'marketing' effects, it's arguably a testament to the fact that people will forgive a great many sins if the price is right.

      Even considering VMware's periodic moves into 'We still have the x86 virtualization market by the balls, right?' pricing models, being able to do virtualization on practically disposable Dell pizzaboxes looks like a revelation if you've previously been enjoying the pleasure of juggling your PVUs, subcapacity licenses, capped and uncapped LPARs, and similar not-at-all-complex-or-painfully-expensive goodness.

      It's hard to argue with Big Blue's historical priority in most cases(barring certain exceptions when Amdahl played the AMD to IBM's Intel and did something plucky); but their prices sting.

    5. Re:Yeah, I remember when VMWare first came out... by Anonymous Coward · · Score: 2, Interesting

      In the before time, in the long, long ago, Quarterdeck first offered DESQView. I built VMs operating Index BBS on i286 platforms using digiboards.

      Sweet Jesus little has changed in >25 years.

    6. Re:Yeah, I remember when VMWare first came out... by AmiMoJo · · Score: 2

      People were aware that mainframes could do virtualization back then, not least because all the magazine articles about VMWare mentioned it. What was surprising was that a feature previously only available on room sized computers costing as much as your lifetime earnings was now available on cheap commodity hardware.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:Yeah, I remember when VMWare first came out... by Richard_at_work · · Score: 5, Funny

      Bugger me, when I first got hold of VMWare as a teenager then heavily into Linux, I went mad. And I mean maaaaaaaaaaaaaaaaaad.

      My home server was a simple affair - 6GB hard disk, 512MB ram.

      So what did I do? Bring up as many Redhat VMs as I could - all with 4MB ram :D It was like a drug, 10 wasn't enough, so I did more. I got to 50 and just knew I had to do 100. I eventually ran out of free ram, but hell, I had more than 100 servers at my disposal!

      What did I do with them? Uhm, nothing. Apart from sshing into a few just because I could.

      *sigh* Thems were the days....

    8. Re:Yeah, I remember when VMWare first came out... by hairyfeet · · Score: 2, Informative

      The reason you don't see much written about the 8089 is it too ended up absorbed, first into the northbridge/southbridge design and now most of the I/O is handled via the CPU/APU as most of the newest chips are SoC designs.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    9. Re:Yeah, I remember when VMWare first came out... by Anonymous Coward · · Score: 0

      I do. Two of them. (Vax)

    10. Re:Yeah, I remember when VMWare first came out... by Cajun+Hell · · Score: 2

      when VMWare first came out, and there was all this amazement about all the cool things you could do with Virtual Machines. Very little mention anywhere that these were things you could do for decades already on mainframes.

      This is probably due to the fact that for most values of "you," you don't have a mainframe. So the cool things switched from "things a-few-people-who-aren't-me can do" to "things I can do." That increases relevance.

      --
      "Believe me!" -- Donald Trump
    11. Re:Yeah, I remember when VMWare first came out... by Mariner28 · · Score: 1

      My first server hosted two "virtual" machines - and 8086 and an 8085 sharing a single S-100 bus. Of course, to switch from one "VM" (DOS) to the other (CP/M), you first had to reboot. And make sure you replaced the 360KB DSDD floppy with the DOS boot image with one with a CP/M image. It worked even better when I augmented the original 128KB RAM with an additional 512KB, and the two 360KB drives with two more 1.2MB drives for almost 3MB of online storage! That old Heathkit/zenith Z100 was pretty sweet for its time.

      I'm betting someone will reply with a sad tale about context switching on their first home server being interrupted by having their paper tape tear...

      My current home media server is about the size of a deck of playing cards and hosts a 6TB RAID array. ;-)

      --
      "A little misunderstanding? Galileo and the Pope had a little misunderstanding."
    12. Re: Yeah, I remember when VMWare first came out... by newUser112358 · · Score: 1

      Didn't it cost you a great deal of money?

    13. Re:Yeah, I remember when VMWare first came out... by Hognoxious · · Score: 4, Funny

      If it's a proper mainframe you don't have it in your house, you have your house in it.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Yeah, I remember when VMWare first came out... by Dadoo · · Score: 2

      Yeah, most people didn't have a mainframe in their house.

      While it's true that microprocessors never really acquired mainframe I/O, they've had virtual machine support as far back as the 680x0 series, back in the 80s.

      --
      Sit, Ubuntu, sit. Good dog.
    15. Re:Yeah, I remember when VMWare first came out... by HBI · · Score: 1

      And the above deserves an upmod, since I did the same freaking thing. "Virtual 8086" mode on the 386 and the EMS 4.0 hardware capability for certain cards on the 286 were virtual machines in all but name.

      --
      HBI's Law: Frequency of calling others Nazis is directly correlated with the likelihood of the accuser being Communist.
    16. Re:Yeah, I remember when VMWare first came out... by blackomegax · · Score: 1

      Should have set up a random interlink between each one and fired up an AI script and hope it acted like neurons.

    17. Re: Yeah, I remember when VMWare first came out... by Coren22 · · Score: 1

      It depends on the VMware product, Workstation 1.0 was available at around $70 back then I believe.

      --
      APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
    18. Re:Yeah, I remember when VMWare first came out... by Anonymous Coward · · Score: 0

      That me reminds me that we had an Apple III with an Apple IIe compatiblity card in it, which I think was similar in that it was basically an Apple IIe on a smaller daughter card that reused the peripherals of the Apple III when you booted it that way.

    19. Re: Yeah, I remember when VMWare first came out... by Richard_at_work · · Score: 1

      Back then I, along with pretty much everyone else on Freenode or Arcnet, didn't care about pirating things. Thankfully I have matured somewhat in my opinions on the matter.

    20. Re:Yeah, I remember when VMWare first came out... by Richard_at_work · · Score: 1

      And in turn, that reminds me of the Zorro PC bridge card you could get for the Amiga - turning an Amiga into an Apple Mac was easy, same hardware etc, but you could also turn it into a 286 PC if you stuck a Zorro expansion card into the computer (it basically came with all the PC guts you needed for it to work). Pretty amazing stuff back in the day.

    21. Re:Yeah, I remember when VMWare first came out... by tibit · · Score: 2

      Not only do their prices sting, but they suffer heavily from living on their own little island and steadfastly refuse to use standard terminology, and seem to be doing a lot of stuff differently just because they can - not because it makes sense.

      --
      A successful API design takes a mixture of software design and pedagogy.
    22. Re:Yeah, I remember when VMWare first came out... by tibit · · Score: 1

      I was running VMs on Z80 hardware - it was slow, since they were software-emulating the CPU (I did 6502 and Z80), but hey, you don't need any special hardware or CPU features for virtualization. The special features are performance optimizations, nothing else.

      --
      A successful API design takes a mixture of software design and pedagogy.
  10. L1,2,3,4 Cache? by Anonymous Coward · · Score: 1

    The whole evolution of multi-level caches has gotten a bit crazy. if Intel can put 2 billion transistors in a processor, how about instead of piling more cores in, just do 1 or 2 cores and a massive L1 SRAM cache instead? Memory latency is more of a bottleneck than anything just now.

    1. Re:L1,2,3,4 Cache? by Anonymous Coward · · Score: 0

      AFAIK, the access latency will grow proportionally with the cache size, so it is not a win-win. And also the amount of signaling needed for coherency likely depends on the amount of shared data.

    2. Re:L1,2,3,4 Cache? by Bengie · · Score: 4, Informative

      Diminishing returns on cache misses
      Higher latency of larger caches
      Higher latency of more layers of cache
      Poor transistor scaling of fully associate caches or increased rate of false evictions for n-way caches.
      Increased power usage. It's very difficult to turn off part of your cache to save power, but it's very easy to turn off a core
      Not all problems scale well with more cache

      I'm sure there are many other reasons.

  11. Re:You are still wrong by Anonymous Coward · · Score: 0

    Indeed, the Motorola 680x0 series for example. I loved the ABCD (add binary coded decimal) instruction and always tried to make (even if esoteric) use of it. Unfortunately this is the kind of instructions that were not supported by the C compilers of the time.

  12. What happened to my /.? by DahGhostfacedFiddlah · · Score: 5, Funny

    We just had a story about low-level improvements to the BSD kernel, and now we get an article about chip-level features and how compilers use them?

    Is this some sort of pre-April-Fools /. in 2000 joke? Where are my Slashvertisements for gadgets I'll never hear about again? My uninformed blog posts declaring this the "year of Functional Declarative Inverted Programming in YAFadL"? Where the hell are my 3000-word /. editor opinions on the latest movie?

    If this keeps up, this site might start soaking up some of my time instead of simply being a place I check due to old habits.

    1. Re:What happened to my /.? by Anonymous Coward · · Score: 0

      And I'll turn off ad block.

  13. Should hardware even be a concern? by plopez · · Score: 1

    I have had arguments over this. People in various fora have asked what programming languages they should learn. I always put assembly in my list. But is it really important enough to learn these days? Is hardware still relevant?

    --
    putting the 'B' in LGBTQ+
    1. Re:Should hardware even be a concern? by Shinobi · · Score: 1

      Hardware should always be a concern, because hardware is the reality that implements the abstraction of a program. No matter how efficient something is in purely mathematical terms, it's the hardware that determines the actual performance, complexity and problems. ISA, I/O capabilities, amount of RAM etc all matter in deciding what will be the best way to implement something.

      No matter how many layers of abstraction you put in to provide the illusion of being able to ignore the hardware, the reality of hardware will always matter.

    2. Re:Should hardware even be a concern? by Bengie · · Score: 1

      You don't need to actually program in ASM to gain benefits, just looking simple code and reading what it does gains you much insight. Very few problems of CPU bound, but many problems are cache or memory access bound. Data-compactness and memory access patterns are still very important.

      There are also other problems that really play into multi-threading, where reducing the number of dirty cache-lines you need to access is important, which means understanding memory alignment and many other things.

    3. Re:Should hardware even be a concern? by SuricouRaven · · Score: 1

      There are only two situations I can think of where a working knowledge of assembly would be useful:
      1. You write compilers.
      2. You work in embedded device programing, where some IO requires you to count instruction cycles to ensure correct timing.

    4. Re:Should hardware even be a concern? by itzly · · Score: 1

      Or you need to do stuff that requires special instructions, like enabling/disabling interrupts, or magic co-processor instructions that flush the cache. Of course, if you're lucky, somebody made C wrappers for them, but that's not always the case.

    5. Re:Should hardware even be a concern? by Rockoon · · Score: 1

      Keep in mind that the fastest implementations of just about any ultra-common standardized algorithms ((un)encryption, (de)compression, etc...) are in assembler. This fact doesnt shed as good light on compilers as some people like to disingenuously shine. Sure, most of the time you don't care that much about every last bit of performance, but when the CPU time for the algorithm in question easily totals billions of CPU hours... suddenly the arguments about assembler not being important start to look rather foolish.

      --
      "His name was James Damore."
    6. Re:Should hardware even be a concern? by david_thornley · · Score: 1

      It's not just that assembly language isn't as used any more, as that the machine language on the current processors is much more of a mess than the other ones I learned and used a long time ago. If there was something like the old Motorola 6809, that would be great to learn on.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    7. Re:Should hardware even be a concern? by Anonymous Coward · · Score: 0

      3. You write OS kernels
      4. You debug compiler errors - much more common than actually writing the compiler

  14. Slashdot is powered by your submissions by tepples · · Score: 4, Informative

    If you want to see more Slashdot-in-2000 style posts, and you have access to the sort of articles that Slashdot-in-2000 might have posted, Slashdot welcomes your submissions. You could even become a "frequent contributor".

    1. Re:Slashdot is powered by your submissions by Em+Adespoton · · Score: 2

      If you want to see more Slashdot-in-2000 style posts, and you have access to the sort of articles that Slashdot-in-2000 might have posted, Slashdot welcomes your submissions. You could even become a "frequent contributor".

      Um, no. This used to be the case, but the only stories I've submitted that have actually been picked by the editors in the last 5 years have been the "look at this new tech", "look at this glaring mistake" or the political kind. Anything about explaining actual existing tech or showing novel new uses for existing tech has never made it past the editors.

      These days it's extremely easy to become a "frequent submitter" without becoming a contributor at all -- even when you do your own editing, have a reasonable journalistic-style lead-line summary, and multiple sources linked in TFS to back up the lead story.

      As a result, most people don't bother anymore.

    2. Re:Slashdot is powered by your submissions by jones_supa · · Score: 3, Interesting

      As the submitted of this article, I recommend you to continue chucking in the articles that you find interesting. You seem to have 17 articles submitted, of which 6 have been published, which is pretty good actually. There's many factors that decide whether your submission gets the front page or not, so there's no need to be too personal about it. I personally keep submitting articles just for fun. Most of my topics come from Twitter these days, it's a good source to pick up interesting stuff.

    3. Re:Slashdot is powered by your submissions by antdude · · Score: 1

      I used to be one/1 of the top /. submitters until it changed. I rarely submit to /. these days, but do on other web sites like Reddit, Blue's News, etc. :)

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    4. Re:Slashdot is powered by your submissions by Em+Adespoton · · Score: 1

      I was never one of the top submitters, but I've submitted many more than are credited to this userid. I too prefer to submit to other sites where my submissions get more coverage and higher response rates.

      That said, I could easily game my submissions so that my acceptance rate was higher, but those wouldn't be the kind of submissions I want associated with my userid.

      And time is limited :)

  15. 8-bit MCUs by tepples · · Score: 1

    If you want to get the most out of an 8-bit microcontroller, you'll need assembly language. Until recently, MCU programming wasn't easily accessible to the general public, but Arduino kits changed this.

    1. Re:8-bit MCUs by itzly · · Score: 1

      If you want to get the most out of an 8-bit microcontroller, you'll need assembly language

      Or you just throw your 8-bitter in the garbage, and grab one of the many ARM MCUs out there.

  16. depends what you're doing by Chirs · · Score: 4, Insightful

    For example, I worked for a decade in the linux kernel and low-level userspace. Assembly definitely needed. I tracked down and fixed a bug in the glibc locking code, and you'd better believe assembly was required for that one. During that time I dealt with assembly for ARM, MIPS, powerpc, and x86, with both 32 and 64-bit flavours of most of those. But even there most of the time you're working in C, with as little as possible in assembly.

    If you're working in the kernel or in really high-performance code then assembly can be useful. If you're working with experimental languages/compilers where the compilers might be flaky, then assembly can be useful. If you're working in Java/PHP/Python/Ruby/C# etc. then assembly is probably not all that useful.

    1. Re:depends what you're doing by Shinobi · · Score: 2

      Let's not forget something as simple as debugging. Someone who understands the hardware and knows Assembler will always have an advantage when it comes to debugging.

    2. Re:depends what you're doing by StikyPad · · Score: 4, Insightful

      Again, it depends on what they're debugging. If it's a syntax error in a SQL string, then assembly helps not so much.

  17. SIMD was ' 70s Era Too by Anonymous Coward · · Score: 0

    SIMD was developed in the 70's with CDC 660/77600 Cyber 100 and the Cray 1 ...

    http://en.wikipedia.org/wiki/SIMD
     

  18. Caches, threading, SIMD/GPUs, and floating point by RandCraw · · Score: 1

    I haven't seen the article or video. But for 99% of developers, I'd say the only CPU-level changes since the 8086 that matter are caches, support for threading and SIMD, and the rise of external GPUs.

    Out-of-order scheduling, branch prediction, VM infrastructure like TLBs, and even multiple cores don't alter the programmer's API significantly. (To the developer/compiler, multicore primitives appear no different than a threading library. The CPU still guarantees microinstruction execution order.)

    Some of the compiler optimization switches have become more complex, and perhaps a few coding idioms are now deprecated/encouraged so that compilers better understand what you intend (so you don't make their job unnecessarily harder).

    But overall, almost all developer techniques don't benefit from changes to CPU microarchitecture after 1990, aside from caches, SIMD, and GPUs.

    And of course, ever since the 80486 (1989), all CPUs support floating point instructions.

  19. What actually has changed? by Anonymous Coward · · Score: 0

    I appreciate the sentiment of the article, but as others have pointed out, a lot of these "new" features have been around for a very long time.

    What has changed significantly is addition of functions onto the CPU die: whether you want them or not.

    I'm specifically talking about the "vPro / SE / Management Engine" bullshit (yes, I hate it) that is being pushed out to everyone. I know that it helps in a corporate setting, but all of that low-level interception takes its toll.

    I've been troubleshooting some software that communicates with a device over USB. When I benchmark my code on Ivy Bridge systems I get 1ms read/write times (lots of overhead, the actual R/W by the device is much faster) yet on the newer and "faster" Haswell systems this jumps to 6ms. It's been tested across multiple motherboards, so while I don't know WTF is going on, there is something different about the CPU architecture (or extra features) that is causing this change in behavior.

    In case anyone is curious, the OS is Windows 7x64 and the software is .NET v4.5.

  20. Chipset Integration by David_Hart · · Score: 1

    I'm not a CPU expert so feel free to take my opinions below with a grain of salt... (grin)

    The biggest change to processors in general is the increased use and power of desktop GPUs to offload processing-intense math operations. The parallel processing power of GPUs outstrips today's CPUs. I'm sure that we will be seeing desktop CPUs with increased GPU like parallel processing capabilities in the future.

    http://en.wikipedia.org/wiki/G...
    http://www.pcworld.com/article...

    1. Re:Chipset Integration by OrangeTide · · Score: 2

      indeed, the architecture of stream processors is quite a bit different than the general purpose processors we are used to programming. It's kind of exciting that programming stream processors through shaders, openCL, and CUDA has gone mainstream. And for a few hundred dollars a poor college student can afford to build a small system capable of running highly parallel programs. While not equivalent in performance to a super computer, has structural similarities sufficient for experimentation and learning.

      20 years ago I wouldn't have believed that a poor programmer could buy a system that had 1000+ execution engines in it.

      --
      “Common sense is not so common.” — Voltaire
  21. Re:You are still wrong by Anonymous Coward · · Score: 1

    The GP said decimal arithmetic. Those of us that know about processors and electronics - including the GP, but apparently not you - know *exactly* what he meant by that.

    Hint: go look up the instructions that deal with "binary coded decimal" for x86 or 680x0.

  22. nothing to see here, folks by Anonymous Coward · · Score: 0

    but CPUs ARE stuck in the 1980s. Although some "new" features have only been recently implemented, almost all of them were conceived decades ago.

    1. Re:nothing to see here, folks by Anonymous Coward · · Score: 0

      Nothing has changed because of dusty deck software.......

  23. SIMD is still von Neumann by OrangeTide · · Score: 1

    I'm not sure SIMD really falls outside of a "1980s" model of a CPU. Maybe if your model means Z80/6502/6809/68K/80[1234]86/etc, rather than including things like Cray that at least some students and engineers during the 80s would have been exposed to.

    von Neumann execution, but Harvard cache become common place in the 1990s. Most people didn't need to know much about the Harvard-ness unless they need to do micro-optimization.

    Things don't get radically different until you start thinking about Dataflow architecture and Transactional memory. I'm not sure if Dataflow will ever come back, but transactional memory is here and pops up from time to time and I think it will get big pretty soon as moves beyond being some small obscure part in a processor core.

    (Transport Triggered Architecture is equivalent to von Neumann for software when abstracted out in a macro assembler, so I don't count TTA as something new, plus it was pretty uncommon)

    --
    “Common sense is not so common.” — Voltaire
    1. Re:SIMD is still von Neumann by Coren22 · · Score: 1

      TFA's second line indicates that everything in the article refers to the x86/64 architecture. It is true many of these features originate in much older archs, but they are being introduced into the x86/64 arch over time.

      --
      APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
    2. Re:SIMD is still von Neumann by OrangeTide · · Score: 1

      Sorry if you missed it, but my post tried to point out that x86/64 is not really different from "1980s" CPU architecture. It's an 8085 with harvard cache, out-of-order execution and RISC translation instead of microcoded (not that that is a significant difference in my opinion)

      x86 will eventually get transactional memory, making it competitive with a 1970s cray. And x86 has gotten hardware visualization, making it competitive to an 1960s IBM.

      Everything old is new again!

      --
      “Common sense is not so common.” — Voltaire
  24. Is this what they mean by RAM? by StikyPad · · Score: 1


    while (hitCount < arraySize) {
    i=rand() % arraySize;
    if (hitArray[i] == 0) {
    sum += array[i];
    array[i]=0;
    hitArray[i]=1;
    hitCount++;
    }
    }

    1. Re:Is this what they mean by RAM? by Anonymous Coward · · Score: 0


      while (hitCount < arraySize) { /* arraySize is not declared */
      i=rand() % arraySize; /* rand() has no prototype in scope */
      if (hitArray[i] == 0) { /* not using ! */
      sum += array[i]; /* neither sum nor array declared */
      array[i]=0; /* i not declared */
      hitArray[i]=1; /* hitArray not declared */
      hitCount++; /* hitCount is not declared */
      } /* this line is misindented */
      } /* this line is actually fine.

    2. Re:Is this what they mean by RAM? by UnknownSoldier · · Score: 1

      /. constantly fucks up ecode indenting ... blaming the author doesn't solve anything.

      Any computer scientist worth their 2 bits can figure out the algorithm; being pedantic only make you look like an idiot.

    3. Re:Is this what they mean by RAM? by Jeremy+Erwin · · Score: 2

      /* this line is misindented */

      Whoa there. He's not composing python. He's writing in a real programming language.

    4. Re:Is this what they mean by RAM? by Anonymous Coward · · Score: 0

      Jokes on you, AC already looked like an idiot before.

  25. Re:Caches, threading, SIMD/GPUs, and floating poin by alva_edison · · Score: 1

    And of course, ever since the 80486 (1989), all CPUs support floating point instructions.

    486 SX chips had the FPU disabled or absent. So not all CPUs (or even all 80486 CPUs). As far as I'm aware Penitum (586) did not have a model without FPU support (although in the MMX models, you couldn't use MMX and the FPU at the same time).

    --
    He effected a bored affect.
  26. wow, too complicated by Khashishi · · Score: 1

    I used to sort of understand how a computer works. Not anymore. It's just magic.

  27. Summary of Summary. by fahrbot-bot · · Score: 1

    Guy who doesn't understand how CPUs work amazed about how CPUs work. /thread

    --
    It must have been something you assimilated. . . .
    1. Re:Summary of Summary. by david_thornley · · Score: 1

      Guy who used to understand CPUs is amazed at how they've changed.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    2. Re:Summary of Summary. by fahrbot-bot · · Score: 1

      Guy who used to understand CPUs is amazed at how they've changed.

      Ya, but, as several posters have pointed out, many of the things you mentioned, like vector instructions and virtualization *have* been around since the 1980s (and/or earlier) -- heck, I was a sysadmin at the NASA Langley Research Center in the mid-80s and worked on a Cray-2 (a vector processor system) and an Intel system with 1024 processors.

      So either your CPU experience is *really* old or perhaps your CPU experience is more limited than you think rather than they have changed to the extent you think. Just sayin' ... perhaps it's just mainstream / consumer CPUs that have changed quite a bit since then.

      --
      It must have been something you assimilated. . . .
  28. Can some explain the puzzles? by ChumpusRex2003 · · Score: 1

    Can someone explain why in the example race condition code given, the theoretical minimum count is 2, and not n_iters?.

    1. Re:Can some explain the puzzles? by Anonymous Coward · · Score: 0

      Consider this scenario: first thread reads the value of 0, increments it to 1 (but does not store it yet). The second thread runs 9999 times and stores the last value. The first thread writes 1 to the storage, the second thread reads it and increments it to 2. The first thread runs 9999 times, writes the result. Finally, the second thread writes the result of the increment (2) and both threads are done. It is instructive to see that the minimum is not 1 but 2.

    2. Re:Can some explain the puzzles? by Anonymous Coward · · Score: 0

      Ah, screw it! I wrote up the explanation and posted it but it desappeared since it was posted as AC. Sorry but I am not going to play this teenage registration, mod points, whatever game.

    3. Re:Can some explain the puzzles? by Vairon · · Score: 1

      I believe this is a scenario that could cause two threads performing a incl instruction without lock added to overwrite the same memory address in such a way that the end result would be 2.

      thread 1, iteration 0 of 9999: load 0 from memory

      thread 2, iteration 0 of 9999: load 0 from memory
      thread 2, iteration 0 of 9999: add 1 to 0 = 1
      thread 2, iteration 0 of 9999: save 1 to memory

      ...thread 2 iterates multiple times...
      thread 2, iteration 9998 of 9999: load 9998 from memory
      thread 2, iteration 9998 of 9999: add 1 to 9998 = 9999
      thread 2, iteration 9998 of 9999: save 9999 to memory

      thread 1, iteration 0 of 9999: add 1 to 0 = 1
      thread 1, iteration 0 of 9999: save 1 to memory

      thread 2, iteration 9999 of 9999: load 1 from memory
      thread 2, iteration 9999 of 9999: add 1 to 1 = 2

      ...thread 1 iterates multiples times....
      thread 1, iteration 9999 of 9999: load 9999 from memory
      thread 1, iteration 9999 of 9999: add 1 to 9999 = 10000
      thread 1, iteration 9999 of 9999: save 10000 to memory

      thread 2, iteration 9999 of 9999: save 2 to memory

    4. Re:Can some explain the puzzles? by Anonymous Coward · · Score: 0

      Yep

  29. That's the 2nd sentence of the article by raymorris · · Score: 0

    You might like the second sentence of the article:

    things that were new to x86 were old hat to supercomputing, mainframe, and workstation folks.

    Just curious, did you read one sentence of the article before commenting on it? :rolleyes Obama voters

    1. Re:That's the 2nd sentence of the article by Plumpaquatsch · · Score: 1

      You might like the second sentence of the article:

      things that were new to x86 were old hat to supercomputing, mainframe, and workstation folks.

      Just curious, did you read one sentence of the article before commenting on it?

      At least he didn't stop at "asked" and immediately fired off a diatribe against Ask Slashdot.

      --
      Of course news about a fake are Fake News.
  30. Re:You are still wrong by Anonymous Coward · · Score: 0

    look up BCD ..it's not usual binary math, look like you have gaps in YOUR knowledge of processors or electronics

  31. Re:Caches, threading, SIMD/GPUs, and floating poin by Rockoon · · Score: 1

    Also note that rather recently Intel drastically dropped the accuracy of their FPU's in order to make the performance numbers look better.... dont expect 80-bit procession even when explicitly using the x87 instructions now... its now been documented that this is the case but for a few years Intel got away without publicly acknowledging the large drop in accuracy....

    --
    "His name was James Damore."
  32. Cray 1 from the 1970s used SIMD by bmajik · · Score: 2

    if you understand scalar assembly, understanding the basic "how" of vector/SIMD programming is conceptually similar

    Actually, if you think back to pre-32bit x86 assembler, where the X registers (AX, BX) were actually addressable as half-registers (AH and AL were the high and low sections of AX), you already understand, to some extent, SIMD

    SIMD just generalizes the idea that a register is very big (e.g. 512 bits), and the same operation is done in parallel to subregions of the register.

    So, for instance, if you have a 512 bit vector register and you want to treat it like 64 separate 8 bit values, you could write code like follows:

    C = A + B

    If C, A, and B are all 512 bit registers, partitioned into 64 8 bit values, logically, the above vector/SIMD code does the below scalar code:

    for (i == 1..64) {
        c[i] = a[i] + b[i]
    }

    If the particular processor you are executing on has 64 parallel 8-bit adders, then the vector code

    C = A + B

    Can run as one internal operation, utilizing all 64 adder units in parallel.

    That's much better than the scalar version above - a loop that executes 64 passes..

    A vector machine could actually be implemented with only 32 adders, and could take 2 internal ops to implement a 64 element vector add... that's still a 32x speedup compared to the scalar, looping version.

    The Cray 1 was an amazing machine. It ran at 80mhz in 1976

    http://en.wikipedia.org/wiki/C...

    According to WP, the only patent on the Cray 1 was for its cooling system...

    --
    My opinions are my own, and do not necessarily represent those of my employer.
  33. Loops in asm help (inner especially)... apk by Anonymous Coward · · Score: 0

    Even when modern optimizing compilers "unroll" them: See here for results http://stackoverflow.com/quest... with permutations of most *any* kind there (mixing asm with optimization, or not, etc. - et al).

    * I used to use it ALL the time (since loops are a "key area" I know of that HELPS a LOT, when redone in inline assembly in Delphi/Object-Pascal, for speed) in Delphi 2.x - 7.x in 32-bit (was unable to in Delphi XE2, but it's been reinstated as an ability of Delphi in XE3 onwards to present XE7).

    APK

    P.S.=> Enjoy that read - it TRULY is, informative... apk

  34. Re:You are still wrong by Anonymous Coward · · Score: 0

    Please tell me what voltage do you put on a data line to give it a 2 or 3.

    It's binary. You only have digital 1's and 0's It seems you dont know anything at all about processors or electronics.

    Whatever you want. But it's easier and simpler and less technically complex to just use a threshold value to represent a 1 or 0, instead of trying to set a series of ranges to achieve greater than binary capability.

  35. Re:You are still wrong by Anonymous Coward · · Score: 0

    Hey look everyone, a clueless smarmy smartass! Putting aside your astounding ignorance of fundamental stuff (let me guess: recent EE graduate or programmer?), there is three-level logic out there.

    Or even more, as in what happens inside MLC flash memory.

    Looks like there are more things between heaven and Earth than are dreamt of in your philosophy. Good thing you posted AC! LOL

  36. Re: You are still wrong by Anonymous Coward · · Score: 0

    Z80 had some support to iirc via the half carry flag and some sort of BCD correction instruction (I once wrote a z80 emulator but seem to have suffered a memory fail since then).

  37. Re: Caches, threading, SIMD/GPUs, and floating poi by Anonymous Coward · · Score: 0

    Citation required

    All I have been able to find are Gcc bug reports as to why it is hard to fix codegen for 80-bit x87 register spills that would lead to unexpected rounding. (Programming error for the must part of the application not using long double data type.)

  38. Boxes? by Anonymous Coward · · Score: 0

    You have been gone long, a CPU hasn't been a box since the 70's.

  39. Re:You are still wrong by Anonymous Coward · · Score: 0

    All processors work in binary. It seems the low IQ types think they can do decimal math.

    its 100% binary.

  40. Re:You are still wrong by Jappus · · Score: 1

    Strictly speaking, there's no reason for user binary other than that it makes some things a lot easier, while it makes other things a bit more difficult.

    For example, during the early time of electronic engineering, the Russians/Soviets experimented with ternary computers, the "SETUN" while the USA had the "Ternac". Both had more complicated hardware than a binary computer, but were a lot more efficient at processing arithmetic instructions.

    See: http://en.wikipedia.org/wiki/T...

    And who knows, in a few decades, people might thing binary to be quaint and outdated, given that Qubits are so much, much more efficient.

  41. Re: You are still wrong by Anonymous Coward · · Score: 0

    DAA decimal adjust accumulator after doing add,sub

  42. Re:You are still wrong by slashdotwannabe · · Score: 1

    Please tell me what voltage do you put on a data line to give it a 2 or 3. It's binary. You only have digital 1's and 0's It seems you dont know anything at all about processors or electronics.

    So, what, just double or triple the voltage?

    --
    This comment is my opinion and does not represent an official position of Donald Trump or others I do not work for
  43. Re:1980s? Radio Shack... by Anonymous Coward · · Score: 0

    Remember the Model 2 that could be upgraded to the Model 16? Model 2 ran on a Z80 (TRSDOS). After upgrade, it ran on a 68000 (Xenix) but kept the Z80 for i/o and keyboard handling.