목록프로그래밍 (Programming)/컴퓨터 구조 (3)
Automotive Software
캐시 구조 직접 주소 매핑 (direct mapped cache) : 가장 간단한 방식으로 메인 메모리상의 주소가 하나의 캐시 블록에 매핑 전 연관 캐시 (fully associative cache) : 지정된 캐시 블록 없이 사용가능한 캐시에 동적으로 데이터 저장 집합 연관 캐시 (set associative cache) : 캐시 블록을 집합이라는 그룹으로 나누고 각 주소 영역의 하나의 집합에 매핑, 데이터는 해당 집합 내의 어느 주소에 저장 가능 예, 1블록으로 이루어진 8 세트 캐시가 있을 경우, 1 Way associative cache : direct mapped와 동일 2 - 4 way associative cache : 각각 2 블록(4 세트) / 4 블록(2세트) 8 way associat..

일반적으로 캐시는 상기 그림과 같은 단일 버스 기반의 멀티 코어(프로세서) 시스템에서 명령어 및 데이터 읽기 동작을 위해 메인 메모리 접근에 소비되는 버스의 통신량을 줄이기 위해 사용된다. 하지만, 프로세스 간 공유 메모리를 통해 IPC (Inter Processs Communicartion)을 구현하는 경우, 캐시와 메인 메모리 간 동기화 비용이 전체 시스템 성능을 영향을 끼치게 되며 또한 신뢰성 있는 IPC를 구현하는데 키 요소가 된다. 멀티 프로세스 캐시내 데이터의 일관성을 유지하기 위한 방법인 캐시 일관성 프로토콜 (Cache Coherency Protocol) 은 아래와 같은 방식이 있다. 스누핑 (Snooping) : 별도의 스누핑 제어기가 항상 캐시와 연결된 버스를 감시하여 각 프로세서 캐시..
멀티 코어 시스템에서는 한 프로세스에서 캐시를 통해 수정하는 공유 메모리의 데이터가 다른 프로세스에게도 동일하게 보이는 공유 데이터의 일관성이 중요한데, 이를 위해 ARM과 같은 최근 프로세서 구조에서는 소프트웨어의 복잡도를 줄이는 하드웨어 기반의 캐시 일관성 (Cache Coherence) 메커니즘을 제공한다. ARM의 경우, SCU (Snoop Control Unit)가 해당 기능을 위해 중심적인 역할을 하는데, 각 코어상의 캐시 움직임을 감시하고, 캐시상의 데이터가 공유 메모리상의 데이터와 일치하도록 하는 역할을 수행한다. 스누핑 : 하나의 프로세스가 메모리상의 데이터를 수정코저 할 때, 우선은 캐시상에 해당 데이터의 존재 및 일치성 여부를 확인하게 되는데, 이때 존재하지 않거나 공유 메모리상의 데..