Dual core processors-further querys

Hi all, I am posting this in continuation to discussion about dual core processors in the following link:

formatting link

Since I did not get any replies on my last posting regarding this discussion,I am reposting it here.Take the below query as continuation of discussion held in the thread link mentioned above.

Thanks for all your inputs and a healthier discussion.I am collating all I understood from this discussion:

1)Real advantage of dual core processors are parallel processing 2)Its not fully in use into embedded system as compared to desktop pcs. 3)The main capability for an OS to run in a multicore system is to enable parallel processing.Mainly to schedule threads(or tasks in my vxworks world I use here) parallely. 4)Main problem in such a parallel processing OS is in taking overhead in handling synchronisation and communication objects between 2 cores.

I believe I have understood it correctly.While I can understand the above things,out of curiosity I have the doubt:

I have a belief that satellite imaging systems are real time and the moment you sense an object you develop an image in real time.This definitely will be huge data may be running in GBs!How has embedded world handled such an application without dual cores?Can dual cores be used in such situation and would I get benefits from this? Correct me If am wrong,some how I have a feeling that co processors are similar to dual cores.If thats correct,there are many embedded applications using math co processor which case I can conclude dual cores are not something new for embedded world.

Looking farward for further inputs and advanced thanks to you all,

Regards, s.subbarayan

Reply to
ssubbarayan
Loading thread data ...

formatting link

Hi Subbarayan

I would prefer to use the term "multiprocesing" here. Parallel processing are often refer to processing of data in parallel which have similar or identical operations. E.g. digital signal processing tasks like FFT (Fast Fourier Transform).

Please visit the following web sites for more details

formatting link
formatting link
formatting link

Incorrect, many embedded systems have multiple cores on one chip.

There are many different type of multiple core configurations, for example:

- the system can be identical cores running embedded OS that support SMP (Symmetric Multi Processing). Not all embedded OS support SMP.

- they could be identical cores, but running different applications. (E.g.

formatting link

- they can be completely different cores, running different applications

Many mobile phones have multiple cpu core in one chip. E.g. One for applications and another for baseband processing. If extra wireless features are integrated into the same chip, there could be one extra for bluetooth and one more for WiFi. However, for most low cost embedded system, use of dual cores is rare because of development cost and complexity.

It depends on which embedded OS you are using. For OS like WinCE, Symbian, Linux, they do a lot more than just task scheduling. (Network support, file system, user interface, etc).

Beside from task synchronisation, data sharing and communications, there are many many problems, for example

- cache coherence

- Resource sharing (memory bus bandwidth, access to storage devices, etc)

- support of multiple CPU in debuggers

Why it has to be in real time? It is possible that a image sensor capture multiple sections of a complete image, and when each section is done the data is transfered to main memory using DMA (Direct Memory Access). After all data is transferred, the data processing can begin afterward.

Some of the image processing could be done in hardware level, or using a number of DSP to processing the data. Also, you could handle smaller pictures separately and joint them up together using non-real time computing.

The use of dual core or multiple core might be able to shorten the total processing time, provided that the application code can split the required operations into separate threads so that they can be processed in parallel.

That might depends on CPU architecture, but in most cases coprocessors are very different from dual core. Coprocessor instructions are usually put inside the program code for the main processor. When the main processor see a instructions that is for coprocessor, it pass the intruction to co-processor to run the instruction. So co-processor doesn't run program all the time, while in dual core system, both processors execute separate programs at the same time.

Joseph

Reply to
Joseph

Thank you joseph for a very clear explaination.

Reply to
ssubbarayan

Hello,

Looking at the posts i want to ask a question. TI DM642: Is it a dua processor system or a processor-co-processor system or a different system In the DM642 there is one processor where in there are 8 functional units The first 4 form the first *side* (A side) and the other four form the side. They share the same L1 and L2 cache. But they have differen computation units. The user can specify which side and unit his cod should run, else the compiler does it for the user.

Could you explain?

APS

Reply to
salaria

I don't know enough about this processor, but it looks like it is a single processor system. The functional units can be called co-processor, but it might not be exactly right because they don't decode instructions themself. So it is hard to determine if they can be called a co-processor.

They are not dual/multi-processor system because these functional units cannot operate alone without the main processors.

Joseph

Reply to
Joseph

This is really just another of the TMS340C6xxx family parts. They are based on a VLIW format where each of the 8 processing units receive a

32 bit instruction in parallel (at least if everything is working correctly and the memory bandwidth keeps up). I don't recall the specifics of how they direct instructions to the processing units, but I expect this is encoded within the instruction. As you point out, the units all work within a single framework with a single instruction fetch unit. I believe the the register file is dual with some minimal means of crossing data over between the two sides.

The main point is that this is really just a single CPU with 8 processing units, not unlike an Intel x86 with many processing units. But the scheduling is done by the compiler, not the chip itself like is done in the x86.

Reply to
rickman

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.