Slide 1
Chapter 1: The Big PictureChapter 1The Big PicturePage 1The
Layers of a Computing SystemHistory of Computer ScienceChapter 1The
Big PicturePage 2
The AbacusOriginally developed by the Babylonians around 2400
BC, this arithmetic calculating tool was also used by ancient
Egyptians, Greeks, Romans, Indians, and Chinese.
The AlgorithmIn the year 825, the Persian mathematician Muhammad
ibn Ms al-Khwrizm developed the concept of performing a series of
steps in order to accomplish a task, such as the systematic
application of arithmetic to algebra.History of Computer
ScienceChapter 1The Big PicturePage 3The Analytical EngineDesigned
by British mathematician Charles Babbage in the mid-19th century,
this steam-powered mechanical device (never successfully built) had
the functionality of todays modern computers.Binary LogicAlso in
the mid-1800s, British mathematician George Boole developed a
complete algebraic system that allowed computational processes to
be mathematically modeled with zeros and ones (representing
true/false, on/off, etc.).
History of Computer ScienceChapter 1The Big PicturePage
4ComputabilityIn the early 20th century, American mathematician
Alonzo Church and British mathematician Alan Turing independently
developed the thesis that a mathematical method is effective if it
could be set out as a list of instructions able to be followed by a
human clerk (a computer) with paper and pencil, for as long as
necessary, and without ingenuity or insight.Turing MachineIn 1936,
Turing developed a mathematical model for an extremely basic
abstract symbol-manipulating device which, despite its simplicity,
could be adapted to simulate the logic of any computer that could
possibly be constructed.
History of Computer ScienceChapter 1The Big PicturePage 5Digital
Circuit DesignIn 1937, Claude Shannon, an American electrical
engineer, recognized that Boolean algebra could be used to arrange
electromechanical relays, which were then used in telephone routing
switches, to solve logic problems, the basic concept underlying all
electronic digital computers.CyberneticsDuring World War II,
American mathematician Norbert Wiener experimented with
anti-aircraft systems that automatically interpreted radar images
to detect enemy planes. This approach of developing artificial
systems by examining real systems became known as cybernetics.
History of Computer ScienceChapter 1The Big PicturePage
6TransistorThe fundamental building block of the circuitry in
modern electronic devices was developed in the early 1950s. Because
of its fast response and accuracy, the transistor is used in a wide
variety of digital and analog functions, including switching,
amplification, voltage regulation, and signal
modulation.Programming LanguagesIn 1957, IBM released the Fortran
programming language (the IBM Mathematical Formula Translating
System), designed to facilitate numerical computation and
scientific computing.In 1958, a committee of European and American
scientists developed ALGOL, the Algorithmic Language, which
pioneered the language design features that characterize most
modern languages.In 1959, under the supervision of the U.S.
Department of Defense, a consortium of technology companies (IBM,
RCA, Sylvania, Honeywell, Burroughs, and Sperry-Rand) developed
COBOL, the Common Business-Oriented Language, to help develop
business, financial, and administrative systems for companies and
governments.
History of Computer ScienceChapter 1The Big PicturePage
7Operating SystemsIn 1964, IBMs System 360 mainframe computers
utilized a single operating system (rather than using separate ad
hoc systems for each machine) to schedule and manage the execution
of different jobs on the computer.
MouseIn 1967, Stanfords Douglas Engelbart employed a wooden case
and two metal wheels to invent his X-Y Position Indicator for a
Display System.
History of Computer ScienceChapter 1The Big PicturePage
8Relational DatabasesIn 1969, IBMs Edgar Codd developed a
table-based model for organizing data in large systems so it could
be easily accessed.
Computational ComplexityIn 1971, American computer scientist
Stephen Cook pioneered research into NP-completeness, the notion
that some problems may not be solvable on a computer in a
reasonable amount of time.SupercomputersIn 1976, Seymour Cray
developed the first computer to utilize multiple processors in
order to vastly accelerate the computation of extremely complex
scientific calculations.Personal ComputersIn 1976, Steve Jobs and
Steve Wozniak formed Apple Computer, Inc., facilitating the
capability of purchasing a computer for home use.
History of Computer ScienceChapter 1The Big PicturePage
9InternetIn 1969, DARPA (the Defense Advanced Research Projects
Agency) established ARPANET as a computer communication network
that did not require dedicated lines between every pair of
communicating terminals.By 1977, ARPANET had grown from its initial
four nodes in California and Utah to over 100 nodes nationwide.In
1988, the National Science Foundation established five
supercomputer centers and connected them via ARPANET in order to
provide supercomputer access to academic researchers nationwide.By
1995, private sector entities had begun to find it profitable to
build and expand the Internets infrastructure, so NSFNET was
retired and the Internet backbone was officially privatized.
History of Computer ScienceChapter 1The Big PicturePage
10MicrosoftIn 1975, Bill Gates and Paul Allen founded the software
company that would ultimately achieve numerous milestones in the
history of computer science:1981: Contracted with IBM to produce
DOS (Disk Operating System) for use in IBMs new line of personal
computers.1985: Introduced Microsoft Windows, providing PC users
with a graphical user interface, which promoted ease of use in PCs.
(Resulted in look-and-feel lawsuit from Apple.)1989: Released
Microsoft Office, a suite of office productivity applications,
including Microsoft Word and Microsoft Excel. (Accused of unfairly
exploiting its knowledge of underlying operating systems by office
suite competitors.)1995: Entered Web browser market with Internet
Explorer. (Criticized for security flaws and lack of compliance
with many Web standards.)
Chapter 2: Binary Values andNumber SystemsChapter 2Binary Values
and Number SystemsPage 11Information may be reduced to its
fundamental state by means of binary numbers (e.g., on/off,
true/false, yes/no, high/low, positive/negative).Bits (binary
digits) are used to accomplish this. Normally, we consider a binary
value of 1 to represent a high state, while a binary value of 0
represents a low state.In machines, these values are represented
electronically by high and low voltages, and magnetically by
positive and negative polarities.0101001101010Binary Numerical
ExpressionsChapter 2Binary Values and Number SystemsPage 12Binary
expressions with multiple digits may be viewed in the same way that
multi-digit decimal numbers are viewed, except in base 2 instead of
base 10.For example, just as the decimal number 275 is viewed as 5
ones, 7 tens, and 2 hundreds combined, the binary number 01010110
can be viewed in right-to-left fashion as...010101100 ones1 two1
four0 eights1 sixteen0 thirty-twos1 sixty-four0 one hundred
twenty-eightsSo, 01010110 is equivalent to the decimal number 2 + 4
+ 16 + 64 =
86010101100101011001010110010101100101011001010110010101100101011001010110Hexadecimal
(Base-16) NotationChapter 2Binary Values and Number SystemsPage
13As a shorthand way of writing lengthy binary codes, computer
scientists often use hexadecimal notation.For example, the binary
expression 1011001011101000 may be written in hexadecimal notation
as B2E8.The two expressions mean the same thing, but they are in
different notations.Binary CodeHexadecimal
Notation0000000011001020011301004010150110601117Binary
CodeHexadecimal
Notation10008100191010A1011B1100C1101D1110E1111FChapter 3: Data
RepresentationChapter 3Data RepresentationPage 14Computers use bits
to represent all types of data, including text, numerical values,
sounds, images, and animation.How many bits does it take to
represent a piece of data that could have one of, say, 1000
values?If only one bit is used, then there are only two possible
values: 0 and 1.If two bits are used, then there are four possible
values: 00, 01, 10, and 11.Three bits produces eight possible
values: 000, 001, 010, 011, 100, 101, 110 and 111.Four bits
produces 16 values; five bits produces 32; six produces 64;
...Continuing in this fashion, we see that k bits would produce 2k
possible values.Since 29 is 512 and 210 is 1024, we would need ten
bits to represent a piece of data that could have one of 1000
values.Mathematically, this is the ceiling of the base-two
logarithm, i.e., the count of how many times you could divide by
two until you get to the value
one:1000/2=500500/2=250250/2=125125/2=6363/2=3232/2=1616/2=88/2=44/2=22/2=112345678910Representing
Integers with BitsChapter 3Data RepresentationPage 15Twos
complement notation was established to ensure that addition between
positive and negative integers shall follow the logical
pattern.Examples:4-Bit PatternInteger
Value00000000110010200113010040101501106011174-Bit PatternInteger
Value1000-81001-71010-61011-51100-41101-31110-21111-111010011+01010101-3
+ 3 = 000110010+101103 + 2 = 511001101+010111-4 + -3 =
-701100011+0101116 + 3 = -7???OVERFLOW!10011110+11101-7 + -2 =
7???OVERFLOW!Twos Complement Coding & DecodingHow do we code 44
in twos complement notation using 8 bits?First, write the value 44
in binary using 8 bits:00101100Starting on the right side, skip
over all zeros and the first one:00101100Continue moving left,
complementing each bit:11010100The result is -44 in 8-bit twos
complement notation:11010100How do we decode 10110100 from twos
complement into an integer?Starting on the right side, skip over
all zeros and the first one: 10110100Continue moving left,
complementing each bit: 01001100Finally, convert the resulting
positive bit code into an integer:76So, the original negative bit
code must have represented:76Chapter 3Data RepresentationPage
16Representing Real Numbers with BitsWhen representing a real
number like 17.15 in binary form, a rather complicated approach is
taken.Using only powers of two, we note that 17 is 24 + 20 and .15
is 2-3 + 2-6 + 2-7 + 2-10 + 2-11 + 2-14 + 2-15 + 2-18 + 2-19 + 2-22
+ So, in pure binary form, 17.15 would be
10001.0010011001100110011001In scientific notation, this would be
1.0001001001100110011001 24The standard for floating-point notation
is to use 32 bits. The first bit is a sign bit (0 for positive, 1
for negative). The next eight are a bias-127 exponent (i.e., 127 +
the actual exponent). And the last 23 bits are the mantissa (i.e.,
the exponent-less scientific notation value, without the leading
1).So, 17.15 would have the following floating-point notation:0
10000011 00010010011001100110011Chapter 3Data RepresentationPage
17Representing Text with BitsASCII: American Standard Code for
Information InterchangeASCII code was developed as a means of
converting text into a binary notation.Each character has a 7-bit
representation.For example, CAT would be represented by the bits:
1000011100000110101000000000 NUL (null) 0100000 SPACE 1000000 @
1100000 `0000001 SOH (start of heading) 0100001 ! 1000001 A 1100001
a0000010 STX (start of text) 0100010 " 1000010 B 1100010 b0000011
ETX (end of text) 0100011 # 1000011 C 1100011 c0000100 EOT (end of
transmission) 0100100 $ 1000100 D 1100100 d0000101 ENQ (enquiry)
0100101 % 1000101 E 1100101 e0000110 ACK (acknowledge) 0100110
& 1000110 F 1100110 f0000111 BEL (bell) 0100111 ' 1000111 G
1100111 g0001000 BS (backspace) 0101000 ( 1001000 H 1101000
h0001001 TAB (horizontal tab) 0101001 ) 1001001 I 1101001 i0001010
LF (NL line feed, new line) 0101010 * 1001010 J 1101010 j0001011 VT
(vertical tab) 0101011 + 1001011 K 1101011 k0001100 FF (NP form
feed, new page) 0101100 , 1001100 L 1101100 l0001101 CR (carriage
return) 0101101 - 1001101 M 1101101 m0001110 SO (shift out) 0101110
. 1001110 N 1101110 n0001111 SI (shift in) 0101111 / 1001111 O
1101111 o0010000 DLE (data link escape) 0110000 0 1010000 P 1110000
p0010001 DC1 (device control 1) 0110001 1 1010001 Q 1110001
q0010010 DC2 (device control 2) 0110010 2 1010010 R 1110010
r0010011 DC3 (device control 3) 0110011 3 1010011 S 1110011
s0010100 DC4 (device control 4) 0110100 4 1010100 T 1110100
t0010101 NAK (negative acknowledge) 0110101 5 1010101 U 1110101
u0010110 SYN (synchronous idle) 0110110 6 1010110 V 1110110
v0010111 ETB (end of trans. block) 0110111 7 1010111 W 1110111
w0011000 CAN (cancel) 0111000 8 1011000 X 1111000 x0011001 EM (end
of medium) 0111001 9 1011001 Y 1111001 y0011010 SUB (substitute)
0111010 : 1011010 Z 1111010 z0011011 ESC (escape) 0111011 ; 1011011
[ 1111011 {0011100 FS (file separator) 0111100 < 1011100 \
1111100 |0011101 GS (group separator) 0111101 = 1011101 ] 1111101
}0011110 RS (record separator) 0111110 > 1011110 ^ 1111110
~0011111 US (unit separator) 0111111 ? 1011111 _ 1111111 DELChapter
3Data RepresentationPage 18Fax MachinesIn order to transmit a
facsimile of a document over telephone lines, fax machines were
developed to essentially convert the document into a grid of tiny
black and white rectangles.This important document must be faxed
immediately!!!A standard 8.511 page is divided into 1145 rows and
1728 columns, producing approximately 2 million 0.0050.01
rectangles.Each rectangle is scanned by the transmitting fax
machine and determined to be either predominantly white or
predominantly black.We could just use the binary nature of this
black/white approach (e.g., 1 for black, 0 for white) to fax the
document, but that would require 2 million bits per page!Chapter
3Data RepresentationPage 19CCITT Fax Conversion CodeBy using one
sequence of bits to represent a long run of a single color (either
black or white), the fax code can be compressed to a fraction of
the two million bit code that would otherwise be needed.length
white black0 00110101 00001101111 000111 0102 0111 113 1000 104
1011 0115 1100 00116 1110 00107 1111 000118 10011 0001019 10100
00010010 00111 000010011 01000 000010112 001000 000011113 000011
0000010014 110100 0000011115 110101 00001100016 101010 000001011117
101011 000001100018 0100111 000000100019 0001100 000010011120
0001000 0000110100021 0010111 0000110110022 0000011 0000011011123
0000011 0000010100024 0101000 0000001011125 0101011 0000001100026
0010011 00001100101027 0100100 00001100101128 0011000
00001100110029 00000010 00001100110130 00000011 00000110100031
00011010 00000110100132 00011011 00000110101033 00010010
00000110101134 00010011 000011010010length white black35 00010100
00001101001136 00010101 00001101010037 00010110 00001101010138
00010111 00001101011039 00101000 00001101011140 00101001
00000110110041 00101010 00000110110142 00101011 00001101101043
00101100 00001101101144 00101101 00000101010045 00000100
00000101010146 00000101 00000101011047 00001010 00000101011148
00001011 00000110010049 01010010 00000110010150 01010011
00000101001051 01010100 00000101001152 01010101 00000010010053
00100100 00000011011154 00100101 00000011100055 01011000
00000010011156 01011001 00000010100057 01011010 00000101100058
01011011 00000101100159 01001010 00000010101160 01001011
00000010110061 00110010 00000101101062 00110011 00000110011063
00110100 00000110011164 11011 000000111128 10010 000011001000192
010111 000011001001256 0110111 000001011011320 00110110
000000110011384 00110111 000000110100length white black448 01100100
000000110101512 01100101 0000001101100576 01101000 0000001101101640
01100111 0000001001010704 011001100 0000001001011768 011001101
0000001001100832 011010010 0000001001101896 011010011
0000001110010960 011010100 00000011100111024 011010101
00000011101001088 011010110 00000011101011152 011010111
00000011101101216 011011000 00000011101111280 011011001
00000010100101344 011011010 00000010100111408 011011011
00000010101001472 010011000 00000010101011536 010011001
00000010110101600 010011010 00000010110111664 011000
00000011001001728 010011011 00000011001011792 00000001000
000000010001856 00000001100 000000011001920 00000001101 00000001101
1984 000000010010 0000000100102048 000000010011 0000000100112112
000000010100 0000000101002176 000000010101 0000000101012240
000000010110 0000000101102304 000000010111 0000000101112368
000000011100 0000000111002432 000000011101 0000000111012496
000000011110 0000000111102560 000000011111 000000011111Chapter
3Data RepresentationPage 20Binary Code InterpretationChapter 3Data
RepresentationPage 21How is the following binary code
interpreted?10100111101111010000011001011100001111001111110010101110In
programmers shorthand (hexadecimal
notation)10100111101111010000011001011100001111001111110010101110A7BD065C3CFCAEAs
ASCII
text10100111101111010000011001011100001111001111110010101100So(space)easy.As
CCITT fax conversion code101009 white112 black1101164 white11010014
white000117 black001011121 white000011112 black100116 white112
black11005 white103 black10114 white103 blackAs a twos complement
integer...The negation of
01011000010000101111100110100011110000110000001101010010(21+24+26+28+29+216+217+222+223+224+225+229+231+232+235+236+237+238+239+241+246+251+252+254)-24,843,437,912,294,226Representing
Audio Data with BitsChapter 3Data RepresentationPage 22
Audio files are digitized by sampling the audio signal thousands
of times per second and then quantizing each sample (i.e., rounding
off to one of several discrete values).
The ability to recreate the original analog audio depends on the
resolution (i.e., the number of quantization levels used) and the
sampling rate.Representing Still Images with BitsChapter 3Data
RepresentationPage 23Digital images are composed of three fields of
color intensity measurements, separated into a grid of thousands of
pixels (picture elements) .
The size of the grid (the images resolution) determines how
clear the image can be displayed.2 24 48 816 1632 3264 64128 128256
256512 512RGB Color RepresentationChapter 3Data RepresentationPage
24In digital display systems, each pixel in an image is represented
as an additive combination of the three primary color components:
red, green, and blue.
TrueColor
ExamplesRedGreenBlueResult255185025501852551251251852550025518512525512518502550185255125125255Printers,
however, use a subtractive color system, in which the complementary
colors of red, green, and blue (cyan, magenta, and yellow) are
applied in inks and toners in order to subtract colors from a
viewers perception.Compressing Images with JPEG
The Joint Photographic Experts Group developed an elaborate
procedure for compressing color image files:First, the original
image is split into 88 squares of pixels.Each square is split into
three 88 grids indicating the levels of lighting and blue and red
coloration the square contains.
Chapter 3Data RepresentationPage 25After rounding off the values
in the three grids in order to reduce the number of bits needed,
each grid is traversed in a zig-zag pattern to maximize the chances
that consecutive values will be equal, which, as occurred in fax
machines, reduces the bit requirement even further.Depending on how
severely the values were rounded, the restored image will either be
a good representation of the original (with a high bit count) or a
bad representation (with a low bit count).Representing Video with
BitsVideo images are merely a sequence of still images, shown in
rapid succession.Chapter 3Data RepresentationPage 26
One means of compressing such a vast amount of data is to use
the JPEG technique on each frame, thus exploiting each images
spatial redundancy. The resulting image frames are called
intra-frames.Video also possesses temporal redundancy, i.e.,
consecutive frames are usually nearly identical, with only a small
percentage of the pixels changing color significantly. So video can
be compressed further by periodically replacing several I-frames
with predictive frames, which only contain the differences between
the predictive frame and the last I-frame in the sequence. P-frames
are generally about one-third the size of corresponding
I-frames.The Motion Picture Experts Group (MPEG) went even further
by using bidirectional frames sandwiched between I-frames and
P-frames (and between consecutive P-frames). Each B-frame includes
just enough information to allow the original frame to be recreated
by blending the previous and next I/P-frames. B-frames are
generally about half as big as the corresponding P-frames (i.e.,
one-sixth the size of the corresponding I-frames).Chapter 4: Gates
and CircuitsChapter 4Gates and CircuitsPage 27The AND Operation
(i.e., are both operands true?)1AND 111AND 000AND 100AND
0010101001AND 100111001000100000001111AND 1011010100000101The OR
Operation (i.e., is either operand true?)1OR 111OR 010OR 110OR
0010101001OR 100111001011110100001111OR 1011010110111111The
following Boolean operations are easy to incorporate into circuitry
and can form the building blocks of many more sophisticated
operationsThe NOT Operation (i.e., whats the opposite of the
operands value?)NOT 1 = 0NOT 0 = 1NOT 10101001 = 01010110NOT
00001111 = 11110000
More Boolean OperatorsChapter 4Gates and CircuitsPage 28The NAND
Operation (NOT AND)1NAND 101NAND 010NAND 110NAND 0110101001NAND
100111000111011100001111NAND 1011010111111010The NOR Operation (NOT
OR)1NOR 101NOR 000NOR 100NOR 0110101001NOR
100111000100001000001111NOR 1011010101000000The XOR Operation
(Exclusive OR, i.e, either but not both is true)1XOR 101XOR 010XOR
110XOR 0010101001XOR 100111000011010100001111XOR
1011010110111010
TransistorsChapter 4Gates and CircuitsPage 29
Transistors are relatively inexpensive mechanisms for
implementing the Boolean operators.In addition to the input
connection (the base), transistors are connected to both a power
source and a voltage dissipating ground.Essentially, when the input
voltage is high, an electric path is formed within the transistor
that causes the power source to be drained to ground.When the input
voltage is low, the path is not created, so the power source is not
drained.Using Transistors to Create Logic GatesChapter 4Gates and
CircuitsPage 30A NOT gate is essentially implemented by a
transistor all by itself.A NAND gate uses a slightly more complex
setup in which both inputs would have to be high to force the power
source to be grounded.
A NOR gate grounds the power source if either or both of the
inputs are high.
Use the output of a NAND gate as the input to a NOT gate to
produce an AND gate.
Use the output of a NOR gate as the input to a NOT gate to
produce an OR gate.How to Use Logic Gates for ArithmeticChapter
4Gates and CircuitsPage 31ANDs and ORs are all well and good, but
how can they be used to produce binary arithmetic?Lets start with
simple one-bit addition (with a carry bit just in case someone
tries to add 1 +
1!).SumBitCarryBit0+0=000+1=101+0=101+1=01Result0XOR0=00XOR1=11XOR0=11XOR1=0Result0AND0=00AND1=01AND0=01AND1=1Notice
that the sum bit always yields the same result as the XOR
operation, and the carry bit always yields the same result as the
AND operation!By combining the right circuitry, then, multiple-bit
addition can be implemented, as well as the other arithmetic
operations.Memory CircuitryChapter 4Gates and CircuitsPage 32With
voltages constantly on the move, how can a piece of circuitry be
used to retain a piece of information?
In the S-R latch, as long as the S and R inputs remain at one,
the value of the Q output will never change, i.e., the circuit
serves as memory!To set the stored value to one, merely set the S
input to zero (for just an instant!) while leaving the R input at
one.To set the stored value to zero, merely set the R input to zero
(for just an instant!) while leaving the S input at one.Question:
What goes wrong if both inputs are set to zero
simultaneously?Chapter 5: Computing ComponentsChapter 5Computing
ComponentsPage 33
In the 1940s and 1950s, John von Neumann helped develop the
architecture that continues to be used in the design of most modern
computer systems.Control Unit, Coordinating CPU
ActivityArithmetic/Logic Unit, Processing DataCentral Processing
Unit (CPU)Chapter 5Computing ComponentsPage 34
Bus Interface UnitInformation from the RAM enters the CPU here ,
and then it is sent to separate storage units or cacheCode
CacheStorage for instructions for deciphering dataBranch Predictor
UnitDecides which ALU can best handle specific data & divides
the tasksInstruction Prefetch & Decoding UnitTranslates data
into simple instructions for ALU to processArithmetic Logic
UnitWhole number cruncherFloating Point UnitFloating-point number
cruncherInstruction RegisterProvides the ALUs with processing
instructions from the data cacheData CacheSends data from ALUs to
Bus Interface Unit, and then back to RAMSimplified View of the
CPUChapter 5Computing ComponentsPage 35CPUALUCircuitry that
manipulates the dataRegistersSpecial memory cells to temporarily
store the data being manipulatedControl UnitCircuitry to coordinate
the operation of the computerBusRAMThe Processing CycleChapter
5Computing ComponentsPage 36MAIN MEMORYCONTROL UNITARITHMETIC/LOGIC
UNITDECODE instruction to determine what to doFETCH the next
instruction from main memoryEXECUTE the decoded instructionSTORE
the result in main memorySample Machine ArchitectureChapter
5Computing ComponentsPage
37CPUALUBusRegistersFEDCBA9876543210Control UnitProgram
Counter(Keeps track of the address of the next instruction to be
executed)Instruction Register(Contains a copy of the 2-byte
instruction currently being executed)Main Memory
Cells11100F0E0D0C0B0A09080706050403020100FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEE::::Random
Access Memory (RAM)Chapter 5Computing ComponentsPage 38
Whenever a computer accesses information (e.g., a program thats
being executed, data thats being examined), that information is
stored as electronic pulses within main memory.Main memory is a
system of electronic circuits known as random access memory (RAM),
the idea being that the user can randomly access any part of memory
(as long as the location of whats being accessed is known).The
circuitry in main memory is usually dynamic RAM, meaning that the
binary values must be continuously refreshed (thousands of times
per second) or the charge will dissipate and the values will be
lost.Cache MemoryChapter 5Computing ComponentsPage 39
Due to the need for continuous refreshing, dynamic RAM is rather
slow. An alternative approach is static RAM, which uses flip-flop
circuitry that doesnt waste time refreshing the stored binary
values.Static RAM is much faster than dynamic RAM, but is much more
expensive. Consequently, it is used less in most machines.Cache
memory uses static RAM as the first place to look for information
and as the place to store the information that was most recently
accessed (e.g., the current program being executed).Magnetic
MemoryChapter 5Computing ComponentsPage 40When the power is turned
off, a computers electronic memory devices immediately lose their
data. In order to store information on a computer when its turned
off, some non-magnetic storage capability is required.Most
computers contain hard drives, a system of magnetic platters and
read-write heads that detect the polarity of the magnetic filaments
beneath them (i.e., reading the bit values) and induce a magnetic
field onto the filaments (i.e., writing the bit values).
Disk Tracks and SectorsChapter 5Computing ComponentsPage 41Each
platter is divided into concentric circles, called tracks, and each
track is divided into wedges, called sectors.The read-write head
moves radially towards and away from the center of the platter
until it reaches the right track.The disk spins around until the
read-write head reaches the appropriate sector.
Optical MemoryChapter 5Computing ComponentsPage 42Compact Disks
Read-Only Memory (CD-ROMs) use pitted disks and lasers to store
binary information.When the laser hits an unpitted land, light is
reflected to a sensor and interpreted as a 1-bit; when the laser
hits a pit, light isnt reflected back, so its interpreted as a
0-bit.
Digital Versatile Disks (DVDs) use the same pits-and-lands
approach as CD-ROMs, but with finer gaps between tracks and pits,
resulting in over four times the storage capacity as CD-ROMs.
Flash MemoryChapter 5Computing ComponentsPage 43Universal Serial
Bus (USB) Connector to Host ComputerUSB Mass Storage ControllerTest
Points for Verifying Proper LoadingFlash Memory ChipCrystal
Oscillator to Produce Clock SignalLEDs to Indicate Data
TransfersWrite-Protect SwitchSpace for Second Flash Memory
ChipRecent advances in memory circuitry have made it possible to
develop portable electronic devices with large memory
capacities.Flash memory is Electrically Erasable Programmable
Read-Only Memory (EEPROM):Read-Only Memory: Non-volatile (retains
data even after power is shut off), but difficult to
alter.Programmable: Programs arent added until after the device is
manufactured, by blowing all fuses for which a 1-value is
desired.Electrically Erasable: Erasing is possible by applying high
electric fields.Input Device: KeyboardChapter 5Computing
ComponentsPage 44
One of the principal devices for providing input to a computer
is the keyboard.When a key is pressed, a plunger on the bottom of
the key pushes down against a rubber domethe center of which
completes a circuit within the keyboard, resulting in the CPU being
signaled regarding which key (or keys) has been pressed.Input
Device: MouseChapter 5Computing ComponentsPage 45
Moving the mouse turns the ballX and Y rollers grip the ball and
transfer movementOptical encoding disks include light holesInfrared
LEDs shine through the disksSensors gather light pulses to convert
to X and Y velocitiesThe mouse driver software processes the X and
Y data and transfers it to the operating systemThe other primary
input device is the computer mouse.Mechanical Mouse
Optical MouseOptical mice use red LEDs (or lasers) to illuminate
the surface beneath the mouse, and sensors detect the subtle
changes that indicate how much and in what direction the mouse is
being moved.Output Device: Cathode Ray Tube (CRT)Chapter 5Computing
ComponentsPage 46
Electron GunsA heating filament releases electrons from a
cathode, which flow through a control grid (controlling
brightness)Focusing CoilThe magnetic coil forces the electron flows
to focus into tight beamsDeflection CoilsThese magnetic plates
deflect the beams horizontally and vertically to particular screen
coordinatesAnode ConnectionThe positive charge on the anode
attracts the electrons and accelerates them forwardsShadow MaskA
perforated metal sheet halts stray electrons and ensures that beams
focus upon target phosphorsPhosphor-Coated ScreenEach pixel is
comprised of a triad of RGB phosphors that are illuminated by the
three electron beamsOutput Device: Liquid Crystal DisplayChapter
5Computing ComponentsPage 47Light Source
Horizontal PolarizerConverts light into horizontal shaftsThin
Film TransistorApplies charge to individual subpixelTwisted Nematic
Liquid CrystalsTwists shaft of light 90 when uncharged, 0 when
fully chargedColor FilterProvides red, green, or blue color to
resulting lightVertical PolarizerAmount of light permitted to pass
is proportional to how close to vertical its shafts areOutput
Device: Plasma DisplayChapter 5Computing ComponentsPage 48
Front Plate GlassDielectric LayerContains transparent address
electrodes, arranged in long horizontal rowsRear Plate
GlassDielectric LayerContains transparent display electrodes,
arranged in long vertical columnsPlasma CellsPhosphor coating is
excited by plasma ionization and photon releasePixelComprised of
three plasma cells, one of each RGB phosphor coatingInput/Output
Device: Touch ScreenChapter 5Computing ComponentsPage
49CapacitiveSmall amounts of voltage are applied to the four
corners of the screen.Touching the screen draws current from each
corner, and a controller measures the ratio of the four currents to
determine the touch location.ResistiveThe glass layer has an outer
coating of conductive material, and insulating dots separate it
from a flexible membrane with an inner conductive coating.When the
screen is touched, the two conductive materials meet, producing a
locatable voltage.
InfraredA small frame is placed around the display, with
infrared LEDs and photoreceptors on opposite sides.Touching the
screen breaks beams that identify the specific X and Y
coordinates.
AcousticFour ultrasonic devices are placed around the
display.When the screen is touched, an acoustic pattern is produced
and compared to the patterns corresponding to each screen
position.
Parallel ProcessingChapter 5Computing ComponentsPage
50Traditional computers have a single processor. They execute one
instruction at a time and can deal with only one piece of data at a
time. These machines are said to have SISD (Single Instruction,
Single Data) architectures.When multiple processors are applied
within a single computer, parallel processing can take place. There
are two basic approaches used in these supercomputers:SIMD (Single
Instruction, Multiple Data) ArchitecturesEach processor does the
same thing at the same time to its own portion of the dataExample:
Have the processors perform the graphics rendering for different
sectors of the viewscreen:
MIMD (Multiple Instruction, Multiple Data) ArchitecturesAt any
given moment, each processor does its own task to its own portion
of the dataExample: Have some processors retrieve data, some
perform calculations, and some render the resulting images: