- Today
- Yesterday
- Total
메이쁘
[컴퓨터구조] CPU와 RAM, 그리고 ROM(HDD, SDD 등) 에 대한 깔끔 심플 정리!! 본문
안녕하세요.
이 카테고리는 "직무면접 중 CS 지식 대비" 이고,
이 게시글은 "면접 대비 간단한 정리" 입니다.
상세한 정보 또는 딥한 원리를 알고 싶으신 분은 별도의 구글 검색 또는 나무위키를 참고해주시면 감사하겠습니다.
-> CPU
-> RAM
-> ROM
그럼 정리하겠습니다!
핵심 정의
CPU
-> 중앙 처리 장치. 인간으로 따지면 '뇌' 라고 한다. 컴공 상에서는 '프로세서' 라고도 불리운다.
-> 컴퓨터의 모든 일을 맡아서 처리하며, 주로 RAM 메모리에서 일을 가져와 연산한다.
-> 제어장치(제어하는 역할), 연산장치(위에 말한 컴퓨터 연산), 레지스터(임시 기억 장소), Bus 로 구성되어 있다.
*** 제어장치
-> 프로그램 카운터(다음 명령어의 번지 수를 기억하는 레지스터), 명령 해독기(수행할 명령어를 해독하여 부호기로 전달하는 회로)
*** 연산장치
-> 가산기(덧셈), 보수기(뺄셈), 누산기(중간 연산 과정 임시 저장), 데이터 레지스터(연산 결과 값 저장하는 레지스터)
RAM
-> Random Access Memory 인데, 흔히 메모리 라고 부른다.
-> 주기억장치. CPU가 연산 처리할 데이터나 명령어가 임시로 저장(휘발성 메모리)되는 장소. 전원이 켜져 있는 동안만 저장된다.
-> 인간으로 비유하면 '최근 기억' 과 같다.
*** 최근이기 때문에, 빠르게 기억해낼 수 있다. (= CPU가 램에 접근하고 연산 처리하는 속도가 빠르다.)
*** 하지만, 단기 기억 특성 상 용량이 크지 않아 많이 기억하지 못한다. ㅠㅠ
-> DRAM(동적, 주력 메모리) 과 SRAM(정적, DRAM보단 데이터 처리 속도는 빠르지만 용량이 적다.) 이 있다.
ROM
-> Read-only Memory로, 말 그대로 읽기 전용 메모리다. (그렇지만 쓰기가 되지 않는 건 아니다...)
-> 보조기억장치. 하드디스크(HDD), SSD 등 대용량의 데이터 또는 프로그램을 기록해두는 장치를 뜻한다.
-> 비휘발성 메모리.
-> 인간으로 비유하면 '오래 전 기억' 과 같다.
*** 예전 기억들은 다 저장되어있다. 하지만 접근하는데 오래 걸릴 뿐이다. (= 대용량 저장 메모리)
*** 오래 전이기 때문에 회상하며 기억해내는데 시간이 오래 걸린다. (= RAM보다 접근 속도가 오래 걸린다. 그래서 CPU에서는 RAM에 들어있는 데이터나 명령어만 처리하고, ROM에 직접 접근은 하지 않는다.)
*** 예전 기억을 떠올려야(= RAM에 데이터 저장) 그 기억에 대한 일처리를 할 수 있다(= CPU가 RAM에만 접근할 수 있다.).
쉽게 이해하자면,
1. CPU(뇌)는 RAM(최근 기억) 에 저장된 데이터나 명령어(기억해낸 일) 을 처리한다.
2. CPU(뇌)는 ROM(오래전 기억) 에서 일을 가져오기에는 너무 오래 걸리기 때문에(너무 오래되서 기억해내기 어렵다) RAM(최근 기억) 에 저장된 일만 처리할 수 있다.
3. 프로그램을 실행하면 ROM(오래전 기억 = 프로그램 데이터 저장되어있음) 에서 데이터를 꺼내와 RAM(최근 기억 = 한 번 떠올린 이후부턴 쉽게 기억해낼 수 있으니까!) 에 전달한다. 그리고 CPU가 이를 처리한다.
이해하셨나요?
그럼 여담이지만, 각자의 시스템 정보를 보고 "CPU가 이렇게 되서 이정도 성능을 내겠구나~" 할 수 있습니다.
제 컴퓨터 사양을 예시로 들어보겠습니다.
크흠..
프로세서는 위에서 CPU 라고 했죠?
제 CPU 는 2.6 GHz 6코어 입니다. (뒤는 CPU 회사에 따라 성능이 차이가 있기 때문에 다루지 않겠습니다!)
- GHz : CPU의 연산 처리 속도. 빠를 수록 좋다.
- Core(코어) : CPU 개수. 개수가 많을수록 멀티태스킹 속도가 빨라진다.
*** 예를 들어, 하나의 CPU가 배그 실행할 때 다른 CPU가 자동 로그인 처리를, 또 다른 CPU가 업데이트 체크를 한다 하면, 당연히 CPU 개수(코어 수) 가 높을수록 좋다.
메모리는 크게 없습니다.
메모리는 RAM으로, 16GB 라고 하면 대충 RAM에 16GB의 데이터(연산 또는 명령어. 0101010101110101011 과 같이) 를 저장해둘 수 있다는 뜻입니다.
그렇다면, 많이 저장할수록 프로그램 실행 도중 뻑이 가지 않으며 바로바로 연산 처리가 가능하기 때문에 컴퓨터 또한 빠르겠죠?
높을수록 좋습니다.
이상입니다!
간단하게 정리한다하고 구구절절 길었네요.
핵심은 이해입니다.
이해한다면, 면접 시 위 핵심을 바로 떠올리고 대답하실 수 있습니다.
감사합니다!
'면접 대비 CS지식 > else' 카테고리의 다른 글
[SW CS] 객체 지향 프로그래밍(OOP : Object-Oriented Programming) 은 무엇일까? (feat.절차적 프로그래밍) (0) | 2020.09.06 |
---|---|
[OS][language] signed 와 unsigned 의 차이 간단 비교 정리! (4) | 2020.07.11 |
[OS] MultiProgramming, MultiProcessing, MultiThreading, MultiTasking 간단 정의 및 차이점! (0) | 2020.07.09 |
[Hash][Encryption] Hash(해시) 와 Encryption(암호화) 알고리즘의 가장 큰 차이점은? (0) | 2020.07.01 |
[SW CS] MVC 패턴에 대해서(Feat. 디자인 패턴이란??) (2) | 2020.02.28 |