KR101594090B1 - 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 - Google Patents
공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 Download PDFInfo
- Publication number
- KR101594090B1 KR101594090B1 KR1020140029403A KR20140029403A KR101594090B1 KR 101594090 B1 KR101594090 B1 KR 101594090B1 KR 1020140029403 A KR1020140029403 A KR 1020140029403A KR 20140029403 A KR20140029403 A KR 20140029403A KR 101594090 B1 KR101594090 B1 KR 101594090B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory access
- instruction
- processor
- memory
- instructions
- 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.)
- Active
Links
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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation 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/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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
Description
도 1은 컴퓨팅 시스템의 일 실시예의 블록도이다.
도 2는 공유 메모리에 대한 액세스들의 동기화를 완화하는 방법의 일 실시예의 블록 흐름도이다.
도 3은 완화된 동기화 모드에 있을 때 메모리 액세스 동기화 명령어들을 비동작들(NOP들)로 디코딩하도록 동작할 수 있는 디코드 논리의 일 실시예의 블록도이다.
도 4는 완화된 동기화 모드에 있을 때 메모리 액세스 동기화 명령어들이 메모리 액세스 동기화를 실행하지 않게 하기 위해 메모리 액세스 동기화 명령어들을 회수하도록 동작할 수 있는 메모리 서브시스템의 일 실시예의 블록도이다.
도 5는 완화된 동기화 모드에 있을 때 하나 이상의 동기화 메모리 액세스 명령어들을 하나 이상의 대응하는 비동기화 메모리 액세스 명령어들로 변환하도록 동작할 수 있는 디코드 논리의 일 실시예의 블록도이다.
도 6은 제어 흐름이 메모리 액세스 명령어 및/또는 메모리 액세스 동기화 명령어로 진행하는 것을 조건부로 허가하거나 허가하지 않기 위한 조건부 분기 명령어를 갖는 코드의 일례의 블록도이다.
도 7은 아키텍처 완화된 동기화 모드(architectural relaxed synchronization mode)에 기초하여 메모리 액세스 동기화를 실시 또는 완화하기 위한 조건부 분기 명령어를 예측하도록 동작할 수 있는 분기 예측기의 일 실시예의 블록도이다.
도 8은 완화된 메모리 액세스 동기화 모드를 사용하도록 프로세서를 구성하는 방법의 일 실시예의 블록 흐름도이다.
도 9a는 본 발명의 실시예들에 따른 예시적인 순차 파이프라인 및 예시적인 레지스터 개명 비순차 발행/실행 파이프라인 양자를 나타내는 블록도이다.
도 9b는 본 발명의 실시예들에 따른 프로세서에 포함될 순차 아키텍처 코어의 실시예 및 예시적인 레지스터 개명 비순차 발행/실행 아키텍처 코어 양자를 나타내는 블록도이다.
도 10a는 본 발명의 실시예들에 따른, 단일 프로세서 코어, 온-다이 상호접속 네트워크에 대한 그의 접속 및 레벨 2(L2) 캐시의 그의 로컬 서브세트의 블록도이다.
도 10b는 본 발명의 실시예들에 따른 도 10a의 프로세서 코어의 일부의 확대도이다.
도 11은 본 발명의 실시예들에 따른, 둘 이상의 코어를 가질 수 있는, 통합 메모리 제어기를 가질 수 있는, 그리고 통합 그래픽을 가질 수 있는 프로세서의 블록도이다.
도 12는 본 발명의 일 실시예에 따른 시스템의 블록도이다.
도 13은 본 발명의 일 실시예에 따른 제1의 더 특정한 예시적인 시스템의 블록도이다.
도 14는 본 발명의 일 실시예에 따른 제2의 더 특정한 예시적인 시스템의 블록도이다.
도 15는 본 발명의 일 실시예에 따른 SoC의 블록도이다.
도 16은 본 발명의 실시예들에 따른 소스 명령어 세트 내의 이진 명령어들을 타겟 명령어 세트 내의 이진 명령어들로 변화하기 위한 소프트웨어 명령어 컨버터의 사용을 대비시키는 블록도이다.
Claims (31)
- 프로세서로서,
복수의 논리 프로세서;
상기 복수의 논리 프로세서 중 제1 논리 프로세서 - 상기 제1 논리 프로세서는 메모리의 적어도 일부에 대한 액세스들을 동기화하는 메모리 액세스 동기화 명령어를 포함하는 소프트웨어를 실행하고, 상기 메모리 액세스 동기화 명령어는 판독-변경-기록 명령어, 비교 및 교체 명령어, 테스트 및 설정 명령어, 및 명령어들의 로딩-링크/저장-조건부 쌍 중 저장-조건부 명령어로부터 선택됨 -; 및
상기 프로세서가 완화된 메모리 액세스 동기화 모드에 있을 때 상기 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하기 위한 메모리 액세스 동기화 완화 논리 - 상기 메모리 액세스 동기화 완화 논리는 상기 메모리 액세스 동기화 명령어를 저장 및 기록으로부터 선택된 명령어로 변환하기 위한 논리를 포함함 -
를 포함하는 프로세서. - 제1항에 있어서,
상기 프로세서는 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하기 위한 하나 이상의 아키텍처-가시 비트(architecturally-visible bit)를 갖는 프로세서. - 제2항에 있어서,
상기 하나 이상의 아키텍처-가시 비트는 소프트웨어에 의해 액세스 가능하여, 상기 소프트웨어는 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하도록 상기 하나 이상의 아키텍처-가시 비트를 변경하는 것이 가능한 프로세서. - 제2항에 있어서,
상기 하나 이상의 아키텍처-가시 비트는 상기 메모리의 상기 적어도 일부에 대응하고, 상기 메모리의 제2의 상이한 부분에 대응하는 하나 이상의 아키텍처-가시 비트의 다른 세트를 더 포함하는 프로세서. - 삭제
- 삭제
- 프로세서로서,
복수의 논리 프로세서;
상기 복수의 논리 프로세서 중 제1 논리 프로세서 - 상기 제1 논리 프로세서는 메모리의 적어도 일부에 대한 액세스들을 동기화하는 메모리 액세스 동기화 명령어를 포함하는 소프트웨어를 실행하고, 상기 메모리 액세스 동기화 명령어는 조건부 로딩 명령어 및 조건부 저장 명령어로부터 선택된 조건부 메모리 액세스 명령어를 포함함 -; 및
상기 프로세서가 완화된 메모리 액세스 동기화 모드에 있을 때 상기 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하기 위한 메모리 액세스 동기화 완화 논리 - 상기 메모리 액세스 동기화 완화 논리는 상기 조건부 메모리 액세스 명령어를 대응하는 무조건 메모리 액세스 명령어로 변환하기 위한 논리를 포함함 -
를 포함하는 프로세서. - 삭제
- 삭제
- 프로세서에서의 방법으로서,
복수의 논리 프로세서 중 제1 논리 프로세서에 대한 명령어들의 세트를 인출하는 단계 - 상기 명령어들의 세트는 메모리의 적어도 일부에 대한 액세스들의 동기화를 야기하기 위한 메모리 액세스 동기화 명령어를 포함하고, 상기 인출하는 단계는 조건부 로딩 명령어 및 조건부 저장 명령어로부터 선택된 조건부 메모리 액세스 명령어인 상기 메모리 액세스 동기화 명령어를 인출하는 단계를 포함함 -;
상기 조건부 메모리 액세스 명령어를 대응하는 무조건 메모리 액세스 명령어로 변환하는 단계; 및
상기 메모리 액세스 동기화 명령어의 동기화를 고려하지 않고서 상기 제1 논리 프로세서로부터 상기 메모리의 상기 적어도 일부에 액세스하는 단계
를 포함하는 방법. - 제10항에 있어서,
상기 프로세서가 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하는 하나 이상의 아키텍처-가시 비트를 검사함으로써 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있는 것으로 결정하는 단계를 더 포함하는 방법. - 제11항에 있어서,
상기 프로세서가 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하도록 상기 하나 이상의 아키텍처-가시 비트를 변경하는 소프트웨어를 더 포함하는 방법. - 제10항에 있어서,
상기 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하는 단계를 더 포함하는 방법. - 삭제
- 삭제
- 프로세서에서의 방법으로서,
복수의 논리 프로세서 중 제1 논리 프로세서에 대한 명령어들의 세트를 인출하는 단계 - 상기 명령어들의 세트는 메모리의 적어도 일부에 대한 액세스들의 동기화를 야기하기 위한 메모리 액세스 동기화 명령어를 포함하고, 상기 인출하는 단계는 판독-변경-기록 명령어, 비교 및 교체 명령어, 테스트 및 설정 명령어, 및 명령어들의 로딩-링크/저장-조건부 쌍 중 저장-조건부 명령어로부터 선택된 명령어인 상기 메모리 액세스 동기화 명령어를 인출하는 단계를 포함함 -;
조건부 메모리 액세스 명령어를 저장 및 기록으로부터 선택된 명령어로 변환하는 단계; 및
상기 메모리 액세스 동기화 명령어의 동기화를 고려하지 않고서 상기 제1 논리 프로세서로부터 상기 메모리의 상기 적어도 일부에 액세스하는 단계
를 포함하는 방법. - 삭제
- 삭제
- 명령어들을 처리하기 위한 시스템으로서,
상호접속;
상기 상호접속과 결합된 프로세서; 및
상기 상호접속과 결합된 동적 랜덤 액세스 메모리(DRAM)
를 포함하고,
상기 DRAM은, 기계에 의해 실행될 때 상기 기계로 하여금,
어떠한 다른 논리 프로세서도 메모리의 적어도 일부에 액세스하지 않을 때 상기 프로세서의 복수의 논리 프로세서 중 제1 논리 프로세서가 완화된 메모리 액세스 동기화 모드에서 동작하는 것을 허가하기로 결정하는 동작; 및
상기 제1 논리 프로세서가 상기 완화된 메모리 액세스 동기화 모드에서 동작하는 것이 허가된다는 것을 지시하도록 상기 프로세서의 하나 이상의 아키텍처-가시 비트를 변경하는 동작
을 포함하는 동작들을 수행하게 하는 명령어들을 저장하고,
상기 완화된 메모리 액세스 동기화 모드에서 동작하는 것이 허가될 때, 상기 제1 논리 프로세서는 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하는 시스템. - 제19항에 있어서,
상기 명령어들은 운영 체제의 명령어들을 포함하는 시스템. - 삭제
- 명령어들을 저장한 비일시적 기계 판독 가능 저장 매체로서,
상기 명령어들은, 기계에 의해 실행되는 경우에, 상기 기계로 하여금,
어떠한 다른 논리 프로세서도 메모리의 적어도 일부에 액세스하지 않을 때 상기 기계의 복수의 논리 프로세서 중 제1 논리 프로세서가 완화된 메모리 액세스 동기화 모드에서 동작하는 것을 허가하기로 결정하는 동작; 및
상기 제1 논리 프로세서가 상기 완화된 메모리 액세스 동기화 모드에서 동작하는 것이 허가된다는 것을 지시하도록 상기 기계의 하나 이상의 아키텍처-가시 비트를 변경하는 동작
을 포함하는 동작들을 수행하게 하고,
상기 완화된 메모리 액세스 동기화 모드에서 동작하는 것이 허가될 때, 상기 제1 논리 프로세서는 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하는 비일시적 기계 판독 가능 저장 매체. - 삭제
- 제7항에 있어서,
상기 프로세서는 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하기 위한 하나 이상의 아키텍처-가시 비트를 갖는 프로세서. - 제24항에 있어서,
상기 하나 이상의 아키텍처-가시 비트는 소프트웨어에 의해 액세스 가능하여, 상기 소프트웨어는 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하도록 상기 하나 이상의 아키텍처-가시 비트를 변경하는 것이 가능한 프로세서. - 제24항에 있어서,
상기 하나 이상의 아키텍처-가시 비트는 상기 메모리의 상기 적어도 일부에 대응하고, 상기 메모리의 제2의 상이한 부분에 대응하는 하나 이상의 아키텍처-가시 비트의 다른 세트를 더 포함하는 프로세서. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 프로세서는 어떠한 다른 논리 프로세서도 상기 메모리의 상기 적어도 일부에 액세스하지 않을 때 상기 완화된 메모리 액세스 동기화 모드에 있게 되는 프로세서. - 제7항 및 제24항 내지 제26항 중 어느 한 항에 있어서,
상기 프로세서는 어떠한 다른 논리 프로세서도 상기 메모리의 상기 적어도 일부에 액세스하지 않을 때 상기 완화된 메모리 액세스 동기화 모드에 있게 되는 프로세서. - 프로세서로서,
복수의 논리 프로세서;
상기 복수의 논리 프로세서 중 제1 논리 프로세서 - 상기 제1 논리 프로세서는 메모리의 적어도 일부에 대한 액세스들을 동기화하는 메모리 액세스 동기화 명령어를 포함하는 소프트웨어를 실행함 -;
상기 프로세서가 완화된 메모리 액세스 동기화 모드에 있을 때 상기 메모리 액세스 동기화 명령어가 상기 메모리의 상기 적어도 일부에 대한 액세스들을 동기화하는 것을 방지하기 위한 메모리 액세스 동기화 완화 논리 - 상기 프로세서는 어떠한 다른 논리 프로세서도 상기 메모리의 상기 적어도 일부에 액세스하지 않을 때 상기 완화된 메모리 액세스 동기화 모드에 있게 됨 -; 및
소프트웨어에 의해 액세스 가능하고, 상기 프로세서가 상기 완화된 메모리 액세스 동기화 모드에 있다는 것을 지시하는 하나 이상의 아키텍처-가시 비트
를 포함하는 프로세서. - 제29항에 있어서,
상기 메모리 액세스 동기화 명령어는 판독-변경-기록 명령어, 비교 및 교체 명령어, 테스트 및 설정 명령어, 및 명령어들의 로딩-링크/저장-조건부 쌍 중 저장-조건부 명령어로부터 선택되고, 상기 메모리 액세스 동기화 완화 논리는 상기 메모리 액세스 동기화 명령어를 저장 및 기록으로부터 선택된 명령어로 변환하기 위한 논리를 포함하는 프로세서. - 제29항에 있어서,
상기 메모리 액세스 동기화 명령어는 조건부 로딩 명령어 및 조건부 저장 명령어로부터 선택된 조건부 메모리 액세스 명령어를 포함하고, 상기 메모리 액세스 동기화 완화 논리는 상기 조건부 메모리 액세스 명령어를 대응하는 무조건 메모리 액세스 명령어로 변환하기 위한 논리를 포함하는 프로세서.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/844,729 | 2013-03-15 | ||
US13/844,729 US9304940B2 (en) | 2013-03-15 | 2013-03-15 | Processors, methods, and systems to relax synchronization of accesses to shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140113444A KR20140113444A (ko) | 2014-09-24 |
KR101594090B1 true KR101594090B1 (ko) | 2016-02-15 |
Family
ID=50482493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140029403A Active KR101594090B1 (ko) | 2013-03-15 | 2014-03-13 | 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9304940B2 (ko) |
JP (2) | JP6006247B2 (ko) |
KR (1) | KR101594090B1 (ko) |
CN (1) | CN104050026B (ko) |
BR (1) | BR102014006021A2 (ko) |
DE (1) | DE102014003671A1 (ko) |
GB (2) | GB2548511B (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304940B2 (en) | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
US9756128B2 (en) * | 2013-04-17 | 2017-09-05 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US10452316B2 (en) | 2013-04-17 | 2019-10-22 | Apeiron Data Systems | Switched direct attached shared storage architecture |
GB2529899B (en) * | 2014-09-08 | 2021-06-23 | Advanced Risc Mach Ltd | Shared Resources in a Data Processing Apparatus for Executing a Plurality of Threads |
US10489158B2 (en) | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
US11544214B2 (en) | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
US20160378480A1 (en) * | 2015-06-27 | 2016-12-29 | Pavel G. Matveyev | Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations |
US10074151B2 (en) * | 2015-09-30 | 2018-09-11 | Intel Corporation | Dense optical flow acceleration |
JP6146508B1 (ja) | 2016-03-31 | 2017-06-14 | 日本電気株式会社 | 同期処理ユニット、デバイス、システムおよび方法 |
US10223002B2 (en) * | 2017-02-08 | 2019-03-05 | Arm Limited | Compare-and-swap transaction |
US10552131B2 (en) | 2017-10-16 | 2020-02-04 | Microsoft Technology Licensing, Llc | Barrier reduction during code translation |
US10866805B2 (en) * | 2018-01-03 | 2020-12-15 | Arm Limited | Speculation barrier instruction |
GB2572578B (en) * | 2018-04-04 | 2020-09-16 | Advanced Risc Mach Ltd | Cache annotations to indicate specultative side-channel condition |
JP7064134B2 (ja) * | 2018-05-11 | 2022-05-10 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP7064135B2 (ja) * | 2018-05-15 | 2022-05-10 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10831500B2 (en) | 2018-06-10 | 2020-11-10 | International Business Machines Corporation | Adaptive locking in elastic threading systems |
US11068612B2 (en) * | 2018-08-01 | 2021-07-20 | International Business Machines Corporation | Microarchitectural techniques to mitigate cache-based data security vulnerabilities |
US10956166B2 (en) | 2019-03-08 | 2021-03-23 | Arm Limited | Instruction ordering |
CN110147253B (zh) * | 2019-05-16 | 2020-10-20 | 湖南毂梁微电子有限公司 | 一种基于延迟栅栏同步操作指令的多核处理器同步方法 |
US12153944B2 (en) | 2019-06-27 | 2024-11-26 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for trusted hypervisors |
US12079102B2 (en) * | 2020-07-14 | 2024-09-03 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for proving the correctness of software on relaxed memory hardware |
US11249766B1 (en) * | 2020-09-14 | 2022-02-15 | Apple Inc. | Coprocessor synchronizing instruction suppression |
US20220413945A1 (en) * | 2021-06-29 | 2022-12-29 | Nvidia Corporation | Synchronization barrier |
CN115113994B (zh) * | 2021-08-30 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 请求处理方法、装置、计算设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748518B1 (en) * | 2000-06-06 | 2004-06-08 | International Business Machines Corporation | Multi-level multiprocessor speculation mechanism |
US20100100688A1 (en) | 2008-10-16 | 2010-04-22 | Microsoft Corporation | Low-level conditional synchronization support |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2230119B (en) | 1989-04-07 | 1993-04-21 | Intel Corp | Conditional execution speed-up on synchronizing instructions |
JP3038781B2 (ja) * | 1989-04-21 | 2000-05-08 | 日本電気株式会社 | メモリアクセス制御回路 |
US6065086A (en) | 1998-02-17 | 2000-05-16 | International Business Machines Corporation | Demand based sync bus operation |
JPH11259437A (ja) | 1998-03-12 | 1999-09-24 | Hitachi Ltd | 不要バリア命令の削減方式 |
JP2938056B1 (ja) | 1998-08-12 | 1999-08-23 | 甲府日本電気株式会社 | マルチホストシステムおよびホストコンピュータ間命令制御方法 |
JP3641997B2 (ja) | 2000-03-30 | 2005-04-27 | 日本電気株式会社 | プログラム変換装置及び方法並びに記録媒体 |
JP4915038B2 (ja) | 2001-08-08 | 2012-04-11 | コニカミノルタホールディングス株式会社 | インクジェット記録方法 |
US7328314B2 (en) * | 2002-06-19 | 2008-02-05 | Alcatel-Lucent Canada Inc. | Multiprocessor computing device having shared program memory |
JP2006185232A (ja) | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム |
US20070143755A1 (en) | 2005-12-16 | 2007-06-21 | Intel Corporation | Speculative execution past a barrier |
JP4148528B2 (ja) | 2006-10-31 | 2008-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 排他制御を効率化する技術 |
US20080109604A1 (en) * | 2006-11-08 | 2008-05-08 | Sicortex, Inc | Systems and methods for remote direct memory access to processor caches for RDMA reads and writes |
US20080307422A1 (en) * | 2007-06-08 | 2008-12-11 | Kurland Aaron S | Shared memory for multi-core processors |
US8131951B2 (en) * | 2008-05-30 | 2012-03-06 | Freescale Semiconductor, Inc. | Utilization of a store buffer for error recovery on a store allocation cache miss |
JP5270268B2 (ja) | 2008-09-05 | 2013-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体 |
JP5088754B2 (ja) | 2009-12-18 | 2012-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | システム、方法、プログラムおよびコード生成装置 |
US9069545B2 (en) | 2011-07-18 | 2015-06-30 | International Business Machines Corporation | Relaxation of synchronization for iterative convergent computations |
US8607247B2 (en) | 2011-11-03 | 2013-12-10 | Advanced Micro Devices, Inc. | Method and system for workitem synchronization |
US20140281429A1 (en) * | 2013-03-14 | 2014-09-18 | Qualcomm Incorporated | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media |
US9304940B2 (en) | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
-
2013
- 2013-03-15 US US13/844,729 patent/US9304940B2/en active Active
-
2014
- 2014-02-18 JP JP2014028277A patent/JP6006247B2/ja active Active
- 2014-02-20 GB GB1709375.8A patent/GB2548511B/en not_active Expired - Fee Related
- 2014-02-20 GB GB1402964.9A patent/GB2512478B/en not_active Expired - Fee Related
- 2014-03-13 KR KR1020140029403A patent/KR101594090B1/ko active Active
- 2014-03-14 BR BR102014006021A patent/BR102014006021A2/pt active Search and Examination
- 2014-03-14 DE DE102014003671.5A patent/DE102014003671A1/de active Pending
- 2014-03-17 CN CN201410097357.6A patent/CN104050026B/zh active Active
-
2016
- 2016-04-04 US US15/089,883 patent/US10235175B2/en active Active
- 2016-09-08 JP JP2016175998A patent/JP6526609B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748518B1 (en) * | 2000-06-06 | 2004-06-08 | International Business Machines Corporation | Multi-level multiprocessor speculation mechanism |
US20100100688A1 (en) | 2008-10-16 | 2010-04-22 | Microsoft Corporation | Low-level conditional synchronization support |
Also Published As
Publication number | Publication date |
---|---|
GB2548511A (en) | 2017-09-20 |
JP2016207232A (ja) | 2016-12-08 |
CN104050026A (zh) | 2014-09-17 |
GB2512478A (en) | 2014-10-01 |
US20140281196A1 (en) | 2014-09-18 |
JP6526609B2 (ja) | 2019-06-05 |
US10235175B2 (en) | 2019-03-19 |
BR102014006021A2 (pt) | 2015-10-20 |
GB2548511B (en) | 2018-01-17 |
DE102014003671A1 (de) | 2014-09-18 |
US9304940B2 (en) | 2016-04-05 |
GB201709375D0 (en) | 2017-07-26 |
US20160216967A1 (en) | 2016-07-28 |
GB2512478B (en) | 2017-08-30 |
JP2014182795A (ja) | 2014-09-29 |
GB201402964D0 (en) | 2014-04-09 |
CN104050026B (zh) | 2018-10-23 |
KR20140113444A (ko) | 2014-09-24 |
JP6006247B2 (ja) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101594090B1 (ko) | 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 | |
US10338927B2 (en) | Method and apparatus for implementing a dynamic out-of-order processor pipeline | |
KR101847857B1 (ko) | 스레드 일시중지 프로세서들, 방법들, 시스템들 및 명령어들 | |
KR101594502B1 (ko) | 바이패스 멀티플 인스턴스화 테이블을 갖는 이동 제거 시스템 및 방법 | |
CN101957744B (zh) | 一种用于微处理器的硬件多线程控制方法及其装置 | |
KR101748506B1 (ko) | 실시간 명령어 추적 프로세서들, 방법들 및 시스템들 | |
KR101806279B1 (ko) | 명령어 순서 강제 명령어들의 쌍들, 프로세서들, 방법들, 및 시스템들 | |
US9372698B2 (en) | Method and apparatus for implementing dynamic portbinding within a reservation station | |
JP2017509063A (ja) | ストアをソート及びリタイアする命令及びロジック | |
US11048516B2 (en) | Systems, methods, and apparatuses for last branch record support compatible with binary translation and speculative execution using an architectural bit array and a write bit array | |
US10877765B2 (en) | Apparatuses and methods to assign a logical thread to a physical thread | |
US10956160B2 (en) | Method and apparatus for a multi-level reservation station with instruction recirculation | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20140313 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20150527 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: 20151104 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20160204 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20160205 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20190129 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20190129 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20210127 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20220127 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20230130 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20231205 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20241128 Start annual number: 10 End annual number: 10 |