Re: microcontroller programming -- how to begin



On Fri, 02 Jun 2006 20:17:52 +0200, David wrote:

Ken Smith wrote:
In article <447f2e71$1@xxxxxxxxxxxxxxx>, David <david@xxxxxxxxx> wrote:
Ken Smith wrote:

[....]
It's true that the AVR, like the PIC and the 8051, are Harvard, while
the x86 is von Neumann. But that's only one aspect of the architecture
- in many other ways, they are completely different.

Ok lets discuss those differences.

And since you are
happy count the PIC and AVR as similar because they both have registers

Yes, they both use the concept of the register. ie: a very special memory
location that can be used in ALU operations. There have been a few
attempts at processors where there are no "registers" in that all
operations took data from RAM and put the result into RAM. IIRC: The
Intel 432 was an example of this.

or because they both execute instructions sequentially,

I was thinking of a bit slice design that did not have this property when
I wrote that. In some "very long instruction word" designs, the address
of the next instruction in encoded in each instruction. These machines
are light years different from things like PICs or x86s.


There are certainly processor architectures that use significantly
different architectures, making the PIC and AVR seem similar in
comparison. I have read of several processor designs (some only
theoretical, others made in practice) that use two, three or four stacks
instead of having any data registers. But I think it's reasonable to
divide architectures in groups according to the number of general
purpose registers. RISC architectures like the MIPs, PPC and AVR, along
with hybrids like the MSP430 and the 68k have multiple orthogonal
registers. Accumulator-based designs like the PIC or the COP8 have a
single main register. A third group has several specialised registers,
like the x86 and the Z80. And a forth group has no registers at all,
like the MARC4.

I guess how "different" two architectures are depends on what you see as
important in the design, and is always a subjective measure. But I
think most people who have looked at the ISAs for the PIC, the 8051 and
the AVR will see each as very significantly different, with the 8-bit
width of the ALU being about the only common factor.

I got nostalgic for the 6502; it's a very neat processor for little stuff;
it's got like 256 general purpose registers called "page 0" which live in
RAM, right next to the 256-byte stack. So, I went looking, and there's
VHDL and Verilog cores for it all over the place! (I made a keyboard
interface with one once. :-) )

Cheers!
Rich


.



Relevant Pages

  • Re: microcontroller programming -- how to begin
    ... There have been a few attempts at processors where there are no "registers" in that all operations took data from RAM and put the result into RAM. ... In some "very long instruction word" designs, the address of the next instruction in encoded in each instruction. ... There are certainly processor architectures that use significantly different architectures, making the PIC and AVR seem similar in comparison. ... I have read of several processor designs that use two, three or four stacks instead of having any data registers. ...
    (sci.electronics.design)
  • Re: How AMD will take on Intel Woodcrest: twice the FPUs
    ... It might be worth having more execution ... parallel designs for the future. ... cannot design 3 new architectures. ... consider how badly outclassed x86 is by every halfway reasonable ...
    (comp.sys.ibm.pc.hardware.chips)
  • Re: microcontroller programming -- how to begin
    ... There have been a few attempts at processors where there are no "registers" in that all operations took data from RAM and put the result into RAM. ... There are certainly processor architectures that use significantly different architectures, making the PIC and AVR seem similar in comparison. ... I have read of several processor designs that use two, three or four stacks instead of having any data registers. ... A third group has several specialised registers, like the x86 and the Z80. ...
    (sci.electronics.design)
  • Re: [RFC][GIT PULL][PATCH 0/10 -tip] cpu_debug patches 20090613
    ... read complete state (dump all registers like for MTRR, ... And I did this for complete X86 CPU registers and info: ... available for many architectures (I CCed some architecture maintainers ... so that they can also specify issues they face when supporting new ...
    (Linux-Kernel)
  • Re: non load/store architecture?
    ... Programmers can write great code on a RISC ... Especially in a PC marketplace dominated by the x86. ... Lots of registers and an orthogonal instruction set are important - both have these. ... The lack of registers means much more memory IO, which causes stalls and requires complex scheduling. ...
    (comp.arch.embedded)