KR102491352B1 - Electronic device for efficiently estimating stack distance and operation method of the same - Google Patents
Electronic device for efficiently estimating stack distance and operation method of the same Download PDFInfo
- Publication number
- KR102491352B1 KR102491352B1 KR1020210047747A KR20210047747A KR102491352B1 KR 102491352 B1 KR102491352 B1 KR 102491352B1 KR 1020210047747 A KR1020210047747 A KR 1020210047747A KR 20210047747 A KR20210047747 A KR 20210047747A KR 102491352 B1 KR102491352 B1 KR 102491352B1
- Authority
- KR
- South Korea
- Prior art keywords
- accessed object
- unique
- currently accessed
- index value
- distance
- 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/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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
스택 거리를 효율적으로 추정하는 전자장치가 개시된다. 본 발명의 다양한 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치는 액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 저장부 및 상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하고, 상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하고, 상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하고, 상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 프로세서를 포함할 수 있다.An electronic device for efficiently estimating a stack distance is disclosed. An electronic device for efficiently estimating a stack distance according to various embodiments of the present disclosure stores an index value for an accessed object, a unique index value for the accessed object, and at least one hash table recording the accessed object. Based on the storage unit and the hash table, the previous index value of the currently accessed object and the previous unique count value of the currently accessed object are obtained, and the current index value of the currently accessed object and the currently accessed object Based on the previous index value, a cross-reference distance to the currently accessed object ( : Inter-reference distance) is obtained, and based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : a unique reference count) and an estimated stack distance based on the cross-reference distance and the unique reference count.
Description
본 발명은 스택 거리를 효율적으로 추정하는 전자장치 및 이의 동작방법에 대한 것으로, 보다 상세하게는 스택 거리 추정을 통해 스택 거리를 효율적으로 추정하는 전자장치 및 이의 동작방법에 대한 것이다.The present invention relates to an electronic device for efficiently estimating a stack distance and an operating method thereof, and more particularly, to an electronic device and an operating method thereof for efficiently estimating a stack distance through estimation of a stack distance.
잠정 구역성(temporal locality)이란 최초 참조된 기억 장소가 가까운 미래에도 계속 참조될 가능성이 높음을 의미한다. 잠정 구역성을 판단하기 위하여는 최신성(recency)이 가장 중요한 팩터(factor)에 해당한다. 최신성을 판단하기 위해서는 스택 거리(stack distance)를 활용할 수 있다.Temporal locality means that the first referenced memory location is highly likely to continue to be referenced in the near future. Recency is the most important factor in determining provisional regionality. In order to determine recency, a stack distance may be utilized.
일반적으로, 스택 거리는 입력되는 워크로드 데이터 마다 계산해야 하므로 복잡성이 크다. 스택 거리의 복잡성을 개선하기 위한 방법으로, Almasi 등은 홀-베이스 알고리즘(hole-based algorithm)이라는 새로운 스택 거리 산출 방식을 제안한 바 있다. 본 방식은 스택 거리를 보다 효율적으로 계산하기 위해 인터벌 트리(균형 이진 트리)를 채택한 바 있다.In general, the complexity is high because the stack distance must be calculated for each input workload data. As a method for improving the complexity of the stack distance, Almasi et al. have proposed a new stack distance calculation method called a hole-based algorithm. This method has adopted an interval tree (balanced binary tree) to calculate the stack distance more efficiently.
본 발명의 배경이 되는 기술의 일 예로, 일본 등록특허공보 제2000-330827호(2000. 11. 30.)는 캐쉬 내의 중복 페이지수를 확률적 방식으로 근사하여 계산함으로써 캐시 실수율의 효율을 높이는 방법을 개시한다.As an example of a technology behind the present invention, Japanese Patent Registration No. 2000-330827 (November 30, 2000) discloses a method for increasing the efficiency of cache real rate by approximating and calculating the number of duplicate pages in a cache in a stochastic manner. Initiate.
상술한 홀-베이스 알고리즘과 같은 기존의 스택 거리 계산 방법들은 스택 거리 계산의 복잡도를 어느 정도 개선하였으나, 예를 들어 더 큰 복잡도를 가지는 핫/콜드 데이터 구분 과정에 스택 거리 계산을 이용할 수 있을 정도의 개선을 실현하지는 못했다.Existing stack distance calculation methods such as the above-mentioned hole-based algorithm have improved the complexity of stack distance calculation to some extent, but, for example, it is possible to use stack distance calculation in a hot/cold data classification process having a greater complexity. No improvement was realized.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명은 스택 거리의 추정치를 획득함으로써, 스택 거리 계산 과정의 복잡도를 현저하게 경감할 수 있는 방법을 제공하는 것을 목적으로 한다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a method capable of remarkably reducing the complexity of a stack distance calculation process by obtaining an estimated stack distance.
본 발명의 다양한 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치는 액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 저장부 및 상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하고, 상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하고, 상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하고, 상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 프로세서를 포함할 수 있다.An electronic device for efficiently estimating a stack distance according to various embodiments of the present disclosure stores an index value for an accessed object, a unique index value for the accessed object, and at least one hash table recording the accessed object. Based on the storage unit and the hash table, the previous index value of the currently accessed object and the previous unique count value of the currently accessed object are obtained, and the current index value of the currently accessed object and the currently accessed object Based on the previous index value, a cross-reference distance to the currently accessed object ( : Inter-reference distance) is obtained, and based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : a unique reference count) and an estimated stack distance based on the cross-reference distance and the unique reference count.
본 발명의 다양한 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정, 상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정, 상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하는 과정, 상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하는 과정 및 상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정을 포함할 수 있다.An operating method of an electronic device for efficiently estimating a stack distance according to various embodiments of the present disclosure includes an index value for an accessed object, a unique index value for the accessed object, and at least one hash recording the accessed object. Storing a table, obtaining a previous index value of the currently accessed object and a previous unique count value of the currently accessed object, based on the hash table, the current index value of the currently accessed object and the current access Based on the previous index value of the object to be accessed, the cross-reference distance to the currently accessed object ( : Inter-reference distance), based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : obtaining a unique reference count) and obtaining an estimated stack distance based on the cross-reference distance and the unique reference count.
본 발명의 다양한 실시 예에 따르면, 스택 거리의 추정치를 획득함으로써, 스택 거리 계산 과정의 복잡도를 현저하게 경감할 수 있는 방법을 제공하는 것을 목적으로 한다.According to various embodiments of the present disclosure, an object of the present invention is to provide a method capable of remarkably reducing the complexity of a stack distance calculation process by obtaining an estimate of the stack distance.
도 1은 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치에 대한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 스택 거리 추정방법에 대한 흐름도이다.
도 3은 본 발명의 일 실시 예에 따른 워크로드 데이터의 특성을 도시한다.
도 4는 본 발명의 일 실시 예에 따른 성능 비교 데이터를 도시한다.
도 5는 본 발명의 다른 실시 예에 따른 성능 비교 데이터를 도시한다.
도 6는 본 발명의 또 다른 실시 예에 따른 성능 비교 데이터를 도시한다.
도 7은 본 발명의 또 다른 실시 예에 따른 성능 비교 데이터를 도시한다.
도 8은 본 발명의 일 실시 예에 따른 전자장치의 세부 구성도이다.
도 9는 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법에 대한 흐름도이다.1 is a diagram of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention.
2 is a flowchart of a method for estimating a stack distance according to an embodiment of the present invention.
3 illustrates characteristics of workload data according to an embodiment of the present invention.
4 shows performance comparison data according to an embodiment of the present invention.
5 shows performance comparison data according to another embodiment of the present invention.
6 shows performance comparison data according to another embodiment of the present invention.
7 shows performance comparison data according to another embodiment of the present invention.
8 is a detailed configuration diagram of an electronic device according to an embodiment of the present invention.
9 is a flowchart of an operating method of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대한 동작원리를 상세히 설명한다. 또한, 발명에 대한 실시 예를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 하기에서 사용되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로써, 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 사용된 용어들의 정의는 본 명세서 전반에 걸친 내용 및 이에 상응한 기능을 토대로 해석되어야 할 것이다.Hereinafter, the operating principle of a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings. In addition, when it is determined that a detailed description of a related known function or configuration may obscure the gist of the present disclosure in describing an embodiment of the present invention, the detailed description will be omitted. In addition, terms used in the following are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definitions of the terms used should be interpreted based on the content throughout this specification and the corresponding functions.
도 1은 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치에 대한 도면이다.1 is a diagram of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention.
도 1을 참조하면, 스택 거리(stack distance)를 효율적으로 추정하는 전자장치(100)는 저장부(110) 및 프로세서(120)를 포함할 수 있다.Referring to FIG. 1 , an
여기서, 전자장치(100)는 SSD(Solid State Drive)와 같은 다양한 데이터 저장장치나, 서버, PC, 태블릿 PC, 스마트폰 등 다양한 전자기기일 수 있다.Here, the
스택 거리는 동일한 두 개의 오브젝트 사이에 나타나는 여러 개의 오브젝트 중 유니크(unique)한 오브젝트의 개수로 정의될 수 있다. 예를 들어, 오브젝트의 나열 'a b c c c d e e e a b'를 가정할 때, 동일한 'a' 오브젝트 사이에 나타나는 오브젝트 'b c c c d e e e'에서 유니크한 오브젝트는 'b c d e'다. 따라서, 상기 오브젝트 나열의 스택 거리는 4(SD(a)=4)로 정의될 수 있다.The stack distance may be defined as the number of unique objects among multiple objects appearing between two identical objects. For example, assuming an array of objects 'a b c c c d e e e a b', a unique object in 'b c c c d e e e' appearing among identical 'a' objects is 'b c d e'. Accordingly, the stack distance of the object enumeration may be defined as 4 (SD(a)=4).
스택 거리는 출현되는(또는 access 되는) 모든 오브젝트들의 히스토리를 저장하고 있어야만 계산 가능하기 때문에 메모리 사용량이 크고, 특히 캐시 메커니즘의 경우 모든 오브젝트 각각에 대해서 SD를 구해야 하므로 계산 복잡도 (computational complexity)가 매우 높다. Since the stack distance can be calculated only when the history of all appearing (or accessed) objects is stored, the memory usage is large, and especially in the case of the cache mechanism, the computational complexity is very high because the SD must be obtained for each object.
이에 따라, 본 발명에서는 스택 거리의 추정치를 효율적으로 계산하는 방법을 제공함으로써 일반적인 스택 거리 계산의 복잡도를 개선하고자 한다.Accordingly, the present invention aims to improve the complexity of general stack distance calculation by providing a method for efficiently calculating an estimate of the stack distance.
저장부(110)는 해시 테이블을 저장할 수 있다. 해시 테이블은 레코드를 한 개 이상 보관하는 버킷들의 집합이다. 해시 테이블은 데이터가 저장되는 버킷들의 배열로 만들어지며, 한 버킷은 하나 이상의 레코드를 수용할 수 있다. 이하에서, 해시 테이블에 저장되는 정보는 해시 테이블에 포함된 적어도 하나의 버킷에 저장되는 것으로 해석될 수 있을 것이다.The
저장부(110)는 해시 테이블에 포함된 적어도 하나의 버킷에 액세스 되는 오브젝트(또는 워크로드 데이터)에 대한 정보를 저장할 수 있다. 여기서, 오브젝트는 LBA(Logical Block Address)일 수 있다.The
구체적으로, 저장부(110)는 액세스되는 오브젝트에 대한 인덱스 값, 액세스되는 오브젝트에 대한 고유 인덱스 값 및 액세스되는 오브젝트를 기록할 수 있다. Specifically, the
여기서, 액세스되는 오브젝트에 대한 인덱스 값은 액세스되는 오브젝트의 현재 인덱스 값으로 업데이트 되기 때문에 액세스되는 오브젝트에 대한 이전 인덱스 값으로 정의될 수도 있다. Here, since the index value of the accessed object is updated with the current index value of the accessed object, it may be defined as a previous index value of the accessed object.
또한, 액세스되는 오브젝트에 대한 고유 인덱스 값은 액세스되는 오브젝트의 현재 고유 카운트 값으로 업데이트 되기 때문에 액세스되는 오브젝트에 대한 이전 인덱스 값으로 정의될 수도 있다.Also, since the unique index value of the accessed object is updated with the current unique count value of the accessed object, it may be defined as a previous index value of the accessed object.
일 예로, 적어도 하나의 해시 테이블에 포함된 적어도 하나의 버킷은 이전 인덱스 값, 이전 고유 인덱스 값 및 현재 액세스되는 오브젝트 값을 기록할 수 있다. 이를 위해, 해시 테이블에 포함된 적어도 하나의 버킷 각각은 이전 인덱스, 이전 고유 인덱스 및 레퍼런스 파트를 포함할 수 있다. 이 경우, 이전 인덱스는 이전 인덱스 값을, 이전 고유 인덱스는 고유 인덱스 값을, 레퍼런스 파트는 액세스되는 오브젝트의 값을 기록할 수 있다.For example, at least one bucket included in at least one hash table may record a previous index value, a previous unique index value, and a currently accessed object value. To this end, each of at least one bucket included in the hash table may include a previous index, a previous unique index, and a reference part. In this case, the previous index may record the previous index value, the previous unique index may record the unique index value, and the reference part may record the value of the accessed object.
프로세서(120)는 전자장치(100)를 전반적으로 제어할 수 있다. 특히, 프로세서(120)는 입력되는 오브젝트에 대한 스택 거리를 추정할 수 있다.The
예를 들어, 프로세서(120)는 상술한 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득할 수 있다. For example, the
이 경우, 프로세서(120)는 현재 액세스되는 오브젝트가 해시 테이블에 포함된 버킷의 레퍼런스에 포함되었는지 확인할 수 있다. In this case, the
현재 액세스되는 오브젝트가 해시 테이블에 포함된 버킷의 레퍼런스에 포함된 경우, 프로세서(120)는 현재 액세스되는 오브젝트의 이전 인덱스 값은 해시 테이블에 포함된 상기 버킷에 기록된 이전 인덱스로부터 획득할 수 있다. 또한, 프로세서(120)는 현재 액세스되는 오브젝트의 이전 고유 카운트 값은 해시 테이블에 포함된 상기 버킷에 기록된 이전 고유 인덱스로부터 획득할 수 있다.When a currently accessed object is included in the reference of a bucket included in the hash table, the
현재 액세스되는 오브젝트가 해시 테이블에 포함된 버킷의 레퍼런스에 포함되지 않은 경우 즉, 현재 액세스 되는 오브젝트가 해시 테이블에 기록되지 않은 경우, 프로세서(120)는 현재 액세스되는 오브젝트의 추정 스택 거리를 0으로 설정 또는 리턴 할 수 있다. 이 경우, 프로세서(120)는 고유 카운트 값을 증가시킬 수 있다.If the currently accessed object is not included in the bucket reference included in the hash table, that is, if the currently accessed object is not recorded in the hash table, the
프로세서(120)는 현재 액세스 되는 오브젝트가 해시 테이블에 기록된 경우, 해시 테이블에 기초하여 상호 참조 거리(: Inter-reference distance)를 획득하는 과정 및 고유 참조 카운트(: unique reference count)를 획득하는 과정을 수행할 수 있다.When the currently accessed object is recorded in the hash table, the
먼저, 프로세서(120)는 현재 액세스되는 오브젝트에 대한 상호 참조 거리를 획득할 수 있다. 여기서, 상호 참조 거리는 현재 액세스되는 오브젝트의 현재 액세스 시점과 현재 액세스되는 오브젝트의 이전 액세스 시점 간에 포함된 모든 액세스된 오브젝트에 대한 카운팅 값으로 정의될 수 있다.First, the
일 예로, 프로세서(120)는 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값에 기초하여, 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득할 수 있다. 여기서, 상기 현재 인덱스 값은 글로벌 인덱스일 수 있다. 프로세서(120) 오브젝트가 액세스 되는 때마다 글로벌 인덱스의 카운트 값을 1씩 증가시키고 이를 해시 테이블의 이전 인덱스에 저장할 수 있다.For example, the
프로세서(120)는 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값의 차이 값을 상호 참조 거리로 획득할 수 있다.The
또한, 프로세서(120)는 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값에 기초하여, 고유 참조 카운트를 획득할 수 있다. Also, the
여기서, 프로세서(120)는 고유한 오브젝트(기존에 나타나지 않은 오브젝트)가 액세스 될 때마다 현재 고유 카운트 값(글로벌 고유 카운트)을 1씩 증가시킬 수 있다. 프로세서(120)는 고유한 오브젝트가 액세스되는 때의 글로벌 고유 카운트를 해시 테이블의 이전 고유 인덱스에 저장할 수 있다.Here, the
프로세서(120)는 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값의 차이 값을 고유 참조 카운트로 획득할 수 있다.The
한편, 프로세서(120)는 획득된 상호 참조 거리 및 획득된 고유 참조 카운트에 기초하여 추정 스택 거리를 획득할 수 있다.Meanwhile, the
구체적으로, 프로세서(120)는 다음의 수학식에 기초하여 추정 스택 거리를 획득할 수 있다.Specifically, the
여기서, 는 상기 추정 스택 거리, 는 상기 상호 참조 거리, 는 상기 고유 참조 카운트이다.here, is the estimated stack distance, is the cross-reference distance, is the unique reference count.
상기 수학식 1에 따르면, 추정 스택 거리는 상호 참조 거리 및 고유 참조 카운트의 평균이라는 간단한 연산으로 산출될 수 있어 기존 스택 거리 연산에 비해 복잡도가 크게 낮아질 수 있다. 여기서, 상호 참조 거리 및 고유 참조 카운트는 해시 테이블에서 빠르게 참조 가능하여 연산 속도가 더 크게 향상될 수 있다.According to Equation 1, the estimated stack distance can be calculated by a simple operation of averaging the cross-reference distance and the unique reference count, so complexity can be greatly reduced compared to the conventional stack distance calculation. Here, the cross-reference distance and the unique reference count can be quickly referenced in the hash table, so the calculation speed can be greatly improved.
프로세서(120)는 상술한 과정에 따라 추정 스택 거리를 리턴할 수 있다. 이 경우, 프로세서(120)는 적어도 하나의 테이블에 기록된 이전 인덱스 값을 현재 인덱스 값으로 업데이트 할 수 있다. 또한, 프로세서(120)는 적어도 하나의 테이블에 기록된 이전 고유 인덱스 값을 현재 고유 카운트 값으로 업데이트할 수 있다.The
도 2는 본 발명의 일 실시 예에 따른 스택 거리 추정방법에 대한 흐름도이다.2 is a flowchart of a method for estimating a stack distance according to an embodiment of the present invention.
이하 도 2에 대한 설명에서 상술한 도 1에 대한 설명과 중복되는 내용은 설명의 편의를 위해 상세한 설명을 생략한다.Hereinafter, in the description of FIG. 2 , detailed descriptions of overlapping contents with those of FIG. 1 will be omitted for convenience of description.
도 2를 참조하면, 프로세서(120)는 오브젝트가 액세스하면(S201), 후술하는 해당 오브젝트에 대한 스택 거리 추정과정을 수행한다.Referring to FIG. 2 , when an object is accessed (S201), the
프로세서(120)는 액세스된 오브젝트가 해시 테이블에 기록되었는지를 판단할 수 있다(S202). The
프로세서(120)는 액세스된 오브젝트가 해시 테이블에 기록되지 않은 경우(S202-아니오), 추정 스택 거리를 0으로 리턴 할 수 있다(S203). 또한, 프로세서(120)는 현재 고유 카운트 값을 1 만큼 증가시킬 수 있다(S204). 이는 프로세서(120)는 액세스된 오브젝트가 해시 테이블에 기록되지 않은 고유한 오브젝트로 판단할 수 있기 때문이다.When the accessed object is not recorded in the hash table (S202-No), the
프로세서(120)는 액세스된 오브젝트가 해시 테이블에 기록된 경우(S202-예), 액세스된 오브젝트에 대한 상호 참조 거리를 획득할 수 있다(S205). 일 예로, 프로세서(120)는 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값의 차이 값을 상호 참조 거리로 획득할 수 있다.When the accessed object is recorded in the hash table (S202-Yes), the
또한, 프로세서(120)는 액세스된 오브젝트가 해시 테이블에 기록된 경우(S202-예), 액세스된 오브젝트에 대한 고유 참조 카운트를 획득할 수 있다(S206). 일 예로, 프로세서(120)는 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값의 차이 값을 고유 참조 카운트로 획득할 수 있다.Also, when the accessed object is recorded in the hash table (S202-Yes), the
프로세서(120)는 획득된 상호 참조 거리 및 고유 참조 카운트에 기초하여 추정 스택 거리를 획득할 수 있다(S207). 여기서, 추정 스택 거리는 상호 참조 거리 및 고유 참조 카운트의 평균으로 정의될 수 있다(상술한 수학식 1 참조).The
프로세서(120)는 상술한 과정에 따라 추정 스택 거리를 리턴 할 수 있다. 이 경우, 프로세서(120)는 적어도 하나의 테이블에 기록된 이전 인덱스 값을 현재 인덱스 값으로 업데이트 할 수 있다(S208). 또한, 프로세서(120)는 적어도 하나의 테이블에 기록된 이전 고유 인덱스 값을 현재 고유 카운트 값으로 업데이트할 수 있다(S209).The
상술한 추정 스택 거리는 상호 참조 거리 및 고유 참조 카운트의 평균이라는 간단한 연산으로 산출될 수 있다. 이에 따라, 본 발명의 일 실시 예에 따른 스택 거리 추정과정은 기존 스택 거리 연산에 비해 복잡도가 크게 낮아질 수 있다. 여기서, 상호 참조 거리 및 고유 참조 카운트는 해시 테이블에서 빠르게 참조 가능하여 연산 속도가 더 크게 향상될 수 있다.The above estimated stack distance can be calculated by a simple operation of averaging the cross-reference distance and the unique reference count. Accordingly, the complexity of the stack distance estimation process according to an embodiment of the present invention can be greatly reduced compared to the conventional stack distance calculation. Here, the cross-reference distance and the unique reference count can be quickly referenced in the hash table, so the calculation speed can be greatly improved.
이상에서 본 발명의 일 실시 예에 따른 스택 거리 추정방법에 대하여 상세히 설명하였다. 이하, 도 3 내지 도 7을 참조하여, 기존 스택 거리 계산방법과 본 발명의 일 실시 예에 따른 스택 거리 추정방법에 대한 성능을 비교해 본다.In the above, the method for estimating the stack distance according to an embodiment of the present invention has been described in detail. Hereinafter, with reference to FIGS. 3 to 7 , the performances of the conventional method for calculating a stack distance and the method for estimating a stack distance according to an embodiment of the present invention will be compared.
도 3은 본 발명의 일 실시 예에 따른 워크로드 데이터의 특성을 도시한다.3 illustrates characteristics of workload data according to an embodiment of the present invention.
도 3의 표는 4가지 트레이스(워크로드 데이터의 집합)의 특성을 포함한다.The table in FIG. 3 contains the characteristics of four traces (sets of workload data).
도 3을 참조하면, 본 발명의 일 실시 예에 따른 스택 거리 추정방법의 입력으로는 금융회사에서 발생하는 온라인 트랜잭션 관련 트레이스를 수집한 파이낸셜 트레이스(Financial trace), 마이크로소프트 캠브리지 연구소의 프린터 서버에서 수집된 MSR 프로젝트 트레이스(MSRproj trace), 마이크로소프트 캠브리지 연구소의 프로젝트 서버에서 수집된 MSR 프린터 트레이스(MSprn trace) 및 국립 타이완 대학교(NATIONAL TAIWAN UNIVERSITY)에서 수집된 디스틸드 트레이스(distilled trace)를 사용하였다.Referring to FIG. 3, as inputs to the stack distance estimation method according to an embodiment of the present invention, financial traces collected from traces related to online transactions occurring in financial companies and collected from the printer server of the Microsoft Cambridge Research Institute We used MSR project trace (MSRproj trace), MSR printer trace (MSprn trace) collected from the project server of Microsoft Cambridge Research Institute, and distilled trace (distilled trace) collected from NATIONAL TAIWAN UNIVERSITY.
상술한 각 트레이스 마다 900만 번의 실험을 수행하였다. 즉, 상술한 각 트레이스 마다, 본 발명의 일 실시 예에 따른 스택 거리 추정방법과 기존의 스택 거리 계산방법(예로 들면, ONM기법; 미국 일리노이대학교의 논문)을 각각 적용하여 그 결과를 도출하였다. 그 결과는 다음의 도 4 내지 도 7과 같다.For each trace described above, 9 million experiments were performed. That is, for each trace described above, the stack distance estimation method according to an embodiment of the present invention and the existing stack distance calculation method (eg, ONM method; dissertation at the University of Illinois, USA) were respectively applied to derive the result. The results are shown in FIGS. 4 to 7 below.
도 4는 파이낸셜 트레이스에 대한 실험이고, 도 5는 MSR 프로젝트 트레이스에 대한 실험이고, 도 6은 MSR 프린터 트레이스에 대한 실험이고, 도 7은 디스틸드 트레이스에 대한 실험이다.FIG. 4 is an experiment for financial traces, FIG. 5 is an experiment for MSR project traces, FIG. 6 is an experiment for MSR printer traces, and FIG. 7 is an experiment for distilled traces.
도 4 내지 도 7을 참조하면, 본 발명의 일 실시 예에 따른 스택 거리 추정방법은 기존의 스택 거리 계산방법보다 복잡도는 현저히 낮으면서도, 스택 거리 추정 결과는 실제 스택 거리 계산 값과 동일하거나 근사하다. 즉, 본 발명의 일 실시 예에 따른 스택 거리 추정방법은 매우 우수한 성능을 발휘함을 알 수 있다.4 to 7, the stack distance estimation method according to an embodiment of the present invention has significantly lower complexity than the conventional stack distance calculation method, but the stack distance estimation result is the same as or close to the actual stack distance calculation value. . That is, it can be seen that the method for estimating the stack distance according to an embodiment of the present invention exhibits very good performance.
도 8은 본 발명의 일 실시 예에 따른 전자장치의 세부 구성도이다.8 is a detailed configuration diagram of an electronic device according to an embodiment of the present invention.
도 8을 참조하면, 전자장치(800)는 통신부(810), 저장부(820) 및 프로세서(830)를 포함한다.Referring to FIG. 8 , an
통신부(810)는 통신을 수행한다. 통신부(810)는 BT(BlueTooth), WI-FI(Wireless Fidelity), ZigBee, IR(Infrared), NFC(Near Field Communication) 등과 같은 다양한 통신 방식을 통해 외부 전자기기와 통신을 수행할 수 있다.The
저장부(820)는 전자장치(800)를 구동시키기 위한 O/S(Operating System) 소프트웨어 모듈, 디스플레이 영역에서 제공되는 다양한 UI 화면을 구성하기 위한 데이터 등을 저장할 수 있다. The
일 예로, 저장부(820)는 해시 테이블을 저장할 수 있다. 저장부(820)는 해시 테이블에 포함된 적어도 하나의 버킷에 액세스 되는 오브젝트(또는 워크로드 데이터)에 대한 정보를 저장할 수 있다. 여기서, 오브젝트는 LBA(Logical Block Address)일 수 있다. 구체적으로, 저장부(820)는 액세스되는 오브젝트에 대한 인덱스 값, 액세스되는 오브젝트에 대한 고유 인덱스 값 및 액세스되는 오브젝트를 기록할 수 있다. For example, the
프로세서(830)는 저장부(820)에 저장된 각종 프로그램을 이용하여 전자장치(800)의 동작을 전반적으로 제어한다.The
구체적으로, 프로세서(830)는 RAM(831), ROM(832), 메인 CPU(833), 그래픽 처리부(834), 제1 내지 n 인터페이스(835-1 ~ 835-n) 및 버스(836)를 포함한다.Specifically, the
여기서, RAM(831), ROM(832), 메인 CPU(833), 그래픽 처리부(834), 제1 내지 n 인터페이스(835-1 ~ 835-n) 등은 버스(836)를 통해 서로 연결될 수 있다.Here, the
제1 내지 n 인터페이스(835-1 내지 835-n)는 상술한 각종 구성요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.The first to n interfaces 835-1 to 835-n are connected to the various components described above. One of the interfaces may be a network interface connected to an external device through a network.
ROM(832)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(833)는 ROM(832)에 저장된 명령어에 따라 저장부(820)에 저장된 O/S를 RAM(831)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. The
부팅이 완료되면, 메인 CPU(833)는 저장된 각종 어플리케이션 프로그램을 RAM(831)에 복사하고, RAM(831)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.When booting is completed, the
메인 CPU(833)는 저장부(830)에 액세스하여, 저장부(830)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(833)는 저장부(830)에 저장된 각종 프로그램, 컨텐트, 데이터 등을 이용하여 다양한 동작을 수행한다.The
그래픽 처리부(834)는 연산부 및 렌더링부를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다.The
일 예로, 프로세서(830)는 입력되는 오브젝트에 대한 스택 거리를 추정할 수 있다. 예를 들어, 프로세서(830)는 상술한 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득할 수 있다. 여기서, 프로세서(830)는 현재 액세스 되는 오브젝트가 해시 테이블에 기록된 경우, 해시 테이블에 기초하여 상호 참조 거리를 획득하는 과정 및 고유 참조 카운트를 획득하는 과정을 수행할 수 있다. 프로세서(830)는 상호 참조 거리 및 고유 참조 카운트에 기초하여 추정 스택 거리를 획득할 수 있다.For example, the
한편, 상술한 수학식 1에 따르면, 본 발명의 일 실시 예에 따른 스택 거리의 추정 값 는 가 과도하게 큰 경우나, 가 과도하게 작은 경우 과도하게 큰 값이 출력될 수 있다. 이하에서는, 스택 거리의 추정 값 가 과도하게 큰 값으로 출력되는 경우 이를 부드럽게 하는 방안을 추가적으로 설명한다.Meanwhile, according to Equation 1 described above, the estimated value of the stack distance according to an embodiment of the present invention Is is excessively large, or If is excessively small, an excessively large value may be output. In the following, the estimated value of the stack distance If is output as an excessively large value, a method for smoothing it will be additionally described.
일 예로, 아주 오래 전에 액세스된 적이 있던 오브젝트가 액세스되는 경우, 가 과도하게 크게 계산될 수 있다. 또는, 현재 액세스되는 오브젝트의 이전 액세스 전에 고유한 오브젝트들이 반복적으로 액세스된 경우, 가 과도하게 작게 계산될 수 있다. 다만, 이러한 상황은 매우 드물 것이다.For example, if an object that has been accessed a long time ago is accessed, may be calculated excessively large. Or, if unique objects were repeatedly accessed before the previous access of the currently accessed object, may be calculated excessively small. However, this situation will be very rare.
스택 거리의 추정 값 가 과도하게 큰 값으로 출력되는 경우를 스무스(smooth)하게 만드는 방법의 일 예로, 프로세서(120)는 획득된 가 평균 보다 기정의된 배수 이상(예를 들면, 5배)으로 과도하게 큰 경우, 를 기정의된 비율로 감할 수 있다. 여기서, 기정의된 비율은 1/2일 수 있다.An estimate of the stack distance As an example of a method for smoothing the case where is output as an excessively large value, the
다만, 상술한 과도한 크기의 가 기정의된 횟수(예를 들면, 5회)로 연속적으로 출력되는 경우, 프로세서(120)는 과도한 크기의 에 대한 스무딩 없이, 상기 를 그대로 리턴할 수 있다.However, the above-mentioned excessive size If is continuously output a predefined number of times (eg, 5 times), the
도 9는 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법에 대한 흐름도이다.9 is a flowchart of an operating method of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention.
도 9를 참조하면, 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 액세스되는 오브젝트에 대한 인덱스 값, 액세스되는 오브젝트에 대한 고유 인덱스 값 및 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정(S910), 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정(S920), 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값에 기초하여, 현재 액세스되는 오브젝트에 대한 상호 참조 거리를 획득하는 과정(S930), 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값에 기초하여, 고유 참조 카운트를 획득하는 과정(S940) 및 상호 참조 거리 및 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정(S950)을 포함할 수 있다.Referring to FIG. 9 , an operating method of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention records an index value for an accessed object, a unique index value for the accessed object, and an accessed object. The process of storing at least one hash table (S910), the process of obtaining the previous index value of the currently accessed object and the previous unique count value of the currently accessed object based on the hash table (S920), of the currently accessed object Obtaining a cross-reference distance for the currently accessed object based on the current index value and the previous index value of the currently accessed object (S930), the current unique count value of the currently accessed object and the previous uniqueness of the currently accessed object A process of obtaining a unique reference count based on the count value (S940) and a process of obtaining an estimated stack distance based on the cross-reference distance and the unique reference count (S950) may be included.
상술한 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 현재 액세스 되는 오브젝트가 해시 테이블에 기록된 경우, 해시 테이블에 기초하여 상호 참조 거리를 획득하는 과정 및 고유 참조 카운트를 획득하는 과정을 포함할 수 있다.The above-described operating method of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention includes obtaining a cross-reference distance based on a hash table when a currently accessed object is recorded in a hash table, and a unique reference It may include a process of obtaining a count.
이 경우, 상술한 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 현재 액세스 되는 오브젝트가 해시 테이블에 기록되지 않은 경우, 고유 카운트 값을 증가시키는 과정을 포함할 수 있다.In this case, the operating method of the electronic device for efficiently estimating the stack distance according to an embodiment of the present invention described above may include a process of increasing a unique count value when a currently accessed object is not recorded in the hash table. there is.
상술한 본 발명의 일 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 현재 액세스 되는 오브젝트가 해시 테이블에 기록되지 않은 경우, 추정 스택 거리를 0으로 설정하는 과정을 더 포함할 수 있다.The above-described operating method of an electronic device for efficiently estimating a stack distance according to an embodiment of the present invention may further include setting the estimated stack distance to 0 when a currently accessed object is not recorded in the hash table. there is.
상술한 상호 참조 거리는 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값의 차이 값일 수 있다.The aforementioned cross-reference distance may be a difference between a current index value of a currently accessed object and a previous index value of a currently accessed object.
상술한 고유 참조 카운트는 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값의 차이 값일 수 있다.The aforementioned unique reference count may be a difference value between a current unique count value of a currently accessed object and a previous unique count value of a currently accessed object.
상술한 추정 스택 거리는 다음의 수학식에 기초하여 획득될 수 있다.The above-described estimated stack distance may be obtained based on the following equation.
여기서, 는 상기 추정 스택 거리, 는 상기 상호 참조 거리, 는 상기 고유 참조 카운트다.here, is the estimated stack distance, is the cross-reference distance, is the unique reference count.
상술한 본 발명의 일 실시 예에서, 적어도 하나의 해시 테이블에 포함된 이전 인덱스 값은 현재 인덱스 값으로 업데이트 되고, 적어도 하나의 해시 테이블에 포함된 이전 고유 인덱스 값은 현재 고유 카운트 값으로 업데이트 될 수 있다.In one embodiment of the present invention described above, the previous index value included in at least one hash table is updated to a current index value, and the previous unique index value included in at least one hash table is updated to a current unique count value. there is.
상술한 본 발명의 일 실시 예에서, 액세스되는 오브젝트는 LBA일 수 있다.In one embodiment of the present invention described above, an object to be accessed may be an LBA.
또한, 상술한 본 발명의 일 실시 예에서, 적어도 하나의 해시 테이블에 포함된 적어도 하나의 버킷은 이전 인덱스 값, 이전 고유 인덱스 값 및 현재 액세스되는 오브젝트 값을 기록할 수 있다.In addition, in one embodiment of the present invention described above, at least one bucket included in at least one hash table may record a previous index value, a previous unique index value, and a currently accessed object value.
한편, 상술한 본 발명의 다양한 실시 예에 따른 스택 거리를 효율적으로 추정하는 전자장치의 동작방법은 컴퓨터로 실행 가능한 프로그램 코드로 구현되어 다양한 비 일시적 판독 가능 매체(non-transitory computer readable medium)에 저장된 상태로 프로세서에 의해 실행되도록 각 서버 또는 기기들에 제공될 수 있다.Meanwhile, the method of operating an electronic device for efficiently estimating the stack distance according to various embodiments of the present disclosure described above is implemented as computer-executable program code and stored in various non-transitory computer readable media. State can be provided to each server or device to be executed by a processor.
일 예로, 액세스되는 오브젝트에 대한 인덱스 값, 액세스되는 오브젝트에 대한 고유 인덱스 값 및 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정, 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정, 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값에 기초하여, 현재 액세스되는 오브젝트에 대한 상호 참조 거리를 획득하는 과정, 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값에 기초하여, 고유 참조 카운트를 획득하는 과정 및 상호 참조 거리 및 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정을 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.For example, a process of storing at least one hash table in which an index value for an accessed object, a unique index value for the accessed object, and the accessed object are recorded, and a previous index value of the currently accessed object based on the hash table. and obtaining a previous unique count value of the currently accessed object, obtaining a cross-reference distance to the currently accessed object based on the current index value of the currently accessed object and the previous index value of the currently accessed object; Obtaining a unique reference count based on a current unique count value of the currently accessed object and a previous unique count value of the currently accessed object, and obtaining an estimated stack distance based on the cross-reference distance and unique reference count. A non-transitory computer readable medium in which a program to be stored may be provided.
일 예로, 전자장치의 프로세서에 의해 실행되는 경우 상기 전자장치의 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은 액세스되는 오브젝트에 대한 인덱스 값, 액세스되는 오브젝트에 대한 고유 인덱스 값 및 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정, 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정, 현재 액세스되는 오브젝트의 현재 인덱스 값 및 현재 액세스되는 오브젝트의 이전 인덱스 값에 기초하여, 현재 액세스되는 오브젝트에 대한 상호 참조 거리를 획득하는 과정, 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 현재 액세스되는 오브젝트의 이전 고유 카운트 값에 기초하여, 고유 참조 카운트를 획득하는 과정 및 상호 참조 거리 및 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정을 포함할 수 있다.For example, in a non-transitory computer readable medium storing computer instructions that, when executed by a processor of an electronic device, cause an operation of the electronic device to be performed, the operation includes an index value for an object being accessed, and an index value for an object being accessed. Storing at least one hash table that records a unique index value for and accessed objects, obtaining a previous index value of a currently accessed object and a previous unique count value of a currently accessed object based on the hash table; The process of obtaining a cross-reference distance to the currently accessed object based on the current index value of the currently accessed object and the previous index value of the currently accessed object, the current unique count value of the currently accessed object and the currently accessed object It may include obtaining a unique reference count based on a previous unique count value and obtaining an estimated stack distance based on the cross-reference distance and unique reference count.
비 일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.A non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short moment, such as a register, cache, or memory. Specifically, the various applications or programs described above may be stored and provided in non-transitory readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.
이상으로, 본 발명의 실시 예들이 도시되고 설명되었지만, 당업자는 첨부된 청구항들 및 그에 동등한 것들에 의해 정의되는 바와 같은 본 실시 예의 사상 및 범위를 벗어나지 않고 형태 및 세부 사항들에 있어 다양한 변경이 이루어질 수 있음을 이해할 것이다.While embodiments of the present invention have been shown and described above, those skilled in the art may make various changes in form and detail without departing from the spirit and scope of the present embodiments as defined by the appended claims and equivalents thereto. you will understand that you can
전자장치: 100, 800
저장부: 110, 820
프로세서: 120, 830
통신부: 810Electronics: 100, 800
Reservoir: 110, 820
Processor: 120, 830
Department of Communications: 810
Claims (21)
액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 저장부; 및
상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하고,
상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하고,
상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하고,
상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 프로세서;를 포함하는, 스택 거리를 효율적으로 추정하는 전자장치.
In an electronic device for efficiently estimating a stack distance,
a storage unit for storing at least one hash table recording an index value of an accessed object, a unique index value of the accessed object, and the accessed object; and
Based on the hash table, obtain a previous index value of the currently accessed object and a previous unique count value of the currently accessed object;
Based on the current index value of the currently accessed object and the previous index value of the currently accessed object, a cross-reference distance to the currently accessed object ( : Obtain Inter-reference distance),
Based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : acquire a unique reference count),
An electronic device for efficiently estimating a stack distance, comprising: a processor obtaining an estimated stack distance based on the cross-reference distance and the unique reference count.
상기 프로세서는,
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록된 경우, 상기 해시 테이블에 기초하여 상기 상호 참조 거리를 획득하는 과정 및 상기 고유 참조 카운트를 획득하는 과정을 수행하는, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
the processor,
When the currently accessed object is recorded in the hash table, an electronic device for efficiently estimating a stack distance, performing a process of obtaining the cross-reference distance and a process of obtaining the unique reference count based on the hash table .
상기 프로세서는,
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록되지 않은 경우, 상기 고유 카운트 값을 증가시키는, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1 or 2,
the processor,
An electronic device for efficiently estimating a stack distance by increasing the unique count value when the currently accessed object is not recorded in the hash table.
상기 프로세서는,
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록되지 않은 경우, 상기 추정 스택 거리를 0으로 설정하는, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 3,
the processor,
The electronic device for efficiently estimating a stack distance, wherein the estimated stack distance is set to 0 when the currently accessed object is not recorded in the hash table.
상기 상호 참조 거리는,
상기 현재 액세스되는 오브젝트의 상기 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값의 차이 값인, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
The cross-reference distance,
The electronic device for efficiently estimating a stack distance, which is a difference between the current index value of the currently accessed object and the previous index value of the currently accessed object.
상기 고유 참조 카운트는,
상기 현재 액세스되는 오브젝트의 상기 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값의 차이 값인, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
The unique reference count is
The electronic device for efficiently estimating a stack distance, which is a difference between the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object.
상기 추정 스택 거리는 다음의 수학식에 기초하여 획득되는, 스택 거리를 효율적으로 추정하는 전자장치.
여기서, 는 상기 추정 스택 거리, 는 상기 상호 참조 거리, 는 상기 고유 참조 카운트임.
According to claim 1,
The electronic device for efficiently estimating the stack distance, wherein the estimated stack distance is obtained based on the following equation.
here, is the estimated stack distance, is the cross-reference distance, is the unique reference count.
상기 적어도 하나의 해시 테이블에 포함된 이전 인덱스 값은 상기 현재 인덱스 값으로 업데이트 되고,
상기 적어도 하나의 해시 테이블에 포함된 이전 고유 인덱스 값은 상기 현재 고유 카운트 값으로 업데이트 되는, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
The previous index value included in the at least one hash table is updated to the current index value,
The electronic device for efficiently estimating a stack distance, wherein a previous unique index value included in the at least one hash table is updated with the current unique count value.
상기 액세스되는 오브젝트는 LBA(Logical Block Address)인, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
The electronic device for efficiently estimating a stack distance, wherein the accessed object is a Logical Block Address (LBA).
상기 적어도 하나의 해시 테이블에 포함된 적어도 하나의 버킷(bucket)은,
이전 인덱스 값, 이전 고유 인덱스 값 및 현재 액세스되는 오브젝트 값을 기록하는, 스택 거리를 효율적으로 추정하는 전자장치.
According to claim 1,
At least one bucket included in the at least one hash table,
Electronic device for efficiently estimating the stack distance, recording the previous index value, the previous unique index value and the currently accessed object value.
액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정;
상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정;
상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하는 과정;
상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하는 과정; 및
상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정;을 포함하는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
In the operating method of an electronic device for efficiently estimating a stack distance,
storing an index value for an accessed object, a unique index value for the accessed object, and at least one hash table recording the accessed object;
obtaining a previous index value of the currently accessed object and a previous unique count value of the currently accessed object, based on the hash table;
Based on the current index value of the currently accessed object and the previous index value of the currently accessed object, a cross-reference distance to the currently accessed object ( : Obtaining Inter-reference distance);
Based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : process of acquiring a unique reference count); and
A method of operating an electronic device for efficiently estimating a stack distance, including obtaining an estimated stack distance based on the cross-reference distance and the unique reference count.
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록된 경우, 상기 해시 테이블에 기초하여 상기 상호 참조 거리를 획득하는 과정 및 상기 고유 참조 카운트를 획득하는 과정;을 포함하는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
When the currently accessed object is recorded in the hash table, obtaining the cross-reference distance based on the hash table and obtaining the unique reference count; How the device works.
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록되지 않은 경우, 상기 고유 카운트 값을 증가시키는 과정;을 포함하는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11 or 12,
and increasing the unique count value when the currently accessed object is not recorded in the hash table.
상기 현재 액세스 되는 오브젝트가 상기 해시 테이블에 기록되지 않은 경우, 상기 추정 스택 거리를 0으로 설정하는 과정;을 더 포함하는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 13,
The method of operating an electronic device for efficiently estimating a stack distance, further comprising setting the estimated stack distance to 0 when the currently accessed object is not recorded in the hash table.
상기 상호 참조 거리는,
상기 현재 액세스되는 오브젝트의 상기 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값의 차이 값인, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
The cross-reference distance,
An operating method of an electronic device for efficiently estimating a stack distance, which is a difference between the current index value of the currently accessed object and the previous index value of the currently accessed object.
상기 고유 참조 카운트는,
상기 현재 액세스되는 오브젝트의 상기 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값의 차이 값인, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
The unique reference count is
A method of operating an electronic device for efficiently estimating a stack distance, which is a difference between the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object.
상기 추정 스택 거리는 다음의 수학식에 기초하여 획득되는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
여기서, 는 상기 추정 스택 거리, 는 상기 상호 참조 거리, 는 상기 고유 참조 카운트임.
According to claim 11,
The method of operating an electronic device for efficiently estimating the stack distance, wherein the estimated stack distance is obtained based on the following equation.
here, is the estimated stack distance, is the cross-reference distance, is the unique reference count.
상기 적어도 하나의 해시 테이블에 포함된 이전 인덱스 값은 상기 현재 인덱스 값으로 업데이트 되고,
상기 적어도 하나의 해시 테이블에 포함된 이전 고유 인덱스 값은 상기 현재 고유 카운트 값으로 업데이트 되는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
The previous index value included in the at least one hash table is updated to the current index value,
A method of operating an electronic device for efficiently estimating a stack distance, wherein a previous unique index value included in the at least one hash table is updated with the current unique count value.
상기 액세스되는 오브젝트는 LBA(Logical Block Address)인, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
The method of operating an electronic device for efficiently estimating a stack distance, wherein the accessed object is a logical block address (LBA).
상기 적어도 하나의 해시 테이블에 포함된 적어도 하나의 버킷(bucket)은,
이전 인덱스 값, 이전 고유 인덱스 값 및 현재 액세스되는 오브젝트 값을 기록하는, 스택 거리를 효율적으로 추정하는 전자장치의 동작방법.
According to claim 11,
At least one bucket included in the at least one hash table,
A method of operating an electronic device for efficiently estimating a stack distance by recording a previous index value, a previous unique index value, and a currently accessed object value.
액세스되는 오브젝트에 대한 인덱스 값, 상기 액세스되는 오브젝트에 대한 고유 인덱스 값 및 상기 액세스되는 오브젝트를 기록하는 적어도 하나의 해시 테이블을 저장하는 과정;
상기 해시 테이블에 기초하여, 현재 액세스되는 오브젝트의 이전 인덱스 값 및 상기 현재 액세스되는 오브젝트의 이전 고유 카운트 값을 획득하는 과정;
상기 현재 액세스되는 오브젝트의 현재 인덱스 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 인덱스 값에 기초하여, 상기 현재 액세스되는 오브젝트에 대한 상호 참조 거리(: Inter-reference distance)를 획득하는 과정;
상기 현재 액세스되는 오브젝트의 현재 고유 카운트 값 및 상기 현재 액세스되는 오브젝트의 상기 이전 고유 카운트 값에 기초하여, 고유 참조 카운트(: unique reference count)를 획득하는 과정; 및
상기 상호 참조 거리 및 상기 고유 참조 카운트에 기초하여 추정 스택 거리를 획득하는 과정;을 포함하는, 비일시적 컴퓨터 판독 가능 매체.A non-transitory computer-readable medium storing computer instructions that, when executed by a processor of an electronic device, cause an operation of the electronic device to be performed, the operation comprising:
storing an index value for an accessed object, a unique index value for the accessed object, and at least one hash table recording the accessed object;
obtaining a previous index value of the currently accessed object and a previous unique count value of the currently accessed object, based on the hash table;
Based on the current index value of the currently accessed object and the previous index value of the currently accessed object, a cross-reference distance to the currently accessed object ( : Obtaining Inter-reference distance);
Based on the current unique count value of the currently accessed object and the previous unique count value of the currently accessed object, a unique reference count ( : process of acquiring a unique reference count); and
and obtaining an estimated stack distance based on the cross-reference distance and the unique reference count.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210047747A KR102491352B1 (en) | 2021-04-13 | 2021-04-13 | Electronic device for efficiently estimating stack distance and operation method of the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210047747A KR102491352B1 (en) | 2021-04-13 | 2021-04-13 | Electronic device for efficiently estimating stack distance and operation method of the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220141529A KR20220141529A (en) | 2022-10-20 |
KR102491352B1 true KR102491352B1 (en) | 2023-01-20 |
Family
ID=83805044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210047747A KR102491352B1 (en) | 2021-04-13 | 2021-04-13 | Electronic device for efficiently estimating stack distance and operation method of the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102491352B1 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282613B1 (en) * | 1999-04-30 | 2001-08-28 | International Business Machines Corporation | Very efficient technique for dynamically tracking locality of a reference |
-
2021
- 2021-04-13 KR KR1020210047747A patent/KR102491352B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220141529A (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8521986B2 (en) | Allocating storage memory based on future file size or use estimates | |
US9519401B2 (en) | Providing context menu based on predicted commands | |
US20190243773A1 (en) | Method and system for user-space storage i/o stack with user-space flash translation layer | |
US9189152B2 (en) | Touch device and method for dynamically setting touch inactive area, and non-transitory recording medium | |
JP2018537800A (en) | Memory access command transfer descriptor | |
US20210192046A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Managing Malware | |
US20240012683A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Offloading Tasks | |
CN109416621B (en) | Utilizing computer storage systems supporting shared objects to restore free space in non-volatile storage | |
CN114327272B (en) | Data processing method, solid state disk controller and solid state disk | |
WO2018032743A1 (en) | Method for evaluating file fragments, and terminal | |
US20140258347A1 (en) | Grouping files for optimized file operations | |
KR102491352B1 (en) | Electronic device for efficiently estimating stack distance and operation method of the same | |
CN115934002B (en) | Solid state disk access method, solid state disk, storage system and cloud server | |
CN107102900B (en) | Management method of shared memory space | |
US9519497B1 (en) | Managing visual updates | |
US9804968B2 (en) | Storage system and data writing method | |
US11630698B2 (en) | Resource management unit for capturing operating system configuration states and swapping memory content | |
US11593014B2 (en) | System and method for approximating replication completion time | |
US9594657B2 (en) | Method of analysing memory usage and user terminal performing the same | |
CN111913650B (en) | Method and device for determining prediction window period | |
JP7099690B2 (en) | Storage system, storage control device, storage control method, and storage control program | |
JP2020098547A (en) | Information processing apparatus, information processing program, and information processing system | |
CN118535535A (en) | File management method, apparatus, computer device, storage medium, and program product | |
CN113190332A (en) | Method, apparatus and computer program product for processing metadata | |
CN109992211A (en) | A kind of file data management method and relevant apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |