/Computer Architecture

Learning Outcomes

After completing these activities you should be able to:

The operating system is a go-between, between the physical machine and the users/programs (applications).
You will see a layered approach to topics in this course time and time again. Layered approaches are used for multiple reasons. Layered approaches allow details to be abstracted away allowing problems to be broken down and solved in smaller pieces, recursively so until the pieces are small enough for us to focus on. The construct of the cyber domain is a layered construct due to the design and nature of the core technology and the aspects of the cyber domain. Most importantly the seams in the layers have continually shown to be points where vulnerabilities exist. Understanding how the layers interact is crucial to operating within the cyber domain.
There is no right or wrong way to learn the layers in, in some cases we will start from the bottom, in others we will start from the top.
If you take a big picture view of a computer, you get three things:
  1. The user and Programs (Applications) running on the user's behalf;
  2. The operating system; and
  3. The physical computer.
In this lesson we'll learn a bit about the physical computer. We will explore the operating system, and users and Programs in upcoming discussions.

What is a computer?

Basically, a computer is a device that can read in data, process data, output data, and, optionally, store data. Is a calculator a computer by this definition? It has keys for inputting number and operations, a screen for outputting results, and it processes data by performing the mathematical operations you request, so ... it meets the definition.
This an Intel Core i5 CPU.

Usually when we think "computer", we're thinking of a PC, a laptop, or maybe a big server. A typical PC, laptop or server consists of a number basic components:

  1. CPU - this stands for Central Processing Unit. It is essentially the brain of the computer. What CPU does your laptop have? Your smartphone? An iPad?
  2. Memory (RAM) - this is the CPU's short term memory, it can only really compute with values it has loaded into RAM, because the CPU itself can only remember a very small number of things. When the power goes off, anything stored in RAM is lost. RAM is usually measured in MB's or GB's (mega bytes and giga bytes, remember?)
  3. Hard Drive (HDD) - this is the computer's long-term memory. Things stored here are remembered even after the power's been turned off. Why bother with RAM then? Mostly because the hard drive is much slower than RAM. If the CPU needs to access a value often, it would slow down the machine way too much to keep having to grab the value off the hard drive. Hard Drive space is usually measured in GB's or TB's (giga bytes and tera bytes, remember?)
  4. Why DoD hates the USB stick
    One of the most popular peripherals for PCs and laptops is the "USB stick" flash drive. You can get a key-fob with 16 GB of storage on it — what's not to love?

    Well, from the standpoint of an organization like the DoD, there's a lot not to love. First off, USB sticks are easy to lose, and they provide an easy way for people to smuggle large amounts of sensitive data out of a secure location. Second, USB sticks can be "infected" by computer viruses, so they provide an oft-used avenue to get viruses into secure locations. Both of these problems can be catastrophic.

    Think this is far-fetched? In 2008, an attack that's been referred to as the "worst breach of U.S. military computers in history" started with a virus-infected USB flash drive that made it's way to a DoD computer [NY Times Aug 2010 article]. In the aftermath of the attack, flash drives were banned in the DoD. Today, DoD personnel may only use USB sticks (flash drives) under very restricted circumstances.

    The attack, and the counter operation (named Buckshot Yankee) "marked a turning point in U.S. cyber-defense strategy" according to William J. Lynn III, the then deputy secretary of defense.

    Peripherals - These components are attached to the computer in some way to increase the capabilities of your computer but are not a part of the core architecture of your computer. These are things like webcams, printers, scanners, and many others. The hard drive is a peripheral, but it plays a central role in how the computer functions, so we talk about it separately.

In order to find out what CPU and how much RAM you have, follow these steps.

  1. After clicking on the Windows Start orb, select Control Panel
  2. Click on System and Security
  3. Under the System section, click View amount of RAM and processor speed

In the description of your System the description may say "32-bit" or it may say "64-bit". A CPU is called "32-bit" if it stores memory addresses in 32-bits. This allows for a maximum of 4GB of memory. Most CPUs for PCs now are "64-bit", meaning the CPU uses 64 bits to store memory addresses. This allows for a maximum of 16 billion GB of memory ... which is a lot. The Operating System (OS) is either written to make full use of 64 bits for addresses, or only 32. If you see "32-bit", it probably means the OS is 32-bit.

In order to see what peripherals you have, follow these steps.
Why the Navy uses 20-year-old CPUs

With the continued evolution of CPUs and other hardware, you might think that weapon systems always employ the latest and greatest commercial CPUs. However, weapon systems must operate for many years and must be trusted to function correctly in all sorts of conditions. That level of trust or confidence in the hardware is, in many applications, more important than speed. Trusting hardware to perform up to this standard requires many rigorous tests, and a significant investment of time and effort. So weapons systems may well use old hardware, if that hardware has been proven trustworthy.

There are weapon systems in use on naval platforms that run on 20-year-old 286 CPUs (16-bit, 25MHz; over a hundred times slower than your laptops). Older hardware often means older operating systems and older software too, such as Windows 3.1.

As the Navy continues to employ increasingly network centric platforms, engineers need to continually integrate new technologies with older technologies (often technologies that were not intended to be connected to networks), while maintaining the trust and security required of weapon systems.

Your CAC has a computer.

The small gold plate at the bottom of your CAC is a computer. It has a CPU ("Oberthur ID-One Cosmo 128K v5.5"), memory (a whopping 144KB), inputs data (e.g.: you enter your PIN), processes data (e.g.: performs cryptographic calculations), and outputs data to the card reader. The computer in your CAC draws power from the card reader.

  1. Type 'Device Manager' in the Windows Search Bar and then click on Device Manager at the top, say 'yes' to any user account control questions.
Once it is opened you can click to expand things like Network adapters or DVD/CD-ROM drives you'll get some details about these peripherals.

To see how much storage space you have on your hard drive, do these steps.

  1. After pressing the Windows Start button, right click on File Explorer and select 'Manage' say 'yes' to any user account control questions.
  2. On the left, under Storage, select Disk Management.
  3. Your hard drive should be listed as a storage device with its capacity.
Question: how many bits of storage is available on your hard drive?

Fetch, Decode, Execute and the pulse of a CPU

A CPU leads a boring life. It performs the same three steps over, and over and over and over and over ...
  1. Fetch the next instruction from memory as a block of bytes
  2. Decode the bytes to determine what action the instruction specifies
  3. Execute the action encoded in the instruction
... and it performs these steps hundreds of millions of times per second. A CPU's "clock speed" tells you (not quite literally, but close) how many of these steps it can perform each second. So a 1 GHz clock speed means roughly a billion steps per second. Pretty fast, eh? There is a crystal inside the CPU that vibrates at a given rate, and it provides the "tick" for the CPU's clock. It is, if you will, the beating heart of the CPU.
You can get a graph of how busy your CPU is over time: a) press control+alt+delete, b) choose Task Manager, c) click on the Performance tab.

You may well ask how the instructions the CPU loads from memory in the fetch step got there in the first place. These instructions are loaded into memory initially from a file on disk — namely the file that is "the Program" the CPU is running. And so we come full circle, back to the previous lesson!

Counterfeit electronics
Although it's outside the scope of this course, it's important to take a second to think about an important problem concerning hardware: safeguarding the supply chain. Counterfeit electronic components represent a real threat to American businesses and to the U.S. military. Counterfeit parts may be a real problem for the organizations that purchase them, either because they are unreliable (since the counterfeiters rely on the real brand's reputation, not their own, there's no concern for quality control) or because they are purposely built to fail or to function improperly. Of course legitimate businesses that produce electronics suffer too: they lose sales, and when parts fail they — not the counterfeiters — are blamed for the failure.