KR100770448B1 - Bit extracting device and microprocessor using this bit extracting device - Google Patents

Bit extracting device and microprocessor using this bit extracting device Download PDF

Info

Publication number
KR100770448B1
KR100770448B1 KR1020010031729A KR20010031729A KR100770448B1 KR 100770448 B1 KR100770448 B1 KR 100770448B1 KR 1020010031729 A KR1020010031729 A KR 1020010031729A KR 20010031729 A KR20010031729 A KR 20010031729A KR 100770448 B1 KR100770448 B1 KR 100770448B1
Authority
KR
South Korea
Prior art keywords
data
bit
register
memory
bits
Prior art date
Application number
KR1020010031729A
Other languages
Korean (ko)
Other versions
KR20020093262A (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 KR1020010031729A priority Critical patent/KR100770448B1/en
Publication of KR20020093262A publication Critical patent/KR20020093262A/en
Application granted granted Critical
Publication of KR100770448B1 publication Critical patent/KR100770448B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

본 발명은 가변장 부호화된 데이터를 복원하는 과정에서 필요한 연속적인 비트를 효율적으로 추출하여 실시간 처리가 가능하도록 하는 비트 추출기에 관한 것이다. 본 발명에 의한 비트 추출기는 메모리 데이터 저장부와 잔여 데이터 정렬부와 비트 추출부와 제어부를 포함하고 있다. 메모리 데이터 저장부는 메모리로부터 데이터를 판독하여 저장한다. 잔여 데이터 정렬부는 메모리 데이터 저장부로부터 입력받은 데이터 중에서 추출되고 남은 데이터를 바이트 정렬시킨다. 비트 추출부는 잔여 데이터 정렬부로부터 비트 데이터를 추출하여 오른쪽 정렬시켜 출력한다. 제어부는 비트 추출부로 하여금 소정수의 비트를 출력하도록 하는 쉬프트 제어신호와, 메모리 데이터 저장부에 저장된 모든 데이터가 비트 추출부를 통하여 추출된 경우 메모리 데이터 저장부로 하여금 메모리의 다음 데이터를 판독하도록 하는 메모리 판독 인에이블 신호를 생성한다. The present invention relates to a bit extractor for efficiently extracting consecutive bits necessary in a process of restoring variable length coded data to enable real-time processing. The bit extractor according to the present invention includes a memory data storage unit, a residual data alignment unit, a bit extractor, and a controller. The memory data storage unit reads and stores data from the memory. The residual data alignment unit performs byte alignment on the remaining data extracted from the data received from the memory data storage unit. The bit extractor extracts the bit data from the residual data alignment unit and right-aligns the bit data. The control unit reads a shift control signal for causing the bit extracting unit to output a predetermined number of bits and a memory reading for causing the memory data storage unit to read the next data in the memory when all data stored in the memory data storage unit are extracted through the bit extracting unit. Generate an enable signal.

비트 추출, 가변장 부호화, 배럴 쉬프트 회로, 메모리 동작Bit Extraction, Variable Length Coding, Barrel Shift Circuit, Memory Operation

Description

비트 추출 장치 및 이를 이용하는 마이크로 프로세서{BIT EXTRACTING DEVICE AND MICROPROCESSOR USING THIS BIT EXTRACTING DEVICE}BIT EXTRACTING DEVICE AND MICROPROCESSOR USING THIS BIT EXTRACTING DEVICE}

도 1은 본 발명에 의한 비트 추출 장치가 적용되는 전체 시스템의 블록도.1 is a block diagram of an entire system to which a bit extraction apparatus according to the present invention is applied.

도 2는 본 발명의 일 실시예에 의한 비트 추출부의 구성도.2 is a block diagram of a bit extracting unit according to an embodiment of the present invention;

도 3은 본 발명에 의한 제어부의 블록도.3 is a block diagram of a control unit according to the present invention.

도 4는 본 발명의 다른 실시예에 의한 비트 추출부의 구성도.4 is a block diagram of a bit extracting unit according to another embodiment of the present invention;

[도면의 참조부호에 대한 설명][Description of Reference Symbol in Drawing]

101 : 메모리 103 : 비트 추출부101: memory 103: bit extraction unit

105 : 제어부 S1 S3 : 배럴 쉬프트 회로105: control unit S1 S3: barrel shift circuit

R1, R5 : 레지스터 M1, M3 : 멀티플렉서R1, R5: Registers M1, M3: Multiplexers

301 : 추출 비트수 레지스터 303 : 어드레스 카운터301: Number of extracted bits register 303: Address counter

305 : 쉬프트 비트수 카운터 307 : 제어신호 생성부305: shift bit counter 307: control signal generation unit

본 발명은 비트 추출기에 관한 것으로 특히, 가변장 부호화(variable length coding : 이하 VLC라고 함)된 데이터를 복원하는 과정에서 필요한 연속적인 비트를 효율적으로 추출하여 실시간 처리가 가능하도록 하는 비트 추출기에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a bit extractor, and more particularly, to a bit extractor capable of efficiently extracting consecutive bits required in a process of restoring variable length coding (VLC) data in real time. .

인터넷 및 정보처리기술의 발달과 더불어 대용량의 데이터를 전송할 필요성이 날로 커지고 있다. 대용량의 데이터를 제한된 통신채널 상에서 효율적으로 전송하기 위해 다양한 압축 및 복원 기술이 사용되고 있으며, 이러한 기술들의 핵심은 허프만 코드(Huffman code)와 같은 가변장 부호를 이용하는데 있다. With the development of the Internet and information processing technology, the need for transmitting large amounts of data is increasing day by day. Various compression and decompression techniques are used to efficiently transmit large amounts of data on limited communication channels, and the core of these techniques is to use variable length codes such as Huffman codes.

한편, 역사적으로 필요에 따라 다양한 용도의 특화 프로세서들(dedicated processors)이 등장하여 왔다. 그러나 데이터의 압축 및 복원을 하드웨어적으로 처리하는 문제는 비교적 최근에야 그 중요성이 대두되기 시작했으며, 아직까지는 대부분이 DSP(digital signal processor)와 같은 범용 프로세서에 소프트웨어를 탑재하여 구현되었다. Historically, dedicated processors for various purposes have emerged as needed. However, the problem of hardware processing of data compression and decompression has only recently become important, and so far, most of them have been implemented by installing software in general-purpose processors such as digital signal processors (DSPs).

가변장 부호를 하드웨어적으로 처리하기 위해서는 바이트 또는 워드 단위로 메모리에 저장되어 있는 데이터로부터 필요한 비트들을 연속적으로 추출하여 사용할 수 있어야 한다. 이 때 추출된 비트들은 다음 과정의 처리에 알맞도록 오른쪽 정렬(right align)이 되어 있어야 하며, 추출되고 남은 비트들은 다음 번 추출을 위해 왼쪽 정렬(left align)이 되어 있어야 한다. 이 때 어려운 점은 사용하는 비트수가 일정 길이를 가지지 않기 때문에 메모리에 저장된 데이터의 경계(boundary)를 무시하고 비트들을 필요한 길이만큼 끊어서 사용할 수 있어야 한다는 것이다. In order to process the variable length code in hardware, it is necessary to continuously extract necessary bits from data stored in memory in byte or word units. At this time, the extracted bits must be right aligned to suit the processing of the next process, and the remaining bits must be left aligned for the next extraction. The difficulty here is that because the number of bits used does not have a certain length, it is necessary to ignore the boundaries of the data stored in memory and break the bits as necessary.

이러한 처리의 수행을 위해 꼭 필요한 것은 배럴 쉬프트 회로(barrel shifter)와 수치 논리 연산 회로(arithmetic/logix unit : 이하 ALU"라고 함) 이다. 일반적인 DSP의 경우 배럴 쉬프트 회로는 제공되지 않을 수도 있으며, 비록 제공된다 하더라도 상기한 바와 같은 복잡한 연산을 ALU와 배럴 쉬프트 회로만으로 처리하는 것은 상당히 비효율적이다. 즉, 연산량이 증가하고 매우 많은 회수의 메모리 읽기가 필요하다는 문제점이 있다. Barrel shifters and arithmetic / logix units (hereinafter referred to as ALUs) are essential for the performance of these processes. In general DSPs, barrel shifters may not be provided. Even if provided, processing such complex operations with only the ALU and barrel shift circuits is quite inefficient, ie, the amount of computation increases and a very large number of memory reads are required.

따라서 본 발명은 연속적으로 필요한 만큼의 비트들을 추출하는데 보다 효율적인 하드웨어 구조를 제안하는 것을 일 목적으로 한다. Accordingly, an object of the present invention is to propose a more efficient hardware structure for extracting as many bits as necessary continuously.

또한 본 발명은 비트 추출 연산을 효율적으로 수행하는 마이크로 프로세서를 제안하는 것을 다른 목적으로 한다. Another object of the present invention is to propose a microprocessor which efficiently performs bit extraction operations.

전술한 바와 같은 목적을 달성하기 위하여 본 발명은 메모리에 저장되어 있는 데이터로부터 비트 데이터를 연속적으로 추출하는 장치로서, 메모리 데이터 저장부와 잔여 데이터 정렬부와 비트 추출부와 제어부를 포함하고 있다. 메모리 데이터 저장부는 메모리로부터 데이터를 판독하여 저장한다. 잔여 데이터 정렬부는 메모리 데이터 저장부로부터 입력받은 데이터 중에서 추출되고 남은 데이터를 바이트 정렬시킨다. 비트 추출부는 잔여 데이터 정렬부로부터 비트 데이터를 추출하여 오른쪽 정렬시켜 출력한다. 제어부는 비트 추출부로 하여금 소정수의 비트를 출력하도록 하는 쉬프트 제어신호와, 메모리 데이터 저장부에 저장된 모든 데이터가 비트 추출부를 통하여 추출된 경우 메모리 데이터 저장부로 하여금 메모리의 다음 데이터를 판독하도록 하는 메모리 판독 인에이블 신호를 생성한다. In order to achieve the above object, the present invention is a device for continuously extracting bit data from the data stored in the memory, and includes a memory data storage unit, a residual data alignment unit, a bit extracting unit and a control unit. The memory data storage unit reads and stores data from the memory. The residual data alignment unit performs byte alignment on the remaining data extracted from the data received from the memory data storage unit. The bit extractor extracts the bit data from the residual data alignment unit and right-aligns the bit data. The control unit reads a shift control signal for causing the bit extracting unit to output a predetermined number of bits and a memory reading for causing the memory data storage unit to read the next data in the memory when all data stored in the memory data storage unit are extracted through the bit extracting unit. Generate an enable signal.

메모리 데이터 저장부는 제1 레지스터와 제1 배럴 쉬프트 회로와 제1 멀티플 렉서를 구비하고 있다. 제1 레지스터는 메모리로부터 판독되는 L 비트의 워드 데이터를 저장한다. 제1 배럴 쉬프트 회로는 제1 레지스터에 저장된 워드 데이터를 입력받고, 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력한다. 제1 멀티플렉서는 메모리로부터 데이터를 판독할 때는 판독되는 데이터를 입력받아 제1 레지스터로 출력하고, 제1 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 L 비트를 입력받아 제1 레지스터로 출력한다. The memory data storage unit includes a first register, a first barrel shift circuit, and a first multiplexer. The first register stores L bits of word data read from the memory. The first barrel shift circuit receives word data stored in the first register, shifts the input data by the bit specified by the shift control signal, and outputs the shifted result. When the first multiplexer reads data from the memory, the first multiplexer receives the read data and outputs the read data to the first register. After the first barrel shift circuit performs the shift operation, the first multiplexer receives the L bit, which is the result of the shift, is output to the first register. do.

잔여 데이터 정렬부는 제2 레지스터와 제2 배럴 쉬프트 회로를 구비하고 있다. 제2 레지스터는 M 비트의 데이터를 저장한다. 제2 배럴 쉬프트 회로는 제1 레지스터에 저장된 L 비트의 데이터를 하위비트 데이터로 입력받고, 제2 레지스터에 저장된 M 비트의 데이터를 상위비트 데이터로 입력받아서 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과인 M 비트를 제2 레지스터로 피드백시킨다. 잔여 데이터 정렬부는 메모리로부터 판독되는 출력 데이터와 제2 배럴 쉬프트 회로로부터의 출력인 M 비트의 데이터를 입력으로 받아 어느 한 데이터를 제2 레지스터로 출력하는 제2 멀티플렉서를 더 포함하는 것이 바람직하다. The remaining data alignment section includes a second register and a second barrel shift circuit. The second register stores M bits of data. The second barrel shift circuit receives the L bit data stored in the first register as the lower bit data, receives the M bit data stored in the second register as the upper bit data, and receives the bit specified by the shift control signal. After shifting the data, the shifted M bit is fed back to the second register. The residual data alignment unit preferably further includes a second multiplexer which receives the output data read out from the memory and the M bit data which is the output from the second barrel shift circuit and outputs any data to the second register.

비트 추출부는 제3 레지스터와 제3 배럴 쉬프트 회로와 제3 멀티플렉서를 구비하고 있다. 제3 레지스터는 N 비트의 데이터를 저장한다. 제3 배럴 쉬프트 회로는 제2 레지스터에 저장된 M 비트의 데이터를 하위비트 데이터로 입력받고, 제3 레지스터에 저장된 N 비트의 데이터를 상위비트 데이터로 입력받아서 쉬프트 제어신 호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력한다. 제3 멀티플렉서는 제3 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과의 출력 데이터인 N 비트를 입력받아 제3 레지스터로 출력하고, 제3 레지스터에 저장된 데이터가 판독된 후에는 N 비트의 0 데이터를 입력받아 제3 레지스터로 출력한다. The bit extracting section includes a third register, a third barrel shift circuit, and a third multiplexer. The third register stores N bits of data. The third barrel shift circuit receives the M bit data stored in the second register as the low bit data, the N bit data stored in the third register as the high bit data, and inputs the bit specified by the shift control signal. After shifting the received data, output the shifted result. The third multiplexer receives the N bits, which are output data of the shifted result after the third barrel shift circuit performs the shift operation, and outputs the N bits to the third register, and after the data stored in the third register is read, 0 bits of N bits. The data is input and output to the third register.

제어부는 메모리 판독 인에이블 신호에 따라 데이터가 판독되는 메모리의 위치를 표시하는 어드레스 신호를 더 생성한다. 또한 제어부는 메모리로부터 새로운 데이터 워드가 판독되어 제1 레지스터에 저장된 후, 제1 배럴 쉬프트 회로에서 쉬프트된 비트수와, 제2 레지스터에 저장된 데이터의 내용으로부터 쉬프트될 비트수를 결정하여 쉬프트 제어신호를 생성한다. 제어부는 메모리로부터 새로운 데이터 워드가 판독되어 제1 레지스터에 저장된 후, 제1 배럴 쉬프트 회로에서 쉬프트된 비트수가 데이터 워드의 비트수와 동일한 경우 메모리 판독 인에이블 신호를 생성한다. 또한 제어부는 제1 내지 제3 배럴 쉬프트 회로에서의 쉬프트 후에 제1 내지 제3 레지스터에 대한 로딩(loading)을 인에이블 시키는 로딩 인에이블 신호를 생성한다. The control unit further generates an address signal indicating the location of the memory from which data is read in accordance with the memory read enable signal. In addition, the control unit reads a new data word from the memory and stores it in the first register, and then determines the number of bits shifted in the first barrel shift circuit and the number of bits to be shifted from the contents of the data stored in the second register. Create After the new data word is read from the memory and stored in the first register, the controller generates a memory read enable signal when the number of bits shifted in the first barrel shift circuit is equal to the number of bits of the data word. The control unit also generates a load enable signal for enabling loading of the first to third registers after the shift in the first to third barrel shift circuits.

제어부는 추출하고자 하는 비트수를 기억하는 추출 비트수 레지스터와, 메모리 판독 인에이블 신호에 따라 판독될 데이터 워드의 어드레스를 생성하는 어드레스 카운터와, 메모리로부터 새로운 데이터 워드가 판독되어 제1 레지스터에 저장된 후, 제1 배럴 쉬프트 회로에서 쉬프트된 비트수를 기억하는 비트수 카운터와, 비트수 카운터로부터의 쉬프트된 비트수와 추출 비트수 레지스터로부터의 추출하고자 하는 비트수를 비교하여 쉬프트 제어신호 또는 메모리 판독 인에이블 신호를 생성하는 제어신호 생성부를 구비하고 있다. The control unit includes: an extraction bit number register for storing the number of bits to be extracted; an address counter for generating an address of a data word to be read according to the memory read enable signal; and a new data word is read from the memory and stored in the first register. And compares the bit number counter for storing the shifted bit number in the first barrel shift circuit with the shifted bit number from the bit number counter and the number of bits to be extracted from the extraction bit number register. And a control signal generator for generating an enable signal.

제1 레지스터에 저장되는 데이터의 비트수 L은 메모리의 워드 비트수인 것이 바람직하다. 또한 제2 레지스터의 비트수는 메모리 워드의 비트수와 동일하고, 제2 배럴 쉬프트 회로의 출력 비트수도 메모리 워드의 비트수와 동일한 것이 바람직하다. The number of bits L of data stored in the first register is preferably the number of word bits of the memory. It is also preferable that the number of bits of the second register is equal to the number of bits of the memory word, and the number of output bits of the second barrel shift circuit is also equal to the number of bits of the memory word.

별개의 여러 비트 스트림(bit stream)을 처리하기 위해 기존에 처리하던 비트 스트림을 일시적으로 저장하는 백업용 제5 내지 제6 레지스터를 더 구비하는 것이 바람직하다. 제5 레지스터는 제2 레지스터에 저장된 데이터를 입력으로 받아서 제2 멀티플렉서의 입력으로 제공하며, 제6 레지스터는 제1 레지스터에 저장된 데이터를 입력으로 받아서 제1 멀티플렉서의 입력으로 제공한다. 또한 다른 구성요소와의 데이터 전송을 위하여 제1 내지 제3 레지스터의 출력단자에 연결되며, 제1 내지 제3 멀티플렉서의 하나의 입력단자에 연결되는 데이터 버스를 더 구비하는 것이 바람직하다.It is preferable to further include the fifth to sixth registers for backup which temporarily store the bit streams which have been previously processed to process several separate bit streams. The fifth register receives data stored in the second register as an input and provides it as an input of the second multiplexer, and the sixth register receives data stored in the first register as an input and provides it as an input of the first multiplexer. In addition, it is preferable to further include a data bus connected to the output terminal of the first to third registers for data transmission with other components, and to one input terminal of the first to third multiplexers.

전술한 바와 같은 구성을 통하여 필요한 비트들이 순차적으로 물 흐르듯이 추출됨으로써 새로운 데이터를 읽어올 때만 메모리 연산을 수행하여 불필요한 메모리 연산을 배제한다. Through the above-described configuration, the necessary bits are sequentially extracted as water flows, thereby performing memory operations only when reading new data, thereby eliminating unnecessary memory operations.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리킨다. Hereinafter, with reference to the accompanying drawings will be described embodiments of the present invention; Like reference numerals in the drawings indicate the same or similar components.

도 1은 본 발명에 의한 비트 추출 장치가 적용되는 전체 시스템의 블록도이 다. 도 1에서 101은 메모리, 103은 비트 추출부, 105는 제어부를 각각 가리킨다. 비트 추출부(103)는 메모리 출력단자(RamOut)를 통하여 메모리(101)로부터 데이터를 워드 단위로 판독하여 저장한다. 제어부(105)는 출력단자(Out1)를 통하여 비트 추출부(103)로부터 바이트 정렬된 잔여 데이터를 읽는다. 제어부(105)는 이 잔여 데이터로부터 다음에 몇 비트를 추출할 지를 특정하는 쉬프트 제어신호(ShiftAmt)를 생성하여 비트 추출부(103)로 전송하고, 비트 추출부(103)는 저장되어 있는 데이터를 쉬프트시킴으로써 이 쉬프트 제어신호(ShiftAmt)에 의해 특정되는 비트수만큼의 비트를 추출하여 출력단자(Out2)를 통해 출력한다. 제어부(105)는 추출되고 남은 데이터의 상태를 저장하기 위하여 로드 인에이블 신호(LoadEn)를 생성하여 비트 추출부(103)로 전송하고, 비트 추출부(103)는 이 로드 인에이블 신호를 내부에 구비된 레지스터들의 로드 인에이블 신호로 사용한다. 메모리(101)로부터 새롭게 판독되어 비트 추출부(103)에 저장된 데이터가 비트 추출부(103)로부터 모두 추출되면, 제어부(105)는 메모리 판독 인에이블 신호(RamRead)를 생성하므로 메모리(101)로부터 새로운 데이터가 판독되어 메모리 출력단자(RamOut)를 경유하여 비트 추출부(103)에 저장되도록 한다. 제어부(105)는 메모리(101)로부터 새로운 데이터가 비트 추출부(103)로 저장된 후, 발생된 쉬프트 제어신호(ShiftAmt)를 모니터링함으로써 메모리 판독 인에이블 신호(RamRead)의 발생 시점을 판정한다. 데이터가 판독될 메모리(101)의 위치는 제어부(105)로 발생하는 메모리 어드레스 신호(RamAddr)에 의해 특정된다. 1 is a block diagram of an entire system to which a bit extraction apparatus according to the present invention is applied. In FIG. 1, 101 denotes a memory, 103 denotes a bit extractor, and 105 denotes a controller. The bit extracting unit 103 reads data from the memory 101 in units of words through the memory output terminal RamOut and stores the data. The control unit 105 reads the byte-aligned residual data from the bit extraction unit 103 through the output terminal Out1. The control unit 105 generates a shift control signal ShiftAmt that specifies how many bits to extract from the remaining data to the bit extraction unit 103, and the bit extraction unit 103 transmits the stored data. By shifting, as many bits as the number of bits specified by this shift control signal ShiftAmt are extracted and output through the output terminal Out2. The control unit 105 generates a load enable signal LoadEn and transmits the load enable signal LoadEn to the bit extracting unit 103 so as to store the state of the extracted data. The bit extracting unit 103 transmits the load enable signal therein. It is used as a load enable signal of the provided registers. When all data newly read from the memory 101 and stored in the bit extracting unit 103 are extracted from the bit extracting unit 103, the control unit 105 generates a memory read enable signal RamRead. New data is read out and stored in the bit extraction section 103 via the memory output terminal RamOut. The controller 105 determines the generation time of the memory read enable signal RamRead by monitoring the shift control signal ShiftAmt generated after the new data is stored in the bit extraction unit 103 from the memory 101. The position of the memory 101 to which data is to be read is specified by the memory address signal RamAddr generated by the control section 105.

도 2는 본 발명의 일 실시예에 의한 비트 추출부의 구성도이다. 도 2에 도시 되어 있는 바와 같이, 본 실시예에 의한 비트 추출부는 연속적인 비트 추출 과정이 끊임없이 이루어지도록 배럴 쉬프팅(barrel shifting) 기능을 가진 3개의 배럴 쉬프트 회로(S1, S2, S3)들을 직렬로 배치한 구조이다. 본 실시예에 의한 비트 추출부는 3개의 레지스터(R1, R2, R3)와, 3개의 멀티플렉서(M1, M2, M3)를 더 구비하고 있다. 2 is a block diagram of a bit extracting unit according to an embodiment of the present invention. As shown in FIG. 2, the bit extracting unit according to the present embodiment serially integrates three barrel shifting circuits S1, S2, and S3 having a barrel shifting function to continuously perform a continuous bit extraction process. It is a structure arranged. The bit extracting unit according to the present embodiment further includes three registers R1, R2, and R3, and three multiplexers M1, M2, and M3.

배럴 쉬프트 회로(S1, S2, S3)는 모두 레프트 쉬프트 회로(left shift circuit)이거나 라이트 쉬프트 회로(right shift circuit)이다. 단 라이트 쉬프트 회로인 경우 R1과 R3의 역할이 뒤집어 지므로 이에 따른 연결관계도 모두 바뀐다. 각 레지스터의 출력은 해당 배럴 쉬프트 회로의 입력으로 연결되고, 또한 제2 레지스터(R2)의 출력은 출력단자(OUT1)으로, 제3 레지스터(R3)의 출력은 출력단자(OUT2)로 전달된다. 레지스터와 쉬프트 회로의 비트수는 메모리의 출력 비트수와 일치한다. 단 R2와 R3, S3와 S2, M3와 M2의 비트수는 1 바이트(8 비트)이고, R1, M1, S1의 비트수만 메모리 워드의 비트수와 같게 할 수 있다. 이와 달리 각 레지스터의 비트수를 메모리 워드의 비트수의 정수배로 구성할 수도 있다. 이와 같은 약간의 변동은 숙련된 설계자의 의도에 따라 얼마든지 변형이 가능하다. The barrel shift circuits S1, S2, S3 are all left shift circuits or right shift circuits. However, in the case of the light shift circuit, the roles of R1 and R3 are reversed, and thus the connection relationship is also changed. The output of each register is connected to the input of the corresponding barrel shift circuit, and the output of the second register R2 is transferred to the output terminal OUT1 and the output of the third register R3 is transferred to the output terminal OUT2. The number of bits in the register and shift circuit matches the number of output bits in the memory. However, the number of bits of R2 and R3, S3 and S2, M3 and M2 is one byte (8 bits), and only the number of bits of R1, M1, and S1 can be equal to the number of bits in the memory word. Alternatively, the number of bits in each register may be configured as an integer multiple of the number of bits in the memory word. Such slight variations can be modified as many as the intention of the skilled designer.

제1 레지스터(R1)와 제1 배럴 쉬프트 회로(S1)와 제1 멀티플렉서(M1)는 메모리(101)로부터 데이터를 판독하여 저장하는 메모리 데이터 저장부를 구성한다. 제1 멀티플렉서(M1)는 메모리 출력단자(RamOut)를 경유하는 메모리 출력과 제1 배럴 쉬프트 회로(S1)의 출력을 2개의 입력으로 받아 들이며, 비트 추출 과정에 따라 제1 레지스터(R1)로 출력한다. 메모리(101)로부터 판독되어 제1 레지스터(R1)에 저장되어 있던 데이터는 제1 배럴 쉬프트 회로(S1)의 상위 비트에 저장되며, 하위 비트에는 메모리 워드의 비트수와 동일한 비트수의 0 데이터가 저장된다. 이렇게 제1 배럴 쉬프트 회로(S1)에 데이터가 저장된 후에 소정수 비트만큼, 예를 들어, 왼쪽으로 쉬프트된 결과를 다시 제1 멀티플렉서(M1)를 경유하여 제1 레지스터(R1)에 저장된다. 제1 배럴 쉬프트 회로(S1)에서 얼마나 쉬프트되는가는 전술한 바와 같이 제어부(105)에 의해 생성된 쉬프트 제어신호(ShiftAmt)에 의해 특정된다. 제1 배럴 쉬프트 회로(S1)의 하위 비트에 메모리 워드의 비트수와 동일한 수의 0 데이터를 저장하는 것은 제1 배럴 쉬프트 회로(S1)가 다른 배럴 쉬프트 회로(S2, S3)와 동일한 크기를 갖도록 하기 위해서이다. The first register R1, the first barrel shift circuit S1, and the first multiplexer M1 constitute a memory data storage unit for reading and storing data from the memory 101. The first multiplexer M1 receives the memory output via the memory output terminal RamOut and the output of the first barrel shift circuit S1 as two inputs, and outputs them to the first register R1 according to the bit extraction process. do. Data read from the memory 101 and stored in the first register R1 is stored in the upper bits of the first barrel shift circuit S1, and the lower bits contain zero data having the same number of bits as the number of bits of the memory word. Stored. After the data is stored in the first barrel shift circuit S1 in this manner, the result shifted to the left by a predetermined number of bits, for example, is stored in the first register R1 via the first multiplexer M1. How much is shifted in the 1st barrel shift circuit S1 is specified by the shift control signal ShiftAmt produced | generated by the control part 105 as mentioned above. Storing the same number of zero data as the number of bits of the memory word in the lower bits of the first barrel shift circuit S1 is such that the first barrel shift circuit S1 has the same size as the other barrel shift circuits S2 and S3. To do that.

제2 레지스터(R2)와 제2 배럴 쉬프트 회로(S2)와 제2 멀티플렉서(M2)는 메모리 데이터 저장부로부터 입력받은 데이터 중에서 추출되고 남은 데이터를 바이트 정렬시키는 잔여 데이터 정렬부를 구성한다. 잔여 데이터 정렬부는 실제로 추출될 비트들을 결정하기 위하여 바이트 정렬(byte alignment)된 데이터(reference output)를 제공한다. 제2 멀티플렉서(M2)는 메모리(101)로부터 판독된 데이터와 제2 배럴 쉬프트 회로(S2)에 저장된 데이터 중에서 메모리 워드 크기의 상위 비트 데이터를 그 입력으로 갖으며, 이 두 입력은 데이터 추출 과정에 따라 제2 레지스터(R2)에 출력된다. 먼저 메모리(101)로부터 판독된 데이터가 제2 멀티플렉서(M2)를 경유하여 제2 레지스터(R2)에 저장된다. 제2 레지스터(R2)에 저장된 내용은 제2 배럴 쉬프트 회로(S2)의 상위 비트에 저장되고, 제1 레지스터(R1)에 저장된 내용이 하위 비트에 저장된다. 제2 배럴 쉬프트 회로(S2)에 저장된 내용은 제1 배럴 쉬프 트 회로(S1)와 동일하게 쉬프트 제어신호(ShiftAmt)에 의해 특정된 비트수만큼, 예를 들어 왼쪽으로 데이터를 쉬프트시키며, 쉬프트된 결과인 메모리 워드 크기의 데이터를 다시 피드백시켜 제2 멀티플렉서(M2)의 입력으로 제공한다. The second register R2, the second barrel shift circuit S2, and the second multiplexer M2 form a residual data alignment unit for byte-aligning the extracted data remaining from the data received from the memory data storage unit. The residual data alignment provides byte aligned data (reference output) to determine the bits to be actually extracted. The second multiplexer M2 has, as its input, upper bit data of a memory word size among the data read from the memory 101 and the data stored in the second barrel shift circuit S2, and these two inputs are used to extract data. Therefore, it is output to the second register R2. First, data read from the memory 101 is stored in the second register R2 via the second multiplexer M2. The contents stored in the second register R2 are stored in the upper bits of the second barrel shift circuit S2, and the contents stored in the first register R1 are stored in the lower bits. The content stored in the second barrel shift circuit S2 shifts the data to the left, for example, by the number of bits specified by the shift control signal ShiftAmt in the same way as the first barrel shift circuit S1. The resulting data of the memory word size is fed back to the input of the second multiplexer M2.

제2 레지스터(R2)의 비트수는 도 3의 VLC 디코딩 회로가 참조하는 비트수보다 크거나 같아야 한다. 그러나 제2 레지스터(R2)의 비트수가 메모리 워드의 비트수와 동일하고, 제2 배럴 쉬프트 회로(S2) 출력부의 비트수도 메모리 워드의 비트수와 동일한 것이 바람직하다. 제2 레지스터(R2)에 저장된 내용은 제1 출력단자(OUT1)를 통해 출력되어, 예를 들어 VLC 디코딩 회로의 입력으로 제공된다. VLC 디코딩 회로로부터 다음에 추출될 코드의 길이가 몇 비트인지를 판정한다. 이러한 판정은 제2 레지스터(R2)가 데이터로 채워진 상태에서 수행될 수 있다. 따라서 초기화 과정에서 제1 레지스터(R1)은 물론 제2 레지스터(R2) 역시 메모리(101)로 판독된 데이터로 채워져야 한다. 제2 멀티플렉서(M2)는 이러한 초기화 과정을 신속하게 수행하기 위해 구비된 것이다. 만약에 제2 멀티플렉서(M2)가 없다면 제1 레지스터(R1)에 데이터를 먼저 저장하고, 이를 제2 배럴 쉬프트 회로(S2)에서 쉬프트시켜 제2 레지스터(R2)에 저장하는 번거스러운 과정을 거쳐야 한다. The number of bits of the second register R2 must be greater than or equal to the number of bits referred to by the VLC decoding circuit of FIG. 3. However, it is preferable that the number of bits of the second register R2 is the same as the number of bits of the memory word, and the number of bits of the output of the second barrel shift circuit S2 is also the same as the number of bits of the memory word. The content stored in the second register R2 is output through the first output terminal OUT1 and is provided to, for example, an input of a VLC decoding circuit. Determine how many bits of the code to be extracted next from the VLC decoding circuit are. This determination may be performed while the second register R2 is filled with data. Therefore, the first register R1 as well as the second register R2 must be filled with data read into the memory 101 during the initialization process. The second multiplexer M2 is provided to quickly perform this initialization process. If there is no second multiplexer M2, data must be stored in the first register R1 first, then shifted in the second barrel shift circuit S2 and stored in the second register R2. .

또한 제3 레지스터(R3)와 제3 배럴 쉬프트 회로(S3)와 제3 멀티플렉서(M3)는 잔여 데이터 정렬부로부터 비트 데이터를 추출하여 오른쪽 정렬시켜 출력하는 비트 추출부를 구성한다. 제3 멀티플렉서(M3)는 모든 비트가 0인 데이터와 제3 배럴 쉬프트 회로(S3)의 출력을 입력으로 받으며, 그 중 한 데이터를 제3 레지스터(R3)에 출력한다. 제3 배럴 쉬프트 회로(S3)는 그 상위 비트에 제3 레지스터(R3)에 저장된 데이터가 입력되며, 그 하위 비트에 제2 레지스터(R2)에 저장된 데이터가 입력된다. In addition, the third register R3, the third barrel shift circuit S3, and the third multiplexer M3 form a bit extraction unit that extracts the right bit data from the remaining data alignment unit and right-aligns the same. The third multiplexer M3 receives data having all bits 0 and the output of the third barrel shift circuit S3 as an input, and outputs one of the data to the third register R3. In the third barrel shift circuit S3, data stored in the third register R3 is input to the upper bits thereof, and data stored in the second register R2 is input to the lower bits thereof.

제2 출력단자(OUT2)를 통하여 제3 레지스터(R3)로부터 필요한 데이터를 추출한 후에는 다음 데이터를 추출하기 전에, 제3 멀티플렉서(M3)를 통해 0 데이터가 제3 레지스터(R3)의 전체 비트와, 제3 배럴 쉬프트 회로(S3)의 상위 비트에 로딩되도록 한다. 즉, 제3 레지스터(R3)와 제3 배럴 쉬프트 회로(S3)의 상위 비트를 클리어시킨다. 이를 통해 배럴 쉬프트 회로의 기능을 구현함으로써, 제3 레지스터(R3)에 저장된 데이터를 다음 처리에서 실제 사용한다. 그러나 허프만 디코더와 같은 VLC 디코더를 구현하는 경우에는, 쉬프트되어서 제3 레지스터(R3)에 저장되는 값들을 직접 사용하지 않고 그냥 버린다. 이런 경우에는 제3 레지스터(R3)가 필요없다. 즉, 제1 출력단자(OUT1)를 통해 출력되는 제2 레지스터(R2)의 값을 이용해 디코더 테이블을 읽을 때, 매치가 되는 경우에는 테이블에서 나오는 출력값이 원하는 실제 정보이다. 제2 레지스터(R2)에 저장된 데이터 중에서 매치 과정에서 실제 사용된 데이터의 비트수가 다음 번 쉬프트시킬 비트수(GetAmt)가 된다. 이 경우 제3 레지스터(R3)를 매번 클리어할 필요가 없다. After extracting the necessary data from the third register R3 through the second output terminal OUT2 and before extracting the next data, the zero data is passed through the third multiplexer M3 with all the bits of the third register R3. The upper bit of the third barrel shift circuit S3 is loaded. That is, the upper bits of the third register R3 and the third barrel shift circuit S3 are cleared. Through this, by implementing the function of the barrel shift circuit, the data stored in the third register R3 is actually used in the next processing. However, when implementing a VLC decoder such as the Huffman decoder, the shifted and stored values in the third register R3 are not directly used but discarded. In this case, the third register R3 is not necessary. That is, when a decoder table is read using the value of the second register R2 output through the first output terminal OUT1, when a match is found, the output value from the table is actual information desired. The number of bits of data actually used in the matching process among the data stored in the second register R2 becomes the number of bits GetAmt to be shifted next. In this case, it is not necessary to clear the third register R3 every time.

도 3은 본 발명에 의한 제어부의 블록도이다. 도 3에서 301은 추출 비트수 레지스터, 302는 VLC 디코딩 회로, 303은 어드레스 카운터(303), 305는 쉬프트 비트수 카운터, 307은 쉬프트 제어신호(ShiftAmt) 또는 메모리 판독 인에이블 신호(RamRead)를 생성하는 제어신호 생성부를 각각 가리킨다. 3 is a block diagram of a control unit according to the present invention. In FIG. 3, 301 is an extraction bit number register, 302 is a VLC decoding circuit, 303 is an address counter 303, 305 is a shift bit counter, and 307 is a shift control signal ShiftAmt or a memory read enable signal RamRead. Respectively indicate the control signal generator.                     

추출 비트수 레지스터(301)는 추출하고자 하는 비트수를 기억하는 레지스터이다. 추출하고자 하는 비트수, 즉 쉬프트하고자 하는 비트수는 도 2와 관련하여 전술한 바와 같이, 제2 레지스터(R2)에 바이트 정렬 또는 왼쪽 정렬된 데이터를 제1 출력단자(OUT1)를 통하여 출력하여 VLC 디코딩 회로(302)에 입력함으로써 판정된다. 도 3에 도시되어 있는 바와 같이, 추출 비트수 레지스터(301)는 제어신호 생성부(307)와 피드백회로를 구성하고 있다. 추출하고자 하는 비트수(GetAmt)가 제1 레지스터(R1)에 남아 있는 데이터의 비트수보다 큰 경우, 우선 제1 레지스터(R1)에 남아 있는 데이터의 비트수만큼 쉬프트시키고, 나머지 비트수의 데이터는 새롭게 메모리(101)로부터 데이터를 판독하여 제1 레지스터(R1)에 저장한 후에 쉬프트시킨다. 이 과정에서 추출하고자 하는 비트수(GetAmt)를 2번 조정할 필요가 있는데, 이를 위하여 피드백회로를 구성한 것이다. VLC 디코딩 회로(302)는 제어부(300) 내에 포함되어 구성될 수도 있고, 별개로 구성될 수도 있다. The extraction bit number register 301 is a register that stores the number of bits to be extracted. As described above with reference to FIG. 2, the number of bits to be extracted, that is, the number of bits to be shifted, outputs the data aligned by the byte or left-aligned to the second register R2 through the first output terminal OUT1 to output the VLC. The determination is made by inputting to the decoding circuit 302. As shown in Fig. 3, the extraction bit number register 301 constitutes a control signal generator 307 and a feedback circuit. When the number of bits GetAmt to be extracted is greater than the number of bits of data remaining in the first register R1, first, the number of bits of data remaining in the first register R1 is shifted by the number of bits remaining, and the data of the remaining number of bits is The data is newly read from the memory 101, stored in the first register R1, and then shifted. In this process, it is necessary to adjust the number of bits (GetAmt) to be extracted twice. For this purpose, a feedback circuit is configured. The VLC decoding circuit 302 may be included in the controller 300 or may be configured separately.

어드레스 카운터(303)는 메모리 판독 인에이블 신호에 따라 판독될 데이터 워드의 어드레스(RamAddr)를 생성하며, 쉬프트 비트수 카운터(305)는 메모리로부터 새로운 데이터 워드가 판독되어 제1 레지스터(R1)에 저장된 후, 제1 배럴 쉬프트 회로(S1)에서 쉬프트된 비트수를 카운트한다. 어드레스 카운터(303)와 쉬프트 비트수 카운터(305)는 하나의 레지스터로 구성되며, 메모리 워드가 8(=23) 비트인 경우 하위 3비트가 쉬프트 비트수 카운터(305)에 해당된다. 도 3에서 어드레스 카운터(303)와 쉬프트 비트수 카운터(305)는 엄밀히 말하면 레지스터이고, 덧셈부(304)와 결함됨으로써 카운터의 기능을 한다. 그러나, 여기서는 편의상 단지 카운터로 지칭한다. 전체 카운터 값은 쉬프트 제어신호(ShiftAmt)와 덧셈부(304)에서 합쳐지므로써, 다음 카운터 값을 생성한다. 메모리(101)로부터 1 워드의 데이터가 제1 레지스터(R1)에 저장되므로, 새로운 데이터가 제1 레지스터(R1)에 저장된 후에 8 비트의 쉬프트가 있었으면 메모리(101)로부터 새로운 데이터 워드를 읽어와야 한다. 8 비트 이내의 쉬프트는 쉬프트 비트수 카운터(305)에서 카운트되며, 8 비트 이상의 쉬프트는 어드레스 카운터(303)에서 카운트되어 새로운 데이터 워드의 어드레스(RamAddr)가 생성된다. The address counter 303 generates an address RamAddr of a data word to be read according to the memory read enable signal, and the shift bit number counter 305 reads a new data word from the memory and stores it in the first register R1. After that, the number of bits shifted in the first barrel shift circuit S1 is counted. The address counter 303 and the shift bit number counter 305 are composed of one register. When the memory word is 8 (= 2 3 ) bits, the lower 3 bits correspond to the shift bit number counter 305. In FIG. 3, the address counter 303 and the shift bit number counter 305 are strictly registers, and function as a counter by being defective with the adder 304. However, here, for the sake of convenience, only the counter is referred to. The total counter value is combined by the shift control signal ShiftAmt and the adder 304 to generate the next counter value. Since one word of data from the memory 101 is stored in the first register R1, if there is an 8-bit shift after new data is stored in the first register R1, a new data word must be read from the memory 101. . Shifts within 8 bits are counted in the shift bit counter 305, and shifts of 8 bits or more are counted in the address counter 303 to generate an address RamAddr of a new data word.

제어신호 생성부(307)는 쉬프트 비트수 카운터(305)로부터의 쉬프트된 비트수(BitCnt)와 추출 비트수 레지스터(301)로부터의 추출하고자 하는 비트수(GetAmt)를 비교하여 쉬프트 제어신호(ShiftAmt) 또는 메모리 판독 인에이블 신호(RamRead)를 생성한다. 쉬프트 제어신호(ShiftAmt)는 전술한 바와 같이, 제1 내지 제3 배럴 쉬프트 회로(S1, S2, S3)에서 쉬프트되는 비트수를 특정한다. 추출하고자 하는 비트수(GetAmt)가 제1 레지스터(R1)에 남아 있는 비트수, 즉 (8 BitCnt)보다 큰 경우, 우선 제1 레지스터(R1)에 남아 있는 비트수를 특정하는 쉬프트 제어신호(ShiftAmt)가 생성된다. 다음에는 메모리(101)로부터 새로운 데이터 워드가 판독되어 제1 레지스터(R1)에 저장된 후, 나머지 비트수를 특정하는 쉬프트 제어신호(ShiftAmt)가 생성된다. 메모리 판독 인에이블 신호(RamRead)는 메모리(101)로부터 새로운 데이터 워드를 판독하고자 할 때 생성된다. 제1 내지 제3 배럴 쉬프트 회로(S1, S2, S3)에서 쉬프트 동작이 수행된 후, 쉬프트된 상태를 저장하기 위 하여 레지스터(R1, R2, R3)의 로딩(loading)을 인에이블시키는 로딩 인에이블 신호(LoadEn)가 제어신호 생성부(307)에서 또한 생성된다. The control signal generation unit 307 compares the shifted bit number BitCnt from the shift bit number counter 305 with the bit number GetAmt to be extracted from the extraction bit number register 301 and shifts the shift control signal ShiftAmt. Or a memory read enable signal RamRead. As described above, the shift control signal ShiftAmt specifies the number of bits shifted in the first to third barrel shift circuits S1, S2, and S3. When the number of bits GetAmt to be extracted is larger than the number of bits remaining in the first register R1, that is, 8 BitCnt, the shift control signal ShiftAmt that first specifies the number of bits remaining in the first register R1. ) Is generated. Next, after a new data word is read from the memory 101 and stored in the first register R1, a shift control signal ShiftAmt is specified which specifies the remaining number of bits. The memory read enable signal RamRead is generated when a new data word is to be read from the memory 101. Loading in which enables loading of registers R1, R2, R3 to store the shifted state after the shift operation is performed in the first to third barrel shift circuits S1, S2, S3. The enable signal LoadEn is also generated in the control signal generator 307.

제어부(300)의 순차 논리 부분은 프로세서의 중앙 제어부에서 마이크로프로그래밍(micro-programming)된 제어 또는 하드와이어링(hardwiring)된 제어의 형태로 제공될 수 있다.The sequential logic portion of the control unit 300 may be provided in the form of micro-programmed control or hardwiring control in the central control unit of the processor.

이하, 도 2 및 도 3를 참조하여 본 발명의 일 실시예에서 허프만 코딩된 다양한 길이의 비트들을 연속적으로 추출하는 과정을 설명한다. 메모리의 데이터 워드의 비트수는 8 비트이고, 추출할 데이터는 메모리의 0 번지에서부터 순차적으로 저장되어 있다고 가정한다.Hereinafter, a process of continuously extracting Huffman coded bits of various lengths in an embodiment of the present invention will be described with reference to FIGS. 2 and 3. It is assumed that the number of bits of the data word of the memory is 8 bits, and the data to be extracted is sequentially stored from address 0 of the memory.

먼저 초기화 조건으로서 제1 레지스터(R1)에 메모리의 첫 번째 데이터를 읽어 들인다(R1 <- MEM[0]). 이 때 전체 카운터(303:305)는 다음 주소인 8을 가리킨다. 메모리의 어드레스는 이 카운터의 하위 세 비트는 사용하지 않으므로 실제 어드레스는 1이 된다. 본 발명의 비트추출기가 허프만 코딩에 이용될 경우, 몇 비트를 추출해야 하는지를 알기 위해서 바이트 정렬된 데이터를 읽어 볼 필요가 있다. 이러한 용도로 제1 출력단자(OUT1)를 사용한다. 따라서 제2 레지스터(R2)의 모든 비트는 항상 모두 차 있어야만 한다. 따라서 추출하고자 하는 비트수를 저장하는 레지스터(301)에는 8을 넣어 제2 레지스터(R2)를 채운다. 제2 레지스터(R2)를 채우는 방법은 2가지가 있는데, 하나는 제1 레지스터(R1)에 저장되어 있는 MEM(0)를 제2 배럴 쉬프트 회로(S2)를 경유하여 제2 레지스터(R2)에 저장하고 제1 레지스터(R1)에는 MEM(1)를 저장하는 것이고, 다른 하나는 제2 멀티플렉서(M2)를 이용하여 메모리(101)로부터 직접 MEM(0)를 제2 레지스터(R2)에 저장한 후 제1 레지스터(R1)에 MEM(1)를 저장하는 것이다. 처리 속도를 고려할 때 후자의 방법이 더 바람직하다. 이 상태까지가 초기화 과정이며 전체 카운터(303:305)는 16를, 어드레스 카운터(303)는 2를 나타낸다. First, the first data of the memory is read into the first register R1 as an initialization condition (R1 <-MEM [0]). At this time, the total counters 303: 305 indicate 8, which is the next address. The memory address does not use the lower three bits of this counter, so the actual address is one. When the bit extractor of the present invention is used for Huffman coding, it is necessary to read the byte aligned data to know how many bits to extract. The first output terminal OUT1 is used for this purpose. Therefore, all bits of the second register R2 must always be full. Therefore, the second register R2 is filled into 8 by inserting 8 into the register 301 that stores the number of bits to be extracted. There are two ways to fill the second register R2. One is to transfer the MEM (0) stored in the first register R1 to the second register R2 via the second barrel shift circuit S2. The MEM (1) is stored in the first register R1, and the other is the MEM (0) stored in the second register R2 directly from the memory 101 using the second multiplexer M2. After that, the MEM (1) is stored in the first register R1. The latter method is more preferred when considering the processing speed. Up to this state is the initialization process, and the total counters 303 and 305 represent 16 and the address counter 303 represents 2.

