Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ON
BY
PRESENTED TO
THE DEPARTMENT OF COMPUTER ENGINEERING
FACULTY OF ENGINEERING
SEPTEMBER, 2012
CERIFICATION
--------------------------------- -------------------------
Signature Date
ii
APPROVAL PAGE
--------------------------------- ------------------------------
ENGR. ARIYO IBIYEMI MR.IKECHUKWU ONAH
(Seminar supervisor) (Head of department)
-------------------- ----------------------
DATE DATE
iii
DEDICATION
iv
ACKNOWLEDGEMENT
v
TABLE OF CONTENTS
Title page i
Certification ii
Approval Page iii
Dedication iv
Acknowledgement v
Abstract vi
Table of Contents vii
CHAPTER ONE
1.0 INTRODUCTION 1
1.1 Power Trends for Current Microprocessors 5
CHAPTER THREE
2.0 Working with the L0 CACHE 6
2.1 pipeline Micro Architecture 7
2.2 Branch Prediction & Confidence Estimation – A
Brief Overview 7
CHAPTER THREE 12
3.0 What is Dynamic Cache Management Technique 12
3.1 Basic Idea of the Dynamic Management Scheme 13
3.2 Dynamic Techniques for l0-cache Management 14
3.3 Simple Method 14
3.4 Static Method 15
3.5 Dynamic Confidence Estimation Method 16
3.6 Restrictive Dynamic Confidence Estimation Method 16
vi
3.7 Dynamic Distance Estimation Method 17
18
CHAPTER FOUR
Comparison of Dynamic Techniques
19
CHAPTER SEVEN
4.0 Conclusion
REFERENCES
vii
LIST OF FIGURES
viii
CHAPTER ONE
1.0 INTRODUCTION
1
instruction memory hierarchy entails high energy demands for
the on-chip I-Cache subsystem.
Chapter 2
EXISTING SYSTEM (should include Literature Survey and
Disadvantages of Existing System)
2
execution has traditionally been ignored in code optimization
and architectural design.
Figure 1
3
cell, the cell is refreshed. The DRAM cells need to be refreshed
very frequently, i.e. typically every 4 to 16ms. this slows down
the entire process. SRAM on the other hand consists of flip-
flops, which stay in its state as long as the power supply is on.
(A flip-flop is an electrical circuit composed of transistors and
resistors. See picture) Because of this SRAM need not be
refreshed and is over 10 times faster than DRAM. Flip-flops,
however, are implemented using complex circuitry which
makes SRAM much larger and more expensive, limiting its
use.
The second part is the data cache, which contains data from
the RAM and data recently used during processor operations.
4
Figure 2 - An instruction cache
5
intermediary between the processor, with its internal
cache, and the RAM. It can be accessed more rapidly
than the RAM, but less rapidly than the level one cache.
Level three cache memory (called L3 Cache, for Level 3
Cache) is located on the motherboard.
6
CHAPTER TWO
Figure 3
7
2.1 PIPELINE MICRO ARCHITECTURE
Figure 4
8
Figure 5
9
• Parallel–all the sources are accessed in parallel;
10
2.2 BRANCH PREDICTION & CONFIDENCE ESTIMATION –
A BRIEF OVERVIEW
11
Figure 6
3. Confidence Estimation
12
particular branch. If the branch predictor predicted a branch
correctly most of the time, the confidence estimator would
designate the prediction as ‘high confidence’ otherwise as ‘low
confidence’.
13
Chapter 3
PROPOSED SYSTEM
14
Unusual Behavior of the Branches
1. Simple Method.
2. Static Method.
15
3. Dynamic Confidence Estimation Method.
The first rule for accessing the I-cache is due to the fact that a
mispredicted ‘high confidence’ branch behaves ‘unusually’
and drives the program to an infrequently executed
portion of the code. The second rule is due to the fact that a
series of ‘low confidence’ branches will also suffer from the
same problem since the probability that they all are predicted
correctly is low.
18
The dynamic distance estimation method is based on the fact
that, a mispredicted branch triggers a series of successive
mispredicted branches. The method works as follows:
19
Chapter 4
COMPARISONS
On the other hand if the block size increase does not have a
large impact on the hit ratio, the energy dissipation may go
up, since a cache with a larger block size is less energy
efficient than a cache with the same size but smaller block
size.
20
The simple method and restrictive dynamic confidence
estimation method address the problem from another angle.
They make the assumption:
21
Chapter 6
FUTURE SCOPE
When the Web was first emerging onto the scene, it was simple. Individual web pages
were self-contained static blobs of text, with, if you were lucky maybe an image or two.
The HTTP protocol was designed to be "dumb". It knew nothing of the relationship
between an HTML page and the images it contained. There was no need to. Every
request for a URI (web page, image, download, etc.) was a completely separate request.
That kept everything simple, and made it very fault tolerant. A server never sat around
waiting for a browser to tell it "OK, I'm done!"
Much e-ink has been spilled (can you even do that?) already discussing the myriad of
ways in which the web is different today, mostly in the context of either HTML5 or web
applications (or both). Most of it is completely true, although there's plenty of hyperbole
to go around. One area that has not gotten much attention at all, though, is HTTP.
Well, that's not entirely true. HTTP is actually a fairly large spec, with a lot of exciting
moving parts that few people think about because browsers offer no way to use them
from HTML or just implement them very very badly. (Did you know that there is a
PATCH command defined in HTTP? Really.) A good web services implementation (like
we're trying to bake into Drupal 8 as part of the Web Services and Context Core
Initiative </shamelessplug>) should leverage those lesser-known parts, certainly, but the
modern web has more challenges than just using all of a decades-old spec.
Most significantly, HTTP still treats all URIs as separate, only coincidentally-related
resources.
Caching is broken
22
The web naturally does a lot of caching. When you request a page from a server, rarely is
it pulled directly off of the hard drive at the other end. The file, assuming it is actually a
file (this is important), may get cached by the operating system's file system cache, by a
reverse proxy cache such as Varnish, by a Content Delivery Network, by an intermediary
server somewhere in the middle, and finally by your browser. On a subsequent request,
the layer closest to you with an unexpired cache will respond with its cached version.
In concept that's great, as it means the least amount of work is done to get what you
want. In practice, it doesn't work so well for a variety of reasons.
For one, that model was built on the assumption of a mostly-static web. All URIs are just
physical files sitting on disk that change every once in a while. Of course, we don't live in
that web anymore. Most web "pages" are dynamically generated from a content
management system of some sort.
For another, that totally sucks during development. Who remembers the days of telling
your client "no, really, I did upload a new version of the file. You need to clear your
browser cache. Hold down shift and reload. Er, wait, that's the other browser. Hit F5
twice. No, really fast. Faster." Yeah, it sucked. There's ways to configure the HTTP
headers to not cache files, but that is a pain (how many web developers know how to
mess with Apache .htaccess files?), and you have to remember to turn that off for
production or you totally hose performance. Even now, Drupal appends junk characters
to the end of CSS URLs just to bypass this sort of caching.
Finally, there's the browsers. Their handling of HTTP cache headers (which are
surprisingly complex) has historically not been all that good. What's more, in many cases
the browser will simply bypass its own cache and still check the network for a new
version.
Now, normally, that's OK. The HTTP spec says, and most browsers obey, that when
requesting a resource that a browser already has an older cached copy of it should
include the last updated date of its version of the file in the request, saying in essence "I
want file foo.png, my copy is from October 1st." The server can then respond with either
a 304 Not Modified ("Yep, that's still the right one") or a 200 OK ("Dude, that's so
old, here's the new one"). The 304 response saves resending the file, but doesn't help
with the overhead of the HTTP request itself. That request is not cheap, especially on
high-latency mobile networks, and especially when browsers refuse to have more than 4-
6 requests outstanding.
23
Chapter 7
CONCLUSION
7.0 CONCLUSION
24
REFERENCES
25