CPU Basics

Understanding CPU’s

1. What is a CPU

The CPU is made of of several main components that allow it to execute processes.

1a. Arithmetic Logic Unit (ALU), this handles arthmetic and logic.

1b. Control Unit (CU), takes instruction from memory, decodes it then uses ALU to execute it

1c. Registers to hold data for processing

1d. L1,L2,L3 Caching These are various memory area to hold CPU data

– L1 being the fastest, but smallest area

– L2 slighly slower than L1 but larger area

– L3 slightly slower that L2 but larger area

2. What is a multi core CPU

This is called an intergrated circuit or a die that contains more than one CPU, now the CPU’s may share some components such as L1/2/3 cache.

3. What is a Thread

Some CPU’s can handle more than one ‘thread’ of processing or execution, typically this is 2 per CPU core. These are also referred to as ‘Virtual Cores’, The Threads will appear as an extra CPU but internally its just another thread of execution on the same CPU which will run mutltiple threads at once if enabled using shared componets such as L1,L2,L3 caches to store results when switching between threads. Threading can also be referred to as hyper-threading. Irrespective of if Threading is enabled, we assume thread could of 1 for non-threading and 2 for threading enabled.

4. What is a logical CPU

The logical CPU count refers to the number of threads the CPU can run, so if hyper threading is enabled normally the thread count will be 2 threads per CPU, otherwise it will be 1 thread per CPU.

5. What is a virtual CPU

Is used for CPU’s used by virtual machines (VM’s), normally one 1 logical CPU = 1 virtual CPU

6. What is a Socket

The CPU connects to the motherboard via a ‘Socket’, motherboards have a fixed number of sockets to slot CPU into, typically for a home computer it would be a single Socket motherbaord so only one multicore CPU.

Example CPU.

In the example above we have:

– Single Intergrated Circuit comprised of multiple CPU cores

– There are 4 Cores

– There are 2 Threads per core

– There are 4 Cores x 2 Threads = 8 logical Cores.

Oracle Licensing using CPU core model (Named User also exists)

Click to access processor-core-factor-table-070634.pdf

Looking at this PDF we can see the costing factor per core depending per architecture used.

Lets check the Oracle list price as well

Click to access technology-price-list-070617.pdf

Lets assume a fictional example we have just purchased a new server, with 2 Intel Xeon CPU’s that have 4 cores each, with threading enabled of 2 threads per CPU.

so we have:

– 2 Intergrated Circuits using 2 Sockets

– Each Intergrated Ciruit houses 1 mutli core CPU

– There are 4 Cores per CPU

So we have 2 CPU’s with 4 Cores each = 8 CPU cores

as we have threading enabled we have 8 CPU x 2 Threads = 16 logical CPU’s

Oracle database licensing based on above does not charge for threading , only cores so the threads have no bearing on the cost.

Oracle database licensing based on above does not charge for sockets so this has no bearig on the cost.

So we have to pay for the use of 8 cores of an Intel Xeon processor, checking the core factor pdf above we see these are costed at factor of 0.5.

We now know we will need to purchase 0.5 cost factor x 8 cores = 4 Licenses

Going back to the price list if we wanted to buy Oracle Enterprise Edition with no extra options that is costed at the time as in US dollars as $47,500, with a Support Cost afterwhich of $10,450

so we would need to purchase 4 licenese of $47500 = $190,000 which usually has first year support included.

There after we would need to pay annual fee of 4 licenses of support fee of $10,450 per annum = $41,800

Bear in mind, that customers will usually have an Oracle account manager who may offer discounts on this model of licensing.