반응형

분류 전체보기 272

[CA] Computer Abstraction and Technology

Important Concepts In Computer Architecture - 무어의 법칙을 고려한 디자인 - 디자인을 단순히 하기위해서 추상화(abstraction) 사용 - 일반적인, 흔한 경우에 빠르게 만드는 것 (Ahmdal's Law) - 병렬성, 파이프라이닝, 프레딕션을 통한 성능 향상 - 메모리 계층 구조 (Memory Hierarchy) - Dependability via Redundancy Abstraction - 추상화는 low-level의 detail을 숨겨줘서, complxeity를 해결해줌 - Instruction set architecture (ISA) - 하드웨어와 소프트웨어 사이의 인터페이스 High-level Language -> Instructions - Instruc..

[아양교] 마고플레인 아양

오전 과외 수업끝나고 다음 수업 가기전에 시간이 남아서 마고플레인에 왔다. 원래는 경산에 있는 카페+베이커리인데, 최근에 아양교에도 분점을 냈다고 한다. 2년 전쯤 아양교, 공항쪽에 과외하러 왔을 때는 이쪽이 공사판이었는데 확 바뀐 것 보고 조금 놀랐다. *카페 주차장이 따로 있어서 차 몰고 오시는 분들은 방문하기 편할 것 같다. 내부는 빌리웍스처럼 천장이 트여있고, 복층으로 되어있다. 빌리웍스는 커피받는 곳이랑 테이블과 거리가 멀어서 좀 불편했는데 마고플레인은 비교적 가까워서 왔다갔다할 때 편했다. 베이커리에는 앙버터, 연유빵, 모카번, 양파빵, 스콘 등등 여러가지 디저트 빵을 팔고 있다. 가격대는 4-5000원 사이였고, 빵이 하나하나 다 큼직해서 하나만 먹어도 배부를 것 같다. 타르트, 케익류는 가..

일상/카페 2020.04.18

[USENIX 2018] Meltdown

Paper Link: https://arxiv.org/abs/1801.01203 Official Link: https://meltdownattack.com Idea: cache slide channel attack + speculative execution cache slide channel attack 캐시에 블록이 저장돼있다면, 그 블록에 대한 메모리 접근 시간이 매우 짧고 블록이 캐시에 없으면 블록에 대한 메모리 접근 시간이 길다는 점을 이용한 것이다. 그래서, attacker process가 1이라는 데이터를 다른 프로세스에게 전달하려고 할 때 1을 특정 메모리 공간에 저장하는 것이 아니고, 1이라는 주소를 접하여 1이라는 주소에 대한 cache location에 블록이 저장되도록 한다. 그러면 ..

[ECCV 2018] AMC: AutoML for Model Compression and Acceleration on Mobile Devices

Paper Link:https://arxiv.org/abs/1802.03494 Introduction - Model Compression을 위해서 AutoML, 그 중에서도 강화학습을 이용한 논문이다. - Model Compression중에서 Channel Pruning을, Agent로는 DDPG model을 이용했다. Method - State space는 위와 같다. - Action space는 continuous하게 설계햇다. - 여기서 action은 얼마나 pruning을 할거냐를 묻는 것이다. - 이전 연구들이 action space를 discrete하게 설계를 하니, compression ratio와 accuracy를 둘 다 옵티멀하게 가져가지 못하는 것 같아서 continous하게 설계했다고..

[OS] Thread (2)

스레드가 어떤 모드에 있냐에 따라 '유저 레벨 스레드'와 '커널 레벨 스레드'로 나뉜다. 유저 레벨 스레드 (User-level Thread) - 유저 레벨 라이브러리로 구현한다. 라이브러리에는 스레드 생성/제거, 스케쥴링, 컨텍스트 저장/복구 등이 구현돼야한다. - 모든 코드와 데이터 스트럭쳐가 유저 스페이스에 존재한다. - 커널은 유저 스레드가 얼마나 돌아가는지 모른다. 커널의 입장에서는 하나의 프로세스로 보인다. 장점 - 운영체제가 커널 스레드를 지원하지 않아도 사용할 수 있다. - 커널 모드에 진입하지 않아도 된다. 스레드 스위칭에는 함수 호출만큼 코스트가 든다. - 스케쥴링 정책을 응용 프로그램에 맞춰 만들 수 있다. 각, 프로세스마다 폴리시가 있는 것으로 생각할 수 있다. 단점 - 스레드 하나..

[OS] Thread (1)

스레드가 왜 필요한가? - 하나의 프로세스에서 병렬 실행을 위해 - 동일한 환경에서 서로 다른 일을 동시적으로 처리할 수 있도록 동일한 환경 = 프로세스, 프로그램 코드, 데이터, 메모리 공간, 커널 데이터 구조 등을 말한다. 예) 웹 브라우저 스레드를 지원하지 않는 싱글코어 프로세서에서는 유저 인터페이스를 처리할 때는 렌더링이 안되고, 렌더링을 하는 동안에는 유저 인터페이스를 처리할 수가 없다. 즉, 내가 어떤 화면을 클릭해서 렌더링을 하는 동안에는 다른 모든 것 정지된 상태이고, 처리가 되지 않는다. 다른 것도 실행되게 만들어주려면 실행 흐름을 여러개 만들어주어야 한다. 스레드는 경량 프로세스라고도 불린다. 스레드는 스레드별로 스레드 아이디, 프로그램 카운터, 레지스터셋, 스택을 갖고 있다. 멀티 스..

