2

Old processors came out with support chips. That is, there was a family - the processor and its chips. Over time, the same kits came out with higher frequencies.

Will the circuit work properly if the processor and support chips are running at different speeds.

Here are some examples.
Z80 family
- Z80 / Z80А / Z80В / Z80H = 2.5 / 4/ 6 / 8 Mhz
- Z80CTC / Z80ACTC /Z80BCTC / Z80HCTC = not sure, but probably the speed distribution is the same
- Z80PIO / Z80АPIO / Z80ВPIO / Z80HPIO = not sure, but probably the speed distribution is the same

8088 family
- 8088 / 8088-2 / 8088-1 = 5 / 8 / 10 Mhz
- 8255/ 8255-2 / 8255-5 = certanly the speed are different
- 8259/ 8259-2 / 8259-5 = certanly the speed are different

So, what if the processor runs at a higher frequency than other chips in its support set (it can even be not only i/o chips but also interrupt controllers, bus arbiters, etc.)?

Here are some examples.

  • Z80B and Z80CTCA and Z80PIO
  • Z80H and Z80CTCB and Z80PIOA
  • 8088-1 (10Mhz) and 8259 (less 10 MHz) and 8253-2 (8 Mhz)
  • 2
    look for absolute maximum ratings in datasheets usually at the end ... if you use too high frequency (overclocking) for IC it will not work properly. Beware also too slow frequency might be a problem for some chips/technology (some CPUs and more complicated unipolar ICs might pose a problem, bipolar/TTL IC's are usually fine) – Spektre Jun 12 at 19:12
  • Everything runs at the same speed. The figures are the maximum speed at which each could run at, so as long as you have a clock slow enough for the slowest, you’ll be all right. – Martin Kochanski Jun 13 at 6:59
  • 1
    You need to supply a clock that is between the minimum and maximum supported for each chip in the system. You're very unlikely to be at risk of underclocking if you drive it at the lowest maximum speed of your ICs. – Toby Speight Jun 14 at 14:45
8

Will the circuit work properly if the processor and support chips are running at different speeds

Short answer: No, as they usually never ever run at different bus speeds.Mixing various speed ratings just means that the system at whole should not run faster than the slowest one.


Long Answer:

Speed of classic CPUs like Z80 is the speed rating for the bus. An since it's one bus connecting all chips (*1), there can only be one speed and this speed is supplied by a single clock generator. In most cases the speed is defined by the system board, so plugging in chips with a higher rating won't change anything, while inserting some with lower rating bears the chance of malfunction.

Bottom Line: Classic CPUs work in a single tightly coupled system, not like today's with many different domains and speeds within the same system.


Bonus Material

It seams from the comment as if your're about to build a system, like with a Z80H and a 8255-5. This opens three possible szenarios:

  1. Run the system at 5 MHz. That's the slowest component guaranteed speed.
  2. 'Overclock' it. Try 8 MHz or 10 MHz and see if the 8255 still works fine.
  3. Run it at 10 MHz, but insert wait states during 8255 access.

While #1 is the conservative and easy choice, #2 ist a fair game for a one off hobby board, it's #3 what a serious design would be. Most simple solution (beside some clever hack) would be a programmable wait state generator like this:

  • Take a 74191
  • Set it to 5 clocks (B/D to ground and A/C to +5V)
  • Tie UP and Enable to ground
  • Use system clock for CLK (*)
  • Use the 8255 CS for LOAD (*)
  • Use Min/Max for WAIT (or make up a combination using on of the counter outputs)

(*) - may need to be inverted

Such a setup has even the advantage to try out 'overclocking' the 8255 between 5 and 10 MHz - and with a bit more puzzling (and logic) it can offer specific delay for any additional chip with different timing.


*1 - Of course one could think about a system with different sections operating at different speed, but the effort is quite large, as any transaction going across would need synchronisation.

  • Thanks. Given your answer, what about this kind of an implementation: Z80H (10 Mhz) and (for example) 8255A-5 (5 Mhz) but both operate at a frequency of 5 Mhz? – Alex Jun 12 at 19:59
  • @Alex You need to look at the system, not the chips. In a TRS-80 both would work at 1.77 MHz while in a Spectrum it would be 3.5 MHz and 4 MHz in an RM 380Z. It's the systems clock generator defining what operating frequency is used, not the chip. And for a Loki you'd better use parts specified for 7 MHz or better. – Raffzahn Jun 12 at 20:33
  • I mean, if my whole system is these two chips. – Alex Jun 13 at 5:52
  • 1
    @Alex The whole system needs at least a clock generator as well (plus ROM). The system will run (or not) at whatever speed that clock generator provides. If set for 1 MHz, then it is 1 MHz. Or any other speed. Both are guaranteed to run up to 5 MHz, so 5 MHz would be the safe choice. Everything above will be a game. There is no locking or whatsoever. Just designated rating. In general the slowest chip defines the speed - but then there are wait states as well. Long story short, just looking at the speed designation doesn't tell much. – Raffzahn Jun 13 at 7:55
  • @Alex Added a little how to section. – Raffzahn Aug 25 at 9:31
3

For instace the IBM PC used the 8088 CPU at 4.77 MHz because it was only a 5 MHz chip and the 8253 timer at 1.19 MHz because it was only a 2 MHz chip. Maximum clock speeds and maximum bus speeds are two completely different things, and peripherals with slow bus speed can be connected to a CPU with fast bus speed by introducing wait states.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.