Author Topic: What is a good retro platform for learning computer organization?  (Read 456 times)

0 Members and 1 Guest are viewing this topic.

Offline technix

  • Super Contributor
  • ***
  • Posts: 3239
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
The idea here is to build a retro computer for the purpose of learning computer organization - how the system bus works, how DMA and bus sharing works, etc. What is a good platform for that?

Here are my candidates for the CPU: NEC V20 (Intel 8088,) WDC W65C02, Motorola MC68008, Intel 80386EX, Microchip AT91SAM9260 (ARM926,) or Loongson LS1C0300B (GS232 MIPS-compatible.)
« Last Edit: January 12, 2020, 10:55:00 am by technix »
 

Online hamster_nz

  • Super Contributor
  • ***
  • Posts: 2169
  • Country: nz
Re: What is a good retro platform for learning computer organization?
« Reply #1 on: January 12, 2020, 06:37:35 am »
I don't think the older 8-bitters will meet you aims. They are very simple and most bus sharing techniwues (e.g. video) were hacks rather than carefully crafted designs.

IMO small computer architecture started to became well designed with the Amiga or Mac with the 68000.


Gaze not into the abyss, lest you become recognized as an abyss domain expert, and they expect you keep gazing into the damn thing.
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 8144
Re: What is a good retro platform for learning computer organization?
« Reply #2 on: January 12, 2020, 07:29:30 am »
@hampster_nz,
The 68008 is internally equivalent to a full 68000, only with its address bus cut down a bit and limited to an 8 bit data bus.   One of the features of the 68000 family is that bus access width and bus cycle time can be controlled by hardware on a per location basis,  The Miracle Super Gold Card 68EC040 accelerator card for the Sinclair QL (which originally used the 68008), disabled the motherboard CPU and took over its bus, using 8 bit accesses for all the I/O on the motherboard.

@Technix: The Z80 also has a bus grant / bus release mechanism which lets it be used with an external DMA controller, so IMHO should be added to your list of 8 bit candidates 
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3239
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: What is a good retro platform for learning computer organization?
« Reply #3 on: January 12, 2020, 10:54:20 am »
@Technix: The Z80 also has a bus grant / bus release mechanism which lets it be used with an external DMA controller, so IMHO should be added to your list of 8 bit candidates
If it is just external DMA, I think NEC V20 would suffice.

How about the 80386EX? That thing (along with the ARM9 and MIPS) has modern compiler support in GCC. (And in the case of 386EX and ARM, LLVM/clang.)
« Last Edit: January 12, 2020, 10:56:02 am by technix »
 

Online Kleinstein

  • Super Contributor
  • ***
  • Posts: 6642
  • Country: de
Re: What is a good retro platform for learning computer organization?
« Reply #4 on: January 12, 2020, 02:55:34 pm »
For a DIY solution a 8 Bit bus makes things easier. The 386 CPU is probably a little tricky on the boards with no real advantage over the V20.
 Another point to look at is which assembler / compiler is available. I don't think the 6502 has a lot support for DMA - it is nice an easy, but maybe to easy / simple.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1895
  • Country: ro
Re: What is a good retro platform for learning computer organization?
« Reply #5 on: January 12, 2020, 04:05:17 pm »
If you want to learn computer architecture, reading the docs for the AM2900 bitslice architecture would be a great start.  It'll explain how it all works.  From there, you'll be able to go for more complex architectures, up to current PC.

Physically building whatever retro system you'll pick can be interesting, but will be a huge time sink without adding much to the understanding of how it all works.

However, if you want to have hands-on experience, it will be much faster to simulate/emulate your own digital designs, or to use a FPGA to test whatever hardware blocks you want to understand.  Altera still have a graphic schematic editor, so you won't need to learn VHDL/Verilog (keep in mind that learning/using FPGA is one of the most challenging and hard to learn things in digital design, not really recommended to use, unless you want to make a career in digital design).

To answer the title question, I loved to build a system around the Z80 microprocessor.  It was my own design of a 'ZX Spectrum' + 'CP/M' compatible, built decades ago.

