JP2008542910A - バイトアドレシング可能メモリの抽出されたインデックスアドレシング - Google Patents
バイトアドレシング可能メモリの抽出されたインデックスアドレシング Download PDFInfo
- Publication number
- JP2008542910A JP2008542910A JP2008514648A JP2008514648A JP2008542910A JP 2008542910 A JP2008542910 A JP 2008542910A JP 2008514648 A JP2008514648 A JP 2008514648A JP 2008514648 A JP2008514648 A JP 2008514648A JP 2008542910 A JP2008542910 A JP 2008542910A
- Authority
- JP
- Japan
- Prior art keywords
- register
- byte
- word
- multiplexer
- bytes
- 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.)
- Abandoned
Links
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 241001441724 Tetraodontidae Species 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
この発明は、一般的に、ロードストア(RISCマシン)アーキテクチャおよびメモリ指向(CISCマシン)アーキテクチャの両方を含む、マイクロプロセッサのアーキテクチャにおけるメモリアクセスに関する。この発明は、より特定的には、マイクロプロセッサが、メモリ構造に、特にバイトアドレシング可能メモリに、より効率的にアクセスするのを可能にするインデックスアドレシング方式に関する。
オペランドの一方がバイト値であり、他方のオペランドが既知の定数である2つのオペランドを含む演算は、しばしば、ルックアップテーブルを用いて、計算実行可能である。なぜならば、256(=28)しかありえないバイト値および対応する結果があるのみであり、そのため、ルックアップテーブルはかなり小さいものとなる。計算上集中的な演算(たとえば、割算、累乗法)では、ルックアップテーブルにアクセスすることのほうが、全部ハードウェアまたはソフトウェアで同じ演算を実行するより、ずっと速くなる傾向がある。もしプロセッサアーキテクチャが、レジスタにインデックス付けされたオフセットを用いてメモリロードをサポートする場合、1つのRISC命令において、ルックアップは簡単に行ない得る。
この発明は、命令に応答して、効率的にメモリのアドレシングをし、その結果得られるメモリ位置からレジスタファイルへとデータをロードするためのマイクロプロセッサ回路を記載する。たとえば、単純な「抽出されたインデックスを用いたワードロード」命令によって、この回路に、インデックスレジスタRiから、特定されたバイトを抽出させ、この抽出されたバイトがビット位置[9:2]に位置するゼロ拡張されたワードを作り出させる。これは、抽出されたバイトを、その最も右の位置から、2ビット、左へとシフトする効果に対応する。この組合された抽出演算は、その回路の例示的な実施において、インデックスレジスタのバイトの各々を受取るよう結合され、かつバイト選択値によって制御されるマルチプレクサを用いることにより達成されてもよい。このマルチプレクサの出力からの選択されたバイトは、直接(いかなるシフト演算もなしに)、所望のビット位置で、変位レジスタへ(随意であり、そうでなければ、加算器の入力へ直接)ロードされる。その結果得られたワードは、ベースアドレスレジスタRbの内容に、その後、メモリアドレスを形成するよう加えられるオフセット値を形成する。そのアドレスの記憶内容は、その後、取出され、目標の目的レジスタRdへとロードされる。この命令は、とりわけ、インデックス付けテーブルに有用である。
図1を参照し、レジスタRi、Rb、およびRdの各々は、(たとえば、32ビットの)ワード長のレジスタである。この発明にとって特に興味があるのは、インデックスレジスタRiからの、特定されたバイトの抽出である。ここに示す例示的な実施例において、インデックスレジスタRiは、先頭バイトt(ビット31から24(含む))、上位バイトu(ビット23から16(含む))、下位バイトl(ビット15から8(含む))、および末尾バイトb(ビット7から0(含む))と名付けられた4つのバイトを含む。インデックスレジスタRiのこれらの部分{t、u、l、b}は、2ビットのバイト数{3、2、1、0}を用いた命令において、識別されてもよい。インデックスレジスタRi、ベースレジスタRb、および目的レジスタRdとして、マイクロプロセッサにおいて指定されるハードウェアレジスタのどれかは、レジスタ数、たとえば、{0、1、…、15}を用いる命令において、別個に識別されてもよい。
レジスタRiの全ワード長の内容が、一時レジスタへと読込まれ、それから、この一時レジスタにおいて右へ24ビット分シフトされてもよい。上位バイトuを抽出するよう、インデックスレジスタRiの全内容が、一時レジスタへと読込まれ、左へ8ビットシフトされ、次いで右へ24ビットシフトされてもよい。下位バイトlを抽出するよう、インデックスレジスタRiの全内容が、一時レジスタへと読込まれ、左へ16ビットシフトされ、次いで右へ24ビットシフトされてもよい。末尾バイトbを抽出するよう、インデックスレジスタRiの全内容が、一時レジスタへと読込まれ、左に24ビットシフトされ、次いで右へ24ビットシフトされてもよい。一度抽出されると、その結果は再び左へあるビットの量分(たとえば、バイトアドレシング可能メモリへアクセスするためには2ビット分)シフトされ、これによりアドレスオフセットまたは変位を得る。このように、先行技術においては、インデックスレジスタから所望のバイトを抽出し、ロード命令のために、アドレスオフセットまたは変位としてその所望のバイトを使い得る前に、その所望のバイトをワード整列するよう、連続するシフト演算の組を実行する。
Claims (11)
- 命令に応答して、インデックス付けされたアドレシングを用いてメモリにアクセスするためのマイクロプロセッサにおける回路であって、
インデックスレジスタ、ベースアドレスレジスタ、目的レジスタとして特定されるものを含む、ワード長のレジスタの組を含み、インデックスレジスタは、別個に抽出されるパッキングされたバイトを含むよう構成され、前記回路はさらに、
インデックスレジスタに結合され、インデックスレジスタ内においてパッキングされたバイトの各々にアクセスするようにされるワード長の入力端と、バイト長の出力端と、バイト選択情報を受取るための制御入力とを有するマルチプレクサを含み、マルチプレクサは、自身の入力端において受取られたバイトのうちの選択されたものを抽出し、その選択されたバイトのみを自身の出力端へと渡すようにされ、前記回路はさらに、
ベースアドレスレジスタからワード長の内容を受取り、さらに、選択されたバイトを含むオフセットワードを、マルチプレクサの出力端から、オフセットワードの特定のビット位置で、受取るよう結合される加算器を含み、加算器は、アクセスされるべきメモリアドレスとして、受取った内容の出力合計を供給するようにされ、前記メモリアドレスにおけるアクセスされた記憶内容は、目的レジスタへとロード可能である、回路。 - ワード長は、4バイト長であり、マルチプレクサの制御入力は、抽出されるべき、4つのバイトのうちの1つを特定する2ビットの入力である、請求項1に記載の回路。
- マルチプレクサの出力端からの選択されたバイトを含む、オフセットワードの特定のビット位置は、バイトアドレシング可能なメモリにアクセスするのに適した、2ビット左にシフトされたオフセットに対応するビット位置[9:2]である、請求項1に記載の回路。
- マルチプレクサのバイト長の出力端に結合され、選択されたバイトを、自身の特定のビットの場所で、ロードするようにされるワード長の変位レジスタをさらに含み、変位レジスタからの内容の出力は、加算器へ提供されるオフセットワードを形成する、請求項1に記載の回路。
- 変位レジスタは、選択されたバイトをロードするようにされる特定のビット位置以外のすべてのビットの場所に、0を格納するようにされる、請求項4に記載の回路。
- 加算器は、インデックス付けされたアドレシング専用の別個の構成要素ではなく、マイクロプロセッサにおける中央処理装置の構成要素である、請求項1に記載の回路。
- インデックス付けされたアドレシングを用いてメモリへアクセスするよう、命令に応答して、マイクロプロセッサによって実行される方法であって、
あるワード長のレジスタを、インデックスレジスタ、ベースアドレスレジスタ、および目的レジスタとして特定し、インデックスレジスタ内においてパッキングされ、抽出されるべきバイトを特定するステップと、
特定されたバイトを、マルチプレクサを用いて、インデックスレジスタから抽出し、オフセットワードの特定のビット位置として、特定されたバイトを提供するステップと、
アクセスされるべきメモリアドレスとしての合計を得るよう、ベースアドレスレジスタからのワード長の内容に、オフセットワードを加えるステップと、
前記メモリアドレスにおける記憶内容にアクセスし、アクセスされた記憶内容を目的レジスタへとロードするステップとを含む、方法。 - ワード長は4バイト長であり、マルチプレクサは、インデックスレジスタ内においてパ
ッキングされる4つのバイトのうちのどれがマルチプレクサによって抽出されるのかを特定する2ビットの制御入力である、請求項7に記載の方法。 - 特定されたバイトを含む、オフセットワードの特定のビット位置は、ビット位置[9:2]であり、バイトアドレシング可能なメモリにアクセスするのに適した、2ビット左にシフトされたオフセットに対応する、請求項7に記載の方法。
- オフセットワードは、特定されたバイトを含む特定のビット位置以外のすべてのビット位置において、0を含む、請求項7に記載の方法。
- インデックスレジスタ、ベースアドレスレジスタ、および目的レジスタ、ならびにインデックスレジスタの特定されたバイトは、すべて、マイクロプロセッサが応答する抽出されたインデックス命令を用いたワードロードによって特定される、請求項7に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/140,750 US7243210B2 (en) | 2005-05-31 | 2005-05-31 | Extracted-index addressing of byte-addressable memories |
PCT/US2006/016162 WO2006130285A1 (en) | 2005-05-31 | 2006-04-27 | Extracted-index addressing of byte-addressable memories |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008542910A true JP2008542910A (ja) | 2008-11-27 |
Family
ID=37464821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008514648A Abandoned JP2008542910A (ja) | 2005-05-31 | 2006-04-27 | バイトアドレシング可能メモリの抽出されたインデックスアドレシング |
Country Status (7)
Country | Link |
---|---|
US (1) | US7243210B2 (ja) |
EP (1) | EP1891532A4 (ja) |
JP (1) | JP2008542910A (ja) |
KR (1) | KR20080017413A (ja) |
CN (1) | CN101189585A (ja) |
TW (1) | TW200710719A (ja) |
WO (1) | WO2006130285A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009514096A (ja) * | 2005-10-26 | 2009-04-02 | アナログ デバイシーズ インク | 参照テーブルアドレス指定システム及び方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024551B2 (en) | 2005-10-26 | 2011-09-20 | Analog Devices, Inc. | Pipelined digital signal processor |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
US8301990B2 (en) * | 2007-09-27 | 2012-10-30 | Analog Devices, Inc. | Programmable compute unit with internal register and bit FIFO for executing Viterbi code |
US7877571B2 (en) | 2007-11-20 | 2011-01-25 | Qualcomm, Incorporated | System and method of determining an address of an element within a table |
US10802990B2 (en) * | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
CN102263562B (zh) * | 2010-05-28 | 2014-02-05 | 安凯(广州)微电子技术有限公司 | 一种码流数据的读取移除方法和装置 |
WO2013054468A1 (ja) * | 2011-10-14 | 2013-04-18 | パナソニック株式会社 | 転置演算装置とその集積回路、および転置処理方法 |
US10013258B2 (en) * | 2014-09-29 | 2018-07-03 | International Business Machines Corporation | Single instruction array index computation |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
CN105892993B (zh) * | 2016-03-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于提取插入操作的重组方法、装置及微处理器 |
CN108268381B (zh) * | 2017-12-15 | 2021-12-24 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种安全实现数据快速寻址的方法 |
CN111209041B (zh) * | 2019-12-31 | 2022-05-17 | Oppo广东移动通信有限公司 | 神经网络处理器、片上系统及电子设备 |
CN114697402B (zh) * | 2020-12-29 | 2023-07-14 | 中移物联网有限公司 | 物联网协议序列化方法、装置及电子设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0382246A3 (en) * | 1989-02-09 | 1991-09-11 | Nec Corporation | Bit addressing system |
CA2045791A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Branch performance in high speed processor |
CA2045705A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
US5778423A (en) | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
CA2045789A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
CA2045790A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Branch prediction in high-performance processor |
US5193167A (en) | 1990-06-29 | 1993-03-09 | Digital Equipment Corporation | Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system |
US5509129A (en) | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
JPH1049369A (ja) * | 1996-08-07 | 1998-02-20 | Ricoh Co Ltd | データ処理装置 |
US6112293A (en) | 1997-11-17 | 2000-08-29 | Advanced Micro Devices, Inc. | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result |
US6378060B1 (en) | 1998-08-24 | 2002-04-23 | Microunity Systems Engineering, Inc. | System to implement a cross-bar switch of a broadband processor |
GB2352065B (en) * | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
US8452945B2 (en) * | 2002-09-17 | 2013-05-28 | Hewlett-Packard Development Company, L.P. | Indirect indexing instructions |
-
2005
- 2005-05-31 US US11/140,750 patent/US7243210B2/en active Active
-
2006
- 2006-04-27 EP EP06751727A patent/EP1891532A4/en not_active Withdrawn
- 2006-04-27 JP JP2008514648A patent/JP2008542910A/ja not_active Abandoned
- 2006-04-27 CN CNA2006800193169A patent/CN101189585A/zh active Pending
- 2006-04-27 KR KR1020077030873A patent/KR20080017413A/ko not_active Application Discontinuation
- 2006-04-27 WO PCT/US2006/016162 patent/WO2006130285A1/en active Application Filing
- 2006-05-18 TW TW095117652A patent/TW200710719A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009514096A (ja) * | 2005-10-26 | 2009-04-02 | アナログ デバイシーズ インク | 参照テーブルアドレス指定システム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1891532A1 (en) | 2008-02-27 |
CN101189585A (zh) | 2008-05-28 |
WO2006130285A1 (en) | 2006-12-07 |
WO2006130285A8 (en) | 2008-01-24 |
US7243210B2 (en) | 2007-07-10 |
US20060271763A1 (en) | 2006-11-30 |
KR20080017413A (ko) | 2008-02-26 |
TW200710719A (en) | 2007-03-16 |
EP1891532A4 (en) | 2009-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008542910A (ja) | バイトアドレシング可能メモリの抽出されたインデックスアドレシング | |
US20230297383A1 (en) | Method for performing random read access to a block of data using parallel lut read instruction in vector processors | |
USRE40883E1 (en) | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision | |
US6651160B1 (en) | Register set extension for compressed instruction set | |
TWI326841B (en) | Method apparatus and system using 3-byte escape opcodes to improve decoding for extended variable - length instructions | |
JPH11154114A (ja) | 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法 | |
JP4584673B2 (ja) | データ処理システム内部のテーブル検索操作 | |
US20200394038A1 (en) | Look up table with data element promotion | |
US11397583B2 (en) | Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor | |
EP2223204B1 (en) | System and method of determining an address of an element within a table | |
JP2005174292A (ja) | データシフト操作 | |
JP4955149B2 (ja) | ビットfifoを有するディジタル信号プロセッサ | |
CN106610817B (zh) | 用于采取vliw处理器中的相同执行数据包中的常数扩展槽指定或扩展常数位数的方法 | |
US20040199562A1 (en) | Efficient multiplication sequence for large integer operands wider than the multiplier hardware | |
US7941651B1 (en) | Method and apparatus for combining micro-operations to process immediate data | |
US7424597B2 (en) | Variable reordering (Mux) instructions for parallel table lookups from registers | |
US8452945B2 (en) | Indirect indexing instructions | |
US9577832B2 (en) | Generating a hash using S-box nonlinearizing of a remainder input | |
US9753725B2 (en) | Picoengine having a hash generator with remainder input S-box nonlinearizing | |
JP5311008B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
JP5263497B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
US7606997B1 (en) | Method and system for using one or more address bits and an instruction to increase an instruction set | |
JP2005293106A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20090424 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090527 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090527 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090605 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090605 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20100427 |