Presentation is loading. Please wait.

Presentation is loading. Please wait.

제5장 기억장치.

Similar presentations


Presentation on theme: "제5장 기억장치."— Presentation transcript:

1 제5장 기억장치

2 5장에 나오는 이야기들 메인메모리, 캐시메모리, 가상메모리를 설명 컴퓨터를 켤 때 메인메모리가 장착되어 있지 않다면?
☞ 아무 일도 일어나지 않음 메모리 없이는 프로그램을 실행할 수 없기 때문 메인메모리는 실행 중인 프로그램과 데이터를 저장 1950’s 자기코어 기억장치 ☞ 수십 년 전 사라짐 1970’s 이후 반도체 메모리 세트연관 캐시 방식 2000’s 초에도 4-way나 8-way를 대중적으로 사용 비트율과 시스템버스의 대역폭 메인메모리 성능을 시스템버스의 전송속도로 평가

3 제5장의 구성 5.1 기억장치 5.2 메모리 계층구조 5.3 캐시메모리 5.4 캐시 매핑 방식 5.5 반도체 메모리
5.6 시스템버스의 대역폭

4 5.1 기억장치

5 5.1 기억장치 메모리의 역할 메모리 용량 표시 엔디언

6 메모리는 프로그램의 작업장 농구 선수에게 농구장이 필요하듯 메모리는 프로그램이 활동하는 작업장

7 메모리의 역할 메모리(memory, 기억장치)의 역할 메모리는 프로그램의 작업장 프로그램 명령이나 데이터를 저장
프로그램은 메모리에서 활동 중 메인메모리가 클수록 동시에 많은 프로그램을 실행 메모리는 프로그램의 작업장 메인메모리는 현재 실행중인 프로그램들을 저장 메모리가 없으면 프로그램이 동작할 수 없음 메모리의 각 영역은 서로 침범하지 못하도록 시스템 소프트웨어의 프로그래머가 정함 프로그래밍 언어로 작성된 텍스트 문서, 데이터 등 필요한 값들을 임시로 저장하는 버퍼나 스택 등

8 램 상주 프로그램 램 상주 프로그램(terminate and stay resident, TSR)
실행 후 종료 될 때 제거되는 다른 프로그램들과 달리 메모리에 전체나 일부가 남아 항상 대기 필요할 때 부르면 즉시 나타나 일을 수행 램(RAM) ☞ 메인메모리로 사용되는 램 메모리 지칭 운영체제의 커널과 바이러스 백신이 대표적 윈도우 운영체제는 일반적으로 램 상주 프로그램을 실행시킬 필요가 없음 다른 프로그램을 사용할 때 문제가 발생할 수도 바이러스 예방 백신이 램 상주된 경우 ☞ 다른 프로그램 설치나 하드웨어 장치 사용에 방해

9 주기억장치와 보조기억장치 메모리를 용도에 따라 분류 주기억장치(main memory, 메인메모리)
혹은 시스템 메모리 ☞ 프로그램의 동작에 주로 사용 현재 동작하는 프로그램들과 데이터를 저장 전원이 들어온 상태에서 작업이 실행 중일 때 사용 주로 고속의 램 모듈 같은 반도체 메모리 사용 보조기억장치(auxiliary memory) 혹은 2차 기억장치 ☞ 자료의 저장에 주로 사용 전원이 종료된 후에도 프로그램과 데이터를 안전하게 저장하는 것이 주요 목적 저가격, 대용량이 요구되는 각종 드라이브가 대표적

10 메모리 용량 표시 n비트로 표현할 수 있는 2진수의 개수 ☞ 2n 개 10비트씩 늘어날 때마다
4비트 ☞ 0000~1111 에서 24 =16개 표현 10비트 ☞ 210 =1024개 ☞ 1000에 가장 가까움 9비트 ☞ 29=512개, 11비트 ☞ 211 =2048개 표현 10비트씩 늘어날 때마다 2진수로 표현할 수 있는 수의 범위는 약 1,000배인 1024배씩 늘어남 이 규칙을 이용해 전통적인 디지털 용량은 10, 20, 30, 40, 50비트로 표현할 수 있는 2진수를 킬로(K), 메가(M), 기가(G), 테라(T), 페타(P)로 표시

11 전통적인 메모리 용량 표시 데이터 계산은 전통적으로 8비트를 기본 단위로 메모리 용량도 주로 바이트(byte) 수로 표시
바이트 수가 커지면 10진수와 마찬가지로 읽기 힘들어지므로 여러 가지 단위를 사용

12 새로운 메모리 용량 표시 시장에서 2진수와 10진수 사이의 혼란 IEEE 1541 표준(2002)의 새로운 메모리 용량 표시
윈도우 운영체제는 2진 용량 사용 ☞ 1GB=10243B 디스크 제조사들을 10진 용량 사용 ☞ 1GB=109B 1GB는 약 7%, 1TB는 약 10% 정도 차이 ① 1GB = = 1,073,741,824 ≠ 109 ② 1TB = = 1,099,511,627,776 ≠ 1012 IEEE 1541 표준(2002)의 새로운 메모리 용량 표시 디지털 용량의 10진법과 2진법 단위를 명확히 구분 비트(bit) ☞ 기호 b, 바이트(byte) ☞ 기호 B로 표시 바이트는 인접한 비트의 묶음으로, 8비트(octet, o, 옥텟)를 주로 사용하나 꼭 8비트일 필요는 없음

13 IEEE 1541 표준의 새로운 메모리 용량 기존 습관과 혼동되어 정착에 시간 많이 걸림
어차피 새로 도입할 대용량 표시로 쉽게 적용

14 엔디언의 어원 조나단 스위프트의 걸리버 여행기(1726)에서 유래
당시 민중의 생활을 무시한 채 권력 투쟁을 일삼던 영국 지도층을 풍자한 소설

15 엔디언의 어원 걸리버 여행기의 소인국 이야기에 나오는
2개의 섬나라(Lilliput와 Blefuscu) 사람들을 리틀 앤디언과 빅 엔디언이라 부른다. 삶은 계란의 작은 쪽 (smaller end)과 큰 쪽(larger end) 어느 쪽부터 깨는 것이 옳은지 놓고 쓸모 없는 전쟁 벌임

16 엔디언 엔디언(endian, endianness)
메모리 주소와 같은 논리적으로 1차원적인 공간에 여러 개의 연속된 자료를 배열하는 방법 여러 단위로 구성된 자료를 저장할 때 빅 엔디언(big-endian) ☞ 큰 단위를 먼저 저장 리틀 엔디언(little-endian) ☞ 작은 단위를 먼저 저장 미들 엔디언(middle 혹은 mixed endian) ☞ 둘을 혼합

17 엔디언 메모리는 보통 낮은 주소에서 시작해 높은 주소 쪽으로 저장, 또한 보통 한 주소에 한 바이트가 저장
여러 바이트로 이루어진 변수를 메모리에 저장할 때 빅 엔디언 ☞ 큰 단위의 바이트가 앞 번지에 오고 리틀 엔디언 ☞ 작은 단위의 바이트가 앞 번지로 옴

18 빅 엔디언과 리틀 엔디언 프로그래밍에서 보통 메모리에 저장되는 변수의 첫 바이트를 그 변수의 주소로 삼는다. ☞ m번지

19 빅 엔디언과 리틀 엔디언 빅 엔디언과 리틀 엔디언 방법 어느 한 쪽이 압도적으로 좋거나 나쁘지 않음
인텔 프로세서는 전통적으로 리틀 엔디언 사용 일반적으로 네트워크 주소는 빅 엔디언 사용 빅 엔디언은 저장 순서가 사람이 숫자 쓰는 방법 프로그래머가 디버깅할 때 편리 리틀 엔디언은 하위 바이트 값만 필요할 때 편리 (ex.) 0x1A2B3C4D 중 0x4D만 읽으면 편리 CPU나 소프트웨어에 따라 두 방식을 선택해 사용 바이(bi-) 엔디언 CPU ☞ 펌웨어로 선택 프로그램 내부에서 바이트 순서를 바꾸어 사용

20 5.2 메모리 계층구조

21 5.2 메모리 계층구조 읽기와 쓰기 액세스 타임 메모리 계층구조 가상메모리 메인메모리와 가상메모리

22 읽기와 쓰기 읽기와 쓰기 메모리, 입출력장치, 읽기, 쓰기로 세분화 CPU는 읽기와 쓰기 동작의 주체 읽기와 쓰기 신호
메모리 읽기(memory read), 메모리 쓰기(memory write), 입출력장치 읽기(I/O read), 입출력장치 쓰기(I/O write) CPU는 읽기와 쓰기 동작의 주체 읽기 동작은 메모리나 입출력장치에서 CPU 쪽으로 데이터가 입력, 쓰기 동작은 CPU에서 데이터가 출력 읽기와 쓰기 신호 읽기와 쓰기의 순간 결정 읽기 시간(read time), 쓰기 시간(write time) 주소를 보낸 순간부터 동작이 완료되기까지 걸린 시간

23 액세스 타임 액세스(access) ☞ <어떤 장소로 접근하는 동작> 액세스 타임(access time, 접근시간)
이미 저장된 내용을 읽기 위해 혹은 데이터를 새로 저장하기 위해 <특정위치에 신호가 도달하는 동작> 액세스 타임(access time, 접근시간) CPU가 데이터의 저장 위치에 접근을 완료하거나 응답을 받기 시작하는 데 걸린 시간 액세스 타임은 저장된 위치를 찾는데 걸린 시간, 전송속도는 실제 전송이 이루어지는 데이터 전달 속도 기억장치나 입출력장치의 동작속도를 나타내는 척도 액세스 타임이 빠르면 읽기와 쓰기 시간이 절약 같은 장치라도 읽기, 쓰기 액세스 타임이 다를 수 있음

24 액세스 타임 메모리나 I/O에 새로운 주소가 도달한 시점부터 데이터를 출력하거나, 기록하기 시작하는 데 걸린 시간
액세스 타임의 단위는 시간(sec) ms, μs, ns, ps ☞ 10-3, 10-6, 10-9, 10-12초 보조기억장치들은 ms 단위, 반도체 메모리는 ns 수준 빠른 소자는 비싼 대신 속도 성능이 좋음

25 기억장치의 액세스 타임 ①~④ 반도체 집적도↑용량↑속도↑가격↓소비전력↓
1980’s DRAM은 200ns이상도 많으나 요즘은 20ns이하도 ①~④ 반도체 집적도↑용량↑속도↑가격↓소비전력↓ ②번은 CPU 외부인 경우, 내장 캐시는 [그림 5-7] 참조 기계적인 한계로 빠르게 발전 못함 시장에서 사라짐

26 메모리 계층구조 기억장치 혹은 메모리 계층구조(memory hierarchy) 여러 종류의 기억장치를 계층적인 구조로 사용
가격, 용량, 속도 측면에서 다양한 계층을 구성 적은 비용으로 기억장치 용량을 늘리고 전체 기억장치의 평균 액세스 속도를 높이는 방법 CPU에 가까울수록 상위계층으로 분류 상위계층으로 갈수록 액세스 타임이 빠른 소자들 배치, 빠른 소자들은 대개 가격은 높아지고 용량은 작아짐 CPU에서 먼 하위계층으로 갈수록 속도는 느려지고 가격대비 용량이 큰 장치들이 배치

27 기억장치 계층구조 CPU에 가까운 상위계층에 데이터가 있을 확률이 높을수록 전체 기억장치의 평균 액세스 타임은 빨라짐
☞ 캐시를 사용하는 이유

28 가상메모리 가상메모리(virtual memory, 가상기억장치)
프로그램이 실행되려면 동작에 필요한 최소한의 메모리가 작업공간으로 남아 있어야 가상메모리(virtual memory, 가상기억장치) 주로 하드디스크의 일부를 확장된 램으로 가정해 부족한 메인메모리의 일부로 사용하는 것 논리적 공간이라 물리적으로 연속적일 필요는 없음 부족한 메인메모리 크기를 외형적으로 늘리는 방법 실제보다 많은 양의 메모리를 갖는 것처럼 동작 운영체제가 자동으로 관리 가상의 주소를 사용해 확장된 램처럼 관리 사용자가 임의로 최대 크기를 설정할 수도

29 하드디스크 스와핑 하드디스크 스와핑(swapping) 혹은 스왑(swap)
메인메모리의 내용과 보조기억장치인 하드디스크의 내용을 상호 교환하는 것 스왑 파일은 가상메모리를 사용할 때 실제 메모리인 램에 대한 확장으로 하드디스크에 만들어지는 파일 <윈도우나 유닉스>기반 운영체제들이 사용하는 용어 (cf.) <일반적인 운영체제> ☞ 페이지, 페이징 파일 단위로 연속된 공간을 구성할 수 있어 적은 횟수의 읽기, 쓰기로 가상메모리를 관리 메모리가 부족하면 오래 전 사용된 내용은 필요할 때까지 임시로 하드디스크에 스왑 파일로 보내짐 사용자가 스왑 파일의 크기를 조절 할 수도

30 임시 파일들 임시 파일들(temporary files)
스왑 파일처럼, 운영체제와 응용프로그램들은 하드디스크에 주기적으로 자기가 관리하는 데이터나 프로그램을 임시 파일로 저장 일부는 자동 삭제되지 않고 공간만 차지 설치 프로그램이 사용하는 임시 디렉터리 응용프로그램이 관리하는 디렉터리 안 일부 응용프로그램은 루트 디렉터리에 만듦

31 페이지와 페이징 페이지(page), 가상 페이지
가상메모리 공간을 일정한 크기로 나누어, 메인메모리와 하드디스크 사이에 한 번에 이동하는 단위 OS는 다량의 페이지로 구성된 가상메모리를 관리 페이지 프레임(page frame) 가상의 기억공간을 다룰 수 있도록 할당된 메인메모리 영역, 하드디스크의 페이지들 중 하나를 복사해 할당 여러 개의 페이지 프레임들이 존재 페이징(paging), 페이지 교체(replacement) 메인메모리와 하드디스크 사이의 페이지 교환 동작 OS가 참고하려는 페이지가 메인메모리에 없으면 하드디스크에 저장해둔 페이지를 참조해 가져옴

32 페이지 교체 빈 페이지 프레임에 새로운 페이지를 할당
빈 공간이 없으면 기존에 저장된 페이지 하나를 꺼내 HDD에 저장하고 필요한 페이지를 바꾸어 넣음

33 가상주소와 물리주소 가상주소와 물리주소 물리메모리(physical memory) 가상주소(virtual address)
가상메모리에 대응하는 용어로 실제 메모리 가상주소와 물리주소 가상주소(virtual address) 가상메모리를 관리하는 주소 물리주소로 변환해서 사용해야 함 물리주소(physical address) 실제 메모리 주소 오프셋(offset) 값을 이용해 가상주소의 비트 수 줄임 페이지 프레임으로 사용하는 시작주소에서 지정하려는 주소까지 차이인 변위(displacement) 값 알면 계산

34 가상주소와 물리주소

35 가상주소와 물리주소 페이지 테이블(page table)
현재 관리되는 가상메모리의 모든 페이지와 메인메모리의 페이지 프레임과의 매핑 관계를 저장 페이지 테이블 등록정보(page table entry, PTE) 각 항의 내용은 <가상메모리의 페이지 번호가 메인메모리의 페이지 프레임 번호에 1:1로 매핑>된 정보 다른 가상메모리 페이지처럼 HDD에 함께 저장 디렉터리 구조로 여러 단계로 확대해 저장 가상주소에서 물리주소로의 변환 가상주소 형식 ☞ 페이지 번호 + 오프셋 값 페이지 테이블 ☞ 페이지 번호 + 프레임 번호 물리주소 형식 ☞ 프레임 번호 + 오프셋 값

36 메인메모리와 가상메모리 메인메모리 크기를 충분히 늘리면 사용자에 따라 필요한 메모리 크기가 다름
다중작업과 다루는 데이터가 얼마나 큰가에 따름 OS나 응용프로그램이 사용하는 메모리가 점차 증가 메인메모리 크기를 충분히 늘리면 HDD 액세스 횟수나 가상메모리의 크기가 줄어 시스템 성능은 크게 향상 가상메모리 사용은 권장할만하지 못함 가상메모리를 많이 사용하면 메인메모리보다 속도가 느린 HDD의 액세스 횟수가 늘어 성능이 저하 성능이 높은 CPU일수록 메모리 늘리면 효과 큼 여전히 느린 HDD 액세스 속도로 발목이 잡히기 때문

37 메인메모리 크기를 늘려야 메모리 크기에 제약 있음 <운영체제나 CPU 별로> 관리할 수 있는 크기 제약
32비트 운영체제는 대개 232B=4GiB 이하만 관리 64비트 CPU라고 64비트 주소를 사용하는 것 아님 CPU 칩을 설계하기 나름 물리주소는 CPU 외부로 주소선이 나오게 설계되어야 (ex.) 64비트 CPU에서 48비트 가상주소와 36비트 물리주소를 사용하고 메인메모리 크기를 최대 64GiB로 제한하면 ☞ 236B=64GiB에서 주소버스 선 36개가 나와야

38 스래싱 스래싱(thrashing, 과다상태) 전체 시스템 성능이 저하되어 작업의 진전이 아주 느리거나 아예 없는 상태
스래싱 ☞ 몽둥이 <매질>, 경기에서 <참패>라는 뜻 가상메모리 페이징 동작이 과도하게 일어나는 상태 페이지 교체가 너무 빈번하면 속도가 느린 디스크의 액세스 횟수가 늘어 처리속도가 급격히 떨어짐 메모리나 기타 시스템 자원이 고갈되어 필요한 연산을 수행하기에 너무 부족한 상태 운영체제는 응용프로그램들로부터 자원을 회수하는 방법 등을 통해 이런 문제를 해결하려고 노력

39 5.3 캐시메모리

40 5.3 캐시메모리 캐시와 메모리 계층 전면버스와 후면버스 캐시 적중과 실패 평균 액세스 타임 지역성과 일관성 쓰기 정책
5.3 캐시메모리 캐시와 메모리 계층 전면버스와 후면버스 캐시 적중과 실패 평균 액세스 타임 지역성과 일관성 쓰기 정책 교체 정책

41 캐시메모리 캐시메모리(cache memory)
주로 메인메모리의 액세스 타임을 줄이기 위해, CPU와 메인메모리 사이에 사용하는 빠른 속도의 메모리 캐시(cache) ☞ <은닉처>라는 뜻 CPU 캐시 혹은 줄여 보통 캐시라고 함 프로그램이 현재 사용 중인 내용의 근방을 저장 자주 액세스하는 데이터나 프로그램 명령을 반복해 검색하지 않고 즉시 사용할 수 있도록 준비 주로 액세스 타임이 빠른 SRAM 사용 CPU에 아주 가까운 곳에 위치하거나 아예 내장 1990’s 초부터는 주로 CPU 칩에 내장

42 L1, L2, L3 캐시 캐시와 메모리 계층 캐시로 메모리 계층 간 속도 차이를 완충시켜 전체 기억장치의 평균 액세스 타임을 줄임 CPU에 가까운 순서대로 n차 캐시 혹은 레벨 n(level n, Ln) 캐시라고 함 몇 차까지 사용하냐는 설계하기 나름 L3, L2, L1으로 올라갈수록 속도는 증가, 크기는 축소 (ex.) 인텔의 3세대 Core i7 프로세서(2012) L1, L2, L3로 내려 갈수록 4, 10, 35~40클럭이 소요 내장 캐시의 액세스 타임은 CPU 클럭 개수로 표시 용량은 32KiB, 256KiB, 8MiB로 커짐

43 캐시와 메모리 계층 [그림 5-7] ☞ 메모리 계층구조의 일반 형태
CPU 고유 부분인 CPU 코어와 함께 L1, L2, L3 등의 캐시가 계층구조를 이루며 내장 L3 캐시 ☞ 메인메모리 일부 내용을 저장 L2 캐시 ☞ L3 일부를 저장 L1 캐시 ☞ L2 일부를 저장 CPU는 상위계층부터 자료를 찾아 없으면 차례대로 하위계층으로 내려가면서 찾음 L1  L2  L3  메인메모리  하드디스크 하위계층에 대한 액세스 횟수가 늘어날수록 평균 속도가 느려져 전체 기억장치의 성능은 저하

44 캐시와 메모리 계층 전통적인 개념의 CPU와 메인메모리 간 캐시 L1, L2는 각 코어가 독점, L3는 칩 내부 공유 캐시
이중독립버스구조 일종의 디스크 캐시 역할

45 캐시의 성능 개선 같은 CPU 코어에서 캐시가 클수록 성능에 유리 캐시의 위치에 따라 액세스 속도 성능 차이
CPU 코어 내부 > CPU 언코어 > CPU 칩 외부 순서 같은 CPU 코어로 프로세서 성능을 개선하는 방법 CPU 코어 클럭 증가 내장 캐시의 성능 개선 ☞ 용량과 연결 속도 개선 멀티코어 구조 내장 캐시의 연결 속도 개선 ☞ 비트 수와 클럭 올림 (ex.) 외부 시스템버스 64비트, 내부 캐시 간 256비트 (ex.) 칩 내부는 외부 시스템버스 클럭의 몇 배수 동작 시스템버스와 CPU 클럭의 관계 ☞ 7장 참조

46 코어와 언코어 온 다이(on-die), 온 칩(on-chip) 캐시 멀티코어 프로세서에서 코어(core)의 개념
온 다이 ☞ 캐시가 CPU 코어와 같은 반도체 회로기판 위에 있다는 뜻, 온 칩 ☞ 같은 칩 안에 있다는 뜻 멀티코어 프로세서에서 코어(core)의 개념 독립적으로 명령을 실행하는데 필요한 부분 ALU, 레지스터, 부동소수점 처리장치(FPU), 독립적인 명령어 실행 장치, 단독으로 사용하는 L1, L2 캐시 등 언코어(uncore) ☞ 내장된 장치 중 코어가 아닌 부분 각 코어가 공통으로 공유해 사용할 수 있는 부분 명령어 인출과 해독장치, L3 공유 캐시와 칩 내부에 내장된 메모리 컨트롤러, 버스 컨트롤러, 그래픽처리장치(GPU) 등은 코어 개념에서 제외

47 [그림 5-7] ☞ (a) 멀티코어 프로세서의 캐시
L1 캐시 ☞ 명령 캐시와 데이터 캐시 분리 슈퍼스칼라 방식으로 병렬처리를 설계하기 유리 L1 데이터 캐시 동시에 읽고 쓰기가 가능하도록 데이터 출입구를 두 개로 분리한 듀얼포트(dual-ported) SRAM 사용 CPU 코어가 내부 레지스터를 듀얼포트 혹은 멀티포트(multi-ported) SRAM으로 구현하는데서 유래 L2, L3 캐시 ☞ 명령과 데이터가 공유 L2 캐시는 프로세서 칩 내부의 다른 공유 장치들과의 버스 인터페이스 속도를 높이기 위해 사용 L3 캐시는 멀티코어 간의 다중작업이나 하나의 작업을 나눠서 처리할 때 일관성 유지

48 디스크 캐시 디스크 캐시(disk cache)
HDD, ODD 등 디스크의 액세스 타임을 줄이기 위해 CPU와 디스크 장치 사이에 사용하는 캐시메모리 운영체제에 의해 주로 메인메모리의 일부를 할당 메인메모리의 상당 부분을 할당 (많게는 1/3정도) 디스크 캐시 늘리면 메인메모리가 줄어 가상메모리를 늘려야 하므로 적절한 비율을 OS가 자동으로 관리 (cf.) 하드디스크에 내장된 디스크 버퍼(disk buffer) HDD를 읽고 쓸 때 임시로 저장해두는 버퍼 메모리 (cf.) 페이지 캐시(page cache) 페이지 프레임 영역으로 디스크 캐시에 포함

49 전면버스와 후면버스 메모리의 이중독립버스(dual independent bus)
캐시가 CPU에 내장되면서 메모리버스의 한계를 극복 메모리의 이중독립버스(dual independent bus) 메모리버스가 두 개의 독립적인 버스를 갖는 구조 CPU와 메인메모리 사이의 <외부 시스템버스> CPU 코어와 캐시 사이의 <내부 캐시버스> 전면버스(front-side bus, FSB, 프론트 사이드 버스) 주로 CPU와 외부 메인메모리를 연결하는 시스템버스 램 모듈 속도나 시스템버스의 클럭 등을 언급할 때 후면버스(back-side bus, BSB, 백 사이드 버스) 주로 CPU 내부에 내장된 캐시와 CPU 코어 사이를 연결해주는 캐시버스 FSB보다 비트 수를 넓히고 클럭도 고속으로 설계

50 캐시 적중과 실패 CPU가 액세스한 내용은 일단 캐시에 복사 CPU가 요구할 때 신속히 재사용 캐시의 용량에 한계
응용프로그램 사용시 불러들인 파일, 글꼴, 그림들 캐시의 용량에 한계 한동안 사용되지 않았던 내용은 캐시에서 빠져 나감 캐시 적중(hit) CPU가 원하는 내용을 캐시에서 발견한 상태 ☞ 캐시에서 CPU로 정보를 읽어옴 캐시 실패(miss) 원하는 내용이 캐시에 없는 상태 ☞ 메인메모리나 그 아래 계층에서 읽어옴

51 캐시 적중과 실패 캐시 적중률(hit rate) 캐시 실패율(miss rate), 캐시 부(不)적중률
CPU가 원하는 프로그램이나 데이터가 캐시에 있을 확률 보통 0~1사이 값이나 100%를 곱해 백분율로 표시 캐시가 커지면 적중률이 높아짐 적중률이 높을수록 전체 기억장치의 평균 액세스 타임이 빨라져 캐시의 액세스 타임에 가까워짐 캐시 실패율(miss rate), 캐시 부(不)적중률 CPU가 원하는 프로그램이나 데이터가 캐시에 없을 확률, 캐시 적중률의 반대

52 평균 액세스 타임 캐시가 적용된 메모리 계층구조 사례 A 캐시와 메인메모리의 액세스 타임 ☞ TC, TM 캐시의 적중률 ☞ H
캐시 실패면 CPU가 메인메모리에서 자료를 가져와야 전체 기억장치의 평균 액세스 타임 ☞ TA 액세스가 읽어나는 장소 비율과 속도에 따라 계산

53 평균 액세스 타임 캐시가 적용된 메모리 계층구조 사례 B L1, L2 캐시, 메인메모리 액세스 타임 ☞ T1, T2, TM
L1, L2 캐시의 적중률 ☞ H1, H2 캐시 실패면 각각 아래 계층에서 자료를 가져와야 전체 기억장치의 평균 액세스 타임 ☞ TA 적중률 70%,90%,100% ☞ 액세스 비중 70%,20%,10%

54 지역성과 일관성 캐시는 전체 기억장치의 평균 액세스 타임을 줄이는 목적 ☞ 상위계층에 데이터가 존재할 확률을 높여야 캐시 설계에 고려할 사항 액세스 타임이 빠른 소자 ☞ 캐시와 메인메모리 데이터의 지역성 블록(block) 단위로 현재 필요한 정보와 앞으로 예측되는 정보를 함께 인출 캐시와 메인메모리의 데이터 일관성 캐시의 내용을 변경할 때 메인메모리의 내용을 함께 바꾸어 주어야 ☞ 이때 걸리는 시간을 최소화 CPU 발열문제 : 적중률↑☞ 소비전력↑발열량↑

55 지역성의 원리 컴퓨터시스템에서 지역성(locality) 물리학에서 지역성의 원리(principle of locality)
어떤 사물은 자신을 바로 옆에서 둘러싸고 있는 것들에 의해서만 직접적으로 영향을 받는다는 원리 컴퓨터 과학 ☞ 참조의 지역성(locality of reference) 빈번하게 액세스되는 같은 값이나 저장 위치를 설명 컴퓨터시스템에서 지역성(locality) CPU가 기억장치의 특정 부분에 위치한 프로그램이나 데이터를 빈번히, 집중적으로 액세스하는 현상 데이터의 분산 정도로 캐시 적중률에 가장 큰 영향 지역성이 좋을수록 현재 사용 중인 프로그램들은 CPU에 가까운 메모리 상위계층에 집중 지역성이 나쁘면 데이터가 여러 계층에 분산

56 데이터의 지역성 idea ☞ 짧은 시간을 기준으로 보면 CPU가 자주 액세스하는 메모리 위치는 주로 한정된 지역에 집중
시간적 지역성(temporal locality) CPU에서 한번 참조한 프로그램이나 데이터는 조만간 다시 참조될 가능성이 높음 짧은 시간 내 특정 데이터나 자원을 재사용하는 현상 공간적 지역성(spatial locality) 한번 참조된 데이터 주변에 인접한 데이터는 같이 참조될 가능성이 높음 ☞ 인접 저장된 배열 데이터 대부분의 프로그램 명령어는 분기가 발생하기 전까지 기억장치에 저장된 순서대로 실행 ☞ 이를 순차적(sequential) 지역성이라 부름

57 데이터의 일관성 메인메모리와 캐시 간 데이터 일관성
메인메모리와 복사본인 캐시는 데이터의 일관성이 유지 관리되고, 이때 걸리는 시간도 최소화해야 CPU는 본래 메인메모리를 액세스하려고 한 것 캐시는 액세스 속도를 빠르게 해줄 목적 정상적인 캐시는 메인메모리 자료의 일부 복사본 본래는 메인메모리도 같은 내용을 가지고 있어야 캐시가 갱신될 때 메인메모리도 함께 갱신되어야 둘 사이의 매핑 구조가 정상적으로 유지 <캐시만 갱신되고 메인메모리가 갱신되지 않으면> ☞ 서로 다른 내용을 가져 잘못된 결과를 초래할 수도

58 캐시 쓰기 정책 캐시 쓰기 정책(write policy) 연속기록(write-through) 캐시
캐시의 블록이 변경되었을 때 메인메모리의 블록을 갱신(update)하는 방법과 시기를 정하는 것 연속기록(write-through) 캐시 CPU가 캐시와 메인메모리 두 군데 데이터를 <정상적으로 함께 갱신>하는 방식 속도가 빠른 캐시가 먼저 업데이트된 후 느린 메인메모리에 기록이 완료 구조는 간단하지만 캐시가 갱신될 때, 느린 메인메모리를 매번 함께 액세스하므로 성능 저하 가상메모리에 적용하면 시간이 더욱 오래 걸림

59 연속기록 캐시와 후기록 캐시 연속기록(write-through) 캐시 방식과 후기록(write-back) 캐시 방식

60 캐시 쓰기 정책 후기록(write-back) 캐시
CPU가 캐시의 데이터만 우선 변경하고 <메인메모리는 나중에 갱신>하는 방식 캐시의 자료가 교체될 때 메인메모리에 없는 내용이면 메인메모리로 복사한 후 캐시에서 비움 메인메모리로의 백업은 CPU 기계 사이클이 대기 상태로 여유가 있을 때 블록단위로 수시로 미리 백업 하드웨어가 복잡하고 데이터가 갱신되기 전까지 메인메모리의 일부 내용이 일시적으로 무효 요즘 프로세서들은 대개 후기록 캐시 방법을 사용 느린 메인메모리의 쓰기 동작을 최대한 줄여 시간절약

61 캐시 읽기와 쓰기 캐시 읽기 동작에 걸리는 시간은 동일 캐시 쓰기 동작은 쓰기 정책에 따름
캐시 적중이면 캐시를, 실패면 메인메모리를 읽음 읽기 동작에 걸리는 평균 액세스 타임은 데이터가 캐시와 메인메모리에 존재할 확률에 따름 캐시 쓰기 동작은 쓰기 정책에 따름 쓰기 동작은 캐시의 내용이 변경되는 경우에 발생 연속기록의 쓰기 동작 ☞ <항상>함께 기록하므로 느린 메인메모리의 액세스 타임만큼 걸림 후기록의 쓰기 동작 ☞ 읽기 동작과 같아짐 캐시를 다 채운 후 <캐시 적중에 실패하면>자료가 교체되어 메인메모리로 옮겨져 기록 ☞ 즉, 캐시 적중이면 캐시를 액세스하고 실패면 메인메모리를 액세스

62 교체 정책 캐시 알고리즘(cache algorithm) 혹은 교체 정책(replacement policy)
캐시의 내용 중 교체되어 나갈 자료를 결정하는 것 <캐시 적중에 실패했을 때 캐시에 공간이 부족하면>저장된 자료를 바꾸어 주어야 함 가장 이상적인 목표는 미래에 가장 오랫동안 필요로 하지 않는 자료를 교체하는 것 이것을 예측하는 것은 일반적으로 불가능 캐시의 매핑 방식도 넓은 의미로 교체 정책에 포함

63 캐시 알고리즘 (교체 정책) 다양한 캐시 적중 검사와 교체 알고리즘 사용
각 자료의 사용 횟수나 최근 사용된 자료를 표시하기 위해 캐시에 별도의 플래그 비트들을 갖추도록 설계

64 캐시 알고리즘 실제 LRU 등의 알고리즘을 적용하려면 각 캐시 라인에 플래그 비트들을 추가해야 함
캐시에 들어온 순서와 사용 횟수를 기록 캐시 라인을 교체할 일이 발생할 때 사용횟수가 같은 캐시라인들이 나오면 그 중에서 가장 오래된 캐시라인을 먼저 교체

65 캐시 알고리즘 MRU 알고리즘 LRU 알고리즘 연속된 자료가 사용되는 상황에서 가장 유용한 방법
최근에 사용 횟수가 가장 적었던 자료 중 하나 교체 시간적 지역성 때문에 대부분의 경우에 가장 효과적인 방법으로 알려짐 ☞ 한번 참조된 내용은 가까운 장래에 다시 참조될 가능성 높음 LRU를 변형한 방법 등이 연구됨 비교대상이 늘어나면 캐시 내부에 LRU 정보를 저장하는 비트 수가 늘어나 판정시간이 증가하는 단점 요즘 프로세서 칩 내장 캐시들은 대부분 이 비트 수를 줄여 비교 속도를 높이는 의사(pseudo-) LRU 사용

66 연습문제 50번 풀이 방법 가장 먼저 들어온 자료를 먼저 교체 교체 데이터 블록이 들어가는 순서 최근에 사용
첫 세 블록 5, 0, 2 까지는 동일 교체 최근에 가장 적게 사용된 자료를 먼저 교체

67 5.4 캐시 매핑 방식

68 5.4 캐시 매핑 방식 캐시 등록정보 캐시의 매핑 완전연관 캐시 직접매핑 캐시 세트연관 캐시 캐시 매핑 방식 비교
5.4 캐시 매핑 방식 캐시 등록정보 캐시의 매핑 완전연관 캐시 직접매핑 캐시 세트연관 캐시 캐시 매핑 방식 비교 MMU와 TLB 가상주소 캐시

69 데이터 블록과 캐시 라인 메인메모리 용량 > 캐시 용량(capacity)
메인메모리는 데이터 블록(data block)으로 나누어짐 다수의 데이터 블록들이 캐시를 공유해 사용 메인메모리와 캐시 사이의 전송은 데이터 블록 단위 데이터 블록 하나는 여러 개의 워드(word)로 구성 워드 크기는 <메모리 주소 하나에 할당되는 비트 수>로 주로 1바이트 사용 캐시메모리의 캐시 라인(cache line) 캐시메모리를 구성하는 열(row) 메인메모리의 데이터 블록 중 하나를 저장 캐시의 데이터 교체는 캐시라인 단위

70 메인메모리와 캐시의 매핑 구조 캐시 용량은 태그와 플래그 비트를 제외한 데이터 용량으로 표시

71 메인메모리와 캐시의 매핑 구조 데이터 블록의 크기도 캐시의 성능에 영향 n비트 주소를 사용할 때 다음 관계의 매핑 구조
너무 작으면 캐시 라인의 수가 증가, 데이터 교체 빈번 너무 크면 캐시 라인의 수가 줄어, 데이터 교체 빈번 캐시의 데이터 교체가 증가하면 메인메모리의 액세스가 증가해 전체 성능에 불리 지역성 때문에 일반적으로 데이터 블록의 크기가 큰 것이 성능에 좀 더 유리 n비트 주소를 사용할 때 다음 관계의 매핑 구조 (메인메모리 용량)=(주소 수)×(워드 크기)=2n [워드] (메인메모리 용량)=(블록 수)×(블록 크기) (블록당 워드 수)=(블록 크기)÷(워드 크기) (캐시 라인 수)=(캐시 용량)÷(블록 크기)

72 캐시 등록정보 캐시 메모리 구조 인덱스(index) 캐시 라인 등록정보 CPU가 요청한 메인메모리 주소로 캐시를 확인
캐시에서 몇 번째 캐시 라인인지 구분하는 색인 번호 캐시 라인 등록정보 메인메모리에 있는 하나의 데이터 블록이 하나의 캐시 라인으로 복사되면 해당 캐시라인에 <등록정보> 생성 복사를 요청한 메인메모리 위치정보인 태그(tag) 포함 현재 저장된 데이터 블록이 유효한지 표시하는 플래그(flag) 비트들 포함 CPU가 요청한 메인메모리 주소로 캐시를 확인 보유한 등록정보 중 이 주소를 갖는 캐시 라인이 있는지 검사 ☞ 발견되면 캐시 적중, 없으면 캐시 실패

73 캐시의 매핑 캐시의 매핑 방식 메인메모리에 있는 다수의 데이터 블록들이 소수의 캐시 라인을 공유하는 방법
메인메모리와 캐시의 자료를 대응시키는 방법 CPU가 발생시킨 <메인메모리 주소와 캐시 라인 자료를 1:1로 매핑> 완전연관(fully associative) 캐시 ☞ 메인메모리의 데이터 블록이 <아무 캐시 라인>에나 들어감 직접매핑(direct-mapped) 캐시 ☞ 데이터 블록이 <지정된 캐시 라인>에만 들어감 세트연관(set-associative) 캐시 ☞ 데이터 블록이 복수의 캐시 라인을 묶은 <지정된 세트>에만 들어감

74 캐시의 매핑 직접매핑과 세트연관 캐시

75 매핑 방식 비유 캐시의 매핑 방식을 국제공항 입구심사 방법에 비유 B의 세트연관 방법은 A와 C의 장점을 결합한 것
창구도 효율적으로 운영하면서 상대적으로 빠른 심사 심사는 가장 빠르지만 다른 창구가 비어 있어도 창구를 옮길 수 없다. 창구를 마음대로 고를 수 있지만 심사는 오래 걸린다.

76 완전연관 캐시 완전연관 캐시는 메인메모리의 데이터 블록이 <모든 캐시 라인>에 들어감
☞ CPU가 발생시킨 메인메모리 주소가 모든 캐시 라인에 포함된 블록 내의 워드로 매핑 <가상>의 메인메모리 주소 형식의 필드 정의 태그 필드 : 캐시 라인에 들어갈 메인메모리 블록 선택 블록 오프셋 필드 : 블록에 포함된 워드를 선택

77 완전연관 캐시 캐시 적중여부 검사 모든 캐시 라인의 ① 태그를 조사해 메인메모리 주소의 태그 필드와 일치하는 것이 있는지 검사
일치하는 것이 있으면 적중이고 없으면 실패 적중하면 ② 블록 오프셋 필드 값을 이용해 해당 캐시 라인의 워드 중 하나를 골라 읽거나 씀 실패하면 메인메모리에서 원하는 주소의 데이터를 읽거나 쓰고 새로 사용된 메인메모리의 해당 블록을 <비어있거나 교체될 캐시 라인>에 넣어주고 태그 비트를 고침

78 완전연관 캐시 ☞ [그림 5-14]의 예 (캐시 용량) 64워드, (블록 크기) 22=4워드로 가정 8비트 메모리 주소
☞ 블록 오프셋 필드 2비트 필요 8비트 메모리 주소 ☞ 태그 필드는 8-2=6비트 6비트로 지원 가능한 (블록 수) ☞ 최대 26=64개 (메인메모리 용량)=(블록 수)×(블록 크기) ☞ 최대 64×4=256워드

79 직접매핑 캐시 직접매핑 캐시는 메인메모리의 데이터 블록이 <지정된 캐시 라인>에만 들어감
직접매핑 캐시는 메인메모리의 데이터 블록이 <지정된 캐시 라인>에만 들어감 ☞ CPU가 발생시킨 메인메모리 주소가 지정된 캐시 라인에 포함된 블록 내의 워드로 매핑 인덱스 필드 : 캐시 라인을 선택 태그 필드 : 캐시 라인에 들어갈 메인메모리 블록 선택 블록 오프셋 필드 : 블록에 포함된 워드를 선택

80 직접매핑 캐시 캐시 적중여부 검사 ① 인덱스 필드로 캐시 라인을 먼저 선택
선택된 캐시 라인의 태그를 조사해 메인메모리 주소의 ② 태그 필드와 일치하는지 검사 일치하면 적중이고 아니면 실패 적중하면 ③ 블록 오프셋 필드 값을 이용해 해당 캐시 라인의 워드 중 하나를 골라 읽거나 씀 실패하면 메인메모리에서 원하는 주소의 데이터를 읽거나 쓰고 새로 사용된 메인메모리의 해당 블록을 <지정된 캐시 라인>에 넣어주고 태그 비트를 고침

81 직접매핑 캐시 ☞ [그림 5-15]의 예 (캐시 용량) 64워드, (블록 크기) 24=4워드로 가정
☞ 블록 오프셋 필드 2비트 필요 (캐시 라인 수)=(캐시 용량)÷(블록 크기) 64÷4=16=24개 ☞ 인덱스 필드에 4비트 필요 8비트 메모리 주소 ☞ 태그 필드는 8-4-2=2비트 2비트로 지원 가능한 (캐시 라인당 블록 수) ☞ 22=4 캐시가 지원하는 총 (블록 수)는 최대 (캐시 라인당 블록 수)×(캐시 라인 수)=4×16=64 (메인메모리 용량)=(블록 수)×(블록 크기) ☞ 최대 64×4=256워드

82 세트연관 캐시 세트연관 캐시는 메인메모리의 데이터 블록이 복수의 캐시 라인을 묶은 <지정된 세트>에만 들어감
☞ CPU가 발생시킨 메인메모리 주소가 지정된 세트에 포함된 블록 내의 워드로 매핑 세트 필드 : 세트를 선택 태그 필드 : 캐시 라인에 들어갈 메인메모리 블록 선택 블록 오프셋 필드 : 블록에 포함된 워드를 선택

83 세트연관 캐시 캐시 적중여부 검사 ① 세트 필드로 세트를 먼저 선택
세트 내 모든 캐시 라인의 태그를 조사, 메인메모리 주소의 ② 태그 필드와 일치하는 것이 있는지 검사 일치하는 것 있으면 적중이고 없으면 실패 적중하면 ③ 블록 오프셋 필드 값을 이용해 해당 캐시 라인의 워드 중 하나를 골라 읽거나 씀 실패하면 메인메모리에서 원하는 주소의 데이터를 읽거나 쓰고 새로 사용된 메인메모리 블록을 <지정된 세트에서 비어있거나 교체될 캐시 라인>에 넣고 태그 비트 고침

84 세트연관 캐시 ☞ [그림 5-16]의 예 (캐시 용량) 64워드, (블록 크기) 24=4워드로 가정
☞ 블록 오프셋 필드 2비트 필요 (캐시 라인 수)=(캐시 용량)÷(블록 크기) 64÷4=16개 ☞ 각 세트에 캐시 라인 2개씩 할당하면 (세트 수)는 16÷2=8=23에서 세트 필드에 3비트 필요 8비트 메모리 주소 ☞ 태그 필드는 8-3-2=3비트 3비트로 지원 가능한 (세트당 블록 수) ☞ 23=8 캐시가 지원하는 총 (블록 수)는 최대 (세트당 블록 수)×(세트 수)=8×8=64개 (메인메모리 용량)=(블록 수)×(블록 크기) ☞ 최대 64×4=256워드

85 세트연관 캐시와 연관도 세트연관 캐시 방식의 종류 연관도(associativity) 2-방향(2-way) 세트연관 캐시
각 세트가 2개의 캐시 라인을 갖는 경우 n-방향(n-way) 세트연관 캐시 각 세트가 n개의 캐시 라인을 갖는 경우 연관도(associativity) 세트를 구성하는 way 수 n (세트 수)=(캐시 라인 수)÷(way 수)의 관계 캐시 전체가 하나의 세트가 되면 ☞ n이 최대가 되는 완전연관 캐시 연관도가 커지면 하드웨어가 복잡해짐

86 캐시 매핑 방식 비교 교체 정책과 매핑의 연관도는 균형을 선택해야
연관도가 클수록 세트 내에 조사해야 할 캐시 라인 수가 늘어나 하드웨어가 복잡하고 시간이 많이 걸림 연관도 큰 ⑤로 갈수록 복잡하나 적중률은 좋은 성능

87 캐시 매핑 방식 비교 완전연관 캐시 ☞ 캐시 라인 선택이 자유롭다 직접매핑 캐시 ☞ 오직 한군데 캐시 라인으로 감
장점 : 반복적인 서브루틴이나 배열 등 연속적인 블록이 적재될 때 지역성이 좋아져 적중률이 매우 높아짐 단점 : 등록정보가 많아지면 태그를 비교하는 하드웨어를 설계하는 노력이 많이 들고 복잡해짐 직접매핑 캐시 ☞ 오직 한군데 캐시 라인으로 감 장점 : 선택의 여지가 없어 교체정책 필요 없음 캐시 적중검사도 간단하고 가장 빠른 실행이 가능하고, 구조가 간단해 회로 비용이 적게 듦 단점 : 한 캐시 라인을 공유하는 블록 중에서 반복적으로 교체할 일이 생기면 적중률 크게 떨어짐 크기가 무척 커야 상당한 성능을 얻을 수 있고, 다른 방식보다 예측이 더 불가능

88 캐시 매핑 방식 비교 세트연관 캐시 ☞ 두 방식의 장단점을 결합 연관도가 클수록 캐시 실패율이 줄어 성능 좋아짐
장점 : 완전연관 캐시와 직접매핑 캐시의 장점 결합 단점 : way 수가 늘어날수록 하드웨어가 점점 복잡 연관도가 클수록 캐시 실패율이 줄어 성능 좋아짐 직접매핑 ☞ 2-way, 2-way ☞ 4-way로 바꾸면 각각 캐시 적중률에서 용량을 2배로 늘린 것과 같은 효과 n-way(n>4) 이상은 그런 효과가 훨씬 작은 대신, n이 클수록 가상주소 캐시의 일관성 문제에 유리 펜티엄 4 프로세서(2002) ☞ 4-way, 8-way 인텔의 Core i7 프로세서(2012) ☞ 8-way, 16-way L1 캐시나 가상주소에서 물리주소 변환하는 TLB 경우 등록정보 수 많지 않아 일부 완전연관 캐시로 꾸미기도

89 MMU와 TLB 가상메모리를 메인메모리에 매핑하는 방법
프로그램에 의해 발생하는 가상주소를 메인메모리에 있는 물리주소로 변환하는 과정이 필요 ☞ 프로세서 칩에 내장된 MMU 장치가 TLB에 저장된 내용으로 이를 수행 MMU(memory management unit) <메모리 관리 장치>의 영문약자, 물리주소 변환과 메모리 보호가 주요 역할 가상주소를 물리주소로 변환하는 속도를 개선하기 위해 TLB를 포함 메모리 접근권한을 제어해 메모리를 보호하고 캐시 관리, 버스 중재 등의 역할도 수행

90 MMU와 TLB 멀티코어 프로세서의 MMU에 포함된 TLB 구조

91 MMU와 TLB TLB(translation lookaside buffer)
<변환 색인 버퍼>의 영문약자, 가상주소로 이에 해당하는 물리주소를 검색할 때 사용되는 버퍼 메모리 페이지 테이블에 대한 일종의 캐시 역할 운영체제가 저장해둔 페이지 테이블의 일부를 검색속도가 빠른 CPU 내부로 복사해온 것 페이지 테이블 이용을 생략해 여러 메모리 내용을 읽고 물리주소를 계산하던 주소변환 시간을 줄일 목적 TLB 내용은 메인메모리의 일부 페이지 프레임에 저장된 가상메모리의 일부 페이지를 표시한 정보 각항의 내용은 페이지 테이블처럼 하나의 페이지 번호가 하나의 페이지 프레임 번호로 1:1로 매핑

