지난 번에 본 종합시험의 문제를 정리하여, 차후의 종합시험을 대비하기 위함을 목적으로 한다.
시험 범위
- 컴퓨터 구조 : CPU, Pipeline, Vector proceeding, Memory organization
- 내장형 시스템 : ARM프로세서와 플래쉬 메모리 관련 주제
- 운영체제 : 메모리 관리기법, 가상 메모리,파일 시스템
기출 문제
컴퓨터 구조
- 가상 메모리에 대해서 설명하라.
- 가상 메모리를 어떻게 사용하는지 설명하라.
내장형 시스템
- 조건 실행에 대해서 설명하고, 어떤 이점이 있는지 설명하라.
- 조건 실행이 되는 명령어에는 무엇이 있는가?
- 조건 실행에 대해서 다른 RISC 칩과 비교해서 차이점이 무엇인가?
- 빈칸 어셈 명령어 채우는 문제
운영체제
- 논리주소와 물리주소와의 관계를 설명하라.
- 페이징 기법이란? TLB 란?
- 디멘드 페이징이란? 디멘드 페이징에서 페이지 폴트란? 페이지 폴트는 어떻게 처리되어야 하는가?
- 페이지 교체를 위한 알고리즘은 페이지 폴트를 줄이는 것이다. FIFO 방식의 문제점과 해결할 수 있는 LRU 알고리즘을 설명하라.
문제 정답
운영체제
논리주소와 물리주소의 관계
논리주소는 프로그래머 혹은 CPU 에서 사용되는 주소이고, 물리주소는 메모리 제어기(memory controller) 에서 사용되는 주소이다.
컴파일 시 바인딩과 적재 시의 바인딩 기법 경우에는 논리적, 물리적 주소가 같다. 그러나 실행시간 바인딩 기법에서는 논리적, 물리적 주소가 다르다. 프로그램에 의해 생성된 모든 논리 주소 집합을 논리주소공간이라 하며 이 논리주소와 일치하는 모든 물리 주소 집합을 물리 주소 공간이라 한다.
페이징 기법이란? TLB 란?
- 페이징은 사용자 프로그램과 메모리를 일정한 크기로 분할하여 메모리에 불연속적으로 할당하는 기법이다. 이때 일정한 크기로 분할된 프로그램 혹은 데이터의 일부분을 페이지라고 부르고, 일정한 크기로 분할된 메모리 공간의 일부분을 프레임이라고 부른다. 사용자 프로그램의 논리주소는 페이지 번호와 변위로 표현되고, 메모리의 물리주소는 프레임번호와 변위로 표현된다. 운영체제는 논리주소를 메모리의 물리주소로 변환하기 위해 페이지 테이블을 유지, 관리한다. 이 테이블을 이용해서 논리적 주소를 통해 물리적 메모리에 접근할 수 있다.
- TLB 는 Translation Look-aside Buffers 의 약자로서, 기억장치 캐쉬처럼 동작하며, 가장 최근에 사용된 페이지 테이블 엔트리들을 가지고 있다. 논리적 주소가 요청될 때마다 TLB 를 먼저 검사하여 요청된 페이지 번호가 있으면, 메모리의 페이지 테이블을 읽을 필요없이, 이에 대응되는 프레임 번호를 바로 사용한다.
- 기억 장치내에 원하는 장소를 접근이 지연될 때, TLB 라고 불리는 특수한 소형 하드웨어 캐시를 사용한다. TLB 는 매우 빠른 연관 메모리로 구성된다.
디멘드 페이징이란? 디멘드 페이징에서 페이지 폴트란? 페이지 폴트는 어떻게 처리되어야 하는가?
- 프로세스가 실행되는 과정에서 어떤 페이지 혹은 세크멘트가 참조될 때 해당 페이지 혹은 세그멘트를 가상 메모리로부터 실제 메모리로 적재하는 기법.
- 프로세스가 메모리에 올라와 있지 않거나 참조할 수 없는 페이지를 참조하려고 할때 발생하는 것.
- 페이지 폴트를 처리하는 과정은 다음과 같다.
- 프로세스에 대한 내부 테이블(internal table)(일반적으로 프로세스 제어 블록(PCB) 과 함께 유지)을 검사해서 그 메모리 참조가 유효, 무효 인지를 알아낸다.
- 만약 프로세스가 접근할 수 없는 페이지라면(예를 들어 그러한 페이지 번호가 논리 주소 공간에는 없다든지) 그 프로세스는 중단된다. 만약 프로세스가 접근할 수 있는 참조인데 페이지가 아직 메모리에 올라오지 않았다면, 그것을 디스크로 부터 가져와야 한다.
- 빈 공간, 즉 자유 프레임을 찾는다.
- 디스크에게 새로이 할당된 프레임으로 이 페이지를 읽어들이도록 요구한다.
- 디스크 읽기가 끝났을 때, 이 페이지가 이제는 메모리에 있다는 것을 알리기 위해 페이지 테이블을 갱신하며, 프로세스가 유지하고 있는 내부 테이블을 수정한다.
- 트랩에 의해 중단 되었던 명령어를 다시 재개한다.
페이지 교체를 위한 알고리즘은 페이지 폴트를 줄이는 것이다. FIFO 방식의 문제점과 해결할 수 있는 LRU 알고리즘을 설명하시오
- 프로세스 당 프레임 할당량이 증가하여도 오히려 페이지 부재율이 증가하는 비정상적인 벨러디의 모순이 발생한다.
- LRU 알고리즘은 어떤 페이지가 참조되면 가까운 장래에 그 페이지가 또 다시 참조된다는 시간적 지역성을 고려하여 가장 최근에 참조되지 않은 페이지를 교체의 대상으로 선택하는 것이다. 크게 두 가지의 구현방법이 가능한데, 계수기(counters) 와 스택(stack) 을 이용하는 것이다. 계수기를 이용한 방법은 각 페이지 항목마다 시간 필드를 가진다. CPU 는 시계나 counter 를 가지고 페이지에 대한 참조가 일어날 때마다 각 페이지에 대한 참조 시간을 기록한다. 스택을 이용한 방법은 페이지 번호의 스택을 유지하는 방법으로써 페이지가 참조될 때 마다 페이지 번호는 스택 중간에서 제거되어 스택 꼭대기에 놓이게 된다. 보통 doubly linked likst 로 구현한다.
VLSI
Verilog RTL design에서 latch inference란 무엇이며 이것은 언제 발생하는지 Verilog 코드의 예를 들어 설명하라. 또 이런 일이 발생하면 어떤 문제가 생길 수 있는지 한 가지만 예를 들어라
latch inference : 시그널에 모든 조건을 서술하지 않아 합성 중에 컴파일러에 의해 의도하지 않은 곳에 latch 가 발생하는 현상
module mux_4_3(Y,D,S); input [0:3]D; input [0:1]S; output Y; reg Y; always@(D or S) begin if(D) Y=D[0]; end endmodule
위의 코드에서 시그널 S 가 입력되었을 경우에 대해서는 특별히 정의하고 있지 않기 때문에 latch inference 가 발생하게 된다.
발생 시 문제 : 시뮬레이션 상에서는 정상적으로 동작하지만, 회로 합성과정에서 정상적으로 동작하지 않는 문제가 발생한다.
SystemC 언어를 사용하여 하드웨어 시스템을 설계하거나 모델링하는 경우 Verilog나 VHDL을 사용해서 시스템을 설계할 때와의 장단점에 대해 장점, 단점 한 가지씩을 들어 설명하라. 또 SystemC와 C/C++을 비교하면 SystemC에 어떤 장점이 있는지 하나만 예를 들어라
장점 : 상위 수준 설계가 가능하므로 생산성을 높일 수 있다. 상위 수준 설계는 크기가 작은 코드를 가능케 하고, 크기가 작음으로써 기존의 모델링 보다는 작성하기 쉽고 시뮬레이션도 빨라진다.
단점 : VHDL 과 Verilog 의 RTL 기술과 비교했을 때, C 나 C++ 를 포함하여 알고리즘 수준의 시뮬레이션을 할 수 있지만, 이를 RTL 로 합성하는 데는 한계가 있다.
장점 : C/C++ 는 싱글 쓰레드 방식의 순차적 설계언어인 반면, SystemC 는 concurrent process 방식으로 시스템 레벨 디스크립션을 하드웨어로 매핑하기가 용이하여 하이레벨 시스템 설계에 많이 사용된다.