컴퓨터 시스템의 구성

1. 응용 소프트웨어 - 워드, 웹브라우저 (소프트웨어)

2. 시스템 소프트웨어 - OS (소프트웨어)

3. 하드웨어 

 

firmware(펌웨어) = 소프트웨어 + 하드웨어

 

컴퓨터의 기능 :프로그램 코드를 정해진 순서대로 수행

- 데이터를 읽어서(read), 처리(processing)하고, 저장(store)한다.

 

주요 구성요소들 : 중앙처리장치(CPU), 기억장치(Memory), 입출력장치(I/O Devices)

 

중앙처리장치(Central Processing Unity : CPU)

- 프로세서

- 프로그램 실행과 데이터 처리라는 중추적인 기능의 수행을 담당

기억장치

1. 주 기억장치(main memory) : RAM, ROM, CASH

- CPU 가까이 위치하며, 반도체 기억장치 칩들로 구성

- 고속 액세스

- 가격이 높고 면적을 많이 차지 -> 저장 용량의 한계

- 영구저장기능 X -> 일시적 저장장치로만 사용

2. 보조기억장치 (auxiliary storage device)

- 2차 기억장치

- 저장 밀도 높고, 비트 당 가격이 낮음

- 읽기/쓰기 속도가 느림

- 영구저장기능이 있다. -> 하드 디스크, 플래시 메모리, SSD, CD-ROM

3. 입출력 장치(I/O device)

- 입력장치와 출력장치의 통칭

- 사용자-컴퓨터 간의 상호작용을 위한 장치들

- CPU는 해당 장치 제어기를 통하여 동작 제어

- 주변장치라고도 부름

 

정보의 표현과 저장

- 컴퓨터 정보는 2진수 비트들로 표현된 프로그램 코드와 데이터다.

프로그램 코드

1. 기계어 (low-level language)

- 기계 코드라고도 함

- 컴퓨터 하드웨어들이 이해할 수 있는 언어로써, 2진 비트들로 구성

2. 어셈블리 언어

- 고급언어와 기계어 사이의 중간 언어

- 어셈블리로 번역된어 기계어와 일대일 대응

3. 고급 언어

- 영문자와 숫자로 구성되어 사람이 이해하기 쉬운 언어

- C, C++, JAVA 등

- 컴파일러를 이용하여 기계어로 번역

 

프로그램 언어의 번역 과정 Z=X+Y

- LOAD A, X : 기억장치 X번지 내용을 읽어 레지스터 A에 적재

- ADD A, Y : 기억장치 Y번지 내용을 읽어서 레지스터 A에 적재된 값과 더해 다시 A에 적재

- STOR Z, A : 그 값을 기억장치 Z번지에 저장

 

프로그램 언어 번역 소프트웨어

1. 컴파일러 

- 고급언어 프로그램을 기계어 프로그램으로 번역하는 소프트웨어

2. 어셈블리

- 어셈블리 프로그램을 기계어 프로그램으로 번역하는 소프트웨어

- 니모닉스 : 어셈블리 명령어가 지정하는 연산을 가리키는 알파벳 번호

- LOAD, ADD, STOR 등

 

기계 명령어의 형식

1. 연산 코드(op code)

- CPU가 수행할 연산을 지정해 주는 비트들

- 비트 수 = '3' 이라면, 지정될 수있는 연산은 총 8가지(2^비트수)

2. 오퍼랜드(operand)

- 연산에 사용될 데이터 혹은 그것이 저장되어 있는 기억장치 주소

- 비트 수='5'라면 주소지정할 수 있는 기억장소의 최대 수 : 32개(2^비트수)

 

프로그램 코드와 데이터의 기억장치 저장

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

- 단어 단위로 저장

-> 단위란 각 기억 장소에 저장되는 정보의 기본 단위 이며, CPU에 의해 한 번에 처리 될 수있는 비트들의 그룹이다.

-> 단어 길이의 예시 : 8비트, 32비트, 64비트

- 주소 지정 단위 : 단어 단위 혹은 바이트 단위

 

시스템 버스

- CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로(공유 전송매체)

- 기본구성

1. 주소 버스

- CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합

- 주소 선의 수는 CPU와 접속될 수있 는 최대 기억장치 용량을 결정

ex) 주소 버스 비트 수 =16비트 라면, 최대 2^(비트수)개의 기억 장소들의 주소지정 가능

2. 데이터 버스

- CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합

- 데이터 선의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정

ex) 데이터 버스 폭 = 32비트라면 CPU와 기억장치 간의 데이터 전송은 한 번에 32비트씩 가능

3. 제어 버스

- CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합

ex) 기억장치 읽기/쓰기 신호, I/O 읽기/쓰기 신호, 인터럽트 신호, 버스 제어 신호

 

CPU와 시스템 버스 간의 접속

1. 주소 버스 : 단방향성

- 주소는 CPU로부터 기억장치 혹은 I/O장치들로 보내지는 정보다

2. 데이터 버스, 제어 버스 : 양방향성

- 읽기와 쓰기 동작을 모두 지원

 

CPU와 기억장치 간의 접속

- 필요한 버스 및 제어신호

1. 주소 버스

2. 데이터 버스

3. 제어 신호 : 기억장치 읽기 신호, 기억장치 쓰기 신호

-> 기억장치 쓰기 동작 : CPU가 데이터를 저장할 기억 장소의 주소와 저장할 데이터를 각각 주소 버스와 데이터 버스를 통하여 보내는 동시에, 쓰기 신호 활성화

-> 기억장치 쓰기 시간 : CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간

-> 기억장치 읽기 동작 : CPU가 기억장치 주소를 주소 버스를 통하여 보내는 동시에, 읽기 신호를 활성화, 일정 지연 시간이 경과한 후에 기억장치로부터 읽혀진 데이터가 데이터 버스 상에 실리고, CPU는 그 데이터를 버스 인터페이스 회로를 통하여 읽음

-> 기억장치 읽기 시간 : 주소를 발생한 시간부터 기억장치의 데이터가 CPU에 도착할 때까지의 시간 

 

CPU와 I/O장치의 접속

- 필요한 버스 및 제어 신호

1. 주소 버스

2. 데이터 버스

3. 제어 신호

- 접속 경로 : CPU <-> 시스템 버스 <-> I/O 장치 제어기 <-> I/O 장치

- 제어기에는 상태 레지스터, 데이터 레지스터가 있다.

상태 레지스터 : O/O 장치의 현재 상태를 나타내는 비트들을 저장한 레지스터

-> 준비 상태(RDY)비트, 데이터 전송확인(ACK)비트 등

데이터 레지스터 : CPU와 I/O 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터

키보드 제어기

-> 키보드의 키를 누름 -> 해당 키의 ASCII 코드가 키보드 제어기에 데이터 레지스터에 저장, 동시에 상태 레지스터의 In_RDY비트가 1로 세팅 -> CPU에서 키보드 제어기로부터 상태 레지스터를 읽어 In_RDY 비트가 세트 되었는지 검사하며, 만약 세트 되지 않았다면 될 때까지 확인-> 세트 되었다면 데이터 레지스터의 내용 읽음

 

프린터 데이터 출력

- CPU가 프린터 제어기 상태 레지스터를 읽어 Out_RDY비트 검사->세트 되었는지 검사하는데 세트 안되면 될 때까지 대기, 되었다면 프린트할 데이터를 프린터 제어기의 데이터 레지스터에 저장(데이터 블록 전체를 제어기 내의 데이터 기억장치에 저장하는 것도 가능 : spooling)-> 프린트 제어기는 데이터 레지스터의 내용을 프린터로 보내고 프린터의 하드웨어 제어하면서 인쇄 동작 수행 

 

보조 저장장치들도 키보드, 프린터와 유사한 방법으로 접속

차이점 : 데이터 전송 단위 -> 키보드는 바이트 단위 전송, 보조 저장장치는 블록(512,1024,4096 바이트)단위로 전송

-> 제어기 내에 한 블록 이상을 임시 저장할 수 있는 데이터 기억 장치(버퍼) 필요

 

컴퓨터 구조의 발전 과정

1. 주요 부품들의 발전 과정

- 릴레이 -> 진공관 -> 트랜지스터 -> 반도체 집적회로(IC)

- 발전 과정에서 개선된 특성들 : 처리속도 향상, 저장용량 증가, 크기 감소, 가격 하락, 신뢰도 향상

- 근복적인 설계 개념과 동작 원리는 초기 컴퓨터와 현대 컴퓨터가 거의 비슷함.

 

애니악(ENIAC)

- 1940년대 초 모클리, 에커트가 개발

- 최초의 전자식 컴퓨터

- 문제점 : 프로그램 저장 및 변경 불가능

- 폰 노이만의 설계 개념 발표(프로그램과 데이터를 내부에 저장, 2진수 체계 사용)

 

IAS 컴퓨터

- 1946~1952년 폰 노이만이 개발

- 주요 구성요소 : 프로그램 제어 유니트(명령어 인출/해독), 산술논리연산장치, 주기억장치, 입출력장치

-> IAS 컴퓨터 구조 : 폰 노이만 아키텍처

 

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

1. 트랜지스터

- 초기(1세대) 전자식 컴퓨터 핵심 부품인 진공관을 대체한 전자 부품

- 진공관보다 작고 싸며, 더 적은 열 발산

- 제 2세대 캠퓨터의 핵심 부품

- 초기 컴퓨터는 약 1000개의 트랜지스터 들로 구성

2. 집적 회로

- 수만 개 이상의 트랜지스터들을 하나의 반도체 칩에 집적시킨 전자 부품

-> 제 3세대 컴퓨터들의 핵심 부품

 

집적도에 따른 IC의 분류

1. SSI(Small Scale IC)

- 수십 개의 트랜지스터들이 집적되는 소규모 IC

- 최근에는 주로 기본적인 디지털 게이트들을 포함하는 칩으로만 사용됨

2. MSI(Medium Scale IC)

- 수백 개의 트랜지스터들이 집적되는 IC

