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비트의 데이터를 처리하는 프로세서
② 한 개의 칩에 여러 개의 주기억장치를 탑재한 프로세서
③ 한 개의 칩에 여러 개의 입출력 모듈을 탑재한 프로세서
④ 한 개의 칩에 여러 개의 중앙처리장치를 탑재한 프로세서
멀티 코어 프로세서: 한 개의 칩에 여러 개의 프로세서 탑재 |
'色 > 공부' 카테고리의 다른 글
[Python][Django][CSS] position: fixed 작동하지 않음 (0) | 2022.01.11 |
---|---|
[한눈에 보이는 컴퓨터 구조] 2장 논리회로 기초 (0) | 2021.11.03 |
[Google Colab][YOLO] no CUDA-capable device is detected (0) | 2021.06.28 |
[Android Studio][개발] 메모 사항 정리 (0) | 2021.06.06 |
[Android Studio][XML] pixel to dp (0) | 2021.06.06 |
色/공부