NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.
Basic Electronics » Embedding Multi-Core Processors
August 14, 2011 by Twarter369 |
I have been reading up on multi-Core programming using MPI and OpenMP. I would like to embed an Athlon II Dual-Core M300 (or similar) in a robotics project I am working on. However, I can't find any introductory info on setting up a programming bed for those types of chips. I am even having trouble finding through hole sockets for them. Any knowledge or links you guys can drop on me would be greatly appreciated. |
---|---|
August 15, 2011 by BobaMosfet |
Twarter369- You're confusing a CPU with an MPU. An MPU is a 'computer on a chip'. It has a CPU integrated within it, and has many other components integrated allowing it to be a functional mini computer, on its own. A CPU on the other hand, is like a big fat brain- with nothing in it. It needs All those extra components- ROM, RAM, ADC, ALU, FPGA, etc., in order to bring it up to the same level as the MPU- albeit much more powerful. BM |
August 15, 2011 by bretm |
And doesn't the Athlon II have something like 938 pins? That would be very unwieldy to deal with in a hobby-scale project. If you could find a 0.1" pitch adapter that would work in a breadboard, it would be over a meter long, dual in-line. |
August 15, 2011 by bretm |
The GHz speeds would require a carefully-designed circuit layout. If you want to use this type of chip for robotics, I'd start with a complete motherboard and go from there. |
August 15, 2011 by BobaMosfet |
I would start with something much simpler- wrap your head around an MC68000, or a Z80. BM |
August 17, 2011 by Twarter369 |
Thank you Bret and Boba. I appreciate the info. Boba, neither of those chips is listed as dual core. I have yet to find a Dual Core MPU. Are there any available? |
August 17, 2011 by rajabalu21 |
Please see this. Propeller is a multicore MPU. -Raja |
August 17, 2011 by Twarter369 |
Rajabalu, Thank you! That looks like exactly the base I need. |
August 19, 2011 by BobaMosfet |
I wouldn't try working with a dual core until you can work with a single core CPU effectively. That's why I suggested the chips I did. BM |
August 20, 2011 by Twarter369 |
Well, thank you but I have to disagree. It is not necessary to learn on a single core. Nor would I recommend it to people. Multi-core processors are everywhere, and we need to start taking better advantage of them as programmers. It's like(IMO)telling someone they have to learn to drive a Model T before they could handle today's automobiles. It's just not true, and it would waste a lot of time because you have to learn 2 systems instead of one. |
August 20, 2011 by Ralphxyz |
Twarter369, yup you are correct [quote] "It is not necessary to learn on a single core." [/quote] But you might want to heed the voice of experience. There are a lot of "maybes" that can be avoided. Like after six months of learning duo core programming you "think" maybe I should have started with a single core processor. But please keep us posted the Propeller is a very popular processor they have some great contest, something I wish Atmel did. Ralph |
August 21, 2011 by BobaMosfet |
Ralph, Thanks, I appreciate it. Twarter369- It was only a suggestion. Proceed on your own course, and if you find it's faster for you to develop that way-- go for it. One of the most amazing things about this entire thing is that you have the ability to do it your way. I just hope it proves fruitful for you. BM |
August 22, 2011 by Twarter369 |
There seems to be a missing post from me. I will break it down again. I never meant to sound as if I was snubbing the start smaller advice. I apologize if it came across that way. After all I already own a single core MPU, while I do not yet own the propeller. I wouldn't dream of stopping my studies altogether to wait on a different chip, so I will in effect be following your advice of grasping Single Core better before moving on. What I should have written was that I prefer not to limit my studies based on what I don't already know. It is a system that has worked for me for quite some years now. |
August 22, 2011 by Twarter369 |
I would like to add that any advice I receive is seriously needed, duly investigated, and greatly appreciated! |
August 22, 2011 by BobaMosfet |
Twarter369- no offence taken. Part of the joy of this board is that each person gets the opportunity to find their own way- and I personally have more respect for those that do. Go like a ball of fire! BM |
August 23, 2011 by Ralphxyz |
Thanks to Noter's threads on Master/Slave and of course the Nerdkit Expanded LED Array I have been inspired to to think of using the AVR mcu in a parallel processing mode (multi core?)! I would go beyond Master/Slave to the Intelligent Port Expander mode. You could have multiple processors dong distinct individual processes while communicating with one another. There might be one mcu handling serial communications with a pc, another measuring multiple temperature sensors, another handling switch input, and one lighting LEDs, with another giving LCD readouts. Simultaneous multi core processing for $35.00 or less. The best part being that this scenario is something even someone with limited programing skills, like myself, could do once I read the Nerdkit user guide and followed some of the threads here in the Nerdkit forum. Ralph |
August 23, 2011 by Twarter369 |
I thought about the Master/Slave(s) set up, but I thought it would be too limited by the number of Bus' connecting the inherently distributed memory system. Still, it seems like this method of duplexing would provide a viable alternative to a multi-core chip. It would also allow you to pick different chips based on the functions they serve. I believe this would be referred to as "Process Parallelization", or "Hardware Parallelization". Could you make a shared memory system by connecting two A168's to the same EEPROM bank? I have yet to work with external memory hardware of any kind so this is just an idea I had. The transfer rate would probably be prohibitively slow for robotic applications, huh? Final branch of Ralph's Idea, M/S an A644 to 3 A168's. Each 168 independently reads from the same bank of robotics sensors, and sends a local classification of the objective to the A644. The A644's job is to decide which input is more like its own, save all 4 to an SD card and send out the command to the 3 A168s to complete whatever task was decided. I am picturing robotic motion applications galore! |
Please log in to post a reply.
Did you know that you can use a transistor to interface between different voltage levels of digital logic? Learn more...
|