JP2022129524A - メモリコントローラおよびメモリアクセス方法 - Google Patents
メモリコントローラおよびメモリアクセス方法 Download PDFInfo
- Publication number
- JP2022129524A JP2022129524A JP2021028220A JP2021028220A JP2022129524A JP 2022129524 A JP2022129524 A JP 2022129524A JP 2021028220 A JP2021028220 A JP 2021028220A JP 2021028220 A JP2021028220 A JP 2021028220A JP 2022129524 A JP2022129524 A JP 2022129524A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- memory controller
- bus
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000004044 response Effects 0.000 claims abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 230000036506 anxiety Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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 Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
【課題】無駄なアクセスを発生させない。【解決手段】読出し制御部は、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、バッファは、読み出された複数の前記データを格納し、出力制御部は、前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する。本開示に係る技術は、例えば、Bluetoothを用いたTWSに内蔵されるLSIに適用することができる。【選択図】図3
Description
本開示は、メモリコントローラおよびメモリアクセス方法に関し、特に、無駄なアクセスを発生させないようにするメモリコントローラおよびメモリアクセス方法に関する。
コンピュータにおいては、CPU(Central Processing Unit)などのプロセッサの、フラッシュメモリなどの記憶装置へのアクセスによる負荷を低減するために、プロセッサと記憶装置の間にキャッシュメモリが設けられている。キャッシュメモリは、連続した複数のワードを1つのラインとして管理し、キャッシュミスの際には複数のワードをまとめて読み込む。このとき、記憶装置からのデータ転送にはバースト転送が用いられる。
また、メモリの階層化が進み、キャッシュメモリと記憶装置の間にプリフェッチバッファを設ける場合もある。
特許文献1には、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に、プロセッサのストールサイクルが低減するように開始アドレスを変換するプリフェッチ回路が開示されている。
ところで、記憶装置への無駄なアクセスは、消費電力を増大させる。
本開示は、このような状況に鑑みてなされたものであり、無駄なアクセスを発生させないようにするものである。
本開示のメモリコントローラは、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始する読出し制御部と、読み出された複数の前記データを格納するバッファと、前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する出力制御部とを備えるメモリコントローラである。
本開示のメモリアクセス方法は、メモリコントローラが、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、読み出された複数の前記データをバッファに格納し、前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力するメモリアクセス方法である。
本開示においては、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しが開始され、読み出された複数の前記データがバッファに格納され、前記バッファに格納された複数の前記データが、出力先のプロトコルに応じて出力される。
以下、本開示を実施するための形態(以下、実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.Bluetoothを用いたTWSとその課題
2.LSIとメモリコントローラの構成
3.メモリアクセス処理の流れ
4.変形例
2.LSIとメモリコントローラの構成
3.メモリアクセス処理の流れ
4.変形例
<1.Bluetoothを用いたTWSとその課題>
近年、Bluetooth(登録商標)を用いたTWS(True Wireless Stereo)として、スマートフォン向けのイヤホンが急速に普及しつつある。
近年、Bluetooth(登録商標)を用いたTWS(True Wireless Stereo)として、スマートフォン向けのイヤホンが急速に普及しつつある。
図1は、Bluetoothを用いたTWSについて説明する図である。図1には、左右の耳それぞれに装着されるイヤホン1L,1Rと、スマートフォン2が示されている。
イヤホン1L,1Rは、互いにペアリングした状態で、スマートフォン2と、BLE(Bluetooth Low Energy)を用いた無線通信を行うことで楽曲を再生する。
具体的には、例えば、イヤホン1Rが、スマートフォン2からの楽曲データを受信し、左右の音に分離する。分離された音のうちの右の音はイヤホン1Rにより、左の音はイヤホン1Lにより、同期しながら再生される。なお、イヤホン1Lが、スマートフォン2からの楽曲データを受信してもよい。
このようなイヤホン1L,1Rは、その筐体が小さく、バッテリ体積も小さいため、低消費電力が求められる。
ここで、右耳に装着されるイヤホン1Rへの操作によるUIコマンドが、イヤホン1L,1Rそれぞれに反映される例として、イヤホン1Rへの操作により、イヤホン1L,1Rそれぞれから楽曲の再生が開始されるケースを考える。
この場合において、一定の反応速度を満たせないことは、ユーザに対して、UIが適切に反応していないといった不安を与え、使いづらさにつながる。したがって、待ち受け状態などの、低周波数クロックで動作するような低電力状態においても、上述したようなUIコマンドが発生した場合には、短時間で処理が実行される必要がある。
一方で、クロック周波数を上げることで、処理性能を向上させることはできるが、消費電力が高くなってしまう。
また、例えば起動時において、プロセッサが、フラッシュメモリに格納されている実行コードをSRAM(Static Random Access Memory)などに展開する場合、コードサイズによっては、SRAMの容量や面積を大きくする必要があり、筐体の小型化に影響を及ぼす。
そこで、低消費電力化・小型化を実現しつつ、処理性能を維持するために、実行コードが格納されるフラッシュメモリを外部に設け、キャッシュメモリを用いることで動作するシステムを構築する。この場合、外部のフラッシュメモリへの無駄なアクセスは、消費電力を増大させる。
以下においては、無駄なアクセスを発生させないようにしたメモリコントローラとメモリアクセス方法について説明する。
<2.LSIとメモリコントローラの構成>
(LSIの構成例)
図2は、本開示に係る技術を適用したメモリコントローラを備えるLSI(Large Scale Integration)の構成例を示すブロック図である。
(LSIの構成例)
図2は、本開示に係る技術を適用したメモリコントローラを備えるLSI(Large Scale Integration)の構成例を示すブロック図である。
図2に示されるLSI10は、例えば図1のイヤホン1L,1Rに内蔵され、楽曲の再生に関する処理などを実行する。LSI10は、外部に設けられる外部コードメモリであるメモリ20と電気的に接続される。メモリ20は、不揮発性メモリであり、例えばフラッシュメモリにより構成される。なお、LSI10は、図1のイヤホン1L,1Rに限らず、低消費電力化・小型化が望まれる任意の電子機器に内蔵され、所定の処理を実行するように構成することが可能である。
LSI10は、CPU30、キャッシュメモリ40、バス50、プロセッサ61、DMAC(Direct Memory Access Controller)62、メモリコントローラ100、およびSRAM111を含むように構成される。
CPU30は、プログラムの命令に従って処理を実行する。プログラムの命令は、メモリ20の命令保持領域に保持される。また、処理に必要なデータは、メモリ20のデータ保持領域に保持される。
キャッシュメモリ40は、メモリ20の命令保持領域とデータ保持領域の内容の一部のコピーを保持する。
バス50は、キャッシュメモリ40、プロセッサ61、DMAC62、メモリコントローラ100、およびSRAM111を接続するメモリバスとして構成される。
プロセッサ61は、CPU30とは別の処理を実行する。DMAC62は、CPU30の命令に従ってCPU30-メモリ20間のデータの転送を制御する。
メモリコントローラ100は、メモリ20に対するアクセスを制御する。メモリ20は、メモリコントローラ100を介して、CPU30やプロセッサ61に共有される。
SRAM111は、不揮発性のRAMであり、メモリ20と比較して、レイテンシが小さく、容量も小さい。すなわち、メモリ20は、大きなサイズを単位としたデータアクセスが可能である一方、SRAM111は、小さな単位で高速なランダムアクセスが可能である。
(メモリコントローラの構成例)
図3は、メモリコントローラ100の機能構成例を示すブロック図である。
図3は、メモリコントローラ100の機能構成例を示すブロック図である。
メモリコントローラ100は、バスI/F(Interface)210、メモリI/F220、バッファ230、および制御部240を含むように構成される。
バスI/F210は、バス50を介して、CPU30との間でデータやコマンドを相互に交換する。
メモリI/F220は、メモリ20との間でデータやコマンドを相互に交換する。
バッファ230は、メモリI/F220によってメモリ20から読み出されたデータを一時的に格納する。
制御部240は、マイクロプロセッサなどにより構成され、メモリコントローラ100全体を制御する。制御部240は、所定のプログラムを実行することにより、読出し制御部241と出力制御部242を実現する。
読出し制御部241は、メモリI/F220を制御することで、メモリ20に対するデータのアクセス要求に応じて、メモリ20からのデータの読出しを制御する。読み出されたデータは、バスI/F210を介してバス50に出力されたり、バッファ230に一時的に格納される。
出力制御部242は、バスI/F210を制御することで、メモリI/F220によってメモリ20から読み出されたデータや、バッファ230に一時的に格納されたデータをバス50に出力する。出力制御部242は、出力先となるバス50のバスプロトコルに応じて、データを出力する。
<3.メモリアクセス処理の流れ>
次に、図4のフローチャートを参照して、メモリコントローラ100によるメモリアクセス処理の流れについて説明する。
次に、図4のフローチャートを参照して、メモリコントローラ100によるメモリアクセス処理の流れについて説明する。
ステップS1において、バスI/F210は、バス50を介して、CPU30からのバスリクエストを受け取る。
ステップS2において、制御部240は、CPU30からのバスリクエストが、キャッシュメモリ40におけるキャッシュミスに応じたアクセス要求(バーストアクセス要求)であるか否かを判定する。キャッシュミスに応じたアクセス要求であるか否かは、バス50のサイドバンド信号により、キャッシュミスしたことを示すフラグが付加されたことが通知されたか否かによって判定される。
キャッシュミスに応じたアクセス要求でないと判定された場合、ステップS3に進む。
ステップS3において、読出し制御部241は、メモリI/F220を制御することにより、アクセス要求に応じてメモリ20にアクセスすることで、メモリ20のアクセス単位である1ワード分のデータを読み出す。
ステップS4において、出力制御部242は、バスI/F210を制御することで、メモリI/F220により読み出された1ワード分のデータを、バス50へ出力する。ステップS4の後、ステップS1に戻り、次のバスリクエストが受け取られる。
図5は、通常のバスリクエストに対するデータの読出しの例を示す図である。
図5の例では、バスリクエストとして、8ワード分のデータのアクセス要求が受け取られている。バスリクエストは、クロックに合わせたタイミングで生成される。図中、「A1」乃至「A8」は、メモリ20のアドレスを表している。
図5に示されるように、バスリクエストに応じて、アドレス「A1」乃至「A8」に対応するデータが、1ワード分ずつメモリ20から読み出され、バス50に出力される。このようなメモリアクセスは、例えばARM社のAHBプロトコルに従って行われてもよいし、AXIプロトコルやOCPプロトコルなどの他のバスプロトコルに従って行われてもよい。
図4のフローチャートに戻り、ステップS2において、キャッシュミスに応じたアクセス要求であると判定された場合、ステップS11に進む。
キャッシュミス時のバスリクエストは、キャッシュラインサイズ分のデータの読出し要求であることから、ステップS11において、読出し制御部241は、メモリI/F220を制御することにより、キャッシュラインサイズ分のデータの読出しを開始する。キャッシュラインサイズは、例えば32Byte(8ワード)とされる。
ここでは、バスリクエストの完結によらずに、キャッシュラインサイズ分のデータが先行して、順次読み出される。
ステップS12において、読出し制御部241は、メモリI/F220により読みされたデータをバッファ230に格納する。
ステップS13において、制御部240は、バスクロックに合わせて受け取られたCPU30からのバスリクエストが、バッファ230内に格納されたデータに該当するリクエストであるか否かを判定する。
CPU30からのバスリクエストが、バッファ230内に格納されたデータに該当するリクエストであると判定された場合、ステップS14に進む。
ステップS14において、出力制御部242は、バスI/F210を制御することで、CPU30からのバスリクエストに該当するバッファ230内の1ワード分のデータをバス50に出力する。
その後、ステップS15において、バスI/F210は、バス50を介して、CPU30からの次のバスリクエストを受け取る。次のバスリクエストが受け取られると、ステップS13に戻り、受け取られたバスリクエストが、バッファ230内に格納されたデータに該当するリクエストであるか否かが判定される。
ステップS13乃至S15の処理は、バッファ230内に格納されたキャッシュラインサイズ分のデータが全てバス50に出力されるまで繰り返される。
その後のステップS15において、通常のバスリクエストが受け取られると、ステップS13においては、そのバスリクエストは、バッファ230内に格納されたデータに該当するリクエストでないと判定され、ステップS3に戻る。
図6は、キャッシュミス時のバスリクエストに対するデータの読出しの例を示す図である。
図6の例では、バスリクエストとして、キャッシュラインサイズ分(8ワード分)のデータのバーストアクセス要求が受け取られている。図中、「B1」乃至「B8」は、メモリ20のアドレスを表している。
図6に示されるように、バスリクエストにおける1ワード目のアドレス「B1」に基づいて、キャッシュラインサイズ分のアドレス「B1」乃至「B8」に対応するデータが先行してメモリ20から読み出され、バッファ230に格納される。バッファ230に格納されたアドレス「B1」乃至「B8」に対応するデータは、バスプロトコルに従って、バスリクエストに合わせたタイミングで1ワード分ずつバス50に出力される。
以上の処理によれば、キャッシュミス時には、キャッシュラインサイズ分のデータの読出しが先行して開始され、順次、読み出されたデータがバッファ230に格納される。これにより、キャッシュミス時のミスペナルティ(時間損失)を最小限に抑え、無駄なアクセスを発生させないようにすることができる。その結果、クロック周波数を上げることなく、消費電力の増大を抑えることができ、例えばBluetoothを用いたTWSなどの電子機器に内蔵されるLSIにおいて、低消費電力化・小型化を実現しつつ、処理性能を維持することが可能となる。
<4.変形例>
以下においては、上述した本開示に係る実施の形態における変形例について説明する。
以下においては、上述した本開示に係る実施の形態における変形例について説明する。
(バーストアクセス要求に対するメモリアクセス処理)
上述したメモリコントローラ100のメモリアクセス処理は、キャッシュミス時のバスリクエストに限らず、1つのアドレスに基づいて連続して複数のデータにアクセスするバーストアクセス要求に対して適用することができる。
上述したメモリコントローラ100のメモリアクセス処理は、キャッシュミス時のバスリクエストに限らず、1つのアドレスに基づいて連続して複数のデータにアクセスするバーストアクセス要求に対して適用することができる。
図7は、バーストアクセス要求に対するメモリアクセス処理の流れについて説明するフローチャートである。
ステップS21において、バスI/F210は、バス50を介して、CPU30からのバーストアクセス要求を受け取る。ここでのバーストアクセス要求は、例えば、システム起動時のSRAMなどへのファームウェアの展開に応じたリクエストであったり、オーディオデータへのアクセス要求であったりする。
ステップS22において、読出し制御部241は、メモリI/F220を制御することにより、バーストアクセス要求に応じたサイズ分のデータの読出しを開始する。バーストアクセス要求に応じたサイズ分のデータは、SRAMなどへ展開されるファームウェアや、オーディオデータなど、あらかじめアクセス順が決まったデータとされる。
ステップS23において、読出し制御部241は、メモリI/F220により読みされたデータをバッファ230に格納する。
ステップS24において、出力制御部242は、バスI/F210を制御することで、バッファ230内のデータを、バスプロトコルに従って順次バス50に出力する。
以上の処理によれば、あらかじめアクセス順が決まったデータへのバーストアクセス要求に対して、無駄なアクセスを発生させないようにすることができ、消費電力の増大を抑えることが可能となる。
(ラップアラウンドメモリアクセスへの適用)
上述した実施の形態においては、バスリクエストにおける1ワード目のアドレスに基づいて、データの読出しが開始されるものとした。これに限らず、ラップアラウンドメモリアクセスを行うメモリコントローラにおいて、バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、必要なアドレスからデータの読出しが開始されるようにしてもよい。
上述した実施の形態においては、バスリクエストにおける1ワード目のアドレスに基づいて、データの読出しが開始されるものとした。これに限らず、ラップアラウンドメモリアクセスを行うメモリコントローラにおいて、バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、必要なアドレスからデータの読出しが開始されるようにしてもよい。
(メモリの他の例)
上述した実施の形態においては、メモリ20は、フラッシュメモリにより構成されるものとしたが、MRAM(Magnetoresistive Random Access Memory)やReRAM(Resistive RAM),FeRAM(Ferroelectric RAM)、相変化メモリなど、他の種類の不揮発性メモリにより構成されてもよい。
上述した実施の形態においては、メモリ20は、フラッシュメモリにより構成されるものとしたが、MRAM(Magnetoresistive Random Access Memory)やReRAM(Resistive RAM),FeRAM(Ferroelectric RAM)、相変化メモリなど、他の種類の不揮発性メモリにより構成されてもよい。
また、メモリ20は、外部コードメモリであるものとしたが、LSI10上に設けられるオンチップメモリであってもよい。
本開示に係る技術を適用したメモリコントローラは、Bluetoothを用いたTWSに内蔵されるLSIに限らず、任意のLSIに設けることができる。
すなわち、本開示に係る技術の実施の形態は、上述した実施の形態に限定されるものではなく、本開示に係る技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
さらに、本開示に係る技術は以下のような構成をとることができる。
(1)
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始する読出し制御部と、
読み出された複数の前記データを格納するバッファと、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する出力制御部と
を備えるメモリコントローラ。
(2)
前記バーストアクセス要求は、キャッシュメモリにおけるキャッシュミスに応じたバスリクエストである
(1)に記載のメモリコントローラ。
(3)
前記読出し制御部は、前記バスリクエストに応じて、キャッシュラインサイズ分の前記データの読出しを開始する
(2)に記載のメモリコントローラ。
(4)
前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスに基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
(3)に記載のメモリコントローラ。
(5)
前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
(3)に記載のメモリコントローラ。
(6)
前記出力制御部は、前記バッファに格納された複数の前記データを、バスプロトコルに従って出力する
(2)乃至(5)のいずれかに記載のメモリコントローラ。
(7)
前記出力制御部は、前記バッファに格納された複数の前記データを、1ワード分ずつ出力する
(6)に記載のメモリコントローラ。
(8)
前記バーストアクセス要求は、システム起動時のファームウェアの展開に応じたリクエストである
(1)に記載のメモリコントローラ。
(9)
前記バーストアクセス要求は、オーディオデータへのアクセス要求である
(1)に記載のメモリコントローラ。
(10)
前記メモリは、不揮発性メモリにより構成される
(1)乃至(9)のいずれかに記載のメモリコントローラ。
(11)
前記不揮発性メモリは、フラッシュメモリ、MRAM,ReRAM,FeRAM、相変化メモリを含む
(10)に記載のメモリコントローラ。
(12)
メモリコントローラが、
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、
読み出された複数の前記データをバッファに格納し、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する
メモリアクセス方法。
(1)
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始する読出し制御部と、
読み出された複数の前記データを格納するバッファと、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する出力制御部と
を備えるメモリコントローラ。
(2)
前記バーストアクセス要求は、キャッシュメモリにおけるキャッシュミスに応じたバスリクエストである
(1)に記載のメモリコントローラ。
(3)
前記読出し制御部は、前記バスリクエストに応じて、キャッシュラインサイズ分の前記データの読出しを開始する
(2)に記載のメモリコントローラ。
(4)
前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスに基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
(3)に記載のメモリコントローラ。
(5)
前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
(3)に記載のメモリコントローラ。
(6)
前記出力制御部は、前記バッファに格納された複数の前記データを、バスプロトコルに従って出力する
(2)乃至(5)のいずれかに記載のメモリコントローラ。
(7)
前記出力制御部は、前記バッファに格納された複数の前記データを、1ワード分ずつ出力する
(6)に記載のメモリコントローラ。
(8)
前記バーストアクセス要求は、システム起動時のファームウェアの展開に応じたリクエストである
(1)に記載のメモリコントローラ。
(9)
前記バーストアクセス要求は、オーディオデータへのアクセス要求である
(1)に記載のメモリコントローラ。
(10)
前記メモリは、不揮発性メモリにより構成される
(1)乃至(9)のいずれかに記載のメモリコントローラ。
(11)
前記不揮発性メモリは、フラッシュメモリ、MRAM,ReRAM,FeRAM、相変化メモリを含む
(10)に記載のメモリコントローラ。
(12)
メモリコントローラが、
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、
読み出された複数の前記データをバッファに格納し、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する
メモリアクセス方法。
1L,1R イヤホン, 10 LSI, 20 メモリ, 30 CPU, 40 キャッシュメモリ, 50 バス, 61 プロセッサ, 62 DMAC, 100 メモリコントローラ, 111 SRAM, 210 バスI/F, 220 メモリI/F, 230 バッファ, 240 制御部, 241 読出し制御部, 242 出力制御部
Claims (12)
- メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始する読出し制御部と、
読み出された複数の前記データを格納するバッファと、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する出力制御部と
を備えるメモリコントローラ。 - 前記バーストアクセス要求は、キャッシュメモリにおけるキャッシュミスに応じたバスリクエストである
請求項1に記載のメモリコントローラ。 - 前記読出し制御部は、前記バスリクエストに応じて、キャッシュラインサイズ分の前記データの読出しを開始する
請求項2に記載のメモリコントローラ。 - 前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスに基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
請求項3に記載のメモリコントローラ。 - 前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
請求項3に記載のメモリコントローラ。 - 前記出力制御部は、前記バッファに格納された複数の前記データを、バスプロトコルに従って出力する
請求項2に記載のメモリコントローラ。 - 前記出力制御部は、前記バッファに格納された複数の前記データを、1ワード分ずつ出力する
請求項6に記載のメモリコントローラ。 - 前記バーストアクセス要求は、システム起動時のファームウェアの展開に応じたリクエストである
請求項1に記載のメモリコントローラ。 - 前記バーストアクセス要求は、オーディオデータへのアクセス要求である
請求項1に記載のメモリコントローラ。 - 前記メモリは、不揮発性メモリにより構成される
請求項1に記載のメモリコントローラ。 - 前記不揮発性メモリは、フラッシュメモリ、MRAM,ReRAM,FeRAM、相変化メモリを含む
請求項10に記載のメモリコントローラ。 - メモリコントローラが、
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、
読み出された複数の前記データをバッファに格納し、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する
メモリアクセス方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021028220A JP2022129524A (ja) | 2021-02-25 | 2021-02-25 | メモリコントローラおよびメモリアクセス方法 |
PCT/JP2022/000171 WO2022181066A1 (ja) | 2021-02-25 | 2022-01-06 | メモリコントローラおよびメモリアクセス方法 |
CN202280015704.9A CN116848515A (zh) | 2021-02-25 | 2022-01-06 | 存储器控制器及存储器访问方法 |
US18/261,365 US20240069763A1 (en) | 2021-02-25 | 2022-01-06 | Memory controller and memory access method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021028220A JP2022129524A (ja) | 2021-02-25 | 2021-02-25 | メモリコントローラおよびメモリアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022129524A true JP2022129524A (ja) | 2022-09-06 |
Family
ID=83048859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021028220A Pending JP2022129524A (ja) | 2021-02-25 | 2021-02-25 | メモリコントローラおよびメモリアクセス方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240069763A1 (ja) |
JP (1) | JP2022129524A (ja) |
CN (1) | CN116848515A (ja) |
WO (1) | WO2022181066A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12210456B2 (en) * | 2021-03-26 | 2025-01-28 | Intel Corporation | Dynamic random access memory (DRAM) with scalable meta data |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517626A (en) * | 1990-05-07 | 1996-05-14 | S3, Incorporated | Open high speed bus for microcomputer system |
US5325499A (en) * | 1990-09-28 | 1994-06-28 | Tandon Corporation | Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory |
US5126975A (en) * | 1990-10-24 | 1992-06-30 | Integrated Device Technology, Inc. | Integrated cache SRAM memory having synchronous write and burst read |
US5293603A (en) * | 1991-06-04 | 1994-03-08 | Intel Corporation | Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path |
JP3920931B2 (ja) * | 1992-04-17 | 2007-05-30 | サン・マイクロシステムズ・インコーポレイテッド | キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置 |
JPH06153156A (ja) * | 1992-11-02 | 1994-05-31 | Fujitsu Ltd | ムービー再生方式 |
US5790831A (en) * | 1994-11-01 | 1998-08-04 | Opti Inc. | VL-bus/PCI-bus bridge |
US6598136B1 (en) * | 1995-10-06 | 2003-07-22 | National Semiconductor Corporation | Data transfer with highly granular cacheability control between memory and a scratchpad area |
US5729504A (en) * | 1995-12-14 | 1998-03-17 | Micron Technology, Inc. | Continuous burst edo memory device |
US5603010A (en) * | 1995-12-28 | 1997-02-11 | Intel Corporation | Performing speculative system memory reads prior to decoding device code |
US5802323A (en) * | 1996-06-14 | 1998-09-01 | Advanced Micro Devices, Inc. | Transparent burst access to data having a portion residing in cache and a portion residing in memory |
US5793693A (en) * | 1996-11-04 | 1998-08-11 | Compaq Computer Corporation | Cache memory using unique burst counter circuitry and asynchronous interleaved RAM banks for zero wait state operation |
US6658552B1 (en) * | 1998-10-23 | 2003-12-02 | Micron Technology, Inc. | Processing system with separate general purpose execution unit and data string manipulation unit |
DE19951677B4 (de) * | 1998-10-30 | 2006-04-13 | Fujitsu Ltd., Kawasaki | Halbleiterspeichervorrichtung |
JP2000163965A (ja) * | 1998-11-27 | 2000-06-16 | Mitsubishi Electric Corp | 同期型半導体記憶装置 |
US6385687B2 (en) * | 1999-05-14 | 2002-05-07 | Micron Technology, Inc. | Method and apparatus for simultaneously accessing the tag and data arrays of a memory device |
DE60019081D1 (de) * | 2000-01-31 | 2005-05-04 | St Microelectronics Srl | Verschachtelter Burst-Speicher mit Burst-Zugriff bei synchronen Lesezyklen, wobei die beiden untergeordneten Speicherfelder unabhängig lesbar sind mit wahlfreiem Zugriff während asynchroner Lesezyklen |
EP1122735B1 (en) * | 2000-01-31 | 2010-09-01 | STMicroelectronics Srl | Interleaved data path and output management architecture for an interleaved memory and load pulser circuit for outputting the read data |
US6715004B1 (en) * | 2000-03-29 | 2004-03-30 | Intel Corporation | Method and apparatus for intermediate validation of data transferred between a host and a device |
US6567953B1 (en) * | 2000-03-29 | 2003-05-20 | Intel Corporation | Method and apparatus for host-based validating of data transferred between a device and a host |
US6651148B2 (en) * | 2000-05-23 | 2003-11-18 | Canon Kabushiki Kaisha | High-speed memory controller for pipelining memory read transactions |
US6707740B2 (en) * | 2001-08-03 | 2004-03-16 | Fujitsu Limited | Semiconductor memory |
US6781911B2 (en) * | 2002-04-09 | 2004-08-24 | Intel Corporation | Early power-down digital memory device and method |
KR100437467B1 (ko) * | 2002-07-03 | 2004-06-23 | 삼성전자주식회사 | 연속 버스트 읽기 동작 모드를 갖는 멀티 칩 시스템 |
TWI229290B (en) * | 2002-09-11 | 2005-03-11 | Sunplus Technology Co Ltd | Storage structure and the method capable of storing and forwarding instructions and data |
JP2004171209A (ja) * | 2002-11-19 | 2004-06-17 | Matsushita Electric Ind Co Ltd | 共有メモリデータ転送装置 |
DE10309919B4 (de) * | 2003-03-07 | 2008-09-25 | Qimonda Ag | Pufferbaustein und Speichermodule |
US6985970B2 (en) * | 2003-04-25 | 2006-01-10 | International Business Machines Corporation | Data transfer with implicit notification |
CN100485807C (zh) * | 2003-06-30 | 2009-05-06 | 富士通微电子株式会社 | 半导体存储器设备 |
JP4614650B2 (ja) * | 2003-11-13 | 2011-01-19 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置 |
US7107384B1 (en) * | 2004-03-01 | 2006-09-12 | Pericom Semiconductor Corp. | Dynamic PCI-bus pre-fetch with separate counters for commands of commands of different data-transfer lengths |
JP4284527B2 (ja) * | 2004-03-26 | 2009-06-24 | 日本電気株式会社 | メモリインターフェイス制御回路 |
US7249222B1 (en) * | 2004-05-05 | 2007-07-24 | Altera Corporation | Prefetching data based on predetermined criteria |
JP4827399B2 (ja) * | 2004-05-26 | 2011-11-30 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置 |
US7512762B2 (en) * | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US20060143330A1 (en) * | 2004-12-23 | 2006-06-29 | Oliver Kiehl | Method for data transmit burst length control |
CN100583081C (zh) * | 2005-04-11 | 2010-01-20 | 松下电器产业株式会社 | 系统性能描述装置 |
US7716387B2 (en) * | 2005-07-14 | 2010-05-11 | Canon Kabushiki Kaisha | Memory control apparatus and method |
JP4936506B2 (ja) * | 2005-12-08 | 2012-05-23 | ルネサスエレクトロニクス株式会社 | メモリ制御回路及びメモリ制御方法 |
US20070268510A1 (en) * | 2006-05-19 | 2007-11-22 | Dilinur Wushour | Service dialog system supporting user reporting of printing errors |
KR100780955B1 (ko) * | 2006-08-14 | 2007-12-03 | 삼성전자주식회사 | 데이터 반전 방식을 사용하는 메모리 시스템 |
JP4930031B2 (ja) * | 2006-12-13 | 2012-05-09 | 富士通株式会社 | 制御装置及び制御システム |
JP5731730B2 (ja) * | 2008-01-11 | 2015-06-10 | ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. | 半導体記憶装置及びその半導体記憶装置を含むデータ処理システム |
JP5292978B2 (ja) * | 2008-08-01 | 2013-09-18 | 富士通株式会社 | 制御装置、情報処理装置、及びメモリモジュール認識方法 |
WO2010061588A1 (ja) * | 2008-11-28 | 2010-06-03 | パナソニック株式会社 | メモリ制御装置、データプロセッサ及びデータ読み出し方法 |
JP5446464B2 (ja) * | 2009-05-26 | 2014-03-19 | 富士通セミコンダクター株式会社 | 情報処理システム及びデータ転送方法 |
WO2012082656A2 (en) * | 2010-12-13 | 2012-06-21 | Aplus Flash Technology, Inc. | Universal timing waveforms sets to improve random access read and write speed of memories |
US20130073790A1 (en) * | 2011-09-16 | 2013-03-21 | Avalanche Technology, Inc. | Magnetic random access memory with burst access |
US9251882B2 (en) * | 2011-09-16 | 2016-02-02 | Avalanche Technology, Inc. | Magnetic random access memory with dynamic random access memory (DRAM)-like interface |
US9218293B2 (en) * | 2013-09-30 | 2015-12-22 | Freescale Semiconductor, Inc. | Data processing system with cache linefill buffer and method of operation |
US10002090B2 (en) * | 2015-04-08 | 2018-06-19 | Microsemi Semiconductor Ulc | Method for improving the performance of synchronous serial interfaces |
US11194726B2 (en) * | 2019-02-25 | 2021-12-07 | Micron Technology, Inc. | Stacked memory dice for combined access operations |
US10740264B1 (en) * | 2019-04-29 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Differential serial memory interconnect |
KR102729765B1 (ko) * | 2019-12-12 | 2024-11-13 | 주식회사 메타씨앤아이 | 메모리 장치에서 통합 카운터 |
KR20220104829A (ko) * | 2019-12-23 | 2022-07-26 | 마이크론 테크놀로지, 인크. | 라인 캐시 실패의 효과적인 방지 |
US12210456B2 (en) * | 2021-03-26 | 2025-01-28 | Intel Corporation | Dynamic random access memory (DRAM) with scalable meta data |
-
2021
- 2021-02-25 JP JP2021028220A patent/JP2022129524A/ja active Pending
-
2022
- 2022-01-06 US US18/261,365 patent/US20240069763A1/en active Pending
- 2022-01-06 CN CN202280015704.9A patent/CN116848515A/zh active Pending
- 2022-01-06 WO PCT/JP2022/000171 patent/WO2022181066A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20240069763A1 (en) | 2024-02-29 |
CN116848515A (zh) | 2023-10-03 |
WO2022181066A1 (ja) | 2022-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679539B (zh) | 主從式系統、指令執行方法與資料存取方法 | |
JP4901285B2 (ja) | 読み出し性能を向上させることができるメモリカード | |
CN100481266C (zh) | 在主机和非易失性存储设备间进行缓冲的多端口存储设备 | |
US8499182B2 (en) | Semiconductor device and data processing system | |
KR20150140361A (ko) | 하이브리드 메모리 디바이스 | |
US9043806B2 (en) | Information processing device and task switching method | |
KR20210038313A (ko) | 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경 | |
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
JP5446464B2 (ja) | 情報処理システム及びデータ転送方法 | |
JP2008090851A (ja) | 記憶システム、およびデータ転送方法 | |
CN103226525A (zh) | 高时钟速率下的连续读取突发支持 | |
WO2022181066A1 (ja) | メモリコントローラおよびメモリアクセス方法 | |
CN111782027B (zh) | Ddr存储器运行频率调整方法及装置 | |
JP2010176442A (ja) | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 | |
US6427181B1 (en) | Method of and apparatus for processing information, and providing medium | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
TWI471731B (zh) | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 | |
TW201344444A (zh) | 主機板及應用於該主機板的資料處理方法 | |
US9015272B2 (en) | Microcomputer | |
JP2006338538A (ja) | ストリームプロセッサ | |
JP2003308288A (ja) | マイクロコンピュータシステム | |
JP4633334B2 (ja) | 情報処理装置およびメモリアクセス調停方法 | |
JP4693843B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP2009020776A (ja) | スワップアウト制御装置 | |
JP2006227985A (ja) | データ転送制御装置及び電子機器 |