Computer architecture
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.
It can be defined as the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.
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
[change | change source]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 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.
- The ARM, made by Arm Holdings, and popularized by handheld and low-power devices such as smartphones.
- The AVR, made by Atmel and popularized by the Arduino Uno.
Related pages
[change | change source]References
[change | change source]- ↑ John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach (Third ed.). Morgan Kaufmann Publishers, Inc. ISBN 1558605967.
- ↑ 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 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 Archived 2008-09-15 at the Wayback Machine
- 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.
Other websites
[change | change source]- http://www.cs.wisc.edu/~arch/www
- http://www.cs.wisc.edu/arch/www/people.html
- 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