KR101818967B1 - 명확화 없는 비순차 load store 큐 - Google Patents
명확화 없는 비순차 load store 큐 Download PDFInfo
- Publication number
- KR101818967B1 KR101818967B1 KR1020157000678A KR20157000678A KR101818967B1 KR 101818967 B1 KR101818967 B1 KR 101818967B1 KR 1020157000678 A KR1020157000678 A KR 1020157000678A KR 20157000678 A KR20157000678 A KR 20157000678A KR 101818967 B1 KR101818967 B1 KR 101818967B1
- Authority
- KR
- South Korea
- Prior art keywords
- store
- load
- queue
- instruction
- buffer
- 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.)
- Expired - Fee Related
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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (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)
- 프로세서에서, 명확화 없는 비순차 load store 큐 방법(disambiguation-free out of order load store queue method)으로서,
복수의 비동기 코어들에 의해 액세스될 수 있는 메모리 자원을 구현하는 단계;
store 회수 버퍼(store retirement buffer)를 구현하는 단계 - store 큐로부터의 store 명령어들은 원래의 프로그램 순서로 상기 store 회수 버퍼에 엔트리들을 가짐 -;
load 큐로부터의 후속하는 load 명령어의 디스패치 시에, 상기 store 명령어들과 상기 load 명령어들 사이의 주소 일치가 있는지 상기 store 회수 버퍼를 검색하는 단계;
복수의 주소 일치들(address matches)이 있는 경우에, 첫번째 일치에 대해 상기 store 회수 버퍼를 스캔하는 것에 의해 정확한 포워딩 엔트리의 위치를 확인하는 단계; 및
상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 store 큐 및 상기 load 큐는 명확화 없는, 방법.
- 제2항에 있어서, 상기 store 큐 및 상기 load 큐는 비순차 load 명령어들 및 store 명령어들을 명확화하는 대응하는 하드웨어가 포함되어 있지 않다는 점에서 명확화 없는, 방법.
- 제1항에 있어서, 상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩할 시에, 첫번째로 일치하는 첫번째 일치 store 명령어와 상기 후속하는 load 명령어가 페어링되고(paired), 대응하는 페어링 관계가 예측 테이블에 기록되는, 방법.
- 제1항에 있어서, 상기 store 회수 버퍼의 어느 엔트리들이 load 명령어를 통해 액세스되는지를 추적하는 것에 의해 기능하는 액세스 마스크가 구현되는, 방법.
- 제5항에 있어서, 상기 액세스 마스크는 후속하는 store 명령어들의 실행 시에 검사되고, 상기 store 회수 버퍼 엔트리에의 후속하는 store 명령어가 상기 액세스 마스크에서 load 명령어로부터의 이전의 마크를 볼 때 예측 착오(miss prediction)가 야기되는, 방법.
- 제1항에 있어서, 상기 첫번째 일치가 우선순위 인코더(priority encoder)를 사용함으로써 발견되는, 방법.
- 프로세서에서, 명확화 없는 비순차 load store 큐 방법으로서,
복수의 비동기 코어들에 의해 액세스될 수 있는 메모리 자원을 구현하는 단계 - 상기 복수의 코어들은 통합된 store 큐 및 통합된 load 큐를 공유함 -;
store 회수 버퍼를 구현하는 단계 - store 큐로부터의 store 명령어들은 상기 store 회수 버퍼에 있는 엔트리들을 갖고 store 주소들은 상기 store 큐로부터 비순차적으로 상기 store 회수 버퍼 내로 로드됨 -;
각각의 store 명령어가 할당될 때, 시퀀스 번호를 할당하고, store 명령어들이 상기 store 회수 버퍼에 원래의 프로그램 순서로 존재하도록 그들의 시퀀스 번호에 따라 store 명령어들을 재정렬하는 단계;
load 큐로부터의 후속하는 load 명령어의 디스패치 시에, 상기 store 명령어들과 상기 load 명령어들 사이의 주소 일치가 있는지 상기 store 회수 버퍼를 검색하는 단계;
복수의 주소 일치들이 있는 경우에, 첫번째 일치에 대해 상기 store 회수 버퍼를 스캔하는 것에 의해 정확한 포워딩 엔트리의 위치를 확인하는 단계; 및
상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩하는 단계
를 포함하는, 방법. - 제8항에 있어서, load 명령어가 디스패치될 때, 상기 load 명령어는 아직 디스패치되지 않은 보다 빠른 store 명령어가 존재하는지를 알아보기 위해 상기 store 회수 버퍼를 살펴보는, 방법.
- 제9항에 있어서, 아직 디스패치되지 않은 보다 빠른 기존의 store 명령어를 보면, 상기 load 명령어는 상기 load 명령어 자신의 디스패치를 완료하기 전에 상기 보다 빠른 store 명령어가 디스패치될 때까지 기다리는, 방법.
- 제9항에 있어서, 아직 디스패치되지 않은 보다 빠른 기존의 store 명령어를 보면, 상기 load 명령어는 디스패치되고 캐시의 액세스 마스크에서 그의 주소에 표시를 하는, 방법.
- 마이크로프로세서로서,
복수의 코어들 및 하나의 load store 버퍼(a load store buffer)를 포함하고, 상기 load store 버퍼는
복수의 비동기 코어들에 의해 액세스될 수 있는 메모리 자원을 구현하는 단계;
store 회수 버퍼를 구현하는 단계 - store 큐로부터의 store 명령어들은 원래의 프로그램 순서로 상기 store 회수 버퍼에 엔트리들을 가짐 -;
load 큐로부터의 후속하는 load 명령어의 디스패치 시에, 상기 store 명령어들과 상기 load 명령어들 사이의 주소 일치가 있는지 상기 store 회수 버퍼를 검색하는 단계;
복수의 주소 일치들이 있는 경우에, 첫번째 일치에 대해 상기 store 회수 버퍼를 스캔하는 것에 의해 정확한 포워딩 엔트리의 위치를 확인하는 단계; 및
상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩하는 단계
에 의해, 명확화 없는 비순차 load store 큐 방법을 구현하는, 마이크로프로세서. - 제12항에 있어서, 상기 store 큐 및 상기 load 큐는 명확화 없는, 마이크로프로세서.
- 제13항에 있어서, 상기 store 큐 및 상기 load 큐는 비순차 load 명령어들 및 store 명령어들을 명확화하는 대응하는 하드웨어가 포함되어 있지 않다는 점에서 명확화 없는, 마이크로프로세서.
- 제12항에 있어서, 상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩할 시에, 첫번째로 일치하는 첫번째 일치 store 명령어와 상기 후속하는 load 명령어가 페어링되고, 대응하는 페어링 관계가 예측 테이블에 기록되는, 마이크로프로세서.
- 제12항에 있어서, 상기 store 회수 버퍼의 어느 엔트리들이 load 명령어를 통해 액세스되는지를 추적하는 것에 의해 기능하는 액세스 마스크가 구현되는, 마이크로프로세서.
- 제16항에 있어서, 상기 액세스 마스크는 후속하는 store 명령어들의 실행 시에 검사되고, 상기 store 회수 버퍼 엔트리에의 후속하는 store 명령어가 상기 액세스 마스크에서 load 명령어로부터의 이전의 마크를 볼 때 예측 착오가 야기되는, 마이크로프로세서.
- 제12항에 있어서, 상기 첫번째 일치가 우선순위 인코더를 사용함으로써 발견되는, 마이크로프로세서.
- 마이크로프로세서로서,
복수의 코어들 및 하나의 load store 버퍼를 포함하고, 상기 load store 버퍼는
복수의 비동기 코어들에 의해 액세스될 수 있는 메모리 자원을 구현하는 단계 - 상기 복수의 코어들은 통합된 store 큐 및 통합된 load 큐를 공유함 -;
store 회수 버퍼를 구현하는 단계 - store 큐로부터의 store 명령어들은 상기 store 회수 버퍼에 있는 엔트리들을 갖고 store 주소들은 상기 store 큐로부터 비순차적으로 상기 store 회수 버퍼 내로 로드됨 -;
각각의 store 명령어가 할당될 때, 시퀀스 번호를 할당하고, store 명령어들이 상기 store 회수 버퍼에 원래의 프로그램 순서로 존재하도록 그들의 시퀀스 번호에 따라 store 명령어들을 재정렬하는 단계;
load 큐로부터의 후속하는 load 명령어의 디스패치 시에, 상기 store 명령어들과 상기 load 명령어들 사이의 주소 일치가 있는지 상기 store 회수 버퍼를 검색하는 단계;
복수의 주소 일치들이 있는 경우에, 첫번째 일치에 대해 상기 store 회수 버퍼를 스캔하는 것에 의해 정확한 포워딩 엔트리의 위치를 확인하는 단계; 및
상기 첫번째 일치로부터의 데이터를 상기 후속하는 load 명령어로 포워딩하는 단계
에 의해, 명확화 없는 비순차 load store 큐 방법을 구현하는, 마이크로프로세서. - 제19항에 있어서, load 명령어가 디스패치될 때, 상기 load 명령어는 아직 디스패치되지 않은 보다 빠른 store 명령어가 존재하는지를 알아보기 위해 상기 store 회수 버퍼를 살펴보는, 마이크로프로세서.
- 제20항에 있어서, 아직 디스패치되지 않은 보다 빠른 기존의 store 명령어를 보면, 상기 load 명령어는 상기 load 명령어 자신의 디스패치를 완료하기 전에 상기 보다 빠른 store 명령어가 디스패치될 때까지 기다리는, 마이크로프로세서.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261660528P | 2012-06-15 | 2012-06-15 | |
| US61/660,528 | 2012-06-15 | ||
| PCT/US2013/045863 WO2013188754A1 (en) | 2012-06-15 | 2013-06-14 | A disambiguation-free out of order load store queue |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187000693A Division KR101996462B1 (ko) | 2012-06-15 | 2013-06-14 | 명확화 없는 비순차 load store 큐 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20150027210A KR20150027210A (ko) | 2015-03-11 |
| KR101818967B1 true KR101818967B1 (ko) | 2018-01-16 |
Family
ID=49758746
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020157000678A Expired - Fee Related KR101818967B1 (ko) | 2012-06-15 | 2013-06-14 | 명확화 없는 비순차 load store 큐 |
| KR1020187000693A Active KR101996462B1 (ko) | 2012-06-15 | 2013-06-14 | 명확화 없는 비순차 load store 큐 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187000693A Active KR101996462B1 (ko) | 2012-06-15 | 2013-06-14 | 명확화 없는 비순차 load store 큐 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US10048964B2 (ko) |
| EP (1) | EP2862087A4 (ko) |
| KR (2) | KR101818967B1 (ko) |
| CN (2) | CN104583975B (ko) |
| TW (2) | TWI646422B (ko) |
| WO (1) | WO2013188754A1 (ko) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US9563428B2 (en) | 2015-03-26 | 2017-02-07 | International Business Machines Corporation | Schedulers with load-store queue awareness |
| CN105373663B (zh) * | 2015-11-17 | 2018-06-26 | 无锡江南计算技术研究所 | 一种带条目占用指示的异步缓冲实现方法 |
| TWI625628B (zh) * | 2016-08-12 | 2018-06-01 | 深圳衡宇芯片科技有限公司 | 由主機到設備控制器傳輸命令的方法及使用該方法的系統 |
| US10606590B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Effective address based load store unit in out of order processors |
| US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam port |
| US10417002B2 (en) | 2017-10-06 | 2019-09-17 | International Business Machines Corporation | Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses |
| US10534616B2 (en) | 2017-10-06 | 2020-01-14 | International Business Machines Corporation | Load-hit-load detection in an out-of-order processor |
| US10572256B2 (en) | 2017-10-06 | 2020-02-25 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
| US10606591B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
| US10394558B2 (en) | 2017-10-06 | 2019-08-27 | International Business Machines Corporation | Executing load-store operations without address translation hardware per load-store unit port |
| GB2570466B (en) * | 2018-01-25 | 2020-03-04 | Advanced Risc Mach Ltd | Commit window move element |
| US11113055B2 (en) | 2019-03-19 | 2021-09-07 | International Business Machines Corporation | Store instruction to store instruction dependency |
| US11269644B1 (en) * | 2019-07-29 | 2022-03-08 | Marvell Asia Pte, Ltd. | System and method for implementing strong load ordering in a processor using a circular ordering ring |
| US11327766B2 (en) | 2020-07-31 | 2022-05-10 | International Business Machines Corporation | Instruction dispatch routing |
| CN111966406B (zh) * | 2020-08-06 | 2021-03-23 | 北京微核芯科技有限公司 | 乱序处理器中乱序执行队列的调度方法和装置 |
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 (160)
| 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 |
| EP1005672B1 (en) | 1996-07-16 | 2010-10-06 | GlobalFoundries, 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 |
| US5781752A (en) * | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
| 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 |
| 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 |
| US6360314B1 (en) * | 1998-07-14 | 2002-03-19 | Compaq Information Technologies Group, L.P. | Data cache having store queue bypass for out-of-order instruction execution and method for same |
| 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 |
| US6349382B1 (en) * | 1999-03-05 | 2002-02-19 | International Business Machines Corporation | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order |
| 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 |
| EP1275045A4 (en) | 2000-02-25 | 2005-12-21 | Sun Microsystems Inc | APPARATUS AND METHOD FOR MAINTAINING HIGH CAPACITY TRAFFIC FILTERING AND CACHE DATA EXPEDITION PREVENTION DURING 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 |
| US6704841B2 (en) | 2001-06-26 | 2004-03-09 | Sun Microsystems, Inc. | Method and apparatus for facilitating speculative stores in a multiprocessor system |
| 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 |
| 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 |
| 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 |
| US7373462B2 (en) | 2005-03-29 | 2008-05-13 | International Business Machines Corporation | Snoop filter for filtering snoop requests |
| 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 |
| CN101449256B (zh) * | 2006-04-12 | 2013-12-25 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
| 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 |
| US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
| 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 |
| EP2527972A3 (en) | 2006-11-14 | 2014-08-06 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
| US7752613B2 (en) | 2006-12-05 | 2010-07-06 | Intel Corporation | Disambiguation in dynamic binary translation |
| WO2008075361A2 (en) | 2006-12-20 | 2008-06-26 | 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 |
| WO2008155827A1 (ja) | 2007-06-20 | 2008-12-24 | Fujitsu Limited | キャッシュ制御装置及び制御方法 |
| 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 |
| CN101673245B (zh) | 2008-09-09 | 2016-02-03 | 株式会社东芝 | 包括存储器管理装置的信息处理装置和存储器管理方法 |
| 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 |
| 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 |
| US8930679B2 (en) * | 2009-05-29 | 2015-01-06 | Via Technologies, Inc. | Out-of-order execution microprocessor with reduced store collision load replay by making an issuing of a load instruction dependent upon a dependee instruction of a store instruction |
| 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 |
| US8832403B2 (en) | 2009-11-13 | 2014-09-09 | International Business Machines Corporation | Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses |
| 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 |
| US8966184B2 (en) | 2011-01-31 | 2015-02-24 | 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들을 갖는 세마포어 방법 및 시스템 |
| 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 |
| KR101996592B1 (ko) * | 2012-06-15 | 2019-07-04 | 인텔 코포레이션 | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 |
| WO2013188311A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A load store buffer agnostic to threads implementing forwarding from different threads based on store seniority |
| CN108345547A (zh) | 2012-06-15 | 2018-07-31 | 英特尔公司 | 乱序加载的基于锁的和基于同步的方法 |
| 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 |
| ES2808866T3 (es) | 2013-12-12 | 2021-03-02 | Life Technologies Corp | Péptidos penetrantes de membrana para potenciar la transfección y composiciones y métodos para usar los mismos |
| 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-14 CN CN201380043007.5A patent/CN104583975B/zh active Active
- 2013-06-14 EP EP13805015.8A patent/EP2862087A4/en not_active Ceased
- 2013-06-14 KR KR1020157000678A patent/KR101818967B1/ko not_active Expired - Fee Related
- 2013-06-14 TW TW106125574A patent/TWI646422B/zh not_active IP Right Cessation
- 2013-06-14 TW TW102121088A patent/TWI599879B/zh active
- 2013-06-14 CN CN201710464270.1A patent/CN107220032B/zh active Active
- 2013-06-14 KR KR1020187000693A patent/KR101996462B1/ko active Active
- 2013-06-14 WO PCT/US2013/045863 patent/WO2013188754A1/en not_active Ceased
-
2014
- 2014-12-12 US US14/569,543 patent/US10048964B2/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 |
|---|---|
| EP2862087A4 (en) | 2016-12-14 |
| TWI599879B (zh) | 2017-09-21 |
| CN104583975A (zh) | 2015-04-29 |
| KR20150027210A (ko) | 2015-03-11 |
| CN104583975B (zh) | 2017-07-14 |
| TW201421239A (zh) | 2014-06-01 |
| TW201800946A (zh) | 2018-01-01 |
| EP2862087A1 (en) | 2015-04-22 |
| CN107220032A (zh) | 2017-09-29 |
| KR20180008870A (ko) | 2018-01-24 |
| US10048964B2 (en) | 2018-08-14 |
| CN107220032B (zh) | 2020-12-15 |
| WO2013188754A1 (en) | 2013-12-19 |
| KR101996462B1 (ko) | 2019-07-04 |
| US20150100765A1 (en) | 2015-04-09 |
| TWI646422B (zh) | 2019-01-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101745640B1 (ko) | 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법 | |
| KR101702788B1 (ko) | 스토어 상위 서열에 기초하여 상이한 스레드들로부터의 포워딩을 구현하는 스레드에 무관한 로드 스토어 버퍼 | |
| KR101825585B1 (ko) | 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들 | |
| KR101774993B1 (ko) | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 | |
| KR101818967B1 (ko) | 명확화 없는 비순차 load store 큐 | |
| KR101996351B1 (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 |
|
| 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 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| 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 |
|
| 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 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| A107 | Divisional application of patent | ||
| 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 |
|
| GRNT | Written decision to grant | ||
| 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: 20210111 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: 20210111 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |