Introduction to Computer Hardware and Software
What is a System?
-A collection of components linked together and organized in such a way as to be recognizable as a single unit. -Linked components of a system also define a boundary for the system -The environment is anything outside of the system
General Purpose Registers
-Accumulators -Hold intermediate results or data values -Equivalent to LMC's calculator -Typically serval dozen in current CPUs -Can also used to transfer data between memory locations and between I/O and memory
Multiprocessor Systems
-All CPUs share access to: Programs, data, shared memory, I/O, etc. -Multi-tasking wherever possible -Programs can also be divided into independent parts and executed simultaneously -Operating System assigns work to various processors
JPEG (Joint Photographers Expert Group)
-Allows more than 16 million colors -Suitable for highly detailed photographs and paintings -Employs lossy compression algorithm that discards data to decreases file size and transmission speed, but may reduce image resolution, tends to distort sharp lines.
Memory
-Also known as primary storage, working storage, and RAM (random access memory) -Consists of bits, each of which hold a value of either 0 or 1 (8 bits = 1 byte) -Holds both instructions and data of a computer program (stored program concept)
Software Components
-Applications -Operating System -API -File Management -I/O -Kernel -Network Module
Software
-Applications and system software -Instructions tell hardware exactly what tasks to perform and in what order
Instruction Pipelining
-Assembly line technique to allow overlapping between fetch-execute cycle of sequences of instructions -Time cycle for each instruction is the same -Number of instructions per given time increases Areas of concern -Special Handling -Instructions with different number of steps (stalling) -Branch instructions may require data from previous instruction to proceed May invalidate all instructions in the pipeline depending on the condition
Keeping track of the bits
-Bits commonly stored and manipulated in groups -Number of bits used in a calculation affects accuracy of results and limits size and range of numbers manipulated by the computer
Cloud Computing Advantages
-Client's datacenter needs are simplified; reduced costs -Supports collaboration -Scalable to a variety of host platforms -Reduced maintenance downtime -Lower investment for short-term projects
Hybrid Model of Computing
-Client-server technology used to locate system and files -Then systems can participate in peer-to-peer transactions
Protocols
-Common ground rules of communication between computers, I/O devices, and may software programs
Fetch-Execute Cycle Timing
-Computer clock is used for timing purposes for each step of the instruction cycle -GHz - billion steps per second -Instructions can (and often) take more than one step -Data word width can require multiple steps -Switches may take different times
Examples of Standards
-Computer languages: Java, SQL, C, JavaScript -Display : Postscript, MPEG-2, JPEG, PNG -Character set: ASCII, Unicode, EBCDIC Multimedia: MPEG-2, MPEG-4, MP3, DVD-ROM
Peer-to-Peer Computing
-Computers on a network are treated as equals -Each computer can share resources with the other computers on the network
Object Images
-Created by drawing software or output from spreadsheet data graphs -Composed of lines and shapes in various colors -Computer translates geometric formulas to create the graphic -Storage space depends on image complexity -Movies such as Shrek and Toy Story use object images -Based om mathematical formulas -Require less storage space than bitmap images -Cannot represent photos or paintings -Must be converted to bitmap since output devices except plotters are bitmap
Standards
-Created to ensure universal compatibility of data formats and protocols -May be created by committee or may become a de facto standard through popular use
WAV
-Developed by Microsoft as part of its multimedia specification -General-purpose format for storing and reproducing small snippets of sound -Non-compressed 8 or 6 sound samples
Multiple, Parallel Execution Units
-Different instructions have different number of steps in their cycle -Instructions may also differ in each step -Each execution unit is optimized for one general type of instruction -Multiple execution units permit simultaneous execution of several instructions
IT System Architectures
-Distributed Processing Systems -Client Server Computing -Web-Based Computing -Peer-to-Peer Computing
Operation of Memory
-Each memory location has a unique address -Address from an instruction is copied to the MAR, which finds the location in memory -CPU determines if it is a store or retrieval -Transfer takes place between the MDR and memory -MDR is a two way register
GIF (Graphics Interchange Format)
-First developed by CompuServe in 1987. -GIF89a enabled animated images -Allows images to be displayed sequentially at fix time sequences -Image compressed by LZW(Lempel-Zif-Welch) algorithm -Preferred for line drawings, clip art, and pictures with large blocks of solid color -Lossless compression
Overflow
-Fixed word size has a fixed range size -Combination of numbers that add to result outside the range -End-around carry in modular arithmetic avoids problem -Complementary arithmetic: numbers out of range have the opposite sign
Storing Bitmap Images
-Frequently large files -Files size is affected by Resolution, Levels, and data compression
Examples of Protocols
-HTTP: between Web servers and Web browsers -TCP/IP: between computers on the internet and local area networks -SATA: between storage devices and computers -XML, RSS, SIP: new potocols developed to meet new demands
ROM (Read-only-Memory)
-Holds software that is not expected to change over the life of the system such as firmware used for the system BIOS (Basic Input Output System) Examples are maskROM, PROM, EPROM, EEPROM, flash
Current CPU Architectures
-IBM Mainframe Series -Intel x86 Family -IBM POWER/PowerPC Family -ARM Architecture -Oracle SPARC Family
Op Code
-In LMC, represented by a single digit -Operation code -Arbitrary mnemonic
Operand
-In LMC, represented by two digits following the op code -Object to be manipulated -Data or address of data
Flash Memory
-Inexpensive nonvolatile secondary storage -Useful for nonvolatile portable computer storage, digital cameras, tablets, smartphones -Slower rewrite time compared to RAM -Memory READ/WRITE is performed in blocks
Hardware Components
-Input/Output devices -Storage Devices -CPU: Central Processing Unit -Memory
Examples of Hybrid Model of Computing
-Instant messaging -Skype -Google Drive
Little Man Computer (LMC)
-LMC model is a very simple example that accurately represents the architecture and operations of a real computer -Based on Von Neumann architecture -Stored program concept, memory, instructions, and operations -Uses only decimal and positive numbers -100 mailboxes (to hold 3 digit numbers), input tray, output tray, instruction location counter (ILC), ILC incrementor switch, reset switch, simple calculator, and a little man
Traditional Modern Architectures
-Large number of specialized instructions were rarely used but added hardware complexity and slowed down other instructions -Slow data memory access could be reduced by increasing the number of general purpose registers -Using general registers to hold addresses could reduce the number of addressing modes and simplify architecture design -Fixed-length, fixed-format instruction words would allow instructions to be fetched and decoded independently and in parallel. This is not easy with variable length instructions -No upward compatible or compatible between different machines
How LMC works
-Load program into memory -Instructions stored in mailboxes starting at 00 -LM performs an instruction --Looks at the ILC --Goes to the mailbox specific to the address in the ILC --Performs the operation specified by the instructions in the mailbox --Increments the ILC or updates the ILC with a new address specified by a particular instruction -Puts data into In Basket
PNG (Portable Network Graphics)
-Losslesly-compressed alternative to GIF -Can store up to 48 bits of color per pixel -Can also store transparency percentage values and color correction factor for monitor or printer -More efficient compression algorithm than GIF
Floating Point Format
-Mantissa: Sign-digit in sign-magnitude format -Assume decimal point located at beginning of mantissa - generally before a nonzero # -Format: 0.MMMMMx10^EE
Memory Enhancements
-Memory access is slow compared to CPU -Methods to improvement memory access: Wide Path Memory Access, Memory Interleaving, Cache Memory
CPU and Memory
-Memory and CPU are physically and functionally separate Units -Every instruction executed by the CPU requires memory access -Instructions are executed electronically using Boolean algebra -Primary memory holds program instructions and data -Data is moved from secondary storage to primary memory for CPU execution -BUS - Interconnection between various components of CPU, memory, and I/O devices
Unicode
-Most common 16-bit form representing 65,536 characters -ASCII Latin-I subset of Unicode (values 0 to 255 in Unicode table) -Multilingual: defines codes for nearly every character-based alphabet and composite characters for vowels and syllabic clusters required by some languages. -Allows software modifications for local languages
DRAM (Dynamic Random Access Memory)
-Most common, cheap, less electrical power, less heat, smaller space -Volatile: contents are lost when power is turned off -Data must be refreshed (recharged with power) 1000's of times each second - extra circuitry
Choice of Representation
-Must be consistent with rules of normal arithmetic -If we complement the value twice, it should return to its original value
Signed-Integer Representation
-No obvious direct way to represent the sign in binary notation Options: -Sign-and-Magnitude representation -2's complement (most common)
Memory Capacity and Addressing the Limitations
-Number of bits in the MAR -Size of the address portion of the instruction -Addressing Modes : Alternative ways of extending the address specified by an instruction so that more addresses are reached than the size of address field in the instruction allows -In reality, size of the memory is limited by physical space or time required to access large memories
Sampling Rate
-Number of times per second that sound is measured during the recording process -Height of each sample saved as: 8-bit number for radio-quality recordings, 16-bit number for high fidelity recordings, 2x16 bits for stereo
Cloud Computing
-Off-site storage facilities for an organization -Software as a service (SaaS): applications run on a server or processing may be divided on server and client -Platform as as service (PaaS): tools for a developer to create and run applications on cloud platform -Infrastructure as a service (IaaS): cloud-based hardware emulation of virtual machines and networking
Superscalar Issues
-Out-of-order processing - dependencies (hazards) -data dependencies -Control dependencies - flow or branch dependencies -Separate bank of registers hold results from speculative instructions until previous instructions are complete, and results are transferred to actual locations in correct order or thrown away -Branch history table to aid in branch prediction -Small dedicated memory internal to CPU -Register access conflicts -Prevented by using register alias tables (also called rename or logic registers)
CISC (Complex Instruction Set Computer)
-Overdesigned assembly language to support high level programming languages -Attempted to minimize number of instructions per program vs number of cycles per instruction -Complex instructions -Few general purpose registers -many addressing methods to access registers or memory -Many specialized instructions -Instruction word size = 1-15 bytes
Superscalar Processing
-Process more than one instruction per clock cycle -Separate fetch and execute cycles as much as possible -Buffers for fetch and decode phases -Parallel execution units -Execution units have pipeline capability -Timeline of individual instruction is unaffected -Complicated Design
Hardware
-Processes data by executing instructions. -Provides input and output -control input, output, and storage components
Cloud Computing Risks
-Quality of security is critical -Outages or loss of connectivity may prevent users from working -Requires long-term commitment and viability of cloud services -Changes in operating procedures can result in data loss
Compression
-Represents data in a more compact form -recoding data so that it requires fewer bytes of storage space
Video Images
-Requires massive amount of data -Options for reducing file size includes decreasing size of image, limit number of colors, reduce frame rates -Video format determined by a codec -Best known codec standards: MPEG-2, MPEG-4, and H. 264 -Data may be compressed to 10-60 MB or less of data per minute -Container serves as a superstructure to encode, decode, hold, and stream the video
Wide Path Memory Access
-Retrieve multiple bytes instead of 1 byte at a time -Widen data bus path (64 bit on modern systems -Larger MDR -CPU separates the bytes and processes them -Group of instructions can be retrieved in parallel, and passed directly to Execution unit for parallel execution -Complex circuitry -Extra bytes may not be used
CPU Features and Enhancements
-Separate Fetch/Execute Units -Pipelining -Multiple, Parallel Execution Units -Scalar Processing -Branch Instruction Processing
Branch Problem Solutions
-Separate pipelines for both possibilities -Probabilistic approach for prediction -Instruction reordering (superscalar processing) -Can minimize delay -Can use parallel pipelines for simultaneous execution of multiple instructions -Can complicate the electronic design circuitry
Advantages to Peer-to-Peer Computing
-Shares files between personal computers -Internet file sharing
Complementary Representation
-Sign of the number does not have to be handled separately -Consistent for all different signed combinations of input numbers -Two methods: Radix: value used is the base number Diminished radix: valued used is the base number minus 1
Cache Memory
-Small, high speed memory access by CPU -Based on the principle of locality of reference: at any given time, most memory references will be confined to a small region of memory
Concept of Registers
-Small, permanent storage locations within the CPU used for a particular purpose -Registers hold data, address, or instruction temporarily -Data storage, manipulation, calculations, or flags -Manipulated directly by the Control Unit -Wired for specific function -Size in bits or bytes
Register Operations
-Stores values from other locations (registers and memory) -Addition and subtraction -Shift or rotate data -Test contents for conditions such as zero or positive -Special provisions like increment, complement, clear, set or reset flags
RISC (Reduced Instruction Set Computer)
-The amount of work any single instruction accomplishes is reduced compared to CISC; reduce number of cycles per instruction -Power efficient, seen in portable electronics -Simpler instructions -Many general purpose registters -Single register-based addressing mode -Fixed length instruction word = 32 bits
Van Neumann Architecture (1945)
-The organization of a computer is made up of CPU (CU + ALU) and Memory -Stored program concept -Memory is addressed linearly - every location has a unique sequential address -Memory is addressed by location number without regard to content -Instructions are executed sequentially unless some event (or instruction) causes a branch -
Lossy
-Trades off data degradation for file size and download speed -Much higher compression ratios, often 10 to 1 -Examples: JPEG, MP3
Current CPU Architecture Designs
-Traditional modern architectures -Complex Instruction Set Computers (CISC) -Reduced Instruction Set Computers (RISC)
Audio Data
-Transmission and processing requirements less demanding than those for video -Analog Waveform: digital representation of sound =Analog sound converted to digital values by A-to-D converter -MIDI (Musical Instrument Digital Interface): instructions to recreate or synthesize music
Fetch-Execute Cycle
-Two-cycle process because both instructions and data are in memory -Every instruction must be fetched from memory before excute -Most of the process involves data movement from one register to another
Sign-and-Magitude
-Use left-most bit for sign (0 = +; 1 = -) -Total range of integers still the same, only half are positive and the other half are negative -Magnitude of largest integer is half as large
Bitmap Images
-Used for realistic images with continuous variations in shading, color, shape, and texture -Preferred when image contains large amount of detail and processing requirements are fairly simple Input devices -Scanners -Digital cameras and video captures devices -Graphical input devices like mice and pens -Managed by photo editing software or paint software -Each individual pixel, or picture element, in a graphic is stored as a binary number
Visual Data
-Videos, photographs, bio metric images, figures, icons, drawings, charts, and graphs Two approaches: -Bitmap or raster images of photos and paintings with continuous variations -Object or vector images composed of graphical objects like lines and curves defined geometrically Difference include: -Quality of the image -Storage space required -Time to transmit -Ease of modification -Processing required
8 bits
1 byte
4 bytes
1 word
LMC Instruction Set
1xx - Add 2xx - Subtract 3xx - Store 5xx - Load 6xx - Jump 7xx - Branch on 0 8xx - Branch on Positive 901 - Input 902 - Output 000 - Halt/Coffee Break
Content
A 3 digit number that hold instructions or data
Major Components of CPU
ALU(arithmetic logic unit) and CU (control unit) Subcomponents: Memory Management Unit and I/O interface
Floating Point Calculations
Addition and Subtraction Exponent and Mantissa treated separately -Exponents of number must agree -Mantissa overflow requires exponent again shifted right Multiplication and Division -Mantissa: Multiplied or Divided -Exponents: added or subtracted
Memory Address Register (MAR)
Address or memory location
Program Counter Register (PC)
Also called instruction pointer (IP) Holds the address of current or next instruction
Alphanumeric Codes
Arbitrary choice of bits to represent characters -Consistency: Input and output devices must recognize same code -Value of binary number representing character corresponds to placement in the alphabet Representing Characters -ASCII: most widely used coding scheme -EBCDIC: IBM Mainframe (legacy) -Unicode: developed for worldwide use
ALU
Arithmetic/logic unit -Performs arithmetic and Boolean logical calculations -Hold data temporarily
Decimal
Base 10
Hexadecimal
Base 16; 16 digits: 0-F
Binary
Base 2; two digits: 0 & 1
Octal
Base 8; 8 digits: to 7
Sources of Data
Binary Input -Begins as discrete input -Keyboard generates a binary number code for each key Analog -Continuous data such as sound or images -Requires hardware to convert data into binary numbers
Organization of Cache
Blocks -Also called Cache Lines -Unit of transfer between storage and cache memory -Contain tags: pointer to location in main memory Cache Controller (hardware) -Manages the cache -Checks tags to determine if it is in the cache
Bus
Bundle of wires that carry signals and power between different components
Advantages of Client Server Architecture
Centralization of services permits: -easier administration of services by IT professionals -easier availability and location by users -consistency of resources, such as files and data, can be managed and assured -more efficient and cost-effective hardware procurement through purchasing a small number of very powerful computers
Multiprocessing
Challenges -Larger and more complex system -Overhead in instruction distribution -Conflict resolution for shares resources -More power consumption Advantages -Increase computational power -Increased throughput -Can reduce stress and wear on components by operating at lower clock speeds
Communication Protocol
Communication protocol is a set of rules that govern data communication. It represents an agreement between the communicating devices. Without a protocol two devices can only be connected but not communicated, just as a person speaking French cannot be understood by a person who speaks only Japanese.
Data Formats
Computers and computer-based devices -Process and store all forms of data in binary format Human communication -Includes language, images, and sounds Data Formats -Specifications for converting data into computer-usable forms -Define the different ways human data may be represented, stored, and processed by a computer
CU
Control Unit -Controls processing of instructions -Controls movement of data within the CPU -Accesses program instructions based on Program Counter (PC) and issues commands to the ALU
Virtualization
Created, simulated, or carried on by means of a computer or computer network
Memory Data Register (MDR)
Data retrieved from or stored to memory based on MAR
Metadata
Data that describes or interprets the meaning of data
Disadvantages of Peer-to-Peer Computing
Difficult to establish centralized control of services -Difficult to locate services -Difficult to synchronize versions of files or software Difficult to secure network from unauthorized access and from viruses
BCD
Direct Binary equivalent of decimal integer
Internal Data Representation
Ease of manipulation -Processing simple audio vs. high-fidelity sounds Standardization -Proprietary formats for storing and processing data De facto standards: proprietary standards based on general user acceptance
Symmetrical Multiprocessing
Every CPU -has equal access to resources -determines what to run using a standard algorithm -Is equally busy Disadvantages -Resource conflicts, complex implementation Advantages -High reliablility -Flexibilty -Balanced workload -Fault tolerant - critical task dispatched to all CPUs simultaneously -Single CPU system doesn't call system failure
SRAM (Static Random Access Memory)
Faster and more expensive than DRAM -Volatile -Small amounts are often used in cache memory for high-speed memory access -Lower bit density
Separate Fetch Execute Units
Fetch Unit -Instruction fetch unit -Instruction decode unit -Several instructions are fetched in parallel and held in a buffer until decoded and executed -Instruction Pointer (IP) register holds instruction location of current instruction being processed Execution Unit -Receives instructions from the decoder unit -Appropriate execution unit services the instruction
Data
Fundamental representation of facts and observations
I/O Interface
Handles all input and output requests
Special Purpose Registers
Includes Program Counter Register (PC), Instruction Register (IR), Memory Address Register (MAR), Memory Data Register (MDR), and Status Registers
Lossless
Inverse algorithm restores data to exact original form (examples: GIF, ZIP)
Fetch
Little Man finds out what instruction he is to execute -Go to ILC -Read the value (address) in ILC -Go to the appropriate mailbox with that address -Read the 3 digit # stored in the mailbox
Execute
Little Man performs the work -Depends on the instruction that is fetched -Performs the task required by the instruction -Increments the ILC
Mailboxes
Mailbox addresses are consecutively starting at 00 and ending at 99
Master-Slave Multiprocessing
Master CPU -Manages the system, resources and scheduling -Assigns tasks to slave CPUs Advantages -Simplicity -Protection of system and data Disadvantages -Master CPU becomes a bottleneck -Lower efficiency - Slave CPU has to wait if Master CPU is busy -Reliability issues - if master CPU fails entire system fails -Flexibility
Multiprocessing Configurations
Master Slave Multiprocessing and Symmetrical Multiprocessing (SMP)
Interface Unit
Moves instructions and data between the CPU and other hardware components
Boolean Logic
NOT : Output is inverted AND: Output is 1 only if both inputs are 1 OR: Output is 1 if either or both inputs are 1 XOR: Output is only 1 if ehter inputs are 1 NAND, NOR, and XNOR: Complements of AND, OR, and XOR, respectively.
Underflow
Number is too small for the specific representation
Data Types: Alphanumeric
Numbers and characters both entered as ordinary characters, the the computer converts them into numbers for calculation or treats characters as processed text
Flags
One bit boolean variable to track conditions like arithmetic carry and overflow, power failure, internal computer error
Floating Point Format Specification
Predefined format, usually in 8 bits -Increased range of values (two digits of exponent) traded for decreased precision (two digits of mantissa)
MP3
Predominant digital audio data format -Derivative of MPEG-2 (ISO Moving Picture Experts Group) -Uses psycho acoustic lossy compression techniques to reduce storage requirements
Range of possible numbers
R = B^k R = range B = base k = number of digits
Internal Data Representation
Reflects the -Complexity of input source -Type of processing required Trade-offs -Accuracy and resolution -Compactness (storage Transmission -More data required for improved accuracy and resolution
Communications
Sharing data and processing among different systems
Pixel
Short for picture element, is a small area with a associated coordinate location
Status Registers
Status of CPU and currently executing program
Instruction Cycle
Steps required to perform an instruction are fetch and execute
Instruction Register (IR)
Stores instruction fetched from memory
Taking the Complement
Subtracting a value from a standard basis value
Memory Management Unit
Supervises fetching instructions and data from memory
Compression ratio
The amount file size is reduced
System Architecture
The fundamental properties, and the patterns of relationships, connections, constraints, and linkages among the components and between the system and its environment are know collectively as the architecture of the system.
Levels
The number of bits for displaying shades of gray or multiple colors
Base
The number of different digits, including zero, in the number system
Resolution
The number of pixels per inch or the amount of detail affecting clarity and sharpness of an image
RAM (Random Access Memory)
Two types: Volatile and non-Volatile Volatile: DRAM (Dynamic RAM) and SRAM (Static RAM) Non-Volatile: ROM (Read-only-Memory) and Flash Memory
Registers
Use of Registers -Scratchpad for currently executing program -Holds data needed quickly or frequently -Stores information about status of CPU and currently executing program -Address of next program instruction -Signals from external devices
Multiprocessing - More CPUs
Why? -Increase the processing power of a system -Parallel processing through threads: independent segments of a program that can be executed concurrently Multiprocessor system -Tightly coupled - share system resources Multicore Processors -When CPUs are on a single integrated circuit