KR102565238B1 - Address mapping apparatus and method considering shared memory and cache interleaving - Google Patents

Address mapping apparatus and method considering shared memory and cache interleaving Download PDF

Info

Publication number
KR102565238B1
KR102565238B1 KR1020210152410A KR20210152410A KR102565238B1 KR 102565238 B1 KR102565238 B1 KR 102565238B1 KR 1020210152410 A KR1020210152410 A KR 1020210152410A KR 20210152410 A KR20210152410 A KR 20210152410A KR 102565238 B1 KR102565238 B1 KR 102565238B1
Authority
KR
South Korea
Prior art keywords
address
cache
addresses
column
caches
Prior art date
Application number
KR1020210152410A
Other languages
Korean (ko)
Other versions
KR20230066905A (en
Inventor
허재영
Original Assignee
제주대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 제주대학교 산학협력단 filed Critical 제주대학교 산학협력단
Priority to KR1020210152410A priority Critical patent/KR102565238B1/en
Publication of KR20230066905A publication Critical patent/KR20230066905A/en
Application granted granted Critical
Publication of KR102565238B1 publication Critical patent/KR102565238B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof

Abstract

본 발명은 어드레스 매핑 장치 및 방법에 관한 것으로, a) 양의 정수인 n개의 캐시에 대한 리니어 어드레스 맵을 작성하는 단계와, b) 규칙에 따라 n개의 캐시 각각의 어드레스를 상호 교환하되, 어드레스 맵의 동일 행에서 상하로 인접하게 위치하는 다른 열의 어드레스가 지정하는 캐시가 서로 다르게 배치되도록 어드레스 맵을 변환하는 단계를 포함할 수 있다.The present invention relates to an address mapping apparatus and method, comprising the steps of: a) creating a linear address map for n caches, which are positive integers; b) exchanging addresses of each of the n caches according to a rule; The method may include converting the address map so that caches designated by addresses of different columns adjacent to each other in the same row are disposed differently.

Description

공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법{Address mapping apparatus and method considering shared memory and cache interleaving}Address mapping apparatus and method considering shared memory and cache interleaving

본 발명은 공유 메모리와 캐시인터리빙을 고려한 어드레스 매핑 장치 및 방법에 관한 것으로, 더 상세하게는 이미지들을 복수의 캐시 메모리에 인터리빙하여 이미지 처리시간을 단축할 수 있는 어드레스 매핑 장치 및 방법에 관한 것이다.The present invention relates to an address mapping apparatus and method considering shared memory and cache interleaving, and more particularly, to an address mapping apparatus and method capable of reducing image processing time by interleaving images in a plurality of cache memories.

최근 스마트폰, 스마트 패드, 노트북, 태블릿 PC 등의 휴대용 정보기기 또는 컴퓨팅 장치의 사용이 증가하고, 휴대용 정보기기를 이용한 이미지 또는 영상의 촬영과 공유가 일반화 되었다.Recently, the use of portable information devices or computing devices such as smart phones, smart pads, laptops, and tablet PCs has increased, and shooting and sharing of images or videos using portable information devices has become common.

사용자가 체감하는 휴대용 정보기기의 성능은 이미지의 표시, 편집이 적용된 이미지가 화면에 얼마나 빨리 표시될 수 있는지가 중요한 척도가 되고 있다.The performance of portable information devices experienced by users is an important criterion for displaying images and how quickly edited images can be displayed on the screen.

특히, 휴대용 정보기기들을 이용하여 촬영된 이미지의 고화질화로 인하여 단일 이미지의 용량은 계속 증가하고 있어, 동일 하드웨어를 사용하더라도 메모리의 최적화된 어드레스 매핑이 중요한 이슈가 되고 있다.In particular, as the capacity of a single image continues to increase due to the high quality of images taken using portable information devices, optimized address mapping of memory has become an important issue even when the same hardware is used.

어드레스 매핑과 관련하여 공개특허 2013-0122417호(이미지 처리 장치의 어드레스 발생기 및 어드레스 발생기의 동작 방법)에는 이미지를 복수의 메모리들에 매핑하는 기술적 구성이 기재되어 있으나, 디램 등의 슬레이브 메모리들에 데이터를 분산 저장하고, 이미지 프로세서에서 각 메모리들에 저장된 동일 이미지의 부분 픽셀 데이터를 호출하여 표시하는 것으로 이미지 처리의 속도 향상에 한계가 있었다.Regarding address mapping, Patent Publication No. 2013-0122417 (Address Generator of Image Processing Apparatus and Operation Method of Address Generator) describes a technical configuration for mapping an image to a plurality of memories, but data is stored in slave memories such as DRAM. There is a limit to improving the speed of image processing by distributing and storing , and calling and displaying partial pixel data of the same image stored in respective memories in an image processor.

도 1은 이미지 프로세싱 유닛이 이미지 처리를 위하여 다수의 캐시를 사용하는 블록 구성도이고, 도 2는 종래 캐시 어드레스 매핑의 예시도이다.FIG. 1 is a block diagram of an image processing unit using a plurality of caches for image processing, and FIG. 2 is an exemplary diagram of conventional cache address mapping.

이미지 프로세싱 유닛(1)은 이미지의 이미지 좌표계(coordinate)의 특정 좌표에 대한 이미지 처리를 위하여 데이터를 읽거나 쓰는 처리를 수행할 수 있으며, 설정된 어드레스 맵을 통해 어드레스 정보와 트랜잭션을 캐시와 이미지 프로세싱 유닛(1)을 연결하는 인터커넥트(2)로 제공하고, 인터커넥트(2)는 제1 내지 제4캐시(C0, C1, C2, C3)의 캐시 맵에서 요청한 어드레스에 해당하는 캐시 어드레스를 확인하여 억세스한다.The image processing unit 1 may perform processing of reading or writing data for image processing on specific coordinates of the image coordinate system of the image, and transfers address information and transactions to the cache and the image processing unit through a set address map. (1) is provided to interconnect 2, and interconnect 2 identifies and accesses cache addresses corresponding to addresses requested in the cache maps of the first through fourth caches C0, C1, C2, and C3. .

