Software-in-Silicon Drives Oracle SPARC M7 Processors
Wikibon research “Why Software-in-Silicon is needed for Performance-constrained Workloads” shows that the current Intel x86 architecture has reached a limit on improving performance for performance-constrained workloads. The cycle time has maxed out at about 4 GHz, and Amdahl’s Law gives an upper limit of 16-32 cores to the application speedup that multiple cores can provide for performance-constrained applications. Wikibon concludes that for workloads that need to be optimized for performance, the processor and software need to be designed together, instead of designing the processor first and the software afterwards. The only way to improve performance is by speeding up parts of the operating system and middleware (especially database), using Software-in-Silicon.
This research looks at one example of this type of architecture, the Oracle SPARC M7 platform. Wikibon assesses its ability to run performance-constrained database workloads using Oracle Solaris and Oracle database. The potential result is better performance and better security.
Oracle M7 Processor Performance
Figure 1 is a diagram of the Oracle M7 processor. The cycle time for the processor is 4.13 GHz, with 32 cores and a maximum of 8 threads per core (256 threads in total).
The number of transistors on the M7 processor is over 10 billion. Instead of using the processor real estate to optimize for the number of cores, the space on the processor is shared between silicon-based acceleration units and cores. Each acceleration unit has 4 pipelines, which read data directly from memory, processes it, and places the results in the shared cache for onward processing by the cores.
To take a practical example, a piece of SQL code that is selecting data held in a Oracle 12c compressed hybrid-columnar format database can use accelerator units to decompress the data and process the SQL statement in less than 10% of the time it would take using processor cores.
A second usage of the accelerators is in processing end-to-end encryption within an Oracle database application. The encryption can use the accelerator units, and the normal significant performance loss from using encryption is reduced to less than 5%. This performance improvement is not possible to achieve with a silicon-only x86 architecture that focuses on increasing the number of cores within the processor.
M7 Processor: Security
Silicon Secured Memory
A unique feature of the M7 processor is termed “Silicon Secured Memory”. Every pointer to a memory location has additional bits that must match the additional bits of the contents the pointer is addressing. These bits are set at memory allocation. If there is a mismatch, the program is terminated. There are a large number of accidental and malicious malfunctions that can be detected and prevented with this technology, including buffer overruns, stale pointer accesses, mistakes in coding and many sophisticated malicious attacks.
This type of protection could be added at the operating system level in software. However, the overhead would be significant and decrease performance. It would also be more difficult to monitor and protect software solutions against accidental or malicious corruption that software-in-silicon.
Switching this feature on is not without consequence, as some code that has been deliberately or accidently written incorrectly will fail. In the long run, detecting and correcting the code will improve security and availability. Wikibon looks forward to interviewing early adopters of this technology to determine implementation best practice.
The built-in encryption has 15 different ciphers, which can be allocated to different applications running in the processor. This allows encryption of both data-in-motion between the database and the application, during live migration, and while data is at rest in any Oracle RAC copy or remote copy.
Again, this can be implemented in systems without software-in-silicon. However the performance overhead is significant, including the additional software licenses for the additional cores used.
Oracle Systems based on M7 Processor
The set of Oracle processors based on M7 Processors are shown in Table 1 below. The M7 processor has 32 cores, with 8 threads/core (256 threads). The cycle time is 4.13 GHz. The maximum memory is currently 0.5 Terabytes per processor. This will increase to 1 Terabyte with the availability of 64GB DIMMs.
The processor range goes from a 2U uni-processor T7-1 with 256 cores through to a rack-based 16-way M7-16 with 4,096 cores.
Wikibon concludes that the Intel x86 architecture has currently reached a performance limit in terms of cycle time and usable cores. Wikibon also concludes that for workloads that need to be optimized for performance, the processor and software need to be designed together using Software-in-Silicon to drive performance. Wikibon believes that the M7 processor technology is the start of a significant journey by Oracle to improve the performance and security of Oracle databases systems, and will be a key component of its development of True Private Clouds systems, and systems that support cloud service providers.
Wikibon expects that the development of the Oracle database and Oracle stack and the development of the SPARC processor will be strongly intertwined in the future, and that critical section of code will be moved to silicon. Examples of potential areas of improvement are locking processes, much faster IO for flash-only storage, and in-memory processing.
The biggest challenge for Oracle is developing Oracle software for both the X86 platform and the SPARC-based platform. The newly announced Exadata 6-2 uses the Intel 22-core Xeon E5-2600 V4 with 7.2 Billion Transistors. The newly announced Oracle SuperCluster M7 Extreme Flash appliance uses the SPARC M7 processor (and Intel processors for the storage controllers). Oracle will need to choose a primary platform for development of it Software-in-Silicon approach.
Wikibon recommends that Senior IT executives responsible for performance-constrained systems closely evaluate the Oracle SPARC M7 platform, particularly for applications using Oracle Database. With the cost of the average cost after discount for Oracle Enterprise licenses at over $30,000 per core, the database and application costs are the much higher than infrastructure costs such as processors. Wikibon recommends that the business benefits of improved performance, functionality and end-user productivity, as well as database cost optimization, should be included in any financial analysis.