1. CPU의 구성에 대해 설명하시오

더보기

CPU는 크게 산술논리연산장치, 제어장치, 레지스터, CPU 내부 버스로 구성되어있습니다. 

 

2. 폰노이만 구조의 가장 중요한 특징을 설명하시오.

더보기

폰노이만 구조는 모든 프로그램은 데이터 위에 올라간다라는 중요한 특징이 있습니다.

 

3. 버스의 종류를 나열하시오.

더보기

버스는 주변 장치와 메모리의 통로 역할을 하는 시스템 버스와 CPU 내부를 연결하는 CPU 내부 버스가 있습니다. 시스템 버스에는 메모리와 주변장치와 상호작용하는 제어 버스, 그리고 메모리와 주변장치에 주소 값을 전달해주는 주소 버스, 마지막으로 두 정보를 취합해서 데이터를 전송해주는 데이터 버스가 있습니다. 

 

4. 단방향 버스에 대해 설명하시오.

더보기

단방향 버스란 주변장치와 메모리에서 CPU로 보내지는 구조가 아닌 CPU에서 주변장치와 메모리로 보내지는 구조를 의미합니다. 단방향 버스의 대표적인 예로는 주소 버스가 있습니다. 주소 버스는 데이터가 변경되는 주소 정보를 CPU에서 주변장치, 메모리로 전달합니다. 주변장치와 메모리에서 CPU로 전달되는 주소 정보는 없으므로 단방향 버스에 해당합니다.

 

5. 다음에 실행할 명령어의 주소를 가지고 있는 레지스터는 무엇인가?

더보기

다음에 실행할 명령어의 주소를 가지고 있는 레지스터는 프로그램 카운터(PC)입니다. 다른 용어로는 명령어 포인터라고도 불립니다.

 

6. 다음에 실행할 명령어를 보관하는 레지스터는 무엇인가?

더보기

명령어 레지스터(IR)

 

7. 메모리 주소를 보관하는 레지스터는 무엇인가?

더보기

주소 레지스터(AR)

 

8. 메모리에 저장할 데이터나 메모리에서 가져온 데이터를 임시로 보관하는 레지스터는 무엇인가?

더보기

메모리 버퍼 레지스터(MBR)

 

9. 주소 버스와 연결되어 있는 레지스터는 무엇인가?

더보기

주소 버스는 주소 레지스터(AR)과 연결되어 있으며 단방향입니다.

 

10. 데이터 버스와 연결되어 있는 레지스터는 무엇인가?

더보기

데이터 버스는 메모리 버퍼 레지스터(MBR)과 연결되어 있으며 양방향입니다.

 

11. 프로그램을 보호하기 위해 사용하는 두 가지 레지스터는 무엇인가?

더보기

메모리 시작 주소를 저장하는 경계 레지스터와 작업 크기를 저장하는 한계 레지스터가 있습니다.

 

12. 속도 차이가 나는 두 장치 사이에서 속도를 완화하는 장치를 무엇이라고 통칭하는가?

더보기

버퍼(buffer)

 

13. 응용 프로그램과 프린터 사이에서 속도 차이를 완화하는 소프트웨어를 무엇이라고 하는가?

더보기

스풀러(spooler)

 

14. 부팅 시 운영체제를 메모리로 가져오기 위해 사용하는 작은 프로그램은 무엇인가?

더보기

마스터 부트 레코드(MBR)에 저장되어 있는 부트스트랩(Bootstrap)

 

15. 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배열하는 방식을 무엇이라고 하는가?

더보기

저장장치의 계층 구조(storage hierarchy)

 

16. 작업의 효율성을 높이기 위해 CPU가 입출력 관리자에게 입출력 작업을 요청하면 작업을 마친 입출력 관리자는 CPU에 무엇을 보내는가?

더보기

인터럽트(interrupt)

 

17. CPU의 도움 없이도 메모리를 사용할 수 있도록 입출력 관리자에게 주는 권한을 무엇이라고 하는가?

더보기

직접 메모리 접근(DMA)

 

18. CPU와 입출력 관리자가 서로 다른 메모리 영역을 사용하는 기법을 무엇이라고 하는가?

더보기

메모리 매핑 입출력(Memory Mapped I/O, MMIO)

 

19. CPU가 병렬 처리를 지원하지 않을 때 소프트웨어적으로 병렬 처리를 하는 기법을 무엇이라고 하는가?

더보기

VLIW 기법

 


 

1. 컴퓨터에서 클록이 하는 역할을 설명하시오.

더보기

클록은 CPU와 주변장치, 메모리가 작업하는 단위를 의미하며 클록은 펄스, 클록틱을 만들고 그 박자에 맞춰서 모든 장치가 작업을 합니다. 즉, 메인보드에 연결된 여러 부품들은 클록이 펄스, 클록틱을 보낼 때 마다 데이터를 보내거나 받습니다.

 

2. 프로그램 카운터 레지스터의 역할을 설명하시오.

더보기

CPU는 다음에 어떤 작업을 처리해야할 지 알아야하게끔 디자인 되어있습니다. PC는 다음에 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려주는 역할을 합니다.

 

3. 제어 버스, 주소 버스, 데이터 버스에 대해 설명하시오.

더보기

제어 버스는 메모리의 이동, 연산, 저장등의 작업을 지시하는 역할을 합니다. 

주소 버스는 제어 버스의 지시에 따라 데이터의 주소를 전달하는 역할을 합니다.

데이터 버스는 제어 신호와 주소 버스의 정보를 참고하여 해당 장치에 메모리를 전달하는 역할을 합니다.

 

4. 휘발성 메모리와 비휘발성 메모리를 비교하여 설명하시오.

더보기

휘발성 메모리는 일정 타임이 지나면 데이터가 소멸되는 메모리르 의미하며 DRAM과 SRAM이 대표적입니다. DRAM은 Dynamic의 의미처럼 일정 시간이 지나면 데이터가 사라지기 때문에 계속 재생이 필요합니다. SRAM 전력이 메모리에 공급되는 동안에는 데이터를 보관할 수 있어 DRAM처럼 재생을 할 필요는 없습니다. 속도도 빠르지만 가격이 비싸 메인 메모리에는 DRAM을 사용하고 캐시같은 고속 메모리는 SRAM을 사용합니다.

 

5. DDR SDRAM에 대해 설명하시오.

더보기

SDRAM은 DRAM을 발전시켜 클록의 펄스가 발생할 때 마다 데이터를 저장하는 동기 DRAM입니다. 하지만 CPU는 3GHz 이상의 매우 빠른 속도로 동작하게 되는데 SDRAM은 그 속도를 따라가지 못해 메인보드의 시스템 버스와 같은 속도로 느리게 동작하게 되어 전반적인 작업 속도를 떨어트리는 경향이 있습니다. 그런 속도 차이를 완화하기 위해 개발된 메모리가 바로 DDR(Double Data Rate) SDRAM입니다. SDRAM의 대역폭을 늘려 데이터 입출력 속도를 빠르게 했으며, 이는 기존 SDRAM이 클록틱 한 번에 1개의 워드를 저장하는 단점을 2개의 워드로 저장하게끔 하였습니다. DDR1에서 2로 넘어가는데에는 2^1배씩 늘어나며 현재는 DDR4 2^4배가 보급되고 있습니다.

 

7. 스풀에 대해 설명하시오.

더보기

스풀이란 CPU와 입출력장치가 독립적으로 동작하게끔 고안된 소프트웨어적인 버퍼를 의미합니다. 대표적인 예는 프린터에 사용되는 스풀러가 있습니다.

 

8. 즉시 쓰기 방식의 캐시와 지연 쓰기 방식의 캐시를 비교하여 설명하시오.

더보기

캐시는 CPU가 작업에 필요한 데이터를 미리 보관해놓은 버퍼의 일종으로 실제 저장된 디스크와 독립적인 공간입니다. 그래서 캐시에서 변경된 데이터의 내용을 디스크에 저장된 데이터도 변경시켜야하는 필요가 있는데, 그럴 때 즉시 쓰기 방식과 지연 쓰기 방식이 사용됩니다.

 

즉시 쓰기 방식은 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 방식입니다. 빈번한 전송으로 성능 하락이 온다는 단점이 있지만, 최신 값이 항상 유지되기 때문에 데이터를 잃을 가능성이 크게 줄어들게 됩니다.

 

지연 쓰기는 캐시에 있는 데이터가 변경되면 내용을 모아서 주기적으로 반영하는 시스템이며 카피백이라고도 합니다. 주기적인 전송으로 성능 상승이 있지만, 최신 값이 항상 유지되는 것은 아니기 때문에 데이터를 잃을 가능성이 있습니다. 

 

9. 메모리 직접 접근(DMA)에 대해 설명하시오.

더보기

입출력 관리자는 CPU의 허락 없이도 메모리에 접근할 수 있어야하는데 그럴 때 CPU의 권한처럼 입출력 관리자에게도 메모리의 접근을 허용해주는 방식을 메모리 직접 접근이라고 합니다.

 

10. 메모리 매핑 입출력에 대해 설명하시오.

더보기

CPU와 입출력 관리자는 메모리에 접근 권한을 둘 다 가지게 되는데 입출력 관리자가 다루는 데이터의 위치와 CPU가 사용중인 데이터의 위치가 섞이게 되면 복잡한 로직이 구성될 우려가 있어 이를 해결하고자 만든 방식이 메모리 매핑 입출력입니다. 메모리 맵핑 입출력이란, CPU가 저장하는 데이터와 입출력 관리자가 저장하는 데이터의 위치를 메모리상에 구별해서 저장하고 관리하는 방식을 뜻합니다.