JP7476676B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP7476676B2
JP7476676B2 JP2020097826A JP2020097826A JP7476676B2 JP 7476676 B2 JP7476676 B2 JP 7476676B2 JP 2020097826 A JP2020097826 A JP 2020097826A JP 2020097826 A JP2020097826 A JP 2020097826A JP 7476676 B2 JP7476676 B2 JP 7476676B2
Authority
JP
Japan
Prior art keywords
stage
unit
memory
memory access
outputs
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.)
Active
Application number
JP2020097826A
Other languages
English (en)
Other versions
JP2021190020A (ja
Inventor
祐史 近藤
直純 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020097826A priority Critical patent/JP7476676B2/ja
Priority to US17/241,117 priority patent/US11561694B2/en
Publication of JP2021190020A publication Critical patent/JP2021190020A/ja
Application granted granted Critical
Publication of JP7476676B2 publication Critical patent/JP7476676B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

本発明は、演算処理装置に関する。
例えば、プロセッサとメモリとの間でデータ通信を行うインタフェース回路は、プロセッサから順次受けるリクエストを記憶する記憶部を有し、記憶部に記憶されたリクエストをパイプライン処理によりメモリに順次出力する。これにより、インタフェース回路は、例えば、先行するリードリクエストの処理が完了する前に、後続のリクエストをメモリに出力することが可能になる(例えば、特許文献1参照)。
特開2005-190320号公報
例えば、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリにおいて、同一のバンクに供給するリードコマンドの最小供給間隔として、tCCDL(Column to Column Delay Long)が規定される。tCCDL(クロックサイクル数)は、メモリの動作周波数が高いほど増加する。
高スループットのメモリアクセスを実現するために、リードコマンドは、リードデータをメモリから連続して出力可能な間隔でメモリに供給されることが好ましい。また、連続する複数のリードコマンドに応じてメモリから出力されるリードデータの間隔が空く場合、複数のバンクを並列に動作させ、リードコマンドを交互に供給することで、リードデータを連続してメモリから出力させることが可能である。
例えば、メモリに出力するアクティブコマンドおよびリードコマンド等のアクセスコマンドは、メモリアクセス要求を順次シフトするシフトレジスタ内の所定のステージにメモリアクセス要求が到達するタイミングに基づいて生成される。複数のバンクを並列に動作させる場合、メモリを最大動作周波数で動作させる場合の最大の並列数に対応する数のシフトレジスタが必要になる。一方、動作周波数が低く、並列数が少ない場合、動作しない無駄なシフトレジスタが発生する。
1つの側面では、本発明は、メモリに出力するアクセスコマンドの並列数を変更可変なメモリアクセスコントローラを含む演算処理装置の回路規模を低減することを目的とする。
一つの観点によれば、演算処理装置は、演算を実行する演算部と、前記演算部が出力するメモリアクセス要求に基づいてメモリのアクセスを制御するメモリアクセスコントローラとを有する演算処理装置であって、前記メモリアクセスコントローラは、第1シフト信号と、複数の資源番号のいずれかと、前記演算部から受ける前記メモリアクセス要求とを、動作モードに応じた時間間隔で出力するメモリアクセス受領部と、直列に接続された複数のステージを有し、前記メモリアクセス受領部からの前記資源番号および前記メモリアクセス要求を前記第1シフト信号に基づいて初段のステージで受け、動作モードに応じたタイミングで前記初段のステージから後段のステージに前記資源番号および前記メモリアクセス要求をシフトするシフトレジスタと、前記資源番号のそれぞれに対応して設けられ、前記複数のステージが保持する前記資源番号と前記メモリアクセス要求とを受け、受けた資源番号が自身を示す資源番号と一致する場合、受けたメモリアクセス要求に対応するアクセスコマンドを前記メモリに出力する複数のメモリアクセス送信部と、を有する。

1つの側面では、本発明は、メモリに出力するアクセスコマンドの並列数を変更可変なメモリアクセスコントローラを含む演算処理装置の回路規模を低減することができる。
一実施形態におけるメモリアクセスコントローラを含む演算処理装置の一例を示すブロック図である。 図1のメモリアクセスコントローラの一例を示すブロック図である。 図2のスケジューリング部の一例を示すブロック図である。 図3のスケジューリング部の動作の一例を示すタイミング図である。 図2のリクエスト保持パイプラインのステージの一例を示すブロック図である。 図2の処理部の一例を示すブロック図である。 図2のメモリアクセスコントローラによりメモリにリードアクセスする一例を示すタイミング図である。 図2のメモリアクセスコントローラによりメモリにリードアクセスする別の例を示すタイミング図である。 図7のリードアクセスにおけるメモリアクセスコントローラの動作の一例を示す説明図である。 図9の続きを示す説明図である。 図10の続きを示す説明図である。 図11の続きを示す説明図である。 並列度l=2において、ステージSTG0が保持するリクエスト情報の処理先に応じた各ステージでの経過サイクル数の一例を示す説明図である。 図8のリードアクセスにおけるメモリアクセスコントローラの動作の一例を示す説明図である。 図14の続きを示す説明図である。 図15の続きを示す説明図である。 図16の続きを示す説明図である。 並列度l=3において、ステージSTG0が保持するリクエスト情報の処理先に応じた各ステージでの経過サイクル数の一例を示す説明図である。 他のメモリアクセスコントローラのリクエスト保持パイプラインの構成の一例(比較例)を示す説明図である。
以下、図面を用いて実施形態が説明される。
図1は、一実施形態におけるメモリアクセスコントローラを含む演算処理装置の一例を示す。図1に示す演算処理装置10は、例えば、CPU(Central Processing Unit)である。以下では、演算処理装置10をCPU10とも称する。
CPU10は、複数のコア12、キャッシュ14、ネットワーク制御部16、インタコネクト18およびメモリアクセスコントローラ20を有する。各コア12は、キャッシュ14に格納された命令を実行し、キャッシュ14に格納されたデータの演算を実行する。各コア12は、演算部の一例である。
例えば、キャッシュ14は、LLC(Last Level Cache)であり、複数のコア12に共通に接続される。キャッシュ14は、メインメモリ等のメモリ30に記憶されたデータおよび命令の一部および他のCPU10に接続されるメモリに記憶されたデータおよび命令の一部を記憶可能である。特に限定されないが、メモリ30は、DDR(Double Data Rate)4-SDRAMである。ネットワーク制御部16は、キャッシュ14、インタコネクト18およびメモリアクセスコントローラ20を相互に接続する。インタコネクト18は、他のCPU10に接続され、他のCPU10との間で通信を実行する。
メモリアクセスコントローラ20は、メモリ30に接続され、メモリ30のアクセスを制御する。例えば、メモリアクセスコントローラ20は、自CPU10または他のCPU10のキャッシュ14が出力するメモリアクセス要求(図2のMREQ)に基づいてメモリ30のアクセスを制御する。例えば、メモリアクセス要求がリードアクセス要求の場合、メモリアクセスコントローラ20は、リードアクセス要求に基づいて、メモリ30にリードアクセスし、メモリ30に記憶されたデータをリードする。
また、メモリアクセス要求がライトアクセス要求の場合、メモリアクセスコントローラ20は、ライトアクセス要求に基づいて、メモリ30にライトアクセスし、メモリ30にデータをライトする。特に限定されないが、1つのメモリアクセス要求に応じて、256バイトのデータが読み出しされ、または256バイトのデータが書き込みされる。
なお、CPU10に搭載されるコア12の数は、1つでもよい。また、CPU10は、キャッシュ14およびネットワーク制御部16を持たなくてもよく、その場合、各コア12がメモリアクセスコントローラ20に接続される。
図2は、図1のメモリアクセスコントローラ20の一例を示す。メモリアクセスコントローラ20は、リクエスト受信部210、スケジューリング部220、リクエスト保持パイプライン230、設定レジスタ240、複数の処理部25(250、251、252)およびセレクタ260を有する。
リクエスト受信部210は、ネットワーク制御部16(図1)から受けるメモリアクセス要求MREQに含まれるリクエスト情報REQINFをスケジューリング部220に出力する。例えば、リクエスト情報REQINFは、動作種別(ライトまたはリード)、バンクアドレス、ロウアドレス、カラムアドレスおよびバリッドフラグ等を含む。
スケジューリング部220は、メモリ30に供給するクロックであるメモリクロックMCLKに同期して動作する。なお、メモリクロックMCLKは、スケジューリング部220だけでなく、メモリアクセスコントローラ20内のクロック同期回路に供給される。スケジューリング部220は、設定レジスタ240に設定された並列度l(エル)、位相差mおよび平均リクエスト間隔nに基づいて、資源番号NXTRSCおよびシフト信号SFTOUT0をリクエスト情報REQINFとともに出力する。
並列度lは、メモリアクセスの並列度を示し、メモリ30のアクセスを制御する、並列に動作する処理部25(250、251、252)の数を示し、動作モードの一例である。位相差mは、メモリ30に供給するアクティブコマンドACTの最小供給間隔(メモリクロックMCLKのサイクル数)を示し、並列度l(処理部25の動作数)に応じて異なる。
平均リクエスト間隔nは、アクティブコマンドACTの平均供給間隔(メモリクロックMCLKのサイクル数)を示す。資源番号NXTRSCは、アクティブコマンドACTおよびリードコマンドRD等のアクセスコマンドを生成する処理部25を識別する番号であり、"0"が処理部250、"1"が処理部251、"2"が処理部252を示す。
なお、スケジューリング部220は、メモリ30のアクセス効率を向上するため、リクエスト受信部210からのリクエスト情報REQINFのメモリ30への出力順を決定してもよい。この場合、スケジューリング部220は、決定した順序にしたがって、リクエスト情報REQINFをリクエスト保持パイプライン230に出力する。
スケジューリング部220の例は、図3に示し、アクティブコマンドACTおよびリードコマンドRDの例は、図7以降に示す。例えば、アクティブコマンドACTは、メモリ30に含まれる複数のワード線のいずれかを選択するために出力され、リードコマンドRDは、選択されたワード線に接続される複数のメモリセルのうちの所定数を選択するために出力される。
後述するように、並列度lはメモリ30の動作周波数に応じて変更される。スケジューリング部220は、シフト信号SFTOUT0と、複数の資源番号RSCのいずれかと、コア12から受けるメモリアクセス要求MREQとを、動作モードに応じた時間間隔で出力するメモリアクセス受領部の一例である。
リクエスト保持パイプライン230は、シフト信号SFTOUT0に基づいて動作する直列に接続された複数(この例では、9個)のステージSTG(STG0~STG8)を有する。各ステージSTGは、資源番号NXTRSC(以下、単に資源番号RSCとも称する)と経過サイクルCYCとリクエスト情報REQINFとを保持する保持領域を有する。例えば、経過サイクルCYCは、メモリクロックMCLKのクロックサイクル数で示される。互いに隣接するステージSTG間での情報のシフトは、図5で説明するシフト入力信号SFTINに同期して実行される。
リクエスト保持パイプライン230は、動作モードに応じたタイミングで初段のステージSTG0から後段のステージSTG1~STG8に資源番号RSC、経過サイクルCYCおよびメモリアクセス要求REQINFをシフトするシフトレジスタとして動作する。但し、リクエスト保持パイプライン230は、並列度lと資源番号RSCとに応じて、ステージSTGが情報を保持する期間(サイクル数)が変化する点で、通常のシフトレジスタと異なる。リクエスト保持パイプライン230の各ステージSTGの例は、図5に示す。
設定レジスタ240は、並列度l、位相差m、平均リクエスト間隔n、ロウタイミングTROWおよびカラムタイミングTCOLがそれぞれ設定されるレジスタを有する。例えば、並列度l、位相差m、平均リクエスト間隔n、ロウタイミングTROWおよびカラムタイミングTCOLは、メモリ30の仕様に応じて、CPU10の初期化プログラムの実行中に設定レジスタ240に設定される。並列度l、位相差mおよび平均リクエスト間隔nは、各処理部25とスケジューリング部220とに供給される。ロウタイミングTROWおよびカラムタイミングTCOLは、各処理部25に供給される。
各処理部25(250、251、252)は、リクエスト保持パイプライン230の各ステージSTGから出力されるリクエスト情報REQINF(メモリアクセス要求)を含む情報に基づいて、複数のアクセスコマンドをメモリ30に出力する。複数のアクセスコマンドは、ロウ制御信号ROWおよびカラム制御信号COLとしてメモリ30に出力される。ロウ制御信号ROWは、アクティブコマンドACT、バンクアドレスおよびロウアドレスを含む。カラム制御信号COLは、リードコマンドRD(またはライトコマンド)、バンクアドレスおよびカラムアドレスを含む。
例えば、各処理部25は、自処理部25を示す資源番号RSCを保持するステージSTGが出力する経過サイクルCYCに基づいて、リクエスト情報REQINFを使用してロウ制御信号ROWまたはカラム制御信号COLを出力する。並列度l=2の場合、処理部250、251が動作し、処理部252は動作を停止する。並列度l=3の場合、処理部250、251、252が動作する。各処理部25は、メモリアクセス要求MREQに対応して複数のアクセスコマンドACT、RDをメモリ30に順次出力するメモリアクセス送信部の一例である。処理部25の例は、図6に示す。
セレクタ260は、各処理部25が出力するロウ制御信号ROWおよびカラム制御信号COLを選択してメモリ30に出力する。なお、セレクタ260は、オア回路の論理で設計されてもよい。
図3は、図2のスケジューリング部220の一例を示す。スケジューリング部220は、リクエスト情報出力部221、資源番号出力部222、クロックカウンタ223およびシフト信号生成部224を有する。リクエスト情報出力部221は、要求出力部の一例であり、シフト信号生成部224は、第1シフト信号生成部の一例である。
リクエスト情報出力部221は、リクエスト受信部210から受けるリクエスト情報REQINFを順次保持し、保持したリクエスト情報REQINFをシフト信号SFTOUT0に同期してリクエスト保持パイプライン230に順次出力する。
資源番号出力部222は、リクエスト情報REQINFを使用してメモリ30に出力するアクセスコマンドを生成する処理部25(250、251、252)を示す資源番号NXTRSCを順次生成して出力する。資源番号出力部222は、並列度l=2の場合、シフト信号SFTOUT0に同期して、処理部250、251を示す"0"、"1"を資源番号NXTRSCとして交互に出力する。資源番号出力部222は、並列度l=3の場合、シフト信号SFTOUT0に同期して、処理部250、251、252を示す"0"、"1"、"2"を資源番号NXTRSCとして交互に出力する。
これにより、資源番号出力部222を、"並列度l-1"を最大値として資源番号NXTRSCを交互に生成するカウンタとして動作させることができ、資源番号NXTRSCの総数を、並列度l(動作モード)に応じて相違させることができる。並列度lに応じて資源番号NXTRSCを交互に出力できるため、並列度lの設定にかかわりなく、リクエスト保持パイプライン230を動作させることができる。この結果、図7および図8に示すように、メモリアクセスコントローラ20は、並列度lに応じたタイミングでアクセスコマンドをメモリ30に出力することができる。
クロックカウンタ223は、メモリクロックMCLKに同期してカウンタ値CNTを生成し、生成したカウンタ値CNTをシフト信号生成部224に出力する。クロックカウンタ223は、図中の式に示すように、シフト信号SFTOUT0が出力されていない間、メモリクロックMCLKに同期してカウンタ値CNTをインクリメントする。また、クロックカウンタ223は、シフト信号SFTOUT0の出力に応答してカウンタ値CNTを"1"にリセットする。
シフト信号生成部224は、資源番号NXTRSC、カウンタ値CNT、並列度l、位相差mおよび平均リクエスト間隔nに基づいて決定される時間間隔でシフト信号SFTOUT0を生成し、出力する。並列度lが"2"と"3"の場合で、位相差=m、平均リクエスト間隔=nとするときのシフト信号SFTOUT0の出力タイミングは、図中の式により示される。
シフト信号生成部224は、並列度l=2、資源番号NXTRSC=0の場合、カウンタ値CNT=mのときにシフト信号SFTOUT0を出力する。シフト信号生成部224は、並列度l=2で資源番号NXTRSC=1の場合、カウンタ値CNT="2n-m"のときにシフト信号SFTOUT0を出力する。シフト信号生成部224は、並列度l=3の場合、カウンタ値CNTが"n"になる毎にシフト信号SFTOUT0を出力する。
図4は、図3のスケジューリング部220の動作の一例を示す。図4は、並列度l=2、位相差m=4、平均リクエスト間隔n=8の例と、並列度l=3、位相差m=8、平均リクエスト間隔n=8の例とを示す。
並列度l=2の場合、スケジューリング部220は、資源番号NXTRSC=0のとき、クロックカウンタ223が"4"をカウントしたことに基づいてシフト信号SFTOUT0を出力する。また、並列度l=2の場合、スケジューリング部220は、資源番号NXTRSC=1のとき、クロックカウンタ223が"12"をカウントしたことに基づいてシフト信号SFTOUT0を出力する。
並列度l=3の場合、スケジューリング部220は、資源番号NXTRSCにかかわらず、クロックカウンタ223が"8"をカウントしたことに基づいてシフト信号SFTOUT0を出力する。なお、図3で説明したように、カウンタ値CNTは、シフト信号SFTOUT0の出力に同期して"1"に初期化される。
図4に示すように、スケジューリング部220は、CPU10に接続されるメモリ30の仕様に応じて設定された並列度l、位相差mおよび平均リクエスト間隔nと、現在の資源番号NXTRSCとに基づいて、カウンタ値CNTの最大値を変更することができる。そして、スケジューリング部220は、最大値が可変なカウンタ値CNTに基づいて、所望のタイミングでシフト信号SFTOUT0を出力することができ、シフト信号SFTOUT0の出力に合わせて資源番号NXTRSCを更新することができる。
図5は、図2のリクエスト保持パイプライン230のステージSTGの一例を示す。各ステージSTGの構成は、互いに同じであるため、図5では、2段分(k-1段目とk段目(kは、1以上、8以下の整数)を示す。各ステージSTGは、資源番号保持部231、経過サイクル保持部232、リクエスト情報保持部233およびシフト信号生成部234を有する。資源番号保持部231およびリクエスト情報保持部233は、資源番号NXTRSCとメモリアクセス要求とを保持するアクセス情報保持部の一例である。シフト信号生成部234は、第2シフト信号生成部の一例である。
なお、初段のステージSTG0は、図3のスケジューリング部220から出力される資源番号RSC、リクエスト情報REQINFおよびシフト信号SFTOUT0を受ける。ステージSTG0は、スケジューリング部220からのシフト信号SFTOUT0をシフト入力信号SFTINとして受ける。ステージSTG0に供給される経過サイクルCYCは、スケジューリング部220からリクエスト情報REQINFを受けたときを基準(="0")として積算される経過サイクルであり、図示しないクロックカウンタにより生成される。また、初段のステージSTG0に入力される情報は、各処理部25に供給されない。
資源番号保持部231は、有効レベル(例えば、ハイレベル)のシフト入力信号SFTINをイネーブル端子ENで受けている間、前段からの資源番号RSCを取り込んで保持し、保持した資源番号RSCを後段のステージSTGと各処理部25とに出力する。2段目以降のステージSTGは、前段のステージSTGが出力するシフト信号SFTOUT0をシフト入力信号SFTINとして受けて動作する。なお、初段のステージSTG0の資源番号保持部231は、図3のスケジューリング部220の資源番号出力部222が出力する資源番号NXTRSC("0"、"1"の繰り返し、または、"0"、"1"、"2"の繰り返し)を順次受ける。
経過サイクル保持部232は、セレクタSEL、フリップフロップFFおよびインクリメンタINCを有する。セレクタSELは、シフト入力信号SFTINがハイレベルの間、前段からの経過サイクルCYCを選択し、シフト入力信号SFTINがロウレベルの間、インクリメンタINCからの経過サイクルCYCを選択する。そして、セレクタSELは、選択した経過サイクルCYCをフリップフロップFFに出力する。
フリップフロップFFは、セレクタSELから受ける経過サイクルCYCを図示しないメモリクロックMCLKに同期して取り込み、取り込んだ経過サイクルCYCをインクリメンタINCに出力する。インクリメンタINCは、経過サイクルCYCを"1"増加させ、増加させた経過サイクルCYCをセレクタSELの入力に戻すととともに、次段のステージSTGおよび各処理部25に出力する。
2段目以降の各ステージSTG1~STG8の経過サイクル保持部232は、前段のステージSTGの経過サイクル保持部232が保持する経過サイクルCYC(サイクル数)を、前段のステージSTGが出力するシフト信号SFTOUTに同期して保持する。また、各ステージSTG1~STG8の経過サイクル保持部232は、前段のステージSTGがシフト信号SFTOUTを出力しない間、保持しているサイクル数を順次更新する。これにより、各ステージSTGの経過サイクル保持部232は、初段のステージSTG0でリクエスト情報REQINFを受けてからのサイクル数を保持することができ、保持しているサイクル数を各処理部25に出力することができる。この結果、各処理部25は、各ステージSTGからのサイクル数に基づいて、メモリ30へのアクセスコマンドの出力タイミングを判断することができる。
シフト信号生成部234は、並列度l、位相差mおよび平均リクエスト間隔nと、経過サイクル保持部232が出力する経過サイクルCYCとに基づいて、図中の式に示す規則にしたがってシフト信号SFTOUTを生成する。シフト信号生成部234が生成したシフト信号SFTOUTは、次段のステージSTGにシフト入力信号SFTINとして供給される。このように、各ステージSTGのシフト信号生成部234は、経過サイクルCYCが、並列度l、位相差mおよび平均リクエスト間隔nと自ステージSTGの位置(=k)とにより決定される値になった場合、シフト信号SFTOUTを出力する。
シフト信号生成部234は、並列度l=2で、資源番号保持部231が保持する資源番号RSCが"0"場合、経過時刻が"k*n+m"のとき、シフト信号SFTOUTを1サイクルの期間、有効レベル(例えば、ハイレベル)に設定する。符号*は、積を示す。シフト信号生成部234は、並列度l=2で、資源番号保持部231が保持する資源番号RSCが"1"の場合、経過時刻が"(k+1)*n"のとき、シフト信号SFTOUTを1サイクルの期間、有効レベルに設定する。シフト信号生成部234は、並列度l=3の場合、経過時刻が"(k+1)*n"のとき、シフト信号SFTOUTを1サイクルの期間、有効レベルに設定する。
すなわち、シフト信号生成部234は、メモリ30の仕様に応じて予め設定された並列度l、位相差mおよび平均リクエスト間隔nと、現在の資源番号NXTRSCとに応じて、シフト信号SFTOUTの出力タイミングを変更することができる。この結果、図10で説明するように、アクティブコマンドACTの供給間隔が一定でない場合にも、各ステージSTGのシフト信号SFTOUTの出力タイミングを揃えることができ、リクエスト保持パイプライン230の誤動作を抑止することができる。
例えば、並列度l=2、位相差m=4、平均リクエスト間隔n=8であるとする。この場合、資源番号RSC=0を保持する初段のステージSTG0は、リクエスト情報REQINFを受けてから4サイクル後にシフト信号SFTOUTを出力する。資源番号RSC=0を保持する2段目のステージSTG1は、リクエスト情報REQINFを受けてから12サイクル後にシフト信号SFTOUTを出力する。資源番号RSC=0を保持する3段目のステージSTG2は、リクエスト情報REQINFを受けてから20サイクル後にシフト信号SFTOUTを出力する。
また、資源番号RSC=1を保持する初段のステージSTG0は、リクエスト情報REQINFを受けてから8サイクル後にシフト信号SFTOUTを出力する。資源番号RSC=1を保持する2段目のステージSTG1は、リクエスト情報REQINFを受けてから16サイクル後にシフト信号SFTOUTを出力する。資源番号RSC=1を保持する3段目のステージSTG2は、リクエスト情報REQINFを受けてから24サイクル後にシフト信号SFTOUTを出力する。
一方、並列度l=3、位相差m=8、平均リクエスト間隔n=8であるとする。この場合、初段のステージSTG0は、リクエスト情報REQINFを受けてから8サイクル後にシフト信号SFTOUTを出力する。2段目のステージSTG1は、リクエスト情報REQINFを受けてから16サイクル後にシフト信号SFTOUTを出力する。3段目のステージSTG2は、リクエスト情報REQINFを受けてから24サイクル後にシフト信号SFTOUTを出力する。
リクエスト情報保持部233は、有効レベルのシフト入力信号SFTINをイネーブル端子ENで受けている間、前段からのリクエスト情報REQINFを取り込んで保持する。リクエスト情報保持部233は、取り込んだリクエスト情報REQINFを次段のステージSTGおよび各処理部25に出力する。初段のステージSTG0のリクエスト情報保持部233は、スケジューリング部220のリクエスト情報出力部221が出力するリクエスト情報REQINFを取り込む。
図6は、図2の処理部25(250、251、252)の一例を示す。各処理部25は、セレクタ261およびロウ情報出力部262を有するロウ制御部26と、セレクタ271、カラム情報出力部272およびカウンタ273を有するカラム制御部27とを有する。
セレクタ261は、リクエスト保持パイプライン230の各ステージSTG0~STG8から資源番号RSC、経過サイクルCYCおよびリクエスト情報REQINFを受ける。また、セレクタ261は、設定レジスタ240からロウタイミングTROWおよび並列度lを受ける。
セレクタ261は、自処理部25の識別番号である自資源番号と一致する資源番号RSCと、ロウタイミングTROWで示されるサイクルと一致する経過サイクルCYCとを出力するステージSTGから出力されるリクエスト情報REQINFを選択する。そして、セレクタ261は、選択したリクエスト情報REQINFをロウ情報出力部262に出力する。ロウ情報出力部262は、セレクタ261から受けるリクエスト情報REQINFに応答して、リクエスト情報REQINFを使用してロウ制御信号ROWを生成し、メモリ30に出力する。
セレクタ271は、リクエスト保持パイプライン230の各ステージSTG0~STG8からの資源番号RSC、経過サイクルCYCおよびリクエスト情報REQINFを受ける。また、セレクタ271は、設定レジスタ240からカラムタイミングTCOLおよび並列度lを受ける。
セレクタ271は、自処理部25の識別番号である自資源番号と一致する資源番号RSCと、カラムタイミングTCOLで示されるサイクルと一致する経過サイクルCYCとを出力するステージSTGから出力されるリクエスト情報REQINFを選択する。そして、セレクタ271は、選択したリクエスト情報REQINFをカラム情報出力部272に出力する。カウンタ273は、カラム制御信号COLの出力回数を計数する。カラム情報出力部272は、セレクタ271から受けるリクエスト情報REQINFに応答して、リクエスト情報REQINFを使用してカラム制御信号COLを生成し、メモリ30に出力する。この際、カラム情報出力部272は、カウンタ273が計数する回数分のカラム制御信号COLを、所定数のサイクルの経過毎に出力する。
このように、各処理部25は、リクエスト保持パイプライン230の複数のステージSTGが保持する資源番号RSCと経過サイクルCYCとリクエスト情報REQINFとを受ける。そして、各処理部25は、受けた資源番号RSCが自資源番号と一致する場合、受けたリクエスト情報REQINFに対応するアクセスコマンド(アクティブコマンドACTまたはリードコマンドRDなど)をメモリ30に出力する。換言すれば、各処理部25は、自資源番号RSCを出力するステージSTGが保持する経過サイクルCYCが示すサイクル数が、並列度lに応じて決定されるアクセスコマンドの出力サイクルを示す場合、対応するアクセスコマンドをメモリ30に出力する。したがって、並列度lによってアクセスコマンドの出力サイクルが変更される場合にも、並列度lと資源番号RSCと経過サイクルCYCとに基づいて、正しいタイミングでアクセスコマンドをメモリ30に出力することができる。
図7は、図2のメモリアクセスコントローラ20によりメモリ30にリードアクセスする一例を示す。図7は、並列度l=2、位相差m=4、平均リクエスト間隔n=8に設定される場合の動作の例を示す。ロウ制御信号ROW0およびカラム制御信号COL0は、処理部250から出力され、ロウ制御信号ROW1およびカラム制御信号COL1は、処理部251から出力される。メモリ30は、4つのバンクグループBG0~BG3を有するとする。図7において、順次増加する数値は、経過時刻T(メモリクロックMCLKのサイクル数の積算値)を示す。以下では、経過時刻Tを、数値と組み合わせて、時刻T0、T1、T2等と称する。
まず、処理部250は、時刻T1において、バンクグループBG0にアクティブコマンドACTを出力する。例えば、アクティブコマンドACTは、2クロックサイクルを使用してメモリ30に供給される。処理部251は、処理部250がアクティブコマンドACTを出力してからtRRDS(RAS to RAS Delay)後である時刻T5において、バンクグループBG1にアクティブコマンドACTを出力する。tRRDSは、異なるバンクグループBG間でのアクティブコマンドACTの最小間隔の仕様である。
処理部250は、アクティブコマンドACTを出力してからtRCDRD(RAS to CAS Delay)後である時刻T16において、バンクグループBG0に最初のリードコマンドRD0を出力する。また、処理部250は、並列度l=2での平均リクエスト間隔nが"8"であるため、最初のアクティブコマンドACTから16サイクル後である時刻T17において、バンクグループBG2にアクティブコマンドACTを出力する。さらに、処理部250は、リードコマンドRD0を出力してからtCCDL(CAS to CAS Delay Long)後である時刻T20において、バンクグループBG0に2番目のリードコマンドRD1を出力する。tCCDLは、同一のバンクグループBG間でのカラム系コマンド(リードコマンドRD等)の最小間隔の仕様である。
処理部251は、平均リクエスト間隔nが"8"であるため、最初のアクティブコマンドACTから16サイクル後である時刻T21において、バンクグループBG3にアクティブコマンドACTを出力する。さらに、処理部251は、処理部250がリードコマンドRD1を出力してからtCCDS(CAS to CAS Delay Short)後である時刻T22において、バンクグループBG1に最初のリードコマンドRD0を出力する。tCCDSは、異なるバンクグループBG間でのカラム系コマンドの最小間隔の仕様である。
この後、処理部250、251は、2サイクル毎にリードコマンドRDを交互に出力する。各処理部250、251によるリードコマンドRDの出力間隔は4サイクルである。そして、処理部250が最初のリードコマンドRD0を出力してからリードレイテンシRLに対応するサイクル後、リードコマンドRD0に対応する最初のリードデータD0がバンクグループBG0から出力される。この例では、バースト長が"4"に設定されているため、メモリクロックMCLKの立ち上がりエッジと立ち下がりエッジのそれぞれに同期して4つのデータが読み出される。さらに、各リードコマンドRDからリードレイテンシRLが経過後に、リードデータD(D0~D3のいずれか)が各バンクグループBGからそれぞれ読み出される。
図7に示す動作は、並列度l=2、位相差m=4および平均リクエスト間隔n=8に応じて、シフト信号SFTOUT0を出力するスケジューリング部220と、ステージSTGのシフト動作を実行するリクエスト保持パイプライン230とにより実現される。これにより、メモリアクセスコントローラ20は、複数の並列度lに共通のリクエスト保持パイプライン230のステージSTGに順次転送される情報を使用して、並列度l=2でのリードアクセス動作を実行することができる。
図8は、図2のメモリアクセスコントローラ20によりメモリ30にリードアクセスする別の例を示す。図7と同様の動作および要素については、詳細な説明は省略する。図8は、メモリクロックMCLKの周波数(すなわち、メモリ30の動作周波数)が図7の動作に使用するメモリクロックMCLKの周波数より高く、並列度l=3、位相差m=8、平均リクエスト間隔n=8に設定される場合の動作の例を示す。
並列度l=3の場合、処理部250、251、252は、8サイクルの間隔を空けて時刻T1、T9、T17、T25において、互いに異なるバンクグループBG0、BG1、BG2、BG3に順次アクティブコマンドACTを出力する。処理部250は、バンクグループBG0にアクティブコマンドACTを出力してからtRCDRD後である時刻T25において、バンクグループBG0に最初のリードコマンドRD0を出力する。なお、図2に示すロウ制御信号ROWおよびカラム制御信号COLは、互いに異なるバスを使用してメモリ30に出力される。このため、処理部250は、時刻T25において、バンクグループBG3へのアクティブコマンドACTとともに、バンクグループBG0へのリードコマンドRD0を出力可能である。
処理部250は、バンクグループBG0にリードコマンドRD0を出力してからtCCDL後である時刻T31において、バンクグループBG0に2番目のリードコマンドRD1を出力する。図8のメモリクロックMCLKの周波数は、図7のメモリクロックMCLKの周波数に比べて高いため、tRRDS、tRCDRDおよびtCCDLの各々のサイクル数は、図7の各々に比べて大きい。
処理部251は、処理部250がリードコマンドRD1を出力してからtCCDS後である時刻T33において、バンクグループBG1に最初のリードコマンドRD0を出力する。この後、図7と同様に、処理部250、251、252は、2サイクル毎にリードコマンドRDを交互に出力する。各処理部250、251、252によるリードコマンドRDの出力間隔は6サイクルである。
そして、処理部250が最初のリードコマンドRD0を出力してからリードレイテンシRL後、リードコマンドRD0に対応する最初のリードデータD0がバンクグループBG0から読み出される。図8のメモリクロックMCLKの周波数は、図7のメモリクロックMCLKの周波数に比べて高いため、リードレイテンシRLも、図7のリードレイテンシRLに比べて大きい。そして、図7と同様に、各リードコマンドRDからリードレイテンシRLが経過後に、リードデータD(D0~D3のいずれか)が各バンクグループBGからそれぞれ読み出される。
図8に示す動作は、並列度l=3、位相差m=8および平均リクエスト間隔n=8に応じて、シフト信号SFTOUT0を出力するスケジューリング部220と、ステージSTGのシフト動作を実行するリクエスト保持パイプライン230とにより実現される。これにより、メモリアクセスコントローラ20は、複数の並列度lに共通のリクエスト保持パイプライン230のステージSTGに順次転送される情報を使用して、並列度l=3でのリードアクセス動作を実行することができる。
以上、この実施形態では、図7および図8に示すように、並列度lの異なるメモリアクセスを、リクエスト保持パイプライン230の1系列のシフトレジスタにより実現することができる。これにより、複数系列のシフトレジスタを使用する場合に比べて、メモリアクセスコントローラ20の回路規模を低減することができ、メモリアクセスコントローラ20が搭載されるCPU10の回路規模を低減することができる。
図9~図12は、図7のリードアクセスにおけるメモリアクセスコントローラ20の動作の一例を示す。図9に示す動作は、並列度l=2、位相差m=4、平均リクエスト間隔n=8に設定されて実行される。初期状態では、スケジューリング部220は、資源番号RSC=0を出力する。
まず、時刻T0において、スケジューリング部220は、最初のリードリクエスト0と処理部250での処理を示す資源番号RSC=0とシフト信号SFTOUT0とをリクエスト保持パイプライン230に出力する。
時刻T1において、ステージSTG0のリクエスト情報保持部233は、リードリクエスト0をリクエスト情報として保持し、保持したリードリクエスト0をステージSTG1と各処理部25とに出力する。ステージSTG0の資源番号保持部231は、資源番号RSC=0を保持し、保持した資源番号RSC=0をステージSTG1と各処理部25とに出力する。経過サイクル保持部232は、リクエスト情報REQINFを受けたときの基準のサイクル数(="0")をインクリメントして、経過サイクルCYC=1を保持し、保持した経過サイクルCYC=1をステージSTG1と各処理部25とに出力する。
自身を示す資源番号RSC=0をステージSTG0から受けた処理部250は、経過サイクルCYC=1とロウタイミングTROWとが一致するため、アクティブコマンドACTをメモリ30に出力する。アクティブコマンドACTは、リードリクエスト0に含まれるアドレス情報に基づいて、バンクグループBG0に出力される。
時刻T2、T3において、ステージSTG0は、シフト入力信号SFTINを受けないため、リクエスト情報保持部233および資源番号保持部231の状態を保持する。ステージSTG0の経過サイクル保持部232は、経過サイクルCYCを順次インクリメントして"3"に設定する。
時刻T4において、スケジューリング部220は、2番目のリードリクエスト1と、処理部251での処理を示す資源番号RSC=1とをリクエスト保持パイプライン230に出力する。また、スケジューリング部220は、カウンタ値CNTが"4"で、現在の資源番号RSCが"0"であり、図3に示した並列度l=2での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。また、ステージSTG0のシフト信号生成部234は、ステージSTG0の経過サイクルCYCが"4"になり、図5に示した並列度l=2での条件式を満足するため、シフト信号SFTOUTを出力する。
時刻T5において、ステージSTG0のリクエスト情報保持部233は、リードリクエスト1をリクエスト情報として保持する。ステージSTG0の資源番号保持部231は、資源番号RSC=1を保持する。ステージSTG0の経過サイクル保持部232は、受けた経過サイクルCYC=0をインクリメントして、経過サイクルCYC=1を保持する。
ステージSTG1のリクエスト情報保持部233は、シフト信号SFTOUTに同期して、ステージSTG0からのリードリクエスト0を保持する。ステージSTG1の資源番号保持部231は、シフト信号SFTOUTに同期してステージSTG0からの資源番号RSC=0を保持する。ステージSTG1の経過サイクル保持部232は、受けた経過サイクルCYC=4をインクリメントして、経過サイクルCYC=5を保持する。
自身を示す資源番号RSC=1をステージSTG0から受けた処理部251は、経過サイクルCYC=1とロウタイミングTROWとが一致するため、アクティブコマンドACTをバンクグループBG1に出力する。この後、時刻T6から図10の時刻T11まで、ステージSTG0、STG1は、シフト入力信号SFTINを受けないため、リクエスト情報保持部233および資源番号保持部231の状態を保持する。ステージSTG0、STG1の経過サイクル保持部232は、経過サイクルCYCをそれぞれインクリメントして"7"、"11"に設定する。
時刻T12において、ステージSTG0の経過サイクルCYCは"8"になり、ステージSTG1の経過サイクルCYCは"12"になる。ステージSTG0、STG1のシフト信号生成部234は、図5に示した並列度l=2での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。これにより、ステージSTG0でのリクエスト情報REQINFの受信間隔(図7のアクティブコマンドACTの供給間隔)が一定でない場合にも、各ステージSTGのシフト信号SFTOUTの出力タイミングを揃えることができる。この結果、ステージSTG0でのリクエスト情報REQINFの受信間隔が一定でない場合にも、リクエスト保持パイプライン230内でのリクエスト情報REQINF等の衝突を抑止することができ、誤動作を抑止することができる。
この後、時刻T13から時刻T16まで、ステージSTG1、STG2は、シフト入力信号SFTINを受けないため、リクエスト情報保持部233および資源番号保持部231の状態を保持する。ステージSTG1、STG2の経過サイクル保持部232は、経過サイクルCYCをそれぞれインクリメントして"12"、"16"に設定する。ステージSTG0は、リクエスト情報REQINFを受信していないため、動作しない。
時刻T16において、スケジューリング部220は、3番目のリードリクエスト2と、処理部250での処理を示す資源番号RSC=0とをリクエスト保持パイプライン230に出力する。また、スケジューリング部220は、カウンタ値CNTが"12"で、現在の資源番号RSCが"1"であり、図3に示した並列度l=2での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。
時刻T16において、自身を示す資源番号RSC=0をステージSTG2から受けた処理部250は、経過サイクルCYC=16とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD0をバンクグループBG0に出力する。例えば、4つのカラムタイミングTCOL(CYC16、CYC20、CYC24、CYC28)が、図7に示したリードコマンドRD0、RD1、RD2、RD3に対応して用意されている。
但し、図11で説明するように、各処理部25は、出力するリードコマンドRDが他の処理部25が出力するリードコマンドRDと重なる場合、リードコマンドRDの出力を遅らせる処理を実行する。なお、各処理部25は、アクティブコマンドACTについても、他の処理部25と重なる場合、出力を遅らせる処理を実行する。このため、図2には示していないが、各処理部25は、他の処理部25がコマンドを出力するタイミングをモニタする機能を有する。
時刻T17において、自身を示す資源番号RSC=0をステージSTG0から受けた処理部250は、時刻T1と同様に、アクティブコマンドACTをバンクグループBG2に出力する。この後、時刻T18から図11の時刻T19まで、ステージSTG0~STG2は、シフト入力信号SFTINを受けないため、リクエスト情報保持部233および資源番号保持部231の状態を保持する。ステージSTG0~STG2の経過サイクル保持部232は、経過サイクルCYCをそれぞれインクリメントして"3"、"15"、"19"に設定する。
時刻T20において、自身を示す資源番号RSC=0をステージSTG2から受けた処理部250は、経過サイクルCYC=20とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD1をバンクグループBG0に出力する。また、時刻T20において、自身を示す資源番号RSC=1をステージSTG2から受けた処理部251は、経過サイクルCYC=16とカラムタイミングTCOLの1つとが一致することを検出する。しかしながら、処理部251は、リードコマンドRDの出力タイミングの重複を避けるため、リードコマンドRD0の出力を保留する。
さらに、時刻T20において、スケジューリング部220は、カウンタ値CNTが"4"で、現在の資源番号RSCが"0"であり、図3に示した並列度l=2での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。また、スケジューリング部220は、4番目のリードリクエスト3と、処理部251での処理を示す資源番号RSC=1とをリクエスト保持パイプライン230に出力する。
ステージSTG0~STG2のシフト信号生成部234は、ステージSTG0~STG2の経過サイクルCYCがそれぞれ"4"、"16"、"20"になり、図5に示した並列度l=2での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。これにより、ステージSTG1~STG3の各々に、ステージSTG0~STG2が保持する情報が転送され、ステージSTG0にリードリクエスト3と資源番号RSC=1とが保持される。
時刻T21において、自身を示す資源番号RSC=1をステージSTG0から受けた処理部251は、時刻T5と同様に、アクティブコマンドACTをバンクグループBG3に出力する。時刻T22において、処理部251は、時刻T20で出力を保留したリードコマンドRD0をバンクグループBG1に出力する。
時刻T24において、自身を示す資源番号RSC=0をステージSTG3から受けた処理部250は、経過サイクルCYC=24とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD2をバンクグループBG0に出力する。なお、時刻T20と同様に、処理部251は、リードコマンドRDの出力タイミングの重複を避けるため、リードコマンドRD1のバンクグループBG1への出力を保留し、時刻T26で出力する。
時刻T28において、ステージSTG0~STG3の経過サイクルCYCはそれぞれ"8"、"12"、"24"、"28"になる。ステージSTG0~STG3のシフト信号生成部234は、図5に示した並列度l=2での条件式をそれぞれ満足するため、シフト信号SFTOUTをそれぞれ出力する。また、時刻T28において、自身を示す資源番号RSC=0をステージSTG3から受けた処理部250は、経過サイクルCYC=28とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD3をバンクグループBG0に出力する。なお、時刻T20、T24と同様に、処理部251は、リードコマンドRDの出力タイミングの重複を避けるため、リードコマンドRD2のバンクグループBG1への出力を保留し、時刻T30で出力する。
時刻T32において、自身を示す資源番号RSC=0をステージSTG1から受けた処理部250は、経過サイクルCYC=16とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD0をバンクグループBG2に出力する。なお、時刻T20、T24、T28と同様に、処理部251は、リードコマンドRDの出力タイミングの重複を避けるため、リードコマンドRD3のバンクグループBG1への出力を保留し、時刻T34で出力する。
図13は、並列度l=2において、ステージSTG0が保持するリクエスト情報の処理先に応じた各ステージSTGでの経過サイクル数の一例を示す。各ステージSTGでの経過サイクル数(情報の保持期間)は、ステージSTG0の資源番号保持部231が、"0"を保持するか"1"を保持するかにより異なる。
ステージSTG0の資源番号保持部231が、"0"を保持する場合、ステージSTG0~STG3の経過サイクル数(情報の保持期間)は、それぞれ"1~m"、"n+1~2n"、"n+m+1~2n+m"、"3n+1~4n"である。また、リクエスト情報REQINFがステージSTG0に投入されてから次のリクエスト情報REQINFがステージSTG0に投入されるまでの最小間隔Xτ(τは1サイクルの時間)は、X=m(この例では"4")である。
例えば、バンクグループBG0に出力するアクティブコマンドACTに対応するリクエスト情報REQINFは、図9の時刻T1から時刻T4まで4サイクルの間(1~m)、ステージSTG0に保持される。バンクグループBG1に出力するアクティブコマンドACTに対応するリクエスト情報REQINFは、時刻T13(CYC=9)から時刻T20(CYC=16)までの8サイクルの間(n+1~2n)、ステージSTG1に保持される。
一方、ステージSTG0の資源番号保持部231が、"1"を保持する場合、ステージSTG0~STG3の経過サイクル数(情報の保持期間)は、それぞれ"1~n"、"m+1~n+m"、"2n+1~3n"、"3n+m+1~4n+m"である。また、リクエスト情報REQINFがステージSTG0に投入されてから次のリクエスト情報REQINFがステージSTG0に投入されるまでの最小間隔Xτは、X=2*n―m(この例では"12")である。
例えば、バンクグループBG1に出力するアクティブコマンドACTに対応するリクエスト情報REQINFは、時刻5(CYC=1)から時刻12(CYC=8)までの8サイクルの間(1~n)STG0に保持される。バンクグループBG0のアクティブコマンドACTに対応するリクエスト情報REQINFは、時刻5(CYC=5)-時刻12(CYC=12)までの8サイクルの間(m+1~n+m)、ステージSTG1に保持される。
図14~図17は、図8のリードアクセスにおけるメモリアクセスコントローラ20の動作の一例を示す。図9~図12と同様の動作については、詳細な説明は省略する。図14~図17では、3並列でメモリアクセスが実行されるため、3つの処理部250、251、252が使用される。
時刻T0~時刻T3の動作は、図9と同様である。時刻T4~時刻T7では、ステージSTG0は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。
時刻T8において、スケジューリング部220は、2番目のリードリクエスト1と、処理部251での処理を示す資源番号RSC=1とをリクエスト保持パイプライン230に出力する。また、スケジューリング部220は、カウンタ値CNTが"8"で、現在の資源番号RSCが"0"であり、図3に示した並列度l=3での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。また、ステージSTG0のシフト信号生成部234は、ステージSTG0の経過サイクルCYCが"8"になり、図5に示した並列度l=3での条件式を満足するため、シフト信号SFTOUTを出力する。
時刻T9において、自身を示す資源番号RSC=0をステージSTG0から受けた処理部250は、経過サイクルCYC=1とロウタイミングTROWとが一致するため、アクティブコマンドACTをバンクグループBG1に出力する。この後、時刻T10から図10の時刻T15まで、ステージSTG0、STG1は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。
時刻T16において、ステージSTG0の経過サイクルCYCは"8"になり、ステージSTG1の経過サイクルCYCは"16"になる。ステージSTG0、STG1のシフト信号生成部234は、図5に示した並列度l=3での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。
時刻T16において、スケジューリング部220は、3番目のリードリクエスト2と、処理部252での処理を示す資源番号RSC=2とをリクエスト保持パイプライン230に出力する。また、スケジューリング部220は、カウンタ値CNTが"8"であり、図3に示した並列度l=3での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。
時刻T17において、自身を示す資源番号RSC=2をステージSTG0から受けた処理部252は、時刻T9と同様に、アクティブコマンドACTをバンクグループBG2に出力する。この後、時刻T18から時刻T24まで、ステージSTG0~STG2は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。
時刻T24において、スケジューリング部220は、カウンタ値CNTが"8"であり、図3に示した並列度l=3での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。また、スケジューリング部220は、4番目のリードリクエスト3と、処理部250での処理を示す資源番号RSC=0とをリクエスト保持パイプライン230に出力する。
時刻T24において、ステージSTG0、STG1、STG2の経過サイクルCYCはそれぞれ"8"、"16"、"24"になる。ステージSTG0~STG2のシフト信号生成部234は、図5に示した並列度l=3での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。
また、時刻T24において、スケジューリング部220は、3番目のリードリクエスト2と、処理部252での処理を示す資源番号RSC=2とをリクエスト保持パイプライン230に出力する。スケジューリング部220は、カウンタ値CNTが"8"であり、図3に示した並列度l=3での条件式を満足するため、シフト信号SFTOUT0をステージSTG0に出力する。
時刻T25において、自身を示す資源番号RSC=0をステージSTG0から受けた処理部250は、時刻T1と同様に、アクティブコマンドACTをバンクグループBG3に出力する。また、時刻T25において、自身を示す資源番号RSC=0をステージSTG3から受けた処理部250は、経過サイクルCYC=25とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD0をバンクグループBG0に出力する。図87で説明したように、各処理部25は、アクティブコマンドACTとリードコマンドRDとを同じサイクルで出力可能である。
なお、並列度l=3の場合、4つのカラムタイミングTCOL(CYC25、CYC31、CYC37、CYC43)が、図7に示したリードコマンドRD0、RD1、RD2、RD3に対応して用意されている。このように、カラムタイミングTCOLは、並列度l毎に設定される。
この後、時刻T26から図16の時刻T30まで、ステージSTG0~STG3は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。時刻T31において、自身を示す資源番号RSC=0をステージSTG3から受けた処理部250は、経過サイクルCYC=31とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD1をバンクグループBG0に出力する。
時刻T32において、ステージSTG0~STG3の経過サイクルCYCはそれぞれ"8"、"16"、"24"、"32"になる。ステージSTG0~STG3のシフト信号生成部234は、図5に示した並列度l=3での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。時刻T33において、自身を示す資源番号RSC=1をステージSTG3から受けた処理部250は、経過サイクルCYC=25とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD0をバンクグループBG1に出力する。
この後、時刻T34から図17の時刻T39まで、ステージSTG1~STG4は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。ステージSTG0は、リクエスト情報REQINFを受信していないため、動作しない。時刻T37において、自身を示す資源番号RSC=0をステージSTG4から受けた処理部250は、経過サイクルCYC=37とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD2をバンクグループBG0に出力する。
時刻T40において、ステージSTG1~STG4の経過サイクルCYCはそれぞれ"16"、"24"、"32"、"40"になる。ステージSTG1~STG4のシフト信号生成部234は、図5に示した並列度l=3での条件式をそれぞれ満足するため、シフト信号SFTOUTを出力する。時刻T41において、自身を示す資源番号RSC=2をステージSTG3から受けた処理部252は、経過サイクルCYC=25とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD0をバンクグループBG2に出力する。
この後、時刻T42から時刻T45まで、ステージSTG2~STG5は、シフト入力信号SFTINを受けないため、経過サイクル保持部232の経過サイクルCYCのみ順次インクリメントする。ステージSTG0、STG1は、リクエスト情報REQINFを受信していないため、動作しない。時刻T45において、自身を示す資源番号RSC=1をステージSTG4から受けた処理部251は、経過サイクルCYC=37とカラムタイミングTCOLの1つとが一致するため、リードコマンドRD2をバンクグループBG1に出力する。
図18は、並列度l=3において、ステージSTG0が保持するリクエスト情報の処理先に応じた各ステージSTGでの経過サイクル数の一例を示す。図13と同様の要素については、詳細な説明は省略する。並列度lが"3"の場合、各ステージSTGでの経過サイクル数(情報の保持期間)は、互いに同じである。
ステージSTG0~STG3の経過サイクル数(情報の保持期間)は、それぞれ"1~n"、"n+1~2n"、"2n+1~3n"、"3n+1~4n"である。また、リクエスト情報REQINFがステージSTG0に投入されてから次のリクエスト情報REQINFがステージSTG0に投入されるまでの最小間隔Xτ(τは1サイクルの時間)は、X=n(この例では"8")である。
例えば、ステージSTG0には、図14の時刻T1から時刻T8まで8サイクルの間(1~n)、1つのリクエスト情報REQINFが保持される。ステージSTG1には、図14の時刻T9から図15の時刻T16まで8サイクルの間(n+1~2n)、1つのリクエスト情報REQINFが保持される。
ステージSTG2には、図14の時刻T17から時刻T24まで8サイクルの間(2n+1~3n)、1つのリクエスト情報REQINFが保持される。ステージSTG3には、図15の時刻T25から図16の時刻T32まで8サイクルの間(3n+1~4n)、1つのリクエスト情報REQINFが保持される。
図19は、他のメモリアクセスコントローラのリクエスト保持パイプラインの構成の一例(比較例)を示す。平均リクエスト間隔nは、"8"であるとする。
例えば、並列度l=2でアクセスコマンドを出力するために2つの処理部0、1を有するリクエスト保持パイプライン230aは、直列に接続された4つのステージSTG(STG0~STG3とSTG4~STG7)を処理部0、1毎に有する。各処理部0、1の構成は、接続されるステージSTGの数が少ないことを除き、図6に示す処理部25と同様の構成である。
各ステージSTG0~STG7の経過サイクル数(情報の保持期間)は、16τである。ステージSTG0へのリクエスト情報REQINFの投入からステージSTG4へのリクエスト情報REQINFの投入の遅れ時間である位相差mは4τに設定される。これにより、リクエスト保持パイプライン230aを有するメモリアクセスコントローラは、図7に示す動作を実現可能である。
また、例えば、並列度l=3でアクセスコマンドを出力するために3つの処理部0、1、2を有するリクエスト保持パイプライン230bは、直列に接続された3つのステージSTGを処理部0、1、2毎に有する。例えば、ステージSTG0~STG2は、処理部0に接続され、ステージSTG3~STG5は処理部1に接続され、ステージSTG6~STG8は、処理部2に接続される。各処理部0、1、2の構成は、接続されるステージSTGの数が少ないことを除き、図6に示した処理部25と同様の構成である。
各ステージSTG0~STG8の経過サイクル数(情報の保持期間)は、24τである。ステージSTG0へのリクエスト情報REQINFの投入からステージSTG3へのリクエスト情報REQINFの投入の遅れ時間である位相差mは8τに設定される。また、ステージSTG3へのリクエスト情報REQINFの投入からステージSTG6へのリクエスト情報REQINFの投入の遅れ時間である位相差mは8τに設定される。これにより、リクエスト保持パイプライン230bを有するメモリアクセスコントローラは、図8に示す動作を実現可能である。
並列度l=2と並列度l=3でのアクセスコマンドの出力を両方可能にするリクエスト保持パイプライン230cは、リクエスト保持パイプライン230a、230bを組み合わせることで実現される。この場合、リクエスト保持パイプライン230cは、直列に接続された4つのステージSTG(STG0~STG3とSTG4~STG7)を処理部0、1毎に有し、直列に接続された3つのステージSTG(STG8~STG10)を処理部2に対応して有する。
各ステージSTG0~STG10の経過サイクル数nτは、並列度l=2の場合、16τに設定され、並列度l=3の場合、24τに設定される。また、ステージSTG0へのリクエスト情報REQINFの投入からステージSTG4へのリクエスト情報REQINFの投入の遅れ時間は、mτに設定される。mは、並列度l=2のときに"4"に設定され、並列度l=3のときに"8"に設定される。並列度l=3の場合、ステージSTG4へのリクエスト情報REQINFの投入からステージSTG8へのリクエスト情報REQINFの投入の遅れ時間は、nτ(n=8)に設定される。
並列度l=2と並列度l=3でのアクセスコマンドの出力を両方可能にするリクエスト保持パイプライン230cのステージSTGの数は、11個であり、図2のリクエスト保持パイプライン230のステージSTGの数(9個)より2個多くなる。換言すれば、図2のリクエスト保持パイプライン230では、リクエスト保持パイプライン230cに比べて、回路規模を小さくすることができる。この結果、リクエスト保持パイプライン230を含むメモリアクセスコントローラ20を搭載するCPU10のチップサイズを削減することができる。
以上、上述した実施形態では、並列度lの異なるメモリアクセスを、リクエスト保持パイプライン230の1系列のシフトレジスタにより実現することができる。これにより、複数系列のシフトレジスタを使用する場合に比べて、メモリアクセスコントローラ20の回路規模を低減することができ、メモリアクセスコントローラ20が搭載されるCPU10の回路規模を低減することができる。
スケジューリング部220は、CPU10に接続されるメモリ30の仕様に応じて設定された並列度l、位相差mおよび平均リクエスト間隔nと、現在の資源番号NXTRSCとに基づいて、カウンタ値CNTの最大値を変更することができる。そして、スケジューリング部220は、最大値が可変なカウンタ値CNTに基づいて、所望のタイミングでシフト信号SFTOUT0を出力することができ、シフト信号SFTOUT0の出力に合わせて資源番号NXTRSCを更新することができる。
リクエスト保持パイプライン230の各ステージSTGは、経過サイクル保持部232により、ステージSTG0でリクエスト情報REQINFを受けてからのサイクル数を保持することができ、保持しているサイクル数を各処理部25に出力することができる。この結果、各処理部25は、各ステージSTGからのサイクル数に基づいて、メモリ30へのアクセスコマンドの出力タイミングを判断することができる。
ステージSTG0でのリクエスト情報REQINFの受信間隔(図7のアクティブコマンドACTの供給間隔)が一定でない場合にも、各ステージSTGのシフト信号SFTOUTの出力タイミングを揃えることができる。この結果、ステージSTG0でのリクエスト情報REQINFの受信間隔が一定でない場合にも、リクエスト保持パイプライン230内でのリクエスト情報REQINF等の衝突を抑止することができ、誤動作を抑止することができる。
各処理部25は、並列度lによってアクセスコマンドの出力サイクルが異なる場合にも、並列度lと資源番号RSCと経過サイクルCYCとに基づいて、正しいタイミングでアクセスコマンドをメモリ30に出力することができる。
以上の図1から図18に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
演算を実行する演算部と、前記演算部が出力するメモリアクセス要求に基づいてメモリのアクセスを制御するメモリアクセスコントローラとを有する演算処理装置であって、
前記メモリアクセスコントローラは、
第1シフト信号と、複数の資源番号のいずれかと、前記演算部から受ける前記メモリアクセス要求とを、動作モードに応じた時間間隔で出力するメモリアクセス受領部と、
直列に接続された複数のステージを有し、前記メモリアクセス受領部からの前記資源番号および前記メモリアクセス要求を前記第1シフト信号に基づいて初段のステージで受け、動作モードに応じたタイミングで前記初段のステージから後段のステージに前記資源番号および前記メモリアクセス要求をシフトするシフトレジスタと、
前記資源番号のそれぞれに対応して設けられ、前記複数のステージが保持する前記資源番号と前記メモリアクセス要求とを受け、受けた資源番号が自資源番号と一致する場合、受けたメモリアクセス要求に対応するアクセスコマンドを前記メモリに出力する複数のメモリアクセス送信部と、
を有する演算処理装置。
(付記2)
前記メモリアクセス受領部は、前記アクセスコマンドの前記メモリへの平均出力間隔と、前記アクセスコマンドの前記メモリへの最小出力間隔と、前記動作モードとに基づいて決定される時間間隔で前記第1シフト信号を出力する
付記1に記載の演算処理装置。
(付記3)
前記メモリアクセス受領部は、
クロックをカウントするクロックカウンタと、
前記クロックカウンタが出力するカウンタ値が、前記平均出力間隔、前記最小出力間隔および前記動作モードにより決定される値になった場合、前記第1シフト信号を出力する第1シフト信号生成部と、
前記第1シフト信号に基づいて、前記複数のコマンド出力部にそれぞれ対応する前記複数の資源番号を交互に出力する資源番号出力部と、
前記演算部から受けた前記メモリアクセス要求を、前記第1シフト信号に基づいて順次出力する要求出力部と、
を有する付記2に記載の演算処理装置。
(付記4)
前記複数のステージの各々は、
前記資源番号と前記メモリアクセス要求とを保持するアクセス情報保持部と、
前記初段のステージで前記メモリアクセス要求を受けてからのサイクル数を保持する経過サイクル保持部と、
前記サイクル数が前記平均出力間隔、前記最小出力間隔および前記動作モードと自ステージの位置とにより決定される値になった場合、第2シフト信号を出力する第2シフト信号生成部と、
を有する付記2または付記3に記載の演算処理装置。
(付記5)
2段目以降の前記ステージの前記経過サイクル保持部は、前段の前記ステージが前記第2シフト信号を出力しない間、保持しているサイクル数を順次更新する
付記4に記載の演算処理装置。
(付記6)
前記複数のメモリアクセス送信部の各々は、
前記メモリアクセス要求に対応して複数の前記アクセスコマンドを前記メモリに順次出力し、
自資源番号と一致する資源番号を出力するステージが保持するサイクル数が、前記動作モードに応じて決定される複数の前記アクセスコマンドのいずれかの出力サイクルを示す場合、対応するアクセスコマンドを前記メモリに出力する
付記5に記載の演算処理装置。
(付記7)
前記動作モードは、並列に動作させる前記メモリアクセス送信部の数を示し、
メモリアクセス受領部が出力する前記資源番号の総数は、前記動作モードに応じて相違する
付記1ないし付記6のいずれか1項に記載の演算処理装置。
(付記8)
前記動作モードは、前記メモリの動作周波数に応じて変更される
付記1ないし付記7のいずれか1項に記載の演算処理装置。
(付記9)
前記アクセスコマンドは、前記メモリに含まれる複数のワード線のいずれかを選択するアクティブコマンドと、選択された前記ワード線に接続される複数のメモリセルのうちの所定数を選択するリードコマンドまたはライトコマンドを含む
付記1ないし付記8のいずれか1項に記載の演算処理装置。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
10 演算処理装置
12 コア
14 キャッシュ
16 ネットワーク制御部
18 インタコネクト
20 メモリアクセスコントローラ
25(250、251、252) 処理部
26 ロウ制御部
27 カラム制御部
30 メモリ
210 リクエスト受信部
220 スケジューリング部
221 リクエスト情報出力部
222 資源番号出力部
223 クロックカウンタ
224 シフト信号生成部
230、230a、230b、230c リクエスト保持パイプライン
231 資源番号保持部
232 経過サイクル保持部
233 リクエスト情報保持部
234 シフト信号生成部
240 設定レジスタ
260 セレクタ
261 セレクタ
262 ロウ情報出力部
271 セレクタ
272 カラム情報出力部
273 カウンタ
ACT アクティブコマンド
BG(BG0~BG3) バンクグループ
CNT カウンタ値
COL(COL0、COL1) カラム制御信号
CYC 経過サイクル
FF フリップフロップ
INC インクリメンタ
l 並列度
m 位相差
MCLK メモリクロック
MREQ メモリアクセス要求
n 平均リクエスト間隔
RD(RD0~RD3) リードコマンド
RL リードレイテンシ
ROW(ROW0、ROW1) ロウ制御信号
RSC 資源番号
SEL セレクタ
SFTIN シフト入力信号
STG(STG0~STG10) ステージ
T 経過時刻
TCOL カラムタイミング
TROW ロウタイミング

Claims (7)

  1. 演算を実行する演算部と、前記演算部が出力するメモリアクセス要求に基づいてメモリのアクセスを制御するメモリアクセスコントローラとを有する演算処理装置であって、
    前記メモリアクセスコントローラは、
    第1シフト信号と、複数の資源番号のいずれかと、前記演算部から受ける前記メモリアクセス要求とを、動作モードに応じた時間間隔で出力するメモリアクセス受領部と、
    直列に接続された複数のステージを有し、前記メモリアクセス受領部からの前記資源番号および前記メモリアクセス要求を前記第1シフト信号に基づいて初段のステージで受け、動作モードに応じたタイミングで前記初段のステージから後段のステージに前記資源番号および前記メモリアクセス要求をシフトするシフトレジスタと、
    前記資源番号のそれぞれに対応して設けられ、前記複数のステージが保持する前記資源番号と前記メモリアクセス要求とを受け、受けた資源番号が自身を示す資源番号と一致する場合、受けたメモリアクセス要求に対応するアクセスコマンドを前記メモリに出力する複数のメモリアクセス送信部と、
    を有する演算処理装置。
  2. 前記メモリアクセス受領部は、前記アクセスコマンドの前記メモリへの平均出力間隔と、前記アクセスコマンドの前記メモリへの最小出力間隔と、前記動作モードとに基づいて決定される時間間隔で前記第1シフト信号を出力する
    請求項1に記載の演算処理装置。
  3. 前記メモリアクセス受領部は、
    クロックをカウントするクロックカウンタと、
    前記クロックカウンタが出力するカウンタ値が、前記平均出力間隔、前記最小出力間隔および前記動作モードにより決定される値になった場合、前記第1シフト信号を出力する第1シフト信号生成部と、
    前記第1シフト信号に基づいて、前記複数のメモリアクセス送信部にそれぞれ対応する前記複数の資源番号を交互に出力する資源番号出力部と、
    前記演算部から受けた前記メモリアクセス要求を、前記第1シフト信号に基づいて順次出力する要求出力部と、
    を有する請求項2に記載の演算処理装置。
  4. 前記複数のステージの各々は、
    前記資源番号と前記メモリアクセス要求とを保持するアクセス情報保持部と、
    前記初段のステージで前記メモリアクセス要求を受けてからのサイクル数を保持する経過サイクル保持部と、
    前記サイクル数が前記平均出力間隔、前記最小出力間隔および前記動作モードと自ステージの位置とにより決定される値になった場合、第2シフト信号を出力する第2シフト信号生成部と、
    を有する請求項2または請求項3に記載の演算処理装置。
  5. 2段目以降の前記ステージの前記経過サイクル保持部は、前段の前記ステージが前記第2シフト信号を出力しない間、保持しているサイクル数を順次更新する
    請求項4に記載の演算処理装置。
  6. 前記複数のメモリアクセス送信部の各々は、
    前記メモリアクセス要求に対応して複数の前記アクセスコマンドを前記メモリに順次出力し、
    自身を示す資源番号と一致する資源番号を出力するステージが保持するサイクル数が、前記動作モードに応じて決定される複数の前記アクセスコマンドのいずれかの出力サイクルを示す場合、対応するアクセスコマンドを前記メモリに出力する
    請求項5に記載の演算処理装置。
  7. 前記動作モードは、並列に動作させる前記メモリアクセス送信部の数を示し、
    メモリアクセス受領部が出力する前記資源番号の総数は、前記動作モードに応じて相違する
    請求項1ないし請求項6のいずれか1項に記載の演算処理装置。
JP2020097826A 2020-06-04 2020-06-04 演算処理装置 Active JP7476676B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020097826A JP7476676B2 (ja) 2020-06-04 2020-06-04 演算処理装置
US17/241,117 US11561694B2 (en) 2020-06-04 2021-04-27 Arithmetic processor and arithmetic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020097826A JP7476676B2 (ja) 2020-06-04 2020-06-04 演算処理装置

Publications (2)

Publication Number Publication Date
JP2021190020A JP2021190020A (ja) 2021-12-13
JP7476676B2 true JP7476676B2 (ja) 2024-05-01

Family

ID=78818370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020097826A Active JP7476676B2 (ja) 2020-06-04 2020-06-04 演算処理装置

Country Status (2)

Country Link
US (1) US11561694B2 (ja)
JP (1) JP7476676B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11635911B2 (en) * 2020-01-07 2023-04-25 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218635A (ja) 2015-05-18 2016-12-22 富士通株式会社 情報処理装置、メモリ制御装置、および情報処理装置の制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2632093B1 (fr) * 1988-05-25 1990-08-10 Bull Sa Memoire modulaire
FR2635390B1 (fr) * 1988-08-12 1990-10-12 Bull Sa Unite centrale pour systeme de traitement de l'information
JP2005190320A (ja) 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd インタフェース回路
KR101033464B1 (ko) * 2008-12-22 2011-05-09 주식회사 하이닉스반도체 반도체 집적 회로
JP5188382B2 (ja) * 2008-12-25 2013-04-24 三菱電機株式会社 シフトレジスタ回路
JP2011141928A (ja) * 2010-01-07 2011-07-21 Elpida Memory Inc 半導体装置及びその制御方法
JP6551751B2 (ja) * 2014-08-12 2019-07-31 ArchiTek株式会社 マルチプロセッサ装置
JP6582868B2 (ja) * 2015-10-23 2019-10-02 富士通株式会社 伝送装置
KR102501653B1 (ko) * 2015-11-30 2023-02-21 에스케이하이닉스 주식회사 데이터 전달 장치
JP6926727B2 (ja) * 2017-06-28 2021-08-25 富士通株式会社 演算処理装置および演算処理装置の制御方法
US10366742B1 (en) * 2018-02-07 2019-07-30 Micron Technology, Inc. Memory device parallelizer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218635A (ja) 2015-05-18 2016-12-22 富士通株式会社 情報処理装置、メモリ制御装置、および情報処理装置の制御方法

Also Published As

Publication number Publication date
JP2021190020A (ja) 2021-12-13
US11561694B2 (en) 2023-01-24
US20210382622A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
JP4936506B2 (ja) メモリ制御回路及びメモリ制御方法
JP5431003B2 (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路システム
CN101398793A (zh) 存储器控制设备和半导体处理装置
US20100250841A1 (en) Memory controlling device
JP7476676B2 (ja) 演算処理装置
EP1486877B1 (en) Semiconductor memory device and information processing unit
JP5752666B2 (ja) デジタル信号処理用のメモリアクセス
JP4266436B2 (ja) 半導体記憶装置
US11797462B2 (en) Arithmetic processing device and memory access method
JP4757582B2 (ja) データ転送動作終了検知回路及びこれを備える半導体記憶装置
US7633814B2 (en) Memory device and method of operating such
JP4824180B2 (ja) 半導体記憶装置
JP2004127305A (ja) メモリ制御装置
JP5130754B2 (ja) 半導体集積回路及びメモリシステム
JP5182284B2 (ja) ベクトル処理装置
US12001691B2 (en) Memory controller and memory access control method
JP5226161B2 (ja) 半導体記憶装置および情報処理システム
JP6493044B2 (ja) マルチプロセッサシステム
JP2004206850A (ja) 半導体記憶装置
JP4549073B2 (ja) メモリ制御回路
JP3563340B2 (ja) メモリコントローラ
JP5929600B2 (ja) 情報処理システム、情報処理装置、及び電子装置
JP2013120587A (ja) シリアル転送装置及びシリアル転送方法
KR20000075258A (ko) 에스디램 콘트롤러
JP2012089233A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240306

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: 20240319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240401

R150 Certificate of patent or registration of utility model

Ref document number: 7476676

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150