일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백로과
- AI전략게임
- 참새과
- 기러기목
- IBK기업은행 인턴
- keras
- 비둘기목
- 오리과
- 가마우지과
- 딱다구리과
- ADsP
- 생일문제
- 직박구리과
- 딥러닝공부
- 솔딱새과
- 흰날개해오라기
- django
- SimpleCraft
- 맑은소리 스피치학원
- 한국의 새
- Python
- Birthday paradox
- python3
- 비둘기과
- 계수정렬
- 딥러닝 공부
- 참새목
- 한국의새
- structured_array
- AI역량평가
- Today
- Total
진박사의 일상
컴퓨터 일반 요약 공부 - Part1. -2- 본문
컴퓨터 구조
10. 고정소수점수의 표현
(1) 10진연산
-ㄱ. 언팩형식 : 10진수 한자리를 (zone+digit)로 나눠 한 바이트로 표현. 최하위 바이트 존 부분을 부호(양수는 C(1100), 음수는 D(1101), 부호X = F(1111)). 입출력 I/O에 적합한 형식. ex) 123 -> F1F2C3 / -123 -> F1F2D3
-ㄴ. 팩 형식 : 10진수 한 자리를 4bit로 표현.(1byte에 2자리) 최하위 4번째 비트를 부호로 사용(+=C, -=D)
(2) 2진연산 - 보수를 활용해 뺄셈을 덧셈의 원리로 연산할 수 있어 가산기만으로 사칙연산이 가능
-ㄱ. 부호화크기 : MSB를 부호비트(0=양수, 1=음수). 음수표현 간단하지만 감/가산기가 모두 필요해서 하드웨어 비용+
-ㄴ. 1의 보수 : 음수는 보수화해서 처리. 덧셈시 윤환올림수 처리 과정 필요.
-ㄷ. 2의 보수 : 1의 보수에 +1을 해서 음수 표현.
장점 : ㄱ,ㄴ에서 +0, -0이 생기는 문제 해결 -> 음수 하나 더 표현 가능. 윤환올림수 연산 필요X -> 속도 빠름
11. 부동소수점수의 표현
가수(고정소수를 나타내는 부분)와 지수(고정소수점 위치를 나타내는 부분)로 나누어 표기. 가수+->정밀+, 지수+->큰수
정규화는 소수점 이동하여 소수 첫째자리에 유효숫자가 오도록 하여 지수부+가수부 형태로 만드는 것으로, 유효숫자가 늘어나 정밀도가 높아지나 연산속도를 느리게 한다.
IEEE 754 표준 부동소수점의 형식 (S = 부호, E=지수, M=가수)
32비트 단정도 - S(1) + E(8) + M(23) / 64비트 배정도 - S(1) + E(11) + M(52) / N = (-1)^S * M * B^E (B = base)
지수 필드는 biased binary로 표현(bias = 127 = (01111111) )
연산
덧셈/뺄셈 : 0인지 조사 -> 지수가 큰 수를 중심으로 작은 수의 가수 위치 조정-10^(-2), 10^(-4)라면, 10^(-2), 0.01*10^(-2)로 -> 가수끼리 덧셈 뺄셈 -> 정규화
곱셈/나눗셈 : 0인지 조사 -> (나눗셈이라면 레지스터 초기화 + 부호 결정 -> 피젯수 위치 조정) -> 지수 연산(곱셈은 +, 나눗셈은 -) -> 가수끼리 곱셈, 나눗셈 -> 정규화
12. 문자 자료 표현
- BCD 코드(8421코드, 2진화 10진코드) : Zone Field(2bit, 00=숫자, 11=A~I, 10=J~R, 01=S~Z) + Digit Field(4bit)
- EBCDIC : 8비트(BCD+ 2bit), BCD와 달리 소문자 구별 가능 - Zone(4bit), Digit(4bit)
- ASCII : 7bit(Zone:3, Digit:4) - 128문자 표현
- UNICODE : 2byte 만국 공통 국제 문자 부호 첵(UCS), 2^16개의 단어 표현 가능
- 가중치코드 : 각 자리수에 고유한 가중치를 가진 코드 : 2421코드, 51111콛, 7421코드, 74-2-1코드, 8421코드, 84-2-1코드, Biquinary(5043210) 코드, 링카운터(9876543210) 코드 등
- 비가중치 코드 : 자리수 가중치 X : 3초과 코드, 그레이코드, 2 out of 5 코드, 3 out of 5 코드 등
- 오류검출코드 : 전송 오류를 검출할 수 있는 코드 : 패리티 검사 코드, 해밍 코드, 2 out of 5 code, 3 out of 5 code, 비퀴너리 코드, 링카운터 코드 등
- 자보수 코드 : 1의 보수를 취한 것이 10진수의 9의 보수인 코드 : 3초과, 2421, 51111, 84-2-1 등
- 그레이 코드 : 연속된 코드가 한 비트만 변화. XOR 원리 이용(첫자리는 그대로, 그 이후로는 XOR한 값)한 비가중치코드로 연산X, 입출력장치 코드, A/D변환기 등에 사용
- 패리티 비트 : 바이너리 코드의 비트열 마지막에 추가하는 1개의 비트로 짝수=0, 홀수=1로 나타내 오류 검출
- 해밍코드 : 8421 + 3 패리티비트로 오류발견 + 1bit 오류까지는 교정도 가능(2bit 이상은 불가), 패리티 비트 위치는 2^n(패리티 비트 개수는 n개), 오류 검출시 패리티 검사를 다시 해서 맞으면 0, 틀리면 1로 바꾸고 순서대로 썼을 때 0이면 오류x, 1이 있으면 해당 패리티들을 10진수로 바꾼 위치가 오류 발생 위치
13. 연산 종류
- 분류 : 비수치적(논리연산, 보수, 시프트, 로테이트, 이동 연산) <-> 수치적(사칙연산, 산술 shift연산), 단항(shift, rotate, 보수, 이동, not) <-> 이항(AND, OR, XOR, 사칙연산)
- AND(MASK) : 특정 비트 삭제
- OR(Selective-Set) : 특정 비트를 1로 set
- XOR(Compare, Selective_Complement) : 2개의 데이터를 비교(A XOR B에 1이 있으면 다름)하거나 특정 비트 반전.
- NOT(Complement, 보수) 연산 : 비트 반전
- AND NOT(Selective_Clear) : 1에 대응하는 bit를 클리어
- Rotate : 한 비트씩 옆으로 이동하고 밀려난 데이터는 반대쪽 끝으로 이동 / 특정 비트 내용 알아내거나 문자 위치 교환
- 논리 shift : 좌나 우로 1bit씩 이동, 밀려나고 남은 위치에는 0이 padding됨
- 산술 shift : 왼쪽으로 n bit shift하면 2^n배, 오른쪾으로 n bit shift하면 2^(-n)배, MSB(최좌단비트), LSB(최우단비트). 2의 비트일 경우 좌shift는 0을 패딩, 우shift인 경우 부호비트를 패딩
14. 컴퓨터 시스템
- 하드웨어 : CPU(제어장치, 연산장치, register), 주기억장치(RAM, ROM), 주변장치(I/O장치, 보조기억장치(HDD, SSD))
- 소프트웨어 : 시스템 SW(= OS, 제어프로그램[감시프로그램, 데이터관리프로그램, 작업관리프로그램] + 처리프로그램[언어번역프로그램, 서비스프로그램]) +응용 SW(패키지 프로그램, 사용자 정의 프로그램)
- CPU(중앙처리장치) : 제어장치, 연산장치(ALU), 기억장치(레지스터)
15. 제어장치(Control Unit)
주기억장치에 기억된 프로그램 명령을 하나씩 꺼내 해독하고 각 장치에 필요한 제어신호를 줘 장치를 동작하게 함.
- 기능 : 입출력장치 제어, 주기억장치 자료 기억+읽기, 주기억장치-ALU의 경로 정하기, ALU 실행을 지시
- 구성요소
(1) 명령계수기(PC) : 다음에 실행할 명령의 주소를 기억하는 레지스터
(2) 주소 레지스터(MAR) : 주기억장치에서 선택될 주소를 기억하는 레지스터, (명령, 기억, 장치 주소가 각각 따로 된 경우도)
(3) 메모리 버퍼 레지스터(MBR) : PC나 MAR가 지정한 주기억장치 내용을 임시로 기억하는 레지스터
(4) 명령 레지스터(IR) : 명령 계수기가 지정한 주소의 명령을 인출해 명령 실행 완료까지 보관해두는 레지스터. 가장 최근에 인출한 명령어를 보관
(5) 인덱스 레지스터(IX) : 주소 계산에 이용되는 레지스터, IR나 인덱스를 변경할 때 변경자를 기억
(6) 제어 신호 발생기(부호기) : 명령해독기로부터 보내온 신호를 명령을 실행하는데 필요한 신호로 바꿔 각 장치에 제어신호를 보내는 장치
- 명령 실행 순서
(1) PC에 기억된 주소를 MAR(주소 레지스터)에 보냄 -> (2) MBR(메모리 버퍼 레지스터)에 있는 명령을 IR(명령 레지스터)가 인출 -> (3) IR의 명령코드를 제어신호 발생기의 디코더로 보내 해독 -> (4) 명령 실행을 위해 제어신발생기는 필요한 장치에 제어신호 발생 -> (5) 주소처리기는 다음 실행할 명령 주소를 계산해 PC에 기억 -> (6) (1)로 돌아가 다음 명령 수행
16. 연산장치(ALU)
연산과 논리동작을 담당, 논리연산부(논리연산 담당)와 산술연산부(사칙연산 담당), 시프트(보조)로 구성
- 구성 요소
(1) 누산기(AC) : 연산 결과를 일시적으로 기억하는 레지스터. 누산기 데이터 + 주기억장치 데이터를 연산해 기억
(2) 데이터 레지스터 : 실행 대상(Operand)이 2개 필요한 경우 주기억장치로부터 읽어들인 데이터 임시보관했다가 필요할 때 제공
(3) 가산기 - 누산기와 데이터 레지스터의 두 수를 가산해서 누산기에 저장
(4) 상태 레지스터 : 연산 결과가 양수 or 0 or 음수인지, 자리올림이나 오버플로 여부, 외부 인터럽트 신호 유무 등 기억
(5) 범용 레지스터 : 필요에 따라 누산기, MBR, MAR, IX 등 다목적으로 사용할 수 있는 레지스터.
(6) 부동소수점 레지스터 : 자릿수가 큰 수나 매우 작은 수치를 취급하는 복잡한 계산에 이용하는 레지스터
(7) 특수기능 레지스터(SFR) : 128byte이며 그 영역에는 PC/Timer, 시리얼포트, 인터럽트 등 주변기기의 상태 정보나 제어값을 갖는 레지스터
(※ PSW(Program Status Word) : 컴퓨터 시스템 내부의 순간적인 시스템 상태를 기록하고 있는 특별한 word, 산술명령을 정확히 이해하려면 SFR(Special Function Register) 영역에 있는 PSW를 잘 알아야 함. - CY, AC, F0, RS1, RS0, OV, -, P로 구성. 캐리플래그, 패리티 플래그, 제로 플래그, 씽 플래그, 오버플로 플래그 등이 있음.)
'프로그래밍 > 공부' 카테고리의 다른 글
[정보보안] 3강 - User Authentication (0) | 2021.09.27 |
---|---|
빅데이터 가명익명조치기술 전문 교육 2일차 요약 (0) | 2021.09.22 |
[데베시] 2강 (0) | 2021.09.16 |
빅데이터 가명익명조치기술 전문 교육 1일차 (0) | 2021.09.14 |
[컴퓨터보안] 2강 - 2장 Cryptographic Tools (0) | 2021.09.13 |