JP2017525046A5 - - Google Patents

Download PDF

Info

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
Application number
JP2017504804A
Other languages
English (en)
Other versions
JP2017525046A (ja
JP6491314B2 (ja
Filing date
Publication date
Priority claimed from US14/457,929 external-priority patent/US10001993B2/en
Application filed filed Critical
Priority claimed from PCT/IB2015/001805 external-priority patent/WO2016016726A2/en
Publication of JP2017525046A publication Critical patent/JP2017525046A/ja
Publication of JP2017525046A5 publication Critical patent/JP2017525046A5/ja
Application granted granted Critical
Publication of JP6491314B2 publication Critical patent/JP6491314B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (24)

  1. 可変長命令用バッファを管理する方法であって、
    メモリから可変長命令データをキャッシングする工程と、
    第一時間において、前記可変長命令用バッファ内で利用可能な未処理データのレベルが第一閾値を満たさないときに、キャッシュされた前記可変長命令データから固定幅の命令データの第一部分を前記可変長命令用バッファ内にロードする工程と、
    分岐命令を処理する工程であって、該分岐命令は、分岐遅延サイズを示すヘッダを含む、工程と、
    前記分岐命令が処理された後の第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たさないときに、キャッシュされた前記可変長命令データから前記固定幅の命令データの第二部分を前記可変長命令用バッファ内にロードする工程と、を含む方法。
  2. 前記可変長命令用バッファ内の未処理データから可変長の命令を分離する工程と
    分離された前記命令を出力する工程であって分離された前記命令の出力は、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルを下げる、出力する工程を、さらに含む、請求項1に記載の方法。
  3. 分離された前記命令は、ベクトルプロセッサに出力される、請求項2に記載の方法。
  4. 前記可変長命令データのキャッシングは第一メモリロケーションからであり、前記分岐命令が該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項1から3のいずれか一項に記載の方法。
  5. 前記第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たすときに、前記第二メモリロケーションから前記可変長命令データをフェッチする工程をさらに含む、請求項4に記載の方法。
  6. 前記第一時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、キャッシュされた前記可変長命令データから前記固定幅の命令データの前記第一部分を前記可変長命令用バッファ内にロードしようと試みる前に、第一時間間隔待つ工程をさらに含む、請求項1から3のいずれか一項に記載の方法。
  7. 前記可変長命令用バッファ内で利用可能な未処理データの前記レベルは、指示なしで周期的に前記可変長命令用バッファによって報告される、請求項1から3のいずれか一項に記載の方法。
  8. 可変長の命令を管理するシステムであって、
    メモリから可変長命令データを記憶するキャッシュと、
    前記キャッシュからロードされたデータを可変長命令に分離するバッファであって、該バッファは前記キャッシュから固定のデータラインを受けて、可変長命令を出力する、バッファと、
    前記バッファ内の未処理データのレベルを決定し、追加データを前記バッファにロードするように前記キャッシュに指示するフェッチ部と、を含み、
    前記フェッチ部は、
    分岐命令が特定されたときに分岐命令ヘッダから分岐遅延サイズを決定し、
    前記分岐命令が特定されたの第一時間において、前記バッファ内で利用可能な未処理データの前記レベルと前記分岐遅延サイズとを比較し、
    分岐命令が特定されないときに、第二時間において、前記バッファ内で利用可能な未処理データの前記レベルと第一閾値とを比較する、
    ことによって、前記追加データを前記バッファにロードするように前記キャッシュに指示するかどうかを決定する、システム。
  9. 前記キャッシュは、前記可変長命令データを第一メモリロケーションからロードし、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項8に記載のシステム。
  10. 前記フェッチ部は、前記第一時間において、前記バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たさないときに、前記追加データを前記バッファにロードするように前記キャッシュに指示する、請求項8に記載のシステム。
  11. 前記フェッチ部は、前記第二時間において、前記バッファ内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、前記追加データを前記バッファにロードするように前記キャッシュに指示するかどうかを決定する前に、第一時間間隔待つ、請求項10に記載のシステム。
  12. 前記バッファは、さらに、指示なしで周期的に前記バッファ内の未処理データの前記レベルを報告する、請求項8から11のいずれか一項に記載のシステム。
  13. 前記フェッチ部は、さらに、前記バッファ内の未処理データの前記レベルについて前記バッファに問い合わせる、請求項8から11のいずれか一項に記載のシステム。
  14. 少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
    メモリから可変長命令データをキャッシングすることと、
    分岐遅延サイズを示すヘッダを含む分岐命令に応答して、該分岐命令が処理された後の第一時間において、可変長命令用バッファ内で利用可能な未処理データのレベルが該分岐遅延サイズを満たさないときに、キャッシュされた前記可変長命令データから固定幅の命令データの第一部分を該可変長命令用バッファにロードすることと、
    第二時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが第一閾値を満たさないときに、キャッシュされた前記可変長命令データから前記固定幅の命令データの第二部分を前記可変長命令用バッファにロードすることと、
    を少なくとも行わせるコンピュータ読み取り可能な命令を含むコンピュータ読み取り可能メモリ。
  15. 前記命令は、実行されると、前記少なくとも1つのプロセッサに、
    前記可変長命令用バッファ内の未処理データから可変長命令を分離することと、
    分離された前記命令を出力することであって、分離された前記命令の出力は、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルを下げる、出力することと、
    をさらに行わせる、請求項14に記載のコンピュータ読み取り可能メモリ。
  16. 前記可変長命令データは、第一メモリロケーションからキャッシュされ、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項14又は請求項15に記載のコンピュータ読み取り可能メモリ。
  17. 前記命令は、実行されると、前記少なくとも1つのプロセッサに、
    前記第一時間において、前記可変長命令用バッファ内で利用可能な未処理データの前記レベルが前記分岐遅延サイズを満たすときは、前記第二メモリロケーションから可変長命令データをフェッチすることをさらに行わせる、請求項16に記載のコンピュータ読み取り可能メモリ。
  18. 前記命令は、実行されると、前記プロセッサに、
    キャッシュされた前記可変長命令データから前記固定幅の命令データの前記第二部分をロードしようと試みる前に、前記第二時間の後、第一時間間隔待つことをさらに行わせる、請求項14又は15に記載のコンピュータ読み取り可能メモリ。
  19. 前記可変長命令用バッファ内で利用可能な未処理データの前記レベルは、指示なしで前記可変長命令用バッファによって周期的に報告される、請求項14又は請求項15に記載のコンピュータ読み取り可能メモリ。
  20. 可変長命令用バッファを管理する装置であって、
    メモリから可変長命令データをキャッシングする手段と、
    ロードする手段と、を含み、
    前記ロードする手段は、
    分岐遅延サイズを示すヘッダを含む分岐命令に応答して、該分岐命令が処理された後の第一時間において、バッファ手段内で利用可能な未処理データのレベルが該分岐遅延サイズを満たさないときに、キャッシュされた固定幅の第一可変長命令データを該バッファ手段内にロードすることと、
    第二時間において、前記バッファ手段内で利用可能な未処理データの前記レベルが第一閾値を満たさないときに、キャッシュされた前記固定幅の第二可変長命令データを前記バッファ手段内にロードすることと、
    により、キャッシュされた可変長命令データを前記バッファ手段にロードする、装置。
  21. 前記バッファ手段は、
    前記バッファ手段内の未処理データから可変長の命令を分離する手段と、
    分離された前記命令を出力する手段であって、分離された前記命令の出力は、前記バッファ手段内で利用可能な未処理データの前記レベルを下げる、出力する手段と、を含む、請求項20に記載の装置。
  22. 前記可変長命令データは、第一メモリロケーションからキャッシュされ、前記分岐命令は、該第一メモリロケーションとは異なる第二メモリロケーションを参照する、請求項20又は21に記載の装置。
  23. 前記分岐遅延サイズを満たし、前記第一時間において、前記バッファ手段内で利用可能な未処理データの前記レベルに基づいて、可変長命令データを前記第二メモリロケーションからフェッチする手段をさらに含む、請求項22に記載の装置。
  24. 前記ロードする手段は、前記第二時間において、前記バッファ手段内で利用可能な未処理データの前記レベルが前記第一閾値を満たすときは、キャッシュされた前記固定幅の第二可変長命令データを前記バッファ手段内にロードしようと試みる前に、第一時間間隔待つ、請求項20又は21に記載の装置。
JP2017504804A 2014-07-30 2015-07-27 ベクトルプロセッサ Active JP6491314B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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.