묻공러
'분류 전체보기' 카테고리의 글 목록 (42 Page)

분류 전체보기

CS/[혼자 공부하는] 컴퓨터 구조

8-2] 입출력장치: 다양한 입출력 방법

입출력 방식 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 1] 프로그램 입출력 프로그램 속 명령어로 입출력장치를 제어하는 방법 입출력 명령어로써 장치 컨트롤러와 상호작용 프로그램 입출력 예시 메모리에 저장된 정보를 하드 디스크에 백업 (= 하드 디스크에 새로운 정보 쓰기) 1. CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령 내보내기 2. 하드 디스크 컨트롤러는 하드 디스크 상태 확인 > 상태 레지스터에 준비 완료 표시 3-1. CPU는 상태 레지스터를 주기적으로 읽어보며 하드 디스크의 준비 여부 확인 3-2. 하드 디스크가 준비되었다면 백업할 메모리의 정보를 데이터 레지스터에 쓰기 3-3. 아직 백업 작업(쓰기 작업)이 끝나지 않았다면 1번부터 반복, 쓰기 끝났다면 작업 종료 따라..

CS/[혼자 공부하는] 컴퓨터 구조

8-1] 입출력장치: 장치 컨트롤러, 장치 드라이버

입출력장치 입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다롭다 입출력장치가 까다로운 이유 1. 입출력장치에는 종류가 너무나도 많다 장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다 > 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다 2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다  장치 컨트롤러 위와 같은 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신중개 오류 검출 데이터 버퍼링 + 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법장치 컨트롤러의 구조여기서 상태 레지스터와 제어..

게임 엔진/유니티

유니티 최적화 관련 용어

IL2CPP 유니티는 유니티의 엔진이 기반이 되고 별도의 레이어에서 스크립트가 실행됨 그리고 컴파일을 하면 DLL 파일로 나오게 됨 유니티의 엔진에 더 가까운 부분의 기능을 컨트롤하려면 엔진에서 허용이 필요해짐 C++과 비교해서 C#은 매우 복잡한 과정을 거쳐야 함 바로 기계어로 컴파일된 C++ 프로그램들은 실행이 훨씬 빠르기 때문에 DLL을 C++로 빌드하는 방식 하지만 지원하지 않는 모듈도 있을 수 있으니 개발 도중 계속 빌드를 해서 오류가 발생하지 않도록 확인해줘야 함 실무에서는 젠킨스라는 오토 빌드 머신이 주기적으로 돌긴 하지만 자주 빌드 해주는 습관도 중요 배칭 배칭의 종류는 다이내믹 배칭, 스태틱 배칭이 있다 렌더대상을 하나씩 다 드로우 콜 하는 것이 아니라 쉐어드 메테리얼을 배칭 시켜서 한 ..

CS/[혼자 공부하는] 컴퓨터 구조

7-3] 보조기억장치: RAID의 정의와 종류

RAID의 정의 Redundant Array of Independent Disks 독립적인 하드 디스크와 SSD를 하나로 엮어서 사용하는 기술 데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술 RAID 레벨 RAID를 구성하는 기술 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 그로부터 파생된 RAID 10, RAID 50,... RAID 0데이터를 단순히 나누어 저장하는 구성 방식 각 하드 디스크는 번갈아 가며 데이터를 저장한다 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장 - 스트라입(stripe): 마치 줄무늬처럼 분산되어 저장된 데이터가 - 스타라이핑(striping): 분산..

CS/[혼자 공부하는] 컴퓨터 구조

7-2] 보조기억장치: 플래시 메모리

플래시 메모리 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 ex. usb, sdd.. 범용성이 넓기에 보조기억장치에 '만' 속한다고 보기는 어려움 플래시 메모리의 회로 NAND 플래시 메모리: 우리가 여기서 언급하고 설명하는 플래시 메모리 NOR 플래시 메모리 플래시 메모리의 종류 한셀에 1비트를 저장할 수 있는 플래시 메모리 : SLC 2비트를 저장할 수 있는 플래시 메모리 : MLC 3비트를 저장할 수 있는 플래시 메모리 : TLC 4비트를 저장할 수 있는 플래시 메모리 : QLC SLC 한 셀로 두 개의 정보 표현 비트의 빠른 입출력 긴 수명 용량 대비 고가격 MLC 한 셀로 네 개의 정보 표현 (대용량화 유리) SLC보다 느린 입출력 SLC보다 짧은 수명 SLC보다 저렴 시중에서 많이 사..

CS/[혼자 공부하는] 컴퓨터 구조

7-1] 보조기억장치: 하드 디스크

하드 디스크 자기적인 방식으로 데이터 저장 하드 디스크의 구성 하드 디스크의 저장 단위 - 트랙, 섹터 기본적으로 트랙(track)과 섹터(sector) 단위로 데이터 저장 섹터의 크기: 512 바이트 ~ 4096 바이트 하드 디스크의 저장 단위 - 실린더 실린더는 여러 겹의 플래터 상에서 같은 트랙이 위치 한 곳을 모아 연결한 논리적 단위이며 연속된 정보는 한 실린더에 기록된다 하드 디스크의 데이터 접근 과정 하드디스크가 저장된 데이터에 접근하는 시간 - 탐색 시간 (seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 - 회전 지연 (rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간 - 전송 시간 (transfer time) : 하드 디스..

CS/[혼자 공부하는] 컴퓨터 구조

6-3] 메모리와 캐시 메모리: 캐시 메모리와 참조 지역성

저장 장치 계층 구조각기 다른 용량과 성능의 저장 장치들을CPU에 얼마나 가까운지를 기준으로 계층화하여 표현한 구조CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다 저장 장치 계층 구조를 영문으로 나타내면 memory hierarchy, 메모리 계층 구조를 의미한다여기서 메모리는 RAM이 아닌 일반적인 저장 장치를 의미한다따라서 이 설명에서는 용어의 혼동 방지를 위해 저장 장치 계층 구조라고 표현한 것 캐시 메모리CPU와 메모리 사이에 위치한 레지스터 보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장장치 캐시 메모리 종류1) 계층적 캐시 메모리 (L1 - ..

CS/[혼자 공부하는] 컴퓨터 구조

6-2] 메모리와 캐시 메모리: 메모리의 주소와 한계 레지스터

메모리 주소물리 주소, 논리 주소 물리 주소와 논리 주소로 나눈 이유메모리에 저장된 값들은 시시각각 변하기 때문같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐 물리 주소메모리 입장에서 바라본 주소말 그대로 정보가 실제로 저장된 하드웨어상의 주소 논리 주소CPU와 실행 중인 프로그램 입장에서 바라본 주소실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 물리 주소와 논리 주소 간의 변환CPU와 메모리가 상호작용 하기 위해서는 변환은 필수불가결MMU(Memory Management unit) 메모리 관리 장치라는 하드웨어에 의해 변환MMU는 논리 주소와 베이스 레지스터(프로그램의 기준 주소, 시작 주소) 값을 더하여 논리 주소를 물리 주소로 변환  메모리 보호한계 레지스터를 통해 ..

CS/[혼자 공부하는] 컴퓨터 구조

6-1] 메모리와 캐시 메모리: RAM의 특징과 종류

RAM이란?주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고,‘메모리’라는 용어는 그 중 RAM을 지칭하는 경우가 많다 RAM의 특징RAM은 실행할 대상을 저장하는 공간이며 휘발성 저장장치이고보조기억장치는 보관할 대상을 저장하는 공간이며 비휘발성 저장장치이다 RAM의 용량과 성능CPU가 한번에 여러 개의 프로그램을 동시에 실행할 수 있는 성능이 RAM에 의해 결정된다따라서, RAM의 용량과 성능이 높을수록 많은 프로그램들을 동시에 실행하는데 유리하다 RAM의 종류DRAM, SRAM, SDRAM, DDR SDRAM DRAM (RAM에서 사용하는)Dynamic(동적의)저장된 데이터가 동적으로 사라지는 RAM전원이 연결되어 있더라도 지속적으로 휘발함데이터 소멸을 막기위해 주기적으로 재활성화해야 함일반..

게임 그래픽스/[일지] DirectX

[DirectX Note] 랜더링 파이프라인 (2)

Vertex Shader Input Assembler에서 받은 정점 정보들로 도형은 생성했지만 로컬 좌표게에 있기 때문에 해당 데이터를 화면에 그대로 출력해 버리면 여러 가지의 도형이 전부 같은 위치에 생성이 된다 공간 좌표계(World)로 변환해야 한다 Local Space > World Space > View Space(카메라 기준의 공간) > Projection(Clip Space) > Screen Space 월드변환 Local Space라고도 불리는 오브젝트 공간은 3차원 세상에서 표현될 각각의 개인 공간에 정의된 영역이다 그런데 이러한 오브젝트들을 하나가 아닌 여러 개를 한 화면에 모아놓은 공간을 World Space라고 한다 카메라변환 월드 변환이 완료되어 모든 물체가 한 공간(World Sp..