1. 입출력 장치
2. CPU
3. 메모리
1. 입출력 장치: 컴퓨터의 입출력을 도와주는 장치
- 입력 장치의 종류
- 키보드, 마우스, 터치스크린, 마이크, 스캐너, 카메라 등..
- 입력 장치들을 통해 컴퓨터에게 명령을 요청하거나 데이터를 입력
- 키보드를 통해 파일에 문자를 입력하도록 명령하고 연산을 작성한뒤 엔터키를 눌러서 연산수행 및 저장을 명령
- 마우스를 통해 폴더를 열거나 파일 실행하도록 명령하고 컴퓨터 설정을 변경
- 출력 장치의 종류
- 모니터, 스피커, 프린터 등…
- 컴퓨터는 출력 장치들을 통해 사용자에게 명령이나 데이터를 입력할 수 있는 화면을 보여주거나 명령에 대한 처리결과를 보여주거나 들려줌
2. CPU(중앙처리장치): 컴퓨터가 사용자의 명령에 대한 작업을 수행하는 처리장치
2-1. 중앙처리장치 구성 요소: 산술논리 연산장치, 제어, 내부 버스, 메모리 유닛(레지스터, 캐시)
- 산술논리 연산장치(ALU): 비교 판단 연산을 담당. 논리연산(덧셈,뺄셈,비교연산) 수행
- 제어(CU)와 내부 버스: 명령어 해석 및 올바른 실행을 위해 CPU를 내부적으로 제어. (어떤 명령을 실행할지 스케쥴링)
제어부
- 주기억 장치에 저장되어 있는 명령어를 순서대로 호출하여 해독하고, 제어 신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치
내부버스
- 메모리 유닛 : 연산을 위한 데이터를 저장하는 곳.
- 레지스터 : 처리할 명령어를 저장.
- 레지스터 종류특수목적 레지스터 : 특별한 용도로 사용하는 레지스터
- 메모리 주소 레지스터: (MAR) : 읽고 쓰기 위한 주기억장치의 주소를 저장한다.
- 프로그램 카운터 (PC) : 다음에 수행할 명령어의 주소를 저장
- 명령어 레지스터 (IR) : 현재 실행 중인 명령어를 저장
- 메모리 버퍼 레지스터 (MBR) : 주기억장치에서 읽어온 데이터나 저장할 테이터를 임시로 저장
- 누산기 (AC, ACCUMULATOR) : 연산 결과를 임시로 저장
- ✅ 특수목적 레지스터는 아래와 같은 다양한 레지스터가 존재합니다.
- 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장
- 캐시 메모리(L1) : 처리속도를 높여줌
2-2. CPU동작
- 컴퓨터는 모든 데이터를 “기계어”(0,1)로 저장함
- 기계어를 모스부호처럼 하드웨어적으로 CPU가 알아볼 수 있게 변환한게 어셈블리어
- “어셈블리어”를 사람이 알아볼 수 있게 소프트웨어적으로 변환한게 프로그래밍 언어
- 즉, 기계어(저장공간) > 어셈블리어(CPU) > 프로그래밍 언어(자연어)
- 데이터와 명령어는 모두 저장공간에 저장되어 있음
- CPU가 명령어를 읽고 수행하는 동작
- 명령어 인출
- CU가 이번에 수행할 명령어 정보추출
- 명령어 해독
- 명령어 정보를 성공적으로 인출했으면 명령어를 해독
- 보통 opcode라고 하는 명령어 코드를 인출하고 opcode의 성격에 맞게 레지스터들을 준비
- 실행
- 해독된 명령어를 수행. 예를 들어, 이것이 산술/논리 관련된 연산이면 ALU가 주체가 되어서 실행
- 반영
- 이 명령어의 수행 결과를 반영함으로써 명령어 수행의 한 사이클 마무리
2-3. CPU의 성능
CPU 스펙:
클럭: CPU 내부에서 일정한 주파수를 가지는 신호 단위. 클수록 1초 처리량이 많다는 뜻.
코어: 중앙처리 장치 역할을 하는 블록을 뜻합니다. 즉, 멀티 코어들은 많은 연산을 빠르게 병렬 처리 가능
3. 메모리: 명령에 대한 모든 연산은 저장공간을 통해서 처리
- 레지스터 = CPU
- 캐시메모리(SRAM), 메인 메모리(DRAM) = 주 기억장치
- 하드디스크(HDD) = 보조 기억장치
3-1. 캐시 메모리 (L2,L3): 컴퓨터가 전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 저장공간
- L1 캐시 메모리: 일반적으로 CPU 칩안에 내장되어 데이터 사용/참조에 가장 먼저 사용. L1 캐시는 보통 8~64KB 정도의 용량으로 CPU가 가장 빠르게 접근하게 되며, 여기서 데이터를 찾지 못하면, 이제 L2 캐시 메모리로 넘어감
- L2 캐시 메모리: 용도와 역할은 L1 캐시와 비슷하지만 속도는 그보다 느림. 일반적으로 64KB~4MB 정도. L2 캐시는 CPU 회로판에 별도의 칩으로 내장됨. 앞서 말한대로 L1 캐시를 먼저 뒤지고, L2 캐시를 뒤져 데이터를 찾고, 역시 L2 캐시는 L1 캐시보다 느리지만, 일반 메모리(RAM)보다는 빠름
- L3 캐시: 메모리도 동일한 원리로 작동. 웬만한 프로세서에서는 L3 캐시 메모리를 달고있지 않음. L2 캐시로 충분히 커버할 수 있기 때문. intel core2 duo나 quad에는 L3 캐시가 없지만, 코어 i7에는 8MB를 달아둠. L1/L2 캐시 메모리 정도만 CPU 성능에 직접적인 영향을 미치기에 L3 캐시는 크게 신경쓰지 않는것이 일반적인 추세. L3 캐시는 CPU가 아닌 메인보드에 내장되는 경우가 더 많음
3-2. 주 기억장치(메인메모리, RAM) : 컴퓨터가 전원이 꺼지면 지워지지만 조금더 빠르게 조회할 수 있는 저장공간
- RAM은 Random Access Memory의 약자
- RAM은 DRAM과 SRAM이 있는데 주기억장치는 주로 DRAM을 의미. (SRAM은 캐시나 레지스트리)
- 컴퓨터의 CPU가 현재 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성 메모리
- 전원이 꺼지면 메인 메모리에 저장된 내용들은 모두 사라지기 때문에 컴퓨터가 꺼진 이후에도 데이터를 유지하고 싶을 경우에는 데이터를 하드디스크에 저장.
- 보조기억장치(하드디스크)보다 접근속도가 빠름
- 모든 프로그램은 컴퓨터에서 실행되기 위해 메모리의 일부를 사용
- HDD - RAM - CPU 와 유사한 방식으로 연산과정의 중간에 위치
- HDD에 비해 월등히 빠른 속도로 CPU가 정보를 원활히 이용할 수 있도록 도와줌
- CPU가 사용하기 좋도록 각종 정보를 임시 저장하는 휘발성 장치
- SRAM: Static RAM
- 정적 메모리
- 전원 공급이 되는 동안은 기록된 내용이 지워지지 않기 때문에 재충전이 필요 없습니다.
- 접근 속도가 빠르고 가격이 비싸다는 특징이 있으며 주로 캐시메모리나 레지스터로 사용됩니다.
- DRAM: Dynamic RAM
- 동적 메모리
- 전원이 계속 공급되더라도 주기적으로 재충전되어야 기억된 내용을 유지할 수 있습니다.
- 주로 대용량의 기억장치에 사용되며 가격이 저렴합니다.
- 주로 RAM이라고 표현하는 것(주기억장치)은 거의 DRAM을 가리킵니다.
3-3. 보조 기억장치: 컴퓨터 전원이 꺼져도 지워지지 않는 저장공간
- 사용자가 사용하고자 하는 데이터와 프로그램을 반영구적으로 저장
- 전원을 끄더라도 저장된 데이터나 정보가 날아가지 않는 비휘발성 메모리
- 설치하는 모든 프로그램이나 파일들은 이곳에 반영구적으로 저장
4. CPU 와 메모리
4-1. 동작 순서
- 주기억장치가 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어옴
- CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억 장치에 저장
- 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보내서 출력
- CPU 내의 **제어장치(CU)**가 1~3번 과정에서 명령어가 순서대로 실행되도록 각 장치들을 제어
4-2. CPU 와 메모리의 구조
- 하버드 구조
- 명령어 메모리 = 프로그램에서 사용할 명령어를 모아둔 메모리
- 명령어 메모리 -> 제어장치 : 명령어 대한 정보를 보내줌
- 데이터 메모리 = 명령어들로 사용될 메모리
- ALU = 데이터를 가지고 명령어를 읽어서 연산 수행
- 장/단점
- 장점 : 메모리가 두개이기 때문에 역할이 나누어져 있으며 속도가 빠름
- 단점 : 구성이 많기 때문에 비싸며, 복잡한 구성으로 고장이 날 확률이 높음
- 명령어 메모리 = 프로그램에서 사용할 명령어를 모아둔 메모리
- 폰노이만 구조
- 보조기억장치에서 데이터들이 CPU에서 연산되기 위해서 하나의 메모리에 올라감
- 제어장치는 산술논리장치에 데이터가 메모리 어디에 위치한지 알려주는 역할
- 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있음(병목현상 발생)
- 개선된 구조
- 하버드 구조 + 폰노이만 구조
- CPU의 캐시 메모리 형상에 관여
- CPU 내부 - 하버드 : CPU 내부에 캐시를 둬서 RAM과 CPU 간의 속도 차이를 줄이려고 노력
- CPU 외부 - 폰노이만 : 메모리 하나에 하나의 버스를 가지는 구조이기 때문에 병목현상이 아직까지는 존재
참조: https://hongong.hanbit.co.kr/컴퓨터의-4가지-핵심-부품cpu-메모리-보조기억장/
'CS' 카테고리의 다른 글
OpenAI의 Chat Completions response format (0) | 2024.09.26 |
---|---|
MTV 패턴(Django) (0) | 2024.08.09 |
CS관련 기술 모의 면접에 대한 간단한 고찰 (0) | 2024.08.09 |
전반적인 용어정리 (0) | 2024.07.31 |
02. CPU의 스케쥴링 및 메모리 심화 (1) | 2024.07.29 |