(57)【特許請求の範囲】
【請求項１】
制御プロセッサと、コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスするシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースおよび前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記コプロセッサに結合するためのコプロセッサインターフェース手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記コプロセッサインターフェース手段に結合されており、前記コプロセッサが前記データメモリへのアクセスをリクエストしていることを検出し、該検出に応答して第２アクセス制御信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号と結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号と結合するための第２インターフェース手段、および前記データメモリと結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、更に前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１および第２アクセス制御信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記命令フェッチサイクルと命令実行サイクルは互いに排他的であることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項２】
制御プロセッサと、コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスするシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースおよび前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記コプロセッサに結合するためのコプロセッサインターフェース手段と、
前記コプロセッサインターフェース手段に結合されており、かつ先入れ先出しメモリ手段を含み、前記データメモリへのアクセスのためのコプロセッサリクエストに関連したデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートするチャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記チャンネル制御手段に結合されており、前記データメモリへの前記コプロセッサのアクセスのリクエストに応答して且つ前記先入れ先出しメモリ手段が空であることを示す信号がアサートされていないことに応答して、第２アクセス制御信号を発生し、更に前記先入れ先出しメモリ満杯信号のアサートに応答して優先信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１および第２アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記命令フェッチサイクルと命令実行サイクルは互いに排他的であることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項３】
前記優先信号は、複数の優先レベルのうちの一つを示し、前記優先レベルは、高い優先レベルを含み、前記スケジューリング手段は、前記先入れ先出しメモリ満杯信号がアサートされたことに応答して、前記高い優先レベルを示す優先信号を発生することを特徴とする請求項２記載の装置。
【請求項４】
前記優先信号が高い優先信号になったことに応答して、前記発生されたスイッチ制御信号は、前記第１アクセス制御信号がアサートされたかどうかに係わらず、前記スイッチが前記第２インターフェース手段を前記データメモリインターフェース手段に結合させるようにすることを特徴とする、請求項３記載の装置。
【請求項５】
制御プロセッサと、コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスし、前記命令フェッチサイクルと命令実行サイクルは互いに排他的であるシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースおよび前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記コプロセッサに結合するためのコプロセッサインターフェース手段と、
前記コプロセッサインターフェース手段に結合されており、かつ先入れ先出しメモリ手段を含み、前記データメモリへのアクセスのためのコプロセッサリクエストに関連したデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートするチャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記チャンネル制御手段に結合されており、前記データメモリへの前記コプロセッサのアクセスのリクエストに応答して且つ前記先入れ先出しメモリ手段が空であることを示す信号がアサートされていないことに応答して、第２アクセス制御信号を発生し、更に前記先入れ先出しメモリ満杯信号のアサートに応答して優先信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１および第２アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記優先信号は、複数の優先レベルのうちの一つを示し、前記優先レベルは、高い優先レベルを含み、前記スケジューリング手段は、前記先入れ先出しメモリ満杯信号がアサートされたことに応答して、前記高い優先レベルを示す優先信号を発生し、
前記調停手段は、前記優先信号が高優先信号になったことに応答して、前記第１アクセス制御信号がアサートされたか否かに係わらず、前記スイッチが前記第２インターフェース手段を前記データメモリインターフェースに結合させるようにする、コプロセッサ選択スイッチ制御信号を発生し、前記先入れ先出しメモリ手段が空になったことを示す信号が検出されるまで、前記コプロセッサ選択スイッチ制御信号を発生し続けることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項６】
制御プロセッサと、コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスするシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースまたは前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記コプロセッサに結合するためのコプロセッサインターフェース手段と、
前記コプロセッサインターフェース手段に結合されており、かつ先入れ先出しメモリ手段を含み、前記データメモリへのアクセスのためのコプロセッサリクエストに関連したデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートするチャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記チャンネル制御手段に結合されており、前記先入れ先出しメモリ満杯信号のアサートに応答して且つ前記先入れ先出しメモリ手段が空であることを示す信号がアサートされていないことに応答して優先信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記命令フェッチサイクルと命令実行サイクルは互いに排他的であることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項７】
前記優先信号は、複数の優先レベルのうちの一つを示し、前記優先レベルは、高い優先レベルを含み、前記スケジューリング手段は、前記先入れ先出しメモリ満杯信号がアサートされたことに応答して、前記高い優先レベルを示す優先信号を発生することを特徴とする請求項６記載の装置。
【請求項８】
前記優先信号が高い優先信号になったことに応答して、前記発生されたスイッチ制御信号は、前記第１アクセス制御信号がアサートされたかどうかに係わらず、前記スイッチが前記第２インターフェース手段を前記データメモリインターフェース手段に結合させることを特徴とする、請求項７記載の装置。
【請求項９】
制御プロセッサと、コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスし、前記命令フェッチサイクルと命令実行サイクルは互いに排他的であるシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースまたは前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記コプロセッサに結合するためのコプロセッサインターフェース手段と、
前記コプロセッサインターフェース手段に結合されており、かつ先入れ先出しメモリ手段を含み、前記データメモリへのアクセスのためのコプロセッサによるリクエストに関連したデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートするチャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記チャンネル制御手段に結合されており、前記先入れ先出しメモリ満杯信号のアサートに応答して且つ前記先入れ先出しメモリ手段が空であることを示す信号がアサートされていないことに応答して優先信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記優先信号は、複数の優先レベルのうちの一つを示し、前記優先レベルは、高い優先レベルを含み、前記スケジューリング手段は、前記先入れ先出しメモリ満杯信号がアサートされたことに応答して、前記高い優先レベルを示す優先信号を発生し、
前記調停手段は、前記優先信号が高優先信号になったことに応答して、前記第１アクセス制御信号がアサートされたか否かに係わらず、前記スイッチが前記第２インターフェース手段を前記データメモリインターフェースに結合させるようにする、コプロセッサ選択スイッチ制御信号を発生し、前記先入れ先出しメモリ手段が空になったことを示す信号が検出されるまで、前記コプロセッサ選択スイッチ制御信号を発生し続けることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項１０】
制御プロセッサと、第１コプロセッサと、第２コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスするシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースまたは前記制御プロセッサにより発生されるメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記第１コプロセッサに結合するための第１コプロセッサインターフェース手段と、
前記第２コプロセッサに結合するための第２コプロセッサインターフェース手段と、
前記第１および第２コプロセッサインターフェース手段に結合されており、各々先入れ先出しメモリ手段を含み、各々が、対応するコプロセッサから送られる、前記データメモリへのアクセスのためのコプロセッサリクエストに関連するデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートする、第１および第２チャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記それぞれの第１および第２コプロセッサに関連するメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合された、第１および第２入力端を有するマルチプレクサ手段と、
前記第１および第２チャンネル制御手段、および前記マルチプレクサに結合されており、前記第１および第２チャンネル制御手段の少なくとも一方によりアサートされた前記先入れ先出しメモリ満杯信号に応答して優先信号を発生すると共に、マルチプレクサ制御信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記マルチプレクサの出力に関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段とを備え、
前記命令フェッチサイクルと命令実行サイクルは互いに排他的であることを特徴とする、前記データメモリへのアクセスを制御するための装置。
【請求項１１】
前記スケジューリング手段は、前記第１チャンネル制御手段によりアサートされた前記先入れ先出しメモリ満杯信号に応答して、第１の値を有する優先信号を発生し、また前記第１チャンネル制御手段によりアサートされた前記先入れ先出しメモリ満杯信号に応答して、第２の値を有する優先信号を発生し、また前記第１チャンネル制御信号および前記第２チャンネル制御信号の双方によりアサートされる前記先入れ先出しメモリ満杯信号に応答して、前記第１の値を有する優先信号を発生することを特徴とする、請求項１０記載の装置。
【請求項１２】
前記スケジューリング手段は、前記第１チャンネル制御手段および前記第２チャンネル制御手段の双方によりアサートされる前記先入れ先出しメモリ満杯信号に応答して、前記第１マルチプレクサ入力を選択するマルチプレクサ制御信号を発生することを特徴とする、請求項１１記載の装置。
【請求項１３】
前記優先信号は、複数の優先レベルのうちの一つを示し、前記優先レベルは、高い優先レベルを含み、前記スケジューリング手段は、アサートされた前記先入れ先出しメモリ満杯信号のいずれかに応答して、前記高い優先レベルを示す優先信号を発生することを特徴とする請求項１２記載の装置。
【請求項１４】
前記優先信号が高い優先信号になったことに応答して、前記発生されたスイッチ制御信号は、前記第１アクセス制御信号がアサートされたかどうかに係わらず、前記スイッチが前記第２インターフェース手段を前記データメモリインターフェース手段に結合させることを特徴とする、請求項１３記載の装置。
【請求項１５】
前記優先信号が前記第２の値になったことに応答して前記発生されたスイッチ制御信号は、前記スイッチが前記制御プロセッサと前記マルチプレクサとの間でデータメモリアクセスをインターリーブさせることを特徴とする、請求項１１記載の装置。
【請求項１６】
制御プロセッサと、第１コプロセッサと、第２コプロセッサと、プログラムメモリと、データメモリとを含み、制御プロセッサは命令フェッチサイクル中に前記プログラムメモリにアクセスし、命令実行サイクル中に前記データメモリにアクセスし、前記命令フェッチサイクルと命令実行サイクルは互いに排他的であるシステムにおいて、
前記制御プロセッサにより発生される制御プロセッサステート信号のためのインターフェースまたはメモリアドレス信号のためのインターフェースを含む、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、
前記第１コプロセッサに結合するための第１コプロセッサインターフェース手段と、
前記第２コプロセッサに結合するための第２コプロセッサインターフェース手段と、
前記第１および第２コプロセッサインターフェース手段に結合されており、各々先入れ先出しメモリ手段を含み、各々が、対応するコプロセッサから送られる、前記データメモリへのアクセスのためのリクエストに関連するデータを前記先入れ先出しメモリ手段に記憶すると共に、前記先入れ先出しメモリ手段が満杯になったことに応答して先入れ先出しメモリ満杯信号をアサートする、第１および第２チャンネル制御手段と、
前記制御プロセッサインターフェース手段に結合されており、前記命令フェッチサイクル時に、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを、命令フェッチ動作を示す前記制御プロセッサステート信号により、または前記データメモリに関連するメモリアドレスの範囲内にないメモリアドレスを示す前記メモリアドレス信号により検出し、更に該検出に応答して第１アクセス制御信号を発生するための検出手段と、
前記それぞれの第１および第２コプロセッサに関連するメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合された、第１および第２入力端を有するマルチプレクサ手段と、
前記第１および第２チャンネル制御手段、および前記マルチプレクサに結合されており、前記第１および第２チャンネル制御手段の少なくとも一方によりアサートされた前記先入れ先出しメモリ満杯信号に応答して優先信号を発生すると共に、マルチプレクサ制御信号を発生するためのスケジューリング手段と、
スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記マルチプレクサの出力に関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記スイッチ制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段または前記第２インターフェース手段を交互に結合するスイッチと、
前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１アクセス制御信号および前記優先信号だけに応答して前記スイッチ制御信号を発生するための調停手段と、
ダイレクトメモリアクセスカウンタ手段と、
を備え、該ダイレクトメモリアクセスカウンタ手段が、
前記第１コプロセッサおよび前記第２コプロセッサに対応する記憶領域を有するランダムアクセスメモリと、
前記第１チャンネル制御手段および第２チャンネル制御手段に結合されており、前記第１コプロセッサおよび前記第２コプロセッサのいずれがデータメモリアクセスのための最高の優先度のリクエストを有するかを判別し、バスリクエスト信号を発生するための第１手段と、
前記第１手段および前記制御プロセッサインターフェース手段に結合されており、前記バスリクエスト信号と前記制御プロセッサからの命令フェッチ信号およびアドレス信号に応答して、バスグラント信号を発生するための第２手段と、
前記第１手段、前記第２手段および前記ランダムアクセスメモリに結合されており、前記ランダムアクセスメモリにおける、前記最高の優先度のリクエストを有すると判断された前記コプロセッサに対応する記憶領域における値を、前記バスグラウント信号に応答して読み出すための第３手段と、
前記データメモリをアドレス指定するために使用される前記メモリアドレス信号の少なくとも一部としての前記値を発生し、その後、前記値を変更し、前記ランダムアクセスメモリ内の前記最高の優先度のリクエストを有すると判断された前記コプロセッサに対応する前記記憶位置に、前記変更された値を記憶するための第４手段とを含む、
ことを特徴とする、前記データメモリへのアクセスを制御するための装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、制御プロセッサと、一つ以上のコプロセッサと、共有データメモリとから成るコンピュータアーキテクチャにおける装置に関し、より詳細には、制御プロセッサが制御メモリから命令をフェッチし続けることができると同時に、他のコプロセッサが共用メモリにアクセスできるようにする、かかるシステムにおける装置に関し、より詳細には、制御プロセッサによる制御プログラムの実行を実質的に阻害することなく、制御プロセッサがコプロセッサと共にデータメモリを共用できるようにする、かかる装置に関する。
【０００２】
【従来技術】
フォン・ノイマン型アーキテクチャとして知られているタイプの従来のマイクロプロセッサは、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）および電気的に消去可能で再プログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）を含む、すべてのタイプのメモリに接続するための、一本のバスを有している。
【０００３】
ＲＯＭ、ＰＲＯＭおよびＥＰＲＯＭは、一般にプログラム命令の記憶に用いられるが、その理由は、これらタイプのメモリは不揮発性であるからである。すなわち、これらメモリは電源を切ってもプログラムの内容を失わない。このことは、バッテリー電力を節約するため、一時的に電源を切ることができるバッテリー給電式装置では重要である。
【０００４】
他方、ＲＡＭおよびＥＥＰＲＯＭは、一時的作業用変数（ＲＡＭ）またはコンピュータがプログラムの実行の結果として変更する可能性があるが、電源遮断期間中は保存しなければならないデータ（ＥＥＰＲＯＭ）を記憶するのに使用される。
【０００５】
フォン・ノイマン型アーキテクチャでは、種々のメモリモジュールのすべては、同じ電気的アドレスおよびデータバスに結合されており、コンピュータはプログラムメモリまたはデータメモリの一方にしかアクセスできず、一度に双方のメモリにアクセスすることはできない。バスが一本であることは、固定データ変数はプログラムＲＯＭに記憶でき、所望すればデータＲＡＭからプログラム命令を実行できることを意味している。
【０００６】
従来のフォン・ノイマン型アーキテクチャの例としては、インテル社の８０８５およびＩＢＭ  ＰＣシリーズのマイクロプロセッサ８０８８、８０８６、８０１８６、２８６、３８６、４８６；  ザイログ社のＺ８６およびモトローラ社の６８００、６８０１、６８０２、６８０３....６８０９および６８０００シリーズプロセッサがある。
【０００７】
プログラムの命令のために、あるタイプのメモリを使用し、ダイナミックに変化するデータを記憶するために別のタイプのメモリを使用することに鑑み、ハーバードアーキテクチャとして従来知られている別のアーキテクチャが用いられることが多い。このハーバード型アーキテクチャは、データメモリからはプログラム命令を実行できず、構成によっては、プログラムメモリにはデータを書き込みできないようにプログラムメモリ用バスとデータメモリ用バスとを別個としたことを特徴とする。
【０００８】
ハーバード型アーキテクチャおよびフォン・ノイマン型アーキテクチャのいずれも、ダイレクトアドレシング（アドレス指定）としてよく知られているモードで、プログラムメモリから一般に定数を読み出しできるようになっているが、この理由は、初期状態で空になっているデータＲＡＭを初期化するための手段がないからである。
【０００９】
ハーバードアーキテクチャは、プログラムＲＯＭから、プロセッサが次の命令をフェッチするのと同時に、ＲＡＭ内のデータを演算できるようにしたので、周知のメモリアクセスのボトルネック減少による障害を受けることなく、プロセッシング（処理）速度を速くすることができる。このようなオーバーラッピング処理はパイプライン化として知られている。しかしながら、すべてのハーバード型アーキテクチャがパイプライン化しているわけではない。
【００１０】
ハーバード型アーキテクチャの例としては、パイプライン化しているデジタル信号プロセッサチップ、例えばテキサスインスツルメント社のＴＭＳ３２０シリーズおよびアナログデバイス社のＡＤＳＰ２１００シリーズがある。
【００１１】
ハーバード型アーキテクチャは、コンピュータとプログラムメモリおよびデータメモリとの間でデータのアドレス指定をしたり、転送したりするのに、一本のバスしか使用しないアーキテクチャでも構成できる。本明細書では、異なるタイプのメモリに対するリード（読み出し）信号、ライト（書き込み）信号または制御信号を別個とすることにより、異なるタイプの転送（すなわちプログラム命令またはデータ）を区別している。これらのアーキテクチャでは、パイプライン化できない。このアーキテクチャの例としては、インテル社の８０４８、８０４９、８０５１シリーズのマイクロコントローラがある。当然ながら、これら部品ではハーバード型アーキテクチャのスピードの利点は、集積回路上のピン数を低減するため失われている。しかしながらこの場合において、プログラムメモリとデータメモリを別個にしたことの利点は、一本の１６ビットアドレスバスが６５, ５３６バイトのデータをアドレス指定できるだけでなく、６５, ５３６バイトのプログラム命令をアドレス指定できる点にある。このことは、全体で６５, ５３６バイトしかアドレス指定できない１６バイトのアドレスバスを有しているフォン・ノイマン型アーキテクチャ、例えばＺ８０または８０８５と極めて対照的であり、しかもこれらアーキテクチャにおける６５, ５３６バイトは、プログラム命令とデータ、例えば５６Ｋのプログラムおよび８Ｋのデータ、または３２Ｋのプログラムおよび３２Ｋのデータとに分割しなければならない。
【００１２】
コンピュータシステムの処理速度をスピードアップするための、従来の別の技術としては、ダイレクトメモリアクセス（ＤＭＡ）技術がある。このＤＭＡは、同一メモリを用いるコンピュータの実行を大幅に遅くすることなく、周辺装置、例えばディスクドライブ、磁気テープリーダ、通信用モデム等が、送信または周辺メディアへの格納のため、コンピュータデータメモリからデータを抽出できるようにしたり、または逆に、記憶デバイスから検索または通信モデムにより受信されたデータを直接コンピュータのメモリに入れることができるように考えられた技術である。当然ながらこれは、最初のジョブがＤＭＡ動作の完了を待っている間、コンピュータが有効に実行できる他のジョブがあるような、いわゆる多重プログラミングアプリケーションでのみ有効である。ＤＭＡはメモリとの間でデータバイトを入出力するコンピュータ命令を実行する代替技術としての役割を持つ入出力（Ｉ／Ｏ）技術である。従って、コンピュータはＤＭＡ制御回路によって自律的に実行される入出力操作によって占有されることはない。コンピュータは単にＤＭＡコントローラを初期化したり、所定の番地で始まるメモリからあるいは該メモリへ所定の数のバイトＮを送受信するのみである。次にコンピュータは、ＤＭＡ動作が完了するまで実行を再開できないタスクを一時停止し、次に優先度の高いタスクを実行する。ＤＭＡ動作が完了すると、ＤＭＡコントローラから割り込みが発生され、ＤＭＡ動作が完了したことがコンピュータに通知される。これに応答してコンピュータは、現在実行中のタスクを一時停止させ、ＤＭＡを最初に要求したタスクの実行を再開する。次に再開したタスクが完了すると、一時停止されていたタスクまたはそれよりも優先度の高いタスクの実行を再開できるようになる。
【００１３】
ＤＭＡまたはＩ／Ｏ動作を終了する別の方法としては、ＤＭＡまたは入出力コントローラが伝送時の最終信号として特定のデータパターン、例えばファイル終端（ＥＯＦ）または伝送終了（ＥＯＴ）キャラクタを検出するようにプログラムする方法がある。
【００１４】
【発明が解決しようとする課題】
従来のＤＭＡおよび入出力技術では、入出力動作の完了を待ちながらコンピュータが他のタスクを実行できるようになっているが、これら他のタスクは同じメモリへのアクセスが競合により、必ずしもアクティブなＤＭＡ動作がされない場合と同じ実行速度続行されるわけではない。コンピュータおよびＤＭＡコントローラの双方からアクセス可能なメモリが、シングルアクセスに必要な速度の少なくとも２倍速ければ、双方とも遅延が生じないようにして、交互に行われるＤＭＡアクセスとコンピュータアクセスとにより、メモリが時分割共有される。他方、速度がメモリアクセス時間によって制限されている場合、従来技術では、一方のプロセスまたは他方のプロセス、または計算または入出力のいずれかをホールドし、他方のプロセスに進むことができるようにしなければならない。これには、ＤＭＡ動作が任意の時間にＲＡＭアクセスサイクルをスチールする場合、所定のプログラムの実行にどれだけ時間がかかるかは、絶対正確には確かめることができないという欠点がある。リアルタイムアプリケーション、例えば時分割多重アクセス無線通信装置における動作のタイミングを制御する例では、正確なタイミングを維持することが重要である。
【００１５】
従って、汎用マイクロプロセッサのデータＲＡＭに競合しないように、周辺デバイスコントローラまたは特殊用途のコプロセッサがアクセスし、プログラムの実行タイミングが乱されるのを防止できる、ＤＭＡコントローラを提供することが望ましい。
【００１６】
従来技術では、特殊用途コプロセッサと汎用マイクロプロセッサとを接続することも知られている。高速固定／浮動小数点演算を実行するようになっているある種の最新のデジタル信号プロセッサは、いわゆるホストポートを備えている。一つのホストポートは、信号プロセッサの活動を総合的に制御する汎用マイクロプロセッサに取り付けるための一組のピン接続手段から成る。しかしながら、このホストポート接続手段の性質によれば、ホストが逆にコプロセッサのメモリに直接アクセスできたとしても、コプロセッサは直接マイクロプロセッサのデータメモリにアクセスできない。内部メモリを含むコプロセッサの速度は、汎用ホストプロセッサの速度よりも速いので、コプロセッサのメモリはあまり競合することはない。従って、汎用ホストプロセッサが高速コプロセッサよりも大幅に遅れることができないが、他方、コプロセッサはホストの動作よりも大幅に遅れることができる。
【００１７】
従来技術におけるコプロセッサによるホストプロセッサへのＤＭＡのかかる例は、主プロセッサとコプロセッサの要求との競合を調停しながら、逆にサイクルスチールによりホストプロセッサからコプロセッサメモリへのアクセスを行うことにより、メモリへのアクセスを可能とする公知のＤＭＡタイプのものである。従って、一つ以上のコプロセッサによるホストプロセッサのランダムアクセスメモリへの競合しない（コンテンションのない）アクセスを可能とする装置を提供することが望まれている。
【００１８】
従って本発明の目的は、周辺デバイスのコントローラまたは特殊用途のコプロセッサが競合しない状態で、汎用マイクロプロセッサのデータＲＡＭにアクセスし、タイミングを乱さないようにできるＤＮＡコントローラを提供することにある。
【００１９】
本発明の別の目的は、汎用マイクロプロセッサがプログラムメモリから命令をフェッチし続けることができるようにすると共に、同時に周辺デバイス用コントローラまたは特殊用途コプロセッサが汎用マイクロプロセッサのデータＲＡＭにアクセスできるようにする装置を提供することにある。
【００２０】
本発明のさらに別の目的は、フォン・ノイマン型アーキテクチャを有する汎用マイクロプロセッサと連動して作動する、上記特徴を備えた装置を提供することにある。
【００２１】
【課題を解決するための手段】
本発明は、制御マイクロプロセッサが読み出し専用メモリ（ＲＯＭ）内に記憶された制御プログラムを実行するシステムで作動する。制御プログラムのうちの命令はデータメモリとして働くランダムアクセスメモリ（ＲＡＭ）からデータを読み出したり、ＲＡＭにデータを書き込んだりすることが多いが、これは常時行われているわけではない。従って、データメモリはＲＯＭから命令を読み出す際は制御プロセッサによってデータメモリにアクセスがされているわけではなく、更に命令実行中においては、一部の命令のためでもアクセスされるわけではない。しかしながら制御プロセッサが読み出し専用メモリから次の命令をフェッチしている間に、別の電子ユニットにより同時にデータメモリにアクセスすることは、通常、不可能である。この理由は、マイクロプロセッサは一般に、制御メモリ（ＲＯＭ）またはデータメモリ（ＲＡＭ）のいずれでもすべてのタイプのメモリを接続するには、同じアドレスおよびデータバスを使用するからである。しかしながら本発明は、少なくとも制御プロセッサがＲＯＭから命令を読み出している際に、制御プロセッサからデータメモリを切り離すよう、スイッチを使用することにより、ＲＯＭとデータメモリのバスとを別個にしている。このスイッチは命令フェッチ動作を行っていることを表示する、マイクロプロセッサにより発生される制御信号により作動できる。この信号およびその他の信号は、ＲＡＭバス調停ロジックにより使用され、ＲＡＭバスが他のプロセッサに割り当てできるかどうかを判別する。これとは異なり、データメモリに関連するアドレス領域に対応していないアドレスに制御プロセッサがアクセスしているかどうかを検出するための検出手段を設けてもよい。
【００２２】
制御プロセッサが命令フェッチを実行する時間が、データメモリとＲＯＭの相対速度に応じてデータメモリへ一回以上アクセスすることにより、コプロセッサの要求を満たすようにできる。ダイレクトメモリアクセススケジューラは、このような回数のデータメモリアクセスを行った後に、必要であればＲＡＭバスを制御プロセッサに再接続するスイッチ制御信号を制御プロセッサがアサートする時間に、データメモリへのアクセスを終了する。従って、他のプロセッサによる、かかるアクセスにより、制御プロセッサのプログラムの実行が低速化されることは全くない。
【００２３】
本発明の別の特徴によれば、例外によりＲＡＭバスに対する高優先度のリクエストは、制御プロセッサよりも優先できる。例えば、ＤＭＡスケジューラにより維持されているデータメモリへのアクセスのキューが、最大の可能なキュー長さに達した場合、高優先度をアサートでき、このような最大可能キュー長さに達した時点でスケジューラは当該キューを空にするまで、データメモリの使用の延長が許可され、制御プロセッサが平均時間内にデータメモリにアクセスしようとする場合、制御プロセッサに待機信号が発せられる。
【００２４】
従って、本発明の一つの特徴によれば、データメモリへのアクセスを制御するための装置は、前記制御プロセッサに結合するための制御プロセッサインターフェース手段と、前記コプロセッサに結合するためのコプロセッサインターフェース手段と、前記制御プロセッサインターフェース手段に結合されており、前記制御プロセッサが前記プログラムメモリへのアクセスをリクエストしていることを検出し、この検出に応答して第１アクセス制御信号を発生するための検出手段と、前記コプロセッサインターフェース手段に結合されており、前記コプロセッサが前記データメモリへのアクセスをリクエストしていること検出し、これに応答して第２アクセス制御信号を発生するためのスケジューリング手段と、スイッチ制御入力手段、前記制御プロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第１インターフェース手段、前記コプロセッサに関連したメモリアドレス信号、メモリデータ信号およびメモリ制御信号に結合するための第２インターフェース手段、および前記データメモリに結合するためのデータメモリインターフェース手段を有し、前記制御入力手段から受信されたスイッチ制御信号に応答して、前記データメモリインターフェース手段に前記第１インターフェース手段と前記第２インターフェースとを交互に結合するスイッチと、前記検出手段、前記スケジューリング手段および前記スイッチに結合されており、前記第１および第２アクセス制御信号に応答してスイッチ制御信号を発生するための調停手段とを備える。
【００２５】
添付図面を参照して、次の詳細な説明を読めば、本発明の上記およびそれ以外の特徴、目的および利点が理解できよう。
【００２６】
【実施例】
本発明は、送信または受信のいずれか、またはその双方のための音響、無線もしくはレーダーデータを同時に処理するのに使用できる、高速の特殊用途コンピュータのアーキテクチャに関する。かかるコンピュータアーキテクチャは、一般に一つ以上の特殊用途用信号処理プロセッサの作動を調和をとりながら制御するのに使用される一つの制御プロセッサ、例えば汎用マイクロプロセッサのチップを含む。本発明はすべてのプロセッサが共通する一つのランダムアクセスメモリ（ＲＡＭ）チップを共用できるようにするものであり、よって、ＲＡＭチップは媒体として使用でき、一つのチップによって一方向にすでに処理されたデータは、別の方向に処理すべき別のチップにこの媒体を通して利用可能となる。
【００２７】
本発明の一つの特徴は、主プロセッサがそれ自体、一本のデータバスしか有していないＺ８０（ザイログ社製）のような、フォンノイマンタイプのものであっても、主プロセッサをそのデータＲＡＭに接続するための別個のデータバスを設けたことにある。データＲＡＭからのアクセスが必要であり、またはこのアクセスを切り、コプロセッサによるアクセスを可能とする際に、例えばＺ８０のようなフォン・ノイマン型コンピュータのバスをデータＲＡＭに接続するためのスイッチが設けられる。従来技術と対照的に、このコンピュータはかかるアクセスが必要な際に、データＲＡＭへのアクセスが（少なくとも通常の状況下では）否定されないので、プログラムの低速化は生じない。このような低速化は、コンピュータサイクルをスチールすることなく、データＲＡＭへのアクセスを行うよう、本発明のＤＭＡコントローラには十分な機会が与えられているので、このようなアクセスが可能である。例えばＺ８０のフォン・ノイマン型コンピュータは、定期的にプログラムメモリ（例えばＲＯＭ）から次のプログラム命令を求めなければならず、本来的に単一のバスを用いたフォン・ノイマン型アーキテクチャでは、ＲＡＭのアクセスを同時にリクエストできない。従って、コンピュータの命令の実行サイクルごとに、ＲＡＭがコンピュータによってアクセスされない期間が設けられるが、これはコンピュータはこの時間にＲＯＭから命令をフェッチするからである。
【００２８】
本発明によれば、コンピュータの「命令フェッチ」サイクルの発生を検出し、データＲＡＭをコンピュータのフォン・ノイマン型バスから切り離し、更にこの代わりにデータＲＡＭをＤＭＡコントローラバスに接続し、このバスを通して周辺コントローラまたはコプロセッサのような他のデバイスがアクセスを受け入れることができるようにするスイッチの操作を制御する。多くのコンピュータは本発明における命令フェッチのために使用できる「命令フェッチ」表示信号を発生する。例えば、Ｚ８０プロセッサは命令フェッチサイクルの発生を表示するＭ１と称される信号を発生し、他のプロセッサも形態が異なることがあるが、かかる信号、例えば８０８５はＳ０、Ｓ１モード信号を発生する。
【００２９】
これと異なり、スイッチの動作は、データＲＡＭに関連する領域内にあるメモリアドレスにプロセッサがアクセスしようとしていることを検出することにより発生される信号により制御できる。かかる信号が発生していないことは、データＲＡＭをコンピュータのフォン・ノイマン型バスから切り離し、代わりにデータＲＡＭをＤＭＡコントローラバスに接続できることを意味している。これについては、後により詳細に説明する。
【００３０】
従って、本発明のＤＭＡコントローラは、ホストプロセッサからの命令フェッチ制御信号により、ＤＭＡデバイスへのデータＲＡＭのアクセスを許可するように同期されている。本発明の別の特徴によれば、ＤＭＡコントローラは先着順にサービスする方法で、コプロセッサによりリクエストされたＤＭＡアクセスのキューを形成する手段を更に含む。ＤＭＡコントローラは更に、同じ優先度のアクセスリクエストの複数のキュー（異なるキューは異なる優先度を有する）を形成する手段を含む。優先度の低いほうのキューはそれよりも高い優先度のキューがすべて空となった場合に限り、アクセスの許可を受ける。これと異なり、「ラウンドロビン」スケジューラに従って同じ優先度の別個のリニアなキューにアクセスの機会を与えることもできる。
【００３１】
一般に、ＤＭＡリクエストの平均レートは、利用可能なＤＭＡの平均回数に容易にマッチされると考えることができる。上で説明したように、ＤＭＡ動作はコンピュータが一つの命令を実行するたびに表示され、このような表示は毎秒少なくとも１００万回生じる。従って、通常、マイクロプロセッサの速度を低下することなく、秒ごとに１メガバイトのＤＭＡキャパシティが生じるというケースとなる。更に、１回の命令フェッチのスペース内に２回のＤＭＡアクセスを収容できるので、１メガバイト／秒のＤＭＡキャパシティとすることさえ可能である。
【００３２】
更に一部の命令の各々は、ＲＯＭから２または３バイトをフェッチするので、ＲＡＭに数回連続してＤＭＡアクセスするには時間がかかる。更に一部の命令は、ＲＡＭに全くアドレス指定せず、その代わり、ＲＯＭ、ＥＥＰＲＯＭ、内部レジスタまたは入出力ポートにアクセスするだけである。従って、代表的な汎用プロセッサは、フルスピードで走っている時でも、平均として利用できるＲＡＭバスバンド幅の一部以上は使用しないので、本発明のＤＭＡコントローラによりＲＡＭバスバンド幅の多くの部分をコプロセッサの使用に利用できる。多くの高速周辺デバイスまたはコプロセッサ、例えばデジタル時分割多重アクセス（ＴＤＭＡ）携帯セルラー電話に含まれるような、リアルタイムの音声入出力デバイスをサポートするには、平均として毎秒２〜４メガバイトのＤＭＡで十分である。かかるコプロセッサは一般に限られた数のデータバイトを読み出し、次に多数の数値的または論理演算の実行にあたって、これらデータバイトを使用し、限られた数の結果を発生し、その後、これら結果はＤＭＡを介してデータＲＡＭに記憶される。ＤＭＡによる各バイトで、一般に４０回の数学的演算が実行されたとすると、１メガバイト／秒のＤＭＡは毎秒４千万個の命令（４０ＭＩＰＳ）の速度で作動するコプロセッサをサポートできる。しかしながら、一般的に多数のコプロセッサが極めて近い時間でＤＭＡリクエストのクランプを発しし、ＤＭＡコントローラにおいて利用可能なキュースペースを満たしてしまう可能性がある。本発明のＤＭＡコントローラは一般に先入れ先出し（ＦＩＦＯ）メモリを使用してキューを実行するようになっている。このＦＩＦＯメモリのサイズはオーバーフローなしにキューイングされる、実質的に同時に受け付けたリクエストの最大数を決定する。デジタルＴＤＭＡセルラー電話の例では１６バイトの入力のＦＩＦＯ長さがＤＭＡ動作を適当にスムーズにする。しかしながら当業者であれば、適当なＦＩＦＯメモリサイズの選択はアプリケーションによって決まり、従って本例とは異なることがあり得ることを理解できよう。
【００３３】
集められたＤＭＡリクエストのより効率的な処理を、より柔軟にするために、本発明のＤＭＡコントローラはＦＩＦＯメモリが満杯となった高い優先度のＤＭＡキューを処理するように、コンテンションなしの原則を破るための手段を含むこともできる。かかるキューに対して「ＦＩＦＯ満杯」表示信号が発生されると、ＤＭＡコントローラにデータＲＡＭアクセスのためにコンピュータよりも高い優先度を与えることができる。既にスタートしているマイクロプロセッサによるＲＡＭへのアクセスの実行が、まず許容されて、このアクセスが完了する。かかる完了は、例えばコンピュータからＲＡＭへの読み出し信号または書き込み信号が除かれることにより示される。次に、コンピュータがＲＯＭからの命令フェッチを実行すると、ＲＯＭバスがフリーにされ、ＤＭＡコントローラのＲＡＭへのアクセスが許容される。ＤＭＡコントローラはキューが完全に処理され、このキューに対するＦＩＦＯ空信号が発生されるまで、アクセスを続ける。しかしながら、マイクロプロセッサがＲＯＭからの命令フェッチを実行する代わりに、別のデータメモリのアクセスをリクエストした場合、ＦＩＦＯ空信号がアサートされるまで、コンピュータに待機信号をアサートすることにより、このリクエストをホールド状態に置く。ＦＩＦＯ満杯信号が発生された時、コンピュータがＲＡＭにアドレス指定していない場合、ＤＭＡキューは即座にアクセスすることを許容され、キューが空になるまでアクセスが続けられる。ＦＩＦＯ満杯信号が発生されている際に、コンピュータがＲＡＭをアドレス指定している場合、コンピュータは完了するよう実行でき、次のコンピュータのアクセスリクエストがＲＡＭに対するものである場合、このリクエストは否定され、コンピュータはホールド状態に置かれ、空になるためのＤＭＡキュー時間が与えられる。
【００３４】
コンテンションなしの原則を破る上記手段の代替手段として、ＤＭＡコントローラとコンピュータの双方が一連の連続するアクセスを必要とする際に、ＤＭＡコントローラがコンピュータと交互にＲＡＭアクセスを割り当てられるように、インターリーブ法を用いることができる。このインターリーブ法の作用は、ＤＭＡキューが空となるまで、コンピュータ全体を遅延することなく、コンピュータおよびＤＭＡコントローラの双方が低速化することである。
【００３５】
ＤＭＡキューが特権的取り扱いを受け付けるかどうか、いずれにせよＦＩＦＯ満杯信号が発生されている場合のコンピュータよりも完全に高い優先度またはＦＩＦＯ  ＦＩＦＯの発生が完了している際の、競合するコンピュータのＲＡＭアクセスリクエストとの代替優先度は、ＤＭＡキューに割り当てられている優先レベルに応じて決まる。この優先度は（ハードウェアで実現することにより）固定できるし、また、セットアップ時またはその後にコンピュータ自体によりプログラムできる。優先度をプログラム可能とすることにより、アプリケーションまたはアプリケーション内のその時の作動モードに従って、ＤＭＡ優先度をダイナミックに変えるような、大きなフレキシビリティが得られる。
【００３６】
本発明の別の特徴では、ＤＭＡキューの優先度は、プロセッサによってなされるリクエストに対する優先度を決定する外に、他のＤＭＡリクエストに対する一つのＤＭＡデバイスのＲＡＭアクセスリクエストの優先度も決定できる。周辺装置が進行中のコンピュータプログラムを中断して、特別な注意を受けることができるようにするための、割り込み優先度決定法と関連すれば、かかる層状の優先度は従来技術で知られているものである。しかしながら、本発明のＤＭＡコントローラにおけるように、優先度が決められた割り込みは、実行中の命令を中断するように認められているわけではないし、このような優先度の決められた割り込みはメモリへの直接アクセスを受け付けるような割り込みを行うものでもない。他方、メモリへの直接アクセスを必要とする従来技術のデバイスでは、プロセッサのプログラムの実行に割り込みを行うようになっている。このような割り込みは一般に、まずマイクロプロセッサへのバスリクエスト信号をアサートし、次にマイクロプロセッサがバス許可信号によって応答するまで待機することによって行われる。このような従来の方法におけるマイクロプロセッサのプログラムの実行は、バスリクエスト信号が除かれるまで停止される。
【００３７】
本発明の応用例は、時分割多重アクセス（ＴＤＭＡ）デジタル携帯セルラー電話として図１に示されている。しかしながら、当業者であればデータＲＡＭをマイクロプロセッサと一つ以上のコプロセッサで共用し、マイクロプロセッサがプログラム命令のために異なるメモリソースを利用するようなコンピュータアーキテクチャで、本発明の種々の特徴を活用できることは、容易に明らかであろう。従って、本発明を完全に理解するためには、ＴＤＭＡデジタル携帯セルラー電話の動作を完全に説明することは必要ではない。完全に説明する代わりに、本発明の種々の特徴が制御プロセッサと多数のコプロセッサと共用データメモリとの間の相互作用をいかに容易にできるかを説明する主目的のために、以下、かかる電話の動作の概略を説明する。
【００３８】
次に図１を参照すると、図示したＴＤＭＡデジタル携帯セルラー電話は、２つの基本的な作動モード、すなわち待機モードと会話モードを有している。待機モードでは、電話はセルラーネットワーク（図示せず）により放送されている呼び出しチャンネル、すなわちページングチャンネルを聴取しているが、送信は行っていない。従ってこの待機モードでは信号処理のアクティビティは低く、１秒当たりのＤＭＡリクエスト数は少ない。
【００３９】
会話モードでは、電話はアンテナ１および受信機２によりセルラーネットワークからコード化されたデジタル状の音声情報を搬送するＴＤＭＡ信号バーストを受信する。電話はデジタル状の音声情報をバッファリングし、復調し、デコードし、これを連続音声波形に変換しなければならない。少なくともユーザーが認識するような、多かれ少なかれ、同じ時間にマイクロフォン１７からユーザーの音声が入力され、デジタル化され、コード化され、割り当て伝送タイムスロットにおいて、データバーストとして送信される。送信タイムスロットおよび受信タイムスロットは、電話が同時に送受信をしないで、同じアンテナ１を使用できるようにインターリーブされている。従って、ＴＤＭＡフレーム期間中に、下記のように多数の動作を実行しなければならない。
【００４０】
１．送信／受信（Ｔ／Ｒ）スイッチ４を使用して、アンテナ１を受信機２に接続し、受信機の電源をオンにすること。
２．受信機２でアナログ信号のバーストを受信し、アナログ／デジタル（Ａ／Ｄ）コンバータ９を使用してバースト信号をデジタル化し、ＤＭＡコントローラ６を介してデジタル信号をデータメモリ８のバッファ領域内に転送し、次にアンテナ１を送信機３に接続して受信機の電源を切ること。
３．バースト復調用コプロセッサ１１を附勢し、データメモリ８のバッファ領域内に記憶されていたバーストを復調し、復調した結果をデータメモリ８に戻すこと。
【００４１】
４．コード化／デコード化ユニット１２を附勢し、データメモリ８から送信できるように、次のバーストを逐次検索し、それを暗号化し、暗号化したデータをメモリ８に記憶すること。
５．送信機３を附勢し、シーケンス内の次に暗号化されたデータバーストを送信すること。このデータバースト用のデータはデータメモリ８から検索され、送信前にデジタル−アナログ（Ｄ／Ａ）コンバータ１０によりアナログ状に変換される。
【００４２】
６．ステップ３の実行が終了するごとに、暗号化／解読用コプロセッサ１２を附勢し、コード化されたデジタル音声を解読すること。
７．ステップ６の実行を４回完了するごとに、誤り訂正用デコーダコプロセッサ１３を附勢し、解読された結果をデインターリーブし、デコード化し、デコード化された音声データまたは制御データを発生すること。
８．ステップ７が完了するごとに、音声データデコーダ１４を附勢し、デコーダ化された音声データを多数のパルスコード変調（ＰＣＭ）波形サンプルに変換し、これらサンプルをデータメモリ８内の循環バッファに入れること。
【００４３】
９．この間、１２５μＳごとに、先に記憶されたＰＣＭサンプルをデータメモリ８から抽出し、これをＤ／Ａコンバータ１０によりデジタルからアナログデータに変換し、イヤピース１８をアナログ音声波形で駆動すると共に、１２５μＳごとにマイクロフォン１７からのアナログ波形サンプルをＡ／Ｄコンバータ９によりデジタル波形に変換し、これをデータメモリ８内にある送信音声循環バッファに記憶すること。
１０．２０ｍＳごとに送信音声バッファからの１６０個のＰＣＭサンプルを処理し、音声データを発生し、この音声データをメモリに入れること。
１１．ステップ１０を実行するごとに、チャンネルコーダ１６を附勢し、音声データを誤り訂正コード化し、多数のＴＤＭＡバースト状でコード化されたデータをインターリーブし、データメモリ８内で順次バーストを組み立てること。
【００４４】
上記より、多数のコプロセッサ１９を異なる時間に附勢する必要があること、および実質的に同時であったり、またはタイミングが不定なプロセスがあることが理解できよう。これら非同期プロセスにより、同一メモリに対する多数のアクセスリクエストが生じることがあるので、ＤＭＡコントローラ６は特定のＤＭＡチャンネルの優先度に従って、かかるリクエストの許可をインターリーブしなければならないことがある。例えば、ＤＭＡコントローラ６は、データメモリ８へのアクセスをリクエストする最高の優先度のＤＭＡチャンネルが、より低い優先度のチャンネルおよび制御プロセッサ５によってなされるアクセスのリクエストよりも優先し、かつ、優先度の同じＤＭＡチャンネルによってなされるリクエストを割り当てられているＤＭＡ動作の間で、ラウンドロビン方法でインターレース化するという規則を維持しなければならいことがある。後者の場合、ＤＭＡ操作は（ＤＭＡチャンネルの各々の優先度が高い時に）制御プロセッサ５によってなされるリクエストよりも、優先されるように許可されるか、または（ＤＭＡチャンネルの各々の優先度が中間にある時に）制御プロセッサ５によってなされるリクエストと交互に許可してもよい。
【００４５】
他のプロセスまたは完了する所定の数の別の動作にしか依存しないで開始するプロセスもある。このような調和制御は主コンピュータまたは制御プロセッサ５に応じて決まる。制御プロセッサ５はＤＭＡコントローラ６を附勢して、所定の数のバイトをコプロセッサ１９のうちの一つに送ったり、これらバイトをこのコプロセッサから受信したり、またこれらバイトをデータメモリ８から受信したりこのメモリへ送ったりし、更にコプロセッサを移動して所望の動作を実行する。制御プロセッサ５はひとつの動作が完了すると、ＤＭＡコントローラ６から割り込みを受け付ける。制御プロセッサ５が別のコプロセッサの附勢およびＤＭＡの動作をトリガーするかどうかを判断する。ＤＭＡコントローラ６およびコプロセッサが自律的に作動している間、制御プロセッサ５は、より低速の優先度の低いタスク、例えばユーザーのディスプレイの更新とユーザーのキーボードのスキャン（いずれもマンマシンインターフェース（ＭＭＩ）（図示せず））とを取り扱う。
【００４６】
本発明は理想的には、上記のようなシステムを実現するのに適する。次に、図１に示した応用例についてより詳細に説明する。
【００４７】
送信機３または受信機２のいずれかには、制御プロセッサ５により制御されるＴ／Ｒスイッチ４によりアンテナ１が接続される。制御プロセッサ５は、受信機２およびＡ／Ｄコンバータ９がＴＤＭＡ信号バーストを受信し、好ましくは米国特許第5,048,059 号（本明細書では参考例として援用する）に開示されているようなログポーラ技術を用いてデジタル化できるようにし、更に本発明に従って構成されたＤＭＡコントローラ６がこのデジタル化された受信データをランダムアクセスデータメモリ８へルート化できるようにすることも可能である。Ａ／Ｄコンバータ９はマイクロフォンの信号をデジタル化するため、マイクロフォン１７にも結合されており、デジタル化された信号はＤＭＡコントローラ６を介してデータメモリ８にもルート化される。制御コントローラ５は所定数の受信データサンプルを収集した後に、割り込み信号を発生するように、ＤＭＡコントローラ６をプログラムするようにもでき、所定数の受信データサンプルが収集された時点で、制御プロセッサ５は復調用コプロセッサ１１を再附勢し、本発明のＤＭＡコントローラ６の助けによりデータメモリ８から受信データを自律的に読み出し、自己の固有速度でこのデータを処理し、ＤＭＡコントローラ６の助けにより、処理された結果をデータメモリ８に記憶する。制御プロセッサ５は復調用コプロセッサ１１からの予想された数の処理結果がメモリにＤＭＡ操作された後に、割り込み信号を発生するようにＤＭＡコントローラ６をプログラムすることもできる。次に制御プロセッサ５は、暗号化／解読用コプロセッサ１２を附勢し、データメモリ８からの結果を同様に読み出し、この結果をデコードし、デコードした結果をデータメモリ８に戻すことができる。好ましい構成例では、この解読操作は過度のメモリの読み出しおよび再書き込みを防止するように、復調用コプロセッサ１１およびＤＭＡコントローラ６から出力される結果の間において実行される。かかる構成例では、暗号化／解読用コプロセッサ１２はＤＭＡコントローラ６の一部となるので、このコプロセッサは復調用コプロセッサ１１からのデータがデータメモリ８に再び記憶される前に、データに対して演算できるので、これらデータがデータメモリ８に書き込まれたり再読み出しされたり、再書き込みされるのを防止できる。
【００４８】
別の実施例では、制御プロセッサは上記のような方法の代わりにデータメモリ８に記憶されている結果に対して直接演算し、これら結果を解読するソフトウェアによる解読用アルゴリズムを実行する。これらの方法は、解読用アルゴリズムの選択によって決まる。更に本発明のＤＭＡコントローラ６は、制御プロセッサ５により再プログラム化し、上記解読技術のいずれかに従ってデータのルート選択を実行できるので、同じハードウェアを使って状況に応じ、いずれかの解読モードを実行することが可能である。
【００４９】
解読操作の後に、ＤＭＡコントローラ６は解読されたデータの新しいブロックがメモリに記憶されたことを示す割り込み信号を、制御プロセッサ５に対して発生するように、予めプログラムすることも可能である。制御プロセッサ５は、次に、処理されたブロックのカウント数をインクリメントし、誤り訂正デコード用コプロセッサ１３を附勢してブロックのデインターリーブ化およびデコード化操作を行う時間になっているかどうかを判断できる。そのような操作を行う時間となっている場合、ＤＭＡコントローラ６は附勢され、デコード化のためのデータを誤り訂正デコード用コプロセッサ１３に送ると共に、このコプロセッサから予定した数のデコード化された結果を受け、再度データメモリ８にルートバックする。ＤＭＡコントローラ６は予定された数の結果が処理され、データメモリ８に記憶されると、制御プロセッサ５に割り込みするようにセットできる。
【００５０】
ＴＤＭＡデジタル携帯セルラー電話により送信すべき信号を発生しなければならない時は、上記手順と逆の手順に類似する操作を実行する。しかしながら、ＤＭＡコントローラ６内に暗号化／解読用コプロセッサが設けられている実施例では、この暗号化／解読用コプロセッサは「バーストビルダー」（図示せず）と称される第２コプロセッサからの暗号化すべきデータを得ることが好ましく、この第２コプロセッサは同期ワードおよび他の制御ビットとコード化されたデータとを組み合わせて、所定の送信フォーマットにし、組み立てられたファースト信号を数値サンプルのシーケンスによって表示される変調波形に変換し、次にこれら信号をＤ／Ａコンバータ１０へ出力して、その後、送信機３を変調する。いま述べたような中間バーストビルダーは、インターリーブ化フォーマット発生器によって定義されるシーケンスのロケーションからのデータを検索できるＤＭＡアドレス発生器を含んでいなければならない。次に、ホスト制御プロセッサ５によりＤＭＡコントローラ６を使用すると、どのように他のコプロセッサのアクティビティに依存し、または他のコプロセッサのアクティビティと独立して、コプロセッサのアクティビティを調和させ、更に処理のためデータを見つけたり、または処理後、データを入れるメモリスタートアドレスをプログラムするだけで、コプロセッサ間の所望の中間結果のルート化を実施できるかが明らかとなるので、これ以上操作については続けて説明しない。
【００５１】
制御プロセッサ５、例えばフォン・ノイマン型アーキテクチャであるザイログ社のＺ８０は、シングルアドレスバスおよびＤＭＡコントローラ６への双方向性データバス接続を有していることが理解できよう。本発明のＤＭＡコントローラ６は、制御プロセッサ５により実行されるプログラム命令シーケンスを含むＲＯＭ７に制御プロセッサバスを接続する手段を含む。ＤＭＡコントローラ６は制御プロセッサ５がＲＯＭ７にアクセスする際に、前記コプロセッサ１９の一方または他方に、データメモリ８のデータバスおよびアドレスバスを接続する手段と、制御プロセッサ５によりリクエストされた際に制御プロセッサ５のバスにデータメモリ８のバスを接続する手段とを含む。かかるリクエストは制御プロセッサ５のアドレスバス上のアドレスがデータメモリ８に関連するアドレス領域に対応する場合に表示される。例えばデータメモリアドレス領域はアドレスレンジ３２, ７６８〜６５, ５３５となり得、アドレスレンジ０〜３２, ７６７はＲＯＭ７によって占められるアドレスに対応する。ＲＯＭ７に３２Ｋバイトよりも多いプログラムを記憶できるようにするため、ＤＭＡコントローラ６は１バイトのメモリアドレス拡張レジスタであるメモリ管理ユニット（ＭＭＵ）を内蔵できる。このレジスタは、制御プロセッサ５により実行されるＩ／Ｏ命令またはメモリマップドＩ／Ｏ命令により、レジスタ内に８ビットバイトを書き込むことができ、プログラムメモリアドレスレンジの上半分、すなわちレンジ１６, ３８４〜３２, ７６７にマップ化すべきＲＯＭの２５６までの可能な１６Ｋバイトセグメントの一つを選択でき、一方、ＲＯＭの同じ１６Ｋのセグメントはプログラムメモリレンジの下半分、すなわち０〜１６, ３８３にマップ化される。永久的にマップ化される部分、すなわちルートＲＯＭを設けた理由は、この部分がＭＭＵレジスタのスイッチオン時の任意の内容と独立して作動できる電源スタートアップルーチンを含むからである。更に、ルートＲＯＭはＭＭＵを操作する際に、１６ＫのＲＯＭセグメント間でセグメントジャンプを実行するのに必要な永久コードを含むことができる。かかるＭＭＵは従来技術で知られているものであり、株式会社日立製作所により販売されている６４１８０として知られている市販のプロセッサ内に含まれている。
【００５２】
次に図２を参照して本発明のＤＭＡコントローラの内部の細部について説明する。
【００５３】
アドレスデコーダ２０は、１６ビットプロセッサのアドレスバス上での特別アドレス、すなわちアドレスレンジの発生を検出する。このアドレス検出は、プロセッサ信号、例えば（Ｚ８０マイクロプロセッサでは）「ＭＲＥＱ」または（８０８５マイクロプロセッサでは）「ＡＬＥ」信号により同期化できる。例えば特別アドレスはＭＭＵ２１に含まれる８ビットレジスタ（図示せず）に割り当てられた入出力アドレスである。この入出力アドレスが入出力操作を表示する制御プロセッサ５からの制御信号と共にアドレスバス上で検出されると、８ビットのデータ値が制御プロセッサ５からＭＭＵレジスタに転送され、ＲＯＭアドレスの最上位ビットの形成に使用される。制御プロセッサ５からのアドレスビットが制御プロセッサ５からの読み出し制御信号と共にＲＯＭアドレスレンジ（すなわち制御プロセッサ５のアドレスバスによって定義されるアドレススペースのうちの低いほうの３２Ｋ）内で検出されると、制御プロセッサアドレスビット（例えば実施例における少なくとも下位の１５ビット）がＭＭＵ２１により出力される８ビットと組み合わされ、拡張アドレスを形成する。この拡張アドレスは構成例に応じて２０〜２４ビットの間の広さになるので、少なくとも１メガバイトのＲＯＭのアドレス指定が可能である。ＭＭＵ２１からＲＯＭ７に接続されるよう表示されている２０〜２４のピンには、必要な制御信号、例えばチップイネーブル信号が含まれる。
【００５４】
制御プロセッサ５がＲＯＭ７にアドレス指定していることが検出されると、ＲＡＭバス調停ロジック２４へのＲＡＭ／ＲＯＭ／ＩＯ  アドレスレンジ信号はアクティブとされない。次にＲＡＭバス調停ロジック２４は、ＤＭＡアドレスバスおよびデータバス、および読み出し／書き込み制御信号（これら信号のいずれもコプロセッサ１９のうちの一つにより行われるデータメモリへのアクセスと関連している）をデータメモリ８に接続するように、バススイッチ２３をスイッチングすることによりＤＭＡスケジューラ２５のＲＡＭバス３６へのアクセスを許可してもよい。しかしながら、データメモリ８に関連するレンジ内で、プロセッサのアドレスが検出され、プロセッサからの制御信号が、読み出しまたは書き込みのアクセスは明らかであると表示した場合、ＲＡＭバス調停ロジック２４の働きはＤＭＡスケジューラ２５から受信された優先信号および動作シーケンスの現在のステートに依存する。すなわち、既にスタートした制御プロセッサのデータメモリへのアクセスは、１バイトのアクセスを完了するように、常に許可されるが、ＤＭＡスケジューラ２５が適当な優先度のＤＭＡリクエストが待機中であることを表示すれば、既にスタートしたアクセスはその直後に続くアクセスのためにホールドされることがある。一般に制御プロセッサはこの目的のために、これらプロセッサに供給される待機信号を受け入れることができる。
【００５５】
下記のＤＭＡキュー（ＦＩＦＯ）はＤＭＡチャンネルコントローラ２６、２７、２９の一部である。チャンネルコントローラ２６、２７、２９の各々は、アドレス指定可能なスイッチの一組であるマルチプレクサ２８を介してＲＡＭバス３６に接続されている。マルチプレクサ２８はＤＭＡスケジューラ２５の制御下で作動され、ＤＭＡチャンネルコントローラ２６、２７、２９の所定の一つをＲＡＭバススイッチ２３に接続する。図２に表示されている２５本のラインによるコネクション３７は１５ビットのアドレスバス、８ビットの双方向性データバスおよび読み出し（リード）または書き込み（ライト）を表示する制御信号を一般に含む。各ＤＭＡコントローラに関連する、優先度が固定しておらず、むしろコプロセッサ１９のうちの関連する一つから受信されるようになっている場合は、優先信号を含むことができる。ＤＭＡコントローラ６はピン数および電力消費量を減らすよう、制御プロセッサ５と同一チップに構成することが好ましい。ＲＯＭ７およびデータメモリ８は、一般にこのチップの外部に設けられるが、外部アドレスを減少するように、主にＤＭＡ動作によりアドレス指定されるデータメモリ８部分を、オプションとして同じチップに設けることができれば有利である。また、データメモリ８のアドレス指定のため、ＲＡＭバススイッチ２３によりマイクロプロセッサのバスがスイッチングされる際の、ＲＯＭデータバスのトグリングを防止するため、チップ上にオプションとしてスイッチ３３を設けることができる。メモリ管理ユニット２１は制御プロセッサ５がデータメモリ８のアドレス指定をする際のＲＯＭアドレスラインのトグリングを防止するように設計できる。これらラインの不要なトグリングを防止することにより、電力消費量が低減されるが、このことは、ＲＡＭバスとＲＯＭバスとを分割したことによる本発明の利点の一つである。
【００５６】
多くの外部コプロセッサをチップに接続すべき時は、ビットシリアルインターフェースを使用することにより、ピン数を最小にすることも好ましい。多くの市販のコプロセッサ、例えばテキサスインスツルメント社のＴＭＳ３２０−Ｃ５３またはアナログデバイセス社のＡＤＳＰ２１０１は、適当なシリアルインターフェースを有している。これらインターフェースはシリアルデータラインを使って本発明のチップとの間で１６ビットワードを転送する。ビット転送はクロックラインと同期されており、ワードバウンダリはストローブラインによって表示される。本発明により構成されたチップは、関連するＤＭＡチャンネルコントローラ２６、２７、２９により、かかるシリアルインターフェースのプロトコルと１６ビットパラレルワードインターフェースとの間の変換を行うように、シリアル／パラレル変換インターフェース回路（シリアルインターフェース回路）３０、３１、３２を適当に含むことができる。チャンネルコントローラは１６ビットコプロセッサの転送と８ビットのＤＭＡとの間の変換を実行する。すなわち、１回の１６ビットの転送はデータメモリ８との間の２回の１バイト転送として処理される。当然ながら１６ビットのワード長および８ビットのデータメモリデータ幅は、単に例にすぎず、限定的なものではない。
【００５７】
シリアルＩ／Ｆ回路３０、３１、３２は出力または入力のいずれかを実行するようになっている。いずれかの場合、データ転送を伴うビットクロックは、コプロセッサ１９のうちの対応する一つからシリアルＩ／Ｆ回路３０、３１、３２のそれぞれの一つに、またはこの逆に流れることができる。同様に、ワードストローブもいずれかの方向に流れることができる。クロックおよびストローブの方向は、シリアルＩ／Ｆ回路がコプロセッサのレンジとインターフェースできるよう、一般にできるだけ有効となるように適当にプログラム可能にできる。図２におけるシリアルＩ／Ｆ回路３０は、クロックおよびストローブのソースであるＩ／Ｆ回路を備えたシリアル出力回路として示されている。このことは、コプロセッサ１９のうちの関連する一つがいつシリアルワード転送を受信し、これを受け入れるかを判断するように、インターフェースを制御する。他方、シリアルＩ／Ｆ回路３１は、入力回路として示されている。しかしながら、クロックは本発明のチップによりコプロセッサ１９のうちの対応する一つに供給されるが、この時は、このコプロセッサはストローブのソースとなっている。ストローブラインは例えば低レベルから高レベルまでトグル動作され、コプロセッサが転送を要求していることを表示する。対応するＤＭＡチャンネルコントローラ２７が転送を受け入れできる（すなわちＦＩＦＯは満杯でない）場合、このコントローラはシリアルインターフェースがクロック信号をコプロセッサに送ることを認め、コプロセッサは次に１６ビットのデータをクロックアウトし、ストローブ信号を低レベルにする。この場合におけるコプロセッサは、コプロセッサがいつ計算を完了し、この結果をメモリに送るかを決定するが、ＤＭＡコントローラ６はデータメモリ８にボトルネックがある場合、これを即座に受け入れる義務はない。しかしながら本発明の装置の全体の目的は、かかるボトルネックができるだけ起きないようにし、データメモリのボトルネックが生じた場合でも、ＦＩＦＯバッファが満杯でなければコプロセッサのアクティビティを遅延する必要がないように保証することである。
【００５８】
シリアルインターフェース回路３２により、第３タイプのインターフェースが示されている。このインターフェースは出力回路となっているが、ストローブ方向はコプロセッサから本発明のチップへの方向であり、クロック信号は逆方向に進むようになっている。これにより、コプロセッサは出力信号をリクエストでき、かつ、即座に利用できなくてもコプロセッサへのクロック信号の送信を遅らせることにより、ＤＭＡチャンネルコントローラ６が出力信号を遅延できる。
【００５９】
例えば、暗号ド化／解読用ロジックにできる、チップ上に例えば暗号化／解読用ロジックにできるコプロセッサ、例えば内部コプロセッサ３４が設けられている場合、シリアルインターフェースは不要である。チップ上にデータメモリ８との間の読み出しおよび書き込みの双方も可能とする、パラレルインターフェースを設けることができる。
【００６０】
次に図３および図４を参照して適当なＤＭＡチャンネルコントローラおよび関連する特徴について説明する。先に述べたように、制御プロセッサ５は処理のためデータを取り出すデータメモリアドレス、または処理した結果を送るデータメモリアドレスをセットすることにより、コプロセッサのデータ転送を一つずつ調和させる。ビットのうち１５ビットしか意味のある情報を運ばない場合でも、１６ビット量として一般に処理できるデータメモリのスタートアドレスは、制御用マイクロプロセッサの２バイトの入出力動作により１６ビットカウンタに書き込まれる。図４に示すように、いくつかのＤＭＡチャンネルコントローラ２６、２７、２９のためのかかるカウンタは、小型のオンチップＲＡＭ４０に集めることができると有利である。その理由は、このようなことはシリコンの面積に関して効率的な解決案であるからである。また、ＲＡＭ４０はマルチプレクサ２８の一部として構成できると有利であり、このようにすると、マルチプレクサ２８とＤＭＡチャンネルコントローラ２６、２７、２９の各々との間のインターフェースを、図２に示すような２５本のラインから、データを搬送するわずか８本のラインまで縮小できる。最後にＲＡＭバス３６に載せるための残りのアドレス情報は、ＲＡＭ４０から得られる。
【００６１】
ＲＡＭ４０のカウンタ動作（インクリメントまたはデクリメント）は、変更ロジック４１および適当な制御信号を発生するためのシーケンサ４４を用いるＲＡＭリード／モディファイ／リライトサイクルにより実行できる。モディファイロジック４１は次の３つのタイプのうちのいずれかにできるカウンタディテクタの終了点を含むことができる。すなわち、（１）オンチップＲＡＭ４０からの所定の１６ビットアドレスを検出するようにプログラムできるタイプのもの、（２）オンチップＲＡＭ４０が転送すべき多数のバイトにプリセットされており、常にモディファイロジック４１によりデクリメントされるようになっているカウンタを含むように、幅方向に拡張できる用になっているタイプのもの、または（３）転送終了点を示すシリアルインターフェース回路３１から転送される特定のデータパターンの検出信号を含むことができるタイプのものである。いずれの場合でも、検出時のカウント終了信号または転送終了信号がＤＭＡスケジューラ２５に送られ、このスケジューラ２５は再附勢されるまでＤＭＡチャンネルをアクティブでないようにセットすると共に、このような特徴が選択されている場合、割り込みコントローラ３５を介して制御プロセッサ５に割り込み信号も発生する（図２参照）。
【００６２】
データメモリ８へのＤＭＡアクセスが許可されたことを示すＤＭＡスケジューラ２５からシーケンサ４４への読み出し（リード）信号が受信されることにより、リード／モディファイ／リライトみシーケンスがトリガーされる。複雑で、かつ高速の論理回路を構成することは、回路の種々の部品における作動をシーケンス化し、かつ同期化するために、マスタークロックを用いることによって有利となることは、当業者には明らかであり、周知である。ほぼ１０万にもなるロジックゲート数を備えたチップの論理の詳細を説明するのは、現実的でないが、シーケンサ４４は１３ＭＨｚのマスタークロックから生じるすべてのかかるシーケンス化条件およびタイミング条件を満たすと考えることができる。
【００６３】
アクセスが許可されたＤＭＡチャンネルも、そのＦＩＦＯ４２（図３）に対する読み出し信号を受け、このＦＩＦＯ４２は順次次のバイトを出力し、現在空になっているかどうかをテストする。空信号はＤＭＡスケジューラ２５が作用しようとしているリストから、そのチャンネルを除き、シリアル入力回路３１を介する更なるシリアル入力信号により、空信号が消滅するまで、ＦＩＦＯ４２への更なる読み出しは受け入れられない。空信号の発生は、既に発生された満杯信号により、先にＤＭＡチャンネルが従った優先度もリセットする。
【００６４】
他方、空信号のアサートは、ＤＭＡスケジューラ２５によっては、バスリクエストが存在していることの表示使用としては使用できない。
既に認識可能なＤＭＡの多数の優先度について説明済みであり、必ずしも限定的でない下記のリストに繰り返して説明する。
【００６５】
１）高い優先度のＤＭＡ  キュー満杯優先制御信号は、ＤＭＡチャンネルコントローラから”キュー空”優先制御信号が発生されるまで、制御プロセッサのデータメモリへのアクセスおよびより低い優先度のＤＭＡよりも高い絶対優先度がＤＭＡコントローラ６に与えられるようにする。
２）中間優先度のＤＭＡ  キュー満杯信号は、”キュー空”信号が発生され、受信されるまで、制御プロセッサのバスアクセスと交互に替わる優先度または”キュー満杯”状態にない、より高い優先度のＤＭＡを引き出す。制御プロセッサのバスアクセスは、必要な場合にＤＭＡアクセスとインターリーブするだけであり、必要でない場合はＤＭＡはタイプ１のより高い優先度のＤＭＡを除き、すべてのＤＭＡよりも高い優先度で連続アクセスする。
３）低い優先度のＤＭＡ  キュー満杯信号は制御プロセッサのバスアクセスまたはキューが満杯でない、より高い優先度のＤＭＡアクセスと交互に替わるＲＡＭバス３６へのアクセスをラウンドロビン方式で受け入れる。
４）最も低い優先度のＤＭＡ  キュー満杯信号はより高い優先度は受け入れないが、その代わりに待機信号を関連するＤＭＡチャンネルコントローラへ送る。このＤＭＡチャンネルコントローラは必要であればこの信号を関連するコプロセッサにリレーし、キューＦＩＦＯへの更なる入力を禁止する。
【００６６】
次に、図５〜９を参照して、本発明に係わるＤＭＡ優先方式に関連するタイミングについて説明する。図５は、ＤＭＡが通常の優先度を有している場合、すなわちＦＩＦＯ満杯信号がアサートされていない場合に許可されているＤＭＡアクセスを示す。ポイント５０１にてＦＩＦＯは６つのアクセスを待つサービスを含む、一つ以上のコプロセッサからのクランプ内に、６つのアクセスが到着できた状態であり、制御プロセッサ５がデータメモリ８を使用している間、これらアクセスはＦＩＦＯ内に蓄積できた。しかしながらポイント５０１では最初のＤＭＡアクセスが許可されている。このことは、プロセッサおよびＤＭＡアクセスの多重化が認められたことにより可能となったか、または新しいプロセッサの命令フェッチサイクルのスタートにより可能となっている。図５に示すタイミング図は、ポイント５０１でスタートしたアクセスが制御プロセッサ５によるＤＭＡアクセスとデータメモリ８の先の一連のアクセスとの多重化の結果生じたことを示す命令フェッチ信号の直前にスタートしたことを示している。しかしながらポイント５０３では、命令フェッチ信号のアサートは、制御プロセッサのアクセスとの多重化を行うことなく、必要であればＤＭＡはデータメモリ８に連続してアクセスできることを意味している。制御プロセッサ５が（アーキテクチャおよびプログラマーにどんな制限が与えられ得るかに応じて）データメモリ８から命令をフェッチするよう許可されている場合、「ＲＡＭアドレス検出」信号は多重化を終了するように、低レベルとなっており、かつ命令フェッチは高レベルとなっていなければならない（ＡＮＤ機能）。
【００６７】
図５に示した実施例では、その間にサービス可能な速度よりも速くＤＭＡアクセスが累積することにより、ポイント５０３ではキュー長さは７まで増加している。しかしながらＦＩＦＯ満杯信号が連続して低レベル状態になっていることにより表示されるように、ＦＩＦＯは満杯状態になっていない。ポイント５０３では、ＤＭＡは連続アクセスの許可を受け入れ、ＦＩＦＯのキュー長さは７から６へ、次に５、４、更に３へと急速に短くなる。次にポイント５０５では、プロセッサは命令実行中にデータメモリアドレスを発生している状態が検出される（プロセッサの命令フェッチ信号はアサートされていないことに留意）。最終の空信号は発生されているので、ＦＩＦＯは満杯状態になっていない。このため、プロセッサはポイント５０５でＤＭＡアクセスよりも高い優先度を受け入れ、リードまたはライト信号を発生する。次にポイント５０７で許可された多重アクセスを受け入れる。ポイント５０９の直前で命令フェッチが再開されるので、キュー内の残りのＤＭＡアクセスがサービスされる。この結果、５０９でＦＩＦＯ空信号が生じる。命令フェッチが進行中であるので、このポイントでＤＭＡに対しデータメモリ８へのアクセスが利用可能でも、この時点でアクセスを必要とするＤＭＡはキュー内にはない。
【００６８】
図６は、ＦＩＦＯが満杯状態になった場合のタイミングを示す。しかし制御プロセッサの命令の実行は、データメモリ８をアドレス指定しないので、ＦＩＦＯはプロセッサを一時的に待機状態とすることなく、ＦＩＦＯを空にできる。
【００６９】
ポイント６０１では９つのアクセスが待機中であり、ＤＭＡが開始する。一つのアクセスが許可された後にＤＭＡが更に累積していることにより、ポイント６０３では１０のリクエストされたアクセスが待機中であり、ＦＩＦＯ満杯信号が発生される。しかしながら、命令実行期間中、またはポイント６０５と６０７との間のフェッチ期間中のいずれかのすべての期間において、制御プロセッサ５はデータメモリ８をアドレス指定しないので、ＤＭＡはデータメモリ８への連続アクセスを受け入れ、ポイント６０７で空信号が生じるまでキューを完全にサービスできるようにする。ポイント６０７における空信号のアサーションにより、ＤＭＡアクセスが終了する。データメモリ８に対するアクセスには競合がないので、この時間中、制御プロセッサ５は全く低速とならないことが理解できよう。
【００７０】
図７は、ＦＩＦＯ満杯状態により生じた高い優先度のＤＭＡリクエストが、制御プロセッサのデータメモリ８へのアクセスと競合する際に生じるタイミングを示す。ポイント７０１にてＦＩＦＯは満杯状態となっているが、その直後のポイント７０３では（命令フェッチ信号のアサートによって表示される）命令フェッチの制御プロセッサ５による実行により、ＤＭＡはアクセスを受け入れし始める。ポイント７０３にて実際に制御プロセッサ５がデータメモリ８にアドレス指定していた場合、制御プロセッサのアクセスは完了するように許可されるが、その後の制御プロセッサ５によるデータメモリ８へのアクセスは、ＤＭＡを行うように許可され、次にこのＤＭＡはいずれの場合でもポイント７０３にて優先度を受け入れる。最初のアクセス（すなわちＦＩＦＯ内にて１０のリクエストが待機されている時のアクセス）が許可された後、ＦＩＦＯはもう満杯とはならないが、まだ空の状態にはない。従ってＤＭＡアクセスが続く。ポイント７０５にてプロセッサがデータメモリ８へアクセスしようとしている時、ＤＭＡは優先度を保ち、制御プロセッサ５に待機信号が発生されるので、その結果、すべてのＤＭＡのサービスが行われるまで、そのアドレスおよび制御信号（すなわちリードまたはライト信号）が延長すなわち遅延されることとなる。最後に、ＦＩＦＯは空となり、ポイント７０９にて空信号が発生される。これに応答して待機信号がリセットされるので、制御プロセッサによる遅延されたデータメモリへのアクセスの発生が可能となる。
【００７１】
ポイント７１１にて、ＦＩＦＯが最後に空になった後、より多くのＤＭＡリクエストが受け入れられると、空信号が消滅する。しかしながら、ＤＭＡの優先度は通常の優先度にリセットされているので、ＤＭＡは制御プロセッサ５によりデータメモリアクセスよりも優先されず、制御プロセッサによるデータメモリアクセスが完了した後は、ポイント７１３まで新しいＤＭＡアクセスは許可されない。データメモリ８はＤＭＡと制御プロセッサのリクエストを交互にするのに十分高速であるので、これは「多重」アクセスとなっている。データメモリ８がこのような多重化を行うのに十分高速でない場合、新しいＤＭＡはプロセッサの命令フェッチの開始を待機しなければならない。しかしながら、新しいＤＭＡアクセスはすぐに満足され、ポイント７１５にて再び空信号が発生するのでＤＭＡが終了する。
【００７２】
図５および６のタイミング図から、本発明はプロセッサを低速化することなく、かなりのＤＭＡ容量を与えることが理解できよう。図７に示されたタイミング図は、制御プロセッサ５を最良の（すなわち単一待機状態での）低速化を行うだけで、本発明により、いかに多量のＤＭＡリクエストを、実質的に同時に処理するかを示している。しかしながら、ＤＭＡが一旦優先度を得ると、ＦＩＦＯが空になるまでこの優先度を保持することにより、ある時間の間、すなわち多数のＤＭＡリクエストが実質的に同時に、かつＤＭＡアクセスの許可が自然に生じるよりも早く発生するまで、プロセッサが再び待機されることが生じなくなる。本発明の目的は、ＤＭＡおよびプロセッサのニーズの双方を、これらを互いに低速化することなく満たすよう、かかる事象の可能性を最小にすることにある。
【００７３】
スピードの損失を生じることなく、制御プロセッサとＤＭＡのアクセスとを交互に多重化することが不可能となるように、データメモリ８の速度を完全に活用する例を更に検討すれば、アクセス制御信号および優先信号の使用が良好に理解できる。この場合、図８のポイント８０１に示すように、プロセッサの命令フェッチ信号が検出された際に、ＦＩＦＯキューが空でなければＤＭＡはアクセスを受け入れるようにスタートする。ポイント８０３でプロセッサがデータメモリ８のアドレス指定をする前に、３回のＤＭＡが実行される。次に制御プロセッサでは、優先度を受け、２回連続するデータメモリアクセスの間、その優先度を保持するか、制御プロセッサの優先度が次の命令フェッチ信号によりリセットされるか、または制御プロセッサの優先度はＦＩＦＯ満杯信号の存在により予め空にされる。後者の例が生じる場合、上記のように別のタイプのＤＭＡの優先度が許可され得る。最高位のＤＭＡの優先度は、ＦＩＦＯ空信号が生じるまで、どれがすべてのデータメモリアクセスを受け入れるかを決めるものである。若干低いＤＭＡの優先度のチャンネルは、ＦＩＦＯ空信号が発生するまで制御プロセッサ５と交互に替わるアクセスを交互に受け入れできる。このケースは図９に示されている。
【００７４】
ポイント９０１では、ＤＭＡは９つの待機中のアクセスリクエストのキューにサービスするようなアクセスが許可されている。しかしながら、ポイント９０３でＦＩＦＯ満杯信号が発生されるように、より多くのＤＭＡリクエストが受け入れられる。これにもかかわらず、ＤＭＡはちょうど折り返したところなので、ポイント９０５では制御プロセッサ５はデータメモリ９へのアクセスを受け入れる。しかしながら命令の実行に関係する制御プロセッサのアクセスの対の一方の後で、ＤＭＡはポイント９０７にて別のアクセスを受け入れ、プロセッサに対し待機信号が発生される。ＤＭＡの優先度を通常の優先度にリセットさせるようなＦＵＬＬ空信号は、まだ発生していないが、制御プロセッサ５はＤＭＡがちょうど折り返したところなので、ポイント９０９にてデータメモリ８への次のアクセスを受け入れる。このようなプロセッサとＤＭＡが交互に作動することはこのタイプのＤＭＡの優先度を特徴づけている。ポイント９１１にて、ＤＭＡは異なる理由からアクセスを受け入れる。例えば制御プロセッサ５がＲＯＭ７から命令フェッチを実行しているのでＲＡＭバス３６がフリーになっているという理由でアクセスを受け入れる。制御プロセッサ５が次にデータメモリ８へのアクセスを要求する前に、このことによりＤＭＡのキューが空になることを許容しない場合、制御プロセッサ５はＦＩＦＯ空信号がＤＭＡの優先度を通常の優先度にリセットするまで、更に１回ＤＭＡアクセスと交互に生じるデータメモリアクセスを受け入れる。
【００７５】
以上で、特定の実施例を参照して本発明について説明したが、当業者であれば上記好ましい実施例の態様以外の特定の態様で本発明を実施できることは明らかであろう。このような別の態様での実施は、本発明の精神から逸脱することなく行うことができる。好ましい実施例では単に説明のためのものにすぎず、いかなる意味においても限定的であるとみなすべきでない。本発明の範囲は上記詳細な説明によって決められるものではなく、添付した特許請求の範囲によって定められ、特許請求の範囲内に入るすべての変形例および均等物は、この範囲内に包含されるように意図されている。
【図面の簡単な説明】
【図１】本発明の特徴を含む時分割マルチアクセス（ＴＤＭＡ）デジタルポータブルセルラー電話のブロック図である。
【図２】本発明に係わるＤＭＡコントローラのブロック図である。
【図３】本発明に係わるＤＭＡチャンネルコントローラのブロック図である。
【図４】本発明に係わるＤＭＡカウンタのための構造のブロック図である。
【図５】本発明に係わるＤＭＡ優先方法によるタイミング例を示すタイミング図である。
【図６】本発明に係わるＤＭＡ優先方法による別のタイミング例を示すタイミング図である。
【図７】本発明に係わるＤＭＡ優先方法による更に別のタイミング例を示すタイミング図である。
【図８】本発明に係わるＤＭＡ優先方法による更に別のタイミング例を示すタイミング図である。
【図９】本発明に係わるＤＭＡ優先方法による更に別のタイミング例を示すタイミング図である。
【符号の説明】
７  ＲＯＭ
８  ＲＡＭ
２０  アドレスデコーダ
２１  メモリ管理ユニット
２３  ＲＡＭバススイッチ
２４  調停ロジック
２５  ＤＭＡスケジューラ
２６、２７、２９  ＤＭＡチャネルコントローラ
２８  マルチプレクサ
３４  内部コプロセッサ
３５  割り込みコントローラ
【図１】
0003877231.tif 000002
【図２】
0003877231.tif 000003
【図３】
0003877231.tif 000004
【図４】
0003877231.tif 000005
【図５】
0003877231.tif 000006
【図６】
0003877231.tif 000007
【図７】
0003877231.tif 000008
【図８】
0003877231.tif 000009
【図９】
0003877231.tif 000010