본문 바로가기

CS/컴퓨터 구조38

[Chapter 5.8 컴퓨터 구조 및 설계] 병렬성 메모리 계층구조에서의 캐시 일관성 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 멀티코어 멀티프로세서는 여러 개의 프로세서가 하나의 칩안에 들어 있는 것을 말한다. 메모리 공간은 한정되어있고 이러한 프로세서들은 공통의 실제 주소공간을 공유한다. 두 개의 서로 다른 프로세서가 각자 자신의 캐시를 통하여 메모리에 접근하게 되고, 주의하지 않으면 두 개의 다른 값을 갖게 된다. 멀티코어 멀티프로세서를 사용하는 것은 캐시 일관성 문제를 야기한다. 캐시 일관성 두 CPU가 메모리를 공유한다고 가정하고 위의 step이 순서대로 일어난다고 생각해보자. 같은 X라는 데이터를 읽어왔는데, CPU A에서는 X에 데이터를 쓰기 때문에 C.. 2022. 8. 1.
[Chapter 5.7 컴퓨터 구조 및 설계] 메모리 계층을 위한 공통 구조 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. 메모리 계층은 어떤 계층이든 상당 부분 공통점을 갖는다. 메모리 계층의 어떤 두 계층 간에도 적용될 수 있는 4가지 질문을 알아보도록 하자. 1. 블록을 상위 계층 어디에 위치시킬 수 있는가? 메모리 계층 구조에서 상위 수준에 블록을 위치시키기 위해서는 직접 사상, 집합 연관, 완전 연관 등과 같은 방식을 사용할 수 있다. 연관 정도를 늘릴 수록, 고정된 캐시의 크기에서 나타낼 수 있는 블록의 수(인덱스)가 감소하였지만, 그만큼 한 집합에 많은 블록이 있으므로 miss rate가 줄게 되었다. 방식 집합의 수 집합 당 블록 수 직접 사상 .. 2022. 7. 31.
[Chapter 5.6 컴퓨터 구조 및 설계] TLB 본 정리는 CS422-컴퓨터 구조 및 설계 : 하드웨어/소프트웨어 인터페이스. David A. Patterson, 존 헤네시 책을 바탕으로 하고 있음을 미리 알립니다. TLB를 이용한 빠른 주소 변환 페이지 테이블은 메인 메모리에 저장되기 때문에, 프로그램에 의한 모든 메모리 접근은 최소한 두 번 필요하게 된다. 프로세스 테이블 접근 얻은 physical address를 이용한 메모리 접근 그러나 페이지 테이블에 접근하는 것 또한 참조의 지역성이 높다. 즉, 한번 참조한 테이블은 다시 참조될 가능성이 크다. 그래서 페이지 테이블에 접근하는 것을 피하기 위해 최근에 사용된 변환을 보관하고 있는 캐시인 Translation Look-aside Buffer(TLB)를 이용한다. TLB에는 Virtual pag.. 2022. 7. 31.
[Chapter 5.5 컴퓨터 구조 및 설계] 가상 메모리와 페이지 부재 지금까지는 캐시와 메인 메모리 사이의 메모리 계층 구조를 살펴보았다면, 이번에는 메인 메모리와 Disk 간의 메모리 계층 구조를 살펴보려 한다. 가상 메모리 메인 메모리를 2차 저장 장치를 위한 캐시로 사용하는 기술을 가상 메모리 (Virtual Memory) 라고 한다. 쉽게 생각하면 앞장에서 메모리 접근을 최대한 줄이고 캐시를 사용하려고 했던 것처럼 2차 저장 장치에 대한 접근을 최대한 줄이기 위해 메인 메모리를 사용한다고 생각하면 된다. 이러한 가상 메모리 기술을 사용하는 이유는 다음과 같다. 다수의 프로그램이 효과적으로 메모리를 공유할 수 있게 한다. 메인 메모리의 크기는 작기 때문에 해당 사이즈에 맞춰 프로그래밍해야 하는 제약을 제거하기 위해서이다. 2차 저장 장치의 크기가 메인 메모리보다 훨씬.. 2022. 7. 30.