[CS] Chapter 10 입출력 시스템과 저장장치

Ringo·2024년 10월 24일

Computer Science

목록 보기
14/16
post-thumbnail

📌 입출력 시스템

1. 입출력장치와 채널

저속 주변장치 : 메모리와 주변장치 사이에 오고 가는 데이터양이 적어 데이터 전송률이 낮은 장치

고속 주변장치 : 메모리와 주변장치 사이에 대용량의 데이터가 오고 가므로 데이터 전송률이 높은 장치

여러 주변장치는 메인보드 내의 버스로 연결됩니다. 그런데 버스에는 많은 종류의 장치가 연결되기 때문에 버스를 1개만 사용하면 병목 현상이 발생합니다. 이를 해결하기 위해 여러 개의 버스를 묶어서 사용하는데, 이때 데이터가 지나다니는 하나의 통로를 채널이라고 부릅니다.

전송 속도가 비슷한 장치끼리 묶어서 장치별로 채넝릉ㄹ 할당하면 여러 채널으르 효율적으로 사용하여 전체 데이터 전송 속도를 향상할 수 있습니다.

2. 입출력 버스의 구조

초기의 구조

폴링(polling) 방식 : 모든 장치가 하나의 버스로 연결되고, CPU가 작업을 진행하다가 입출력 명령을 만나면 직접 입출력장치에서 데이터를 가져옵니다.

입출력 제어기를 사용한 구조

컴퓨터 기술이 발전하면서 CPU와 메모리의 성능이 급격히 향상되고 주변장치의 종류도 다양해졌습니다. 이러한 변화에 따라 CPU가 폴링 방식으로 주변장치를 관리하기 어려워져서 모든 입출력을 입출력 제어기(I/O controller)에 맡기는 구조로 바뀌었습니다.

입출력 제어기는 메인버스와 입출력 버스의 2개 채널로 나뉩니다. 메인버스는 고속으로 작동하는 CPU와 메모리가 사용하고 입출력 버스는 주변장치가 사용합니다. CPU에서 입출력 요청이 오면 입출력 제어기는 입출력장치로부터 데이터를 직접 송수신합니다. 입출력 제어기를 사용하면 느린 입출력장치로 인해 CPU와 메모리의 작업이 느려지는 것을 막을 수 있어 전체 작업 효율이 향상됩니다.

입출력 버스의 분리

그래픽카드 같은 고속 주변장치가 키보드, 마우스 같은 저속 주변장치와 입출력 버스를 공유하면 입출력 속도가 현저히 저하됩니다. 이 문제를 해결하기 위해 입출력 버스를 고속 입출력 버스와 저속 입출력 버스로 분리하여 운영합니다.

그래픽카드의 경우 그래픽 전용 포트인 AGP(Accelerated Graphics Port)에 카드를 꽂습니다. 또한 대용량 데이터를 전송하기 위해 메인버스와 직접 연결된 그래픽 버스를 사용합니다.

결론적으로 현대의 컴퓨터는 CPU와 메모리를 연결하는 메인버스, CPU와 그래픽카드를 연결하는 그래픽 버스, 고속 주변장치를 연결하는 고속 입출력 버스, 저속 주변장치를 연결하는 저속 입출력 버스를 사용합니다.

3. 직접 메모리 접근

입출력 제어기는 다양한 주변장치의 입출력을 대행하고 여러 채널에서 온 데이터를 메모리로 옮기는 역할을 합니다.

CPU가 작업하는 공간과 DMA 제어기가 데이터를 옮기는 공간을 분리하여 메인메모리를 운영합니다. 이러한 방식을 메모리 맵 입출력 (MMIO, Memory Mapped I/O) 이라고 합니다.

4. 인터럽트

입출력과 인터럽트

입출력 제어기와 DMA 제어기의 협업으로 작업이 완료되면 입출력 제어기는 CPU에 인터럽트를 보냅니다. 인터럽트는 주변장치의 입출력 요구나 하드웨어의 이상 현상을 CPU에 알려주는 신호입니다.

컴퓨터 시스템에는 다양한 종류의 장치가 있기 때문에 CPU가 인터럽트를 받아도 어떤 장치로부터 받은 것인지 확인하기가 어렵습니다. 따라서 각 장치에는 IRQ라는 고유의 인터럽트 번호가 부여됩니다.

외부 인터럽트는 입출력장치로부터 오는 인터럽트뿐 아니라 전원 이상이나 기계적인 오류로 발생하는 인터럽트를 포함하므로 하드웨어 인터럽트라고도 부릅니다.

한편 숫자를 0으로 나누거나 자신의 주소 공간을 벗어나서 작업하는 것과 같이 프로세스 오류와 관련된 인터럽트는 내부 인터럽트입니다.

인터럽트 벡터와 인터럽트 핸들러

인터럽트 벡터는 여러 인터럽트 중 어떤 인터럽트가 발생했는지 파악하기 위해 사용하는 자료구조입니다. 인터럽트 벡터의 값이 1이면 인터럽트가 발생했다는 의미입니다.

인터럽트 핸들러는 인터럽트의 처리 방법을 함수 형태로 만들어놓은 것입니다. 운영체제는 인터럽트가 발생하면 인터럽트 핸들러를 호출하여 작업합니다. 인터럽트 벡터에는 해당 인터럽트 핸들러를 호출할 수 있도록 인터럽트 핸들러가 저장된 메모리 주소가 포인터 형태로 등록되어 있습니다.

5. 단일 버퍼와 이중 버퍼

버퍼는 속도가 다른 두 장치의 속도 차이를 완화하는 역할을 합니다.

단일 버퍼(single buffer)보다는 이중 버퍼(double buffer)를 사용하는 것이 버퍼 운용에 유리합니다. 단일 버퍼를 사용하면 데이터를 버퍼에 담는 작업과 버퍼에 있는 데이터를 퍼 가는 작업을 동시에 하기가 어렵습니다. 그러나 이중 버퍼를 사용하면 한 버퍼는 데이터를 담는 용도로 쓰고 다른 버퍼는 데이터를 가져가는 용도로 쓸 수 있습니다.

📌 저장장치

1. 저장장치의 종류

하드디스크

하드디스크의 정확한 이름은 움직이는 헤드를 가진 하드디스크 드라이브(moving-head hard disk drive)입니다. 하드디스크는 원반을 사용한 저장장치로, 맨 앞에 있는 데이터나 맨 뒤에 있는 데이터에 접근하는 속도가 거의 비슷하여 수많은 시스템에서 본격적으로 이를 도입했습니다.

하드디스크는 메모리를 보조하는 장치라는 의미에서 제2저장장치라고도 불립니다.

  • 플래터
    플래터는 포면에 자성체가 발려 있어 자기를 이용하여 0과 1의 데이터를 저장할 수 있습니다. 플래터의 표면이 N극을 띠면 0으로, S극을 띠면 1로 인식합니다. 플래터의 수는 하드디스크마다 다르지만 보통 2장 이상으로 구성되며 항상 일정한 속도로 회전합니다. 하드디스크 사양에 7,500rpm(rotation per minute)이라고 표시되어 있다면 플래터가 1분에 7,500바퀴를 일정한 속도로 회전한다는 의미입니다.

  • 섹터와 블록
    물리적인 개념인 섹터(sector)는 하드디스크의 가장 작은 저장 단위입니다. 하나의 섹터에는 한 덩어리의 데이터가 저장됩니다. 블록은 하드디스크와 컴퓨터 사이에 데이터를 전송하는 논리적인 저장 단위 중 가장 작은 단위입니다. 블록은 여러 개의 섹터로 구성되며, 윈도우 운영체제에서는 블록 대신 클러스터(cluster)라고 표현합니다. 메모리에서는 물리적으로 1B마다 주소가 배정되지만 하드디스크에서는 논리적인 단위인 블록마다 주소가 배정됩니다.

  • 트랙과 실린더
    트랙(track)은 플래터에서 회전축을 중심으로 데이터가 기록되는 동일한 동심원상에 있는 섹터의 집합을 말합니다. 개념적으로 여러 개의 플래터에 있는 같은 트랙의 집합을 실린더(cylinder)라고 합니다.

  • 헤드와 플래터
    하드디스크에서 데이터를 읽거나 쓸 때는 읽기/쓰기 헤드를 사용합니다. 헤드의 수는 데이터가 저장되는 플래터의 표면 수와 같습니다. 만약 헤드가 플래터에 붙어버리면 고속으로 회전하는 플래터 표면에 상처가 생길 수도 있습니다. 이렇게 플래터 표면에 상처가 나면 데이터를 저장할 수 없는 배드 섹터가 됩니다.
    컴퓨터가 종료될 때 헤드가 플래터의 표면에 흠집을 내지 않도록, 하드디스크는 헤드를 데이터가 저장되지 않는 플래터의 맨 바깥쪽으로 이동하는데 이를 파킹(parking)이라고 합니다. 갑자기 전원 코드를 뽑거나 정전이 되면 파킹되지 않은 상태에서 헤드가 플래터에 붙어버려 배드 섹터가 되므로 항상 컴퓨터를 정상 종료하는 것이 좋습니다.

SSD

SSD(Solid State Disk)는 하드디스크의 느린 속도를 대체하기 위해 개발된 보조저장장치입니다. SSD는 전원이 사라져도 데이터를 보관할 수 있는 플래시 메모리로 구성됩니다.

장점

빠른 데이터의 입출력 속도입니다.

초기의 SSD는 하드디스크와 같은 SATA 규격의 인터페이스를 사용했지만 현재는 NVMe(Non-Volatile Memory express) 방식의 독자적인 인터페이스를 사용합니다. NVMe 방식의 SSD는 초당 7GB의 데이터 전송 속도로 기존 하드디스크의 전송 속도를 수십 배 뛰어넘기 때문에 차세대 표준으로 자리매김하고 있습니다.

하드디스크와 SSD는 모두 단편화 현상이 발생합니다. 차곡차곡 쌓여 있던 데이터를 쓰고 지우는 과정을 반복함에 따라 조각이 발생하기 때문입니다. SSD는 메모리를 사용하기 때문에 데이터가 어디에 저장되어 있든 읽거나 쓰는 속도에는 차이가 거의 없습니다. SSD에서는 단편화가 데이터 접근 속도에 영향을 미치지 않기 때문에 조각 모음이 필요 없습니다. 메모리는 최대 사용 횟수가 정해져 있으므로 오히려 조각 모음을 하지 않는 편이 좋습니다.

CD

CD는 하드디스크처럼 원반을 사용하는 저장장치로, 휴대할 수 있는 소형 원반에 데이터를 저장합니다.

CD는 표면에 미세한 홈이 파여 있어 헤드에서 발사된 레이저가 홈이 들어가 반사되지 않으면 0, 반사되어 돌아오면 1로 인식합니다. CD에 데이터를 저장할 때 "CD를 굽는다"라고 표현하는데, 이는 레이저를 쏘아 표면을 태워서 미세한 홈을 만드는 방식으로 데이터를 저장하기 때문입니다.

하드디스크와 CD의 비교

하드디스크에서는 디스크가 작동하는 동안 플래터가 일정한 속도로 돌아가지만, CD에서는 헤드 위치에 따라 디스크의 회전 속도가 변하기 때문에 표현하는 용어가 다릅니다.

하드디스크의 각속도 일정 방식과 CD의 선속도 일정 방식은 섹터의 구성이 다릅니다.

각속도 일정 방식의 섹터

각속도 일정 방식의 하드디스크는 트랙마다 속도가 다르기 때문에 섹터의 크기도 다릅니다.

  • 장점 : 디스크가 일정한 속도로 회전하기 때문에 구동 장치가 단순하고 조용하게 작동한다는 것입니다.

  • 단점 : 안쪽 트랙에 비해 바깥쪽 트랙으로 갈수록 낭비되는 공간이 생긴다는 것입니다.

선속도 일정 방식의 섹터

선속도 일정 방식의 CD는 모든 트랙의 움직이는 속도가 같고 섹터의 크기도 같습니다. 따라서 안쪽 트랙보다 바깥쪽 트랙에 더 많은 섹터가 존재하므로 모든 트랙의 섹터 수가 다릅니다.

  • 단점 : CD는 한정된 공간에 많은 데이터를 담을 수 있고 하드디스크처럼 바깥쪽 트랙의 섹터 공간이 낭비되는 문제가 없으나 모터 제어가 복잡하고 소음이 발생합니다.

CD는 트랙마다 회전하는 속도가 다르기 때문에 rpm으로 성능을 표현할 수 없어 최초로 만들어진 CD-ROM을 기준으로 최대 전송 속도를 표시합니다.

CD와 하드디스크의 또 다른 차이점은 하드디스크는 바깥쪽에서 안쪽으로 데이터가 채워지지만, CD는 안쪽에서 바깥쪽으로 데이터가 채워진다는 점입니다. CD는 트랙의 시작과 데이터의 위치 같은 중요한 내용을 가장 안쪽 트랙에 저장합니다. 사용자가 CD를 만질 때 주로 바깥쪽을 잡기 때문에 데이터 보호 차원에서 안쪽부터 테이터를 채우는 것입니다.

2. 디스크 장치의 데이터 전송 시간

  1. 하드디스크의 특정 섹터에 저장된 데이터를 읽거나 쓰려면 그 섹터가 있는 트랙까지 헤드가 이동해야 합니다. 이처럼 헤드가 현재 위치에서 특정 트랙까지 이동하는데 걸리는 시간을 탐색 시간(seek time)이라고 합니다.
  2. 특정 트랙까지 이동한 헤드는 플래터가 회전하여 원하는 섹터를 만날 때까지 기다립니다. 이처럼 원하는 섹터를 만날 때까지 회전하는 데 걸리는 시간을 회전 지연 시간(rotational latency time)이라고 합니다.
  3. 헤드는 원하는 섹터에 있는 데이터를 읽어 전송하는데, 이때 걸리는 시간을 전송 시간(transmission time)이라고 합니다.

디스크의 데이터 전송 시간 중 가장 많은 비중을 차지하는 것은 탐색 시간입니다. 하드디스크를 오래 사용하면 점점 느려지는데, 이는 차곡차곡 쌓여 있던 데이터를 쓰고 지우는 과정을 반복함에 따라 조각이 발생하기 때문입니다.

하드디스크의 성능을 높이려면 탐색 시간을 최소화해야 합니다. 이를 위해서는 조각 모음을 자주 하거나 디스크 스케줄링 기법을 사용합니다.

📌 디스크 스케줄링

1. FCFS 디스크 스케줄링

FCFS(First Come First Service) 디스크 스케줄링은 가장 단순한 디스크 스케줄링 방식으로, 요청이 들어온 트랙 순서대로 서비스 합니다.

2. SSTF 디스크 스케줄링

SSTF(Shortest Seek Time First)디스크 스케줄링은 현재 헤드가 있는 위치에서 가장 가까운 트랙부터 서비스합니다.

SSTF 디스크 스케줄링은 효율성이 좋지만 아사 현상을 일으킬 수 있습니다. 헤드가 중간에 위치하면 가장 안쪽이나 가장 바깥쪽에 있는 트랙을 서비스할 확률이 낮아지기 때문입니다.

3. 블록 SSTF 디스크 스케줄링

SSTF 디스크 스케줄링의 공평성 위배를 어느 정도 해결한 방법이 블록 SSTF(block SSTF)디스크 스케줄링입니다. 블록 SSTF 디스크 스케줄링에서는 큐에 있는 트랙 요청을 일정한 블록 형태로 묶습니다.

블록 SSTF 디스크 스케줄링은 에이징을 사용하여 공평성을 보장하지만 성능은 FCFS 디스크 스케줄링만큼 좋지 않습니다.

4. SCAN 디스크 스케줄링

SCAN 디스크 스케줄링은 SSTF 디스크 스케줄링의 공평성 위배 문제를 완화하기 위해 만들어진 기법입니다. SCAN 디스크 스케줄링에서는 헤드가 한 방향으로만 움직이면서 서비스합니다.

SCAN 디스크 스케줄링은 SSTF 디스크 스케줄링보다 공평성을 덜 위배하면서도 성능이 좋기 때문에 많이 사용되는 기법 중 하나입니다.

5. C-SCAN 디스크 스케줄링

공평성 위배를 해결한 것이 C-SCAN(Circular SCAN) 디스크 스케줄링입니다. 이 기법은 SCAN 디스크 스케줄링을 변형한 것으로, 헤드가 한쪽 방향으로 움직일 때는 요청받은 트랙을 서비스하고 반대 방향으로 돌아올 때는 서비스하지 않고 이동만 합니다.

6. LOOK 디스크 스케줄링

LOOK 디스크 스케줄링은 SCAN 디스크 스케줄링의 불필요한 부분을 제거하여 효율을 높인 기법입니다. SCAN 디스크 스케줄링에서는 트랙 요청이 없어도 헤드가 맨 마지막 트랙에 도착한 후에야 방향을 바꾸지만, LOOK 디스크 스케줄링에서는 더이상 서비스할 트랙이 없으면 헤드가 끝까지 가지 않고 중간에서 방향을 바꿉니다.

7. C-LOOK 디스크 스케줄링

C-LOOK 디스크 스케줄링은 한쪽 방향으로만 서비스하는 C-SCAN 디스크 스케줄링과 유사하지만 더 이상 서비스할 트랙이 없으면 헤드가 중간에서 방향을 바꿀 수 있다는 점이 다릅니다.

8. SLTF 디스크 스케줄링

드럼을 사용하는 일부 하드디슼의 경우 헤드 지지대를 고정하고, 모든 트랙을 읽을 수 있는 여러 개의 헤드를 지지대에 부착합니다. 이 경우 헤드를 움직이는 탐색 시간이 없어 매우 빠르게 데이터를 주고받을 수 있습니다. 이 기법은 매우 고가라 많이 사용되지 않습니다.

📌 RAID

1. RAID의 개요

RAID(Redundant Array of Independent Disk)는 자동으로 백업하고 장애가 발생하면 이를 복구하는 시스템으로 '레이드'라고 읽습니다. 메모리가 아닌 값싼 디스크를 이용하기 때문에 이런 이름이 붙었습니다. RAID는 동일한 규격의 디스크를 여러 개 모아 구성하며, 장애가 발생했을 때 데이터를 복구하는 데 사용됩니다.

RAID의 원리는 하나의 원본 디스크와 같은 크기의 백업 디스크에 같은 내용을 동시에 저장하고, 한 디스크가 고장 났을 때 다른 디스크를 사용하여 데이터를 복구하는 것입니다.

RAID에는 여러 디스크에 데이터를 동시에 저장하여 데이터의 입출력 속도를 높이는 방식도 있습니다. 데이터를 여러 조각으로 나누어 보내기 때문에 이러한 방식을 스트라이핑(striping)이라고 합니다.

2. RAID 0(스트라이핑)

RAID 0은 병렬로 연결된 여려 개의 디스크에 데이터를 동시에 입출력할 수 있도록 구성됩니다. 이렇게 데이터를 여러 갈래로 찢어서 저장하기 때문에 RAID 0을 스트라이핑이라고 부릅니다.

RAID 0은 장애 발생 시 복구하는 기능이 없기 때문에 장애가 발생하면 데이터를 잃습니다. 그럼에도 불구하고 입출력이 빨라 기업용 제품, 개인용 컴퓨터와 노트북의 고급 기종에 많이 사용됩니다.

3. RAID 1(미러링)

RAID 1에서는 하나의 데이터를 2개의 디스크에 나누어 저장하여 장애 시 백업 디스크로 활용합니다. 순수한 백업 시스템인 RAID 1은 데이터가 똑같이 여러 디스크에 복사되기 때문에 미러링이라고 부릅니다.

  • 단점 :
  1. 저장하는 데이터와 같은 크기의 디스크가 하나 더 필요하기 때문에 비용이 증가합니다.
  2. 같은 내용을 두 번 저장하기 때문에 속도가 느려질 수 있습니다.

4. RAID 2

RAID 2에서는 오류를 검출하는 기능이 없는 디스크에 대해 오류 교정 코드(ECC)를 따로 관리하고, 오류가 발생하면 이 코드를 이용하여 디스크를 복구합니다.

일반적으로 오류와 관련된 코드에는 오류 검출 코드(EDC, Error Detecting Code)와 오류 교정 코드(ECC, Error Correcting Code)가 있습니다.

오류 검출 코드 : 오류가 발생했는지 확인할 수 있는 코드

오류 교정 코드 : 오류가 발생했는지 확인하는 동시에 오류를 교정할 수 있는 코드

일반적인 하드디스크에는 오류 검출 코드가 없습니다. 반면에 RAID 2는 오류 교정 코드를 사용하여 오류를 찾고 교정까지 합니다.

하드디스크의 데이터 저장 단위는 블록입니다. 그러나 RAID 2에서는 데이터가 비트 단위로 저장됩니다. 즉, 비트를 분리하여 여러 개의 디스크에 나누어 저장합니다. 이렇게 비트 단위로 저장하는 이유는 각 비트의 오류 교정 코드를 구성하여 나중에 비트 단위로 복구하기 위해서입니다.

RAID 2는 n개의 디스크에 대해 오류 교정 코드를 저장하기 위한 n-1개의 추가 디스크를 필요로 하므로 RAID 1보다는 저장 공간이 적게 듭니다. 그러나 오류 교정 코드를 계산하는 데 많은 시간을 소비하기 때문에 잘 사용되지 않습니다.

5. RAID 3

RAID 3과 RAID 4에서는 오류 검출 코드인 패리티 비트를 사용하여 데이터를 복구합니다. 앞에서는 패리티 비트가 오류를 찾을 수는 있지만 교정하지는 못한다고 했습니다. 그러나 RAID의 경우 패리티 비트로 오류를 복구할 수 있습니다. 이렇게 패리티 비트를 이용하여 구성하는 방식이 RAID 3과 RAID 4입니다.

오류 검출에 사용하는 패리티 비트르르 여러 섹터끼리 묶어서 구성하면 오류가 없는 섹터를 이용하여 오류가 있는 섹터의 데이터를 복원할 수 있는데 이를 "N-way 패리티 비트 방식"이라고 합니다.

RAID 3에서는 N-way 패리티 비트를 구성한 후 데이터 디스크가 아닌 별도의 디스크에 보관함으로써 장애 발생 시 오류를 복구합니다. 일반적으로 오류 검출 코드의 크기가 오류 정정 코드보다 작기 때문에 RAID3 에서 추가되는 디스크의 양은 4개의 디스크당 1개정도입니다. 이처럼 RAID 3은 추가되는 디스크의 양이 적지만 N-way 패리티 비트를 구성하는 데 필요한 계산량이 많다는 단점이 있습니다.

6. RAID 4

RAID 4에서는 데이터를 하나의 디스크에 블록 단위로 저장하고 패리티 비트를 블록과 연결하여 구성합니다. 따라서 데이터가 저장되는 디스크와 패리티 비트가 저장되는 디스크만 동작한다는 장점이 있습니다.

7. RAID 5

RAID 5는 RAID 4와 같은 방법을 사용하지만 병목 현상을 해결한 기법입니다. RAID 5에서는 RAID 4의 패리티 비트를 여러 디스크에 분산하여 구성합니다.

RAID 5는 패리티 비트를 여러 디스크에 분산하여 보관함으로써 패리티 비트 디스크의 병목 현상을 완화합니다. RAID 5에서는 패리티 비트를 해당 데이터가 없는 디스크에 보관합니다.

8. RAID 6

RAID 6은 RAID 5와 같은 방식이지만 패리티 비트가 2개입니다.

RAID 6은 패리티 비트를 2개로 구성하여 분산하므로 디스크 2개의 장애를 복구할 수 있습니다. 하지만 RAID 6은 패리티 비트를 2개씩 운영하기 때문에 RAID 5보다 계산량이 많다는 것과 4개의 디스크당 2개의 추가 디스크가 필요하다는 단점이 있습니다.

9. RAID 10

빠른 입출력이 장점인 RAID 0과 복구 기능이 있는 RAID 1을 결합한 RAID 10이 등장하였습니다. RAID 10은 RAID 1 + 0 을 의미하며, 미러링 기능이 있는 ㄲ먕 1rhk Qkfms epdlxj wjsthddl rksmdgks RAID 0을 결합한 형태입니다.

차이점은 RAID 0 + 1 의 경우 장애가 발생했을 때 이를 복구하려면 모든 디스크를 중단해야 하지만 RAID 10은 일부 디스크만 중단하여 복구할 수 있다는 것입니다.

📌 하드웨어의 규격과 발전

1. 포트의 규격

메인보드의 포트

버스에 장치를 접속하여 사용하려면 포트가 필요합니다.

  • CPU 포트
  • 램 포트
  • 그래픽 포트 : 그래픽 포트는 많은 양의 데이터를 전송해야 하므로 CPU와 직접 연결됩니다. 보통의 경우 메인보드에 그래픽카드가 내장되어 있어 그래픽카드를 따로 사지 않아도 됩니다. 그러나 내장된 그래픽카드는 성능이 낮기 때문에 3D 게임과 같이 고성능의 그래픽카드가 필요할 경우에는 그래픽카드를 따로 사서 그래픽 포트에 연결해야 합니다. 외부 그래픽카드를 연결하는 포트인 AGP(Accelerated Graphics Port)는 AGP 1.0 ~ 3.0 버전이 있습니다.
  • SATA : SATA(Serial ATA)는 하드디스크 같은 저장장치를 연결하는 직렬 ATA 포트입니다.
  • PCI : 그 외의 주변장치는 메인보드에 주변장치를 연결하는 PCI(Peripheral Component Interconnect) 버스 인터페이스에 연결됩니다.

직렬 포트와 병렬 포트

컴퓨터가 개발된 초기에는 저속 주변장치를 직렬 포트에 연결하고 고속 주변장치를 병렬 포트에 연결했습니다. 컴퓨터 후면의 맨 위에 있는 포트가 직렬 포트입니다. 후면에 있는 포트 중 가장 오래되고 가장 느린 직렬 포트에는 키보드와 마우스가 연결됩니다.

포트 연결 단자

  • USB : USB 메모리나 카메라 등 다양한 주변 장치를 연결할 수 있는 범용 포트입니다.
  • SATA : 컴퓨터 내부에 있는 각종 저장장치를 연결할 때 사용합니다. 하드디스크, SSD, CD-ROM은 SATA 단자로 연결합니다. USB와 SATA 단자의 가장 큰 차이점은, USB의 경우 단자 내부에 전원 공급선이 있어 기기에 전원을 공급하면서 데이터를 전송할 수 있지만, SATA는 데이터만 전송하는 단자이므로 SATA 기기를 연결할 때 전원 공급선을 따로 연결해야 한다는 점입니다.
  • D-SUB(D-SUBminiature) : 가장 오래된 모니터 연결 단자로 대개 파란색입니다.
  • DVI(Digital Visual Interface) : 컴퓨터 디스플레이와 디지털 프로젝터 같은 디지털 디스플레이 장치의 화질에 최적화된 표준 영상 인터페이스입니다.
  • HDMI(High Definition Multimedia Interface) : 비압축 방식의 디지털 비디오/오디오 인터페이스 규격입니다. HDMI는 비디오 신호와 오디오 신호를 하나의 단자로 구현하기 때문에 HDMI로 TV를 연결하면 영상과 소리를 케이블 하나로 전송할 수 있어 편리합니다.

2. CD의 규격

각속도 일정 방식의 경우 맨 바깥쪽 트랙의 속도가 빠르기 때문에 정보량도 많습니다. 다시 말해 맨 바깥쪽 트랙의 음질이 가장 좋고 맨 안쪽 트랙의 음직이 가장 좋지 않습니다.

MPEG 레벨 1은 압축 규격을 말합니다. MP3는 MPEG 레벨 3으로 음악을 압축했다는 뜻이고, 비디오 압축에 사용하는 MP4는 MPEG 레벨 4로 비디오를 압축했다는 뜻입니다.

3. 그래픽카드의 발전

3차원으로 이루어진 객체나 빛이 이동할 때마다 많은 계산을 해야 하는데, CPU는 이러한 복잡한 그래픽 계산에 적합하게 설계되지 않았습니다. 따라서 현대의 컴퓨터 시스템에는 그래픽카드에 그래픽 계산만 전담하는 GPU가 추가되었습니다. 일반적인 작업은 CPU가 담당하고 그래픽 작업은 GPU가 담당하는 형태로 바뀐 것입니다.

CPU는 정수 계산이 빠르지만 그래픽 계산은 대부분 실수 계산이므로 GPU는 실수 계산 능력이 탁월합니다. CPU는 계산 외에도 메모리 관리, 주변장치 관리, 인터럽트 처리 등의 다양한 일을 하도록 설계되어 있습니다. 그러나 GPU는 그래픽 계산을 병렬로 처리하도록 설계되어 있습니다.

profile
끄적끄적…

0개의 댓글