[SOLVED] Use of Computer Architecture

Status
Not open for further replies.

vreg

Member level 4
Joined
Oct 16, 2012
Messages
70
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Visit site
Activity points
1,935
We have an undergraduate course called Computer Architecture in which the basics of processor design were introduced using the MIPS architecture. However, the way processors are actually designed is much more advanced than what is taught in the course.
Is there any use of this course for those not interested in going into processor design or VLSI?
What kind of projects can be done with this basic knowledge?
 

It is quite useful background for anyone working with embedded processors and DSP, an appreciation of things like cache architectures, MMUs and their (sometimes complex) interaction with DMA and the cache, memory ordering, all that stuff matters when doing emedded.

The reality is that these days pretty much EVERY non trivial electronic system involves at least one processor of some description, and increasingly there are multiple cores, knowing something of how they string together is useful, electronic engineers get heavily involved in writing the lower levels of the application stack more often then not, and knowing something of the detail is helpful.

Incidentally the PIC32 series of parts is a MIPS core and are still very much in current use.

73 Dan.
 
Reactions: vreg

    vreg

    Points: 2
    Helpful Answer Positive Rating
Hi, thanks for the info..

I understand that this background will give me a better understanding of systems. However, how do you gain more practical knowledge. After studying subjects like operating systems,control systems,networks,etc. you can immediately apply them in your projects and practically implement some of the concepts. Where can you actually apply knowledge gained in this subject to make something useful?
 

Where can you actually apply knowledge gained in this subject to make something useful?
You gain practical experience by designing and BUILDING things (And not just in proteus either).
For me it was radios and test equipment for same, but almost anything will do.

Data loggers, temerature controllers, stuff for little robots, get a few cheap RC cars and make them behave as an autonomous swarm, loads of things out there to play with.

There are fairly acceptable free tools out there for some of the smaller arm parts as well as PIC32, the freescale stuff and several others and it probably does not matter too much what you pick to start with, grab a micro (A Dev board for a PIC32 will be a good starting point), download the tools, add some sensors and design something!

Then add FreeRtos once you understand the bare metal, add FatFs and figure out how to make the DMA work, maye hook up some audio IO and buld an MP3 player.....

I chose the PIC32 because given the rather suspect nature of much of microchips documentation and libraries you will have to work a little at figuring it out (Hint, PLIB is probably best ignored).

Something ardwino based would be a gentler introduction, but is really too far from the bare metal.

Regards, Dan.
 
Reactions: vreg

    vreg

    Points: 2
    Helpful Answer Positive Rating
Then add FreeRtos once you understand the bare metal, add FatFs and figure out how to make the DMA work, maye hook up some audio IO and buld an MP3 player.....
Regards, Dan.

That sounds really interesting! But how would concepts such as pipelining or reorder buffers ever be used in these projects?
 

Well, the presence of the reorder buffer directly impacts the need for memory barriers in things like lock free ring buffers (Which you are surely going to want in there somewhere), and pipelining can (Depending on the strength of the memory ordering gaurantees) make things like locking between cores unexpectedly tricky.

Both of the above can make jtag debugging go a little weird upon occasion, as the state of the machine may not match the instruction that you have just seen 'executed'....

I have lifted concepts from processor architectures wholesale for use in state machines in FPGAs before now (After all, what is a computer but a very large FSA), so yes, you can sometimes drop these concepts into systems that are your own hardware designs even when no 'processor' is involved (And I am at heart an analogue design enineer, digital I do under protest!).

Never turn down the opertunity to learn about something even if you can see no direct immediate use for it, sometimes the concepts apply in the strangest places.

Regards, Dan.
 
Reactions: vreg

    vreg

    Points: 2
    Helpful Answer Positive Rating
Thanks for the all this information, really helped me gain some perspective!
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…