KR20150027213A - Load store 재정렬 및 최적화를 구현하는 명령어 정의 - Google Patents
Load store 재정렬 및 최적화를 구현하는 명령어 정의 Download PDFInfo
- Publication number
- KR20150027213A KR20150027213A KR1020157000708A KR20157000708A KR20150027213A KR 20150027213 A KR20150027213 A KR 20150027213A KR 1020157000708 A KR1020157000708 A KR 1020157000708A KR 20157000708 A KR20157000708 A KR 20157000708A KR 20150027213 A KR20150027213 A KR 20150027213A
- Authority
- KR
- South Korea
- Prior art keywords
- load
- store
- address
- instructions
- instruction
- 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
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- 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
-
- 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
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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
- G06F9/3834—Maintaining memory consistency
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- 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
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
도 1은 본 발명의 하나의 실시예에 따른, load 큐(load queue) 및 store 큐(store queue)를 도시한 도면.
도 2는 본 발명의 하나의 실시예에 따른, load 및 store 명령어 분할(instruction splitting)의 제1 다이어그램을 도시한 도면.
도 3은 본 발명의 하나의 실시예에 따른, load 및 store 명령어 분할의 제2 다이어그램을 도시한 도면.
도 4는 본 발명의 하나의 실시예에 따른, load store 재정렬 및 최적화로부터 생기는 투기적 포워딩 예측 착오/오류로부터의 복원을 구현하는 규칙들이 나타내어져 있는 프로세스의 단계들의 플로우차트를 도시한 도면.
도 5는 본 발명의 하나의 실시예에 따른, 프로세스(300)의 규칙들이 프로세서의 load 큐 및 store 큐 자원들로 구현되는 방식을 나타낸 다이어그램을 도시한 도면.
도 6은 본 발명의 하나의 실시예에 따른, 프로세스(300)의 규칙들이 프로세서의 load 큐 및 store 큐 자원들로 구현되는 방식을 나타낸 다른 다이어그램을 도시한 도면.
도 7은 본 발명의 하나의 실시예에 따른, 프로세스(300)의 규칙들이 프로세서의 load 큐 및 store 큐 자원들로 구현되는 방식을 나타낸 다른 다이어그램을 도시한 도면.
도 8은 본 발명의 하나의 실시예에 따른, store가 load 이후에 디스패치되는 디스패치 기능의 개요의 프로세스의 플로우차트를 도시한 도면.
도 9는 본 발명의 하나의 실시예에 따른, load가 store 이후에 디스패치되는 디스패치 기능의 개요의 프로세스의 플로우차트를 도시한 도면.
도 10은 본 발명의 하나의 실시예에 따른, 통합된 load 큐(unified load queue)의 다이어그램을 도시한 도면.
도 11은 본 발명의 하나의 실시예에 따른, 슬라이딩 load 디스패치 윈도우(sliding load dispatch window)를 보여주는 통합된 load 큐를 도시한 도면.
도 12는 본 발명의 하나의 실시예에 따른, 분산된 load 큐(distributed load queue)를 도시한 도면.
도 13은 본 발명의 하나의 실시예에 따른, 순차 연속성 윈도우(in order continuity window)를 가지는 분산된 load 큐를 도시한 도면.
도 14는 본 발명의 하나의 실시예에 따른, 멀티코어 프로세서에 대한 프래그먼트화된 메모리 서브시스템(fragmented memory subsystem)의 다이어그램을 도시한 도면.
도 15는 본 발명의 실시예들에 의해 load 및 store가 어떻게 처리되는지의 다이어그램을 도시한 도면.
도 16은 본 발명의 하나의 실시예에 따른, store 필터링 알고리즘의 다이어그램을 도시한 도면.
도 17은 본 발명의 하나의 실시예에 따른, 메모리로부터 순차적으로 판독하는 load를 구성하는 메모리 일관성 모델에서의 비순차 load를 갖는 세마포어(semaphore) 구현을 도시한 도면.
도 18은 본 발명의 하나의 실시예에 따른, 로크 기반 모델(lock-based model) 및 트랜잭션 기반 모델(transaction-based model) 둘 다의 사용에 의해 메모리로부터 순차적으로 판독하는 load를 구성하는 메모리 일관성 모델로의 비순차 load를 도시한 도면.
도 19는 본 발명의 하나의 실시예에 따른, 멀티 코어 세그먼트화된 메모리 서브시스템의 복수의 코어들을 도시한 도면.
도 20은 본 발명의 하나의 실시예에 따른, store가 store 상위 서열(store seniority)에 기초하여 어느 한 스레드로부터 이용가능할 수 있는 경우 비동기적 코어들이 통합된 store 큐에 액세스하는 다이어그램을 도시한 도면.
도 21은 본 발명의 하나의 실시예에 따른, store가 다른 스레드에서의 대응하는 store보다 높은 서열을 가지는 경우의 기능을 나타낸 다이어그램을 도시한 도면.
도 22는 본 발명의 하나의 실시예에 따른, 비명확(non-disambiguated) 비순차 load store 큐 회수 구현(out of order load store queue retirement implementation)을 도시한 도면.
도 23은 본 발명의 하나의 실시예에 따른, 비명확화된 비순차 load store 큐 재정렬 구현(non-disambiguated out of order load store queue reordering implementation)의 재정렬 구현을 도시한 도면.
도 24는 본 발명의 하나의 실시예에 따른, 명령어 시퀀스(예컨대, 트레이스) 재정렬된 투기적 실행 구현(an instruction sequence (e.g., trace) reordered speculative execution implementation)을 도시한 도면.
도 25는 본 발명의 하나의 실시예에 따른, 한 예시적인 마이크로프로세서 파이프라인의 다이어그램을 도시한 도면.
Claims (26)
- 비순차 프로세서(out of order processor)에서 store 명령어들로부터 대응하는 load 명령어로 데이터를 포워딩하는 방법으로서,
들어오는 명령어들의 시퀀스에 액세스하는 단계;
상기 명령어들의 시퀀스 중에서, store 명령어들을 store address 명령어와 store data 명령어로 분할하는 단계 - 상기 store address는 주소 계산 및 페치를 수행하고, 상기 store data는 레지스터 내용들의 메모리 주소로의 로드를 수행함 -;
상기 명령어들의 시퀀스 중에서, load 명령어들을 load address 명령어와 load data 명령어로 분할하는 단계 - 상기 load address는 주소 계산 및 페치를 수행하고, 상기 load data는 메모리 주소 내용들의 레지스터로의 로드를 수행함 -; 및
상기 load들 및 상기 store들의 보다 빠른 디스패치 및 실행을 가능하게 하기 위해 상기 명령어 시퀀스에서 보다 빨리 그리고 LD/SD로부터 더 멀리 떨어지게 상기 store address 및 load address 명령어들을 재정렬하는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 매크로 명령어들이고 매크로 명령어 컨텍스트(macro instruction context)로 재정렬되는, 방법.
- 제1항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 마이크로 명령어들이고 마이크로 명령어 컨텍스트(micro instruction context)로 재정렬되는, 방법.
- 제1항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 런타임 최적화기(runtime optimizer)가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하는, 방법.
- 제1항에 있어서, 상기 store들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하는, 방법.
- 제1항에 있어서, load address와 대응하는 load data 사이의 윈도우(window)에 있는 이전의 store와의 엘리어싱(aliasing)이 있는 경우, load data 명령어가 재발행될 수 있는, 방법.
- 제1항에 있어서, 대응하는 load data가 다시 시작하기를 기다리는 일 없이 load address 및 fetch 명령어가 상기 프로세서의 기계 회수 윈도우(machine retirement window)로부터 회수될 수 있는, 방법.
- 제1항에 있어서, 상기 store address, store data, load address, 및 load data는 명령어 프리픽스(instruction prefix)들과 컴패니언 서픽스 명령어(companion suffix instruction)의 조합으로 구현되는, 방법.
- 마이크로프로세서로서,
load store 버퍼에 결합된 코어를 포함하고, 상기 load store 버퍼는
들어오는 명령어들의 시퀀스에 액세스하는 단계;
상기 명령어들의 시퀀스 중에서, store 명령어들을 store address 명령어와 store data 명령어로 분할하는 단계 - 상기 store address는 주소 계산 및 페치를 수행하고, 상기 store data는 레지스터 내용들의 메모리 주소로의 로드를 수행함 -;
상기 명령어들의 시퀀스 중에서, load 명령어들을 load address 명령어와 load data 명령어로 분할하는 단계 - 상기 load address는 주소 계산 및 페치를 수행하고, 상기 load data는 메모리 주소 내용들의 레지스터로의 로드를 수행함 -; 및
디스패치 및 실행을 위해 프로세서 자원들에 따라 상기 store address, store data, load address 및 load data 명령어들을 재정렬하는 단계에 의해, 비순차 프로세서에서 store 명령어들로부터 대응하는 load 명령어로 데이터를 포워딩하는 방법을 구현하는, 마이크로프로세서. - 제9항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 매크로 명령어들이고 매크로 명령어 컨텍스트로 재정렬되는, 마이크로프로세서.
- 제9항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 마이크로 명령어들이고 마이크로 명령어 컨텍스트로 재정렬되는, 마이크로프로세서.
- 제9항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하는, 마이크로프로세서.
- 제9항에 있어서, 상기 store들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하는, 마이크로프로세서.
- 제9항에 있어서, load address와 대응하는 load data 사이의 윈도우에 있는 이전의 store와의 엘리어싱이 있는 경우, load data 명령어가 재발행될 수 있는, 마이크로프로세서.
- 제9항에 있어서, 대응하는 load data가 다시 시작하기를 기다리는 일 없이 load address 및 fetch 명령어가 상기 프로세서의 기계 회수 윈도우로부터 회수될 수 있는, 마이크로프로세서.
- 제9항에 있어서, 상기 store address, store data, load address, 및 load data는 명령어 프리픽스들과 컴패니언 서픽스 명령어의 조합으로 구현되는, 마이크로프로세서.
- 컴퓨터 시스템으로서,
코어 및 load store 버퍼를 가지는 마이크로프로세서를 포함하고, 상기 load store 버퍼는
들어오는 명령어들의 시퀀스에 액세스하는 단계;
상기 명령어들의 시퀀스 중에서, store 명령어들을 store address 명령어와 store data 명령어로 분할하는 단계 - 상기 store address는 주소 계산 및 페치를 수행하고, 상기 store data는 레지스터 내용들의 메모리 주소로의 로드를 수행함 -;
상기 명령어들의 시퀀스 중에서, load 명령어들을 load address 명령어와 load data 명령어로 분할하는 단계 - 상기 load address는 주소 계산 및 페치를 수행하고, 상기 load data는 메모리 주소 내용들의 레지스터로의 로드를 수행함 -; 및
디스패치 및 실행을 위해 프로세서 자원들에 따라 상기 store address, store data, load address 및 load data 명령어들을 재정렬하는 단계에 의해, 비순차 프로세서에서 store 명령어들로부터 대응하는 load 명령어로 데이터를 포워딩하는 방법을 구현하는, 컴퓨터 시스템. - 제17항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 매크로 명령어들이고 매크로 명령어 컨텍스트로 재정렬되는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 store address, store data, load address 및 load data 명령어들은 마이크로 명령어들이고 마이크로 명령어 컨텍스트로 재정렬되는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하고, 상기 store들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하고 QID 번호를 사용함으로써 상기 2개의 명령어들을 링크시킬 수 있게 하는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하고 명령어 주소 오프셋을 사용함으로써 상기 2개의 명령어들을 링크시킬 수 있게 하는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 load들의 2개의 명령어들로의 분할은 상기 2개의 명령어들 간의 ID 링크를 사용하여 태깅될 수 있는 상기 2개의 명령어들에 대한 고정 기억기(fixed storage)를 사용함으로써 구현되고, 상기 ID 링크는 QID 번호인, 컴퓨터 시스템.
- 제17항에 있어서, 상기 store들의 2개의 명령어들로의 분할은 런타임 최적화기가 상기 주소 계산 및 페치를 상기 명령어 시퀀스 내에서 보다 빨리 스케줄링할 수 있게 하고 명령어 주소 오프셋을 사용함으로써 상기 2개의 명령어들을 링크시킬 수 있게 하는, 컴퓨터 시스템.
- 제17항에 있어서, 상기 store들의 2개의 명령어들로의 분할은 상기 2개의 명령어들 간의 ID 링크를 사용하여 태깅될 수 있는 상기 2개의 명령어들에 대한 고정 기억기를 사용함으로써 구현되고, 상기 ID 링크는 QID 번호인, 컴퓨터 시스템.
- 제25항에 있어서, load 명령어의 load address 및 load data로의 분할을 생성하기 위해, 상기 load address는 0과 같지 않은 QID를 가질 것이고 상기 load address는 분할된 load address/load data 쌍을 생성하기 위해 동일한 QID로 인스턴스화(instantiate)될 것인, 컴퓨터 시스템.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261660610P | 2012-06-15 | 2012-06-15 | |
| US61/660,610 | 2012-06-15 | ||
| PCT/US2013/045722 WO2013188696A2 (en) | 2012-06-15 | 2013-06-13 | An instruction definition to implement load store reordering and optimization |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187002906A Division KR101993562B1 (ko) | 2012-06-15 | 2013-06-13 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20150027213A true KR20150027213A (ko) | 2015-03-11 |
| KR101826399B1 KR101826399B1 (ko) | 2018-02-06 |
Family
ID=49758899
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020157000708A Expired - Fee Related KR101826399B1 (ko) | 2012-06-15 | 2013-06-13 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
| KR1020187002906A Active KR101993562B1 (ko) | 2012-06-15 | 2013-06-13 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187002906A Active KR101993562B1 (ko) | 2012-06-15 | 2013-06-13 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US9990198B2 (ko) |
| EP (1) | EP2862069A4 (ko) |
| KR (2) | KR101826399B1 (ko) |
| CN (1) | CN104583956B (ko) |
| TW (2) | TWI636399B (ko) |
| WO (1) | WO2013188696A2 (ko) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9733909B2 (en) * | 2014-07-25 | 2017-08-15 | Intel Corporation | System converter that implements a reordering process through JIT (just in time) optimization that ensures loads do not dispatch ahead of other loads that are to the same address |
| US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
| US9483409B2 (en) | 2015-02-05 | 2016-11-01 | International Business Machines Corporation | Store forwarding cache |
| CN114546492A (zh) * | 2015-04-24 | 2022-05-27 | 优创半导体科技有限公司 | 使用目标寄存器实现虚拟地址的预转换的计算机处理器 |
| TWI702499B (zh) * | 2018-08-20 | 2020-08-21 | 慧榮科技股份有限公司 | 儲存裝置及快取區定址方法 |
| CN110851372B (zh) | 2018-08-20 | 2023-10-31 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
| CN110851073B (zh) | 2018-08-20 | 2023-06-02 | 慧荣科技股份有限公司 | 储存装置及巨集指令的执行方法 |
| US10831503B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Saving and restoring machine state between multiple executions of an instruction |
| US12393399B2 (en) | 2018-11-06 | 2025-08-19 | International Business Machines Corporation | Controlling storage accesses for merge operations |
| US10831478B2 (en) | 2018-11-06 | 2020-11-10 | International Business Machines Corporation | Sort and merge instruction for a general-purpose processor |
| US10996952B2 (en) * | 2018-12-10 | 2021-05-04 | SiFive, Inc. | Macro-op fusion |
| CN111752614B (zh) | 2019-03-27 | 2025-01-14 | 阿里巴巴集团控股有限公司 | 一种处理器、指令执行设备及方法 |
| CN111857826B (zh) * | 2020-07-24 | 2025-07-25 | 上海兆芯集成电路股份有限公司 | 指令执行方法及指令执行装置 |
| CN113127064B (zh) * | 2019-12-31 | 2025-02-14 | 深圳云天励飞技术有限公司 | 一种并发调度和执行时序数据的方法及相关装置 |
| CN116841614B (zh) * | 2023-05-29 | 2024-03-15 | 进迭时空(杭州)科技有限公司 | 乱序访存机制下的顺序向量调度方法 |
Family Cites Families (158)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4342080A (en) * | 1978-11-08 | 1982-07-27 | Data General Corporation | Computer with microcode generator system |
| US5487156A (en) | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
| EP0543560B1 (en) | 1991-11-19 | 1999-12-22 | Sun Microsystems, Inc. | Arbitrating multiprocessor accesses to shared resources |
| US5367656A (en) | 1992-03-13 | 1994-11-22 | Bull Hn Information Systems Inc. | Controlling cache predictive prefetching based on cache hit ratio trend |
| US5553266A (en) | 1992-04-24 | 1996-09-03 | Digital Equipment Corporation | Update vs. invalidate policy for a snoopy bus protocol |
| US5319766A (en) | 1992-04-24 | 1994-06-07 | Digital Equipment Corporation | Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system |
| US5788245A (en) | 1993-11-30 | 1998-08-04 | Sega Enterprises, Ltd. | Game machine for playing ball throw and method of adjusting target behavior in the same |
| US5778245A (en) | 1994-03-01 | 1998-07-07 | Intel Corporation | Method and apparatus for dynamic allocation of multiple buffers in a processor |
| US5553265A (en) | 1994-10-21 | 1996-09-03 | International Business Machines Corporation | Methods and system for merging data during cache checking and write-back cycles for memory reads and writes |
| US6006324A (en) | 1995-01-25 | 1999-12-21 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
| US5751983A (en) | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
| US6298435B1 (en) | 1996-04-16 | 2001-10-02 | International Business Machines Corporation | Methods and apparatus for exploiting virtual buffers to increase instruction parallelism in a pipelined processor |
| US5958042A (en) * | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
| US5748987A (en) | 1996-06-25 | 1998-05-05 | Photo Dimensions | Producing smoothly blended double exposure composite images |
| DE69638271D1 (de) | 1996-07-16 | 2010-11-18 | Globalfoundries Inc | Ladespeichereinheit und verfahren zur blockierungfreien beendigung von ladebefehlen in einem superskalaren mikroprozessor |
| US6163838A (en) | 1996-11-13 | 2000-12-19 | Intel Corporation | Computer processor with a replay system |
| US6021485A (en) | 1997-04-10 | 2000-02-01 | International Business Machines Corporation | Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching |
| US5943686A (en) | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Multiple cache directories for non-arbitration concurrent accessing of a cache memory |
| US6006326A (en) | 1997-06-25 | 1999-12-21 | Sun Microsystems, Inc. | Apparatus for restraining over-eager load boosting in an out-of-order machine using a memory disambiguation buffer for determining dependencies |
| US6058472A (en) | 1997-06-25 | 2000-05-02 | Sun Microsystems, Inc. | Apparatus for maintaining program correctness while allowing loads to be boosted past stores in an out-of-order machine |
| US6157988A (en) * | 1997-08-01 | 2000-12-05 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
| US6185660B1 (en) | 1997-09-23 | 2001-02-06 | Hewlett-Packard Company | Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss |
| CN1111297C (zh) | 1998-07-15 | 2003-06-11 | 北京多思科技工业园股份有限公司 | 指令控制排序方法及其装置 |
| US6397306B2 (en) | 1998-10-23 | 2002-05-28 | Alcatel Internetworking, Inc. | Per memory atomic access for distributed memory multiprocessor architecture |
| US6385708B1 (en) | 1998-11-16 | 2002-05-07 | Infineon Technologies Ag | Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses |
| US6487639B1 (en) | 1999-01-19 | 2002-11-26 | International Business Machines Corporation | Data cache miss lookaside buffer and method thereof |
| US6738896B1 (en) | 1999-02-01 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Method and apparatus for determining availability of a queue which allows random insertion |
| US6336168B1 (en) * | 1999-02-26 | 2002-01-01 | International Business Machines Corporation | System and method for merging multiple outstanding load miss instructions |
| US6470444B1 (en) * | 1999-06-16 | 2002-10-22 | Intel Corporation | Method and apparatus for dividing a store operation into pre-fetch and store micro-operations |
| US6591342B1 (en) | 1999-12-14 | 2003-07-08 | Intel Corporation | Memory disambiguation for large instruction windows |
| US6694421B2 (en) | 1999-12-29 | 2004-02-17 | Intel Corporation | Cache memory bank access prediction |
| US6484254B1 (en) | 1999-12-30 | 2002-11-19 | Intel Corporation | Method, apparatus, and system for maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses |
| US6651161B1 (en) | 2000-01-03 | 2003-11-18 | Advanced Micro Devices, Inc. | Store load forward predictor untraining |
| US8266367B2 (en) | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
| JP2003524248A (ja) | 2000-02-25 | 2003-08-12 | サン・マイクロシステムズ・インコーポレイテッド | アトミック操作中のキャッシュ・データ追出し防止及び高スヌープ・トラフイック処理能力を維持する方法およびその装置 |
| US6598122B2 (en) | 2000-04-19 | 2003-07-22 | Hewlett-Packard Development Company, L.P. | Active load address buffer |
| US6631460B1 (en) * | 2000-04-27 | 2003-10-07 | Institute For The Development Of Emerging Architectures, L.L.C. | Advanced load address table entry invalidation based on register address wraparound |
| US6463511B2 (en) | 2000-12-29 | 2002-10-08 | Intel Corporation | System and method for high performance execution of locked memory instructions in a system with distributed memory and a restrictive memory model |
| JP3497832B2 (ja) | 2001-03-28 | 2004-02-16 | 株式会社半導体理工学研究センター | ロード・ストアキュー |
| US20020188817A1 (en) * | 2001-06-08 | 2002-12-12 | Norden Erik K. | Store buffer pipeline |
| JP4050225B2 (ja) | 2001-06-26 | 2008-02-20 | サン・マイクロシステムズ・インコーポレイテッド | マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置 |
| US7752423B2 (en) | 2001-06-28 | 2010-07-06 | Intel Corporation | Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor |
| US7406690B2 (en) | 2001-09-26 | 2008-07-29 | International Business Machines Corporation | Flow lookahead in an ordered semaphore management subsystem |
| US20030065909A1 (en) | 2001-09-28 | 2003-04-03 | Jourdan Stephan J. | Deferral of dependent loads until after execution of colliding stores |
| US6708879B2 (en) | 2001-11-16 | 2004-03-23 | Audio Visual Services Corporation | Automated unmanned rental system and method |
| JP3727887B2 (ja) | 2002-02-19 | 2005-12-21 | 富士通株式会社 | マルチスレッドプロセッサにおける共有レジスタファイル制御方式 |
| US20030172198A1 (en) | 2002-02-21 | 2003-09-11 | Ashutosh Tiwary | Workload playback for a system for performance testing of N-tiered computer systems using recording and playback of workloads |
| US6782461B2 (en) | 2002-02-25 | 2004-08-24 | Intel Corporation | Dynamically adjustable load-sharing circular queues |
| US6883086B2 (en) | 2002-03-06 | 2005-04-19 | Intel Corporation | Repair of mis-predicted load values |
| US20030208665A1 (en) | 2002-05-01 | 2003-11-06 | Jih-Kwon Peir | Reducing data speculation penalty with early cache hit/miss prediction |
| US7181598B2 (en) | 2002-05-17 | 2007-02-20 | Intel Corporation | Prediction of load-store dependencies in a processing agent |
| US6920546B2 (en) * | 2002-08-13 | 2005-07-19 | Intel Corporation | Fusion of processor micro-operations |
| US6957305B2 (en) | 2002-08-29 | 2005-10-18 | International Business Machines Corporation | Data streaming mechanism in a microprocessor |
| US7062636B2 (en) * | 2002-09-19 | 2006-06-13 | Intel Corporation | Ordering scheme with architectural operation decomposed into result producing speculative micro-operation and exception producing architectural micro-operation |
| US6889311B2 (en) * | 2002-11-22 | 2005-05-03 | Texas Instruments Incorporated | Pipeline stage single cycle sliding alignment correction of memory read data with integrated data reordering for load and store instructions |
| US6986010B2 (en) | 2002-12-13 | 2006-01-10 | Intel Corporation | Cache lock mechanism with speculative allocation |
| US20040123078A1 (en) | 2002-12-24 | 2004-06-24 | Hum Herbert H | Method and apparatus for processing a load-lock instruction using a scoreboard mechanism |
| US7080209B2 (en) | 2002-12-24 | 2006-07-18 | Intel Corporation | Method and apparatus for processing a load-lock instruction using a relaxed lock protocol |
| US7114042B2 (en) | 2003-05-22 | 2006-09-26 | International Business Machines Corporation | Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment |
| US7680990B2 (en) | 2003-05-30 | 2010-03-16 | Hewlett-Packard Development Company, L.P. | Superword memory-access instructions for data processor |
| US7698539B1 (en) | 2003-07-16 | 2010-04-13 | Banning John P | System and method of instruction modification |
| US7284097B2 (en) | 2003-09-30 | 2007-10-16 | International Business Machines Corporation | Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes |
| US20050097304A1 (en) | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Pipeline recirculation for data misprediction in a fast-load data cache |
| US7640419B2 (en) | 2003-12-23 | 2009-12-29 | Intel Corporation | Method for and a trailing store buffer for use in memory renaming |
| US7343477B1 (en) * | 2003-12-29 | 2008-03-11 | Sun Microsystems, Inc. | Efficient read after write bypass |
| US7174428B2 (en) | 2003-12-29 | 2007-02-06 | Intel Corporation | Method and system for transforming memory location references in instructions |
| US8301844B2 (en) | 2004-01-13 | 2012-10-30 | Hewlett-Packard Development Company, L.P. | Consistency evaluation of program execution across at least one memory barrier |
| US20050228971A1 (en) | 2004-04-08 | 2005-10-13 | Samra Nicholas G | Buffer virtualization |
| US7340567B1 (en) | 2004-04-14 | 2008-03-04 | Sun Microsystems, Inc. | Value prediction for missing read operations instances |
| US8607241B2 (en) | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
| US7703098B1 (en) | 2004-07-20 | 2010-04-20 | Sun Microsystems, Inc. | Technique to allow a first transaction to wait on condition that affects its working set |
| JP4520788B2 (ja) | 2004-07-29 | 2010-08-11 | 富士通株式会社 | マルチスレッドプロセッサ |
| US20060026371A1 (en) | 2004-07-30 | 2006-02-02 | Chrysos George Z | Method and apparatus for implementing memory order models with order vectors |
| US7606998B2 (en) | 2004-09-10 | 2009-10-20 | Cavium Networks, Inc. | Store instruction ordering for multi-core processor |
| US7315926B2 (en) | 2004-09-21 | 2008-01-01 | Emc Corporation | Lock management for concurrent access to a single file from multiple data mover computers |
| US7373462B2 (en) | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
| US7392351B2 (en) | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
| US7380071B2 (en) | 2005-03-29 | 2008-05-27 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
| US7502895B2 (en) | 2005-09-13 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | Techniques for reducing castouts in a snoop filter |
| US7533242B1 (en) * | 2005-10-31 | 2009-05-12 | Sun Microsystems, Inc. | Prefetch hardware efficiency via prefetch hint instructions |
| US7506132B2 (en) | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
| US20070180158A1 (en) | 2006-02-01 | 2007-08-02 | International Business Machines Corporation | Method for command list ordering after multiple cache misses |
| US7721071B2 (en) | 2006-02-28 | 2010-05-18 | Mips Technologies, Inc. | System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor |
| US7590825B2 (en) | 2006-03-07 | 2009-09-15 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
| US20070234014A1 (en) | 2006-03-28 | 2007-10-04 | Ryotaro Kobayashi | Processor apparatus for executing instructions with local slack prediction of instructions and processing method therefor |
| WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
| US20070260754A1 (en) * | 2006-04-13 | 2007-11-08 | Irish John D | Hardware Assisted Exception for Software Miss Handling of an I/O Address Translation Cache Miss |
| CN101449250B (zh) | 2006-05-30 | 2011-11-16 | 英特尔公司 | 用于高速缓存一致性协议的方法、装置及系统 |
| US20070288725A1 (en) | 2006-06-07 | 2007-12-13 | Luick David A | A Fast and Inexpensive Store-Load Conflict Scheduling and Forwarding Mechanism |
| US20070288694A1 (en) | 2006-06-13 | 2007-12-13 | Sanjeev Ghai | Data processing system, processor and method of data processing having controllable store gather windows |
| US7581068B2 (en) | 2006-06-29 | 2009-08-25 | Intel Corporation | Exclusive ownership snoop filter |
| US9262326B2 (en) | 2006-08-14 | 2016-02-16 | Qualcomm Incorporated | Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem |
| US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
| US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
| US7600098B1 (en) | 2006-09-29 | 2009-10-06 | Sun Microsystems, Inc. | Method and system for efficient implementation of very large store buffer |
| CN101627365B (zh) | 2006-11-14 | 2017-03-29 | 索夫特机械公司 | 多线程架构 |
| US7752613B2 (en) | 2006-12-05 | 2010-07-06 | Intel Corporation | Disambiguation in dynamic binary translation |
| TW200837568A (en) | 2006-12-20 | 2008-09-16 | Sandisk Il Ltd | Apparatus, method and computer readable medium for disambiguating commands with respect to logical protocols |
| US20080183972A1 (en) | 2007-01-26 | 2008-07-31 | James Norris Dieffenderfer | Snoop Filtering Using a Snoop Request Cache |
| US8132172B2 (en) | 2007-03-26 | 2012-03-06 | Intel Corporation | Thread scheduling on multiprocessor systems |
| US8135900B2 (en) | 2007-03-28 | 2012-03-13 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
| EP2159702B1 (en) | 2007-06-20 | 2013-04-17 | Fujitsu Limited | Cache control device and control method |
| US8447911B2 (en) | 2007-07-05 | 2013-05-21 | Board Of Regents, University Of Texas System | Unordered load/store queue |
| US7890725B2 (en) | 2007-07-09 | 2011-02-15 | International Business Machines Corporation | Bufferless transactional memory with runahead execution |
| US7765363B2 (en) | 2007-07-26 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | Mask usable for snoop requests |
| US8037252B2 (en) | 2007-08-28 | 2011-10-11 | International Business Machines Corporation | Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor |
| US8006073B1 (en) | 2007-09-28 | 2011-08-23 | Oracle America, Inc. | Simultaneous speculative threading light mode |
| CN101447911B (zh) | 2007-11-27 | 2010-12-15 | 上海高性能集成电路设计中心 | 一种通过分布控制扩展访存队列容量的装置 |
| US8281109B2 (en) | 2007-12-27 | 2012-10-02 | Intel Corporation | Compressed instruction format |
| US9311085B2 (en) | 2007-12-30 | 2016-04-12 | Intel Corporation | Compiler assisted low power and high performance load handling based on load types |
| TWI354996B (en) | 2007-12-31 | 2011-12-21 | Phison Electronics Corp | Wear leveling method and controller thereof |
| US8719553B2 (en) | 2008-01-31 | 2014-05-06 | Arm Norway As | Method for re-circulating a fragment through a rendering pipeline |
| US8627047B2 (en) | 2008-02-15 | 2014-01-07 | International Business Machines Corporation | Store data forwarding with no memory model restrictions |
| US9146744B2 (en) | 2008-05-06 | 2015-09-29 | Oracle America, Inc. | Store queue having restricted and unrestricted entries |
| US8464009B2 (en) | 2008-06-04 | 2013-06-11 | Oracle America, Inc. | Method for memory interleave support with a ceiling mask |
| US8332852B2 (en) | 2008-07-21 | 2012-12-11 | International Business Machines Corporation | Thread-to-processor assignment based on affinity identifiers |
| KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
| WO2010060084A2 (en) | 2008-11-24 | 2010-05-27 | Intel Corporation | Systems, methods, and apparatuses to decompose a sequential program into multiple threads, execute said threads, and reconstruct the sequential execution |
| US20100274972A1 (en) | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
| CN101763250B (zh) | 2008-12-25 | 2014-03-12 | 世意法(北京)半导体研发有限责任公司 | 地址比较电路和方法 |
| US8041928B2 (en) | 2008-12-22 | 2011-10-18 | International Business Machines Corporation | Information handling system with real and virtual load/store instruction issue queue |
| US8380964B2 (en) | 2009-04-03 | 2013-02-19 | International Business Machines Corporation | Processor including age tracking of issue queue instructions |
| US8521982B2 (en) | 2009-04-15 | 2013-08-27 | International Business Machines Corporation | Load request scheduling in a cache hierarchy |
| US8244988B2 (en) | 2009-04-30 | 2012-08-14 | International Business Machines Corporation | Predictive ownership control of shared memory computing system data |
| US8099566B2 (en) | 2009-05-15 | 2012-01-17 | Oracle America, Inc. | Load/store ordering in a threaded out-of-order processor |
| US8392666B2 (en) | 2009-05-21 | 2013-03-05 | Via Technologies, Inc. | Low power high speed load-store collision detector |
| US8230177B2 (en) | 2009-05-28 | 2012-07-24 | Oracle America, Inc. | Store prefetching via store queue lookahead |
| US20100306509A1 (en) * | 2009-05-29 | 2010-12-02 | Via Technologies, Inc. | Out-of-order execution microprocessor with reduced store collision load replay reduction |
| US8533438B2 (en) | 2009-08-12 | 2013-09-10 | Via Technologies, Inc. | Store-to-load forwarding based on load/store address computation source information comparisons |
| CN101901132B (zh) | 2009-08-12 | 2013-08-21 | 威盛电子股份有限公司 | 微处理器以及相关储存方法 |
| US8452991B2 (en) | 2009-08-20 | 2013-05-28 | International Business Machines Corporation | Partition level power management using fully asynchronous cores with software that has limited asynchronous support |
| US9286075B2 (en) | 2009-09-30 | 2016-03-15 | Oracle America, Inc. | Optimal deallocation of instructions from a unified pick queue |
| US20110119469A1 (en) | 2009-11-13 | 2011-05-19 | International Business Machines Corporation | Balancing workload in a multiprocessor system responsive to programmable adjustments in a syncronization instruction |
| US8397238B2 (en) | 2009-12-08 | 2013-03-12 | Qualcomm Incorporated | Thread allocation and clock cycle adjustment in an interleaved multi-threaded processor |
| TWI484335B (zh) | 2010-01-07 | 2015-05-11 | Alibaba Group Holding Ltd | Cached data processing method, processing system, and means |
| US8938605B2 (en) * | 2010-03-05 | 2015-01-20 | International Business Machines Corporation | Instruction cracking based on machine state |
| US20110225297A1 (en) | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
| CN101944068A (zh) | 2010-08-23 | 2011-01-12 | 中国科学技术大学苏州研究院 | 一种共享高速缓存的性能优化方法 |
| US8713263B2 (en) | 2010-11-01 | 2014-04-29 | Advanced Micro Devices, Inc. | Out-of-order load/store queue structure |
| US8756374B2 (en) | 2010-11-05 | 2014-06-17 | Oracle International Corporation | Store queue supporting ordered and unordered stores |
| US8321635B2 (en) | 2010-11-08 | 2012-11-27 | Lsi Corporation | Synchronizing commands for preventing data corruption |
| US20120117335A1 (en) | 2010-11-10 | 2012-05-10 | Advanced Micro Devices, Inc. | Load ordering queue |
| US9529594B2 (en) | 2010-11-30 | 2016-12-27 | Oracle International Corporation | Miss buffer for a multi-threaded processor |
| WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
| US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
| US9043363B2 (en) | 2011-06-03 | 2015-05-26 | Oracle International Corporation | System and method for performing memory management using hardware transactions |
| KR20170102576A (ko) | 2012-06-15 | 2017-09-11 | 인텔 코포레이션 | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 |
| KR101804027B1 (ko) | 2012-06-15 | 2017-12-01 | 인텔 코포레이션 | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 |
| EP2862072B1 (en) | 2012-06-15 | 2022-09-07 | Intel Corporation | A load store buffer agnostic to threads implementing forwarding from different threads based on store seniority |
| EP2862068B1 (en) | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
| WO2013188588A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A lock-based and synch-based method for out of order loads in a memory consistency model using shared memory resources |
| CN107748673B (zh) | 2012-06-15 | 2022-03-25 | 英特尔公司 | 包括虚拟加载存储队列的处理器和系统 |
| US9639469B2 (en) | 2012-09-28 | 2017-05-02 | Qualcomm Technologies, Inc. | Coherency controller with reduced data buffer |
| US9244837B2 (en) | 2012-10-11 | 2016-01-26 | Texas Instruments Incorporated | Zero cycle clock invalidate operation |
| US9455048B2 (en) | 2013-06-28 | 2016-09-27 | Sandisk Technologies Llc | NAND flash word line management using multiple fragment pools |
| KR102532559B1 (ko) | 2013-12-12 | 2023-05-16 | 라이프 테크놀로지스 코포레이션 | 형질감염을 개선하는 막 투과 펩타이드 및 조성물 그리고 이들을 사용하는 방법 |
| US9448936B2 (en) | 2014-01-13 | 2016-09-20 | Apple Inc. | Concurrent store and load operations |
| EP3224744A4 (en) | 2014-11-28 | 2018-08-01 | Nasuni Corporation | Versioned file system with global lock |
-
2013
- 2013-06-13 CN CN201380042998.5A patent/CN104583956B/zh active Active
- 2013-06-13 KR KR1020157000708A patent/KR101826399B1/ko not_active Expired - Fee Related
- 2013-06-13 KR KR1020187002906A patent/KR101993562B1/ko active Active
- 2013-06-13 WO PCT/US2013/045722 patent/WO2013188696A2/en not_active Ceased
- 2013-06-13 EP EP13804462.3A patent/EP2862069A4/en active Pending
- 2013-06-14 TW TW106135136A patent/TWI636399B/zh active
- 2013-06-14 TW TW102121100A patent/TWI610227B/zh not_active IP Right Cessation
-
2014
- 2014-12-11 US US14/567,731 patent/US9990198B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2862069A4 (en) | 2016-12-28 |
| EP2862069A2 (en) | 2015-04-22 |
| KR20180014861A (ko) | 2018-02-09 |
| TWI636399B (zh) | 2018-09-21 |
| KR101993562B1 (ko) | 2019-09-30 |
| TWI610227B (zh) | 2018-01-01 |
| US9990198B2 (en) | 2018-06-05 |
| WO2013188696A2 (en) | 2013-12-19 |
| US20150095615A1 (en) | 2015-04-02 |
| CN104583956A (zh) | 2015-04-29 |
| TW201804322A (zh) | 2018-02-01 |
| WO2013188696A3 (en) | 2014-02-27 |
| KR101826399B1 (ko) | 2018-02-06 |
| TW201428621A (zh) | 2014-07-16 |
| CN104583956B (zh) | 2019-01-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101745640B1 (ko) | 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법 | |
| KR101702788B1 (ko) | 스토어 상위 서열에 기초하여 상이한 스레드들로부터의 포워딩을 구현하는 스레드에 무관한 로드 스토어 버퍼 | |
| KR101825585B1 (ko) | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 | |
| KR101774993B1 (ko) | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 | |
| KR101996351B1 (ko) | 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 | |
| KR101818967B1 (ko) | 명확화 없는 비순차 load store 큐 | |
| KR101826399B1 (ko) | Load store 재정렬 및 최적화를 구현하는 명령어 정의 | |
| KR101804027B1 (ko) | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 | |
| KR101667167B1 (ko) | Load store 재정렬 및 최적화로부터 생기는 투기적 포워딩 예측 착오/오류로부터의 복원을 구현하는 방법 및 시스템 | |
| KR101832574B1 (ko) | 모든 store들이 캐시의 모든 워드들에 대한 검사를 스누핑해야만 하는 것을 방지하기 위해 store들을 필터링하는 방법 및 시스템 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| PA0104 | Divisional application for international application |
St.27 status event code: A-0-1-A10-A18-div-PA0104 St.27 status event code: A-0-1-A10-A16-div-PA0104 |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20210201 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20210201 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |