EzDoum

찾기
처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
전체보기
네트워크
TI OMAP35x
TI DaVinci
Analog Blackfin
RobotWar2005
임베디드!
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝
자료구조(Tree)
금융

Login
이름

암호

기억하기


사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 3명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

최근글
·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·Sorting Algorithm Animation (2)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·ReverseEngineering - 종합선물세트 (2)

[Cache] 2-way Set-Associative 방식이란 무엇일까?
글쓴이: EzDoum 글쓴날: 2002년 05월 04일 오후 01:19
하드웨어



2-way Set-Associative 방식이란 무엇일까? 이에 대해 알기 위해서는 먼저 캐시의 구조를 알아야 한다. 캐시는 메모리의 데이터를 담고 있는 매우 빠른 기억장치로, 메모리의 데이터를 읽어오는 데 소요되는 시간 손실을 줄이는 중요한 역할을 한다. 이러한 캐시는 크게 Associative Mapping과 Direct Mapping, Set-Associative Mapping이라는 세 가지 아키텍처를 이용한다. 이 세 가지 방식의 차이점을 간단히 설명하면 다음과 같다.

Associative Mapping : 이 방식은 가장 빠르고도 유연성이 높은 구조로 알려져 있으며, 메인 메모리에 위치한 데이터의 주소(번지수)와 내용을 모두 저장하는 방식이다. 간단히 말해 메모리의 주소와 내용을 그대로 캐시에 저장하는 형태이며, 프로세서에서 특정 주소에 접근할 경우와 캐시의 메모리 주소 영역에 찾고자 하는 번지수가 있을 경우 그 데이터 값을 그대로 전달받아 사용한다. 그러나 캐시에 저장되는 번지수와 데이터는 특별한 순서 없이 저장되므로, 찾고자 하는 데이터를 검색하는 데 추가 비용이 많이 든다는 단점이 있다.


Direct Mapping : 이 방식은 캐시의 주소 영역을 태그(Tag)와 인덱스(Index) 영역으로 나눔으로써 Associative Mapping 방식의 단점을 극복하고 있다. 일반적으로 캐시 메모리에 2k개의 데이터가 저장되고, 메인 메모리에 2n개의 데이터가 저장될 경우, nbit의 메모리 주소는 2개의 필드로 나뉘게 되는데, 이는 kbit의 인덱스 필드와 n-kbit의 태그 필드라 불린다. 그 중 인덱스 필드를 이용해 메인 메모리의 nbit 중 하위 kbit의 주소를 직접 매핑(mapping)할 수 있도록 동일한 구조를 구성한다. 태그 필드는 메인 메모리의 상위 n-kbit로 캐시 메모리에 주소 영역 대신 저장된다. 이로 인해 별도의 비교 연산 유닛이 없어도 된다는 장점을 갖게 된다. 하지만 동일한 인덱스 필드 값을 가진 다수의 메모리 주소를 함께 저장할 수 없다는 단점이 있다.


    [사례설명 ^^]
  • 주기억장치 용량 = 16 MBytes (2^24)
  • 주기억장치 주소 = 24 비트, Byte 단위로 주소 지정
  • 블록 크기 = 4 Bytes
  • 주기억장치: 4 MBytes (2^22) 개의 블록들로 구성
  • 캐쉬 크기 = 64 KBytes (2^16)
  • 캐쉬 슬롯 크기 = 4 Bytes
  • 전체 캐쉬 슬롯의 수 m = 16K (2^14) 개
  • 각 기억장치 블록이 공유하게 될 캐쉬 슬롯 번호 i = j mod 2^14

Set-Associative Mapping : Associative Mapping과 Direct Mapping의 단점을 극복하기 위한 방식이다. Direct Mapping의 최대 단점인 동일 인덱스 필드의 메모리 영역 데이터를 함께 공유할 수 없다는 단점을 극복하기 위해 마련된 것으로, 동일한 인덱스 필드를 여러 쌍 갖도록 한다. 즉, 2way Set-Associative 방식은 2쌍의 태그와 데이터 필드를 하나의 인덱스 필드에 두며, 일반적인 n way Set-Associative 방식은 n개의 태그와 데이터 필드를 인덱스 필드에 함께 두는 방식이다. 그러므로 n way Set-Associative 방식의 경우 동일한 인덱스 필드의 메모리 번지 데이터를 최대 n개까지 함께 캐시에 저장할 수 있다는 장점을 갖는다.


    [사례설명 ^^]
  • 주기억장치 용량 = 16 MBytes (2^24)
  • 블록크기 = 4 Bytes (2^2)
  • Number of sets in cache = Cache size/(Set size * Block size) =
    64 KBytes/(2 blocks * 4 Bytes) = 2^22/(2^1 * 2^2) = 2^13
  • Number of bits in Tag = Total bits - Index bits - Offset bits = 24-13-2 = 9

그렇다면 n의 값을 높일수록 더 좋은 구조를 갖게 되는 것일까? 일반적으로 그렇다고 대답할 수 있다. 하지만 n 값이 늘어날수록 동일 인덱스 필드에서 서로 다른 태그 값을 비교하기 위한 연산이 복잡해져야 하므로 검색 부분 로직의 구현이 어려워진다는 단점이 생긴다.




  • 관련 링크
  • [분류: 하드웨어 인쇄용 페이지 본문 email로 보내기 ]

    <  [Cache] 캐쉬 메모리가 궁금하였더라... | 논리 회로  >
    [Cache] 2-way Set-Associative 방식이란 무엇일까? | 답장: 2개 | 본문에 답장
    정렬 :  
    답장 익명 2002년 05월 04일 오후 07:27 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    Cache Address Structure
    http://www.ecs.umass.edu/ece/koren/ece668/cache/default.htm

    Block Placement for various cache schemes
    http://www.ecs.umass.edu/ece/koren/ece668/cache/page3.htm

    Block Replacement Simulator
    http://www.ecs.umass.edu/ece/koren/ece668/cache/frame1.htm

    Cache Time Analysis
    http://www.ecs.umass.edu/ece/koren/ece668/cache/frame2.htm


    답장 EzDoum 2002년 08월 06일 오전 01:55 [ 이글에 답장 | 본문에 답장 | 책갈피 ]
    각 맵핑 방법에 따라서 메모리와 캐쉬간의 블럭교체의 예
    http://www.cs.iastate.edu/~prabhu/Tutorial/CACHE/bl_place_applet.html
    --
    걀걀걀...
    [수정]

    [Cache] 2-way Set-Associative 방식이란 무엇일까? | 답장: 2개 | 본문에 답장
    정렬 :  

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.

    검색
    Google

    분류
    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525


    분류 : 하드웨어
    최근글
    최근글
    가장 많이 읽은 글
    ·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
    뜨거운 감자
    ·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

    EzDoum투표
    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    관심없다.
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크
    http://kldp.net


     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum