컴퓨터 하드웨어는 어떻게 구성되는가
메모리
- 메모리: 컴퓨터에 조작할 비트들을 저장하는 저장소
- 한 시스템에서 다른 시스템으로 데이터 전송 시 엔디안을 염두해야 함
(엔디안을 무시하면 데이터 순서가 뒤섞일 수 있음)
입력과 출력
- I/O와 메모리가 같은 버스를 이용하는 공유 버스가 있음
중앙 처리 장치
- 산술 논리 장치
- ALU: 산술 계산, 불리언 대수 및 기타 연산을 수행하는 방법을 알고 있는 장치
- 피연산자(operand): 수를 표현하는 비트
- 연산 코드(명령 코드/opcode): 피연산자에 대해 ALU가
어떤 연산자(operator)를 적용할지 지정
- 조건 코드: 결과에 대한 추가 정보가 들어감 (조건 코드 레지스터에 조건 코드가 저장됨)
- 시프트
- 왼쪽 1번 shift하면 결과값은 2배, 오른쪽 1번 shift하면 결과값은 1/2배
- 시프트를 할 때 사라지는 MSB/LSB 비트를 조건 레지스터에 저장함
- 시프터는 부동소수점 연산 구현시에도 핵심 부품임
- 실행 장치
- 실행 장치(제어 장치): 메모리의 정해진 장소에서 명령코드(연산코드)와 피연산자들을 가져와서
ALU에게 어떤 연산을 수행할지 알려주고, 결과를 메모리에 돌려줌
- 명령어(Instruction)는 컴퓨터에게 어떤 일을 할지 알려주는 비트 패턴
- 프로그램 카운터(PC)는 메모리에서 명령어를 가져와야 하는 현재 위치를 알려줌 (화살표, 참조)
명령어 집합
- 명령어
- 누산기를 이용하여 ALU가 계산한 결과를 저장함 (누산기/A 레지스터)
- 1주소 명령어를 사용하면 명령어의 개수가 많아지지만 필요한 비트 수가 적어질 수 있음
- 주소 지정 모드
- 간접 주소 지정 방식을 통해 더 많은 메모리 사용 가능
(직접 주소 지정 방식은 주소가 명령어에 직접 들어가 있어서 사용할 비트 수 더 적음)
- 간접 주소 지정 방식은 CPU가 명령어에 들어 있는 값을 피연산자 주소로 해석하지 않고,
피연산자 주소를 얻을 수 있는 메모리 위치를 가리키는 주소로 사용함
- 즉시 주소 지정 모드는 주소를 지정하지 않고 직접 값을 지정하는 즉시 모드임
(주소에 해당하는 비트를 그냥 값으로 간주함)
- 조건 코드 명령어
- 분기 명령어
- 프로그램 카운터의 값을 변경할 수 있는 명령어
- 최종 명령어 집합 구성
- 주소 지정 모드 선택을 위해 2비트가 필요함
- 프로그램은 어떤 목표를 달성하는 일련의 명령어
마지막 설계
- 명령어 레지스터
- state machine: 패치 (메모리에서 명령어 가져옴) - 실행 사이클
- CPU에 명령어 레지스터를 추가해서 현재 실행 중인 명령어 저장
- 데이터 경로와 제어 신호
- 간접 주소 레지스터 이용 => 간접 주소 지정 시 메모리에서 읽어온 주소를 어딘가에 저장 위함
- 데이터 흐름 제어
- 랜덤 논리
- 적당한 크기의 메모리 사용 (마이크로코드 사용)
RISC와 CISC 명령어 집합
- RISC (Reduced Instruction Set Computer)
- 복잡한 명령어를 단순한 명령어의 조합을 통해 처리함
- Load-Store architecture (적재-저장 구조)
- 적재 (메모리에서 읽어오기)
- 메모리와 레지스터를 오가는 명령어들과 레지스터 간 명령어로만 이뤄진 구조
- CISC (Complicated Instruction Set Computer)
- 기존 설계 방식으로 만든 컴퓨터
- 자동 증가/자동 감소 주소 지정 모드 지원
GPU
- 그래픽은 병렬화하기에 좋은 작업임
(ex. 동시에 여러 점을 찍음)
- 간단한 처리 장치가 아주 많이 들어 있음
- CPU보다 메모리 버스의 폭이 더 넓음
(메모리에 더 빠르게 접근 가능)
정리
'Books > 한 권 컴퓨터 구조와 프로그래밍 ✔️' 카테고리의 다른 글
[한 권 컴퓨터 구조와 프로그래밍] 6장 - 입출력과 네트워킹 (0) | 2022.08.11 |
---|---|
[한 권 컴퓨터 구조와 프로그래밍] 5장 - 컴퓨터 아키텍처와 운영체제 (0) | 2022.08.11 |
[한 권 컴퓨터 구조와 프로그래밍] 3장 - 메모리와 디스크의 핵심: 순차 논리 (0) | 2022.08.11 |
[한 권 컴퓨터 구조와 프로그래밍] 2장 - 전자 회로의 조합 논리 (0) | 2022.07.18 |
[한 권 컴퓨터 구조와 프로그래밍] 1장 - 컴퓨터 내부의 언어 체계 (0) | 2022.07.11 |
댓글