JP2009237980A - マルチポートメモリおよび情報処理システム - Google Patents
マルチポートメモリおよび情報処理システム Download PDFInfo
- Publication number
- JP2009237980A JP2009237980A JP2008084260A JP2008084260A JP2009237980A JP 2009237980 A JP2009237980 A JP 2009237980A JP 2008084260 A JP2008084260 A JP 2008084260A JP 2008084260 A JP2008084260 A JP 2008084260A JP 2009237980 A JP2009237980 A JP 2009237980A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- port
- memory
- processing device
- request
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 466
- 230000015654 memory Effects 0.000 title claims abstract description 445
- 101100371495 Colletotrichum gloeosporioides UBC1 gene Proteins 0.000 abstract description 203
- 238000004891 communication Methods 0.000 abstract description 20
- 101100042610 Arabidopsis thaliana SIGB gene Proteins 0.000 description 42
- 101100294408 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MOT2 gene Proteins 0.000 description 42
- 101150117326 sigA gene Proteins 0.000 description 42
- 101100434411 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH1 gene Proteins 0.000 description 14
- 101150102866 adc1 gene Proteins 0.000 description 14
- 101150047137 ABF1 gene Proteins 0.000 description 13
- 101100025200 Homo sapiens MSC gene Proteins 0.000 description 13
- 102100038169 Musculin Human genes 0.000 description 13
- 101100438011 Oryza sativa subsp. japonica BZIP12 gene Proteins 0.000 description 13
- 238000000034 method Methods 0.000 description 11
- 150000002009 diols Chemical class 0.000 description 9
- 102100024348 Beta-adducin Human genes 0.000 description 8
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 102100024099 Disks large homolog 1 Human genes 0.000 description 2
- 101001053984 Homo sapiens Disks large homolog 1 Proteins 0.000 description 2
- 101000951365 Homo sapiens Disks large-associated protein 5 Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100034033 Alpha-adducin Human genes 0.000 description 1
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 1
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
【課題】複数の情報処理装置間のデータ通信を高速化するマルチポートメモリを実現して、高速で使い勝手の良い情報処理システムを提供する。
【解決手段】情報処理システムにおいて、複数の情報処理装置CHIP0、CHIP1と、複数のポートを持つマルチポートメモリMPMEM0とを接続させ、マルチポートメモリMPMEM0内の記憶領域に対し、あるポートが占有する記憶領域や、複数のポートが共有する記憶領域を変更できるようにする。その際、各ポートからのリクエストが発生した直後に、他のポートから、そのリクエストのステータスを出力すると良い。
【選択図】図1
【解決手段】情報処理システムにおいて、複数の情報処理装置CHIP0、CHIP1と、複数のポートを持つマルチポートメモリMPMEM0とを接続させ、マルチポートメモリMPMEM0内の記憶領域に対し、あるポートが占有する記憶領域や、複数のポートが共有する記憶領域を変更できるようにする。その際、各ポートからのリクエストが発生した直後に、他のポートから、そのリクエストのステータスを出力すると良い。
【選択図】図1
Description
本発明は、複数のポートを持つマルチポートメモリおよびマルチポートメモリの制御方法に関する。
従来、2ポートを持つメモリセルから構成されるメモリアレイを装備する2ポートメモリがある。2ポートメモリでは、双方のポートより同時に同一メモリセルからのデータ読み出しが可能とされている(例えば、非特許文献1参照)。また、2つのポートを持つ2ポートDRAMもある(例えば、特許文献1参照)。
特開2007−35039号公報
IDT70T3539Mデータシート、Integrated Device Technology,Inc.、2004年5月
本願発明者等は、本願に先立って2ポートSRAMのポート間のデータ通信方法について検討を行った。
様々な情報処理装置において、情報処理装置を構成する複数のLSI間のデータ通信には2ポートSRAMが利用されている。2ポートSRAMのAポート(A−PRT)とBポート(B−PRT)間のデータ通信方法を以下に示す。なお、INTA、INTBは各ポートに対応し、メールボックス(Mail Box)に情報が書き込まれたことを知らせる信号である。
(1)A−PRT:A−PRTからデータ書き込みの開始と、開始アドレスをMail Boxへ書き込む。INTBがLowになる。
(2)B−PRT:INTBがLowになったことで、Mail Boxへ情報が書き込まれたことを知る。その後、B−PRTからMail Box内の情報を読み、A−PRTからデータが書き込まれることと、その開始アドレスを知る。INTBはHighとなる。
(3)A−PRT:A−PRTからデータを書き込み、終了したらデータ書き込み終了と、最終アドレスをMail Boxへ書き込む。INTBがLowになる。
(4)B−PRT:INTBがLowになったことで、Mail Boxへ情報が書き込まれたことを知る。その後、B−PRTからMail Box内の情報を読み、A−PRTからのデータ書き込みが終了し、さらにその終了アドレスを知る。INTBはHighとなる。
(5)B−PRT:B−PRTからデータ読み出しの開始と、開始アドレスをMail Boxへ書き込む。INTAがLowになる。
(6)A−PRT:INTAがLowになったことで、Mail Boxへ情報が書き込まれたことを知る。その後、A−PRTからMail Box内の情報を読み、B−PRTからデータが読み出されることと、その開始アドレスを知る。INTAはHighとなる。
(7)B−PRT:B−PRTからデータを読み出し、終了したらデータ読み出し終了と、最終アドレスをMail Boxへ書き込む。INTAがLowになる。
(8)A−PRT:INTAがLowになったことで、Mail Boxへ情報が書き込まれたことを知る。その後、A−PRTからMail Box内の情報を読み、B−PRTからのデータ読み出しが終了し、さらにその終了アドレスを知る。INTAはHighとなる。
このように、2ポートSRAMのAポートとBポート間のデータ通信には、いったんメールボックスへの書き込みや読み出しが行われる。いわゆるハンドシェーク方式にてデータ通信が行われる。
このため、AポートとBポート間のデータ通信が遅く、情報処理システムの高速化には対応できないことが判明した。
そこで、本発明の目的の一つは、複数の情報処理装置間のデータ通信を高速化するマルチポートメモリを実現して、高速で使い勝手の良い情報処理システムを提供することである。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、代表的なものの概要は、複数の情報処理装置と複数のポートを持つマルチポートメモリとを接続させ、マルチポートメモリ内の記憶領域に対し、あるポートが占有する記憶領域や、複数のポートが共有する記憶領域を変更できるようにする。その際、各ポートからのリクエストが発生した直後に、他のポートから、そのリクエストのステータスを出力すると良い。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、代表的なものによって得られる効果は、複数の情報処理装置間のデータ通信を高速化するマルチポートメモリを実現して、高速で使い勝手の良い情報処理システムを提供することができる。
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。実施の形態において各ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。
(第1の実施の形態)
本発明を適用した第1の実施の形態である情報処理システムについて、図1〜図13を用いて説明する。
本発明を適用した第1の実施の形態である情報処理システムについて、図1〜図13を用いて説明する。
図1は本発明を適用した第1の実施の形態である、情報処理装置CHIP0とCHIP1と、マルチポートメモリMPMEM0とから構成される情報処理システムを示したものである。以下におのおのについて説明する。
情報処理装置CHIP0は、情報処理回路CPU00、CPU01、CPU02、CPU03と、メモリ制御回路MCON0から構成されている。情報処理装置CHIP1は、情報処理回路CPU10、CPU11、CPU12、CPU13と、メモリ制御回路MCON1から構成されている。
情報処理装置CHIP0およびCHIP1は、それぞれのメモリ制御回路MCON0およびMCON1を介して、マルチポートメモリMPMEM0へ接続され、互いにデータ通信を行う。
マルチポートメモリMPMEM0は、制御回路PCON0およびPCON1、初期設定回路INIT、メモリマネージメント回路MMU、タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスターレジスタMS−RG、ステータスレジスタST−RG、メモリアレイMA0、調停回路ARBITORから構成される。
制御回路PCON0は、アドレスバッファABF0、データバッファDBF0および制御回路LG0から構成される。制御回路PCON1は、アドレスバッファABF1、データバッファDBF1および制御回路LG1から構成される。
メモリアレイMA0は、特に限定しないが記憶領域AREA0〜AREA7から構成される。メモリアレイMA0は、揮発性メモリおよび不揮発性メモリのどちらでも良い。
信号ADC0およびADC1は、命令およびアドレス信号である。信号SIG0およびSIG1はステータス通達信号である。信号I/O0およびI/O1はデータ入出力信号である。
情報処理装置CHIP0が、ポートPRT0を介してマルチポートメモリMPMEM0のメモリアレイMA0へ保持されているデータを読み出す場合は、情報処理装置CHIP0が、信号ADC0を通じて読み出し命令READ0およびアドレスADD0をマルチポートメモリMPMEM0へ出力する。
情報処理装置CHIP1が、ポートPRT1を介してマルチポートメモリMPMEM0のメモリアレイMA0へ保持されているデータを読み出す場合は、情報処理装置CHIP1が、信号ADC1を通じて読み出し命令READ1およびアドレスADD1をマルチポートメモリMPMEM0へ出力する。
初期設定回路INITは、マルチポートメモリMPMEM0へ電源が投入されると、マルチポートメモリMPMEM0内の全回路を初期設定する。
メモリマネージメント回路MMUでは、タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスターレジスタMS−RG、ステータスレジスタST−RG、メモリアレイMA0のアドレス空間を設定する。
タイミングレジスタTM−RGは、マルチポートメモリMPMEM0内の読み出しおよび書き込みリクエストの処理が終わるまでの時間などを設定するレジスタである。
ステータス通達信号レジスタSIG−RGは、ステータス通達信号SIG0およびSIG1を送信するタイミングを設計するレジスタである。
シェアドエリアレジスタSA−RGは、メモリアレイMA0内の記憶領域AREA0〜AREA7を、CHIP0およびCHIP1の共有領域と、CHIP0の占有領域と、CHIP1の占有領域とに設定するためのレジスタである。
マスターレジスタMS−RGは、ポートPRT0およびポートPRT1からのリクエストが同時に共有領域へ発した際に、どちらのポートからのリクエストを優先させるかを決定するレジスタである。
ステータスレジスタST−RGは、CHIP0からポート0を介してマルチポートメモリMPMEM0へ入力したリクエストの状態を保持するレジスタである。
調停回路ARBITORは、CHIP0からポート0を介してマルチポートメモリMPMEM0へ入力したリクエストと、CHIP1からポート1を介してマルチポートメモリMPMEM0へ入力したリクエストの調停を行う回路である。
タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RGは、シェアドエリアレジスタSA−RG、マスターレジスタMS−RGおよびステータスレジスタST−RG内の設定値は、情報処理装置CHIP0および情報処理装置CHIP1によって変更される。
情報処理装置CHIP0が、ポートPRT0を介してマルチポートメモリMPMEM0の各レジスタへ保持されている設定値を読み出す場合は、情報処理装置CHIP0が、信号ADC0を通じて読み出し命令READおよび各レジスタのアドレス値ADDをマルチポートメモリMPMEM0へ出力する。
また、情報処理装置CHIP0が、ポートPRT0を介してマルチポートメモリMPMEM0の各レジスタへ保持されている設定値を変更する場合は、情報処理装置CHIP0が、信号ADC0を通じて書き込み命令WRITEおよび各レジスタのアドレス値ADDを、信号I/O0を通じて新しい設定データをマルチポートメモリMPMEM0へ出力する。
情報処理装置CHIP1が、ポートPRT1を介してマルチポートメモリMPMEM0の各レジスタへ保持されている設定値を読み出す場合は、情報処理装置CHIP1が、信号ADC1を通じて読み出し命令READおよび各レジスタのアドレス値ADDをマルチポートメモリMPMEM0へ出力する。
また、情報処理装置CHIP1が、ポートPRT1を介してマルチポートメモリMPMEM0の各レジスタへ保持されている設定値を変更する場合は、情報処理装置CHIP1が、信号ADC1を通じて書き込み命令WRITEおよび各レジスタのアドレス値ADDを、信号I/O1を通じて新しい設定データをマルチポートメモリMPMEM0へ出力する。
以下に本情報処理システムの動作を説明する。
<電源投入直後の動作説明>
まず、電源投入直後の本情報処理システムの動作について説明する。
まず、電源投入直後の本情報処理システムの動作について説明する。
マルチポートメモリMPMEM0へ電源が投入されると、初期設定回路INITはマルチポートメモリMPMEM0内の全回路を初期化する。
メモリマネージメント回路MMUは、初期化され、マルチポートメモリMPMEM0の初期アドレス空間が設定される。その後、メモリマネージメント回路MMU内のコマンドレジスタREGへ、メモリマネージメントMMU変更命令が入力した時に変更される。
タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスターレジスタMS−RGおよびステータスレジスタST−RGの設定値は初期設定値へ設定される。
次に、情報処理システムの要求を満たすように、情報処理装置CHIP0が、メモリマネージメント回路MMU、タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスタースレジスタMS−RGおよびステータスレジスタST−RGの設定値を変更する。
このように、電源投入直後に、情報処理システムの要求を満たすように、メモリマネージメント回路MMUや各レジスタを設定することができるため、利用される情報処理システムの要求に応じてマルチポートメモリMPMEM0の仕様を柔軟に変更できる。
<通常動作の説明>
電源投入時のパワーオンシーケンスが終了した後の情報処理装置CHIP0およびCHIP1とマルチポートメモリMPMEM0との間のデータ通信について説明する。
電源投入時のパワーオンシーケンスが終了した後の情報処理装置CHIP0およびCHIP1とマルチポートメモリMPMEM0との間のデータ通信について説明する。
特に限定しないが、シェアドエリアレジスタSA−RGによって、メモリアレイMA0内の記憶領域AREA0〜AREA7の中で、記憶領域AREA0とAREA1は情報処理装置CHIP0の占有領域として、AREA2とAREA3は情報処理装置CHIP1の占有領域として、AREA4からAREA7は情報処理装置CHIP0とCHIP1の共有領域として設定された場合の、マルチポートメモリMPMEM0からのデータ読み出し動作について説明する。
また、特に限定しないがマスターレジスタMS−RGには、ポートPRT0およびポートPRT1からのリクエストが同時に共有領域へ発した場合に、ポートPRT0からのリクエストを優先させるように設定されている。
まず、情報処理装置CHIP0の占有領域である記憶領域AREA0からの読み出し動作について説明する。
情報処理装置CHIP0から、信号ADC0を通じて読み出し命令READおよびアドレス値ADD0がマルチポートメモリMPMEM0へ入力される。
読み出し命令READおよびアドレス値ADDは、アドレスバッファABF0へ入力する。制御回路LG0は、アドレスバッファABF0内の読み出し命令READおよびアドレス値ADDを読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADDは情報処理装置CHIP0の占有領域である記憶領域AREA0への読み出しアドレスであることを認識し、記憶領域AREA0に保持されているデータを読み出す。
記憶領域AREA0から読み出されたデータはデータバッファDBF0および入出力信号I/O0を通じて情報処理装置CHIP0へ送信される。
次に、情報処理装置CHIP0の占有領域である記憶領域AREA0への書き込み動作について説明する。
情報処理装置CHIP0から、信号ADC0を通じて書き込み命令WRITEおよびアドレス値ADD0が、入出力信号I/O0から書き込みデータが、マルチポートメモリMPMEM0へ入力される。
書き込み命令WRITEおよびアドレス値ADDは、アドレスバッファABF0へ入力され、書き込みデータはデータバッファDBF0へ入力される。
制御回路LG0は、アドレスバッファABF0内の書き込み命令WRITEおよびアドレス値ADD0およびデータバッファDBF0の書き込みデータを読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD0は情報処理装置CHIP0の占有領域である記憶領域AREA0への書き込みアドレスであることを認識し、記憶領域AREA0へデータを書き込む。
次に、情報処理装置CHIP1の占有領域である記憶領域AREA2からの読み出し動作について説明する。
情報処理装置CHIP1から、信号ADC1を通じて読み出し命令READおよびアドレス値ADD2がマルチポートメモリMPMEM0へ入力される。
読み出し命令READおよびアドレス値ADDは、アドレスバッファABF1へ入力する。制御回路LG1は、アドレスバッファABF1内の読み出し命令READおよびアドレス値ADD2を読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD2は情報処理装置CHIP1の占有領域である記憶領域AREA2への読み出しアドレスであることを認識し、記憶領域AREA2に保持されているデータを読み出す。
記憶領域AREA2から読み出されたデータはデータバッファDBF1および入出力信号I/O1を通じて情報処理装置CHIP1へ送信される。
次に、情報処理装置CHIP1の占有領域である記憶領域AREA2への書き込み動作について説明する。
情報処理装置CHIP1から、信号ADC1を通じて書き込み命令WRITEおよびアドレス値ADD2が、入出力信号I/O1から書き込みデータが、マルチポートメモリMPMEM0へ入力される。
書き込み命令WRITEおよびアドレス値ADDは、アドレスバッファABF1へ入力され、書き込みデータはデータバッファDBF1へ入力される。
制御回路LG1は、アドレスバッファABF1内の書き込み命令WRITEおよびアドレス値ADD2およびデータバッファDBF1の書き込みデータを読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD2は情報処理装置CHIP1の占有領域である記憶領域AREA2への書き込みアドレスであることを認識し、記憶領域AREA2へデータを書き込む。
次に、情報処理装置CHIP0から情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA7へのリクエストが発生した場合の動作について説明する。
情報処理装置CHIP0から、信号ADC0を通じて読み出し命令READ7およびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
読み出し命令READおよびアドレス値ADD7は、アドレスバッファABF0へ入力する。制御回路LG0は、アドレスバッファABF0内の読み出し命令READおよびアドレス値ADD7を読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD7は情報処理装置CHIP0およびCHIP1の共有領域である記憶領域AREA7への読み出しアドレスであることを認識し、記憶領域AREA7に保持されているデータを読み出す。
記憶領域AREA7から読み出されたデータはデータバッファDBF0および入出力信号I/O0を通じて情報処理装置CHIP0へ送信される。
さらに、制御回路LG0は、記憶領域AREA7へ読み出し命令が発生したことを、制御回路LG1およびタイミングレジスタTM−RGへ伝えると同時に、ステータスレジスタST−RGへ書き込む。
その後、制御回路LG1は、信号SIG1をHighとし、入出力信号I/O1より、記憶領域AREA7に対してデータ読み出しが発生していること、さらにこのデータ読み出しが、どの程度の期間、実行されるかを示すステータス信号を出力する。
これにより、情報処理装置CHIP1は、情報処理装置CHIP0からのアクセスが、どの記憶領域に発生しているかを、直ちに知ることができる。
次に、情報処理装置CHIP0から情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA7へのデータの書き込みが発生した場合の動作について説明する。
情報処理装置CHIP0から、信号ADC0を通じて書き込み命令READ7およびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
書き込み命令WRITEおよびアドレス値ADD7はアドレスバッファABF0へ、書き込みデータはデータバッファDBF0へ入力される。
制御回路LG0は、アドレスバッファABF0内の書き込み命令WRITEおよびアドレス値ADD7を、データバッファDBF0から書き込みデータを読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD7は情報処理装置CHIP0およびCHIP1の共有領域である記憶領域AREA7への書き込みアドレスであることを認識し、記憶領域AREA7へデータを書き込む。
さらに、制御回路LG0は、記憶領域AREA7へ読み出し命令が発生したことを、制御回路LG1およびタイミングレジスタTM−RGへ伝えると同時に、ステータスレジスタST−RGへ書き込む。
その後、制御回路LG1は、信号SIG1をHighとし、入出力信号I/O1より、記憶領域AREA7に対して書き込みが行われていることと、そのデータ書き込みが、どの程度の期間、実行されるかを示すステータス信号を出力する。
これにより、情報処理装置CHIP1は、情報処理装置CHIP0からのアクセスが、どの記憶領域に発生しているかを、直ちに知ることができる。
次に、情報処理装置CHIP1から情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA7への読み出しリクエストが発生した場合の動作について説明する。
情報処理装置CHIP1から、信号ADC1を通じて読み出し命令READ7およびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
読み出し命令READおよびアドレス値ADD7は、アドレスバッファABF1へ入力する。制御回路LG1は、アドレスバッファABF1内の読み出し命令READおよびアドレス値ADD7を読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD7は情報処理装置CHIP0およびCHIP1の共有領域である記憶領域AREA7への読み出しアドレスであることを認識し、記憶領域AREA7に保持されているデータを読み出す。
記憶領域AREA7から読み出されたデータはデータバッファDBF1および入出力信号I/O1を通じて情報処理装置CHIP1へ送信される。
さらに、制御回路LG1は、記憶領域AREA7へ読み出し命令が発生したことを、制御回路LG0およびタイミングレジスタTM−RGへ伝えると同時に、ステータスレジスタST−RGへ書き込む。
その後、制御回路LG0は、信号SIG0をHighとし、入出力信号I/O0より、記憶領域AREA7に対してデータ読み出しが発生していること、さらにこのデータ読み出しが、どの程度の期間、実行されるかを示すステータス信号を出力する。
これにより、情報処理装置CHIP0は、情報処理装置CHIP0からのアクセスが、どの記憶領域に発生しているかを、直ちに知ることができる。
次に、情報処理装置CHIP1から情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA7へのデータの書き込みが発生した場合の動作について説明する。
情報処理装置CHIP1から、信号ADC1を通じて書き込み命令WRITEおよびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
書き込み命令WRITEおよびアドレス値ADD7はアドレスバッファABF1へ、書き込みデータはデータバッファDBF1へ入力される。
制御回路LG1は、アドレスバッファABF1内の書き込み命令WRITEおよびアドレス値ADD7を、データバッファDBF1から書き込みデータを読み出し、メモリマネージメント回路MMUによって設定されたアドレス空間およびシェアドエリアレジスタSA−RGの設定値によって、入力したアドレス値ADD7は情報処理装置CHIP0およびCHIP1の共有領域である記憶領域AREA7への書き込みアドレスであることを認識し、記憶領域AREA7へデータを書き込む。
さらに、制御回路LG1は、記憶領域AREA7へ読み出し命令が発生したことを、制御回路LG0およびタイミングレジスタTM−RGへ伝えると同時に、ステータスレジスタST−RGへ書き込む。
その後、制御回路LG0は、信号SIG0をHighとし、入出力信号I/O0より、記憶領域AREA7に対して書き込みが行われていることと、そのデータ書き込みが、どの程度の期間、実行されるかを示すステータス信号を出力する。
これにより、情報処理装置CHIP0は、情報処理装置CHIP1からのアクセスが、どの記憶領域に発生しているかを、直ちに知ることができる。
次に、共有領域である記憶領域AREA7へ、情報処理装置CHIP0からデータの書き込みリクエストが、CHIP1からデータの読み出しリクエストが、同時に、発生した場合の動作について説明する。
情報処理装置CHIP0から、信号ADC0を通じて書き込み命令WRITEおよびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
同時に、情報処理装置CHIP1から、信号ADC1を通じて読み出し命令READおよびアドレス値ADD7がマルチポートメモリMPMEM0へ入力される。
書き込み命令WRITEおよびアドレス値ADD7は、アドレスバッファABF0へ入力する。制御回路LG0は、アドレスバッファABF0内の書き込み命令WRITEおよびアドレス値ADD7を読み出す。
読み出し命令READおよびアドレス値ADD7はアドレスバッファABF1へ入力される。制御回路LG1は、アドレスバッファABF1内の読み出し命令READおよびアドレス値ADD7を読み出す。
マスターレジスタMS−RGの設定によって、情報処理装置CHIP0からの書き込みリクエストが優先されるため、制御回路LG0は、記憶領域AREA7へデータを書き込む。
さらに、制御回路LG0は、記憶領域AREA7へ書き込み命令が発生したことを、制御回路LG1およびタイミングレジスタTM−RGへ伝えると同時に、ステータスレジスタST−RGへ書き込む。
その後、制御回路LG1は、信号SIG1をHighとし、入出力信号I/O1より、記憶領域AREA7に対してデータ読み出しが発生していること、さらにこのデータ読み出しの終了時間(同一記憶領域に次のコマンドを発行する事が可能になるまでの時間)を示すステータス信号を出力する。
これにより、情報処理装置CHIP1は、自らの読み出しリクエストが処理できず、情報処理装置CHIP0からの読み出しリクエストが実行されていることを、直ちに知ることができる。さらに、情報処理装置CHIP1は情報処理装置CHIP0からの書き込みリクエストの終了時間を、直ちに知ることができる。
このため、情報処理装置CHIP1は、情報処理装置CHIP0からの書き込みリクエストの終了時間が終了した後、直ちに、再度、読み出しリクエストをマルチポートメモリMPMEM0へ発行できる。
以上説明したように、シェアドエリアレジスタSA−RGによって、システムにあわせてメモリアレイMA0内の記憶領域AREA0〜AREA7を占有領域と共有領域とに柔軟に設定できる。
さらに、信号SIG0およびSIG1と、入出力信号I/O0およびI/O1からステータス信号を出力することにより、マルチポートメモリMPMEM0にて、現在、実行されているリクエストの種類と領域および期間を即座に知ることができ、情報処理装置CHIP0および情報処理装置CHIP1間のデータ通信を高速に行うことができる。
<メモリマップの説明>
図2は、シェアドエリアレジスタSA−RGおよびメモリマネージメント回路MMUによって設定されるマルチポートメモリMPMEM0にてメモリマップの一例を示したものである。
図2は、シェアドエリアレジスタSA−RGおよびメモリマネージメント回路MMUによって設定されるマルチポートメモリMPMEM0にてメモリマップの一例を示したものである。
特に限定しないが、マルチポートメモリMPMEM0はスタティックランダムアクセスメモリセルを利用したスタティックランダムアクセスメモリであり、読み出し時間が15ns程度である。
特に限定しないが、マルチポートメモリMPMEM0は、レジスタ領域REG−AREA、情報処理装置CHIP0の占有領域CHIP0−AREA、情報処理装置CHIP1の占有領域CHIP1−AREA、情報処理装置CHIP0と情報処理装置CHIP1の共有領域SHARE−AREAに分かれている。
レジスタ領域REG−AREAは、ステータスレジスタST−RG、マスターレジスタMS−RG、シェアドエリアレジスタSA−RG、ステータス通達信号レジスタSIG−RG、タイミングレジスタTM−RGに分かれている。
占有領域CHIP0−AREAは記憶領域AREA0からAREA1に割り当てられており、占有領域CHIP1−AREAは記憶領域AREA2からAREA3に割り当てられており、共有領域SHARE−AREAは記憶領域AREA4からAREA7に割り当てられている。
以上説明したようにシェアドエリアレジスタSA−RGおよびメモリマネージメント回路MMUによって、システムにあわせてメモリアレイMA0内の記憶領域AREA0〜AREA7を占有領域と共有領域とに柔軟に設定できる。
<電源投入時の初期シーケンス>
図3は、情報処理装置CHIP0と情報処理装置CHIP1およびマルチポートメモリMPMEM0から構成される情報処理システムの電源投入時の初期シーケンスを示す。
図3は、情報処理装置CHIP0と情報処理装置CHIP1およびマルチポートメモリMPMEM0から構成される情報処理システムの電源投入時の初期シーケンスを示す。
T1の期間(PwON)でマルチポートメモリMPMEM0へ電源投入を行い、T2の期間(Reset)でリセットを行う。リセットの方法は特に限定しないが、それぞれの内蔵回路で自動的にリセットを行う方法でも、あるいは、外部にリセット端子を持ち、このリセット信号によってリセット動作を行うこととしても良い。
このT2の期間(Reset)では、初期設定回路INITは、メモリマネージメント回路MMU、タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスターレジスタMS−RGおよびステータスレジスタST−RGを初期化する。
この初期化によってメモリマネージメント回路MMUにはマルチポートメモリMPMEM0の初期アドレス空間が設定され、タイミングレジスタTM−RG、ステータス通達信号レジスタSIG−RG、シェアドエリアレジスタSA−RG、マスターレジスタMS−RGおよびステータスレジスタST−RGには初期設定値が設定される。
リセットが解除されたT3の期間(ReqSet)では、特に限定しないが情報処理装置CHIP0が各レジスタへデータ書き込みを行いレジスタの初期設定値を変更することができる。
T3の期間が終了した後のT4の期間(Idle)以降は、マルチポートメモリMPMEM0はアイドル状態となり、情報処理装置CHIP0および情報処理装置CHIP1からのリクエストを待つ状態となる。
<ステータス情報出力の説明>
図4(a)は、情報処理装置CHIP0からマルチポートメモリMPMEM0へリクエストが生じた場合の、マルチポートメモリMPMEM0の信号SIG1の出力と入出力信号I/O1からのステータス情報出力に関する一例を示すフローチャートである。
図4(a)は、情報処理装置CHIP0からマルチポートメモリMPMEM0へリクエストが生じた場合の、マルチポートメモリMPMEM0の信号SIG1の出力と入出力信号I/O1からのステータス情報出力に関する一例を示すフローチャートである。
図4(b)は、情報処理装置CHIP1からマルチポートメモリMPMEM0へリクエストが生じた場合の、マルチポートメモリMPMEM0の信号SIG0の出力と入出力信号I/O0からのステータス情報出力に関する一例を示すフローチャートである。
まず、図4(a)について説明する。情報処理装置CHIP0からマルチポートメモリMPMEM0へリクエストP0Reqが入力した場合(Step1)、マルチポートメモリMPMEM0は、リクエストP0Reqが共有領域へのリクエストか否かをチェックする(Step2)。リクエストP0Reqが共有領域へのリクエストの場合は、信号SIG1はHighとなり、情報処理装置CHIP0からリクエストが実行されていることを情報処理装置CHIP1へ通達する(Step3)。次に、リクエストP0Reqに関するステータス信号(命令、領域、終了時間)を入出力信号I/O1から出力する(Step4)。その後、信号SIG1はLowとなる(Step5)。
リクエストP0Reqが共有領域へのリクエストではない場合は、信号SIG1はLowのままで、入出力信号I/O1からステータス信号は出力されない(Step6)。
次に、図4(b)について説明する。情報処理装置CHIP1からマルチポートメモリMPMEM0へリクエストP1Reqが入力した場合(Step1)、マルチポートメモリMPMEM0は、リクエストP1Reqが共有領域へのリクエストか否かをチェックする(Step2)。リクエストP1Reqが共有領域へのリクエストの場合は、信号SIG0はHighとなり、情報処理装置CHIP1からリクエストが実行されていることを情報処理装置CHIP0へ通達する(Step3)。次に、リクエストP1Reqに関するステータス信号(命令、領域、終了時間)を入出力信号I/O0から出力する(Step4)。その後、信号SIG0はLowとなる(Step5)。
リクエストP1Reqが共有領域へのリクエストではない場合は、信号SIG0はLowのままで、入出力信号I/O0からステータス信号は出力されない(Step6)。
<アクセス調停の説明>
図5は、情報処理装置CHIP0および情報処理装置CHIP1からマルチポートメモリMPMEM0へリクエストが生じた場合のマルチポートメモリMPMEM0の動作の一例を示すフローチャートである。
図5は、情報処理装置CHIP0および情報処理装置CHIP1からマルチポートメモリMPMEM0へリクエストが生じた場合のマルチポートメモリMPMEM0の動作の一例を示すフローチャートである。
情報処理装置CHIP0からマルチポートメモリMPMEM0へリクエストP0Reqが入力した場合(Step1)、マルチポートメモリMPMEM0は、情報処理装置CHIP1からのリクエストP1Reqがあるかどうかをチェックする(Step2)。リクエストP1ReqがなければリクエストP0Reqを実行する(Step3)。リクエストP1Reqがあれば、リクエストP0ReqとリクエストP1Reqが同一記憶エリアへのリクエストかをチェックする(Step4)。同一記憶エリアでなければリクエストP0ReqとリクエストP1Reqは同時に実行される(Step10)。同一記憶エリアであれば、リクエストP0ReqとリクエストP1Reqの優先順位をチェックする(Step5)。リクエストP0Reqの優先順位が高ければ、リクエストP0Reqを実行し(Step6)、その後リクエストP1Reqを実行する(Step7)。クエストP1Reqの優先順位が高ければ、リクエストP1Reqを実行し(Step8)、その後リクエストP0Reqを実行する(Step9)。
<レジスタの説明>
図6〜図9は、マルチポートメモリMPMEM0内のレジスタの設定値の一例を示す。
図6〜図9は、マルチポートメモリMPMEM0内のレジスタの設定値の一例を示す。
<タイミングレジスタTM−RGの説明>
図6にはタイミングレジスタTM−RGの一例を示す。
図6にはタイミングレジスタTM−RGの一例を示す。
タイミングレジスタTM−RGは、特に限定しないがTM−RG[15:0]の16ビットで構成されている。
TM−RG[7:0]はデータ読み出しが開始され次のリクエストが入力可能となるまでの最小サイクル時間を示し、特に限定しないが8サイクルに設定されている。
TM−RG[15:8]はデータ書き込みが開始され次のリクエストが入力可能となるまでの最小サイクル時間を示し、特に限定しないが8サイクルに設定されている。
<ステータス通達信号レジスタSIG−RGの説明>
図6にはステータス通達信号レジスタSIG−RGの一例を示す。
図6にはステータス通達信号レジスタSIG−RGの一例を示す。
ステータス通達信号レジスタSIG−RGは、特に限定しないがSIG−RG[1:0]の2ビットで構成されている。
SIG−RG[0]は共有記憶領域へのデータ読み出しに関するビットであり、1に設定されている。この設定は、情報処理装置CHIP0からの読み出しリクエストが共有領域へ発生した際に、信号SIG1がHighになり、情報処理装置CHIP1からの読み出しリクエストが共有領域へ発生した際に、信号SIG0がHighになることを示す。
SIG−RG[1]は共有記憶領域へのデータ書き込みに関するビットであり、1に設定されている。この設定は、情報処理装置CHIP0からの書き込みリクエストが共有領域へ発生した際に、信号SIG1がHighになり、情報処理装置CHIP1からの読み出しリクエストが共有領域へ発生した際に、信号SIG0がHighになることを示す。
<シェアドエリアレジスタSA−RGの説明>
図7にはシェアドエリアレジスタSA−RGの一例を示す。
図7にはシェアドエリアレジスタSA−RGの一例を示す。
シェアドエリアレジスタSA−RGは、特に限定しないがSA−RG[23:0]の24ビットで構成されている。
SA−RG[7:0]は共有記憶領域を設定するためのビットであり、SA−RG[15:8]は情報処理装置CHIP0の占有記憶領域を設定するためのビットであり、SA−RG[23:16]は情報処理装置CHIP1の占有記憶領域を設定するためのビットである。
SA−RG[7:0]の各ビットは記憶領域AREA7から0に対応しており、例えばSA−RG[7]が1の場合は記憶領域AREA7が共有領域となる。
SA−RG[15:8]の各ビットは記憶領域AREA7から0に対応しており、例えばSA−RG[8]が1の場合は記憶領域AREA0が情報処理装置CHIP0の占有領域となる。
SA−RG[23:16]の各ビットは記憶領域AREA7から0に対応しており、例えばSA−RG[19]が1の場合は記憶領域AREA3が情報処理装置CHIP1の占有領域となる。
図7の一例では、SA−RG[7:4]がすべて1へ、SA−RG[3:0]がすべて0へ設定されているので、記憶領域AREA7から4が共有領域となる。
図7の一例では、SA−RG[15:10]がすべて0へ、SA−RG[9:8]がすべて1へ設定されているので、記憶領域AREA1から0が情報処理装置CHIP0の占有領域となる。
図7の一例では、SA−RG[23:20]がすべて0へ、SA−RG[19:18]がすべて1へ、SA−RG[17:16]がすべて0へ設定されているので、記憶領域AREA3から2が情報処理装置CHIP1の占有領域となる。
<マスターレジスタMS−RGの説明>
図8にはマスターレジスタMS−RGの一例を示す。
図8にはマスターレジスタMS−RGの一例を示す。
マスターレジスタMS−RGは、特に限定しないがMS−RG[1:0]の2ビットで構成されている。
MS−RG[1:0]の各ビットは、マルチポートメモリMPMEME0の各ポートに対応している。例えば、MS−RG[0]はポート0(PRT0)に、MS−RG[1]はポート1(PRT1)に対応している。
図8の一例に示すように、MS−RG[1]およびMS−RG[0]がそれぞれ0へ設定されている場合は、ポート0(PRT0)とポート1(PRT1)の優先順位はラウンドロビン方式で変化する。
MS−RG[1]が0へ、MS−RG[0]が1へ設定されている場合は、ポート0(PRT0)が優先ポートとなる。
MS−RG[1]が1へ、MS−RG[0]が0へ設定されている場合は、ポート1(PRT1)が優先ポートとなる。
MS−RG[1]およびMS−RG[0]がそれぞれ1へ設定されている場合は、ポート0(PRT0)とポート1(PRT1)の優先順位はラウンドロビン方式で変化する。
<ステータスレジスタST−RGの説明>
図9にはステータスレジスタST−RGの一例を示す。
図9にはステータスレジスタST−RGの一例を示す。
ステータスレジスタST−RGは、特に限定しないがST−RG[31:0]の32ビットで構成されている。
ST−RG[15:0]はポート0(PRT0)からのリクエストに関するステータス情報(命令、記憶領域、終了時間など)を格納し、ST−RG[31:16]はポート1(PRT1)からのリクエストに関するステータス情報(命令、記憶領域、終了時間など)を格納する。
ST−RG[3:0]はポート0(PRT0)からの現在、実行中の命令を保持する。ST−RG[3:0]が0の場合は現在、実行中の命令は無いことを示し、1の場合は現在、読み出し命令を実行中であることを示し、2の場合は現在、書き込み命令を実行であることを示す。
特に限定しないが、ST−RG[3:0]は、16通りの命令を保持することが可能であり、必要に応じて保持する命令を追加することができる。
ST−RG[7:4]はポート0(PRT0)から、現在、アクセスしている記憶領域を保持する。ST−RG[7:4]が7の場合は現在、記憶領域AREA7へアクセスが生じていることを示す。
ST−RG[15:8]はポート0(PRT0)から、現在、実行中の命令の終了時間を保持する。ST−RG[15:8]が5の場合は、5サイクル後に、実行中の命令が終了することを示す。
ST−RG[19:16]はポート1(PRT1)からの現在、実行中の命令を保持する。ST−RG[19:16]が0の場合は現在、実行中の命令は無いことを示し、1の場合は現在、読み出し命令を実行中であることを示し、2の場合は現在、書き込み命令を実行であることを示す。
特に限定しないが、ST−RG[19:16]は、16通りの命令を保持することが可能であり、必要に応じて保持する命令を追加することができる。
ST−RG[23:20]はポート1(PRT1)から、現在、アクセスしている記憶領域を保持する。ST−RG[23:20]が3の場合は現在、記憶領域AREA3へアクセスが生じていることを示す。
ST−RG[31:24]はポート1(PRT1)から、現在、実行中の命令の終了時間を保持する。ST−RG[31:24]が5の場合は、5サイクル後に、実行中の命令が終了することを示す。
<I/Oからのステータス情報出力の説明>
図10では、マルチポートメモリMPMEM0の入出力信号I/O0およびI/O1から出力するステータス情報(命令、記憶領域、終了時間など)の一例を示す。
図10では、マルチポートメモリMPMEM0の入出力信号I/O0およびI/O1から出力するステータス情報(命令、記憶領域、終了時間など)の一例を示す。
入出力信号I/O0はポート1(PRT1)からのリクエストに対するステータス情報(命令、記憶領域、終了時間など)を出力し、入出力信号I/O1はポート0(PRT0)からのリクエストに対するステータス情報(命令、記憶領域、終了時間など)を出力する。
入出力信号I/O0は、特に限定しないがI/O0[15:0]の16ビットで構成されており、I/O0[3:0]は実行中の命令を示し、I/O0[7:4]はアクセスしている記憶領域を示し、I/O0[15:8]は実行中の命令の終了時間を示す。
I/O0[3:0]が0の場合はポート1(PRT1)から、現在、実行中の命令は無いことを示し、1の場合は現在、読み出し命令を実行中であることを示し、2の場合は現在、書き込み命令を実行であることを示す。
I/O0[7:4]が7の場合はポート1(PRT1)から、現在、記憶領域AREA7へアクセスが生じていることを示す。
I/O0[15:8]が5の場合は、ポート1(PRT1)からの、現在、実行中の命令は5サイクル後に終了することを示す。
入出力信号I/O1は、特に限定しないがI/O1[15:0]の16ビットで構成されており、I/O1[3:0]は実行中の命令を示し、I/O1[7:4]はアクセスしている記憶領域を示し、I/O1[15:8]は実行中の命令の終了時間を示す。
I/O1[3:0]が0の場合はポート0(PRT0)から、現在、実行中の命令は無いことを示し、1の場合は現在、読み出し命令を実行中であることを示し、2の場合は現在、書き込み命令を実行であることを示す。
I/O1[7:4]が6の場合はポート0(PRT0)から、現在、記憶領域AREA6へアクセスが生じていることを示す。
I/O1[15:8]が5の場合は、ポート0(PRT0)からの、現在、実行中の命令は5サイクル後に終了することを示す。
<動作波形の説明>
図11では、情報処理装置CHIP0がポート0(PRT0)を通じて、読み出しリクエストがマルチポートメモリMPMEM0の情報処理装置CHIP0の占有領域である記憶領域AREA0へ入力し、情報処理装置CHIP1がポート1(PRT1)を通じて、書き込みリクエストがマルチポートメモリMPMEM0の情報処理装置CHIP1の占有領域である記憶領域AREA2へ入力した場合の、マルチポートメモリMPMEM0の動作波形の一例を示す。
図11では、情報処理装置CHIP0がポート0(PRT0)を通じて、読み出しリクエストがマルチポートメモリMPMEM0の情報処理装置CHIP0の占有領域である記憶領域AREA0へ入力し、情報処理装置CHIP1がポート1(PRT1)を通じて、書き込みリクエストがマルチポートメモリMPMEM0の情報処理装置CHIP1の占有領域である記憶領域AREA2へ入力した場合の、マルチポートメモリMPMEM0の動作波形の一例を示す。
情報処理装置CHIP0から、クロックCLKに同期して、信号ADC0を通じて読み出し命令READおよびアドレス値ADD0がマルチポートメモリMPMEM0へ入力される。
入力された読み出し命令READおよびアドレス値ADD0によって、情報処理装置CHIP0の占有領域である記憶領域AREA0に保持されているデータを読み出す(Read from Area0)。
記憶領域AREA0から読み出されたデータはバッファDBF0へ送信され、入出力信号I/O0から出力される。情報処理装置CHIP0から、情報処理装置CHIP0の占有領域へのリクエストが入力されると信号SIG1はHighにはならずLowのままとなる。
情報処理装置CHIP1から、クロックCLKに同期して、信号ADC1を通じて書き込み命令WRITEおよびアドレス値ADD2が、入出力信号I/O1から書き込みデータWDATA2が、マルチポートメモリMPMEM0へ入力される。
入力された書き込み命令WRITE、アドレス値ADD2によって情報処理装置CHIP1の占有領域である記憶領域AREA2が選択される。書き込みデータWDATA2はバッファDBF1へ送信され、その後、選択された記憶領域AREA2へ書き込まれる。
情報処理装置CHIP1から、情報処理装置CHIP1の占有領域へのリクエストが入力されると信号SIG0はHighにはならずLowのままとなる。
このように、情報処理装置CHIP0およびCHIP1のそれぞれが占有する記憶領域へのリクエストでは、アクセス競合が発生しないため、それぞれの情報処理装置が他の情報処理装置のリクエストに邪魔されること無く、実行できる。このため、それぞれの情報処理装置からのリクエストを同時に実行でき、高速処理が可能となる。
また、図11ではポート0(PRT0)への読み出しリクエストと、ポート1(PRT1)への書き込みリクエストに関する動作を説明したが、ポート0(PRT0)への書き込みリクエストと、ポート1(PRT1)への読み出しリクエストに関する動作も同様に行われることは言うまでもない。
図12では、情報処理装置CHIP0がポート0(PRT0)を通じて、書き込みリクエストWREQ0がマルチポートメモリMPMEM0の情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA6へ発生し、同時に、情報処理装置CHIP1がポート1(PRT1)を通じて、読み出しリクエストRREQ1がマルチポートメモリMPMEM0の情報処理装置CHIP0とCHIP1の共有領域である記憶領域AREA7へ入力した場合の、マルチポートメモリMPMEM0の動作波形の一例を示す。
情報処理装置CHIP0から、クロックCLKに同期して、書き込みリクエストWREQ0(信号ADC0を通じて書き込み命令WRITEおよびアドレス値ADD6が、入出力信号I/O0から書き込みデータWDATA6)が、マルチポートメモリMPMEM0へ入力される。
入力された書き込み命令WRITE、アドレス値ADD6によって共有領域である記憶領域AREA6が選択される。書き込みデータWDATA6はバッファDBF0へ送信され、その後、選択された記憶領域AREA6へ書き込まれる。
情報処理装置CHIP0から、共有領域へのリクエストが入力されると信号SIG1はHighとなり、情報処理装置CHIP0からリクエストが実行されていることを情報処理装置CHIP1へ通達する。次に、リクエストに関するステータス信号(ライト命令WRIRE、記憶領域AREA6、終了時間5サイクル)を入出力信号I/O1から出力する。このステータス信号によって情報処理装置CHIP1は、情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。入出力信号I/O1からのステータス信号の出力後、信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM0にて実行している具体的なリクエストの内容を把握することができる。
情報処理装置CHIP1から、クロックCLKに同期して、読み出しリクエストRREQ1(信号ADC1を通じて読み出し命令READおよびアドレス値ADD7)が、マルチポートメモリMPMEM0へ入力される。
入力された読み出し命令READ、アドレス値ADD7によって共有領域である記憶領域AREA7に保持されているデータを読み出す(Read from Area7)。
記憶領域AREA7から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
情報処理装置CHIP1から、共有領域へのリクエストが入力されると信号SIG0はHighとなり、情報処理装置CHIP1からリクエストが実行されていることを情報処理装置CHIP0へ通達する。次に、リクエストに関するステータス信号(読み出し命令READ、記憶領域AREA7、終了時間0サイクル)を入出力信号I/O0から出力する。このステータス信号によって情報処理装置CHIP0は、情報処理装置CHIP1からの具体的なリクエストの内容を知ることができる。入出力信号I/O0からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP0は、この入出力信号I/O0からのステータス信号を自身のメモリ制御回路MCON0へ保存し、情報処理装置CHIP1がマルチポートメモリMPMEM0にて実行している具体的なリクエストの内容を把握することができる。
このように、情報処理装置CHIP0およびCHIP1の共有記憶領域へのリクエストであっても、異なる記憶領域であれば、アクセス競合は発生せず、それぞれの情報処理装置が他の情報処理装置のリクエストに邪魔されること無く、実行できる。このため、それぞれの情報処理装置からのリクエストを同時に実行でき、高速処理が可能となる。
さらに、情報処理装置CHIP0から共有記憶領域へリクエストが発生すると、信号SIG1はHighとなり、入出力信号I/O1からのステータス信号により、情報処理装置CHIP1は情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。このため、情報処理装置CHIP1は、最短時間で、最適なリクエストをマルチポートメモリMPMEM0へ発行できる。なお、情報処理装置CHIP0の具体的なリクエスト内容は、情報処理装置CHIP1の内部で保存されるため、情報処理装置CHIP1は、どのようなリクエストを出すべきかを判断する事が可能である。
また、情報処理装置CHIP1から共有記憶領域へリクエストが発生すると、信号SIG0はHighとなり、入出力信号I/O0からのステータス信号により、情報処理装置CHIP0は情報処理装置CHIP1からの具体的なリクエストの内容を知ることができる。このため、情報処理装置CHIP0は、最短時間で、最適なリクエストをマルチポートメモリMPMEM0へ発行できる。なお、情報処理装置CHIP1の具体的なリクエスト内容は、情報処理装置CHIP0の内部で保存されるため、情報処理装置CHIP0は、どのようなリクエストを出すべきかを判断する事が可能である。
また、図12では、情報処理装置CHIP0およびCHIP1の共有記憶領域かつ異なる記憶領域へのポート0(PRT0)への書き込みリクエストと、ポート1(PRT1)への読み出しリクエストに関する動作を説明したが、ポート0(PRT0)への全リクエストと、ポート1(PRT1)への全リクエストに関する動作も同様に行われることは言うまでもない。
図13では、情報処理装置CHIP0がポート0(PRT0)を通じて、マルチポートメモリMPMEM0の共有領域である記憶領域AREA4へデータWDATA4を書き込み、情報処理装置CHIP1がポート1(PRT1)を通じて、記憶領域AREA4へ書き込まれたデータWDATA4を読み出す場合、つまり情報処理装置CHIP0とCHIP1間のデータ通信に関する動作波形の一例を示す。
情報処理装置CHIP0から、クロックCLKに同期して、書き込みリクエストWREQ0(信号ADC0を通じて書き込み命令WRITEおよびアドレス値ADD4、入出力信号I/O0から書き込みデータWDATA4)が、マルチポートメモリMPMEM0へ入力される。
また、同時に、情報処理装置CHIP1から、クロックCLKに同期して、読み出しリクエストRREQ1(信号ADC1を通じて読み出し命令READおよびアドレス値ADD4)が、マルチポートメモリMPMEM0へ入力される。
情報処理装置CHIP0および情報処理装置CHIP1から同時に、リクエストが入力された場合は、調停回路ARBITORによってポート0(PRT0)からのアクセスが優先されるので、入力された書き込み命令WRITE、アドレス値ADD4によって共有領域である記憶領域AREA4が選択される。書き込みデータWDATA4はバッファDBF0へ送信され、その後、選択された記憶領域AREA4へ書き込まれる。
情報処理装置CHIP0から、共有領域へのリクエストが入力されると信号SIG1はHighとなり、情報処理装置CHIP0からリクエストが実行されていることを情報処理装置CHIP1へ通達する。次に、リクエストに関するステータス信号(ライト命令WRITE、記憶領域AREA4、終了時間5サイクル)を入出力信号I/O1から出力する。入出力信号I/O1からのステータス信号の出力後、信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM0にて実行している具体的なリクエストの内容を把握することができる。
情報処理装置CHIP1は、信号SIG1がHighとなったことで情報処理装置CHIP0から共有領域へリクエストが生じたことを知り、また、入出力信号I/O1からのステータス信号に含まれる具体的なリクエストの内容を保存することで、情報処理装置CHIP0が5クロックサイクル後に、記憶領域AREA4へのデータ書き込みを終了することを知る。
これによって、情報処理装置CHIP1は、最初の読み出しリクエストRREQ1は実行されないことを知り、情報処理装置CHIP0の書き込み動作が終了した後、直ちに再度、読み出しリクエストRREQ2(信号ADC1を通じて読み出し命令READおよびアドレス値ADD4)をマルチポートメモリMPMEM0へ入力する。
入力された読み出し命令READ、アドレス値ADD4によって、共有領域である記憶領域AREA4に保持されているデータ(先ほど情報処理装置CHIP0が書き込んだデータWDATA4)を読み出す(Read from Area4)。記憶領域AREA4から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
情報処理装置CHIP1から、共有領域へのリクエストが入力されると信号SIG0はHighとなり、情報処理装置CHIP1からリクエストが実行されていることを情報処理装置CHIP0へ通達する。次に、リクエストに関するステータス信号(読み出し命令READ、記憶領域AREA4、終了時間5サイクル)を入出力信号I/O0から出力する。入出力信号I/O0からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP0は、この入出力信号I/O0からのステータス信号を自身のメモリ制御回路MCON0へ保存し、情報処理装置CHIP1がマルチポートメモリMPMEM0にて実行している具体的なリクエストの内容を把握することができる。
情報処理装置CHIP0は、信号SIG0がHighとなったことで情報処理装置CHIP1から共有領域へリクエストが生じたことを知り、また、入出力信号I/O0からのステータス信号に含まれる具体的なリクエストの内容を保存することで、情報処理装置CHIP1が5クロックサイクル後に、記憶領域AREA4からのデータ読み出しを終了することを知る。
これによって、情報処理装置CHIP0は、情報処理装置CHIP1の読み出し動作が終了した後、直ちに、書き込みリクエストWREQ2(信号ADC1を通じて書き込み命令WRITEおよびアドレス値ADD4、入出力信号I/O0から書き込みデータWDATA4)をマルチポートメモリMPMEM0へ入力する。
入力された書き込み命令WRITE、アドレス値ADD4によって共有領域である記憶領域AREA4が選択される。書き込みデータWDATA4はバッファDBF0へ送信され、その後、選択された記憶領域AREA4へ書き込まれる。
以上説明したように、入出力信号I/O0およびI/O1からのステータス信号により、情報処理装置CHIP0およびCHIP1は、それぞれで実行しているリクエストの具体的な内容(命令、記憶領域、終了時間)を知ることができるため、情報処理装置CHIP0およびCHIP1間のデータ通信を高速に行うことができる。
(第2の実施の形態)
本発明を適用した第2の実施の形態である情報処理システムについて、図14〜図29を用いて説明する。
本発明を適用した第2の実施の形態である情報処理システムについて、図14〜図29を用いて説明する。
図14は本発明を適用した第2の実施の形態である、情報処理装置CHIP0とCHIP1と、マルチポートメモリMPMEM2とから構成される情報処理システムを示したものである。以下におのおのについて説明する。
情報処理装置CHIP0は、情報処理回路CPU00、CPU01、CPU02、CPU03と、メモリ制御回路MCON0から構成されている。情報処理装置CHIP1は、情報処理回路CPU10、CPU11、CPU12、CPU13と、メモリ制御回路MCON1から構成されている。
情報処理回路CPU00、CPU01、CPU02、CPU03ではメモリ制御回路MCON0を通じて、情報処理回路CPU10、CPU11、CPU12、CPU13ではメモリ制御回路MCON1を通じて、マルチポートメモリMPMEM2より、OSやアプリケーションプログラムおよびアプリケーションプログラムにて処理を行うデータを読み出し実行する。
情報処理装置CHIP0およびCHIP1は、それぞれのメモリ制御回路MCON0およびMCON1を介して、マルチポートメモリMPMEM2へ接続され、互いにデータ通信を行う。
マルチポートメモリMPMEM2は、制御回路DCON0およびDCON1、初期設定回路DINIT、モードレジスタDMD−RG、メモリマネージメント回路DMMU、タイミングレジスタDTM−RG、ステータス通達信号レジスタDSIG−RG、シェアドバンクレジスタDSB−RG、マスターレジスタDMS−RG、ステータスレジスタDST−RG、メモリアレイDMA0、調停回路ARBITORから構成される。
制御回路DCON0は、アドレスバッファABF0、データバッファDBF0および制御回路DLG0から構成される。制御回路DCON1は、アドレスバッファABF1、データバッファDBF1および制御回路DLG1から構成される。
メモリアレイDMA0は、特に限定しないが、メモリバンクBANK0〜BANK7から構成され、ダイナミックランダムアクセスメモリのメモリセルによって構成されている。
信号DADC0およびDADC1は、命令およびアドレス信号である。信号SIG0およびSIG1はステータス通達信号である。入出力信号I/O0およびI/O1はデータ入出力信号である。
情報処理装置CHIP0が、ポートDPT0を介してマルチポートメモリMPMEM2のメモリアレイDMA0へ保持されているデータを読み出す場合の動作の一例について説明する。
情報処理装置CHIP0が、信号DADC0を通じてバンクアクティブ命令BA0、バンクアドレスBADD0およびロウアドレスRADD0をマルチポートメモリMPMEM2へ出力する。このバンクアクティブ命令BA0によって、メモリバンクBANK0内のロウアドレス0に接続されている8192ビット分のメモリセルが活性化されセンスアンプへ転送される。
次に、信号DADC0を通じて読み出し命令RD0、バンクアドレスBADD0およびカラムアドレスCADD0をマルチポートメモリMPMEM2へ出力する。この読み出し命令RD0によってメモリバンクBANK0内のセンスアンプに保持されているデータのなかで、カラムアドレス0を開始アドレスとした16バイト分のデータが読み出され、データバッファDBF0へ転送され、入出力信号I/O0を介して情報処理装置CHIP0へ転送される。
情報処理装置CHIP1が、ポートDPT1を介してマルチポートメモリMPMEM2のメモリアレイDMA0へ保持されているデータを読み出す場合の動作の一例について説明する。
情報処理装置CHIP1が、信号DADC1を通じてバンクアクティブ命令BA2、バンクアドレスBADD2およびロウアドレスRADD0をマルチポートメモリMPMEM2へ出力する。このバンクアクティブ命令BA2によって、メモリバンクBANK2内のロウアドレス0に接続されている8192ビット分のメモリセルが活性化されセンスアンプへ転送される。
次に、信号DADC1を通じて読み出し命令RD2、バンクアドレスBADD2およびカラムアドレスCADD0をマルチポートメモリMPMEM2へ出力する。この読み出し命令RD2によってメモリバンクBANK2内のセンスアンプに保持されているデータのなかで、カラムアドレス0を開始アドレスとした16バイト分のデータが読み出され、データバッファDBF1へ転送され、入出力信号I/O1を介して情報処理装置CHIP1へ転送される。
初期設定回路DINITは、マルチポートメモリMPMEM2へ電源が投入されると、マルチポートメモリMPMEM2内の全回路を初期設定する。
モードレジスタDMD−RG、タイミングレジスタDTM−RG、ステータス通達信号レジスタDSIG−RG、シェアドバンクレジスタDSB−RG、マスターレジスタDMS−RG、ステータスレジスタDST−RG内の設定値は、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0および情報処理装置CHIP1によって変更される。
メモリマネージメント回路DMMUでは、モードレジスタDMD−RG、タイミングレジスタDTM−RG、ステータス通達信号レジスタDSIG−RG、シェアドバンクレジスタDSB−RG、マスターレジスタDMS−RG、ステータスレジスタDST−RG、メモリアレイDMA0のアドレス空間を設定するレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
タイミングレジスタDTM−RGは、マルチポートメモリMPMEM2内の読み出しおよび書き込みリクエストの処理が終わるまでの時間などを設定するレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
ステータス通達信号レジスタDSIG−RGは、ステータス通達信号SIG0およびSIG1を送信するタイミングを設計するレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
シェアドバンクレジスタDSB−RGは、メモリアレイDMA0内のメモリバンクBANK0〜BANK7を、CHIP0およびCHIP1の共有メモリバンクと、CHIP0の占有メモリバンクと、CHIP1の占有メモリバンクとに設定するためのレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
ステータスレジスタDST−RGは、CHIP0からポート0を介してマルチポートメモリMPMEM2へ入力したリクエストの状態を保持するレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
モードレジスタDMD−RGは、読み出しおよび書き込みレイテンシやバースト長を決定するレジスタであり、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0および情報処理装置CHIP1によって変更される。
マスターレジスタDMS−RGは、ポートDPT0およびポートDPT1の中で、リフレッシュのリクエストを受け付けるポートおよび他の全レジスタの値を変更する命令を受け付けるポートを決定し、また、ポートDPT0およびポートDPT1からのリクエストが同時に共有領域へ発した際に、どちらのポートからのリクエストを優先させるかを決定するレジスタである。
マスターレジスタDMS−RGは、初期設定回路DINITにて初期設定され、その後情報処理装置CHIP0あるいは情報処理装置CHIP1によって変更される。
調停回路ARBITORは、CHIP0からポートDPT0を介してマルチポートメモリMPMEM2へ入力したリクエストと、CHIP1からポートDPT1を介してマルチポートメモリMPMEM2へ入力したリクエストの調停を行う回路である。
情報処理装置CHIP0が、ポートDPT0を介してマルチポートメモリMPMEM2の各レジスタへ保持されている設定値を読み出す場合は、情報処理装置CHIP0が、信号DADC0を通じて読み出し命令READおよび各レジスタのアドレス値ADDをマルチポートメモリMPMEM2へ出力する。
また、情報処理装置CHIP0が、ポートDPT0を介してマルチポートメモリMPMEM2の各レジスタへ保持されている設定値を変更する場合は、情報処理装置CHIP0が、信号DADC0を通じて書き込み命令WRITEおよび各レジスタのアドレス値ADDを、信号I/O0を通じて新しい設定データをマルチポートメモリMPMEM2へ出力する。
情報処理装置CHIP1が、ポートDPT1を介してマルチポートメモリMPMEM2の各レジスタへ保持されている設定値を読み出す場合は、情報処理装置CHIP1が、信号DADC1を通じて読み出し命令READおよび各レジスタのアドレス値ADDをマルチポートメモリMPMEM2へ出力する。
また、情報処理装置CHIP1が、ポートDPT1を介してマルチポートメモリMPMEM2の各レジスタへ保持されている設定値を変更する場合は、情報処理装置CHIP1が、信号DADC1を通じて書き込み命令WRITEおよび各レジスタのアドレス値ADDを、信号I/O1を通じて新しい設定データをマルチポートメモリMPMEM2へ出力する。
<メモリマップの説明>
図15は、シェアドバンクレジスタDSB−RGおよびメモリマネージメント回路DMMUによって設定されるマルチポートメモリMPMEM2のメモリマップの一例を示したものである。
図15は、シェアドバンクレジスタDSB−RGおよびメモリマネージメント回路DMMUによって設定されるマルチポートメモリMPMEM2のメモリマップの一例を示したものである。
特に限定しないが、マルチポートメモリMPMEM2はダイナミックランダムアクセスメモリセルを利用したダイナミックランダムアクセスメモリであり、読み出し時間が15ns程度である。
特に限定しないが、マルチポートメモリMPMEM2は、レジスタ領域DREG−AREA、情報処理装置CHIP0の占有メモリバンクCHIP0−BANK、情報処理装置CHIP1の占有メモリバンクCHIP1−BANK、情報処理装置CHIP0と情報処理装置CHIP1の共有メモリバンクSHARE−BANKに分かれている。
レジスタ領域DREG−AREAは、モードレジスタDMD−RG、ステータスレジスタDST−RG、マスターレジスタDMS−RG、シェアドバンクレジスタDSB−RG、ステータス通達信号レジスタDSIG−RG、タイミングレジスタDTM−RGに分かれている。
占有メモリバンクCHIP0−BANKはメモリバンクBANK0からBANK1に割り当てられており、占有メモリバンクCHIP1−BANKはメモリバンクBANK2からBANK3に割り当てられており、共有メモリバンクSHARE−BANKはメモリバンクBANK4からBANK7に割り当てられている。
以上説明したようにシェアドバンクレジスタDSB−RGおよびメモリマネージメント回路DMMUによって、システムにあわせてメモリアレイDMA0内のメモリバンクBANK0〜BANK7を占有メモリバンクと共有メモリバンクとに柔軟に設定できる。
<電源投入時の初期シーケンス>
図16は、情報処理装置CHIP0と情報処理装置CHIP1およびマルチポートメモリMPMEM2から構成される情報処理システムの電源投入時の初期シーケンスの一例を示す。
図16は、情報処理装置CHIP0と情報処理装置CHIP1およびマルチポートメモリMPMEM2から構成される情報処理システムの電源投入時の初期シーケンスの一例を示す。
T1の期間(PwON)でマルチポートメモリMPMEM2へ電源投入を行い、T2の期間(Reset)でリセットを行う。リセットの方法は特に限定しないが、それぞれの内蔵回路で自動的にリセットを行う方法でも、あるいは、外部にリセット端子を持ち、このリセット信号によってリセット動作を行うこととしても良い。
このT2の期間(Reset)では、初期設定回路DINITは、モードレジスタDMD−RG、メモリマネージメント回路DMMU、タイミングレジスタDTM−RG、ステータス通達信号レジスタDSIG−RG、シェアドバンクレジスタDSB−RG、マスターレジスタDMS−RGおよびステータスレジスタDST−RGを初期化する。
この初期化によってメモリマネージメント回路DMMUにはマルチポートメモリMPMEM2の初期アドレス空間が設定され、タイミングレジスタDTM−RG、ステータス通達信号レジスタDSIG−RG、シェアドバンクレジスタDSB−RG、マスターレジスタDMS−RGおよびステータスレジスタDST−RGには初期設定値が設定される。
T2の期間でのリセットが解除されたT3の期間(PreAll)では、特に限定しないが情報処理装置CHIP0から、プリチャージオール命令PRE_ALL0が入力し、メモリバンクBANK0−BANK7の全バンクに対しプリチャージを行う。
T3の期間が終了した後のT4の期間(RegSet)では、各レジスタへデータ書き込みを行い、レジスタ内の値を所望の値に設定する。
T4の期間が終了した後のT5の期間(Refresh)では、特に限定しないが情報処理装置CHIP0から、オートリフレッシュ命令REF0が複数回入力し、メモリバンクBANK0−BANK7の全バンクに対し複数回のリフレッシュを行う。
T5の期間が終了した後のT6の期間(Idle)以降は、マルチポートメモリMPMEM2はアイドル状態となり、情報処理装置CHIP0および情報処理装置CHIP1からのリクエストを待つ状態となる。
<ステータス情報出力の説明>
情報処理装置CHIP0からマルチポートメモリMPMEM2へリクエストが生じた場合の、マルチポートメモリMPMEM2のステータス通達信号SIG1の出力と入出力信号I/O1からのステータス情報出力に関する動作の一例は、図4(a)と同様の動作を行うとしても良い。
情報処理装置CHIP0からマルチポートメモリMPMEM2へリクエストが生じた場合の、マルチポートメモリMPMEM2のステータス通達信号SIG1の出力と入出力信号I/O1からのステータス情報出力に関する動作の一例は、図4(a)と同様の動作を行うとしても良い。
また、情報処理装置CHIP1からマルチポートメモリMPMEM2へリクエストが生じた場合の、マルチポートメモリMPMEM2の信号SIG0の出力と入出力信号I/O0からのステータス情報出力に関する動作の一例は、図4(b)と同様の動作を行うとしても良い。
<アクセス調停の説明>
図17は、情報処理装置CHIP0および情報処理装置CHIP1からマルチポートメモリMPMEM2へリクエストが生じた場合のマルチポートメモリMPMEM2の調停回路ARBITORが行うリクエスト調停動作の一例を示すフローチャートである。
図17は、情報処理装置CHIP0および情報処理装置CHIP1からマルチポートメモリMPMEM2へリクエストが生じた場合のマルチポートメモリMPMEM2の調停回路ARBITORが行うリクエスト調停動作の一例を示すフローチャートである。
情報処理装置CHIP0からマルチポートメモリMPMEM2へリクエストP0Reqが入力した場合(Step1)、調停回路ARBITORは、マルチポートメモリMPMEM2内部でリフレッシュリクエスト動作が行われていないかをチェックする(Step2)。リフレッシュ動作が行われていれば、このリフレッシュ動作の完了を待ち(Step12)、情報処理装置CHIP1からのリクエストP1Reqがあるかどうかをチェックする(Step3)。
リフレッシュ動作が行われていなければ、直ちに、情報処理装置CHIP1からのリクエストP1Reqがあるかどうかをチェックする(Step3)。リクエストP1ReqがなければリクエストP0Reqを実行する(Step4)。リクエストP1Reqがあれば、リクエストP0ReqとリクエストP1Reqが同一記憶エリアへのリクエストかをチェックする(Step5)。同一記憶エリアでなければリクエストP0ReqとリクエストP1Reqは同時に実行される(Step11)。同一記憶エリアであれば、リクエストP0ReqとリクエストP1Reqの優先順位をチェックする(Step6)。リクエストP0Reqの優先順位が高ければ、リクエストP0Reqを実行し(Step7)、その後リクエストP1Reqを実行する(Step8)。リクエストP1Reqの優先順位が高ければ、リクエストP1Reqを実行し(Step9)、その後リクエストP0Reqを実行する(Step10)。
<レジスタの説明>
<モードレジスタDMD−RGの説明>
図18はマルチポートメモリMPMEM2内のモードレジスタDMD−RGの設定値の一例を示す。
<モードレジスタDMD−RGの説明>
図18はマルチポートメモリMPMEM2内のモードレジスタDMD−RGの設定値の一例を示す。
モードレジスタDMD−RGは、特に限定しないがDMD−RG[7:0]から構成されている。
DMD−RG[1:0]では、マルチポートメモリMPMEM2からのデータの読み出し時、あるいは、マルチポートメモリMPMEM2へのデータの書き込み時のバースト長を設定する。特に限定しないがDMD−RG[1:0]の値が10進数で0の場合にバースト長は2へ、1の場合にバースト長は4へ、2の場合にバースト長は8へ、3の場合にバースト長は16へ設定される。
DMD−RG[4:2]では、マルチポートメモリMPMEM2からのデータの読み出し時のレイテンシを設定する。特に限定しないがDMD−RG[4:2]の値が10進数で0の場合にレイテンシは1へ、1の場合にレイテンシは2へ、2の場合にレイテンシは3へ、3の場合にレイテンシは4へ、4の場合にレイテンシは5へ、5の場合にレイテンシは6へ、6の場合にレイテンシは7へ、7の場合にレイテンシは8へ設定される。
DMD−RG[7:5]では、マルチポートメモリMPMEM2へのデータの書き込み時のレイテンシを設定する。特に限定しないがDMD−RG[7:5]の値が10進数で0の場合にレイテンシは1へ、1の場合にレイテンシは2へ、2の場合にレイテンシは3へ、3の場合にレイテンシは4へ、4の場合にレイテンシは5へ、5の場合にレイテンシは6へ、6の場合にレイテンシは7へ、7の場合にレイテンシは8へ設定される。
<タイミングレジスタDTM−RGの説明>
図19はマルチポートメモリMPMEM2内のタイミングレジスタDTM−RGの設定値の一例を示す。
図19はマルチポートメモリMPMEM2内のタイミングレジスタDTM−RGの設定値の一例を示す。
タイミングレジスタDTM−RGは、特に限定しないがDTM−RG0[15:0]、DTM−RG1[15:0]およびDTM−RG2[15:0]から構成されている。
DTM−RG0[7:0]は、バンクアクティブ命令BA後の読み出し命令あるいは書き込み命令を入力するまでの最小クロックサイクル数を示し、特に限定しないが6サイクルに設定されている。
DTM−RG0[15:8]は、プリチャージ命令PREあるいはプリチャージオール命令PREALL後にバンクバンクアクティブ命令BAを入力するまでの最小クロックサイクル数を示し、特に限定しないが6サイクルに設定されている。
DTM−RG1[7:0]は、読み出し命令READ後のデータ読み出しの最小クロックサイクル数を示す。特に限定しないが、このサイクル数は、モードレジスタDTM−RGで設定されているレイテンシ値LATが4以下であれば4+(バースト長/2)となり、4より大きい場合はLAT+(バースト長/2)となる。
DTM−RG1[15:8]は、書き込み命令WRITE後のデータ書き込みの最小クロックサイクル数を示す。特に限定しないが、このサイクル数は、モードレジスタDTM−RGで設定されているレイテンシ値LATが4以下であれば4+(バースト長/2)となり、4より大きい場合はLAT+(バースト長/2)となる。
DTM−RG2[7:0]は、オートリフレッシュ命令AUTOREF後の最小リフレッシュ期間を示し、特に限定しないが12サイクルに設定されている。オートリフレッシュ命令AUTOREFによって、マルチポートメモリMPMEM2内の全メモリバンクをリフレッシュできる。
DTM−RG2[15:8]は、バンクリフレッシュ命令BANKREF後の最小リフレッシュ期間を示し、特に限定しないが10サイクルに設定されている。バンクリフレッシュ命令BANKREFとバンクアドレスによって、マルチポートメモリMPMEM2内の所望のメモリバンクをリフレッシュできる。
<ステータス通達信号レジスタDSIG−RGの説明>
図20はマルチポートメモリMPMEM2内のステータス通達信号レジスタDSIG−RGの設定値の一例を示す。
図20はマルチポートメモリMPMEM2内のステータス通達信号レジスタDSIG−RGの設定値の一例を示す。
ステータス通達信号レジスタDSIG−RGは、特に限定しないがDSIG−RG[15:0]の16ビットで構成されている。
DSIG−RG[0]は共有メモリバンクへのバンクアクティブ命令BAに関するビットであり、1に設定されている。
DSIG−RG[0]を1へ設定することによって、情報処理装置CHIP0からのバンクアクティブ命令BAが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのバンクアクティブ命令BAが共有メモリバンクへ発生した際に、ステータス信号SIG0がHighになることを示す。
DSIG−RG[1]は共有メモリバンクへのデータ読み出し命令READに関するビットであり、1に設定されている。
DSIG−RG[1]を1へ設定することによって、情報処理装置CHIP0からのデータ読み出し命令READが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのデータ読み出し命令READが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
DSIG−RG[2]は共有メモリバンクへのデータ書き込み命令WRITEに関するビットであり、1へ設定されている。
DSIG−RG[2]を1へ設定することによって、情報処理装置CHIP0からのデータ書き込み命令WRITEが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのデータ書き込み命令WRITEが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
DSIG−RG[3]は共有メモリバンクへのプリチャージ命令PREに関するビットであり、1へ設定されている。
DSIG−RG[3]を1へ設定することによって、情報処理装置CHIP0からのプリチャージ命令PREが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのプリチャージ命令PREが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
DSIG−RG[4]は共有メモリバンクへのプリチャージオール命令PREALLに関するビットであり、1へ設定されている。
DSIG−RG[4]を1へ設定することによって、情報処理装置CHIP0からのプリチャージオール命令PREALLが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのプリチャージオール命令PREが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
DSIG−RG[5]は共有メモリバンクへのバンクリフレッシュ命令BANKREFに関するビットであり、1へ設定されている。
DSIG−RG[5]を1へ設定することによって、情報処理装置CHIP0からのバンクリフレッシュ命令BANKREFが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのバンクリフレッシュ命令BANKREFが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
DSIG−RG[6]は共有メモリバンクへのオートリフレッシュ命令AUTOREFに関するビットであり、1へ設定されている。
DSIG−RG[6]を1へ設定することによって、情報処理装置CHIP0からのオートリフレッシュ命令AUTOREFが共有メモリバンクへ発生した際に、ステータス通達信号SIG1がHighになり、情報処理装置CHIP1からのオートリフレッシュ命令AUTOREFが共有メモリバンクへ発生した際に、ステータス通達信号SIG0がHighになることを示す。
<シェアドバンクレジスタDSB−RGの説明>
図21はマルチポートメモリMPMEM2内のシェアドバンクレジスタDSB−RGの設定値の一例を示す。
図21はマルチポートメモリMPMEM2内のシェアドバンクレジスタDSB−RGの設定値の一例を示す。
シェアドバンクレジスタDSA−RGは、特に限定しないがDSB−RG[31:0]の32ビットで構成されている。
DSB−RG[7:0]は共有メモリバンクを設定するためのビットであり、DSB−RG[15:8]は、情報処理装置CHIP0の占有メモリバンクを設定するためのビットであり、DSB−RG[23:16]は、情報処理装置CHIP1の占有メモリバンクを設定するためのビットである。
DSB−RG[7:0]の各ビットはメモリバンクBANK7から0へ対応しており、例えばDSB−RG[7]の値が1へ設定された場合は、メモリバンク7(BANK7)が共有メモリバンクとなる。
特に限定しないがDSB−RG[7:4]の値が1へ設定されているので、メモリバンク7(BANK7)からメモリバンク4(BANK4)が情報処理装置CHIP0と情報処理装置CHIP1の共有メモリバンクとなる。
DSB−RG[15:8]の各ビットはメモリバンクBANK7から0へ対応しており、例えばDSB−RG[8]の値が1へ設定された場合は、メモリバンク0(BANK0)が情報処理装置CHIP0の占有メモリバンクとなる。
特に限定しないがDSB−RG[9:8]の値が1へ設定されているので、メモリバンク0(BANK0)からメモリバンク1(BANK1)が情報処理装置CHIP0の占有メモリバンクとなる。
DSB−RG[23:16]の各ビットはメモリバンクBANK7から0へ対応しており、例えばDSB−RG[18]の値が1へ設定された場合は、メモリバンク2(BANK2)が情報処理装置CHIP1の占有メモリバンクとなる。
特に限定しないがDSB−RG[19:18]の値が1へ設定されているので、メモリバンク2(BANK2)からメモリバンク3(BANK3)が情報処理装置CHIP1の占有メモリバンクとなる。
<マスターレジスタDMS−RGの説明>
図22はマルチポートメモリMPMEM2内のマスターレジスタDMS−RGの設定値の一例を示す。
図22はマルチポートメモリMPMEM2内のマスターレジスタDMS−RGの設定値の一例を示す。
マスターレジスタDMS−RGは、特に限定しないがDMS−RG[7:0]の8ビットで構成されている。
DMS−RG[3:0]は、特に限定しないが、各ポートから共有メモリバンクへ同時にリクエストが発生した場合に、どのポートからのリクエストを最優先に処理するかを設定するためのビット領域である。また、DMS−RG[7:4]は、特に限定しないが、マルチポートメモリMPMEM2のメモリバンクをリフレッシュするためのリフレッシュ命令を、どのポートから受け付けるかを設定するためのビット領域である。
DMS−RG[1:0]の各ビットは、マルチポートメモリMPMEME2の各ポートに対応している。例えば、DMS−RG[0]はポート0(DPT0)に、DMS−RG[1]はポート1(DPT1)に対応している。
図22の一例に示すように、DMS−RG[1]およびDMS−RG[0]がそれぞれ0へ設定されている場合は、ポート0(DPT0)とポート1(DPT1)の優先順位はラウンドロビン方式で変化する。
DMS−RG[1]が0へ、DMS−RG[0]が1へ設定されている場合は、ポート0(DPT0)が優先ポートとなる。
DMS−RG[1]が1へ、DMS−RG[0]が0へ設定されている場合は、ポート1(DPT1)が優先ポートとなる。
DMS−RG[1]およびDMS−RG[0]がそれぞれ1へ設定されている場合は、ポート0(DPT0)とポート1(DPT1)の優先順位はラウンドロビン方式で変化する。
マスターレジスタDMS−RG[1:0]への設定値については他の設定値もあるが図22では省略する。
DMS−RG[5:4]の各ビットは、マルチポートメモリMPMEME2の各ポートに対応している。例えば、DMS−RG[4]はポート0(DPT0)に、DMS−RG[5]はポート1(DPT1)に対応している。
図22の一例に示すように、DMS−RG[5]が0へ、DMS−RG[4]が1へ設定された場合は、マルチポートメモリMPMEM2はポート0(DPT0)からのリフレッシュ命令を受け付け、リフレッシュ動作を行う。
DMS−RG[5]が1へ、DMS−RG[4]が0へ設定された場合は、マルチポートメモリMPMEM2はポート1(DPT1)からのリフレッシュ命令を受け付け、リフレッシュ動作を行う。
マスターレジスタDMS−RG[5:4]への設定値については他の設定値もあるが図22では省略する。
<ステータスレジスタDST−RGの説明>
図23はマルチポートメモリMPMEM2内のステータスレジスタDST−RGの設定値の一例を示す。
図23はマルチポートメモリMPMEM2内のステータスレジスタDST−RGの設定値の一例を示す。
ステータスレジスタDST−RGは、特に限定しないがDST−RG[31:0]の32ビットで構成されており、DST−RG[15:0]はポート0(DPT0)からのリクエストに関するステータス情報(命令、実行メモリバンク、終了時間など)を格納し、DST−RG[31:16]はポート1(DPT1)からのリクエストに関するステータス情報(命令、実行メモリバンク、終了時間など)を格納する。
DST−RG[3:0]はポート0(DPT0)からの現在、実行中の命令を保持する。DST−RG[3:0]が0の場合は実行中の命令は無い(P0_Nop)ことを示し、1の場合は読み出し命令(P0_Read)を実行中であることを示し、2の場合は書き込み命令(P0_Write)を実行中であることを示し、3の場合はバンクアクティブ命令(P0_BA)を実行中であることを示し、4の場合はプリチャージ命令(P0_Pre)を実行中であることを示し、5の場合はプリチャージオール命令(P0_PreAll)を実行中であることを示し、6の場合はバンクリフレッシュ命令(P0_BkRef)を実行中であることを示し、7の場合はオートリフレッシュ命令(P0_Ref)を実行中であることを示す。
特に限定しないが、DST−RG[3:0]は、16通りの命令を保持することが可能であり、必要に応じて保持する命令を追加することができる。
DST−RG[7:4]はポート0(DPT0)から、現在、アクセスしているメモリバンク値を保持する。DST−RG[7:4]が7の場合は現在、メモリバンクBANK7へアクセスが生じていることを示す。
DST−RG[15:8]はポート0(DPT0)から、現在、実行中の命令に対する動作の終了時間を保持する。DST−RG[15:8]が5の場合は、5クロックサイクル後にその命令に対する動作が終了することを示す。
DST−RG[19:16]はポート1(DPT1)からの現在、実行中の命令を保持する。DST−RG[19:16]が0の場合は実行中の命令は無い(P1_Nop)ことを示し、1の場合は読み出し命令(P1_Read)を実行中であることを示し、2の場合は書き込み命令(P1_Write)を実行中であることを示し、3の場合はバンクアクティブ命令(P1_BA)を実行中であることを示し、4の場合はプリチャージ命令(P1_Pre)を実行中であることを示し、5の場合はプリチャージオール命令(P1_PreAll)を実行中であることを示し、6の場合はバンクリフレッシュ命令(P1_BkRef)を実行中であることを示し、7の場合はオートリフレッシュ命令(P1_Ref)を実行中であることを示す。
特に限定しないが、DST−RG[19:16]は、16通りの命令を保持することが可能であり、必要に応じて保持する命令を追加することができる。
DST−RG[23:20]はポート1(DPT1)から、現在、アクセスしているメモリバンク値を保持する。DST−RG[23:20]が6の場合は現在、メモリバンクBANK6へアクセスが生じていることを示す。
DST−RG[31:24]はポート1(DPT1)から、現在、実行中の命令に対する動作の終了時間を保持する。DST−RG[31:24]が5の場合は、5クロックサイクル後に、その命令に対する動作が終了することを示す。
また、ステータスレジスタDST−RGは、ポート数によってサイズを拡張できることは言うまでもない。
<I/Oからのステータス情報出力の説明>
図24では、マルチポートメモリMPMEM2の入出力信号I/O0およびI/O1から出力するステータス情報(命令、メモリバンク、終了時間など)の一例を示す。
図24では、マルチポートメモリMPMEM2の入出力信号I/O0およびI/O1から出力するステータス情報(命令、メモリバンク、終了時間など)の一例を示す。
入出力信号I/O0はポート1(DPT1)からのリクエストに対するテータス情報(命令、メモリバンク値、終了時間など)を出力する。
入出力信号I/O0は、特に限定しないがI/O0[15:0]の16ビットで構成されており、I/O0[3:0]は実行中の命令を示し、I/O0[7:4]はアクセスしているメモリバンクを示し、I/O0[15:8]は実行中の命令の終了時間を示す。
I/O0[3:0]が0の場合はポート1(DPT1)から、現在、実行中の命令は無い(P1_Nop)ことを示し、1の場合は現在、読み出し命令(P1_Read)を実行中であることを示し、2の場合は現在、書き込み命令(P1_Write)を実行中であることを示し、3の場合はバンクアクティブ命令(P1_BA)を実行中であることを示し、4の場合はプリチャージ命令(P1_Pre)を実行中であることを示し、5の場合はプリチャージオール命令(P1_PreAll)を実行中であることを示し、6の場合はバンクリフレッシュ命令(P1_BkRef)を実行中であることを示し、7の場合はオートリフレッシュ命令(P1_Ref)を実行中であることを示す。
I/O0[7:4]が7の場合はポート1(DPT1)から、現在、メモリバンクBANK7へアクセスが生じていることを示す。
I/O0[15:8]が5の場合は、ポート1(DPT1)からの、現在、実行中の命令が5サイクル後に終了することを示す。
入出力信号I/O1はポート0(DPT0)からのリクエストに対するテータス情報(命令、メモリバンク値、終了時間など)を出力する。
入出力信号I/O1は、特に限定しないがI/O1[15:0]の16ビットで構成されており、I/O1[3:0]は実行中の命令を示し、I/O1[7:4]はアクセスしているメモリバンクを示し、I/O1[15:8]は実行中の命令の終了時間を示す。
I/O1[3:0]が0の場合はポート0(DPT0)から、現在、実行中の命令は無い(P0_Nop)ことを示し、1の場合は読み出し命令(P0_Read)を実行中であることを示し、2の場合は書き込み命令(P0_Write)を実行中であることを示し、3の場合はバンクアクティブ命令(P0_BA)を実行中であることを示し、4の場合はプリチャージ命令(P0_Pre)を実行中であることを示し、5の場合はプリチャージオール命令(P0_PreAll)を実行中であることを示し、6の場合はバンクリフレッシュ命令(P0_BkRef)を実行中であることを示し、7の場合はオートリフレッシュ命令(P0_Ref)を実行中であることを示す。
I/O1[7:4]が6の場合はポート0(DPT0)から、現在、メモリバンクBANK6へアクセスが生じていることを示す。
I/O1[15:8]が5の場合は、ポート0(DPT0)からの、現在、実行中の命令が5サイクル後に終了することを示す。
<動作波形の説明>
図25では、情報処理装置CHIP0内の情報処理回路CPU00からの読み出しリクエストがメモリ制御回路MCON0にて、情報処理装置CHIP0の占有領域であるメモリバンクBANK0へのページヒットと判定され、情報処理装置CHIP1内の情報処理回路CPU10からの書き込みリクエストがメモリ制御回路MCON1にて、情報処理装置CHIP1の占有領域であるメモリバンクBANK2へのページミスと判定された場合の、マルチポートメモリMPMEM2の動作波形の一例を示す。
図25では、情報処理装置CHIP0内の情報処理回路CPU00からの読み出しリクエストがメモリ制御回路MCON0にて、情報処理装置CHIP0の占有領域であるメモリバンクBANK0へのページヒットと判定され、情報処理装置CHIP1内の情報処理回路CPU10からの書き込みリクエストがメモリ制御回路MCON1にて、情報処理装置CHIP1の占有領域であるメモリバンクBANK2へのページミスと判定された場合の、マルチポートメモリMPMEM2の動作波形の一例を示す。
情報処理装置CHIP0から、クロックCLKに同期して、信号DADC0を通じて読み出し命令READおよびアドレス値ADD0がマルチポートメモリMPMEM2へ入力される。
入力された読み出し命令READおよびアドレス値ADD0によって、情報処理装置CHIP0の占有領域であるメモリバンクBANK0に保持されているデータを読み出す(Read from Bank0)。
メモリバンクBANK0から読み出されたデータはバッファDBF0へ送信され、入出力信号I/O0から出力される。情報処理装置CHIP0から、情報処理装置CHIP0の占有領域へのリクエストが入力されるとステータス情報通達信号SIG1はHighにはならずLowのままとなる。
情報処理装置CHIP1から、マルチポートメモリMPMEM2へ、クロックCLKに同期して、信号DADC1を通じてプリチャージ命令PREおよびバンクアドレスBank2が入力し、次にバンクアクティブ命令BA、バンクアドレス値Bank2およびロウアドレスRow2が入力され、最後に書き込み命令WRITE、バンクアドレスBank2およびカラムアドレスCol0が入力され、入出力信号I/O1から書き込みデータWDATA2が入力される。
入力された書き込み命令WRITE、バンクアドレスBank2およびカラムアドレスCol0によって、書き込みデータWDATA2はバッファDBF1を介してメモリバンクBANK2へ書き込まれる。
情報処理装置CHIP1から、情報処理装置CHIP1の占有領域へのリクエストが入力されるとステータス情報通達信号SIG0はHighにはならずLowのままとなる。
このように、情報処理装置CHIP0およびCHIP1のそれぞれが占有するメモリバンクへのリクエストでは、アクセス競合が発生しないため、それぞれの情報処理装置が他の情報処理装置のリクエストに邪魔されること無く、実行できる。このため、それぞれの情報処理装置からのリクエストを同時に実行でき、高速処理が可能となる。
また、図25では、ポート0(DPT0)からの読み出しリクエストと、ポート1(DPT1)からの書き込みリクエストに関する動作を説明したが、ポート0(DPT0)への他のリクエストと、ポート1(DPT1)への他のリクエストに関する動作も同様に行われることは言うまでもない。
図26では、情報処理装置CHIP0内の情報処理回路CPU00からの書き込みリクエストがメモリ制御回路MCON0にて、共有領域であるメモリバンクBANK6へのページヒットと判定され、情報処理装置CHIP1内の情報処理回路CPU10からの読み出しリクエストがメモリ制御回路MCON1にて、情報処理装置CHIP1の共有領域であるメモリバンクBANK7へのページヒットと判定された場合の、マルチポートメモリMPMEM2の動作波形の一例を示す。
情報処理装置CHIP0から、クロックCLKに同期して、信号DADC0を通じて書き込み命令WRITEおよびバンクアドレスBank6およびカラムアドレスCol0が、入出力信号I/O0から書き込みデータWDATA6がマルチポートメモリMPMEM2へ入力される。
入力された書き込み命令WRITE、バンクアドレスBank6およびカラムアドレスCol0によって、書き込みデータWDATA6はバッファDBF0を介してメモリバンクBANK6へ書き込まれる。
情報処理装置CHIP0から、共有領域へのリクエストが入力されると信号SIG1はHighとなり、情報処理装置CHIP0からリクエストが実行されていることを情報処理装置CHIP1へ通達する。次に、リクエストに関するステータス信号(ライト命令WRITE、メモリバンクBANK6、カラムアドレス0、終了時間5サイクル:5サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。このステータス信号によって情報処理装置CHIP1は、情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。入出力信号I/O1からのステータス信号の出力後、信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
なお、情報処理装置CHIP0の具体的なリクエスト内容は、情報処理装置CHIP1の内部で保存されるため、情報処理装置CHIP1は、どのようなリクエストを出すべきかを判断する事が可能である。
情報処理装置CHIP1から、クロックCLKに同期して、信号DADC1を通じて読み出し命令READおよびバンクアドレスBank7およびカラムアドレスCol0がマルチポートメモリMPMEM2へ入力される。
入力された読み出し命令READ、バンクアドレスBank7およびカラムアドレスCol0によって、メモリバンクBANK7に保持されているデータを読み出す(Read from Bank7)。
メモリバンクBANK7から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
情報処理装置CHIP1から、共有領域へのリクエストが入力されると信号SIG0はHighとなり、情報処理装置CHIP1からのリクエストが実行されていることを情報処理装置CHIP0へ通達する。次に、リクエストに関するステータス信号(読み出し命令READ、メモリバンクBANK7、カラムアドレス0、終了時間0サイクル:すでに動作が終了していることを示す)を入出力信号I/O0から出力する。このステータス信号によって情報処理装置CHIP0は、情報処理装置CHIP1からの具体的なリクエストの内容を知ることができる。入出力信号I/O0からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP0は、この入出力信号I/O0からのステータス信号を自身のメモリ制御回路MCON0へ保存し、情報処理装置CHIP1がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
なお、情報処理装置CHIP1の具体的なリクエスト内容は、情報処理装置CHIP0の内部で保存されるため、情報処理装置CHIP0は、どのようなリクエストを出すべきかを判断する事が可能である。
このように、情報処理装置CHIP0およびCHIP1の共有記憶領域へのリクエストであっても、異なるメモリバンクであれば、アクセス競合は発生せず、それぞれの情報処理装置が他の情報処理装置のリクエストに邪魔されること無く、実行できる。このため、それぞれの情報処理装置からのリクエストを同時に実行でき、高速処理が可能となる。
さらに、情報処理装置CHIP0から共有記憶領域へリクエストが発生すると、信号SIG1はHighとなり、入出力信号I/O1からのステータス信号により、情報処理装置CHIP1は情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。このため、情報処理装置CHIP1は、最短時間で、最適なリクエストをマルチポートメモリMPMEM2へ発行できる。
また、情報処理装置CHIP1から共有記憶領域へリクエストが発生すると、信号SIG0はHighとなり、入出力信号I/O0からのステータス信号により、情報処理装置CHIP0は情報処理装置CHIP1からの具体的なリクエストの内容を知ることができる。このため、情報処理装置CHIP0は、最短時間で、最適なリクエストをマルチポートメモリMPMEM2へ発行できる。
また、図26ではポート0(DPT0)からの書き込みリクエストと、ポート1(DPT1)からの読み出しリクエストに関する動作を説明したが、ポート0(DPT0)への他のリクエストと、ポート1(DPT1)への他のリクエストに関する動作も同様に行われることは言うまでもない。
図27では、情報処理装置CHIP0からマルチポートメモリMPMEM2内の共有領域であるメモリバンクBANK6へのリフレッシュリクエストが発生し、情報処理装置CHIP1内の情報処理回路CPU10からの読み出しリクエストがメモリ制御回路MCON1にて、情報処理装置CHIP1の共有領域であるメモリバンクBANK7へのページヒットと判定された場合の、マルチポートメモリMPMEM2の動作波形の一例を示す。
まず、情報処理装置CHIP0からのリフレッシュリクエストを説明する。
情報処理装置CHIP0から、マルチポートメモリMPMEM2へ、クロックCLKに同期して、信号DADC0を通じてプリチャージ命令PreおよびバンクアドレスBank6が入力され、次に、バンクリフレッシュ命令BkRefreshおよびバンクアドレスBank6が入力される。
プリチャージ命令PreおよびバンクアドレスBank6によって、メモリバンクBANK6のページが閉じる。
また、このプリチャージ命令Preによってステータス通達信号SIG1はHighとなり、情報処理装置CHIP0からのプリチャージ命令Preが実行されていることを情報処理装置CHIP1へ通達する。次に、リクエストに関するステータス信号(プリチャージ命令Pre、メモリバンクBANK6、終了時間3サイクル:3サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。このステータス信号によって情報処理装置CHIP1は、情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。入出力信号I/O1からのステータス信号の出力後、ステータス通達信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
バンクリフレッシュ命令BkRefreshおよびバンクアドレスBank6によってメモリバンクBANK6へリフレッシュ動作が行われる。
また、このバンクリフレッシュ命令BkRefによってステータス通達信号SIG1はHighとなり、情報処理装置CHIP0からのリフレッシュ命令BkRefが実行されていることを情報処理装置CHIP1へ通達する。次に、リクエストに関するステータス信号(リフレッシュ命令BkRef、メモリバンクBANK6、終了時間7サイクル:7サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。このステータス信号によって情報処理装置CHIP1は、情報処理装置CHIP0からの具体的なリクエストの内容を知ることができる。入出力信号I/O1からのステータス信号の出力後、ステータス通達信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
なお、情報処理装置CHIP0の具体的なリクエスト内容は、情報処理装置CHIP1の内部で保存されるため、情報処理装置CHIP1は、どのようなリクエストを出すべきかを判断する事が可能である。
次に、情報処理装置CHIP1からの読み出しリクエストについて説明する。
情報処理装置CHIP1から、マルチポートメモリMPMEM2へクロックCLKに同期して、信号DADC1を通じて読み出し命令READおよびバンクアドレスBank7およびカラムアドレスCol0が入力される。
入力された読み出し命令READ、バンクアドレスBank7およびカラムアドレスCol0によって、メモリバンクBANK7に保持されているデータを読み出す(Read from Bank7)。
メモリバンクBANK7から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
また、この読み出し命令Readによって、ステータス通達信号SIG0はHighとなり、情報処理装置CHIP1からの読み出し命令Readが実行されていることを情報処理装置CHIP0へ通達する。次に、リクエストに関するステータス信号(読み出し命令READ、メモリバンクBANK7、カラムアドレス0、終了時間5サイクル:5サイクル後に動作が終了することを示す)を入出力信号I/O0から出力する。このステータス信号によって情報処理装置CHIP0は、情報処理装置CHIP1からの具体的なリクエストの内容を知ることができる。入出力信号I/O0からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP0は、この入出力信号I/O0からのステータス信号を自身のメモリ制御回路MCON0へ保存し、情報処理装置CHIP1がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
なお、情報処理装置CHIP1の具体的なリクエスト内容は、情報処理装置CHIP0の内部で保存されるため、情報処理装置CHIP0は、どのようなリクエストを出すべきかを判断する事が可能である。
情報処理装置CHIP1からの読み出し命令READは、リフレッシュ動作を行っているメモリバンクとは異なるメモリバンクへ生じているため、リフレッシュ動作とのアクセス競合は発生せず、邪魔されること無く、実行される。
図28では、マルチポートメモリMPMEM2のメモリバンクBANK4へ、リフレッシュやプリチャージ動作が行われ、ページが閉じた状態の後に、情報処理装置CHIP0がポート0(DPT0)を通じてメモリバンクBANK4へデータWDATA4を書き込み、情報処理装置CHIP1がポート1(DPT1)を通じて、メモリバンクBANK4へ書き込まれたデータWDATA4を読み出す場合、つまり情報処理装置CHIP0とCHIP1間のデータ通信に関する動作波形の一例を示す。
まず、情報処理装置CHIP0からの書き込みリクエストを説明する。
情報処理装置CHIP0から、マルチポートメモリMPMEM2へ、クロックCLKに同期して、信号DADC0を通じて、まずバンクアクティブ命令BA、バンクアドレスBank4およびロウアドレスRow1が入力され、次に書き込み命令WRITE、バンクアドレスBank2およびカラムアドレスCol16が入力される。入出力信号I/O1からは書き込みデータWDATA4が入力される。
最初のバンクアクティブ命令BA、バンクアドレスBank4およびロウアドレスRow1によって、メモリバンクBANK4が活性化される。
また、ステータス通達信号SIG1はHighとなり、情報処理装置CHIP0からバンクアクティブ命令BAが実行されていることを情報処理装置CHIP1へ通達する。
このバンクアクティブ命令BAに関するステータス信号(バンクアクティブ命令BA、メモリバンクBANK4、ロウアドレスRow1、終了時間3サイクル:3サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。入出力信号I/O1からのステータス信号の出力後、信号SIG1はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。
次の書き込み命令WRITE、バンクアドレスBank4およびカラムアドレスCol16によって、書き込みデータWDATA4はバッファDBF1を介してメモリバンクBANK4へ書き込まれる。
また、ステータス通達信号SIG1はHighとなり、情報処理装置CHIP0からの書き込み命令Writeが実行されていることを情報処理装置CHIP1へ通達する。
この書き込みリクエストに関するステータス信号(書き込み命令Write、メモリバンクBANK4、カラムアドレス16、終了時間5サイクル:5サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。入出力信号I/O1からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。つまり、情報処理装置CHIP0からの書き込み命令Writeの終了時間を知ることができる。
情報処理装置CHIP1は、入出力信号I/O1からのステータス信号により、情報処理装置CHIP0からの書き込み動作が終了した後、直ちに読み出し命令Readを、マルチポートメモリMPMEM2へ入力する。具体的には、信号DADC1を通じて読み出し命令READおよびバンクアドレスBank4、カラムアドレスCol16がマルチポートメモリMPMEM2へ入力され、先ほど情報処理装置CHIP0がメモリバンクBANK4へ書き込んだデータWDATA4を読み出す(Read from Bank4)。
メモリバンクBANK4から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
図29では、情報処理装置CHIP0がポート0(DPT0)を通じて、マルチポートメモリMPMEM2の共有領域であるメモリバンクBANK4へデータWDATA4を書き込み、情報処理装置CHIP1がポート1(DPT1)を通じて、メモリバンクBANK4へ書き込まれたデータWDATA4を読み出す場合、つまり情報処理装置CHIP0とCHIP1間のデータ通信に関する動作波形の別の一例を示す。
まず、情報処理装置CHIP0からの書き込みリクエストを説明する。
情報処理装置CHIP0から、マルチポートメモリMPMEM2へ、クロックCLKに同期して、信号DADC0を通じて書き込み命令WRITEおよびバンクアドレスBank4、カラムアドレスCol32が、また、入出力信号I/O0から書き込みデータWDATA4が入力される。
入力された書き込み命令WRITE、バンクアドレスBank4、カラムアドレスCol32によって共有領域であるメモリバンクBANK4が選択される。書き込みデータWDATA4はバッファDBF0を通じてメモリバンクBANK4へ書き込まれる。
また、この書き込み命令Writeによって、ステータス通達信号SIG1はHighとなり、情報処理装置CHIP0からの書き込み命令Writeが実行されていることを情報処理装置CHIP1へ通達する。次に、この書き込みリクエストに関するステータス信号(書き込み命令Write、メモリバンクBANK4、カラムアドレス32、終了時間5サイクル:5サイクル後に動作が終了することを示す)を入出力信号I/O1から出力する。入出力信号I/O1からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP1は、この入出力信号I/O1からのステータス信号を自身のメモリ制御回路MCON1へ保存し、情報処理装置CHIP0がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。つまり、情報処理装置CHIP0からの書き込み命令Writeの終了時間を知ることができる。
情報処理装置CHIP1は、入出力信号I/O1からのステータス信号により、情報処理装置CHIP0からの書き込み動作が終了した後、直ちに読み出し命令Readを、マルチポートメモリMPMEM2へ入力する。具体的には、信号DADC1を通じて読み出し命令READおよびバンクアドレスBank4、カラムアドレスCol32がマルチポートメモリMPMEM2へ入力され、先ほど情報処理装置CHIP0がメモリバンクBANK4へ書き込んだデータWDATA4を読み出す(Read from Bank4)。
メモリバンクBANK4から読み出されたデータはバッファDBF1へ送信され、入出力信号I/O1から出力される。
また、この読み出し命令Readによって、ステータス通達信号SIG0はHighとなり、情報処理装置CHIP1からの読み出し命令Readが実行されていることを情報処理装置CHIP0へ通達する。次に、この読み出しリクエストに関するステータス信号(読み出し命令Read、メモリバンクBANK4、カラムアドレス32、終了時間5サイクル:5サイクル後に動作が終了することを示す)を入出力信号I/O0から出力する。入出力信号I/O0からのステータス信号の出力後、信号SIG0はLowとなる。
情報処理装置CHIP0は、この入出力信号I/O0からのステータス信号を自身のメモリ制御回路MCON0へ保存し、情報処理装置CHIP1がマルチポートメモリMPMEM2にて実行している具体的なリクエストの内容を把握することができる。つまり、情報処理装置CHIP1からの読み出し命令Readの終了時間を知ることができる。
情報処理装置CHIP0は、入出力信号I/O0からのステータス信号により、情報処理装置CHIP1からの読み出し動作が終了した後、直ちに、マルチポートメモリMPMEM2へ、クロックCLKに同期して、信号DADC0を通じて書き込み命令WriteおよびバンクアドレスBank4、カラムアドレスCol64が、また、入出力信号I/O0から書き込みデータWDATA4が入力される。
入力された書き込み命令Write、バンクアドレスBank4、カラムアドレスCol64によって共有領域であるメモリバンクBANK4が選択される。書き込みデータWDATA4はバッファDBF0を通じてメモリバンクBANK4へ書き込まれる。
以上説明したように、入出力信号I/O0およびI/O1からのステータス信号により、情報処理装置CHIP0およびCHIP1は、それぞれで実行しているリクエストの具体的な内容(命令、メモリバンク、アドレス、終了時間)を知ることができるため、情報処理装置CHIP0およびCHIP1間のデータ通信を高速に行うことができる。
以上、2ポートを有するマルチポートメモリを例に説明してきたが、3ポート以上のマルチポートメモリについても実現可能である。その際に、例えば、図7〜10および図21〜24に示される各レジスタについては、設けたポート数に応じてビット数を増やせばよい。
この場合、図8に示されるマスターレジスタMS−RGにおいて、図30に示されるように、ポート0(PRT0)とポート1(PRT1)に対応するビットに1が設定され、ポート2(PRT2)とポート3(PRT3)に対応するビットが0に設定される可能性がある。このように設定されたときは、ポート0(PRT0)およびポート1(PRT1)のアクセスは、ポート2(PRT2)およびポート3(PRT3)のアクセスより優先させ、ポート0(PRT0)−ポート1(PRT1)間の調停およびポート2(PRT2)−ポート3(PRT3)間の調停は、ラウンドロビン方式に従えばよい。さらには、図9に示されるステータスレジスタST−RGも、設けたポート数に応じてビット数を増やせばよい。
また、図22に示されるマスターレジスタDMS−RGについて、4ポート構成とした場合のレジスタ例を図31に示す。リクエストの優先処理については、図30と同様であり、また、リフレッシュ動作に関する設定は、ポート毎に行えばよい。
さらに、本発明の主旨を逸脱しない限り種々の変更が可能であり、例えば、前記実施の形態では、他のポートに通知する情報として、終了時間を同一記憶領域に次のコマンドが入力可能となる時間として説明してきたが、当該記憶領域へのリクエストの実行時間としてもよい。
(実施の形態に示される発明の効果のまとめ)
以上説明したように本明細書に開示される発明によって得られる主な効果は以下の通りである。
以上説明したように本明細書に開示される発明によって得られる主な効果は以下の通りである。
マルチポートメモリと、このマルチポートメモリに接続される複数の情報処理装置からなる情報処理システムにおいて、マルチポートメモリ内の記憶領域に対して、複数のポートが共有する記憶領域および、ひとつのポートが占有する記憶領域を変更することができ、情報処理システムの要求に対して柔軟に対応できる。
さらに、入出力信号I/O0およびI/O1からのステータス信号により、マルチポートメモリへ接続されている、複数の情報処理装置は、他の情報処理装置が実行しているリクエストの具体的な内容(命令、メモリバンク、アドレス、終了時間)を知ることができるため、情報処理装置間にて、高速にデータ通信を行うことができる。
この結果、情報処理システムを構成する複数の情報処理装置間のデータ通信を高速化するマルチポートメモリを実現でき、高速で使い勝手の良い情報処理システムを提供することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
CHIP0、CHIP1・・・情報処理装置、
CPU00、CPU01、CPU02、CPU03・・・情報処理回路、
CPU10、CPU11、CPU12、CPU13・・・情報処理回路、
MCON0、MCON1・・・メモリ制御回路、
MPMEM0、MPMEM2・・・マルチポートメモリ、
PRT0、PRT1、DPT0、DPT1・・・ポート、
PCON0、PCON1、DCON0、DCON1・・・制御回路、
INIT、DINIT・・・初期設定回路、
MMU、DMMU・・・メモリマネージメント回路、
TM−RG、DTM−RG・・・タイミングレジスタ、
DMD−RG・・・モードレジスタ、
MS−RG、DMS−RG・・・マスターレジスタ、
SIG−RG、DSIG−RG・・・ステータス通達信号レジスタ、
SA−RG・・・シェアドエリアレジスタ、
DSB−RG・・・シェアドバンクレジスタ、
ST−RG、DST−RG・・・ステータスレジスタ、
MA0、DMA0・・・メモリアレイ、
ARBITOR・・・調停回路、
AREA0〜AREA7・・・記憶領域、
ADC0、ADC1、DADC0、DADC1・・・命令およびアドレス信号、
SIG0、SIG1・・・ステータス通達信号、
I/O0、I/O1・・・データ入出力信号、
ABF0、ABF1・・・アドレスバッファ、
DBF0、DBF1・・・データバッファ、
LG0、LG1、DLG0、DLG1・・・制御回路、
REG−AREA、DREG−AREA・・・レジスタ領域、
CHIP0−AREA、CHIP1−AREA・・・占有領域、
SHARE−AREA・・・共有領域、
BANK0〜BANK7・・・メモリバンク、
CHIP0−BANK、CHIP1−BANK・・・占有メモリバンク、
SHARE−BANK・・・共有メモリバンク。
CPU00、CPU01、CPU02、CPU03・・・情報処理回路、
CPU10、CPU11、CPU12、CPU13・・・情報処理回路、
MCON0、MCON1・・・メモリ制御回路、
MPMEM0、MPMEM2・・・マルチポートメモリ、
PRT0、PRT1、DPT0、DPT1・・・ポート、
PCON0、PCON1、DCON0、DCON1・・・制御回路、
INIT、DINIT・・・初期設定回路、
MMU、DMMU・・・メモリマネージメント回路、
TM−RG、DTM−RG・・・タイミングレジスタ、
DMD−RG・・・モードレジスタ、
MS−RG、DMS−RG・・・マスターレジスタ、
SIG−RG、DSIG−RG・・・ステータス通達信号レジスタ、
SA−RG・・・シェアドエリアレジスタ、
DSB−RG・・・シェアドバンクレジスタ、
ST−RG、DST−RG・・・ステータスレジスタ、
MA0、DMA0・・・メモリアレイ、
ARBITOR・・・調停回路、
AREA0〜AREA7・・・記憶領域、
ADC0、ADC1、DADC0、DADC1・・・命令およびアドレス信号、
SIG0、SIG1・・・ステータス通達信号、
I/O0、I/O1・・・データ入出力信号、
ABF0、ABF1・・・アドレスバッファ、
DBF0、DBF1・・・データバッファ、
LG0、LG1、DLG0、DLG1・・・制御回路、
REG−AREA、DREG−AREA・・・レジスタ領域、
CHIP0−AREA、CHIP1−AREA・・・占有領域、
SHARE−AREA・・・共有領域、
BANK0〜BANK7・・・メモリバンク、
CHIP0−BANK、CHIP1−BANK・・・占有メモリバンク、
SHARE−BANK・・・共有メモリバンク。
Claims (18)
- 複数のポートを持つマルチポートメモリと、前記マルチポートメモリの各ポートへ接続する複数の情報処理装置とを有する情報処理システムであって、
前記マルチポートメモリは、前記複数のポートのうちの第1のポートへのリクエストを受け付ける第1の制御回路と、前記第1のポートへのリクエストが生じた後に、前記リクエストの内容を前記複数のポートのうちの第2のポートから出力する第2の制御回路とを有することを特徴とする情報処理システム。 - 請求項1において、
前記マルチポートメモリは、前記第2のポートから出力されるリクエストの内容が設定されるレジスタを有することを特徴とする情報処理システム。 - 請求項2において、
前記マルチポートメモリが有する前記レジスタは、前記第1のポートと接続している前記情報処理装置によりプログラムされることを特徴とする情報処理システム。 - 請求項3において、
前記マルチポートメモリは、前記第1のポートからプログラムされた前記レジスタの内容を前記第2のポートと接続している前記情報処理装置が読み出すことを特徴とする情報処理システム。 - 請求項2において、
前記マルチポートメモリが有する前記レジスタは、前記第2のポートと接続している前記情報処理装置によりプログラムされることを特徴とする情報処理システム。 - 請求項1において、
前記第2のポートから出力されるリクエストの内容は、前記第2のポートと接続している前記情報処理装置で保存されていることを特徴とする情報処理システム。 - 請求項1において、
前記マルチポートメモリは複数の記憶領域を持ち、前記記憶領域ごとに前記第1のポートからのリクエストを前記第2のポートから出力するか否かがプログラムされることを特徴とする情報処理システム。 - 請求項1において、
前記第2のポートから出力するリクエストの内容には、前記リクエストの期間情報が含まれていることを特徴とする情報処理システム。 - 請求項1において、
前記第2のポートから出力するリクエストの内容には、前記リクエストのアドレス情報が含まれていることを特徴とする情報処理システム。 - 複数のポートを持つマルチポートメモリであって、
前記複数のポートのうちの第1のポートへのリクエストを受け付ける第1の制御回路と、
前記第1のポートへのリクエストが生じた後に、前記リクエストの内容を前記複数のポートのうちの第2のポートから出力する第2の制御回路とを有することを特徴とするマルチポートメモリ。 - 請求項10において、
前記第2のポートから出力されるリクエストの内容が設定されるレジスタを有することを特徴とするマルチポートメモリ。 - 請求項11において、
前記レジスタは、前記第1のポートと接続している前記情報処理装置によりプログラムされることを特徴とするマルチポートメモリ。 - 請求項12において、
前記第1のポートからプログラムされた前記レジスタの内容が前記第2のポートから読み出されることを特徴とするマルチポートメモリ。 - 請求項10において、
前記レジスタは、前記第2のポートと接続している前記情報処理装置によりプログラムされることを特徴とするマルチポートメモリ。 - 請求項10において、
前記第2のポートから出力されるリクエストの内容は、前記第2のポートと接続している情報処理装置で保存されていることを特徴とするマルチポートメモリ。 - 請求項10において、
前記マルチポートメモリは複数の記憶領域を持ち、前記記憶領域ごとに前記第1のポートからのリクエストを前記第2のポートから出力するか否かがプログラムされることを特徴とするマルチポートメモリ。 - 請求項10において、
前記第2のポートから出力するリクエストの内容には、前記リクエストの期間情報が含まれていることを特徴とするマルチポートメモリ。 - 請求項10において、
前記第2のポートから出力するリクエストの内容には、前記リクエストのアドレス情報が含まれていることを特徴とするマルチポートメモリ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008084260A JP2009237980A (ja) | 2008-03-27 | 2008-03-27 | マルチポートメモリおよび情報処理システム |
US12/411,974 US8271740B2 (en) | 2008-03-27 | 2009-03-26 | Multiport memory and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008084260A JP2009237980A (ja) | 2008-03-27 | 2008-03-27 | マルチポートメモリおよび情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009237980A true JP2009237980A (ja) | 2009-10-15 |
Family
ID=41118882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008084260A Pending JP2009237980A (ja) | 2008-03-27 | 2008-03-27 | マルチポートメモリおよび情報処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8271740B2 (ja) |
JP (1) | JP2009237980A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108886A (ja) * | 2010-11-16 | 2012-06-07 | Micron Technology Inc | 組込み型チャネル選択を備えるマルチチャネルメモリ |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102438319B1 (ko) * | 2018-02-07 | 2022-09-01 | 한국전자통신연구원 | 공통 메모리 인터페이스 장치 및 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6379161A (ja) * | 1986-09-24 | 1988-04-09 | Hitachi Micro Comput Eng Ltd | 半導体記憶装置 |
JPH021044A (ja) * | 1988-01-22 | 1990-01-05 | Hitachi Ltd | メモリアクセス制御方法 |
JPH04315892A (ja) * | 1991-04-15 | 1992-11-06 | Mitsubishi Electric Corp | デュアルポートram |
JPH09231122A (ja) * | 1996-02-28 | 1997-09-05 | Hitachi Ltd | プロセッサシステム |
JP2004078683A (ja) * | 2002-08-20 | 2004-03-11 | Toshiba Corp | コンピュータシステムおよび共有メモリ制御方法 |
JP2007035039A (ja) * | 2005-07-25 | 2007-02-08 | Samsung Electronics Co Ltd | マルチポートdramでのリフレッシュ制御方法及び該方法を利用するマルチポートメモリシステム |
JP2008052370A (ja) * | 2006-08-22 | 2008-03-06 | Elpida Memory Inc | 半導体記憶装置及び半導体装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747828B2 (en) * | 2004-11-17 | 2010-06-29 | Integrated Device Technology, Inc. | Systems and methods for monitoring and controlling binary state devices using a memory device |
-
2008
- 2008-03-27 JP JP2008084260A patent/JP2009237980A/ja active Pending
-
2009
- 2009-03-26 US US12/411,974 patent/US8271740B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6379161A (ja) * | 1986-09-24 | 1988-04-09 | Hitachi Micro Comput Eng Ltd | 半導体記憶装置 |
JPH021044A (ja) * | 1988-01-22 | 1990-01-05 | Hitachi Ltd | メモリアクセス制御方法 |
JPH04315892A (ja) * | 1991-04-15 | 1992-11-06 | Mitsubishi Electric Corp | デュアルポートram |
JPH09231122A (ja) * | 1996-02-28 | 1997-09-05 | Hitachi Ltd | プロセッサシステム |
JP2004078683A (ja) * | 2002-08-20 | 2004-03-11 | Toshiba Corp | コンピュータシステムおよび共有メモリ制御方法 |
JP2007035039A (ja) * | 2005-07-25 | 2007-02-08 | Samsung Electronics Co Ltd | マルチポートdramでのリフレッシュ制御方法及び該方法を利用するマルチポートメモリシステム |
JP2008052370A (ja) * | 2006-08-22 | 2008-03-06 | Elpida Memory Inc | 半導体記憶装置及び半導体装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108886A (ja) * | 2010-11-16 | 2012-06-07 | Micron Technology Inc | 組込み型チャネル選択を備えるマルチチャネルメモリ |
US8918594B2 (en) | 2010-11-16 | 2014-12-23 | Micron Technology, Inc. | Multi-interface memory with access control |
US9405475B2 (en) | 2010-11-16 | 2016-08-02 | Micron Technology, Inc. | Multi-interface memory with access control |
Also Published As
Publication number | Publication date |
---|---|
US20090248993A1 (en) | 2009-10-01 |
US8271740B2 (en) | 2012-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6123017B2 (ja) | 可変レイテンシーメモリ動作用装置および方法 | |
KR100816053B1 (ko) | 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치 | |
US6895474B2 (en) | Synchronous DRAM with selectable internal prefetch size | |
JP4199658B2 (ja) | 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス | |
JP5391833B2 (ja) | メモリコントローラ、システムおよび半導体メモリのアクセス制御方法 | |
US8069303B2 (en) | Method and apparatus for controlling memory precharge operation | |
US12001682B2 (en) | PIM computing system and memory controller thereof | |
JP6468971B2 (ja) | 半導体メモリ、メモリシステム | |
US7526602B2 (en) | Memory control system and memory control circuit | |
US6829195B2 (en) | Semiconductor memory device and information processing system | |
EP1248267A2 (en) | Semiconductor memory device and information processing system | |
JP2009237980A (ja) | マルチポートメモリおよび情報処理システム | |
US11360897B1 (en) | Adaptive memory access management | |
US20040123061A1 (en) | Memory controlling aparatus performing the writing of data using address line | |
JP4997663B2 (ja) | マルチポートメモリおよびその制御方法 | |
JP2013089030A (ja) | 情報処理システム、制御システム及び半導体装置 | |
US20230266893A1 (en) | Memory system including memory device and memory controller, and operating method thereof | |
JP3563340B2 (ja) | メモリコントローラ | |
US20070189084A1 (en) | Reduced pin count synchronous dynamic random access memory interface | |
TW202424967A (zh) | 半導體記憶體系統、記憶體控制器及位址解碼方法 | |
JP4383495B2 (ja) | 半導体集積回路 | |
JP2004318500A (ja) | メモリ回路 | |
JP4772975B2 (ja) | 半導体記憶装置 | |
CN118113625A (zh) | 地址解码方法以及存储器控制器和半导体存储系统 | |
JP5333398B2 (ja) | マルチポートメモリおよびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140513 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140922 |