컴퓨터구조 1강 - Introduction

soo·2022년 7월 12일
0

컴퓨터구조

목록 보기
1/6

1.1 컴퓨터 구조의 범위

📍 컴퓨터

  • 계산(compute)하는 기계.
  • 프로그램을 실행하는 기계

📍 프로그램

  • sequence of instructions
  • 명령어들이 의미 있는 순서대로 나열된 것

📍 명령어

  • 프로그래머가 컴퓨터에게 실행을 지시할 수 있는 최소의 작업 단위
  • 컴퓨터가 프로그래머의 지시를 받아 실행할 수 있는 최소의 작업 단위

📍 계층 구조로 본 컴퓨터 시스템

구분구성분류
응용 소프트웨어고급언어 프로그램소프트웨어
어셈블리 프로그램어셈블리 프로그램
하드웨어프로그래머 모델(프로세서 구조, 명령어 집합)컴퓨터 구조
컴퓨터 조직(중앙처리장치, 기억장치, 입출력장치)
논리회로
반도체 기술

계층대상
논리회로2진수, 부울대수, 조합 논리회로, 순차 논리회로
컴퓨터 조직중앙처리장치, 기억장치, 입출력장치, 시스템 버스
프로그래머 모델프로세서 구조, 기억장치 구조, 명령어 집합

반도체 기술과 논리회로

📍 반도체 기술

  • 전기적으로 동작하는 스위칭 소자(트랜지스터) 제공
  • 스위칭 소자로 컴퓨터의 기본 소자인 논리게이트(Logic gate) 구현

📍 논리회로

  • 물리 특성을 논리 개념으로 분리
  • 부울 대수: 컴퓨터 동작을 참/거짓(2진수)로 표현
  • 논리 게이트: 논리회로의 동작을 표현하는 기본 논리 소자
    개념적으로 보면 on(1), off(0)의 개념

📍 컴퓨터 구성 요소

  • 중앙처리장치, 기억장치, 입출력장치
  • 시스템 버스(이들을 묶음)

📍 컴퓨터 조직

  • 구성 요소의 세부 사항 및 물리적 연결

📍 프로그래머 모델

  • 컴퓨터 조직 중에서 프로그램을 작성할 수 있도록 프로그래머에게 제공되는 부분
    자동차로 치면 운전석에서 제공되는 기능들
  • 명령어 집합, 레지스터 구조, 기억장치 구조
  • 명령어 집합: 컴퓨터가 해석하고 실행할 수 있는 명령어들의 모임. 이것들이 모이면 프로그램이 됨
    하드웨어와 소프트웨어를 연결하는 인터페이스

📍 명령어

  • 컴퓨터가 실행할 수 있는 가장 기본적인 작업 단위
  • 기계어 또는 기계 코드: 2진수 표현 (어셈블리어: 문자로 표현)

📍 소프트웨어 계층 분류(언어적 차원)

  • 어셈블리 프로그램: 어셈블리 언어로 작성한 프로그램 👉 기계 의존적
  • 고급 언어 프로그램: C, Java와 같은 고급 프로그래밍 언어로 작성한 프로그램 👉 컴파일러가 어셈블리언어(기계어)로 번역 👉 기계 독립적

📍 소프트웨어 계층 분류(기능 단위)

  • 시스템 프로그램: 외부에서 컴퓨터를 사용할 수 있도록 도와주는 소프트웨어
    운영체제(OS), 컴파일러, 파일 탐색기 등
  • 응용 프로그램: 사용자가 문제 해결을 위하여 사용하는 소프트웨어
- 사무용, 비즈니스용
    오피스 프로그램, 웹브라우저, 게임 등

1.2 논리회로 학습 범위

  • 디지털 시스템 = 제어장치 + 처리장치
  • 제어장치: "어떤 동작을 하라"고 지시하는 장치. 이 명령을 받아서 처리 장치에 제어 신호 만들어서 제공.
    상태 제어하는 순차논리회로, 제어 신호 생성하는 조합논리회로
  • 처리장치: 처리할 데이터를 입력 받아서 계산한 다음 처리한 결과 출력.
    처리했다 = 계산
    데이터 저장하는 순차논리회로. 계산하는 조합논리회로
  • 처리장치가 제어장치에는 상태정보를 제어장치로 줄 수 있음.
  • 제어장치, 처리장치 양쪽에 모두 클럭(두 장치에 동작하는 시간을 맞추는 역할) 제공
    둘 다 순차+조합논리회로
  • 이 둘을 합치면 컴퓨터에서는 중앙처리장치가 됨
구분조합 논리회로순차 논리회로
기본 소자논리 게이트플립플롭
동작 표현진가표, 논리식, 논리회로도상태도, 상태표, 논리회로도
설계 도구간소화, 하드웨어 시뮬레이션간소화, 하드웨어 시뮬레이션
빌딩 블록가산기, 비교기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서레지스터, 시프트 레지스터 카운터
  • 빌딩블록: 어떤 기능 단위의 부품
    다 만들어진 부품을 이용해서 제어장치/처리장치의 구성요소를 만드는 것

1.3 컴퓨터 구성 요소

📍프로그램 내향형 구조(Von Neumann 구조)

  • 프로그램과 데이터를 기억장치에 저장해두고, 명령어를 하나씩 중앙처리장치로 가져와 실행하는 방식
  • 처음에는 계산기를 기계식으로도 만들었지만 폰 노이만이라는 사람이 1946년에 프로그램 내장형 구조 제안. 이후 모든 컴퓨터는 프로그램 내장형 구조로 만들어지고 있음 ➡️ 이것을 폰 노이만 구조라고도 함 (🚨매우 중요🚨)

📍 컴퓨터 시스템 구성요소

  • 중앙처리장치 / 기억장치 ➡️ 컴퓨터 내부
  • 입출력 장치 ➡️ 컴퓨터 외부. 컴퓨터에 프로그램과 데이터 공급. 그것들은 기억 장치들로 들어감.
    기억 장치의 프로그램(명령어들이 일렬로 나열된 것)을 중앙처리장치가 한 개씩 가져와서 실행하는 구조 (🚨매우 중요🚨)

중앙처리장치

📍 제어 및 연산

  • 제어장치: 명령어를 해석하고 구성 요소들을 제어하는 신호를 만듦
  • 처리장치: 제어장치의 지시에 따라 명령어 실행 => 결국은 데이터를 처리하는 일
  • 레지스터: 중앙처리장치 내부에 있는 기억장치. 처리하려는 데이터를 잠시 저장
  • 연산장치: 데이터 계산(산술연산, 논리연산)
  • 산술연산: 사칙연산
  • 논리연산: AND, OR…

📍 기억장치

  • (외부에서 공급되는) 프로그램과 데이터 저장
    중앙처리자치에서 쓰이는 프로그램과 데이터 저장. 중앙처리장치는 처리하고서 다시 기억장치에 데이터 저장

📍 입출력장치

  • 컴퓨터와 사용자 인터페이스.
    프로그램, 데이터를 컴퓨터 안으로 넣는 방법

📍 시스템 버스

  • 컴퓨터 구성 요소 간 데이터 전달 경로(data path)

1.4 컴퓨터 발달 과정

  • 컴퓨터는 컴퓨터를 만드는 하드웨어 소자에 따라 분류
  • 1971년에 중앙처리장치를 1개의 칩으로 만든 마이크로 프로세서가 개발됨. 그 이후 현대식 컴퓨터가 획기적으로 발달했다.

1.4.1 세대별 컴퓨터 분류

📍 소자에 따른 분류

  • 기계식(1600년대): 산술 계산용. 유럽에서 세계 여러 대륙 항해하던 시대에 무역 발달에 따라 세금 계산이 필요해져서 계산 빨리 하기 위한 기계식 계산기들이 만들어지기 시작

  • 1940년대 이후 전자식 컴퓨터 👉 스위칭 소자(회로 on/off)를 무엇으로 만들었느냐에 따라 세대 분류

  • 1세대 진공관: 1946년 애니악. 전자식 컴퓨터의 시작
    🖐 진공관: 큰 거 주먹 사이즈, 작은 거 손가락

  • 2세대 트랜지스터: 자기 코어 기억장치, 초기 고급 언어 도입
    🖐 진공관에 비해 1개의 크기가 1cm 이하(0.5cm)라 굉장히 작음

  • 3세대 직접회로(IC; Integrated Circuit): 반도체 기억장치, 운영체제
    🖐 직접회로: 트랜지스터 여러 개를 1개의 칩으로 만든 것 => 컴퓨터 더 작아짐
이 시기 RAM, ROM 만들어지고 운영체제 도입

  • 4세대 대규모 직접회로(VLSI): 마이크로 프로세서 (1971년)
    🖐 VLSI(Very Large Scale Integrated Circuit): 칩 1개에 10만 개 이상~ 100만 개 정도의 스위칭 소자를 넣은 것

  • 1945년 폰 노이만이 내장형 프로그램 구조 제안
    현대 전자식 컴퓨터에 채용돼 있음

1.4.2 마이크로 프로세서 이후 (1971 ~)

📍 무어의 법칙 (1965)

  • 반도체 직접회로의 성능이 18개월마다 2배로 증가한다.
  • 프로세서가 포함하고 있는 트랜지스터의 수 => 세로축이 로그 스케일 => 1칸마다 10배 증가
    (위 선 => 트랜지스터. 아래 선 => 인텔 계열 프로세서에 실제로 사용된 프로세서 수. 현재까지 24개월마다 트랜지스터 수 *2. 성능 대략 2배 증가한다고 볼 수 있음)

📍 마이크로 프로세서

  • 칩 1개에다 중앙처리장치를 구현한 것
    마이크로 — 10^(-6)
    프로세서 — 처리하는 장치
  • 1개의 칩으로 만든 건 인텔에서 만든 4비트 프로세서가 최초. 이때부터 컴퓨터 획기적 발달.
  • 작은 칩 안에 중앙처리장치(코어), 기억장치, 주변 장치가 다 들어감 ➡️ 제어용 장치 = 마이크로 제어기
  • 마이크로프로세서 출현: Intel 4004 (1971)
    4비트 프로세서 ➡️ 계산기
  • 1980년대 중반까지 (처리 용량 개선)
    반도체 기술의 발달
    계열(family): 버스 폭, 연산기 처리 능력 강화, 기억장치 용량 증가
  • 연산기: 8비트 ➡️ 16비트 ➡️ 32비트…
    상향 호환성(upward compatibility) 유지
    8비트 프로세서의 기능을 16비트 프로세서가 다 처리하면서 부가 기능…
  • 한계 도달. 32-64비트 프로세서가 만들어지고 나니 굳이 128-256 프로세서 만들 이유 없어짐
    ➡️ 내부를 한번 개선해보자!
  • 1980년대 중반 이후 (조직 개선)
    프로세서 내부 조직 변경
    캐시 기억장치, 가상 기억장치, 명령어 파이프라인
    RISC형 프로세서(1990 중반 이후), 슈퍼스칼라 프로세서(2000 이후)
  • 2000년대 이후: 멀티 코어 프로세서 등장
  • 전반적으로 1980년에 만들어진 구조는 지금까지도 쓰이고 있지만 조금씩 조직 개선된 것이 1980년대 중반 이후.
profile
기록+기록

0개의 댓글