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.
Some practitioners of computer architecture use more fine subcategories:
- Macroarchitecture: Architectural layers that are more abstract than microarchitecture, for example 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. For example, signals that the processor is expected to emit during executing an instruction.
Examples of computer architecturesEdit
- ISCA: Proceedings of the International Symposium on Computer Architecture Archived 2006-05-07 at the Wayback Machine
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture Archived 2005-05-28 at the Wayback Machine
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems Archived 2006-05-09 at the Wayback Machine
- ACM Transactions on Computer Systems
- IEEE Computer Society
- Microprocessor Report
- Hennessy and Patterson (2006). Computer Architecture: A Quantitative Approach (Fourth ed.). Morgan Kaufmann. ISBN 978-0-12-370490-0.
- Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 0-13-148521-0.
- ESCAPE Archived 2008-04-30 at the Wayback Machine - 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 Archived 2007-10-13 at the Wayback Machine - 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 Archived 2007-04-19 at the Wayback Machine