1.1 Classification of computers and their characteristics
Computers are generally divided into three categories: Personal Computers Servers Embedded Computers
Personal Computer: Serving a Single User
Server: Serving multiple users running large programs
Embedded computer: A computer embedded in other equipment that executes a program or set of programs that have been predetermined
1.2 Post-PC Era
Personal Mobile Device PMD: Smartphone, Tablet, etc.
1.3
In the 1960s and 1970s, the main limitation of computer performance was memory
Multicore Microprocessor: A microprocessor with multiple cores on one integrated circuit
The performance of a program mainly depends on: 1. The algorithm 2. The compiled program 3. The effectiveness of the machine instructions executed by the computer
2 Eight Great Ideas of Computer System Architecture
2.1 Design for Moore's Law
Moore's Law The number of chips on an integrated circuit will double every 18-24 months
2.2 Using abstract design
The upper layer can only see the abstract model of the lower layer and cannot see the details
2.3 Parallelism
computer parallel operation
2.4 Pipeline
A special case of parallelism
2.5 Prediction
Use forecasting when the forecast is wrong and the cost is small and the forecast accuracy is high
2.6 Memory Hierarchy
Small and fast go up, big and slow down
2.7 Using Redundancy
Add redundant components to improve system reliability
2.8 Accelerating high probability events
Accelerating high-probability events is far more effective than optimizing low-probability events
3 Getting Started with Program Concepts
Application software system software hardware
The most important thing about the system software is: the operating system and the compiler
Operating system: The interface between user software and hardware provides users with various services and monitoring functions
The main role of the operating system: handle simple input and output, allocate memory and external memory, and provide services for multiple applications to share computer resources
Operating system: a monitoring program that manages computer resources in order to make the program work better on the computer
Compiler: A program that compiles a high-level language into machine language that a computer can understand and obey
4 Getting Started with Hardware Concepts
5 Classic Components: I/O Memory Calculator Controller
The arithmetic unit and the controller are also called the processor (CPU)
The processor fetches instructions and data from memory
Input puts data into memory Output fetches data from memory
The controller sends command signals to the datapath memory input and output components
The basic hardware of any computer must be completed: input data output data processing data storage data
Integrated Circuit: Also called a chip, a device that connects dozens or even millions of transistors
Central processing unit (Central process unit): CPU also called processor includes data path (calculator) and controller
Datapath: The part of the processor that is responsible for logical operations
Controller: The part of the processor that directs the datapath memory and I/O devices according to program instructions
DRAM: dynamic random access memory
Memory: composed of multiple DRAMs to store running programs and data required by running programs
Another storage device is used inside the processor (cpu): the cache (cache)
Cache: SRAM technology is faster but less integrated than DRAM SRAM
The cache is small and fast as a memory buffer
Instruction Set Architecture: Also called architecture is an abstract interface built by low-level software and hardware that contains all the information needed to write a machine language that runs correctly. It includes instructions, registers, storage, access, and I/O.
Application binary interface: The instructions of the user part plus the operating system interface called by the application programmer define the computer standard for binary level portability
Volatile storage: DRAM stores data only when powered up
Non-Volatile Storage: Memory that retains data even if the TV is turned off
Volatile memory is also called main memory Non-volatile memory is called secondary memory
Secondary memory forms the lower level below the memory hierarchy
Disk: Also called hard disk, a non-volatile memory used to store data
Flash memory: Non-volatile semiconductor memory price performance is between DRAM and hard disk
5 Manufacturing Technology of Processors and Memory
Transistor: a simple switch controlled by an electrical signal
VLSI: Circuits made up of hundreds of thousands to millions of transistors
6 Performance
Response time: also known as execution time is the total time it takes for a computer to complete a task, including hard disk access, memory access, IO activity, operating system overhead, and CPU execution time
Throughput: Also known as bandwidth, it indicates the number of tasks completed per unit of time
Anything that affects the response time will affect the throughput rate. When the task volume is too large and the processing rate is slow, resulting in queuing, the throughput rate will affect the response time.
Maximize performance: Minimize response time performance = 1/response time
6.2 Measure of performance
CPU execution time: referred to as CPU time to perform a task and the time spent on the CPU
CPU execution time includes: user CPU time system CPU time
User CPU time: CPU time spent in the program itself
System CPU time: CPU time spent on the operating system for executing programs
System Performance: Response time of no-load system
CPU Performance: Indicates the user's CPU events
Computers use clocks to drive various things that happen in the hardware
The time between clocks is called the clock period, the inverse of the clock period is the clock frequency, and the clock period is usually a constant
Clock Length: The length of time that each clock cycle lasts
6.3 CPU performance and its influencing factors
CPU execution time of a program = CPU clock cycles of a program * clock cycle time
6.4 Performance of Instructions
The average number of clock cycles required per instruction is called CPI
CPU Clock Cycles = Instructions * CPI
CPU execution time of a program = number of instructions of a program * CPI * clock cycle time
10 Fallacies and Pitfalls
MIPS The time required to execute millions of instructions The execution speed expressed by MIPS
MIPS = number of instructions / (execution time * pow(10,6) )
MIPS = Number of Instructions / (Number of Instructions * CPI * Clock Cycles * pow(10,6)) = Clock Frequency / (CPI * POW(10,6))