본문 바로가기

CS/컴퓨터구조

(26)
[컴퓨터구조] 캐시(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 캐시는 CPU와 메인 메모리 사이에서 동작하는 작은 용량의 메모리로, 메모리 접근 시간은 느리지만 용량이 큰 메인 메모리를 빠른 속도로 사용함으로써 큰 용량 및 빠른 메모리 접근 시간 두 가지를 동시에 잡기 위해 도입된다. locality에 근거하여 동작하며, CPU가 멀티코어 구조를 가짐에 따라 속도 및 용량이 다른 다계층 형태로 나타난다. 메모리와 가장 가까운 위치에 존재하는 LLC(Last Level Cache)의 경우 메인 메모리 용량 증가에 따라 그의 0.1% 정도인 100MB 이상의 크기를 가지기도 한다. 일반적으로 캐시는 메모리 0.1% 수준의 용량을 가질 때 95% 정도의 hit rate을 가지며, 그 이상의 ..
[컴퓨터구조] 메모리 계층 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 어떤 물건을 구매하더라도 최소한 품질과 가격만은 필수적으로 고려하게 된다. 이때 가장 이상적인 상황은 품질 높은 제품이 가격까지 싼 경우이다. 하지만 대부분의 경우 품질과 가격은 트레이드오프 관계에 있으며, 이는 메모리에도 동일하게 적용된다. DRAM 기반의 메모리는 가격이 저렴한 편이지만, CPU의 빠른 연산을 온전히 뒷받침할 수 있을 정도로 속도가 빠르지는 않다. 반대로 SRAM 기반의 메모리는 기계적으로 동작하여 속도가 매우 빠르기는 하나, DRAM 기반 메모리 마냥 용량을 늘리기에는 비용이 너무 많이 든다. 결국 비용 문제로 볼 수 있다. 따라서 현대 컴퓨터는 CPU와 DRAM 기반 메인 메모리 사이에 속도는 빠르지만..
[컴퓨터구조] Interconnection 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Computer Interconnection 컴퓨터는 프로세서, 메모리 및 I/O 장치들이 서로 협력하여 상호작용함으로써 동작한다. 이러한 장치들이 함께 동작하기 위해서는 이들 사이를 연결하는 통로 등을 구축할 필요가 있고, 이런 통로들의 구조를 나타낸 것을 Interconnection structure이라고 부른다. 해당 구조는 장치 사이에 꼭 필요한 정보 교환에 기초한다. Interconnection Structure은 최소한 다음과 같은 전송 방식들을 지원해줘야 한다. 타입 설명 Memory → Processor 프로세서가 메모리로부터 instruction / data 읽어 옴 Processor → Memory 프로세서..
[컴퓨터구조] 컴퓨터의 기능 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 컴퓨터의 컴포넌트들 폰 노이만 아키텍처 현대 컴퓨터는 폰 노이만 아키텍처를 따른다. 특징은 다음과 같다. 데이터와 명령(instruction)이 구분되지 않고 하나의 메모리 안에 저장된다. 메모리의 내용은 데이터의 유형과 관계 없이 위치 별 주소 지정이 가능하다. 명령어는 기본적으로 명시된 순서에 따라 순차적으로 실행된다. ( JMP, superscalar machine 등은 예외 ) Dataflow Machine 과거에 폰 노이만 아키텍처에 있는 병렬성의 한계를 벗어나기 위해 데이터 중심 + 비결정적으로 동작하는 dataflow machine이 연구되었다. dataflow machine은 data availity을 만족하는..
[컴퓨터구조] 컴퓨터의 성능 측정 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 컴퓨터 성능 측정 수단 CPU 클럭 속도 CPU에서 실행하는 Instruction 들은 각 클럭마다 상태를 바꾸면서 실행된다. 이때 CPU 클럭 속도가 증가하게 되면 단위 시간당 실행하는 Instruction 이 많아지기 때문에 컴퓨터의 성능이 좋아진다고 생각할 수 있다. 통상적으로 생각하면 맞는 말이긴 하지만, 파이프라이닝 기법이 사용되는 경우 동시에 여러 작업이 동시에 수행될 수 있고, CPU 에 적용되는 아키텍처에 따라 필요한 instruction 수가 달라지는 경우도 있어서 성능을 명확하게 비교하기에 적절하지는 않다. Instruction Execution Rate 초당 실행 가능한 instruction 의 개수를 의..
[컴퓨터구조] 암달의 법칙과 리틀의 법칙 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 컴퓨터 구조에서 암달의 법칙 및 리틀의 법칙은 멀티코어 및 병렬 시스템에 대해 설명하는데 도움을 줄 수 있다. 암달의 법칙(Amdahl's law) 암달의 법칙은 병렬 컴퓨팅 상황에서 병렬 작업에 의한 성능 향상 정도를 나타내는 공식으로, 아무리 병렬성을 높인다고 해도 ( 코어 수를 늘린다고 해도 ) 최대 성능은 전체 작업 중 병렬 작업이 차지하는 비율에 종속된다는 의미를 가진다. 위 공식에서 p 는 병렬적으로 처리할 수 있는 작업의 비율을 의미한다. 코어 s의 수가 충분히 많으면 p / s 는 0에 수렴하기 때문에, 전체 성능은 serial하게 처리되는 작업의 비율인 (1-P) 에 따라 달라진다. 이때 성능을 최대한 양보해..
[컴퓨터구조] 멀티코어 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 하며, 이전 글과 어느 정도 내용이 이어진다. 프로세서의 성능을 높이는 가장 직관적인 방법은 단위면적 당 트랜지스터 수, 즉 집적도를 높이는 것이다. 과거에는 실제로 반도체 feature size을 줄여 트랜지스터의 집적도를 높임으로써 무어의 법칙(대략 1년에 2배씩 성능 증가)을 만족하는 성능 향상을 보일 수 있었다. 그러나 feature size는 원자의 크기인 1nm 이하로 감소할 수는 없으며, 반도체의 집적도가 높아질 수록 누설 전류(leakage current) 증가하여 결과적으로 전체 전력 소모량의 급증 및 발열 심화 현상이 발생하여 단순히 집적도를 줄이는 방식에는 한계가 존재했다. 따라서 업계는 하나의 코어의 성능을 극..
[컴퓨터구조] 프로세서의 발전과 제약 현재 글은 Computer Organization and Architecture 및 대학 강의 내용에 의해 작성되었다. 시대를 거듭할 수록 컴퓨터 시스템의 가격은 감소하고, 성능은 증가하는 추세이다. 최근 많이 사용되는 클라우드 컴퓨팅 방식만 생각해 보더라도 과거 컴퓨터의 성능과 가격으로는 현재의 합리적 수준에 도달할 수 없었을 것이다. 이때, 컴퓨터의 성능을 향상시키는데 있어서 트랜지스터의 집적도도 중요하지만, 디자인 역시 중요한 요소 중 하나이다. 그렇다면 과거의 기술자들이 어떤 방식으로 컴퓨터의 성능을 향상시켰는지 보자. Microprocessor Speed 트랜지스터 집적도를 높이기 위한 칩 개발자들의 노력과는 별개로, 마이크로 프로세서 디자이너들은 해당 프로세서의 성능을 높이기 위한 디자인을 수..