JP2017525046A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2017525046A5 JP2017525046A5 JP2017504804A JP2017504804A JP2017525046A5 JP 2017525046 A5 JP2017525046 A5 JP 2017525046A5 JP 2017504804 A JP2017504804 A JP 2017504804A JP 2017504804 A JP2017504804 A JP 2017504804A JP 2017525046 A5 JP2017525046 A5 JP 2017525046A5
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- variable length
- instruction
- data
- level
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims 2
- 238000000926 separation method Methods 0.000 claims 1
Claims (24)
- 可変長命令用バッファを管理する方法であって、
メモリから可変長命令データをキャッシングする工程と、
第一時間において、前記可変長命令用バッファ内で利用可能な未処理データのレベルが第一閾値を満たさないときに、キャッシュされた前記可変長命令データから固定幅の命令データの第一部分を前記可変長命令用バッファ内にロードする工程と、
分岐命令を処理する工程であって、該分岐命令は、分岐遅延サイズを示すヘッダを含む、工程と、
前記分岐命令が処理された後の第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たさないときに、キャッシュされた前記可変長命令データから前記固定幅の命令データの第二部分を前記可変長命令用バッファ内にロードする工程と、を含む方法。 - 前記可変長命令用バッファ内の未処理データから可変長の命令を分離する工程と、
分離された前記命令を出力する工程であって、分離された前記命令の出力は、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルを下げる、出力する工程を、さらに含む、請求項1に記載の方法。 - 分離された前記命令は、ベクトルプロセッサに出力される、請求項2に記載の方法。
- 前記可変長命令データのキャッシングは第一メモリロケーションからであり、前記分岐命令が該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項1から3のいずれか一項に記載の方法。
- 前記第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たすときに、前記第二メモリロケーションから前記可変長命令データをフェッチする工程をさらに含む、請求項4に記載の方法。
- 前記第一時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、キャッシュされた前記可変長命令データから前記固定幅の命令データの前記第一部分を前記可変長命令用バッファ内にロードしようと試みる前に、第一時間間隔待つ工程をさらに含む、請求項1から3のいずれか一項に記載の方法。
- 前記可変長命令用バッファ内で利用可能な未処理データの前記レベルは、指示なしで周期的に前記可変長命令用バッファによって報告される、請求項1から3のいずれか一項に記載の方法。
- 可変長の命令を管理するシステムであって、
メモリから可変長命令データを記憶するキャッシュと、
前記キャッシュからロードされたデータを可変長命令に分離するバッファであって、該バッファは前記キャッシュから固定幅のデータラインを受けて、該可変長命令を出力する、バッファと、
前記バッファ内の未処理データのレベルを決定し、追加データを前記バッファにロードするように前記キャッシュに指示するフェッチ部と、を含み、
前記フェッチ部は、
分岐命令が特定されたときに、該分岐命令のヘッダから分岐遅延サイズを決定し、
前記分岐命令が特定された後の第一時間において、前記バッファ内で利用可能な未処理データの前記レベルと前記分岐遅延サイズとを比較し、
分岐命令が特定されないときに、第二時間において、前記バッファ内で利用可能な未処理データの前記レベルと第一閾値とを比較する、
ことによって、前記追加データを前記バッファにロードするように前記キャッシュに指示するかどうかを決定する、システム。 - 前記キャッシュは、前記可変長命令データを第一メモリロケーションからロードし、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項8に記載のシステム。
- 前記フェッチ部は、前記第一時間において、前記バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たさないときに、前記追加データを前記バッファにロードするように前記キャッシュに指示する、請求項8に記載のシステム。
- 前記フェッチ部は、前記第二時間において、前記バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、前記追加データを前記バッファにロードするように前記キャッシュに指示するかどうかを決定する前に、第一時間間隔待つ、請求項10に記載のシステム。
- 前記バッファは、さらに、指示なしで周期的に前記バッファ内の未処理データの前記レベルを報告する、請求項8から11のいずれか一項に記載のシステム。
- 前記フェッチ部は、さらに、前記バッファ内の未処理データの前記レベルについて前記バッファに問い合わせる、請求項8から11のいずれか一項に記載のシステム。
- 少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
メモリから可変長命令データをキャッシングすることと、
分岐遅延サイズを示すヘッダを含む分岐命令に応答して、該分岐命令が処理された後の第一時間において、可変長命令用バッファ内で利用可能な未処理データのレベルが該分岐遅延サイズを満たさないときに、キャッシュされた前記可変長命令データから固定幅の命令データの第一部分を該可変長命令用バッファにロードすることと、
第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが第一閾値を満たさないときに、キャッシュされた前記可変長命令データから前記固定幅の命令データの第二部分を前記可変長命令用バッファにロードすることと、
を少なくとも行わせるコンピュータ読み取り可能な命令を含むコンピュータ読み取り可能メモリ。 - 前記命令は、実行されると、前記少なくとも1つのプロセッサに、
前記可変長命令用バッファ内の未処理データから可変長命令を分離することと、
分離された前記命令を出力することであって、分離された前記命令の出力は、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルを下げる、出力することと、
をさらに行わせる、請求項14に記載のコンピュータ読み取り可能メモリ。 - 前記可変長命令データは、第一メモリロケーションからキャッシュされ、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項14又は請求項15に記載のコンピュータ読み取り可能メモリ。
- 前記命令は、実行されると、前記少なくとも1つのプロセッサに、
前記第一時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たすときは、前記第二メモリロケーションから可変長命令データをフェッチすることをさらに行わせる、請求項16に記載のコンピュータ読み取り可能メモリ。 - 前記命令は、実行されると、前記プロセッサに、
キャッシュされた前記可変長命令データから前記固定幅の命令データの前記第二部分をロードしようと試みる前に、前記第二時間の後、第一時間間隔待つことをさらに行わせる、請求項14又は15に記載のコンピュータ読み取り可能メモリ。 - 前記可変長命令用バッファ内で利用可能な未処理データの前記レベルは、指示なしで前記可変長命令用バッファによって周期的に報告される、請求項14又は請求項15に記載のコンピュータ読み取り可能メモリ。
- 可変長命令用バッファを管理する装置であって、
メモリから可変長命令データをキャッシングする手段と、
ロードする手段と、を含み、
前記ロードする手段は、
分岐遅延サイズを示すヘッダを含む分岐命令に応答して、該分岐命令が処理された後の第一時間において、バッファ手段内で利用可能な未処理データのレベルが該分岐遅延サイズを満たさないときに、キャッシュされた固定幅の第一可変長命令データを該バッファ手段内にロードすることと、
第二時間において、前記バッファ手段内で利用可能な未処理データの前記レベルが第一閾値を満たさないときに、キャッシュされた前記固定幅の第二可変長命令データを前記バッファ手段内にロードすることと、
により、キャッシュされた可変長命令データを前記バッファ手段にロードする、装置。 - 前記バッファ手段は、
前記バッファ手段内の未処理データから可変長の命令を分離する手段と、
分離された前記命令を出力する手段であって、分離された前記命令の出力は、前記バッファ手段内で利用可能な未処理データの前記レベルを下げる、出力する手段と、を含む、請求項20に記載の装置。 - 前記可変長命令データは、第一メモリロケーションからキャッシュされ、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項20又は21に記載の装置。
- 前記分岐遅延サイズを満たし、前記第一時間において、前記バッファ手段内で利用可能な未処理データの前記レベルに基づいて、可変長命令データを前記第二メモリロケーションからフェッチする手段をさらに含む、請求項22に記載の装置。
- 前記ロードする手段は、前記第二時間において、前記バッファ手段内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、キャッシュされた前記固定幅の第二可変長命令データを前記バッファ手段内にロードしようと試みる前に、第一時間間隔待つ、請求項20又は21に記載の装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462030913P | 2014-07-30 | 2014-07-30 | |
US62/030,913 | 2014-07-30 | ||
US14/457,929 US10001993B2 (en) | 2013-08-08 | 2014-08-12 | Variable-length instruction buffer management |
US14/457,929 | 2014-08-12 | ||
PCT/IB2015/001805 WO2016016726A2 (en) | 2014-07-30 | 2015-07-27 | Vector processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019035945A Division JP2019109926A (ja) | 2014-07-30 | 2019-02-28 | ベクトルプロセッサ |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017525046A JP2017525046A (ja) | 2017-08-31 |
JP2017525046A5 true JP2017525046A5 (ja) | 2018-05-10 |
JP6491314B2 JP6491314B2 (ja) | 2019-03-27 |
Family
ID=54705661
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017504804A Active JP6491314B2 (ja) | 2014-07-30 | 2015-07-27 | ベクトルプロセッサ |
JP2019035945A Pending JP2019109926A (ja) | 2014-07-30 | 2019-02-28 | ベクトルプロセッサ |
JP2020217605A Pending JP2021061036A (ja) | 2014-07-30 | 2020-12-25 | ベクトルプロセッサ |
JP2022133738A Pending JP2022169703A (ja) | 2014-07-30 | 2022-08-25 | ベクトルプロセッサ |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019035945A Pending JP2019109926A (ja) | 2014-07-30 | 2019-02-28 | ベクトルプロセッサ |
JP2020217605A Pending JP2021061036A (ja) | 2014-07-30 | 2020-12-25 | ベクトルプロセッサ |
JP2022133738A Pending JP2022169703A (ja) | 2014-07-30 | 2022-08-25 | ベクトルプロセッサ |
Country Status (6)
Country | Link |
---|---|
EP (3) | EP3410294A1 (ja) |
JP (4) | JP6491314B2 (ja) |
KR (4) | KR102413501B1 (ja) |
CN (2) | CN110515658A (ja) |
BR (1) | BR112017001981B1 (ja) |
WO (1) | WO2016016726A2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
CN116501389B (zh) * | 2023-06-28 | 2023-09-01 | 睿思芯科(深圳)技术有限公司 | 指令缓冲单元、处理器及计算机系统 |
CN117348933B (zh) * | 2023-12-05 | 2024-02-06 | 睿思芯科(深圳)技术有限公司 | 一种处理器及计算机系统 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2209599A (en) | 1938-08-29 | 1940-07-30 | Filko John | Switch mechanism for motor vehicle signals |
JPS6334490B2 (ja) * | 1980-02-28 | 1988-07-11 | Intel Corp | |
US4626825A (en) * | 1985-07-02 | 1986-12-02 | Vlsi Technology, Inc. | Logarithmic conversion apparatus |
JPH06100970B2 (ja) * | 1988-03-24 | 1994-12-12 | 富士電機株式会社 | 演算制御装置 |
US5051885A (en) * | 1988-10-07 | 1991-09-24 | Hewlett-Packard Company | Data processing system for concurrent dispatch of instructions to multiple functional units |
SE9002558D0 (sv) * | 1990-08-02 | 1990-08-02 | Carlstedt Elektronik Ab | Processor |
US5689672A (en) * | 1993-10-29 | 1997-11-18 | Advanced Micro Devices, Inc. | Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions |
US5642305A (en) * | 1995-01-31 | 1997-06-24 | Motorola, Inc. | Logarithm/inverse-logarithm converter and method of using same |
JP3439033B2 (ja) * | 1996-07-08 | 2003-08-25 | 株式会社日立製作所 | 割り込み制御装置及びプロセッサ |
US5881260A (en) * | 1998-02-09 | 1999-03-09 | Hewlett-Packard Company | Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction |
AU2986099A (en) * | 1998-03-18 | 1999-10-11 | Qualcomm Incorporated | A digital signal processor |
US6247113B1 (en) * | 1998-05-27 | 2001-06-12 | Arm Limited | Coprocessor opcode division by data type |
US6182100B1 (en) * | 1998-06-30 | 2001-01-30 | International Business Machines Corporation | Method and system for performing a logarithmic estimation within a data processing system |
JP3123047B2 (ja) * | 1998-10-02 | 2001-01-09 | 日本電気株式会社 | マイクロプロセッサ |
US6366998B1 (en) * | 1998-10-14 | 2002-04-02 | Conexant Systems, Inc. | Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model |
US6480872B1 (en) * | 1999-01-21 | 2002-11-12 | Sandcraft, Inc. | Floating-point and integer multiply-add and multiply-accumulate |
US6412063B1 (en) * | 1999-04-02 | 2002-06-25 | Via-Cyrix, Inc. | Multiple-operand instruction in a two operand pipeline and processor employing the same |
US6523110B1 (en) * | 1999-07-23 | 2003-02-18 | International Business Machines Corporation | Decoupled fetch-execute engine with static branch prediction support |
GB0124882D0 (en) * | 2001-10-17 | 2001-12-05 | Koninkl Philips Electronics Nv | Improved variable length decoder |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7467287B1 (en) * | 2001-12-31 | 2008-12-16 | Apple Inc. | Method and apparatus for vector table look-up |
KR100718754B1 (ko) * | 2002-01-31 | 2007-05-15 | 에이알씨 인터내셔널 | 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서 |
JP3738842B2 (ja) * | 2002-06-04 | 2006-01-25 | 富士通株式会社 | 遅延分岐機能を備えた情報処理装置 |
US8966223B2 (en) * | 2005-05-05 | 2015-02-24 | Icera, Inc. | Apparatus and method for configurable processing |
US7568070B2 (en) * | 2005-07-29 | 2009-07-28 | Qualcomm Incorporated | Instruction cache having fixed number of variable length instructions |
US20070198815A1 (en) * | 2005-08-11 | 2007-08-23 | Coresonic Ab | Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit |
US7539717B2 (en) * | 2005-09-09 | 2009-05-26 | Via Technologies, Inc. | Logarithm processing systems and methods |
US20080040576A1 (en) * | 2006-08-09 | 2008-02-14 | Brian Michael Stempel | Associate Cached Branch Information with the Last Granularity of Branch instruction in Variable Length instruction Set |
JPWO2010067522A1 (ja) * | 2008-12-11 | 2012-05-17 | 日本電気株式会社 | 演算ユニット、プロセッサ及び並列演算方法 |
WO2010148166A1 (en) * | 2009-06-17 | 2010-12-23 | Coherent Logix, Incorporated | Parallel execution of trellis-based methods |
US8555034B2 (en) * | 2009-12-15 | 2013-10-08 | Oracle America, Inc. | Execution of variable width vector processing instructions |
JP5089713B2 (ja) * | 2010-01-18 | 2012-12-05 | シャープ株式会社 | 画像圧縮装置、圧縮画像出力装置、画像圧縮方法、コンピュータプログラム及び記録媒体 |
CN102270112A (zh) * | 2010-06-03 | 2011-12-07 | 边立剑 | Risc微处理器指令译码电路 |
JP5240270B2 (ja) * | 2010-10-12 | 2013-07-17 | 日本電気株式会社 | プロセッサ及びベクトルロード命令の実行方法 |
KR101699685B1 (ko) * | 2010-11-16 | 2017-01-26 | 삼성전자 주식회사 | 명령어 오퍼랜드 변경 장치 및 방법 |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
CN102662635A (zh) * | 2012-03-21 | 2012-09-12 | 清华大学 | 超长指令字变长指令实现方法及实现该方法的处理器 |
US20140289502A1 (en) * | 2013-03-19 | 2014-09-25 | Apple Inc. | Enhanced vector true/false predicate-generating instructions |
-
2015
- 2015-07-27 CN CN201910648783.7A patent/CN110515658A/zh active Pending
- 2015-07-27 KR KR1020217016084A patent/KR102413501B1/ko active IP Right Grant
- 2015-07-27 KR KR1020227021273A patent/KR102515720B1/ko active IP Right Grant
- 2015-07-27 KR KR1020207000089A patent/KR102259406B1/ko active IP Right Grant
- 2015-07-27 BR BR112017001981-7A patent/BR112017001981B1/pt active IP Right Grant
- 2015-07-27 EP EP18183679.2A patent/EP3410294A1/en not_active Withdrawn
- 2015-07-27 EP EP15801496.9A patent/EP3175355B1/en active Active
- 2015-07-27 EP EP22192673.6A patent/EP4116819A1/en active Pending
- 2015-07-27 KR KR1020177005792A patent/KR102063856B1/ko active IP Right Grant
- 2015-07-27 CN CN201580051186.6A patent/CN106796504B/zh active Active
- 2015-07-27 JP JP2017504804A patent/JP6491314B2/ja active Active
- 2015-07-27 WO PCT/IB2015/001805 patent/WO2016016726A2/en active Application Filing
-
2019
- 2019-02-28 JP JP2019035945A patent/JP2019109926A/ja active Pending
-
2020
- 2020-12-25 JP JP2020217605A patent/JP2021061036A/ja active Pending
-
2022
- 2022-08-25 JP JP2022133738A patent/JP2022169703A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018500710A5 (ja) | ||
JP2017525046A5 (ja) | ||
EP3355198A3 (en) | Runtime address disambiguation in acceleration hardware | |
RU2012130086A (ru) | Рабочие интерфейсы сенсорного экрана | |
EP4056927A3 (en) | Automated cryogenic storage system | |
FI3657339T3 (fi) | Datan tallentaminen välimuistiin | |
JP2015527681A5 (ja) | ||
EP1862907A3 (en) | Cache memory device and caching method | |
US9176887B2 (en) | Compressed level two block buffer metadata cache | |
JP2017520012A5 (ja) | ||
US20100013678A1 (en) | Method and apparatus for data decompression in the presence of memory hierarchies | |
EP3477405A3 (en) | Control device | |
TW200627271A (en) | Sharing monitored cache lines across multiple cores | |
JP2019532450A5 (ja) | ||
WO2012012396A3 (en) | Predictive query suggestion caching | |
JP2016511473A5 (ja) | ||
WO2010017077A3 (en) | Apparatus and methods for speculative interrupt vector prefetching | |
JP2012048540A5 (ja) | ||
EP2881830A3 (en) | Payload touchdown detection | |
EP2447829A3 (en) | Prefetch instruction | |
GB2581759A (en) | Completing coalesced global completion table entries in an out-of-order processor | |
EP2275927A2 (en) | Processor and instruction control method | |
JP2015534687A5 (ja) | ||
EP2980703A3 (en) | Instruction cache management based on temporal locality | |
MX2018014628A (es) | Estructura de memoria caché de varios niveles. |