VOGONS


How you define a 586

Topic actions

Reply 20 of 54, by jade_angel

User metadata
Rank Member
Rank
Member

From my perspective, it's any post-486 CPU with integrated FPU and which supports the new instructions specific to the Pentium, but which does not support P6-specific instructions. So, that includes the Pentium, Pentium MMX, K5, K6, K6-2, K6-III, WinChip C6 and a few others. After that but pre-Athlon64 is a 686.

I suppose my litmus test is: if I compile some code using gcc with the -march=i586 or -march=pentium flag, and it runs, then it's a 586, unless it's a 686, K8 or later. (And yeah, there's a weird part of me that considers Core 2 Duo and such to be "K8". What's that make the 64-bit Pentium 4s, though?)

Main Box: Macbook Pro M2 Max
Alas, I'm down to emulation.

Reply 21 of 54, by firage

User metadata
Rank Oldbie
Rank
Oldbie

It doesn't have any sufficiently definite meaning, and attempts to define it are pretty useless. I'd just never use the term "586" unqualified, other than as an ambiguous informal reference to all manner of developments following the original 486.

My big-red-switch 486

Reply 22 of 54, by Scali

User metadata
Rank l33t
Rank
l33t
jade_angel wrote:

I suppose my litmus test is: if I compile some code using gcc with the -march=i586 or -march=pentium flag, and it runs, then it's a 586, unless it's a 686, K8 or later.

As you already say yourself, the fact that the code runs merely means that the CPU supports the instructionset, which any modern x86 would do.
I guess the more interesting question is: what does gcc think it compiles for with -march=i586?
Apparently to GCC, i586 is an alias for Pentium: https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/ … 64-Options.html

i586, pentium
Intel Pentium CPU with no MMX support.

Which would probably mean that you can compile code with i586 that doesn't run on certain CPUs marketed as '586', but are actually 486-based cores.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 23 of 54, by jade_angel

User metadata
Rank Member
Rank
Member

Well, there were certainly the AMD and Cyrix 5x86 chips, which were not "586-class" at all. The Cyrix had some features in that vein, the AMD was basically just a 486DX5. I forgot about the WinChip - I thought that had all the Pentium instructions, but apparently not.

