인터럽트 레이텐시

Interrupt latency

컴퓨팅에서 인터럽트 지연은 인터럽트가 생성된 시점부터 인터럽트의 소스가 [1]처리될 때까지의 경과시간입니다.많은 운영 체제에서 장치는 장치의 인터럽트 핸들러가 실행되자마자 서비스됩니다.인터럽트 지연은 마이크로프로세서 설계, 인터럽트 컨트롤러, 인터럽트 마스킹 및 운영체제(OS)의 인터럽트 처리 [2]방법에 의해 영향을 받을 수 있습니다.

배경

인터럽트 레이텐시, throughput, 프로세서 사용률 사이에는 통상 트레이드오프가 있습니다.인터럽트 레이텐시를 개선하는 CPU 및 OS 설계의 많은 기술은 throughput을 저하시키고 프로세서 사용률을 높입니다.throughput을 높이는 기술은 인터럽트 지연을 증가시키고 프로세서 사용률을 높일 수 있습니다.마지막으로 프로세서 사용률을 낮추려고 하면 인터럽트 지연이 증가하고 throughput이 저하될 수 있습니다.

최소 인터럽트 지연은 주로 인터럽트 컨트롤러 회로와 그 구성에 의해 결정됩니다.인터럽트 레이텐시의 지터에 영향을 주는 경우도 있어 시스템의 실시간스케줄러빌리티에 큰 영향을 줄 가능성이 있습니다.인텔 APIC 아키텍처는 대량의 인터럽트 레이텐시 [citation needed]지터를 생성하는 것으로 잘 알려져 있습니다.

최대 인터럽트 지연 시간은 주로 OS가 인터럽트 처리에 사용하는 방법에 따라 결정됩니다.예를 들어, 대부분의 프로세서는 코드의 중요한 부분을 보호하기 위해 인터럽트 핸들러의 실행을 늦추고 인터럽트를 비활성화할 수 있도록 합니다.이러한 크리티컬 섹션 실행 중에는 크리티컬섹션 내에서 안전하게 실행할 수 없는 모든 인터럽트핸들러가 차단됩니다(모든 크리티컬섹션이 종료된 후 인터럽트핸들러를 재기동하는데 필요한 최소한의 정보가 저장됩니다).따라서 블록된 인터럽트의 인터럽트 지연은 크리티컬섹션의 마지막까지 연장됩니다.또한 블록이 배치되어 있는 동안 도달한 우선순위가 동일하고 높은 인터럽트도 포함됩니다.

많은 컴퓨터 시스템은 낮은 인터럽트 레이텐시를 필요로 합니다.특히 기계를 실시간으로 제어해야 하는 임베디드 시스템이 필요합니다.이러한 시스템은 실시간 운영 체제(RTOS)를 사용하는 경우가 있습니다.RTOS는 서브루틴의 실행 사이에 지정된 최대 시간을 넘지 않는다는 약속을 합니다.그러기 위해서는 인터럽트 지연이 사전에 정의된 최대치를 넘지 않도록 RTOS도 보증해야 합니다.

고려 사항.

고도의 인터럽트 컨트롤러는 컨텍스트스위치 중 오버헤드와 효과적인 인터럽트 지연을 최소화하기 위해 다수의 하드웨어 기능을 구현합니다.여기에는 다음과 같은 기능이 포함됩니다.

  • 무정전 명령을[1] 통한 최소 지터
  • 메모리[1] 시스템의 제로 웨이팅 상태
  • 전환 가능한 레지스터[1] 뱅크
  • 테일 체인[1]
  • 스태킹이[1] 느리다
  • 연착[1]
  • [1] 프리엠프션
  • Sleep On Exit[1] 기능

또한 하드웨어는 특정 인터럽트 지연을 상황에 견딜 수 있도록 하기 위해 인터럽트 지연 시간을 단축하는 데 사용할 수 있는 다른 많은 방법이 있습니다.여기에는 버퍼 및 흐름 제어가 포함됩니다.예를 들어 대부분의 네트워크 카드에서는 송수신 링버퍼, 인터럽트 레이트 제한 및 하드웨어 흐름 제어가 구현되어 있습니다.버퍼를 사용하면 데이터를 전송할 수 있을 때까지 데이터를 저장할 수 있습니다.또, 플로우 제어에 의해서, 버퍼가 가득 찬 경우, 데이터를 폐기하지 않고, 네트워크 카드를 사용해 통신을 일시 정지할 수 있습니다.

최신 하드웨어에서는 인터럽트 환율 제한도 구현되어 있습니다.이를 통해 하드웨어는 인터럽트가 발생할 때마다 프로그램 가능한 최소 시간 동안 대기하도록 함으로써 인터럽트 스톰이나 라이브 잠금을 방지할 수 있습니다.인터럽트 레이트 제한은 인터럽트 처리에 소요되는 시간을 줄여 프로세서가 유용한 작업에 더 많은 시간을 할애할 수 있도록 합니다.이 시간을 초과하면 소프트(복구 가능) 또는 하드(복구 불가능) 오류가 발생합니다.

참고 항목

참조

  1. ^ a b c d e f g h i Yiu, Joseph (2016-04-01). "A Beginner's Guide on Interrupt Latency - and Interrupt Latency of the Arm Cortex-M processors". Arm Community. Archived from the original on 2019-06-15. Retrieved 2019-06-15.
  2. ^ Lin, Feng; Ashley, David T.; Burke, Michael J.; Heymann, Michael (1999). "A Hybrid System Solution of the Interrupt Latency Compatibility Problem". SAE Transactions. 108: 2112–2125. ISSN 0096-736X. JSTOR 44733861.