반응형

분류 전체보기 270

[ACA] Memory Hierarchy and Caches (3)

이전 포스팅에서는 메인 메모리와 캐시 메모리간의 매핑하는 방법을 배웠다. Direct-mapped Cache는 쉽고 간단하지만 Hit rate이 낮은 단점이 있었고, 이를 보완하기 위한 Fully Associative Cache는 아무런 규칙없이, 인덱스없이 아무데나 저장하는 방식이어서 원하는 데이터를 찾으려면 캐시 메모리 전체를 탐색해야 하기 때문에, 탐색 시간이 긴 단점이 있다. 그래서 이 둘의 단점을 보완할 수 있는, 둘의 장점을 절충한 방법인 Set Associative Cache는 어레이의 특정 행을 지정해서 그 행이 비어있으면, 행의 아무 열에 데이터를 저장하는 방식이다. 이는 Direct-mapped 방식보다 검색은 느리지만, 저장은 빠르며 Fully Associative 방식보다 저장은 느..

[ACA] Memory Hierarchy and Caches (2)

이전 포스팅에서 'Memory Hierarchy'를 배웠습니다. 계층도를 살펴보면 L1, L2 Cache 이런게 나오는데 'Cache Memory'는 뭘까요? Cache Memory : 속도가 느린 메인 메모리의 접근 시간을 향상시키기 위해 일시적으로 데이터를 갖고 있는 작지만 빠른 메모리를 이야기합니다. 캐시 메모리는 'Locality'를 활용하기 위한 구조를 갖고 있습니다. 그리고 낮은 계층의 메모리보다 크기가 작습니다. 즉, L1 Cache는 L2 Cache의 크기보다 작고, L2 Cache는 L3 Cache보다 크기가 작습니다. 그림에서 알 수 있듯이 L1 Cache는 크기가 매우 작으며 내부는 메모리의 텍스트 영역을 다루는 Instruction Cache와 이외의 영역을 다루는 Data Cach..

[ACA] Memory Hierarchy and Caches (1)

멀티코어 프로세서를 다루며 Memory Hierarchy Design은 우리에게 더 중요해졌습니다. 프로그램을 짜는 입장에서는 메모리 걱정없이 작업을 하는 게 가장 이상적일텐데, 그러려면 이상적인 메모리가 필요하겠죠. 그러면 어떤 메모리가 이상적인 메모리일까요? 이상적인 메모리는 다음과 같은 특징을 가진 메모리입니다. Ideal Memory - Zero access latency - Infinite bandwidth - Infinite capacity - Zero cost 하지만 이런 특징은 서로 상충합니다. - 메모리가 크면 읽거나 쓸 때 긴 시간이 걸릴 것이고 - 빠르고 큰 대역폭을 가진 메모리는 비쌉니다. (SRAM vs DRAM vs Disk vs Tape) SRAM은 리프레쉬가 필요없고 capa..

Ahmdal's law

암달의 법칙은 컴퓨터 시스템에서 일부를 개선하였을 때, 전체적으로는 얼마나 개선될 수 있는지를 알려준다. 간단한 공식이지만 이는 두가지 인사이트를 준다. 첫번째로 개선 가능의 여지가 많은 태스크라면 우선적으로 처리하는 것이 좋다는 것, 두번째는 개선 가능한 정도가 예측되는 경우에는 전체 효율을 얼마나 올릴 수 있을지 대강 알 수 있다는 거다. 이는 때때로 암달의 저주로 불리기도 한다. 왜냐하면 현대에 이르러서는 병렬 컴퓨팅을 하는 것이 중요한데 거의 모든 경우 특정 태스크를 병렬화할 수 있는 정도에 따라서 효율을 올릴 수 있는 것이 제한되기 때문이다. 이는 아래 그래프를 통해 확인할 수 있다. 즉, 병렬화할 수 있는 부분이 제한된다면 프로세서의 수를 늘리더라도 성능 개선에는 제한이 있다.

컴퓨터/Etc 2020.04.05

Fundamentals

컴퓨터공학에서 성능의 향상은 는 크게 두가지 측면에서 이뤄졌다. 첫번째는 '반도체 스케일링', 두번째는 '컴퓨터 아키텍쳐의 발전'이다. 반도체 스케일링 : CMOS 트랜지스터의 피져 사이즈를 줄임으로써 이뤄졌다. 1) 작아진 트랜지스터의 사이즈는 더 많은 트랜지스터를 집약시킬 수 있게 했고 2) 빨라진 트랜지스터는 더 많은 성능(높은 클럭)을 가져다 줬고 3) 적은 에너지 소모는 저전력으로도 충분히 반도체를 사용 가능케 해주었다. 컴퓨터 아키텍쳐의 발전 : 컴퓨터 마켓에서 두가지 변화가 이를 가능케했다. 1) 발전된 컴파일러는 어셈블리 프로그래밍을 하지 않더라도 개발을 할 수 있게 해주었고 2) 표준화되고 벤더와 독립적인 운영체제는.. 컴퓨터 아키텍쳐의 발전은 꾸준히 이뤄졌으나 싱글 프로세서의 성능 향상..

[OS] Interrupt

CPU가 프로그램을 실행하고 있는데 I/O 등의 장치에 의해 혹은 예외상황이 발생해 처리가 필요한 경우에 이를 알려주는 것이 인터럽트(Interrupt)다. 인터럽트는 크게 하드웨어 인터럽트와 소프트웨어 인터럽트로 나뉜다. 하드웨어 인터럽트는 CPU가 아닌 다른 하드웨어 장치가 CPU에 어떤 정보를 주거나 서비스를 요청해야하는 경우 발생시키는 인터럽트이다. 소프트웨어 인터럽트는 소프트웨어가 발생시키는 인터럽트를 가리킨다. 보통 응용프로그램을 일컫는다. 종류로는 시스템 콜(system call)과 예외 상황(exception)이 있다. 예외 상황의 예시로는 어떤 값을 0으로 나누는 것을 생각해보면 된다. 본문에서는 소프트웨어 인터럽트의 종류에 시스템 콜과 예외 상황이 있다고 이야기했지만, 책이나 사람에 따..

[OS] Operating System Structures (part2)

*본 포스팅은 2020학년 1학기 홍석인 교수님의 운영체제 수업을 두서없이 정리한 것임을 밝힙니다. System call interface에서 파라미터를 OS에게 주는 방법은 세가지가 있음 - The simplest approach: pass the parameter in registers CPU의 register 갯수는 한정돼있음. 그런데, 파라미터의 갯수는 많기 때문에 적절하지 않은 접근법임 - Block method: Parameters are stored in a block (memory), and the address of the block is passed as a parameter in register (eg. printf("hello")의 경우 hello를 메모리에, address를 reg..

[OS] Operating System Structures (part1)

*본 포스팅은 2020학년 1학기 홍석인 교수님의 운영체제 수업을 두서없이 정리한 것임을 밝힙니다. - 운영체제가 유저와 프로세스, 다른 시스템들에게 어떤 서비스를 제공하는 지 - 운영체제를 구성하는 것이는 무엇이 있는지 알아본다. 운영체제 : 운영체제는 기본적으로 프로그램을 실행할 수 있는 환경을 제공해준다. 유저를 위한 운영체제 서비스 - User Interface a. CLI: Command-line interface (리눅스 머신을 사용할 때 주로 터미널을 띄우고 커맨드를 입력해 컴퓨터를 사용하는 데 이를 CLI라 함) b. GUI: Graphical user interface. (윈도우 기반으로 컴퓨터를 사용하는 것이라 이해하면 됨) c. Batch Interface. (Computing sys..

반응형