Code compiled with -march=i586 will run on K5/K6 and Cyrix 6x86, though. (6x86, despite its marketing name, is not a Pentium Pro-class chip, either. I'd call it a "586").

Main Box: Macbook Pro M2 Max
Alas, I'm down to emulation.

Reply 24 of 54, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie

Another example. Here's how Linux defines the 586 arch/x86/Kconfig.cpu:

config M486
bool "486"
depends on X86_32
---help---
Select this for an 486-class CPU such as AMD/Cyrix/IBM/Intel
486DX/DX2/DX4 or SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.

config M586
bool "586/K5/5x86/6x86/6x86MX"
depends on X86_32
---help---
Select this for an 586 or 686 series processor such as the AMD K5,
the Cyrix 5x86, 6x86 and 6x86MX. This choice does not
assume the RDTSC (Read Time Stamp Counter) instruction.

config M586TSC
bool "Pentium-Classic"
depends on X86_32
---help---
Select this for a Pentium Classic processor with the RDTSC (Read
Time Stamp Counter) instruction for benchmarking.

config M586MMX
bool "Pentium-MMX"
depends on X86_32
---help---
Select this for a Pentium with the MMX graphics/multimedia
extended instructions.

getquake.gif | InfoWorld/PC Magazine Indices

Reply 25 of 54, by Scali

User metadata
Rank l33t
Rank
l33t

But what exactly would be the difference between M486 and M586 then?
The only new instructions for Pentium that I recall are CPUID and RDTSC. They mention RDTSC already, it's not commonly supported on 486/586 branded CPUs.
For Pentium, CPUID is standard. Original 486 did not have it. Some post-Pentium 486 models did, which also means that some 486-rebadged-to-586 CPUs had CPUID: http://datasheets.chipdb.org/Intel/x86/486/Intel486.htm
Perhaps they mean that 586 always has CPUID? Which is kinda weird if you ask me. Some of the CPUs with CPUID are bog-standard 486 aside from that extra instruction.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 26 of 54, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Wiki lists six instructions added with the Pentium.
https://en.wikipedia.org/wiki/X86_instruction … ed_with_Pentium

Plan your life wisely, you'll be dead before you know it.

Reply 27 of 54, by candle_86

User metadata
Rank l33t
Rank
l33t

like this

1st Generation: 8086/8088/80186/80188 and clones
2nd Generations 80286 and clones
3rd Generation 80386/AM386 and clones
4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586
5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
7th Generation Netburst/K7
8th Generation Core/K8
9th Generation Core2/K10

Reply 28 of 54, by Scali

User metadata
Rank l33t
Rank
l33t
candle_86 wrote:
5th Generation P5/P54C/P55/K5/Winchip 6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX 7th Generation Netb […]
Show full quote

5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
7th Generation Netburst/K7
8th Generation Core/K8
9th Generation Core2/K10

This part is where the problems start:
K5 is similar to the P6 in its RISC-like backend approach and out-of-order execution. It just didn't perform that well, so performance-wise it was Pentium-class.
K6 on the other hand did not have the out-of-order execution, which made it closer to the Pentium.
Likewise, the K7 design is almost an exact copy of the P6 architecture, and bears no resemblance to Netburst whatsoever.
K8/K10 are closest to Nehalem in design, but performance-wise they are like a Core2.

'Generation' should be entirely about the level of sophistication in the micro-architecture, if you ask me. Not about performance, price, date of introduction or any of that sort.
Which means that after the 486, it makes little sense to try and group multiple manufacturers together. You should only look at the generational progress within the product line of a single manufacturer, because as you can see, different manufacturers do not always introduce new generations at the same speed, or even in the same order.

If you want to take a present-day example... Intel introduced HyperThreading for the first time on the Pentium 4, and have gone through many 'generations' of the technology over time. AMD has only just introduced their first CPUs with a form of SMT, similar to HyperThreading. Do you just say they're 'the same generation' as Intel's latest SMT because they happen to be on the market at the same time?

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 29 of 54, by Jo22

User metadata
Rank l33t++
Rank
l33t++

How you define a 586 ?
Simple. Any superscalar CPU which can run an unmodified copy of Windows NT 3.1 😁

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 30 of 54, by candle_86

User metadata
Rank l33t
Rank
l33t
Scali wrote:
This part is where the problems start: K5 is similar to the P6 in its RISC-like backend approach and out-of-order execution. It […]
Show full quote
candle_86 wrote:
5th Generation P5/P54C/P55/K5/Winchip 6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX 7th Generation Netb […]
Show full quote

5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
7th Generation Netburst/K7
8th Generation Core/K8
9th Generation Core2/K10

This part is where the problems start:
K5 is similar to the P6 in its RISC-like backend approach and out-of-order execution. It just didn't perform that well, so performance-wise it was Pentium-class.
K6 on the other hand did not have the out-of-order execution, which made it closer to the Pentium.
Likewise, the K7 design is almost an exact copy of the P6 architecture, and bears no resemblance to Netburst whatsoever.
K8/K10 are closest to Nehalem in design, but performance-wise they are like a Core2.

'Generation' should be entirely about the level of sophistication in the micro-architecture, if you ask me. Not about performance, price, date of introduction or any of that sort.
Which means that after the 486, it makes little sense to try and group multiple manufacturers together. You should only look at the generational progress within the product line of a single manufacturer, because as you can see, different manufacturers do not always introduce new generations at the same speed, or even in the same order.

If you want to take a present-day example... Intel introduced HyperThreading for the first time on the Pentium 4, and have gone through many 'generations' of the technology over time. AMD has only just introduced their first CPUs with a form of SMT, similar to HyperThreading. Do you just say they're 'the same generation' as Intel's latest SMT because they happen to be on the market at the same time?

From K5/P5/686 I go by how the manufacture designated them, what Set K7 apart from P6 was the use of a Double pumped Bus, and its way higher preforming FPU that could handle 3 FPU operations

Reply 31 of 54, by feipoa

User metadata
Rank l33t++
Rank
l33t++
candle_86 wrote:
like this... 3rd Generation 80386/AM386 and clones 4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586 5th Generation P5/P5 […]
Show full quote

like this...
3rd Generation 80386/AM386 and clones
4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586
5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
...

Strange that you grouped the Cyrix 5x86 as 4th gen and the Media GX as 6th gen. The Media GX CPU is the same as the Cyrix 5x86 except that it added the chipset, audio, and video hardware onto the chip die. Later MediaGX CPUs added MMX.

I'm not so sure about the Cyrix 486DLC as a 4th generation CPU. It has the architecture of a 386, but added 1 KB of L1 cache and 486 instructions. The 486SXL increased the cache to 8 KB, which is similar to 486 sizes. The SXL2 added "clock doubling", also similar to 486's, but kept with 386 architecture. If there was a generation category of 3.5, I would group the 486DLC, 486SXL, 486SXL2, DRx2, and BL3 into this category.

Scali wrote:

'Generation' should be entirely about the level of sophistication in the micro-architecture, if you ask me. Not about performance, price, date of introduction or any of that sort.

That is where my philosophy lies.

Sometimes I think having half generations would help with categorisation, particularly generations 3.5, 4.5, and 5.5, but this would certainly make things more complicated. For example, the Cyrix 5x86 and MediaGX would be in 4.5. If someone gets really board, it would be beneficial to have a table of CPUs with various architectural features. As of right now, all I'm certain about is that the i486DX is 4th generation and the Pentium Pro is 6th generation (as is PII/PIII).

The Cyrix 5x86 is able to reorder the execution of memory read and writes to increase performance (via the LSSER register). How similar is this to 'out of order execution' of other CPUs?

Plan your life wisely, you'll be dead before you know it.

Reply 32 of 54, by candle_86

User metadata
Rank l33t
Rank
l33t
feipoa wrote:
Strange that you grouped the Cyrix 5x86 as 4th gen and the Media GX as 6th gen. The Media GX CPU is the same as the Cyrix 5x86 […]
Show full quote
candle_86 wrote:
like this... 3rd Generation 80386/AM386 and clones 4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586 5th Generation P5/P5 […]
Show full quote

like this...
3rd Generation 80386/AM386 and clones
4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586
5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
...

Strange that you grouped the Cyrix 5x86 as 4th gen and the Media GX as 6th gen. The Media GX CPU is the same as the Cyrix 5x86 except that it added the chipset, audio, and video hardware onto the chip die. Later MediaGX CPUs added MMX.

I'm not so sure about the Cyrix 486DLC as a 4th generation CPU. It has the architecture of a 386, but added 1 KB of L1 cache and 486 instructions. The 486SXL increased the cache to 8 KB, which is similar to 486 sizes. The SXL2 added "clock doubling", also similar to 486's, but kept with 386 architecture. If there was a generation category of 3.5, I would group the 486DLC, 486SXL, 486SXL2, DRx2, and BL3 into this category.

Scali wrote:

'Generation' should be entirely about the level of sophistication in the micro-architecture, if you ask me. Not about performance, price, date of introduction or any of that sort.

That is where my philosophy lies.

Sometimes I think having half generations would help with categorisation, particularly generations 3.5, 4.5, and 5.5, but this would certainly make things more complicated. For example, the Cyrix 5x86 and MediaGX would be in 4.5. If someone gets really board, it would be beneficial to have a table of CPUs with various architectural features. As of right now, all I'm certain about is that the i486DX is 4th generation and the Pentium Pro is 6th generation (as is PII/PIII).

The Cyrix 5x86 is able to reorder the execution of memory read and writes to increase performance (via the LSSER register). How similar is this to 'out of order execution' of other CPUs?

It came down to the Cyrix 5x86 bares more in common with 486 than with P5, large parts of the chip where 486 and are considered as simply fast 486 chips, MediaGX is 6th Gen because of the things it added to it, it wasn't a revolution in performance but was a revolution in chip design in so far as integrating all of that stuff into the Die. But I see your point even Wikipedia says its dispute is between 4th and 5th gen

Reply 33 of 54, by Anonymous Coward

User metadata
Rank l33t
Rank
l33t

Here's how I define pentium:
-has pentium instructions
-twice as fast as 486 at same clock
-uses a p5 bus interface

"Will the highways on the internets become more few?" -Gee Dubya
V'Ger XT|Upgraded AT|Ultimate 386|Super VL/EISA 486|SMP VL/EISA Pentium

Reply 34 of 54, by Scali

User metadata
Rank l33t
Rank
l33t
candle_86 wrote:

From K5/P5/686 I go by how the manufacture designated them, what Set K7 apart from P6 was the use of a Double pumped Bus, and its way higher preforming FPU that could handle 3 FPU operations

The double-pumped bus is part of the 'uncore', and could easily have been added to a P6 CPU as well.
I don't see that as even part of the microarchitecture, let alone part of a 'generation'.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 35 of 54, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I should point out that 'out of order execution' on the Cyrix 5x86 showed a benchmark increase of up to 47%. It also contains branch prediction (up to 52% increase) and fast FPU exception handling (39%). For the micro-architecture needed to produce this gains, I certainly would not consider this chip a 486. But the chip is not superscalar and lacks Pentium instructions, so perhaps its a "536" (halfway between the numerical values of 486 and 586).

Speaking of which, does the Cyrix 6x86 use any of the added Pentium instructions?

Plan your life wisely, you'll be dead before you know it.

Reply 36 of 54, by Scali

User metadata
Rank l33t
Rank
l33t
Anonymous Coward wrote:
Here's how I define pentium: -has pentium instructions -twice as fast as 486 at same clock -uses a p5 bus interface […]
Show full quote

Here's how I define pentium:
-has pentium instructions
-twice as fast as 486 at same clock
-uses a p5 bus interface

I have a simpler definition:
Its model designation is "Pentium" (and only that).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 37 of 54, by brassicGamer

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:

But the chip is not superscalar and lacks Pentium instructions, so perhaps its a "536" (halfway between the numerical values of 486 and 586).

Oh no, you didn't just make this more complicated by creating a semi-generation did you?? 😉

I don't know if I prefer 536 or 486.5. Given that the CPU-naming convention is ordinal rather than cardinal, we should find some less clumsy or more meaningful way of expressing 486-and-a-half. If we use musical notation the Cyrix could be considered a '586-flat' or '486-sharp' perhaps? And yes, I am joking.

EDIT: just realised it is cardinal because the x86 bit is technically a separate part of its classification, but static to indicate compatibility, while the first bit increases.

4½86 😀

Last edited by brassicGamer on 2017-04-12, 13:57. Edited 1 time in total.

Check out my blog and YouTube channel for thoughts, articles, system profiles, and tips.

Reply 38 of 54, by jade_angel

User metadata
Rank Member
Rank
Member

Joking, but ha-ha-only-serious. Maybe "486++"? It's definitely got more shinies, microarchitecturally speaking, than a 486. The same sorts of things can be said about the K5 vis-a-vis the Pentium, or the Athlon vis-a-vis the P6. K5 is a 586++, K7 is a 686++, Nehalem is a K10++, in a manner of speaking.

Main Box: Macbook Pro M2 Max
Alas, I'm down to emulation.

Reply 39 of 54, by Jo22

User metadata
Rank l33t++
Rank
l33t++

This thread is funny. ^^ I wonder how long it take until people come up with more wondrous names.. Wait, let's call the 386SX "80388" or so.

candle_86 wrote:
like this […]
Show full quote

like this

1st Generation: 8086/8088/80186/80188 and clones
2nd Generations 80286 and clones
3rd Generation 80386/AM386 and clones
4th Generation 80486/AM486/AM5x86/Cyrix 486DLC/Cyrix 586
5th Generation P5/P54C/P55/K5/Winchip
6th Generation P6 (P Pro, II, III)/K6, K6-2, K6-III/Cyrix 686/Media GX
7th Generation Netburst/K7
8th Generation Core/K8
9th Generation Core2/K10

The 80186/80188 and NEC20/30 do already contain a few instructions from the 286 era, but have no MMU.
Let's say they do belong to generation 1½ then. 😉

brassicGamer wrote:

[..]On a purely technical note protected mode was completely flawed on the 286 which created significant nervousness among OEMs. As a result, 8088-based systems probably outsold 286 both after it was released and over its entire lifetime so, aside from late clones, the 286 is pretty much a non-CPU in my eyes. That aside, the 386 was definitely a revolution, I would not dispute that.[..]

Nah, both 286 and 386 were silblings I'd say. They were made by the same design team, after all. 😉
That aside, it was released in '82. If we include time of development, the chip design was probably determined in '80/'81.
Long before the IBM PC was of any significance. All the fuss about that machine started ~'84 onwords or so.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//