JP2021039447A - メモリコントローラおよびメモリコントローラで実施される方法 - Google Patents

メモリコントローラおよびメモリコントローラで実施される方法 Download PDF

Info

Publication number
JP2021039447A
JP2021039447A JP2019158934A JP2019158934A JP2021039447A JP 2021039447 A JP2021039447 A JP 2021039447A JP 2019158934 A JP2019158934 A JP 2019158934A JP 2019158934 A JP2019158934 A JP 2019158934A JP 2021039447 A JP2021039447 A JP 2021039447A
Authority
JP
Japan
Prior art keywords
dram
command
request
issuing
memory controller
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
Application number
JP2019158934A
Other languages
English (en)
Inventor
元久 伊藤
Motohisa Ito
元久 伊藤
大介 白石
Daisuke Shiraishi
大介 白石
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.)
Canon Inc
Original Assignee
Canon Inc
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 Inc filed Critical Canon Inc
Priority to JP2019158934A priority Critical patent/JP2021039447A/ja
Priority to US17/004,240 priority patent/US11435951B2/en
Publication of JP2021039447A publication Critical patent/JP2021039447A/ja
Priority to US17/712,590 priority patent/US11842079B2/en
Priority to JP2024003316A priority patent/JP2024038365A/ja
Pending legal-status Critical Current

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0653Monitoring storage devices or systems
    • 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/0658Controller construction arrangements
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

【課題】規定長に満たないデータをDRAMに書き込むためのライトコマンドの発行に伴う比較的長いペナルティの影響を軽減または除去する。【解決手段】メモリコントローラは、DRAMに規定長のデータを書き込むための第1ライトコマンドと、DRAMに規定長に満たないデータを書き込むための第2ライトコマンドと、を発行可能に構成されたメモリコントローラであって、DRAMに対する要求を格納する格納手段と、格納手段に格納されている要求の発行順を決定する決定手段と、決定手段により決定された発行順に基づきDRAMコマンドを発行する発行手段と、を備える。決定手段は、先行するDRAMコマンドを発行してから当該DRAMコマンドと同じバンクを対象とする第2ライトコマンドを発行するまでの期間に、当該DRAMコマンドが対象とするバンクと異なるバンクを対象とする別のDRAMコマンドを発行可能な場合、その発行可能な別のDRAMコマンドが当該第2ライトコマンドよりも先に発行されるように発行順を決定する。【選択図】図2

Description

本発明は、メモリコントローラおよびメモリコントローラで実施される方法に関する。
情報処理装置のメモリシステムに使用するメモリデバイスには、DRAM(Dynamic Random Access Memory)を始めとして多くの種類が存在する。このメモリデバイスの中で、最も数多く使用されているのはDRAMである。
DRAMは、他のメモリデバイスと比較して1チップ当たりの記憶容量が大きい。また、同容量で比較すると、他のメモリデバイスより安価である。したがって、大容量のメモリシステムを、安価に構築可能である。そのため、メモリシステムの構築に広く使用されている。
近年策定されたDRAM規格であるLPDDR4では、データを書き込むDRAMコマンドにマスクドライトコマンド(Masked Write、以下、MWRコマンドという)が導入された。従来のライトコマンド(Write、以下、WRコマンドという)はデータマスク動作をバイト単位で制御していたが、このMWRコマンドはデータマスク動作をバーストライト単位で制御する。このように、バーストライト単位の制御により、データマスク動作の実装が単純化され、小型化と低消費電力化が可能となる。
MWRコマンドを受けたDRAMは、次の3工程を実施する。各工程は連続して実行される。
(1)1アクセス単位のデータをDRAMセルから読み出す
(2)読み出したデータをデータマスク信号に基づき書き込みデータで更新する
(3)更新したデータを書込む
LPDDR4規格では、MWRコマンド、あるいはWRコマンドに続いて、同一バンクに対してMWRコマンドを発行するために空けなければならない間隔の最小値をパラメータtCCDMWで定義している。同様に、MWRコマンド、あるいはWRコマンドに続いて、同一バンクに対してWRコマンドを発行するために空けなければならない間隔の最小値をパラメータtCCDで定義している。tCCDMWとtCCDの単位は、共にDRAMの動作クロックサイクル(以下、サイクルという)である。
上述のようにMWRコマンドは3工程で実行される。その為、tCCDMWの値はtCCDの値に比較して大きい。例えば、バースト長16とバースト長32、それぞれのtCCDMWとtCCDの値を表1に示す。表1に示すようにtCCDMWの値はtCCDの値に対して4倍である。したがって、MWRコマンド、あるいはWRコマンドに続いて、同一バンクに対してMWRコマンドを発行する場合、WRコマンドの発行と比較して4倍の間隔を空ける必要がある。すなわち、MWRコマンドの発行にはより大きなペナルティが伴う。
Figure 2021039447
特許文献1は、MWRコマンドの発行を抑止する手法を開示している。特許文献1が開示する手法は、書き込みデータの長さが1アクセス単位に満たない場合、ダミーのデータを附与して1アクセス単位にした後、WRコマンドで書き込みを実施する。
特開2005−182538号公報
しかしながら、特許文献1が開示している手法は、ダミーのデータを付与するため、意図せずデータを上書きする虞、あるいは書き込みデータ量が増加する課題が存在する。また、1アクセス単位内の一部領域のみを書き替える書き込み、すなわちパーシャルライトには、特許文献1が開示している手法は適用できない。
本発明はこうした課題に鑑みてなされたものであり、その目的は、規定長に満たないデータをDRAMに書き込むためのライトコマンドの発行に伴う比較的長いペナルティの影響を軽減または除去できる技術の提供にある。
本発明のある態様はメモリコントローラに関する。このメモリコントローラは、DRAMに規定長のデータを書き込むための第1ライトコマンドと、DRAMに規定長に満たないデータを書き込むための第2ライトコマンドと、を発行可能に構成されたメモリコントローラであって、DRAMに対する要求を格納する格納手段と、格納手段に格納されている要求の発行順を決定する決定手段と、決定手段により決定された発行順に基づきDRAMコマンドを発行する発行手段と、を備える。決定手段は、先行するDRAMコマンドを発行してから当該DRAMコマンドと同じバンクを対象とする第2ライトコマンドを発行するまでの期間に、当該DRAMコマンドが対象とするバンクと異なるバンクを対象とする別のDRAMコマンドを発行可能な場合、その発行可能な別のDRAMコマンドが当該第2ライトコマンドよりも先に発行されるように発行順を決定する。
本発明によれば、規定長に満たないデータをDRAMに書き込むためのライトコマンドの発行に伴う比較的長いペナルティの影響を軽減または除去できる。
第一の実施の形態に係るメモリコントローラを備える画像処理装置のハードウエア構成を示す図。 図1のメモリコントローラの機能および構成を示すブロック図。 第一の実施の形態におけるDRAMリクエスト格納部のエントリの実施の形態を説明する図。 DRAMリクエスト発行順決定部のひとつの実施の形態を示す図。 格納部制御信号のひとつの実施の形態を示す図。 第二の実施の形態に係るメモリコントローラの機能および構成を示すブロック図。 存否判定部における一連の判定処理の流れを示すフローチャート。 第二の実施の形態におけるDRAMリクエスト格納部の1個のエントリを示す図。 第二の実施の形態における格納部制御信号の一例を示す図。
以下、添付図面を参照して実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。実施の形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。また、以下に示す実施の形態は、特に限定する場合を除き、ハードウエア上に実装しても、あるいはソフトウエアで実装しても構わない。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
第一および第二の実施の形態では、DRAMを制御するメモリコントローラにおいて、バッファに格納されているDRAMリクエストの処理の順番を、MWRコマンドのペナルティ期間内に他のバンクへのRDコマンド、WRコマンドまたはMWRコマンドが発行されるように決定する。これにより、DRAMアクセスの転送効率を高めることができる。
(第一の実施の形態)
図1は、第一の実施の形態に係るメモリコントローラ1を備える画像処理装置200のハードウエア構成を示す図である。画像処理装置200は例えばスマートフォンなどの小型電子機器である。画像処理装置200は、被写体を撮像し、リアルタイムでモニタに表示させる機能を有する。なお、以下では第一の実施の形態に係るメモリコントローラ1が画像処理装置200に搭載される場合について説明する。しかしながら、当該メモリコントローラ1はデジタルカメラ等などの電子機器一般に広く搭載されうることは、本明細書に触れた当業者には明らかである。
画像処理装置200は、少なくとも、撮像部201と、DRAM203と、画像処理部202と、システムバス204と、メモリコントローラ1と、を備える。
撮像部201は、被写体を撮像することで被写体の撮像画像を取得する。本実施の形態における撮像部201は、静止画像だけでなく、動画像を取得可能であり、所定の撮像タイミングで、動画像を構成する各フレーム画像を出力する。画像処理部202は、撮像部201で取得された画像に対して所望の画像処理を行う。画像処理は、輝度補正やガンマ補正などの一般的なものであり、詳細な説明は省略する。
DRAM203は、撮像部201で取得された撮像画像や画像処理部202で画像処理された撮像画像を一時的に記憶するワークメモリとして利用される同期型メモリである。メモリコントローラ1は、DRAM203へのアクセスを制御するインタフェースである。メモリコントローラ1の構成や動作については後述する。
表示部205は、画像処理部202で画像処理された画像を、所定の表示タイミングで表示するモニタである。以上の各処理部間のデータは、システムバス204を介して送受信される。メモリコントローラ1は、撮像部201で所定の撮像タイミングで取得された撮像画像が、画像処理部202で画像処理され、所定の表示タイミングで表示部205に表示されるようにするため、DRAM203へのアクセスを制御する。
図2は、図1のメモリコントローラ1の機能および構成を示すブロック図である。メモリコントローラ1は、DRAM203と電気的に接続される。メモリコントローラ1およびDRAM203はそれぞれ別個の半導体チップに設けられてもよいし、ひとつの半導体チップに設けられてもよい。あるいはまた、DRAM203はそれぞれが別個の半導体チップに設けられた複数のメモリデバイスであってもよい。
DRAM203は複数のバンクと各種デコーダと入出力センスアンプとデータバスバッファとを含む。各バンクでは、記憶素子であるDRAMセルがマトリクス状に配置される。DRAM203は、既定長のデータを書き込む第1ライトコマンドと、既定長に満たないデータを書き込む第2ライトコマンドを有するDRAMメモリデバイスである。本実施の形態では、DRAM203はLPDDR4に準拠するよう構成される。
メモリコントローラ1は、DRAM203にコマンド(DRAMコマンド)とアドレスとを提供することでDRAM203を制御する。メモリコントローラ1はDRAM203に書き込み用のデータを送信し、DRAM203から読み出されたデータを受信する。メモリコントローラ1およびDRAM203は、システムバス208から供給される共通のクロック信号に同期して動作する。以下では、説明を簡略化するために、メモリコントローラ1のコマンドの発行に係る機能を中心に説明し、データ線(DQ)の制御などのメモリコントローラ1の他の機能については説明を省略する。
DRAM203にデータを書き込むためのコマンドについて、メモリコントローラ1は、DRAM203に規定長のデータを書き込むための第1ライトコマンドと、規定長に満たないデータを書き込むための第2ライトコマンドと、を発行可能に構成される。
第1ライトコマンドは例えばLPDDR4で定義されるWRコマンド(Writeコマンド)である。規定長はDRAM203へのアクセス単位であり、DRAM203のデータ幅(またはビット幅)およびDRAMバースト長のうちの少なくともひとつにより決まり、特にデータ幅×DRAMバースト長である。DRAM203について設定されているコマンド間の最小間隔(tCCD:minimum Column to Column command Delay)は、ライトまたはリードコマンドから次のライトまたはリードコマンドまで待たなければならないDRAMクロックサイクル数で示される。例えば、tCCDはDRAMバースト長の半分に設定される。任意のコマンドと次のWRコマンドとの最小間隔(以下、WRコマンドのペナルティとも称す)はtCCDである。
第2ライトコマンドは例えばLPDDR4で定義されるMWRコマンド(Masked Writeコマンド)である。あるバンクへの先行するWRコマンドまたはMWRコマンドを発行してから同じバンクへのMWRコマンドを発行するまでに待たなければならない期間の長さの最小値(または、同じバンクに対するWRコマンド/MWRコマンドとMWRコマンドとの最小間隔)を、MWRコマンドのペナルティtCCDMWRと称す。MWRコマンドのペナルティtCCDMWRはtCCDよりも長くなるよう設定される。例えばLPDDR4に従う場合、MWRコマンドのペナルティtCCDMWRはDRAMバースト長の2倍、すなわちtCCDの4倍に設定される。あるいはまた、MWRコマンドのペナルティtCCDMWRはtCCDの2倍、3倍、5倍、またはより一般的にN倍(Nは2以上の自然数)に設定されてもよい。この場合、あるバンクへの先行するWRコマンドまたはMWRコマンドを発行してから同じバンクへのMWRコマンドを発行するまでに待たなければならない期間は、DRAMの仕様で規定されるDRAMコマンドの最小発行間隔(=tCCD)よりも長くなる。
メモリコントローラ1は、DRAMリクエスト格納部12と、DRAMリクエスト発行順決定部13と、DRAMコマンド発行部14と、を備える。また、第一の実施の形態では、1個のDRAMリクエストを1個のDRAMコマンドで実施する。したがって、1個のDRAMリクエストには1個のDRAMコマンドが対応する。
まず、DRAMリクエスト格納部12の機能を説明する。DRAMリクエスト格納部12は、DRAM203に対する要求(以下、DRAMリクエスト101という)を保持するバッファである。DRAMリクエスト格納部12は、m(mは2以上の整数)のエントリで構成し、各エントリには0からm−1までのエントリ番号を付与する。なお、本実施の形態は具体的なmの値に限定されない。
続いて、図3は、第一の実施の形態におけるDRAMリクエスト格納部12のエントリの実施の形態を説明する図である。図3は、DRAMリクエスト格納部12の1個のエントリ31を示している。したがって、第一の実施の形態では、DRAMリクエスト格納部12には、図3に示すエントリ31がm本存在する。
図3に示すように、DRAMリクエスト格納部12のエントリ31は、リクエスト種別と、対象バンクと、対象ページと、MWRFのフィールドと、を有している。各フィールドに格納している情報は次のとおりである。
(a)リクエスト種別フィールド
当該エントリ31に格納したDRAMリクエスト101の種別を示す。
種別の例
WRITE DRAMリクエスト101がライト(データの書き込み)
READ DRAMリクエスト101がリード(データの読み込み)
(b)対象バンクフィールド
当該エントリ31に格納したDRAMリクエスト101が対象とするバンクの番号
(c)対象ページフィールド
当該エントリ31に格納したDRAMリクエスト101が対象とするページの番号
(d)MWRFフィールド
当該エントリ31に格納したDRAMリクエスト101がMWRコマンドを使用するか否かを示すフラグ
1’b1:MWRコマンドを使用、1’b0:MWRコマンドは不使用
DRAMリクエスト格納部12に新たなDRAMリクエスト101を格納する場合、既に格納されているDRAMリクエスト101の最後尾に続いたエントリ31に格納する。そして、DRAMリクエスト格納部12からDRAMリクエスト101を読み出す場合、DRAMリクエスト格納部12は任意のエントリ31から読み出し可能に構成される。
表2は、DRAMリクエスト格納部12の動作を説明するための表である。表2のうち、REQ00、REQ01、REQ02、REQ03は、DRAMリクエスト格納部12が格納しているDRAMリクエスト101を一意に識別するIDである。DRAMリクエスト格納部12の状態が、表2の列「現在の状態」に示す状態であったとする。すなわち、DRAMリクエスト格納部12のエントリ0からエントリ2に、それぞれREQ00、REQ01、およびREQ02が格納されている。一方、エントリ3から最後尾のエントリm−1までは、DRAMリクエスト101を格納しておらず、空きである。
Figure 2021039447
ここで、新たなDRAMリクエスト101であるREQ03を格納する動作を説明する。新たなDRAMリクエスト101の格納先のエントリは、DRAMリクエスト格納部12に格納しているDRAMリクエスト101の最後尾に続いたエントリである。したがって、表2の列「現在の状態」に示す状態にREQ03を追加して格納する場合、エントリ3に格納する。REQ03を格納した後の状態を、表2の列「DRAMリクエスト格納後」に示す。REQ03を格納した後、表2の列「DRAMリクエスト格納後」に示すように、エントリ0からエントリ3までの各エントリにDRAMリクエスト101を格納している。
続いて、エントリのパージ動作を説明する。DRAMリクエスト格納部12は、格納部制御信号112が指定したエントリをパージし、同時に空いたエントリに後続のエントリが格納しているDRAMリクエスト101を一つずつ移動する。表2の列「DRAMリクエスト格納後」に示す状態から、エントリ1のDRAMリクエスト101(REQ01)をパージしたとする。パージ後、エントリ2以降のエントリに格納しているDRAMリクエスト101は一つずつ若いエントリに移動する。エントリ1のDRAMリクエスト101(REQ01)をパージした後の状態を、表2の列「エントリパージ後」に示す。
図2に戻り、各エントリの参照動作を説明する。DRAMリクエスト発行順決定部13は、DRAMリクエスト格納部12に格納している、格納済みDRAMリクエスト104の全てを参照可能である。
DRAMリクエスト発行順決定部13の動作を説明する。DRAMリクエスト発行順決定部13は、格納済みDRAMリクエスト104の発行順を、DRAM状態を基に決定する。特に、DRAMリクエスト発行順決定部13は、先行するDRAMコマンドを発行してから当該DRAMコマンドと同じバンクを対象とするMWRコマンドを発行するまでのペナルティ期間に、当該DRAMコマンドが対象とするバンクと異なるバンクを対象とする別のDRAMコマンドを発行可能な場合、その発行可能な別のDRAMコマンドが当該MWRコマンドよりも先に発行されるように発行順を決定する。当該決定はさらに、DRAMリクエスト101の優先順位に基づいてもよい。そして、発行順を決定した後に最初に発行するDRAMリクエスト101を、次に発行するDRAMリクエスト105として出力する。
DRAMリクエスト発行順決定部13の入力は、DRAMリクエスト格納部12が格納している格納済みDRAMリクエスト104と、DRAMコマンド発行部14の出力であるDRAMコマンドの発行状態信号111である。ここで、発行状態信号111は、発行したDRAMコマンドと、そのDRAMコマンドに関する情報と、を示す信号で、次に挙げる状態を表す信号を少なくとも含んでいる。
(a)cmd 発行したDRAMコマンド
(b)bank 発行したDRAMコマンドの対象バンク
(c)page 発行したDRAMコマンドの対象ページ
一方、DRAMリクエスト発行順決定部13の出力は、次に発行するDRAMリクエスト105と、格納部制御信号112と、である。次に発行するDRAMリクエスト105は、格納済みDRAMリクエスト104のなかで最初に発行するDRAMリクエストである。そして、格納部制御信号112は、DRAMリクエスト格納部12に対してエントリのパージを指示する制御信号である。
図4を使用してDRAMリクエスト発行順決定部13の動作をさらに詳しく説明する。図4は、DRAMリクエスト発行順決定部13のひとつの実施の形態を示す図である。図4に示す実施の形態では、DRAMリクエスト発行順決定部13は、DRAM状態管理部21と発行順決定部22とを含んでいる。
DRAM状態管理部21は、発行状態信号111の値を基にDRAM状態121を管理している。そして、DRAM状態管理部21が管理しているDRAM状態121は、少なくとも次に示す状態を含んでいる。なお、本明細書では、誤解の虞が無い場合に限り、オールバンクリフレッシュとパーバンクリフレッシュとを合せてリフレッシュと総称する。よって、「リフレッシュ動作中」が、「オールバンクリフレッシュ動作中」を意味するか、「パーバンクリフレッシュ動作中」を意味するか、そのどちらでもよいか、は文脈に依存する。
(a)ref(k) バンクkが、リフレッシュ動作中であるか否かを示す
1’b1:リフレッシュ動作中
1’b0:非リフレッシュ動作中
(b)pcmd DRAM203に対して直前に発行したDRAMコマンドの種別
WRITE DRAMコマンドはデータの書き込み
READ DRAMコマンドはデータの読み込み
(c)padd(k) バンクkがオープンしているページアドレス
(d)bst(k) バンクkの状態を示す
1’b1:バンクkはページをオープンしている状態
1’b0:バンクkはページをクローズしている状態
(e)cnt(k) バンクkに対し、次にMWRコマンドが発行可能となるまでのサイクル数
DRAM状態管理部21の動作をさらに詳しく説明する。まず、ref(k)の動作を説明する。DRAMコマンド発行部14が、バンクkに対してREF(REFRESH)コマンドを発行すると、DRAM状態管理部21はref(k)に1’b1を設定する。そして、リフレッシュ動作時間が経過した後、DRAM状態管理部21はref(k)の値を1’b0に設定する。例えば、DRAMコマンド発行部14がバンク0に対してREFコマンドを発行したとする。この時、発行状態信号111の値は、
(cmd,bank,page)==(REF,0,−)
に変化する。ここで、「−」はdon’t careを表すとする。この変化に基づき、DRAM状態管理部21は、バンク0に対するリフレッシュ動作の開始を認識する。リフレッシュ動作の開始を認識したことでref(0)に1’b1を設定する。
pcmdは、直前に発行したDRAMコマンドの種別を保持している。例えば、DRAMコマンド発行部14がバンク0ページ0にWRコマンドを発行したとする。このとき、発行状態信号111は、
(cmd,bank,page)==(WR,0,0)
に変化する。この変化に依り、DRAM状態管理部21はWRコマンドの発行を認識し、pcmdに、WRコマンドの種別であるWRITEを設定する。
padd(k)とbst(k)とはバンクkの状態を示している。DRAMコマンド発行部14が、バンクkページpに対してACT(ACTIVATE)コマンドを発行すると、DRAM状態管理部21はバンクkページがオープン状態になったことを認識する。そして、次の動作を実施する。
(a)padd(k)にpを設定
(b)bst(k)に1’b1(有効)を設定
一方、DRAMコマンド発行部14が、バンクkページpに対してPRE(PRECHARGE)コマンドを発行すると、DRAM状態管理部21はバンクkがクローズ状態になったと認識する。そして、次の動作を実施する。
(a)bst(k)に1’b0を設定
なお、padd(k)の値は変化しない。
例えば、DRAMコマンド発行部14がバンク0ページ5にACTコマンドを発行したとする。このとき、発行状態信号111は、
(cmd,bank,page)==(ACT,0,5)
に変化する。この変化に基づき、DRAM状態管理部21は、次の動作を実施する。
(a)padd(0)に5を設定
(b)bst(0)に1’b1を設定
反対に、DRAMコマンド発行部14がバンク0ページ5にPREコマンドを発行したとする。このとき、発行状態信号111は、
(cmd,bank,page)==(PRE,0,5)
に変化する。この変化に基づき、DRAM状態管理部21は、次の動作を実施する。
(a)bst(0)に1’b0を設定
cnt(k)はバンクkに対して、次にMWRコマンドを発行可能となるまでのサイクル数を示している。cnt(k)の値は次に示す条件で変化する。
(a)バンクkに対してWRコマンド、あるいはMWRコマンドを発行
cnt(k)にパラメータtCCDMWRの値を設定
(b)WRコマンド、およびMWRコマンドの発行は無く、かつcnt(k)は0ではない
cnt(k)の値を1減算{cnt(k)=cnt(k)−1}
(c)WRコマンド、およびMWRコマンドの発行は無く、かつcnt(k)は0
cnt(k)は値を保持
格納部制御信号112を説明する。図5は、格納部制御信号112のひとつの実施の形態を示す図である。図5に示す格納部制御信号112は、エントリ番号フィールドと、パージフィールドと、を含む。それぞれのフィールドの動作を次に示す。
(a)エントリ番号フィールド
制御対象とするDRAMリクエスト格納部12のエントリを示す。
(b)パージフィールド
エントリ番号フィールドが示すDRAMリクエスト格納部12のエントリをパージすることを示す。
1’b1:パージ、1’b0:バージ動作無し
図4に戻り、発行順決定部22の動作を説明する。なお、以下の説明では、格納済みDRAMリクエスト104が対象としているバンクを、対象バンクと略記し、同様に対象としているページを、対象ページと称する。
発行順決定部22は、次の規準で、格納済みDRAMリクエスト104の発行順を決定し、次に発行するDRAMリクエスト105を出力する。
(A)決定対象の格納済みDRAMリクエスト104の対象バンクがリフレッシュ動作中であるか否か。
(B)決定対象の格納済みDRAMリクエスト104に対応するDRAMコマンドの種別と、直前に発行されたDRAMコマンドの種別と、の異同。
(C)決定対象の格納済みDRAMリクエスト104の対象ページがオープンか否か。
(D)決定対象の格納済みDRAMリクエスト104に対応するDRAMコマンドがMWRコマンドの場合、cnt(k)の値が0{cnt(k)==0}か否か。
格納済みDRAMリクエスト104の発行順を決定するに当たり、上述の基準(D)は必ず適用する必須の基準である。しかし、基準(D)以外の基準(A)から(C)は、単独で適用してもよいし、複数の基準を同時に適用してもよい。また、本実施の形態では、複数の格納済みDRAMリクエスト104が規準を満たす場合、基準を満たす格納済みDRAMリクエスト104の内で最もエントリ番号が若いDRAMリクエスト101を選択する。さらに、全ての格納済みDRAMリクエスト104が基準を満たさない場合、格納済みDRAMリクエスト104内で最もエントリ番号が若いDRAMリクエスト101を選択する。
格納済みDRAMリクエスト104の発行順を決定する動作を、条件Aから条件Dの4例を挙げて詳しく説明する。説明に当たり、DRAMリクエスト格納部12の状態を示す表3および表4を使用する。ここで、表3および表4は、図3に示すDRAMリクエスト格納部エントリ31の各フィールドが取る値を、DRAMリクエスト101毎に示している。
Figure 2021039447
Figure 2021039447
ここで、表3および表4中のMWRF列を説明する。表3および表4中のMWRF列は、DRAMリクエストを格納するエントリ31のMWRFフィールドの値を示している。第一の実施の形態では、1個のDRAMリクエストは1個のDRAMコマンドで実施することから、表3および表4中のMWRF列は、当該DRAMリクエストが対応するDRAMコマンドが、MWRコマンドであるか否かを示している。よって、表3および表4中のMWRF列の値が1’b1の場合、対応するDRAMコマンドはMWRコマンドである。DRAMリクエストに対応するDRAMコマンドがMWRコマンドになるのは次の条件を、全て満たす場合である。
(a)当該DRAMリクエストのリクエスト種別がWRITE
(b)書き込みデータに無効バイトが存在する
また、書き込みデータに無効バイトが存在するのは、次の条件のうちのいずれかの条件が満たされる場合である。
(a)データを書き込む領域の先頭アドレスがライトブロックの境界に一致しない
(b)データを書き込む領域の終了アドレスがライトブロックの境界に一致しない
(c)書き込みデータのストローブ情報が無効を示している
なお、表3および表4に記載の各DRAMリクエスト101間に依存関係は無いものとする。したがって、表3および表4に記載の各DRAMリクエスト101は任意に実行順を変更可能である。
条件Aを次に示す。なお、DRAM状態は、説明に必要な情報のみ記載している。
(条件A)
選択基準 基準(A)対象バンクはリフレッシュ動作中ではない
基準(D)MWRコマンドの場合、cnt(k)の値が0
DRAMリクエスト格納部12の状態
表3
DRAM状態
(a)ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(e)cnt(1)==4 バンク1に対するMWRコマンド発行可能まで4サイクル
cnt(2)==0 バンク2に対するMWRコマンド発行可能まで0サイクル
表3中で、基準(A)を満たすエントリは、非リフレッシュ動作中のバンク1、およびバンク2を対象バンクとする、エントリ3からエントリ8である。そのうち、基準(D)も合せて満たすエントリは、エントリ4、エントリ6、エントリ7、およびエントリ8である。候補が複数存在する場合、エントリ番号が最も若いDRAMリクエスト101を選択し発行順を決定することから、最もエントリ番号が若いエントリ4のDRAMリクエストを次に発行するリクエストとして決定する。よって、次に発行するDRAMリクエスト105は、エントリ4のDRAMリクエスト101になる。
以上説明した通り、条件Aの下では、エントリ3のDRAMリクエスト101に先行してエントリ4のDRAMリクエスト101を発行する。エントリ3のDRAMリクエスト101はMWRF列の値が1’b1であり、MWRコマンドを発行する。しかし、上述のDRAM状態に示すように、エントリ3の対象バンクであるバンク1のcnt値、すなわちcnt(0)は4である。したがって、MWRコマンドが発行可能となるまで4サイクルの経過時間が必要となる。仮に、エントリ3のDRAMリクエスト101が次に発行するリクエストとして決定されたとすると、当該DRAMリクエスト101を発行するまでにこの4サイクルの経過時間が余分に必要で、ペナルティになる。しかし、本実施の形態に係るメモリコントローラ1は、エントリ4を先行して発行することで、このペナルティの発生を抑止することが可能である。
条件Bの下での動作例を説明する。条件Bは、DRAM状態(e)cnt(1)の値が、条件Aと異なり、0である。それ以外のDRAM状態、および選択基準とDRAMリクエスト格納部12の状態は条件Aと同一である。
(条件B)
選択基準 基準(A)対象バンクはリフレッシュ動作中ではない
基準(D)MWRコマンドの場合、cnt(k)の値が0
DRAMリクエスト格納部12の状態
表3
DRAM状態
(a)ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(e)cnt(1)==0 バンク1に対するMWRコマンド発行可能まで0サイクル
cnt(2)==0 バンク2に対するMWRコマンド発行可能まで0サイクル
表3中で、基準(A)を満たすエントリは、エントリ3からエントリ8である。このエントリ3からエントリ8は、基準(D)も合せて満たす。よって、最もエントリ番号が若いエントリ3に格納したDRAMリクエスト101を次に発行するリクエストとして決定する。次に発行するDRAMリクエスト105はエントリ3のDRAMリクエスト101になる。
以上説明した通り、条件Bの下では、エントリ3のDRAMリクエスト101を発行する。条件Aで説明した通りエントリ3はMWRコマンドを発行するが、cnt(0)は0であり、MWRコマンドが発行可能となるまでのペナルティは発生しない。ペナルティの発生がないことから、エントリ3のDRAMリクエスト101を発行可能である。
条件Cの下での動作例を説明する。条件Cは、選択基準を、基準(A)、基準(B)、基準(C)、および基準(D)とし、DRAM状態を次に示す状態とする。また、直前に発行されたDRAMコマンドの種別はWRITEとする。なお、DRAMリクエスト格納部12の状態は、表4とする。
(条件C)
選択基準 基準(A)対象バンクはリフレッシュ動作中ではない
基準(B)DRAMコマンドの種別と、直前に発行されたDRAMコマンドの種別と、は同一
基準(C)対象ページはオープン状態
基準(D)MWRコマンドの場合、cnt(k)の値が0
DRAMリクエスト格納部12の状態
表4
DRAM状態
(a)ref(0)==1’b1 バンク0はリフレッシュ動作中
ref(1)==1’b0 バンク1は非リフレッシュ動作中
ref(2)==1’b0 バンク2は非リフレッシュ動作中
(b)pcmd==WRITE 直前に発行したDRAMコマンドはWRITE
(c)padd(1)==0 バンク1はページ0が対象
padd(2)==1 バンク2はページ1が対象
(d)bst(1)==1 バンク1ページ0はオープン状態
bst(2)==1 バンク2ページ1はオープン状態
(e)cnt(1)==4 バンク1に対するMWRコマンド発行可能まで4サイクル
cnt(2)==0 バンク2に対するMWRコマンド発行可能まで0サイクル
表4中で、基準(A)から基準(C)の全てを満たすエントリは、エントリ0、エントリ5、およびエントリ8である。しかし、エントリ5は基準(D)を満たさない。一方、エントリ0、およびエントリ8は基準(D)も合せて満たす。よって、エントリ0に格納しているDRAMリクエスト101を次に発行するリクエストとして決定する。次に発行するDRAMリクエスト105はエントリ0のDRAMリクエスト101になる。
以上説明した通り、条件Cの下では、エントリ0に格納しているDRAMリクエスト101を次に発行する。エントリ5のDRAMリクエスト101はMWRコマンドを発行するが、cnt(0)は4であることから、MWRコマンド発行まで4サイクルのペナルティが必要である。しかし、本実施の形態に係るメモリコントローラ1は、先行してDRAMリクエスト格納部12に格納していたが、リオーダの実施に由り、未発行であったエントリ0を、エントリ5に先行して発行することで、このペナルティの発生を抑止している。
発行順決定部22が、DRAMリクエスト格納部12のエントリをパージするための格納部制御信号112を生成する手順を説明する。第一の実施の形態は、1個のDRAMコマンドで1個のDRAMリクエストを実施している。したがって、DRAMコマンド発行部14がDRAMコマンドを発行すると、対応するDRAMリクエスト101の動作は完了する。よって、発行順決定部22は、発行状態信号111がDRAMコマンドの発行を示したならば、対応するDRAMリクエスト101をパージするように格納部制御信号112を生成し、出力する。
例えば、DRAMリクエスト格納部12の状態が表3に示す状態であったとする。この時、DRAMリクエスト101の発行順を決定した結果、次に発行するDRAMリクエスト105はエントリ7のDRAMリクエスト101になったとする。DRAMコマンド発行部14が、エントリ7のDRAMリクエスト101に対応するDRAMコマンドであるWRコマンドを発行すると、発行状態信号111の値は、
(cmd,bank,page)==(WR,1,0)
に変化する。この変化を検出して、発行順決定部22は対応するDRAMコマンドの発行が完了したと判断し、エントリ7をパージするための格納部制御信号112を生成し、DRAMリクエスト格納部12に出力する。このとき、生成する格納部制御信号112の各フィールドは次の値である。
(a)エントリ番号フィールド 7
(b)パージフィールド 1’b1
図2に戻り、DRAMコマンド発行部14の機能を説明する。DRAMコマンド発行部14は、DRAMリクエスト発行順決定部13により決定された発行順に基づきDRAMコマンドを発行する。DRAMコマンド発行部14は、次に発行するDRAMリクエスト105の情報から、DRAM203に次に出力するDRAMコマンドを生成して、DRAM203に対して発行する。DRAMコマンド発行部14は同時に発行状態信号111をDRAMリクエスト発行順決定部13に出力する。
本実施の形態に係るメモリコントローラ1によると、DRAM203の規定長に満たない量のデータをDRAM203に書き込むためのMWRコマンドの発生有無に基づいて、DRAMコマンドの発行順が決定される。したがって、規定長に満たない量のデータを書き込む際のペナルティの影響を軽減し、メモリアクセス効率の低下を抑制する、または該効率を高めることができる。
本実施の形態に係るメモリコントローラ1では、パーシャルライトの実行に伴ってMWRコマンドが発生する場合にも、当該MWRコマンドに起因するペナルティを軽減し、データ書き込みの効率低下を抑止または除去することができる。
第一の実施の形態では、DRAM状態を基に、DRAMリクエスト格納部12が格納しているDRAMリクエスト101の発行順を決定する場合を説明したが、これに限られない。例えば、DRAM状態に関する(D)の基準に加えて、(A)〜(C)の基準とは別の基準、例えばDRAMリクエスト101の優先順位を基に発行順を決定してもよい。
(第二の実施の形態)
図6は、第二の実施の形態に係るメモリコントローラ5の機能および構成を示すブロック図である。本実施の形態に係るメモリコントローラ5は、第一の実施の形態に係るメモリコントローラ1に加えて、存否判定部11を含む。また、第一の実施の形態と同様に、DRAM203に規定長のデータを書き込むための第1ライトコマンドをWRコマンドとし、規定長に満たないデータを書き込むための第2ライトコマンドをMWRコマンドとする。
なお、第一の実施の形態では、1個のDRAMリクエスト101は1個のDRAMコマンドで実施していた。しかし、第二の実施の形態では、1個のDRAMリクエスト101は、複数のDRAMコマンドから構成されるDRAMコマンド列で実施してもよいものとする。
図6を使用して本実施の形態に係るメモリコントローラ5を詳しく説明する。第二の実施の形態の説明に当たり、第二の実施の形態で新たに追加した機能、及び第一の実施の形態と異なる機能を中心に説明する。一方、第一の実施の形態と同一の機能は説明を省略する。
存否判定部11は、DRAM203に対する書き込み要求がMWRコマンドを必要とするか否かを、(1)当該書き込み要求の先頭アドレスおよびバースト長、または(2)当該書き込み要求に係るデータのストローブ情報に基づいて判定する。存否判定部11は、DRAMリクエスト101から生成するDRAMコマンド列内の各DRAMコマンドがMWRコマンドであるか否かを判定し、判定結果を可変長のフラグ変数であるMWRF103に代入する。MWRF103は、DRAMリクエスト101に対応する複数のDRAMコマンドのそれぞれについて、当該DRAMコマンドがMWRコマンドであるか否かを識別するための識別情報である。ここで、MWRF103のnビット目に、DRAMコマンド列のn番目のDRAMコマンドの判定結果を代入する。例えば、MWRF(0)の値は、DRAMコマンド列の0番目、すなわち先頭のDRAMコマンドを判定した結果を示している。
第二の実施の形態では、MWRF103のビット値を次のように定義する。
(a)対応するDRAMコマンドがMWRコマンド 1’b1(有効)
(b)対応するDRAMコマンドがMWRコマンド以外 1’b0(無効)
例えば、次に示す4個のDRAMコマンドから構成されるDRAMコマンド列を考える。
DRAMコマンド(0) MWRコマンド
DRAMコマンド(1) WRコマンド
DRAMコマンド(2) MWRコマンド
DRAMコマンド(3) MWRコマンド
このとき、MWRF103の値は、ビット毎に、
MWRF(0)==1’b1:DRAMコマンド(0)はMWRコマンド
MWRF(1)==1’b0:DRAMコマンド(1)はWRコマンド
MWRF(2)==1’b1:DRAMコマンド(2)はMWRコマンド
MWRF(3)==1’b1:DRAMコマンド(3)はMWRコマンド
である。よって、MWRF103の値は、4’b1101になる。
図7を使用して存否判定部11の動作を詳しく説明する。図7は、存否判定部11における一連の判定処理の流れを示すフローチャートである。この判定処理は、DRAMリクエスト101から生成される一連のDRAMコマンド列を対象に、個々のDRAMコマンドがMWRコマンドであるか否を判定することと、判定結果をMWRF103に代入することと、を含む。
S001で、MWRF(0)に1’b0を代入し、初期化する。S002で、DRAMリクエストの種類がWRITEならばS003に分岐し、それ以外ならばMWRF103の生成を終了する。S003で、DRAMリクエスト101に対応するDRAMコマンド列が含むDRAMコマンドの個数を算出する。算出した結果を変数bで表す。
S003の結果から、DRAMコマンド列が含むDRAMコマンドの個数はbである。したがって、S004で、0からb−1までb回、S004からS007のループを繰返す。S005で、j番目のDRAMコマンドに対応する書き込みデータのストローブ情報が全て有効であるか否かを判定する。書き込みデータのストローブ情報の全てが有効な場合、S007へ分岐する。反対に、無効な書き込みデータのストローブ情報が存在する場合、S006へ分岐する。S006で、S005の結果から、j番目のDRAMコマンドが書き込むデータには無効バイトが存在している。したがって、j番目のDRAMコマンドは、WRコマンドでは無くMWRコマンドである。MWRコマンドを使用することから、MWRF(j)に1’b1を代入する。S007で、S005の結果から、j番目のDRAMコマンドが書き込むデータには無効バイトが存在していない。したがって、j番目のDRAMコマンドはWRコマンドである。WRコマンドを使用することから、MWRF(j)に1’b0を代入する。
S008で、DRAMリクエスト101により書き込まれるデータの先頭アドレスが、バースト書き込みブロックの先頭に一致しない場合、WRコマンドでは無くMWRコマンドを使用する。したがって、S008でDRAMリクエスト101により書き込まれるデータの先頭アドレスがバースト書き込みブロックの先頭に一致するか否かを判定する。一致する場合、S010に分岐する。一致しない場合、S009に分岐する。
S008の動作を例を挙げて説明する。説明に当たり、バースト長とデータ幅を次に示す値とする。
(a)バースト長 16
(b)データ幅 32bit(4byte)
上述の条件の下では、
バースト書き込みブロック==16*32bit/8=64byte
である。よって、先頭アドレスがバースト書き込みブロックの先頭に一致するか否かを判定するには、先頭アドレスの下位6bitと定数6’b000000を比較すればよい。一致する場合、先頭アドレスはバースト書き込みブロックの先頭に一致する。反対に、一致しない場合、先頭アドレスはバースト書き込みブロックの先頭ではない。したがって、書き込みをバースト書き込みブロックの途中から実施することになり、MWRコマンドの使用が必要となる。
S009で、先頭アドレスがバースト書き込みブロックの先頭に一致しないことから、0番目のDRAMコマンドはMWRコマンドを使用する。よって、MWRF103のビット0を1’b1に設定する。
S010で、DRAMリクエスト101により書き込まれるデータの最終アドレス(終了アドレス)が、バースト書き込みブロックの後端と一致するか否かを判定する。一致する場合、MWRF103の生成を終了する。一致しない場合、S011に分岐する。
S010の動作を例を挙げて説明する。バースト書き込みブロックの諸元はS008の説明に適用した諸元と同一とする。よって、バースト書き込みブロックの大きさは、16*32bit/8=64byteである。よって、この例では、バースト書き込みブロックの後端アドレスは、アドレスの下位6ビットが6’b111111である。よって、終了アドレスがバースト書き込みブロックの後端に一致するか否かを判定するには、終了アドレスの下位6bitと定数6’b111111を比較すればよい。一致する場合、終了アドレスはバースト書き込みブロックの後端に一致する。反対に、一致しない場合、終了アドレスはバースト書き込みブロックの後端ではない。したがって、バースト書き込みブロックの途中で書込みが終了することになり、MWRコマンドの使用が必要となる。
S011で、終了アドレスがバースト書き込みブロックの後端に一致しないことから、b−1番目のDRAMコマンドはMWRコマンドを使用する。よって、MWRF103のビットb−1を1’b1に設定する。
第二の実施の形態における、DRAMリクエスト格納部12の動作を説明する。図8は、第二の実施の形態におけるDRAMリクエスト格納部12の1個のエントリ32を示す図である。図8に示すように、DRAMリクエスト格納部12のエントリ32は、リクエスト種別、対象バンク、対象ページ、MWRF vector、DRAMコマンド数、およびインデックスの各フィールドを有している。このうち、リクエスト種別、対象バンク、および対象ページの各フィールドは図3に示す第一の実施の形態におけるDRAMリクエスト格納部のエントリ31と同一である。よって、第一の実施の形態と異なる、MWRF vectorフィールド、DRAMコマンド数フィールド、およびインデックスフィールドの動作を説明する。
(a)MWRF vectorフィールド
当該エントリ32に格納したDRAMリクエスト101のMWRコマンドの使用状態を示す。第二の実施の形態は、1個のDRAMリクエスト101を複数のDRAMコマンドで構成したDRAMコマンド列で実施する。したがって、MWRコマンドを使用するか否かを示すフラグもベクトルの形で示し、各ビットがそれぞれDRAMコマンドに対応する。各ビットが示す値は、第一の実施の形態と同様であり、以下の通りに定義される。
1’b1:MWRコマンドを使用、1’b0:MWRコマンドは不使用
(b)DRAMコマンド数フィールド
当該エントリ32に格納したDRAMリクエスト101を実施する(またはそれに対応する)DRAMコマンド列が含むDRAMコマンドの数を示す。
(c)インデックスフィールド
当該エントリ32に格納したDRAMリクエスト101に対応するDRAMコマンド列で、次に発行するDRAMコマンドの位置を示す。
DRAMリクエスト格納部12に新たなDRAMリクエスト101を格納する動作は第一の実施の形態と同様である。すなわち、DRAMリクエスト格納部12に格納しているDRAMリクエスト101の最後尾に続いたエントリに、新たなDRAMリクエスト101を格納する。
第二の実施の形態における格納部制御信号112を説明する。図9は、第二の実施の形態における格納部制御信号112の一例を示す図である。図9に示す格納部制御信号112は、エントリ番号フィールド、パージフィールド、および更新フィールドを含む。このうち、エントリ番号フィールド、およびパージフィールドは図5に示す第一の実施の形態における格納部制御信号112と同一である。そこで、更新フィールドの動作を説明する。
(c)更新フィールド
エントリ番号フィールドが示すDRAMリクエスト格納部12のエントリを対象にインデックスフィールドを更新することを示す。
1’b1:インデックスフィールドの値を+1、1’b0:更新動作無し
第二の実施の形態におけるエントリのパージ動作を説明する。第二の実施の形態は、1個のDRAMリクエスト101を複数のDRAMコマンドで構成したDRAMコマンド列で実施する。したがって、DRAMコマンド列を構成するDRAMコマンドを全て実行した後に、DRAMリクエスト格納部12のエントリをパージする。パージした後に空いたエントリに、後続のエントリが格納しているDRAMリクエスト101を一つずつ移動する動作は、第一の実施の形態と同様である。
第二の実施の形態におけるDRAMリクエスト発行順決定部13の動作を説明する。第二の実施の形態のDRAMリクエスト発行順決定部13は、第一の実施の形態と同じく、DRAM状態管理部21と発行順決定部22を含んでいる。ここで、第二の実施の形態におけるDRAM状態管理部21の動作は、第一の実施の形態と同様である。一方、第二の実施の形態における発行順決定部22の動作は、第一の実施の形態における発行順決定部22の動作と異なる。よって、以下、第二の実施の形態における発行順決定部22の動作で、第一の実施の形態における発行順決定部22の動作と異なる動作を中心に説明する。
第二の実施の形態における発行順決定部22の動作を説明するに当たり、DRAMリクエスト格納部12の状態を示す表5を使用する。表5の「インデックス」列は、当該エントリに格納したDRAMリクエスト101を実施するDRAMコマンド列で、次に発行するDRAMコマンドの位置を示している。例えば、表5の「インデックス」列の値が0ならば、0番目、すなわち先頭のDRAMコマンドが次に発行するDRAMコマンドである。
Figure 2021039447
第二の実施の形態における発行順決定部22が発行順を決定する基準のうち、基準(A)から基準(C)は、第一の実施の形態と同様である。しかし、基準(D)は、1個のDRAMリクエスト101を複数のDRAMコマンドで構成したDRAMコマンド列で実施することから前提条件が第一の実施の形態と異なる。すなわち、MWRコマンドか否かを判断する対象は、エントリ32のインデックスフィールドが示す、次に発行するDRAMコマンドになる。よって、第二の実施の形態における、発行順を決定する基準(D)は次に示す通りである。
基準(D)エントリ32のインデックスフィールドが示す、次に発行するDRAMコマンドがMWRコマンドの場合、cnt(k)の値が0
第二の実施の形態における発行順決定部22が、基準(A)から基準(D)を適用して、格納済みDRAMリクエスト104の発行順を決定する動作は第一の実施の形態と同一である。また、第二の実施の形態における発行順決定部22が、発行順を決定した後に最初に発行するDRAMリクエスト101を次に発行するDRAMリクエスト105として出力する動作も、第一の実施の形態と同一である。
発行順決定部22が格納部制御信号112を生成する手順を説明する。第二の実施の形態は、1個のDRAMリクエストを複数のDRAMコマンドで構成したDRAMコマンド列で実施する。そして、DRAMコマンド列中で次に発行するDRAMコマンドの位置はエントリ32のインデックスフィールドが示している。したがって、発行順決定部22は、エントリ32をパージする信号に加えて、エントリ32のインデックスフィールドを更新する信号も合せて生成する。
DRAMコマンド列を構成する最後のDRAMコマンドの発行で、対応するDRAMリクエスト101の動作は完了する。したがって、エントリ32をパージする信号である、格納部制御信号112のパージフィールドは、次の条件で有効になる。
(a)発行状態信号111がDRAMコマンドの発行を示す
(b)最後のDRAMコマンド
一方、インデックスフィールドは、DRAMコマンド列を構成するDRAMコマンドを発行した場合、更新される。ただし、最後のDRAMコマンドを発行した場合はインデックスフィールドを更新する必要はない。よって、格納部制御信号112の更新フィールドは、次の条件で有効になる。
(a)発行状態信号111がDRAMコマンドの発行を示す
(b)最後のDRAMコマンドではない
DRAMコマンド列を構成する最後のDRAMコマンドであることは、エントリ32の、DRAMコマンド数フィールドの値と、インデックスフィールドの値から判断する。ここで、DRAMコマンド数フィールドの値をc、インデックスフィールドの値をidxとすると、
idx==c−1
の場合、次に発行するDRAMコマンドが、DRAMコマンド列を構成する最後のDRAMコマンドであることを示している。したがって、発行順決定部22は、発行状態信号111がDRAMコマンドの発行を示し、かつ(idx==c−1)の場合、対応するDRAMリクエスト101をパージするように格納部制御信号112を生成し、出力する。
例えば、DRAMリクエスト格納部12の状態が表5に示す状態であったとする。この時、DRAMリクエスト101の発行順を決定した結果、次に発行するDRAMリクエスト105がエントリ4のDRAMリクエスト101になったとする。
DRAMコマンド発行部14が、エントリ4のDRAMリクエスト101に対応するDRAMコマンドであるWRコマンドを発行すると、発行状態信号111の値は、
(cmd,bank,page)==(WR,1,0)
に変化する。このとき、インデックス列の値は3、DRAMコマンド数フィールドの値は4であるから、
idx==c−1
3==4−1=3
が成立する。したがって、発行順決定部22は、DRAMコマンド列を構成する全てのDRAMコマンドの発行が完了したと判断し、エントリ4をパージする格納部制御信号112を生成し、DRAMリクエスト格納部12に出力する。このとき、生成する格納部制御信号112の各フィールドは次の値である。
(a)エントリ番号フィールド 4
(b)パージフィールド 1’b1
(c)更新フィールド 1’b0
そして、発行順決定部22は、発行状態信号111がDRAMコマンドの発行を示し、かつ(idx!=c−1)の場合、対応するDRAMリクエスト101のインデックスフィールドを更新するように格納部制御信号112を生成し、出力する。このとき、生成する格納部制御信号112の各フィールドは次の値である。
(a)エントリ番号フィールド 4
(b)パージフィールド 1’b0
(c)更新フィールド 1’b1
第二の実施の形態におけるDRAMコマンド発行部14の機能を説明する。第二の実施の形態におけるDRAMコマンド発行部14の動作は、第一の実施の形態と同様である。
第二の実施の形態に係るメモリコントローラ5によると、第一の実施の形態に係るメモリコントローラ1によって奏される作用効果と同様の作用効果が奏される。
第二の実施の形態では、DRAM状態を基に、DRAMリクエスト格納部12が格納しているDRAMリクエスト101の発行順を決定する場合を説明したが、これに限られない。例えば、DRAM状態に関する(D)の基準に加えて、(A)〜(C)の基準とは別の基準、例えばDRAMリクエスト101の優先順位を基に発行順を決定してもよい。
(シミュレーション)
以下に、第二の実施の形態に係るメモリコントローラ5の作用効果を示すシミュレーション結果を説明する。シミュレーションの前提は以下の通りである。
・LPDDR4に準拠、3200Mbps。
・WL(Write Latency)=14サイクル(cycle)
・BL(Burst Length)=16サイクル
・DRAM203のData Width=32ビット(bit)
・DRAM203のPage=4キロバイト(KByte)
・ペナルティ
−PageMiss(WR−>*)=110サイクル
−MaskedWriteのペナルティ=32サイクル
上記前提の下、4000×2000画素の画像データを水平ラインごとに書き込む転送を二つのモジュールが競合するケースをシミュレートした。1画素のデータ量は4.5バイトであった。二つのモジュール間でページの依存関係は無かった。
(1)各ラインの先頭アドレスがDRAMコマンド単位(64Byte)にアラインされている場合
この場合、ラインの最終DRAMコマンドのみがMWRコマンドとなる。従来の手法によると、転送効率は79.5%となった。第二の実施の形態に係る手法によると、転送効率は80.4%となり、転送効率が0.9%増加した。
(2)各ラインの先頭アドレスがDRAMコマンド単位(64Byte)にアラインされていない場合
この場合、ラインの先頭DRAMコマンドおよび最終DRAMコマンドの両方がMWRコマンドとなる。したがって、特に工夫がなければ(1)の場合よりも転送効率の低下が予想され、実際、従来の手法によると転送効率は78.6%となり、(1)の場合よりも転送効率が0.9%悪化した。これに対して、第二の実施の形態に係る手法によると、転送効率は80.4%となり、(1)の場合と同等の転送効率が得られた。従来の手法との比較では転送効率は1.8%増加した。
以上、実施の形態に係るメモリコントローラの構成と動作について説明した。これらの実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
第一および第二の実施の形態では、メモリコントローラが格納、決定機能を有する場合について説明したが、これに限られず、例えば従来のメモリコントローラの前段にそれらの機能を有する前段回路を設けてもよい。
発明は上記実施の形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
1 メモリコントローラ、 12 DRAMリクエスト格納部、 13 DRAMリクエスト発行順決定部、 14 DRAMコマンド発行部。

Claims (10)

  1. DRAMに規定長のデータを書き込むための第1ライトコマンドと、DRAMに前記規定長に満たないデータを書き込むための第2ライトコマンドと、を発行可能に構成されたメモリコントローラであって、
    DRAMに対する要求を格納する格納手段と、
    前記格納手段に格納されている要求の発行順を決定する決定手段と、
    前記決定手段により決定された発行順に基づきDRAMコマンドを発行する発行手段と、を備え、
    前記決定手段は、先行するDRAMコマンドを発行してから当該DRAMコマンドと同じバンクを対象とする第2ライトコマンドを発行するまでの期間に、当該DRAMコマンドが対象とするバンクと異なるバンクを対象とする別のDRAMコマンドを発行可能な場合、その発行可能な別のDRAMコマンドが当該第2ライトコマンドよりも先に発行されるように発行順を決定するメモリコントローラ。
  2. 前記規定長は、DRAMのデータ幅およびバースト長のうちの少なくともひとつにより決まる請求項1に記載のメモリコントローラ。
  3. 前記期間は、DRAMの仕様で規定されるDRAMコマンドの最小発行間隔よりも長い請求項1または2に記載のメモリコントローラ。
  4. 前記決定手段はさらに、決定対象の要求について、
    (1)決定対象の要求に対応するDRAMコマンドの種別と、直前に発行されたDRAMコマンドの種別と、の異同、
    (2)決定対象の要求が対象とするバンクがパーバンクリフレッシュ動作中であるか否か、
    (3)決定対象の要求が対象とするページがオープンか否か、
    のうちの少なくともひとつにしたがい発行順を決定する請求項1から3のいずれか一項に記載のメモリコントローラ。
  5. DRAMに対する書き込み要求が第2ライトコマンドを必要とするか否かを、(1)当該書き込み要求の先頭アドレスおよびバースト長、または(2)当該書き込み要求に係るデータのストローブ情報に基づいて判定する判定手段をさらに備える請求項1から4のいずれか一項に記載のメモリコントローラ。
  6. 前記判定手段は、DRAMに対する書き込み要求に対応する複数のDRAMコマンドのそれぞれについて、当該DRAMコマンドが第2ライトコマンドであるか否かを識別するための識別情報を生成し、
    前記決定手段は生成された識別情報を参照する請求項5に記載のメモリコントローラ。
  7. 前記格納手段は、それぞれが要求を格納するよう構成された複数のエントリを含み、
    前記格納手段は、任意のエントリから要求を読み出し可能に構成される請求項1から6のいずれか一項に記載のメモリコントローラ。
  8. 前記決定手段は、さらに要求の優先順位に基づいて発行順を決定する請求項1から7のいずれか一項に記載のメモリコントローラ。
  9. 第2ライトコマンドは、マスクドライト(Masked Write)コマンドである請求項1から8のいずれか一項に記載のメモリコントローラ。
  10. DRAMに規定長のデータを書き込むための第1ライトコマンドと、DRAMに前記規定長に満たないデータを書き込むための第2ライトコマンドと、を発行可能に構成されたメモリコントローラで実施される方法あって、前記メモリコントローラはDRAMに対する要求を格納する格納手段を備え、前記方法は、
    前記格納手段に格納されている要求の発行順を決定することと、
    決定された発行順に基づきDRAMコマンドを発行することと、を含み、
    前記決定することは、先行するDRAMコマンドを発行してから当該DRAMコマンドと同じバンクを対象とする第2ライトコマンドを発行するまでの期間に、当該DRAMコマンドが対象とするバンクと異なるバンクを対象とする別のDRAMコマンドを発行可能な場合、その発行可能な別のDRAMコマンドが当該第2ライトコマンドよりも先に発行されるように発行順を決定することを含む方法。
JP2019158934A 2019-08-30 2019-08-30 メモリコントローラおよびメモリコントローラで実施される方法 Pending JP2021039447A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019158934A JP2021039447A (ja) 2019-08-30 2019-08-30 メモリコントローラおよびメモリコントローラで実施される方法
US17/004,240 US11435951B2 (en) 2019-08-30 2020-08-27 DRAM access technique to reduce latency due to write command length
US17/712,590 US11842079B2 (en) 2019-08-30 2022-04-04 Memory controller and memory control method that decides an order of issuing dram commands based on whether a command has a penalty period
JP2024003316A JP2024038365A (ja) 2019-08-30 2024-01-12 メモリコントローラおよびメモリコントローラで実施される方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019158934A JP2021039447A (ja) 2019-08-30 2019-08-30 メモリコントローラおよびメモリコントローラで実施される方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024003316A Division JP2024038365A (ja) 2019-08-30 2024-01-12 メモリコントローラおよびメモリコントローラで実施される方法

Publications (1)

Publication Number Publication Date
JP2021039447A true JP2021039447A (ja) 2021-03-11

Family

ID=74681202

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019158934A Pending JP2021039447A (ja) 2019-08-30 2019-08-30 メモリコントローラおよびメモリコントローラで実施される方法
JP2024003316A Pending JP2024038365A (ja) 2019-08-30 2024-01-12 メモリコントローラおよびメモリコントローラで実施される方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2024003316A Pending JP2024038365A (ja) 2019-08-30 2024-01-12 メモリコントローラおよびメモリコントローラで実施される方法

Country Status (2)

Country Link
US (2) US11435951B2 (ja)
JP (2) JP2021039447A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117099076A (zh) * 2021-03-31 2023-11-21 超威半导体公司 Dram命令拖尾效率管理

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7197998B2 (ja) * 2018-05-02 2022-12-28 キヤノン株式会社 メモリコントローラおよびメモリコントローラで実施される方法
US11735246B2 (en) * 2021-11-15 2023-08-22 Micron Technology, Inc. Semiconductor device performing refresh operation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260472A (ja) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd メモリアクセス装置
US20080052474A1 (en) * 2006-08-23 2008-02-28 Ati Technologies, Inc Write data mask method and system
JP2018180656A (ja) * 2017-04-04 2018-11-15 キヤノン株式会社 メモリコントローラとその制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393512B1 (en) * 1999-09-27 2002-05-21 Ati International Srl Circuit and method for detecting bank conflicts in accessing adjacent banks
US6505269B1 (en) * 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
JP2005182538A (ja) 2003-12-19 2005-07-07 Toshiba Corp データ転送装置
JP4820566B2 (ja) * 2005-03-25 2011-11-24 パナソニック株式会社 メモリアクセス制御回路
TWI318348B (en) * 2006-09-22 2009-12-11 Realtek Semiconductor Corp Memory management method
EP2071468A4 (en) * 2006-12-25 2010-11-03 Panasonic Corp MEMORY CONTROL DEVICE, MEMORY DEVICE, AND MEMORY CONTROL METHOD
JP5351145B2 (ja) * 2008-04-22 2013-11-27 パナソニック株式会社 メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法
US10318420B2 (en) * 2014-10-31 2019-06-11 Hewlett Packard Enterprise Development Lp Draining a write queue based on information from a read queue

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260472A (ja) * 2005-03-18 2006-09-28 Matsushita Electric Ind Co Ltd メモリアクセス装置
US20080052474A1 (en) * 2006-08-23 2008-02-28 Ati Technologies, Inc Write data mask method and system
JP2018180656A (ja) * 2017-04-04 2018-11-15 キヤノン株式会社 メモリコントローラとその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117099076A (zh) * 2021-03-31 2023-11-21 超威半导体公司 Dram命令拖尾效率管理

Also Published As

Publication number Publication date
US20210064296A1 (en) 2021-03-04
US11435951B2 (en) 2022-09-06
JP2024038365A (ja) 2024-03-19
US11842079B2 (en) 2023-12-12
US20220229602A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US11842079B2 (en) Memory controller and memory control method that decides an order of issuing dram commands based on whether a command has a penalty period
US20060059320A1 (en) Memory control device
IT201800000580A1 (it) Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico
US7836263B2 (en) Nonvolatile memory controlling method and nonvolatile memory controlling apparatus
US9563556B2 (en) Techniques for storing data and tags in different memory arrays
JPH02234242A (ja) 部分書込み制御装置
JP2001051896A (ja) 記憶装置
JP2010061620A (ja) Dma装置及びdma転送方法
US20210141567A1 (en) Memory controller, method executed by memory controller, and apparatus
US20100005284A1 (en) Device having shared memory and method for transferring code data
US20070030535A1 (en) Data scan system and data scan method using ddr
JP2005182538A (ja) データ転送装置
US6556484B2 (en) Plural line buffer type memory LSI
US20130346680A1 (en) Emulated electrically erasable memory having an address ram for data stored in flash memory
TWI721660B (zh) 控制資料讀寫裝置與方法
JP2004206850A (ja) 半導体記憶装置
JP7350699B2 (ja) ライトバックキャッシュ装置
TWI488040B (zh) 緩衝記憶體管理方法與相關緩衝記憶體控制器
US7404049B2 (en) Method and system for managing address bits during buffered program operations in a memory device
JP2009217310A (ja) メモリアクセス方法及びメモリアクセス装置
JP2008234514A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JPH04104345A (ja) Ecc機構付主記憶装置の部分書き換えデータの書き込み制御方式
US7917826B2 (en) Error correction apparatus and method for data stored in memory
JPH10222460A (ja) データ転送制御装置
JPS5837747A (ja) 命令読出専用バツフア記憶装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230828

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231013