장치 컨트롤러와 장치 드라이버 들어가기 앞서, 입출력장치는 CPU,메모리보다 다루기가 더 까다롭다!! 첫째, 입출력장치에는 종류가 너무 많다 둘째, 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다 위의 이유로 장치 컨트롤러를 통해 컴퓨터와 연결 된다 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신중개 (일종의 번역가 역할 수행) 오류 검출 데이터 버퍼링 - 버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에서 주고받는 데이터 - 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법 장치 컨트롤러의 역할 버스에 연결 되어서 데이터 레지스터,상태 레지스터,제어 레지스터로 구성되어 있다 데이터 레지스터 - CPU와 입출력장치 사이에 주고받을 데이터가 담기는 ..
RAID Redundant Array of Independent Disk (독립된 디스크의 복수 배열) 말 그대로 RAID는 여러개의 디스크를 묶어 하나의 디스크 처럼 사용하는 기술 RAID의 정의 하드 디스크와 SSD로 사용하는 기술 데이터의 안정성 혹은 높은 성능을 위해 여러 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술 RAID 0 데이터를 단순히 나누어 저장하는 구성 방식 각 하드 디스크는 번갈아가며 저장 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장된다 stripe : 마치 줄무늬 처럼 분산되어 저장된 데이터 striping : 분산하여 저장하는 것 장점 - 입출력 속도의 향상 단점 - 저장된 정보가 안전하지 않다 RAID 1 미러링 : 복사본을 만드는 방식 데이터..
하드디스크 자기적인 방식으로 데이터 저장 플래터 : 실질적으로 데이터가 저장되는곳은 동그란 원판. 수많은 N극과 S극을 저장한다(0,1의 역할 수행) 스핀들 : 플래터를 회전시키는 구성요소 RPM : 스핀들이 플래터를 돌리는 속드를 분당 회전수로 나타냄 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소. - 미세하게 떠 있는 채로 데이터를 읽고 쓰는, 마치 바늘같이 생긴 부품 - 디스크암에 부착되어 있다 하드 디스크 - 저장 단위 플래터는 트랙과 섹터라는 단위로 데이터를 저장한다 - 하나 이상의 섹터를 묶어 블록이라고 표현하기도 함 실린더 : 플래터는 트랙과 섹터로 나뉘고, 같은 트랙이 위치 한 곳을 모아 연결한 논리적 단위 하드 디스크- 데이터 접근 과정 하드 디스크가 저장된 데이터에 접근하는 ..
저장 장치 계층 구조 CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다 캐시 메모리 CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장장치 CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생 "CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가지고 와서 쓰자" 메모리에 접근 = 물건을 사러 가는것 메모리 = 물건은 많지만 집과는 멀리 떨어져 있어 왕복이 오래 걸리는 대형마트 캐시 메모리 = 물건이 많지는 않아도 집과 가까이 있는 편의점 계층적 캐시 메모리 (L1-L2-L3 캐시) - 숫..
물리 주소와 논리 주소 cpu와 실행중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 다 알지 못한다 메모리에 저장된 값들은 시시각각 변하기 때문이다 새롭게 실행되는 프로그램은 새롭게 보조기억장치로부터 메모리에 적재 실행이 끝난 프로그램은 메모리에서 삭제 같은 프로그램을 실행하더라도 실행할 때 마다 적재되는 주소는 달라짐 물리 주소 메모리 입장에서 바라본 주소 말 그대로 정보가 실제로 저장된 하드웨어상의 주소 논리 주소 CPU와 실행 중인 프로그램 입장에서 바라본 주소 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 물리 주소와 논리 주소의 변환(MMU) MMU라는 하드웨어에 의해 변환 ex) CPU - (논리주소) - MMU - (물리주소) - 메모리 MMU는 논리 주소와 베이스 레..
RAM의 특징 RAM은 실행할 대상을 저장하고, 휘발성 저장 장치이다 보조기억장치는 보관할 대상을 저장하고,비휘발성 저장 장치이다 RAM의 용량과 성능 RAM의 용량이 크면 많은 프로그램들을 동시에 실행하는 데에 유리하다 - 다다익램.. 쉽게 말해 책장의 많은 책들을 큰 책상(RAM)일수록 많이 올려두고, 왔다 갔다 할 필요 없이 동시에 볼 수 있다 RAM의 종류 1) DRAM (Dynamic RAM) 저장된 데이터가 동적으로 사라지는 RAM 데이터 소멸을 막기 위해 주기적으로 재활성화 해야한다 일반적으로 메모리로 사용되는 RAM - 상대적으로 소비전력이 낮고, 저렴하고, 집적도가 높아서(더 작고 빽빽하게 저장)대용량으로 설계하기 용이하다 2) SRAM (Static RAM) 저장된 데이터가 정적인(사라..
명령어 집합(구조) ISA CPU가 이해할 수 있는 명령어들의 모음 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속 명령어 집합의 두축 CISC & RISC 1. CISC(Complex Instruction Set Computer) 복잡한 명령어 집합을 활용하는 컴퓨터(CPU) -> 복잡하고 다양한 명령어 활용 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다 명령어 파이프라이닝이 불리하다는 치명적인 단점.. - 명령어의 크기와 실행되기 전까지의 시간이 일정하지 않다. - 대다수의 복잡한 명령어는 사용 빈도가 낮다 ex) x86,x86-64는 대표적인 CISC 기반의 ISA 2. RISC(Reduced Instructi..
시간을 알뜰하게 쓰며 CPU의 명령어들을 처리할 수 있는 방법이 있을까? 명령어 파이프 라인 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면? - 1. 명령어 인출 - 2. 명령어 해석 - 3. 명령어 실행 - 4. 결과 저장 - 같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행할 수 있다. ⚠️ 파이프라인 위험 데이터 위험 - 명령어 간의 의존성에 의해 생기는 문제 제어 위험 - 프로그램 카운터의 갑작스러운 변화 구조적 위험 - 서로 다른 명령어가 같은 CPU부품(ALU,레지스터)를 쓰려고 할 때 슈퍼스칼라 CPU내부에 여러개의 명령어 파이프라인을 포함한 구조(오늘날의 멀티 멀티스레드 프로세서) 이론적으로는 파이프라인 개수에 비례하여 처리 속도가 올라가지만 파이프라인 위험도의 증가로 ..