KR101996592B1 - 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 - Google Patents
명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 Download PDFInfo
- Publication number
- KR101996592B1 KR101996592B1 KR1020187002947A KR20187002947A KR101996592B1 KR 101996592 B1 KR101996592 B1 KR 101996592B1 KR 1020187002947 A KR1020187002947 A KR 1020187002947A KR 20187002947 A KR20187002947 A KR 20187002947A KR 101996592 B1 KR101996592 B1 KR 101996592B1
- Authority
- KR
- South Korea
- Prior art keywords
- store
- load
- entry
- instruction
- queue
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 58
- 239000000872 buffer Substances 0.000 claims abstract description 56
- 238000005352 clarification Methods 0.000 abstract description 2
- 239000012634 fragment Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 8
- 230000001419 dependent effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000004224 protection Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000611421 Elia Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G06F9/3857—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (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 (21)
- 컴퓨터 시스템으로서,
store 명령어들을 저장하는 store 큐;
상기 store 큐로부터의 상기 store 명령어들에 대응하는 엔트리들을 포함하는 store 회수 버퍼(store retirement buffer) - 상기 엔트리들은 원래의 프로그램 순서를 가짐 -;
load 명령어를 저장하는 load 큐; 및
상기 load 명령어에 대하여 상기 store 회수 버퍼 내의 정확한 포워딩 엔트리를 위치 확인하기 위하여 상기 store 회수 버퍼를 검색하는 load 버퍼 - 상기 정확한 포워딩 엔트리는 상기 load 명령어의 주소와 일치하는 주소를 갖는, 상기 store 회수 버퍼 내의 첫 번째 엔트리에 대응하고, 상기 store 회수 버퍼는 상기 첫 번째 엔트리에 대응하는 데이터를 상기 load 명령어로 포워딩함 -
를 포함하는 컴퓨터 시스템. - 제1항에 있어서,
상기 첫 번째 엔트리와 상기 load 명령어 간의 페어링(pairing)을 저장하는 store 예측 테이블을 더 포함하는 컴퓨터 시스템. - 제2항에 있어서,
상기 load 버퍼는 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩할지를 결정하기 위하여 상기 load 명령어의 디스패치 시에 상기 store 예측 테이블을 검사하는, 컴퓨터 시스템. - 제3항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 디스패치되었다는 결정 시에, 상기 예측 테이블에 나타낸 바와 같이 상기 store 회수 버퍼가 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 컴퓨터 시스템. - 제3항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 아직 디스패치되지 않았다는 결정 시에, 상기 load 명령어는 상기 예측 테이블에 상기 load 명령어의 식별자를 부가하고 상기 첫 번째 엔트리에 대응하는 상기 데이터가 포워딩되기를 기다리는, 컴퓨터 시스템. - 제5항에 있어서,
상기 store 회수 버퍼는 상기 예측 테이블 내의 상기 load 명령어의 상기 식별자에 기초하여 상기 store 명령어의 디스패치 시에 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 컴퓨터 시스템. - 제1항에 있어서,
상기 store 회수 버퍼는 원래의 프로그램 순서로 상기 store 회수 버퍼 내에 대응하는 엔트리들을 저장하는데 사용되는 시퀀스 번호를 각각의 store 명령어에 할당하는, 컴퓨터 시스템. - 데이터를 load 명령어로 포워딩하기 위한 방법에 있어서,
store 큐에 store 명령어들을 저장하는 단계;
store 회수 버퍼에 엔트리들을 저장하는 단계 - 상기 엔트리들은 상기 store 큐로부터의 상기 store 명령어들에 대응하고 원래의 프로그램 순서로 있음 -;
load 큐에 load 명령어를 저장하는 단계;
상기 load 명령어에 대하여 상기 store 회수 버퍼 내의 정확한 포워딩 엔트리를 위치 확인하기 위하여 상기 store 회수 버퍼를 검색하는 단계 - 상기 정확한 포워딩 엔트리는 상기 load 명령어의 주소와 일치하는 주소를 갖는 상기 store 회수 버퍼 내의 첫 번째 엔트리에 대응함 -; 및
상기 첫 번째 엔트리에 대응하는 데이터를 상기 load 명령어로 포워딩하는 단계
를 포함하는 방법. - 제8항에 있어서,
상기 첫 번째 엔트리와 상기 load 명령어 간의 페어링을 store 예측 테이블에 저장하는 단계를 더 포함하는 방법. - 제9항에 있어서,
상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩할지를 결정하기 위하여 상기 load 명령어의 디스패치 시에 상기 store 예측 테이블을 검사하는 단계를 더 포함하는, 방법. - 제10항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 디스패치되었다는 결정 시에, 상기 예측 테이블에 나타낸 바와 같이 상기 store 회수 버퍼가 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 방법. - 제10항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 아직 디스패치되지 않았다는 결정 시에, 상기 load 명령어는 상기 예측 테이블에 상기 load 명령어의 식별자를 부가하고 상기 첫 번째 엔트리에 대응하는 상기 데이터가 포워딩되기를 기다리는, 방법. - 제12항에 있어서,
상기 store 회수 버퍼는 상기 예측 테이블 내의 상기 load 명령어의 상기 식별자에 기초하여 상기 store 명령어의 디스패치 시에 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 방법. - 제8항에 있어서,
원래의 프로그램 순서로 상기 store 회수 버퍼 내에 대응하는 엔트리들을 저장하는데 사용되는 시퀀스 번호를 각각의 store 명령어에 할당하는 단계를 더 포함하는 방법. - 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
상기 명령어들은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
store 큐에 store 명령어들을 저장하고;
store 회수 버퍼에 엔트리들을 저장하고 - 상기 엔트리들은 상기 store 큐로부터의 상기 store 명령어들에 대응하고 원래의 프로그램 순서로 있음 -;
load 큐에 load 명령어를 저장하고;
상기 load 명령어에 대하여 상기 store 회수 버퍼 내의 정확한 포워딩 엔트리를 위치 확인하기 위하여 상기 store 회수 버퍼를 검색하고 - 상기 정확한 포워딩 엔트리는 상기 load 명령어의 주소와 일치하는 주소를 갖는 상기 store 회수 버퍼 내의 첫 번째 엔트리에 대응함 -;
상기 첫 번째 엔트리에 대응하는 데이터를 상기 load 명령어로 포워딩하도록 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서,
상기 명령어들은 또한 상기 프로세서로 하여금:
상기 첫 번째 엔트리와 상기 load 명령어 간의 페어링을 store 예측 테이블에 저장하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제16항에 있어서,
상기 명령어들은 또한 상기 프로세서로 하여금:
상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩할지를 결정하기 위하여 상기 load 명령어의 디스패치 시에 상기 store 예측 테이블을 검사하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제17항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 디스패치되었다는 결정 시에, 상기 예측 테이블에 나타낸 바와 같이 상기 store 회수 버퍼가 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제17항에 있어서,
상기 첫 번째 엔트리에 대응하는 store 명령어가 아직 디스패치되지 않았다는 결정 시에, 상기 load 명령어는 상기 예측 테이블에 상기 load 명령어의 식별자를 부가하고 상기 첫 번째 엔트리에 대응하는 상기 데이터가 포워딩되기를 기다리는, 비일시적 컴퓨터 판독가능 저장 매체. - 제19항에 있어서,
상기 store 회수 버퍼는 상기 예측 테이블의 상기 load 명령어의 상기 식별자에 기초하여 상기 store 명령어의 디스패치 시에 상기 첫 번째 엔트리에 대응하는 상기 데이터를 상기 load 명령어로 포워딩하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제16항에 있어서,
상기 명령어들은 또한 상기 프로세서로 하여금:
원래의 프로그램 순서로 상기 store 회수 버퍼 내에 대응하는 엔트리들을 저장하는데 사용되는 시퀀스 번호를 각각의 store 명령어에 할당하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261660539P | 2012-06-15 | 2012-06-15 | |
US61/660,539 | 2012-06-15 | ||
PCT/US2013/045008 WO2013188306A1 (en) | 2012-06-15 | 2013-06-10 | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157000647A Division KR101825585B1 (ko) | 2012-06-15 | 2013-06-10 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180014864A KR20180014864A (ko) | 2018-02-09 |
KR101996592B1 true KR101996592B1 (ko) | 2019-07-04 |
Family
ID=49758642
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187002947A KR101996592B1 (ko) | 2012-06-15 | 2013-06-10 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
KR1020157000647A KR101825585B1 (ko) | 2012-06-15 | 2013-06-10 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157000647A KR101825585B1 (ko) | 2012-06-15 | 2013-06-10 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10019263B2 (ko) |
EP (1) | EP2862068B1 (ko) |
KR (2) | KR101996592B1 (ko) |
CN (1) | CN104583957B (ko) |
TW (2) | TWI639953B (ko) |
WO (1) | WO2013188306A1 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220032B (zh) * | 2012-06-15 | 2020-12-15 | 英特尔公司 | 无消歧乱序加载存储队列 |
CN104583943B (zh) | 2012-06-15 | 2018-06-08 | 英特尔公司 | 拥有具有分布式结构的动态分派窗口的虚拟加载存储队列 |
WO2013188705A2 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A virtual load store queue having a dynamic dispatch window with a unified structure |
EP2862084A4 (en) | 2012-06-15 | 2016-11-30 | Soft Machines Inc | METHOD AND SYSTEM FOR IMPLEMENTING RECOVERY FROM A SPECULATIVE TRANSMISSION OF FAULT FORECASTS / ERRORS DUE TO THE CHANGE AND OPTIMIZATION OF MEMORY LOADS |
KR101993562B1 (ko) | 2012-06-15 | 2019-09-30 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
JP6306729B2 (ja) * | 2014-03-27 | 2018-04-04 | インテル・コーポレーション | ストアをソート及びリタイアする命令及びロジック |
US9823939B2 (en) * | 2014-07-25 | 2017-11-21 | Intel Corporation | System for an instruction set agnostic runtime architecture |
US10353680B2 (en) * | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
US20160026484A1 (en) * | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
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 |
US10133576B2 (en) * | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
WO2019005169A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | APPARATUS AND METHOD FOR MEMORY OPERATIONS READY FOR DATA |
US10963567B2 (en) * | 2017-10-12 | 2021-03-30 | Microsoft Technology Licensing, Llc | Speculative side-channel attack mitigations |
GB2570110B (en) * | 2018-01-10 | 2020-04-15 | Advanced Risc Mach Ltd | Speculative cache storage region |
US11113065B2 (en) * | 2019-04-03 | 2021-09-07 | Advanced Micro Devices, Inc. | Speculative instruction wakeup to tolerate draining delay of memory ordering violation check buffers |
US10983797B2 (en) | 2019-05-28 | 2021-04-20 | International Business Machines Corporation | Program instruction scheduling |
US11614890B2 (en) * | 2019-07-30 | 2023-03-28 | Micron Technology, Inc. | Handling of host-initiated requests in memory sub-systems |
GB2630754A (en) * | 2023-06-05 | 2024-12-11 | Advanced Risc Mach Ltd | Extension processing circuitry start-up |
CN116578343B (zh) * | 2023-07-10 | 2023-11-21 | 南京砺算科技有限公司 | 指令编译方法及装置、图形处理装置、存储介质、终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110040955A1 (en) | 2009-08-12 | 2011-02-17 | Via Technologies, Inc. | Store-to-load forwarding based on load/store address computation source information comparisons |
US20120059971A1 (en) | 2010-09-07 | 2012-03-08 | David Kaplan | Method and apparatus for handling critical blocking of store-to-load forwarding |
Family Cites Families (155)
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 |
DE69230462T2 (de) | 1991-11-19 | 2000-08-03 | Sun Microsystems, Inc. | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln |
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 |
WO1998002804A1 (en) | 1996-07-16 | 1998-01-22 | Advanced Micro Devices, Inc. | Load/store unit and method for non-blocking completion of loads in a superscalar microprocessor |
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 |
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 |
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 |
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 |
US6463522B1 (en) * | 1997-12-16 | 2002-10-08 | Intel Corporation | Memory system for ordering load and store instructions in a processor that performs multithread execution |
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 |
AU2001236793A1 (en) | 2000-02-25 | 2001-09-03 | Sun Microsystems, Inc. | Apparatus and method for maintaining high snoop traffic throughput and preventing cache data eviction during an atomic operation |
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 |
KR100567099B1 (ko) | 2001-06-26 | 2006-03-31 | 썬 마이크로시스템즈, 인코포레이티드 | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 |
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 |
US7080209B2 (en) | 2002-12-24 | 2006-07-18 | Intel Corporation | Method and apparatus for processing a load-lock instruction using a relaxed lock protocol |
US20040123078A1 (en) | 2002-12-24 | 2004-06-24 | Hum Herbert H | Method and apparatus for processing a load-lock instruction using a scoreboard mechanism |
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 |
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 |
US7380071B2 (en) | 2005-03-29 | 2008-05-27 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
US7392351B2 (en) | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
US7502895B2 (en) | 2005-09-13 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | Techniques for reducing castouts in a snoop filter |
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 |
EP2011018B1 (en) | 2006-04-12 | 2016-07-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 |
WO2007138124A1 (es) | 2006-05-30 | 2007-12-06 | Intel Corporation | Método aparato y sistema aplicado en un protocolo de coherencia de una memoria cache |
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 |
WO2008061154A2 (en) | 2006-11-14 | 2008-05-22 | Soft Machines, Inc. | Apparatus and method for processing instructions in a multi-threaded architecture using context switching |
US7752613B2 (en) | 2006-12-05 | 2010-07-06 | Intel Corporation | Disambiguation in dynamic binary translation |
US7970957B2 (en) | 2006-12-20 | 2011-06-28 | 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 |
JP4973730B2 (ja) | 2007-06-20 | 2012-07-11 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
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 | 上海高性能集成电路设计中心 | 一种通过分布控制扩展访存队列容量的装置 |
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 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
US20100274972A1 (en) | 2008-11-24 | 2010-10-28 | Boris Babayan | Systems, methods, and apparatuses for parallel computing |
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 |
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 |
US8677226B2 (en) * | 2009-05-04 | 2014-03-18 | Ikanos Communications, Inc. | Systems and methods for retransmission return channel error detection |
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 |
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 |
EP2862058B1 (en) | 2012-06-15 | 2021-05-19 | Intel Corporation | A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order |
WO2013188705A2 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A virtual load store queue having a dynamic dispatch window with a unified structure |
CN104620223B (zh) | 2012-06-15 | 2018-11-16 | 英特尔公司 | 对于基于存储资历实现从不同线程进行转发的线程不可知的加载存储缓冲器 |
CN104583942B (zh) | 2012-06-15 | 2018-02-13 | 英特尔公司 | 乱序加载的基于锁的和基于同步的方法 |
CN104583943B (zh) | 2012-06-15 | 2018-06-08 | 英特尔公司 | 拥有具有分布式结构的动态分派窗口的虚拟加载存储队列 |
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 |
AU2014361806B2 (en) | 2013-12-12 | 2019-12-19 | Life Technologies Corporation | Membrane-penetrating peptides to enhance transfection and compositions and methods for using same |
US9448936B2 (en) | 2014-01-13 | 2016-09-20 | Apple Inc. | Concurrent store and load operations |
WO2016085541A1 (en) | 2014-11-28 | 2016-06-02 | Nasuni Corporation | Versioned file system with global lock |
-
2013
- 2013-06-10 KR KR1020187002947A patent/KR101996592B1/ko active IP Right Grant
- 2013-06-10 EP EP13803665.2A patent/EP2862068B1/en active Active
- 2013-06-10 KR KR1020157000647A patent/KR101825585B1/ko active IP Right Grant
- 2013-06-10 CN CN201380043003.7A patent/CN104583957B/zh active Active
- 2013-06-10 WO PCT/US2013/045008 patent/WO2013188306A1/en active Application Filing
- 2013-06-14 TW TW106108151A patent/TWI639953B/zh active
- 2013-06-14 TW TW102121090A patent/TWI585682B/zh active
-
2014
- 2014-12-12 US US14/569,551 patent/US10019263B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110040955A1 (en) | 2009-08-12 | 2011-02-17 | Via Technologies, Inc. | Store-to-load forwarding based on load/store address computation source information comparisons |
US20120059971A1 (en) | 2010-09-07 | 2012-03-08 | David Kaplan | Method and apparatus for handling critical blocking of store-to-load forwarding |
Also Published As
Publication number | Publication date |
---|---|
CN104583957A (zh) | 2015-04-29 |
KR101825585B1 (ko) | 2018-02-05 |
US20150100766A1 (en) | 2015-04-09 |
EP2862068A4 (en) | 2016-12-21 |
EP2862068B1 (en) | 2022-07-06 |
KR20180014864A (ko) | 2018-02-09 |
CN104583957B (zh) | 2018-08-10 |
EP2862068A1 (en) | 2015-04-22 |
TWI585682B (zh) | 2017-06-01 |
KR20150027208A (ko) | 2015-03-11 |
TW201428616A (zh) | 2014-07-16 |
US10019263B2 (en) | 2018-07-10 |
TW201743200A (zh) | 2017-12-16 |
TWI639953B (zh) | 2018-11-01 |
WO2013188306A1 (en) | 2013-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101996592B1 (ko) | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 | |
KR101702788B1 (ko) | 스토어 상위 서열에 기초하여 상이한 스레드들로부터의 포워딩을 구현하는 스레드에 무관한 로드 스토어 버퍼 | |
KR101774993B1 (ko) | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 | |
KR101745640B1 (ko) | 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법 | |
KR101996351B1 (ko) | 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 | |
KR101996462B1 (ko) | 명확화 없는 비순차 load store 큐 | |
KR101804027B1 (ko) | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 | |
KR101667167B1 (ko) | Load store 재정렬 및 최적화로부터 생기는 투기적 포워딩 예측 착오/오류로부터의 복원을 구현하는 방법 및 시스템 | |
KR101826399B1 (ko) | Load store 재정렬 및 최적화를 구현하는 명령어 정의 | |
KR101832574B1 (ko) | 모든 store들이 캐시의 모든 워드들에 대한 검사를 스누핑해야만 하는 것을 방지하기 위해 store들을 필터링하는 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
PA0104 | Divisional application for international application |
Comment text: Divisional Application for International Patent Patent event code: PA01041R01D Patent event date: 20180130 Application number text: 1020157000647 Filing date: 20150112 |
|
PG1501 | Laying open of application | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20180608 Comment text: Request for Examination of Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20180907 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190327 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20190628 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20190701 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20220526 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20230530 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20231205 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20241128 Start annual number: 7 End annual number: 7 |