Welcome, Guest. Please login or register.

Author Topic: Which CPUs do you love or hate  (Read 7599 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #89 from previous page: December 19, 2009, 01:01:52 AM »
Having used a quad core, there is absolutely no way I'm moving back to a single core for a main machine, unless it can match the same overall throughput. However, it'd have to be at least 10GHz to manage that.

-edit-

Actually, looking back at it, I've been enjoying multicore computing ever since I got my first PPC board. A comparatively simple task (by current standards) such as playing back MP3, on the 68040 was a joke. It could manage mono 22kHz and there was no cpu time left to do anything else. That all changed when the PPC decoding engine was running in AmigaAMP. That whole arrangement was far less efficient than SMP (unavoidable considering they are two totally different processors) but the benefit of having a separate CPU core to dump the job onto was clear even then.
« Last Edit: December 19, 2009, 01:14:27 AM by Karlos »
int p; // A
 

Offline stefcep2

  • Hero Member
  • *****
  • Join Date: Sep 2007
  • Posts: 1467
    • Show only replies by stefcep2
Re: Which CPUs do you love or hate
« Reply #90 on: December 19, 2009, 01:23:20 AM »
Quote from: Karlos;534423
Wait, hang on. That was given in answer to your earlier point. Didn't you say you'd prefer it if the OS distributed the work between the cores? Well, that's exactly what the kernel does do. To the extent that even a single thread will move from one core to another depending on the existing load on each core and for improved thermal distribution (if nothing else).

A single thread of execution, by definition cannot run on several cores concurrently. Do not confuse multi core with superscalar execution. They are not the same thing and for what it's worth, each of these multiple cores is superscalar and nicely pipelined too. Each one is thus executing more than one sequential instruction in whichever thread they happen to be executing at any instant.

Now, as for the issue about writing stuff for multi core, you have to accept that not every computational task is parallelisable. Therefore there will be some things that cannot on their own take advantage of more than one core. However, you must bear in mind that on all multitasking operating systems there are usually many threads that are ready to run and the scheduler has to pick just one of them per quantum. Not so on a multicore. It will allow as many threads to execute per quantum as the hardware will allow. From a throughput perspective, running four threads in one quantum is up to 4x faster (assuming no interdependencies) than running one each for four successive quantums. Better throughput means less latency for all tasks.

What I am saying is, that unless you use a single application on a single-tasking "OS" (or MacOS classic as it's more commonly known :lol:), it's impossible to not reap a performance gain from multi core in general use.

The principal exception to this rule is when you want to run a single, very CPU intensive task that cannot ever be optimized for parallel execution where a single core processor may offer a price/performance benefit over a more costly multi core part that can't run that one task any faster.

Now, amiga users are fans of multitasking, after all it was always our OS's strength. Seems a bit daft to try to ignore the clear advantage of a multi core CPU in an SMP capable multitasking OS.


 be that as it may the fact is that today's OS's and more importantly most applications (afterall people care more about running apps not operating systems) don't take full advantage of multicore cpu's, its still an area that is evolving.
 

Offline stefcep2

  • Hero Member
  • *****
  • Join Date: Sep 2007
  • Posts: 1467
    • Show only replies by stefcep2
Re: Which CPUs do you love or hate
« Reply #91 on: December 19, 2009, 01:30:16 AM »
Quote from: Karlos;534424

-edit-

Actually, looking back at it, I've been enjoying multicore computing ever since I got my first PPC board. A comparatively simple task (by current standards) such as playing back MP3, on the 68040 was a joke. It could manage mono 22kHz and there was no cpu time left to do anything else. That all changed when the PPC decoding engine was running in AmigaAMP. That whole arrangement was far less efficient than SMP (unavoidable considering they are two totally different processors) but the benefit of having a separate CPU core to dump the job onto was clear even then.


Gee that is really poor for a 68040.  I remember playing back mp3's in 14 bit 44 khz on a 40 Mhz  68040 Apollo A1200 (with executive) and it was fine (on a dblntsc screen).  I had a little shell script that opened up a requestor to select the mp3, beacsue from memory GUI-driven mp3 players seemed to significantly increase the cpu load when playing the same song.
 

Offline a1200

Re: Which CPUs do you love or hate
« Reply #92 on: December 19, 2009, 01:38:43 AM »
68060 or 6502
68060 becuase of the giant leap forward performance wise of the 68k family, without lots of heat and so many great machines used a 6502 - sure it had drawbacks but the alternative is a Z80!
Amiga A1200, 3.1 ROMs, Blizzard 1230 MKIV 128MB & FPU, 4GB DoM SSD, Workbench 3.1
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #93 on: December 19, 2009, 01:45:11 AM »
Quote from: stefcep2;534425
be that as it may the fact is that today's OS's and more importantly most applications (afterall people care more about running apps not operating systems) don't take full advantage of multicore cpu's, its still an area that is evolving.


Most current operating systems do take full advantage of multicore processors. It is pretty much impossible not to if you actually support SMP (for example) and your OS pre-emptively multitasks.

Individual applications may not, that I agree with. Even so, to suggest that they don't benefit from multicore is a bit of a fallacy since they'll never be the only thing competing for CPU time, assuming your OS actually multitasks.

On that basis, I don't agree that people don't care about running OS. After all, people gripe that windows runs slowly on their single core CPU. Well guess what? Windows likes to run dozens of processes. Many processes on one core means each process can experience significant latency and the scheduler has to do more work to ensure they all get serviced fairly. This issue is mitigated by having more than one core. If a core is busy and another task needs to run, it can do so without waiting for the previous one to yield simply by executing on whichever core is free. Since you aren't likely to be running four compute bound processes concurrently, on a quad core there's almost always one core that's free at that moment to take the job on.

It would be nice if every application were naturally multithreaded but it really only makes sense for certain operations, which is why multitasking is the key way to leverage the benefit of multicore, at least for now.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #94 on: December 19, 2009, 01:52:48 AM »
Quote from: stefcep2;534426
Gee that is really poor for a 68040.  I remember playing back mp3's in 14 bit 44 khz on a 40 Mhz  68040 Apollo A1200 (with executive) and it was fine (on a dblntsc screen).  I had a little shell script that opened up a requestor to select the mp3, beacsue from memory GUI-driven mp3 players seemed to significantly increase the cpu load when playing the same song.

You've just said it yourself. It can play the mp3 but asking it to render a gui at the same time is a stretch too far. I'll wager you didn't do much else that required any CPU time when it was playing too (Just think, if you had two 40MHz 040's and an SMP version of the OS, you could easily have the GUI and run several other things besides).

Now, consider that my 040 was 25MHz and I was running GoldEd and gcc. I needed executive just to prevent the music from breaking up just scrolling golded's display. Which meant that the editor suffered instead but that was more bearable.

Once the PPC went in, 44kHz mp3 playback 14-bit no problem, even used the graphic equalizer too to improve the output a bit.

Another clear win for multiple CPUs, even an example as asymmetric as this one :)
int p; // A
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1149
    • Show only replies by Thorham
Re: Which CPUs do you love or hate
« Reply #95 on: December 19, 2009, 04:01:57 AM »
Love: 68K cpus, because they're fun to program on :)
Meh: Most other cpus, because they're not fun to program on :D
Dislike: All 8 bit load-store style cpus, such as 6502, because they suck big balls to program on :(
Hate: None, I don't hate cpus :D
« Last Edit: December 19, 2009, 04:19:45 AM by Thorham »
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: Which CPUs do you love or hate
« Reply #96 on: December 19, 2009, 10:23:33 AM »
Quote from: Thorham;534433

Hate: None, I don't hate cpus :D


Quote of the day :D

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #97 on: December 19, 2009, 10:27:02 AM »
Anyway, not sure I actually did my round up, so here goes.

Liked the Z80 as this was the first CPU I actually wrote anything for. Pretty big instruction set for an 8-bit processor too and a fair few undocumented instructions.

Never really did much on the 6502. Appreciated the design though, where the Z80 took at least four clocks (and potentially a lot more) to do anything at all, the 6502 was pretty much hardwired in comparison and had a much more uniform execution speed. Unlike the z80 the machine was register sparse but the zero page made up for that. In those days, accessing memory or an internal register made very little difference speed wise.

Loved the 68000; from an assembler programmer's perspective it was almost the perfect design. Each major revision brought something to the table beyond extra speed. The 68020 was even more fun to code on, you learned a bit more about pipelining your code and how to leverage an instruction cache (tiny as it is). The 68030 introduced a datacache that was equally tiny but also fun to try and use. The 68040, for me, was almost a perfect CPU by then. Shame about the heat but having everything on chip and a performance that laughed at the 68030 more than made up for that. Caches were finally big enough to be really useful and the move16 operation made a difference when shoving data to chip ram.
The 68060 was a lot more challenging to code for, since you finally had to take superscalar execution into account to get the best performance. Alas, this is one M68K I don't currently have :(

x86
Everything prior to the 386 was a complete joke and unworthy of mentioning. The 80386 wasn't bad though, once you got out of real mode and into flat memory space. From an assember coding perspective though, the instruction set remained a bit of a dog's dinner. The 80486 was better again and finally started to reach (at the time) silly clock speeds. One thing they had that I wished the 68000 had was the bswp instruction. Having to use three instructions on the 680x0 to byteswap one longword seemed very odd, given that it's not an uncommon thing to have to do. The pentium mmx introduced SIMD but I never really did anything x86 since.

Contrary to many folks here, I rather liked the PPC. The 603e on my Blizzard was a whole new toy and one that had a programming model that was quite fun. It's probably the only RISC architecutre I can say that about (save ARM, which has some cool features too). Writing effective code for WarpOS was (and is) quite a challenge in it's own right. Architecturally, 32 GPR registers are a lot of fun from an assembler programmer's point of view, as are 3 operand instructions. I also like the fact that you can basically decide which arithmetic/logic operations should update the condition codes, since this allows you to tweak loops and the like in a way that was much harder on 68K. Actual syntax, not so nice. Bit ordering seems bizarre if you are used to M68K, since bit 0 is the MSB and bit 31 the LSB. Never really understood the purpose of that.

Never did get into PPC beyond that. I have a G4 machine that I need to get into coding. Particularly interested in the altivec stuff. The permute features in there seem rather nice and a bit unique maybe.

x64: Well, this was a surprise. An x86 derivative that is actually fun to code for. The 16 register model is a nice compromise IMO. I'm still learning it though, so Jury's out.

ARM: Quirky but cool. Especially liked the conditional execution of instruction feature, far more effective than having to branch somewhere just to execute a single instruction.

MIPS: never really got into this, so can't say.

Alpha: Did some computational chemistry coding on this beast. It was all in C though, however the compiler had vector extensions for the chip. Once you figured out how to use them the speed increases for all that n-body charge force calculation could be sped up nicely. Alas, since then, GPU coding has shown where the real future for that sort of computation lies.

With the exception of the 8086/186/286 it's probably fair to say I like most CPU's :) It's hard to hate any, they all have their character.
int p; // A
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: Which CPUs do you love or hate
« Reply #98 on: December 19, 2009, 10:41:06 AM »
@Karlos

