CPU를 알아보기

Sue_·2020년 5월 12일
0

스터디(CSW)

목록 보기
1/3
post-thumbnail

CPU, 흔히 "컴퓨터의 두뇌"라고도 불리는 친구입니다. 이 친구에 대해서 자세하진 않지만 물흐르듯이~ 알아나가봅시다😁

CPU, 어떤 녀석일까

CPU는 Central Processing Unit의 약자로 해석해보자면 Central=중앙 Processing=처리 Unit=장치/단위 를 뜻해서 중앙 처리 장치입니다!
이 CPU라는 친구는 컴퓨터에서 아주 중요한 역할을 맡고있는데요, 기억, 연산 해석, 제어의 일을 해서 컴퓨터의 뇌라고도 불린답니다

CPU, 무엇으로 구성되어있을까

크게 연산장치, 제어장치, 레지스터로 이루어져 있는데요 하나하나씩 무슨 일을 하는지 알아보러 가봅시다💨

연산장치

연산장치는 이름 그대로 산술연산, 논리연산을 진행하는 친구입니다.
연산장치는 이런 흐름으로 진행됩니다
연산장치_흐름
우선, 여기에 나온 친구들에 대해서 알아봅시다
데이터 레지스터는 연산을 하기 전, 메모리로부터 읽어온 데이터를 저장하거나, 연산 중간중간 값을 잠시 저장하는 역할을 하는 친구입니다. 계속 연산 중간 중간 값을 메모리에 넣었다가 빼오면 속도가 느려지기 때문에 사용합니다
누산기는 연산장치에서 중요한 역할을 하는 레지스터입니다 사칙연산, 논리연산 등의 중간 결과를 기억합니다
가산기는 누산기와 데이터 레지스터의 값을 더해 결과를 누산기에 저장합니다

이제 흐름을 알아봅시다🏄‍♀️

  1. 연산장치가 제어장치에서 온 신호를 받습니다
  2. 주기억장치에서 데이터 레지스터로 데이터를 저장합니다
  3. 누산기의 값과 데이터 레지스터의 값을 가산기가 더합니다
  4. 상태 레지스터에 상태를 저장합니다
  5. 누산기에 결과 값을 저장합니다
  6. 연산이 다 끝나면 주기억장치에 저장합니다.

이제 연산장치라는 친구는 누군지 조금 알것같네요😄 다음으로는 누산기, 데이터 레지스터가 속해있는 레지스터에 대해 알아봅시다

레지스터

레지스터는 CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억해주는 친구입니다 속도가 매우 빠르죠
이 레지스터는 범용 레지스터특수목적 레지스터로 나눌 수 있는데요,
범용 레지스터는 연산에 필요한 데이터나 연산 결과를 임시로 저장해줍니다
특수목적 레지스터는 CPU내의 특수한 동작을 전담하는데, 누산기, 프로그램 카운터, 기억장치 레지스터 등이 속해 있습니다.

마지막으로 제어장치에 대해 알아봅시다!

제어장치

제어장치는 컴퓨터 모든 장치들의 동작을 지시하고 제어합니다
제어장치는 이런 흐름으로 진행됩니다 (사실 더 복잡하게 움직입니다)

IR이라는 명령어 레지스터에서 실행해야 할 명령을 읽고, 그걸 해독해서 각 장치에 신호를 보냅니다. (앞서 연산장치가 실행할때, 신호를 받는것을 기억하시나요? 제어장치에서 보낸 것이랍니다)

이제 CPU자체의 동작과정에 대해 살펴봅시다

CPU 동작과정


이렇게보니 생각보다 간단하죠? 주기억장치에서 데이터, 프로그램을 읽어와서 처리하고 결과를 주거억장치에 저장합니다, 그러면 주기억장치에서 그 결과를 보조기억장치나, 입출력장치에 보내줍니다.


시작하고 종료하는동안 cpu는 명령어를 인출하고, 실행(처리)하는데요 이때, 한 번에 하나의 명령어만 인출할 수 있기 때문에 명령어 인출-실행을 반복하여 명령어 사이클이라고 합니다

인출 사이클

아까 말했다시피 명령어는 하나씩 인출할 수 있다고 했죠? 인출되는 과정이 어떻게 진행되는지 알아봅시다

PC..MAR...IR...MBR... 혼동되시나요? 걱정마세요 한놈씩 정체를 까발려봅시다
PC (명령어 계수기) : Program Counter의 약자로, 다음에 실행할 명령어가 기억되어있는 주기억장치의 주소를 기억합니다
MAR (주소 레지스터) : Memory Address Register의 약자로, 주기억장치에 명령이나 자료가 기억되어 있는 주소를 보관합니다.
IR (명령어 레지스터) : Instruction Register의 약자로, 현제 실행중인 명령을 기억합니다. 연산 코드와 주소부로 이루어져있습니다.
MBR (기억 레지스터) : Memory Buffer Register의 약자로, 명령어 계수기가 지정하는 주기억 장치의 내용을 임시보관합니다

이제 좀 알것같죠? 흐름을 알아봅시다
1. 프로그램 카운터에서 저장된 주소를 주소 레지스터로 전달합니다
2. 주소 레지스터에 저장된 주소를 통해 주기억장치에 있는 명령어를 찾습니다
3. 주기억장치에서 명령어를 인출 한 후, 기억 레지스터에 저장합니다.
4. 프로그램 카운터가 1 증가합니다
4. 이 명령어를 명령어 레지스터에 저장합니다!

여기서 명령어 레지스터는 제어장치에서 본 적이 있죠? 이렇게 인출된 명령어가 제어장치를 통해 각 장치에 보내진 후 실행됩니다.

자, 이렇게 CPU와 동작과정에 대해 알아봤는데요 이해가 좀 되셨나요? 피드백은 언제나 환영이에요! 읽어주셔서 감사합니다😊

profile
킹갓개발자가 되고싶은 애벌래개발자

0개의 댓글