(57)【要約】【課題】オーバレイメカニズムを含む装置、遅延を個別にプログラミング可能なオーバレイメカニズムをそれぞれが有する複数の装置を含むシステム、またはデータをオーバレイする方法。【解決手段】装置１はオーバレイメカニズム４を有しており、第１のメモリロケーション５，１０へ向けられたアクセスを第２のメモリロケーション７，１１へリダイレクトするように構成されている。オーバレイメカニズム４は、リダイレクションの場合に第２のメモリロケーション７，１１へのアクセスを遅延させるように構成されている。データをオーバレイする方法は、第１のメモリロケーション５，１０へ向けられたアクセスを第２のメモリロケーション７，１１へリダイレクトするステップＳ１と、リダイレクションの場合に第２のメモリロケーション７，１１へのアクセスを選択的に所定の時間だけ遅延させるステップＳ２と、を含む。【選択図】図１
2018049622.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリロケーション（５，１０）へ向けられたアクセスを、第２のメモリロケーション（７，１１）へリダイレクトするように構成された、または構成可能な、オーバレイメカニズム（４）を含む装置（１）であって、
前記オーバレイメカニズム（４）は、リダイレクションの場合に前記第２のメモリロケーション（７，１１）へのアクセスを遅延させるように構成されている、または構成可能である、
装置（１）。
【請求項２】
前記第１のメモリロケーション（５，１０）は、第１のタイプのメモリまたはフラッシュタイプのメモリであり、かつ／または、前記第２のメモリロケーション（７，１１）は、異なるタイプのメモリまたはＳＲＡＭタイプのメモリである、
請求項１記載の装置（１）。
【請求項３】
前記オーバレイメカニズム（４）の遅延は、プログラミング可能である、
請求項１または２記載の装置（１）。
【請求項４】
前記オーバレイメカニズム（４）の遅延は、前記第１のメモリロケーション（５，１０）へのアクセス時間と、前記第２のメモリロケーション（７，１１）へのアクセス時間と、の差を少なくとも部分的に補償するように構成されている、
請求項１から３までのいずれか１項記載の装置（１）。
【請求項５】
前記オーバレイメカニズム（４）は、メモリロケーション（５，７，１０，１１）へのアクセス時間に応じて、前記遅延を整合するように構成されており、
前記オーバレイメカニズム（４）は、以下のように構成されている、すなわち、前記第１のメモリロケーション（５，１０）への１回目のアクセスに続いて、前記第１のメモリロケーション（５，１０）への２回目のアクセスが行われて、前記第１のメモリロケーション（５，１０）の連続するメモリロケーションへのアクセス時に、前記第１のメモリロケーション（５，１０）へのアクセス時間が変化し、その結果、前記第１のメモリロケーション（５，１０）への前記１回目のアクセスの時間よりも短く変化したアクセス時間が発生したか否かを検出し、前記１回目のアクセスの時間よりも短く変化したアクセス時間が発生したならば、前記第２のメモリロケーション（７，１１）へのアクセス時に、前記第１のメモリロケーション（５，１０）の前記変化したアクセス時間に合わせて前記遅延を整合する、
請求項１から４までのいずれか１項記載の装置（１）。
【請求項６】
前記装置は、少なくとも１つのバスまたは少なくとも１つのクロスバ（９）によって、前記第１および前記第２のメモリロケーション（５，７，１０，１１）に接続可能である、
請求項１から５までのいずれか１項記載の装置（１）。
【請求項７】
前記装置（１）は、プロセッサ（１ａ）を含み、
前記オーバレイメカニズム（４）は、前記第１のメモリロケーション（５，１０）へのアクセスを要求する前記プロセッサ（１ａ）の処理オペレーションを遅延させ、または、前記バス（９）または前記クロスバから前記プロセッサ（１ａ）へのデータの転送を遅延させて、前記第２のメモリロケーション（７，１１）へのアクセスを遅延させるように構成されている、
請求項６記載の装置（１）。
【請求項８】
前記オーバレイメカニズム（４）は、前記プロセッサ（１ａ）の少なくとも１つのサイクルを引き延ばすことによって、処理オペレーションを遅延させるように構成されている、
請求項７記載の装置（１）。
【請求項９】
前記オーバレイメカニズム（４）は、前記第１のメモリロケーション（５，１０）における第１のターゲットメモリレンジへのアクセスを、前記第２のメモリロケーション（７，１１）における第１のオーバレイメモリレンジへリダイレクトし、第２のターゲットメモリレンジへのアクセスを第２のオーバレイメモリレンジへリダイレクトするように構成されており、
前記オーバレイメカニズム（４）は、リダイレクションの場合に、前記第１のターゲットメモリレンジへのアクセス時には第１の遅延を適用し、前記第２のターゲットメモリレンジへのアクセス時には、前記第１の遅延とは異なる第２の遅延を適用するように構成されている、
請求項１から８までのいずれか１項記載の装置（１）。
【請求項１０】
前記オーバレイメカニズム（４）は、リダイレクションの場合に前記第２のメモリロケーション（７，１１）へのアクセス時間を、ターゲットアクセス時間と等しいかまたはそれよりも長くなるよう、延長するように構成されている、
請求項１から９までのいずれか１項記載の装置（１）。
【請求項１１】
前記第１のメモリロケーション（５，１０）へのアクセス時間は、前記第２のメモリロケーション（７，１１）への未遅延のアクセス時間よりも長く、前記ターゲットアクセス時間は、前記第１のメモリロケーション（５，１０）へのアクセス時間と等しいかまたはそれよりも長い、
請求項１０記載の装置（１）。
【請求項１２】
前記ターゲットアクセス時間は、プログラミング可能である、
請求項１０または１１記載の装置（１）。
【請求項１３】
前記オーバレイメカニズム（４）は、前記第２のメモリロケーション（７，１１）への変動する未遅延のアクセス時間を補償するように構成されている、
請求項１から１２までのいずれか１項記載の装置（１）。
【請求項１４】
前記オーバレイメカニズム（４）は、オーバレイオペレーションが実行されていることを検出すると、インクリメントカウンタまたはデクリメントカウンタをスタートまたは初期化するように構成されており、
前記オーバレイメカニズム（４）は、前記カウンタのスタート以降または初期化以降、予め定められたクロックサイクル数が経過したことを検出すると、前記第２のメモリロケーション（７，１１）から受け取ったデータを前記装置（１）のプロセッサ（１ａ）が使用可能であると通報するように構成されている、
請求項１から１３までのいずれか１項記載の装置（１）。
【請求項１５】
第１のプロセッサ（１ａ）を含む、請求項１から１４までのいずれか１項記載の第１の装置（１）と、
第２のプロセッサ（１ａ）を含む、請求項１から１４までのいずれか１項記載の第２の装置（１）と、
複数のバスセグメント（９ａ〜９ｄ）を含むバス構造と、
複数のメモリ（６，８，１０，１１）と、
を含むシステムであって、
前記第１のプロセッサ（１ａ）および前記第２のプロセッサ（１ａ）は、前記バス構造（９，９ａ〜９ｄ）を介して、前記メモリ（６，８，１０，１１）に接続されており、
前記第１の装置（１）のオーバレイメカニズム（４）の遅延と、前記第２の装置（１）のオーバレイメカニズム（４）の遅延と、を個別にプログラミング可能である、
システム。
【請求項１６】
前記バスセグメント（９ａ〜９ｄ）は、１つまたは複数のブリッジ（１２）を介して接続されており、
前記メモリ（６，８，１０，１１）は、前記バス構造（９）のそれぞれ異なるセグメント（９ａ〜９ｄ）に接続されており、
前記第１のプロセッサ（１ａ）および前記第２のプロセッサ（１ａ）は、前記バス構造（９ａ〜９ｄ）のそれぞれ異なるセグメント（９ａ〜９ｄ）に接続されており、
前記メモリ（６，８，１０，１１）は、ターゲットメモリレンジとオーバレイメモリレンジとを含み、
前記第１のプロセッサ（１ａ）のオペレーションに対応づけられたターゲットメモリレンジへの前記第１のプロセッサ（１ａ）のアクセス時間と、前記第１のプロセッサ（１ａ）のオペレーションに対応づけられたオーバレイメモリレンジへの前記第１のプロセッサ（１ａ）の未遅延のアクセス時間と、の間の関係は、前記第２のプロセッサ（１ａ）のオペレーションに対応づけられたターゲットメモリレンジへの前記第２のプロセッサ（１ａ）のアクセス時間と、前記第２のプロセッサ（１ａ）のオペレーションに対応づけられたオーバレイメモリレンジへの前記第２のプロセッサ（１ａ）の未遅延のアクセス時間と、の間の関係とは異なり、
ターゲットメモリレンジへのアクセス時間とオーバレイメモリレンジへのアクセス時間との間の異なる前記関係を補償できるように、前記第１の装置（１）の前記オーバレイメカニズム（４）の遅延と、前記第２の装置（１）の前記オーバレイメカニズムの遅延と、を個別にプログラミング可能である、
請求項１５記載のシステム。
【請求項１７】
データをオーバレイする方法であって、前記方法は、
第１のメモリロケーション（５，１０）へ向けられたアクセスを第２のメモリロケーション（７，１１）へリダイレクトするステップ（Ｓ１）と、
リダイレクションの場合に前記第２のメモリロケーション（７，１１）へのアクセスを選択的に所定の時間だけ遅延させるステップ（Ｓ２）と、
を含む方法。
【請求項１８】
前記方法は、前記第２のメモリロケーション（７，１１）へのアクセスの遅延に少なくとも適用される遅延またはターゲットアクセス時間をプログラミングするステップを含む、
請求項１７記載の方法。
【請求項１９】
前記第１のメモリロケーション（５，１０）へのアクセスと、前記第２のメモリロケーション（７，１１）へのアクセスと、のアクセス時間差を少なくとも部分的に補償するように、アクセス遅延時間またはターゲットアクセス時間を選定する、
請求項１７または１８記載の方法。
【請求項２０】
前記方法は、メモリロケーション（５，７，１０，１１）へのアクセス時間に応じて、前記アクセス遅延時間を整合するステップを含み、
前記アクセス遅延時間を整合するステップは、
・前記第１のメモリロケーション（５，１０）への１回目のアクセスに続いて、前記第１のメモリロケーション（５，１０）への２回目のアクセスが行われて、前記第１のメモリロケーション（５，１０）の連続するメモリロケーションへのアクセスにより、前記第１のメモリロケーション（５，１０）へのアクセス時間が変化し、その結果、前記第１のメモリロケーション（５，１０）への前記１回目のアクセスの時間よりも短く変化したアクセス時間が発生したか否かを検出し、
・前記１回目のアクセスの時間よりも短く変化したアクセス時間が発生したならば、前記第２のメモリロケーション（７，１１）へのアクセス時に、前記第１のメモリロケーション（５，１０）の変化したアクセス時間に合わせて、前記アクセス遅延時間を整合する、
ステップを含む、
請求項１７から１９までのいずれか１項記載の方法。
【請求項２１】
データをオーバレイする前記方法は、前記第１のメモリロケーション（５，１０）へのアクセスを要求するプロセッサ（１ａ）の少なくとも１つの処理サイクルを引き延ばすことにより、前記アクセス遅延時間を整合するステップを含み、または、
データをオーバレイする前記方法は、前記プロセッサ（１ａ）を前記第１および第２のメモリロケーション（５，７，１０，１１）に接続する少なくとも１つのバス（９，９ａ〜９ｄ）から、前記プロセッサ（１ａ）へのデータの転送を遅延させて、前記第２のメモリロケーション（７，１１）へのアクセスを遅延させるステップを含む、
請求項１７から２０までのいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明によるいくつかの実施形態は、オーバレイメカニズムを含む装置に関する。さらに本発明によるいくつかの実施形態は、少なくとも２つの装置を含むシステムに関する。さらに本発明によるいくつかの実施形態は、データをオーバレイする方法に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本発明による１つの実施形態によれば、以下のようなオーバレイメカニズムを含む装置が形成される。すなわちこのオーバレイメカニズムは、第１のメモリロケーションへ向けられたアクセスを第２のメモリロケーションへリダイレクトするように構成されている、または構成可能である。このオーバレイメカニズムは、リダイレクションの場合に第２のメモリロケーションへのアクセスを遅延させるように構成されている、または構成可能である。
【０００３】
本発明による別の実施形態によれば、上述のような第１の装置を含むシステムが形成され、この第１の装置は第１のプロセッサを含む。さらにこのシステムは、請求項１から１４までのいずれか１項記載の第２の装置も含んでおり、この第２の装置は第２のプロセッサを含む。さらにこのシステムは、複数のバスセグメントから成るバス構造と複数のメモリとを含む。第１のプロセッサおよび第２のプロセッサは、バス構造を介してメモリと接続されている。この場合、第１の装置のオーバレイメカニズムの遅延と、第２の装置のオーバレイメカニズムの遅延を、個別にプログラミング可能である。
【０００４】
データをオーバレイする方法は、第１のメモリロケーションへ向けられたアクセスを第２のメモリロケーションへリダイレクトするステップと、リダイレクションの場合に第２のメモリロケーションへのアクセスを選択的に所定の時間だけ遅延させるステップと、を含んでいる。
【０００５】
次に、本発明によるいくつかの実施形態について、添付の図面を参照しながら説明する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態による機能方式を含む装置を概略的に示す図であって、データのリダイレクションを実行することができ、かつ第２のデータロケーションへのアクセスを遅延させることのできるオーバレイメカニズムを、この装置が含むことを示す図である。
【図２】第２の実施形態を概略的に示す図であって、データアクセスによって、ターゲットメモリとオーバレイメモリとにアクセス可能であり、データアクセスをターゲットメモリからオーバレイメモリへオーバレイ可能であることを示す図である。
【図３】第３の実施形態を概略的に示す図であって、いくつかのサイクルを遅延または引き延ばすことにより、どのようにしてオーバレイアクセスを延期できるのかを示す図である。
【図４】第４の実施形態を概略的に示す図であって、装置と第１および第２のメモリロケーションとの間のインタラクションを、バスを介してどのようにインタラクトできるのかに着目して示す図である。
【図５】図４に示した実施形態の拡張バージョンである第５の実施形態を示す図であって、装置と第１のタイプのメモリロケーションと第２のタイプのメモリロケーションのうちの少なくとも１つから成る複数の動作主体が含まれることを示す図である。
【図６】図４または図５に示した実施形態の拡張バージョンである第６の実施形態を示す図であって、接続すべき少なくとも２つのバスセグメントまたはバスの間のインタフェースを成す少なくとも１つのブリッジによって、どのようにして複数のバスまたはバスセグメントがインタラクトできるのか、を示す図である。
【図７Ａ】第７の実施形態による装置および装置とバスとのインタフェースを示す図であって、遅延ユニットが装置内に設けられていることを示す図である。
【図７Ｂ】第７の実施形態による装置および装置とバスとのインタフェースを示す図であって、遅延ユニットがバスと装置との間のインタフェースに設けられていることを示す図である。
【図８】データをオーバレイする方法がどのように動作するのかを、第２のメモリロケーションへの後続のアクセスを含め示す１つの実施形態のフローチャートである。
【発明を実施するための形態】
【０００７】
図１には第１の装置１が示されており、この装置はたとえば、少なくとも２つの外部インタフェース２，３を有する。第１のインタフェース２は、第１のメモリロケーションへ向けられたアクセスを行うことができ、第２のインタフェース３は、第２のメモリロケーションへ向けられたアクセスを行うことができる。第１および第２のメモリロケーションにアクセスするためのインタフェース２，３は、同じ物理的構造および／または論理的構造を用いることができ、これをたとえばバスとすることができる。装置１内にはオーバレイメカニズム４が設けられており、このメカニズム４は、第１のメモリロケーション５から第２のメモリロケーション７へのデータのオーバレイを制御または管理する。このオーバレイメカニズム４を、装置１の一部分であるプロセッサ１ａによって使用することができ、たとえば十分に高速なハードウェア回路を用いて（または択一的にマイクロプログラム化された回路またはプロセッサを用いて）、実現することができる。
【０００８】
この場合、データのロケーションの変更は不可視であり、またはアプリケーションソフトウェアに対しては不可視とすることができる。このためアプリケーションソフトウェアは、製品開発中、プロセッサ１ａとインタラクトすることができる。製品開発にはたとえば、エンジン管理システムのキャリブレーションを含めることができる。このことが技術的に実現可能である理由は、データのロケーションの変更が装置１内のハードウェアによって実施されることによる。装置１またはプロセッサ１ａをたとえば、デバッグ／キャリブレーションシステムによって、またはデバッグ／キャリブレーションシステムの一部であるアプリケーションソフトウェアによって、制御することができる。アプリケーションソフトウェアを装置１において、またはもっと具体的にはプロセッサ１ａにおいて、実行することもできる。
【０００９】
オーバレイメカニズム４を含む装置１を、またはデータをオーバレイする相応の方法を、第１のメモリロケーションへのアクセスを要求する装置１内のプロセッサ１ａによって制御することができる。オーバレイメカニズム４を、プロセッサ１ａの一部分としてもよいし、またはプロセッサに対応づけられた（たとえばメモリインタフェースを用いてプロセッサと接続された）専用のハードウェアとしてもよい。プロセッサ１ａ自体は、第１のメモリロケーションに記憶されているデータへのアクセスを試みることができる。信号またはデータの処理においてプロセッサ１ａは、第１のメモリロケーションに記憶されているデータを取り出す要求を、または第１のメモリロケーションにデータを記憶する要求を、転送することができる。オーバレイメカニズム４によるデータのリダイレクション後、データは第１のメモリロケーションから取り出され、または第１のメモリロケーションの代わりに第２のメモリロケーションに記憶されるので、オーバレイメカニズム４は、第１のメモリロケーションからデータを取り出す、というプロセッサの要求を、第２のメモリロケーションからデータを取り出す、という要求に変換する。ただし第２のメモリロケーションを、第１のメモリロケーションとは物理的に異なるメモリエンティティまたはメモリレンジまたはメモリ構造にあるものとすることができる。別の選択肢として、データを第１のメモリロケーションに記憶する、というプロセッサ１ａの要求を、データを第２のメモリロケーションに記憶する、という要求へ、オーバレイメカニズムによって変換することができる。オーバレイメカニズム４は、リダイレクションの場合に第２のメモリロケーションへのアクセスを遅延させるように構成されている、または構成可能である。換言すれば、データを読み出す場合に、第２のメモリロケーションから取得されたデータをたとえば、意図的に挿入されたいくらかの「余分な」遅延と共に、プロセッサ１ａへ供給することができる（この遅延は、第２のメモリロケーションからデータを取り出し、そのデータを第２のメモリロケーションからオーバレイメカニズムへ伝送するために物理的に不可避の遅延よりも長い）。データを書き込む場合にはたとえば、データの書き込み完了をプロセッサへシグナリングするのを、オーバレイメカニズムによって（意図的に）遅延させることができる。
【００１０】
装置１のオーバレイメカニズム４の遅延を、たとえばプログラミング可能とすることができる。さらにこの方法によれば、第２のメモリロケーションへのアクセスの遅延に少なくとも適用可能な遅延またはターゲットアクセス時間をプログラミングすることもできる。たとえばユーザまたはヒューマンユーザは、第１のメモリロケーションにアクセスするための時間と第２のメモリロケーションにアクセスするための遅延とを、見積もることができる。このケースでは、ユーザはアクセス時間を見積もることができるので、第１のメモリロケーションへのアクセスが可能となる前に（またはそれよりも速く）、装置１が第２のメモリロケーションへのアクセスを完了させる可能性がないよう、ユーザは、オーバレイメカニズム４またはデータをオーバレイする方法の付加的な遅延を計算することができる、または見積もることができる。
【００１１】
図２に示されているように、装置１が、特に装置１の一部とすることができるプロセッサ１ａが、データの記憶先として指定する可能性のある（またはプロセッサがデータの取り出し先とする可能性のある）ターゲットメモリ６内に、第１のメモリロケーション５をおくことができる。オーバレイメカニズム４またはデータをオーバレイする相応の方法は、第１のメモリロケーション５にデータを記憶させる代わりに、オーバレイメモリ８内にある第２のメモリロケーション７にデータを記憶させる。（１つまたは複数の）外部のインタフェース２，３も、個々のターゲットメモリ６と個々のオーバレイメモリ８とにアクセスすることができる。
【００１２】
メモリロケーション５，７を、１つのメモリ６，８内における１ビット、１バイト、または複数バイトとすることができる。別の選択肢として、ロケーション５，７をメモリ６，８全体としてもよい。１つのロケーション５，７を、１つのロケーションの一部分または１つのパーティションである複数のレンジに分割可能としてもよい。いくつかの環境では、第１のメモリロケーション５と第２のメモリロケーション７とを、同じメモリ６，８の一部分とすることができる。このケースでは、ターゲットメモリ６とオーバレイメモリ８とは、同じメモリ６，８である。ただし、第１のメモリロケーションおよび第２のメモリロケーションは一般的には、物理的に別個のメモリの一部分である（たとえばそれぞれ異なるメモリ技術を用いたメモリおよび／またはそれぞれ異なるアクセス時間を有するメモリ）。
【００１３】
オーバレイメカニズム４内に、ターゲットアドレスレンジと、ターゲットアクセスレンジに対してデータアクセスが実施されるときに代替とすべき対応づけられたリダイレクト先のアドレスレンジと、から成る、プログラミング可能なテーブルを設けることができる。この場合、リダイレクト先のアドレスレンジは、オーバレイメモリ８内および／または第２のメモリロケーション７内にある。ロケーションの変更は、装置１とインタラクトするアプリケーションソフトウェアにとっては不可視かもしれないが、好ましくは装置１内のプロセッサ１ａの要求で、デバッグ／キャリブレーションシステムの制御のもと、装置１内のハードウェア４によって、ロケーションの変更を実行することができる。プログラミング可能なテーブルを、このハードウェア４の一部とすることができる。オーバレイメカニズム４は、好ましくはハードウェア内に実装される。
【００１４】
したがって、かかる装置１によれば、アプリケーションソフトウェアを変更することなく、アドレスの論理的な変換を行うことができる。このため装置１によればたとえば、フラッシュデータテーブルをＳＲＡＭによってオーバレイすることができる。アプリケーションソフトウェアは、キャリブレーションの目的で、たとえばエンジン（またはエンジン制御ソフトウェア）のキャリブレーションの目的で、装置１に頼ることができる。アプリケーションソフトウェアを、（少なくとも部分的に）装置１またはプロセッサ１ａにおいて実行することができる。換言すれば、たとえばエンジンキャリブレーション用のソフトウェアは、エンジンのために制御パラメータを出力する装置１内において、またはプロセッサ１ａによって実行される。現実世界のシナリオによれば、第１のメモリロケーション５へのアクセス時間と、第２のメモリロケーション７へのアクセス時間と、は異なる可能性がある。第１のメモリロケーション５またはターゲットメモリ６はフラッシュタイプのメモリであり、第２のメモリロケーション７またはオーバレイメモリ８はＳＲＡＭタイプのメモリである、という場合が多いので、異なる物理特性ゆえにアクセス時間が異なることに起因して、それらのアクセス時間が相違する可能性がある。その結果、第１および第２のメモリロケーション５，７をメモリ６，８から読み出す時間がそれぞれ異なることになる。メモリアクセス時の競合に起因して、メモリ６，８および第１および第２のメモリロケーション５，７の読み出し時間が相違する可能性もある。たとえば複数の装置１が、１つのメモリロケーション５，７または１つのメモリ６，８にアクセスを試みる可能性があり、つまり同じメモリ６，８に同時にアクセスを試みる可能性があり、それによって個々のメモリロケーション５，７またはメモリ６，８の読み出し時間が長くなる。また、複数のメモリ６，８が接続された１つのバスへの多重アクセスによって、競合が発生する可能性もある。
【００１５】
装置１は、ターゲットメモリ５からの、または装置１により読み出されるオーバレイメモリ７からのデータを処理するプロセッサ１ａを含むことができる。最も多いケースでは、装置１またはプロセッサ１ａによって、ターゲットメモリ６からよりも高速にオーバレイメモリ８から、データを読み出すことができるので、慣用のシステムであるとプロセッサ１ａにより、場合によっては読み出しデータが想定よりも早めに処理される可能性がある。その結果、過度に早く処理が行われることから、プロセッサ１ａ内で誤ったデータ処理が生じるおそれがある。結果として最終的に、たとえばソフトウェアにおいていくつかのタイミングの想定が破られてしまうと、完全な機能不全が発生するおそれがある。代替案として、高速メモリ（たとえばメモリ８）を用いれば、開発モードではソフトウェアを申し分なく実行させることができるが、実際のアプリケーションシナリオにおいてもっと低速なメモリ（たとえばメモリ６）が用いられると、ソフトウェアが機能しなくなり、それによって開発モードは信頼できないものとなってしまう。
【００１６】
したがってオーバレイメカニズム４またはデータをオーバレイする相応の方法は、各ターゲットアドレスレンジごとにターゲットアクセス時間を割り当てることができる。本開示によれば、オーバレイシステムのリアルタイムパフォーマンスを、オーバレイシステムのタイミング特性の変更によって改善することができる。これを以下のように動作させることができる。すなわち、ターゲットアクセス時間によって、プロセッサ１ａからアクセスまたはターゲットアクセスを実施するのに必要とされる予期されるサイクル数を表すことができる。オーバレイ変換を実施する場合、オーバレイメモリ８へのアクセスに必要とされる目下のサイクル数がカウントされる。（たとえばオーバレイメモリ８の）アクセスに要する実際のサイクル数が、ターゲットアクセス時間よりも短ければ、プロセッサ１ａはサイクル数の相違によって引き延ばされる（ストールされる）。これによって、ターゲットメモリ６から見たならば、アクセス時間を与えるために、オーバレイメモリ８のためのアクセス時間に付加的なサイクルを加えることができるようになる。このようにして本開示によれば、オーバレイシステムのリアルタイムパフォーマンスが、オーバレイシステムのタイミング特性の変更によって改善される。したがって本開示によれば、データテーブルロケーションの問題だけでなく、データアクセス時間の問題も解決される。このことが重要であるのは、リアルタイムシステムにおいては、データのアクセス時間がクリティカルなものだからである。また、リアルタイムの考察が重要となり得るのは、（場合によっては低速な）フラッシュから（場合によっては高速な）ＳＲＡＭへのデータテーブルの切り替えによって、システムのリアルタイム特性が変化するからである。このことによって、望ましくない作用が発生する可能性がある。
【００１７】
したがってこの手法によれば、ターゲットメモリ６においてデータを読み出すことができるようになる前に（またはそれよりも高速に）、オーバレイメモリ８内に記憶されているデータが読み出される、という事態を阻止することができる。その結果、装置１またはプロセッサ１ａが、データを読み出す準備ができる前にデータを受信して処理してしまう、ということが回避される。また、プロセッサ１ａはたとえば、開発モード（メモリオーバレイ）が用いられていようといまいと、データをほぼ同じ遅延を伴って取得することができる。つまりこのことが意味するのは、オーバレイメモリ８から装置１またはプロセッサ１ａに至る信号経路において、オーバレイメカニズム４によって、装置１またはプロセッサ１ａがデータ転送のために準備完了となる前に（またはターゲットメモリが用いられるケースではそれよりも速く）、データ転送が発生してしまうような事態が阻止される、ということである。実際にはオーバレイメカニズム４を、装置１またはプロセッサ１ａの一部分とすることができ、または部分的に装置１またはプロセッサ１ａの一部分とすることができる。このケースではオーバレイメカニズム４は、たとえば、引き続き処理を実行する装置１またはプロセッサ１ａの部分への転送を阻止することができる。換言すれば、プロセッサ／装置１ａ，１内のハードウェアは、またはデータのオーバレイに関与するプロセッサ／装置１ａ，１よりも前の信号経路中のハードウェアであっても、オーバレイメモリ８から読み出されたデータを、データのオーバレイには関与しているのではなく通常の計算または処理を実行するプロセッサ１ａおよび／または装置１の他の部分へ転送することを、しばらくの期間、遅延させることができる、または阻止することができる。
【００１８】
可能性のある１つの変形態様によれば、装置１のオーバレイメカニズム４の遅延を、第１のメモリロケーション５へのアクセス時間と第２のメモリロケーション７へのアクセス時間との差を、少なくとも部分的に補償するように、構成することができる。同様に、方法における相応の変形態様によれば、第１のメモリロケーション５へのアクセスと第２のメモリロケーション７へのアクセスとのアクセス時間差が少なくとも部分的に補償されるように、アクセスを遅延させる時間またはターゲットアクセス時間が選定される。
【００１９】
この特徴によれば、アクセス時間の差を少なくとも部分的に補償することができる。オーバレイメカニズム４による第２のメモリロケーション７へのデータのアクセスが遅延されるので、第１のメモリロケーション５への装置１のダイレクトなアクセスが完了したときに、第２のメモリロケーション７へのアクセスが完了する可能性が高くなる。少なくとも達成できるのは、ＳＲＡＭタイプのメモリとすることができる第２のメモリロケーション７へのアクセス時間が、フラッシュタイプのメモリとすることができる第１のメモリロケーション５へのアクセス時間よりも短くなることが、少なくとも部分的に補償される、ということである。この特徴によれば、オーバレイメカニズム４を介した第２のメモリロケーション７へのアクセスが、所定の時間範囲または遅延時間にわたり延期または遅延される、ということを達成できる。
【００２０】
現実世界のシナリオでは、第１のメモリロケーション５へのアクセス時間が変化する可能性があるので、第１のメモリロケーション５への平均アクセス時間よりも短い、第１のメモリロケーション５へのいっそう短いアクセス時間が生じる可能性がある。換言すれば、第１のメモリロケーション５へのアクセス時間は実際には、所定の平均を伴いながらランダムなものとなる可能性がある。要求側の装置１またはプロセッサ１ａへオーバレイメカニズム４またはオーバレイ方法を介して到来する入力信号を、第１のメモリロケーション５の平均アクセス時間に向けていっそう遅延させていくにつれて、オーバレイ状態のケースにおいていっそう「現実的な」アクセス時間が達成される。このようにして装置１は、その入力を扱うまたはその入力に対処するために「準備完了状態」になることができる。装置１またはプロセッサ１ａはたとえば、メモリロケーション５，７へのアクセス時間が経過したときに、入力を扱うまたは入力に対処する準備ができている、とみなすことができる。一般的にはアプリケーションソフトウェアが、装置１またはプロセッサ１ａによって実行され、または装置１またはプロセッサ１ａと共働する。ターゲットメモリ６または第１のメモリロケーション５へのアプリケーションソフトウェアのアクセスは通常（または少なくともいくつかの状況では）、本質的にはランダムなものである。ただし一般に、ＲＡＭまたはＳＲＡＭのメモリとすることのできる第２のメモリロケーション７へのランダムアクセスに関しては、フラッシュとすることができる第１のメモリロケーション５またはターゲットメモリ６へのアクセスよりも高速なアクセスが可能である。したがってこの特徴によれば、要求側の装置１またはプロセッサ１ａが入力信号を処理可能であるときに、または入力信号が「通常のように」（オーバレイが存在しない場合に）到来するであろうときに、第２のメモリロケーション７からの信号入力が発生する見込みを高めることができるので、処理オペレーションの安定性を強化することができる。アクセス時間には、信号伝播、基本的な論理演算、およびメモリロケーション５，７から（物理的に）読み出すために必要とされる時間が含まれる可能性がある。
【００２１】
換言すれば、第２のメモリロケーション７へのアクセス時間をオーバレイメカニズム４によって遅延させることによって、装置１または装置１の一部分へのデータの入力を、装置１または装置１の一部分がその入力を扱う準備ができているときに、またはその入力が通常のようにオーバレイなしで到来するであろうときに、発生させることができるようになる。したがってシステムのリアルタイム特性は、第１のメモリロケーション５から第２のメモリロケーション７へのデータのオーバレイによっても変えられることはなく、その際に一般的には第２のメモリロケーション７によって、第１のメモリロケーション５よりも高速なアクセスが可能となる。上述の理由から、リアルタイムシステムの場合にはデータのアクセス時間がクリティカルであり、メモリロケーションオーバレイの場合にアクセス時間を整合させることによって、メモリロケーションオーバレイが用いられない場合と比べて、改善を実現することができる。
【００２２】
別の態様によれば、第１のメモリロケーション５における第１のターゲットメモリレンジ２へのアクセスを、第２のメモリロケーション７における第１のオーバレイメモリレンジへリダイレクトするように、オーバレイメカニズム４を構成することができる。オーバレイメカニズム４が、第２のターゲットメモリレンジへのアクセスを第２のオーバレイメモリレンジへリダイレクトすることもできる。リダイレクションの場合に、第１のターゲットメモリレンジへのアクセスの場合には第１の遅延を適用し、第２のターゲットメモリレンジへのアクセスの場合には、第１の遅延とは異なる第２の遅延を適用するように、オーバレイメカニズム４を構成することができる。この変形態様によれば、第１または第２のターゲットメモリレンジへ向けられたデータアクセスを、第２のメモリロケーション７における第１または第２のオーバレイメモリレンジへリダイレクトすることができる。
【００２３】
データのリダイレクト先とすることができる第１または第２のオーバレイメモリレンジは、それぞれ異なるアクセス時間を有する可能性がある。また、第１または第２のターゲットメモリレンジも、それぞれ異なるアクセス時間を有する可能性がある。一般的には少なくともある程度までは、アクセス時間は本質的にランダムなものである。たとえばこのことは、ターゲットメモリ６へのアプリケーションソフトウェアのアクセスは通常、本質的にランダムでよい、ということを意味する。一般にＳＲＡＭにおけるランダムアクセスは、フラッシュへのアクセスよりも高速であると予想される。それぞれ異なるアクセス時間を、オーバレイメカニズム４によって、およびデータをオーバレイする相応の方法によっても、考慮することができる。したがってオーバレイメカニズム４は、それぞれ異なるアクセス時間を補償することができる。換言すれば、第１および第２のメモリレンジ各々へのアクセス時間を、個々の第１および第２のターゲットメモリレンジへのアクセス時間に個別に整合させることができるので、予期されるアクセス時間に固有に整合させることができる。
【００２４】
別の態様によれば、オーバレイメカニズム４は、リダイレクションの場合に第２のメモリロケーション７へのアクセス時間を、ターゲットアクセス時間と等しくなるよう、またはそれよりも長くなるよう、延ばすように構成されている。この変形態様によれば、第２のメモリロケーション７へのアクセス時間が少なくとも最短時間となるようにすることができる。換言すれば、第２のメモリロケーション７からの要求（たとえばデータ読み出し要求）に応じて装置１に到来したデータは、装置１または装置１のプロセッサ１ａによって「過度に早く」は処理されず、もしそのようなことになると、誤った処理が引き起こされることになるし、または少なくともリアルタイム特性にゆがみが生じることになる（その理由はたとえば、データが過度に早く到来することから、誤ったデータを含む入力信号が考慮されてしまう可能性があるからである）。特に、プロセッサへの個々のデータ入力が極めてクリティカルな場合に、この変形態様を適用することができる。換言すれば、メモリロケーションまたはメモリレンジにおける内容またはデータが、プロセッサ１ａに過度に早く到来してしまうこと、ひいては深刻な事態をもたらしかねない誤った出力をプロセッサ１ａが生成してしまうこと、をいかなる場合であっても回避するために、最小遅延を指定するのが有用となり得るのである。このコンテキストにおいて「過度に早く」とは、第１のメモリロケーションまたはターゲットメモリ６に対して要求された入力が予期される時点よりも前に、という意味である。
【００２５】
１つの態様によれば、第１のメモリロケーション５へのアクセス時間を、第２のメモリロケーション７への未遅延のアクセス時間よりも長くすることができる。ターゲットアクセス時間を、第１のメモリロケーション５へのアクセス時間と等しくすることができ、またはそれよりも長くすることができる。これによって達成されるのは、第２のメモリロケーション７へのアクセスが、装置１が第１のメモリロケーション５にアクセスしようとするときに予期されるであろうアクセス時間と、少なくとも同じ長さだけ要するようになることである。したがってターゲットアクセス時間について、第１のメモリロケーション５へのアクセス時間に対応する最短時間を定義することができる。これによって、以下のことを保証することができる。すなわち、プロセッサ１ａによる要求は、第２のメモリロケーション７へリダイレクトされ、たとえばオーバレイメカニズム４により事前に処理またはバッファリングされたデータを供給することができるが、第１のメモリロケーション５に記憶された対応するデータが利用できるようになる前には、この要求を装置１によって履行するまたは完了することはできない。
【００２６】
別の態様によれば、ターゲットアクセス時間をプログラミング可能とすることができる。このことは、装置１のユーザアクセス可能なレジスタ内の値をユーザ（またはユーザに提供されるソフトウェア）が定義することによって、行うことができる。これによってユーザは、たとえば装置１によりエンジンをキャリブレーションする場合など、リアルタイム性がクリティカルであるパラメータが、予期される時点よりも早く装置１（またはプロセッサ１ａ）によってアクセスされる可能性がないように、上述の値を指定することができる。このような機能拡張によって、プログラミング可能なターゲットアクセス時間を指定すれば、時間的なセキュリティバッファも考慮することができる。
【００２７】
オーバレイメカニズム４のさらに別の態様によれば、オーバレイオペレーションが実施されたことが検出されると、インクリメントカウンタまたはデクリメントカウンタをスタートまたは初期化するように、オーバレイメカニズム４を構成することができる。これは付加的な遅延の考えられる実現態様であり、このような遅延は、プロセッサのロードストアユニットにおいて（またはオーバレイメカニズムによって提供されるユニットにおいて）、「データが有効である」とみなされるポイントを引き延ばす（または遅延させる）ことによって、実現することができる。さらに、カウンタのスタート以降または初期化以降、予め定められた回数のクロックサイクルが経過したことが検出されると、第２のメモリロケーション７から受け取ったデータをプロセッサ１ａが利用可能であることを通報するように、オーバレイメカニズム４を構成することもできる。このコンセプトを利用すれば、簡単な実装を実現することができる。デクリメントカウンタの場合であれば、カウンタがゼロになったときのみ、そのデータを有効であるとみなすことができ、次いで処理するために、またはプロセッサパイプラインに転送するために、そのデータを装置１またはプロセッサ１ａが利用可能である、とみなすことができる。このような機能拡張を用いることによっても、それぞれ異なるメモリアクセス間のタイミング補償が実現される。
【００２８】
オプションとしてオーバレイメカニズム４を、コードとデータのアクセスの両方をカバーするように拡張すれば、様々なソフトウェア・オーバー・ジ・エア（software-over-the-air, SOTA）の実装により要求されるフラッシュからフラッシュへのオーバレイに付随するタイミングの相違を補償する際に、このオーバレイメカニズム４が場合によっては有用なものとなり得る。
【００２９】
１つのオプションとしての機能拡張によれば、ターゲットメモリ６およびオーバレイメモリ８または第１のメモリおよび第２のメモリを、同じメモリとすることができる。このケースではオーバレイメカニズム４を使用して、メモリからのすべてのアクセスに対して付加的な遅延サイクルを追加することができる。これをパフォーマンスまたは電力消費をチューニングするために用いてもよい。
【００３０】
さらにこの機能拡張を使用すれば、オーバレイメカニズム４を、ロックステップ方式の実装のための二重化の領域において採用することができる。これにより、遅延タイマの安全なオペレーションをサポートすることができる。
【００３１】
ここで開示したオーバレイメカニズム４および相応の方法を使用することによって、プログラミング可能な遅延を実現することができ、それによってデータアクセスのオーバレイ中、それぞれ異なるメモリレンジへのメモリアクセス２，３間のタイミングの相違を補償することができる。
【００３２】
図３には、オーバレイがどのように動作するのかの一例が、種々のアクセス時間と遅延時間または引き延ばし時間とを含むテーブルを用いて示されている。左側の列には、種々のターゲットメモリ６が記入されている。この例の場合、種々のメモリには、フラッシュ１、フラッシュ２またはフラッシュ３の名前が付けられている。これらをフラッシュタイプのメモリとすることができるが、基本的にこれらをＳＲＡＭタイプまたは他のメモリタイプとしてもよく、たとえばＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭなどのようなメモリタイプとしてもよい。これら３つの異なるメモリまたはメモリロケーションであるフラッシュ１、フラッシュ２およびフラッシュ３を、物理的に同じターゲットメモリ６内にあるものとしてもよいが、これらを異なるターゲットメモリ６内にあるものとしてもよい。この例では、ターゲットメモリ６を第１のメモリロケーション５に対応させることができるが、第１のメモリロケーション５を、ターゲットメモリ６の一部または１つのレンジとしてもよい。フラッシュ１、フラッシュ２またはフラッシュ３は、それぞれ異なるターゲットアクセス時間を有する可能性がある。ターゲットアクセス時間を、オーバレイを実行する装置１のプロセッサ１ａの処理サイクルまたはオーバレイを実行する装置１による処理サイクルを単位として、またはバスサイクルを単位として、測定または記述することができる。図示されたこの例によれば、フラッシュ１は１２サイクル（プロセッササイクルまたはバスサイクル）のターゲットアクセス時間を有しており、フラッシュ２は１５サイクルのターゲットアクセス時間を有しており、フラッシュ３は（サイクルを測定単位とする）２１のターゲットアクセス時間を有している。第１のメモリロケーション５は、個々のターゲットメモリ６の少なくとも一部分であることから、第１のメモリロケーション５とターゲットメモリ６とについて、相応しい表現が適用される（ときには「第１のメモリロケーション」とも称する）。換言すれば、第１のメモリロケーションとは、ターゲットメモリの一部分またはターゲットメモリ全体を指すものである。同様に、第２のメモリロケーションとは、前述のようにターゲットメモリの一部分を指す場合もあるし、または他のターゲットメモリの一部分、または他のターゲットメモリ全体を指す場合もある。
【００３３】
オーバレイ中、データ（またはデータアクセス）が、第２のメモリロケーション７へ向けてオーバレイされる（これはたとえば、データをオーバレイするメカニズム４を用いて、またはデータをオーバレイする方法によって行われる）。第２のメモリロケーション７は、オーバレイメモリ８の少なくとも一部分であるが、オーバレイメモリ８全体としてもよい。それぞれ異なる「第２のメモリロケーション」７を、それぞれ異なるオーバレイメモリ８内にあるものとしてもよい。つまり、それぞれ異なるオーバレイメモリ８は、たとえば１つの集積回路（ＩＣ）内の同じメモリの一部分でなくてもよく、あるいはたとえば、オーバレイメカニズム４が実施される、またはオーバレイ方法が実装されたＩＣに、インタフェースを介して接続されただけの外部メモリであってもよい。
【００３４】
オーバレイメモリ８の少なくとも一部分とすることができる第２のメモリロケーション７へのオーバレイアクセスも、ときには行われる。また、オーバレイを実行する装置１またはプロセッサ１ａの処理サイクルで、時間を測定することもできる。図示されているテーブルによれば、第２のメモリロケーション７をオーバレイするためのオーバレイアクセス時間は、「第１のメモリロケーション」５各々について、またはターゲットメモリロケーションであるフラッシュ１とフラッシュ２とフラッシュ３とで、それぞれ異なるサイクル数となっている。つまり、ターゲットメモリロケーションであるフラッシュ１へのアクセスは１０サイクルを要し、ターゲットメモリロケーションであるフラッシュ２へのアクセスは１４サイクルを要し、ターゲットメモリロケーションであるフラッシュ３は１５サイクルを要する。明らかにこれらの例によれば、第２のメモリロケーション７へのアクセス（オーバレイアクセス時間）は、第１のメモリロケーション５へのアクセス（ターゲットアクセス時間）よりも短くなっている。したがって、第１のメモリロケーション５へのアクセスと第２のメモリロケーション７へのアクセスとの間の時間差を補償する目的で、オーバレイを実行する装置１またはプロセッサ１ａが遅延される、または引き延ばされる。遅延されるサイクル数（すなわちこのサイクル数によって、オーバレイメモリへのアクセスが遅延され、またはこのサイクル数の期間中、プロセッサが引き延ばされる）は、ターゲットアクセス時間とオーバレイアクセス時間との間の差である（双方ともにサイクルを測定単位とする）。これらの例によれば、フラッシュ１へのオーバレイアクセス時間は（すなわちプロセッサが「フラッシュ１」へのアクセスを要求し、「フラッシュ１」に対応する「第２のメモリロケーション」へ向けてオーバレイまたはリダイレクトされる場合）、２サイクルだけ遅延され（延長され）、フラッシュメモリ２へのオーバレイアクセス時間は１サイクルだけ遅延され、さらにフラッシュ３へのオーバレイアクセス時間は６サイクルだけ遅延される。上述のサイクル数だけ個々の第２のメモリロケーションへのアクセスを遅延させることによって、第１のメモリロケーション５へダイレクトに向けられたアクセス（ターゲットアクセス時間）と対比させた場合、アクセスが同じタイミング（またはそれよりもさらに後）で発生する程度まで、アクセスが遅延される。このようにすることで、第２のメモリロケーション７へオーバレイされる第１のメモリロケーション５に対してデータを要求する装置１またはプロセッサ１ａのアクセスは、第１のメモリロケーション５へのアクセスが可能になるまで（または完了するまで）、不可能となる（または完了されない）。このため、プロセッサ１ａまたは装置が誤ったデータを処理し、その結果、誤った出力を生成してしまうかもしれない事態が回避される。
【００３５】
ただし実際には、第２のシナリオも考えられる（これについては図３の下のブロックに示されている）。図３の下方のブロックには、「フラッシュ１」の第１のメモリロケーション５の一例が示されている。このケースでは、第１のメモリロケーション５へのターゲットアクセス時間は、やはり１２サイクルを要する。しかし、先に述べた例による「フラッシュ１」メモリへのアクセスとは異なり、ここでは（「フラッシュ１」のためのオーバレイメモリである）第２のメモリロケーション７へのオーバレイアクセス時間は、１５サイクルを要する。この場合には明らかに、オーバレイメモリ８における第２のメモリロケーション７へのアクセスのほうが、対応する第１のメモリロケーション５に記憶されたデータへのアクセスに対してプロセッサが予期する時間よりも、長くかかっている。第１のメモリロケーション５にアクセスする場合のサイクル数と、第２の（オーバレイ）メモリロケーション７にアクセスする場合のサイクル数と、の差は、ここでは３であるが、ただし符号は負である。このケースでは、第２のメモリロケーション７へのアクセス（オーバレイアクセス時間）は、第１のメモリロケーション５へのアクセス（ターゲットアクセス時間）よりも長くかかっているので、装置１またはプロセッサ１ａに対しては０サイクルの遅延または０サイクルの引き延ばしである。たとえオーバレイアクセス時間がターゲットアクセス時間よりも長くても、プロセッサ１ａまたは装置１によってデータが過度に早く処理されることはあり得ないので、このことは問題にはならない。この例によれば、第１のメモリロケーション５に対して一般に予期される時点よりもいくらか遅く到来する入力に対処するために、一般的には、装置１またはプロセッサ１ａにおいて実行されるアルゴリズムが実装される。したがって、オーバレイ方法またはオーバレイメカニズムに関して、何も問題は生じない。
【００３６】
このようなシナリオは、同じ第２のメモリロケーションに対し同時に多数のアクセスが発生したときに、生じる可能性がある。このケースでは、第２のメモリロケーション７へのアクセス時間が著しく長くなるため、このアクセスは、第１のメモリロケーション５へのアクセスよりも長くかかる可能性がある。また、このようなシナリオは、信号経路が長い場合に、または信号が通過するのに時間を要する多数の障害物が信号経路に含まれる場合に、発生する可能性がある。この種の障害物として挙げられるのはたとえば、長い遅延を引き起こすバス上の多数のブリッジである。このような長い遅延は、５，１０，１５，２５またはそれよりも多くのプロセスサイクルとなる可能性がある。
【００３７】
つまり換言すれば、オーバレイメモリ８は、常にターゲットメモリ６よりも高速であるとはかぎらない。このことは、システム内のいずれの場所に、要求側のプロセッサ１ａに対し相対的にターゲットメモリ６とオーバレイメモリ８が存在するのかに左右されるし、さらにターゲットメモリ６とバスシステムとオーバレイメモリ８の競合にも左右される。ターゲットメモリ６へのアプリケーションソフトウェアのアクセスは通常、本質的にランダムである。一般にランダムアクセスの場合、フラッシュよりもＳＲＡＭのほうが高速であると見込まれる。ターゲットアクセス時間がオーバレイアクセス時間よりも短いケースでは、付加的な遅延は追加されない。
【００３８】
図４には、オーバレイシステム全体が示されている。装置１によって、オーバレイメカニズム４またはデータをオーバレイする方法を実施することができる。図４によれば装置１は、第１のメモリロケーション１０および第２のメモリロケーション１１と、バス９を介して接続されている。この場合、メモリロケーション１０，１１の双方は、同じバス９を介して接続されている。装置１はオーバレイメカニズム４を有しており、これは第１のメモリロケーション１０へ向けられたアクセスを第２のメモリロケーション１１へリダイレクトするように構成されており、またはそのように構成可能である。したがって、装置１内のプロセッサ１ａまたは装置１（あるいは個々のソフトウェア）が第１のメモリロケーション１０に記憶させようとしているデータは、その代わりに第２のメモリロケーション１１に記憶される。このようにすれば、代わりに第２のメモリロケーション１１に情報が記憶されるので、第１のメモリロケーション１０が消耗するのを回避することができる。第２のメモリロケーション１１にデータを記憶させるアクセス時間は、第１のメモリロケーション１０にデータを記憶させるアクセス時間とは異なる可能性がある。
【００３９】
換言すれば、データテーブルが変更されるたびにフラッシュメモリ（たとえば第１のメモリロケーション１０）を書き換えるのではなく、ＳＲＡＭ（たとえば第２のメモリロケーション１１）にデータ値を配置しておくことができる。フラッシュの書き換えは時間を浪費する可能性があるし、しかもフラッシュの消耗を引き起こしかねない。一般的に、第１のメモリロケーション１０をフラッシュとして実装することができ、第２のメモリロケーションをＳＲＡＭとして実装することができる。
【００４０】
図４によれば、バス９の装置１の側で遅延が加えられる。この個所で遅延を加える方が、第２のメモリロケーション１１を含むことができるオーバレイメモリ８において（中央で）加えるよりもよい。その理由は、オーバレイメモリ８は、要求側のプロセッサがシステム内でどのくらい遠くに離れているのかを、または（第１のメモリロケーション１０を含むことができる）いずれのターゲット６に対しオーバレイしているのかを、把握しておらず、したがって複雑な遅延システムを組み込まないかぎりは、「平均的な」遅延しか供給できないからである。このようにするとしたならば、オーバレイオペレーションが実施されていることを識別するために、バス９を介して付加的な情報を供給しなければならない。
【００４１】
プロセッサ１ａにこのメカニズム（たとえばここで説明しているオーバレイメカニズム）を設ければ、目下のオーバレイロジックを再利用することができる。基本的にほぼすべてのＳＲＡＭを、システム内でオーバレイメモリ８として用いることができる（ＤＳＰＲ，ＰＳＰＲ，ＬＭＵ，ＤＬＭＵ，ＥＭＥＭ）。ＳＲＡＭ（オーバレイメモリ８または第２のメモリロケーション１１）ではなく、要求側のノード（プロセッサ１ａ）において（オーバレイメカニズム４内に）遅延ロジックを実装することによって、よりシンプルなシステムが得られるようになる。
【００４２】
第２のメモリロケーション１１におけるアクセス時間を低減することができる。この低減を、第２のメモリロケーション１１における競合の個数を第１のメモリロケーション１０よりも少なくすることによって、生じさせることができる。たとえば、システム内の１つの装置１が、（たとえばメモリロケーション１０を含む）同じ第１のメモリに対してデータを要求することが多いと、レスポンスまたはアクセス時間が大幅に増加する可能性がある。基本的に、同じことは（競合について述べるならば）、第１のメモリロケーション１０を含むメモリ以外の他のいかなるメモリにも当てはまり、これには第２のメモリロケーション１１を有するメモリが含まれる。
【００４３】
第１および第２のメモリロケーション１０，１１も、それぞれ異なるタイプのメモリとすることができる。たとえば、第１のメモリロケーション５，１１はフラッシュタイプであり、第２のメモリロケーション７，１１はＳＲＡＭタイプである。よって、それぞれ異なる物理的特性ゆえに、アクセス時間もそれぞれ異なる可能性がある。なぜならば、フラッシュタイプのメモリのアクセス時間は、ＳＲＡＭタイプのメモリよりも短いからである。
【００４４】
さらに別の態様によれば、オーバレイメカニズム４を、メモリロケーション１０，１１の（既知のまたは推定された）アクセス時間に応じて遅延を整合させるように、構成することができる。オーバレイメカニズム４および／または対応する方法は、以下のことを検出することができる。すなわち、（たとえばアクセスされるメモリアドレスに関して）第１のメモリロケーション１０への１回目のアクセスに続いて、第１のメモリロケーション１０への２回目のアクセスが行われ、それによって、第１のメモリロケーション１０の連続するメモリロケーションへのアクセス時に、第１のメモリロケーション１０へのアクセス時間の変化が引き起こされたか否か、を検出することができる。その結果として、第１のメモリロケーション１０への１回目のアクセスの時間よりも短く変化したアクセス時間が生じる可能性がある。このケースでは、第２のメモリロケーション１１へのアクセス時、（メモリオーバレイ実行時に適用される）遅延を、第１のメモリロケーション１０の変化したアクセス時間に整合させることができる。このようにすれば、２回目の（連続した）アクセス時に短くなったアクセス時間を補償することができる。
【００４５】
多くの実際のシナリオでは、プロセッサ１ａを含むことのできる装置１は、メモリロケーション１０，１１における連続する（たとえば直後に続くメモリロケーションにある）データ、連鎖型のデータ、または連想型のデータを要求する可能性がある。したがって、このようなシナリオの場合には、メモリ１０，１１内の連続的なメモリロケーション、連鎖型のメモリロケーション、または連想型のメモリロケーションを、（たとえば連続するアクセスのシーケンスにおけるメモリロケーション１０，１１への２回目のアクセス以降）、装置１はいっそう高速にアクセスすることができる。
【００４６】
たとえば、連想型の、連鎖型の、または連続するメモリロケーション５，７を、メモリロケーションへの１回目のアクセスに応答して、第１のメモリロケーション５のプリフェッチバッファにロードすることができ、これによってプリフェッチメモリ内に記憶されたデータにいっそう高速にアクセスできるようになる。装置１は、このようなアクセス時間の変化を認識することができる。（２回目およびそれ以降の連続するアクセス時に）変化したアクセス時間は、一般にはメモリロケーションへの１回目のアクセス時間よりも短くなる。したがって、装置１またはプロセッサ１ａにおいて実行されるプログラムは、連想型の、連鎖型の、または連続するメモリロケーション１０，１１を、装置１またはプロセッサ１ａがアクセスするときには、早めの入力を予期することができる。このため、オーバレイメカニズム４および対応する方法の遅延を、早めの入力に対して整合させることができる。オーバレイメカニズム４の遅延によって、第２のメモリロケーション１１へのアクセス時間を、第１のメモリロケーション１０へのアクセス時間まで引き延ばすことができ、または、遅延と第２のメモリ１１へのアクセス時間を合わせると、第１のメモリロケーション１０へのアクセス時間よりも長い時間となるように、第２のメモリ１１へのアクセス時間に遅延を加えることができる。
【００４７】
１つの態様によれば、少なくとも１つのバス９を介して、装置１を第１および第２のメモリロケーション１０，１１と接続可能にすることができ、またはそれらと接続することができる。バスは、信号またはデータの十分にテストされた交換を提供することができるので、バス９を介して、定義された、既知の、または予測可能な手法による通信を行うことができる。とはいえ、たとえば競合が発生した場合などに、アクセス時間に何らかの不確定性が生じる可能性もある。
【００４８】
別の態様によれば、オーバレイメカニズム４を、第２のメモリロケーション７への変動する未遅延のアクセス時間を補償するように、構成することができる。実際のメモリ（たとえば第２のメモリロケーション）にアクセスする際、必要とされる時間が統計的に変動する可能性がある。この変形態様によるオーバレイメカニズム４によって、第２のメモリロケーション７への統計的に変動するこの種のアクセス時間を、補償することができる。
【００４９】
図４に示した実施形態を、図１に示した装置と組み合わせることができる。このケースでは、図１に示した第１のメモリロケーション２へ向けられたアクセスと、第２のメモリロケーション３へ向けられたアクセスと、の双方が、第１および第２のメモリロケーション１０，１１にアクセスする目的で、図４に示した（同じ）バス９を使用することができる。換言すれば、メモリロケーション１０はメモリロケーション２に対応し、メモリロケーション１１はメモリロケーション３に対応する。
【００５０】
図４に示した実施形態を、図２に示した実施形態と組み合わせることもできる。このケースでは、バス９はデータアクセス（ライン）１９に対応する。第１のメモリロケーション１０は、ターゲットメモリ６の１つのセクションまたはターゲットメモリ６全体に対応し、第２のメモリロケーション１１は、オーバレイメモリ８の１つのセクションまたはオーバレイメモリ８全体に対応する。ターゲットメモリ６のセクションを、図２の第１のメモリロケーション５と同じものとしてもよい。また、オーバレイメモリ８のセクションを、図２の第２のメモリロケーション７と同じものとしてもよい。
【００５１】
図５には、さらに別の実施形態が示されている。基本的にこの態様には、図４においてすでに説明したものと同じ構成要素が含まれており、たとえば装置１、バス９、第１のメモリロケーション１０および第２のメモリロケーション１１が含まれている。よって、図４におけるそれらの構成要素およびそれらの相互作用の説明を参照されたい。図１と図４または図２と図４との組み合わせについて論じたときに説明したそれらの構成要素の相互作用に関する詳細な点は、ここでも適用される。
【００５２】
図５には、構成要素１，１０，１１の１つの実体を２つ以上使用可能なこと、および多数の構成要素を１つの（共有される）バス９に依存させることが可能なこと、が示されている。たとえば複数の（たとえば２〜１０個の）装置１が、１つのバス９に依存している。さらに基本的に、複数の（たとえば２〜１０個の）第１のメモリロケーション１０および／または第２のメモリロケーション１１も、１つのバス９にアクセス可能または１つのバス９を使用可能である。つまり１つの典型的なシステムは、複数のプロセッサ１ａ、複数のフラッシュメモリおよび／または複数のオーバレイメモリを含むことができ、またはそれらから成るようにすることができ、それらをたとえば１つのバスまたは１つのバスのそれぞれ異なるセグメントを介して接続することができる。このメカニズムを用いれば、各プロセッサのオーバレイオペレーションを、フラッシュメモリおよびオーバレイメモリのアクセス時間に関する各プロセッサの視点に合わせて、別個に調整することができる。本開示によれば、各ターゲットレンジごとに、つまりは各フラッシュメモリごとに、それぞれ異なるターゲットアクセス時間を定義することができる。第１のメモリロケーション１０を、必須ではないが、１つの定められたタイプのメモリとすることができる。たとえば、フラッシュタイプのメモリを、第１のメモリロケーション１０のために使用することができる。第２のメモリロケーション１１も、必須ではないが、１つの定められたタイプのメモリとすることができる。とはいえ、第２のメモリロケーション１１のために、ＳＲＡＭタイプのメモリを使用してもよい。基本的には、第１のメモリロケーション１０および第２のメモリロケーション１１を、ＳＲＡＭタイプまたはフラッシュタイプのメモリとすることができる。
【００５３】
基本的に、（ＳＲＡＭタイプまたはフラッシュタイプのメモリとすることができる）１つのメモリを、第１のメモリロケーション１０および第２のメモリロケーション１１として共有して用いることができる。このケースでは、メモリのそれぞれ異なるセクションまたはレンジが、それぞれ異なる目的のために用いられ、１つは第１のメモリロケーションとして、他の１つは第２のメモリロケーションとして用いられる。ただし好ましくは、（１つまたは複数の）第１のメモリロケーションと（１つまたは複数の）第２のロケーションが、それぞれ異なるタイプの（それぞれ異なるアクセス時間を有する）メモリを使用する。
【００５４】
図５に示したような実施形態によれば、メモリロケーション１０，１１またはメモリ６，８へのアクセス時に、競合が発生する可能性がある。これは複数の「動作主体」に起因するものであり、特にすべてがメモリロケーション１０，１１に対してデータを要求する複数の装置１に起因する。これは（ほとんど）一緒に発生する可能性があり、つまりほとんど時間的にパラレルな状態で発生する可能性がある。したがって、装置１において実行されるアルゴリズムまたはプログラムをプログラミングするヒューマンユーザは、自身の経験に基づき、さらにはバス９のトポロジーおよび動作主体に関する自身の知識に基づき、第１のメモリロケーション１０への予期されるアクセス時間がどのくらいに長さになる可能性があるのか、を予測することができる。よって、ヒューマンユーザは、（たとえばソフトウェアの一部にコンフィギュレーション命令を挿入することによって）、（オーバレイメカニズム４と一体化した、またはそれと共働する）１つの何らかの装置１が、第１のメモリロケーション１０へアクセスするのにどれぐらいの時間がかかるのか、という入力を、オーバレイメカニズム４またはデータをオーバレイする方法に供給することができる。さらにユーザは、セキュリティ上クリティカルなアプリケーションに対して、いかなる場合であっても、たとえば９９％または９９．９％以上の確率で、装置１が第１のメモリロケーション１０にアクセス可能な長さとなるよう、予期されるアクセス時間を選定することもできる。したがって、メモリオーバレイが行われる場合に、メモリオーバレイなしのオペレーションよりも装置が速く動作しない、ということが確実になされる、または保証される。これは、オーバレイの状況に対し長いアクセス時間をユーザ指定できることによる。オーバレイの状況に対するアクセス時間を、プログラミング可能な遅延によって定義することができる。
【００５５】
ただし、本開示の範囲内で、アクセス時間を固定的に（ユーザが変更できないように）プログラミングしておくこともできる。このケースでは、第１のメモリロケーション１０へアクセスするために一般にどのぐらいの長さがかかるのかを、装置製造メーカーが指定できる。このことは、この種のシステムを用いた作業の熟練者が、予期されるアクセス時間に関して十分な知識をもたない場合に、好適になる可能性がある。
【００５６】
第３のオプションとして挙げられるのは、第１のメモリロケーション１０へのアクセスに対するデフォルトアクセス時間をプログラミングすることである。ユーザはこのデフォルト値を、特別な目的のために変更することができる。この種のデフォルトアクセス時間は、たとえばエンジンをキャリブレーションするときに（またはエンジン制御ソフトウェアを設計および微調整するときに）、テスト段階初期に過度に多くの変更を伴うことなく作業システムを確保する目的で、有用なものとなり得る。あとになってからキャリブレーション中に、いっそう多くの特定の知識を入手可能であり、また、キャリブレーション（微調整）中に詳細について考察するためにいっそう多くのリソースも利用できるケースであれば、第１のメモリロケーション１０のデフォルトアクセス時間を整合することができる。
【００５７】
さらに本開示によれば、装置１が第１のメモリロケーション１０に記憶させようとする可能性のある種々のパラメータまたはデータのために、これら３つの様々なオプションをミックスすることもできる。
【００５８】
基本的に本開示によれば、かかる特徴を図４に示した実施形態についても適用することができる。とはいえ、それらの特徴はどちらかといえば、多数の構成要素１，１０，１１を備えたシステムに適用されることになる。なぜならばこの種のシステムの場合には、アクセス時間の決定がいっそう複雑になるからである。
【００５９】
図６にはさらに別の実施形態が示されており、これによればバス９の種々のセグメント９ａ，９ｂ，９ｃ，９ｄを備えたシステムが教示される。バスのセグメント９ａ〜９ｄ各々は、１つまたは複数のバスラインを有する。これらのバスラインは、１つのセグメント９ａ〜９ｄ内で連続した状態とすることができる。種々のセグメントは、少なくとも１つのブリッジ１２によって（部分的に）互いに接続されている。この実施例の場合、バスセグメント９ａ，９ｂ，９ｄは、１つのブリッジ１２を介して接続されている。また、バスセグメント９ａ，９ｂ，９ｃは、２つのブリッジ１２を介して直列に接続されている。さらにバスセグメント９ａ，９ｂ，９ｃは、列挙されているように電気的に接続されている。基本的に（図示されていないが）本開示において、バスセグメント９ａ〜９ｄを円形のデザインにすることも可能である。ブリッジ１２をたとえば、共通のクロック１３から到来する共通のクロック信号１４によってクロック制御することができる。要約すれば、ブリッジ１２を、バスセグメント９ａ〜９ｄ間で信号またはデータを交換するために用いることができ、さらにバスセグメント９ａ〜９ｄを（時間的に）同期させるために用いることもできる。それにもかかわらず、ブリッジ１２によって意図しない遅延が引き起こされる。そのような遅延は、バス９を介した伝送時間に、つまり第１のバスセグメント９ａ〜９ｄ内の１つの構成要素１，１０，１１から、これとは異なるバスセグメント９ａ〜９ｄ内の第２の構成要素１，１０，１１への伝送時間に、多大な影響を及ぼす可能性がある。
【００６０】
バスセグメント９ａ〜９ｄは、装置１、第１のメモリロケーション１０および第２のメモリロケーション１１のうち、少なくとも１つを有することができる（またはそれと直接接続することができる）。たとえば、図示されているバスセグメント９ａは、装置１と、３つの異なる第２のメモリロケーション１１と、にアクセスする（またはそれらを接続している）。バスセグメント９ｂは、３つの装置１と、１つの第１のメモリロケーション１０と、１つの第２のメモリロケーション１１と、にアクセスする、またはそれらを接続している。バスセグメント９ｃは、もっぱら第１および第２のメモリロケーション１０，１１だけにアクセスし、またはそれらだけを接続しており、装置１を有していない。したがってこのケースでは、セグメントＣ内またはバスセグメント９ｃ内のメモリロケーションがアクセスされ、このアクセスは、他のバスセグメント９ａ，９ｂ，９ｄ内の装置１によってしか起こり得ない。図示されているバスセグメント９ｄは、装置１と、３つの異なる第２のメモリロケーション１１と、を有する。基本的に、第１のバスセグメント９ａ〜９ｄ内の装置１は、他のバスセグメント９ａ〜９ｄ内のメモリロケーション１０，１１にもアクセスすることができる。これをメモリリソースの稼働率に依存させることができ、またはデータ記憶の二重化に適ったものとすることができる。たとえば、１つのセグメントＡ〜Ｄが（たとえばＥＳＤまたは半導体の経時的な変質により）損傷した場合に、他のセグメントＡ〜Ｄにデータを記憶させることができる。１つのセグメントＡ〜Ｄが外部のセグメントである場合には特に、これを適用することができる。このコンテキストにおいて「外部の」とは、１つのチップの一部分であるバスセグメントではなく、他のセグメントＡ〜Ｄまたは他のバスセグメント９ａ〜９ｄの少なくともいくつかを含むチップと、（ブリッジ１２を含むことができる）インタフェースを介して、外部で接続されているバスセグメントのことである。
【００６１】
「意図的な信号遅延」（これはオーバレイオペレーションの場合に適用される）は、装置１の側で発生し、データアクセスがリダイレクトされるオーバレイメモリ８であるメモリロケーション１０，１１の側では発生しない。実際にはこれは、装置１のオーバレイメカニズム４によって適用される。第２のメモリロケーション１１（またはオーバレイメモリ８）は、要求側の装置１またはプロセッサ１ａがシステム内でどの程度離れているのかを、または、いずれの第１のメモリロケーション１０またはターゲットロケーションまたはターゲットメモリ６をオーバレイするのかを、把握していない（またはそのような情報を所有していない）。したがって、第２のメモリロケーション１１の側で、またはオーバレイメモリ８の側で、実装された遅延であるとしたならば、簡単な手法では（付加的に信号伝達に取り組むことなくしては）、平均的な遅延だけしか、またはたとえば予期可能な最大遅延などのような他の（一般的な）遅延だけしか、用いることができない。この問題は、メモリの側での遅延を用いたとしたならば、複雑な遅延システムによってしか回避できない。そのような複雑な遅延システムであるならば、場合によっては、装置１またはプロセッサにより個々の第１のメモリロケーション１０またはターゲットメモリ６について予期された遅延に関する情報を、第２のメモリロケーション１１またはオーバレイメモリ８に供給するであろう。そしてこのようなケースであるならば、第２のメモリロケーション１１またはオーバレイメモリが、個々のプロセッサ１ａまたは装置１による第２のメモリロケーション１１またはオーバレイメモリ８へのアクセスの遅延を実施できるであろう。
【００６２】
プロセッサ１ａまたは装置１において（または少なくともそれらの構成要素の側で）、オーバレイメカニズム４または遅延メカニズムを提供すれば、（現行の）オーバレイロジックを再利用することができる。基本的に、たとえばオーバレイメモリ８または第２のメモリロケーション１１のために、システム内のいずれのＳＲＡＭであっても用いることができる。このシステムは、いくつかの実施形態によれば、たとえばＤＳＰＲ，ＰＳＰＲ，ＬＭＵ，ＤＬＭＵおよび／またはＥＭＥＭと呼ばれる種々のメモリ領域またはメモリタイプを有している。オーバレイメモリ８または第２のメモリロケーション１１（場合によってはＳＲＡＭ）ではなく、プロセッサ１ａまたは装置１に（一般的にいえば要求側のノードに）、遅延ロジックを実装することによって、はるかにシンプルなシステムが得られるようになる。
【００６３】
これまで説明してきたシステムは、実現可能な付加的な特徴、変形態様または機能拡張をオプションとして有することができる。
【００６４】
１つの実施形態によれば、バスセグメント９ａ〜９ｄは、１つまたは複数のブリッジ１２を介して接続されている。メモリ１０，１１を、バス構造９のそれぞれ異なるセグメント９ａ〜９ｄと接続することができる。第１の装置１または第１のプロセッサ１ａおよび第２の装置１または第２のプロセッサ１ａを、バス構造９のそれぞれ異なるセグメント９ａ〜９ｄと接続することができる。メモリ１０，１１は、ターゲットメモリレンジ（これはたとえば「通常の」プログラム実行中に使用可能）と、オーバレイメモリレンジ（これはたとえばプログラム開発中またはプログラムチューニングオペレーション中に使用可能）と、を含むことができる。第１のプロセッサ１ａのオペレーションに対応づけられたターゲットメモリレンジへの第１のプロセッサ１ａのアクセス時間と、第１のプロセッサのオペレーションに対応づけられたオーバレイメモリレンジへの第１のプロセッサ１ａの未遅延のアクセス時間と、の関係を、第２のプロセッサのオペレーションに対応づけられたターゲットメモリレンジへの第２のプロセッサのアクセス時間と、第２のプロセッサのオペレーションに対応づけられたオーバレイメモリレンジへの第２のプロセッサの未遅延のアクセス時間と、の関係と、異ならせることができる。第１の装置のオーバレイメカニズム４の遅延と、第２の装置のオーバレイメカニズム４の遅延と、を個別にプログラミング可能とすることができ、これによってターゲットメモリレンジへのアクセス時間と対応するオーバレイメモリレンジへのアクセス時間との間のそれぞれ異なる関係を、補償することができる。
【００６５】
この特徴によれば、システムアーキテクチャおよびシステム特性を知るユーザまたはヒューマンユーザは、それぞれ異なるプロセッサに対する個別の遅延を、または第１のプロセッサと第２のプロセッサとに対しそれぞれ異なる遅延を、（たとえばコード中に含まれるコンフィギュレーション命令を用いて）指定することによって、要求に応答することができる。たとえば、プロセッサ１ａを含むことができる第１または第２の装置１と、第１および第２のメモリロケーション５，７のうち少なくとも１つのメモリロケーションと、の間の、バス９を介した信号経路中のブリッジ１２の個数が、それぞれ異なる可能性がある。ブリッジ１２は、バス９上の信号遅延または信号伝播時間に対し重要な作用を有するので、信号経路中のブリッジ１２の個数は、オーバレイメカニズム４を含む装置１のアクセス時間に影響を及ぼす。さらにユーザは、装置１の観点から信号競合の個数も推定することができる。たとえばユーザは、装置１がメモリロケーション１０，１１にアクセス可能である一方、他の装置１のうちの１つまたは複数が、他のメモリロケーション１０，１１にアクセス可能であることを、考慮することができる。このようなシナリオの場合、他のメモリロケーション１０，１１にアクセスする１つまたは複数の他の装置１によって、メモリロケーション１０，１１へのアクセス時に何らかのバス競合が引き起こされる可能性がある。したがって、オーバレイメカニズム４のための遅延をプログラミングする際に、ユーザは長い遅延時間をプログラミングすることができる。なぜならば、装置１が第１のメモリロケーション１０にアクセスしようとする場合に、長いアクセス時間が予期される可能性があるからである。このような長いアクセス時間は、経路中のブリッジ１２の個数、またはメモリロケーション１０，１１へのアクセス時に予期される競合のいずれか、または両方に起因する可能性がある。
【００６６】
換言すれば、オーバレイメカニズムのための遅延をプログラミングすれば、ユーザは、ターゲットメモリレンジへのアクセス時間と、オーバレイメモリレンジへのアクセス時間と、の間の目下の差分（または目下の平均的な隔たり、または推定される目下の差分）を、考慮することができる。１つまたは複数のバスシステムのアーキテクチャによって、１つの遅延構成要素が決定される可能性があり、この場合、１つの所定のプロセッサと、ターゲットメモリレンジを含む１つの物理的なメモリと、の間のブリッジ数が、この所定のプロセッサと、オーバレイメモリレンジを含む１つの物理的なメモリと、の間のブリッジ数とは異なる可能性がある。しかも、ターゲットメモリレンジへのアクセスとオーバレイメモリレンジへのアクセスとで、競合に基づく遅延がそれぞれ異なる可能性がある。よって、オーバレイメカニズムのための遅延を、バスシステム内の個々のプロセッサのロケーションに関する知識、バスシステム内に含まれる物理的なメモリの知識、およびバス競合または他の要因に起因する既知のまたは予測される遅延の影響に基づいて、個別にプログラミングすることができる。
【００６７】
したがって、複数のバスセグメント９ａ〜９ｄを有する１つのバスシステムを含むこの種のシステムを使用する場合には、第２のメモリロケーション１１への（同様に第１のメモリロケーションへの）装置１の個々のアクセス時間を、考慮することができる。第２のメモリロケーション１１への各装置１のアクセス時間が異なる可能性があり、その理由はたとえば、第１の装置１から対応する第２のメモリロケーション１１までの信号経路が、第２の装置１から対応する第２のメモリロケーション１１までの信号経路とは異なる場合があることによる。たとえば、１つのバス９またはバスシステムの信号経路内のブリッジ１２の個数がそれぞれ異なる場合があり、あるいは、考察される信号経路上の競合の個数がそれぞれ異なることから、装置１から対応する第２のメモリロケーション１１へのアクセス時間が、他の装置１から対応する（他の）第２のメモリロケーション１１へのアクセス時間とは異なる可能性がある。たとえば、セグメントＡにおける第１の装置１が、セグメントＣにおける（対応する）第２のメモリロケーションにアクセスする場合には、唯一の経路がセグメントＢを横切っていることから、２つのブリッジ１２を通過しなければならない。これとは対照的に、セグメントＢにおける装置１のアクセスは、セグメントＢ内の第１または第２のメモリロケーション１０，１１にアクセスする場合には、バスアーキテクチャによっても遅延されない。ただし、セグメントＢ内の装置１がセグメントＣ内の第２のメモリロケーション１０，１１にアクセスしようとする場合には、１つのブリッジ１２によってアクセスが遅延される。このように、第１または第２のメモリ１０，１１への装置１のアクセス時間は、一方では信号経路に左右され、他方ではメモリロケーション１０，１１にアクセスする際のバス９上の競合の個数に左右される。また、メモリロケーション１０，１１の物理的なタイプも、アクセス時間に関与する。
【００６８】
したがって、（装置１の一部とすることができる）プロセッサ１ａから見た（第２のメモリロケーション１１とすることができる）オーバレイメモリ８のアクセス時間は、バスシステム９およびオーバレイメモリ８における競合に起因して、一定ではない可能性がある。リターンデータに可変の遅延を使用することによって、このような競合に対する補償の度合いが規定される。この場合、リターンデータを、バスシステム９内のプロセッサ１ａまたは装置１によって要求されたデータとすることができる。このリターンデータを、オーバレイメモリ８または第２のメモリロケーション１１に記憶させることができる。
【００６９】
図７には、遅延をどのように動作させることができるのかについて、２つの異なるオプションが示されている。図７Ａの場合、オーバレイメカニズム４を実行する装置１の一部分である内部遅延ユニット１８が設けられている。（メモリ読み出し要求の応答とすることができる）入力信号に対し、バス９からプロセッサコアへの供給が許可される前に、遅延ユニット１８によりこの入力信号が遅延される。図６において述べたように、バス９をバスセグメント９ａ〜９ｄとすることができる。換言すれば、装置１の一部は、遅延ユニット１８を含むオーバレイメカニズム４として機能することができる。これを、装置１の一部である（または装置を成す）プロセッサ１ａ内に実装することができる。このようなケースでは、バス９から到来する信号が、遅延に関わらないプロセッサ１ａのさらに別の部分へ（たとえばプロセッサコアへ）転送される前に、プロセッサ１ａのいくつかのサイクルをスキップまたは引き延ばすことによって、遅延ユニット１８による遅延を実現することができる。この実装形態の場合、遅延ユニット１８はプロセッサ１ａの一部でもある。
【００７０】
別のオプションによれば、図７Ｂに示されているように、外部遅延ユニット１７が設けられる。つまり遅延ユニット１７は装置１の一部ではなく、装置１とバス９またはバスセグメント９ａ〜９ｄとの間のインタフェースを成している。換言すれば、装置１は、第２のメモリロケーション３へのアクセスをリダイレクトし遅延させるように構成された、または構成可能である、オーバレイメカニズム４を有している。たとえば遅延ユニットは、オーバレイメモリロケーションから読み出されたデータおよび／または「データ準備完了」信号を、遅延させることができる。
【００７１】
オーバレイメカニズム４は、第２のメモリロケーション１１に対して要求された信号（たとえば読み出されたデータ）をどの程度だけ遅延させるべきかを表す情報を、遅延ユニット１７に出力する。この「信号」は一般的には、第２のメモリロケーション１１に記憶されていたデータを含む。
【００７２】
１つの実施例によれば、遅延ユニットにより適用される遅延を、プログラミング可能とすることができる。たとえばプロセッサは、（たとえば１つまたは複数のプログラム命令を用いて）「特別機能レジスタ」に遅延値を書き込むことができ、その特別機能レジスタに記憶された遅延値によって、遅延ユニットにより用いられる遅延を決定することができる。
【００７３】
別の選択肢として遅延ユニット１７はたとえば、装置１により固定的に指定された遅延情報または遅延値を、または装置１内でデフォルトとして指定された遅延情報または遅延値を、装置１から取得することができる。図７Ａの解決手段とは異なり、付加的な構成要素つまり遅延ユニット１７は、インタフェースを成すことができる。とはいえこのケースでは装置１は、たとえば処理時間またはハードウェアリソースといったリソースを遅延のために用意する必要がない。
【００７４】
別の態様によれば、装置１はプロセッサ１ａを含むことができる。データをオーバレイする方法またはオーバレイメカニズム４は、第１のメモリロケーション１０へのアクセスを要求するプロセッサ１ａの処理オペレーションを遅延させることができ、またはバス９からプロセッサ１ａへのデータの転送を遅延させることができ、それによって第２のメモリロケーション１１へのアクセスを遅延させる。装置１内のプロセッサ１ａは、第１のメモリロケーション１０に記憶されているデータを要求することができる。第１のメモリロケーション１０に記憶されているデータへのアクセスを、オーバレイメカニズム４によって、第２のメモリロケーション１１へリダイレクトすることができるので、そのデータがプロセッサ１ａにおいてさらに処理される前に、第２のメモリロケーション１１へのプロセッサ１ａのアクセス（または実効アクセス時間）を長くする必要があり、これはこの変形態様によって達成される。この変形態様の第１のオプションによれば、プロセッサ１ａの処理オペレーションを遅延させることによって、これを実現することができる。たとえばプロセッサ１ａ自体の内部的なスローダウンまたは停止によって、第２のメモリロケーション１１へのアクセス時間の延長が達成される。第１のオプションを、オーバレイメカニズムまたはデータをオーバレイする方法によって実装することができ、これによれば、プロセッサ１ａの少なくとも１つのサイクルを引き延ばすことにより処理オペレーションを遅延させることができる。このオプションによれば、プロセッサ１ａ自体によって遅延を達成することができる。換言すれば、プロセッサ１ａまたは装置１の一部が、遅延ユニット１８として動作する。これは、プロセッサ１ａと接続された他の機能ユニットまたは遅延目的のオーバレイメカニズム４が設けられていなくても、実現可能とすることができる。この変形態様の第２のオプションによれば、バス９からプロセッサ１ａへのデータ転送を遅延させることによって、遅延を実現することができる。バス９とプロセッサ１ａとのインタフェースに設けることのできる遅延ユニット１７を用いて、これを生じさせることができる。
【００７５】
基本的に、図７に示した装置１と遅延ユニット１７，１８の双方を、本開示において説明した他のいずれの態様および実施形態とも組み合わせることができる。
【００７６】
図８には、１つの実施形態によるオーバレイメカニズム４またはデータをオーバレイする方法をたとえばどのように動作させることができるのか、についてのフローチャートが示されている。
【００７７】
ここには２つのステップが示されている。すなわち第１のステップＳ１において、第１のメモリロケーション１０へ向けられたアクセスを、第２のメモリロケーション１１へリダイレクトする。第２のステップＳ２によれば、リダイレクションの場合に第２のメモリロケーション１１へのアクセスを、選択的に所定の時間だけ遅延させる。
【００７８】
第１のステップＳ１において、データを第２のメモリロケーション１１に記憶させる。既述のように装置１の一部であるオーバレイメカニズム４によって、このことを実施することができる。したがって、装置１またはプロセッサ１ａが第１のメモリロケーション１０に記憶させようとするデータが、代わりに第２のメモリロケーション１１に記憶される。このようにすれば、第１のメモリロケーション１０の消耗が先に延ばされる。第１のメモリロケーション１０は、第２のメモリロケーション１１よりも長いアクセス時間を有することが多いので、第１のメモリロケーション１０の代わりに第２のメモリロケーション１１に記憶されたデータのほうが高速にアクセス可能である。いくつかのケースでは、第１のメモリロケーション１０へのデータアクセスを要求する装置１は（この場合、第１のメモリロケーション１０は、オーバレイメカニズム４またはオーバレイ方法により第２のメモリロケーション１１にリダイレクトされる）、かかる入力信号を処理する準備が整っておらず、または誤った出力を生成する可能性があり、その理由は、入力信号が過度に早く処理されるからであり、または処理の結果が、リダイレクトしないときに得られるであろう「現実世界の」結果を表さない可能性があるからである。よって、このような問題を回避する目的で、リダイレクションの場合に第２のメモリロケーション１１へのアクセスを選択的に遅延させる（ステップＳ２）。これは装置１内で行われるか、または第２のメモリロケーション１１から装置１に至る信号経路中、装置１の直前で行われる。
【００７９】
本開示によれば、すべての態様、実施形態、特徴等を組み合わせることができる。さらに本開示によれば、装置１、プロセッサ１ａ、バス９、バスセグメント９ａ〜９ｄ、ブリッジ１２、第１のメモリロケーション１０、第２のメモリロケーション１１、ターゲットメモリ６および／またはオーバレイメモリ８を含むすべての構成要素を、１つのシングルチップ上に設けることができる。とはいえ、これらをそれぞれ異なるチップ上に設けてもよい。さらにチップには、少なくとも１つのプロセッサ１ａまたは装置１および他のコンポーネントが含まれていてもよく、ただしメモリ６，８またはメモリロケーション１０，１１のうち少なくとも１つを外部に設けることができる。これは特に、データ二重化のために好適なものとすることができる。
【００８０】
結び
本開示は、データロードアクセスを第１のメモリロケーションから第２のメモリロケーションへリダイレクトするオーバレイメカニズムまたはオーバレイ方法に関する。顧客は製品開発段階において、データアクセスオーバレイと呼ばれるこの種のメカニズムを利用することができる。かかるメカニズムを、エンジン管理システムをキャリブレーションするときに用いることができる。かかるキャリブレーションシステムにおいては、フラッシュメモリに格納されているデータテーブルをチューニングすることができる。これには、テーブル値に対する頻繁な変更が伴う可能性がある。第１のメモリを場合によってはフラッシュメモリとすることができ、第２のメモリをＳＲＡＭメモリとすることができる。データテーブルを変更するたびにフラッシュメモリを書き換えるのは、時間の浪費であるし、しかも第１のメモリを消耗しかねず、このことは第１のメモリがフラッシュメモリであれば特に該当する。データのロケーションの変更は、アプリケーションソフトウェアには不可視であるが、デバッグ／キャリブレーションシステムによる制御のもとで、装置内またはプロセッサ内のハードウェアによって実行することができる。このハードウェアは、ターゲットアドレスレンジと、このターゲットアドレスレンジに対してデータアクセスが実行されたときに代替とすべきリダイレクトアドレスレンジの対応するセットとから成る、プログラミング可能なテーブルを含むことができる。リダイレクトアドレスレンジはＳＲＡＭロケーションであり、ＤＳＰＲ，ＰＳＰＲ，ＬＭＵ，ＥＭＥＭを含む、システム内の任意のＳＲＡＭとすることができる。
【００８１】
本開示によれば、オーバレイメカニズムを含む装置が開示される。このオーバレイメカニズムは、第１のメモリロケーションへ向けられたアクセスを第２のメモリロケーションへリダイレクトするように構成されている、または構成可能である。オーバレイメカニズムは、リダイレクションの場合に第２のメモリロケーションへのアクセスを遅延させるように構成されている、または構成可能である。
【００８２】
かかるオーバレイメカニズムによって達成可能であるのは、装置は第１のメモリロケーションの代わりに第２のメモリロケーションを使用することである。この場合、第１のメモリロケーションを使用する必要がないので、第１のメモリロケーションの消耗を回避することができる。オーバレイメカニズムに基づき、第２のメモリロケーションを第１のメモリロケーションの代わりに用いることができるので、第２のメモリロケーションを第１のメモリロケーションよりも高速にアクセスすることができる。換言すれば、第２のメモリロケーションの内容を、いっそう高速に読み出すことができる。したがってこのことを補償する目的で、第２のメモリロケーションへのアクセスを遅延させることができる。
【００８３】
本開示は、データをオーバレイする方法についても論じる。この方法は、第１のメモリロケーションへ向けられたアクセスを第２のメモリロケーションへリダイレクトするステップと、リダイレクションの場合に第２のメモリロケーションへのアクセスを選択的に所定の時間だけ遅延させるステップと、を含んでいる。本開示のコンテキストにおいて「遅延させる」とは、信号処理中またはデータ処理中の意図的な遅延を意味するものであり、あるいは信号処理の遅延または延長が目的に従って発生すること、を意味する。換言すれば、本開示による遅延は、装置、システムまたはチップにおける信号処理の際に、何らかの構成要素の副次的作用に起因して意図することなく発生する可能性のある寄生的な遅延とは異なる。この種の副次的作用として挙げられるのは、たとえばＭＯＳＦＥＴ、バイポーラトランジスタといったトランジスタ、キャパシタ等から成る回路の応答時間である。
【００８４】
基本的に、この方法によって装置と同じ利点がもたらされる。アクセスは第２のメモリロケーションに記憶されているデータに対して発生するので、このデータを第１のメモリロケーションに記憶されているデータよりも高速にアクセスすることができる。したがって、リダイレクションの場合に第２のメモリロケーションへのアクセスを選択的に所定の時間だけ遅延させるオーバレイ方法によって、アクセス要求側の装置による第２のメモリロケーションへのアクセスを、遅延または延長することができる。
【００８５】
本開示はさらに、第１のプロセッサを有する既述の第１の装置と、第２のプロセッサを有する既述の第２の装置と、複数のセグメントを有するバス構造と、複数のメモリとを含むシステムについても論じる。第１のプロセッサおよび第２のプロセッサは、バス構造を介してメモリと接続されている。第１の装置のオーバレイメカニズムの遅延と、第２の装置のオーバレイメカニズムの遅延を、個別にプログラミング可能である。
【００８６】
装置またはシステムの設計においては、多数の変形、態様および特徴を実現することができ、それらにはたとえば以下の特徴および変形が含まれている。方法のための相応の特徴および変形も実現することができる。
【００８７】
これまで述べてきた態様、特徴等のすべてにおいて、第２のメモリロケーションまたはフラッシュメモリのオーバレイを、装置またはこの装置を含むシステムの時間特性またはリアルタイム特性に影響を及ぼすことなく、実現可能なものとすることができる。
【００８８】
さらに結びとして述べておくと、いくつかの実施形態によれば、フラッシュメモリからＳＲＡＭメモリへデータロードアクセスをリダイレクトするメカニズムが提供される。このメカニズムは、データアクセスオーバレイとして知られており、一般に製品開発段階中、顧客がたとえばエンジン管理システムをキャリブレーションする際に、顧客によって使用される。この種のキャリブレーションシステムの場合、フラッシュメモリに格納されているデータテーブルは、「チューニング」中である。時によってこれには、テーブル値に対する頻繁な変更が伴う。データテーブルを変更するたびにフラッシュメモリを書き換えるのではなく（これは時間の浪費であり、しかもフラッシュの消耗を引き起こす）、ＳＲＡＭ内にデータが配置される。データのロケーションの変更は、アプリケーションソフトウェアには不可視であるが、デバッグ／キャリブレーションシステムによる制御のもとで、プロセッサ内のハードウェアによって実行される。このハードウェアには、ターゲットアドレスレンジと、このターゲットアドレスレンジに対してデータアクセスが実行されたときに代替とすべきリダイレクトアドレスレンジの対応するセットとから成る、プログラミング可能なテーブルが含まれている。リダイレクトアドレスレンジはＳＲＡＭロケーションであり、システム内の任意のＳＲＡＭ（ＤＳＰＲ，ＰＳＰＲ，ＬＭＵ，ＥＭＥＭ）とすることができる。
【００８９】
このシステムによれば、アプリケーションソフトウェアを変更することなく、アドレスの論理的な変換を行うことができ、それによってフラッシュデータテーブルをＳＲＡＭにより「オーバレイ」することができる。この解決手段によって、データテーブルのロケーションの問題が解消される。とはいえ本発明によるいくつかの実施形態は、データアクセス時間の問題にも取り組んでいる。リアルタイムシステムにおいては、データのアクセス時間がクリティカルである。その際に見出されたのは、（低速の）フラッシュから（高速の）ＳＲＡＭへのデータテーブルの切り替えによってもシステムのリアルタイム特性が変化してはならない、ということである。
【００９０】
いくつかの実施形態は、上述のオーバレイシステムのタイミング特性を変更することによって、オーバレイシステムのリアルタイムパフォーマンスの改善を狙ったものである。ここで提案するオペレーションは以下の通りである。
【００９１】
各ターゲットアドレスレンジは、プロセッサからメモリへアクセスを実施するのに必要とされる予期されるサイクル数を表すターゲットアクセス時間に割り当てられる。オーバレイ変換が実施されると、オーバレイメモリへのアクセスに必要とされる目下のサイクル数がカウントされる。アクセスに要する実際のサイクル数が、ターゲットアクセス時間よりも短ければ、プロセッサはサイクル数の相違によって引き延ばされる。ターゲットメモリから見たならばこのことによって、等しいアクセス時間を与えるためにオーバレイメモリのためのアクセス時間に付加的なサイクルを加えることができる。
【００９２】
ここで述べておきたいのは、バスシステムおよびオーバレイメモリにおける競合に起因して、プロセッサから見たオーバレイメモリのアクセス時間が、時によっては一定ではなくなることである。リターンデータに可変の遅延を使用することによって、このような競合に対する補償の度合いが規定される。
【００９３】
１つの典型的なシステムは、複数のプロセッサおよび複数のフラッシュメモリを含んでおり、さらに複数のオーバレイメモリを含むことができる。このメカニズムを用いれば、各プロセッサのオーバレイオペレーションを、フラッシュメモリおよびオーバレイメモリのアクセス時間に関する各プロセッサの視点に合わせて、別個に調整することができる。この提案によれば、ターゲットレンジごとに、つまりはフラッシュメモリごとに、それぞれ異なるターゲットアクセス時間を定義することができる。
【００９４】
ここで提案したシステムは、オーバレイメモリにおいて中央で遅延を付加するよりも良好である。オーバレイメモリは、要求側のプロセッサがシステム内でどれくらい遠くに離れているのかを、または、いずれのターゲットに対しオーバレイしているのかを、把握しておらず、したがって複雑な遅延システムを組み込まないかぎりは、「平均的な」遅延しか供給できない。このようにするとしたならば、オーバレイオペレーションが実施されていることを識別するために、バスを介して付加的な情報を供給しなければならない。（ここで提案したように）プロセッサのところにメカニズムを設ければ、現行のオーバレイロジックを再利用することができる。システム内のほとんどすべてのＳＲＡＭを、オーバレイメモリとして用いることができる（たとえばＤＳＰＲ，ＰＳＰＲ，ＬＭＵ，ＤＬＭＵ，ＥＭＥＭ）。ＳＲＡＭではなく要求側のノードのところに（データの読み出しを要求するプロセッサ内またはこのプロセッサの近くに）遅延ロジックを実装することで、はるかにシンプルなシステムがもたらされる。
【００９５】
さらにここで述べておきたいのは、オーバレイメモリは、常にターゲットメモリよりも高速であるとはかぎらない、ということである。むしろ、システム内のいずれの場所に、要求側のプロセッサに対し相対的にターゲットメモリとオーバレイメモリが存在するのかに左右されることになるし、さらにターゲットメモリとバスシステムとオーバレイメモリにおける競合にも左右されることになる。ターゲットメモリへのアプリケーションソフトウェアのアクセスは通常、本質的にランダムである。一般にランダムアクセスについては、フラッシュよりもＳＲＡＭのほうが高速であると予想される。ターゲットアクセス時間がオーバレイアクセス時間よりも短いケースでは、付加的な遅延は追加されない。
【００９６】
プロセッサのロードストアユニットにおいて、データが有効であるとみなされるポイントを引き延ばすことによって、付加的な遅延を簡単に追加することができる。遅延カウンタおよび遅延オペレーションの最も簡単な実装を挙げるとすれば、オーバレイオペレーションが検出されたときに、ターゲットアクセス時間を有するデクリメントカウンタをロードすることである。このカウンタは、ゼロに達するまで、サイクルごとに１だけデクリメントされる。カウンタがゼロであるときだけ、データが有効であるとみなされ、プロセッサのパイプラインによって使用することができる。
【００９７】
付加的な側面
・既述のメカニズムによって、メモリアクセス間のタイミング補償が可能となる。オーバレイメカニズムを、コードとデータのアクセスの両方をカバーするように拡張したならば、様々なソフトウェア・オーバー・ジ・エア（software-over-the-air, SOTA）の実装により要求されるフラッシュからフラッシュへのオーバレイに付随して生じるタイミングの相違を補償する際に、このメカニズムが場合によっては有用なものとなるかもしれない。
・ターゲットメモリとオーバレイメモリとが同じメモリである場合には、このメカニズムを使用して、メモリからのアクセスのたびに毎回、付加的な遅延サイクルを追加することができる。このことは、パフォーマンスまたは電力消費のチューニングのために、場合によっては有用となる可能性がある。
・本提案を含むオーバレイシステムは、ロックステップ方式の実装のための二重化エリア内に含まれている。これにより、遅延タイマの安全なオペレーションがサポートされる。
【００９８】
いくつかの実施形態によれば、システムのタイミング特性またはリアルタイム特性に影響が及ぼされることなく、フラッシュメモリをオーバレイできるようにしたい、という顧客の要求が満たされる。
【００９９】
シンプルな実施形態には、プログラミング可能な遅延が含まれており、これによれば、データアクセスオーバレイ中、それぞれ異なるメモリレンジへのメモリアクセス間のタイミングの相違を補償することができる。
【０１００】
別の選択肢として、すべてのオーバレイメモリアクセスを固定的な量だけ遅延させるシンプルなシステムを形成することが可能ではあるけれども、これであると本提案の解決手段が含まれないことになる。
【０１０１】
これらの点に加え、さらに述べておきたいのは、複数のプロセッサと複数のメモリとの間の相互接続のために、たとえばバスの代わりにクロスバ回路を用いてもよい、ということである。クロスバ回路は、複数の（たとえば並列の）データ経路を有することができ、それらのデータ経路を用いて、たとえば１つのプロセッサと１つのメモリとの間で各々確立される複数のコネクションを同時に確立することができる。オーバレイメカニズムを、たとえばプロセッサコアとクロスバスイッチとの間に接続することができる（クロスバスイッチは、１つのプロセッサをクロスバの複数の通信経路のうちの１つと選択的に接続する）。たとえば起こり得るクロスバの競合といったようなクロスバの特性を考慮するように、オーバレイメカニズムを構成することができる。これらの点にかぎれば、クロスバを用いた実施形態は、バスまたはバスシステムを用いた実施形態と類似している（ただしクロスバをベースとするシステムの競合は、バスをベースとするシステムの競合よりも、一般的には僅かである）。換言すれば、バスを用いたシステムに関してこれまで述べた特徴および機能は、クロスバを用いたシステムにも適用され、さらにこれらを個別にまたは組み合わせて用いることができる。
【図１】
2018049622.tif 000003
【図２】
2018049622.tif 000004
【図３】
2018049622.tif 000005
【図４】
2018049622.tif 000006
【図５】
2018049622.tif 000007
【図６】
2018049622.tif 000008
【図７Ａ】
2018049622.tif 000009
【図７Ｂ】
2018049622.tif 000010
【図８】
2018049622.tif 000011
【外国語明細書】
2018049622.tif 000012
2018049622.tif 000013
2018049622.tif 000014
2018049622.tif 000015
2018049622.tif 000016
2018049622.tif 000017
2018049622.tif 000018
2018049622.tif 000019
2018049622.tif 000020
2018049622.tif 000021
2018049622.tif 000022
2018049622.tif 000023
2018049622.tif 000024
2018049622.tif 000025
2018049622.tif 000026
2018049622.tif 000027
2018049622.tif 000028
2018049622.tif 000029
2018049622.tif 000030
2018049622.tif 000031
2018049622.tif 000032
2018049622.tif 000033
2018049622.tif 000034
2018049622.tif 000035
2018049622.tif 000036
2018049622.tif 000037
2018049622.tif 000038
2018049622.tif 000039
2018049622.tif 000040
2018049622.tif 000041
2018049622.tif 000042
2018049622.tif 000043
2018049622.tif 000044
2018049622.tif 000045
2018049622.tif 000046
2018049622.tif 000047
2018049622.tif 000048
2018049622.tif 000049