CS지식 쌓기 34

RAID의 정의와 종류

RAID (Redundant Array of Independent Disks) 하드 디스크와 SSD로 사용하는 기술 데이터의 안전성 혹은 높은 성능을 위해 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술 RAID 레벨 RAID 0 데이터를 단순히 나누어 저장하는 방식 스트라입 : 마치 줄무늬처럼 분산되어 저장된 데이터 스트라이핑 : 분산하여 저장하는 것 장점 : 입출력 속도 향상 단점 : 저장된 정보가 안전하지 않음 RAID 1 미러링 : 복사본을 만드는 방식 데이터를 쓸 때 원본과 복사본 두 군데에 씀 (느린 쓰기 속도) 단점 : 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어짐 장점 : 백업과 복구가 쉬움 RAID 4 오류를 검출하고 복구하기 위한 정보 RAID4의 ..

CS지식 쌓기 2023.12.29

다양한 보조 기억장치 (하드디스크, 플래시 메모리)

하드디스크 자기적인 방식으로 데이터 저장 실린더 - 같은 트랙들이 모여 이룬 것, 연속된 정보를 한 실린더에 기록 하드디스크의 데이터 접근 과정 탐색시간 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전 지연 헤드가 있는 곳으로 플래터를 회전시키는 시간 전송시간 하드 디크스와 컴퓨터 간에 데이터를 전송하는 시간 Jeff Dean - Numbers Every Programmer should know 플래시 메모리 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 범용성이 넓기에 보조기억장치에만 속한다고는 보기 어려움(ROM)으로써도 쓰임 플래시 메모리 종류 *** NAND 플래시 메모리 NOR 플래시 메모리 셀 (cell) 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 이 셀이 모여..

CS지식 쌓기 2023.12.29

캐시 메모리

저장 장치 계층 구조 CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다 속도가 빠른 저장 장치는 용량이 작고, 가격이 비싸다 캐시 메모리 CPU와 메모리 사이에 위치한, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치 CPU의 연산속도와 메모리 접근 속도의 차이를 조금이나마 줄임 캐시 메모리까지 반영한 저장 장치 계층 구조 계층적 캐시 메모리(L1-L2-L3) 참조 지역성의 원리 CPU가 메모리에 접근 할 때의 주된 경향을 바탕으로 만들어진 원리 CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다 CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다 캐시 메모리는 메모리보다 용량이 작다 메모리의 모든 내용을 저장할 수 없다 CPU가 사용할 법한 ..

CS지식 쌓기 2023.12.29

메모리의 주소 공간 (물리주소, 논리주소)

물리 주소 메모리 입장에서 바라본 주소 말 그대로 정보가 실제로 저장된 하드웨어 상의 주소 논리 주소 CPU와 실행 중인 프로그램 입장에서 바라본 주소 실행 중인 프로그램 각각에게 부여된 0번지부터 시작하는 주소 주소의 변환 MMU(메모리 관리 장치) 라는 하드웨어에 의해 변환 MMU는 논리 주소와 베이스 레지스터(프로그램의 첫번째 물리 주소) 값을 더하여 논리 주소를 물리 주소로 변환 이렇게 되면 다른 데이터 삭제됨 한계 레지스터 프로그램의 영역을 침범할 수 있는 명령어의 실행을 막음 베이스 레지스터가 실행 중인 프로그램의 가장 작은 물리 주소를 저장한다면, 한계 레지스터는 논리 주소의 최대 크기를 저장 베이스 레지스터 ≤ 프로그램 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값 메모리 보호 ..

CS지식 쌓기 2023.12.29

RAM의 특성과 종류

RAM의 특징 휘발성 저장 장치이고, 보조 기억 장치는 비휘발성 저장 장치 RAM을 책상 크기에 비교하고 책장에서 책을 가져다놓을 수 있는 개수가 램의 크기라고 생각하면 됨. 보조 기억장치 - 책장, 책 - 프로그램, 사람 - CPU RAM의 종류 DRAM (Dynamic RAM) Dynamic = 동적의 저장된 데이터가 동적으로 사라지는 RAM 데이터의 소멸을 막기 위해 주기적으로 재활성화 해야함 일반적으로 사용됨 소비전력이 낮고, 저렴, 집적도가 높아 대용량 SRAM (Static RAM) Static = 정적의 저장된 데이터가 정적인 (사라지지 않는) DRAM보다 일반적으로 더 빠름 상대적으로 소비전력과 가격이 높고 집적도가 낮아 대용량으로 안되나 속도가 빠름 SDRAM (Synchronous DR..

CS지식 쌓기 2023.12.29

명령어 집합 구조, CISC, RISC

명령어 집합(구조) CPU가 이해할 수 있는 명령어들의 모음 CPU의 언어(ISA)인 셈 CISC (Complex Instruction Set Computer) 복잡한 명령어 집합을 활용하는 컴퓨터(CPU) 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용 다양하고 강력한 명령어 활용 상대적으로 적은 수의 명령어로도 프로그램 실행 가능 명령어 파이프라이닝이 불리(크기가 다 달라 일정하지 않음) RISC ( Reduced Instruction Set Computer) 명령어의 종류가 적고, 짧고 규격화된 명령어 사용 CISC에 비해 파이프라이닝이 유리 메모리 접근 최소화, 레지스터 십분 활용 프로그램을 이루는 명령어의 수가 많음

CS지식 쌓기 2023.12.29

명령어 병렬 처리 기법

명령어 파이프라인 순서 명령어 인출 명령어 해석 명령어 실행 결과 저장 (같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행하는 기법) 파이프라인 위험 : 명령어 파이프 라인이 성능 향상에 실패하는 경우 데이터 위험 명령어 간의 의존성에 의해 야기 (전 명령어가 끝나야만 다음 명령어 가능) 제어 위험 프로그램 카운터의 갑작스러운 변화 구조적 위험 서로 다른 명령어가 같은 CPU 부품(ALU, 레지스터)을 쓰려고 할 때 슈퍼스칼라 CPU 내부에 여러 개의 명령어 파이프 라인을 포함한 구조 이론적으로는 파이프라인 개수에 비례하여 처리 속도 증가 개수가 많아지면 파이프라인 위험도의 증가 파이프라인 개수에 비례하여 처리 속도가 증가하진 않음 비순차적 명령어 처리 파이프라인의 중단을 방지하기 위해 명령..

CS지식 쌓기 2023.12.29

클럭,코어,스레드

컴퓨터 부품들은 클럭 신호에 맞춰 움직임 클럭 속도 클럭 속도 : Hz 단위로 측정 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수 클럭이 ‘똑-딱’하고 1초에 한 번 반복되면 1Hz 클럭이 1초에 100번 반복되면 100 Hz 필요 이상으로 클럭을 높이면 발열이 심각해짐 CPU 속도를 늘리는 방법? 클럭 속도를 늘리는 방법 이외에는? 코어 수를 늘리는 방법(듀얼코어, 멀티코어) 스레드 수를 늘리는 방법(멀티스레드) 코어 CPU와 더불어 명령어를 실행하는 부품 CPU 내에서 명령어를 실행하는 부품으로 여러 개 있을 수 있음 멀티코어 - CPU 안에 여러개의 코어를 포함하고 있음 코어 수에 비례하여 꼭 성능이 증가하진 않음 스레드 하드웨어적 스레드 하나의 코어가 동시에 처리하는 명령어 단위 논리 프로세서라고..

CS지식 쌓기 2023.12.29

명령어 사이클과 인터럽트

명령어 사이클 프로그램 속 명령어들은 일정한 주기가 반복되며 실행되는데 이 주기를 명령어 사이클이라고 함 인출 사이클 - 가장 먼저 CPU로 갖고 와야 한다 실행 사이클 - 갖고 왔으면 실행해야 한다 보통은 인출 - 실행으로 사이클을 돌리지만 어떤 명령어는 메모리 접근이 더 필요한 경우 간접 사이클을 거쳐 실행 사이클로 감 인터럽트 정해진 흐름을 끊는 것 CPU가 주목해야할 때, CPU가 얼른 처리해야 할 다른 작업이 생겼을 때 발생 동기 인터럽트(예외) CPU가 예기치 못한 상황을 접했을 때 폴트, 트랩, 중단, 소프트웨어 인터럽트 비동기 인터럽트(하드웨어 인터럽트) 주로 입출력 장치에 의해 발생 알림(세탁기 완료 알림, 프린트 완료)과 같은 역할 CPU가 입출력 작업 도중에도 효율적으로 명령어를 처리..

CS지식 쌓기 2023.12.29

ALU와 제어장치

ALU 계산하는 장치 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들임 플래그 연산 결과에 대한 부가 정보 ( 양수인지 음수인지 따로 내보내는 값) 결과를 담을 레지스터에 비해 결과가 클 때 플래그 레지스터로 담김 제어장치 제어 신호를 발생 시키고 명령어를 해석하는 장치 받아들이는 정보 - 클럭, 명령어 레지스터, 플래그 레지스터 내보내는 정보 - 제어신호(To 레지스터, ALU. 메모리, 입출력장치

CS지식 쌓기 2023.12.29