컴퓨터구조론#2

LeeMir, 15 March 2021

1장 - 컴퓨터시스템 개요


컴퓨터의 기본 구조
  • 컴퓨터 시스템의 구성
    • 응용 소프트웨어(Application Software)
    • 시스템 소프트웨어(System Software)
    • 하드웨어(Hardware)
  • 하드웨어(Hardware)
    • 컴퓨터 정보들의 전송 통로를 제공해 주고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들
    • 메인보드
    • CPU 및 GPU 칩
    • 주기억장치 모듈
    • 확장 보드 : 사운드 카드 등
    • 전원공급장치
    • 광 저장장치 : CD_ROM, DVD
    • 하드 디스크, SSD
    • 키보드
    • 마우스
    • 디스플레이 모니터
  • 소프트웨어(Software)
    • 정보들이 이동하는 방향과 정보 처리를 종류를 지정해주고, 그러한 동작들이 일어나는 시간을 지정해주는 명령(Command)들의 집합
    • 시스템 소프트웨어(System Software) : OS(Windows 10, Unix, Linux, 등), 각종 유틸리티 프로그램들(프린터 드라이버 등)
    • 응용 소프트웨어(Application Software) : 워드프로세서, 웹브라우저, MS-Excel, 등
  • 컴퓨터의 기능 : 프로그램 코드(기계어)를 정해진 순서대로 수행
    • 데이터를 읽어서(read), 처리(processing)하고, 저장(store)한다
  • 주요 구성요소들 : 중앙처리장치(CPU), 기억장치(Memory), 입출력장치(I/O Devices)
    • 중앙처리장치(Central Processing Unit : CPU)
      • 프로세서(Processor)
      • ‘프로그램 실행’과 ‘데이터 처리’라는 중추적인 기능의 수행을 담당하는 요소
    • 기억장치
      • 주기억장치(Main Memory) - RAM, ROM
        • CPU 가까이 위치하며, 반도체 기억장치 칩들로 구성
        • 고속 액세스
        • 가격이 높고 면적을 많이 차지 => 저장 용량의 한계
        • 영구 저장 능력이 없기 때문에, 일시적 저장장치로만 사용
        • RAM은 휘발성, ROM은 비휘발성
      • 보조저장장치(Auxiliary Storage Device) - 하드디스크, 플래시 메모리, SSD, CD-ROM, 등
        • 2차 기억장치(Secondary Memory)
        • 저장 밀도가 높고, 비트 당 가격이 낮음
        • 읽기/쓰기 속도가 느림
        • 반영구 저장 능력이 있음
        • CD의 경우 쓰기가 마음대로 되지 않는 특수한 장치이기 때문에 3차 기억장치라고도 함
    • 입출력 장치
      • 입력장치(input device)와 출력장치(output device)의 통칭
      • 사용자-컴퓨터 간의 상호작용(interaction)을 위한 장치들
      • CPU는 해당 장치 제어기(device controller)를 통하여 동작 제어
      • 주변 장치라고도 부름
정보의 표현과 저장
  • 컴퓨터 정보 : 2진수 비트들로 표현된 프로그램 코드와 데이터
  • 프로그램 코드
    • 기계어(machine language)
      • 기계 코드라고도 함
      • 컴퓨터 하드웨어 부품들이 이해할 수 있는 언어로서, 2진 비트들로 구성
    • 어셈블리 언어(assembly language)
      • 고급 언어와 기계어 사이의 중간 언어
      • 어셈블러(assembler)로 번역되며, 기계어와 일대일 대응
      • 니모닉스 언어임
        • 보면 어떤 행동을 하는지 연상이 되는 코드
        • ex : ADD / MOVE
    • 고급 언어(high-level language)
      • 영문자와 숫자로 구성되어 사람이 이해하기 쉬운 언어
      • C, C++, PASCAL, FORTRAN, JAVA 등
      • 컴파일러(compiler)를 이용하여 기계어로 번역
  • 컴파일러
    • 고급 언어로 된 프로그램을 기계어로 번역해주는 소프트웨어
  • 어셈블러
    • 어셈블리 프로그램을 기계어 프로그램으로 번역하는 소프트웨어
    • 니모닉스(mnemonics)
      • 어셈블리 명령어가 지정하는 연산을 가리키는 알파벳 기호
      • ‘LOAD’, ‘ADD’, ‘STOR’ 등
  • 기계 명령어의 형식
    • 연산 코드(op code)
      • CPU가 수행할 연산을 지정해주는 비트들
      • 비트 수 = ‘3’이라면, 지정될 수 있는 연산의 최대 수 : 2^(3) = 8개
      • +, -, *, / 등
    • 오퍼랜드(operand)
      • 연산에 사용될 데이터 혹은 그것이 저장되어 있는 기억장치 주소
      • 비트 수 = ‘5’라면, 주소를 지정할 수 있는 기억 장소의 최대 수 : 2^(5) = 32개
  • 프로그램 코드와 데이터의 기억장치 저장
    • 프로그램 코드(명령어)와 데이터는 지정된 기억 장소에 저장
    • 단어(word) 단위로 저장
      • 단어 : 각 기억 장소에 저장되는 정보의 기본 단위로서, CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹
      • 단어 길이의 예 : 8비트, 32비트, 64비트, 128비트
      • 주소지정 단위 : 단어 단위 혹은 바이트(byte) 단위
시스템의 구성
  • CPU와 기억장치의 접속
    • 시스템 버스
      • CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로
      • 기본 구성
        • 주소 버스(단방향성)
          • CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합
          • 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정
        • 데이터 버스(양방향성)
          • CPU가 기억장치 혹은 I/O 장치 사이에 데이터를 전송하기 위한 신호 선들의 집합
          • 데이터 선의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정
        • 제어 버스(양방향성)
          • CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합
          • 기억장치 읽기(memory read) 신호, 기억장치 쓰기(memory write) 신호를 전송
    • 기억장치 읽기 동작
      • CPU가 기억장치 주소를 주소 버스를 통하여 보내는 동시에, 읽기 신호를 활성화
      • 일정 지연 시간이 경과한 후에 기억장치로부터 읽혀진 데이터가 데이터 버스 상에 실리고, CPU는 그 데이터를 버스 인터페이스 회로를 통하여 읽음
      • 기억장치 읽기 시간 : 주소를 발생한 시간부터 기억장치의 데이터가 CPU에 도착할 때까지의 시간
    • 기억장치 쓰기 동작
      • CPU가 데이터를 저장할 기억 장소의 주소와 저장할 데이터를 각각 주소 버스와 데이터 버스를 통하여 보내는 동시에, 쓰기 신호를 활성화
      • 기억장치 쓰기 시간 : CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간
  • CPU와 I/O 장치의 접속
    • 필요한 버스 및 제어 신호
      • 주소 버스
      • 데이터 버스
      • 제어 신호 : I/O 읽기 신호, I/O 쓰기 신호
    • 접속 경로 : CPU <-> 시스템 버스 <-> I/O 장치 제어기 <-> I/O 장치
    • I/O 장치 제어기
      • 기능 : CPU로부터 I/O 명령을 받아서, 해당 I/O 장치를 제어하고, 데이터를 이동함으로써 명령을 수행하는 전자회로 장치
      • (예 : 키보드 제어기, 프린터 제어기)
      • 상태 레지스터
        • I/O 장치의 현재 상태를 나타내는 비트들을 저장한 레지스터
        • 준비 상태(RDY) 비트, 데이터 전송확인(ACK) 비트, 등
      • 데이터 레지스터
        • CPU와 I/O 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터
  • CPU와 보조저장장치의 접속
    • 보조저장장치들도 각 장치를 위한 제어기를 통하여 키보드나 프린터와 유사한 방법으로 접속
      • 차이점 : 데이터 전송 단위가 다름(보조저장장치는 블록 단위로 전송함)
컴퓨터 구조의 발전 과정(중요도 낮음)
  • 주요 부품들의 발전 과정
    • 릴레이 => 진공관 => 트랜지스터 => 반도체 집적회로(IC)
    • 발전 과정에서 개선된 특성들 :
      • 처리속도 향상
      • 저장용량 증가
      • 크기 감소
      • 가격 하락
      • 신뢰도 향상
  • 초기 컴퓨터들의 근본적인 설계 개념과 동작 원리가 현대의 컴퓨터들과 거의 같음