지금을 사는 사람

혼자 공부하는 컴퓨터 구조 + 운영체제 2주차 본문

스터디/혼공학습단

혼자 공부하는 컴퓨터 구조 + 운영체제 2주차

지금회 2023. 7. 15. 19:40
728x90

2주차 시작합니다.

 

기본 미션

[보기] 프로그램 카운터, 명령어 레지스터, 플래그 레지스터, 범용 레지스터
( 플래그 레지스터 ): 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
( 프로그램 카운터 ): 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
( 범용 레지스터 ): 데이터와 주소를 모두 저장할 수 있는 레지스터
( 명령어 레지스터 ): 해석할 명령어를 저장하는 레지스터

 

선택 미션

다음 그림은 멀티코어 CPU를 간략하게 도식화한 그림입니다. 빈칸에 알맞은 용어를 써 넣으세요.
코어(core)

 

CPU 작동원리

ALU (산술논리연산장치)
레지스터로부터 피연산자를, 제어장치로부터 제어 신호를 받아들여 연산을 수행한다.
연산 수행 결과는 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장된다.
결괏값과 함께 플래그(flag)도 함께 내보내는데, 플래그는 플래그 레지스터에 저장되며 이 레지스터를 통해 연산 결과의 부호와 같은 추가 정보를 알 수 있다.

플래그 : 현재상태를 저장하여 나타내는 값. ex) 부호, 캐리, 오버플로우 등 표시
제어장치
클럭, 수행할 명령어, 플래그, 제어 신호를 받아들이고 CPU 내부와 외부로 제어 신호를 보내기도 한다.

클럭 : 컴퓨터 부품이 동작하는 시간 단위.

 

레지스터와 프로그램 실행 과정

레지스터의 종류
프로그램 카운터(PC; Program Counter) : 메모리로부터 읽어 들일 명령어의 주소를 저장한다.
명령어 레지스터(IR; Instruction Register) : 메모리에서 읽어 들인 명령어를 저장한다.
메모리 주소 레지스터(MAR; Memory Address Register) : 메모리의 주소를 저장한다.
메모리 버퍼 레지스터(MBR; Memory Buffer Register) : 메모리와 주고받을 값을 저장한다.
범용 레지스터(General Purpose Register) : 데이터와 주소를 모두 저장할 수 있다.
플래그 레지스터(Flag Register) : 연산 결과나 CPU 상태 부가 정보 등을 저장한다.
스택 포인터(Stack Pointer) : 스택 최상단 위치를 저장한다.
베이스 레지스터(Base Register) : 기준 주소의 역할을 한다.
메모리에 저장된 프로그램을 실행하는 과정
PC에 값 저장 > MAR에 PC의 주소 넘김 > 버스를 통해 MBR에 명령어 저장 > PC값 1 증가하여 다음 명령어 읽기
> MBR에 저장된 값은 IR로 이동하여 실행

 

명령어 사이클(Instruction Cycle)과 인터럽트(Interrupt)

인출 사이클(Fetch cycle) : 명령어를 가져오는 사이클
실행 사이클(Execution cycle) : 명령어를 실행하는 사이클
간접 사이클(Indirect cycle) : 메모리에 다시 접근하는 사이클
인터럽트(Interrupt) : CPU가 수행중인 작업을 방해하여 중단하도록 하는 행위
- 동기 인터럽트(Synchronous Interrupts) : CPU에 의해 발생
- 비동기 인터럽트(Asynchronous Interrupts) : 입출력 장치에 의해 발생

 

코어(Core)와 스레드(Thread) CPU 성능 향상 기법

1. 클럭 속도를 높이는 방법
CPU성능 향상을 위해서는 클럭 속도를 높이면 된다. 하지만 속도를 높이는데에는 기술적인 한계가 있다.

2. 코어와 쓰레드
코어(core) : CPU 내에서 명령어를 실행하는 부품
최근 출시되는 CPU들은 여러개의 코어를 포함한 CPU이다.
성능은 코어수에 꼭 비례하지 않는다. 

스레드(thread)
- 하드웨어적 스레드 : 코어 하나당 동시에 처리할 수 있는 명령어 단위
   * 8코어 16스레드 : 코어 1개당 2개의 스레드로 처리한다.
- 소프트웨어적 스레드 : 하나의 프로그램에서 독립적으로 실행되는 단위
728x90