KR20180117463A - Data processing apparatus and data processing method - Google Patents

Data processing apparatus and data processing method Download PDF

Info

Publication number
KR20180117463A
KR20180117463A KR1020170050606A KR20170050606A KR20180117463A KR 20180117463 A KR20180117463 A KR 20180117463A KR 1020170050606 A KR1020170050606 A KR 1020170050606A KR 20170050606 A KR20170050606 A KR 20170050606A KR 20180117463 A KR20180117463 A KR 20180117463A
Authority
KR
South Korea
Prior art keywords
color
block
data
colors
sequential
Prior art date
Application number
KR1020170050606A
Other languages
Korean (ko)
Other versions
KR101951309B1 (en
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/en
Publication of KR20180117463A publication Critical patent/KR20180117463A/en
Application granted granted Critical
Publication of KR101951309B1 publication Critical patent/KR101951309B1/en

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

Abstract

The present invention relates to a data processing apparatus for appropriately arranging file data to prevent position competition with other data in a cache. According to the present invention, the data processing apparatus comprises: a cache divided into a plurality of zones; a nonvolatile memory including a plurality of block groups including a plurality of blocks corresponding to the plurality of zones; and a processor allocating at least one block corresponding to any one of the plurality of zones to the data and storing the data in the nonvolatile memory.

Description

데이터 처리 장치 및 데이터 처리 방법{DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD}TECHNICAL FIELD [0001] The present invention relates to a data processing apparatus and a data processing method,

본 개시는 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다.The present disclosure relates to a data processing apparatus and a data processing method.

싱글 코어 또는 멀티 코어 프로세서에는 캐시(cache memory)가 존재하며, 프로세서는 메모리로부터 참조한 데이터를 캐시에 보관한다. 싱글 코어 또는 멀티 코어 프로세서는 다수의 프로그램(프로세스)를 동시에 구동할 수 있으며, 운영체제 및 다수의 프로세스는 실행 중 캐시 메모리를 차지하기 위해 경쟁한다. A single-core or multicore processor has cache memory, and the processor keeps the data referenced from memory in the cache. A single-core or multicore processor can run multiple programs (processes) concurrently, and the operating system and multiple processes compete to take up cache memory during execution.

최근 코어 아키텍처가 널리 사용되고 있으며, 이런 시스템에서는 멀티 코어들이 최하위 레벨 캐시(LLC: last level cache)를 공유하고 있다. 이러한 멀티 프로세서 환경에서 여러 프로세스가 동시에 수행될 경우, 최하위 레벨 캐시를 공유하고 있기 때문에 프로세스 서로가, 메모리로부터 캐시로 가져온 데이터에 대하여 간섭하기 시작한다. Recently, core architectures have been widely used, and in such systems, multicore cores share the last level cache (LLC). In this multiprocessor environment, when several processes are executed at the same time, since the lowest level cache is shared, the processes start interfering with data fetched from the memory into the cache.

즉, 캐시로 가져온 데이터들이 캐시 내의 임의의 위치에 대해 서로 경쟁하게 된다. 따라서 프로세스들은 최하위 레벨 캐시를 차지하기 위하여 경쟁을 하게 되고 캐시 오염을 유발시킨다. That is, the data fetched into the cache compete with each other for an arbitrary position in the cache. Thus, processes compete to occupy the lowest level cache and cause cache pollution.

한편, 최근에는 불휘발성 메모리(non-volatile memory)가 저장매체로 사용되고 있으며, 운영체제의 파일 시스템은 HDD나 SSD에서와 유사하게, 불휘발성 메모리에 파일 단위로 정보를 기록한다. 불휘발성 메모리에 저장된 파일 데이터는 캐시의 특정 위치로 적재되며, 다른 데이터와 캐시 공간을 차지하기 위해 경쟁하게 되고 캐시 오염을 유발시킨다.Recently, a nonvolatile memory is used as a storage medium, and a file system of an operating system records information in units of files in a nonvolatile memory similarly to an HDD or an SSD. File data stored in nonvolatile memory is loaded into a specific location in the cache, competing to occupy cache space with other data, and causing cache pollution.

실시예들은 파일 데이터를 적절히 배치하여 다른 데이터들과의 캐시 내의 위치 경쟁을 방지하기 위한 것이다.Embodiments are intended to properly arrange file data to prevent location conflicts with other data in the cache.

그리고, 실시예들은 캐시 오염을 방지하기 위한 것이다.And, the embodiments are for preventing cache pollution.

실시예에 따른 데이터 처리 장치는 복수의 구역으로 구분되는 캐시, 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하여 데이터를 불휘발성 메모리에 저장하는 프로세서를 포함한다.A data processing apparatus according to an embodiment of the present invention includes: a cache divided into a plurality of zones; a nonvolatile memory including a plurality of block groups including a plurality of blocks corresponding to a plurality of zones; And a processor for allocating at least one block to store the data in the nonvolatile memory.

복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고, 물리 메모리 주소는 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며, 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록일 수 있다.Wherein the plurality of blocks includes at least one physical memory address, the physical memory address corresponds to any one of a plurality of colors corresponding to the plurality of zones, and each of the plurality of blocks includes physical memory addresses corresponding to the same color In this case, each of the plurality of block groups includes blocks corresponding to each of the plurality of sequential color groups, and blocks corresponding to each of the plurality of sequential color groups may be n blocks corresponding to sequential n colors.

프로세서는 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 데이터에 대해 지정할 수 있다.The processor may designate at least one color of the sequential n colors for the data.

프로세서는 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 적어도 하나의 컬러에 대응하는 프리 블록을 데이터에 대해 할당할 수 있다.The processor may assign a free block corresponding to at least one color to data if there is a free block corresponding to at least one color in the plurality of block groups.

프로세서는 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 다시 지정할 수 있다.The processor may redirect at least one of the colors except for at least one of the sequential n colors to the data if there is no free block corresponding to the at least one color in the plurality of block groups.

프로세서는 프리 블록 할당에 의해, 복수의 블록 그룹 내에서 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 더 지정할 수 있다.When the free block corresponding to at least one color in the plurality of block groups is exhausted by the free block allocation, the processor further specifies at least one of the colors excluding at least one of the sequential n colors .

실시예에 따른 데이터 처리 방법은 복수의 구역으로 구분되는 캐시, 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 및 서로 상이한 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하는 데이터 처리 장치에 있어서, 데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계, 및 데이터를 적어도 하나의 블록에 저장하는 단계를 포함한다.A data processing method according to an embodiment of the present invention includes a cache divided into a plurality of zones, a nonvolatile memory including a plurality of block groups including a plurality of blocks corresponding to a plurality of zones, and a plurality of cores The method comprising the steps of: allocating at least one block corresponding to one of a plurality of zones to data; and storing the data in at least one block.

복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고, 물리 메모리 주소는 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며, 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록일 수 있다.Wherein the plurality of blocks includes at least one physical memory address, the physical memory address corresponds to any one of a plurality of colors corresponding to the plurality of zones, and each of the plurality of blocks includes physical memory addresses corresponding to the same color In this case, each of the plurality of block groups includes blocks corresponding to each of the plurality of sequential color groups, and blocks corresponding to each of the plurality of sequential color groups may be n blocks corresponding to sequential n colors.

적어도 하나의 블록을 할당하는 단계 이전에, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 데이터에 대해 지정하는 단계를 더 포함할 수 있다.The step of assigning at least one color of the sequential n colors to the data prior to the step of allocating at least one block.

데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 적어도 하나의 컬러에 대응하는 프리 블록을 데이터에 대해 할당하는 단계를 포함할 수 있다.Wherein the step of allocating at least one block corresponding to one of the plurality of zones to data includes the step of, if there is a free block corresponding to at least one color in the plurality of block groups, For example.

데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 복수의 블록 그룹 내에 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 다시 지정하는 단계를 더 포함할 수 있다.Wherein the step of allocating at least one block corresponding to one of the plurality of zones to data includes the step of, if there is no free block corresponding to at least one color in the plurality of block groups, And re-designating at least one of the colors with respect to the data.

데이터에 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는, 프리 블록 할당에 의해, 복수의 블록 그룹 내에서 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 데이터에 대해 더 지정하는 단계를 더 포함할 수 있다.Wherein the step of allocating at least one block corresponding to any one of the plurality of zones to the data comprises the steps of, when preblocks corresponding to at least one color in the plurality of block groups are exhausted by preblock allocation, And further designating at least one of the colors excluding at least one color of the colors for the data.

상이한 프로세스 각각에 의해, 데이터를 데이터가 저장된 블록에 대응하는 캐시 내의 일 구역으로 가져오는 단계를 더 포함할 수 있다.By each of the different processes, the step of fetching the data may further comprise the step of bringing the data into a section in the cache corresponding to the block in which the data is stored.

실시예에 따른 데이터 처리 장치는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 불휘발성 메모리에 저장된 데이터를 블록 단위로 캐시에 가져오는 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하고, 복수의 블록 각각이 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하고, 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하며, 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록이고, 프로세서는 입력되는 데이터를 복수의 순차적 컬러 그룹 중 어느 하나에 포함된 순차적인 m개의 컬러에 대응하는 연속적인 블록들에 할당한다.A data processing apparatus according to an embodiment includes a nonvolatile memory including a plurality of block groups including a plurality of blocks, a processor including a plurality of cores for driving a process of fetching data stored in the nonvolatile memory into the cache on a block- Wherein each of the plurality of blocks corresponds to one of a plurality of colors corresponding to the plurality of zones, each of the plurality of block groups includes blocks corresponding to each of the plurality of the sequential color groups, The blocks corresponding to the respective n color blocks are n blocks corresponding to the sequential n colors, and the processor allocates the input data to the consecutive blocks corresponding to the sequential m colors included in any one of the plurality of sequential color groups do.

실시예들에 따르면, 캐시 오염을 감소시킬 수 있다.According to embodiments, cache pollution can be reduced.

실시예들에 따르면, 프로세스의 성능을 증가시킬 수 있다.According to embodiments, the performance of the process can be increased.

도 1은 실시예에 따른 데이터 처리 장치를 간략히 나타낸 블록도이다.
도 2는 도 1에 도시된 데이터 처리 장치의 일부 구성을 구체적으로 나타낸 블록도이다.
도 3은 임의의 물리 메모리 주소에 컬러를 할당하는 예를 나타낸 도면이다.
도 4는 실시예에 따른 데이터 처리 방법을 나타낸 순서도이다.
1 is a block diagram schematically showing a data processing apparatus according to an embodiment.
2 is a block diagram specifically showing a part of the configuration of the data processing apparatus shown in FIG.
3 is a diagram showing an example of assigning a color to an arbitrary physical memory address.
4 is a flowchart showing a data processing method according to an embodiment.

이하, 첨부한 도면을 참고로 하여 본 발명의 여러 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에 한정되지 않는다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The present invention may be embodied in many different forms and is not limited to the embodiments described herein.

본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.In order to clearly illustrate the present invention, parts not related to the description are omitted, and the same or similar components are denoted by the same reference numerals throughout the specification.

또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Also, throughout the specification, when an element is referred to as "including" an element, it is understood that the element may include other elements as well, without departing from the other elements unless specifically stated otherwise.

도 1은 실시예에 따른 데이터 처리 장치를 간략히 나타낸 블록도이다. 도시된 바와 같이, 데이터 처리 장치는 프로세서(110) 및 메모리(120)를 포함한다.1 is a block diagram schematically showing a data processing apparatus according to an embodiment. As shown, the data processing apparatus includes a processor 110 and a memory 120.

프로세서(110)는 복수의 코어(core)(112a-112d) 및 캐시(cache)(114)를 포함한다. 예를 들어, 프로세서(110)는 운영 체제 또는 응용 프로그램을 구동하여, 프로세서(110)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다.The processor 110 includes a plurality of cores 112a-112d and a cache 114. [ For example, the processor 110 may drive an operating system or an application program to control a plurality of hardware or software components connected to the processor 110, and may perform various data processing and operations.

프로세서(110)는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 프로세서(110)는 중앙처리장치(CPU: central processing unit), 어플리케이션 프로세서(AP: application processor), 또는 커뮤니케이션 프로세서(CP: communication processor) 중 하나 또는 그 이상을 포함할 수 있다. The processor 110 may be implemented as a SoC (system on chip). For example, the processor 110 may include one or more of a central processing unit (CPU), an application processor (AP), or a communication processor (CP).

프로세서(110)는, 컴퓨팅 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어 프로세서(110)는 메모리(120)에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)를 의미할 수 있다.The processor 110 may perform operations or data processing relating to control and / or communication of at least one other component of the computing device. For example, the processor 110 may refer to a generic-purpose processor capable of executing the operations by executing one or more software programs stored in the memory 120. [

데이터 처리 장치에서 다수의 코어(112a-112d)를 포함할 경우, 다수의 코어는 각각 프로세스를 구동할 수 있다. 각각의 코어(112a-112d)는, 메모리(120) 또는 캐시(114)에 저장된 데이터와 같은 프로그램을 처리할 수 있다. When the data processing apparatus includes a plurality of cores 112a-112d, the plurality of cores may each drive a process. Each core 112a-112d may process a program, such as data stored in memory 120 or cache 114. [

캐시(114)는 메모리(120)로부터 판독한 명령이나 데이터들을 저장하는 버퍼 형태의 고속 저장장치이다. 이러한 캐시(114)는 프로세서(110) 및 메모리(120) 사이에 설치될 수 있으며, 캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 지칭된다. The cache 114 is a high-speed storage device in the form of a buffer for storing instructions or data read from the memory 120. [ Such a cache 114 may be installed between the processor 110 and the memory 120 and is also referred to as a cache memory or a local memory.

캐시(114)는 메모리(120)에 비해 기억 용량(memory capacity)이 비교적 작지만, 메모리(120)에 비해 고속으로 액세스 가능하다. 따라서, 프로세서(110)가 명령 또는 데이터가 필요하게 되면, 메모리(120)가 아니라 캐시(114)에 먼저 액세스할 수 있다. The cache 114 has a relatively small memory capacity compared to the memory 120, but is accessible at a higher speed than the memory 120. [ Thus, if the processor 110 needs instructions or data, it can first access the cache 114, rather than the memory 120.

캐시(114)는 프로세스가 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. 멀티 코어 시스템의 멀티 코어들은 최하위 레벨 캐시(LLC)를 공유한다. 이러한 최하위 레벨 캐시는 메모리(120)에 액세스하기 전에 호출되는 공유된 가장 높은 레벨의 캐시(특정 실시 예들에서 L3 캐시일 수 있다)이다.The cache 114 is an area in which data and program instructions frequently accessed by a process are stored for immediate use without repeatedly searching. Multicore cores in multicore systems share the lowest level cache (LLC). This lowest level cache is the shared highest level cache (which may be an L3 cache in certain embodiments) that is called before accessing memory 120. [

멀티 프로세서 환경에서 다수의 프로세스가 동시에 수행될 경우, 프로세스들은 공유 캐시(114)를 공유하고 있기 때문에 프로세스들 상호 간 캐싱해 놓은 데이터에 대하여 간섭할 수 있다. 따라서, 프로세스들은 공유 캐시(114)를 차지하기 위하여 경쟁을 하게 되고 캐시 오염 현상을 발생시킨다. In a multiprocessor environment, when multiple processes are running at the same time, the processes may interfere with the data cached between the processes because they share the shared cache 114. Thus, the processes compete to occupy the shared cache 114 and cause cache pollution.

메모리(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) 등과 같은 불휘발성 메모리 장치가 사용되는 것으로 가정된다. 그러나, 본 발명의 기술 사상은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해, 다른 메모리 장치에 적용될 수 있다. The memory 120 may be configured in units of blocks including a plurality of physical memory addresses. In the following description, the memory 120 may be a flash memory, a phase-change RAM (PRAM), a magnetic RAM, an RRAM, a ferroelectric RAM (FRAM), a one time programmable ROM (OTPROM) ROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, hard drive, or a solid state drive However, the technical spirit of the present invention can be applied to other memory devices by a person having ordinary skill in the art to which the present invention belongs.

프로세서(110)는 메모리 인터페이스를 통해 메모리(120)와 통신하도록 구성된다. 메모리 인터페이스는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 메모리(120)와 통신할 수 있다. 메모리 인터페이스는 제어 채널을 통해 제어 신호를 메모리(120)와 통신할 수 있다.The processor 110 is configured to communicate with the memory 120 via a memory interface. The memory interface is capable of communicating commands, addresses, and data with memory 120 via input / output channels. The memory interface may communicate control signals to the memory 120 via a control channel.

한편, 프로세서(100)에서 실행되는 파일 시스템은 메모리(120)를 블록 단위(또는 페이지 단위)로 구분하여 관리한다. 파일 시스템은 파일을 생성하거나 파일이 확장될 때 미사용중인 프리 블록을 파일에게 할당한다. 다이렉트 맵핑 (directive mapping) 또는 세트 연관 (set-associative) 캐시의 경우 파일 데이터가 차지하는 캐시(114) 내 위치는 메모리(120) 상에서 파일 데이터의 주소, 특히 물리 메모리 주소에 의해 결정된다.Meanwhile, the file system executed in the processor 100 divides the memory 120 into blocks (or page units) and manages the blocks. The file system creates a file or allocates an unused free block to a file when the file is expanded. In a direct-mapped or set-associative cache, the location in the cache 114 occupied by the file data is determined by the address of the file data, particularly the physical memory address, on the memory 120.

다음으로, 도 2를 참조하여, 메모리(120) 및 캐시(114) 간의 데이터 페치(fetch)에 대해 설명한다.Next, data fetch between the memory 120 and the cache 114 will be described with reference to FIG.

도 2는 도 1에 도시된 데이터 처리 장치의 일부 구성을 구체적으로 나타낸 블록도이다.2 is a block diagram specifically showing a part of the configuration of the data processing apparatus shown in FIG.

캐시(114)는 복수의 코어들에 의해 공유될 수 있고, 복수의 구역(S1-S4)들로 슬라이싱(slice)될 수 있다. 복수의 구역(S1-S4) 각각은 레이턴시(latency)를 줄이고, 패럴렐리즘(parallelism)을 증가시키기 위해 코어에 의해 독립적으로 액세스될 수 있다. The cache 114 may be shared by a plurality of cores and may be sliced into a plurality of zones S1-S4. Each of the plurality of zones S1-S4 may be independently accessed by the core to reduce latency and increase parallelism.

메모리(120)는 복수의 블록 그룹(BG0-BGk)을 포함한다. 그리고, 복수의 블록 그룹 각각은 복수의 블록(예를 들어, 페이지)을 포함할 수 있다. 그리고, 하나의 블록(예를 들어, BLK0)은 복수의 물리 메모리 주소(ADD0-ADDi-1)를 포함한다. 이하에서, 하나의 블록의 크기는 4KB인 것으로 가정한다.The memory 120 includes a plurality of block groups BG0 to BGk. And, each of the plurality of block groups may include a plurality of blocks (e.g., pages). One block (for example, BLK0) includes a plurality of physical memory addresses ADD0 to ADDi-1. In the following, it is assumed that the size of one block is 4 KB.

각각의 물리 메모리 주소(ADD0-ADDi-1)는 임의의 한 컬러에 대응할 수 있다. 예를 들어, 각각의 물리 메모리 주소(ADD0-ADDi-1)에는 해당 물리 메모리 주소의 일부 비트에 따른 컬러가 지정될 수 있다. 여기서 컬러는 컬러 비트로 표현될 수 있다. Each physical memory address ADD0-ADDi-1 may correspond to any one color. For example, each physical memory address (ADD0-ADDi-1) may be assigned a color according to some bits of the physical memory address. Here, the color can be represented by a color bit.

예를 들어, 블록 번호를 나타내는 비트들 중 일부의 상위 비트들은, 캐시(114)와 함께 공유되는 컬러 비트로 지정될 수 있다. 다른 예로, 프로세서(110)는 해당 블록의 블록 번호를 나타내는 비트들을 이용하여 해당 블록의 컬러 비트를 산출할 수 있다. 이에 대해서는 도 3을 참조하여 함께 설명한다.For example, the upper bits of some of the bits representing the block number may be designated with color bits that are shared with the cache 114. As another example, the processor 110 may calculate the color bit of the block using the bits representing the block number of the block. This will be described together with reference to FIG.

도 3은 물리 메모리 주소(ADD0)에 컬러를 할당하는 예를 나타낸 도면이다. 도시된 바와 같이, 하나의 물리 메모리 주소(ADD0)는 복수의 비트(예를 들어, 64 bits)를 포함할 수 있다. 3 is a diagram showing an example of assigning a color to a physical memory address ADD0. As shown, one physical memory address ADD0 may include a plurality of bits (e.g., 64 bits).

4KB 크기의 블록을 사용하는 경우, 물리 메모리 주소(ADD0)의 블록 번호는 비트들(a63a62…a13a12)일 수 있다. 블록 번호 비트들 중 임의의 비트들을 추출하여 캐시(114)의 복수의 구역(S1-S4)에 각각에 대응하는 비트들(h1(a), h2(a))가 해시 함수(H1, H2)에 의해 산출될 수 있다. When using a 4KB block, the block number of the physical memory address ADD0 may be bits a63a62 ... a13a12. (A) and h2 (a) corresponding to each of the plurality of zones S1-S4 of the cache 114 are extracted from the hash functions H1 and H2 by extracting any of the block number bits, Lt; / RTI >

해시 함수(H1, H2)에 의해 비트들(h1(a), h2(a))은 다음의 수학식 1 및 수학식 2로 계산될 수 있다.The bits h1 (a) and h2 (a) can be calculated by the following equations (1) and (2) by the hash functions H1 and H2.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

해당 물리 메모리 주소(ADD0)에 저장된 데이터가 캐시(114)로 페치되는 경우, 비트들(h1(a), h2(a))에 대응하는 캐시(114) 내의 구역에 페치될 수 있다. May be fetched into the area in cache 114 corresponding to bits h1 (a), h2 (a) if the data stored in that physical memory address ADD0 is fetched into cache 114. [

물리 메모리 주소(ADD0)의 컬러 비트는 h2(a)h1(a)a16a15a14a13a12로 결정될 수 있다. 즉, 5개의 비트(a16-a12) 및 해시 함수(H1, H2)에 의해 생성된 비트들(h1(a), h2(a))을 연결하여 7비트의 컬러 비트가 결정될 수 있다. The color bit of the physical memory address ADD0 may be determined as h2 (a) h1 (a) a16a15a14a13a12. That is, 7 bits of color bits can be determined by concatenating the bits h1 (a) and h2 (a) generated by the five bits a16-a12 and the hash functions H1 and H2.

한편, 32KB 크기의 블록을 사용하는 경우, 물리 메모리 주소(ADD0)의 블록 번호는 비트들(a63a62…a16a15)일 수 있다. 이 경우, 물리 메모리 주소(ADD0)의 컬러 비트는 h2(a)h1(a)a16a15로 결정될 수 있다. 즉, 2개의 비트(a16-a15) 및 해시 함수(H1, H2)에 의해 생성된 비트들(h1(a), h2(a))을 연결하여 4비트의 컬러 비트가 결정될 수 있다.On the other hand, when a 32 KB block is used, the block number of the physical memory address ADD0 may be bits a63a62 ... a16a15. In this case, the color bit of the physical memory address ADD0 may be determined as h2 (a) h1 (a) a16a15. That is, the 4 bits of color bits can be determined by connecting the bits h1 (a) and h2 (a) generated by the two bits a16-a15 and the hash functions H1 and H2.

하나의 블록이 다수의 물리 메모리 주소를 포함하므로, 하나의 블록은 하나의 컬러에 대응하는 물리 메모리 주소들을 포함하거나, 여러 컬러에 대응하는 물리 메모리 주소들을 포함할 수 있다. 다만, 이하에서 설명의 편의를 위해, 하나의 블록이 하나의 컬러에 대응하는 다수의 물리 메모리 주소를 포함하는 것으로 가정하여 설명한다.Since one block includes a plurality of physical memory addresses, one block may contain physical memory addresses corresponding to one color, or physical memory addresses corresponding to various colors. However, for convenience of explanation, it is assumed that one block includes a plurality of physical memory addresses corresponding to one color.

임의의 두 블록(BLK0, BLKi+32)이 캐시(114) 내 동일한 구역(S0)에 대응되어, 그렇지 않은 다른 블록들 보다 캐시(114) 내의 공간을 점유하기 위해 경쟁하는 정도가 더 강하다면, 두 블록(BLK0, BLKi+32)은 동일한 컬러를 가진다고 정의할 수 있다. 동시에 경쟁하는 정도가 약한 다른 블록들은 블록(BLK0) 및 블록(BLKi+32)와 상이한 컬러를 가진다. 이와 같이 메모리(120)를 구성하는 블록들에게 서로 상이한 컬러들을 할당할 수 있다.If any two blocks BLK0 and BLKi + 32 correspond to the same area SO in cache 114 and are more likely to compete to occupy the space in cache 114 than other blocks in the cache 114, Two blocks (BLK0, BLKi + 32) can be defined as having the same color. Other blocks with a low degree of competition at the same time have different colors from the blocks BLK0 and BLKi + 32. In this way, different colors can be allocated to the blocks constituting the memory 120. FIG.

상기의 도 3의 예에서와 같이, 4KB 크기의 블록을 사용하는 경우, 7비트의 컬러 비트에 의해 128(=27) 컬러가 정의될 수 있다. 하나의 블록은 하나의 컬러에 대응하고, 일부의 연속적인 블록들 사이에서는, h2(a)와 h1(a)가 동일하다. As in the example of FIG. 3 above, when using a block of 4 KB size, 128 (= 27) colors can be defined by 7 bits of color bits. One block corresponds to one color, and between some successive blocks, h2 (a) and h1 (a) are the same.

예를 들어, 블록(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)의 컬러를 예측할 수 없다.For example, if the block BLKj has the color C32 by the value of the 5-bit color bit a16a15a14a13a12, the block BLKj + 1 has the color C33 according to the block number increase. The block BLK + 30 and the block BLK + 31 also have a color C62 and a color C63, respectively. This is because h2 (a) and h1 (a) are the same for blocks BLKj + 1 to BLKj + 31 and only a16a15a14a13a12 is different for blocks BLKj + 1 to BLKj + 31. However, the color of the block BLKj + 32 can not be predicted because h2 (a) and h1 (a) may differ between the block BLKj + 31 and the block BLKj + 32.

즉, 7비트의 컬러 비트에서, 해시 함수에 의해 결정되는 h2(a)와 h1(a)는 32개의 연속적인 블록 단위로 변경될 수 있으나, 32개의 연속적인 블록 내에서는 동일하다. That is, in the 7-bit color bits, h2 (a) and h1 (a) determined by the hash function can be changed in units of 32 consecutive blocks, but are the same in 32 consecutive blocks.

예를 들어, 7비트 중 h2(a)와 h1(a)는 32개의 연속적인 블록 내에서 그 값이 모두 동일하다. 그리고, 7비트에서 h2(a)와 h1(a)를 제외한 5비트의 컬러 비트들(a16-a12)의 값은 32개의 연속적인 블록 내에서 서로 상이하다. 상이한 컬러 비트들의 값에 의해, 32개의 연속적인 블록들은 순차적인 컬러들을 가진다. For example, h2 (a) and h1 (a) among 7 bits are all the same in 32 consecutive blocks. The values of the 5-bit color bits a16-a12 except for h2 (a) and h1 (a) in 7 bits are different from each other within 32 consecutive blocks. By the value of the different color bits, 32 consecutive blocks have sequential colors.

이러한 순차적인 컬러들을 순차적 컬러 그룹(SCG0, SCG1, SCG2, SCG3)으로 지칭한다. 순차적 컬러 그룹(SCG0, SCG1, SCG2, SCG3)은 하나의 블록 그룹(BG0) 내에서 32개의 연속적인 블록 단위로 변경될 수 있다. These sequential colors are referred to as sequential color groups (SCG0, SCG1, SCG2, SCG3). The sequential color groups SCG0, SCG1, SCG2, and SCG3 may be changed into 32 consecutive block units within one block group BG0.

즉, 동일한 컬러들이 서로 다른 물리적으로 연속적인 블록들 사이에 반복적으로 나타나는 경우, 이 컬러들을 순차적 컬러 그룹(Sequential Color Group)으로 지칭한다.That is, if the same colors appear repeatedly between different physically consecutive blocks, they are referred to as a Sequential Color Group.

예를 들어, 물리적으로 연속적인 블록들(BLK0-BLK31)이 C0 내지 C31의 컬러을 가지고, 또 다른 물리적으로 연속한 블록들(BLKi+32-BLKi+63)이 C0 내지 C31의 컬러를 가지면, 컬러들(C0-C31)은 순차적 컬러 그룹에 해당한다.For example, if physically contiguous blocks BLK0-BLK31 have a color of C0 to C31 and another physically contiguous blocks BLKi + 32-BLKi + 63 have a color of C0 to C31, (C0-C31) correspond to a sequential color group.

도 2에 도시된 바와 같이, 메모리(120)에서, 연속적인 블록들(BLK0-BLK31)은 순차적 컬러 그룹(SCG0)에 포함되는 순차적인 컬러들(C0-C31)에 각각 대응하고, 연속적인 블록들(BLK32-BLK63)은 순차적 컬러 그룹(SCG3)에 포함되는 순차적인 컬러들(C96-C127)에 각각 대응하며, 연속적인 블록들(BLK64-BLK95)은 순차적 컬러 그룹(SCG1)에 포함되는 순차적인 컬러들(C32-C63)에 각각 대응하고, 연속적인 블록들(BLK96-BLK127)은 순차적 컬러 그룹(SCG2)에 포함되는 순차적인 컬러들(C64-C95)에 각각 대응한다.2, in memory 120, successive blocks BLK0-BLK31 correspond to sequential colors C0-C31 included in sequential color group SCG0, respectively, The blocks BLK32 to BLK63 correspond to the sequential colors C96 to C127 included in the sequential color group SCG3 and the sequential blocks BLK64 to BLK95 correspond to the sequential colors included in the sequential color group SCG1, And the successive blocks BLK96-BLK127 correspond to the sequential colors C64-C95 included in the sequential color group SCG2, respectively.

한편, 32KB 크기의 블록을 사용하는 경우, 4비트의 컬러 비트에 의해 16(=24) 컬러가 정의될 수 있다. 하나의 블록은 하나의 컬러에 대응하고, 일부의 연속적인 블록들 사이에서는, h2(a)와 h1(a)가 동일하다. On the other hand, when using a 32 KB block, 16 (= 24) colors can be defined by 4 bits of color bits. One block corresponds to one color, and between some successive blocks, h2 (a) and h1 (a) are the same.

즉, 4비트의 컬러 비트에서, 해시 함수에 의해 결정되는 h2(a)와 h1(a)는 4개의 연속적인 블록 단위로 변경될 수 있으나, 4개의 연속적인 블록 내에서는 동일하다. That is, in the 4-bit color bits, h2 (a) and h1 (a) determined by the hash function can be changed in units of four consecutive blocks, but they are the same in four consecutive blocks.

예를 들어, 4비트 중 h2(a)와 h1(a)는 4개의 연속적인 블록 내에서 그 값이 모두 동일하다. 그리고, 4비트에서 h2(a)와 h1(a)를 제외한 2비트의 컬러 비트들(a16a15)의 값은 4개의 연속적인 블록 내에서 서로 상이하다. 상이한 컬러 비트들의 값에 의해, 4개의 연속적인 블록들은 순차적인 컬러들을 가진다. For example, h2 (a) and h1 (a) of the four bits are all equal in the four consecutive blocks. The values of the 2-bit color bits a16a15 except for h2 (a) and h1 (a) in 4 bits are different from each other in four consecutive blocks. By the value of the different color bits, the four consecutive blocks have sequential colors.

메모리(120) 내에서 동일한 순차적 컬러 그룹에 포함된 블록들은 캐시(114) 내에서 페치되는 캐시(114) 내의 구역이 동일할 수 있다. 그러므로, 동일한 순차적 컬러 그룹에 포함된 블록은 캐시(114) 내의 동일 구역에 대해 경쟁한다.The blocks in the same sequential color group in memory 120 may be the same in cache 114 within fetched cache 114. Therefore, the blocks included in the same sequential color group compete for the same area in the cache 114. [

예를 들어, 각각의 프로세스가 블록 그룹(BG0) 내의 순차적 컬러 그룹(SCG0)에 포함된 블록들(BLK0-BLK31)에 저장된 데이터 및 블록 그룹(BGk) 내의 순차적 컬러 그룹(SCG0)에 포함된 블록들(BLKj+32-BLKj+63)에 저장된 데이터를 페치할 때, 각 블록들에 저장된 데이터들은 캐시(114)의 동일한 구역(S0)을 두고 경쟁할 수 있다.For example, it is assumed that each process is performed on the data stored in the blocks BLK0 to BLK31 included in the sequential color group SCG0 in the block group BG0 and the data stored in the blocks BLK0 to BLK31 included in the sequential color group SCG0 in the block group BGk, (BLKj + 32-BLKj + 63), the data stored in each of the blocks may compete in the same area S0 of the cache 114.

마찬가지로, 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG1)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S1)을 두고 경쟁할 수 있다. 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG2)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S2)을 두고 경쟁할 수 있다. 서로 다른 블록(BG1-BGk)에 포함된 각각의 순차적 컬러 그룹들(SCG3)에 포함된 블록들에 저장된 데이터는 캐시(114)의 동일한 구역(S3)을 두고 경쟁할 수 있다.Similarly, the data stored in the blocks included in each sequential color group SCG1 included in the different blocks BG1-BGk may compete for the same segment S1 of the cache 114. The data stored in the blocks included in the respective sequential color groups SCG2 included in the different blocks BG1 to BGk may compete for the same area S2 of the cache 114. [ The data stored in the blocks included in the respective sequential color groups SCG3 included in the different blocks BG1 to BGk may compete for the same area S3 of the cache 114. [

프로세서(110)가 메모리(120) 내의 연속적인 블록들을 하나의 파일에 할당하면, 하나의 파일은 여러 순차적 컬러 그룹에 대응하는 블록들에 저장될 수 있다. 그러면, 해당 파일을 호출하는 하나의 프로세스가 수행되는 경우, 해당 파일이 캐시(114) 내의 여러 구역으로 페치될 수 있어 캐시 오염을 유발할 수 있다. When the processor 110 allocates consecutive blocks in the memory 120 to one file, one file may be stored in blocks corresponding to several sequential color groups. Then, if one process invoking the file is performed, the file may be fetched into multiple zones in the cache 114, which may cause cache pollution.

다음으로, 도 4를 참조하여, 본 발명의 실시예에 따른 데이터 처리 방법에 대해 설명한다.Next, a data processing method according to an embodiment of the present invention will be described with reference to FIG.

도 4는 실시예에 따른 데이터 처리 방법을 나타낸 순서도이다.4 is a flowchart showing a data processing method according to an embodiment.

먼저 프로세서(110)는 데이터(이하에서, 파일(file)로 설명함)가 메모리(120)에 저장되는 때, 파일에 대해 순차적 컬러 그룹 내의 적어도 하나의 컬러를 지정(S100)한다.First, the processor 110 designates at least one color in a sequential color group (S100) for a file when data (hereinafter, referred to as a file) is stored in the memory 120. [

예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 본 실시예에서는 편의상 연속적인 컬러들(C0, C1, C2)를 파일에 대해 지정하였지만, 컬러들은 반드시 연속적이지 않아도 된다는 점은 자명하다.For example, the processor 110 may specify for the file at least one color of the colors C0-S31 in the sequential color group SCG0. Or the processor 110 may specify for the file at least one color of the colors C0-S31 in the sequential color group SCG0. It is to be appreciated that, in the present embodiment, successive colors (C0, C1, C2) are designated for a file for convenience, but the colors may not necessarily be continuous.

프로세서(110)는 블록 그룹 내에서 지정된 컬러에 대응하는 프리 블록을 검색(S110)하고, 프리 블록이 존재하는지 판단(S120)한다. 프리 블록은 데이터 또는 명령 등이 저장되지 않은 블록을 의미할 수 있다. 이때 프로세서(110)는 블록 그룹들 전부에 대해, 지정된 컬러에 대응하는 프리 블록을 검색할 수도 있다. The processor 110 searches for a free block corresponding to the designated color in the block group (S110) and determines whether there is a free block (S120). A free block may refer to a block in which no data or command is stored. At this time, the processor 110 may search for all of the block groups, the free block corresponding to the designated color.

예를 들어, 프로세서(110)는 블록 그룹(BG0) 내에서 지정된 컬러(예를 들어, C0, C1, C2)에 대응하는 프리 블록을 검색할 수 있다. 블록 그룹(BG0) 내에서 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록이 검색되지 않으면, 프로세서(110)는 다른 블록 그룹들에 대해서도 지정된 컬러에 대응하는 프리 블록을 검색할 수 있다. For example, the processor 110 may search for a free block corresponding to a specified color (e.g., C0, C1, C2) within a block group BG0. If the pre-block corresponding to the designated color (C0, C1, C2) in the block group BG0 is not retrieved, the processor 110 can search for the pre-block corresponding to the specified color for other block groups.

그리고, 프로세서(110)는 프리 블록이 블록 그룹 내에서 검색되면, 검색된 프리 블록을 파일에 할당(S130)한다. When the free block is searched in the block group, the processor 110 allocates the searched free block to the file (S130).

예를 들어, 프로세서(110)는 블록 그룹(BG0) 내에서 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록(BLK0, BLK1, BLK2)이 검색되면, 프리 블록(BLK0, BLK1, BLK2)을 파일에 할당할 수 있다. 또한, 프로세서(110)는 다른 블록 그룹들에 대해서도 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록들을 검색하여 파일에 할당할 수 있다.For example, when the prefetch blocks BLK0, BLK1, and BLK2 corresponding to the designated colors C0, C1, and C2 are retrieved in the block group BG0, the processor 110 reads the free blocks BLK0, BLK1, Can be assigned to a file. In addition, the processor 110 may search for other block groups and also allocate the free blocks corresponding to the designated color (C0, C1, C2) to a file.

프로세서(110)는 프리 블록이 모든 블록 그룹 내에서 소진되었는지 판단(S140)한다. The processor 110 determines whether the free block is exhausted in all the block groups (S140).

모든 블록 그룹 내에서 프리 블록이 검색되지 않거나, 블록 할당에 의해 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(110)는 다른 적어도 하나의 컬러들을 파일에 지정(S150)한다.If a free block is not found in all the block groups, or if the free block is exhausted in all the block groups by block allocation, the processor 110 assigns at least one other color to the file (S150).

S120 단계에서, 모든 블록 그룹들 내에서 지정된 컬러에 대응하는 블록이 검색되지 않은 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 다시 지정할 수 있다. 또는 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 다시 지정할 수 있다.In step S120, if no block corresponding to the designated color is found in all the block groups, the processor 110 can re-assign the file to the other colors in the sequential color group including the color specified in step S100 . Or processor 110 may redirect the file to colors in other sequential color groups other than the sequential color group containing the color specified in step S100.

예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 검색되지 않은 경우, 순차적 컬러 그룹(SCG0) 내의 다른 컬러들(C3-C31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 검색되지 않은 경우, 순차적 컬러 그룹들(SCG1-SCG3) 내의 컬러들(C32-S127) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다.For example, if the block corresponding to the specified color (C0-C2) of the sequential color group (SCG0) is not retrieved in all the block groups (BG0-BGk) Lt; RTI ID = 0.0 > (C3-C31) < / RTI > Or the processor 110 determines whether the block corresponding to the designated color C0-C2 of the sequential color group SCG0 is not retrieved in all of the block groups BG0-BGk, the sequential color groups SCG1-SCG3, The color of at least one of the colors C32-S127 in the file can be specified for the file.

또한, S140 단계에서, 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 더 지정할 수 있다. 또는 프로세서(110)는 S100 단계에서 지정된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 더 지정할 수 있다.Also, in step S140, if the free block is exhausted in all the block groups, the processor 110 can further specify to the file other colors in the sequential color group designated in step S100. Or the processor 110 may further specify in the file the colors in the sequential color groups other than the sequential color group specified in step S100.

예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 소진된 경우, 순차적 컬러 그룹(SCG0) 내의 다른 컬러들(C3-C31) 중 적어도 하나의 컬러를 파일에 대해 더 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0)의 지정된 컬러(C0-C2)에 대응하는 블록이 모든 블록 그룹들(BG0-BGk) 내에서 소진된 경우, 순차적 컬러 그룹들(SCG1-SCG3) 내의 컬러들(C32-S127) 중 적어도 하나의 컬러를 파일에 대해 더 지정할 수 있다.For example, when the block corresponding to the designated color (C0-C2) of the sequential color group (SCG0) is exhausted in all the block groups (BG0-BGk) And further specify at least one color of the other colors C3-C31 for the file. Or the processor 110 determines whether the block corresponding to the designated color C0-C2 of the sequential color group SCG0 is exhausted in all of the block groups BG0-BGk, At least one color of the colors C32-S127 may be designated for the file.

실시예에 따른 데이터 처리 장치 및 데이터 처리 방법에 따르면, 캐시(114) 내의 하나의 구역으로 페치될 수 있도록, 데이터가 메모리(120)에 저장될 수 있다. 여러 프로세스에 의해 여러 데이터들이 캐시(114)로 페치되는 경우, 각각의 데이터가 다른 데이터와 캐시(114) 내의 구역에 대해 경쟁하지 않을 수 있다.According to the data processing apparatus and the data processing method according to the embodiment, data can be stored in the memory 120 so that it can be fetched into one area in the cache 114. [ If multiple data are fetched into the cache 114 by several processes, then each piece of data may not be contending for other areas of the cache 114 with other data.

즉, 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법은 캐시 오염을 감소시키고, 프로세스의 성능을 증가시킬 수 있다.That is, the data processing apparatus and the data processing method according to the embodiment can reduce cache pollution and increase the performance of the process.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, controller, arithmetic logic unit (ALU), digital signal processor, microcomputer, field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute one or more software applications that are executed on an operating system (OS) and an operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing apparatus may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Claims (14)

복수의 구역으로 구분되는 캐시,
상기 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 그리고
데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하여 상기 데이터를 불휘발성 메모리에 저장하는 프로세서
를 포함하는 데이터 처리 장치.
A cache divided into a plurality of zones,
A nonvolatile memory including a plurality of block groups including a plurality of blocks corresponding to the plurality of zones,
A processor for allocating at least one block corresponding to one of the plurality of zones to data and storing the data in a nonvolatile memory,
To the data processing apparatus.
제1항에 있어서,
상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
데이터 처리 장치.
The method according to claim 1,
The plurality of blocks including at least one physical memory address,
Wherein the physical memory address corresponds to any one of a plurality of colors corresponding to the plurality of zones,
Wherein each of the plurality of block groups includes blocks corresponding to each of the plurality of sequential color groups and each of the plurality of sequential color groups corresponding to each of the plurality of sequential color groups Blocks are n blocks corresponding to sequential n colors,
Data processing device.
제2항에 있어서,
상기 프로세서는 상기 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 상기 데이터에 대해 지정하는,
데이터 처리 장치.
3. The method of claim 2,
Wherein the processor specifies at least one color of the sequential n colors for the data,
Data processing device.
제3항에 있어서,
상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는,
데이터 처리 장치.
The method of claim 3,
Wherein the processor allocates a free block corresponding to the at least one color to the data if there is a free block corresponding to the at least one color in the plurality of block groups,
Data processing device.
제4항에 있어서,
상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 다시 지정하는,
데이터 처리 장치.
5. The method of claim 4,
Wherein the processor is configured to re-designate at least one of the colors of the sequential n colors excluding the at least one color for the data if there is no free block corresponding to the at least one color in the plurality of block groups doing,
Data processing device.
제4항에 있어서,
상기 프로세서는 상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 더 지정하는,
데이터 처리 장치.
5. The method of claim 4,
Wherein when the preblock corresponding to the at least one color in the plurality of block groups is exhausted by the preblock allocation, at least one of the colors of the sequential n colors excluding the at least one color Lt; RTI ID = 0.0 > a < / RTI >
Data processing device.
복수의 구역으로 구분되는 캐시, 상기 복수의 구역에 대응하는 복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리, 및 서로 상이한 프로세스를 구동하는 복수의 코어를 포함하는 프로세서를 포함하는 데이터 처리 장치에 있어서,
데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계, 및
상기 데이터를 상기 적어도 하나의 블록에 저장하는 단계
를 포함하는 데이터 처리 방법.
A processor including a processor including a cache separated into a plurality of zones, a nonvolatile memory including a plurality of block groups including a plurality of blocks corresponding to the plurality of zones, and a plurality of cores driving different processes In the processing apparatus,
Assigning to the data at least one block corresponding to any of the plurality of zones, and
Storing the data in the at least one block
/ RTI >
제7항에 있어서,
상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
데이터 처리 방법.
8. The method of claim 7,
The plurality of blocks including at least one physical memory address,
Wherein the physical memory address corresponds to any one of a plurality of colors corresponding to the plurality of zones,
Wherein each of the plurality of block groups includes blocks corresponding to each of the plurality of sequential color groups and each of the plurality of sequential color groups corresponding to each of the plurality of sequential color groups Blocks are n blocks corresponding to sequential n colors,
Data processing method.
제8항에 있어서,
상기 적어도 하나의 블록을 할당하는 단계 이전에,
상기 순차적인 n 개의 컬러 중 적어도 하나의 컬러를 상기 데이터에 대해 지정하는 단계
를 더 포함하는 데이터 처리 방법.
9. The method of claim 8,
Prior to allocating the at least one block,
Designating at least one of the sequential n colors for the data
Further comprising the steps of:
제9항에 있어서,
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는 단계를 포함하는,
데이터 처리 방법.
10. The method of claim 9,
Wherein the step of allocating at least one block corresponding to any one of the plurality of zones to the data comprises:
And allocating a free block corresponding to the at least one color to the data if a free block corresponding to the at least one color exists in the plurality of block groups.
Data processing method.
제10항에 있어서,
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 다시 지정하는 단계를 더 포함하는,
데이터 처리 방법.
11. The method of claim 10,
Wherein the step of allocating at least one block corresponding to any one of the plurality of zones to the data comprises:
If there is no free block corresponding to the at least one color in the plurality of block groups, redesignating at least one of the colors of the sequential n colors excluding the at least one color for the data Further included,
Data processing method.
제10항에 있어서,
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 n 개의 컬러 중 상기 적어도 하나의 컬러를 제외한 컬러들 중 적어도 하나를 상기 데이터에 대해 더 지정하는 단계를 더 포함하는,
데이터 처리 방법.
11. The method of claim 10,
Wherein the step of allocating at least one block corresponding to any one of the plurality of zones to the data comprises:
Wherein when the preblock corresponding to the at least one color in the plurality of block groups is exhausted by the preblock allocation, at least one of the colors excluding the at least one color among the sequential n colors, Lt; RTI ID = 0.0 > further < / RTI >
Data processing method.
제7항에 있어서,
상기 상이한 프로세스 각각에 의해, 상기 데이터를 상기 데이터가 저장된 블록에 대응하는 상기 캐시 내의 일 구역으로 가져오는 단계를 더 포함하는,
데이터 처리 방법.
8. The method of claim 7,
Further comprising, by each of the different processes, fetching the data into a section in the cache corresponding to a block in which the data is stored.
Data processing method.
복수의 블록을 포함하는 블록 그룹을 복수로 포함하는 불휘발성 메모리,
상기 불휘발성 메모리에 저장된 데이터를 블록 단위로 캐시에 가져오는 프로세스를 구동하는 복수의 코어를 포함하는 프로세서
를 포함하고,
상기 복수의 블록 각각이 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하고, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하며, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 n개의 컬러에 대응하는 n개의 블록인,
상기 프로세서는 입력되는 데이터를 상기 복수의 순차적 컬러 그룹 중 어느 하나에 포함된 순차적인 m개의 컬러에 대응하는 연속적인 블록들에 할당하는,
데이터 처리 장치.
A nonvolatile memory including a plurality of block groups including a plurality of blocks,
A processor that includes a plurality of cores that drives a process of fetching data stored in the non-volatile memory into a cache on a block-
Lt; / RTI >
Wherein each of the plurality of blocks corresponds to any one of a plurality of colors corresponding to the plurality of zones, each of the plurality of block groups includes blocks corresponding to each of the plurality of sequential color groups, The blocks corresponding to each of which are n blocks corresponding to sequential n colors,
Wherein the processor assigns input data to consecutive blocks corresponding to sequential m colors included in any one of the plurality of sequential color groups,
Data processing device.
KR1020170050606A 2017-04-19 2017-04-19 Data processing apparatus and data processing method KR101951309B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170050606A KR101951309B1 (en) 2017-04-19 2017-04-19 Data processing apparatus and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170050606A KR101951309B1 (en) 2017-04-19 2017-04-19 Data processing apparatus and data processing method

Publications (2)

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

Family

ID=64101313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170050606A KR101951309B1 (en) 2017-04-19 2017-04-19 Data processing apparatus and data processing method

Country Status (1)

Country Link
KR (1) KR101951309B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100353656B1 (en) * 1999-03-31 2002-09-19 인터내셔널 비지네스 머신즈 코포레이션 Method, apparatus and computer program recording medium for improving dma and l1/l2 cache performance
JP2010044727A (en) * 2008-08-13 2010-02-25 Park:Kk Data storage cache device
KR20140111589A (en) * 2013-03-11 2014-09-19 엘에스아이 코포레이션 System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
KR20160141735A (en) * 2014-04-04 2016-12-09 퀄컴 인코포레이티드 Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
KR20170014263A (en) * 2015-07-29 2017-02-08 삼성전자주식회사 Apparatus and method for managing cache flooding process in computing apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100353656B1 (en) * 1999-03-31 2002-09-19 인터내셔널 비지네스 머신즈 코포레이션 Method, apparatus and computer program recording medium for improving dma and l1/l2 cache performance
JP2010044727A (en) * 2008-08-13 2010-02-25 Park:Kk Data storage cache device
KR20140111589A (en) * 2013-03-11 2014-09-19 엘에스아이 코포레이션 System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines
KR20160141735A (en) * 2014-04-04 2016-12-09 퀄컴 인코포레이티드 Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
KR20170014263A (en) * 2015-07-29 2017-02-08 삼성전자주식회사 Apparatus and method for managing cache flooding process in computing apparatus

Also Published As

Publication number Publication date
KR101951309B1 (en) 2019-04-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
US20130212319A1 (en) Memory system and method of controlling memory system
US9384153B2 (en) Virtualized local storage
KR20100095629A (en) Dynamic address translation with format control
KR20100126269A (en) Dynamic address translation with fetch protection
KR20100037319A (en) Variable space page mapping method and apparatus for flash memory device
US20180004678A1 (en) Apparatus and method for performing address translation
JP6916782B2 (en) How to preload virtual machine page table cache lines, computing systems, and computer programs
KR102319248B1 (en) Asynchronous Forward Caching Memory Systems and Methods
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 (en) Vector computer system having cache memory and method of operating the same
US10089039B2 (en) Memory controller, memory device having the same, and memory control method
CN109308191A (en) Branch prediction method and device
JP2022537007A (en) data storage
US20130007354A1 (en) Data recording device and data recording method
JP2009015509A (en) Cache memory device
US11334499B2 (en) Method for locating metadata
US8274521B2 (en) System available cache color map
WO2010024071A1 (en) Cache memory, cache memory system, and method and program for using the cache memory
JP2001282617A (en) Method and system for dynamically sectioning shared cache
WO2000045269A1 (en) Cache memory
US8356141B2 (en) Identifying replacement memory pages from three page record lists
KR101951309B1 (en) Data processing apparatus and data processing method

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