하드웨어 소프트웨어 장단점
하드웨어 비용을 줄이는 방법은 여러 가지가 있습니다. 한 가지 방법은 통신 지원 및 네트워크를 처리 노드에 덜 긴밀하게 통합하고 통신 대기 시간과 점유를 늘리는 것입니다.
또 다른 방법은 하드웨어가 아닌 소프트웨어에서 자동 복제 및 일관성을 제공하는 것입니다. 후자의 방법은 주 메모리에서 복제 및 일관성을 제공하고 다양한 단위로 실행할 수 있습니다. 이를 통해 노드 및 상호 연결에 기성품 부품을 사용할 수 있으므로 하드웨어 비용이 최소화됩니다. 이것은 프로그래머에게 좋은 성능을 달성하도록 압력을가합니다.
완화 된 메모리 일관성 모델
공유 주소 공간에 대한 메모리 일관성 모델은 동일하거나 다른 위치에서 메모리 작업이 서로에 대해 실행되는 것처럼 보이는 순서로 제약 조건을 정의합니다. 실제로 공유 주소 공간 이름 지정 모델을 지원하는 모든 시스템 계층에는 프로그래머의 인터페이스, 사용자 시스템 인터페이스 및 하드웨어-소프트웨어 인터페이스를 포함하는 메모리 일관성 모델이 있어야합니다. 해당 계층과 상호 작용하는 소프트웨어는 자체 메모리 일관성 모델을 인식해야합니다.
시스템 사양
아키텍처의 시스템 사양은 메모리 작업의 순서와 순서를 지정하고 메모리 작업에서 실제로 얻을 수있는 성능의 양을 지정합니다.
다음은 프로그램 순서에서 완화를 사용하는 몇 가지 사양 모델입니다.
Relaxing the Write-to-Read Program Order−이 등급의 모델을 사용하면 하드웨어가 첫 번째 수준 캐시 메모리에서 누락 된 쓰기 작업의 지연 시간을 억제 할 수 있습니다. 쓰기 미스가 쓰기 버퍼에 있고 다른 프로세서에 표시되지 않는 경우 프로세서는 캐시 메모리에서 히트 한 읽기를 완료하거나 캐시 메모리에서 누락 된 단일 읽기를 완료 할 수 있습니다.
Relaxing the Write-to-Read and Write-to-Write Program Orders− 쓰기가 다양한 위치에 대한 이전의 미해결 쓰기를 우회하도록 허용하면 메인 메모리를 업데이트하기 전에 쓰기 버퍼에 여러 쓰기를 병합 할 수 있습니다. 따라서 여러 쓰기 누락이 겹치게되고 순서가 맞지 않게 표시됩니다. 동기는 쓰기 대기 시간이 프로세서 중단 시간에 미치는 영향을 더욱 최소화하고 새 데이터 값을 다른 프로세서에 표시하여 프로세서 간의 통신 효율성을 높이는 것입니다.
Relaxing All Program Orders− 프로세스 내 데이터 및 제어 의존성을 제외하고는 기본적으로 프로그램 순서가 보장되지 않습니다. 따라서 장점은 여러 읽기 요청이 동시에 처리 될 수 있고 프로그램 순서에 따라 나중에 쓰기로 우회 할 수 있으며 스스로 순서가 맞지 않게 완료 할 수있어 읽기 대기 시간을 숨길 수 있다는 것입니다. 이러한 유형의 모델은 다른 메모리 참조에 대한 읽기 누락을 계속할 수있는 동적 예약 프로세서에 특히 유용합니다. 컴파일러 최적화에 의해 수행되는 액세스의 제거조차도 많은 재정렬을 허용합니다.
프로그래밍 인터페이스
프로그래밍 인터페이스는 동기화 작업 사이에서 프로그램 순서를 전혀 유지할 필요가 없다고 가정합니다. 모든 동기화 작업은 명시 적으로 레이블이 지정되거나 식별됩니다. 런타임 라이브러리 또는 컴파일러는 이러한 동기화 작업을 시스템 사양에서 요구하는 적절한 순서 유지 작업으로 변환합니다.
그런 다음 시스템은 프로세스 내 위치에 대한 종속성을 방해하지 않고 원하는 방식으로 동기화 작업 간의 작업 순서를 변경할 수 있어도 순차적으로 일관된 실행을 보장합니다. 이를 통해 컴파일러는 원하는 재정렬을위한 동기화 지점간에 충분한 유연성을 제공하고 프로세서가 메모리 모델에서 허용하는만큼 재정렬을 수행 할 수 있습니다. 프로그래머의 인터페이스에서 일관성 모델은 적어도 하드웨어 인터페이스만큼 약해야하지만 동일 할 필요는 없습니다.
번역 메커니즘
대부분의 마이크로 프로세서에서 레이블을 유지 메커니즘을 주문하기 위해 번역하는 것은 동기화로 레이블 된 각 작업 전후에 적절한 메모리 배리어 명령을 삽입하는 것과 같습니다. 추가 지침을 시행하고 방지 할 순서를 나타내는 개별로드 / 스토어와 함께 지침을 저장합니다. 그러나 작업은 일반적으로 드물기 때문에 지금까지 대부분의 마이크로 프로세서가 취한 방식이 아닙니다.
용량 제한 극복
우리는 프로세서 캐시 메모리에서만 하드웨어에서 자동 복제 및 일관성을 제공하는 시스템에 대해 설명했습니다. 프로세서 캐시는 로컬 주 메모리에 먼저 복제되지 않고 참조시 원격으로 할당 된 데이터를 직접 복제합니다.
이러한 시스템의 문제점은 로컬 복제 범위가 하드웨어 캐시로 제한된다는 것입니다. 블록이 캐시 메모리에서 교체되면 다시 필요할 때 원격 메모리에서 가져와야합니다. 이 섹션에서 설명하는 시스템의 주요 목적은 복제 용량 문제를 해결하는 것이지만 여전히 효율성을 위해 하드웨어 일관성과 캐시 블록의 세분화를 제공하는 것입니다.
3 차 캐시
복제 용량 문제를 해결하기위한 한 가지 방법은 크고 느린 원격 액세스 캐시를 사용하는 것입니다. 이는 기계의 노드 자체가 소규모 다중 프로세서이고 성능을 위해 더 크게 만들 수있는 기능을 위해 필요합니다. 또한 로컬 프로세서 캐시 메모리에서 교체 된 복제 된 원격 블록을 보유합니다.
캐시 전용 메모리 아키텍처 (COMA)
COMA 시스템에서 전체 주 메모리의 모든 메모리 블록에는 연결된 하드웨어 태그가 있습니다. 메모리 블록에 할당 된 공간이 항상 보장되는 고정 노드는 없습니다. 데이터는 데이터를 액세스 / 유인하는 노드의 주요 메모리로 동적으로 마이그레이션되거나 복제됩니다. 원격 블록에 액세스하면 어트랙션 메모리에 복제되어 캐시로 가져와 하드웨어에 의해 두 위치에서 일관성이 유지됩니다. 데이터 블록은 어트랙션 메모리에 상주 할 수 있으며 한 곳에서 다른 곳으로 쉽게 이동할 수 있습니다.
하드웨어 비용 절감
비용 절감은 특수 하드웨어의 일부 기능을 기존 하드웨어에서 실행되는 소프트웨어로 이동하는 것을 의미합니다. 소프트웨어가 하드웨어 캐시보다 주 메모리에서 복제 및 일관성을 관리하는 것이 훨씬 쉽습니다. 저비용 방법은 주 메모리에서 복제 및 일관성을 제공하는 경향이 있습니다. 일관성을 효율적으로 제어하려면 지원의 다른 각 기능 구성 요소가 하드웨어 전문화 및 통합의 이점을 누릴 수 있습니다.
연구 노력은 특수 하드웨어에서 액세스 제어를 수행하고 소프트웨어 및 상용 하드웨어에 다른 활동을 할당하는 것과 같이 다양한 접근 방식으로 비용을 낮추는 것을 목표로합니다. 또 다른 접근 방식은 소프트웨어에서 액세스 제어를 수행하는 것이며, 특수 하드웨어 지원없이 상용 노드 및 네트워크에서 일관된 공유 주소 공간 추상화를 할당하도록 설계되었습니다.
병렬 소프트웨어에 대한 의미
완화 된 메모리 일관성 모델은 병렬 프로그램이 원하는 충돌 액세스를 동기화 지점으로 표시해야합니다. 프로그래밍 언어는 일부 변수를 동기화로 레이블링하는 지원을 제공하며, 그런 다음 컴파일러에 의해 적절한 순서 유지 명령어로 변환됩니다. 컴파일러가 공유 메모리에 대한 액세스 순서를 변경하는 것을 제한하기 위해 컴파일러는 자체적으로 레이블을 사용할 수 있습니다.