[컴퓨터구조] 컴퓨터의 구성

kuku·2023년 1월 14일
1

CS 스터디

목록 보기
1/18

컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software)로 나눌 수 있다. 하드웨어는 컴퓨터 시스템이 작동하는 데 필요한 '물리적' 구성 요소이고, 소프트웨어는 컴퓨터에게 동작 방법을 지시하는 명령어 집합이다.


📖하드웨어

하드웨어는 크게 중앙처리장치(CPU), 기억장치(Memory), 입출력장치(I/O)로 구성되어 있다.
CPU에는 연산장치(ALU), 제어장치(CU)가 포함되어있는데, 입력장치-연산장치-제어장치-기억장치-출력장치를 컴퓨터의 5대 구성 요소라고도 한다.
이들은 시스템 버스로 연결되어 있으며, 시스템 버스는 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 한다.

📁중앙처리장치(CPU)

인간의 두뇌에 해당하는 부분으로, 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다.

  • ALU(Arithmetic and Logic Unit)
    덧셈, 뺄셈 같은 산술연산과 배타적 논리합, 논리곱, 논리합 같은 논리연산을 수행하는 장치

  • CU(Control Unit)
    Instruction register에 저장된 명령어를 해석하고, 컴퓨터를 구성하는 장치들을 제어할 제어신호를 생성하여 동작을 지시하는 장치

  • Register
    CPU 내부에서 처리할 명령어나 연산에 필요한 임시 데이터를 저장하는 장치

  • Internal bus
    CPU 내부 구성 요소 간의 데이터 전달과 연결을 위한 경로

개인용 컴퓨터와 같은 소형 컴퓨터에서는 CPU를 마이크로프로세서라고도 부른다.

📁기억장치(Memory)

프로그램, 데이터, 연산의 중간 결과를 저장하는 장치로, 주기억장치와 보조기억장치로 나누어진다.

  • 주기억장치(Ex. RAM, ROM)
    프로그램 실행 중에만 사용될 수 있는 휘발성 기억장치로, 프로그램을 실행하는 동안 필요한 데이터를 일시적으로 저장한다. CPU와 가까이 있어 데이터를 읽고 쓰는 속도가 빠르며, CPU는 한번에 OS bit에 해당하는 만큼의 데이터를 읽어온다.

  • 보조기억장치(Ex. HDD, SSD)
    주기억장치에 비해 데이터를 읽고 쓰는 속도가 느리지만 영구 저장이 가능하다.

📁입출력장치(I/O)

입력장치와 출력장치로 나누어진다.

  • 입력장치(Ex. 키보드, 마우스)
    컴퓨터 내부로 데이터를 입력하는 장치

  • 출력장치(Ex. 프린터, 모니터, 스피커)
    컴퓨터 데이터를 외부로 출력하는 장치

📁시스템 버스

하드웨어 구성 요소를 물리적으로 연결하는 선으로, 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 한다.

  • 주소 버스(Address Bus)
    기억장치의 주소 또는 입출력장치의 포트번호를 전달한다.
    중앙처리장치가 기억장치나 입출력장치로 데이터를 전달하는 통로이기 때문에 단방향 버스이다.

  • 데이터 버스(Data Bus)
    중앙처리장치와 기타 장치 사이에서 데이터를 전달하는 역할을 한다. 기억장치와 입출력장치의 명령어와 데이터를 중앙처리장치로 보내거나, 중앙처리장치의 연산 결과를 기억장치와 입출력장치로 보내는 양방향 버스이다.

  • 제어 버스(Control Bus)
    중앙처리장치가 기억장치나 입출력장치에 제어 신호를 전달하는 통로이다.
    제어 신호에는 기억장치 읽기 및 쓰기, 버스 요청 및 승인, 인터럽트 요청 및 승인, 클락, 리셋 등이 있다. 읽기 동작과 쓰기 동작을 모두 수행하기 때문에 양방향 버스이다.


📖소프트웨어

소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 나누어진다.

📁시스템 소프트웨어

응용 소프트웨어를 실행하기 위한 플랫폼을 제공하고 컴퓨터 하드웨어를 동작, 접근할 수 있도록 설계된 컴퓨터 소프트웨어이다. 운영 체제, 컴파일러, 어셈블러, 링커 등이 있다.

📁응용 소프트웨어

넓은 의미에서는 운영 체제에서 실행되는 모든 소프트웨어를 뜻한다. 이런 경우 워드프로세서, 스프레드시트, 웹브라우저들뿐만 아니라 컴파일러나 링커 등도 응용 소프트웨어에 속한다.
좁은 의미에서는 OS 위에서 사용자가 직접 사용하게 되는 소프트웨어들을 뜻한다. 이런 경우 컴파일러나 링커 등 시스템 소프트웨어를 제외한 워드프로세서 등의 소프트웨어들만을 주로 뜻한다.

참고 : 위키백과, https://gyoogle.dev/blog/computer-science/computer-architecture/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98%20%EA%B5%AC%EC%84%B1.html, https://dheldh77.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C, https://codybuilder.com/27

0개의 댓글