본문 바로가기

CS/컴퓨터구조

(26)
[컴퓨터구조] Parallel Processing(3) 현재 글은 Parallel Processing(2)에서 이어지며, 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. SMP와 클러스터의 비교 SMP와 클러스터 방식 모두 병렬 컴퓨팅을 목적으로 하고 있으며, 다른 분야에서 두 방식 모두 상용화되어 있다. SMP 공유 메모리를 사용하기 때문에 관리하기 쉽다. 일반적인 컴퓨터 모델과 유사하게 동작하므로 기존에 사용하던 프로그래밍 방식을 사용할 수 있으며, 기존 프로그램들을 조금씩 수정하면 병렬 동작이 호환된다. 물리적 공간, 전력 소모가 적다. ( 일반적으로 작은 규모로 사용하기 때문에 당연하다. ) 과거부터 많이 연구되어 왔기 때문에 여러 이론들이 잘 정립되어 있으며 안정적이다. Cluster 확장성이 매우 좋다. 가용성이 높다. 고장이..
[컴퓨터구조] Parallel Processing(2) 현재 글은 이 글에서 이어지며, 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. T = Ic * CPI * 1/f MIPS rate = Ic / T = f/CPI(instruction당 사이클 수) = f * IPC(사이클 당 instruction 수) f : 프로세서 클럭 속도 IPC: 클럭 당 평균 intruction 개수 컴퓨터의 성능을 비교할 때는 벤치마킹을 이용하는 것이 일반적이지만, MIPS 역시 성능을 나타내는 척도로 사용될 수 있다. MIPS는 초당 실행되는 instruction의 개수를 의미하며, 해당 수치가 높을 수록 컴퓨터의 성능이 높다는 의미가 된다. 위 수식에 따르면 MIPS 성능을 높이기 위해서는 프로세서의 클럭 속도 또는 클럭당 실행하는 instructio..
[컴퓨터구조] Parallel Processing(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Flynn's taxonomy flynn이라는 사람이 병렬 동작을 염두에 두고 제시한 컴퓨터 아키텍처의 분류 방식으로, instruction stream 및 data stream의 구성에 따라 크게 4개로 분류된다. SISD: Single Instruction Single Data SIMD: Single Instruction Multiple Data MISD: Multiple Instruction Single Data MIMD: Multiple Instruction Multiple Data SISD 단일 프로세서가 하나의 메모리 데이터에 대해 단일 연산을 수행하는 방식. 가장 간단한 구조로, 현재는 기본이 멀티 코어 시스템이..
[컴퓨터구조] ILP & superscalar processor(2) 현재 글은 이 글에서 이어진다. Superscalar Implementation 슈퍼스칼라를 구현하는데 필요한 요소들은 다음과 같다. 여러개의 instruction을 병렬적으로 다룰 수 있어야 한다. 동시에 여러개의 instruction을 fetch하기 위한 전략을 가진다 여러개의 instruction을 병렬적으로 initiate, issue할 수 있다. 프로세스를 올바른 순서로 commit(complete) 할 수 있어야 한다. 레지스터의 값과 관련하여 true dependency을 다룰 수 있는 로직, 실행 중 해당 값을 필요한 위치에 전달하기 위한 매커니즘이 필요하다. Tomasulo algorithm https://en.wikipedia.org/wiki/Tomasulo%27s_algorithm t..
[컴퓨터구조] ILP & superscalar processor(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. ILP(Instruction Level Parallelism) ILP는 instruction 수준에서 병렬적으로 처리할 수 있는 정도를 의미한다. 기본적으로 instruction은 컴파일러에 의해 분석된 머신 코드 수준에 해당하는데, 이 정도 레벨이 되면 상호 간에 의존성이 높아 동시에 병렬적으로 실행될 수 있는 비율 자체는 그리 높지 않다고 한다. SuperScalar 연구 결과에 따르면 instruction 레벨에서 데이터를 처리할 때 상수 : 스칼라: 벡터 관련 instruction의 비율은 대략 20 : 55 : 25 정도로 나타났다. 이는 실제 기기에서 instruction의 대부분을 스칼라 관련 instructio..
[컴퓨터구조] RISC 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 과거 컴퓨터의 발전 family concept : 기계의 아키텍처를 구현과 분리. 동일 아키텍처를 이용하되, 다양한 가격대의 부품을 둬서 실제 구현은 다르게 만드는 방식. 아키텍처가 같기 때문에 소프트웨어를 공유해서 사용할 수 있다. microprogrammed control unit : control unit을 하드웨어 회로로 구현하는 대신 ROM 상의 프로그램으로 구현하여 family concept을 지원하기 좋음 캐시 메모리 : 메모리 계층 상에 캐시를 도입하여 성능 향상 파이프라이닝 : fetch & execute 사이클에 병렬성 도입 multiple processor 등등 여러가지 존재. RISC(Reduced In..
[컴퓨터구조] 프로세서 구조 및 기능(1) 현재 글은 컴퓨터 구조와 아키텍처 서적과 학교 교안을 기반으로 한다. 프로세서가 하는 일 Fetch Instruction: 메모리(캐시, 레지스터 포함)에서 instruction을 읽는다. Interpret Instruction: 해당 Instruction이 수행해야 하는 작업을 알기 위해 decode 한다. Fetch Data: I/O 또는 메모리로부터 필요한 데이터를 읽어온다. Process Data: 데이터에 대해 arithmetic / logical 연산을 수행한다. Write Data: 연산 결과를 메모리 또는 I/O 모듈에 쓴다. 이러한 동작들이 제대로 실행될 수 있도록 프로세스가 구현되어야 한다. 레지스터 구조 프로세서 내부에는 메모리 계층 상 메인 메모리 및 캐시보다 상위에 위치하는 레지스..
[컴퓨터구조] Instruction set(2) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Addressing Mode 컴퓨터 내에는 다양한 주소 지정 방식이 존재한다. 각각의 모드는 저마다 존재 이유가 있지만 모든 아키텍처가 반드시 제시되는 주소 모드를 구현할 필요는 없으며 최적화나 아키텍처의 설계 의도에 따라 많이 변형될 수 있다. Basic Addressing Modes 컴퓨터에서 일반적으로 다음과 같은 주소 지정 방식을 고려할 수 있다. 이러한 주소 지정 방식들은 컴퓨터 내에서 상황에 따라 instruction 마다 각각 addressing mode이 설정된다. Immediate: Instruction 내에 데이터 포함 Direct: Instruction 내에 주소 포함 Indirect: Instructio..