KR20060132147A - Processor of distribute storage structure - Google Patents

Processor of distribute storage structure Download PDF

Info

Publication number
KR20060132147A
KR20060132147A KR1020050052308A KR20050052308A KR20060132147A KR 20060132147 A KR20060132147 A KR 20060132147A KR 1020050052308 A KR1020050052308 A KR 1020050052308A KR 20050052308 A KR20050052308 A KR 20050052308A KR 20060132147 A KR20060132147 A KR 20060132147A
Authority
KR
South Korea
Prior art keywords
memory
internal
external
granule
external memory
Prior art date
Application number
KR1020050052308A
Other languages
Korean (ko)
Inventor
박형준
Original Assignee
어보브반도체 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어보브반도체 주식회사 filed Critical 어보브반도체 주식회사
Priority to KR1020050052308A priority Critical patent/KR20060132147A/en
Publication of KR20060132147A publication Critical patent/KR20060132147A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Landscapes

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

Abstract

A processor of a distributed storage structure is provided to increase memory efficiency of an external data bus, and properly distribute use of an internal and external memory. The processor(510) executes an application using the internal and/or external memory(520,200). The internal memory is placed in a device and stores processed data. An external memory interface(530) accesses the external memory connected to the device. A virtual bus master(540) distributes a memory use request of the processor to the internal and external memory at a specific ratio. An internal bus(550) forms a communication path between the processor and the bus master. An internal memory bus forms the communication path among the virtual bus master, the internal memory, and the external memory.

Description

분산 저장 구조의 프로세서{PROCESSOR OF DISTRIBUTE STORAGE STRUCTURE}PROCESSOR OF DISTRIBUTE STORAGE STRUCTURE}

도 1은 종래 기술에 의한 프로세서의 구조를 나타낸 블록도,1 is a block diagram showing the structure of a processor according to the prior art;

도 2는 내부 및 외부 메모리를 사용하는 일반적인 프로세서에서의 메모리 어드레싱 구조를 도시한 메모리 맵2 is a memory map illustrating a memory addressing structure in a typical processor using internal and external memory.

도 3은 도 1의 프로세서를 도 2에 따른 메모리 맵 구조에서 해당 테스크들을 동시에 실행할 때, 내부 버스의 데이터폭 사용 분포를 나타낸 그래프,3 is a graph illustrating a data width usage distribution of an internal bus when the processors of FIG. 1 simultaneously execute the corresponding tasks in the memory map structure of FIG. 2;

도 4는 도 1의 프로세서를 도 2에 따른 메모리 맵 구조에서 해당 테스크들을 동시에 실행할 때, 외부 버스의 데이터폭 사용 분포를 나타낸 그래프,4 is a graph illustrating a data width usage distribution of an external bus when the processors of FIG. 1 simultaneously execute the corresponding tasks in the memory map structure of FIG. 2;

도 5는 본 발명의 일실시예에 따른 프로세서의 구조를 나타낸 블록도,5 is a block diagram showing the structure of a processor according to an embodiment of the present invention;

도 6은 도 5의 프로세서를 도 2에 따른 메모리 맵 구조에서 해당 테스크들을 동시에 실행할 때, 외부 버스의 데이터폭 사용 분포를 나타낸 그래프.FIG. 6 is a graph illustrating a data width usage distribution of an external bus when the processors of FIG. 5 simultaneously execute the corresponding tasks in the memory map structure of FIG. 2; FIG.

* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

200 : 외부 메모리 500 : 프로세서200: external memory 500: processor

510 : 연산부 520 : 내부 메모리510: calculator 520: internal memory

530 : 외부 메모리 인터페이스 540 : 버추얼 버스 마스터530: external memory interface 540: virtual bus master

550 : 연산부 버스 560 : 내부 메모리 버스550: operation unit bus 560: internal memory bus

본 발명은 내부 메모리 및 외부 메모리를 사용하여 하나 이상의 테스크를 동시에 실행하는 프로세서에 관한 것이다. 특히, 스트림 데이터의 처리가 많은 미디어 프로세서에 유용한 발명이다.The present invention relates to a processor that executes one or more tasks simultaneously using an internal memory and an external memory. In particular, it is an invention useful for a media processor with many processing of stream data.

미디어 프로세서는 영상 및/또는 음성 데이터를 지속적으로 입력받아 처리한다. 이와 같이 스트림 데이터를 다루는 프로세서는 어느 수준 이상의 데이터폭(bandwidth)을 꾸준히 사용한다. 이를 위해 내부 메모리만을 사용할 수도 있지만, 스트림 데이터의 크기가 증가하면 제한된 내부 메모리만으로 데이터를 처리하는데 한계가 발생한다.The media processor continuously receives and processes video and / or audio data. As such, the processor that handles the stream data steadily uses the data bandwidth above a certain level. For this purpose, only internal memory may be used, but when the size of the stream data increases, there is a limit in processing data with limited internal memory.

내부 메모리를 사용하여 스트림 데이터를 처리하는 경우, 시스템 성능 향상, 전원 절약, 데이터폭의 효율적 사용과 같은 장점이 있다. 그러나, 스트림 데이터의 크기가 증가하면 제한된 내부 메모리만으로 데이터를 처리하는데 한계가 발생한다. 이때 외부 메모리를 사용하여 내부 메모리에서 부족한 공간을 할당하는데, 만약 외부 메모리의 데이터폭이 충분히 확보되지 않는다면 시스템의 성능이 떨어지게 된다.Processing stream data using internal memory has advantages such as improved system performance, power savings, and efficient use of data widths. However, when the size of stream data increases, there is a limit in processing data with limited internal memory. At this time, the external memory is used to allocate insufficient space in the internal memory. If the data width of the external memory is not secured enough, the performance of the system is reduced.

도 1은 내부 메모리와 외부 메모리에 엑세스하기 위한 외부 메모리 인터페이스를 가지는 일반적인 프로세서의 구조를 나타낸 것이며, 도 2는 하나 이상의 테스크를 동시에 실행하는 일반적인 멀티태스킹 프로세서가 가지는 일반적인 메모리 맵 을 나타내고 있다.1 illustrates a structure of a general processor having an internal memory interface for accessing an internal memory and an external memory, and FIG. 2 illustrates a general memory map of a general multitasking processor that simultaneously executes one or more tasks.

테스크 A는 스트림 데이터를 저장/처리하기 위해 내부 및 외부 메모리를 모두 사용하는 작업이고, 테스크 B는 외부 메모리만을 사용하는 작업을 가정하기로 한다. 상기 2 테스크가 동시에 처리되는 경우의 내부 버스와 외부 버스의 데이터폭 사용량은 도 3 및 도 4와 같다.Task A is a task that uses both internal and external memory to store / process stream data, and task B is assumed to use only external memory. Data width usage of the internal bus and the external bus when the two tasks are processed at the same time is as shown in FIGS. 3 and 4.

그런데, 도 3의 내부 버스의 데이터폭 사용은 일정한 반면, 도 4의 외부 버스의 데이터폭 사용은 시간축 상에서 고르게 분포되지 않고 일정 기간동안 피크값을 가진다. 따라서, 프로세서가 테스크 A와 테스크 B를 동시에 원할하게 처리하기 위해서는 외부 메모리 버스를 상기 .피크값의 경우의 퍼포먼스를 만족시키도록 제작하여야 한다. 이를 해결하기 위해 추가적인 메모리 버스를 사용하면, 핀수의 증가, 칩사이즈의 증가 뿐만 아니라 비용면에서도 증가되는 부작용이 발생하게 된다.By the way, while the data width usage of the internal bus of FIG. 3 is constant, the data width usage of the external bus of FIG. 4 is not evenly distributed on the time axis and has a peak value for a certain period. Therefore, in order for the processor to smoothly handle task A and task B at the same time, an external memory bus must be manufactured to satisfy the performance of the .peak value. The use of additional memory buses to solve this problem leads to an increase in pin count, chip size, and cost.

본 발명은 상기 문제점들을 해결하기 위해 안출된 것으로서, 외부 데이터 버스의 사용 효율을 높일 수 있는 분산 저장 구조의 프로세서를 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems, an object of the present invention is to provide a processor of a distributed storage structure that can increase the use efficiency of the external data bus.

또한, 본 발명은 내부 메모리와 외부 메모리의 사용을 적절하게 분산시킬 수 있는 분산 저장 구조의 프로세서를 제공하는데 다른 목적이 있다.It is another object of the present invention to provide a processor of a distributed storage structure capable of appropriately distributing the use of an internal memory and an external memory.

