Guillermo Austin Kim

Sources

Posts

998 posts

[Arm프로세서] 캐시(Cache): Way와 Set의 개념

Guillermo Austin Kim|2022년 5월 30일

Arm 프로세서에서 구현된 캐시는 어떤 방식으로 설계됐을까요? 이전 절에서 설명한 구조에서 확장된 Set와 Way로 구성돼 있습니다. 다음 그림을 보면서 Set와 Way으로 구성된 캐시 구조를 알아봅시다. 그림 17.6 Way와 Set가 추가된 캐시의 구조 이전 그림과 달라진 점은 박스가 하나 더 추가됐다는 점입니다. 원래 Way0으로 표기된 캐시가 있었는데 Way1이 추가됐습니다. 그림 17.6을 설명하기 앞서 Way가 무엇인지 알아봅시다. Way는 캐시 라인들로 구성된 일종의 캐시 라인의 페이지입니다. 캐시 라인으로 구성된 박스 하나가 각각 Way를 나타냅니다. 그림 17.6은 2개 Way인 Way0와 Way1으로 구성돼 있습니다. 이어서 Set를 알아 봅시다. 그림의 가장 왼쪽 부분에 Set가 0

[Arm프로세서] 캐시 미스 동작

Guillermo Austin Kim|2022년 5월 30일

캐시 히트는 CPU가 접근하는 데이터가 캐시에 존재하면 처리되는 과정입니다. 하지만 캐시에 CPU가 접근하는 데이터가 없을 수도 있습니다. 이 때 메인 메모리에 접근해 데이터를 캐시에 로딩하는데요. 이 과정을 캐시 미스라고 명시합니다. 이번에는 다음 그림을 보면서 캐시 미스가 발생하는 과정을 알아봅시다. 그림 17.5 데이터 주소로 캐시에 접근해 캐시 미스가 되는 과정 그림 17.5도 0x0000_00D4 주소에 접근하는 동작을 나타냅니다. 캐시에 접근하면서 가장 먼저 0x0000_00D4 주소의 인덱스에 해당되는 캐시 라인에 접근합니다. 이 주소의 인덱스가 01(이진수)이니 1번째에 있는 캐시 라인에 접근합니다. 여기서 1번재 캐시 라인에 매핑된 태그램에 0x0000_00D4 주소의 Tag인 011가

[Arm프로세서] 캐시 히트 동작

Guillermo Austin Kim|2022년 5월 23일

데이터 주소를 바탕으로 캐시에 접근하는 과정을 캐시 룩업(Lookup)이라고 합니다. 캐시 룩업 동작은 크게 캐시 히트와 캐시 미스로 분류됩니다. 먼저 캐시에 접근해 캐시 히트가 동작하는 과정을 알아봅시다. 캐시 히트 동작 캐시는 캐시 라인과 캐시 라인의 속성을 나타내는 하드웨어로 구성돼 있습니다. 다음 그림을 보면서 캐시의 전체 구조를 알아봅시다. 그림 17.4 데이터 주소로 캐시에 접근해 캐시 히트가 되는 과정 위 그림은 0x0000_00D4 주소에 존재하는 데이터를 로딩하기 위해 캐시에 접근하는 동작을 나타냅니다. 먼저 그림에서 가장 위에 보이는 부분은 캐시에서 바라 본 주소 포멧입니다. 캐시에 접근할 때 주소를 '태그 + 인덱스 + 오프셋'으로 분류합니다. 16진수 포멧인 0x0000_00

[Arm프로세서] 캐시의 검색 방법: 캐시 룩업(Cache Lookup)

Guillermo Austin Kim|2022년 5월 18일

캐시를 검색하는 방법을 설명하기 전에 재미있는 상상을 해봅시다. 4G 크기의 메인 메모리를 사용하는 32비트 시스템에서 4G를 모두 처리할 수 있는 캐시가 있다고 가정합시다. 메모리 주소 공간은 범위가 0x~0xffff_fff이고 캐시 데이터를 저장하는 캐시 라인의 사이즈가 128이면 캐시 라인의 갯수는 3천만개가 넘을 것입니다. 계산식은 다음과 같습니다. 225 = 232 / 27 = 0xffff_ffff / 128 그런데 캐시는 SDRAM으로 구현되므로 가격이 비쌉니다. 만약 3천만개의 캐시 라인으로 구성된 컴퓨터의 가격은 매우 비쌀 겁니다. 실제 상용 CPU의 L1 캐시의 사이즈는 고작 32KB이고 L2/L3 캐시는 메가 바이트 사이즈입니다. 그래서 메인 메모리에 접근하려는 주소가 있으면 캐

[Arm프로세서] 캐시의 기본 동작 원리

Guillermo Austin Kim|2022년 5월 18일

캐시의 필요성과 캐시가 시스템 성능에 큰 영향을 미친다는 내용을 알아봤습니다. 이어서 캐시의 세부 구조와 동작 원리를 더 자세히 알아 봅시다. 캐시의 기본 동작 원리를 파악하려면 먼저 다음과 같은 내용을 알아야 합니다.  주소 분류 체계 캐시를 구성하는 기능(태그, 인덱스) 2가지 내용을 함께 알아야 캐시의 동작 원리를 이해할 수 있습니다. 먼저 캐시에 접근하는 주소 체계를 알아 봅시다.