JP2013502016A - メモリ管理および効率的なデータ処理のための装置および方法 - Google Patents

メモリ管理および効率的なデータ処理のための装置および方法 Download PDF

Info

Publication number
JP2013502016A
JP2013502016A JP2012524916A JP2012524916A JP2013502016A JP 2013502016 A JP2013502016 A JP 2013502016A JP 2012524916 A JP2012524916 A JP 2012524916A JP 2012524916 A JP2012524916 A JP 2012524916A JP 2013502016 A JP2013502016 A JP 2013502016A
Authority
JP
Japan
Prior art keywords
data
memory
memory pool
hardware
processor
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
JP2012524916A
Other languages
English (en)
Inventor
コーレンツ、マティアス
ミア、アイドリアス
カン、イルファン・アンワー
サチャナラヤン、マドフスダン
マヘシュワリ、シャイレシュ
クリシュナムーアシー、スリビジャ
ウルガオンカー、サンディープ
クリンゲンブラン、トマス
リオウ、ティム・ティンフェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013502016A publication Critical patent/JP2013502016A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Advance Control (AREA)

Abstract

データにおいて演算するためのハードウェア中で、複数のメモリプールを規定する。少なくとも1つのメモリプールは、より短い待ち時間を有する、他のメモリプール。ハードウェアコンポーネントは、より短い待ち時間のメモリプール中のデータにおいて直接的に演算する。
【選択図】図10

Description

背景
分野
本開示は、一般的に、データ処理に関し、さらに詳細には、通信システム中のハードウェアを使用して、より効率的にデータを処理するための技術に関する。
背景
一般的に、通信システム内のデータ処理機能は、多数のタスクを実現するためにソフトウェアの使用を用いる。このようなソフトウェアは、通常、いくつかのハードウェア演算のためにインテリジェンスを提供する。したがって、ソフトウェアとハードウェアとの間には密接な対話がなければならないので、いくつかのインスタンスでは、いくつかのタスクを実現するために多くのステップを要求する。ソフトウェアへの依存は、結果として、増加する待ち時間や、浪費される帯域幅や、システムマイクロプロセッサ上での増加する処理負荷や、これらに類するものを含む、多数の短所になる。したがって、データを処理する、より効率的な方法が必要でありながらも、ハードウェアを制御するためのインテリジェンスの大部分を提供するソフトウェアと、このようなハードウェアとの間の密接な対話が必要である現在のパラダイムによって引き起こされる短所を、改善する、または、無くす、より効率的な方法が必要である。
概要
このような態様の基本的な理解を提供するために、1つ以上の態様の簡略化した概要を以下は示している。この概要は、すべて企図した態様の多彩な概略ではなく、すべての態様の重要なまたは不可欠なエレメントを識別することも、何らかの態様またはすべての態様の範囲を詳細に述べることも意図していない。この唯一の目的は、後に示す、より詳細な説明に対する前置きとして、1つ以上の態様のうちのいくつかの概念を、簡略化した形態で示すことである。
いくつかの態様にしたがうと、データ処理方法は、第1の物理メモリ中の第1のメモリプールを規定することと;第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールを規定することと;1つ以上の予め定められた基準に基づいて、第1のメモリプールまたは第2のメモリプールにおいて演算するようにハードウェアコンポーネントをプログラミングすることとを含み、第2のメモリプールは、より短い待ち時間を有する、第1のメモリプール。
いくつかの態様にしたがうと、データ処理装置は、プロセッサと;第1の物理メモリ中の第1のメモリプールと;第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールと;1つ以上の予め規定された基準に基づいて、第1のメモリプールまたは第2のメモリプールにおいて演算可能なハードウェアコンポーネントとを備え、第2のメモリプールは、より短い待ち時間を有する、第1のメモリプール、ハードウェアコンポーネントは、プロセッサによって制御される。
先述の関連した目的の達成のために、詳細な説明および添付した図面とともに、1つ以上の態様は、以下で完全に記述した特徴および特許請求の範囲において特に指摘した特徴を含む。以下の説明および添付した図面では、1つ以上の態様のいくつかの例示的な特徴を詳細に述べている。しかしながら、これらの特徴は、ほんの数例のさまざまな方法を示しているにすぎず、ここでは、さまざまな態様の原理を用いてもよく、この記述はこのようなすべての態様、および、これらの均等物を含むことを意図している。
開示した態様を図示するように提供されているが、開示した態様を限定するものではない、添付した図面に関連して、開示した態様を以下で記述する。ここでは、同様な呼称は、同じエレメントを示している。
図1は、さまざまな開示した態様にしたがった、ワイヤレス通信システムを図示している。 図2は、さまざまな開示した態様にしたがった、ユーザ機器とノードBとを図示している。 図3は、さまざまな開示した態様にしたがった、受信機を図示している。 図4は、さまざまな開示した態様にしたがった、データ処理動作を図示しているデータフロー図である。 図5は、さまざまな開示した態様にしたがった、簡略化したシステム図である。 図6は、さまざまな開示した態様にしたがった、データ処理動作を図示しているデータフロー図である。 図7は、さまざまな開示した態様にしたがった、データ処理動作を図示しているフローチャートである。 図8は、さまざまな開示した態様にしたがった、しきい値処理動作を図示しているフローチャートである。 図9は、さまざまな開示した態様にしたがった、テンプレート処理を実現するシステム図である。 図10は、さまざまな開示した態様にしたがった、複数のメモリプールを実現するシステム図である。 図11は、さまざまな開示した態様にしたがった、プロトコルデータユニット記憶を図示している。 図12は、さまざまな開示した態様にしたがった、データの処理および記憶を図示している簡略化したブロック図である。 図13は、典型的なワイヤレスデバイスを図示しているブロック図である。 図14は、さまざまな開示した態様にしたがった、例示的なワイヤレスデバイスを図示しているブロック図である。 図15は、さまざまな開示した態様にしたがった、ミニプロセッサを実現する簡略化したブロック図である。 図16は、さまざまな開示した態様にしたがった、ミニプロセッサを使用するデータ処理方法を図示しているフローチャートである。 図17は、さまざまな開示した態様にしたがった、コピーエンジンを実現するブロック図である。 図18は、さまざまな開示した態様にしたがった、例示的なデータフレームを図示している。
詳細な説明
これから、図面を参照して、さまざまな態様を記述する。以下の記述では、説明の目的のために、1つ以上の態様の完全な理解を提供するために、多数の特定の詳細を述べる。しかしながら、これらの特定の詳細なしに、このような態様を実施してもよいことは明らかである。
本出願において使用されているような、「コンポーネント」、「モジュール」、「システム」という用語や、これらに類するものは、コンピュータ関連エンティティを含むことを意図しており、例えば、コンピュータ関連エンティティは、ハードウェア、ファームウェア、ハードウェアとソフトウェアとを組み合わせたもの、ソフトウェア、または実行中のソフトウェアがあるが、これらに限定されない。例えば、コンポーネントは、プロセッサ上で実行しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってもよいが、これらに限定されない。例示として、コンピューティングデバイス上で実行しているアプリケーションおよびコンピューティングデバイスの双方とも、コンポーネントとすることができる。1つ以上のコンポーネントは、実行のプロセスおよび/またはスレッド内に存在することができ、コンポーネントは、1つのコンピュータ上で局所化および/または2つ以上のコンピュータ間で分散されてもよい。さらに、これらのコンポーネントは、そこに記憶されたさまざまなデータ構造を有するさまざまなコンピュータ読み取り可能媒体から実行することができる。コンポーネントは、1つ以上のデータパケットを有する信号にしたがうような、ローカルおよび/またはリモートプロセスによって通信してもよく、例えば、1つ以上のデータパケットには、ローカルシステム中の、分散システム中の別のコンポーネントと対話する1つのコンポーネントからのデータ、および/または、インターネットのようなネットワークにわたって信号を介して他のシステムと対話する1つのコンポーネントからのデータといったものがある。
さらに、端末に関連して、さまざまな態様をここで記述する。端末は、ワイヤード端末またはワイヤレス端末とすることができる。端末はまた、システム、デバイス、加入者ユニット、加入者局、移動局、移動体、移動体デバイス、遠隔局、遠隔端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ぶことができる。ワイヤレス端末は、セルラ電話機、衛星電話機、コードレス電話機、セッション開始プロトコル(SIP)電話機、ワイヤレスローカルループ(WLL)局、パーソナルデジタルアシスタント(PDA)、ワイヤレス接続能力を有するハンドヘルドデバイス、コンピューティングデバイス、またはワイヤレスモデムに接続されている他の処理デバイスであってもよい。さらに、ここでは、さまざまな態様を、基地局に関連して記述している。ワイヤレス端末との通信のために、基地局を利用してもよく、基地局はまた、アクセスポイント、ノードBと呼ばれることがあり、または他の何らかの専門用語で呼ばれることもある。
さらには、「または」という用語は、排他的な「または」というよりむしろ、包含的な「または」を意味することを意図している。すなわち、特定の明記がない限り、または、文脈から明らかでない限り、「XがAまたはBを用いる」というフレーズは、自然な包含的順列のうちのいずれかを意味することを意図している。すなわち、「XがAまたはBを用いる」というフレーズは、以下の事例:XがAを用いる;XがBを用いる;または、XがAおよびBの双方とも用いる、のうちのいずれのものによって満たされる。加えて、本出願および添付した特許請求の範囲中で使用しているような冠詞「a」および「an」は、特定の明記がない限り、または、単数形に向けられている文脈から明らかでない限り、一般的に、「1つ以上」を意味すると解釈すべきである。
CDMAや、TDMAや、FDMAや、OFDMAや、SC−FDMAや、他のシステムのような、さまざまなワイヤレス通信システムに対して、ここで記述した技術を使用してもよい。「システム」や「ネットワーク」という用語は、互換性があるように使用されることが多い。CDMAシステムは、ユニバーサル地上無線アクセス(UTRA)、cdma2000等のような無線技術を実現してもよい。UTRAは、ワイドバンド−CDMA(W−CDMA)およびCDMAの他の変形を含む。さらに、cdma2000は、IS−2000、IS−95、およびIS−856標準規格をカバーしている。TDMAシステムは、グローバルシステムフォーモバイル通信(GSM)(登録商標)のような無線技術を実現してもよい。OFDMAシステムは、進化したUTRA(E−UTRA)や、ウルトラモバイルブロードバンド(UMB)や、IEEE802.11(Wi−Fi(登録商標))や、IEEE802.16(WiMAX)や、IEEE802.20や、フラッシュ−OFDM等のような無線技術を実現してもよい。UTRAおよびE−UTRAは、ユニバーサル移動体電気通信システム(UMTS)の一部である。3GPPロングタームエボリューション(LTE)は、ダウンリンク上ではOFDMAを、アップリンク上ではSC−FDMAを用いるE−UTRAを使用する、リリースのUMTSである。UTRAや、E−UTRAや、UMTSや、LTEや、GSMは、「第3世代パートナーシッププロジェクト」(3GPP)と名付けられている機関による文書中に記述されている。加えて、cdma2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)と名付けられている機関による文書中に記述されている。さらに、このようなワイヤレス通信システムは、対でないライセンスされていないスペクトルや、802.xxワイヤレスLANや、ブルートゥース(登録商標)や、他の何らかの短距離または長距離のワイヤレス通信技術を使用していることが多いピアツーピア(例えば、移動体間)のアドホックネットワークシステムを付加的に含んでいてもよい。
多数のデバイスや、コンポーネントや、モジュールや、これらに類するものを含み得るシステムに関して、さまざまな態様または特徴を提示する。さまざまなシステムは、付加的なデバイス、コンポーネント、モジュール等を含んでいてもよいことを、および/または、図面に関連して説明した、デバイス、コンポーネント、モジュール等のすべてを含んでいなくてもよいことを理解および正しく認識すべきである。これらのアプローチを組み合わせたものまた使用してもよい。
図1は、ワイヤレス通信システム100を示しており、このワイヤレス通信システム100は、(i)ユーザ機器(UE)に対する無線通信をサポートする無線アクセスネットワーク(RAN)120と、(ii)通信サービスをサポートするためのさまざまな機能を実行するネットワークエンティティとを備えている。RAN120は、任意の数のノードBと、任意の数の無線ネットワーク制御装置(RNC)とを備えていてもよい。簡単にするために、図1中では、1つのノードB130と、1つのRNC132とだけを示している。一般的に、ノードBは、UEと通信する固定局であり、このノードBは、進化したノードB、基地局、アクセスポイント等と呼ばれることがある。RNC132は、1セットのノードBに結合させ、その制御のもと、ノードBに対する調整および制御を提供する。
インターネットプロトコル(IP)ゲートウェイ140は、UEに対するデータサービスをサポートし、また、サービングGPRSサポートノードまたはゲートウェイGPRSサポートノード(SGSNまたはGGSN)、アクセスゲートウェイ(AGW)、パケットデータサービングノード(PDSN)等と呼ばれることがある。IPゲートウェイ140は、UEに対するデータセッションの、確立や、維持や、終了に関与し、動的IPアドレスをUEにさらに割り当てててもよい。IPゲートウェイ140は、データネットワーク150に結合させてもよく、このデータネットワーク150は、コアネットワーク、インターネット等を含んでいてもよい。IPゲートウェイ140は、データネットワーク150を通して、サーバ160のようなさまざまなエンティティと通信することができてもよい。ワイヤレスシステム100は、図1中では示されていない他のネットワークエンティティを含んでいてもよい。
UE110は、サーバ160のような他のエンティティとデータを交換するために、RAN120と通信してもよい。UE110は、動的または静的であってもよく、移動局、端末、加入者ユニット、局等とも呼ばれることがある。UE110は、セルラ電話機、パーソナルデジタルアシスタント(PDA)、ワイヤレス通信デバイス、ワイヤレスモデム、ハンドヘルドデバイス、ラップトップコンピュータ等であってもよい。UE110は、ダウンリンクおよびアップリンクのようなエアインターフェースを通して、ノードB120と通信してもよい。ダウンリンク(すなわちフォワードリンク)は、ノードBからUEへの通信リンクのことを意味し、リバースリンク(すなわちアップリンク)は、UEからノードBへの通信リンクのことを意味する。ダウンリンク上でとともに、アップリンク上でのデータ送信に対して、ここで記述した技術を使用してもよい。
いくつかの態様では、UE110は、(図1中に示されているような)ワイヤード接続またはワイヤレス接続を通して、端末機器(TE)デバイス112に結合させてもよい。TEデバイス112に対するワイヤレスデータサービスを提供またはサポートするために、UE110を使用してもよい。TEデバイス112は、ラップトップコンピュータ、PDA、または他の何らかのコンピューティングデバイスであってもよい。
図2は、図1中の、UE110とノードB130との例示的な設計のブロック図を示している。この例示的な設計では、UE110は、データプロセッサ210と、外部メモリ260と、無線送信機(TMTR)252と、無線受信機(RCVR)254とを備えている。データプロセッサ210は、制御装置/プロセッサ220と、送信プロセッサ230と、受信プロセッサ240と、内部メモリ250とを備えている。バス212は、プロセッサ220と、プロセッサ230と、プロセッサ240と、メモリ250との間でのデータ転送を促進できる。データプロセッサ210は、特定用途向け集積回路(ASIC)上で実現してもよく、メモリ260は、ASICの外部にあってもよい。
アップリンク上でのデータ送信のために、送信プロセッサ230が、1セットのプロトコルにしたがってトラフィックデータを処理し、出力データを提供してもよい。無線送信機252が、出力データを調整(例えば、アナログコンバート、フィルタリング、増幅、および周波数アップコンバート)し、アップリンク信号を発生させてもよく、このアップリンク信号を、ノードB230に送信してもよい。ダウンリンク上でのデータ受信のために、無線受信機254は、ノードB230から受信したダウンリンク信号を調整(例えば、フィルタリング、増幅、周波数ダウンコンバート、およびデジタル化)し、受信データを提供してもよい。受信プロセッサ240は、1セットのプロトコルにしたがって受信データを処理し、トラフィックデータを提供してもよい。制御装置/プロセッサ220は、UE110において、さまざまなユニットの動作を指示してもよい。内部メモリ250は、プロセッサ220と、プロセッサ230と、プロセッサ240とに対する、プログラムコードとデータとを記憶してもよい。外部メモリ260は、UE110に対するデータとプログラムコードとに対する大容量の記憶を提供してもよい。
図2はまた、ノードB130の例示的な設計のブロック図を示している。無線送信機/受信機264は、UE110と他のUEとの無線通信をサポートしてもよい。制御装置/プロセッサ270は、ダウンリンク上でのデータ送信と、アップリンク上でのデータ受信とのために、データを処理してもよい。制御装置/プロセッサ270はまた、UEとの通信のために、さまざまな機能を実行してもよい。メモリ272は、ノードB130に対する、データとプログラムコードとを記憶してもよい。通信(Comm)ユニット274は、他のネットワークエンティティとの通信をサポートしてもよい。
図3は、受信機300の例示的な設計を図示しており、この受信機300は、UEの一部であってもよい。受信機300は、大容量のデータ記憶を提供する外部メモリ310と、受信データを処理する受信プロセッサ320と、処理されたデータを記憶する内部メモリ340とを備えている。受信プロセッサ320および内部メモリ340は、ASIC312上で実現してもよい。
受信プロセッサ320内で、RX PHYプロセッサ322が、送信機(例えば、ノードB130)からPHYフレームを受信し、RANによって使用される無線技術(例えば、CDMA2000 1Xまたは1x EV−DOまたはLTE)にしたがって、受信したPHYフレームを処理し、受信したフレームを提供してもよい。データプロセッサ324が、受信したフレームをさらに処理(例えば、デコード、解読、およびデフレーム)してもよい。
データ転送は、典型的に、3つのタスクを伴う。最初に、外部メモリ310のような何らかの位置からデータ中に移動させる。その後、ハードウェアによってデータを演算して、外に出して戻すように移動させる。1つの位置から別の位置にデータを移動させ、ハードウェアアクセラレータ334による処理の後にデータを外に出して戻すように移動させるように、データムーバー336を構成してもよい。ハードウェアアクセラレータ334とデータムーバー336との動作を制御するように、プロセッサ/制御装置330を構成してもよい。
図4は、ソフトウェアおよびハードウェア中で生じる典型的なデータ処理動作を図示しているデータフロー図である。図4中で図示されているように、ソフトウェアコンポーネント402は、第1のハードウェアコンポーネント404および第2のハードウェアコンポーネント406のような1つ以上のハードウェアコンポーネントとインターフェースしてもよい。ステップ408において図示されているように、ソフトウェアコンポーネント402が、第1のハードウェアコンポーネント404に第1のセットの命令を発行してもよい。命令は、1つ以上のタスクを実行するための命令を含んでいてもよい。その後、410において図示されているように、第1のハードウェアコンポーネント404が、最初のセットの命令に応答する。第2のハードウェアコンポーネント406との処理を開始するために、ソフトウェアコンポーネント402が、その後、412において図示されているように、1セットの命令を第2のハードウェアコンポーネント406に送り、414において図示されているように、応答を待ってもよい。タスクが実行されることになるたびに、ソフトウェア402は、416と、418と、420と、422とにおいて図示されているように、指定されたハードウェアコンポーネントに命令または命令のセットを発行し、応答を待たねばならない。
図4中で図示されている方法では、すべてのハードウェアの、タスクまたはタスクのセットの後に、ソフトウェア割込を使用しなければならない。すなわち、提供した命令を完了した後、ハードウェアコンポーネントが、割込をソフトウェアに送らなければならない。プログラムコンテンツをストールし、割込を実行するように再び構築してから、ハードウェア処理を再開しなければならないので、これらの割込はコストがかかることがある。さらには、割込は、ロックされる状態になることが多く、結果として、割込のロックが解消されるまでレイテント期間になる。
図5は、さまざまな開示した態様を図示している簡略化したブロック図である。第1のハードウェアコンポーネント504や、第2のハードウェアコンポーネント506のような、さまざまなハードウェアコンポーネントの動作を制御するように、プロセッサ502を構成してもよい。図4中と同様に、第1のハードウェアコンポーネント504および第2のハードウェアコンポーネント506のそれぞれは、例えば、データムーバーまたはハードウェアアクセラレータのような専用ハードウェアブロックであってもよい。プロセッサ502は、さまざまなタスクを実行するようにハードウェアコンポーネントに命令するソフトウェアをそこに記憶させてもよい。
第1のハードウェアコンポーネント504および第2のハードウェアコンポーネント506は、通信可能に互いに結合させてもよい。したがって、これらのコンポーネントは、プロセッサ502上に記憶されているソフトウェアに割り込みをかけずに、互いに情報を提供することができる。例えば、プロセッサ502によって1つ以上のタスクを実行するように、第1のハードウェアコンポーネント504および第2のハードウェアコンポーネント506を予めプログラミングしてもよい。図6中では、さらにより詳細に、このプロセスを図示した。
図6中で図示されているように、プロセッサ502は、第1のハードウェアコンポーネント504および第2のハードウェアコンポーネント506とインターフェースさせてもよい。いくつかの態様にしたがって、第1のハードウェアコンポーネント504は、外部メモリのようなさまざまなソースから、ローカルバッファ(例えば、データムーバー)の中にデータを移動させるのに適しているものであってもよい。第2のハードウェアコンポーネント506は、データアクセラレータのようなカスタムハードウェアブロックであってもよい。
610において図示されているように、プロセッサ502が、複数のタスクを実行するための第1のセットのコマンドを、第1のハードウェアコンポーネント504に発行してもよい。例えば、プロセッサ502が、外部記憶装置の位置からデータのブロックを中に入れるようにハードウェアコンポーネント504に命令してもよい。612において図示されているように、プロセッサ502が、その後、複数のタスクを実行するように第2のハードウェアコンポーネント506をプログラミングしてもよい。例えば、プロセッサ502は、第1のハードウェアコンポーネント504によって中に入れられた、データのブロックにおいて演算するように第2のハードウェアコンポーネント506に命令してもよい。指定されたタスクを実行するように、第1のハードウェアコンポーネントおよび第2のハードウェアコンポーネントを予めプログラミングしてもよいが、614において図示されているように、プロセッサ502がトリガメッセージを送るまで、動作は開始しない。
トリガメッセージの受信の際、第1のハードウェアコンポーネント504は、予めプログラミングされたタスクを実行するのを開始してもよい。いくつかの態様にしたがうと、最後の命令は、616において図示されているように、トリガメッセージを第2のハードウェアコンポーネント504に送るように第1のハードウェアコンポーネントに指示してもよい。トリガは、例えば、ハードウェア割込であってもよい。ステップ618と、620と、622とにおいて図示されているように、それぞれのハードウェアコンポーネントが、それ自体の処理の完了の際に命令を実行するように他のコンポーネントをトリガする。この処理の間、ソフトウェア割込に対する必要性はない。最後の命令が処理されたときに、最後の命令を処理しているハードウェアコンポーネント(ここでは、第1のハードウェアコンポーネント)が、624において図示されているように、割込をプロセッサ502に送ってもよい。図6中で図示されているように、ソフトウェア割込の数を、大幅に減少させることができる。いくつかの態様では、単一のソフトウェア割込だけが要求される。
図7は、さまざまな開示した態様したがった、さらに詳細にデータ処理動作を図示しているフローチャートである。702において図示されているように、ソフトウェアコンポーネントが、2つ以上のハードウェアコンポーネントをプログラミングしてもよい。ハードウェアコンポーネントをプログラミングすることは、それぞれのハードウェアコンポーネントによって実行されるべき一連の命令を提供することを含んでいてもよい。ハードウェアコンポーネントに関係するタスクキュー中に、一連の命令を記憶させてもよい。いくつかの態様にしたがうと、1つより多いハードウェアコンポーネントが、単一のタスクキューを共有してもよく、ここで、それぞれのハードウェアコンポーネントに対する命令は、一緒にインターリーブされる。
例示的な態様にしたがって、2つ以上のハードウェアコンポーネントは、データムーバーと、ハードウェアアクセラレータとを備えていてもよい。代替的に、または、データムーバーとハードウェアアクセラレータとに加えて、他のハードウェアコンポーネントも使用してもよい。データムーバーとハードウェアアクセラレータとに関連して、図7中では図示されている残りのプロセスを記述するが、これは、単なる例示であることに留意されたい。
上述したように、それぞれのハードウェアコンポーネントは、タスクキューと関係付けさせることができる。したがって、データムーバーおよびハードウェアアクセラレータそれぞれは、それに関係付けられたタスクキューを有する。タスクキューは、ソフトウェアによって前もって構成されていてもよい。ハードウェアアクセラレータに関係するタスクキューは、ソフトウェアによって制御される書き込みポインタによってゲート制御されてもよい。これもハードウェアアクセラレータに関係付けられている読み取りポインタもハードウェアによって制御されてもよい。
プログラミングされているタスクの実行が望まれるとき、704において図示されているように、ソフトウェアコンポーネントが、トリガ信号をデータムーバーに送ってもよい。トリガ信号の受信の際、706において図示されているように、データムーバーが、その第1のタスクを実行してもよい。例えば、第1のブロックのデータを外部メモリ位置から読み取り、そのデータを内部メモリ位置の中に移動させるように、データムーバーは命令されてもよい。ハードウェアアクセラレータに関係する書き込みポインタレジスタに書き込むように、データムーバーはさらに命令されてもよく、それにより、その割り当てられた命令を実行するのを開始するようにハードウェアアクセラレータをトリガする。また、イベントの受信まで、処理を停止するように、データムーバーは命令されてもよい。
データムーバーからのトリガの受信の際、708において図示されているように、ハードウェアアクセラレータは、その命令を実行するのを開始してもよい。これは、例えば、データムーバーによってロードされたデータに対してさまざまなタイプの演算を実行することを含んでいてもよい。キュー待ちしているタスクの完了の際、710において図示されているように、ハードウェアアクセラレータが、ハードウェア割込を発行し、これは、動作するのを続けるようにデータムーバーをトリガする。トリガの受信の際、712において図示されているように、データムーバーは、完了するための付加的なタスクをデータムーバーが有しているか否かを決定してもよい。完了するための付加的なタスクをデータムーバーが有している場合には、処理は、ステップ706に戻る。データムーバーが、実行する付加的なタスクを有していない場合、714において図示されているように、データムーバーは、割込をソフトウェアに送ってもよい。ハードウェア割込を介してデータムーバーおよびハードウェアアクセラレータが互いにトリガすることを可能にすることは、割込の待ち時間を減少させ、コンテキスト切り替えの数を減少させる。さらには、データムーバーおよびハードウェアアクセラレータが、より効率的に使用され、これにより、全体の待ち時間を減少させる。
上述したように、複数のタスクを実行するように、ハードウェアアクセラレータやデータムーバーのようなハードウェアコンポーネントをソフトウェアによって予めプログラミングしてもよい。あるハードウェアアクセラレータのケースでは、アクセラレータからの出力の長さがランダムであることがある。しかしながら、データムーバーもまた予めプログラミングされていることから、典型的に、ハードウェアアクセラレータから出力される最悪のケースに対して、データムーブアウト命令はプログラミングされる。時間の大半では、出力の長さは、予めプログラミングされた長さよりも、より短いであろうことから、このようなコンフィギュレーションは、帯域幅の不必要な浪費を招くことがある。
本装置および方法のいくつかの態様にしたがって、ハードウェアアクセラレータの最も一般的な出力のデータ長に対応するしきい値を規定してもよい。いくつかの態様では、ハードウェアアクセラレータからのすべての出力の大部分がしきい値を超えないように、しきい値を規定するのが好ましいかもしれない。しかしながら、他の何らかの所望のパラメータにしたがって、しきい値を構成してもよい。例えば、少なくとも、アクセラレータのすべての出力の予め規定された割合がしきい値を超えないように、または、アクセラレータの出力の少なくとも一部がしきい値を超えないように、しきい値を構成してもよい。図8は、しきい値処理をさらに詳細に図示しているフローチャートである。
810において図示されているように、ハードウェアアクセラレータのようなハードウェアコンポーネントが、予めプログラミングされている命令にしたがって、データを受信して処理する。この処理の完了の際、812において図示されているように、データムーバーのような第2のハードウェアコンポーネントによって出力されることになる命令の結果が、予め規定されたしきい値を超えているか否かを、ハードウェアアクセラレータが決定する。さらに詳細には、ハードウェアアクセラレータは、ソフトウェアによって予め構成されているしきい値決定モジュールを備えていてもよい。しきい値は、ハードウェアアクセラレータによって処理されるデータのサイズに対する最大値を設定してもよい。
814において図示されているように、しきい値を超えている場合、ムーブアウトタスクが準備されているものでは足らないことを示している割込を、ハードウェアアクセラレータが発生させてもよい。すなわち、データムーバー中で予めプログラミングされたデータのムーブアウトのサイズは、ハードウェアアクセラレータによってちょうど処理されたデータに対応するには十分な大きさではないことを、割込は示している。割込の受信の際、816において図示されているように、プログラミングされたデータのムーブアウトサイズの限界を超えた過剰データを、ソフトウェアが読み取ってもよい。この割込の間、ハードウェアアクセラレータは、ストールされてもよく、いったん、割込が解消されると、ソフトウェアによって「許可」が与えられてもよい。その後、処理が、続いてもよい。例えば、818において図示されているように、ハードウェアアクセラレータまたはソフトウェアコンポーネントが、データムーバーにトリガを送ってもよく、データムーバーが、予めプログラミングされた命令にしたがって、データを外に移動させてもよい。ステップ812において、しきい値を超えていないことが決定された場合、処理はまた、ステップ818において続いてもよく、ここで、データムーバーが、プログラミングされたように、データを外に出してメインメモリに移動させる。
いくつかの態様にしたがって、図8に関連して記述したしきい値を、適応的に調整してもよい。例えば、準備されたものでは足らないデータのムーブアウト命令から結果的に生じる割込の頻度が、所定の時間期間にわたって多い場合、ソフトウェアが、しきい値のサイズを増加させるかもしれない。同様に、非常に多くの割込が所定の時間期間にわたって受信されなかった場合、しきい値のサイズは減少されるかもしれない。したがって、準備されていないデータムーブアウト命令の結果として受信したすべての割込を追跡する、タイマーとカウンタとにより、ソフトウェアを構成してもよい。外に出されるデータ量を制御しながら、準備されたものでは足らないことに対処するメカニズムを提供することにより、電力消費とシステムバス帯域幅とを減少させることができる。加えて、より少ない数の割込を得ることによって、ソフトウェアの複雑さを減少させることができる。さらには、例外的なケースを、取り扱いのためにソフトウェアに渡すことによって、ハードウェアはシンプルに保たれる。しきい値を適応的に調整することは、低い割込レートを維持することと、データを不必要に移動させるのを避けることとの間の良好なトレードオフを確実にするのを助けることができる。
いくつかの態様にしたがって、ソフトウェア処理および待ち時間を減少させるとともに、バスの帯域幅の使用を減少させるために、ソフトウェア中で典型的に実行される動作をハードウェアに移してもよい。例えば、データフレームヘッダを処理するロジックを有するように、ハードウェアアクセラレータを構成してもよい。典型的に、ハードウェアは、単に、データを解読し、その後、さらなる処理のために、このデータをソフトウェアに転送する。ソフトウェアは、その後、データを処理するための命令とともに、ハードウェアにこのデータを転送して戻す。これは、ソフトウェア処理と、待ち時間と、バス帯域幅とを減少させることができる。
いくつかの例示的な態様では、例えば、データフレームヘッダをパースし、このヘッダを、複数の予め規定されたテンプレートと比較し、このヘッダに基づいて次の処理ステップを決定するためのロジックを有するように、ハードウェアアクセラレータを構成してもよい。ヘッダのマッチングが見出されなった場合、または、テンプレートの再構成が必要である場合にのみ、ソフトウェア対話が必要とされる。
図9は、テンプレート処理を実現し得る環境の例である。図9中で図示されているように、ハードウェアアクセラレータ922は、制御プロセッサ920によって制御され、入力データを受け取り、フィルタリングモジュール922を通して、その入力データを処理してもよい。フィルタリングモジュール922は、プロセッサ914、メモリ916、またはインターフェース918−1ないし918−Nのうちの1つ以上に、その出力を提供してもよい。メモリ916は、内部メモリまたは外部メモリであってもよい。インターフェース918−1ないし918−Nは、例えば、ラップトップ、PDA、または他の何らかの外部電子デバイスのような外部デバイスへの接続を提供してもよい。例えば、インターフェース918−1ないし918−Nは、USBポート、ブルートゥース、SDIO、SDCC、または他のワイヤードまたはワイヤレスインターフェースを含んでいてもよい。
フィルタリングモジュール922は、複数の予め規定されたテンプレートを含んでいてもよく、出力データをどこにルーティングすべきかについてのルーティング決定を行うために、この複数の予め規定されたテンプレートを使用してもよい。例えば、暗号化されたデータが、ハードウェアアクセラレータ912によって受け取られ、解読されてもよい。フィルタリングモジュール922中のプログラミングされたテンプレートに基づいて、解読したデータを、プロセッサ914に、メモリ916に転送してもよく、または、インターフェース918−1ないし918−Nを通して外部デバイスに転送してもよい。いくつかの態様にしたがうと、ハードウェアアクセラレータ912が処理することが困難である、より複雑な演算のために、プロセッサ914をバックアップフィルタとして使用してもよい。
いくつかの態様にしたがうと、それぞれのトラフィックテンプレートは、1つ以上のパラメータと、それぞれのパラメータに対する特定の値とを含んでいてもよい。それぞれのパラメータは、IP、TCP、UDP、または他の何らかのプロトコルに対するヘッダの特定のフィールドに対応していてもよい。例えば、IPパラメータは、発信元アドレスと、宛先アドレスと、アドレス範囲と、プロトコルとを含んでいてもよい。TCPまたはUDPパラメータは、発信元ポートと、宛先ポートと、ポート範囲とを含んでいてもよい。トラフィックテンプレートは、ヘッダ中のそれぞれのパラメータの位置を特定する。したがって、ハードウェアアクセラレータは、使用中のプロトコルの何らかの実際の知識を有する必要はない。むしろ、ハードウェアは、テンプレートパラメータとの、ヘッダのマッチングを実行する。
例えば、宛先ポートxに対するTCPフレームを検出するために、トラフィックテンプレートを規定して、IPv4パケット中で送ってもよい。テンプレートは、以下のように設定される3つのパラメータを含んでいてもよい:バージョン=IPv4、プロトコル=TCP、宛先ポート=x。一般的に、任意のプロトコルヘッダ中の任意のフィールドを、トラフィックテンプレートパラメータとして使用してもよい。任意の数のテンプレートを規定してもよく、それぞれのテンプレートを、任意のセットのパラメータと関係付けてもよい。異なるアプリケーション、ソケット等に対して、異なるテンプレートを規定してもよく、異なるセットのパラメーにより規定してもよい。
それぞれのテンプレートはまた、マッチングが存在した場合に実行するアクションと、マッチングが存在しない場合に実行するアクションとに関係していてもよい。データフレームの受信の際に、フレームの受信値を、テンプレートの特定された値と比較してもよい。受信値が、特定された値とマッチングした場合にはマッチングを宣言してもよく、そうでない場合には、マッチングなしを宣言してもよい。マッチングなしが規定されている場合には、ハードウェアは、ソフトウェア割込を発行して、ソフトウェアがフレームを処理してもよい。
ここで記述したように、データ処理は、典型的に、第1の位置からデータを中に移動させることと、データにおいて演算することと、データを外に出して戻すように移動させることとを伴う。典型的に、低コストで、長い待ち時間のメモリ中で、単一の大きいメモリプールを規定する。この長い待ち時間のメモリプールからデータを中に移動させ、演算して、メモリプールに戻すように移動させる。しかしながら、最近アクセスされたデータは、再使用されることが多い。したがって、すべてのアクセスの後に待ち時間の長いメモリプールに向けてデータを外に出して戻すように不必要に移動させることは、システムバス帯域幅を増加させる。本装置および方法のいくつかの態様にしたがうと、物理メモリ中に複数のメモリプールを規定してもよい。メモリ割振は、利用可能な最良のメモリプールに基づいていてもよく、または、データがどのくらいの頻度でアクセスされる可能性があるかに依存していてもよい。
図10は、いくつかの態様にしたがった、複数のメモリプールを実現するシステム1000の例である。システム1000は、短い待ち時間のメモリ1012と、プロセッサ1014と、データムーバー1016と、ハードウェアアクセラレータ1018とを備えているASIC910を具備していてもよい。長い待ち時間のメモリ1020も、提供してもよい。短い待ち時間のメモリ912を、内部メモリとして図示し、長い待ち時間のメモリ1020を外部メモリとして図示しているが、このコンフィギュレーションは、単なる例である。いずれかのメモリ、または、両方のメモリは、内部にあっても、または、外部にあってもよい。プロセッサ1004は、メモリ制御装置1022を備えていてもよく、このメモリ制御装置1022は、長い待ち時間のメモリ1020と、短い待ち時間のメモリ1012とへのアクセスを制御する。大部分の演算が短い待ち時間のメモリ1012を使用する場合、より効率的にデータを処理することができる。したがって、長い待ち時間のメモリ1020へのアクセス数を制限するように、メモリ制御装置1022を構成してもよい。
通常の演算と同じように、例えば、待ち時間の長いメモリ1020と待ち時間の短いメモリ912との間で、データを入れたり出したりするように、データムーバー1020を構成してもよい。いくつかの例示的な態様にしたがうと、短い待ち時間のメモリ1012からのデータにおいて直接的に演算するように、ハードウェアアクセラレータ1018を構成してもよい。例えば、いくつかの態様では、スペースが利用可能である限り、短い待ち時間のメモリ1012中に、データを維持してもよい。他の態様では、サービス品質要件、通信チャネルプロパティ、および/または他のファクターのような、特定のデータ送信特性に基づいて、短い待ち時間のメモリ1012中にデータを記憶および維持してもよい。
小さくて高速なプールと、大きくてより低速なプールとを規定できるので、複数のメモリプールを提供することは、ハードウェアコストを減少させることができる。さらには、システムバス帯域幅と電力とを減少させることができる。
いくつかの態様にしたがうと、短い待ち時間のメモリ1012中に記憶されているデータは、ハードウェアとソフトウェアとの両方によってアクセスされてもよい。ペイロードは、ハードウェアアクセラレータ1018によって処理されてもよく、これにより、短い待ち時間のアクセスが確実になる。ハードウェアアクセラレータ1018の至近距離に、短い待ち時間のメモリ1012を配置してもよい。したがって、データ転送は、システムバスを横切る必要はなく、これにより、電力とシステムバス帯域幅とを節約する。
(例えば、ヘッダを除去するとき、複数のフローからデータを多重化するとき、セグメント化/再組み立て等のとき)それぞれのレイヤにおけるインプリメンテーションを簡単にするために、データを処理するとき、データは、複数回コピーされながら、データスタックを通過することが多い。本装置および方法のいくつかの態様にしたがうと、同じ位置にデータを残して、異なるレイヤに同じデータを演算させることによって、反復されるコピーを防ぐことができる。それぞれのデータの演算命令が、ハードウェアまたはソフトウェアによって実行されようとなかろうと、ローカルハードウェアバッファのような同じ位置を指してもよい。例えば、UMTS解読が実行された後、解読されたデータをコピーして、ローカルハードウェアバッファのようなローカルメモリの中に戻してもよい。ソフトウェアが、プロトコルヘッダを評価することによってペイロードを連結させた後に、ソフトウェアは、TCPチェックサム計算またはPPPフレーミングのいずれかを実行するようにハードウェアアクセラレータに命令してもよい。このような処理の間に、外部メモリ位置からデータをあちこちに移動させる必要はない。
データ送信のために、データフレームは、典型的に、使用中のプロトコルに依存して、より小さいユニットに区分してもよい。したがって、関連するペイロードは、複数の送信に分割されることが多い。それぞれのユニットに対するメモリブロックは、典型的に、割り振られ、そして、より高いレイヤに渡されるときに、ペイロードをより大きなデータユニットに連結させるために、これらのユニットのリンクされたリストが形成される。
図11は、受信パケットデータユニットの典型的な記憶割振を図示している。図11中で図示されているように、到来データフレーム1100は、それぞれが、ヘッダ(H1、H2、H3)とペイロード(P1、P2、P3)とを含んでいる複数のプロトコルデータユニット(PDU)を含んでいてもよい。典型的に、データフレームは、複数のセグメントに区分され、それぞれのセグメントは、別個のデータサービスメモリ(DSM)ユニット中に記憶されている。図11中で示されているように、第1のDSMユニット1104中にPDU1(H1+P1)が記憶され、第2のDSMユニット1106中にPDU2(H2+P2)が記憶され、第3のDSMユニット1108中にPDU3(H3+P3)が記憶されている。
この態様でデータを記憶することは、さまざまな理由で非効率である。例えば、それぞれのDSMユニットは、それ自体のヘッダHを含んでおり、これは、オーバーヘッドを増加させる。加えて、DSMプール内のそれぞれのDSMユニットは、サイズが同一にされる。したがって、PDUが、予め構成されているDSMユニットサイズよりも、小さいときに、スペースが浪費される。1104および1108において図示されているように、DSMユニットを埋めるために、パディングデータPが、PDUの後に追加される。さらには、セグメント化されたPDUを後で連結させるために、それぞれのPDUがどこに記憶されているかや、PDUが他のものにどのように関連しているかを示した、リンクされたリストを維持しなければならない。
本装置および方法のいくつかの例示的な態様にしたがうと、異なる送信からのチャネルごとの受信データは、ヘッダを除去することによって、連続したメモリの、より大きいブロックに集約され、これにより、より高いレイヤに対する連続したペイロードを直接的に連結させることができる。このことは、結果として、アプリケーションデータのコヒーレンシーとなるとともに、連結により付加的なメモリの割り振りに対する必要性を減少させることになるかもしれない。さらには、パディングオーバーヘッド、メモリ割り振り演算、およびメモリオーバーヘッドの減少により、メモリが減少される。
上述したように、暗号化されたデータフレームをハードウェアが受信したときに、フレームは、解読され、さらなる処理のためにハードウェアに転送される。いくつかの例示的な態様にしたがうと、フレームをソフトウェアに転送せずに、関連するペイロードを連結させるように、ハードウェアアクセラレータのようなハードウェアコンポーネントをさらに構成してもよい。
図12は、いくつかの態様にしたがった、データ処理および記憶を図示している簡略化したブロック図である。図12中で図示されているように、到来データフレーム1201は、それぞれが、ヘッダとペイロードとを含んでいる複数のプロトコルデータユニットを含んでいてもよい。区分ユニット1202は、到来データフレーム1201を処理するように構成していてもよい。処理は、例えば、ヘッダとペイロードとを分離させることを含んでいてもよい。関係するペイロードに対するポインタとともに、ヘッダ(H1、H2、H3)を、メモリ1203中に記憶させてもよい。
ハードウェア連結ロジック1204が、その後、ペイロードを組み合わせて、これらを単一のDSM中に記憶させてもよい。ソフトウェアロジック1206によって、区分ユニット1202とハードウェア連結ロジック1204との両方をプログラミングおよび/または制御してもよい。例えば、ソフトウェアロジック1206が、ヘッダを除去し、ポインタ情報を発生させるように区分ユニット1202をプログラミングしてもよい。加えて、ソフトウェアロジック1206が、あるペイロードまたはヘッダをフェッチするように連結ロジック1204に指示してもよい。
いくつかの態様にしたがうと、複数の送信からのデータを単一のDSM中で組み合わせることができる。たとえDSMが一杯でない場合でも、データは、いったんDSM中に記憶されると、他のレイヤに渡されてもよい。加えて、データは、DSMユニットの終わりに追加されてもよい。
典型的に、データが受信されたとき、ヘッダおよびペイロードは互いに分離されない。むしろ、ヘッダおよびペイロードは、典型的に、一緒に記憶される。しかしながら、パケットをどのように処理するかについての、大部分の決定は、パケットヘッダだけに基づいている。本装置および方法の、いくつかの態様にしたがうと、ヘッダのみをレイヤからレイヤに移動させることができる。したがって、処理する必要があるときのみ、ペイロードを移動させることができ、したがって、ペイロードデータのコヒーレンシーとキャッシュ効率とを改善させ、バスの利用を減少させる。
典型的なワイヤレスデバイスでは、メインプロセッサが、すべてのモデム関連機能性を取り扱う。図13は、典型的なコンフィギュレーションを図示しているブロック図である。メインプロセッサ1304は、複数のバス1306を通して、ハードウェア1308に通信可能に結合されている。ハードウェア1308によって演算されるデータを記憶するために、メモリ1302が提供されている。動作において、メインプロセッサ1304がハードウェア1308に対して命令を発行するときはいつでも、命令は、複数のバス1306を横切らなければならない。さらには、ハードウェア1308は、それぞれの命令を完了した後に、メインプロセッサ1304に戻すようにソフトウェア割込を発行しなければならない。バスを横切ってソフトウェア割込を発行することは、実質的な処理待ち時間を増大させる。
さまざまな例示的な態様にしたがうと、ハードウェアの近くに位置するミニプロセッサを提供してもよい。これにより、待ち時間が減少する。図14は、このようなコンフィギュレーションを図示しているブロック図である。メインプロセッサ1404は、複数のバス1406を通して、ハードウェア1408に通信可能に結合されている。ハードウェア1408によって処理されたデータを記憶させるために、メモリ1402が提供されている。
ハードウェア1408の至近距離に、ミニプロセッサ1410が提供されている。ミニプロセッサ1410は、メインプロセッサ1404と同じメモリ1402へのアクセスを有している柔軟にプログラム可能なプロセッサであってもよい。ハードウェア1408と直接的に対話するように、ミニプロセッサ1410をプログラミングしてもよい。ヘッダ抽出、暗号化、解読、データ移動、連続的な記憶、IPフィルタリング、ヘッダ挿入、PPPフレーミング、および/または他のタスクのような、タスクを実行するようにハードウェア1408に指示するように、ミニプロセッサ1410をプログラミングしてもよい。
いくつかの態様にしたがうと、ワイヤレスデバイスにおいて新しい情報が受信されたとき、メインプロセッサ1404が、データを処理するのを開始するように、そしてハードウェア1408による処理の後に、その結果をメモリ1402の中に記憶させるように、ミニプロセッサ1410に指示してもよい。したがって、ハードウェアは、それぞれのタスクの後に、もはや、メインプロセッサ1414に戻すように割り込みをかける必要はない。加えて、ミニプロセッサ1410は、プログラム可能であるので、処理要件の変更がある場合には、容易に再プログラム化することができる。例えば、エアインターフェースの変更がある場合には、または、新しいプロトコルリリースが利用可能である場合には、変更を実現するようにミニプロセッサ1410を再プログラミングすることができる。
図14中で図示されているコンフィギュレーションにしたがうと、待ち時間が、純粋なソフトウェアインプリメンテーションと比較して減少する。加えて、割込と、メモリアクセスと、バス待ち時間とを減少させることができる。さらには、純粋なソフトウェアアプリケーション中よりもハードウェアメモリの近くにミニプロセッサが実現できるとき、電力消費を減らすことができる。
いくつかの態様にしたがうと、メインプロセッサおよびミニプロセッサの両方は、1つ以上の専用ハードウェアブロックへのアクセスを有していてもよい。これを図15中に図示している。メインプロセッサ1502およびミニプロセッサ1504は、複数の専用ハードウェアブロックに通信可能にそれぞれ結合されている。複数の専用ブロックは、第1のハードウェアブロック1506と、第2のハードウェアブロック1508と、第3のハードウェアブロック1510とを含む。ハードウェアブロックは、例えば、ハードウェアアクセラレータ、データムーバー、暗号化エンジン、解読エンジン、および/または他の何らかの専用ハードウェアブロックを含んでいてもよい。
メインプロセッサ1502およびミニプロセッサ1504は、ハードウェアブロック1504と、1506と、1508とのうちの異なる1つにそれぞれ同時にアクセスしてもよい。このことは、並列処理を可能にする。例えば、メインプロセッサ1502は、解読専用であってもよい第1のハードウェアブロック1506にアクセスするように構成してもよい一方で、ミニプロセッサ1504は、暗号化専用であってもよい第2のハードウェアブロック1508に同時にアクセスするように構成してもよい。このように、アップリンクおよびダウンリンク処理が、同時に生じることがある。
(図15中で図示されているミニプロセッサ1504のような)ミニプロセッサが、複雑なタスクを取り扱うことができないことがある。例えば、パケットの再送信を扱う際に、シーケンス番号がロールオーバーしたときを決定する際に関係する複雑なロジックが存在する。いくつかの態様にしたがうと、メインプロセッサは、ミニプロセッサに対するバックアップとして機能し、ミニプロセッサによって適切に取り扱うことができないこれらの複雑なタスクを取り扱うように構成してもよい。図16は、このような複雑な論理を取り扱うためのプロセスを図示しているフローチャートである。
1602において図示されているように、プロセスは、ミニプロセッサが、処理すべきデータを受信したときに開始する。いくつかの態様にしたがうと、予め規定された処理方法を使用して、あるタイプのタスクを常に処理するように、ミニプロセッサをプログラミングしてもよい。したがって、1604において図示されているように、第1の処理方法を使用して、データを処理するようにハードウェアに命令するようにミニプロセッサを構成してもよい。例えば、シーケンス番号がロールオーバーすべきか否かを決定するケースでは、シーケンス番号はロールオーバーしないと常に仮定するようにミニプロセッサを構成してもよい。
1606において図示されているように、メインプロセッサが、ハードウェアによって処理されたデータを受け取る。メインプロセッサはまた、どのようにデータが処理されたかの表示を受け取ってもよい。1608において図示されているように、データが正しく処理されたか否かを、メインプロセッサが決定する。データが正しく処理されたことが決定された場合には、1610において図示されているように、メインプロセッサは、そのデータを、メモリのようなその宛先に単に転送する。しかしながら、データが正しく処理されなかったことをメインプロセッサが検出した場合、1612において図示されているように、メインプロセッサは、ハードウェアによって実行されるアクションをリバースし、そのデータを正しく処理するようにハードウェアを再プログラミングすることができる。
典型的なデータ移動演算では、プロセッサは、移動させるべき、かなりの量のデータごとにコピータスクを実行するようにデータムーバーをプログラミングする。さまざまな例示的な態様にしたがうと、ハードウェアの近くに位置しているコピーエンジンが備えられていてもよい。図17は、コピーエンジンを組み込んでいるシステム1700のブロック図である。システム1700は、データムーバー1702と、メインメモリ1704と、コピーエンジン1710と、コピーエンジンメモリ1706と、ハードウェア1708とを備えている。コピーおよび/またはデータ移動演算を促進するためにハードウェア1708上に直接的に作用するように、コピーエンジン1710をプログラミングしてもよい。コピーエンジン1710が、コピーエンジン1710自体の専用メモリ1706と関係付けてもよく、この専用メモリ1706は、メインメモリ1704からのデータを記憶および取り出しすることに関係する待ち時間を減少させる。コピーエンジンメモリ1706からのデータをフェッチし、それを、メインメモリ1704中に記憶させるように、データムーバー1702をプログラミングしてもよい。
コピーエンジンを備えることは、ビットレベル粒度がビットレベル幅でプロトコルをサポートすることを可能にする。加えて、単一のプログラミングタスクを使用しての、均一に散在されている宛先位置への、均一に散在されているソースデータのコピーを可能にすることによって、プログラミングオーバーヘッドを減少させることができる。さらには、例えば、ヘッダ抽出や、挿入や、データ連結またはセグメント化や、バイト/ワード整列とともに、データ操作に対する通常のデータムーバータスクのような、ソフトウェアによって使用される任意のタイプの動作に対してコピーエンジンを使用してもよい。
いくつかの態様にしたがうと、単一のタスク中に、複数のPDUからのデータをコピーするように、コピーエンジン1710をプログラミングしてもよい。図18中で図示されているように、データフレームは、それぞれが、ヘッダ(H1、H2、およびH3)と、ペイロード(P1、P2、P3)とを含んでいる複数のPDUを含んでいてもよい。ヘッダとペイロードのサイズはアプリオリに知られていてもよく、これらのサイズを知るようにコピーエンジンをプログラミングしてもよい。例えば、図18中で図示されているように、ヘッダ1802のようなすべてのヘッダは、サイズXのものであってもよい一方で、ペイロード1804のようなすべてのペイロードは、サイズYのものであってもよい。ヘッダおよびペイロードサイズの知識に基づいて、単一のタスク中に、N個のヘッダまたはN個のペイロードをコピーするように、コピーエンジンをプログラミングしてもよい。
ここで開示した実施形態に関連して記述した、さまざまな例示的な、論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいは、ここで記述した機能を実行するように設計されているこれらの任意の組み合わせで実現しても、あるいは、実行してもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替実施形態では、プロセッサは、何らかの従来のプロセッサ、制御装置、マイクロ制御装置、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせとして、例えば、DSPとマイクロプロセッサの組み合わせとして、複数のマイクロプロセッサとして、DSPコアに関連した1つ以上のマイクロプロセッサとして、あるいは、このような他の何らかの構成として実現してもよい。加えて、少なくとも1つのプロセッサは、上述したステップおよび/またはアクションのうちの1つ以上を実行するように動作可能な1つ以上のモジュールを備えていてもよい。
さらに、ここに開示した態様と関連して記述した方法またはアルゴリズムの、ステップおよび/またはアクションは、直接、ハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、あるいは、2つのものを組み合わせたもので具体化してもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーブバルディスク、CD−ROM、あるいは技術的に知られている他の何らかの形態の記憶媒体中に存在していてもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合させてもよい。代替実施形態では、記憶媒体はプロセッサと一体化してもよい。さらに、いくつかの態様では、プロセッサおよび記憶媒体は、ASIC中に存在していてもよい。加えて、ASICは、ユーザ端末中に存在していてもよい。代替実施形態では、プロセッサおよび記憶媒体は、ユーザ端末において、ディスクリートコンポーネントとして存在していてもよい。加えて、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、コンピュータプログラムプロダクトの中に組み込まれていてもよい、機械読み取り可能媒体および/またはコンピュータ読み取り可能媒体上で、1つまたは任意の組み合わせ、あるいは、1つまたは任意のセットのコードおよび/または命令として存在していてもよい。
1つ以上の態様では、記述した機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせ中で実現してもよい。ソフトウェア中で実現した場合、機能は、1つ以上の命令またはコードとしてコンピュータ読み取り可能媒体上に記憶させてもよく、あるいは、1つ以上の命令またはコードとしてコンピュータ読み取り可能媒体上に送信されてもよい。コンピュータ読み取り可能媒体は、1つの場所から別の場所へのコンピュータプログラムの転送を促進する何らかの媒体を含む、コンピュータ記憶媒体および通信媒体の双方を含む。記憶媒体は、コンピュータによってアクセスできる何らかの利用可能な媒体であってもよい。例示によると、このようなコンピュータ読み取り可能媒体は、RAM、ROM、EEPROM、CD−ROM、または他の光ディスク記憶デバイス、磁気ディスク記憶デバイス、または他の磁気記憶デバイス、あるいは命令またはデータ構成の形態で所望のプログラムコードを伝送または記憶するために使用でき、コンピュータによってアクセスできる他の何らかの媒体を含むことができるが、これらに限定されない。また、あらゆる接続は、コンピュータ読み取り可能媒体と呼ばれることがある。例えば、ソフトウェアが、ウェブサイトから、サーバから、あるいは同軸ケーブル、ファイバ光ケーブル、撚り対、デジタル加入者線(DSL)、または赤外線、無線、マイクロ波のようなワイヤレス技術を使用している他の遠隔ソースから送信された場合、同軸ケーブル、ファイバ光ケーブル、撚り対、DSL、あるいは赤外線、無線、およびマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。ここで使用したようなディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイ(登録商標)ディスクを含むが、ディスク(disk)は、一般的に、データを磁気的に再生する一方で、ディスク(disc)は、一般的に、データをレーザによって光学的に再生する。先のものを組み合わせたものもまた、コンピュータ読み取り可能媒体の範囲内に含められるべきである。
先述した開示は、例示的な態様および/または実施形態を説明しているが、添付した特許請求の範囲によって規定したような、記述した態様および/または実施形態の範囲から逸脱することなく、ここで、さまざまな変更および改良を行うことができることに留意すべきである。さらに、記述した態様および/または実施形態のエレメントは単数で記述または主張されていることがあるが、単数形への限定が明示的に述べられていない限り、複数が企図されている。加えて、任意の態様および/または実施形態のすべて、あるいは、任意の態様および/または実施形態の一部は、特に明記がない限り、他の何らかの態様および/または実施形態のすべて、あるいは、他の何らかの態様および/または実施形態の一部により利用されてもよい。

Claims (17)

  1. データ処理方法において、
    第1の物理メモリ中の第1のメモリプールを規定することと、
    前記第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールを規定することと、
    1つ以上の予め定められた基準に基づいて、前記第1のメモリプールまたは前記第2のメモリプールにおいて演算するようにハードウェアコンポーネントをプログラミングすることとを含み、
    前記第2のメモリプールは、前記第1のメモリプールよりも、より短い待ち時間を有する方法。
  2. スペースが利用可能であるときにいつでも前記第2のメモリプールにおいて演算するように前記ハードウェアコンポーネントをプログラミングすることをさらに含む請求項1記載の方法。
  3. 前記1つ以上の予め定められた基準は、データ送信特性に基づいている請求項1記載の方法。
  4. 前記第2のメモリプールを規定することは、前記第2のメモリプールを使用してデータ演算の大部分が実行されるように、メモリプールのサイズを規定することを含む請求項1記載の方法。
  5. 前記第2のメモリプールは、前記ハードウェアコンポーネントによって、かつ、前記ハードウェアコンポーネントを制御するソフトウェアコンポーネントによってアクセス可能である請求項1記載の方法。
  6. 前記ハードウェアコンポーネントは、ハードウェアアクセラレータを含む請求項1記載の方法。
  7. 複数のプロトコルレイヤのそれぞれにおいてデータを処理しているときに、前記第2のメモリプール中に記憶されている前記データにおいて演算するように1つ以上のハードウェアコンポーネントを構成することをさらに含み、
    前記複数のプロトコルレイヤのそれぞれにおいて処理した後に、前記データは前記第1のメモリプールにコピーされない請求項1記載の方法。
  8. 少なくとも1つのプロセッサにおいて、
    第1の物理メモリ中の第1のメモリプールを規定する第1のモジュールと、
    前記第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールを規定する第2のモジュールと、
    1つ以上の予め定められた基準に基づいて、前記第1のメモリプールまたは前記第2のメモリプールにおいて演算するようにハードウェアコンポーネントをプログラミングする第3のモジュールとを具備し、
    前記第2のメモリプールは、より短い待ち時間を有する、前記第1のメモリプール、少なくとも1つのプロセッサ。
  9. コンピュータプログラムプロダクトにおいて、
    第1の物理メモリ中の第1のメモリプールをコンピュータに規定させるための第1のセットのコードと、
    前記第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールを前記コンピュータに規定させるための第2のセットのコードと、
    1つ以上の予め定められた基準に基づいて、前記第1のメモリプールまたは前記第2のメモリプールにおいて演算するようにハードウェアコンポーネントを前記コンピュータにプログラミングさせるための第3のセットのコードとを含むコンピュータ読み取り可能媒体を具備し、
    前記第2のメモリプールは、より短い待ち時間を有する、前記第1のメモリプール、コンピュータプログラムプロダクト。
  10. 装置において、
    第1の物理メモリ中の第1のメモリプールを規定する手段と、
    前記第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールを規定する手段と、
    1つ以上の予め定められた基準に基づいて、前記第1のメモリプールまたは前記第2のメモリプールにおいて演算するようにハードウェアコンポーネントをプログラミングする手段とを具備し、
    前記第2のメモリプールは、より短い待ち時間を有する、前記第1のメモリプール、装置。
  11. データ処理装置において、
    プロセッサと、
    第1の物理メモリ中の第1のメモリプールと、
    前記第1の物理メモリとは異なる第2の物理メモリ中の第2のメモリプールと、
    1つ以上の予め定められた基準に基づいて、前記第1のメモリプールまたは前記第2のメモリプールにおいて演算可能なハードウェアコンポーネントとを具備し、
    前記第2のメモリプールは、より短い待ち時間を有し、前記第1のメモリプール、
    前記ハードウェアコンポーネントは、前記プロセッサによって制御されるデータ処理装置。
  12. 前記ハードウェアコンポーネントは、スペースが利用可能であるときにいつでも前記第2のメモリプールにおいて演算するようにプログラミングされる請求項11記載のデータ処理装置。
  13. 前記1つ以上の予め定められた基準は、データ送信特性に基づいている請求項11記載のデータ処理装置。
  14. 前記第2のメモリプールは、データ演算の大部分に対応するための容量を有する請求項11記載のデータ処理装置。
  15. 前記第2のメモリプールは、前記ハードウェアコンポーネントによって、かつ、前記プロセッサ上に記憶されているソフトウェアコンポーネントによってアクセス可能である請求項11記載のデータ処理装置。
  16. 前記ハードウェアコンポーネントは、ハードウェアアクセラレータを含む請求項11記載のデータ処理装置。
  17. 複数のプロトコルレイヤのそれぞれにおいてデータを処理しているときに、前記第2のメモリプール中に記憶されているデータにおいて演算する1つ以上のハードウェアコンポーネントをさらに具備し、
    前記複数のプロトコルレイヤのそれぞれにおいて処理した後に、前記データは前記第1のメモリプールにコピーされない請求項11記載のデータ処理装置。
JP2012524916A 2009-08-13 2010-08-13 メモリ管理および効率的なデータ処理のための装置および方法 Pending JP2013502016A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/540,756 2009-08-13
US12/540,756 US8788782B2 (en) 2009-08-13 2009-08-13 Apparatus and method for memory management and efficient data processing
PCT/US2010/045520 WO2011020055A1 (en) 2009-08-13 2010-08-13 Apparatus and method for memory management and efficient data processing

Publications (1)

Publication Number Publication Date
JP2013502016A true JP2013502016A (ja) 2013-01-17

Family

ID=43027554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012524916A Pending JP2013502016A (ja) 2009-08-13 2010-08-13 メモリ管理および効率的なデータ処理のための装置および方法

Country Status (5)

Country Link
US (1) US8788782B2 (ja)
EP (1) EP2465034A1 (ja)
JP (1) JP2013502016A (ja)
CN (1) CN102473117B (ja)
WO (1) WO2011020055A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150114958A (ko) * 2013-02-04 2015-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 이기종 메모리의 동적 관리 기법
JP2016051228A (ja) * 2014-08-28 2016-04-11 京セラドキュメントソリューションズ株式会社 電子機器
JP2018136922A (ja) * 2017-02-23 2018-08-30 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. メモリープールを有するコンピューティングシステムのためのメモリー分割

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100182970A1 (en) * 2009-01-21 2010-07-22 Qualcomm Incorporated Multiple Subscriptions Using a Single Air-Interface Resource
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US9880852B2 (en) * 2012-12-27 2018-01-30 Intel Corporation Programmable hardware accelerators in CPU
CN104954072A (zh) * 2015-07-08 2015-09-30 中国工程物理研究院总体工程研究所 基于协议处理fpga的光纤总线系统及低延迟通信方法
US10664278B2 (en) * 2017-08-17 2020-05-26 Huawei Technologies Co., Ltd. Method and apparatus for hardware acceleration in heterogeneous distributed computing
CN109068096B (zh) * 2018-08-23 2021-06-15 蔡岳林 远程可视快递系统及方法
CN109327260A (zh) * 2018-11-29 2019-02-12 中国人民解放军战略支援部队信息工程大学 一种可见光无线多协议聚合传输系统及方法
CN111290869B (zh) * 2020-05-09 2020-09-29 北京国科天迅科技有限公司 一种多节点主从式网络系统及其中断处理方法
CN113687782B (zh) * 2021-07-30 2023-12-22 济南浪潮数据技术有限公司 存储池时延确定方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120125A (ja) * 1991-07-05 1993-05-18 Oki Electric Ind Co Ltd データ処理装置
JPH11110286A (ja) * 1997-09-29 1999-04-23 Murata Mach Ltd 通信端末装置
JP2001101010A (ja) * 1999-09-30 2001-04-13 Hitachi Ltd 仮想機械最適化方法
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338673A (en) * 1978-12-05 1982-07-06 Compugraphic Corporation Phototypesetting system and method
US4463418A (en) 1981-06-30 1984-07-31 International Business Machines Corporation Error correction from remote data processor by communication and reconstruction of processor status storage disk
US4709332A (en) * 1984-10-05 1987-11-24 North Shore University Hospital High speed image data processing
JPS6373356A (ja) 1986-09-16 1988-04-02 Fujitsu Ltd プロセツサ間通信方式
US4980824A (en) * 1986-10-29 1990-12-25 United Technologies Corporation Event driven executive
JPH05274279A (ja) 1992-03-30 1993-10-22 Hitachi Ltd 並列処理装置及び方法
CA2123447C (en) 1993-09-20 1999-02-16 Richard L. Arndt Scalable system interrupt structure for a multiprocessing system
US5471488A (en) 1994-04-05 1995-11-28 International Business Machines Corporation Clock fault detection circuit
US5642501A (en) * 1994-07-26 1997-06-24 Novell, Inc. Computer method and apparatus for asynchronous ordered operations
EP0716370A3 (en) 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5832262A (en) * 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
US5721739A (en) * 1995-12-14 1998-02-24 Fairchild Semiconductor Corporation Method for detecting read errors, correcting single-bit read errors and reporting multiple-bit read errors
US5850526A (en) * 1996-02-07 1998-12-15 Kingston Technology Co. LAN station for determining the destination LAN station is capable of decompressing by comparing destination address to block of addresses assigned by a LAN manufacturer
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5870394A (en) 1996-07-23 1999-02-09 Northern Telecom Limited Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
JP3714441B2 (ja) 1997-04-28 2005-11-09 松下電器産業株式会社 サーバシステムとそのプロトコル処理方法
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6285404B1 (en) * 1998-08-03 2001-09-04 Ati Technologies Inc. Systolic video encoding system
US6421751B1 (en) * 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6611891B1 (en) * 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
JP3450735B2 (ja) 1999-01-29 2003-09-29 株式会社山武 処理装置
US6542537B1 (en) * 1999-03-09 2003-04-01 Conexant Systems, Inc. Reduction of CPU burden in monitoring data for escape sequences
US6708233B1 (en) * 1999-03-25 2004-03-16 Microsoft Corporation Method and apparatus for direct buffering of a stream of variable-length data
US6768992B1 (en) 1999-05-17 2004-07-27 Lynne G. Jolitz Term addressable memory of an accelerator system and method
JP3516634B2 (ja) 2000-05-30 2004-04-05 日本電気株式会社 サーキットエミュレーション装置及びサーキットエミュレーション装置における多重化方法
JP2002163239A (ja) 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
AU2002329611A1 (en) * 2001-07-20 2003-03-03 Altaworks Corporation System and method for adaptive threshold determination for performance metrics
ATE381059T1 (de) 2001-10-31 2007-12-15 Aplix Corp System zum ausführen von zwischenkode, methode zum ausführen von zwischenkode, und computerprogrammprodukt zum ausführen von zwischenkode
US6993602B2 (en) 2002-01-29 2006-01-31 Intel Corporation Configuring queues based on a given parameter
US6720893B2 (en) * 2002-02-22 2004-04-13 International Business Machines Corporation Programmable output control of compressed data from encoder
US6985974B1 (en) * 2002-04-08 2006-01-10 Marvell Semiconductor Israel Ltd. Memory interface controller for a network device
US7512128B2 (en) * 2002-06-12 2009-03-31 Sun Microsystems, Inc. System and method for a multi-packet data link layer data transmission
US7142540B2 (en) * 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
JP4317403B2 (ja) * 2002-08-09 2009-08-19 パナソニック株式会社 ヘッダ圧縮装置及びヘッダ圧縮方法
US7269171B2 (en) * 2002-09-24 2007-09-11 Sun Microsystems, Inc. Multi-data receive processing according to a data communication protocol
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7870431B2 (en) 2002-10-18 2011-01-11 Computer Associates Think, Inc. Transaction tracer
US20040088498A1 (en) * 2002-10-31 2004-05-06 International Business Machines Corporation System and method for preferred memory affinity
US7400581B2 (en) * 2003-03-03 2008-07-15 Sun Microsystems, Inc. Load-balancing utilizing one or more threads of execution for implementing a protocol stack
US7330991B2 (en) * 2003-05-15 2008-02-12 Lsi Logic Corporation Method and/or apparatus for paging to a dynamic memory array
US7586948B2 (en) 2003-12-24 2009-09-08 Agere Systems Inc. Packet sub-frame structure for selective acknowledgment
KR100651344B1 (ko) 2004-02-19 2006-11-29 삼성전자주식회사 고속 순방향 패킷 접속 방식을 사용하는 이동 통신시스템에서 데이터 처리 속도를 향상시키는 방법 및 그이동통신시스템
US7783769B2 (en) * 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
JP2005322032A (ja) 2004-05-10 2005-11-17 Matsushita Electric Ind Co Ltd 受信フレーム処理装置
US7636857B2 (en) * 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
NZ552760A (en) 2004-07-06 2008-09-26 Ntt Docomo Inc Message transmission system and message transmission method
CN1747444A (zh) 2004-09-10 2006-03-15 国际商业机器公司 数据处理系统网络中从主机单元分担数据流的方法及引擎
US7590150B1 (en) 2004-09-30 2009-09-15 Ceterus Networks, Inc. Method and apparatus for transport of multiple TDM and data clients over multiple variable data rate streams
US8438265B2 (en) 2004-11-04 2013-05-07 International Business Machines Corporation Method of offloading iSCSI PDU corruption-detection digest generation from a host processing unit, and related iSCSI offload engine
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
CN100432957C (zh) 2005-02-12 2008-11-12 美国博通公司 一种管理存储器的方法
US7373475B2 (en) * 2005-06-21 2008-05-13 Intel Corporation Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures
KR100635730B1 (ko) * 2005-06-28 2006-10-17 삼성에스디아이 주식회사 원통형 리튬 이차 전지 및 이의 제조 방법
JP2007026095A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 並列演算装置
US20070033356A1 (en) * 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
US7558929B2 (en) * 2005-09-29 2009-07-07 International Business Machines Corporation Instant copy of data in a cache memory via an atomic command
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US20070136402A1 (en) * 2005-11-30 2007-06-14 International Business Machines Corporation Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
US7889762B2 (en) 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
EP1980063B1 (en) 2006-02-03 2017-12-20 BRITISH TELECOMMUNICATIONS public limited company Method of operating a network
US8279910B2 (en) 2006-03-02 2012-10-02 Qualcomm Incorporated Method and apparatus for code space search in a receiver
US9032127B2 (en) 2006-09-14 2015-05-12 Hewlett-Packard Development Company, L.P. Method of balancing I/O device interrupt service loading in a computer system
US8438365B2 (en) 2006-10-06 2013-05-07 Calos Fund Limited Liability Company Efficient data loading in a data-parallel processor
CN101165655A (zh) 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
US7856033B2 (en) * 2006-11-14 2010-12-21 Lantiq Deutschland Gmbh Methods and systems for adaptive communication
WO2008073024A1 (en) 2006-12-14 2008-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for alignment of protocol data units in a wireless communication system
US8019055B2 (en) 2007-01-19 2011-09-13 Nokia Corporation Media instant messaging for mobile device
US20080250212A1 (en) * 2007-04-09 2008-10-09 Ati Technologies Ulc Method and apparatus for accessing memory using programmable memory accessing interleaving ratio information
US8416788B2 (en) * 2007-04-26 2013-04-09 Microsoft Corporation Compression of data packets while maintaining endpoint-to-endpoint authentication
US7697535B2 (en) * 2007-07-11 2010-04-13 Bhaskar Patel Error resilient protocol data unit boundary detection
KR101540129B1 (ko) * 2007-07-20 2015-07-28 퀄컴 인코포레이티드 원격 액세스 진단 디바이스 및 이의 방법들
KR101405975B1 (ko) * 2007-07-23 2014-06-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US8621573B2 (en) 2007-08-28 2013-12-31 Cisco Technology, Inc. Highly scalable application network appliances with virtualized services
WO2009044382A2 (en) 2007-10-05 2009-04-09 Nxp B.V. Method, system and apparatus for extended rate/range communication of multimedia data over coaxial cable network
US7890314B2 (en) * 2007-12-05 2011-02-15 Seagate Technology Llc Method for modeling performance of embedded processors having combined cache and memory hierarchy
US20090183161A1 (en) 2008-01-16 2009-07-16 Pasi Kolinummi Co-processor for stream data processing
US8321651B2 (en) * 2008-04-02 2012-11-27 Qualcomm Incorporated System and method for memory allocation in embedded or wireless communication systems
US20090300629A1 (en) 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
US20100011375A1 (en) 2008-07-14 2010-01-14 Safenet, Inc. Zero-install IP security
US8185897B2 (en) 2008-09-30 2012-05-22 Verizon Patent And Licensing Inc. Task management system
US8902805B2 (en) 2008-10-24 2014-12-02 Qualcomm Incorporated Cell relay packet routing
US9554417B2 (en) * 2008-12-24 2017-01-24 Qualcomm Incorporated Optimized header for efficient processing of data packets
US8867428B2 (en) 2009-04-13 2014-10-21 Qualcomm Incorporated Split-cell relay application protocol
US8170027B2 (en) 2009-05-26 2012-05-01 Qualcomm Incorporated Apparatus and method for supporting higher data rates on links with variable frame sizes
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120125A (ja) * 1991-07-05 1993-05-18 Oki Electric Ind Co Ltd データ処理装置
JPH11110286A (ja) * 1997-09-29 1999-04-23 Murata Mach Ltd 通信端末装置
JP2001101010A (ja) * 1999-09-30 2001-04-13 Hitachi Ltd 仮想機械最適化方法
JP2007026094A (ja) * 2005-07-15 2007-02-01 Matsushita Electric Ind Co Ltd 実行装置およびアプリケーションプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150114958A (ko) * 2013-02-04 2015-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 이기종 메모리의 동적 관리 기법
KR102207598B1 (ko) 2013-02-04 2021-01-25 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 이기종 메모리의 동적 관리 기법
JP2016051228A (ja) * 2014-08-28 2016-04-11 京セラドキュメントソリューションズ株式会社 電子機器
JP2018136922A (ja) * 2017-02-23 2018-08-30 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. メモリープールを有するコンピューティングシステムのためのメモリー分割
JP7242170B2 (ja) 2017-02-23 2023-03-20 ハネウェル・インターナショナル・インコーポレーテッド メモリープールを有するコンピューティングシステムのためのメモリー分割

Also Published As

Publication number Publication date
WO2011020055A1 (en) 2011-02-17
US20110040947A1 (en) 2011-02-17
CN102473117B (zh) 2015-02-04
US8788782B2 (en) 2014-07-22
CN102473117A (zh) 2012-05-23
EP2465034A1 (en) 2012-06-20

Similar Documents

Publication Publication Date Title
CN102473115B (zh) 用于高效数据处理的装置和方法
US8762532B2 (en) Apparatus and method for efficient memory allocation
CN102473117B (zh) 用于存储器管理和高效数据处理的装置和方法
US10372637B2 (en) Methods and apparatus for aggregating packet transfer over a virtual bus interface
US7535907B2 (en) TCP engine
RU2491737C2 (ru) Управление памятью для высокоскоростного управления доступом к среде
EP2337305A2 (en) Header processing engine
US20110041128A1 (en) Apparatus and Method for Distributed Data Processing
WO2015058699A1 (en) Data forwarding
WO2014105650A1 (en) Communication traffic processing architectures and methods
US8745235B2 (en) Networking system call data division for zero copy operations
JP5094482B2 (ja) 処理装置及びその処理方法
CN100484136C (zh) 网络协议引擎
US20080317027A1 (en) System for reducing latency in a host ethernet adapter (hea)
CN101715210B (zh) Mac层hspa数据组装的方法及装置
HK1135533A (en) Method and apparatus for reading data of protocol stack of transmission control protocol/internet protocol
Shang et al. Research and Design for Stateful Firewall on Multi-core Network Processors
JP2009296133A (ja) 仮想ネットワーク制御システム及び方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141216