CACHE
What is cache?
The cache is a high-speed data storage layer that stores a subset of data, usually data that is temporary in nature, in order to respond to requests for that data more quickly than it would be able to do so by accessing the data's primary storage location. Utilizing caching enables optimal reuse of previously acquired or retrieved data.
Copies of data from the main memory are stored in the cache so that the processor can retrieve them more quickly.
Cache memory is made up of a number of blocks. An entry from the main memory can be stored in each block. Each entry has the following details:
· A tag that is associated with the primary memory location
· The information from the primary memory space
Types of cache memory
Memory in a cache is quick and expensive. It is typically divided into "levels" that explain how close and accessible it is to the CPU. There are three standard levels of cache:
Primary cache, often known as L1 cache, is a small but incredibly fast cache that is typically included in processor chips called CPU cache.
Secondary cache, or L2 cache, frequently has a larger capacity than L1 cache. A high-speed alternative system bus connects the L2 cache and CPU whether it is incorporated on the CPU or is located on a separate chip or coprocessor. By doing this, it avoids being slowed down by activity on the main system bus.
A dedicated memory called Level 3 (L3) cache was created to boost L1 and L2 speed. L3 is typically twice as fast as DRAM, however, L1 or L2 might be much quicker. The L1 and L2 caches on multicore processors can be devoted to each core, but the L3 cache can be shared. Instruction is often promoted to a higher level of cache if an L3 cache accesses it.
Performance
It saves information that the CPU will probably need later on, such as data or program instructions, that are frequently employed in the execution of programs. This data can be accessed by the computer processor from the cache more quickly than from the main memory. The speed of the program as a whole is increased by quick access to these instructions.
Improved performance and the capacity to track performance are about more than just enhancing user convenience in general. Having speed and reliability become increasingly important as technology develops and is relied upon more frequently in mission-critical situations. Depending on the situation, even a few milliseconds of latency could result in significant costs.
Cache miss
This is when a computer processor must seek data from the main memory because it cannot find it in cache memory. The memory location and data are entered into the cache by the main memory. The CPU then accesses the cache to obtain the data.
Cache Hit
When a computer processor locates the required data in cache memory, it is said to have had a cache hit.
The CPU first checks the cache when a program asks for data in memory. A cache hit occurs and the data is retrieved from the cache if the memory address matches one of the tags in a cache entry. By obtaining data from a more quickly accessible and smaller memory source, cache hits enhance performance.
How is caching implemented?
The information in a cache is often kept in quick-access hardware like RAM (Random-access memory), though it might also be utilized in conjunction with a software component. The main goal of a cache is to improve data retrieval performance by minimizing access to the slower storage layer beneath.
A cache often stores a subset of data transiently, sacrificing capacity for speed, as opposed to databases, whose data is normally comprehensive and long-lasting.
The Instruction Cycle
A single instruction must transit through the instruction cycle in order for the CPU to execute it (also sometimes referred to as the fetch-execute cycle). Although the stages of this cycle can differ from CPU to CPU, they commonly include the following ones:
· Fetch
· Decode
· Execute
· Memory Access
· Registry Write-Back
Instruction Pipelining
By successfully processing as many instructions at once, the hardware-based technique known as "instruction pipelining" aims to increase the throughput of a batch of instructions.
Cache memory vs caches
Cache Memory should not be mistaken with caches in general. Temporary data storage areas known as caches can be found in both hardware and software. The specific piece of hardware known as cache memory enables computers to build caches at multiple network levels.
The main memory of a computer is DRAM, which processes data acquired from storage. DRAM and cache memory are both volatile memories that are erased upon power interruption. The motherboard contains DRAM, and the CPU connects to it via a bus to access it.
DRAM often costs substantially less and is much faster than L1, L2, or L3 cache memory. Compared to flash storage, hard disk drives (HDD), and tape storage, it offers faster data access. It has been in use for a while now as a way to offer a location to store frequently accessed disk data and boost I/O speed.
Every few milliseconds, DRAM needs to be refreshed. Random access memory that is also cache memory does not require refreshing. Because it is integrated into the CPU, the processor has the quickest possible access to memory locations and can access commonly used data and instructions in nanoseconds. SRAM is faster than DRAM, but it costs more to produce since the chip is more complicated.
Cache vs virtual memory
DRAM and cache memory are both limited in a computer. It is possible for memory to be totally utilized when a large program or several programs are running. The operating system (OS) of the computer can generate virtual memory to make up for a lack of physical memory.
To do this the OS momentarily moves idle data from DRAM to disk storage. This method expands the virtual address space by creating contiguous addresses that store both an application and its data utilizing active memory from DRAM and inactive memory from HDDs. A computer can run larger applications or numerous programs at once while using virtual memory, which gives each program the illusion of having unlimited memory.