- 카운터, 해독기 또는 시프트 레지스터와 같은 조합 회로나 순차 회로를 포함하는 칩

3. LSI(Large Scale IC) : 고밀도 4세대

- 수천 개의 트랜지스터들이 집적되는 대규모 IC

- 8비트 마이크로프로세서 칩이나 소규모 반도체 기억장치 칩

4. VLSI(Very Large Scale IC)

- 수만 내지 수십만 개 이상의 트랜지스터들이 집적되는 초대규모 IC

- 마이크로프로세서 칩들과 대용량 반도체 기억장치 칩

5. ULSI(Ultra Large Scale IC)

- 수백만 개 이상의 트랜지스터들이 집적되는 32비트급 이상 마이크로프로세서 칩들과 수백 메가비트 이상의 반도체 기억장치 칩들 및 앞으로 출현할 고밀도 반도체 칩들을 지칭하기 위한 용어로 VVLSI라고도 불린다.

 

IC 사용에 따른 이점

- 전기적 통로가 짧아짐 -> 동작 속도 크게 증가

- 컴퓨터 크기 감소

- 칩 내부의 회로들 간의 상홎연결 : 부품 신뢰도 향상

- 전력소모 감소 및 냉각장치의 소형화

- 컾뮤터 가격 하락

- VLSI의 출현으로 개인용 컴퓨터가 개발

 

개인용 컴퓨터

- 특징 : 소형, 저가, 성능은 수십 년전의 대형 메인프레임 컴퓨터 성능을 능가

- 주요 발전 동향

1. 성능이 개선된 새로운 마이크로프로세서 등장에 따라 성능은 계속 향상

2. 8비트, 16비트, 32 비트 CPU 사용으로 단어 길이 증가 (63비트 단위 데이터 처리 및 기억장치 주소 사용 피시도 출시)

3. 프로세서가 다수 명령어 실행 유니트들 혹은 CPU코어들을 포함시키는 슈퍼 스칼라, 듀얼코어, 멀티코어 구조로 발전

4. 칩 집적도 놀라가며 속도, 신뢰도 향상

5. GPU를 계산 보조장치로 사용하면서 고속 그래픽 처리, 복잡한 과학기술 계산들도 높은 속도로 처리

6. 주기억장치와 보조저장장치의 용량 증가, 종류 다양화

- 종류 : 노트북, 넷북, 포켓 PC , 데스크탑, 태블릿 PC

 

임베디드 컴퓨터

- 내장 컴퓨터라고도 부름(Embedded Computer)

- 8비트부터 32비트 컴퓨터까지 다양

- 최소 비용으로 필요한 만큼 성능 제공

- 실시간 처리

- IoT 및 지능형 로봇의 핵심 요소로 사용

ex) 컴퓨터 주변기기, 모바일폰,  가전제품, 비디오 게임기

 

서버급 컴퓨터 시스템

1. 워크 스테이션

- CPU : 64 비트 마이크로 프로세서

- 고속 그래픽 처리 하드웨어

- OS : UNIX, LINUX

2. 슈퍼미니컴퓨터

- 시스템 구조 : 다중프로세서 구조

- CPU : 20~30개

- 성능 : VAX-11 미니컴퓨터 성능의 수십 배 이상

- OS : UNIX

- 서버급 시스템의 다운사이징화 주도

 

메인프레임 컴퓨터

- 중앙집중식 컴퓨팅을 위한 대형 컴퓨터

- IBM 360, 370계열 -> 최근 보안, 통신기능이 보강된 IBM zEnterprise계열 출현

- 대용량 저장장치

- 고속 I/O처리 능력

- 정부기관, 은행에서 사용

 

슈퍼컴퓨터

- 현존하는 컴퓨터 중 처리 속도, 기억장치 용량이 다른 컴퓨터에 비해 월등한 컴퓨터

- 슈퍼컴퓨터의 연산 기준 -> MFLOPS(메가) 최근은 PFLOPS급

- 대규모 과학 계산 및 시뮬레이션에서 사용

 

구조적 특징에 따른 슈퍼컴퓨터 분류

1. 파이프라인 슈퍼컴퓨터

- 초기 슈퍼컴퓨터 구조

- 연산장치 : 슈퍼파이프라인 구조 이용한 고속 벡터 계산

2. 대규모 병렬컴퓨터

- 상호연결된 수백 혹은 수천 개 이상의 범용 프로세서들로 구성

-> IBM BlueGene/Q 슈퍼 컴퓨터

3. 클러스터 컴퓨터

- 고속LAN, 네트워크스위치에 의해 서로 연결된 PC

- 대형 웹서버 및 슈퍼컴퓨터 설계 개념으로 널리 사용

 

'학교수업' 카테고리의 다른 글

게임공학개론 2주차  (0) 2022.03.16
인공지능개론 2주차  (0) 2022.03.14
윈도우즈프로그래밍 2주차  (0) 2022.03.11
UNIX 1주차  (0) 2022.03.10
게임공학개론 1주차  (0) 2022.03.10

+ Recent posts