KR100698310B1 - Apparatus controlling data access and method for calling data - Google Patents

Apparatus controlling data access and method for calling data Download PDF

Info

Publication number
KR100698310B1
KR100698310B1 KR1020050047846A KR20050047846A KR100698310B1 KR 100698310 B1 KR100698310 B1 KR 100698310B1 KR 1020050047846 A KR1020050047846 A KR 1020050047846A KR 20050047846 A KR20050047846 A KR 20050047846A KR 100698310 B1 KR100698310 B1 KR 100698310B1
Authority
KR
South Korea
Prior art keywords
data
address
memory device
format
stored
Prior art date
Application number
KR1020050047846A
Other languages
Korean (ko)
Other versions
KR20060126147A (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 KR1020050047846A priority Critical patent/KR100698310B1/en
Publication of KR20060126147A publication Critical patent/KR20060126147A/en
Application granted granted Critical
Publication of KR100698310B1 publication Critical patent/KR100698310B1/en

Links

Images

Classifications

    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 데이터 억세스 제어 장치 및 그 장치를 이용한 데이터 호출 방법에 관한 것이다. 본 발명은 메모리장치내에 테이블형식으로 저장된 데이터를 다중 임베드된 인터페이스 형식으로 접근할 경우, 즉 테이블에 저장된 인터페이스의 입력 인수에 따른 상기 인터페이스의 출력 데이터를 상기 메모리장치내의 테이블에서 반복하여 접근할 경우, 메모리장치에서 출력되는 데이터의 어드레스 정보를 다음 인터페이스의 출력 어드레스 정보로 연산하여 출력할 수 있는 데이터 억세스 제어 장치 및 그 장치를 이용한 데이터 호출 방법을 제공한다. 본 발명에 의한 데이터 억세스 제어 장치 및 그 장치를 이용한 데이터 호출 방법에 의하면 메모리장치내에 소정의 테이블 형식으로 저장된 데이터를 반복적으로 억세스하는 경우보다 기억관리장치의 클럭수 소모가 적고 짧은 시간에 메모리장치에 저장된 데이터를 접근할 수 있다. The present invention relates to a data access control apparatus and a data call method using the apparatus. According to the present invention, when accessing data stored in a table format in a memory device in the form of a multi-embedded interface, that is, repeatedly accessing output data of the interface according to an input argument of an interface stored in a table in a table in the memory device, A data access control device capable of calculating and outputting address information of data output from a memory device with output address information of a next interface, and a data call method using the device are provided. According to the data access control device and the data call method using the device according to the present invention, the memory management device consumes fewer clocks and has a shorter time than the case of repeatedly accessing data stored in a predetermined table format in the memory device. Stored data can be accessed.

데이터 억세스, 어드레스, 인덱스 Data access, address, index

Description

데이터 억세스 제어 장치 및 데이터 호출 방법{Apparatus controlling data access and method for calling data}Apparatus controlling data access and method for calling data}

도 1은 종래의 데이터 억세스 장치에서 직접 어드레스 모드(direct addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면1 is a view showing a method of accessing data using a direct addressing mode (direct addressing mode) in a conventional data access device

도 2는 종래의 데이터 억세스 장치에서 간접 어드레싱 모드(indirect addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면2 is a diagram illustrating a method of accessing data using an indirect addressing mode in a conventional data access apparatus.

도 3는 종래의 데이터 억세스 장치에서 즉시적 어드레스 모드(immediate addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면3 is a diagram illustrating a method of accessing data using an immediate addressing mode in a conventional data access apparatus.

도 4는 종래의 데이터 억세스 장치에서 레지스터 어드레싱 모드(register addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면4 is a diagram illustrating a method of accessing data using a register addressing mode in a conventional data access apparatus;

도 5는 종래의 데이터 억세스 장치에서 레지스터 간접 어드레싱 모드(register indirect addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면5 illustrates a method of accessing data using a register indirect addressing mode in a conventional data access apparatus.

도 6는 종래의 데이터 억세스 장치에서 상대 어드레싱 모드(relative addressing mode)를 이용하여 데이터를 억세스하는 방법을 나타낸 도면6 illustrates a method of accessing data using a relative addressing mode in a conventional data access apparatus.

도 7은 본 발명에 따른 데이터 억세스(data access) 제어 장치의 일 실시예를 나타낸 구조도7 is a structural diagram showing an embodiment of a data access control apparatus according to the present invention;

도 8은 본 발명에 따른 데이터 어드레스 인덱싱 장치의 일 실시예를 나타낸 구조도8 is a structural diagram showing an embodiment of a data address indexing apparatus according to the present invention;

도 9는 BSAC 데이터가 메모리장치내에서 테이블 형식으로 저장된 예를 나타낸 도면9 illustrates an example of BSAC data stored in a table format in a memory device.

도 10a는 종래의 기억관리장치에서 데이터 억세스할 경우 파이프라인의 구조를 나타낸 도면10A is a diagram showing the structure of a pipeline when accessing data in a conventional storage management apparatus;

도 10b는 본 발명에 의한 데이터 억세스 제어 장치를 사용하여 데이터를 억세스할 경우 파이프라인의 구조를 나타낸 도면10B is a view showing the structure of a pipeline when accessing data using a data access control apparatus according to the present invention;

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

100 : 메모리장치의 어드레스와 기억공간100: address and memory space of the memory device

150 : 레지스터 200 : 누산기150: register 200: accumulator

300 : 기억관리장치(MMU) 400: 메모리장치300: memory management unit (MMU) 400: memory device

600 : 데이터 억세스 제어 장치600: data access control device

620 : 데이터 어드레스 인덱싱 장치620: data address indexing device

622 : 루프카운터(loop counter) 625 : 오프셋선택 다중화기622: loop counter 625: offset selection multiplexer

627 : 연산기 650 : 모드선택 다중화기627: calculator 650: mode selection multiplexer

본 발명은 데이터 억세스 제어 장치 및 데이터 호출 방법에 관한 것으로서, 보다 상세하게는 메모리장치내에 저장된 데이터를 하나의 명령어내에서 반복적으로 접근해야 할 경우 보다 빠르고 접근할 수 있는 데이터 억세스 제어 장치 및 데이터 호출 방법에 관한 것이다.The present invention relates to a data access control device and a data call method, and more particularly, to a data access control device and a data call method that can be accessed more quickly when data stored in a memory device needs to be repeatedly accessed in one command. It is about.

Micrporocessor(MPU)와 Digital Signal Processor(DSP)는 수행능력(performance)과 시스템의 복잡성 여부, 상기 프로세서에 대한 프로그램밍 기법법등에서 많은 차이를 보이는데 그 차이점은 상기 프로세서들의 구조적 차이에서 기인한다. Micrporocessor (MPU) and Digital Signal Processor (DSP) show a lot of difference in performance, system complexity, programming technique for the processor, etc. The difference is due to the structural difference of the processors.

구조상 차이를 보면 MPU는 RISC(Reduce Instruction Set Computer)구조이지만, DSP는 CISC(Complexed Instruction Set Computer)구조이다. RISC는 명령어 세트(instruction set)를 최소한 일반화시켜서 제작된 프로세서이다. RISC는 속도와 하드웨어의 일반성(generality) 내지 호환성을 최우선으로하여 일반적인 컨트롤러(controller)에 많이 사용된다. 반면에 CISC는 복잡한 명령어 세트(instruction set), 즉 하나의 명령어가 조합된 다수의 RISC 명령어의 역할을 하도록 하는 구조를 갖는다. 상기와 같은 이유로 CISC는 여러 방면에서 RISC로 대체되고 있지만, 디지털 시그널 프로세서(DSP)는 여전히 CISC구조를 채택하고 있다. 그것은 DSP이 디지털 시그널 프로세싱(Digital Signal Processing)이라는 제한적 어플리케이션(application)에 사용되므로 하드웨어의 일반성(generality)과의 관련이 적기 때문이고, 하나의 명령어가 수 개의 RISC 명령어 역할을 하는 강력한 구조이므로 동일한 업무를 적은 프로그램 사이즈(program size)로 수행할 수 있기 때문이다.The difference in structure is that the MPU is a Reduce Instruction Set Computer (RISC) structure, while the DSP is a Complex Instruction Set Computer (CISC) structure. RISC is a processor built with at least generalization of an instruction set. RISC is often used in general controllers with priority on speed and generality or compatibility of hardware. CISC, on the other hand, has a structure that allows it to function as a complex instruction set, that is, a plurality of RISC instructions combined with one instruction. For the same reason, CISC is being replaced by RISC in many ways, but Digital Signal Processor (DSP) still adopts CISC structure. This is because DSP is used in a limited application called digital signal processing, which is less related to the generality of hardware. Since a single instruction is a powerful structure that serves several RISC instructions, the same task This can be done with a small program size.

DSP 명령어(instruction)는 로드-스토어(load-store) 구조가 아닌 메모리 인 덱싱(memory indexing) 구조에 의해 데이터에 억세스하고, 따라서 DSP에서는 메모리장치내의 데이터를 참조하기 위해 여러가지 어드레싱 모드(addressing mode)를 사용한다. 어드레싱 모드(addressing mode)는 로드하거나 저장할 데이터의 어드레스를 생성하여 이를 참조하는 모드이다. 어드레싱 모드는 프로세서가 피연산자(operand)에 접근하는 속도에 영향을 미치고, 또 피연산자(operand)가 저장된 기억공간의 어드레스를 변경하는 속도에도 영향을 미친다. DSP instructions access data by a memory indexing structure rather than a load-store structure, so DSPs use different addressing modes to refer to data in a memory device. Use The addressing mode is a mode for generating and referring to an address of data to be loaded or stored. The addressing mode affects the speed at which the processor accesses the operands, and also the speed at which the operands change the address of the stored storage.

도면을 참조하여, 종래의 어드레싱 모드를 이용하여 프로세서가 데이터를 접근하는 방식을 설명하면 다음과 같다.Referring to the drawings, a method of accessing data by a processor using a conventional addressing mode will be described below.

도 1에서 나타낸 직접 어드레스 모드(direct addressing mode)는 명령어 피연산자 필드(instrucion operand field)가 곧 데이터의 어드레스를 의미하는 방식이다. 상기 모드는 명령어의 피연산자가 직접 피연산자의 어드레스를 표현하는 방식으로 한 번의 데이터 억세스(data acess)를 간단하고 빠르게 할 수 있으므로 적은 수의 데이터 억세스를 시도할 때 유리한 방식이다. 그러나 상기 모드로 인해 데이터를 억세스하면 명령어 필드에서 정해진 피연산자의 비트(bit) 수만을 사용할 수 있으므로 메모리장치내 어드레스(memory address)로 사용할 수 있는 비트 수에 제한이 있을수 밖에 없다. 즉, 예를 들어 16bit의 명령어인 경우 대략 8bit를 연산부호(opcode)로 사용한다면 나머지 8bit로 어드레스를 생성할 수 밖에 없고, 그러한 경우에 생성할 수 있는 어드레스의 수는 28개이며, 이는 256개에 해당하는 아주 작은 메모리 공간만을 의미한다. 또한 어드레스가 감소하거나, 증가하는 등의 변경 이 있는 경우에는, 변경시마다 프로그래머가 매번 명령어에 정확한 어드레스를 써주어야 하고, 특히 DSP의 명령어 중 rpeat/repeat block 명령어에서는 상기와 같은 작업은 불가능하다. 따라서, 직접 어드레싱 모드(direct addressing mode)는 간편하지만, 사용에 상당한 제약을 가지고 있어서 DSP의 성능을 감소시키는 문제점이 있다.In the direct addressing mode illustrated in FIG. 1, an instruction operand field means a data address. This mode is advantageous when attempting to access a small number of data because the operand of the instruction directly expresses the address of the operand and can easily and quickly perform one data access. However, when accessing data due to the above mode, only the number of bits of an operand determined in the command field can be used, so that there is no limit to the number of bits that can be used as an address in a memory device. That is, for example, in case of 16-bit instruction, if 8 bits are used as opcode, only the remaining 8 bits can be generated, and in such case, the number of addresses that can be generated is 2 8 , which is 256 It means only a very small amount of memory space. In addition, if there is a change in address, such as decreasing or increasing, the programmer must write the correct address every time the change is made. Especially, the above operation is not possible in the rpeat / repeat block command among DSP instructions. Therefore, the direct addressing mode is simple, but has a significant limitation in use, which reduces the performance of the DSP.

도 2를 참조하여 간접 어드레싱 모드(indirect addressing mode)를 설명하면 다음과 같다. 상기 간접 어드레싱 모드는 피연산자가 직접 어드레스를 표시하는 것이 아니고 피연산자가 지정하는 레지스터(register)에 저장되어져 있는 값이 메모리장치내의 어드레스를 나타내는 방식이다. 도 2에서 어드레스 100헥사(hex ; 이하h로 표시)에 저장되어 있는 데이터 999h는 유효한 데이터가 아닌 유효한 데이터가 저장되어 있는 어드레스를 의미한다. 그래서 다시 어드레스 999h를 참조하게 되고 상기 999h에서 유효한 데이터 10E0h를 접근할 수 있게 된다. 상기 간접 어드레싱 모드(indirect addressing mode)는 억세스되는 메모리의 범위가 명령어 피연산자 필드(instruction operand field)의 범위의 제약을 받지 않게 되므로 접근하는 메모리 크기에 있어서는 자유로울 수 있으나 명령어 연산에 필요한 데이터를 가져오는데 두번의 메모리 억세스(memory access)가 필요하므로 데이터를 얻는데 속도가 느리다. 따라서, 만약 프로그램의 함수나 모듈과 같은 인터페이스의 입력값(이하, 인터페이스 인수라고 한다)에 따른 인터페이스의 결과 값이 다른 인터페이스의 인수가 되는 다중으로 임베드(embed)된 인터페이스의 최종 결과값을 구하는데 있어서, 상기 간접 어드레싱 모드가 사용된다면 처리속도가 느리고, 매우 많은 클럭 수 를 소비하게 된다.Referring to FIG. 2, an indirect addressing mode is described below. In the indirect addressing mode, an operand does not directly indicate an address, but a value stored in a register designated by the operand indicates an address in the memory device. In FIG. 2, the data 999h stored in the address 100 hex (hereinafter, denoted as h) means an address in which valid data is stored, not valid data. Thus, address 999h is referred to again, and valid data 10E0h can be accessed at 999h. The indirect addressing mode may be free in access memory size because the range of the accessed memory is not limited by the range of the instruction operand field. It is slow to get data because its memory access is required. Therefore, if the result value of an interface according to the input value (hereinafter referred to as interface argument) of an interface such as a function or a module of a program is obtained, the final result value of a multiple-embedded interface is obtained. Thus, if the indirect addressing mode is used, the processing speed is slow and consumes a very large number of clocks.

도 3을 참조하여 즉시적 어드레스 모드(immediate addressing mode)를 설명하면 다음과 같다. 즉시 어드레스 모드는 명령어에 데이터가 포함되는 방식이다. 즉 명령어의 피연산자는 데이터의 어드레스가 아니라 명령어 수행에 필요한 data 그 자체가 된다. 이러한 방식은 프로그램 수행에 있어서 레지스터 값 또는 어떤 변수들의 초기값을 정해줄 때 주로 사용되어진다. 이 방식은 연산에 필요한 데이터를 가져오는데 메모리 억세스를 수행할 필요가 없으므로 속도가 빠르다는 장점이 있지만 반면에 사용되는 데이터의 표현이 명령어 연산자 필드의 bit수에 제한을 받으므로 데이터의 크기의 제약이 많다는 문제점이 있다. Referring to FIG. 3, an immediate addressing mode is described as follows. Immediate address mode is a way of including data in an instruction. In other words, the operand of the instruction is not the address of the data but the data itself required to execute the instruction. This method is often used to set register values or initial values of certain variables in program execution. This method has the advantage of being fast because there is no need to perform memory access to get the data required for the operation. On the other hand, since the representation of the data used is limited by the number of bits in the command operator field, the size of the data is limited. There are many problems.

도 4를 참조하여, 레지스터 어드레싱 모드(register addressing mode)를 설명하면 다음과 같다. 레지스터 어드레싱 모드는 명령어 수행에 필요한 데이터가 명령어의 피연산자 필드로 입력되는 레지스터에 저장되는 데이터의 억세스 방식이다. 상기 모드로 데이터를 억세스하면 역시 메모리장치내의 데이터 억세스가 없으므로 데이터의 억세스가 빠르지만, 반면에 데이터가 레지스터에 저장되므로 저장되는 데이터의 크기와 저장용량이 레지스터의 비트 크기 제한을 받는다는 문제점이 있다. Referring to FIG. 4, the register addressing mode will be described. The register addressing mode is an access method of data in which data for executing an instruction is stored in a register inputted into an operand field of the instruction. If the data is accessed in the above mode, the data is quickly accessed because there is no data access in the memory device. On the other hand, since the data is stored in the register, the size and storage capacity of the stored data are limited by the bit size of the register.

도 5를 참조하여 레지스터 간접 어드레싱 모드(register indirect addressing mode)를 설명하면 다음과 같다. 상기 모드를 이용하여 데이터를 접근할 경우에, 피연산자 필드에 입력되는 데이터는 레지스터의 어드레스를 나타내고, 상기 레지스터를 억세스하여 레지스터에 저장된 데이터를 억세스한다. 그리고 상기 레지스터의 어드레스에 저장된 데이터는 메모리장치내의 어드레스가 된다. 상기 모 드로 데이터를 접근하면 레지스터의 비트 크기에 따라서, 데이터의 어드레스를 표현할 수 있는 크기가 결정되어 진다. 그리고, 데이터의 억세스 속도가 느리다는 문제점이 있다. A register indirect addressing mode will be described with reference to FIG. 5. In the case of accessing data using the above mode, the data input into the operand field indicates the address of the register, and accesses the register to access the data stored in the register. Data stored at the address of the register becomes an address in the memory device. When the data is accessed in this mode, the size that can represent the address of the data is determined according to the bit size of the register. In addition, there is a problem that the data access speed is slow.

도 6을 참조하여, 상대 어드레싱 모드(relative addressing mode)를 설명하면 다음과 같다. 상대 어드레싱 모드는 2개의 피연산자를 필요로 한다. 피연산자 하나는 프로그램 카운터(program counter) 또는 레지스터에 저장된 값이고, 나머지 하나의 피연산자는 오프셋(offset) 값이다. 상기 모드로 데이터를 억세스 하는 경우에는 프로그램 카운터 또는 레지스터에 저장되어 있는 값에 오프셋(offset)을 연산하여 상기 결과 값을 메모리장치의 어드레스로 사용하게 된다. branch나 jump, call 등의 명령어에서 다음에 프로그램 메모리를 억세스 하는데 주로 사용된다.Referring to FIG. 6, the relative addressing mode is described as follows. Relative addressing mode requires two operands. One operand is a value stored in a program counter or register, and the other operand is an offset value. When data is accessed in this mode, an offset is calculated on a value stored in a program counter or a register, and the result value is used as an address of the memory device. It is mainly used to access program memory in the next branch, jump, call, etc. instructions.

메모리 장치내의 저장되는 데이터는 소정의 테이블 형식으로 저장되는 경우가 있는데, 특히 일정한 압축 형식으로 메모리장치내에 저장된 데이터는 상기 압축 형식이 규정한 테이블 형식으로 저장되는 경우가 많다. 이에 대한 예로 DMB 전송방식으로 사용되는 비디오 압축 형식인 MPEG-4 Part 10 H.264/AVC, 오디오 압축 형식인 MPEG-4 Part 3 BSAC, 데이터 압축 형식인 MPEG-4 BIFS 형식 의 데이터는 메모리 장치내의 테이블 형식으로 저장된다. 그리고, 상기 테이블내의 데이터를 반복적으로 인덱스하여 데이터를 얻는 경우가 있을 수 있다. 이에 대한 설명하기 위해 DMB의 오디오 압축 형식 BSAC에 대한 소스 코드(source code) 중 하나의 예를 다음과 같이 참조한다.Data stored in the memory device may be stored in a predetermined table format. In particular, data stored in the memory device in a constant compression format is often stored in a table format defined by the compression format. For example, MPEG-4 Part 10 H.264 / AVC, a video compression format used for DMB transmission, MPEG-4 Part 3 BSAC, an audio compression format, and MPEG-4 BIFS format, a data compression format, are used in a memory device. It is stored in table format. In addition, data may be obtained by repeatedly indexing data in the table. To illustrate this, reference is made to an example of one of the source codes for the audio compression format BSAC of DMB as follows.

CBandModel = AModelCBand[[Cband_si_Cbook_tbl[Cband_si_type[ch]]];CBandModel = AModelCBand [[Cband_si_Cbook_tbl [Cband_si_type [ch]]];

상기에서 CBandModel은 Cband_si_type, Cband_si_Cbook_tbl, AModelCBand 3개의 테이블내의 데이터를 연속적으로 억세스하여 상기 값을 얻게 된다. 이 인터페이스를 상기에서 설명한 모드 중 어떠한 것을 사용하더라도 다음과 같은 과정을 거쳐야 한다.The CBandModel obtains the value by successively accessing data in three tables, Cband_si_type, Cband_si_Cbook_tbl, and AModelCBand. When using this interface in any of the modes described above, the following process is required.

먼저 가장 내부에 임베드된(embed) 인수 ch를 인덱싱하여 Cband_si_type의 결과 데이터를 누산기(accumulator)로 로드한다. 그리고, Cband_si_type에 어드레스 오프셋을 더하여 다시 누산기에 저장한다. 그리고 상기 Cband_si_type + 어드레스 오프셋 값을 메모리장치에 저장한다. 상기 저장된 값을 어드레스로 하여 Cband_si_Cbook_tbl의 결과 데이터를 누산기로 로드한다. 상기 Cband_si_Cbook_tbl에 오프셋을 더하여 다시 누산기에 저장한다. 상기 Cband_si_Cbook_tbl + 오프셋 값을 메모리에 저장한다. 상기 저장된 값을 어드레스로 하여 AModelCBand의 결과 데이터를 누산기로 로드한다. 그리고 상기 누산기에 로드된 값을 CBandModel에 저장한다. 단 하나의 데이터를 억세스하는 데 상기와 같이 긴 플로우를 거치고 이러한 과정을 DSP가 수행하는 시간은 테이블의 사이즈가 클수록 기하급수적으로 증가한다. 따라서, 상기와 같이 데이터를 억세스하면 데이터를 처리하는데 오랜 시간이 소요되고, 많은 클럭 사이클이 소요되어 비효율적인 문제점이 있다. First, index the innermost embedded argument ch to load the result data of Cband_si_type into the accumulator. The address offset is added to Cband_si_type and stored in the accumulator again. The Cband_si_type + address offset value is stored in a memory device. The resultant data of Cband_si_Cbook_tbl is loaded into the accumulator using the stored value as an address. The offset is added to the Cband_si_Cbook_tbl and stored in the accumulator again. The Cband_si_Cbook_tbl + offset value is stored in a memory. The resultant data of AModelCBand is loaded into the accumulator using the stored value as an address. The value loaded in the accumulator is stored in the CBandModel. As long as the data goes through such a long flow to access only one data and the DSP performs this process, the size of the table increases exponentially. Therefore, when data is accessed as described above, it takes a long time to process the data, and many clock cycles are required, resulting in an inefficient problem.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 메모리에 소정의 테이블 형식으로 저장된 데이터를 억세스하는 경우 프로세서의 클럭 적은 클럭 수에 보다 짧은 시간에 데이터를 억세스할 수 있는 데이터 억세스 제 어 장치 및 그 장치를 이용한 데이터 호출 방법을 제공하는 것이다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to access data that can be accessed in a shorter time than a clock number of clocks of a processor when accessing data stored in a predetermined table format in a memory. Control unit And a data call method using the device.

본 발명의 다른 목적은 특히 다중을 임베드된 인터페이스 값을 구하기 위해 반복적으로 테이블의 어드레스를 구하고 상기의 결과 데이터를 억세스하는 경우 상기 과정에서 필요한 데이터를 직접 로드하지 않고, 그에 필요한 어드레스만을 연속적을 발생시켜 최종적인 인터페이스 값을 용이하게 억세스 할 수 있는 어드레스 발생기를 제공하는 것이다. Another object of the present invention is to obtain the address of a table repeatedly in order to obtain a multi-embedded interface value. It is to provide an address generator that can easily access the final interface value.

상기 목적을 달성하기 위하여 본 발명은 기억관리장치의 데이터 입출력 명령에 의해 메모리 장치에 데이터를 저장하거나 출력하게 하는 데이터 억세스(data access) 제어 장치에 있어서, 어드레스 오프셋 정보와 루프 카운트 정보에 의해 제어되고, 상기 메모리 장치에 저장된 데이터의 어드레스 정보를 입력받아 새로운 어드레스 정보를 출력하는 데이터 어드레스 인덱싱 장치; 및 상기 기억관리장치가 호출하려는 데이터의 어드레스 정보와 상기 데이터 어드레스 인덱싱 장치가 출력하는 새로운 어드레스 정보 중 하나의 정보를 구분하여 출력하여, 상기 메모리장치에 대한 데이터 억세스가 분할되도록 하는 모드선택 다중화기를 포함하는 것을 특징으로 하는 데이터 억세스(data access) 제어 장치를 제공한다.In order to achieve the above object, the present invention provides a data access control apparatus for storing or outputting data to or from a memory device by a data input / output command of a storage management device, the control method being controlled by address offset information and loop count information. A data address indexing device which receives address information of data stored in the memory device and outputs new address information; And a mode selection multiplexer for dividing and outputting one of the address information of the data to be recalled by the storage management device and the new address information output from the data address indexing device to divide the data access to the memory device. Provided is a data access control apparatus.

상기 데이터 어드레스 인덱싱 장치는 상기 루프 카운트 정보에 의해서 다수의 어드레스 오프셋 정보를 분할하여 출력하는 오프셋선택 다중화기를 포함하는 것이 바람직하다. 상기 데이터 어드레스 인덱싱 장치는 메모리장치에서 출력되는 데이터를 직접 기억관리장치로 출력하지 않고, 상기 출력되는 데이터의 어드레스 정 보를 이용하여 메모리장치내의 새로운 어드레스를 발생시킨다. The data address indexing apparatus preferably includes an offset selection multiplexer for dividing and outputting a plurality of address offset information by the loop count information. The data address indexing apparatus does not directly output data output from the memory device to the storage management device, but generates a new address in the memory device using the address information of the output data.

상기 메모리장치가 출력하는 데이터는 상기 메모리장치내에 소정의 형식의 테이블로 저장되어 있는 것이 바람직하다. 테이블 형식의 일 예는 MPEG-4 Part 10인 H.264/AVC 압축 형식이나 MPEG-4 Part 3 BSAC 압축 형식이나 MPEG-4 BIFS 압축 형식 등과 같은 압축 형식의 데이터가 저장된 테이블 형식이다.The data output from the memory device is preferably stored in a table of a predetermined format in the memory device. An example of the table format is a table format that stores data in a compressed format such as the MPEG-4 Part 10 H.264 / AVC compressed format, the MPEG-4 Part 3 BSAC compressed format, or the MPEG-4 BIFS compressed format.

상기 데이터 어드레스 인덱싱 장치가 출력하는 새로운 어드레스 정보는 상기 메모리장치가 출력하는 데이터의 어드레스 정보와 상기 오프셋선택 다중화기가 출력하는 어드레스 오프셋 정보를 연산하여 생성한다. 따라서, 메모리장치를 연속적으로 억세스하여 데이터를 여러 번 출력할 필요없이 데이터의 어드레스 정보만으로 연속적으로 메모리장치내의 테이블 형식으로 저장된 데이터를 억세스하고 최종 억세스된 데이터를 상기 메모리장치에서 기억관리장치로 출력할 수 있다. The new address information output by the data address indexing apparatus is generated by calculating address information of data output from the memory device and address offset information output by the offset selection multiplexer. Therefore, without accessing the memory device continuously and outputting the data many times, it is possible to access the data stored in the form of a table in the memory device continuously with only the address information of the data and output the last accessed data from the memory device to the storage management device. Can be.

또한, 본 발명은 메모리장치내의 테이블 형식으로 저장된 데이터를 입력받아서 상기 메모리장치내의 상기 테이블 형식으로 저장된 데이터를 출력하는 인터페이스의 결과가 다른 인터페이스의 입력 데이터로 사용되는 다중 인터페이스형식이 포함된 코드를 수행할 경우 상기 다중 인터페이스에서 데이터를 호출하는 방법에 있어서, In addition, the present invention executes a code including a multi-interface format in which a result of an interface that receives data stored in a table format in a memory device and outputs data stored in the table format in the memory device is used as input data of another interface. In the method of calling data in the multiple interface,

(a) 상기 메모리장치내의 테이블 형식으로 저장된 다중 인터페이스의 인수 데이터의 테이블 어드레스를 발생시키는 단계;, (a) generating a table address of argument data of multiple interfaces stored in a table format in the memory device;

(b) 상기 발생된 어드레스를 갖는 데이터를 입력 값으로 하는 인터페이스의 상기 입력 값에 대한 결과 데이터가 저장된 상기 테이블의 어드레스를 발생시키는 단계;, (b) generating an address of the table in which result data for the input value of the interface whose data having the generated address is an input value is stored;

(c) 상기 (b) 단계에서 발생된 어드레스를 갖는 데이터가 출력을 원하는 인터페이스의 입력값이지 여부를 판단하고, 상기 판단 결과 그렇지 않을 경우에는 상기 (b) 단계를 반복하고, 출력을 원하는 인터페이스의 입력값인 경우 (d) 단계로 가는 단계; 및 (c) It is determined whether the data having the address generated in step (b) is an input value of the interface to be outputted. If the result of the determination is not, repeating step (b) and If an input value, goes to step (d); And

(d) 상기 (c)단계의 판단결과 상기 발생된 어드레스가 출력을 원하는 인터페이스의 입력값에 대한 어드레스인 경우, 상기 입력값에 대한 인터페이스 값을 출력하는 단계를 포함하는 것을 특징으로 하는 데이터 호출 방법을 제공한다. and (d) outputting an interface value for the input value when the generated address is an address for an input value of an interface to be output as a result of the determination of step (c). To provide.

상기 (b) 단계에서 발생되는 테이블 어드레스는 상기 (a)단계에서 발생된 어드레스 정보에 소정의 어드레스 오프셋를 연산하여 결정되는 것이 바람직하다.상기 소정의 어드레스 오프셋은 인터페이스 결과값이 저장된 상기 테이블내의 베이스 어드레스로 결정되는 것이 더욱 바람직하며, 상기 테이블에 데이터가 저장된 형식은 MPEG-4 Part 10인 H.264/AVC 압축 형식 또는 MPEG-4 Part 3 BSAC 압축 형식 또는 MPEG-4 BIFS 압축 형식 중 어느 하나의 압축 형식이 될 수 있으며 그 밖에 테이블 형식으로 저장된 형식이라면 어떠한 것도 본 발명의 적용이 가능하다.Preferably, the table address generated in step (b) is determined by calculating a predetermined address offset from the address information generated in step (a). The predetermined address offset is a base address in the table in which an interface result value is stored. More preferably, the format in which the data is stored in the table is one of an MPEG-4 Part 10 H.264 / AVC compression format, an MPEG-4 Part 3 BSAC compression format, or an MPEG-4 BIFS compression format. The present invention may be in any form, and any other form may be applied to the present invention.

이하 상기 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention that can specifically realize the above object will be described.

도 7을 참조하여, 본 발명에 따른 데이터 억세스(data access) 제어 장치의 일 실시예를 설명하면 다음과 같다. 먼저 설명을 용이하게 하기 위해 메모리장치에 저장된 데이터는 소정의 테이블 형식으로 저장되어 있다고 가정한다. Referring to FIG. 7, an embodiment of a data access control apparatus according to the present invention will be described. First, for ease of explanation, it is assumed that data stored in the memory device is stored in a predetermined table format.

도 7에서 보인 본 발명에 의한 일 실시예에서 데이터 억세스 제어 장치(600)는 데이터 어드레스 인덱싱 장치(620), 모드선택 다중화기(650)를 포함한다. 상기 데이터 억세스 제어 장치(600)는 기억관리장치(Memory Management Unit)와(300) 메모리장치(400)와 전기적으로 연결될 수 있다. 기억관리장치(300)가 메모리장치(400)에 저장된 데이터를 어드레스 정보를 이용하여 억세스한다. 모드선택 다중화기(650)는 기억관리장치(300)가 최초로 요구한 데이터에 대한 억세스 정보를 입력받아 이를 메모리장치(400)로 전달한다. 상기 메모리장치(400)는 상기 입력된 어드레스 정보에 저장된 데이터를 출력한다. 만약 기억관리장치(300)가 요구하는 데이터가 기억관리장치(300)에서 최종으로 요구하는 데이터인 경우 상기 메모리장치(400)에서 출력된 데이터는 기억관리장치(300)로 입력된다. 그러나, 다중으로 인터페이스가 임베드되어 있는 경우와 같이 상기 메모리장치(400)에서 출력된 데이터가 다시 메모리장치(400)에 저장된 다른 데이터의 인터페이스 입력값이 되는 경우가 있다. 이와 같은 경우에는 상기 메모리장치(400)에서 출력된 데이터는 기억관리장치(300)로 출력되지 않고, 데이터 어드레스 인덱싱 장치(620)로 입력되고, 상기 데이터 어드레스 인덱싱 장치(620)에 입력된 데이터의 어드레스 정보를 이용하여 상기 인터페이스 결과 값이 저장된 메모리장치(400)내의 어드레스 정보를 얻어서 그 어드레스 정보에 따라 인터페이스 결과 값을 얻을 수 있다. 따라서, 기억관리장치는 많은 클럭 수를 소비하며 메모리장치(400)에 데이터의 입출력을 요구하지 않고, 최종으로 출력을 원하는 데이터에 접근할 수 있다. 상기 데이터 어드레스 인덱싱 장치(620)가 상기한 과정을 몇차례 반복해야 하는지 여부를 판단하고, 최종적으로 출력을 원하는 데이터의 어드레스 정보를 얻기 위해서는 상기 데이터 어드레스 인덱싱 장치(620)에 어드레스 오프셋(offset) 값과 루프 카운트(loop count) 정보가 입력되어야 한다. 상기 오프셋 값과 루프 카운트 정보는 미리 명령어에서 피연산자로 설정되거나, 이미 설정된 레지스터 값으로 설정될 수 있으며, 수행하는 코드상에서 계산될 수도 있다. In an embodiment of the present invention as shown in FIG. 7, the data access control apparatus 600 includes a data address indexing apparatus 620 and a mode selection multiplexer 650. The data access control device 600 may be electrically connected to a memory management unit 300 and a memory device 400. The storage management device 300 accesses data stored in the memory device 400 using address information. The mode selection multiplexer 650 receives the access information for the data initially requested by the storage management device 300 and transmits the received access information to the memory device 400. The memory device 400 outputs data stored in the input address information. If the data requested by the storage management device 300 is the data finally requested by the storage management device 300, the data output from the memory device 400 is input to the storage management device 300. However, there is a case where data output from the memory device 400 becomes an interface input value of other data stored in the memory device 400, such as when the interface is embedded in multiple times. In this case, the data output from the memory device 400 is not output to the storage management device 300, but is input to the data address indexing device 620, and the data input to the data address indexing device 620. By using the address information, address information in the memory device 400 in which the interface result value is stored may be obtained, and the interface result value may be obtained according to the address information. Therefore, the memory management device consumes a large number of clocks and can access the data desired for output without requiring the memory device 400 to input / output data. In order to determine how many times the data address indexing device 620 should repeat the above-described process, and to obtain address information of data to be finally outputted, an address offset value is provided to the data address indexing device 620. And loop count information must be entered. The offset value and the loop count information may be set as an operand in an instruction in advance, or may be set as an already set register value, or may be calculated in a code to be executed.

데이터 어드레스 인덱싱 장치(620)는 상기 장치에 입력된 어드레스 정보에 어드레스 오프셋 값을 연산하여 새로운 어드레스 정보를 출력하며, 이와 같은 과정이 반복되는 회수는 루프 카운트(loop count) 정보에 의해 정해진다. 따라서, 상기 데이터 어드레스 인덱싱 장치(620)는 메모리장치(400)에서 출력되는 데이터를 기억관리장치로 보내야 하는지, 아니면 상기 데이터의 어드레스를 이용하여 새로운 어드레스 정보를 출력해야 하는지를 상기 입력된 루프 카운트 정보로 결정한다. 상기 데이터 어드레스 인덱싱 장치(620)는 연산한 어드레스 정보와 루프 카운트 정보를 모드선택 다중화기(650)에 출력한다. 상기 모드선택 다중화기(650)는 상기 입력된 루프 카운트 정보를 이용해서 상기 모드선택 다중화기(650)에 입력되는 기억관리장치의 데이터 억세스 정보와 데이터 어드레스 인덱싱 장치(620)에서 출력되는 새로운 어드레스 정보에 대한 데이터 억세스 정보를 분할하여 메모리장치(400)로 출력한다.The data address indexing apparatus 620 calculates an address offset value from the address information input to the apparatus, and outputs new address information. The number of times such a process is repeated is determined by loop count information. Therefore, the data address indexing apparatus 620 uses the input loop count information as to whether the data output from the memory device 400 should be sent to the storage management apparatus or whether the new address information should be output using the address of the data. Decide The data address indexing device 620 outputs the calculated address information and loop count information to the mode selection multiplexer 650. The mode select multiplexer 650 uses the input loop count information to input data access information of the storage management apparatus input to the mode select multiplexer 650 and new address information output from the data address indexing apparatus 620. The data access information for the data is divided and output to the memory device 400.

도 8을 참조하여 데이터 억세스 제어 장치에 포함되는 데이터 어드레스 인덱싱 장치의 일 실시예를 설명하면 다음과 같다.An embodiment of a data address indexing apparatus included in a data access control apparatus will be described with reference to FIG. 8.

본 발명에 의한 데이터 어드레스 인덱싱 장치(620)는 루프 카운터(622)와 오프셋선택 다중화기(625)와 연산기(627)를 포함한다. 데이터 어드레스 인덱싱 장치(620)는 어드레스 오프셋 정보를 입력받고, 상기 장치(620)내에 루프 카운터(622)는 루프 카운트의 초기값과 총 루프 회수 정보를 입력받고, 데이터 어드레스 인덱싱 장치(620)의 어드레스 출력 과정이 총 루프 회수만큼 반복되는지 상기 반복되는 회수를 초기값부터 카운트(count)하여 카운트된 값을 출력한다. 따라서, 상기 루프 카운터(622)는 총 루프 회수와 카운트된 값을 비교하여 본 발명에 의한 데이터 엑세스 제어 장치가 상기 루프 과정을 반복하여 새로운 어드레스를 출력해야 하는지, 아니면 메모리장치에서 출력되는 데이터를 최종적으로 기억관리장치(300)로 출력해야 하는지를 판단할 수 있게 한다. 상기 오프셋선택 다중화기(625)는 설정된 상기 루프 카운트 정보에 의해 다수의 어드레스 오프셋 정보 중 입력되는 데이터의 어드레스 정보에 맞는 어드레스 오프셋 값을 선택하여 출력한다. 상기 연산기(627)는 데이터 어드레스 인덱싱 장치(620)로 입력되는 데이터의 어드레스 정보와 상기 오프셋선택 다중화기(625)에서 선택된 어드레스 오프셋 값을 연산하여 새로운 어드레스 정보를 출력한다. 도 8에서는 덧셈기를 이용하여 새로운 어드레스를 연산하는 것을 표현하는 하나의 예시이며, 새로운 어드레스 정보는 다양한 연산법칙에 의해 연산될 수 있으므로 다른 연산기를 사용할 수도 있다. The data address indexing apparatus 620 according to the present invention includes a loop counter 622, an offset selection multiplexer 625, and an operator 627. The data address indexing device 620 receives address offset information, and the loop counter 622 receives the initial value of the loop count and the total loop count information within the device 620, and the address of the data address indexing device 620. Whether the output process is repeated by the total number of loops is counted from the initial value and the counted value is output. Accordingly, the loop counter 622 compares the total number of loops with the counted value to determine whether the data access control device according to the present invention should repeat the looping process to output a new address or finally output the data output from the memory device. It is possible to determine whether to output to the memory management device 300. The offset selection multiplexer 625 selects and outputs an address offset value corresponding to address information of data input from among a plurality of address offset information based on the set loop count information. The operator 627 outputs new address information by calculating address information of data input to the data address indexing device 620 and an address offset value selected by the offset selection multiplexer 625. In FIG. 8, an example of expressing a new address using an adder is shown. Since the new address information may be calculated by various calculation laws, another calculator may be used.

그리고, 상기 루프 카운터는 새로운 어드레스 정보가 출력되면 상기 출력된 회수를 1회씩 증가시켜 회수를 카운트한다. 그리고, 상기 카운트된 회수는 도 7의 모드선택 다중화기(650)로 출력되고, 상기 모드선택 다중화기가 상기 카운트된 회수에 따라 기억관리장치(300)나 데이터 어드레스 인덱싱 장치(620)의 데이터 억세스를 분할하도록 한다. When the new address information is output, the loop counter increments the output number once and counts the number of times. The counted number of times is output to the mode selector multiplexer 650 of FIG. 7, and the mode selector multiplexer accesses data of the storage management apparatus 300 or the data address indexing apparatus 620 according to the counted count. Split it up.

본 발명에 의한 데이터 억세스 제어 장치와 데이터 어드레스 인덱싱 장치의 일 실시예를 구체적으로 설명하기 위해 종래기술에서 설명한 동일한 예를 이용하여 데이터를 억세스 하는 과정을 설명한다. 본 발명에 의한 데이터 억세스 제어 장치가 메모리장치내에 MPEG-4 Part 3 BSAC로 저장된 데이터를 접근하는 과정 중 BSAC에 대한 소스 코드(source code)의 중 In order to describe in detail an embodiment of a data access control device and a data address indexing device according to the present invention, a process of accessing data using the same example described in the related art will be described. Data access control apparatus according to the present invention of the source code (source code) for the BSAC in the process of accessing data stored in the MPEG-4 Part 3 BSAC in the memory device

CBandModel = AModelCBand[[Cband_si_Cbook_tbl[Cband_si_type[ch]]];CBandModel = AModelCBand [[Cband_si_Cbook_tbl [Cband_si_type [ch]]];

과정에서 AModelCBand값을 접근하여 기억관리장치가 CBandModel 값을 얻는 과정을 설명한다. 그리고, 본 발명에 대한 설명을 용이하기 위해 메모리장치에 저장된 테이블은 도 9의 메모리장치내의 MPEG-4 Part 3 BSAC 테이블의 예를 이용한다. 도 9에서 Cband_si_type 테이블은 1000h가 베이스 어드레스(base address)이고, Cband_si_Cbook 테이블은 1500h, AModelCBand 테이블은 4000h의 베이스 어드레스를 갖는다. 기억관리장치에서 최초로 출력되는 데이터의 어드레스는 ch이며, ch의 값은 Cband_si_type 테이블의 최초 자리수가 1000h인 범위의 어떤 값이 될 것이다. 상기 어드레스에 따른 데이터 Cband_si_type[ch]는 메모리장치에서 출력되어 데이터 억세스 제어 장치로 입력된다. 상기의 경우 데이터 어드레스 인덱싱 장치내의 루프 카운터에는 총 루프 회수인 2의 값이 입력되거나 설정된다. 그리고, 데이터 어드레스 인덱싱 장치에 입력되는 데이터 어드레스 오프셋 값은 Cband_si_type 테이블이 1000h의 베이스 어드레스(base address), Cband_si_Cbook_tbl 테이블이 1500h의 베이스 어드레스, AModelCBand 테이블이 4000h의 베이스 어드레스를 갖기 때문에, 예를 들어 오프셋 1은 1500h, 오프셋 2은 4000h의 오프셋 값을 가질 수 있다. 즉, 데이터 어드레스 인덱싱 장치에서는 Cband_si_type[ch]를 입력으로 하는 Cband_si_Cbook 값이 저장된 어드레스 정보를 알기 위해 상기 Cband_si_type[ch] 에 오프셋 1(1500h)를 더한다. 그 때, 루프카운트 값은 초기값에서 1로 변환된다. In this process, the AModelCBand value is accessed to explain how the storage device obtains the CBandModel value. For ease of explanation of the present invention, the table stored in the memory device uses an example of the MPEG-4 Part 3 BSAC table in the memory device of FIG. 9. In FIG. 9, the Cband_si_type table has a base address of 1000h, the Cband_si_Cbook table has a base address of 1500h, and the AModelCBand table of 4000h. The address of the data initially output from the storage management apparatus is ch, and the value of ch will be any value in the range of 1000h of the first digit of the Cband_si_type table. Data Cband_si_type [ch] corresponding to the address is output from the memory device and input to the data access control device. In this case , a value of 2, which is the total number of loops, is input or set to the loop counter in the data address indexing apparatus. In addition, the data address offset value input to the data address indexing apparatus includes a base address of 1000h for the Cband_si_type table, a base address of 1500h for the Cband_si_Cbook_tbl table, and a base address of 4000h for the AModelCBand table. Is 1500h and offset 2 may have an offset value of 4000h. That is, the data address indexing apparatus adds an offset 1 (1500h) to the Cband_si_type [ch] in order to know the address information in which the Cband_si_Cbook value having the Cband_si_type [ch] as an input is stored. At that time, the loop count value is converted to 1 from the initial value.

모드선택 다중화기는 Cband_si_Cbook(Cband_si_type[ch])의 어드레스 정보를 입력받아 메모리장치로 출력한다. The mode selection multiplexer receives address information of Cband_si_Cbook (Cband_si_type [ch]) and outputs it to the memory device.

메모리장치는 Cband_si_Cbook(Cband_si_type[ch])를 출력하고, 상기 출력 데이터에 대한 정보는 데이터 어드레스 인덱싱 장치로 입력된다. 다시 데이터 어드레스 인덱싱 장치는 Cband_si_Cbook(Cband_si_type[ch])에 오프셋 2(4000h)를 더하여 출력한다. 그 때, 루프카운트 값은 1에서 2로 변환된다. 따라서, 상기 출력된 어드레스는 AModelCBand의 값이 저장된 데이터 어드레스이므로 메모리장치로부터 상기 AModelCBand의 값을 얻을 수 있다. 즉, 상기 과정 중에 발생하는 데이터를 기억관리장치까지 출력하지 않아도 데이터 어드레스 인덱싱 장치에서 연산을 통해 상기 발생하는 데이터의 어드레스 정보만을 얻으면 AModelCBand의 값을 얻을 수 있다. The memory device outputs Cband_si_Cbook (Cband_si_type [ch]), and information on the output data is input to the data address indexing device. The data address indexing apparatus adds offset 2 (4000h) to Cband_si_Cbook (Cband_si_type [ch]) and outputs the offset. At that time, the loop count value is converted from 1 to 2. Therefore, since the output address is a data address in which the value of AModelCBand is stored, the value of AModelCBand can be obtained from a memory device. That is, even if the data generated during the process is not outputted to the storage management apparatus, the value of AModelCBand can be obtained if only the address information of the generated data is obtained through the operation in the data address indexing apparatus.

만약, 상기 소스 코드의 하나의 과정을 처리하는 데 있어서 ch 값도 기억관리장치내에서 직접 출력하지 않고 역시 메모리장치에서 저장된 값을 억세스 하여 상기 소스 코드의 인터페이스를 수행하게 되면, 어드레스를 인덱싱하는 과정은 3번이 반복되어야 하고(루프 카운트는 3), 각 어드레스 오프셋 값을 오프셋 1이 1000h, 오프셋 2는 1500h, 오프셋 3는 4000h로 되도록 설정하면 된다. If the ch value is not directly output from the memory management device in the process of processing one source code, but the interface of the source code is accessed by accessing the value stored in the memory device, the address is indexed. Is repeated three times (loop count is 3), and each address offset value is set such that offset 1 is 1000h, offset 2 is 1500h, and offset 3 is 4000h.

본 발명에 따른 데이터 억세스 제어 장치는 기억관리장치의 클럭 수가 불필 요하게 소모되는 것을 방지할 수 있다. 도 10a 및 도 10를 참조하여 본 발명에 따른 데이터 억세스 제어 장치를 사용할 경우 기억관리장치에서 소요되는 클럭 수가 감소하느 과정을 설명하면 다음과 같다. 도 10은 파이프라인(pipeline)의 구조상에서 기억관리장치의 클럭 수가 소요되는 것을 나타낸다. 만약 종래의 장치내에서 기억관리장치가 메모리장치내의 데이터를 억세스하면, 도 10a와 같은 과정을 거치게 된다. 도 10a는 하나의 데이터를 접근하여 출력하는 과정을 나타낸다. 만약 프로그램의 코드상에서 하나의 명령어에 다중으로 임베드된 인터페이스 과정을 처리힐 경우 하나의 데이터를 메모리장치내에서 출력해내는 과정은 도 10a의 파이프라인 과정을 거쳐야 한다. 그리고, 도 10a의 파이프라인 과정은 다중 임베드된 인터페이스의 수만큼 반복된다. 따라서, 기억관리장치의 클럭소모가 많아지게 된다. 또한, 만약 도10a와 같은 과정이 반복되어 최종적으로 출력되어야 하는 데이터가 상기 과정이 종료되기 전에 다른 명령어에 의해 데이터 값이 갱신되거나 하면 데이터 처리의 오류가 발생하게 된다. 그러나, 본 발명에 의하면 프로그램 코드상에서 다중 임베드된 인터페이스 과정을 처리한다고 하더라도, 메모리장치내의 데이터가 기억관리장치로 출력되고, 다시 그 데이터가 메모리장치로 입력되는 과정을 반복할 필요가 없다. 본 발명에 의한 데이터 억세스 제어 장치의 수행 과정을 도 10b의 파이프구조상에서 설명하면 다음과 같다. 도 10b은 루프 카운트가 3일 경우, 즉 데이터 인어드레스 인덱싱 장치가 새로운 데이터 어드레스를 연속하여 3번 출력할 경우에 기억관리장치의 클럭 수가 소요되는 것을 나타낸다. The data access control apparatus according to the present invention can prevent the clock number of the storage management apparatus from being unnecessarily consumed. Referring to FIGS. 10A and 10, a process of reducing the number of clocks required by the memory management apparatus when using the data access control apparatus according to the present invention will be described below. Fig. 10 shows that the number of clocks of the storage management device is required in the structure of the pipeline. If the storage management apparatus accesses data in the memory apparatus in the conventional apparatus, the process as shown in FIG. 10A is performed. 10A illustrates a process of accessing and outputting one piece of data. If the interface process embedded in a single command in the program code is processed, the process of outputting one data in the memory device must go through the pipeline process of FIG. 10A. And, the pipeline process of FIG. 10A is repeated by the number of multiple embedded interfaces. Therefore, the clock consumption of the storage management device becomes large. In addition, if the data that is to be finally outputted by repeating the process as shown in FIG. 10A is updated by another instruction before the process ends, an error in data processing occurs. However, according to the present invention, even if the process of multiple embedded interfaces is processed in the program code, the data in the memory device is output to the storage management device, and there is no need to repeat the process of inputting the data to the memory device. A process of performing the data access control apparatus according to the present invention will be described in the pipe structure of FIG. 10B as follows. Fig. 10B shows that the clock number of the storage management device is required when the loop count is 3, that is, when the data addressing indexing device outputs a new data address three times in succession.

도 10b에서 데이터를 최종으로 출력하기 전에 출력되는 데이터의 어드레스만 을 이용해 루프 1, 2, 3을 거치면 도10a에서 보인 파이프라인과정이 전체적으로 반복되지 않아도 하나의 파이프라인 구조상에서 처리할 수 있다. 따라서, 도 10b의 예로 보인 파이프라인 구조상에서 살펴보면 기억관리장치의 클럭 수는 3 사이클 정도 정지(stall)되는 동안 최종 데이터(데이터 3)을 얻을 수 있다. If the pipeline process shown in FIG. 10A is not repeated, the pipeline process shown in FIG. 10A can be processed on a single pipeline structure by passing through the loops 1, 2, and 3 using only the address of the output data before finally outputting the data in FIG. 10B. Accordingly, in the pipeline structure shown in FIG. 10B, the final data (data 3) can be obtained while the number of clocks of the storage management apparatus is stalled for about three cycles.

동일한 기술분야의 당업자에 있어서는 본 발명의 다른 변경과 변화가 가능하다. 따라서, 본 발명의 실시예가 상기와 같이 명확하게 기재되었더라도, 상기 기재에 대한 변화와 변경은 본 발명의 사상과 관점으로부터 이탈되지 않고 본 발명의 사상내에 포함된다. Other modifications and variations of the present invention are possible to those skilled in the art. Therefore, although the embodiments of the present invention have been described clearly as described above, changes and modifications to the above description are included within the spirit of the present invention without departing from the spirit and viewpoint of the present invention.

상기에서 본 발명에 의한 데이터 억세스 제어 장치 및 그 장치를 이용한 데이터 호출 방법의 효과를 설명하면 다음과 같다.The effects of the data access control device and the data call method using the device according to the present invention are as follows.

첫째, 본 발명에 의한 데이터 억세스 제어 장치 및 데이터 호출 방법에 의하면 메모리장치내에 소정의 테이블 형식으로 저장된 데이터를 반복적으로 억세스하는 경우보다 기억관리장치의 클럭수 소모가 적고 짧은 시간에 메모리장치에 저장된 데이터를 접근할 수 있다. First, according to the data access control device and the data call method according to the present invention, the number of clocks of the memory management device consumes less data and the data stored in the memory device in a shorter time than the case of repeatedly accessing data stored in a predetermined table format in the memory device. Can be accessed.

둘째, 본 발명에 의한 데이터 억세스 제어 장치 및 데이터 호출 방법에 의하면 특히 다중을 임베드된 인터페이스 값을 구하기 위해 상기 과정에서 필요한 데이터를 직접 로드하지 않고, 그에 필요한 어드레스만을 연속적을 발생시켜 최종적인 인터페이스 값을 용이하게 억세스 할 수 있다. Secondly, according to the data access control apparatus and the data call method according to the present invention, in order to obtain the embedded interface value, the multiple data access control apparatus does not directly load the necessary data in the above process, and generates only the addresses necessary for successive interface values. Easy to access

셋째, 본 발명에 의한 데이터 억세스 제어 장치 및 데이터 호출 방법에 의하 면 데이터 억세스 과정이 진행되는 동안 파이프라인(pipeline)을 정지(stall)시켜서 최종 데이터가 출력될 때까지 상기 파이프라인상의 데이터 억세스 작업이 대기하게 된다.Third, according to the data access control apparatus and the data call method according to the present invention, the data access operation on the pipeline is stopped until the final data is output by stopping the pipeline during the data access process. I will wait.

Claims (11)

기억관리장치의 데이터 입출력 명령에 의해 메모리 장치에 데이터를 저장하거나 출력하게 하는 데이터 억세스(data access) 제어 장치에 있어서,A data access control device for storing or outputting data to a memory device by a data input / output command of a storage management device. 상기 메모리 장치로부터 출력된 데이터의 어드레스 정보와, 어드레스 오프셋 정보를, 설정된 루프 카운트 정보만큼 반복 연산하여 새로운 어드레스 정보를 출력할 수 있는 데이터 어드레스 인덱싱 장치 ; 및 A data address indexing device capable of repeatedly calculating address information and address offset information of data output from the memory device by the set loop count information and outputting new address information; And 상기 기억관리장치가 호출하려는 데이터의 어드레스 정보와 상기 데이터 어드레스 인덱싱 장치가 출력하는 새로운 어드레스 정보 중 하나의 정보를 구분하여 출력하여, 상기 메모리장치에 대한 데이터 억세스가 분할되도록 하는 모드선택 다중화기를 포함하는 것을 특징으로 하는 데이터 억세스(data access) 제어 장치.And a mode selection multiplexer for dividing and outputting one of the address information of the data to be recalled by the storage management device and the new address information output by the data address indexing device to divide the data access to the memory device. Data access control device, characterized in that. 제 1항에 있어서,The method of claim 1, 상기 데이터 어드레스 인덱싱 장치는 상기 루프 카운트 정보에 의해서 다수의 어드레스 오프셋 정보를 분할하여 출력하는 오프셋선택 다중화기를 포함하는 것을 특징으로 하는 데이터 억세스(data access) 제어 장치.The data address indexing apparatus includes an offset selection multiplexer for dividing and outputting a plurality of address offset information by the loop count information. 제 2항에 있어서,The method of claim 2, 상기 새로운 어드레스 정보는 상기 메모리장치가 출력하는 데이터의 어드레스 정보와, 상기 오프셋선택 다중화기가 출력하는 어드레스 오프셋 정보를 연산하여 산출되는 것을 특징으로 하는 데이터 억세스(data access) 제어 장치. And the new address information is calculated by calculating address information of data output from the memory device and address offset information output by the offset selection multiplexer. 제 3항에 있어서,The method of claim 3, 상기 메모리장치가 출력하는 데이터는 상기 메모리장치내에 소정의 형식의 테이블로 저장된 것을 특징으로 하는 데이터 억세스(data access) 제어 장치. And the data output from the memory device is stored in a table of a predetermined format in the memory device. 제 4항에 있어서,The method of claim 4, wherein 상기 메모리장치내의 테이블 형식은 MPEG-4 Part 10인 H.264/AVC 압축 형식 또는 MPEG-4 Part 3 BSAC 압축 형식 또는 MPEG-4 BIFS 압축 형식 중 어느 하나의 압축 형식의 데이터가 저장된 테이블 형식과 같은 것을 특징으로 하는 데이터 억세스(data access) 제어 장치. The table format in the memory device is the same as the table format in which the data in one of the H.264 / AVC compression format of MPEG-4 Part 10, the MPEG-4 Part 3 BSAC compression format, or the MPEG-4 BIFS compression format is stored. Data access control device, characterized in that. 기억관리장치의 데이터 입출력 명령에 의해 메모리 장치에 소정의 테이블 형식으로 데이터를 저장하거나 상기 데이터를 출력하게 하는 데이터의 어드레스 인덱스하여 발생시키는 장치에 있어서, A device for storing data in a predetermined table format by a data input / output command of a storage management device or by generating an address index of data for causing the data to be output. 루프 카운트 정보에 의해서 다수의 어드레스 오프셋 정보를 분할하여 출력하는 오프셋선택 다중화기; 및An offset selection multiplexer for dividing and outputting a plurality of address offset information by loop count information; And 상기 메모리 장치에 저장된 데이터의 어드레스 정보를 입력받고, 상기 어드레스 정보와 상기 어드레스 오프셋 정보를 연산하여 상기 테이블내의 새로운 어드 레스 정보를 출력하는 연산기를 포함하는 것을 특징으로 하는 데이터 어드레스 인덱싱 장치.And a calculator which receives address information of data stored in the memory device, calculates the address information and the address offset information, and outputs new address information in the table. 제 6항에 있어서,The method of claim 6, 상기 데이터 어드레스 인덱싱 장치가 발생시키는 어드레스 정보는 MPEG-4 Part 10인 H.264/AVC 압축 형식 또는 MPEG-4 Part 3 BSAC 압축 형식 또는 MPEG-4 BIFS 압축 형식 중 어느 하나의 압축 형식의 데이터가 저장된 테이블의 인덱싱 어드레스 정보인 것을 특징으로 하는 데이터 어드레스 인덱싱 장치. The address information generated by the data address indexing apparatus stores data in one of an MPEG-4 Part 10 H.264 / AVC compressed format, an MPEG-4 Part 3 BSAC compressed format, and an MPEG-4 BIFS compressed format. And data indexing address information of a table. 메모리장치내의 테이블 형식으로 저장된 데이터를 입력받아서 상기 메모리장치내의 상기 테이블 형식으로 저장된 데이터를 출력하는 인터페이스의 결과가 다른 인터페이스의 입력 데이터로 사용되는 다중 인터페이스형식이 포함된 코드를 수행할 경우 상기 다중 인터페이스에서 데이터를 호출하는 방법에 있어서,When the result of the interface for receiving data stored in the table format in the memory device and outputting the data stored in the table format in the memory device performs a code including a multiple interface format used as input data of another interface, the multiple interface In the method of calling data in, (a) 상기 메모리장치내의 테이블 형식으로 저장된 다중 인터페이스의 인수 데이터의 테이블 어드레스를 발생시키는 단계; 및(a) generating a table address of argument data of multiple interfaces stored in a table format in the memory device; And (b) 상기 발생된 어드레스를 갖는 데이터를 입력 값으로 하는 인터페이스의 상기 입력 값에 대한 결과 데이터가 저장된 상기 테이블의 어드레스를 발생시키는 단계; (b) generating an address of said table in which result data for said input value of an interface whose data having said generated address is taken as an input value; (c) 상기 (b) 단계에서 발생된 어드레스를 갖는 데이터가 출력을 원하는 인터페이스의 입력값이지 여부를 판단하고, 상기 판단 결과 그렇지 않을 경우에는 상 기 (b) 단계를 반복하고, 출력을 원하는 인터페이스의 입력값인 경우 (d) 단계로 가는 단계; 및(c) It is determined whether the data having the address generated in step (b) is an input value of the interface to which the output is desired. If the result of the determination is not, the step (b) is repeated. (D) step if the input value of; And (d) 상기 (c)단계의 판단결과 상기 발생된 어드레스가 출력을 원하는 인터페이스의 입력값에 대한 어드레스인 경우, 상기 입력값에 대한 인터페이스 값을 출력하는 단계를 포함하는 것을 특징으로 하는 데이터 호출 방법.and (d) outputting an interface value for the input value when the generated address is an address for an input value of an interface to be output as a result of the determination of step (c). . 제 8항에 있어서,The method of claim 8, 상기 (b) 단계에서 발생되는 테이블 어드레스는 상기 (a)단계에서 발생된 어드레스 정보에 소정의 어드레스 오프셋를 연산하여 결정되는 것을 특징으로 하는 데이터 호출 방법.The table address generated in the step (b) is determined by calculating a predetermined address offset to the address information generated in the step (a). 제 9항에 있어서,The method of claim 9, 상기 소정의 어드레스 오프셋은 인터페이스 결과값이 저장된 상기 테이블내의 베이스 어드레스로 결정되는 것을 특징으로 하는 데이터 호출 방법.And the predetermined address offset is determined by a base address in the table in which an interface result value is stored. 제 10항에 있어서,The method of claim 10, 상기 메모리장치내의 테이블 형식은 MPEG-4 Part 10인 H.264/AVC 압축 형식 또는 MPEG-4 Part 3 BSAC 압축 형식 또는 MPEG-4 BIFS 압축 형식 중 어느 하나의 압축 형식으로 데이터가 저장된 테이블 형식과 같은 것을 특징으로 하는 데이터 호출 방법.The table format in the memory device is the same as the table format in which data is stored in any one of the MPEG-4 Part 10 H.264 / AVC compression format, the MPEG-4 Part 3 BSAC compression format, or the MPEG-4 BIFS compression format. Data call method, characterized in that.
KR1020050047846A 2005-06-03 2005-06-03 Apparatus controlling data access and method for calling data KR100698310B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050047846A KR100698310B1 (en) 2005-06-03 2005-06-03 Apparatus controlling data access and method for calling data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050047846A KR100698310B1 (en) 2005-06-03 2005-06-03 Apparatus controlling data access and method for calling data

Publications (2)

Publication Number Publication Date
KR20060126147A KR20060126147A (en) 2006-12-07
KR100698310B1 true KR100698310B1 (en) 2007-03-23

Family

ID=37730143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050047846A KR100698310B1 (en) 2005-06-03 2005-06-03 Apparatus controlling data access and method for calling data

Country Status (1)

Country Link
KR (1) KR100698310B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990037571A (en) * 1997-10-28 1999-05-25 씨. 필립 채프맨 A data pointer for outputting an indirect addressing mode address in a single period and a method of providing the same
KR100246469B1 (en) 1997-06-30 2000-03-15 김영환 Lru memory
US20020184430A1 (en) 1999-12-09 2002-12-05 Masaki Ukai Memory access device and method using address translation history table
KR20040047398A (en) * 2002-11-30 2004-06-05 엘지전자 주식회사 Method for data access using cache memory
KR100456215B1 (en) 2002-11-11 2004-11-06 주식회사 에이디칩스 cache system using the block buffering and the method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100246469B1 (en) 1997-06-30 2000-03-15 김영환 Lru memory
KR19990037571A (en) * 1997-10-28 1999-05-25 씨. 필립 채프맨 A data pointer for outputting an indirect addressing mode address in a single period and a method of providing the same
US20020184430A1 (en) 1999-12-09 2002-12-05 Masaki Ukai Memory access device and method using address translation history table
KR100456215B1 (en) 2002-11-11 2004-11-06 주식회사 에이디칩스 cache system using the block buffering and the method
KR20040047398A (en) * 2002-11-30 2004-06-05 엘지전자 주식회사 Method for data access using cache memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1019990037571 *

Also Published As

Publication number Publication date
KR20060126147A (en) 2006-12-07

Similar Documents

Publication Publication Date Title
US20200364054A1 (en) Processor subroutine cache
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
JPH04313121A (en) Instruction memory device
CN109997109B (en) Stream engine with extraction advance hysteresis
EP1618466B1 (en) Data processing in which concurrently executed processes communicate via a fifo buffer
JPH10134036A (en) Single-instruction multiple data processing for multimedia signal processor
US6202143B1 (en) System for fetching unit instructions and multi instructions from memories of different bit widths and converting unit instructions to multi instructions by adding NOP instructions
US7805590B2 (en) Coprocessor receiving target address to process a function and to send data transfer instructions to main processor for execution to preserve cache coherence
CN112667289A (en) CNN reasoning acceleration system, acceleration method and medium
CN110806900B (en) Memory access instruction processing method and processor
EP1974254B1 (en) Early conditional selection of an operand
KR101497346B1 (en) System and method to evaluate a data value as an instruction
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
US6327648B1 (en) Multiprocessor system for digital signal processing
US10437598B2 (en) Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
JP4613168B2 (en) Instruction alignment method and apparatus
KR100698310B1 (en) Apparatus controlling data access and method for calling data
KR20090023418A (en) Method and apparatus for interfacing a processor and coprocessor
US6701426B1 (en) Switching between a plurality of branch prediction processes based on which instruction set is operational wherein branch history data structures are the same for the plurality of instruction sets
US7925862B2 (en) Coprocessor forwarding load and store instructions with displacement to main processor for cache coherent execution when program counter value falls within predetermined ranges
JP2020502669A (en) Vector generation instruction
KR19980018071A (en) Single instruction multiple data processing in multimedia signal processor
GB2540944A (en) Vector operand bitsize control
US6115805A (en) Non-aligned double word fetch buffer
JP4283226B2 (en) Data processing device that performs instruction parallel processing depending on address range

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091230

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee