Computer architecture
Appearance
ebola
Computer architecture includes at least three main subcategories:[1]
- Instruction set architecture, or ISA, is the abstract model of a computing system that is seen by a machine language (or assembly language) programmer, including the instruction set, memory address modes, processor registers, and address and data formats.
- Microarchitecture, also known as Computer organization is a lower level, a detailed description of the system that is sufficient for completely describing the operation of all parts of the computing system, and how they are inter-connected and inter-operate in order to implement the ISA.[2] The size of a computer's cache for instance, is an organizational issue that generally has nothing to do with the ISA.
- System Design which includes all of the other hardware components within a computing system such as:
- System interconnects such as computer buses and switches.
- Memory controllers and hierarchies.
- CPU off-load mechanisms such as direct memory access.
- Issues like multi-processing.
Once both ISA and microarchitecture has been specified, the actual computing system needs to be designed into hardware. This design process is called implementation. Implementation is usually a hardware engineering design process.
Implementation can be further broken down into three but not fully separate pieces:
- Logic Implementation: Design of blocks defined in the microarchitecture, mainly, at the register-transfer and gate levels.
- Circuit Implementation: Transistor-level design of basic elements (gates, multiplexers, flip-flops, etc.) as well as of some larger blocks (ALUs, caches etc.) that may be implemented at this level, or even at a lower physical level, for performance reasons.
- Physical Implementation: Physical circuits are drawn out, the different circuit components are placed in a chip floor-plan or on a board and the wires connecting them are routed.
For CPUs, the entire implementation process is often called CPU design; it can also be a family of related CPU designs, such as RISC and CISC.
More sub-definitions
Some practitioners of computer architecture use more fine subcategories:
- Macroarchitecture: An architectural layers that are more abstract than microarchitecture, e.g. ISA.
- Instruction Set Architecture (ISA): As defined above.
- UISA (Microcode Instruction Set Architecture): A family of machines with different hardware level microarchitectures may share a common microcode architecture, and hence called a UISA.
- Assembly ISA: A smart assembler may convert an abstract assembly language common to a group of CPUs into slightly different machine language for different CPU implementations.
- Programmer Visible Macroarchitecture: Higher level language tools such as compilers may define a definite interface to programmers using them, abstracting differences between underlying ISA, UISA, and microarchitectures; for example the C, C++, or Java standards define three different definite programming interfaces.
- Pin Architecture: The set of functions that a microprocessor is expected to provide, from the point of view of a hardware platform. E.g. signals that the processor is expected to emit during executing an instruction.
Examples of computer architectures
- The x86, made by Intel and AMD.
- The SPARC, made by Sun Microsystems and others.
- The PowerPC, made by Apple, IBM, and Motorola.
Other pages
References
- ↑ John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach (Third Edition ed.). Morgan Kaufmann Publishers, Inc. ISBN 1558605967.
{{cite book}}
:|edition=
has extra text (help) - ↑ Phillip A. Laplante (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. pp. 94–95. ISBN 0849326915.
- ISCA: Proceedings of the International Symposium on Computer Architecture
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems
- ACM Transactions on Computer Systems
- IEEE Computer Society
- Microprocessor Report
- Hennessy and Patterson (2006). Computer Architecture: A Quantitative Approach (Fourth Edition ed.). Morgan Kaufmann. ISBN 978-0-12-370490-0.
{{cite book}}
:|edition=
has extra text (help) - Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 0-13-148521-0.
Other websites
- http://www.cs.wisc.edu/~arch/www
- http://www.cs.wisc.edu/arch/www/people.html
- ESCAPE - an easy-to-use, interactive portable PC-based simulation environment aimed at the support of computer architecture education
- http://www.codeproject.com/useritems/System_Design.asp - This approach allows beginners to easily break and design complex software systems.
- Technical University of Catalonia, Department of Computer Architecture
- The von Neumann Architecture of Computer Systems