[혼공컴운10기] Week 2_CPU_작동원리 & 성능 향상 기법

너스레:)·2023년 7월 16일
0

Computer Science

목록 보기
2/6
post-thumbnail

[기본 미션]

: p.125의 확인 문제 2번, p.155의 확인 문제 4번 풀고 인증하기

► p.125 문제 2번

알맞은 '레지스터'는?

  • ___①___ : 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
    ☞ 정답 : 플래그 레지스터

  • ___②___ : 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
    ☞ 정답 : 프로그램 카운터

  • ___③___ : 데이터와 주소를 모두 저장할 수 있는 레지스터
    ☞ 정답 : 범용 레지스터

  • ___④___ : 해석할 명령어를 저장하는 레지스터
    ☞ 정답 : 명령어 레지스터

► p.155 문제 4번

'멀티코어 CPU'의 도식

[추가 미션]

: 코어 & 스레드, 멀티 코어 & 멀티 스레드의 개념 정리

► 코어

: 명령어를 실행하는 하드웨어 부품

cf) CPU : 명령어를 실행하는 부품을 여러 개 포함하는 부품

► 스레드

: 명령어를 실행하는 단위
: 종류 - '하드웨어적 스레드', '소프트웨어적 스레드'

i) 하드웨어적 스레드

☞ 하나의 코어가 동시에 처리하는 명령어 단위

ii) 소프트웨어적 스레드

☞ 하나의 프로그램에서 독립적으로 실행되는 단위

► 멀티 코어

: 코어를 여러 개 포함하고 있는 CPU

  • CPU 내에 명령어를 처리하는 일꾼이 여러 명 있는 것과 같다.

  • 단, 각 코어마다 처리할 명령어들이 "적절하게 분배" 되어있어야 CPU의 연산 속도에 유의미한 영향을 미칠 수 있다.

► 멀티 스레드

: 종류 - '하드웨어적 멀티 스레드', '소프트웨어적 멀티 스레드'

i) 하드웨어적 멀티 스레드

: 하나의 코어로 여러 명령어를 동시에 처리하는 CPU

  • '멀티 스레드 프로세서'의 설계에 있어 가장 큰 핵심은 "레지스터"이다!
  • '레지스터 세트' n개 ☞ n개의 명령어 처리 가능 ☞ n스레드

2코어 4스레드 CPU

ii) 소프트웨어적 멀티 스레드

: 프로그램여러 부분을 동시에 실행 가능

  • 1코어 1스레드 CPU로도 프로그램의 여러 부분을 동시에 실행할 수 있다.
    즉, '하드웨어적 싱글 스레드'로 '소프트웨어적 멀티 스레드'의 실행이 가능하다.

  • '논리 프로세서'
    : 메모리 속 프로그램의 입장에서는,
    [ 하드웨어적 "멀티" 스레드 ☞ "싱글" 스레드 여러 개 ] 로 보인다.

profile
💻 (CSE) Computer Science and Engineering

2개의 댓글

comment-user-thumbnail
2023년 7월 16일

잘봤습니다.

답글 달기
comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기