Hmmm, If this were a discussion about CPU archs then I'd have quite a bit to say... but I'm pretty sure we were supposed to pick actual, physical implementations and justify our reasons... :)

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #99 on: December 19, 2009, 11:04:50 AM »
I just did. My reasons as to why I like or dislike CPUs tend to be architectural.
int p; // A
 

Offline dammy

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 2828
    • Show only replies by dammy
Re: Which CPUs do you love or hate
« Reply #100 on: December 19, 2009, 02:55:51 PM »
Quote from: Thorham;534433

Hate: None, I don't hate cpus :D


I may not technically hate it, but I have a deep dislike for PPC.  If the PPC never existed, odds are Amiga would have moved on to a economically viable arch.  Instead, I get to watch another years worth of rerun-like episodes of Cargo Cult Island.
Dammy

https://www.facebook.com/pages/Arix-OS/414578091930728
Unless otherwise noted, I speak only for myself.
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show only replies by Karlos
Re: Which CPUs do you love or hate
« Reply #101 on: December 23, 2009, 10:16:15 AM »
Quote from: stefcep2;534426
Gee that is really poor for a 68040.  I remember playing back mp3's in 14 bit 44 khz on a 40 Mhz  68040 Apollo A1200 (with executive) and it was fine (on a dblntsc screen).  I had a little shell script that opened up a requestor to select the mp3, beacsue from memory GUI-driven mp3 players seemed to significantly increase the cpu load when playing the same song.


cough http://www.amiga.org/forums/showthread.php?t=50831

I'd be willing to wager that was using a much more optimal mp3 decoding library than I was back in 2000 when I was using an 040 for the job and probably wasn't doing 14-bit playback either.

22kHz mono decoding was the setting you needed on 68K mpega.library based decoders back then if you actually wanted to use your computer at the same time as listening to anything.

I wouldn't say it was poor performance from a 68040, just practical use of available resources. Some of us used to use our systems for more than just trying to prove to PC users that we could do things they were taking for granted.
int p; // A