상기 인터커넥트(2)의 캐시 맵의 일예를 도 2에 도시하였다.An example of the cache map of the interconnect 2 is shown in FIG. 2 .

도 2에서 C0, C1, C2, C3은 각각 제1 내지 제4캐시를 나타내며, 숫자 원문자 는 설명의 편의를 위하여 트랜잭션의 번호를 부여한 것이다. 숫자 원문자 트랜잭션의 순서를 나타내지는 않으며, 이미지 프로세싱 유닛(1)이 제1 내지 제4캐시(C0,C1,C2,C3) 중 어느 캐시의 어느 어드레스에 해당하는 트랜잭션을 요청하였는지 표시하기 위한 것으로 이해될 수 있다.In FIG. 2, C0, C1, C2, and C3 denote first to fourth caches, respectively, and the original letter numerals are assigned transaction numbers for convenience of description. It does not indicate the order of numeric original character transactions, and is intended to indicate which address of which cache, among the first to fourth caches C0, C1, C2, and C3, the image processing unit 1 requested a transaction. can be understood

000, 0040 등의 숫자열은 메모리의 어드레스인 16진수 데이터이다.A sequence of numbers such as 000 and 0040 is hexadecimal data that is an address of a memory.

위와 같은 예에서, 캐시 맵은 리니어 어드레스 맵이며, 이미지의 픽셀 데이터를 컬럼 방향으로 제1 내지 제4캐시(C0,C1,C2,C3)에 순차적으로 저장한 것을 의미한다.In the above example, the cache map is a linear address map, and means that pixel data of an image is sequentially stored in the first to fourth caches C0, C1, C2, and C3 in a column direction.

즉, 인접한 트랜잭션 번호들을 각기 다른 캐시에 순차적으로 리니어하게 배열한다.That is, adjacent transaction numbers are sequentially and linearly arranged in different caches.

이와 같은 상태에서, 이미지 프로세싱 유닛(1)의 트랜잭션이 도면상 수직 방향의 어드레스를 순차 지정하는 경우에는, 제1캐시(C0)만이 사용되며 제2 내지 제4캐시는 사용되지 않게 된다.In this state, when transactions of the image processing unit 1 sequentially specify addresses in the vertical direction on the drawing, only the first cache C0 is used and the second to fourth caches are not used.

예를 들어 트랜잭션이 지정하는 데이터가 숫자 원문자 0, 8, 16, 24의 순으로 지정될 때, 해당 데이터를 저장하는 제1캐시(C0)에만 트래픽이 발생하며, 제2 내지 제4캐시(C1, C2, C3)는 전혀 사용되지 않으며, 이는 상대적으로 이미지 처리속도를 지연시키는 원인이 된다.For example, when the data designated by the transaction is designated in the order of the original numbers 0, 8, 16, and 24, traffic occurs only in the first cache C0 that stores the data, and the second to fourth caches ( C1, C2, and C3) are not used at all, which causes a relatively slow image processing speed.

영상 처리를 수행하는 휴대용 정보기기에서는 이미지 프로세싱 유닛(1), 이미지의 크기 조정 또는 회전을 담당하는 스케일러 또는 로테이터, 디스플레이에 이미지를 표시하는 디스플레이 제어기가 각각 캐시를 공유하는 마스터로 동작함으로써, 위의 이미지 처리의 지연은 더욱 심화된다.In the portable information device that performs image processing, the image processing unit 1, the scaler or rotator responsible for resizing or rotating images, and the display controller displaying images on the display operate as masters sharing a cache, so that the above The delay in image processing is further intensified.

상기와 같은 문제점을 감안한 본 발명이 해결하고자 하는 과제는, 종래의 리니어 어드레스 매핑에서 하나의 캐시에 트랜잭션이 집중되는 현상을 해소할 수 있도록 하는 캐시 어드레스 매핑 방법을 제공함 있다.In view of the above problems, an object to be solved by the present invention is to provide a cache address mapping method capable of solving a phenomenon in which transactions are concentrated in one cache in the conventional linear address mapping.

또한, 본 발명은 다수의 마스터 유닛들이 메모리를 공유하는 시스템 환경에서, 본 발명의 캐시 어드레스 매핑 방법을 적절하게 수행할 수 있는 장치를 제공함에 다른 목적이 있다.Another object of the present invention is to provide an apparatus capable of appropriately performing the cache address mapping method of the present invention in a system environment in which a plurality of master units share a memory.

상기와 같은 기술적 과제를 해결하기 위한 본 발명의 일측면에 따른 어드레스 매핑 방법은, a) 양의 정수인 n개의 캐시에 대한 리니어 어드레스 맵을 작성하는 단계와, b) 규칙에 따라 n개의 캐시 각각의 어드레스를 상호 교환하되, 어드레스 맵의 동일 행에서 상하로 인접하게 위치하는 다른 열의 어드레스가 지정하는 캐시가 서로 다르게 배치되도록 어드레스 맵을 변환하는 단계를 포함할 수 있다.An address mapping method according to an aspect of the present invention for solving the above technical problem includes the steps of a) creating a linear address map for n caches that are positive integers, and b) each of the n caches according to a rule. The method may include converting the address map so that addresses are mutually exchanged, but caches designated by addresses of different columns located vertically and adjacently in the same row of the address map are differently disposed.

본 발명의 실시예에서, 상기 b) 단계는, 서로 다른 캐시의 어드레스를 상호 교환하거나, 상기 리니어 어드레스 맵의 특정 열을 행이 감소하는 방향 또는 증가하는 방향으로 시프트할 수 있다.In an embodiment of the present invention, in step b), addresses of different caches may be interchanged or a specific column of the linear address map may be shifted in a direction in which rows decrease or increases.

본 발명의 실시예에서, 어드레스의 상호 교환은, 상기 리니어 어드레스 맵을 열마다, 서로 다른 캐시의 어드레스를 상호 교환할 수 있다.In an embodiment of the present invention, addresses of different caches may be exchanged for each column of the linear address map.

본 발명의 실시예에서, 상기 리니어 어드레스 맵의 시프트는, 상기 리니어 어드레스 맵의 열마다, 서로 다른 정도로 시프트할 수 있다.In an embodiment of the present invention, the linear address map may shift to a different degree for each column of the linear address map.

본 발명의 실시예에서, 어드레스의 상호 교환 또는 어드레스의 시프트는, 첫 번째 열을 제외한 두 번째 열부터 수행될 수 있다.In an embodiment of the present invention, the interchange of addresses or the shift of addresses may be performed from the second column except for the first column.

본 발명의 실시예에서, 어드레스의 상호 교환 또는 어드레스의 시프트는, 첫 번째 열을 포함하여 n개의 열에 대해 이루어지고, 이후의 열들에 대하여 동일하게 반복 적용되어, n+1 번째 열은 첫 번째 열과 같이 교환 또는 시프트가 이루어지지 않을 수 있다.In an embodiment of the present invention, address interchange or address shift is performed for n columns including the first column, and the same is repeatedly applied to subsequent columns, so that the n+1 column corresponds to the first column. Likewise, exchanges or shifts may not be made.

또한, 본 발명의 다른 측면에 따른 어드레스 매핑 장치는, 이미지 좌표를 캐시에 어드레스 매핑하기 위하여 리니어 어드레스를 연산하는 리니어 어드레스 산출부와, 상기 리니어 어드레스 산출부의 산출 결과를 입력 받아 상기 방법들 중 어느 한 방법의 규칙에 따라 어드레스를 변경하는 어드레스 변환부와, 상기 리니어 어드레스 산출부 또는 상기 어드레스 변환부의 어드레스를 선택하여 출력하는 멀티플렉서를 포함할 수 있다.Further, an address mapping apparatus according to another aspect of the present invention includes a linear address calculation unit that calculates a linear address in order to map image coordinates to a cache, and receives a calculation result of the linear address calculation unit and performs one of the above methods. It may include an address conversion unit that changes an address according to a rule of a method, and a multiplexer that selects and outputs an address of the linear address calculation unit or the address conversion unit.

본 발명은, 리니어 어드레스 매핑 상태에서 규칙을 정하여, 캐시간 어드레스를 교환하는 새로운 방식을 제안하여, 트랜잭션이 지정하는 방향에 무관하게 하나의 캐시에 트래픽이 집중되는 것을 방지할 수 있는 효과가 있다.The present invention proposes a new method of exchanging cache addresses by determining rules in a linear address mapping state, and has an effect of preventing traffic from being concentrated in one cache regardless of a direction specified by a transaction.

본 발명은, 다수의 마스터 유닛이 메모리를 공유하는 상태에서 각 마스터의 어드레스 매핑 정보를 일치시킬 수 있는 어드레스 매핑 장치를 제공함으로써, 다수의 마스터 유닛 중 일부가 리니어 어드레스 매핑 정보만을 가지고 있더라도, 캐시간 어드레스 교환 방식을 적용할 수 있어, 트랜잭션이 지정하는 방향에 무관하게 하나의 캐시에 트래픽이 집중되는 것을 방지하여 이미지 처리 속도 저하를 방지할 수 있는 효과가 있다.The present invention provides an address mapping device capable of matching the address mapping information of each master in a state in which a plurality of master units share a memory, so that even if some of the plurality of master units have only linear address mapping information, cache time Since an address exchange method can be applied, it is possible to prevent traffic from being concentrated in one cache regardless of the direction specified by a transaction, thereby preventing image processing speed deterioration.

도 1은 종래 다수의 캐시를 포함하는 이미지 프로세싱 유닛의 블록 구성도이다.
도 2는 종래 캐시 어드레스 맵의 예시도로서, 리니어 어드레스 매핑의 예시도이다.
도 3은 본 발명 어드레스 매핑 방법으로 작성된 어드레스 맵의 예시도이다.
도 4는 시프트 방식의 예시도이다.
도 5는 본 발명의 캐시 어드레스 교환의 예시도이다.
도 6은 본 발명이 적용되는 어드레스 매핑 장치가 적용된 시스템의 예시도이다.
도 7은 조건에 따라 LIAM을 CIAM으로 변환하거나, LIAM을 유지하는 하드웨어 구성의 예시도이다.
1 is a block diagram of a conventional image processing unit including a plurality of caches.
2 is an exemplary view of a conventional cache address map, which is an example of linear address mapping.
3 is an exemplary view of an address map created by the address mapping method of the present invention.
4 is an exemplary diagram of a shift method.
5 is an exemplary diagram of the cache address exchange of the present invention.
6 is an exemplary view of a system to which an address mapping device to which the present invention is applied is applied.
7 is an exemplary diagram of a hardware configuration that converts LIAM to CIAM or maintains LIAM according to conditions.

