Chapter04. CPU의 작동 원리

  • ALU는 계산하는 부품으로 레지스터를 통해 피연산자를 받아들이고,
  • 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들입니다.
  • 오버플로우: 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황
  • 플래그: 연산 결과에 대한 추가적인 상태 정보
  • 제어장치
    • 첫째, 제어장치는 클럭 신호를 받아들입니다 (클럭: 시간단위)
    • 둘째, 제어장치는 ‘해석해야 할 명령어’를 받아들입니다
    • 셋째, 제어장치는 플래그 레지스터 속 플래그 값을 받아들입니다
    • 넷째, 제어장치는 시스템 버스, 그중에서 제어 버스로 전달된 제어 신호를 받아들입니다
    → 제어장치는 클럭신호, 명령어, 플래그, 제어신호를 받아들입니다
    • 제어장치는 CPU 내부와 외부로 제어 신호를 보냅니다
  • 레지스터
    • 프로그램 카운터: 메모리에서 가져올 명령어의 주소(=명령어 포인트)
    • 명령어 레지스터: 해석할 명령어, 이를 받아 들이고 해석한 뒤 제어신호 보냄
    • 메모리 주소 레지스터: 메모리 주소를 저장하는 레지스터
    • 메모리 버퍼 레지스터: 메모리와 주고받을 값을 저장하는 레지스터
    • 범용 레지스터: 일반적인 상황에서 자유롭게 사용
    • 플래그 레지스터: 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장
  • 특정 레지스터를 이용한 주소 지정 방식
    • 스택 주소 지정 방식: 스택과 스택 포인터(스택의 최상단의 위치)를 이용한 주소 지정 방식
    • 변위 주소 지정 방식: 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식 (상대 주소 지정 방식, 베이스 레지스터 주소 지정 방식)
  • 명령어 사이클: 하나의 명령어를 처리하는 정형화 된 흐름
    • 인출 사이클, 실행 사이클, 간접 사이클
  • 인터럽트: 흐름에 따라 처리하다 간혹 흐름이 끊어지는 상황
    • 동기 인터럽트: CPU에 의해 발생(예외적인 상황, 프로그래밍 오류 등)
    • 비동기 인터럽트: 입출력장치에서 발생(하드웨어 인터럽트)
728x90

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23
Chapter01. 컴퓨터 구조 시작하기  (1) 2024.10.23

Chapter03. 명령어

고급언어는 결국 저급언어로 변환되어 실행되는데 방법은 컴파일 방식과 인터프리터 방식이 존재함.

  • 컴파일 언어
    • 컴파일러에 의해 소드 코드 전체가 저급 언어로 변환되는 고급 언어 (예: C)
    • 코드 전체가 저급 언어로 변환되는 과정을 컴파일
    • 컴파일을 도와주는 도구를 컴파일러
    • 컴파일러를 통해 저급 언어로 변환 된 코드를 목적 코드
  • 인터프리터 언어
    • 인터프리터에 의해 1줄씩 실행되는 고급 언어 (예: 파이썬)
    • 한 줄씩 저급 언어로 변환하여 실행을 도와주는 도구를 인터프리터
    • 일반적으로 컴파일 언어가 더 빠름

목적파일과 실행파일은 같지 않음. 목적파일에 다른 파일을 연결짓는 링킹이라는 작업이 필요함.

  • 명령어: 연산코드 + 오퍼랜드
  • 연산코드: 명령어가수행할 연산 (연산자)
    • 데이터 전송
    • 산술/논리 연산
    • 제어 흐름 변경
    • 입출력 제어
  • 오퍼랜드: 연산에 사용할 데이터 (피연산자=주소필드)
  • 즉시 주소 지정 방식: 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방법
    • 표현할 수 있는 데이터의 크기는 작아지지만
    • 연산에 사용할 데이터를 메모리나 레지스터로부터 찾는 과정이 없기에 속도가 빠름
  • 직접 주소 지정 방식: 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식
    • 표현할 수 있는 데이터의 크기는 커졌지만, 연산 코드의 비트 수 만큼 줄어듬
  • 간접 주소 지정 방식: 유효 주소의 주소
  • 레지스터 주소 지정 방식: 유효 주소 (레지스터 이름)
  • 레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터
  • 스택: 후입선출, LIFO(Last In First Out) 자료구조
  • 큐: 선입선출, FIFO (First In First Out) 자료구조
728x90

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23
Chapter01. 컴퓨터 구조 시작하기  (1) 2024.10.23

+ Recent posts