CS(Computer science) - CPU

Kng_db·2022년 11월 12일
0

CPU란

Register의 집합체(코어) -> 집합체가 n개 라면, n코어 cpu

싱글코어 -> 멀티코어 쓰는 이유는?

  • 발열
  • 코어의 성능 향상엔 본질적 한계가 있기 때문(multiple)

CPU 구조

ALU, CU, Register, 캐시

ALU(계산기)

산술 논리 장치, 산술연산과 논리연산을 계산하는 디지털 회로

  1. 정수형 산술 연산 (덧셈, 뺄셈, 그리고 가끔 곱셈과 나눗셈, 이것보다 더 복잡할지라도)
  2. 비트 논리 연산 (AND, NOT, OR, XOR)
    -NOT 연산은 각 자릿수의 값을 반대로 바꾸는 연산
    -OR 연산은 두 값의 각 자릿수를 비교해, 둘 중 하나라도 1이 있다면 1을, 아니면 0을 계산
    -XOR 연산은 두 값의 각 자릿수를 비교해, 값이 같으면 0, 다르면 1을 계산
    -AND 연산은 두 값의 각 자릿수를 비교해, 두 값 모두에 1이 있을 때에만 1을, 나머지 경우에는 0을 계산
  3. 비트 시프트 연산 (부호 확장을 지녔거나, 지니지 않거나, 왼쪽이나 오른쪽으로 특정 비트만큼 이동하거나 회전하는 워드). 시프트는 2로 곱셈하거나 나눗셈하는 것처럼 해석할 수 있다.

CU(컨트롤유닛)

명령 제어장치, 입력된 명령어로 cpu내부의 움직임을 총괄하고 각과정을 통제
(입출력 장치 간 통신 및 조율을 제어, 명령어들을 읽고 해석하며 데이터 처리를 위한 시퀀스를 결정)


Register

업무별로 나뉘게 됨

  • General-purpose(범용)
  • Special-purpose(특수용) - PC(프로그램 카운터)레지스터

캐시

CPU와 DISK간의 통신거리가 멀기(비효율적) 때문에 캐시를 통해 CPU와 가까운 곳(효율적)에서 통신을 함(자주 쓰이는 것, 최근에 쓴 것을 저장)


CPU-프로그래머

소통

  • CPU는 기계어(0과1로 이루어진 언어)
  • 프로그래머는 기계어로 소통하기 어렵기 때문에 어셈블리어를 통해 기계어와 소통함
    하지만 어셈블리어도 쉽지 않기 때문에 프로그래밍이된(?) 컴파일러를 통해 더욱 쉽고 간편하게 소통하게 됌
  • 어셈블리어 - 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어
  • 컴파일러 - 컴파일러는 C 또는 Java 와 같은 고급 언어를 CPU가 이해할 수 있는, 즉 어셈블리어와 같은 기계 언어로 변환

일단 CS는 CPU의 전체적인 흐름과 가벼운 개념 정도만 알아놓고 틈틈이 추가하며 공부하기!!
아직 갈 길이 멀다....

profile
코딩 즐기는 사람

0개의 댓글