Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
hugoboss
PostPosted: May 30, 2012 - 06:53 AM
Resident


Joined: Feb 19, 2010
Posts: 507
Location: Montreal, QC, CA

Quote:
The AVRs can have code and data in flash, but can only have data in ram.


I think you meant:

AVRs can have data in flash or RAM, but can only have code in flash.

In contrast, the architecture of the ARM processor has a single internal bus for both code and data, as opposed to two separate buses on the AVR. On an ARM code can be either in flash or RAM.
 
 View user's profile Send private message  
Reply with quote Back to top
Brutte
PostPosted: May 30, 2012 - 08:03 AM
Raving lunatic


Joined: Oct 05, 2006
Posts: 2250
Location: Poland

Perhaps you do not know it yet, but it is a debugger that you actually need.

OT:
hugoboss wrote:
In contrast, the architecture of the ARM processor has a single internal bus for both code and data

AFAIK only CM0 have a single bus. Other ARMs(including mature v5) have separate program/data buses. Some of ARMs uCs have even more of them, for example LPC1769 has four buses.
Perhaps you meant "the architecture of the ARM processor has a single internal memory space"? If so, some tiny AVRs have one memory space and about all the rest of AVRs have FLASH+SRAM(+EEPROM sometimes).

hugoboss wrote:
On an ARM code can be either in flash or RAM.

Indeed, that is a cool feature. One can dll a code from about any SD.
 
 View user's profile Send private message  
Reply with quote Back to top
stevech
PostPosted: May 31, 2012 - 12:18 AM
Raving lunatic


Joined: Dec 18, 2001
Posts: 4717


The ARMs are single-address-space for RAM/Flash. This is called Harvard Architecture.

The AVR and PIC are dual-address busses. This is called von Neuman Architecture.

Problem is that C and other compilers, and the standardized run time libraries were designed for the single address space architecture and hacked and kludged for dual address spaces; some better than others (GCC is sub-par in this regard).

ARM is so nice in having RAM and Flash in the single address space. You can run code in either, e.g., debug in RAM, then write to flash. And the ARM chip makers do tricks to keep the cycle time for instruction fetches from flash just as fast as from RAM - e.g., by having a 128 bit wide flash data bus.
 
 View user's profile Send private message  
Reply with quote Back to top
bobgardner
PostPosted: May 31, 2012 - 12:47 AM
10k+ Postman


Joined: Sep 04, 2002
Posts: 21274
Location: Orlando Florida

Harvard 'architecture'->AVRs; Von Neuman architecture-> ARMs, Pentiums, 6800s, 'conventional' computers.

_________________
Imagecraft compiler user
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
js
PostPosted: May 31, 2012 - 06:32 AM
10k+ Postman


Joined: Mar 28, 2001
Posts: 20392
Location: Sydney, Australia (Gum trees, Koalas and Kangaroos, No Edelweiss)

Quote:
The ARMs are single-address-space for RAM/Flash. This is called Harvard Architecture.

The AVR and PIC are dual-address busses. This is called von Neuman Architecture.
Exactly the OPOSITE as Bob seems to show cryptically. Smile

_________________
John Samperi
Ampertronics Pty. Ltd.
www.ampertronics.com.au
* Electronic Design * Custom Products * Contract Assembly
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
Brutte
PostPosted: May 31, 2012 - 09:50 AM
Raving lunatic


Joined: Oct 05, 2006
Posts: 2250
Location: Poland

stevech wrote:
The ARMs are single-address-space for RAM/Flash. This is called Harvard Architecture.

http://infocenter.arm.com/help/topic/co ... index.html
Cortex-M0 Generic Users Guide wrote:
The Cortex-M0 processor is built on a high-performance processor core, with a 3-stage pipeline von Neumann architecture


bobgardner wrote:
Von Neuman architecture-> ARMs

http://infocenter.arm.com/help/topic/co ... index.html
Cortex-M3 Generic Users Guide wrote:
The Cortex-M3 processor is built on a high-performance processor core, with a 3-stage pipeline Harvard architecture
 
 View user's profile Send private message  
Reply with quote Back to top
larryvc
PostPosted: May 31, 2012 - 03:20 PM
Raving lunatic


Joined: Dec 06, 2007
Posts: 2512
Location: Redmond, WA USA

Add a PIC32 to the mix and you get a hybrid of the two architectures.

_________________
Larry

Those afraid to embrace the future will quickly fade into the past. - larryvc
 
 View user's profile Send private message  
Reply with quote Back to top
bobgardner
PostPosted: May 31, 2012 - 05:25 PM
10k+ Postman


Joined: Sep 04, 2002
Posts: 21274
Location: Orlando Florida

OK, I give. If the instructions are in ram, they can be modified. I did it in the 6800.

_________________
Imagecraft compiler user
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
js
PostPosted: May 31, 2012 - 11:48 PM
10k+ Postman


Joined: Mar 28, 2001
Posts: 20392
Location: Sydney, Australia (Gum trees, Koalas and Kangaroos, No Edelweiss)

Quote:
If the instructions are in ram, they can be modified. I did it in the 6800.
True but only in a single buss architecture where RAM and FLASH/ROM/EEPROM bear no distinction as to data or code or even, in the case of the 6800 I/O space, the von Neumann architecture.

In a, say M8515, where you can add 64K of RAM, instructions in that space are useless as the CPU will not see anything there as code, the Harvard (or rather MODIFIED Harvard) architecture.

Edit
Quote:
QUESTION
What is the difference between Harvard Architecture and von Neumann Architecture?

ANSWER
The name Harvard Architecture comes from the Harvard Mark I relay-based computer. The most obvious characteristic of the Harvard Architecture is that it has physically separate signals and storage for code and data memory. It is possible to access program memory and data memory simultaneously. Typically, code (or program) memory is read-only and data memory is read-write. Therefore, it is impossible for program contents to be modified by the program itself.

The von Neumann Architecture is named after the mathematician and early computer scientist John von Neumann. von Neumann machines have shared signals and memory for code and data. Thus, the program can be easily modified by itself since it is stored in read-write memory.

_________________
John Samperi
Ampertronics Pty. Ltd.
www.ampertronics.com.au
* Electronic Design * Custom Products * Contract Assembly
 
 View user's profile Send private message Visit poster's website 
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits