http://www.infiniflux.com/download
- InfiniFlux : 시계열 데이터를 저장, 처리하는 초고속 데이터베이스
- 이를 지원하기 위해서는 오라클 혹은 DB2와 같은 전통적인 데이터베이스(Conventional DBMS)와 매우 다른 성격을 가짐
- 로그성 시계열 지원 제품 아키텍처 및 특성을 이해하는 것이 중요
- 초당 수십만 건의 레코드를 저장하면서 동시에 SQL을 통해 해당 데이터를 분석하는 핵심 기능을 제공하기 위한 기술적 특성 기술
전통 기술과의 차이점에 대해 기술하고, 각 항목에 대한 세부적인 내용을 설명
http://www.infiniflux.com/download
- InfiniFlux : 시계열 데이터를 저장, 처리하는 초고속 데이터베이스
- 이를 지원하기 위해서는 오라클 혹은 DB2와 같은 전통적인 데이터베이스(Conventional DBMS)와 매우 다른 성격을 가짐
- 로그성 시계열 지원 제품 아키텍처 및 특성을 이해하는 것이 중요
- 초당 수십만 건의 레코드를 저장하면서 동시에 SQL을 통해 해당 데이터를 분석하는 핵심 기능을 제공하기 위한 기술적 특성 기술
전통 기술과의 차이점에 대해 기술하고, 각 항목에 대한 세부적인 내용을 설명
2. 가상 메모리
• 보조기억장치를 위해 메인메모리를 캐시처럼 사용
• 다중 프로그램들 간의 메모리를 효율적이고 안정적으로
공유할 수 있도록 허용
• 물리적 메모리 크기보다 큰 프로그램을 쉽게 실행할 수 있
음
• 코드 재배치를 제공함으로써 프로그램 로딩을 단순화함
(즉, 코드는 메인메모리 어디에서든 로딩이 가능)
• 지역성의 원칙
• 프로그램은 접근한 메모리 주소에 다시 접근할 확률이 높
음
• 각 프로그램은 고유의 주소 공간을 가짐 – 가상 주소
공간
• 실행시간동안 각 가상 주소는 물리적 주소로 변환되어야
함 (메인메모리 주소)
3. 물리적 메모리를 공유하는 두 프로그램
• 한 프로그램의 주소 공간은 페이지 (모두 같은 크기)
또는 세그먼트 (가변 크기)로 분할됨
• 각 페이지 (메인메모리와 보조기억장치 모두)의 시작 위치
는 프로그램의 페이지 테이블에 포함되어 있음
4. 주소 변환
• 가상 주소는 하드웨어와 소프트웨어를 통해 물리적
주소로 변환됨
• 각 메모리는 가상 메모리 주소에서 물리 메모리 주소
로 변환을 요청함
• 가상 메모리 미스 (즉, 페이지가 물리 메모리에 없으면)가
발생하면 페이지 폴트라고 함
6. 캐시에서 가상 주소
• VA를 PA로 변환하기 위해 추가적인 메모리 접근이 필
요함
• 이는 메모리 (캐시) 접근을 매우 비싸게 만듬
• 하드웨어는 TLB (Translation Lookaside Buffer)를 사용
• 최근에 사용된 주소 사상을 보관하여 페이지 테이블 검사
를 회피하기 위한 작은 캐시
8. Translation Lookaside Buffers (TLBs)
• 다른 캐시와 같이, TLB도 연관, 세트 연관 또는 직접
사상으로 구성됨
• TLB 접근 시간은 캐시 접근 시간보다 짧음 (TLB들은
캐시보다 작기 때문)
• TLB는 보통 512 엔트리보다 적음
VA Virtual Page # Physical Page # Dirty Ref Access
9. 메모리 계층에서의 TLB
• TLB 미스 – 페이지 폴트 또는 단순 TLB 미스?
• 만약 페이지가 메인 메모리에 로드 되었다면, TLB 미스는 페이지 테이
블을 TLB로 가져와서 처리할 수 있음 (하드웨어 또는 소프트웨어)
• 찾고 변환 정보를 TLB로 로드하는데 10 사이클이 소모됨
• 만약 페이지가 메인 메모리에 없다면 페이지 폴트가 발생
• 페이지 폴트를 처리하기 위해 1,000,000 사이클이 소모됨
• TLB 미스는 페이지 폴트보다 많이 발생함
10. TLB 이벤트 정리
TLB Page Table Cache 가능
Hit Hit Hit 예 – 이상적인 경우
Hit Hit Miss 예 – TLB가 히트하면 페이지 테이블 검사
하지 않음
Miss Hit Hit 예 – TLB 미스라도 페이지 테이블에 PA가
있음
Miss Hit Miss 예 – TLB 미스라도 페이지 테이블에 PA가
있고 캐시에는 데이터가 없음
Miss Miss Miss 예 – 페이지 폴트 발생
Hit Miss Miss 불가능 – 페이지가 메모리에 없으면 TLB
변환이 이뤄지지 않음
Miss Miss Hit 불가능 – 페이지가 메모리에 없으면 데
이터가 캐시에 없음
11. TLB 미스 처리하기
• 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이
지 테이블의 유효 비트 존재)
• TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이
클 마지막에 발생함
• 다음 사이클은 예외 처리를 해주어야 함
12. TLB 미스 처리하기
• 메모리에 있는 페이지에 대한 TLB 미스를 고려할 때 (즉, 페이
지 테이블의 유효 비트 존재)
• TLB 미스 ( 또는 페이지 폴트)는 메모리 접근이 발생했을 때 같은 사이
클 마지막에 발생함
• 다음 사이클은 예외 처리를 해주어야 함
16. 가상 주소 캐시
• 가상 주소 캐시는 캐시 미스가 발생했을 때만 주소 변환을 요
청함
• 그러나
• 데이터를 공유하는 두 프로그램은 같은 물리 주소에 대해 다른 가상
주소를 가짐 – 따라서 캐시에 한 공유 데이터에 대한 두 카피가 존재하
고 TLB의 두 엔트리가 필요함 – 이는 일관성 이슈 문제로 이어짐
• 같은 물리 주소로 캐시 엔트리를 업데이트해야 하고 그렇지 않으면 메모리가 일관
성이 없어짐
17. 변환 시간 줄이기
• TLB 접근으로 캐시 접근을 오버랩할 수 있음
• 낮은 순서 비트가 캐시 인덱스로 사용되고 높은 순서 비트가 TLB 접근
에 사용될 때 작동함
18. 하드웨어/소프트웨어 경계
• 가상에서 물리 주소로 변환할 때 하드웨어가 사용되는 부분
• TLB가 최근 변환으로 캐시
• TLB 접근 시간은 캐시 히트 시간 중 일부임
• TLB 접근을 위해 파이프라인에 추가적인 스테이지를 할당함
• 페이지 테이블 저장소, 폴트 감지 그리고 업데이트
• 페이지 폴트 결과는 OS에 의해 처리
• 하드웨어는 Dirty와 참조 비트를 페이지 테이블에서 지원해야 함