하드웨어 : 컴퓨터에 필요한게 뭐가 있을까?
1. 입출력장치(I/O장치) : 키보드/마우스로 입력하고,
2. CPU : 프로그램이 돌아갈 작업을 처리하고,
3. 메모리 : 작업 중에 중요한 내용은 저장해야하니까.
입출력장치는 다 들어본 주변장치니까 넘어가고,
버스는 그냥 이런 데이터들이 흘러가고 연결하는 통로역할로 간단하게 넘어가고,
가장 중요한
CPU와 메모리만 파악해보자.
CPU의 아키텍쳐는 많은데 그중에서 흔히 사용하는 인텔과 AMD의 CPU로 설명(x86계열)
1. CPU (Central Processing Unit)
컴퓨터에서 처리하는 모든 작업들은 결국 '계산기'
0과 1로 계산을(연산)을 어떻게 어떤 순서로 할지(제어)를 담당하는 부분
1) 레지스터
연산에 필요한 데이터를 저장
CPU안에 있는 고속저장 장소(일반 메모리보다 가장 빠른 속도로 접근)
+참고) 레지스터 종류
- 사용자 가시 레지스터 : 사용자가 운영체제와 애플리케이션을 통해 정보를 변경가능
- 데이터 레지스터(DR) : 산술,논리연산에 필요한 데이터 저장
- 주소 레지스터(AR) : 주소연산에 필요한 주소의 일부분 저장
- 사용자 불가시 레지스터 : 사용자가 정보 변경 불가
- 프로그램 카운터(PC) : 다음 실행할 코드 위치를 저장
- 명령어 레지스터(IR) : 현재 실행하는 명령어 저장
- 누산기(AC) : 데이터를 일시적으로 저장
- 메모리 주소 레지스터(MAR) : 유효 번지(상대적인 주소) 저장
- 메모리 버퍼 레지스터(MBR) : 주기억장치에서 연산에 필요한 자료를 호출해서 저장
2) 제어장치
기계 명령어를 실행하는 순서를 제어
3) 연산장치
덧셈,뺄셈, OR,AND,NOT과 같은 논리연산 수행
+참고) 프로세서
연산을 처리하는 하나의 논리단위? 거의 CPU라고 봐도 무방
2.메모리
CPU가 프로그램을 실행하거나 데이터를 참조하기 위해 필요한 정보들을 저장해두는 공간
그런데 현실적으로 모두 CPU안에 있는 레지스터에 저장하기엔 너무 비싸서
서로 다른 메모리를 적재적소에 사용하도록 함
+참고) 메모리 계층구조
레지스터랑 캐시는 CPU내부에 존재
위로 올라갈수록 CPU랑 가까워서 비싸고, 속도 빠르고, 비쌈
1) 보조기억장치(HDD,SSD) ->하드 디스크
불필요한 프로그램이지만, 저장되어야 할 것들 저장
예를 들어 예전에는 CD,DVD, 플로피디스크 같은 장치들 지금은 하드디스크
전원이 꺼져도 데이터가 지워지지 않음(반영구적으로 데이터를 보관가능)
하지만 데이터 처리속도가 느림
2) 주기억장치(RAM: Random Access Memory) -> 메인 메모리
당장 실행되어야 할 것들(현재 실행중인 프로그램의 데이터나 처리중인 결과) 저장
하드디스크로부터 일정량의 데이터를 복사해서 저장하고, 필요할때마다 CPU에게 전달하는 역할
전원이 꺼지면 데이터가 지워짐(휘발성메모리)
하지만 데이터 처리속도가 빠름
+램과 하드디스크 비유
로딩중(적재) : 하드디스크에서 데이터를 읽어 램으로 전송하는 과정
로딩이 끝나야 게임을 할 수 있음 : CPU가 작업을 수행함”
그래서 램의 용량이 적거나 속도가 느리면 프로그램을 로딩이 길어짐
+CPU/RAM/하드디스크 비교
3) 캐시메모리
메인 메모리와 프로세서(CPU)의 속도차이를 보완하기 위해 존재
메모리 중에서 CPU와 가장 가깝기 때문에 가장 빠름
+참고)캐시의 동작원리
CPU가 필요한 데이터를 메인메모리에서 찾기 전에 캐시에서 먼저 찾음
캐시의 성능은 CPU가 찾으려는 내용이 많을수록 좋다(캐시 히트율이 높다)
+참고)지역성
데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것
시간적 지역성 : 특정데이터가 한번 접근될 때, 다음번에 가까운 미래에 또 접근할 가능성이 높은 것
공간적 지역성 : 특정데이터와 가까운 주소가 순서대로 접근될떄, 다음번에 그 근처에서 접근할 가능성이 높은 것
결론 : cpu와 메모리의 관계 비유(장보기)
예를 들어, CPU가 처리하는 작업이 라면 끓이기라고 한다면..
가장 중요한 재료인 ‘스프’는 따로 보관한 ‘종지’(레지스터)에서 가져오고,
다음으로 중요한 재료인 ‘면’은 그 ‘식탁’(캐시메모리)에서 가져오고,
덜 중요하지만 필요한 재료인 ‘계란’은 ‘냉장고’(메인메모리)에서 가져오고,
중요하지 않지만 있으면 좋은 재료인 ‘파’는 ‘시장’(하드디스크)에서 가져옴
즉, CPU와 가장 가까울수록 자주 사용하는 정보들을 저장함
출처
메모리계층구조
https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B3%84%EC%B8%B5_%EA%B5%AC%EC%A1%B0
CPU메모리구조
레지스터 종류
'🌱 Computer Science > OS' 카테고리의 다른 글
[Linux 명령어] top : 시스템 실시간 모니터링(CPU/메모리) (0) | 2020.04.20 |
---|---|
[Linux 명령어] vmstat : 가상메모리 통계정보 확인(CPU/메모리/IO) (0) | 2020.04.19 |
[Linux 명령어] btmp (부팅로그) / dmesg(시스템로그) / lastlog (접속로그) / wtmp (로그인로그) (0) | 2020.04.18 |
[Linux 명령어] free 명령어 : 메모리 상태확인 (/proc/meminfo) (0) | 2020.03.31 |
리눅스 명령어 정리2. 포트오픈/파일정보/네트워크 수 확인명령어(telent/lsof/netstat) (0) | 2020.03.30 |
리눅스 명령어 정리1. 서버접속/프로세스/네트워크 관련 명령어 (btmp/wtmp/utmp/ps명령어/ifconfig) (0) | 2020.03.30 |