[go: up one dir, main page]

KR101671494B1 - 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 - Google Patents

공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 Download PDF

Info

Publication number
KR101671494B1
KR101671494B1 KR1020100098441A KR20100098441A KR101671494B1 KR 101671494 B1 KR101671494 B1 KR 101671494B1 KR 1020100098441 A KR1020100098441 A KR 1020100098441A KR 20100098441 A KR20100098441 A KR 20100098441A KR 101671494 B1 KR101671494 B1 KR 101671494B1
Authority
KR
South Korea
Prior art keywords
address
page
local store
allocated
descriptor
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
Application number
KR1020100098441A
Other languages
English (en)
Other versions
KR20120036654A (ko
Inventor
이재진
장춘기
류수정
이강웅
김윤진
웅 서
조영철
Original Assignee
삼성전자주식회사
서울대학교산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 서울대학교산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020100098441A priority Critical patent/KR101671494B1/ko
Priority to US13/074,999 priority patent/US8930672B2/en
Publication of KR20120036654A publication Critical patent/KR20120036654A/ko
Application granted granted Critical
Publication of KR101671494B1 publication Critical patent/KR101671494B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

로컬 스토어를 갖는 다수의 프로세싱 코어, 및 다수의 프로세싱 코어 중 적어도 어느 하나의 프로세싱 코어가 전체 가상 메모리 영역 중 로컬 스토어에 할당되는 부분을 사용하는지 여부를 확인할 수 있는 주소 변환 테이블을 생성하는 메모리 관리부를 포함하는 공유 가상 메모리를 이용한 멀티 프로세서가 제공된다.

Description

공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법{Multi Processor based on shared virtual memory and Method for generating address translation table}
로컬 스토어를 갖는 멀티 프로세서의 가상 메모리 관리 기술과 관련된다.
멀티 프로세서란 여러 개의 작업을 한 번에 처리하기 위하여 두 개 이상의 프로세싱 코어를 가지고 있는 프로세서를 말한다. 이러한 멀티 프로세서는 싱글 프로세서에 비해 성능 및 소비 전력 절감 면에서 유리하기 때문에 최근 각광을 받고 있다.
이러한 멀티 시스템에는 동일한 코어가 여러 개 존재하는 대칭형 시스템(SMP, Symmetric Multi-Processing)과 DSP(Digital Processing Processor)나 GPU(Graphic Processing Unit) 등 GPP(General Purpose Processor)로 사용될 수 있는 다양한 이기종 코어들로 이루어진 비대칭 시스템(AMP, Asymmetric Multi-Processing)이 있다.
최근에는 멀티 프로세서의 각 코어에 전용 로컬 스토어를 둠으로써 각 코어가 로컬 스토어에 저장된 데이터에 빠르게 접근할 수 있도록 하기 위한 연구가 활발히 진행되고 있다. 그런데 멀티 프로세서의 각 코어가 공유하는 가상 메모리를 이용하려면 로컬 스토어에 할당될 데이터가 프로그램 작성 과정에서 미리 선정되어야 하는 문제점이 있다. 로컬 스토어에 할당될 데이터를 프로그램의 정확성을 유지하면서 미리 선정하기는 매우 어렵다.
로컬 스토어를 갖는 멀티 프로세서에 있어서, 데이터에 대한 접근이 최대한 로컬 스토어에서 이루어지게 함과 동시에 공유 가상 메모리가 적절하게 구현되는 멀티 프로세서 및 이러한 멀티 프로세서의 주소 변환 테이블 생성 방법이 제공된다.
본 발명의 일 양상에 따른 멀티 프로세서는, 로컬 스토어를 갖는 다수의 프로세싱 코어, 및 다수의 프로세싱 코어 중 적어도 어느 하나의 프로세싱 코어가 전체 가상 메모리 영역 중 로컬 스토어에 할당되는 부분을 사용하는지 여부를 확인할 수 있는 주소 변환 테이블을 생성하는 메모리 관리부를 포함할 수 있다.
본 발명의 일 양상에 따른 주소 변환 테이블 생성 방법은, 로컬 스토어를 갖는 다수의 프로세싱 코어를 포함하는 멀티 프로세서의 공유 가상 메모리를 구현하기 위한 주소 변환 테이블 생성 방법으로서, 다수의 페이지로 구성되는 전체 가상 메모리 영역 중 로컬 스토어에 할당되는 페이지를 정의하는 제 1 레벨 페이지 디스크립터를 생성하는 단계, 로컬 스토어에 할당되는 페이지가 프로세싱 코어에 의해 사용되는지 여부를 표시하는 필드를 포함하는 제 2 레벨 페이지 디스크립터를 생성하는 단계, 및 각각의 프로세싱 코어 별로 로컬 스토어에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 지시하는 제 3 레벨 페이지 디스크립터를 생성하는 단계를 포함할 수 있다.
개시된 내용에 따르면, 전체 가상 메모리 공간 상의 어떤 페이지가 프로세싱 코어의 로컬 스토어에 할당되는 경우, 주소 변환 과정에서 그 페이지를 다른 프로세싱 코어가 업데이트 했는지 여부가 참조되므로 멀티 프로세서 환경에서 하나의 주소 변환 테이블만으로도 적절하게 공유 가상 메모리를 구현할 수 있고 각 프로세싱 코어의 데이터 접근이 로컬 스토어에서 빈번하게 이루어지도록 만들 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티 프로세서를 도시한다.
도 2는 본 발명의 일 실시예에 따른 프로세싱 코어를 도시한다.
도 3은 본 발명의 일 실시예에 따른 메모리 관리부를 도시한다.
도 4는 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 1 레벨 페이지 디스크립터를 도시한다.
도 5는 본 발명의 일 실시예에 따른 주소 변환 과정을 도시한다.
도 6은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터를 도시한다.
도 7은 본 발명의 다른 실시예에 따른 주소 변환 과정을 도시한다.
도 8은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터를 도시한다.
도 9는 본 발명의 또 다른 실시예에 따른 주소 변환 과정을 도시한다.
도 10은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 3 레벨 페이지 디스크립터를 도시한다.
도 11은 본 발명의 일 실시예에 따른 주소 변환 테이블 생성 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 멀티 프로세서를 도시한다.
도 1을 참조하면, 멀티 프로세서(multi processor)(100)는 다수의 프로세싱 유니트(processing unit)(101)를 포함한다. 멀티 프로세서(100)는 다수의 프로세싱 유니트(101)를 통해 여러 개의 작업을 동시에 수행할 수 있다.
각각의 프로세싱 유니트(101)는 프로세싱 코어(processing core)(102), 로컬 스토어(local store)(103), 및 메모리 관리부(memory management unit)(104)를 포함한다.
프로세싱 코어(102)는 명령어를 해석하고 이를 처리하는 부분이다.
로컬 스토어(103)는 명령어 또는 명령어와 관련된 데이터를 저장하는 부분이다. 로컬 스토어(103)는 공유되지 않는 각 프로세싱 코어(102)의 전용 메모리이다. 즉, 각 프로세싱 코어(102)는 전용의 Random Access Memory(RAM)를 갖는 것으로 볼 수 있다. 한편, 공유 메모리(200)는 프로세싱 코어(102)가 공유하는 메모리이다. 프로세싱 코어(102)는 공유 메모리(200)를 통해 데이터에 접근할 수도 있고 로컬 스토어(103)를 통해 데이터에 접근할 수도 있다. 로컬 스토어(103)는 각 프로세싱 코어(102)의 전용 메모리이므로, 로컬 스토어(103)를 통한 데이터 접근이 공유 메모리(200)를 통한 데이터 접근보다 빠르다.
메모리 관리부(104)는 가상 주소(virtual address)를 물리 주소(physical address)로 변환하는 부분이다. 본 실시예에 따라, 메모리 관리부(104)는 하드웨어적 MMU(memory management unit)와 소프트웨어적인 VMM(virtual memory manager)을 포함할 수 있다. 예를 들어, 어떤 프로세스가 생성되면 메모리 관리부(104)는 그 프로세스에 관하여 가상의 메모리 영역을 설정하고 소정의 주소 변환 테이블(translation table, TLB)을 생성할 수 있다. 또한, 프로세싱 코어(102)가 가상 주소를 통해 어떤 메모리 영역으로 접근하고자 하는 경우, 메모리 관리부(104)는 생성된 변환 테이블을 이용하여 프로세싱 코어(102)로부터 수신된 가상 주소를 물리 주소로 변환하고, 변환된 물리 주소를 통해 프로세싱 코어(102)가 특정한 메모리 영역으로 접근할 수 있도록 해준다. 물리 주소에 대응되는 메모리 영역은 로컬 스토어(103)가 될 수도 있고 공유 메모리(200)가 될 수도 있다.
또한, 메모리 관리부(104)는 공유 가상 메모리(shared virtual memory, SVM)를 쉽게 구현할 수 있도록 각각의 프로세싱 코어(102)가 가상 메모리 영역 상의 특정 부분에 대한 상태를 모두 참조할 수 있도록 하는 하나의 변환 테이블(translation table)을 생성할 수 있다. 예를 들어, 프로세싱 코어 #0가 가상 메모리 영역 상의 특정 페이지를 사용하고자 하는 경우, 본 실시예에 따른 변환 테이블에 의하면, 해당 페이지가 어느 메모리 영역에 할당되어 있는지 여부(즉, 로컬 스토어(103)에 할당되어 있는지 또는 공유 메모리(200)에 할당되어 있는지)와, 로컬 스토어(103)에 할당되어 있다면 해당 페이지를 다른 프로세싱 코어 #1, #2, #3가 사용했는지 여부가 판단될 수 있다.
또한, 메모리 관리부(104)는 생성된 변환 테이블을 이용하여 주소 변환을 수행한다. 본 실시예에 따라 생성된 변환 테이블은 레벨 별 페이지 디스크립터로 구성될 수 있다. 예를 들어, 제 1 레벨 페이지 디스크립터는 변환 테이블의 시작 주소와 가상 주소를 통해 찾아진 변환 테이블의 제 1 레벨 엔트리가 될 수 있다. 제 2 레벨 페이지 디스크립터는 제 1 레벨 페이지 디스크립터와 가상 주소를 통해 찾아진 변환 테이블의 제 2 레벨 엔트리가 될 수 있다. 제 3 레벨 페이지 디스크립터는 제 2 레벨 페이지 디스크립터와 가상 주소를 통해 찾아진 변환 테이블의 제 3 레벨 엔트리가 될 수 있다. 그리고 제 1 레벨 페이지 디스크립터는 다수의 페이지로 구성되는 전체 가상 메모리 영역을 로컬 스토어(103)에 할당되는 부분과 공유 메모리(200)에 할당되는 부분으로 구분하여 정의하는 것이 가능하다. 제 2 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당되는 페이지가 프로세싱 코어(102)에 의해 사용되는지 여부를 표시하는 필드를 포함할 수 있다. 제 3 레벨 페이지 디스크립터는 각각의 프로세싱 코어(102) 별로 로컬 스토어(103)에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 가리킬 수 있다.
이와 같이 본 실시예에 따른 멀티 프로세서(100)는 메모리 관리부(104)가 가상 메모리 영역의 특정 페이지에 대한 사용 상태 정보를 나타내는 주소 변환 테이블을 생성하고 이를 통해 주소 변환을 수행하기 때문에, 로컬 스토어(103)에 명령어 또는 명령어와 관련된 데이터를 많이 놓고 처리하더라도 각각의 프로세싱 코어(102)가 해당 페이지의 상태를 고려할 수 있으므로 가상 공유 메모리를 쉽게 구현할 수가 있다.
도 2는 본 발명의 일 실시예에 따른 프로세싱 코어를 도시한다.
도 1 및 도 2를 참조하면, 프로세싱 코어(102)는 주처리부(201) 및 다수의 레지스터(202)를 포함한다.
주처리부(201)는 프로세싱 코어(102)의 핵심 부분으로 명령어를 해석하고 이를 처리한다.
레지스터(202)는 멀티 프로세서(100) 내의 프로세싱 코어(102)의 개수를 저장하는 레지스터(NC), 주소 변환에 사용되는 제 1 레벨 페이지 디스크립터의 물리적 시작 주소(즉, 주소 변환 테이블의 저장 위치)를 저장하는 레지스터(TTBase[NC]), 각 로컬 스토어(103)의 페이지 버퍼(page buffer)의 물리적 시작 주소를 저장하는 레지스터(LSBase[NC]), 및 각 페이지 버퍼의 크기를 저장하는 레지스터(LSSize[NC]) 등을 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 메모리 관리부를 도시한다.
도 1 내지 도 3을 참조하면, 메모리 관리부(104)는 테이블 생성부(301), 주소 변환부(302), 및 다수의 레지스터(303)를 포함한다.
테이블 생성부(301)는 가상 주소를 물리 주소로 변환하기 위한 주소 변환 테이블을 생성한다. 예를 들어, 테이블 생성부(301)는 어떤 프로세스에 할당된 전체 가상 메모리 영역을 로컬 스토어(103)에 할당되는 페이지와 공유 메모리(200)에 할당되는 페이지를 구분하여 정의하는 제 1 레벨 페이지 디스크립터, 로컬 스토어(103)에 할당되는 페이지가 프로세싱 코어(102)에 의해 사용되는지 여부를 표시하는 제 2 레벨 페이지 디스크립터, 및 각각의 프로세싱 코어(102) 별로 로컬 스토어(103)에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 가리키는 제 3 레벨 페이지 디스크립터를 포함하는 변환 테이블을 생성하는 것이 가능하다.
주소 변환부(302)는 테이블 생성부(301)에 의해 생성된 테이블을 참조하여 가상 주소를 물리 주소로 변환한다. 예를 들어, 메모리 관리부(104)가 프로세싱 코어(102)로부터 가상 주소를 수신하면, 주소 변환부(302)는 변환 테이블의 저장 위치에 대응되는 각 프로세싱 코어(102)의 TTBase[NC] 레지스터 값과 가상 주소를 이용하여 제 1 레벨 페이지 디스크립터를 찾아가고, 제 1 레벨 페이지 디스크립터와 가상 주소를 이용하여 제 2 레벨 페이지 디스크립터를 찾아간 후, 제 2 레벨 페이지 디스크립터, 가상 주소, 및 각 프로세싱 코어(102)의 LSBase[NC] 레지스터 값을 이용하여 수신된 가상 주소에 대응되는 물리 주소를 획득하는 것이 가능하다.
다수의 레지스터(303)는 메모리 관리부(104)가 테이블을 생성하고 주소를 변환하는 데에 필요한 각종 데이터를 저장할 수 있다. 예를 들어, 레지스터 CORE_NUM는 프로세싱 코어(102)의 번호 또는 식별자를 저장한다. 레지스터 F_VA는 페이지 폴트를 발생시킨 페이지의 가상 주소를 저장한다. 레지스터 F_WRITE는 페이지 폴트를 발생시킨 페이지의 인스트럭션이 load일 경우 0이 저장되고 store일 경우 1이 저장된다. 레지스터 F_DESC1_V는 페이지 폴트를 발생시킨 페이지의 제 1 레벨 페이지 디스크립터 값을 저장한다. 레지스터 F_DESC1_PA는 페이지 폴트를 발생시킨 페이지의 제 1 레벨 페이지 디스크립터의 물리적 주소를 저장한다. 마찬가지로, 레지스터 F_DESC2_V는 페이지 폴트를 발생시킨 페이지의 제 2 레벨 페이지 디스크립터 값을 저장한다. 레지스터 F_DESC2_PA는 페이지 폴트를 발생시킨 페이지의 제 2 레벨 페이지 디스크립터의 물리적 주소를 저장한다. 또한, 레지스터 F_DESC3_V는 페이지 폴트를 발생시킨 페이지의 제 3 레벨 페이지 디스크립터 값을 저장한다. 레지스터 F_DESC3_PA는 페이지 폴트를 발생시킨 페이지의 제 3 레벨 페이지 디스크립터의 물리적 주소를 저장한다.
도 4는 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 1 레벨 페이지 디스크립터를 도시한다.
도 1 및 도 4를 참조하면, 본 실시예에 따른 주소 변환 테이블의 제 1 레벨 페이지 디스크립터는 다수의 페이지로 구성되는 가상 메모리 영역을 로컬 스토어(103)에 할당되는 페이지와 공유 메모리(200)에 할당되는 페이지를 구분해서 정의한다.
본 실시예에 따라, 주소 변환 테이블의 제 1 레벨 페이지 디스크립터는 네 가지 타입으로 분류될 수 있다. 첫 번째 타입(401)은 접근 불가 영역을 정의한다. 즉 첫 번째 타입(401)에 대응되는 페이지로의 접근은 페이지 폴트를 유발한다. 두 번째 타입(402)은 로컬 스토어(103)에 할당되지 아니한 1MB 영역에 대한 물리적 시작 주소(bits[31:20])를 저장한다. 세 번째 타입(403)은 로컬 스토어(103)에 할당되지 아니한 1MB 영역에 대한 제 2 레벨 페이지 디스크립터의 물리적 시작 주소(bits[31:10])를 저장한다. 네 번째 타입(404)은 로컬 스토어(103)에 할당되는 1MB 영역에 대한 제 2 레벨 페이지 디스크립터의 물리적 시작 주소(bit[31:13])를 저장한다. 세 번째 타입(403) 및 네 번째 타입(404)에서 S(bit[3:2])는 제 2 레벨 페이지의 크기를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 주소 변환 과정을 도시한다. 이것은 도 4의 두 번째 타입의 제 1 레벨 페이지 디스크립터(402)에 기초한 주소 변환 과정이 될 수 있다. 즉 이것은 가상 메모리 상의 어떤 페이지가 공유 메모리에 할당되고 제 1 레벨 수준에서 주소 변환이 이루어지는 것에 관한 일 예가 될 수 있다.
도 1, 도 4 및 도 5를 참조하면, 메모리 관리부(104)는 변환 테이블의 베이스 주소(501)와 가상 주소(502)를 이용해서 제 1 레벨 페이지 디스크립터의 주소(503)를 알아낸다. 가상 주소(502)는 프로세싱 코어(102)로부터 수신될 수 있고, 변환 테이블의 베이스 주소(501)는 프로세싱 코어(102)의 TTBase[NC] 레지스터 값을 참조하면 알 수 있다. 제 1 레벨 페이지 디스크립터의 주소(503)가 도출되면, 메모리 관리부(104)는 제 1 레벨 페이지 디스크립터(504)를 읽고 그 타입을 판별한다. 제 1 레벨 페이지 디스크립터(504)의 최하위 두 비트가 01이므로 제 1 레벨 페이지 디스크립터(504)는 로컬 스토어(103)에 할당되지 아니한 1MB 영역의 물리적 시작 주소를 저장함을 알 수 있다. 즉 가상 주소(502)의 페이지는 공유 메모리(200)의 어딘가에 존재할 수 있고 그 시작 주소는 01의 최하위 두 비트를 갖는 제 1 레벨 페이지 디스크립터(504)에 의해 정의될 수 있다. 따라서 메모리 관리부(104)는 가상 주소(502)의 나머지 부분과 제 1 레벨 페이지 디스크립터(504)를 이용하여 가상 주소(502)에 대응하는 물리 주소(505)를 얻을 수 있다.
도 6은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터를 도시한다. 이것은 로컬 스토어에 할당되지 않는 영역에 대한 제 2 레벨의 페이지 테이블 엔트리가 될 수 있다.
도 1 및 도 6을 참조하면, 본 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터는 도 4에서 세 번째 타입(403)의 제 1 레벨 페이지 디스크립터의 하위 엔트리가 될 수 있다. 즉, 도 6의 제 2 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당되지 않는 영역의 물리적 시작 주소를 크기 별로 정의하는 것이 가능하다. 예를 들어, 첫 번째 타입(601)은 접근 불가 영역을 정의한다. 즉 첫 번째 타입(401)에 대응되는 페이지로의 접근은 페이지 폴트를 유발할 수 있다. 두 번째 타입(602)은 로컬 스토어(103)에 할당되지 않는 영역 중 8KB 크기를 갖는 영역의 물리적 시작 주소(bits[31:13])를 저장한다. 세 번째 타입(603)은 로컬 스토어(103)에 할당되지 않는 영역 중 16KB 크기를 갖는 영역의 물리적 시작 주소(bits[31:14])를 저장한다. 네 번째 타입(604)은 로컬 스토어(103)에 할당되지 않는 영역 중 32KB 크기를 갖는 영역의 물리적 시작 주소(bits[31:15])를 저장한다.
도 7은 본 발명의 다른 실시예에 따른 주소 변환 과정을 도시한다. 이것은 도 4의 세 번째 타입의 제 1 레벨 페이지 디스크립터(403) 및 도 6의 두 번째 타입의 제 2 레벨 페이지 디스크립터(602)에 기초한 주소 변환 과정이 될 수 있다. 즉, 이것은 가상 메모리 상의 어떤 페이지가 공유 메모리에 할당되고 제 2 레벨 수준에서 주소 변환이 이루어지는 것에 관한 일 예가 될 수 있다.
도 1, 도 4, 도 6, 및 도 7을 참조하면, 메모리 관리부(104)는 변환 테이블의 베이스 주소(701)와 가상 주소(702)를 이용해서 제 1 레벨 페이지 디스크립터의 주소(703)를 알아낸다. 가상 주소(702)는 프로세싱 코어(102)로부터 수신될 수 있고, 변환 테이블의 베이스 주소(701)는 프로세싱 코어(102)의 TTBase[NC] 레지스터 값을 참조하면 알 수 있다. 제 1 레벨 페이지 디스크립터의 주소(703)가 도출되면, 메모리 관리부(104)는 제 1 레벨 페이지 디스크립터(704)를 읽고 그 타입을 판별한다. 제 1 레벨 페이지 디스크립터(704)의 최하위 두 비트가 10이므로 제 1 레벨 페이지 디스크립터(704)는 도 4에서 세 번째 타입(403), 즉 로컬 스토어(103)에 할당되지 아니한 1MB 영역의 제 2 레벨 페이지 디스크립터의 물리적 시작 주소를 저장함을 알 수 있다. 따라서 메모리 관리부(104)는 제 1 레벨 페이지 디스크립터(704)와 가상 주소(702)를 이용해서 제 2 레벨 페이지 디스크립터의 물리적 위치(705)를 구하고, 구해진 물리적 위치(705)를 통해 제 2 레벨 페이지 디스크립터(706)를 판독할 수 있다.
이때, 읽혀진 제 2 레벨 페이지 디스크립터(706)의 최하위 두 비트가 09이므로 이것은 도 6에서 두 번째 타입(602)을 나타낸다. 따라서 메모리 관리부(104)는 제 2 레벨 페이지 디스크립터(706)와 가상 주소(702)를 이용해서 물리 주소(707)를 구하는 것이 가능하다.
도 8은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터를 도시한다. 이것은 로컬 스토어에 할당되는 영역에 대한 제 2 레벨의 페이지 테이블 엔트리가 될 수 있다.
도 1, 도 4 및 도 8을 참조하면, 본 실시예에 따른 주소 변환 테이블의 제 2 레벨 페이지 디스크립터는 도 4에서 네 번째 타입(404)의 제 1 레벨 페이지 디스크립터의 하위 엔트리가 될 수 있다. 즉, 도 8의 제 2 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당되는 영역에 대한 프로세싱 코어(102)의 접근 정보를 정의하는 것이 가능하다. 예를 들어, 제 2 레벨 페이지 디스크립터(800)는 여러 개의 필드를 가질 수 있는데, 필드 L(bit[1])(801)은 해당 페이지를 특정한 프로세싱 코어(102)가 사용하고 있는지 여부를 나타낼 수 있다. 그리고 필드 NC_W(bits[9:2])(802)는 해당 페이지에 대하여 기록(write) 권한을 갖고 있는 프로세싱 코어(102)의 개수를 나타낼 수 있다. 또한, 필드 T(bit[10])(803)는 해당 페이지에 대한 복사본(twin) 생성 여부를 나타낼 수 있다.
도 9는 본 발명의 또 다른 실시예에 따른 주소 변환 과정을 도시한다. 이것은 도 4의 네 번째 타입의 제 1 레벨 페이지 디스크립터(404) 및 도 8의 제 2 레벨 페이지 디스크립터(800)에 기초한 주소 변환 과정이 될 수 있다. 즉, 이것은 가상 메모리 상의 어떤 페이지가 로컬 스토어에 할당되는 경우의 주소 변환 과정이 될 수 있다.
도 1, 도 4, 도 8, 및 도 9를 참조하면, 메모리 관리부(104)는 변환 테이블의 베이스 주소(901)와 가상 주소(902)를 이용해서 제 1 레벨 페이지 디스크립터의 주소(903)를 알아낸다. 가상 주소(902)는 프로세싱 코어(102)로부터 수신될 수 있고, 변환 테이블의 베이스 주소(901)는 프로세싱 코어(102)의 TTBase[NC] 레지스터 값을 참조하면 알 수 있다. 제 1 레벨 페이지 디스크립터의 주소(903)가 도출되면, 메모리 관리부(104)는 제 1 레벨 페이지 디스크립터(904)를 읽고 그 타입을 판별한다. 제 1 레벨 페이지 디스크립터(904)의 최하위 두 비트가 11이므로 제 1 레벨 페이지 디스크립터(904)는 도 4에서 네 번째 타입(404), 즉 로컬 스토어(103)에 할당된 1MB 영역의 제 2 레벨 페이지 디스크립터의 물리적 시작 주소를 저장함을 알 수 있다. 따라서 메모리 관리부(104)는 제 1 레벨 페이지 디스크립터(904)와 가상 주소(902)를 이용해서 제 2 레벨 페이지 디스크립터의 물리적 위치(905)를 구하고, 구해진 물리적 위치(905)를 통해 제 2 레벨 페이지 디스크립터(906)를 판독할 수 있다.
이때, 읽혀진 제 2 레벨 페이지 디스크립터(906)의 필드 L의 값에 따라 그 페이지에 락킹(locking)이 걸리는 것이 가능하다. 예를 들어, 필드 L 값을 참조한 결과 해당 페이지를 다른 프로세싱 코어(102)가 사용하고 있는 경우, 대기하거나 예외(exeption)로 처리하는 것이 가능하다. 만약 필드 L 값을 참조한 결과 해당 페이지를 사용할 수 있는 경우, 메모리 관리부(104)는 제 2 레벨 페이지 디스크립터(906)와 프로세싱 코어(102)의 식별자(910)를 이용해서 제 3 레벨 페이지 디스크립터의 주소(907)를 구하는 것이 가능하다. 프로세싱 코어(102)의 식별자(910)는 메모리 관리부(104)가 갖는 CORE_NUM 레지스터 값을 참조해서 알 수 있다. 제 3 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당된 페이지의 물리적 시작 주소를 포함하므로, 제 3 레벨 페이지 디스크립터의 주소(907)가 구해지면, 제 3 레벨 페이지 디스크립터 값과 가상 주소(902)를 이용하여 물리 주소를 얻는 것이 가능하다.
도 10은 본 발명의 일 실시예에 따른 주소 변환 테이블의 제 3 레벨 페이지 디스크립터를 도시한다. 이것은 로컬 스토어에 할당되는 영역에 대한 제 3 레벨의 페이지 테이블 엔트리가 될 수 있다.
도 1 및 도 10을 참조하면, 제 3 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당된 페이지에 대한 각 프로세싱 코어(102)의 권한을 정의할 수 있다. 예를 들어, 최하위 두 비트(bits[1:0])가 00인 경우 이 영역에 대한 접근은 페이지 폴트를 발생시키는 것이 가능하다. 또한 최하위 두 비트(bits[1:0])의 W 및 R 값에 따라 그 영역에 대한 독출(read) 권한 또는 기록(write) 권한을 표시하는 것이 가능하다.
또한, 제 3 레벨 페이지 디스크립터는 로컬 스토어(103)에 할당된 페이지에 대한 그 물리적 시작 주소를 크기 별로 정의할 수 있다. 예를 들어, 제 3 레벨 페이지 디스크립터는 bits[3:2]의 값에 따라 로컬 스토어(103)에 할당되는 페이지에 관한 256B 영역, 512B 영역 또는 1KB 영역의 물리적 시작 주소를 가리키는 것이 가능하다.
도 11은 본 발명의 일 실시예에 따른 주소 변환 테이블 생성 방법을 도시한다. 이것은 로컬 스토어를 갖는 다수의 프로세싱 코어를 포함하는 멀티 프로세서의 공유 가상 메모리를 구현하기 위한 주소 변환 테이블 생성 방법에 관한 일 예가 될 수 있다.
도 1 및 도 11을 참조하면, 먼저 주소 변환 테이블의 첫 번째 계층을 이루는 제 1 레벨 페이지 디스크립터가 생성된다(1101). 예컨대, 메모리 관리부(104)가, 도 4와 같이, 다수의 페이지로 구성되는 전체 가상 메모리 영역 중 상기 로컬 스토어(103)에 할당되는 페이지를 정의하는 제 1 레벨 페이지 디스크립터를 생성하는 것이 가능하다.
그리고 주소 변환 테이블의 두 번째 계층을 이루는 제 2 레벨 페이지 디스크립터가 생성된다(1102). 예컨대, 메모리 관리부(104)가, 도 6 및 도 8과 같이, 로컬 스토어(103)에 할당되는 페이지가 어느 프로세싱 코어(102)에 의해 사용되는지 여부를 표시하는 필드를 포함하는 제 2 레벨 페이지 디스크립터를 생성하는 것이 가능하다.
그리고 주소 변환 테이블의 세 번째 계층을 이루는 제 3 레벨 페이지 디스크립터가 생성된다(1103). 예컨대, 메모리 관리부(104)가, 도 10과 같이, 각각의 프로세싱 코어(102) 별로 로컬 스토어(103)에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 지시하는 제 3 레벨 페이지 디스크립터를 생성하는 것이 가능하다.
이상에서 살펴본 것과 같이, 본 발명의 실시예에 따른 멀티 프로세서 및 주소 변환 테이블 생성 방법에 의하면, 전체 가상 메모리 공간 상의 어떤 페이지가 프로세싱 코어의 로컬 스토어에 할당되는 경우, 주소 변환 과정에서 그 페이지를 다른 프로세싱 코어가 업데이트 했는지 여부가 참조되므로 멀티 프로세서 환경에서 하나의 주소 변환 테이블만으로 공유 가상 메모리를 구현할 수 있음을 알 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (12)

  1. 로컬 스토어를 갖는 다수의 프로세싱 코어; 및
    서로 다른 레벨을 갖는 복수의 페이지 디스크립터로 구성된 주소 변환 테이블을 생성하고, 상기 다수의 프로세싱 코어로부터 가상 주소를 수신하며, 상기 서로 다른 레벨을 갖는 복수의 페이지 디스크립터를 각각 상기 수신된 가상 주소와 비교하여 상기 수신된 가상 주소를 물리 주소로 변환하는 메모리 관리부; 를 포함하고,
    상기 주소 변환 테이블은
    전체 가상 메모리 영역을 로컬 스토어에 할당되는 페이지와 공유 메모리에 할당되는 페이지를 구분하여 정의하고, 상기 다수의 프로세싱 코어 중 적어도 어느 하나의 프로세싱 코어가 전체 가상 메모리 영역 중 상기 로컬 스토어에 할당되는 부분을 사용하는지 여부를 나타내는 공유 가상 메모리를 이용한 멀티 프로세서.
  2. 제 1 항에 있어서, 상기 주소 변환 테이블은
    다수의 페이지로 구성되는 전체 가상 메모리 영역 중 상기 로컬 스토어에 할당되는 페이지를 정의하는 제 1 레벨 페이지 디스크립터를 포함하는 공유 가상 메모리를 이용한 멀티 프로세서.
  3. 제 2 항에 있어서, 상기 주소 변환 테이블은
    상기 로컬 스토어에 할당되는 페이지가 상기 프로세싱 코어에 의해 사용되는지 여부를 표시하는 필드를 포함하는 제 2 레벨 페이지 디스크립터를 더 포함하는 공유 가상 메모리를 이용한 멀티 프로세서.
  4. 제 3 항에 있어서, 상기 주소 변환 테이블은
    상기 각각의 프로세싱 코어 별로 상기 로컬 스토어에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 지시하는 제 3 레벨 페이지 디스크립터를 더 포함하는 공유 가상 메모리를 이용한 멀티 프로세서.
  5. 제 3 항에 있어서, 상기 제 2 레벨 페이지 디스크립터는
    상기 로컬 스토어에 할당되는 페이지에 대한 기록 권한을 갖는 프로세싱 코어의 개수를 표시하는 필드 및 상기 로컬 스토어에 할당되는 페이지에 대한 복사본 생성 여부를 표시하는 필드를 더 포함하는 공유 가상 메모리를 이용한 멀티 프로세서.
  6. 제 4 항에 있어서, 상기 제 3 레벨 페이지 디스크립터는
    상기 각각의 프로세싱 코어 별로 상기 로컬 스토어에 할당된 페이지에 대한 독출 권한 또는 독출-기록 권한을 표시하는 필드를 포함하는 공유 가상 메모리를 이용한 멀티 프로세서.
  7. 삭제
  8. 제 1 항에 있어서, 상기 메모리 관리부는
    상기 각 프로세싱 코어로부터 수신한 가상 주소, 상기 가상 주소를 생성한 프로세싱 코어의 식별자, 및 상기 생성된 주소 변환 테이블을 이용하여 상기 변환을 수행하는 공유 가상 메모리를 이용한 멀티 프로세서.
  9. 제 1 항에 있어서, 상기 로컬 스토어는
    각각의 프로세싱 코어 별로 독립적으로 형성되는 랜덤 엑세스 메모리인 공유 가상 메모리를 이용한 멀티 프로세서.
  10. 로컬 스토어를 갖는 다수의 프로세싱 코어를 포함하는 멀티 프로세서의 공유 가상 메모리를 구현하기 위한 주소 변환 테이블 생성 방법으로서,
    상기 멀티 프로세서가,
    다수의 페이지로 구성되는 전체 가상 메모리 영역 중 상기 로컬 스토어에 할당되는 페이지와 공유 메모리에 할당되는 페이지를 구분하여 정의하는 제 1 레벨 페이지 디스크립터를 생성하는 단계;
    상기 로컬 스토어에 할당되는 페이지가 상기 프로세싱 코어에 의해 사용되는지 여부를 표시하는 필드를 포함하는 제 2 레벨 페이지 디스크립터를 생성하는 단계;
    상기 각각의 프로세싱 코어 별로 상기 로컬 스토어에 할당되는 페이지에 대응되는 물리 주소의 시작 주소를 지시하는 제 3 레벨 페이지 디스크립터를 생성하는 단계; 및
    상기 제 1 레벨 페이지 디스크립터, 제 2 레벨 페이지 디스크립터, 및 제 3 레벨 페이지 디스크립터 각각을 상기 다수의 프로세싱 코어로부터 수신된 가상 주소와 비교하여 상기 수신된 가상 주소를 물리 주소로 변환하는 단계를 포함하는 주소 변환 테이블 생성 방법.
  11. 제 10 항에 있어서, 상기 제 2 레벨 페이지 디스크립터는
    상기 로컬 스토어에 할당되는 페이지에 대한 기록 권한을 갖는 프로세싱 코어의 개수를 표시하는 필드 및 상기 로컬 스토어에 할당되는 페이지에 대한 복사본 생성 여부를 표시하는 필드를 더 포함하는 주소 변환 테이블 생성 방법.
  12. 제 10 항에 있어서, 상기 제 3 레벨 페이지 디스크립터는
    상기 각각의 프로세싱 코어 별로 상기 로컬 스토어에 할당된 페이지에 대한 독출 권한 또는 독출-기록 권한을 표시하는 필드를 포함하는 주소 변환 테이블 생성 방법.
KR1020100098441A 2010-10-08 2010-10-08 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 Active KR101671494B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100098441A KR101671494B1 (ko) 2010-10-08 2010-10-08 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
US13/074,999 US8930672B2 (en) 2010-10-08 2011-03-29 Multiprocessor using a shared virtual memory and method of generating a translation table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100098441A KR101671494B1 (ko) 2010-10-08 2010-10-08 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법

Publications (2)

Publication Number Publication Date
KR20120036654A KR20120036654A (ko) 2012-04-18
KR101671494B1 true KR101671494B1 (ko) 2016-11-02

Family

ID=45926031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100098441A Active KR101671494B1 (ko) 2010-10-08 2010-10-08 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법

Country Status (2)

Country Link
US (1) US8930672B2 (ko)
KR (1) KR101671494B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9329996B2 (en) * 2011-04-27 2016-05-03 Veris Industries, Llc Branch circuit monitor with paging register
CN103152394B (zh) * 2013-02-06 2016-09-28 华为技术有限公司 数据存取系统、内存共享设备及数据读取方法
US20160019168A1 (en) * 2014-07-18 2016-01-21 Qualcomm Incorporated On-Demand Shareability Conversion In A Heterogeneous Shared Virtual Memory
US10628192B2 (en) * 2015-12-24 2020-04-21 Intel Corporation Scalable techniques for data transfer between virtual machines
CN106127121B (zh) * 2016-06-15 2019-03-08 四川省遥感信息测绘院 一种基于夜间灯光数据的建成区智能化提取方法
US10613990B2 (en) * 2017-12-05 2020-04-07 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
US12117940B2 (en) 2017-12-05 2024-10-15 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
US10924508B2 (en) * 2017-12-21 2021-02-16 Sonicwall Inc. Providing access to data in a secure communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019921A1 (en) * 1997-09-05 2002-02-14 Hagersten Erik E. Skewed finite hashing function
US20060259705A1 (en) * 2005-04-04 2006-11-16 Stmicroelectronics Sa Cache coherency in a shared-memory multiprocessor system
WO2009134217A1 (en) * 2008-04-28 2009-11-05 Hewlett-Packard Development Company, L.P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared-memory multi-processor systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5173872A (en) 1985-06-13 1992-12-22 Intel Corporation Content addressable memory for microprocessor system
US4972338A (en) 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
GB2176918B (en) 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
JPS62206658A (ja) 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
US6374329B1 (en) 1996-02-20 2002-04-16 Intergraph Corporation High-availability super server
US6457100B1 (en) * 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
US6684305B1 (en) 2001-04-24 2004-01-27 Advanced Micro Devices, Inc. Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US6970990B2 (en) 2002-09-30 2005-11-29 International Business Machines Corporation Virtual mode virtual memory manager method and apparatus
US20050273571A1 (en) * 2004-06-02 2005-12-08 Lyon Thomas L Distributed virtual multiprocessor
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US9390031B2 (en) 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
KR20080037237A (ko) 2006-10-25 2008-04-30 삼성전자주식회사 임베디드 시스템에서 실시간 응답성을 지닌 요구 페이징을위한 장치 및 방법
KR100858237B1 (ko) 2006-11-07 2008-09-12 주식회사 안철수연구소 Tlb를 이용한 메모리 접근 제어 방법
KR20080097573A (ko) 2007-05-02 2008-11-06 삼성전자주식회사 가상 메모리 접근 방법
US9164812B2 (en) 2009-06-16 2015-10-20 International Business Machines Corporation Method and system to manage memory accesses from multithread programs on multiprocessor systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019921A1 (en) * 1997-09-05 2002-02-14 Hagersten Erik E. Skewed finite hashing function
US20060259705A1 (en) * 2005-04-04 2006-11-16 Stmicroelectronics Sa Cache coherency in a shared-memory multiprocessor system
WO2009134217A1 (en) * 2008-04-28 2009-11-05 Hewlett-Packard Development Company, L.P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared-memory multi-processor systems

Also Published As

Publication number Publication date
KR20120036654A (ko) 2012-04-18
US8930672B2 (en) 2015-01-06
US20120089808A1 (en) 2012-04-12

Similar Documents

Publication Publication Date Title
KR101671494B1 (ko) 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
KR101814577B1 (ko) 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
US10037228B2 (en) Efficient memory virtualization in multi-threaded processing units
ES2297417T3 (es) Invalidacion de almacenamiento, borrado de elementos de la memoria intermedia.
JP5147280B2 (ja) 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法
RU2602793C2 (ru) Способ модификации разрешений на доступ к памяти в защищенной процессорной среде
JP6284130B2 (ja) ローカル・クリア制御
US9619399B2 (en) Large-page optimization in virtual memory paging systems
JP7504092B2 (ja) 仮想化コンピューティング環境での安全なメモリアクセス
CN104252392A (zh) 一种访问数据缓存的方法和处理器
CN103778072A (zh) 多线程处理单元中的高效存储器虚拟化
CN103777925A (zh) 多线程处理单元中的高效存储器虚拟化
US20140310484A1 (en) System and method for globally addressable gpu memory
US9652274B2 (en) Techniques for handling memory accesses by processor-independent executable code in a multi-processor environment
CA2577865A1 (en) System and method for virtualization of processor resources
US20090228673A1 (en) Fine Granularity Hierarchiacal Memory Protection
EP2889778A1 (en) Shared memory in a secure processing environment
US7516297B2 (en) Memory management
Skarlatos et al. Babelfish: Fusing address translations for containers
CN101008922A (zh) 面向异构多核体系的段页式存储空间管理方法
BR102020019663A2 (pt) algoritmo de remoção de linha de cache à base de prioridade de tecnologia de alocação de cache flexível
Haldar et al. Operating systems
Van Schaik et al. High-performance microkernels and virtualisation on ARM and segmented architectures
US11960420B2 (en) Direct memory control operations on memory data structures
Vermij et al. An architecture for near-data processing systems

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20101008

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20150807

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20101008

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20160120

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: 20160729

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20161026

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20161026

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20210929

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20220927

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee