KR20180117463A - Data processing apparatus and data processing method - Google Patents
Data processing apparatus and data processing method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Abstract
Description
본 개시는 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다.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
프로세서(110)는 복수의 코어(core)(112a-112d) 및 캐시(cache)(114)를 포함한다. 예를 들어, 프로세서(110)는 운영 체제 또는 응용 프로그램을 구동하여, 프로세서(110)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다.The
프로세서(110)는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 프로세서(110)는 중앙처리장치(CPU: central processing unit), 어플리케이션 프로세서(AP: application processor), 또는 커뮤니케이션 프로세서(CP: communication processor) 중 하나 또는 그 이상을 포함할 수 있다. The
프로세서(110)는, 컴퓨팅 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어 프로세서(110)는 메모리(120)에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)를 의미할 수 있다.The
데이터 처리 장치에서 다수의 코어(112a-112d)를 포함할 경우, 다수의 코어는 각각 프로세스를 구동할 수 있다. 각각의 코어(112a-112d)는, 메모리(120) 또는 캐시(114)에 저장된 데이터와 같은 프로그램을 처리할 수 있다. When the data processing apparatus includes a plurality of
캐시(114)는 메모리(120)로부터 판독한 명령이나 데이터들을 저장하는 버퍼 형태의 고속 저장장치이다. 이러한 캐시(114)는 프로세서(110) 및 메모리(120) 사이에 설치될 수 있으며, 캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 지칭된다. The
캐시(114)는 메모리(120)에 비해 기억 용량(memory capacity)이 비교적 작지만, 메모리(120)에 비해 고속으로 액세스 가능하다. 따라서, 프로세서(110)가 명령 또는 데이터가 필요하게 되면, 메모리(120)가 아니라 캐시(114)에 먼저 액세스할 수 있다. The
캐시(114)는 프로세스가 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다. 멀티 코어 시스템의 멀티 코어들은 최하위 레벨 캐시(LLC)를 공유한다. 이러한 최하위 레벨 캐시는 메모리(120)에 액세스하기 전에 호출되는 공유된 가장 높은 레벨의 캐시(특정 실시 예들에서 L3 캐시일 수 있다)이다.The
멀티 프로세서 환경에서 다수의 프로세스가 동시에 수행될 경우, 프로세스들은 공유 캐시(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
메모리(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
프로세서(110)는 메모리 인터페이스를 통해 메모리(120)와 통신하도록 구성된다. 메모리 인터페이스는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 메모리(120)와 통신할 수 있다. 메모리 인터페이스는 제어 채널을 통해 제어 신호를 메모리(120)와 통신할 수 있다.The
한편, 프로세서(100)에서 실행되는 파일 시스템은 메모리(120)를 블록 단위(또는 페이지 단위)로 구분하여 관리한다. 파일 시스템은 파일을 생성하거나 파일이 확장될 때 미사용중인 프리 블록을 파일에게 할당한다. 다이렉트 맵핑 (directive mapping) 또는 세트 연관 (set-associative) 캐시의 경우 파일 데이터가 차지하는 캐시(114) 내 위치는 메모리(120) 상에서 파일 데이터의 주소, 특히 물리 메모리 주소에 의해 결정된다.Meanwhile, the file system executed in the
다음으로, 도 2를 참조하여, 메모리(120) 및 캐시(114) 간의 데이터 페치(fetch)에 대해 설명한다.Next, data fetch between the
도 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
메모리(120)는 복수의 블록 그룹(BG0-BGk)을 포함한다. 그리고, 복수의 블록 그룹 각각은 복수의 블록(예를 들어, 페이지)을 포함할 수 있다. 그리고, 하나의 블록(예를 들어, BLK0)은 복수의 물리 메모리 주소(ADD0-ADDi-1)를 포함한다. 이하에서, 하나의 블록의 크기는 4KB인 것으로 가정한다.The
각각의 물리 메모리 주소(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
도 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
해시 함수(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.
해당 물리 메모리 주소(ADD0)에 저장된 데이터가 캐시(114)로 페치되는 경우, 비트들(h1(a), h2(a))에 대응하는 캐시(114) 내의 구역에 페치될 수 있다. May be fetched into the area in
물리 메모리 주소(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
상기의 도 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
한편, 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
예를 들어, 각각의 프로세스가 블록 그룹(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
마찬가지로, 서로 다른 블록(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
프로세서(110)가 메모리(120) 내의 연속적인 블록들을 하나의 파일에 할당하면, 하나의 파일은 여러 순차적 컬러 그룹에 대응하는 블록들에 저장될 수 있다. 그러면, 해당 파일을 호출하는 하나의 프로세스가 수행되는 경우, 해당 파일이 캐시(114) 내의 여러 구역으로 페치될 수 있어 캐시 오염을 유발할 수 있다. When the
다음으로, 도 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
예를 들어, 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 또는 프로세서(110)는 순차적 컬러 그룹(SCG0) 내의 컬러들(C0-S31) 중 적어도 하나의 컬러를 파일에 대해 지정할 수 있다. 본 실시예에서는 편의상 연속적인 컬러들(C0, C1, C2)를 파일에 대해 지정하였지만, 컬러들은 반드시 연속적이지 않아도 된다는 점은 자명하다.For example, the
프로세서(110)는 블록 그룹 내에서 지정된 컬러에 대응하는 프리 블록을 검색(S110)하고, 프리 블록이 존재하는지 판단(S120)한다. 프리 블록은 데이터 또는 명령 등이 저장되지 않은 블록을 의미할 수 있다. 이때 프로세서(110)는 블록 그룹들 전부에 대해, 지정된 컬러에 대응하는 프리 블록을 검색할 수도 있다. The
예를 들어, 프로세서(110)는 블록 그룹(BG0) 내에서 지정된 컬러(예를 들어, C0, C1, C2)에 대응하는 프리 블록을 검색할 수 있다. 블록 그룹(BG0) 내에서 지정된 컬러(C0, C1, C2)에 대응하는 프리 블록이 검색되지 않으면, 프로세서(110)는 다른 블록 그룹들에 대해서도 지정된 컬러에 대응하는 프리 블록을 검색할 수 있다. For example, the
그리고, 프로세서(110)는 프리 블록이 블록 그룹 내에서 검색되면, 검색된 프리 블록을 파일에 할당(S130)한다. When the free block is searched in the block group, the
예를 들어, 프로세서(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
프로세서(110)는 프리 블록이 모든 블록 그룹 내에서 소진되었는지 판단(S140)한다. The
모든 블록 그룹 내에서 프리 블록이 검색되지 않거나, 블록 할당에 의해 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(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
S120 단계에서, 모든 블록 그룹들 내에서 지정된 컬러에 대응하는 블록이 검색되지 않은 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 다시 지정할 수 있다. 또는 프로세서(110)는 파일에 S100 단계에서 지정된 컬러가 포함된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 다시 지정할 수 있다.In step S120, if no block corresponding to the designated color is found in all the block groups, the
예를 들어, 프로세서(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
또한, S140 단계에서, 프리 블록이 모든 블록 그룹 내에서 소진된 경우, 프로세서(110)는 파일에 S100 단계에서 지정된 순차적 컬러 그룹 내의 다른 컬러들을 파일에 더 지정할 수 있다. 또는 프로세서(110)는 S100 단계에서 지정된 순차적 컬러 그룹 외의 다른 순차적 컬러 그룹들 내의 컬러들을 파일에 더 지정할 수 있다.Also, in step S140, if the free block is exhausted in all the block groups, the
예를 들어, 프로세서(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
실시예에 따른 데이터 처리 장치 및 데이터 처리 방법에 따르면, 캐시(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
즉, 실시예에 따른 데이터 처리 장치 및 데이터 처리 방법은 캐시 오염을 감소시키고, 프로세스의 성능을 증가시킬 수 있다.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.
상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 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.
상기 프로세서는 상기 순차적인 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.
상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는,
데이터 처리 장치.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.
상기 프로세서는 상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 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.
상기 프로세서는 상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 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 >
상기 복수의 블록은 적어도 하나의 물리 메모리 주소를 포함하고,
상기 물리 메모리 주소는 상기 복수의 구역에 대응하는 복수의 컬러 중 어느 하나에 대응하며,
상기 복수의 블록 각각이 동일한 컬러에 대응하는 물리 메모리 주소들을 포함하는 경우, 상기 복수의 블록 그룹 각각은 복수의 순차적 컬러 그룹 각각에 대응하는 블록들을 포함하고, 상기 복수의 순차적 컬러 그룹 각각에 대응하는 블록들은 순차적인 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.
상기 적어도 하나의 블록을 할당하는 단계 이전에,
상기 순차적인 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:
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하면, 상기 적어도 하나의 컬러에 대응하는 프리 블록을 상기 데이터에 대해 할당하는 단계를 포함하는,
데이터 처리 방법.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.
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 복수의 블록 그룹 내에 상기 적어도 하나의 컬러에 대응하는 프리 블록이 존재하지 않으면, 상기 순차적인 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.
상기 데이터에 상기 복수의 구역 중 어느 하나에 대응하는 적어도 하나의 블록을 할당하는 단계는,
상기 프리 블록 할당에 의해, 상기 복수의 블록 그룹 내에서 상기 적어도 하나의 컬러에 대응하는 프리 블록이 소진되면, 상기 순차적인 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.
상기 상이한 프로세스 각각에 의해, 상기 데이터를 상기 데이터가 저장된 블록에 대응하는 상기 캐시 내의 일 구역으로 가져오는 단계를 더 포함하는,
데이터 처리 방법.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.
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)
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 |
-
2017
- 2017-04-19 KR KR1020170050606A patent/KR101951309B1/en active IP Right Grant
Patent Citations (5)
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 |