The kernel is a program that constitutes the central core of a computer operating system. It has complete control over everything that occurs in the system.

A kernel can be contrasted with a shell (such as bashcsh or ksh in Unix-like operating systems), which is the outermost part of an operating system and a program that interacts with user commands. The kernel itself does not interact directly with the user, but rather interacts with the shell and other programs as well as with the hardware devices on the system, including the processor (also called the central processing unit or CPU), memory and disk drives.

The kernel is the first part of the operating system to load into memory during booting (i.e., system startup), and it remains there for the entire duration of the computer session because its services are required continuously. Thus it is important for it to be as small as possible while still providing all the essential services needed by the other parts of the operating system and by the various application programs.

Because of its critical nature, the kernel code is usually loaded into a protected area of memory, which prevents it from being overwritten by other, less frequently used parts of the operating system or by application programs. The kernel performs its tasks, such as executing processes and handling interrupts, in kernel space, whereas everything a user normally does, such as writing text in a text editor or running programs in a GUI (graphical user interface), is done in user space. This separation is made in order to prevent user data and kernel data from interfering with each other and thereby diminishing performance or causing the system to become unstable (and possibly crashing).

When a computer crashes, it actually means the kernel has crashed. If only a single program has crashed but the rest of the system remains in operation, then the kernel itself has not crashed. A crash is the situation in which a program, either a user application or a part of the operating system, stops performing its expected function(s) and responding to other parts of the system. The program might appear to the user to freeze. If such program is a critical to the operation of the kernel, the entire computer could stall or shut down.

The kernel provides basic services for all other parts of the operating system, typically including memory management, process management, file management and I/O (input/output) management (i.e., accessing the peripheral devices). These services are requested by other parts of the operating system or by application programs through a specified set of program interfaces referred to as system calls.

Process management, possibly the most obvious aspect of a kernel to the user, is the part of the kernel that ensures that each process obtains its turn to run on the processor and that the individual processes do not interfere with each other by writing to their areas of memory. A process, also referred to as a task, can be defined as an executing (i.e., running) instance of a program.

The contents of a kernel vary considerably according to the operating system, but they typically include (1) a scheduler, which determines how the various processes share the kernel’s processing time (including in what order), (2) a supervisor, which grants use of the computer to each process when it is scheduled, (3) an interrupt handler, which handles all requests from the various hardware devices (such as disk drives and the keyboard) that compete for the kernel’s services and (4) a memory manager, which allocates the system’s address spaces (i.e., locations in memory) among all users of the kernel’s services.

The kernel should not be confused with the BIOS (Basic Input/Output System). The BIOS is an independent program stored in a chip on the motherboard (the main circuit board of a computer) that is used during the booting process for such tasks as initializing the hardware and loading the kernel into memory. Whereas the BIOS always remains in the computer and is specific to its particular hardware, the kernel can be easily replaced or upgraded by changing or upgrading the operating system or, in the case of Linux, by adding a newer kernel or modifying an existing kernel.

Most kernels have been developed for a specific operating system, and there is usually only one version available for each operating system. For example, the Microsoft Windows 2000 kernel is the only kernel for Microsoft Windows 2000 and the Microsoft Windows 98 kernel is the only kernel for Microsoft Windows 98. Linux is far more flexible in that there are numerous versions of the Linux kernel, and each of these can be modified in innumerable ways by an informed user.

A few kernels have been designed with the goal of being suitable for use with any operating system. The best known of these is the Mach kernel, which was developed at Carnegie-Mellon University and is used in the Macintosh OS X operating system.

It is not necessary for a computer to have a kernel in order for it to be usable, the reason being that it is not necessary for it to have an operating system. That is, it is possible to load and run programs directly on bare metal machines (i.e., computers without any operating system installed), although this is usually not very practical.

In fact, the first generations of computers used bare metal operation. However, it was eventually realized that convenience and efficiency could be increased by retaining small utility programs, such as program loaders and debuggers, in memory between applications. These programs gradually evolved into operating system kernels.

The term kernel is frequently used in books and discussions about Linux, whereas it is used less often when discussing some other operating systems, such as the Microsoft Windows systems. The reasons are that the kernel is highly configurable in the case of Linux and users are encouraged to learn about and modify it and to download and install updated versions. With the Microsoft Windows operating systems, in contrast, there is relatively little point in discussing kernels because they cannot be modified or replaced.

Categories of Kernels

Kernels can be classified into four broad categories: monolithic kernelsmicrokernelshybrid kernels and exokernels. Each has its own advocates and detractors.

Monolithic kernels, which have traditionally been used by Unix-like operating systems, contain all the operating system core functions and the device drivers (small programs that allow the operating system to interact with hardware devices, such as disk drives, video cards and printers). Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the category of Unix-like operating systems, feature the ability to load modules at runtime, thereby allowing easy extension of the kernel’s capabilities as required, while helping to minimize the amount of code running in kernel space.

A microkernel usually provides only minimal services, such as defining memory address spaces, interprocess communication (IPC) and process management. All other functions, such as hardware management, are implemented as processes running independently of the kernel. Examples of microkernel operating systems are AIX, BeOS, Hurd, Mach, Mac OS X, MINIX and QNX.

Hybrid kernels are similar to microkernels, except that they include additional code in kernel space so that such code can run more swiftly than it would were it in user space. These kernels represent a compromise that was implemented by some developers before it was demonstrated that pure microkernels can provide high performance. Hybrid kernels should not be confused with monolithic kernels that can load modules after booting (such as Linux).

Most modern operating systems use hybrid kernels, including Microsoft Windows NT, 2000 and XP. DragonFly BSD, a recent fork (i.e., variant) of FreeBSD, is the first non-Mach based BSD operating system to employ a hybrid kernel architecture.

the source code for the Linux kernel version 2.4.0 is approximately 100MB and contains nearly 3.38 million lines, and that for version 2.6.0 is 212MB and contains 5.93 million lines. This adds to the complexity of maintaining the kernel, and it also makes it difficult for new generations of computer science students to study and comprehend the kernel. However, the advocates of monolithic kernels claim that in spite of their size such kernels are easier to design correctly, and thus they can be improved more quickly than can microkernel-based systems.

Moreover, the size of the compiled kernel is only a tiny fraction of that of the source code, for example roughly 1.1MB in the case of Linux version 2.4 on a typical Red Hat Linux 9 desktop installation. Contributing to the small size of the compiled Linux kernel is its ability to dynamically load modules at runtime, so that the basic kernel contains only those components that are necessary for the system to start itself and to load modules.

muLinux is a miniature, but nearly full-featured distribution (i.e., version) of Linux that can fit on a single floppy disk and can turn almost any personal computer into a temporary but powerful Linux machine in a matter of minutes. Although there are several other single-floppy Linux distributions, none can match muLinux’s extensive and unique combination of useful features.

muLinux operates entirely from its floppy disk and from the computer’s memory. There is nothing that needs to be installed on a hard disk drive (HDD), although muLinux can be installed if desired. muLinux can be used on any personal computer which has a floppy disk drive and an Intel-compatible (i.e., x86) processor

In computing, the kernel is a computer program that manages input/output requests from software and translates them into data processing instructions for the central processing unit and other electronic components of a computer. The kernel is a fundamental part of a modern computer’s operating system.[1]

When a computer program (in this case called a process) makes requests of the kernel, the request is called a system call. Various kernel designs differ in how they manage system calls (time-sharing) and resources. For example, amonolithic kernel executes all the operating system instructions in the same address space to improve the performance of the system. A microkernel runs most of the operating system’s background process in user space,[2] to make the operating system more modular and, therefore, easier to maintain.[3]

For computer programmers, the kernel’s interface is a low-level abstraction layer.

monolithic kernel is an operating system architecture where the entire operating system is working in kernel space and is alone in supervisor mode. The monolithic model differs from other operating system architectures (such as the microkernel architecture)[1][2] in that it alone defines a high-level virtual interface over computer hardware. A set of primitives or system calls implement all operating system services such as process management, concurrency, and memory management. Device drivers can be added to the kernel as modules.

