Computer System Cache Memory

ื›ื‘ืจ ื“ื™ื‘ืจื ื• ืขืœ ื” memory gap ื›ืœื•ืžืจ ืฉื™ืฉ ืคืขืจ ื‘ื™ืŸ ืžื”ื™ืจื•ืช ื”ื–ื›ืจื•ื ื•ืช ื•ื”ื•ื ื™ืžืฉื™ืš ืœื”ืฉืืจ ื‘ื–ืžืŸ ื”ืงืจื•ื‘. ื›ืžื• ื›ืŸ ื’ื ืžื‘ื—ื™ื ืช ืขืœื•ืช ื”ืจื‘ื” ื™ื•ืชืจ ืงืฉื” ืœื”ื‘ื™ื ืืช ื”ื–ื›ืจื•ื ื•ืช ืฉืžื—ื•ืฅ ืœ cpu ืœืจืžื” ืฉืœ ื” cpu.
Pasted image 20230109113619.png|500
Pasted image 20230109200056.png|500
ื ืฉืืœืช ื”ืฉืืœื” ื›ื™ืฆื“ ื ื‘ื ื” ื–ื›ืจื•ืŸ ืฉื”ื•ื ื™ื—ืกื™ืช ืžื”ื™ืจ ื•ื–ื•ืœ.

Principle of Locality

ื”ืชื›ื•ื ื” ืฉืœ ืžืงื•ืžื™ื•ืช ืื•ืžืจืช ืฉืœืชื•ื›ื ื™ื•ืช ื™ืฉ ื ื˜ื™ื™ื” ืœื”ืฉืชืžืฉ ืฉื•ื‘ ื•ืฉื•ื‘ ื‘ืื•ืชืŸ ื”ื›ืชื•ื‘ื•ืช ืœ data ื•ื‘ืื•ืชืŸ ื”ื›ืชื•ื‘ื•ืช ืœื ืชื•ื ื™ื.
ื”ืžืฉืžืขื•ืช ืฉืœ ืื•ืชืŸ ื”ื›ืชื•ื‘ื•ืช ืžืชื—ืœืงืช ืœ 2 :

ืžืงื•ืžื™ื•ืช ื‘ื–ืžืŸ:
ืื ื ื™ื’ืฉืชื™ ืœืขืจืš ืžืกื•ื™ื™ื ืžื”ื–ื›ืจื•ืŸ ืื– ื‘ืกื‘ื™ืจื•ืช ื’ื‘ื•ื”ื” ืฉื ื™ื’ืฉ ืืœื™ื• ืฉื•ื‘ ื‘ืคืจืง ื–ืžืŸ ืงืฆืจ.

ืžืงื•ืžื™ื•ืช ื‘ืžืจื—ื‘:
ืื ืื ื™ ื ื™ื’ืฉ ืœื›ืชื•ื‘ืช ืžืกื•ื™ื™ืžืช ื‘ื–ื›ืจื•ืŸ ืื– ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื‘ื–ืžืŸ ืงืฆืจ ืื’ืฉ ืœื›ืชื•ื‘ื•ืช ืกืžื•ื›ื•ืช.

ื“ื•ื’ืžื” ืงืœืืกื™ืช ื”ื™ื

sum = 0;
for (i = 0; i < n; i++) 
	sum += a[i];
return sum;

data:
ื”ืžืงื•ืžื™ื•ืช ื‘ืžืจื—ื‘ ื›ืืŸ ื‘ืื” ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ื›ืš ืฉื ื™ื’ืฉื™ื ื‘ืืžืฆืขื•ืช ืื™ื ื“ืงืก ืœืื™ื‘ืจื™ื ื‘ืžืขืจืš ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื”ื–ื›ืจื•ืŸ ื‘ืžืขืจืš ื‘ื”ืงืฆืื” ืจืฆื™ืคื” ื”ื ื›ืžื•ื‘ืŸ ืื—ื“ ืœื™ื“ ื”ืฉื ื™ (ื”ืงืฆืื” ืจืฆื™ืคื” = ื ื™ืชืŸ ืœื’ืฉืช ื‘ืืžืฆืขื•ืช ืื™ื ื“ืงืก).
ื”ืžืงื•ืžื™ื•ืช ื‘ื–ืžืŸ ื‘ืื” ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ื›ืš ืฉื ื™ื’ืฉื™ื ืœreference ืฉืœ sum ืฉื•ื‘ ื•ืฉื•ื‘.

instruction:
ืื•ืกืฃ ื”ืคืงื•ื“ื•ืช ื‘ืฉืคืช ืžื›ื•ื ื” ืฉืžื›ื™ืœื•ืช ืืช ื”ืœื•ืœืื” ื”ื–ืืช ื ืžืฆืื•ืช ื‘ื›ืชื•ื‘ืช ืžืกื•ื™ื™ืžืช ื‘ื–ื›ืจื•ืŸ ื•ืื ื—ื ื• ื ื™ื’ืฉื™ื ืœื›ืชื•ื‘ื•ืช ืฉืœ ื”ืคืงื•ื“ื•ืช ื”ืืœื” ืฉื•ื‘ ื•ืฉื•ื‘ ืœืื•ืจืš ื–ืžืŸ. ืืœื” ืžืงื•ืžื™ื•ืช ื’ื ื‘ืžืจื—ื‘ ื•ื’ื ื‘ื–ืžืŸ.

ื”ืื ืœืงื•ื“ ื”ื‘ื ื™ืฉ ืœื•ืงืœื™ื•ืช ื˜ื•ื‘ื”?

int sumarray(int a[M][M]) 
{
	int i,j,sum=0;
	for(j=0 ; j < M ; j++) 
		for (i=0 ; i<M; i++)
			sum+= a[i][j];
	return sum;
}

ื‘ืงื•ื“ ื”ื–ื” ืื™ืŸ ืœื•ืงืœื™ื•ืช ื˜ื•ื‘ื” ื›ื™ื•ื•ืŸ ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉC ืžืกื“ืจืช ืืช ื”ืžืขืจื›ื™ื ื‘ื–ื›ืจื•ืŸ ืœืคื™ ืฉื•ืจื•ืช , ื›ืœื•ืžืจ ื›ืœ ื”ืขืจื›ื™ื ื‘ืฉื•ืจื” 0 ื™ื”ื™ื• ื”ืจืืฉื•ื ื™ื ื•ื›ืŸ ื”ืœืื”, ื”ื’ื™ืฉื” ืœืžืขืจืš ื”ื™ื ื‘ืœื•ืงืœื™ื•ืช ืœื ื˜ื•ื‘ื” ื’ื ื‘ืžืจื—ื‘ ื•ื’ื ื‘ื–ืžืŸ ื‘ื’ืœืœ ืฉื ื™ื’ืฉื™ื ืœืžืงื•ืžื•ืช ื™ื—ืกื™ืช ืจื—ื•ืงื™ื ื‘ื–ื›ืจื•ืŸ.

ื”ืชื™ืงื•ืŸ ืื ื›ืŸ ื”ื•ื ืœื”ื—ืœื™ืฃ ืืช ืกื“ืจ ื”ืœื•ืœืื•ืช

int sumarray(int a[M][M]) 
{
	int i,j,sum=0;
	for(i=0 ; i < M ; i++) 
		for (j=0 ; j<M; j++)
			sum+= a[i][j];
	return sum;
}

caching and memory hierarchies

ื”ืจืขื™ื•ืŸ ื”ื•ื ืฉื‘ื”ื™ื ืชืŸ ืฉืชื›ื•ื ื” ืฉืœ ืœื•ืงืœื™ื•ืช ื ืฉืžืจืช ื•ืงื™ื™ืžืช ืื–ื™ ืื•ืชื• ืžื ื’ื ื•ืŸ ืฉืœ ื”ื™ืจื›ื™ื™ืช ื–ื›ืจื•ืŸ ื™ืขื‘ื•ื“ ื™ื•ืชืจ ื˜ื•ื‘ ื‘ืฉื‘ืœื ื•.
ื–ื” ืžื ื’ื ื•ืŸ ืฉืคื•ืขืœ ื’ื ื‘ืชื•ื›ื ื” ื•ื’ื ื‘ื—ื•ืžืจื” ื•ื”ื•ื ื ื•ื‘ืข ื‘ื™ืŸ ื”ื™ืชืจ ื‘ื’ืœืœ ื”memory gap , ื›ื›ืœ ืฉื ื‘ื ื” ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžื”ื™ืจื•ืช ื™ื•ืชืจ ืื ื—ื ื• ื ืฉืœื ื™ื•ืชืจ ืขื‘ื•ืจ ื™ื—ื™ื“ืช ื–ื›ืจื•ืŸ ื•ื’ื ื‘ืคืจื˜ ื™ืฉ ืœื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื›ืืœื” ืคื—ื•ืช ืงื™ื‘ื•ืœืช.

ื‘ืขืฆื ื”ืžื˜ืจื” ื”ื™ื ืฉื ื•ื›ืœ ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ืช ื”ืœื•ืงืœื™ื•ืช ื›ื“ื™ ืœืžืงื ืžื™ื“ืข ื•ืคืงื•ื“ื•ืช ื‘ืžืงื•ืžื•ืช ืฉื”ื’ื™ืฉื” ืืœื™ื”ืŸ ื”ื™ื ื™ื•ืชืจ ืžื”ื™ืจื”, ืื• ืœื”ื‘ื™ื ืื•ืชืŸ ืžืจืžืช ื–ื›ืจื•ืŸ ืฉื”ื™ื ืื™ื˜ื™ืช ื™ื•ืชืจ ืœืจืžืช ื–ื›ืจื•ืŸ ืžื”ื™ืจื” ื™ื•ืชืจ.

ื‘ืืžืฆืขื•ืช ื”ืžื ื’ื ื•ืŸ ื”ื–ื” ื ื•ื›ืœ ืœืงื‘ืœ ืืช ื”ื”ื™ืจื›ื™ื™ื” ื”ื‘ืื”
Pasted image 20221104161021.png|550

caches

ื”ืžื˜ืžื•ืŸ ื”ื•ื ื–ื›ืจื•ืŸ ืงื˜ืŸ ื•ืžื”ื™ืจ ืฉืžืฉืžืฉ ื‘ืชื—ื ืช ื‘ื™ื ื™ื™ื ืฉืœ ื—ืœืงื™ ืžื™ื“ืข ื‘ืจื›ื™ื‘ื™ ื–ื›ืจื•ืŸ ื›ื‘ื“ื™ื ื™ื•ืชืจ.
ืžื”ื’ืจืฃ ืœืžืขืœื” ืื ื—ื ื• ืžืกื™ืงื™ื ืฉื”ืจืžื” ื”k ื”ื™ื ืžื ื’ื ื•ืŸ cache ืœืจืžื” ื”k+1 . ื‘ื’ืœืœ ื–ื” ื‘ ืžื‘ื ื” ื”ืชื•ื›ื ื™ืช ื‘ืืกืžื‘ืœื™ ื”ืกื‘ืจื ื• ืฉื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ ืœืจืฉื•ื ืœ register ื•ืœืงืจื•ื ืž register ืžืืฉืจ ืœื›ืชื•ื‘ ืœืžื—ืกื ื™ืช ื›ื™ ื‘ืกื•ืฃ ื ืขืฉื” ืฉื™ืžื•ืฉ ื’ื‘ื•ื” ื‘ืžื ื’ื ื•ืŸ ื” cache ื”ื ืดืœ.

ื”ืชื•ืฆืจ ื”ืกื•ืคื™ ื”ื™ื ื‘ืจื™ื›ืช ื–ื›ืจื•ืŸ ืดื–ื•ืœืด ืื‘ืœ ืฉืžื—ื–ื™ืง ืžื™ื“ืข ืžืžืงื•ื ืฉืœ ื–ื›ืจื•ืŸ ืดื™ืงืจืด
Pasted image 20230109130632.png|300
ืžื” ืฉื™ืงืจื” ื–ื” ืฉื”ืจืžื” ื”kโˆ’1 ืชืงื‘ืœ ืืช ื”ืขืจืš ืฉืœ ื”ื›ืชื•ื‘ืช 8 ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ ืžืืฉืจ ื›ืชื•ื‘ืช ื›ืžื• 10. ื—ืฉื•ื‘ ืœืฆื™ื™ืŸ ืฉื”ืžื™ื“ืข ืžื•ืขืชืง ืžื”ืจืžื” ื”k+1 ืœืจืžื” ื”k ื”ื ืœื ืžื—ื•ื‘ืจื™ื ืื—ื“ ืœืฉื ื™.

ื”ืฉืืœื” ื”ื™ื ืื™ืš ืฉื•ืžืจื™ื ืืช ื”ืžื™ื“ืข ื‘cache ื‘ืฆื•ืจื” ื ื›ื•ื ื” ื•ืื™ืš ื”ืžื™ื“ืข ืžื•ืขืชืง...
ื‘ืื•ืคืŸ ืžื•ืคืฉื˜ ืื ื ื‘ืงืฉ ืœืžืฉืœ ืืช ื”ื›ืชื•ื‘ืช 4 ืื– ื”ืจืžื” ื”k ืชืคื ื” ืœืจืžื” ื” k+1 ื•ืชืขืชื™ืง ืื•ืชื” ืœืจืžื” ื”k ื•ืื ืื™ืŸ ืžืงื•ื ืชื—ืœื™ืฃ ืืช ืื—ื“ ื”ื›ืชื•ื‘ื•ืช ื”ืฉืžื•ืจื•ืช ื‘ื›ืชื•ื‘ืช 4 .
Pasted image 20230109131510.png|300

general caching concepts

ื ื ื™ื— ืฉื”ืชื•ื›ื ื™ืช ืฆืจื™ื›ื” ืื•ื‘ื™ื™ืงื˜ d ืฉื ืžืฆื ื‘ื‘ืœื•ืง ื–ื›ืจื•ืŸ ื›ืœืฉื”ื• b . ื”ืกื™ื‘ื” ืฉืžื“ื‘ืจื™ื ื‘ื‘ืœื•ืงื™ื ื”ื™ื ืฉื”cache ืžื‘ื™ื ื’ื ื›ืชื•ื‘ื•ืช ืกืžื•ื›ื•ืช ื•ืœื ืจืง ื›ืชื•ื‘ืช ื‘ื•ื“ื“ืช ื›ืœื•ืžืจ ื‘ืœื•ืง ืฉืœ ื›ืชื•ื‘ื•ืช ื•ื›ืš ื’ื ื™ืฉ ืฉืžื™ืจื” ืฉืœ ื—ืกื›ื•ืŸ ื‘ืžืจื—ื‘ ื‘ื ื•ืกืฃ ืœื—ืกื›ื•ืŸ ื‘ื–ืžืŸ.

Pasted image 20230109190950.png|150
ื‘ืœื•ืง ืžืกื•ืžืŸ ืขื * ื•ื‘ืžืงืจื” ืฉืœ ื”ืชืžื•ื ื” ืœืžืขืœื” ื”ื•ื ื‘ืขืฆื ืžืกืžืœ ืืช ื”ื›ืชื•ื‘ื•ืช ืฉื‘ืื•ืชื” ืฉื•ืจื” ืขื 4 ื›ืœื•ืžืจ 4,5,6,7

ืžืกืคืจ ืžื•ื ื—ื™ื ื›ืœืœื™ื™ื ืฉื ืจืฆื” ืœื”ื’ื“ื™ืจ
cache hit - ื”ืชื•ื›ื ื™ืช ืžื•ืฆืืช ืืช b ื‘ืจืžื” ื”k ืฉืœ ื”ืžื˜ืžื•ืŸ.
cache miss - b ืœื ื ืžืฆื ื‘ืจืžื” ื”k ืฉืœ ื”ืžื˜ืžื•ืŸ ื•ืœื›ืŸ ื” kโˆ’cache ื—ื™ื™ื‘ ืœื™ื™ื‘ื ืืช ื–ื” ืžื”ืจืžื” ื”k+1 .

ื ืฉื™ื ืœื‘ ืฉืื ื”ืจืžื” ื”k ืžืœืื” ืื– ืฆืจื™ืš ืœื”ื—ืœื™ืฃ ื‘ืœื•ืง ื›ืœืฉื”ื• ืงื™ื™ื ื‘ืื—ื“ ื—ื“ืฉ ืฉื”ืจื’ืข ืžืฉื›ื ื•, ืžื™ ื–ื” ื™ื”ื™ื”? ืœื›ืš ื™ืฉ ืฉืชื™ policies:
ื) placement policy - ืื™ืคื” ื ืฉื™ื ืืช ื”ื‘ืœื•ืง ื”ื—ื“ืฉ? bย modย 4
ื‘) replacement policy - ืื™ื–ื” ืžื”ื‘ืœื•ืงื™ื ื ื•ืจื™ื“ ื‘ืžืฆื‘ ืฉื‘ื• ืื™ืŸ ืžืงื•ื? LRU = least recently used

types of cache miss

ื) cold miss - ื›ืืฉืจ ื” cache ืœื ื ื˜ืขืŸ ื‘ื ืชื•ื ื™ื ื•ืื™ืŸ ื‘ื• ื›ืชื•ื‘ืช ื‘ื›ืœืœ (ืœืžื™ื“ืข ืฉื ืžืฆื ื‘ื›ืชื•ื‘ืช ืื™ืŸ ืžืฉืžืขื•ืช) , ืžืฆื‘ ื–ื” ืงื•ืจื” ืœืžืฉืœ ื›ืฉื”ืžื—ืฉื‘ ื ื“ืœืง. ืžื ื’ื ื•ืŸ ื” cache ืžื˜ืคืœ ื‘ื–ื” ื‘ืืžืฆืขื•ืช flag ืฉืงื•ื‘ืข ื”ืื ื”ืžื™ื“ืข ื•ืœื™ื“ื™ ืื• ืœื.
ื‘) conflict miss - ืžืฆื‘ ืฉื‘ื• ื”ืžืงื•ื ืฉื ืจืฆื” ืœืžืงื ืืช ื”ื‘ืœื•ืง ืฉืœื ื• ืžืื•ื›ืœืก ืขืœ ื™ื“ื™ ืžื™ื“ืข ืื—ืจ. ื ืฉื™ื ืœื‘ ืฉื”ืžื™ืงื•ื ื”ื•ื ืœืคื™ ื” placement policy. ื›ืœื•ืžืจ ื”ืงื•ื ืคืœื™ืงื˜ ื‘ื ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ืœื ื‘ื’ืœืœ ืฉืื™ืŸ ืžืงื•ื ื‘ืจืžื” ื”k ืืœื ื‘ื’ืœืœ ืฉื”placement policy ืžืžืงื ื‘ืื•ืชื• ื”ื‘ืœื•ืง, ืฉื”ื•ื ืชืคื•ืก.
ื’) capacity miss - ืžืฆื‘ ืฉื‘ื•ื ืื™ืŸ ืžืงื•ื ื‘ืจืžื” ื”k ืœืžืงื ื‘ืœื•ืง ื—ื“ืฉ. ื”ืจืžื” ื”k ืชืคื•ืกื” ืœื’ืžืจื™.

ื”ืžื˜ืจื” ืฉืœื ื• ื”ื™ื ื›ืžื” ืฉืคื—ื•ืช misses ื‘ืžื”ืœืš ื›ืชื™ื‘ืช ื”ืงื•ื“

ื–ื›ืจื•ื ื•ืช ื”ืžื˜ืžื•ืŸ ื‘ื—ื•ืžืจื”

Pasted image 20230109195840.png
ื–ื›ืจื•ื ื•ืช ืืœื• ืžื‘ื•ืกืกื™ SRAM ื•ืžื ื•ื”ืœื™ื ืื•ื˜ื•ืžื˜ื™ ืขืœ ื™ื“ื™ ื”ื—ื•ืžืจื”.

Hardware Memory Management

ื ืจืฆื” ืœื”ื‘ื™ืŸ ืื™ืš ื”ื“ื‘ืจ ื‘ื ืœื™ื“ื™ ื‘ื™ื˜ื•ื™ ื‘ื—ื•ืžืจื”.
ื›ืœ ืจืžื” ื‘ cache ื‘ื—ื•ืžืจื” ืžื—ื•ืœืงืช ืœsets ืฉื‘ื›ืœ set ื™ืฉ ืฉื•ืจื•ืช , ื•ื‘ื›ืœ ืฉื•ืจื” ื™ืฉ metadata ืขืœ ื”ืžื™ื“ืข ื•ืืช ื”ืžื™ื“ืข ืขืฆืžื•.

Pasted image 20230109205919.png|450
ื‘ืœื•ืง ื”ืžื™ื“ืข ื™ื›ื•ืœ ืœื”ื›ื™ืœ ื‘ืชื™ื ื‘ื•ื“ื“ื™ื ืขื“ ื›ื“ื™ ื›ืชื•ื‘ืช ื™ื—ื™ื“ื”. ื ืฉื™ื ืœื‘ ืฉ B ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื”ื‘ื™ื™ื˜ื™ื ืคืจ ื‘ืœื•ืง.
ื”ื—ืœื•ืงื” ื•ื”ื”ื’ื“ืจื•ืช ื”ืŸ ืœื ื™ื•ืชืจ ืžืงื•ื ื‘ื ืฆื™ื”, ื–ื•ื”ื™ ืื™ื ื” ื—ืœื•ืงื” ืคื™ื–ื™ืช ืฉืœ ื”ืžื™ื“ืข

Addressing caches

ื‘ื”ื™ื ืชืŸ ื›ืชื•ื‘ืช A ื ืจืฆื” ืœื”ื‘ื™ืŸ ืืช ื”ืžื ื’ื ื•ืŸ ืฉืœ ื” cache ืœื—ืœื•ืงืช ื”ื›ืชื•ื‘ืช ืขืœ ืžื ืช ืœืžืฆื•ื ืื•ืชื” ื‘ืžืงื•ื ื”ืžืชืื™ื ื‘ cache.
ื”ื—ืœื•ืงื” ืขืœ ื”ื›ืชื•ื‘ืช ืชื™ืจืื” ื›ื›ื”
Pasted image 20230109211049.png|200
ื”word ื‘ื›ืชื•ื‘ืช A ืชื”ื™ื” ื‘ cache ืื ื”tag ื”ื ืดืœ ืฉื•ื•ื” ืœtag ื‘set ื”ืžืชืื™ื ืœืคื™ ื”ื‘ื™ื˜ื™ื ื”ืืžืฆืขื™ื™ื. ื”b bits ื”ื™ืžื ื™ื ืงื•ื‘ืขื™ื ื”ื™ื›ืŸ ื”ืžื™ืœื” ืขืฆืžื” ืžืชื—ื™ืœื” ื‘ื–ื›ืจื•ืŸ ื”ืžื˜ืžื•ืŸ ืžืชื—ื™ืœืช ื”ื‘ืœื•ืง ืฉืœ ื”ืžื™ื“ืข ื›ืœื•ืžืจ ื‘ืœื™ ืœืกืคื•ืจ ืืช ื”valid ื•ื” tag.
ืฉืืœื” ืžืชื‘ืงืฉืช ื”ื™ื ืœืžื” ื” s bits ื ืžืฆืื™ื ื‘ืืžืฆืข...
ื ืฉื™ื ืœื‘ ืฉืกืคืจ ื”ืกื˜ื™ื ื”ื•ื 2s ื‘ื™ื“ื™ื•ืง ืžื”ืกื™ื‘ื” ืฉ s ื‘ื™ื˜ื™ื ืืžืฆืขื™ื™ื ืฆืจื™ื›ื™ื ืœืงื‘ื•ืข ืืช ืžืกืคืจ ื”set ื•ืœื›ืŸ ื™ืฉ 2s ืขืจื›ื™ื ืืคืฉืจื™ื™ื ืœื“ื‘ืจ.

ื”ืžืกืงื ื” ื”ื™ืฉื™ืจื” ืžื–ื” ื”ื™ื ืฉืื•ืชื” ื”ื›ืชื•ื‘ืช ืชืžื™ื“ ืชื’ื™ืข ืœืื•ืชื• ื”ืžืงื•ื, ืฉื™ื˜ื” ื–ืืช ื ืงืจืืช direct mapping .

Direct-Mapped Cache

ืฉื™ื˜ืช ืžื˜ืžื•ืŸ ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ , ืžื•ื’ื“ืจืช ื›ืฉื•ืจื” ืื—ืช ืœ set.
Pasted image 20230109223833.png|400
ื›ืขืช ื‘ื”ื™ื ืชืŸ ื›ืชื•ื‘ืช ืžืกื•ื™ื™ืžืช A , ื ืฉืชืžืฉ ื‘ s bits ื‘ื—ืœื•ืงื” ื›ื“ื™ ืœืœื›ืช ืœ set ื”ื ื›ื•ืŸ. ื›ืขืช ื ืฉืชืžืฉ ื‘ t-bits ื›ื“ื™ ืœื‘ืฆืข line matching ื›ืœื•ืžืจ ื”ืื ื‘ืฉื•ืจื” ืฉืื ื—ื ื• ื ืžืฆืื™ื ืขืœื™ื” ื ืžืฆื ื”tag ื”ืžืชืื™ื ืฉื ืžืฆื ื‘ื›ืชื•ื‘ืช (ื‘ืžืงืจื” ื”ื–ื” ื™ืฉ ืจืง ืฉื•ืจื” ืื—ืช).
ื‘ืžื™ื“ื” ื•ื”ื‘ื™ื˜ื™ื ื‘tag ื”ื ื ื›ื•ื ื™ื ืื– ื”ื›ืชื•ื‘ืช ืœืคื™ ื” b-bits ืžืชืื™ืžื” ื•ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื” (ื›ืžื•ื‘ืŸ ื‘ืžื™ื“ื” ื•ื” valid ื‘ื™ื˜ ื“ื•ืœืง).

Pasted image 20230109224417.png|400
ื ืฉื™ื ืœื‘ ืฉื”ื“ื•ื’ืžื” ื›ืืŸ ื”ื™ื offset ืฉืœ 4 ื‘ื™ื˜ื™ื, ืื‘ืœ ื”ืงืจื™ืื” ื”ื™ื ื‘ื™ื—ืก ืœ word ื›ืœื•ืžืจ ื”offset ื™ื™ืชืŸ ืœื ื• ืืช ื”ื‘ื™ื™ื˜ ื”ืจืืฉื•ืŸ ืžื‘ื™ืŸ ืžืกืคืจ ื”ื‘ื™ื™ื˜ื™ื ืฉืžื™ื™ืฆื’ื™ื word ื‘ื—ื•ืžืจื” ืฉืœื ื•. ื‘ืขืฆื offset ืฉืœ 4 ื‘ื™ื˜ื™ื ืžืืคืฉืจ 24=32 ืขืจื›ื™ื ืขื‘ื•ืจ ื”offset ื‘ bytes. ื›ืœื•ืžืจ ื™ืฉ ืœื ื• ื‘ 32 ื‘ื™ื™ื˜ื™ื ื‘data ืฉื–ื” ื‘ืขืฆื 8 words ื‘ื”ื ื—ื” ืฉ word ื”ื•ื 4 ื‘ื™ื™ื˜ื™ื (ื™ื›ื•ืœ ืœื”ื™ื•ืช ื’ื 2 ื‘ื™ื™ื˜ื™ื ืœืžืฉืœ ื‘x86).

ื›ืžื• ื›ืŸ ื”ืกื™ื‘ื” ืฉื™ืฉ ื‘ื›ืœืœ ืืช byte offset ื”ื™ื ืฉื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืื•ืชื” ืฉื•ืจื” ืžืกืคืจ words ืฉื•ื ื™ื ืžื›ืชื•ื‘ื•ืช ืกืžื•ื›ื™ื ื‘ืฉื‘ื™ืœ ื”ืžืงื•ืžื™ื•ืช ื‘ืžืจื—ื‘.

ื ืกืชื›ืœ ืขืœ ื”ื“ื•ื’ืžื” ื”ื‘ืื” :
ืขื‘ื•ืจ C=8 ื›ืœื•ืžืจ ื’ื•ื“ืœ ื”cache ื”ื•ื 8 ื‘ื™ื™ื˜ื™ื ืขื ื”ื—ืœื•ืงื” ื”ื‘ืื” B=2,S=4,E=1 , ื›ืœื•ืžืจ: 2 ื‘ื™ื™ื˜ื™ื ื‘data ื‘ืฉื•ืจื”, 4 ืกื˜ื™ื ื•ืฉื•ืจื” ืื—ืช ื‘ื›ืœ ืกื˜.
ื›ืืฉืจ ื”ืžื—ืฉื‘ ื“ืœื•ืง ื•ื”cache ืจื™ืง ื”ืžื˜ืžื•ืŸ ื™ื™ืจืื” ื›ื›ื”:

v tag data

ื›ืขืช ื ืจืฆื” ืœื”ื›ื ื™ืก ืืช ื”ื›ืชื•ื‘ื•ืช ื”ื‘ืื•ืช

0[0000],1[0001],13[1101],8[1000]

ื›ืœื•ืžืจ ื›ืชื•ื‘ื•ืช ืฉืœ 4 ื‘ื™ื˜ื™ื. ื ื’ื“ื™ืจ ืฉื”ื—ืœื•ืงื” ื”ื™ื

t=1,s=2,b=1

ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื›ืœ ื›ืชื•ื‘ืช ืชื—ื•ืœืง ื‘ืื•ืคืŸ ื›ื–ื” ืฉื ื•ื›ืœ ืœืงื‘ืœ ืืช ื›ืœ ื”ืžื™ืคื•ื™ ื”ืžืชืื™ื ื‘ืดื˜ื‘ืœื”ืด ืœืžืขืœื”. ืœืžืฉืœ s=2 ื‘ื’ืœืœ ืฉื™ืฉ 4 sets ื•ืœื›ืŸ ื”ืขืจื›ื™ื ื”ืืคืฉืจื™ื™ื ื”ื 00,01,10,11. ื›ืžื• ื›ืŸ b ื™ืงื‘ืข ืื™ื–ื” word ืื ื—ื ื• ืžื—ืคืฉื™ื ื‘ data ืžื‘ื™ืŸ ืฉืชื™ ื”word ืฉื™ื›ื•ืœื™ื ืœื”ื›ื ืก ื‘ื‘ืœื•ืง ืื—ื“ ืฉืœ ืžื™ื“ืข, ื–ื” ื‘ื’ืœืœ ืฉื™ืฉ ืฉืชื™ ืขืจื›ื™ื ืืคืฉืจื™ื™ื ืฉืงื•ื‘ืขื™ื ืืช ื” offset .
ื ืฉื™ื ืœื‘ ืฉืžืกืคืจ ื”ื›ืชื•ื‘ื•ืช ืฉื ื™ืชืŸ ืœื›ืกื•ืช ื‘ืืจื‘ืขื” ื‘ื™ื˜ื™ื ื”ื 16 ื•ืœื›ืŸ ื‘ื•ื•ื“ืื•ืช ืœื ื ื•ื›ืœ ืœื›ืกื•ืช ืืช ื›ืœ ื”ื›ืชื•ื‘ื•ืช ื”ืืœื” ื‘ืจืžื” ื”ื–ืืช ืฉืœ ื”cache
ื ืกืžืŸ ืืช ื”ื›ืชื•ื‘ื•ืช ื”ืืคืฉืจื™ื•ืช ื› M=16 .

ื ืชื—ื™ืœ ืžืœื”ื›ื ื™ืก ืืช 0 , ื›ืžื•ื‘ืŸ ืฉื ืงื‘ืœ cold miss ื›ื™ ื”ื›ืœ ื ืงื™, ืœื›ืŸ ื ื‘ื™ื ืื•ืชื• ืžื”ืจืžื” ืžืชื—ืช ื•ืžื”ื—ืœื•ืงื” ืฉืœ 0 ื ืงื‘ืœ

v tag data
1 0 M(0),M(1)

ื ืฉื™ื ืœื‘ ืฉื™ืฉ ื’ื ืืช M[0],M[1] ื‘ื’ืœืœ ื”ืœื•ืงืœื™ื•ืช ื‘ืžืจื—ื‘ ื•ื‘ืงืจื™ืื” ืœ 0001 ื ืงื‘ืœ cache hit ื™ืฉืจ.
ื›ืขืช ื‘ืงืจื™ืื” ืฉืœ 13 ื ืงื‘ืœ cold miss ื’ื ื›ืŸ ื•ื™ืชืงื™ื™ื

v tag data
1 0 M(0),M(1)
1 1 M(12), M(13)

ื’ื ื›ืืŸ ื”ื‘ืื ื• ืืช ื”ื›ืชื•ื‘ืช ืœื™ื“ื•, ื›ื™ ื”ื™ื™ืชื” ืืคืฉืจื•ืช ืœื”ื‘ื™ื ื›ื™ื•ื•ืŸ ืฉื‘data ื™ืฉ ืฉืชื™ ื‘ืœื•ืงื™ื. ื ืฉื™ื ืœื‘ ืฉื›ืœ ื”ื‘ืœื•ืงื™ื ืขื•ืœื™ื ื›ืžืกื” ืื—ืช ื•ืื ื—ื ื• ื™ื•ื“ืขื™ื ืื™ืš ืœื’ืฉืช ื‘ื’ืœืœ ื”ื—ืœื•ืงื” ืฉืœ ื›ืชื•ื‘ืช ื”ื–ื›ืจื•ืŸ.
ื›ืขืช ื›ืฉื ื•ืกื™ืฃ ืืช 8 ื ืงื‘ืœ conflict miss, ื›ื™ ื”set ืฉืœื” ื”ื•ื 00 ื•ืœืžืจื•ืช ืฉื™ืฉ 2 ืฉื•ืจื•ืช ืจื™ืงื•ืช ื”placement policy ื“ื•ืจืฉ ืฉ8 ื™ื”ื™ื” ื‘ืฉื•ืจื” ื”ื–ืืช (ืœืคื™ ื” tag) ื ืงื‘ืœ miss. ื‘ืžืงืจื” ืฉืœ direct mapping ื ืงื‘ืœ ื“ืจื™ืกื” ืฉืœ ื”ืขืจื›ื™ื ื‘ืกื˜ ื”ืจืืฉื•ืŸ.

v tag data
1 0 M(8),M(9)
1 1 M(12), M(13)

ื ืฉื™ื ืœื‘ ืœื—ืกืจื•ืŸ ืžืฉืžืขื•ืชื™ ื‘ืฉื™ื˜ื” ื”ื–ืืช, ื‘ืžืฆื‘ ืฉื‘ื• ื ืงืจื ืœ 0,8 ืฉื•ื‘ ื•ืฉื•ื‘ ื ืงื‘ืœ ืชืžื™ื“ conflict miss ื•ื ืฉืœื ืขืœ ื–ื” ื‘ื‘ื™ืฆื•ืขื™ื ื‘ื’ืœืœ ืฉื™ืฉ ืจืง ืฉื•ืจื” ืื—ืช ืืคืฉืจื™ืช ื‘direct mapping.

ืœืกื™ื›ื•ื ื”ืฉืœื‘ื™ื:

1.ย ย ย Set selection โ€“ ื‘ืžืฆื‘ ื–ื” ื”ืžื˜ืžื•ืŸ ืžื—ืœืง ืืช s (ื”ืื™ื ื“ืงืกื™ื ืฉืžืฆื™ื™ื ื™ื ืืช ื”ืกื˜). ื”ื•ื ืžืชื™ื™ื—ืก ืืœื™ื”ื ื›unsigned ืฉืžืชืื™ื ืœืžืกืคืจ ืฉืœ ืกื˜ ืžืกื•ื™ื™ื. ื›ืœื•ืžืจ ื ืชื™ื™ื—ืก ืœืžื˜ืžื•ืŸ ื›ืžืขืจืš ื—ื“ ืžื™ืžื“ืข ืฉืœ ืกื˜ื™ื, ื›ืฉื”ื‘ื™ื˜ื™ื ืฉืœ ื”ืกื˜ ืžืฆื™ื™ื ื™ื ืืช ื”ืื™ื ื“ืงืก ื‘ืžืขืจืš.

2.ย ย  Line Matching โ€“ ื›ืขืช ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืื ืขื•ืชืง ืฉืœ ื”ืžื™ืœื” ื ืžืฆื ื‘ืชื•ืš ืื—ืช ื”ืฉื•ืจื•ืช ื‘ืกื˜. ื‘direct-mapped cache, ื™ืฉ ืจืง ืฉื•ืจื” ืื—ืช ื•ืœื›ืŸ ื ื‘ื“ื•ืง ืืช ื”ืชื’ ืฉืœื” ื•ืืช ื”valid bit.
ืื ื’ื ื”valid bit ื•ื’ื ื”tag ืžืชืื™ื, ืื– ื™ืฉ hit. ืื—ืจืช ื™ืฉ miss.

3.ย  Word extraction โ€“ ืžื—ื•ืœืง ืœ-2, ืœืคื™ hit ืื• miss:
a.ย ย ย ย  ืื ื™ืฉ hit, ื ื‘ืฆืข Word Selection โ€“ ืœืคื™ ื”ื‘ื™ื˜ื™ื ืฉืœ ื”block offset ื ื“ืข ืžื” ื”ื‘ื™ืช ื”ืจืืฉื•ืŸ ื‘ืžื™ืœื” ื”ืžื‘ื•ืงืฉืช. ืฉื›ืŸ ืื ื—ื ื• ื›ื‘ืจ ื™ื•ื“ืขื™ื ืฉื”ืžื™ื“ืข ื ืžืฆื ื‘ืžื˜ืžื•ืŸ. ื’ื ื›ืืŸ ื ื•ื›ืœ ืœื”ืชื™ื™ื—ืก ืœื‘ืœื•ืง ื›ืžืขืจืš ืฉืœ ื‘ืชื™ื, ื•ื”ื‘ื™ื˜ื™ื ื”ืืœื• ื”ื ื”ืื™ื ื“ืงืก ื‘ืžืขืจืš.

b.ย ย ืื ื™ืฉ miss, ื ื‘ืฆืข Line Replacement โ€“ ื ืฆื˜ืจืš ืœื‘ืงืฉ ืืช ื”ื‘ืœื•ืง ื”ืžื‘ื•ืงืฉ ืžื”ืจืžื” ื”ื‘ืื” ื‘ื”ื™ืจืจื›ื™ืช ื”ื–ื™ื›ืจื•ืŸ ื•ืœืฉืžื•ืจ ืืช ื”ื‘ืœื•ืง ื”ื—ื“ืฉ ื‘ืื—ืช ื”ืฉื•ืจื•ืช ื‘ืกื˜ ืœืคื™ ื”ื‘ื™ื˜ื™ื ืฉืœ ื”ืกื˜. ืื ื”ืกื˜ ืžืœื, ื ืฆื˜ืจืš ืœื”ื—ืœื™ืฃ ืืช ืื—ืช ื”ืฉื•ืจื•ืช. ื‘direct-mapped cache, ื™ืฉ ืจืง ืฉื•ืจื” ืื—ืช ื•ืœื›ืŸ ื ื—ืœื™ืฃ ืื•ืชื”.

ืœืžื” ืœื”ืฉืชืžืฉ ื‘ ื‘ื™ื˜ื™ื ื”ืืžืฆืขื™ื™ื ื›ืื™ื ื“ืงืก?

ื›ืขืช ื ืขื ื” ืขืœ ื”ืฉืืœื” ืžืœืžืขืœื”, ืœืžืจื•ืช ืฉื”ืกื™ื“ื•ืจ ื”ื–ื” ื”ื•ื ืœื ืื™ื ื˜ื•ืื™ื˜ื™ื‘ื™ ื”ืชืฉื•ื‘ื” ืœื›ืš ื”ื™ื ืฉื ืจืฆื” ืœืฆืžืฆื ืืช ื”ืชื•ืคืขื” ืฉืจืื™ื ื• ืžืงื•ื“ื ืฉืงื™ื‘ืœื ื• ืชืžื™ื“ conflict miss ื‘ืงืคื™ืฆื•ืช ื’ื“ื•ืœื•ืช (ื‘ืžืงืจื” ืฉืœ ื”ื“ื•ื’ืžื” ืœืžืขืœื” ื‘ 8). ืื ื›ืŸ ื ืกื‘ื™ืจ ืœืžื” ื”ืงืคื™ืฆื•ืช ืฉืงื™ื‘ืœื ื• ื‘ื™ื—ืก ืœืžื™ืงื•ืžื™ื ื”ืื—ืจื™ื ื”ื•ื ืขื“ื™ืฃ:

Set Associative Caches

ืžืื•ืคื™ื™ืŸ ืขืœ ื™ื“ื™ ื™ื•ืชืจ ืžืฉื•ืจื” ืื—ืช ืœ set
Pasted image 20230110004522.png|300
ื™ืฉ ืฆื•ืจืš ืœื”ืฉื•ื•ืช ืืช ื” tag ื‘ืฆื•ืจื” ืงืคื“ื ื™ืช ื™ื•ืชืจ, ื›ื“ื™ ืœื‘ื“ื•ืง ื”ืื ืื›ืŸ ื›ืชื•ื‘ืช ื ืžืฆืืช ื‘set ื›ืœืฉื”ื• ืื• ืœื.
ื ืฉื™ื ืœื‘ ืฉืื™ืŸ ืœื”ืชืกื›ืœ ืขืœ ื”ื‘ื“ื™ืงื” ื›ืœื•ืœืื” ื›ื™ื•ื•ืŸ ืฉื”ื‘ื“ื™ืงื” ื–ืืช ื ืขืฉื” ื‘ืจืžืช ื”ื—ื•ืžืจื” ื‘ืžืงื‘ื™ืœ
ื›ืขืช ื”ื”ืฉื•ื•ืื” ืžืชื‘ืฆืข ืžื•ืœ ืžืกืคืจ ืฉื•ืจื•ืช, ื ืฉืืœืช ื”ืฉืืœื” ืื™ื–ื” ืžื ื’ื ื•ืŸ ื›ื“ืื™ ืœื”ืฉืชืžืฉ ื›ืืฉืจ tag ืื™ื ื ื• ืฉื•ื•ื” ืœืืฃ ืื—ืช ืžื”ืฉื•ืจื•ืช?
ื›ืžื•ื‘ืŸ ืฉื”ื“ื‘ืจ ืฉืฆืจื™ืš ืœืขืฉื•ืช ื‘ืจืืฉ ื•ื‘ืจืืฉื•ื ื” ื”ื•ื ืœื‘ื“ื•ืง ื”ืื ื™ืฉ ืฉื•ืจื” ืฉื”valid bit ืฉืœื” ื›ื‘ื•ื™ ื•ื‘ืžื™ื“ื” ื•ื›ืŸ ืžื™ื“ ื ืžืงื ื‘ืฉื•ืจื” ื”ื–ืืช.
ืื ื–ื” ืœื ื”ืžืฆื‘, ื ืฉืชืžืฉ ื‘ืขืงืจื•ืŸ LRU, ื›ื™ื•ื•ืŸ ืฉื–ื” ืžืžื•ืžืฉ ื‘ืจืžืช ื”ื—ื•ืžืจื” ื•ื”ืชื›ื ื•ืŸ ืฉืœ ื”cache ื™ืฉ ืœืชื›ื ืŸ ืคืจื˜ ื–ื” ื‘ืงืคื™ื“ื” ืื‘ืœ ืื™ืŸ ืชืฉื•ื‘ื” ื ื›ื•ื ื” ืœืื™ืš ืœืžืžืฉ ืืช ื–ื”.

ื›ืขืช ื ืชืืจ ืืช ืื•ืชืŸ ื”ืคืขื•ืœื•ืช ืขื‘ื•ืจ ืžืฆื‘ ื–ื”:

1.ย ย ย ย  Set selection โ€“ ื‘ืื•ืชื• ืื•ืคืŸ ื›ืžื• ื‘direct-mapped cache, ื”ื‘ื™ื˜ื™ ืฉืœ ื”ืกื˜ ืžื™ื™ืฆื’ื™ื ืืช ืžืกืคืจื•.

2.ย ย ย ย  Line matching and Word selection โ€“ ืœื‘ืฆืข ืžืฆื™ืืช ืฉื•ืจื” ื™ื•ืชืจ ืงืฉื”, ืžื›ื™ื•ื•ืŸ ืฉื–ื” ืžื›ืจื™ื— ืœื‘ื“ื•ืง ืืช ื”ืชื’ื™ื ื•ื”valid bits ืฉืœ ืžืกืคืจ ืฉื•ืจื•ืช ื›ื“ื™ ืœื’ืœื•ืช ืื ื”ืžื™ืœื” ื ืžืฆืืช ื‘ืกื˜.
ืœืฆื•ืจืš ื”ื”ืกื‘ืจ ื ื’ื“ื™ืจ ื–ื™ื›ืจื•ืŸ ืืกื•ืฆื™ืื˜ื™ื‘ื™ โ€“ ื–ื™ื›ืจื•ืŸ ืฉืžื•ืจื›ื‘ ืžื–ื•ื’ื•ืช ืฉืœ ืžืคืชื— ื•ืขืจืš (key, value pair). ื ืชื™ื™ื—ืก ืœassociative cache ื‘ืชื•ืจ ื–ื™ื›ืจื•ืŸ ืืกื•ืฆื™ืื˜ื™ื‘ื™ ืงื˜ืŸ ื›ืฉื”ืžืคืชื—ื•ืช ื”ืŸ ืฉืจืฉื•ืจ ืฉืœ ื”ื‘ื™ื˜ื™ื ืฉืœ ื”ืชื’ ื•ื”valid bit ื•ื”ืขืจื›ื™ื ื”ื ื”ืชื•ื›ืŸ ืฉืœ ื”ื‘ืœื•ืงื™ื.
ืœื›ืŸ ื‘ืขืฆื ื ื‘ืฆืข ื—ื™ืคื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ื”ืืกื•ืฆื™ืื˜ื™ื‘ื™ ืื ืงื™ื™ื ื”ืžืคืชื— ื”ืžื‘ื•ืงืฉ, ื›ืœื•ืžืจ ืื ืื—ืช ืžื”ืฉื•ืจื•ืช ืžืชืื™ืžื” ื’ื ื‘ืชื’ ื•ื’ื ื‘valid bit. ื‘ืžื™ื“ื” ื•ื›ืŸ, ืœืคื™ ื”block offset ื ืžืฆื ืืช ื”ืžื™ืœื” ื”ืžื‘ื•ืงืฉืช ื‘ืชื•ืš ื”ืฉื•ืจื”.

3.ย ย ย ย  Line Replacement โ€“ ืื ื”ืžื™ืœื” ื”ืžื‘ื•ืงืฉืช ืœื ื ืžืฆืืช ื‘ืื—ืช ืžื”ืฉื•ืจื•ืช ื‘ืกื˜, ื™ืฉ ืœื ื• ื›ืžื•ื‘ืŸ cache miss. ืื ื™ืฉ ืฉื•ืจื” ืคื ื•ื™ื” ื‘ืกื˜, ืืช ื”ื‘ืœื•ืง ืžื”ืจืžื” ื”ื‘ืื” ื‘ื”ื™ืจืจื›ื™ืช ื”ื–ื™ื›ืจื•ืŸ ื ื˜ืขืŸ ืœืฉื•ืจื” ื”ืคื ื•ื™ื”. ืื ืื™ืŸ ืฉื•ืจื•ืช ืคื ื•ื™ื•ืช ืื– ื ืฆื˜ืจืš ืœื”ื—ืœื™ื˜ ืื™ื–ื• ืฉื•ืจื” ืœืคื ื•ืช ื•ื›ืืŸ ื™ืฉ ืžืกืคืจ ืื•ืคืฆื™ื•ืช:
a.ย ื ื‘ื—ืจ ื‘ืื•ืคืŸ ืจื ื“ื•ืžืœื™
b. ื ื™ืงื— ืืช ื”Least Frequently Used โ€“ LFU, ื›ืœื•ืžืจ ืืช ื”ืฉื•ืจื” ืฉื ื™ื’ืฉื ื• ืืœื™ื” ื”ื›ื™ ืคื—ื•ืช ืคืขืžื™ื ื‘ืคืจืง ื–ืžืŸ ืžืกื•ื™ื™ื.
c. ื ื™ืงื— ืืช ื” LRU- ื›ืœื•ืžืจ ื”ืฉื•ืจื” ืฉื ื™ื’ืฉื ื• ืืœื™ื” ื”ื›ื™ ืžื–ืžืŸ ืžื‘ื™ืŸ ื”ืฉื•ืจื•ืช ื‘ืกื˜.

ืœื•ืงืœื™ื•ืช ื‘ืžืจื—ื‘ ื›ืืฉืจ ื” block size ื’ื“ื•ืœ ืž1

ื›ืคื™ ืฉืืžืจื ื• ื” cache block ื‘ื›ืœ set ื‘ื ื•ื™ ื‘ืื•ืคืŸ ื›ื–ื” ืฉื™ื”ื™ื” ืœื• ืžืงื•ื ืœื™ื•ืชืจ ืžword ืื—ื“ ื›ืœ ืคืขื. ืขืœ ืžื ืช ืฉื ื•ื›ืœ ืœื”ื‘ื™ื ื›ืชื•ื‘ื•ืช ืฉืงืจื•ื‘ื™ื ื™ื•ืชืจ. ื ืจืฆื” ืฉื‘ืœื•ืง ื™ื•ื›ืœ ืœื”ื›ื™ืœ ื›ืžื” ืฉื™ื•ืชืจ words ืกืžื•ื›ื™ื.
Pasted image 20230110014601.png|250
ื ื™ืชืŸ ืœืจืื•ืช ืฉื™ืฉ ื”ืฉืคืขื” ื‘ืจื•ืจื” ืฉืœ ื’ื•ื“ืœ ื”ื‘ืœื•ืง ืขืœ ืžืกืคืจ ื”miss rate. ื–ื” ื“ื•ื’ืžื” ืงืœืืกื™ืช ืฉืœ ื–ื›ืจื•ืŸ ืืœ ืžื•ืœ ื™ืขื™ืœื•ืช, ื›ื›ืœ ืฉื ืงืฆื” ื™ื•ืชืจ ืžืฉืื‘ื™ื ื›ื›ื” ื ื”ื™ื” ื™ื•ืชืจ ื™ืขื™ืœื™ื, ืคื” ื”ืžืงืจื” ืงืฆืช ืฉื•ื ื” ื›ื™ ื™ืฉ ื’ื‘ื•ืœ ืžืกื•ื™ื™ื, ื›ืฉื”ื‘ืœื•ืง ื™ืขืœื” ืขืœ ื’ื•ื“ืœ ืžืกื•ื™ื™ื ื™ื•ื•ืฆืจ ืžืฆื‘ ืฉื‘ืจื•ื‘ ื”ืžืงืจื™ื ื›ืœ ื”ืžื™ื“ืข ื™ื”ื™ื” ื‘ืื•ืชื• ื‘ืœื•ืง ื•ื–ื” ืขืœื•ืœ ืœืคื’ื•ืข ื‘ื‘ื™ืฆื•ืขื™ื ื‘ืงืคื™ืฆื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ืžื™ื“ืข ื›ื™ ื”ืขืชืงืช ื”ืžื™ื“ืข ืœืจืžื•ืช ืื—ืจื•ืช ืชื™ืงื— ื™ื•ืชืจ ื–ืžืŸ.

write to cache

ื”ื‘ืขื™ื” ื‘ื›ืชื™ื‘ื” ื”ื™ื ืฉื™ืฉ ื›ืžื” ื”ืขืชืงื™ื ืฉืœ ื”data ื‘ื›ืœ ืื—ืช ืžื”ืจืžื•ืช ืฉืœ ื”ืžื˜ืžื•ืŸ ื•ื”ื–ื›ืจื•ืŸ ื”ืจืืฉื™. ื›ืœื•ืžืจ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื“ืจืกื ื• ืขืจืš ื‘ืจืžื” ื ืžื•ื›ื” ืฉืœ ืžื˜ืžื•ืŸ ื•ืœื ื‘ืจืžื•ืช ื”ื’ื‘ื•ื”ื•ืช ืฉืžืชืื™ืžื•ืช ืœื•.

write-hit

ื ื—ืœืง ืืช ื”ืžืฆื‘ื™ื ืฉื‘ื”ื ื”ืฆืœื—ื ื• ืœื›ืชื•ื‘ ืœ 2:
ื) write-through : ืื ื›ื•ืชื‘ื™ื ืœืžื˜ืžื•ืŸ ื‘ืจืžื” ื” k ืื– ื›ืœ ืจืžื” ื›ื•ืชื‘ืช ืœืจืžื•ืช ืžืชื—ืชื™ื” ืืช ื”ืขืจืš ื”ื—ื“ืฉ.
ื‘) write-back : ื”ืจืžื” ืฉืขืœื™ื” ื ื›ืชื‘ ื”ืขืจืš ื”ื—ื“ืฉ ืœื ืชืจื“ ืœืžื˜ื” ืขื“ ืฉืœื ืฆืจื™ืš ืœื”ื—ืœื™ืฃ ืืช ื›ืœ ื”ืฉื•ืจื” ืฉืœ ื”ื–ื›ืจื•ืŸ. ื›ืœื•ืžืจ ืขื“ ืฉื”ืชืงื‘ืœ miss ื›ืœืฉื”ื•. ื–ื” ื“ื•ืจืฉ ืžืื™ืชื ื• ืœื”ื•ืกื™ืฃ ืœื›ืœ ืฉื•ืจื” flag ื ื•ืกืฃ ืฉื ืงืจื dirty bit ืฉืงื•ื‘ืข ื”ืื ื”ืžื™ื“ืข ื‘ืฉื•ืจื” ืฉื•ื ื” ืžื”ืจืžื” ืฉืžืชื—ืชื™ื” ื›ื“ื™ ืœื“ืขืช ื”ืื ื™ืฉ ืฆื•ืจืš ื‘ืขืช ื”ื—ืœืคืช ืฉื•ืจื” ืœืฉื ื•ืช ืืช ื”ืขืจืš ื‘ืจืžื” ืžืชื—ืช.

write miss

ืžืฆื‘ ื–ื” ื™ืงืจื” ื›ืืฉืจ ื ืจืฆื” ืœื›ืชื•ื‘ ืœื›ืชื•ื‘ืช ืฉื‘ื›ืœืœ ืœื ื ืžืฆืืช ื‘ cache.
ื) write allocate : ื‘ืžืฆื‘ ืฉืœ miss ืขืœ cache ื ืงืจื ืงื•ื“ื ืืช ื”ืขืจืš ืžื”ื–ื›ืจื•ืŸ (ื ืžืฉื™ืš ืœื—ืคืฉ ื‘ืจืžื•ืช ืขื“ ืฉื ืžืฆื ืืช ื”ื›ืชื•ื‘ืช) ืœcache ื•ืœืื—ืจ ืฉื ืงืจื ืื•ืชื• ืœืจืžื” ื”ื–ืืช ื ืฉื›ืชื‘ ืขืœื™ื• ืืช ื”ืขืจืš ื”ื“ืจื•ืฉ ื•ืœื ื ืขื“ื›ืŸ ืœืžื˜ื”.

ื‘) no-write-allocate : ื”ืžืฉื›ืช ืชื”ืœื™ืš ื”ื›ืชื™ื‘ื” ืœืžื˜ื” ืขื“ ืœืจืžื” ืฉื‘ื” ื–ื” ื ืžืฆื. ื›ืœื•ืžืจ ื”ืขื‘ืจื” ืชื”ืœื™ืš ื”ื›ืชื™ื‘ื” ื‘ืžืฆื‘ ืฉืœ miss ืœืจืžื” ืžืชื—ืช ื•ื”ืขื‘ืจืช ื”ืื—ืจื™ื•ืช ืืœื™ื”.

ื‘ื—ื•ืžืจื” ื”ื˜ื™ืคื•ืกื™ื ื”ื ืคื•ืฆื™ื ื™ื•ืชืจ ื”ื -
write through + no-write-allocate
write-back + write allocate

Intel Pentium Cache Hierarchy

Pasted image 20230110010247.png|300
ื ื™ืชืŸ ืœืจืื•ืช ืฉื”ื ื”ืฉืชืžืฉื• ื‘ set ืขื ืืจื‘ืข ืฉื•ืจื•ืช ืขื write through ืขื‘ื•ืจ ื”data ื•ืขืœ ื” instruction ื‘ื›ืœ ืฉื•ืจื”.
ืœืžื” ื™ืฉ ื”ืคืจื“ื” ื‘ื™ืŸ ื”ื›ืชื•ื‘ื•ืช ืœdata?
ื”ื›ืชื•ื‘ื•ืช ืฉืœ ืฉื ื™ื”ื ื”ื ื‘ืชื—ื•ืžื™ื ืฉื•ื ื™ื ืœื’ืžืจื™ ื•ืœื›ืŸ ื ืงื‘ืœ ืœื•ืงืœื™ื•ืช ืžืื•ื“ ื ืžื•ื›ื”, ื”ื”ืคืจื“ื” ืžื‘ื˜ื™ื—ื” ืœื•ืงืœื™ื•ืช ื’ื‘ื•ื”ื” ื‘ืขื™ืงืจ ื‘ืชื—ื•ื ื” instructions.

Intel Core i7 Cache Hierarchy

Pasted image 20230110010717.png|300
ื ืฉื™ื ืœื‘ ืฉื”ื“ื•ื’ืžืื•ืช ื•ื”ืžื‘ื ื” ืฉืื ื—ื ื• ืžืจืื™ื ืคื” ืžื™ื•ืขื“ ืœืžื—ืฉื‘ื™ desktop ื•ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื‘ืžื—ืฉื‘ื™ื ืœื™ื™ืขื•ื“ื™ื ืฉื•ื ื™ื ื™ืฉ ืžื‘ื ื” ืฉื•ื ื” ืื‘ืœ ื”ืขืงืจื•ื ื•ืช ื–ื”ื™ื.
ื™ืฉื ื ืกื•ื’ื™ื ื ื•ืกืคื™ื ืฉืœ associative mapping ืœืžืฉืœ Full Associative Mapping ืื‘ืœ ื”ื”ืชื ื”ื’ื•ืช ื”ื™ื ื“ื•ืžื” ืขื ื™ืชืจื•ื ื•ืช ื•ื—ืกืจื•ื ื•ืช ืื—ืจื™ื.

ื—ื™ืฉื•ื‘ ื’ื•ื“ืœ ื” cache

ื‘ื”ื™ื ืชืŸ ื‘ืœื•ืง ื‘ื’ื•ื“ืœ b ืžื™ืœื™ื + w ื‘ื™ื˜ื™ื ืฉืžื™ื™ืฆื’ื™ื ื’ื•ื“ืœ ืฉืœ ื›ืชื•ื‘ืช ื•ืžื™ืœื” ื•ื ืจืฆื” ืฉื‘cache ื™ื”ื™ื” 2n ืžื™ืœื™ื. ื™ืชืงื™ื™ื:

2nโ‹…[bโ‹…w+(wโˆ’[n+logโก(bw8)])+1]

ื›ืืฉืจ:
ื) bw ื–ื” ื”ื‘ื™ื˜ื™ื ื”ื“ืจื•ืฉื™ื ื‘ืฉื‘ื™ืœ ื›ืœ ื”ืžื™ืœื™ื ื‘data.
ื‘) ื”ื‘ื™ื˜ื•ื™ ื‘ืกื•ื’ืจื™ื™ื ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื”ื‘ื™ื˜ื™ื ื”ื“ืจื•ืฉื™ื ื‘ืฉื‘ื™ืœ ื”tag -

(wโˆ’[n+logโก(bw8)])

ื”ืžื™ืœื” ืฉืžืžื ื” ืžื—ืกื™ืจื™ื ืžื™ื™ืฆื’ืช ืืช ื›ืœ ื”ื›ืชื•ื‘ืช, ื”ื‘ื™ื˜ื•ื™ bw8 ืžื™ื™ืฆื’ ืืช ืžืกืคืจ ื” words ื‘ื‘ื™ื˜ื™ื ืฉื™ืฉ ื‘ื›ืœ ืฉื•ืจื” ื•ื ืจืฆื” ืœืชืจื’ื ืืช ื–ื” ืœื‘ื™ื™ื˜ื™ื ืขืœ ื™ื“ื™ ื—ืœื•ืงื” ื‘8. ื›ืœื•ืžืจ ืžืกืคืจ ื”ื‘ื™ื™ื˜ื™ื ืฉื™ืฉ ื‘data ืฉืžื™ื™ืฆื’ื™ื ืืช ื”ืžื™ืœื™ื. ื”ืคืขืœืช ื”log ืขืœ ื”ื‘ื™ื˜ื•ื™ ื”ื–ื” ืชื™ืชืŸ ืืช ื” byte-offset ื›ืœื•ืžืจ ื›ืžื” ื‘ื™ื™ื˜ื™ื ื“ืจื•ืฉื™ื ืœื™ื™ืฆื•ื’ ื›ืœ ื”ืžื™ืœื™ื ื”ืืœื”, ืžื•ืกื™ืคื™ื ืœื–ื” n ื›ืžืกืคืจ ื”ื‘ื™ื™ื˜ื™ื ื”ื“ืจื•ืฉื™ื ืœื™ื™ืฆื•ื’ 2n ืกื˜ื™ื.

ื’) ื‘ืกื•ืฃ ืžื•ืกื™ืคื™ื ืื—ื“ ื‘ื™ืฉื‘ื™ืœ ื”valid bit.

Cache friendly code

ืžื•ื“ื“ื™ื ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžื˜ืžื•ืŸ ืœืคื™ ืžืกืคืจ ืžื“ื“ื™ื:
1.ย ย ย ย  Miss rate โ€“ ื”ื—ืœืง ืฉืœ ื”ืงืจื™ืื•ืช ืœื–ื™ื›ืจื•ืŸ ื‘ื–ืžืŸ ื”ืจืฆืช ืชื•ื›ื ื™ืช (ืื• ื—ืœืง ืžืชื•ื›ื ื™ืช) ืฉื ื’ืžืจ ื‘miss. ืžื—ื•ืฉื‘ ืœืคื™ ื›ืžื•ืช misses ื—ืœืงื™ ื›ืžื•ืช references (ื”ืคื ื™ื•ืช ืœื–ื™ื›ืจื•ืŸ).
2.ย ย ย ย  Hit rate โ€“ ื”ื—ืœืง ืฉืœ ื”ืงืจื™ืื•ืช ืฉื”ืฆืœื™ื—, ื›ืœื•ืžืจ ื”ื™ื” hit. ืžื—ื•ืฉื‘ ืขืœ ื™ื“ื™ 1-miss rate (ื”ืžืฉืœื™ื ืœื•).
3.ย ย ย ย  Hit time โ€“ ื”ื–ืžืŸ ืฉืœื•ืงื— ืœื”ืขื‘ื™ืจ ืžื™ืœื” ืฉื ืžืฆืืช ื‘ืžื˜ืžื•ืŸ ืœืžืขื‘ื“ โ€“ ื›ื•ืœืœ ืืช ื”ื–ืžืŸ ืฉืœ ื”set selection, line identification ื•word selection. ืขื‘ื•ืจ ื”L1 ืœืžืฉืœ, ื”ื•ื ืกื“ืจ ื’ื•ื“ืœ ืฉืœ ืžืกืคืจ clock cycles.
4.ย ย Miss penalty โ€“ ื›ืœ ื–ืžืŸ ื ื•ืกืฃ ืฉืœื•ืงื— ื‘ื’ืœืœ miss.

ื ืฉื™ื ืœื‘

ื”ืจื‘ื” ื™ื•ืชืจ ืื›ืคืช ืœื ื• ืžืชื“ื™ืจื•ืช ื” miss rate ืฉื›ืŸ ื–ืืช ืคืขื•ืœื” ื”ืจื‘ื” ื™ื•ืชืจ ื›ื‘ื“ื” ืฉื›ืŸ ื–ืืช ืคืขื•ืœื” ืฉืœื•ืงื—ืช ื‘ืžืžื•ืฆืข ื”ืจื‘ื” ื™ื•ืชืจ ืžื›ืœ ืคืขื•ืœื” ืื—ืจืช (ืคื™ 100 ืž hit ืœืžืฉืœ ืื ืžื“ื‘ืจื™ ืขืœ ื” L1). ืœืžืฉืœ ืขื‘ื•ืจ cache hit ืฉืœ 1 cycle ื• miss penalty ืฉืœ 100 cycle. ืขื‘ื•ืจ ืงื•ื“ ืขื 97% hit ืžื•ืœ ืงื•ื“ ืฉืœ 99% hit ื ืงื‘ืœ ืฉื‘ืงื•ื“ ืขื ื”97 ืื—ื•ื– ื ืงื‘ืœ ืขื‘ื•ืจ cycle ืื—ื“ ืœ hit ื•ืคื™ 100 cycles ืœ miss ืžืžื•ืฆืข ืฉืœ 4 cycles ืขื‘ื•ืจ ื’ื™ืฉื” ืœืžื™ื“ื” ื•ื‘ืžืงืจื” ืฉืœ 99 ืื—ื•ื– ื ืงื‘ืœ 2 cycles ืขื‘ื•ืจ ื’ื™ืฉื” ืœืžื™ื“ืข ื”ื‘ื“ืœ ืฉืœ ืคื™ 2

The memory mountain

ื’ืจืฃ ื”ืžืžื“ืœ ื˜ื•ื‘ ืžืฉื™ื›ื” ืฉืœ ืžื™ื“ืข ืžื”ื–ื›ืจื•ืŸ ื›ืชืœื•ืช ื‘ืžืกืคืจ ื”ืื™ื‘ืจื™ื ื‘ืžืขืจืš ื•ื‘ืงืคื™ืฆื•ืช ืฉืขื•ืฉื™ื ื‘ื™ืŸ ืื™ื‘ืจื™ื:

Pasted image 20230213120216.png|500
ื ื™ืชืŸ ืœืจืื•ืช ืขื ื›ืŸ ืฉื™ืฉ ื”ืฉืคืขื” ืฉืœ ื” stride ื•ืฉืœ ื’ื•ื“ืœ ื”ืžืขืจืš ืขืœ ื”ืžืงื•ืžื™ื•ืช ื‘ื–ืžืŸ ื•ื‘ืžืจื—ื‘ ืฉืœื ื•. ื›ื›ืœ ืฉื”ืงืคื™ืฆื•ืช ื’ื“ื•ืœื•ืช ื™ื•ืชืจ ืื ื—ื ื• ื ืงืคื•ืฅ ืœืื™ื‘ืจ ืฉืœื ื”ื’ื™ืข ืœืžื˜ืžื•ืŸ ื‘miss ื”ืงื•ื“ื ื•ืœื›ืŸ ื ืงื‘ืœ miss ืฉื•ื‘. ื›ืžื• ื›ืŸ ื›ื›ืœ ืฉื”ืžื™ื“ืข ื’ื“ื•ืœ ื™ื•ืชืจ ื›ื›ื” ืื ื™ ืžื‘ื˜ื™ื— ืฉืœื ื™ื”ื™ื” ืœื›ื•ืœื• ืžืงื•ื ืžื˜ืžื•ืŸ ื•ืœื›ืŸ ื’ื ืื ืื ื™ ื ื™ื’ืฉ ืœื›ืœ ื”ืื™ื‘ืจื™ื ื‘ืื•ืชื• ืงืฆื‘ ื‘ื•ื•ื“ืื•ืช ื™ื”ื™ื• ืื™ื‘ืจื™ื ืฉืืฆื˜ืจืš ืœืœื›ืช ืœื–ื›ืจื•ืŸ ื”ืจืืฉื™ ืขื‘ื•ืจื ืžื” ืฉืคื•ื’ืข ื‘ืžืงื•ืžื™ื•ืช ื”ื–ืžืŸ.

ื˜ื™ืคื™ื ืœืงื•ื“ ืžื”ื™ืจ ื™ื•ืชืจ ืฉืžืกืชืžื›ื™ื ืขืœ ืžืงื•ืžื™ื•ืช
1.ย ย ย ย  ื›ืฉื™ืฉ ืœื•ืœืื•ืช ืžืงื•ื ื ื•ืช, ืœื”ืชืžืงื“ ื‘ืœื•ืœืื•ืช ื”ืคื ื™ืžื™ื•ืช ื›ื™ ืฉื ืจื•ื‘ ืคืขื•ืœื•ืช ื”ื—ื™ืฉื•ื‘ ื•ื”ื’ื™ืฉื•ืช ืœื–ื™ื›ืจื•ืŸ ืœืจื•ื‘ ื™ืงืจื•.
2.ย ย ย ย  ืœื”ืฉืชืžืฉ ื‘ืžืงื•ืžื™ื•ืช ืžืจื—ื‘ ืขืœ ื™ื“ื™ ืงืจื™ืื” ืขื•ืงื‘ืช ืฉืœ ืžื™ื“ืข (ื›ืœื•ืžืจ ื ืขื“ื™ืฃ stride-1).
3.ย ย ย ย  ืœืžืงืกื ืžืงื•ืžื™ื•ืช ื–ืžืŸ ื‘ื›ืš ืฉื ืฉืชืžืฉ ื‘ืžื™ื“ืข ื›ื›ืœ ื”ื ื™ืชืŸ ืื—ืจื™ ืฉื”ื•ื ื›ื‘ืจ ื ืงืจื ืœื–ื™ื›ืจื•ืŸ.