About the Computer Architecture

‍김상빈·2023년 9월 28일
0

computer_architecture

목록 보기
1/6

오늘은 컴퓨터 아키텍처에 대해서 알아보는 시간을 가지려고 한다.

현대에는 폰 노이만이 제시한 구조를 기반으로 컴퓨터가 설계되고 있다.

그렇다면 폰 노이만이 제시한 computer Architecture에 대해서 먼저 알아보려고 한다.

Von Neumann Architecture

폰 노이만의 아키텍처는 아래와 같이 세 가지의 구성으로 이루워져 있다.

  1. CPU(Central Processing Unit) 중앙처리장치
  2. 메모리(Memory)

우선 먼저 CPU에 대해서 알아보는 시간을 가져보려고 한다.

CPU

CPU는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행 또는 처리하는 제어 장치이다. 그렇다면 어떻게 컴퓨터 시스템을 통제하는지 COntrol Unit에 대해서 먼저 알아보려고 한다.

Control Unit

CU는 컴퓨터 시스템 내의 다른 장치들이 어떻게 동작해야 하는지 지시하는 역할을 맡고 있다.

어떻게 지시를 할 수 있는지에 대해서 알아보도록 하겠다.

우선 먼저 main memory로부터 명령어들을 가져온 후 해석을 하고 실행한다. 이 때 어떤 명령어들을 먼저 실행해야하는지 순서를 정해서 실행한다. 연산과 데이터는 정해진 타이밍에 정확히 보내야하기 때문에 그 타이밍을 제어하여 보낸다.

이 글을 읽으면 궁금증이 생길 수 있다. 어떤 명령어들이 사용되고 그 명령어는 무엇인지 의문을 가질수 있다.

그래서 명령어 즉 ISA(Instruction Set Architecture)에 대해서 알아보도록 하겠다

ISA

하드웨어와 소프트웨어 간에 정한 명령어를 이용해서 어떤 연산을 수행 할 수 있는데 그런 명령어들의 모음을 ISA라고 한다.

종류에는 아래와 같이 있다.
1. IA-32
2. x86-64
3. MIPS
4. AVR
등등이 존재한다.

이런 ISA 명령어들을 CU가 사용하면서 시스템 내에 있는 장치들에게 명령을 줄수가 있다.

그 다음 사진을 보면 processor 안에 register와 combinational logic이 들어 있는데 이 둘이 하나의 processor라고 오해 할 수가 있다. 하지만 이 둘이 하나의 컴포넌트를 이루는 것으로 봐야한다. 이 둘이 하는 역할이 ALU이기 때문이다.

그렇다면 processor가 무엇인지 궁금증을 가질 수 있다.

그럼 processor가 무엇인가?

Processor가 CPU이다. 그래서 각 CU, register + combinational logic(ALU)를 processor의 컴포넌트라고 하는 이유이다.

그렇다면 CU 다음인 ALU를 설명하고 세부적인 register와 combinational logic을 조금 다뤄보려고 한다.

ALU(Arithmetic Logic Unit)

산술 및 논리 연산을 수행하는 장치이다. 그렇다면 왜 register와 combinational logic이 나왔는지 의문을 가질 수가 있다. 그 이유는 입력값을 레지스터에 저장을 하고 연산 후 나온 결과값을 레지스터에 저장하기 때문에 레지스터가 ALU안에 포함이 되는 것이다. 그리고 combinational logic은 말 그대로 산술 및 논리 연산을 수행 할 수 있도록 하는 logic을 combination해서 필요한 것이다.

좀 더 구체적으로 레지스터가 무엇인지 알아보려고 한다.

레지스터: 레지스터는 일시적으로 값을 저장하는 데 사용되는 작은 메모리 단위이다.

그렇다면 왜 메모리에 저장을 안하고 굳이 레지스터를 만들어서 저장을 시킬까라는 궁금증이 생길 수 있다.

그 이유는 중 하나는 속도 때문이다. 메모리에 가서 데이터를 가져오는 것보다 레지스터에게 가서 데이터를 가져오고 저장시키는 속도가 압도적이기 때문이다.

이제까지 CPU가 무엇인지 배웠다. Input으로 받은 코드들을 CU가 이해하고 명령어를 이용해 통제를 하고 ALU가 산술 및 연산을 하고 값을 Output하는 걸 이해를 해보았다.

마지막으로 main memory에 대해서 알아보도록 하겠다.

Main Memory

메인 메모리는 프로그램 실행 중에 사용되는 명령어와 데이터를 일시적으로 저장되는 장치이다.
메인 메모리는 비트(bit)를 기본 단위로 하는 셀로 구성되며, 이러한 셀들은 바이트(byte) 또는 워드(word)로 그룹화될 수 있다.
각 바이트나 워드에는 고유한 주소(address)가 할당되어 CPU 또는 다른 장치들이 데이터에 접근할 수 있게 한다.
여기서 워드는 CPU가 한번에 이해하고 처리할 수 있는 비트의 크기를 말한다. 예를 들면 x86-64에 64는 워드로 한번에 처리 가능한 비트가 64비트이다.

RAM (Random Access Memory): 읽기 및 쓰기가 가능한 메인 메모리의 주요 형태이다. RAM은 두 가지 주요 유형으로 나뉜다.
SRAM (Static RAM): 데이터를 저장하기 위해 플립-플롭 회로를 사용한다. SRAM은 DRAM보다 빠르지만 비용이 더 많이 든다.
DRAM (Dynamic RAM): 데이터를 저장하기 위해 캐패시터를 사용하며 주기적으로 새로 고쳐져야 한다. DRAM은 SRAM보다 느리지만 대부분의 시스템에서 메인 메모리로 주로 사용된다.
ROM (Read-Only Memory): 읽기 전용 메모리로, 데이터는 쓰기가 불가능하며 주로 시스템의 부팅 정보나 펌웨어에 사용된다.

캐쉬 메모리

CPU와 Main Memory 사이에 위치하며 main memory보다 빠르다는 장점을 가지고 있다. 하는 일은 main memory와 동일하지만 속도 최적화를 위해서 사용한다. 또한 에너지 효율 및 병렬 처리도 수행하기 때문에 시스템의 성능도 같이 올려주기 때문에 사용한다.

이렇게 폰 노이만 architecture에 대해서 알아보았다.

profile
nickname: pwn_newbe

0개의 댓글