EmbeddedRelated.com
Forums

why is freq Internally divided in uPs?

Started by funkymunky December 28, 2004
Hi,

Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im
curious to know why in both of these devices, the clock that is applied
to the device is internally divided by 2? why is half to clock value
not given instead?

Thanx in anticipation

regards
Mayank

I guess that they don't teach much about architectures these days. Did
you mean that the instruction rate is half the clock rate? I don't know
about those particular processors but for instance you might need one
clock cycle to fetch an instruction and at least one to execute it.
Older cores needed lots more clock cycles, maybe 12 and newer ones
might use 4 or even 1 by using techniques like multiple fetch,
pipelining and different architectures.
Peter

> Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im > curious to know why in both of these devices, the clock that is
applied
> to the device is internally divided by 2? why is half to clock value > not given instead?
That is probably because the internal circuit requires a symmetrical clock, i.e. duty cycle 50:50, which is most easily achieved by dividing the external clock by 2. Crystal oscillators are often not symmetrical enough. 70:30 is rather common and even 90:10 is not too unusual for a duty cycle. The underlying reason for the requirement of symmetry is that often both clock edges, i.e. rising and falling edge are used. Michael
hmmmmm......makes sense...:

"There are no requirements on the duty cycle of the
external clock signal, since the input to the internal
cheking circuitry is through a divide-by-two fiipflop."
-MCS@51 MICROCONTROLLER FAMILY USER'S MANUAL

thanx guys!

Hi Mayank,

This isn't the case for all processors. The MSP430 allows to drive 
things like the timer divider chain at full clock speed. It is not a 
huge problem to devise a circuit that provide a duty cycle that is very 
close to 50%.

Regards, Joerg

http://www.analogconsultants.com
> Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im > curious to know why in both of these devices, the clock that is applied > to the device is internally divided by 2? why is half to clock value > not given instead? > > Thanx in anticipation >
I think they were originally designed using a two phase non overlapping clock. Every odd cycle would enable PHI1 and every even cycle woudl enable PHI2. A D Flip Flop would be implemented uisng two latches. Latch 1 would open on PHI1 and Latch 2 would open on PHI2. -- Best Regards, Ulf Samuelsson ulf@a-t-m-e-l.com This is a personal view which may or may not be share by my Employer Atmel Nordic AB
funkymunky wrote:

>Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im >curious to know why in both of these devices, the clock that is applied >to the device is internally divided by 2?
Don't assume that all devices act like the ones you have studied. For example. the Analog Devices ADuC832 is an 8051 that uses a 32.768 kHz crystal to generate a 16.777216 MHz clock (yes, I did mean kHz and MHz - no typo), or it runs at 16.7 MHz +/- 20% with no crystal at all. -- Guy Macon <http://www.guymacon.com/>
funkymunky wrote:

> Hi, > > Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im > curious to know why in both of these devices, the clock that is applied > to the device is internally divided by 2? why is half to clock value > not given instead? > > Thanx in anticipation > > regards > Mayank
Mayank, The reason many processors have higher frequencies (usually 2, 4 or 8) than the instruction clock has to do with the implementation of the circuitry in the processor itself. One of the reason is that different internal operations are performed on different clock edges. Adding 1 to a register might entail reading the register into the ALU, incrementing the ALU and writing the ALU back to the register. Another reason involves accessing external memory and/or peripherals. It is much easier to generate access sequences. For example: select the proper direction of the data buffers on the first clock; assert the external address and R/w* on the next; assert an address-valid signal (for generating chip selects) on the one after that; then finally clock the data from the external device into the processor. Another still has to do with managing variations in the manufacturing process used to produce a particular processor. Clocks are convenient ways to resynchronize signals with varying propagation delays. The also make for a more consistent interface to the real world. For example, different address signals routed around the process might actually have quite different propagation delays to the IO buffers that drive the processor's physical pins. But, throw in a clocked register at or in the IO buffer and now all the address signals have nearly identical timing (at the interface to the real world). HTH, Noel
On 27 Dec 2004 23:04:20 -0800, "funkymunky"
<prehistorictoad2k@yahoo.com> wrote:

>Hi, > >Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im >curious to know why in both of these devices, the clock that is applied >to the device is internally divided by 2? why is half to clock value >not given instead?
Having learned on a 6502, I often wondered that myself about other microprocessors. In the 6502, the oscillator frequency IS the internal clock (and it has the on-chip crystal oscillator circuit, just like most other such chips). It usually does a memory fetch or write on every clock cycle, so many instructions took only as many clock cycles as they needed memory accesses. The minimum was two, so one-byte instructions such as register-to-register transfers and no-op take two cycles.
>Thanx in anticipation > >regards >Mayank
----- http://mindspring.com/~benbradley
Ben Bradley <ben_nospam_bradley@mindspring.com> writes:
>"funkymunky" <prehistorictoad2k@yahoo.com> wrote: > > >Ive studied the Intel 8085 and the 8051 as part of my curriculum. Im > >curious to know why in both of these devices, the clock that is applied > >to the device is internally divided by 2? why is half to clock value > >not given instead? > > Having learned on a 6502, I often wondered that myself about other > microprocessors. In the 6502, the oscillator frequency IS the internal > clock (and it has the on-chip crystal oscillator circuit, just like > most other such chips). It usually does a memory fetch or write on > every clock cycle, so many instructions took only as many clock cycles > as they needed memory accesses. The minimum was two, so one-byte > instructions such as register-to-register transfers and no-op take two > cycles.
That corresponds to a classical processor design: read the instruction, memory access for one operand if necessary, perform the operation, write the result to memory if necessary. This gives from two to four "main" cycles to execute an instruction. These "main" cycles don't necessarily correspond to an oscillator frequency and usually don't.