ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 컴퓨터 구성 요소
    Computer Science/CS 2024. 2. 29. 18:42
    728x90

     

    CPU, RAM, HDD, SSD, Cache Memory, NIC


    주기억 장치(메인메모리) : RAM

    보조기억 장치 : HDD, SSD


    HDD는 자기적 방식

    SSD는 전기적 방식


    CPU

    Central Processing Unit 중앙 처리 장치

    연산 작업!

    컴퓨터의 뇌, 컴퓨터의 다른 부품들과 신호를 주고 받으면서 시스템 전체를 제어하는 역할

     

    CPU는 원래 한번에 하나의 작업만 처리할 수 있다(여러 프로그램 중 1개만 처리하는 것이라는 말이 아님)

    CPU가 하나여도 프로그램을 여러 개를 다룰 수 있다.

    다만, 여러 프로그램에서 다수의 작업 요청이 들어오면 한 번에 처리하지 않고 하나씩 수행한다.

    CPU의 계산 속도가 워낙 빠르고 중요도에 따라 작업 순서를 정해서 처리하기 때문에 프로그램 여러 개를 실행해도 속도가 느리다는 것을 느낄 수 없다.

    (CPU가 많은 계산을 해야하는 그래픽 작업이나 3D고사양 게임을 하면서 동시에 다른 작업들을 하면 느려짐을 느낄 수 있다)

     

    ● 코어(Core)

    CPU의 핵심, 이진수 연산 역할

    스레드가 다닐 수 있는 터널

     

    코어란 CPU의 두뇌와 같은 것으로 단위 작업을 처리할 수 있는 유닛을 말한다.

    예전 CPU는 코어가 1개인 싱글 코어였다. 컴퓨터로 해야하는 일이 많아지고 복잡해지면서 한 번에 여러개의 계산을 할 수 있는 멀티 코어 CPU가 나왔다. 

    하지만, 코어가 많다고 무조건 빠른건 아니다.

    코어가 많으면 각 코어에게 일을 할당하고 전체 공정을 관리하는 작업이 추가되기 때문에 코어가 2개인 CPU가 1개인 CPU보다 2배 빠른 것은 아니다.

    프로그램이 멀티 코어를 활용할 수 있게 개발되지 않는다면 싱글코어나 멀티코어나 차이가 없다.

     

     - 싱글 코어

       CPU안에는 코어가 한 개

     - 멀티 코어

       CPU안에 코어가 여러 개

       듀얼(2개), 쿼드(4개), 핵사(6개), 옥타(8개) 코어

     

    ● 클럭(Clock)

    CPU의 초당 명렁어를 처리할 수 있는 속도

    단위 : GHz(기가 헤르츠)

    1GHz -> 1초당 10억번의 명렁어를 처리하는 것을 의미.

     

    스레드(Thread)

    일반적으로 코어 한개당 스레드가 두개씩이다.

    작업의 단위.

     

      L3캐시 메모리

    프로세서가 매번 메인메모리(RAM)에 접근해 데이터를 받아오면 시간이 오래 걸리기 때문에 캐시 메모리에 자주 사용되는 데이터를 담아두고 해당 데이터가 필요할 때 프로세서가 메인 메모리(RAM)대신 캐시 메모리에 접근하도록 하여 처리 속도를 높인다!!

     

     연산체계

    CPU의 연산체계는 32bit, 64bit로 이루어져 있고, CPU의 연산 능력을 의미한다.

    CPU가 사용하는 언어가 2진수이기에 32bit -> 2의 32제곱, 64bit -> 2의 64제곱까지 연산할 수 있다.

    속도는 64bit가 더 빠르다.

     

    레지스터

    cpu안에서 연산을 처리하기 위하여 데이터를 저장하는 공간.

    메모리 계층의 최상위 위치.

    가장 빠른 속도로 접근 가능한 메모리.

    데이터와 명령어를 저장하는 역할.

    대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인메모리(RAM)로 저장하는 "로드-스토어"설계를 사용

     

    캐시 메모리

    CPU와 별도로 있는 공간이며, 메인 메모리와 CPU간의 속도 차이를 극복하기 위한 것.

    저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.

     

    캐시 메모리는 CPU내에서 빠르게 일을 처리하려고 자체적으로 필요한 내용들을 기억하는 역할.

     

    CPU가 RAM에서 데이터를 찾아 작업을 처리한다.

    →이러한 과정은 처리 속도가 느려진다.

    → 속도를 빠르게 하기 위해 캐시메모리를 사용한다. 

    프로세서가 매번 메인메모리(RAM)에 접근해 데이터를 받아오면 시간이 오래 걸리기 때문에 캐시 메모리에 자주 사용되는 데이터를 담아두고 해당 데이터가 필요할 때 프로세서가 메인 메모리(RAM)대신 캐시 메모리에 접근하도록 하여 처리 속도를 높인다!!

     

    주기억장치(RAM)와 CPU사이에 위치한다.

    메모리 계층 구조에서 가장 빠른 소자이며, 처리 속도가 거의 CPU와 비슷할 정도의 속도를 가지고 있다.

    캐시메모리를 사용하면 주기억장치를 접근하는 횟수가 줄어들어 컴퓨터의 처리 속도가 향상된다.

     

    ● 캐시의 종류

        ○ L1 Cache : 프로세서와 가장 가까운 캐시, 속도를 위해 I$, D$로 나뉜다.

           - Instruction Cache(I$)

              메모리에 Text영역 데이터를 다루는 캐시

           - Data Cache(D$) 

              Text영역을 제외한 모든 데이터를 다루는 캐시

        ○ L2 Cache :용량이 큰 캐시, 크기를 위해 L1캐시처럼 나누지 않는다.

        ○ L3 Cache :멀티 코어 시스템에서 여러 코어가 공유하는 캐시

     CPU에서는 L1 → L2  → L3  → DRAM순으로 데이터를 탐색하게 된다.

     

    ● 캐시의 성능

    캐시를 잘 활용하여 miss rate를 줄인다면 비용을 많이 줄일 수 있다.

    CPU가 어떤 데이터를 원할지 어느정도 예측하여 캐시에 쓸모있는 정보가 들어있도록 해야한다.

     

    Hit Latency, Miss Latency

         Hit : 요청한 데이터가 캐시에 존재하는 경우

               - Hit Latency : 히트가 발생해 캐싱된 데이터를 가져오는 시간

         Miss : 요청한 데이터가 캐시에 존재하지 않는 경우

               - Miss Latency : 미스가 발생해 상위 캐시나 메인메모리(RAM)에서 데이터를 가져오는 시간

     

    ● 캐시의 구조  

    캐시는 반응 속도가 빠른 SRAM(Static Random Access Memory) 로, 주소가 키로 주어지면 해당 공간에 즉시 접근할 수 있다.

    하드웨어 설계 상 DRAM은 SRAM보다 느리다.

    캐시는 블록으로 구성되어 있는데 각각의 블록은 데이터를 담고 있으며, 블록의 개수와 블록의 크기가 캐시의 크기를 결정한다. 

    주소가 키로 주어졌을 때 그 공간에 즉시 접근할 수 있다는 것은 캐시가 하드웨어로 구현한 해시 테이블과 같다는 의미이다.

    캐시가 빠른 이유는 자주 사용되는 데이터만을 담아두기도 하지만, 해시 테이블의 시간 복잡도가 O(1)정도로 빠르기 때문이기도 하다.

     

    주기억 장치에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 하는 메모리!

     

    사상(Mapping, 매핑)

    캐시 기억장치와 주기억장치 사이에서 정보를 옮기는 것을 사상(Mapping, 매핑)이라고 한다.

     

    매핑의 3가지 방법

      ○ 직접 매핑(Direct Mapping)

      ○ 연관 매핑(Associate Mapping)

      ○ 집합 연관 매핑(Set Associate Mapping)   

     

     

     

    RAM

    Random Access Memory

     

    컴퓨터의 단기 기억 장치

     

    프로그램이 실행되려면 해당 프로그램이 복사되어 메모리에 적재되어야 한다(메모리에 적재된 프로그램을 프로세스라 한다.)

     

    Random Access 이름에 의미가 있다.

    RAM에 저장된 어느 데이터든 접근 시간이 동일하다.

     

    RAM은 DRAM과 SRAM이 있는데 주기억장치는 DRAM을 의미한다.

     

    RAM은 저장된 데이터를 순차적이 아닌 임의의 순서로 액세스할 수 있는 데이터 저장소이다.

    다른 유형의 메모리 디바이스(HDD 등)는 기계적 설계상의 제한으로 미리 정해진 순서로만 데이터를 액세스한다.

     

    컴퓨터 프로세서가 응용프로그램을 실행하고 파일을 여는 데 필요한 데이터가 저장되는 곳.

    CPU 또는 프로세서가 해당 응용 프로그램에 필요한 데이터를 RAM에 로드한다.

     

    RAM은 컴퓨터가 실행중인 프로그램과 파일에 필요한 데이터만 보유한다. 프로그램 및 컴퓨터를 종료하면 데이터는 RAM에서 사라집니다. 이를 휘발성 데이터라고 한다. 

    데이터를 영구적으로 저장하고 싶으면 프로그램 및 컴퓨터를 종료하기 전에 HDD 또는 SSD에 저장해야 한다.

     

    휘발성 데이터의 특성을 가지는데 왜 사용할까?

    1초에 몇십억 번의 연산을 하는 CPU가 필요한 데이터를 찾기에는 하드디스크가 너무 느리기 때문이다.

    하드디스크에 저장된 자주 사용하는 데이터(프로그램) 등을 RAM으로 옮겨 사용한다.

    CPU가 데이터를 빠르게 처리하는 것을 도와주는 역할이다.

     

    요약!

    ● 휘발성 메모리

    컴퓨터의 CPU가 현재 처리중인 데이터나 명령어만 일시적으로 저장

    → 전원이 꺼지면 메인메모리(RAM)에 저장된 내용은 사라짐

    → 컴퓨터가 꺼진 이후에도 데이터를 유지하고 싶으면 하드디스크에 저장해야 한다.

    보조기억장치보다 접근 속도가 빠르다

    ● 매번 메인메모리(RAM)에 직접 접근하는 것은 비효율적이다.

      CPU와 메인메모리 속도를 맞추기 위해 캐시가 존재한다.

     

    CPU와 RAM의 관계

    컴퓨터에서 프로그램을 실행하면 CPU에 필요한 데이터를 요청한다.

    RAM은 저장장치에서 요청받은 데이터를 불러오고 CPU는 RAM으로 부터 이를 받아 계산을 수행한다.

    그래서 컴퓨터가 느릴때는 CPU를 업그레이드하기 보단 RAM을 업그레이드하는 편이 나을 때가 있다.

    RAM을 업그레이드하면 CPU가 계산에 필요한 데이터를 얻는 속도가 빨라져서 컴퓨터의 전체적인 실행 속도가 빨라지기 때문이다.

     

     

    HDD

    Hard Disk Drive

    하드디스크는 비휘발성, 순차 접근이 가능한 컴퓨터의 보조 기억장치이다.

     

    하드디스크의 작동 원리!

    HDD는 정보를 저장하는 플래터와 정보를 찾는 헤드로 구성되어 있다.

    헤드가 플래터의 정보를 읽어 컴퓨터에 전달하거나 컴퓨터가 보내는 신호를 플래터에 저장하게 된다.

    플래터는 자성물질로 되어있어, 내부의 작은 자석이 정렬되어 있으면 1, 정렬되어 있지 않아 자기 신호를 받을 수 없는 경우 0으로 표현한다. 그리고 헤드는 0과 1의 디지털 신호를 자기적인 방식으로 기록하거나 읽게된다.

     

    SSD

    Solid State Drive : 고체(반도체) 상태 저장소

    반도체의 트랜지스터의 전기적 성질, 전류를 흐르게 하거나 차단하는 '스위치'방식을 이용한다.

    전기 신호가 가해지면 SSD셀에서는 전자가 저장되고, 이를 기준으로 전류를 통제함으로써 디지털 신호를 표현한다.

    이 기술은 USB으로 상용화되었는데, 대용량 USB가 SSD이다.

     

    HDD의 한계와 SSD의 발전

    HDD는 돌아가는 디스크에서 헤드가 정보를 찾기 때문에, 디스크를 돌리는 것에 의한 문제가 발생한다.

    위잉 소음 발생!!

    헤드가 정보를 찾기 위해 디스크를 돌리기 때문에 시간도 오래 걸리고 발열도 생긴다.

     

    HDD는 디스크 조각 모음을 정기적으로 해줘야한다. 정보가 여기저기 흩어져 있는 경우, 디스크를 돌리는 과정에서 시간이 불필요하게 낭비될 수 있다. 조각난 정보들을 한곳에 모아 디스크의 한쪽으로 배열하면 헤드가 정보를 찾는데 걸리는 시간을 줄일 수 있다.

     

    HDD는 직접 돌린다는 점에서 내구성 문제가 발생할 수 있다.

    진동이나 충격에 취약하다. 또한 디스크 표면에 먼지가 묻거나 흠집이 발생하면 부분적으로 사용 불가능하게 될 수 있다.

     

    SSD는 전기적인 신호를 이용해 데이터를 파악하기 때문에 디스크를 돌리거나 하는 등 번거로운 작업이 없다.

    그렇기에 정보를 읽고 쓰는 속도가 HDD보다 훨씬 빠르다.

    SSD의 경우 '조각 모음'을 할 필요가 없다.

    분산된 파일들을 읽으려면 직접 돌려야하는 HDD와 달리, 전체 파일을 한 번에 읽을 수 있기 때문이다.

    이러한 이유로, 컴퓨터 부팅 드라이브에는 SSD가 사용되고 가격이 저렴한 HDD는 보조 저장매체로 사용된다. 

     

    SSD와 낸드플래시

    낸드플래시는 SSD에 사용되는 부품이다.

    낸드플래시에 정보를 저장할 수 있는 단위를 '셀'이라고 한다.

    최대한 많은 용량을 저장하기 위해서는 단위 면적당 셀을 많이 포함해야 한다.

    문제는 셀을 너무 많이 직접시키면, 전기적인 간섭이 심해지고 부품의 수명이 떨어지게 된다.

    이러한 문제를 해결하고자 낸드플래시는 3차원으로 구현된다.

    평면 기판이 아니라 원기둥을 여러 개 세우는 방식이다.

    셀을 원기둥으로 설계.

    건물을 세우듯 층을 더 올릴 수 있으면 간섭을 피하는 동시에 셀 개수도 늘릴 수 있다.

    이러한 기술이 고도화되면서 SSD용량은 증가하고, 가격은 내려가게 되었다.

     

     

    NIC

    network interface controller

     

    네트워크 어댑터, 이더넷 어댑터, 이더넷 카드, ethernet controller, LAN Card 라고도 불린다.

     

    컴퓨터를 네트워크에 연결할 수 있게 해주는 하드웨어 구성 요소이다( 네트워크 안에서 컴퓨터간 신호를 주고받는 데 쓰임)

    NIC는 컴퓨터와 네트워크 사이의 물리적 연결을 담당하여 통신을 가능하게 한다.(인터넷 연결이 가능해진다.)

    OSI 2계층에 해당되는데, MAC주소를 근거로 데이터를 처리, 폐기 한다.

     

    이더넷 NIC인 경우 이더넷 케이블을 통해 데이터 패킷을 보낸다.

    무선 NIC인 경우 Wi-Fi를 통해 패킷을 전송.

     

    - 2계층 장비로서 물리 계층과 데이터 링크 계층 서비스를 제공

    - 장비와 LAN사이의 통신을 준비

      전송 속도, 프레임 유형과 크기, 타임아웃 파라미터, 버퍼 크기 같은 파라미터들을 정하는 기능을 수행

    - 전송될 데이터를 병령에서 직렬로 변환하는 기능을 수행

       데이터는 비트 스트림(0 or 1)로 네트워크를 통해 전송

    -  빠른 전송 속도를 위해 데이터를 인코딩하고 압축함

    -  목적지 호스트의 NIC은 전송된 데이터를 수신하고 CPU로 데이터를 전달

     

    ● NIC의 기능

    - Serialization : 전기적 신호를 데이터 신호 형태로 또는 그 반대로 변환함

    - Mac Address : 받은 패킷의 도착지 주소가 자신의 MAC주소가 아니면 폐기하고, 맞으면 시스템 내부에서 처리함

    - Flow control : 데이터 유실 방지를 위하여 데이터를 받지 못할 때에는 상대방에게 통신 중지를 요청할 수 있음

     

    ● NIC의 종류

    - 무선

    안테나를 사용하여 무선 주파수를 통해 무선 수신을 제공하는 NIC.

    Wi-Fi연결용으로 설계됨

    - 유선

     케이블용으로 만들어진 입력 잭이 있는 NIC. 

    - 광섬유

     서버 컴퓨터에서 네트워크 트래픽 처리를 위한 고속 지원 시스템으로 사용

     비싸고 복잡한 NIC

     

    ● NIC의 구성요소

    - 드라이버

    컴퓨터의 운영체제와 NIC간에 데이터를 전달하는 필수 소프트웨어

    - MAC주소

    물리적 네트워크 주소

    고유하고 변경할 수 없는 MAC주소가 NIC에 할당

    이더넷 패킷을 컴퓨터에 전달하는데 사용

    - 연결 LED

    LED표시기로 네트워크가 연결되고 데이터가 전송되는 시기를 사용자에게 알림

    - 라우터

    컴퓨터와 다른 장치 간의 통신을 가능하게 하기 위해 필요

    인터넷에 연결된 라우터에 연결됨

     

     

     

    참고

    https://brunch.co.kr/@natrsci/87

    https://ko.wikipedia.org/wiki/%ED%95%98%EB%93%9C_%EB%94%94%EC%8A%A4%ED%81%AC_%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C

    https://alluknow.tistory.com/73

     

     

    728x90

    'Computer Science > CS' 카테고리의 다른 글

    [CS] SDK, API  (0) 2024.03.03
    [CS] 가상메모리, 프로세스, 쓰레드, 멀티 프로세스, 멀티 쓰레드  (1) 2024.03.02
    [CS] HTTP HTTP/2 HTTPS QUIC  (0) 2023.12.07
    [CS] REST API  (1) 2023.12.07
    [CS] TCP/IP 송수신 원리  (0) 2023.12.04

    댓글

© 2022. code-space ALL RIGHTS RESERVED.