컴퓨터 공학

컴퓨터 구조 4장

혼새미로 2015. 11. 26. 04:01
반응형

​4장 캐시 기억장치

컴퓨터 기억장치는 계층(hierarchy)을 조직된다.

4.1 컴퓨터 기억장치 시스템의 개요

위치

- 내부(레지스터, 주기억장치, 캐시), 외부(하드디스크)

용량

- 워드, 바이트

전송단위

- 워드, 블록

액세스방법

- 순차적

- 직접

- 랜덤

- 연관

성능

- 접근시간, 사이클시간, 전송율

물리타입

- 세미컨덕터, 자기, 광학

물리적 특성

- 휘발, 비휘발성

- 지울 수 있는, 못지우는

구조

- 메모리 모듈

단어(word) : 32비트(인텔) 혹은 48비트

주소지정단위(addressable units) :  주소의 길이 4비트와 주소지정단위의 수 N의 관계는 2^A=N 이다. 워드를 사용한다.

전송단위 : 주기억장치에서 전송단위는 한번에 읽고 쓸수있는 비트의 수이다. 외부기억장치에서는 데이터가 단어보다 훨씬 더 큰 단위로 전송되기도 하며 이들은 블록이라 부른다.

데이터 액세스 방식

- 순차적 액세스(squential access) : 기억장치는 레코드(record)라 불리는 데이터단위로 구성된다.

- 직접 액세스(direct access) : 각 레코드나 블록이 물리적 위치에 따라 별도의 주소를 갖고있다.

- 임의 액세스(random access) : 기억장치 내의 각 주소지정가능한 위치는 선들로 연결된 별도의 주소 지정 매커니즘을 갖고있다. 주기억장치와 캐시 시스템이 임의 액세스 방식을 이용한다.

- 연관(associative) : 단어 내의 특정비트들과 원하는 비트들을 비교하여 일치하는 단어를 액세스한다. 단어는 주소가 아니라 내용의 일부분에 의해 검색된다. 검색시간은 일정하다. 캐시기억자치가 사용한다.

성능

- 액세스 시간(지연) : 주소가 기억장치에 도착하는 순간부터 데이터가 저장되거나 읽혀지는 순간까지의 시간(임의 액세스), 비임의 액세스 기억장치는 읽기쓰기 매커니즘을 원하는 위치로 이동하는데 걸리는 시간

- 기억장치 사이클시간(memory cycle time) : 주로 임의 액세스 기억장치에 적용되며, 액세스 시간과 다음 액세스를 시작하기 위해 요구되는 동작에 걸리는 추가적인 시간을 합한 시간. 버스와 관련있고 프로세서와 무관하다.

- 전송률(transfer rate) : 데이터가 기억장치로 전송되어 나가거나 들어오는 비율. 임의 액세스 기억장치에서는 1/사이클시간 에 해당. 비임의 액세스 기억장치는 다음과 같다.

-- T_N=T_A + n/R

-- T_N = N개의 비트들을 읽거나 쓰는데 걸리는 평균시간

-- T_A = 평균 액세스 시간

-- n : 비트수

-- R = 전송률, 초당비트(bps)

* 기억장치 계층

세가지 요건

- 용량, 속도, 가격

두레벨의 기억장치(two level of memory)

- 레벨 1 : 1000개의 단어 저장, 액세스시간은 0.01 마이크로초

- 레벨 2 : 100000개의 단어저장, 액세스시간은 0.1 마이크로초

보조기억장치 ; 자기디스크, 프로그래머는 파일이나 레코드 단위로만 액세스 가능, 가상기억장치로 활용 가능

4.2 캐시 기억장치의 원리

기억장치 속도가 가장 빠른 속도에 접근함과 동시에, 저렴한 반도체 기억장치의 가격으로 큰 기억장치 용량을 가질 수 있도록 하기 위함이다.

어떤 정해진 수의 단어들로 구성된 블록이 주기억장치로부터 캐시로부터 읽혀지고, 그 단어가 프로세서로 전달된다.(참조의 지역성)

라인 : 캐시의 기본단위를 언급할 때, 블록보다는 라인이라는 용어를 사용함

주기억장치는 2^n개의 단어로 구성됨, 단어는 별도의 n비트 주소를 가진다.

사상(mapping)하기 위해 주기억장치는 k단어씩으로 나누어진 여러개의 블록들로 이루어진 것으로 간주된다.

주기억장치에는 M=2^n/K 개의 블록들이 있다.

각 라인 K 단어들과 수비트의 태그를 포함한다.

각 라인은 제어비트도 포함한다.

라인크기: 태그와 제어비트들을 제외한 라인의 길이

읽기동작

- 프로세서는 읽을 단어의 주소(RA) 발생

- 그 단어가 캐시에 있으면, 그것이 프로세서로 전송된다. 없으면 단어를 포함한 블록이 캐시로 적재되고, 그 단어 프로세서로 전달된다.

4.3 캐시 설계의 요소

4.3.1 캐시 주소

가상기억장치: 프로그램으로 하여금 물리적으로 이용가능한 주기억장치. 크기에 상관없이 논리적인 관점으로 기억장치의 주소를 지정할 수있게 해주기 위한 설비

가상캐시 혹은 논리적 캐시는 가상 주소를 이용하여 데이터를 저장한다.

가상캐시는 캐시엑세스 속도가 물리적 캐시보다 더 빠르다

4.3.2 캐시크기

용량이 큰 캐시들은 작은 캐시보다 약간 더 느려지는 경향이 있다.

4.3.3 사상 함수

주기억 장치의 블록을 캐시라인으로 사상해주는 알고리즘이 필요하다.

* 직접사상 : 주기억장치의 각 블록을 한개의 캐시라인으로만 사상한다.

-  i = j modulo m

- i : 캐시라인 번호

- j : 주기억장치의 블록 번호

- m : 캐시내 라인들의 수

주소길이 = (s+w)비트

주소지정가능한 유닛수= 2^(s+w) 단어 혹은 바이트

블록 크기 = 라인크기= 2^w 단어 혹은 바이트

주기억 장치내 블록수= 2^(s+w)/2^w = 2^s

캐시내 라인의 수 = m= 2^r

캐시 크기= 2^(r+w) 단어 혹은 바이트

태그의 크기 = (s-r) 비트

- w 비트: 주기억장치 블록내의 단어 또는 바이트를 구분하는 최하위비트

- s 비트 : 남은 비트로써 주기억장치의 2^s개의 블록들 중 하나를 지정

- s-r 비트로 태그해석

- r비트는 라인필드로 해석

- m=2^r

간단하고 구현비용이 적게 든다.

단점은 캐시위치가 고정됨

빅팀 캐시(victim cache) : 원래 빠른 액세스 시간에 영향을 주지 않고도 직접 사상캐시의 충돌 미스를 줄이는 방법

* 연관 사상

주기억장치 블록이 캐시의 어떤 라인으로도 적재될수있도록 허용함으로써 직접 사상방식의 단점을 극복한다.

반응형

'컴퓨터 공학' 카테고리의 다른 글

운영체제 4장  (0) 2015.11.26
자막 만드는 방법(과거자료)  (0) 2015.11.26
운영체제 3장  (0) 2015.11.26
운영체제 2장  (0) 2015.11.26
운영체제 1장  (0) 2015.11.26