뉴히의 개발 로그
[CS Study] CPU와 메모리 본문
CPU 와 메모리의 동작
- 주기억장치가 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다
- CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억 장치에 저장한다
- 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보내서 출력시킨다
- CPU 내의 제어장치(CU)가 1~3번 과정에서 명령어가 순서대로 실행되도록 각 장치들을 제어한다
CPU 와 메모리의 구조
[하버드 구조]
- 명령어 메모리 = 프로그램에서 사용할 명령어를 모아둔 메모리
- 명령어 메모리 -> 제어장치 : 명령어 대한 정보를 보내줌
- 데이터 메모리 = 명령어들로 사용될 메모리
- ALU = 데이터를 가지고 명령어를 읽어서 연산 수행
- 장/단점
- 장점 : 메모리가 두개이기 때문에 역할이 나누어져 있으며 속도가 빠르다
- 단점 : 구성이 많기 때문에 비싸며, 복잡한 구성으로 고장이 날 확률이 높다
[폰노이만 구조]
- 보조기억장치에서 데이터들이 CPU에서 연산되기 위해서 하나의 메모리에 올라간다
- 제어장치는 산술논리장치에 데이터가 메모리 어디에 위치한지 알려주는 역할을 한다
- 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있어, 이로인해서 병목현상이 일어난다
[개선된 구조]
- 하버드 구조 + 폰노이만 구조
- CPU의 캐시 메모리 형상에 관여
- CPU 내부 - 하버드 : CPU 내부에 캐시를 둬서 RAM과 CPU 간의 속도 차이를 줄이려고 노력
- CPU 외부 - 폰노이만 : 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지는 존재
최근이슈
장점
- M1 칩은 CPU 와 여러 요소들을 합쳐 만든 칩(CPU)
- 장치간의 거리도 짧고 통합 메모리 구조를 가졌기에 CPU의 효율을 극대화
단점
- 하나의 칩 형태로 나왔기에 RAM(주 기억장치)을 추가 한다던지의 자유도는 매우 떨어짐
- 사전에 정해진 형태로만 메모리간에 통신하기 때문에 메모리별 최적화가 적용되어있는 일부 프로그램은 동작하지 않을 수 있다
CPU 의 성능
- 32비트 또는 64비트
32비트와 64비트 프로세서는 데이터를 처리할 수 있는 수준이다
CPU는 2진수로 이루어진 많은 데이터를 처리해야 한다
프로세서는 한 단어의 비트 양에 의해 제한된다. 32비트 프로세서가 처음 설계되었을 때, 그 당시에 32비트의 데이터는 엄청나게 큰 데이터
그러나 무어의 법칙을 통해 CPU는 계속 발전되었고, 컴퓨터는 새로운 64비트 프로세서의 개발을 통해 4GB 이상의 RAM을 처리할 수 있었다
하지만 64비트 프로세서를 사용한다고 모든 데이터를 64비트로 처리할 수는 없다. 바로 프로그램에서도 64비트를 지원해야 하기 때문
- L2/L3 캐시
L2와 L3 캐시는 처리 중에 CPU가 사용할 수 있는 속도가 빠른 캐시 메모리 입니다. L2, L3와 같은 캐시 메모리를 가지고 있을수록 CPU의 성능이 빨라진다
만약 CPU 프로세서 고성능을 원한다면 L2/L3 캐시를 확인해보실 것을 권장
- 주파수
주파수는 프로세서의 작동 속도다
멀티 코어 프로세서 이전에 주파수는 서로 다른 CPU 사이에서 가장 중요한 성능 메트릭스였다
CPU 프로세서 구매 시 주파수 성능도 꼭 고려해야할 중요한 요소 중 하나이다
예를 들어 매우 빠른 듀얼 코어 CPU가 느린 쿼드 코어 CPU를 능가할 수도 있기 때문
CPU 의 동작
- 데이터 가져오기(Fetch)
데이터는 이진수(011010..)로 표시되며 RAM에서 CPU로 전달된다. 각 실행 작업은 모든 작업의 작은 부분일 뿐이므로 CPU는 다음에 어떤 실행이 나올지 알아야 한다.
명령어는 프로그램 카운터(PC)에 의해 보관된다. 그런 다음 PC와 명령문은 IR(지침 레지스터)에 배치된다.
그리고 PC 길이는 다음 명령문의 주소를 참조하기 위해 증가된다.
- 디코딩(Decoding)
일단 명령을 가져와 IR에 저장하면 CPU는 명령 해독기라는 회로로 명령을 전달.
명령어는 CPU의 다른 부분으로 전달하여 작동을 위해 전달되는 신호로 변환.
이것을 디코딩이라고 합니다.
- 실행(Execute)
마지막 단계에서 디코딩된 명령문은 완료될 CPU의 관련 부분으로 전송된다.
결과는 대개 CPU 레지스터에 기록되며, 이 레지스터는 이후 명령문에 의해 참조될 수 있다.
계산기의 메모리 기능처럼 생각하면 쉽게 이해할 수 있다.
📌 참조 링크
https://pearlluck.tistory.com/120
https://www.pexels.com/ko-kr/
https://hongong.hanbit.co.kr/컴퓨터의-4가지-핵심-부품cpu-메모리-보조기억장/
https://stitchcoding.tistory.com/14
'CS' 카테고리의 다른 글
[CS] CS Study - 캐시 (0) | 2023.10.05 |
---|---|
[CS Study] 제어장치 (CU)의 핵심 기능인 “스케쥴링” (0) | 2023.09.28 |
[CS study] 메모리(캐시 메모리, 메인 메모리, 하드디스크) (0) | 2023.09.26 |
[CS study] CPU의 구성: 레지스터 (0) | 2023.08.18 |
[CS study] 컴퓨터의 구성 (1) | 2023.08.17 |