Azul Systems Vega 3: 54 Cups of Coffee
Azul Systems was started in 2002 to do what anyone who has used Java wishes it to be, make it faster, and more scalable. Azul did this using both software (optimized Java compilers/Run time environments) and hardware. The Vega processor line was Azul’s attempt at a hardware acceleration of Java. This wasn’t a new concept, many companies have created hardware implementations to execute Java. Notable is the Jazelle extentions from ARM, which can directly execute Java byte-codes and Sun developed the pico.Java processor to do similar. The Vega takes a rather different route though. Azul found that direct execution of Java byte codes wasn’t really that important if you had very efficient JIT (Just In Time) compilation to an efficient architecture. This allows the processor to be a bit more adaptable as you now have a layer between the hard to change hardware, and the Java feeding it. New instructions, or work arounds/speed up become easier to implement.
The Vega 3, the last of the Vega series is a 54-core processor, each core is a classic 3-address 64-bit RISC processor with 32 registers and 16K of Instruction cache + 16K of Data cache. The architecture is designed to be ‘Java friendly’ with fairly weak memory model for easier scaling, support for more robust garbage collection, and not a large focus on FPU performance. There is 12MB of L2 cache on chip as well (each 9-cores share 2M). The chips are fab’d by TSMC on a 65nm or 90nm process (it isn’t clear which from Azul’s documentation). All registers and caches support ECC, and the chips themselves self-report any problems, allowing the system (which may use up to 16 chips (864 cores) to disable any misbehaving processor or memory).
The Vega 3, and the systems it was used in, allowed Java to be scaled to much larger heap sizes (500G+) and core counts, without coherency problems. Many institutions (especially financial) still use Java programs that were written long ago, recoding them would speed them up, but that is not practical. The Vega3 (and other Azul products) allow old code, to be ran faster with no modifications.
Azul sold many systems running the Vega processors but eventually moved to software only solutions, that could efficiently run Java on existing x86 hardware. The methods though are similar, just no longer the need for custom hardware to run it on. Azul appliances can be added to any datacenter to catch and accelerate Java applications.
Azul wasn’t the first company to accelerate Java, and they certainly won’t be the last. Java’s simplicity and platform independence will keep it around, and the ability to run decades old code fast and safely on modern hardware will continue to drive products. Its like COBOL all over again…