92 TLB를 이용한 물리주소 변환 TLB를 이용한 가상주소에서 물리주소 변환 흐름도

93 가상주소를 물리주소로 변환 CPU가 요청한 가상주소 발생 ☞ 먼저 TLB 검사
TLB에 있으면 TLB 적중(hit), 없으면 TLB 실패(miss) TLB 실패면 ☞ 페이지 테이블 검사해 정보가 있으면 가져오고 TLB 갱신, 주소변환 정보가 없으면 ☞ 페이지 폴트(page fault, 페이지 부재) 가상주소 페이지가 메인메모리에 없는 경우 ☞ OS가 HDD에서 메인메모리로 새로운 페이지를 전송 메인메모리에 빈 페이지 프레임이 있으면 새로운 페이지를 적재(load), 빈 공간 없으면 기존 페이지와 교체 페이지 테이블 갱신 후 최종 물리주소 변환 완료 페이지 부재는 메모리 보호 목적으로도 사용 ☞ 허락 받지 않은 프로그램이 접근하면 일부러 일으켜 차단

94 TLB를 이용한 물리주소 변환 MMU에서 물리주소로 계산 CPU가 발생한 가상주소 형식을

95 가상주소 캐시 ① ☞ MMU가 실제 물리 물리캐시와 메인메모리를 사용하려면 먼저 TLB에서 물리주소로 변환해야
② ☞ 가상주소 캐시는 물리주소로 변환한 캐시 값을 저장해 물리주소로 변환하는 시간을 더욱 줄여줌

96 가상주소 캐시 가상주소 캐시의 동작 가상메모리를 사용하는 CPU는 MMU에 가상주소를 발생하고, MMU는 가상주소 캐시를 먼저 확인 가상주소 캐시 안에 물리주소로 변환할 가상주소가 존재하면 MMU가 물리주소를 그대로 가져다 사용 물리캐시가 캐시 적중 여부를 확인하는 시간을 줄임 물리캐시는 적중을 확인하기 위해 반드시 TLB에서 가상주소를 물리주소로 변환하는 계산과정이 추가 필요 가상주소 캐시의 적중과 실패 CPU가 요청한 가상주소가 가상주소 캐시 안에서 발견되면 적중 ☞ MMU가 물리메모리의 검색 속도를 높임 실패면 TLB를 확인 ☞ 이하 과정은 앞의 방법과 동일

97 가상주소 캐시의 일관성 문제 캐시의 내용은 본래 이전에 사용된 값들
가상주소 캐시로 가상주소와 물리주소가 1:1로 매핑 되지 않는 일관성 문제가 발생하면 효율이 저하

98 가상주소 캐시의 일관성 문제 TLB 대신 가상주소 캐시 사용 ☞ 일관성 문제 발생
주소 에일리어스(alias), 에일리어싱(aliasing), 시너님(synonym, 동의어) 복수의 가상주소가 같은 물리주소로 매핑되는 경우 주로 공유메모리를 사용하는 멀티프로세서에서 서로 다른 주소로 동일 위치에 쓰기를 시도하면서 발생 매핑 변경 현상, 하머님(homonym, 동음이의어) 같은 가상주소가 다른 물리주소로 다시 매핑되는 경우 문맥교환(context switch, 다중작업을 위해 레지스터의 값 등 기존의 작업을 저장하는 절차), 해당 페이지의 가상주소 캐시 항을 무효로 하거나 페이지 보호를 변경하는 경우, 새로운 복사본을 만들 경우 등에서 발생

99 가상주소를 다루는 캐시 방식 인덱스 필드 ☞ 캐시에 저장된 자료 태그 필드 ☞ 저장된 자료가 유효한지 판정
인덱스에 저장된(indexed, I) 내용과 태그에 있는(tagged, T) 내용이 물리주소인지(physically, P) 아니면 가상주소인지(virtually, V)에 따라

100 가상주소를 다루는 캐시 방식 PIPT ☞ 전통적인 방식 VIVT 방식 VIPT ☞ PIPT와 VIVT의 장점을 결합
물리캐시를 사용하기 전 TLB를 참조해 물리주소 계산 느리나 간단해 하드웨어적으로 캐시의 일관성 보장 L2 캐시 이상 대형 캐시에서 사용하는 경향 VIVT 방식 TLB를 사용 않고 가상주소 캐시를 이용해 속도가 무척 빠르나 가상주소 캐시의 일관성 문제 발생 VIPT ☞ PIPT와 VIVT의 장점을 결합 TLB 변환과 병렬로 가상주소의 캐시 라인 참조 태그가 물리주소를 가져 매핑 변경 현상은 검출해 방지할 수 있으나 에일리어스 문제는 여전히 발생 L1 캐시처럼 작고 빨라야 하는 경우에 선호

101 5.5 반도체 메모리

102 5.5 반도체 메모리 반도체 메모리 용어 ROM과 RAM DRAM 구조 램 모듈 DDR SDRAM 클럭 속도와 전압

103 반도체 메모리 램 모듈 반도체 메모리 웨이퍼 (wafer)

104 반도체 메모리 용어 CPU 입장에서 읽기와 쓰기 ☞ 메모리 칩 입장에서 출력(output)과 쓰기(write)

105 반도체 메모리 용어 메모리 셀(cell) 메모리 워드(word) 저장 밀도(density)
디지털 정보의 최소 단위인 1비트를 저장하는 소자 메모리 워드(word) 1,2,4,8,16,32,64,128비트로 커지며 칩의 설계마다 다름 저장 밀도(density) 저장매체에 저장된 정보비트의 수량을 측정하는 방법으로 해당 매체의 저장 용량(capacity) 개별 메모리 칩은 대개 비트 단위로 표시 메인메모리용 램 모듈은 주로 바이트 단위로 표시 반도체 업체들은 과거의 용량 단위를 고집 1Gb 칩 표시 ☞ 대개 2진 용량의 1Gib(230비트) 1GB 램 모듈 표시 ☞ 대개 2진 용량의 1GiB(230바이트)

106 반도체 메모리 용어 칩이나 램 모듈의 저장 구조(organization) 메모리 뱅크(bank)
저장 주소의 개수와 메모리 워드의 비트 수를 곱해 (주소 수)×(비트 수)로 저장 밀도 표시 메모리 칩 구조 256M×4 ☞ 256M(=228)개 저장 주소, 4(=22)비트의 메모리 워드를 갖는 1Gib(230비트) 용량 메모리 뱅크(bank) 기억장치를 분할해 독립적으로 액세스할 수 있도록 구성한 논리적인 단위, 한번에 하나의 뱅크만 액세스 CPU가 메모리의 한 뱅크를 사용할 때 입출력장치가 다른 뱅크를 사용할 수 있어 효율적 뱅크의 크기는 논리적이라 구성하기 나름 메모리 칩 내부에도 여러 개의 뱅크를 가질 수 있음

107 반도체 메모리 용어 전형적인 DRAM 칩에서 뱅크 메모리 칩 내부의 저장 위치 구조
여러 개의 행과 열로 구성된 격자구조의 저장 단위 램 모듈은 이런 구조가 여러 개의 칩에 걸쳐 연결 메모리 칩 내부의 저장 위치 구조 (뱅크 수)×(행수)×(열수) ☞ 칩 내부의 저장 주소(address)의 총 개수 뱅크 내부는 (행수)×(열수)의 메모리 격자구조 메인보드의 램 모듈도 뱅크로 구분할 수 있음 메모리 컨트롤러와 이를 장착할 메모리 슬롯의 물리적인 구조에 의해 결정

108 ROM ROM(read only memory, 롬) <읽기 전용 메모리>의 영문약자
보통의 방법으로는 읽을 수만 있는 메모리 전원이 없어도 내용이 지워지지 않는 비휘발성(non-volatile, NV) 메모리의 일종 내용이 쉽게 변경되지 않아야 할 프로그램들 저장 시스템 시동과 관련된 초기화 프로그램, 진단 프로그램, 시스템에서 자주 호출하는 서브루틴, CPU 내부 제어장치의 마이크로프로그램 등

109 ROM과 RAM ROM과 반대되는 용어 ROM과 반대되는 용어로 보통 RAM을 사용 <읽기 쓰기 메모리>의 영문약자
RWM(read write memory)은 실제 잘 사용되지 않음 ROM과 반대되는 용어로 보통 RAM을 사용 일반적으로 RAM은 데이터 보존을 위해 전원이 필요한 휘발성(volatile) 메모리를 통칭하는 말 NVRAM(non-volatile RAM) 데이터를 보존하는데 전원이 필요 없고 읽고 쓰기도 가능한 메모리로 <비휘발성 램>의 영문 약자

110 RAM과 SAM RAM(random access memory, 램) SAM(sequential access memory, 샘)
찾는 주소에 따라 액세스 타임이 일정한 메모리 <무순 접근 메모리>의 영문약자 반도체 메모리와 자기디스크 등 대부분의 기억장치 SAM(sequential access memory, 샘) 찾는 주소에 따라 액세스 타임이 변하는 메모리 <순차 접근 메모리>의 영문약자 자기 테이프 등 일부에서 해당 (ex.) 음악 CD는 RAM 방식이라 곡을 지정하면 어떤 곡이든 나오는데 걸리는 시간이 일정 (ex.) 음악 테이프는 SAM 방식이라 테이프를 감아야 하므로 곡마다 나오는데 걸리는 시간이 다름

111 반도체 ROM의 종류 반도체 ROM의 종류 마스크 롬(mask ROM) PROM(programmable ROM)
반도체 공정에서 마스크 필름(mask film)으로 인쇄하듯 대량 생산하는 롬 PROM(programmable ROM) 퓨즈(fuse)를 녹이면 끊어지는 구조로 한 번 프로그램 하면 지울 수 없음

112 반도체 ROM의 종류 EPROM(erasable PROM) EEPROM(electrically EPROM)
지우고 다시 쓰는 것이 가능 지울 때는 상단의 투명한 유리창을 통해 자외선으로 데이터를 일괄 소거, 기록할 때는 디지털에서 일반적으로 사용하는 전원보다 높은 12V 등을 사용 EEPROM(electrically EPROM) 디지털회로에서 일반적으로 사용하는 5V이하의 낮은 전압으로 쓰고 지울 수 있음

113 플래시 메모리 플래시 메모리(flash memory)
대중적인 비휘발성 램(NVRAM), EEPROM의 한 형태지만 과거 전통 방식 소자들과 구분되는 장점 EEPROM과 달리 큰 블록 크기들을 사용할 수 있어 지우는 속도가 빠르고 일괄 소거 가능, 특히 가격 저렴 메모리 카드가 들어가는 디지털 카메라, 휴대전화 등 각종 휴대용 기기와 USB 드라이브 등에 널리 쓰임 아직 가격이 문제이나 이동용 컴퓨터부터 물리적으로 취약하고 부피가 큰 HDD를 빠르게 대체 기존 디지털 기기의 설정 값을 저장하는 용도로 쓰이던 EEPROM과 배터리 백업 받던 SRAM을 대체

114 플래시 메모리 플로팅게이트(floating gate)의 충전과 방전을 이용하여 1소자당 1비트인 간단한 구성 NAND 타입
DRAM보다 ☞ 단위 셀 면적이 작아 대용량에 유리하고 소비전력도 작고 저렴하나, 특히 쓰기 속도는 느림 메모리 내부 셀이 NAND와 NOR 논리 게이트와 유사 NAND 타입 몇 개의 블록 단위로 읽고 쓸 수 있음 대용량이 요구되는 메모리 카드, USB 드라이브 등 NOR 타입 대개 바이트인 메모리 워드 단위로 읽고 쓸 수 있음 과거 EPROM을 대체하여 빠른 속도가 요구되는 기계어 코드 수준의 응용설계에 주로 사용

115 SRAM과 DRAM SRAM(static RAM, 에스램) DRAM(dynamic RAM, 디램)
교차결합 인버터의 스위칭을 이용하는 쌍안정 회로 트랜지스터 6개 정도로 1비트 저장하는 안정된(static) 저장구조, 전원만 공급받으면 리프레시 회로 필요없음 DRAM 보다 비싸지만 액세스 타임이 빠름 DRAM(dynamic RAM, 디램) 커패시터의 충전과 방전을 이용해 최소 트랜지스터 1개와 커패시터로 1비트를 저장하는 간딘한 구조 SRAM보다 가격이 저렴하고 대용량 설계가 용이하나 전하의 충전상태가 안정적이지 못하고 동적(dynamic) 셀 안의 저장 상태가 유지되도록 주기적으로 충전 전압을 올려주는 리프레시(refresh, 재충전) 회로 필요

116 사이클 타임 사이클 타임(cycle time) 메모리 용어에서 기억장치에서 연이은 액세스를 새로 시작하는데 걸리는 시간 간격
SRAM ☞ (사이클 타임) = (액세스 타임) DRAM ☞ (사이클 타임) ≒ (액세스 타임)×2 리프레시 진행되는 동안 새로운 액세스를 시작할 수 없어 연속 액세스하려면 액세스 타임의 2배 정도 필요

117 DRAM 구조 메모리 격자(memory matrix) 구조에서 RAS와 CAS 신호를 사용해 외부 주소선의 개수를 대폭 줄임
4개의 주소선에 입력은 2개뿐 RAS, A3, A2 ☞ 행주소 CAS, A1, A0 ☞ 열주소 주소당 4비트

118 DRAM 구조 행주소를 지정하는 RAS(row address strobe)와 열주소를 지정하는 CAS(column address strobe) 신호를 주소 선과 함께 보내 각 저장 위치의 주소를 완성 행과 열이 꼭 대칭일 필요는 없음 (ex.) 512M×8 4Gb 칩 내부 <8뱅크×16행×10열> 3개의 뱅크 선택 선(BA2~BA0) 16개의 메모리 주소 선(A15~A0) 뱅크 내부 ☞ 행주소 A15~A0, 열주소 A9~A0 사용 ☞ (총 저장주소 수)=23×216×210=229 ☞ 512M개 8개의 데이터버스 선(D7~D0) 칩의 (저장 밀도)=(주소 수)×(비트 수) ☞ 512M×8=4Gib 용량

119 DRAM 구조 DRAM 리프레시 재충전 시간 때문에 DRAM을 연속 액세스하려면 ☞ 액세스 타임의 2배 정도 필요
RAS가 가해진 모든 행에 걸린 셀의 내용이 한 번에 재충전되는 방식 등을 사용 리프레시가 차지하는 시간은 전체 사용의 1~2% 정도 재충전 시간 때문에 DRAM을 연속 액세스하려면 ☞ 액세스 타임의 2배 정도 필요 특정 셀의 내용을 읽어오면 출력으로 전압이 떨어져 강제로 재충전 해주어야 하고, 특정 셀에 쓰면 그 행에 걸린 모든 열의 셀이 재충전되므로 기다려야 함

120 램 모듈 램 모듈(RAM module), 메모리 모듈
주로 컴퓨터의 메인메모리로 사용하기 위해 시스템보드에 장착하기 적합하도록 만들어진 부품 대개 DRAM 칩을 결합한 보드형태로 메인보드에 장착 메모리 랭크(rank) 공통의 버스에 연결되어 동시에 동작하는 칩들의 모임 주로 같은 칩 선택 신호에 연결되어 동시에 액세스가 가능한 DRAM 칩들의 집합 너무 많은 칩을 같은 신호선으로 동작시키면 물리적인 한계가 발생하는 것을 막고 전기적인 부하를 경감시킴 메모리 칩들은 모두 같은 메모리 주소버스와 데이터버스에 연결되지만 물리적으로 여러 랭크로 나눔

121 램 모듈 램 모듈의 데이터버스 비트 수 ☞ 칩당 메모리 워드의 비트 수와 랭크당 칩의 개수를 곱한 것
DDR 램 모듈은 보통 64비트 에러 정정 코드(error-correcting code)를 갖는 ECC 램 모듈은 에러 정정 8비트 추가해 보통 72비트 메인보드가 결정되면 램 모듈이 결정 CPU와 메모리 컨트롤러에 따라 램 모듈 방식이 결정 CPU와 시스템보드에서 권장하는 종류를 사용해야 허용되는 시스템버스의 클럭 속도가 빠를수록 고성능 램 모듈의 저장 밀도(저장 용량)를 표시 방법 램 모듈의 저장 구조로 표시 램 모듈의 구성으로 표시

122 램 모듈 램 모듈의 저장 구조(organization) 램 모듈의 구성(composition)
칩의 구조처럼 저장 주소의 개수와 데이터버스의 비트 수를 곱함 ☞ (주소 수)×(비트 수) 1G×64 표시 램 모듈 ☞ 1G개 저장 주소와 64비트 데이터버스로 구성된 8GiB 용량의 램 모듈 램 모듈의 구성(composition) 칩의 저장 구조에 칩의 수를 곱해 ☞ (주소 수)×(비트 수)×(칩의 개수)로 표시 512M×8*16pcs로 표시된 64비트 램 모듈의 구성 ☞ 512M×8 구조의 8비트 4Gib 칩 16개(pieces) 64비트를 위해 랭크 하나에 64÷8=8개의 칩 필요 16개 칩은 16÷8=2개의 랭크로 나누어짐

123 DDR SDRAM SDRAM(synchronous DRAM, 에스디램) DDR(double data rate) SDRAM
물리적으로 메모리버스의 클럭 속도를 높이지 않고도 신호를 안정시켜 전송률을 높이는 방법 DDR(double data rate) SDRAM 같은 시스템버스의 클럭 속도에서 SDRAM에 비해 <2배의 데이터 전송률>을 갖는 DRAM 클럭 펄스의 상승, 하강 시점에서 2번의 데이터 전송 클럭 속도가 물리적으로 증가하는 것은 아니지만 버스 사이클 하나당 전송횟수를 늘려 대역폭을 증가

124 DDR SDRAM DDR, DDR2, DDR3의 클록 승수는 각각 ×1, ×2, ×4
☞ 각 클록의 상승과 하강에서 2번의 데이터 전송을 일으켜 데이터 전송률은 SRADM의 각각 ×2, ×4, ×8배

125 DDR SDRAM 반도체 칩의 클럭 승수(clock multiplier) 선인출(prefetch, 프리패치)
<반도체 칩 내부의 동작 클럭이 외부 공급 클럭의 몇 배수인가>를 표시, ×n DDR2, DDR3, DDR4의 클럭 승수는 각각 ×2, ×4, ×8 ☞ 각 클럭의 상승과 하강에서 2번의 전송을 일으켜 데이터 전송률은 SDRAM에 비해 ×4, ×8, ×16배 선인출(prefetch, 프리패치) 작업이 빨리 실행되도록 <필요한 자료를 미리 읽어 들이는 기능> DDR 방식은 선인출 버퍼에 여러 비트를 미리 준비해 한 메모리버스 사이클 당 여러 번의 데이터 전송 선인출 버퍼의 입출력 비트 수는 사이클당 전송횟수

126 DDR SDRAM DDR, DDR2, DDR3 방식의 선인출 비트 수는 2, 4, 8

127 시스템버스의 클럭 시스템버스의 실제 물리적인 클럭 속도
<표 5-9>는 100, 133, 166, 200MHz 기준으로 설명 이처럼 DDR3 1866MHz ☞ 1866MHz÷8≒233MHz 메모리, CPU, 메모리 컨트롤러는 그 이상도 지원하나 칩 내부의 성능일 뿐 <메인보드>가 병목 현상 실제 200MHz 이상을 물리적으로 지원하는 <메인보드>를 만들기 쉽지 않음 SDRAM 모듈 방식에서 실제 가능한 시스템버스의 물리적인 한계 ☞ <대략 300MHz 정도> 칩을 표시 클럭보다 낮게 사용하는 것은 문제 없음 (ex.) DDR3 1600MHz 램 모듈을 133MHz 시스템버스를 지원하는 메인보드에 장착하면 1066MHz로 동작

128 DDR4 SDRAM DDR4 SDRAM 국제반도체표준협의기구(JEDEC)에서 정한 DDR4 표준(2012)은 선인출 비트 수를 8비트로 유지 읽기, 쓰기, 리프레시가 독립적인 2개 또는 4개의 뱅크 그룹을 사용해 대역폭을 2배로 높임 DDR4를 DDR3처럼 설계하려면 문제 발생 <이론적으로는>클럭을 2배로 세분화하고 선인출 비트 수를 16비트로 늘려야 하는데 클럭이 상승했다 떨어지는 속도가 더 빨라지려면 전압이 더 낮아야 하는데 반도체 공정과 관련 있어 어려움

129 동작 전압 DDR SDRAM의 동작 전압 DDR3 low voltage ☞ JEDEC 표준 ( )

130 전력 소모 DDR SDRAM의 전력 소모 나노 공정

131 클럭 속도와 전압 <표 5-9> ☞ 클럭 속도를 높이려면 동작 전압을↓
액세스 횟수가 빈번해지거나 동작 클럭이 빨라지면 ☞ 소비전력↑☞ 발열↑☞ 전기저항↑☞ 동작속도↓ 발열 줄이려면 전력 소모를 줄여야 ☞ 2가지 방법 동작 클럭↓☞ 성능이 느려지는 과거의 방법 시스템 설정이나 OS로 대기모드 설정 동작 전압↓☞ 속도와 발열의 두 마리 토끼를 잡을 수 반도체 나노 공정(nano process) 기술로 가능 고밀도 반도체 설계기술로 32nm, 22nm, 14nm처럼 점차 좁은 회로선 폭과 짧은 배선 거리 구현 회로의 집적도↑☞ 전기신호의 이동거리↓ ☞ 낮은 전압 사용이 가능 ☞ 전력 소모↓☞ 발열↓

132 5.6 시스템버스의 대역폭

133 5.6 시스템버스의 대역폭 전송속도와 비트율 채널의 대역폭 버스의 대역폭

134 전송속도와 비트율 데이터의 전송속도 가장 적합한 표현은 비트율(bit rate)
전송 스피드(transmission speed) (×) 스피드(speed)는 거리를 시간으로 나눈 물체의 이동 속도나 일의 처리 속도를 나타내는 일반 명사

135 전송속도와 비트율 데이터 전송속도 전문적인 용어는 데이터 전송률(data transfer rate)
☞ 줄여 데이터율(data rate), 전송률(transfer rate) 본래 정의는 <단위 시간당 전송되는 정보량> 모든 단위 시간이나 단위 정보량을 통칭 ☞ 초당 비트 수, 초당 바이트 수, 분당 비트 수, 분당 바이트 수 등 비트율이 가장 많이 사용되어 대표적인 이름이 됨 data transfer rate ☞ data rate ☞ bit rate 본래는 <단위 시간당 전송되는 비트 수>이지만 비트율의 단위로 초당 비트 수(bit/s)와 초당 바이트 수(B/s)를 함께 사용

136 비트율의 국제 표준단위 10진 단위 ☞ 국제단위계(SI)의 m법 접두어(1790s~)
2진 단위 ☞ ISO 산하의 IEC 표준(1999)

137 채널의 대역폭 대역폭의 2가지 정의 통신, 신호처리 분야에서 신호의 대역폭(bandwidth)
해당 신호의 전달에 사용되는 주파수(frequency)의 폭 도로의 폭처럼 신호를 전송할 때 필요한 주파수의 폭 컴퓨터 분야에서 채널의 대역폭(bandwidth) <채널의 이론적인 최대 전송속도>, 채널의 전송능력 ☞ 비트율로 표시 비트율이 어떤 특정 신호의 전송속도라면, 대역폭은 그 채널이 허용하는 이론적인 최대 전송속도 해당 채널이 허용하는 최대 전송속도 ☞ 통신 분야에서는 이를 별도로 채널 용량(channel capacity)이라 함

138 채널의 대역폭 시리얼 버스 인터페이스의 대역폭 초당 데이터 전송 횟수(number of data transfers)
메가트랜스퍼(megatransfer, 106bits, MT) 기가트랜스퍼(gigatransfer, 109bits, GT) 등을 사용해 비트율 대신 MT/s나 GT/s 등의 단위로 대역폭 표시 전송을 위해 추가 비트가 부가되는 경우 ☞ 대개 총 비트율 대신 유효한 순수 데이터의 비트율로 표시

139 버스의 대역폭 버스의 대역폭 ☞<버스의 이론적인 최대 전송속도>, 버스의 전송능력으로 어느 한 순간의 최대 전송속도
(버스의 대역폭 bit/s) = (버스의 클럭률 Hz) × (비트 수) (5.4) 버스의 대역폭 ☞<버스의 이론적인 최대 전송속도>, 버스의 전송능력으로 어느 한 순간의 최대 전송속도 (cf.) [그림 5-24] ☞ 실제의 버스 사이클은 여러 클럭이 모여 구성, 모든 클럭마다 전송이 일어나지 않음 버스의 대역폭을 높이려면 비트 수 ☞ 1980’s 부터 시스템버스가 8, 16, 32, 64비트로 발전하는데 수십 년 걸림 클럭 속도 ☞ SDRAM 모듈 방식에서 실제 가능한 시스템버스의 물리적인 한계는 <대략 300MHz 정도> 인터페이스 방식 개선 ☞ 요즘은 DDR처럼 한 버스 사이클 동안 여러 번의 전송이 일어나도록 버스를 설계

140 버스의 클럭률 클럭률(clock rate) ☞ 클럭 속도를 가리키는 보다 전문적인 용어, 초당 사이클 횟수(Hz, hertz)
(버스의 클럭률 Hz) = (실제 클럭 속도 Hz) × (사이클당 전송횟수) (5.5) 클럭률(clock rate) ☞ 클럭 속도를 가리키는 보다 전문적인 용어, 초당 사이클 횟수(Hz, hertz) 버스의 클럭률 ☞ 버스의 실제 물리적인 클럭 속도와 버스의 한 사이클당 전송횟수를 곱해 계산 실제 물리적으로 적용되는 클럭 속도가 아님 한 번의 버스 사이클 동안 여러 번의 데이터 전송을 실시해 마치 <그런 효과>를 갖는다고 할 수 있음 램 모듈 제조자들은 FSB의 클럭률을 제품에 표시 (ex.) DDR3 1600MHz 램 모듈 ☞ 실제 물리적인 클럭 속도 200MHz에서 한 번의 버스 사이클 동안 8번의 데이터 전송을 실시, 200MHz×8=1600MHz 클럭률 효과

141 시스템버스의 대역폭 시스템 버스의 대역폭 <시스템 버스의 이론적인 최대 전송속도>
시스템버스의 전송능력으로 시스템버스의 클럭률과 비트 수를 곱해 계산 (ex.) FSB 100MHz 64비트 SDRAM 모듈 (시스템버스의 대역폭) = 100MHz×64bits÷ = 800[MB/s] (5.6) (ex.) FSB 1600MHz 64비트 DDR3 SDRAM 모듈 (시스템버스의 대역폭) = 1600MHz×64bits÷ = 12800[MB/s] (5.7) ☞ MB/s 단위는 106B/s, 램 모듈 제조사는 식 (5.7)에 계산한 같은 대역폭을 제품명에 사용하기도

142 Practice ☞ surf the net (인터넷 검색 실습)
<에누리닷컴> 검색해 가격 대 용량비 조사 램 모듈, USB 메모리, SSD, HDD 등 기억장치 중 (1) 3종류의 기억장치를 정하고 가격을 조사하고 (2) 각 장치 별로 1모델씩 골라 다음을 계산한다. 1GiB 기준 가격 대 용량비를 구하라. ☞ (ex.) DDR3, G 78,080원 ☞ 가격/GiB=9,760원 USB 메모리 64G 38,150원 ☞ 가격/GiB≒596원 ☞ 메모리는 2진 용량으로 그냥 계산 SATA3 HDD 4T 207,830원 ☞ 가격/GiB≒56원 ☞ HDD는 10진 용량을 고려, <표 5-2>참조해 계산 (ex.) 4TB=4×1012÷10243≒3725GiB 실습이 완료된 사람은 결과를 보고하라.

143 Project ☞ Presentation (발표 과제)
<발표 과제> 5장 주제 추가 ☞ 반도체 이슈 반도체 산업과 관련된 이슈(issue)들 중에서 선택 An issue is an important subject that people are arguing about or discussing. 반도체 산업과 관련된 다음 4가지 주제 중에서 하나를 골라 그 의미를 조사하고 사례를 발표하라. 무어의 법칙과 황의 법칙(Moore's law and Hwang's law) 나노 공정(nano process) 치킨 게임(chicken game) 특허권 침해 소송(patent infringement suits) <발표 과제> 요령 ☞ 1장 요령과 동일

144 - End of Chapter -


Download ppt "제5장 기억장치."

Similar presentations


Ads by Google