| [[컴퓨터공학|'''컴퓨터 과학 및 공학 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||
{{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1lh + 5px)"{{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all" | <colbgcolor=#1282d7,#1282d7><colcolor=#fff,#fff> 학문 | 수학(이산수학 · 수리논리학 · 선형대수학 · 대수학(환론 · 범주론) · 정수론 · 해석학 · 미적분학 · 미분방정식) · 이론 컴퓨터 과학(튜링 머신 · 정보이론 · 계산 이론 · 타입 이론 · 시간 복잡도 · 최적화 이론 · 이진 탐색 · 난수생성) · 암호학 · 전자공학 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학 |
| 시스템 | SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD 컴퓨터 구조론 · 폰노이만 구조 · 마이크로아키텍처 · 논리 회로(논리 연산 · 비트 연산 · 카르노 맵 · 가산기 · 보수기 · 플립플롭) · FPGA · 하드웨어 가속 바이오스 · UEFI · ACPI · LinuxBoot 운영체제(인터럽트 · 멀티태스킹 · 프로세스 스케줄링 · 뮤텍스 · 세마포어 · 데드락 · 식사하는 철학자 문제) 통신망(네트워크 포트) · 대역폭 · 와이파이 · gRPC 임베디드 시스템 · 사물인터넷 · 슈퍼컴퓨터 · 양자 컴퓨터 | |
| 소프트웨어 | 컴퓨터 언어 · 기계어 · 어셈블리어 · 프로그래밍 언어(난해한 프로그래밍 언어) · 마크업 언어 어휘 분석 · 파싱 · 컴파일러 · 인터프리터 · 어셈블러 · 링커 · JIT 프로그래밍 패러다임(절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍) · 행위자 모델 데이터베이스(DBMS · NoSQL) · 메타데이터(EXIF) · 인코딩(유니코드 · MBCS) 소프트웨어 개발(애자일 · 워터폴) · 디자인 패턴 · 놀람 최소화 원칙 · 프로그램 최적화 · 버전(버전 관리 시스템) 프레임워크 · 라이브러리 · 모듈 · API · ABI | |
| 전문 분야 | 정보보호 · 해킹 · 리버스 엔지니어링 · 해시 · SHA · salt · 디피-헬만 키 교환 · RSA 암호화 · 일회용 비밀번호 · ROT13 · 브루트 포스 · 레인보우 테이블 인공지능(기계학습 · 인공신경망 · 딥러닝) · 자연어 처리(기계 번역 · 음성 인식) · 컴퓨터 비전(OCR) · 로보틱스 · 빅데이터 · 컴퓨터 그래픽스(OpenGL) · HCI(UI · UX) · 암호화폐 | |
| 관련 틀 | 틀:응용과학 · 틀:이론 컴퓨터 과학 · 틀:전기전자공학 · 틀:반도체 제조 공학 · 틀:컴퓨터 부품 · 틀:컴퓨터 메모리 · 틀:소프트웨어 · 틀:운영체제 · 틀:파일 시스템 · 틀:컴퓨터 언어의 분류 · 틀:프로그래밍 언어 · 틀:컴퓨터 언어의 목록 · 틀:데이터 직렬화 형식과 설정 파일 · 틀:SWEBOK · 틀:인공지능 · 틀:생성형 인공지능 관련 문서 · 틀:컴퓨터 분야 자격증 |
1. 개요
Floating-Point Unit부동소수점 형식의 수에 대한 산술 연산을 수행하는 장치이다. 부동소수점 연산기, 부동소수점 처리 장치라고도 한다.
CPU와 GPU 등에 부동소수점 명령을 처리하기 위해 탑재하며, 과학·공학 계산, 컴퓨터 그래픽스, 신호 처리, 기계 학습 등에 사용된다.
정수 연산을 주로 담당하는 ALU가 정해진 자릿수의 정수를 계산하는 데 비해, FPU는 부동 소수점의 특성상 수의 부호, 지수, 유효숫자를 해석하고 계산에 필요한 자릿수 정렬, 정규화, 반올림 등을 함께 처리한다. 내부에는 이러한 작업을 위한 가산기, 곱셈기, 시프터, 비교기와 제어 회로가 배치된다.
초기의 마이크로프로세서에서는 수치 연산이 필요한 경우 별도로 장착하는 보조 프로세서의 형태로 사용하였으며, 이후 CPU 내부에 통합되기 시작했다.
2. 역사
부동소수점 하드웨어는 마이크로프로세서 이전부터 사용되었다. 1954년의 IBM 704는 부동소수점 산술을 지원한 대표적인 초기 컴퓨터이며, 과학 연산을 위해 전용 기계 명령어를 제공했다. 이 시기의 컴퓨터는 제조사와 기종에 따라 데이터 형식, 정확도, 예외 처리 방식이 달랐기 때문에 같은 수치 알고리즘을 옮겨도 표현 범위와 반올림 특성이 달라질 수 있었으며, 프로그램은 대상 컴퓨터의 산술 특성을 고려해야 했다.초기 마이크로프로세서는 집적도와 비용 때문에 정수 연산을 중심으로 구성되었다. 부동소수점은 소프트웨어로 계산하거나, 수치 계산이 필요한 시스템에 별도의 연산 장치를 추가하는 방식으로 지원했다.
3. 구현
위 그림은 시대를 풍미하던 MIPS R10000의 FPU 구조이다. 그림에서는 mantissa 처리만 다루며 지수 및 예외 처리 등은 생략되었다.