Fred Cisin wrote:
On Sat, 8 May 2010, Tony Duell wrote:
>>> Is the size of the data bus irrelevant?
>>> (There have been people who maintain that THAT is the measure of the
>>> processor!)
>>>
>> They're wrong :-). The "size" of the CPU is defined by the size of
the
>> internal registers. I am astonished there is actual discussion debating
>> this.
>>
> Ah, so a Z80 is a 16 bit processor (IX, IY, SP and PC are all 16 bits,
> and there is no documented way to use half of them (Yes I do know about
> some of the undocumented ways)).
>
>
This is wrong. Z80 the basic operations are all byte not word
and the number of word (double byte ops are few).
>> I think people who maintain the size of the
data bus as being the
>> measure of a CPU are hardware people who have never optimized an inner
>> loop in machine code.
>>
> Conversely I could claim that those who calim the 8088 is a 16 bit
> processor have never wire-wrapped the data bus connections to one, and
> found there are only 8 to wire up.
>
When the bus size is totally visible to the programmer then it's
the native size. In most cases it's not unless hes counting bus
cycles for execution times. The 8088 has the same 16bit ADD
as the 16bit wide 8086, they are both 16bit. The difference is
Intel tweaked the BIU (bus interface unit) to do two 8bit fetches
when the 8086 would do a 16bit fetch. However both were also
designed to efficiently handle 8 bit byte data as well. Does that
make the 8086 an 8bitter, no.
The usual difference is when a programmer has to do multi-precision
arithmetic. If the break point to get to a 16bit add requires using
special registers (8080/z80) or the native accumulator 8088/86
then it starts to be obvious. For both doing 32bit math requires
programming as its not anywhere near native.
Many of the early micros that bridged the pure 8bit to the 16/32bit
world tend to blur this greatly but usually it's pretty obvious they
are 8bit or 16bit when a data move involving the primary accumulator.
The problem remains that we are trying to come up with a single
quantification for measuring something with multiple variable
characteristics.
If we were to grossly oversimplify,
and use the most "popular" quantifiers,
we would still have two characteristics to measure.
the 8080 is 8 bit software, 8 bit hardware
Instead of 8it hardware try 8bit bus and 8bit primary accumulator
the 8088 is 16 bit software, 8 bit hardware.
8bit bus, 16bit primary accumulator
the 8086 is 16 bit software, 16 bit hardware.
the 80286 is 16 bit software, 16 bit hardware.
the 80386SX is 32 bit software, 16 bit hardware.
the 80386DX is 32 bit software, 32 bit hardware.
the Sentry-70 is unknown.
To show how bus size is errant indicator other than for hook up
and possible throughput. It is a performance indicator and a
system cost factor. Consider the SX486/33 still 32bits, and ran
all the 486 stuff but for laptops lower power and a 16bit bus.
Cheaper to build around, lower power and slower as memory
bottlenecked it.
The T11 is a PDP-11 and by definition a 16bit machine, however depending
on the condition of the startup register the bus can be 8 bit or 16bit!
Same
software, same primary data size.
No to add insult to injury we have a Z280 which for those that know is a
souped
up z80 that can run base z80 programs. However, like the T11 it also
has a startup
configuration register and it can also run as 8bit or 16bit bus. It's
still a Z80 and
the primary accumulator (or any secondary) is still 8bits!
But this does not invalidate the measuring systems
used for different
types, and it is still trivially easy to come up with defensible ways to
measure with different end results.
The basic size of a CPU has always been governed by the basic data size
usually defined but the primary arithmetic register (accumulator). This
impacts programming as the math you do is defined by it and if you need
greater precision that usually means multiple precision math be it 16bits
on Z80 or 64bits on a PIII.
Now, what are the definitions of
"microcomputer", "minicomputer",
"mainframe"?
Also fuzzy, though the PDP-8 was the definition of minicomputer it's say
the 8008 is often held as best known first micro. Specifically the primary
elements of computer such as the control and primary register are on
one chip its micro as most all minis were many chips on large or many
boards (though some would become micros later such as 6100, LSI-11,
and Nova). The Yabuts of that were the bit slices like 6700 and 2900
that sorta fell in the middle between mini and micro.
Mainframe was usually reserved for the big central systems usually with
word lengths of 32bits or more. Best examples are IBM360, DEC PDP10,
CDC 6600.
My cut but hey, it's my $0.02.
Allison
--
Grumpy Ol' Fred cisin at
xenosoft.com