📚 컴퓨터 구성
📙 하드웨어
- 주요 장치 : CPU, RAM, HDD, 마우스 프린터 등
- 시스템은 버스로 연결되어있으며, 버스는 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 한다.
CPU
- 주기억장치에서 프로그램 명렁어와 데이터를 읽어 처리하고 명령어 순서를 제어
- 산술논리연산장치(ALU) : 비교와 연산을 담당
- 제어장치 : 명령어의 해석과 실행 담당
- 레지스터 : 속도가 빠른 데이터 기억 장소
- 기억장치 : 프로그램, 데이터, 연산의 중간 결과 저장 장치 => RAM, ROM도 포함.
- 입출력장치 : 입력 장치는 컴퓨터 내부로 자료를 입력하는 장치 + 출력장치는 컴퓨터 외부로 표현
시스템 버스
: 하드웨어 구성 요소를 물리적으로 연결하는 선
-
데어터 버스
- 중앙처리 장치와 기타 장치 사이에서 데이터를 전달하는 통로
- 기억, 입출력 장치로 부터 중앙처리로 데이터, 명령어를 보내거나 반대로 보내는 '양방향 버스'
-
주소 버스
- 기억장치 주소를 전달하는 통로
- 중앙처리장치가 주기억장치나 입출력장치로 전달하는 '단방향 버스'
-
제어 버스
- 중앙처리 장치가 다른 장치에 제어 신호를 전달하는 통로
- 읽기 동작과 쓰기 동작을 모두 수행함으로 '양방향 버스'
📙 중앙처리장치 작동 원리
연산 장치
- 산술연산과 논리연산 수행
- 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄
제어 장치
- 명령어를 순서대로 실행할 수 있도록 제어하는 장치
- 주기억장치에서 명령어 꺼내 해독하고, 결과에 따라 명령어 실행에 필요한 제어 신호를 보냄
- 다른 장치가 보낸 신호를 받아 다음 수행할 동작 결정
레지스터
- 고석 기억장치로 명령어 주소, 코드, 데이터, 연산 결과 등을 임시로 저장
- 범용 레지스터 : 연산에 필요한 데이터나 연산 결과를 임시로 저장
- 특수목적 레지스터 : 특별한 용도로 사용
- MAR : 메모리 주소 레지스터 -> 주기억장치의 데이터 주소 저장
- PC : 다음 수행할 명령어 주소 저장
- IR : 현재 실행 중인 명령어 저장
- MBR : 메모리 버퍼 레지스터 -> 주기억장치에서 읽어온 데이터 또는 저장할 데이터 임시 저장
- AC : 연산 결과 임시 저장
CPU 동작과정
- 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어온다.
- CPU는 프로그램을 실행하기 위해 저장된 명령어와 데이터를 읽어 처리하고 다시 주기억장치에 저장
- 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보냄
- 제어장치는 각 장치를 제어
📙 캐시 메모리
- 장치의 속도 차이에 따른 병목현상을 줄이기 위한 메모리
- CPU가 데이터를 읽을 때 자주 사용하는 데이터를 캐시 메모리에 저장
- 속도는 빠르지만 용량이 적고 비싸다 -> 보통 2~3개 사용
- L1 : CPU 내부, L2 : CPU RAM 사이에 존재, L3 : 메인 보드에 존재 (디스크캐시 -> RAM과 하드 사이에 존재)
동작 원리
- 시간 지역성 : 반복문이 예시 -> 한번 참초된 데이터는 잠시 후 또 참조될 가능성이 높다
- 공간 지역성 : 배열이 예시 -> 참조된 데이터 근처에 있는 데이터가 또 사용될 가능성이 높다
- Cache Miss :
- Cold Miss -> 해당 메모리 주소를 처음 호출되어 나는 미스
- Conflict Miss -> 서로 다른 데이터가 같은 캐시 메모리에 할당되어 발생하는 미스
- Capacity Miss -> 캐시 메모리의 공간이 부족해서 나는 미스
구조 및 작동 방식
- Direct Mapped Cache
- 가장 기본적 구조 -> DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응되는 다대일 방식
- conflict miss가 발생한다는 단점을 가지고 있음.
- Fully Associative Cache
- 비어있는 캐시 메모리가 있다면 마음대로 주소 저장
- 저장은 간단하지만 찾는 것이 어려움
- 어디 있는지 알 수 없어 모든 캐시에서 검색해야 한다
- Set Associative Cache
- Direct + Fully 방식
📙 고정 소수점 & 부동 소수점
- 고정 소수점 : 소수점이 찍힐 위치를 미리 정해둠
- 부동 소수점 : 지수의 값에 따라 소수점이 움직이는 방식을 활용