컴퓨터 구조와 상호작용

고라니·2024년 3월 29일
0

TIL

목록 보기
66/67

iOS개발자 재르시님이 많은 개발자들이 기초지식 확립이 중요하다며 저장소를 공유중이셔서
해당 저장소에서 제시한 내용들을 보며 충분히 알고 있는 내용인지 검토해보며 정리해보고 부족한 부분들에 대해 다루어 보겠습니다. 그리고 앞으로 틈틈히 컴퓨터 기본 개념에 대해서도 정리 해보도록 하겠습니다!

컴퓨터 구조와 상호작용

먼저 컴퓨터 구조는 대표적으로 3가지의 장치가 핵심장치이다.

CPU(Central Processing Unit)

  • CPU의 주요 기능은 명령어 해석과 실행, 산술 및 논리 연산, 제어와 타이밍 등이 있다. 즉 컴퓨터의 뇌라고 표현할 수 있다.
  • 명령어를 실행하기 위해서는 주기억장치(RAM)에서 데이터 및 명령어를 가져와 해석하고, 이를 실행하는 역할을 한다.
  • 주요 구성 요소로는 제어장치(Control Unit), 산술 논리 장치(ALU), 레지스터 등이 있다.

CPU에대한 설명중 몇가지 더 궁금한 부분에 대해 알아보자!

  1. 주기억 장치에서 명령어를 어떻게 가져올까?
    : CPU는 주기억장치에서 명령어를 가져오기 위해 주소 버스를 통해 명령어가 저장된 메모리 위치를 식별한다. 주기억장치는 행과열로 이루어져 좌표처럼 주소를 가지고 있는데 CPU는 필요한 데이터가 위치한 주소를 통해 해당 명령어가 저장된 메모리 위치를 식별하고 다음 데이터 버스를 통해 해당 메모리 위치에서 명령어를 읽어 온다.

  2. 명령어를 가져왔으면 어떤 방식으로 실행하지?
    : 위에서 설명했던 방식으로 CPU는 메모리에서 명령어를 읽어오는데 이 명령어는 CPU가 이해할 수 있는 기계어로 작성되어 있고 순차적으로 명령어를 가져와 해석하고, 적절한 작업을 수행한다.

  3. 제어 장치(Control Unit)란건 뭘까?
    : CPU의 핵심 부품으로 명령어를 해독하고 실행하는 역할을 한다. 즉 어떤 명령어가 실행되어야 하는지 결정하고, 그 에 따른 다른 하드웨어 구성 요소들을 제어한다.

  4. 레지스터
    : 레지스터는 CPU내부에 위치한 고속 메모리로 CPU가 명령어를 해석하고 실행하는 동안 임시 데이터나 중가 결과를 저장하는데 사용된다. latch 라는 값을 유지해주는 설계와 gated라는 신호가 있는 경우에만 통과시키는 설계회로들의 그룹을 레지스터라고 부른다.


RAM(Random Access Memory)

  • RAM은 컴퓨터의 주기억장치로, CPU가 직접 접근하여 데이터를 읽고 쓸 수 있는 메모리다.
  • 프로그램 실행 중에 필요한 데이터와 명령어가 저장되어 있다.
  • RAM은 휘발성 메모리이므로 전원이 꺼지면 내용은 손실된다.

마찬가지로 궁금한게 생겼다.

  1. 왜 CPU와 RAM을 분리?
    : CPU의 레지스터가 RAM의 역할까지 수행 할 수 없을까? 라는 생각이 들었다. CPU에 직접적으로 연결된 레시스터는 매우 빠른 속도로 엑세스 하는데 RAM은 비교적 느리기 때문이다. 알아보았는데 레지서는 RAM처럼 큰 공간을 가지기 힘들다고 한다.(기술적 한계) 또한 그렇기 때문에 가격이 매우 비싸다고 한다. 이 때문에 RAM은 비교적 큰 용량을 가지고 있으면서도 CPU의 공간 대비 저렴하게 대용량의 데이터를 처리 할 수 있다고 한다.

저장 장치(HDD, SSD 등)

  • 저장장치는 데이터를 영구적으로 저장하고 보전하는데 사용되며 대표적으로 HDD(Hard Disk Drive), SSD(Solid State Drive), 외부 저장장치 등이 있다.
  • 주기억장치와는 달리 저장장치는 비휘발성이므로 전원이 꺼져도 데이터가 유지된다.
  • 주로 운영체제나 응용프로그램 및 사용자 데이터가 저장된다.

캐시 메모리

  • 먼저 캐시라는 개념은 데이터나 명령어에 대한 빠른 엑세스를 위해 사용되는 임시 저장 공간을 의미하며 다양한 컨텍스트에서 활용되며 성능 향상을 목적으로 사용된다.
  • 컴퓨터 구조에서의 캐시 메모리란 데이터나 명령어를 일시적으로 저장하는 고속의 임시 메모리로, 주로 CPU와 RAM 사이에 위치하며 CPU가 더 빠르게 데이터에 엑세스 할 수 있도록 한다.
  • 캐시 메모리는 속도가 빠른 장치와 느린 장치 사이에서 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리를 지칭한다. CPU는 고속이지만 RAM은 비교적 저속이기 때문에 병목 현상을 완화해야 할 필요가 있다.
  • 주로 L1, L2, L3 캐시 등 다양한 레벨로 구성되어 있다.

L1, L2, L3에 대해서 알아보자!

CPU의 사양을 보면 L1캐시, L2캐시 등이 존재하는데 이 캐시 메모리에 따라서 CPU의 성능의 우열을 가리기도 한다. 캐시 메모리가 많으면 성능적으로 유리하다고 볼 수 있다고 한다. CPU는 이러한 캐시 메모리가 보통 2~3개 정도 사용된다. 이를 속도와 크기에 따라 분류한 것으로 L1, L2, L3... 같은 캐시 메모리라고 부른다.

  • L1: 일반적으로 CPU칩안에 내정되어 데이터 사용, 참조에 가장 먼저 사용된다 8~64KB 정도의 용량으로 가장 빠르게 접근할 수 있으며 L1에서 데이터를 찾기 못하면 L2로 넘어간다.
  • L2: 용도와 역할은 L1과 비슷하지만 속도는 비교적 느리다. 일반적으로 64KB~4MB 정도가 사용된다. L1보다는 느리지만 RAM보다는 빠르니 성능 향상에 도움을 준다.
  • l3: 마찬가지로 동일한 원리로 작동하는데 웬만한 프로세서는 L3캐시 메모리를 달고있지 않다고 한다. 코어 i7에는 8MB의 l3 캐시 메모리가 존재한다. 일반적으로는 L2선에서는 정리 가능한듯. l3까지는 보통 시경쓰지 않는 경우가 많고 l3가 존재한다고 해도 CPU보다는 메인보드에 위치하는 편이라고 한다.

이미지를 보면 L1은 서로 다른 코어끼리 공유하지 않고 대신 가깝게 배치되어 빠르다는 것을 알 수 잇고 L2는 비교적 느린 위치에 있지만 공유 되며 크기가 큰것을 볼 수 있다.

i7은 설명과 이미지 처럼 l3까지 존재한다.


CPU 아키텍처

  • CPU아키텍처란 CPU설계와 구조를 의미한다. 대표적으로 ARM과 x86아키택처가 있다.
  • ARM 아키텍처는 저전력이고 효율적인 구조로 모바일 기기나 임베디드 시스템에서 널리 사용된다.
  • x86 아키텍처는 주로 데스크톱 및 서버 시스템에 사용되며, Intel 및 AMD가 이 카이텍처를 기반으로 프로세서를 제공한다.

iOS 기기에서 사용되는 AP(Application Processor)

  • 주로 Apple이 설계한 A시리즈 칩셋을 사용한다.
  • AP는 모다일 기기의 주요 하드웨어 구성 요소 중 하나로 CPU, GPU, 캐시 메모리, 이미지 신호 처리 장치(ISP), 신호 처지 장치(DSP)등을 포함한다.
  • iOS 기기에서 사용되는 AP는 주로 ARM 아키텍처를 기반으로 하며, 고성능 및 저전력을 제공한다.

위에서 알아본 컴퓨터 구조의 주요 장치들을 나름 비유 해봤는데 잘한듯 ㅎ

  • 창고: SSD나 HDD같은 저장 장치를 의미한다. 이곳에서는 많은 양의 데이터가 영구적으로 저장되어 있다.
  • 작업실: RAM을 의미하며 RAM은 CPU가 실시간으로 작업하는 데이터를 저장하는 곳이다.
  • 작업대: CPU의 레지스터를 의미한다. 레지스터는 RAM에서 작업할 것들을 가지고 와서 작업한다. 그래서 작업대가 크다면 한번에 작업할 수 있는 양도 많다고 할 수 있다.
    그리고 작업이 끝나면 다시 창고로 보내서 저장하겠지~

출처
https://github.com/JeaSungLEE/iOSInterviewquestions
https://it.donga.com/215/

profile
🍎 무럭무럭

0개의 댓글