This is the 9th day of my participation in the August Wen Challenge.More challenges in August
1.1 Development history of computer
1.1.1 Hardware development of computers
Development and changes
-
First generation: the age of vacuum tubes
-
The characteristics of
- Code using machine language
- Small capacity, large volume, high cost, low performance
-
-
Second generation: transistor age
-
The characteristics of
- Speed up
- The software uses a high-level language
- Form an operating system prototype
-
-
The third generation: small and medium scale integrated circuit era
-
The characteristics of
- Use semiconductor memory
- Operating systems continued to evolve, with the emergence of time-sharing operating systems
- High-level languages began to develop
-
-
Fourth generation: very large scale integrated circuit era
-
The characteristics of
- The advent of microprocessors
- Parallelism, pipelining, caching, virtual storage
-
Component update changes
-
Moore’s law
- Transistors double in 18 months
-
Semiconductor memory continues to evolve
-
Microprocessors continue to evolve
1.1.2 Computer software development
For the machine
- Machine language
- Assembly language
Problem oriented high-level language
- FORTRAN–>PASCAL–>C++–>JAVA
1.1.3 Classification and development direction of computers
Electronic computer
- Electronic analog computer
- Electronic digital computer
Digital computer
- Special purpose computer
- General purpose computer
General purpose computer
- Mainframe, mainframe, medium machine, minicomputer, microcomputer, single chip microcomputer
Classification by instruction and data flow
-
Single Instruction and Single Data Stream (SISD)
- Von Neumann structure
-
Single Instruction and Multiple Data Streams (SIMD)
- Array memory and vector memory
-
Multiple Instruction and Single Data Stream (MISD)
- There is no
-
Multiple Instruction and Multiple Data Flow (MIMD)
- Multiprocessor and multicomputer systems
1.2 Computer System Structure (I)
1.2.1 Computer system structure
hardware
software
Function implementation
-
1. Frequent use of functions 2. Low hardware implementation cost
- In summary, the hardware implementation is used
-
The characteristics of
- Hardware implementation is more efficient than software implementation
1.2.2 Basic composition of computer hardware
Early Von Neumann machine
-
Composition: arithmetic unit, memory, controller, input device, output device
-
Instructions and data coexist in memory and are accessed by address
-
Instructions and data are constructed in binary code
-
Instruction composition: opcode and address code
- Opcodes represent operations
- The address code represents the location where the operand is stored
-
Instructions are stored and executed sequentially (certain conditions can change the execution order)
-
An I/O device that transmits data through an ARITHMETIC unit and memory (memory centric in modern times)
-
“Stored program” : The pre-entry of instructions in binary code into the computer’s main memory. Then the first instruction of the program is executed according to the first address stored therein, and the other instructions are executed in the prescribed order of the program until the end of the program execution
Modern computer architecture
- Memory-centric
- I/O operations as far as possible to bypass the CPU, I/O devices and memory directly completed, thus improving the operation efficiency
1.2.3 Classification of computer software
Classify by function
-
The system software
- Operating system (OS), database management system (DBMS), language processing program, distributed software system, network software system, standard library program, service program
-
Application software
- Programs to solve a problem: scientific calculation programs, engineering design programs, data statistics and processing programs
Sort by language
-
Machine language (binary code language)
- Machine language is the only language that computers can directly recognize and execute
-
Assembly language
- Use English words instead of binary instruction codes
-
A high-level language
-
Language that is easy for programmers to use
- High-level language –> Assembly language –> Machine language or high-level language –> machine language
-
\