JP2005521939A - メモリプールの変形 - Google Patents
メモリプールの変形 Download PDFInfo
- Publication number
- JP2005521939A JP2005521939A JP2003581024A JP2003581024A JP2005521939A JP 2005521939 A JP2005521939 A JP 2005521939A JP 2003581024 A JP2003581024 A JP 2003581024A JP 2003581024 A JP2003581024 A JP 2003581024A JP 2005521939 A JP2005521939 A JP 2005521939A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- configuration
- packet
- pool
- packets
- 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
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
Abstract
本発明は、物理メモリにおけるメモリ構成を変更する方法、その方法の使用法、及び集積回路に関する。メモリパケットのメモリプールを有するメモリ構成は、第1のメモリ構成のメモリプール内の解放されたメモリパケットを検出し、解放されたメモリパケットからのメモリを第2のメモリ構成に与え、第2のメモリ構成の与えられた空きのメモリのサイズを決定し、第2のメモリ構成のプールのメモリパケットのためのメモリの要求量を、与えられた空きのメモリのサイズが割当て要求を満足する場合に、与えられた空きのメモリ内に割当てることによって、新しいメモリ構成に変更されることが可能である。この移行によって、継ぎ目のないモード変更が適用され得、第1のモードにおいて解放されたメモリパケットは、第2のモードによって前もって使用され得る。断片化が回避され得る。
Description
本発明は、第1のメモリ構成及び少なくとも第2のメモリ構成が、それぞれ、少なくとも1つのメモリパケットを有する少なくとも1つのメモリプールによって定義される物理メモリにおいてメモリ構成を変更する方法に係る。本発明は更に、そのような方法の使用に係る。
多くのアプリケーションにおいて、物理メモリは、制限され、効率よく使用されなければならない。物理メモリを使用するためには、アロケータが、与えられた物理メモリ内の空いたメモリブロックを割当てなければならない。メモリブロックが、時間内に割当てられ且つ割当てが取り消されるに従って、物理メモリは断片化され、このことは、割当てられたメモリの割当てられたブロック間の割当てられないメモリのブロックが発生することを意味する。これらのいわゆる穴は、全ての利用可能な物理メモリがアプリケーションによって用いられることをできなくする。
ポール・R・ウィルソン外(情報科学学部、テキサス大学、オースティン)による「Dynamic Storage Allocation: A Survey and Critical Review」から、アロケータ、及び、メモリ内の断片化を回避するためのメカニズムが公知である。アロケータは、メモリの空き領域を記録し、隣接する空きブロックを大きい空きブロックに融合するために用いるメカニズムによって分類される。アロケータに重要なことは、そのポリシーとストラテジであり、即ち、アロケータが、実際の要求ストリームにおける規則性を適切に使用しているか否かということである。
アロケータは、新しいメモリブロックを割当て、所与のメモリブロックを解放する機能を与える。様々なアプリケーションは、様々な割当てのストラテジ、並びに様々なメモリサイズを必要とする。割当てのためのストラテジは、同等のサイズのメモリブロックのプールを使用することである。これらの同等のサイズのメモリブロックは、パケットとも称され得る。各割当要求は、その要求を満足するプールからのパケットに対する要求にマッピングされる。パケットがプール内で割当てられ且つ解放される場合、外部の断片化が回避される。プール内の断片化は、要求されたメモリブロックが選択されたプールのパケット内にぴったりと適合しない場合にのみ発生し得る。
ストリーミングシステムでは、ストリーミングデータは、処理ノードのグラフによって処理される。処理ノードは、データパケットを用いてデータを処理する。各データパケットは、メモリ内の1メモリブロックに対応し、これは全ての処理ノードによって共有される。ストリーミンググラフは、ストリーミングデータに実行されなければならない処理段階が既知であるときに作成される。プール内のパケットのサイズは、ストリーミングされるデータに依存する。オーディオデータは、数キロバイトのパケットサイズを必要とし、ビデオデータは、最大1メガバイトのパケットサイズを必要とする。
ストリーミンググラフが変更されなければならない場合、メモリプールの構成も変更されなければならない。ストリーミンググラフは、様々なアプリケーションとそれらのデータストリームが1つのシステム内でサポートされる場合に変更され得る。更に、データストリームの処理段階も変更され得、これは、ストリーミンググラフに処理ノードを加える又はストリーミンググラフから処理ノードを取り除くことが必要となる。多くのシステムはメモリが制約されるので、全てのアプリケーションデータがメモリの中に一度に格納されるわけではない。このことは、第1のアプリケーションに必要なメモリプールは、第2のアプリケーションのメモリプールのために解放されなければならないことを意味する。メモリを解放し且つ割当てすることにより、そのメモリの断片化が発生する場合がある。
ユーザが、特定のオーディオ又はビデオフィルタを、ストリーミンググラフに挿入する又は、ストリーミンググラフから取り除く必要があると判断すると、メモリの構成は変更されなければならない。この構成変更は、データを損失することなく行われなければならない。特に、ストリーミングシステムでは、データは、固定レートでシステム内にストリーミングされ続ける。データの処理をノードによって停止し、1つのプールが完全に解放されるまで待機し、最後にそのメモリを新しいプールに割当てることは可能ではない。このような手順は、ストリーミングデータのバッファリングを必要とし、このことは、制限されたメモリでは可能ではない。
ソフトウェアストリーミングは、ノード間の通信はメモリパケットを用いて行われる処理ノードグラフに基づいている。各メモリパケットは、全てのノードによって共有されるメモリ内の1メモリブロックに対応する。固定サイズメモリプールが、ストリーミングシステム内に設けられる。これらのメモリプールでは、固定サイズのメモリパケットが割当てられる。各処理ノードは、そのパケットに対し様々な要件を有し得、それにより、一般的に、複数の異なるプールがある。ストリーミンググラフにおける変更は、これは、データの処理が変更されたことを意味するが、メモリ構成の変更を必要とし、というのは、様々なパケットサイズが、新しいメモリプール内に必要とされ得るからである。メモリ構成間の継ぎ目のない変更を可能にするために、前のメモリプールの全メモリパケットの解放の前に、新しいメモリプールのために解放されたメモリパケットの使用が可能にされなければならない。
今日のアロケータは、そのような処理モード間の継ぎ目のない変更のために十分な方法を与えないので、本発明は、動作のモードを変更する間に、余分なバッファリングの量を制限することを目的とする。本発明は更に、異なるモードにおける少なくとも2つのプール間で同じメモリ部分をシフトすることを可能にすることを目的とする。本発明は更に、異なるモードにおける様々なメモリプールによって同じメモリを再利用することを目的とする。
本発明のこれらの目的は、第1のメモリ構成におけるメモリプール内の解放されたメモリパケットを検出する段階と、解放されたメモリパケットからのメモリを第2のメモリ構成に与える段階と、第2のメモリ構成の与えられた空きのメモリのサイズを決定する段階と、第2のメモリ構成のプールのメモリパケットのメモリの要求量を、与えられた空きのメモリのサイズが割当て要求を満足する場合に、与えられた空きのメモリ内に割当てる段階を有する方法によって達成される。
利点は、動作モード間の移行は継ぎ目がなく、付加的なハードウェアは必要でなく、少しだけ追加のメモリが必要となるという点である。メモリ断片化は、異なるモード間を移行する間にのみ発生する。
メモリ構成は、決められた数のメモリプールを与え、各メモリプールは、特定数のメモリパケットを有し、1つのメモリプールは、少なくとも1つのメモリパケットから構成される。
処理ノードがデータパケットの処理を終えると、このデータパケットのメモリは解放され得、何故なら処理されたデータは、次の処理ノードに送られるからである。これは、アロケータは、格納されたデータの処理の後に、メモリパケットを解放するということを意味する。
第1のメモリ構成におけるメモリパケットが解放されると、このメモリパケットは、第2のメモリ構成に与えられることが可能である。更なるメモリ構成への移行も行われることが可能である。
空きメモリを少なくとも第2のメモリ構成に与える後に、この与えられた空きメモリの全体サイズが決定される。これは、第1のメモリ構成からの全ての解放されたメモリパケットのサイズであり、少なくとも第2のメモリ構成に与えられ、再割当てはまだされていない。
与えられた空きメモリのサイズが、第2のメモリ構成のプールのための1つのメモリパケットのメモリ要求を満足する場合、このメモリパケットは、この与えられた空きメモリ内に割当てられる。これは、解放された空きメモリは、第1のメモリ構成の全ての割当てられたメモリパケットが解放される前に、第2のメモリ構成によって用いられ得るということを意味する。
2つ以上のメモリ構成間で構成変更を適用するには、請求項2に記載の方法が好適である。この場合、前の移行が完全に終了していなくても、更なるメモリ構成への移行を行い得る。
第1の構成の全てのメモリパケットが解放され、第2の構成に与えられることを確実にするために、請求項3に記載の方法が好適である。
一部の場合において、全てのメモリがメモリ構成に使用されるわけではない。従って、請求項4に記載の方法が好適である。この場合は、空きメモリは、第1のメモリ構成の任意のメモリパケットの解放の前に、第2のメモリ構成のメモリパケットに割当てられ得る。メモリは、1つ以上の次のメモリ構成のメモリパケットに与えられることも可能である。
メモリパケットの割当てを可能にするために、請求項5に記載の方法が好適である。この場合、メモリ構成は、全ての構成の前に固定される。
ストリーミングデータが処理される場合、請求項6のように同等のサイズのメモリパケットが好適である。
特定の時間内のモード変更を確実にするために、請求項7のようにメモリパケットを解放することが好適である。
メモリ構成が変更される場合に効率のよいメモリプール及びメモリパケットの割当てを可能にするために、請求項8に記載の方法が好適である。第1の構成から第2の構成に変更する前に、アロケータは、第2の構成を知っており、これは、アロケータは、メモリプールの数とプール内のメモリパケットのサイズを知っているということを意味する。
上述した方法のストリーミングシステム、時に、ビデオ及びオーディオストリーミングシステムにおける使用法は、本発明の更なる面であり、ここでは、メモリ構成は、定義されたストリーミンググラフに基づいている。
上述した方法によるメモリ割当てを供給する集積回路、特に、デジタル信号プロセッサ、デジタルビデオプロセッサ、又はデジタルオーディオプロセッサは、本発明のもう1つの面である。
本発明の上述した及び他の面は、以下に説明する実施例を参照することにより明らかとなり、説明する。
図1は、本発明の方法のフローチャートを示す。段階2において、構成Aが定義され、1つのメモリ内に割当てられる。構成Aは、メモリプールの数と、各メモリプール内のメモリブロック(パケット)の数及びサイズを記述する。
モード変更が要求される(6)場合、新しいメモリ構成Bが決定されなければならない(4)。メモリ構成Bは、要求されたモードの必要に基づいて決定される。
段階8において、構成Aの全ての空きメモリが、構成Bに与えられる。段階10において、任意のメモリ要求がまだ保留されているか否かが決定される。これらの要求は、段階4において前に決定されたメモリ構成Bに基づいて決定される。アロケータは、構成Bに応じてメモリを構成するためにメモリパケットがまだ割当てられなければならないか否か知っている。
保留のメモリ要求がある場合、段階12において、構成Bのために与えられた空きメモリが、構成Bの1メモリパケットのために十分に大きいか否かが決定される。構成Bに与えられた空きメモリが、構成Bのプールの1メモリパケットのために十分に大きい場合、段階14において、このメモリパケットは、与えられた空きのメモリ内に割当てられる。
与えられた空きメモリのサイズが、構成Bの任意のプールの任意の要求されるメモリパケットより小さい場合、段階16が処理される。段階16では、任意のパケットが、構成Aのために依然として割当てられているか否かが決定される。任意のメモリパケットが、構成Aのために依然として割当てられている場合、段階18において、構成Aにおける任意のメモリパケットの解放が待機される。
構成Aにおけるメモリパケットが解放された後、段階19において、解放されたメモリパケットは、構成Bに与えられる。段階10、12、14、16、18及び19が、保留されたメモリ要求がなくなるまで処理される。
段階10において、構成Bは、完全に構成され、保留されたメモリ要求がないことが検出されると、段階10、16、18、19が、構成Aの全メモリパケットが解放されるまで処理される。この場合、段階20において、モード移行は終了する。段階2乃至段階20の全ての段階が処理された後、メモリは、構成Bに応じて構成され、更なるメモリパケットは、構成Aに割当てられることはない。
構成Aから構成Bに移行する間に、メモリパケットは、構成Aの全メモリパケットが解放される前に構成Bにおいて使用され得る。
図2では、メモリ構成の概略図を示す。メモリ22は、メモリアドレス220−228を介してアドレス指定可能である。構成Aでは、メモリ22は、2つのプールA1、A2に分割され、プールA1は、3つのサイズ2のパケットを有し、プールA2は、1つのサイズ3のパケットを有する。構成Aから構成Bまでの移行25の間に、メモリ22は、2つのプールB1、B2に再編成される。プールB1は、3つのサイズ1のパケットを、プールB2は、2つのサイズ3のパケットを有する。
段階181において、アドレス226におけるパケットA21が解放され、この解放されたメモリは、構成B0に与えられる。段階141において、この与えられた空きメモリB0は、メモリパケットB22に割当てられる。段階182において、アドレス220におけるメモリパケットA11が解放され、空きメモリB0に与えられる。段階142において、メモリパケットB11、B12が、空きメモリB0内のメモリアドレス220、221において割当てられる。段階183において、メモリアドレス222におけるメモリパケットA12が解放され、段階143において、メモリパケットB13が、空きメモリB0内に割当てられる。段階184において、メモリパケットA13が解放され、空きメモリB0に与えられる。最後に、段階144において、メモリパケットB21が、アドレス223における空きメモリB0内に割当てられる。
本発明の方法を適用することによって、プールが、同じメモリ位置において両方の構成に置かれ、また、新しい構成のプールに追加可能なパケットの量は、前の構成からのパケットが解放されると最大限にすることが可能である。
将来のモードにおいてパケットが割当てられる必要のある場所について付加的な知識を用いることによって、断片化を回避し得る。更に、メモリプールは、インクリメントで割当てられることが可能であり、これは、ストリーミングシステムの待ち時間を減少し、従って、継ぎ目のないモード変換のために必要なメモリ量も減少される。
Claims (10)
- 第1のメモリ構成と少なくとも第2のメモリ構成が、それぞれ、少なくとも1つのメモリパケットを有する少なくとも1つのメモリプールによって定義される物理メモリにおいてメモリ構成を変更する方法であって、
a)前記第1のメモリ構成のメモリプール内の解放されたメモリパケットを検出する段階と、
b)前記解放されたメモリパケットからのメモリを前記第2のメモリ構成に与える段階と、
c)前記第2のメモリ構成の前記与えられた空きのメモリのサイズを決定する段階と、
d)前記第2のメモリ構成のプールのメモリパケットのメモリの要求量を、前記与えられた空きのメモリのサイズが前記割当て要求を満足する場合に、前記与えられた空きのメモリ内に割当てる段階と、
を有する方法。 - 前記第1のメモリ構成の全ての割当てられたメモリパケットが解放され、前記第2のメモリ構成の全てのメモリパケットが割当てられるまで、段階a乃至dを繰り返すことを特徴とする請求項1記載の方法。
- 更なるメモリ構成への段階a乃至dによる前記メモリ構成の変更を、前記前のメモリ構成の全てのメモリパケットの解放の前に行うことを特徴とする請求項1記載の方法。
- 段階aの前に、前記第1のメモリ構成の全ての空きのメモリを少なくとも前記第2のメモリ構成に与えることを特徴とする請求項1記載の方法。
- 前記少なくとも1つのメモリプールに固定メモリ場所を割当てることによって前記メモリ構成を構成し、
前記少なくとも2つのメモリプールのそれぞれの中にメモリパケットを与えることを特徴とする請求項1記載の方法。 - 1つのメモリプール内に同等のサイズのメモリパケットを割当てることを特徴とする請求項1記載の方法。
- 有限時間の間に、前記第1のメモリ構成のメモリパケットを解放することを特徴とする請求項1記載の方法。
- 段階aの前に、前記第2のメモリ構成を決定することを特徴とする請求項1記載の方法。
- ストリーミングシステム、特に、ビデオ及びオーディオストリーミングシステムにおける請求項1に記載の方法の使用法であって、
メモリ構成は、定義されたストリーミンググラフに基づいている使用法。 - 請求項1に記載のメモリ割当て方法を供給する集積回路、特に、デジタル信号プロセッサ、デジタルビデオプロセッサ、又はデジタルオーディオプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02076271 | 2002-04-03 | ||
PCT/IB2003/001008 WO2003083668A1 (en) | 2002-04-03 | 2003-03-14 | Morphing memory pools |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005521939A true JP2005521939A (ja) | 2005-07-21 |
Family
ID=28459538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003581024A Pending JP2005521939A (ja) | 2002-04-03 | 2003-03-14 | メモリプールの変形 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050172096A1 (ja) |
EP (1) | EP1499979A1 (ja) |
JP (1) | JP2005521939A (ja) |
KR (1) | KR20040101386A (ja) |
CN (1) | CN1647050A (ja) |
AU (1) | AU2003209598A1 (ja) |
WO (1) | WO2003083668A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010272072A (ja) * | 2009-05-25 | 2010-12-02 | Toshiba Corp | メモリ管理装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516291B2 (en) * | 2005-11-21 | 2009-04-07 | Red Hat, Inc. | Cooperative mechanism for efficient application memory allocation |
CN101594478B (zh) * | 2008-05-30 | 2013-01-30 | 新奥特(北京)视频技术有限公司 | 一种超长字幕数据处理的方法 |
US20140149697A1 (en) * | 2012-11-28 | 2014-05-29 | Dirk Thomsen | Memory Pre-Allocation For Cleanup and Rollback Operations |
US20150172096A1 (en) * | 2013-12-17 | 2015-06-18 | Microsoft Corporation | System alert correlation via deltas |
CN107203477A (zh) * | 2017-06-16 | 2017-09-26 | 深圳市万普拉斯科技有限公司 | 内存分配方法、装置、电子设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544327A (en) * | 1994-03-01 | 1996-08-06 | International Business Machines Corporation | Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied |
US7093097B2 (en) * | 2001-11-27 | 2006-08-15 | International Business Machines Corporation | Dynamic self-tuning memory management method and system |
-
2003
- 2003-03-14 AU AU2003209598A patent/AU2003209598A1/en not_active Abandoned
- 2003-03-14 KR KR10-2004-7015677A patent/KR20040101386A/ko not_active Application Discontinuation
- 2003-03-14 EP EP03745348A patent/EP1499979A1/en not_active Withdrawn
- 2003-03-14 JP JP2003581024A patent/JP2005521939A/ja active Pending
- 2003-03-14 US US10/509,456 patent/US20050172096A1/en not_active Abandoned
- 2003-03-14 WO PCT/IB2003/001008 patent/WO2003083668A1/en not_active Application Discontinuation
- 2003-03-14 CN CNA038076500A patent/CN1647050A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010272072A (ja) * | 2009-05-25 | 2010-12-02 | Toshiba Corp | メモリ管理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20050172096A1 (en) | 2005-08-04 |
AU2003209598A1 (en) | 2003-10-13 |
WO2003083668A1 (en) | 2003-10-09 |
CN1647050A (zh) | 2005-07-27 |
KR20040101386A (ko) | 2004-12-02 |
EP1499979A1 (en) | 2005-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100724438B1 (ko) | 기지국 모뎀의 메모리 제어장치 | |
EP1492295B1 (en) | Stream data processing device, stream data processing method, program, and medium | |
WO2004111847A1 (ja) | リソース管理方法及び装置、リソース管理プログラム、記憶媒体 | |
JP5789894B2 (ja) | バッファマネージャおよびメモリ管理方法 | |
KR19980063551A (ko) | 신호 처리 장치 및 소프트웨어 | |
JP5551512B2 (ja) | 通信制御装置、データ通信方法及びプログラム | |
US8490102B2 (en) | Resource allocation management using IOC token requestor logic | |
CN112214313A (zh) | 内存分配方法及相关设备 | |
JP2005500620A (ja) | 移動するメモリブロックを備えるメモリプール | |
JP2005521939A (ja) | メモリプールの変形 | |
JP2005135116A (ja) | ストレージ装置及びそのアクセス制御方法 | |
JP2005209206A (ja) | マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ | |
JP2005084907A (ja) | メモリ帯域制御装置 | |
WO2018171266A1 (zh) | 视频监控数据存储方法和装置 | |
US7900010B2 (en) | System and method for memory allocation management | |
US20060153185A1 (en) | Method and apparatus for dynamically changing ring size in network processing | |
US11592986B2 (en) | Methods for minimizing fragmentation in SSD within a storage system and devices thereof | |
CN114090249A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
JP2000227897A (ja) | Dma転送装置及びdma転送システム | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP2007018195A (ja) | 情報処理方法および情報処理装置 | |
WO2021192098A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
WO2010082604A1 (ja) | データ処理装置、メモリ管理方法およびメモリ管理プログラム | |
JP2004164202A (ja) | データ送受システム、リングバッファ制御方法、制御プログラム | |
US20140068220A1 (en) | Hardware based memory allocation system with directly connected memory |