CS
CPU 와 메모리
index.ys
2023. 6. 4. 17:37
CPU
- 컴퓨터의 두뇌
- 메모리에 저장된 값의 위치를 주소로 확인
CPU 구성요소
- 산술논리 연산장치 ALU : 비교, 판단 ,연산 ,계산을 담당함 => 계산기
- 제어부 CU : 명령어의 해석과 올바른 실행을 위채 CPU내부 제어,
- 레지스터 : 전기신호, 명령어를 해석하는 장치
- 캐시 메모리(L1) : 처리속도를 높여주는 역할 ( 레지스터 보조 )
레지스터
- 프로세서에 위치한 고속메모리, 바로 사용할 수 있는 임시데이터를 담고 있는 영역
제어장치 control unit
- 전기 신호를 내보내고 명령어를 해석하는 장치
- 메모리 읽기신호, 메모리 쓰기 신호 순서를 제어하고 스케쥴링함
CPU의 동작
- 기계어를 CPU가 알아볼수 있게 변환 => 어셈블리어
- 어셈블리어를 사람이 알아볼수 있게 변환 => 프로그래밍 언어
- 기계어 => 0과 1로 이루어짐
ALU
- 계산만을 위해 존재하는 부품, 컴퓨터 내부에서 수행되는 대부분 계산은 ALU가 수행
node.js에서 cpu사양확인하기
- 현재 cpu의 코어수를 확인하는 명령어
os.cpus().length
결과
- 현재 내 컴퓨터가 가진 코어의 갯수를 4개임 (컴터 바꾸고싶다)

- 현재 cpu의 사양을 확인하는 명령어
os.cpus()
결과

- model : 현재 cpu의 사양과 모델명을 나타냄
- speed: 3396MHz의 클럭속도를 가짐, 초당 34억개의 명령어처리가능
- user:사용자 모드에서 cpu가 소비한 시간을 나타냄 1.8초 동안 작업을 수행했다는 의미
- nice: 우선순위로 실해된 작업에서 cpu가 소비한 시간을나타냄
- sys: 커널모드에서 cpu가 소비한 시간을 나타냄 4.4초
- idle: cpu가 아무작업을 수행하지 않고 유휴상태였던 시간 13초 동안 쉬었음을 위미
- irq: 하드웨어 인터럽트 처리에 사용된 cpu시간 0.02354171초 동안 처리했음을 의미
메모리
- RAM은 휘발성 저장장치 보조기억장치는 비휘발성 저장 장치
- DRAM 은 시간이 지나면 저장된 데이터가 점차 사라짐, SRAM은 시간이 지나도 저장된 데이터가 사라지지 않음
- 보조기억 장치 = HDD, SSD, USB, CD-ROM ,DVD
- 명령과 데이터에 대한 임시 저장공간
캐시 메모리
- CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 느림
- CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반 저장장치
- CPU의 연산속도와 메모리 접근속도의 차이를 조금이나마 줄이기 위해 생김
- ex) 메모리 = 대형 마트 , 캐시 메모리 = 편의점 대형마트에는 물건은 많지만 집과는 거리가 멀어서 속도가 느림, 편의점에는 물건은 적지만 거리가 가까워 접근속도가 줄어듬
- L1캐시 , L2 캐시메모리는 CPU내부에 위치함 L3캐시는 코어 외부에 위치함
- 저장장치 계층 구조 : CPU와 가까울 수록 속도는 빠르고, 저장할수 있는 데이터의 용량은 적고, 가격은 비싸짐

참조 지역성 원리
- 캐시 메모리는 메모리보다 용량이 작음
- 캐시 메모리는 CPU가 사용할 법한 데이터를 예측하여 저장함
- 실제 데이터가 CPU에서 활용될 경우를 캐시 히트 라고 표현함
- 예측이 틀려서 메모리로 직졉 데이터를 가지러 가야하는 경우는 캐시 미스 라고 표현함
- 캐시 미스가 자주 발생하면 성능이 떨어지게됨
- 우리가 사용하는 컴퓨터의 캐시 적중률은 대략 85%~95%
- 캐시 적중률을 계산하는 방법
- CPU는 최근 접근했던 메모리 공간에 다시 접근하려는 경향이 있음
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있음
캐시히트횟수 / (캐시 히트횟수 + 캐시 미스횟수 )
node.js에서 메모리 사양확인하기
전체 메모리 용량 확인하기
os.totalmem()
결과
- 17098764288byte의 총메모리를 가지고있음

MB로 변환
> os.totalmem()/1024/1024
- 16306MB바이트의 총메모리를 가지고있음

GB로 변환
os.totalmem()/1024/1024/1024
- 대략 16GB 정도의 총 메모리를 가지고있음

사용가능 메모리 확인하기
os.freemem()
결과
- 9495031808byte 메모리를 사용 가능

MB로 변환
os.freemem()/1024/1024
- 9048MB 메모리 사용 가능

GB로 변환
os.freemem()/1024/1024/1024
- 8.8GB 메모리를 사용가능
