エンベデッド・ペリフェラルIPユーザーガイド

ID 683130
日付 9/21/2020
Public
ドキュメント目次
1. 概要 2. Avalon® -ST Multi-Channel Shared Memory FIFOコア 3. Avalon® -STシングルクロックFIFOコアおよびデュアルクロックFIFOコア 4. Avalon® -STシリアル・ペリフェラル・インターフェイス・コア 5. SPIコア 6. SPI Slave to Avalon® Master Bridgeコア/JTAG to Avalon® Master Bridgeコア 7. インテル eSPIスレーブコア 8. eSPI to LPCブリッジコア 9. イーサネットMDIOコア 10. インテルFPGA 16550互換UARTコア 11. UARTコア 12. JTAG UARTコア 13. インテル FPGA Avalon® Mailboxコア 14. インテル FPGA Avalon® ミューテックス・コア 15. インテル FPGA Avalon® I2C (Master) コア 16. インテル FPGA I2C Slave to Avalon® -MM Master Bridgeコア 17. インテルFPGA Avalon® コンパクト・フラッシュ・コア 18. EPCS/EPCQAシリアル・フラッシュ・コントローラー・コア 19. インテルFPGAシリアル・フラッシュ・コントローラー・コア 20. インテルFPGAシリアル・フラッシュ・コントローラーIIコア 21. インテルFPGA汎用クアッドSPIコントローラー・コア 22. インテルFPGA汎用クアッドSPIコントローラーIIコア 23. インターバル・タイマー・コア 24. インテルFPGA Avalon FIFOメモリーコア 25. オンチップメモリー (RAMおよびROM) コア 26. Optrex 16207 LCDコントローラー・コア 27. PIOコア 28. PLLコア 29. DMAコントローラー・コア 30. Modular Scatter-Gather DMAコア 31. Scatter-Gather DMAコントローラー・コア 32. SDRAMコントローラー・コア 33. トライステートSDRAMコア 34. Video Sync GeneratorコアとPixel Converterコア 35. インテル FPGA Interrupt Latency Counterコア 36. パフォーマンス・カウンター・ユニット・コア 37. ベクトル割り込みコントローラー・コア 38. Avalon® -STデータ・パターン・ジェネレーター・コアとデータ・パターン・チェッカー・コア 39. Avalon® -STテスト・パターン・ジェネレーター・コアとテスト・パターン・チェッカー・コア 40. システムIDペリフェラル・コア 41. Avalon® Packets to Transactions Converterコア 42. Avalon® -STマルチプレクサー・コアとデマルチプレクサー・コア 43. Avalon® -ST Bytes to Packets ConverterコアとPackets to Bytes Converterコア 44. Avalon® -ST Delayコア 45. Avalon® -STラウンド・ロビン・スケジューラー・コア 46. Avalon® -ST Splitterコア 47. Avalon® -MM DDR Memory Half Rate Bridgeコア 48. インテル FPGA GMII to RGMIIコンバーター・コア 49. インテル FPGA MII to RMIIコンバーター・コア 50. インテルFPGA HPS GMII to TSE 1000BASE-X/SGMII PCSブリッジコア 51. インテル FPGA HPS EMAC to Multi-rate PHY GMIIアダプターコア 52. インテル FPGA MSI to GICジェネレーター・コア

37.8.1.4. ファネル・レイテンシー

ファネル・レイテンシーは、割り込みファネルでコンテキストの切り替えに必要な時間です。ファネル・レイテンシーには、レジスターの保存と復元、プリエンプションの管理、スタックポインターの管理が含まれます。ファネル・レイテンシーは、次の要因によって決まります。

  • 個別の割り込みスタックが使用されるか
  • 命令のロードと格納に必要なクロックサイクル数
  • 割り込みで異なるレジスターセットへの切り換えが必要か
  • 割り込みが同じレジスターセット内の別の割り込みをプリエンプトしているか
  • レジスターセット内でのプリエンプトが許可されるか

レジスターセット内のプリエンプションには特別な注意が必要です。割り込みで同じレジスターセットに割り当てられている別の割り込みをプリエンプトできる場合、HAL VICドライバーは特別なファネルコードを提供します。この場合、ファネルでは、レジスターの内容の保存および復元に追加のオーバーヘッドが発生します。BSPを作成する際に、レジスターセット内のプリエンプションは、VICドライバーのaltera_vic_driver_enable_preemption_rs_<n> 設定を使用して制御することができます。

注: 密結合メモリーにより、 Nios® IIプロセッサーはロードまたはストア命令を1クロックサイクルで実行することができます。密結合ではないオンチップメモリーを使用する場合は、プロセッサーには2クロックサイクルが必要です。
表 385.  単一スタックのHALレイテンシー
ファネルタイプ ロードまたはストアに必要なクロックサイクル
  1 2
レジスターセット内のプリエンプションが無効になっているシャドー・レジスター・セット 10 13
レジスターセット内のプリエンプションが有効になっているシャドー・レジスター・セット 42

同じレジスターセット (sstatus.SRS=0)

64

同じレジスターセット (sstatus.SRS=0)

26

異なるレジスターセット (sstatus.SRS=1)

32

異なるレジスターセット (sstatus.SRS=1)

表 386.  個別の割り込みスタックのHALレイテンシー
ファネルタイプ ロードまたはストアに必要なクロックサイクル
  1 2
レジスターセット内のプリエンプションが無効になっているシャドー・レジスター・セット 11

別の割り込みをプリエンプトしない (sstatus.IH=0)

14

別の割り込みをプリエンプトしない (sstatus.IH=0)

12

別の割り込みをプリエンプトする (sstatus.IH=1)

15

別の割り込みをプリエンプトする (sstatus.IH=1)

レジスターセット内のプリエンプションが有効になっているシャドー・レジスター・セット 42

同じレジスターセット (sstatus.SRS=0)

64

同じレジスターセット (sstatus.SRS=0)

27
  • 異なるレジスターセット (sstatus.SRS=1)
  • 別の割り込みをプリエンプトしない (sstatus.IH=0)
33
  • 異なるレジスターセット (sstatus.SRS=1)
  • 別の割り込みをプリエンプトしない (sstatus.IH=0)
28
  • 異なるレジスターセット (sstatus.SRS=1)
  • 別の割り込みをプリエンプトする (sstatus.IH=1)
34
  • 異なるレジスターセット (sstatus.SRS=1)
  • 別の割り込みをプリエンプトする (sstatus.IH=1)

上の2つの表に関して、最も小さいレイテンシーは次の条件で発生することに注目してください。

  • 異なるレジスターセット — シャドー・レジスター・セットの切り替え。ISRは中断されるタスクとは異なるレジスターセットで実行されており、レジスターの保存および復元が必要ありません。
  • レジスターセット内のプリエンプション (ネスト化) が無効になっている。

逆に、最大のレイテンシーは次の条件で発生します。

  • 同じレジスター・セット — シャドー・レジスター・セットの切り替えなし。ISRは中断されるタスクと同じレジスターセットで実行されており、ファネルコードでレジスターを保存および復元する必要があります。
  • レジスターセット内のプリエンプションが有効になっている。

これらの2つの重要な要素のうち、プリエンプションはレイテンシーに最も大きな違いをもたらします。プリエンプションを無効にすると、他の要素に関係なく、はるかに小さいレイテンシーがもたらされます。