Operator MemoryInterfaceAnalyzer

Operator Library: Debugging

MemoryInterfaceAnalyzer operator는 Memory 인터페이스의 데이터 흐름에 대한 정보를 제공합니다. 이미지 데이터나 제어 신호를 변경, 추가 또는 제거하지 않습니다.

[중요] 런타임 테스트

이 operator는 런타임 중에 설계를 테스트하고 분석하기 위한 것입니다. debugging을 위해 operator를 사용하기 전에 설계를 빌드(합성)하고, 타겟 하드웨어에 로드한 다음, 실제 이미지 처리를 실행해야 합니다.

이 Operator는 VisualApplets 내의 디자인 시뮬레이션용이 아닙니다.

operator를 사용하여 블로킹 조건을 감지하고 여러 Memory operator가 사용 가능한 Memory 대역폭을 공유하는 방식을 모니터링할 수 있습니다. 공유 Memory 개념에 대한 자세한 내용은 Application Note: Shared Memory 및 ' Shared Memory Concept '를 참조하십시오.

MemoryInterfaceAnalyzer operator는 RAM 타입의 리소스를 사용하는 기존 Memory operator에 연결된 경우에만 작동합니다. operator는 지정된 RAM 포트(RamResourceId)에 연결되어 데이터 흐름을 모니터링합니다. Frame Grabber RAM (DRAM)을 사용하는 각 Memory operator에는 쓰기 인터페이스와 읽기 인터페이스가 모두 있습니다.

  • 쓰기 인터페이스(Write Interface):

    Memory operator가 쓰기 액세스를 요청하면 Memory 컨트롤러는 가능한 경우 액세스를 허용합니다. 액세스 허용 여부는 연결된 모든 Memory operator와 현재 읽기 또는 쓰기 요청에 따라 다릅니다. 쓰기 인터페이스는 다음 상태 중 하나일 수 있습니다.

    • 쓰기 전송(Write Transfer):

      operator가 쓰기 액세스를 요청하고 Memory 컨트롤러가 요청을 허용할 때 쓰기 전송이 발생합니다.

    • 쓰기 대기(Write Wait):

      operator가 쓰기 액세스를 요청했지만 Memory 컨트롤러가 현재 다른 Memory 인터페이스의 요청을 처리 중인 경우 요청이 허용되지 않습니다. operator가 쓰기 액세스를 대기합니다.

    • 쓰기 유휴(Write Idle):

      operator가 쓰기 액세스를 요청하지 않고 있으며 쓰기 인터페이스가 현재 사용되지 않고 있습니다.

  • 읽기 인터페이스(Read Interface):

    Memory operator가 읽기 액세스를 요청하면 Memory 컨트롤러는 가능한 경우 액세스를 허용합니다. 액세스 허용 여부는 연결된 모든 Memory operator와 현재 읽기 또는 쓰기 요청에 따라 다릅니다. 읽기 인터페이스는 다음 상태 중 하나일 수 있습니다.

    • 읽기 전송(Read Transfer):

      operator가 읽기 액세스를 요청하고 Memory 컨트롤러가 요청을 허용할 때 읽기 전송이 발생합니다.

    • 읽기 대기(Read Wait):

      operator가 읽기 액세스를 요청했지만 Memory 컨트롤러가 현재 다른 Memory 인터페이스의 요청을 처리 중인 경우 요청이 허용되지 않습니다. operator가 읽기 액세스를 대기합니다.

    • 읽기 유휴(Read Idle):

      operator가 읽기 액세스를 요청하지 않고 있으며 읽기 인터페이스가 현재 사용되지 않고 있습니다.

아래 이미지는 MemoryInterfaceAnalyzer가 지정된 Memory 인터페이스에 연결되는 방식을 보여줍니다. 각 인터페이스는 다음으로 구성됩니다.

  • Memory operator의 request signal, 그리고

  • 액세스를 허용하거나 거부하는 Memory 컨트롤러의 acknowledge signal.

각 Memory operator에는 쓰기 인터페이스와 읽기 인터페이스가 모두 있습니다. 아래 예시에서 MemoryPortId는 1입니다.

읽기 인터페이스는 읽기 주소를 Memory로 전송하는 과정만을 설명합니다. 이는 읽기 주소를 memory controller로 전송하면 항상 Memory 오퍼레이터로의 읽기 데이터 전송이 시작된다고 가정할 수 있기 때문입니다.

shared memory 개념에 대한 자세한 내용은 Application Note: Shared Memory 및 ' Shared Memory Concept '를 참조하십시오.

MemoryInterfaceAnalyzer 오퍼레이터는 지정된 측정 기간(MeasurementPeriod) 동안 memory 오퍼레이터가 다음 각 상태에서 소비하는 시간을 측정합니다.

  • Write Transfer

  • Write Wait

  • Write Idle

  • Read Transfer

  • Read Wait

  • Read Idle

오퍼레이터는 읽기 파라미터를 통해 이러한 결과를 제공합니다. 측정값만 보고하고 데이터를 처리하지 않으므로 MemoryInterfaceAnalyzer에는 입력 또는 출력 포트가 없습니다.

I/O Properties

Property Value
Operator Type O

Supported Link Format

없음

Parameters

RamResourceId
Type static write parameter
Default 0
Range [0, 사용 가능한 RAM 인터페이스 수 - 1]

이 파라미터는 메모리 인터페이스가 모니터링되고 있는 memory 오퍼레이터의 RAM 리소스 ID를 지정합니다.

지정된 RAM 리소스 ID에 할당된 memory 오퍼레이터가 없는 경우 해당 디자인은 유효하지 않습니다.

MeasurementPeriod
Type 동적/정적 쓰기 파라미터
Default 1000
Range [1, 1000]

이 파라미터는 성능 측정 기간을 밀리초 단위로 계산합니다.

측정 기간의 정의는 시간 비율을 분석하고 평균값을 계산하는 데 중요합니다.

WriteTransferFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 데이터가 Memory에 기록되는 MeasurementPeriod 내의 사이클 백분율을 계산합니다.

쓰기 전송은 오퍼레이터가 쓰기 액세스를 요청하고 memory controller가 이를 승인할 때 발생합니다.

WriteWaitFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 memory 오퍼레이터가 쓰기 액세스를 요청했지만 memory controller가 이를 거부한 MeasurementPeriod 내의 사이클 백분율을 계산합니다.

쓰기 전송은 오퍼레이터가 쓰기 액세스를 요청하고 memory controller가 이를 승인할 때만 발생합니다.

WriteIdleFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 쓰기 인터페이스가 사용되지 않는 MeasurementPeriod 내 사이클의 백분율을 계산합니다. 쓰기 요청이 발행되지 않으므로 승인되는 요청도 없습니다.

ReadTransferFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 메모리에서 데이터를 읽는 동안 MeasurementPeriod 내 사이클의 백분율을 계산합니다.

읽기 전송은 오퍼레이터가 읽기 접근을 요청하고 메모리 컨트롤러가 이를 승인할 때 발생합니다.

ReadWaitFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 메모리 오퍼레이터가 읽기 접근을 요청하지만 메모리 컨트롤러가 이를 거부하는 MeasurementPeriod 내 사이클의 백분율을 계산합니다.

읽기 전송은 오퍼레이터가 읽기 접근을 요청하고 메모리 컨트롤러가 이를 승인할 때만 발생합니다.

ReadIdleFraction
Type 동적 읽기 파라미터
Default 0
Range [0, 100]

이 파라미터는 읽기 인터페이스가 사용되지 않는 MeasurementPeriod 내 사이클의 백분율을 계산합니다. 읽기 요청이 발행되지 않으므로 승인되는 요청도 없습니다.

WriteReadRatio
Type 동적 읽기 파라미터
Default 0.0
Range [0.0, 1000.0]

이 파라미터는 성공적인 쓰기 전송 대 성공적인 읽기 전송의 비율을 지정합니다. 관찰된 메모리 오퍼레이터에서 버퍼 오버플로우가 발생할 수 있는지 나타내는 데 도움이 됩니다.

  • WriteReadRatio ≤ 1: 쓰여진 데이터보다 같거나 더 많은 데이터가 읽힙니다.

  • WriteReadRatio > 1: 읽힌 데이터보다 더 많은 데이터가 쓰여집니다. 이는 버퍼 오버플로우로 이어질 수 있습니다.

  • WriteReadRatio = 0: 데이터가 쓰여지지 않습니다.

  • WriteReadRatio = 1000: 데이터가 읽히지 않습니다.