Intro to Computer Systems

Chapter 12: System Integration

A System of Systems

The traditional view of a computer system has been one of an all-power central processor unit, with a number of subservient peripherals at the processor's beck and call. However, the complexity and speed of modern computer systems of all types have meant that this has been supplanted by more of a system-of-systems approach: where there is a level of "smartness" in each part of the computer system, and results are delivered by a cooperation of these subsystems.

For brevity, the remainder of the topic will be in the context of consumer computing, primarily desktops (with the occasional diversion to mobile and ultramobile computing); however, this approach can be taken to most all computing paradigms - phone, tablet, mobile, desktop, workstation or server system.

Fundamental Subsystems

So, when it comes to identifying subsystems of a system, where does one draw the line? The perspective of a hardware engineer may be very different to an end user, or system integrator. Since the latter is the focus of the course, we will take the perspective of one tasked with configuring and building a system out of available components.

In this context, a computer system can be split into eight subsystems, the primary drivers of (and limits to) performance of the system as a whole:

CPU

The CPU is the primary processor in the system for general computation tasks. Past focus with CPU has been raw instruction performance, however modern software and computing behaviours tend to favour multiprocessing capabilities.

There are a variety of processor architectures and model lines (each with unique features and performance limitations) to consider, and compatibility must be considered across instruction set, electrical and physical socket configuration, and thermal issues.

Memory

System memory is an increasingly important specification item in modern systems, as content becomes more complex and even everyday tasks begin making use of memory-hungry techniques such as virtual machines, sandboxes, and virtualisation.

Although some parts of memory specification will be determined by other components, there are still several options and compromises to consider.

Motherboard and Chipset

The motherboard (with its chipset) are the glue of the system internals. It is what largely determines what types of subsystems can be installed to build the computer.

Choosing a motherboard is often a complex task as one needs to consider the desired interface and performance for all peripherals, both for the present and in the future.

Ideally other subsystems are selected, and then a motherboard/chipset is chosen that best accomodates these.

Graphics and Display

Graphics subsystems are typically integrated (onto the chipset or CPU), or a discrete graphics processor on an expansion interface.

Modern integrated graphics is typically "good enough" for general work, leaving discrete graphics systems for the gaming and professional graphics, design and engineering markets.

Graphics cards can also be used for other specialised computational tasks, with vendors nVidia and AMD supporting technologies such as CUDA and OpenCL to varying extents.

Mass Storage

Mass storage devices are a very common source of bottlenecks in practice, due to the very high latencies involved in rotating platter data storage.

Choosing a mass storage system involves finding a balance between performance, redundancy, capacity and cost. Optimising these parameters may involve different storage technologies (e.g. magnetic disk and/or flash storage), storage controllers (simple SATA adapters, or high performance RAID controllers) and interfaces (Serial ATA or SAS).

Expansion Options

Decisions regarding the expansion options available in a system are driven not so much by present requirements, but potential future needs.

A balance must be taken with the choice of expansion options (of memory, disk controllers, external interfaces, general purpose expansion, etc.) as components that offer a high degree of expansion are often high-end, expensive and physically large.

Power Supply

As demands on a computer system increase, the role of a quality and well-specified power supply become increasingly important.

It is not just a matter of matching power output with requirements, but also to ensure that appropriate power is delivered where it is needed - a computer system has several power lines which are each stressed by different components.

Power supply choice can also be limited due to form factor, and any requirements or targets for system efficiency.

Enclosure and Cooling

A system enclosure's primary role is to house these subsystems in a cohesive package that offers appropriate shielding from interference, thermal management, expansion abilities and aesthetics.

As computer subsystems become more active in their management, what was once a "dumb box of vents and fans" is now a dynamic cooling system more akin to a miniature climate control system.

There are many perspectives and options available for thermal design, each with their own benefits and drawbacks.