[OS] Inter Process Communication (IPC)

유저가 실행시키는 프로세스들은 OS에서 동시적으로 돌아간다. 우리가 돌리는 프로세스들이 항상 독립적으로 돌아가는 것보다는 이들이 공유할 정보가 있다면 공유하고 협력한다면 효율을 더 높일 수 있는데, 이를 프로세스간의 커뮤니케이션을 통해 해결할 수 있다. 이를 'Inter Process Communication' (IPC) 라고 부른다. 프로세스가 협력을 하면 몇가지 장점이 있는데, 이는 다음과 같다. 프로세스 협력의 이점 Information sharing - 몇몇 응용 프로그램들은 비슷한 정보를 갖고 돌아간다. (복사하고 붙여넣는 경우를 생각해보면 된다.) Computation speedup - 어떤 태스크를 빠르게 수행하고 싶을 때, 이걸 여러 서브 태스로 나눠서 병렬적으로 실행할 수 있다. Moul..

[OS] Context Switch와 레지스터 셋의 관계

운영체제 수업 들으면 context switch가 오버헤드라는 이야기를 한다. 왜냐하면 context switch를 하는동안에는 프로세서가 하는 일을 멈추고 pcb를 바꾸기 때문이다. 이 오버헤드를 줄이려면 하드웨어단에서 개선을 해주어야 하는데, CPU의 레지스터셋을 늘려주어야 줄이는 것이 가능하다고 한다. 예를 들어서, CPU의 레지스터 셋이 두개인 경우에는 프로세스1에 대한 PCB1을 레지스터 셋1에 두고 연산을 한다고 생각해보자. 이때 인터럽트가 들어와서 프로세스1에서 프로세스2로 context switch를 수행하라고 하면, 레지스터 셋1에서 돌아가던 걸 잠깐 멈추고 미리 프로세스2에 대한 PCB2를 레지스터 셋2에 넣고 돌리면 된다. 그리고 프로세스2에 대해서 할 일을 다했으면 바로 프로세스1을..

[ACA] 캐시 메모리의 인덱스로 중간 비트를 사용하는 이유

캐시 메모리 공부를 할 때 Direct-mapped cache, Set-associative cache 를 배운다. 얘들을 잘 살펴보면 캐시 메모리의 인덱스로 중간 비트를 사용한다. 상위 비트를 사용할 수도 있을텐데, 중간 비트를 사용하는 이유가 있을까? 다음과 같이 4개의 블록을 가진 캐시가 있다고 생각해보자. 이때 상위 비트 인덱싱을 하면 다음과 같다. 보는바와 같이 인접한 메모리 블록들이 같은 캐시 엔트리로 매핑된다. 메모리 블록에서 상위 4개는 캐시의 첫번째 블록에, 밑의 3개는 두번째 블록에, 그 밑의 3개는 세번째 블록에 매핑된다. 만약에 어떤 프로그램이 좋은 spatial locality를 갖고 있고, 어레이의 원소를 순차적으로 훑는 걸 생각해보자. 그렇게 되면, 캐시는 그 어레이를 훑을 때..

[ACA] Improving Cache Performance

이때까지 Memory Hierarchy에 대해서 알아보았다. 그리고 메인 메모리에서 캐시 메모리에 매핑하는 방법, CPU에서 데이터를 메모리에 쓰는 방법에 대해서 알아보았다. 그러면 메모리는 계층 구조를 갖고 있다는 것은 알겠는데, 캐시 메모리도 계층 구조를 갖고 있을까? 답은 Yes다. 캐시 메모리도 다음과 같은 'Cache Hierachy'를 갖고 있다. 최근에 개발되고 있는 프로세서들은 보통 세개의 캐시를 갖고 있다. 이들은 각각 L1 Cache, L2 Cache, L3 Cahce라는 이름으로 불리는데, 이러한 계층 구조를 설계했을 때 장점은 무엇일까? 우리가 메모리 계층 구조를 왜 생각했는 지를 돌아보면 된다. 우리는 메모리의 사이즈는 크게, 처리 속도는 빠르게 메모리를 이용하고 싶어서 계층 구조..

반응형