컴퓨터 시스템 구조
파이프라인 처리 기법
파이프라인은 하나의 처리를 여러 세부 처리 과정(Subprocess)으로 나누어 순차적으로 처리하는 방식이다. 각 Subprocess는 병렬적으로 다른 데이터를 처리할 수 있어 효율적이다. 수행된 결과는 다음 단계로 전달되며 폐기되지 않는다. Segmenet 간 데이터 이동은 일반적으로 버퍼나 레지스터를 통해 이루어진다.
파이프라인 처리 시간 계산
파이프라인 처리 시간은 아래 공식으로 계산된다:
T=t×(k+n−1)
여기서,
- t는 각 세그먼트 처리 시간,
- k는 세그먼트 수,
- n은 Task 수이다.
명령어 파이프라인의 저해 요인
명령어 파이프라인의 정상 동작을 방해하는 주요 요인은 다음과 같다:
- Resource Conflict: 하드웨어 자원을 여러 명령어가 동시에 사용하려 할 때 발생.
- Data Dependency: 이전 명령어의 결과가 이후 명령어 실행에 필요한 경우.
- Branch Difficulty: 조건 분기나 예측 실패로 인해 파이프라인이 비워지는 경우. Signal은 파이프라인의 저해 요인에 해당하지 않는다.
메모리 시스템
주 기억 장치(Main Memory)의 종류
- SRAM: 전원이 공급되는 동안 데이터를 유지하며 빠른 접근 속도를 가짐.
- DRAM: 데이터를 유지하기 위해 주기적으로 리프레시(refresh)가 필요함.
- ROM: 읽기 전용으로 비휘발성 메모리임.
- Magnetic Tape는 보조 기억 장치로 분류되며, 주 기억 장치가 아니다.
보조 기억 장치(Auxiliary Memory)의 특징
보조 기억 장치는 다음과 같은 특징을 가진다:
- 주 기억 장치로 데이터를 옮겨야 CPU가 접근할 수 있음.
- 대용량 데이터 보관에 적합하며, 저장 용량이 크고 비용이 낮음.
- 접근 속도는 메모리 계층 중 가장 느림.
- 예로는 Disk, Magnetic Drum, Magnetic Tape 등이 있음.
Associative Memory의 특징
Associative Memory(연관 기억 장치)는 다음과 같은 특징을 가진다:
- 데이터를 주소 대신 내용(Content)으로 검색하며, CAM(Content Addressable Memory)라고도 불린다.
- DRAM보다 회로가 복잡하고 가격이 높음.
- 전체 워드 또는 워드의 일부를 기준으로 탐색 가능.
- 워드의 특정 영역을 선택하기 위해 Mask를 사용한다.
Cache Memory의 맵핑 기법
Cache 메모리의 맵핑 기법에는 다음이 포함된다:
- Direct Mapping: 주 기억 장치의 특정 블록이 캐시의 특정 위치에만 저장되는 방식.
- Associative Mapping: 주 기억 장치의 블록을 캐시의 어느 위치에도 저장할 수 있는 방식.
- Set-associative Mapping: Direct와 Associative의 혼합 방식으로, 캐시를 여러 세트로 나누어 매핑.
Indirect Mapping은 캐시 맵핑 기법에 포함되지 않는다.
Cache Coherence의 특징
- 공유 메모리 멀티프로세서 시스템에서도 각 프로세서에 Cache가 있으면 Cache Coherence 문제가 발생할 수 있다.
- Cache를 허용하지 않는 방법은 비효율적이며, Cache Coherence 문제를 해결하려는 적절한 방법이 아니다.
- 읽기 전용 데이터만 캐싱하면 일부 Cache Coherence 문제가 완화될 수 있다.
- Snoopy Cache Controller는 버스를 감시하여 Cache의 일관성을 유지하는 데 사용된다.
가상 메모리와 캐시 메모리 시스템
- 가상 메모리 시스템: 보조 기억 장치와 주 기억 장치 간 데이터 전송을 관리하며, 페이지 단위로 동작함.
- 캐시 메모리 시스템: 주 기억 장치와 CPU 사이의 데이터 전송을 관리하며, 주로 블록 단위로 동작함.
- 두 시스템 모두 비용을 최소화하며 높은 평균 접근 속도를 목표로 설계됨.
- 캐시 메모리는 페이지 기반이 아닌 블록 기반 맵핑을 사용한다.
입출력 시스템
Memory Mapped I/O의 특징
- 동일한 주소선과 제어선으로 메모리와 I/O 장치를 관리하며, 별도의 I/O 명령이 필요 없다.
- 프로세스의 가상 주소 공간에 I/O 장치를 맵핑해 데이터를 읽고 쓸 수 있다.
- 데이터 저장 공간과 I/O 장치는 주소 값을 통해 구분되지 않는다.
- 주소 값에 따라 특정 하드웨어 장치를 구분하고 접근하도록 구현이 필요하다.
인터럽트를 사용한 I/O의 특징
- I/O 장치는 데이터 전송 준비 상태를 CPU에 알리기 위해 인터럽트를 사용한다.
- DMA를 사용할 경우에도 I/O 소프트웨어는 DMA 채널 설정이 필요하다.
- CPU는 인터럽트가 발생하면 현재 실행 중인 프로그램을 중지하고 인터럽트 서비스 루틴으로 제어를 넘긴다.
- 인터럽트 기반 I/O에서도 소프트웨어 루틴(SW Routine)이 필요하다.
병렬 및 다중 처리
병렬 처리 시스템의 특징
- 병렬 처리 시스템은 다중 장치 구조와 파이프라인 구조를 포함한다.
- 다중 장치 구조: 여러 CPU를 사용해 작업을 병렬로 처리하는 방식이다.
- 파이프라인 구조: 작업을 여러 단계로 나누어 각 단계를 병렬로 처리한다.
- 다중 장치 구조에서 CPU가 하나뿐이라는 설명은 부적절하다.
멀티프로세서 시스템의 특징
- 멀티프로세서는 메모리와 I/O 장치를 공유하는 두 개 이상의 CPU를 가진 시스템이다.
- 멀티프로세서는 멀티 컴퓨터와는 다르다. 멀티 컴퓨터는 독립적인 메모리를 가진 여러 컴퓨터의 집합을 말한다.
- 단일 공통 버스를 사용하는 멀티프로세서는 한 번에 하나의 프로세서만 데이터를 전송할 수 있다.
- 하이퍼큐브 상호연결은 멀티프로세서를 연결하는 효율적인 방법 중 하나이다.
스토리지 시스템
RAID의 구성과 특징
- RAID 1: 데이터의 복사본(Mirroring)으로 구성하여 높은 신뢰성을 제공.
- RAID 2: Hamming Code를 사용해 오류 검출 및 복구를 지원.
- RAID 4: 각 디스크가 독립적으로 접근 가능하며, 하나의 디스크에 패리티 정보를 저장.
- RAID는 오류 복구를 지원하며, 신뢰성과 성능을 높이기 위해 설계되었다.