스크래치패드 메모리

Scratchpad memory

Scratchpad Memory(SPM; 스크래치패드 메모리)는 컴퓨터 용어로는 Scratchpad, Scratchpad RAM 또는 로컬 스토어라고도 불리며 계산, 데이터 및 진행 중인 기타 작업을 임시로 저장하는 데 사용되는 고속 내장 메모리입니다.마이크로프로세서(CPU)와 관련하여 스크래치패드는 빠른 검색을 위해 작은 데이터 항목을 저장하는 데 사용되는 특수한 고속 메모리를 말합니다.이것은 생활에서의 스크래치 패드의 사용법이나 크기와 유사합니다: 예비 노트, 스케치, 글쓰기 등을 위한 종이 패드입니다.

일부 시스템에서는[a] 프로세서 등록 다음으로 ALU에 가까운 메모리라는 점에서 L1 캐시와 유사하다고 간주할 수 있습니다.메인 메모리에서 데이터를 이동하거나 메인 메모리에서 데이터를 이동하도록 명시적인 명령과 함께 종종 DMA 기반 데이터 [1]전송을 사용합니다.캐시를 사용하는 시스템과 달리 스크래치 패드가 있는 시스템은 NUMA(Non-Uniform Memory Access) 대기 시간을 갖는 시스템입니다. 스크래치 패드와 메인 메모리에 대한 메모리 액세스 대기 시간이 다르기 때문입니다.캐시를 사용하는 시스템과의 또 다른 차이점은 스크래치 패드는 일반적으로 메인 메모리에 저장되는 데이터의 복사본을 포함하지 않는다는 것입니다.

스크래치 패드는 캐싱 로직의 심플화를 위해 사용되며, 특히 임베디드 시스템멀티프로세서 시스템 온 칩에서 여러 프로세서를 사용하는 시스템에서 메인 메모리 경합 없이 유닛이 동작할 수 있음을 보증하기 위해 사용됩니다.일반적으로 메인 메모리에 항상 커밋할 필요는 없는 일시적인 결과(CPU 스택에 있는 것처럼)를 저장하는 데 대부분 적합합니다.다만, DMA에 의해서 공급되는 경우는, 캐시 대신에, 메인 메모리의 속도가 느린 상태를 미러링 하기 위해서도 사용할 수 있습니다.일부 시스템은 교차 DMA가 직사각형 데이터 세트에 액세스할 수 있도록 허용하지만, 기준 인접성의 문제는 사용 효율성과 관련하여 동일하게 적용된다.또 다른 차이점은 스크래치 패드는 애플리케이션에 의해 명시적으로 조작된다는 것입니다.예측 가능한 타이밍이 캐시 동작에 의해 방해되는 실시간애플리케이션에 도움이 될 수 있습니다.

스크래치 패드는 레거시 소프트웨어를 세대에서 세대로 실행하기 위해 범용성이 필요한 메인스트림 데스크톱 프로세서에서는 사용되지 않으며, 사용 가능한 온칩 메모리 크기가 변경될 수 있습니다.칩은 종종 MPSoC로 제조되고 소프트웨어가 하나의 하드웨어 구성에 맞춰 조정되는 임베디드 시스템, 특수 목적 프로세서게임 콘솔에 더 잘 구현됩니다.

사용 예

  • 1975년의 Fairchild F8은 64바이트의 스크래치 패드를 포함하고 있었다.
  • Cyrix 6x86은 전용 스크래치 패드를 탑재한 유일한 x86 호환 데스크톱 프로세서입니다.
  • SuperH는 Sega의 콘솔에 사용되며, 스크래치 패드로 사용하기 위해 메인 메모리 외부의 주소로 캐시라인을 잠글 수 있습니다.
  • 소니의 PS1R3000은 L1 캐시 대신 스크래치 패드를 가지고 있었다.CPU 스택을 여기에 배치할 수 있었습니다. 이는 임시 작업 공간 사용량의 예입니다.
  • Adapteva의 Epiphany 병렬 코프로세서는 각 코어에 로컬 스토어를 탑재하고 칩상의 네트워크로 접속되어 있으며, DMA와 오프칩 링크(D램에 접속되어 있을 가능성이 있음)가 가능합니다.이 아키텍처는 Sony의 Cell과 유사하지만 모든 코어가 서로의 스크래치 패드에 직접 주소를 지정하여 표준 로드/스토어 명령에서 네트워크 메시지를 생성할 수 있습니다.
  • 소니의 PS2 Emotion Engine에는 16KB 스크래치 패드와 GS에 DMA 전송이 가능한 메인 메모리가 포함되어 있습니다.
  • 의 SPE는 스크래치패드처럼 메인 메모리 간 및 로컬 스토어 간 전송에 DMA에 의존하여 "로컬 스토어"에서만 작업할 수 있습니다.이와 관련하여 여러 캐시 간에 일관성을 검사하고 업데이트할 하드웨어가 부족하다는 추가적인 이점이 있습니다. 즉, 각 프로세서의 작업 공간은 개별적이고 개인적이라는 가정을 활용하는 설계입니다.프로세서의 수가 「멀티 코어」의 장래에 맞추어 확장해 나가기 때문에, 이 메리트는 한층 더 두드러질 것으로 예상됩니다.그러나 일부 하드웨어 로직이 제거되었기 때문에 SPE 상의 모든 태스크가 로컬스토어에 [2][3][4]들어가지 않을 경우 SPE 상의 애플리케이션 데이터와 명령을 소프트웨어를 통해 관리해야 합니다.
  • 다른 많은 프로세서에서는 L1 캐시 라인을 잠글 수 있습니다.
  • 대부분의 디지털 신호 프로세서는 스크래치 패드를 사용합니다.과거의 많은 3D 액셀러레이터와 게임 콘솔(PS2 포함)은 정점 변환을 위해 DSP를 사용해 왔습니다.이는 CPU 캐시의 기능과 더 공통적인 최신 GPU의 스트림 기반 접근 방식과는 다릅니다.
  • CUDA로 동작하는 NVIDIA의 8800 GPU는 GPGPU 태스크에 사용할 때 스레드 번들당 16KB의 스크래치 패드(NVIDIA는 Shared Memory)를 제공합니다.Scratchpad는 이후 Fermi GPU(GeForce 400 Series)[5]에도 사용되었습니다.
  • Ageia의 PhysX 칩에는 Cell과 유사한 방식으로 스크래치패드 RAM이 포함되어 있습니다.그 이론은 캐시 계층이 소프트웨어 관리 물리 및 충돌 계산보다 덜 사용됨을 나타냅니다.이러한 메모리도 뱅크되어 스위치로 전송이 관리됩니다.
  • 인텔의 나이츠 랜딩 프로세서는 16GB의 MCDRAM을 탑재하고 있습니다.MCDRAM은 캐시 또는 스크래치패드 메모리로 구성하거나 캐시와 스크래치패드 메모리로 나눌 수 있습니다.
  • Movidius Miriard 2는 멀티코어 아키텍처로 구성되며 멀티코어 공유 스크래치 패드를 사용합니다.
  • Graphcore는 스크래치패드 메모리를[6] 기반으로 한 AI 액셀러레이터를 설계했다.

대체 수단

캐시 제어와 스크래치 패드 비교

PowerPC와 같은 일부 아키텍처는 캐시 제어 명령을 사용하여 캐시 라인 잠금 또는 스크래치 패드의 필요성을 피하려고 합니다.메모리의 영역을 「데이터 캐시 블록: 제로」(회선을 할당해, 메인 메모리에서 로드하지 않고 내용을 제로로 설정)로 마크 해 사용 후에 폐기(「데이터 캐시 블록: 무효화」)하면, 메인 메모리가 갱신된 데이터를 수신하지 않았음을 나타내는 것으로, 캐시가 스크래치 패드로 동작한다.일반성은 힌트이며 실제 캐시 크기에 관계없이 기본 하드웨어가 올바르게 작동한다는 점에서 유지됩니다.

공유 L2와 셀 로컬 스토어

멀티코어 셋업에서의 프로세서 간 통신에 관해서는 인텔 Core 2 Duo 또는 Xbox 360의 커스텀 파워와 같이 Cell의 로컬스토어 간 DMA와 공유 L2 캐시 셋업 사이에는 유사점이 있습니다.PC: L2 캐시를 사용하면 프로세서가 결과를 메인 메모리에 커밋하지 않고도 결과를 공유할 수 있습니다.이는 알고리즘의 작업 세트가 L2 캐시 전체를 포괄하는 경우 장점이 될 수 있습니다.단, 로컬 스토어 간 DMA를 이용하기 위해 프로그램을 작성하는 경우 셀은 1개의 프로세서를 위한 프라이빗 워크스페이스와 프로세서 간의 공유 포인트 양쪽에 대해 서로 다른 로컬 스토어를 이용할 수 있다는 이점이 있습니다.즉, 다른 로컬 스토어는 하나의 프로세서에서 공유 L2 cach와 동일한 기반 위에 있습니다.e는 기존 칩에 포함되어 있습니다.단, 동기화를 위한 버퍼링 및 프로그래밍 복잡성에 낭비되는 메모리의 단점은 기존 칩의 프리캐시 페이지와 유사합니다.이 기능을 사용할 수 있는 도메인은 다음과 같습니다.

  • 파이프라인 처리(하나의 작업을 더 작은 청크로 분할하여 L1 캐시의 크기를 늘리는 것과 같은 효과를 얻을 수 있습니다)
  • 작업 세트 확장(예: 데이터가 8×256KB 이내인 병합 정렬에 적합한 위치)
  • 공유 코드 업로드(예를 들어 코드를 1개의 SPU에 로드한 후 다른 SPU에 복사하여 메인 메모리에 다시 영향을 주지

L2를 바이패스하는 L1로의 프리페치 허용이나 L1에서 L2로의 전송을 시그널링했지만 메인 메모리에 커밋하지 않는 삭제 힌트 등의 캐시 제어 명령에서도 기존의 프로세서가 같은 이점을 얻을 수 있을 것입니다.그러나 현재 이 기능을 사용할 수 있는 형태로 제공하는 시스템은 없습니다.nstructions는 각 코어가 사용하는 캐시 영역 간의 명시적 데이터 전송을 반영해야 합니다.

「 」를 참조해 주세요.

메모들

  1. ^ 일부 구형 시스템에서는 메인 스토리지의 숨겨진 부분인 범프 스토리지를 스크래치 패드로 사용했습니다.UNIVAC 1107과 같은 다른 시스템에서는 주소 지정 가능한 모든 레지스터가 스크래치 패드로 유지되었습니다.

레퍼런스

  1. ^ Steinke, Stefan; Lars Wehmeyer; Bo-Sik Lee; Peter Marwedel (2002). "Assigning Program and Data Objects to Scratchpad for Energy Reduction" (PDF). University of Dortmund. Retrieved 3 October 2013.: "3.2 Scratchpad 모델..스크래치패드 메모리는 소프트웨어를 사용하여 데이터의 위치 할당을 제어합니다."
  2. ^ J. Lu, K. Bai, A.Shrivastava, "SSDM: SMM(Smart Stack Data Management for Software Managed Multicores), 설계 자동화 컨퍼런스(DAC), 2013년 6월 2-6일
  3. ^ K. Bai, A.Shrivastava, "제한된 로컬 메모리 멀티코어 아키텍처를 위한 자동적이고 효율적인 힙 데이터 관리", 설계 자동화 테스트 인 유럽, 2013년
  4. ^ K. Bai, J. Lu, A.시바스타바, BHolton, "CMSM: 소프트웨어 관리 멀티코어를 위한 효율적이고 효과적인 코드 관리", CODES+ISS, 2013
  5. ^ Patterson, David (September 30, 2009). "The Top 10 Innovations in the New NVIDIA Fermi Architecture, and the Top 3 Next Challenges" (PDF). Parallel Computing Research Laboratory & NVIDIA. Retrieved 3 October 2013.
  6. ^ (PDF) https://www.graphcore.ai/hubfs/assets/pdf/Citadel%20Securities%20Technical%20Report%20-%20Dissecting%20the%20Graphcore%20IPU%20Architecture%20via%20Microbenchmarking%20Dec%202019.pdf. {{cite web}}:누락 또는 비어 있음 title=(도움말)

외부 링크