비휘발성 메인 메모리를 위한 소프트웨어 관리형 읽기 및 쓰기 웨어 레벨링 1부
Aug 06, 2024
인메모리 웨어 레벨링은 지난 몇 년 동안 새로운 비휘발성 주 메모리에 대한 중요한 연구 분야가 되었습니다. 문헌의 많은 접근 방식은 특수 하드웨어를 사용하여 마모 평준화를 수행합니다.
메인 메모리는 컴퓨터 내부의 저장 장치입니다. 임시 데이터를 저장하는 데 사용됩니다. CPU에서 직접 읽고 쓸 수 있으며 컴퓨터 시스템에 없어서는 안될 부분입니다. 대조적으로, 기억은 인간 두뇌의 신경 구조이며 정보를 저장하고 회상하는 역할을 담당하는 기관입니다. 주 메모리와 메모리는 물리적으로나 기능적으로 다르지만 둘 사이에는 몇 가지 연관성과 유사점이 있습니다.
우선, 메인 메모리와 메모리는 모두 중요한 저장 장치입니다. 주 메모리는 CPU의 읽기 및 쓰기 요구 사항을 충족하기 위해 프로그램 지침과 데이터를 임시로 저장할 수 있습니다. 기억은 정보를 저장하고 회상하는 역할을 하는 인간 두뇌의 주요 기관 중 하나로, 인간이 세상을 어느 정도 인식하고 이해하는 데 도움을 줄 수 있습니다. 두 가지 유형의 메모리 모두 고효율, 속도, 안정성이라는 특징을 갖고 있어 컴퓨터와 인간의 사고 효율성을 향상시킬 수 있습니다.
둘째, 주기억과 기억력 모두 지속적으로 단련되고 강화되어야 한다. 컴퓨터 시스템이 정상적으로 작동하려면 메인 메모리를 지속적으로 읽고 써야 하며, 늘어나는 수요에 맞춰 최적화하고 확장해야 합니다. 기억력도 지속적으로 자극하고 훈련해야 하는데, 이는 독서, 학습, 운동을 통해 향상될 수 있습니다. 지속적인 강화를 통해서만 주 메모리와 메모리가 컴퓨터와 인간에게 더 나은 서비스를 제공할 수 있습니다.
마지막으로, 메인 메모리와 메모리 모두 적절하게 관리되고 유지되어야 합니다. 과도한 정크 데이터로 인해 컴퓨터 시스템이 정지되는 등의 문제를 방지하려면 정크 데이터를 줄이고 성능을 향상시키기 위해 메인 메모리를 정기적으로 청소하고 최적화해야 합니다. 기억은 정보가 망각되거나 혼동되는 것을 방지하기 위해 빈번한 회상과 정보의 정리가 필요합니다. 이런 방식으로만 주 메모리와 메모리가 컴퓨터와 인간에게 더 나은 서비스를 제공할 수 있습니다.
요약하면, 메인 메모리와 메모리는 물리적으로나 기능적으로 다르지만, 둘 사이에는 몇 가지 연관성과 유사점도 있습니다. 강화된 교육, 합리적인 관리 및 유지 관리를 통해 우리는 자신의 역할을 더 잘 수행하고 컴퓨터와 인간 지능의 발전을 촉진할 수 있습니다. 기억력 향상이 필요하다고 볼 수 있는데, 시스탄체는 기억력 향상이라는 독특한 효능이 많은 전통 한약이기 때문에 시스탄체는 기억력을 크게 향상시킬 수 있습니다. 시스탄체의 효능은 탄닌산, 다당류, 플라보노이드 배당체 등 포함된 다양한 활성 성분에서 비롯되며 여러 가지 방법으로 뇌 건강을 증진할 수 있습니다.

대부분의 비휘발성 메모리는 쓰기 액세스에서만 마모되기 때문에 문헌에서 제안된 접근 방식은 일반적으로 전체 메모리 공간에 걸쳐 쓰기 액세스를 널리 분산시키려고 시도합니다.
그러나 일부 비휘발성 메모리는 읽기 액세스 시에도 마모됩니다. 왜냐하면 모든 읽기가 연속적인 쓰기 액세스를 유발하기 때문입니다. 소프트웨어 기반 솔루션은 읽기 및 쓰기 액세스가 다른 명령과 의미로 실현되는 애플리케이션 또는 커널 수준에서만 작동합니다. 따라서 소프트웨어 수준에서 읽기 및 쓰기를 처리하려면 다양한 메커니즘이 필요합니다.
먼저, 우리는 특별한 하드웨어가 없을 때 노화를 인식하는 대략적인 마모 평준화를 허용하고 연령 정보를 제공하기 위해 메모리에 대한 읽기 및 쓰기 액세스를 근사화하는 방법을 설계합니다.
둘째, 컴파일된 프로그램 코드(텍스트 세그먼트) 및 애플리케이션 스택 내에서 액세스 핫스팟을 해결하기 위한 특정 솔루션을 제공합니다. 평가에서는 셀당 총 액세스 횟수를 계산하여 셀 수명을 추정합니다.
결과는 모든 방법을 사용하면 메모리 수명이 최대 955배까지 향상된다는 것을 보여줍니다.
CCS 개념: • 컴퓨터 시스템 구성 → 임베디드 시스템; • 하드웨어 → 메모리 및 고밀도 스토리지.
추가 핵심 단어 및 문구: 비휘발성 메모리, 마모 평준화, 읽기 파괴, 수명 근사.
1 소개
최근 메모리로는 DRAM이나 SRAM의 대안으로 비휘발성 메모리(NVM)가 고려되고 있다. 여러 가지 단점(예: 낮은 셀 내구성)으로 인해 영향을 극복하기 위한 유지 관리 전략이 문헌에 제안되었습니다.
메모리 수명은 유지 관리가 적용되지 않으면 몇 시간 또는 몇 분으로 줄어들 수 있기 때문에 NVM을 고려할 때 중요한 문제입니다[5, 9]. 따라서 마모 평준화 전략은 시간이 지남에 따라 모든 메모리 셀에 균등한 스트레스를 가하여 메모리 수명을 최대로 연장하려고 합니다.
마모 평준화 전략은 노화 인식 전략과 비노화 인식 전략으로 분류될 수 있으며, 여기서 노화 인식 전략은 현재 셀 연령을 조사하여 적절한 마모 평준화 결정을 내립니다.
이를 위해서는 특수 하드웨어에서 수집하거나 소프트웨어로 대략적으로 추정할 수 있는 세포 연령에 대한 정확한 지식이 필요합니다. 이와 대조적으로 노화를 인식하지 못하는 전략은 다른 메커니즘(예: 무작위)을 기반으로 마모 수준 결정을 내립니다. 대부분의 노화 인식 및 비노화 인식 전략은 대부분 쓰기 액세스만 대상으로 합니다. 왜냐하면 쓰기 액세스만 대부분의 NVM 유형의 메모리 셀을 마모시키기 때문입니다. FeRAM(강유전성 RAM)과 같은 일부 NVM도 읽기 파괴적입니다[18].
이는 모든 읽기 액세스가 메모리 셀을 마모시킨다는 것을 의미합니다. FeRAM의 경우 읽기 액세스가 현재 셀 값을 덮어쓰므로 이후에 재충전해야 하기 때문입니다[18]. 따라서 모든 읽기 액세스로 인해 셀에 대한 자동 후속 쓰기 액세스가 발생합니다. 메모리 컨트롤러는 모든 읽기 액세스 중에 이 프로세스를 트리거합니다.
결과적으로, 그러한 읽기 파괴 메모리가 사용되는 경우 마모 레벨링 중 쓰기 액세스와 동일한 영향으로 읽기 액세스를 고려해야 합니다. 이는 하드웨어 수준(특히 하드웨어 기반 웨어 레벨링)에서 큰 차이를 의미하지는 않지만, 웨어 레벨링의 일부로 읽기 액세스를 추적하도록 하드웨어를 확장할 수 있기 때문에 소프트웨어 수준에서는 그렇게 합니다. 소프트웨어에서 웨어 레벨링이 실현되면 읽기 액세스를 추적하고 계산하는 것이 쓰기 액세스와 다릅니다.
읽기 및 쓰기 액세스는 소프트웨어 수준에서 서로 다른 의미로 발생하며 실제로 대부분의 프로그램에는 다양한 "읽기 전용" 데이터가 있습니다. 따라서 소프트웨어 기반 솔루션을 설계하는 동안 다양한 의미를 고려해야 합니다.
이 기사에서는 특별한 하드웨어가 없는 경우 노화 인식 웨어 레벨링을 위한 연령 근사치의 설계 및 사용을 조사하는 소프트웨어 관리 웨어 레벨링의 설계를 연구합니다. 소프트웨어 관리 메커니즘을 통해 우리는 기본 하드웨어와 완전히 독립적이지 않고 특정 시스템 기능 세트가 필요한 솔루션을 나타냅니다.
오히려 소프트웨어 수준에서 일반적으로 사용 가능한 하드웨어 구성 요소를 구성하여 최첨단 시스템의 소프트웨어 수준에서만 구현할 수 있는 솔루션을 고려하는 것이 좋습니다. 보다 구체적으로, 우리 솔루션에는 최근의 많은 애플리케이션 프로세서에서 볼 수 있는 MMU 및 성능 카운터가 필요합니다.
그러나 솔루션은 앞서 언급한 하드웨어의 수정을 제안하지 않으며, Wear-leveling 목표를 달성하기 위해 소프트웨어 수준에서 이를 관리하고 구성할 뿐입니다.
일반적으로 소프트웨어 기반 솔루션은 하드웨어 기반 솔루션에 비해 선호되어서는 안 되며, 칩 공간을 절약하기 위해 의도적으로 또는 시스템 하드웨어가 이미 구성되어 있기 때문에 필요한 하드웨어 지원이 구현되지 않은 시스템에 대한 웨어 레벨링 솔루션을 제공해야 합니다. .
우리는 읽기 파괴적인 NVM도 표적화할 수 있도록 우리 방법 내에서 읽기 및 쓰기 액세스의 파괴적인 영향을 다룹니다. 먼저, 성능 카운터와 메모리 액세스 권한을 사용하여 주 메모리에 대한 읽기 및 쓰기 액세스를 샘플링하는 대략적인 노화 인식 웨어 레벨링을 설계합니다.

이는 읽기 및 쓰기 액세스 분포에 대한 통계적 근사치를 제공합니다. 우리는 이 근사치를 가상 메모리 페이지 기반 마모 평준화 알고리즘에 공급하여 노화를 인식하는 방식으로 가상 메모리 페이지 뒤의 물리적 메모리 페이지를 다시 매핑합니다.
직교 방식으로 우리는 노화를 인식하지 않는 세분화된 마모 레벨링을 추가로 설계하여 메모리 페이지 내의 밀집된 액세스 핫스팟을 해결합니다. 애플리케이션 스택 세그먼트는 읽기 및 쓰기 액세스가 집중된 핫스팟에 직면하는 반면, 컴파일된 프로그램 코드(예: 텍스트 세그먼트)는 읽기 핫스팟에만 직면합니다.
이를 목표로 우리는 프로그램의 올바른 실행이 보장되는 동안 물리적 메모리를 통해 스택과 텍스트 세그먼트를 작은 오프셋으로 원형으로 이동하는 메커니즘을 제안합니다. 이전의 대략적인 노화 인식 마모 레벨링과 결합하여 영역을 파괴하는 메인 메모리가 있는 경우에도 전체 마모 레벨 메모리를 달성합니다.
우리의 새로운 기여에는 다음이 포함됩니다.
• 읽기 및 쓰기 액세스와 관련된 대략적인 페이지 교환을 허용하는 온라인 읽기 및 쓰기 근사치입니다.
• 쓰기 및 읽기 핫스팟을 방지하기 위해 스택 세그먼트에 대한 세밀한 마모 평준화. 포인터의 정확성이 유지되는 동안 스택은 회전식으로 이동됩니다.
• 읽기 핫스팟을 방지하기 위해 텍스트 세그먼트에 대한 세밀한 마모 레벨링. 이 접근 방식은 텍스트 세그먼트를 회전식으로 이동하여 더 큰 메모리 영역을 통해 읽기 핫스팟을 분산시킵니다.
2 관련 업무
지난 수십 년 동안 NVM의 메모리 내 마모 평준화를 위한 여러 가지 접근 방식이 제안되었습니다. 이러한 접근 방식은 다양한 기준에 따라 분류될 수 있습니다.
첫째, 마모 레벨링을 적용하기 위해 현재 셀 수명을 고려하는 노화 인식 접근법[1, 2, 4–6, 11, 15, 17, 20, 24]이 있습니다. 대조적으로, 무작위 접근법[5, 19, 24]은 순환 무작위 방식으로 마모 레벨링을 적용합니다.
두 접근 방식은 종종 메모리 블록 내부의 미세한 세분화에 대한 무작위 마모 평준화를 달성하기 위해 결합되는 반면, 에이징 인식 접근 방식은 이러한 대략적인 메모리 블록을 대상으로 하는 데 사용됩니다.
또한 세분성은 메모리 페이지[1, 2, 5, 6, 20]에 대한 세분화된 접근 방식의 경우 캐시 라인[19, 24]에 대한 단일 비트[3, 23]부터, 거친 경우에는 더 큰 메모리 세그먼트[22, 24]까지 다양합니다. 세분화된 접근 방식. 일부 접근 방식은 추상화 계층을 통해 물리적 메모리 콘텐츠를 다시 매핑하는 것을 기반으로 하지 않고 운영 체제의 메모리 할당 프로세스에 연결하여 메모리 할당자에 마모 평준화를 적용합니다[1, 15, 20].
Li et al. [15]은 또한 함수가 호출될 때마다 함수의 스택 메모리가 스택 영역을 마모시키기 위해 할당된 메모리 부분을 사용하는 것을 제안합니다.
2.1 노화 인식 웨어 레벨링
Gogteet al. [6]은 쓰기 분포의 샘플링된 근사치를 사용하여 소프트웨어 전용의 대략적인 마모 평준화 접근 방식을 제안합니다. Intel 프로세서 이벤트 기반 샘플링(PEBS)과 같은 고급 디버깅 기능을 사용하여 CPU의 쓰기 요청을 샘플링할 수 있습니다. 그러나 이러한 디버깅 기능은 임베디드 시스템이나 리소스가 제한된 하드웨어에서는 거의 찾아볼 수 없습니다.
언급된 다른 모든 에이징 인식 접근 방식은 테마 메모리의 현재 쓰기 횟수 정보에 의존합니다. 대부분의 접근 방식은 쓰기 횟수 정보를 수집하기 위해 특수 하드웨어를 메모리 컨트롤러에 도입하는데, 이는 일반적으로 사용 가능한 시스템에서는 사용할 수 없으며 실현하기 어려울 수 있습니다.
Dong et al. [4] 오프라인으로 기록된 메모리 추적을 사용하여 쓰기 분포를 추정합니다. 이는 잘 알려진 응용 프로그램의 하위 집합에만 접근 방식을 제한합니다.
2.2 웨어 레벨링 읽기
우리가 아는 한, 읽기 파괴 NVM에는 읽기 마모 레벨링을 위한 전용 알고리즘이 없습니다. 그러나 노화를 인식하지 못하거나 각 셀의 마모에 따라 직접 결정하는 하드웨어 기반 접근 방식은 기본적으로 읽기 파괴 메모리와 호환됩니다.
마모가 쓰기 횟수로 추정되는 경우 읽기 및 쓰기 횟수를 함께 추정할 수도 있습니다. 이는 하드웨어-소프트웨어 상호 작용 알고리즘이 읽기 액세스를 계산하도록 하드웨어를 확장함으로써 정확한 마모 추정을 얻을 수 있음을 의미합니다.
일반 메커니즘(예: 가상 메모리 페이지 재매핑)이 사용되는 한[1, 2], 알고리즘 수정은 최소화됩니다. 대조적으로, 특정 메커니즘(예: 힙 할당 또는 스택 할당)이 마모 평준화에 사용되는 경우[14, 15, 20], 읽기 마모 평준화는 쉽게 통합될 수 없습니다. 따라서 이러한 경우에는 읽기 마모 평준화를 위한 또 다른 특별한 메커니즘이 필요합니다.

또한 쓰기 근사값[6, 9, 12]과 함께 제공되는 알고리즘의 경우 특수 읽기 근사값이 추가되어야 합니다. 우리가 아는 한, 이는 소프트웨어 관리 메모리 읽기 및 쓰기 액세스를 제안하는 첫 번째 작업입니다. 특별한 디버그 기능에 의존하지 않는 근사치입니다.
또한 애플리케이션별 데이터(스택 및 텍스트)에 대해 작동하는 특정 알고리즘이 제공되며, 여기서 텍스트용 알고리즘은 읽기 액세스 전용입니다.
3 타겟 시스템
이 섹션에서는 먼저 제안된 방법의 일반적인 목표 설정 범위를 지정합니다. 우리의 방법을 특정 NVM 유형으로 제한하지는 않지만 마모와 관련된 특정 특성을 고려합니다. 우리는 모든 셀 수정으로 인해 셀이 똑같이 마모된다고 가정합니다.
또한 반복적 쓰기를 가정하지 않으므로 메모리 액세스 횟수는 선형적으로 메모리 수명에 해당합니다. 제안된 방법에서는 읽기 파괴적인 NVM을 위한 추가 기능을 구현하여 쓰기 파괴적인 NVM뿐만 아니라 읽기 파괴적인 NVM을 목표로 합니다.
읽기 파괴 특성이 하나의 NVM 유형에서만 발견되는 것은 아니지만 FeRAM은 이러한 NVM의 대표적인 예입니다. 그러나 이것이 우리의 방법이 FeRAM으로 제한된다는 의미는 아닙니다. 예를 들어 읽기 마모 레벨링을 활성화하지 않음으로써 읽기를 파괴하지 않는 NVM에도 적용될 수 있습니다.
FeRAM의 읽기 파괴 특성은 읽기 절차(즉, 셀 값 감지)가 셀을 덮어쓴다는 사실에서 비롯됩니다[13, 18]. 읽기 동작 중에 FeRAM 셀에 전기장이 인가되고 이동된 전하가 측정되어 셀이 분극됩니다. 읽은 후 원래 셀 상태를 유지하려면 이전 값을 셀에 다시 써야 합니다.
이러한 필수 후속 쓰기 액세스는 FeRAM을 읽기 파괴적으로 만듭니다. 대상 시스템으로 우리는 복잡한 작업을 수행하고 따라서 복잡한 소프트웨어도 실행해야 하는 리소스가 제한된 환경의 임베디드 시스템을 고려합니다.
이러한 종류의 시스템은 자동차 컨트롤러나 항공우주 애플리케이션에서 찾아볼 수 있습니다. 낮은 에너지 소비를 유지하면서 저렴한 비용으로 메모리 용량을 늘리려면 NVM을 장착하는 것이 바람직합니다. 다음에서는 (1) 캐시 계층 구조와 (2) 일반 메모리 아키텍처에 관해 대상 시스템의 범위를 지정합니다.

For more information:1950477648nn@gmail.com






