Unit 2 Flashcards
Computers have led to a third revolution for civilization, with the blank taking its place alongside the agricultural and the industrial revolutions.
information revolution
A computer designed for use by an individual, usually incorporating a graphics display, a keyboard, and a mouse.
Personal computer (PC)
A computer used for running larger programs for multiple users, often simultaneously, and typically accessed only via a network.
Server
A class of computers with the highest performance and cost; they are configured as servers and typically cost tens to hundreds of millions of dollars.
Supercomputer
A computer inside another device used for running one predetermined application or collection of software.
Embedded computer
Many embedded processors are designed using blank, a version of a processor written in a hardware description language, such as Verilog or VHDL
processor cores
Blank are small wireless devices to connect to the Internet; they rely on batteries for power, and software is installed by downloading apps. Conventional examples are smart phones and tablets.
Personal mobile devices (PMDs)
Blank refers to large collections of servers that provide services over the Internet; some providers rent dynamically varying numbers of servers as a utility.
Cloud computing
Taking over from the conventional server is Cloud Computing, which relies upon giant datacenters that are now known as blank
Warehouse Scale Computers (WSCs)
Blank delivers software and data as a service over the Internet, usually via a thin program such as a browser that runs on local client devices, instead of binary code that must be installed, and runs wholly on that device. Examples include web search and social networking.
Software as a Service (SaaS)
A microprocessor containing multiple processors (“cores”) in a single integrated circuit.
Multicore microprocessor
Originally 1,099,511,627,776 (2^40) bytes, although communications and secondary storage systems developers started using the term to mean 1,000,000,000,000 (10^12) bytes
Terabyte (TB)
To reduce confusion, we now use the term blank for 2^40 bytes, defining terabyte (TB) to mean 10^12 bytes.
tebibyte (TiB)
kilobyte abbreviation
KB
kilobyte value
10^3
KB
kilobyte
kibibyte abbreviation
KiB
kibibyte value
2^10
KiB
kibibyte
mebibyte abbreviation
MiB
mebibyte value
2^20
MiB
mebibyte
MB
megabyte
megabyte abbreviation
MB
megabyte value
10^6
gigabyte value
10^9
gigabyte abbreviation
GB
GB
gigabyte
gibibyte value
2^30
gibibyte abbreviation
GiB
GiB
gibibyte
terabyte abbreviation
TB
terabyte value
10 ^12
TB
terabyte
tebibyte value
2^40
tebibyte abbreviation
TiB
TiB
tebibyte
petabyte value
10^15
petabyte abbreviation
PB
PB
petabyte
pebibyte value
2^50
pebibyte abbreviation
PiB
PiB
pebibyte
exabyte abbreviation
EB
exabyte value
10^18
EB
exabyte
exbibyte value
2^60
exbibyte abbreviation
EiB
EiB
exbibyte
zettabyte value
10^21
zettabyte abbreviation
ZB
ZB
zettabyte
zebibyte abbreviation
ZiB
zebibyte value
2^70
ZiB
zebibyte
yottabyte value
10^24
yottabyte abbreviation
YB
YB
yottabyte
yobibyte value
2^80
yobibyte abbreviation
YiB
YiB
yobibyte
What % Larger is KiB than KB?
2
What % Larger is MiB than MB?
5
What % Larger is GiB than GB?
7
What % Larger is TiB than TB?
10
What % Larger is PiB than PB?
13
What % Larger is EiB than EB?
15
What % Larger is ZiB than ZB?
18
What % Larger is YiB than YB?
21
List the 8 byte sizes from smallest to largest
KB
MB
GB
TB
PB
EB
ZB
YB
Blank states that integrated circuit resources double every 18-24 months. Blank resulted from a 1965 prediction of such growth in IC capacity made by Gordon Moore, one of the founders of Intel.
Moore’s Law
A major productivity technique for hardware and software is to use blank to characterize the design at different levels of representation; lower-level details are hidden to offer a simpler model at higher levels
abstractions
Making the blank fast will tend to enhance performance better than optimizing the rare case. Ironically, the blank is often simpler than the rare case and hence is usually easier to enhance.
common case
Since the dawn of computing, computer architects have offered designs that get more performance by computing operations in blank.
parallel
A particular pattern of parallelism is so prevalent in computer architecture that it merits its own name: blank, which moves multiple operations through hardware units that each do a piece of an operation
pipelining
The idea of blank is that, in some cases it can be faster on average to guess and start working rather than wait until you know for sure, assuming that the mechanism to recover from a misprediction is not too expensive and your prediction is relatively accurate
prediction
Architects have found that they can address conflicting demands of fast, large, and cheap memory with a blank, with the fastest, smallest, and most expensive memory per bit at the top of the hierarchy and the slowest, largest, and cheapest per bit at the bottom
hierarchy of memories
Computers not only need to be fast; they need to be dependable. Since any physical device can fail, we make systems dependable by including blank components that can take over when a failure occurs and to help detect failures.
redundant
A soccer player runs not to where the ball is, but to where the ball will be.
Design for Moore’s Law
A customer talks to a phone agent. If there’s a problem, he talks to the agent’s supervisor.
Hierarchy of Memories
A house architect first designs a house with 5 rooms, then designs room details like closets, windows, and flooring
Abstraction
A college student rents an apartment closer to campus than to her favorite weekend beach spot.
Make the common case fast
A sister is hanging clothes to dry. Her brother helps by hanging clothes simultaneously.
Performance via parallelism
A brother is washing and drying dishes. His sister helps by drying each dish immediately after the brother washes each.
Performance via pipelining
A mom expects her son will be hungry after a long airplane flight, so she cooks dinner just in case. If he’s not hungry, she’ll whip up a dessert instead.
Prediction
A drummer’s stick breaks, but he quickly grabs another one and continues playing the song.
Redundancy
To go from a complex application to the primitive instructions involves several layers of software that interpret or translate high-level operations into simple computer instructions, an example of the great idea of blank.
abstraction
Software that provides services that are commonly useful, including operating systems, compilers, loaders, and assemblers.
Systems software
There are many types of systems software, but two types of systems software are central to every computer system today: blank and blank
an operating system and a compiler
Supervising program that manages the resources of a computer for the benefit of the programs that run on that computer.
Operating system:
An operating system interfaces between a user’s program and the hardware and provides a variety of services and supervisory functions. Among the most important functions are what three things
Handling basic input and output operations
Allocating storage and memory
Providing for protected sharing of the computer among multiple applications using it simultaneously
Examples of operating systems in use today are what?
Linux, iOS, and Windows
Compiler: A program that translates high-level language statements into assembly language statements
Compiler
Also called a bit. One of the two numbers in base 2 (0 or 1) that are the components of information.
Binary digit
A command that computer hardware understands and obeys.
Instruction
A program that translates a symbolic version of instructions into the binary version.
Assembler
A symbolic representation of machine instructions.
Assembly language
A binary representation of machine instructions.
Machine language
A portable language such as C, C++, Java, that is composed of words and algebraic notation that can be translated by a compiler into assembly language.
High-level programming language
An advantage of a high-level language is allowing a programmer to ________.
think more naturally
An advantage of a high-level language is enabling a programmer to _________.
implement a program in less time
An advantage of a high-level language is that a program ________.
is independent of a particular machine
A mechanism through which the computer is fed information, such as a keyboard.
Input device:
A mechanism that conveys the result of a computation to a user, such as a display, or to another computer.
Output device:
The five classic components of a computer are blank, blank, blank, blank and blank, with the last two sometimes combined and called the processor.
input, output, memory, datapath, and control
Writes data to memory. Ex: Keyboard.
Input
Reads data from memory. Ex: Display.
output
Stores instructions and data.
memory
Sends signals that determine the operation of the other components.
Control
Performs computations.
datapath
Blank and blank are commonly together and called a processor
Control and datapath
A display technology using a thin layer of liquid polymers that can be used to transmit or block light according to whether a charge is applied.
Liquid crystal display
A liquid crystal display using a transistor to control the transmission of light at each individual pixel.
Active matrix display
The image is composed of a matrix of picture elements, or pixels, which can be represented as a matrix of bits, called a blank.
bit map
A color display might use blamnk for each of the three colors (red, blue, and green), for 24 bits per pixel, permitting millions of different colors to be displayed.
8 bits
The smallest individual picture element. Screens are composed of hundreds of thousands to millions of blank, organized in a matrix.
Pixel
The computer hardware support for graphics consists mainly of a blank, to store the bit map.
raster refresh buffer, or frame buffer
Also called a chip. A device combining dozens to millions of transistors.
Integrated circuit
Also called processor. The active part of the computer, which contains the datapath and control and which adds numbers, tests numbers, signals I/O devices to activate, and so on.
Central processor unit (CPU)
The component of the processor that performs arithmetic operations.
Datapath
The component of the processor that commands the datapath, memory, and I/O devices according to the instructions of the program.
Control
The storage area in which programs are kept when they are running and that contains the data needed by the running programs.
Memory
Memory built as an integrated circuit; it provides random access to any location. Access times are 50 nanoseconds and cost per gigabyte in 2012 was $5 to $10.
Dynamic random access memory (DRAM)
A small, fast memory that acts as a buffer for a slower, larger memory.
Cache memory
SRAM and DRAM are two layers of the blank.
memory hierarchy
Also memory built as an integrated circuit, but faster and less dense than DRAM
Static random access memory (SRAM)
Large memory where most data is stored.
DRAM
A faster memory technology than DRAM, but using more area to store a bit.
SRAM
A small memory that keeps a copy of data from larger memory.
Cache
Cache is built from blank
SRAM
Also called architecture. An abstract interface between the hardware and the lowest-level software that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on.
Instruction set architecture
The user portion of the instruction set plus the operating system interfaces used by application programmers. It defines a standard for binary portability across computers.
Application binary interface (ABI)
An blank allows computer designers to talk about functions independently from the hardware that performs them
instruction set architecture
Hardware that obeys the architecture abstraction.
Implementation
Both hardware and software consist of hierarchical layers using blank, with each lower layer hiding details from the level above
abstraction
One key interface between the levels of abstraction is the blank—the interface between the hardware and low-level software.
instruction set architecture
The instruction set architecture interface enables many blank of varying cost and performance to run identical software.
implementations
Storage, such as DRAM, that retains data only if it is receiving power.
Volatile memory
A form of memory that retains data even in the absence of a power source and that is used to store programs between runs. A DVD disk is blank.
Nonvolatile memory
Also called primary memory. Memory used to hold programs while they are running; typically consists of DRAM in today’s computers.
Main memory
Nonvolatile memory used to store programs and data between runs; typically consists of flash memory in PMDs and magnetic disks in servers.
Secondary memory
Also called hard disk. A form of nonvolatile secondary memory composed of rotating platters coated with a magnetic recording material. Because they are rotating mechanical devices, access times are about 5 to 20 milliseconds and cost per gigabyte in 2012 was $0.05 to $0.10.
Magnetic disk
A nonvolatile semiconductor memory. It is cheaper and slower than DRAM but more expensive per bit and faster than magnetic disks. Access times are about 5 to 50 microseconds and cost per gigabyte in 2012 was $0.75 to $1.00.
Flash memory
Memory layer used to hold programs and data while programs are running.
Main memory
Memory layer used to store programs and data between runs.
Secondary memory
A form of memory that retains data only if the memory is receiving power.
Volatile memory
A form of memory that retains data in the absence of a power.
nonvolatile memory
A nonvolatile semiconductor memory often used as secondary memory for personal mobile devices.
Flash memory
A form of nonvolatile secondary memory composed of rotating platters coated with a magnetic recording material
Magnetic disk
A network designed to carry data within a geographically confined area, typically within a single building
Local area network (LAN)
A network extended over hundreds of kilometers that can span a continent.
Wide area network (WAN)
An on/off switch controlled by an electric signal.
Transistor
A device containing hundreds of thousands to millions of transistors.
Very large-scale integrated (VLSI) circuit
A natural element that is a semiconductor.
Silicon
A substance that does not conduct electricity well.
Semiconductor
A rod composed of a silicon crystal that is between 8 and 12 inches in diameter and about 12 to 24 inches long.
Silicon crystal ingot
A slice from a silicon ingot no more than 0.1 inches thick, used to create chips.
Wafer
A microscopic flaw in a wafer or in patterning steps that can result in the failure of the die containing that defect.
Defect
The individual rectangular sections that are cut from a wafer, more informally known as chips.
Die
The percentage of good dies from the total number of dies on the wafer.
Yield
Also called execution time.
Response time
The total time required for the computer to complete a task, including disk accesses, memory accesses, I/O activities, operating system overhead, CPU execution time, and so on.
Response time: Also called execution time.
Also called bandwidth
Throughput
Another measure of performance, it is the number of tasks completed per unit time.
Throughput: Also called bandwidth.
PerformanceX / PerformanceY = blank
ExecutionY / ExecutionX
Blank is the measure of computer performance: the computer that performs the same amount of work in the least time is the fastest.
Time
Program execution time is measured in blank.
seconds per program
The most straightforward definition of time is called blank, blank, and blank. These terms mean the total time to complete a task, including disk accesses, memory accesses, input/output (I/O) activities, operating system overhead—everything.
wall clock time, response time, or elapsed time
Also called CPU time. The actual time the CPU spends computing for a specific task
CPU execution time
The CPU time spent in a program itself.
User CPU time
The CPU time spent in the operating system performing tasks on behalf of the program.
System CPU time
elapsed time on an unloaded system
system performance
user CPU time
CPU performance
Almost all computers are constructed using a clock that determines when events take place in the hardware. These discrete time intervals are called blank (or ticks, clock ticks, clock periods, clocks, cycles).
clock cycles
Clock cycle: Also called tick, clock tick, clock period, clock, or cycle. The time for one clock period, usually of the processor clock, which runs at a constant rate.
Clock cycle
The length of each clock cycle.
Clock period
CPU execution time for a program = blank
CPU clock cycles for a program / Clock rate
CPU clock cycles = blank
Instructions for a program X Average clock cycles per instruction
Average number of clock cycles per instruction for a program or program fragment.
Clock cycles per instruction (CPI)
CPU time = blank
Instruction time X CPI X Clock cycle time
The number of instructions executed by the program.
Instruction count
Blank = seconds/program = Instructions/program X clock cycles/instruction X seconds/clock cycle
Time
Always bear in mind that the only complete and reliable measure of computer performance is blank
time
CPU execution time for a program Units of measure
Seconds for the program
Instruction count Units of measure
Instructions executed for the program
Clock cycles per instruction (CPI) Units of measure
Average number of clock cycles per instruction
Clock cycle time Units of measure
Seconds per clock cycle
A measure of the dynamic frequency of instructions across one or many programs.
Instruction mix
What affects Instruction count, possibly CPI?
Algorithm
What affects Instruction count, CPI?
Programming language and compiler
What affects instruction count, clock rate, CPI
Instruction set architecture
The blank affects all three aspects of CPU performance, since it affects the instructions needed for a function, the cost in cycles of each instruction, and the overall clock rate of the processor.
instruction set architecture
The efficiency of the blank affects both the instruction count and average cycles per instruction, since the blank determines the translation of the source language instructions into computer instructions. The blank’s role can be very complex and affect the CPI in varied ways.
compiler
The blank certainly affects the instruction count, since statements in the language are translated to processor instructions, which determine instruction count. The language may also affect the CPI because of its features; for example, a language with heavy support for data abstraction (e.g., Java) will require indirect calls, which will use higher CPI instructions.
programming language
The blank determines the number of source program instructions executed and hence the number of processor instructions executed. The blank may also affect the CPI, by favoring slower or faster instructions. For example, if the blank uses more divides, it will tend to have a higher CPI.
algorithm
Although you might expect that the minimum CPI is 1.0, as we’ll see in COD Chapter 4 (The Processor), some processors fetch and execute multiple instructions per clock cycle. To reflect that approach, some designers invert CPI to talk about blank
IPC, or instructions per clock cycle
The capacitive load per transistor is a function of both the number of transistors connected to an output (called the blank) and the technology, which determines the capacitance of both wires and transistors.
fanout
The dominant technology for integrated circuits is called blank
CMOS (complementary metal oxide semiconductor).
Blank X 1/2 X Capacitive load X Voltage^2 X Frequency switched
Power
Formula for relative power
Power new / Power old
From the mid-1980s to early-2000s, processor performance improved each year at an average of blank
52%
Growth in processor performance slowed in blank.
2002
Blank was a factor in the slowing of processor performance growth.
Power
A set of programs run on a computer that is either the actual collection of applications run by a user or constructed from real programs to approximate such a mix. A typical blank specifies both the programs and the relative frequencies.
Workload
A program selected for use in comparing computer performance
Benchmark
Blank is an effort funded and supported by a number of computer vendors to create standard sets of benchmarks for modern computer systems.
SPEC (System Performance Evaluation Cooperative)
Dividing the execution time of a reference processor by the execution time of the evaluated computer normalizes the execution time measurements; this normalization yields a measure, called the blank which has the advantage that bigger numeric results indicate faster performance.
SPECratio
Blank is the inverse of execution time
SPECratio
A rule stating that the performance enhancement possible with a given improvement is limited by the amount that the improved feature is used. It is a quantitative version of the law of diminishing returns.
Amdahl’s Law
A measurement of program execution speed based on the number of millions of instructions. Blank is computed as the instruction count divided by the product of the execution time and 10^6.
Million instructions per second (MIPS):
Blank is the only valid and unimpeachable measure of performance.
Execution time
Power limitations have forced computer designers to exploit blank to improve system performance.
parallelism
J. Presper Eckert and John Mauchly at the Moore School of the University of Pennsylvania built what is widely accepted to be the world’s first operational electronic, general-purpose computer called the blank
ENIAC (Electronic Numerical Integrator and Calculator).
In 1944, John von Neumann was attracted to the ENIAC project. The group wanted to improve the way programs were entered and discussed storing programs as numbers; von Neumann helped crystallize the ideas and wrote a memo proposing a stored-program computer called blankl
EDVAC (Electronic Discrete Variable Automatic Computer).
In 1946, Maurice Wilkes of Cambridge University visited the Moore School to attend the latter part of a series of lectures on developments in electronic computers. When he returned to Cambridge, Wilkes decided to embark on a project to build a stored-program computer named blank
EDSAC (Electronic Delay Storage Automatic Calculator).
EDSAC started working in 1949 and was the world’s first full-scale, operational, stored-program computer [Wilkes, 1985]. (A small prototype called the blank, built at the University of Manchester in 1948, might be called the first operational stored-program machine. )
Mark-I
Across the English Channel, during World War II special-purpose electronic computers were built to decrypt intercepted German messages. A team at Bletchley Park, including Alan Turing, built the blank in 1943.
Colossus
While work on ENIAC went forward, Blank was building an electro-mechanical computer called the Mark-I at Harvard (a name that Manchester later adopted for its machine). He followed the Mark-I with a relay machine, the Mark-II, and a pair of vacuum tube machines, the Mark-III and Mark-IV. In contrast to earlier machines like EDSAC, which used a single memory for instructions and data, the Mark-III and Mark-IV had separate memories for instructions and data.
Howard Aiken
The term blank was coined to describe machines with distinct memories.
Harvard architecture
The blank was begun at MIT in 1947 and was aimed at applications in real-time radar signal processing. Although it led to several inventions, its most important innovation was magnetic core memory.
Whirlwind project
In December 1947, Eckert and Mauchly formed Eckert-Mauchly Computer Corporation. Their first machine, the blank, was built for Northrop and was shown in August 1949.
BINAC
Originally delivered in June 1951, blank sold for about $1 million and was the first successful commercial computer—48 systems were built!
UNIVAC I
The first IBM computer, the blank, shipped in 1952, and eventually 19 units were sold.
IBM 701
Digital Equipment Corporation (DEC) unveiled the blank, the first commercial minicomputer. The minicomputer was a small machine that was a breakthrough in low-cost design, allowing DEC to offer a computer for under $20,000.
PDP-8
Seymour Cray led the design of the Control Data Corporation CDC 6600 in Minnesota. Seymour Cray is often credited as the blank and regarded as a pioneer of supercomputing. This machine included many ideas that are beginning to be found in the latest microprocessors.
“father of supercomputing”
Supercomputer
Cray-1
Microprocessor
Intel 4004
Minicomputer
PDP-8
Product line of computers with varying cost and performance.
IBM System/360
in 1977, the blank (figure below) from Steve Jobs and Steve Wozniak set standards for low cost, high volume, and high reliability that defined the personal computer industry.
Apple IIe
The blank was the primary inspiration for the modern desktop computer
Xerox Alto
Among the technologies incorporated in the blank were:
A bit-mapped graphics display integrated with a computer (earlier graphics displays acted as terminals, usually connected to larger computers)
A mouse, which was invented earlier, but included on every Alto and used extensively in the user interface
A local area network (LAN), which became the precursor to the Ethernet
A user interface based on Windows and featuring a WYSIWYG (what you see is what you get) editor and interactive drawing programs
Alto
The blank synthetic program was created by measuring scientific programs written in Algol-60 (see Curnow and Wichmann’s [1976] description). This program was converted to Fortran and was widely used to characterize scientific program performance.
Whetstone
Whetstone performance is typically quoted in Whetstones per second—the number of executions of a single iteration of the Whetstone benchmark! Blank is another synthetic benchmark that is still used in some embedded computing circles (see Weicker’s [1984] description and methodology).
Dhrystone
Blank are small, time-intensive pieces from real programs that are extracted and then used as benchmarks.
Kernels
Blank and blank are the best-known examples of kernel benchmarks.
Livermore Loops and Linpack
In 2008, Blank provided benchmark sets for graphics, high-performance scientific computing, object-oriented computing, file systems, Web servers and clients, Java, engineering CAD applications, and power.
SPEC
To evaluate performance, the embedded community was inspired by SPEC to create the blank. Started in 1997, it consists of a collection of kernels organized into suites that address different portions of the embedded industry. They announced the second generation of these benchmarks in 2007.
Embedded Microprocessor Benchmark Consortium (EEMBC)