티스토리 뷰

 

시험을 준비하는 우리의 자세

31. 블루레이 디스크(Blue-ray Disc)에 관한 설명으로 틀린 것은?

블루레이 디스크라니 아직 2000년대 초반인줄 아는 이 시험문제는 아직 USB의 존재에 대해서 모르고 있는 것 같지만 문제로 나온다니 풀긴 해야겠지.

 

일단 블루레이라는 말 답게 405nm의 청색 레이저를 사용한다. 그래야 더 많은 트랙을 사용할 수 있어서 데이터를 더 많이 저장할 수 있다.

그리고 MPEG-2, H.264/AVC, SMPTE VC-1 코덱을 지원한다.

표준 디스크 크기는 12cm, 25GB를 저장하고 듀얼 레이어인 경우 50GB까지 저장이 가능하다.(앞면 뒷면 25 * 2)

디스크 종류에는 BC-ROM(읽기만 가능), DB-R(1회 기록 가능), BD-RE(재사용 가능)이 있다.

 

정답은 당연히 적색 레이저가 아니라 청색 레이저. 1번이 답이 되겠다.

디스크 이름만 봐도 정답을 알 수 있는 빵점 방지문제가 되시겠다.

 

32. 기억장치를 각 모듈이 벌갈아 가며 접근하는 방법은?

페이징 : 가상기억장치를 같은 크기(고정 길이)로 나눠서 관리하는 방법

스테이징 : 대용량 보조 기억장치 내용을 접근 가능한 영역으로 이동하여 시스템에서 자료를 접근할 수 있도록 하는 기능, 보조기억장치에서 주기억장치로 데이터를 이동(느린 장치 -> 빠른 장치)

인터리빙 :  CPU가 각 모듈로 전송할 주소를 교대로 배치한 후 차례대로 전송하여 병행접근하는 기법

세그먼트 : 메모리를 가변 크기로 나눠서 관리하는 방법

 

인터리빙이 정답!

33. 베이스레지스터 주소지정방식의 특징이 아닌 것은?

<베이스레지스터 주소지정방식의 특징>

- 변위 주소지정 방식

- 기준이 되는 주소 A가 저장되어진다.

- 주소지정 방식은 주로 기억장치 내의 프로그램의 위치를 지정하는데 사용(프로그램을 재배치(Relocation)할 때 사용)

- 유효주소 = A(명령어의 주소부분) + (BR)(Base Register)

- 다중 프로그래밍 기법에 많이 사용

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

 

기왕에 이렇게 된 김에 주소지정방식에 대해서 조금 더 공부하자.

 

1. 암시적(묵시적) 주소지정 방식(Implied Addressing Mode)

  - 주소를 지정하는 필드가 없는 0번지 명령어에서 Stack의 Top 포인터가 가리키는 Operand를 암시하여 이용

  - 누산기의 내용을 좌측으로 1Bit 이동하는 SHL(좌시프트) 명령은 주소를 지정하는 필드가 없는 0번지 명령으로서 묵시적 주소지정방식이 적용

 

2. 즉시적 주소지정 방식(Immediate Addressing Mode)

  - Operand 부분에 데이터를 기억하는 방식

  - 레지스터의 값을 초기화 할 때 주로 사용됨

  - 별도의 기억장치를 접근하지 않고 CPU에서 곧바로 자료를 이용

  - 메모리의 참조 횟수를 줄일 수 있으므로 실행속도가 가장 빠름

 

3. 직접 주소지정 방식(Direct Addressing Mode)

  - 명령어 주소 부분에 유효 주소 데이터가 있음

  - 명령어의 길이에 영향을 받으므로 표현할 수 있는 데이터 값의 범위가 제한적

 

4. 간접 주소지정 방식(Indirect Addressing Mode)

  - 명령문 내의 번지는 실제 데이터의 위치를 찾을 수 있는 번지가 들어있는 장소를 표시

  - 인스트럭션의 길이가 짧고 제한적이어도 이것을 이용해 긴 주소를 찾아갈 수 있음

  - 기억장치에 최소 2번 접근(Access)해야 오퍼랜드(Operand)를 얻을 수 있음

  - 명령어가 피연산자의 주소가 아닌 피연산자의 주소가 저장된 곳의 주소를 나타내고 있는 방식

 

5. 계산에 의한 주소지정 방식

  - Operand부와 CPU의 특정 레지스터의 값이 더해져서 유효주소를 계산

  - 상대 주소 지정방식(Relative Addressing Mode)

    - 유효주소 = 명령어의 주소 부분 + Program Counter

    - 명령어 자신의 기억장소를 기준으로 하여 데이터의 위치를 지정

  - 베이스 레지스터 주소지정 방식(Base Register Addressing Mode)

    - 유효주소 = 명령어의 주소 부분 + Base Register

    - 프로그램 재배치(Relocation) 할 때 이용

    - 다중 프로그래밍 기법에 많이 사용

  - 인덱스 레지스터 주소 지정 방식(Indexed Addressing Mode)

    - 유효주소 = 명령어의 주소 부분 + Index Register

 

위의 내용을 충분히 숙지했다고 보고 문제를 풀어보면 4번이 정답인걸 눈치채야하는데 왜냐하면 그 어떤 주소지정방식도 어떤 다른 방식의 주소지정방식보다 길거나 짧아야한다는 조건이 붙는다는게 이상하기 때문이다. 생각해 봐라.

명령어의 주소가 길 수도 있고 짧은 수도 있을텐데 반드시 길어야한다는 조건이 어떻게 붙을 수 있을까?

 

34. CPU 내부의 레지스터 중 프로그램 제어와 관계가 있는 것은?

CPU 내부 레지스터의 종류를 일단 알아봐야겠지?

 

- PC(Program Counter) : 프로그램 카운터, 계수기

  - 다음에 실행할 명령어의 위치(번지)를 가지고 있음

  - 분기 명령이 실행되는 경우 목적지 주소가 갱신됨

 

- IR(Instruction Register) : 명령 레지스터

  - 수행할 명령어를 가지고 있는 레지스터

  - 현재 실행 중이 명령의 내용을 기억한다.

 

- AC, ACC(Accumulator) : 누산기

  - 연산의 핵심 역할을 하는 레지스터로 통상 연산결과를 임시로 저장

 

- SR(Status Register), PSWR(Program Status Word Register) : 상태 레지스터

  - CPU의 동작상태를 가지고 있는 레지스터

  - 오버플로, 언더플로, 자리올림, 계산상태, 인터럽트 등의 PSW를 저장

  - PSW : 시스템 내부의 순간순간의 상태가 기록된 정보

 

- MAR(Memory Address Register) : 메모리 주소 레지스터

  - 접근할 메모리 주소를 저장

  - 기억장치를 출입하는 데이터 번지를 기억

 

- MBR(Memory Buffer Register) : 메모리 버퍼 레지스터

  - 메모리를 참조하거나 메모리에 저장할 데이터 저장

  - CPU가 데이터를 처리하기 위해서는 반드시 거쳐야할 레지스터

 

- Index Register : 인덱스 레지스터

  - 메모리 보조 주소나 첨자로 사용하는 레지스터

  - 주소의 변경, 서브루틴 연결 및 프로그램에서의 반복 연산의 횟수를 세는 레지스터

  - 프로그래머가 내용 변경 가능

 

- Data Register : 데이터 레지스터

  - 연산에 사용하는 데이터 저장에 사용

 

- SP(Stack Pointer, Stack Register) : 스택 포인터, 스택 레지스터

  - 스택 주소를 가지고 있는 레지스터

 

- BR(Base Register) : 베이스 레지스터

  - 명령이 시작되는 시작 번지를 기억하고 잇는 레지스터

 

- Shift Register : 시프트 레지스터

  - 저장된 값을 왼쪽 또는 오른쪽으로 1Bit씩 자리를 이동시키는 레지스터

  - 2배 길이 레지스터라고도 함

 

- Major Status Register : 메이저 스테이터스 레지스터

  - CPU의 메이저 상태를 저장하고 있는 레지스터

  - 메이저 상태 : CPU의 현재 상태(인출, 간섭, 실행, 인터럽트 상태가 있다)

 

이 중에서 프로그램과 가장 관련이 깊은 것은 상태 레지스터라고 한다. 프로그램 제어하고 별 관련이 없어 보이지만 "오버플로, 언더플로, 자리올림, 계산상태, 인터럽트"가 모두 프로그램 제어하고 관련이 있는 내용이다.

 

35. 기억장치의 구조가 stack 구조를 가질 때 가장 밀접한 관계가 있는 명령어는?

이건 그냥 Zero-Address라고 알고 있자.

다른 보기에 대한 설명을 좀 보면

 

- One-Address : 누산기(ACC)를 이용

- Two-Address : Three-Address보다 명령어 길이가 짧음, But, 전체 프로그램 길이가 길어짐

- Three-Address : 원래 자료유지, 프로그램 전체길이를 짧게하고 주기억장치 접근횟수가 줄어든다.

 

Stack구조 자체가 Pop, Push 로 주소 없이 자료를 넣고 빼기 때문에 Zero-Address가 된다.

 

36. 시프트 레지스터(Shift Register)의 내용을 오른쪽으로 한 번 시프트하면 데이터는 어떻게 변하는가?

이건 뭐 당연하게 1/2 되는건데 왼쪽으로 가면 2배가 되고.. 이걸 이론적으로 설명하자면

http://blog.daum.net/happyanga/7528900?tp_nil_a=1 여기에 가서 확인하면 되겠다.

 

이게 그냥 비트연산이라서 좌우로 쉬프트하면 2배가 되고 1/2배가 되는 거라 그냥 외워두면 좋다.

 

37. 가상기억장치에서 주소 공간이 1024K, 기억공간을 32K라고 가정할 때 주기억장치의 주소 레지스터는 몇 비트로 구성되는가?

자, 이번 문제는 그냥 주소공간 * 기억공간이 2의 몇 제곱인가를 재보면.

2^5 * 2^10 = 2^15 라고 15비트가 정답이 되겠다.

계산문제에 놀라지 말 것.

 

38. 채널(Channel)에 대한 설명으로 가장 옳지 않은 것은?

채널이 무엇인가부터 기억해내야 이 문제를 해결할 수 있을텐데..

 

- 채널은 CPU와 독립적 처리가 이루어짐

- 자체적으로 자료 수정 또는 코드 변환 가능

- 종류

  - Selector Channel : 고속 입출력장치 / 어느 한 입출력장치의 전용인것 처럼 운용

  - Multiplexer Channel : 저속 입출력장치 여러개를 동작시킬 수 있음

  - Block Multiplexer Channel : 위의 두 개를 결합

- 채널 명령어(CCW) 구성요소

  - DataAddress, Flag, Op-code

- 채널 명령어로 알 수 있는 내용 : 명령코드, 데이터 주소, 데이터 크기

- 여러개의 블록을 입출력 가능

 - 시스템 입출력 처리 능력을 향상

 

설명을 보면 4번이 정답이라는 것을 알 수 있을텐데 입출력 동작을 수행하는데 있어서 CPU와 독립적으로 처리가 이뤄지기 때문에 CPU의 간섭은 필요없다.

39. 사이클 타임이 750ns인 기억장치에서 이론적으로 초당 몇 개의 데이터를 불러 낼 수 있는가?

사이클 타임이 750ns라면 1클록 발생시 750 * 10^-9(초)가 된단다.

 

그러면 초당 1 / 750 * 10^-9가 되므로 10^-9 / 750이 된다.

10^-6 / 1.33333.... 이 되니깐 대충 정리하면 1.33333 * 10^6이 되면 보기에서 답을 찾을 수 있겠지.

그래서 정답은 1.3 * 10^6가 되시겠다.

 

40. 메모리 버퍼 레지스터(MBR)의 설명으로 옳은 것은?

이 문제에 대한 해설을 34번에 이미 되어있으므로 해설은 생략한다.

 

- 다음에 실행할 명령어의 번지를 기억하는 레지스터 : PC(Program Counter) : 프로그램 카운터(계수기)

- 현재 실행 중인 명령의 내용을 기억하는 레지스터 : IR(Instruction Register) : 명령 레지스터

- 기억장치를 출입하는 데이터번지를 기억하는 레지스터 : MAR(Memory Address Register) : 메모리 주소 레지스터

 

 

댓글
댓글쓰기 폼