Computer Architecture 4

[운영체제] 20. Paging: Smaller Tables

20. 페이징, 더 작은 페이지 테이블을 위하여 : 이번 시간엔 페이징의 도입으로 발생한 두 번째 문제를 고찰해볼 것이다. 페이지 테이블이 너무 크고, 메모리를 너무 많이 잡아먹는다는 것이다. 이번에도 linear page table을 생각해보자. 이전 시간에 말했지만 이 구조는 꽤 크다. 다시 한번 32비트 주소 공간과, 4KB 사이즈의 페이지(따라서 오프셋이 12비트 필요하다.)와 4-byte PTE에 대해 생각해보자. 그러므로 이 구조에서 대략 백만 개의 가상 페이지까지 가질 수 있다.(VPN이 20비트니까) 따라서 페이지 테이블이 4MB의 용량을 갖는다. 다시 한번 상기시켜 주자면, 페이지 테이블은 프로세스별 구조체다! 프로세스가 100개가 활성화되어 있다고 했을 때(사실 현대 시스템에서 그렇게 ..

OS 2022.01.25

[운영체제] 19. TLB란

19. 페이징을 위한 더 빠른 변환, TLB의 등장 : 가상 메모리를 지원하고자 등장한 핵심 메커니즘인 페이징은 엄청난 퍼포먼스 오버헤드를 불러일으키게 된다,,, 라는 것을 지난 시간에 같이 알아보았다. 주소 공간을 작고, 획일적인 고정 사이즈의 조각들(이 조각들을 페이지라고 부른다.)로 잘라냈기 때문에, 페이징이라는 기법은 엄청난 매핑 정보를 요구하게 되었다. 매핑 정보가 일반적으로 물리 메모리에 상주하게 되기 때문에, 이대로라면 페이징은 프로그램이 생성한 각각의 가상 주소들의 실제 위치로 찾아가기 위해 추가적으로 메모리를 조회해야 하는 운명이다,,, 명령어를 fetch 하기도 전에, 그리고 외부로 load/store를 처리하기 위해, 우리는 정보 번역을 하려면 메모리로 가야만 하고 이러한 행위는 연산..

OS 2022.01.24

[운영체제] 18. Paging이란

18. 페이징 소개 : OS가 대부분의 공간 관리 문제를 해결하고자 할 때 두 가지 중에 하나의 방식을 사용한다. 첫 번째는 어떤 작업을 가변적인 사이즈의 조각들로 잘라내는 것이다.(가상 메모리에서 세그멘테이션과 같이) 근데 이 방법은 단점이 있는데, 공간을 서로 다른 사이즈의 청크들로 채우다 보니, 공간이 점차 단편화되고, 공간 할당이 점점 더 힘들어진다. 두 번째 접근방식은 페이징인데, 공간을 고정 사이즈 조각으로 나누는 것이다. 가상 메모리에선 이를 페이징이라고 부른다. 힙, 스택처럼 가변적인 논리적 세그먼트로 나누는 것이 아니고, 페이지라 불리는 고정 사이즈 유닛으로 나눈다. 사실 OS는 물리 메모리를 페이지 프레임이라고 부르는 고정 사이즈 슬롯(말 그대로 페이지를 위한 틀이다. 붕어빵의 틀처럼)..

OS 2022.01.21

TensorDIMM 논문 리뷰

안녕하세요, 오늘 리뷰해드릴 TensorDIMM 논문은 PIM(Process In Memory)을 공부하던 중 찾았는데, 좋은 내용이어서 공유하고자 합니다. 이 논문은 Facebook, Netflix, Youtube 등에서 사용되는 추천 모델(Recommendation model)에 주목하고 있습니다. 이러한 추천 모델에 쓰이는 DNN 기반의 머신 러닝에서(흔히 딥러닝으로 알려져 있죠), 사용되는 데이터양이 시간이 지날수록 급격하게 증가하고 있습니다. 그런데 이는 엄청난 "memory wall"에 직면하게 됩니다. 즉, 딥러닝 알고리즘은 엄청난 양의 memory capacity와 memory bandwidth를 동시에 요구하게 됩니다. 쉽게 말씀드리면 사용되는 데이터양도 많지만, 그 많은 데이터가 연산 ..

Paper Review 2021.09.02