In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer system. It is the technical drawings and functional description of all design requirements (especially speeds and interconnections), it is how to design and implement various parts of a computer — focusing largely on the way by which the central processing unit (CPU) operates internally and how it accesses addresses in memory.
Computer architecture includes at least three main subcategories:
- 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. 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:
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.
More sub-definitions[change | change source]
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[change | change source]
- 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[change | change source]
References[change | change source]
- John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach (Third Edition ed.). Morgan Kaufmann Publishers, Inc. .
- Phillip A. Laplante (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. pp. 94–95. .
- 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.
- Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall.
Other websites[change | change source]
- 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