JP4228275B2 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
JP4228275B2
JP4228275B2 JP2002339323A JP2002339323A JP4228275B2 JP 4228275 B2 JP4228275 B2 JP 4228275B2 JP 2002339323 A JP2002339323 A JP 2002339323A JP 2002339323 A JP2002339323 A JP 2002339323A JP 4228275 B2 JP4228275 B2 JP 4228275B2
Authority
JP
Japan
Prior art keywords
cpu
bus
data
storage device
memory
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.)
Expired - Fee Related
Application number
JP2002339323A
Other languages
Japanese (ja)
Other versions
JP2004171458A (en
Inventor
太一 平尾
博一 花木
知史 奥田
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2002339323A priority Critical patent/JP4228275B2/en
Publication of JP2004171458A publication Critical patent/JP2004171458A/en
Application granted granted Critical
Publication of JP4228275B2 publication Critical patent/JP4228275B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
本発明は情報処理装置関し、特に、CPUが行う処理速度の向上をはかるための情報処理装置関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータが普及し、そのパーソナルコンピュータの頭脳であるCPU(Central Processing Unit)の処理能力(処理速度)が向上しつつある。CPUの処理能力を向上させるために、CPUの他に、コプロセッサを設けといったことが行われている。(例えば、特許文献1乃至5参照)
【0003】
【特許文献1】
特開平11−73314号公報
【特許文献2】
特開平9−325759号公報
【特許文献3】
特開平9−69047号公報
【特許文献4】
特許第2849189号明細書
【特許文献5】
特許第2908096号明細書
【0004】
【発明が解決しようとする課題】
CPUが演算を実行する際、必要なデータおよび命令を記憶装置にアクセスして取り出す必要がある。その記憶装置としては、例えば、CPU内に備えられているキャッシュや、CPUの外部に備えられているメモリやレジスタなどがある.CPUがCPU内のキャッシュにアクセスする場合、そのCPUとキャッシュ間で行われるデータ転送の速度は、CPUとメモリ間で行われるデータ転送速度と比較すれば早い。CPUがCPU外部のレジスタやメモリにアクセスする場合、そのアクセスの速度(データ転送の速度)は、CPUとメモリ(レジスタ)を接続しているバスが経由されるため、データ転送が完了するまでに時間がかかる。
【0005】
これは、CPUが、データ要求信号および対象となっているデータが格納されているアドレスをメモリやレジスタに送り、その応答としてのレジスタやメモリからデータが転送されるまで、次の要求信号を送信することができないためである。
【0006】
また、CPU以外にもバスを使用してデータの転送などを行うデバイスがあるために、バスがビジー状態になってしまうことなどに起因して、CPUがバスを使用できるようになるまでに、待ち時間が必要となる場合がある。そのために、非常に演算量が多いときなどは、処理速度が遅くなり、リアルタイムでの処理が要求されるときには、その要求に答えることができなくなり、現状でのCPUの性能では不充分なときがあった。
【0007】
この問題への対策の一つとして、例えばDMA(Direct Memory Access)がある。このDMAは、CPUの代わりにメモリとメモリ間などのデータ転送を行うものであり、CPUを介することなく高速なデータ転送が可能である。しかしながら、CPUは、データ転送をDMAに移管するために、アドレスや転送サイズなどをDMAコントローラに設定する必要があり、その設定するための処理が行われる間には、上述した問題が発生する可能性があった。
【0008】
本発明はこのような状況に鑑みてなされたものであり、CPUの処理速度を向上させることを目的とする。
【0009】
【課題を解決するための手段】
本発明の情報処理装置は、CPUのみがアクセスする第1の記憶デバイスと、前記CPUと前記CPUとは異なるデバイスがアクセスする第2の記憶デバイスと、前記CPUと前記第1の記憶デバイスを接続する第1のバスと、前記CPUと前記第2の記憶デバイスを接続する第2のバスとを備え、前記第1のバスを介した前記CPUと前記第1の記憶デバイスとの間で用いられる前記第1のバス用の命令セットは、レイテンシが固定長で、応答信号の1つであるAcknowledgeを有せず、オフセット値を有せず、即値またはポインタを用いて前記第1の記憶デバイスにアクセスするようにされ、前記第1の記憶デバイスに、前記ポインタを用いてアクセスする場合、前記第1のバス用の命令セットの前記ポインタに格納されている値のうち、所定の上位ビットにマスクを施し、前記所定の上位ビット以外の下位ビットのみを増減させるようにされている
【0010】
前記第1のバス用の命令セットは、前記第2のバスを介したCPUと第2の記憶デバイスの間で用いられる第2のバス用の命令セットと同一の形式であるようにすることができる。
【0011】
前記第1の記憶デバイスと前記第2のバスとを接続する第3のバスをさらに備えるようにすることができる。
【0012】
前記第1のバスは、前記CPUのコプロセッサポートと接続されるようにすることができる。
【0016】
本発明の情報処理装置においては、CPUとCPU専用のメモリが、専用のバスで接続され、そのバスにおける命令セットは、レイテンシが固定長で、Acknowledgeを有しないものとされているため、CPUが処理を実行する上で、連続的に命令を出すことが可能となり、もって、CPUの処理能力を向上させることが可能となる。また、命令セットは、オフセット値を有せず、即値またはポインタを用いてメモリにアクセスするようにされ、ポインタを用いてアクセスする場合、命令セットのポインタに格納されている値のうち、所定の上位ビットにマスクを施し、所定の上位ビット以外の下位ビットのみを増減させるようにされている
【0017】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。図1は、本発明を適用した情報処理装置の一実施の形態の構成を示している。図1に示した情報処理装置10は、例えば、パーソナルコンピュータなどに組み込まれる。CPU11とローカルメモリ13は、ローカルバスインタフェース12およびローカルバス14により、データの授受ができるように接続されている。CPU11とローカルバスインタフェース12は、標準メモリバス15により、レジスタ16やメモリ17とも接続されている。
【0018】
ローカルバスインタフェース12は、CPU21のコプロセッサポート21と接続されている。
【0019】
ここで、コプロセッサポート21について説明する。コプロセッサポート21は、本来、コプロセッサと接続するために設けられている。コプロセッサとは、CPU11を補完し、性能を強化するためのプロセッサであり、浮動小数点演算を行うコプロセッサが代表的なものとしてあげられる。
【0020】
このコプロセッサを接続するためにCPU11に備わっているコプロセッサポート21に、本実施の形態においては、コプロセッサではなく、CPU11が単独で使用するローカルバスインタフェース12を接続する。そして、CPU11は、ローカルバスインタフェース12およびローカルバス14を経由して、ローカルメモリ13とデータ授受を行うことができるように構成されている。
【0021】
ローカルメモリ13は、CPU11が単独で使用するものである。ローカルメモリ13が、CPU11が単独で使用するものであるため、ローカルバス14も、CPU11が単独で使用するバスとされている。CPU11が単独で使用するローカルメモリ13とのデータの授受を制御するために、ローカルバスインタフェース12が設けられている。
【0022】
ローカルメモリ13に対して、CPU11も使用するが、CPU11以外のデバイスも、必要に応じて用いるのが、レジスタ16やメモリ17である。標準メモリバス15には、CPU11以外のデバイスが必要とするデータも送受信されるが、ローカルバス14には、CPU11が必要とするデータのみが送受信される。なお、ローカルバス14においては、例えば、32ビットでデータの授受が行われる。
【0023】
CPU11とローカルメモリ13との間でデータの授受が行われる際の動作について、図2のフローチャートを参照して説明する。ステップS11において、CPU11は、命令を発行する。この発行された命令は、ローカルバスインタフェース12に受信される。ローカルバスインタフェース12は、ステップS12において、受信した命令を解析し、処理対象となっているデータが格納されているまたは格納するアドレスのデータ、処理対象となるデータ、読み出し信号(read信号)又は書き込み信号(Write信号)などに変換する。
【0024】
変換されたそれらのデータや信号は、ステップS13において、ローカルバスインタフェース12からローカルメモリ13に対して転送される。ローカルメモリ13は、ステップS14において、受信したデータに対応する処理として、応答信号を生成する。その応答信号は、ローカルバスインタフェース12に対して送信(出力)される。
【0025】
ローカルバスインタフェース12は、ステップS15において、ローカルメモリ13からの応答信号を、CPU11が処理できるデータに変換し、出力する。CPU11は、ステップS16において、ローカルバスインタフェース12からのデータを受信し、その受信したデータに基づく処理を開始する。
【0026】
このようにして、CPU11とローカルメモリ13との間で、データの授受(命令の発行と、その命令に対応する処理)が行われる。このCPU11とローカルメモリ13との間でのデータの授受、すなわち、ローカルバス14を介してデータの授受が行われる場合と、標準メモリバス15を介して、例えば、CPU11とメモリ17との間でデータの授受が行なわれる場合とを比較する。
【0027】
ローカルバス14におけるデータの授受と、標準メモリバス15におけるデータの授受との違いは、標準メモリバス15を介するデータの授受は、CPU11が要求信号(命令)を出し、その信号がレジスタ16やメモリ17等の記憶装置に到達した後、CPU11は、記憶装置が応答信号として出したデータの受信を待つという動作が行われる。そのため、CPU11は、要求信号を出した後から応答信号を受信するまでの間、他の動作を行うことができない。
【0028】
これに対し、ローカルバス14におけるデータ授受のプロトコル(後述)は、応答信号の1つであるAcknowledgeを持たないレイテンシが固定長であるため、CPU11は、命令を出した後の応答信号を待つ必要がない。従って、要求信号を出した後、他の動作を行うことが可能である。例えば、要求信号を連続して発行するといったことが可能となる。このように、ローカルバス14におけるデータの授受においては、CPU11は、信号を発行した直後に別の動作を行うことができ、効率的な動作ができるようになる。
【0029】
ステップS11において、CPU11が、ローカルバスインタフェース12とローカルバス14を介して、ローカルメモリ13に対して発行する命令は、CPU11に通常備わっている命令セットを拡張し、ローカルメモリ13を用いるために(ローカルバス14を用いるために)独自に用意したコプロセッサ命令の様式である。
【0030】
独自に用意したコプロセッサ命令の様式を用いることによって、レジスタ16やメモリ17といったCPU11以外のデバイスもアクセスする記憶装置にアクセスする場合には標準の命令を使用し、CPU11専用に用意したローカルメモリ13にアクセスする場合には、独自に用意したコプロセッサ命令の様式の命令を使用するといった、用いるバスによる区別を行うことが可能となる。ただし、命令の形式は、通常の命令と同形態になっているため、DMAコントローラへの設定のような特別な動作は不要である。
【0031】
このようなローカルバス14を用いたデータの授受を行うための拡張命令について説明する。図3に、ローカルバス14でデータを授受するための拡張命令であるLDL(Load-Data-Local)とSDL(Store-Data-Local)の命令のデータ構成を示す。LDLは、ローカルメモリ13からCPU11へのread命令(リード命令)であり、SDLは、逆にCPU11からローカルメモリ13へのwrite命令(ライト命令)である。
【0032】
命令は、例えば、32ビット長で構成され、CPU11が備えている他の命令(標準メモリバス15に出力する命令)と同様な構成で構成される。31乃至26ビットがオペコード、20乃至16ビットがターゲットレジスタであり、この部分に関しては、CPU11が備えている他の命令と同様に構成されている。
【0033】
ローカルバス14用の拡張命令は、オフセット値を持たない構成とされている。オフセット値を持たせないことにより、アドレス計算を行わないにすることができる。ローカルバス14用の拡張命令は、オフセット値を持たない代わりに、即値(Immediate)またはポインタ(Pointer)を用いてローカルメモリ13にアクセスするように構成されている。
【0034】
図4に示したように、25乃至21ビットのLmodeのデータにより、即値を用いるかポインタを用いるかが指示されるように構成されている。同時に、即値が選ばれた場合(Lmodeが$0乃至$7の場合)には、その即値をポインタに代入するのか否か、ポインタが選ばれた場合(Lmodeが$8乃至$13の場合)には、その値を増減するのか否かが選択できるようになっている。
【0035】
例えば、アセンブラで、
LDL $10,256($0) は、
CPU.Reg[10]=LocalMem[256]; Pointer[0]=256; を意味する。
【0036】
また,アドレス 0x4002 に Pointer[2] を割り当てると、
SDL $12,0x4002($12) は、
LocalMem[Pointer[2]]=CPU.Reg[12]; Pointer[2]--; を意味する。
【0037】
また、各ポインタには、1対1で対応したマスクが用意されている。その一例を図5に示す。このようなマスクを用意することにより、ポインタを用いてアドレスを送出する際、所望の下位ビットを残し、それより上位のビットを変化させことなくアドレスの増減を実行することが可能となる。
【0038】
次に、ローカルバス14のプロトコルについて、図6乃至図9のタイミングチャートを参照して説明する。図6乃至図9において、1行目(HCLK)は、CPU11の動作クロックの信号の波形を示し、2行目(LDLまたはSDL)は、パイプラインステージを示し、3行目(enable)は、読み出し(read)または書き込み(write)のイネーブル信号を示し、4行目(address)は、読み出しまたは書き込みを行う対象となるアドレス(そのアドレスがローカルバス14上を通るタイミング)を示し、5行目(H:read,L:write)は、読み出しまたは書き込みを指示する信号を示し、6行目(read data[31:0])は、読み出しまたは書き込みの対象とされたデータ(そのデータがローカルバス14上を通るタイミング)を示している。
【0039】
図6乃至図9における2行目のパイプラインステージにおいて、IFは、Instruction Fetch、RFは、Register Fetch、EXは、Execution、DFは、Data Fetch、WBは、Write Backを、それぞれ示す。また、図7の4行目におけるRAは、Read Addressを示し、6行目のRDは、Read Dataを示す。同様に、図8の4行目におけるWAは、Write Addressを示し、6行目のWDは、Write Dataを示す。
【0040】
図6は、CPU11からローカルメモリ13へのread命令が出される時のものであり、2行目にその命令であるLDL命令のパイプラインステージを示している。標準メモリバス15(通常のバス)に対しては、命令に含まれているレジスタの内容を読み出し、オフセットを加えるなどの処理をした後に、4番目のステージであるDFで要求が出される。
【0041】
それに対しローカルバス14に対しては、命令中にアドレスの即値しか含まれていないため、2番目のステージであるRFで要求(読み出すデータのアドレスなど)を出すことができる。そのため、LDL命令の後にLDL命令を続けて出してもインターロックが起きるようなことがなく、遅延のない連続したデータ転送が可能となる。このような連続的にLDL命令が出されたときの状態を、図7に示す。
【0042】
図8は、CPU11からローカルメモリ13へのwrite命令が出される時のものであり、2行目にその命令であるSDL命令のパイプラインステージを示している。SDLはLDLと異なり、5番目のステージであるWBで要求を出し、そのステージで書き込みが完了する。要求をもっと早い段階で出さない理由は、4番目のステージであるDFにおいて割り込みが発生する可能性があるからである。このような場合も、LDLと同様に、SDL命令を連続して出しても、インターロックが起きることなくデータの転送を行うことができる。このような連続的にSDL命令が出されたときの状態を、図9に示す。
【0043】
このようなローカルバス14を用いることにより、CPU11の高効率の動作が可能になるが、このローカルバス14を通るデータ等は、通常のデバッガでは検知することができない。一般的なデバッガは、標準メモリバス15を通してメモリ17などの記憶装置にアクセスし、デバッグ信号は、コプロセッサポート21を使用しないためである。
【0044】
このような問題を解決するために、標準メモリバス15とローカルバスインタフェース12をつなぐバイパスを用意する。このデバッグ用バイパス経由で、ローカルメモリ12または図示していないローカルレジスタといった記憶装置とのデータ転送を行うことができ、その結果としてデバッグも可能となる。
【0045】
CPU11とメモリなどの記憶装置間におけるデータ転送は、従来では、要求信号に対する応答信号を待たなければ次の信号を発行することができず(次の動作にうつることができず)、記憶装置にアクセスし、データが転送されるまでの数サイクルの待ち時間が必要であった。
【0046】
しかしながら、上述した本実施の形態を適用することにより、CPU11に、コプロセッサの代わりにローカルバス14を用いることで、CPU内のキャッシュにアクセスするのと同程度の速度でのデータ転送が可能となり、高効率にデータの転送を行うことが可能となり、高効率にCPU11が動作することが可能となる。このため、例えば、オーディオ信号やビデオ信号のリアルタイムエンコーダとして、図1に示したような情報処理装置10を含む装置を使用すれば、大きな影響を与え、特別な処理装置を別途用意することなく、高速な動作が可能となる。
【0047】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0048】
【発明の効果】
本発明の情報処理装置よれば、CPUと記憶装置間におけるデータの転送を行うことができる。
【0049】
また、本発明の情報処理装置よれば、CPUと記憶装置間におけるデータの転送を、より高効率に行うことができ、もって、データ処理速度を向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用した情報処理装置の一実施の形態の構成を示す図である。
【図2】情報処理装置の動作について説明するためのフローチャートである。
【図3】拡張命令について説明するための図である。
【図4】拡張命令について説明するための図である。
【図5】マスクについて説明するための図である。
【図6】ローカルバスプロトコルについて説明するための図である。
【図7】ローカルバスプロトコルについて説明するための図である。
【図8】ローカルバスプロトコルについて説明するための図である。
【図9】ローカルバスプロトコルについて説明するための図である。
【符号の説明】
10 情報処理装置, 11 CPU, 12 ローカルバスインタフェース, 13 ローカルメモリ, 14 ローカルバス, 15 標準メモリバス,16 レジスタ, 17 メモリ
[0001]
The present invention relates to an information processing apparatus, particularly relates to an information processing apparatus for improving the processing speed performed by the CPU.
[0002]
[Prior art]
In recent years, personal computers have become widespread, and the processing capability (processing speed) of a CPU (Central Processing Unit) which is the brain of the personal computer is being improved. In order to improve the processing capability of the CPU, a coprocessor is provided in addition to the CPU. (For example, see Patent Documents 1 to 5)
[0003]
[Patent Document 1]
Japanese Patent Laid-Open No. 11-73314 [Patent Document 2]
JP 9-325759 A [Patent Document 3]
JP-A-9-69047 [Patent Document 4]
Patent No. 2849189 [Patent Document 5]
Japanese Patent No. 2990896 [0004]
[Problems to be solved by the invention]
When the CPU executes an operation, it is necessary to access necessary data and instructions by accessing the storage device. Examples of the storage device include a cache provided in the CPU, a memory and a register provided outside the CPU, and the like. When the CPU accesses the cache in the CPU, the data transfer speed between the CPU and the cache is faster than the data transfer speed between the CPU and the memory. When the CPU accesses a register or memory outside the CPU, the access speed (data transfer speed) is via the bus connecting the CPU and the memory (register). take time.
[0005]
This is because the CPU sends the data request signal and the address where the target data is stored to the memory or register, and sends the next request signal until the data is transferred from the register or memory as a response. This is because it cannot be done.
[0006]
In addition to the CPU, there is a device that uses the bus to transfer data, etc., so that the bus can be used due to the bus becoming busy, etc. Wait time may be required. For this reason, when the amount of computation is very large, the processing speed becomes slow, and when real-time processing is required, it becomes impossible to answer the request, and the current CPU performance is insufficient. there were.
[0007]
As one of countermeasures against this problem, for example, there is DMA (Direct Memory Access). This DMA performs data transfer between memories instead of the CPU, and enables high-speed data transfer without going through the CPU. However, in order to transfer the data transfer to the DMA, the CPU needs to set an address, a transfer size, and the like in the DMA controller, and the above-described problem may occur during the process for the setting. There was sex.
[0008]
The present invention has been made in view of such a situation, and an object thereof is to improve the processing speed of a CPU.
[0009]
[Means for Solving the Problems]
The information processing apparatus of the present invention connects a first storage device accessed only by a CPU, a second storage device accessed by a device different from the CPU and the CPU, and the CPU and the first storage device. And a second bus that connects the CPU and the second storage device, and is used between the CPU and the first storage device via the first bus. The instruction set for the first bus has a fixed length, does not have an Acknowledge as one of response signals, does not have an offset value, and uses an immediate value or a pointer to the first storage device. When accessing the first storage device using the pointer, a predetermined value out of values stored in the pointer of the instruction set for the first bus is used. Masked upper bits are to increase or decrease only the lower bits other than the predetermined upper bits.
[0010]
The instruction set for the first bus may have the same format as the instruction set for the second bus used between the CPU and the second storage device via the second bus. it can.
[0011]
A third bus that connects the first storage device and the second bus may be further provided.
[0012]
The first bus may be connected to a coprocessor port of the CPU.
[0016]
In the information processing apparatus of the present invention, the CPU and the memory dedicated to the CPU are connected by a dedicated bus, and the instruction set in the bus has a fixed latency and does not have an Acknowledge. In executing the processing, it is possible to issue instructions continuously, thereby improving the processing capability of the CPU. In addition, the instruction set has no offset value, and the memory is accessed using an immediate value or a pointer. When accessing using a pointer, a predetermined value out of the values stored in the pointer of the instruction set is used. The upper bits are masked so that only lower bits other than the predetermined upper bits are increased or decreased .
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 shows the configuration of an embodiment of an information processing apparatus to which the present invention is applied. The information processing apparatus 10 illustrated in FIG. 1 is incorporated in, for example, a personal computer. The CPU 11 and the local memory 13 are connected by a local bus interface 12 and a local bus 14 so that data can be exchanged. The CPU 11 and the local bus interface 12 are also connected to the register 16 and the memory 17 by a standard memory bus 15.
[0018]
The local bus interface 12 is connected to the coprocessor port 21 of the CPU 21.
[0019]
Here, the coprocessor port 21 will be described. The coprocessor port 21 is originally provided to connect to the coprocessor. The coprocessor is a processor that complements the CPU 11 and enhances the performance. A typical example is a coprocessor that performs floating-point arithmetic.
[0020]
In this embodiment, a local bus interface 12 that is used independently by the CPU 11 is connected to the coprocessor port 21 provided in the CPU 11 for connecting the coprocessor. The CPU 11 is configured to exchange data with the local memory 13 via the local bus interface 12 and the local bus 14.
[0021]
The local memory 13 is used by the CPU 11 alone. Since the local memory 13 is used by the CPU 11 alone, the local bus 14 is also a bus used by the CPU 11 alone. A local bus interface 12 is provided to control data exchange with the local memory 13 that the CPU 11 uses independently.
[0022]
Although the CPU 11 is used for the local memory 13, the registers 16 and the memory 17 are also used as necessary for devices other than the CPU 11. Data required by devices other than the CPU 11 is transmitted / received to / from the standard memory bus 15, but only data required by the CPU 11 is transmitted / received to / from the local bus 14. In the local bus 14, for example, data is exchanged with 32 bits.
[0023]
The operation when data is exchanged between the CPU 11 and the local memory 13 will be described with reference to the flowchart of FIG. In step S11, the CPU 11 issues a command. The issued instruction is received by the local bus interface 12. In step S12, the local bus interface 12 analyzes the received instruction and stores data to be processed or data at an address to be stored, data to be processed, a read signal (read signal) or a write Convert to signal (Write signal).
[0024]
The converted data and signals are transferred from the local bus interface 12 to the local memory 13 in step S13. In step S14, the local memory 13 generates a response signal as a process corresponding to the received data. The response signal is transmitted (output) to the local bus interface 12.
[0025]
In step S15, the local bus interface 12 converts the response signal from the local memory 13 into data that can be processed by the CPU 11, and outputs the data. In step S16, the CPU 11 receives data from the local bus interface 12, and starts processing based on the received data.
[0026]
In this manner, data exchange (issue of an instruction and processing corresponding to the instruction) is performed between the CPU 11 and the local memory 13. When data is exchanged between the CPU 11 and the local memory 13, that is, when data is exchanged via the local bus 14, for example, between the CPU 11 and the memory 17 via the standard memory bus 15. Compare with the case where data is exchanged.
[0027]
The difference between the exchange of data on the local bus 14 and the exchange of data on the standard memory bus 15 is that the exchange of data via the standard memory bus 15 is performed when the CPU 11 issues a request signal (command), and the signal is sent to the register 16 or the memory. After reaching the storage device 17 or the like, the CPU 11 performs an operation of waiting for reception of data output from the storage device as a response signal. Therefore, the CPU 11 cannot perform other operations until the response signal is received after issuing the request signal.
[0028]
On the other hand, the data transmission / reception protocol (described later) in the local bus 14 has a fixed latency with no Acknowledge as one of the response signals, so the CPU 11 needs to wait for the response signal after issuing the command. There is no. Therefore, it is possible to perform other operations after issuing the request signal. For example, request signals can be issued continuously. As described above, in the data exchange on the local bus 14, the CPU 11 can perform another operation immediately after issuing a signal, and can perform an efficient operation.
[0029]
In step S11, the instruction issued by the CPU 11 to the local memory 13 via the local bus interface 12 and the local bus 14 is to extend the instruction set normally provided in the CPU 11 and use the local memory 13 ( This is a coprocessor instruction format prepared uniquely (to use the local bus 14).
[0030]
By using a coprocessor instruction format prepared independently, a standard instruction is used when accessing a storage device such as the register 16 or the memory 17 that is accessed by devices other than the CPU 11, and the local memory 13 dedicated for the CPU 11 is used. When accessing, it is possible to make a distinction according to the bus to be used, such as using an instruction of a coprocessor instruction format prepared independently. However, since the instruction format is the same as that of a normal instruction, a special operation such as setting to the DMA controller is not necessary.
[0031]
An extension command for transferring data using the local bus 14 will be described. FIG. 3 shows the data structure of LDL (Load-Data-Local) and SDL (Store-Data-Local) instructions, which are extended instructions for exchanging data on the local bus 14. LDL is a read command (read command) from the local memory 13 to the CPU 11, and SDL is a write command (write command) from the CPU 11 to the local memory 13.
[0032]
The instruction is, for example, 32 bits long and has the same configuration as other instructions (instructions output to the standard memory bus 15) provided in the CPU 11. 31 to 26 bits are an opcode, and 20 to 16 bits are a target register, and this part is configured in the same manner as other instructions provided in the CPU 11.
[0033]
The extension instruction for the local bus 14 is configured not to have an offset value. By not having an offset value, it is possible to prevent address calculation. The extension instruction for the local bus 14 is configured to access the local memory 13 using an immediate value (Immediate) or a pointer (Pointer) instead of having an offset value.
[0034]
As shown in FIG. 4, the Lmode data of 25 to 21 bits indicates whether to use an immediate value or a pointer. At the same time, when an immediate value is selected (when Lmode is $ 0 to $ 7), whether or not the immediate value is assigned to the pointer, or when a pointer is selected (when Lmode is $ 8 to $ 13) The user can select whether to increase or decrease the value.
[0035]
For example, with an assembler
LDL $ 10,256 ($ 0) is
CPU.Reg [10] = LocalMem [256]; Pointer [0] = 256;
[0036]
If Pointer [2] is assigned to address 0x4002,
SDL $ 12,0x4002 ($ 12) is
LocalMem [Pointer [2]] = CPU.Reg [12]; Pointer [2]-;
[0037]
In addition, a mask corresponding to one-to-one is prepared for each pointer. An example is shown in FIG. By preparing such a mask, when sending an address using a pointer, it is possible to leave the desired lower bits and increase or decrease the addresses without changing the higher bits.
[0038]
Next, the protocol of the local bus 14 will be described with reference to the timing charts of FIGS. 6 to 9, the first line (HCLK) indicates the waveform of the operation clock signal of the CPU 11, the second line (LDL or SDL) indicates the pipeline stage, and the third line (enable) indicates A read (read) or write (write) enable signal is shown, and a fourth line (address) indicates an address to be read or written (a timing at which the address passes on the local bus 14). (H: read, L: write) indicates a signal instructing reading or writing, and the sixth line (read data [31: 0]) indicates data to be read or written (the data is a local bus). 14).
[0039]
6 to 9, IF indicates Instruction Fetch, RF indicates Register Fetch, EX indicates Execution, DF indicates Data Fetch, and WB indicates Write Back. Further, RA in the fourth line in FIG. 7 indicates Read Address, and RD in the sixth line indicates Read Data. Similarly, WA in the fourth line in FIG. 8 indicates Write Address, and WD in the sixth line indicates Write Data.
[0040]
FIG. 6 shows a case where a read instruction is issued from the CPU 11 to the local memory 13, and the pipeline stage of the LDL instruction which is the instruction is shown in the second line. For the standard memory bus 15 (ordinary bus), after reading the contents of the register included in the instruction and performing processing such as adding an offset, a request is issued in the fourth stage DF.
[0041]
On the other hand, since only the immediate value of the address is included in the instruction to the local bus 14, a request (address of data to be read, etc.) can be issued by the second stage RF. Therefore, even if the LDL instruction is issued after the LDL instruction, no interlock occurs, and continuous data transfer without delay is possible. FIG. 7 shows a state when such an LDL instruction is issued continuously.
[0042]
FIG. 8 shows a case where a write instruction is issued from the CPU 11 to the local memory 13, and the pipeline stage of the SDL instruction as the instruction is shown on the second line. Unlike SDL, SDL issues a request at WB, which is the fifth stage, and writing is completed at that stage. The reason why the request is not issued at an earlier stage is that an interrupt may occur in the fourth stage DF. In such a case, similarly to LDL, even if SDL instructions are issued continuously, data can be transferred without causing an interlock. FIG. 9 shows a state when such SDL instructions are issued continuously.
[0043]
By using such a local bus 14, the CPU 11 can operate with high efficiency. However, data or the like passing through the local bus 14 cannot be detected by a normal debugger. This is because a general debugger accesses a storage device such as the memory 17 through the standard memory bus 15 and the debug signal does not use the coprocessor port 21.
[0044]
In order to solve such a problem, a bypass connecting the standard memory bus 15 and the local bus interface 12 is prepared. Via this debugging bypass, data transfer with the storage device such as the local memory 12 or a local register (not shown) can be performed, and as a result, debugging is also possible.
[0045]
Conventionally, data transfer between the CPU 11 and a storage device such as a memory cannot issue the next signal (it cannot move to the next operation) without waiting for a response signal to the request signal. Several cycles of waiting time were required to access and transfer data.
[0046]
However, by applying the above-described embodiment, by using the local bus 14 instead of the coprocessor, the CPU 11 can transfer data at the same speed as accessing the cache in the CPU. Data can be transferred with high efficiency, and the CPU 11 can operate with high efficiency. For this reason, for example, if an apparatus including the information processing apparatus 10 as shown in FIG. 1 is used as a real-time encoder of an audio signal or a video signal, it has a great influence, without preparing a special processing apparatus separately. High speed operation is possible.
[0047]
In this specification, the steps for describing the program provided by the medium are performed in parallel or individually in accordance with the described order, as well as the processing performed in time series, not necessarily in time series. The process to be executed is also included.
[0048]
【The invention's effect】
According to the information processing apparatus of the present invention, data can be transferred between the CPU and the storage device.
[0049]
Further , according to the information processing apparatus of the present invention, data transfer between the CPU and the storage device can be performed with higher efficiency, and the data processing speed can be improved.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an embodiment of an information processing apparatus to which the present invention is applied.
FIG. 2 is a flowchart for explaining the operation of the information processing apparatus.
FIG. 3 is a diagram for explaining an extension instruction;
FIG. 4 is a diagram for explaining an extension instruction;
FIG. 5 is a diagram for explaining a mask.
FIG. 6 is a diagram for explaining a local bus protocol;
FIG. 7 is a diagram for explaining a local bus protocol;
FIG. 8 is a diagram for explaining a local bus protocol;
FIG. 9 is a diagram for explaining a local bus protocol;
[Explanation of symbols]
10 information processing device, 11 CPU, 12 local bus interface, 13 local memory, 14 local bus, 15 standard memory bus, 16 registers, 17 memory

Claims (4)

CPUのみがアクセスする第1の記憶デバイスと、
前記CPUと前記CPUとは異なるデバイスがアクセスする第2の記憶デバイスと、
前記CPUと前記第1の記憶デバイスを接続する第1のバスと、
前記CPUと前記第2の記憶デバイスを接続する第2のバスと
を備え、
前記第1のバスを介した前記CPUと前記第1の記憶デバイスとの間で用いられる前記第1のバス用の命令セットは、
レイテンシが固定長で、応答信号の1つであるAcknowledgeを有せず、
オフセット値を有せず、即値またはポインタを用いて前記第1の記憶デバイスにアクセスするようにされ、
前記第1の記憶デバイスに、前記ポインタを用いてアクセスする場合、前記第1のバス用の命令セットの前記ポインタに格納されている値のうち、所定の上位ビットにマスクを施し、前記所定の上位ビット以外の下位ビットのみを増減させるようにされている
情報処理装置。
A first storage device accessed only by the CPU;
A second storage device accessed by a device different from the CPU and the CPU;
A first bus connecting the CPU and the first storage device;
A second bus for connecting the CPU and the second storage device;
The instruction set for the first bus used between the CPU and the first storage device via the first bus is:
Latency is fixed length, does not have Acknowledge as one of the response signals ,
Having no offset value and accessing the first storage device using an immediate value or a pointer;
When accessing the first storage device using the pointer, a mask is applied to a predetermined upper bit of the value stored in the pointer of the instruction set for the first bus, and the predetermined storage An information processing apparatus configured to increase or decrease only lower bits other than upper bits .
前記第1のバス用の命令セットは、前記第2のバスを介した前記CPUと前記第2の記憶デバイスの間で用いられる前記第2のバス用の命令セットと同一の形式である
請求項1に記載の情報処理装置。
The instruction set for the first bus has the same format as the instruction set for the second bus used between the CPU and the second storage device via the second bus. The information processing apparatus according to 1.
前記第1の記憶デバイスと前記第2のバスとを接続する第3のバスを
さらに備える請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, further comprising a third bus that connects the first storage device and the second bus.
前記第1のバスは、前記CPUのコプロセッサポートと接続される
請求項1に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the first bus is connected to a coprocessor port of the CPU.
JP2002339323A 2002-11-22 2002-11-22 Information processing device Expired - Fee Related JP4228275B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002339323A JP4228275B2 (en) 2002-11-22 2002-11-22 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002339323A JP4228275B2 (en) 2002-11-22 2002-11-22 Information processing device

Publications (2)

Publication Number Publication Date
JP2004171458A JP2004171458A (en) 2004-06-17
JP4228275B2 true JP4228275B2 (en) 2009-02-25

Family

ID=32702296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002339323A Expired - Fee Related JP4228275B2 (en) 2002-11-22 2002-11-22 Information processing device

Country Status (1)

Country Link
JP (1) JP4228275B2 (en)

Also Published As

Publication number Publication date
JP2004171458A (en) 2004-06-17

Similar Documents

Publication Publication Date Title
JP2020191122A (en) Multicore bus architecture with non-blocking high performance transaction credit system
US6701405B1 (en) DMA handshake protocol
JP5479020B2 (en) Using completer knowledge about memory region ordering requests to modify transaction attributes
US20130028261A1 (en) System-on-chip-based network protocol in consideration of network efficiency
JP2012009048A (en) Method and device for transmitting memory prefetch command on bus
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
US6738837B1 (en) Digital system with split transaction memory access
JP3803196B2 (en) Information processing apparatus, information processing method, and recording medium
US7774513B2 (en) DMA circuit and computer system
JP4228275B2 (en) Information processing device
JP2754825B2 (en) Microprocessor
US6647450B1 (en) Multiprocessor computer systems with command FIFO buffer at each target device
JP2568017B2 (en) Microprocessor and data processing system using the same
JP2004288147A (en) Xip system to serial memory and its method
JP2002366509A (en) Direct memory access controller and its access control method
KR0145932B1 (en) Dma controller in high speed computer system
KR100606698B1 (en) Interfacing apparatus
CN115658601A (en) Multi-core processor system and control method thereof
JP2008198119A (en) Data transfer device, data transfer system, and data transfer method
JP4319788B2 (en) Microcomputer
JPH0445067Y2 (en)
JP2003122701A (en) Interface and input/output device
JPS59133629A (en) Dma transfer control system
JP2002244990A (en) Bus interface and data transferring method
JPS6068462A (en) Multi-processor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees