JP5662567B2 - 圧縮コードの高速実行のための装置、方法、コンピューティングシステム、プログラム - Google Patents

圧縮コードの高速実行のための装置、方法、コンピューティングシステム、プログラム Download PDF

Info

Publication number
JP5662567B2
JP5662567B2 JP2013513422A JP2013513422A JP5662567B2 JP 5662567 B2 JP5662567 B2 JP 5662567B2 JP 2013513422 A JP2013513422 A JP 2013513422A JP 2013513422 A JP2013513422 A JP 2013513422A JP 5662567 B2 JP5662567 B2 JP 5662567B2
Authority
JP
Japan
Prior art keywords
pointer
embedded code
code instruction
storage unit
instruction address
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.)
Expired - Fee Related
Application number
JP2013513422A
Other languages
English (en)
Other versions
JP2013528877A (ja
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2013528877A publication Critical patent/JP2013528877A/ja
Application granted granted Critical
Publication of JP5662567B2 publication Critical patent/JP5662567B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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

Description

本開示は、概してコンピューティング分野に関する。より詳しくは、本発明の一実施形態は、概して圧縮コードの高速実行に関する。
数多くのアプリケーションはコードサイズのフットプリントの影響を受けやすい。1つの主たる例に、永久的メモリ格納がシステムコスト、サイズ、または消費電力全体の鍵を握っている読み取り専用メモリ(ROM)ベースのシステムを利用しうるモバイルアプリケーションが挙げられる。場合によっては、コード圧縮を利用して、これらの課題の少なくとも幾つかを軽減することもできるかもしれないが、オンザフライ的に要求される圧縮コードの伸張によって、パフォーマンスが低減したり、および/または、消費電力が増加したりする場合がある。
詳細な記載は、添付図面を参照しながら行われる。図面では、参照番号の一番左の桁が、その参照番号が最初に現れる図面を特定している。同じ参照番号が異なる図面間で利用されている場合には、類似した、または同じ部材を表す。
圧縮前の埋め込みコード圧縮を示す。 圧縮後の埋め込みコード圧縮を示す。 一部の実施形態における、パイプライン・デコンプレッサのブロック図を示す。 一部の実施形態における、パイプライン・デコンプレッサへのデータフローを示す。 一部の実施形態における、パイプライン・デコンプレッサのブロック図を示す。 一部の実施形態における、パイプライン・デコンプレッサへのデータフローを示す。 一部の実施形態における、パイプライン・デコンプレッサのブロック図を示す。 本発明の一実施形態における方法のフロー図を示す。 ここで記載する一部の実施形態を実装する際に利用することができるコンピューティングシステムの実施形態のブロック図を示す。 ここで記載する一部の実施形態を実装する際に利用することができるコンピューティングシステムの実施形態のブロック図を示す。 一部の実施形態における、無線ローカルエリアまたはセルラーネットワーク通信システムのブロック図を示す。
以下の記載では、いくつもの具体的な詳細を述べて、様々な実施形態の完全な理解を促す。しかし、本発明の様々な実施形態は、これら特定の詳細がなくても実行可能である場合がある。また、公知の方法、手順、要素、および回路等の詳述を避けて、本発明の実施形態が曖昧にならないようにしている場合もあるのでご了承願いたい。さらに、本発明の実施形態の様々な態様は、集積半導体回路(「ハードウェア」)、1以上のプログラムにまとめられたコンピュータ可読命令(「ソフトウェア」)、または、ハードウェアおよびソフトウェアのなんらかの組み合わせによる実施形態が可能である。本開示の趣旨においては、「論理」は、ハードウェア、ソフトウェア(例えばプロセッサの動作を制御するマイクロコード等も含む)、またはこれらのなんらかの組み合わせのことを意味する。
一部の実施形態は、最も頻繁に実行されるコードフローのパフォーマンスオーバヘッドの低減または撤廃、電力消費量の低減、および/または、コードのサイズの低減によって、2レベルのエンベデッドコード伸張スキームを向上させることができる。一般的に、エンベデッドコード圧縮は、1つのエンベデッドコードワードをなす一式の固有のビットパターンを特定して、これらをテーブル(「辞書」と称される場合もある)に格納することを目的としている。圧縮エンベデッドコードは、各パターンについて(ショート)固有識別子を、元のエンベデッドコードワードシーケンスで格納する(図1および図2参照)。さらに、一実施形態では、コード辞書またはメモリの値についての位置の指定を柔軟に行うことで、初期ポインタ値を、より効率的に導出することができる。これら実施形態によって、伸張パフォーマンス面にコスト負担をかけずに、エンベデッドコード圧縮が提供する利点を実現することができるようになる。
図1および図2において、addrは、エンベデッドコード命令のアドレスを示す。非圧縮形式のとき(図1参照)、addrは、ROMに直接アクセスして、エンベデッドコード命令(instr)をフェッチする。圧縮形式のときは(図2参照)、固有エンベデッドコード命令が、「固有パターン」テーブル/アレイ202(または辞書)に格納されており、そのパターンについてのインデックス(ポインタ)のみがエンベデッドコード命令の元のスロットに格納されている(ポインタアレイ204)。この構成においては、2段階処理を利用して、エンベデッドコードワードを伸張することになる。つまり、第1段階で、ポインタアレイ204にアクセスして、インデックス(ポインタ)をフェッチして固有パターンアレイ202に投入し、この固有パターンアレイ202がアクセスを受けて、ワードが提供される。ここで元のROMが、各々が312ビットの6500個のエンベデッドコードワードを有していたとすると、全部で2005個の固有エンベデッドコードワードが存在していることになる。元のROMは(312x6500) 2,028,000ビットとなるが、圧縮されたROMは、(6500* 11 + 312*2005) 697,060になる(11は、固有パターンアレイ202の2005個のエントリをインデックス化するために必要なビット数である)。従って、圧縮率(圧縮サイズ/元のサイズ)は、34.37%となる。故に、従前のエンベデッドコード伸張方法は、フローが変わるとパフォーマンスコストがかかる、ということになる。これを解消するために、一部の実施形態では、このパフォーマンスに対する悪影響(performance hit)を回避して圧縮を行う。
様々な実施形態において記載する複数のポインタアレイおよび複数の固有パターンアレイ/テーブルは、それぞれ別個の格納ユニット(図9または図10を参照して説明する複数のメモリ等)への実装、または、互いに同一の格納ユニット内の複数の領域(例えば図9または図10を参照して記載する複数のメモリ)への実装が可能である。
図3は、一部の実施形態における、パイプライン・デコンプレッサのブロック図を示す。図3、図5、および図7において、R1、R2、およびR3は、パイプライン段階に跨って受け渡しされるデータを一時的に格納する目的に利用可能な先入先出(FIFO)バッファのことを指す。図4は、一部の実施形態における、図3のパイプライン・デコンプレッサへのデータフローを示す。
図3を参照すると、圧縮を行う構成では、間接アクセスが「固有パターン」テーブル302に行われている。この間接処理(indirection)により、コードを格納しているメモリから命令をフェッチする際にかかる時間が長くなる。固有パターンアレイ302から命令をフェッチする前に、ポインタをポインタアレイ304からフェッチしなくてはならない点に留意されたい。アレイ302および304の両方からフェッチする期間がプロセッサのサイクル時間以内に納まらない場合(つまり、プロセッサの1サイクル以下に納まらない場合)、プロセッサのパフォーマンスが影響を受けることになる。この期間をプロセッサのサイクル時間に納めるためには、圧縮されたROMで、固定サイズのコード命令のみを利用する、および/または、図3のパイプライン処理を行う必要があるだろう。図3は、2段階でパイプライン処理を行うデコンプレッサを示す。第1パイプライン段階にポインタアレイ304が含まれており、第2パイプライン段階に固有パターンテーブル/アレイ302が含まれている。
実行中に、「addr」アドレスのシーケンスが、圧縮されたROMに提示される。図3のパイプライン・デコンプレッサでは、アドレスが先ずポインタアレイ304に提示される。次の段階では、これが、固有パターンアレイ302にアクセスするポインタを生成し、同時に、新たな「addr」をポインタアレイ304に提示するが、このときのサイクル毎のスループットは1ワードである。このパイプライン構成では、新たな「addr」のシーケンスが開始される度に、1サイクルの「バブル」が生じることになる。「バブル」は、パイプラインを再開すると生じる。例えば、エンベデッドコードフローの開始時、または、ジャンプ中に生じる。一般的には、「バブル」は、パイプライン段階(バブルを含む段階のこと)が、なんら有用な仕事を行っていない、ということを示すための比ゆ的表現である。
図4を参照すると、図3のパイプライン・デコンプレッサへのデータフローが示されている。第1サイクル(サイクル1)では、ポインタアレイ304の入力が、第1命令アドレス(Addr1)を含んでいる。第2サイクル(サイクル2)では、第2命令アドレス(Addr)がポインタアレイ304に提供され、同時に、第1ポインタ(ポインタ1)が固有パターンアレイ302に提供されている。R2におけるバブルは、デコンプレッサが第1サイクルで固有パターンアレイにポインタを提供できないことに起因して生じたものである。
図5は、一実施形態における、パイプライン・デコンプレッサのブロック図を示す。図5の実施形態は、R1で、図3から図4を参照して説明したバブルを、第2アドレス(Addr)をポインタアレイ504に提供するのと同時に第1ポインタ(ポインタ1)を固有パターンアレイ502に直接提供することで(例えばポインタアレイ504をバイパスする)回避している。図示されているように、マルチプレクサは、第1ポインタまたはポインタアレイ504の出力を選択することで、R2経由で第2パイプラインに送信する。従って、新たなフローの第1サイクルで、第1命令を固有パターンアレイ502から直接フェッチして、第2命令のアドレス(「addr」)を利用してパイプラインを「準備する(prime)」。
図6は、第1ポインタが固有パターンアレイに直接提供される場合の図5のパイプライン・デコンプレッサへのデータフローを示す。図4と比べると、第1サイクル(サイクル1)のバブルがない。第1サイクルで、ポインタアレイ504の入力は、第2命令アドレスを含んでおり、固有パターンアレイ502の入力は、第1命令へのポインタを含んでいる。第2サイクル(サイクル2)では、第3命令アドレスがポインタアレイ504に提供され、同時に、第2ポインタが固有パターンアレイ502に提供される。この例では、デコンプレッサは、第1サイクルで固有パターンアレイにポインタを提供することができ、バブルをなくすことができている。
図7は、一実施形態におけるパイプライン・デコンプレッサのブロック図である。図7は、過剰アドレスビット(または論理)のためのバス線がなく、図5の構成を増補した(augmented)ものである。図7では、導出論理702によって、第1ポインタを第2命令アドレス(「addr」)から導出している。少なくとも1つの実施形態では、「導出論理」は、「addr」の複数のビットのサブセットを選択することで第1ポインタを生成し、単に選択されたビットがマルチプレクサにワイヤ送信されることにより、導出を行う論理が実装されるようにしてよい。
一実施形態では、固有パターンアレイのパターンの位置を配置しなおすことで、ポインタアレイの格納されている値(ポインタの値)を修正することができる。図示の便宜上、命令「ADD R,R」を、エンベデッドコードフローの第1命令と仮定する。この命令パターンは、インデックスが第2命令アドレス(Addr)のサブセットである位置の固有パターンアレイに格納することができ、これにより、第1ポインタの第2アドレスからの導出が容易になる。例えば、Addr=000100であり、Addr=000101である場合、「ADD R,R」命令を固有パターンアレイの位置0101に格納することができ、こうすることで、このアドレスをAddrの下位の4ビットから直接導出可能とすることができる。フローの最初に、AddrをR1に提供して、下位の4ビット(0101)をR2に提供して、第1命令を固有パターンアレイから直接フェッチする。
さらに、この実施形態ではいずれかの圧縮を、(パフォーマンスの向上のために)交換(trade)することもできる。これは、「ADD R,R」命令が別のフローで共有されている可能性もあるので、その場合には、固有パターンアレイで複製しておいて、そのポインタデータを独立したものとしておく必要があるからである。しかし、この複製は、フローの開始時の、それぞれ異なる(比較的少数の)命令にしか生じない。加えて、プロファイリングを利用して、実行頻度が最も高いフローのみを選択して最適化することができ、こうすると、実行頻度が最も低いフローにバブルをとどめることができる。
図8は、一実施形態におけるエンベデッドコードを向上させる方法800のブロック図である。方法800の処理は、図1から図7、および/または、図9−図11を参照して説明する1以上のコンポーネントによって実行することができる。
図8を参照すると、処理802で、圧縮されたエンベデッドコード構成を決定する(上述した説明を参照のこと:ポインタアレイおよび固有パターンアレイを生成して、それぞれPとUビットとしてインデックス化する)。処理804で、セットSのエンベデッドコードアドレス(addr)を特定する(これらが、(重要な)フローの第2命令である)。さらに、エンベデッドコードは、複数のフローを含んでいる。各フローが、命令シーケンスを含んでいる。これら命令それぞれを、addr1、addr2、addr3、…、addrNといったアドレスと関連付ける。Addr2は、フローの第2命令のアドレスである。故に、処理804では、各フローの第2命令に相当するアドレスセットを特定する。従って、もしもコードが10個の重要なフローまたは対象フローを有している場合、10個のアドレスからなるセットを有することになり、各アドレスが、それぞれのフローの第2命令のアドレスということになる。処理806では、例えばSの各要素について、対応する命令パターンを固有パターンアレイに追加して、第2命令アドレスから簡単にパターンインデックスを導出できるようにする。一実施形態では、パターンは、そのフローの第2アドレス(Addr2)のPビットからなるサブセットに対応するパターンインデックス(Uビットからなる)を有する位置に配置することができる。
このように一部の実施形態では、(1)第1命令のパターンインデックスをフローに直接投入することで、パイプラインのバブルをなくし、(2)命令アドレスからパターンインデックスを導出して、および/または、(3)固有パターンアレイのパターンを配置しなおすことで、命令アドレスからパターンインデックスを導出する論理を簡略化することにより、バブルをエンベデッド圧縮コードフローからなくして、速度を上げ、および/または、コストを下げることができる。
一実施形態では、ここで記載する技術(図1から図8を参照)を選択的に利用することで、パフォーマンスの圧縮率を交換することもできる。例えば、技術の利用を、重要で、短く、初期のパイプラインの「バブル」による遅延によって大きな影響を受けやすいエンベデッド命令フローのみに限定してよい。さらに、比較的長く、稀であり、1つの余剰サイクルによる影響をあまり受けないフローは、このような技術を適用しないで実行してもよい。さらには、エンベデッドコードリンク段階で、エンベデッドコードを再編成して、フローの開始部分である別個の固有命令の数を最小限に抑え、圧縮率を節約(preserve)することもできる。
図9は、コンピューティングシステム900の一実施形態のブロック図である。様々な実施形態では、システム900のコンポーネントの1以上を、本発明の一部の実施形態を参照して本明細書で説明する処理の1以上を実行することができる様々な電子デバイスに提供されてよい。例えばシステム900のコンポーネントの1以上を利用して、図1−図8、および、図10−図11を参照して説明する処理を実行することもできる。さらに、ここで(図9および/または図10)を参照して説明する様々な格納デバイスを利用して、データ(命令を含む)、処理結果等を格納することもできる。一実施形態では、図9の方法900の処理に関するデータをメモリデバイス(例えば図9のプロセッサ902または図10の1002/1004に提示されているメモリ912または1以上のキャッシュ(一実施形態ではL1、中間レベル、または最終レベルのキャッシュ等))に格納することもできる。
さらに、コンピューティングシステム900は、相互接続ネットワーク(またはバス)904経由で通信する1以上の中央処理装置(CPU902またはプロセッサを含んでも良い。)プロセッサ902は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク903経由で通信されたデータを処理する)、またはその他の種類のプロセッサ(縮小命令セットコンピュータ(RISC)プロセッサまたは複合命令セットコンピュータ(CISC)プロセッサを含む)を含んでも良い。さらに、プロセッサ902は、シングルコア設計またはマルチコア設計であってよい。マルチコア設計のプロセッサ902とは、同一の集積回路(IC)ダイ上に様々な異な種類のプロセッサコアが集積されたものである。マルチコア設計のプロセッサ902は、対象または非対象マルチプロセッサとして実装することができる。加えて、プロセッサ902は、SIMD(単一命令多重データ)アーキテクチャを利用することができる。さらに、図1から図8を参照して説明した処理は、システム900の1以上のコンポーネントで実行することができる。図9に示すように、プロセッサ902の1以上が、(エンベデッド)論理990を含んでよく、これらは、図1から図8を参照して説明したデコンプレッサと同様の、または類似したものであってよい。しかし、図9のシステム900の中の他の回路、論理ユニット、またはデバイスには、本発明の他の実施形態が存在する可能性もある。
チップセット906はさらに、相互接続ネットワーク904と通信することができる。チップセット906は、メモリコードハブ(MCH)908を含んでよい。MCH908は、メモリ912と通信するメモリコントローラ910を含んでよい。メモリ912は、データ(CPU902またはコンピューティングシステム900が含むその他の任意のデバイスが実行する命令シーケンスを含む)を格納してよい。本発明の一実施形態では、メモリ912が、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、静的RAM(SRAM)等の1以上の揮発性格納(またはメモリ)デバイス、または、その他のタイプの格納デバイスを含んでよい。不揮発性メモリはさらに、ハードディスク等として利用することもできる。さらなるデバイス(複数のCPUおよび/または複数のシステムメモリ等)が、相互接続ネットワーク904を介して通信することができる。
MCH908はさらに、ディスプレイ916と通信するグラフィックインタフェース914を含んでも良い。ディスプレイ916は、ユーザに対して、ここで説明するブラウン橋アルゴリズムに関する処理結果を示すために利用することができる。本発明の一実施形態では、グラフィックインタフェース914はディスプレイ916と通信することができる。本発明の一実施形態では、ディスプレイ916は、例えば信号変換機を介してグラフィックインタフェース914と通信するフラットパネルディスプレイであってよく、信号変換機は、ビデオメモリまたはシステムメモリ等の格納デバイスに格納されているデジタル表現の画像を、ディスプレイ916が解釈、表示することができる表示信号に変換することができる。インタフェース914が生成する表示信号は、様々な制御デバイスを通り、ディスプレイ916による解釈を受けてから、表示される。
ハブインタフェース918は、MCH908および入出力制御ハブ(ICH)920に通信を行わせる。ICH920は、コンピューティングシステム900と通信するI/Oデバイスに対してインタフェースを提供することができる。ICH920は、周辺ブリッジ(またはコントローラ)924(例えば周辺コンポーネント相互接続(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、またはその他の種類の周辺ブリッジまたはコントローラ)を介してバス922と通信することができる。ブリッジ924は、CPU902および周辺デバイスとの間にデータ経路を提供することができる。他の種類のトポロジーを利用することもできる。さらに、複数のバスが、複数のブリッジまたはコントローラを介してICH920と通信してもよい。さらに、本発明の様々な実施形態では、ICH920と通信する他の周辺機器に、集積ドライブエレクトロニクス(IDE)、スモールコンピュータシステムインタフェース(SCSI)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えばデジタルビデオインタフェース(DVI))その他のデバイスが含まれてもよい。
バス922は、それぞれコンピュータネットワーク903と通信可能なオーディオデバイス926、1以上のディスクドライブ928、およびネットワークインタフェースデバイス930と通信することができる。一実施形態では、デバイス930が無線通信可能なNICであってよい。他のデバイスがバス922経由で通信可能であってもよい。さらに、本発明の一部の実施形態では、様々なコンポーネント(例えばネットワークインタフェースデバイス930)が、MCH908と通信することができる。加えて、プロセッサ902およびMCH908は、組み合わせられることでシングルチップを構成してもよい。さらに、グラフィックインタフェース914は、本発明の他の実施形態では、MCH908内に含まれてもよい。
さらに、コンピューティングシステム900は、揮発性および/または不揮発性メモリ(またはストレージ)を含んでよい。例えば不揮発性メモリは、読み取り専用メモリ(ROM)、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気EPROM(EEPROM)、ディスクドライブ(例えば928)、フロッピー(登録商標)ディスク、CD−ROM、DVD、フラッシュメモリ、磁気光ディスク、または、電子データ(例えば命令を含む)を格納可能なその他の種類の不揮発性機械可読媒体を含んでよい。一実施形態では、システム900のコンポーネントは、図10を参照して記述したようなポイントツーポイント(PtP)構成に構成することもできる。例えば、プロセッサ、メモリ、および/または、入出力デバイスを、複数のポイントツーポイントインタフェースで相互接続することができる。
より詳しくは、図10が、本発明の一実施形態におけるポイントツーポイント(PtP)構成に構成されているコンピューティングシステム1000を示している。特に図10は、プロセッサ、メモリ、および入出力デバイスが複数のポイントツーポイントインタフェースで相互接続されているシステムを示している。図1−図9、および図11を参照して説明する処理は、システム1000の1以上のコンポーネントにより実行することができる。
図10に示すように、システム1000は幾つかのプロセッサを含んでよいが、2つのみ(プロセッサ1002、1004)が図示の便宜上示している。プロセッサ1002および1004は、それぞれ、ローカルメモリコントローラハブ(MCH)1006および1008であり、メモリ1010および1012に連結される。メモリ1010および/または1012は、図9のメモリ912を参照して記載した様々なデータを格納することができる。
プロセッサ1002および1004は、図9のプロセッサ902を参照して記載したもの等を含む任意の適切なプロセッサであってよい。プロセッサ1002および1004は、それぞれPtPインタフェース回路1016および1018を利用して、ポイントツーポイント(PtP)インタフェース1014を介してデータを交換することができる。プロセッサ1002および1004はそれぞれ、ポイントツーポイントインタフェース回路1026、1028、1030、および1032を利用して、個々にPtPインタフェース1022および1024を介して、チップセット1020との間でデータを交換することができる。チップセット1020はさらに、PtPインタフェース回路1037を利用して、高パフォーマンスグラフィックインタフェース1036を介して高パフォーマンスグラフィック回路1034とデータを交換することができる。
本発明の少なくとも1つの実施形態は、プロセッサ1002および1004を利用して提供することができる。例えば図10に示すように、プロセッサ1002/1004の1以上は、(エンベデッド)論理990を含んでよく、これは、図1から図8を参照して説明したデコンプレッサと同様の、または類似したものであってよい。しかし図10のシステム1000内の他の回路、論理ユニット、またはデバイスには、本発明の他の実施形態が存在する可能性もある。さらに本発明の他の実施形態を、図10に示す幾つかの回路、論理ユニット、またはデバイスに分散させることもできる。
チップセット1020は、PtPインタフェース回路1041を利用してバス1040に連結されてよい。バス1040には1以上のデバイス(例えばバスブリッジ1042およびI/Oデバイス1043)が連結されていてよい。バス1044を介して、バスブリッジ1043は、キーボード/マウス1045、図10を参照して記載したネットワークインタフェースデバイス1030(例えばモデム、ネットワークインタフェースカード(NIC)、その他、コンピュータネットワーク903に連結可能なもの)、オーディオI/Oデバイス、および/または、データ格納デバイス1048に連結することができる。データ格納デバイス1048は、プロセッサ1002および/または1004により実行可能なコード1049を格納することができる。
図11を参照しながら、一部の実施形態における、無線ローカルエリアまたはセルラーネットワーク通信システムのブロック図について説明する。図11に示す通信システム1100では、無線デバイス1110が、アンテナ1118または論理1114(例えばプロセッサ(例えば、ベースバンド処理機能およびメディアアクセス制御(MAC)処理機能を提供するために))に連結するための無線トランシーバ1112を含んでよい。一部の実施形態では、ここで記載するコンピューティングシステムのうち1以上は、無線デバイス1110を参照して説明したコンポーネントの1以上を含んでよい。さらに、コンピューティングデバイス1102は、図1から図10を参照してここで説明するシステム/デバイスの1以上のコンポーネントを含んでも良い。
一部の実施形態では、無線デバイス1110は、セルラー電話通信モジュールが組み込まれた移動パーソナルコンピュータまたは情報携帯端末等のセルラー電話器または情報処理システムであってよい。一実施形態では、論理1114は、シングルプロセッサを含んでも良いし、または、ベースバンドプロセッサおよびアプリケーションプロセッサ(例えば、図11を参照して説明する各プロセッサが1以上のプロセッサコアを有してよい、または、図1から図10を参照して記載したプロセッサと同様であったり、または類似していてよい)。論理1114は、メモリ1116に連結されており、メモリ1116には、揮発性メモリ(例えば動的RAM(DRAM))、不揮発性メモリ(例えばフラッシュメモリ)を含んでも良く、これらに替えて、ハードディスクドライブ等の他の種類のストレージが含まれてよい。これらメモリ1116の一部または全ては、論理1114と同じ集積回路に含まれていても良いし、あるいは、メモリ1116の一部または全てが、論理1114の集積回路の外部にある集積回路または他の媒体(例えばハードディスクドライブ)上に設けられても良い。
無線デバイス1110は、無線通信リンクを介してアクセスポイント1122と通信することができ、アクセスポイント1122は、アンテナ1120、トランシーバ1124、プロセッサ1126、およびメモリ1128のうち1以上を含んでよい。図11に示すように、無線デバイス1110および/またはアクセスポイント1122のうち1以上は、(エンベデッド)論理990を含んでいて良く、これらは、図1から図10を参照して上述したデコンプレッサと同一、または類似していたものであってもよい。一実施形態では、アクセスポイント1122が、セルラー電話回線の基地局であってよく、別の実施形態では、アクセスポイント1122が、無線ローカルまたはパーソナルエリアネットワークのアクセスポイントまたは無線ルータであってよい。一実施形態では、アクセスポイント1122(オプションとしては無線デバイス1110であってもよい)は、2以上のアンテナを含んで、例えば空間分割多重アクセス(SDMA)システムまたは多入力多出力(MIMO)システムを提供してもよい。アクセスポイント1122は、ネットワーク903と連結されることで、無線デバイス1110が無線通信リンクを介してアクセスポイント1122と通信することにより、ネットワーク903(ネットワーク903に連結されたデバイスを含む)と通信してもよい。ネットワーク903は、電話回線またはインターネット等の公衆回線を含んでも良いし、または、ネットワーク903が、イントラネット等のプライベートネットワーク、または、公衆回線とプライベートネットワークの組み合わせを含んでも良い。無線デバイス1110およびアクセスポイント1122の間の通信は、無線ローカルエリアネットワーク(WLAN)を介して実装することもできる。一実施形態では、無線デバイス1110およびアクセスポイント1122の間の通信は、少なくとも部分的に、第三世代パートナーシッププロジェクト(3GPPまたは3G)規格に準拠したセルラー通信ネットワークにより実装されてよい。一部の実施形態では、アンテナ1118は、無線センサネットワークまたはメッシュネットワークで利用することができる。
本発明の様々な実施形態では、ここで説明する処理(図1から図11を参照して説明するもの)は、ハードウェア(例えば論理回路)、ソフトウェア(例えば、コンピュータ(例えばプロセッサまたは他のコンピュータデバイスの論理)に、ここに開始した処理を実行させるようプログラミングするために利用される命令(またはソフトウェア手順)を格納した有形機械可読またはコンピュータ可読媒体を含む)コンピュータプログラムとして提供することができる、プロセッサ(ここで記載するプロセッサを含む)、ファームウェア、または、これらの組み合わせの処理を制御するマイクロコードを含む)として実装することができる。機械可読媒体は、ここに記載する格納デバイスを含んでよい。
加えて、これら有形コンピュータ可読媒体は、コンピュータプログラムプロダクトとしてダウンロードすることができ、このなかでプログラムは、遠隔コンピュータ(サーバ等)から要求を発したコンピュータ(クライアント等)へと、通信リンク(例えばバス、モデム、またはネットワーク接続)を介して伝播媒体のデータ信号により転送されてよい。
本明細書における「一実施形態」「1つの実施形態」といった言い回しは、ある特定の実施形態との関連で記載される特定の特徴、構造、または特性が、少なくとも1つの実装例に含まれうることを示す。「一実施形態」という言い回しが本明細書の随所に利用されていたとしても、これは全てが同じ実施形態のことを指しているわけではないことを了解されたい。
さらに、明細書および請求項において「連結」「接続」およびこれらの派生語が利用されている場合がある。本発明の一部の実施形態では、「接続」は、2以上の部材が直接物理的または電気的接触状態にあることを示している。「連結」は、2以上の部材が直接物理的または電気的接触状態にあることを示す場合もある。しかし、「連結」はさらに、2以上の部材が互いに直接接触してはいないが、互いと協働または相互作用できる状態を指す場合もある。
本発明の実施形態は、構造的特徴および/または方法における動作に特化した言語で記載してきたが、請求されている主題は、これら記載された具体的特徴または動作に必ずしも限定されないことを理解されたい。具体的特徴または動作は、請求されて言う主題を実装する例示的な形態の開示にすぎない。

Claims (28)

  1. エンベデッドコード命令アドレスに対応するポインタを格納する第1格納ユニットと
    前記ポインタに対応する固有エンベデッドコード命令を格納する第2格納ユニットと、
    格納されている前記固有エンベデッドコード命令を実行するプロセッサと
    を備え、
    前記第1格納ユニットは、前記第1格納ユニットで前記エンベデッドコード命令アドレスが受け取られると、前記第2格納ユニットに前記ポインタを送信し、
    前記第2格納ユニットは、前記第2格納ユニットで前記ポインタが受け取られると、前記固有エンベデッドコード命令を出力し、
    論理を用いて、前記エンベデッドコード命令アドレスにおける複数のビットのサブセットを選択することにより、複数のエンベデッドコード命令アドレスの新たなシーケンスのそれぞれに対して初期ポインタである第1ポインタを導出する、装置。
  2. 前記第2格納ユニットは、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る、請求項1に記載の装置。
  3. 前記第2格納ユニットは、前記第1格納ユニットから前記第2ポインタを受け取り、前記第1ポインタを、前記第1格納ユニットをバイパスすることにより受け取る、請求項2に記載の装置。
  4. 前記第2格納ユニットは、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取り、前記第1ポインタは、前記第2エンベデッドコード命令アドレスから導出される値である、請求項1に記載の装置。
  5. 前記プロセッサの各後続するサイクル中であって、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクルの後に、少なくとも1つのポインタを前記第1格納ユニットからフェッチして、少なくとも1つの固有エンベデッドコード命令を前記第2格納ユニットからフェッチする、請求項1から4のいずれか1項に記載の装置。
  6. 前記固有エンベデッドコード命令は、前記第2格納ユニットに格納されており、エンベデッドコードワードを形成する固有ビットパターンのセットを含む、請求項1から5のいずれか1項に記載の装置。
  7. 読み取り専用メモリをさらに備え、
    前記メモリは、前記第1格納ユニットまたは前記第2格納ユニットを含む、請求項1から6のいずれか1項に記載の装置。
  8. 前記第1格納ユニットおよび前記第2格納ユニットを連結するために少なくとも1つのバッファまたはレジスタをさらに備える請求項1から7のいずれか1項に記載の装置。
  9. 前記第1格納ユニットおよび前記第2格納ユニットを連結するマルチプレクサをさらに備える請求項1から8のいずれか1項に記載の装置。
  10. 前記プロセッサ、前記第1格納ユニット、または、前記第2格納ユニットのうち1以上が、同一の集積回路ダイに設けられている、請求項1から9のいずれか1項に記載の装置。
  11. 前記プロセッサは複数のプロセッサコアを含む、請求項1から10のいずれか1項に記載の装置。
  12. 第1格納ユニットに、エンベデッドコード命令アドレスに対応するポインタを格納する段階と、
    第2格納ユニットに、前記ポインタに対応する固有エンベデッドコード命令を格納する段階と
    複数のエンベデッドコード命令アドレスの新たなシーケンスのそれぞれに対する初期ポインタである第1ポインタを、前記エンベデッドコード命令アドレスにおける複数のビットのサブセットを選択することにより導出する段階と、
    記第1格納ユニットにおいて前記エンベデッドコード命令アドレスが受け取られると、前記第1格納ユニットが、前記第2格納ユニットに前記ポインタを送信する段階と
    記第2格納ユニットにおいて前記ポインタが受け取られると、前記第2格納ユニットが、前記固有エンベデッドコード命令を出力する段階と
    を備える、方法。
  13. 前記第2格納ユニットで、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る段階をさらに備える、請求項12に記載の方法。
  14. 前記第2格納ユニットで、前記第1格納ユニットから前記第2ポインタを受け取り、前記第1ポインタを、前記第1格納ユニットをバイパスすることにより受け取る段階をさらに備える、請求項13に記載の方法。
  15. 前記第2格納ユニットで、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る段階をさらに備え、前記第1ポインタは、前記第2エンベデッドコード命令アドレスから導出される値である、請求項12に記載の方法。
  16. プロセッサの各後続するサイクル中であって、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクルの後に、少なくとも1つのポインタを前記第1格納ユニットからフェッチして、少なくとも1つの固有エンベデッドコード命令を前記第2格納ユニットからフェッチする段階をさらに備える、請求項12から15のいずれか1項に記載の方法。
  17. エンベデッドコード命令アドレスに対応するポインタを格納するポインタアレイ、および、前記ポインタに対応する固有エンベデッドコード命令を格納する固有パターンアレイを格納するメモリと、
    格納されている前記固有エンベデッドコード命令を実行するプロセッサと、
    を備え、
    前記ポインタアレイは、前記ポインタアレイにおいて前記エンベデッドコード命令アドレスが受け取られると、前記固有パターンアレイに前記ポインタを送信して、前記固有パターンアレイは、前記固有パターンアレイにおいて前記ポインタが受け取られると、前記固有エンベデッドコード命令を出力
    論理を用いて、前記エンベデッドコード命令アドレスにおける複数のビットのサブセットを選択することにより、複数のエンベデッドコード命令アドレスの新たなシーケンスのそれぞれに対して初期ポインタである第1ポインタを導出する、コンピューティングシステム。
  18. 前記固有パターンアレイは、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る、請求項17に記載のコンピューティングシステム。
  19. 前記固有パターンアレイは、前記ポインタアレイから前記第2ポインタを受け取り、前記第1ポインタを、前記ポインタアレイをバイパスすることにより受け取る、請求項18に記載のコンピューティングシステム。
  20. 前記固有パターンアレイは、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取り、前記第1ポインタは、前記第2エンベデッドコード命令アドレスから導出される値である、請求項17に記載のコンピューティングシステム。
  21. 前記プロセッサの各後続するサイクル中であって、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクルの後に、少なくとも1つのポインタが前記ポインタアレイからフェッチされ、少なくとも1つの固有エンベデッドコード命令が前記固有パターンアレイからフェッチされる、請求項17から20のいずれか1項に記載のコンピューティングシステム。
  22. 前記固有エンベデッドコード命令は、前記固有パターンアレイに格納されており、エンベデッドコードワードを形成する固有ビットパターンのセットを含む、請求項17から21のいずれか1項に記載のコンピューティングシステム。
  23. 前記メモリは読み取り専用メモリである、請求項17から22のいずれか1項に記載のコンピューティングシステム。
  24. コンピュータに、
    第1格納ユニットに、エンベデッドコード命令アドレスに対応するポインタを格納する段階と、
    第2格納ユニットに、前記ポインタに対応する固有エンベデッドコード命令を格納する段階と
    複数のエンベデッドコード命令アドレスの新たなシーケンスのそれぞれに対する初期ポインタである第1ポインタを、前記エンベデッドコード命令アドレスにおける複数のビットのサブセットを選択することにより導出する段階と、
    を実行させるためのプログラムであって、
    前記第1格納ユニットは、前記第1格納ユニットにおいて前記エンベデッドコード命令アドレスが受け取られると、前記第2格納ユニットに前記ポインタを送信して、
    前記第2格納ユニットは、前記第2格納ユニットにおいて前記ポインタが受け取られると、前記固有エンベデッドコード命令を出力する、プログラム。
  25. 前記第2格納ユニットで、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る段階をさらに実行させる、請求項24に記載のプログラム。
  26. 前記第2格納ユニットで、前記第1格納ユニットから前記第2ポインタを受け取り、前記第1ポインタを、前記第1格納ユニットをバイパスすることにより受け取る段階をさらに実行させる、請求項25に記載のプログラム。
  27. プロセッサにより実行されると、前記プロセッサに、
    前記第2格納ユニットで、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクル中に、第2エンベデッドコード命令アドレスに対応する第2ポインタの前に、第1エンベデッドコード命令アドレスに対応する第1ポインタを受け取る段階をさらに実行させ、
    前記第1ポインタは、前記第2エンベデッドコード命令アドレスから導出される値である、請求項24に記載のプログラム。
  28. プロセッサの各後続するサイクル中であって、エンベデッドコード命令アドレスの新たなシーケンスの第1サイクルの後に、少なくとも1つのポインタを前記第1格納ユニットからフェッチして、少なくとも1つの固有エンベデッドコード命令を前記第2格納ユニットからフェッチする段階をさらに実行させる、請求項24から27のいずれか1項に記載のプログラム。
JP2013513422A 2010-06-27 2011-06-27 圧縮コードの高速実行のための装置、方法、コンピューティングシステム、プログラム Expired - Fee Related JP5662567B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/824,187 US20110320775A1 (en) 2010-06-27 2010-06-27 Accelerating execution of compressed code
US12/824,187 2010-06-27
PCT/US2011/041967 WO2012012112A2 (en) 2010-06-27 2011-06-27 Accelerating execution of compressed code

Publications (2)

Publication Number Publication Date
JP2013528877A JP2013528877A (ja) 2013-07-11
JP5662567B2 true JP5662567B2 (ja) 2015-02-04

Family

ID=45353683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013513422A Expired - Fee Related JP5662567B2 (ja) 2010-06-27 2011-06-27 圧縮コードの高速実行のための装置、方法、コンピューティングシステム、プログラム

Country Status (8)

Country Link
US (1) US20110320775A1 (ja)
EP (1) EP2585907B1 (ja)
JP (1) JP5662567B2 (ja)
KR (1) KR101468424B1 (ja)
CN (1) CN102934074B (ja)
AU (1) AU2011280088B2 (ja)
TW (1) TWI526929B (ja)
WO (1) WO2012012112A2 (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375833A (ja) * 1986-09-18 1988-04-06 Toshiba Corp 情報処理装置
US5222244A (en) * 1990-12-20 1993-06-22 Intel Corporation Method of modifying a microinstruction with operands specified by an instruction held in an alias register
JP3201716B2 (ja) * 1996-02-22 2001-08-27 シャープ株式会社 コンピュータ装置
KR100448289B1 (ko) * 1997-12-20 2004-11-16 주식회사 대우일렉트로닉스 스트링매칭모듈을갖는데이터압축시스템
US6263429B1 (en) * 1998-09-30 2001-07-17 Conexant Systems, Inc. Dynamic microcode for embedded processors
US6691305B1 (en) * 1999-11-10 2004-02-10 Nec Corporation Object code compression using different schemes for different instruction types
JP2001142696A (ja) * 1999-11-15 2001-05-25 Matsushita Electric Ind Co Ltd マイクロプロセッサにおける命令供給装置および命令供給方法
US6484228B2 (en) * 2000-04-19 2002-11-19 Motorola, Inc. Method and apparatus for data compression and decompression for a data processor system
JP2003044273A (ja) * 2001-08-01 2003-02-14 Nec Corp データ処理装置及びデータ処理方法
JP3729759B2 (ja) * 2001-08-07 2005-12-21 株式会社ルネサステクノロジ 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
JP3792633B2 (ja) * 2002-10-17 2006-07-05 株式会社ルネサステクノロジ マイクロコントローラ、及びマイクロコントローラ装置
US7715392B2 (en) * 2002-12-12 2010-05-11 Stmicroelectronics, Inc. System and method for path compression optimization in a pipelined hardware bitmapped multi-bit trie algorithmic network search engine
US20040128477A1 (en) * 2002-12-13 2004-07-01 Ip-First, Llc Early access to microcode ROM
US20040139298A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method and apparatus for instruction compression and decompression in a cache memory
US8099587B2 (en) * 2005-07-20 2012-01-17 Intel Corporation Compressing and accessing a microcode ROM
US7334113B2 (en) * 2005-09-07 2008-02-19 National Chung Cheng University Method and system for processing an instruction set
US8219508B2 (en) * 2007-07-06 2012-07-10 Lsi Corporation Systems and methods for compressing state machine instructions using a two access indexing scheme

Also Published As

Publication number Publication date
WO2012012112A2 (en) 2012-01-26
KR20130038886A (ko) 2013-04-18
TWI526929B (zh) 2016-03-21
EP2585907B1 (en) 2018-05-16
TW201211886A (en) 2012-03-16
CN102934074A (zh) 2013-02-13
KR101468424B1 (ko) 2014-12-03
AU2011280088B2 (en) 2015-01-22
WO2012012112A3 (en) 2012-04-05
EP2585907A4 (en) 2016-05-25
JP2013528877A (ja) 2013-07-11
AU2011280088A1 (en) 2013-01-24
EP2585907A2 (en) 2013-05-01
US20110320775A1 (en) 2011-12-29
CN102934074B (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
JP5945291B2 (ja) デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置
US8862831B2 (en) Method and apparatus to facilitate shared pointers in a heterogeneous platform
US9477476B2 (en) Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
KR101887126B1 (ko) Or 체인 버스를 위한 향상된 데이터 버스 반전 인코딩
TWI727971B (zh) 使用具有多個搜尋引擎之加速器的資料壓縮
TWI697228B (zh) 用於密碼雜湊運算之硬體加速器
JP2007183950A (ja) アドレススペースエミュレーション
US10158485B2 (en) Double affine mapped S-box hardware accelerator
KR20150138343A (ko) 다중 레지스터 메모리 액세스 명령어들, 프로세서들, 방법들 및 시스템들
EP3278228B1 (en) Command-driven translation pre-fetch for memory management units
KR101934760B1 (ko) 단일 명령어에 응답하여 회전 및 xor을 수행하기 위한 시스템들, 장치들, 및 방법들
JP2006522385A (ja) マルチスレッドのコンピュータ処理を提供する装置および方法
CN113900966B (zh) 一种基于Cache的访存方法及装置
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
US10372452B2 (en) Memory load to load fusing
WO2012024053A2 (en) Method and system of handling non-aligned memory accesses
US20190101969A1 (en) Control Blocks for Processor Power Management
US20160026467A1 (en) Instruction and logic for executing instructions of multiple-widths
US8838861B2 (en) Methods and apparatuses for trace multicast across a bus structure, and related systems
JP5662567B2 (ja) 圧縮コードの高速実行のための装置、方法、コンピューティングシステム、プログラム
US8321605B2 (en) PIO interjection between beats of a DMA operation
TW201913364A (zh) 在以區塊架構處理器為基礎系統中快取指令區塊標頭資料
CN113656331A (zh) 基于高低位的确定访问地址的方法和装置
CN115048326A (zh) 用于管理总线通信协议的选择
US20230401060A1 (en) Processing unit, computing device and instruction processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140924

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141007

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141204

R150 Certificate of patent or registration of utility model

Ref document number: 5662567

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees