KR101087143B1 - 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템 - Google Patents

동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템 Download PDF

Info

Publication number
KR101087143B1
KR101087143B1 KR1020080132568A KR20080132568A KR101087143B1 KR 101087143 B1 KR101087143 B1 KR 101087143B1 KR 1020080132568 A KR1020080132568 A KR 1020080132568A KR 20080132568 A KR20080132568 A KR 20080132568A KR 101087143 B1 KR101087143 B1 KR 101087143B1
Authority
KR
South Korea
Prior art keywords
scratchpad
memory
scratchpad memory
spm
dynamic
Prior art date
Application number
KR1020080132568A
Other languages
English (en)
Other versions
KR20100073801A (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 KR1020080132568A priority Critical patent/KR101087143B1/ko
Publication of KR20100073801A publication Critical patent/KR20100073801A/ko
Application granted granted Critical
Publication of KR101087143B1 publication Critical patent/KR101087143B1/ko

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • 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

Abstract

본 발명은 동적 스크래치패드 메모리 관리 장치 및 방법에 관한 것으로서, 프로세서 코어 및 스크래치패드 메모리를 구비한 프로세서 시스템에서, 상기 스크래치패드 관리 장치는 하드웨어를 기반으로 하여 동적 스크래치패드 메모리를 관리하기 위해, 확장 비트들을 추가한 프로세서의 레지스터 파일로부터 스크래치패드 메모리 페이지를 읽어와서 상기 확장 비트들에 포함된 상기 스크래치패드 메모리 페이지의 가상 주소 및 스크래치패드 메모리 페이지 테이블을 이용하여 상기 스크래치 패드 메모리의 페이지를 어드레싱하고, 상기 확장 비트들을 이용하여 상기 스크래치패드 메모리에 접근하는 것을 특징으로 하며, 이로 인해 소프트웨어의 SPM 관리를 위한 오버헤드를 없앨 수 있으므로 프로세서 시스템의 고성능화와 저전력화를 달성할 수 있으며, 멀티쓰레딩 등이 동작이 미리 정해지지 않은 동적인 환경에서의 적용할 수 있는 효과가 있다.
Figure R1020080132568
프로세서 시스템, SPM 관리 장치, 스크래치패드 메모리(SPM), SPM 페이지 테이블, 동적 SPM 관리부(DSM), 제어부.

Description

동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템{Runtime scratchpad memory management apparatus and method, processor system}
본 발명은 스크래치패드 메모리에 관한 것으로서, 특히 스크래치패드 메모리를 하드웨어를 기반으로 동적 관리하기 위한 장치 및 방법, 이를 위한 프로세서 시스템에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT성장기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-026-02, 과제명: MPcore 플랫폼 기반 다중포맷 멀티미디어 SoC].
일반적으로 스크래치패드(scratchpad(tightly coupled)) 메모리(이하, SPM이라 칭함)는 프로세서에 가까이 위치하여 프로세서에 빠른 속도의 데이터 접근(access)을 제공한다. 이러한 SPM은 태그 메모리(tag memory) 및 복잡한 제어기를 필요로 하는 캐시(cache)에 비하여 간단하고 전력 소모가 작다. 또한, SPM은 캐시와 달리 그 내용을 미리 알 수 있고, 소프트웨어로 제어가 가능하다. 따라서 이 러한 SPM을 사용할 경우, 정확한 성능 예측이 가능하고, 매번 같은 성능으로 동작하는 장점을 가진다.
하지만, SPM은 따로 하드웨어 제어기를 가지지 않고, 그 내용을 소프트웨어가 제어하므로 해당 소프트웨어에서는 SPM을 어떻게 사용하느냐에 따라 그 효과가 달라질 수 있다.
현재까지의 SPM의 관리를 위한 기술은 크게 정정 방법과 동적 방법이 있다.
상기 정적 방법은 전체 소프트웨어가 동작하는 동안 일정 데이터를 SPM에 계속 저장하는 방법으로서, 데이터가 SPM에 저장되어 있을 경우, 가장 효과적인 데이터를 찾아내어 SPM에 저장하고 전체 프로그램을 동작시킨다. 이에 따라 상기 정적 방법에서는 프로그램 수행 도중에 SPM의 내용이 바뀌지 않게 된다.
반면, 상기 동적 방법은 소프트웨어가 동작하는 중간에 계속해서 SPM의 내용을 바꿔주는 방법이다. 구체적으로, 상기 동적 방법은 전체 소프트웨어가 동작하면서 SPM에 있어서 효과적인 데이터가 시간마다 계속 변하기 때문에 SPM의 내용을 프로그램 수행 도중 동적으로 변화시켜주는 보다 발전된 방법이다.
이와 같은 두 가지 방법은 모두 SPM에 있어서 가장 효과적인 데이터가 무엇인지 미리 알아내는 것이 중요하므로 종래에는 이를 위한 기술들이 개발되어 왔다.
하지만, 상기 두 가지 방법은 프로그램 수행 이전에 프로그램의 해석(analysis) 또는 이전 동작(pre-run)의 결과인 트레이스(trace)의 해석을 통해 SPM의 내용을 결정하기 때문에 준비 과정이 매우 복잡하다는 문제점이 있다.
또한, 상기 두 가지 방법은 멀티 쓰레드(Multi-thread) 또는 멀티 태스킹(Multitasking)과 같이 여러 개의 독립적인 쓰레드(thread) 또는 테스크(task)가 동시에 동작하는 경우 적용할 수 없다는 문제점이 있다. 이러한 문제점은 쓰레드들의 스케줄링에 따라 쓰레드들이 SPM을 사용하는 순서가 매번 일정하지 않고 바뀌게 되므로 미리 정해둔 순서에 따라 SPM 내용을 제어할 수 없기 때문이다.
더욱이, 현재까지의 동적 SPM 관리 방법은 동적으로 SPM의 내용이 바뀌지만, 이를 프로그램 동작 이전에 미리 모두 스케줄링하기 때문에 SPM에 들어가서 가장 효과적인 데이터를 찾고, 이들이 SPM에 들어가야 할 시점 등을 미리 찾아야 하기 때문에 이를 위한 해석 과정이 매우 복잡해진다.
본 발명의 해결하고자 하는 과제는 프로세서에서 가장 가까운 곳에 위치하여 시스템의 성능을 향상시키기 위한 스크래치패드 메모리의 하드웨어 기반의 동적 관리를 위한 장치 및 방법과, 이를 위한 프로세서 시스템을 제공함에 있다.
상기 이러한 본 발명의 목적들을 달성하기 위한 동적 스크래치패드 메모리 관리 장치는, 프로세서에 빠른 데이터 접근을 제공하는 스크래치패드 메모리; 상기 프로세서의 레지스터에 추가된 확장 비트들을 이용하여 상기 스크래치패드 메모리의 접근을 제어하고, 상기 스크래치패드 메모리를 관리하는 동적 스크래치패드 메모리 관리부; 확장 비트들에 포함된 스크래치패드 가상 페이지의 가상 주소를 스크래치패드 물리적 페이지의 주소로 변환하여 상기 스크래치패드 메모리의 어드레싱을 수행하는 스크래치패드 메모리 페이지 변환부; 및 상기 동적 스크래치패드 메모리 관리부의 명령에 따라 상기 스크래치패드 메모리에 주메모리로부터 전달받은 데이터를 저장하고, 기존의 데이터를 주메모리로 전달하는 동적 메모리 접근 제어부를 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 프로세서 시스템은, 확장 비트들을 추가한 프로세서의 레지스터 파일을 갖는 프로세서 코어; 스크래치패드 메모리를 갖고, 상기 확장 비트들에 포함된 정보 및 스크래치패드 페이지 테이블을 이용하여 상기 스크래치패드 메모리의 접근을 제어하고, 상기 스크래치패드 메모리를 관리하는 동적 스크래치패드 메모리 관리 장치; 및 상기 스크래치패드 메모리에 저장되어 있던 데이터를 전달받아 저장하는 주메모리를 포함하는 것을 특징으로 한다.
상기 본 발명의 목적들을 달성하기 위한 방법은, 프로세서 코어 및 스크래치패드 메모리 관리 장치를 구비한 프로세서 시스템에서, 상기 스크래치패드 메모리관리 장치에 의한 스크래치패드 메모리의 하드웨어 기반 동적 관리를 위한 방법으로서, 새로운 후보 데이터의 할당 요청을 받으면, 프로세서의 레지시스터 파일에서 확장 비트들을 검색하는 단계; 및 상기 검색된 확장 비트들을 이용하여 상기 스크래치패드 메모리의 접근을 제어하는 단계를 포함하는 것을 특징으로 한다.
따라서 본 발명은 동적 SPM 관리를 통해 프로세서 시스템이 효율적으로 SPM을 사용할 수 있으며, 하드웨어를 기반으로 하여 소프트웨어의 SPM 관리를 위한 오버헤드를 없앨 수 있으므로 프로세서 시스템의 고성능화와 저전력화를 달성할 수 있으며, 멀티쓰레딩 등의 동작이 미리 정해지지 않은 동적인 환경에서의 적용할 수 있는 효과가 있다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명의 실시예에서는 프로세서 시스템에서 하드웨어를 기반으로 하는 스크래치패드 메모리(ScratchPad Memory 이하, SPM라 칭함)를 적용하여 설명하기로 한다.
우선, 프로세서 시스템에서 하드웨어 기반 동적 SPM을 관리하기 위한 장치(이하, 동적 스크래치패드 메모리 관리 장치라 칭함)의 구조를 첨부된 도면을 참조하여 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 프로세서 시스템에서의 하드웨어 기반 동적 스크래치패드 메모리 관리 장치의 구조를 도시한 도면이고, 도 2는 본 발명의 실시예에 따른 멀티 쓰레드 기능과 MMU(Main Memory Unit) 및 캐시(cache)를 가진 프로세서 시스템에서의 하드웨어 기반 동적 스크래치패드 메모리 관리 장치의 구조를 도시한 도면이다.
상기 도 1를 참조하면, 프로세서 시스템은 동적 스크래치패드 메모리 관리 장치(100), 프로세서 코어(10) 및 주 메모리(20)로 구성할 수 있다. 또한, 상기 도 2에 도시된 바와 같이, 멀티 쓰레드 기능을 가진 프로세서와 가상 주소를 물리적 주소로 변환하는 MMU(30)와 캐시(40)가 추가될 수 있다.
상기 동적 스크래치패드 메모리 관리 장치(100)는 동적 SPM 관리부(110), SPM 페이지 변환부(120), SPM(130) 및 동적 메모리 접근(DMA: Dynamic Memory Access) 제어부(140)를 포함하여 구성할 수 있다.
동적 SPM 관리부(DSM : Dynamic SPM Manager)(110)는 프로세서의 레지스터 확장 비트들을 제어하고, 동적으로 SPM 페이지 변환부(120)와 DMA 제어부(140)의 제어 및 SPM(130)의 내용을 제어한다. 구체적으로, 동적 SPM 관리부(110)는 프로세서가 SPM 접근 시 확장 비트를 확인하여 해당 데이터를 저장하기 위해 SPM(130)을 새로이 사용할 것인지, 이미 SPM(130)에 해당 데이터가 저장되어 있는지 또는 SPM(130)을 사용하지 않을 것인지를 판단한다. 그리고 동적 SPM 관리부(110)는 SPM(130)에 새롭게 해당 데이터를 저장하여 사용할 경우나, SPM(130)에 기존에 저장된 데이터를 더 이상 SPM(130)을 통해 사용하지 않을 경우, 저장된 데이터를 어드레싱할 SPM 페이지 테이블(120)과 레지스터의 확장 비트를 갱신한다. 또한, 동적 SPM 관리부(110)는 주 메모리(20)로부터 새로이 SPM(130)에 해당 데이터를 복사하거나, SPM(130)에 기존에 저장된 데이터를 주 메모리(20)로 복사할 경우 DMA 제어부(140)에 해당 명령을 전송한다.
SPM 페이지 변환부(120)는 SPM 페이지 테이블을 포함하며, 이를 이용하여 프로세서의 레지스터 파일의 SPM 가상 주소(SPM Virtual Address 이하, SVA라 칭함)의 상위 비트인 SPM 가상 페이지를 검색하고, 검색된 SPM 가상 페이지의 번호를 SPM 물리적 페이지(Physical address) 번호로 변환한다. 이러한 SPM 페이지 변환부(120)는 첨부된 도 3에 도시된 바와 같이 구현되어 동작할 수 있다. 여기서 상기 SPM 가상 페이지는 일정 어드레스 공간을 의미하며, 가상 주소에서 일정 상위 비트를 가지고 지정할 수 있습니다.
상기 도 3을 참조하면, SPM 페이지 변환부(120)는 크게 프로세서 코어(10)의 PC(Program Counter)/GPR(General Purpose Register)로부터 SVA를 읽어 온다. 여기서 SVA는 가상 페이지 번호(SPM Virtual Page Number 이하, SVPN이라 함)와 옵셋(Offset)으로 이루어진다. 상기 SVPN은 SPM 변환부(120)에 의해 SPM 페이지 테이블을 통해 SPM 물리적 페이지 번호(SPM Physical Page Number 이하, SPPN라 칭함)으로 변환되고, 이를 옵셋과 더하여 물리적 주소를 도출해 낸다. 여기서 상기 SPM 페이지 테이블은 쓰레드 아이디(Thread ID 이하, TID라 칭함), 레지스터 아이디(Register ID 이하, RID라 칭함) 및 SPPN을 포함할 수 있으며, 이 외에 필요한 다른 정보들을 포함할 수도 있다.
SPM 페이지 변환부(120)는 PC/GPR로부터 SVA를 읽어오면, 읽어온 SVA의 SVPN을 통해 SPM 페이지 테이블을 인덱싱(Idexing)하고, 이러한 인덱싱을 통해 얻은 SPM 페이지 출력값을 상기 SVA의 옵셋과 합하여 SPM 물리적 주소(SPA: SPM Physical Address)를 생성하고, 생성된 SPM 물리적 주소를 이용하여 SPM(130)의 어드레싱을 수행한다. 이에 따라 상기 SPM 페이지 변환부(120)는 기존의 MMU와 달리 SPM 영역만을 관리하기 때문에 작은 사이즈로도 SPM 전체를 커버할 수 있으며, 100% 히트율(hit ratio)을 가진다. 또한, SPM 페이지 변환부(120)는 SPPN 뿐만 아니라 해당 페이지의 특성(property)을 같이 기록할 수 있다.
제어부(140)는 동적 SPM 관리부(120)의 명령에 따라 주 메모리(20)로부터 새로이 SPM(130)에 해당 데이터를 복사하거나, SPM(130)에 기존에 저장된 데이터를 주 메모리(20)로 복사한다. 또한, 제어부(140)는 SPM(130)과 주 메모리(20) 간의 통신을 담당 즉, SPM(130)과 이보다 크고 느린 주 메모리(20) 간 프로세서의 코 드(code) 및 데이터(data)의 전달을 제어하며, 프로세서 간섭 없이 동적 SPM 관리부(120)의 명령만으로 동작한다. 따라서 제어부(140)는 프로세서가 다른 일을 진행하는 동안 동시에 같이 동작할 수 있다.
상기 프로세서 코어(10)는 일반적인 프로세서의 레지스터에 확장(extension) 비트(bit)들을 추가하여 이들이 SPM(130)의 가상 주소 등을 지정할 수 있도록 한다. 여기서 상기 프로세서 레지스터의 확장은 첨부된 도 4에 도시된 바와 같이 구현할 수 있다.
프로세서는 두 가지 이유로 메모리에 접근하는데, 첫 번째 이유는 프로세서의 명령어를 패치(fetch)하기 위해서 메모리 읽기 동작을 하며, 두 번째 이유는 데이터를 처리하는 과정에서 메모리에 데이터를 읽거나 쓴다. 여기서 명령어 패치는 PC 레지스터를 통해서 명령어의 메모리 상의 주소를 지정하며, 데이터 접근 즉, 읽기(load)/저장(store)의 어드레싱을 위해서는 여러 GRP를 이용한다.
따라서 상기 프로세서(10)에서는 PC와 GPR에 확장 비트를 두고 이를 통하여 SPM의 데이터에 접근할 수 있도록 한다. 여기서 모든 GPR에 확장 비트를 둘 수도 있으며, 몇 개의 GPR에만 한정하여 확장 비트를 두고, 이를 통해서만 SPM을 접근하도록 할 수 있다.
상기 도 4를 참조하면, 상기 프로세서 코어(10)에 포함된 레지스터 파일은 PC 및 GPR로 구분되며, 각각은 확장 비트들로 구성된 가상의 확장 영역과 원 영역(Original)으로 구분할 수 있다. PC의 확장 영역은 SC, AS, PR 및 SVA의 비트들로 구성되며, GPR의 확장 영역은 SC, AS, PR, SVA 및 CB의 비트들로 구성된다.
상기 SC는 해당 데이터가 SPM에 저장되어 후보(candidate)인지 나타내며, 상기 AS는 해당 데이터가 현재 SPM에 존재하는지를 나타낸다. 상기 PR은 SPM 후보 데이터의 우선권(priority)을 나타내는 영역으로 SPM(130)에 저장되면 성능에서 큰 효과를 나타낼수록 큰 값을 가진다. 상기 CB는 SPM에 할당된 데이터를 사용한 뒤 양도(release) 시 주 메모리(20)로 카피 백(copy back)을 할지를 결정하는 비트이다. 이 외에도 확장 영역은 SPM 후보 데이터의 다른 우선권들을 설정할 수 있는 비트들을 추가하여 확장될 수도 있다.
그러면 이와 같은 본 발명의 실시예에 따른 동적 스크래치패드 메모리 관리 장치에서 하드웨어 기반의 동적 스크래치패드 메모리의 관리 방법에 대해 첨부된 도면을 참조하여 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 하드웨어 기반의 동적 스크래치패드 메모리의 접근 과정을 도시한 도면이다.
동적 스크래치패드 메모리 관리 장치는 프로세서 코어(10)의 레지스터 파일의 PC나 GPR을 통하여 SPM(130)의 어드레싱을 수행한다.
상기 도 5를 참조하면, 소프트웨어(도시되지 않음)를 통해 새롭게 SPM 할당 요청을 받으면, 동적 스크래치패드 메모리 관리 장치의 동적 SPM 관리부(110)는 201단계에서 상기 프로세서 코어(10)의 레지스터 파일에서 읽어온 상기 GPR의 확장 비트 중 SC가 1인지를 확인하여 1이 아닌 경우, 202단계에서 동적 SPM 관리부(110)는 SPM(130)을 접근하지 않고, 다른 경로를 통해 데이터에 접근한다.
상기 202단계에서 확인한 결과, SC가 1인 경우, 203단계에서 동작 SPM 관리부(110)는 AS가 1인지를 확인하여 AS가 1인 경우, 206단계로 진행한다.
반면, AS가 1이 아닌 경우, 해당 데이터가 SPM 후보이긴 하지만 아직 SPM(130)에 존재하지 않음을 의미하므로 204단계에서 동적 SPM 관리부(110)는 현재의 SPM(130)의 사용 상황과 해당 SPM 후보 데이터의 특성을 고려하여 SPM(130)의 사용 여부를 확인한다.
상기 204단계에서 확인한 결과, SPM(130)이 사용 가능하지 않은 경우, 동적 SPM 관리부(110)는 상기 202단계와 같이, 캐시 또는 SPM이 아닌 다른 경로를 통하여 데이터에 접근한 후 동작을 종료한다.
반면, SPM(130)이 사용 가능한 경우, 205단계에서 동적 SPM 관리부(110)는 SPM(130)의 페이지를 해당 데이터에 할당한다. 이때, 동적 SPM 관리부(110)는 해당 페이지를 SPM(130)에 저장하는 것이 더 효과적이라고 판단한 경우, 제어부(140)로 명령어를 전송하여 제어부(140)를 통해 주 메모리(20)로부터 해당 데이터를 읽어(Copy)와 SPM(130)에 저장하도록 한다.
그런 다음 206단계에서 동적 SPM 관리부(110)는 SPM(130)에 해당 데이터가 존재하기 때문에 SVA와 SPM 페이지 변환부(120)의 SPM 페이지 테이블을 통하여 SPM(130)에 접근을 위한 제어 신호를 SPM 페이지 변환부(120)로 전송한다. 이에 따라 SPM 페이지 변환부(120)는 상기 도 3을 참조하여 설명한 바와 같은 페이지 변환 동작을 통해 생성된 SPM 물리적 주소를 이용하여 SPM 어드레싱을 수행하므로 SPM(130)의 접근이 이루어진다.
상술한 바와 같은 과정에서 동적 SPM 관리부(110)가 새롭게 할당 요청에 따라 SPM을 사용할 수 있는지 즉, 들어온 후보 데이터를 SPM(130)에 저장할 수 있는지 여부를 판단하는 것은 우선권(Priority)과 데이터(data) 사용 빈도 등을 감안하여 판단한다. 이러한 판단 결과, 원래 SPM(130)에 있던 데이터 대신 새롭게 요청이 들어온 데이터를 SPM(130)에 넣는 것이 더 효과적이라면, 동적 SPM 관리부(110)는 제어부(140)로 데이터 복사를 위한 명령 신호를 전송하여 제어부(140)에서 기존의 데이터를 주 메모리(20)로 옮긴(복사) 후, 새로운 데이터를 제어부(140)를 통해 주 메모리(20)로부터 전달받도록 한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 발명청구의 범위뿐만 아니라 이 발명청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 실시예에 따른 프로세서 시스템에서의 하드웨어 기반 동적 스크래치패드 메모리 관리 장치의 구조를 도시한 도면,
도 2는 본 발명의 실시예에 따른 멀티 쓰레드 기능과 MMU 및 캐시(cache)를 가진 프로세서 시스템에서의 하드웨어 기반 동적 스크래치패드 메모리 관리 장치의 구조를 도시한 도면,
도 3은 본 발명의 실시예에 따른 스크래치패드 메모리 페이지 변환부의 구조 및 어드레싱 방법을 도시한 도면,
도 4는 본 발명의 실시예에 따른 프로세서 코어의 프로세서 레지스터 확장을 도시한 도면,
도 5는 본 발명의 실시예에 따른 하드웨어 기반의 동적 스크래치패드 메모리의 접근 과정을 도시한 도면.

Claims (10)

  1. 프로세서에 빠른 데이터 접근을 제공하는 스크래치패드 메모리;
    상기 프로세서의 레지스터에 추가된 확장 비트들을 이용하여 상기 스크래치패드 메모리의 접근을 제어하고, 상기 스크래치패드 메모리를 관리하는 동적 스크래치패드 메모리 관리부;
    확장 비트들에 포함된 스크래치패드 가상 페이지의 가상 주소를 스크래치패드 물리적 페이지의 주소로 변환하여 상기 스크래치패드 메모리의 어드레싱을 수행하는 스크래치패드 메모리 페이지 변환부; 및
    상기 동적 스크래치패드 메모리 관리부의 명령에 따라 상기 스크래치패드 메모리에 주메모리로부터 전달받은 데이터를 저장하고, 기존의 데이터를 상기 주메모리로 전달하는 동적 메모리 접근 제어부를 포함하는 것을 특징으로 하는 동적 스크래치패드 메모리 관리 장치.
  2. 제1항에 있어서,
    상기 동적 스크래치패드 메모리 관리부는 검색된 확장 비트들을 이용하여 상기 스크래치패드 메모리에 저장할 후보 데이터가 있는지를 확인하고, 상기 후보 데이터가 존재하는 경우, 상기 후보 데이터에 대한 해당 데이터가 상기 스크래치패드 메모리에 미리 저장되어 있는지를 확인하여 미리 저장되어 있으면, 상기 스크래치 패드 메모리에 접근하도록 제어함을 특징으로 하는 동적 스크래치패드 메모리 관리 장치.
  3. 제2항에 있어서,
    상기 동적 스크래치패드 메모리는 상기 후보 데이터가 있으나 상기 스크래치패드 메모리에 상기 해당 데이터가 존재하지 않으면, 상기 스크래치패드 메모리의 현재 상황과 상기 스크래치패드 메모리 후보 데이터의 특성을 고려하여 상기 스크래치패드 메모리의 사용 가능 여부를 판단함을 특징으로 하는 동적 스크래치패드 메모리 관리 장치.
  4. 제1항에 있어서,
    상기 동적 스크래치패드 메모리는 새롭게 데이터 할당 요청을 받아 들어온 후보 데이터를 상기 스크래치패드 메모리에 저장하는 경우, 상기 스크래치패드 메모리에 저장된 기존 데이터를 주메모리로 복사하고, 상기 주메모리로부터 상기 후보 데이터를 읽어오기 위한 명령을 상기 제어부로 전송함을 특징을 하는 동적 스크래치패드 메모리 관리 장치.
  5. 확장 비트들을 추가한 프로세서의 레지스터 파일을 갖는 프로세서 코어;
    스크래치패드 메모리를 갖고, 상기 확장 비트들에 포함된 정보 및 스크래치패드 페이지 테이블을 이용하여 상기 확장 비트들에 포함된 스크래치 패드 가상 페이지의 가상 주소를 상기 스크래치패드 물리적 페이지의 주소로 변환하여 상기 스크래치패드 메모리의 접근을 제어하고, 상기 스크래치패드 메모리를 관리하는 동적 스크래치패드 메모리 관리 장치; 및
    상기 스크래치패드 메모리에 저장되어 있던 데이터를 전달받아 저장하는 주메모리를 포함하는 것을 특징으로 하는 프로세서 시스템.
  6. 제5항에 있어서,
    상기 스크래치패드 페이지 테이블은, 상기 프로세서 코어로부터 읽어온 스크래치패드 가상 주소의 스크래치패드 가상 페이지를 스크래치패드 물리적 페이지로 변환하고, 변환된 물리적 페이지의 출력값과 상기 스크래치패드 가상 주소의 옵셋을 합하여 물리적 가상 주소를 생성하고, 생성된 물리적 가상 주소를 이용하여 상기 스크래치패드 메모리의 어드레싱을 수행함을 특징으로 하는 프로세서 시스템.
  7. 프로세서 코어 및 스크래치패드 메모리 관리 장치를 구비한 프로세서 시스템에서, 상기 스크래치패드 관리 장치에 의한 스크래치패드 메모리의 하드웨어 기반의 동적 관리를 위한 방법에 있어서,
    새로운 후보 데이터의 할당 요청을 받으면, 프로세서의 레지스터 파일에서 확장 비트들을 검색하는 단계; 및
    상기 검색된 확장 비트들을 이용하여 상기 스크래치패드 메모리의 접근을 제어하는 단계를 포함하며,
    상기 확장 비트들을 이용하여 상기 스크래치패드 메모리의 접근을 제어하는 단계는
    상기 확장된 비트들을 이용하여 상기 스크래치패드 메모리에 저장할 후보 데이터가 존재하는지 확인하는 단계;
    상기 후보 데이터가 존재하면, 상기 스크래치패드 메모리에 상기 후보 데이터에 대한 해당 데이터가 미리 저장되어 있는지 확인하는 단계; 및
    상기 해당 데이터가 미리 저장되어 있으면, 상기 확장된 비트들에 포함된 스크래치패드 메모리 가상 주소와 스크래치패드 메모리 페이지 테이블을 통해 생성된 스크래치패드 메모리 물리적 주소를 이용하여 상기 스크래치패드 메모리에 접근하는 단계를 포함하는 것을 특징으로 하는 동적 스크래치패드 메모리 관리 방법.
  8. 삭제
  9. 제7항에 있어서, 상기 확장 비트들을 이용하여 상기 스크래치패드 메모리에 접근하는 단계는,
    상기 해당 데이터가 미리 저장되어 있지 않으면, 상기 스크래치패드 메모리의 사용 가능 여부를 판단하는 단계;
    상기 스크래치패드 메모리를 사용 가능한 경우, 상기 스크래치패드 메모리 페이지를 상기 해당 데이터에 할당하는 단계; 및
    상기 해당 데이터를 상기 스크래치패드 메모리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 동적 스크래치패드 메모리 관리 방법.
  10. 제7항 또는 제9항에 있어서, 상기 확장 비트들을 이용하여 상기 스크래치패드 메모리에 접근하는 단계는,
    상기 후보 데이터가 존재하지 않으면, 다른 경로를 통하여 상기 해당 데이터에 접근하는 단계를 포함하는 것을 특징으로 하는 동적 스크래치패드 메모리 관리 방법.
KR1020080132568A 2008-12-23 2008-12-23 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템 KR101087143B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080132568A KR101087143B1 (ko) 2008-12-23 2008-12-23 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080132568A KR101087143B1 (ko) 2008-12-23 2008-12-23 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템

Publications (2)

Publication Number Publication Date
KR20100073801A KR20100073801A (ko) 2010-07-01
KR101087143B1 true KR101087143B1 (ko) 2011-11-25

Family

ID=42636690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080132568A KR101087143B1 (ko) 2008-12-23 2008-12-23 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템

Country Status (1)

Country Link
KR (1) KR101087143B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160071685A (ko) 2014-12-12 2016-06-22 국민대학교산학협력단 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160071685A (ko) 2014-12-12 2016-06-22 국민대학교산학협력단 스크래치패드 메모리 관리 방법, 이를 수행하는 스크래치패드 메모리 관리 장치 및 이를 저장하는 기록매체

Also Published As

Publication number Publication date
KR20100073801A (ko) 2010-07-01

Similar Documents

Publication Publication Date Title
KR100996753B1 (ko) 시퀀서 어드레스를 관리하기 위한 방법, 맵핑 관리자 및 멀티 시퀀서 멀티스레딩 시스템
US9921972B2 (en) Method and apparatus for implementing a heterogeneous memory subsystem
US7512745B2 (en) Method for garbage collection in heterogeneous multiprocessor systems
US7188229B2 (en) Method and apparatus for memory management in a multi-processor computer system
JP3816586B2 (ja) 先取り命令を生成する方法とシステム
US9442851B2 (en) Multi-core processor system, control program, and control method
US9286221B1 (en) Heterogeneous memory system
US20150106566A1 (en) Computer Processor Employing Dedicated Hardware Mechanism Controlling The Initialization And Invalidation Of Cache Lines
KR20150066526A (ko) 이종 컴퓨팅 시스템에서 콜드 tlb 미스의 감축
US6578065B1 (en) Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory
JP2009506411A (ja) コンピュータ装置におけるプリエンプト可能なコンテキストスイッチ
US20200285408A1 (en) Method and apparatus for storing memory attributes
Whitham et al. Implementing time-predictable load and store operations
US11086632B2 (en) Method and apparatus for providing accelerated access to a memory system
CN112965921B (zh) 一种多任务gpu中tlb管理方法及系统
KR101087143B1 (ko) 동적 스크래치패드 메모리 관리 장치 및 방법, 프로세서 시스템
US7937552B2 (en) Cache line reservations
CN114780466B (zh) 一种基于dma的数据复制延时的优化方法
US11741017B2 (en) Power aware translation lookaside buffer invalidation optimization
Faraz A review of memory allocation and management in computer systems
Varma et al. DTLB: Deterministic TLB for Tightly Bound Hard Real-Time Systems
CN114840332A (zh) 页交换方法、装置和电子设备
JP2924708B2 (ja) 情報処理装置
GB2602636A (en) Technique for tracking modification of content of regions of memory
CN117271107A (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee