T
Tim Wescott
Guest
I've been geeking out on the COSMAC 1802 lately -- it was the first
processor that I owned all just for me, and that I wrote programs for (in
machine code -- not assembly).
One of the features of this chip is that while the usual ALU is 8-bit and
centered around memory fetches and the accumulator (which they call the
'D' register), there's a 16 x 16-bit register file. Any one of these
registers can be incremented or decremented, either as an explicit
instruction or as part of a fetch (basically, you can use any one of them
as an index, and you can "fetch and increment").
How would you do this most effectively today? How might it have been
done back in the mid 1970's when RCA made the chip? Would it make a
difference if you were working with a CPLD, FPGA, or some ASIC where you
were determined to minimize chip area?
I'm assuming that the original had one selectable increment/decrement
unit that wrote back numbers to the registers, but I could see them
implementing each register as a loadable counter -- I just don't have a
good idea of what might use the least real estate.
Thanks.
--
Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
I'm looking for work -- see my website!
processor that I owned all just for me, and that I wrote programs for (in
machine code -- not assembly).
One of the features of this chip is that while the usual ALU is 8-bit and
centered around memory fetches and the accumulator (which they call the
'D' register), there's a 16 x 16-bit register file. Any one of these
registers can be incremented or decremented, either as an explicit
instruction or as part of a fetch (basically, you can use any one of them
as an index, and you can "fetch and increment").
How would you do this most effectively today? How might it have been
done back in the mid 1970's when RCA made the chip? Would it make a
difference if you were working with a CPLD, FPGA, or some ASIC where you
were determined to minimize chip area?
I'm assuming that the original had one selectable increment/decrement
unit that wrote back numbers to the registers, but I could see them
implementing each register as a loadable counter -- I just don't have a
good idea of what might use the least real estate.
Thanks.
--
Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
I'm looking for work -- see my website!