JP2018501554A - メモリにおけるデータにアクセスするための方法、システム、およびコンピュータ・プログラム製品 - Google Patents
メモリにおけるデータにアクセスするための方法、システム、およびコンピュータ・プログラム製品 Download PDFInfo
- Publication number
- JP2018501554A JP2018501554A JP2017526876A JP2017526876A JP2018501554A JP 2018501554 A JP2018501554 A JP 2018501554A JP 2017526876 A JP2017526876 A JP 2017526876A JP 2017526876 A JP2017526876 A JP 2017526876A JP 2018501554 A JP2018501554 A JP 2018501554A
- Authority
- JP
- Japan
- Prior art keywords
- size
- data
- memory
- address
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
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)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
Description
LHI R1, 16
XGR R3, R3
LOOP: LLH R2,0(R3,R4)
STH R2,0(R3,R5)
AGHI R3,2
BCT R1,LOOP
ここで、LHIはロード・ハーフワード・イミディエット(LOAD HALFWORD IMMEDIATE)命令であり、XGRは排他的OR(EXCLUSIVE OR)命令であり、LLHはロード論理ハーフワード(LOAD LOGICAL HALFWORD)命令であり、STHはストア・ハーフワード(STORE HALFWORD)命令であり、AGHIは加算ハーフワード・イミディエット(ADD HALFWORD IMMEDIATE)命令であり、BCTは分岐オン・カウント(BRANCH ON COUNT)命令であり、R1〜R5はレジスタである。これらの命令に関するより詳細な説明は、z/Architecture Principles of Operationに記述がある。
LHI R1, 4
XGR R3, R3
LOOP: LG R2,0(R3,R4)
STG R2,0(R3,R5)
AGHI R3,8
BCT R1,LOOP
LHI R1, 16
XGR R3, R3
LOOP: LLH R2,0(R3,R4)
STH R2,0(R3,R5)
AGHI R3,2
BCT R1,LOOP
このコピー・ループは、ベクトル・レジスタの2つのロードおよび2つのストアだけによって置き換えることが可能であり、66個の命令を実行することに対応する時間から、次の例4に示されているように、4つの命令を実行することに対応する時間に、実行時間を短縮する。
VL V1, 0(R4)
VST V1, 0(R5)
VL V1, 16(R4)
VST V1, 16(R5)
ここで、VLはベクトル・ロード(VECTOR LOAD)命令であり、VSTはベクトル・ストア(VECTOR STORE)命令であり、V1はベクトル・データ・タイプである。
LHI R1, 16
LH R7, R6
XGR R3, R3
LOOP: LLH R2,0(R3,R4)
AH R2, R6
STH R2,0(R3,R5)
AGHI R3,2
BCT R1,LOOP
ここで、LHはロード・ハーフワード(LOAD HALFWORD)命令であり、AHは加算ハーフワード(ADD HALFWORD)命令であり、R6およびR7はレジスタである。16個のハーフワードのこの加算ループは、ただ2つのベクトル加算で置き換えることが可能であり、その場合には、次の例6に示されるように、83個の命令を実行することに対応する時間から、7つの命令を実行することに対応する時間まで、実行時間が短縮される。
VLREPH V3, 0(R6)
VL V1, 0(R4)
VAH V1, V1, V3
VST V1, 0(R5)
VL V1, 16(R4)
VAH V1, V1, V3
VST V2, 16(R5)
ここで、VLREPHはベクトル・ロードおよび複製(VECTOR LOAD AND REPLICATE)命令、VAHはベクトル加算ハーフワード(VECTOR ADD HALFWORD)命令、V1〜V3はベクトルである。
LHI R1, 4
XGR R3, R3
LOOP: mLG R2,0(R3,R4)
mSTG R2,0(R3,R5)
AGHI R3,8
BCT R1,LOOP
いくつかの実施形態では、例7のこのコードは、レジスタR4およびR5に保持されているアドレスが少なくとも2のアドレス・アライメント・サイズに対応する場合の2バイトのブロック同時性と、1バイトの同時性とを与える。さらに、いくつかの実施形態では、このコードは、レジスタR4およびR5に保持されているアドレスが少なくとも4のアドレス・アライメント・サイズに対応する場合には、4バイトのブロック同時性を与える。さらに、いくつかの実施形態では、このコードは、レジスタR4およびR5に保持されているアドレスが少なくとも8のアドレス・アライメント・サイズに対応する場合には、8バイトのブロック同時性を与える。
LI R1, 4
MTCTR R1
XOR R3, R3, R3
LOOP: mLDX R2, R3,R4
mSTDX R2, R3,R5
ADDI R3, R3, 8
BDNZ LOOP
ここで、LIはロード・イミディエット(Load Immediate)命令であり、MTCTRはムーブ・ツー・カウント・レジスタ(Move To Count Register)命令であり、XORは排他的OR(Exclusive OR)命令であり、LDXはロード・ダブル・ワード(Load Double Word)命令であり、STDXはストア・ダブルワード・インデックスト(Store Doubleword Indexed)命令であり、ADDIは加算イミディエット(Add Immediate)命令であり、BDNZは分岐(Branch)命令であり、R1〜R5はレジスタである。
mVL V1, 0(R4)
mVST V1, 0(R5)
mVL V1, 16(R4)
mVST V1, 16(R5)
LI R1, 16
mLXVX V1, R0, R4
mSTXVX V1, R0, R5
mLXVX V1, R1, R4
mSTXVX V1, R1, R5
VLREPH V3, 0(R6)
mVL V1, 0(R4)
VAH V1, V1, V3
mVST V1, 0(R5)
mVL V1, 16(R4)
VAH V1, V1, V3
mVST V2, 16(R5)
Claims (26)
- プロセッサに結合されたメモリにおけるデータにアクセスするための方法であって、
前記メモリ中のあるアドレスにおける第1のサイズのデータにアクセスするためのメモリ参照命令を受け取るステップと、
前記プロセッサによって、前記アドレスのアライメント・サイズを決定するステップと、
ブロック同時的にデータの各グループにアクセスすることにより、データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記アライメント・サイズの倍数であるサイズを有する、前記ステップと、
を含む方法。 - 前記第1のサイズは前記決定されたアライメント・サイズよりも大きい、請求項1に記載の方法。
- 前記アライメント・サイズを決定する前記ステップは、バイナリ表現での前記アドレスにおける後置ゼロの個数を数えるステップを含む、請求項1に記載の方法。
- データの各グループは、予め定義された最大ブロック同時性サイズよりも大きくない、請求項1に記載の方法。
- 前記メモリ参照命令のオペコードに基づき前記第1のサイズを決定するステップをさらに含む、請求項1に記載の方法。
- データにアクセスするためのシステムであって、
メモリと、
プロセッサと、を備え、前記プロセッサは、
前記メモリ中のあるアドレスにおける第1のサイズのデータにアクセスするためのメモリ参照命令を受け取るステップと、
前記アドレスのアライメント・サイズを決定するステップと、
ブロック同時的にデータの各グループにアクセスすることにより、データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記アライメント・サイズの倍数であるサイズを有する、前記ステップと、
を含む方法を実行するように構成された、システム。 - 前記第1のサイズと前記決定されたアライメント・サイズとはバイト数としてのサイズであり、前記第1のサイズは2Aであり、前記決定されたアライメント・サイズは2Bであり、Aは、非負整数であるBよりも大きい整数である、請求項6に記載のシステム。
- 前記アライメント・サイズを決定する前記ステップは、バイナリ表現での前記アドレスにおける後置ゼロの個数を数えるステップを含む、請求項6に記載のシステム。
- データの各グループは、予め定義された最大ブロック同時性サイズよりも大きくない、請求項6に記載のシステム。
- 前記プロセッサはベクトル・プロセッサを含み、前記メモリ参照命令はベクトル命令を含む、請求項6に記載のシステム。
- データにアクセスするためのコンピュータ・プログラム製品であって、
マシン命令が具現化されているコンピュータ可読記憶媒体を備え、前記マシン命令は、プロセッサによって読み出し可能であり、前記プロセッサに、
メモリ中のあるアドレスにおける第1のサイズのデータにアクセスするためのメモリ参照命令を受け取るステップと、
前記アドレスのアライメント・サイズを決定するステップと、
ブロック同時的にデータの各グループにアクセスすることにより、データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記アライメント・サイズの倍数であるサイズを有する、前記ステップと、
を含む方法を実行させる、コンピュータ・プログラム製品。 - 前記第1のサイズは前記決定されたアライメント・サイズよりも大きい、請求項11に記載のコンピュータ・プログラム製品。
- 前記アライメント・サイズを決定する前記ステップは、バイナリ表現での前記アドレスにおける後置ゼロの個数を数えるステップを含む、請求項11に記載のコンピュータ・プログラム製品。
- データの各グループは、予め定義された最大ブロック同時性サイズよりも大きくない、請求項11に記載のコンピュータ・プログラム製品。
- 前記方法が、前記メモリ参照命令のオペコードに基づき前記第1のサイズを決定するステップをさらに含む、請求項11に記載のコンピュータ・プログラム製品。
- プロセッサに結合されたメモリにおけるデータにアクセスするための方法であって、
前記メモリ中のあるアドレスにおける第1のサイズのデータにアクセスするためのメモリ参照命令を受け取るステップであって、前記メモリ参照命令が前記第1のサイズを特定する、前記ステップと、
前記プロセッサによって、前記アドレスのアライメント・サイズを決定するステップと、
前記第1のサイズと前記決定されたアライメント・サイズとの最大公約数を決定するステップと、
データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記最大公約数のサイズの倍数であるサイズを有する、前記ステップと、
を含む方法。 - 前記第1のサイズは前記決定されたアライメント・サイズよりも大きい、請求項16に記載の方法。
- 前記第1のサイズと前記決定されたアライメント・サイズとはバイト数としてのサイズであり、前記第1のサイズは2の累乗のサイズではなく、前記決定されたアライメント・サイズは2の累乗のサイズである、請求項16に記載の方法。
- 前記メモリ参照命令のオペランドに基づき前記第1のサイズを決定するステップをさらに含む、請求項16に記載の方法。
- 前記第1のサイズの前記データにアクセスする前記ステップは、前記最大公約数が予め定義された最大ブロック同時性サイズよりも大きくないときに実行される、請求項16に記載の方法。
- データにアクセスするためのシステムであって、
メモリと、
プロセッサと、を備え、前記プロセッサは、
前記メモリ中のあるアドレスにおいて第1のサイズを有するデータ空間にアクセスするためのメモリ参照命令を受け取るステップであって、前記メモリ参照命令が、前記第1のサイズを特定する、前記ステップと、
前記アドレスのアライメント・サイズを決定するステップと、
前記第1のサイズと前記決定されたアライメント・サイズとの最大公約数を決定するステップと、
データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記最大公約数のサイズの倍数であるサイズを有する、前記ステップと、
を含む方法を実行するように構成された、システム。 - 前記第1のサイズは前記決定されたアライメント・サイズよりも大きい、請求項21に記載のシステム。
- 前記第1のサイズと前記決定されたアライメント・サイズとはバイト数としてのサイズであり、前記第1のサイズは2の累乗のサイズではなく、前記決定されたアライメント・サイズは2の累乗のサイズである、請求項21に記載のシステム。
- 前記方法が、前記メモリ参照命令のオペランドに基づき前記第1のサイズを決定するステップをさらに含む、請求項21に記載のシステム。
- 前記プロセッサはベクトル・プロセッサを含み、前記メモリ参照命令はベクトル命令を含む、請求項21に記載のシステム。
- データにアクセスするためのコンピュータ・プログラム製品であって、
マシン命令が具現化されているコンピュータ可読記憶媒体を備え、前記マシン命令は、プロセッサによって読み出し可能であり、前記プロセッサに、
メモリ中のあるアドレスにおいて第1のサイズを有するデータ空間にアクセスするためのメモリ参照命令を受け取るステップであって、前記メモリ参照命令が、前記第1のサイズを特定する、前記ステップと、
前記アドレスのアライメント・サイズを決定するステップと、
前記第1のサイズと前記決定されたアライメント・サイズとの最大公約数を決定するステップと、
データの1以上のグループ単位で前記第1のサイズの前記データにアクセスするステップであって、データの前記グループは、前記最大公約数のサイズの倍数であるサイズを有する、前記ステップと、
を含む方法を実行させる、コンピュータ・プログラム製品。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/560,486 | 2014-12-04 | ||
| US14/560,486 US9582413B2 (en) | 2014-12-04 | 2014-12-04 | Alignment based block concurrency for accessing memory |
| PCT/EP2015/075231 WO2016087138A1 (en) | 2014-12-04 | 2015-10-30 | Method for accessing data in a memory at an unaligned address |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018501554A true JP2018501554A (ja) | 2018-01-18 |
| JP6664105B2 JP6664105B2 (ja) | 2020-03-13 |
Family
ID=54366218
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017526876A Active JP6664105B2 (ja) | 2014-12-04 | 2015-10-30 | メモリにおけるデータにアクセスするための方法、システム、およびコンピュータ・プログラム |
Country Status (14)
| Country | Link |
|---|---|
| US (4) | US9582413B2 (ja) |
| EP (1) | EP3227773B1 (ja) |
| JP (1) | JP6664105B2 (ja) |
| KR (1) | KR101976296B1 (ja) |
| CN (1) | CN107003957B (ja) |
| AU (1) | AU2015357677B2 (ja) |
| BR (1) | BR112017011910B1 (ja) |
| CA (1) | CA2961708C (ja) |
| MX (1) | MX391160B (ja) |
| RU (1) | RU2675509C1 (ja) |
| SG (1) | SG11201701609VA (ja) |
| TW (1) | TWI607307B (ja) |
| WO (1) | WO2016087138A1 (ja) |
| ZA (1) | ZA201704122B (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9582413B2 (en) | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
| WO2019055738A1 (en) * | 2017-09-15 | 2019-03-21 | MIPS Tech, LLC | MEMORY ACCESS NOT ALIGNED |
| WO2020037542A1 (zh) * | 2018-08-22 | 2020-02-27 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
| FR3093571B1 (fr) * | 2019-03-08 | 2021-03-19 | Commissariat Energie Atomique | Procédé et dispositif de représentation en virgule flottante avec précision variable |
| US11036506B1 (en) * | 2019-12-11 | 2021-06-15 | Motorola Solutions, Inc. | Memory systems and methods for handling vector data |
| CN111338997B (zh) * | 2020-03-05 | 2021-07-20 | 苏州浪潮智能科技有限公司 | 一种arm服务器bios支持tcm通信的方法、装置、设备和介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060010304A1 (en) * | 2003-08-19 | 2006-01-12 | Stmicroelectronics Limited | Systems for loading unaligned words and methods of operating the same |
| JP2010529545A (ja) * | 2007-06-05 | 2010-08-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ割り当ての機構 |
| JP2011150712A (ja) * | 2005-02-17 | 2011-08-04 | Qualcomm Inc | 非アラインドメモリアクセス予測 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5386531A (en) | 1991-05-15 | 1995-01-31 | International Business Machines Corporation | Computer system accelerator for multi-word cross-boundary storage access |
| US6212601B1 (en) * | 1996-08-30 | 2001-04-03 | Texas Instruments Incorporated | Microprocessor system with block move circuit disposed between cache circuits |
| US6425020B1 (en) * | 1997-04-18 | 2002-07-23 | Cirrus Logic, Inc. | Systems and methods for passively transferring data across a selected single bus line independent of a control circuitry |
| US20100274988A1 (en) | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
| US6922658B2 (en) | 2003-03-31 | 2005-07-26 | International Business Machines Corporation | Method and system for testing the validity of shared data in a multiprocessing system |
| US7917734B2 (en) | 2003-06-30 | 2011-03-29 | Intel Corporation | Determining length of instruction with multiple byte escape code based on information from other than opcode byte |
| US7610466B2 (en) | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
| TWI227440B (en) | 2003-12-19 | 2005-02-01 | Sunplus Technology Co Ltd | Device and method using a processor to perform automatic alignment for data movement in memory |
| US7537286B2 (en) | 2004-06-28 | 2009-05-26 | Walker Brock M | Seat with adjustable support system |
| US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
| RU2281546C1 (ru) * | 2005-06-09 | 2006-08-10 | Бурцева Тамара Андреевна | Способ обработки информации на основе потока данных и устройство для его осуществления |
| US20070106883A1 (en) | 2005-11-07 | 2007-05-10 | Choquette Jack H | Efficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction |
| US8099538B2 (en) | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
| US7725659B2 (en) * | 2007-09-05 | 2010-05-25 | International Business Machines Corporation | Alignment of cache fetch return data relative to a thread |
| CN101290589B (zh) | 2007-12-27 | 2010-06-16 | 华为技术有限公司 | 一种并发指令操作方法和装置 |
| US20090282198A1 (en) * | 2008-05-08 | 2009-11-12 | Texas Instruments Incorporated | Systems and methods for optimizing buffer sharing between cache-incoherent cores |
| US8086801B2 (en) * | 2009-04-08 | 2011-12-27 | International Business Machines Corporation | Loading data to vector renamed register from across multiple cache lines |
| JP5381624B2 (ja) * | 2009-11-04 | 2014-01-08 | 富士通株式会社 | メモリ管理機能を有するプログラム及び装置 |
| US20110314263A1 (en) | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
| CN103946795B (zh) | 2011-12-14 | 2018-05-15 | 英特尔公司 | 用于生成循环对齐计数或循环对齐掩码的系统、装置和方法 |
| US9081503B2 (en) | 2012-02-16 | 2015-07-14 | Apple Inc. | Methods and systems for maintaining a storage volume with holes and filling holes |
| US9459867B2 (en) * | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
| US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
| US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
| US9582413B2 (en) | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
-
2014
- 2014-12-04 US US14/560,486 patent/US9582413B2/en active Active
-
2015
- 2015-03-30 TW TW104110339A patent/TWI607307B/zh active
- 2015-07-28 US US14/811,058 patent/US9904618B2/en active Active
- 2015-10-30 MX MX2017007060A patent/MX391160B/es unknown
- 2015-10-30 EP EP15788391.9A patent/EP3227773B1/en active Active
- 2015-10-30 CA CA2961708A patent/CA2961708C/en active Active
- 2015-10-30 SG SG11201701609VA patent/SG11201701609VA/en unknown
- 2015-10-30 JP JP2017526876A patent/JP6664105B2/ja active Active
- 2015-10-30 KR KR1020177014171A patent/KR101976296B1/ko active Active
- 2015-10-30 BR BR112017011910-2A patent/BR112017011910B1/pt active IP Right Grant
- 2015-10-30 WO PCT/EP2015/075231 patent/WO2016087138A1/en not_active Ceased
- 2015-10-30 CN CN201580065697.3A patent/CN107003957B/zh active Active
- 2015-10-30 AU AU2015357677A patent/AU2015357677B2/en active Active
- 2015-10-30 RU RU2017104137A patent/RU2675509C1/ru active
-
2017
- 2017-01-12 US US15/404,219 patent/US9910769B2/en active Active
- 2017-06-15 ZA ZA2017/04122A patent/ZA201704122B/en unknown
- 2017-11-21 US US15/819,405 patent/US10579514B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060010304A1 (en) * | 2003-08-19 | 2006-01-12 | Stmicroelectronics Limited | Systems for loading unaligned words and methods of operating the same |
| JP2011150712A (ja) * | 2005-02-17 | 2011-08-04 | Qualcomm Inc | 非アラインドメモリアクセス予測 |
| JP2010529545A (ja) * | 2007-06-05 | 2010-08-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ割り当ての機構 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20170073688A (ko) | 2017-06-28 |
| JP6664105B2 (ja) | 2020-03-13 |
| CN107003957A (zh) | 2017-08-01 |
| TWI607307B (zh) | 2017-12-01 |
| US20160162400A1 (en) | 2016-06-09 |
| CN107003957B (zh) | 2020-01-17 |
| ZA201704122B (en) | 2018-11-28 |
| US9582413B2 (en) | 2017-02-28 |
| RU2675509C1 (ru) | 2018-12-20 |
| BR112017011910B1 (pt) | 2023-04-04 |
| BR112017011910A2 (en) | 2018-01-16 |
| US9904618B2 (en) | 2018-02-27 |
| SG11201701609VA (en) | 2017-03-30 |
| US20170123967A1 (en) | 2017-05-04 |
| AU2015357677B2 (en) | 2018-11-08 |
| MX391160B (es) | 2025-03-21 |
| TW201621667A (zh) | 2016-06-16 |
| EP3227773B1 (en) | 2020-05-20 |
| CA2961708A1 (en) | 2016-06-09 |
| US9910769B2 (en) | 2018-03-06 |
| US10579514B2 (en) | 2020-03-03 |
| EP3227773A1 (en) | 2017-10-11 |
| MX2017007060A (es) | 2017-11-08 |
| US20180074950A1 (en) | 2018-03-15 |
| WO2016087138A1 (en) | 2016-06-09 |
| CA2961708C (en) | 2023-09-26 |
| KR101976296B1 (ko) | 2019-05-07 |
| US20160162401A1 (en) | 2016-06-09 |
| AU2015357677A1 (en) | 2017-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109213522B (zh) | 远程原子操作指令 | |
| KR102449616B1 (ko) | 벡터 요소 세트에 대해 축소 연산을 수행하기 위한 방법 및 장치 | |
| KR101703743B1 (ko) | 가속된 레인 간 벡터 감축 명령어들 | |
| JP6711480B2 (ja) | ベクトルインデックスロードおよびストアのための方法および装置 | |
| US10579514B2 (en) | Alignment based block concurrency for accessing memory | |
| KR101817459B1 (ko) | 1들을 최하위 비트들이 되도록 풀링하면서 비트들을 좌측으로 시프팅하기 위한 명령어 | |
| BR102013032654A2 (pt) | instruções e lógica para vetorizar laços condicionais | |
| KR101966713B1 (ko) | 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법 | |
| BR102014006231A2 (pt) | equipamento de processamento de instruções, método dentro de um processador, sistema para processar instruções e artigo de manufatura | |
| JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
| JP2018500652A (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 | |
| KR101624786B1 (ko) | 기입마스크 레지스터의 트레일링 최하위 마스킹 비트를 결정하는 시스템, 장치, 및 방법 | |
| BR102016012096A2 (pt) | Hardware apparatus to improve performance of state dependent computers | |
| JP2017513087A (ja) | 連続ソースエレメントを複数のマスクされていない結果エレメントにストアすると共に、複数のマスクされた結果エレメントに伝搬するプロセッサ、方法、システム、及び命令 | |
| JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
| KR102321941B1 (ko) | 스핀-루프 점프를 수행하기 위한 장치 및 방법 | |
| HK1237091A1 (en) | Method for accessing data in a memory at an unaligned address | |
| HK1237091B (zh) | 用於存取存儲器中在未對準的地址處的數據的方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170713 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180627 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190226 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190305 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190603 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190806 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20191007 |
|
| RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20191016 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20191017 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191211 |
|
| 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: 20200107 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20200108 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200131 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6664105 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |