컴퓨터구조론#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차 기억장치라고도 함
- 주기억장치(Main Memory) - RAM, ROM
- 입출력 장치
- 입력장치(input device)와 출력장치(output device)의 통칭
- 사용자-컴퓨터 간의 상호작용(interaction)을 위한 장치들
- CPU는 해당 장치 제어기(device controller)를 통하여 동작 제어
- 주변 장치라고도 부름
- 중앙처리장치(Central Processing Unit : CPU)
정보의 표현과 저장
- 컴퓨터 정보 : 2진수 비트들로 표현된 프로그램 코드와 데이터
- 프로그램 코드
- 기계어(machine language)
- 기계 코드라고도 함
- 컴퓨터 하드웨어 부품들이 이해할 수 있는 언어로서, 2진 비트들로 구성
- 어셈블리 언어(assembly language)
- 고급 언어와 기계어 사이의 중간 언어
- 어셈블러(assembler)로 번역되며, 기계어와 일대일 대응
- 니모닉스 언어임
- 보면 어떤 행동을 하는지 연상이 되는 코드
- ex : ADD / MOVE
- 고급 언어(high-level language)
- 영문자와 숫자로 구성되어 사람이 이해하기 쉬운 언어
- C, C++, PASCAL, FORTRAN, JAVA 등
- 컴파일러(compiler)를 이용하여 기계어로 번역
- 기계어(machine language)
- 컴파일러
- 고급 언어로 된 프로그램을 기계어로 번역해주는 소프트웨어
- 어셈블러
- 어셈블리 프로그램을 기계어 프로그램으로 번역하는 소프트웨어
- 니모닉스(mnemonics)
- 어셈블리 명령어가 지정하는 연산을 가리키는 알파벳 기호
- ‘LOAD’, ‘ADD’, ‘STOR’ 등
- 기계 명령어의 형식
- 연산 코드(op code)
- CPU가 수행할 연산을 지정해주는 비트들
- 비트 수 = ‘3’이라면, 지정될 수 있는 연산의 최대 수 : 2^(3) = 8개
- +, -, *, / 등
- 오퍼랜드(operand)
- 연산에 사용될 데이터 혹은 그것이 저장되어 있는 기억장치 주소
- 비트 수 = ‘5’라면, 주소를 지정할 수 있는 기억 장소의 최대 수 : 2^(5) = 32개
- 연산 코드(op code)
- 프로그램 코드와 데이터의 기억장치 저장
- 프로그램 코드(명령어)와 데이터는 지정된 기억 장소에 저장
- 단어(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)
- 발전 과정에서 개선된 특성들 :
- 처리속도 향상
- 저장용량 증가
- 크기 감소
- 가격 하락
- 신뢰도 향상
- 초기 컴퓨터들의 근본적인 설계 개념과 동작 원리가 현대의 컴퓨터들과 거의 같음