This action might not be possible to undo. Are you sure you want to continue?
MULTIPROCESSOR SYSTEM ARCHITECTURE
SUBMITTED TO:Ramanpreet Mam
SUBMITTED BY:Name-Aditya Sihag Roll No- 73 Reg No- 3010070282 Section- K1901
constructive. co-operation and consent without which I mightn’t be able to accomplish this project. Implementation and Evaluation of the project. criticism and invaluable suggestions. which benefited me a lot while developing the project on “Multiprocessor System Architecture”. . Through this column. She has been a constant source of inspiration and motivation for hard work.ACKNOWLEDGEMENT I am extremely grateful and remain indebted to my guide for constant support in the Design. it would be my most pleasure to express my warm thanks to her for her encouragement. She has been very co-operative throughout this project work. I am thankful to her for her constant.
in order to hold on to the momentum of constant upgrades in the market. improving overall system performance. multiple dies in one package. A system can be both multiprocessing and multiprogramming. may be shared between cores. There are many variations on this basic theme. the terms multitasking or multiprogramming are more appropriate to describe this concept. the microprocessor manufacturers look for other ways to improve performance. which have been popular in servers and workstations since the early 1990s. .MULTIPROCESSOR SYSTEM ARCHITECTURE Introduction Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. as in symmetric multiprocessing designs. etc. whereas multiprocessing is more appropriate to describe the use of multiple hardware CPUs. Multiprocessing sometimes refers to the execution of multiple concurrent software processes in a system as opposed to a single process at any one instant. multiple packages in one system unit. only one of the two. such as bus interface and second level cache. A multi-core processor is simply a single chip containing more than one microprocessor core. mostly as a function of how CPUs are defined (multiple cores on one die. Keeping up with Moore's Law is becoming increasingly challenging as chipmaking technologies approach the physical limits of the technology. Some components. and the definition of multiprocessing can vary with context. or neither of the two. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them. In response. which is implemented mostly in software. effectively multiplying the potential performance with the number of cores (as long as the operating system and software is designed to take advantage of more than one processor). A different approach to improving a computer's performance is to add extra processors. Because the cores are physically very close they interface at much faster clock rates compared to discrete multiprocessor systems.). However.
not to hardware features. hereafter known as the “MP specification. that are not visible to software. or some may be reserved for special purposes. EISA. including asymmetric multiprocessing (ASMP). or other OEM-specific buses. For example. End users who purchase a compliant multiprocessor system will be able to run their choice of operating systems. Types Processor symmetry In a multiprocessing system. but they tend to be less efficient than systems in which all CPUs are utilized. non-uniform memory access (NUMA) multiprocessing. or execution of kernel-mode code may be restricted to only one processor (either a specific processor. or only one processor at a time). Systems that treat all CPUs equally are called symmetric multiprocessing (SMP) systems.The Multiprocessor Specification. The MP specification covers PC/AT-compatible MP platform designs based on Intel processor Architectures and Advanced Programmable Interrupt Controller (APIC) architectures. PCI. An implementation of this specification may incorporate one or more industry standard buses. The term “PC/AT-compatible” here refers to the software-visible components of the PC/AT. whereas all other work in the system may be distributed equally among CPUs. system resources may be divided in a number of ways. such as the bus implementation. hardware or software considerations may require that only one CPU respond to all hardware interrupts. all CPUs may be equal. MP-capable operating systems will be able to run without special customization on multiprocessor systems that comply with this specification. MCA. whereas user-mode code may be executed in any combination of processors. and clustered multiprocessing . Multiprocessing systems are often easier to design if such restrictions are imposed. A combination of hardware and operating-system software design considerations determine the symmetry (or lack thereof) in a given system.” defines an enhancement to the standard to which PC manufacturers design DOS-compatible systems. In systems where all CPUs are not equal. such as ISA.
These CPUs may have access to a central shared memory (SMP or UMA). often used in vector processing). Tightly-coupled systems perform better and are physically smaller than loosely-coupled systems. Processor coupling Tightly-coupled multiprocessor systems contain multiple CPUs that are connected at the bus level. also known as multi-core computing. but have historically required greater initial investments and may depreciate rapidly. the processors can be used to execute a single sequence of instructions in multiple contexts (single-instruction. whereas . the Xeon processors via a common pipe and the Opteron processors via independent pathways to the system RAM. used for redundancy in fail-safe systems and sometimes applied to describe pipelined processors or hyper-threading). involves more than one processor placed on a single chip and can be thought of the most extreme form of tightly-coupled multiprocessing. The IBM p690 Regatta is an example of a high end SMP system. Chip multiprocessors. Mainframe systems with multiple processors are often tightly-coupled. Intel Xeon processors dominated the multiprocessor market for business PCs and were the only x86 option until the release of AMD's Opteron range of processors in 2004.Instruction and data streams In multiprocessing. A Linux Beowulf cluster is an example of a loosely-coupled system. Power consumption is also a consideration. multiple sequences of instructions in a single context (multiple-instruction. Both ranges of processors had their own onboard cache but provided access to shared memory. single-data or MISD. or may participate in a memory hierarchy with both local and shared memory (NUMA). nodes in a loosely-coupled system are usually inexpensive commodity computers and can be recycled as independent machines upon retirement from the cluster. Loosely-coupled multiprocessor systems (often referred to as clusters) are based on multiple standalone single or dual processor commodity computers interconnected via a high speed communication system (Gigabit Ethernet is common). Tightly-coupled systems tend to be much more energy efficient than clusters. multiple-data or MIMD). or multiple sequences of instructions in multiple contexts (multiple-instruction. This is because considerable economies can be realized by designing components to work together from the beginning in tightly-coupled systems. multiple-data or SIMD.
which was a SIMD multiprocessing supercomputer). in terms of the elapsed time required to complete a given task. One example is the "von Neumann" architecture with RISC. .. multiple data stream computer one processor handles a stream of instructions. programs must be carefully and specially written to take maximum advantage of the architecture. each one of which can perform calculations in parallel on multiple data locations. Software implememtation issues SISD multiprocessing In a single instruction stream. single data stream computer one processor sequentially processes instructions. For certain types of computing applications. A single instruction stream directs the operation of multiple processing units to perform the same manipulations simultaneously on potentially large amounts of data. but is of little use in general-purpose desktop and business computing environments. Additionally. and often special optimizing compilers designed to produce code specifically for this environment must be used. Some compilers in this category provide special constructs or extensions to allow programmers to directly specify operations to be performed in parallel (e.g. this type of architecture can produce enormous increases in performance. a drawback to this architecture is that a large part of the system falls idle when programs or system tasks are executed that cannot be divided into units that can be processed in parallel. each instruction processes one data item. SIMD multiprocessing finds wide use in certain domains such as computer simulation. SIMD multiprocessing is well suited to parallel or vector processing. SIMD multiprocessing In a single instruction stream. DO FOR ALL statements in the version of FORTRAN used on the ILLIAC IV. However.loosely-coupled systems use components that were not necessarily intended specifically for use in such systems. in which a very large set of data can be divided into parts that are individually subjected to identical but independent operations.
. Processing is divided into multiple threads. however. Similar conflicts can arise at the hardware level between processors (cache contention and corruption. MIMD does raise issues of deadlock and resource contention. For this reason. since multiple processing units perform the same tasks on the same data. since threads may collide in their access to resources in an unpredictable way that is difficult to manage efficiently. each with its own hardware processor state. MIMD requires special coding in the operating system of a computer but does not require application changes unless the programs themselves use multiple threads (MIMD is transparent to singlethreaded programs under most operating systems. and must usually be resolved in hardware. for example). It can be implemented in a way that is transparent to software. if the programs do not voluntarily relinquish control to the OS). it has few advantages. lowers performance. Insofar as a system has multiple threads awaiting dispatch (either system or user threads). This gating or locking process increases code complexity. within a single software-defined process or within multiple processes. and greatly increases the amount of testing required. It is used in array processors and is implemented in fault tolerant machines MIMD multiprocessing MIMD multiprocessing architecture is suitable for a wide variety of tasks in which completely independent and parallel execution of instructions touching different sets of data can be put to productive use. Apart from the redundant and fail-safe character of this type of multiprocessing.MISD multiprocessing MISD multiprocessing offers mainly the advantage of redundancy. reducing the chances of incorrect results if one of the units fails.g. or with a combination of software and hardware (e. and because it is easy to implement. cache-clear instructions) . It does not improve performance. this architecture makes good use of hardware resources. although not usually enough to negate the advantages of multiprocessing. Both system and user software may need to use software constructs such as semaphores(also called locks or gates) to prevent one thread from interfering with another if they should happen to cross paths in referencing the same data. MIMD predominates in multiprocessing. and it is very expensive. MISD architectures may involve comparisons between processing units to detect failures.
The term symmetrical is both important and misleading. On simple SMP systems. by definition. The asymmetric models soon gave way to symmetric models. Symmetric Multiprocessing In computing. so idle processors were far less common. These processors could not run user code. is point might seem hardly worth emphasizing. symmetric multiprocessing or SMP involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. which enabled any processor to execute OS and user functions. some were not symmetrical. crossbar switches or on-chip mesh networks. while application-specific processors looped idly waiting for them to finish— an inefficient use of processing resources. because the dedicated processors often worked hard. Most common multiprocessor systems today use an SMP architecture. In the case of multi-core processors. Processors may be interconnected using buses. and provide nearly linear scalability to much higher processor counts. and so the design was not symmetrical. but when multiprocessing models first appeared. The most common architecture used in these devices is Symmetrical Multiprocessing. and the disk arrays. The SMP model. Multiple processors are.Multiprocessor systems: multiple processors in a single system Multiple processors were once the exclusive domain of mainframes and high-end servers. each processor has equal access to all of the system memory. the SMP architecture applies to the cores. the memory. symmetrical if any of them can execute any given function. provided that each task in the system is not in execution on two or more . The system could use all available processors for a specific task. a fair bit of chatter occurs between processors to make sure the caches and memory are in sync. running the operating system or one of its subsystems. treating them as separate processors. Today. Because each processor also maintains its own on-board data caches. SMP systems allow any processor to work on any task no matter where the data for that task are located in memory. one or more processors were dedicated to certain specific functions—generally. since it was not true that any given task could run on any processor. On these systems. The bottleneck in the scalability of SMP using buses or crossbar switches is the bandwidth and power consumption of the interconnect among the various processors. did an inherently better job of load balancing. including high-end PCs and workstations. Mesh architectures avoid these bottlenecks. they are common in all kinds of systems.
in which not all memory is available to all processors. . Other systems include asymmetric multiprocessing (ASMP). notably on servers where the data is often associated strongly with certain tasks or users. which uses separate specialized processors for specific tasks (which increases complexity). NUMA makes the cost of moving data from one processor to another. with proper operating system support.processors at the same time. This can dramatically improve memory throughput as long as the data is localized to specific processes (and thus processors). processors may access local memory quickly and remote memory more slowly. a single processor is denoted as auni processor (UP). In this discussion. SMP systems can easily move tasks between processors to balance the workload efficiently. The benefits of NUMA are limited to particular workloads. typically used for building smaller computers with up to 8 processors. more expensive. High-powered 3D chipsets in modern videocards could be considered a form of asymmetric multiprocessing. In a NUMA architecture. Clustering techniques are used fairly extensively to build very large supercomputers. Examples of ASMP include many media processor chips that are a relatively slow base processor assisted by a number of hardware accelerator cores. and computer clustered multiprocessing (such as Beowulf). Alternatives SMP represents one of the earliest styles of multiprocessor machine architectures. On the downside. which dedicates different memory banks to different processors. as in workload balancing. Larger computer systems might use newer architectures such as NUMA (Non-Uniform Memory Access).
particularly compilers and some distributed computing projects. an SMP system will have considerably better performance than a uni-processor because different programs can run on different CPUs simultaneously. administrators often experience a loss of hardware efficiency. . This is because hardware interrupts that usually suspend program execution while the kernel handles them can execute on an idle processor instead. Systems programmers must build support for SMP into the operating system: otherwise.and multi-core computers may change in the coming years. Software programs have been developed to schedule jobs so that the processor utilization reaches its maximum potential.Advantages and Disadvantages SMP has many uses in science. the additional processors remain idle and the system functions as a uniprocessor system. most consumer products such as word processors and computer games are written in such a manner that they cannot gain large benefits from concurrent systems. The effect in most applications (e. Therefore two separate versions of the same program may have to be maintained. as well as being able to integrate multiple SMP machines and clusters. industry. Recently. In cases where an SMP environment processes many jobs. multi-core chips are becoming more common in new computers. one for each. In situations where more than one program executes at the same time. Programs running on SMP systems may experience a performance increase even when they have been written for uniprocessor systems. games) is not so much a performance increase as the appearance that the program is running much more smoothly. Good software packages can achieve this maximum potential by scheduling each CPU separately. However. Uniprocessor and SMP systems require different programming methods to achieve maximum performance. however. For games this is usually because writing a program to increase performance on SMP systems can produce a performance loss on uniprocessor systems. and business which often use customprogrammed software for multithreaded (multitasked) processing. one will see an improvement by a factor of (nearly) the number of additional processors. In some applications. and the balance between installed uni.g.
Access to RAM is serialized. REFRENCES:• • • BOOKS INTERNET VARIOUS OTHER SOURCES . this and cache coherency issues causes performance to lag slightly behind the number of additional processors in the system.