입출력 방식 프로그램 입출력, 인터럽트 기반 입출력, DMA 입출력 1] 프로그램 입출력 프로그램 속 명령어로 입출력장치를 제어하는 방법 입출력 명령어로써 장치 컨트롤러와 상호작용 프로그램 입출력 예시 메모리에 저장된 정보를 하드 디스크에 백업 (= 하드 디스크에 새로운 정보 쓰기) 1. CPU는 하드 디스크 컨트롤러의 제어 레지스터에 쓰기 명령 내보내기 2. 하드 디스크 컨트롤러는 하드 디스크 상태 확인 > 상태 레지스터에 준비 완료 표시 3-1. CPU는 상태 레지스터를 주기적으로 읽어보며 하드 디스크의 준비 여부 확인 3-2. 하드 디스크가 준비되었다면 백업할 메모리의 정보를 데이터 레지스터에 쓰기 3-3. 아직 백업 작업(쓰기 작업)이 끝나지 않았다면 1번부터 반복, 쓰기 끝났다면 작업 종료 따라..
입출력장치 입출력장치는 앞서 학습한 CPU, 메모리보다 다루기가 더 까다롭다 입출력장치가 까다로운 이유 1. 입출력장치에는 종류가 너무나도 많다 장치가 다양하면 장치마다 속도, 데이터 전송 형식 등도 다양하다 > 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어렵다 2. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다 장치 컨트롤러 위와 같은 이유로 입출력장치는 장치 컨트롤러를 통해 컴퓨터와 연결된다 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신중개 오류 검출 데이터 버퍼링 + 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법 장치 컨트롤러의 구조 여기서 상태 레지스터와 제..
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): 분..
플래시 메모리 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 ex. usb, sdd.. 범용성이 넓기에 보조기억장치에 '만' 속한다고 보기는 어려움 플래시 메모리의 회로 NAND 플래시 메모리: 우리가 여기서 언급하고 설명하는 플래시 메모리 NOR 플래시 메모리 플래시 메모리의 종류 한셀에 1비트를 저장할 수 있는 플래시 메모리 : SLC 2비트를 저장할 수 있는 플래시 메모리 : MLC 3비트를 저장할 수 있는 플래시 메모리 : TLC 4비트를 저장할 수 있는 플래시 메모리 : QLC SLC 한 셀로 두 개의 정보 표현 비트의 빠른 입출력 긴 수명 용량 대비 고가격 MLC 한 셀로 네 개의 정보 표현 (대용량화 유리) SLC보다 느린 입출력 SLC보다 짧은 수명 SLC보다 저렴 시중에서 많이 사..
하드 디스크 자기적인 방식으로 데이터 저장 하드 디스크의 구성 하드 디스크의 저장 단위 - 트랙, 섹터 기본적으로 트랙(track)과 섹터(sector) 단위로 데이터 저장 섹터의 크기: 512 바이트 ~ 4096 바이트 하드 디스크의 저장 단위 - 실린더 실린더는 여러 겹의 플래터 상에서 같은 트랙이 위치 한 곳을 모아 연결한 논리적 단위이며 연속된 정보는 한 실린더에 기록된다 하드 디스크의 데이터 접근 과정 하드디스크가 저장된 데이터에 접근하는 시간 - 탐색 시간 (seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 - 회전 지연 (rotational latency) : 헤드가 있는 곳으로 플래터를 회전시키는 시간 - 전송 시간 (transfer time) : 하드 디스..
저장 장치 계층 구조 각기 다른 용량과 성능의 저장 장치들을 CPU에 얼마나 가까운지를 기준으로 계층화하여 표현한 구조 CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다 저장 장치 계층 구조를 영문으로 나타내면 memory hierarchy, 메모리 계층 구조를 의미한다 여기서 메모리는 RAM이 아닌 일반적인 저장 장치를 의미한다 따라서 이 설명에서는 용어의 혼동 방지를 위해 저장 장치 계층 구조라고 표현한 것 캐시 메모리 CPU와 메모리 사이에 위치한 레지스터 보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장장치 계층적 캐시 메모리 (L1 - L2 -..
메모리 주소 물리 주소, 논리 주소 물리 주소와 논리 주소로 나눈 이유 메모리에 저장된 값들은 시시각각 변하기 때문 같은 프로그램을 실행하더라도 실행할 때마다 적재되는 주소는 달라짐 물리 주소 메모리 입장에서 바라본 주소 말 그대로 정보가 실제로 저장된 하드웨어상의 주소 논리 주소 CPU와 실행 중인 프로그램 입장에서 바라본 주소 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 물리 주소와 논리 주소 간의 변환 CPU와 메모리가 상호작용 하기 위해서는 변환은 필수불가결 MMU(Memory Management unit) 메모리 관리 장치라는 하드웨어에 의해 변환 MMU는 논리 주소와 베이스 레지스터(프로그램의 기준 주소, 시작 주소) 값을 더하여 논리 주소를 물리 주소로 변환 메모리 보호 한계..
RAM이란? 주기억장치의 종류에는 크게 RAM과 ROM 두 가지가 있고, ‘메모리’라는 용어는 그 중 RAM을 지칭하는 경우가 많다 RAM의 특징 RAM은 실행할 대상을 저장하는 공간이며 휘발성 저장장치이고 보조기억장치는 보관할 대상을 저장하는 공간이며 비휘발성 저장장치이다 RAM의 용량과 성능 CPU가 한번에 여러 개의 프로그램을 동시에 실행할 수 있는 성능이 RAM에 의해 결정된다 따라서, RAM의 용량과 성능이 높을수록 많은 프로그램들을 동시에 실행하는데 유리하다 RAM의 종류 DRAM, SRAM, SDRAM, DDR SDRAM DRAM Dynamic(동적의) 저장된 데이터가 동적으로 사라지는 RAM 전원이 연결되어 있더라도 지속적으로 휘발함 데이터 소멸을 막기위해 주기적으로 재활성화해야 함 일반적..
1] 명령어 집합(ISA, Instruction set architecture) 명령어 집합(구조)은 CPU가 이해할 수 있는 명령어들의 모음이다 ex. 인텔 CPU의 실행 파일을 아이폰에 옮겨 바로 실행이 불가능한 이유가 각자 명령어 집합(구조)이 다르기 때문이다 또한, 명령어 집합(구조)는 CPU의 언어라고 볼 수 있고 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속이다 명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등 많은 것이 그에 따라 달라진다 2] 명령어 집합의 두축 (1) CISC(Complex Instruction Set Computer) 복잡한 명령어 집합을 활용하는 컴퓨터(CPU)의 명령어 집합 구조이다 인텔과 AMD사의 CPU로 대표되는 x86, x86-64는 ..
1] 명령어 파이프라인 일반적으로 명령어가 처리되는 단계는 1. 명령어 인출(Instruction Fetch) 2. 명령어 해석(Instruction Decode) 3. 명령어 실행(Execute Instruction) 4. 결과 저장(Write Back) 으로 볼 수 있는데, 같은 단계가 겹치지만 않는 다면 CPU는 각 단계를 동시에 실행할 수 있고 동시에 여러 개의 명령어를 겹쳐 실행하는 기법을 명령어 파이프라인이라고 한다 2] 파이프라인 위험 명령어 파이프라인이 성능 향상에 실패하는 경우를 파이프라인 위험이라고 한다 그 종류로는 데이터 위험, 제어 위험, 구조적 위험이 있다 (1) 데이터 위험: 명령어 간의 의존성에 의해 야기 모든 명령어를 동시에 처리할 수 없는 경우(이전 명령어를 끝까지 실행해야..