Cache

sk y·2022년 1월 20일
0

Cache

  • RAM 보다 CPU에 가까우며 속도가 빠르다. 처리 속도(레지스트리>캐시>램>하드디스크)
  • RAM이나 하드디스크에서 CPU에서 매번 처리할 데이터를 꺼내오는 것은 지연시간이 오래 걸린다.
  • CPU가 RAM에서 데이터를 꺼내기 전 캐시를 확인한다.
  • Tmeporal Locality =>한번 사용된 데이터는 재사용될 확률이 높다.
  • Spatial Locality => 사용된 데이터의 주변 데이터는 사용될 확률이 높다.
  • Spatial Locality의 예(Cache Friendly Code)
INT32 buffer[10000][10000];
int main(int argc, char *argv[])
{

    memset(buffer, 0, sizeof(buffer));
	//열 단위로 접근
	{
		UINT64 start = GetTickCount();
		INT64 sum = 0;
		for(int i=0; i<10000; i++)
			for (int j = 0; j < 10000; j++)
			{
				sum += buffer[i][j];
			}
		UINT64 end = GetTickCount();
		cout << end - start << endl;
	}

	//행 단위로 접근
	{
		UINT64 start = GetTickCount();
		INT64 sum = 0;
		for (int i = 0; i<10000; i++)
			for (int j = 0; j < 10000; j++)
			{
				sum += buffer[j][i];
			}
		UINT64 end = GetTickCount();
		cout << end - start << endl;
	}

}

profile
incipience

0개의 댓글

관련 채용 정보