After all, the platform doesn't matter much.
Whatever you choose, I can assure you it'll be a lot of fun!   :-+
« Last Edit: January 15, 2020, 04:30:12 pm by RoGeorge »
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3239
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: What is a good retro platform for learning computer organization?
« Reply #6 on: January 12, 2020, 05:46:05 pm »
However, if you want to have hands-on experience, it will be much faster to simulate/emulate your own digital designs, or to use a FPGA to test whatever hardware blocks you want to understand.  Altera still have a graphic schematic editor, so you won't need to learn VHDL/Verilog (keep in mind that learning/using FPGA is one of the most challenging and hard to learn things in digital design, not really recommended to use, unless you want to make a career in digital design).
I understand that it is faster to emulate things - I have both a Zynq 7020 and a Spartan 3 XC3S500E board for those purposes, Zynq 7020 for a FPGA system with a ready-made CPU core in it, or XC3S500E if I want to do everything using HDL. I would prefer something I can stick an oscilloscope to here though.

To answer the title question, I loved to build a system around the Z80 microprocessor.  It was my own design of a 'ZX Spectrum' + 'CP/M' compatible, built decades ago.
Can I buy Z80 chips now? How to hook it up to memory and peripherals? What kind of interface voltage do I need? (Since I use CPLD for address decoding, interface voltage determines to what CPLD I can use, EPM7032S for 5V and XC2C32A for 3.3V.) Is there any standard memory map layout? How fast can the thing run? How can I find compilers and assemblers, preferably something that can understand the GCC flavor of C11.

Also how different would it be for a Z80 based system and a V20/8088 based system? Then how should I do the video output?
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1895
  • Country: ro
Re: What is a good retro platform for learning computer architecture?
« Reply #7 on: January 12, 2020, 06:57:53 pm »
- Z80 can still be found (a random "Z80 Aliexpress" search shows they are less than $1, https://pt.aliexpress.com/item/32519338899.html)
- To add memory to a Z80, buy memory chips then read the processor and the memory datasheets to see how to interconnect them
- Z80 family works at 5V.  A minimal system doesn't need much glue logic, so it can be done with gate logic ICs (i.e. 7400 family) maybe a couple of multiplexer if you choose dynamic RAM chips, but nowadays there are plenty of static RAM choices instead dynamic.  It can be done without CPLDs.
- Z80 can address 64KB of memory.  You can map it upon wish, or you can use the memory map of some vintage Z80 based computer (there never was a single standard in memory mapping, and probably never will), if you choose to make yours compatible with any of the existing designs.
- To see how fast it can run, you need to read the datasheets.  1-4 MHz is normal range for vintage computers.  There are also microcontrollers based on Z80 or Z8 core that can run 10 times faster, or so.
- There are plenty of assemblers and C compilers for Z80.  A "GCC Z80" search will return plenty of options.
- About how different, it was like that:  First it was Intel8080, then a few guys left intel, made their own company named Zilog and designed an even better version of 8080, named Z80. Z80 was very successful at the time.  Remember we are now during CP/M era, way before first IBM PC or Microsoft (MS/DOS).  Then it was Intel 8088, then Intel 80188, then Intel 80286 (short called 286), then 386, 486, Pentium, and so on and so forth up to nowadays latest i7/i9/Xeon whatever or similar from AMD (the AM2900 bitslice family were from AMD, too, but before the microprocessors era).  All the above, from I8080 to the latest multicore Xeon can still run 8080 (or Z80) code, they are still backwards compatible (at binary code level) after so many decades.

Anyways, by the question you are asking I think you want to know more only about the specific architecture of IBM PC, or what we now call a "desktop PC", and not about (digital) computers architecture in general, which is broader than IBM PC, the popular instance of the many existing computer architectures out there.

Motorola (6800/68000) family was very successful too (not code compatible with Intel), it was used in the first Apple computers, but at some point Apple dropped Motorola, and switched to Intel.

Detail a little what kind of computers do you have in mind when saying "vintage" computers?  What period of time are you aiming at?

At an extreme, analog computers are "the most vintage" ones   ;D , very interesting architectures and very different from the digital ones, but completely unrelated to what we know and use now in programming/computer science.
« Last Edit: January 15, 2020, 04:32:13 pm by RoGeorge »
 

Offline saipan59

  • Contributor
  • Posts: 5
  • Country: us
Re: What is a good retro platform for learning computer organization?
« Reply #8 on: January 12, 2020, 09:29:17 pm »
As others have said, it would help to know more about what you already know.
And, are you wanting to build something from scratch, or just buy a ready-made board to study?

Meanwhile, here is an idea:
A good way to learn computer architecture concepts is to design and build one yourself. I'm not talking about a "practical" computer, but rather something that demonstrates the concepts. To avoid a really complex HW project, you could use (for example) a cluster of 2 or 3 microcontroller eval boards (from your favorite MCU vendor), or FPGA eval boards, design a very simple 'bus', then learn how to implement the things you care about (such as DMA, memory, I/O).
Execution speed is not an issue. Put LEDs on the various signal lines, and run it super slow so that you can *see* things happening.

Pete
 

Offline saipan59

  • Contributor
  • Posts: 5
  • Country: us
Re: What is a good retro platform for learning computer organization?
« Reply #9 on: January 12, 2020, 09:35:53 pm »
Also, when you say "build a retro computer" - what do you mean by "build"?
Some people mean buy a motherboard, buy a power supply, buy a box, plug in the connectors - then say "I built a computer".
Other people mean designing a component-level schematic, designing a PCB layout, soldering parts, etc.
My previous reply suggests a reasonable compromise, I think, but what are you wanting to do?

Pete
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1895
  • Country: ro
Re: What is a good retro platform for learning computer organization?
« Reply #10 on: January 12, 2020, 09:40:34 pm »
Put LEDs on the various signal lines, and run it super slow so that you can *see* things happening.

Good advice.  Don't overdo it, thought, like this guy:



 ;D
 
The following users thanked this post: saipan59

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 4016
  • Country: fr
Re: What is a good retro platform for learning computer organization?
« Reply #11 on: January 13, 2020, 12:29:14 am »
Actually, I think a 8088/8086-based design with a 8237 DMA controller would be the sweet spot if you want simple bus architecture, easily understandable, yet will give you all the concepts. It can be built relatively easily these days and you can observe all signals.
 

Online Cerebus

  • Super Contributor
  • ***
  • Posts: 3866
  • Country: gb
Re: What is a good retro platform for learning computer organization?
« Reply #12 on: January 13, 2020, 01:15:49 am »
If you want to learn computer architecture (computer organization means nothing, it is not the proper term),

A man who might be regarded as one of the pioneer computer scientists, Elliot Organick, might disagree with you there.



That book gets cited by just about every Computer Architecture textbook and Organick himself was significant enough to get a biography written up in the Communications of the ACM shortly after his death from leukaemia in 1985. I think we can allow 'computer organization' if Organick chose to use it. Organick, and other authors, have used the phrase to describe what some will describe as "computer architecture". The term certainly has been used a lot, and is still current. A quick web search will demonstrate that a lot of universities have a module entitled "Computer Organization".

Quote from: Preface
I have aimed the book at an audience consisting of computer center directors, other computer professionals, and serious students in computer science who have an interest in the subject of computer organization.

It certainly, with that pedigree, doesn't "mean nothing". If there is a distinction to be drawn between "computer organization" and "computer architecture" then it would be that the former is more concerned with hardware and practical implementation, the latter more abstract and software orientated. In the context of the OP's interests "computer organization" may well be the more apposite term.

Reflecting on this in a more general sense I think 'Computer System Organization' may even be a better general term than 'Architecture'. In everyday speech it's much more natural to ask "How is this system organized?" rather than the rather pretentious sounding "How is this system architected?".

Wouldn't be popular with the computer folks who like to have 'architect' in their job titles though - if you changed "Systems Architect" to "Systems Organizer" it would become rapidly clear from the prevailing level of disorganization that most computer systems have that someone wasn't living up to their job title.  >:D

Anybody got a syringe I can use to squeeze the magic smoke back into this?
 

Online Cerebus

  • Super Contributor
  • ***
  • Posts: 3866
  • Country: gb
Re: What is a good retro platform for learning computer organization?
« Reply #13 on: January 13, 2020, 01:43:01 am »
Rather than answer the OP's question - because it still isn't quite clear to me at least what their ultimate goal is - I'm going to chime in with a book recommendation.

"Computer Organization and Design - the hardware/software interface" by David Patterson and John Hennessy is probably the best current textbook on the basics of modern computer hardware design. It's a broad textbook, so although it covers 'modern' design it also covers the basics that are relevant for "retro" territory too. Patterson was the man behind RISC at Berkeley, and Hennessy was the man behind MIPS, so they both have actual successful computer designs under their belts, not something that can be said by a lot of the other authors of textbooks in this field.

Getting back to building. A Z80 based system might be quite a good fit for what I can discern about the OP's needs. Cheap, slow (4MHz - so almost any old scope would be good enough to follow what's happening on the buses), a simple bus with minimal secondary logic needed, a good family of support chips (serial, DMA, etc) and relatively well documented. I certainly found them easier to use than some of their contemporary micros back in the day.
Anybody got a syringe I can use to squeeze the magic smoke back into this?
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 1895
  • Country: ro
