Ch01
1. The Computer Revolution
Progress in Computer Technology
Driven by domain-specific accelerators.
Enables novel applications:
Computers in automobiles: reduces pollution, improves fuel efficiency, enables automated driving.
Cell phones: transformative technology in communication and information access.
Human Genome Project: analyzing human DNA sequences for medical and genetic research.
World Wide Web: revolutionizes information access and replaces traditional libraries.
Search Engines: makes information retrieval efficient and widespread.
2. Classes of Computers
2.1 Personal Computers
General purpose, supports a variety of software.
Subjected to cost/performance tradeoffs.
2.2 Server Computers
Used for running larger programs serving multiple users.
Network-based with high capacity, performance, and reliability.
Ranges from small servers to building-sized units.
2.3 Supercomputers
Cost hundreds of millions of dollars.
Utilized for high-end scientific computations (e.g., weather forecasting, weapon research).
Exascale supercomputers: capable of performing quintillion calculations per second (1x10^18).
Small market presence despite high capability.
2.4 Embedded Computers
Found within systems (e.g., cars, TVs) and not typically user-accessible.
Internet of Things (IoT): numerous small devices communicating wirelessly over the internet.
Operating under strict power/performance/cost constraints.
3. The Post-PC Era
Rise of Personal Mobile Devices (PMDs):
Battery-operated, internet-connected devices (smartphones, tablets).
Cloud computing: large data centers known as Warehouse Scale Computers (WSCs) managed by companies like Amazon and Google (50,000+ servers).
Software as a Service (SaaS): software and data delivery over the internet.
4. Understanding Performance
Key Factors Influencing Performance:
Algorithm Efficiency: Determines number of operations executed.
Programming Language and Compiler: Affect number of machine instructions executed per operation.
Hardware (Processor and Memory): Influence execution speed of instructions.
I/O System: Performance of input/output operations impacted by hardware and operating system.
5. Seven Great Ideas in Computer Architecture
5.1 Abstraction
Simplifies design by hiding complexity.
5.2 Performance Improvements
Achieved via:
Parallelism
Pipelining
Prediction and speculative execution
5.3 Memory Hierarchy
Structured to maximize efficiency across storage classes.
5.4 Dependability
Achieved through redundancy in systems.
6. Levels of Program Code
6.1 High-Level Language
Closer to problem domain; aids productivity and portability.
6.2 Assembly Language
Textual representation of machine instructions.
6.3 Hardware Representation
Use of binary digits (bits) for encoded instructions and data.
7. Components of a Computer
7.1 Input/Output Devices
Includes user-interface devices (display, keyboard, mouse).
7.2 Storage Devices
Types include: hard disk, CD/DVD, and flash.
7.3 Network Adapters
Essential for communication with other computers.
8. Technology Trends
Continual evolution in electronics technology reflects increased capacity, performance, and reduced costs.
Historical performance trends:
1951: Vacuum tubes
2013: Ultra large scale integrated circuits with billions of transistors.
9. Moore’s Law
Concept related to the doubling of transistors manufactured approximately every 18 months, introduced by Gordon Moore, co-founder of Intel.
10. Pitfalls in Computer Performance
10.1 Amdahl’s Law
Improvement in one aspect does not guarantee proportional improvement in overall performance, highlights the importance of making common cases efficient.
10.2 MIPS as a Performance Metric
MIPS (Millions of Instructions Per Second) does not consider different ISAs or instruction complexity which can skew performance evaluations.
11. Performance Summary
Essential factors to consider: algorithms, programming languages, compilers, and instruction set architecture.
12. Concluding Remarks
Focus on cost/performance improvements driven by technological advancements and highlight the importance of parallelism for enhancing performance.