Your SlideShare is downloading. ×
Introduction to XMOS Software Defined Silicon Technology
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introduction to XMOS Software Defined Silicon Technology

1,401
views

Published on

Presentation on the Software Defined Silicon Technology by XMOS, presented at the TinkerSoc OpenMic Session #3, 07/12/2009

Presentation on the Software Defined Silicon Technology by XMOS, presented at the TinkerSoc OpenMic Session #3, 07/12/2009

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,401
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • XMOS was founded in July 2005 by Ali Dixon (then final-year student at the University of Bristol), James Foster (former CEO of Oxford Semiconductor), Noel Hurley (formerly at ARM Holdings), David May (former chief architect of Inmos), and Hitesh Mehta (Acacia Capital Partners). It received seed funding from the University of Bristol enterprise fund, and Wyvern seed fund (formerly the SulisSeedcorn fund).
  • The XMOS architecture combines a number of processing cores (called XCores) each with its own memory and I/O system, on a single chip. The processing cores are general-purpose in the sense that they can execute languages such as C; they also have direct support for concurrent processing (multi-threading), communication and I/O. A high-performance switch supports communication between the processors, and inter-chip Links are provided so that systems can easily be constructed from multiple chips. Any thread can communicate with any other thread in the system using single-cycle communication instructions. The system switches can efficiently route short packets or streamed data. The XMOS architecture makes it practical to use software to perform many functions that traditionally have been implemented in hardware, for example interfaces and I/O controllers. Both input and output operations can be timed to a local clock or an externally provided clock. The architecture is both multi-threaded and event-driven. Threads can be used to define independent tasks; the event mechanism enables fast and controlled responses to a multitude of signals. The architecture is designed to support any programming language, such as C and C++. The full benefits of the instruction set may require extensions to standard languages, libraries, or the use of assembly language. We have designed XC, a version of C that supports I/O, multi-core and precision timing.
  • An XCore processor runs multiple real-time threads simultaneously. Each thread has access to a set of general purpose registers, gets a guaranteed share of the processing power, and executes a program using common RISC-style instructions. Each thread can execute simple computational code, DSP code, control software (taking logic decisions, or executing a state machine) or handle I/O operations.
  • Processors and fast I/O haven’t mixed well
  • Transcript

    • 1. Introduction to XMOS‘Software Defined Silicon’Technology
      Omer Kilic | omer@tinkersoc.org
    • 2. Disclosure/Disclaimer
      I am the University Rep for XMOS but I am not employed by them.
      I have been playing with the architecture for a while now but I am not an expert.
      If I sound fuzzy have a look at the official documentation for clarification!
      This is not a marketing talk 
    • 3. Agenda
      XMOS?
      Software Defined Silicon Architecture
      Programming Flow
      Kits/Silicon Devices Available
      ‘XMOSLinkers’
      Web Links
    • 4. XMOS?
      Fabless Semiconductor Company
      Founded in 2005, based in Bristol
      Academic Roots
      Remember the Transputers?
      Some concepts based on the Transputer architecture
    • 5. Software Defined Silicon
      A number of multi threaded, general purpose cores with individual I/O and memory systems
      Highly flexible ‘XLink’ interconnect between threads, cores & chips
      Event driven execution
      Pretty clever I/O Ports
      “Custom hardware from a software design flow”
    • 6. XCore
      • Multi-threaded architecture
      • 7. 8 threads per core
      • 8. Up to 400 MIPS
      • 9. Event driven processing
      • 10. Mixed 16/32bit Instruction Set
      • 11. Up to 64 I/O ports per core
      • 12. Mix of 32,16,8,4,1 bit ports
      • 13. Integrated memory
      • 14. 64K Bytes SRAM per tile
      • 15. 8K Bytes OTP per tile
      • 16. XLinks for connectivity
    • XLink
      • Deterministic communications switch fabric
      • 17. Connects threads, cores & chips
      • 18. Thread communication abstracted to software
      • 19. Automatically synchronises threads
    • I/O Features
    • 20. Event Driven?
      Comparing Interrupts/Events:
      Event Sources: Pins & Ports, Timers & Synchronisers, XLinks
    • 21. Programming Flow
      • Standard ‘embedded’ software flow
      • 22. Cross platform development environment based on Eclipse
      • 23. Debugger/Simulator available
      • 24. Open Source!
      https://www.xmos.com/technology/design-tools-source
    • 25. ‘XC’ Language
      Simplifies concurrency and real-time control tasks
      Support for:
      I/O with timing
      Communication
      Events
      Multiple threads
      Does not support floating point arithmetic and pointers.
    • 26. ‘XC’ Language : An example
      #include <platform.h>
      onstdcore [0] : out port tx = XS1_PORT_1A ;
      onstdcore [0] : in port rx = XS1_PORT_1B ;
      onstdcore [1] : out port lcdData = XS1_PORT_32A ;
      onstdcore [2] : in port keys = XS1_PORT_8B ;
      intmain (void) {
      par {
      onstdcore [0] : uartTX (tx);
      onstdcore [0] : uartRX (rx);
      onstdcore [1] : lcdDrive (lcdData);
      onstdcore [2] : kbListen (keys);
      }
      }
      From: http://en.wikipedia.org/wiki/XC_Programming_Language
    • 27. Silicon Devices
    • 28. Kits
      Official kits: http://www.xmos.com/technology/development-kits
      Comparison of available dev kits: http://zuzebox.wordpress.com/2009/11/13/xmos-development-board-comparison/
    • 29. http://www.xmoslinkers.org
      The official XMOS community
      Repository of open-source designs
      Discussion Forum
      Blogs, Classifieds, etc.
    • 30. Web Links
      http://www.xmos.com/technology
      http://www.xmos.com/applications
      http://www.xmos.com/support/documentation
      http://www.xmos.com/kbase/
      http://www.xmoslinkers.org/
      http://www.xmoslinkers.org/conference-online-wf
      http://www.xmoslinkers.org/forum/
      http://www.xmoslinkers.org/projlist/
    • 31. Thanks for listening!Any questions?
      Further questions/comments to omer@tinkersoc.org please.