[한눈에 보이는 컴퓨터 구조] 1장 컴퓨터 구조 소개

色/공부

2021. 11. 3.

1. 컴퓨터 구조의 범위

1.1. 명령어: 프로그래머가 실행 지시 가능한 최소 작업 단위

1.2. 프로그램: 명령어들이 의미 있는 순서로 나열된 것

1.3. 컴퓨터: 프로그램을 실행하는 기계

1.4. 계층적으로 본 컴퓨터

보라색 부분이 컴퓨터 구조에 해당

응용 소프트웨어
시스템 소프트웨어
프로그래머 모델
(명령어 집합 ISA)
I/O 시스템 CPU 메모리 시스템
논리회로 및 2진수 체계
반도체 기술
(전자 회로)

 

계층 대상
논리회로 부울 대수, 게이트, 조합논리 빌딩블록,
레지스터, 카운터
컴퓨터 조직 중앙처리장치(제어장치, 연산장치),
기억장치, 시스템 버스
프로그래머 모델 레지스터 용도, 주소지정방식,
기억장치 구조, 데이터 형식,
명령어 집합

 

1.5. 논리회로

  • 논리회로: 반도체의 물리적 특성 → 논리적 개념으로 분리하는 역할
    (전압과 전류의 개념에서 탈피하여 참과 거짓의 개념 사용 가능)
  • 부울 대수: 논리회로의 수학적 배경
  • 2진수 체계: 컴퓨터 시스템 이론적 배경
     (부울 대수의 참 거짓 → 1과 0으로 대응)
  • 논리 게이트: 논리 회로의 기본 동작을 표현
  • 조합 논리소자, 순차 논리소자: 컴퓨터를 구성, 논리 게이트들로 구성됨
  • 빌딩 블록: 특별한 기능을 수행하도록 미리 만들어 둔 부품

    조합 논리회로 빌딩 블록 디코더, 인코더,
    멀티플렉서, 연산기
    순차 논리회로 빌딩 블록 레지스터, 카운터


1.6. 컴퓨터 구성 요소

  • 중앙처리장치, 기억장치, 입출력장치
  • 중앙처리장치(CPU): 제어장치 + 연산장치 + 레지스터, 컴퓨터 기능을 수행하는 핵심 요소 
  • 컴퓨터 조직: 아래 구성 요소들의 세부 사항과 서로 간의 물리적인 연결 상태

 

1.7. 프로그래머 모델

  • 프로그래머 모델: 프로그래머가 프로그램을 작성할 수 있도록 제공되는 부분
    명령어 집합, 레지스터의 수 및 용도, 기억장치에 대한 주소지정방식, 기억장치 구성 방식 포함
  • 명령어 집합: 컴퓨터가 제공하는 명령어들의 모임
    하드웨어와 소프트웨어를 연결하는 인터페이스

1.8. 소프트웨어 계층

  • 프로그래머 모델의 상위 단계
  • 기계어: 2진수 코드로 표현된 명령어
  • 어셈블리 언어: 기계어를 프로그래머가 사용하기 쉬운 형태로 변환
    기계어와 일대일 대응, 어셈블러가 기계어로 번역함, 프로그래머 모델에 의존적
  • 고급 언어
    컴파일러가 어셈블리 언어로 번역함, 프로그래머 모델과 독립적 

 


 

2. 컴퓨터의 구성 요소

 

2.1. 중앙처리장치

  • 기억장치에 저장된 명령어들을 하나씩 가져와 의미 해석 & 데이터 처리
  • 제어장치 + 처리장치(레지스터 + 연산장치)

  • 제어장치: 명령어 해석 및 컴퓨터 시스템의 모든 동작 제어하는 제어신호 생성
  • 처리장치: 데이터 처리
  • 레지스터: 연산에 필요한 데이터 및 상태를 잠시 저장하는 기억소자
  • 연산장치: 컴퓨터 내부의 모든 연산 담당

 

2.2. 기억장치

  • 프로그램과 데이터 저장
  • 중앙처리장치와 온라인 연결되어 있어 언제든 명령어와 데이터 가져갈 수 있음
  • 명령어 또한 2진수 코드이므로 결국 데이터의 일종
    → 기억장치는 두 가지 형태의 데이터 저장
    → ① 중앙처리장치가 처리할 명령어, ② 처리할 대상인 데이터

 

2.3. 입출력장치

  • 사용자 혹은 컴퓨터 외부에서 프로그램 또는 데이터를 컴퓨터에게 공급하고 처리 결과를 받아감
  • 컴퓨터의 세 가지 구성 요소 중 하나

 

2.4. 시스템 버스

  • 컴퓨터의 구성 요소를 서로 연결
  • 여러 개의 선으로 구성된 데이터 전달 경로
  • 한 개의 선 = 한 비트의 정보
  • 주소 버스, 데이터 버스, 제어 버스로 구성

 


 

3. 컴퓨터의 발달 과정

3.1. 세대별 컴퓨터 구분

1946년
1세대
에니악
- 전자식
- 진공관
- 10진법
- 내부 기억장치, 프밍 언어 X
1946년
폰 노이만
- 내장형 프로그램
- 컴퓨터는 전자식이어야 한다 주장
- 2진수 주장
- 아직도 전자식 컴퓨터의 기본 구조로 채택
1950년대 중반
2세대
- 진공관을 트랜지스터로 대체
- 주기억장치: 자기코어
- ALGOL, COBOL, FORTRAN 언어
1960년대 중반
3세대
- IC 집적회로: 여러 개의 트랜지스터 하나의 반도체 칩에 구현
- 주기억장치: 반도체 기억장치
- OS 개발
1971년대 ~ 현재
4세대
- LIC 고밀도 집적회로
- 인텔의 마이크로프로세서 개발
- 병렬화 도입
- 1970년대 말 PC 대중화

 

3.2. 무어의 법칙

  • 반도체 집적회로의 성능이 18개월마다 2배로 증가한다는 법칙
  • 실제로 컴퓨터의 성능은 같은 기간에 2배씩 향상, 가격은 반으로 떨어짐

 

3.3. 마이크로프로세서 이후의 컴퓨터 발달 과정

  • 마이크로프로세서(1971): 중앙처리장치의 기능을 한 개의 집 안에 내장한 소자
  • 상향 호환성: 새로운 마이크로프로세서를 개발하며 버전이 낮은 마이크로프로세서의 구조를 그대로 유지 → 새로운 명령어 추가 & 처리 용량 높이면서 이전에 사용하던 프로그램도 그대로 사용할 수 있도록 한 개념

  • 1980년대 이후 하드웨어의 전기적 처리 속도가 한계에 달하며 구조를 변경하는 형태로 발달하기 시작
  • 캐시 기억장치: 기억장치 액세스 속도 개선
  • 가상 기억장치: 기억장치 용량 증대
  • 파이프라인 기법: 여러 명령어 동시 처리
  • RISC형 프로세서: 프로세서 내부 구조 단순화
  • 슈퍼스칼라 프로세서: 한 번에 여러 명령어 처리

  • 마이크로 제어기(1980년대): 중앙처리장치, 주기억장치, 입출력장치 제어를 위한 주변장치를 모두 내장한 칩
  • 마이크로제어기에 들어 있는 중앙처리장치를 '프로세서 코어' 또는 '코어'라고 부름

  • 2000년대에 들어 64비트 프로세서 대중화
  • 멀티 코어 프로세서: 한 개의 칩 안에 여러 개의 프로세서 탑재

 


 

* 연습 문제 

★ 파란색 문제 다시 한번 체크

 

1. 컴퓨터 구조의 범위

01. 컴퓨터 구조가 다루는 범위가 아닌 것은?

① 기억장치 구조

② 프로그래머 모델

③ 명령어 집합

④ 프로세스 스케줄링

 

02. 컴퓨터 하드웨어와 소프트웨어를 연결하는 요소는?

① 명령어 집합

② 프로그램

③ 논리 소자

④ 반도체 소자

 

03. 프로그래머 관점에서 본 컴퓨터 하드웨어를 표현하는 용어는?

① 어셈블러

② 명령어 집합

③ 시스템 버스

④ 프로그래머 모델

 

04. 프로그래머가 컴퓨터에게 동작을 지시하는 최소의 작업 단위는?

① 명령어

② 고급 언어

③ 논리 동작

④ 제어 신호

 

05. 기계 코드(machine code)란?

① 명령어를 2진수로 표현한 것

② 고급 언어로 작성한 프로그램

③ 기계식 컴퓨터의 숫자 표현 방법

④ 10진수의 정수를 2진수로 표현한 것

 

 

 

2. 컴퓨터의 구성 요소

01. 폰 노이만이 제안한 컴퓨터 구조는?

① 기계식 컴퓨터

② 진공관 컴퓨터

③ 트랜지스터 컴퓨터

④ 프로그램 내장형 컴퓨터

 

02. 프로그램 내장(stored program) 구조에 대한 가장 올바른 설명은?

① 프로그램과 데이터를 기억장치 안에 저장한다.

② 프로그램과 데이터를 레지스터 안에 저장한다.

③ 프로그램과 데이터를 보조기억장치 안에 저장한다.

④ 프로그램과 데이터를 중앙처리장치 안에 저장한다.

 

03. 중앙처리장치를 제어장치와 처리장치로 구분할 때 처리장치에 해당하는 것을 모두 선택하라.

① 레지스터

② 연산장치

③ 주기억장치

④ 시스템 버스

 

04. 제어장치의 기능은?

① 데이터에 대한 산술 연산을 담당한다.

② 명령어를 해석하고 제어신호를 생성한다.

③ 중앙처리장치가 처리할 데이터를 임시로 저장한다.

④ 입출력장치를 제어하여 데이터를 입력하거나 출력한다.

 

05. 컴퓨터 구성 요소들 간에 데이터를 교환하는 전달 경로를 부르는 이름은?

① 레지스터

② 연산장치

③ 주기억장치

④ 시스템 버스

 

06. 제어장치에서 생성된 제어신호가 전달되는 곳은?

① 레지스터

② 연산장치

③ 주기억장치

④ 세 가지 모두

 

07. 중앙처리장치에 있고 연산에 필요한 데이터를 잠시 저장하는 기억장소는?

① 레지스터

② 연산장치

③ 주기억장치

④ 시스템 버스

 

08. 컴퓨터의 기억장치에 저장되는 것을 모두 선택하라.

① 데이터

② 레지스터

③ 프로그램

④ 입출력 포트

 

09. 시스템 버스의 한 개의 선은 몇 비트의 정보를 전달하는가?

① 1비트

② 4비트

③ 8비트

④ 16비트


10. 컴퓨터의 하드 디스크는 어느 구성 요소로 분류되는가?

① 레지스터

② 연산장치

③ 주기억장치

④ 입출력장치

 

 

 

3. 컴퓨터의 발달 과정

01. 컴퓨터에 가장 먼저 주기억장치로 사용된 기억소자는?

① 자기 코어

② 하드 디스크

③ 자기 테이프

④ 반도체 기억장치

1세대: 주기억장치 X
2세대: 자기 코어
3세대: 반도체 기억장치

 

02. 제2세대 컴퓨터를 구성하는 기본 소자는?

① 진공관

② 집적회로

③ 트랜지스터

④ 고밀도 집적회로

1세대: 진공관
2세대: 트랜지스터
3세대: 집적회로
4세대: 고밀도 집적회로

 

03. 설명에 해당하는 용어를 적어라.

(1) 최초의 전자식 컴퓨터를 구성하는 기본 소자는? 진공관

(2) 여러 개의 트랜지스터를 한 개의 칩 안에 넣은 소자는? 집적회로

 

04. 무어의 법칙에 따라 컴퓨터의 처리 속도가 24개월마다 2배로 빨라진다고 가정하자. 2016년의 컴퓨터는 1980년의 컴퓨터보다 대략 몇 배나 빠른가?

① 약 250배

② 약 2500배

③ 약 2만5천배

④ 약 25만배

1980년과 2016년의 간극: 36년
컴퓨터 처리 속도 발달 주기: 2년
36 / 2 = 18
2^18만큼 증가

2^18 = 1024 * 256 = 262,144
약 25만 배

 

05. 구형 프로세서에서 개발된 프로그램을 신형 프로세서에서도 실행할 수 있다는 개념을 설명하는 가장 적합한 용어는?

① 상향 호환성

② 하향 호환성

③ 프로그램 호환성

④ 명령어 호환성

 

06. 설명에 해당하는 용어를 적어라.

(1) 중앙처리장치를 한 개의 칩으로 구현한 소자는? 마이크로프로세서

(2) 중앙처리장치, 기억장치, 입출력장치를 모두 한 개의 칩 안에 넣은 소자는? 마이크로제어기

 

07. 멀티 코어 프로세서란?

① 한번에 64비트의 데이터를 처리하는 프로세서

② 한 개의 칩에 여러 개의 주기억장치를 탑재한 프로세서

③ 한 개의 칩에 여러 개의 입출력 모듈을 탑재한 프로세서

④ 한 개의 칩에 여러 개의 중앙처리장치를 탑재한 프로세서

멀티 코어 프로세서: 한 개의 칩에 여러 개의 프로세서 탑재