WO2008010397A1 - Contrôleur de mémoire - Google Patents

Contrôleur de mémoire Download PDF

Info

Publication number
WO2008010397A1
WO2008010397A1 PCT/JP2007/063041 JP2007063041W WO2008010397A1 WO 2008010397 A1 WO2008010397 A1 WO 2008010397A1 JP 2007063041 W JP2007063041 W JP 2007063041W WO 2008010397 A1 WO2008010397 A1 WO 2008010397A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
memory controller
bus
command
unit
Prior art date
Application number
PCT/JP2007/063041
Other languages
English (en)
French (fr)
Inventor
Takeshi Suzuki
Original Assignee
Canon Kabushiki Kaisha
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 Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Priority to US12/304,749 priority Critical patent/US8019951B2/en
Publication of WO2008010397A1 publication Critical patent/WO2008010397A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Definitions

  • the present invention relates to a memory controller that controls a memory that can be shared by a plurality of buses.
  • Patent Document 1 a system LSI in which a plurality of bus masters and a shared memory are connected by a plurality of system buses has been realized (for example, Patent Document 1).
  • bus master a processor, a DSP (Digital Signal Processor), a DMAC (Direct Memory Access Controller) and the like are known.
  • DSP Digital Signal Processor
  • DMAC Direct Memory Access Controller
  • a memory controller that controls access to shared memory from multiple system buses is an essential device.
  • This memory controller is required to achieve high system performance while maintaining versatility for various systems having different system bus configurations, memory configurations, and the like. For this purpose, it is important for the memory controller to perform force access control while ensuring the bandwidth and real-time nature of the shared memory.
  • a conventional memory controller can be connected only to a specific system bus provided in common in each system, or the priority of connection in each system bus is fixed.
  • Patent Document 1 Japanese Patent Laid-Open No. 11 120154
  • the conventional technology is inconvenient because it is necessary to redesign the memory controller when a system with a different system bus configuration is constructed or when the system usage is changed.
  • the present invention has been made under such a background, and an object of the present invention is to provide a memory controller that can flexibly cope with changes in the usage pattern and operating state of a system.
  • the present invention controls a memory that can be shared by a plurality of buses.
  • the memory controller has a plurality of bus interface units, a memory controller core unit, and a memory interface unit.
  • the plurality of bus interface units accept commands of the plurality of bus powers, and the memory controller core unit can accept
  • the memory controller core unit has a command control unit that issues an accepted command to the memory interface unit, and the memory interface unit stores the received command in the memory And a bus for exchanging commands between the bus interface unit and the command control unit.
  • FIG. 1 is a configuration diagram of a memory controller according to a first embodiment.
  • FIG. 2 is a configuration diagram of a memory controller according to a second embodiment.
  • FIG. 3 is a configuration diagram of a memory controller according to a third embodiment.
  • FIG. 4 is a diagram showing a configuration of a memory controller according to a fourth embodiment.
  • FIG. 5 is a configuration diagram of a memory controller according to a fifth embodiment.
  • FIG. 6 is a diagram showing information in a command queue unit.
  • FIG. 7 is a configuration diagram of a memory controller according to a sixth embodiment.
  • FIG. 8 is a configuration diagram of a memory controller according to a seventh embodiment.
  • FIG. 9 is a configuration diagram of a memory controller according to an eighth embodiment.
  • FIG. 1 is a configuration diagram of a computer in which the memory controller according to the first embodiment is mounted.
  • a memory controller 1100 is connected to system nodes 1000, 1010, and 1020 via system bus interfaces (bus interface units) 1200, 1210, and 1220, respectively.
  • system bus interfaces bus interface units
  • system buses 1000, 1010, and 1020 for example, AMBA ⁇ Advanced Microcontroller Bus Architecture and AHB (Advanced High-performance Bus) standard buses can be used.
  • These system buses 1000, 1010, and 1020 are used as access request commands having a bus master (not shown) such as corresponding processors, respectively, and transfer paths for access data obtained by the commands.
  • a bus master such as corresponding processors, respectively, and transfer paths for access data obtained by the commands.
  • the memory controller 1100 has a memory controller core unit 1300.
  • the memory controller core unit 1300 has a command control unit 1320.
  • the command control unit 1320 is connected to the system bus interfaces 120 0, 1210, and 1220 via the controller internal system bus 1310.
  • the controller internal system bus 1310 performs processing to exchange commands between the system nose interfaces 1200, 1210, 1220 and the command control unit 1320.
  • the command control unit 1320 is connected to the shared memory 1500 via a memory interface (memory interface unit) 1400.
  • a memory interface memory interface unit
  • the shared memory 1500 for example, synchronous DRAM, DDR-SDRAM, ROM, or the like can be used.
  • the memory controller 1100 is connected to the system bus 1000, 1010, 102.
  • access control to the shared memory 1500 is performed using the command control unit 1320 as a core.
  • a bus transaction request according to the protocol of the system bus 1000 is transmitted to the corresponding system bus interface 1200.
  • a bus transaction request corresponding to the system bus protocol is transmitted to the corresponding system bus interfaces 1210 and 1220.
  • the system bus interfaces 1200, 1210, and 1220 convert received transaction requests into protocols that can be received by the controller internal system bus 1310. Then, the system bus interfaces 1200, 1210, and 1220 issue a transaction request command converted to the protocol to the memory controller core unit 1300.
  • the command control unit 1320 in the memory controller core unit 1300 receives this transaction request command via the controller internal system bus 1310. Then, the command control unit 1320 performs command conversion such as address conversion on the received transaction request command. Next, the command control unit 1320 issues a transaction request command that has undergone command conversion such as address conversion to the memory interface 1400.
  • the memory interface 1400 performs protocol conversion on the transaction request command received from the command control unit 1320 and issues an access command to the shared memory 1500.
  • the memory controller 1100 is divided into three parts. That is, the memory controller 1100 is divided into a system bus interface 1200, 1210, 1220, a memory controller core 1300, and a memory interface 1400.
  • the memory controller core unit 1300 is provided with a controller internal system bus 1310 for a system bus interface.
  • system bus interfaces 1200, 1210, and 1220 can be replaced according to the specifications of the system buses 1000, 1010, and 1020. Also connect to shared memory Replacing the memory interface 1400 according to the 1500 specifications makes it applicable to various systems.
  • FIG. 2 is a configuration diagram of a memory controller according to the second embodiment.
  • the controller internal interface node 1330 is also provided on the shared memory side corresponding to the plurality of shared memories 1500, 1510, and 1520.
  • memory interfaces 1400, 1410, and 1420 are provided, respectively.
  • the command control unit 1320 performs access control to the shared memories 1500, 1510, and 1520 via the controller internal interface node 1330.
  • the memory controller internal interface bus 1330 for the shared memory is provided in the memory controller core unit 1300. Therefore, when adding shared memory, it is not necessary to change the basic design of the memory controller core unit 1300, and it is only necessary to connect the memory interfaces 1400, 1410, and 1420 corresponding to each shared memory.
  • FIG. 3 is a configuration diagram of the memory controller according to the third embodiment. As shown in FIG. 3, in the third embodiment, an arbitration circuit A1340 is attached to the internal system bus 1310 of the memory controller.
  • This arbitration circuit A1340 arbitrates the execution order of access request commands when it simultaneously receives access request commands from the node master, here, the system bus interfaces 1200, 1210, 1220. That is, from the bus master side Assume that a number of access requests have occurred. In this case, the arbitration circuit A1340 arbitrates to execute the access request command according to the priority set in advance in the corresponding bus master, here, the system buses 1000, 1010, and 1020.
  • the arbitration circuit A1340 sets the highest priority for the system bus 1 000. Is done.
  • the arbitration circuit A1340 preferentially processes the access request from the system bus 1000.
  • the third embodiment it is possible to perform access control while ensuring real-time performance according to the bus master without changing the basic design of the memory controller core unit 1300. .
  • FIG. 4 is a configuration diagram of a memory controller according to the fourth embodiment. As shown in FIG. 4, in the fourth embodiment, an arbitration circuit B1350 is added to the controller internal interface bus 1330.
  • the arbitration circuit B1350 arbitrates the data transfer order when read data is simultaneously received from the shared memories 1500, 1510, 1520 via the memory interfaces 1400, 1410, 1420. That is, it is assumed that the controller internal interface bus 1330 receives read data from the memory interfaces 1400, 1410, and 1420 at the same time. In this case, the arbitration circuit B1350 performs arbitration so as to transfer the read data to the system buses 1000, 1010, and 1020 according to the priority set in advance in the corresponding shared memories 1500, 1510, and 1520.
  • the arbitration circuit B1350 receives the read data from the shared memory 1500 and the shared memory 1510 at the same time, the arbitration circuit B1350 arbitrates so that the read data from the shared memory 1500 is preferentially transferred to the interface bus side.
  • FIG. 5 is a configuration diagram of a memory controller according to the fifth embodiment.
  • the command control unit 1320 includes a command queue unit 1321 and a priority setting register 1322.
  • the system bus priority setting register 1322 includes registers for individually setting the priorities of the system buses 1000, 1010, and 1020, respectively. In these registers, data indicating the priority is set in association with the bus IDs of the system buses 1000, 1010, and 1020.
  • a plurality of access commands 210, 220, and 230 are arranged in the order of input.
  • Each of these access commands 210, 220, and 230 includes information of access addresses 211, 221, and 231 and flags 212, 222, and 232 indicating a read brim, respectively.
  • the access commands 210, 220, and 230 include system node information IDs 213, 223, and 233 and system information items 214, 224, and 234 “If”, respectively.
  • the command control unit 1320 sets the bus ID of the system bus that issued the access request to the priority setting register. Search on 1322. Then, the command control unit 1320 acquires priority information associated with the searched bus ID, and determines the priority of the current access request based on the acquired priority information.
  • the command control unit 1320 compares the priority determined this time with the priority of each access command 210, 220, 230 registered in the command queue unit 1321. If all of the priorities of the registered access commands are equal to or higher than the priority determined this time, the command control unit 1320 determines that the access command related to the priority determined this time is executed last. Register the access command newly in the command queue part 1321
  • the command control unit 1320 executes the old and new access commands in order of higher priority.
  • the access command related to this request is newly registered in the command queue section 1321. Accordingly, in the fifth embodiment, it is possible to perform access control while ensuring real-time performance according to the bus master without changing the basic design of the memory controller core unit 1300.
  • FIG. 7 is a configuration diagram of a memory controller according to the sixth embodiment. As shown in FIG. 7, in the sixth embodiment, a write data buffer 1323 is provided in the command control unit 1320.
  • the write data buffer 1323 is provided in the command control unit 1320, it is possible to reduce the size of the write data buffer of each system bus interface. It becomes. As a result, it is possible to reduce overhead when the number of system buses connected to the memory controller 1100 increases.
  • FIG. 8 is a configuration diagram of a memory controller according to the seventh embodiment.
  • a direct read data node 1360 is provided in the memory controller core unit 1300.
  • the direct read data bus 1360 is a bus for directly transferring read data from the memory interface 1400 to the memory controller internal system bus 1310 without going through the command control unit 1320.
  • system bus interfaces 1200, 1210, and 1220 are provided with lead data buffer 1202, 1212, and 1222, respectively.
  • the command control unit 1320 is provided with a command queue unit 1321, a priority setting register 1322, and a write data buffer 1323. These may be deleted. However, if the command queue unit 1321, the priority setting register 1322, and the write data buffer 1323 are provided, it goes without saying that the above-described effects of these components can also be obtained. [0052] [Eighth embodiment]
  • FIG. 9 is a configuration diagram of a memory controller according to the eighth embodiment.
  • the memory controller internal interface bus 1330 and the arbitration circuit connected thereto Has B1 350 in addition to the elements constituting the seventh embodiment shown in FIG. 8, the memory controller internal interface bus 1330 and the arbitration circuit connected thereto Has B1 350.
  • the arbitration circuit A1340 is also connected to the memory controller internal system node 1310.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Description

明 細 書
メモリコントローラ
技術分野
[0001] 本発明は、複数のバスで共有可能なメモリを制御するメモリコントローラに関する。
背景技術
[0002] 従来、複数のバスマスターと共有メモリとが複数のシステムバスで接続されるシステ ム LSIが実現されている(例えば、特許文献 1)。上記のバスマスターとしては、プロセ ッサ、 DSP (Digital Signal Processor)、 DMAC (Direct Memory Access Controller)等が知られている。この種のシステム LSIでは、複数のシステムバスから 共有メモリへのアクセスを制御するメモリコントローラが必須のデバイスとなっている。
[0003] このメモリコントローラは、システムバス構成、メモリ構成等が異なる様々なシステム に対する汎用性を保ちながら、高いシステム性能を達成することが求められている。 このためには、メモリコントローラは、共有メモリのバンド幅とリアルタイム性を確保しな 力 アクセス制御を行うことが重要である。
[0004] 従来のメモリコントローラは、各システムに共通に設けられた特定のシステムバスに 対してのみ接続可能であったり、各システムバスにおける接続の優先度が固定ィ匕さ れたりしていた。
特許文献 1:特開平 11 120154号公報
発明の開示
発明が解決しょうとする課題
[0005] 従って、従来技術では、システムバス構成の異なるシステムを構築する場合や、シ ステムの使用形態が変更された場合に、メモリコントローラを再設計する必要があり、 不便であった。
[0006] 本発明は、このような背景の下になされたもので、システムの使用形態や稼動状態 の変化に柔軟に対応可能なメモリコントローラを提供することを目的とする。
課題を解決するための手段
[0007] 上記の目的を達成するため、本発明は、複数のバスで共有可能なメモリを制御する メモリコントローラにおいて、複数のバスインターフェース部と、メモリコントローラコア 部と、メモリインターフェース部を有し、前記複数のバスインターフェース部は、前記 複数のバス力 のコマンドを受け付け、前記メモリコントローラコア部が受付可能なコ マンドに変換し、前記メモリコントローラコア部は、受け付けたコマンドを前記メモリイ ンターフェース部に発行するコマンド制御部を有し、前記メモリインターフェース部は 、前記メモリコントローラコア部力 受け付けたコマンドをメモリに対するコマンドへ変 換し、更に、前記バスインターフェース部と前記コマンド制御部との間でコマンドを授 受するバスを有する。
発明の効果
[0008] 本発明によれば、システムの使用形態や稼動状態の変化に柔軟に対応可能なメモ リコントローラを提供することが可能となる。
[0009] 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らか になるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参 照番号を付す。
図面の簡単な説明
[0010] 添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、そ の記述と共に本発明の原理を説明するために用いられる。
[0011] [図 1]第 1の実施の形態に係るメモリコントローラの構成図である。
[図 2]第 2の実施の形態に係るメモリコントローラの構成図である。
[図 3]第 3の実施の形態に係るメモリコントローラの構成図である。
[図 4]第 4の実施の形態に係るメモリコントローラの構成を示す図である。
[図 5]第 5の実施の形態に係るメモリコントローラの構成図である。
[図 6]コマンドキュー部の情報を示す図である。
[図 7]第 6の実施の形態に係るメモリコントローラの構成図である。
[図 8]第 7の実施の形態に係るメモリコントローラの構成図である。
[図 9]第 8の実施の形態に係るメモリコントローラの構成図である。
符号の説明
[0012] 1100· ··メモリコントローラ 1200, 1210, 1220· ··システムノ スインターフェース
1300· ··メモリコントローラコア部
1310…コントローラ内部システムバス
1320· ··コマンド制御咅
1400, 1410, 1420· ··メモリインターフェース
発明を実施するための最良の形態
[0013] 以下、本発明を実施するための最良の形態を、図面に基づいて説明する。
[0014] [第 1の実施の形態]
図 1は、第 1の実施の形態に係るメモリコントローラが搭載されたコンピュータの構成 図である。
[0015] 図 1において、メモリコントローラ 1100は、システムバスインターフェース(バスインタ 一フェース部)1200, 1210, 1220を介して、それぞれシステムノ ス 1000, 1010, 1020に接続されている。システムバス 1000, 1010, 1020としては、例えば AMBA ^Advanced Microcontroller Bus Architectureノ、 AHB (Advanced High -performance Bus)規格のバスを使用することができる。
[0016] これら、システムバス 1000, 1010, 1020は、それぞれ対応するプロセッサ等のバ スマスター (図示省略)力ものアクセス要求コマンド、そのコマンドで得られたアクセス データの転送路として利用される。
[0017] メモリコントローラ 1100は、メモリコントローラコア部 1300を有している。このメモリコ ントローラコア部 1300は、コマンド制御部 1320を有している。コマンド制御部 1320 は、コントローラ内部システムバス 1310を介して、システムバスインターフェース 120 0, 1210, 1220に接続されている。コントローラ内部システムバス 1310は、システム ノ スインターフェース 1200, 1210, 1220とコマンド制御部 1320との間でコマンドを 授受する処理を行う。
[0018] また、コマンド制御部 1320は、メモリインターフェース(メモリインターフェース部) 14 00を介して共有メモリ 1500に接続されている。共有メモリ 1500としては、例えば、シ ンクロナス DRAMや DDR— SDRAM、ROM等を使用することができる。
[0019] このような構成の下で、メモリコントローラ 1100は、システムバス 1000, 1010, 102 0からのアクセス要求に応じて、コマンド制御部 1320を中核として共有メモリ 1500に 対するアクセス制御を行って 、る。
[0020] すなわち、システムバス 1000に係るバスマスターからのアクセス要求時には、当該 システムバス 1000のプロトコルに応じたバストランザクション要求が対応するシステム バスインターフェース 1200に送信される。同様に、システムバス 1010, 1020に係る バスマスターからのアクセス要求時には、それらシステムバスのプロトコルに応じたバ ストランザクション要求が対応するシステムバスインターフェース 1210, 1220に送信 される。
[0021] システムバスインターフェース 1200, 1210, 1220は、受信したトランザクション要 求をコントローラ内部システムバス 1310が受信可能なプロトコルに変換する。そして 、システムバスインターフェース 1200, 1210, 1220は、このプロトコル変換したトラン ザクシヨン要求コマンドをメモリコントローラコア部 1300に対して発行する。
[0022] メモリコントローラコア部 1300内のコマンド制御部 1320は、このトランザクション要 求コマンドを、コントローラ内部システムバス 1310を介して受信する。そして、コマンド 制御部 1320は、受信したトランザクション要求コマンドに対してアドレス変換等のコマ ンド変換を行う。次に、コマンド制御部 1320は、アドレス変換等のコマンド変換したト ランザクシヨン要求コマンドをメモリインターフェース 1400に対して発行する。
[0023] メモリインターフェース 1400は、コマンド制御部 1320から受信したトランザクション 要求コマンドに対してプロトコル変換を行い、共有メモリ 1500に対してアクセスコマン ドを発行する。
[0024] 以上説明したように第 1の実施の形態では、メモリコントローラ 1100は、 3つの部分 に分割されている。すなわち、メモリコントローラ 1100は、システムバスインターフエ一 ス 1200, 1210, 1220と、メモリコントローラコア咅 1300と、メモリインターフェース 14 00に分割されている。また、メモリコントローラコア部 1300には、コマンド制御部 132 0の他に、システムバスインターフェース用のコントローラ内部システムバス 1310を設 けている。
[0025] 従って、システムバス 1000, 1010, 1020の仕様に応じてシステムバスインターフ エース 1200, 1210, 1220を入れ替えることが可能となる。また、接続する共有メモリ 1500の仕様に応じてメモリインターフェース 1400を入れ替えることで、様々なシステ ムに適用可能となる。
[0026] 換言すれば、メモリコントローラコア部 1300を変更 (再設計)することなぐシステム バス構成の異なるシステムを構築したり、仕様の異なる共有メモリを使用したりするこ とが可能となる。
[0027] [第 2の実施の形態]
図 2は、第 2の実施の形態に係るメモリコントローラの構成図である。図 1と同一部分 には同一符号を付し、異なる点を中心に説明する。なお、後述する、第 3〜第 8の実 施の形態でも、同様に、図 1と同一部分には同一符号を付し、異なる点を中心に説明 する。
[0028] 図 2に示したように、第 2の実施の形態では、複数の共有メモリ 1500, 1510, 152 0に対応すベぐ共有メモリ側にもコントローラ内部インターフェースノ ス 1330を設け ている。そして、それら共有メモリ 1500, 1510, 1520に対応して、それぞれメモリイ ンターフェース 1400, 1410, 1420が設けられている。
[0029] このような構成の下で、コマンド制御部 1320は、コントローラ内部インターフェース ノ ス 1330を介して各共有メモジ 1500, 1510, 1520に対するアクセス帘 IJ御を行う。
[0030] このように、第 2の実施の形態では、メモリコントローラコア部 1300に共有メモリ用の メモリコントローラ内部インターフェースバス 1330を設けている。従って、共有メモリを 増設する場合にメモリコントローラコア部 1300の基本的な設計を変更する必要はなく 、単に各共有メモリに対応するメモリインターフェース 1400, 1410, 1420を接続す るだけで済む。
[0031] [第 3の実施の形態]
図 3は、第 3の実施の形態に係るメモリコントローラの構成図である。図 3に示したよ うに、第 3の実施の形態では、メモリコントローラ内部システムバス 1310に対して調停 回路 A1340を付カ卩している。
[0032] この調停回路 A1340は、ノ スマスター、ここではシステムバスインターフェース 120 0, 1210, 1220から同時にアクセス要求コマンドを受信した場合に、そのアクセス要 求コマンドの実行順を調停するものである。すなわち、バスマスター側から同時に複 数のアクセス要求が発生したとする。この場合、調停回路 A1340は、対応するバスマ スター、ここではシステムバス 1000, 1010, 1020に予め設定された優先度に応じて アクセス要求コマンドを実行するように調停する。
[0033] 例えば、システムバス 1000に CPUが接続され、他のシステムバス 1010, 1020に 比べリアルタイム性が要求される場合は、調停回路 A1340では、そのシステムバス 1 000に 1番高い優先度が設定される。そして、システムバス 1000からのアクセス要求 と、他のシステムバス 1010, 1020からのアクセス要求が競合した場合は、調停回路 A1340は、システムバス 1000からのアクセス要求を優先的に処理する。
[0034] このように、第 3の実施の形態では、メモリコントローラコア部 1300の基本的な設計 を変更することなぐバスマスターに応じてリアルタイム性を確保しながらアクセス制御 を行うことが可能となる。
[0035] [第 4の実施の形態]
図 4は、第 4の実施の形態に係るメモリコントローラの構成図である。図 4に示したよ うに、第 4の実施の形態では、コントローラ内部インターフェースバス 1330に対して調 停回路 B1350を付加している。
[0036] この調停回路 B1350は、メモリインターフェース 1400, 1410, 1420を介して共有 メモリ 1500, 1510, 1520から同時に読み出しデータを受けた場合に、そのデータ 転送順を調停するものである。すなわち、コントローラ内部インターフェースバス 133 0がメモリインターフェース 1400, 1410, 1420から同時に読み出しデータを受信し たとする。この場合、調停回路 B1350は、対応する共有メモリ 1500, 1510, 1520 に予め設定された優先度に応じて、読み出しデータをシステムバス 1000, 1010、 1 020に転送するように調停する。
[0037] 例えば、例えば、共有メモリ 1500は SDRAM、共有メモリ 1510は ROMで構成さ れている場合、その共有メモリ 1500の方に高い優先度が設定される。そして、調停 回路 B1350は、共有メモリ 1500と共有メモリ 1510から同時に読み出しデータを受け た場合は、共有メモリ 1500からの読み出しデータを優先的にインターフェースバス側 に転送するように調停する。
[0038] [第 5の実施の形態] 図 5は、第 5の実施の形態に係るメモリコントローラの構成図である。図 5に示したよ うに、第 5の実施の形態では、コマンド制御部 1320がコマンドキュー部 1321、及び 優先度設定レジスタ 1322を有して 、る。
[0039] システムバス優先度設定レジスタ 1322は、それぞれシステムバス 1000, 1010, 1 020の優先度を個別に設定するレジスタにより構成されている。これらのレジスタには 、システムバス 1000, 1010, 1020のバス IDと対応付けて優先度を示すデータが設 定されている。
[0040] コマンドキュー部 1321では、図 6に示したように、複数のアクセスコマンド 210, 22 0, 230が入力順に配列されている。これらアクセスコマンド 210, 220, 230は、それ ぞれ、アクセスアドレス 211, 221, 231、リードブライ卜を示すフラグ 212, 222, 232 の情報を含んでいる。さらに、アクセスコマンド 210, 220, 230は、それぞれ、システ ムノ スのノ ス ID213, 223, 233、システムノ スの ί憂 fe t214, 224, 234の' If を 含んでいる。
[0041] このような構成の下で、コマンド制御部 1320は、システムバス 1000, 1010, 1020 力 アクセス要求が発行された場合、そのアクセス要求を発行したシステムバスのバ ス IDを優先度設定レジスタ 1322上で検索する。そして、コマンド制御部 1320は、検 索したバス IDに対応付けられた優先度情報を取得し、取得した優先度情報により今 回のアクセス要求の優先度を決定する。
[0042] 次に、コマンド制御部 1320は、今回決定した優先度とコマンドキュー部 1321に登 録されている各アクセスコマンド 210, 220, 230の優先度とを比較する。そして、既 に登録されている各アクセスコマンドの優先度の全てが今回判定した優先度以上で あれば、コマンド制御部 1320は、今回決定した優先度に係るアクセスコマンドが最 後に実行されるに、当該アクセスコマンドをコマンドキュー部 1321に新たに登録する
[0043] 一方、今回判定した優先度より低い優先度のアクセスコマンドが 1つでも登録されて いる場合は、コマンド制御部 1320は、新旧のアクセスコマンドが優先度の高い順に 実行されるように、今回の要求に係るアクセスコマンドをコマンドキュー部 1321に新 たに登録する。 [0044] 従って、第 5の実施の形態では、メモリコントローラコア部 1300の基本的な設計を 変更することなぐバスマスターに応じてリアルタイム性を確保しながらアクセス制御を 行うことが可能となる。
[0045] また、第 5の実施の形態においても、共有メモリを増設する場合に、メモリコントロー ラコア部 1300の基本的な設計を変更する必要はなく、単に各共有メモリに対応する メモリインターフェース 1400, 1410, 1420を接続するだけで済む。
[0046] [第 6の実施の形態]
図 7は、第 6の実施の形態に係るメモリコントローラの構成図である。図 7に示したよ うに、第 6の実施の形態では、コマンド制御部 1320の内部にライトデータバッファ 13 23を設けている。
[0047] このように、第 6の実施の形態では、コマンド制御部 1320の内部にライトデータバッ ファ 1323を設けたので、各システムバスインターフェースのライトデータバッファのサ ィズを低減することが可能となる。これにより、メモリコントローラ 1100に接続するシス テムバスの数が増加した場合のオーバーヘッドを低減することも可能となる。
[0048] [第 7の実施の形態]
図 8は、第 7の実施の形態に係るメモリコントローラの構成図である。図 8に示したよ うに、第 7の実施の形態では、メモリコントローラコア部 1300にダイレクトリードデータ ノ ス 1360を設けている。このダイレクトリードデータバス 1360は、コマンド制御部 13 20を経由することなぐメモリインターフェース 1400からメモリコントローラ内部システ ムバス 1310へダイレクトにリードデータを転送するためのバスである。
[0049] また、システムバスインターフェース 1200, 1210, 1220〖こは、それぞれ、リードデ 一タノ ッファ 1202, 1212, 1222力設けられている。
[0050] 従って、共有メモリ 1500からデータを読み出す際のレイテンシーを低減し、高速読 み出しが可能となる。
[0051] なお、図 8には、コマンド制御部 1320に、コマンドキュー部 1321、優先度設定レジ スタ 1322、ライトデータバッファ 1323を設けている力 これらは削除してもよい。ただ し、コマンドキュー部 1321、優先度設定レジスタ 1322、ライトデータバッファ 1323を 設けた場合は、これら構成要素の前述の効果も得られることは言うまでもな 、。 [0052] [第 8の実施の形態]
図 9は、第 8の実施の形態に係るメモリコントローラの構成図である。第 8の実施の形 態では、図 9に示したように、図 8に示した第 7の実施の形態を構成する要素の他に、 メモリコントローラ内部インターフェースバス 1330と、それに接続された調停回路 B1 350を有している。
[0053] また、第 8の実施の形態では、メモリコントローラ内部システムノ ス 1310にも調停回 路 A1340を接続している。
[0054] 従って、第 8の実施の形態では、第 1〜第 7の実施の形態に係る前述の全ての効果 を得ることができる。
[0055] 本発明は上記実施の形態に制限されるものではなぐ本発明の精神及び範囲から 離脱することなぐ様々な変更及び変形が可能である。従って、本発明の範囲を公に するために、以下の請求項を添付する。
[0056] 本願は、 2006年 7月 21日提出の日本国特許出願特願 2006- 199943を基礎として 優先権を主張するものであり、その記載内容の全てを、ここに援用する。

Claims

請求の範囲
[1] 複数のバスで共有可能なメモリを制御するメモリコントローラにお 、て、
複数のバスインターフェース部と、メモリコントローラコア部と、メモリインターフェース 部を有し、
前記複数のバスインターフェース部は、前記複数のバス力 のコマンドを受け付け 、前記メモリコントローラコア部が受信可能なコマンドに変換し、
前記メモリコントローラコア部は、受け付けたコマンドを前記メモリインターフェース 部に発行するコマンド制御部を有し、
前記メモリインターフェース部は、前記メモリコントローラコア部力も受け付けたコマ ンドをメモリに対するコマンドへ変換し、
更に、前記バスインターフェース部と前記コマンド制御部との間でコマンドを授受す るバスを有するメモリコントローラ。
[2] 更に、前記メモリインターフェース部を含む複数のメモリインターフェース部と前記コ マンド制御部との間でコマンドを授受する第 2のバスを有する請求項 1に記載のメモリ コントローラ。
[3] 更に、前記複数のバスインターフェース力も発行されたアクセスコマンドの実行順を 調停する調停回路を有する請求項 1に記載のメモリコントローラ。
[4] 更に、前記複数のメモリインターフェース部力も受けた読み出しデータの転送順を 調停する調停回路を有する請求項 2に記載のメモリコントローラ。
[5] 更に、前記複数のバスインターフェース力も発行されたアクセスコマンドに関連して 設定された優先度に応じて、前記アクセスコマンド用のキューを制御することを特徴と する請求項 1に記載のメモリコントローラ。
[6] 前記コマンド制御部は、前記バスインターフェース部からの書き込みデータを前記 メモリインターフェースに対して転送するためのバッファを有する請求項 1に記載のメ モリコントローラ。
[7] 更に、前記メモリインターフェース部からの読み出しデータを、前記コマンド制御部 を介することなく前記第 1のノ スに転送するためのダイレクトリードデータバスを有す る請求項 1に記載のメモリコントローラ。 [8] 請求項 1に記載のメモリコントローラを搭載したコンピュータ。
PCT/JP2007/063041 2006-07-21 2007-06-28 Contrôleur de mémoire WO2008010397A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/304,749 US8019951B2 (en) 2006-07-21 2007-06-28 Memory controller including multiple system bus interfaces

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006199943A JP4895183B2 (ja) 2006-07-21 2006-07-21 メモリコントローラ
JP2006-199943 2006-07-21

Publications (1)

Publication Number Publication Date
WO2008010397A1 true WO2008010397A1 (fr) 2008-01-24

Family

ID=38956732

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/063041 WO2008010397A1 (fr) 2006-07-21 2007-06-28 Contrôleur de mémoire

Country Status (3)

Country Link
US (1) US8019951B2 (ja)
JP (1) JP4895183B2 (ja)
WO (1) WO2008010397A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5019573B2 (ja) 2006-10-18 2012-09-05 キヤノン株式会社 メモリ制御回路とメモリシステム、及びそのメモリ制御方法、及び集積回路
US8239629B2 (en) * 2009-03-31 2012-08-07 Micron Technology, Inc. Hierarchical memory architecture to connect mass storage devices
JP2010252090A (ja) * 2009-04-16 2010-11-04 Rohm Co Ltd 半導体装置
JP2012128627A (ja) * 2010-12-15 2012-07-05 Toshiba Corp データ転送システム
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
CN102591817B (zh) * 2011-12-30 2014-12-31 中山大学 一种多总线桥控制器及其实现方法
KR20140127233A (ko) 2012-01-27 2014-11-03 마벨 월드 트레이드 리미티드 동적인 우선순위 제어를 위한 시스템들 및 방법들
US9190133B2 (en) 2013-03-11 2015-11-17 Micron Technology, Inc. Apparatuses and methods for a memory die architecture including an interface memory
WO2014156282A1 (ja) * 2013-03-25 2014-10-02 三菱電機株式会社 バスマスタ、バスシステム及びバス制御方法
US9465754B2 (en) * 2013-06-28 2016-10-11 Analog Devices, Inc. Bridge circuit to arbitrate bus commands
TWI553483B (zh) * 2014-10-13 2016-10-11 瑞昱半導體股份有限公司 處理器及存取記憶體的方法
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US11003602B2 (en) * 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047974A (ja) * 1998-07-27 2000-02-18 Fujitsu Ltd バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JP2000148576A (ja) * 1998-11-06 2000-05-30 Nec Corp ファイル管理システム
JP2002342159A (ja) * 2001-05-21 2002-11-29 Hitachi Ltd メモリコントローラ
JP2005316546A (ja) * 2004-04-27 2005-11-10 Victor Co Of Japan Ltd メモリコントローラ
JP2006099895A (ja) * 2004-09-30 2006-04-13 Canon Inc メモリ処理装置
JP2006184792A (ja) * 2004-12-28 2006-07-13 Seiko Epson Corp メモリコントローラ、表示コントローラ及びメモリ制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120154A (ja) 1997-10-20 1999-04-30 Fujitsu Ltd コンピュータシステムにおけるアクセス制御装置および方法
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
US7755951B2 (en) 2006-09-01 2010-07-13 Canon Kabushiki Kaisha Data output apparatus, memory system, data output method, and data processing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047974A (ja) * 1998-07-27 2000-02-18 Fujitsu Ltd バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JP2000148576A (ja) * 1998-11-06 2000-05-30 Nec Corp ファイル管理システム
JP2002342159A (ja) * 2001-05-21 2002-11-29 Hitachi Ltd メモリコントローラ
JP2005316546A (ja) * 2004-04-27 2005-11-10 Victor Co Of Japan Ltd メモリコントローラ
JP2006099895A (ja) * 2004-09-30 2006-04-13 Canon Inc メモリ処理装置
JP2006184792A (ja) * 2004-12-28 2006-07-13 Seiko Epson Corp メモリコントローラ、表示コントローラ及びメモリ制御方法

Also Published As

Publication number Publication date
US20090138665A1 (en) 2009-05-28
US8019951B2 (en) 2011-09-13
JP2008027247A (ja) 2008-02-07
JP4895183B2 (ja) 2012-03-14

Similar Documents

Publication Publication Date Title
JP4895183B2 (ja) メモリコントローラ
EP1422626B1 (en) Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US20020161978A1 (en) Multi-service system-on-chip including on-chip memory with multiple access path
JP2004171209A (ja) 共有メモリデータ転送装置
JP4182801B2 (ja) マルチプロセサシステム
JP2010282405A (ja) データ処理システム
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
EP1222551B1 (en) Asynchronous centralized multi-channel dma controller
KR20020009823A (ko) 버스 시스템 및 그 버스 중재방법
US8359419B2 (en) System LSI having plural buses
US8244994B1 (en) Cooperating memory controllers that share data bus terminals for accessing wide external devices
US8867533B2 (en) Multi-tier switch interface unit arbiter
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP2008140065A (ja) アクセス調停装置、アクセス調停方法、及び情報処理装置
JP4928683B2 (ja) データ処理装置
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JPS63175964A (ja) 共有メモリ
US7406551B2 (en) Bus configuration circuit
JP3752478B2 (ja) 情報処理装置
JP2632049B2 (ja) マルチプロセッサシステム
JP4609540B2 (ja) マルチプロセサシステム
WO2007119373A1 (ja) システム制御装置
JP2001306486A (ja) 共用メモリアクセスシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07767834

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12304749

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07767834

Country of ref document: EP

Kind code of ref document: A1