목록카테고리 (60)
교대최소제곱법
입출력장치 보조기억장치도 입출력장치임! 장치 컨트롤러 → 입출력장치와 cpu를 연결해주는 장치 + 데이터 버퍼 장치 컨트롤러 : 버스에 연결됨 - 데이터, 상태, 제어 레지스터 장치 드라이버 : 장치 컨트롤러를 제어하는 프로그램 + 운영체제가 이해할 수 있도록 입출력 방식 프로그램 입출력 : 명령어로 장치 컨트롤러를 제어 → 레지스터에 직접 씀 메모리 맵 입출력 : 같은 메모리 위치에 입출력장치를 위한 주소 공간을 사용 고립형 입출력 : 메모리를 두 개 사용 (메모리, 입출력장치) → 대신 입출력 전용 명령어를 사용 문제는 주기적으로 장치 컨트롤러에 접근해서 준비 여부를 확인해야함 → 그래서 인터럽트를 사용하기로 함 인터럽트 기반 입출력 순차적으로 처리하는건 현실적이지 않음PIC는 여러 장치 컨트롤러와 ..
보조기억장치 SSD : 플래시메모리 기반 NAND 플래시 : 대용량에 많이 쓰임SLC : 0,1만 저장됨 → 빠르지만 개 비쌈TLC : 느리지만 저렴 MLC : 00, 01, 10, 11 → 시중에서 많이 사용, 수명은 SLC보다 더 짧음 cell에 몇 비트를 저장할 수 있는가? SLC, MLC, TLC, QLC 저장단위 셀 < 페이지 < 블록 < 플레인 < 다이 읽기 쓰기의 단위가 다르다 !!! 읽기 쓰기는 페이지 단위로 이루어짐 + 플래시 메모리는 덮어쓰기가 불가능 삭제는 블록단위로 이루어짐 → 그래서 수정을 하고 싶으면 기존에 페이지를 invalid로 바꾸고 새 페이지를 쓴다 *가비지 컬렉션 → invalid 페이지를 없애기 위해 valid 페이지만 복사해서 새로 쓰고 이전에 블록은 삭제 RAID ..
메모리 RAM DRAM : Dynamic RAM 전력이 있어서 알아서 사라짐 SRAM : Static RAM 안 사라짐, d램보다 빠름 → 캐시메모리 SDRAM : d램의 업그레이드, 클럭 속도랑 동기화 DDR SDRAM : SDRAM의 업그레이드, 대역폭 두개(1차선 → 2차선) DDR2 SDRAM : 2차선 → 4차선, 3는 8개, 4는 16개, 5는 32개?? 주소 공간 : 물리 주소, 논리 주소 → 메모리에 담기는 데이터가 계속 바뀌기 때문에 논리주소 : 0번지가 여러개 있어도 상관 없음 물리주소 : 0번지가 한개라 MMU로 변환해줘야 함 MMU : 논리주소 + 베이스 레지스터로 주소 변환 프로그램의 종류에 따라 베이스 레지스터가 정해져 있음 한계 레지스터 : 다른 프로그램의 영역을 침범하지 않도..
명령어 주소 지정 방식 직접 주소 지정 간접 주소 지정 레지스터 주소 지정 레지스터 간접 주소 지정 스택 주소 지정 변위 주소 지정 : 오퍼랜드 + 레지스터 값 상대 주소 지정 : 오퍼랜드 + 프로그램 카운터 베이스 레지스터 주소 지정 : 오퍼랜드 + 베이스 레지스터(기준 주소) CPU의 내부 구성 ALU ALU : 계산기 역할 플래그 : 연산 결과에 대한 부가 정보(ex 양수 음수) 제어장치 클럭 신호를 받는다 : 시간 단위(박자) 명령어 레지스터를 해석 제어 신호 : cpu 내부 외부에 출력 레지스터 레지스터 : 저장장치 메모리에서 데이터를 가져오는 순서 프로그램카운터 → 메모리 주소 레지스터 → 메모리 버퍼 레지스터 → 명령어 레지스터 *유효주소 : 연산에 사용할 데이터가 저장된 위치 → 명령어 주..