Re: What is a good retro platform for learning computer organization?
« Reply #14 on: January 15, 2020, 04:27:11 pm »
If you want to learn computer architecture (computer organization means nothing, it is not the proper term),

A man who might be regarded as one of the pioneer computer scientists, Elliot Organick, might disagree with you there.



That book gets cited by just about every Computer Architecture textbook...

Thanks for pointing it out, that's new to me.   :D

Found the book online http://www.textfiles.com/bitsavers/pdf/burroughs/B5000_5500_5700/Organick_B5700_B6700_1973.pdf, and at a first browse seems like a handbook for B5700/B6700 mainframe computers, not a reference textbook to cite decades later.  Since it's only about 100 pages and so popular, will give it a read.

Online Cerebus

  • Super Contributor
  • ***
  • Posts: 3866
  • Country: gb
Re: What is a good retro platform for learning computer organization?
« Reply #15 on: January 15, 2020, 05:01:49 pm »
Since it's only about 100 pages and so popular, will give it a read.

Warning, Organick's style is a little difficult to read but, if you're interested in how computer design evolved then it's worth persevering. The type of book, "Here's the description of the design of a particular computer" was quite common in that era and perhaps for 20 years more. Think of them as an extended version of an academic paper rather than as a classic textbook. I've three similar on my bookshelf, one describing MU5 (Manchester University 5 which formed the basis of the ICL 2900 series of mainframes), one describing the CAP machine from Cambridge University and one describing SOAR (Smalltalk On A RISC) - the latter another ACM Monograph like Organick's book was.

That series of Burrough's machines was the first attempt to try and make a machine that was designed to conform to the way programming languages worked rather than the other way around. That style of stack machine with complex descriptors has fallen by the wayside but it's important not to forget about them, who knows what new problem might be well-fitted to that basic style of complex machine in the near future? Capability machines were forgotten for years and are just beginning to attract research interest again because of the strong security guarantees that they can offer.
Anybody got a syringe I can use to squeeze the magic smoke back into this?
 

Offline saipan59

  • Contributor
  • Posts: 5
  • Country: us
Re: What is a good retro platform for learning computer organization?
« Reply #16 on: January 15, 2020, 10:23:56 pm »
Another book option that I recommend:
https://gordonbell.azurewebsites.net/CGB%20Files/Computer%20Engineering%207809%20c.pdf
A large chunk of the book details the PDP-11.
I worked for DEC beginning in 1981 (now retired).

Pete
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf