KR100615411B1 - 풋/겟 윈도우를 통한 일관성 관리 방법 및 시스템 - Google Patents
풋/겟 윈도우를 통한 일관성 관리 방법 및 시스템 Download PDFInfo
- Publication number
- KR100615411B1 KR100615411B1 KR1020037010817A KR20037010817A KR100615411B1 KR 100615411 B1 KR100615411 B1 KR 100615411B1 KR 1020037010817 A KR1020037010817 A KR 1020037010817A KR 20037010817 A KR20037010817 A KR 20037010817A KR 100615411 B1 KR100615411 B1 KR 100615411B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- processor
- data
- memory
- hardware device
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 26
- 230000000694 effects Effects 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- 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
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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
-
- 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/526—Mutual exclusion algorithms
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
- F24F11/77—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
-
- 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
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mechanical Engineering (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Thermal Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Discrete Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
- Glass Compositions (AREA)
- Superconductors And Manufacturing Methods Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Polyoxymethylene Polymers And Polymers With Carbon-To-Carbon Bonds (AREA)
- Investigating Or Analyzing Materials By The Use Of Fluid Adsorption Or Reactions (AREA)
Abstract
복수-프로세서 컴퓨터 시스템의 두개의 프로세서 노드의 두 프로세서 사이에 일관성을 관리하기 위한 방법 및 장치이다. 일반적으로 본 발명은 메시지 전달 병렬 컴퓨터에서의 캐시 일관성을 관리를 단순화하고 속도를 증가시키는 소프트웨어 알고리즘과, 이러한 캐시 일관성 알고리즘을 지원하는 하드웨어 장치에 관한 것이다. 소프트웨어 알고리즘은 풋/겟 윈도우의 개방 및 폐쇄를 사용하여 캐시 일관성을 달성하기 위한 활동들을 조절한다. 하드웨어 장치는 상기 노드의 물리적 메모리 어드레스 공간 내에서 (a)실제 존재하지는 않고, (b) 따라서 상기 처리 요소로부터의 판독 또는 기록 요청에 대해서 즉시 응답이 가능한 가상 메모리 영역을 생성하는 하드웨어 어드레스 디코더의 확장일 수 있다.
풋/겟 윈도우, 캐시 일관성 관리, 병렬 컴퓨터
Description
(관련된 출원에 대한 상호참조)
본 발명은 2001년 2월 24일자로 출원된 "MASSIVELY PARALLEL SUPERCOMPUTER"라는 제목의 공유되고 동시에 계류 중인 미국 가특허 출원 일련 번호 60/271,124의 우선권을 주장하고 있으며, 이 가특허 출원의 전체 내용 및 개시 사항은 본 명세서에 완전히 개시되어 있는 것처럼 본 명세서에 참조로서 명백히 통합되어 있다. 이 가특허 출원은 추가적으로 동일자로 출원된 다음의 공유되고 동시에 계류 중인 미국 특허 출원들에 관련되어 있으며, 이러한 특허 출원들 각각의 전체 내용 및 개시 사항은 본 명세서에 완전히 개시되어 있는 것처럼 본 명세서에 참조로서 명백히 통합되어 있다: "Class Networking Routing"이라는 제목의 미국 특허 공개 번호(US 2004/0091155 A1); "A Global Tree Network For Computing Structures"라는 제목의 미국 특허 공개 번호(US 2004/078493 A1); "Global Interrupt and Barrier Network"라는 제목의 미국 특허 공개 번호(US 2004/068599 A1); "Optimized Scalable Network Switch"라는 제목의 미국 특허 공개 번호(US 2004/078482 A1); "Arithmetic Functions in Torus and Tree Networks"라는 제목의 미국 특허 공개 번호(US 2004/073590 A1); "Data Capture Technique for High Speed Signaling"이라는 제목의 미국 특허 공개 번호(US 2004/114698 A1); "Managing Coherence via Put/Get Windows"라는 제목의 국제 특허 공개 일련 번호(WO 02/069152 A1); "Low Latency Memory Access And Synchronization"이라는 제목의 미국 특허 공개 번호(US 2004/073758 A1); "Twin-Tailed Fail-Over for Fileservers Maintaining Full Performance in the Presence of Failure"라는 제목의 미국 특허 공개 번호(US 2004/073830 A1); "Fault Isolation Through No-Overhead Link Level Checksums"라는 제목의 미국 특허 공개 번호(US 2004/0986601 A1); "Ethernet Addressing Via Physical Location for Massively Parallel Systems"라는 제목의 미국 특허 공개 번호(US 2004/083293 A1); "Fault Tolerance in a Supercomputer Through Dynamic Repartitioning"이라는 제목의 미국 특허 공개 번호(US 2004/153754 A1); "Checkpointing Filesystem"이라는 제목의 미국 특허 공개 번호(US 2003/078933 A1); "Efficient Implementation of Multidimensional Fast Fourier Transform on a Distributed-Memory Parallel Multi-Node Computer"라는 제목의 미국 특허 공개 번호(US 2004/078405 A1); "A Novel Massively Parallel Supercomputer"라는 제목의 미국 특허 공개 번호(US 2004/103218 A1); "Smart Fan Modules and System"이라는 제목의 미국 특허 공개 번호(US 2003/198018 A1).
본 발명은 예컨대 생명 과학 분야에서의 계산에 적용되는 분산-메모리 메시지-전달 병렬 컴퓨터 설계 및 시스템 소프트웨어 분야에 관한 것이다.
"A Novel Massively Parallel Supercomputer"라는 제목의 특허 가출원 번호 60/271,124호에서의 미국 특허 공개 번호(US 2004/103218 A1)에서, 넓은 범위의 응용을 위해서 테라옵스(teraOPS, 초당 1조번의 연산) 단위의 처리 성능을 구현하도록 설계된 3차원 토러스(torus) 형태의 대규모 병렬 슈퍼컴퓨터 구조가 설명되어 있다. 이 구조는 각각의 처리 노드가 6개의 인접 노드에 연결되고 64x32x32의 3차원 토러스로 조성된 65,536개의 처리 노드를 포함한다.
이 슈퍼컴퓨터 구조의 각 처리 노드는 2개의 전자적 프로세서(다른 구성요소와 함께)를 포함하는 반도체 소자이다. 이러한 프로세서 중의 하나는 "계산(Compute) 프로세서"이고 일반적인 동작 모드에서 응용 계산에 지정된다. 다른 하나의 프로세서는 "I/O 프로세서"로 일반적인 동작 모드에서 메시지-전달 통신을 지원하는 활동을 수행하는데 지정되는 서비스 프로세서이다. 이러한 프로세서들 각각은 분리된 제1-레벨 캐시(L1)를 포함하며, 제1-레벨 캐시는 두 프로세서 모두에 의해 접근되는 공통 메모리 내에 저장되는 데이터의 복사본을 포함할 수 있다. 만약 하나의 프로세서가 메모리 위치의 L1 복사본을 변경하고 다른 하나의 프로세서는 동일한 위치의 복사본을 가지고 있다면, 이러한 복사본들이 서로 동일하도록 만들어진 경우, 두 개의 복사본은 "일관성"이 있게 된다.
메시지 전달은 컴퓨터 통신에 있어서 공지된 형태의 기술이고, 프로세서가 명백하게 데이터를 그 자체의 메모리에서 다른 노드의 메모리로 복사하는 것을 의미한다. 위에 기술한 특허 가출원 번호 60/271,124에서 개시된 이중-프로세서 노드에서, I/O 프로세서는 주로 노드의 공통 메모리와 다른 노드들의 공통 메모리 사이에 메시지 전달을 구현하는 데 사용된다. 따라서, 여기서 계산 프로세서에 의해서 소비되는 데이터를 생성(메시지가 수신되었을 때)하고 또한 계산 프로세서에 의해서 생성된 데이터를 소비(메시지를 보내기 위해서)한다. 그 결과로, 이러한 프로세서들에서 그들의 L1 내에 동일한 메모리 위치의 복사본을 가지는 것은 매우 일반적이다. 만약 전달된 메시지가 작고 다수이면, 문제가 심화된다. 따라서, 각각의 프로세서의 L1들을 대규모 회로없이 성능 상에 최소한의 영향을 가지면서 일관성있게 만드는 방법을 찾을 필요가 있다.
대규모 병렬 컴퓨터가 수천개의 처리 노드로 확장될 수 있기 때문에, 통상적인 응용 메시징 트래픽은 메시지 수의 증가를 가져오고, 각각의 그러한 메시지는 컴퓨터 내에서 다른 노드들과의 통신되는 정보를 포함한다. 일반적으로 한 노드는 국부적(local)으로 형성된 메시지를 다른 몇몇 노드에 확산(scatter)시키고, 또한 원격-형성된 메시지 몇 개를 국부적 메모리에 저장하게 된다. 이러한 대규모 컴퓨터에 있어서 전체 성능은 종종 그 시스템의 메시지-전달 성능에 의해 제한된다.
그러한 데이터 전달에 있어서, 문헌(예컨대 MPI-2의 http://www/mpi-forum.org/docs/docs.html에 기재된 내용 참조)에서 설명된 공통 메시지-전달 인터페이스는 "단방향 통신"으로 공지되어 있다. 단방향 통신은 "풋(put)/겟(get)" 메시지-전달 파라다임을 사용하며, 메시지는 소스(겟을 위한) 또는 목적지(풋을 위한)의 메모리 어드레스를 운반(carry)한다. 공통적인 문제점을 가지고 동작하는 병렬 슈퍼컴퓨터에서, 복수의 풋 및 겟은 통상적으로 뱃치(batch)형태로 어셈블(assemble)되고 같이 발행(issue)된다. 이것은 독립적으로 프로세서를 대략적인 동기되어 동작하고 성능을 최대화하도록 유지한다. 복수의 풋과 겟이 발생하는 동안의 시간을 풋/겟 윈도우라고 하자. 이러한 윈도우는 시간(언제 발생하는지) 및 메모리(풋 또는 겟 메시지에 의해 운반되는 메모리 어드레스의 범위) 측면으로 확장된다. 도 2는 다소의 선별(distinct) 메시지를 가지는 풋/겟 윈도우(30)를 도시한다.
풋/겟 윈도우는 일관성의 개념을 대규모 병렬 슈퍼컴퓨터의 서로 다른 처리 노드상의 프로세서들에까지 확장한다. 풋/겟 윈도우의 구현에서, 개방된 시간동안에 윈도우에 풋된 모든 메시지는 그 윈도우가 폐쇄되기 전에 그 윈도우의 메모리 내에 수신되어야 한다는 것을 보장하여야 한다. 유사하게, 윈도우의 메모리 상의 겟은 오로지 그 윈도우가 개방된 시간 동안에만 허용된다. 따라서, 풋/겟 윈도우는 단순히 노드에 있어서 그 메모리 상에서 동작하는 원격 메모리와 동기화하기 위한 메카니즘이다.
풋/겟 윈도우의 관리는 현재 그 풋/겟 메시지들을 버퍼링하거나 또는 명백한 동기화 메시지들을 사용하여 달성된다. 메시지를 버퍼링하는 것은 항상 공급이 제한된 것인 메모리를 소비하게 된다. 각각의 윈도우에 대한 명백한 동기화는 그 윈도우에 접근하는 모든 노드 사이에서 라운드-트립 메시지의 긴 지연 때문에 문제가 된다. 따라서, 계류중인 미국 특허 공개 번호 US 2004/103218 A1에서 설명된 것과 같은 대규모 머신 상에서 이러한 접근법은 확장성이 좋지 않고, 이것은 버퍼링을 하기에는 제한된 메모리 때문이며, 또한 임의의 특정 윈도우에 접근하는 노드의 숫자는 종종 컴퓨터 내에서 처리 노드의 숫자에 따라 비례하기 때문이다.
컴퓨터 설계 분야에서 오래 지속되어왔던 문제점은, 어떻게 이러한 L1 캐시를 일관성있게 유지하느냐에 있다. 통상적인 해결책은 다른 프로세서의 메모리 버스를 "스누핑"하는 것으로 알려진 기술로, 이는 느리고 각각의 프로세서의 성능을 감소시킬 수 있다. 대안적으로, 공통 메모리내 데이터의 L1 구(old) 복사본을 포함하는 프로세서는 새로운 복사본을 요청할 수 있고, 또는 이러한 구 복사본을 쓸모없는 것으로 표시할 수 있지만, 그러나 이러한 것은 복사본이 무효로 될 때를 알아야 하는 것을 필요로 한다. 종종 이러한 것을 아는 것이 불완전하여서, 불필요한 메모리 동작을 강제하게 되고, 더 성능을 감소시킨다. 다른 컴퓨터에서는 "상호잠금(interlock)"을 사용하고, 이는 한 프로세서는 특정 데이터를 사용할 허가를 부여받고 반면 다른 프로세서는 사용할 수 없으며, 이러한 허가는 상기 두 프로세서 사이에 상호작용에 관계하며, 이러한 것은 일반적으로 반도체 소자 내에서 추가적인 복잡한 회로를 필요로 하며, 따라서 상기 두 프로세서의 성능을 감소시킨다.
또 다른 실제상의 흔한 해결책은 공유되도록 의도된 메모리의 모든 캐싱 영역을 억제(disable)하는 것이다. 이 방법은 공유된 데이터로의 접근 뿐만 아니라, 이러한 영역으로의 모든 메모리 접근을 곤란하게 한다.
본 발명의 한 목적은 병렬 처리 컴퓨터 시스템에서 일관성을 관리하기 위한 개선된 절차를 제공하는 것이다.
본 발명의 다른 목적은 대규모 회로없이 각 프로세서의 성능상에 최소한의 영향을 가지면서 복수-프로세서 노드의 각각의 프로세서들의 제1-레벨 캐시 사이의 일관성을 달성하기 위한 것이다.
본 발명의 다른 목적은 성능을 현저하게 감소시키지 않으면서 일관성을 유지하는, 프로세서들 사이 또는 직접 메모리 접근(DMA)장치 사이에서의 효율적이고 고속인 메시지 전달 통신을 달성하기 위해서 이러한 소프트웨어 알고리즘과 같이 수행되는 방법 및 장치를 제공하는 것이다.
이러한 그리고 다른 목적들이 본 발명의 방법 및 장치와 함께 달성된다. 제1 측면에 부합하여, 본 발명은 하나의 처리 요소가 주로 계산을 수행하고 다른 하나의 요소는 주로 메지지 전달 활동을 수행하는 둘 이상의 비-일관성 처리 요소(또는 DMA 제어기까지)를 포함하는 메시지 전달 대규모 병렬 슈퍼컴퓨터(계류중인 미국 특허 공개 번호 US 2004/103218 A1)에서의 캐시 일관성 관리를 단순화하고 현저하게 속도를 증가시키는 소프트웨어 알고리즘을 제공한다. 그러한 대규모 병렬 슈퍼컴퓨터에서, 알고리즘은 종종 일련의 단계들로 진행하고, 각각의 단계는 계산 단계에 이어지는 통신 단계로 이루어진다. 통신 단계에서, 노드들은 계산 단계에서 형성된 데이터와 알고리즘의 다음 단계에 필요한 데이터를 교환한다. 알고리즘의 성질 상, 이러한 단계들은 통상 강하게 동기화되고, 따라서 통신은 전체 머신을 통해서 한꺼번에 발생하게 된다. 따라서, 풋/겟 윈도우 동기화 관리의 부담은 각 통신 단계의 시작 및 종료에서 다수의 노드들 상에서 분할(amortize)될 수 있다. 간략하게는, 통신 단계의 시작에서 다수의 풋/겟 윈도우를 개방하기 위해서 전역 연산이 사용될 수 있고, 통신 단계의 종료에서 다수의 풋/겟 윈도우를 폐쇄하기 위해서 제2의 전역 연산이 사용될 수 있다는 것이다.
캐시 일관성이 보장된 이후가 아니면 I/O 프로세서는 실질적으로 메시지를 송신하거나 수신하지 못하므로, 본 발명은 "풋"(송신)될 데이터가 어떠한 프로세서의 캐시내에도 있지 않고 "겟"(수신)될 데이터 역시 어떠한 프로세서의 캐시내에도 있지 않다는 것을 보장하는 메카니즘을 제공한다. "풋/겟 윈도우"의 개방과 폐쇄라는 이러한 활동들을 조절하여서, 본 발명은 일관성을 달성하기 위해서 필요로 하는 작업의 양을 줄이고 또한 많은 수의 별개의 메시지에 작업을 분할되도록 허용한다. 또한, 노드 내의 두 개의 처리 요소 모두가 이 작업을 수행하여야 때문에, 본 발명은 이러한 작업이 동시에 발생하는 것을 가능하게 한다. 더욱이, 필요시, 이러한 활동들은 계류중인 미국 특허 공개 번호 US 2004/103218 A1에 설명된 전역 장벽 네트워크를 채용한 대규모 병렬 머신 내의 다수의 독립적인 노드에 대해서 조절될 수 있다.
제2 측면에 부합하여, 본 발명은 전술한 캐시 일관성 소프트웨어 알고리즘을 지원하고, 풋/겟 윈도우 상에서 캐시 일관성을 달성하기 위해 필요한 전체 시간(또는 지연)을 제한하기 위한 하드웨어 장치를 제공한다. 이 장치는 노드의 물리적 메모리 어드레스 공간 안에서 (a) 실제 존재하지 않고, (b) 따라서 처리 요소로부터의 판독 및 기록 요청에 대해서 즉시 응답할 수 있는 메모리 영역을 생성하는 것인 하드웨어 어드레스 디코더의 간단한 확장이다. 이것은 또한 (프로세서가 전혀 이용하지 않는) 가비지(garbage) 데이터를 프로세서의 캐시에 들어가게(pulled)함으로써, 이에 의해, 최적의 성능으로, 직전에 변형된 데이터를 축출하고 미변형 데이터를 변위시키기 때문에, 일관성 활동의 속도를 향상시킨다. 이 가비지 데이터를 메모리로부터 실제로 페치(fetch)할 필요가 없고, 오히려 메모리 제어기가 단지 즉각적인 응답만을 필요로 하기 때문에, 더 성능이 빠르게 된다.
단지 변형된 데이터만을 캐시로부터 메모리로 기록하고 클린(clean) 데이터는 단순히 즉시 버려지기 때문에, 더 성능이 빠르다. 더욱이, "풋/겟 윈도우"의 전체 크기가 프로세서의 캐시 크기를, 아마도 많이, 초과하는 경우에, 이러한 방식으로 캐시를 청소하는 것은 통신 영역으로부터의 어떠한 데이터도 캐시 내에 남아있지 않다는 것을 보장하는데 필요한 작업의 전체 양에 대한 상한(upper bound)을 제공한다. 전술한 소프트웨어 알고리즘과 독립적으로 이 하드웨어 장치는 일반적으로 최저 사용 빈도 캐시 대체 정책(Least Recently Used cache replacement policy)을 채택한 컴퓨터 시스템에 있어서 유용하다는 것을 주의해야 한다.
또한, 본 발명의 바람직한 실시예에서 2개의 특정 소프트웨어 명령어가 사용될 수 있다. 한 명령어는, "데이터 캐시 블록 플러시(flush) 및 무효화"로서, 제1 프로세서의 메모리 영역으로부터 공유 메모리 영역으로 데이터를 기록하고 동시에 제1 프로세서가 그 데이터가 메모리 영역에 기록된 데이터를 사용하는 것을 방지하도록 하는데 사용될 수 있다. 제2 소프트웨어 명령어는 "데이터 캐시 블록 영(zero)"으로서, 제1 프로세서의 메모리 영역으로부터 공유 메모리로 데이터를 기록하는데 사용될 수 있다. 이러한 또는 유사한 소프트웨어 명령어들을 사용함으로써, 본 발명의 방법 및 장치는, 소프트웨어 알고리즘과 같이 동작하여, 성능을 현 저하게 감소시키지 않고 일관성을 유지하면서 노드들 사이에 고속 메시지 전달 통신을 달성한다.
본 발명의 더한 장점과 이점은 본 발명의 바람직한 실시예를 구체화하고 도시하는 첨부된 도면을 참조로 하여 이어지는 상세한 설명을 고려하면 명확해 질 것이다.
도 1은 본 발명을 구현한 2개의 프로세서 노드를 도시.
도 2는 본 발명의 구현에 사용될 수 있는 풋/겟 윈도우의 도시.
본 발명은 복수-프로세서 컴퓨터 시스템에서의 일관성 관리를 위한 방법 및 장치에 관한 것이다. 도 1은 본 발명을 구현한 노드(10)를 도시한다. 노드(10)의 각 프로세서(12 및 14)는 각자의 캐시 메모리 영역(16, 20)을 가지며, 또 두 프로세서들은 제3 메모리 영역(22)을 공유한다. 일반적으로 본 발명은 메시지 전달 병렬 컴퓨터에 있어서 캐시 메모리 일관성의 관리를 단순화하고 현저히 속도를 증가시키는 소프트웨어 알고리즘에 관한 것이고, 또한 이러한 캐시 일관성 알고리즘을 지원하는 하드웨어 장치에 관한 것이다. 캐시 일관성을 달성하기 위해 필요한 활동들을 조절하기 위해서, 이 소프트웨어 알고리즘은 풋/겟 윈도우의 개방과 폐쇄를 사용한다. 하드웨어 장치는, 노드의 물리적 메모리 어드레스 공간 안에서 (a) 실제 존재하지 않고, (b) 따라서 처리 요소로부터의 판독 및 기록 요청에 대해서 즉시 응답할 수 있는 물리적 메모리 영역을 생성하는 것인 하드웨어 어드레스 디코더의 간단한 확장일 수 있다.
위에서 기술하였듯이, 본 발명은 "풋/겟" 데이터 전달로 일컬어지는 원칙을 이용한다. 병렬 복수-컴퓨터가 다수의 노드들로 확장될 때, 통상적인 응용 메시징 트래픽은 메시지 수의 증가를 가져오고, 각각의 그러한 메시지는 복수-컴퓨터의 다른 노드들에 의해서 수행되는 작업을 포함하게 된다. 일반적으로 하나의 노드가 국부적으로 제조된 작업 아이템을 다른 다수의 노드에 확산시키고("풋"), 또한 다수의 원격-제조된 작업 아이템을 그 국부적 메모리내로 어셈블하게 된다("겟"). 이러한 복수-컴퓨터에 있어서 전체 성능은 종종 그 시스템의 메시지-전달 성능에 의해 제한된다.
그러한 데이터 전달에 있어서, 문헌(예컨대 MPI-2의 http://www/mpi-forum.org/docs/docs.html에 기재된 내용 참조)에서 설명되어 있는 특히 효율적인 메시지-전달 인터페이스는 "단방향 통신"으로 공지되어 있다. 단방향 통신은 "풋/겟" 메시지-전달 파라다임을 사용하며, 여기서 메시지는 소스("겟"을 위한) 또는 목적지("풋"을 위한)의 메모리 어드레스를 운반한다. 공통적인 문제점을 가지고 동작하는 병렬 슈퍼컴퓨터에서, 풋 및 겟은 통상적으로 뱃치 형태로 어셈블되고 동시에 발행된다. 이것은 독립적으로 프로세서를 대략적으로 동기화시켜 동작시키고 공통 문제점에 대해서 성능을 좋게 하도록 유지한다. 풋과 겟이 발생하는 동안의 시간을 풋/겟 윈도우라 한다. 이러한 윈도우는 시간(언제 발생하는지) 및 메모리(풋 또는 겟 메시지내에 존재하는 데이터의 메모리 어드레스의 범위) 측면으로 확장된다. 도 2는 다소의 선별 메시지를 가지는 풋/겟 윈도우(30)를 도시한다.
그러한 대규모 병렬 슈퍼컴퓨터에서, 알고리즘은 종종 일련의 단계들로 진행하고, 각각의 단계는 계산 단계에 이어지는 통신 단계로 이루어진다. 통신 단계에서, 노드들은 계산 단계에서 제조된 데이터와 알고리즘의 다음 단계를 위해 필요로 하는 데이터를 교환한다. 알고리즘의 성질 상, 이러한 단계들은 통상 강하게 동기화되고, 따라서 통신은 전체 머신을 통해서 한꺼번에 발생하게 된다. 따라서, 풋/겟 윈도우 동기화 관리의 부담은 각 통신 단계의 시작 및 종료에서 다수의 노드들 상에서 분할될 수 있다. 간략하게는, 통신 단계의 시작에서 다수의 풋/겟 윈도우를 개방하기 위해서 전역 연산이 사용될 수 있다는 것이다.
본 발명은 이러한 풋/겟 윈도우를 사용하여 메모리 일관성을 관리하는 간단한 수단을 제공하도록 한다. 제1 측면에 부합하여, 하나의 처리 요소가 주로 계산을 수행하고 다른 하나의 요소는 주로 메지지 전달 활동을 수행하는 둘 이상의 비-일관성 처리 요소(또는 DMA 제어기까지)를 포함하는 메시지 전달 대규모 병렬 슈퍼컴퓨터(계류중인 미국 특허 공개 번호 US 2004/103218 A1에 설명된 것과 같은)에서의 캐시 일관성 관리를 단순화하고 현저하게 속도를 증가시키는 소프트웨어 알고리즘을 제공한다. 간단하게는, 캐시 일관성을 달성하기 위해 필요한 활동들을 조절하기 위해서, 이 소프트웨어 알고리즘은 풋/겟 윈도우의 개방과 폐쇄를 사용한다.
캐시 일관성이 보장된 이후가 아니면 I/O 프로세서는 실질적으로 메시지를 송신하거나 수신하지 못하므로, 본 발명은 "풋"(송신)될 데이터가 어떠한 프로세서의 캐시 내에도 있지 않고 "겟"(수신)될 데이터 역시 어떠한 프로세서의 캐시 내에도 있지 않다는 것을 보장하는 메카니즘을 제공한다. "풋/겟 윈도우"의 개방과 폐쇄라는 이러한 활동들을 조절하여서, 본 발명은 일관성을 달성하기 위해서 필요로 하는 작업의 양을 줄이고 또한 많은 수의 별개의 메시지에 작업이 분할되도록 허용한다. 또한, 노드 내의 두 개의 처리 요소 모두가 이 작업을 수행하여야 때문에, 본 발명은 이러한 작업이 동시에 발생하는 것을 가능하게 한다. 더욱이, 필요시, 이러한 활동들은 계류중인 미국 특허 공개 번호 US 2004/068599 A1에 설명된 전역 장벽 네트워크를 채용한 대규모 병렬 머신 내의 다수의 독립적인 노드들에 대해서 조절될 수 있다.
이 알고리즘은 후술한 바와 같이 하드웨어의 지원을 받을 수 있지만, 그러한 장치가 없더라도, 일반적인 메시지-전달 컴퓨터에 대해서 이점이 있다. 그러한 장치가 없더라도, 비록 감소된 속도이지만, 물리적 영역으로부터 로딩하고 캐시 내로 DCBT(데이터 캐시 블록 터치) 명령어를 유보된 물리적 영역의 각각의 캐시 라인에 대해서 발행하여서, 물리적 메모리의 특정 유보된 영역이 프로세서의 캐시 크기와 동등한 것이 사용될 수 있다.
본 발명의 제2 측면에 부합하여, 전술한 캐시 일관성 소프트웨어 알고리즘을 지원하고, 풋/겟 윈도우 상에서 캐시 일관성을 달성하기 위해 필요한 전체 시간(또는 지연)을 제한하기 위한 새로운 하드웨어 장치를 제공한다. 이 장치는, 노드의 물리적 메모리 어드레스 공간 안에서 (a) 실제 존재하지 않고, (b) 따라서 처리 요소로부터의 판독 및 기록 요청에 대해서 즉시 응답할 수 있는 가상 메모리 영역을 생성하는 것인 하드웨어 어드레스 디코더의 간단한 확장이다. 이것은 또한 (프로세서가 전혀 이용하지 않는)가비지 데이터를 프로세서의 캐시에 들어가게 하고 이에 의해, 최적의 성능으로, 직전에 변형된 데이터를 축출하고 미변형 데이터를 변위시키기 때문에 일관성 활동의 속도를 향상시킨다. 이 가비지 데이터를 메모리로부터 실제로 페치(fetch)할 필요가 없고, 다만 메모리 제어기가 즉각적인 응답만을 필요로 하기 때문에, 더 성능이 빠르게 된다.
단지 실제로 변형된 데이터만을 캐시로부터 메모리로 기록하고 클린(clean) 데이터는 단순히 즉시 버려지기 때문에, 더 성능이 빠르다. 더욱이, "풋/겟 윈도우"의 전체 크기가 프로세서의 캐시 크기를, 아마도 많이, 초과하는 경우에, 이러한 방식으로 캐시를 청소하는 것은 통신 영역으로부터의 어떠한 데이터도 캐시 내에 남아있지 않다는 것을 보장하는데 필요한 작업의 전체 양에 대한 상한(upper bound)을 제공한다. 예컨대, 전체적으로 관련된 캐시를 가정하면, 만약 통신 영역이 16 메가바이트(공통 발생)이고, 전통적인 캐시 플러시 기술이 524,288 DCBF 명령어를(캐시 라인 당 16 MB/32 MB와 동등한) 필요로 하며, 반면에 만약 프로세서의 캐시가 32바이트 캐시 라인을 가지는 32 킬로바이트 크기일 때 본원 명세서에서 기술한 알고리즘은 기껏해야 1,024 DCBT 명령어를 필요로 한다. 전술한 소프트웨어 알고리즘과 독립적으로 이 하드웨어 장치는 일반적으로 최저 사용 빈도 캐시 대체 정책을 채택한 컴퓨터 시스템에 있어서 유용하다는 것을 주의해야 한다.
두 개의 특정 소프트웨어 실시예가 아래에 설명된다. 첫 번째 실시예는 수신될 메시지의 크기가 L1의 크기보다 작을 경우 바람직하고, 반면 두 번째 실시예는 수신될 메시지의 크기가 L1의 크기보다 클 경우 바람직하다.
첫번째 실시예: 수신될 메시지의 크기가 L1의 크기보다 작을 경우
이 경우, 본 발명은 만약 L1 내에서 변형되었다면, 메모리의 인접하는 영역이 L1으로부터 공통 메모리로 다시 기록되는 "데이터 캐시 블록 플러시 및 무효화"(DCBF)를 사용한다. DCBF는 파워피씨 북E(PowerPC BookE) 명령어이고, 유사한 명령어가 다른 프로세서에 대해서 존재한다. 동시에, 캐시 내의 데이터는 무효로 표시되고, 공통 메모리의 내용을 다시 로딩하지 않는 한 사용될 수 없다. DCBF는 어드레스 윈도우내의 모든 라인에 대해서 발행된다.
좀 더 상세히는, 윈도우가 풋 또는 겟을 위해서 개방된 때, 소프트웨어는 (통신 라이브러리 내에서) 후술할 바와 같이 어드레스 윈도우내의 L1의 내용을 플러시하도록 수신 프로세서(본원의 이중 프로세서 노드 중의 계산 프로세서)를 명령한다. 이러한 단순한 동작은 공통 메모리 내에 있는 데이터가 계산 프로세서의 캐시 내에 있는 데이터와 동일한 것이라는 것을 보장하며, 또한 무효화 때문에, I/O 프로세서가 공통 메모리의 내용을 변형할 수 있는 기회를 제공하게 되며, 이는 L1의 전체 내용이 유보된 영역으로부터 신속하게 대체되기 때문이다. 소프트웨어는 곧 I/O 프로세서가 모든 원하는 메시지가 도달될 때까지 진행하도록 명령한다. 소프트웨어는 곧 계산 프로세서가 명령어 처리를 계속하도록 하고, 계류중인 미국 특허 공개 번호 US 2004/068599 A1에서의 전역 인터럽트 및 장벽 네트워크에 설명된 전역 장벽과 같은 전역 동기화 동작을 사용해서 풋/겟 윈도우를 폐쇄한다.
두 번째 실시예: 수신될 메시지의 크기가 L1의 크기보다 큰 경우
이 경우, L1의 크기와 동일한 유보 인접 물리적 어드레스 범위 상에서 "데이터 캐시 블록 영"(DCBZ)이라는 명령어를 사용한다. DCBZ는 영의 내용과 함께 새로운 캐시 라인을 생성한다. 만약 새로운 캐시 라인이 사용가능하지 않다면, 곧 L1 내의 다른 캐시 라인(예컨대 최근 가장 적게 사용된 라인)이 공통 메모리에게로 데이터를 다시 기록하고, 곧 DCBZ 명령어에 의해 주어진 어드레스와 영으로 연산된다(zero'ed). DCBZ는 파워피씨 북E 명령어이고, 유사한 명령어가 다른 프로세서에 대해서 존재한다. 소프트웨어는 유보 영역의 각각의 라인에 대해서 DCBZ를 연속적으로 실행하고, 여기서 유보 영역의 라인은 캐시 라인의 크기와 동일하고 유사하게 정렬된다. 이러한 것은 L1 내의 모든 라인이 플러시되도록 하고, 즉, 모든 변형된 라인이 공통 메모리로 다시 기록되게 하고, 이것은 L1의 전체 내용이 유보 영역으로부터 신속히 대체되기 때문이다. 소프트웨어는 곧 계산 프로세서가 명령어 처리를 계속하게 하고, 계류중인 미국 특허 공개 번호 US 2004/068599 A1에서의 전역 인터럽트 및 장벽 네트워크에 설명된 전역 장벽과 같은 전역 동기화 동작을 사용해서 풋/겟 윈도우를 폐쇄한다.
유보된 물리적 공간이 물리적 메모리내에 존재하는 것을 필요로 하지 않고, 단지 그러한 공간으로의 접근이 접근 위반을 가져오지 않게 하도록 하는 것이면 된다는 것을 주의하여야 한다. 이러한 유보된 메모리 공간으로의 모든 기록은 메모리 제어기에 의해 승인되어야만 한다. 이러한 유보된 공간으로의 모든 판독은 요청하는 프로세서의 L1에 대해서 즉시 임의의(예컨대 "가비지")값을 리턴해야만 한다. 또한 그러한 장치는 비-특권(사용자-공간으로 또한 알려진) 프로그램이 L1 캐시의 전체 내용을 플러시하고 무효화하는데 있어서 최고의 효율적인 수단을 제공하는 것 을 주의해야 한다.
만약 DCBF 명령어가 DCBZ보다 더 느리면 곧 운영 시스템이 DCBZ 명령어를 L1보다 작은 메시지에 대해서 사용하고 또 그 반대 경우도 가능한 것을 또한 주의하여야 한다.
본 발명을 사용하여서, 통신 메모리 공간이 그 L1 캐시에 대해서 기록-속행(write-through)으로 표시된 경우라도 I/O 프로세서는 전혀 그 캐시를 플러시할 필요가 없다. 풋/겟 윈도우가 순간적으로 좁게 만들어지는 전술한 전역 및 짧은 시간 간격에서의 표시는, 관련된 미국 특허 공개 번호(US 2004/073590 A1)에서 더 상세하게 설명된다.
본원 명세서에서 개시된 발명이 전술한 목적들을 달성하기 위해 잘 계산된 것이 명백하지만, 당업자에 의해서 다양한 변경 및 실시예가 고안될 수 있다는 것을 이해해야 하며, 첨부한 청구범위가 그러한 변경 및 실시예들이 본 발명의 사상 및 범위내에 포함되도록 의도되었다는 것을 이해해야 한다.
병렬 처리 컴퓨터 시스템에서 대규모 회로없이 각 프로세서의 성능상에 최소한의 영향을 가지면서 복수-프로세서 노드의 각각의 프로세서들의 제1-레벨 캐시 사이의 일관성을 달성할 수 있으며, 성능을 현저하게 감소시키지 않으면서 일관성을 유지하는, 프로세서들 사이 또는 직접 메모리 접근(DMA)장치 사이에서의 효율적이고 고속인 메시지 전달 통신을 달성할 수 있게 한다.
Claims (20)
- 하나의 프로세서 요소가 주로 계산을 수행하고 다른 하나의 프로세서 요소는 메시지 전달 활동을 수행하는 2 이상의 비-일관성 프로세서 요소들을 포함하는 메시지 전달 대규모 병렬 슈퍼컴퓨터에서의 캐시 일관성 관리를 단순화하고 속도를 증가시키는 방법으로서,풋(put)/겟(get) 윈도우를 개방 및 폐쇄하는 단계와;캐시 일관성을 달성하기 위한 활동을 수행하는 단계와;상기 풋/겟 윈도우의 개방 및 폐쇄 단계를 사용하여 캐시 일관성을 달성하기 위한 활동들을 조절하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 방법은 소프트웨어 알고리즘으로 구현되는 것인 방법.
- 제1항에 있어서, 상기 활동들을 조절하는 단계는 송신될 데이터가 어떠한 프로세서의 캐시 내에도 존재하지 않고 수신될 데이터가 역시 어떠한 프로세서의 캐시 내에도 존재하지 않는다는 것을 보장하는 단계를 포함하는 것인 방법.
- 제3항에 있어서, 상기 보장하는 단계는 소프트웨어 명령어를 발행하여서 데이터를 캐시로 로딩하는 단계를 포함하는 것인 방법.
- 청구항 제1항, 제3항 또는 제4항 중 어느 하나의 청구항에 기재된 방법의 단계들을 수행하기 위하여 컴퓨터에서 구현 가능하게 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
- 삭제
- 삭제
- 하나의 프로세서 요소가 주로 계산을 수행하고 다른 하나의 프로세서 요소는 메시지 전달 활동을 수행하는 2 이상의 비-일관성 프로세서 요소들을 포함하는 메시지 전달 병렬 슈퍼컴퓨터에서의 캐시 일관성 관리를 단순화하고 속도를 증가시키기 위한 시스템으로서,청구항 제1항, 제3항 또는 제4항 중 어느 하나의 청구항에 기재된 방법의 각 단계들을 구현하는 수단들을 포함하는 시스템.
- 삭제
- 삭제
- 하나의 처리 요소가 주로 계산을 수행하고 두번째 처리 요소는 메시지 전달 활동을 수행하는 2 이상의 비-일관성 처리 요소들을 포함하는 메시지 전달 병렬 슈퍼컴퓨터에서의 캐시 일관성을 달성하는 것을 지원하는 하드웨어 장치로서,노드의 물리적 메모리 어드레스 공간 내에서 (a) 실제 존재하지 않고 (b) 따라서 처리 요소로부터의 판독 및 기록 요청에 대해서 즉시 응답할 수 있는 가상 메모리 영역을 생성하는 메모리 제어기를 포함하는 하드웨어 장치.
- 제11항에 있어서, 상기 메모리 제어기는, 프로세서가 전혀 이용하지 않는 가비지(garbage) 데이터를 프로세서의 캐시 내로 들어가게 하고, 이에 의해, 최적의 성능으로, 직전에 변형된 데이터를 축출하고 미변형 데이터를 변위시키는 것인 하드웨어 장치.
- 제12항에 있어서, 상기 가비지 데이터는 메모리로부터 실제로 페치(fetch)될 필요가 없고 메모리 제어기가 단지 즉각적인 응답을 필요로 하는 것인 하드웨어 장치.
- 제13항에 있어서, 단지 실제 변경된 데이터가 캐시로부터 메모리로 기록되고, 클린(clean) 데이터는 단순히 즉시 버려지는 것인 하드웨어 장치.
- 제14항에 있어서, 상기 풋/겟 윈도우의 전체 크기가 상기 프로세서의 캐시 크기를 초과하는 경우에, 이러한 방식으로 상기 캐시를 청소하여 통신 영역으로부터의 어떠한 데이터도 상기 캐시 내에 남아있지 않다는 것을 보장하는데 필요한 전체 작업량에 대한 상한(upper bound)을 제공하는 것인 하드웨어 장치.
- 하나의 처리 요소가 주로 계산을 수행하고 두번째 처리 요소는 메시지 전달 활동을 수행하는 2 이상의 비-일관성 처리 요소들을 포함하는 메시지 전달 병렬 슈퍼컴퓨터에서의 캐시 일관성을 달성하는 것을 지원하는 컴퓨터 하드웨어 장치를 운영하는 방법으로서,메모리 제어기를 사용하여 노드의 물리적 메모리 어드레스 공간 내에서 (a) 실제 존재하지 않고 (b) 따라서 상기 처리 요소로부터의 판독 및 기록 요청에 대해서 즉시 응답할 수 있는 가상 메모리 영역을 생성하는 단계를 포함하는 방법.
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27112401P | 2001-02-24 | 2001-02-24 | |
US60/271,124 | 2001-02-24 | ||
PCT/US2002/005587 WO2002069238A2 (en) | 2001-02-24 | 2002-02-25 | Managing coherence via put/get windows |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040004529A KR20040004529A (ko) | 2004-01-13 |
KR100615411B1 true KR100615411B1 (ko) | 2006-08-25 |
Family
ID=68463256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037010817A KR100615411B1 (ko) | 2001-02-24 | 2002-02-25 | 풋/겟 윈도우를 통한 일관성 관리 방법 및 시스템 |
Country Status (11)
Country | Link |
---|---|
US (3) | US7870343B2 (ko) |
EP (1) | EP1410216B1 (ko) |
JP (1) | JP3954969B2 (ko) |
KR (1) | KR100615411B1 (ko) |
CN (1) | CN1286016C (ko) |
AT (1) | ATE437402T1 (ko) |
AU (1) | AU2002245518A1 (ko) |
CA (1) | CA2437663A1 (ko) |
DE (1) | DE60233055D1 (ko) |
IL (1) | IL157517A0 (ko) |
WO (1) | WO2002069238A2 (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7635987B1 (en) | 2004-12-13 | 2009-12-22 | Massachusetts Institute Of Technology | Configuring circuitry in a parallel processing environment |
US7882307B1 (en) | 2006-04-14 | 2011-02-01 | Tilera Corporation | Managing cache memory in a parallel processing environment |
US7853752B1 (en) * | 2006-09-29 | 2010-12-14 | Tilera Corporation | Caching in multicore and multiprocessor architectures |
JP2009104300A (ja) * | 2007-10-22 | 2009-05-14 | Denso Corp | データ処理装置及びプログラム |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8725951B2 (en) * | 2010-04-12 | 2014-05-13 | Sandisk Enterprise Ip Llc | Efficient flash memory-based object store |
US8666939B2 (en) | 2010-06-28 | 2014-03-04 | Sandisk Enterprise Ip Llc | Approaches for the replication of write sets |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US9037669B2 (en) | 2012-08-09 | 2015-05-19 | International Business Machines Corporation | Remote processing and memory utilization |
US10152450B2 (en) * | 2012-08-09 | 2018-12-11 | International Business Machines Corporation | Remote processing and memory utilization |
FR3048795A1 (fr) * | 2016-03-11 | 2017-09-15 | Commissariat Energie Atomique | Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce |
US10691609B2 (en) | 2017-07-24 | 2020-06-23 | International Business Machines Corporation | Concurrent data erasure and replacement of processors |
US10116436B1 (en) * | 2017-09-26 | 2018-10-30 | Intel Corporation | Techniques for preventing memory timing attacks |
US11010313B2 (en) * | 2018-08-29 | 2021-05-18 | Qualcomm Incorporated | Method, apparatus, and system for an architecture for machine learning acceleration |
CN110567112B (zh) * | 2019-09-16 | 2021-07-13 | 重庆美的通用制冷设备有限公司 | 空调设备的控制方法、空调设备的控制系统和空调系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379391A (en) * | 1991-03-01 | 1995-01-03 | Storage Technology Corporation | Method and apparatus to access data records in a cache memory by multiple virtual addresses |
JP2819982B2 (ja) * | 1993-03-18 | 1998-11-05 | 株式会社日立製作所 | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
US5537588A (en) * | 1994-05-11 | 1996-07-16 | International Business Machines Corporation | Partitioned log-structured file system and methods for operating the same |
US5860110A (en) * | 1995-08-22 | 1999-01-12 | Canon Kabushiki Kaisha | Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition |
US5841973A (en) * | 1996-03-13 | 1998-11-24 | Cray Research, Inc. | Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory |
US5864738A (en) * | 1996-03-13 | 1999-01-26 | Cray Research, Inc. | Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller |
US5958019A (en) * | 1996-07-01 | 1999-09-28 | Sun Microsystems, Inc. | Multiprocessing system configured to perform synchronization operations |
TW379298B (en) * | 1996-09-30 | 2000-01-11 | Toshiba Corp | Memory updating history saving device and memory updating history saving method |
US6223269B1 (en) * | 1997-09-27 | 2001-04-24 | Emc Corporation | Stacked mapped storage system |
US6085295A (en) * | 1997-10-20 | 2000-07-04 | International Business Machines Corporation | Method of maintaining data coherency in a computer system having a plurality of interconnected nodes |
US6490625B1 (en) * | 1997-11-26 | 2002-12-03 | International Business Machines Corporation | Powerful and flexible server architecture |
US6032228A (en) * | 1997-11-26 | 2000-02-29 | International Business Machines Corporation | Flexible cache-coherency mechanism |
US6119205A (en) * | 1997-12-22 | 2000-09-12 | Sun Microsystems, Inc. | Speculative cache line write backs to avoid hotspots |
GB9727452D0 (en) * | 1997-12-31 | 1998-02-25 | Northern Telecom Ltd | Method and apparatus for replicating operations on data |
US6148146A (en) * | 1998-01-07 | 2000-11-14 | Poore; Bobby L. | Water heater |
US6631448B2 (en) * | 1998-03-12 | 2003-10-07 | Fujitsu Limited | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol |
JP3959914B2 (ja) * | 1999-12-24 | 2007-08-15 | 株式会社日立製作所 | 主記憶共有型並列計算機及びそれに用いるノード制御装置 |
US6772298B2 (en) * | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
JP2003288218A (ja) * | 2002-03-27 | 2003-10-10 | Toshiba Corp | マイクロコンピュータ及びマイクロコンピュータの制御方法 |
-
2002
- 2002-02-25 AU AU2002245518A patent/AU2002245518A1/en not_active Abandoned
- 2002-02-25 WO PCT/US2002/005587 patent/WO2002069238A2/en active Application Filing
- 2002-02-25 US US10/468,995 patent/US7870343B2/en not_active Expired - Fee Related
- 2002-02-25 CN CNB028054318A patent/CN1286016C/zh not_active Expired - Fee Related
- 2002-02-25 AT AT02713681T patent/ATE437402T1/de not_active IP Right Cessation
- 2002-02-25 EP EP02713681A patent/EP1410216B1/en not_active Expired - Lifetime
- 2002-02-25 JP JP2002568284A patent/JP3954969B2/ja not_active Expired - Fee Related
- 2002-02-25 IL IL15751702A patent/IL157517A0/xx unknown
- 2002-02-25 CA CA002437663A patent/CA2437663A1/en not_active Abandoned
- 2002-02-25 KR KR1020037010817A patent/KR100615411B1/ko not_active IP Right Cessation
- 2002-02-25 DE DE60233055T patent/DE60233055D1/de not_active Expired - Lifetime
-
2009
- 2009-08-19 US US12/543,890 patent/US8122197B2/en not_active Expired - Fee Related
-
2010
- 2010-11-24 US US12/953,770 patent/US8161248B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1286016C (zh) | 2006-11-22 |
AU2002245518A1 (en) | 2002-09-12 |
US20070055825A1 (en) | 2007-03-08 |
EP1410216A4 (en) | 2006-03-22 |
US7870343B2 (en) | 2011-01-11 |
US20090313439A1 (en) | 2009-12-17 |
CA2437663A1 (en) | 2002-09-06 |
KR20040004529A (ko) | 2004-01-13 |
EP1410216A2 (en) | 2004-04-21 |
ATE437402T1 (de) | 2009-08-15 |
CN1493027A (zh) | 2004-04-28 |
JP2005507097A (ja) | 2005-03-10 |
EP1410216B1 (en) | 2009-07-22 |
US8122197B2 (en) | 2012-02-21 |
IL157517A0 (en) | 2004-03-28 |
JP3954969B2 (ja) | 2007-08-08 |
WO2002069238A2 (en) | 2002-09-06 |
DE60233055D1 (de) | 2009-09-03 |
WO2002069238A3 (en) | 2003-11-27 |
US20110072219A1 (en) | 2011-03-24 |
US8161248B2 (en) | 2012-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161248B2 (en) | Simplifying and speeding the management of intra-node cache coherence | |
Iftode et al. | Improving release-consistent shared virtual memory using automatic update | |
KR100598668B1 (ko) | 지연 시간이 적은 메모리 시스템 액세스 | |
US7409505B2 (en) | Optimized high bandwidth cache coherence mechanism | |
US7529895B2 (en) | Method for prefetching non-contiguous data structures | |
JPH10133917A (ja) | コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム | |
JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
CN108804348B (zh) | 并行处理环境中的计算 | |
Petersen et al. | Cache coherence for shared memory multiprocessors based on virtual memory support | |
Iyer et al. | Using switch directories to speed up cache-to-cache transfers in CC-NUMA multiprocessors | |
Blumrich et al. | Managing coherence via put/get windows | |
Oi et al. | A cache coherence protocol for the bidirectional ring based multiprocessor | |
WO2002069152A1 (en) | Managing coherence via put/get windows | |
Kim et al. | Active memory techniques for ccNUMA multiprocessors | |
Blumrich et al. | Simplifying and speeding the management of intra-node cache coherence | |
Memo | Issues in Building a Cache-Coherent Distributed Shared Memory Machine using Commercial SMPs | |
Rhee et al. | A scalable cache coherent scheme exploiting wormhole routing networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100429 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |