lect23 - CMSC 216 Introduction to Computer Systems Lecture...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CMSC 216 Introduction to Computer Systems Lecture 23 Optimization Jan Plane & Pete Keleher {jplane, keleher}@cs.umd.edu Administrivia Read Sections 2.2-2.4 and 7.6-7.13 of Bryant and OHallaron Final Exam Thursday, Dec 15 4:00-6:00 pm EGR 1202 O PTIMIZING P ROGRAM P ERFORMANCE Chapter 5, Bryant & O'Hallaron How processors spend their time Not all instructions take the same amount of time; some are more expensive Processors have caches to keep copies of recently accessed memory locations in fast storage a recently accessed memory location is more likely to be accessed again soon each cache item stores multiple data items (called the line size ) the same instruction may take different amounts of time different times its executed - misses from the cache can be ten to a hundred times slower efficiency will be maximized if the same cache items are used multiple times Understanding modern processors It's helpful to know a bit about what a compiler can and can't do, as well as what takes time on the hardware Pipelining parts of multiple instructions can execute simultaneously, such as decoding one instruction while loading the next one from memory Branch prediction the processor guesses which way a branch will go, which allows the pipeline to stay full Superscalar processors can execute two or more instructions at once Some floating point operations (e.g., division) can take longer than integer (or other f.p.) operations perhaps 5 to 10 times longer for the same operation Understanding modern processors It's helpful to know a bit about what a compiler can and can't do, as well as what takes time on the hardware Pipelining parts of multiple instructions can execute simultaneously, such as decoding one instruction while loading the next one from memory Branch prediction the processor guesses which way a branch will go, which allows the pipeline to stay full...
View Full Document

Page1 / 9

lect23 - CMSC 216 Introduction to Computer Systems Lecture...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online