상기 목적을 달성하기 위한 본 발명의 프로세서는 내부 메모리 및 외부 메모리를 엑세스 할 수 있으며, 2개 이상의 태스크를 동시에 실행시킬 수 있는 멀티태스킹 기능을 지원하며, 어플리케이션(또는, 테스크) 상에서 연속적인 프로그램 어드레스를 가지는 스트림 데이터를 상기 내부 메모리 및 외부 메모리에 분산 저장하는 것을 특징으로 한다. 분산 저장 방법은 한 번에 내부 메모리에 저장되는 데이터 량인 내부 그레뉼 데이터값과, 한 번에 외부 메모리에 저장되는 데이터 량인 외부 그레뉼 데이터값을 설정하여, 상기 스트림 데이터를 해당 그레뉼 데이터값 만큼 잘라서 내부 메모리 및 외부 메모리에 교번하여 저장한다. 따라서, 본 발명의 분산 저장 구조의 프로세서는 상기 메모리의 교번 저장의 수행 및 리드/라이트시 어드레스의 리맵핑을 위한 버추얼 버스 마스터를 구비하는 것을 특징으로 한다.In order to achieve the above object, the processor of the present invention can access an internal memory and an external memory, supports a multitasking function capable of executing two or more tasks simultaneously, and provides a continuous program address on an application (or task). Characterized in that the stream data having a distributed in the internal memory and the external memory. In the distributed storage method, the internal granule data value, which is the amount of data stored in the internal memory at one time, and the external granule data value, which is the amount of data stored in the external memory at one time, are set, and the stream data is changed by the corresponding granule data value. Cut and store alternately in internal memory and external memory. Therefore, the processor of the distributed storage structure of the present invention is characterized by including a virtual bus master for performing alternating storage of the memory and remapping of addresses at read / write.

본 발명을 설명하기에 앞서 그레뉼이라는 개념을 명확히 하고자 한다. 본 발명에 따른 분산 저장을 수행할 때, 내부 메모리로의 저장 동작과 외부 메모리로의 저장 동작이 교번되는 바, 그레뉼은 내부 메모리 또는 외부 메모리에 교번되는 도중의 한 번의 저장시에 저장되는 데이터의 블록을 뜻한다. 내부 메모리와 외부 메모리는 교번되는 빈도수 및 저장용량이 다를 수 있으며, 이에 따라 내부 그레뉼 크기와 외부 그레뉼 크기는 서로 다를 수 있다.Before describing the present invention, the concept of granules will be clarified. When performing distributed storage according to the present invention, the storage operation to the internal memory and the storage operation to the external memory are alternated, so that the granule is used to store the data stored at the time of one storage during the alternation to the internal memory or the external memory. It means a block. The internal memory and the external memory may have alternating frequency and storage capacity, and thus the internal granule size and the external granule size may be different.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원 칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to best explain their own invention. Based on the principle that it can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.

(실시예)(Example)

도 5에 도시한 바와 같은 본 실시예의 분산 저장 구조의 프로세서는, 외부 메모리 및/또는 내부 메모리를 사용하는 어플리케이션(하나 이상의 태스크)을 실행하기 위한 연산부(510); 소자 내부에 위치하며 작업 중인 데이터를 저장하기 위한 내부 메모리(520); 소자 외부에 연결되는 외부 메모리(200)에 엑세스 하기 위한 외부 메모리 인터페이스(530); 상기 연산부(510)의 메모리 사용 요청을 입력받아, 소정의 비율로 상기 내부 메모리(520) 및 외부 메모리(200)에 분산 처리하기 위한 버추얼 버스 마스터(540); 상기 연산부와 버추얼 버스 마스터간에 통신 경로를 형성하는 연산부 버스(550); 및 상기 버추얼 버스 마스터(540)와 상기 내부 메모리(520) 및 외부 메모리 인터페이스(530) 간에 통신 경로를 형성하는 내부 메모리 버스(560)를 포함한다.The processor of the distributed storage structure of this embodiment as shown in FIG. 5 includes: an operation unit 510 for executing an application (one or more tasks) using an external memory and / or an internal memory; An internal memory 520 positioned inside the device and configured to store data in operation; An external memory interface 530 for accessing an external memory 200 connected to the outside of the device; A virtual bus master 540 for receiving the memory use request of the operation unit 510 and distributing it to the internal memory 520 and the external memory 200 at a predetermined ratio; An operation unit bus 550 for forming a communication path between the operation unit and the virtual bus master; And an internal memory bus 560 forming a communication path between the virtual bus master 540, the internal memory 520, and the external memory interface 530.

본 실시예는 도 1에 도시한 바와 같은 종래기술의 내부/외부 메모리를 사용하는 프로세서의 설계(design)에서 변형을 최소화하여, 본 발명의 사상에 따른 분산 저장 구조의 프로세서를 설계함으로써, 개발 및 제조 비용을 최소할 수 있는 효 과를 지향한 것이다. 또한, 본 실시예에서는 "내부 그레뉼 - 외부 그레뉼 - 내부 그레뉼 - 외부 그레뉼" 식으로 내부 그레뉼과 외부 그레뉼이 1개씩 교번되어 저장된다.This embodiment is developed by designing a processor of a distributed storage structure according to the spirit of the present invention by minimizing deformation in the design of a processor using a conventional internal / external memory as shown in FIG. The goal is to minimize manufacturing costs. In addition, in this embodiment, the inner granules and the outer granules are alternately stored one by one in the manner of "inner granule-outer granule-inner granule-outer granule".

상기 내부 메모리(520) 및 외부 메모리 인터페이스(530)는 종래기술의 경우와 거의 동일한 구조를 가지며, 심지어 다른 버스 마스터 구성요소(본 실시예에서는 버추얼 버스 마스터)가 호출할 때 사용하는 하드웨어 블록 IP를 그대로 사용할 수도 있다. 상기 IP는 SoC(System on Chip) 칩 설계/제조시에 사용하는 반도체 배치설계 IP를 뜻한다.The internal memory 520 and the external memory interface 530 have almost the same structure as in the prior art, and even use a hardware block IP used by other bus master components (virtual bus master in this embodiment) to call. You can also use it as it is. The IP refers to a semiconductor layout design IP used in designing / manufacturing a System on Chip (SoC) chip.

상기 연산부(510)도 종래기술의 버스 마스터인 연산부와 거의 유사한 구조를 가지는데, 다만, 메모리로 엑세스를 수행할 때, 외부 메모리(200)와 내부 메모리(520)를 구분하지 않고, 전체적으로 통일된 하나의 가상 어드레스 공간으로 인식하여, 가상의 단일 메모리에 대한 엑세스로서 수행하게 된다.The operation unit 510 also has a structure similar to that of the operation unit, which is a bus master of the related art. However, when performing access to the memory, the operation unit 510 does not distinguish between the external memory 200 and the internal memory 520 and is generally unified. Recognized as one virtual address space, it performs as access to a single virtual memory.

도 1에 도시한 종래기술의 경우에는 연산부와 내부 메모리/외부 메모리 인터페이스가 내부 버스를 통해 직접 통신 채널을 형성하였지만, 본 실시예의 경우에는 연산부(510)에 연결되는 연산부 버스(550)와, 내부 메모리(520) 및 외부 메모리 인터페이스(530)에 연결되는 메모리 버스(560)를 구분하여 구현하고, 상기 연산부 버스(550)와 상기 메모리 버스(560)간에 버추얼 버스 마스터(540)가 데이터 통신을 중계하도록 구현된다.In the prior art illustrated in FIG. 1, the computing unit and the internal memory / external memory interface form a direct communication channel through an internal bus. However, in the present exemplary embodiment, the computing unit bus 550 connected to the computing unit 510 and the internal communication channel are internally connected. The memory bus 560 connected to the memory 520 and the external memory interface 530 is divided and implemented, and the virtual bus master 540 relays data communication between the operation unit bus 550 and the memory bus 560. Is implemented.

본 발명의 특징부를 이루는 버추얼 버스 마스터(540)는 다음과 같은 기능을 수행한다.The virtual bus master 540 constituting the features of the present invention performs the following functions.

본 실시예의 버추얼 버스 마스터(540)는 스트림 데이터의 분산 저장하는 동작을 가지는 것이 특징이 되지만, 목적에 따라서는 데이터 저장 모드를 상기 분산 저장 모드 및 종래 방법에 의한 단순 저장 모드에서 선택하도록 구현할 수도 있으며, 이 경우 저장 모드를 선택하는 기능도 수행해야 한다.The virtual bus master 540 of the present embodiment is characterized by having an operation of distributed storage of stream data. However, according to the purpose, the virtual bus master 540 may be implemented to select the data storage mode from the distributed storage mode and the simple storage mode according to the conventional method. In this case, the function of selecting the storage mode must also be performed.

또한, 상기 버추얼 버스 마스터(540)는 내부 및 외부 메모리의 그레뉼 사이즈를 설정한다. 내부 메모리의 그레뉼 사이즈는 최소값인 내부 메모리의 엑세스 최소 단위값부터 최대값인 메모리 버스(560)의 웨이트 사이클에 따른 최대 전송값 사이에서 설정한다. 외부 메모리의 그레뉼 사이즈는 최소값인 외부 메모리의 엑세스 최소 단위값부터 최대값인 메모리 버스(560)의 웨이트 사이클에 따른 최대 전송값 사이에서 설정한다.In addition, the virtual bus master 540 sets granule sizes of internal and external memories. The granule size of the internal memory is set between the minimum access value of the internal memory, which is the minimum value, and the maximum transmission value according to the weight cycle of the memory bus 560, which is the maximum value. The granule size of the external memory is set between an access minimum unit value of the external memory which is the minimum value and a maximum transmission value according to the weight cycle of the memory bus 560 which is the maximum value.

상기 저장 모드 선택이나 그레뉼 사이즈 설정은 가장 간단한 구조의 실시예의 경우에는 하나의 값으로 고정되어 그 의미가 없을 수도 있으며, 설정용 외부 핀에 인가되는 논리값들의 집합에 따라 수행되도록 구현할 수도 있으며, 프로세서 소자 내부 레지스터에 기록된 값에 따라 수행되도록 구현할 수도 있다.In the embodiment of the simplest structure, the storage mode selection or the granule size setting may be fixed to one value and may not have meaning, and may be implemented according to a set of logic values applied to an external pin for setting. It may be implemented to be performed according to the value recorded in the processor element internal register.

연속된 프로그램 어드레스를 가지는 스트림 데이터를 내부 메모리 및 외부 메모리에 분산하여 저장하기 위해서는, 상기 버추얼 버스 마스터(540)는 엑세스를 요청받은 스트림 데이터에 대한 프로그램 어드레스를 실제 내부 메모리의 어드레스 및 외부 메모리의 물리적 어드레스로 변경하는 어드레스 리맵핑을 수행해야 한다.In order to distribute and store stream data having consecutive program addresses in the internal memory and the external memory, the virtual bus master 540 stores the program address for the stream data that is requested to be accessed, the physical address of the actual internal memory and the external memory. You must perform address remapping to change to an address.

데이터의 저장시 어드레스 리맵핑 과정은, 스트림 데이터에 대한 최초 그레뉼의 저장 장소를 선택하는 단계; 스트림 데이터를 교번하는 내부 그레뉼 및 외부 그레뉼 단위로 분할하는 단계; 상기 내부 그레뉼 단위로 분할된 스트림 데이터를 내부 메모리에 저장하는 단계; 상기 외부 그레뉼 단위로 분할된 스트림 데이터를 외부 메모리에 저장하는 단계; 및 리맵핑 인덱스를 작성하여 기록하는 단계를 포함한다.The address remapping process upon storage of data includes selecting a storage location of the first granule for the stream data; Dividing the stream data into alternating inner granules and outer granule units; Storing the stream data divided by the internal granule unit in an internal memory; Storing stream data divided by the external granule unit in an external memory; And creating and recording a remapping index.

상기 데이터 저장시 어드레스 리맵핑은 프로그램 어드레스를 입력받아 이에 해당하는 내부/외부 메모리의 물리적 어드레스로 변환하여 출력하는 함수를 수행해야 하는데, 상기 함수는 다음 식 1과 같다.When storing the data, address remapping should perform a function of receiving a program address, converting it into a physical address of an internal / external memory, and outputting the same.

Figure 112005032146612-PAT00001
Figure 112005032146612-PAT00002
,
Figure 112005032146612-PAT00001
Figure 112005032146612-PAT00002
,

( RAi : 내부 메모리의 실제 물리적 어드레스(RAi: actual physical address of internal memory

RAe : 외부 메모리의 실제 물리적 어드레스RAe: actual physical address of external memory

PA : 프로그램상의 어드레스PA: Program Address

IS : 내부 메모리 그레뉼 사이즈IS: Internal Memory Granule Size

ES : 외부 메모리 그레뉼 사이즈ES: External Memory Granule Size

Of : 어드레싱 옵셋값 )Of: addressing offset value)

상기 리맵핑 인덱스는 데이터의 독출시에 해당 스트림 데이터가 분산 저장된 구조를 표시하기 위한 것으로, 해당되는 프로그램 어드레스 공간(이에 따라 총 스트림 데이터의 크기도 알 수 있다), 분산 저장된 그레뉼들의 식별 기호를 알 수 있도록 하는 값들이 기록된다.The remapping index indicates a structure in which corresponding stream data is distributed and stored when data is read. The remapping index indicates a corresponding program address space (the corresponding size of the total stream data) and identification symbols of distributed and stored granules. The values that are known are recorded.

데이터의 독출시 어드레스 리맵핑 과정은, 독출할 프로그램 어드레스 공간을 입력받는 단계; 상기 어드레스 공간의 시작 어드레스를 리맵핑 인덱스에서 검색하여 해당 그레뉼 식별 기호 및 그레뉼내 어드레스를 알아내는 단계; 상기 어드레스 공간의 종료 어드레스를 리맵핑 인덱스에서 검색하여 해당 그레뉼 식별 기호 및 그레뉼내 어드레스를 알아내는 단계; 상기 시작 어드레스에서 종료 어드레스까지 해당하는 그레뉼들에서 해당 데이터를 읽어내는 단계를 포함한다.The address remapping process when reading data includes: receiving a program address space to be read; Retrieving a start address of the address space from a remapping index to find a corresponding granule identifier and an address within the granule; Retrieving the end address of the address space from a remapping index to find a corresponding granule identifier and an address within the granule; Reading the data from the corresponding granules from the start address to the end address.

상기 독출시 어드레스 리맵핑 과정에서도 소정의 변환 함수에 따라 리맵핑이 수행되는데, 상기 데이터 저장시 어드레스 리맵핑 과정의 설명에서 유추가능하므로 자세한 설명은 생략한다.In the read address remapping process, the remapping is performed according to a predetermined conversion function. Since the data remapping can be inferred from the description of the address remapping process, detailed description thereof will be omitted.

상기 동작을 위해 상기 버추얼 버스 마스터(540)는 그레뉼 버퍼를 구비할 수 있다. 즉, 버스트 리드/라이트 엑세스가 발생하였을 때, 내부 및/또는 외부 메모리와의 효율적인 인터페이스를 위해, 조정가능한 내부 그레뉼 사이즈의 최대값에 해당하는 내부 그레뉼 버퍼 및/또는 조정가능한 외부 그레뉼 사이즈의 최대값에 해당하는 외부 그레뉼 버퍼를 구비할 수 있다. 이 경우 상기 버추얼 버스 마스터(540)는, 메모리로부터의 엑세스 결과물을 그레뉼 버퍼에 임시 저장한 후 엑세스 순서에 맞게 버추얼 버스 마스터를 통해 버스 마스터로 전달한다.The virtual bus master 540 may be provided with a granule buffer for the operation. That is, when burst lead / write access occurs, the internal granule buffer and / or adjustable external granule size corresponds to the maximum value of the adjustable internal granule size for efficient interface with internal and / or external memory. It may be provided with an external granule buffer corresponding to the maximum value of. In this case, the virtual bus master 540 temporarily stores the access result from the memory in the granule buffer and transfers the result of the access to the bus master through the virtual bus master in the order of access.

한편, 내부 메모리만 사용하는 어플리케이션의 수행의 경우에는, 종래의 내부 메모리 인터페이스를 통한 모든 엑세스 동작을 구현할 수 있도록 버추얼 버스 마스터(540)는 종래의 내부 메모리 엑세스 요청과 같은 형식의 메모리 영역의 엑세스 요청을 버스 마스터(510)로부터 입력받아, 내부 메모리(520)로 전달하며, 이와 대칭적으로 버추얼 버스 마스터(540)는 내부 메모리 엑세스의 결과물을 입력받아 버스 마스터(510)로 전달한다. On the other hand, in the case of performing an application using only internal memory, the virtual bus master 540 requests access of a memory area of the same type as a conventional internal memory access request so that all access operations through the conventional internal memory interface can be implemented. Is received from the bus master 510 and transferred to the internal memory 520, and symmetrically, the virtual bus master 540 receives the result of the internal memory access and transfers the result to the bus master 510.

또한, 본 발명의 사상에 따른 내부 및 외부로 교번 엑세스를 수행할 때에도, 버스트 사이즈가 내부 메모리의 그레뉼 사이즈를 초과하지 않는 경우 싱글 트랜스퍼 엑세스와 동일함은 물론이다. 반면, 버스트 사이즈가 내부 메모리의 그레뉼 사이즈를 초과하는 경우 초과분에 해당하는 엑세스는 외부 메모리 인터페이스로 전달한다. 메모리에서 엑세스 결과물을 그레뉼 버퍼에 임시 저장한 후 엑세스 순서에 맞게 버추얼 버스 마스터를 통해 버스 마스터로 전달한다.In addition, even when performing alternating accesses to the inside and the outside according to the spirit of the present invention, if the burst size does not exceed the granule size of the internal memory, of course, the same as the single transfer access. On the other hand, if the burst size exceeds the granule size of the internal memory, the excess access is transferred to the external memory interface. The access result is temporarily stored in the granule buffer in memory and transferred to the bus master through the virtual bus master in the order of access.

마찬가지로, 먼저 외부 메모리 그레뉼로 저장이 먼저 발생하는 경우, 버스트 사이즈가 외부 메모리의 그레뉼 사이즈를 초과하지 않는 경우 싱글 트랜스퍼 엑세스와 동일하다. 반면, 버스트 사이즈가 외부 메모리의 그레뉼 사이즈를 초과하는 경우 초과분에 해당하는 엑세스는 외부 메모리 인터페이스로 전달한다. Similarly, if storage first occurs to the external memory granules first, then the same as single transfer access if the burst size does not exceed the granule size of the external memory. On the other hand, if the burst size exceeds the granule size of the external memory, the excess access is transferred to the external memory interface.

본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.Although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited thereto, and the technical spirit of the present invention and the claims to be described below by those skilled in the art to which the present invention pertains. Of course, various modifications and variations are possible within the scope of equivalents.

예컨대, 상기 설명에서는 스트림 데이터에 대하여 분산 저장이 수행되는 것으로 설명하였지만, 구현에 따라서는 프로그램 코드 데이터나 일반적인 데이터를 저장하는 저장 장치에 본 발명을 적용할 수 있다. 이는 어차피 어드레스가 연속되 는 공간에 저장되는 데이타에 해당하면, 본 발명의 사상에 따른 분산 저장을 수행할 실익이 있기 때문이다.For example, in the above description, it has been described that distributed storage is performed on stream data. However, depending on the implementation, the present invention may be applied to a storage device that stores program code data or general data. This is because if the address corresponds to data stored in a contiguous space, there is a real advantage to perform distributed storage according to the spirit of the present invention.

본 발명에 따른 분산 저장 구조의 프로세서를 실시함에 따라, 내부 메모리와 외부 메모리의 사용을 적절하게 분산시킴으로써, 프로세서의 외부 데이터 버스의 사용 효율을 높일 수 있는 효과가 있다. By implementing the processor of the distributed storage structure according to the present invention, by appropriately distributing the use of the internal memory and the external memory, it is possible to increase the efficiency of using the external data bus of the processor.

Claims (5)

외부 메모리 및/또는 내부 메모리를 사용하는 어플리케이션을 실행하기 위한 연산부;An operation unit for executing an application using an external memory and / or an internal memory; 소자 내부에 위치하며 작업 중인 데이터를 저장하기 위한 내부 메모리;An internal memory located inside the device for storing data in operation; 소자 외부에 연결되는 외부 메모리에 엑세스 하기 위한 외부 메모리 인터페이스;An external memory interface for accessing an external memory connected to the outside of the device; 상기 연산부의 메모리 사용 요청을 입력받아, 소정의 비율로 상기 내부 메모리 및 외부 메모리에 분산 처리하기 위한 버추얼 버스 마스터;A virtual bus master configured to receive a memory use request of the calculator and to distribute the memory to the internal memory and the external memory at a predetermined ratio; 상기 연산부와 버추얼 버스 마스터간에 통신 경로을 형성하는 연산부 버스; 및An operation unit bus forming a communication path between the operation unit and the virtual bus master; And 상기 버추얼 버스 마스터와 상기 내부 메모리 및 외부 메모리 인터페이스 간에 통신 경로를 형성하는 내부 메모리 버스An internal memory bus forming a communication path between the virtual bus master and the internal memory and an external memory interface 를 포함하는 분산 저장 구조의 프로세서.Processor of a distributed storage structure comprising a. 제1항에 있어서, 상기 버추얼 버스 마스터에는,The method of claim 1, wherein the virtual bus master, 한 번에 내부 메모리에 엑세스하는 데이터량을 가리키는 내부 그레뉼값, 및 한 번에 외부 메모리에 엑세스하는 데이터량을 가리키는 외부 그레뉼값이 기록되는 분산 저장 구조의 프로세서.A processor in a distributed storage structure in which an internal granule value indicating an amount of data accessing internal memory at one time and an external granule value indicating an amount of data accessing external memory at one time are recorded. 제2항에 있어서, 상기 버추얼 버스 마스터는,The method of claim 2, wherein the virtual bus master, 스트림 형태의 데이터 저장시, 상기 내부 그레뉼 1단위 데이터를 내부 메모리에 저장하는 작업과, 상기 외부 그레뉼 1단위 데이터를 외부 메모리에 저장하는 작업을 교번하여 수행하는 분산 저장 구조의 프로세서.And storing the internal granule 1 unit data in an internal memory, and storing the external granule 1 unit data in an external memory. 제2항에 있어서, 상기 버추얼 버스 마스터는,The method of claim 2, wherein the virtual bus master, 적어도 내부 그레뉼 1단위의 데이터를 저장하기 위한 내부 그레뉼 버퍼; 및An internal granule buffer for storing at least one unit of internal granule data; And 적어도 외부 그레뉼 1단위의 데이터를 저장하기 위한 외부 그레뉼 버퍼External granule buffer for storing at least 1 unit of external granule data 를 포함하는 분산 저장 구조의 프로세서.Processor of a distributed storage structure comprising a. 제2항 내지 제4항 중 어느 한 항에 있어서,The method according to any one of claims 2 to 4, 상기 버추얼 버스 마스터는, 다음 식과 같이 어드레스 리맵핑을 수행하는 분산 저장 구조의 프로세서.The virtual bus master is a processor of a distributed storage structure that performs address remapping as in the following equation.
Figure 112005032146612-PAT00003
,
Figure 112005032146612-PAT00004
Figure 112005032146612-PAT00003
,
Figure 112005032146612-PAT00004
( RAi : 내부 메모리의 실제 물리적 어드레스(RAi: actual physical address of internal memory RAe : 외부 메모리의 실제 물리적 어드레스RAe: actual physical address of external memory PA : 프로그램상의 어드레스PA: Program Address IS : 내부 메모리 그레뉼 사이즈IS: Internal Memory Granule Size ES : 외부 메모리 그레뉼 사이즈ES: External Memory Granule Size Of : 어드레싱 옵셋값 )Of: addressing offset value)
KR1020050052308A 2005-06-17 2005-06-17 Processor of distribute storage structure KR20060132147A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050052308A KR20060132147A (en) 2005-06-17 2005-06-17 Processor of distribute storage structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050052308A KR20060132147A (en) 2005-06-17 2005-06-17 Processor of distribute storage structure

Publications (1)

Publication Number Publication Date
KR20060132147A true KR20060132147A (en) 2006-12-21

Family

ID=37811758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050052308A KR20060132147A (en) 2005-06-17 2005-06-17 Processor of distribute storage structure

Country Status (1)

Country Link
KR (1) KR20060132147A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092328B2 (en) 2011-09-15 2015-07-28 Samsung Electronics Co., Ltd. Terminal capable of extending storage space and method extending storage space thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092328B2 (en) 2011-09-15 2015-07-28 Samsung Electronics Co., Ltd. Terminal capable of extending storage space and method extending storage space thereof

Similar Documents

Publication Publication Date Title
US7171526B2 (en) Memory controller useable in a data processing system
US5784698A (en) Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US8307053B1 (en) Partitioned packet processing in a multiprocessor environment
US9769081B2 (en) Buffer manager and methods for managing memory
US6754739B1 (en) Computer resource management and allocation system
US9086920B2 (en) Device for managing data buffers in a memory space divided into a plurality of memory elements
KR101812300B1 (en) Allocation of memory buffers in computing system with multiple memory channels
CN115080455B (en) Computer chip, computer board card, and storage space distribution method and device
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
US7865632B2 (en) Memory allocation and access method and device using the same
KR100868395B1 (en) Readdressable virtual dma control and status registers
CN111181874B (en) Message processing method, device and storage medium
US5668975A (en) Method of requesting data by interlacing critical and non-critical data words of multiple data requests and apparatus therefor
CN113126911B (en) DDR3 SDRAM-based queue management method, medium and equipment
KR20050076702A (en) Method for transferring data in a multiprocessor system, multiprocessor system and processor carrying out this method
KR102117511B1 (en) Processor and method for controling memory
US20120198145A1 (en) Memory access apparatus and display using the same
EP1513071B1 (en) Memory bandwidth control device
KR20060132147A (en) Processor of distribute storage structure
EP1449087A1 (en) Bandwidth enhancement for uncached devices
CN108205500A (en) The memory access method and system of multiple threads
JP4440181B2 (en) DMAC issue mechanism by streaming ID method
KR100950356B1 (en) Data transfer unit with support for multiple coherency granules
CN111026680A (en) Mapping a first identifier to a second identifier
US7899957B1 (en) Memory controller having a buffer for providing beginning and end data

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination