본문 바로가기
Books/한 권 컴퓨터 구조와 프로그래밍 ✔️

[한 권 컴퓨터 구조와 프로그래밍] 4장 - 컴퓨터 내부 구조

by Aaron-Kim 2022. 8. 11.

컴퓨터 하드웨어는 어떻게 구성되는가

메모리

  - 메모리: 컴퓨터에 조작할 비트들을 저장하는 저장소

  - 한 시스템에서 다른 시스템으로 데이터 전송 시 엔디안을 염두해야 함

     (엔디안을 무시하면 데이터 순서가 뒤섞일 수 있음)

입력과 출력

  - I/O와 메모리가 같은 버스를 이용하는 공유 버스가 있음

중앙 처리 장치

  - 산술 논리 장치

    - ALU: 산술 계산, 불리언 대수 및 기타 연산을 수행하는 방법을 알고 있는 장치

    - 피연산자(operand): 수를 표현하는 비트

    - 연산 코드(명령 코드/opcode): 피연산자에 대해 ALU가

       어떤 연산자(operator)를 적용할지 지정

    - 조건 코드: 결과에 대한 추가 정보가 들어감 (조건 코드 레지스터에 조건 코드가 저장됨)

  - 시프트

    - 왼쪽 1번 shift하면 결과값은 2배, 오른쪽 1번 shift하면 결과값은 1/2배

    - 시프트를 할 때 사라지는 MSB/LSB 비트를 조건 레지스터에 저장함

    - 시프터는 부동소수점 연산 구현시에도 핵심 부품임

  - 실행 장치

    - 실행 장치(제어 장치): 메모리의 정해진 장소에서 명령코드(연산코드)와 피연산자들을 가져와서

       ALU에게 어떤 연산을 수행할지 알려주고, 결과를 메모리에 돌려줌

    - 명령어(Instruction)는 컴퓨터에게 어떤 일을 할지 알려주는 비트 패턴

    - 프로그램 카운터(PC)는 메모리에서 명령어를 가져와야 하는 현재 위치를 알려줌 (화살표, 참조)

명령어 집합

  - 명령어

    - 누산기를 이용하여 ALU가 계산한 결과를 저장함 (누산기/A 레지스터)

    - 1주소 명령어를 사용하면 명령어의 개수가 많아지지만 필요한 비트 수가 적어질 수 있음

  - 주소 지정 모드

    - 간접 주소 지정 방식을 통해 더 많은 메모리 사용 가능

       (직접 주소 지정 방식은 주소가 명령어에 직접 들어가 있어서 사용할 비트 수 더 적음)

    - 간접 주소 지정 방식은 CPU가 명령어에 들어 있는 값을 피연산자 주소로 해석하지 않고,

       피연산자 주소를 얻을 수 있는 메모리 위치를 가리키는 주소로 사용함

    - 즉시 주소 지정 모드는 주소를 지정하지 않고 직접 값을 지정하는 즉시 모드임

       (주소에 해당하는 비트를 그냥 값으로 간주함)

  - 조건 코드 명령어

  - 분기 명령어

    - 프로그램 카운터의 값을 변경할 수 있는 명령어

  - 최종 명령어 집합 구성

    - 주소 지정 모드 선택을 위해 2비트가 필요함

    - 프로그램은 어떤 목표를 달성하는 일련의 명령어

마지막 설계

  - 명령어 레지스터

    - state machine: 패치 (메모리에서 명령어 가져옴) - 실행 사이클

    - CPU에 명령어 레지스터를 추가해서 현재 실행 중인 명령어 저장

  - 데이터 경로와 제어 신호

    - 간접 주소 레지스터 이용 => 간접 주소 지정 시 메모리에서 읽어온 주소를 어딘가에 저장 위함

  - 데이터 흐름 제어

    - 랜덤 논리

    - 적당한 크기의 메모리 사용 (마이크로코드 사용)

RISC와 CISC 명령어 집합

  - RISC (Reduced Instruction Set Computer)

    - 복잡한 명령어를 단순한 명령어의 조합을 통해 처리함

    - Load-Store architecture (적재-저장 구조)

      - 적재 (메모리에서 읽어오기)

      - 메모리와 레지스터를 오가는 명령어들과 레지스터 간 명령어로만 이뤄진 구조

  - CISC (Complicated Instruction Set Computer)

    - 기존 설계 방식으로 만든 컴퓨터

    - 자동 증가/자동 감소 주소 지정 모드 지원

GPU

  - 그래픽은 병렬화하기에 좋은 작업임

    (ex. 동시에 여러 점을 찍음)

  - 간단한 처리 장치가 아주 많이 들어 있음

  - CPU보다 메모리 버스의 폭이 더 넓음

     (메모리에 더 빠르게 접근 가능)

정리

반응형

댓글