이제 필요한 비트수(GetAmt)가 4라면 추출 비트수 레지스터(301)에 4가 저장되고, 이는 제1 레지스터(R1)에 남아 있는 비트들의 수와 비교된다. 현재 제2 레지스터(R2)와 제1 레지스터(R1)은 모두 차 있으며, 제3 레지스터(R3)는 0으로 초기화되어 있다. 제1 레지스터에 남아 있는 비트수(bit_rest)는 (8 - BitCnt)이므로 8-0=8 이다. 남은 비트수(bit_rest)가 필요한 비트수(GetAmt)보다 크므로 4 비트는 한번에 모두 추출된다. 즉, 쉬프트 제어신호(ShiftAmt)가 4가 되어 제1 내지 제3 레지스터(R1, R2, R3)는 4 비트씩 왼쪽으로 쉬프트된다. 이 과정이 지난 후의 상태는 메모리 어드레스(RamAddr)가 2이고, 추출된 비트수(BitCnt)가 4이다.If the required number of bits GetAmt is now 4, 4 is stored in the extraction bit number register 301, which is compared with the number of bits remaining in the first register R1. Currently, both the second register R2 and the first register R1 are full, and the third register R3 is initialized to zero. The number of bits (bit_rest) remaining in the first register is (8-BitCnt), so 8-0 = 8. Since the remaining number of bits (bit_rest) is larger than the required number of bits (GetAmt), all four bits are extracted at once. That is, since the shift control signal ShiftAmt becomes 4, the first to third registers R1, R2, and R3 are shifted left by 4 bits. After this process, the memory address RamAddr is 2 and the extracted bit BitCnt is 4.

