Each XMOS device has a set of resources detailed in the following table. The resources are split amongst different cores on the device which may affect how resources can be used:
Device | Threads | MIPS | Memory (KB) | Ports |
---|---|---|---|---|
XS1-G4-512BGA | 32 | 1600 | 256 | 64 x 1bit
16 x 4bit
8 x 16bit
4 x 32bit
|
XS1-L2-124QFN-C5 | 16 | 500 | 128 | 16 x 1bit
6 x 4bit
4 x 8bit
2 x 16bit
|
XS1-L2-124QFN-C4 | 16 | 400 | 128 | 16 x 1bit
6 x 4bit
4 x 8bit
2 x 16bit
|
Note
Note that some ports overlap on the device so, for example, using a 32 bit port makes some 1 bit ports unavailable. See the device datasheets for details.
The following sections detail the resource required for each component. Please note that the memory requirements for code size should be taken as a rough guide since exact memory usage depends on the integration of components (which components are on which core etc.) in the final build of the application.
Each endpoint requires a driver for the ethernet PHY.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
Ethernet | 5 | 50 | 15 code
1.5 per buffer
|
6 x 1bit
2 x 4bit
|
Every AVB endpoint must include a PTP component.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
PTP | 1 | 50 | 7 | None |
Every AVB endpoint must include a media clock server.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
Media Clock Server | 1 | 50 | 1 | None |
If the endpoint drives an external PLL, a PLL driver component is required.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
PLL driver | 1 | 50 | 0.5 | 1 x 1bit
+ ports to configure PLL
|
Each endpoint may have several listener and talker components. Each listener/talker component is capable of handling eight IEEE P1722 streams and up to 24 channels of audio.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
1722 listener unit | 1 | 50 | 5 | None |
1722 talker unit | 1 | 50 | 5 | None |
The amount of resource required for audio processing depends on the interface and the number of audio channels required. The overheads for the interface are:
Component | Threads | MIPS/Thread | Memory(KB) | Ports |
---|---|---|---|---|
I2S | 1 | 50 | 0.5 | 3 x 1bit
1 x 1bit per stereo channel
|
TDM | 1 | 50 | 0.5 | 3 x 1bit
1 x 1bit per 8 channels
|
The following table shows that number of channels an interface can handle per thread:
Component | Sample Rate (kHz) | Channels |
---|---|---|
I2S | 44.1/48 | 8 in and 8 out |
I2S | 88.2/96 | 4 in and 4 out |
TDM | 48 | 8 in and 8 out |
Note that several instances of the audio interface component can be made e.g. you could use 2 threads to handle 16 channels of I2S. The following table shows how much buffering memory is required depending on the number of audio channels.
Sample Rate (kHz) | Audio Channels | Memory (KB) |
---|---|---|
44.1 | n in/m out | 0.5 x (n+m) |
48 | n in/m out | 0.5 x (n+m) |
88.2 | n in/m out | 1 x (n+m) |
96 | n in/m out | 1 x (n+m) |
The uIP IP/UDP/TCP stack requires the following resource.
Component | Threads | MIPS/Thread | Memory (KB) | Ports |
---|---|---|---|---|
uIP server | 1 | 50 | 30 | None |
In addition to the other components there are application dependant threads that control other I/O. For general configuration and slow I/O a minimum of 1 thread (50 MIPS) should be reserved.