자격증/자격증

[2과목] 필기기출 (2021-09-12)

phyho 2025. 9. 16. 14:14

 

[2과목] 전자계산기구조


21. 자기테이프에서 많이 쓰이는 단위인 bpi의 의미는?

  1. byte per inch
  2. bit per inch
  3. baud per inch
  4. bin per inch

 

더보기

2번

 

* bpi (bits per inch)

자기테이프(magnetic tape)와 같은 직선 형태의 저장매체에서
1인치당 기록할 수 있는 비트 수를 나타내는 기록 밀도 단위.

** 기록 밀도가 높음
=> 같은 길이에 더 많은 데이터 저장 가능.


  • DPI (dots per inch) : 프린터나 이미지의 해상도에서 사용됨. (화소 수)
  • BPI (bytes per inch) : 간혹 바이트 단위로 표현할 때. (데이터 처리량, 전송량 등)
  • TPI (tracks per inch) : 트랙 밀도 (자기 디스크 등에서 사용)

* TPI vs BPI

디스크 표면은 연필로 원을 여러 개 그린 것처럼 원형 트랙(track)들로 구성되어 있음.

TPI
 디스크 반경 방향으로 1인치 폭에 트랙을 몇 개나 넣을 수 있는지, 트랙이 위↕아래로 얼마나 촘촘히 있는지를 뜻함.

BPI
트랙 선형 방향으로 1인치당 몇 개의 비트를 기록할 수 있는지,
트랙 한 줄 위에서 좌→우로 얼마나 조밀하게 기록했는지를 뜻함  

항목  TPI (Tracks Per Inch)  BPI (Bits Per Inch)
방향 수평 방향 (디스크 반경 방향) 선형 방향 (트랙 길이 방향)
의미 1인치당 트랙 수 1인치당 비트 수
적용 디스크, 플로피디스크 등 자기테이프, 디스크 등
관련된 개념 트랙 밀도 기록 밀도

 

 

 

 

22. 다음 마이크로 오퍼레이션과 관련이 있는 것은? (단, EAC는 끝자리 올림과 누산기를 의미한다.)

  1. AND
  2. ADD
  3. JMP
  4. BSA

 

더보기

2번 

 

* 마이크로 오퍼레이션 (Micro-Operation)
명령어 하나를 실제로 진행하기 위해 컴퓨터 내부에서 발생하는 세부적인 동작들.

 

* 주요 레지스터

  • MAR (Memory Address Register) : 메모리 주소를 저장.
  • MBR (Memory Buffer Register) : 메모리에서 읽은 데이터 or 메모리에 쓸 데이터를 저장.
  • AC (Accumulator) : 누산기 (연산 결과를 저장하는 레지스터)
  • EAC (Extended AC) : AC의 확장, 즉 AC와 함께 쓰이는 보조 레지스터 (예: 올림 비트 포함)

 

  • MAR  ← MBR(ADDR) : 주소를 MAR에 저장.
  • MBR  ← M(MAR)        : MAR에 있는 주소에서 값을 읽어 MBR에 저장.
  • EAC ← AC + MBR      : AC와 MBR 값을 더해서 EAC에 저장.

=> 메모리 주소를 통해 데이터를 읽고, AC(누산기)와 더한 결과를 EAC에 저장.


  1. AND : AC ← AC ∧ M(MAR) (논리곱)  
  2. ADD : AC ← AC + M(MAR) (덧셈)
  3. JMP : PC ← 주소 (분기 명령)
  4. BSA : 서브루틴 호출 (주소 저장 + 점프)

 

 

 

 

23. 병렬 프로세서 시스템에서 한 번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일 프로세서(Uniprocessor) 시 스템을 의마하는 것은?

  1. MISD
  2. MIMD
  3. SISD
  4. SSMD

 

더보기

3번

 

* 플린의 분류 (Flynn's Taxonomy)
  : 컴퓨터 구조에서 명령어와 데이터를 어떻게 처리하느냐에 따라 시스템을 네 가지로 분류. 

  • SISD (Single Instruction, Single Data)
    단일 명령어단일 데이터 처리 → 일반적인 단일 프로세서 시스템 (일반 CPU) 
  • SIMD (Single Instruction, Multiple Data)
    하나의 명령어여러 데이터에 동시에 같은 작업 벡터 연산, GPU (병렬 연산)
  • MISD (Multiple Instruction, Single Data)
    여러 명령어같은 데이터에 수행됨 이론적으로만 존재, 실제 구현 드묾
  • MIMD (Multiple Instruction, Multiple Data)
    서로 다른 명령어로 서로 다른 데이터를 병렬 처리 멀티코어 시스템, 병렬 컴퓨터

 

 

 

24. 인터럽트의 발생 원인이 아닌 것은?

  1. 정전 또는 전원 이상
  2. 임의의 부 프로그램에 대한 호출
  3. CPU의 기능적인 오류 동작 발생
  4. 타이머에 의해 규정된 시간을 알리는 경우

 

더보기

2번

 

* 인터럽트란?

CPU가 현재 실행 중인 작업을 잠시 멈추고, 더 시급한 일을 먼저 처리하도록 하는 신호.
즉, 예외적이거나 긴급한 상황이 발생했을 때 CPU의 흐름을 중단시키고 해당 처리를 우선하게 만드는 메커니즘.

* 인터럽트의 목적

  • 주변 장치나 시스템에서 이벤트 발생을 CPU에 알림.
  • CPU가 비효율적으로 반복 검사(Polling)하는 것을 방지.
  • 시스템의 반응성 향상.
  • 예외 상황에 대한 보호 및 대응.

* 인터럽트의 발생 원인

 - 하드웨어 인터럽트 : 전원 이상, I/O 완료, 타이머, 외부 장치 요청.
 - 소프트웨어 인터럽트 : 사용자 프로그램에서 예외(0으로 나누기 등) 또는 시스템 콜


1. 정전 또는 전원 이상
: 전원 공급에 이상이 생기면 즉시 처리 필요. => 하드웨어 인터럽트

2. 임의의 부 프로그램에 대한 호출
: 일반적인 함수 호출은 프로세스 흐름의 일부.

3. CPU의 기능적인 오류 동작 발생
: 연산 불능, 예외 발생 등 => 예외 인터럽트(트랩)

4. 타이머에 의해 규정된 시간을 알리는 경우
: 시분할 OS에서 시간 할당이 끝났음을 알림. => 타이머 인터럽트


 * 인터럽트 vs 트랩 vs 시스템 콜 *

항목  인터럽트 (Interrupt)  트랩 (Trap)  시스템 콜 (System Call)
발생 원인 외부 또는 내부 이벤트 프로그램 내부 오류 또는 의도적 요청 사용자 프로그램이 OS 기능 요청
예시 타이머 알림, I/O 완료, 전원 이상 0으로 나누기, 메모리 접근 오류 파일 열기, 프로세스 생성
발생 시점 비동기적 (예고 없이 발생) 동기적 (명령 실행 중 발생) 프로그래머가 명시적으로 호출
처리 목적 긴급 상황 처리 예외 처리 or 강제 시스템 호출 운영체제 기능 사용
CPU 관점 외부에서 강제 개입 내부 오류 감지 or 예외 처리 커널에 기능 위임 (의도된 요청)

 

 

 

(조합 논리 회로)

25. 다음 조합 논리 회로의 명칭으로 옳은 것은? (단, 입력변수 는 A와 B, 출력변수는 X와 Y이다.)

  1. 전가산기
  2. 반가산기
  3. 전감산기
  4. 반감산기

 

더보기

4번

 

* 조합 논리 회로 (combinational logic circuit)
입력값이 주어졌을 때, 기억 없이 즉시 출력이 결정되는 회로.
대표적인 예 : AND, OR, NOT 게이트, 산기(Adder)

* 기본 논리 게이트 

게이트  기호  동작  예시
AND · 또는 ∧ A·B: 둘 다 1일 때만 1 1 AND 1 = 1, 나머진 0
OR + A+B: 둘 중 하나라도 1이면 1 1 OR 0 = 1
NOT ¬ 또는 ~ A̅: 반전 NOT 1 = 0

 

  • 입력: A, B
  • 출력: X = A ⊕ B (XOR), Y = A · B (AND)
  • OR 게이트 모양이지만, A와 B가 AND-NOT-OR 조합으로 들어가서 X는 XOR
  • Y는 A와 B가 둘 다 1일 때만 1이 되므로 AND 게이트

 

https://velog.io/@dogfoot/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-4%EA%B0%95-%EC%A1%B0%ED%95%A9-%EB%85%BC%EB%A6%AC%ED%9A%8C%EB%A1%9C

 

컴퓨터구조 4강 - 조합논리회로

컴퓨터구조 4강 - 조합 논리회로 강의록

velog.io

 

 

 

 

26. 레지스터 사이의 데이터 전송방법에 대한 설명으로 틀린 것은?

  1. 직렬 전송방식에 의한 레지스터 전송은 하나의 클록 펄스 동안에 하나의 비트가 전송되고, 이러한 비트 단위 전송이 모여 워드를 전송하는 방식을 말한다.
  2. 병렬 전송방식에 의한 레지스터 전송은 하나의 클록 펄스 동안에 레지스터 내의 모든 비트, 즉 워드가 동시에 전송되는 방식을 말한다.
  3. 병렬 전송방식에 의한 레지스터 전송은 직렬 전송방식에 비해 속도가 빠르고 결선의 수가 적다는 장점을 가지고 있다.
  4. 버스 전송방식에 의한 레지스터 전송은 공통의 데이터 전송 통로를 이용하는 방식이다.

 

더보기

3번

 

* 레지스터란?
레지스터(Register)는 CPU 내부에 있는 작고 빠른 기억장치.
- 연산 중인 데이터 임시 저장.
- 명령어 기억
- 주소 저장.
예) 누산기(Accumulator), 프로그램 카운터(PC), 명령어 레지스터(IR) 등

* 레지스터 간 데이터 전송 (Register Transfer)
레지스터는 서로 데이터를 주고 받으며 작동. (A레지스터 -> B레지스터)


* 레지스터 전송 방식의 종류

(1) 직렬 전송 (Serial Transfer)
한 번에 1비트씩 데이터를 전송.
예) 8비트 데이터 --> 8번의 클럭 주기 동안 비트 하나씩 내보냄.

  • 선이 적게 듦 (결선 수가 적음)
  • 회로 간단
  • 전송 속도가 느림

=> 장거리 통신이나 입출력 장치 등에서 사용.

(2) 병렬 전송 (Parallel Transfer)
모든 비트를 동시에 전송.
예) 8비트 데이터 --> 8개 라인을 통해 한 번에 전송.

  • 전송 속도 빠름 (1클럭으로 끝남)
  • 결선 수가 많음 (비트 수만큼 라인 필요)
  • 회로 복잡, 비용 증가

=> CPU 내부 레지스터 간 전송에 주로 사용.

(3) 버스 전송 (Bus Transfer)
여러 레지스터들이 데이터를 주고받을 때, 공통된 전송 경로(버스)를 이용.

* 버스 종류
 - 데이터 버스 : 데이터 전송용.
 - 주소 버스 : 주소 전달용
 - 제어 버스 : 동작 제어용 

  • 하나의 버스를 여러 장치가 공유하므로 결선 수가 줄어듦
  • 확장성 용이
  • 동시 전송 불가 (한 번에 하나씩만 사용 가능) -> 충돌 방지 필요

구분  방식  속도 결선 수 특징
직렬 전송 1비트씩 느림 적음 입출력에 유리
병렬 전송 여러 비트 동시 빠름 많음 CPU 내부에서 많이 사용
버스 전송 공통 경로 사용 중간 적당함 여러 장치 공유

 


 

* 클록 (clock) : 신호 생성기. => 모든 동작을 일정한 시간 간격(주기)으로 동기화.

* 클록 펄스 (Clock Pulse) : 클록이 만들어내는 주기적인 전기 신호.

컴퓨터 내부 장치들은 빠르게 동작하므로, 언제 동작해야 할지를 알려주는 기준 필요.
클록 펄스 하나 = 한번의 동작.


* 워드 (Word)
컴퓨터(CPU)가 한 번에 처리하는 데이터의 단위.

  • 8비트(1바이트) CPU --> 워드 = 8비트
  • 16비트 CPU --> 워드 = 16비트
  • 32비트 CPU --> 워드 = 32비트
  • 64비트 CPU --> 워드 = 64비트

즉, 워드는 CPU 설계에 따라 다르며 레지스터의 크기 = 워드 크기 인 경우가 많음.

 

 

 

27. 마이크로사이클(Microcycle)에 대한 설명으로 옳은 것은?

  1. 마이크로오퍼레이션을 수행하는데 필요한 시간으로 CPU Cycle Time이라고도 한다.
  2. 동기 가변식은 모든 마이크로오퍼레이션의 동작시간이 같아야 사용할 수 있다.
  3. CPU가 접근하는 메모리의 용량을 의미한다.
  4. 마이크로오퍼레이션들의 수행시간이 유사할 경우 동기 가변싱은 동기 고정식에 비해 제어가 간단하다.

 

더보기

1번

 

* 마이크로오퍼레이션(Micro-operation)
CPU가 한 클럭 사이클 내에 수행할 수 있는 기본적인 동작 단위.

  • 레지스터 A ← 레지스터 B (데이터 전송)
  • 레지스터 A ← A + B (덧셈)
  • PC ← PC + 1 (주소 증가)
  • 조건 점프 등
마이크로오퍼레이션들이 모여서 한 명령어(Instruction)를 구성.

 

* 마이크로사이클(Microcycle)
하나의 마이크로오퍼레이션을 수행하는 데 걸리는 시간.

  • 보통 하나의 클럭 주기(CPU cycle time)에 대응.
  • CPU 내부에서는 하나의 명령어(Instruction)을 수행하기 위해 여러 마이크로오퍼레이션을 순차적으로 실행하며, 각각이 마이크로사이클 단위로 실행.

마이크로사이클 = 마이크로오퍼레이션 1개의 실행 시간 = 1클럭 주기 (보통)

 

* 동기식 제어 방식
CPU 내부의 제어는 보통 클록 신호(Clock)에 맞춰 동작하며, 제어 방법은 하기와 같음.

 - 동기 고정식 (Synchronous Fixed)

  • 모든 마이크로오퍼레이션이 고정된 시간(동일한 클럭 주기)에 실행됨.
  • 마이크로사이클 시간이 가장 느린 오퍼레이션 기준으로 고정되어 비효율적.
  • 제어 간단, 설계 쉬움

- 동기 가변식 (Synchronous Variable)

  • 유사한 사이클을 가진 마이크로오퍼레이션을 그룹으로 묶어 각 그룹의 특성에 맞게 클럭 주기 길이를 다르게 설정.
  • 동작 시간이 유사한 경우에는 효율적.
  • 제어 복잡, 속도 향상 가능.

- 비동기식 (Asynchronous)

  • 모든 마이크로오퍼레이션에 대해 서로 다른 사이클 시간을 부여.
  • 제어 복잡, 거의 사용X

 

1. 마이크로오퍼레이션을 수행하는데 필요한 시간으로 CPU Cycle Time이라고도 한다. (또는 CPU Clock Time)


  => 마이크로사이클 = 마이크로오퍼레이션 1개의 실행 시간 = 1클럭 주기 (보통)

2. 동기 가변식은 모든 마이크로오퍼레이션의 동작시간이 같아야 사용할 수 있다.
  => 동작시간이 다른 경우 동기 가변식이 효율적, 같은 경우 동기 고정식.

3. CPU가 접근하는 메모리의 용량을 의미한다.
  => "주소 공간" 또는 "메모리 크기"에 해당하는 설명.

4. 마이크로오퍼레이션들의 수행시간이 유사할 경우 동기 가변싱은 동기 고정식에 비해 제어가 간단하다.
  => 동기 가변식이 동기 고정식에 비해 제어가 복잡.

 

 

 

28. 인터럽트의 체제의 기본적인 요소가 아닌 것은?

  1. 인터럽트 처리 기능
  2. 인터럽트 요청신호
  3. 인터럽트 상태와 DMA
  4. 인터럼트 서비스(취급) 루틴

 

더보기

3번

 

* 인터럽트란?
현재 실행 중인 프로그램의 흐름을 임시 중단하고, 우선순위가 높은 작업을 먼저 처리한 후 다시 원래 프로그램으로 돌아가는 CPU의 제어 메커니즘.

 

* 인터럽트가 필요한 이유
CPU는 굉장히 빠르게 작동하는데, 입출력(I/O) 장치는 상대적으로 느림.
입출력장치를 기다리지 않고 다른 일을 하다가 신호(Interrupt)가 오면 그 떄 처리.
(예) 키보드 입력, 프린터 출력 완료, 타이머 도달, 예외 상황 발생 등..)

 

* 인터럽트 체제(Interrupt Syster)의 구성 요소

  • 인터럽트 요청 신호 (Interrupt Request) 
    : 외부 장치 또는 내부 예외가 CPU에 보냄.
  • 인터럽트 처리 기능 (Interrupt Handling)
    : CPU가 현재 작업 저장 후 인터럽트 처리.
  • 인터럽트 서비스 루틴 (Interrupt Service Routine, ISR)
    : 인터럽트 발생 시 실행되는 루틴. (함수처럼)
  • 우선순위 판단 및 컨트롤 로직
    : 어떤 인터럽트를 먼저 처리할지 판단.
  • 상태 저장/복구 메커니즘
    : 현재 실행 중이던 정보 저장 및 복귀.

 


1. 인터럽트 처리 기능
  =>  Handling

2. 인터럽트 요청신호
  => IRQ ()

3. 인터럽트 상태와 DMA
=> * DMA (Direct Memory Access) : CPU를 거치지 않고 메모리 <-> 장치 직접 전송.

4. 인터럼트 서비스(취급) 루틴
  => ISR (Interrupt Service Routine)


 

* DMA (Direct Memory Access) 
CPU를 거치지 않고, I/O 장치가 메모리와 직접 데이터 전송을 수행하는 방식.
I/O 장치 ↔ DMA 컨트롤러 ↔ 메모리

일반적인 데이터 전송 방식 : I/O 장치 ↔ CPU ↔ 메모리
=> 대용량 데이터를 다룰 때는 지속적인 CPU의 개입으로 성능 낭비가 큼.

  1. CPU가 DMA에게 전송 요청
  2. DMA가 CPU에게 제어권 요청
  3. CPU는 제어권을 넘기고 대기 상태
  4. DMA가 데이터를 메모리 <-> I/O 장치로 전송
  5. 전송 완료되면 인터럽트로 CPU에게 완료 알림. 
    (CPU는 DMA와 상태정보 및 제어정보만을 주고 받음)

=> CPU 개입 최소화 (CPU는 다른 작업 가능), 데이터 전송 속도 향상, 대용량 전송에 적합.

 

 

 

29. RAM과 관련한 설명으로 틀린 것은?

  1. RAM은 데이터나 프로그램을 일시적으로 기억할 때 사용되며, 프로그램의 수행에 따라 그 내용이 계속 변할 수 있다.
  2. DRAM은 반도체 자체에 데이터를 저장하는 반면, SRAM은 데이터를 커패시터에 저장하기 때문에 추가적인 충전이 필요하다.
  3. 일반적으로 SRAM은 DRAM보다 접근속도(Access Time)가 빠르다.
  4. SRAM의 기억 소자는 플립플롭으로 구성되어 있다.

 

더보기

2번

 

* RAM (Random Access Memory, 임의 접근 메모리)
- CPU가 직접 접근할 수 있는 주기억장치 (Main Memory)
- 읽기/쓰기 모두 가능
- 전원이 꺼지면 내용이 지워짐 (휘발성)
- 프로그램 실행 중 데이터를 일시적으로 저장함

  • SRAM (Static RAM) : 빠르지만 비쌈, 캐시 메모리에 사용.
  • DRAM (Dynamic RAM) : 느리지만 저렴, 일반적인 메인 메모리에 사용.

항목  SRAM  DRAM
저장 방식 플립플롭 회로 커패시터(축전기) + 트랜지스터
리프레시(refresh) ❌ 불필요 ✅ 필요 (전하가 방전되기 때문)
속도 빠름 느림
가격 비쌈 저렴함
집적도 낮음 높음
용도 CPU 캐시 메모리 컴퓨터 주 기억장치

 


2. DRAM은 반도체 자체에 데이터를 저장하는 반면, SRAM은 데이터를 커패시터에 저장하기 때문에 추가적인 충전이 필요하다.
  => 설명이 바뀜.

 

 

 

30. 기억장치에 기억된 정보를 접근(Access)할 때 주소를 사용하는 것이 아니라 기억된 정보를 이용하여 원하는 정보를 찾는 기억장치는?

  1. 주기억장치
  2. 연관기억장치
  3. 제어기억장치
  4. 가상기억장치

 

더보기

2번

 

* 주소지정 기억장치 (addressed memory)
주소(Address)를 기반으로 데이터를 찾는 기억장치. ( RAM, ROM  )
예) 100번지에 있는 데이터를 읽어와

* 연관 기억장치 (Associative Memory) = 내용주소 지정 기억장치 (Content Addressable Memory, CAM)
어떤 값인지(내용)를 기준으로 데이터를 찾는 기억장치. ( CAM, TLB 등 )
예) 데이터가 101인 애를 찾아줘


 

1. 주기억장치
  => RAM 등, CPU가 직접 접근하는 일반적인 메모리. (주소 기반)

2. 연관기억장치
  => 내용 기반으로 검색 가능한 메모리.

3. 제어기억장치 (Control Memory)
  => 마이크로명령어를  저장하는 ROM형태의 기억장치.

4. 가상기억장치
  => 물리 메모리보다 큰 주소 공간을 제공하기 위한 OS기술.

 

 

 

(조합 논리 회로)

31. 최대 2n개의 입력이 들어와 n개의 선택선(Selection Line)에 의해서 1개의 출력을 내보내는 논리회로는?

  1. Multiplexer
  2. Demultiplexer
  3. Contributor
  4. Changer

 

더보기

1번

 

* 논리회로 (Logical Circuit) 
입력신호를 0과 1로 받아서 처리하는 회로. 
AND, OR, NOT 과 같은 논리 연산을 하거나 어떤 값을 선택하거나 분배하는 동작을 수행.

 

*선택기(선택 회로) 종류

(1) Multiplexer (멀티플렉서, MUX)
2ⁿ 개의 입력 중에서, n개의 선택선으로 1개만 골라서 출력하는 회로.

입력 수 : 최대 2ⁿ 개
선택선 수 : n개
출력 : 1개

(2) Demultiplexer (디멀티플렉서, DEMUX)
1개의 입력을 받아서, n개의 선택선을 통해 2ⁿ 개의 출력 중 하나로 데이터 분배.

입력 수 : 1개
선택선 수 : n개
출력 :  2ⁿ

 


구분  Multiplexer  Demultiplexer
방향 여러 입력 → 1 출력 1 입력 → 여러 출력
선택선 수 n개 n개
입력/출력 수 2ⁿ 입력 / 1 출력 1 입력 / 2ⁿ 출력
기억 포인트 "MUX는 선택!" "DEMUX는 분배!"

 

 

 

 

32. 자기 테이프에 대한 설명으로 틀린 것은?

  1. Direct access가 가능하다.
  2. 일반적으로 각 블록 사이에 간격(gap)이 존재한다.
  3. 자기 디스크와 마찬가지로 연속된 블록들 단위로 읽히고 기록될 수 있다.
  4. Sequential access가 가능하다.

 

더보기

1번

 

* 보조 기억장치란?
RAM 처럼 전원이 꺼지면 사라지는 주기억장치와 달리, 오래 보존할 수 있는 저장 장치.
예) 자기 디스크(HDD), SSD, 자기 테이프, 광 디스크(CD/DVD) 등

* 자기 테이프 (Magnetic Tape)
플라스틱 필름 위에 자성 물질을 입혀 만든 긴 띠 형태의 저장장치. (카세트 테이프처럼 생긴 장치)
보통 백업, 아카이빙(장기 보존)에 사용.

* 자기 테이프의 특징 *

  • Sequential Access (순차 접근)
    데이터를 처음부터 차례대로 읽거나 써야함 (책처럼 앞에서부터 넘겨야함)
  • 블록 단위 저장
    여러 레코드(데이터 묶음)을 하나의 블록 단위로 저장.
  • Gap 존재
    각 블록 사이에 간격(Gap)이 존재해, 다음 블록 시작을 구분.

1. Direct access가 가능하다.
 => 순차 접근만 가능. 필요한 위치까지 앞으로 감기 해야 함.

2. 일반적으로 각 블록 사이에 간격(gap)이 존재한다.
 => Gap은 블록 구분, 기록 안정성을 위해 필요.

3. 자기 디스크와 마찬가지로 연속된 블록들 단위로 읽히고 기록될 수 있다.
 => 자기 테이프는 보통 블록 단위로 I/O처리

4. Sequential access가 가능하다.
 => 순차 접근이 기본 특성!


* 자기 테이프 vs 자기 디스크

항목 자기 테이프 자기 디스크 (HDD)
접근 방식 순차 접근 직접 접근 가능
속도 느림 (앞에서부터 찾아야 함) 빠름 (바로 찾아감)
사용 목적 장기 보관, 백업 주기억 보조장치
형태 카세트처럼 길다 원반(플래터) 형태

 

 

 

 