이 상태에서 다음에 필요한 비트수가 5라고 하자. 이번에는 남아 있는 비트수(bit_rest)가 8-4=4 이고, 필요한 비트수(GetAmt)가 5이므로 쉬프트 제어신호(ShiftAmt)는 남아 있는 최대 비트수인 4를 택한다. 일단 쉬프트를 하고 난 후의 상태는 제1 레지스터(R1)가 완전히 비어 있고, 필요한 비트수(GetAmt)가 5-4=1이며, 어드레스 카운터(303)의 값(AddrCnt)은 3이고, 추출된 비트수(BitCnt)는 0이 된다. 이제 메모리의 3번째 워드(MEM[2])의 값을 제1 레지스터(R1)에 채우고, 나머지 한 비트를 마저 쉬프트한 후 제2 출력단자(OUT2)로 결과를 출력한다. 나머지 과정에서는 앞서 예로 든 두 가지 중의 하나가 계속 반복된다. In this state, it is assumed that the next required number of bits is five. This time, since the remaining number of bits (bit_rest) is 8-4 = 4 and the required number of bits (GetAmt) is 5, the shift control signal ShiftAmt selects 4, the maximum number of bits remaining. After the shift, the first register R1 is completely empty, the required number of bits GetAmt is 5-4 = 1, the value of the address counter 303 AddrCnt is 3, and the extracted bits are The number BitCnt is zero. Now, the value of the third word MEM [2] of the memory is filled in the first register R1, the remaining one bit is shifted, and the result is output to the second output terminal OUT2. In the rest of the process, one of the two previous examples is repeated.                     

