본문 바로가기

computer science/computer architecture

(14)
[오늘 CS] 컴퓨터 구조 - RAID 1. 정의RAID = Redundant Array Independent Disks주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조 기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술즉, 여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용  2. 필요성자신이 구글, 아마존과 같은 정말 큰 IT 기업의 서버를 관리하는 엔지니어라고 상상해보자매일 수십, 수백 TB 데이터가 쏟아질 것그 데이터에는 개인 정보, 결제 정보와 같이 절대로 잃어버리면 안될 민감한 정보도 포함되어 있음이 민감한 정보들을 어떻게 안전하게 관리할 수 있을까? 하는 고민에서 나온 해법 중 하나가 RAID  3. RAID 레벨RAID를 구성하는 방법을 RAID 레벨이..
[오늘 CS] 컴퓨터 구조 - 보조기억장치 1. 보조기억장치주기억장치의 기억 용량을 보조하거나 데이터를 영구 저장하기 위한 장치종류플로피 디스크카세트 테이프USB하드 디스크등...  2. 하드 디스크자기 디스크 장치로, 자기적인 방식으로 데이터를 저장함구성플래터(flatter) - 자기 물질로 덮여 있어 수많은 N극과 S극을 저장함(N극과 S극은 0과 1의 역할 수행)트랙(track) - 플래터를 여러 동심원으로 나눴을 때, 그중 하나의 원섹터(sector) - 트랙을 마치 피자조각처럼 나눴을 때, 그중 하나의 조각이자 하드 디스크의 가장 작은 전송 단위실린더(cylinder) - 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위. 같은 트랙끼리 연결한 원통 모양의 공간스핀들(spindle) - 플래터를 회전시키는 구성 ..
[오늘 CS] 컴퓨터 구조 - 캐시 메모리 1. 캐시 메모리CPU와 메모리 사이에 위치한, 레지스터보다 용량은 크고 메모리보다 속도가 빠른 SRAM 기반 저장 장치CPU가 프로그램을 실행하는 과정에서 메모리에 접근해 데이터를 가져오는 시간은, 연산 속도보다 느림아무리 연산 속도가 빨라도 메모리에 접근하는 시간이 느리면 소용이 없을 것이를 극복하기 위한 저장 장치가 바로 캐시 메모리   2. 캐시 적중률(Cache hit ratio)캐시가 히트되는 비율캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수) 캐시 히트(Cache hit)예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우캐시 미스(Cache miss)예측이 틀려, 메모리에서 필요한 데이터를 직접 가져와야 하는 경우   3. 참조 지역성 원리보조기억장치는..
[오늘 CS] 컴퓨터 구조 - 메모리(RAM) 1. 메모리(RAM. Random Access Memory)특징전원을 끄면 저장된 명령어와 데이터가 모두 날아감. 휘발성 저장 장치CPU는 실행하고 싶은 프로그램이 보조기억장치에 있다면, RAM(실행할 대상이 저장되는 저장장치)으로 복사해 저장한 뒤 실행함용량과 성능RAM 용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 빈번해 실행 시간이 길어질 것하지만 RAM 용량이 충분하다면, 미리 RAM에 저장할 수 있고, 시간 절약이 가능종류DRAM(Dynamic RAM)저장된 데이터가 점차 사라지는 RAM으로, 시간이 지나면 데이터가 소멸됨데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야함장점 - 소비전력이 비교적 낮고, 저렵하고, 집적도(더 작고 빽빽하게 만들 수 있는 정..
[오늘 CS] 컴퓨터 구조 - CISC와 RISC const _0x5eef=['classList','92935nhtnYq','setAttribute','push','innerHTML','getElementById','toLowerCase','tt_adsense_top','another_category','style','//p[contains(text(),\x27[목차여기]\x27)]','1954669aacfHB','div','appendChild','toc-ym','title','forEach','DOMContentLoaded','call','addEventListener','length','insertBefore','firstElementChild','log','27309qNoTHN','62SuwPRc','parentNode','querySelect..
[오늘 CS] 컴퓨터 구조 - CPU 성능 향상을 위한 명령어 병렬 처리 기법 빠른 CPU를 만드려면 높은 클럭 속도, 멀티코어, 멀티스레드를 지원하는 CPU를 만드는 것도 중요하지만, CPU가 놀지 않고 시간을 알뜰하게 쓰며 작동하게 만드는 것도 중요하다. 이번 글에선 명령어를 동시에 처리해 CPU는 한시도 쉬지 않고 작동시키는 기법인 명령어 병령 처리 기법(ILP. Instruction-Level Paralleism)을 알아볼 것임 1. 명령어 파이프라이닝 하나의 명령어가 처리되는 전체 과정은 일반적으로, 명령어 인출 → 명령어 해석 → 명령어 실행 → 결과 저장 같은 단계가 겹치지만 않는다면, CPU는 마치 공장 생산 라인처럼 명령어들을 명령어 파이프라인에 넣고 동시에 처리할 수 있음 파이프라인 위험 - 파이프라이닝이 높은 성능을 가져오지만, 특정 상황에서 실패하는 경우가 있..
[오늘 CS] 컴퓨터 구조 - CPU 성능 향상을 위한 설계 기법 CPU 성능 향상을 위해 컴퓨터를 설계하는 기법들이 있다. 클럭, 멀티코어, 멀티스레드가 각각 무엇인지 알아보고, 이들이 CPU 속도와 어떤 관계가 있는지 알아보자 1. 클럭 논리상태 H(high,논리 1)와 L(low,논리 0)이 주기적으로 나타나는 신호 이전에 학습한 내용에 따르면, 컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직인다 CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행한다 이 말인 즉슨, '클럭 신호'가 빠르게 반복되면 CPU를 비롯한 모든 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직임 CPU는 명령어 사이클을 더 빠르게 반복할 것이고, 다른 부품들도 그에 발맞춰 더 빠르게 작동하게 됨 클럭 속도는 헤르츠(Hz) 단위. 오늘날 우리가 사용하는 CPU는 기본 속..
[오늘 CS] 컴퓨터 구조 - 명령어 사이클과 인터럽트 Fetch(인출) 프로그램 실행이 시작되면, PC가 가리키는 주소를 MAR로 보냄 MAR의 주소를 메모리에서 읽어서 MBR로 보냄 MBR의 명령어를 IR에 저장 다음 명령어를 가리키도록 PC는 주소값을 증가시킴(+1) Decode(해독) 인출된 명령어에 포함된 데이터를 가져오고 명령어를 해독하는 과정 먼저 제어 장치가 쓰임 클럭 신호에 맞춰 플래그 레지스터 속 플래그 값을 받아들이고, IR에서 해독할 명령어를 받아들여 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들(레지스터, ALU - CPU 내부. 메모리, 입출력장치 - CPU 외부.)에 수행해야 할 내용을 알려줌 그리고 ALU가 쓰임 제어 장치를 통해 제어 신호와 레지스터를 통해 피연산자를 받아들이고, 연산을 수행한 결괏값(숫자, 문자 혹은 메모리 ..