33. 모든 처리장치 또는 프로세스 요소(PE:Processing Element)들이 하나의 제어 유닛(Control Unit)의 통제하에 동기적으로 동작하는 시스템은?

  1. 다중 처리기 (Multi Processor)
  2. 비균열 처리기 (Nonuniform Processor)
  3. 배열 처리기 (Array Processor)
  4. 클러스터 처리기 (Cluster Processor)

 

더보기

3번

 

* 병렬 처리 시스템이란?
하나의 작업을 여러 개의 처리 장치(PE)가 동시에 나눠서 처리하는 시스템

* 병렬 처리 분류 - Flynn의 분류

  • SISD (Single Instruction, Single Data) 
     => 일반적인 순차적 CPU 구조
  • SIMD (Single Instruction, Multiple Data)
     => 명령은 하나, 데이터를 나눠서 동시에 처리
  • MISD (Multiple Instruction, Single Data)
     => 거의 사용되지 않음
  • MIMD (Multiple Instruction, Multiple Data)
     => 서로 다른 명령어와 데이터를 동시에 처리 (멀티코어 등)

* 배열 처리기 (Array Processor)
SIMD 구조의 대표적인 예시로 고속 벡터 연산, 과학 계산, 이미지 처리 등에 적합.

  • 제어 유닛 (Control Unit) : 하나만 있음. 모든 PE를 동일하게 지시함.
  • 처리 유닛 (Processing Element, PE) : 여러개 있음. 각자 동일한 명령을 실행, 서로 다른 데이터를 처리.

1. 다중 처리기 (Multi Processor)
 => 여러 CPU가 각자 명령어, 데이터 처리하는 MIMD구조

2. 비균열 처리기 (Nonuniform Processor)
 => 실제로 사용되는 용어X

3. 배열 처리기 (Array Processor)
 => 하나의 제어 유닛과 여러 개의 처리 유닛이 동기적으로 실행하는 SIMD구조.

4. 클러스터 처리기 (Cluster Processor)
 => 여러 독립 시스템(CPU + 메모리)을 연결한 MIMD형 병렬 시스템.

 

 

 

34. 인스트럭션 수행을 위한 메이저 상태를 설명한 것으로 옳은 것은?

  1. Execute 상태는 간접주소 지정방식의 경우에만 수행된다.
  2. 명령어를 기억장치 내에서 가져오기 위한 동작을 fetch라 한다.
  3. CPU의 현재 상태를 보관하기 위한 기억장치 접근을 indirect라 한다.
  4. 기억장치의 현재 상태를 말한다.

 

더보기

2번

 

* 인스트럭션 사이클 (Instruction Cycle)
CPU가 여러 단계의 상태(State)를 거쳐 명령어를 처리하는 과정.

* 인스트럭션 수행의 주요 상태 (Major States)

  • Fetch : 명령어를 메모리에서 가져오기 (Instruction Register에 저장)
  • Decode : 가져온 명령어를 해석 (어떤 연산인지, 어떤 주소를 사용하는지 등)
  • Execute : 실제 연산 수행 (덧셈, 데이터 이동, 분기 등)
  • Indirect : 주소가 간접 지정일 경우 실제 주소 추적.
  • Interrupt : 인터럽트 발생 시 상태 저장 및 ISR 수행.

 

1. Execute 상태는 간접주소 지정방식의 경우에만 수행된다.
 => Execute는 모든 명령어에 대해 수행되는 기본 상태.
   간접주소 방식은 Execute 전에 간접주소 해석이 추가 될 수 있음.

2. 명령어를 기억장치 내에서 가져오기 위한 동작을 fetch라 한다.
 => CPU가 명령어 주소(PC)로부터 명령어를 메모리에서 읽어오는 과정.

3. CPU의 현재 상태를 보관하기 위한 기억장치 접근을 indirect라 한다.
 => CPU 상태 저장은 보통 Context Save스택, PCB에 저장.
 => Indirect는 간접 주소 지정 방식을 의미.

4. 기억장치의 현재 상태를 말한다.
 => 메모리 상태가 아닌 CPU의 동작 단계

 

 

 

35. 인터럽트 벡터에 필수적인 것은?

  1. 분기번지
  2. 드럼
  3. 제어규칙
  4. 누산기

 

더보기

1번

 

* 인터럽트 (Interrupt)
CPU가 현재 작업 중, 외부나 내부에서 이벤트가 발생하면 그 처리를 위해 현재 흐름을 일시 중단하고, 
우선순위가 높은 작업(인터럽트 서비스 루틴, ISR)을 먼저 수행한 뒤 다시 원래 작업으로 돌아가는 것.

* 인터럽트 처리 흐름

  1. 인터럽트 발생
  2. 현재 실행 중인 작업의 상태(PC 등)를 저장.
  3. 인터럽트 벡터(Interrupt Vector)를 참조.
  4. 해당 인터럽트 서비스 루틴(ISR) 주소로 분기(jump)
  5. ISR 실행 후, 원래 상태로 복귀.

