KR100698310B1 - Apparatus controlling data access and method for calling data - Google Patents
Apparatus controlling data access and method for calling data Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing 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
도 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
도 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
데이터 어드레스 인덱싱 장치(620)는 상기 장치에 입력된 어드레스 정보에 어드레스 오프셋 값을 연산하여 새로운 어드레스 정보를 출력하며, 이와 같은 과정이 반복되는 회수는 루프 카운트(loop count) 정보에 의해 정해진다. 따라서, 상기 데이터 어드레스 인덱싱 장치(620)는 메모리장치(400)에서 출력되는 데이터를 기억관리장치로 보내야 하는지, 아니면 상기 데이터의 어드레스를 이용하여 새로운 어드레스 정보를 출력해야 하는지를 상기 입력된 루프 카운트 정보로 결정한다. 상기 데이터 어드레스 인덱싱 장치(620)는 연산한 어드레스 정보와 루프 카운트 정보를 모드선택 다중화기(650)에 출력한다. 상기 모드선택 다중화기(650)는 상기 입력된 루프 카운트 정보를 이용해서 상기 모드선택 다중화기(650)에 입력되는 기억관리장치의 데이터 억세스 정보와 데이터 어드레스 인덱싱 장치(620)에서 출력되는 새로운 어드레스 정보에 대한 데이터 억세스 정보를 분할하여 메모리장치(400)로 출력한다.The data address
도 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
그리고, 상기 루프 카운터는 새로운 어드레스 정보가 출력되면 상기 출력된 회수를 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
본 발명에 의한 데이터 억세스 제어 장치와 데이터 어드레스 인덱싱 장치의 일 실시예를 구체적으로 설명하기 위해 종래기술에서 설명한 동일한 예를 이용하여 데이터를 억세스 하는 과정을 설명한다. 본 발명에 의한 데이터 억세스 제어 장치가 메모리장치내에 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)
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)
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 |
-
2005
- 2005-06-03 KR KR1020050047846A patent/KR100698310B1/en not_active IP Right Cessation
Patent Citations (5)
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)
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 |