You might not think that high frequency trading for the financial services industry and 360-degree panoramic movies have a lot in common, but they're both applications where speed matters and there are no prizes for coming second. Argon Design has developed systems delivering industry-leading performance in both of these sectors, and in both cases the technique we have used is hardware acceleration.
Wikipedia defines hardware acceleration as "the use of computer hardware to perform some functions more efficiently than is possible in software running on a more general-purpose CPU". A general purpose processor pays for its flexibility in limited performance – a piece of dedicated hardware can perform specific tasks much faster. Of course, you don’t get something for nothing – superfast hardware can perform its intended task more quickly, but it’s a one trick pony. Most systems will therefore use a combination of hardware and software to deliver the required functionality.
A critical element when defining a system architecture is the hardware/software split – deciding which features will be implemented in hardware and which in software. Decisions here will certainly influence performance, but there are knock-on effects in many areas:
It’s important to get the priorities right, and this requires a thorough understanding of the technical and commercial landscape. The technical understanding needs to be open-minded and multi-disciplinary. Maslow stated "if all you have is a hammer, everything looks like a nail", so a developer specialising in software will naturally tend towards a software approach. The Argon team is intentionally multidisciplinary, both as a team and in its individuals – we can understand the underlying mathematics of the problem and then determine the optimum approach to implement the solution.
Argon Design’s track record encompasses chip design at one extreme, through FPGA and board level design up to software applications for mobile devices and the Cloud.