정보처리기사

[정보처리기사 필기] 2과목 전자계산기구조

반응형

[정보처리기사 필기]

제2과목 전자계산기구조


1) 논리회로
  • 불 대수 정리

  • 논리회로 보고 논리식 맞추기

A=1010 B=1100

AND 값 : 1000

OR 값 : 1110

XOR(Exclusive-OR) = A’B + AB’

  • JK 플리플롭

    J=0, K=0 -> 반전X

    J=0, K=1 -> 0으로 리셋

    J=1, K=0 -> 1로 셋

    J=1, K=1 -> 동작하지 않음 (이를 해결하기 위해 RS 플립플롭 탄생)

JK 플립플롭의 두 입력선을 묶어서 한 개의 입력선으로 구성한 플립플롭 = T 플립플롭

  • 카르도맵 그리는 법 알고 있기 (두자리일 때 00, 01, 11, 10 순서 꼭 기억)
  • 반가산기 = AND회로와 XOR회로 조합
  • Full Adder(전가산기)는 2개의 Half Adder(반가산기)를 OR회로로 묶어 구성
  • 전가산기의 합의 동작을 얻을 수 있는 것 = XOR(배타적 OR)
  • n비트의 2진 병렬 가산기 구성 : n개의 전가산기로 구성
2) 자료의 표현
  • 8바이트의 필드가 더블워드면, 하프워드는 ? : 2바이트

    풀워드 기준으로 2배는 더블워드, 1/2배는 하프워드

  • 4비트 : 1니블

  • 64가지의 각 다른 자료를 나타내리면 최소 몇 개 비트 필요? 6개

    비트가 n개일 때 2^n개의 자료 표현 가능

  • 2진수 0011에서 2의 보수는? : 1101

    1의 보수를 구하고 1을 더한다

  • 음수를 표시하는 방법

    1의 보수

    부호 및 크기 : 양수 표현에서 부호 비트 0을 1로 변환

    2의 보수

  • 16진수 (BC.D)를 8진수 표현

    10진수로 B는 11, C는 12, D는 13

    2진수로 나타내면 10111100.1101

    8진수로 나타내기 위해 3개씩 쪼개자 : 10/111/100.110/1

    빈곳은 0으로 채우기 : 010/111/100.110/100

    8진수 : 274.64

  • 음수를 표현할 때, 정수 범위

    표현범위

    부호 및 크기 : -(2^(n-1)-1) ~ +(2^(n-1)-1)

    1의 보수 : -(2^(n-1)-1) ~ +(2^(n-1)-1)

    2의 보수 : -2^(n-1) ~ +(2^(n-1)-1)

  • -121을 2의 보수로 표현하면?

    1) 우선 +121을 2진수로 나타내자 : 01111001 (+이기때문에 자릿수맞춤)

    2) 1의 보수로 바꾸기 : 10000110

    3) 2의 보수로 나타내기 위해 1더함 : 10000111

  • 10진수 BCD코드로 나타내기 : 한자리당 2진수 4비트로 표현

  • 10진수 8을 3초과 코드로 표시하면?

    10진수 8을 BCD 코드로 나타내고 3더하기 1000 + 0011 = 1011

  • 2진수 1011을 Gray Code로 변환하면?

    최상위 수는 그대로 내려줌 1->1

    이후 자리부터는 앞자리 수와 XOR연산해서 내려줌

    따라서 1110

  • 패리티 체크를 하는 이유는? : 전송된 부호의 에러를 검출하기 위해

  • 디지털 코드 중 에러 검출 및 교정이 가능한 코드는? : 해밍 코드

  • 음수를 나타낼 때, 2의 보수법이 1의 보수법보다 좋은 점은?

    올림수가 발생하면 무시한다

  • 지수 bias가 64면, 지수 -64~+64까지 표현 가능

    2^(-65)는 언더플로우, 2^(65)는 오버플로우 발생

  • 해밍코드

    P1 : 1357

    P2 : 2367

    P3 : 4567

    아직 잘 모르겠음 + 추가 공부 필요

3) 프로세서
  • 주기억장치에 기억된 명령 해독, 시스템에 신호 보내는 것

    제어 장치(Control unit)

  • ALU 목적

    ALU는 연산 장치 - 실제로 연산을 수행하는 장치 (산술과 논리 연산)

  • 다음에 실행할 명령 번지를 갖고 있는 레지스터는?

    프로그램 카운터 (PC)

  • 누산기 - 연산 결과를 임시로 기억하는 장치

  • 프로그램 상태 워드(PSW)

    명령 실행 순서 제어, 실행중인 프로그램의 시스템 상태를 나타냄

  • PSWR이라고 불리며, 시스템 내부의 순간 순간 상태를 기록하고 있는 정보

    플래그 레지스터 (=프로그램 상태 레지스터)

  • 명령이 시작되는 최초의 번지를 기억하고 있는 레지스터

    베이스 레지스터

  • 명령어 길이 16bit, OP code 6bit, operand 10bit일 때 연산자 종류 최대 수는?

    OP code가 6비트이기 때문에, 2^6으로 64개

  • 연산자의 기능

    함수 연산

    자료 전달

    제어

    입/출력

  • 명령어 정리

    store : 레지스터 내용 메모리로 전달

    load : 메모리 내용 레지스터로 전달

    move : 레지스터 간 자료 전달

    push : 스택에 자료 저장

    pop : 스택에서 자료 꺼내옴

  • 단항 연산

    complement

    shift

    rotate

    move

  • 이항(binary) 연산

    AND

    OR

  • 74라는 8비트 수에서 가장 좌측은 부호, 나머지는 절대값을 나타낼 때 우측으로 한 비트 이동하면?

    74를 8비트로 나타내면 -> 01001010

    최상위 비트인 0은 부호를 나타내기 때문에 그대로 내려오고 나머지는 우측으로 하나씩 옮기기 00100101 -> 37

  • 마스크(Mask)를 이용해 불필요한 부분 제거 연산

    AND 연산

  • selective-set 연산 수행-> OR연산 하기

  • 스택 구조를 가질 때 가장 밀접한 관계가 있는 명령어는?

    0-주소 명령어

  • 하나의 오퍼랜드가 누산기에 포함된 명령어는?

    1-주소 명령어

  • 3-주소 명령어는?

    연산의 결과가 operand 3에 저장되며, 명령어 한 개의 길이가 길어지고 프로그램의 길이가 짧아짐

  • 접근 방식에 의한 주소지정 방식

    묵시적

    즉시

    직접

    간접

  • 계산에 의한 주소지정 방식

    절대

    상대

    베이스

    인덱스

  • 명령어 주소 부분 + PC 값

    상대 주소 지정 (relative address)

  • 명령어의 operand 부분에 실제 데이터를 갖고있는 방식

    즉시 주소지정 방식

  • 주소 지정 방식 중 속도가 가장 빠른 방식은?

    즉시 주소지정 방식

  • 주소 설계 시 고려해야 할 점

    수행 속도 증가

    표현의 효율성

    사용의 편리성

    주소공간과 기억공간 독립성

  • 명령어(Instruction) ADD(500)이 수행되면 어떤 것이 연산장치로 보내지나? (500)은 간접 주소를 뜻하고 2002가 저장되어 있음

    2002의 내용이 연산장치로 보내짐

  • 응용 프로그래머가 프로그램을 작성할 때, 직접 레지스터 내용을 다룰 수 있는 것은?

    인덱스 레지스터 (주소 변경, 서브루틴 연결 등 반복 계산 횟수 세는 레지스터)

  • 인터페이스와 컴퓨터시스템 사이에 데이터의 이동을 제어하는 장치

    I/O 제어기

4) 명령 실행과 제어
  • 마이크로 오퍼레이션을 순서적으로 발생시키는데 필요한 것

    제어 신호(Control signal)

  • 동기 가변식

    오퍼레이션마다 사이클 타임이 현저히 차이날 때

    중앙처리장치 시간 효율적 이용 가능

    서로 다른 사이클 정의 가능

  • 동기 고정식

    오퍼레이션의 사이클 타임이 유사한 경우

    수행시간이 가장 긴 오퍼레이션을 사이클 타임으로 정함

    중앙처리장치 시간 비효율적

    cpu처리 속도 느려짐 (마이크로 사이클 타임이 진행되면서 지연시간 발생)

  • 비동기식

    오퍼레이션마다 서로 다른 사이클 타임을 정함

  • 중앙처리장치(CPU)가 무엇을 하고 있는지 나타내는 상태

    메이저 스테이트 (fetch, indirect, execute, interrupt)

  • CPU의 명령(instruction) 수행 순서

    명령(instruction) fetch

    명령 디코딩

    operand fetch

    실행(execution)

    인터럽트 조사

  • 인터럽트 요청을 받고 인터럽트 처리 후에 실행되는 사이클은?

    인터럽트가 발생하면? 현재 수행 중인 명령 완료 후 상태 기억하고 인터럽트 처리

    그 후에 원래 보존한 상태로 복귀하여 다음 명령을 호출하는 ‘fetch 사이클’ 실행

  • 명령이 수행되기 전, 가장 우선적으로 이루어져야 하는 마이크로 오퍼레이션

    MAR <- PC (프로그램 카운터를 메모리 주소 레지스터로)

  • 간접 상태(indirect state) 동안 수행되는 것

    operand의 번지(주소)를 읽음

  • EAC <- AC + MBR 있으면 ADD연산

  • AC <- 0 있으면 LOAD to AC

  • 메이저 스테이트 중 하드웨어로 실현되는 서브루틴 호출로 볼 수 있는 것

    인터럽트

  • 분기(branch)나 인터럽트가 발생하면 CPU내 어떤 장치의 내용이 바뀐건가?

    프로그램 카운터(PC)

    분기 : 현재 처리되는 작업을 완료한 뒤 다음 작업 처리가 아닌 외부 요청 처리하는 것

  • 인터럽트 요인 발생 시 CPU가 처리해야 하는 것

    프로그램 카운터 내용

    관련 레지스터 내용

    스택 내용

  • 마이크로 오퍼레이션 수행에 필요한 시간은?

    마이크로사이클 타임

5) 기억장치
  • 기억장치에 읽기 요청 발생 직후부터 요청한 정보를 찾아 전송을 완료할 때 까지 시간

    접근 시간(Access time)

    Access time = seek time + latency time + transmission time

  • 대역폭이란?

    계속적으로 기억장치에서 데이터를 읽거나 기억시킬 때 1초 동안에 사용되는 비트 수

  • ROM IC

    Mask ROM : 제조과정에서 내용 기입 (수정 불가능)

    PROM : 한번만 내용 기입 가능, 수정 불가능

    EPROM : 자외선을 이용해 지우고 다시 사용 가능

    EAROM : 전기적 특성을 이용해 일부 변경 가능 (alterable)

    EEPROM : 전기적 특성을 이용해 여러번 지우고 사용 가능

  • SRAM (정적 램)

    플립플롭 사용

    전원 공급되는 동안 기억 유지

    속도 빠름, 용량 낮음, 가격 높음

    캐시 메모리

  • DRAM (동적 램)

    콘덴서 사용

    주기적 재충전(refresh) 필요

    속도 느림, 용량 큼, 가격 낮음

    주기억장치

  • 기억장치 용량 = 2^(입력 번지선 수) * 출력 데이터

  • 기억용량이 1M byte일 때, 필요한 주소선의 수는?

    워드의 크기 언급없으면 1byte로 간주

    1M byte = 2^20byte -> 20개 주소선 필요

  • 기억장치 용량 4096워드, 워드 길이 16비트일 때 4096 = 2^12 프로그램 카운터 (PC) = 12 주소 레지스터 (AR) = 12 데이터 레지스터 (DR) = 16

  • 순차처리 - 자기 테이프

  • 랜덤 처리 - 자기 디스크, 자기 드럼, 자심

  • 블록 팩터 : 하나의 블록을 구성하는 레코드의 수

    블록의 크기 / 레코드의 크기

  • 연관 기억장치

    신속한 검색 가능

    주소 필요 X

    하드웨어 비용 큼

    기억 장치 접근 속도 향상 목적

  • 메모리에 저장된 항목 찾을 때, 주소를 사용하지 않고 기억된 정보의 일부분을 이용해 접근하는 기억장치는?

    연관 기억장치

    또는 CAM이라고도 함

    주소접근보다 속도 빠름

  • 연관 메모리 특징

    CAM (주소매핑 과정 필요 X)

    메모리에 저장된 내용에 의한 접근

    기억장치에 저장된 항목 찾는 시간 절약

  • 캐시 메모리

    컴퓨터 성능을 높이기 위해 명령 처리속도를 CPU 속도와 같게 하는 기억장치

  • 메모리 인터리빙 (메모리 접근 속도 향상)

    캐시 기억장치, 고속 DMA로 많이 사용

    기억장치 접근시간을 효율적으로 높임

    각 모듈을 번갈아가며 접근 가능

    고속 블록 단위 전송 가능

  • 캐시 기억장치

    고속, 고비용

    주기억장치와 CPU사이 일종의 버퍼 기능 수행

    컴퓨터 처리 속도 향상

    수십~수백kbyte 용량 사용

  • 가상 기억장치

    주기억장치의 용량 확대가 주 목적 (속도향상X)

    실제로는 보조기억장치를 사용하는 방법

    프로그램 크기에 제한 받지 않고 사용 가능

  • 매핑

    가상 기억장치에서 주기억장치로 자료의 페이지를 옮길 때 ‘주소를 조정’해주는 것

  • 캐시 적중률

    캐시적중횟수/전체기억장치액세스횟수

  • 16바이트 블록 크기, 64블록 캐시, 1200 바이트 주소가 매핑되는 블록 번호는?

    캐시 블럭번호 = 메모리블럭번호 mod 캐시블록수

    메모리 블럭번호 = 주소/블럭크기

    1200/16 = 75

    75 mod 64 = 11

  • 직접 매핑

    주소 기준 검색

    같은 인덱스 가졌으나 다른 태그를 가진 두 개 이상 워드가 반복 접근하면 히트율이 낮아짐

  • 128MB = 128000000 -> 2^27로 저장 가능


반응형