* 인터럽트 벡터 (Interrupt Vector)
인터럽트 발생 시 CPU가 어디로 가야 할지를 알려주는 주소표(목차)

 - 종류별 인터럽트마다 고유한 서비스 루틴(ISR)이 존재.
 - 이 루틴들의 시작 주소를 인터럽트 벡터 테이블에 미리 정리해둠.
 - CPU는 인터럽트 발생 -> 벡터 테이블에서 주소 찾아 -> 분기(jump)

즉, ISR의 분기 주소를 저장한 테이블.


1. 분기번지 (Branch Address)
 => 인터럽트 발생 시, 해당 ISR로 분기하기 위한 주소 정보.

2. 드럼 (Drum)
 => 오래된 자기식 저장 장치

3. 제어규칙 (Control Rule)
 => 관련X

4. 누산기
 => CPU 내 연산용 레지스터.

 

 

 

36. Tc = 50ns, Tm = 400ns인 시스템에서 캐쉬의 적중률이 70%라 가정할 때, 평균 기억장치 액세스 시간(Ta)은?
  (단, Tc는 캐시 접근 시간, Tm은 주기억장치 접근 시간이다.)

  1. 67.5ns
  2. 85ns
  3. 120ns
  4. 155ns

 

더보기

4번

 

Tc : 캐시 메모리 접근 시간 (Cache Access Time) 
Tm : 주기억장치 접근 시간 (Main Memory Access Time)
h : 적중률 (Hit Ratio) 
Ta : 평균 접근 시간 (Average Access Time)

* 캐시 적중(Hit)과 실패(Miss)
 - CPU가 데이터를 찾을 때 캐시에서 찾으면 "Hit", 못찾으면 "Miss"
 - Miss인 경우 -> 캐시에서 실패 -> 주기억장치 접근 필요 -> 추가 시간 소요

* 평균 접근 시간 공식

Ta = (적중률 x 캐시 접근 시간) + (실패율 x 전체 접근 시간)
Ta = h × Tc + (1 - h) × Tm

Ta = 0.7 x 50 + (1-0.7) x 400
     = 35 + 120
     = 155

 

 

 

37. 레지스터에 대한 설명으로 틀린 것은?

  1. PC(Program Counter) : 다음에 인출할 명령어의 주소를 갖는 레지스터.
  2. IR(Instruction Register) : 주기억장치인 RAM으로부터 가장 최근에 인출한 명령어를 저장하고 있는 레지스터.
  3. MBR(Memory Buffer Register) : 액세스할 기억장치의 주소를 갖는 레지스터.
  4. AC(Accumulator) : 연산의 결과를 일시적으로 저장하는 레지스터. 

 

더보기

3번

 

* 주요 레지스터

  • 프로그램 카운터 (PC) : 다음에 실행할 명령어의 주소 저장.
  • 명령어 레지스터 (IR) : 메모리에서 가져온 명령어 자체 저장.
  • 메모리 주소 레지스터 (MAR) : 엑세스할 메모리의 주소 저장.
  • 메모리 버퍼 레지스터 (MBT) : 메모리에서 읽어오거나 쓸 데이터 값 저장.
  • 누산기 (AC) : 연산 결과를 일시적으로 저장.
  • 상태 레지스터 (SR) : 연산 결과에 따른 플래그(오버플로우, 캐리 등) 저장.

1. PC(Program Counter) : 다음에 인출할 명령어의 주소를 갖는 레지스터.
 => CPU는 PC가 가리키는 주소에서 명령어를 Fetch함.

2. IR(Instruction Register) : 주기억장치인 RAM으로부터 가장 최근에 인출한 명령어를 저장하고 있는 레지스터.
 => PC가 가리킨 주소의 명령어를 IR에 저장.

3. MBR(Memory Buffer Register) : 액세스할 기억장치의 주소를 갖는 레지스터.
 => 주소는 MAR에 저장, MBR은 데이터 저장.

4. AC(Accumulator) : 연산의 결과를 일시적으로 저장하는 레지스터. 
 => 산술/논리 연산 결과 저장.

 

 

 

(조합 논리 회로)

38. 두 개 이상의 입력이 있을 경우 입력 하나에서 나머지 입력들을 뺄셈 연산해 그 차이를 출력하는 조합 논리회로는?

  1. Adder
  2. Comparator
  3. Decoder
  4. Subtractor

 

더보기

4번

 

* 조합 논리 회로 (combinational logic circuit)
입력 신호가 주어졌을 때, 그 순간의 입력 조합에 따라 즉시 출력이 결정되는 회로.

  • Adder (가산기) : 두 수를 더함.
  • Subtractor (감산기) : 한 수에서 다른 수를 뺌.
  • Comparator (비교기) : 두 수를 비교해 같음/다름/크고 작음 등을 판단.
  • Decoder (디코더) : 입력 코드를 특정 출력으로 변환 (n비트 입력 -> 2ⁿ 개 출력)
  • Encoder (인코더) : 여러 입력 중 하나만 활성화되었을 때 그 입력의 번호 출력. (입력 위치를 코드로 반환)
  • Multiplexer (MUX) : 여러 입력 중 선택선에 따라 하나만 출력.
  • Demultiplexer (DEMUX) : 하나의 입력을 여러 출력 중 선택된 라인에 출력.

* Subtractor (감산기)
두 개 이상의 입력을 받아서, 하나에서 나머지를 빼서 결과를 출력하는 회로.

 - Half Subtractor : 입력 2개 (피감수, 감수), 차이(Diff)와 차용(Borrow) 출력.
 - Full Subtractor : 입력 3개 (피감수, 감수, 이전 차용), 결과 차(Diff), 차용 출력.

(감수 : 빼는 수 / 피감수 : 빼지는 수 / 차용 : 빌려오는 비트)


1. Adder
 => 가산기, 두 값을 더하는 조합 논리 회로. ( A + B )

2. Comparator
 => 두 값을 비교해 같거나 큰지 판단하는 회로. ( A > B, A = B, A < B 판단 )

3. Decoder
 => n비트 입력 -> 4( 2ⁿ )개 출력 라인을 활성화.

4. Subtractor
 => 입력된 수들을 뺄셈 연산하여 결과 출력. ( A - B )

 

 

 

 

39. 중앙처리장치가 인출(fetch)인 상태에서 주소부분이 직접 주소일 경우 제어점을 제어하기 위한 데이터는?

  1. 플래그
  2. 프로그램 카운터
  3. 인터럽터 호출 신호
  4. 명령어의 명령 코드

 

더보기

4번

 

* 인출(Fetch)
CPU가 주기억장치로부터 명령어를 가져오는 과정.

이 때 프로그램 카운터(PC)는 다음 명령어의 주소를 기리키고 있고, 
그 주소를 따라 메모리에서 명령어를 가져와 
명령어 레지스터(IR)에 저장.


* 명령어 형식
 - Opcode : 무슨 동작을 할 것인가 (예) ADD, LOAD, STORE 등)
 - 주소 필드 : 어디에 있는 데이터를 사용할 것인가 (메모리 주소 등)


* 직접 주소 방식 (Direct Addressing)
 주소 필드에 실제 데이터가 있는 메모리 주소가 바로 적혀 있는 방식.

* 제어점 
CPU 내부에서 어떤 동작을 할 지 결정하는 제어 신호(Control Signal)의 흐름.
이 제어신호를 결정하는 기준이 되는 것이 Opcode(명령어 코드).

즉, CPU가 명령어를 Fetch한 후, 명령어 코드(Op-code)를 해석해서 어떤 제어신호를 발생시킬지 결정. 


1. 플래그
 => 산술/논리 연산 결과에 대한 상태 (캐리, 오버플로우 등)

2. 프로그램 카운터(PC)
 => 다음 명령어의 주소를 저장 -> fetch의 주소 지정에는 사용되지만, 제어점 제어용 데이터는 아님.

3. 인터럽터 호출 신호
 => 인터럽트 발생 여부 판단용. (Fetch 상태와 무관)

4. 명령어의 명령 코드 (Opcode)
 => 어떤 제어 신호를 발생시킬지 결정하는 핵심 요소.

 

 

 

40. 입출력 채널과 관련한 설명으로 틀린 것은?

  1. 선택 채널(Selector channel)은 랜덤 방식으로 데이터를 전송한다.
  2. 다중 채널(Multiplexer channel)은 연결된 입출력 장치들을 시분할(Time Sharing)하여 입출력 할 수 있다.
  3. 블록 다중 채널(Block multiplexer channel)은 선택 채널과 다중 채널을 결합한 방식으로 볼 수 있다.
  4. 채널 중 선택 채널은 비교적 고속 전송에 적합한 방식이다.

 

더보기

1번

 

* 입출력 채널
CPU와 입출력 장치 간의 데이터 전송을 전담하는 장치 또는 하드웨어 모듈.
마치 입출력 담당 CPU처럼, 독립적으로 I/O 처리를 수행하여 CPU가 입출력에 신경 쓰지 않고 연산에 집중할 수 있도록 도와줌.

  • 선택 채널 (Selector Channel)
    • 한 번에 1개의 I/O 장치만 연결해서 처리.
    • 고속 입출력 장치용.
    • 데이터 전송이 연속적으로, 전용 채널처럼 수행.
    • 예) 디스크, 자기 테이프 등 블록 단위 전송 장치.
  • 다중 채널 (Multiplexer Channel)
    • 여러 개의 I/O 장치를 시분할 방식(Time Sharing)으로 연결.
    • 한 채널이 여러 장치를 번갈아가며 처리.
    • 저속 장치용
    • 예) 키보드, 프린터, 마우스 등
  • 블록 다중 채널 (Block Multiplexer Channel)
    • 선택 채널 + 다중 채널의 복합 형태.
    • 여러 장치를 연결하되, 블록 단위로 I/O를 나눠 처리.
    • 고속 장치도 시분할 처리 가능.
    • CPU와 병렬로 처리되며 성능이 우수.

 

채널 종류 특징  용도
선택 채널 (Selector) 한 번에 하나, 연속 전송 고속 장치 (디스크 등)
다중 채널 (Multiplexer) 시분할, 여러 장치 번갈아 처리 저속 장치 (프린터 등)
블록 다중 채널 (Block MUX) 선택 + 다중 채널 혼합, 블록 단위 전송 고속 장치 + 시분할 필요 시

 


 

1. 선택 채널(Selector channel)은 랜덤 방식으로 데이터를 전송한다. 
 => 고속 장치 전용으로, 순차적/연속적 전송 방식.