본문 바로가기

Computer Science 254

Interrupt, I/O Device Interrupt and Exception 본 노이만 구조는 instruction들을 순차적으로, 동기적으로 실행한다. 그러나 실제 상황에서는 비동기적으로 발생하는, 즉 주기적으로 발생하지 않는 이벤트들을 처리해야한다. 이러한 이벤트들을 interrupt라고 한다. Synchronous, Asynchronous Synchronous 프로그램이 작성됬을 때 부터 예정된 일 예층가능하고, deterministic이다. 포인터의 잘못된 주소 참조 등 Asynchronous 미리 예정되어있지 않아서 예측 불가능한 것이다. 네트워크 에러 등 Interrupt, Exception Interrupt나 exception은 순차적으로 실행되는 instruction들의 흐름을 깨고 실행되는 asynchronous 이벤트들.. 2021. 4. 5.
컴퓨터 구조와 프로그램 실행 Computer System Elements 컴퓨터는 다음과 같이 구성되어 있다. Processor(CPU) system operation을 control한다. Main memory 휘발성 저장소로, real memory, primary memory라고도 한다. data와 program을 저장한다. I/O module computer와 external environment 사이에 데이터를 옮긴다. 하드디스크, 디스플레이, 키모드, 마우스 등이 있다. System bus 프로세서, 메인 메모리, I/O module 사이에 통신을 가능하게 한다. Von Neumann Model 컴퓨터의 발전 초기의 컴퓨터는 프로그램이 메모리 안에 내장되어있지 않았다. ENIAC 최초의 general electronic co.. 2021. 4. 3.
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.