address path width (was Re: Welcome and VME)

From: Eric Smith <eric_at_brouhaha.com>
Date: Tue Nov 14 18:23:21 2000

>> Besides, a 4-bit address bus seems utterly, utterly limited.
> For most of those the data path was 4bits the address path was often 12
> or more bits.

Actually, for most of the calculators mentioned, the address path *is* 4
bits. And it's the same 4 bits as the data path. The Saturn sends the
20-bit address on five consecutive clock cycles. The nice thing is that
they have two different data pointers in each device [*], and separate
memory read and write commands that use them. So one data pointer can
track the PC, and the CPU only has to output a new value to that data
pointer over the bus when branching. Operand accesses use the other
data pointer. Reads and writes using one data pointer have no effect on
the other.

The Saturn bus was designed back when it was considered impractical for
compact plug-in modules for a handheld device to have much more than a
dozen contacts.

This replaced the earlier HP-41 bus, which operated in a bit serial
fashion. In addition to a two-phase clock, there was a sync line to
indicate the start of a 56-bit frame. The ISA line provided a 16-bit
address from the CPU to the ROMS, and a 10-bit data value from the
ROMs back to the CPU. (Other devices had to watch the data value as
well.) RAM data transfers used a separate signal that generally
transferred 56 bits in a frame.

Going to a four-bit bus increased the available bandwidth considerably.
And by only using a minimum of clock cycles for a transfer (rather than
always 56 bits), they made much more efficient use of the bandwidth.

Eric


[*] Keeping address pointers in the memory and peripheral chips has
a long history. The Intel 4004 and 4040, the Fairchild F8, and
other processors have done this. IIRC, the F8 also used the dual
data pointer concept. Whereas on the Saturn bus, neither data pointers
is "special", with the F8 one of them is explicitly designated to be the
program counter.
Received on Tue Nov 14 2000 - 18:23:21 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:12 BST