Computer Science 代写 A Report On In Simplest Language
the definition of multiprocessing can vary with context, it may be multiple cores on one die, multiple chips in one package, multiple packages in one system unit, dual core, core 2 duo , quad core .Many people confuse this term with multi core but technically they both are different from each other, while in multi processor there are single or multiple cores on separate chips and in multi core they are on single chip. Chip Multiprocessors, also known as multi-core computing, involves more than one processor placed on a single chip and can be thought of the most extreme form of tightly-coupled multiprocessing but they do not exactly come under definition of multi processor
In these type of computers all CPUs may be equal or some may be reserved for special purposes. As sometimes software or hardware may requires that only one CPU respond to all hardware interrupts and rest of the work may be equally distributed. Multiprocessor system will only have advantage if software running on system understands that it have pair of processors.
1.2.1 Symmetric Multiprocessing (SMP)
SMP involves multiprocessor computer architecture where two or more identical processors can connect to a single shared main memory.SMP was one of the earliest multiprocessor architecture. One of the easiest and cheapest ways to improve hardware performance is to put more than one CPU on the board and by making them all run in parallel, doing the same job.
The majority of typical desktop multi-processor systems are based on the symmetric multiprocessing architecture (SMP) that offers all processors a common FSB (and consequently a memory bus). This architecture provides almost identical memory access latencies for any processor. But on the other hand, a common system bus is a disadvantage of the entire memory system in terms bandwidth. Indeed, if a multi-threaded application is critical to memory bandwidth, its performance will be limited by this memory organization.
It is only suitable for smaller system with up to 8 processors.SMP market formed with entry level servers and workstations but slowly shifted to desktop Pc's and Laptops. SMP is extremely common in the modern computing world
1.2.2 Asymmetric Multiprocessing (ASMP)
In asymmetric multiprocessing the program tasks (or threads) are strictly divided by type between processors and typically, each processor has its own memory address space. These features make asymmetric multiprocessing difficult to implement. Due to this complexity in implementation, it was not adopted by many vendors or programmers during its brief period between 1970 - 1980. ASMP system assigns certain tasks only to certain processors. For example one processor may be assigned the work of handling all the interrupts whereas other may be assigned the work of I/O. ASMP computers are comprised of multiple physical processors that are unique. Processors may be either master or slave: master processors are more capable than slaves and they have full control over slave processor and what slave processor does.
Differences between ASMP and SMP
Hardware : In the symmetrical multiprocessing design, there are no master or slave processors. In this case each processor is non-unique and has equal power. This means that they can share memory between themselves and can interact with each other directly, regardless of how many there are in the system
Software: Because SMP systems have no master or slave processors, each logical unit is able to complete a given task. In an ASMP system, a certain processor may not be able to complete a task for a number of reason special purpose nature of the processor (e.g. a coprocessor), and thus tasks must be given to it by master processor. Therefore, it is up to the programmer to make sure the processors are being used to their maximum potential.
ASMP is not much used in today's hardware implementation but still used as logically in software's in which main task is done by one processor and other smaller task can be done by other processor. It is responsibility of the programmer to decide which task is to assign to which processer it is not determined at hardware level