1. 컴퓨터의 기본 구성
하드웨어 구성
- 필수장치 : 중앙처리장치, 메인메모리
- 주변장치 : 입력장치, 출력장치, 저장장치
- CPU와 메모리
- CPU : 명령어를 해석하여 실행하는 장치
- 메모리 : 작업에 필요한 프로그램과 데이터 저장
- 입출력장치
- 입력장치 : 외부의 데이터를 컴퓨터에 입력하는 장치
ex) 키보드, 마우스, 스캐너, 터치스크린
- 출력장치 : 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치
ex) 프린터, 모니터, 스피커
- 저장장치
- 메모리보다 느리지만 저렴하고 용량이 크고, 데이터 영구적으로 저장 가능
ex) CD, DVD, USB 드라이버, SSD
- 메인보드
- CPU와 메모리 등 다양한 부품을 연결하는 커다란 판
폰노이만 구조
- CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
- 모든 프로그램은 메모리에 올라와야 실행 가능
하드웨어 사양 관련 용어
- 클록
- CPU 속도와 관련된 단위
- 클록이 일정 간격으로 클록틱을 보낼 때마다 데이터를 보내거나 받음
- 헤르츠
- 시스템 버스(FSB, 전면 버스)
- CPU 내부 버스(BSB, 후면 버스)
2. CPU와 메모리
CPU 기본 구성
- 산술논리 연산장치
- 데이터의 산술 연산(+,-,*,/)과 논리 연산(AND, OR) 수행
- 제어장치
- 레지스터
CPU 명령어 처리 과정
int D2 = 2, D3 = 3, sum;
sum = D2 + D3;
01 LOAD 0x100 r2;
02 LOAD 0x120 r3;
03 ADD r5, r2, r3;
04 MOVE r5, 0x160;
01 : 메모리 0x100에 있는 데이터를 r2에 로드한다.
02 : 메모리 0x120에 있는 데이터를 r3에 로드한다.
03 : r2와 r3의 데이터의 값을 ADD한 후 r5에 넣는다.
04 : r5에 있는 값을 메모리 0x160에 옮긴다.
레지스터 종류
- 사용자 가시 레지스터 : 사용자 프로그램에 의해 변경
- 데이터 레지스터(DR) : 메모리에서 가져온 데이터 임시로 보관
- 주소 레지스터(AR) : 데이터 또는 명령어가 저장된 메모리 주소
- 사용자 불가 레지스터(특수 레지스터) : 사용자가 임의로 변경 불가
- 프로그램 카운터(PC) : 다음에 실행할 명령어 주소 기억 후 제어장치에 알려줌
- 명령어 레지스터(IR) : 현재 실행중인 명령어 저장
- 메모리 주소 레지스터(MAR) : 접근해야 할 메모리 주소 저장
- 메모리 버퍼 레지스터(MBR) : 메모리에서 가져온 데이터 임시 저장
버스의 종류
CPU와 메모리, 주변장치 간에 데이터 교환시 사용
- 제어 버스
- 주소 버스
- 데이터 버스
메모리 종류와 부팅
폰노이만 구조에 따라 모든 프로그램은 메모리에 올라와야 실행될 수 있다.
메모리에는 실행에 필요한 프로그램과 데이터가 존재하며, CPU와 협업하여 작업이 이루어진다. 메모리 주소는 바이트 단위로 지정되고, 메모리에서 데이터를 읽거나 쓸 때는 워드(CPU가 한 번에 처리할 수 있는 데이터의 최대 크기) 단위로 움직인다.
메모리 종류
-
휘발성 메모리
- DRAM(동적 램) : 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함
- SRAM(정적 램) : 전력이 공급되는 동안 데이터를 보관할 수 있어 재생할 필요 없음
- 일반적으로 메인메모리에 DRAM, 고속 메모리에 SRAM 사용
-
비휘발성 메모리
- 전력이 없어도 데이터 보관 가능
- 플래시 메모리
ex) 디지털 카메라, MP3, USB 드라이버
- SSD : 가격이 비싸지만 데이터 접근 속도, 저전력, 내구성이 좋음
부팅
운영체제를 메모리에 올리는 과정
1. 사용자가 컴퓨터 전원을 키면 ROM에 저장된 BIOS가 실행된다.
2. BIOS는 CPU, 메모리, 하드디스크 등 주요 하드웨어 점검을 한다.
3. 이상 없을 경우 하드디스크의 MRB(Master Boot Record)에 저장된 프로그램을 메모리에 가져와 실행한다.
MBR은 하드디스크의 첫 번째 섹터를 가리키며, 운영체제를 실행하기 위한 코드인 bootstrap이 저장되어 있다.
4.bootstrap이 메모리에 올라오면 하드디스크에 저장된 운영체제를 메모리로 불러온다.
3. 컴퓨터 성능 향상 기술
버퍼
일정량의 데이터를 모아 옮김으로써 두 장치 사이의 속도 차이를 완화하는 장치
ex) 동영상 스트리밍
스풀
CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼
ex) 프린터 스풀러
캐시
메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소
캐시에 있는 데이터가 변경되는 경우 반영하는 방식
- 즉시 쓰기 : 캐시에 있는 데이터가 변경되면 즉시 메모리에 반영
- 지연 쓰기(카피백) : 변경된 내용을 모아서 주기적으로 반영
저장장치의 계층구조
속도가 빠르고 비싼 저장장치를 CPU에 가까운 쪽에 두고, 저렴하고 용량이 큰 저장창지를 반대쪽에 배치하여 적당한 가격으로 빠른 속도와 큰 용량을 동시에 얻을 수 있음
인터럽트
입출력 관리자가 CPU에 보내는 완료 신호
-
인터럽트 방식의 동작 과정
- CPU가 입출력 관리자에게 입출력 명령을 보낸다.
- 입출력 관리자는 명령받은 데이터를 메모리에 가져다놓거나 메모리에 있는 데이터를 저장장치로 옮긴다.
- 데이터 전송이 완료되면 입출력 관리자는 완료 신호를 CPU에 보낸다.
직접 메모리 접근
인터럽트 방식의 시스템을 구성하는 필수요소로, 입출력 관리자가 CPU 허락없이 메모리에 접근할 수 있는 권한
메모리 매핑 입출력
CPU가 사용하는 메모리 공간과 직접 메모리 접근을 통해 들어오거나 나가는 데이터 공간 분리
사이클 훔치기
CPU와 직접 메모리 접근이 동시에 메모리 접근 시 CPU의 작업 속도보다 느린 직접 메모리 접근에 양보
4. 병렬 처리
병렬 처리 개념
동시에 여러 개의 명령을 처리하여 작업 능률을 올리는 방식
병렬 처리 시 고려 사항
- 상호 의존성이 없어야 병렬 처리 가능
- 각 단계의 시간을 거의 일정하게 맞춰야 병렬 처리 원활하게 진행
- 전체 작업 시간을 몇 단계로 나눌지 고려
병렬 처리 기법
CPU에서 명령어가 실행되는 과정
- 명령어 패치 Instruction Fetch (IF) : 다음에 실행할 명령어를 명령어 레지스터 저장
- 명령어 해석 Instruction Decode (ID) : 명령어를 해석
- 실행 Execution (EX) : 해석한 결과로 명령어 실행
- 쓰기 Write Back (WB) : 실행결과 메모리에 저장
- 파이프라인 기법
- 하나의 코어에 여러 개의 스레드 사용
- 명령어를 여러 개의 단계로 분할 후, 각 단계를 동시에 처리하는 하드웨어 독립적으로 구성
- 슈퍼스칼라 기법
- 파이프라인을 처리할 수 있는 코어를 여러 개 구성하여 복수의 명령어 동시에 실행
- 코어 2개를 구성하여 각 단계에서 동시에 실행되는 명령어가 2개임
출처