일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Java 로드맵
- ajax 단점
- 스프링 HTTP 통신
- http 변화
- 주요 네트워크 종류
- 화살표 함수 this
- Java Roadmap
- 컬렉션 배열 변환
- AWS EC2 Spring 서버
- ajax 통신
- php 통신
- ajax 장점
- php 통신구조
- 데이터베이스 언어 종류
- 배열 컬렉션 변환
- unknown database
- 스프링 값 받아오기
- 네트워크 구성 요소
- jwt 탄생배경
- 테스트 필드주입 Null
- 데이터베이스 설계 순서
- php 통신흐름
- ajax 특징
- AWS Spring MySQL Redis
- http 버전별 개선점
- http 버전별 단점
- mod_php vs php-fpm
- jwt 특징
- Test NullPointerException
- 스프링 데이터 전달
- Today
- Total
zkvn99
[운영체제] CPU 본문
CPU (Core Processing Unit) 혹은 중앙 처리 장치라고 불리는 CPU는 하드웨어 구성 요소이다.
CPU의 4대 기능 (하드웨어)
- 기억 기능(Register) : 고속의 메모리로 데이터와 중간 결과를 저장 (레지스터와 플래그)
- 연산 기능(Arithmetic Logic Unit - ALU) : CPU의 연산을 처리 (산술 연산, 논리 연산 등을 수행)
ALU는 레지스터에 저장된 데이터를 가져와 연산을 수행하고 결과를 다시 레지스터에 저장함
- 전달 기능(Bus) : 데이터와 명령어가 CPU 내,외부 장치 사이를 전달하는 통로 (연산 장치와 레지스터들 사이의 통로)
- 제어 기능(Control unit - CU) : 명령을 해석하고 실행 순서를 관리하며, 명령어를 디코딩하여 해당하는 동작을 수행
CPU의 작동
1. 명령어 해석 (Fetch)
프로그램 카운터를 사용하여 다음에 실행할 명령어의 주소를 메모리에서 읽어옴 - 명령어 레지스터에 저장
2. 명령어 해독 (Decode)
IR에서 가져온 후, CPU는 명령어 디코더를 사용하여 명령어를 해석 (어떤 동작을 수행해야 하는지 결정, 필요한 레지스터나 메모리 위치를 확인) - 명령어의 오퍼랜드를 추출하고, 필요한 데이터를 로드하거나 저장하기 위한 준비
Register - ADD R1,R2,R3 (R1, R2, R3는 오퍼랜드 R2 + R3 를 R1에 저장)
Memory - LOAD R1, [0x1000] ([0x1000]는 메모리 주소이며 오퍼랜드, 메모리 주소에서 데이터를 읽어 R1에 저장)
3. 명령어 실행 (Execution)
명령어가 수행되는 단계로 명령어의 유형과 동작에 따라 다양한 하위 단계로 나뉜다
데이터 전송 명령어 (LOAD - 데이터를 메모리에서 레지스터로 로드, STORE - 데이터를 레지스터에서 메모리로 저장), 산술 연산 명령어 (ADD - 덧셈, SUB - 뺄셈), 논리 연산 명령어 (AND - 논리 AND 연산, OR - 논리 OR 연산),
분기 명령어 (조건 분기, 무조건 분기)
주로 연산 결과나 중간 계산 결과와 같은 임시 데이터는 레지스터에 저장, 프로그램이나 데이터를 메모리에 영구적으로 저장하거나 읽을 때, 메모리에 저장 - 프로그래머가 작성한 코드와 명령어에 따라 달라짐
용어 정리
* 레지스터 : CPU 내부에 있는 고속 메모리 요소, 데이터를 일시적으로 저장하거나 중간 결과를 보관하는 데 사용
* 플래그 : CPU의 상태를 나타내는 특수한 종류의 레지스터, 연산 결과를 평가하고 제어 명령을 실행할 때 사용
* 데이터 버스 : 데이터와 명령을 이동시키기 위한 공통 회선의 집합 (데이터 전송을 위한 통로)
* 주소 버스 : 메모리 또는 I/O의 특정 Port 번지를 지정하기 위한 주소값의 전달 통로
* 제어 버스 : 제어 신호를 전송하기 위한 통로
* 명령 레지스터 (IR - Instruction Register) : 현재 실행 중인 명령어를 저장하는 레지스터, 메모리에서 명령어를 읽어오면, IR에 해당 명령어를 저장 - 명령어 해석 단계에서 사용
* 디코더 (Decoder) : IR에 저장된 명령어를 해석하고, 어떤 동작을 수행해야 하는지 결정 -
* 순서 제어 회로 : CPU의 동작 순서를 제어하며, 명령어 실행 순서와 다른 하드웨어 구성 요소 간의 조율을 담당 - PC를 업데이트, 명령어의 실행을 시작하거나 중지하는 데 사용
* 프로그램 카운터 (PC - Program Counter) : CPU 내부의 레지스터, 현재 실행 중인 프로그램의 명령어 위치를 가리키는 역할 - 다음에 실행할 명령어의 주소를 저장하고 이를 순차적으로 업데이트하여 프로그램의 흐름을 제어
* 오퍼랜드 : 명령어에서 작업을 수행하기 위해 필요한 데이터나 값을 나타내는 요소 (피연산자)
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] Memory (0) | 2023.09.13 |
---|---|
[운영체제] 운영체제란? (0) | 2023.08.07 |