컴퓨터 시스템 개요

심영민·2023년 10월 25일
0

컴퓨터 구조

목록 보기
1/5
post-thumbnail

컴퓨터

컴퓨터란 주기억 장치에 적재한 프로그램을 실행하는 것이다.

컴퓨터 구조란 프로그래머에게 보이는 속성들로 추상적인 약속들로 아래와 같은 속성이 있다.

  • 데이터 표현
  • 명령어 집합
  • 레지스터 (데이터 기억 장치)
  • 입출력 메커니즘
  • 주소 생성 기술

컴퓨터 조직이란 실제로 어떻게 구현되고 상호 연결되는지 다루고 아래와 같은 속성이 있다.

  • 제어 신호
  • 인터페이스
  • 메모리 만드는 기술

기본 기능

  • 프로그램 실행
  • 데이터 저장
  • 데이터 이동
  • 프로그램 실행 순서 제어
  • 데이터 입/출력

컴퓨터 기본 구조

정보 처리하는 물리적인 실체인 하드웨어와 정보의 방향과 정보 처리의 종류를 지정해주고 이러한 동작들이 일어나는 시간을 지정해주는 명령의 집합인 소프트웨어로 구성된다.

하드웨어

기본 구성요소는 중앙처리장치(CPU)주기억장치(Main Memory)입출력장치(I.O)가 시스템버스로 이어져 있다.

이는 폰노이만 구조로 오늘날의 컴퓨터 기본 구조이다.

폰노이만 구조는 ENIAC의 프로그램 저장 및 변경이 안되는 문제를 해결 목적으로 도입한 구조로 2진수 체계이고 프로그램과 데이터를 내부에 저장하는 최초의 구조이다.

주요 구성 요소는 메인메모리, ALU(산술논리연산장치), 프로그램 제어 유니트, I/O(입출력장치) 가있다.

  • CPU : 프로세서로 프로그램 실행과 데이터처리를 수행

  • 기억장치 : CPU가 처리할 데이터를 저장하는 장치

    • 주기억장치 : CPU와 가까워 엑세스 빠름. 저장 용량 한계. 데이터 일시적으로 저장함.
    • 보조기억장치 : 읽기, 쓰기 느림. 데이터 영구적으로 저장 가능.
  • 입출력장치 : 입력 및 출력 장치

  • 시스템 버스 : 중앙처리장치와 입출력장치 주기억 장치 간의 통신이 이루어짐.

    • 주소 버스 : CPU가 외부로 발생하는 주소 정보를 전송하는 버스. (단방향성)
      주소 선들의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정.
    • 데이터 버스 : CPU가 기억장치나 입출력장치와의 사이에서 데이터를 전송하기위한 신호 선들의 집합. (양방향성)
      데이터 선들의 수는 CPU가 한번에 전송할 수 있는 비트 수를 결정.
    • 제어 버스 : CPU가 시스템 내 동작을 제어하기 위한 신호 선들의 집합. (양방향성)
      메모리를 읽고쓰는 신호, 인터럽트 요청, 데이터 주소 접근하고 사용하는 신호 등.

CPU와 기억장치

CPU와 기억장치는 주소버스와 데이터버스와 제어버스로 이어져 다음 과정을 거친다.

  • 기억장치 쓰기 동작 : CPU가 저장할 데이터와 저장할 메모리의 주소를 각각 데이터버스와 주소버스를 통해 전송하여 동시에 쓰기 신호 활성화함.
  • 기억장치 쓰기 시간 : CPU가 메모리와 데이터를 보낸 순간부터 메모리가 데이터와 주소를 저장이 완료될 때까지의 시간.
  • 기억장치 읽기 동작 : CPU가 메모리 주소를 보내면서 읽기 신호 활성화.
  • 기억장치 읽기 시간 : CPU가 주소를 보낸 순간부터 데이터 저장이 완료될 때까지의 시간.
    (읽기 동작은 쓰기 동작보다 데이터의 이동이 지연됨)

CPU와 입출력 장치

CPU와 입출력 장치 역시 주소버스, 데이터버스, 제어버스로 이어져
CPU -> 시스템 버스 -> I/O 장치 제어기 -> I/O 장치 과정을 거친다.

I/O 장치 제어기는 CPU로부터 I/O명령을 받아서 해당 I/O장치를 제어하고, 데이터를 이동함으로써 명령을 수행하는 전자회로 장치이다.
이러한 I/O장치 제어기안에는 상태 레지스터와 데이터 레지스터가 존재한다.

  • 상태 레지스터 : I/O장치의 현재 상태를 나타내는 비트들을 저장함.
  • 데이터 레지스터 : CPU와 I/O장치 간에 이동되는 데이터를 일시적으로 저장함.

CPU는 보조저장 장치와도 I/O장치와 비슷하게 접속하지만
I/O장치는 바이트 단위로 데이터를 전송하는 대신,
보조저장 장치는 블록 단위로 전송하고, 제어기 내에 이러한 블록을 저장할 수 있는 데이터 버퍼가 필요함.

하드웨어 프로그래밍과 소프트웨어 프로그래밍

  • 하드웨어 프로그래밍 : 산술과 논리 함수를 실행하여 결과 도출. 새로운 프로그램을 실행시키기위해서는 회로를 다시만들어야기에 유동적이지 못함.

  • 소프트웨어 프로그래밍 : 명령어를 해석하여 하드웨어에 맞춰 제어신호를 보내고 산술 및 논리 연산을 하여 결과 도출.

정보의 표현과 저장

컴퓨터 언어는 아래와 같이 분류된다.

  • 기계어 : 기계코드로 CPU에 따라 다른 명령어 집합을 사용함. 2진수 비트.
  • 어셈블리 언어 : 고급과 기계어의 중간 언어. 기계어와 1대1 대응.
    • 메모리 X번지 내용을 레지스터 A에 저장하고, 메모리 Y번지 내용을 레지스터 A에서 X와 더하고 저장하고 그 값을 다시 메모리 Z번지에 저장.
  • 고급 언어 : 영문자와 숫자로 구성. C, C++ 등이 있고 컴파일러를 통해 기계어로 번역.
    • 메모리에 있는 X와 Y를 CPU에 있는 + 로 연산함.

기계 명령어의 형식

  • 연산코드 : CPU가 수행할 연산을 지정해주는 비트로 구성.
    3비트면 8개의 연산 가능함.
  • 오퍼랜드 :연산에 사용될 데이터 혹은 그 데이터가 저장되어있는 메모리 주소. 5비트면 32개까지 메모리의 주소를 지정 가능함.
profile
코딩너무어려운대 어떡할과 재학중

0개의 댓글

관련 채용 정보