Skip to main content

Different between Buffer and Cache

Buffer
 It is an area of computer’s memory or devices memory for holding data during data transfer. Normally I/O devices have low speed than processor. This speed adjusted by having temporary data storage in a memory typically called buffer. While the device is in operation data transfer can take place in buffer. The process of holding data temporarily during I/O operation is called buffering. Because of buffering , I/O channels place data in buffer and the processor or I/O devices can access data from the buffer.

       Cache Memory
The cache memory is placed in between CPU and main memory. It is a semiconductor memory. It consists of static RAMs. It is a special and very high speed memory that is used to increase the speed of processing by making current program and the data available to the CPU at a rapid rate. Cash memory holds the frequently used instruction and data so that it can provide CPU at a faster rate. It is fabricated along with the CPU so works same as the speed of the CPU.CPU speed is usually faster than main memory speed, with the result that the processing speed is limited primarily by the speed of the main memory. So, the use of cache memory let the processor work in its actual speed.
To access main memory the CPU sends an address to it. In response of this the main memory sends data contained at the specified memory address. On the other hand cache memory uses parallel searching of the required data. It first compares the incoming address to the addresses present in the cache. If the address matches , it is called cache “hit”. If the data does not match, is called cache “miss”. When miss occurs, the data is read from the main memory. The data read from the main memory also written to the cache memory, so that when this specific address is accessed next time hit occurs. The hit ratio is defined as the ratio of the number of hits to the total number of read requests sents to the cache memory by the CPU.


Difference between Buffer and Cache:

                  Buffer
                 Cache
1.processing speed in slower than cache.
1.processing speed is high.

2.area of RAM or devices memory.
2.placed between processor and main memory.
3.currently in operation data holds.
3.frequently used instruction loaded.
4.adjust speed difference between processor and Devices.
4.let the processor work in its actual speed.
5.make temporary data storage in a memory.
5.eg.L1,L2,L3 caches,

Comments

Popular posts from this blog

What is manipulator in C++?

Answer: Manipulators are special functions that can be included in the I/O statement to alter the format parameters of a stream. Table-2 shows some important manipulator functions that are frequently used. To access these manipulators, the file < iomanip.h > should be included in program.                               Table-2               Manipulators                                                    Equivalent ios function               set...

Explanation of Graphics in C programming

   The header file graphics.h should be included to use graphics related built in functions. Again, the variable gDriver is an integer variable that specifies graphics driver to be used. Device drivers are small programs which talk directly to the hardware. Graphics drivers are a subset of device drivers and are applicable only in the graphics mode. The initialization of this variable to DETECT is to set another variable gMode to the highest resolution available for the detected driver.  The value of this variable gDriver may be another than DETECT (e.g. 1 for CGA, 9 for VGA.). The variable gMode is an integer that specifies initial graphics mode.       The built in function initgraph() is for graphics initialization. The syntax for this is as   initgraph(&graphics_driver, &graphics_mode, path_to_driver);   path_to_driver specifies the directory path where initgraph() looks for graphics drivers ( .BGI files). Thi...

Passing arrays to functions in C programming

Like any other variables, we can also pass entire array to a function. An array name can be named as an argument for the prototype declaration and in function header. When we call the function no need to subscript or square brackets. When we pass array that pass as a call by reference because the array name is address for that array. /* Program to illustrate passing array to function */ #include<stdio.h> void display(int) ; /* function prototype */ main( ) { int num[5] = {100, 20, 40, 15, 33, i ; clrscr( ) ; printf (“\n The content of array is \n”) ; for (i=0; i<5; i++) display (num[i]) ; /*Pass array element fo fun */ getch{ } ; } void display(int n) { printf (“\t%d”, n ) ; } Output:     The content of array is 100      20       40       15 3 /* Program to read 10 numbers from keyboard to store these num into array and then c...