









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
XMOS Software Developement Tools Softwares Application Hardwares Bloatware Memory per user component Data Flow copying
Typology: Slides
1 / 16
This page cannot be seen from the preview
Don't miss anything!










Principal Technologist, XMOS
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
XMOS
Challenge:
We do not sell software, but half the company staff are designing software of one sort or another...
Henk MullerASD lecture, November 24, 2010 (^2)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Tools for internal use
We need a tool chain to build the processor and the tools
Henk MullerASD lecture, November 24, 2010 (^4)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Tools for customers
The processor needs a tool chain for software development
Additional tools required for
Henk MullerASD lecture, November 24, 2010 (^5)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Languages - Tools
We use XC, C, C++, Java, Perl, Python, XC, Assembly code, (and Verilog)
C, C++, Java are used to build all customer facing tools
Perl and Python are used internally for scripting
Henk MullerASD lecture, November 24, 2010 (^7)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Languages - Applications
XC is used to implement most programs that run on our Hardware
Assembly code
Compilers need many man years of investment before they can generate mature code
Henk MullerASD lecture, November 24, 2010 (^8)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
XMOS software How does one program a device like this?
Current software memory requirements:
Henk MullerASD lecture, November 24, 2010 (^10)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Bloat ware
Current systems are build to bloat:
Lets elaborate on the HashSet - and show efficiency, limitations, and sharing.
Henk MullerASD lecture, November 24, 2010 (^11)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Memory use per component
Design each component to manage its own memory
Now make sure that all components fit together statically
Henk MullerASD lecture, November 24, 2010 (^13)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Data flow: pass data around
When component 1 is done with the data, pass it on to component 2.
Buffers have a place in data flow management:
Henk MullerASD lecture, November 24, 2010 (^14)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU
Conclusions
Memory is a scarce resource
Could give the same talk about power-aware software:
Interestingly: Low memory designs are usually more efficient
Designing software is hard.
Henk MullerASD lecture, November 24, 2010 (^16)
FRUSRUDWHEUDQGHOHPHQWV SULPDU\ORJRW\SHYHUVLRQV )RU FRORXU UHSURGXFWLRQ WKH ORJRW\SH VKRXOG EH FUHDWHG XVLQJ WKHFRUSRUDWHFRORXUSDOHWWH 7KH;VKRXOGDOZD\VEHSDQWRQH RU