일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- docker로 airflow 설치하기
- 스파크 완벽 가이드
- Python
- 데이터레이크와 데이터웨어하우스
- 블로그 이전했어요
- webcrawler
- leetcode 819
- leetcode 5
- leetcode 15
- leetcode 238
- leetcode 49
- 올바른 변수명 짓기
- leetcode
- leetcode 937
- 컴퓨터구조
- 빅데이터를 지탱하는 기술
- leetcode 121
- Hortonworks Sandbox
- airflow docker
- MapReduce 실습
- leetcode125
- leetcode 344
- 머신러닝
- 배열
- wargame.kr
- leetcode 234
- Hadoop
- ctf-d
- leetcode 561
- 문자열 조작
- Today
- Total
HyeM
[컴퓨터구조]1주차_CPU 본문
01. 구성요소 속도 & 용량 비교
- CPU 레지스터
- 캐시기억장치 : Static Ram
- 주기억장치 : Dynamic Ram
- 보조기억장치 : 하드디스크, 플로피 디스크, 자기테이프
1->4 순서로, 1번이 가장 속도가 빠르고, 가격이 비싸며,
4->1 순서로, 4번이 가장 용량이 크다.
02. CPU 구성 요소
- ALU (연산장치 , Arithmetic Logic Unit)
- 제어장치(컨트롤유닛; Control Unit)
- 레지스터(register)
- 버스
1. ALU (연산장치)
실제 연산을 담당하는 ALU 블록, 연산은 산술연산과 논리 연산 2가지로 나뉜다.
**구성요소
가산기, 보수기, 누산기, 시프터, 데이터 레지스터, 오버플로우 검출기, 상태 레지스터 등으로 구성되어 있다.
- 가산기 : 2개 이상의 수의 합 계산
- 보수기 : 뺄셈 계산
- 누산기 : 산술과 논리연산의 중간 값을 임시적으로 보관하기 위한 레지스터
- 시프터 : 2진수 자리를 왼쪽, 오른쪽 이동
- 데이터 레지스터 : 연산을 위한 데이터를 임시적으로 저장하는 레지스터
- 오버플로우 검출기 : 해당 레지스터의 용량 초과시, 검출
- 상태 레지스터 : 데이터 상태를 기억하는 레지스터
2. 제어장치(컨트롤유닛)
명령어를 해석하고, 그 해석된 결과에 따라 적절한 신호를
CPU의 다른블록에 보내는 일
( 명령어 해독기 : 명령어 레지스터에 있는 명령어 연산코드 필드를 전달받아, 해독/ 수행할 연산을 결정해서 연산장치에 전달. )
**명령어 형식
연산코드 + 기억장치 주소
- 연산코드 : 수행되어야 할 연신이 지정되어 있는 필드.
- 기억장치 주소 : 해당 연산을 수행할 때 데이터가 저장되어 있는 주소.
3. 레지스터
주기억장치로 부터 읽어온 명령어와 데이터를 임시적으로 저장하기 위한 조그만한 메모리 공간.
CPU의 종류에 따라서 그 개수와 형태가 다양함
ALU 처리 결과 데이터를 임시 보관하고, 기억 장치들 중 가장 속도가 빠르다.
** 종류
- 기억 장치 버퍼 레지스터(MBR): 주기억장치에서 읽어온 명령어를 임시적으로 저장한다. ; 기억장치로 쓰일 데이터나 기억장치에서 읽어온 데이터를 임시적으로 저장함
- 명령어 레지스터 : 기억 장치 버퍼 레지스터의 명령어 저장, 현재 실행중인 명령어 보관
- 기억장치 주소 레지스터 (MAR): 명령어 레지스터에 저장된 *명령어 형식 중 오퍼랜드에 저장된 기억장치의 주소를 저장한다.
- 프로그램 카운터 :다음에 실행할 명령어들의 주소 저장
*명령어 형식 은 [컴퓨터구조]2주차(1) 컴퓨터 정보표현 글에서 확인 가능함
추가적인 정보 기억장치 주소 레지스터 (MAR) : 프로그램 카운터에 저장된 명령어 주소(오퍼랜드에 저장된 기억장치 주소)가 시스템 주소 버스로 출력되기 전에 일시적으로 저장되는 주소 레지스터. ; 완충제 역할 기억장치 버퍼 레지스터 (MBR) : 기억장치로 쓰일 데이터나 기억장치로 부터 읽어온 데이터를 임시로 저장하는 레지스터, MAR의 실제 콘텐츠(데이터, 명령어) ; 완충제 역할
|
** 과정
1. 주기억장치RAM에서 명령어를 인출해서 기억장치 버퍼 레지스터(MBR)에 임시적으로 저장한다. [Fetch]
2. 명령어 레지스터에서 기억장치 버퍼레지스터의 명령어를 저장한다.
3. 다음에 실행되어야 할 명령어 주소가 프로그램 카운터에 저장된다.
4. 제어장치(명령어해독기)는 명령어를 해석한다.
5. 제어장치에서 발생된 제어신호에 의해 ALU 동작
+CPU 명령어 수행과정
Fetch : 메모리상(RAM)에 존재하는 명령어를 CPU로 가져옴 // RAM -> CPU Decode : 가져다 놓은 명령어를 CPU가 해석(분석)하는 단계 // CPU(의 제어장치)가 명령어 해석
Execute : 해석된 명령어를 산술/논리 연산장치(ALU) 통해 실행하는 단계 // CPU의 ALU로 실행
Store : 수행결과를 주기억장치(RAM)에 저장 //RAM에 저장 |
4. 버스
CPU 내에서 ALU와 레지스터 간의 데이터 이동을 위한 통로
**구성
- 데이터 버스 : 데이터 (명령어 & 피연산자)이동을 위한 버스
- 주소 버스 : 데이터 출발지 또는 목적지의 메모리 주소를 전달하는 버스
- 제어 버스 : 데이터버스와 주소버스를 제어하기 위한 버스
위의 내용으로 만든 문제 와 답안
'Study > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조]4주차_서브루틴과 명령어 구분 (0) | 2020.05.30 |
---|---|
[컴퓨터구조]3주차(2)_메모리 구조 & 레지스터 종류 (0) | 2020.05.23 |
[컴퓨터구조]3주차(1)_명령어 실행 기법 (0) | 2020.05.19 |
[컴퓨터구조]2주차(2)_어셈블리 프로그램 예제 (0) | 2020.04.18 |
[컴퓨터구조]2주차(1)_컴퓨터정보표현 (0) | 2020.04.17 |