Loadable modules[edit]

Modular operating systems such as OS-9 and most modern monolithic operating systems such as OpenVMSLinuxBSD, and UNIX variants such as SunOS, and AIX, in addition to MULTICS, can dynamically load (and unload) executable modules at runtime. This modularity of the operating system is at the binary (image) level and not at the architecture level. Modular monolithic operating systems are not to be confused with the architectural level of modularity inherent in Server-Client operating systems (and its derivatives sometimes marketed as hybrid kernel) which use microkernels and servers (not to be mistaken for modules or daemons). Practically speaking, dynamically loading modules is simply a more flexible way of handling the operating system image at runtime — as opposed to rebooting with a different operating system image. The modules allow easy extension of the operating systems’ capabilities as required.[3] Dynamically loadable modules incur a small overhead when compared to building the module into the operating system image. However, in some cases, loading modules dynamically (as-needed) helps to keep the amount of code running in kernel space to a minimum; for example, to minimize operating system footprint for embedded devices or with limited hardware resources. Namely, an unloaded module need not be stored in scarce random access memory.

Monolithic architecture examples[edit]


system on a chip or system on chip (SoC or SOC) is an integrated circuit (IC) that integrates all components of a computer or other electronic system into a single chip. It may contain digitalanalogmixed-signal, and often radio-frequency functions—all on a single chip substrate. A typical application is in the area of embedded systems.

The contrast with a microcontroller is one of degree. Microcontrollers typically have under 100 kB of RAM (often just a few kilobytes) and often really are single-chip-systems, whereas the term SoC is typically used for more powerful processors, capable of running software such as the desktop versions of Windows and Linux, which need external memory chips (flash, RAM) to be useful, and which are used with various external peripherals. In short, for larger systems, the term system on a chip is a hyperbole, indicating technical direction more than reality: increasing chip integration to reduce manufacturing costs and to enable smaller systems. Many interesting systems are too complex to fit on just one chip built with a process optimized for just one of the system’s tasks.

When it is not feasible to construct a SoC for a particular application, an alternative is a system in package (SiP) comprising a number of chips in a single package. In large volumes, SoC is believed to be more cost-effective than SiP since it increases the yield of the fabrication and because its packaging is simpler.[1

Microcontroller-based system on a chip

A typical SoC consists of:

These blocks are connected by either a proprietary or industry-standard bus such as the AMBA bus from ARM HoldingsDMA controllers route data directly between external interfaces and memory, bypassing the processor core and thereby increasing the data throughput of the SoC.

System-on-a-chip design flow

A SoC consists of both the hardware described above, and the software controlling the microcontrollermicroprocessor or DSP cores, peripherals and interfaces. The design flow for a SoC aims to develop this hardware and software in parallel.

Most SoCs are developed from pre-qualified hardware blocks for the hardware elements described above, together with the software drivers that control their operation. Of particular importance are the protocol stacks that drive industry-standard interfaces like USB. The hardware blocks are put together using CAD tools; the software modules are integrated using a software-development environment.


ARM Holdings licenses the chip designs and the ARM instruction set architectures to third-parties, who design their own products that implement one of those architectures—including systems-on-chips (SoC) that incorporate memory, interfaces, radios, etc. Currently, the widely used Cortex cores, older “classic” cores, and specialized SecurCore cores variants are available for each of these to include or exclude optional capabilities. Companies that produce ARM products include AppleNvidiaQualcommSamsung Electronics, and Texas Instruments. Apple first implemented the ARMv8-A architecture in the Apple A7 chip in the iPhone 5S.


All Intel’s current CPUs, have a memory controller, graphics, PCI Express and more integrated on-die. The end-game here is the system-on-a-chip (SoC), but we’re some way off that for PCs. Even if we had reached that point, motherboards would still definitely matter. This is because sockets and wiring cost money, so cheaper boards won’t bother with wiring everything up – but that’s the future.

In the now, the motherboard still contains some critical features, such as storage interfaces, USB controllers and more. Then factor in things like BIOS quality and functionality and you can forget any notion that mobos no longer matter.

Yes, Haswell has much improved graphics. The top Iris 5300 graphics with 128MB eDRAM looks particularly intriguing for laptops and maybe even tablets, but integrated graphics on the desktop? Get real. You still want a dedicated GPU if you’re even remotely bothered about a spot of gameage.

Which is where motherboards come in. Haswell CPUs may be a bit of a bummer, but they do bring with them the new LGA1150 socket and the new Intel 8 series chipsets. Cue much rejoicing. Well, we say chipsets. The reality is more accurately characterised as merely ‘chip’. Namely the platform controller hub or PCH chip. Ye olde northbiridge chip has essentially been assimilated into the CPU.



PowerPC (an acronym for Performance Optimization With Enhanced RISC – PerformanceComputing, sometimes abbreviated as PPC) is a RISC instruction set architecture created by the 1991 AppleIBMMotorola alliance, known as AIM.

Originally intended for personal computers, PowerPC CPUs have since become popular asembedded and high-performance processors. PowerPC was the cornerstone of AIM’s PReP andCommon Hardware Reference Platform initiatives in the 1990s and while the architecture is well known for being used by Apple’s Macintosh lines from 1994 to 2006 (before Apple’s transition to Intel), its use in video game consoles and embedded applications provided an array of uses.

In 1991, the PowerPC was just one facet of a larger alliance among these three companies. At the time, most of the personal computer industry was shipping systems based on the Intel 80386 and 80486 chips, which had a CISC architecture, and development of the Pentium processor was well underway. The PowerPC chip was one of several joint ventures involving the three, in their efforts to counter the growing Microsoft-Intel dominance of personal computing.

For Motorola, POWER looked like an unbelievable deal. It allowed them to sell a widely tested and powerful RISC CPU for little design cash on their own part. It also maintained ties with an important customer, Apple, and seemed to offer the possibility of adding IBM too, who might buy smaller versions from Motorola instead of making its own.

At this point Motorola already had its own RISC design in the form of the 88000 which was doing poorly in the market. Motorola was doing well with their 68000 family and the majority of the funding was focused on this. The 88000 effort was somewhat starved for resources.

However, the 88000 was already in production; Data General was shipping 88k machines and Apple already had 88k prototype machines running. The 88000 had also achieved a number of embedded design wins in telecom applications. If the new POWER one-chip version could be made bus-compatible at a hardware level with the 88000, that would allow both Apple and Motorola to bring machines to market far faster since they would not have to redesign their board architecture.

The result of these various requirements was the PowerPC (Performance Computing) specification

In parallel with the alliance between IBM and Motorola, both companies had development efforts underway internally. The PowerQUICC line was the result of this work inside Motorola. The 4xx series of embedded processors was underway inside IBM. The IBM embedded processor business grew to nearly 100 million in revenue and attracted hundreds of customers.

However, toward the close of the decade, manufacturing issues began plaguing the AIM alliance in much the same way they did Motorola, which consistently pushed back deployments of new processors for Apple and other vendors: first from Motorola in the 1990s with the G3 and G4 processors, and IBM with the 64-bit G5 processor in 2003. In 2004, Motorola exited the chip manufacturing business by spinning off its semiconductor business as an independent company called Freescale Semiconductor. Around the same time, IBM exited the 32-bit embedded processor market by selling its line of PowerPC products to Applied Micro Circuits Corporation (AMCC) and focusing on 64-bit chip designs, while maintaining its commitment of PowerPC CPUs toward game machine makers such as Nintendo‘s GameCube and WiiSony‘s PlayStation 3 and Microsoft‘s Xbox 360, of which the latter two both use 64-bit processors. In 2005 Apple announced they would no longer use PowerPC processors in their Apple Macintosh computers, favoring Intel-produced processors instead, citing the performance limitations of the chip for future personal computer hardware specifically related to heat generation and energy usage, as well as the inability of IBM to move the 970 (PowerPC G5) processor to the 3 GHz range. The IBM-Freescale alliance was replaced by an open standards body called operates under the governance of the IEEE with IBM continuing to use and evolve the PowerPC processor on game consoles and Freescale Semiconductor focusing solely on embedded devices.

CISC architectures can have up to thousands of individual commands supported by the processor that can be used in machine code. Each of these assembly commands can range from a single operation to several hundred or more in length. On the other hand, RISC-based CPUs understand only a handful of different instructions, the minimum necessary to get the job done.

However, this in no way means that CISC is more powerful or that RISC is limited. The difference between the ARM and Intel can be explained with booting process of an OS.

In the Intel x86 architecture the bootloader is called from BIOS (Basic Input / output system). It then loads the kernel into RAM from the filesystem, & execute the kernel. At this point the kernel has control & accesses the filesystem. On an Intel architecture you need only to place the bootloader on the boot sector of the hard drive and have an accessible filesystem.

On the ARM, there is no BIOS, & no delay for the POST. There is also no hard drive. So the first thing to run is the bootloader, which then loads the kernel directly from flash (and not of a filesystem). The bootloader passes execution to the kernel. The kernel then accesses the filesystem & things are pretty similar to an x86 boot sequence from there.

The other important difference between the Intel world & the ARM world is that the bootloader is also used to transfer the OS image onto the flash device

Intel Microarchitectures and Chip Brands

Intel Microarchitectures and Chip Brands

INTEL has created various Microarchitectures based on x86 instruction set.

The table below lists brands of common[13] consumer targeted processors implementing the x86 instruction set, grouped by generations that emphasize important events of x86 history. Note: CPU generations are not strict – each generation is characterized by significantly improved or commercially successful processor microarchitecture designs.

Generation First introduced Prominent consumer CPU brands Linear/physical address space Notable (new) features
1 1978 Intel 8086Intel 8088 and clones 16-bit / 20-bit (segmented) First x86 microprocessors
1982 Intel 80186Intel 80188 and clones, NEC V20/V30 Hardware for fast address calculations, fast mul/div, etc.
2 Intel 80286 and clones 16-bit (30-bit virtual) / 24-bit (segmented) MMU, for protected mode and a larger address space.
3 (IA-32) 1985 Intel 80386 and clones, AMD Am386 32-bit (46-bit virtual) / 32-bit 32-bit instruction set, MMU with paging.
4 (FPU) 1989 Intel 80486 and clones, AMD Am486/Am5x86 RISC-like pipelining, integrated x87 FPU (80-bit), on-chip cache.
4/5 1997 IDT/CentaurC6Cyrix III-Samuel, VIA C3-Samuel2 / VIA C3-Ezra (2001),VIA C7 (2005) In-order, integrated FPU, some models with on-chip L2 cache, MMX, SSE.
5 1993 PentiumPentium MMXCyrix 5×86Rise mP6 Superscalar64-bit databus, faster FPU, MMX (2× 32-bit).
5/6 1996 AMD K5Nx586 (1994) μ-op translation.
6 1995 Pentium ProCyrix 6×86Cyrix MIICyrix III-Joshua (2000) As above / 36-bit physical (PAE) μ-op translation, conditional move instructions, Out-of-orderregister renamingspeculative executionPAE (Pentium Pro), in-package L2 cache (Pentium Pro).
1997 AMD K6/-2/3Pentium II/III L3-cache support, 3DNow!SSE (2× 64-bit).
2003 Pentium MIntel Core (2006) optimized for low power.
7 1999 AthlonAthlon XP Superscalar FPU, wide design (up to three x86 instr./clock).
2000 Pentium 4 deeply pipelined, high frequency, SSE2hyper-threading.
7/8 2000 Transmeta CrusoeTransmeta Efficeon VLIW design with x86 emulator, on-die memory controller.
2004 Pentium 4 Prescott 64-bit / 40-bit physical in first AMD implementation Very deeply pipelined, very high frequency, SSE3, 64-bit capability (integer CPU) is available only in LGA 775 sockets.
2006 Intel Core 2 64-bit (integer CPU), low power, multi-core, lower clock frequency, SSE4 (Penryn).
2008 VIA Nano Out-of-order, superscalar, 64-bit (integer CPU), hardware-based encryption, very low power, adaptive power management.
8 (x86-64) 2003 Athlon 64Opteron x86-64 instruction set (CPU main integer core), on-die memory controller, hypertransport.
8/9 2007 AMD Phenom As above / 48-bit physical for AMD Phenom Monolithic quad-core, SSE4a, HyperTransport 3 or QuickPath, native memory controller, on-die L3 cache, modular.
2008 Intel Core i3/i5/i7, AMD Phenom II
Intel Atom In-order but highly pipelined, very-low-power, on some models: 64-bit (integer CPU), on-die GPU.
2011 AMD BobcatLlano Out-of-order, 64-bit (integer CPU), on-die GPU, low power (Bobcat).
9 (GPU) 2011 Intel Sandy Bridge/Ivy Bridge, AMD Bulldozer and Trinity SSE5/AVX (4× 64-bit), highly modular design, integrated on-die GPU.
2013 Intel Haswell AVX2FMA3TSX, BMI1, and BMI2 instructions.

(MIC pilot)
2012 Intel Xeon Phi (Larrabee) Many Integrated Cores (62), In-order P54C with x86-64, Very wide vector unit, LRBni instructions (8× 64-bit)

 Intel Core (microarchitecture)

The Intel Core microarchitecture (previously known as the Next-Generation Micro-Architecture) is a multi-core processor microarchitecture unveiled by Intel in Q1 2006. It is based on the Yonah processor design and can be considered an iteration of the P6 microarchitecture, introduced in 1995 with Pentium Pro. The high power consumption and heat intensity, the resulting inability to effectively increase clock speed, and other shortcomings such as the inefficient pipeline were the primary reasons for which Intel abandoned the NetBurst microarchitecture and switched to completely different architectural design, delivering high efficiency through a small pipeline rather than high clock speeds. It is worth noting that the Core microarchitecture never reached the clock speeds of the Netburst microarchitecture, even after moving to the 45 nm lithography.

The first processors that used this architecture were code-named MeromConroe, and Woodcrest; Merom is for mobile computing, Conroe is for desktop systems, and Woodcrest is for servers and workstations. While architecturally identical, the three processor lines differ in the socket used, bus speed, and power consumption. Mainstream Core-based processors are branded Pentium Dual-Core or Pentium and low end branded Celeron; server and workstation Core-based processors are branded Xeon, while desktop and mobile Core-based processors are branded as Core 2. Despite their names, processors sold as Core Solo/Core Duo and Core i3/i5/i7 do not actually use the Core microarchitecture and are based on the Enhanced Pentium M and newer Nehalem/Sandy Bridge/Haswell microarchitectures, respectively.

Processor cores[edit]

The processors of the Core microarchitecture can be categorized by number of cores, cache size, and socket; each combination of these has a unique code name and product code that is used across a number of brands. For instance, code name “Allendale” with product code 80557 has two cores, 2 MB L2 cache and uses the desktop socket 775, but has been marketed as Celeron, Pentium, Core 2 and Xeon, each with different sets of features enabled. Most of the mobile and desktop processors come in two variants that differ in the size of the L2 cache, but the specific amount of L2 cache in a product can also be reduced by disabling parts at production time. Wolfdale-DP and all quad-core processors except Dunnington QC are multi-chip modules combining two dies. For the 65 nm processors, the same product code can be shared by processors with different dies, but the specific information about which one is used can be derived from the stepping.

Tick-Tock” is a model adopted by chip manufacturer Intel Corporation since 2007 to follow every microarchitectural change with a die shrink of the process technology. Every “tick” is a shrinking of process technology of the previous microarchitecture (and sometimes introducing new instructions as with Broadwell) and every “tock” is a new microarchitecture.[1] Every year to 18 months, there is expected to be one tick or tock.[1]

Architectural change Fabrication process Microarchitecture Codenames Release date Processors
8P/4P Server 4P/2P Server/WS Enthusiast/WS Desktop Mobile Marketing names
Tick Die shrink 65 nm P6NetBurst PreslerCedar MillYonah January 5, 2006 Presler Cedar Mill Yonah
Tock New microarchitecture Core Merom[2] July 27, 2006[3] Tigerton Woodcrest
Kentsfield Conroe Merom
Tick Die shrink 45 nm Penryn November 11, 2007[4] Dunnington Harpertown Yorkfield Wolfdale Penryn
Tock New microarchitecture Nehalem Nehalem November 17, 2008[5] Beckton Gainestown Bloomfield Lynnfield Clarksfield
Tick Die shrink 32 nm Westmere January 4, 2010[6][7] Westmere-EX Westmere-EP Gulftown Clarkdale Arrandale
Tock New microarchitecture Sandy Bridge Sandy Bridge January 9, 2011[8] (Skipped)[9] Sandy Bridge-EP Sandy Bridge-E Sandy Bridge Sandy Bridge-M
Tick Die shrink 22 nm Ivy Bridge April 29, 2012 Ivy Bridge-EX[10] Ivy Bridge-EP[10] Ivy Bridge-E[11] Ivy Bridge Ivy Bridge-M
Tock New microarchitecture Haswell Haswell June 2, 2013 Haswell-DT[12]
  • Haswell-MB (notebooks)
  • Haswell-LP (ultrabooks)[12]
Tick Die shrink 14 nm[13] Broadwell[14] 2014[6]
Tock New microarchitecture Skylake[14] Skylake[14] 2015  


ARM Architecture (RISC Based)


Architectures, Processors, and Devices Development Article

ARM is a family of instruction set architectures (Instruction set architecture is distinguished from the microarchitecture, which is the set of processor design techniques used to implement the instruction set. Computers with different microarchitectures can share a common instruction set. For example, the Intel Pentium and theAMD Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs. Some virtual machines that support bytecode as their ISA such as Smalltalk, the Java virtual machine, and Microsoft’s Common Language Runtime, implement this by translating the bytecode for commonly used code paths into native machine code. In addition, these virtual machines execute less frequently used code paths by interpretation (see: Just-in-time compilation). Transmeta implemented the x86 instruction set atop VLIW processors in this fashion.)  for computer processors based on a reduced instruction set computing (RISC) architecture developed by British company ARM Holdings.

A RISC-based computer design approach means ARM processors require significantly fewer transistors than typical processors in average computers. This approach reduces costs, heat and power use. These are desirable traits for light, portable, battery-powered devices—including smartphoneslaptopstablet and notepad computers, and other embedded systems. A simpler design facilitates more efficient multi-core CPUs and higher core counts at lower cost, providing higher processing power and improved energy efficiency for servers and supercomputers.[3][4][5]


ARM Holdings develops the instruction set and architecture for ARM-based products, but does not manufacture products.

ARM Holdings licenses the chip designs and the ARM instruction set architectures to third-parties, who design their own products that implement one of those architectures—including systems-on-chips (SoC) that incorporate memory, interfaces, radios, etc. Currently, the widely used Cortex cores, older “classic” cores, and specialized SecurCore cores variants are available for each of these to include or exclude optional capabilities. Companies that produce ARM products include AppleNvidia,QualcommSamsung Electronics, and Texas Instruments. Apple first implemented the ARMv8-A architecture in the Apple A7 chip in the iPhone 5S.

In 2005, about 98% of all mobile phones sold used at least one ARM processor.[6] The low power consumption of ARM processors has made them very popular: 37 billion ARM processors have been produced as of 2013, up from 10 billion in 2008.[7] The ARM architecture (32-bit) is the most widely used architecture in mobile devices, and most popular 32-bit one in embedded systems.[8]

According to ARM Holdings, in 2010 alone, producers of chips based on ARM architectures reported shipments of 6.1 billion ARM-based processors, representing 95% of smartphones, 35% of digital televisionsand set-top boxes and 10% of mobile computers. It is the most widely used 32-bit instruction set architecture in terms of quantity produced