JP4496923B2 - Shared memory system - Google Patents
Shared memory system Download PDFInfo
- Publication number
- JP4496923B2 JP4496923B2 JP2004319755A JP2004319755A JP4496923B2 JP 4496923 B2 JP4496923 B2 JP 4496923B2 JP 2004319755 A JP2004319755 A JP 2004319755A JP 2004319755 A JP2004319755 A JP 2004319755A JP 4496923 B2 JP4496923 B2 JP 4496923B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- shared
- memory
- shared memory
- access
- 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
Links
Images
Description
本発明は、複数のバスマスタがメモリを共有する共有メモリシステムに関する。 The present invention relates to a shared memory system in which a plurality of bus masters share a memory.
一般に共有メモリシステムでは、複数のバスマスタが1つの共有メモリ、共有バスを共有することで、1つのメモリへアクセスする方式が採られる。このような共有メモリシステムでは、他のバスマスタはバスが空くまで待たされることから、各バスマスタの帯域設計が難しくなるという問題を本質的に有する。この問題を解決するために提案されてきた従来例として、例えば、共有メモリを制御するメモリコントローラ部にFIFOを設け、メモリアクセス制御を効率的に行う方法(下記の特許文献1参照)、いずれかのDMACによりDMA転送制御が行われていても、それよりも優先度が高い他のDMACからのバス要求を許容する方法(下記の特許文献2参照)などが挙げられる。
しかしながら、特許文献1に記載の方法では、バスマスタの数が増えるにつれて、またシステムで定めるメモリアクセス1回当たりの最大ワード数が増えるにつれて、FIFOに要する回路規模が大きくなる。また、特許文献2に記載のような方式では、バスマスタの制御が複雑になり、また、共有メモリにDRAMを使用した場合、プリチャージやアクティブコマンド発行によるオーバーヘッドが増大し、システム全体で利用可能な帯域が減少する。
However, in the method described in
また、例えば画像符号化/復号化処理を行うシステムLSIでは、特に1チップで行う処理がSD/HDの画像サイズの符号化/復号化、JPEG符号化/復号化処理など、要求される演算量、メモリ帯域共に広範なレンジを持つ場合に、共有メモリをアクセス速度や容量の違いによってLSI内部/外部のように複数配置し、そのバスマスタのアクセス先マッピングを自由に変更することで、柔軟かつ効率のよい帯域設計を実現することが望まれる。 In addition, for example, in a system LSI that performs image encoding / decoding processing, processing that is performed on a single chip is particularly required for the amount of computation required for encoding / decoding of SD / HD image sizes, JPEG encoding / decoding processing, and the like. When the memory bandwidth has a wide range, multiple shared memories can be arranged inside / outside the LSI depending on the access speed and capacity, and the access destination mapping of the bus master can be freely changed, making it flexible and efficient. It is desirable to realize a good bandwidth design.
本発明は上記従来例の問題点に鑑み、柔軟かつ効率のよい帯域設計を実現することができる共有メモリシステムを提供することを目的とする。 An object of the present invention is to provide a shared memory system capable of realizing a flexible and efficient band design in view of the problems of the conventional example.
本発明は上記目的を達成するために、
1つの仮想アドレス空間上に重複することなくマッピングされ、前記仮想アドレス空間上の開始アドレスと終了アドレスがそれぞれ設定される複数の共有メモリと、
前記複数の共有メモリに対して前記仮想アドレス空間上のアドレスによりメモリアクセスを独立して要求する複数のバスマスタとを備え、
前記複数の共有メモリの各々は、前記仮想アドレス空間上のアドレスによりメモリアクセスを要求された場合に前記要求されたアドレスが自己に設定されている前記仮想アドレス空間上の開始アドレスと終了アドレスにより規定される範囲内か否かを判断し、範囲内のときに前記メモリアクセスの要求を許可するようにした。
In order to achieve the above object, the present invention
A plurality of shared memories that are mapped without overlapping on one virtual address space, and each of which a start address and an end address on the virtual address space are set;
A plurality of bus masters independently requesting memory access by addresses in the virtual address space for the plurality of shared memories;
Each of the plurality of shared memories is defined by a start address and an end address in the virtual address space in which the requested address is set to itself when a memory access is requested by an address in the virtual address space. The memory access request is permitted when it is within the range.
本発明によれば、複数の共有メモリが1つの仮想アドレス空間上に重複することなくマッピングされているので、複数のバスマスタが並列にアクセスすることができ、柔軟かつ効率のよい帯域設計を実現することができる。 According to the present invention, since a plurality of shared memories are mapped on one virtual address space without overlapping, a plurality of bus masters can access in parallel, and a flexible and efficient bandwidth design is realized. be able to.
以下、図面を参照して本発明の実施の形態について説明する。図1は本発明に係る共有メモリシステムの一実施の形態の全体構成を示すブロック図、図2は図1の複数の共有メモリのアドレス空間を示す説明図、図3は図1の複数の共有メモリに対して複数のバスマスタが並列にアクセスする様子を示すタイミングチャート、図4は図1のバスマスタのクロック変化を説明するためのタイミングチャート、図5は図1のバスマスタが連続してアクセスする様子を示すタイミングチャートである。なお、図3は後述するバスマスタ21が共有メモリ11の領域、バスマスタ22が共有メモリ1mの領域にアクセスする例を示している。
Embodiments of the present invention will be described below with reference to the drawings. 1 is a block diagram showing an overall configuration of an embodiment of a shared memory system according to the present invention, FIG. 2 is an explanatory diagram showing address spaces of a plurality of shared memories in FIG. 1, and FIG. 3 is a plurality of shared in FIG. FIG. 4 is a timing chart illustrating a state in which a plurality of bus masters access a memory in parallel, FIG. 4 is a timing chart for explaining a clock change of the bus master in FIG. 1, and FIG. 5 is a state in which the bus master in FIG. It is a timing chart which shows. FIG. 3 shows an example in which a
図1において、m、nをそれぞれ、m>1、n>0の整数とし、共有メモリがm個(11、12〜1m)に対してバスマスタがn個(21、22〜2n)とする。共有メモリ11、12〜1mはメモリの制御を行うメモリコントローラ(不図示)を含む。各共有メモリ11、12〜1mは図2に示すように1つの共通の仮想アドレス空間にマッピングされ、マッピングの情報として先頭アドレスマッピングレジスタ(STADRMAP1〜STADRMAPm)、終了アドレスマッピングレジスタ(ENDADRMAP1〜ENDADRMAPm)を有する。共有メモリ11、12〜1mとバスマスタ21、22〜2nとを接続する不図示のバスは、すべての共有メモリ11、12〜1mについて信号の組、通信プロトコル共に共通であり、互いに独立して並列動作する。
In FIG. 1, m and n are integers of m> 1 and n> 0, respectively, m shared memories (11, 12 to 1 m), and n bus masters (21, 22 to 2n). The shared
バスマスタ21、22〜2nがバス権を獲得するために共有メモリ11、12〜1mの各メモリコントローラに出力する信号は、メモリアクセス要求(REQ1〜REQm)と、図2に示す仮想アドレス空間上のアクセス開始時スタートアドレス(STADR1〜STADRm)である。REQとSTADRの各線は、各バスマスタ21、22〜2nからすべての共有メモリ11、12〜1mにパラレルに接続される。また、各メモリコントローラはバスマスタ21、22〜2nから出力されるSTADRとレジスタ(STADRMAP1〜STADRMAPm、及びENDADRMAP1〜ENDADRMAPm)とを不図示の比較回路によって比較し、自身がREQの指し示すメモリコントローラであるか否かを判断する。
The signals output to the memory controllers of the shared
共有メモリ11、12〜1m側の判断方法は、例えば、あるバスマスタ2i(i=1、2〜n)からREQi、STADRiが出力されているとき
STADRMAP<STADRi、かつ
STADRi<ENDADRMAP
という条件を満たしていれば、このバスマスタ2iに対してACKを出力し、バス権を与える。複数のアクセス要求が同じメモリコントローラを示していれば、ラウンドロビンアルゴリズムなどのバス調停を経て、ACKを返す。
The determination method on the shared
If this condition is satisfied, ACK is output to the bus master 2i to give the bus right. If a plurality of access requests indicate the same memory controller, an ACK is returned through bus arbitration such as a round robin algorithm.
また、複数のバスマスタからREQが出力されていても、例えば図2に示すようにバスマスタ21は共有メモリ11の領域(図のSTADR1)を、バスマスタ22は共有メモリ1mの領域(図のSTADR2)を示しているならば、図3に示すようにバスマスタ21と22はそれぞれ独立したバス権を獲得し、同時にメモリアクセスすることが可能である。
Even if REQs are output from a plurality of bus masters, for example, as shown in FIG. 2, the
各共有メモリ11〜1mのバスは共通の仕様とする。共有メモリコントローラのSTADRMAP、ENDADMAPはホスト3からのレジスタ設定により決定し、また、バスマスタ21〜2nが出力するSTADRもホスト3がレジスタ設定により各バスマスタ21〜2nに設定したアドレスを基に決定するので、各バスマスタ21〜2nの動作はアクセス先の共有メモリ11〜1mに依存しない。このため、バスマスタ21〜2nの動作が単純となると同時に、バスマスタ21〜2nの設計が容易になる。
The buses of the shared
また、共有メモリ11〜1mの動作クロックを発生させるクロック発生器(CLK)4を有し、バスマスタ21〜2nの動作クロックと共有メモリ11〜1mの動作クロックが共通のクロックを基にしているものの、相互に異なる場合(例えば、共通クロックの歯抜けクロック、逓倍、分周などを使用し、バスマスタ21〜2nと共有メモリコントローラのデータ授受に、メタステーブル対策が不要な場合)は、図4に示すように、共有メモリコントローラがバス権と併せてクロックイネーブル(CLK_EN)信号を出力する。これにより、バスマスタ21〜2nはクロック発生器(CLK)4からアクセス先の共有メモリ11〜1mの動作クロックと同じクロックを受けて動作し、これにより、アクセス先の共有メモリ11〜1mの動作クロックを意識することなく、タイミングの制御を行うことができる。
In addition, it has a clock generator (CLK) 4 for generating an operation clock of the shared
また、バスマスタ21〜2nが連続的にメモリアクセスを行いたい場合は、図5に示すように、アクセス要求(REQ1〜REQm)を出力したまま、スタートアドレス(STADR1〜STADRm)を変更することで実現する。また、バス権獲得中に出力したアクセス要求(REQ1〜REQm)が、アクセス中の共有メモリと異なるメモリに対するものである場合に、更にバス権を獲得しバスが衝突する危険がある。これを防ぐために、アクセスが確立している共有メモリは、そのバスマスタに対して他の共有メモリからアクセス応答が返らないよう、ACK_DISABLE信号を発行することができるものとする。バスマスタ2iに対するACK_DISABLEの論理和をとり、リクエストマスクとして使用する。バスの仕様には、アドレス信号(ADR)、転送サイズ(SIZE)、読み出し/書き込み(RW)、読み出しデータ(RDATA)などを追加してもよい。
Further, when the
本発明によれば、
・バスの並列動作が可能であるため、単数の共有メモリシステムに比べてメモリ帯域が向上する。
・共有メモリのメモリマッピングの変更により、バスマスタのアクセス先を決定できるので、共有メモリのうち、高速共有メモリと低速共有メモリでの帯域配分が容易である。さらに本システムを画像符号化/復号化システムLSIとして実現した場合、バックエンドLSIとして多くの用途で利用可能である。
・高速共有メモリはLSI内部、低速で大容量な共有メモリはLSI外部といった、現実的な構成が可能である。
・バスの振る舞いが共通であるため、バスマスタの設計が容易である。
・1つのバスマスタが同時に複数のバス権を獲得することがないため、バスマスタが連続的にバス権を獲得しようとした場合、アクセス要求を出し続けることができる。この点でもバスマスタの設計が容易となるとともに、バス帯域性能が向上する。
・アドレスの比較回路を共有メモリのコントローラ側に置くため、バスマスタがアクセス先の共有メモリを判断する場合に比べて、アドレスマッピングレジスタ、比較回路の回路コストの低減、CPUのレジスタ設定の効率向上が可能である。
According to the present invention,
-Since the bus can be operated in parallel, the memory bandwidth is improved as compared with a single shared memory system.
Since the bus master access destination can be determined by changing the memory mapping of the shared memory, it is easy to allocate the bandwidth between the high-speed shared memory and the low-speed shared memory among the shared memories. Furthermore, when this system is realized as an image encoding / decoding system LSI, it can be used as a back-end LSI for many purposes.
A realistic configuration is possible in which the high-speed shared memory is inside the LSI and the low-speed and large-capacity shared memory is outside the LSI.
・ Bus master design is easy because the bus behavior is the same.
Since one bus master does not acquire a plurality of bus rights at the same time, an access request can be continuously issued when the bus master tries to acquire the bus rights continuously. In this respect, the bus master can be easily designed and the bus bandwidth performance is improved.
-Since the address comparison circuit is placed on the shared memory controller side, the circuit cost of the address mapping register and the comparison circuit is reduced, and the efficiency of register setting of the CPU is improved compared to the case where the bus master determines the shared memory to be accessed. Is possible.
3 ホスト
4 クロック発生器(CLK)
11、12〜1m 共有メモリ
21、22〜2n バスマスタ
3 Host 4 Clock generator (CLK)
11, 12-1m shared
Claims (1)
前記複数の共有メモリに対して前記仮想アドレス空間上のアドレスによりメモリアクセスを独立して要求する複数のバスマスタとを備え、
前記複数の共有メモリの各々は、前記仮想アドレス空間上のアドレスによりメモリアクセスを要求された場合に前記要求されたアドレスが自己に設定されている前記仮想アドレス空間上の開始アドレスと終了アドレスにより規定される範囲内か否かを判断し、範囲内のときに前記メモリアクセスの要求を許可するようにした共有メモリシステム。
A plurality of shared memories that are mapped without overlapping on one virtual address space, and each of which a start address and an end address on the virtual address space are set;
A plurality of bus masters independently requesting memory access by addresses in the virtual address space for the plurality of shared memories;
Each of the plurality of shared memories is defined by a start address and an end address in the virtual address space in which the requested address is set to itself when a memory access is requested by an address in the virtual address space. A shared memory system that determines whether or not the memory access is within a range and permits the memory access request when the range is within the range.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004319755A JP4496923B2 (en) | 2004-11-02 | 2004-11-02 | Shared memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004319755A JP4496923B2 (en) | 2004-11-02 | 2004-11-02 | Shared memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006133904A JP2006133904A (en) | 2006-05-25 |
JP4496923B2 true JP4496923B2 (en) | 2010-07-07 |
Family
ID=36727428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004319755A Expired - Fee Related JP4496923B2 (en) | 2004-11-02 | 2004-11-02 | Shared memory system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4496923B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6037055A (en) * | 1983-08-08 | 1985-02-26 | Canon Inc | Information processor |
JPH02288938A (en) * | 1989-02-16 | 1990-11-28 | Matsushita Electric Ind Co Ltd | Shared memory access controller for multiprocessor |
JPH05181743A (en) * | 1991-12-27 | 1993-07-23 | Fujitsu Ltd | Method for locating memory address |
JPH06314231A (en) * | 1993-04-28 | 1994-11-08 | Hitachi Ltd | Shared memory access control method |
JPH09319649A (en) * | 1996-05-24 | 1997-12-12 | Oki Electric Ind Co Ltd | Device and method for discriminating address |
-
2004
- 2004-11-02 JP JP2004319755A patent/JP4496923B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6037055A (en) * | 1983-08-08 | 1985-02-26 | Canon Inc | Information processor |
JPH02288938A (en) * | 1989-02-16 | 1990-11-28 | Matsushita Electric Ind Co Ltd | Shared memory access controller for multiprocessor |
JPH05181743A (en) * | 1991-12-27 | 1993-07-23 | Fujitsu Ltd | Method for locating memory address |
JPH06314231A (en) * | 1993-04-28 | 1994-11-08 | Hitachi Ltd | Shared memory access control method |
JPH09319649A (en) * | 1996-05-24 | 1997-12-12 | Oki Electric Ind Co Ltd | Device and method for discriminating address |
Also Published As
Publication number | Publication date |
---|---|
JP2006133904A (en) | 2006-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1738267B1 (en) | System and method for organizing data transfers with memory hub memory modules | |
JP4926963B2 (en) | System and method for improving performance in a computer memory system that supports multiple memory access latency times | |
JP4715801B2 (en) | Memory access control device | |
KR20070059859A (en) | On-chip communication architecture | |
US12113723B2 (en) | Switch for transmitting packet, network on chip having the same, and operating method thereof | |
US20080082621A1 (en) | Slave network interface circuit for improving parallelism of on-chip network and system thereof | |
US7543114B2 (en) | System and controller with reduced bus utilization time | |
JP4408263B2 (en) | Data transfer system and data transfer method | |
JP4902640B2 (en) | Integrated circuit and integrated circuit system | |
JP2004118252A (en) | Semiconductor data processor | |
JP2005084907A (en) | Memory band control unit | |
JP3803196B2 (en) | Information processing apparatus, information processing method, and recording medium | |
JP4496923B2 (en) | Shared memory system | |
JP2005092764A (en) | Image forming apparatus, interface board, interface chip, and information processor | |
US7774513B2 (en) | DMA circuit and computer system | |
JPH09153009A (en) | Arbitration method for hierarchical constitution bus | |
JP4726187B2 (en) | Semiconductor integrated circuit | |
JP2005346715A (en) | Multiport random access memory | |
EP1990725B1 (en) | Central processing unit, central processing unit control method, and information processing system | |
JP3206656B2 (en) | Prefetch device and prefetch method on bus | |
JP2003085125A (en) | Memory controller and memory control method | |
JP2000099391A (en) | Printer, printer controlling method and storage medium | |
JP2006195810A (en) | High-speed data transfer method | |
JP2009059155A (en) | Usb host controller device | |
JP2007108858A (en) | Pin sharing device and pin sharing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100318 |
|
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: 20100323 |
|
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: 20100405 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140423 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |