zooooss

[컴퓨터구조] CPU가 명령어 한 개를 처리하는 과정 본문

STUDY/CS

[컴퓨터구조] CPU가 명령어 한 개를 처리하는 과정

zooooss 2025. 9. 23. 21:45
컴퓨터가 어떻게 동작하는지 그동안 공부한 것들을
정리하는 시간을 가져보고자 합니다!

Instruction Cycle 명령어 처리 사이클

CPU는 보통 아래 3단계를 반복하면서 프로그램을 실행합니다.

 

  1. 인출(Fetch) : 메모리에서 명령어를 가져오기
  2. 해독(Decode) : 명령어를 분석해서 무엇을 해야 할지 해석하기
  3. 실행(Execute) : 해석한 대로 실제 연산 수행하기

 


 

 

이러한 과정에 사용되는 주요 하드웨어 개념까지 한 번에 정리해볼게요!

이 개념을 정리하기 위해 우선 꼭 알아야하는 구성요소로는

 

  • 플립플롭 (Flip-Flop) → 1비트 기억 소자, 레지스터·메모리의 기본 단위
  • MUX (멀티플렉서) → 여러 입력 중 하나를 선택하는 스위치 역할
  • 레지스터 (Register) → CPU 내부의 초고속 저장소
  • ALU → 실제 계산(산술/논리) 수행 (**CPU 내부에서 실제 계산을 담당하는 핵심 장치!)
  • 캐시 메모리 (Cache) → CPU와 RAM 속도 차이를 완화하는 중간 메모리

가 있습니다!

 

더 쉽게 설명하자면, 캐시 메모리는 CPU에서 메모리까지 가서 정보를 가져오는 대신

자주쓰는 연산들을 CPU 근처의 캐시메모리에 담아두고

더 효율적으로 빠르게 가져와서 사용할 수 있는 공간입니다!

 

CPU에서 어떠한 명령을 하나 받았을 때, 이것을 수행하기 위해 (덧셈, 곱셈 등이 될 수 있겠죠?)

load word(lw) : 메모리에서 가져오기
store word(sw) : 다시 메모리에 가져다두기

mul : 곱셈

등의 수행을 쭉쭉 해나갑니다!

 

여기에서 플립플롭에 대해 더 자세히 이야기를 해볼게요!

제가 정리한 바로는,

 

플립플롭이란 ?

=> 1비트 정보를 저장하는 기본 기억소자.

입력신호에 따라 출력신호가 결정되며 클럭신호**가 일정조건을 만족할 때에만 상태가 바뀜!

 

클럭신호** : 모든 동작의 "타이밍"을 맞추기위해 사용하는 일정한 주기의 신호.

보통 0과 1이 주기적으로 반복되는 사각파 형태.

아래 예시 코드를 작성해 실행시킨 결과를 보여드릴게요!

 

 

이렇게 특정한 순간에 신호를 주어, 플립플롭이 입력을 읽고

출력을 바꾸도록 해서 타이밍 제어가 가능해지는 구조입니다 :)

 


 

이렇게 작은 개념들을 찬찬히 정리하다보니 다시금 컴퓨터 구조에 대해, 연산의 흐름에 대해

정리되는 기분입니다 ㅎㅎ

 

다음번에는 CPU가 더 빠르게 동작하기 위해 사용하는 파이프라인 등의 기법들 개념정리를 해볼게요!

 

안뇽