Study/TIL(Today I Learned)

24.06.27 CS

에린_1 2024. 6. 27. 17:16
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. 1, 3, 5, 7번째 비트 확인 : 0101로 짝수이므로 '0'
    2. 2, 3, 6, 7번째 비트 확인 : 0111로 홀수이므로 '1'
    3. 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