도 4는 본 발명의 다른 실시예에 의한 비트 추출부의 구성도이다. 도 4에서 R4는 제1 레지스터(R1)에 대한 백업용 레지스터이고, R5는 제2 레지스터(R2)에 대한 백업용 레지스터이다. 본 비트 추출부에 대한 제어부는 도 3에 도시된 바와 거의 동일하다. 도 4에 도시된 비트 추출기는 어떤 프로세서의 한 구성요소 역할을 하는 경우이며, ALU나 메모리와 같이 다른 구성요소와의 데이터 전송을 위해 데이터 버스(DataBus)를 통해 연결되어 있다. 레지스터, 멀티플렉서 및 배럴 쉬프트 회로의 비트수는 메모리 워드의 비트수의 정수배이거나, 프로세서의 기본 워드의 비트수의 정수배이다. 도 4에서 다른 프로세서의 다른 연산부와의 데이터 교환은 하나 이상의 데이터 버스 및 제1 출력단자(OUT1)와 같은 직접 연결로써 이루어진다. 멀티플렉서는 다양한 입력 관계 및 버스 구조에 따라 더 많은 선택입력을 갖거나 더 적은 선택입력을 갖도록 조정될 수 있다. 도 2에 도시된 비트 추출기의 구성과는 달리 일반적인 쉬프트 회로의 기능도 함께 제공하기 위해 초기화 기능이 강화되어 있으며, 별개의 여러 비트 스트림(bit stream)을 처리할 때를 위해 기존에 처리하던 비트 스트림을 일시적으로 보관하는 백업 레지스터(R4, R5)가 함께 제공되고 있다. 백업 레지스터(R4, R5)는 생략될 수 있으며, 더 많이 이용될 수도 있다(예를 들어, R3의 백업 레지스터). 해당 제어부에는 도 4의 백업 레지스터와 같은 백업 카운터가 추가될 수 있다. 도 4의 구조는 레프트 쉬프트(left shift) 회로만으로도 라이트 쉬프트(right shift) 기능을 제공할 수 있다. 4 is a block diagram of a bit extracting unit according to another embodiment of the present invention. In FIG. 4, R4 is a backup register for the first register R1 and R5 is a backup register for the second register R2. The control unit for this bit extraction unit is almost the same as that shown in FIG. The bit extractor shown in FIG. 4 serves as one component of a processor, and is connected through a data bus (DataBus) for data transmission with other components such as an ALU or a memory. The number of bits of the register, multiplexer and barrel shift circuit is an integer multiple of the number of bits of the memory word or an integer multiple of the number of bits of the basic word of the processor. In FIG. 4, data exchange with another computing unit of another processor is performed by direct connection such as one or more data buses and a first output terminal OUT1. The multiplexer can be adjusted to have more or less selection inputs depending on various input relationships and bus structures. Unlike the configuration of the bit extractor shown in FIG. The backup registers R4 and R5 for temporarily storing the data are provided together. Backup registers R4 and R5 may be omitted, and more may be used (eg, R3 backup registers). A backup counter such as the backup register of FIG. 4 may be added to the controller. The structure of FIG. 4 may provide a right shift function only with a left shift circuit.

전술한 바와 같은 구성에 의해 비트 추출 연산을 하드웨어로 구현하면서 메 모리에 대한 접근 횟수를 대폭 줄일 수 있으므로 그 처리 속도가 매우 향상된다. 특히 본 발명에 의한 구성을 이용하여 비트 추출 연산을 포함한 비트 연산 프로세서와 같은 특화 마이크로 프로세서를 설계할 경우, 프로세서의 처리 속도는 현저하게 향상된다. The above-described configuration can greatly reduce the number of accesses to the memory while implementing the bit extraction operation in hardware, thereby greatly improving the processing speed. In particular, in the case of designing a specialized microprocessor such as a bit arithmetic processor including a bit extraction operation using the configuration according to the present invention, the processing speed of the processor is significantly improved.

Claims (18)

