BRAND: Computer Architecture
After completing these activities you should be able to:
- Describe a computer as a device that manipulates digital data through input, processing, and output
- Name the major physical components of a computer, and describe their function
- Explain program launch and the CPU fetch-decode-execute cycle
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 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
- The user and Programs (Applications) running on the user's behalf;
- The operating system; and
- 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 numbers and operations, a screen for outputting
results, and it processes data by performing the mathematical
operations you request, so ... it meets the definition.
This is 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 of basic
Central Processing Unit (CPU) - This is
essentially the brain of the computer. It executes instructions and controls data flow to and from other parts of the computer.
What CPU does your laptop have? Your smartphone? An iPad?
- Random Access 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. For example, when you open up a program such as Microsoft Word, an instance of that program is loaded into RAM. However, when you save a Word document, the document is saved to the hard drive, mentioned below. When the power goes off, anything stored in RAM is lost.
RAM is usually measured in MB's or GB's (megabytes and
gigabytes- more on those later)
Hard Drive (HDD) - this is the computer's long-term memory.
Things stored here are remembered even after the power has
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. Continuing with the above Microsoft Word example, the actual Microsoft Word program and Word documents you have saved are stored on the hard drive.
Hard Drive space is usually measured in GB's or TB's (giga bytes and
tera bytes, remember?)
Why DoD hates the USB stick
Peripherals - These are components that 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 keyboards, mice, monitors, 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.
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 its way to a DoD computer
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.
Here is a cool video demonstrating these components.
Now let's look at our machines! In order to find out what CPU and how much RAM you have, follow these steps.
- After clicking on the Windows Start button, select Control Panel
- Click on System and Security
- 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.
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
So weapons systems may well use old hardware, if that hardware
has been proven trustworthy.
There are weapon systems in use on naval platforms
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 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.
- Type 'Device Manager' in the Windows Search Bar and then click on Device Manager at the top, say 'yes' to any user account control
Once it is opened you can click to expand things like Network adapters
you'll get some details about these peripherals.
To see how much storage space you have on your hard drive, do these steps.
- After pressing the Windows Start button, right click on File Explorer and select 'Manage' and say 'yes' to any user account control
- On the left, under Storage, select Disk Management.
- Your hard drive should be listed as a storage device with its capacity.
how many bits of storage is available on your hard drive?
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.
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 ...
- Fetch the next instruction from memory as a block of bytes
- Decode the bytes to determine what action the instruction specifies
- 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 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!
- List and describe the FOUR parts of a computer discussed in this lesson.
- What are the THREE steps in the CPU's cycle?
- What are the three types of threats discussed in this lesson?
Department of Defense. 2013. DoDI 4140.67: DoD Counterfeit Prevention Policy. Washington: April 26, 2013.
Knowlton, Brian. 2010. “Military Computer Attack Confirmed.” New York Times, August 25, 2010.
"Fetch-decode-execute cycle." Bitesize. 2019.
Lynn, William F. III. 2010. “Defending a New Domain - The Pentagon's Cyberstrategy." Foreign Affairs 89, no. 5 (September/October): 97-108.
Nye, Logan. "The Military Spends Millions to not Upgrade Computers." We Are The Mighty. February 19, 2019.
United States. Congress. 2017. Public Law 115-91. Washington: December 12, 2017.