본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라, 여러가지 형태로 구현될 수 있고 다양한 변경을 가할 수 있다. 단지, 본 실시예에 대한 설명은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위하여 제공되는 것이다. 첨부된 도면에서 구성요소는 설명의 편의를 위하여 그 크기를 실제보다 확대하여 도시한 것이며, 각 구성요소의 비율은 과장되거나 축소될 수 있다.In order to fully understand the configuration and effects of the present invention, preferred embodiments of the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, and may be implemented in various forms and various changes may be made. However, the description of the present embodiment is provided to complete the disclosure of the present invention and to completely inform those skilled in the art of the scope of the invention to which the present invention belongs. In the accompanying drawings, the size of the components is enlarged from the actual size for convenience of description, and the ratio of each component may be exaggerated or reduced.

'제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 상기 구성요소는 위 용어에 의해 한정되어서는 안 된다. 위 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 수 있다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다. 또한, 단수의 표현은 문맥상 명백하게 다르게 표현하지 않는 한, 복수의 표현을 포함한다. 본 발명의 실시예에서 사용되는 용어는 다르게 정의되지 않는 한, 해당 기술분야에서 통상의 지식을 가진 자에게 통상적으로 알려진 의미로 해석될 수 있다.Terms such as 'first' and 'second' may be used to describe various elements, but the elements should not be limited by the above terms. The above terms may only be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a 'first element' may be named a 'second element', and similarly, a 'second element' may also be named a 'first element'. can Also, singular expressions include plural expressions unless the context clearly indicates otherwise. Terms used in the embodiments of the present invention may be interpreted as meanings commonly known to those skilled in the art unless otherwise defined.

이하에서는, 도면을 참조하여 본 발명의 일실시예에 따른 어드레스 매핑 장치 및 방법에 대하여 설명한다.Hereinafter, an address mapping apparatus and method according to an embodiment of the present invention will be described with reference to the drawings.

도 3은 본 발명의 바람직한 실시예에 따른 어드레스 매핑 방법에 의해 작성된 캐시 어드레스 맵의 구성도이다.3 is a block diagram of a cache address map created by an address mapping method according to a preferred embodiment of the present invention.

도 3을 참조하면 본 발명은 특정한 규칙에 따라 리니어 어드레스 매핑에서 캐시간 어드레스 교환이 이루어진다.Referring to FIG. 3, in the present invention, cached address exchange is performed in linear address mapping according to a specific rule.

앞서 설명한 도 2는 리니어 어드레스 매핑된 캐시 어드레스 맵이며, 이에 대하여 도 3의 맵은 숫자 원문자로 표기된 트랜잭션 8과 9가 서로 교환되고, 트랜잭션 10과 11이 서로 교환된 상태를 나타낸다.2 described above is a linear address mapped cache address map, and the map of FIG. 3 shows a state in which transactions 8 and 9 denoted by original numbers are exchanged with each other and transactions 10 and 11 are exchanged with each other.

또한, 트랜잭션 16과 18, 17과 19가 서로 교환된 것을 확인할 수 있다.Also, it can be seen that transactions 16 and 18 and 17 and 19 are exchanged.

도 3의 예는 제1 내지 제4캐시(C0, C1, C2, C3)를 사용할 때의 예이며, 캐시의 수에 따라 적용되는 규칙도 가변되어 적용될 수 있다.The example of FIG. 3 is an example when the first to fourth caches C0, C1, C2, and C3 are used, and rules applied according to the number of caches may be varied and applied.

이러한 교환 규칙에 대하여 좀 더 구체적으로 살펴보면 다음과 같다.A more detailed look at these exchange rules is as follows.

먼저, 도 3에는 8개의 행(COL)과 32개의 열(ROW)을 가지는 행렬 형태의 캐시 어드레스 맵이 도시되어 있으며, 8개의 행은 제1캐시(C0)부터 제4캐시(C3)까지 2회 반복하여 지정된 어드레스가 기재되어 있다. 이러한 배치는 하나의 행에 128 픽셀의 이미지 데이터에 대한 어드레스를 지정하는 예이다.First, FIG. 3 shows a matrix-type cache address map having 8 rows (COL) and 32 columns (ROW), and the 8 rows are 2 from the first cache (C0) to the fourth cache (C3). An address designated repeatedly is described. This arrangement is an example of addressing image data of 128 pixels in one row.

도 3에서 첫 번째 열(ROW 0)은 리니어 어드레스 맵과 동일한 배치를 가지며, 두 번째 열(ROW 1)은 제1캐시(C0)와 제2캐시(C1)의 어드레스 배치 상호 교환하고, 제3캐시(C2)와 제4캐시(C3)의 어드레스 배치를 상호 교환한다.In FIG. 3, the first column (ROW 0) has the same arrangement as the linear address map, the second column (ROW 1) exchanges the address arrangements of the first cache C0 and the second cache C1, and the third Address arrangements of the cache C2 and the fourth cache C3 are interchanged.

또한, 세 번째 열(ROW 2)은 제1캐시(C0)와 제3캐시(C2)의 어드레스를 서로 교환하며, 제2캐시(C1)와 제4캐시(C3)의 어드레스를 상호 교환한다.Further, in the third column ROW 2 , the addresses of the first cache C0 and the third cache C2 are exchanged, and the addresses of the second cache C1 and the fourth cache C3 are exchanged.

그리고 네 번째 열(ROW 3)은 제1캐시(CO)와 제4캐시(C3), 제2캐시(C1)와 제3캐시(C2)의 어드레스를 상호 교환한다.In the fourth column ROW 3 , the addresses of the first cache CO and the fourth cache C3 and the second cache C1 and the third cache C2 are interchanged.

따라서 캐시 어드레스 맵에서 동일한 행에서 수직 방향(열 방향)으로 연속되는 트랜잭션이 발생하더라도 하나의 캐시에 트래픽이 집중되는 것을 방지할 수 있다.Accordingly, even if consecutive transactions occur in the vertical direction (column direction) in the same row in the cache address map, traffic concentration in one cache can be prevented.

예를 들어 트랜잭션 0, 9, 18, 27이 순차적으로 발생하더라도, 제1캐시(C0), 제2캐시(C1), 제3캐시(C2), 제4캐시(C3)에 순차적으로 트래픽이 발생하게 되기 때문에 트래픽의 집중에 따른 처리 속도 저하를 방지할 수 있게 된다.For example, even if transactions 0, 9, 18, and 27 occur sequentially, traffic is sequentially generated in the first cache (C0), the second cache (C1), the third cache (C2), and the fourth cache (C3). Therefore, it is possible to prevent a decrease in processing speed due to concentration of traffic.

이를 일반화하면, 다음과 같이 정의할 수 있다. n개의 캐시를 가지는 시스템에서, 리니어 어드레스 맵의 첫 번째 열을 제외한 다른 열들에 대하여 서로 다른 캐시간 어드레스를 교환하되, 각 열들의 동일 행에서 이웃한 열들이 지정하는 캐시가 서로 다르게 배치되는 것으로 한다.Generalizing this, it can be defined as: In a system with n caches, different cache addresses are exchanged for columns other than the first column of the linear address map, but caches designated by adjacent columns in the same row of each column are arranged differently. .

즉, 도 3의 예에서 네 번째 열(ROW3)의 어드레스 교환 방식은 제1캐시(CO)와 제4캐시(C3)의 어드레스를 교환하고, 제2캐시(C1)와 제3캐시(C2)를 교환하는 방식으로 설명하였으나, 두 번째 열과 같이 제1캐시(C0)와 제2캐시(C1)의 어드레스 배치 상호 교환하고, 제3캐시(C2)와 제4캐시(C3)의 어드레스 배치를 상호 교환할 수 도 있다.That is, in the example of FIG. 3, the address exchange method of the fourth column (ROW3) exchanges the addresses of the first cache (CO) and the fourth cache (C3), and exchanges the addresses of the second cache (C1) and the third cache (C2). , but as shown in the second column, the address arrangements of the first cache (C0) and the second cache (C1) are exchanged, and the address arrangements of the third cache (C2) and the fourth cache (C3) are mutually exchanged. can also be exchanged.

이때 동일 행의 열 방향으로 연속적으로 발생한 트랜잭션에 의해 제1캐시(C0), 제2캐시(C1), 제3캐시(C2), 다시 제2캐시(C1)의 순으로 트래픽이 발생하게 되어 앞서 설명한 예에 비해서는 처리 속도가 저하될 수 있으나, 리니어 어드레스 맵에 비해서는 트래픽이 하나의 캐시에 집중되는 것을 방지할 수 있다.At this time, traffic is generated in the order of the first cache (C0), the second cache (C1), the third cache (C2), and then the second cache (C1) due to transactions that occur consecutively in the column direction of the same row. Compared to the example described above, processing speed may be reduced, but traffic may be prevented from being concentrated in one cache compared to the linear address map.

또한, 도 3의 예에서는 규칙에 따라 서로 다른 캐시의 어드레스를 상호 교환하는 것으로 설명하였으나, 해당 열에서 시프트 방식을 사용할 수도 있다.Also, in the example of FIG. 3, it has been described that addresses of different caches are mutually exchanged according to a rule, but a shift method may be used in a corresponding column.

도 4는 시프트 방식의 예시도이다.4 is an exemplary diagram of a shift method.

도 4를 참조하면 본 발명의 캐시 어드레스 매핑 방법의 다른 예로서, 리니어 어드레스 맵에서 첫 번째 열은 리디어 어드레스 맵과 동일하게 두고, 두 번째 어드레스 맵부터 열마다 다른 시프트 값으로 어드레스를 시프트하여 특정 행에 대한 수직 방향의 트랜잭션이 발생하는 경우에도 특정한 캐시에 트래픽이 집중되는 것을 방지할 수 있다.Referring to FIG. 4, as another example of the cache address mapping method of the present invention, in the linear address map, the first column is the same as in the linear address map, and the address is shifted with a different shift value for each column from the second address map to a specific row. Even when a transaction in the vertical direction occurs, traffic concentration on a specific cache can be prevented.

예를 들어 두 번째 열(ROW 1)은 행의 번호가 줄어드는 방향으로 1만큼씩 시프트되고, 세 번째 열(ROW 2)은 행의 번호가 줄어드는 방향으로 2만큼씩 어드레스를 시프트한 상태를 나타낸다.For example, the second column (ROW 1) indicates a state in which the address is shifted by 1 in a decreasing row number direction, and the third column (ROW 2) indicates a state in which an address is shifted by 2 in a decreasing row number direction.

네 번째 열(ROW 3)은 역시 행의 번호가 줄어드는 방향으로 3만큼씩 어드레스를 시프트한 상태이다.The fourth column (ROW 3) is also a state in which the address is shifted by 3 in the direction of decreasing row numbers.

도면에 도시하지는 않았으나, 앞서 설명한 바와 같이 본 발명의 예는 제1 내지 제4캐시(C0, C1, C2, C3) 네 개의 캐시를 사용하는 것으로, 다섯 번째 열(ROW4는 첫 번째 열(ROW 0)과 동일하게 리니어 어드레스 맵을 그대로 사용하고, 여섯 번째 열(ROW 5)는 두 번째 열(ROW 1)와 동일하게 처리될 수 있음은 쉽게 이해할 수 있다.Although not shown in the figure, as described above, the example of the present invention uses four caches, the first to fourth caches (C0, C1, C2, C3), the fifth column (ROW4 is the first column (ROW 0) ), the linear address map is used as it is, and the sixth column (ROW 5) can be processed identically to the second column (ROW 1).

이와 같은 시프트 방식은 행의 번호가 줄어드는 방향이 아닌 행의 번호가 증가하는 방향으로 이루어질 수 있으며, 시프트 정도도 필요에 따라 열마다 다르게 적용할 수 있다.Such a shift method may be performed in a direction in which row numbers increase instead of in a direction in which row numbers decrease, and a shift degree may be applied differently for each column as necessary.

시프트 방식을 사용하더라도, 적어도 동일한 행에 속하는 각 열의 어드레스 중 서로 인접한 위치의 어드레스는 서로 다른 캐시의 어드레스인 것으로 한다.Even if the shift method is used, it is assumed that at least the addresses of adjacent positions among the addresses of each column belonging to the same row are addresses of different caches.

도 4의 예에서 두 번째 행(COL 1)에서 열방향으로 연속적인 트랜잭션이 발생하더라도 사용되는 캐시는 제2캐시(C1), 제3캐시(C2), 제4캐시(C3), 제1캐시(C0)의 순이 되어, 하나의 캐시에 트래픽이 집중되는 것을 방지할 수 있다.In the example of FIG. 4 , even if consecutive transactions occur in the column direction in the second row (COL 1), the caches used are the second cache C1, the third cache C2, the fourth cache C3, and the first cache. In the order of (C0), traffic concentration in one cache can be prevented.

이처럼 본 발명은 리니어 어드레스 맵에서 열방향으로 연속적인 트랜잭션이 발생하더라도, 캐시간 어드레스의 교환에 의해 하나의 캐시에 트래픽이 집중되는 것을 방지할 수 있게 된다.As such, the present invention can prevent traffic from being concentrated in one cache by exchanging cache addresses even when consecutive transactions occur in the column direction in the linear address map.

도 5는 본 발명의 캐시 어드레스 교환의 예시도이다.5 is an exemplary diagram of the cache address exchange of the present invention.

도 5를 참조하면, 캐시 리니어 어드레스 맵(LIAM)의 어드레스는 태그, 인덱스, 캐시, 오프셋 값을 가지며, 앞서 도 3 및 도 4에서 트랜잭션 9에 해당하는 제2캐시(C1)의 어드레스를 제1캐시(C0)의 어드레스로 교환하는 과정을 나타낸다.Referring to FIG. 5, the address of the cache linear address map (LIAM) has tag, index, cache, and offset values, and the address of the second cache C1 corresponding to transaction 9 in FIGS. 3 and 4 is the first. It shows the process of exchanging with the address of the cache (C0).

트랜잭션 9에 해당하는 메모리의 물리적 주소는 0X240이며, 제2캐시(C1)를 나타내는 캐시 01에서 제1캐시(C0)의 어드레스와 교환하는 것을 의미한다. 이는 도 3의 예와 동일하다.The physical address of the memory corresponding to the transaction 9 is 0X240, which means exchange with the address of the first cache C0 in the cache 01 representing the second cache C1. This is the same as the example of FIG. 3 .

도 5에서 CIAM 어드레스는 본 발명에서 제안 및 명명한 캐시 인터리브드 어드레스 맵(Cache Interleaved Adrress Map)을 나타낸다. Flip은 캐시의 변경을 뜻한다.In FIG. 5, the CIAM address represents a cache interleaved address map proposed and named in the present invention. Flip means to change the cache.

이와 같이 본 발명은 종래 리니어 어드레스 맵(LIAM)의 단점을 보완하여 특정한 방향의 연속적인 트랜잭션이 발생하더라도 특정한 캐시에 트래픽이 집중되는 것을 방지할 수 있게 된다.As described above, the present invention compensates for the disadvantages of the conventional linear address map (LIAM) and prevents traffic from being concentrated in a specific cache even when continuous transactions in a specific direction occur.

위의 예에서는 도 1에 도시한 예와 같이 하나의 마스터 유닛(이미지 프로세싱 유닛)을 사용할 때의 예이며, 다수의 마스터 유닛이 메모리를 공유하는 일반적인 시스템에 본 발명에 적용하기 위해서는 LIAM과 본 발명 CIAM을 상호 변환하는 기술적 수단이 요구된다.The above example is an example of using one master unit (image processing unit) as shown in FIG. 1, and in order to apply the present invention to a general system in which a plurality of master units share memory, LIAM and the present invention Technical means to interconvert CIAM are required.

도 6은 본 발명이 적용되는 어드레스 매핑 장치가 적용된 시스템의 예시도이다.6 is an exemplary view of a system to which an address mapping device to which the present invention is applied is applied.

도 6에 도시한 바와 같이 본 발명은 다수의 마스터들을 포함하는 시스템에 적용될 수 있다.As shown in FIG. 6, the present invention can be applied to a system including multiple masters.

다수의 마스터의 예는 각각 이미지 프로세서(10), 스케일러 또는 로테이터를 포함하는 편집기(20), 디스플레이 제어기(30)를 포함할 수 있다.Examples of multiple masters may include an image processor 10, an editor 20 including a scaler or rotator, and a display controller 30, respectively.

이미지 프로세서(10), 편집기(20) 및 제어기(30)는 각각 기존의 캐시 어드레스 매핑 방식인 리니어 어드레스 맵(LIAM)을 사용하는 것으로 하며, 각각의 어드레스 맵에서 LIAM과 본 발명에서 제안한 CIAM을 상호 변환할 수 있는 기술적 수단을 추가하는 것으로 한다.The image processor 10, the editor 20, and the controller 30 each use a linear address map (LIAM), which is an existing cache address mapping method, and LIAM and CIAM proposed in the present invention are mutually used in each address map. It is assumed that a technical means capable of conversion is added.

이미지 프로세서(10)의 어드레스 맵(11)에는 CIAM 변환기(12)를 포함하며, CIAM 변환기(12)를 이용하여 LIAM 또는 CIAM 방식으로 매핑을 할 수 있다.The address map 11 of the image processor 10 includes the CIAM converter 12, and the CIAM converter 12 can be used for mapping using LIAM or CIAM.

도 6에서는 이미지 프로세서(10)에서 공유 메모리(40)의 특정 주소에 CIAM 방식으로 쓰기에 대한 트랜잭션을 생성하고, 이를 읽는 편집기(20)의 어드레스 맵(21)은 CIAM 방식으로 읽고(22), LIAM 방식의 읽기(32) 트랜잭션만 수행하는 디스플레이 제어기(30)의 어드레스 맵(31)에서 매핑이 가능하도록 LIAM 방식으로 쓰기(23)에 대한 트랜잭션을 생성할 수 있다.In FIG. 6, the image processor 10 generates a transaction for writing to a specific address of the shared memory 40 in the CIAM method, and the address map 21 of the editor 20 that reads the transaction is read in the CIAM method (22), A write transaction 23 may be generated in the LIAM method so that mapping is possible in the address map 31 of the display controller 30 that performs only the read 32 transaction in the LIAM method.

이처럼 본 발명은 다수의 마스터들이 공유 메모리(40)를 공유할 때, LIAM 방식과 CIAM 방식을 적절하게 상호 변경하면서, 마스터들간에 통신을 수행할 수 있다.As such, when a plurality of masters share the shared memory 40, the present invention can perform communication between the masters while appropriately changing the LIAM method and the CIAM method.

상기 LIAM과 CIAM을 변경하는 기술적 수단은 하드웨어 또는 소프트웨어가 될 수 있다.Technical means for changing the LIAM and CIAM may be hardware or software.

CIAM은 LIAM을 정해진 규칙에 따라 어드레스의 상호 교환 또는 시프트를 수행하는 것으로, 이러한 규칙을 필요에 따라 적용할 수 있는 구성이면 본 발명에 적용 가능하다.CIAM performs mutual exchange or shift of addresses according to predetermined rules in LIAM, and any configuration that can apply these rules as needed is applicable to the present invention.

도 7은 조건에 따라 LIAM을 CIAM으로 변환하거나, LIAM을 유지하는 하드웨어 구성의 예시도이다.7 is an exemplary diagram of a hardware configuration that converts LIAM to CIAM or maintains LIAM according to conditions.

도 7을 참고하면, 이미지의 좌표를 LIAM 어드레스로 변환하는 어드레스 산출부(100)와, 주어진 조건에 따라 LIAM 어드레스 산출부(100)의 리니어 어드레스 중 일부를 상호 교환 또는 시프트하는 CIAM 어드레스 변환부(200)와, 입력된 조건에 따라 상기 LIAM 어드레스 산출부(100) 또는 CIAM 어드레스 변환부(200)의 어드레스를 선택하는 멀티플렉서(300)를 포함할 수 있다.Referring to FIG. 7 , an address calculator 100 that converts coordinates of an image into a LIAM address and a CIAM address converter that interchanges or shifts some of the linear addresses of the LIAM address calculator 100 according to given conditions ( 200) and a multiplexer 300 that selects an address of the LIAM address calculation unit 100 or the CIAM address conversion unit 200 according to input conditions.

이와 같은 구성에 의하여 본 발명은 LIAM을 CIAM으로 빠르게 변환할 수 있으며, 속도 저하 없이 정해진 규칙에 따르는 어드레스 매핑이 가능하게 된다.With this configuration, the present invention can quickly convert LIAM to CIAM, and address mapping according to a set rule is possible without slowing down.

이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 청구범위에 의해서 정해져야 할 것이다.Embodiments according to the present invention have been described above, but these are merely examples, and those skilled in the art will understand that various modifications and embodiments of equivalent range are possible therefrom. Therefore, the true technical protection scope of the present invention should be defined by the following claims.

10:이미지 프로세서 20:편집기
30:디스플레이 제어기
10: image processor 20: editor
30: display controller

Claims (7)

이미지 프로세서에서 수행되는 어드레스 매핑 방법에 있어서,
a) 양의 정수인 n개의 캐시에 대한 리니어 어드레스 맵을 작성하는 단계; 및
b) 규칙에 따라 n개의 캐시 각각의 어드레스를 상호 교환하되, 어드레스 맵의 동일 행에서 상하로 인접하게 위치하는 다른 열의 어드레스가 지정하는 캐시가 서로 다르게 배치되도록 어드레스 맵을 변환하는 단계를 포함하는 어드레스 매핑 방법.
In the address mapping method performed in the image processor,
a) creating linear address maps for n caches which are positive integers; and
b) exchanging the addresses of each of the n caches according to a rule, but converting the address map so that caches designated by addresses of different columns located vertically and adjacently in the same row of the address map are disposed differently from each other; mapping method.
제1항에 있어서,
상기 b) 단계는,
서로 다른 캐시의 어드레스를 상호 교환하거나,
상기 리니어 어드레스 맵의 특정 열을 행이 감소하는 방향 또는 증가하는 방향으로 시프트하는 것을 특징으로 하는 어드레스 매핑 방법.
According to claim 1,
In step b),
exchange addresses of different caches, or
and shifting a specific column of the linear address map in a direction in which rows decrease or in a direction in which rows increase.
제2항에 있어서,
어드레스의 상호 교환은,
상기 리니어 어드레스 맵을 열마다, 서로 다른 캐시의 어드레스를 상호 교환하는 것을 특징으로 하는 어드레스 매핑 방법.
According to claim 2,
The mutual exchange of addresses is
and exchanging addresses of different caches for each column of the linear address map.
제2항에 있어서,
상기 리니어 어드레스 맵의 시프트는,
상기 리니어 어드레스 맵의 열마다, 서로 다른 정도로 시프트하는 것을 특징으로 하는 어드레스 매핑 방법.
According to claim 2,
The shift of the linear address map,
The address mapping method characterized in that each column of the linear address map shifts to a different degree.
제2항에 있어서,
어드레스의 상호 교환 또는 어드레스의 시프트는,
첫 번째 열을 제외한 두 번째 열부터 수행되는 어드레스 매핑 방법.
According to claim 2,
The interchange of addresses or shifts of addresses is
Address mapping method performed from the second column, excluding the first column.
제5항에 있어서,
어드레스의 상호 교환 또는 어드레스의 시프트는,
첫 번째 열을 포함하여 n개의 열에 대해 이루어지고,
이후의 열들에 대하여 동일하게 반복 적용되어,
n+1 번째 열은 첫 번째 열과 같이 교환 또는 시프트가 이루어지지 않는 것을 특징으로 하는 어드레스 매핑 방법.
According to claim 5,
The interchange of addresses or shifts of addresses is
It is done for n columns including the first column,
The same is repeatedly applied to subsequent columns,
An address mapping method characterized in that the n+1th column is not exchanged or shifted like the first column.
이미지 좌표를 캐시에 어드레스 매핑하기 위하여 리니어 어드레스를 연산하는 리니어 어드레스 산출부;
상기 리니어 어드레스 산출부의 산출 결과를 입력 받아 제1항 내지 제6항 중 어느 한 항의 규칙에 따라 어드레스를 변경하는 어드레스 변환부; 및
상기 리니어 어드레스 산출부 또는 상기 어드레스 변환부의 어드레스를 선택하여 출력하는 멀티플렉서를 포함하는 어드레스 매핑 장치.
a linear address calculation unit that calculates a linear address to map image coordinates to a cache;
an address conversion unit receiving the calculation result of the linear address calculation unit and changing an address according to the rule of any one of claims 1 to 6; and
and a multiplexer configured to select and output an address of the linear address calculation unit or the address conversion unit.
KR1020210152410A 2021-11-08 2021-11-08 Address mapping apparatus and method considering shared memory and cache interleaving KR102565238B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210152410A KR102565238B1 (en) 2021-11-08 2021-11-08 Address mapping apparatus and method considering shared memory and cache interleaving

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210152410A KR102565238B1 (en) 2021-11-08 2021-11-08 Address mapping apparatus and method considering shared memory and cache interleaving

