컴퓨터 시스템
컴퓨터 시스템은 하드웨어(Hardward)와 소프트웨어(Software) 두 가지로 구성되어 있습니다.
- 주요 하드웨어 : CPU(중앙처리장치), Memory, Storage(HDD,SDD), Network
- 주요 소프트웨어 : 운영체제(OS)와 응용 프로그램
폰 노이만 구조
존 폰 노이만이 제안한 구조로 오늘날 존재하는 거의 모든 PC는 폰 노이만 구조를 따르고 있습니다.
폰 노이만이 컴퓨터의 구조를 제안하기 이전에는 계산을 할 때마다 손으로 스위치 및 전선을 배치하여 작업을 수행했습니다.
만약 앞서 수행한 작업과 다른 작업을 수행하고 싶다면, 기존에 배치한 전선을 전부 재배치하는 과정을 필요로 했습니다.
폰 노이만 구조는 이러한 과정 없이 소프트웨어를 교체하는 것만으도 새로운 작업을 수행할 수 있다는 장점이 있습니다.
메모리에 프로그램과 데이터가 저장되고, CPU에 저장된 데이터를 ALU(Arithmetic Login Unit)이 연산 수행하는 방식입니다.
컴퓨터 주요 구성 요소

- CPU(중앙처리장치, Central Processor Unit)
- 연산 ALU(Arithmetic Logic Unit)
- 산술 연산 Arithmetic Operation
- 논리 연산 Logic Operation
- 제어 Control Device
- IO Device입출력장치, Memory, ALU 동작 제어
- CPU 레지스터
- PC (Program Counter)
- IR(Instrucion Resister)
- 누산기(ACC)
- MAR(Memory Address Resgister)
- MBR(Memory Buffer Resister) = MDR
- Memory(코드와 데이터를 저장하는 장치)
프로그램과 프로그램 수행에 필요한 데이터를 저장
- 내부 기억장치(주기억장치)
- 캐시 메모리(Cache Memory)
- DRAM 등 메모리(RAM, DDR4)
- 외부 기억장치(보조기억장치)
- IO Device(입출력 장치)
- System Bus(버스)
- CPU, Memory, IO Devices를 연결해주는 장치
- 개별적인 IO Devices를 연결해주고 데이터를 송수신해주는 장치
- System Bus는 메인보드 칩셋에서 지원
CPU와 레지스터
레지스터는 CPU 내부 위치하며, CPU에서 처리하는 데 필요한 데이터를 일시적으로 저장하는 고속 기억장치입니다.
- PC (Program Counter)
- CPU가 다음에 처리할 명령의 주소를 일시적으로 저장하는데 사용
- 작업을 한 번 수행할 때마다 값이 1씩 증가하여, 순차적으로 다음 메모리에 접근할 수 있도록 한다.
- MAR(memory Address Resgister)
- CPU가 데이터를 읽거나, 쓰려는 메모리의 주소를 일시적으로 저장
- MBR(memory Buffer Resister) = MDR(Memory Data Register)
- CPU가 메모리로부터 읽거나, 메모리에 쓰려는 데이터를 일시적으로 저장
- ACC(Accumulator)
- 누산기. 데이터 일시 보관 레지스터
- ALU에서의 연산의 결과값을 일시적으로 보관
- IR(Instrucion Resister)
CPU와 메모리
메모리는 RAM(Random Access Memory)와 ROM(Read Only Memory)로 나뉘며, RAM은 다시 DRAM과 SRAM으로 나눌 수 있습니다.
- DRAM(Dynamic Ram)
- SRAM(Static Ram)
- 빠른 속도가 장점.
- 메모리에서 데이터를 가져오는 데 시간이 많이 걸리기 때문에, 메모리에 접근하지 않고 CPU에서 데이터를 사용할 수 있도록 캐시 메모리로 사용
CPU 기본 실행 구조
CPU로 연산을 수행하기 위해서 명령어를 미리 메모리 내부에 정의합니다. 이것을 Instruction Set이라고 합니다.
제공된 Instruction Set을 가지고 CPU는 다음과 같은 연산 과정을 거치게 됩니다.
- 명령어 인출 IF : Instructon Fetch
- 실행할 명령어를 메모리로부터 CPU로 인출
- PC가 가리키는 주소를 MAR로 전송
- MAR에 적힌 주소를 메모리에서 읽어서 MBR로 전송
- MBR의 명령어를 IR에 저장
- PC는 다음 명령어를 가리키도록 주소값 증가
- 명령어 해석 ID : Instruction Decode
- 앞서 가져온 명령어가 어떤 명령어인지 해석
- MBR 데이터와 ACC 데이터를 연산 한 후, ACC에 저장
- 피연산자 인출 OF : Operand Fetch
- 명령어 실행 : EX : Instruction Execute
- 실행결과 저장 SR : Store
CPU 명령어 전략 - CISC vs RISC
-
CISC : Complex Instruction Set Computer (INTEL)
- 하나의 명령어 실행으로 가능한 한 많은 작업을 수행 (복합 명령어)
- 복합 명령어 수행을 위해 CPU 로직 회로 복잡도 증가
- 하나의 명령어 실행 시간 증가
- 특성
- 명령어의 포맷이나 길이에 관한 규칙이 없음
- 하나 이상의 사이클로 명령어 실행
- 전체 명령이 얼마나 걸릴지 시간 예측이 어려움
-
RISC : Reduced Instruction Set Computer (ARM, 스마트폰, 임베디드, IoT기기)
- 간단한 명령어를 조합해서 실행
- 특성
- 명령어의 포맷과 길이 고정
- 하나의 사이클로 명령어(세부 작업) 실행
- 전체 명령 시간 예측이 가능