The performance of modern CPUs is fundamentally tied to its architecture. Over the past half century, there have been many major advances in CPU design that have dramatically improved performance. In this assignment, my group has included the overall finding about the level and major changes in CPU architecture. We have included description about multithread processor, multi-core processor and multiprocessor. Each of the architecture are explained throughout some common FAQ questions such as reasons of its development, how it works, comparison between Von Neumann n architecture, advantages and disadvantages as well.
In this Computer Science Architecture assignment we have chosen advanced architecture as our research topic. In this assignment, Chew Wei Kean have chosen multiprocessing as his research title as for Cheam Heng Shean, he has selected multi-core as his research title and Chandran have selected multithreading as his research title.
In this assignment, we will present what is multi-core, multiprocessing and multithread are all about. Besides that, we will also show out how are this advanced architecture going to work out.
Then, we have also list out the advantage and also disadvantage for the three advanced architecture. We are trying to clarify that the three advanced architecture will lead the technology industry in a better way. We have also comparing the similarity and different between the three advanced architecture to lets people knows what the different among three of them.
The Design of the Architecture
A thread is a short for a thread of execution. Threads are a way for a program to split itself into two or more simultaneously running tasks.
Multiple threads can be executed in parallel across many computer systems and usually occurs by time slicing across the computer systems. However, in a single processor environment, the processor 'context switches' between different threads. In this case, the processing is not literally real-time, for the single processor is really doing only one thing at a time. This switching can happen so fast as to give the illusion of simultaneity to an end user.
For example, many PCs may only contain one processor core, but that runs multiple programs at once, such as watching movie while surfing internet. Although the user experiences these things as simultaneous, in truth, the processor quickly switches back and forth between these separate processes. On a multiprocessor or multi-core system, threading can be achieved via multiprocessing, where multi-threading happens to process and run literal simultaneously on different processors or cores.
What exactly is the difference between multiple processes and multiple threads? The essential difference is that while each process has a complete set of its own variables, threads share the same data. However, shared variables make communication between threads more efficient and easier to program than inter-process communication. Moreover, on some operating systems, threads are more "lightweight" than processes-it takes less overhead to create and destroy individual threads than it does to launch new processes. Multithreading is extremely useful in practice. For example, a browser should be able to simultaneously download multiple images. A web server needs to be able to serve parallel requests.
Reasons for Multithread Development
There are few reasons for multi-threading processor developed.
- To increase CPU performance: The CPU's performance is increased by increasing clock frequency and increasing the number of instruction.
- Decrease circuit complexity: In order to improve throughput, designers have come out with complex mechanism such as executing instruction in different order from the way it's occur in the instruction stream. So multithreading is then developed to improve it.
- Decrease power consumption: When the designer comes out with complex mechanism, the mechanism also consumes a lot of power. To overcome this problem, multithreading is then developed by designers to improve the CPU's performance much better.
How it works
Basically there are 4 different types of multithreading which is Interleaved multithreading, Blocked Multithreading, Simultaneous multithreading (SMT) and Chip multiprocessing.
Interleaved Multithreading is known as fine-grained multithreading. The processor deals with two or more thread contexts at a time, switching from one thread to another at each clock cycle. If a thread is blocked because of data dependencies or memory latencies, that thread is skipped and a ready thread is executed.
Coarse-grained multithreading is another name for blocked multithreading that instructing a thread are executed successively until an event occurs that may cause delay, such as a cache miss. This event induces a switch to another thread. This approach is effective on an in-order processor that would stall the pipeline for a delay event such as a cache miss.
Simultaneous multithreading (SMT) is a set of instruction that simultaneously issued from multiple threads to the execution units of a superscalar processor. This combines the wide superscalar instruction issue capability with the use of multithreading thread contexts.
An entire processing that replicated on a single chip and each processor handles separate threads is called Chip multiprocessing. The advantage of this approach is that the available logic area on a chip is used effectively without depending on ever-increasing complexity in pipeline design.
Interleaved multithreading and blocked multithreading instructions are different threads are not executed simultaneously. Instead, the processor is able to rapidly switch from one thread to another using a different set of registers and other context information. This results in a better utilization of the processor's execution resources and avoids a large penalty due to cache misses and other latency events.
The SMT approach involves true simultaneous execution of instruction from different threads, using replicated execution resources. Chip multiprocessing also enable simultaneous execution of instruction from different threads.
How it differs from the Von Neumann architecture & multithreading Architecture
Von Neumann Architecture:
- Limited through put (data transfer rate) between the CPU and memory
- Don't have cache memory
- Throughput is much smaller than the rate at which the CPU can work.
- Have cache memory to overcome bottleneck problem
Which CPU vendor uses it
The processor and cache memory used in the computer system using multi-threaded processor, which switches execution among multiple threads. A thread may be defined as a stream of addresses associated with the data and instructions of a particular sequence of code that has been scheduled within the processor.
Success of multithreading Processor
Pentium 4- Most recent models of Pentium 4 use a multithreading technique that the Intel literature refers to as hyper threading. in essence, the Pentium 4 approach is to use SMT with support for two thread. thus, the single multithreaded processor is logically two processor.
A Description of the design
In general term, multiprocessing is design by strong of program to one or more computers working in tandem or can involve multiple computers working on the same program at simultaneously.
Multiprocessing distribute into 2 parts as below:-
- Symmetric multiprocessing also known as SMP, it is allow processor to shares memory and the Input output bus or data path. Operating system is in charge of all the processors.
- Massively parallel processing, sane application can run on 200 or more processors where each processor has own operating system and memory.
Reason for Multiprocessing Development
Several reasons develop multiprocessor system are as follows:
- Reduced Cost: Same resources are share by multiple processors and reduce cost by eliminate power supply or motherboard.
- Increased Reliability: When there is one processor fails to work, other processors will not affected other machine will slow down. Reliability increase by several mechanisms. A tasks running on the processor is affected when processor fail to work. Therefore system has to rearrange a failed task or inform the user.
- Increased Throughput: Less time is taken to complete the work when number of processes increase. Number of processor dose not average share the time to complete the task. This is because communication between processors and contention is overhead for share resources.
How it works
Multiprocessing works like running more than one processor. It is double of the performance by using two of the processor instead of one processor. This may lead the performance improve with do task efficiency.
The minimum requirement to meet multiprocessing effectively we should have three following place:-
- Motherboard: The capability of the motherboard must be able to support multiprocessor, instead of additional socket or slot for the chipset or extra chipset of handling the multiprocessing arrangement.
- Processor: The capability of the processor must be multiprocessing system. However, we should make sure again the processor because nowadays a lot of processor is same version but it had not a multiprocessing system.
- Operating System: An operation system must able to support multiprocessing, for example, windows NT, windows UNIX
Furthermore, multiprocessing is works by divided into smaller cycle that to run independently. Instead, its allow operating system to run these threads on more than one processor at the same time, which is improve the performance of the process. For example, if run more than one application at a time which is multitasking, it would take an advantage to improve the speed of running multitask. Therefore, it come a technology of multiprocessing. When multiprocessing is used with specially build application software, it is most effective. Operating system manages multiprocessing where different tasks are allocated to be performed in the system.
Multiprocessing is divided into asymmetric or symmetric, which means how tasks are divided by operating system are between the processors.
- Asymmetric: Only applications and system tasks are run by processor where designator by multiprocessing. This occurs when performance decreased when computer have to run many system tasks.
- Symmetric (SMP): increase performance by allowing system or user tasks only to run on processor for more flexible purpose. Most multiprocessing PC motherboards use it.
Which CPU vendor uses it
Success of the design
Intel is one of the very good examples that we can describe for success of the designation multiprocessing. In fortune 500's list, Intel is ranked 49th on the top revenue grossing companies. In 1968, Noyce and Moore are in charge for the daily progress of the business where they founded; however, the entire industry can still felt the impact. Intel is the leader and innovator in the field of computing and electronic where they make graphic card, processor, motherboard and more.
Description about Multi-Core
Multi-core is become part of computer life and it become more popular in the technology field. Basically multi-core is a combination of 2 processors which classify as an integrated circuit that will bring lots of advantage to the computer such as enhanced performance, reduced power consumer and also allow in use for the multi tasking. It also known as more than 2 processors that work under one system. An example for multi-core is dual core that known as the first type of multi-core technology applications. It is set up in the same computer but using two separate processors because of it connected using 2 processors the connection between them will be faster compare to only processors.
Reason for Multi-core to Develop
Multi-core is been develop is because of the featured. Multi-core brings lots of benefits for technology industry; people in this field need multi-core to speed up to done their job. Firstly about multi-core been develop are multi-core are providing a faster application performance. Multi-core are using two different processors together which will make the process of the computer speed up. Besides that, it also provided efficient management of synchronization and efficient distribution without any corruption for an example multi-tasking which will allow user to work in a more efficient way but in a lesser time.
Then for the second reason that it be develop are making the more digital lifestyle. The develop will make the consumer to enjoy the digital media in their home because of the multi-tasking and the performance will lead the users to feel themselves about the digital home. With using the multi-core will also create a peace and quiet surrounding area. The performances that offer by the multi-core processors will not release any heat or sound from it and it will increase the performance of the single processors.
Lastly, multi-core processors can also protect users computer in a more efficient way compare to only one processor. It can run more check on virus, spam and adware protection without closing down the system or application.
How it Works
The multi-core processors are able to put 2 parallel computing together and increase the efficient and performance. The parallel computer is able to increase the speed and performance of the computer, this mean the computer are giving less energy but faster time to complete a tasks. Multi-core processors also allow user to do many tasks in the same time. The workload might be same but with the faster speed and performance.
If multi-core is work with the combination of multi-threaded program, it will also greatly increase the operating system. The program can split the workload in many parts in many different sector and this could be make the workload complete in a faster time.
Which CPU vendor uses it
Success of the design
The design of Multi-core is a very successful in this technology field. Multi-core have bring a lots of advantages and convenient to the users. First of all, the multi-core has maximizes the performance of the computer because the multi-core can split all the performance into different parts.
Besides that, with the help of multi-core it helps to save lots of time for the job to be processing with the same reason. The multi-core speed up the processor in the computer, this brings a great impact for the technology industry. In the market of Information and Technology appear more and more multi-core processors to suit the requirement of users.
Lastly, multi-core can also save lots of energy and release less heat from the computer. Both processors work together to achieve a better performance, two processors works together make the job to be done faster so it require less energy to complete it.
Advantage of Multithread, Multiprocessing and Multi-Core
Advantage of multithread
Advantages of a multi-threaded processor are it can switch threads and continue instruction execution. A missing data line should get from the main memory that provides an overall increase in throughput particularly. Instruction depends on each other's result avoid the thread use all the computing resources of CPU and runs another thread permits to not leave these inactive. If several threads work on the same set of data can share their cache that lead to better cache usage or synchronization on its values.
Computer system working with a multi-threaded processor will cause the primary cache to perform more badly which causes additional strain placed on it by the additional threads. Besides that when one thread's data is forced out of a cache for another thread's data, cache pollution happens and the overall performance of the processor may be decreased and Caches have fixed capacity.
Advantage of multiprocessing
The advantage of multiprocessor is it can store, read and write programs simultaneously. for example, By using microprocessor we can listening to music, surfing internet and typing something on Microsoft word document simultaneously. besides that, Microprocessor run instructions into flexible microcontroller in order to perform a instruction faster.
Advantage of multi-core
Dual-core processors are a fairly new innovation built by both major processor manufacturers (Intel Core Duo / Core 2 Duo and AMD Athlon 64X2).
- Multitasking: Each processor has two processing centres (cores) for a theoretical maximum of twice the operating power and for better multitasking. Major advantages of dual core processors are evident when doing heavy multitasking, such as encoding video and playing video games at the same time.
- Application Support: Newer applications are being written to take advantage of this technology by using a technique known as Multithreading.
- Power Saving: Dual core processors (especially Intel Core Duo) have the ability to turn off one of their cores when application demand is low to save power.
Multithread can send multiple instructions in simultaneously. It is to share a particular instruction into several processors to process the instruction. So that it is help the tasks run smoothly and efficiency. Multiprocessing is to store, read, and write the task in the same time. Meaning that we can receive not only one task but multitasks can receive and work it in simultaneously. It is very useful in our reality life. Multi-core is the processor that able to boost up the speed of the processor. Thus, it is allow the processor run heavy program. it is speedup the multitasking which boost the processing unit. Instead, it had a benefit feature that able to save the power supply. Therefore multi-core is best concepts that give better feature in our reality life. In conclusion, this three technology should work it together so that the task will complete with effectiveness and efficiency.
Frequently Ask Question (FAQ)
- Question: What is Multi-Threading?
- Question: What are the types of Multi-threading?
- Question: What is multiprocessing?
- Question: What is the best benefit that multiprocessing do?
- Question: what is so great about multi-core?
Answer: Multithreading is the ability of a program or an operating system process to manage its use by more than one user at a time and to even manage multiple requests by the same user without having to have multiple copies of the programming running in the computer.
Answer: Basically there are 4 different types of multithreading which is Interleaved multithreading, Blocked Multithreading, Simultaneous multithreading (SMT) and Chip multiprocessing.
Answer: Process a task simultaneously, similarly with multitasking.
Answer: Save time, save energy, by complete task efficiency and effectiveness.
Answer: Multi-core helps to speed up the processing for a file and also reduce the time of processing for a file.
- Unknown, what is multi-core, available on http://searchdatacenter.techtarget.com/sDefinition/0,,sid80_gci1015740,00.html, [access on 18 November 2009]
- Unknown, Advantage of multi-core, available on http://multicore.amd.com/Resources/33211A_Multi-Core_WP_en.pdf, [access on 18 November 2009]
- Unknown, How Multi-core works, available on http://www.tech-faq.com/multi-core-technology.shtml, [access on 18 November 2009]
- Unknown, Description of Multi-core, available on http://www.embedded-computing.com/articles/id/?4269, [access on 18 November 2009]
- Unknown, Reason for develop Multi-core, available on http://www.ddj.com/hpc-high-performance-computing/216200386,
- Unknown, advantage and disadvantage of multiprocessing, available on http://www.experiencefestival.com/symmetric_multiprocessing_-_advantages_and_disadvantages [access 7 November 2009]
- Unknown, Definition of SMP, available on http://dictionary.zdnet.com/definition/SMP.html [access 7 November 2009]
- Unknown, Definition of MPP, available on http://dictionary.zdnet.com/definition/MPP.html [access 7 November 2009]
- Zhang, Guofeng (Shanghai, CN), 2007, Driver assisted asynchronous command processing, [online], Available fromhttp://www.freepatentsonline.com/y2007/0106999.html[Accessed 15th Nov 2009]
- Ray, 2005, Multithreaded Programming with pthreads, [online], Available fromhttp://librenix.com/?inode=7645[Accessed 15th Nov 2009]
- Alfred Park, 2007, Multithreaded Programming :: Improving Performance through Threads, [online], Available fromhttp://randu.org/tutorials/threads/[Accessed 15th Nov 2009]
- Harris, Jeremy G. (Chalfont St. Giles, GB), 2003, Multi-thread processing, [online], Available fromhttp://www.freepatentsonline.com/6560629.html, [Accessed 15th Nov 2009]