[컴퓨터구조] #13~14 추가 사설 문제
·
전공/컴퓨터구조
문제 가상메모리의 정의와 역할에 대해 설명하세요. 가상 메모리 시스템 주소와 페이지 부재(fault)에 대해 설명하세요. 페이지 테이블과 Context Switching(문맥 교환)에 대해 설명하세요. 가상메모리 성능개선 방법에 대해 설명하세요. RAID의 정의와 종류에 대해 설명하세요. SISD, MIMD, SIMD, SPMD의 차이점에 대해 설명하세요. 하드웨어 멀티스레딩과 Fine-garines에 대해 설명하세요. UMA와 NUMA의 차이점에 대해 설명하세요. GPU 구조와 GPGPU(General Processing GPU)에 대해 설명하세요. Clustering/Warehouse 개념과 특성에 대해 설명하세요. 정답 가상메모리는 운영체제/하이퍼바이저와 HW의 지원이 필요한 기술로, 물리메모리보다..
[컴퓨터구조] #11~12 추가 사설 문제
·
전공/컴퓨터구조
문제 캐시(Directed Mapped)의 정의와 캐시 접근 방법에 대해 설명하세요. 캐시의 실패율과 블록사이즈와의 관계에 대해 설명하세요. 캐시의 성능을 높이기 위한 방법에 대해 설명하세요. 신뢰성/가용성의 정의와 MTTF 개선 방법에 대해 설명하세요. 에러 검출 방법에 대해 설명하세요. 가상머신의 정의와 하이퍼바이저 유형에 대해 설명하세요. 전가상화와 반가상화의 차이점에 대해 설명하세요. 컨테이너 기반 가상화의 정의와 도커의 특징에 대해 설명하세요. 클라우드와 가상화의 관계에 대해 설명하세요. 클라우드 서비스의 종류와 SPU 모델에 대해 설명하세요. 정답 캐시(Directed Mapped)란 캐시 메모리 참조를 메모리 주소를 사용해서 직접 지정하는 방식을 의미합니다. 블록 주소를 전체 캐시 블록 수로..
[컴퓨터구조] #9~11 추가 사설 문제
·
전공/컴퓨터구조
문제 해저드(Hazzard)의 정의와 유형에 대해 설명하세요. 데이터 해저드의 발생 원인과 해결 방법에 대해 설명하세요. 버퍼의 정의와 사용 이유에 대해 설명하세요. CPU 성능 향상을 위한 슈퍼스칼라와 하이퍼스레드에 대해 설명하세요. 파이프라인 분기의 정의와 분기 비용을 줄이기 위한 방법에 대해 설명하세요. 예외의 정의와 파이프라인에서의 예외 처리 방식에 대해 설명하세요. 명령어를 통한 병렬성과 병렬성을 높이기 위한 방법에 대해 설명하세요. 메모리 계층 구조와 지역성의 원리에 대해 설명하세요. 캐시와 버퍼의 차이점에 대해 설명하세요. 플래시 메모리의 종류와 Wear Leveling에 대해 설명하세요. 정답 해저드(Hazzard)는 명령어가 파이프라인에서 정상적으로 실행되지 않는 상황을 의미합니다. 이로..
[컴퓨터구조] #14 병렬프로세서
·
전공/컴퓨터구조
Sclability 시스템의 리소스를 증가/추가시켜 계속 성능 및 용량이 증가하는 상황 - Scale-Up 워드 크기 증가 클럭 스피드 증가 멀티 코어 멀티 프로세서 멀티 보드 멀티 랙 멀티 데이터센터 멀티코어 여러 개의 코어를 가진 프로세서 Multi-core 공유 메모리 프로세서 - SMP(Shared Memory Processor) ILP(Instruction-level Parallellism)의 도움으로 코어 일부 활용 모든 코서/CPU를 사용하려면 OS/Program 지원 필요 -> 고난도 - 병렬성을 높이려면 전체적인 프로그램의 구조 변경 필요 Scaling - Strong Scaling: 문제의 크기 고정해서 성능 증가 - Weak Scaling: 프로세서의 수에 비례해서 문제 크기를 증가 ..
[컴퓨터구조] #13 가상메모리
·
전공/컴퓨터구조
가상메모리 가상메모리는 운영체제/하이퍼바이저와 HW의 지원 필요 가상 메모리의 메모리 보호 - 하이퍼바이저나 OS가 각 가상머신이나 프로세스의 메모리 영역을 보호 가상메모리의 역할 물리메모리보다 큰 프로그램 실행 가능하도록 메모리를 디스크/SSD의 캐시역할로 사용하도록 만드는 기술 프로그램마다 가상메모리주소공간 제공 가상메모리와 물리메모리 간의 변환과정 - 페이지(page) 개념을 사용 가상 메모리 시스템 주소 = 가상 페이지 번호 + 페이지 오프셋(offset) 페이지 부재(falut) 시 엄청난 사이클이 필요함 - 대응 페이지 크기가 커야 함 페이지 부재 발생률을 낮추는 구성 -> fully associative SW 알고리즘을 통해 개선 쓰기 방식은 Write-back사용 페이지 테이블 페이지 테이..
[컴퓨터구조] #12 가상머신/가상화/클라우드
·
전공/컴퓨터구조
가상머신 HW 지원 필요 System Mode/User Mode - OS의 커널 관련 이해 필요 Guest OS는 User Mode에서만 동작 - 가상화된 자원만 사용 가상화 컴퓨터의 자원(CUP, 메모리, 저장장치, 네트워크 등)의 추상화 서버의 리소스가 가상화를 통해서 하나의 서버에 여러 대의 OS를 동작시킬 수 있는 기술 가상화의 레벨 API(Application Programming Interface) - 응용프로그램 레벨의 함수/메소드 ABI(Application Binary Interface) - 플랫폼과 소프트웨어 사이의 인터페이스 정의 - API보다 낮은 레벨 - API는 유지되면서 ABI는 변경되는 경우: 코드는 유지하면서 재 컴파일 ISA(Interuction Set Architectu..
[컴퓨터구조] #11 메모리 계층 구조
·
전공/컴퓨터구조
메모리 계층 구조 비싸고 빠른 메모리 vs. 싸고 느린 메모리 두 메모리를 섞어서 더 빠른 쪽에 가까운 메모리의 속도가 나도록 하는 기법 메모리 속도에 따른 분류 어떻게 속도를 높일 것인가 지역성의 원리를 활용 - 시간적 vs. 공간적 시간적 지역성 - 한번 참조된 항목은 다시 참조되는 경향이 있음 공간적 지역성 - 어떤 메모리 참조 주변의 메모리 참조가 일어날 가능성 높음 프로그램에서 최대한 지역성을 활용해 성능 향상 도모 지역성(Locality) 히트(hit)/미스(miss) Hit - 대부분의 데이터를 캐시에서 참조 가능 Miss - 캐시 참조시간 + 메모리 직접 참조시간까지 필요 최근에는 캐시를 확인해서 메모리를 버스로 연결해 동시에 참조해 페널티를 줄이는 기술 도입 캐시 교체 정책 - 캐시의 내..
[컴퓨터구조] #10 데이터패스(파이프라인)
·
전공/컴퓨터구조
버퍼 큐(원형 큐) - 버퍼로 사용 스택 - 함수호출(인자 전달, 리턴)에 사용 버퍼 사용 이유 입출력 속도에 차이가 있을 때 사용 서버가 터지지 않도록 조절 - 시스템 안정성 증가 동기식 시스템의 단점 보안 - 모든 구성 요소가 동일한 클럭 속도로 작동해야 함, 버퍼를 사용해 보완 CPU 성능 향상 슈퍼스칼라 한 번에 여러 개의 명령어를 동시에 실행시킬 방법 - 파이프마다 실행하는 명령어 간의 연관관계없어야 함(병렬성) 슈퍼스칼라 사용 이유: 프로그램이 시작할 때 파이프라인을 채우기까지 시간이 걸림 하이퍼스레드 물리적으로 하나의 실행 장치를 가지고 있는 CPU에 가상 실행 장치를 두 개 할당 파이프라인 분기 비교문/반복문에서 조건 분기 발생 - 조건에 따라 파이프라인 지연 발생 분기 비용 줄이기 분기 ..
[컴퓨터구조] #9 해저드
·
전공/컴퓨터구조
해저드(Hazzard) 명령어가 파이프라인에서 정상적으로 실행되지 않는 상황 실행불가(stall 발생) - 파이프라인 버블(bubble) 유형 구조적 해저드 같은 클럭사이클에서 동시에 실행하도록 원하는 명령어의 조합을 지원하지 않음 데이터 해저드 명령어를 실행하기 위한 데이터가 준비가 되지 않아 생기는 지연 -> 전방전달/우회전달 제어 해저드 조건에 따른 실행(if)일 경우 어떤 상황이냐에 따라 밀어 넣은 명령어가 의미 없어지는 경우 prediction/speculation예측을 통한 실행 필요 지연분기(delated branch) 데이터 해저드 명령어를 실행하기 위한 데이터가 준비되지 않아 생기는 지연 add에서 $s0의 값을 넣으려면 WB단계를 거쳐야 함 sub에서 $s0을 참조하는 단계는 ID단계 ..
[컴퓨터구조] #8 파이프라이닝 - 추가 사설 문제
·
전공/컴퓨터구조
문제 파이프라이닝이란 무엇인가요? 파이프라인 데이터패스 및 제어에서 5단계의 파이프라인으로 구성되는데 각 단계의 이름과 역할은 무엇인가요? 해저드(Hazzard)란 무엇인가요? 해저드의 유형은 무엇인가요? 데이터 해저드를 해결하는 방법은 무엇인가요? 정답 파이프라이닝은 클럭스피드가 일정한 상태에서 처리성능을 개선하는 기술입니다. 전체 작업을 여러 개의 단계로 나눠 분산처리하여 병렬성 증가를 통해 성능 개선합니다. 이전 명령이 실행완료되기 전에 다음 명령어 실행 시작합니다. RISC 프로세서를 전제로 설계됩니다. 파이프라인 데이터패스 및 제어에서 5단계의 파이프라인으로 구성되며 각 단계의 이름과 역할은 다음과 같습니다: IF(Instruction Fetch) - 명령어 인출, ID(Instruction D..