캐시

    캐시가 동작하는 아주 구체적인 원리

    Principle of Locality 지역성에는 시간적 지역성과 공간적 지역성, 순차적 지역성이 있다. 시간적 지역성 : 최근에 액세스 된 프로그램이나 데이터가 가까운 미래에 다시 액세스 될 가능성이 높음을 의미한다. 반복루프, 서브루틴 호출, 공통 변수가 대표적인 예시다. 공간적 지역성 : 기억장치 내에 인접하여 저장된 데이터들이 연속적으로 액세스될 가능성이 높음을 의미한다. 표, 배열의 데이터가 그 대표적 예시다. 순차적 지역성 : 분기가 발생하지 않는 이상 명령어들이 기억장치에 저장된 순서대로 인출되어 실행됨을 의미한다. 이는 공간적 지역성에 편입되어 설명되기도 한다. 한 프로세스 안에도 자주 사용하는 부분과 그렇지 않은 부분이 있기 때문에 운영체제는 프로세스를 페이지(Page)라는 단위로 나눠 ..

    캐시 히트율/메모리 적중률 (Hit Rate)

    캐시 메모리는 CPU의 처리 속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory이다. ※ 캐시 메모리 이용 효과 프로그램의 실행과정을 분석해 보면, 주어진 시간 동안에 참조하는 메모리 영역은 국한된다는 사실을 알 수 있다.(메모리 참조의 국부성) 따라서 자주 참조되는 프로그램의 일부를 속도가 빠른 기억장치에 저장해 놓고 실행시키면 프로그램의 총 실행시간을 단축시킬 수 있다. 이때 이용하는 기억장치를 캐시 메모리라고 한다. 캐시 메모리의 특징 캐시는 주기억장치와 CPU사이에 위치하며, 자주 사용하는 프로그램과 데이터를 기억한다. 캐시 메모리는 메모리 계층 구조에서 가장 빠른 소자이며, 처리 속도가 거의 CPU의 속도와 비슷할 정도이다. 캐시를 사용하면 주기억장치를 접근..

    프로세서, 메모리, 캐시 개념 및 원리 (메모리 및 버스/연결 관한)

    시스템 버스 시스템 버스는 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게하는 통로 역할을 한다. 이때 버스는 데이터 버스, 주소 버스, 제어 버스로 나뉜다. 데이터 버스 프로세서와 메인 메모리 그리고 주변 장치들 사이에서 데이터를 전송할 때 쓰인다. 이때 버스는 데이터를 주고받아야 하므로 양방향이다. 주소 버스 프로세서에서 메모리의 주소를 지정할 때, 그 주소가 어디인지에 대한 정보를 보내는 버스이다. 즉, 프로세서에서 01110011이라는 위치에 데이터를 보내려면 데이터 뿐만 아니라 데이터의 목적지인 01110011도 버스를 통해 보내는데 이를 주소 버스를 통해 보낸다. 결국 프로세서가 주소를 지정하면서 보내는 버스이다. 이 버스는 주소를 보내면 되니 단방향이다. 제어 버스 프로세서가 ..

    CPU 캐시의 원리 (캐시 라인과 태그)

    프로세서가 빈번하게 사용하는 데이터를 빠르게 추출하기 위한 '캐시 라인' 이라는 데이터 단위라고 불리며 데이터 저장구조로는 대표적으로 몇 가지 있다. Full Associative 방식 Set Associative 방식 Direct Map 방식 캐시 라인과 태그 프로세서는 다양한 주소에 있는 데이터를 사용하므로 일반적으로 빈번하게 사용하는 데이터의 주소는 여기저기 흩어져 있어서 캐시에 저장하는 데이터에는 해당 데이터의 메모리 주소 등을 쓴 태그를 달아놓을 필요가 있다. 그리고 메모리로부터 가져오는 데이터 묶음(단위)을 캐시 라인이라고 한다. 태그의 크기, 캐시 라인의 크기 캐시 라인에 붙이는 태그는 32비트 주소 공간을 갖는 프로세서는 32비트, 64비트 주소 공간을 갖는 프로세서는 64비트 정도의 크기..

    CPU 그리고 캐시 메모리

    cpu의 퍼포먼스는 다음으로 결정된다. 코어 수 클럭 속도 캐시 메모리 프로세서 타입 (따로 글로 빼둠) 코어 cpu는 하나 또는 그 이상의 프로세서를 가질 수가 있다. 내부 논리 구조는 아래와 같다. 컴퓨터 메모리에 담겨있는 프로그램을 실행하라는 입력이 들어와서 프로그램이 실행되는 순서는 입력 - CU(컨트롤유닛)가 메모리에 프로그램 데이터를 호출 메모리에서 레지스터로 자료가 이동 ALU(산술연산장치)에서 프로그램을 계산 또는 해독 출력 CU (Control Unit) 명령 제어장치 입력된 명령어를 해독하여 cpu 내부의 움직임을 총괄하고 각 과정을 통제한다. 주로 데이터를 메모리로부터 ALU로 옮기라는 명령과 그 후 다시 메모리로 옮기는 명령을 내린다. CU의 명령에 의한 명령 처리 과정 캐시나 파이..