How Does the CPU Cache Work?

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. Due to its expensive CPU’s come with a relatively small amount of cache compared with the main system memory. Budget CPU’s have even less cache, this is the main way that the top processor manufacturers take the cost out of their budget CPU’s.

How does the CPU Cache work?

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. This is to achieve the quickest possible response time to the CPU. Its based on playing the percentages. If a certain piece of data has been requested 5 times before, its likely that this specific piece of data will be required again and so is stored in the cache memory.

Lets take a library as an example o how caching works. Imagine a large library but with only one librarian (the standard one CPU setup). The first person comes into the library and asks for Lord of the Rings. The librarian goes off follows the path to the bookshelves (Memory Bus) retrieves the book and gives it to the person. The book is returned to the library once its finished with. Now without cache the book would be returned to the shelf. When the next person arrives and asks for Lord of the Rings, the same process happens and takes the same amount of time.

If this library had a cache system then once the book was returned it would have been put on a shelf at the librarians desk. This way once the second person comes in and asks for Lord of the Rings, the librarian only has to reach down to the shelf and retrieve the book. This significantly reduces the time it takes to retrieve the book. Back to computing this is the same idea, the data in the cache is retrieved much quicker. The computer uses its logic to determine which data is the most frequently accessed and keeps them books on the shelf so to speak.

That is a one level cache system which is used in most hard drives and other components. CPU’s however use a 2 level cache system. The principles are the same. 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. Going back to the library, when Lord of the Rings is returned this time it will be stored on the shelf. This time the library gets busy and lots of other books are returned and the shelf soon fills up. Lord of the Rings hasn’t been taken out for a while and so gets taken off the shelf and put into a bookcase behind the desk. The bookcase is still closer than the rest of the library and still quick to get to. Now when the next person come in asking for Lord of the Rings, the librarian will firstly look on the shelf and see that the book isn’t there. They will then proceed to the bookcase to see if the book is in there. This is the same for CPU’s. They check the L1 cache first and then check the L2 cache for the data they require.

Is more Cache always better?

The answer is mostly yes but certainly not always. The main problem with having too much cache memory is that the CPU will always check the cache memory before the main system memory. Looking at our library again as an example. If 20 different people come into the library all after different books that haven’t been taken out in quite a while but the library has been busy before and so the shelf and the bookcase are both full we have a problem. Each time a person asks for a book the librarian will check the shelf and then check the bookcase before realising that the book has to be in the main library. The librarian each time then trots off to get the book from the library. If this library had a non cache system it would actually be quicker in this instance because the librarian would go straight to the book in the main library instead of checking the shelf and the bookcase.

As the fact that non cache systems only work in certain circumstances and so in certain applications CPU’s are definitely better with a decent amount of cache. Applications such as MPEG encoders are not good cache users because they have a constant stream of completely different data.

Does cache only store frequently accessed data?

If the cache memory has space it will store data that is close to that of the frequently accessed data. Looking back again to our library. If the first person of the day comes into the library and takes out Lord of the Rings, the intelligent librarian may well place Lord of the Rings part II on the shelf. In this case when the person brings back the book, there is a good chance that they will ask for Lord of the Rings part II. As this will happen more times than not. It was well worth the Librarian going to fetch the second part of the book in case it was required.

Cache Hit and Cache Miss

Cache hit and cache miss are just simple terms for the accuracy of what goes into the CPU’s cache. If the CPU accesses its cache looking for data it will either find it or it wont. If the CPU finds what’s its after that’s called a cache hit. If it has to go to main memory to find it then that is called a cache miss. The percentage of hits from the overall cache requests is called the hit rate. You will be wanting to get this as high as possible for best performance.

Could These Two Secrets to Getting Advice Be Helpful to Successful Business Women?

Successful business women know the importance of having mentors at various stages throughout their lives. Whether it was in school, sports teams, dance or other activities, who among us doesn’t remember having someone who offered the help, support and advice that helped us get some challenging times.

Business is tough enough for success business women so why not have some people you can count on for support. Many people will tell you what they think you want to hear, not enough will tell you what you should hear.

And receiving and accepting candid feedback is a main reason why successful business women get that way. They use it to avoid costly mistakes and make better decisions to achieve their business goals and professional aspirations.

Mentors are important to those who may be lacking the experience, knowledge or skills required in a certain task or position. Successful business women can leverage the capabilities of others to help them when their lack of experience could be a liability.

After all any stretch assignment has potential pitfalls where your lack of experience could cause you to fail. This is where a mentor can help. You learn from their mistakes, not just from yours.

But how do you know what type of mentor you need? Who would be the best person to help? How can successful business women find them?

The first step requires an objective self-assessment – You can’t find a mentor until you “find” (know) yourself. Only after you know what you need, can you find a mentor to help.

Ask yourself what do I really need in a mentor – if it’s for career then maybe you want to know what jobs you should be taking now. What course and/or training are needed? What assignments should successful business women be thinking about taking to give them the right experience given their career choices?

Or maybe you’re in a new role or stretch assignment. You might want to ask a mentor – What are the barriers to success? How do I get around them? Who should I involve? What other skills are needed? And so on. Determine and understand what you really want.

Step 2 – After you have answered these questions, ask yourself how a mentor can help you.

Mentors can help with a promotion, developing skills, identifying strengths, getting help with weakness and as well as business progress. They can also be business development sponsors for successful business women.

The right business related mentor is also someone who knows your field, can help you learn new things and is willing to give his or her time to help you. Often they have the knowledge and skills, open-mindedness, accessibility, trustworthiness and reliability.

Sometimes their great success comes with great egos which can be a problem. Just because someone has significant cache doesn’t mean they will help you. Successful business women will also need to determine the structure of the mentoring relationship – in person, virtual and global or network. And if the mentoring relationship is for long term or just for short period of time.

Successful business women may not find a mentor over night. They will need to continually be reaching out to people who they think could help. Meeting with them, sharing ideas and concerns. Over time you will determine if they are the right person for you: can they be the mentors that you need to help you and your business.

RAID Cache

As part of my articles regarding RAID I want to focus on a very important RAID controller feature. That would be the memory cache.

The process of transferring data to and from disk storage includes storing the data temporarily in a memory cache located on the RAID (Redundant Array of Independent Disks) controller that is managing the data transfer. In other words, RAID controller cards temporarily cache data from the host system until it is successfully written to the storage media.

Memory cache is comprised of high-speed silicon memory DRAM chips. The access time for writing data to or reading data from DRAM (Dynamic Random Access Memory) is roughly 106, or a million times faster than the typical access time for writing directly to or reading directly from a set of disk drives. In a posted-write operation, as soon as the host computer writes data to the cache, the write operation is completed; and the host is freed up immediately to perform another operation. The host does not have to wait for the write data to be transferred to disk. Therefore, use of cache memory on RAID controllers significantly speeds up write operations and increases overall system performance. Current cache amount varies from 256MB, 512MB, 1GB, 2GB and even 4GB.

Another advantage the cache provides is, in case of a system failure and depending on the size of the buffer, the cache will hold information until the system can get back online which helps prevent or minimize data loss. Of course, the cache might lose charge eventually (within about 30 minutes) so RAID controllers usually come with a battery backup unit (BBU) to hold the charge longer until the system is brought back online and the cached data is extracted.

Without a memory cache the controller has to stop the flow of data until the drive has acknowledged that it is ready to receive. The controller will then receive the data from the operating system and forward it on to the drive that’s being written to. This process is very fast and can hardly be noticed but when dealing with millions and billions of these transactions everyday even nanoseconds can add up to noticeable levels. Memory cache allows the controller to go ahead and receive data from the operating system and place it into the buffer memory if the drive is not ready for it at that time; and as all business majors (and even non-business majors) understand, time is money.

I hope this was informative and will aid you in understanding when the benefits of high level RAID controllers can be utilized to your advantage.