Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Instructions per cycle
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Average number of instructions executed for each clock cycle}} {{More citations needed|date=February 2008}} In [[computer architecture]], '''instructions per cycle''' ('''IPC'''), commonly called '''instructions per clock''', is one aspect of a [[central processing unit|processor]]'s performance: the average number of [[instruction (computer science)|instruction]]s executed for each [[clock cycle]]. It is the [[multiplicative inverse]] of [[cycles per instruction]].<ref>{{Cite book |last=Patterson |first=David A. |url=https://www.worldcat.org/title/859555917 |title=Computer organization and design: the hardware/software interface |last2=Hennessy |first2=John L. |date=2014 |publisher=Elsevier/Morgan Kaufmann, Morgan Kaufmann is an imprint of Elsevier |isbn=978-0-12-407726-3 |edition=5th |series=The Morgan Kaufmann series in computer architecture and design |location=Amsterdam ; Boston |oclc=859555917}}</ref><ref> {{Cite book |last=Hennessy |first=John L. |url=https://books.google.com/books?id=57UIPoLt3tkC&dq=patterson+CPI+IPC&pg=PA253 |title=Computer Architecture: A Quantitative Approach |last2=Patterson |first2=David A. |date=2006-11-03 |publisher=Elsevier |isbn=978-0-08-047502-8 |language=en}}</ref><ref>{{Cite book |last=Stallings |first=William |title=Computer organization and architecture: designing for performance |date=2016 |publisher=Pearson-Prentice Hall |isbn=978-0-13-410161-3 |edition=Tenth |location=Boston}}</ref> == Explanation == While early generations of CPUs carried out all the steps to execute an instruction sequentially, modern CPUs can do many things in parallel. As it is impossible to just keep doubling the speed of the clock, [[instruction pipelining]] and [[superscalar processor]] design have evolved so CPUs can use a variety of execution units in parallel - looking ahead through the incoming instructions in order to optimise them. This leads to the ''instructions per cycle completed'' being much higher than 1 and is responsible for much of the speed improvements in subsequent CPU generations. === Calculation of IPC === The calculation of IPC is done through running a set piece of code, calculating the number of machine-level instructions required to complete it, then using high-performance timers to calculate the number of clock cycles required to complete it on the actual hardware. The final result comes from dividing the number of instructions by the number of CPU clock cycles. The number of [[instructions per second]] and [[flops|floating point operations per second]] for a processor can be derived by multiplying the number of instructions per cycle with the [[clock rate]] (cycles per second given in [[Hertz]]) of the processor in question. The number of instructions per second is an approximate indicator of the likely performance of the processor. The number of instructions executed per clock is not a constant for a given processor; it depends on how the particular [[software]] being run interacts with the processor, and indeed the entire machine, particularly the [[memory hierarchy]]. However, certain processor features tend to lead to designs that have higher-than-average IPC values; the presence of multiple [[arithmetic logic unit]]s (an ALU is a processor subsystem that can perform elementary arithmetic and logical operations), and short pipelines. When comparing different [[instruction set]]s, a simpler instruction set may lead to a higher IPC figure than an implementation of a more complex instruction set using the same chip technology; however, the more complex instruction set may be able to achieve more useful work with fewer instructions. As such comparing IPC figures between different instruction sets (for example x86 vs ARM) is usually meaningless. == Computer speed == The useful work that can be done with any computer depends on many factors besides the processor speed. These factors include the [[instruction set architecture]], the processor's [[microarchitecture]], and the computer system organization (such as the design of the [[disk storage]] system and the capabilities and performance of other attached devices), the efficiency of the [[operating system]], and the high-level design of [[application software]]. For computer users and purchasers, application [[Benchmark (computing)|benchmark]]s, rather than instructions per cycle, are typically a much more useful indication of system performance. However, IPC does provide an example of why [[clock speed]] is not the only factor relevant to computer performance. == See also == * [[Instructions per second]] * [[Cycles per instruction]] * [[FLOPS]] * [[Megahertz myth]] * [[Benchmark (computing)]] == References == {{reflist}}{{CPU technologies}} [[Category:Instruction processing]] [[Category:Clock signal]] [[Category:Rates]] [[Category:Computer performance]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:CPU technologies
(
edit
)
Template:Cite book
(
edit
)
Template:More citations needed
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)