(57)【特許請求の範囲】
【請求項１】
パラレルアクセス・ポートとシリアルアクセス・ポートを有してデータを格納するためのビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）を含むメモリ装置と、
第１の入力−出力ポートと第２の入力−出力ポートを有するデジタル信号プロセッサ（ＤＳＰ）を含むデータ処理装置と、
前記ＤＳＰの第２の入力−出力ポートを前記ＶＲＡＭのパラレルアクセス・ポートとシリアルアクセス・ポートに接続するデータバスと、を具備し、
前記ＶＲＡＭは、メモリマトリクスと、タイミング制御器と、前記メモリマトリクスと前記シリアルアクセス・ポートに接続されたシリアルアクセス・メモリ（ＳＡＭ）と、を有し
前記プロセッサは、前記ＤＳＰの第２の入力−出力ポートと前記データバスと前記ＶＲＡＭのパラレルアクセス・ポートとを介して、前記ＤＳＰの第１の入力−出力ポートに供給されたデータを前記ＶＲＡＭに転送し、前記メモリマトリクス内に格納された一群のデータをアクセスする際には、当該一群のデータの最初のスタートアドレスのみを前記第２の入力−出力ポートに供給することにより、前記ＶＲＡＭのシリアルアクセス・ポートと前記データバスを介して前記ＶＲＡＭ内に格納されている当該一群のデータをシリアルシーケンス・データとして読出す、
ように構成されたことを特徴とするデータアクセスシステム。
【請求項２】
前記プロセッサは、前記ＶＲＡＭ間との前記データの転送を制御するためのメモリアクセス制御手段を有し、
該メモリアクセス制御手段は、前記データが格納されている前記ＶＲＡＭ内の行アドレス及び列アドレスを特定するための行アドレス・レジスタおよび列アドレス・レジスタを具備することを特徴とする請求項１に記載のデータアクセスシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は一般的にコンピューターメモリアクセスシステム、特に高速シーケンスデータアクセスを与えるシステムに関し、ニューラル・ネットワーク計算等に必要な乗算／累積演算のようなシーケンス計算に有用なものである。
【０００２】
【従来の技術】
ニューラル・ネットワーク計算においては非常に多数の乗算／累積演算（ｍｕｌｔｉｐｌｙ／ａｃｃｕｍｕｌａｔｅ  ｏｐｅｒａｔｉｏｎｓ）が行われる。代表的な例ではこれらの計算を行うのにＤＳＰ（デジタル信号プロセッサ）が使用される。なぜならばＤＳＰは単一のメモリアクセスサイクル（一般的に７５−１２５ナノ秒）内に多重かつ蓄積型の演算を完了することができるからである。しかしながら、廉価で高性能のニューラル・ネットワーク演算を与えるにはＤＳＰにシーケンスアクセス可能な非常に大きな静的重み表（ｔａｂｌｅ  ｏｆ  ｓｔａｔｉｃ  ｗｅｉｇｈｔｓ。これらの重みはデータ値である）が利用できなければならない。もしもシーケンス的にアクセスできるこの表から得られるデータが当該アクセスサイクル時間内（すなわち７５−１２５ナノ秒以内）に得られないと、ＤＳＰはそのデータを待つことを余儀なくされる。その場合、ＤＳＰの最大可能速度は利用できないことになる。
【０００３】
ＳＲＡＭ（高速静的ランダムアクセスメモリ）は十分高速に（すなわち７５−１２５ナノ秒以内に）ＤＳＰにデータを与えることができる。しかしながら、ＳＲＡＭは高価につき、また高い電力を消費するという欠点を伴う。
【０００４】
【発明が解決しようとする課題】
それゆえ、需要が高く、有用であるのは、ニューラル・ネットワーク等の分野において必要とされるような高速メモリアクセスと高速乗算／累積演算の双方を与えることのできる一層廉価なシステムである。
【０００５】
【課題を解決するための手段】
上記課題解決の手段としてここに開示するのは、ニューラル・ネットワーク重みデータのような格納データに対して高速のシーケンスアクセスを与えるＤＳＰに使用するシリアルポート付きＶＲＡＭ（ビデオダイナミックＲＡＭ）である。
【０００６】
このため、本発明は、パラレルアクセス・ポートとシリアルアクセス・ポートを有してデータを格納するためのビデオ・ランダム・アクセス・メモリ（ＶＲＡＭ）を含むメモリ装置と、第１の入力−出力ポートと第２の入力−出力ポートを有するプロセッサを含むデータ処理装置と、前記プロセッサの第２の入力−出力ポートを前記ＶＲＡＭのシリアルアクセス・ポートに接続するデータバスと、を具備する。
【０００７】
ここで、前記プロセッサは、前記第２の入力−出力ポートと前記データバスと前記ＶＲＡＭのパラレルアクセス・ポートとを介して、前記第１の入力−出力ポートに供給されたデータを前記ＶＲＡＭに転送し、前記ＶＲＡＭは前記供給されたデータを格するように構成され、前記プロセッサは、前記ＶＲＡＭ内に格納された一群のデータをアクセスする際に、当該一群のデータの最初のスタートアドレスを前記第２の入力−出力ポートに供給することにより、前記ＶＲＡＭのシリアルアクセス・ポートと前記データバスを介して前記ＶＲＡＭ内に格納されている当該一群のデータをシリアルシーケンス・データとして読み出すように構成される。
【０００８】
そして、前記プロセッサは、前記ＶＲＡＭ間との前記データの転送を制御するためのメモリアクセス制御手段を有し、該メモリアクセス制御手段は、前記データが格納されている前記ＶＲＡＭ内の行アドレス及び列アドレスを特定するための行アドレス・レジスタ及び列アドレス・レジスタを具備するのである。
【０００９】
【実施例】
図１を参照すると、本発明の実施例であるシステム１１が示されている。本システムはプロセッサ１３、データ／アドレス／制御バス１５、およびメモリ１７を含む。
【００１０】
プロセッサ１３は、ホストコンピューター（図示してなし）等の外部源からデータ（入力変数又は重み値等）を受信し、また情報を該ホストコンピューターに出力するための入力／出力ポート１９を有する。またプロセッサ１３はメモリ１７にアクセス（読み取りおよび書き込み）を行うための第二入力／出力ポート２１を有する。このメモリは、プロセッサ１３との間でデータを転送／受信するための並列ポート２３を有する。この並列ポート２３を介してメモリ内に格納されているデータにアクセスするため、各格納されたデータ値（エレメント）のアドレスが供給される。また該メモリ１７はプロセッサ１３によってランダムにアクセスされる。このメモリ１７はまたプロセッサ１３との間でデータを転送／受信するためのシリアルポート２５を有する。このメモリに格納されるデータは一般的にマトリックス形式に配置される。マトリックスのロケーションは当該ロケーションの個々の行アドレスおよび列アドレスを特定することによりアクセスできる。
【００１１】
図２に示すように、メモリ１７は内部的シフトレジスタ４１付きＶＲＡＭメモリチップ３７とＶＲＡＭタイミング制御器３９とを含む。
【００１２】
データはシリアルポート２５を介してシフトレジスタとの間で転送／受信される。この内部シフトレジスタ（図４に詳細を示す）はＶＲＡＭメモリマトリックスの任意行の値で初期化（ｉｎｉｔｉａｌｉｚａｔｉｏｎ）（すなわち負荷（ｌｏａｄ）することができ、またその値をＶＲＡＭメモリマトリックスの任意行に転送（負荷解除）することができる。シリアルポート２５の利点はＶＲＡＭ内に格納されているデータへの高速シーケンスアクセスを提供できることである。高速シーケンスアクセスは個々のデータアドレスを特定することなしに行うことができる。
【００１３】
図２に示すようにプロセッサ１３は専用のマイクロプロセッサ３３（例えばアナログデバイスコーポレーション社から発売されているモデルＡＤＳＰ−２１０１プロセッサ）、および通常の並列アクセスに加えてメモリ１７への高速シリアルアクセスを与えることのできるメモリアクセス制御器３５を含む。上記のように、メモリ１７はＶＲＡＭチップ３７およびＶＲＡＭタイミング制御器３９を含む。ＶＲＡＭメモリチップ３７はテキサスインスツルメントコーポレーション社から発売されているモデルＴＩ４４ｃ２５１ＶＲＡＭ又はマイクロンテクノロジー社から発売されているモデルＭＴ４２Ｃ４０６４ＶＲＡＭでよく、制御器３９は例えばシグネチックスコーポレーション社から発売されているモデル７４Ｆ１７６４でよい。
【００１４】
図２および図３に示すように、メモリアクセス制御器３５は、ＶＲＡＭ３７に格納されている個別のデータ値（例えばデータ値アレー内のデータ値の行アドレスおよび列アドレス）を特定するための行アドレスレジスタ４３および列アドレスレジスタ４５を含む。またメモリアクセス制御器３５はアクセスカウンタ４７および転送カウンタ４９を含む。アクセスカウンタ４７および転送カウンタ４９は、シリアルポート２５経由でプロセッサ１３がアクセスしたＶＲＡＭロケーションの現在アドレスを示すのに使用される。このアドレスカウンタは当該アドレスの最下位ビット（例えば９ビット）を収容し、転送カウンタ４９は当該アドレスの最上位ビット（例えば先頭の９ビット）を収容する。メモリアクセス制御器３５はさらにアドレス−復号兼制御回路５１を含む。この回路５１はマイクロプロセッサのメモリ空間内のアドレスを、制御器のいろいろのレジスタに転写するものである。例えば制御回路５１のアドレス−復号論理回路はマイクロプロセッサ３３のアドレス空間を制御回路５１の以下のレジスタおよび機能に転写する。
0003628339.tif 000002
【００１５】
通常アクセスモード
一般的に言って、マイクロプロセッサ３３のメモリ空間はメモリ１７内で利用できるメモリ空間よりも小さく、データはメモリ３７内に格納される。マイクロプロセッサ３３がメモリ１７内で利用できる全アドレス空間にアクセスできるようにするためには、マイクロプロセッサは最初に行アドレスレジスタ４３に、アドレスｘｘ０への書き込みによりメモリ１７のロケーションの行アドレスを負荷し、次いでアドレスｘｘ１への書き込みにより当該ロケーションの列アドレスを４５に負荷する。マイクロプロセッサは次にアドレスｘｘ２にアクセスする。これによってメモリアクセス制御器３５が出力−イネーブル（ＯＥ）信号４４、４６（図３）をそれぞれ行および列アドレスレジスタ、行アドレスレジスタ４３、４５に印加し、それら行列アドレスをＶＲＡＭタイミング制御器３９に送り、適当なＲＱ（要求）信号５２を主張する。ＶＲＡＭタイミング制御器３９は次いでＲＡＳ／ＣＡＳ信号１８、２０（図２）を主張すると共に、予定のＶＲＡＭ−アクセス時刻にＶＲＡＭ３７に至るアドレスバス２８上に適当なアドレス値を供給することにより、メモリアクセスを完了する。このようにしてマイクロプロセッサ３３はＶＲＡＭ３７内の選択されたロケーション（アドレス）からデータを読み取り、又はそれへデータを書き込む。データは任意の順序でよい。
【００１６】
高速シーケンスアクセスモード
プロセッサ１３がＶＲＡＭ３７にデータを負荷する（すなわち後のシーケンスアクセスに適したシーケンスにデータを並べる）と、本システムに特徴的な高速シーケンスアクセスが以下のように開始される。最初に、要求された最初のデータワード（すなわちアクセスされるべき最初のデータワード）の行アドレスが転送カウンタ４９（図３）に負荷され、次にその最初のデータワードの列アドレスがアクセスカウンタ４７に負荷される。次いで（シリアルデータ転送のため）ＲＱ（要求）信号５２がシリアル読み取りモードに設定され、アドレスｘｘ７をアクセスすることにより転送サイクルが開始される。このアクセスオペレーションの結果、メモリアクセス制御器３５がアクセスカウンタ４７および転送カウンタ４９にそれぞれ出力−イネーブル（ＯＥ）信号４８、５０を印加する。これによって、アクセスカウンタ４７、４９内の行／列アドレスを制御器３９へ送信すること、およびシリアル要求信号（ＲＱ）５６を制御器３９へ印加することが可能となる。シリアル要求信号（ＲＱ）５６に応答して、このＶＲＡＭタイミング制御器は、アドレスバス２７上に行／列アドレスを供給しつつ、ＲＡＳ／ＣＡＳ信号１８、２０および転送信号５８（図４）をＶＲＡＭに印加することにより転送サイクルを完了する。転送サイクルのこの完了動作の結果、当該行アドレスを有するメモリロケーション内のデータ値のＳＡＭ又はシフトレジスタ４１への転送が起きる。アクセスカウンタ４７内の関連列アドレスは、ＳＡＭ内のいずれのデータ値が最初にシフト（出力）されるべきかを示す。
【００１７】
プロセッサは次いで、ＳＡＭアクセスアドレス（ｘｘ６）をアクセスすることにより、データリストをシーケンス的にアクセスする。プロセッサがＳＡＭアクセスアドレスを主張する（特定する）度に以下の事象が起きる。最初にシリアルクロック信号３０（図２および図３）が主張される（３７に印加される）。その結果、次のデータワードがＳＡＭ４１からクロック出力され、シリアルポート２５（図１）を経てプロセッサへ送信される。次にアクセスカウンタ４７が減数され、アクセスカウンタ値（すなわちアクセスカウンタの内容）がゼロに等しくなると、転送カウンタ４９が減数される。この後、メモリアクセス制御器３５（図２）によって転送サイクルが開始される（強制される）。次に転送カウンタ４９から行アドレスが取り出され、アクセスカウンタ４７（これの内容はこのとき０となっていよう）からＳＡＭの開始アドレスが取り出される。このようにしてプロセッサは中間的アドレスを何ら供給することなくＶＲＡＭ内のデータにシーケンス的アクセスを行なう。プロセッサは開始アドレスの供給を要求されるだけである。
【００１８】
分離したＳＡＭ（各々のＳＡＭはＶＲＡＭマトリックスの行幅の半分を有する）を備えたＶＲＡＭを使用することによって、ＳＡＭの半分がデータの転送に関与し、他の半分はデータのシフトに関与することができるようになっている。この型のＶＲＡＭアーキテクチャーは、プロセッサがＶＲＡＭの転送サイクルに関与することなくプロセッサがＶＲＡＭのデータにシーケンス的にアクセスすることを可能にする。この転送サイクルはプロセッサにとって「透明」である。
【００１９】
クロック信号、アドレスアクセス、およびシリアルデータ出力の間のタイミング関係は図５に示す通りである。
【００２０】
前述したように、高速シーケンスデータアクセスオペレーションを行うことができるという本システムの性能は、計算−集中的シーケンスオペレーション（ｃｏｍｐｕｔｅ−ｉｎｔｅｎｓｉｖｅ  ｓｅｑｕｅｎｔｉａｌ  ｏｐｅｒａｔｉｏｎ）（例えば、ニューラル・ネットワーク計算に普遍的である高速乗算／累積オペレーション）の実行にとって重要である。ニューラル・ネットワーク構造の例は図６に示してある。関連するニューラル・ネット計算は、ニューラルネットの一層について下記方程式（１）で与えられる。
【００２１】
ニューラル・ネット計算を行う場合の準備として、システム１１がホストコンピューター（図示してなし）から重みデータ（Ｗｉｊ）を受信し、その後のシーケンス的アクセスに適した予定シーケンス（その一例を下記の表Ｉに示す）に従って重みデータを並列ポート２３経由でメモリに負荷することにより、メモリ１７内に重みデータ表を構築する。この表は重み値のアレー（例えば各ロケーションが４ビット重み値を有するメモリロケーション／アドレスからなる５１２×５１２マトリックス。）で表すことができる。
0003628339.tif 000003
【００２２】
上記の表はｎ×ｍ計算を行なうためシーケンス状に配置された三層リスト（データリスト）を表す。ここにｎは入力数でｍは出力数を表す。一層の出力は次の層の入力となる。例えば第一層にはｎ＝１０入力（列）およびｍ＝５出力（行）がある。第二層にはｎ＝５入力とｍ＝３出力があり、第三層にはｎ＝３入力とｍ＝２出力がある。
【００２３】
並列ポート２３経由でＶＲＡＭ３７に負荷する代わりの方法として、シリアルポート２５およびＳＡＭ４１を経由して負荷を行うことができる。
【００２４】
重み値（Ｗｉｊ）がメモリ１７に格納された後、ホストコンピューターから送られた入力値（Ｘｉ）がプロセッサ１３内に局所的に格納される。（典型的な場合、入力値の量（ｎ）は約１００である。）ＤＳＰは次いで各出力（Ｙｊ）について下記方程式（１）に示す多重−蓄積型オペレーションを行う。
【００２５】
【式１】
0003628339.tif 000004
【００２６】
出力値Ｙｊはこれが予め定義した値域内に確実に入る、すなわち予め定義したしきい値に確実に合致するように調節することができる。そのように調節されたときはこの調節済みの値（Ｙ’）は次のようにＹｊの関数として表すことが出きる。ただしｎは入力（Ｘ）の数である。
【００２７】
【式２】
0003628339.tif 000005
【００２８】
ｍが出力（Ｙ）の数を表すときは層当たりの出力の全数（Ｚ）は次の式で表される。
【００２９】
【式３】
0003628339.tif 000006
【００３０】
例えばｎ＝１００でｍ＝３０であるときはＤＳＰ１３はニューラル・ネットの各層について３０００ＭＡＣ（多重／蓄積）オペレーションを行う。
【００３１】
Ｚ個の出力を有する各層がｋ個あるときは、全出力数（ＯＴ）は次の式で表される。
【００３２】
【式４】
0003628339.tif 000007
【００３３】
また、多重／蓄積オペレーションの全数（Ｏｐ）は次の式で表される。ただしＺｉはニューラル・ネットへの入力（Ｘ）の初期数である。
【００３４】
【式５】
0003628339.tif 000008
【００３５】
このようなコンピューター−集中多重−蓄積オペレーションを許容するために、本システムのコンフィギュレーション（アーキテクチャー）は、プロセッサ１３が（メモリ１７のシリアルアクセスポート経由で）最大毎秒４０×１０６ワード（メモリロケーション）までのメモリ内の重み値にアクセスできるようにしている。これは通常の（並列）ＤＲＡＭアクセス速度である毎秒約５×１０６ワード（メモリロケーション）よりも著しく高速である。
【００３６】
【効果】
上述したように、本システムのＤＳＰにはデータがシリアルポート２５を介してシフトレジスタに又はシフトレジスタから転送される。そしてプロセッサは開始アドレスの供給を要求されるだけで、シリアルポート２５がＶＲＡＭ内に格納されているデータへの高速シーケンスアクセスを提供できるので、個々のデータアドレスを特定することなしに高速シーケンスアクセスを行うことができる。
【００３７】
それぞれＶＲＡＭマトリックスの行幅の半分を有する分離したＳＡＭを備えたＶＲＡＭを使用することによりＳＡＭの半分がデータの転送に関与し、他の半分はデータのシフトに関与することができるようになっているので、プロセッサがＶＲＡＭの転送サイクルに関与することなくプロセッサがＶＲＡＭのデータにシーケンス的アクセスを行うことが可能であり、このため本システムはニューラル・ネットワーク計算に重要である高速メモリアクセスおよび高速乗算／累積演算の双方を与えることができ、しかも従来技術よりも廉価に実現できる。
【図面の簡単な説明】
【図１】ＤＳＰ（デジタル信号プロセッサ）、データ／アドレス／制御バス、およびＶＲＡＭ（ビデオＤＲＡＭ）を含む本発明のシステムのブロック線図である。
【図２】図１に示すシステムの詳細なブロック線図で、メモリアクセス制御器を含むことを示す図である。
【図３】図２に示すメモリアクセス制御器のブロック線図である。
【図４】図１のシステムに採用されるＶＲＡＭのブロック線図である。
【図５】クロック信号、データ、図１に示すシステムのＤＳＰとＶＲＡＭとの間で転送されるメモリアドレス値の間のタイミング関係を示す波形図である。
【図６】ニューラルネットワークのグラフィック表示で、入力値（Ｘｉ）、重み値（Ｗｉｊ）、および出力値（Ｙｊ）を示す。
【符号の説明】
１１  本発明のシステム
１３  プロセッサ
１５  データ／アドレス／制御バス
１７  メモリ
１９  第一入力−出力ポート
２１  第二入力−出力ポート
２３  並列ポート
２５  シリアルポート
【図１】
0003628339.tif 000009
【図２】
0003628339.tif 000010
【図３】
0003628339.tif 000011
【図４】
0003628339.tif 000012
【図５】
0003628339.tif 000013
【図６】
0003628339.tif 000014