KR100567099B1 - L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 - Google Patents
L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 Download PDFInfo
- Publication number
- KR100567099B1 KR100567099B1 KR1020037014576A KR20037014576A KR100567099B1 KR 100567099 B1 KR100567099 B1 KR 100567099B1 KR 1020037014576 A KR1020037014576 A KR 1020037014576A KR 20037014576 A KR20037014576 A KR 20037014576A KR 100567099 B1 KR100567099 B1 KR 100567099B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- store
- load
- temporary
- storage
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 47
- 230000007246 mechanism Effects 0.000 claims description 20
- 238000012790 confirmation Methods 0.000 claims description 10
- 230000001737 promoting effect Effects 0.000 claims 6
- 230000002441 reversible effect Effects 0.000 description 45
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 239000000872 buffer Substances 0.000 description 8
- 239000012536 storage buffer Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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
- 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- 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/383—Operand prefetching
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims (27)
- 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법으로서, 이 방법은,- 멀티프로세서 시스템의 L2 캐시에서 처리중인 가-저장 동작(speculative store operations)의 레코드를 관리하고,이때, 가-저장 동작은 선행 저장 동작이 되돌아오기 전에 예측치로(speculatively) 실행되는 저장 동작이며,- 멀티프로세서 시스템의 프로세서에 연결된 L1 캐시로부터 L2 캐시에서 로드 동작(load operations)을 수신하며,- 로드 동작이 전달되는 동일한 위치로 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작의 레코드를 검사하고, 그리고- 일치하는 가-저장 동작이 있을 경우, 일치하는 가-저장 동작이 완료된 후 로드 동작이 실행됨을 보장하는,이상의 단계를 포함하는 것을 특징으로 하는, 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, 일치하는 가-저장 동작의 완료 이후 로드동작의 실행을 보장하는 상기 단계는, 차후에 로드 동작을 프로세서가 재시도하도록 프로세서에 리트라이 동작(retry operations)을 전달하는 과정을 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, 일치하는 가-저장 동작의 완료 이후 로드동작의 실행을 보장하는 상기 단계는, L2 캐시에서 로드 동작 완료 이전에 일치하는 가-저장 동작이 완료를 기다리는 과정을 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 3 항에 있어서, L2 캐시에서 일치하는 가-저장 동작이 완료되면, L2 캐시에 의해 로드 동작이 진행되고, 일치하는 가-저장 동작에 의해 무효화되는 라인을 지닌 다른 L1 캐시에 L2 캐시가 무효화 신호를 전달하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, 가-저장 동작의 레코드를 관리하는 상기 단계는,- L2 캐시에서 주어진 프로세서로부터 주어진 가-저장 동작을 수신하고, 이때, 주어진 가-저장 동작은 이것이 예측치임을 나타내도록 표시되며, 그리고- 주어진 가-저장 동작을 레코드에 저장하는,이상의 과정을 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, L2 캐시에서 주어진 저장 동작이 완료되면, 상기 방법은,- 주어진 저장 동작을 개시한 소스 프로세서에 확인 메시지를 전송하고, 그 리고- 상기 확인 메시지에 따라 소스 프로세서로부터 이동 신호를 수신하면, 주어진 저장 동작이 더 이상 예측치가 아님을 표시하도록 레코드를 업데이트하는,이상의 단계를 추가로 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 6 항에 있어서, 소스 프로세서에서 확인 메시지를 수신하면, L2 캐시에 이동 신호를 보내기 전에 모든 선행 저장 동작이 완료될 때까지 소스 프로세서가 기다리는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 6 항에 있어서, L2 캐시에서 주어진 저장 동작이 완료되면, 상기 방법은,- 주어진 저장 동작으로 덮어쓰여진 캐시 라인을 지닌 L1 캐시에 무효화 신호를 전달하는단계를 추가로 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, L2 캐시에 연결된 각각의 프로세서에 대하여, 가-저장 동작의 레코드는 가-저장 동작을 지닌 저장 큐를 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서,상기 L2 캐시는 다수의 뱅크를 포함하고, 그리고각각의 L2 뱅크에 대하여, 가-저장 동작의 레코드는 L2 캐시에 연결된 각각의 프로세서에 대한 저장 큐를 포함하며, 이때, 주어진 저장 큐가 가-저장 동작을 지니는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, 상기 방법은,- 멀티프로세서 시스템의 프로세서에 연결된 L1 캐시로부터 L2 캐시에서 저장 동작을 수신하고,- 저장 동작이 전달되는 동일한 위치로 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작이 레코드를 검사하며, 그리고- 일치하는 가-저장 동작이 있을 경우, 저장 동작을 드롭(drop)시키는,이상의 단계를 추가로 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 제 1 항에 있어서, 상기 방법은,- 타겟 캐시 라인에 대한 주어진 저장 동작을 실행하기 위해 타겟 캐시 라인에 대한 리드-투-오온(read-to-own) 요청을 수신하고,- 타겟 캐시 라인에 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작의 레코드를 검사하며, 그리고- 일치하는 가-저장 동작이 있을 경우, 타겟 캐시 라인을 요청 프로세서에 기록 전용 상태로 전달하여, 요청 프로세서가 타겟 캐시 라인에 대한 기록 동작을 실행할 수 있도록 하여, 데드락 컨디션(deadlock condition)을 방지하는이상의 단계를 추가로 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 방법.
- 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치로서, 이 장치는,- L2 캐시,- L2 캐시에서 처리중인 가-저장 동작(speculative store operations)을 식별하는 정보를 지닌 L2 캐시에서의 레코드,이때, 가-저장 동작은 선행 저장 동작이 되돌아오기 전에 예측치로(speculatively) 실행되는 저장 동작이며,- 프로세서에 연결된 L1 캐시로부터 로드 동작(load operations)을 수신할 때 아래와 같은 기능을 하는, L2 캐시에서의 로드 처리 메커니즘으로서, 즉,1) 로드 동작이 전달되는 동일한 위치로 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작이 레코드를 검사하고, 그리고2) 일치하는 가-저장 동작이 존재할 경우, 일치하는 가-저장 동작의 완료 이후 로드 동작이 진행되는 것을 보장하는,이러한 기능을 하는 로드 처리 메커니즘을 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, 차후에 로드 동작을 프로세서가 재시도할 수 있도록 프로세서에 리트라이 동작(retry operations)을 보냄으로서 일치하는 가-저장 동작이 완료된 후 로드 동작이 진행되는 것을 보장하도록 상기 로드 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, L2 캐시에서 로드 동작 완료 이전에 일치하는 가-저장 동작이 완료되는 것을 기다리도록 상기 로드 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 15 항에 있어서, L2 캐시에서 일치하는 가-저장 동작이 완료되면, 상기 L2 캐시는,- 로드 동작을 진행시키게 하고, 그리고- 일치하는 가-저장 동작에 의해 무효화되는 라인을 지닌 다른 L1 캐시에 무효화 신호를 보내는,이상의 기능을 행하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, 상기 장치는 저장 처리 메커니즘을 추가로 포함하고, 상 기 저장 처리 메커니즘은,- L2 캐시에서 주어진 프로세서로부터 주어진 가-저장 동작을 수신하고, 이때, 주어진 가-저장 동작은 예측치임을 나타내도록 표시되며, 그리고- 주어진 가-저장 동작을 레코드에 저장하는,이상의 기능을 행하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, 상기 장치는 저장 처리 메커니즘을 추가로 포함하고,이때, L2 캐시에서 주어진 저장 동작이 완료되면, 주어진 저장 동작을 개시한 소스 프로세서에 확인 메시지를 보내도록 상기 저장 처리 메커니즘이 기능하고, 그리고또한, 확인 메시지에 따라 소스 프로세서로부터 이동 신호를 수신하면, 주어진 저장 동작이 더 이상 예측치가 아님을 표시하고자 레코드를 업데이트하도록 상기 저장 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 18 항에 있어서, 소스 프로세서에서 확인 메시지를 수신하면, L2 캐시에 이동 신호를 보내기 전에 모든 선행 저장 동작이 완료될 때까지 기다리도록 소스 프로세서가 기능하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 18 항에 있어서, L2 캐시에서 주어진 저장 동작이 완료되면, 주어진 저장 동작으로 덮어쓰여진 L1 캐시 라인을 지닌 L1 캐시에 무효화 신호를 보내도록 상기 저장 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, L2 캐시에 연결된 각각의 프로세서에 대하여, 가-저장 동작의 레코드는 가-저장 동작을 지닌 저장 큐를 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서,L2 캐시는 다수의 뱅크를 포함하고, 그리고각각의 L2 뱅크에 대하여, 가-저장 동작의 레코드는 L2 캐시에 연결된 각각의 프로세서에 대해 저장 큐를 포함하며, 이때, 주어진 저장 큐는 가-저장 동작을 지니는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서,- 타겟 캐시 라인에 대해 주어진 저장 동작을 수행하기 위해 타겟 캐시 라인에 대한 리드-투-오온(read-to-own) 요청을 수신하고,- 타겟 캐시 라인에 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작의 레코드를 검사하는,이러한 기능을 상기 로드 처리 메커니즘이 수행하고, 이때, 일치하는 가-저장 동작이 존재할 경우, 타겟 캐시 라인을 요청 프로세서에 기록 전용 상태로 전달하도록 상기 로드 처리 메커니즘이 기능하며, 그래서, 타겟 캐시 라인에 대한 기록 동작을 요청 프로세서가 실행할 수 있도록 하고, 따라서 데드락 컨디션(deadlock condition)을 방지할 수 있도록 하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 제 13 항에 있어서, 상기 장치는 L2 캐시에서 저장 처리 메커니즘을 추가로 포함하고, 프로세서에 연결된 L1 캐시로부터 저장 동작을 수신하면,- 저장 동작이 전달되는 동일한 위치로 전달되는 일치하는 가-저장 동작이 존재하는 지 결정하고자 가-저장 동작의 레코드를 검사하고, 그리고- 일치하는 가-저장 동작이 존재할 경우, 저장 동작을 드롭시키는,이상의 기능을 상기 저장 처리 메커니즘이 수행하는 것을 특징으로 하는 멀티프로세서 시스템에서의 가-저장 동작 촉진 장치.
- 가-저장 동작을 촉진시키는 멀티프로세서 시스템으로서, 이 시스템은,- L2 캐시,- L2 캐시에 연결된 다수의 L1 캐시,- 다수의 L1 캐시에 연결된 다수의 프로세서,- L2 캐시에서 처리중인 가-저장 동작(speculative store operations)을 식별하는 정보를 지닌 L2 캐시에서의 레코드,이때, 가-저장 동작은 선행 저장 동작이 되돌아오기 전에 예측치로(speculatively) 실행되는 저장 동작이며,- 다수의 L1 캐시 중 한개의 L1 캐시로부터 로드 동작(load operations)을 수신할 때 아래와 같은 기능을 하는, L2 캐시에서의 로드 처리 메커니즘으로서, 즉,1) 로드 동작이 전달되는 동일한 위치로 전달되는 일치하는 가-저장 동작이 있는 지 결정하고자 가-저장 동작이 레코드를 검사하고, 그리고2) 일치하는 가-저장 동작이 존재할 경우, 일치하는 가-저장 동작의 완료 이후 로드 동작이 진행되는 것을 보장하는,이러한 기능을 하는 로드 처리 메커니즘을 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
- 제 25 항에 있어서, 차후에 로드 동작을 L1 캐시가 재시도할 수 있도록 L1 캐시에 리트라이 동작(retry operations)을 보냄으로서 일치하는 가-저장 동작이 완료된 후 로드 동작이 진행되는 것을 보장하도록 상기 로드 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템.
- 제 25 항에 있어서, L2 캐시에서 로드 동작 완료 이전에 일치하는 가-저장 동작이 완료되는 것을 기다리도록 상기 로드 처리 메커니즘이 기능하는 것을 특징으로 하는 멀티프로세서 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30119601P | 2001-06-26 | 2001-06-26 | |
US60/301,196 | 2001-06-26 | ||
PCT/US2002/022157 WO2003001369A2 (en) | 2001-06-26 | 2002-06-26 | Method and apparatus for facilitating speculative stores in a multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040012812A KR20040012812A (ko) | 2004-02-11 |
KR100567099B1 true KR100567099B1 (ko) | 2006-03-31 |
Family
ID=23162357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037014576A KR100567099B1 (ko) | 2001-06-26 | 2002-06-26 | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6704841B2 (ko) |
EP (1) | EP1402349A2 (ko) |
JP (1) | JP4050225B2 (ko) |
KR (1) | KR100567099B1 (ko) |
WO (1) | WO2003001369A2 (ko) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128448A1 (en) * | 2002-12-31 | 2004-07-01 | Intel Corporation | Apparatus for memory communication during runahead execution |
US7266673B2 (en) * | 2003-05-02 | 2007-09-04 | Advanced Micro Devices, Inc. | Speculation pointers to identify data-speculative operations in microprocessor |
US7363470B2 (en) * | 2003-05-02 | 2008-04-22 | Advanced Micro Devices, Inc. | System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor |
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 |
US7769950B2 (en) * | 2004-03-24 | 2010-08-03 | Qualcomm Incorporated | Cached memory system and cache controller for embedded digital signal processor |
US7484045B2 (en) | 2004-03-30 | 2009-01-27 | Intel Corporation | Store performance in strongly-ordered microprocessor architecture |
JP2006155080A (ja) * | 2004-11-26 | 2006-06-15 | Fujitsu Ltd | メモリ制御装置およびメモリ制御方法 |
US7984248B2 (en) * | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US20060179174A1 (en) * | 2005-02-02 | 2006-08-10 | Bockhaus John W | Method and system for preventing cache lines from being flushed until data stored therein is used |
US7644221B1 (en) * | 2005-04-11 | 2010-01-05 | Sun Microsystems, Inc. | System interface unit |
US7376793B2 (en) * | 2005-07-21 | 2008-05-20 | Sun Microsystems, Inc. | Cache coherence protocol with speculative writestream |
US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
US7404041B2 (en) * | 2006-02-10 | 2008-07-22 | International Business Machines Corporation | Low complexity speculative multithreading system based on unmodified microprocessor core |
EP1986101B1 (en) | 2006-02-14 | 2012-06-20 | Fujitsu Ltd. | Coherency maintaining device and coherency maintaining method |
KR100673497B1 (ko) * | 2006-04-14 | 2007-01-24 | (주)핸스건설 | 유압전달장치 |
US20080005504A1 (en) * | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
US9798590B2 (en) * | 2006-09-07 | 2017-10-24 | Intel Corporation | Post-retire scheme for tracking tentative accesses during transactional execution |
US8060482B2 (en) * | 2006-12-28 | 2011-11-15 | Intel Corporation | Efficient and consistent software transactional memory |
US8370705B1 (en) * | 2009-09-23 | 2013-02-05 | Nvidia Corporation | System and method for calculating a checksum address while maintaining error correction information |
US9052967B2 (en) * | 2010-07-30 | 2015-06-09 | Vmware, Inc. | Detecting resource deadlocks in multi-threaded programs by controlling scheduling in replay |
KR101996351B1 (ko) | 2012-06-15 | 2019-07-05 | 인텔 코포레이션 | 통합된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 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 |
KR101832574B1 (ko) * | 2012-06-15 | 2018-02-26 | 인텔 코포레이션 | 모든 store들이 캐시의 모든 워드들에 대한 검사를 스누핑해야만 하는 것을 방지하기 위해 store들을 필터링하는 방법 및 시스템 |
KR101745640B1 (ko) * | 2012-06-15 | 2017-06-09 | 인텔 코포레이션 | 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법 |
CN104583957B (zh) | 2012-06-15 | 2018-08-10 | 英特尔公司 | 具有无消歧乱序加载存储队列的重新排序的推测性指令序列 |
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 |
KR101826399B1 (ko) | 2012-06-15 | 2018-02-06 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
KR102248470B1 (ko) * | 2012-06-15 | 2021-05-06 | 인텔 코포레이션 | 메모리로부터 순차적으로 판독하는 load들을 구성하는 메모리 일관성 모델에서 비순차 load들을 갖는 세마포어 방법 및 시스템 |
CN104583943B (zh) | 2012-06-15 | 2018-06-08 | 英特尔公司 | 拥有具有分布式结构的动态分派窗口的虚拟加载存储队列 |
WO2013188754A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A disambiguation-free out of order load store queue |
US10574727B2 (en) * | 2015-10-21 | 2020-02-25 | Honeywell International Inc. | MIB data broadcast using inexpensive method incorporating microcontroller and FPGA |
JP6318440B2 (ja) * | 2016-10-07 | 2018-05-09 | インテル・コーポレーション | 無制限トランザクショナルメモリ(utm)システムの最適化 |
US10282298B2 (en) | 2017-06-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Store buffer supporting direct stores to a coherence point |
US10303603B2 (en) | 2017-06-13 | 2019-05-28 | Microsoft Technology Licensing, Llc | Low power multi-core coherency |
US10691593B1 (en) * | 2018-12-19 | 2020-06-23 | Micron Technology, Inc. | Predictive data storage hierarchical memory systems and methods |
US11061824B2 (en) * | 2019-09-03 | 2021-07-13 | Microsoft Technology Licensing, Llc | Deferring cache state updates in a non-speculative cache memory in a processor-based system in response to a speculative data request until the speculative data request becomes non-speculative |
US10983801B2 (en) * | 2019-09-06 | 2021-04-20 | Apple Inc. | Load/store ordering violation management |
US11960400B2 (en) * | 2022-04-26 | 2024-04-16 | Cadence Design Systems, Inc. | Managing multiple cache memory circuit operations |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623628A (en) * | 1994-03-02 | 1997-04-22 | Intel Corporation | Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue |
US5765208A (en) * | 1995-09-29 | 1998-06-09 | Motorola, Inc. | Method of speculatively executing store instructions prior to performing snoop operations |
US5838943A (en) * | 1996-03-26 | 1998-11-17 | Advanced Micro Devices, Inc. | Apparatus for speculatively storing and restoring data to a cache memory |
US6065103A (en) * | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
US6463507B1 (en) * | 1999-06-25 | 2002-10-08 | International Business Machines Corporation | Layered local cache with lower level cache updating upper and lower level cache directories |
US6473833B1 (en) * | 1999-07-30 | 2002-10-29 | International Business Machines Corporation | Integrated cache and directory structure for multi-level caches |
US6523109B1 (en) * | 1999-10-25 | 2003-02-18 | Advanced Micro Devices, Inc. | Store queue multimatch detection |
US6535962B1 (en) * | 1999-11-08 | 2003-03-18 | International Business Machines Corporation | System and method for prefetching data using a hardware prefetch mechanism |
-
2002
- 2002-06-26 US US10/186,091 patent/US6704841B2/en not_active Expired - Lifetime
- 2002-06-26 JP JP2003507694A patent/JP4050225B2/ja not_active Expired - Lifetime
- 2002-06-26 KR KR1020037014576A patent/KR100567099B1/ko active IP Right Grant
- 2002-06-26 EP EP02752291A patent/EP1402349A2/en not_active Withdrawn
- 2002-06-26 WO PCT/US2002/022157 patent/WO2003001369A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20020199063A1 (en) | 2002-12-26 |
JP4050225B2 (ja) | 2008-02-20 |
JP2004533079A (ja) | 2004-10-28 |
WO2003001369A2 (en) | 2003-01-03 |
EP1402349A2 (en) | 2004-03-31 |
US6704841B2 (en) | 2004-03-09 |
WO2003001369A3 (en) | 2003-07-03 |
KR20040012812A (ko) | 2004-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100567099B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
KR100704089B1 (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치 | |
US7827354B2 (en) | Victim cache using direct intervention | |
US7305523B2 (en) | Cache memory direct intervention | |
US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
US6434641B1 (en) | System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme | |
KR100243853B1 (ko) | 개량된메모리아키텍쳐를위한방법및장치 | |
JP4298800B2 (ja) | キャッシュメモリにおけるプリフェッチ管理 | |
US6374332B1 (en) | Cache control system for performing multiple outstanding ownership requests | |
US6457101B1 (en) | System and method for providing the speculative return of cached data within a hierarchical memory system | |
JP2010507160A (ja) | データ処理装置の共有メモリへの書込みアクセス要求の処理 | |
JPH10133943A (ja) | リンクリスト形成方法 | |
US6105108A (en) | Method and apparatus for releasing victim data buffers of computer systems by comparing a probe counter with a service counter | |
WO1999035578A1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
KR100851738B1 (ko) | 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리 | |
US6202126B1 (en) | Victimization of clean data blocks | |
JP4577729B2 (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
WO1997004392A1 (en) | Shared cache memory device | |
US5978886A (en) | Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache | |
US6839806B2 (en) | Cache system with a cache tag memory and a cache tag buffer | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
US5907853A (en) | Method and apparatus for maintaining duplicate cache tags with selectable width | |
JPH07101412B2 (ja) | データ事前取出し方法およびマルチプロセッサ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130305 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140228 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150302 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160303 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20170302 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20190227 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20200227 Year of fee payment: 15 |