목록2024/01/05 (3)
Machineboy空
CPU가 시간 낭비 없이 메모리들에 있는 명령어들을 빠르게 처리하는 방법 1) 명령어 파이프라이닝 (Instruction Pipelining) 동시에 여러 개의 명령어를 겹쳐 실행하는 기법 Pipeline Hazard 항상 이상적으로 작동하는 것은 아님. 실패하는 경우도 있다. 데이터 위험 (Data hazard) 명령어 간의 의존성에 의해 야기 모든 명령어를 동시에 처리할 수는 없다 이전 명령어를 끝까지 실행해야만 비로소 실행할 수 있는 경우 명령어 2를 해석하는 동안 명령어 1을 인출할 수 없다 명령어 1이 R2 + R3의 값으로 업데이트된 뒤에 명령어 2를 인출해야하니까 제어 위험 (Control hazard) 프로그램 카운터의 갑작스러운 변화(순차적 흐름이 아닌 특정 메모리 주소로 변화)로 파이프..
방법 1)클럭(clock) 속도 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다. CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다. → 빠른 CPU를 위해 클럭신호를 빨리 만들어볼까? → 클럭 신호가 빠르게 반복되면 (= 클럭 속도가 빨라지면 ) CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직이겠지? 꼭 그런 것은 아니지만 일반적으로는 맞다. 그래서 클럭 속도가 CPU 속도로 측정되기도 함. 클럭 속도는 일정한 것이 아니라 필요에 따라 느려졌다 빨라졌다 한다. → 클럭 속도를 무조건 높인다고 좋을까? 필요 이상으로 클럭 높이면 발열이 심각해짐! 방법 2)코어(core) 수를 늘리기 전통적으론 단일한 코어가 즉 CPU였지만 멀티코어가 가능하며 다양한 부품..
CPU는 메모리로부터 명령어나 데이터를 가져와서 실행하기도 하고 필요하면 메모리에 값을 저장하기도 한다. 명령어 사이클 ? CPU가 메모리의 실행 프로그램을 실행하는데 일정한 패턴이 있고, 정해진 패턴 흐름에 따라 명령어를 처리한다. 인터럽트 ? 정해진 흐름을 방해받기도 한다. 정해진 흐름을 끊는 신호. 1) 명령어 사이클 (Instruction cycle) 프로그램 속 명령어들은 일정한 주기가 반복되며 실행되고 이 주기를 명령어 사이클(Instruction cycle)이라고 한다. 인출 사이클 (Fetch Cycle) 메모리에 저장된 명령어를 실행하려면 가장 먼저 CPU로 가져와야 한다. 실행 사이클 (Execution Cycle) 가져 와서 실행 하지만 CPU로 명령어를 가지고 와도 바로 실행이 불가..