JP2005157575A - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2005157575A
JP2005157575A JP2003392793A JP2003392793A JP2005157575A JP 2005157575 A JP2005157575 A JP 2005157575A JP 2003392793 A JP2003392793 A JP 2003392793A JP 2003392793 A JP2003392793 A JP 2003392793A JP 2005157575 A JP2005157575 A JP 2005157575A
Authority
JP
Japan
Prior art keywords
data
output
memory
register
arithmetic
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
JP2003392793A
Other languages
English (en)
Inventor
Tomoaki Ando
智明 安藤
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2003392793A priority Critical patent/JP2005157575A/ja
Publication of JP2005157575A publication Critical patent/JP2005157575A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】 簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、処理速度を向上させることができるプロセッサを提供する。
【解決手段】 演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力をデータ・メモリに供給し格納させるプロセッサにおいて、所定のタイミング信号により指定された期間の間、レジスタが出力するデータを入力バスに供給する第1の制御手段と、所定のタイミング信号により指定された期間の間、演算ユニットが出力するデータを入力バスに供給する第2の制御手段とを備える。
【選択図】 図4

Description

本発明は、プロセッサに関し、特にはDSP(Digital Signal Processor)に関する。
従来、一般的なDSPを用いたシステムでは、演算用のデータを格納するレジスタやデータ・メモリの出力のみを、DSPの入力バスに接続させる構成をとっている。図7に、従来のDSPの概略構成(プログラム・コントロール・ユニット等の一部構成要素を省略)を示している。データ・メモリ2bには演算用データおよび演算結果のデータが格納される。このDSPでは、図示しないプログラム・コントロール・ユニットからの制御信号に応じて、データ・メモリ・コントロール・ユニット1cが演算対象のデータが格納されたアドレス(あるいは演算結果のデータを格納する格納場所のアドレス)を生成しデータ・メモリ2bに供給する。
これに応じてデータ・メモリ2bからデータが出力あるいは入力される。データ・メモリ2bから出力されるデータは、プログラム・コントロール・ユニットからの制御信号(BSA,BSB)に従ってデコーダ1g’がバッファ1hの出力を制御することで、AバスまたはBバスに供給される。これらのバス(入力バス)に出力されたデータはパイプライン・レジスタ1fに一時記憶されるとともに演算ユニット(ALU)1eに供給され、この演算ユニット1eにより命令に応じた演算が施されて、その演算結果はデータ・メモリ2bに格納される。
ここで、図8に、データ・メモリ2bの同アドレスに格納された演算用データを4サイクル連続で演算に使用する場合のタイミングチャートを示す。
同図では、クロック信号と、データ・メモリ・コントロール・ユニット1cから出力されるチップ・セレクト信号(CSN:この信号はロー・アクティブ)とデータ・メモリ2bの出力(O出力)と、プログラム・コントロール・ユニットからの制御信号BSA/BSBと、A/Bバスの状態を示している。同図に示すように4サイクルの間(4クロックの期間)、チップ・セレクト信号により当該データ・メモリが選択され、同じアドレスから同じデータが読み出される。デコーダ1g’は、制御信号BSA/BSBを受け、その出力(O出力)によりバッファ1hの出力を制御するが、同図のようにデータ・メモリ2bからの出力データ([ADR]:アドレス“ADR”に格納されたデータを表す)が、このバッファ1hを介してA/Bバスに供給される。
次に、図9に、データ・メモリ2bに格納された演算結果(D0,D1,D2,D3)を順次使用する場合のタイミングチャートを示す。
同図では、クロック信号と、演算ユニット1eの出力信号(D:すなわち、データ・メモリの入力Iに入力される信号)と、データ・メモリ2bの出力(O出力)と、プログラム・コントロール・ユニットからの制御信号BSA/BSBと、A/Bバスの状態を示している。上記例と同様に4サイクルの期間に渡り、データ・メモリ2bからこれに格納された演算結果のデータの読み出しが行われ、結果A/Bバスに供給される。
以上のように、従来の構成では、所定の演算用データに演算を施す場合、必ずデータ・メモリ2bからそのデータを読み込む必要があり、また演算結果に対しさらに演算を施す場合にも必ずデータ・メモリ2bからそのデータを読み込む必要があった。
このような構成に対し処理時間を短縮させる発明がなされている。例えば、特許文献1に記載の技術では、演算器(ALU)の出力を出力レジスタを介さず乗算器側の入力に接続するとともに、乗算器の出力を出力レジスタを介さず演算器側の入力に接続する専用バスを設けることにより、マシンサイクルを少なくし処理時間を短縮している。
また、特許文献2に記載の技術は、読み出しサイクルの際読み出しデータが格納される読み出しデータレジスタと、書き込みサイクルの際書き込みデータが格納される書き込みデータレジスタを用いて、メモリの同一アドレスからの読み出しの際には(すなわち、連続して同じメモリ出力値を利用する場合には)、直前のサイクルでデータが格納されたデータレジスタからデータを送出することで、高速度のデータの読み出しを可能としている。
また、特許文献3に記載の技術も、メモリの同一アドレスからの読み出し時には、前回の読み出しデータをラッチするデータラッチの内容を使用することで、メモリ・アクセスの高速化をしている。
特開平4−268639号公報 特公平1−015900号公報 特開平3−055642号公報
従来の一般的な構成では、連続して同じメモリ出力値を利用する場合、利用回数分のメモリ・アクセスが発生する。また、演算器による演算結果は、そのデータを格納するレジスタやデータ・メモリに格納された後にしか利用できない。
一方、特許文献1の技術では、乗算器による処理結果をさらに演算器で処理したりさらにこの処理結果を乗算器で処理したりする場合には、専用のバスを設けることで処理時間を短縮することができるが、従来の一般的な構成の場合と同様に、連続して同じメモリ出力値を利用する場合には、利用回数分のメモリ・アクセスが発生する。
他方、特許文献2や特許文献3の技術は、データレジスタ(データラッチ)を設け記憶装置として同一アドレスからの読み出しのみを高速にするものであるが、データに対し何らかの演算処理が施され処理結果のデータが、メモリの異なるアドレスに格納される場合には通常のメモリ・アクセスが行われることになり、演算結果をすぐ次の処理に使うときには不向きである。
本発明は、上記の点に鑑みてなされたもので、簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、演算用のデータが格納されるデータ・メモリに対するメモリ・アクセスの回数を低減させ処理速度を向上させることができるプロセッサを提供するものである。
請求項1に記載の発明は、演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力を前記データ・メモリに供給し格納させるプロセッサにおいて、所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給する第1の制御手段と、所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給する第2の制御手段と、を備えることを特徴としている。
請求項2に記載の発明は、請求項1に記載のプロセッサにおいて、前記第1の制御手段または前記第2の制御手段は、前記レジスタまたは前記演算ユニットが出力するデータを、与えられる出力イネーブル信号に応じて前記入力バスに供給するバッファ回路と、前記所定のタイミング信号をデコードし、前記バッファ回路に前記出力イネーブル信号を供給するデコード回路とからなることを特徴としている。
請求項1に記載の発明では、従来通りの処理を行う場合、演算用データがデータ・メモリから供給され、レジスタがこのデータを一時記憶する。そして演算ユニットがこのデータに対し所定の演算を施し、その演算結果をデータ・メモリの入力に供給し格納させる。このように演算用データ(演算ユニットによる演算結果が演算用データとなる場合もある)の入力は、データ・メモリを介して供給される。
本発明では、データ・メモリの同一アドレスの同じデータを使用する場合、第1の制御手段が、所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給することにより、このデータを演算用データとして演算ユニットに供給できるので、メモリにアクセスする必要がなくなり、その分処理を高速化できる。特に、連続して同じアドレスのデータを利用する場合有効である。
他方、演算ユニットによる演算結果に対しさらに演算を施す場合では、第2の制御手段が、所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給することにより、データ・メモリにアクセスすることなくそのデータを演算用データとして演算ユニットに供給できるので、この場合においても、メモリ・アクセス回数を低減でき処理を高速化できるものとなる。
本発明によれば、簡単な構成で、メモリの同一アドレスの同じデータを使用する場合および当該プロセッサによる演算結果をさらに使用する場合の双方において、演算用のデータが格納されるデータ・メモリに対するメモリ・アクセスの回数を低減させ処理速度を向上させることができる。
以下、本発明の実施の形態を、図面を参照して説明する。
なお、以下にて参照する図面には、従来例として示した図面と共通する部分に同一の符号を附している。
はじめに、DSPを利用する一般的なシステム構成を図1に示す。
図1に示す例では、システム全体を制御するホストコンピュータ(Host)3と、このホストコンピュータ3から与えられる命令が格納される命令メモリ(Instruction Memory)2aと、演算用データが格納されるデータ・メモリ(Data Memory X及びData Memory Y)2bと、与えられる命令に従い演算用データに対して演算を施すDSP1とがバスおよび信号線により接続されている。
DSP1は、図2に示すように、ホストコンピュータ3との間でデータの入出力をするためのレジスタ(Register)1aと、プログラム・コントロール・ユニット(Program Controll Unit)1bと、データ・メモリ・コントロール・ユニット(Data Memory Controll Unit)1cと、バス・コントロール・ユニット(Bus Contoroll Unit)1dと、演算ユニット(Arithmetic Logic Unit;ここでは乗算器を含むものとする)1eとから構成されている。
プログラム・コントロール・ユニット1bは、命令メモリ2aから命令を読み込み、この命令を解読して、データ・メモリ・コントロール・ユニット1c、バス・コントロール・ユニット1d、演算ユニット1eに対し制御コードを送りこれらを制御する。データ・メモリ・コントロール・ユニット1cは、プログラム・コントロール・ユニット1bからの命令に従いデータ・メモリ2bから読み込む演算用データの格納場所(あるいは演算結果を書き込む格納場所)のアドレスを生成する。そして、生成したアドレス及びチップ・セレクト信号、ライト・イネーブル信号等の制御信号をデータ・メモリ2bに供給する。これに応じてデータ・メモリ2bからデータが出力あるいは入力される。
演算ユニット1eは、供給される演算用データに対し、プログラム・コントロール・ユニット1bから受ける制御コードに従った演算を施す。
バス・コントロール・ユニット1dは、プログラム・コントロール・ユニット1bから受ける制御コードに従い、指定されたバスソースを選択してそのバスにデータを載せる。
ここで、図3に、図2にて示しているバス・コントロール・ユニット1d、演算ユニット1e等とこれらを繋ぐバス・ラインをさらに詳しく示す。
演算ユニット1eは、乗算器(FMPY)と積和演算器(FALU)とから構成される。同図に示す例では、第1ステージ(1st stage)と第2ステージ(2nd stage)の2ステージからなるパイプライン処理を行える構成とし、第1ステージの演算結果を一時記憶するパイプライン・レジスタを有している。バス・コントロール・ユニット1dは、初段のパイプライン・レジスタ1fと、図3にて図示しない下記のデコーダ1gとバッファ1hを含み、乗算用データが流れるX,Yバスと、その他の算術演算用データが流れるA,Bバスと、演算ユニット1eの演算結果のデータが流れるDバスを含んで構成され、データの流れを制御する。なお、同図にて乗算器(FMPY(2nd stage))の出力がAバスへ接続されているが、これは一般的な積和演算のためのラインである。
前述のようにデータ・メモリ・コントロール・ユニット1cからのアドレス信号及び制御信号に応じてデータ・メモリ2bからデータが出力されるが、この出力は図4に示すバッファ1hによって制御される。
このバッファ1hは、図4に示すデコーダ1gから供給される出力イネーブル信号を受け、この信号に応じてその出力が制御される。本実施の形態では、バッファ1hは、制御に応じて、データ・メモリ2bからの出力を演算ユニット1eに供給したり、初段のパイプライン・レジスタ1fの出力を演算ユニット1eに供給したり、演算ユニット1eの出力をこの演算ユニット1eの入力に供給する。
一方、デコーダ1gは、プログラム・コントロール・ユニット1bから供給される制御信号BSA,BSBに応じて、出力可とするいずれかのバッファ1hに対する出力イネーブル信号を該当のバッファ1hに供給する。
なお、図4においては、X,Yバスは簡単のため省略し、演算ユニット1eをALUとして示している。また、上記BSA/BSBはA/Bバスソースを指定する信号であり、プログラム・コントロール・ユニット1bによる命令コードで指定されるものとする。
このように構成される本実施の形態のDSP1の、本発明に係る特徴的な動作について、図5、6を参照し説明する。
なお、DSP1は、従来と同様の動作(前述)をすることも可能である。
図5は、従来ではデータ・メモリ2bに記憶された同じ演算用データを4サイクル分使用するケースに対し、最初の1回だけメモリ・アクセスを行い残りの3サイクルは、初段のパイプライン・レジスタ1fに一時記憶された演算用データを使用するようにした場合のタイミング・チャートである。
同図では、クロック信号と、データ・メモリ・コントロール・ユニット1cから出力されるチップ・セレクト信号(CSN)と、データ・メモリ2bの出力(O出力)と、プログラム・コントロール・ユニット1bからの制御信号BSA/BSBと、A/Bバスの状態と、パイプライン・レジスタ1fの出力(AD/BD)を示している。
同図に示すように、チップ・セレクト信号等の制御信号に応じて最初のサイクルでは、データ・メモリ2bから演算用データ(同図に示す[ADR])が出力される。このとき制御信号BSA/BSBによりデコーダ1gは、データ・メモリ2bの出力に繋がるバッファ1hに対しその出力端子Oから出力イネーブル信号を供給する。これにより、データ・メモリ2bの出力は、バッファ1hを介してAバスまたはBバスに出力され、初段のパイプライン・レジスタ1fを介して演算ユニット1eに供給される。
残りの3サイクルの間(3クロックの期間)は、同様に制御信号BSA/BSBにより、デコーダ1gは、初段のパイプライン・レジスタ1fの出力に繋がるバッファ1hに対し出力端子AまたはBから出力イネーブル信号を供給する。これにより、初段のパイプライン・レジスタ1fの出力(AD/BD)は、バッファ1hを介してAバスまたはBバスに出力され、その出力データ([ADR])は、初段のパイプライン・レジスタ1fを介して演算ユニット1eに供給される。
同図に示すように、最初の1回だけデータ・メモリ2bへのアクセスを行うだけで、残り3サイクルは初段のパイプライン・レジスタ1fに一時記憶された直前のデータを利用するので、3サイクル分のメモリ・アクセスがなくなり、データ・メモリ2bの同アドレスに格納された演算用データを4サイクル連続で演算に使用する場合に比べ、高速化できる。
また、従来のように4サイクル連続で同メモリ同アドレスのデータを使用する場合、4回のメモリ・アクセスを行うことから、この間、同メモリ同アドレス(あるいは異なるアドレス)からの読み出し、及び同メモリへの書き込みを別途行うことはできないが、本実施の形態では、初段のパイプライン・レジスタ1fが一時記憶しているデータを再使用するので、上記例では、残り3サイクルの間、同メモリ同アドレス(あるいは異なるアドレス)からの読み出し、及び同メモリへの書き込みを別途行うことも可能となる。
図6は、演算ユニット1eによる演算結果(D0,D1,D2,D3)をそのまま順次使用する場合のタイミング・チャートである。
同図では、クロック信号と、演算ユニット1eの出力信号(D:すなわち、データ・メモリ2bの入力Iに入力される信号)と、プログラム・コントロール・ユニット1bからの制御信号BSA/BSBと、A/Bバスの状態を示している。この例では、制御信号BSA/BSBにより、デコーダ1gは、演算ユニット1eの出力に繋がるバッファ1hに対し出力端子Dから出力イネーブル信号を供給する。これにより、演算ユニット1eの出力は、バッファ1hを介してAバスまたはBバスに出力され、初段のパイプライン・レジスタ1fを介して演算ユニット1eに供給される。このようにして、4サイクルの期間に渡り、演算ユニット1eの出力(D0,D1,D2,D3)がそのままバッファ1hを介してA/Bバスに出力され演算ユニット1eに供給される。
この例では、演算ユニット1eによる演算結果をバッファ1hを介して直接A/Bバスに供給することによって、従来技術より1サイクル早くデータを利用できるようになる。また、データ・メモリ2bのリソースを消費せず、かつ処理速度を向上させる(=命令行数を減らす)ことが可能となる。
以上、この発明の実施形態を、図面を参照して詳述した。もちろん、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の構成等も含まれることは言うまでもない。
DSPを利用する一般的なシステム構成を示す図である。 図1に示すDSP部分の構成を詳しく示すブロック図である。 図2に示しているバス・コントロール・ユニット、演算ユニット等とこれらを繋ぐバス・ラインをさらに詳しく示す図である。 本発明の一実施の形態におけるバス・コントロール・ユニットと、その周辺の回路の詳細を示すである。 同実施の形態におけるタイミングチャートの一例である。 同実施の形態におけるタイミングチャートの一例である。 従来の形態におけるバス・コントロール・ユニットと、その周辺の回路の詳細を示すである。 従来の形態におけるタイミングチャートの一例である。 従来の形態におけるタイミングチャートの一例である。
符号の説明
1…DSP(プロセッサ)、1a…レジスタ、1b…プログラム・コントロール・ユニット、1c…データ・メモリ・コントロール・ユニット、1d…バス・コントロール・ユニット、1e…演算ユニット、1f…パイプライン・レジスタ(本発明に係るレジスタ)、1g…デコーダ(デコード回路:第1の制御手段、第2の制御手段)、1g’…デコーダ、1h…バッファ(バッファ回路:第1の制御手段、第2の制御手段)、2a…命令メモリ、2b…データ・メモリ(データ・メモリX、データ・メモリY)、3…ホストコンピュータ

Claims (2)

  1. 演算用データが格納されるデータ・メモリから入力バスに供給される演算用データを受け一時記憶するレジスタと、該レジスタから供給されるデータに対し所定の演算を施す演算ユニットとを備え、該演算ユニットによる演算結果の出力を前記データ・メモリに供給し格納させるプロセッサにおいて、
    所定のタイミング信号により指定された期間、前記レジスタが出力するデータを前記入力バスに供給する第1の制御手段と、
    所定のタイミング信号により指定された期間、前記演算ユニットが出力するデータを前記入力バスに供給する第2の制御手段と、を備える
    ことを特徴とするプロセッサ。
  2. 前記第1の制御手段または前記第2の制御手段は、
    前記レジスタまたは前記演算ユニットが出力するデータを、与えられる出力イネーブル信号に応じて前記入力バスに供給するバッファ回路と、
    前記所定のタイミング信号をデコードし、前記バッファ回路に前記出力イネーブル信号を供給するデコード回路とからなる
    ことを特徴とする請求項1に記載のプロセッサ。

JP2003392793A 2003-11-21 2003-11-21 プロセッサ Pending JP2005157575A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003392793A JP2005157575A (ja) 2003-11-21 2003-11-21 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003392793A JP2005157575A (ja) 2003-11-21 2003-11-21 プロセッサ

Publications (1)

Publication Number Publication Date
JP2005157575A true JP2005157575A (ja) 2005-06-16

Family

ID=34719376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003392793A Pending JP2005157575A (ja) 2003-11-21 2003-11-21 プロセッサ

Country Status (1)

Country Link
JP (1) JP2005157575A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662873B1 (ko) * 2006-01-03 2007-01-02 삼성전자주식회사 루프가속기 및 이를 포함하는 데이터 처리 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662873B1 (ko) * 2006-01-03 2007-01-02 삼성전자주식회사 루프가속기 및 이를 포함하는 데이터 처리 시스템

Similar Documents

Publication Publication Date Title
JP2554050B2 (ja) デ−タ処理方法
JP3627725B2 (ja) 情報処理装置及び電子機器
JP2779557B2 (ja) 並列演算処理装置
JP2005157575A (ja) プロセッサ
JPH06161744A (ja) パイプライン処理を用いたプロセッサ
US5151993A (en) Data processor performing operation on data having length shorter than one-word length
JPH02235289A (ja) 自己刻時レジスターファイル
JP2006293741A (ja) プロセッサ
JP2008123410A (ja) デジタル信号処理装置
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
JP3441847B2 (ja) データメモリを有するプロセッサ
JP2006268152A (ja) 集積回路装置
JP3366235B2 (ja) データ読み出し制御装置
JPS6031652A (ja) Rom内蔵マイクロコンピュ−タ
JP2001100991A (ja) ディジタル信号処理装置
JPH07105001A (ja) 中央演算処理装置
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPH07262075A (ja) ディジタル信号処理装置
JP2003122628A (ja) デジタル信号処理装置、プログラム変換装置、及びデジタル信号処理装置を有する通信システム
JPH0792902A (ja) プログラマブルコントローラ
JPH0721760B2 (ja) ディジタル演算回路
JP2002182905A (ja) ディジタル信号処理プロセッサ
JPH11126200A (ja) ベクトル処理装置
JPH0810443B2 (ja) メモリ制御回路
JPH06301532A (ja) マイクロプロセッサ装置