CPU
CPU [중앙처리 장치]는 컴퓨터의 핵심 구성 요소로 컴퓨터 시스템에서 프로그램 명령을 실행하고 데이터를 처리하는 역할을 합니다.
주요 구성요소
산술 논리 장치 ALU
기본적인 산술 연산과 논리 연산을 수행합니다.
제어 장치
CPU 내부의 다른 구성 요소와 외부 장치 간의 데이터 흐름을 관리하고
명령어를 해석하여 ALU와 레지스터에 지시를 내립니다.
레지스터
CPU 내부에 있는 고속 메모리로
연산 중인 데이터나 명령어를 일시적으로 저장합니다.
ALU
ALU는 산술 논리 장치 라는 이름을 가진 컴퓨터의 한 부분입니다.
ALU는 컴퓨터가 숫자를 계산하고 비트를 비교하는 일을 하는 두뇌 같은 역할을 합니다.
ALU는 수학 문제를 계산하여 산술 연산을 수행합니다.
ALU는 참과 거짓을 비교하여 논리적인 연산을 수행합니다.
ALU는 숫자나 정보를 받습니다. 해당 정보는 컴퓨터의 다른 부분에서 가져와 데이터를 입력합니다.
ALU는 무엇을 해야할지 결정합니다. 덧셈인지 비교인지 정하여 연산을 선택합니다.
ALU는 선택한 일을 실제로 진행하여 연산을 수행합니다.
ALU는 결과를 컴퓨터의 다른 부분에 보냅니다.
계산 결과가 나온다면 해당 정보를 저장하여 결과를 출력합니다.
ALU 플래그
ALU가 컴퓨터의 계산기 같은 부분이라면
계산을 한 다음에 결과가 어땠는지 알려주는 작은 신호들이 있습니다.
해당 신호를 플레그라 합니다.
제로 플래그
계산한 결과가 0인지 알려줍니다.
캐리 플래그
숫자를 더할 때 자리가 넘어갔는지 알려줍니다.
오버플로우
플래그 아주 큰 숫자를 더했을 때
결과가 너무 커서 표현할 수 없게 되면 해당 플래그가 켜집니다.
부호 플래그
계산한 결과가 양수인지 음수인지 알려줍니다.
제어장치
제어 장치는 컴퓨터의 교통 경찰 같은 역할을 합니다.
컴퓨터 내부의 여러 부품들이 잘 협력하고 정보를 주고 받을 수 있도록 도와줍니다.
제어장치 역할
명령어 해석
컴퓨터 프로그램에서 오는 명령어를 읽고 이해합니다.
신호 보내기
명령어를 이해한 후 다른 부품들에게 어떤 작업을 해야 하는지 신호를 보냅니다.
작업 순서 관리
여러 작업이 동시에 이루어질 때 어떤 작업이 먼저인지 순서를 정해줍니다.
데이터 흐름 조절
컴퓨터 내부에서 데이터가 어떻게 이동하는지 조절합니다.
레지스터
레지스터는 컴퓨터의 작은 메모리 입니다.
컴퓨터가 데이터를 빠르게 저장하고 처리할 수 있도록 도와주는 빠른 저장공간 입니다.
레지스터 역할
빠른 데이터 저장
레지스터는 CPU 내부에 위치해 있어서
데이터를 아주 빠르게 저장하고 꺼낼 수 있습니다.
ALU가 계산할때 필요한 숫자를 임시로 저장합니다.
명령어 저장
CPU가 실행할 명령어를 임시로 저장하는 역할을 합니다.
명령어를 빠르게 처리하기 위해 필요합니다.
연산 결과 저장
ALU에서 계산한 결과를 저장해 두는 곳입니다.
계산이 끝나면 그 결과를 다음 작업에 사용하기 위해 레지스터에 저장합니다.
명령어 사이클의 단계
명령어 가져오기 Fetch
CPU는 메모리에서 다음에 실행할 명령어를 가져오는 단계입니다.
CPU의 프로그램 카운터가 현재 실행할 명령어의 주소를 가리키고
이 주소를 사용해 메모리에서 명령어를 읽어옵니다.
명령어 해석 Decode
가져온 명령어의 의미를 이해하는 단계입니다.
제어장치는 명령어를 해석하여 어떤 작업을 해야 하는지 결정합니다.
이 과정에서 어떤 데이터가 필요한지 파악합니다.
실행 Execute
해석한 명령어를 실제로 실행하는 단계입니다.
ALU나 다른 장치가 명령어에 따라 연산을 수행하거나 데이터를 이동시키는 작업을 합니다.
결과 저장 Store
연산의 결과를 메모리나 레지스터에 저장하는 단계입니다.
실행 결과를 저장하기 위해 메모리나 레지스터에 데이터를 기록합니다.
해당 결과는 다음 명령어에서 사용될 수 있습니다.
인터럽트
인터럽트는 컴퓨터가 잠깐 멈추고 다른 일을 처리하는 방법입니다.
인터럽트의 종류
하드웨어 인터럽트
외부 장치에서 발생하는 이벤트에 의해
CPU가 멈추고 작업을 처리하는 경우입니다.
키보드에서 키를 누르면 하드웨어 인터럽트가 발생합니다.
소프트웨어 인터럽트
프로그램 내에서 발생하는 이벤트로 오류나 특정 조건이 발생했을 때
CPU가 이를 처리하는 경우입니다.
인터럽트의 처리과정
인터럽트 발생 하드웨어나 소프트웨어에서 인터럽트 신호를 보냅니다.
현재 작업 저장
CPU는 현재 작업의 상태를 저장합니다.
나중에 해당 작업을 계속할 수 있습니다.
인터럽트 처리
CPU는 인터럽트 요청을 처리하기 위해 해당 작업을 실행합니다.
키보드 입력을 처리하거나 오류 메시지를 보여줍니다.
복귀 인터럽트
처리가 끝나면 CPU는 저장해 두었던
이전 작업 상태로 돌아가서 작업을 계속합니다.
CPU의 성능
CPU의 성능은 컴퓨터의 전반적인 처리 능력을 결정짓는 중요한 요소입니다.
클럭 속도
CPU가 초당 몇번의 작업을 수행할 수 있는지를 나타내는 속도입니다.
단위로는 GHz 기가헤르츠로 표시되며 1 Ghz는 10억 번의 사이클을 의미합니다.
클럭 속도가 높을수록 CPU가 더 많은 작업을 처리 할 수 있습니다.
코어 수
CPU 내부에 있는 독립적인 처리 유닛의 수를 의미합니다.
여러개의 코어가 있으면 동시에 여러 작업을 처리할 수 있습니다.
4코어 CPU는 4개의 작업을 동시에 수행 할 수 있습니다.
캐시 메모리
CPU 내부에 있는 고속 메모리로 자주 사용하는 데이터를 저장해 두는 장소입니다.
캐시 메모리가 크고 빠를수록 CPU는 데이터를 더 빨리 접근할 수 있습니다.
캐시의 레벨은 L1, L2, L3로 나눠지고 L1이 가장 빠르고 작고 L3는 크지만 느립니다.
명령어 집합 아키텍처
CPU가 이해하고 실행할 수 있는 명령어의 종류와 구조를 정의합니다.
더 많은 명령어를 지원하는 CPU는 다양한 작업을 더 효율 적으로 처리할 수 있습니다.
프로세서 아키텍처 CPU의 설계 방식으로 데이터 처리 방식과 병렬 처리 능력에 영향을 미칩니다.
최신 아키텍처는 더 높은 성능을 제공하고 전력 효율성을 높혀줍니다.
열 관리 CPU가 작동할 때 발생하는 열을 효과적으로 관리하는 기술입니다.
열이 잘 관리되면 CPU가 안전하게 높은 성능을 유지할 수 있습니다.
과열이 되면 성능이 저하될 수 있습니다.
스레드
스레드는 컴퓨터 프로그램 내에서 실행되는 가장 작은 작업 단위입니다.
여러 스레드를 사용하면 프로그램이 동시에 여러 작업을 수행할 수 있습니다.
스레드의 특징
경량성 스레드는 메모리와 자원을 적게 사용합니다
여러 스레드가 같은 프로그램 내에서 실행되기 때문에
각각의 스레드가 필요한 자원을 공유할 수 있습니다.
동시성 여러 스레드가 동시에 실행될 수 있습니다.
웹 브라우저에서 웹 페이지를 로딩하는 동안 음악을 재생하는 등의 작업이 가능합니다.
공유 자원 같은 프로그램 내의 스레드는 메모리와 데이터 같은 자원을 공유할 수 있습니다.
스레드 간의 데이터 전송이 빠르고 효율적입니다.
스레드의 장점
빠른 응답성 스레드를 사용하면 프로그램이 더 빠르게 반응할 수 있습니다.
사용자가 버튼을 클릭할 때 프로그램이 멈추지 않고 즉시 반응할 수 있습니다.
효율적인 자원 사용 여러 스레드를 사용하면
CPU와 메모리 자원을 더 효율적으로 사용할 수 있습니다.
스레드의 단점
복잡성
여러 스레드가 동시에 실행되기 때문에
데이터 충돌이나 동기화 문제와 같은 오류가 발생할 수 있습니다.
이를 해결하기 위해 추가적인 코드와 관리가 필요합니다.
디버깅 어려움
여러 스레드가 동시에 작업을 하므로 문제가 발생했을 때
원인을 찾기가 더 어려워질 수 있습니다.
'개발' 카테고리의 다른 글
호이스팅 (0) | 2024.11.06 |
---|---|
js 상황에 따라 달라지는 this (2) | 2024.11.06 |
js outerEnvironmentReference (0) | 2024.11.06 |
js record와 호이스팅 (0) | 2024.11.06 |
js 실행 컨텍스트 와 콜 스택 (1) | 2024.11.06 |
댓글