Engineering:XCORE-200
An XMOS xCORE200 processor, 48 QFN package, 6x6 mm. | |
General Info | |
---|---|
Launched | March 2015 |
Common manufacturer(s) |
|
Max. CPU clock rate | to 500 MHz |
Architecture and classification | |
Instruction set | XCore XS2 Architecture |
Physical specifications | |
Cores |
|
Package(s) | |
History |
The xCORE200[1] is a 32-bit processor designed by XMOS, featuring support for two tiles with up to 8 concurrent threads each. It was launched in March 2015,[2] and available as of June 2015 running at 500 MHz. Each thread can run at up to 100 MHz, and threads may be able to execute 2 instructions in a clock cycle. Five threads follow each other through the pipeline, resulting in a top speed of 2000 MIPS (if all instructions dual issue), and a speed of at least 1000 MIPS (if all instructions are single issue). The issue slots for each tile are equally distributed over all active threads on that tile. This allows the use of extra threads in order to hide latency. The XCORE-200 processor is used for, amongst others, voice interfaces[3] and audio connectivity.[4]
Description
An xCORE200 node comprises two physical cores and a switch. The execution core has a data path, a memory, and register banks for eight threads.[5] The switches of two or more xCORE200 nodes can be connected using links, whereupon threads on all of the cores can communicate with each other by exchanging messages through the switches. The switching mechanism is abstracted by means of a channel, a virtual connection between two threads. The switch has eight external links, permitting a maximum throughput of 3.2 GBits/s to other cores.
An XCORE200 node also has a USB PHY and an RGMII interface.[2] The former enables a direct connection with a USB connector, the latter enables a connection to a gigabit Ethernet PHY.
xCORE200 devices with up to 16 threads comprise a single xCORE200 node; xCORE200 devices with 24 or 32 threads comprises two xCORE200 nodes connected by means of four links.[1][6] The multithreaded nature of the XCORE200 enables programs to run deterministically,[7] enabling it to emulate functions that would otherwise be implemented in hardware.
Instruction set architecture
xCORE200 processors implement the XS2 architecture. Each thread has access to 12 general purpose registers, and a standard 3-operand instruction set is used for programming the thread.[8] The instruction set is encoded densely, encoding most instructions in 16 bits, where 11 bits are used for specifying 3 operands, and 5 bits are used to encode the opcode. Less frequently used instructions are encoded in 32 bits. The instruction set is a load-store instruction set. All instructions execute in a single cycle. If an instruction does not need data from memory (for example, arithmetic operations), the instruction will prefetch a word of instructions. This acts like a very small instruction cache, but its behaviour can be predicted at compile time, making timing behaviour as predictable as functional behaviour.
The XS2 is an event driven processor which enables the processor to stop a thread and restart it when an event is ready. In addition, a thread may be interrupted in order to deal with some external events.
References
- ↑ 1.0 1.1 "XE216-1024-TQ128 Datasheet". Xmos Ltd.. 2018-03-23. https://www.xmos.com/published/xe216-512-tq128-datasheet?version=latest. Retrieved 2016-12-21.
- ↑ 2.0 2.1 Quinnell, Rich (2015-03-23). "Multicore MCU Brings Gigabit Ethernet to IoT3". AspenCore. http://www.eetimes.com/document.asp?doc_id=132611. Retrieved 2017-06-14.
- ↑ Happich, Julien (2016-03-17). "Microphone array aggregator integrates control and DSP functions". European Business Press SA. http://www.eenewsanalog.com/news/microphone-array-aggregator-integrates-control-and-dsp-functions. Retrieved 2017-06-14.
- ↑ Manners, David (2015-03-23). "XMOS shipping hi-res audio". Electronics Weekly. https://www.electronicsweekly.com/news/products/analog/xmos-shipping-hi-res-audio-2015-03/. Retrieved 2017-06-14.
- ↑ Wong, Bill. "A Hands-On Tour of xCORE-200". Electronic Design. http://www.electronicdesign.com/dev-tools/hands-tour-xcore-200. Retrieved 2017-06-14.
- ↑ "XE232-1024-FB374 Datasheet". Xmos Ltd.. 2018-03-23. https://www.xmos.com/published/xe232-1024-fb374-datasheet?version=latest. Retrieved 2016-12-21.
- ↑ Turley, Jim (2015-04-01). "XMOS xCore-200 Wants to Replace Peripherals: Deterministic Processor an Alternative to Typical Code Drivers". techfocus media, inc.. http://www.eejournal.com/article/20150401-xmos/. Retrieved 2017-06-14.
- ↑ "xCORE-200: The XMOS XS2 Architecture". Xmos Ltd.. 2015-04-01. https://www.xmos.com/published/xs2-isa-specification. Retrieved 2016-12-21.
External links