휠 세미나 - 하드웨어 Coearth, george
컴퓨터의 구성 CPU Motherboard(Mainboard) GPU RAM 보조저장장치 (HDD/SSD) PSU
CPU
CPU? central processing unit의 약어 컴퓨터 프로그램의 명령을 해석, 연산 등의 작업을 하고 컴퓨터 시 스템 전체를 제어하는 역할을 하는 컴퓨터의 두뇌 기본 구성으로는 CPU에서 처리할 명령어를 저장하는 역할을 하는 프로세서 레지스터, 비교, 판단, 연산을 담당하는 산술논리연산장 치(ALU), 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으 로 제어하는 제어부(control unit)과 내부 버스 등이 있다. - Wikipedia
CPU 제조/설계하는 회사들 Desktop/Server 용 제품 Mobile 용 제품 INTEL AMD Qualcomm Arm Holdings Apple Samsung
CPU의 매우 간략한 역사 Intel 8086 CPU의 경우 X86 아키텍처의 시초가 되었음
아키텍처, Instruction Set? CS311 – 전산기조직 Instruction set 은 CPU가 이해하고 실행할 수 있는 아주 기본적인 명령 어들의 집합을 의미함 Architecture – ISA (Instruction set architecture, 레지스터와 메모리, 연산 등의 명령어들을 어떻게 implemenet할 것인지) 와 Microarchitecture(CPU가 어떻게 ISA를 적용할지) 등을 포함하는 개 념 종류: x86, Sparc(스팍스 이름 기원), Arm(모바일, embedded용으로 많이 쓰임)
CPU 선택 가이드 http://ark.intel.com/ 여기서 비교할 수 있음 CPU 브랜드 – Intel, AMD 캐시 크기 클럭 속도 코어/쓰레드 개수 소켓 종류 전력 소모량
L1, L2, L3 캐시란? CPU에 존재하고 있는 빠른 메모리로 비교적 느린 RAM을 완충해주는 역 할을 함. 클수록 좋음 클럭 속도란? 프로세서의 트랜지스터가 열라고 닫기는 속도를 의미함. 클럭이 높을수 록 속도가 빨라지만 전력소모가 커짐 쓰레드와 코어란? 코어란 하나의 다이(칩)에 있는 독립적인 물리적 CPU개수를 의미하고 쓰 레드는 하나의 코어가 받거나 처리할 수 있는 연속적인 명령을 의미하는 소프트웨어 적인 개념이다.
Xeon vs i시리즈 서버용으로 나온 Xeon CPU는 데스크탑용 CPU와는 무슨 차이가 있을까? 지금은 예전과 달리 아키텍처의 차이는 거의 없음 ECC 메모리의 지원 여부 캐시나 코어 개수의 차이 Xeon은 내장 GPU가 없음
Mainboard(메인보드)
Motherboard 메인보드라고도 불림 부품들을 연결해주는 회로기판이라고 보면 쉬움 칩셋이 있으며(노스브리지, 사우스브리지) CPU, 메모리, 그래픽카 드, HDD, 키보드 마우스 등을 연결/제어하는 역할을 한다. 칩셋에 따라서 지원하는 CPU나 메모리가 다르다. CPU를 장착하는 CPU socket이 있는데 CPU에 따라 지원하는 socket이 다르다.
Intel Z87 칩셋의 예시 예전에는 노스브리지가 메모리 제어 기능을 했지만 요즘에는 CPU가 메모리 제어를 대신한다.
Motherboard Form Factor 규격의 종류로는 가장 많이 쓰이는 폼펙터로는 atx가 있으며 그 외에 는 btx, eatx 등이 있다.
CPU 업그레이드시 유의점 만약 소켓이 달라지면 메인보드도 함께 바꿔야 하는 불편함이 있 음 예) Haswell -> Broadwell
GPU graphics processing unit (GPU) 제조 회사들: Intel, Nvidia, AMD, Apple(PowerVR), 삼성(Mali(GPU)) 주로 컴퓨터 그래픽을 위한 연산을 함 Many core 구조임. 자세한 것은 요즘은 GPGPU (general-purpose computing on GPU)라고 해서 CPU에서 하는 연산을 일부 대신하기도 함 CUDA, OpenCL을 통해서 GPGPU을 이요한 프로그래밍이 가능
GPU 구매/업그레이드 가이드 어느 정도 급의 그래픽카드가 필요한가? 그래픽카드 업그레이드 http://www.videocardbenchmark.net/ 참고 만약 headless서버 구성시에는 따로 그래픽카드 구매할 필요는 없음 그래픽카드 업그레이드 CPU와 다르게 칩셋에 크게 의존적이지 않음 PCI-EXPRESS 규격도 11년 전에 나왔고 당분간은 바뀔 예정이 없으 므로 업그레이드시 호완성 여부는 따질 필요가 적음
RAM
RAM Random-access memory의 약자 CPU가 데이터를 순서에 맞게 처리할 수 있도록 그 데이터를 임시 기억 하는 장치 데이터를 임시로 저장하므로 컴퓨터가 꺼지면 데이터는 날라감 => 데이터를 지속적으로 저장하기 위해서는 HDD와 같은 보조기억장 치 이용 데이터를 읽고 쓰는 시간이 거의 비슷하다. RAM은 chip으로 구성 되어있고 basic storage unit은 cell로써 1 개의 cell에 1 bit의 데이터를 저장한다.
RAM의 분류 RAM은 기본적으로 SRAM과 DRAM으로 나뉜다. Static RAM (SRAM) 1개의 cell에 4 or 6 transistor circuit이 관여한다. DRAM에 비해 빠르고 매우 비싸다. 전원이 켜져 있는 동안 데이터를 유지한다. cache memory로 사용된다. Dynamic RAM (DRAM) DRAM stores each bit as charge on a capacitor. 각 cell은 1개의 capacitor와 1개의 single access transistor를 갖는다. 데이터가 10~100ms마다 refresh된다. electrical noise, radiation 등의 외부 요인에 상대적으로 민감하다. => Error Correcting Code 필요 컴퓨터의 주기억장치로 이용된다.
DRAM의 작동 원리 – sp 여기서 d * w DRAM chip은 칩 안에 d개의 supercell이 존재하고, 각 supercell은 w bits의 데이터를 저장함을 의미한다.
DRAM의 작동 원리 - sp
DRAM의 작동 원리 - sp
DRAM의 작동 원리 - sp
SDRAM Synchronous Dynamic Random Access Memory DRAM은 기본 DRAM => FPM DRAM => EDO DRAM => SDRAM => DDR SDRAM의 순서로 발전해왔다. SDRAM 이전의 RAM들은 memory controller와 communicate하 기 위해 다양한 control signal들을 사용했다. SDRAM은 이러한 control signal들을 하나의 external clock으로 대신하였다. 이러한 변화로 SDRAM은 기존의 DRAM들에 비해 빠른 속도를 보 였다.
DDR SDRAM Double Data-Rate Synchronous Dynamic Random Access Memory SDRAM은 clock에서 rising edges만을 이용해 CPU의 memory controller와 통신을 하였는데 DDR SDRAM에서는 falling edges 도 이용을 한다 (대역폭을 2배로 늘려준다.) DDR SDRAM이 나옴에 따라 SDRAM을 SDR SDRAM으로 부르기도 한 다. 이론적으로 SDRAM에 비해 2배 빠르다. DDR SDRAM은 다시 DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM의 순서로 발전하였다.
SDR, DDR, DDR2 SDRAM 비교
DDR2 => DDR3 DDR SDRAM => DDR2 SDRAM의 변화와 같은 방법으로 external clock frequency를 다시 2배로 늘렸다. 즉, 메모리 셀의 속도보다 입출력 버스의 속도가 4배 빠르다. 2005년 개발되었다. 이론적으로 DDR2에 비해 2배의 속도를 낼 수 있다.
DDR3 SDRAM 표준 T/s: transfer per second 1 transfer당 64bit가 전달되므로 최고 전송 속도는 데이터 전송 속도 * 8
RAM 고르기 지금은 대부분 컴퓨터에서 DDR2나 DDR3 SDRAM을 쓰고 있으며 당연히 DDR3의 성능이 더 우수하다. 하지만 DDR3 SDRAM이 2005년에 개발된 만큼 오래된 메인보드 나 CPU는 DDR3 SDRAM을 지원하지 않을 수 있다. 반대로 최근에 나온 CPU는 DDR3 이전의 RAM을 지원하지 않는다. e.g.. Intel Core i-7은 DDR3 SDRAM만을 지원한다. 또 각각의 RAM마다 핀 개수가 다르기 때문에 자신의 컴퓨터에 맞 는 RAM을 써야 한다. https://en.wikipedia.org/wiki/DIMM
32비트 운영체제 32비트 운영체제의 경우 보통 약 4GB의 메모리만 사용할 수 있음 0x00000000 에서 0xFFFFFFFF 은 2^32 2^32 = 4,294,967,296 약 4GB이다 대안) 64비트 운영체제를 쓰던지 4GB이하의 메모리를 사용하자 대안2) 남는 램 용량을 램디스크로 설정하고 그 공간을 다시 페이 징파일이나 스왑 공간으로 설정하면 활용 가능하다.
다다익RAM RAM은 많으면 좋다. 현재 돌아가는 프로그램들이 요구하는 메모리의 합보다 RAM 용량 이 작으면 계속해서 RAM이 하드디스크를 읽어야 하므로 속도 면 에서 매우 불리 –thrashing 현상 Windows7이상에서는 기본적으로 2GB정도의 램이 계속 활용되 므로 적어도 4GB이상을 쓰는 것이 좋음 단, 게임, 크롬, 포토샵 등등을 돌려도 8~16GB램으로 버티므로 PC 에서는 대부분 8GB나 16GB정도를 사용
Multi-channel memory architecture CPU의 속도는 폭발적으로 증가했지만, RAM의 속도는 천천히 증 가하였다. => CPU의 속도를 RAM이 따라가지 못해 병목현상 발생 이를 보완하기 위해 Multi-channel memory architecture 등장
Multi-channel memory architecture 멀티채널 메모리 아키텍처는 DRAM 메모리와 메모리 컨트롤러 사 이에 채널(통로)를 더 추가해서 대역폭을 늘려준다. 듀얼 채널 사용시 두 배의 대역폭을 얻을 수 있으며 DRAM을 두 개 꼽으면 된다. 대부분 dual-channel로 RAM을 이용하고 있으며 triple, quadruple channel도 몇몇 모델에서는 사용한다.
ECC memory Xeon, 일부 펜티엄 제품들은 ECC메모리를 지원함. ECC(Error correcting code)메모리는? DRAM은 전자기적 간섭에 민감하기 때문에 DRAM의 특정 bit의 값이 달라질 수 있다. 구글 조사에 의하면 25,000 to 70,000 errors per billion device hours per megabit라고 함. ECC가 이러한 error를 분석해 복구할 수 있다. 보통 8개 대신 9개의 메모리 칩이 있어서 나머지 하나의 칩에 추가 정보 저장. PC에서는 자주 사용되지 않지만 안정성이 중요한 서버에서는 사 용된다.
HDD
HDD
HDD
HDD 디스크 용량 = (# bytes/sector) * (avg. # sectors/track) * (# tracks/surface) * (# surfaces/platter) * (#platters/disk) 디스크 access time = Seek time + Rotational latency + Transfer time 이 중에서 Seek time과 Rotational latency(디스크 회전속도)가 HDD의 속도를 결정
HDD Arm Arm Arm Arm
HDD HDD(하드디스크) 자기 물질로 코팅된 디스크가 있음 디스크(플레이터)가 회전하고 헤드(기록하는 부분)가 움직이면서 데 이터를 읽고 쓰는 장치 크게 플레이터 개수, 용량, 회전 속도, 인터페이스를 고려하면 됨 용량이 크고 플레이터 개수가 적을 수록 좋음. 인터페이스는 주로 SATA(보통 PC에 사용) 또는 SAS(보통 서버에 사 용)가 있음
SSD Solid State Drive 저장 매체로 주로 NAND-based flash memory을 이용함. 액세스 타임과 latency가 적음 하드디스크에 비해 속도가 매우 빠름. SSD안에 있는 컨트롤러에 의해 flash memory에 읽고 쓰는 알고리즘이 달라짐 Flash memory의 읽고 쓸 수 있는 수명이 정해져 있음. 메모리 종류 (slc/mlc/tlc)에 의해서도 수명/속도가 달라짐 컨트롤러 알고리즘/버그, flash memory의 자체의 한계 때문에 안정성/데 이터 손실/속도 감소 등의 이슈가 있음 e.g.. 512GB 삼성 850 pro버전에서 펌웨어 오류가 있었음
mlc와 tlc 기본적으로 플래시 메모리는 하나의 cell에 존재하는 floating gate 에 전하를 저장하여 1 bit의 메모리를 저장한다. MLC (Multi Level Cell)의 경우 floating gate가 두 단계 보다 높은 전하를 저장하여 cell 하나에 1 bit 이상을 저장할 수 있다 (보통 2 bit를 저장할 수 있는 cell을 MLC라고 부른다.) TLC (Triple Level Cell)은 한 cell이 4 bit를 저장할 수 있다. 수명 : SLC > MLC > TLC 속도 : SLC > MLC > TLC 안정성 : SLC > MLC > TLC 가격 : SLC > MLC > TLC
Raid Redundant Array of Independent/Inexpensive Disks 여러 개의 하드디스크를 마치 하나의 논리적 디스크로 만드는 가 상화 기술로 성능이나 데이터 신뢰성을 높이는 기술 소프트웨어 RAID와 하드웨어 RAID가 있음 RAID 종류를 의미하는 Raid Level가 있음
Software Raid vs Hardware Raid Software raid: zfs, btrfs, lvm 별도의 비용이 들지 않음 ZFS의 경우 RAID카드에 없는 정말 좋은 기능들이 있음.(같이 쓰일 수 는 있음) More flexible (RAID카드가 OS를 지원하지 않는 등의 문제 등등) Hardware raid: 별도의 RAID카드 이용 OS Independent하게 RAID설정 가능 RAID카드에 별도로 캐시와 프로세서가 있어서 RAID관련된 연산을 처리함
RAID 0 Raid 0 – 데이터를 여러 개의 하드디스크에 병렬적으로 배치. 디스크가 N 개이면 N배의 속도가 남. 하지만 N개의 하드디스크 중 하나라도 고장 나면 전체 데이터가 파손됨.
RAID 1 Raid 1 – Mirroring. 데이터를 다른 하드디스크에 똑같이 저장함. 안정 성은 좋지만 하드 용량은 ½…
RAID 2, 3, 4 Raid 2, 3, 4 – 각각 bit, byte, word 단위로 stripe 하고 하나의 지정된 하드에 parity저장
RAID 5, 6 RAID 5, 6 – 블록 단위로 스트라이핑을 하고 하나의 지정된 하드에 parity를 저장하 지 않고 모든 하드디스크에 분산시켜서 저장. Raid 5, 6 는 parity가 각각 1개, 2개. 즉 하드가 각각 하나, 2개가 죽어도 괜찮음 RAID5가 잘 안 쓰이는 이유가 하드 하나가 고장 나서 데이터를 복구(RAID 리빌딩) 작업 시 다른 하드디스크에 부하가 가서 다른 하드가 뻗을 수 있기 때문
Nested RaID 앞에서 언급한 표준 레이드 레벨을 두 개 이상 합쳐서 쓰는 기술 Raid 01(0 + 1), Raid10(1 + 0), Raid50(5 + 0) 등이 있다 첫 번째 숫자는 안쪽에 있는 RAID LEVEL을 의미하고 가장 끝 숫자는 가장 바깥쪽에 있는 RAID LEVEL을 의미함
PSU
PSU 컴퓨터 내부 부품들은 대부분 직류를 이용함 교류 전원을 직류전원으로 바꿔주고 변압도 같이 하는 역할을 함 정격출력양(Watt)가 PSU마다 다르며 컴퓨터 부품이 사용하는 전 원 사용량(Watt)보다 큰 제품을 선택함 http://www.extreme.outervision.com/psucalculatorlite.jsp 여 기서 계산 가능
파워서플라이 선택 기준 워낙 많은 회사들이 있기 때문에 리뷰를 보는 것을 추천함 80 plus인증 여부 1watt.org www.playwares.com/xe/?mid=mainpreview&category=26814778 80 plus인증 여부 에너지 효율이 비교하는 기준 반드시 인증되었다고 안정성이 높다는 것은 아님
케이스 데스크탑 컴퓨터용 케이스는 크기는 빅타워 > 미들타워>미니타워 순 임. 그 외에도 슬림케이스(LP) 등 다양한 케이스가 존재 메인보드 폼펙터(atx, mini-atx, micro-atx) 등과 호완되는 제품을 사 야함. 왜냐하면 폼펙터에 따라 메인보드 크기와 나사 구멍 위치가 다 르기 때문
케이스 서버용 케이스는 주로 랙(rack, 너비가 19인치인 선반이라고 보면 됨)에 장착할 수 있는 규격으로 만들어짐
케이스 Rack unit(u)라는 단위가 있는데 케이스가 랙(rack) 공간을 얼마나 차지하는 나타냄
Reference https://en.wikipedia.org/wiki/Central_processing_unit http://en.wikipedia.org/wiki/Multi- channel_memory_architecture http://sparcs.org/seminar/attachment/apple-20130915_1- 1.pdf CSAPP (second edition) – Randal E. Bryant, David R. O’Hallaron 김대영 SP