메모리에 저장되어 있는 데이터로부터 비트 데이터를 연속적으로 추출하는 장치에 있어서,An apparatus for continuously extracting bit data from data stored in a memory, 상기 메모리로부터 데이터를 판독하여 저장하는 메모리 데이터 저장부와, A memory data storage unit for reading and storing data from the memory; 상기 메모리 데이터 저장부로부터 입력받은 데이터를 바이트 정렬시키는 잔여 데이터 정렬부와,A residual data alignment unit for byte-aligning data received from the memory data storage unit; 상기 잔여 데이터 정렬부로부터 소정수의 비트 데이터를 추출하여 오른쪽 정렬시켜 출력하는 비트 추출부와,A bit extraction unit for extracting a right number of bit data from the residual data alignment unit and right-aligning the extracted data; 상기 비트 추출부로 하여금 상기 소정수의 비트 데이터를 출력하도록 하는 쉬프트 제어신호와, 상기 메모리 데이터 저장부에 저장된 모든 데이터가 상기 비트 추출부를 통하여 추출된 경우 상기 메모리 데이터 저장부로 하여금 상기 메모리의 다음 데이터를 판독하도록 하는 메모리 판독 인에이블 신호를 생성하는 제어부를A shift control signal for causing the bit extracting unit to output the predetermined number of bit data; and when all data stored in the memory data storage unit are extracted through the bit extracting unit, the memory data storage unit causes the next data of the memory to be extracted. A control unit for generating a memory read enable signal 포함하는 것을 특징으로 하는 비트 추출 장치.Bit extraction apparatus comprising a. 제1항에 있어서,The method of claim 1, 상기 메모리 데이터 저장부는 The memory data storage unit 상기 메모리로부터 판독되는 L 비트의 워드 데이터를 저장하는 제1 레지스터와,A first register for storing L bit word data read from the memory; 상기 제1 레지스터에 저장된 워드 데이터를 입력받고, 상기 쉬프트 제어신호 에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력하는 제1 배럴 쉬프트 회로와,A first barrel shift circuit for receiving word data stored in the first register, shifting data received by a bit specified by the shift control signal, and outputting a shifted result; 상기 메모리로부터 데이터를 판독할 때는 판독되는 데이터를 입력받아 상기 제1 레지스터로 출력하고, 상기 제1 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 L 비트를 입력받아 상기 제1 레지스터로 출력하는 제1 멀티플렉서를When reading data from the memory, the read data is input to the first register, and after the first barrel shift circuit performs the shift operation, the L bit, which is the result of the shift, is received and output to the first register. The first multiplexer 포함하는 것을 특징으로 하는 비트 추출 장치.Bit extraction apparatus comprising a. 제2항에 있어서,The method of claim 2, 상기 잔여 데이터 정렬부는 The remaining data alignment unit M 비트의 데이터를 저장하는 제2 레지스터와,A second register for storing data of M bits, 상기 제1 레지스터에 저장된 L 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제2 레지스터에 저장된 M 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과인 M 비트를 상기 제2 레지스터로 피드백시키는 제2 배럴 쉬프트 회로를Shift the data received by the bit specified by the shift control signal by receiving L bit data stored in the first register as low bit data, M bit data stored in the second register as high bit data And a second barrel shift circuit for feeding back the M bit, which is the result of the shift, to the second register. 포함하는 것을 특징으로 하는 비트 추출 장치.Bit extraction apparatus comprising a. 제3항에 있어서,The method of claim 3, 상기 비트 추출부는 The bit extraction unit N 비트의 데이터를 저장하는 제3 레지스터와,A third register for storing N bits of data, 상기 제2 레지스터에 저장된 M 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제3 레지스터에 저장된 N 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력하는 제3 배럴 쉬프트 회로와,Shifting the data received by the bit specified by the shift control signal by receiving the M bit data stored in the second register as the lower bit data, the N bit data stored in the third register as the upper bit data A third barrel shift circuit for outputting the shifted result after the 상기 제3 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 N 비트를 입력받아 상기 제3 레지스터로 출력하고, 상기 제3 레지스터에 저장된 데이터가 판독된 후에는 N 비트의 0 데이터를 입력받아 상기 제3 레지스터로 출력하는 제3 멀티플렉서를After the third barrel shift circuit performs the shift operation, it receives an N bit that is the result of the shift and outputs the result to the third register. After reading the data stored in the third register, the N bit 0 data is received. A third multiplexer outputting to the third register 포함하는 것을 특징으로 하는 비트 추출 장치.Bit extraction apparatus comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 제어부는 상기 메모리 판독 인에이블 신호에 따라 데이터가 판독되는 상기 메모리의 위치를 표시하는 어드레스 신호를 더 생성하는 것을 특징으로 하는 비트 추출 장치. And the controller is further configured to generate an address signal indicating a location of the memory from which data is read according to the memory read enable signal. 제4항에 있어서,The method of claim 4, wherein 상기 제어부는 상기 메모리로부터 새로운 데이터 워드가 판독되어 상기 제1 레지스터에 저장된 후, 상기 제1 배럴 쉬프트 회로에서 쉬프트된 비트수에 의해 쉬프트될 비트수를 결정하여 상기 쉬프트 제어신호를 생성하는 것을 특징으로 하는 비트 추출 장치. The controller generates the shift control signal by determining a number of bits to be shifted by the number of bits shifted in the first barrel shift circuit after a new data word is read from the memory and stored in the first register. Bit extraction device. 제6항에 있어서,The method of claim 6, 상기 제어부는 상기 메모리로부터 새로운 데이터 워드가 판독되어 상기 제1 레지스터에 저장된 후, 상기 제1 배럴 쉬프트 회로에서 쉬프트된 비트수가 상기 데이터 워드의 비트수와 동일한 경우 상기 메모리 판독 인에이블 신호를 생성하는 것을 특징으로 하는 비트 추출 장치.The controller may be configured to generate the memory read enable signal when a new data word is read from the memory and stored in the first register, and the number of bits shifted in the first barrel shift circuit is the same as the number of bits of the data word. Bit extraction apparatus characterized in. 제4항에 있어서,The method of claim 4, wherein 상기 제어부는 상기 제2 레지스터에 저장된 데이터의 내용으로부터 쉬프트될 비트수를 결정하여 상기 쉬프트 제어신호를 생성하는 것을 특징으로 하는 비트 추출 장치.And the control unit generates the shift control signal by determining the number of bits to be shifted from contents of data stored in the second register. 제4항에 있어서,The method of claim 4, wherein 상기 제어부는 상기 제1 내지 제3 배럴 쉬프트 회로에서의 쉬프트 후에 제1 내지 제3 레지스터에 대한 로딩(loading)을 인에이블 시키는 로딩 인에이블 신호를 생성하는 것을 특징으로 하는 비트 추출 장치. And the control unit generates a load enable signal for enabling loading of the first to third registers after the shift in the first to third barrel shift circuits. 제4항에 있어서,The method of claim 4, wherein 상기 제어부는 The control unit 추출하고자 하는 비트수를 기억하는 추출 비트수 레지스터와, An extraction bit number register for storing the number of bits to be extracted; 상기 메모리 판독 인에이블 신호에 따라 판독될 데이터 워드의 어드레스를 생성하는 어드레스 카운터와, An address counter for generating an address of a data word to be read according to the memory read enable signal; 상기 메모리로부터 새로운 데이터 워드가 판독되어 상기 제1 레지스터에 저장된 후, 상기 제1 배럴 쉬프트 회로에서 쉬프트된 비트수를 기억하는 비트수 카운터와,A bit number counter for storing the number of bits shifted in the first barrel shift circuit after a new data word is read from the memory and stored in the first register; 상기 비트수 카운터로부터의 쉬프트된 비트수와 상기 추출 비트수 레지스터로부터의 추출하고자 하는 비트수를 비교하여 상기 쉬프트 제어신호 또는 상기 메모리 판독 인에이블 신호를 생성하는 제어신호 생성부를 A control signal generator configured to generate the shift control signal or the memory read enable signal by comparing the shifted bit number from the bit counter with the number of bits to be extracted from the extraction bit number register 포함하는 것을 특징으로 하는 비트 추출 장치.Bit extraction apparatus comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 제1 레지스터에 저장되는 데이터의 비트수 L은 상기 메모리의 워드 비트수인 것을 특징으로 하는 비트 추출 장치.And the number of bits L of data stored in the first register is the number of word bits of the memory. 제11항에 있어서,The method of claim 11, 상기 제1 배럴 쉬프트 회로는 2L 비트의 데이터를 저장하고, 상위 비트로는 상기 제1 레지스터에 저장된 데이터가 입력되고, 하위 비트로는 L개의 0 데이터가 입력되는 것을 특징으로 하는 비트 추출 장치.And the first barrel shift circuit stores 2 L bits of data, data stored in the first register is input as upper bits, and L zero data is input as lower bits. 제4항에 있어서,The method of claim 4, wherein 상기 메모리로부터 판독되는 출력 데이터와 상기 제2 배럴 쉬프트 회로로부터의 출력인 M 비트의 데이터를 입력으로 받아 어느 한 데이터를 상기 제2 레지스터로 출력하는 제2 멀티플렉서를 더 포함하는 것을 특징으로 하는 비트 추출 장치. And a second multiplexer which receives output data read from the memory and M bits of data output from the second barrel shift circuit as inputs and outputs any data to the second register. Device. 제13항에 있어서,The method of claim 13, 상기 제2 레지스터에 저장되는 데이터의 비트수 M은 상기 메모리의 워드 비트수와 동일하고, 상기 제2 배럴쉬프터의 출력 비트수도 상기 메모리의 워드 비트수와 동일한 것을 특징으로 하는 비트 추출 장치.And the number of bits M of data stored in the second register is equal to the number of word bits of the memory, and the number of output bits of the second barrel shifter is equal to the number of word bits of the memory. 제14항에 있어서,The method of claim 14, 제5 레지스터 및 제6 레지스터를 더 구비하고,Further comprising a fifth register and a sixth register, 상기 제5 레지스터는 상기 제2 레지스터에 저장된 데이터를 입력으로 받아서 상기 제2 멀티플렉서의 입력으로 제공하며,The fifth register receives data stored in the second register as an input and provides the input to the input of the second multiplexer, 상기 제6 레지스터는 상기 제1 레지스터에 저장된 데이터를 입력으로 받아서 상기 제1 멀티플렉서의 입력으로 제공하는 것을 특징으로 하는 비트 추출 장치.And the sixth register receives data stored in the first register as an input and provides the input to the input of the first multiplexer. 제4항에 있어서,The method of claim 4, wherein 상기 제1 내지 제3 레지스터의 출력단자에 연결되며, 상기 제1 내지 제3 멀티플렉서의 하나의 입력단자에 연결되는 데이터 버스를 더 구비하는 것을 특징으로 하는 비트 추출 장치.And a data bus connected to the output terminals of the first to third registers and to one input terminal of the first to third multiplexers. 메모리에 저장되어 있는 데이터로부터 비트 데이터를 연속적으로 추출하는 장치에 있어서,An apparatus for continuously extracting bit data from data stored in a memory, 데이터를 저장하는 제1 내지 제3 레지스터-여기서, 상기 제1 레지스터는 L 비트의 데이터를 저장하고, 상기 제2 레지스터는 M 비트의 데이터를 저장하며, 상기 제3 레지스터는 N 비트의 데이터를 저장하고, 상기 제3 레지스터에 저장된 데이터가 상기 비트 추출 장치의 출력으로 사용됨-와,First to third registers for storing data, wherein the first register stores L bits of data, the second register stores M bits of data, and the third register stores N bits of data The data stored in the third register is used as an output of the bit extraction apparatus; 상기 제1 레지스터에 저장된 L 비트의 데이터를 입력받고, 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력하는 제1 배럴 쉬프트 회로와,A first barrel shift circuit for receiving L-bit data stored in the first register, shifting the data input by the bit specified by the shift control signal, and outputting the shifted result; 상기 메모리로부터 데이터를 판독할 때는 판독되는 데이터를 입력받아 상기 제1 레지스터로 출력하고, 상기 제1 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 L 비트를 입력받아 상기 제1 레지스터로 출력하는 제1 멀티플렉서와,When reading data from the memory, the read data is input to the first register, and after the first barrel shift circuit performs the shift operation, the L bit, which is the result of the shift, is received and output to the first register. The first multiplexer, 상기 제1 레지스터에 저장된 L 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제2 레지스터에 저장된 M 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과인 M 비트를 상기 제2 레지스터로 피드백시키는 제2 배럴 쉬프트 회로와,Shift the data received by the bit specified by the shift control signal by receiving L bit data stored in the first register as low bit data, M bit data stored in the second register as high bit data A second barrel shift circuit for feeding back the M bit, which is the result of the shifted result, to the second register; 상기 제2 레지스터에 저장된 M 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제3 레지스터에 저장된 N 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력하는 제3 배럴 쉬프트 회로와,Shifting the data received by the bit specified by the shift control signal by receiving the M bit data stored in the second register as the lower bit data, the N bit data stored in the third register as the upper bit data A third barrel shift circuit for outputting the shifted result after the 상기 제3 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 N 비트를 입력받아 상기 제3 레지스터로 출력하고, 상기 제3 레지스터에 저장된 데이터가 판독된 후에는 N 비트의 0 데이터를 입력받아 상기 제3 레지스터로 출력하는 제3 멀티플렉서와,After the third barrel shift circuit performs the shift operation, it receives an N bit that is the result of the shift and outputs the result to the third register. After reading the data stored in the third register, the N bit 0 data is received. A third multiplexer outputting to the third register, 상기 제1 내지 제3 배럴 쉬프트 회로가 쉬프트시킬 비트수를 특정하는 쉬프트 제어신호(shift control signal)와, 상기 메모리로부터의 데이터 판독을 지시하는 메모리 판독 인에이블 신호(memory read enable signal)를 생성하는 제어부를Generating a shift control signal specifying a number of bits to be shifted by the first to third barrel shift circuits and a memory read enable signal instructing reading of data from the memory; Control 포함하는 것을 특징으로 하는 비트 추출 장치. Bit extraction apparatus comprising a. 비트 추출 연산을 수행하는 마이크로 프로세서에 있어서,A microprocessor for performing a bit extraction operation, 데이터를 저장하는 제1 내지 제3 레지스터-여기서, 상기 제1 레지스터는 L 비트의 데이터를 저장하고, 상기 제2 레지스터는 M 비트의 데이터를 저장하며, 상기 제3 레지스터는 N 비트의 데이터를 저장하고, 상기 제3 레지스터에 저장된 데이터가 상기 비트 추출 장치의 출력으로 사용됨-와,First to third registers for storing data, wherein the first register stores L bits of data, the second register stores M bits of data, and the third register stores N bits of data The data stored in the third register is used as an output of the bit extraction apparatus; 상기 제1 레지스터에 저장된 L 비트의 데이터를 입력받고, 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출 력하는 제1 배럴 쉬프트 회로와,A first barrel shift circuit for receiving L-bit data stored in the first register, shifting the data received by the bit specified by the shift control signal, and outputting the shifted result; 상기 메모리로부터 데이터를 판독할 때는 판독되는 데이터를 입력받아 상기 제1 레지스터로 출력하고, 상기 제1 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 L 비트를 입력받아 상기 제1 레지스터로 출력하는 제1 멀티플렉서와,When reading data from the memory, the read data is input to the first register, and after the first barrel shift circuit performs the shift operation, the L bit, which is the result of the shift, is received and output to the first register. The first multiplexer, 상기 제1 레지스터에 저장된 L 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제2 레지스터에 저장된 M 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과인 M 비트를 상기 제2 레지스터로 피드백시키는 제2 배럴 쉬프트 회로와,Shift the data received by the bit specified by the shift control signal by receiving L bit data stored in the first register as low bit data, M bit data stored in the second register as high bit data A second barrel shift circuit for feeding back the M bit, which is the result of the shifted result, to the second register; 상기 제2 레지스터에 저장된 M 비트의 데이터를 하위비트 데이터로 입력받고, 상기 제3 레지스터에 저장된 N 비트의 데이터를 상위비트 데이터로 입력받아서 상기 쉬프트 제어신호에 의해 특정된 비트만큼 입력받은 데이터를 쉬프트시킨 후에 쉬프트된 결과를 출력하는 제3 배럴 쉬프트 회로와,Shifting the data received by the bit specified by the shift control signal by receiving the M bit data stored in the second register as the lower bit data, the N bit data stored in the third register as the upper bit data A third barrel shift circuit for outputting the shifted result after the 상기 제3 배럴 쉬프트 회로가 쉬프트 동작을 한 후에는 쉬프트된 결과인 N 비트를 입력받아 상기 제3 레지스터로 출력하고, 상기 제3 레지스터에 저장된 데이터가 판독된 후에는 N 비트의 0 데이터를 입력받아 상기 제3 레지스터로 출력하는 제3 멀티플렉서와,After the third barrel shift circuit performs the shift operation, it receives an N bit that is the result of the shift and outputs the result to the third register. After reading the data stored in the third register, the N bit 0 data is received. A third multiplexer outputting to the third register, 상기 제1 내지 제3 배럴 쉬프트 회로가 쉬프트시킬 비트수를 특정하는 쉬프트 제어신호(shift control signal)와, 상기 메모리로부터의 데이터 판독을 지시하 는 메모리 판독 인에이블 신호(memory read enable signal)를 생성하는 제어부를 구비하는 비트 추출 장치가 포함된 마이크로 프로세서. A shift control signal specifying a number of bits to be shifted by the first to third barrel shift circuits, and a memory read enable signal instructing data read from the memory; Microprocessor including a bit extraction device having a control unit.
KR1020010031729A 2001-06-07 2001-06-07 Bit extracting device and microprocessor using this bit extracting device KR100770448B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010031729A KR100770448B1 (en) 2001-06-07 2001-06-07 Bit extracting device and microprocessor using this bit extracting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010031729A KR100770448B1 (en) 2001-06-07 2001-06-07 Bit extracting device and microprocessor using this bit extracting device

