[go: up one dir, main page]

JP2022129524A - メモリコントローラおよびメモリアクセス方法 - Google Patents

メモリコントローラおよびメモリアクセス方法 Download PDF

Info

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
Application number
JP2021028220A
Other languages
English (en)
Inventor
靖史 杉森
Yasushi Sugimori
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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2021028220A priority Critical patent/JP2022129524A/ja
Priority to PCT/JP2022/000171 priority patent/WO2022181066A1/ja
Priority to CN202280015704.9A priority patent/CN116848515A/zh
Priority to US18/261,365 priority patent/US20240069763A1/en
Publication of JP2022129524A publication Critical patent/JP2022129524A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/0656Data buffering 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/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
    • G06F3/0679Non-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には、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に、プロセッサのストールサイクルが低減するように開始アドレスを変換するプリフェッチ回路が開示されている。
特開2012-146139号公報
ところで、記憶装置への無駄なアクセスは、消費電力を増大させる。
本開示は、このような状況に鑑みてなされたものであり、無駄なアクセスを発生させないようにするものである。
本開示のメモリコントローラは、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始する読出し制御部と、読み出された複数の前記データを格納するバッファと、前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する出力制御部とを備えるメモリコントローラである。
本開示のメモリアクセス方法は、メモリコントローラが、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、読み出された複数の前記データをバッファに格納し、前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力するメモリアクセス方法である。
本開示においては、メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しが開始され、読み出された複数の前記データがバッファに格納され、前記バッファに格納された複数の前記データが、出力先のプロトコルに応じて出力される。
Bluetoothを用いたTWSについて説明する図である。 LSIの構成例を示すブロック図である。 メモリコントローラの機能構成例を示すブロック図である。 メモリアクセス処理の流れについて説明するフローチャートである。 通常のバスリクエストに対するデータの読出しの例を示す図である。 キャッシュミス時のバスリクエストに対するデータの読出しの例を示す図である。 バーストアクセス要求に対するメモリアクセス処理の流れについて説明するフローチャートである。
以下、本開示を実施するための形態(以下、実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.Bluetoothを用いたTWSとその課題
2.LSIとメモリコントローラの構成
3.メモリアクセス処理の流れ
4.変形例
<1.Bluetoothを用いたTWSとその課題>
近年、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)の構成例を示すブロック図である。
図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の機能構成例を示すブロック図である。
メモリコントローラ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によるメモリアクセス処理の流れについて説明する。
ステップ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つのアドレスに基づいて連続して複数のデータにアクセスするバーストアクセス要求に対して適用することができる。
図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ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、必要なアドレスからデータの読出しが開始されるようにしてもよい。
(メモリの他の例)
上述した実施の形態においては、メモリ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)
メモリコントローラが、
メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、
読み出された複数の前記データをバッファに格納し、
前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する
メモリアクセス方法。
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. 前記読出し制御部は、前記バスリクエストに応じて、キャッシュラインサイズ分の前記データの読出しを開始する
    請求項2に記載のメモリコントローラ。
  4. 前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスに基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
    請求項3に記載のメモリコントローラ。
  5. 前記読出し制御部は、前記バスリクエストにおける1ワード目のアドレスと、ラップアラウンドアクセス情報に基づいて、前記キャッシュラインサイズ分の前記データの読出しを開始する
    請求項3に記載のメモリコントローラ。
  6. 前記出力制御部は、前記バッファに格納された複数の前記データを、バスプロトコルに従って出力する
    請求項2に記載のメモリコントローラ。
  7. 前記出力制御部は、前記バッファに格納された複数の前記データを、1ワード分ずつ出力する
    請求項6に記載のメモリコントローラ。
  8. 前記バーストアクセス要求は、システム起動時のファームウェアの展開に応じたリクエストである
    請求項1に記載のメモリコントローラ。
  9. 前記バーストアクセス要求は、オーディオデータへのアクセス要求である
    請求項1に記載のメモリコントローラ。
  10. 前記メモリは、不揮発性メモリにより構成される
    請求項1に記載のメモリコントローラ。
  11. 前記不揮発性メモリは、フラッシュメモリ、MRAM,ReRAM,FeRAM、相変化メモリを含む
    請求項10に記載のメモリコントローラ。
  12. メモリコントローラが、
    メモリに対するバーストアクセス要求に応じて、前記バーストアクセス要求の完結によらずに、前記メモリからのデータの読出しを開始し、
    読み出された複数の前記データをバッファに格納し、
    前記バッファに格納された複数の前記データを、出力先のプロトコルに応じて出力する
    メモリアクセス方法。
JP2021028220A 2021-02-25 2021-02-25 メモリコントローラおよびメモリアクセス方法 Pending JP2022129524A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) データ転送制御装置及び電子機器