Codeplay
Encyclopedia
Codeplay Software Limited is a compiler and software tools developer based in Edinburgh
Edinburgh
Edinburgh is the capital city of Scotland, the second largest city in Scotland, and the eighth most populous in the United Kingdom. The City of Edinburgh Council governs one of Scotland's 32 local government council areas. The council area includes urban Edinburgh and a rural area...

, Scotland
Scotland
Scotland is a country that is part of the United Kingdom. Occupying the northern third of the island of Great Britain, it shares a border with England to the south and is bounded by the North Sea to the east, the Atlantic Ocean to the north and west, and the North Channel and Irish Sea to the...

. Codeplay develop C/C++ compilers for multi-core and special purpose processor architectures, offering their Sieve C++ Multicore Programming System
Sieve C++ Parallel Programming System
The Sieve C++ Parallel Programming System is a C++ compiler and parallel runtime designed and released by Codeplay that aims to simplify the parallelization of code so that it may run efficiently on multi-processor or multi-core systems...

 as a means to easily write C/C++ code for acceleration on multicore chips
Multi-core (computing)
A multi-core processor is a single computing component with two or more independent actual processors , which are the units that read and execute program instructions...

. They also build bespoke C/C++ compilers for customers, using their VectorC Retargetable Compiler Engine.

Codeplay is a contributing member of the Multicore Association
Multicore Association
The Multicore Association, founded in 2005, is a member-funded, non-profit, industry consortium focused on the creation of open standard APIs, specifications, and guidelines that will allow system developers and programmers to adopt multicore technology into their applications more readily .The...

 and the Khronos Group
Khronos Group
The Khronos Group is a not-for-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free APIs to enable the authoring and accelerated playback of dynamic media on a wide variety of platforms and devices...

.

History

Codeplay was set up in 2002 by Andrew Richards, an experienced games developer (formerly head of Software Development at Eutechnyx
Eutechnyx
Eutechnyx is a computer and video games developer, founded in 1987 as Zeppelin Games and also briefly known as Merit Studios Europe. They are based in Dunston, Gateshead in the United Kingdom...

) who believed there was a need for development tools that could keep up with advances in processor technology. Initial funding for the company was provided by Jez San OBE
Jez San
Jeremy 'Jez' San OBE is an English game programmer and entrepreneur who founded Argonaut Software as a teenager in the 1980s. He is also a writer and helped design the Super FX chip for the Super NES.-Biography:...

, founder of Argonaut Games
Argonaut Games
Argonaut Games plc was a British video game developer. Founded as Argonaut Software by teenager Jez San in 1982 the company name is a play on his name and the movie title Jason and the Argonauts. It had its head offices in Edgware, London....

 and ARC International
ARC International
ARC International plc was a developer of configurable microprocessor technology and is now owned by Synopsys. ARC developed synthesisable IP and licensed it to semiconductor companies....

. Jez San is also currently the majority shareholder. Codeplay began its business developing compilers aimed at games programmers, releasing its VectorC compiler for PlayStation 2
PlayStation 2
The PlayStation 2 is a sixth-generation video game console manufactured by Sony as part of the PlayStation series. Its development was announced in March 1999 and it was first released on March 4, 2000, in Japan...

 and x86 Windows PC in 2001. In 2005 Codeplay shifted focus to developing bespoke C/C++ compilers for processor designers.

Codeplay have also conducted extensive research and development into building tools in aiding multicore software development.

Products

Codeplay's current product lineup is focused on providing bespoke C/C++ compilers and tools to processor designers. Codeplay's core technologies include:

Sieve C++ Multicore Programming System

The Sieve C++ Multicore Programming System is a tool set that allow programmers to quickly and easily adapt existing C and C++ software, or write new software, to take advantage of new multi-core processor architectures.

VectorC

VectorC is a Retargetable C/C++ compiler engine used to create C and C++ compilers for custom-built processor architectures.http://www.codeplay.com/technology/vectorc.html Codeplay describes VectorC as being optimized for SIMD
SIMD
Single instruction, multiple data , is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously...

 processors, DSP
Digital signal processor
A digital signal processor is a specialized microprocessor with an architecture optimized for the fast operational needs of digital signal processing.-Typical characteristics:...

's, vector units and multi core processors.

VectorC, as its name suggests, was designed from the outset to exploit vectorization. It can automatically take advantage of advanced CPU 'vector' units via SIMD instruction such as MMX, SSE/SSE2
Streaming SIMD Extensions
In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! . SSE contains 70 new instructions, most of which work on single precision floating point...

, 3D Now and Altivec
AltiVec
AltiVec is a floating point and integer SIMD instruction set designed and owned by Apple, IBM and Freescale Semiconductor, formerly the Semiconductor Products Sector of Motorola, , and implemented on versions of the PowerPC including Motorola's G4, IBM's G5 and POWER6 processors, and P.A. Semi's...

. VectorC is based around a common optimization core so that all appropriate existing optimizations can be used on the new target architecture it is being customized for. The Optimizer can query the back-end to see what optimizations are possible or suitable on the target.

VectorC also supports C++ to C compilation through a ANSI C
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.-History and outlook:The first...

 compliant back-end. This enables the compilation of C++ code, with or without additional language extensions, to any architecture where a C compiler already exists. This feature is used in Codeplay's Sieve C++ Parallel Programming System
Sieve C++ Parallel Programming System
The Sieve C++ Parallel Programming System is a C++ compiler and parallel runtime designed and released by Codeplay that aims to simplify the parallelization of code so that it may run efficiently on multi-processor or multi-core systems...

 to generate parallelized code that can be ported to any multicore architecture with a native C compiler.

Codeplay state that VectorC performs all the standard non-vector optimizations expected from high-performance compilers.

The VectorC engine has been designed to cope with multiple memory spaces, distributed latencies and an optimize data-movement using double-buffered streaming DMA
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....

when required, in addition to standard write combining and prefetching functions. There is support for Software pipelining, automatically parallelizing loops on pipelined architectures.

VectorC has extensive support for portable intrinsic functions, letting users write complex vector operations as built in functions. These are converted into the best combination of instructions on each architecture that the source code is compiled for.

Codeplay continues to offer VectorC based custom compilers to clients. VectorC is also described by Codeplay as being the basis of Sieve C++ Multicore Programming System.

Retargetable Shader Compiler

Based on VectorC technology, the Retargetable Shader Compiler offers customized high performance shader language compilers for use in programmable GPU's and embedded devices.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK