Computer Architecture

System structure of computer software and hardware
open 2 entries with the same name
Collection
zero Useful+1
zero
Computer architecture refers to the general term of computer theory components, computer basic working principles and theories divided according to different attributes and functions. The computer theory component is not only related to a certain actual hardware, such as the storage part register , memory, hard disk, etc.
Foreign name
Computer Architecture
Content
System structure of software and hardware
Properties
8 attributes
Development stage
4 major stages
Division basis
Properties, functions

brief introduction

Announce
edit
Computer architecture is the attribute of the computer seen by the programmer, that is, the logical structure and functional characteristics of the computer, including its various hardware components and Software components The relationship between. For computer system designers, computer architecture refers to the basic research of computers design idea And the resulting logical structure; For programmers Functions of the system Description (e.g Instruction set , preparation method, etc.) [1]

Basic concepts

Announce
edit
Computer architecture refers to the system structure of software and hardware, which has two meanings: one is the system structure seen from the perspective of the programmer, which is to study the conceptual structure and functional characteristics of the computer system, and relates to the characteristics of software design; The second is the system structure seen from the perspective of the hardware designer, which is actually the composition or implementation of the computer system (see Computer Organization ), mainly focusing on Price performance ratio Of rationality Adam et al( External characteristics )In 1964, he first proposed the concept of computer system structure [2]
Conceptual structure and functional characteristics, which are computer properties seen from the perspective of the programmer. It includes data representation, addressing mode, calculation of these data and control of the execution of these operations in the machine (i.e. instruction system). For general-purpose machines, it generally includes data representation, addressing mode, register definition, instruction system, interrupt mechanism, machine working condition Definition and state switching of, machine level input and output structures, and support for information protection, etc [2]
Computer architecture mainly studies the function allocation of software and hardware Interface Determination of. Since the 1970s, remarkable progress has been made in computer software. In terms of performance, speed, price, reliability and organization implementation technique Although there has been a great breakthrough in the past compared with the end of the 1950s, there has been no obvious and breakthrough progress in their system structure. The system structure of most machines is still within the scope of the von Neumann type. The system structure seen by the programmer has not changed much since the late 1950s. For example, for the instruction system, programmers are still basically based on the view of computer system structure in the late 1950s to design much more complex software. Traditional computer Hardware composition and high-level language The serious disconnection with the operating system gives software reliability source program The compilation efficiency and the problem solving efficiency of the system bring adverse effects, which is an important issue to be solved in the computer system structure. The idea of data stream computer system structure, which emerged in the 1970s, combines the command control of traditional computers flow control The method is changed to the control method of data control flow, thus it is possible to automatically exclude the operation relevance To achieve the goal of high parallelism [2]
Computer Architecture
The allocation of computer software and hardware functions should be mainly considered from the realization cost, the impact on speed and other performance requirements, that is, how to improve the performance price ratio through allocation. The hardening or solidification of the basic and general functions of the operating system is conducive to improving the execution efficiency and speed of the operating system and reducing the overhead; However, the function is unstable, that is, it needs to change constantly, and software implementation is conducive to providing due flexibility. Implementation costs include development costs and duplication Production cost The cost of hardware design and repeated production is higher than that of software. The functions suitable for hardware implementation should be stable, commonly used, and relatively small, and the decline in the speed of software implementation will affect the computer system performance Functions that have a greater impact. Hardware implementation is only available for computer systems with large output economic performance [2]

Eight attributes

Announce
edit
Computer Architecture
1. Inside Data representation : Hardware can directly identify and operate data type And format
Addressing mode : Minimum addressable unit, type of addressing mode, address operation
register Organization: operation register Index register Control register Definition, quantity and usage rules of special registers
4. Instruction system: operation type, format, inter instruction ordering and Control mechanism
5. Storage system: minimum Addressing Company, address method Main storage Capacity, maximum addressable space
6. Interrupt mechanism: interrupt type, interrupt level, and Interrupt response Mode, etc
7. I/O structure: I/O Connection mode processor / storage And I/O equipment Data exchange Mode and data Exchange process Control of
Information protection : Information protection mode, hardware information protection mechanism.

research contents

Announce
edit
Conceptual structure of computer and Functional characteristics , which means that in the eyes of the system programmer computer system The properties of the computer system as seen by the machine designer Logical structure In short, it is a detailed description of the relationship between the various parts that make up a computer. It is a comprehensive concept of hardware, software, algorithm and language. The term computer architecture is also called Computer system structure It has developed into a wide range of subjects, and has become a major required course Its main research contents are as follows [3]
one Command system include Machine commands Operation type, format, addressing, etc.
two storage system Include multiple levels Storage hierarchy Virtual memory Structure Cache memory Structure and Storage protection Etc.
three I/O system Including channel structure Input/output processor Structure, etc.
four central processing unit Structure includes Von Neumann structure , non von Neumann structure, overlapping structure, flowing structure parallel processing Structure, etc.
five Multi computer system Including interconnection technology, multiprocessor Structure Distributed processing Structure, computer network structure Etc.
six Man machine communication Contact includes human-machine interface Computer reliability usability and Maintainability (These three are called RAS technology) Fault tolerance technology fault diagnosis Etc.
In addition, we also study computers hardware description language Computer system performance evaluation And so on.

development history

Announce
edit
Computer Architecture
Computer architecture has gone through four different Development stage

Phase I

Before the mid-1960s, it was the early age of the development of computer architecture. In this period, general hardware has been quite common, but software is specially written for each specific application. Most people believe that software development It's something that doesn't need to be planned in advance. At this time, the software is actually a small program, and the programmer and user of the program are often the same person (or the same group). Due to its small scale, the program is relatively easy to write, and there is no systematic method to manage the software development work. This individualized software environment Software design is often just a vague process implied in people's minds, and there is no other document save except the program list.

Phase II

From the mid-1960s to the mid-1970s, it is the second generation of computer architecture development. In the past 10 years computer technology Great progress has been made. Multiprogramming Multi-user system Introduced human-computer interaction The new concept of Computer application Of New realm The cooperation of hardware and software has reached a new level. real-time system Ability to get from multiple information source Collect, analyze, and transform data so that process control can take place in milliseconds instead of minutes. on-line Storage technology The progress of the first generation Database management system The occurrence of. An important feature of this stage is the emergence of "software workshops", where product software is widely used. However, the "software workshop" basically still follows the early individualization Software development method With the increasing popularity of computer applications, the number of software has expanded rapidly. In the program Runtime Errors found must be corrected; When users have new requirements, they must Modify program When the hardware or operating system is updated, it is usually necessary to modify the program to adapt to the new environment. All of the above software maintenance Work, consuming resources at an astonishing rate. What's more, the individualization of many programs makes them ultimately unmaintainable. Software Crisis ”So it began to appear. 1968 North Atlantic Treaty Organization Of Computer scientist stay Federal Germany An international conference was held to discuss the topic of software crisis, which was formally proposed and used“ software engineering ”This term, a new engineering discipline was born.

Phase III

The third generation of computer architecture development began in the mid-1970s and spanned a full decade. In the past 10 years, computer technology has made great progress. distributed system It greatly increases the complexity of the computer system WAN Broadband Digital communication As well as the increasing demand for "instant" data access, software developers have higher requirements. However, in this period, software is still mainly used in industry and academia, and there are few personal applications. The main feature of this period is that microprocessor And microprocessors have been widely used. "Intelligent" products with microprocessor as the core can be seen everywhere. Of course, the most important intelligent products are personal computer In less than 10 years, personal computers have become a popular commodity.

Phase IV

The fourth generation of computer architecture development began in the mid-1980s and has continued to the present. At this stage, people feel the comprehensive effect of hardware and software. Powerful desktop, LAN and WAN , which has become the current mainstream in combination with advanced application software. Computer architecture has rapidly changed from centralized host environment to distributed Client /Server (or browser/server) environment. The worldwide information network provides conditions for people to conduct extensive exchanges and fully share resources. software industry stay world economy China has occupied a pivotal position. With the progress of the times, new technologies are constantly emerging. Object oriented technology It has rapidly replaced the traditional software development methods in many fields.
The "fourth generation technology" of software development has changed the development of computers in the software industry program The way. expert system And artificial intelligence software finally came out of the laboratory and into practical application, solving a lot of practical problems. application fuzzy logic Of artificial neural network Software, showing pattern recognition And the bright future of anthropomorphic information processing. virtual reality Technology and multimedia system So that the communication with the user can adopt a completely different method. genetic algorithm It is possible for us to develop large-scale parallel Biological computer Software on.

principle

Announce
edit
Computer Architecture
computer Architecture It solves the problems that the computer system needs to solve in general and function Computer composition Computer implementation It's a different concept. An architecture may have multiple components, and a component may also have multiple physical implementations.
computer System structure Logical implementation of, including inside the machine data stream and control flow The composition of and logic design Etc. Its goal is to reasonably combine various components and equipment into a computer to achieve a specific system structure and meet the desired Price performance ratio In general, the scope of computer composition research includes: Data path Width of, determine various operation pairs Features To determine the degree of sharing, determine the dedicated functional components, and determine the Parallelism , design buffering and queuing strategies, design control mechanisms and determine which reliable technologies to use. Physical realization of computer composition. Including processor, main memory and other components Physical structure , device Integration And speed, division and connection of devices, modules, plug-ins and backplanes, design of special devices, and signals Transmission technology , power supply, cooling and assembly technologies and related manufacturing process And technology.

classification

Announce
edit

Flynn classification

In 1966, Michael J. Flynn proposed Instruction flow The parallelism of data streams classifies computer systems and is defined as follows.
Computer Architecture
· Instruction flow : Sequence of instructions executed by the machine
· data stream : Data sequence called by instruction flow, including input data And intermediate results
· Parallelism : Instruction or data Parallel execution Of Maximum possible number.
Flynn classifies computer systems into four categories according to different instruction flow data flow organization modes.
Single instruction stream and single data stream (Single Instruction Stream Single DataStream,SISD)
In fact, SISD is traditional Sequential execution Of Single processor The instruction unit of a computer decodes only one instruction at a time and allocates data to only one operating unit.
Single Instruction Streaming Multiple Data Streaming (Single Instruction Stream Multiple Data Stream, SIMD
Figure 1 Structure of parallel processor
SIMD Represented by the parallel processor, the structure is shown in Figure 1, and the parallel processor includes multiple repeated processing unit PU1~PUn, Controlled by a single instruction unit, they are allocated different data required by each other according to the requirements of the same instruction flow.
Multiple instruction stream and single data stream (Multiple Instruction Stream Single Data Stream,MISD)
MISD structure, which has n processing units to process the same data stream and its intermediate results differently according to the requirements of n different instructions. The output of one processing unit acts as the input of another processing unit.
Multiple Instruction Streams Multiple Data Streams (Multiple Instruction Stream Multiple Data Stream, MIMD
The structure of MIMD refers to a multiprocessor system that can realize full parallel operations, tasks, instructions and other levels, multiprocessor It belongs to MIMD.

Feng's classification

In 1972, Feng Zeyun proposed to use maximum parallelism to classify computer architectures. The so-called maximum parallelism Pm refers to the maximum Binary Number of digits. Set each Clock cycle △ ti The binary digits that can be processed internally are Pi, so the average parallelism within T clock cycles is Pa=(∑ Pi)/T (where i is 1, 2,..., T). The average parallelism depends on the operating degree of the system, and application program Independent, so the average of the system in period T Utilization Is μ=Pa/Pm=(∑ Pi)/(T * Pm). use Rectangular coordinate system A dot in represents a computer system, Abscissa Indicates the word width (N bit), that is, the number of binary digits processed simultaneously in a word; Ordinate Indicates the bit slice width (M bits), that is, the number of words that can be processed simultaneously in a bit slice, then the maximum parallelism Pm=N * M.
From this, four different computer structures are obtained:
① Word serial, bit serial (WSBS for short). Where N=1 and M=1.
② Word parallel, bit serial (WPBS for short). Where N=1 and M>1.
③ Word serial, bit parallel (WSBP for short). Where N>1, M=1.
④ Word parallel, bit parallel (short for WP BP)。 Where N>1 and M>1.

technological innovation

Announce
edit
Computer architecture to Turing machine Based on theory, belonging to Von Neumann architecture In essence, Turing machine theory and von Neumann architecture are one-dimensional serial, while Multi-core processor Is distributed discrete Parallel structure , the mismatch between the two needs to be solved.
First, matching problem between serial Turing machine model and physically distributed multi-core processors. Turing machine model means serial programming model. Serial program It is difficult to use multiple processor cores that are physically distributed to achieve performance acceleration. At the same time, the parallel programming model has not been well promoted and is only limited to Scientific computing Researchers should seek appropriate mechanisms to match serial Turing machine models with physically distributed multi-core processors or narrow the gap between the two to solve the "parallel" problem Programming Difficulty, small serial program acceleration ".
In support of Multithreading In terms of parallel applications, multi-core processors in the future should be considered from the following two directions. The first is to introduce new ones that can better represent Parallelism The programming model of. Because the new programming model supports programmers to explicitly express the parallelism of programs, it can greatly improve performance. For example, the Cell processor provides different programming models to support different applications. The difficulty lies in how to effectively promote the programming model and how to solve it compatibility Problems. The second direction is to provide better hardware support to reduce the complexity of parallel programming. Parallel programs often need to use the lock mechanism to implement Critical resource The programmer must carefully determine the synchronization and mutual exclusion of Lock Because the conservative locking strategy limits the performance of the program, and the precise locking strategy greatly increases the programming Complexity Some researches have made effective exploration in this respect. For example, the Specific Lock Elision mechanism allows to ignore lock operations executed by programs without conflicts, thus reducing the complexity of programming while taking into account the performance of parallel program execution. This mechanism enables programmers to focus on the correctness of the program, without too much consideration of the execution performance of the program. More radical, the Transactional Coherence and Consistency (TCC) mechanism uses multiple memory access operations( Transaction )For the unit Data consistency The problem further simplifies the complexity of parallel programming.
Mainstream business Multi-core Processors are mainly for parallel applications. How to use multi-core to accelerate serial programs is still a problem worthy of attention. his key technology It is to use software or hardware to automatically derive codes or threads that can be executed in parallel on multi-core processors from serial programs. The multi-core accelerated serial programs mainly include Three methods , including Parallel compilers , speculative multithreading, thread based prefetching mechanism, etc. In tradition Parallel compilation Medium, compiler It takes a lot of effort to ensure that there is no data between threads to be partitioned Dependencies Compile time There are a lot of fuzzy dependencies, especially when pointers (such as C programs) are allowed, the compiler has to adopt conservative strategies to ensure the correctness of program execution. This greatly limits the degree of concurrency that serial programs can mine, and also determines that parallel compilers can only be used in a narrow range. In order to solve these problems, people put forward speculative multithreading and thread based prefetching mechanism. However, since this concept was put forward, most of the research in this direction has been limited to the academic community, and only a few commercial processors have applied this technology, and only limited to special application area We think dynamic optimization technique It is possible to conjecture that the combination of multithreading (including thread based prefetching mechanism) is the future Development trend
Secondly, one dimension of von Neumann architecture address space Multi dimension memory access level matching with multi-core processors. In essence, the Von Neumann architecture uses a one-dimensional address space. Uneven data access latency and different copies of the same data on multiple processor cores lead to data consistency problems. The research in this field can be divided into two categories: one is mainly to introduce new access levels. The new memory access level may adopt one-dimensional distributed implementation. A typical example is to add distributed Unified addressing Register network. The feature of global unified addressing avoids the consideration of data consistency. At the same time, compared with traditional high-capacity cache access, registers can provide faster access speed. Both TRIPS and RAW have implemented a similar core register network. In addition, the new access level can also be private. For example, each processor core has its own private memory access space. The advantage is that the data is better divided storage space It is unnecessary to consider data consistency for some local private data. For example, the Cell processor sets a private Data Buffer Another kind of research mainly involves developing new cache consistency protocols. The important trend is to relax the relationship between correctness and performance. For example, it is assumed that the cache protocol will execute relevant instructions before the data consistency is confirmed, thus reducing the impact of long delay memory access operations on the water line. In addition, Token Coherence and TCC adopt similar ideas.
Third, the matching between the diversity of programs and the single architecture. Future applications show diversity. On the one hand, processor evaluation is not limited to performance, but also includes reliability, security and other indicators. On the other hand, different applications also contain different levels of parallelism, even when considering only the pursuit of performance improvement. The diversity of applications drives future processors to have configurable and flexible architectures. TRIPS has made fruitful exploration in this respect, for example, its processor core and on-chip storage system have configurable capabilities, which enables TRIPS to simultaneously mine instruction level parallelism, data level parallelism and instruction level parallelism.
The emergence of new processing structures such as multi-core and cell is not only Processor architecture Milestone events in history also subvert the traditional computing model and computer architecture.
In 2005, a series of computer architectures with profound influence were exposed, which may lay a fundamental foundation for computer architecture in the next decade, at least providing symbolic guidance for processors and even the entire computer architecture. As computing density increases, processors and Computer performance The measurement standards and methods of are changing. From the perspective of application, focusing on mobility and performance has found the most satisfactory combination point, and it is likely to detonate Handset The rapid expansion of. Although handheld devices are relatively popular now Computing power Scalability As for energy consumption, it plays a role that a handheld device should have; On the other hand, performance oriented Server side And desktop side, start to consider reducing Power consumption catch up with Economical society The trend of.
New processing structures such as multi-core and cell
Cell It adapts itself to this change, and it also creates this change itself. Therefore, it emphasizes different design styles from the beginning. In addition to good multiple expansion SPU (Synergistic Processor Unit, Collaborative processing Cell) has good scalability, so it can face both general and special processing, and realize flexible reconfiguration of processing resources. This means that, through proper software control, Cell can cope with various types of processing tasks, and can also simplify the complexity of design.