Publications (2)

Publication Number Publication Date
KR20020093262A KR20020093262A (en) 2002-12-16
KR100770448B1 true KR100770448B1 (en) 2007-10-26

Family

ID=27708085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010031729A KR100770448B1 (en) 2001-06-07 2001-06-07 Bit extracting device and microprocessor using this bit extracting device

Country Status (1)

Country Link
KR (1) KR100770448B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100987252B1 (en) * 2003-09-09 2010-10-12 삼성전자주식회사 Interface device and method for processing of bitstream data
CN111177699B (en) * 2019-12-23 2022-07-08 恒大恒驰新能源汽车科技(广东)有限公司 Data extraction method, secret key generation method, unlocking method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980023743A (en) * 1996-09-30 1998-07-06 배순훈 Data Extraction & Fittings
KR19980052329A (en) * 1996-12-24 1998-09-25 구자홍 Bit stream parsing device of audio decoder
KR19990044925A (en) * 1997-10-30 1999-06-25 디어터 크리스트, 베르너 뵈켈 Data Extractor and Extraction Method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980023743A (en) * 1996-09-30 1998-07-06 배순훈 Data Extraction & Fittings
KR19980052329A (en) * 1996-12-24 1998-09-25 구자홍 Bit stream parsing device of audio decoder
KR19990044925A (en) * 1997-10-30 1999-06-25 디어터 크리스트, 베르너 뵈켈 Data Extractor and Extraction Method

Also Published As

Publication number Publication date
KR20020093262A (en) 2002-12-16

Similar Documents

Publication Publication Date Title
KR100227275B1 (en) Variable length code detection in a signal processing system
KR100455011B1 (en) Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing
EP1073950B1 (en) Method and apparatus for performing shift operations on packed data
US7275147B2 (en) Method and apparatus for data alignment and parsing in SIMD computer architecture
EP1046983B1 (en) VLIW processor and program code compression device and method
WO1998038791A2 (en) Instruction compression and decompression system and method for a processor
JP3558840B2 (en) Apparatus and method for detecting bit stream signal format in signal processing system
WO2010129684A1 (en) Execution units for context adaptive binary arithmetic coding (cabac)
US20020199086A1 (en) Setting execution conditions
US20020053015A1 (en) Digital signal processor particularly suited for decoding digital audio
US6263420B1 (en) Digital signal processor particularly suited for decoding digital audio
US6512775B1 (en) Method and apparatus for a programmable bitstream parser for audiovisual and generic decoding systems
US7861071B2 (en) Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US6766439B2 (en) Apparatus and method for dynamic program decompression
KR100770448B1 (en) Bit extracting device and microprocessor using this bit extracting device
JPH10135842A (en) System for lining up variable length code data stream position
JP2002529847A (en) Digital signal processor with bit FIFO
US6535899B1 (en) Arithmetic device
US6934729B2 (en) Method and system for performing shift operations
EP0936537B1 (en) Cyclic redundancy check in a computer system
Sierra et al. High-Performance Decoding of Variable-Length Memory Data Packets for FPGA Stream Processing
US6144321A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set
US6133859A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
US6643673B1 (en) Method and apparatus for arithmetic shifting

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
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: 20121011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130813

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150915

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee