Saturday, July 10, 2010

Congratulations to our RoboCup Teams!

Carnegie Mellon’s teams had another great year at RoboCup! The CMDragons finished second in the small-size league to a tough team from Thailand and the CMurfs team of Nao humanoids finished fourth in the standard platform league.

CNN’s report on RoboCup and Carnegie Mellon’s RoboCup teams,

which originally aired Wednesday, will be repeated between 2 and 3 p.m. Saturday July 10 and between 6 and 7 p.m. Sunday July 11.

computer science

Mentor Focuses on Robotics, Teamwork and Leadership

Organized chaos” is one way Ryan Cahoon (CS’12) describes his Tuesday nights during the academic year. Cahoon, a computer science major, volunteers with the McKeesport Area High School and Technology Center robotics team, which competes in FIRST® (For Inspiration and Recognition of Science and Technology).

Manuela Veloso Elected President of AAAI

Manuela Veloso, Herbert A. Simon Professor, CSD, has been elected to the prestigious position of President of the Association for the Advancement of Artificial Intelligence, AAAI. She will serve AAAI for six years as: President-Elect for 2010-2011, President for 2012-2013 and Past President for 2014-2105. Manuela will be the fourth AAAI president from Carnegie Mellon. Allen Newell was the first and Raj Reddy and Tom Mitchell have followed.

Treuille Discusses How US Can Tap Potential of Golden Triangle Technologies

Adrien Treuille, assistant professor of computer science and robotics at Carnegie Mellon University, was among the top U.S. scientists who participated in a panel discussion on how the U.S. government can tap the full potential of three “Golden Triangle” technologies: information technology, biotechnology and nanotechnology.

Kelley Wins First Prize in ACM Student Research Competition

Patrick Kelley, a PhD student in the Computation, Organizations and Society program of the Institute for Software Research, won first place in the graduate category of the Association for Computing Machinery’s (ACM) Student Research Competition Grand Finals. Kelley, who is co-advised by Lorrie Cranor and Norman Sadeh, won for his research on a “nutrition label” for online privacy – a standardized label that communicates a website’s privacy policies in a way that is as clear and as understandable as the nutrition labels on food packaging.

Geschke Wins 2010 Marconi Society Prize

Charles M. Geschke, who earned his PhD in computer science at Carnegie Mellon University in 1973 and serves on the School of Computer Science advisory board, is the winner of the 2010 Marconi Society Prize for his role in moving the world of print communications into the digital age.

Machine Learning Department Researchers Receive Honors

Students and faculty members of the Machine Learning Department (MLD) have received top honors for work they have presented this summer at leading conferences in machine learning.

Multi-Layered Images Projected Onto Water Droplets With New Carnegie Mellon Display Technology

AquaLux 3D, a new projection technology developed at Carnegie Mellon University’s Robotics Institute, can target light onto and between individual water droplets, enabling text, video and other moving or still images to be displayed on multiple layers of falling water.

Carnegie Mellon’s ChargeCar Project Hosting "Electric" Friday Night Community Events Events Aim To Build Buzz for Electric Car Conversions

the gas-to-electric car conversion project at Carnegie Mellon University, is sponsoring a series of Friday night community events this month at its new Electric Garage, 4621 Forbes Ave., for anyone interested in electric cars and environmentally friendly commuting.

Piasecki-Carnegie Mellon Team Demonstrates Autonomous Helicopter Operations

Piasecki Aircraft Corp. and Carnegie Mellon University have developed and flight demonstrated a navigation/sensor system that enables full-size, autonomous helicopters to fly at low altitude while avoiding obstacles; evaluate and select suitable landing sites in unmapped terrain; and land safely using a self-generated approach path.

Carnegie Mellon’s Maglev Haptic Interface Receives Top 100 Recognition From R&D Magazine

A magnetic levitation haptic interface invented by Ralph Hollis, a professor in Carnegie Mellon University’s Robotics Institute, is the recipient of a 2010 R&D 100 Award, presented by R&D Magazine to recognize the 100 most technologically significant products of the past year. Hollis and other winners, listed on the R&D Awards website, will be recognized at an awards banquet Nov. 11 in Orlando, Fla.

Good Body

Good body language involves keeping good personal space, making eye contact, sitting or standing up straight, and looking interested. Bad body language involves stare at the floor, turn body side-ways, scowl, point finger, roll eyes, laugh, cross arms, slouch, etc.

Weather and Climate in Pakistan

Pakistan has three seasons: winter (November-March) is warm and cooled by sea breezes on the coast; summer (April-July) has extreme temperatures and the monsoon season (July-September) has the highest rainfall on the hills.

Karachi has little rain. The best time to visit southern Pakistan is between November and March, when the days are cool and clear. The best time to visit northern Pakistan is from April to October.

Pakistan poised to make Information Technology breakthrough

WASHINGTON: Pakistan could finally make the breakthrough in the IT market it has been seeking, according to a repoutable technical jounral.

A report in the California-based publication, Commerce Times, earlier this month said that irnoically, “the biggest boost” to Pakistan’s efforts to break into the global IT marketplace came on 28 September when India announced an income tax of more than 36 percent on foreign firms involved in software, R&D and customer service operations in India. The steep tax proposal had been in the works since the beginning of the year and now that it has been made law, it is expected to prompt US firms to follow General Electric’s lead in selling off assets in India, the journal said.

Body Language

One must know the importance of how one looks on the outside during interactions with others. If a person looks uninterested during a conversation, he will have a hard time making and keeping friends. If a person looks angry or annoyed when his boos tells him to do something, his boos may think he has a bad attitude. Following are some of the key points for practicing the good body language.

Thursday, July 8, 2010

What is FTP?

FTP stands for File Transfer Protocol, which is the standard Internet protocol for the transfer of files.

How do I upload my site using CuteFTP and WS_FTP?How do I upload my site using CuteFTP and WS_FTP?

In order to upload your site, you will need to download an FTP client such as CuteFTP, or WS_FTP.

Registered my domain name, now what? Why can't I find my web page?

A domain name tells visitors where you can be found on the Internet. However, after registering a domain you will still need a place to host your web page.


I.T Pakistan holds full capabilities to provide Internet and Intranet solutions for Enterprise Networking. We have complete solutions for Machines running on MS Windows environment. We provide assistance to have individual domains for corporate / individual Internet servers under Top-level Pakistan PK and with out PK Domains. We have complete facilities to host static and Database websites for customers who cannot afford a dedicated server.

Web Hosting :

Not happy with your current Hosting Provider, Information Technology Pakistan providing you most reliable and trustworthy Web Hosting.

Re-Design :

Not Happy with your current website design and colors. Ask Us for a Dream Website and get professional looking & beautiful website.

About us:

I.T Pakistan holds full capabilities to provide Internet and Intranet solutions for Enterprise Networking. We have complete solutions for Machines running on MS Windows environment. IT Pakistan services Provides base on internet services, web development, domain registration (We provide assistance to have individual domains for corporate / individual Internet servers under Top-level Pakistan PK and

with out PK Domains), hosting, networking solution. We have complete facilities to host static and Database websites.

The mission of the Information Technology Pakistan team is to ensure that our customers are successful in building, deploying, and migrating to Information Technology needs. We support that mission with a diverse team of business and technical experts ready to help you define your business objectives, design a dynamic Business to Consumer / Business to Business solution and implement it timely and cost-effectively.

Contact us and let us visit you to show the different ways that your company can benefit from Information Technology. Our consultants conduct a detailed evaluation of your current business processes and the systems that support them. We help you leverage what you have to move towards the next generation.

IT & Telecomm Division

The Ministry of Information Technology (MoIT) is the national focal Ministry and enabling arm of the Government of Pakistan for planning coordinating and directing efforts to initiate and launch Information Technology and Telecommunications programs and projects aimed at economic development of the country. MoIT consists of one division; Information Technology and Telecommunications Division. Please visit the web site of the Information Technology and Telecommunications Division for a more comprehensive and detailed information about its Policies, Publications, Information and Services, Forms, Tenders, Jobs, News & Press Releases, and Related Links.


Telephone Industries of Pakistan (TIP) was established in 1953 to manufacture telecommunication equipment. Telecom technologies are fastest changing technologies and local industry should be aligned with changing market requirements.

JOB OPPORTUNITIES - Ministry of Information Technology

Ministry of Information Technology invites applications from dynamic professionals for the following positions on contract basis

President Asif Ali Zardari inaugurates Universal Service Fund project to provide broadband internet in Southern Punjab

President Asif Ali Zardari inaugurated a project to provide Broadband Internet in Southern Punjab funded by Universal Service Fund (Ministry of IT) on April 22, 2010. The project was originally launched by President Zardari on January 20th 2010 and within a short span of a few months, more than 25,000 broadband connections have already been provided in 32 cities.

Pakistan Model for Emerging Telecom Sector: Latif Khan Khosa

ISLAMABAD: (17-05-2010) Minister Incharge/ Advisor to Prime Minister for Information Technology, Muhammad Latif Khan Khosa has said it is a known fact that the success of Telecom sector in Pakistan is globally recognized and Pakistan has emerged as a role model for other emerging telecom markets and reiterated the present government’s resolve and commitment to promote and support the initiatives to enhance Pakistan’s technological capacity to develop and produce a globally competitive Information and Communications Technology (ICT) sector and industry.

Information Technology - Trends:

Information Technology Departments will be increasingly concerned with data storage and management, and will find that information security will continue to be at the top of the priority list. Cloud computing remains a growing area to watch. The job outlook for those within Information Technology is strong, with data security and server gurus amongst the highest paid techies. Check out the Information Security Certifications and Highest Paying Certifications for more information. In order to stay current in the Information Technology Industry, be sure you subscribe to top technology industry publications.

Jobs in IT:

There can be a lot of overlap between many of the job descriptions within information technology departments. In order to clarify the descriptions, skills and career paths of each, I have put together a Jobs in IT listing. The jobs in IT listing includes information on education and training required for each position. It also includes lists of companies that typically have IT jobs open, as well as links to IT-specific resumes, cover letters and IT interview questions.

Information Technology Certifications:

Having a solid education and specific specialty certifications is the best way to progress in an information technology career. Here are some of the more popular information technology certifications:

Modern Information Technology Departments:

In order to perform the complex functions required of information technology departments today, the modern Information Technology Department would use computers, servers, database management systems, and cryptography. The department would be made up of several System Administrators, Database Administrators and at least one Information Technology Manager. The group usually reports to the Chief Information Officer (CIO).

History of Information Technology:

In relative terms, it wasn't long ago that the Information Technology department might have consisted of a single Computer Operator, who might be storing data on magnetic tape, and then putting it in a box down in the basement somewhere.

Information Technology – A Definition:

We use the term information technology or IT to refer to an entire industry. In actuality, information technology is the use of computers and software to manage information. In some companies, this is referred to as Management Information Services (or MIS) or simply as Information Services (or IS). The information technology department of a large company would be responsible for storing information, protecting information, processing the inform

What is CPU-Z

CPU-Z is a freeware that gathers information on some of the main devices of your system.

CPUName and number.Core stepping and process.Package.Core voltage.Internal and external clocks, clock multiplierSupported instruction sets.Cache information. MainboardVendor, model and revision.BIOS model and date.Chipset (northbridge and southbridge) and sensor.Graphic interface. MemoryFrequency and timings.Module(s) specification using SPD (Serial Presence Detect) : vendor, serial number, timings table. SystemWindows and DirectX version.

TechnologyGuide Review of the Day

Adobe Photoshop CS5 is the latest version of arguably the world's most popular pro image editor. Read more laptop reviews and software reviews at Check out the Apple iPad Review on and the Apple iPhone 4 Review on

overheard Learning Path

Authentication involves determining whether a user is, in fact, who he or she claims to be. User authentication is critical to ensure proper authorization and access to systems and services. Authentication can be conducted through the use of logon passwords, single sign-on (SSO) systems, biometrics, digital certificates and a public key infrastructure (PKI). Terms you need to know when discussing authentication include knowledge-based authentication (KBA), two-factor authentication (2FA) and multi-factor authentication (MFA).

Word of the Day

Identity Ecosystem, more formally known as the National Strategy for Trusted Identities in Cyberspace, is a proposal from the United States federal government to improve identity authentication on the Internet and make online transactions safer.


A computer is a device that accepts information (in the form of digitalized data) and manipulates it for some result based on a program or sequence of instructions on how the data is to be processed. Complex computers also include the means for storing data (including the program, which is also a form of data) for some necessary duration. A program may be invariable and built into the computer (and called logic circuitry as it is on microprocessors) or different programs may be provided to the computer (loaded into its storage and then started by an administrator or user). Today's computers have both kinds of programming.

Most histories of the modern computer begin with the Analytical EngineCharles Babbage following the mathematical ideas of George Boole, the mathematician who first stated the principles of logic inherent in today's digital computer. Babbage's assistant and collaborator, Ada Lovelace, is said to have introduced the ideas of program loops and subroutines and is sometimes considered the first programmer. Apart from mechanical calculators, the first really useable computers began with the vacuum tube, accelerated with the invention of the transistor, which then became embedded in large numbers in integrated circuits, ultimately making possible the relatively low-cost personal computer. envisioned by

Modern computers inherently follow the ideas of the stored program laid out by John von Neumann in 1945. Essentially, the program is read by the computer one instruction at a time, an operation is performed, and the computer then reads in the next instruction, and so on. Recently, computers and programs have been devised that allow multiple programs (and computers) to work on the same problem at the same time in parallel. With the advent of the Internet and higher bandwidth data transmission, programs and data that are part of the same overall project can be distributed over a network and embody the Sun Microsystems slogan: "The network is the computer."

Sharing Cable Modems

Good resource for information on sharing a cable modem connection with multiple computers. Contains clear, easy-to-follow instructions for both the PC and Mac, as well as other related resources.

Caching Proxy Servers

Describes what a proxy server is and how it works. Includes some advantages and disadvantages as well as notes on implementation.

The Truth About Servers

What makes a server a server? Is there a difference between an e-mail server and a messaging server? Should a firewall be considered a server in certain circumstances? These questions and more are answered in an extensive tutorial that cuts through the marketing hype and explains the basics of key server types. Discussion Forums

If network connections, sharing computers, router problems or other networking issues are bogging you down, then the discussion forum is the place to be. Here you'll find help and support for all your network-related problems. provides easy-to-understand help for small-network builders. The site contains how-to information for setting up and debugging home-office and small-business networks. Users can also find extensive troubleshooting information, tips on getting applications to work through firewalls, product reviews on network hardware and software, and more.

Open Networks Today

Networking news moves at a fast pace, and Open Networks Today lets you keep up with it. Open Networks Today offers its readers the ability to control how news is presented through customizing content filters, discussions, and news feed links.

Improve Performance

Proxy servers can dramatically improve performance for groups of users. This is because it saves the results of all requests for a certain amount of time. Consider the case where both user X and user Y access the World Wide Web through a proxy server. First user X requests a certain Web page, which we'll call Page 1. Sometime later, user Y requests the same page. Instead of forwarding the request to the Web server where Page 1 resides, which can be a time-consuming operation, the proxy server simply returns the Page 1 that it already fetched for user X. Since the proxy server is often on the same network as the user, this is a much faster operation. Real proxy servers support hundreds or thousands of users. The major online services such as America Online, MSN and Yahoo, for example, employ an array of proxy servers.

proxy server

A server that sits between a client application, such as a Web browser, and a real server. It intercepts all requests to the real server to see if it can fulfill the requests itself. If not, it forwards the request to the real server.


The performance or speed of a processor depends on e.g. the clock rate and the Instructions Per Clock (IPC), which together are the factors for the Instructions Per Second (IPS) that the CPU can perform.[19] Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches, whereas realistic workloads consist of a mix of instructions and applications, some of which take longer to execute than others. The performance of the memory hierarchy also greatly affects processor performance, an issue barely considered in MIPS calculations. Because of these problems, various standardized tests such as SPECint have been developed to attempt to measure the real effective performance in commonly used applications.

Processing performance of computers is increased by using multi-core processors, which essentially is plugging two or more individual processors (called cores in this sense) into one integrated circuit.[20] Ideally, a dual core processor would be nearly twice as powerful as a single core processor. In practice, however, the performance gain is far less, only about fifty percent[20], due to, e.g. imperfect software algorithms and implementation.

Data parallelism

A less common but increasingly important paradigm of CPUs (and indeed, computing in general) deals with data parallelism. The processors discussed earlier are all referred to as some type of scalar device.[17] As the name implies, vector processors deal with multiple pieces of data in the context of one instruction. This contrasts with scalar processors, which deal with one piece of data for every instruction. Using Flynn's taxonomy, these two schemes of dealing with data are generally referred to as SISD (single instruction, single data) and SIMD (single instruction, multiple data), respectively. The great utility in creating CPUs that deal with vectors of data lies in optimizing tasks that tend to require the same operation (for example, a sum or a dot product) to be performed on a large set of data. Some classic examples of these types of tasks are multimedia applications (images, video, and sound), as well as many types of scientific and engineering tasks. Whereas a scalar CPU must complete the entire process of fetching, decoding, and executing each instruction and value in a set of data, a vector CPU can perform a single operation on a comparatively large set of data with one instruction. Of course, this is only possible when the application tends to require many steps which apply one operation to a large set of data.

Most early vector CPUs, such as the Cray-1, were associated almost exclusively with scientific research and cryptography applications. However, as multimedia has largely shifted to digital media, the need for some form of SIMD in general-purpose CPUs has become significant. Shortly after floating point execution unitsMultimedia Acceleration eXtensions (MAX) and Intel's MMX were integer-only. This proved to be a significant impediment for some software developers, since many of the applications that benefit from SIMD primarily deal with floating point numbers. Progressively, these early designs were refined and remade into some of the common, modern SIMD specifications, which are usually associated with one ISA. Some notable modern examples are Intel's SSE and the PowerPC-related AltiVec (also known as VMX).[18] Also called clock rate, the speed at which a microprocessor executes instructions. Every computer contains an internal clock that regulates the rate at which instructions are executed and synchronizes all the various computer components. The CPU requires a fixed number of clock ticks (or clock cycles) to execute each instruction. The faster the clock, the more instructions the CPU can execute per second. started to become commonplace to include in general-purpose processors, specifications for and implementations of SIMD execution units also began to appear for general-purpose CPUs. Some of these early SIMD specifications like HP's

Thread level parallelism

Another strategy of achieving performance is to execute multiple programs or threads in parallel. This area of research is known as parallel computing. In Flynn's taxonomy, this strategy is known as Multiple Instructions-Multiple Data or MIMD.

One technology used for this purpose was multiprocessing (MP). The initial flavor of this technology is known as symmetric multiprocessing (SMP), where a small number of CPUs share a coherent view of their memory system. In this scheme, each CPU has additional hardware to maintain a constantly up-to-date view of memory. By avoiding stale views of memory, the CPUs can cooperate on the same program and programs can migrate from one CPU to another. To increase the number of cooperating CPUs beyond a handful, schemes such as non-uniform memory access (NUMA) and directory-based coherence protocols were introduced in the 1990s. SMP systems are limited to a small number of CPUs while NUMA systems have been built with thousands of processors. Initially, multiprocessing was built using multiple discrete CPUs and boards to implement the interconnect between the processors. When the processors and their interconnect are all implemented on a single silicon chip, the technology is known as a multi-core microprocessor.

It was later recognized that finer-grain parallelism existed with a single program. A single program might have several threads (or functions) that could be executed separately or in parallel. Some of earliest examples of this technology implemented input/output processing such as direct memory access as a separate thread from the computation thread. A more general approach to this technology was introduced in the 1970s when systems were designed to run multiple computation threads in parallel. This technology is known as multi-threadingUltraSPARC Technology. Another type of MT is known as simultaneous multithreading, where instructions of multiple threads are executed in parallel within one CPU clock cycle. (MT). This approach is considered more cost-effective than multiprocessing, as only a small number of components within a CPU is replicated in order to support MT as opposed to the entire CPU in the case of MP. In MT, the execution units and the memory system including the caches are shared among multiple threads. The downside of MT is that the hardware support for multithreading is more visible to software than that of MP and thus supervisor software like operating systems have to undergo larger changes to support MT. One type of MT that was implemented is known as block multithreading, where one thread is executed until it is stalled waiting for data to return from external memory. In this scheme, the CPU would then quickly switch to another thread which is ready to run, the switch often done in one CPU clock cycle, such as the

For several decades from the 1970s to early 2000s, the focus in designing high performance general purpose CPUs was largely on achieving high ILP through technologies such as pipelining, caches, superscalar execution, out-of-order execution, etc. This trend culminated in large, power-hungry CPUs such as the Intel Pentium 4. By the early 2000s, CPU designers were thwarted from achieving higher performance from ILP techniques due to the growing disparity between CPU operating frequencies and main memory operating frequencies as well as escalating CPU power dissipation owing to more esoteric ILP techniques.

CPU designers then borrowed ideas from commercial computing markets such as transaction processing, where the aggregate performance of multiple programs, also known as throughput computing, was more important than the performance of a single thread or program.

This reversal of emphasis is evidenced by the proliferation of dual and multiple core CMP (chip-level multiprocessing) designs and notably, Intel's newer designs resembling its less superscalar P6 architecture. Late designs in several processor families exhibit CMP, including the x86-64 Opteron and Athlon 64 X2, the SPARCUltraSPARC T1, IBM POWER4 and POWER5, as well as several video game consoleXbox 360's triple-core PowerPC design, and the PS3's 7-core Cell microprocessor. CPUs like the

Instruction level parallelism

One of the simplest methods used to accomplish increased parallelism is to begin the first steps of instruction fetching and decoding before the prior instruction finishes executing. This is the simplest form of a technique known as instruction pipelining, and is utilized in almost all modern general-purpose CPUs. Pipelining allows more than one instruction to be executed at any given time by breaking down the execution pathway into discrete stages. This separation can be compared to an assembly line, in which an instruction is made more complete at each stage until it exits the execution pipeline and is retired.

Pipelining does, however, introduce the possibility for a situation where the result of the previous operation is needed to complete the next operation; a condition often termed data dependency conflict. To cope with this, additional care must be taken to check for these sorts of conditions and delay a portion of the instruction pipeline if this occurs. Naturally, accomplishing this requires additional circuitry, so pipelined processors are more complex than subscalar ones (though not very significantly so). A pipelined processor can become very nearly scalar, inhibited only by pipeline stalls (an instruction spending more than one clock cycle in a stage).

Simple superscalar pipeline. By fetching and dispatching two instructions at a time, a maximum of two instructions per cycle can be completed.

Further improvement upon the idea of instruction pipelining led to the development of a method that decreases the idle time of CPU components even further. Designs that are said to be superscalar include a long instruction pipeline and multiple identical execution units. [15] In a superscalar pipeline, multiple instructions are read and passed to a dispatcher, which decides whether or not the instructions can be executed in parallel (simultaneously). If so they are dispatched to available execution units, resulting in the ability for several instructions to be executed simultaneously. In general, the more instructions a superscalar CPU is able to dispatch simultaneously to waiting execution units, the more instructions will be completed in a given cycle.

Most of the difficulty in the design of a superscalar CPU architecture lies in creating an effective dispatcher. The dispatcher needs to be able to quickly and correctly determine whether instructions can be executed in parallel, as well as dispatch them in such a way as to keep as many execution units busy as possible. This requires that the instruction pipeline is filled as often as possible and gives rise to the need in superscalar architectures for significant amounts of CPU cache. It also makes hazard-avoiding techniques like branch prediction, speculative execution, and out-of-order execution crucial to maintaining high levels of performance. By attempting to predict which branch (or path) a conditional instruction will take, the CPU can minimize the number of times that the entire pipeline must wait until a conditional instruction is completed. Speculative execution often provides modest performance increases by executing portions of code that may or may not be needed after a conditional operation completes. Out-of-order execution somewhat rearranges the order in which instructions are executed to reduce delays due to data dependencies. Also in case of Single Instructions Multiple Data - a case when a lot of data from the same type has to be processed, modern processors can disable parts of the pipeline so that when a single instruction is executed many times, the CPU skips the fetch and decode phases and thus greatly increasing performance on certain occasions, especially in highly monotonous program engines such as video creation software and photo processing.

In the case where a portion of the CPU is superscalar and part is not, the part which is not suffers a performance penalty due to scheduling stalls. The Intel P5Pentium had two superscalar ALUs which could accept one instruction per clock each, but its FPU could not accept one instruction per clock. Thus the P5 was integer superscalar but not floating point superscalar. Intel's successor to the P5 architecture, P6, added superscalar capabilities to its floating point features, and therefore afforded a significant increase in floating point instruction performance.

Both simple pipelining and superscalar design increase a CPU's ILP by allowing a single processor to complete execution of instructions at rates surpassing one instruction per cycle (IPC).[16] Most modern CPU designs are at least somewhat superscalar, and nearly all general purpose CPUs designed in the last decade are superscalar. In later years some of the emphasis in designing high-ILP computers has been moved out of the CPU's hardware and into its software interface, or ISA. The strategy of the very long instruction word (VLIW) causes some ILP to become implied directly by the software, reducing the amount of work the CPU must perform to boost ILP and thereby reducing the design's complexity.


The description of the basic operation of a CPU offered in the previous section describes the simplest form that a CPU can take. This type of CPU, usually referred to as subscalar, operates on and executes one instruction on one or two pieces of data at a time.

This process gives rise to an inherent inefficiency in subscalar CPUs. Since only one instruction is executed at a time, the entire CPU must wait for that instruction to complete before proceeding to the next instruction. As a result the subscalar CPU gets "hung up" on instructions which take more than one clock cycle to complete execution. Even adding a second execution unit (see below) does not improve performance much; rather than one pathway being hung up, now two pathways are hung up and the number of unused transistors is increased. This design, wherein the CPU's execution resources can operate on only one instruction at a time, can only possibly reach scalar performance (one instruction per clock). However, the performance is nearly always subscalar (less than one instruction per cycle).

Attempts to achieve scalar and better performance have resulted in a variety of design methodologies that cause the CPU to behave less linearly and more in parallel. When referring to parallelism in CPUs, two terms are generally used to classify these design techniques. Instruction level parallelism (ILP) seeks to increase the rate at which instructions are executed within a CPU (that is, to increase the utilization of on-die execution resources), and thread level parallelism (TLP) purposes to increase the number of threads (effectively individual programs) that a CPU can execute simultaneously. Each methodology differs both in the ways in which they are implemented, as well as the relative effectiveness they afford in increasing the CPU's performance for an application.[14]

Clock rate

Most CPUs, and indeed most sequential logic devices, are synchronous in nature.[11] That is, they are designed and operate on assumptions about a synchronization signal. This signal, known as a clock signal, usually takes the form of a periodic square wave. By calculating the maximum time that electrical signals can move in various branches of a CPU's many circuits, the designers can select an appropriate period for the clock signal.

This period must be longer than the amount of time it takes for a signal to move, or propagate, in the worst-case scenario. In setting the clock period to a value well above the worst-case propagation delay, it is possible to design the entire CPU and the way it moves data around the "edges" of the rising and falling clock signal. This has the advantage of simplifying the CPU significantly, both from a design perspective and a component-count perspective. However, it also carries the disadvantage that the entire CPU must wait on its slowest elements, even though some portions of it are much faster. This limitation has largely been compensated for by various methods of increasing CPU parallelism. (see below)

However, architectural improvements alone do not solve all of the drawbacks of globally synchronous CPUs. For example, a clock signal is subject to the delays of any other electrical signal. Higher clock rates in increasingly complex CPUs make it more difficult to keep the clock signal in phase (synchronized) throughout the entire unit. This has led many modern CPUs to require multiple identical clock signals to be provided in order to avoid delaying a single signal significantly enough to cause the CPU to malfunction. Another major issue as clock rates increase dramatically is the amount of heat that is dissipated by the CPU. The constantly changing clock causes many components to switch regardless of whether they are being used at that time. In general, a component that is switching uses more energy than an element in a static state. Therefore, as clock rate increases, so does heat dissipation, causing the CPU to require more effective cooling solutions.

One method of dealing with the switching of unneeded components is called clock gating, which involves turning off the clock signal to unneeded components (effectively disabling them). However, this is often regarded as difficult to implement and therefore does not see common usage outside of very low-power designs. One notable late CPU design that uses clock gating is that of the IBM PowerPC-based Xbox 360. It utilizes extensive clock gating in order to reduce the power requirements of the aforementioned videogame console it is used in. [12] Another method of addressing some of the problems with a global clock signal is the removal of the clock signal altogether. While removing the global clock signal makes the design process considerably more complex in many ways, asynchronous (or clockless) designs carry marked advantages in power consumption and heat dissipation in comparison with similar synchronous designs. While somewhat uncommon, entire asynchronous CPUs have been built without utilizing a global clock signal. Two notable examples of this are the ARM compliant AMULET and the MIPS R3000 compatible MiniMIPS. Rather than totally removing the clock signal, some CPU designs allow certain portions of the device to be asynchronous, such as using asynchronous ALUs in conjunction with superscalar pipelining to achieve some arithmetic performance gains. While it is not altogether clear whether totally asynchronous designs can perform at a comparable or better level than their synchronous counterparts, it is evident that they do at least excel in simpler math operations. This, combined with their excellent power consumption and heat dissipation properties, makes them very suitable for embedded computers [13].

Integer range

The way a CPU represents numbers is a design choice that affects the most basic ways in which the device functions. Some early digital computers used an electrical model of the common decimal (base ten) numeral system to represent numbers internally. A few other computers have used more exotic numeral systems like ternary (base three). Nearly all modern CPUs represent numbers in binary form, with each digit being represented by some two-valued physical quantity such as a "high" or "low" voltage.[9]

MOS 6502 microprocessor in a dual in-line package, an extremely popular 8-bit design.

Related to number representation is the size and precision of numbers that a CPU can represent. In the case of a binary CPU, a bit refers to one significant place in the numbers a CPU deals with. The number of bits (or numeral places) a CPU uses to represent numbers is often called "word size", "bit width", "data path width", or "integer precision" when dealing with strictly integer numbers (as opposed to floating point). This number differs between architectures, and often within different parts of the very same CPU. For example, an 8-bit CPU deals with a range of numbers that can be represented by eight binary digits (each digit having two possible values), that is, 28 or 256 discrete numbers. In effect, integer size sets a hardware limit on the range of integers the software run by the CPU can utilize.[10]

Integer range can also affect the number of locations in memory the CPU can address (locate). For example, if a binary CPU uses 32 bits to represent a memory address, and each memory address represents one octet (8 bits), the maximum quantity of memory that CPU can address is 232 octets, or 4 GiB. This is a very simple view of CPU address space, and many designs use more complex addressing methods like paging in order to locate more memory than their integer range would allow with a flat address space.

Higher levels of integer range require more structures to deal with the additional digits, and therefore more complexity, size, power usage, and general expense. It is not at all uncommon, therefore, to see 4- or 8-bit microcontrollers used in modern applications, even though CPUs with much higher range (such as 16, 32, 64, even 128-bit) are available. The simpler microcontrollers are usually cheaper, use less power, and therefore dissipate less heat, all of which can be major design considerations for electronic devices. However, in higher-end applications, the benefits afforded by the extra range (most often the additional address space) are more significant and often affect design choices. To gain some of the advantages afforded by both lower and higher bit lengths, many CPUs are designed with different bit widths for different portions of the device. For example, the IBM System/370 used a CPU that was primarily 32 bit, but it used 128-bit precision inside its floating point units to facilitate greater accuracy and range in floating point numbers [4]. Many later CPU designs use similar mixed bit width, especially when the processor is meant for general-purpose usage where a reasonable balance of integer and floating point capability is required.


The fundamental operation of most CPUs, regardless of the physical form they take, is to execute a sequence of stored instructions called a program. The program is represented by a series of numbers that are kept in some kind of computer memory. There are four steps that nearly all CPUs use in their operation: fetch, decode, execute, and writeback.

The first step, fetch, involves retrieving an instruction (which is represented by a number or sequence of numbers) from program memory. The location in program memory is determined by a program counter (PC), which stores a number that identifies the current position in the program. In other words, the program counter keeps track of the CPU's place in the current program. After an instruction is fetched, the PC is incremented by the length of the instruction word in terms of memory units.[6] Often the instruction to be fetched must be retrieved from relatively slow memory, causing the CPU to stall while waiting for the instruction to be returned. This issue is largely addressed in modern processors by caches and pipeline architectures (see below).

The instruction that the CPU fetches from memory is used to determine what the CPU is to do. In the decode step, the instruction is broken up into parts that have significance to other portions of the CPU. The way in which the numerical instruction value is interpreted is defined by the CPU's instruction set architecture (ISA).[7] Often, one group of numbers in the instruction, called the opcode, indicates which operation to perform. The remaining parts of the number usually provide information required for that instruction, such as operands for an addition operation. Such operands may be given as a constant value (called an immediate value), or as a place to locate a value: a register or a memory address, as determined by some addressing mode. In older designs the portions of the CPU responsible for instruction decoding were unchangeable hardware devices. However, in more abstract and complicated CPUs and ISAs, a microprogram is often used to assist in translating instructions into various configuration signals for the CPU. This microprogram is sometimes rewritable so that it can be modified to change the way the CPU decodes instructions even after it has been manufactured.

After the fetch and decode steps, the execute step is performed. During this step, various portions of the CPU are connected so they can perform the desired operation. If, for instance, an addition operation was requested, an arithmetic logic unit (ALU) will be connected to a set of inputs and a set of outputs. The inputs provide the numbers to be added, and the outputs will contain the final sum. The ALU contains the circuitry to perform simple arithmetic and logical operations on the inputs (like addition and bitwise operations). If the addition operation produces a result too large for the CPU to handle, an arithmetic overflow flag in a flags register may also be set.

The final step, writeback, simply "writes back" the results of the execute step to some form of memory. Very often the results are written to some internal CPU register for quick access by subsequent instructions. In other cases results may be written to slower, but cheaper and larger, main memory. Some types of instructions manipulate the program counter rather than directly produce result data. These are generally called "jumps" and facilitate behavior like loops, conditional program execution (through the use of a conditional jump), and functions in programs.[8] Many instructions will also change the state of digits in a "flags" register. These flags can be used to influence how a program behaves, since they often indicate the outcome of various operations. For example, one type of "compare" instruction considers two values and sets a number in the flags register according to which one is greater. This flag could then be used by a later jump instruction to determine program flow.

After the execution of the instruction and writeback of the resulting data, the entire process repeats, with the next instruction cycle normally fetching the next-in-sequence instruction because of the incremented value in the program counter. If the completed instruction was a jump, the program counter will be modified to contain the address of the instruction that was jumped to, and program execution continues normally. In more complex CPUs than the one described here, multiple instructions can be fetched, decoded, and executed simultaneously. This section describes what is generally referred to as the "Classic RISC pipeline", which in fact is quite common among the simple CPUs used in many electronic devices (often called microcontroller). It largely ignores the important role of CPU cache, and therefore the access stage of the pipeline.


The introduction of the microprocessor in the 1970s significantly affected the design and implementation of CPUs. Since the introduction of the first commercially available microprocessor (the Intel 4004) in 1970 and the first widely used microprocessor (the Intel 8080) in 1974, this class of CPUs has almost completely overtaken all other central processing unit implementation methods. Mainframe and minicomputer manufacturers of the time launched proprietary IC development programs to upgrade their older computer architectures, and eventually produced instruction set compatible microprocessors that were backward-compatible with their older hardware and software. Combined with the advent and eventual vast success of the now ubiquitous personal computer, the term "CPU" is now applied almost exclusively to microprocessors.

Previous generations of CPUs were implemented as discrete components and numerous small integrated circuits (ICs) on one or more circuit boards. Microprocessors, on the other hand, are CPUs manufactured on a very small number of ICs; usually just one. The overall smaller CPU size as a result of being implemented on a single die means faster switching time because of physical factors like decreased gate parasitic capacitance. This has allowed synchronous microprocessors to have clock rates ranging from tens of megahertz to several gigahertz. Additionally, as the ability to construct exceedingly small transistors on an IC has increased, the complexity and number of transistors in a single CPU has increased dramatically. This widely observed trend is described by Moore's law, which has proven to be a fairly accurate predictor of the growth of CPU (and other IC) complexity to date.

While the complexity, size, construction, and general form of CPUs have changed drastically over the past sixty years, it is notable that the basic design and function has not changed much at all. Almost all common CPUs today can be very accurately described as von Neumann stored-program machines. As the aforementioned Moore's law continues to hold true, concerns have arisen about the limits of integrated circuit transistor technology. Extreme miniaturization of electronic gates is causing the effects of phenomena like electromigration and subthreshold leakage to become much more significant. These newer concerns are among the many factors causing researchers to investigate new methods of computing such as the quantum computer, as well as to expand the usage of parallelism and other methods that extend the usefulness of the classical von Neumann model.

Discrete transistor and Integrated Circuit CPUs

The design complexity of CPUs increased as various technologies facilitated building smaller and more reliable electronic devices. The first such improvement came with the advent of the transistor. Transistorized CPUs during the 1950s and 1960s no longer had to be built out of bulky, unreliable, and fragile switching elements like vacuum tubes and electrical relays. With this improvement more complex and reliable CPUs were built onto one or several printed circuit boards containing discrete (individual) components.

During this period, a method of manufacturing many transistors in a compact space gained popularity. The integrated circuit (IC) allowed a large number of transistors to be manufactured on a single semiconductor-based die, or "chip." At first only very basic non-specialized digital circuits such as NOR gates were miniaturized into ICs. CPUs based upon these "building block" ICs are generally referred to as "small-scale integration" (SSI) devices. SSI ICs, such as the ones used in the Apollo guidance computer, usually contained transistor counts numbering in multiples of ten. To build an entire CPU out of SSI ICs required thousands of individual chips, but still consumed much less space and power than earlier discrete transistor designs. As microelectronic technology advanced, an increasing number of transistors were placed on ICs, thus decreasing the quantity of individual ICs needed for a complete CPU. MSI and LSI (medium- and large-scale integration) ICs increased transistor counts to hundreds, and then thousands.


Computers such as the ENIAC had to be physically rewired in order to perform different tasks, these machines are "fixed-program computers." Since the term "CPU" is generally defined as a software (computer program) execution device, the earliest devices that could rightly be called CPUs came with the advent of the stored-program computer.

The idea of program computer was already present in the design of J. Presper Eckert and John William Mauchly's ENIAC, but was initially omitted so the machine could be finished sooner. On June 30, 1945, before ENIAC was even completed, mathematician John von NeumannFirst Draft of a Report on the EDVAC". It outlined the design of a stored-program computer that would eventually be completed in August 1949 [2]. EDVAC was designed to perform a certain number of instructions (or operations) of various types. These instructions could be combined to create useful programs for the EDVAC to run. Significantly, the programs written for EDVAC were stored in high-speed computer memory rather than specified by the physical wiring of the computer. This overcame a severe limitation of ENIAC, which was the considerable time and effort required to reconfigure the computer to perform a new task. With von Neumann's design, the program, or software, that EDVAC ran could be changed simply by changing the contents of the computer's memory.[3] distributed the paper entitled "

Central processing unit

The Central Processing Unit (CPU) or the processor is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions. This term has been in use in the computer industry at least since the early 1960s [1]. The form, design and implementation of CPUs have changed dramatically since the earliest examples, but their fundamental operation remains much the same.

Early CPUs were custom-designed as a part of a larger, sometimes one-of-a-kind, computer. However, this costly method of designingtransistor mainframes and minicomputers and has rapidly accelerated with the popularization of the integrated circuit (IC). The IC has allowed increasingly complex CPUs to be designed and manufactured to tolerances on the order of nanometers. Both the miniaturization and standardization of CPUs have increased the presence of these digital devices in modern life far beyond the limited application of dedicated computing machines. Modern microprocessors appear in everything from automobiles to cell phones and children's toys. custom CPUs for a particular application has largely given way to the development of mass-produced processors that are made for one or many purposes. This standardization trend generally began in the era of discrete

How to Upgrade a Processor in a Desktop Read more: How to Upgrade a Processor in a Desktop |

Upgrading your personal computer's processor is a good way to immediately increase its performance. Your processor is the primary component that allows your computer to function, and any program run on your computer will use the processor to some degree. Upgrading your processor will make your computer faster, and allow it to run more demanding, complex programs. Upgrading your computer's processor will require both research and the ability to install computer hardware.

3-tier application

A 3-tier application is an application program that is organized into three major parts, each of which is distributed to a different place or places in a network. The three parts are:
  • The workstation or presentation interface
  • The business logic
  • The database and programming related to managing it

In a typical 3-tier application, the application user's workstation contains the programming that provides the graphical user interface (GUI) and application-specific entry forms or interactive windows. (Some data that is local or unique for the workstation user is also kept on the local hard disk.)

Business logic is located on a local area network (LAN) server or other shared computer. The business logic acts as the server for client requests from workstations. In turn, it determines what data is needed (and where it is located) and acts as a client in relation to a third tier of programming that might be located on a mainframe computer.

The third tier includes the database and a program to manage read and write access to it. While the organization of an application can be more complicated than this, the 3-tier view is a convenient way to think about the parts in a large-scale program.

A 3-tier application uses the client/server computing model. With three tiers or parts, each part can be developed concurrently by different team of programmers coding in different languages from the other tier developers. Because the programming for a tier can be changed or relocated without affecting the other tiers, the 3-tier model makes it easier for an enterprise or software packager to continually evolve an application as new needs and opportunities arise. Existing applications or critical parts can be permanently or temporarily retained and encapsulated within the new tier of which it becomes a component.


Midnight UTC on January 1, 2001 marked the beginning of the third millennium on the Western world's Gregorian calendar. 2001 is also the name of the 1968 movie, written by Arthur C. Clarke and directed by Stanley Kubrick, that shaped views of the future for several decades, especially about what future computers might be like. HAL (officially HAL 9000) is the human-like computer that manages the spaceship in the movie. HAL (the script says that HAL stands for "Heuristically Programmed ALgorithmic computer" but the letters in the name are one letter away from "IBM") is programmed to think and talk like a human being, an artificial intelligence combining people skills with ruthless calculation. As the movie became part of history and the real 2001 approached, new views of technology tended toward the envisionment of a globally networked "intelligence" for which William Gibson's matrix in his fictional Neuromancer and the real World Wide Web seemed to be harbingers.

Antikythera mechanism

The Antikythera mechanism is an analog computer that was used by the Greeks more than 2000 years ago to locate and predict the positions of celestial objects. When new, the device was made of bronze with a wooden frame and was roughly the size of a wall clock. The name Antikythera comes from the island near where the device was discovered in the remains of a shipwreck that occurred in or around the year 76 B.C.


Grayscale is a range of shades of gray without apparent color. The darkest possible shade is black, which is the total absence of transmitted or reflected light. The lightest possible shade is white, the total transmission or reflection of light at all visible wavelength s. Intermediate shades of gray are represented by equal brightness levels of the three primary colors (red, green and blue) for transmitted light, or equal amounts of the three primary pigments (cyan, magenta and yellow) for reflected light.

In the case of transmitted light (for example, the image on a computer display), the brightness levels of the red (R), green (G) and blue (B) components are each represented as a number from decimal 0 to 255, or binary 00000000 to 11111111. For every pixel in a red-green-blue ( RGB ) grayscale image, R = G = B. The lightness of the gray is directly proportional to the number representing the brightness levels of the primary colors. Black is represented by R = G = B = 0 or R = G = B = 00000000, and white is represented by R = G = B = 255 or R = G = B = 11111111. Because there are 8 bit s in the binary representation of the gray level, this imaging method is called 8-bit grayscale.

11th Dimension

The 11th dimension is a characteristic of space-time that has been proposed as a possible answer to questions that arise in superstring theory. The theory of superstrings involves the existence of nine dimensions of space and one dimension of time (a total of 10 dimensions). According to this notion, we observe only three spatial dimensions and one time dimension because the other six spatial dimensions are "curled up" or "compactified."

According to superstring theory, all of the elementary particles in the universe are composed of vibrating, one-dimensional mathematical objects known as strings. The theory does not explicitly state what the strings are made of or where they come from; rather, they are proposed as geometric ideals. Each string has a length of only 10-35 meters, many times smaller than the diameter of the nucleus of an atom. Any given subatomic particle (or hadron) is made of a string that vibrates and rotates at the speed of light. A particular hadron gets its unique identity from the manner in which the string rotates and vibrates according to the dynamics of Einstein's theory of general relativity. The frequency of vibration corresponds to the mass of the particle.