메모리 계층
Memory hierarchy컴퓨터 메모리 및 데이터 스토리지 유형 |
---|
휘발성 |
비휘발성 |
컴퓨터 아키텍처에서 메모리 계층은 응답 시간에 따라 컴퓨터 스토리지를 계층으로 분리합니다.응답 시간, 복잡성 및 용량이 관련되어 있기 때문에 레벨은 퍼포먼스와 제어 [1]테크놀로지에 의해서도 구별될 수 있습니다.메모리 계층은 참조 위치를 포함하는 컴퓨터 아키텍처 설계, 알고리즘 예측 및 하위 레벨 프로그래밍 구조의 성능에 영향을 미칩니다.
고성능 설계에는 메모리 계층의 제약, 즉 각 컴포넌트의 크기와 기능을 고려해야 합니다.각 다양한 성분은 메모리 계층1(m2, m, ..., mn)의 일부로 볼 수 있으며, 각 멤버i m은 일반적으로 계층의 가장 높은 멤버i+1 m보다 작고 빠르다.상위 레벨의 대기시간을 제한하기 위해 하위 레벨은 버퍼를 채운 후 전송을 활성화하기 위한 시그널링으로 응답합니다.
스토리지 [1]레벨은 크게 4가지입니다.
이것은 일반적인 메모리 계층 구조입니다.다른 많은 구조물이 유용하다.예를 들어 페이징 알고리즘은 컴퓨터 아키텍처를 설계할 때 가상 메모리의 레벨로 간주되며 온라인 스토리지와 오프라인 스토리지 사이에 니어라인 스토리지의 레벨을 포함할 수 있습니다.
메모리 계층 내 기술 속성
- 복잡함을 더하면 메모리 [2]계층이 느려집니다.
- CMOx 메모리 테크놀로지에 의해 메모리 계층의[3] 플래시 공간이 확장됩니다.
- 시스템 성능을 향상시키는 주요 방법 중 하나는 데이터를 [4]조작하기 위해 메모리 계층을 얼마나 낮게 유지해야 하는지를 최소화하는 것입니다.
- 지연과 대역폭은 캐시와 관련된 두 가지 메트릭입니다.어느 쪽도 균일하지 않지만 메모리 계층의 [5]특정 컴포넌트에 한정되어 있습니다.
- 메모리 계층에서 데이터가 존재하는 위치를 예측하는 것은 어렵습니다.[5]
- 메모리 계층 내 위치에 따라 프리페치가 발생하는 [5]데 필요한 시간이 결정됩니다.
예
메모리 계층의 수준 수와 각 수준의 성능은 시간이 지남에 따라 증가했습니다.메모리 또는 스토리지 컴포넌트의 유형도 [6]과거로 변경됩니다.예를 들어 2013년도의 인텔[7] Haswell 모바일 프로세서의 메모리 계층은 다음과 같습니다.
- 프로세서 레지스터 – 가능한 한 빠른 액세스(통상은 1 CPU 사이클).수천 바이트 크기
- 캐시
- 레벨 0(L0) 마이크로 운영 캐시– 6,144 바이트 (6[citation needed][original research] KiB)[8] 크기
- 레벨 1(L1) 명령 캐시– 128 KiB[citation needed][original research] 크기
- 레벨 1(L1) 데이터 캐시– 128 KiB[citation needed][original research] 크기최적의 액세스 속도는 약 700 GB/s입니다[9].
- 레벨 2 (L2) 명령 및 데이터 (공유)– 1 MiB[citation needed][original research] 사이즈최적의 액세스 속도는 약 200 GB/s입니다[9].
- 레벨 3(L3) 공유 캐시– 6 MiB[citation needed][original research] 크기최적의 액세스 속도는 약 100 GB/s입니다[9].
- 레벨 4(L4) 공유 캐시– 128 MiB[citation needed][original research] 크기최적의 액세스 속도는 약 40GB/s입니다[9].
- 메인 메모리(프라이머리 스토리지)– GiB[citation needed][original research] 사이즈최적의 액세스 속도는 약 10GB/[9]s입니다.NUMA 시스템의 경우 액세스 시간이 균일하지 않을 수 있습니다.
- 디스크 스토리지(세컨더리 스토리지)– 테라바이트 크기.2017년 기준으로 소비자용 솔리드 스테이트 드라이브의 최고 액세스 속도는 약 2000MB/s입니다[10].
- 니어라인 스토리지(테리어 스토리지)– 최대 엑사바이트 크기.2013년 기준 최고 액세스 속도는 약 160MB/s입니다[11].
- 오프라인 스토리지
디스크에서 아래 계층의 하위 레벨은 계층형 스토리지라고도 합니다.온라인, 니어라인 및 오프라인 스토리지의 공식적인 차이점은 다음과 같습니다.[12]
- 온라인 스토리지는 즉시 I/O에 사용할 수 있습니다.
- 니어라인 스토리지는 즉시 사용할 수 없지만, 사람의 개입 없이 신속하게 온라인으로 만들 수 있습니다.
- 오프라인 스토리지는 즉시 사용할 수 없으며 온라인 상태로 전환하려면 사용자의 개입이 필요합니다.
예를 들어 상시 가동형 회전 디스크는 온라인 상태이고, MAID(대량 어레이 유휴 디스크)와 같이 스핀다운된 회전 디스크는 니어라인 상태입니다.테이프 라이브러리와 같이 자동적으로 로드할 수 있는 테이프 카트리지등의 리무버블 미디어는 니어라인이며, 수동으로 로드할 필요가 있는 카트리지는 오프라인입니다.
대부분의 최신 CPU는 속도가 매우 빠르기 때문에 대부분의 프로그램 워크로드에서 병목현상은 메모리 액세스 참조의 인접성 및 계층[citation needed] 간 캐싱 및 메모리 전송의 효율성입니다.그 결과 CPU는 메모리 I/O가 완료될 때까지 대기하면서 대부분의 시간을 아이돌 상태로 보냅니다.메모리 오브젝트가 클수록 작은/빠른 레벨로 오버플로우 할 가능성이 높아져 큰/느린 레벨의 사용이 필요하기 때문에, 이것을 스페이스 코스트라고 부르기도 합니다.메모리 사용에 따른 부하를 압력이라고 합니다(각각 레지스터 압력, 캐시 압력 및 (메인) 메모리 압력).상위 레벨에서 누락되는 데이터와 하위 레벨에서 가져올 필요가 있는 데이터를 나타내는 용어는 각각 레지스터 스필링(레지스터 압력: 레지스터에서 캐시로), 캐시 미스(캐시에서 메인 메모리로) 및 (하드) 페이지 장애(메인 메모리에서 디스크로)입니다.
현대의 프로그래밍 언어는 주로 메인 메모리와 디스크 스토리지라는 두 가지 수준의 메모리를 가정하지만 어셈블리 언어와 인라인 어셈블러에서는 C와 같은 언어의 레지스터에 직접 액세스할 수 있습니다.메모리 계층을 최대한 활용하려면 프로그래머, 하드웨어 및 컴파일러의 협력이 필요합니다(또한 운영 체제의 기본 지원도 필요합니다.
- 프로그래머는 파일 I/O를 통해 디스크와 메모리 간의 데이터 이동을 담당합니다.
- 하드웨어는 메모리와 캐시 간의 데이터 이동을 담당합니다.
- 컴파일러의 최적화는 실행 시 하드웨어가 캐시와 레지스터를 효율적으로 사용하는 코드를 생성하는 역할을 합니다.
많은 프로그래머들이 한 가지 수준의 메모리를 가정합니다.이 조작은, 애플리케이션이 퍼포먼스의 벽에 부딪힐 때까지 정상적으로 동작합니다.그런 다음 코드 리팩터링 중에 메모리 계층이 평가됩니다.
「 」를 참조해 주세요.
- 캐시 계층
- 공간적 및 시간적 지역성 사용: 계층적 메모리
- 버퍼 대 캐시
- 최신 프로세서의 캐시 계층
- 메모리 월
- 컴퓨터 메모리
- 계층형 스토리지 관리
- 클라우드 스토리지
- 메모리 액세스 패턴
- 통신 회피 알고리즘
레퍼런스
- ^ a b Toy, Wing; Zee, Benjamin (1986). Computer Hardware/Software Architecture. Prentice Hall. p. 30. ISBN 0-13-163502-6.
- ^ 기입 조합
- ^ "Memory Hierarchy". Unitity Semiconductor Corporation. Archived from the original on 5 August 2009. Retrieved 16 September 2009.
- ^ Pádraig Brady. "Multi-Core". Retrieved 16 September 2009.
- ^ a b c van der Pas, Ruud (2002). "Memory Hierarchy in Cache-Based Systems" (PDF). Santa Clara, California: Sun Microsystems: 26. 817-0742-10.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Memory & Storage - Timeline of Computer History - Computer History Museum". www.computerhistory.org.
- ^ Crothers, Brooke. "Dissecting Intel's top graphics in Apple's 15-inch MacBook Pro - CNET". News.cnet.com. Retrieved 2014-07-31.
- ^ "Intel's Haswell Architecture Analyzed: Building a New PC and a New Intel". AnandTech. Retrieved 2014-07-31.
- ^ a b c d e "SiSoftware Zone". Sisoftware.co.uk. Archived from the original on 2014-09-13. Retrieved 2014-07-31.
- ^ "Samsung 960 Pro M.2 NVMe SSD Review". storagereview.com. Retrieved 2017-04-13.
- ^ "Ultrium - LTO Technology - Ultrium GenerationsLTO". Lto.org. Archived from the original on 2011-07-27. Retrieved 2014-07-31.
- ^ Pearson, Tony (2010). "Correct use of the term Nearline". IBM Developerworks, Inside System Storage. Archived from the original on 2018-11-27. Retrieved 2015-08-16.