«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
Recent Posts
Recent Comments
관리 메뉴

뉴히의 개발 로그

[CS study] CPU의 구성: 레지스터 본문

CS

[CS study] CPU의 구성: 레지스터

뉴히 2023. 8. 18. 00:12

프로세서 레지스터

연산에 필요한 데이터를 저장하고 빠른 속도로 접근 할 수 있는 저장공간

 

  • 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장
  • 특수목적 레지스터 : 특별한 용도로 사용하는 레지스터
    • 메모리 주소 레지스터: (MAR) : 읽고 쓰기 위한 주기억장치의 주소를 저장한다.
    • 프로그램 카운터 (PC) : 다음에 수행할 명령어의 주소를 저장
    • 명령어 레지스터 (IR) : 현재 실행 중인 명령어를 저장
    • 메모리 버퍼 레지스터 (MBR) : 주기억장치에서 읽어온 데이터나 저장할 테이터를 임시로 저장
    • 누산기 (AC, ACCUMULATOR) : 연산 결과를 임시로 저장

 

제어장치 (CU)

명령어를 실행하는 순서를 제어하고 스케줄링

 

  • 제어부
    • 주기억 장치에 저장되어 있는 명령어를 순서대로 호출하여 해독하고, 제어 신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치
  • 내부버스

 

연산장치 (ALU)

논리연산(덧셈,뺄셈,비교연산) 수행

산술 논리 장치라고 불리는 이 곳은 덧셈, 뺄셈같은 산술연산과 논리 연산을 계산하는 디지털 회로이다.

 

CPU의 동작

- “기계어”를 모스부호처럼 하드웨어적으로 CPU가 알아볼 수 있게 변환한게 “어셈블리어”
- “어셈블리어”를 사람이 알아볼 수 있게 소프트웨어적으로 변환한게 “프로그래밍 언어”
- 즉, 기계어(저장공간) > 어셈플리어(CPU) > 프로그래밍 언어(사람)

CPU가 명령어를 읽고 수행하는 동작

  • 명령어 인출
    • CU가 수행할 명령어 정보를 가지고 옴
  • 명령어 해독
    • 명령어 정보를 성공적으로 인출했으면 명령어를 해독해야한다
    • 보통 opcode라고 하는 명령어 코드를 인출하고 opcode의 성격에 맞게 레지스터들을 준비시킴
  • 실행
    • 해독된 명령어를 수행! 예를 들어, 이것이 산술/논리 관련된 연산이라고 하면 ALU가 주체가 되어서 실행
  • 반영
    • 이 명령어의 수행 결과를 반영함으로써 명령어 수행의 한 사이클이 끝~!

 

CPU의 성능

  • 클럭
    • CPU 내부에서 일정한 주파수를 가지는 신호로, 이 신호로 모든 명령어가 동작되게 된다
    • 1Hz(헤르츠)면 1초에 한 번의 주기. 1기가 헤르츠라고 하면 1초에 1기가만큼(1024메가), 즉 10억 번 정도인 셈
      • 예를 들어 4.5GHz라는 것은 초당 45억 번의 명령어를 처리할 수 있다는 뜻
    • 따라서 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령을 처리할 수 있기에 더 좋은 성능의 중앙 처리 장치라고 할 수 있다
  • 코어
    • 코어는 중앙처리 장치 역할을 하는 블록을 뜻함
    • 즉, 멀티 코어들은 싱글 코어에 비해서 마치 여러 개의 CPU(요리사)가 작동하듯이 많은 연산을 빠르게 병렬 처리할 수 있다
    • 물론 컴퓨터의 전체적인 성능은 CPU 만으로 결정되지는 않습니다. (메모리도 중요) 하지만, 가장 중요한 부분이라고 할 수 있는건 푸드트럭의 요리사 또는 사람의 뇌에 해당하는 CPU이다.