Tuesday, 15 May 2012

Computer Architecture

                    "COMPUTER ARCHITECTURE"

In computer science and engineering, computer architecture is the practical art of defining the structure and relationship of the subcomponents of a computer. As in architecting buildings, the definition of an arcitecture can comprise many levels of information.The highest level of the definition conveys the concepts to be implemented, whereas in building architecture this over-view is normally visual, in computer architecture it is primarily logical, positing a conceptual system which would serve a intended purposes. In both instances (building and computer), there are many levels of detail needed to completely specify a given implementation. As in building architecture, some of these details are often implied, as they are regarded as common practice.
While the history of computer design is complex, perhaps the best known early example of an architectural definition of a computer is that of John VonNeumann, who, in 1945, in a paper entitled "First Draft of a Report on the EDVAC", described an organization of logical elements which IBM used to design the IBM 701, the company's first commercial stored program computer, first delivered in early 1952.
For example, at a high level, computer architecture is concerned with how the central processing unit (CPU) acts and how it accesses computer memory. Some currently (2011) fashionable computer architectures include cluster computing and Non-Uniform Memory Access.
The art of computer architecture has three main subcategories:
  • Instruction set architecture, or ISA. The ISA is the code that a central processor reads and acts upon. It is the machine language (or assembly language), including the instruction set, word size, memory address modes, processor registers, and address and data formats.
  • Microarchitecture, also known as Computer organization describes the data paths, data processing elements and data storage elements, and describes how they should implement the ISA.The size of a computer's CPU cache for instance, is an organizational issue that generally has nothing to do with the ISA.
  • System Design includes all of the other hardware components within a computing system. These include:
  1. Data paths, such as computer buses and switches
  2. Memory controllers and hierarchies
  3. Data processing other than the CPU, such as direct memory access (DMA)
  4. Miscellaneous issues such as virtualization or multiprocessing.
From early days, computers have been used to design the next generation. Programs called simulators can pretend to be the new architecture, enabling the second step of designing a new architecture is often to design a software simulator, and write representative programs in the ISA, to test and adjust the architectural elements. At this stage, it is now commonplace for compiler designers to collaborate, suggesting improvements in the ISA. Modern simulators normally measure time in clock cycles, and give power consumption estimates in watts, or, especially for mobile systems, energy consumption in joules.
Once the instruction set and microarchitecture are described, a practical machine needs to be designed. This design process is called the implementation. Implementation is usually not considered architectural definition, but rather hardware design engineering.
Implementation can be further broken down into several (not fully distinct) steps:
  • Logic Implementation — design of blocks defined in the microarchitecture at (primarily) the register-transfer level and logic gate level.
  • Circuit Implementation — transistor-level design of basic elements (gates, multiplexers, latches etc.) as well as of some larger blocks (ALUs, caches etc.) that may be implemented at this level, or even (partly) at the physical level, for performance reasons.
  • Physical Implementation — physical circuits are drawn out, the different circuit components are placed in a chip floorplan or on a board and the wires connecting them are routed.
  • Design Validation — The computer as a whole is tested to see if it works in all situations and all timings. Once implementation starts, the first design validations are simulations using logic emulators. However, this is usually too slow to run realistic programs. So, after making corrections, next, prototypes are constructed using field-programmable gate-arrays FPGAs. Many hobby projects stop at this stage. The final step is to test prototype integrated circuits. Integrated circuits may have to be redesigned several times to fix problems.
For CPUs, the entire implementation process is often called CPU design.

No comments:

Post a Comment