728x90
CS
캐시 메모리(Cache Memory)
- 속도와 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리를 뜻한다.
- CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용한는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다.
- 속도라는 장점을 얻지만, 용량이 적기도 하고 비용이 비싼 점이 있다.
캐시 메모리 작동 원리
- 시간 지역성
- for나 while 같은 반복문에 사용하는 조건 변수처럼 한번 참조된 데이터는 잠시 후 또 참조될 가능성이 높다.
- 공간 지역성
- A[0], A[1]과 같은 연속 접근 시, 참조된 데이터 근처에 있는 데이터가 잠시후 또 사용될 가능성이 높다.
캐시 미스 경우 3가지
- Cold miss
- 해당 메모리 주소를 처음 불러서 발생하는 미스
- Conflict miss
- 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 캐시 메모리 주소에 할당되어 있어서 나는 미스(Direct mapped cache에서 많이 발생한다)
- Capacity miss
- 캐시 메모리의 공간이 부족해서 나는 미스(Conflict : 주소 할당 문제, Capacity : 공간 문제)
- 캐시 크기를 키워서 문제를 해결하려하면, 캐시 접근속도가 느려지고 파워를 많이 먹는 단점이 생긴다.
구조 및 작동 방식
- Direct Mapped Cache
- 가장 기본적인 구조로, DRAM의 여러 주소가 캐시 메모리의 한 주소에 대응되는 다대일 방식이다.
- 캐시 메모리는 인덱스 필드 + 태그 필드 + 데이터 필드 로 구성된다.
- 간단하고 빠른 장점이 있지만, Conflict Miss가 발생한다는 것이 단점이다.
- Fully Associative Cache
- 비어있는 캐시 메모리가 있으면, 마음대로 주소를 저장하는 방식이다.
- 저장할 때는 매우 간단하지만, 찾을 때 문제가 생긴다.
- 조건이나 규칙이 없어서 특정 캐시 Set 안에 있는 모든 블럭을 한번에 찾아 원하는 데이터가 있는지 검색해야 한다. CAM이라는 특수한 메모리 구조를 사용해야 하지만 가격이 매우 비싸다.
- Set Associative Cache
- Direct + Fully 방식이다. 특정 행을 지정하고, 그 행안의 어떤 열이든 비어있을 대 저장하는 방식이다.
- Direct에 비해 검색 속도는 느리지만, 저장이 빠르고 Fully에 비해 저장이 느린 대신 검색이 빠른 중간형이다.
고정 소수점 & 부동 소수점
- 컴퓨터에서 실수를 표현하는 방법은 고정 소수점과 부동 소수점 두가지 방식이 존재한다.
고정 소수점(Fixed Point)
- 소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식(정수 + 소수)
- ex) -3.14의 경우 부호(-)와 정수부(3), 소수부(0.141592) 3가지 요소가 필요하다.
- 장점
- 실수를 정수부와 소수부로 표현하여 단순하다.
- 단점
- 표현의 범위가 너무 적어서 활용하기 힘들다. (정수부는 15bit, 소수부는 16bit)
부동 소수점(Floating Point)
- 실수를 가수부 + 지수부로 표현한다.
- 가수 : 실수의 실제값 표현
- 지수 : 크기를 표현한다. 가수의 어디쯤에 소수점이 있는지 나타낸다.
- 지수의 값에 따라 소수점이 움직이는 방식을 활용한 실수 표현 방법이다. 즉, 소수점의 위치가 고정되어 있지 않다.
- 장점
- 표현할 수 있는 수의 범위가 넓어진다.(현재 대부분 시스템에서 활용 중)
- 단점
- 오차가 발생할 수 있다.(부동 소수점으로 표현할 수 있는 방법이 매우 다양하다)
패리티 비트 & 해밍 코드
패리티 비트
- 정보 전달 과정에서 오류가 생겼는 지 검사하기 위해 추가하는 비트를 말한다.
- 전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다.
- 종류
- 짝수, 홀수
- 전체 비트에서 (짝수, 홀수)에 맞도록 비트를 정하는 것
해밍 코드
- 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 말한다.
- 패리티 비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다.(패리티 비트는 오류를 검출하기만 할 뿐 수정하지는 않기 때문에 해밍 코드를 활용한다)
- 방법
- 2의 n승 번째 자리인 1,2,4번째 자릿수가 패리티 비트라는 것으로 부터 시작한다. 이 숫자로부터 시작하는 세개의 패리티 비트가 짝수인지, 홀수인지 기준으로 판별한다.
- 짝수 패리티의 해밍 코드가 0011011일때 오류가 수정된 코드는?
- 1, 3, 5, 7번째 비트 확인 : 0101로 짝수이므로 '0'
- 2, 3, 6, 7번째 비트 확인 : 0111로 홀수이므로 '1'
- 4, 5, 6, 7번째 비트 확인 : 1011로 홀수이므로 '1'
- 역순으로 패리티 비트를 ‘110’ 도출했다. 10진법으로 바꾸면 ‘6’으로, 6번째 비트를 수정하면 된다.
- 따라서 정답은 00110’0’1 이다.
ARM 프로세서
- 프로세서란?
- 메모리에 저장된 명령어들을 실행하는 유한 상태 오토마톤
- ARM : Advanced RISC Machine
ARM 구조
- ARM은 칩의 기본 설계 구조만 만들고, 실제 기능 추가와 최적화 부분은 개별 반도체 제조사의 영역으로 맡긴다. 따라서 물리적 설계는 같아도, 명령 집합이 모두 다르기 때문에 서로 다른 칩이 되기도 한다.
- ARM은 RISC 설계 기반으로 ‘단순한 명령집합을 가진 프로세서가 복잡한 것보다 효율적’ 임을 기반하기 때문에 명령 집합과 구조 자체가 단순하다. 따라서 ARM 기반 프로세서가 더 작고, 효율적이며 상대적으로 느리다.
- 단순한 명령 집합은, 적은 수의 트랜지스터만 필요하므로 간결한 설계와 더 작은 크기를 가능케 한다.
728x90
'Study > TIL(Today I Learned)' 카테고리의 다른 글
24.07.01 CS, 그래픽스 (0) | 2024.07.01 |
---|---|
24.06.28 CS (0) | 2024.06.28 |
24.06.26 CS (0) | 2024.06.26 |
24.06.25 알고리즘, CS (0) | 2024.06.25 |
24.06.24 알고리즘 (0) | 2024.06.24 |