본문 바로가기

Computer Science/Computer Architecture 52

1. Multicore Amdahl's Law (Law of diminishing returns) Law of diminishing returns 라고도 한다. 컴퓨터 시스템의 일부를 개선할 때 전체적으로 얼마만큼의 최대 성능 향상이 있는지 계산하는 데 사용된다. $T_improved = \frac{T_affected}{improvement \; factor} + T_unaffected$ 성능을 개선하기 위해서는 많은 비율을 차지하는 것(common case)을 개선해야 한다. 점점 더 발전함에 따라 발전을 이루는 속도가 더뎌진다. 예시 100s의 전체 execution time 중 80s가 multiply, 20s가 다른 작업이라고 하자. Multiply 작업의 속도를 2배 빠르게 할 경우 $total exec time = .. 2021. 4. 10.
1. Good ISA ISA Desing Issuses Instruction은 다음과 같이 이루어진다. Instuction = operation(opcode) + operand ISA을 design 할 때에는 opcode, operand, instruction encoding 에 대해서 고민해야 한다. operation(opcode) 얼마나 많은 종류의 insturction을 만들어야 하는가 어떤 종류의 instruction을 만들어야 하는가 ALU instruction Data transfer instruction (LOAD/STORE) Branch instruction (IF) operand addressing mode operand의 위치를 어떻게 특정해야 하는가 regiseter, direct, immdediate o.. 2021. 4. 10.
1. 컴퓨터 성능 개선/결정 (How to improve) CPU Clocking CPU의 모든 부품들은 clock 주기에 맞춰서 동기(synchronous) 된다. Insturction의 실행(fetch-decode-execute)도 하나의 clock period 안에 수행된다. Clock period (clock cycle time) duratoin of a clock cycle : 클럭의 길이 clock frequency의 역수 Clock frequency (clock rate) cycles per second : 클럭의 주기 Hz 단위를 사용한다. 만약 1.0GHz 주기의 프로세서가 있다면, 1.0GHz = $1 \times 10^9$Hz 이므로, clock period는 $10^{-9}s$, 즉 1ns이다. CPU Time CPU Time은 "CPU c.. 2021. 4. 3.
1. 컴퓨터 성능 (What to Measure, How to Measure) Product Development Paradigm Computer science을 포함한 전반적인 분야에서, 아래 과정이 iterative하게 진행된다. 예를 들어 implementation 개발 중에 interface를 수정/개선해서 다시 진행할 수도 있다. 혹은 테스트 진행 중에 implementation이나 interface을 개선할 수도 있다. 시장, 문제, 요구 분석 및 계획 Design and Implemnetation interface : external, 사용자에게 보여지는 부분 implementation : internal, 내부적인 기능 테스트 및 출시 지속적인 개선 Computer Science 좋은 성능의 컴퓨터을 개발하기 위해서 development cycle이 iterative.. 2021. 4. 3.
성능을 위한 ISA 구현 방법(간략) 성능을 높이기 위한 핵심적인 구현 방법은 다음과 같다. Pipelining Cache memory Pipelining 파이프라인이란, 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조이다. 이를 이용하면 여러 단계가 서로 병렬적으로 수행될 수 있어서 성능이 높아진다. 예를 들어, washer-drier-정리의 단계를 가지는 빨래 작업은 다음과 같이 처리할 수 있다. 3-stage pipeline을 이용한 것인데 이를 통해 작업 속도는 3배 향상된다. Instruction 실행에서도 마찬가지이다. Fetch-Decode-Execute의 반복적인 작업을 3-stage pipeline을 이용하면 성능이 3배 향상된다. 더 많은 stage을 만들어서 파이프라인을 만든다면 하나의 프.. 2021. 3. 27.