일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인공지능
- 딥러닝
- CNN
- petal to metal
- Unsupervised learning
- 비용함수
- 그래픽스
- Computer Vision
- 백준
- Regularization
- Vision
- recommender system
- C++
- CPP
- Support Vector Machine
- 파이썬
- 신경망
- cs231n
- neural network
- 컴퓨터 비전
- 로지스틱 회귀
- 컴퓨터 그래픽스
- Kaggle
- pre-trained
- SVM
- SGD
- 머신러닝
- 추천 시스템
- OpenGL
- logistic regression
- Today
- Total
kwan's note
4주차-CPU의 구성 및 명령어 세트 본문
수강일시 :12월 29일
출처: kmooc 컴퓨터구조
3주차: CPU의 기본구조 및 구성요소에 대해 설명할 수 있다. 명령어 세트의 설계개념을 설명할 수 있다.명령어 및 데이터가 존재하는 메모리의 위치를 찾는 명령어 주소지정 방식을 설명할 수 있다.
CPU의 기본 구조 및 구성요소
1.산술논리연산장치(ALU)
산술 및 논리데이터에 대한 연산을 위한 하드웨어 모듈
2.레지스터 세트
엑세스 속도가 빠르지만 제한적이다.
특수기능과 범용으로 나뉜다
특수기능(SPR)레지스터
PC: 다음에 인출할 명령어 주소값을 가지고 있는 레지스터로 명령어가 인출된 후 자동적으로 일정크기만큼 증가한다.
분기나 조건 명령어가 실행되면 해당 주소값으로 갱신된다.
AC:메모리에서 데이터를 가져 왔을 때 저장 위치 순서를 결정하는 내용을 담고 있는 레지스터가 Accumulator (AC).
레지스터의 크기는 cpu가 한번에 처리할 수 있는 데이터 비트수이다.
IR: 명령어를 가져 와서 저장하는곳
SP: stack 의 시작번지나 주소값을 가지고 있음.
스택에 쌓이거나 줄어들때 값이 증가/감소함
MAR, MDR: CPU 에서 메모리와 연결이 될 때 주소정보(MAR), 주소(MDR)일시적으로 저장하는 레지스터.
Memory Address는 말 그대로 Address 정보를 가지고 있는 Buffer이므로 MAR, Memory Data Register는 데이터를 가지고 있는 레지스터 라고 해서 MDR이다.
3.제어유닛
명령어의 연산코드를 해석하는 해독기이다.
해독에 따른 실행을 위한 제어신호들을 순차적으로 발생시킨다.
마이크로 명령어로 이루어진 마이크로 프로그램을 저장하는 기억장치(ROM)등으로 구성되어있다,
따라서 전류공급이 되지 않아도 프로그램이 작동한다
4.CPU 내부 버스
ALU와 레지스터간 데이터 이동을 위한 연결과 제어유닛 신호 선들로 구성된 내부 버스이다.
외부 시스템과 직접연결되어있지 않으므로 빠르다.
버퍼레지스터(AMR MDR), 시스템버스 인터페이스 회로를 통해 외부 시스템 버스와 연결
명령어 세트는 CPU기능을 위해 정의되었다.
명령어 세트를 정의하기 위해 다음과 같은것들을 결정해야 한다.
스택아키텍쳐는 스택기반으로 push pop하면서 cpu에 기억함
만들기 쉬워서 초기에 많이 사용하지만 비효율적이고 병목이 있어 실제로 사용하지 않는다.
acc기반은 load add store하며 현재상태에 대해 누적하는 방식으로 만듬.
코드 밀도가 낮고 내부상태를 최소화시킬수 있지만 메모리 참조가 많아 latency가 증가해 느려진다.
GPR기반은 load add할때 새로운 operand를 지정해서한다. 코드는 길어지지만 메모리참조가 적어 빠른다.
명령어의 형식
op code와 operand의 비트수를 정하는 방법은 표현가능한 수의 범위를 나누어 생각한다.
16비트를 기준으로 생각한다면
1. 1-address instruction
op-code4+12
2. 2-address instruction(오퍼랜드 모두 레지스터)
op-code4+reg4+reg4
3. 2-address instruction(오퍼랜드 하나만 레지스터)
op-code4+reg4+8
op4. 3-address instruction(오퍼랜드 모두 레지스터)
op-code4+reg4+reg4+reg4
5. 3-address instruction(오퍼랜드 두개 레지스터)
op-code4+reg4+reg4+4
addressing mode
명령어 주소지정방식에 있어
정해진 명령어의 비트는 수가 매우 제한적이다. 따라서 오퍼랜드로 메모리는 지정하는것은 제한적이게 된다.
따라서 직접, 간접등 여러 방법으로 접근한다.
1.즉치 - 프로그램에서 상수값으로 사용, 메모리부터 가져오지 않음
2.묵시적 - 위치를 지정하지 않고 사용. 스택, 시프트등에 사용
3.직접 - 직접 절대주소를 지정한다.
4.간접 - 데이터로 주소값을 사용하여 주소에 접근하여 넓은 범위에 사용가능
5.레지스터 - 레지스터에 저장되어있어 메모리에 접근안하므로 빠름
5.레지스터 간접 - 레지스터에 주소로 저장되어있어 넓은 범위 사용 가능
5.변위 - offset을 사용한다. 레지스터와 변위로 사용하여 레지스터에 변위를 합하여 참조함
'Computer Programming > Computer System' 카테고리의 다른 글
6주차- 인터럽트(Interrupt)와 서브루틴(Subroutine), 파이프라이닝(Pipelining) (0) | 2020.12.29 |
---|---|
5주차 - 명령어 사이클 (컴퓨터 처리) (0) | 2020.12.29 |
3주차-arithmatic operation (0) | 2020.12.29 |
2주차-ALU -logic operations (0) | 2020.12.27 |
1주차-컴퓨터 구조 개요 (0) | 2020.12.26 |