External memory interface for xcores ?

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
User avatar
shawn
XCore Addict
Posts: 238
Joined: Thu Dec 17, 2009 5:15 am

Post by shawn »

Looks like an Linux solutions for the XCore, using it's IP to push Unix around.
ARM has sold more core than Pentium. ARM's the Darleen of the embedded
industry, It is low power and wide open. It would make a very nice front end
for the XCore to like, handle external periphrea. Phones are not the end all for
LP platform. In the future will wear our IP and use it to better enable, enpower
and secure ourselfs. Looks like the XMOS complements or is complemented
By a variaty of exellent chips. Though I think when the XCore platform fully matures,
Most XCore users shall, will look at all Unixes as a legacy issue.

PS I have been checking, it seems a lot of programmers desire more ram.
We most all have been writing Von Neumann programs. Because CSP channels
it data you really could easily have multiple spi channel rams, maintaining tighter
power constants and therefore affording more computational power per bit. Big
programs could more easily be sliced and served with out wasting vital ram resource.


User avatar
wibauxl
Active Member
Posts: 35
Joined: Mon Dec 14, 2009 4:40 pm

Post by wibauxl »

Folknology wrote:One of the most common applications that require the extra ram is the use of a graphics display. ... This is a common requirement and examples of small displays are range from 160 * 120 through 320 * 240 QVGA up to 480*272 and even higher.
I think XMOS is about changing the way we think about implementing things. You need external RAM for the screen because calculating the screen content takes time and using RAM as a buffer gives you less flicker.

If you increase massively the processing power of the chip (as in XMOS) you can calculate vector graphics on the fly and use a sort of line scanner to calculate your image.

Code: Select all

par {
	objectMover(objectsCh);
	scanLine(lineCh[0], 0, NB_SCAN_LINES);
	scanLine(lineCh[1], 1, NB_SCAN_LINES);
	scanLine(lineCh[2], 2, NB_SCAN_LINES);
	scanLine(lineCh[3], 3, NB_SCAN_LINES);
	imageCreator(objectsCh, lineCh, NB_SCAN_LINES, dataCh);
	lcdDriver(dataCh);
}
Each line has NB_RAYTRACER_LINES lcd clock cycles to calculate one pixel. A 480x272xRGB screen needs a 4Mhz clock to display flicker free images (24/sec). 4 line scanners leave 1000 cpu cycle per pixel calculation.

see http://www.xcore.com/projects/xvs-xcore-viewing-system for a real example.
Post Reply