1. 고정 소수점 & 부동 소수점
컴퓨터에서 실수를 표현하는 방법은 고정 소수점과, 부동 소수점 두가지 방식이 존재한다.
1 - (1) 고정 소수점(Fixed Point)
소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식 ( 정수 + 소수)
-3.141592는 부호 - 와 정수 3, 소수 0.141592 , 3가지 요소가 필요하다.
고정 소수점 방식은 아래의 사진과 같이 표현 할 수 있다.
이렇게 표현 하였을 때
장점은 실수를 정수부와 소수부로 표현하여 단순하다는 것이 있고
단점으로는 표현의 범위가 너무 적어 활용하기 힘들어 진다는 점이 있다.
1 - (2) 부동 소수점(Floating Point)
실수를 가수부 + 지수부로 표현한다
가수 : 실수의 실제값 표현
지수 : 크기를 표현함. 가수의 어디쯤에 소수점이 있는지 나타낸다.
지수의 값에 따라 소수점의 움직이는 방식을 활용한 실수 표현 방법이다.
즉, 소수점의 위치가 고정되어 있지 않다.
부동 소수점 방식은 아래의 사진과 같이 표현 할 수 있다.
이와 같이 표현하면
표현할 수 있는 수의 범위가 넓어진다는 장점이 있으며, 현재 대부분 시스템에서 활용중이다.
단점으로는 오차가 발생할 수 있다는 문제가 있다.(부동 소수점으로 표현할 수 있는 방법이 매우 다양함)
위와 같은 오류는 모든 프로그래밍 언어에서 발생하는 오류이다.
그렇기에 에러를 줄이기 위한 방법들이 존재한다.
글쓴이가 사용하는 C++에서는 Epsilon함수를 사용하는 방법이 있다.
부동소수점 수의 비교에 사용되는 오차 허용치를 주어 미세한 차이를 허용하여 준다.
2. 패리티 비트 & 해밍 코드
2 - (1) 패리티 비트
정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트를 말한다.
전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다.
종료 : 짝수, 홀수
전체 비트에서 (짝수, 홀수)에 맞도록 비트를 정한다.
짝수 패리티일 때 7비트 데이터가 1010001이면
1이 총 3개로 홀수 이므로, 1을 더해 짝수를 만들어 11010001로 만들어준다. 맨앞의 1이 패리티 비트가 된다.
2 - (2) 해밍 코드
데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 말한다.
쉽게 말하면 실수했을 때 그 위치를 직접 찾아내어 고쳐 주는 코드 시스템이다.
패리티비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다.
(패리티 비트는 오류를 검출하기만할 뿐 수정하지는 않기 떄문에 해밍 코드를 활용한다.)
2의 n승 번째 자리인 1,2,4번째 자릿수가 패리티 비트라는 것으로 부터 시작한다.
이 숫자로부터 시작하는 세개의 패리티 비트가 짝수인지, 홀수인지 기준으로 판별한다.
짝수 패리티의 해밍 코드가 0011011일 경우,
P1 = 1,3,5,7번 비트 확인 : 0101로 짝수이므로 0
P2 = 2,3,5,7번 비트 확인 : 0111로 홀수이므로 1
P3 = 4,5,6,7번 비트 확인 : 1011로 홀수이므로 1
역순으로 패리티 비트 110으로 도출하고, 10진법으로 바꾸면 6으로
6번쨰 비트를 수정하여 올바른 코드는 0011001이 된다.
3. ARM 프로세서
프로세서란 . 메모리에 저장된 명어 들을 실행하는 유한 상태 오토마톤
ARM = Advanced RISC Machine
진보된 RISC기기의 약자로 ARM의 핵심은 RISC이다.
RISC = Reduced Instruction Set Computing으로 감소된 명령 집합 컴퓨팅이다.
단순한 명령 집합을 가진 프로세서가 복잡한 명령 집합을 가진 프로세서 보다 훨씬 더 효율적이지 않을까라는 생각으로 만들어졌다.
ARM의 구조는 아래의 그림 처럼 표현할 수 있다.
ARM은 칩의 기본 설계 구조만 만들고, 실제 기능 추가와 최적화 부분은 개별 반도체 제조사의 영역으로 맡긴다.
따라서 물리적 설계는 같아도, 명령 집합이 모두 다르기 때문에 서로 다른 칩이 되기도 하는 것이 ARM이다.
소비자에게는 칩이 논리적 구조인 명령 집합으로 구성되면서, 이런 특성 때문에 물리적 설게 베이스는 같지만 용도에 따라 다양한 제품군을 만날 수 있는 특징이 있다.
아무래도 아키텍처는 논리적인 명령 집합을 물리적으로 표현한 것으로, 명령어가 많고 복잡해질수록 실제 물리적인 칩 구조도 크고 복잡해진다.
하지만 ARM은 RISC 설계 기반으로 단순한 명령집합을 가진 프로세서가 복잡한 것보다 효율적임을 기반하기에
명령 집합과 구조 자체가 단순하다. 따라서 ARM 기반 프로세서가 더 작고, 효율적이며 상대적으로 느린 것이다.
단순한 명령 집합은, 적은 수의 트랜지스터만 필요하므로 간결한 설게와 더작은 크기를 가능하게 한다.
반도체 기본 부품인 트랜지스터는 전원을 소비해 다이의 크기를 증가시키기 때문에 스마트폰이나 태플릿PC를 위한 프로세서에는
가능한적은 트랜지스터를 가진 것이 이상적이다.
따라서, 명령 집합의 수가 적기 때문에 트랜지스터 수가 적고 이를 통해 크기가 작고 전원 소모가 낮은 ARM CPU가
스마트폰, 태플릿PC와 같은 모바일 기기에 많이 사용된다.
'컴퓨터 구조와 운영체제' 카테고리의 다른 글
컴퓨터 아키텍처 (1) (2) | 2025.06.08 |
---|---|
운영체제(OS, Operating System) (0) | 2025.04.01 |
페이징(Paging) (0) | 2024.12.05 |