JPH10232788A - 信号処理装置及びソフトウェア - Google Patents

信号処理装置及びソフトウェア

Info

Publication number
JPH10232788A
JPH10232788A JP9221617A JP22161797A JPH10232788A JP H10232788 A JPH10232788 A JP H10232788A JP 9221617 A JP9221617 A JP 9221617A JP 22161797 A JP22161797 A JP 22161797A JP H10232788 A JPH10232788 A JP H10232788A
Authority
JP
Japan
Prior art keywords
data
information processing
memory
processing units
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9221617A
Other languages
English (en)
Inventor
Hideki Yoshizawa
英樹 吉沢
Toru Tsuruta
徹 鶴田
Norichika Kumamoto
乃親 熊本
Yuji Nomura
祐司 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP9221617A priority Critical patent/JPH10232788A/ja
Priority to US08/955,089 priority patent/US6470380B1/en
Priority to KR1019970055798A priority patent/KR19980063551A/ko
Publication of JPH10232788A publication Critical patent/JPH10232788A/ja
Priority to US10/234,482 priority patent/US20030005073A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】本発明は、パーソナルコンピュータ等に搭載さ
れ、低コストで十分な信号処理速度を達成可能な信号処
理アクセラレータの構成を提供することを目的とする。 【解決手段】信号処理装置は、複数の情報処理ユニット
と、該複数の情報処理ユニット間を接続する通信リンク
を含み、該複数の情報処理ユニットの各々が、データを
処理する信号処理部と、該通信リンクを介して別の情報
処理ユニットと通信する通信制御部と、データ及び該信
号処理部が実行するプログラムを格納する格納部を含
み、該格納部を介して外部バスとのデータ入出力を行う
ことを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータ処理装
置に関し、詳しくはパーソナルコンピュータ上に搭載さ
れ、マルチメディアデータ等を高速に処理可能な信号処
理アクセラレータに関する。
【0002】
【従来の技術】近年、データ処理分野の拡大に伴い、画
像及び音声等の多量のデータを高速に処理可能な装置に
対する要求が高まっている。特にマルチメディア機器に
於ては、例えば動画像を表示する速度に対応して、画像
及び音声等のデータを高速に処理する必要がある。
【0003】このような高速なデータ処理を実現するた
めのマルチメディア機器は、一般に、個々の信号処理方
式に対応した専用ハードウェアを多数搭載したシステム
構成となる。しかしこのように専用ハードウェアで処理
の高速化を実現する場合、機器のコスト及び機器の拡張
性の点で問題がある。即ち、個々の信号処理方式に対応
した専用ハードウェアの設計・開発・製造にコストがか
かり、それらの専用ハードウェアを組み込んだシステム
は高価なものとなってしまう。また専用ハードウェア
は、専用のデータ処理用に設計されるために、当然実行
可能な処理に制約があり、新たな応用に適用するといっ
た機能拡張性に問題がある。
【0004】また汎用プロセッサの高速化・高性能化に
伴って、汎用プロセッサを高速データ処理に用いること
も可能となって来ている。このような汎用プロセッサを
使用したシステムは、上記の専用ハードウェアのシステ
ムと対比すると、ソフトウェアにより種々の信号処理機
能を実現しようというものである。ソフトウェアにより
信号処理機能を実現するシステムは、専用ハードウェア
のシステムと比較して、低コストでありまた機能拡張性
に優れているという利点がある。
【0005】
【発明が解決しようとする課題】しかし汎用プロセッサ
を用いたソフトウェアによる信号処理システムには、以
下の様な問題点がある。まず第1に、このようなシステ
ム上ではOSが動作し汎用プロセッサがOSの処理を行
っているため、汎用プロセッサを信号処理に占有的に使
用することが出来ない。即ち、信号処理中にOSタスク
等を実行する必要があるために、信号処理の速度を十分
に挙げることが難しく、特に実時間処理が要求される場
合などには問題がある。
【0006】第2に、汎用プロセッサは凡ゆるデータ操
作に対応できるように設計されたものであり、多量の信
号処理には向いていない。特に画像処理のように並列な
データ処理が好ましい分野に於ては、汎用プロセッサは
効果的でない。第3に、汎用プロセッサ、メモリ、I/
O等の間でバスを介してデータ転送する際に、バスの使
用頻度が高まると、信号処理用のデータ転送とOSタス
ク等の信号処理以外のデータ転送との間でバスへのアク
セスが競合する結果となり、データ転送速度が下降す
る。例えばI/Oからメモリへデータ転送し、信号処理
のためにメモリと汎用プロセッサとの間で膨大な回数の
データ転送を行い、更に処理後のデータをメモリからI
/Oに転送するといった例を考えても、バスの使用頻度
は非常に高く、他のタスクとの競合によってデータ転送
速度が低下することは避けられない。
【0007】主に上記3つの理由によって、汎用プロセ
ッサを用いたソフトウェアによる信号処理システムに於
ては、十分な信号処理速度を達成できないという問題点
がある。特にマルチメディア信号処理のように、複数の
信号処理を同時実行する必要があるような用途には、適
用することが難しい。それに対し、汎用プロセッサを用
いたパーソナルコンピュータ上に、従来の信号処理用に
開発されたDSP(digital signal processor)等を組
み込んだシステム構成とすれば、要求される条件を満た
す速度で、画像及び音声データの処理を実現できるよう
になって来ている。また、汎用プロセッサに拡張命令と
して信号処理機能を追加した所謂マルチメディア拡張命
令セット対応プロセッサ(例えばインテル社製P55
C)等も存在する。
【0008】しかし信号処理用の専用ハードウェア部分
の設計・開発・製造にコストがかかるという問題がある
と共に、上述のように、データ転送時のバスの競合が処
理速度を制約するという問題がある。特に複数の信号処
理を同時に実行する必要があるマルチメディア信号処理
に於ては、各信号処理間でバス競合が起こるために、十
分な性能を発揮できない。
【0009】従って本発明は、パーソナルコンピュータ
等に搭載され、低コストで十分な信号処理速度を達成可
能な信号処理アクセラレータの構成(アーキテクチャ)
を提供することを目的とする。
【0010】
【課題を解決するための手段】請求項1の発明に於て
は、信号処理装置は、複数の情報処理ユニットと、該複
数の情報処理ユニット間を接続する通信リンクを含み、
該複数の情報処理ユニットの各々が、データを処理する
信号処理部と、該通信リンクを介して別の情報処理ユニ
ットと通信する通信制御部と、データ及び該信号処理部
が実行するプログラムを格納する格納部を含み、該格納
部を介して外部バスとのデータ入出力を行うことを特徴
とする。
【0011】上記発明に於ては、バスを介在しないで通
信可能な複数の情報処理ユニットを設けて、それら情報
処理ユニットに処理を実行させるので、バス競合により
データ処理速度が低下することなく高速な信号処理を実
現することが出来る。また画像処理プロセスや音声処理
プロセス等の複数のプロセスの各々に、別の情報処理ユ
ニットを割り当てることが出来るので、複数の異なった
信号を処理する必要があるマルチメディア信号処理に適
している。
【0012】請求項2の発明に於ては、請求項1記載の
信号処理装置に於て、前記複数の情報処理ユニットは、
前記通信リンクを介して直列に配置されていることを特
徴とする。上記発明に於ては、任意の情報処理ユニット
間の通信は、介在する情報処理ユニット及び通信リンク
を介して行うことが出来る。
【0013】請求項3の発明に於ては、請求項2記載の
信号処理装置に於て、前記格納部は、前記データ及び前
記プログラムを格納するメモリと、前記外部バスとのデ
ータ入出力を行う際に該メモリを外部バスからメモリと
してアクセス可能にするメモリ制御部を含むことを特徴
とする。上記発明に於ては、信号処理部、通信制御部、
及び格納部を1つのチップ上に集積回路化して、従来の
メモリと同等な形でパーソナルコンピュータに搭載する
ことが出来る。従ってコストを従来のメモリデバイスに
重複させることが可能であると共に、メモリデバイス内
に埋め込まれた情報処理ユニットをソフトウェアで活用
出来るという利点がある。従って、ハードウェアの追加
・拡張にかかる費用を削減すると共に、機能拡張性に優
れたシステムを構築することが出来る。
【0014】請求項4の発明に於ては、請求項3記載の
信号処理装置に於て、前記メモリ制御部は、キー情報を
格納するキーデータ格納部を含み、前記外部バスとのデ
ータ入出力を行う際に該キー情報に一致するデータが入
力された場合にのみ、該メモリを該外部バスからメモリ
としてアクセス可能にすることを特徴とする。上記発明
に於ては、格納部のメモリを通常は外部バスからメモリ
としてアクセス不可能な状態にしておくことによって、
ホストプロセッサのOSがOS用メモリスペースとして
獲得してしまうことを防ぐと共に、情報処理ユニット使
用時には暗号(キー情報)を解除することによって、ホ
ストプロセッサと情報処理ユニット間のデータ通信を可
能にすることが出来る。
【0015】請求項5の発明に於ては、請求項2記載の
信号処理装置に於て、前記複数の情報処理ユニットは、
並列にデータを処理することを特徴とする。上記発明に
於ては、同時並列にデータ処理可能な手続に関しては、
各情報処理ユニットに並列に実行させることによって、
高速なデータ処理を実現することが出来る。
【0016】請求項6の発明に於ては、請求項2記載の
信号処理装置に於て、前記複数の情報処理ユニットは、
前記通信リンクを介してデータを順次受け渡すことによ
って、パイプライン動作を行いながらデータを処理する
ことを特徴とする。上記発明に於ては、ある手続の結果
を別の手続が必要とするが各手続を繰り返し実行する必
要がある場合、各手続を重ね合わせて各情報処理ユニッ
トにパイプライン的に実行させることによって、高速な
データ処理を実現することが出来る。
【0017】請求項7の発明に於ては、信号処理装置
は、複数の情報処理ユニットと、該複数の情報処理ユニ
ット間を接続する通信リンクと、該複数の情報処理ユニ
ットの各々に接続された共通のバスを含み、該複数の情
報処理ユニットの各々が、データを処理する信号処理部
と、該通信リンクを介して別の情報処理ユニットと通信
する通信制御部と、データ及び該信号処理部が実行する
プログラムを格納する格納部を含み、該複数の情報処理
ユニットの各々は該格納部を介して該バスとのデータ入
出力を行うことを特徴とする。
【0018】上記発明に於ては、バスを介在しないで通
信可能な複数の情報処理ユニットを設けて、それら情報
処理ユニットに処理を実行させるので、バス競合により
データ処理速度が低下することなく高速な信号処理を実
現することが出来る。また画像処理プロセスや音声処理
プロセス等の複数のプロセスの各々に、別の情報処理ユ
ニットを割り当てることが出来るので、複数の異なった
信号を処理する必要があるマルチメディア信号処理に適
している。
【0019】請求項8の発明に於ては、請求項7記載の
信号処理装置に於て、前記複数の情報処理ユニットは、
前記通信リンクを介して直列に配置されていることを特
徴とする。上記発明に於ては、任意の情報処理ユニット
間の通信は、介在する情報処理ユニット及び通信リンク
を介して行うことが出来る。
【0020】請求項9の発明に於ては、請求項8記載の
信号処理装置に於て、前記格納部は、前記データ及び前
記プログラムを格納するメモリと、前記バスとのデータ
入出力を行う際に該メモリを該バスからメモリとしてア
クセス可能にするメモリ制御部を含むことを特徴とす
る。上記発明に於ては、信号処理部、通信制御部、及び
格納部を1つのチップ上に集積回路化して、従来のメモ
リと同等な形で信号処理装置内に搭載することが出来
る。従ってコストを従来のメモリデバイスに重複させる
ことが可能であると共に、メモリデバイス内に埋め込ま
れた情報処理ユニットをソフトウェアで活用出来るとい
う利点がある。従って、ハードウェアの追加・拡張にか
かる費用を削減すると共に、機能拡張性に優れた信号処
理装置を構築することが出来る。
【0021】請求項10の発明に於ては、請求項9記載
の信号処理装置に於て、前記メモリ制御部は、キー情報
を格納するキーデータ格納部を含み、前記バスとのデー
タ入出力を行う際に該キー情報に一致するデータが入力
された場合にのみ、該メモリを該バスからメモリとして
アクセス可能にすることを特徴とする。上記発明に於て
は、格納部のメモリを通常はバスからメモリとしてアク
セス不可能な状態にしておくことによって、ホストプロ
セッサが別の目的のメモリスペースとして獲得してしま
うことを防ぐと共に、情報処理ユニット使用時には暗号
(キー情報)を解除することによって、ホストプロセッ
サと情報処理ユニット間のデータ通信を可能にすること
が出来る。
【0022】請求項11の発明に於ては、請求項8記載
の信号処理装置に於て、前記複数の情報処理ユニット
は、並列にデータを処理することを特徴とする。上記発
明に於ては、同時並列にデータ処理可能な手続に関して
は、各情報処理ユニットに並列に実行させることによっ
て、高速なデータ処理を実現することが出来る。
【0023】請求項12の発明に於ては、請求項8記載
の信号処理装置に於て、前記複数の情報処理ユニット
は、前記通信リンクを介してデータを順次受け渡すこと
によって、パイプライン動作を行いながらデータを処理
することを特徴とする。上記発明に於ては、ある手続の
結果を別の手続が必要とするが各手続を繰り返し実行す
る必要がある場合、各手続を重ね合わせて各情報処理ユ
ニットにパイプライン的に実行させることによって、高
速なデータ処理を実現することが出来る。
【0024】請求項13の発明に於ては、請求項8記載
の信号処理装置に於て、前記複数の情報処理ユニットを
該バスを介して制御すると共にそれ自身がデータ処理を
行うCPU(Central Processing Unit )を更に含み、
該CPUが読み込んだ命令が命令例外を発生した際に、
該複数の情報処理ユニットが該命令を代わりに実行する
ことを特徴とする。
【0025】上記発明に於ては、ある命令をホストプロ
セッサ(CPU)が読み込んで割り込みを起こした場合
に、情報処理ユニットがこの命令を実行することによっ
て仮想マシン機能を実現し、恰もホストプロセッサがこ
の命令を実行しているかのようにプログラム処理を進め
ることが出来る。請求項14の発明に於ては、専用通信
リンクを介して直列に接続され各々がメモリとしてバス
からアクセス可能である複数の情報処理ユニットを内蔵
したコンピュータに於て該コンピュータを制御すること
により該複数の情報処理ユニットにデータ処理を実行さ
せるプログラムを記録した機械読み取り可能な記憶媒体
に於て、該プログラムは、アプリケーションプログラム
からの該データ処理の要求に基づき、該複数の情報処理
ユニットへのプロセス割り当て及び該複数の情報処理ユ
ニット間のデータ接続を管理する第1のリソース管理手
段と、該プロセス割り当て及び該データ接続にしたがっ
て該複数の情報処理ユニットを制御して該データ処理を
実行させる第2のリソース管理手段を含み、該第1のリ
ソース管理手段は該コンピュータのアプリケーションイ
ンターフェース層に配置され、該第2のリソース管理手
段は該コンピュータのデバイスドライバ層に配置される
ことを特徴とする。
【0026】上記発明に於ては、アプリケーションイン
ターフェース層及びデバイスドライバ層に配置された第
1及び第2のリソース管理手段が、複数の情報処理ユニ
ットを管理してプロセス割り当て及びデータ接続を行う
ので、ユーザプログラムやアプリケーションプログラム
が存在する最上層のアプリケーション層までデータを上
げる必要がなく、データ転送に関して効率的な処理を行
うことが出来る。
【0027】請求項15の発明に於ては、請求項14記
載の記憶媒体に於て、前記第1のリソース管理手段は、
前記複数の情報処理ユニットが並列に処理を実行するよ
うに、該複数の情報処理ユニットを並列にデータ接続す
ることを特徴とする。上記発明に於ては、同時並列にデ
ータ処理可能な手続に関しては、各情報処理ユニットに
並列に実行させることによって、高速なデータ処理を実
現することが出来る。
【0028】請求項16の発明に於ては、請求項14記
載の記憶媒体に於て、前記第1のリソース管理手段は、
前記複数の情報処理ユニットが順次データを受け渡しな
がらパイプライン処理を実行するように、該複数の情報
処理ユニットを直列にデータ接続することを特徴とす
る。上記発明に於ては、ある手続の結果を別の手続が必
要とするが各手続を繰り返し実行する必要がある場合、
各手続を重ね合わせて各情報処理ユニットにパイプライ
ン的に実行させることによって、高速なデータ処理を実
現することが出来る。
【0029】請求項17の発明に於ては、請求項14記
載の記憶媒体に於て、前記アプリケーションプログラム
を実行する前記コンピュータのCPUが割り込みを発生
した場合、該割り込みを検出して、該割り込みの原因と
なった該アプリケーションプログラムの命令を前記第1
のリソース管理プログラムに渡す仮想マシン手段を更に
含み、該第1のリソース管理手段及び前記第2のリソー
ス管理手段は、該命令を前記複数の情報処理ユニットに
実行させることを特徴とする。
【0030】上記発明に於ては、ある命令をホストプロ
セッサ(CPU)が読み込んで割り込みを起こした場合
に、情報処理ユニットがこの命令を実行することによっ
て仮想マシン機能を実現し、恰もホストプロセッサがこ
の命令を実行しているかのようにプログラム処理を進め
ることが出来る。請求項18の発明に於ては、請求項1
4記載の記憶媒体に於て、前記第1のリソース管理手段
は、前記データ処理に関するプロセス割り当ての結果、
前記複数の情報処理ユニット間のデータ転送量の最大値
が最小になるように該プロセス割り当てを行うことを特
徴とする。
【0031】上記発明に於ては、データ転送量の最大値
が最小になるような効率的なプロセス割り当てを行うこ
とが出来る。請求項19の発明に於ては、請求項14記
載の記憶媒体に於て、前記第1のリソース管理手段は、
前記データ処理に関するプロセス割り当ての結果、前記
複数の情報処理ユニット間のデータ転送量の最大値が最
小になるように、該プロセス割り当ての組み合わせを求
める第1のプロセス割り当て手段と、該データ処理に関
するプロセス割り当て後に残る次のデータ処理に利用可
能な該複数の情報処理ユニットが、可能なかぎり少ない
数の前記専用通信リンクを介在する範囲内に存在するよ
うに、該組み合わせの中から一つの組み合わせを選択す
る第2のプロセス割り当て手段を含むことを特徴とす
る。
【0032】上記発明に於ては、データ転送量の最大値
が最小になると共に、次に割り当てるプロセスがなるべ
く他のデータ転送と重ならないように、効率的なプロセ
ス割り当てを行うことが出来る。請求項20の発明に於
ては、ソフトウェアアーキテクチャは、アプリケーショ
ンプログラムが存在するアプリケーション層と、該アプ
リケーションプログラムが実行される際に動的にローデ
ィングされる動的ローディングライブラリが存在するア
プリケーションインターフェース層と、該動的ローディ
ングライブラリに対応するハードウェアデバイスを制御
するデバイスドライバが存在するデバイスドライバ層を
含み、ハードウェアデバイスである複数の情報処理要素
を制御し、該情報処理要素へのプロセス割り当て及び該
情報処理要素間のデータ接続を管理するリソース管理プ
ログラムを、該アプリケーションインターフェース層及
び該デバイスドライバ層に配置したことを特徴とする。
【0033】上記発明に於ては、アプリケーションイン
ターフェース層及びデバイスドライバ層に配置されたリ
ソース管理プログラムが、複数の情報処理ユニットを管
理してプロセス割り当て及びデータ接続を行うので、ユ
ーザプログラムやアプリケーションプログラムが存在す
る最上層のアプリケーション層までデータを上げる必要
がなく、データ転送に関して効率的な処理を行うことが
出来る。
【0034】請求項21の発明に於ては、通信リンクを
介して直列に接続され互いに通信可能な複数の情報処理
ユニットにデータ処理のためのプロセスを割り当てる方
法は、前記データ処理に関するプロセス割り当ての結
果、前記複数の情報処理ユニット間のデータ転送量の最
大値が最小になるように、該プロセス割り当ての組み合
わせを求め、該データ処理に関するプロセス割り当て後
に残る次のデータ処理に利用可能な該複数の情報処理ユ
ニットが、可能なかぎり少ない数の該通信リンクを介在
する範囲内に存在するように、該組み合わせの中から一
つの組み合わせを選択する各段階を含むことを特徴とす
る。
【0035】上記発明に於ては、データ転送量の最大値
が最小になると共に、次に割り当てるプロセスがなるべ
く他のデータ転送と重ならないように、効率的なプロセ
ス割り当てを行うことが出来る。請求項22の発明に於
ては、メインメモリを有するホストプロセッサにクライ
アントプロセッサを接続して制御する方法は、a)該ホ
ストプロセッサから該メインメモリの記憶空間にアクセ
スし、b)該アクセスに応じて該記憶空間の一部領域を
該ホストプロセッサと該クライアントプロセッサとの通
信用に割り当てる各段階を含むことを特徴とする。
【0036】請求項23の発明に於ては、請求項22記
載の方法に於て、前記アクセスに応じて前記一部領域を
開放して前記ホストプロセッサから前記クライアントプ
ロセッサを切り離すことを特徴とする。請求項24の発
明に於ては、請求項22記載の方法に於て、前記アクセ
スは所定の一つのアドレスに対する少なくとも複数回の
アクセスであることを特徴とする。
【0037】請求項25の発明に於ては、請求項22記
載の方法に於て、前記アクセスは所定範囲内のアドレス
に対する少なくとも複数回のアクセスであることを特徴
とする。請求項26の発明に於ては、請求項22記載の
方法に於て、前記段階a)は前記記憶空間にキーを含む
データを書き込み、前記段階b)は該キーと所定のキー
とが一致すると前記一部領域を前記通信用に割り当てる
ことを特徴とする。
【0038】請求項27の発明に於ては、請求項26記
載の方法に於て、前記段階a)は、各サブワードを前記
キーとして複数同一のサブワードを含んだデータワード
を前記記憶空間に書き込むことを特徴とする。請求項2
8の発明に於ては、請求項26記載の方法に於て、前記
段階a)は、全ビット1であるデータワード及び全ビッ
ト0であるデータワードを繰り返し前記記憶空間に書き
込み1及び0の時系列により前記キーを表現することを
特徴とする。
【0039】請求項29の発明に於ては、請求項26記
載の方法に於て、前記段階a)は、データワードに含ま
れる1或いは0のビットの個数を前記キーとして該デー
タワードを前記記憶空間に書き込むことを特徴とする。
請求項30の発明に於ては、請求項26記載の方法に於
て、前記段階b)は、前記アクセスの回数を計数してそ
の計数値が所定数である場合に前記一部領域を前記通信
用に割り当てる段階を更に含むことを特徴とする。
【0040】請求項31の発明に於ては、請求項26記
載の方法に於て、前記段階b)は、前記データをパリテ
ィーチェックして所定のパリティー条件を満たさない場
合にはキー照合を行うことなくキー不一致と判断する段
階を更に含むことを特徴とする。請求項32の発明に於
ては、請求項26記載の方法に於て、前記段階b)は、
前記データの所定の複数ビットをチェックして該複数ビ
ットが所定のビットパターンでない場合にはキー照合を
行うことなくキー不一致と判断する段階を更に含むこと
を特徴とする。
【0041】請求項33の発明に於ては、請求項28記
載の方法に於て、前記段階b)は、前記データワードの
全ビットが同一の値でない場合にはキー照合を行うこと
なくキー不一致と判断する段階を更に含むことを特徴と
する。請求項34の発明に於ては、請求項22記載の方
法に於て、前記段階b)は、前記一部領域がアプリケー
ションに割り当てられている場合には該アプリケーショ
ンを前記記憶空間の別の領域に移して前記クライアント
プロセッサを該一部領域に割り当てる段階を更に含むこ
とを特徴とする。
【0042】請求項35の発明に於ては、請求項22記
載の方法に於て、前記クライアントプロセッサに対する
前記記憶空間の前記一部領域の割り当てと該クライアン
トプロセッサに対するアプリケーションの割り当てとを
独立して制御する段階を更に含むことを特徴とする。請
求項36の発明に於ては、請求項22記載の方法に於
て、前記クライアントプロセッサと前記ホストプロセッ
サとの間で同期をとる段階と、複数のクライアントプロ
セッサ間で同期をとる段階とを更に含むことを特徴とす
る。
【0043】請求項37の発明に於ては、メインメモリ
を有するホストプロセッサにクライアントプロセッサを
接続して制御するプログラムを記録した機械読み取り可
能な記憶媒体に於て、該プログラムは、該ホストプロセ
ッサに該メインメモリの記憶空間をアクセスさせる第1
のプログラムコード手段と、該アクセスに応じて該記憶
空間の一部領域を該ホストプロセッサと該クライアント
プロセッサとの通信用に割り当てる第2のプログラムコ
ード手段を含むことを特徴とする。
【0044】請求項38の発明に於ては、請求項37記
載の記憶媒体に於て、前記プログラムは、前記アクセス
に応じて前記一部領域を開放して前記ホストプロセッサ
から前記クライアントプロセッサを切り離すプログラム
コード手段を更に含むことを特徴とする。請求項39の
発明に於ては、請求項37記載の記憶媒体に於て、前記
第2のプログラムコード手段は、前記一部領域がアプリ
ケーションに割り当てられている場合には該アプリケー
ションを前記記憶空間の別の領域に移して前記クライア
ントプロセッサを該一部領域に割り当てるプログラムコ
ード手段を更に含むことを特徴とする。
【0045】請求項40の発明に於ては、請求項37記
載の記憶媒体に於て、前記プログラムは、前記クライア
ントプロセッサに対する前記記憶空間の前記一部領域の
割り当てと該クライアントプロセッサに対するアプリケ
ーションの割り当てとを独立して制御するプログラムコ
ード手段を更に含むことを特徴とする。請求項41の発
明に於ては、請求項37記載の記憶媒体に於て、前記プ
ログラムは、前記クライアントプロセッサと前記ホスト
プロセッサとの間で同期をとるプログラムコード手段
と、複数のクライアントプロセッサ間で同期をとるプロ
グラムコード手段とを更に含むことを特徴とする。
【0046】上記請求項22乃至33並びに請求項37
及び38の発明に於ては、ホストプロセッサからメイン
メモリの記憶空間に所定の形式のアクセスを行うことに
よって、記憶空間に対してクライアントプロセッサを割
り当てるので、専用ポートや専用バスを必要とせずにメ
モリインターフェースのみを用いて、ホストプロセッサ
とクライアントプロセッサとの接続/非接続を切り替え
ることが出来る。この所定の形式のアクセスとしては、
キー情報をデータに含めて記憶空間に書き込むことで、
書き込まれたキー情報が所定のキーと一致するか否かを
判断して、切り替えを行うことが可能である。この際、
ホストプロセッサのメモリインターフェース部分に於て
ビット順序の並べ変えが行われるシステムがあるが、こ
のようなシステムに於ては、ビット順序が変わらないサ
ブワードを単位としてキーを設定したり時系列情報でキ
ーを表現すること等で、ビット順序並べ変えに対処する
ことが出来る。またビットパターンを検査してキー照合
の前にデータを排除することで、高速なキー照合を行う
ことが可能になる。
【0047】上記請求項34及び39の発明に於ては、
クライアントプロセッサを割り当てる記憶領域がアプリ
ケーションによって使用されている場合には、該アプリ
ケーションを別の記憶領域に移した後にクライアントプ
ロセッサ領域の割り当てを行うので、クライアントプロ
セッサ接続前には、クライアントプロセッサ領域を予め
確保しておく必要がなく、通常の記憶空間として用いる
ことが出来る。
【0048】上記請求項35及び40の発明に於ては、
クライアントプロセッサに対する領域割り当てとクライ
アントプロセッサに対するアプリケーション割り当てと
を別々に制御するので、ある記憶領域に割り当てたまま
でクライアントプロセッサの処理アプリケーションを切
り替えたり、ある処理アプリケーションを割り当てたま
までクライアントプロセッサを別の記憶領域に割り当て
たりすることが可能になる。
【0049】上記請求項36及び41の発明に於ては、
ホストプロセッサとクライアントプロセッサとの間に於
て及び/又は複数のクライアントプロセッサ間に於て同
期連携をとるので、柔軟なデータ処理が可能となる。
【0050】
【発明の実施の形態】以下に本発明の実施例を添付の図
面を用いて説明する。図1は、本発明による信号処理ア
クセラレータの構成を示す構成図である。図1の信号処
理アクセラレータは、複数で同一の情報処理ユニット1
0を含む。各情報処理ユニット10は、互いに接続され
ると共に、ホストメモリバス30に接続される。このホ
ストメモリバスへの接続は、SIMMメモリ、DIMM
メモリと呼ばれるメモリを接続するためのスロットを使
用してもよい。
【0051】各情報処理ユニット10は、信号処理プロ
セッサ11、命令キャッシュ12、データRAM13、
リンク制御部14及び15、メインキャッシュ16、リ
ンクキャッシュ17、DRAM18、及びDRAMコン
トローラ19を含む。信号処理プロセッサ11、命令キ
ャッシュ12、及びデータRAM13は、信号処理部2
5を構成する。またリンク制御部14及び15、メイン
キャッシュ16、及びリンクキャッシュ17は、通信制
御部26を構成する。
【0052】リンク制御部14及び15には、通信リン
ク20が接続される。各情報処理ユニット10は、通信
リンク20を介して直列に配列され、隣接する情報処理
ユニット10と通信する。通信内容をある情報処理ユニ
ット10から次の情報処理ユニット10へと伝播してい
くことで、任意の情報処理ユニット10間で通信を行う
ことが出来る。図1では3個の情報処理ユニット10が
示されるが、個数は3個に限られず任意である。また各
情報処理ユニット10は、DRAMコントローラ19を
介してホストメモリバス30に接続される。更にホスト
プロセッサ(CPU)31が、ホストメモリバス30に
接続される。
【0053】信号処理プロセッサ11は信号処理機能を
実現するプロセッサであり、命令キャッシュ12は、信
号処理プロセッサ11が頻繁に用いる命令を格納してお
くためのキャッシュメモリである。なお信号処理プロセ
ッサ11が実行するプログラムは、命令キャッシュ12
以外にDRAM18に格納されている。データRAM
は、信号処理プロセッサ11がデータ処理する際に中間
結果を格納するため等のワーク領域として用いられる。
メインキャッシュ16及びリンクキャッシュ17は、信
号処理プロセッサ11が処理するデータを格納しておく
ためのキャッシュメモリである。メインキャッシュ16
には、情報処理ユニット10自身のDRAM18から取
り込んだデータを格納し、リンクキャッシュ17には、
リンク制御14及び15を介して他の情報処理ユニット
10から取り込んだデータを格納する。メインキャッシ
ュ16のデータがスワップアウトされても、そのデータ
が必要になった場合には、自分のDRAM18からデー
タを再度読みだすことが出来る。それに対して、リンク
キャッシュ17のデータがスワップアウトされると、別
の情報処理ユニット10から通信リンク20を介してデ
ータを再度持ってくる必要がある。メインキャッシュ1
6とリンクキャッシュ17を同一の一つのキャッシュメ
モリとしてしまうと、例えば、通信負荷が重い状態なの
に、自身のDRAM18からのデータをキャッシュメモ
リに格納することによって、他の情報処理ユニット10
から獲得したデータをスワップアウトしてしまう等の問
題が生じる。従って、本発明に於ては、メインキャッシ
ュ16とリンクキャッシュ17とを機能別に分けてい
る。
【0054】各情報処理ユニット10は、DRAM18
を含むDRAMコントローラ19を介して、ホストメモ
リバス30に接続される。DRAMコントローラ19が
管理するDRAM18のメモリ空間は、ホストプロセッ
サ31が管理する物理アドレス空間内に割り当てられ
る。このDRAM18が割り当てられた物理アドレスを
用いて、ホストプロセッサ31と各情報処理ユニット1
0との間のデータ転送を行うことが出来る。即ち、ホス
トプロセッサ31は、ホストメモリバス30を介してD
RAM18にアクセスして、データ及びプログラムを書
き込む。各情報処理ユニット10は、ホストプロセッサ
31がDRAM18に書き込んだデータを入力データと
して用いて、書き込まれたプログラムを実行することに
よりデータ処理を行う。
【0055】このデータ処理を実行する際、複数の情報
処理ユニット10は、互いに通信しながら並列処理或い
はパイプライン処理を行う。例えば幾つかの情報処理ユ
ニット10が画像データ処理を並列に実行している間
に、別の幾つかの情報処理ユニット10が音声データを
並列に処理すること等が可能である。複数の情報処理ユ
ニット10間の通信は、通信リンク20によって行われ
る。従って、ホストメモリバス30は、複数の情報処理
ユニット10間での通信には全く関与せず、ホストプロ
セッサ31が実行するOSプロセス等の他のプロセスに
データ転送経路を提供できる。
【0056】各情報処理ユニット10は、処理後のデー
タをDRAM18に書き込む。ホストプロセッサ31
は、ホストメモリバス30を介してDRAM18にアク
セスすることによって、データ処理後のデータを読み込
むことが出来る。図1の信号処理アクセラレータは、ホ
ストメモリバス30を介在しないで通信可能な複数の情
報処理ユニット10を設けて、それら情報処理ユニット
10に並列処理を実行させるので、バス競合によりデー
タ処理速度が低下することなく高速な信号処理を実現す
ることが出来る。また画像処理プロセスや音声処理プロ
セス等の複数のプロセスの各々に、別の情報処理ユニッ
ト10を割り当てることが出来るので、複数の異なった
信号を処理する必要があるマルチメディア信号処理に適
している。
【0057】また信号処理部25(信号処理プロセッサ
11、命令キャッシュ12、データRAM13)、通信
制御部26(キャッシュメモリ16及び17とリンク制
御部14及び15)、及びメモリ(DRAM18及びD
RAMコントローラ19)を1つのチップ上に集積回路
化して、従来のメモリと同等な形でパーソナルコンピュ
ータに搭載することが出来る。従ってコストを従来のメ
モリデバイスに重複させることが可能であると共に、メ
モリデバイス内に埋め込まれた信号処理アクセラレータ
をソフトウェアで活用出来るという利点がある。従っ
て、ハードウェアの追加・拡張にかかる費用を削減する
と共に、機能拡張性に優れたシステムを構築することが
出来る。
【0058】図2は、図1の信号処理アクセラレータの
ハードウェアアーキテクチャに対応したソフトウェアア
ーキテクチャを示す。図2は、パーソナルコンピュータ
に於けるソフトウェアの階層構造を、本発明と従来技術
とを重ね合わせて示したものである。従来に於ては、ソ
フトウェアの階層構造は、ユーザプログラムや例えばWi
ndows アプリケーションプログラム等からなるアプリケ
ーション層と、動的にローディングされる動的ローディ
ングライブラリ等のプログラムからなるAPI(アプリ
ケーションインターフェース)層と、各デバイスのハー
ドウェアを制御するためのデバイスドライバからなるデ
バイスドライバ層を含む。図2に於て、API層はX
X.API、YY.API、及びZZ.APIの3つの
動的ローディングライブラリプログラムを含み、これら
のプログラムは各々、デバイスドライバ層にあるXX.
VxD、YY.VxD、及びZZ.VxDのデバイスド
ライバを用いて、デバイスハードウェアXX、YY、及
びZZを動作させる。デバイスハードウェアXX、Y
Y、及びZZは、例えば、ハードディスク、ディスプレ
イ、メモリ、DSP等である。
【0059】本発明のソフトウェアアーキテクチャに於
ては、API層に本発明の信号処理アクセラレータに対
する動的ローディングライブラリRMI.APIを設
け、またデバイスドライバ層に信号処理アクセラレータ
に対するデバイスドライバRMI.VxDを設ける。R
MI.APIは、信号処理アクセラレータのリソース
(各情報処理ユニット10)の割り当て等の処理を行う
動的ローディングライブラリプログラムであり、他の従
来の動的ローディングライブラリと連携可能である。R
MI.APIが存在する層は、従来同様API層である
と考えてもよいが、RMI.APIと他の動的ローディ
ングライブラリとが連携するので、本発明の特徴を明確
にする際にはRMI−API連携層と呼ぶ。
【0060】RMI.VxDは、信号処理アクセラレー
タのハードウェアの制御を行うデバイスドライバであ
り、他の従来のデバイスドライバとデータの受け渡しを
行うことが出来る。RMI.VxDが存在する層は、従
来同様デバイスドライバ層であると考えてもよいが、R
MI.VxDは信号処理アクセラレータを制御すると共
に他のデバイスドライバと連携するので、本発明の特徴
を明確にする際にはドライバ連携層と呼ぶ。
【0061】なお実際にハードウェアのリソース(情報
処理ユニット10)を制御・管理するのはRMI.Vx
Dであるが、リソースの割り当て等のユーザアプリケー
ションに近い処理はRMI.APIで行われる。しかも
RMI.APIとRMI.VxDとの間の処理機能は、
それ程明確に分けることの出来るものではない。従っ
て、RMI−API連携層とドライバ連携層とを含め
て、本発明ではリソース管理層と呼ぶ。
【0062】従来のソフトウェアアーキテクチャに於
て、例えば、アプリケーションプログラムがデバイスX
Xに格納されているデータに対して、デバイスYYを用
いた処理を行い、デバイスZZに出力する場合を考え
る。この場合、図2のソフトウェア階層構造に於て、ま
ずデバイスXXからXX.VxD及びXX.APIを介
してアプリケーション層までデータを読み込み、その後
YY.API及びYY.VxDを介してそのデータをデ
バイスYYに供給し、更に処理後のデータをアプリケー
ション層まで再び読み込んで、最後にZZ.API及び
ZZ.VxDを介してデバイスZZに供給することにな
る。このようにデバイスハードウェアとソフトウェア階
層構造の最上層との間でデータを何度も往復させること
は、各ハードウェアデバイス間でバスを介して何度もデ
ータ転送することに対応する。
【0063】それに対し本発明のソフトウェアアーキテ
クチャに於ては、アプリケーションプログラムが、デバ
イスXXのデータを信号処理アクセラレータで処理して
デバイスZZに出力するように要求すると、リソース管
理層のRMI.VxDがデバイスドライバXX.VxD
からデータを受け取り、信号処理アクセラレータで処理
を行い、デバイスドライバZZ.VxDに処理データを
供給することになる。従って、ソフトウェア階層構造内
で最上層までデータを持ち上げる必要がなく、これはバ
スを介したデータ転送を考えた場合、バスに対するアク
セスを最小限に抑制することに相当する。
【0064】特に、画像データ処理及び音声データ処理
のように複数のプロセスが同時進行的に行われる必要が
あるマルチメディア処理に於ては、従来のソフトウェア
階層構造では、最上層であるアプリケーション層と複数
のデバイスとの間でデータを往復させる回数が、プロセ
ス数に応じて増大する。それに対し本発明のソフトウェ
ア階層構造では、信号処理アクセラレータが複数プロセ
スを同時に実行するようにリソース管理層が管理するの
で、データを最上層のアプリケーション層まで上げる必
要がなく、データ転送に関して効率的な処理を行うこと
が出来る。
【0065】図3は、リソース管理層のリソース管理プ
ログラム(RMI.API及びRMI.VxD)による
信号処理アクセラレータのリソース割り当てを模式的に
示す図である。前述のようにRMI.APIが主にリソ
ース割り当てに関する管理を行い、RMI.VxDが実
際のハードウェアの制御を行う。図3に於て、リソース
管理プログラムRMIは、複数のPE(プロセッサエレ
メント)40を管理・制御する。ここで各PE40は、
図1の各信号処理プロセッサ11に対応し、模式図にお
いて信号処理プロセッサ11のデータ処理機能を概念的
に表現すると考えてよい。また入力チャネル41は、デ
バイスドライバXX.VxDを指し示すポインタであ
り、出力チャネル42は、デバイスドライバZZ.Vx
Dを指し示すポインタである。即ち、デバイスドライバ
XX.VxDからデータを受け取り複数のPE40で処
理し、処理後のデータをデバイスドライバZZ.VxD
に出力することになる。入出力先が異なれば、当然入力
チャネル41及び出力チャネル42のポインタ参照先も
異なることになる。
【0066】リソース管理プログラムRMIは例えば、
入力元を示すポインタ、出力先を示すポインタ、各PE
40で実行する実行プログラムを指定する情報、及びP
E40をどのように接続するかに関する情報をユーザプ
ログラムから受け取る。各PE40が処理する実行プロ
グラムは、図1の信号処理アクセラレータ専用に作成さ
れたプログラムであり、各PE40を処理単位としたプ
ログラムモジュールであってよい。即ちこの場合、指定
された実行プログラムの個数は、使用するPE40の数
に等しい。ユーザプログラム側では、動的ローディング
ライブラリRMI.APIを読み出し、入力先、出力
先、実行プログラム名、各実行プログラム間の接続を指
定すればよい。
【0067】リソース管理プログラムRMIは、フリー
リソーススタック43に格納されている利用可能なPE
40から、指定された個数のPE40を各実行プログラ
ムの処理に割り当てる。更に、入力チャネル41、出力
チャネル42、及び割り当てられたPE40間を接続
し、入力チャネル41のポインタが示すデバイスドライ
バXX.VxDと出力チャネル42のポインタが示すデ
バイスドライバZZ.VxD間のデータ処理経路を確立
する。データ処理が終了すると、リソース管理プログラ
ムRMIは、各PE40を開放してフリーリソーススタ
ック43に格納する。
【0068】あるプロセスの実行中に別のプロセスの実
行が要求された場合には、リソース管理プログラムRM
Iは、フリーリソーススタック43の利用可能なPE4
0から指定された個数のPE40を新たなプロセスに割
り当て、以下同様の管理を行う。図4(A)乃至(C)
は、あるデータ処理に対する各PE40間の相互接続に
関して幾つかの例を示す。
【0069】図4(A)は、各PE40を直列に配置し
てパイプライン処理を行う構成である。例えば、CGの
計算を例にとると、物体をポリゴンに分割して各ポリゴ
ンの頂点座標及び色や反射計数等の属性を求める幾何変
換計算と、各ポリゴンの内部をスキャンライン方向に分
割してスキャンするラスタライズ、更に各スキャンライ
ン上で各ピクセルにテクスチャをマッピングするテクス
チャマッピング、各ピクセルの視点位置からの距離に基
づいて隠面処理を行うZバッファ処理等が順番に行われ
る。このような場合、図4(A)のように直列に配置し
た各PE40に幾何変換、ラスタライズ、テクスチャマ
ッピング、Zバッファ処理を割り当て、これらの計算を
パイプライン的に実行することによって、高速な処理を
実現することが出来る。
【0070】図4(B)は、各PE40を並列に配置し
て並列処理を行う構成である。例えば、画像処理を例に
とると、画像のエッジを強調するためにラプラシアンフ
ィルタを画像にかける場合、フィルタリングを画像の各
位置に適用する必要がある。この場合、例えば一つの画
像を複数の領域に分割して各領域のフィルタリング処理
を各PE40に割り当てることが出来る。これによっ
て、複数の領域に対するフィルタリング処理を並列に実
行することが可能となり、高速な処理を実現することが
出来る。
【0071】図4(A)のような直列配置によるパイプ
ライン的処理と、図4(B)のような並列配置による並
列処理とを組み合わせることも当然可能である。図4
(C)は、並列配置と直列配置とを組み合わせたPE4
0の接続形態の一例を示す。例えば、画像同士のマッチ
ングを計算する場合、2つの画像間で各画素の積をとり
その総和を計算することが行われる。このような場合、
並列に配置された複数のPE40によって、各画像の複
数の領域に於いて各画素の積を計算し、直列に配置され
たPE40によって各画素の積の総和を計算することが
出来る。これによって高速な処理が実現される。
【0072】図3に模式的に示したように、リソース管
理層のリソース管理プログラムが信号処理アクセラレー
タのリソース割り当てを行う。このとき各プログラム
を、フリーリソース(利用可能)であるPE40に割り
当てる割り当て方によって、システムの性能が大きく左
右される。例えば、4つの情報処理ユニット10(即ち
4つのPE40)からなる信号処理アクセラレータを考
える。また2つの手続きからなるプロセスを考え、各々
の手続きが1個のPE40で実行され、2つのPE40
間のデータ転送量がMであるとする。このようなプロセ
スを2つ実行するとして、計4つのPE40を割り当て
る場合を考える。
【0073】図5(A)及び(B)は、2つの異なった
プロセス割り当ての様子を示す。まず図5(A)のよう
に、プロセス1をプロセッサエレメントPE1及びPE
3に割り当て、プロセス2をプロセッサエレメントPE
2及びPE4に割り当てた場合を検討してみる。一つの
プロセス内での2つのPE間のデータ転送量はMである
から、PE1及びPE3間でPE2を介してデータ転送
量Mとなり、またPE2及びPE4間でPE3を介して
データ転送量Mとなる。従って、データ転送量は、PE
1及びPE2間でM、PE2及びPE3間で2M、PE
3及びPE4間でMとなる。
【0074】次に図5(B)のように、プロセス1をプ
ロセッサエレメントPE1及びPE2に割り当て、プロ
セス2をプロセッサエレメントPE3及びPE4に割り
当てた場合を考える。この場合、PE1及びPE2の間
でのデータ転送量がM、PE3及びPE4の間でのデー
タ転送量がMとなり、PE2及びPE3間ではデータ転
送は行われない。
【0075】各PE間のデータ転送能力が例えば1.5
Mbit/secであるとすると、図5(A)の場合に
は一方のプロセスの処理が実現不可能となるのに対し
て、図5(B)の場合には両方のプロセスの処理を同時
に実現できる。このようにプロセスの割り当て方によっ
て各リンクのデータ転送量が異なる結果となり、複数の
プロセスの完全な同時処理が可能な場合と不可能な場合
とが生じる。同時処理が不可能な場合には、当然ながら
全体でのデータ処理速度が劣化することになる。しかも
PE40の要求される数やタイミングは、実際の要求が
発行される前には全く未知であるため、PE40の割り
当てを動的に行う必要がある。従って、効率の良い動的
プロセス割り当てアルゴリズムが必要になる。
【0076】図6乃至図9は、本発明による動的プロセ
ス割り当てアルゴリズムを示す。この動的プロセス割り
当てアルゴリズムは、図2に示されるリソース管理プロ
グラムが実行する。この動的プロセス割り当てアルゴリ
ズムは、以下の2つの指標に基づいてリソースの割り当
てを行う。第1の指標は、割り当てるプロセスのデータ
転送が出来るだけ他のデータ転送と重ならないことであ
る。第2の指標は、当該プロセスを割り当てた結果、次
のプロセスを割り当てる際に出来るだけ他のデータ転送
と重ならないことである。
【0077】まず第1の指標によって、割り当てようと
しているプロセスによって生じる通信リンク(図1の2
0)上のデータ転送量の最大値が、最小になるように設
定する。次に同一の最大値を有する割り当て方の中か
ら、第2の指標を用いて、次に割り当てるプロセスが出
来るだけ阻害されないような割り当て方を求める。図6
は、動的プロセス割り当てアルゴリズムのメインルーチ
ンを示す。図6に示されるように、このアルゴリズムに
於ては、PEを1個要求する場合と複数個要求する場合
とで、別々に割り当て方を求める。これはPEを1個だ
け要求する場合には、当該プロセスによる通信リンク上
のデータ転送は生じないために、次のプロセス割り当て
に対する影響のみを考えればよいからである。それに対
してPEを複数個要求する場合には、通信リンクを介し
たデータ転送が必要であるために、そのプロセスの割り
当て方によって、当該プロセス自身の効率が影響を受け
てしまう。
【0078】図6のステップS1に於て、フリーリソー
スとして利用可能なPEの数を検査する。利用可能なP
Eが存在しない場合にはアルゴリズムを終了し、存在す
る場合にはステップS2に進む。ステップS2に於て、
要求されるPEの個数が1個であるのか否かを判断す
る。1個の場合にはステップS3に進み、複数の場合に
はステップS4に進む。
【0079】ステップS3に於て、PEの1個要求に対
する割り当てを行う。割り当てが失敗した場合にはアル
ゴリズムを終了し、成功した場合には次にステップS5
に進む。ステップS4に於て、PEの複数個要求に対す
る割り当てを行う。割り当てが失敗した場合にはアルゴ
リズムを終了し、成功した場合には次にステップS5に
進む。
【0080】ステップS5に於て、プロセスIDを更新
する。即ち新規のプロセスに、新規のプロセスIDを割
り当てる。これでアルゴリズムを終了する。図7は、図
6のステップS3に於けるPEの1個要求に対する割り
当てを示すフローチャートである。ステップS11に於
て、利用可能なPEを検索する。
【0081】ステップS12に於て、全ての利用可能な
PEに対してループを構成する。即ち、全ての利用可能
なPEに対して、以下のステップを繰り返す。ステップ
S13に於て、1個のPEを仮割り当てする。ステップ
S14に於て、次の割り当て効率を計算する。なお次の
割り当て効率を計算した結果を、Resultとする。
【0082】ステップS15に於て、結果Resultが最小
の値を保持する。ステップS16に於て、ループを終了
する。ステップS17に於て、結果Resultが最小の値で
あるPEを、実際にプロセスに割り当てる。以上で処理
を終了する。図8は、図6のステップS4に於けるPE
の複数個要求に対する割り当てを示すフローチャートで
ある。
【0083】ステップS21に於て、利用可能なPEを
検索する。ステップS22に於て、要求される個数の利
用可能なPEの全ての組み合わせに対して第1のループ
を構成する。即ち、要求される個数の利用可能なPEの
全ての組み合わせに対して、以下のステップを繰り返
す。ステップS23に於て、当該プロセスの割当によっ
て生じる通信リンクの転送量を計算する。
【0084】ステップS24に於て、通信リンクの転送
量の最大値が最小の割り当てを保持する。ステップS2
5に於て、第1のループを終了する。ステップS26に
於て、通信リンク転送量の増加が最小であるような割り
当てを第1のループで選択された割り当てとして、全て
の選択された割り当てに対して第2のループを構成す
る。
【0085】ステップS27に於て、選択された割り当
て方で、複数個のPEを仮割り当てする。ステップS2
8に於て、次の割り当て効率を計算する。なお次の割り
当て効率を計算した結果を、Resultとする。ステップS
29に於て、結果Resultが最小の割り当てを保持する。
【0086】ステップS30に於て、第2のループを終
了する。ステップS31に於て、結果Resultが最小の値
である割り当て方で、実際にプロセスに割り当てる。以
上で処理を終了する。図9は、図7のステップS14及
び図8のステップS28に於ける次の割り当て効率計算
処理を示すフローチャートである。
【0087】ステップS41に於て、利用可能なPEの
内で最も左端のPEを選択してPE_Lとする。ステッ
プS42に於て、利用可能なPEの内で最も右端のPE
を選択してPE_Rとする。ステップS43に於て、P
E_LからPE_Rまでの通信リンク数を求め、この通
信リンク数を結果Resultとする。以上で処理を終了す
る。
【0088】図9のフローチャートに於ては、最も左端
のPEと最も右端のPEを選択して、両PE間での通信
リンク数を求める。即ち、この通信リンク数によって、
次のプロセスを割り当てる際の割り当て効率を求めてい
ることになる。これは以下のように考えればよい。即
ち、両PE間での通信リンク数が少ないということは、
利用可能なPEが纏まって存在していることを意味す
る。逆に、両PE間での通信リンク数が多いと、利用可
能なPEが広い範囲に広がって存在していることにな
る。狭い範囲に纏まったPEにプロセスを割り当てる方
が、当然ながら、割り当てられたPE間に介在するPE
の数も少なく、割り当て後のデータ転送量の最大値も小
さくなる可能性が高い。広い範囲で互いに離れたPEに
プロセスを割り当てたのでは、介在するPEの数が多
く、別のプロセスのデータ転送と重なる可能性が高く、
従って割り当て後のデータ転送量の最大値も大きくなる
可能性が高い。即ち、図9のフローチャートは、プロセ
ス割り当て後に残された利用可能なPEが、纏まってな
るべく狭い範囲に存在するような指標を与えることにな
る。即ち、プロセス割り当て後に残された利用可能なP
Eを次回割り当てる際に、データ転送効率がなるべく良
くなるような指標を与えていることになる。
【0089】例えば、次のような順序、 1.PEを1個要求(処理1)、 2.PEを更に1個要求(処理2)、 3.処理1のPEを開放、 4.PE間の転送量Mで2個のPEを要求(処理3)、 5.処理2のPEを開放、 6.PE間の転送量Mで2個のPEを要求(処理4)、 でリソース要求及び開放が生じた場合を考える。
【0090】図10(A)は、上記の動的プロセス割り
当てアルゴリズムを用いた場合の結果を示し、図10
(B)は、左端から利用可能なPEを割り当てる単純な
割り当て方を用いた場合の結果を示す。なおLK[n,
m]は、n番目のPEとm番目のPEとの間の通信リン
クに於けるデータ転送量を示す。図10(A)及び
(B)から分かるように、時刻6のLK[2,3]が、
本発明による動的プロセス割り当てアルゴリズムに於て
は0であるのに対して、単純割り当てに於ては2Mとな
る。この時刻6に於ける両手法の割り当ては、図5
(A)及び(B)の割り当て方に相当する。また全時刻
に於けるデータ転送量の最大値は、本発明による動的プ
ロセス割り当てアルゴリズムに於てはMであるのに対し
て、単純割り当てに於ては2Mとなる。従って、本発明
による動的プロセス割り当てアルゴリズムに於ては、効
率の良いプロセス割り当てを行うことが出来る。
【0091】本発明による動的プロセス割り当てアルゴ
リズムの有効性を検証するために、計算機シミュレーシ
ョンを行った。図11(A)は、シミュレーション条件
を示し、図11(B)は、シミュレーション結果を示
す。リソース要求は乱数により発生した数のPEを要求
するものとし、また単純化のために、各プロセスのPE
間のデータ転送量は全て1とした。
【0092】1023回の試行で、データ転送量の最大
値の和は単純割り当てでは1279であったのに対し
て、本発明のアルゴリズムでは1220となり、本発明
の手法がデータ転送量の少ないリソース割当をしている
ことが分かった。図11(B)は、データ転送量の最大
値に注目して、本発明のアルゴリズムと単純割り当て手
法とを比較したものである。図11(B)から分かるよ
うに、単純割り当て手法が本発明のアルゴリズムを上回
ったのは総試行回数の約5%に過ぎない。逆に、本発明
のアルゴリズムが単純割り当て手法を上回ったのは、全
体の約11%であり、本発明のアルゴリズムの有効性を
示している。
【0093】図12は、リソース管理プログラムが各P
E40を管理しデータ処理を実行する際に、図1の信号
処理アクセラレータのDRAM18が統合されたメモリ
空間を構成する様子を概念的に示す。図1を参照して説
明したように、信号処理アクセラレータの各情報処理ユ
ニット10は通信リンク20を介して互いに通信する。
これによって、各情報処理ユニット10の信号処理プロ
セッサ11は、他の情報処理ユニット10が所有するD
RAM18に対してデータの読み出し/書き込みを行う
ことが出来る。即ち、各信号処理プロセッサ11から見
た場合、各情報処理ユニット10が所有するDRAM1
8は、単一の統合されたメモリ空間(ユニファイドメモ
リ)を構成することが出来る。
【0094】図12に示されるように、入力チャネル4
1及び出力チャネル42間でデータ処理を行う各PE4
0は、単一のメモリ空間(ユニファイドメモリ)を介し
てデータの転送を行う。即ち、あるPE40が処理した
データは、ユニファイドメモリのあるアドレスに格納さ
れ、そのデータを処理するPE40は、そのアドレスか
らデータを読み出して処理を実行する。このように、各
情報処理ユニット10は個別のDRAM18を備えてい
ながらも、情報処理ユニット10間の通信機能によっ
て、単一のメモリ空間を構成することが出来るので、自
身のDRAM18のメモリ空間と他の情報処理ユニット
10のメモリ空間とを特に区別することなく情報処理を
行うことが出来る。
【0095】図13は、ホストプロセッサと信号処理ア
クセラレータとの間のアドレス変換の関係を概念的に示
す。図13に示されるようにホストプロセッサ側では、
OS/ホストプロセッサの仮想記憶管理機構であるVM
機構55が、ホストプロセッサ側仮想アドレス空間51
を、ホストプロセッサ側物理アドレス空間52に変換す
る。仮想アドレス空間51は、最大で例えば5GBのメ
モリ空間を構成することが出来る。
【0096】ある情報処理ユニット10のDRAMコン
トローラ19が管理するDRAM18の物理アドレス空
間53は、ホストプロセッサ側物理アドレス空間52の
一部に割り当てられる。このDRAM18の物理アドレ
ス空間53は例えば最小で512KBである。このよう
にDRAM18の物理アドレス空間53が、ホストプロ
セッサ側物理アドレス空間52及びホストプロセッサ側
仮想アドレス空間51内に割り当てられることによっ
て、ホストプロセッサ31及び情報処理ユニット10と
の間のデータ転送が可能になる。
【0097】このDRAM18の物理アドレス空間53
は、信号処理アクセラレータ側プロセッサアドレス空間
54即ちユニファイドメモリ空間に、所定のオフセット
値でもって割り当てられる。この信号処理アクセラレー
タ側プロセッサアドレス空間54は、例えば最大で4G
Bのメモリ空間を構成する。各情報処理ユニット10の
DRAMコントローラ19が管理するDRAM18の物
理アドレス空間53は、各々が所定のオフセットで、信
号処理アクセラレータ側プロセッサアドレス空間54に
割り当てられる。これによって、情報処理ユニット10
の個数分のDRAM18が、ユニファイドメモリを構成
することが出来る。
【0098】図14は、情報処理ユニット10のDRA
Mコントローラ19の詳細な構成を示す。前述のよう
に、DRAMコントローラ19が管理するDRAM18
は、ホストプロセッサ31の仮想アドレス空間51に割
り当てられる。この仮想アドレス空間51への割り当て
は、ホストプロセッサ31上のOSが管理する構成とす
ることも当然可能である。しかしそのような管理機能を
サポートしない既存のOS等への適用を考えた場合に
は、OSがDRAM18をOS用のメモリ空間として獲
得して勝手に使用しないようにする必要がある。即ち、
初期状態においては、DRAM18はメモリとして認識
されないことが必要である。そして、信号処理アクセラ
レータを用いる場合にのみ、DRAM18を仮想アドレ
ス空間51に割り当てることでOSに対して使用可能な
メモリとし、ホストプロセッサ31と信号処理アクセラ
レータとの間でデータ受け渡しを実現する必要がある。
【0099】これを実現するためにホストプロセッサ側
は、仮想アドレス空間51への割り当てを、暗号を解除
することによって行う。即ち、ホストプロセッサ31が
DRAMコントローラ19にキー情報をデータとして供
給し、これが所定のキー情報(暗号)と一致するとき
に、DRAM18がメモリとしてOSに認識されるよう
にする。
【0100】図14のDRAMコントローラ19は、D
RAM18、キーレジスタ61、比較回路62、ホスト
メモリ制御回路63、及び制御レジスタ64を含む。D
RAM18は、メモリセル、ワード選択機構、コラム選
択機構、センスアンプ、プリチャージ機構等を含んだ通
常のDRAMであり、その詳細な説明は省略する。キー
レジスタ61は複数のキーデータを格納しており、この
複数のキーに一致する複数のデータがホストプロセッサ
31(図1)から与えられたときに、暗号が解除され
る。比較回路62は、ホストプロセッサ31がホストメ
モリバス30(図1)を介して供給したデータと、キー
レジスタ61に格納された複数のキーデータとを比較す
る。比較回路62はまた、比較結果をホストメモリ制御
回路63に供給する。
【0101】ホストメモリ制御回路63は、DRAM1
8、キーレジスタ61、制御レジスタ64を制御する。
ホストメモリ制御回路63は、制御レジスタ64内のキ
ー照合認識用の特定のレジスタへのデータ書き込みが発
生すると、複数のキー番号をキーレジスタ61に供給し
て複数のキーデータを読み出し、比較回路62に複数の
キーデータとホストメモリバス30から供給される複数
のデータとを比較させる。全てのキーデータが一致した
場合には、ホストメモリ制御回路63は、制御レジスタ
64内の認識コードレジスタに認識コードを書き込む。
この認識コードがホストプロセッサ側に渡され認識され
ることによって、DRAM18及びDRAMコントロー
ラ19がメモリとしてホストプロセッサ31に認識され
る。この詳細については後述する。
【0102】制御レジスタ64は、上記キー照合認識用
レジスタ及び認識コードレジスタの他に、信号処理部2
5及び通信制御部26を初期化するための初期化用レジ
スタと、信号処理部25の動作を制御するためのリセッ
ト信号フラグ等を含む。図15は、情報処理ユニット1
0の状態変化を状態遷移図として示したものである。
【0103】まず電源投入直後は、初期状態ST1にあ
る。ホストメモリバス30に接続された他の通常のDR
AMは、この時点でメモリとして認識されるが、情報処
理ユニット10のDRAM18は、この時点ではメモリ
として認識されない。初期状態ST1に於て、リソース
管理プログラム或いは他のプログラムによりホストメモ
リバス30を介して、データ及びアドレスが与えられ
る。また同時に制御信号RAS、/CAS、WE、/O
Eを与えることによって、DRAMコントローラ19へ
のアクセスを行う。このとき制御レジスタ64のキー照
合認識用レジスタに対してデータが書き込まれると、初
期状態ST1からキー照合モードST2に移行する。
【0104】キー照合モードST2に於て、ホストメモ
リ制御回路63は、複数のキー番号を順番にキーレジス
タ61に供給する。キーレジスタ61は、複数のキー番
号に対応する複数のキーデータを、比較回路62に順次
供給する。比較回路62は、ホストメモリバス30を介
して供給された複数のデータと複数のキーデータとを比
較照合し、比較結果をホストメモリ制御回路63に供給
する。全てのキーデータと書き込みデータとが一致した
場合、キー照合モードST2から暗号モード仮解除状態
ST3に遷移する。一つでもキーが不一致ならば、状態
は初期状態に戻る。
【0105】暗号モード仮解除状態ST3に於て、ホス
トメモリ制御回路63は、制御レジスタ64の認識コー
ドレジスタに認識コードを書き込む。ホストプロセッサ
31は、この認識コードを読み出して確認すると、DR
AM18をメモリとして認識してデバイステーブルに登
録する。認識コードレジスタへの読み出しアクセスが発
生したことによって、暗号モード解除状態ST4に遷移
する。
【0106】暗号モード解除状態ST4に於て、ホスト
プロセッサ31は、制御レジスタ64の初期化用レジス
タに初期化要求を書き込む。初期化要求が書き込まれる
と、信号処理部25及び通信制御部26は初期化され
る。初期化要求の書き込みによって、状態は信号処理プ
ロセッサリセット状態ST5に遷移する。信号処理プロ
セッサリセット状態ST5に於て、ホストプロセッサ3
1はDRAM18に、実行プログラムやデータ入出力バ
ッファへのアドレスポインタ等の情報を書き込む。また
更に制御レジスタ64のリセット信号フラグを解除す
る。信号処理部25は、リセット信号フラグが解除され
ると、データ処理を開始する。データ処理開始によっ
て、状態は信号処理プロセッサ稼働状態ST6に遷移す
る。
【0107】リセット信号フラグをクリア/セットしな
がら、信号処理プロセッサリセット状態ST5と信号処
理プロセッサ稼働状態ST6との間で状態を行き来させ
ることによって、プログラムの書き換えや結果の読み出
し等を行うことが出来る。信号処理プロセッサ稼働状態
ST6に於て、完全にデータ処理動作が停止すると、初
期状態に遷移して元の状態に戻る。この状態に於ては、
ホストプロセッサ31は、情報処理ユニット10のDR
AM18をメモリとして認識しない。
【0108】このようにOSがDRAM18をOS用の
メモリ空間として獲得しないように、初期状態に於て
は、DRAM18をメモリとして認識させずに、信号処
理アクセラレータを用いる場合にのみ、暗号を解除する
ことによってDRAM18を使用可能なメモリとして認
識させる。この場合暗号を解除することは、ホストプロ
セッサ側の物理アドレス空間52の中で、通常のDRA
Mではない情報処理ユニット10のDRAM18を探索
することに相当する。
【0109】図16は、本発明を用いて仮想マシンコー
ドを実行する仕組みを示した図である。例えば、インテ
ル社のマイクロプロセッサにはP55C等のように、汎
用プロセッサに信号処理用の拡張命令としてマルチメデ
ィア拡張命令セットMMXを提供するものがある。しか
しながら拡張命令セットMMXを用いたプログラムを、
拡張命令に対応していないペンティアム等の汎用プロセ
ッサで実行しようとすると、当然ながら、拡張命令を実
行しようとした段階で命令例外として割り込みINT6を発
生することになる。このような場合に、割り込み処理ル
ーチンを設けておいて、実行しようとした拡張命令を本
発明の信号処理プロセッサでエミュレートすることによ
って、仮想マシンを実現することが出来る。
【0110】図16は、ペンティアム及び拡張命令セッ
トMMXを例として、この仮想マシンを実現するソフト
ウェア構造を示すものである。図16に示されるよう
に、アプリケーション層には、拡張命令MMXを用いな
いプログラムである通常アプリケーションと、拡張命令
MMXを用いるMMXユーザプログラムが存在する。こ
れらのアプリケーションは、拡張命令MMXに対応して
いないペンティアムプロセッサによって実行するとす
る。ユーザプログラムを実行すると、拡張命令MMXを
実行する段階で、ペンティアムプロセッサは割り込みIN
T6を発生する。
【0111】リソース管理層には、リソース管理プログ
ラムRMIと共に、仮想マシンプログラムVMMXが配
置されている。仮想マシンプログラムVMMXは、割り
込み処理を行うプログラムである。仮想マシンプログラ
ムVMMXは、割り込みINT6を受け取ると、割り込み発
生の原因である拡張命令MMXをメインメモリの命令キ
ュー(FIFO)に書き込む。仮想マシンプログラムM
MXは、メインメモリのFIFOから読み出した拡張命
令MMXを、リソース管理プログラムRMIに転送す
る。リソース管理プログラムRMIは、拡張命令MMX
をエミュレートする信号処理アクセラレータのプログラ
ム、入出力先を示すアドレスポインタ等を信号処理アク
セラレータのユニファイドメモリに書き込む。信号処理
アクセラレータの各PEは、拡張命令MMXをエミュレ
ートして、処理結果をユニファイドメモリに書き込む。
この処理結果は、リソース管理層のリソース管理プログ
ラムRMI及び仮想マシンプログラムVMMXを介し
て、アプリケーション層のユーザプログラムに返され
る。
【0112】このように拡張命令MMXに対応していな
い汎用プロセッサで拡張命令MMXを実行した場合に、
割り込みINT6を検出して、本発明の信号処理アクセラレ
ータで拡張命令MMXをエミュレートすることにより、
恰も拡張命令MMXを実行できるプロセッサであるかの
ように、プログラム処理を進めることが出来る。なお拡
張命令MMX、割り込みINT6、ペンティアムプロセッサ
等は説明のための一例である。即ち、割り込み検出後に
例外処理として信号処理アクセラレータによるエミュレ
ーションを実行するという処理は、インテル社製のプロ
セッサやシステムに限られるものではなく、任意のシス
テムに適用することが出来る。また例えば、市販のプロ
セッサでは全くサポートされていないような任意の信号
処理命令をユーザ自身が作成し、これを仮想マシン(信
号処理アクセラレータ)で例外処理として実行させるこ
とも可能である。
【0113】図17は、信号処理アクセラレータによっ
てエミュレーションを実行する例外処理のフローチャー
トである。ステップS51に於て、ユーザプログラムの
仮想マシンコード(仮想マシン命令)が、ホストプロセ
ッサ31(図1)に読み込まれる。ここで仮想マシンコ
ードとは、信号処理アクセラレータがエミュレーション
する命令のことである。ホストプロセッサ31は、仮想
マシンコードをデコードした時点でこれが不当命令であ
ることを判断し、割り込み信号INT6(実際にはINT6でな
くとも命令例外等を示す割り込み信号であればよい)を
生成する。
【0114】ステップS52に於て、割り込み信号INT6
を検出した仮想マシンプログラム(図16のVMMXに
対応する割り込み処理ルーチン)は、割り込みを起こし
た仮想マシン命令を命令キューであるFIFOに転送す
る。なおここで割り込みを起こした仮想マシン命令は、
データ処理命令であるとする。ステップS53に於て、
リソース管理プログラムRMI(RMI.API及びR
MI.VxD)は、FIFOから読み出された仮想マシ
ン命令を受け取ると共に、以前の仮想マシン命令に対す
る処理が終了したか否かを判断する。以前の仮想マシン
命令に対する処理が終了するのを待って、処理はステッ
プS54に進む。
【0115】ステップS54に於て、リソース管理プロ
グラムRMIは、仮想マシン命令を、信号処理プロセッ
サ(図1の11)が実行する命令の命令キューに書き込
む。仮想マシン命令を命令キューに書き込んだ後、リソ
ース管理プログラムRMIは、信号処理アクセラレータ
に仮想マシン命令エミュレーションの実行を指示すると
共に、仮想マシンプログラムに実行完了通知を送付す
る。
【0116】ステップS55に於て、仮想マシンプログ
ラムは実行完了通知を受け取り実行完了を認識し、ホス
トプロセッサ31に割り込み処理からの復帰を行わせ
る。ステップS56に於て、ユーザプログラムの次の命
令が、ホストプロセッサ31に読み込まれる。ステップ
S57に於て、ホストプロセッサ31に於けるユーザプ
ログラムの実行とは独立に、信号処理アクセラレータ
が、仮想マシン命令のエミュレーションを行う。
【0117】ステップS58に於て、仮想マシンレジス
タブロック(図1の情報処理ユニット10のDRAM1
8)に、エミュレーションの結果が書き込まれる。ステ
ップS59に於て、信号処理アクセラレータのエミュレ
ーションとは独立に、ホストプロセッサ31が、ユーザ
プログラムの仮想マシンコードを読み込む。ホストプロ
セッサ31は、仮想マシンコードをデコードした時点で
これが不当命令であることを判断し、割り込み信号INT6
(実際にはINT6でなくとも命令例外等を示す割り込み信
号であればよい)を生成する。
【0118】ステップS60に於て、割り込み信号INT6
を検出した仮想マシンプログラムは、割り込みを起こし
た仮想マシン命令を、命令キューであるFIFOに転送
する。なおここで割り込みを起こした仮想マシン命令
は、データ読み出し命令であるとする。ステップS61
に於て、リソース管理プログラムRMIは、FIFOか
ら読み出された仮想マシン命令を受け取ると共に、以前
の仮想マシン命令に対する処理が終了したか否かを判断
する。以前の仮想マシン命令に対する処理が終了するの
を待って、処理はステップS62に進む。
【0119】ステップS62に於て、リソース管理プロ
グラムRMIは、仮想マシン命令を、信号処理プロセッ
サが実行する命令の命令キューに書き込む。ステップS
63に於て、リソース管理プログラムRMIは、エミュ
レーションの処理結果を、仮想マシンレジスタブロック
からユーザプログラムのメモリ空間に転写する。また、
仮想マシンプログラムに実行完了通知を送付する。
【0120】ステップS64に於て、仮想マシンプログ
ラムは実行完了通知を受け取り実行完了を認識し、ホス
トプロセッサ31に割り込み処理からの復帰を行わせ
る。ステップS65に於て、ユーザプログラムの次の命
令が、ホストプロセッサ31に読み込まれる。このよう
にして、仮想マシン命令がホストプロセッサ31に読み
込まれた場合に、仮想マシンプログラムが割り込み信号
INT6を検出して、リソース管理プログラムRMIの管理
の基に、信号処理アクセラレータが仮想マシン命令をエ
ミュレーションする。これにより恰もホストプロセッサ
31が仮想マシン命令を実行しているかのように、ユー
ザプログラム処理を進めることが出来る。
【0121】以下に於ては、上述の実施例のように、ク
ライアントプロセッサ(上記実施例に於ける信号処理プ
ロセッサ又は信号処理アクセラレータ)がメモリインタ
ーフェース(メインメモリが接続されるホストメモリバ
ス)を介してホストプロセッサに接続されるシステムに
於て、ホストプロセッサがクライアントプロセッサを制
御する様々な方法について説明する。メモリインターフ
ェースはホストメモリバスに接続されるメインメモリを
アクセスするインターフェースであり、メインメモリは
ホストプロセッサが実行する命令コードやデータを補助
記憶装置から読み出して格納しておくメモリである。
【0122】図18は、クライアントプロセッサとメモ
リとがメモリインターフェースを介してホストプロセッ
サに接続される場合に、クライアントプロセッサとメモ
リとを切り替える機構を示す図である。図18に示され
るように、ホストプロセッサ101は、切り替え手段1
04を介してクライアントプロセッサ102及びメモリ
103に接続される。ホストプロセッサ101は、クラ
イアントプロセッサ102及びメモリ103の何れか一
方だけにアクセス可能であり、切り替え手段104がこ
れを制御する。
【0123】切り替え手段104は、アドレス判定手段
105、キー判定手段106、切り替えフラグ107、
AND論理108、及びスイッチ109を含む。ホスト
プロセッサ101は、所定のアドレスに対して所定のデ
ータを書き込む。アドレス判定手段105は、所定のア
ドレスが入力されると出力をアクティブにする。キー判
定手段106は、アドレス判定手段105の出力がアク
ティブになると、ホストプロセッサから供給されたデー
タを所定のキー情報と比較する。供給されたデータとキ
ー情報とが一致すると、キー判定手段106は、切り替
えフラグ107にフラグをセットする。切り替えフラグ
107は、フラグが設定されているならば出力をアクテ
ィブにする。AND論理108は、アドレス判定手段1
05の出力と切り替えフラグ107の出力との両方がア
クティブの場合に、スイッチ109を開放する。これに
よって、ホストプロセッサ101は、メモリ103では
なくクライアントプロセッサ102にアクセスできるよ
うになる。なおクライアントプロセッサ102からメモ
リ103に切り替える場合には、切り替えフラグ107
のフラグをクリアーするように、ホストプロセッサ10
1から所定のアドレスに所定のデータを与えればよい。
【0124】このように所定のアドレスに所定のキーデ
ータを書き込むことで、クライアントプロセッサ102
とメモリ103との間の切り替えを行うことが出来る。
この際、データとキー情報との照合を複数回行うことに
すれば、偶然にキーが一致する可能性を小さくすること
が出来る。即ち必要な照合の回数が多いほど、確実性を
増すことが出来る。
【0125】上記所定のアドレスは、メモリ空間上の特
定の一つのアドレスであるように構成してよい。図19
は、メモリ空間上の特定の一つのアドレスが入力された
時に出力をアクティブにするアドレス判定手段105の
構成を示す構成図である。図19のアドレス判定手段1
05は、特定アドレスを格納する格納手段111及び比
較器112を含む。格納手段111に格納されるアドレ
スと同一のアドレスが供給されたときに、図19のアド
レス判定手段105は出力をアクティブにする。
【0126】上記所定のアドレスは、メモリ空間上の特
定の範囲のアドレスであるように構成してよい。図20
は、メモリ空間上の特定の範囲のアドレスが入力された
時に出力をアクティブにするアドレス判定手段105の
構成を示す構成図である。図19のアドレス判定手段1
05は、第1の特定アドレスを格納する格納手段111
A、第2の特定アドレスを格納する格納手段111B、
比較器112A及び112B、及びAND論理113を
含む。格納手段111Aに格納される第1の特定アドレ
スより大きなアドレスが供給されたときに、比較器11
2Aは出力をアクティブにする。格納手段111Bに格
納される第2の特定アドレスより小さなアドレスが供給
されたときに、比較器112Bは出力をアクティブにす
る。従ってAND論理113の出力であるアドレス判定
出力がアクティブになるのは、供給されたアドレスが、
第1の特定アドレスと第2の特定アドレスとの間の範囲
内にあるときである。
【0127】図18に於て、キー判定手段106が供給
されたデータと所定のキー情報を比較する場合に、デー
タビット順序の入れ替えが問題となる。一般にコンピュ
ータシステムに於ては、メモリインターフェースに於
て、データビット順序の入れ替えが起こる。これはホス
トプロセッサからメモリにデータバスを配線する場合
に、雑音抑制や配線面積低減等を重視して配線するが、
データバスの各ビット線の順番は特に考慮しないで配線
するために起こる。
【0128】図21はビット順序の入れ替えを概念的に
示す図である。図21に示されるように、例えば、ホス
トプロセッサ側の最上位ビットMSBがメモリ側では上
から4番目のビットとなり、最下位ビットLSBが上か
ら3番目のビットとなるといった状況が生じる。メモリ
側でビットの順序が入れ替わって記憶されても、読み出
してホストプロセッサ側に転送するときにはビット順序
が元に戻されるので、通常のコンピュータシステムに於
てはこのようなビット順序の入れ替えは問題とならな
い。
【0129】しかしキー判定手段106が所定のキー情
報と供給されたデータとを比較する際に、データにビッ
ト順序入れ替えがあると、単純にキー情報のパターンと
供給されたデータのビットパターンとを比較することは
無意味である。そこで以下に示すような種々の方法が考
えられる。図22(A)は、データワードとサブワード
との関係を示す図であり、図22(B)は、キーコード
を示す図である。上述のようにビット順序入れ替えが起
こる場合であっても、サブワード毎に入れ換えは起こる
が、サブワード内でのビット順序は入れ替わらないよう
なシステムが多い。例えばデータワードが32ビットで
あって、8ビットのサブワードが4つ含まれる場合を考
えると、このようなシステムに於ては、各サブワードの
順番は入れ替わるが、サブワード内の8ビットの順番は
入れ替わらない。
【0130】従って図22(A)及び(B)に示される
ように、各サブワードをキーコード(キー情報)で構成
したデータワードを、ホストプロセッサからキー判定手
段106に供給すればよい。この場合、途中でサブワー
ドの順序が入れ替わっても、キー判定手段106でキー
コードと各サブワードとを比較して、正しい判定結果を
得ることが出来る。
【0131】図23は、キーコードを各サブワードとし
たデータワードを構成するフローチャートである。ステ
ップS23−1に於て、Lw個のデータx[i](i=
1、…、Lw)が供給される。ここで各データx[i]
はキーコードであり、Kwビットから構成される。
【0132】ステップS23−2に於て、変数iとして
Kw回のループを開始する。ステップS23−3に於
て、Mwビットのデータy[i]にゼロを設定する。ス
テップS23−4に於て、Mw/Kw回のループを開始
する。ここでMwがデータワードビット数(例えば3
2)であり、Kwがサブワードビット数(例えば8)で
ある。
【0133】ステップS23−5に於て、y[i]とx
[i]とのビット毎のORをとり、新たにy[i]とす
る。ステップS23−6に於て、y[i]の各ビットを
左にKwビットシフトする。即ち、ステップS23−5
で代入されたx[i]のデータが、右から2番目のサブ
ワードに移動されることになる。
【0134】ステップS23−7に於て、Mw/Kw回
処理が行われたか否かを判断し、Mw/Kw回処理が行
われた場合にはループを終了する。ステップS23−8
に於て、変数iのループがKw回処理されたか否かを判
断し、Kw回処理が行われた場合にはループを終了す
る。ステップS23−9に於て、出力データとしてLw
個のデータy[i]が得られる。各y[i]は、各サブ
ワードにキーコードが挿入されたデータである。従っ
て、このy[i]を所定のアドレスに書き込めば、サブ
ワード順序の入れ換えがある場合であっても、キーコー
ド照合を正しく行うことが出来る。
【0135】図18の構成のシステムに於ては、上述の
ように、所定のアドレスにデータを書き込むことでクラ
イアントプロセッサとメモリとの切り替えが行われる。
この場合、クライアントプロセッサへの切り替えが行わ
れた後に、確かにクライアントプロセッサへの切り替え
が行われたか否かを、ホストプロセッサ側で確認出来る
ことが好ましい。そのためには所定のキーデータをクラ
イアントプロセッサから読み出して、ホストプロセッサ
側でキー照合を行えばよい。
【0136】図24は、キーコードを各サブワードとし
たデータワードを読み出して、データワードからキーコ
ードを取り出す処理のフローチャートである。ステップ
S24−1に於て、Nr個のデータy[i](i=1、
…、Nr)が読み出される。各y[i]は、Mrビット
から構成される。ステップS24−2に於て、Mrビッ
トから構成され、下位Krビットが1で残りのビットが
ゼロであるマスクMASKを設定する。
【0137】ステップS24−3に於て、変数iとして
Nr回のループを開始する。ステップS24−4に於
て、マスクMASKとデータy[i]とのビット毎のA
NDをとり、x[i]とする。ステップS24−5に於
て、変数iのループがNr回処理されたか否かを判断
し、Nr回処理が行われた場合にはループを終了する。
【0138】ステップS24−6に於て、Nr個のデー
タx[i]が得られる。各データx[i]を、所定のキ
ーコードと照合することによって、ホストプロセッサ側
で確かに切り替えが行われたか否かを判定することが出
来る。図25は、ビット順序入れ替えを考慮した時系列
データによるキー照合を説明するための図である。図2
5(A)のように、全て0或いは全て1から構成される
データワードを複数個書き込む。各データワードから1
ビット取り出して時間方向に並べれば、図25(B)に
示されるような時系列パターンを構成することが出来
る。メモリインターフェースに於てどのようなビット順
序入れ替えがあっても、この時系列パターンは影響を受
けないので、これをキー照合のためのデータとして用い
ることが出来る。
【0139】図26は、時間方向にキーコードの各ビッ
トが並ぶデータをキーコードを基にして生成する処理の
フローチャートである。ステップS26−1に於て、L
w個のデータx[i](i=1、…、Lw)が供給され
る。ここで各データx[i]はキーコードであり、Kw
ビットから構成される。
【0140】ステップS26−2に於て、Kwビットか
ら構成され最下位ビットのみが1であるマスクMASK
を生成する。ステップS26−3に於て、変数jとして
Lw回のループを開始する。ステップS26−4に於
て、変数iとしてKw回のループを開始する。ステップ
S26−5に於て、データx[i]とマスクMASKと
のORを計算する。結果が1ならステップS26−6
に、結果が0ならステップS26−7に進む。
【0141】ステップS26−6に於て、Mwビットの
データy[jKw+i]に、全ビット1を代入する。ス
テップS26−7に於て、Mwビットのデータy[jK
w+i]に、全ビット0を代入する。ステップS26−
8に於て、x[i]を右に1ビットシフトする。
【0142】ステップS26−9に於て、変数iのルー
プがKw回処理されたか否かを判断し、Kw回処理が行
われた場合にはループを終了する。ステップS26−1
0於て、変数jのループがLw回処理されたか否かを判
断し、Lw回処理が行われた場合にはループを終了す
る。ステップS26−11に於て、(Kw)x(Lw)
個のデータy[i]が得られる。各y[i]はMwビッ
トから構成され、全ビットが0或いは全ビットが1のデ
ータである。各y[i]を時間方向(i方向)に見れ
ば、キーコードが並べられた時系列となっている。従っ
て、このy[i]を所定のアドレスに書き込めば、ビッ
ト順序の入れ換えがあっても、キーコード照合を正しく
行うことが出来る。
【0143】図27は、読み出したデータからキーコー
ドを取り出す処理のフローチャートである。ステップS
27−1に於て、Nr個のデータy[i](i=1、
…、Nr)が読み出される。各y[i]は、Mrビット
から構成される。ステップS27−2に於て、Krビッ
トから構成され、最下位ビットのみが1であるマスクM
ASKを設定する。
【0144】ステップS27−3に於て、変数jとし
て、Nr/Kr回のループを開始する。ステップS27
−4に於て、Krビットのデータx[j]をゼロに設定
する。ステップS27−5に於て、変数iとして、Kr
回のループを開始する。ステップS27−6に於て、デ
ータx[i]を左に1ビットシフトする。
【0145】ステップS27−7に於て、y[jKr+
i]の値を調べる。全ビット1ならステップS27−8
に進み、全ビット0ならステップS27−9に進む。そ
れ以外の場合にはエラー終了する。ステップS27−8
に於て、マスクMASKとデータx[j]とのビット毎
のORをとり、新たにx[i]とする。
【0146】ステップS27−9に於て、変数iのルー
プがKr回処理されたか否かを判断し、Kr回処理が行
われた場合にはループを終了する。ステップS27−1
0に於て、変数jのループがNr/Kr回処理されたか
否かを判断し、Nr/Kr回処理が行われた場合にはル
ープを終了する。ステップS27−11に於て、Nr/
Kr個のデータx[i]が得られる。各データx[i]
はKrビットから構成される。各データx[i]を所定
のキーコードと照合することによって、確かに切り替え
が行われたか否かをホストプロセッサ側で判定すること
が出来る。
【0147】図28は、ビット順序入れ換えを考慮した
0又は1の個数によるキー照合を説明するための図であ
る。図に示されるデータワードに含まれる0の個数及び
1の個数をカウントすれば、0が14個及び1が18個
あることが分かる。メモリインターフェースに於てどの
ようなビット順序入れ替えがあっても、このようにデー
タワードに含まれる0の個数及び1の個数は影響を受け
ないので、これをキー照合のためのデータとして用いる
ことが出来る。
【0148】図29は、複数のデータワードが与えられ
た場合に各データワード内の1の個数を数える処理のフ
ローチャートである。ステップS29−1に於て、Lw
個のデータx[i](i=1、…、Lw)が供給され
る。ここで各データx[i]は、Kwビットから構成さ
れる。ステップS29−2に於て、Kwビットから構成
され最下位ビットのみが1であるマスクMASKを生成
する。
【0149】ステップS29−3に於て、変数jとして
Lw回のループを開始する。ステップS29−4に於
て、y[j]にゼロを設定し、変数tmpにx[j]を
代入する。ステップS29−5に於て、変数iとしてK
w回のループを開始する。ステップS29−6に於て、
変数tmpとマスクMASKのビット毎のアンドをと
る。結果がゼロであるならステップS29−7を飛ば
し、結果がマスクMASKに等しいならばステップS2
9−7に進む。
【0150】ステップS29−7に於て、y[j]を1
インクリメントとする。ステップS29−8に於て、変
数tmpを右に1ビットシフトする。ステップS29−
9に於て、変数iのループがKw回処理されたか否かを
判断し、Kw回処理が行われた場合にはループを終了す
る。ステップS29−10に於て、変数jのループがL
w回処理されたか否かを判断し、Lw回処理が行われた
場合にはループを終了する。
【0151】ステップS29−11に於て、Lw個のデ
ータy[j](j=1、…、Lw)が得られる。即ち、
複数のデータワードxが与えられた場合に、各データワ
ードに含まれるビット”1”の個数をカウントして、デ
ータyとして提供することが出来る。図30は、複数の
データワードが与えられた場合に、各データワードが示
す数に等しい数のビット”1”を含む複数のデータワー
ドを生成する処理のフローチャートである。
【0152】ステップS30−1に於て、Nr個のデー
タy[i](i=1、…、Nr)が供給される。ここで
各データx[i]は、Mrビットから構成される。ステ
ップS30−2に於て、Krビットから構成され最下位
ビットのみが1であるマスクMASKを生成する。ステ
ップS30−3に於て、変数jとしてNr回のループを
開始する。
【0153】ステップS30−4に於て、x[j]にゼ
ロを設定する。ステップS30−5に於て、変数iとし
てKr回のループを開始する。ステップS30−6に於
て、x[j]を左に1ビットシフトする。ステップS3
0−7に於て、変数iがy[j]より小さいか否かを判
定する。NOならばステップS30−8を飛ばし、YE
SならばステップS30−8に進む。
【0154】ステップS30−8に於て、x[j]とマ
スクMASKとのビット毎のORを取り、新たなx
[j]とする。ステップS30−9に於て、変数iのル
ープがKr回処理されたか否かを判断し、Kr回処理が
行われた場合にはループを終了する。ステップS30−
10に於て、変数jのループがNr回処理されたか否か
を判断し、Nr回処理が行われた場合にはループを終了
する。
【0155】ステップS30−11に於て、Nr個のデ
ータx[j](j=1、…、Nr)が得られる。各デー
タx[j]はKrビットからなり、Krビットのうちで
y[j]個のビットが1であり残りのビットが0であ
る。即ち、複数のデータワードyが与えられた場合に、
各データワードが示す数に等しい数のビット”1”を含
む複数のデータワードxが得られたことになる。
【0156】図31は、キー照合によって切り替えを行
う処理の変形例を示すフローチャートである。複数のキ
ーデータを書き込んでキーコードと照合することで、偶
然性を排除した確度の高い認証(切り替え要求の確認)
を行うことが出来るが、キー照合に加えてデータの書き
込み回数及びデータの読み出し回数をチェックすること
で、認証の確度を更に向上させることが出来る。
【0157】ステップS31−1に於て、N回のループ
を開始する。ステップS31−2に於て、キーデータを
書き込んだ回数がWi回であるか否かを判定する。YE
SならステップS31−3へ、NOならステップS31
−7へ進む。ステップS31−3に於て、Wi個のキー
が全て一致したかどうかを判定する。YESならステッ
プS31−4へ、NOならステップS31−7へ進む。
【0158】ステップS31−4に於て、読み出しがR
i回行われたか否かを判断する。YESならステップS
31−5へ、NOならステップS31−7へ進む。ここ
で読み出しとは、所定のアドレスに対して適当な読み出
し動作を行うことであり、読み出されるデータは認証動
作とは関係なく、単に読み出し命令が発行された回数を
カウントする。そしてカウントされた回数を認証処理の
一部として用いる。
【0159】ステップS31−5に於て、N回のループ
を終了する。ステップS31−6に於て、認証が成功し
たと判断する。ステップS31−7に於て、認証が失敗
したと判断する。以上のようにして、キー照合に加えて
データの書き込み回数及びデータの読み出し回数をチェ
ックすることで、偶然性を排除した確度の高い認証(切
り替え要求の確認)を行うことが出来る。
【0160】図32は、キー照合によって切り替えを行
う処理の別の変形例を示すフローチャートである。図3
2の処理に於ては、キー照合を行う前にキーデータに含
まれる所定のパターンが認証パターンと一致するか否か
を調べ、パターンが一致しない場合を先に排除すること
で、高速な認証処理を行うものである。ステップS32
−1に於て、キーデータが書き込まれる。
【0161】ステップS32−2に於て、後述するよう
に、所定のパターンが一致するか否かをチェックする。
YESならステップS32−3へ、NOならステップS
32−5へ進む。ステップS32−3に於て、キーが一
致するか否かを判定する。YESならステップS32−
4へ、NOならステップS32−5へ進む。
【0162】ステップS32−4に於て、認証が成功し
たと判断する。ステップS32−5に於て、認証が失敗
したと判断する。以上のようにして、キー照合を行う前
に所定のパターンが一致するか否かを調べ、パターンが
一致しない場合を先に排除することで、高速な認証処理
を行うことが出来る。
【0163】なおこの場合の所定のパターンとは、ビッ
ト順序入れ替えが行われないシステムに於ては、キーデ
ータとして書き込まれるデータワード内に含まれるパタ
ーンである。ビット順序入れ替えが行われるシステムに
於ては、書き込まれるデータワードから抽出したキーデ
ータに含まれるパターンである場合と、データワードそ
のものに含まれるパターンである場合とがある。
【0164】図33は、パターンチェックに於てパリテ
ィを所定のパターンとして用いる場合の処理を説明する
図である。図に示される32ビットのデータワードに含
まれる1の個数をカウントすれば、1が18個で偶数パ
リティであることが分かる。このようなパリティチェッ
クをキー照合の前に実行すれば、高速にキー不一致の場
合を排除することが出来る。
【0165】図34は、供給されるデータをパリティチ
ェックする方法のフローチャートである。ステップS3
4−1に於て、ビット数がKwのデータxが供給され
る。ステップS34−2に於て、Kwビットから構成さ
れ最下位ビットのみが1であるマスクMASKを用意す
る。
【0166】ステップS34−3に於て、変数yをゼロ
に設定する。ステップS34−4に於て、変数iとして
Kw回のループを開始する。ステップS34−5に於
て、マスクMASKとデータxとのアンドをとり、更に
変数yとのEXORをとる。ステップS34−6に於
て、データxを右に1ビットシフトさせる。
【0167】ステップS34−7に於て、上記処理がK
w回行われたら、ループを終了する。ステップS34−
8に於て、変数yをチェックする。変数yが0であるな
らば、データxに於て1であるビットの数は偶数であ
る。変数yが1であるならば、データxに於て1である
ビットの数は奇数である。
【0168】パターンの一致を調べる際には、例えば偶
数パリティを認証パターンとする。図34のフローチャ
ートの処理をデータxについて実行し、得られた結果y
が偶数パリティを示す場合に、所定のパターンが認証パ
ターンと一致したと判断すればよい。図35は、パター
ンチェックに於てデータ内の特定のビットを所定のパタ
ーンとして用いる場合の処理を説明する図である。図に
示されるように、データ内で所定に位置にあるビットを
抽出し、抽出されたビットを並べて所定のパターンとす
る。このパターンが認証パターンと一致するか否かを、
キー照合の前に判断すれば、高速にキー不一致の場合を
排除することが出来る。
【0169】図36は、供給されるデータから特定のビ
ットを取り出してチェックする方法のフローチャートで
ある。ステップS36−1に於て、Kビットから構成さ
れるデータxが供給される。またKビットから構成され
るチェック用のデータCHKと、Nビットの認証パター
ンPATが設定される。データCHKは、所定のビット
位置に於てビット値が1であり、それ以外のビット値は
0であるデータである。1であるビットの数はNである
とする。
【0170】ステップS36−2に於て、Kビットから
構成され最下位ビットだけが1であるマスクMASKを
設定する。ステップS36−3に於て、データyをゼロ
に設定する。ステップS36−4に於て、変数iとして
K回のループを開始する。ステップS36−5に於て、
マスクMASKとデータCHKとのANDが1或いは0
の何れであるかを判定する。1の場合はステップS36
−6に進み、0の場合はステップS36−8に進む。
【0171】ステップS36−6に於て、マスクMAS
KとデータxとのANDが、マスクMASKと認証パタ
ーンとのANDと一致するか否かを判定する。一致する
場合にはステップS36−7に進み、それ以外の場合は
ステップS36−11に進む。ステップS36−7に於
て、パターンPATを右に1ビットシフトする。
【0172】ステップS36−8に於て、データCHK
及びデータxを右に1ビットシフトする。ステップS3
6−9に於て、変数iのループがK回処理されたら、ル
ープを終了する。ステップS36−10に於て、パター
ンが一致したと判定する。
【0173】ステップS36−11に於て、パターンが
不一致であると判定する。このようにしてデータxの所
定位置のビットに関して、認証パターンとの照合を行う
ことが出来る。図37は、供給されたデータワードが特
定のパターンであるか否かに基づくパターンチェック処
理を説明する図である。例えば図25に示されるよう
に、全ビットが1或いは全ビットが0であるデータワー
ドを供給して、時系列データをキー照合に用いる場合を
考える。この場合図37に示されるように、データワー
ドが全て1であるか或いは全て0である場合のみ認証
し、そうでないデータワードが来た場合には認証しない
ように構成することで、容易にパターンチェックを実行
することが出来る。このパターンチェックをキー照合の
前に判断すれば、高速にキー不一致の場合を排除するこ
とが出来る。
【0174】図38は、供給されるデータワードの全ビ
ットが1であるか全ビットが0であるかを判断してチェ
ックする方法のフローチャートである。ステップS38
−1に於て、Kビットから構成されるデータxが供給さ
れる。ステップS38−2に於て、Kビットから構成さ
れ最下位ビットだけが1であるマスクMASKを設定す
る。
【0175】ステップS38−3に於て、データyを1
に設定し、データzを0に設定する。ステップS38−
4に於て、変数iとしてK回のループを開始する。ステ
ップS38−5に於て、マスクMASKとデータxとの
ANDをとり更にデータyとのANDをとる。結果を新
たにデータyとする。
【0176】ステップS38−6に於て、マスクMAS
KとデータxとのANDをとり更にデータzとのORを
とる。結果を新たにデータzとする。ステップS38−
7に於て、データxを右に1ビットシフトする。ステッ
プS38−8に於て、変数iのループがK回処理された
ら、ループを終了する。
【0177】ステップS38−9に於て、データy及び
データzの値をチェックする。両方が0或いは両方が1
の場合はステップS38−10に進み、それ以外の場合
はステップS38−11に進む。ステップS38−10
に於て、パターンが一致したと判定する。ステップS3
8−11に於て、パターンが不一致であると判定する。
【0178】このようにしてデータxのビット構成に着
目して、全てのビットが0或いは全てのビットが1であ
るか否かを判断することで、認証パターンとの照合を行
うことが出来る。以下に於ては、ホストプロセッサがク
ライアントプロセッサを制御する際に必要となるメモリ
割当に関する処理について説明する。クライアントプロ
セッサに記憶領域を割り当てようとしたときに、クライ
アントプロセッサが使用可能な領域が別のアプリケーシ
ョンプロセスによって占有されている場合がある。この
場合には、クライアントプロセッサに対してメモリ領域
を確保するために、メモリ再割り当てを行う必要があ
る。
【0179】図39は、ホストプロセッサのOS機能に
よってメモリ領域を確保する例を示すフローチャートで
ある。ステップS39ー1に於て、クライアントプロセ
ッサが使用可能な領域に空きが有るか否かを判定する。
空きがある場合にはステップS39−6に進み、空きが
ない場合にはステップS39−2に進む。
【0180】ステップS39−2に於て、クライアント
プロセッサ領域を使用中のアプリケーションを検索す
る。ステップS39−3に於て、クライアントプロセッ
サ領域を使用中のアプリケーションに対して他の領域を
確保可能で有るか否かを判断する。確保可能である場合
はステップS39−5に進み、確保不可能である場合に
はステップS39−4に進む。
【0181】ステップS39−4に於て、優先順位の低
いアプリケーションをスワップアウトする。ステップS
39−5に於て、クライアントプロセッサ領域を使用中
のアプリケーションに対して他の領域を確保して、新し
く確保した領域にアプリケーションの再割り当てを行
う。
【0182】ステップS39−6に於て、クライアント
プロセッサを領域に割り当てる。このようにして、ホス
トプロセッサのOSが有する機能として、クライアント
プロセッサ領域の再割り当てを実現することが出来る。
以下に於ては、記憶領域割り当てとアプリケーション切
り替え制御を独立して行う方法について説明する。
【0183】図40は、領域割り当てとアプリケーショ
ン切り替え制御を独立に行う方法を実現するシステムの
構成図である。図40のシステムは、ホストプロセッサ
201、クライアントプロセッサ202、メインメモリ
203、スイッチ204及び205、アドレスバス20
6、及びデータバス207を含む。
【0184】ホストプロセッサ201は、メインメモリ
203の記憶空間上にクライアントプロセッサ割り当て
領域をアロケートし管理するプロセッサである。クライ
アントプロセッサ202は、メインメモリ203の主記
憶空間を介してホストプロセッサ201とインターフェ
ースする。メインメモリ203は、ホストプロセッサに
直結されているワークメモリである。
【0185】クライアントプロセッサ202は、プロセ
ッサ210、メモリ211、メモリ割り当て回路21
2、アドレス比較回路213、プロセッサRSTレジス
タ214、及びメモリ割り当てRSTレジスタ215を
含む。プロセッサ210は、ホストプロセッサ201が
主記憶上にアロケートした領域に対して制御情報及びデ
ータを書き込むと、これらの制御情報及びデータを受け
取ってデータ処理を実行する。処理結果データはメモリ
211に書き込まれて、ホストプロセッサ201に渡さ
れる。
【0186】メモリ211は、メインメモリ203の主
記憶空間とオーバーラップして配置される記憶空間を提
供する。このメモリ211の記憶空間は、プロセッサ2
10のアドレス空間にアロケートされている。従ってこ
の記憶空間を介して、ホストプロセッサ201及びクラ
イアントプロセッサ202は、相互に通信を行うことが
出来る。
【0187】メモリ割り当て回路212は、主記憶上に
クライアントプロセッサ202が割り当てられていない
ときに動作し、ホストプロセッサ201からのアクセス
要求を監視する。メモリ割り当て回路212は、所定の
特殊アクセス(例えばキー情報によるアクセス)が行わ
れたときに、クライアントプロセッサ202を主記憶の
どの領域にアロケートするのかを認識して、その領域に
クライアントプロセッサ202を割り当てる。
【0188】アドレス比較回路213は、主記憶上にク
ライアントプロセッサ202が割り当てられた後に動作
し、ホストプロセッサ201からのアクセスが、メモリ
割り当て回路212に保持されているクライアントプロ
セッサ割り当て空間に対するアクセスであるか否かを判
断する。プロセッサRSTレジスタ214は、プロセッ
サ210をリセットするレジスタである。このプロセッ
サRSTレジスタ214をアサートすることにより、ク
ライアントプロセッサ202は初期化される。リセット
アサート期間中に、メモリ211上にホストプロセッサ
201から新しいアプリケーションをダウンロードする
ことにより、リセットネゲートの後に、別のアプリケー
ション処理への切り替えを行うことが出来る。
【0189】メモリ割り当てRSTレジスタ215は、
クライアントプロセッサ202の主記憶上への割り当て
をリセットするレジスタである。このメモリ割り当てR
STレジスタ215をアサートすることにより、主記憶
上へのクライアントプロセッサ202の割り当てを実現
しているメモリ割り当て回路212がリセットされる。
リセットアサート期間中に、例えば図40のアドレス空
間Aからアドレス空間Bへ、別の主記憶領域へとクライ
アントプロセッサ割り当て領域を再配置することによ
り、リセットネゲートの後に、ホストプロセッサ201
とクライアントプロセッサ202との間の通信を新たな
主記憶領域を用いて行うことが出来る。これによって、
ホストプロセッサ201にとって都合のよい主記憶領域
への配置をリアルタイムで実現することが可能になる。
【0190】スイッチ204及び205は、クライアン
トプロセッサ202及びメインメモリ203とデータバ
ス207との間に配置され、クライアントプロセッサ2
02のメモリ割り当て回路212によって制御される。
スイッチ204及び205によって、ホストプロセッサ
201に対して、メインメモリ203とクライアントプ
ロセッサ202との間の切り替えが行われる。
【0191】図41は、図40のシステムを用いたメモ
リ割り当て制御とアプリケーション切り替え制御の例を
示すフローチャートである。ステップS41−1からス
テップS41−7に於ては、メモリ割り当てRSTレジ
スタ215がアサートされている期間中に、主記憶のア
ドレス空間Aにメモリ211を割り当て、またプロセッ
サRSTレジスタ214がアサートされている期間中
に、アプリケーションA用のプログラムとデータがダウ
ンロードされる。これによって、アプリケーションAに
記憶領域を割り当て、データ処理を実行することが出来
る。
【0192】ステップS41−8からステップS41−
12に於ては、プロセッサRSTレジスタ214がアサ
ートされている期間中に、アプリケーションB用のプロ
グラムとデータをダウンロードする。これによって、主
記憶領域を確保したまま、アプリケーションAからアプ
リケーションBに切り替えることが出来る。ステップS
41−13からステップS41ー16に於ては、メモリ
割り当てRSTレジスタ215がアサートされている期
間中に、主記憶のアドレス空間Bにメモリ211を割り
当てる。これによって、アプリケーション処理の初期化
を行わずに、ホストプロセッサ201にとって都合のよ
い主記憶領域に、クライアントプロセッサ202を再配
置することが出来る。
【0193】このようにクライアントプロセッサ202
内のプロセッサ210を初期化するプロセッサRSTレ
ジスタ214と、メモリ割り当てを実現するメモリ割り
当て回路212を初期化するメモリ割り当てRSTレジ
スタ215を別個に設けることにより、主記憶上の領域
割り当てとアプリケーション切り替えとを独立に制御す
ることが可能になる。
【0194】以下に於ては、複数のクライアントプロセ
ッサがある場合に、クライアントプロセッサ間及びホス
トプロセッサとクライアントプロセッサ間で同期連携を
とる方法について説明する。図42は、クライアントプ
ロセッサ間及びホストプロセッサとクライアントプロセ
ッサ間で同期連携をとる方法を実現するシステムの構成
図である。
【0195】図42のシステムは、ホストプロセッサ3
01と複数のクライアントプロセッサ302を含む。ホ
ストプロセッサ301は、ホストプロセッサアドレス空
間に割り当てられたクライアントプロセッサ302を制
御する。各クライアントプロセッサ302は、プロセッ
サ310、メモリ311、起動/停止レジスタ312、
ステータスレジスタ313を含む。
【0196】メモリ311は、ホストプロセッサ301
とクライアントプロセッサ302との間のデータ交換を
実現するためのメモリである。プロセッサ310は、ホ
ストプロセッサ301が記憶空間にアロケートした領域
に対して制御情報及びデータを書き込むと、これらの制
御情報及びデータを受け取ってデータ処理を実行する。
処理結果データはメモリ311に書き込まれて、ホスト
プロセッサ301に渡される。
【0197】起動/停止レジスタ312は、プロセッサ
310の起動及び停止を指示する情報を格納し、ホスト
プロセッサ301及びプロセッサ310の両方からライ
ト/リード可能なレジスタである。ステータスレジスタ
313は、起動/停止レジスタ312と同期して設定さ
れるレジスタであり、クライアントプロセッサ302の
起動/停止時に於けるホストプロセッサ301或いはク
ライアントプロセッサ302のステータス情報を設定す
る。
【0198】例えば、アプリケーション1及びアプリケ
ーション2を、2つのクライアントプロセッサ302に
実行させるとする。ある時間単位或いは処理単位にアプ
リケーション1及び2の間の同期を取るために、ホスト
プロセッサ301は、夫々のクライアントプロセッサ3
02内の起動/停止レジスタ312及びステータスレジ
スタ313を参照して、同時に2つのクライアントプロ
セッサ302を起動する。このようにして、別のアプリ
ケーション間での同期を確立する。またこれらのレジス
タを用いることにより、ホストプロセッサ301とクラ
イアントプロセッサ302との間の同期をとることも出
来る。
【0199】図43(A)及び(B)は、ホストプロセ
ッサとクライアントプロセッサとの間の同期連携の一例
を示す図である。図43(A)は、同期連携のタイムチ
ャートを示し、図43(B)は、同期連携を実現する際
のホストプロセッサとクライアントプロセッサの動作の
詳細を示す。図43(A)及び図43(B)に示される
例に於ては、例えばシステム外部のネットワークからビ
デオデータVideoA、VideoB、及びVide
oCがストリームデータとして入力される。ホストプロ
セッサ301にはビデオ同期信号Vsyncが入力され
る。ホストプロセッサ301は、ビデオ同期信号Vsy
ncの状態をビデオフレーム単位で管理して、クライア
ントプロセッサ302に起動をかける。この際ホストプ
ロセッサ301は、クライアントプロセッサ302の起
動/停止レジスタ312及びステータスレジスタ313
を管理して、起動設定、停止設定(現在処理中のデータ
処理が完了したことを示す処理ステータス)、次の処理
の対象となるデータが入力されたか否かを示す入力ステ
ータス等に基づいて、クライアントプロセッサ302を
制御する。
【0200】図44(A)及び(B)は、クライアント
プロセッサ間の同期連携の一例を示す図である。図44
(A)は、同期連携のタイムチャートを示し、図44
(B)は、同期連携を実現する際のホストプロセッサと
クライアントプロセッサの動作の詳細を示す。図44
(A)及び図44(B)に示される例に於ては、例えば
システム外部のネットワークからビデオデータVide
oA、VideoB、及びVideoCがストリームデ
ータとして入力されると共に、オーディオデータAud
ioA乃至AudioIがストリームデータとして入力
される。例えば2つのクライアントプロセッサ302の
うちで、一方はビデオデータVideoA乃至Vide
oCの処理を実行し、もう一方はオーディオデータAu
dioA乃至AudioIの処理を実行する。ホストプ
ロセッサ301は、クライアントプロセッサ302の起
動/停止レジスタ312及びステータスレジスタ313
をビデオフレーム単位で管理して、起動設定、停止設定
(現在処理中のデータ処理が完了したことを示す処理ス
テータス)、次の処理の対象となるデータが入力された
か否かを示す入力ステータス等に基づいて、クライアン
トプロセッサ302を制御する。
【0201】以上、本発明は実施例に基づいて説明され
たが、本発明のクライアントプロセッサが行う信号処理
は、画像データ処理及び音声データ処理に限定されるも
のではなく、通信プロトコルの変換等の他の信号処理に
用いてもよい。本発明は上述の実施例に限定されるもの
ではなく、特許請求の範囲に記載される範囲内で様々な
変形及び変更が可能である。
【0202】
【発明の効果】請求項1の発明に於ては、バスを介在し
ないで通信可能な複数の情報処理ユニットを設けて、そ
れら情報処理ユニットに処理を実行させるので、バス競
合によりデータ処理速度が低下することなく高速な信号
処理を実現することが出来る。また画像処理プロセスや
音声処理プロセス等の複数のプロセスの各々に、別の情
報処理ユニットを割り当てることが出来るので、複数の
異なった信号を処理する必要があるマルチメディア信号
処理に適している。
【0203】請求項2の発明に於ては、任意の情報処理
ユニット間の通信は、介在する情報処理ユニット及び通
信リンクを介して行うことが出来る。請求項3の発明に
於ては、信号処理部、通信制御部、及び格納部を1つの
チップ上に集積回路化して、従来のメモリと同等な形で
パーソナルコンピュータに搭載することが出来る。従っ
てコストを従来のメモリデバイスに重複させることが可
能であると共に、メモリデバイス内に埋め込まれた情報
処理ユニットをソフトウェアで活用出来るという利点が
ある。従って、ハードウェアの追加・拡張にかかる費用
を削減すると共に、機能拡張性に優れたシステムを構築
することが出来る。
【0204】請求項4の発明に於ては、格納部のメモリ
を通常は外部バスからメモリとしてアクセス不可能な状
態にしておくことによって、ホストプロセッサのOSが
OS用メモリスペースとして獲得してしまうことを防ぐ
と共に、情報処理ユニット使用時には暗号(キー情報)
を解除することによって、ホストプロセッサと情報処理
ユニット間のデータ通信を可能にすることが出来る。
【0205】請求項5の発明に於ては、同時並列にデー
タ処理可能な手続に関しては、各情報処理ユニットに並
列に実行させることによって、高速なデータ処理を実現
することが出来る。請求項6の発明に於ては、ある手続
の結果を別の手続が必要とするが各手続を繰り返し実行
する必要がある場合、各手続を重ね合わせて各情報処理
ユニットにパイプライン的に実行させることによって、
高速なデータ処理を実現することが出来る。
【0206】請求項7の発明に於ては、バスを介在しな
いで通信可能な複数の情報処理ユニットを設けて、それ
ら情報処理ユニットに処理を実行させるので、バス競合
によりデータ処理速度が低下することなく高速な信号処
理を実現することが出来る。また画像処理プロセスや音
声処理プロセス等の複数のプロセスの各々に、別の情報
処理ユニットを割り当てることが出来るので、複数の異
なった信号を処理する必要があるマルチメディア信号処
理に適している。
【0207】請求項8の発明に於ては、任意の情報処理
ユニット間の通信は、介在する情報処理ユニット及び通
信リンクを介して行うことが出来る。請求項9の発明に
於ては、信号処理部、通信制御部、及び格納部を1つの
チップ上に集積回路化して、従来のメモリと同等な形で
信号処理装置内部に搭載することが出来る。従って、コ
ストを従来のメモリデバイスに重複させることが可能で
あると共に、メモリデバイス内に埋め込まれた情報処理
ユニットをソフトウェアで活用出来るという利点があ
る。従って、ハードウェアの追加・拡張にかかる費用を
削減すると共に、機能拡張性に優れた信号処理装置を構
築することが出来る。
【0208】請求項10の発明に於ては、格納部のメモ
リを通常はバスからメモリとしてアクセス不可能な状態
にしておくことによって、ホストプロセッサが別の目的
のメモリスペースとして獲得してしまうことを防ぐと共
に、情報処理ユニット使用時には暗号(キー情報)を解
除することによって、ホストプロセッサと情報処理ユニ
ット間のデータ通信を可能にすることが出来る。
【0209】請求項11の発明に於ては、同時並列にデ
ータ処理可能な手続に関しては、各情報処理ユニットに
並列に実行させることによって、高速なデータ処理を実
現することが出来る。請求項12の発明に於ては、ある
手続の結果を別の手続が必要とするが各手続を繰り返し
実行する必要がある場合、各手続を重ね合わせて各情報
処理ユニットにパイプライン的に実行させることによっ
て、高速なデータ処理を実現することが出来る。
【0210】請求項13の発明に於ては、ある命令をホ
ストプロセッサ(CPU)が読み込んで割り込みを起こ
した場合に、情報処理ユニットがこの命令を実行するこ
とによって仮想マシン機能を実現し、恰もホストプロセ
ッサがこの命令を実行しているかのようにプログラム処
理を進めることが出来る。請求項14の発明に於ては、
アプリケーションインターフェース層及びデバイスドラ
イバ層に配置された第1及び第2のリソース管理手段
が、複数の情報処理ユニットを管理してプロセス割り当
て及びデータ接続を行うので、ユーザプログラムやアプ
リケーションプログラムが存在する最上層のアプリケー
ション層までデータを上げる必要がなく、データ転送に
関して効率的な処理を行うことが出来る。
【0211】請求項15の発明に於ては、同時並列にデ
ータ処理可能な手続に関しては、各情報処理ユニットに
並列に実行させることによって、高速なデータ処理を実
現することが出来る。請求項16の発明に於ては、ある
手続の結果を別の手続が必要とするが各手続を繰り返し
実行する必要がある場合、各手続を重ね合わせて各情報
処理ユニットにパイプライン的に実行させることによっ
て、高速なデータ処理を実現することが出来る。
【0212】請求項17の発明に於ては、ある命令をホ
ストプロセッサ(CPU)が読み込んで割り込みを起こ
した場合に、情報処理ユニットがこの命令を実行するこ
とによって仮想マシン機能を実現し、恰もホストプロセ
ッサがこの命令を実行しているかのようにプログラム処
理を進めることが出来る。請求項18の発明に於ては、
データ転送量の最大値が最小になるような効率的なプロ
セス割り当てを行うことが出来る。
【0213】請求項19の発明に於ては、データ転送量
の最大値が最小になると共に、次に割り当てるプロセス
がなるべく他のデータ転送と重ならないように、効率的
なプロセス割り当てを行うことが出来る。請求項20の
発明に於ては、アプリケーションインターフェース層及
びデバイスドライバ層に配置されたリソース管理プログ
ラムが、複数の情報処理ユニットを管理してプロセス割
り当て及びデータ接続を行うので、ユーザプログラムや
アプリケーションプログラムが存在する最上層のアプリ
ケーション層までデータを上げる必要がなく、データ転
送に関して効率的な処理を行うことが出来る。
【0214】請求項21の発明に於ては、データ転送量
の最大値が最小になると共に、次に割り当てるプロセス
がなるべく他のデータ転送と重ならないように、効率的
なプロセス割り当てを行うことが出来る。上記請求項2
2乃至33並びに請求項37及び38の発明に於ては、
ホストプロセッサからメインメモリの記憶空間に所定の
形式のアクセスを行うことによって、記憶空間に対して
クライアントプロセッサを割り当てるので、専用ポート
や専用バスを必要とせずにメモリインターフェースのみ
を用いて、ホストプロセッサとクライアントプロセッサ
との接続/非接続を切り替えることが出来る。この所定
の形式のアクセスとしては、キー情報をデータに含めて
記憶空間に書き込むことで、書き込まれたキー情報が所
定のキーと一致するか否かを判断して、切り替えを行う
ことが可能である。この際、ホストプロセッサのメモリ
インターフェース部分に於てビット順序の並べ変えが行
われるシステムがあるが、このようなシステムに於て
は、ビット順序が変わらないサブワードを単位としてキ
ーを設定したり時系列情報でキーを表現すること等で、
ビット順序並べ変えに対処することが出来る。またビッ
トパターンを検査してキー照合の前にデータを排除する
ことで、高速なキー照合を行うことが可能になる。
【0215】上記請求項34及び39の発明に於ては、
クライアントプロセッサを割り当てる記憶領域がアプリ
ケーションによって使用されている場合には、該アプリ
ケーションを別の記憶領域に移した後にクライアントプ
ロセッサ領域の割り当てを行うので、クライアントプロ
セッサ接続前には、クライアントプロセッサ領域を予め
確保しておく必要がなく、通常の記憶空間として用いる
ことが出来る。
【0216】上記請求項35及び40の発明に於ては、
クライアントプロセッサに対する領域割り当てとクライ
アントプロセッサに対するアプリケーション割り当てと
を別々に制御するので、ある記憶領域に割り当てたまま
でクライアントプロセッサの処理アプリケーションを切
り替えたり、ある処理アプリケーションを割り当てたま
までクライアントプロセッサを別の記憶領域に割り当て
たりすることが可能になる。
【0217】上記請求項36及び41の発明に於ては、
ホストプロセッサとクライアントプロセッサとの間に於
て及び/又は複数のクライアントプロセッサ間に於て同
期連携をとるので、柔軟なデータ処理が可能となる。
【図面の簡単な説明】
【図1】本発明による信号処理アクセラレータの構成を
示す図である。
【図2】図1の信号処理アクセラレータのハードウェア
アーキテクチャに対応したソフトウェアアーキテクチャ
を示す図である。
【図3】リソース管理層のリソース管理プログラムによ
る信号処理アクセラレータのリソース割り当てを模式的
に示す図である。
【図4】(A)乃至(C)は、あるデータ処理に対する
各PE間の相互接続の例を示す図である。
【図5】(A)及び(B)は、2つの異なったプロセス
割り当ての様子を示す図である。
【図6】本発明による動的プロセス割り当てアルゴリズ
ムのメインルーチンを示すフローチャートである。
【図7】図6のステップS3に於けるPEの1個要求に
対する割り当て処理を示すフローチャートである。
【図8】図6のステップS4に於けるPEの複数個要求
に対する割り当てを示すフローチャートである。
【図9】図7のステップS14及び図8のステップS2
8に於ける次の割り当て効率計算処理を示すフローチャ
ートである。
【図10】(A)は、動的プロセス割り当てアルゴリズ
ムを用いた場合の一例を示す図であり、(B)は、左端
から利用可能なPEを割り当てる単純な割り当て方を用
いた場合の一例を示す図である。
【図11】(A)は、プロセス割り当てのシミュレーシ
ョン条件を示す図であり、(B)は、シミュレーション
結果を示す図である。
【図12】リソース管理プログラムが各PEを管理しデ
ータ処理を実行する際に、図1の信号処理アクセラレー
タのDRAMが統合されたメモリ空間を構成する様子を
概念的に示す図である。
【図13】ホストプロセッサと信号処理アクセラレータ
との間のアドレス変換の関係を概念的に示す図である。
【図14】図1の情報処理ユニットのDRAMコントロ
ーラの詳細な構成を示す図である。
【図15】情報処理ユニットの状態変化をしめす状態遷
移図である。
【図16】ペンティアム及び拡張命令セットMMXを例
として、本発明による仮想マシンを実現するソフトウェ
ア構造を示す図である。
【図17】図1の信号処理アクセラレータによってエミ
ュレーションを実行する例外処理のフローチャートであ
る。
【図18】クライアントプロセッサとメモリとがメモリ
インターフェースを介してホストプロセッサに接続され
る場合に、クライアントプロセッサとメモリとを切り替
える機構を示す図である。
【図19】メモリ空間上の特定の一つのアドレスが入力
された時に出力をアクティブにするアドレス判定手段の
構成を示す構成図である。
【図20】メモリ空間上の特定の範囲のアドレスが入力
された時に出力をアクティブにするアドレス判定手段の
構成を示す構成図である。
【図21】ビット順序の入れ替えを概念的に示す図であ
る。
【図22】(A)はデータワードとサブワードとの関係
を示す図であり、(B)はキーコードを示す図である。
【図23】キーコードを各サブワードとしたデータワー
ドを構成するフローチャートである。
【図24】キーコードを各サブワードとしたデータワー
ドを読み出して、データワードからキーコードを取り出
す処理のフローチャートである。
【図25】ビット順序入れ替えを考慮した時系列データ
によるキー照合を説明するための図である。
【図26】時間方向にキーコードの各ビットが並ぶデー
タをキーコードを基にして生成する処理のフローチャー
トである。
【図27】読み出したデータからキーコードを取り出す
処理のフローチャートである。
【図28】ビット順序入れ換えを考慮した0又は1の個
数によるキー照合を説明するための図である。
【図29】複数のデータワードが与えられた場合に各デ
ータワード内の1の個数を数える処理のフローチャート
である。
【図30】複数のデータワードが与えられた場合に、各
データワードが示す数に等しい数のビット”1”を含む
複数のデータワードを生成する処理のフローチャートで
ある。
【図31】キー照合によって切り替えを行う処理の変形
例を示すフローチャートである。
【図32】キー照合によって切り替えを行う処理の別の
変形例を示すフローチャートである。
【図33】パターンチェックに於てパリティを所定のパ
ターンとして用いる場合の処理を説明する図である。
【図34】供給されるデータをパリティチェックする方
法のフローチャートである。
【図35】パターンチェックに於てデータ内の特定のビ
ットを所定のパターンとして用いる場合の処理を説明す
る図である。
【図36】供給されるデータから特定のビットを取り出
してチェックする方法のフローチャートである。
【図37】供給されたデータワードが特定のパターンで
あるか否かに基づくパターンチェック処理を説明する図
である。
【図38】供給されるデータワードの全ビットが1であ
るか全ビットが0であるかを判断してチェックする方法
のフローチャートである。
【図39】ホストプロセッサのOS機能によってメモリ
領域を確保する例を示すフローチャートである。
【図40】領域割り当てとアプリケーション切り替え制
御を独立に行う方法を実現するシステムの構成図であ
る。
【図41】メモリ割り当て制御とアプリケーション切り
替え制御の例を示すフローチャートである。
【図42】クライアントプロセッサ間及びホストプロセ
ッサとクライアントプロセッサ間で同期連携をとる方法
を実現するシステムの構成図である。
【図43】(A)及び(B)は、ホストプロセッサとク
ライアントプロセッサとの間の同期連携の一例を示す図
である。
【図44】(A)及び(B)は、クライアントプロセッ
サ間の同期連携の一例を示す図である。
【符号の説明】
10 情報処理ユニット 11 信号処理プロセッサ 12 命令キャッシュ 13 データRAM 14 リンク制御 15 リンク制御 16 メインキャッシュ 17 リンクキャッシュ 18 DRAM 19 DRAMコントローラ 20 通信リンク 25 信号処理部 26 通信制御部 30 ホストメモリバス 31 ホストプロセッサ 40 PE 41 入力チャネル 42 出力チャネル 43 フリーリソーススタック 51 ホストプロセッサ側仮想アドレス空間 52 ホストプロセッサ側物理アドレス空間 53 信号処理アクセラレータ側物理アドレス空間 54 信号処理アクセラレータ側プロセッサアドレス空
間 55 VM機構 61 キーレジスタ 62 比較回路 63 ホストメモリ制御回路 64 制御レジスタ 101 ホストプロセッサ 102 クライアントプロセッサ 103 メモリ 104 切り替え手段 105 アドレス判定手段 106 キー判定手段 107 切り替えフラグ 108 AND論理 109 スイッチ 111、111A、111B 格納手段 112、112A、112B 比較器 201 ホストプロセッサ 202 クライアントプロセッサ 203 メインメモリ 204、205 スイッチ 206 アドレスバス 207 データバス 210 プロセッサ 211 メモリ 212 メモリ割り当て回路 213 アドレス比較回路 214 プロセッサRSTレジスタ 215 メモリ割り当てRSTレジスタ 301 ホストプロセッサ 302 クライアントプロセッサ 310 プロセッサ 311 メモリ 312 起動/停止レジスタ 313 ステータスレジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 熊本 乃親 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 野村 祐司 福岡県福岡市博多区博多駅前三丁目22番8 号 富士通九州ディジタル・テクノロジ株 式会社内

Claims (41)

    【特許請求の範囲】
  1. 【請求項1】複数の情報処理ユニットと、 該複数の情報処理ユニット間を接続する通信リンクを含
    み、該複数の情報処理ユニットの各々が、 データを処理する信号処理部と、 該通信リンクを介して別の情報処理ユニットと通信する
    通信制御部と、 データ及び該信号処理部が実行するプログラムを格納す
    る格納部を含み、該格納部を介して外部バスとのデータ
    入出力を行うことを特徴とする信号処理装置。
  2. 【請求項2】前記複数の情報処理ユニットは、前記通信
    リンクを介して直列に配置されていることを特徴とする
    請求項1記載の信号処理装置。
  3. 【請求項3】前記格納部は、 前記データ及び前記プログラムを格納するメモリと、 前記外部バスとのデータ入出力を行う際に該メモリを外
    部バスからメモリとしてアクセス可能にするメモリ制御
    部を含むことを特徴とする請求項2記載の信号処理装
    置。
  4. 【請求項4】前記メモリ制御部は、キー情報を格納する
    キーデータ格納部を含み、前記外部バスとのデータ入出
    力を行う際に該キー情報に一致するデータが入力された
    場合にのみ、該メモリを該外部バスからメモリとしてア
    クセス可能にすることを特徴とする請求項3記載の信号
    処理装置。
  5. 【請求項5】前記複数の情報処理ユニットは、並列にデ
    ータを処理することを特徴とする請求項2記載の信号処
    理装置。
  6. 【請求項6】前記複数の情報処理ユニットは、前記通信
    リンクを介してデータを順次受け渡すことによって、パ
    イプライン動作を行いながらデータを処理することを特
    徴とする請求項2記載の信号処理装置。
  7. 【請求項7】複数の情報処理ユニットと、 該複数の情報処理ユニット間を接続する通信リンクと該
    複数の情報処理ユニットの各々に接続された共通のバス
    を含み、該複数の情報処理ユニットの各々が、 データを処理する信号処理部と、 該通信リンクを介して別の情報処理ユニットと通信する
    通信制御部と、 データ及び該信号処理部が実行するプログラムを格納す
    る格納部を含み、該複数の情報処理ユニットの各々は該
    格納部を介して該バスとのデータ入出力を行うことを特
    徴とする信号処理装置。
  8. 【請求項8】前記複数の情報処理ユニットは、前記通信
    リンクを介して直列に配置されていることを特徴とする
    請求項7記載の信号処理装置。
  9. 【請求項9】前記格納部は、 前記データ及び前記プログラムを格納するメモリと、 前記バスとのデータ入出力を行う際に該メモリを該バス
    からメモリとしてアクセス可能にするメモリ制御部を含
    むことを特徴とする請求項8記載の信号処理装置。
  10. 【請求項10】前記メモリ制御部は、キー情報を格納す
    るキーデータ格納部を含み、前記バスとのデータ入出力
    を行う際に該キー情報に一致するデータが入力された場
    合にのみ、該メモリを該バスからメモリとしてアクセス
    可能にすることを特徴とする請求項9記載の信号処理装
    置。
  11. 【請求項11】前記複数の情報処理ユニットは、並列に
    データを処理することを特徴とする請求項8記載の信号
    処理装置。
  12. 【請求項12】前記複数の情報処理ユニットは、前記通
    信リンクを介してデータを順次受け渡すことによって、
    パイプライン動作を行いながらデータを処理することを
    特徴とする請求項8記載の信号処理装置。
  13. 【請求項13】前記複数の情報処理ユニットを該バスを
    介して制御すると共にそれ自身がデータ処理を行うCP
    U(Central Processing Unit )を更に含み、該CPU
    が読み込んだ命令が命令例外を発生した際に、該複数の
    情報処理ユニットが該命令を代わりに実行することを特
    徴とする請求項8記載の信号処理装置。
  14. 【請求項14】専用通信リンクを介して直列に接続され
    各々がメモリとしてバスからアクセス可能である複数の
    情報処理ユニットを内蔵したコンピュータに於て、該コ
    ンピュータを制御することにより該複数の情報処理ユニ
    ットにデータ処理を実行させるプログラムを記録した機
    械読み取り可能な記憶媒体であって、該プログラムは、 アプリケーションプログラムからの該データ処理の要求
    に基づき、該複数の情報処理ユニットへのプロセス割り
    当て及び該複数の情報処理ユニット間のデータ接続を管
    理する第1のリソース管理手段と、 該プロセス割り当て及び該データ接続にしたがって該複
    数の情報処理ユニットを制御して該データ処理を実行さ
    せる第2のリソース管理手段を含み、該第1のリソース
    管理手段は該コンピュータのアプリケーションインター
    フェース層に配置され、該第2のリソース管理手段は該
    コンピュータのデバイスドライバ層に配置されることを
    特徴とする記憶媒体。
  15. 【請求項15】前記第1のリソース管理手段は、前記複
    数の情報処理ユニットが並列に処理を実行するように、
    該複数の情報処理ユニットを並列にデータ接続すること
    を特徴とする請求項14記載の記憶媒体。
  16. 【請求項16】前記第1のリソース管理手段は、前記複
    数の情報処理ユニットが順次データを受け渡しながらパ
    イプライン処理を実行するように、該複数の情報処理ユ
    ニットを直列にデータ接続することを特徴とする請求項
    14記載の記憶媒体。
  17. 【請求項17】前記アプリケーションプログラムを実行
    する前記コンピュータのCPUが割り込みを発生した場
    合、該割り込みを検出して、該割り込みの原因となった
    該アプリケーションプログラムの命令を前記第1のリソ
    ース管理プログラムに渡す仮想マシン手段を更に含み、
    該第1のリソース管理手段及び前記第2のリソース管理
    手段は、該命令を前記複数の情報処理ユニットに実行さ
    せることを特徴とする請求項14記載の記憶媒体。
  18. 【請求項18】前記第1のリソース管理手段は、前記デ
    ータ処理に関するプロセス割り当ての結果、前記複数の
    情報処理ユニット間のデータ転送量の最大値が最小にな
    るように該プロセス割り当てを行うことを特徴とする請
    求項14記載の記憶媒体。
  19. 【請求項19】前記第1のリソース管理手段は、 前記データ処理に関するプロセス割り当ての結果、前記
    複数の情報処理ユニット間のデータ転送量の最大値が最
    小になるように、該プロセス割り当ての組み合わせを求
    める第1のプロセス割り当て手段と、 該データ処理に関するプロセス割り当て後に残る次のデ
    ータ処理に利用可能な該複数の情報処理ユニットが、可
    能なかぎり少ない数の前記専用通信リンクを介在する範
    囲内に存在するように、該組み合わせの中から一つの組
    み合わせを選択する第2のプロセス割り当て手段を含む
    ことを特徴とする請求項14記載の記憶媒体。
  20. 【請求項20】アプリケーションプログラムが存在する
    アプリケーション層と、該アプリケーションプログラム
    が実行される際に動的にローディングされる動的ローデ
    ィングライブラリが存在するアプリケーションインター
    フェース層と、該動的ローディングライブラリに対応す
    るハードウェアデバイスを制御するデバイスドライバが
    存在するデバイスドライバ層を含むソフトウェアアーキ
    テクチャであって、ハードウェアデバイスである複数の
    情報処理要素を制御し、該情報処理要素へのプロセス割
    り当て及び該情報処理要素間のデータ接続を管理するリ
    ソース管理プログラムを、該アプリケーションインター
    フェース層及び該デバイスドライバ層に配置したことを
    特徴とするソフトウェアアーキテクチャ。
  21. 【請求項21】通信リンクを介して直列に接続され互い
    に通信可能な複数の情報処理ユニットにデータ処理のた
    めのプロセスを割り当てる方法であって、 前記データ処理に関するプロセス割り当ての結果、前記
    複数の情報処理ユニット間のデータ転送量の最大値が最
    小になるように、該プロセス割り当ての組み合わせを求
    め、 該データ処理に関するプロセス割り当て後に残る次のデ
    ータ処理に利用可能な該複数の情報処理ユニットが、可
    能なかぎり少ない数の該通信リンクを介在する範囲内に
    存在するように、該組み合わせの中から一つの組み合わ
    せを選択する各段階を含むことを特徴とする方法。
  22. 【請求項22】メインメモリを有するホストプロセッサ
    にクライアントプロセッサを接続して制御する方法であ
    って、 a)該ホストプロセッサから該メインメモリの記憶空間
    にアクセスし、 b)該アクセスに応じて該記憶空間の一部領域を該ホス
    トプロセッサと該クライアントプロセッサとの通信用に
    割り当てる各段階を含むことを特徴とする方法。
  23. 【請求項23】前記アクセスに応じて前記一部領域を開
    放して前記ホストプロセッサから前記クライアントプロ
    セッサを切り離すことを特徴とする請求項22記載の方
    法。
  24. 【請求項24】前記アクセスは所定の一つのアドレスに
    対する少なくとも複数回のアクセスであることを特徴と
    する請求項22記載の方法。
  25. 【請求項25】前記アクセスは所定範囲内のアドレスに
    対する少なくとも複数回のアクセスであることを特徴と
    する請求項22記載の方法。
  26. 【請求項26】前記段階a)は前記記憶空間にキーを含
    むデータを書き込み、前記段階b)は該キーと所定のキ
    ーとが一致すると前記一部領域を前記通信用に割り当て
    ることを特徴とする請求項22記載の方法。
  27. 【請求項27】前記段階a)は、各サブワードを前記キ
    ーとして複数同一のサブワードを含んだデータワードを
    前記記憶空間に書き込むことを特徴とする請求項26記
    載の方法。
  28. 【請求項28】前記段階a)は、全ビット1であるデー
    タワード及び全ビット0であるデータワードを繰り返し
    前記記憶空間に書き込み1及び0の時系列により前記キ
    ーを表現することを特徴とする請求項26記載の方法。
  29. 【請求項29】前記段階a)は、データワードに含まれ
    る1或いは0のビットの個数を前記キーとして該データ
    ワードを前記記憶空間に書き込むことを特徴とする請求
    項26記載の方法。
  30. 【請求項30】前記段階b)は、前記アクセスの回数を
    計数してその計数値が所定数である場合に前記一部領域
    を前記通信用に割り当てる段階を更に含むことを特徴と
    する請求項26記載の方法。
  31. 【請求項31】前記段階b)は、前記データをパリティ
    ーチェックして所定のパリティー条件を満たさない場合
    にはキー照合を行うことなくキー不一致と判断する段階
    を更に含むことを特徴とする請求項26記載の方法。
  32. 【請求項32】前記段階b)は、前記データの所定の複
    数ビットをチェックして該複数ビットが所定のビットパ
    ターンでない場合にはキー照合を行うことなくキー不一
    致と判断する段階を更に含むことを特徴とする請求項2
    6記載の方法。
  33. 【請求項33】前記段階b)は、前記データワードの全
    ビットが同一の値でない場合にはキー照合を行うことな
    くキー不一致と判断する段階を更に含むことを特徴とす
    る請求項28記載の方法。
  34. 【請求項34】前記段階b)は、前記一部領域がアプリ
    ケーションに割り当てられている場合には該アプリケー
    ションを前記記憶空間の別の領域に移して前記クライア
    ントプロセッサを該一部領域に割り当てる段階を更に含
    むことを特徴とする請求項22記載の方法。
  35. 【請求項35】前記クライアントプロセッサに対する前
    記記憶空間の前記一部領域の割り当てと該クライアント
    プロセッサに対するアプリケーションの割り当てとを独
    立して制御する段階を更に含むことを特徴とする請求項
    22記載の方法。
  36. 【請求項36】前記クライアントプロセッサと前記ホス
    トプロセッサとの間で同期をとる段階と、複数のクライ
    アントプロセッサ間で同期をとる段階とを更に含むこと
    を特徴とする請求項22記載の方法。
  37. 【請求項37】メインメモリを有するホストプロセッサ
    にクライアントプロセッサを接続して制御するプログラ
    ムを記録した機械読み取り可能な記憶媒体であって、該
    プログラムは、 該ホストプロセッサに該メインメモリの記憶空間をアク
    セスさせる第1のプログラムコード手段と、 該アクセスに応じて該記憶空間の一部領域を該ホストプ
    ロセッサと該クライアントプロセッサとの通信用に割り
    当てる第2のプログラムコード手段を含むことを特徴と
    する記憶媒体。
  38. 【請求項38】前記プログラムは、前記アクセスに応じ
    て前記一部領域を開放して前記ホストプロセッサから前
    記クライアントプロセッサを切り離すプログラムコード
    手段を更に含むことを特徴とする請求項37記載の記憶
    媒体。
  39. 【請求項39】前記第2のプログラムコード手段は、前
    記一部領域がアプリケーションに割り当てられている場
    合には該アプリケーションを前記記憶空間の別の領域に
    移して前記クライアントプロセッサを該一部領域に割り
    当てるプログラムコード手段を更に含むことを特徴とす
    る請求項37記載の記憶媒体。
  40. 【請求項40】前記プログラムは、前記クライアントプ
    ロセッサに対する前記記憶空間の前記一部領域の割り当
    てと該クライアントプロセッサに対するアプリケーショ
    ンの割り当てとを独立して制御するプログラムコード手
    段を更に含むことを特徴とする請求項37記載の記憶媒
    体。
  41. 【請求項41】前記プログラムは、前記クライアントプ
    ロセッサと前記ホストプロセッサとの間で同期をとるプ
    ログラムコード手段と、複数のクライアントプロセッサ
    間で同期をとるプログラムコード手段とを更に含むこと
    を特徴とする請求項37記載の記憶媒体。
JP9221617A 1996-12-17 1997-08-18 信号処理装置及びソフトウェア Pending JPH10232788A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP9221617A JPH10232788A (ja) 1996-12-17 1997-08-18 信号処理装置及びソフトウェア
US08/955,089 US6470380B1 (en) 1996-12-17 1997-10-21 Signal processing device accessible as memory
KR1019970055798A KR19980063551A (ko) 1996-12-17 1997-10-29 신호 처리 장치 및 소프트웨어
US10/234,482 US20030005073A1 (en) 1996-12-17 2002-09-05 Signal processing device accessible as memory

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP33720596 1996-12-17
JP8-337205 1996-12-17
JP9221617A JPH10232788A (ja) 1996-12-17 1997-08-18 信号処理装置及びソフトウェア

Publications (1)

Publication Number Publication Date
JPH10232788A true JPH10232788A (ja) 1998-09-02

Family

ID=26524410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9221617A Pending JPH10232788A (ja) 1996-12-17 1997-08-18 信号処理装置及びソフトウェア

Country Status (3)

Country Link
US (2) US6470380B1 (ja)
JP (1) JPH10232788A (ja)
KR (1) KR19980063551A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003511777A (ja) * 1999-10-14 2003-03-25 ブルーアーク・ユーケー・リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
WO2013128531A1 (ja) * 2012-02-28 2013-09-06 日本電気株式会社 計算機システム、その処理方法、及びコンピュータ可読媒体
US8635633B2 (en) 2009-12-14 2014-01-21 Ricoh Company, Ltd. Image forming apparatus, function adding method, and computer-readable recording medium
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
JP2015535999A (ja) * 2012-10-02 2015-12-17 オラクル・インターナショナル・コーポレイション テーブルスキャンを加速するためのハードウェア
US9418044B2 (en) 2002-12-16 2016-08-16 Sony Interactive Entertainment Inc. Configuring selected component-processors operating environment and input/output connections based on demand
JP2016224700A (ja) * 2015-05-29 2016-12-28 キヤノン株式会社 情報処理装置及びデータ転送方法
JP2021040232A (ja) * 2019-09-03 2021-03-11 ヤマハ株式会社 ライブラリプログラム、リンクプログラム、及び、音処理装置
JP2022134913A (ja) * 2021-03-04 2022-09-15 Jbアドバンスト・テクノロジー株式会社 サービス連携システム

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296381A (ja) * 1998-04-08 1999-10-29 Matsushita Electric Ind Co Ltd 仮想マシン及びコンパイラ
US6775830B1 (en) * 1999-09-24 2004-08-10 Hitachi, Ltd. Computer system and a program install method thereof
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
US7171546B2 (en) * 2002-05-23 2007-01-30 Adams Phillip M CPU life-extension apparatus and method
JP2006512691A (ja) * 2002-10-22 2006-04-13 アイシス テクノロジーズ 改善された熱放散特性を有する非周辺処理制御モジュール
MXPA05004336A (es) * 2002-10-22 2005-11-23 A Sullivan Jason Sistemas y metodos para proporcionar una unidad de procesamiento dinamicamente modular.
CA2504222C (en) * 2002-10-22 2012-05-22 Jason A. Sullivan Robust customizable computer processing system
US20040252547A1 (en) * 2003-06-06 2004-12-16 Chengpu Wang Concurrent Processing Memory
US7617012B2 (en) * 2004-03-04 2009-11-10 Yamaha Corporation Audio signal processing system
US20060005190A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for implementing an operating system in a virtual machine environment
EP1612977A3 (en) * 2004-07-01 2013-08-21 Yamaha Corporation Control device for controlling audio signal processing device
WO2006051902A1 (ja) * 2004-11-11 2006-05-18 Japan Science And Technology Agency 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
US8295306B2 (en) * 2007-08-28 2012-10-23 Cisco Technologies, Inc. Layer-4 transparent secure transport protocol for end-to-end application protection
US11128601B2 (en) * 2007-08-28 2021-09-21 Spencer Health Solutions, Llc Methods, systems, and computer program products for compiling information for use in a command script for a product dispensing system
US8156313B2 (en) * 2007-09-22 2012-04-10 Navosha Corporation Chained operation of functional units in integrated circuit by writing DONE/complete value and by reading as GO/start value from same memory location
WO2009052494A2 (en) * 2007-10-18 2009-04-23 Interdigital Technology Corporation Wireless transmit/receive unit
US8667556B2 (en) * 2008-05-19 2014-03-04 Cisco Technology, Inc. Method and apparatus for building and managing policies
US8677453B2 (en) * 2008-05-19 2014-03-18 Cisco Technology, Inc. Highly parallel evaluation of XACML policies
US20090288104A1 (en) * 2008-05-19 2009-11-19 Rohati Systems, Inc. Extensibility framework of a network element
US8094560B2 (en) * 2008-05-19 2012-01-10 Cisco Technology, Inc. Multi-stage multi-core processing of network packets
CN102077170A (zh) * 2008-06-27 2011-05-25 Nxp股份有限公司 元语言程序代码执行的中断方法
US20100070471A1 (en) * 2008-09-17 2010-03-18 Rohati Systems, Inc. Transactional application events
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20110106327A1 (en) * 2009-11-05 2011-05-05 General Electric Company Energy optimization method
CN101763332B (zh) * 2010-02-24 2012-07-18 浙江中控技术股份有限公司 一种并行通信总线接口
US8402228B2 (en) * 2010-06-30 2013-03-19 International Business Machines Corporation Page buffering in a virtualized, memory sharing configuration
US8589509B2 (en) 2011-01-05 2013-11-19 Cloudium Systems Limited Controlling and optimizing system latency
US8886699B2 (en) * 2011-01-21 2014-11-11 Cloudium Systems Limited Offloading the processing of signals
AU2013204989A1 (en) * 2013-04-13 2014-10-30 Digital (Id)Entity Limited A system, method, computer program and data signal for the provision of a profile of identification
US9413854B1 (en) * 2013-07-15 2016-08-09 Amazon Technologies, Inc. Network-accessible signal processing service
US9542248B2 (en) * 2015-03-24 2017-01-10 International Business Machines Corporation Dispatching function calls across accelerator devices

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5832427B2 (ja) * 1980-02-14 1983-07-13 株式会社日立製作所 多重情報処理システム
JPS60107155A (ja) 1983-11-16 1985-06-12 Hitachi Ltd 記憶ボリユ−ムのデ−タ保護方式
JPS638601A (ja) 1986-06-27 1988-01-14 Matsushita Electric Ind Co Ltd 反射防止膜付光フアイバ
JP2539385B2 (ja) * 1986-08-08 1996-10-02 株式会社日立製作所 情報処理装置
JPS63255759A (ja) * 1987-04-14 1988-10-24 Mitsubishi Electric Corp 制御システム
JP2570872B2 (ja) * 1989-12-04 1997-01-16 三菱電機株式会社 ワンチップマイクロコンピュータ
EP0446721B1 (en) * 1990-03-16 2000-12-20 Texas Instruments Incorporated Distributed processing memory
DE69131763T2 (de) * 1990-08-31 2000-03-09 Texas Instruments Inc. Verfahren zur Kommunikation zwischen Prozessoren eines Mehrprozessorsystems
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
FR2680026B1 (fr) * 1991-07-30 1996-12-20 Commissariat Energie Atomique Architecture de systeme en tableau de processeurs a structure parallele.
EP0562251A2 (en) * 1992-03-24 1993-09-29 Universities Research Association, Inc. Parallel data transfer network controlled by a dynamically reconfigurable serial network
US6000027A (en) * 1992-08-25 1999-12-07 Texas Instruments Incorporated Method and apparatus for improved graphics/image processing using a processor and a memory
JPH06215160A (ja) * 1992-08-25 1994-08-05 Texas Instr Inc <Ti> データ処理方法および装置
US5677864A (en) * 1993-03-23 1997-10-14 Chung; David Siu Fu Intelligent memory architecture
US5528549A (en) * 1993-05-28 1996-06-18 Texas Instruments Incorporated Apparatus, systems and methods for distributed signal processing
WO1995001604A1 (de) * 1993-06-30 1995-01-12 Anton Gunzinger Intelligentes kommunikations-system
CA2145106C (en) * 1994-04-22 1999-08-24 Abhaya Asthana Intelligent memory-based input/output system
US5611075A (en) * 1994-10-04 1997-03-11 Analog Devices, Inc. Bus architecture for digital signal processor allowing time multiplexed access to memory banks
JP3560662B2 (ja) * 1994-12-06 2004-09-02 富士通株式会社 並列プロセッサ装置
GB2299422B (en) * 1995-03-30 2000-01-12 Sony Uk Ltd Object code allocation in multiple processor systems
US5892934A (en) * 1996-04-02 1999-04-06 Advanced Micro Devices, Inc. Microprocessor configured to detect a branch to a DSP routine and to direct a DSP to execute said routine
US5778244A (en) * 1996-10-07 1998-07-07 Timeplex, Inc. Digital signal processing unit using digital signal processor array with recirculation
US5987568A (en) * 1997-01-10 1999-11-16 3Com Corporation Apparatus and method for operably connecting a processor cache and a cache controller to a digital signal processor
US6185704B1 (en) * 1997-04-11 2001-02-06 Texas Instruments Incorporated System signaling schemes for processor and memory module
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003511777A (ja) * 1999-10-14 2003-03-25 ブルーアーク・ユーケー・リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US9418044B2 (en) 2002-12-16 2016-08-16 Sony Interactive Entertainment Inc. Configuring selected component-processors operating environment and input/output connections based on demand
JP2009116872A (ja) * 2007-11-08 2009-05-28 Internatl Business Mach Corp <Ibm> ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置
US8898396B2 (en) 2007-11-12 2014-11-25 International Business Machines Corporation Software pipelining on a network on chip
JP2009129447A (ja) * 2007-11-27 2009-06-11 Internatl Business Mach Corp <Ibm> デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US8843706B2 (en) 2008-05-01 2014-09-23 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8726295B2 (en) 2008-06-09 2014-05-13 International Business Machines Corporation Network on chip with an I/O accelerator
JP2012515388A (ja) * 2009-01-15 2012-07-05 アルタイル セミコンダクター リミテッド 大命令幅プロセッサにおける処理効率の向上
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
US8966483B2 (en) 2009-11-13 2015-02-24 Bull Sas Method and device for optimizing execution of software applications in a multiprocessor architecture comprising several input/output controllers and secondary computing units
US8635633B2 (en) 2009-12-14 2014-01-21 Ricoh Company, Ltd. Image forming apparatus, function adding method, and computer-readable recording medium
JPWO2013128531A1 (ja) * 2012-02-28 2015-07-30 日本電気株式会社 計算機システム、その処理方法、及びプログラム
WO2013128531A1 (ja) * 2012-02-28 2013-09-06 日本電気株式会社 計算機システム、その処理方法、及びコンピュータ可読媒体
JP2015535999A (ja) * 2012-10-02 2015-12-17 オラクル・インターナショナル・コーポレイション テーブルスキャンを加速するためのハードウェア
JP2016224700A (ja) * 2015-05-29 2016-12-28 キヤノン株式会社 情報処理装置及びデータ転送方法
JP2021040232A (ja) * 2019-09-03 2021-03-11 ヤマハ株式会社 ライブラリプログラム、リンクプログラム、及び、音処理装置
JP2022134913A (ja) * 2021-03-04 2022-09-15 Jbアドバンスト・テクノロジー株式会社 サービス連携システム

Also Published As

Publication number Publication date
US6470380B1 (en) 2002-10-22
US20030005073A1 (en) 2003-01-02
KR19980063551A (ko) 1998-10-07

Similar Documents

Publication Publication Date Title
JPH10232788A (ja) 信号処理装置及びソフトウェア
US8943584B2 (en) Centralized device virtualization layer for heterogeneous processing units
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
US9606808B2 (en) Method and system for resolving thread divergences
JPH06348642A (ja) マルチプル・バス・ネットワークの初期化方法及びその装置
US20030061457A1 (en) Managing a codec engine for memory compression / decompression operations using a data movement engine
US20210019185A1 (en) Compute task state encapsulation
US9626216B2 (en) Graphics processing unit sharing between many applications
KR20130063003A (ko) 컨텍스트 스위칭
US9798543B2 (en) Fast mapping table register file allocation algorithm for SIMT processors
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
JP2003296191A (ja) 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路
US20220229691A1 (en) Persistent Multi-Word Compare-and-Swap
US20100161914A1 (en) Autonomous memory subsystems in computing platforms
US20200264879A1 (en) Enhanced scalar vector dual pipeline architecture with cross execution
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
KR100395311B1 (ko) 프로세스 제어 방법
US20200264781A1 (en) Location aware memory with variable latency for accelerating serialized algorithm
JP2004152291A (ja) キャッシュラインにアクセスするための方法、システム、コンピュータ使用可能媒体、およびキャッシュラインセレクタ
US20200264891A1 (en) Constant scalar register architecture for acceleration of delay sensitive algorithm
US8279231B1 (en) Bandwidth impedance matching and starvation avoidance by read completion buffer allocation
JPH01145770A (ja) ベクトル処理装置
JP3579149B2 (ja) コンピュータシステム
KR20080112165A (ko) 기입 동작들을 브로드캐스트하기 위한 시스템, 방법 및 컴퓨터 판독가능 기록 매체
JP2502406B2 (ja) 記憶制御方式およびデ―タ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050830