Subscribe by Email


Showing posts with label Cache. Show all posts
Showing posts with label Cache. Show all posts

Monday, April 29, 2013

What is cache memory?


Cache memory is a certain memory aid for computers that speeds them up very well. 
- In cache memory, the storage of the data is transparent so as to make the processing of the future requests faster. 
- A cache might store in it the values that have already computed or duplicate of some values stored somewhere else in the memory. 
- Whenever some data is requested, it is first looked up in the cache memory. - If the data is found here, it is returned to the processor and this is called a ‘cache hit’. 
- In this case the time taken for accessing the data is reduced. 
- This access is thus faster than that of the main memory. 
- Another case is of cache miss when the required data is not found in the cache.
- Then again the data has to be fetched or computed from its original source or the storage location which is slow as obvious. 
- The overall performance of the system increases in proportion with the number of requests that can be served from the cache memory.
- In order to maintain the cost efficiency as well as efficiency in data usage, the size of the cache is kept relatively small as compared to the main memory. 
However, the caches have proven themselves from time to time because of their ability to recognize the patterns of access in the applications having some locality of reference. 
- Temporal locality is exhibited by the references if the data that was previously requested is requested once again.
- These references apart from temporal locality also exhibit spatial locality if the storage location of the requested data is close to the data that was previously requested.

How is cache implemented?

- The cache is implemented as a memory block by the hardware and as a place of temporary storage. 
- Here, only that data is stored which is likely to be accessed again and again. 
Caches are not only used by hard drives and CPUs but also by the web servers and browsers. 
- Pools of entries together make up the cache. 
- Each entry has a datum associated with and a copy of it is stored in the backing store. 
- Each entry is also tagged for the specification of the datum’s identity in the backing store.
- When a datum is required to be accessed by a cache client (it might be an operating system, CPU or web browser.) that it thinks might be available in the backing store, the cache is first checked. 
- If the desired entry is found, it is returned for the use. This is cache hit.
- Similarly, a web browser might look in its local cache available at the disk to see if it has the contents of a web page. 
- In this case the URL serves as the searching tag and the contents are the datum. 
- The rate of successful cache accesses is known as the hit rate of the cache.
- In case of a cache miss, the datum not cached is copied in to the cache so as to prevent future cache misses. 
- For making space for this datum, some already existing datum in the cache is removed. 
- Which datum is to be removed is determined by using the replacement algorithms. 


Sunday, July 15, 2012

Describe some Caching Issues?


We all are familiar with what a cache is? 
"A cache can be defined as a memory component that is held for storing the data transparently in order to speed up the future serving of the data requests."
The data stored in a cache might be the data that has been required earlier for some operations. 

There are two events related to cache as mentioned below:

1. Cache hit: When the requested data is available in cache and
2. Cache miss: When the requested data is not available in cache and has to be looked up in to the RAM.

- The speed of processing is directly proportional to the number of requests that can be served via the cache. 
- Cache memories are quite costly and hence to make it cost efficient and keep the data usage as efficient as possible, smaller caches are used. 
- But since the time of its advent, cache has proven itself in the field of computing. 

"Caching can be thought of as a technique that is aimed at increasing the computing performance by keeping in itself the frequently accessed data."

There are basically three kinds of caching as we have stated below:

1. Caching output caching: In this type of caching the dynamic output that had been generated up on a request.
2. Fragment caching: In this type of caching the portion of the page that is generated by the request is cached since in many situations it is not practical to cache the whole page at once.
3. Data caching: In this type of caching the objects are cached pro grammatically.

What are different caching issues?


In this article we have taken in to discussion some very prominent caching issues. Most of the people experience problem in server caching of certain files. 
There are four major caching issues have been recognized which have been mentioned below:
1. Designing of a custom cache.
2. Securing of a custom cache.
3. Monitoring of a custom cache and lastly.
4. Synchronization of the caches in a server farm.

Besides these four major caching issues, there are many other minor caching issues.
- Some times it happens that the package delivery fails or an object or element appears like it has been corrupted and seems like such a failure has not got anything to do with the connection! 
- In such cases you can go on with a cache clear up. 
- If the situation is worse, you may also require clearing up the proxy cache!
- Web sites and browsers are looked up as a means of optimizing the resources which is done by them so well that they end up breaking down your dynamic web site content. 
- Your web site is not updated as you thought it will be done. 

Let us see an example, suppose you own a music web site which you frequently update with new music. Your clients come to your site every day so what happens is that the cache forces the web site to list the cached version of the play list and so the clients would never be able to listen to new and the latest music.

Such situation though enhances your internet experience, can also cause many other problems! Some times the cache will stash up an old page of the web site instead of showing up the latest one. You should make it a point to empty your browser’s cache from time to time. There are many internet service providers that cache pages to speed up the internet access like AOL. All the web pages that you visit are stashed up in the cache. 


Monday, December 21, 2009

Difference between buffer and cache ?

A buffer is a region of memory used to temporarily hold output or input data.Buffers can be implemented in either hardware or software, but the vast majority of buffers are implemented in software. Buffers are used when there is a difference between the rate at which data is received and the rate at which it can be processed.

The terms "buffer" and "cache" are not mutually exclusive and the functions are frequently combined; however, there is a difference in intent. A buffer is a temporary memory location, that is traditionally used because CPU instructions cannot directly address data stored in peripheral devices. Thus, addressable memory is used as intermediate stage.

Additionally such a buffer may be feasible when a large block of data is assembled or disassembled (as required by a storage device), or when data may be delivered in a different order than that in which it is produced. Also a whole buffer of data is usually transferred sequentially (for example to hard disk), so buffering itself sometimes increases transfer performance. These benefits are present even if the buffered data are written to the buffer once and read from the buffer once.

A cache also increases transfer performance. A part of the increase similarly comes from the possibility that multiple small transfers will combine into one large block. But the main performance-gain occurs because there is a good chance that the same datum will be read from cache multiple times, or that written data will soon be read. A cache's sole purpose is to reduce accesses to the underlying slower storage. Cache is also usually an abstraction layer that is designed to be invisible from the perspective of neighboring layers.


Thursday, December 17, 2009

CPU Caching

The cache on your CPU has become a very important part of today's computing. The cache is a very high speed and very expensive piece of memory, which is used to speed up the memory retrieval process. Without the cache memory every time the CPU requested data it would send a request to the main memory which would then be sent back across the memory bus to the CPU. This is a slow process in computing terms. The idea of the cache is that this extremely fast memory would store and data that is frequently accessed and also if possible the data that is around it.

CPU's however use a 2 level cache system. The level 1 cache is the fastest and smallest memory, level 2 cache is larger and slightly slower but still smaller and faster than the main memory. The main problem with having too much cache memory is that the CPU will always check the cache memory before the main system memory.

Read cache is used to store copies of data and instructions that are retrieved from main memory or mass storage. If the central processing unit (CPU) needs to access the same data or instructions again, it can use the copy in read cache. This is much faster the going back to main memory or mass storage again. Write cache is a temporary store for data that needs to be written to main memory or mass storage. The CPU can move the data into cache very quickly, and then continue executing instructions. The data is subsequently moved to its permanent location by the cache controller, a process that takes more time because main memory and mass storage devices are much slower to access than cache memory.


Introduction to Caching

Caching is a well-known concept where programs continually access the same set of instructions, a massive performance benefit can be realized by storing those instructions in RAM. This prevents the program from having to access the disk thousands or even millions of times during execution by quickly retrieving them from RAM.
A cache is made up of a pool of entries. Each entry has a datum (a nugget of data) - a copy of the same datum in some backing store. Each entry also has a tag, which specifies the identity of the datum in the backing store of which the entry is a copy.
When the cache client (a CPU, web browser, operating system) needs to access a datum presumed to exist in the backing store, it first checks the cache. If an entry can be found with a tag matching that of the desired datum, the datum in the entry is used instead. This situation is known as a cache hit. The alternative situation, when the cache is consulted and found not to contain a datum with the desired tag, has become known as a cache miss. The previously uncached datum fetched from the backing store during miss handling is usually copied into the cache, ready for the next access.
When a system writes a datum to the cache, it must at some point write that datum to the backing store as well. The timing of this write is controlled by what is known as the write policy.
- In a write-through cache, every write to the cache causes a synchronous write to the backing store.
- In a write-back (or write-behind) cache, writes are not immediately mirrored to the store. Instead, the cache tracks which of its locations have been written over and marks these locations as dirty. The data in these locations is written back to the backing store when those data are evicted from the cache, an effect referred to as a lazy write.
- No-write allocation is a cache policy which caches only processor reads, thus avoiding the need for write-back or write-through when the old value of the datum was absent from the cache prior to the write.


Facebook activity