일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인공지능
- petal to metal
- OpenGL
- pre-trained
- 머신러닝
- recommender system
- 신경망
- 컴퓨터 비전
- SVM
- cs231n
- 비용함수
- logistic regression
- Vision
- Support Vector Machine
- Unsupervised learning
- 로지스틱 회귀
- Regularization
- 백준
- CNN
- 그래픽스
- CPP
- 컴퓨터 그래픽스
- 추천 시스템
- Computer Vision
- 딥러닝
- Kaggle
- C++
- 파이썬
- neural network
- SGD
- Today
- Total
kwan's note
3주차-arithmatic operation 본문
수강일시 :12월 28일
출처: kmooc 컴퓨터구조
3주차: ALU정수형 상수의 곱셍방식을 이해하고 부동소수점 수의 표현 방법을 설명할 수 있다.
부동소수점 연산 방법에 대해 설명할 수 있다.
unsigned integer 곱
왼쪽은 사람이 계산하는 방식이고 오른쪽이 컴퓨터가 연산을 진행하는 방식이다.
피승수에 승수를 곱학게 되는데 승수Q의 첫번째자리와 피승수 1011을 곱하여 A reg에 넣는다.
AQreg를 logical shift right한다.
이러한 방식으로 마지막 비트까지 진행하면 첫째자리는 계속 logical shift right 하므로 본인의 실제 필요만큼 내려간다.
이를 하드웨어 관점에서 보면 다음과 같다.
레지스터를 보도록 하자.
교수님의 설명을
그대로 적었다.
"A Register는 0000이 들어가 있고요. 그 다음에 Q Register의 초기 값이 Multiplier, 즉 여기에는 1101이 들어가있는 형태가 되고요 A Register에는 0000이 들어가 있고요. 그 다음에 Carry Bit는 처음에는 0 이 들어가게 되있고요. 그 다음에 M Register에는 여기보시는 것처럼 1011이 초기에 들어가 있겠죠.
그 다음에 이제 Q Register의 가장 하위 Bit LSB를 우리가 Q0라고 표현을 했는데요. 그걸 봅니다. 그게 1인지 0인지를 판단해야겠죠? 그래서 여기다가 Control Circuit을 통해서 신호를 내주는데, 만약에 이 Q0가 0이었다라고 한다면 이 M Register에 있는 값을 그냥 0000으로 셋팅을 해서 내려야 되겠죠. 근데 만약에 Q0가 1이었다라고 한다면 그때는 M Register값에 1011을 그대로 내려야 됩니다.
n Bit Full Address로 들어온 또 하나의 Path는 이 A Register에 있는 값, Carry에 있는 값 A Register죠. A Register값을 이렇게 피드백시켜서 M Register값과 더하게 되면 앞서 말씀드린 덧셈작업을 수행하게 되는거죠. 그 결과가 다시 A Register로 저장이 됩니다. 이게 다 완료가 되면 Shift Right, C와 A Register와 Q Register 전체를 Logical Shift Right 한 번 하게 되면요. 자리수를 한번 내리는 그런 작업을 하게 되는 거죠. 이걸 이제 4번을 반복하는 거죠"
부호가 있는 곱의 표현방법(booth's algorithm)
이를 이용하여 부호가 있는 곱에 적용한다면 -7 * 3 =-21을 수행한다고 하자
1001 x 0011 = 11101011,AQ register 이다.
1001x0100-1001-0001을 활용하는 booth's algorithm을 이용하여 진행하면 된다.
부동소수점 표현의 기본적 내용은 C언어 내용을 참조
부동소수점 표현에 있어서 bias를 더해 저장하고 나중에 빼고 확인한다.
bias를 더하는 이유는 zero test를 진행하기 위함.
일반적인 정수와 동일한 방법으로 zero test를 하려면
E=1000 0000인경우 +128을 취해 E=0000 0000이 되도록 한다.
IEEE 754 standard 표현을 일반적으로 사용함.
IEEE 754 standartd BFPN 표현예시
'Computer Programming > Computer System' 카테고리의 다른 글
5주차 - 명령어 사이클 (컴퓨터 처리) (0) | 2020.12.29 |
---|---|
4주차-CPU의 구성 및 명령어 세트 (0) | 2020.12.29 |
2주차-ALU -logic operations (0) | 2020.12.27 |
1주차-컴퓨터 구조 개요 (0) | 2020.12.26 |
컴퓨터 구조 강의 (0) | 2020.12.26 |