Publications (2)

Publication Number Publication Date
KR20230066905A KR20230066905A (en) 2023-05-16
KR102565238B1 true KR102565238B1 (en) 2023-08-09

Family

ID=86545962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210152410A KR102565238B1 (en) 2021-11-08 2021-11-08 Address mapping apparatus and method considering shared memory and cache interleaving

Country Status (1)

Country Link
KR (1) KR102565238B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100479623B1 (en) * 1997-04-15 2005-07-07 엘지전자 주식회사 Cache tag memory and driving system thereof
KR101639574B1 (en) * 2009-12-30 2016-07-14 삼성전자주식회사 Image processing system supplying adaptive bank address and address mapping method thereof
KR20130122417A (en) * 2012-04-30 2013-11-07 삼성전자주식회사 Address generator of image processing device and operating method of address generator

Also Published As

Publication number Publication date
KR20230066905A (en) 2023-05-16

Similar Documents

Publication Publication Date Title
KR970011222B1 (en) Method and apparatus for arranging access of vram to provide accelerated writing of vertical lines to an output display
KR101639574B1 (en) Image processing system supplying adaptive bank address and address mapping method thereof
JPH09245179A (en) Computer graphic device
US7884831B2 (en) Reconfigurable high-performance texture pipeline with advanced filtering
US10163180B2 (en) Adaptive memory address scanning based on surface format for graphics processing
CN106846255B (en) Image rotation realization method and device
US5621866A (en) Image processing apparatus having improved frame buffer with Z buffer and SAM port
US8217954B2 (en) Reconfigurable dual texture pipeline with shared texture cache
KR101801901B1 (en) Memory device accessed in consideration of data locality and electronic system including the same
US6992664B2 (en) Graphics plotting apparatus
KR102565238B1 (en) Address mapping apparatus and method considering shared memory and cache interleaving
JP4182575B2 (en) Storage device and image data processing device
JPH06223099A (en) Signal processing system provided with reduced memory space
KR20040090392A (en) Frame buffer access device, frame buffer access method, computer program and recording medium
US7573482B2 (en) Method for reducing memory consumption when carrying out edge enhancement in multiple beam pixel apparatus
US6801209B1 (en) Method and apparatus for storing data in a block-based memory arrangement
KR20040082601A (en) Memory access control apparatus
US20110234636A1 (en) Method and integrated circuit for image manipulation
JP4828006B2 (en) Image processing device
JPH11316856A (en) Picture processor
KR20000018627A (en) Semiconductor memory device having high multi-bit degree of freedom
KR20240008487A (en) Adaptive image size padding device and method for memory load balancing
JP4232234B2 (en) Image processing device
JP2708841B2 (en) Writing method of bitmap memory
JP2001318653A (en) Picture display device

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right