KR101951309B1 - 데이터 처리 장치 및 데이터 처리 방법 - Google Patents

데이터 처리 장치 및 데이터 처리 방법 Download PDF

Info

Publication number
KR101951309B1
KR101951309B1 KR1020170050606A KR20170050606A KR101951309B1 KR 101951309 B1 KR101951309 B1 KR 101951309B1 KR 1020170050606 A KR1020170050606 A KR 1020170050606A KR 20170050606 A KR20170050606 A KR 20170050606A KR 101951309 B1 KR101951309 B1 KR 101951309B1
Authority
KR
South Korea
Prior art keywords
color
block
data
sequential
colors
Prior art date
Application number
KR1020170050606A
Other languages
English (en)
Other versions
KR20180117463A (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 KR1020170050606A priority Critical patent/KR101951309B1/ko
Publication of KR20180117463A publication Critical patent/KR20180117463A/ko
Application granted granted Critical
Publication of KR101951309B1 publication Critical patent/KR101951309B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

실시예에 따른 데이터 처리 장치는 복수의 구역으로 구분되는 캐시, 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 그리고 데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하여 데이터를 불휘발성 메모리에 저장하는 프로세서를 포함한다.

Description

데이터 처리 장치 및 데이터 처리 방법{DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD}
본 개시는 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다.
싱글 코어 또는 멀티 코어 프로세서에는 캐시(cache memory)가 존재하며, 프로세서는 메모리로부터 참조한 데이터를 캐시에 보관한다. 싱글 코어 또는 멀티 코어 프로세서는 다수의 프로그램(프로세스)를 동시에 구동할 수 있으며, 운영체제 및 다수의 프로세스는 실행 중 캐시 메모리를 차지하기 위해 경쟁한다.
최근 코어 아키텍처가 널리 사용되고 있으며, 이런 시스템에서는 멀티 코어들이 최하위 레벨 캐시(LLC: last level cache)를 공유하고 있다. 이러한 멀티 프로세서 환경에서 여러 프로세스가 동시에 수행될 경우, 최하위 레벨 캐시를 공유하고 있기 때문에 프로세스 서로가, 메모리로부터 캐시로 가져온 데이터에 대하여 간섭하기 시작한다.
즉, 캐시로 가져온 데이터들이 캐시 내의 임의의 위치에 대해 서로 경쟁하게 된다. 따라서 프로세스들은 최하위 레벨 캐시를 차지하기 위하여 경쟁을 하게 되고 캐시 오염을 유발시킨다.
한편, 최근에는 불휘발성 메모리(non-volatile memory)가 저장매체로 사용되고 있으며, 운영체제의 파일 시스템은 HDD나 SSD에서와 유사하게, 불휘발성 메모리에 파일 단위로 정보를 기록한다. 불휘발성 메모리에 저장된 파일 데이터는 캐시의 특정 위치로 적재되며, 다른 데이터와 캐시 공간을 차지하기 위해 경쟁하게 되고 캐시 오염을 유발시킨다.
실시예들은 파일 데이터를 적절히 배치하여 다른 데이터들과의 캐시 내의 위치 경쟁을 방지하기 위한 것이다.
그리고, 실시예들은 캐시 오염을 방지하기 위한 것이다.
실시예에 따른 데이터 처리 장치는 복수의 구역으로 구분되는 캐시, 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하여 데이터를 불휘발성 메모리에 저장하는 프로세서를 포함한다.
복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고, 물리 메모리 주소는 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며, 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록일 수 있다.
프로세서는 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 데이터에 대해 지정할 수 있다.
프로세서는 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 적어도 하나의 컬러에 대응하는 프리 블록을 데이터에 대해 할당할 수 있다.
프로세서는 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 다시 지정할 수 있다.
프로세서는 프리 블록 할당에 의해, 복수의 블록 그룹 내에서 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 더 지정할 수 있다.
실시예에 따른 데이터 처리 방법은 복수의 구역으로 구분되는 캐시, 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 및 서로 상이한 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하는 데이터 처리 장치에 있어서, 데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계, 및 데이터를 적어도 하나의 블록에 저장하는 단계를 포함한다.
복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고, 물리 메모리 주소는 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며, 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록일 수 있다.
적어도 하나의 블록을 할당하는 단계 이전에, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 데이터에 대해 지정하는 단계를 더 포함할 수 있다.
데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 적어도 하나의 컬러에 대응하는 프리 블록을 데이터에 대해 할당하는 단계를 포함할 수 있다.
데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 다시 지정하는 단계를 더 포함할 수 있다.
데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 프리 블록 할당에 의해, 복수의 블록 그룹 내에서 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 더 지정하는 단계를 더 포함할 수 있다.
상이한 프로세스 각각에 의해, 데이터를 데이터가 저장된 블록에 대응하는 캐시 내의 일 구역으로 가져오는 단계를 더 포함할 수 있다.
실시예에 따른 데이터 처리 장치는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 불휘발성 메모리에 저장된 데이터를 블록 단위로 캐시에 가져오는 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하고, 복수의 블록 각각이 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하고, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하며, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록이고, 프로세서는 입력되는 데이터를 복수의 순차적 컬러 그룹 중 어느 하나에 포함된 순차적인 m개의 컬러에 대응하는 연속적인 블록들에 할당한다.
실시예들에 따르면, 캐시 오염을 감소시킬 수 있다.
실시예들에 따르면, 프로세스의 성능을 증가시킬 수 있다.
도 1은 실시예에 따른 데이터 처리 장치를 간략히 나타낸 블록도이다.
도 2는 도 1에 도시된 데이터 처리 장치의 일부 구성을 구체적으로 나타낸 블록도이다.
도 3은 임의의 물리 메모리 주소에 컬러를 할당하는 예를 나타낸 도면이다.
도 4는 실시예에 따른 데이터 처리 방법을 나타낸 순서도이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 여러 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.
또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 실시예에 따른 데이터 처리 장치를 간략히 나타낸 블록도이다. 도시된 바와 같이, 데이터 처리 장치는 프로세서(110) 및 메모리(120)를 포함한다.
프로세서(110)는 복수의 코어(core)(112a-112d) 및 캐시(cache)(114)를 포함한다. 예를 들어, 프로세서(110)는 운영 체제 또는 응용 프로그램을 구동하여, 프로세서(110)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다.
프로세서(110)는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 프로세서(110)는 중앙처리장치(CPU: central processing unit), 어플리케이션 프로세서(AP: application processor), 또는 커뮤니케이션 프로세서(CP: communication processor) 중 하나 또는 그 이상을 포함할 수 있다.
프로세서(110)는, 컴퓨팅 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어 프로세서(110)는 메모리(120)에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)를 의미할 수 있다.
데이터 처리 장치에서 다수의 코어(112a-112d)를 포함할 경우, 다수의 코어는 각각 프로세스를 구동할 수 있다. 각각의 코어(112a-112d)는, 메모리(120) 또는 캐시(114)에 저장된 데이터와 같은 프로그램을 처리할 수 있다.
캐시(114)는 메모리(120)로부터 판독한 명령이나 데이터들을 저장하는 버퍼 형태의 고속 저장장치이다. 이러한 캐시(114)는 프로세서(110) 및 메모리(120) 사이에 설치될 수 있으며, 캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 지칭된다.
캐시(114)는 메모리(120)에 비해 기억 용량(memory capacity)이 비교적 작지만, 메모리(120)에 비해 고속으로 액세스 가능하다. 따라서, 프로세서(110)가 명령 또는 데이터가 필요하게 되면, 메모리(120)가 아니라 캐시(114)에 먼저 액세스할 수 있다.
캐시(114)는 프로세스가 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. 멀티 코어 시스템의 멀티 코어들은 최하위 레벨 캐시(LLC)를 공유한다. 이러한 최하위 레벨 캐시는 메모리(120)에 액세스하기 전에 호출되는 공유된 가장 높은 레벨의 캐시(특정 실시 예들에서 L3 캐시일 수 있다)이다.
멀티 프로세서 환경에서 다수의 프로세스가 동시에 수행될 경우, 프로세스들은 공유 캐시(114)를 공유하고 있기 때문에 프로세스들 상호 간 캐싱해 놓은 데이터에 대하여 간섭할 수 있다. 따라서, 프로세스들은 공유 캐시(114)를 차지하기 위하여 경쟁을 하게 되고 캐시 오염 현상을 발생시킨다.
메모리(120)는 복수의 물리 메모리 주소를 포함하는 블록 단위로 구성될 수 있다. 이하의 설명에서, 메모리(120)는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM), OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD) 등과 같은 불휘발성 메모리 장치가 사용되는 것으로 가정된다. 그러나, 본 발명의 기술 사상은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해, 다른 메모리 장치에 적용될 수 있다.
프로세서(110)는 메모리 인터페이스를 통해 메모리(120)와 통신하도록 구성된다. 메모리 인터페이스는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 메모리(120)와 통신할 수 있다. 메모리 인터페이스는 제어 채널을 통해 제어 신호를 메모리(120)와 통신할 수 있다.
한편, 프로세서(100)에서 실행되는 파일 시스템은 메모리(120)를 블록 단위(또는 페이지 단위)로 구분하여 관리한다. 파일 시스템은 파일을 생성하거나 파일이 확장될 때 미사용중인 프리 블록을 파일에게 할당한다. 다이렉트 맵핑 (directive mapping) 또는 세트 연관 (set-associative) 캐시의 경우 파일 데이터가 차지하는 캐시(114) 내 위치는 메모리(120) 상에서 파일 데이터의 주소, 특히 물리 메모리 주소에 의해 결정된다.
다음으로, 도 2를 참조하여, 메모리(120) 및 캐시(114) 간의 데이터 페치(fetch)에 대해 설명한다.
도 2는 도 1에 도시된 데이터 처리 장치의 일부 구성을 구체적으로 나타낸 블록도이다.
캐시(114)는 복수의 코어들에 의해 공유될 수 있고, 복수의 구역(S1-S4)들로 슬라이싱(slice)될 수 있다. 복수의 구역(S1-S4) 각각은 레이턴시(latency)를 줄이고, 패럴렐리즘(parallelism)을 증가시키기 위해 코어에 의해 독립적으로 액세스될 수 있다.
메모리(120)는 복수의 블록 그룹(BG0-BGk)을 포함한다. 그리고, 복수의 블록 그룹 각각은 복수의 블록(예를 들어, 페이지)을 포함할 수 있다. 그리고, 하나의 블록(예를 들어, BLK0)은 복수의 물리 메모리 주소(ADD0-ADDi-1)를 포함한다. 이하에서, 하나의 블록의 크기는 4KB인 것으로 가정한다.
각각의 물리 메모리 주소(ADD0-ADDi-1)는 임의의 한 컬러에 대응할 수 있다. 예를 들어, 각각의 물리 메모리 주소(ADD0-ADDi-1)에는 해당 물리 메모리 주소의 일부 비트에 따른 컬러가 지정될 수 있다. 여기서 컬러는 컬러 비트로 표현될 수 있다.
예를 들어, 블록 번호를 나타내는 비트들 중 일부의 상위 비트들은, 캐시(114)와 함께 공유되는 컬러 비트로 지정될 수 있다. 다른 예로, 프로세서(110)는 해당 블록의 블록 번호를 나타내는 비트들을 이용하여 해당 블록의 컬러 비트를 산출할 수 있다. 이에 대해서는 도 3을 참조하여 함께 설명한다.
도 3은 물리 메모리 주소(ADD0)에 컬러를 할당하는 예를 나타낸 도면이다. 도시된 바와 같이, 하나의 물리 메모리 주소(ADD0)는 복수의 비트(예를 들어, 64 bits)를 포함할 수 있다.
4KB 크기의 블록을 사용하는 경우, 물리 메모리 주소(ADD0)의 블록 번호는 비트들(a63a62…a13a12)일 수 있다. 블록 번호 비트들 중 임의의 비트들을 추출하여 캐시(114)의 복수의 구역(S1-S4)에 각각에 대응하는 비트들(h1(a), h2(a))가 해시 함수(H1, H2)에 의해 산출될 수 있다.
해시 함수(H1, H2)에 의해 비트들(h1(a), h2(a))은 다음의 수학식 1 및 수학식 2로 계산될 수 있다.
Figure 112017038494279-pat00002
해당 물리 메모리 주소(ADD0)에 저장된 데이터가 캐시(114)로 페치되는 경우, 비트들(h1(a), h2(a))에 대응하는 캐시(114) 내의 구역에 페치될 수 있다.
물리 메모리 주소(ADD0)의 컬러 비트는 h2(a)h1(a)a16a15a14a13a12로 결정될 수 있다. 즉, 5개의 비트(a16-a12) 및 해시 함수(H1, H2)에 의해 생성된 비트들(h1(a), h2(a))을 연결하여 7비트의 컬러 비트가 결정될 수 있다.
한편, 32KB 크기의 블록을 사용하는 경우, 물리 메모리 주소(ADD0)의 블록 번호는 비트들(a63a62…a16a15)일 수 있다. 이 경우, 물리 메모리 주소(ADD0)의 컬러 비트는 h2(a)h1(a)a16a15로 결정될 수 있다. 즉, 2개의 비트(a16-a15) 및 해시 함수(H1, H2)에 의해 생성된 비트들(h1(a), h2(a))을 연결하여 4비트의 컬러 비트가 결정될 수 있다.
하나의 블록이 다수의 물리 메모리 주소를 포함하므로, 하나의 블록은 하나의 컬러에 대응하는 물리 메모리 주소들을 포함하거나, 여러 컬러에 대응하는 물리 메모리 주소들을 포함할 수 있다. 다만, 이하에서 설명의 편의를 위해, 하나의 블록이 하나의 컬러에 대응하는 다수의 물리 메모리 주소를 포함하는 것으로 가정하여 설명한다.
임의의 두 블록(BLK0, BLKi+32)이 캐시(114) 내 동일한 구역(S0)에 대응되어, 그렇지 않은 다른 블록들 보다 캐시(114) 내의 공간을 점유하기 위해 경쟁하는 정도가 더 강하다면, 두 블록(BLK0, BLKi+32)은 동일한 컬러를 가진다고 정의할 수 있다. 동시에 경쟁하는 정도가 약한 다른 블록들은 블록(BLK0) 및 블록(BLKi+32)와 상이한 컬러를 가진다. 이와 같이 메모리(120)를 구성하는 블록들에게 서로 상이한 컬러들을 할당할 수 있다.
상기의 도 3의 예에서와 같이, 4KB 크기의 블록을 사용하는 경우, 7비트의 컬러 비트에 의해 128(=27) 컬러가 정의될 수 있다. 하나의 블록은 하나의 컬러에 대응하고, 일부의 연속적인 블록들 사이에서는, h2(a)와 h1(a)가 동일하다.
예를 들어, 블록(BLKj)가 5비트 컬러 비트(a16a15a14a13a12) 값에 의해 컬러(C32)를 가지면, 블록(BLKj+1)은 블록 번호 증가에 따라 컬러(C33)를 가진다. 또한, 블록(BLK+30) 및 블록(BLK+31)도 각각 컬러(C62) 및 컬러(C63)를 가진다. 이는 h2(a)와 h1(a)가 블록들(BLKj+1 내지 BLKj+31)에 대해 동일하고, a16a15a14a13a12만이 블록들(BLKj+1 내지 BLKj+31)에 대해 상이하기 때문이다. 그러나, h2(a)와 h1(a)는 블록(BLKj+31)과 블록(BLKj+32) 사이에서 상이할 수 있기 때문에 블록(BLKj+32)의 컬러를 예측할 수 없다.
즉, 7비트의 컬러 비트에서, 해시 함수에 의해 결정되는 h2(a)와 h1(a)는 32개의 연속적인 블록 단위로 변경될 수 있으나, 32개의 연속적인 블록 내에서는 동일하다.
예를 들어, 7비트 중 h2(a)와 h1(a)는 32개의 연속적인 블록 내에서 그 값이 모두 동일하다. 그리고, 7비트에서 h2(a)와 h1(a)를 제외한 5비트의 컬러 비트들(a16-a12)의 값은 32개의 연속적인 블록 내에서 서로 상이하다. 상이한 컬러 비트들의 값에 의해, 32개의 연속적인 블록들은 순차적인 컬러들을 가진다.
이러한 순차적인 컬러들을 순차적 컬러 그룹(SCG0, SCG1, SCG2, SCG3)으로 지칭한다. 순차적 컬러 그룹(SCG0, SCG1, SCG2, SCG3)은 하나의 블록 그룹(BG0) 내에서 32개의 연속적인 블록 단위로 변경될 수 있다.
즉, 동일한 컬러들이 서로 다른 물리적으로 연속적인 블록들 사이에 반복적으로 나타나는 경우, 이 컬러들을 순차적 컬러 그룹(Sequential Color Group)으로 지칭한다.
예를 들어, 물리적으로 연속적인 블록들(BLK0-BLK31)이 C0 내지 C31의 컬러을 가지고, 또 다른 물리적으로 연속한 블록들(BLKi+32-BLKi+63)이 C0 내지 C31의 컬러를 가지면, 컬러들(C0-C31)은 순차적 컬러 그룹에 해당한다.
도 2에 도시된 바와 같이, 메모리(120)에서, 연속적인 블록들(BLK0-BLK31)은 순차적 컬러 그룹(SCG0)에 포함되는 순차적인 컬러들(C0-C31)에 각각 대응하고, 연속적인 블록들(BLK32-BLK63)은 순차적 컬러 그룹(SCG3)에 포함되는 순차적인 컬러들(C96-C127)에 각각 대응하며, 연속적인 블록들(BLK64-BLK95)은 순차적 컬러 그룹(SCG1)에 포함되는 순차적인 컬러들(C32-C63)에 각각 대응하고, 연속적인 블록들(BLK96-BLK127)은 순차적 컬러 그룹(SCG2)에 포함되는 순차적인 컬러들(C64-C95)에 각각 대응한다.
한편, 32KB 크기의 블록을 사용하는 경우, 4비트의 컬러 비트에 의해 16(=24) 컬러가 정의될 수 있다. 하나의 블록은 하나의 컬러에 대응하고, 일부의 연속적인 블록들 사이에서는, h2(a)와 h1(a)가 동일하다.
즉, 4비트의 컬러 비트에서, 해시 함수에 의해 결정되는 h2(a)와 h1(a)는 4개의 연속적인 블록 단위로 변경될 수 있으나, 4개의 연속적인 블록 내에서는 동일하다.
예를 들어, 4비트 중 h2(a)와 h1(a)는 4개의 연속적인 블록 내에서 그 값이 모두 동일하다. 그리고, 4비트에서 h2(a)와 h1(a)를 제외한 2비트의 컬러 비트들(a16a15)의 값은 4개의 연속적인 블록 내에서 서로 상이하다. 상이한 컬러 비트들의 값에 의해, 4개의 연속적인 블록들은 순차적인 컬러들을 가진다.
메모리(120) 내에서 동일한 순차적 컬러 그룹에 포함된 블록들은 캐시(114) 내에서 페치되는 캐시(114) 내의 구역이 동일할 수 있다. 그러므로, 동일한 순차적 컬러 그룹에 포함된 블록은 캐시(114) 내의 동일 구역에 대해 경쟁한다.
예를 들어, 각각의 프로세스가 블록 그룹(BG0) 내의 순차적 컬러 그룹(SCG0)에 포함된 블록들(BLK0-BLK31)에 저장된 데이터 및 블록 그룹(BGk) 내의 순차적 컬러 그룹(SCG0)에 포함된 블록들(BLKj+32-BLKj+63)에 저장된 데이터를 페치할 때, 각 블록들에 저장된 데이터들은 캐시(114)의 동일한 구역(S0)을 두고 경쟁할 수 있다.
마찬가지로, 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG1)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S1)을 두고 경쟁할 수 있다. 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG2)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S2)을 두고 경쟁할 수 있다. 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG3)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S3)을 두고 경쟁할 수 있다.
프로세서(110)가 메모리(120) 내의 연속적인 블록들을 하나의 파일에 할당하면, 하나의 파일은 여러 순차적 컬러 그룹에 대응하는 블록들에 저장될 수 있다. 그러면, 해당 파일을 호출하는 하나의 프로세스가 수행되는 경우, 해당 파일이 캐시(114) 내의 여러 구역으로 페치될 수 있어 캐시 오염을 유발할 수 있다.
다음으로, 도 4를 참조하여, 본 발명의 실시예에 따른 데이터 처리 방법에 대해 설명한다.
도 4는 실시예에 따른 데이터 처리 방법을 나타낸 순서도이다.
먼저 프로세서(110)는 데이터(이하에서, 파일(file)로 설명함)가 메모리(120)에 저장되는 때, 파일에 대해 순차적 컬러 그룹 내의 적어도 하나의 컬러를 지정(S100)한다.
예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 본 실시예에서는 편의상 연속적인 컬러들(C0, C1, C2)를 파일에 대해 지정하였지만, 컬러들은 반드시 연속적이지 않아도 된다는 점은 자명하다.
프로세서(110)는 블록 그룹 내에서 지정된 컬러에 대응하는 프리 블록을 검색(S110)하고, 프리 블록이 존재하는지 판단(S120)한다. 프리 블록은 데이터 또는 명령 등이 저장되지 않은 블록을 의미할 수 있다. 이때 프로세서(110)는 블록 그룹들 전부에 대해, 지정된 컬러에 대응하는 프리 블록을 검색할 수도 있다.
예를 들어, 프로세서(110)는 블록 그룹(BG0) 내에서 지정된 컬러(예를 들어, C0, C1, C2)에 대응하는 프리 블록을 검색할 수 있다. 블록 그룹(BG0) 내에서 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록이 검색되지 않으면, 프로세서(110)는 다른 블록 그룹들에 대해서도 지정된 컬러에 대응하는 프리 블록을 검색할 수 있다.
그리고, 프로세서(110)는 프리 블록이 블록 그룹 내에서 검색되면, 검색된 프리 블록을 파일에 할당(S130)한다.
예를 들어, 프로세서(110)는 블록 그룹(BG0) 내에서 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록(BLK0, BLK1, BLK2)이 검색되면, 프리 블록(BLK0, BLK1, BLK2)을 파일에 할당할 수 있다. 또한, 프로세서(110)는 다른 블록 그룹들에 대해서도 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록들을 검색하여 파일에 할당할 수 있다.
프로세서(110)는 프리 블록이 모든 블록 그룹 내에서 소진되었는지 판단(S140)한다.
모든 블록 그룹 내에서 프리 블록이 검색되지 않거나, 블록 할당에 의해 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(110)는 다른 적어도 하나의 컬러들을 파일에 지정(S150)한다.
S120 단계에서, 모든 블록 그룹들 내에서 지정된 컬러에 대응하는 블록이 검색되지 않은 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 다시 지정할 수 있다. 또는 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 다시 지정할 수 있다.
예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 검색되지 않은 경우, 순차적 컬러 그룹(SCG0) 내의 다른 컬러들(C3-C31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 검색되지 않은 경우, 순차적 컬러 그룹들(SCG1-SCG3) 내의 컬러들(C32-S127) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다.
또한, S140 단계에서, 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 더 지정할 수 있다. 또는 프로세서(110)는 S100 단계에서 지정된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 더 지정할 수 있다.
예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 소진된 경우, 순차적 컬러 그룹(SCG0) 내의 다른 컬러들(C3-C31) 중 적어도 하나의 컬러를 파일에 대해 더 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 소진된 경우, 순차적 컬러 그룹들(SCG1-SCG3) 내의 컬러들(C32-S127) 중 적어도 하나의 컬러를 파일에 대해 더 지정할 수 있다.
실시예에 따른 데이터 처리 장치 및 데이터 처리 방법에 따르면, 캐시(114) 내의 하나의 구역으로 페치될 수 있도록, 데이터가 메모리(120)에 저장될 수 있다. 여러 프로세스에 의해 여러 데이터들이 캐시(114)로 페치되는 경우, 각각의 데이터가 다른 데이터와 캐시(114) 내의 구역에 대해 경쟁하지 않을 수 있다.
즉, 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법은 캐시 오염을 감소시키고, 프로세스의 성능을 증가시킬 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.

Claims (14)

  1. 복수의 구역으로 구분되는 캐시,
    상기 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 그리고
    데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하여 상기 데이터를 불휘발성 메모리에 저장하는 프로세서
    를 포함하고,
    상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
    상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
    상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
    데이터 처리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 프로세서는 상기 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 상기 데이터에 대해 지정하는,
    데이터 처리 장치.
  4. 제3항에 있어서,
    상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는,
    데이터 처리 장치.
  5. 제4항에 있어서,
    상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 다시 지정하는,
    데이터 처리 장치.
  6. 제4항에 있어서,
    상기 프로세서는 상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 더 지정하는,
    데이터 처리 장치.
  7. 복수의 구역으로 구분되는 캐시, 상기 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 및 서로 상이한 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하는 데이터 처리 장치의 데이터 처리 방법에 있어서,
    데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계, 및
    상기 데이터를 상기 적어도 하나의 블록에 저장하는 단계
    를 포함하고,
    상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
    상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
    상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
    데이터 처리 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 적어도 하나의 블록을 할당하는 단계 이전에,
    상기 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 상기 데이터에 대해 지정하는 단계
    를 더 포함하는 데이터 처리 방법.
  10. 제9항에 있어서,
    상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
    상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는 단계를 포함하는,
    데이터 처리 방법.
  11. 제10항에 있어서,
    상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
    상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 다시 지정하는 단계를 더 포함하는,
    데이터 처리 방법.
  12. 제10항에 있어서,
    상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
    상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 더 지정하는 단계를 더 포함하는,
    데이터 처리 방법.
  13. 제7항에 있어서,
    상기 상이한 프로세스 각각에 의해, 상기 데이터를 상기 데이터가 저장된 블록에 대응하는 상기 캐시 내의 일 구역으로 가져오는 단계를 더 포함하는,
    데이터 처리 방법.
  14. 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리,
    상기 불휘발성 메모리에 저장된 데이터를 블록 단위로 캐시에 가져오는 프로세스를 구동하는 복수의 코어를 포함하는 프로세서
    를 포함하고,
    상기 복수의 블록 각각이 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하고, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하며, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
    상기 프로세서는 입력되는 데이터를 상기 복수의 순차적 컬러 그룹 중 어느 하나에 포함된 순차적인 m개의 컬러에 대응하는 연속적인 블록들에 할당하는,
    데이터 처리 장치.
KR1020170050606A 2017-04-19 2017-04-19 데이터 처리 장치 및 데이터 처리 방법 KR101951309B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170050606A KR101951309B1 (ko) 2017-04-19 2017-04-19 데이터 처리 장치 및 데이터 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170050606A KR101951309B1 (ko) 2017-04-19 2017-04-19 데이터 처리 장치 및 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20180117463A KR20180117463A (ko) 2018-10-29
KR101951309B1 true KR101951309B1 (ko) 2019-04-29

Family

ID=64101313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170050606A KR101951309B1 (ko) 2017-04-19 2017-04-19 데이터 처리 장치 및 데이터 처리 방법

Country Status (1)

Country Link
KR (1) KR101951309B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100353656B1 (ko) * 1999-03-31 2002-09-19 인터내셔널 비지네스 머신즈 코포레이션 Dma 및 l1/l2 캐시 성능을 향상시키기 위한 방법, 장치 및 컴퓨터 프로그램 기록 매체
JP2010044727A (ja) 2008-08-13 2010-02-25 Park:Kk データストレージ・キャッシュ装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258595A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
US20150286571A1 (en) * 2014-04-04 2015-10-08 Qualcomm Incorporated Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
KR102441178B1 (ko) * 2015-07-29 2022-09-08 삼성전자주식회사 컴퓨팅 장치에서 캐시 플루딩 프로세스를 관리하기 위한 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100353656B1 (ko) * 1999-03-31 2002-09-19 인터내셔널 비지네스 머신즈 코포레이션 Dma 및 l1/l2 캐시 성능을 향상시키기 위한 방법, 장치 및 컴퓨터 프로그램 기록 매체
JP2010044727A (ja) 2008-08-13 2010-02-25 Park:Kk データストレージ・キャッシュ装置

Also Published As

Publication number Publication date
KR20180117463A (ko) 2018-10-29

Similar Documents

Publication Publication Date Title
US8504792B2 (en) Methods and apparatuses to allocate file storage via tree representations of a bitmap
US6760818B2 (en) Memory region based data pre-fetching
US7461209B2 (en) Transient cache storage with discard function for disposable data
KR101310412B1 (ko) 프레임 관리를 이용한 동적 주소 변환 방법
KR20100037319A (ko) 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치
KR20100095629A (ko) 포맷 제어를 갖는 동적 액세스 변환
KR20100126269A (ko) 인출 보호를 가진 동적 어드레스 변환
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
US20160283114A1 (en) Semiconductor memory device
KR102467847B1 (ko) 메모리 장치의 동작 방법, 이를 이용한 메모리 장치 및 그 장치를 포함하는 메모리 시스템
US10019283B2 (en) Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
JP4888839B2 (ja) キャッシュメモリを備えるベクトル計算機システム、及びその動作方法
JP7164733B2 (ja) データ記憶
JP6916782B2 (ja) 仮想マシンのページ・テーブル・キャッシュ・ラインをプリロードする方法、コンピューティング・システム、およびコンピュータ・プログラム
US10089039B2 (en) Memory controller, memory device having the same, and memory control method
US20130007354A1 (en) Data recording device and data recording method
US8274521B2 (en) System available cache color map
JP2009015509A (ja) キャッシュメモリ装置
JP2001282617A (ja) 共有されたキャッシュを動的に区分するための方法及びシステム
WO2010024071A1 (ja) キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム
US8356141B2 (en) Identifying replacement memory pages from three page record lists
KR101951309B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
US9632950B2 (en) Storage control device controlling access to a storage device and access controlling method of a storage device
JP6194875B2 (ja) キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム
US10846023B2 (en) Storage device and storage area management method for reducing garbage collection processing

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