Warning: mkdir() [
function.mkdir]: Permission denied in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: mkdir() [
function.mkdir]: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: fopen(/home/templatecore2cache//*cluesnet.com/ee/ee3d61a2c4222063204130b13a1fe507c78f6b48.tc2cache) [
function.fopen]: failed to open stream: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
130
Warning: fwrite(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
131
Warning: fclose(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
132
s:
hardware,
firmware, Assembly language,
Kernel (computer science),
operating system and Process (computing) (see also Tanenbaum 79).In
computer engineering,
computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements (especially speeds and interconnections) and design implementations for the various parts of a computer — focusing largely on the way by which the central processing unit (CPU) performs internally and accesses
memory address.
It may also 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 comprises at least three main subcategories
- Microarchitecture, also known as Computer organization is a lower level, more concrete, description of the system that involves how the constituent parts of the system are interconnected and how they interoperate 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:
- 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 device needs to be designed into
hardware. This design process is often called
implementation. Implementation is usually not considered architectural definition, but rather hardware Engineering design process.
Implementation can be further broken down into three pieces:
- Logic Implementation/Design - where the blocks that were defined in the microarchitecture are implemented as logic equations.
- Circuit Implementation/Design - where speed critical blocks or logic equations or logic gates are implemented at the transistor level.
- Physical Implementation/Design - where the 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.
More specific usages of the term include more general wider-scale hardware architectures, such as cluster computing and Non-Uniform Memory Access (NUMA) architectures.
Design goals
The exact form of a computer system depends on the constraints and goals for which it was optimized. Computer architectures usually trade off standards, cost, memory capacity, latency and throughput. Sometimes other considerations, such as features, size, weight, reliability, expandability and power consumption are factors as well.
The most common scheme carefully chooses the bottleneck that most reduces the computer's speed. Ideally, the cost is allocated proportionally to assure that the data rate is nearly the same for all parts of the computer, with the most costly part being the slowest. This is how skillful commercial integrators optimize
personal computers.
Cost
Generally cost is held constant, determined by either system or commercial requirements.
Performance
Computer performance is often described in terms of
Clock rate (usually in MHz or GHz). This refers to the cycles per second of the main clock of the CPU. However, this metric is somewhat misleading, as a machine with a higher clock rate may not necessarily have higher performance. As a result manufacturers have moved away from clock speed as a measure of performance.Computer performance can also be measured with the amount of cache a processor contains. If the speed, MHz or GHz, were to be a car then the cache is the traffic light. No matter how fast the car goes it still will not hit that green traffic light. The more speed you have and the more cache you have the faster your processor is.
Modern CPUs can superscalar, which dramatically speeds up a program. Other factors influence speed, such as the mix of
functional units,
computer bus speeds, available memory, and the type and order of instructions in the programs being run.
There are two main types of speed, latency and throughput. Latency is the time between the start of a process and its completion. Throughput is the amount of work done per unit time.
interrupt latency is the guaranteed maximum response time of the system to an electronic event (e.g. when the disk drive finishes moving some data). Performance is affected by a very wide range of design choices — for example, adding CPU cache usually makes latency worse (slower) but makes throughput better. Computers that control machinery usually need low interrupt latencies. These computers operate in a
real-time computing environment and fail if an operation is not completed in a specified amount of time. For example, computer-controlled anti-lock brakes must begin braking almost immediately after they have been instructed to brake.
The performance of a computer can be measured using other metrics, depending upon its application domain. A system may be CPU bound (as in numerical calculation), IO bound (as in a webserving application) or
memory bound (as in video editing). Power consumption has become important in servers and portable devices like laptops.
Benchmark (computing)ing tries to take all these factors into account by measuring the time a computer takes to run through a series of test programs. Although benchmarking shows strengths, it may not help one to choose a computer. Often the measured machines split on different measures. For example, one system might handle scientific applications quickly, while another might play popular video games more smoothly. Furthermore, designers have been known to add special features to their products, whether in hardware or software, which permit a specific benchmark to execute quickly but which do not offer similar advantages to other, more general tasks.
Power consumption
Power consumption is another design criterion that factors in the design of modern computers. Power efficiency can often be traded for performance or cost benefits. With the increasing power density of modern circuits as the number of transistors per chip scales (Moore's Law), power efficiency has increased in importance. Recent processor designs such as the Intel Core 2 put more emphasis on increasing power efficiency. Also, in the world of embedded computing, power efficiency has long been and remains the primary design goal next to performance.
Historical perspective
Early usage in computer contextThe term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr., members in 1959 of the Machine Organization department in IBM’s main research center. Johnson had occasion to write a proprietary research communication about Stretch, an IBM-developed supercomputer for Los Alamos Scientific Laboratory; in attempting to characterize his chosen level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements aimed at the level of “system architecture” – a term that seemed more useful than “machine organization.” Subsequently Brooks, one of the Stretch designers, started Chapter 2 of a book (Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962) by writing, “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.” Brooks went on to play a major role in the development of the IBM System/360 line of computers, where “architecture” gained currency as a noun with the definition “what the user needs to know.” Later the computer world would employ the term in many less-explicit ways.
The first mention of the term
architecture in the refereed computer literature is in a 1964 article describing the IBM System/360. G. M. Amdahl, G. A. Blaauw and F. P. Brooks Jr., Architecture of the IBM System/360, IBM Journal for Research and Development, April 1964 The article defines architecture as the set of “attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.” In the definition, the
programmer perspective of the computer’s functional behavior is key. The conceptual structure part of an architecture description makes the functional behavior comprehensible, and extrapolatable to a range of use cases. Only later on did ‘internals’ such as “the way by which the CPU performs internally and accesses addresses in memory,” mentioned above, slip into the definition of computer architecture.
See also
References
- 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
- http://www.mkp.com/ Hennessy and Patterson: Computer Architecture: A Quantitative Approach, Fourth Edition, September 2006
-
External links
- 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
Computer Architecture & Digital Media Processing
Computer Architecture & Digital Media Processing. The Computer Architecture & Digital Media Processing Group is a part of the Centre for Computer Science and Informatics Research ...
Computer Architecture
Module Title: Computer Architecture . CRN: 26199 . University module code: G400 10005 . Level: 1 . Credit Value: 10 . ECTS Value: 5 Length (in Semesters):
Compiler Technology and Computer Architecture Group » Home
The personal web log of a web site builder and designer ... Welcome to the Compiler Technology and Computer Architecture Group of the University of Hertfordshire School of Computer ...
Computer architecture - Wikipedia, the free encyclopedia
In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of ...
332 Advanced Computer Architecture - lecture notes
332 Advanced Computer Architecture - lecture notes. Lecture notes for the Parallel Architectures course can be found on-line here, in PDF, 4-up for convenient printing
Welcome — Advanced Computer Architecture Group
The aim of the group is to utilise neural networks, computer vision, non-standard computation and novel computer architectures including grid technologies to solve real problems ...
Computer Architecture - Computer Architecture Reseach Group ...
Computer Architecture Group. Imperial College Department of Computing's Computer Architecture Group is part of the Computer Systems section. Office:
Embedded Systems and Computer Architecture
A book with software which takes the reader step-by-step through the design, construction, and programming of a microprocessor (based on the classic Zilog Z80 microprocessor ...
CST605: Computer Architecture and Performance
CST605: Computer Architecture and Performance Within this directory you will find a number of documents of use (or necessary) for CST605.
Computer Laboratory - Computer Architecture Group
The Computer Architecture Group's speciality is all aspects of tomorrow's computing hardware including its supporting circuit and compiler technology.