컴퓨터 구성요소
컴퓨터를 크게 두 개로 나누면 하드웨어와 소프트웨어로 나뉨
이때 하드웨어는 중앙처리장치, 기억장치 그리고 입출력 장치로 나뉘는데 오늘 구체적으로 볼 것은 중앙 처리장치와 기억장치.
<기억해야 할 세 가지 요소>
1. CPU (중앙 처리 장치)
- 컴퓨터의 대뇌 (기억, 해석, 연산, 제어라는 매우 중요한 역할을 함)
- 컴퓨터의 명령을 해석하여 데이터를 연산/처리하고 돌아가도록 제어하는 부분을 내장한 칩을 의미
- 중앙 처리 장치 안에 레지스터라는 기억 장치 존재
2. 기억장치
(1) 주기억장치
- CPU 접근이 가능
- 수치·명령·자료 등을 기억하는 컴퓨터 하드웨어 장치
- RAM(랜덤 액세스 메모리): 임의의 영역에 접근하여 읽고 쓰기가 가능
- ROM(리드 온리 메모리): 고정 기억 장치
(2) 보조기억장치
- 속도가 느리지만 많은 것을 저장 가능
3. 캐시메모리
CPU(중앙처리장치)안에 레지스터라는 기억 장치 존재하는데 레지스터라는 기억장치 안에 있는 모든 기억은 주기억장치에서 가지고 온다. 이때 기억장치에서 메모리를 가져오는 속도는 매우 느리다
==>결과적으로 캐시 기억 장치는 느리게 동작하는 주기억장치와 빠르게 동작하는 중앙처리장치 사이에서 속도 사이를 줄여줘서 중앙 처리 장치에서의 데이터와 명령어 처리 속도를 향상시킴
용량이 높아질수록 가격은 낮아지지만 속도 또한 낮아짐
=> 용량이 높다고 좋은 것이 아니고 속도가 빠르다고 무조건 좋은 것도 아님.
컴퓨터의 많은 구성 요소들 중에서도 우리가 이번 시간 중점적으로 다룰 것은 CPU
1. 인출: 필요한 명령어를 주기억장치에서 불러냄
2. 해독: 호출된 명령어를 해석
3. 실행: 해석된 명령어를 산술/논리 연산장치를 통해 실행
4. 저장: 수행 결과를 주기억장치에 저장
(1) CPU - ALU
다음 보이는 CPU-ALU 사진은 CPU 내부의 사진을 보여주고 있는 것이다.
ALU (산술 논리 연산 장치)
- 산술 연산 논리 연산
- 산술 논리 연산장치 내의 데이터 상태를 표시(음수, 0, 오버플로우 표시)
- 데이터 비트를 좌우별 비트별 이동.
-연산 장치 내의 보수 연산을 수행
(2) CPU - 제어 장치
명령어를 해독하고 신호를 해당 장치에 전달
명령어 형식>>연산코드+기억장치 주소
*연산코드: 수행되어야 할 연산이 지정되어 있는 필드
*기억장치 주소: 해당 연산을 수행할 때 데이터가 저장되어 있는 주소
(3) CPU-레지스터
CPU 내에서 데이터를 저장하는 장치
->주기억장치로부터 읽어온 명령어와 데이터를 임시 보관
->ALU 처리 결과 데이터를 임시 보관
-> 기억 장치들 중 속도가 제일 빠름
(4) CPU - 레지스터 & 제어장치
다음 사진은 주기억장치에서 CPU까지 계산하는 과정. 주기억장치에는 연산코드와 기억장치의 주소가 존재
기억장치 버퍼 레지스터
- 주 기억장치에서 읽어온 명령어를 임시적으로 저장
- 즉, 속도의 차이를 완충시키는 완충제 역할
명령어 레지스터
- 기억 장치 버퍼 레지스터의 명령어를 저장
- 진짜 레지스터라 볼 수 있음
기억장치 주소 레지스터
- 명령어 레지스터에 저장된 명령어의 주소 번지를 저장
명령어 해독기
- 명령어 레지스터에 저장된 명령어 연산 코드의 필드를 전달받음.
- 연산코드 필드를 해독/수행할 연산을 결정해서 연산장치에 전달
프로그램 카운터
- 다음에 수행할 명령어의 주소 번지를 저장
ex 1) add r1, r2 라는 명령이 들어왔다고 과정
add는 명령어 해독기로 들어가고 r1과 r2는 기억장치 주소 레지스터로 들어감 이후 데이터를 누산기로 가져다 주고 프로그램 카운터는 내가 다음에 시행해야 할 연산을 가리킴
+추가 설명
명령에는 연산코드와 메모리 주소가 존재한다. 이를 CPU 내로 가져와야 하는데 CPU는 주기억장치에 비해 빠르므로 기억장치 버퍼 레지스트를 통해 완충제 역할을 하는 것이다. 이때 중요한 것은 명령어 레지스터인 것을 기억
add는 명령어 해독기에서 해독하는 과정을 거친 뒤에 연산장치로 제어권을 넘겨줌
r1와 r2는 기억장치 레지스터로 들어감(주기억장치에 있으므로 누산기에 넣어야 되는데 이 과정을 검정색 화살표가 수행)
이후 다음에 수행할 곳을 프로그램 카운터가 가리키게 된다.
(5) CPU - 제어장치의 기본 동작 과정
RAM - 주기억장치
주기억장치에 명령어가 들어가 있음을 확인 (사진에서 박스가 세 개 즉 명령어가 세 개가 있음)
- RAM에서 명령어를 인출해서 명령어 레지스터에 가져와서 실행을 함
- 다음에 실행되어야 할 주소를 프로그램 카운터에 저장
- ADD는 연산자코드이므로 빼서 명령어 해독기에 넣음 (명령어 해독기로 명령어가 빠져서 연산코드가 해독이 되어야 함. 이때 어떠한 명령어인가는 주기억장치에 있음. 그것을 명령어 레지스터로 가져오는 것)
- R1, R2는 주소로 가져올 수 없으므로 직접 가져와야 함
- 이후 명령어 레지스터에 명령어가 새로 세팅되면 프로그램 카운터 도한 바뀜 (다음 내가 수행해야 할 것을 가리킴)
참고: 2019 컴퓨터 구조 호준원교수님 강의노트, 디지털논리와 컴퓨터 설계, Harris et al. (조영완 외 번역), 사이텍미디어, 2007, 컴퓨터 구조와 원리 (비주얼 컴퓨터 아키텍처), 신종홍 저, 한빛미디어, 2011
컴퓨터 구조 1주차 스터디를 끝내 봤다. 개념확인 문제를 통해 잘 익혔는지 확인해보자.
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 4주차 (0) | 2020.05.28 |
---|---|
컴퓨터 구조 3주차(2) (0) | 2020.05.23 |
컴퓨터 구조 3주차(1) (0) | 2020.05.23 |
컴퓨터 구조 2주차(2) (0) | 2020.04.16 |
컴퓨터 구조 2주차(1) (0) | 2020.04.16 |