1. 컴퓨터 시스템 개요

컴퓨터란 - 데이터를 프로그램에 의해 처리하는 기계

컴퓨터의 기본적인 기능 : 프로그램 실행, 데이터 저장/이동/입출력, 제어

컴퓨터 구조 (추상적)

프로그램 실행 시 영향을 끼치는 속성들, 프로그래머가 들여다 볼 수 있는 속성

속성

  • 명령어 집합
  • 레지스터 (cpu 내부의 임시 기억장치)
  • 데이터 표현방법(규칙)
  • 입출력 메커니즘
  • 주소 기술

컴퓨터 조직 (물리적)

컴퓨터 구조를 어떻게 구현할지 하드웨어를 조직하는 방법

속성 (프로그래머에게 보여지는 하드웨어 구조)

  • 제어 신호
  • 컴퓨터/주변기기 인터페이스
  • 메모리 기술

컴퓨터의 기본 구조

응용 소프트웨어, 시스템 소프트웨어, 하드웨어

하드웨어

  • 컴퓨터 정보들의 전송 통로를 제공해 주고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체

소프트웨어

  • 정보들의 이동 방향/종류 지정/시간을 지정해주는 명령어들의 집합

중앙처리장치(CPU)

  • 프로세서
  • 프로그램 실행데이터 처리를 담당

CISC : x86 → 컴퓨터용 cpu, 명령어가 다양

RISC : ARM → 모바일 cpu, 저전력

기억장치(memory)

cpu가 실행할 프로그램과 데이터를 저장하는 장치

  1. 주기억장치
    • cpu 가까이 위치, 고속, 휘발성, 비쌈
  2. 보조저장장치
    • 2차 기억장치, 느림, 영구 저장, 싸고 저장 밀도가 높음 (하드디스크, 플래시 메모리 등)

입출력장치(I/O device)

  • 사용자 - 컴퓨터가 대화를 위한 입력/출력 장치
  • 유/무선 통신 네트워크 인터페이스 장치

시스템 버스

  • cpu, 주기억장치, I/O간의 통신 담당

정보의 표현과 저장

컴퓨터 정보는 프로그램 코드데이터로 이루어져 있으며, 2진수 비트(1,0)으로 표현.

컴퓨터 언어의 분류

기계어

  • cpu가 이해할 수 있는 언어 → cpu에 따라 다른 명령어 집합을 사용
  • 2진수 비트들로 구성

어셈블리 언어

  • 고급언어와 기계어 사이의 중간언어
  • 기계어와 1:1 대응
  • 어셈블러(assembler)로 기계어로 번역
    • 니모닉스 - 어셈블리 명령어가 지정하는 동작을 짐작할 수 있도록 사용된 기호 ex) LOAD, ADD, STR

고급 언어

  • 영문자와 숫자로 구성된 사람이 이해하기 쉬운 언어 (c, c++ 등)
  • 컴파일러(compiler)를 통해 기계어로 번역

기계 명령어의 형식

기계 명령어는 연산코드, 오퍼랜드로 구성

연산 코드

  • cpu가 수행할 연산을 지정해 주는 비트들
  • cpu가 지정할 수 있는 최대 연산의 수 = $2^{비트 수}$

오퍼랜드

  • 연산에 사용될 데이터, 또는 그 데이터가 저장된 기억장치 주소
  • 주소를 지정할 수 있는 기억장소의 최대 수 = $2^{비트 수}$

프로그램 코드와 데이터는 지정된 기억 장소에 저장


프로그램 개념

하드웨어 프로그래밍(하드와이어 프로그래밍)

  • 특정한 계산을 위한 정해진 하드웨어 → 유연하지 않음
  • 새 프로그램을 위한 하드웨어 재배치(재배선)
  • 범용 목적의 하드웨어는 재배치 대신, 새로운 제어 신호의 집합 제공

소프트웨어 프로그래밍

  • 범용 목적의 논리,산술적 기능의 구조
  • 각 단계마다 논리/산술 연산을 실행
  • 매 작동마다 다른 집합의 제어신호가 필요 → 하드웨어에 적용
  • 새 프로그램 → 새 명령어 코드 → 새 제어 신호

시스템의 구성

시스템 버스 (cpu와 시스템 버스)

cpu, 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로로 주소 버스, 데이터 버스, 제어 버스로 나뉨

  1. 주소 버스

    • cpu가 외부로 발생하는 주소 정보를 신호 선들의 집합 (단방향성)
    • 주소 선들의 수는 cpu와 접속될 수 있는 최대 기억장치 용량을 결정
      • 16비트 → $2^{16}$ 개의 주소 지정 가능 ( $2^{10} = 1K$, $2^{20} = 1M$ )
  2. 데이터 버스

    • cpu가 기억장치, I/O 장치와의 사이에 데이터(명령어도)를 전송하기 위한 신호 선들의 집합
    • 32비트 → 데이터 전송은 한번에 32비트씩 가능
  3. 제어 버스

    • cpu가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합
    • ex) 메모리 읽기/쓰기, 인터럽트 요청, 시계, 데이터/주소 버스의 접근,사용 신호

주소 버스만 단방향임


기억장치 (cpu와 기억장치)

쓰기 동작 : cpu에서 저장할 주소/데이터를 각각 주소, 데이터 버스를 통하여 전송, 동시에 쓰기 신호 활성화

쓰기 시간 : cpu가 주소, 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간

읽기 동작 : cpu가 주소를 보냄 → 읽기 신호 활성화 → 일정 지연 시간 후, 기억장치로부터 읽힌 데이터가 버스에 실림 → cpu는 그 데이터를 버스 인터페이스 회로로 읽음

읽기 시간 : cpu가 주소를 보낸 시간부터 데이터 저장 완료까지 시간 (지연 시간 포함)

  • 지연 시간 : 주소를 해독 하는데 걸린 시간 + 데이터 읽는데 걸린 시간

I/O 장치 (cpu와 io 장치)

접속 경로 : cpu → 시스템 버스 → io 장치 제어기 → io 장치

I/O 장치 제어기

  • cpu로부터 명령을 받아 해당 io장치 제어, 데이터를 이동하며 명령 수행
  • 상태 레지스터 : io의 현재 상태를 나타내는 비트들을 저장한 레지스터 ex) 준비상태(RDY) 비트, 데이터 전송확인(ACK) 비트 등
  • 데이터 레지스터 : cpu와 io장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터

ex) 키보드

키보드 키 누름 → 아스키코드가 키보드 제어기의 데이터 레지스터에 저장 및 상태 레지스터 In_RDY비트가 1로 세트 → cpu가 제어기로부터 in-rdy비트 검사 → 세트 시 읽음, 아닐 시 대기.


전체 구성 사진


컴퓨터 구조의 발전 과정

부품 : 릴레이 → 트랜지스터 → 반도체 집적회로(IC)

컴퓨터

  1. 1642, 프랑스 - Blasie Pascal (덧셈, 뺄셈), 최초의 컴퓨터
  2. 1671, 독일 - Gottfried Leibniz (덧셈, 뺄셈, 곱셈, 나눗셈)
  3. 19세기 초, 영국 - Charles Babbage의 Difference Engine (덧셈, 뺄셈)
  4. 19세기 초, 영국 - Charles Babbage의 Analytical Engine (프로그래밍 언어 사용, 실행 순서 변경 가능, 모든 수학 연산)
  5. 1940년대 초, 펜실바니아 대학 - ENIAC (진공관을 사용한 최초의 전자식 컴퓨터, 저장, 변경 불가능)

폰노이만의 개념 (stored - program : 프로그램 내장)

애니악의 수동식 프로그래밍 문제 해결을 목적으로 도입

  • 1945년에 폰 노이만이 제안, 튜링도 비슷한 시기에 제안
  • 2진수 체계, 프로그램과 데이터를 내부에 저장
  • i/o장치는 제어 장치에 의해 작동

IAS 컴퓨터

구성 요소 : 프로그램 제어 유닛, 산술논리연산장치(ALU), 주기억장치, 입출력장치

특징

  • 범용 목적의 프로토타입 컴퓨터, sotred-program 컴퓨터
  • 주기억장치로부터 한번에 2개씩 명령어 인출
    • 하나는 즉시 프로그램 제어 유닛으로 보내서 실행
    • 다른 하나는 명령어 버퍼에 저장 → 다음 명령어 실행 사이클에서 실행
  • 명령어 선인출과 같은 개념

주요 컴퓨터 부품의 발전 경위

트랜지스터

  • 1세대 전자식 컴퓨터의 진공관을 대체한 전자 부품
  • IC(직접회로) : 수만 개 이상의 트랜지스터들을 하나의 반도체 칩에 집적시킨 전자 부품

무어의 법칙 : 반도체 칩, 소자의 밀집도가 증가하는 것(매년 2배씩 증가) → 반도체 기술이 발전 중


컴퓨터 발전 동향

개인용 컴퓨터

  • 슈퍼 스칼라 구조(명령어 파이프라인을 중복으로 사용)
  • 분기 예측, 동적 실행기법 등이 사용, 멀티미디어 pc로 발전

워크스테이션

  • 고속 그래픽 처리 하드웨어
  • 유닉스,리눅스 risc 프로세스 사용

슈퍼 미니 컴퓨터

  • 서버

메인 프레임 컴퓨터

  • 대규모 서버, 데이터 저장관리

슈퍼컴퓨터

  • 대규모 과학, 시뮬레이션에서 사용
  • 처리속도, 용량이 월등힘

임베디드 컴퓨터 (내장 컴퓨터)

  • 기계장치/전자 장치들의 내부에 포함되어 그 장치들의 동작을 제어
  • 8비트 소형 ~ 32비트 고성능 까지 다양
  • ex) 가전제품, 컴퓨터 주변기기, 비디오 게임기 등

'학교 공부 정리 > 컴퓨터 구조' 카테고리의 다른 글

2.4 명령어 세트  (0) 2022.10.27
2.1 ~ 2.3 CPU의 구조와 기능  (0) 2022.10.26

+ Recent posts