패스트캠퍼스

[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 22회차 미션

돌맹이시터 2020. 11. 9. 23:39

 

환급미션 22일째..

 

 

컴퓨터 구조 - 메모리 구조 - Memory system의 이해 -1

컴퓨터 구조 - 메모리 구조 - Memory system의 이해 -2

 

 

 

 

- 메모리 계층 ( c주기억장치, 보조기억장치, 캐쉬메모리 )

 

기능에 따라 가격이 상이하기 때문에

경제성을 고려하여 메모리를 계층별로 나누어서 사용하게 된다.

 

 

 

 

 

* 주 기억장치 (main memory unit)

 

RAM (random access memory)- 메인보드에 장착, 비교적 대용량, 고속, 휘발성

ROM (read only memory)

 

위 그림은 RAM 의 동작 원리를 나타낸다.

 

MAR(memory address register)를 통해 입력 정보를 받고, 

주소 디코더를 지나 RAM에서 CS (clock signal), RD(read), WR(write) 의 시그널 정보를 비교하고,

MBR(memory buffer register)을 통해 입/출력 정보가 전달되게 된다.

 

 

 

* 캐시 메모리 (cache memory, buffer)

 

SRAM을 주로 사용하는데, 속도가 ns 급으로 빠르다. ( 1ns = 1GHz )

최근 프로세서의 클럭 속도가 빨라지면서 메인 메모리와의 속도 차이가 증가하게 되었고,

이 때문에 전체 시스템 성능의 향상이 어려워졌는데 

SRAM을 CPU와 DRAM 사이에 두어 메인 메모리에 접근이 더욱 빨라지게 되었다.

캐시의 용량, 성능이 점점 증가함에 따라 캐시의 캐시로 사용되는 메모리가 추가되었다.

L(level)1, L2, L3 ... 으로 호칭하게 되는데, L1 캐시가 가장 고성능이다.

 

현재 진행중인 프로그램의 일부 or 사용빈도가 높은 임시데이터 저장

 

 

* 보조기억장치 (auxiliary memory unit)

 

Magnetic tape, USB, SD card 등

저속, 대용량

주기억장치로 옮겨져야 한다.

 

(트랙의 앞뒷면을 모두 사용하는데, 제일 윗면/아랫면은 사용하지 않는다. 위 그림에서 8개의 트랙이 사용된다.)

 

seek time : read/write head가 지정된 기억장소에 도달하는데 걸리는 시간

transfer time : 추출한 데이터를 필요한 곳으로 전송하는데 요구되는 시간

record : 데이터가 기록되는 단위, seek time을 체크하는 기준

전송률 : record 시작점에 위치, 단위 시간당(min) 전송할 수 있는 문자/워드의 수

 

 

 

* SRAM (static) / DRAM (dynamic)

 

SRAM - 전원이 공급되는 동안 내용이 보존, 고속

DRAM - 주기적으로 전원을 공급해야 함, 저속 ( 정보를 이루는 각 비트를 분리된 축전지에 저장해야 하는데, 누전이 되어 정보를 잃는 것을 방지하기 위해 일정시간마다 재생시켜야 하므로 dynamic이라는 명칭이 붙음 )

 

 

 

 

 

 

컴퓨터 구조 - 메모리 구조 - 효율적 메모리 관리 정책

 

 

- Associative memory : address가 아닌 '내용'에 의해 접근하는 메모리장치

 

 

효율적 탐색이 가능하도록 만들어진 저장형태

Associative memory 또는 CAM ( content addressable memory )라고 한다.

 

데이터의 '내용'으로 병렬 탐색이 가능 - 전체 word 또는 1 word 내의 일부만으로 실행 가능하다.

 

메모리의 각 셀이 저장능력 + 논리회로를 갖는다.

 

 

 

 

 

위 그림은 associative memory의 하드웨어 구성과 메모리를 나타낸다.

 

Argument register : 식별자, 찾고자하는 정보를 입력받아서 key register에서 제공받은 마스크와 비교한다.

이 때 key register로부터 제공받은 mask bit (위의 예에서 111) 과 AND연산을 사용하여 특정 영역/key를 선택하게 된다.

( 위의 예에서 101, 111을 AND 연산한 값인 101으로 시작되는 값을 선택하게 된다. )

 

빨간 색으로 표시되어 있는 Write process의 경우, 쓸모없는 공간을 1로 세팅하는 tag bit가 추가되고, 나중에 원하는 값으로 채우게 된다.

 

 

 

 

- Cache memory

 

 

 

* 데이터 지역성 ( locality ) 원리를 이용한다.

 

메모리 참조가 국한된 영역에서 이루어지는 경향성

(프로그램 루프, 서브루틴의 빈번한 활용, 프로그램의 순차적 실행 등)

 

 

1. 시간 지역성 (temporal -)

: for, while 같은 반복문에 사용하는 조건 변수와 같이, 한 번 참조된 데이터는 다시 참조될 가능성이 높다.

 

2. 공간 지역성 (spatial -)

: A[0], A[1]..와 같은 배열에 연속적으로 접근할 때 참조된 데이터 근처에 있는 데이터가 다시 참조될 가능성이 높다.

 

3. 순차적 지역성 (sequential -)

: 분기(branch)가 발생하는 비순차적 실행이 아닌 이상, 명령어들이 메모리에 저장된 순서대로 실행되는 특성을 이용한 원리, 순차적일수록 다음 순서의 데이터가 사용될 가능성이 높다.

 

 

 

 

* cache memory 기본 동작 

 

cache 체크

워드가 cache에서 발견되면 (hit) 읽어들이고,

아닐 경우 (miss) 주기억장치에 접근

워드를 포함한 블록 (1~16 워드, 환경에 따라 다름)을 cache로 전송한다.

 

캐시 적중 ( cache hit ) - cpu가 데이터를 요청하여 메모리에 접근했을 때, 캐시 메모리가 해당 데이터를 가지고 있는 경우

캐시 미스 ( cache miss ) - 해당 데이터가 없어서 DRAM에서 가져와야 할 경우

 

 

* 히트율 (hit ratio)

 

 

캐시 메모리의 성능을 결정하는 지표 중 하나

 

 

 

* cache memory - mapping process

 

 

효과적으로 cache를 구성하는 것이 효율적으로 메모리를 관리할 수 있는 최고의 방법이다.

associative mapping 

: associative memory로 캐시를 만듬

direct mapping

: SRAM으로 캐시를 만듬

set-associative mapping

: 히트율이 낮아지는 문제점을 극복, 주어진 공간에 병렬처리

등의 방법이 존재한다.

 

 

 

 

올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE