KR100262453B1 - Method and apparatus for processing video data - Google Patents

Method and apparatus for processing video data Download PDF

Info

Publication number
KR100262453B1
KR100262453B1 KR19970034995A KR19970034995A KR100262453B1 KR 100262453 B1 KR100262453 B1 KR 100262453B1 KR 19970034995 A KR19970034995 A KR 19970034995A KR 19970034995 A KR19970034995 A KR 19970034995A KR 100262453 B1 KR100262453 B1 KR 100262453B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
processor
vector
scalar
processing
data
Prior art date
Application number
KR19970034995A
Other languages
Korean (ko)
Other versions
KR19980018215A (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
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding, e.g. from bit-mapped to non bit-mapped
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Abstract

PURPOSE: A method and an apparatus for processing video data are provided to perform high-speed processing for video data by using a scalar processor and a vector processor. CONSTITUTION: A processor(110) comprises a scalar processor(210), a vector processor(220), and a bit stream processor(245). The scalar processor(210) is operated as 40MHz. The scalar processor(210) is a RISC processor of 32bits supporting ARM7 command set. The vector processor(220) is operated as 80MHz. The vector processor(220) is an SIMD processor having vector registers of 288 bits. The bit stream processor(245) performs a high speed processing for data. The scalar processor(210) and the vector processor(220) are connected with a cash sub system(230).

Description

비디오 데이터 처리방법 및 장치 A video data processing method and apparatus

본 발명은 컴퓨터에 의한 데이터 처리에 관한 것으로서, 특히 컴퓨터에 의한 비디오 데이터 처리에 관한 것이다. The present invention relates to data processing by a computer, and more specifically to video data processing by a computer.

컴퓨터는 시스템 데이터를 압축하거나 복원하기 위하여 사용되어 왔다. Computers have been used for compressing and restoring the system data. 시스템 데이타에는 정지 및/또는 동화상의 이미지를 포함하는 비디오 데이터가 포함된다. System data includes the video data including the still pictures and / or moving images. 또한, 시스템 데이터에는 오디오 데이터, 예를 들어 동화상의 사운드 트랙이 포함될 수 있다. Further, the system data may include audio data, such as moving picture soundtrack. 비디오 데이터를 고속 처리할 수 있는 방법 및 회로를 제공하는 것이 바람직하다. Method for high-speed processing of the video data, and it is desirable to provide a circuit.

따라서 본 발명의 목적은 비디오 데이터를 고속 처리할 수 있는 방법 및 회로를 제공하는 데 있다. It is therefore an object of this invention to provide a method and circuit capable of high speed processing of the video data. 몇가지 실시예에 있어서, 본 발명에 의한 컴퓨터 시스템은 동시에 동작할 수 있는 3개의 처리기, 즉 스칼라 처리기, 벡터 처리기 및 비트 스트림 처리기를 포함한다. In some embodiments, the computer system according to the present invention includes three processors, that is, the scalar processor, a vector processor, and a bit stream processor that is operable at the same time. 비디오 데이터를 엔코딩 또는 디코딩함에 있어서, 벡터 처리기는 단일 명령 다중 데이터(Single Iinstruction Multiple Data:SIMD) 처리기에 의해 효율적으로 수행되는 동작을 수행한다. As in the encoding or decoding video data, the vector processor is a single instruction multiple data: performs an operation to be performed efficiently by (Single Iinstruction Multiple Data SIMD) processor. 이와 같은 동작으로는, 1) 이산여현변환(Discrete Cosine Transform:DCT)와 같은 선형 데이터 변환, 2) 움직임 보상이 있다. In the same operation, 1) discrete cosine transform (Discrete Cosine Transform: there is a linear data conversion, and 2) the motion compensation, such as DCT). 비트스트림 처리기는 워드 또는 반워드(half-words) 보다 특정 비트상에서의 동작을 포함하는 동작들을 수행한다. A bit stream processor performs operations including the operation on the specific bits than the word or half-word (half-words). 이와 같은 동작으로는 예를 들어 MPEG-1, MPEG-2, H.261 및 H.263에 사용되는 허프만(huffman) 및 RLC 엔코딩과 디코딩이 있다. In the same action are, for example, MPEG-1, Huffman (huffman) and RLC encoding used in MPEG-2, H.261 and H.263 and decoding. 스칼라 처리기는 하이 레벨 비디오 처리(예를 들어, 픽쳐 레벨 처리)를 수행하고, 벡터 및 비트스트림 처리기의 동작을 동기화시키고, 외부 장치와의 인터페이스를 제어한다. Scalar processor is a high level video processing (e.g., a picture level processing) and perform, and the synchronization vector and the operation of bit stream processor, and controls the interface to the external device.

몇가지 실시예에 있어서, 컴퓨터 시스템은 여러개의 데이터 스트림을 동시에 처리할 수 있다. In some embodiments, the computer system may process multiple data streams simultaneously. 그 결과, 컴퓨터 시스템의 사용자는 2개 이상의 모임과 영상 회의를 할 수도 있다. As a result, the user of the computer system may be at least two meetings and video conferences. 비트스트림 처리기에서는 여러 가지 비트스트림이 실시간적으로 동시에 엔코딩 또는 디코딩되도록 문맥들(contexts)을 절환할 수 있기 때문에 다중 데이터 스트림을 동시에 처리할 수 있다. The bit-stream processor because they can be switched to the context so that the number of bit stream is encoded or decoded in real time at the same time (contexts) can process multiple data streams at the same time.

몇가지 실시예에 있어서, 스칼라 및 벡터 처리기는 각각 처리기가 단일 산술 명령 또는 불(boolean) 명령을 수행하도록 프로그램될 수 있다는 점에서 볼 때 프로그램가능하다. In some embodiments, the scalar and vector processors, each processor is programmable as viewed in that it can be programmed to perform a single arithmetic instruction or fire (boolean) command. 비트스트림 처리기는 단일 산술 명령 또는 불(boolean) 명령을 수행하도록 프로그램될 수 없다는 점에서 볼 때 프로그램가능하지 않다. Bitstream processor is not available when viewing the program in that they can be programmed to perform a single arithmetic instruction or fire (boolean) command. 오히려, 비트스트림 처리기는 한 세트의 비디오 데이터에 대하여 전체적인 비디오 데이터 처리동작을 수행하도록 프로그램될 수 있다. Rather, the bit stream processor may be programmed to perform the entire video data processing operation on the video data in one set. 비트스트림 처리기가 단일 산술 명령 또는 불 명령을 수행하기 위해 프로그램되지 않도록 함으로써, 비트스트림 처리기가 고속으로 동작할 수 있다. A bit stream processor has a single arithmetic instruction or not to fire by the program to carry out the command, the bit stream processor can operate at a high speed. 스칼라 및 벡터 처리기가 프로그램 가능하도록 함으로써, 비디오 데이터 엔코딩 및 디코딩 표준에서 변형된 시스템을 채택하는 것이 용이하다. By the scalar and vector processors so as to be programmable, it is easy to adopt the modified system in the video data encoding and decoding standard.

제1도는 본 발명에 따른 미디어 카드의 블록도. First turning a block diagram of a media card in accordance with the present invention.

제2도는 본 발명에 따른 멀티미디어 처리기의 블록도. A second turning a block diagram of a multimedia processor according to the present invention.

제3도는 도 2에 도시된 처리기의 일부인 비트스트림 처리기의 블록도. The third turn is also the block that is part of the bit stream processor of the processor shown in Fig.

제4도 내지 제6도는 본 발명에 따른 컴퓨터 시스템의 블록도. Figure 4 to 6 turns a block diagram of a computer system according to the present invention.

제7도는 제2도에 도식된 처리기의 펌웨어 구조를 나타내는 도면. A seventh diagram showing a turning structure of the processor firmware in the schematic FIG.

제8도 및 제9도는 제1도의 시스템을 위한 어드레스 맵을 보여주는 도면. Eighth and ninth FIG turn illustrates the address map for a first-degree system.

제10도는 제2도에 도시된 처리기의 DSP 코아를 나타내는 블록도. 10th turn a block diagram showing the DSP core of the processor illustrated in Fig.

제11도는 제2도에 도시된 처리기의 일부인 벡터 처리기에 적용된 파이프라인을 나타내는 도면. Claim 11 degrees diagram showing a pipelined vector processor is applied to a part of the processor shown in FIG. 2.

제12도는 제11도의 벡터 처리기의 기능적인 블록도. 12th turn a functional block diagram of a vector processor of claim 11 degrees.

제13도는 제11도의 벡터 처리기에 있어서 실행 데이터 경로를 나타내는 도면. Claim 13 degrees view showing an execution data path in the vector processor of claim 11 degrees.

제14도는 제11도의 벡터 처리기에 있어서 로드 및 저장 데이터 경로를 나타내는 도면. 14 degrees view showing the load and store data path in the vector processor of claim 11 degrees.

제15도는 제2도의 처리기의 캐쉬 시스템의 블록도. Claim 15 turns a block diagram of the cache system of the processor 2 degrees.

제16도는 제15도의 캐쉬 시스템에 있어서의 명령 데이터 캐쉬를 나타내는 도면. Claim 16 degrees view showing an instruction cache data in the cache system of claim 15 degrees.

제17도는 제2도의 처리기에 있어서 캐쉬 제어 유니트의 데이터 경로 파이프 라인을 나타내는 도면. 17 degrees shows a data path pipeline, the cache control unit according to the second processor degrees.

제18도는 제2도에 도시된 시스템에 있어서 캐쉬 제어 유니트의 어드레스 처리 파이프라인을 위한 데이터 경로를 나타내는 도면. 18 a diagram showing the data path for turning the address processing pipeline of the cache control unit in the system shown in FIG. 2.

제19도 내지 제22도는 제2도의 처리기에 있어서 스테이트 머쉰을 나타내는 도면. 19 degrees to 22 degrees view showing a state machine in the processor a second degree.

제23도는 제15도의 캐쉬 시스템에서 사용된 어드레스 포맷을 나타내는 도면. 23 degrees diagram showing an address format used in the cache system of claim 15 degrees.

제24도는 제2도의 처리기에 있어서 버스를 나타내는 도면. Claim 24 degrees view showing a bus in the processor a second degree.

제25도는 제2도의 처리기에 있어서 중재 제어 유니트를 나타내는 도면. 25 degrees view showing an intervention control unit in the processor a second degree.

제26도 내지 제29도는 제2도의 처리기에 대한 타이밍도. 26 degrees to 29 degrees a timing diagram for the processor of claim 2 degrees.

제30도 내지 제32도는 제2도의 처리기에 있어서 메모리 리퀘스트 신호를 나타내는 도면. The 30 [deg.] To 32 degrees view showing a memory request signal in the processor a second degree.

제33도는 제2도의 처리기에 있어서 버스 중재 제어 유니트를 나타내는 도면. Claim 33 degrees view showing the bus arbitration control unit in the processor a second degree.

제34도 내지 제36도는 제2도의 처리기에 대한 타이밍도. 34 degrees to 36 degrees a timing diagram for the processor of claim 2 degrees.

제37도 및 제38도는 제2도의 처리기에 있어서 버스 인터페이스 회로를 나타내는 도면. 37 and FIG. 38 degrees view showing a bus interface circuit in the processor a second degree.

제39도 및 제40도는 제1도의 시스템에 대한 가상 프레임 버퍼(VFB)를 나타내는 도면. 39 and FIG. 40 to turn a view showing a virtual frame buffer (VFB) of the system of the first degree.

제41도은 제1도의 시스템에 대한 버스 인터페이스 회로를 나타내는 도면. 41 doeun view showing a bus interface circuit for a first-degree system.

제42도 및 제43도는 제2도의 시스템에 대한 메모리 콘트로러를 나타내는 도면. The 42 degree and 43 degrees view showing a memory contrail roreo for the system of the second degree.

제44도는 제2도의 시스템에 대한 어드레스 콘트롤러를 나타내는 도면. 44 degrees diagram illustrating an address controller for the system of the second degree.

제45도 및 제46도 제1도의 시스템에 사용되는 포맷들을 나타내는 도면. Claim 45 and claim 46 is also a diagram showing the format used in the first-degree system.

제47도는 제1도의 시스템에 있어서 스테이트 머쉰을 나타내는 도면. 47 degrees view showing a state machine in the system of the first degree.

제48도는 제1도의 시스템에 대한 데이터 콘트롤러의 블록도. 48 to turn a block diagram of a data controller for the system of the first degree.

제49도 내지 제51도는 제1도의 시스템에 대한 타이밍도. Claim 49 degrees to 51 degrees for a timing system of the first degree.

제52도 및 제53도는 제2도의 처리기에 있어서 장치 인터페이스 회로를 나타내는 도면. 52 and FIG. 53 degrees view showing a device interface processor circuit according to the second degree.

제54도 내지 제56도는 제1도의 시스템의 각 부에 대한 블록도. 54 [deg.] To a block for each of the first-degree turning system of claim 56.

제57도 내지 제59도는 제1도의 시스템에 있어서 레지스터들을 나타내는 도면. 57 degrees to 59 degrees a view showing registers in the system of the first degree.

제60도는 제1도의 시스템에 있어서 프레임 버퍼 및 비디오 윈도우를 나타내는 도면. No. 60 degrees view showing a frame buffer and the video window in the system of the first degree.

제61도는 제1도의 시스템에 대한 타이밍도. 61] A timing to turn on the system of the first degree.

제62도는 제1도의 시스템에 있어서 레지스터를 나타내는 도면. 62 degrees view showing the register system according to the first degree.

제63도는 제1도의 시스템에 대한 타이밍도. 63] A timing to turn on the system of the first degree.

제64도 내지 제66도는 제1도의 시스템에서 사용되는 버퍼들을 나타내는 도면. Claim 64 degrees to 66 degrees view showing the buffer used in the system of the first degree.

도 1은 멀티미디어 처리기(110)를 포함하는 미디어 카드(100)를 나타낸 것이다. 1 illustrates a media card 100 including a multimedia processor (110). 실시예에 있어서, 멀티미디어 처리기(110)는 그 사양이 캘리포니아 산호세에 있는 삼성 반도체 주식회사에서 만들어지는 타입 MSP-1EX(상표) 처리기이다. In an embodiment, the multimedia processor 110 is the specification of a type MSP-1EX (R) processor made by Samsung Semiconductor Corporation in San Jose, California. 처리기 MSP-1EX는 아래에 있는 블록 A에 기술되어 있다. Processor MSP-1EX are described in block A under.

처리기(110)는 로컬 버스(105)를 통해 호스트 컴퓨터 시스템(도시안됨)과 통신한다. Processor 110 is in communication with a host computer system (not shown) via a local bus 105. 몇가지 실시예에 있어서, 버스(105)는 32비트, 33MHz PCI 버스이다. In some embodiments, bus 105 is a 32-bit, 33MHz PCI bus.

처리기(110)로부터 출력되는 디지탈 비디오 데이터는 D/A(디지탈/아날로그) 변환기(112)에 결합된다. Digital video data output from processor 110 is coupled to a D / A (digital / analog) converter 112. 비디오 부분 뿐만 아니라, 디지탈 비이오 데이터는 오디오 부분, 예를 들어 영화의 사운드 트랙을 포함할 수 있다. As well as the video part, the digital non-Io data may comprise the sound track of the audio portion, for example film. 변환기(112)의 출력은 아날로그 데이터를 처리하는 TV 세트(도시안됨) 또는 다른 시스템에 결합될 수 있다. The output of the converter 112 may be coupled to a TV set (not shown) or other systems for processing of analog data.

몇가지 실시예에 있어서, 처리기(110)는 A/D(아날로그/디지탈) 변환기(도 4 내지 6 참조)로 ㅂ터 출력되는 디지탈 비디오 데이터를 수신하기 위한 입력 포트를 포함한다. In some embodiments, the processor 110 includes an input port for receiving digital video data outputted ㅂteo to A / D (analog / digital) converter (see Fig. 4 to 6).

처리기(110)는 코덱(114)에 연결된다. Processor 110 is connected to the codec 114. The 코덱(114)은 테이프 레코더(도시안됨) 또는 다른 장치로 부터 아날로그 오디오 데이터를 수신한다. CODEC 114 receives the analog audio data from a tape recorder (not shown) or other device. 코덱(114)은 전화선(도시안됨)으로 부터 아날로그 전화 데이터를 수신한다. CODEC 114 receives the analog telephone data from the telephone line (not shown). 코덱(114)은 아날로그 데이터를 디지탈화한 후, 이를 처리기(10)로 전송한다. Codec 114 is then digitized analog data, and transmits it to the processor 10. 코덱(114)은 처리기(110)로 부터 디지탈 데이터를 수신하여, 이들 데이터를 아날로그 형태로 변환하고, 필요에 따라 이 아날로그 데이터를 전송한다. CODEC 114 receives the digital data from the processor 110, converts this data to an analog form, and transmits this analog data, if necessary.

처리기(110)는 버스(122)에 의해 메모리(120)에 연결된다. Processor 110 is coupled to a memory 120 by a bus 122. The 도 1에 있어서, 메모리(120)는 SDRAM(synchronous DRAM)이고, 버스(122)는 64비트, 89MHz 버스이다. 1, the memory 120 is an SDRAM (synchronous DRAM), bus 122 is a 64-bit, 89MHz bus. 다른 실시예에서는 다른 메모리, 버스 폭, 및 버스 속도가 사용된다. In another embodiment, another memory and bus width, and bus speed is used. 비동기 메모리 및 버스들이 몇가지 실시예에 사용된다. An asynchronous memory bus, and are used in some embodiments.

카드(100)의 몇가지 실시예는 르 누옌을 출원인으로 하여 본출원과 동일자로 출원된 Multiprocessor Operation in a Multimedia Signal Processor라는 발명의 명칭을 갖는 미합중국 특허출원 명세서(변리사 참조번호:M-4364 US)를 기재되어 있으며, 상기 미합중국 특허출원 명세서의 전체적인 내용은 본 발명에서 참조로 인용된다. Card 100 in some embodiments is the United States of America patent application specification with the title of the invention of a Multiprocessor Operation in a Multimedia Signal Processor application as same as the present application by the Le nuyen the Applicant (see Patent Attorney Number: M-4364 US) a are described, the entire contents of the U.S. Patent Application are incorporated herein by reference in the present invention.

도 2는 처리기(110)의 일실시예에 따른 블록도이다. Figure 2 is a block diagram according to one embodiment of the processor 110. 처리기(110)은 스칼라 처리기(210), 벡터 처리기(VP;220) 및 비트스트림 처리기(BP; 245)를 포함한다. Includes; (BP 245); processor 110 is a scalar processor (210), a vector processor (VP 220), and a bit stream processor. 몇가지 실시예에 있어서, 처리기(210)는 40MHz로 동작하며, 공지된 표준 ARM7 명령어 세트를 지원하는 32비트 RISC 처리기이다. In some embodiments, processor 210 is a 32-bit RISC processor that operates at 40MHz, supports a known standard ARM7 instruction set. 벡터 처리기(220)는 80MHz로 동작하며, 288 비트 벡터 레지스터들을 구비한 단일 명령 다중 데이터(SIMD) 처리기이다. Vector processor 220 is operative to 80MHz, a single instruction multiple data (SIMD) processor equipped with a 288-bit vector registers. VP(220)의 일실시예는 송 등을 출원인으로 하여 본출원과 동일자로 출원된 Efficient Context Saving and Restoring in a Multitasking Computing System Environment라는 발명의 명칭을 갖는 미합중국 특허출원 명세서(변리사 참조 번호:M-4365 US)에 기재되어 있으며, 상기 미합중국 특허출원 명세서의 전체적인 내용은 본 발명에서 참조로 인용된다. VP reference embodiment is U.S. Patent Application herein (attorney having the title of the invention of the Efficient Context Saving and Restoring in a Multitasking Computing System Environment, filed as same as the present application by the applicant of the transmission such as 220 number: M- It described in the 4365 US), and the whole content of the US patent applications herein are incorporated by reference herein. 처리기(210,220)는 단일 산술 명령 또는 불 명령 또는 이들 명령의 시퀀스를 수행하도록 프로그램될 수 있다. Processor 210 and 220 may be programmed to perform a sequence of arithmetic instructions or single fire command or command thereof.

몇가지 실시예에 있어서, 비디오 데이터를 고속으로 행하기 위해서 비트스트림 처리기(245)는 단일 산출 명령 또는 불 명령을 수행하기 위해 프록램되지 않도록 설계된다. In some embodiments, in order to perform the video data at a high speed bit stream processor (245) it is designed to be prog ram in order to perform a single command or a fire command output. 특히, BP(245)는, ADD, OR, ADD AND ACCUMULATE등과 같은 단일 명령을 수행하도록 프로그램될 수 없다. In particular, BP (245) is, it can not be programmed to perform a single instruction, such as ADD, OR, ADD AND ACCUMULATE. 오히려, BP(245)는 부록 A의 10장에 기술되어 있는 비디오 데이터 처리 동작을 수행하도록 프로그램된다. Rather, BP (245) is programmed to perform a video data processing operation which is described in Chapter 10 of Appendix A. 이와 동시에, 스칼라 처리기(210)와 벡터 처리기(20)는 단일 산술 또는 불 명령을 수행하도록 프로그램될 수 있다. At the same time, the scalar processor 210 and the vector processor 20 can be programmed to perform a single arithmetic or fire command. 그러므로, 처리기(110)는 비디오 표준에서 변형을 도모할 수 있다. Thus, processor 110 can be realized in a modified video standard.

도 2에 도시된 바와 같이, 스칼라 처리기(210)과 벡터 처리기(220)는 캐쉬 서브시스템(230)에 연결된다. 2, the scalar processor 210 and the vector processor 220 is coupled to the cache subsystem 230. 캐쉬 서브시스템(230)은 버스(IOBUS;240)와 버스(FBUS;250)에 연결된다. The cache subsystem 230 is coupled to the bus;; (250 FBUS) (IOBUS 240) and the bus. 몇가지 실시예에 있어서, IOBUS(240)는 32비트, 40MHz 버스이고, FBUS(250)는 64 비트, 80MHz 버스이다. In some embodiments, IOBUS (240) is a 32-bit, 40MHz bus, FBUS (250) is a 64-bit, 80MHz bus.

IOBUS(240)는 비트스트림 처리기(245), 인터럽트 콘트롤러(248), 전 2중 통신(full-duplex) UART 유니트(243)과 4개의 타이머(242)에 연결된다. IOBUS (240) is coupled to the bit stream processor 245, the interrupt controller 248, the former two of the communication (full-duplex) UART unit 243, and four timer 242. FBUS(250)는 메모리 버스(122; 도 1 참조)에 연결된 메모리 콘트롤러(258)에 연결된다. FBUS (250) including a memory bus; is coupled to a memory controller 258 coupled to (122 1, see Fig.). FBUS(250)는 PCI 버스(105)에 연결된 PCI 버스 인터페이스 회로(255)에 연결된다. FBUS (250) is coupled to the PCI bus interface circuit 255 connected to PCI bus 105. 또한, FBUS(250)는 비디오 D/A(112;도 1 참조), 코덱(114)과 경우에 따라 비디오 A/D 변환기(도 4 내지 도 6에 도시된 것과 같음)를 인터페이스하는 회로를 포함하는 장치 인터페이스 회로(252;Customer ASIC으로도 불리워짐)에 연결된다. Also, FBUS (250) is a video D / A (112; Figure 1), the codec 114 and the depending video A / D converter (as shown in Figs. 4 to 6) for including to the interface circuit if It is connected to (Figure called Jim Customer ASIC 252) unit interface circuit for. 또한, 처리기(110)는 메모리 데이터 이동기(290)를 포함한다. In addition, the processor 110 includes a memory data mover (290).

처리기(110)는 여러개의 데이터 스트림을 동시에 처리할 수 있다. Processor 110 may process the multiple data streams at the same time. 예를 들어, 처리기(110)의 사용자가 2개 이상의 모임과 영상 회의를 하는 경우, 처리기(110)는 사용자가 여러 개의 모임에 대해 보고 들을 수 있도록 비디오 및 오디오 처리를 수행한다. For example, if the user of the processor 110 that the at least two gathering and video conferencing, processor 110 performs video and audio processing so that the user can see and hear for multiple functions. 다중 비디오 데이터 스트림을 처리하기 위해서 처리기(110)는 문맥 절환을 지원한다. Processor 110 to process the multiple video data streams supports context switching. 이는 BP(245)가 다중 데이터 스트림들 사이를 절환하는 것을 의미한다. This means that the BP (245) is switched between the multiple data streams. 영상 회의에 있어서, 각 데이터 스트림은 멀리 떨어져 있는 별개의 모임으로 부터 올 수 있다. A video conference can come from a separate meeting with each data stream is further away. 대안으로, 사용자가 영상 회의에 첨가하여 동시에 영상 회의 또는 영화 상영을 시청할 수 있도록 하기 위하여 부가적인 데이터 스트림이 영화 채널로 부터 올 수 있다. Alternatively, it can come from the additional data stream, the film channel to allow the user to the addition to the video conference at the same time viewing a video conference or screening. 문백 절환은 부록 A의 10.12절에 기술되어 있다. Munbaek switching is described in section 10.12 of Appendix A. 문맥이 절환되면, 스칼라 처리기(210)는 현재 문맥들을 저장하고, 다른 문맥을 처리하기 위하여 BP(245)를 초기화시킨다. When context is switched, the scalar processor 210 stores the current context, and initialize the BP (245) in order to process another context.

BP(245)는 다음과 같은 비디오 데이터 포맷 즉, BP (245) are video data that is formatted as follows:

1. ISO/IEC 표준 11172(1992) 에 기술되어 있는 MPEG-1; 1. ISO / IEC MPEG-1, which is described in standard 11172 (1992);

2. 문서 ISO/IEC JTC 1/SC 29 N 0981 Rev(1995. 3. 31)에 기술되어 있는 MPEG-2; 2. The document ISO / IEC JTC 1 / SC 29 N 0981 Rev (. 1995 3. 31) MPEG-2, which is described;

3. IUT-T 권고 H.261(1993. 3)에 기술되어 있는 H.261; 3. IUT-T Recommendation H.261, which is described in the H.261 (1993 3.); And

4.드래프트 IT-T 권고 H.263(1996. 5. 2)에 기술되어 있는 H.263을 처리할 수 있다. 4. Draft IT-T Recommendation H.263 (1996. 5. 2) and can handle H.263 is described.

비디오 데이터는 스칼라 처리기(210), 벡터 처리기(220) 및 비트스트림 처리기(245)로 나누어져 처리됨으로써 고속 처리가 실현되도록 한다. Video data is divided into a scalar processor 210, the vector processor 220 and the bit stream processor 245 to be processed thereby realizing high-speed processing. 좀더 상세하게는, 벡터 처리기(220)는 선형 변환(DCT 또는 역DCT)과 움직임 보상을 수행한다. More specifically, the vector processor 220 performs a linear transformation (DCT or inverse DCT) and motion compensation.

이들 동작은 벡터 처리기에 적합하다. These actions are suitable for vector processors. 왜냐하면, 이들 동작은 때때로 데이터의 여러 부분에 대하여 수행되는 동일한 명령을 필요로 하기 때문이다. Because these operations is due to a need at times to the same command is carried out with respect to different portions of the data. 비트스트림 처리기(245)는 허프만 디코딩 및 엔코딩과 지그재그 비트스트림 처리를 수행한다. Bit stream processor 245 performs Huffman decoding and encoding and zigzag bit streams.

스칼라 처리기(210)는 비디오 및 오디오 역다중화와 동기화 및 I/O 인터페이싱 작업을 수행한다. Scalar processor 210 performs video and audio demultiplexing and synchronization and I / O interface operations.

엔코딩 및 디코딩 동작의 예는 부록 A의 10.6.1절 및 10.6.2절에 나타나 있다. Examples of encoding and decoding operations are set forth in Section 10.6.1 and 10.6.2 section of Appendix A. 엔코딩 동작에 있어서, 압축되지 않은 디지탈 데이터가 버스(105)를 통해 프레임 메모리(120) 또는 호스트 시스템(도시안됨)으로 부터 도착한다. In the encoding operation, an uncompressed digital data arriving from the frame memory 120 or host system (not shown) via bus 105. 몇가지 실시예에 있어서, 장치 인터페이스 회로(252)는 비디오 A/D 변환기를 포함하고, 압축되지 않은 데이터가 변환기로 부터 도착한다. In some embodiments, the device interface circuit 252 comprises, and arrives directly from the uncompressed data converter is a video A / D converter. 벡터 처리기(220)는 양자화, DCT 및 움직임 보상을 수행한다. Vector processor 220 performs the quantization, DCT, and motion compensation. 비트스트림 처리기(245)는 VP(220)의 출력을 수신하고, GOB(Group of Blocks)들 및 슬라이스들을 생성한다. Bit stream processor 245 is to generate and receive the output of the slice VP (220) and, GOB (Group of Blocks). 특히, BP(245)는 허프만 및 RLC 엔코딩과 지그재그 비트스트림 처리를 수행한다. In particular, BP (245) performs the Huffman encoding and RLC and zigzag bit streams. 스칼라 처리기(210)는 BP(245)의 출력을 수신하고, 픽쳐 계층 부호화(picture layer coding), GOP(group of pictures) 부호화 및 시퀀스 계층 부호화를 수행한다. Scalar processor 210 performs a receive the output of the BP (245), and the picture layer coding sequence encoding and hierarchical encoding (coding picture layer), (group of pictures) GOP. 이후, 스칼라 처리기(210)는 오디오 및 비디오 데이터를 다중화하고, 부호화된 데이터를 버스(105 또는 122)를 통해 저장 장치 또는 네트워크로 전송한다. Then, the scalar processor 210 multiplexes the audio and video data, and transmits the encoded data to a storage device or a network through a bus (105 or 122). 네트워크로의 전송은 몇가지 실시예에 있는 네트워크에 연결된 장치 인터페이스 회로(252)로의 전송을 포함한다. And it transmits to the network includes the transmission to the device interface circuit 252 connected to the network in some embodiments.

디코딩에 있어서, 처리는 역으로 수행한다. In the decoding, the process is performed in reverse. 스칼라 처리기(210)는 시스템 데이터를 비디오 및 오디오 성분으로 역다중화하고, 비디오 데이터의 시퀀스 계층, GOP 및 픽쳐 계층 디코딩을 수행한다. Scalar processor 210 demultiplexes the system data to the video and audio components, and performs a sequence layer, GOP and picture layer decoding of the video data. 그 결과 생성되는 GOB들 또는 슬라이스들은 비트스트림 처리기(245)로 공급된다. The resulting GOB or slice which are supplied to the bit stream processor (245). 처리기(245)는 지그재그 처리와 허프만 및 RLC 디코딩을 수행한다. Processor 245 performs zigzag processing and Huffman decoding and RLC. VP(220)는 BP(245)의 출력을 수신하여 역양자화, IDCT 및 움직임 보상을 수행하다. VP (220) receives the output of the BP (245) is performing the inverse quantization, IDCT and motion compensation. VP(220)는 필요로 하는 경우(예를 들어, 픽쳐 이미지의 에지를 평탄화하고자 하는 경우) 임의의 전처리를 수행하고, 복원된 디지탈 픽쳐들을 장치 인터페이스 회로(252) 또는 저장 장치로 공급한다. VP (220) are if needed (e.g., if you want to flatten the edges of the image picture) perform any pre-processing, and supplies the restored digital picture to the device interface circuit 252 or the storage device. 스칼라 처리기(210), 벡터 처리기(220)와 비트스트림 처리기(245)는 여러 블록의 데이터에 대하여 병렬로 동작할 수 있다. A scalar processor (210), the vector processor 220 and the bit stream processor (245) may operate in parallel with respect to the data of the various blocks.

스칼라 처리기(210)가 픽쳐 계층 및 상위 계층들을 처리함으로써, 처리기 내부의 통신을 감소시킨다. By processing the picture layer and higher layer scalar processor 210, reduces the communication of the internal processor. 이는 픽쳐 계층 및 상위 게층들이 제어 및 I/O 기능을 위해 스칼라 처리기(210)에서는 사용되지만, 벡터 처리기(220) 및 비트스트림 처리기(245)에서는 사용되지 않는 정보를 포함하고 있기 때문이다. This is because it includes the unused information layer picture and a higher gecheung but are used in the scalar processor 210 for control and I / O functions, vector processor 220 and the bit stream processor (245). 이와 같은 정보의 예로는 프레임들을 장치 인터페이스 회로(252)로 전송하기 위해 스칼라 처리기(210)에서 사용되는 프레임 레이트를 들 수 있다. Examples of such information may include the frame rate used by the scalar processor 210 to transmit the frame to the device interface circuit 252.

도 3은 비트스트림 처리기(245)의 일실시예에 따른 블록도이다. Figure 3 is a block diagram according to one embodiment of the bit stream processor (245). 도 3에 도시된 신호들은 브록 A의 10.5절에 기술되어 있다. The signal shown in Figure 3 are described in Section 10.5 of Brock A. 이들 신호들은 비트스트림 처리기(245)와 IOBUS(240; 도 2 참조)간의 인터페이스를 제공한다. These signals are bit-stream processor 245 and IOBUS; provides an interface between (240 Fig. 2). BP(245)에 있어서, 이들 신호들은 SRAM(320)을 포함하는 IOBUS 인터페이스 유니트(310)에 의해 처리된다. In the BP (245), these signals are processed by the IOBUS interface unit 310 including a SRAM (320). 또한, BP(245)는 VLC FIFO 유니트(330), VLC LUT ROM(340), 제어 스테이트 머쉰(350)과, 레지스터 파일과 SRAM을 포함하는 BP 코아 유니트(360)을 포함한다. In addition, the BP (245) comprises a BP core unit 360 that includes a VLC unit FIFO (330), VLC LUT ROM (340), the control state machine 350, and a register file and SRAM. 도 3의 블록은 부록 A의 10.4절에 기술되어 있다. Block of Figure 3 is described in section 10.4 of Appendix A.

ROM(340)은 4가지 표준 즉, MPEG-1, MPEG-2, H.261 및 H.263에 대하여 허프만 엔코딩 및 디코딩시 사용되는 룩업테이블을 포함한다. The ROM (340) comprises a look-up table is used that is four standard, MPEG-1, when Huffman encoding and decoding with respect to the MPEG-2, H.261 and H.263. 테이블에 저장되는 정보의 양이 방대함에도 불구하고, ROM(340)은 768*12 비트의 작은 사이즈를 가진다. The amount of information that is stored in a table and in spite of which comprise the bulk, ROM (340) has a size of 768 * 12 bits.

작은 사이즈는 테이블을 공유하고, 부록, A의 4절에 기술되어 있는 다른 기술들에 의해 실현된다. Small size sharing the table, and Appendix, is achieved by other techniques that are described in Section 4 of the A.

본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니고 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 게조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다. Although shown and described with respect to the present invention in certain preferred embodiments, the present invention is within the present invention are without departing from the spirit and aspect of the present invention is provided by the scope of what the claims below rather than being limited to the limit Those skilled in the art that various changes may be slack and can be easily seen. 특히, 본 발명은 임의의 회로, 클럭 게이트 또는 이들 실시예의 타이밍에 의해 한정되는 것은 아니다. In particular, the present invention is not limited by any of the circuit, the gate clock or a timing of these embodiments.

상술한 바와 같이 본 발명에 따르면, 비트스트림 처리기에서는 여러 가지 비트스트림이 실시간적으로 동시에 엔코딩 또는 디코딩되도록 문맥을 절환할 수 있기 때문에 다중 데이터 스트림을 동시에 처리할 수 있다. According to the invention as described above, the bit stream processor it is possible to switch the context to a number of bit stream is encoded or decoded in real time and at the same time to handle multiple data streams simultaneously. 또한, 비트스트림 처리기가 단일 산술 명령 또는 불 명령을 수행하기 위해 프로그램되지 않도록 함으로써 비트스트림 처리가 고속으로 동작할 수 있다. In addition, bit stream processor that may be a single arithmetic instruction or fire bitstream processed by the program so as not to perform the command, the operation at a high speed.

Claims (5)

  1. 비디오 데이터를 엔코딩 또는 디코딩하기 위한 시스템에 있어서, 비디오 데이터에 대하여 선형 변환을 수행하는 벡터 처리기, 상기 벡터 처리기의 출력을 압축하거나, 상기 벡터 처리기로 입력하기 위하여 비디오 데이터를 복원하는 비트스트림 처리기, 및 상기 벡터 처리기와 상기 비트스트림 처리기의 동작을 동기화시키는 제어 회로를 포함하며; In the video data to a system for encoding or decoding, a bit stream processor for restoring the video data to compression, or input to the vector processor a vector processor, the output of said vector processor for performing a linear transformation on the video data, and and a control circuit for synchronizing the operation of the vector processor and the bit stream processor; 상기 비트스트림 처리기는 하나의 비디오 데이터 스트림에 대한 처리를 중지하고 다른 비디오 데이터 스트림에 대한 처리를 개시하도록 상기 제어 회로에 의해 인터럽트되어, 상기 시스템이 두 개의 비디오 데이터 스트림을 실시간적으로 엔코딩 또는 디코딩할 수 있도록 상기 비트스트림 처리기가 두 개의 비디오 데이터 스트림을 거의 동시에 처리할 수 있음을 특징으로 하는 비디오 데이터 엔코딩 또는 디코딩 시스템. The bit-stream processor is interrupted by the control circuit to stop processing for one video data stream, and starts processing for the other video data stream, the system is to encode or decode the two video data streams in real time to make a video data encoding or decoding system, characterized in that said bitstream processor could handle almost at the same time, the two video data streams.
  2. 제1항에 있어서, 상기 각 비디오 데이터 스트림은 동화상을 나타내는 것을 특징으로 하는 비디오 데이터 엔코딩 또는 디코딩 시스템. 2. The method of claim 1, wherein each video data stream is a video data encoding or decoding system, characterized in that represents a moving picture.
  3. 비디오 데이터를 엔코딩 또는 디코딩하기 위한 시스템에 있어서, 비디오 데이터에 대하여 선형 변환을 수행하는 벡터 처리기, 및 상기 벡터 처리기의 출력을 압축하거나, 상기 벡터 처리기로 입력하기 위하여 비디오 데이터를 복원하는 비트스트림 처리기를 포함하며; In the video data to a system for encoding or decoding, a bit stream processor for restoring the video data to compression, or input to the vector processor the output of the vector processor, and said vector processor for performing a linear transformation on the video data and comprising; 상기 벡터 처리기는 단일 산술 또는 불 명령을 실행할 수 있도록 프로그램될 수 있고, 상기 비트스트림 처리기는 단일 산술 또는 불 명령을 실행할 수 있도록 프로그램될 수 없음을 특징으로 하는 비디오 데이터 엔코딩 또는 디코딩 시스템. The vector processor and a single arithmetic or fire can be programmed to execute a command, the bit stream processor for video data encoding or decoding system, characterized in that no can be programmed to run a single arithmetic or fire command.
  4. 비디오 데이터를 엔코딩 또는 디코딩하기 위한 방법에 있어서, 비디오 데이터에 대하여 선형 변환을 수행하는 벡터 처리기, 및 상기 벡터 처리기의 출력을 압축하거나, 상기 벡터 처리기로 입력하기 위하여 비디오 데이터를 복원하는 비트스트림 처리기를 포함하며; In the video data to a method for encoding or decoding, a bit stream processor for restoring the video data to compression, or input to the vector processor the output of the vector processor, and said vector processor for performing a linear transformation on the video data and comprising; 상기 벡터 처리기는 단일 산술 또는 불 명령을 실행할 수 있도록 프로그램될 수 있고, 상기 비트스트림 처리기는 단일 산술 또는 불 명령을 실행할 수 있도록 프로그램될 수 없음을 특징으로 하는 비디오 데이터 엔코딩 또는 디코딩 방법. The vector processor can be programmed to perform a single arithmetic or fire command, the bit stream processor for video data encoding or decoding method, characterized in that no can be programmed to run a single arithmetic or fire command.
  5. 제4항에 있어서, 상기 각 비디오 데이터 스트림은 동화상을 나타내는 것을 특징으로 하는 비디오 데이터 엔코딩 또는 디코딩방법. 5. The method of claim 4, wherein each video data stream is a video data encoding or decoding method, characterized in that represents a moving picture.
    [부록 A] [Appendix A]
    MSP-1EX 시스템 사양 MSP-1EX System Specification
    제1장 기술적인 개요 Chapter 1 Technical Overview
    이 장은 하드웨어 및 소프트웨어 설계자가 보여 주는 멀티미디어 신호처리기(MSP-x)의 기술적인 개요를 설명한다. This chapter describes the technical outline of the multimedia signal processor (MSP-x) showing the hardware and software designers.
    1.1 기능 1.1 Features
    멀티미디어 신호처리기(MSP-x)는 퍼스널 컴퓨터 및 주문자 제품 응용을 위한 광범위한 직접된 기능을 제공하기 위하여 일군의 단일 칩 VLSI 장치들을 형성하다. Multimedia signal processor (MSP-x) is formed of a single chip VLSI device of a group to provide a wide range of direct functions for the personal computer and the original equipment manufacturer product applications.
    MSP군은 최적의 비용/성능을 위해 계산된 대한 단일 명령 다중 데이타(SIMD) 모델을 적용하는 강력한 벡터 처리기 구조에 근거를 둔 것이다. MSP group is based on a powerful vector processor architecture for applying a single instruction multiple data (SIMD) model for the calculation for optimal cost / performance. 그 특성은 다음과 같다. Its characteristics are as follows:
    * 완전한 프로그램 가능성 * Possibility of a complete program
    * ARM 명령어 세트 구조에 기초를 둠 * Placing the basis of the ARM instruction set architecture
    * 직접된 40MHz ARM7 RISC CPU 코아 * Direct the 40MHz ARM7 RISC CPU core
    * 고성능 디지탈 신호 처리를 위한 80MHz 벡터 처리기 * 80MHz vector processor for a high performance digital signal processing
    * 9 비트 정수 ALU 동작을 위한 2.56 Gops * 9-bit integers 2.56 Gops for ALU operation
    * 16 비트 정수 승산-누적 동작을 위한 2.56 Gops * 16-bit integer multiply-accumulate operations for 2.56 Gops
    * 32 비트 IEEE 플로팅 포인트 가산을 위한 640 Mflops * 32-bit IEEE 640 for floating-point addition Mflops
    * 32 비트 IEEE 플로팅 포인트 승산 & 가산을 위한 1280 Mflops * 32 bit IEEE 1280 Mflops for floating point multiplication and addition
    * 선택적인 주문형화 또는 그래픽스 기능을 위한 미사용의 10Kgates * Unused for an optional screen or on-demand graphics capabilities 10Kgates
    * 0.65μm 3.3v/5c CMOS 기술에 기초를 둠 - placing the base on a 0.65μm 3.3v / 5c CMOS technology
    * 128 핀-128 핀 캐키지 * -128-pin 128-pin package cache
    MSP는 초기에 4개의 주요 기능을 지원한다. MSP supports the four key features early on.
    * 비디오 * video
    * 오디오/사운드 * Audio / sound
    * 원거리 통신 * Telecommunications
    * 2D/3D 그래픽스(선택) * 2D / 3D graphics (optional)
    1.1.1 비디오 1.1.1 Video
    * 모든 기능이 펌웨어에서 프로그램가능하다. * All functions are programmable by the firmware.
    * 실시간 MPEG-1 디코딩 및 엔코딩 * Real-time MPEG-1 decoding and encoding
    * 실시간 MPEG-2 디코딩 * Real-time MPEG-2 decoding
    * 거의 실시간적인 MPEG-2 엔코딩 * Almost real-time MPEG-2 encoding
    * 실시간 H.324 디코딩 및 엔코딩 * Real-time H.324 encoding and decoding
    * 임의의 스크린 사이즈 또는 해상도에 대한 이미지 스케일링 * The image scaling for any screen size or resolution
    * RGB와 YUV간의 색공간 변환 * Color space conversion between RGB and YUV
    * 픽쳐 윤곽강조 및 잡음 감소를 위한 이미지 필터링 * Image filtering for edge enhancement and noise reduction, picture
    * 4/3 풀다운 변환 * Convert 4.3 pulldown
    1.1.2 오디오/사운드 1.1.2 audio / sound
    * 모든 기능이 펌웨어에서 프로그램가능하다. * All functions are programmable by the firmware.
    * 실시간 MPEG-1 오디오 디코딩 및 엔코딩 * Real-time MPEG-1 audio encoding and decoding
    * 실시간 MPEG-2 오디오 디코딩 및 엔코딩 * Real-time MPEG-2 audio decoding and encoding
    * 실시간 H.320 및 H.324 오디오 디코딩 및 엔코딩 * Real-time H.320 and H.324 encoding and decoding audio
    * 실시간 G.728 및 G.723 음성 코딩 * Real-time G.728 and G.723 voice encoding
    * 실시간 사운드블라스터 에뮬레이션 * Real-time emulation SoundBlaster
    * 웨이브테이블 합성 * Wavetable synthesis
    * FM 합성 * FM synthesis
    1.1.3 원거리 통신 1.1.3 Telecommunications
    1.1.3.1 모뎀 1.1.3.1 Modem
    * 표준 비동기 COM 포트 인터페이스(NS 16550A UART 호환가능) * Standard asynchronous COM port interface (NS 16550A compatible UART available)
    * 28.8K로부터 2.4 Kbps까지의 V.34 * V.34 up to 2.4 Kbps from 28.8K
    * 4800, 9600 무부호화 및 9600 bps 트렐리스 부호화에 대한 데이타 레이트를 갖는 CCITT-V.32bis * 4800, 9600 and 9600 bps bit unsigned-CCITT V.32bis having a data rate for a trellis coded
    * Hayes AT 명령어 세트 호환성 * Hayes AT command set compatible
    * 호출 진행 모니터 * Call progress monitoring
    * V.25bis 오토다이얼 * V.25bis auto dial
    * DTMF 및 펄스 다이얼링 * DTMF and pulse dialing,
    * 비동기 에러 복구 프로토콜 * Asynchronous error recovery protocol
    * V.42 에러 정정 * V.42 error correction
    1.1.3.2 팩시밀리 1.1.3.2 Facsimile
    * 9600 bps 또는 7200 bps의 V.29 * 9600 bps or 7200 bps in V.29
    * 4800 bps 또는 2400 bps V.27 * 4800 bps or 2400 bps V.27
    * 호출 진행 모니터 * Call progress monitoring
    * DTMF 및 펄스 다이얼링 * DTMF and pulse dialing,
    * G3 트랜스퍼들 * G3 transfer of
    * T.4/T.30 동작 * T.4 / T.30 operation
    1.1.3.3. 1.1.3.3. 전화 응답 Telephone Answering
    * 전화기 세트 또는 마이크로폰을 통해 인사말 녹음 * Greeting through a telephone set or microphone recording
    * 수신된 전화에 대해 자동 응답하여 미리 녹음된 메세지 응신 * Automatically respond to incoming telephone prerecorded message reply
    * 전화를 건 사람으로 부터 메시지 녹음 * Record the message from the caller
    * 전화를 건 사람이 남긴 메시지 재생 * Replay message left by the caller
    1.1.4 2D/3D 그래피스(선택) 1.1.4 2D / 3D Yeah pieces (optional)
    * BITBLT * BITBLT
    * 2D 라인&폴리곤 드로잉 및 쉐이딩 * 2D line and polygon drawing and shading
    * 3D 포인트, 라인 및 삼각형에 대한 지오메트리&채광 계산 * 3D points, the geometry of the line and the triangle & lighting calculations
    * 텍스쳐 매핑으로 3D 칼라 계산 * 3D Color counted as texture mapping
    * 블렌딩 * Blending
    1.2 하드웨어 구조 1.2 Hardware Architecture
    1.2.1 개요 1.2.1 Overview
    MSP-1 멀티미디어 코프로세서 군은 집적도 레벨, 비용 및 성능을 포함하는 여러가지 요구사항을 만족시키도록 설계한다. MSP-1 group multimedia co-processor is designed to meet the various requirements, including the level of integration, cost, and performance. MSP-1 처리기를 포함하는 블록도는 도 4에 나타나 있다. Block diagram including MSP-1 processor is shown in FIG.
    MSP-1 군은 다음과 같은 핀-아웃 옵션을 포함한다. MSP-1 group has the following pin-out options include.
    * MSP-1은 외부 SDARM을 사용하지 않고 엔트리-레벨로 사용되도록 설계된다. * MSP-1 was without the use of external SDARM entry - is designed to be used as levels.
    * MSP-1EX은 외부 SDRAM과 인터페이싱을 위한 32비트 베모리를 포함한다. * MSP-1EX includes a 32-bit memory for chopping the external SDRAM interface.
    * MSP-1F는 외부 SDRAM과 인터페이싱을 위한 64비트 메모리를 포함한다. * MSP-1F and includes a 64-bit memory for interfacing with an external SDRAM.
    * MSP-1G는 집적된 SVGA 콘트롤러, 고속화된 3D 그래피스 가속이 부가된 RAMDAC을 포함한다. * The MSP-1G comprises a an integrated SVGA controller, high-speed 3D Yes piece acceleration is added RAMDAC.
    도 5는 MSP-1E 처리기를 포함하는 시스템의 블록도이다. 5 is a block diagram of a system including a processor MSP-1E.
    1.2.2 외부 코덱 1.2.2 External codec
    도 6은 외부 코덱과 함께 MPS-1 처리기를 포함하는 시스템의 블록도이다. Figure 6 is a block diagram of a system including the MPS-1 processor with an external codec.
    1.2.2.1 MPS-1EX의 재료 목록 1.2.2.1 Materials list of MPS-1EX
    다음은 MSP-1EX에 대하여 제시된 재료 목록이다. The following is a list of materials presented against the MSP-1EX.
    * MSP-1EX * MSP-1EX
    * 512K × 32 비트 동기 DRAM * 512K × 32 bit synchronous DRAM
    * NTSC/PAL 엔코더(삼성의 KS0119) * NTSC / PAL encoder (Samsung KS0119)
    * 오디오 & 원거리통신 코덱(아날로그 디바이스사의 AD1843) * Audio & Telecommunications codec (AD1843 Analog Devices, Inc.)
    * 기타(캐패시터들, 저항들, 증폭기들, 콘넥터들, 등) * Other (capacitors, resistors, amplifiers, connectors s, etc.)
    * 프린트된 회로기판 - printed circuit board
    1.3 마이크로 구조 1.3 microstructured
    1.3.1 개요 1.3.1 Overview
    기본적으로 MSP 마이크로 구조는 매우 강력한 DSP 코아와 주문자에 의해 규정된 메모리&I/O 서비시스템으로 구성된다.(도 2 참조) DSP 코아는 다음을 포함한다. By default, the MSP microstructure is composed of a memory & I / O service system defined by the powerful DSP core and original equipment manufacturer (see Fig. 2) DSP core, including the following.
    * 40MHz로 동작하고 일반적인 처리를 위해 사용되는 32비트 ARM7 RISC CPU * 32-bit operation to 40MHz is used for general processing ARM7 RISC CPU
    * 80MHz 동작하고 신호 처리를 위해 사용되는 벡터 처리기 * 80MHz vector processor is operated and used for the signal processing
    * 80MHz러 동작하고, 2KB 명령 캐쉬, 5KB 데이타 캐쉬 및 16KB ROM 캐쉬를 가지는 공유된 캐쉬 서브시스템. * 80MHz operation, and Russia, 2KB instruction cache, 5KB data cache and shared cache subsystem with a cache 16KB ROM. 데이타 캐쉬는 하드웨어 또는 소프트웨어에 의해 제어될 수 있다. Data cache can be controlled by hardware or software.
    * 80MHz로 동작하고 내부의 많은 FBUS 주변기기와 인터페이스하는 고속 64 비트 버스(FBUS) * High-speed 64-bit bus running at 80MHz and FBUS interface and many peripheral internal (FBUS)
    * 40MHz로 동작하고 많은 IOBUS 주변기기와 인터페이스하는 저속의 32 비트 버스(IOBUS) * 32-bit bus running at 40MHz and the low-speed interface and a number of peripheral IOBUS (IOBUS)
    내부의 FBUS 주변기기는 다음을 포함한다. FBUS internal peripherals include:
    * 32 비트 33MHz PCI 버스 인터페이스 * 32-bit 33MHz PCI bus interface
    * 64 비트 SDRAM 메모리 콘트롤러 * 64-bit SDRAM memory controller
    * 8채널 DMA 콘트롤러 * 8-channel DMA controller
    * 주문자 ASIC 로직 블록, 주문자 ASIC 로직 블록은 여러가지 아날로그 코덱에 대한 인터페이스들과 주문자가 규정한 I/O 장치들을 포함하는 총 10Kgates를 제공한다. * Provides the total 10Kgates including interfaces and I / O device is specified by the purchaser for the purchaser ASIC logic block, logic block number of the purchaser ASIC analog codec. 인터페이스 로직은 삼성의 KS0119 NTSC 엔코더 및 아날로그 디바이스사의 AD1843 코덱을 지원한다. Interface logic to support the Samsung KS0119 NTSC encoder and Analog Devices AD1843 codec's.
    * 호스트(Pentlure) 메모리로부터 MSP 로컬 SDRAM 메모리까지 데이타를 DMA 하는데 사용되는 메모리 데이타 이동기 * Host (Pentlure) memory data to be used to DMA the data to the local MSP SDRAM memory from a memory the mobile device
    * 비디오 비트스트림을 처리하는 비트스트림 처리기 * Bit stream processor for processing a video bitstream
    * 16450 UART 시리얼 라인 * 16450 UART serial line
    * 8254-호환가능한 타이머 * 8254- compatible timer
    * 8259-호환가능한 인터럽트 콘트롤러 * 8259- compatible interrupt controller
    또한, MSP는 소프트웨어로 제어되는 초기화 인터럽트를 위해 사용되는 특수한 레지스터(MPS 제어 레지스터)를 포함한다. In addition, MSP includes a special register (MPS control register) is used to initialize the interrupt is controlled by software.
    1.4 MSP-1EX 핀 설명 1.4 MSP-1EX Pin Description
    1.4.1 총:256핀 1.4.1 Total: 256 Pin
    1.4.2 PCI 버스 인터페이스(53 핀) 1.4.2 PCI bus interface (53-pin)
    CLK 클럭 입력 핀 CLK clock input pin
    RSTL 입력 핀 리셋, 액티브 로우 RSTL input pin reset, active low
    AD[31:0] 어드레스 및 데이타 버스 핀 AD [31: 0] address and data bus pins
    C_BE0L 콘트롤&바이트 0 인에이블 핀, 액티브 로우 C_BE0L control byte 0 & enable pin, active low
    C_BE1L 콘트롤 & 바이트 1 인에이블 핀, 액티브 로우 C_BE1L control and byte enable pin 1, the active-low
    C_BE2L 콘트롤 & 바이트 2 인에이블 핀, 액티브 로우 C_BE2L control and byte enable pin 2, an active-low
    C_BE3L 콘트롤 & 바이트 3 인에이블 핀, 액티브 로우 C_BE3L control bytes 3 and an enable pin, active low
    PAR 패리티 핀 PAR Parity pin
    FRAMEL 사이클 프레임 핀, 액티브 로우 FRAMEL cycle frame pin, active low
    IRDYL개시자 준비 핀, 액티브 로우 IRDYL initiator ready pin, active low
    TRDYL타겟 준비 핀, 액티브 로우 TRDYL target ready pin, active low
    STOPL정지 처리 핀, 액티브 로우 STOPL stop processing pin, active low
    LOCKL락 처리 핀, 액티브 로우 It LOCKL lock pin treatment, active-low
    IDSEL초기화 장치 선택 입력 핀 IDSEL initiator selected input pin
    DEVSEL장치 선택 핀, 액티브 로우 DEVSEL Device Select pin, active low
    REQL버스 요청 핀, 액티브 로우 REQL bus request pin, active low
    GNTL버스 승인 핀, 액티브 로우 GNTL bus acknowledge pin, active low
    PERRL패리티 에러 핀, 액티브 로우 PERRL parity error pin, active low
    SERRL시스템 에러 핀, 액티브 로우 SERRL pin system error, active low
    INTAL인터랍트 핀, 액티브 로우 INTAL inter rapteu pin, active low
    1.4.3 기타(6핀) 1.4.3 Other (6 pins)
    TCKJTAG 테스트 클럭 입력 핀 TCKJTAG test clock input pin
    TDIJTAG 테스트 데이타 입력 핀 TDIJTAG test data input pin
    TD0JTAG 테스트 데이타 출력 핀 TD0JTAG test data output pin
    TMSJTAG 테스트 모드 선택 입력 핀 TMSJTAG test mode select input pin
    TRSTLJTAG 테스트 리셋 입력 핀 TRSTLJTAG test reset input pin
    CLK 클럭 입력, 이는 40MHz 클럭 입력 핀이다. CLK clock input, which is a 40MHz clock input pin.
    1.4.4 KS0119 NTSC/PAL 엔코더 인터페이스(24핀) 1.4.4 KS0119 NTSC / PAL encoder interface (24-pin)
    SFRS3 와이어 호스트 인터페이스를 위하여 KS0119로 출력되는 프레임 동기 Frame synchronization outputted by KS0119 for SFRS3 wire host interface
    SCLKKS0119 로 출력되는 시리얼 클럭 Serial clock output by SCLKKS0119
    SDAT 시리얼 데이타 I/O SDAT serial data I / O
    BGHSMSP 에 입력되는 수평동기신호 A horizontal synchronization signal input to the BGHSMSP
    BGVSMSP 에 입력되는 수직동기신호 A vertical synchronizing signal input to the BGVSMSP
    MSSEL 마스터 선택 MSSEL Master Selection
    PD[15:0]KS0119 로 출력되는 픽셀 데이타 PD [15: 0] pixel data to be output to KS0119
    BGCLKKS0119 로 출력되는 픽셀 클럭 Pixel clock output to BGCLKKS0119
    PROMCSLBIOS PROM 칩 선택 PROMCSLBIOS PROM chip select
    1.4.5 AD1843 오디오 & 원거리통신 코덱 인터페이스(6핀) 1.4.5 AD1843 audio and telecommunications codec interface (6 pins)
    A43SCLK 시리얼 클럭 입/출력. A43SCLK serial clock input / output. SCLK는 버스 마스터(BM) 핀이 HI로 구동될 경우 클럭을 시리얼 버스에 대한 출력으로 공급하고, BM 핀이 LO로 구동될 경우 클럭을 입력으로 받아들이는 양방향 신호이다. SCLK is a bus master (BM) is a two-way signal to accept the clock input when the clock is supplied when the driving pin as the HI output on the serial bus to be driven with the LO pin BM.
    A43SDFS 시리얼 데이타 프레임 동기 입/출력. A43SDFS frame sync serial data input / output. SDFS는 버스 마스터(BM) 핀이 HI로 구동될 경우 프레임 동기신호를 시리얼 버스에 대한 출력으로 공급하고, BM 핀이 LO로 구동될 경우 프레임 동기신호를 입력으로 받아들이는 양방향 신호이다. SDFS the bus master (BM) is a two-way signal frame that accepts as input a frame synchronization signal when the synchronization signal is supplied as an output to the serial bus, driven by the LO pin BM when driven by the pin HI.
    A43SDI MSP 로 부터 출력되는, AD1843에 대한 시리얼 데이타 데이타 입력 핀. Outputted from the A43SDI MSP, pin serial data Data input to the AD1843. 모든 제어 및 재생 트랜스퍼들은 16비트 길이 MSB이다. All control and reproduction transfer are the 16-bit MSB.
    A43SD0AD1843 로 부터 출력되는 MSP로 입력되는 시리얼 데이타 출력 핀. Serial input to the MSP which is output from the data output pin A43SD0AD1843. 모든 스페이스 제어 레지스터 독출 및 재생 트랜스퍼들은 16비트 길이 MSB 이다. All space control register read and play transfers are 16-bit MSB.
    1.4.6 메모리 버스 인터페이스(87핀) 1.4.6 memory bus interface (87-pin)
    RAS1L 출력 핀(액티브 로우). RAS1L output pin (active low). 이는 MA[11:0]으로 부터의 로우 어드레스를 선택된 SDRAM 뱅크의 내부 로우 어드레스 버프로 래치하는 로우 어드레스 스트로브이다. This MA [11: 0] is the row address strobe to latch the row address into the buffing of the SDRAM banks selected by the row address from.
    CAS 1L 출력 핀(액티브 로우). CAS 1L output pin (active low). 이는 MA[11:0]으로 부터의 칼럼 어드레스를 선택된 SDRAM 뱅크의 내부 칼럼 어드레스 버퍼로 래치하는 로우 어드레스 스트로브이다. This MA [11: 0] is the row address strobe for latching into the column address buffer in the SDRAM banks selected by the column address from.
    MWEL 출력 핀(액티브 로우). MWEL output pin (active low). 이는 SDRAM에 대한 기입 인에이블이다. This is the write enable for the SDRAM.
    MAI[11:0] 출력 핀. MAI [11: 0] output pins. SDRAM에 대하여 다중화된 로우 및 칼럼 어드레스 신호. The row and column address signals multiplexed on SDRAM.
    MD[63:0] 입/출력 SDRAM 데이타 핀 MD [63: 0] I / O data pin SDRAM
    MA23 출력 핀. MA23 output pin. 메모리 어드레스 비트23 Memory address bit 23
    MA24 출력 핀. MA24 output pin. 메모리 어드레스 비트24 Memory address bit 24
    DQM 출력 핀. DQM output pin. 클럭 이후 SDRAM 데이타를 하이 임피던스로 만들고, 출력을 마스크시킨다.(이 핀은 동기 DRAM 인터페이스를 위해서만 사용된다.) Making the SDRAM clock after the data in the high impedance, the output mask. (This pin is only used for synchronous DRAM interface).
    MCKE 출력 핀. MCKE output pin. 다음 클럭 사이클에서 부터 동작을 중지시키기 위해 SDRAM의 시스템 클럭을 마스크시킨다. The following mask then the system clock of the SDRAM in order to stop the operation from the clock cycle.
    MCS0L 출력 핀(액티브 로우), 하위 32 비트에 대한 SDRAM 칩 선택 MCS0L output pin (active low), SDRAM chip selection for the low-order 32 bits
    MCS1L 출력 핀(액티브 로우). MCS1L output pin (active low). 상위 32 비트에 대한 SDRAM 칩 선택 SDRAM chip selection for the upper 32 bits
    MR. MR. DYH 출력 핀. DYH output pin. SDRAM 준비 신호. SDRAM ready signal.
    MEMCLK 출력 핀. MEMCLK output pin. 이는 SDRAM에 대한 클럭 출력 핀이다. This is a clock output pin of the SDRAM.
    1.4.7 전원 1.4.7 Power
    VDD3.3 볼트 전원 핀 VDD3.3 volt power pins
    VCC5 볼트 전원 핀 VCC5 volt power pins
    VSS 접지 핀 VSS Ground pin
    [테이블 1] [Table 1]
    MSP-1EX 핀 지정 MSP-1EX pin assignments
    1.5 펌웨어 구조 1.5 Firmware structure
    1.5.1 개요 1.5.1 Overview
    MSP는 벡터화된 DSP 펌웨어 라이브러리(벡터 처리기에서 실행됨)들의 매우 최적화된 결합 및 시스템 관리 기능(ARM7에 의해 실행)을 통해 강력하고 개방적인 응용환경을 많이 제공한다. MSP provides a lot of powerful, open application environment through a highly optimized and combined management system (run by the ARM7) of (running in a vector processor) vectorized DSP firmware library.
    MSP는 신호 처리 개발과 호스트 응용 개발을 분리함으로써, 스케일러블 성능, 비용 효과적인 멀티미디오 & 통신, 사용하기 편리함 및 다루기 쉬움을 제공한다. MSP provides the signal processing and development by separating the host application development, the scalable performance, cost-effective multimedia O & Communications, ease of use and manageability. 또한, 응용 개발과 유지 비용을 감소시킨다. In addition, to reduce the application development and maintenance costs.
    1.5.2 펌웨어 구조 1.5.2 Firmware Structure
    MSP 펌웨어 시스템 구조는 도 7에 도시된 바와 같다. MSP firmware system architecture is shown in Fig. 음영이 진 영역은 MSP 시스템 요소를 나타내고, 나머지 여백은 내재하는 PC 응용 및 동작 시스템을 나타낸다. Jin The shaded area represents the MSP system element, the rest of the space shows the PC application and the operating system that is inherent.
    1.5.2.1 MOSA(멀티미디어 동작 시스템 구조) 1.5.2.1 MOSA (multimedia operating system architecture)
    MSP의 실시간 동작 시스템 커널은 "MOSA"라 하며, 이는 마이크로소프트의 실시간 커널 MMOSA의 서브세트이다. Real-time operating system kernel and the MSP is called "MOSA", which is a subset of the Microsoft MMOSA real-time kernel.
    MOSA는 실시간적이고, 튼튼하고, 멀티태스킹이 가능하고, 선매권이 있는 동작 시스템으로서, MSP상에서 구현된 멀티미디오 응용을 위해 활용된다. MOSA is real-time and, as a robust, operate in a multi-tasking is possible, and refusal system, and is utilized for the multi-media application implemented on a five MSP. 이는 다음과 같은 주요 기능들을 수행한다. It performs the following primary functions:
    * 호스트 윈도우 95와 윈도우즈 NT와의 인터테이싱 * Host with Windows 95 and Windows NT Inter Tay Singh
    * 호스트로부터 선택된 응용 펌웨어의 다운 로딩 - downloading of the selected application from the host firmware
    * ARM7 및 벡터처리기에서 수행하기 위해 MSP 태스크의 스케쥴링 * ARM7 and scheduling of tasks to perform at MSP vector processor
    * 메모리 & I/O 장치를 포함하는 모든 MSP 시스템 자원의 관리 * Management of all MSP system resources, including memory & I / O Devices
    * MSP 태스크들간의 통신의 동기화 - communication of the synchronization between the MSP task
    * MSP 관련된 인터럽트, 예외 및 스테이터스 조건들의 리포팅 * MSP-related interrupt, exception reporting of status and conditions
    MOSA는 ARM7 상에서 배타적으로 동작한다. MOSA will exclusively operate on ARM7.
    좀 더 상세한 것은 MMOSA 실시간 커널 사양을 참조하기로 한다. It further will be detailed with reference to MMOSA real-time kernel specification.
    1.5.2.2 멀티미디어 라이브러리 모듈 1.5.2.2 Multimedia Library module
    멀티미디어 라이브러리 모듈은 데이타 압축, MPEG 비디오 & 오디오, 음성 코딩 및 합성, 사운드블라스터 호환가능한 오디오 등과 같은 기능을 수행하는 보드범위의 모듈들을 제공한다. Multimedia library module provides data compression, MPEG video and audio, speech coding and synthesis, SoundBlaster compatible modules on the board to perform a range of functions including audio. 각 모듈은 MSP 환경으로 최적화되고, 멀티태스킹 환경에서 수행하도록 설계된다. Each module is optimized MSP environment, it is designed to do in a multitasking environment.
    1.5.3 텔레콤 라이브러리 1.5.3 Telecom Library
    1.5.3.1 개요 1.5.3.1 Overview
    적절한 DSP 펌웨어와 함께, MSP는 인터셉트되는 음성 응용을 지원하고, 걸려오는 전화 호출에 응답하고, 하드디스크 상에 메시지를 저장하도록 사용될 수 있다. With the appropriate DSP firmware, MSP can be used to support voice application to be intercepted and in response to a telephone call is ringing, and stores the message on a hard disk. 또한, 시스템 스피커는 반 2중(half-duplex) 스피커 폰을 서비스하기 위하여 마이크로폰을 사용할 수 있다. In addition, the speaker system may use a microphone in order to service the second half of the (half-duplex) speakerphone. 걸려오는 전화 및 거는 전화의 진행이 감지되어 시스템에서 사용된다. The proceeds of incoming calls and outgoing calls are detected and are used in the system. 또한, 전화 진행 톤은 프로그램 제어하에 선택된 전화기의 송수화기, 시스템 스피커, 스테레오 헤드폰 또는 오디오 출력 채널들을 통해 들을 수 있다. In addition, the call progress tone may be heard through the handset, a speaker system, or a stereo headphone audio output channels of the phone is selected under program control.
    1.6 프로그래밍 모델 1.6 programming model
    1.6.1 개요 1.6.1 Overview
    하드웨어 관점에서 볼 때, MSP는 두 개의 CPU와 많은 집적된 주변장치들을 포함하는 단일 칩 해결안이다. From a hardware point of view, MSP is a single-chip solutions containing two CPU and the number of integrated peripherals. 소프트웨어 관점에서 볼 때, MSP는 PCI 버스상에 존재하는 고성능 디지탈 신호 처리(DSP) 장치이다. From a software point of view, MSP is a high-performance digital signal processing (DSP) devices existing on the PCI bus.
    호스트 CPU에 의한 MSP의 제어는 다음 중 어느 하나에 의해 실현될 수 있다. Control of the MSP according to the host CPU may be realized by any one of the following:
    * PCI 버스를 통해 MSP 제어 & 스테이터스 레지스터들의 기입 독출, 또는 * Read write control of the MSP and the status register via the PCI bus, or
    * 호스트 시스템 메모리에 존재하는 공유된 데이타 구조 * Shared data structures present in the host system memory
    * MSP 로컬 메모리에 존재하는 공유된 데이타 구조 * MSP shared data structure that exists in the local memory
    MSP 프로그램 수행은 항상 ARM7 CPU로 시작하며, 이는 순차적으로 벡터 처리기에 있는 제2 종속적인 실행 스트림을 초기화시킬 수 있다. MSP perform the program always starts in ARM7 CPU, which may initialize a second-dependent running stream in the vector processor in sequence. ARM7 CPU와 벡터 처리기 사이의 제어 동기화는 ARM7에 있는 임의의 코프로세서 명령(STARTVP, INTVP, TESTVP)과, 벡터 처리기에서의 특수한 명령(VJOIN, VINT)에 의해 수행된다. Control synchronization between the ARM7 CPU and a vector processor is carried out by any of a coprocessor instruction (STARTVP, INTVP, TESTVP), a special instruction in the vector processor (VJOIN, VINT) in ARM7. ARM7 CPU와 벡터 처리기 사이의 데이타 전송은 ARM7에서 실행되는 데이타 이동 명령에 의해 수행될 수 있다. Data transfer between the ARM7 CPU and the vector processor can be performed by a data move instructions executed in ARM7.
    ARM7 CPU는 일반적으로 대부분의 인터럽트 & 예외 처리 뿐만 아니라, 호스트 인터페이스, 자원 관리, I/O 장치 처리를 담당한다. The ARM7 CPU is usually most interrupt and exception handling, as well as in charge of the host interface, resource management, I / O processing system. 벡터 처리기는 모든 디지탈 신호 처리 및 코프로세서 인터럽트(ARM7에서 벡터 처리기로 발생됨)와 하드웨어 스택 오버플로우(벡터 처리기에서)와 같은 임의의 특수한 인터럽트를 담당한다. The vector processor is responsible for any particular interrupt, such as substantially all of the digital signal processor and co-processor interrupts (balsaengdoem in ARM7 in vector processor) and hardware stack overflow (vector processor).
    또한, MSP는 여러가지 I/O 장치에 대하여 인터페이싱하기 위하여 집적된 주변기기를 많이 포함한다. In addition, the MSP may contain a lot of the integrated peripherals to interface with respect to the various I / O devices. 모든 주변 장치들의 어드레스는 메모리 맵핑되고, 따라서 표준 메모리 로드 & 저장 명령(ARM7 CPU 또는 벡터 처리기 중 하나에 의해)으로 억세스 될 수 있다. Addresses of all peripheral devices may be mapped access memory, according to the standard of memory load and store instruction (by one of the ARM7 CPU or vector processor).
    1.6.2 전원 인가, 리셋 & 초기화 1.6.2 Is Power, Reset and initialization
    전원이 인가된 후, MSP는 기능을 정확히 확인하기 위하여 자동으로 셀프-테스트 시퀀스로 들어간다. After the power is applied, MSP is automatically self in order to determine the exact function - to enter the test sequence. 셀프-테스트 시퀀스는 다음을 포함한다. The self-test sequence includes the following:
    * 모든 내부 MSP 레지스터의 초기화 * Initialize all internal registers MSP
    * MSP의 모든 요소를 확인하기 위하여 반도체 칩의 셀프-테스트 진단 수행 * The semiconductor chip to identify all elements of the MSP self-diagnostic tests performed
    그리고, 셀프-테스트 시퀀스는 〈tds〉 초 근처까지 지속될 것으로 예상된다. And, the self-test sequence is expected to continue until around the early <tds>. 셀프-테스트 시퀀스의 끝에서, MSP는 다음을 포함하는 MSP 펌웨이를 수행할 준비를 한다. Self - At the end of the test sequence, MSP MSP should be prepared to perform this firmware includes the following:
    * MSP의 초기화 소프트웨어의 로딩 및 실행 * Loading and execution of the initialization software in the MSP
    * MSP의 실시간 동작 시스템 커널 MMOSA의 로딩 및 실행 * MSP of the loading and execution of a real-time operating system kernel MMOSA
    MSP는 다음의 3가지 종류의 리셋을 지원한다. MSP supports the following three types of reset.
    * PCI 버스에 의한 하드웨어 제어 시스템 리셋 * Hardware reset control system according to the PCI bus
    * MSP 제어 레지스터에 있는 PCI 시스템 리셋 비트에 의한 소프트웨어 제어시스템 리셋 * The control system software reset of the PCI system, the reset bit in the control register MSP
    * MSP 제어 레지스터에 있는 벡터 재개시 비트에 의한 소프트웨어 제어 재개시(restart) * Control software resume (restart) by the vector resume when the bit in the control register MSP
    1.6.3 PCI 배열 레지스터들 1.6.3 The PCI register array
    PCI 버스에 대한 I/O 장치로서, MSP는 PCI Rev 2.1에 정의되며 테이블 2에 나타나 있는 한 세트의 배치 레지스터를 포함한다. An I / O device on the PCI bus, MSP is defined in the PCI Rev 2.1 includes a set of configuration registers shown in table 2.
    [테이블 2] [Table 2]
    PCI 배열 레지스터들 The PCI register array
    1.6.3.1 장치 & 벤더 식별자 레지스터 1.6.3.1 device and vendor identifier register
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    1.6.3.2 스테이터스 & 커맨드 레지스터 1.6.3.2 Status and command register
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    1.6.3.3 클래스 코드 & 교정 식별자 레지스터 1.6.3.3 Class Identifier Code & calibration register
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    MSP-1EX에 대해, 클래스 코드는 03으로 정의되고, 서브 클래스는 0이다. For MSP-1EX, the class code is defined as 03, the sub-class is 0.
    1.6.3.4 기타 레지스터 1.6.3.4 Other registers
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    1.6.3.5 MSP 베이스 어드레스 레지스터(MSP BASE) 1.6.3.5 MSP base address register (MSP BASE)
    이 레지스터는 MSP 장치를 위한 베이스 어드레스를 저장한다. This register stores the base address for the MSP system. 이 어드레스는 호스트 시스템 소프트웨어(Windows 95/NT)에 의해 기입되고, MSP 하드웨어에서 사용되어 메모리를 어드레싱한다. The address is written by the host system software (Windows 95 / NT), it is used by the MSP to address the memory hardware.
    1.6.3.6 VFB 베이스 어드레스 레지스터 1.6.3.6 VFB base address register
    이 레지스터는 VGA 가상 프레임 버퍼를 위한 베이스 어드레스를 저장한다. This register stores the base address for the VGA virtual frame buffer. 이 어드레스는 호스트 시스템 소프트웨어(Windows 95/NT)에 의해 기입되고, MSP 하드웨어에서 사용되어 VGA 프레임 버퍼를 에뮬레이션한다. The address is written by the host system software (Windows 95 / NT), it is used by the MSP hardware to emulate the VGA frame buffer.
    1.6.3.7 확장 ROM 베이스 어드레스 1.6.3.7 Expansion ROM base address
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    1.6.3.8 인터럽트 라인 레지스터 1.6.3.8 interrupt line register
    좀 더 상세한 것은 PCI 버스 사양 Rev 2.1 참조. More details, see PCI Bus Specification Rev 2.1.
    1.6.4 ARM7 CPU 1.6.4 ARM7 CPU
    ARM7 RISC CPU는 MSP의 마스터 처리기로서, 32비트 데이타 경로를 포함하며 표준 ARM7 명령 세트 구조로 이루어진다. ARM7 RISC CPU includes a 32-bit data paths as the master processor of the MSP, and comprises a standard ARM7 instruction set architecture. 또한, ARM7은 벡터처리기와 인터페이스하기 위해 특수한 코프로세서 명령을 포함한다. In addition, ARM7 co-processor includes a special command to the interface and the vector processor.
    1.6.5 벡터 처리기 1.6.5 Vector Processor
    벡터 처리기는 MSP의 DSP 엔진으로서, 288 비트 데이타 경로를 포함하며, ARM7에 대해 코프로세서로 동작한다. Vector processor as the MSP DSP engine, comprising a 288-bit data paths, and operates as a coprocessor for the ARM7. 이러한 기능은 벡터 처리기 구조 문서에 기술되어 있다. These features are described in a vector processor architecture document.
    벡터 처리기(220)는 80MHz로 동작하며, 6 스테이지의 파이프라인 즉, 페치(fetch), 디코딩(decode), 유출인(issuer), 레지스터 억세스(register access), 실행(execute) 및 기입(write)을 포함한다. Vector processor 220 is operative to 80MHz, a pipeline of six stages namely, fetch (fetch), decode (decode), outlet (issuer), a register access (register access), run (execute) and write (write) It includes. 이는 DSP 관련 처리를 위해 최적화된다. Which it is optimized for DSP-related processing.
    1.6.6 가상 메모리 관리 1.6.6 Virtual Memory Management
    MSP-1EX는 가상 메모리 관리를 지원하지 않는다. MSP-1EX does not support virtual memory management.
    1.6.7 인터럽트 & 실행 처리 1.6.7 & interrupt execution processing
    MSP에서 인터럽트 실행 처리는 대부분 ARM7에 의해 행해진다. In MSP interrupt execution processing is performed by the most ARM7.
    내부의 모든 입/출력 장치 인터럽트들은 내부의 8254 인터럽트 콘트롤러로 들어가서, 이들간의 우선순위를 결정하여 가장 높은 우선순위의 인터럽트를 다음 처리를 위해 ARM7로 보낸다. All the I / O device interrupts are to penetrate the inside of the 8254 interrupt controller, to determine a priority between them sends the interrupt of higher priority in ARM7 for subsequent processing.
    1.6.8 물리적인 메모리 어드레스 맵 1.6.8 physical memory address map
    ARM7 및 벡터 처리기 프로그램은 도 8에 나타나 있는 물리적인 메모리에 따라서 메모리 매핑된 모든 MSP 입/출력 장치들을 보여준다. ARM7 and vector processor program shows the memory map MSP all input / output device according to the physical memory shown in Fig.
    ARM7(또는 벡터 처리기)에 의해 보여지는 MSP 어드레스 맵은 0에서부터 시작하여 4GB까지 확장된다. MSP address map as seen by the ARM7 (or vector processor) is expanded starting from 0 up to 4GB.
    2GB에서 4GB까지의 영역에 있는 어드레스들은 다음의 관계식에 따라서 0에서 2GB까지의 호스트(펜티엄) PCI 어드레스로 매핑된다. In the address 2GB in the region of up to 4GB are mapped in 0 accordance with the following relation to the host (Pentium) PCI address of up to 2GB.
    호스트 PCI 어드레스 : =ARM7 어드레스 - 8000 0000 (in hex) PCI host addresses: address = ARM7 - 8000 0000 (in hex)
    이러한 매핑에 의해 ARM7(또는 벡터 처리기)은 0에서 부터 2GB까지의 호스트 PCI 메모리 어드레스를 억세스하기 위해 2GB에서 부터 4GB까지의 어드레스를 사용할 수 있다. ARM7 (or vector processor) by such mapping can be used to access the address of the host PCI memory address from 0 to 2GB from at 2GB to 4GB. ARM7은 2GB 이상의 호스트 PCI 메모리 어드레스에 대해서는 억세스하지 못한다. ARM7 does not access the host for the PCI memory address than 2GB.
    또한, 호스트(펜티엄) 프로그램들은 도 9에 나타나 있는 다소 제한된 물리적인 메모리에 따라서 메모리 매핑된 모든 입/출력장치들을 보여준다. In addition, the host (Pentium) programs shows the memory mapping of all the input / output device according to the physical memory rather limited shown in Fig.
    호스트(펜티엄)에서 볼 때, When viewed from the host (Pentium)
    * MSP_BASE는 MSP 어드레스 맵의 시작이다. * MSP_BASE MSP is the beginning of the address map.
    * MSP_BASE + 7DFFFFF는 MSP 어드레스 맵의 끝이다. * MSP_BASE + 7DFFFFF MSP is the end of the address map.
    * MSP 어드레스 맵은 128MB 범위에서만 정의된다. * MSP address map is only 128MB defined range.
    [테이블 3] [Table 3]
    MSP I/O 장치 어드레스 맵 MSP I / O unit address map
    1.6.9 MSP 호스트 제어 레지스터 1.6.9 MSP host control register
    MSP-1EX는 호스트(펜티엄 프로세서)에 의한 초기화 및 인터럽트를 위해 사용되는 특수한 레지스터를 포함한다. The MSP-1EX comprises a special register to be used for initialization and interrupts by the host (Pentium processors).
    [테이블 4] [Table 4]
    MSP 제어 레지스터 정의 MSP defines the control register
    bit 〈0〉PCI 시스템 리셋. bit <0> PCI system reset.
    이 비트는 MSP 관련된 모든 내부/외부 입출력장치들을 포함하는 전체 MSP 시스템 하드웨어를 완전히 리셋시키기 위하여 호스트(펜티엄)에서 사용된다. This bit is used by the host (Pentium) in order to completely reset the whole MSP system hardware that includes all internal / external output device of MSP. PCI 시스템을 리셋시킨 후, MSP는 ARM7, 벡터 처리기 및 I/O 장치에 대한 칩상의 모든 셀프-테스트 진단 실행을 포함하는 표준 리셋 시퀀스를 처리할 것이다. After reset the PCI system, MSP are all on a chip for the self-ARM7, vector processor and the I / O device will process the standard reset sequence comprising a diagnostic test run. 이러한 리셋은 하드웨어 시스템 리셋과 동일한 영향을 미친다. This exerts the same effect as a hardware reset system reset.
    bit 〈1〉ARM7 & 벡터 처리기 재개시. bit <1> When ARM7 & Resume vector processor. 이 비트는 ARM7과 벡터 처리기를 재개시키기 위해 호스트(펜티엄)에서 사용된다. This bit is used by the host (Pentium) to resume the ARM7 and the vector processor. 이 재개시는 MSP가 정상적인 리셋 시퀀스를 전혀 처리하지 않고, 칩상의 셀프-테스트 진단을 전혀 실행하지 않는다는 의미에서, 완전한 PCI 시스템 리셋과 구별된다. The resume is not processing the MSP at all the normal reset sequence, the self-on-chip in the sense that it does not run at all the test diagnostics, it is distinguished from the full PCI system reset. 이 비트가 설정되며, ARM7은 어드레스 0에서 실행을 개시하고, 벡터처리기는 아이들 모드(idle mode)로 들어간다. This bit is set, the ARM7 starts execution at the address 0, and the vector processor is to enter the idle mode (idle mode). 이 때, 어떠한 내부 혹은 외부 I/O 장치도 영향을 받지 않는다. Here, any internal or external I / O device is not affected.
    bit 2호스트(펜티엄)로부터의 MSP 인터럽트 요청. bit 2 MSP interrupt request from the host (Pentium). 이 비트는 MSP를 직접 인터럽트 하기 위해 호스트(펜티엄)에서 사용되고, ARM7을 인터럽트 하기 위해 사용되는 내부 8259 프로그램 가능한 인터럽트 콘트롤러(PIC)의 입력들 중 하나에 연결된다. This bit is used by the host (Pentium) to directly interrupt the MSP, the ARM7 is connected to one of the inputs of the 8259 internal programmable interrupt controller (PIC) is used to interrupt. 이 비트는 호스트(펜티엄)에 의해 설정되고, ARM7에 의해 클리어된다. This bit is set by the host (Pentium), it is cleared by the ARM7.
    bit 〈31〉PCI 호스트 인터럽트 인지. that the bit <31> PCI host interrupt. 이 비트는 MSP가 발생한 PCI 호스트 인터럽트 요청을 인지하기 위해 호스트(펜티엄)에서 사용된다. This bit is used by the host (Pentium) to recognize the PCI host interrupt request MSP occurred. 이 비트는 호스트(펜티엄)에 의해 설정되고, ARM7에 의해 클리어된다. This bit is set by the host (Pentium), it is cleared by the ARM7.
    bit 〈31:4〉예약 bit <31: 4> reservation
    1.6.10 MSP ARM7 제어 레지스터 1.6.10 MSP ARM7 control register
    MSP-1EX는 ARM7 프로세서에 의해 호스트를 인터럽트하는데 사용되는 특수한 레지스터를 가진다. MSP-1EX has a special register that is used to interrupt the host by the ARM7 processor.
    [테이블 5] [Table 5]
    MSP ARM7 제어 레지스터 정의 MSP ARM7 control register definitions
    bit 〈0〉MSP로부터의 PCI 호스트 인터럽트. bit <0> PCI host interrupt from the MSP. 이 비트는 PCI 버스상의 PCI INTA# 핀의 액티브 확인을 통해 호스트를 인터럽트하기 위해 MSP에서 사용된다. This bit is used by the MSP to interrupt the host through the active confirmation of the PCI INTA # pin on the PCI bus. 이 비트는 ARM7에 의해 설정되고, PCI 버스를 통해 호스트(펜티엄)에 의해 클리어된다. This bit is set by the ARM7, it is cleared by the host (Pentium) through the PCI bus.
    bit 〈31:1〉예약 bit <31: 1> reservation
    1.6.11 MSP 내부 μROM 1.6.11 MSP inside μROM
    내부 ROM은 전체 16 KByte로 되어 있고, 다음을 포함한다. The internal ROM may be a full 16 KByte, include the following.
    * μROM 초기화 소프트웨어 * ΜROM initialization software
    * 셀프-테스트 진단 소프트웨어 * Self-test diagnostic software
    * 다양한 시스템 관리 소프트웨어 * A range of system management software
    * 다양한 라이브러리 서브루틴들 * Various library subroutines
    * 명령 및 데이타 상수를 위한 캐쉬 * Cache for instructions and data constants
    어드레스 맵은 다음 테이블 6에 나타난 바와 같다. Address mapping is as shown in the following table 6.
    [테이블 6] [Table 6]
    내부 μROM 어드레스 맵 Internal address map μROM
    1.6.12 MSP 내부 SRAM 1.6.12 MSP internal SRAM
    내부의 SRAM은 MSP의 벡터 제어 스테이터스 레지스터(VCSR)에 의해 정해지는 선택사항에 따라서 캐쉬 또는 로컬 메모리의 기능을 수행한다. Internal SRAM performs the function of a cache or local memory in accordance with the selection determined by the vector control status register (VCSR) of MSP.
    로컬 메모리 모드에 있어서, 어드레스 공간은 위치 〈MCP_BASE〉:040 0000에서 시작하여 내부 SRAM부로 매핑된다. In a local memory mode, the address space is located <MCP_BASE>: starting from 040 parts of 0000 is mapped internal SRAM.
    1.6.13 MSP 내부의 주변장치 1.6.13 MSP internal peripherals
    또한, MSP는 2개의 내부 버스, 즉 64비트, 80MHz로 동작하는 Fbus와 32비트, 40MHz로 동작하는 IObus 상에 존재하는 많은 주변장치를 가진다. In addition, MSP has a number of peripheral devices present on the two internal bus, i.e. 64 bits, 32 bits and Fbus operating at 80MHz, IObus operating at 40MHz.
    Fbus 상의 장치들은 다음과 같다. Devices on Fbus are as follows:
    * 외부의 동기 DRAM을 위한 메모리 콘트롤러 * The memory controller for the synchronous DRAM of the outer
    * 가상 프레임 버퍼 인터페이스 * Virtual frame buffer interface
    * 외부 PCI 버스를 위한 PCI 버스 콘트롤러 * PCI bus controller to the external PCI bus
    * 커스터머 ASIC 인터페이스 * Keoseuteomeo ASIC interface
    * 8 채널 DMA 콘트롤러 * 8-channel DMA controller
    * 메모리 데이타 이동기(호스트 메모리와 SDRAM간의 데이타 전달을 위해) * Memory data mover (for data transfer between host memory and SDRAM)
    * KS0122 코덱 시리얼 라인 * KS0122 Codec serial line
    * KS0119 코덱 시리얼 라인 * KS0119 Codec serial line
    * AD1843 코덱 시리얼 라인 * AD1843 codec serial line
    한편, IObus상의 장치들은 다음과 같다. On the other hand, devices on the IObus are as follows.
    * 8254-호환가능한 프로그래머블 인터벌 타이머 * 8254- compatible programmable interval timer
    * 8259-호환가능한 프로그래머블 인터럽트 콘트롤러(8 레벨) * 8259- compatible programmable interrupt controller (8 level)
    * 16450-호환가능한 UART 시리얼 라인 * 16450- compatible UART serial line
    * MPEG 비트스트림 디코딩 & 엔코딩을 위한 비트스트림 처리기 * MPEG bit stream bit stream processor for decoding and encoding
    이러한 주변장치들의 레지스터 어드레스 맵은 테이블 3에 나타난 바와 같다. Register address map of these peripheral devices are as shown in Table 3.
    [테이블 7] [Table 7]
    내부 주변장치 레지스터 어드레스 맵 Inner peripheral register address map
    1.6.14 IOBUS 주변장치들 1.6.14 The IOBUS peripherals
    1.6.14.1 8254-호환가능한 프로그래머블 인터벌 타이머 1.6.14.1 8254- compatible programmable interval timer
    MSP는 다음과 같은 기능을 갖는 소프트웨어로 사용하기 위해 표준 8254-호환 가능한 프로그래머블 인터벌 타이머를 포함한다. MSP includes a standard 8254- compatible programmable interval timer in order to use the software with the following features:
    *3개의 독립적인 16비트 카운터를 가진다. * Three Independent has a 16-bit counter.
    * 6개의 프로그래머블 카운터 모드를 지원한다. * Supports six programmable counter mode.
    모든 카운터들은 제어 워드 레지스터에 기입하는 것과 초기 카운트에 의해 프로그램된다. All counters are programmed by the initial count as written in the control word register.
    * 제어 워드 레지스터 * Control word register
    이 레지스터는 타이머에 대한 다양한 제어정보를 가진다. This register has a number of control information on the timer. 이 레지스터의 비트 정의는 테이블 8에 나타난 바와 같다. Bit definition of this register are shown in Table 8.
    [테이블 8] [Table 8]
    제어 워드 레지스터 A control word register
    * 스테이터스 레지스터 * Status Register
    이 레지스터는 타이머에 대한 스테이터스 정보를 가진다. This register has the status information for a timer.
    * 카운터 0,1,2 * Counter 0,1,2
    이 3개의 레지스터는 주로 타이머에 대해 카운팅하는 소자이다. The three registers are primarily devices for counting on the timer. 각 카운터는 16비트 폭을 가지며, 프리셋이 가능하고, BCD 모드의 각 이진수에서 다운 카운트한다. Each counter has a 16-bit width, a preset is possible and down-counting each of the BCD binary mode. 이 레지스터의 입력, 게이트 및 출력은 제어 워드 레지스터에 저장된 MODES의 선택에 의해 특징지어진다. Input gate and the output of this register is characterized by the selection of the MODES stored in the control word register. 이 3개의 카운터는 완전히 독립적이다. The three counters are completely independent.
    1.6.14.2 8259-호환가능한 프로그래머블 인터럽트 콘트롤러(PIC) 1.6.14.2 8259- compatible programmable interrupt controller (PIC)
    MSP 프로그래머블 인터럽트 콘트롤러는 모든 x86-기반 퍼스널 컴퓨터에서 매우 일반적인 표준 8259이며, 그 기능은 다음과 같다. MSP programmable interrupt controller is very common standard in all 8259 x86- based personal computer, its functions are as follows:
    * 8개 레벨의 우선순위를 지원한다. * Supports eight levels of priority.
    * 프로그래머블 인터럽트 모드들 * The programmable interrupt mode
    * 개별적인 요청 마스크 능력 * Individual request mask capability
    MSP-1EX에서, 8개 레벨의 인터럽트 입력은 여러가지 I/O 장치에 대해 다음과 같이 할당된다. In MSP-1EX, an interrupt input of the eight levels are assigned as follows for the various I / O devices.
    * 레벨 0 (가장 높음)는 8254 타이머에 할당된다. * Level 0 (the highest) is assigned to the 8254 timer.
    * 레벨 1은 가상 프레임 버퍼(VFB)에 할당된다. * Level 1 is allocated to a virtual frame buffer (VFB).
    * 레벨 2는 DMA 콘트롤러를 포함하는 커스터머 ASIC 로직 블록에 할당된다. - level 2 is assigned to keoseuteomeo ASIC logic block including a DMA controller.
    * 레벨 3은 비트스트림 처리기에 할당된다. * Level 3 is allocated to the bit stream processor.
    * 레벨 4는 PCI 버스 인터페이스에 할당된다. * Level 4 is assigned to the PCI bus interface.
    * 레벨 5는 〈tbd〉에 할당된다. * Level 5 is allocated to <tbd>.
    * 레벨 6은 〈tbd〉에 할당된다. * Level 6 are assigned to the <tbd>.
    * 레벨 7은 16550 UART에 할당된다. * Level 7 is allocated to a 16550 UART.
    인터럽트 콘트롤러의 출력은 ARM7 RISC CPU의 인터럽트 요청 라인(nFIQ)에 결합된다. The output of the interrupt controller is coupled to the interrupt request line (nFIQ) of the ARM7 RISC CPU.
    * 레지스터 설명 * Register Description
    여기에는 다음과 같은 PIC의 동작을 초기화하는데 사용되는 3개의 8비트 레지스터가 있다. There are three 8-bit register that is used to initiate the following operation of the PIC.
    * 초기화 커맨드 워드 1 (ICW1) * Initialize command word 1 (ICW1)
    * 초기화 커맨드 워드 2 (ICW2) : MSP-1EX에는 사용하지 않음. * Initialize command word 2 (ICW2): MSP-1EX is not used.
    * 초기화 커맨드 워드 3 (ICW3) : MSP-1EX에는 사용하지 않음. * Initialize command word 3 (ICW3): MSP-1EX is not used.
    * 초기화 커맨드 워드 4 (ICW4) * Initialize command word 4 (ICW4)
    또한, 다음과 같은 PIC의 동작을 제어하는데 사용되는 3개의 8비트 레지스터가 있다. In addition, there are three 8-bit register that is used to control the following operation of the PIC.
    * 동작 제어 워드 1 (OCW1) * Operation control word 1 (OCW1)
    * 동작 제어 워드 2 (OCW2) * 2 The operation control word (OCW2)
    * 동작 제어 워드 3 (OCW3) * Operation control word 3 (OCW3)
    이들 모든 레지스터들은 어드레스 부분(bit〈0〉)과 데이타 부분 모두에 특수하게 엔코딩된다. All of these registers are specially encoded in both the address portion (bit <0>) and a data portion. 좀 더 상세한 것은 표준 8259 사양을 참조하기로 한다. It is a more detailed reference will be made to the standard 8259 specification.
    [테이블 9] [Table 9]
    8259 레지스터 설명 8259 Register Description
    1.6.14.3 16450-호환가능한 UART 시리얼 라인 1.6.14.3 16450- compatible UART serial line
    MSP는 외부 시리얼 I/O 장치들과의 인터페이스로 사용되는 16450-호환가능한 UART 시리얼 라인을 포함한다. MSP includes 16450- compatible UART serial line is used to interface with the external serial I / O device. 좀 더 상세한 것을 표준 16450 사양을 참조하기로 한다. The more specific will be the reference standard 16450 specification.
    1.6.14.4 비트스트림 처리기 1.6.14.4 bitstream processor
    * 비트스트림 처리기는 비디 비트스트림 데이타를 처리하는 특수화된 로직블록으로서, 그 기능은 다음과 같다. * As the specialized logic blocks for processing the bit stream processor video bitstream data, the function is as follows.
    * 가변길이 허프만 디코딩 및 엔코딩 * A variable-length Huffman decoding and encoding
    * 지그재그 저장 포맷인 비디오 데이타의 언팩킹 및 팩킹 * Zigzag storage format unpacking and packing of video data
    * 다양한 비트-레벨 처리 * Choice of bit-level processing
    비트스트림 처리기는 동시적인 처리 유니트로 동작하고, 벡터 처리기 또는 ARM7에 의해 소프트웨어로 제어된다. A bit stream processor are controlled in software by the vector processor operating in ARM7 or simultaneous processing units, and. 좀 더 상세한 것은 비트스트림 처리기 부분을 참조하기로 한다. It is a more detailed reference will be made to the bit stream processor portion.
    1.6.15 FBUS 주변장치들 1.6.15 The FBUS peripherals
    FBUS 주변장치들은 다음과 같다. FBUS peripherals are as follows:
    * 커스터머 ASIC 로직 인터페이스 * Keoseuteomeo ASIC logic interface
    * 8개 채널 DMA 콘트롤러 * 8-channel DMA controller
    * 삼성의 KS0119에 대한 비디오 엔코더 시리얼 라인 인터페이스 * Video Encoder serial line interface for the Samsung KS0119
    * 아날로그 디바이스사의 AD1843에 대한 오디오 & 텔레콤 시리얼 라인 인터페이스 * Audio & for AD1843 Analog Devices Inc. Telecom Serial Line Interface
    1.6.16.1 ASIC 인터페이스 로직 인터페이스 1.6.16.1 ASIC interface logic interface
    이 절은 외부의 모든 코덱들과 커스터머가 규정한 ASIC 로직 블록둘에 대한 인터페이스 로직을 포함한다. This section includes the interface logic for the two is all codecs and keoseuteomeo external regulations ASIC logic blocks. 이 블록은 모두 하드웨어로 구현되고, 프로그램-비저블(program-visible) 레지스터는 구비하지 않는다. These blocks are all implemented in hardware, program-invisible (program-visible) registers are not provided. 좀 더 상세한 것은 ASIC 인터페이스 부분을 참조하기로 한다. It is a more detailed and with reference to the ASIC to interface portions.
    1.6.16.2 DMA 콘트롤러 1.6.16.2 DMA controller
    MSP-1EX는 다음과 같은 기능을 가진 칩상의 DMA 콘트롤러를 구비한다. MSP-1EX has a DMA controller on the chip with the following features:
    * 8개의 독립적인 DMA 채널 * Eight independent DMA channel
    * 개별적인 DMA 채널에 대한 인에이블/디스에이블 제어 * An enable / disable control of the individual DMA channel
    * 메모리 트랜스퍼 또는 역트랜스퍼에 대한 IO 장치 * A memory transfer or a transfer station of the IO device
    * 어드레스 증가 및 감소 * Increase and decrease address
    좀 더 상세한 것을 ASIC 인터페이스 부분을 참조하기로 한다. The more detailed reference will be made to the ASIC interface portions.
    1.6.15.3 메모리 데이타 이동기 1.6.15.3 memory data mover
    또한, MSP-1EX는 특수한 메모리 데이타 이동기를 구비한다. In addition, MSP-1EX has a special memory data mover. 이 메모리 데이타 이동기는 호스트(펜티엄) 메모리와 MSP 로컬 SDRAM 메모리 사이에서 데이타를 이동시키기 위해 사용된다. The memory data mover is used to move data between the host (Pentium), memory and local MSP SDRAM memory. 메모리 데이타 이동기는 기본적으로 다음과 같은 레지스터들을 포함하는 특수한 DMA 콘트롤러이다. Memory data mover is a special DMA controller which basically includes the following registers.
    * MSP 현재 어드레스 레지스터 : 이 32비트 레지스터는 메모리 데이타 트랜스퍼의 초기에 SDRAM 메모리 어드레스를 정의한다. * MSP current address register: This 32-bit register defines the SDRAM memory address at the beginning of the memory data transfer. 이 레지스터는 ARM7에 의해 기입 또는 독출될 수 있고, 초기값은 ARM7에 의해 로드되어야 한다. This register can be written or read by the ARM7, the initial value should be loaded by the ARM7. 어드레스는 데이타 트랜스퍼 사이즈를 근거로 하여 증가된다. Address is incremented on the basis of the data transfer size.
    * 호스트 현재 어드레스 레지스터 : 이 32비트 레지스터는 메모리 데이타 트랜스퍼의 초기에 호스트 메모리 어드레스를 정의한다. * Host current address register: This 32-bit register defines a host memory address at the beginning of the memory data transfer. 이 레지스터는 ARM7에 의해 기입 또는 독출될 수 있고, 초기값은 ARM7에 의해 로드되어야 한다. This register can be written or read by the ARM7, the initial value should be loaded by the ARM7. 어드레스는 데이타 트랜스퍼 사이즈를 근거로 하여 증가된다. Address is incremented on the basis of the data transfer size.
    * MSP 정지 어드레스 레지스터 : 이 32비트 레지스터는 메모리 데이타 트랜스퍼의 마지막에 SDRAM 메모리 어드레스를 정의한다. * MSP stop address registers: a 32-bit register defines the SDRAM memory the address of the last memory data transfer. 이 레지스터는 ARM7에 의해 기입 또는 독출될 수 있고, MSP 현재 어드레스 레지스터와 비교하여 사용된다. This register can be written or read by the ARM7, MSP is used as compared to the current address register. 만약, 이들이 매칭되면, 메모리 데이타 이동기는 MSP의 End-Of-Process 신호를 발생한다. If, when they match, the memory data mover generates an End-Of-Process signal of MSP.
    * 호스트 정지 어드레스 레지스터 : 이 32비트 레지스터는 메모리 데이타 트랜스퍼의 마지막에 호스트 메모리 어드레스를 정의한다. * Host stop address registers: a 32-bit register defines the address in host memory of the last memory data transfer. 이 레지스터는 ARM7에 의해 기입 또는 독출될 수 있고, 호스트 현재 어드레스 레지스터와 비교하여 사용된다. This register can be written or read by the ARM7, it is used as compared to the host current address register. 만약, 이들이 매칭되면, 메모리 데이타 이동기는 호스트의 End-Of-Process 신호를 발생한다. If, when they match, the memory data mover generates an End-Of-Process signal of the host.
    * 스테이터스 레지스터 : 이 레지스터는 메모리 데이타 이동기와 관련된 스테이터스 정보를 포함한다. * Status Register: This register contains the status information is associated with the memory data mover. 비트 엔코딩은 다음과 같다. Bit encoding is as follows:
    〈0〉 : MSP EOP. <0>: MSP EOP. 이 비트는 메모리 데이타 이동기가 MSP의 정지 어드레스에 도달하였는지 여부를 정한다. This bit is determined whether or not memory data mover reaches the stop address of the MSP. 만약, ARM7이 소오스 현재 어드레스 레지스터를 초기화한다면, ARM7은 0080 0000 (hex)로 리셋된다. If, if this ARM7 initialize the current source address register, ARM7 is reset to 0080 0000 (hex). 이 비트는 ARM7에 의해서 독출만 행해지고, 기입은 행해지지 않아야 한다. Read out is performed only by the bit ARM7, the writing shall not occur.
    〈1〉 : HOST EOP. <1>: HOST EOP. 이 비트는 메모리 데이타 이동기가 호스트의 정지 어드레스에 도달하였는지 여부를 정한다. This bit is a memory data, the mobile device determined whether or not reach the stop address of the host. 만약, ARM7이 호스트 현재 어드레스 레지스터를 초기화한다면, ARM7은 8000 000 (hex)로 리셋된다. If, if this ARM7 initialize the host current address register, ARM7 is reset to 8000 000 (hex). 이 비트는 ARM7에 의해서 독출만 행해지고, 기입은 행해지지 않아야 한다. Read out is performed only by the bit ARM7, the writing shall not occur.
    * 제어 레지스터 : 이 레지스터는 메모리 데이타 이동기와 관련된 정보를 포함한다. * Control Register: This register must contain information associated with the memory data mover. 이 비트 엔코딩은 다음과 같다. This bit encoding is as follows:
    〈0〉 : 방향. <0> direction. 이 비트는 데이타 트랜스퍼의 방향을 결정한다. This bit determines the direction of data transfer. 이 비트가 0 (디폴트)인 경우 데이타 트랜스퍼의 방향은 호스트(펜티엄) 메모리로부터 MSP SDRAM 메모리이고, 이 비트가 1인 경우 데이타 트랜스퍼의 방향은 SDRAM으로부터 호스트 메모리이다. If this bit is a 0 when the (default) direction of data transfer is from the host memory MSP SDRAM (Pentium) Memory, the orientation of the bit is a 1, the data transfer is from the host memory SDRAM. 이 비트는 ARM7에 의해 기입되어야 한다. This bit must be written to by the ARM7.
    〈1〉 : 인터럽트 인에이블. <1>: the interrupt enable. 이 비트는 메모리 데이타 이동기가 데이타 트랜스퍼의 마지막에 ARM7을 인터럽트하는지 여부를 결정한다. This bit determines whether the memory data, the mobile station interrupts the ARM7 the end of the data transfer. 이 비트는 ARM7에 의해 기입되어야 한다. This bit must be written to by the ARM7.
    〈2〉 : DMA 인에이블. <2>: DMA enable. 이 비트는 메모리 데이타 이동기가 동작하도록 인에이블시킨다. This bit thereby enabling the memory data mover to operate. 이 비트는 ARM7에 의해 기입되어야 한다. This bit must be written to by the ARM7.
    〈3〉 : 데이타 트랜스퍼 사이즈. <3>: data transfer size. 이 비트가 0(디폴트)인 경우 각 메모리의 데이타 트랜스퍼 사이즈는 32바이트이고, 1인 경우 64바이트이다. And if the bit is 0 (the default), the data transfer size of the memory is 32 bytes and 64 bytes if the first. 이 비트는 ARM7에 의해 기입되어야 한다. This bit must be written to by the ARM7.
    1.6.15.4 KS0119 비디오 엔코더 시리얼 라인 인터페이스 1.6.15.4 KS0119 video encoder Serial Line Interface
    KS0119 비디오 엔코더 시리얼 라인 인터페이스는 다음을 포함한다. KS0119 video encoder serial line interface includes the following:
    * 코덱으로부터의 독출 데이타를 포함하는 더블-버퍼 수신 데이타 버퍼 레지스터 A buffer receiving data buffer register - * Double containing the read data from the CODEC
    * 코덱으로의 기입 데이타를 포함하는 더블-버퍼 전송 데이타 버퍼 레지스터 * Double including a write data to the codec buffers transmission data buffer register
    * 시리얼 라인에 대한 여러가지 제어 스테이터스 정보를 포함하는 제어 스테이터스 레지스터 * Control status register including a number of control status information for the serial line
    [테이블 10] [Table 10]
    KS0119 비디오 엔코더 시리얼 라인 인터페이스 레지스터들 KS0119 line of video encoder serial interface register
    제어 & 스테이터스 레지스터의 비트 엔코딩은 다음과 같다. Control and encoding bit of the status register are as follows.
    bit 〈0〉 : 수신 데이타가 꽉 찬 상태이다. bit <0>: receiving data that is full. 이 비트는 시리얼 라인이 KS0119 코덱으로부터 8비트의 데이타를 수신한 경우 설정된다. This bit is set when a serial line receives the data of 8 bits from the KS0119 codec. 만약 인터럽트 인에이블(bit 〈7〉)이 설정되면 인터럽트 요청 또한 ARM7로 발생할 것이다. If the interrupt enable (bit <7>) is set to cause the interrupt request also ARM7.
    bit 〈1〉 : 전송 데이타 버퍼가 비어 있는 상태이다. bit <1>: it is a state in which the transmission data buffer is empty. 이 비트는 시리얼 라인이 KS0119로 데이타를 보낼 준비가 되어 있는 경우 설정된다. This bit is set if you are ready to send data to the serial line KS0119. 만약 인터럽트 인에이블(bit 〈7〉)이 설정되면 인터럽트 요청 또한 ARM7로 발생할 것이다. If the interrupt enable (bit <7>) is set to cause the interrupt request also ARM7.
    bit 〈7〉 : 인터럽트 인에이블. bit <7>: the interrupt enable. 이 비트는 ARM7로 인터럽트 요청을 인에이블시키기 위해 사용한다. This bit ARM7 used to enable an interrupt request to.
    1.6.15.5 AD1843 오디오 & 텔레콤 시리얼 라인 인터페이스 1.6.15.5 AD1843 Audio & Telecom Serial Line Interface
    AD1843 시리얼 라인 인터페이스는 다음을 포함한다. AD1843 serial line interface includes the following:
    * 코덱으로부터 독출된 데이타를 포함하는 한 세트의 더블-버퍼링된 레지스터 Double * a set including the data read from the codec-buffered register
    * 코덱으로 기입하고자 하는 데이타를 포함하는 한 세트의 더블-버퍼링된 레지스터 * A set comprising the data to be written to the codec double-buffered register
    * 시리얼 라인에 대한 여러가지 제어 스테이터스 정보를 포함하는 제어 & 스테이터스 레지스터 * Control that includes a variety of control status information to the serial line and the status register
    좀 더 상세한 것은 AD1843 코덱 인터페이스 부분을 참조하기로 한다. It further will be detailed with reference to AD1843 CODEC interface portions.
    1.6.16 명령 성능 1.6.16 Command Performance
    테이블 11은 매 사이클이 12.5ns인 벡터 처리기 사이클 카운트에서의 명령성능을 나타낸다. Table 11 shows the performance of the instruction in the vector processor cycle count in each cycle is 12.5ns. 외부 메모리 버스 폭은 64비트로, 40MHz의 페이지 모드 클록을 가지는 것으로 가정한다. The external memory bus width is assumed to have a page mode, the clock of 64 bits, 40MHz. 모든 명령 성능은 32바이트 벡터 모드로 주어진다. All command performance given by the 32-byte vector mode. 규칙은 다음과 같다. Rules are as follows:
    * 라스(ras) : 외부 메모리가 첫번째 억세스를 하는데 요구되는 사이클의 수. * Ras (ras): external memory, the number of cycles required for the first access. 일반적으로 75ns 또는 6개의 사이클을 필요로 한다. Generally it requires 75ns or six cycles.
    * 레이턴시(latency) : 첫번째 명령을 실행하기 위한 사이클의 수 * Latency (latency): The number of cycles to execute the first command
    * 레이트(rate) : 유사한 연속적인 명령 실행 사이에 존재하는 사이클의 수 레이턴시가 레이트와 동일할 경우, 하나의 숫자만 사용된다. * Rate (rate): If the number of cycles of latency that exists between similar consecutive instruction execution rate to be the same as, and is used only a single number.
    [테이블 11] [Table 11]
    명령 실행 성능 Command performance
    제2장 DSP 코아 Chapter 2 DSP core
    이 장은 하드웨어 및 소프트웨어 디자이너에서 보여주는 DSP 코아의 사양에 대하여 기술한 것이다. This chapter is a description about the specification of the DSP core, shown in hardware and software designers.
    2.1 개요 2.1 Overview
    DSP 코아는 MSP에서 기초적인 요소로서, 모든 연산에 대해서만 책임진다. DSP core is a basic element in the MSP, is only responsible for all operations. 이 DSP 코아는 다음과 같이 구성된다. The DSP core is configured as follows.
    * 40MHz로 동작하며, 실시간 OS, 인터럽트 및 예외 처리, 입출력 장치 관리등과 같은 범용 데이타 처리용으로 사용되는 32비트 ARM7 RISC CPU. - it operates in the 40MHz, real-time OS, the interrupt and exception handling, the 32-bit are used for general-purpose data processes such as input and output devices such as management ARM7 RISC CPU.
    * 80MHz로 동작하며, 이산여현변환, FIR 필터링, 콘벌루션, 비디오 움직임 추정 등과 같은 디지탈 신호 처리용으로 사용되는 벡터 처리기. * Vector processor used for digital signal processing, such as operates at 80MHz, the DCT, FIR filtering, convolution, video motion estimation. 이 벡터 처리기는 ARM7에 의해 초기화되며, ARM7과 동시적으로 동작가능하고, 특수한 제어명령에 의해 ARM7과 동기된다. The vector processor is initiated by the ARM7, operable as ARM7 and simultaneously and are synchronized with the ARM7 by a particular control command.
    * 80MHz로 동작하며, ARM7을 위한 1KB의 명령 캐쉬와 1KB의 데이타 캐쉬, 벡터 처리기를 위한 을 위한 1KB의 명령 캐쉬와 4KB의 데이타 캐쉬, ARM7 및 벡터 처리기를 위한 공유된 16KB의 집적된 명령 데이타 캐쉬 ROM으로 구성되는 캐쉬 서브시스템. - operates in the 80MHz, the 1KB for ARM7 instruction cache and 1KB of the data cache, the 1KB for for the vector processor of the instruction cache and 4KB data caches, a shared 16KB for ARM7 and vector processor integrated command data cache ROM cache subsystem configuration. 벡터 처리기용 데이타 캐쉬는 하드웨어 또는 소프트웨어로 제어될 수 있다. Vector processing appointed data cache can be controlled by hardware or software. 캐쉬 서브시스템은 32비트 데이타 버스를 통해 ARM7과 인터페이스하고, 128비트 데이타 버스를 통해 벡터 처리기와 인터페이스한다. Cache subsystem interfaces with the ARM7 through the 32-bit data bus, and the interface and the vector processor via the 128-bit data bus.
    * 비트스트림 처리기, 인터럽트 콘트롤러, 타이머 및 UART와 같은 여러가지 내부 주변기기들과 인터페이스하는 32비트, 40MHz 입력 & 출력 버스(IOBUS). * Bit stream processor, a 32-bit, 40MHz input and output bus (IOBUS) to interface with interrupt controller, timers, and various internal peripherals such as UART.
    * PCI 버스 콘트롤러, 메모리 콘트롤러, DMA 콘트롤러 및 커스터머 ASIC 로직 블록과 인터페이스하는 64비트, 80MHz 고속 입/출력 버스(FBUS). * PCI bus controller, a memory controller, a DMA controller and keoseuteomeo ASIC logic blocks and the interfaces to the 64-bit, 80MHz high-speed input / output bus (FBUS).
    DSP 코아의 블록도는 도 10에 도시된 바와 같다. Block of DSP core also is shown in Fig.
    2.2 ARM7 RISC CPU 2.2 ARM7 RISC CPU
    2.2.1 개요 2.2.1 Overview
    ARM7 RISC CPU는 범용의 32비트 RISC 프로세서 코아이다. ARM7 RISC CPU is a 32-bit RISC core processor of a general purpose. 이 ARM7 RISC CPU는 표준 코프로세서 인터페이스를 통해 벡터 처리기와 인터페이스하고, 실시간 OS, IO 장치 인터럽트 처리 및 호스트 CPU와의 통신과 같이 대부분의 비연산적인 집중기능들을 처리하는데 사용된다. The ARM7 RISC CPU is used for processing most of the non-operation of focus feature as shown in the vector processor and the interface and communication with the real-time OS, IO interrupt processing apparatus and the host CPU via a standard coprocessor interface.
    ARM7 CPU는 다음과 같은 특징이 있다. ARM7 CPU has the following characteristics:
    * 전력 민감성 응용에 이상적인 매우 정적인 동작. * Very ideal for static operation in power-sensitive applications.
    * 저전력 소비:0.6mA/MHZ @ 3V 제작. * Low power consumption: 0.6mA / MHZ @ 3V production.
    * 고성능:25MIPs @ 40MHz(40MIPs 피크) @ 3V. * High performance: 25MIPs @ 40MHz (40MIPs peak) @ 3V.
    * 크고 작은 동작 모드들. - large and small mode of operation.
    * 실시간 응용을 위한 고속 인터럽트 응답(40MHZ에서 22클록 사이클) * Fast interrupt response (22 clock cycles in the 40MHZ) for real-time application
    * 간단하나 강력한 명령 세트. * Simple but powerful command set.
    * 약 6mm 2 의 매우 컴팩트한 레이아웃. * Very compact layout of about 6mm 2.
    2.2.2. 2.2.2. 레지스터들 Registers
    ARM7은 31개의 범용 레지스터와 6개의 스테이터스 레지스터, 즉 총 37개의 레지스터를 가진다. ARM7 has 31 general-purpose registers and six status register, i.e., a total of 37 registers. 프로그래머에게는 16개의 범용 레지스터와 한 두개의 스테이터스 레지스터가 제공된다. There are 16 general-purpose registers and one or two of the status register is provided to the programmer. 유저, 슈퍼바이저, IRQ, FIQ, Abort 및 Undefined과 같은 모든 프로세서 모드에서, R0와 R15는 직접적으로 억세스가능하다. In the user, supervisor, IRQ, FIQ, Abort, and any processor mode, such as Undefined, R0 and R15 is directly available to access.
    R15를 제외한 모든 레지스터들은 범용으로 사용되며, 데이타 또는 어드레스값을 유지시키는데 사용된다. All registers except R15 are used for general purposes, it is used to maintain the data or address values. R15는 프로그램 카운터(PC)를 유지한다. R15 maintains a program counter (PC). 스테이터스 레지스터인 CPSR-현재 프로그램 스테이터스 레지스터는 ALU 플래그와 현재 모드 비트들을 가지고 있다. The status register of CPSR- current program status register has a flag to the current ALU mode bits.
    R14는 서브루틴 링크 레지스터로 사용되고, 브랜치 및 링크 명령이 수행되었을때 한 벌의 R15 데이타를 수신한다. R14 is used as a subroutine link register, when the branch and link instruction is performed to receive the data R15 of the suit. 다른 경우에는 R14는 범용 레지스터로도 사용될 수 있다. In other cases, R14 may also be used as general purpose registers.
    [테이블 12] [Table 12]
    범용 레지스터들 및 프로그램 카운터 The general-purpose registers and program counter,
    [테이블 13] [Table 13]
    프로그램 스테이터스 레지스터들 The program status register
    2.2.3 예외 2.2.3 Exception
    예외는 명령 처리 중에 발생하는 비정상적인 조건을 말하며, 이는 제어 흐름의 변경을 초래한다. Exception means the abnormal condition that may occur during instruction processing, which results in a change in the control flow. ARM7 예외 동작의 7가지 타입에 대하여 상위 우선순위에서 하위 우선순위로 나열하면 다음과 같다. When listed as low priority at a higher priority for the seven types of exceptions ARM7 operates as follows.
    * 리셋(reset)(최상위 우선순위) * Reset (reset) (highest priority)
    * 취소(abort)(데이타) * Cancel (abort) (data)
    * FIQ * FIQ
    * IRQ * IRQ
    * 취소(abort)(프리페치) * Cancel (abort) (prefetch)
    * 정의되지 않은 명령 트랩, 소프트웨어 인터럽트(최하위 우선순위) * Undefined instruction trap, the software interrupt (lowest priority)
    [테이블 14] [Table 14]
    예외 벡터 테이블 Exception vector table
    2.2.4 명령 세트 2.2.4 Command Set
    모든 ARM7 명령은 조건부로 실행되는데, 이는 ARM7 명령이 CPSR 레지스터에 있는 N, Z, C, V 플래그의 값에 의존하여 실행되거나 실행되지 않을 수 있음을 의미한다. All ARM7 command there is executed conditionally, which means that ARM7 command may not be dependent on the values ​​of N, Z, C, V flag in the CPSR register to run or executed.
    ARM7 명령은 다음과 같이 여러 가지의 카테고리들로 나누어질 수 있다. ARM7 instruction may be divided into several categories as follows:
    * 브랜치 및 링크된 브랜치(B, BL) * Branch and the branch link (B, BL)
    * 데이타 프로세싱(AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN) * Data processing (AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN)
    * PSR 트랜스퍼(MRS, MSR) * PSR transfer (MRS, MSR)
    * 승산 및 승산-누적(MUL, MLA) * Multiply and multiply-accumulate (MUL, MLA)
    * 싱글 데이타 트랜스퍼(LDR, STR) * Single data transfer (LDR, STR)
    * 블록 데이타 트랜스퍼(LDM, STM) * Block data transfer (LDM, STM)
    * 싱글 데이타 스왑(SWP) * Single data swap (SWP)
    * 소프트웨어 인터럽트(SWI) * A software interrupt (SWI)
    * 코프로세서 데이타 동작(CDP)(이는 한 그룹의 명령이다.) * Co-processor data operation (CDP) (this is a command of a group.)
    * 코프로세서 데이타 트랜스퍼(LDC, STC) * Data transfer coprocessor (LDC, STC)
    * 코프로세서 레지스터 트랜스퍼(MRC, MCR) * Co-processor register transfer (MRC, MCR)
    2.3 벡터 처리기 2.3 Vector Processor
    2.3.1 개요 2.3.1 Overview
    벡터 처리기는 최대 성능을 위해 단일 명령 다중 데이타(SIMD) 구조를 이용하는 강력한 디지탈 신호 처리기로서, 가장 뛰어난 성능을 실현시키기 위하여 다중 데이타 요소 상에서 병렬로 동작하는 파이프라인된 RISC 엔진으로 구성된다. Vector processor is of a single-instruction multiple-data (SIMD) pipelined RISC engine operating in parallel on multiple data elements in order to realize the best performance as a powerful digital signal processor using the structure for maximum performance. 다중 데이타 요소는 576비트 벡터로 패킹되고, 이는 다음과 같은 레이트로 계산될 수 있다. Multiple data elements are packed into a 576-bit vector, which can be calculated in the following rates such.
    * 매 12.5ns-사이클 마다 32개의 8/9비트 고정 소수점 산술 연산 또는 * 8/9 32-bit fixed-point arithmetic operations or cycles per 12.5ns-
    * 매 12.5ns-사이클 마다 16개의 16비트 고정 소수점 산술 연산 또는 - 16 16-bit fixed-point arithmetic operation or cycle for every 12.5ns-
    * 매 12.5ns-사이클 마다 8개의 32비트 고정 소수점 또는 부동 소수점 산술 연산 - 8 32-bit fixed-point or floating-point arithmetic operations per cycle 12.5ns-
    2.3.2 실행 파이프라인들 2.3.2 the execution pipeline
    벡터 처리기는 명령을 실행시키기 위해 도 11에 도시된 바와 같이 6단계의 파이프라인을 이용한다. The vector processor uses a pipeline of six stages as shown in Figure 11 in order to execute the command. 대부분의 32비트 스칼라 연산이 사이클당 하나의 명령비율로 파이프라인되는 반면, 대부분의 576비트 벡터 연산은 매 2개의 사이클마다 하나의 명령 비율로 파이프라인된다. While most of the 32-bit scalar operations are pipelined to one instruction per cycle rate of, most of the 576-bit vector operations are pipelined in a command ratio of every two cycles. 모든 로드 &저장(Loads & Stores)는 산술 연산과 겹쳐지고, 별도로 로드 & 저장 하드웨어에 의해 독립적으로 실행된다. All loads and stores (Loads and Stores) is overlapping with the arithmetic operation, is carried out separately by an independent loading and storage hardware.
    설계의 복잡도와 성능을 조화시키기 위해, 벡터 처리기는 자원 및 데이타 종속성 체킹을 위한 하드웨어 인터록을 순서없이 사용하여, 명령들을 발생하거나 실행할 수 있다. In order to harmonize the performance and complexity of design, vector processor using hardware interlocks for resources and data dependency checking out of order, you can generate a command or run. 이 특징은 로드 및 저장으로 인하여 데이타 캐쉬가 분실되는 기간의 성능을 특히 대폭적으로 개선시킨다. This feature is especially thereby greatly improve the performance of the period in which the data cache is lost due to the load and store.
    2.3.3 하드웨어 마이크로구조 2.3.3 Hardware microstructured
    벡터 처리기는 도 12에 설명된 바와 같이 4개의 주 기능 블록으로 구성된다. Vector processor is composed of four main functional blocks, as described in Fig.
    * 명령어 페치 유니트(IFU) * Instruction fetch unit (IFU)
    * 명령어 디코더 & 발행기 Instruction decoder and issuer *
    * 명령어 실행 데이타 경로 * Instruction execution data path
    * 로드 & 저장 유니트(LSU) * Load and store unit (LSU)
    명령어 페치 유니트는 명령어의 프리페칭 및 브랜치와 점프와 같은 명령어들의 서브루틴에 대한 흐름을 제어하는 프로세싱을 담당한다. Instruction fetch unit is in charge of the processing for controlling the flow of the subroutine of instructions, such as pre-fetching and the branch and jump instructions. IFU는 현재 실행 스트림에 대하여 프리페치된 명령어로 된 16개의 엔트리 큐와, 브랜치 타겟 스트림에 대하여 프리페치된 명령어로 된 8개의 엔트리 큐를 가진다. IFU 16 has the entry of the queue and a queue of eight entries in the prefetch instruction for the branch target instruction stream to the pre-fetch for the current execution stream. IFU는 매 사이클마다 명령어 캐쉬로 부터 8개의 명령어를 수신할 수 있다. IFU may receive eight instructions from the instruction cache each cycle.
    명령어 디코더 & 발행기는 모든 명령어에 대한 디코딩 및 스케쥴링을 담당한다. Instruction decoder and issuer is responsible for decoding and scheduling for all commands. 비록 발행기는 실행 자원과 오퍼랜드 데이터 유효성에 따라서 비순차적인 ㄷ부분의 명령어를 스케쥴할 수 있지만, 디코더는 사이클당 하나의 명령어를 처리할 수 있고, 항상 IFU로부터 순차적으로 도착하는 명령어를 처리할 수 있다. Although the issuer, but may schedule an instruction of the non-sequential c portion in accordance with the execution resources and operand data validity, the decoder can process one instruction per cycle, it is possible always to process instructions arriving sequentially from the IFU .
    벡터 처리기는 12.5ns/cycle로 동작하는 여러개의 288비트 데이터 경로(도 13 참조)를 통해 그 성능의 대부분을 실현하며, 이때 다음을 포함한다. Vector processor is achieved most of the performance of multiple 288-bit data path operating as 12.5ns / cycle (see Fig. 13), at this time include the following.
    * 사이클당 2개의 독출 및 2개의 기입을 지원할 수 있는 4개 포트를 가진 레지스터 파일 * A register file with two read ports and 24 to support one write per cycle
    * 8번의 32비트 승산(정수 또는 부동 소수점 포맷), 16번의 16비트 승산 및 32번의 8비트 승산 중 어느 하나의 연산시마다 12.5ns를 생성하는 8개의 32*32 병렬 승산기 - 8 32-bit multiplication times (integer or floating-point format), 8 32 * 32 parallel multipliers to generate any one of the operation at each one of 12.5ns 16 16-bit multiplication and a single 8-bit multiplier 32
    * 8번의 36비트 ALU 연산(정수 또는 부동 소수점 포맷), 16번의 16비트 ALU 연산 또는 32번의 8비트 ALU 연산 중 어느 하나의 연산시마다 12.5ns를 생성하는 8개의 36비트 ALU * Eight 36-bit ALU operations (integer or floating-point format), a single 16-bit ALU 16 operation, or a single 8-bit ALU 32 operation of any one of eight 36-bit operation to generate every 12.5ns ALU
    로드 & 저장 유니트는 각각 도 14에 설명된 바와 같이 288비트 폭을 갖는 별개의 독출 & 기입 데이터 버스들을 통하여 데이터 캐쉬와 인터페이스하기 위해 설계된 것이다. Load & storage unit is designed to interface with the data cache via the separate read and write data bus with a bit width of 288 as described in Figure 14, respectively.
    2.3.4 인터럽트 예외 2.3.4 Interrupt Exception
    벡터 처리기는 다음의 2가지 특수 조건만을 인식한다. Vector processor recognizes only the following two specific conditions:
    * ARM7 프로그램에 의해 실행되는 CPINT(코프로세서 인터럽트) 명령어 * CPINT (co-processor interrupts) to be executed by the program instructions ARM7
    * 벡터 처리기 프로그램에 의해 실행되는 서브루틴 명령어로의 내포형 점프(nested jump) & 승산의 결과인 하드웨어 스택 오버플로우 * In the hardware stack result of containing-type jump (jump nested) & multiplication of a sub-routine instruction that is executed by the vector processor program overflow
    * 벡터 처리기가 이들 2가지 특수 조건을 처리하는 좀 더 상세한 방법에 대해서는 벡터 처리기 구조 문서를 참조할 것. * Vector processor will reference the vector processor architecture document for a more detailed method for handling these two special conditions.
    MCP에서 발생되는 그외 다른 인터럽트 및 예외 조건들은 오로지 ARM7에 의해서 처리된다. Other different interrupt and exception conditions occurring in the MCP are only processed by the ARM7.
    2.4 캐쉬 서브시스템 2.4 cache subsystem
    2.4.1 개요 2.4.1 Overview
    캐쉬 제어 유니트(CCU)는 ARM7 코아, 벡터 실행 유니트(LSU, IFU), 메모리(MCU, PCI, DMA, CODEC) 및 IO 디바이스들(BP, UART, 타이머, 인터럽트 콘트롤러)와 인터페이스한다. A cache control unit (CCU) will interface with the core ARM7, vector execution unit (LSU, IFU), a memory (MCU, PCI, DMA, CODEC) and the IO device (BP, UART, timers, interrupt controller). CCU는 고속(80MHz)의 FBUS와 저속(20MHz)의 IOBUS와 인터페이스한다. CCU is IOBUS interface and the FBUS of the high-speed (80MHz) and low-speed (20MHz). CCU는 사실상 모든 내부 CPU 코아 유니트와 주변 IO 디바이스들 사이의 중앙 데이터 전송 유니트이다. CCU is in fact the central unit data transmission between the CPU core unit all of the internal and peripheral IO devices. MSP 칩에서 CCU의 상세한 설명에 대해서는 MSP-1E 시스템 스펙에 있는 블록도(pp. 1-10)를 참조할 것. In MSP chip for further description of the CCU in the MSP block-1E system specification also will refer to (pp. 1-10).
    매우 고성능의 캐쉬 시스템을 지원하기 위해서, CCU 설계는 모든 독출 및 기입 동작을 지원하는 프로토콜에 근거한 트랜잭션(transaction)을 사용한다. In order to support the very high performance of the cache system, CCU design uses a transaction (transaction), based on a protocol that supports all read and write operations. 메모리를 억세스할 필요가 있는 임의의 유니트는 CCU 제어 유니트로 리퀘스트(request)를 발생시킬 수 있다. Any unit that needs to access the memory, can generate a request (request) to the control unit CCU. 제어 유니트에 있는 아비터(arbiter)는 고정된 우선순위에 근거하여 리퀘스트를 승인하고, 리퀘스터(requestor)로 'transaction_id'를 회신한다. Arbiter in the control unit (arbiter) sends back a 'transaction_id' to accept the request and the requestor (requestor) on the basis of the fixed priority. 리퀘스터는 이 'transaction_id'를 저장하여, 데이터가 실제 도착하였을 때 회신된 데이터를 인식할 수 있도록 한다. By Lee requester stores 'transaction_id', so that the data can not recognize the data returned when the actual arrival. CCU 제어가 하나의 유니트(캐쉬 미스(cashe miss)가 발생한 경우 많은 사이클을 필요로 할 수 있음)로부터 온 리퀘스트를 처리하는 동안, 다른 유니트로부터 새로운 리퀘스트가 다른 'transaction_id'와 함께 다음 사이클에서 승인될 수 있다. CCU control a single unit during the processing of the on request from (a cache miss (cashe miss) the number of that cycle may require, if occurred), with 'transaction_id' new requests different from the other unit to be accepted by the next cycle can. 리퀘스트를 펜딩(pending)시키는 이러한 방법에서는 다른 유니트로부터의 연속적인 리퀘스트를 차단시키는 일이 일어나지 않으므로 고성능을 실현할 수 있다. In such a method of the request pending (pending) because the work of blocking the subsequent request from another unit not occur it is possible to realize a high performance. 현재, CCU는 하나의 사이클에서 하나의 독출 리퀘스트와 하나의 기입 리퀘스트를 동시에 억셉트하여 승인할 수 있다. Currently, CCU may be approved by one billion septeu the read request and one of the write requests at the same time in one cycle.
    메모리에 대한 인터페이스 유니트(FBUS)는 4개 엔트리의 어드레스 큐와 1개 엔트리의 라이트-백(write-back) 래치로 이루어진다. Interface unit to the memory (FBUS) is the address queue entry and one of the four entry light-comprises a back (write-back) latch. 최선의 상태에서, FBUS는 ARM 명령어 캐쉬로부터 오는 하나의 펜딩 리필(독출) 리퀘스트, VEC 명령어 캐쉬로부터 오는 하나의 펜딩 리필(독출) 리퀘스트, VEC 데이터 캐쉬로부터 오는 하나의 기입 리퀘스트와, 더티(dirty) 캐쉬 라인으로 인해 VEC 데이터 캐쉬로부터 오는 하나의 라이트-백 리퀘스트를 지원할 수 있다. In the best conditions, FBUS is a pending refill (read) request, a pending refill (read) and a write request comes from the request, VEC data cache, the dirty (dirty) coming from the VEC instruction cache coming from the ARM instruction cache due to the cache line one light coming from the data cache VEC - can support the back request.
    또한, 캐쉬 메모리 자체는 고성능을 위해 최적화된다. In addition, the cache memory itself is optimized for high performance. MSP 캐쉬 시스템은 칩상(on-chip)의 캐쉬 SRAM과 캐쉬 ROM를 가진다. MSP cache system has a cache, SRAM and ROM cache of a chip (on-chip). 캐쉬 SRAM은 ARM CPU와 벡터 코아 또는 명령어와 데이터 사이의 데이터 스래싱(thrashing)을 방지하기 위하여 4개의 서로 다른 뱅크로 나누어진다. SRAM cache is divided into four different banks in order to prevent data thrashing (thrashing) between ARM CPU core or the vector instructions and data. 캐쉬 ROM은 ARM7과 벡터 코아를 위해서 고속 및 고밀도의 데이터 저장 영역을 제공한다. ROM cache provides a data storage area of ​​the high speed and high density for the ARM7 and the vector core. 비록 태크(tag)가 캐쉬 ROM에 대하여 변경되지는 않지만, 유효 비트를 사용할 수 없게 되어 데이터가 외부 메모리로부터 반송된다. Although the tag (tag) is not, but are not changed with respect to the cache ROM, you can use the valid bit data is transferred from the external memory. 요약하면, 칩상의 캐쉬 메모리는 다음과 같은 블록들을 포함한다. In summary, the cache memory on the chip includes the following blocks.
    * 1KB의 직접 매핑된 명령어 캐쉬와, 1kB의 직접 매핑되며 ARM7에 대한 32비트 데이터 버스 인터페이스를 가지는 라이트-백 데이터 캐쉬 * 1KB and the instruction cache direct mapping, direct mapping of 1kB, and light having a 32-bit data bus interface to the ARM7 - back data cache
    * 1KB의 직접 매핑되며 벡터 명령어 페치 유니트에 대한 256비트 버스 인터페이스를 가지는 명령어 캐쉬 * It is mapped directly to the 1KB instruction having a 256-bit bus interface to the vector instruction fetch unit, a cache
    * 4KB의 직접 매핑되며 벡터 실행 유니트에 대한 256비트 버스 인터페이스를 가지는 라이트-백 데이터 캐쉬. * 4KB direct-mapped and the light having a 256-bit bus interface to the vector execution unit-back data cache. 데이터 캐쉬는 듀얼 포트로 되어 있으며, 80MHz의 매 사이클마다 256비트의 독출 데이터를 제공하고 256비트의 기입 데이터를 지원할 수 있다. Data cache may be a dual-port, it is possible in every cycle of 80MHz provide the read data of 256 bits, to support the write data of 256 bits.
    * 4KB VEC 데이터 캐쉬는 소프트웨어 제어하에 스크래치-패드(scaratch-pad) 연산으로 형성될 수 있다. VEC * 4KB data cache is under software control, the scratch can be formed as a pad (pad-scaratch) operation.
    * ARM7 및 벡터 처리기에서 사용하기 위해 공유 및 집적된 명령어 & 데이터 ROM 캐쉬. * ARM7 and shared for use in the vector processor and an integrated Command and Data ROM cache. ARM7에 대한 인터페이스는 그의 명령어 캐쉬와 동일한 32비트 버스를 통하여, 벡터 처리기에 대한 인터페이스는 그의 명령어 캐쉬와 동일한 256비트를 통해 이루어진다. Interface to the ARM7, through the same 32-bit bus and its instruction cache, an interface to the vector processor is made through the same 256-bit and its instruction cache.
    * 5개의 포트: * Five ports:
    - ARM7을 위한 독출/기입 포트 - read out for the ARM7 / write port
    - 벡터 처리기의 명령어 페치 유니트를 위한 독출 포트 - read ports for instruction fetch unit of a vector processor
    - 벡터 처리기의 로드/저장 유니트를 위한 독출/기입 포트 - a read / write port for the load / store unit of the vector processor
    - 벡터 처리기의 IOBUS를 위한 독출/기입 포트 - a read / write port for the vector processor IOBUS
    - FBUS를 위한 독출/기입 포트 - read out for FBUS / write port
    * ARM7 CPU 명령어 캐쉬를 위한 32*256비트 SRAM(∼1KB) * 32 * 256-bit SRAM for ARM7 CPU instruction cache (~1KB)
    * ARM7 CPU 데이타 캐쉬를 위한 32*256비트 SRAM(∼1KB) * 32 * 256-bit SRAM for ARM7 CPU data cache (~1KB)
    * 벡터 처리기 데이타 캐쉬를 위한 128*256비트 SRAM(∼4KB) * 128 for the vector processor data cache * 256 bits SRAM (~4KB)
    * 벡터 처리기 명령어 캐쉬를 위한 32*256비트 SRAM(∼1KB) * Vector processor 32 x 256 bit SRAM for the instruction cache (~1KB)
    * 데이타 & 명령어 캐쉬를 위한 512*256비트 SRAM(∼16KB) * & 512 * 256 data bit SRAM for the instruction cache (~16KB)
    벡터 데이터 캐쉬의 제어는 하드웨어 제어 또는 소프트웨어 제어에 의해 수행된다. Control of the cache data vector is performed by the control hardware or software control.
    2.4.2 캐쉬 서브시스템 구조 2.4.2 cache subsystem architecture
    도 15는 MSP 캐쉬 시스템의 블록도로서, 다음 블록들:IDC(Instruction Data Cashe), 캐쉬 ROM, CCU_DATA_DP, CCU_ADR_DP, CCU_CTL 및 CCU_SM으로 구성된다. Consists of the IDC (Instruction Data Cashe), cache ROM, CCU_DATA_DP, CCU_ADR_DP, CCU_CTL and CCU_SM: Figure 15 is a block diagram of the cache system MSP, the following blocks. 각각의 서브 블록은 다음에 좀 더 상세히 설명되어 된다. Each of the sub-blocks are described in greater detail below.
    2.4.2.2. 2.4.2.2. IDC IDC
    명령어 및 데이터 캐쉬(IDC; 도 16 참조)는 칩상의 SRAM 메모리로서, 명령어 및 데이터 캐쉬 억세스를 제공하기 위해 사용된다. Instruction and data cache (IDC; see Fig. 16) is an SRAM memory on chip and is used to provide the instruction and data cache access. 이 캐쉬는 하나의 어레이에 대해 4개의 뱅크:ARM_IC(1KB), ARM_DC(1KB), VEC_IC(1KB) 및 VEC_DC(4KB)로 구성된다. The cache is four banks for a single array: consists ARM_IC (1KB), ARM_DC (1KB), VEC_IC (1KB) and VEC_DC (4KB). 임의의 사이클에서, 이 캐쉬는 하나의 독출 리퀘스트와 하나의 기입 리퀘스트를 억셉트한다. In any cycle, the Cache has septeu billion one of the read request and one of the write requests. 태크 RAM은 두 개의 독출 포트를 가진다. Tag RAM has two read ports. 독출 포트 어드레스와 기입 포트 어드레스는 히트 또는 미스 조건에 대하여 내부 캐쉬 태그와 비교된다. A read port address and the write port address is compared to the internal cache tags against the hit or miss conditions. 데이터 RAM은 독출 포트 어드레스에 의해 억세스되는 하나의 독출 포트만을 가진다. Data RAM has a single read port is accessed by the read port address. 또한, 태그 RAM과 데이터 RAM은 서로 다른 세트의 기입 어드레스를 사용하여 기입되어진다. Further, the tag RAM and data RAM shall be written by using the write address in the different sets. 그러므로, 캐쉬 어레이를 억세스하기 위해서는 4세트의 캐쉬 뱅크 선택신호와 3세트의 라인 인덱스를 필요로 한다. Thus, to access the cache array needs a line index of the four sets of the cache bank select signal and a third set of.
    IDC는 다음과 같은 특징을 가진다. IDC has the following characteristics:
    * 라이트-백 규칙으로 직접 매핑된다. It is directly mapped back to the rule - * Lite.
    * 캐쉬 라인 사이즈는 64B이지만 데이터 폭은 32B이며, 이는 MSP 칩의 벡터 데이터 폭 사이즈에 해당한다. * Cache line size is 64B, but is is 32B data width, which corresponds to the vector data width size of the MSP chip.
    * 각 라인은 두 개의 유효 비트를 가지는데, 하나는 하이 벡터를 위한 것이고, 다른 하나는 로우 벡터를 위한 것이다. * Each line is I have a two valid bits, one for the high-vectors, one for the low vectors. 또한, 데이터 캐쉬는 각각의 벡터에 대하여 하나씩 즉, 두 개의 더티 비트를 가진다. In addition, the data cache has the one that is, two dirty bit for each vector.
    * ARM_IC, ARM_DC 및 VEC_IC를 위한 태그 사이즈는 22비트(어드레스 비트 10-비트 31)이고, VEC_DC를 위한 태그 사이즈는 20비트(어드레스 비트 12-비트 31)이다. * ARM_IC tag size for ARM_DC and VEC_IC is 22 bits (address bit 10-bit 31), and the tag size for VEC_DC is 20 bits (address bit 12-bit 31).
    * ARM_IC, ARM_DC 및 VEC_IC를 위한 라인 인덱스 비트는 5비트(어드레스 비트 5-비트 9)이고, VEC_DC를 위한 라인 인덱스 비트는 7비트(어드레스 비트 5-비트 11)이다. * ARM_IC, bit line index for ARM_DC VEC_IC and is 5 bits (address bit 5 bit 9) and the bit line index for VEC_DC is a 7-bit (5-bit address bit 11).
    * VEC_DC(4KB)는 소프트웨어 제어하에 스크래치-패드로 재형성될 수 있다. * VEC_DC (4KB) is scratched under software control may be re-formed into the pad.
    * V_CLEAR 신호는 캐쉬 라인 유효 비트 모두를 한번에 전체적으로 리셋시키는데 사용된다. V_CLEAR * signal is used to reset both the overall cache line valid bit at a time. 차후에 V_CLEAR는 개별적인 뱅크만 선택적으로 리셋시킬 수 있을 것이다. V_CLEAR future will be able to selectively reset to only the individual banks.
    2.4.2.3 데이터 경로 파이프라인 2.4.2.3 datapath pipeline
    도 17 참조. See FIG. 17.
    2.4.2.4 어드레스 경로 파이프라인 2.4.2.4 address path pipeline
    어드레스 처리 파이프라인에 대한 데이터 경로는 도 18에 도시된 바와 같다. Data path for processing the address pipeline is shown in Fig.
    CCU ADDRESS DP CCU ADDRESS DP
    2.4.3 인터페이스 2.4.3 Interface
    2.4.3.1 데이터 타입 2.4.3.1 Data Types
    CCU는 테이블 15에 설명되는 여러개의 리퀘스팅 유니트로부터 오는 서로 다른 데이터 타입을 처리한다. CCU handles different types of data coming from multiple requestors casting unit is described in the table 15.
    [테이블 15] [Table 15]
    서로 다른 데이터 타입을 처리할 경우의 CCU 동작 CCU operation in the case to handle different data types
    2.4.3.2 ARM 인터페이스 2.4.3.2 ARM interface
    ARM7 CPU 코아가 MSP 칩의 주파수의 1/2(40MHz)로 동작하는 반면, CCU는 MSP 칩의 주파수(80MHz)로 동작한다. ARM7 CPU while the core is acting as a 1/2 (40MHz) of the frequency of the MSP chip, CCU is operated at a frequency (80MHz) in the MSP chip. 이들 두 개 클럭간의 동기화는 설계시 중요하다. The synchronization between two clocks is important in the design. 일반적으로, 클럭 발생기 유니트는 CLK1의 상승에지에서 MCLK를 절환한다. In general, the clock generator unit is configured to switch the MCLK rising edge of CLK1. 또한, ARM7에 연결된 전체적인 리셋 신호는 CLK1와 MCLK가 로우인 경우 해제(de-assert)된다. In addition, the overall reset signal connected to the ARM7 is when the CLK1 and MCLK is low release (de-assert). 이러한 방법으로 두 개의 유니트는 적절히 동기화된다. In this way, the two units are properly synchronized.
    ARM7은 명령어와 데이터용으로 하나의 입력 버스(ARM_DATA〈31:0〉)만을 가지지만 MSP 칩은 전용의 명령어 캐쉬(ARM_IC, 1KB)와 데이터 캐쉬(ARM_DC, 1KB)를 구비한다. ARM7 has one input bus (ARM_DATA <31: 0>) for instructions and data must have only MSP chip is provided with a dedicated instruction cache (ARM_IC, 1KB) and a data cache (ARM_DC, 1KB). CCU는 ARM_NOPC를 사용하여 이들 두 종류의 리퀘스트를 구별할 수 있다. CCU can distinguish between these two types of requests using ARM_NOPC.
    성능을 좀 더 향상시키기 위하여, CCU는 메인 캐쉬와 ARM7 코아 사이에 위치하는 마이크로 명령어 캐쉬(UI_CACHE, 32B)와 마이크로 데이타 캐쉬(UD_CACHE, 32B)를 부가한다. In order to further improve the performance, CCU is added to the micro instruction cache (UI_CACHE, 32B) and a micro-data cache (UD_CACHE, 32B) positioned between the main cache and the ARM7 core. 이들 캐쉬는 각각 연속적인 코드와 데이터로 되어 있는 8워드를 가진다. The cache has an 8-word, which is in each successive code and data. 이들 마이크로 캐쉬는 그 자신의 태그(27비트), 태그 비교기와 유효 비트를 가진다. These micro-cache has its own tag (27 bits), a tag comparator and a valid bit. 유효 비트들은 시스템 리셋기간 동안 모두 클리어된다. All valid bits are cleared during system reset period.
    ARM7 마이크로 캐쉬들은 실제의 캐쉬보다는 오히려 프리-페치 버퍼의 역할을 수행한다. ARM7 micro caches are, rather than the actual pre-cache - plays the role of fetch buffer. ARM7 독출 기간동안, 어드레스(ARM_A〈31:0〉)는 항상 태그와 비교된다. For ARM7 read period, an address (ARM_A <31: 0>) is always compared with the tag. 히트는 ARM_DATA〈31:0〉를 통해 명령어 또는 데이터를 리드 백(read back)한다. Heat ARM_DATA: The <31: 0> the read-back (read back) the command or data through. 이후 하나의 마이크로 캐쉬는 어드레스, 데이터 타입 및 다른 제어정보와 함께 리퀘스트를 CCU로 보낸다. Since a micro-cache sends a request with the address, data type and other control information to the CCU. CCU의 아비터 로직은 모든 유니트로부터 온 리퀘스가 독출 리퀘스를 만드는 것을 승인한다. The arbiter logic in the CCU will authorize the on requester from any unit to make the read requester. 현재, 승인을 얻음에 있어서 ARM7은 다른 블록들에 대하여 최상위 우선순위를 가진다. At present, according to obtain approval ARM7 has the highest priority with respect to other blocks. 그 이유는 ARM7의 마이크로 캐쉬가 미스를 가지지 않는 한, ARM7이 리퀘스트를 만드는 경우가 드물기 때문이다. This is because the ARM7 micro cache of rare, sometimes making a, ARM7 this request does not have to miss. 그러나, CCU는 여러개의 사이클 리퀘스트 또는 어드레스 큐 충만 조건을 제공하기 위해 내부의 홀드 사이클을 가질 수 있다. However, CCU may have a hold cycle inside to provide a filled condition a number of cycles the request or the address queue. 이 기간동안, 외부의 리퀘스트는 전혀 승인되지 않는다. During this period, the external request is not approved at all.
    ARM7로부터의 기입은 어드레스가 UD_TAG을 히트할 경우 항상 UD_CACHE를 무효화시킨다. Writing to a ARM7 is thereby always invalidates UD_CACHE if the address hits the UD_TAG. 라이트-쓰루(write-through) 또는 라이트-백(write-back) 캐쉬로서 UD_CACHE를 설계함에 있어 어떤 시도도 행해지지 않았다. Light-through (write-through) or a write-back (write-back) in designing the UD_CACHE as a cache was not made any attempt. UD_CACHE 기입 히트시 무효화시킴에 의해, ARM_CD와 UD_CACHE 사이의 데이터를 일치시킬 수 있다. By UD_CACHE write Sikkim heat when invalidated, it is possible to match data between the ARM_CD UD_CACHE.
    CCU는 ARM_IC 또는 ARM_DC로 독출 또는 기입 리퀘스트를 보내는 동안 arm_nwait를 제어한다. CCU controls the arm_nwait sending a read or write request to ARM_IC or ARM_DC. 일반적으로, CCU는 기입 기간동안에는 arm_nwait을 홀드시키지 않는다. Generally, CCU does not hold the arm_nwait during the writing period. 일단 기입 리퀘스트가 ccu_write_hold2를 보지 않고 승인되면, ARM7은 그저 다음 사이클에서 ARM_DATA〈31:0〉에 있는 데이터를 가지고 온다. Once the written request is granted without seeing the ccu_write_hold2, ARM7 is just ARM_DATA <31: 0> in the next cycle brings the data on. CCU는 데이터를 저장하기 위하여 내부의 기입 버퍼를 가진다. CCU has an internal write buffer to store the data. ARM7은 명령어 행을 계속 할 수 있다. ARM7 can continue the command line. 그러나, CCU는 비록 데이터가 메인 캐쉬에 있더라도 항상 하나의 사이클에 대해 arm_nwait을 홀드시킨다. However, CCU, although the data is in the main cache and always holds the arm_nwait for one cycle. 만약 독출 리퀘스트가 메인 캐쉬를 미스한 경우, 데이터가 외부의 메인 메모리로부터 반송될 때까지 더 많은 사이클이 홀드된다. If the read if the request misses the main cache, and is held more cycles until the data is transferred from the external main memory. 도 19에 도시된 ARM_CCU 인터페이스 상태 머쉰은 CCU가 arm_nwait을 제어하는 조건을 설명한다. ARM_CCU interface state machine shown in Figure 19 illustrates the condition that controls the CCU arm_nwait.
    도 19에 있어서: In Figure 19:
    START:리퀘스트가 없거나, 독출 데이터가 반송되거나, 홀드없이 기입 리퀘스트가 발생된 경우 상태 머쉰을 위한 스타트 상태 START: If there are no requests, the read data is returned, or if the write request occurred without the hold-start state for the state machine
    HOLD:CCU는 독출 또는 기입을 위한 ARM7 리퀘스트를 승인하고, 홀드 신호로 승인을 취소한다. HOLD: CCU accepts the ARM7 a request for reading or writing, and withdraw the approval to the hold signal.
    TAG:CCU는 독출 어드레스로 태그를 체킹한다. TAG: CCU is checking the tags to the read address.
    MISS:독출 어드레스는 하나의 미스를 가지고, ccu는 리필 리퀘스트를 외부의 dram으로 보낸다. MISS: read address has a single miss, ccu sends a refill request to the external dram.
    DATA:독출 데이터가 반송되고, CCU는 반송된 데이터를 마이크로 데이터 캐쉬로 보낸다. DATA: The read data is returned, CCU sends the returned data to the micro-cache data.
    2.4.3.3. 2.4.3.3. FBUS 인터페이스 FBUS interface
    CCU_FBUS 인터페이스 상태 머쉰(F_SM)는 도 20에 도시된 바와 같다. CCU_FBUS interface state machine (F_SM) are as shown in Fig. 도 20에 있어서: In Figure 20:
    IDLE:아이들 상태 IDLE: idle state
    REQ:독출 또는 기입 리퀘스트를 FBUS 아비터로 보낸다. REQ: sends a read or write request to the FBUS arbiter.
    GRT1:승인 사이즈가 8B보다 크다. GRT1: approved sizes larger than 8B.
    GRT2:승인 사이즈가 16B보다 크다. GRT2: approved size greater than 16B.
    GRT3:승인 사이즈가 24B보다 크다. GRT3: approved size greater than 24B.
    GRT4:맨 마지막 사이클에 대한 구동 데이타 GRT4: drive for the last cycle data
    데이터 수신 상태 머쉰(D_SM)은 도 21에 도시된 바와 같다. Data receive state machine (D_SM) are as shown in Fig. 도 21에 있어서: In Figure 21:
    IDLE:아이들 상태 IDLE: idle state
    ONE:Fdata〈63:0〉으로부터 첫번째 8B 데이터를 수신한다. ONE: receives data from the first 8B: Fdata <0 63>.
    TWO:Fdata〈63:0〉으로부터 두번째 8B 데이터를 수신한다. TWO: Fdata <63: 0> from receives the second data 8B.
    THREE:Fdata〈63:0〉으로부터 세번째 8B 데이터를 수신한다. THREE: Fdata: receives a third data 8B <63: 0> from.
    FOUR:Fdata〈63:0〉으로부터 네번째 8B 데이터를 수신한다. FOUR: Fdata: receives a fourth data 8B <63: 0> from.
    REFILL:데이터를 리퀘스터로 반송하기 전에 IDC를 리필한다. REFILL: to refill the IDC before transporting the data to the requestor.
    RDY:데이터를 리퀘스터를 반송할 준비를 한다. RDY: data must be ready to transport the requestor.
    2.4.4 독출 및 기입 동작 2.4.4 read and write operations
    독출 및 기입 상태 머시인은 도 22에 도시된 바와 같다. The read and the write state grooving are as shown in Fig.
    2.4.4.1 독출 동작 2.4.4.1 read operation
    MSP에서 IDC(Instruction and Data Cache)는 3단의 파이프라인 사이클:리퀘스트 사이클, 태그 사이클 및 데이터 사이클로 동작한다. In MSP (Instruction and Data Cache) IDC is of the three-stage pipeline cycle: Request cycle, the operation cycle and tag data cycles. 캐쉬 히트 상황에서, IDC는 매 사이클에서 명령어 또는 데이터를 반송할 수 있다. In the cache hit situation, IDC may convey the commands or data in each cycle.
    캐쉬 콘트롤러 유니트(CCU)는 캐쉬 SRAM 억세스를 위해 ARM7, 벡터 처리기 유니트, FBUS와 IOBUS 사이의 중재를 담당한다. The cache controller unit (CCU) is responsible for the arbitration between the ARM7, vector processor unit, and FBUS IOBUS to the SRAM cache access. CCU는 이들 4개의 마스터로부터의 버스 리퀘스트를 감시하여 특정의 ID 번호를 가진 승자에게 버스를 승인한다. CCU is approved for the bus to the winner with a specific ID number of the monitor bus requests from these four masters. CCU는 또한 캐쉬를 억세스하고 태그를 비교하기 위해 캐쉬 어드레스 버스와 독출/기입 제어신호를 발생한다. CCU also accesses the cache generates a cache address bus and the read / write control signal to compare the tag.
    캐쉬 히트가 있는 경우, 중재에서 이긴 버스 마스터는 독출/기입 동작을 위해 캐쉬를 억세스할 수 있다. If there is a cache hit, it won arbitration in bus master can access the cache for reading / writing operation. 캐쉬 미스가 있는 경우, CCU는 메인 메모리로부터 반송되는 분실 데이터를 기다리지 않고 리퀘스트를 발생시킨 다음 버스 마스터를 도와준다. If there is a cache miss, CCU assists the next bus master that generated the request without waiting for the missing data to be conveyed from main memory. 그래서, 캐쉬 미스를 갖는 버스 마스터는 ID 번호를 유지해야만 한다. Thus, having a cache miss occurs, the bus master must keep the ID number. 이후, 리퀘스트된 데이터가 캐쉬에 있으면, CCU는 GRANT 신호를 동일한 ID 번호를 가진 데이터를 분실한 버스 마스터로 보낸다. Then, the requested data is in cache, the CCU sends a bus master, a loss of data with the same ID number, a GRANT signal. 이 버스 마스터는 데이터를 억셉트하거나 무시한다. The bus master septeu billion or ignore the data.
    캐쉬 미스가 발생한 경우, 메인 메모리로부터 데이터를 받기 위하여 라인 페치가 수행된다. If a cache miss occurs, the line fetch is performed to receive the data from main memory. 라인 사이즈는 64바이트로 정의되고, 따라서 CCU는 메인 메모리로부터 캐쉬로 데이터를 공급하기 위하여 8번의 연속적인 메모리 억세스(매회 64비트)를 실행한다. Line size is defined as 64 bytes, so CCU 8 performs a consecutive memory access (64 bits each time) to supply the data to the cache from main memory.
    * 리퀘스트 사이클: * Request cycle:
    CCU는 CLK1에서 여러개의 유니트(ARM, IFU, LSU, IO)로부터 독출 리퀘스트를 억셉트한다. CCU is septeu billion a read request from a number of units (ARM, IFU, LSU, IO) at CLK1. 리퀘스터는 CLK1의 초기에 리퀘스트 신호(lsu_req)와 독출/기입 신호(lsu_rw)를 표시한다. Li is the initial requestor of the request signal CLK1 display (lsu_req) and the read / write signal (lsu_rw). CLK1의 끝에서 CCU는 ccu_grant_id[9:0]를 구동함으로써, 이들 독출 리퀘스트중 하나를 승인한다. At the end of the CLK1 CCU is ccu_grant_id: by driving the [90] to accept the one of which the read request. ccu_grant_id[9:6]가 리퀘스터의 unit_id와 정합되면, 리퀘스트가 승인된다. ccu_grant_id [9: 6] When the unit_id the matching of the requester, the request is granted. 리퀘스터는 ccu_grant_id[5:0]가 리퀘스트와 관련된 transaction_id이기 때문에 ccu_grant_id[5:0]를 래치해야 한다. Since the transaction_id related request ccu_grant_id: requester ccu_grant_id [0 5]: should the latch [50].
    리퀘스트가 승인되면, 리퀘스터는 어드레스(lsu_adr[31:0])와 CLK2에서 캐쉬 오프 동작(lsu_ccu_off) 및 데이터 타입(lsu_vec_type[1:0], lsu_data_type[2:0])과 같은 다른 제어 정보를 CCU로 보낸다. Other control information, such as the (:: [0 2] lsu_vec_type [1 0], lsu_data_type): If the request is approved, the requester address (lsu_adr [31 0]) and the cache OFF operation in CLK2 (lsu_ccu_off) and data type send to a CCU.
    CLK2의 끝에서 ccu_rd_hold_2가 표시되지 않으면, 리퀘스트는 완전히 CCU로 넘어가고 리퀘스트된 데이터는 얼마 후 반송된다. If ccu_rd_hold_2 does not appear at the end of CLK2, the request is fully conveyed the request goes to the CCU data after some time. 그러나, ccu_rd_hold_2가 표시되면, CLK1에서 승인된 리퀘스트는 취소하면서 리퀘스터는 계속 어드레스와 제어정보를 보낸다. However, when ccu_rd_hold_2 is displayed, the request is accepted by the CLK1 requester still sends the address and control information with the cancellation. 이전의 모든 grant_id 정보가 여전히 유효하기 때문에 다음 사이클에서는 동일한 독출 리퀘스트를 다시 발생시킬 필요가 없다. Because all of the information before grant_id still valid for the next cycle, it is not necessary to generate the same read request again. ccu_rd_hold_2는 CLK2에서 CCU에 의해 해제될 때까지 CLK1에서 일정하게 유지된다. ccu_rd_hold_2 is kept constant at CLK1 until it is canceled by the CCU from CLK2.
    ccu_rd_hold_2는 타이밍 임계신호로서, 리퀘스터로 CCU가 현재 사이클에서 다른 일을 처리하느라고 바빠서, 승인된 리퀘스트는 아직 처리되지 않았음을 알려주는데 사용된다. ccu_rd_hold_2 is busy as a critical signal timing, haneurago CCU handles the other day in the current cycle to the requester, the approval request is used to inform that it has not yet been processed.
    * 태그 사이클 * Tag Cycle
    리퀘스트가 승인되고, 나중에 리퀘스트 사이클에서 취소되지 않은 경우, 리퀘스트는 캐쉬 억세스의 태그 비교 단계로 들어간다. If the request is approved, the future is not clear from the request cycle, the request enters the stage of the tag comparison cache access. CCU는 태그 독출을 위한 라인을 선택하기 위하여 어드레스(lsu_adr[11:5])와 뱅크 선택신호(리퀘스터)를 사용한다. CCU to the address in order to select a line for the tag read: uses (lsu_adr [11 5]) and the bank selection signal (requestor). 태그 히트 신호(ccu_lsu_hit_2)는 CLK2의 끝에서 알려진다. Tag hit signal (ccu_lsu_hit_2) is known at the end of CLK2. 데이터는 히트 상황을 위해 다음 사이클에서 반송된다. Data is transported in the next cycle for heat conditions. 독출 포트 태그가 출력되어 CLK에 의해 래치된다. Tag is read port output is latched by the CLK.
    또한, 어드레스 큐 스테이터스는 이 사이클에서 평가된다. In addition, the address queue status is evaluated from the cycle. 태그 미스와 'almost_full_address_queue'는 'ccu_rd_hold_2' 신호를 표시한다. Tag miss and 'almost_full_address_queue' denotes a 'ccu_rd_hold_2' signal. CCU 상태 머쉰은 어떤 새로운 독출 리퀘스트도 처리하지 않지만, 중지된 태그 비교를 재시도한다. CCU state machine does not process any new read requests, and retry the Stop tag comparison.
    각각의 캐쉬 라인(64B)는 두 개의 벡터를 포함하기 때문에, 태그 히트를 얻기 위하여 억세스된 벡터의 유효 비트가 유효해야 할 것이다. Each cache line (64B) will, because they contain two vectors, should the valid bit of the valid access vector to obtain a tag hit. 두배의 벡터(64B) 데이터 독출을 위해서는, 태크 히트를 얻기 위해 두 개의 유효 비트가 유효해야만 한다. To the vector (64B) of the data read out twice, and the two significant bits must be effective to obtain a tag hit. cc_off 동작은 항상 태그 미스를 유발시키고, 리퀘스트는 어드레스 큐에 게시된다. cc_off operation and always causes a tag miss, the request is posted to the address queue.
    * 데이터 사이클 * Data Cycle
    이는 CCU가 데이터를 리퀘스터로 반송하는 사이클이다. This is the cycle in which the CCU conveying the data to the requestor. 데이터는 CLK1에서 구동되는 하위 16B와 CLK2에서 구동되는 상위 16B와 함께 ccu-dout[127:0] 상에 올려진다. Data ccu-dout with upper 16B is driven in the sub-16B and CLK2 running at CLK1: is mounted on a [127: 0]. 64B 데이터 리퀘스트인 경우, 전송을 종결시키기 위하여 하나의 부가적인 사이클이 사용된다. 64B when the data request, the one additional cycles are used to terminate the transmission.
    CCU는 데이터가 다음 CLK1에서 반송될 것이라는 것을 리퀘스터로 알려주기 위하여 항상 ccu_data_id[9:0]을 CLK2의 초기의 1/2 사이클에서 구동한다. CCU is always ccu_data_id to inform that the data is to be transported in the next CLK1 to the requestor: a [90] is driven at the beginning of the half cycle of the CLK2. 리퀘스터는 적절한 반송 데이터를 위하여 항상 ccu_data_id[9:0]을 비교한다. Requester always ccu_data_id for proper data transfer: compares the [90]. 또한, 반송 데이터의 지시자로서 태그 히트가 사용된다. In addition, the tag hit is used as an indicator of the transport data.
    만약 태그 사이클에서 태그 미스가 있고, 어드레스 큐가 충만해 있지 않으면, CCU는 CLK1에서 분실된 어드레스, id 정보 및 다른 제어정보를 4개 엔트리 어드레스 큐로 게시하면서 캐쉬 라인 페치를 시작한다. If the tags in a tag-miss cycle and, if the address is not a queue to fill, CCU is published as an address, id information and other control information is lost in the CLK1 4 dogs queue entry address to start the cache line fetch. 현재, 각각의 어드레스 큐는 대략 69비트의 정보를 포함한다. Currently, each of the address queue contains information of approximately 69 bits. CLK2에서 메모리 어드레스 래치가 로드되어, FBUS 리퀘스트가 다음 CLK1에서 발생된다. A memory address latch is loaded from CLK2, a FBUS request is generated at the next CLK1.
    2.4.4.2 기입 동작 2.4.4.2 write operation
    IDC에서 기입 동작은 3단의 파이프라인 사이클:리퀘스트 사이클, 태그 사이클 및 데이터 기입 사이클로 동작한다. IDC writing operation in a pipeline cycle of the three-stage: operates the request cycle, and the cycle cycle tag data write. 기입 어드레스 히트 상황에서, IDC는 매 사이클에서 캐쉬 데이터 어레이로 데이터를 기입할 수 있다. In the write address hit situation, IDC may write data to the cache data array in each cycle.
    * 리퀘스트 사이클: * Request cycle:
    CCU는 CLK1에서 여러개의 유니트(ARM, LSU, IO)로부터 기입 리퀘스트를 억셉트한다. CCU is septeu million write requests from a number of units (ARM, LSU, IO) at CLK1. 리퀘스터는 CLK1의 초기에 리퀘스트 신호(lsu_req), 독출/기입 신호(lsu_rw)와 벡터 타입(lsu_vec_type[1:0])를 표시한다. Displays: (lsu_vec_type [0 1]) at the beginning of the re-request signal CLK1 requestor (lsu_req), the read / write signal (lsu_rw) and vector types. CLK1의 끝에서 CCU는 이들 기입 리퀘스트중 하나를 승인한다. At the end of the CLK1 CCU is approved for one of these written request. 서로 다른 유니트에 대한 기입 승인은 승인 신호(ccu_lsu_wr_grant)를 직접 리퀘스팅 유니트로 표시하는 것에 의해 실현된다. Written approval of the different units is realized by the approval signal (ccu_lsu_wr_grant) directly to the requester casting unit. 반송되는 데이터가 전혀 없으므로 리퀘스트 유니트가 CCU로부터 transaction_id를 수신할 필요는 없다. Data being conveyed is not at all it is not necessary to receive the request unit transaction_id from the CCU. CLK2에서, 리퀘스터는 어드레스(lsu_adr[31:0]), cc_off 신호(lsu_ccu_off) 및 데이터 타입(lsu_data_type[2:0])을 공급해야 한다. It must be supplied: ([0 2] lsu_data_type): at CLK2, requester address (lsu_adr [31 0]), cc_off signal (lsu_ccu_off), and data type.
    독출 경우에 마찬가지로, 비록 리퀘스트가 승인은 되었지만 현재 사이클에서 처리되지 않았음을 리퀘스트로 알려주기 위해서 CCU는 CLK2의 끝에서 ccu_wr_hold_2를 표시한다. Similarly, if read, even though the request is approved, but to inform a request has not been processed in the current cycle CCU is displayed at the end of the ccu_wr_hold_2 CLK2. 리퀘스터는 ccu_wr_hold_2가 해제될 때까지 어드레스, cc_off 신호와 데이터 타입 정보를 계속 구동한다. Requester continues to drive the address, cc_off signal and the data type information until ccu_wr_hold_2 is released. 이후, 다음 사이클에서 리퀘스터는 기입 데이터를 ccu_dout[127:0]로 공급한다. Then, the re-written data in the next cycle requester ccu_dout [127: 0] is supplied to the.
    * 태그 사이클 * Tag Cycle
    리퀘스트가 승인되고, 나중에 리퀘스트 사이클에서 취소되지 않은 경우, 리퀘스트는 캐쉬 억세스의 태그 비교 단계로 들어간다. If the request is approved, the future is not clear from the request cycle, the request enters the stage of the tag comparison cache access. 이 사이클은 기입 포트 어드레스 태그를 비교한다. This cycle compares the write port address tag. CCU는 캐쉬용 라인을 선택하기 위하여 어드레스(lsu_adr[11:5])와 뱅크 선택신호(리퀘스터)를 사용한다. CCU includes an address to select a cache line for: uses (lsu_adr [11 5]) and the bank selection signal (requestor). 태그 히트 신호(ccu_lsu_hit_2)는 CLK2의 끝에서 알려진다. Tag hit signal (ccu_lsu_hit_2) is known at the end of CLK2. cc_off 기입은 항상 태그 미스를 유발시키고, 기입 데이터는 외부의 기입을 위해 FBUS상에 올려진다. cc_off writing is and always causes a tag miss, the write data is placed on the FBUS for writing from outside.
    리퀘스터는 CLK1에서 하위 16B와 CLK2에서 상위 16B와 같이 ccu_din[143:0]로 데이터를 구동하는 것을 시작한다. Requester, such as the top 16B and 16B in the sub-emitter CLK2 from CLK1 ccu_din [143: 0] is started to drive the data to. 64B 데이터 전송인 경우, 데이터를 구동하기 위하여 리퀘스터는 하나의 부가적인 사이클을 취한다. 64B when the data transfer, the requestor takes one additional cycle to drive the data. CCU는 이 데이터를 홀드하기 위하여 내부의 기입 데이터 래치를 가진다. CCU has a write data latch on the inside in order to hold the data. 이 기입이 캐쉬를 히트시키거나(실제 데이터를 캐쉬에 기입하기 위하여 하나 또는 두 개의 사이클이 사용됨), 캐쉬를 미스시킬 경우(데이타를 기입하기 위해 매우 적은 사이클이 사용됨), 리퀘스터는 기입이 완료된 것으로 간주한다. To heat the writing is cached on (one or two cycles is used to write the real data in the cache), or to miss the cache (which is used very little cycle to write the data), the requester writing is completed emitter considered.
    * 데이터 기입 사이클 * A data write cycle
    이 사이클은 캐쉬 히트 상황을 위해 CCU가 실제 데이터를 캐쉬에 기입하는 사이클이다. This cycle is a cycle in which the CCU writes the real data in the cache for cache hit situation. 태그 사이클에서 태그 미스가 있는 경우, CCI는 이를 데이터 타입에 따라 서로 다르게 처리한다. If the tag with a tag miss cycle, CCI and processes them differently, depending on the data type.
    데이터 타입이 32B이고 라인이 클린(clean)인 경우(두개의 벡터도 클린임), CCU는 그저 현재의 라인을 새로운 타그와 새로운 데이터를 오버라이트한다. Data type is 32B and the line is clean when the (clean) (two vector also clean Im), CCU will simply overwrite the new data and the new Tag of the current line. 또한, 억세스중인 벡터를 유효 및 더티한 것으로 표시하는 반면, 동일한 라인의 다른 벡터는 무효한 것으로 둔다. Also, while shown as being valid and dirty the access vector and the other vector is placed on the same line as invalid.
    데이터 타입이 32B보다 적은 경우, 이 사이클은 부분적으로 데이터 기입이 행해진다. If the data type is less than 32B, the cycle is a part, a data write is performed. 이 부분 데이터는 일시적인 레지스터에 저장된다. The parts data is stored in a temporary register. CCU는 분실된 반 라인(32B)를 메모리로부터 페치한 후 로드하여 캐쉬로 반송한다. CCU is loaded and then fetch the missing half-line (32B) from the memory and returns to the cache. 이후, 부분 데이터는 적절한 바이트 인에이블 신호와 함께 캐쉬 라인으로 기입된다. Then, the partial data is written to the cache line with the appropriate byte enable signal.
    더티 캐쉬 라인을 갖는 모든 기입 미스에 대하여, CCU는 먼저 더티 라인을 복사한다. For all write miss with a dirty cache line, CCU is first copied to a dirty line. 더티 데이터가 아직 사용되지 않았기 때문에, CCU는 승인 로직으로 홀드를 표시하여 새로운 독출 또는 기입 리퀘스트가 승인되지 않도록 한다. Since the dirty data that has not yet been used, CCU displays hold the authorization logic to prevent the new read or write request approved. 이후, 더티 캐쉬 라인 데이터를 페치하기 위하여 더티 라인을 사용하여 내부의 독출이 시작된다. Then, using a dirty line in order to fetch a dirty cache line of data is read out of the interior begins. 결국, 라이트 백 어드레스 및 데이터는 메모리로 공급된다. After all, the write back address and data are supplied to the memory.
    2.4.5 프로그래밍 모델 2.4.5 Programming Model
    캐쉬 서브시스템은 모두 로드 & 저장 명령어를 사용한 하드웨어로 제어되므로, 소프트웨어-비저블(software-visible) 레지스터를 필요로 하지 않는다. Cache subsystem can be controlled by both hardware with the load and store instructions, software does not require an invisible (software-visible) register.
    2.4.5 IDC 및 ROM 어드레스 포맷은 도 23에 도시된 바와 같다. 2.4.5 IDC and ROM address format is as shown in Fig.
    제3장 IOBUS 설명 Chapter 3 describes IOBUS
    이 장은 하드웨어 디자이너에서 보여주는 IOBUS의 사양에 대하여 기술한 것이다. This chapter is a description about the specification of IOBUS showing on the hardware designer.
    3.1 개요 3.1 Overview
    IOBUS는 시스템에서 사용되는 저속의 표준적인 주변 장치들을 위해 설계된 것이다. IOBUS is designed for standard low-speed peripherals to be used in the system. 이 버스는 MSP 캐쉬 제어 유니트(CCU), 비트스트림 처리기(BSP)와 타이머/인터럽트 콘트롤러와 UART와 같은 모든 다른 IO 주변 장치들간의 메인 인터페이스 역할을 수행한다. The bus carries the main interface to the IO between all other peripheral devices, such as a MSP cache control unit (CCU), a bit stream processor (BSP) and a timer / interrupt controller and a UART. 버스의 포맷은 인텔사의 IO 버스와 매우 유사하다. The format of the bus is very similar to the Intel IO bus. 버스 아비터 제어 로직은 리퀘스트에 대해 버스를 항상 감시하고, 라운드-로빈(round-robin) 체계를 사용하여 적절한 리퀘스트-승인을 발생시킨다. The bus arbiter control logic always monitors the bus for the request and round-generates the approval-appropriate requests using the robin (round-robin) system. 잠재적인 버스 마스터는 항상 버스-리퀘스트를 표시하고, 버스를 점유하기 전에 버스-승인이 표시되기를 기다린다. Potential bus master is always the bus - Display the request, and before occupying the bus, bus waits for approval is displayed. 버스 마스터는 항상 프로토콜에 따른 기간 동안 어드레스와 제어 라인을 구동한다. The bus master will always drive the address and control lines for the duration of the protocol.
    IOBUS는 전체적으로 40MHz로 동작하는 동기 버스이다. IOBUS is a synchronous bus that operates as a whole 40MHz. MSP IOBUS상에서 모든 승인은 리퀘스트가 액티브로 샘플링된 후 첫번째 사이클에서 발생한다. All approved on MSP IOBUS occurs in the first cycle after the request is sampled active. 이 버스는 4개 사이클(4개의 버스트)에 대하여 16바이트 전송까지 처리가능하다. This bus can handle up to 16 bytes transmitted for four cycles (four bursts). 이는 버스 마스터에 의해 리퀘스트된 전송 사이즈를 버스 아비터로 알려주는 두 개의 사이즈 비트를 사용함으로써 실현된다. This is achieved by using a two size bits indicate the size of the transmitted request by the bus master to the bus arbiter.
    IOBUS는 32비트 어드레스와 데이터 멀티플렉서를 가진다. IOBUS has a 32-bit address and data multiplexers. 어드레스는 항상 데이터 이전에 먼저 나타난다. Address will always appear first in the data migration. IOB_ALE(어드레스 래치 인에이블) 신호는 어드레스를 래치하기 위해 수신중인 디바이스가 사용한다. IOB_ALE (address latch enable) signal is used by a receiving device to latch the address. 비록 8비트 디바이스가 버스에 연결되더라도 모든 버스 억세싱은 32비트 전송을 가정한다. Even if the 8-bit devices connected to the bus and all bus eokse Singh assuming a 32-bit transfer. 정상적인 규칙에 의하면, 8비트 디바이스는 버스의 하위 8비트[7:0]를 사용하고, 16비트 디바이스는 버스의 하위 16비트[15:0]를 사용한다. According to the normal rule, an 8-bit device on the bus is lower 8 bits: use [70], and 16-bit devices on the bus 16 low-order bits: use [15: 0]. 만약 16비트 디바이스가 8비트 디바이스와의 통신을 원한다면, 8비트 디바이스가 데이터를 찾아서 래치할 수 있도록 버스의 하위 8비트에 정확한 데이터를 올려 놓아야 한다. If 16-bit devices that want to communicate with the 8-bit device, must set up the correct data to the low-order 8 bits of the bus so that 8-bit device to latch in search data. 동일한 기간에 여러개의 리퀘스트가 있는 경우, 승인되지 않은 리퀘스터는 IOBUS 아비터가 승인할 때까지 항상 그들의 리퀘스트를 홀드시켜야 한다. If there are multiple requests at the same time, they should always hold their request until the requester is authorized emitter IOBUS arbiter has not been approved. 이러한 체계로 허용된 리퀘스트에 대해 많은 버스-억세싱 사이클 즉, 4*32비트 전송(최대 16바이트)가 있다. Many bus for a request to allow this system - eokse washing cycle, that is, a 4 x 32-bit transfers (up to 16 bytes). 블록 전송은 항상 각각 여러개의 32비트 전송으로 나뉘어진다. Block transfer is always divided into a number of 32-bit transfers, respectively.
    모든 버스 승인은 IOBUS 아비터에 의해 발생된다. All approved bus is generated by the arbiter IOBUS. 그러나, 항상 어드레스(유효시)를 감시하고, 목적지로 적절한 칩 선택(다음 클럭 사이클에 대하여)을 발생시키는 병렬 디코딩 로직이 있다. However, a parallel decoding logic to always monitor (not valid) address, and generating an appropriate chip select a destination (for the next clock cycle). 칩 선택은 항상 단 하나의 사이클에 대해 유효하고, 이후 어드레스가 모든 독출 및 기입 리퀘스트를 위해 표시된다. Chip select is always valid for a single cycle, and since the address is displayed for all read and write requests. 각각의 IOBUS 노드는 입력으로 전용의 칩 선택을 가진다. IOBUS each node has a dedicated chip select input. 핀 설명 및 타이밍도를 참조할 것. Will refer to pin description and timing diagrams.
    2비트 사이즈 정보는 버스 아비터로부터 승인된 다음 마스터에 의해 발생되고, 이후 2개의 버스 사이클에 대하여 유효하다. 2-bit size information are generated by the master, and then approved by the bus arbiter, it is effective for two bus cycles later. CS가 버스 전송 사이클을 결정하기 위하여 표시되면, 선택된 슬레이브는 사이즈 정보를 획득해야 한다. If CS is displayed in order to determine the bus transfer cycle, the selected slave has to acquire the size information. 또한, 독출 또는 기입시, IOBUS 아비터는 새로운 리퀘스트를 찾기 시작하기 전에, 버스 사이클이 종료되는 것을 판단하기 위한 전송 사이즈의 트랙을 유지한다. In addition, prior to start looking for a read or write, a new request IOBUS arbiter, to keep track of the transfer size for determining that the bus cycle is terminated. 버스트-버스 전송시(독출 또는 기입시) 데이터간에는 차이가 전혀 없다. Burst (not read or written) during a bus transfer that there is no difference between data.
    데이터 독출 전송에 있어서, 데이터가 유효한 시점을 리퀘스터로 알려 주며, 이 데이타 래치를 시작하기 위하여 READY 신호가 사용된다. In the data read transfer, data gives offer a valid point by a requestor, the READY signal is used to start the data latch. 이 READY 신호는 버스 마스터와 슬레이브에 의해 발생된다. The READY signal is generated by the bus master and the slave.
    이 프로토콜을 만족시키기 위해서는, 모든 IOBUS 노드들은 리퀘스트를 처리하기 전에 IOBUS 인터페이스를 설계하는 것이 필요하다. In order to satisfy this protocol, all nodes are IOBUS it is necessary to design the IOBUS interface before processing the request. 이 인터페이스는 다음 스펙을 만족시켜야 한다. This interface must meet the following specifications.
    3.2 핀 설명 3.2 Pin Description
    이하, 버스 마스터측에서 본 시스템 IOBUS를 위한 어드레스, 데이터 및 제어 신호 정의를 설명하기로 한다. 12. The following describes the address, data and control signals defined for the system bus IOBUS from the master side. IOBUS 구조 정의를 보여주는 도 24를 참조할 것. It will refer to Fig. 24 showing IOBUS structure definition. 전술한 바와 같이, IOBUS는 다중화된 어드레스/데이타 버스이다. As described above, IOBUS is a multiplexed address / data bus.
    xxx는 리퀘스터 명칭(ccu, bsp, urt, tmr, int)을 나타내는 3개의 문자 코드이다. xxx is a three-letter code indicating the requester Name (ccu, bsp, urt, tmr, int).
    * 시스템 IOBUS 신호 정의 * System definition signal IOBUS
    3.3 로직 정의 3.3 logic defined
    IOBUS 중재 제어 유니트는 도 25에 도시된 바와 같다. IOBUS arbitration control unit is shown in Fig.
    3.4 IOBUS 타이밍 3.4 IOBUS timing
    IOBUS 독출 타이밍(전송 사이즈=1 워드(4 바이트))은 도 26에 도시된 바와 같고, IOBUS 기입 타이밍(전송 사이즈=1 워드(4 바이트))은 도 27에 도시된 바와 같고, IOBUS 독출 타이밍 전송 사이즈=4 워드(16 바이트))은 도 28에 도시된 바와 같고, IOBUS 기입 타이밍(전송 사이즈=4 워드(16 바이트))은 도 29에 도시된 바와 같다. IOBUS read timing (transmission size = 1 word (4 bytes)) are as shown in Figure 26, IOBUS write timing (transmission size = 1 word (4 bytes)) are as shown in Figure 27, IOBUS read timing transmission size = 4 words (16 bytes)) are as shown in Figure 28, the write timing IOBUS (transfer size = 4 words (16 bytes)) is shown in Fig.
    제4장 FBUS 설명 Chapter 4 Description FBUS
    이 장은 하드웨어 디자이너 측면에서 FBUS의 스펙을 기술한 것이다. This chapter will be described in the specification of the hardware designers FBUS side.
    4.1 개요 4.1 Overview
    메모리 콘트롤러, PCI, 커스터머 주문형반도체 및 캐쉬 서브시스템은 비다중화된 어드레스 및 데이터 버스 라인을 통해 시스템 버스 "FBUS"와 인터페이스 한다. Memory controllers, PCI, keoseuteomeo application specific integrated circuit and a cache subsystem interfaces with the system bus "FBUS" through a non-multiplexed address and data bus lines.
    하나의 중앙 FBUS 중재 제어 로직을 리퀘스트를 감시하고, 우선순위 체계를 사용하여 승인을 발생한다. Monitoring the request of one of the central FBUS arbitration control logic and generates the first approved using the ranking system. 버스 마스터(어드레스 및 데이터 소스)는 항상 버스 리퀘스트를 표시하고, 승인을 기다린다. The bus master (address and data source) and always display a bus request and wait for approval. 정상상태에서, 승인은 버스를 펜딩하는 리퀘스트가 또 다른 마스터/슬레이브에 의해 사용되지 않은 동일한 사이클에서 발생한다(모든 승인은 결합적으로 발생된다). In the steady state, the authorization takes place in the same cycle are not used by the request is still another master / slave to the pending bus (all are approved occurs in associative). 일단 모터가 버스 승인을 수신하면, 어드레스/데이타/제어 라인은 다음 사이클로 보내진다. Once the motor has received a bus approval, an address / data / control lines is sent to the next cycle. "데이타 준비" 신호는 항상 다음 사이클 래치를 시작하였음을 수신기로 알려주기 위하여 실질적인 데이터를 처리한다. "Data ready" signal is always handle the actual data to inform the receiver that it has started the next cycle latches.
    버스 대역폭을 최대로 사용하기 위하여, 4개의 연속적인 리퀘스트는 파이프 라인 백 투 백(back to back) 방식으로 수신/전송되고, 4개의 리퀘스트를 제공하기 위하여 "리퀘스트 FIFO"를 필요로 한다. In order to use the bus bandwidth to the maximum, four consecutive requests are received / sent to the pipeline back-to-back (back to back) system, it requires a "request FIFO" to provide four request. 메모리 콘트롤러는 4개의 딥(deep) 리퀘스트 FIFO와 2개의 딥 데이터 FIFO를 가진다. The memory controller has four deep (deep) request FIFO, and two dip data FIFO. 이러한 프로토콜 특성으로 인하여, AF_FULL과 DF_FULL 신호를 필요로 한다. Due to this protocol properties, and it requires a AF_FULL and DF_FULL signal. 이들은 각각 어드레스 FIFO 풀과 데이터 FIFO 풀을 나타낸다. It represents the respective address FIFO Full and FIFO data pool. FBUS는 승인 카운터 및 리퀘스트 사이즈 버스를 사용하여 8, 16 및 32 바이트의 데이터 전송을 지원한다. FBUS supports 8, 16 and 32-byte data transfer by using the authorization request counter and the bus size.
    각각의 FBUS 유니트는 버스를 리퀘스트하기 위한 제어 로직을 가진다. Each FBUS unit has a control logic to request the bus. 이 로직은 응용(메모리/PCI/캐쉬 등)에 따라서 유니트마다 다르다. This logic is different for each unit, depending on the application (such as a memory / PCI / cache). 그러나, 실제의 버스 중재 유니트는 각 유니트에 대해 동일하고, 모든 서브모듈에서 중복된다. However, actual bus arbitration unit is the same for each unit, and is duplicated in all of the sub-module. 이 유니트는 외부 버스 마스터/슬레이브와 내부 유니트 로직 사이의 매체로서 작용한다. The unit acts as a medium between the external bus master / slave unit and the internal logic. 예를들면, 메모리 콘트롤러의 경우, 일단 CAS가 액티브되면, 메모리 콘트롤러는 FBUS를 사용할 필요가 있음을 나타내는 내부 신호를 통해 내부 리퀘스트를 FBUS 중재 로직으로 표시한다. For example, when the case of the memory controller, one CAS is activated, the memory controller will display the internal request to the arbitration logic FBUS via an internal signal to indicate that the need for the FBUS. 이 리퀘스트에 응신하여, FBUS 콘트롤러는 메모리 콘트롤러에 대해 외부인 시스템으로 리퀘스트를 표시하고, 승인을 기다린다. The reply to this request, the controller displays a FBUS request to outside the system to the memory controller, and wait for approval. 일단 승인이 수신되면, 어드레스/데이타/제어는 응신의 첫번째 엔트리와 메모리 콘트롤러에 있는 데이터 FIFO로부터 전송된다. Once authorization is received, the address / data / control data is transmitted from the FIFO in the first entry and the memory controller of the acknowledgment.
    메모리 콘트롤러에 대한 시스템 리퀘스트 사이즈는 1 바이트에서부터 최대 32비트 사이즈까지가 될 수 있다. The system requests the size of the memory controller can be from one byte up to 32 bits in size. 32 바이트 이상의 리퀘스트 사이즈인 경우, 소스/리퀘스터는 FBUS 사이즈 비트를 사용하여 여러개의 리퀘스트를 초기화한다. If more than 32 bytes, the request size, and initializes a number of requests by using a source / requester FBUS bit size. 이는 SDARM 메모리 버스(1 또는 2개의 SAMSUNG SDRAM 1M*16)의 한계로 인한 것이다. This is due to the limitations of SDARM memory bus (with one or two SAMSUNG SDRAM 1M * 16).
    SDRAM은 나머지 시스템에 의해 요구되는 완전한 32 바이트를 실현하기 위하여 8개의 랩(wrap) 길이에 대해 프로그램된다. SDRAM is programmed for eight wrap (wrap) length in order to realize the full 32-bytes required by the other system. 32 바이트 이하의 리퀘스트인 경우, 32바이트 모두가 SDRAM으로부터 페치되지만, 원하는 수의 바이트만 목적지로 전송된다. If the request of 32 bytes or less, 32 bytes, but all fetched from SDRAM, is transmitted to only the desired number of bytes of the destination.
    또한, 10개의 비트 리퀘스터 ID 버스는 칩 선택 신호(어드레스/데이타와 동일한 사이클)로 유효화된다. In addition, 10-bit Requester ID bus is enabled by a chip enable signal (address / data with the same cycle).
    모든 FBUS 노드는 3 비트의 목적지 ID를 FBUS 아비터로 발생한다. All FBUS node generates a destination ID of three bits to the FBUS arbiter. 이들 3 비트는 리퀘스트와 함께 유효화되고, 리퀘스트의 목적지를 나타낸다. These three bits are enabled with the request indicates the destination of the request. 목적지 ID비트[1:0]는 다음과 같이 입력되는 리퀘스터 ID로부터 디코딩된다. Destination ID bits [1: 0] is decoded from a requester ID is input as follows.
    리퀘스터 ID[9:6] 소스 목적지 ID[1:0] Requester ID [9: 6] Source Destination ID [1: 0]
    0000 예약 N/A 0000 reservations N / A
    0001 ARM 7N/A 0001 ARM 7N / A
    0010 FUN/A FUN 0010 / A
    0011 LSUN/A 0011 LSUN / A
    0100 CCU0 0100 CCU0
    0101 ASIC11 0101 ASIC11
    0110 MEM01 0110 MEM01
    0111 PCI10 0111 PCI10
    1XXX 예약 1XXX Reservations
    목적지 ID 비트[2]는 독출/기입 리퀘스트 스테이터스를 나타내는데 사용된다. Destination ID bits [2] is used to indicate a read / write request status. 이는 FBUS가 어드레스 리퀘스트(독출)와 어드레스/데이타 리퀘스트(기입) 사이를 구별하는 것을 도와준다. This helps to distinguish between the FBUS address request (read) and address / data request (write).
    정상상태에서, 승인 카운터 비트 grCNT[1:0]는 리퀘스터가 버스를 필요로 하는 FBUS 사이클의 수를 나타낸다. In the steady state, the authorization bit counter grCNT [1: 0] indicates the number of cycles required by the FBUS bus requestor. 백 투 백 리퀘스트에 대하여, 리퀘스트는 버스 마스터로 리퀘스트의 길이를 알려준다. Back-to-back with respect to the request, the request informs the length of the request to the bus master. FBUS 마스터 콘트롤러는 두 개의 승인 카운터 비트에 따라서 승인을 표시한다. FBUS master controller displays approved in accordance with the approval of two-bit counter.
    FBUS는 포스트된 독출을 지원하는 스플릿 트랜잭션 버스이다. FBUS is a split transaction bus that supports a post-reading. 이는 리퀘스터가 버스를 리퀘스트하며, 일단 승인되면 이 FBUS는 어드레스를 구동하고 트랜잭션을 종료한다. This When requester and requests the bus, once approved, the FBUS drives the address and end the transaction. 잠시 후, 슬레이브/데이타 소스는 목적지 ID를 사용하고, 동일한 리퀘스트를 리퀘스터를 반송하면서 데이터를 반송한다. After a while, the slave / data sources will carry data while conveying the requester using the destination ID, and the same requester requests. 이러한 특성은 버스 대역폭을 대폭 향상시키고, 다른 마스터가 FBUS를 더 빨리 사용하는 것을 허용한다. These characteristics are greatly improved and the bus bandwidth, allow another master to use FBUS faster.
    좀더 상세한 것은 타이밍도를 참조할 것. The more detailed you can see the timing diagram.
    4.2 핀 설명 4.2 Pin Description
    이하, 시스템 FBUS의 어드레스, 데이터 및 제어 신호를 설명하기로 한다. 12. The following describes the address, data and control signals of the system FBUS.
    전술한 바와 같이, FBUS는 비다중화된 어드레스/데이타 버스이다. As described above, FBUS is a non-multiplexed address / data bus.
    "xxx"는 리퀘스터 명칭(mem, pci, asc, ccu)을 나타내는 3개의 문자 코드이다. "Xxx" is the three letter code represents the requester Name (mem, pci, asc, ccu).
    [테이블 16] [Table 16]
    시스템 FBUS 신호 정의 FBUS signal system defined
    도 30은 메모리 독출 리퀘스트 FBUS 플로우를 나타낸 것이고, 도 31은 메모리 기입 리퀘스트 FBUS 플로우를 나타낸 것이고, 도 32는 마스터/슬레이브 "비메모리" 리퀘스트 FBUS 플로우를 나타낸 것이고, 도 33은 중앙의 FBUS 중재 제어 유니트를 나타낸 것이다. 30 will showing a memory read request FBUS flow, 31 will showing a memory write request FBUS flow, 32 is a master / slave "non-memory" will showing a request FBUS flow, 33 is a central FBUS arbitration control unit It illustrates a.
    도 34 내지 36은 FBUS 타이밍도로서 도 34는 메모리 리퀘스트 FBUS 타이밍을 나타낸다(8 바이트 데이터 전송을 보여 주며, 16/32/64/128 바이트의 복수개의 데이터 사이클이 사용된다). 34 to 36 is a timing diagram as FBUS 34 shows the memory request FBUS timing (shows a 8-byte data, a plurality of data cycles 16/32/64/128 bytes are used). 도 35는 메모리 독출 리퀘스트 FBUS 타이밍을 나타내고(전송 사이즈=8 바이트), 도 36은 메모리 백 투 백 기입 리퀘스트(전송 사이즈=32 바이트)를 나타낸 것이다. Figure 35 shows a shows a memory read request FBUS timing (transmission size = 8 bytes), 36 is a back-to-back memory write request (transfer size = 32).
    제5장 PCI 버스 Chapter 5 PCI bus
    이 장은 PCI 코아와, 내부 FBUS와 인터페이스하는 PCI 글루(glue) 로직의 스펙을 설명한 것이다. This section sets forth the specifications of the PCI glue (glue) logic that interfaces to the PCI core and, inside FBUS.
    5.1 개요 5.1 Overview
    MSP_1E PCI 콘트롤러는 PCI 버스 스펙 개정판 2.1을 만족시키기 위해 설계된 것이다. MSP_1E PCI controller is designed to meet the PCI Bus Specification Revision 2.1. 좀 더 상세한 것은 이 표준 스펙을 참조할 것. The more detailed you can see the standard specifications.
    PCI 유니트는 두개의 메인 섹션:PCI 코아와 FBUS '글루' 로직을 포함한다. PCI unit has two main sections: a core and includes a PCI FBUS "glue" logic.
    PCI 코아는 주로 33MHz의 PCI 버스 속도로 동작하는 외부의 PCI 디바이스와 인터페이스한다. PCI core mainly interface with an external PCI devices that operate as a PCI bus speed of 33MHz. FBUS '글루' 로직은 80MHz로 동작하는 삼성 FBUS와 인터페이스한다. FBUS "glue" logic interface and Samsung FBUS operating at 80MHz. 이 '글루'로직은 PCI 코아와 FBUS 사이를 인터페이스 한다. The "glue" logic interfaces between the PCI core and FBUS. 속도 동기화는 서브블록들의 두개의 엔드에서 FIFO를 사용하여 실현될 수 있다. Speed ​​synchronization can be realized by using the FIFO at the two ends of the sub-block.
    삼성의 PCI 코아는 또한 가상적인 프레임 버퍼 로직과, FBUS를 통해 ARM7과 인터페이스하는데 필요한 모든 VFB 레지스터를 포함한다. Samsung PCI core also includes all VFB register required to interface with the ARM7 through the virtual frame buffer logic and, FBUS.
    이 PCI 유니트에 대하여 유일한 특징은 호스트 CPU MSP 칩과 MSP 칩으로부터 호스트 CPU로의 인터럽트 처리이다. The only feature for this unit is a PCI interrupt processing to the host CPU from the host CPU chip and MSP MSP chip. 이에 대하여 좀 더 상세히 설명하기로 한다. On the other hand it will be described in more detail.
    5.1.1 삼성 PCI 코아 블록도는 도 37에 도시된 바와 같다. 5.1.1 Samsung PCI core block diagram is as shown in Fig.
    5.2 PCI FBUS 인터페이스 로직(도 38 참조) 5.2 PCI FBUS interface Logic (see Fig. 38)
    PCI 코아의 서브블록은 MSP 내부 FBU와 SAND 마이크로의 PCI 코아와 인터페이스한다. Sub-blocks of the PCI and PCI interface core is the core of the MSP and the inner FBU SAND Micro. 어드레스와 데이터는 두 개의 엔드에서 FIFO에 저장된다. The address and data are stored in the FIFO at the two end. 이 서브 블록은 또한 PCI 신호와 FBUS 클럭을 동기화시키는 역활을 한다. The sub-block may also be a role for synchronizing the PCI clock signal and FBUS.
    PCI 코아 로직은 FBUS 마스터 및 슬레이브 디바이스일 수 있다. PCI core logic can be FBUS master and slave devices. 대부분의 억세스는 64 비트 FBUS를 통해 로컬 SDRAM 메모리로 향한다. Most of access through the 64-bit FBUS directed to the local SDRAM memory. FBUS 프로토콜의 설명을 위해서는 FBUS 장을 참조할 것. For a description of FBUS protocol Refer to Chapter FBUS.
    PCI FBUS 제어 로직은 또한 가상 프레임 버퍼 레지스터와 제어를 포함한다. PCI FBUS control logic also includes a virtual frame buffer and control registers. 이 레지스터는 FBUS를 통해 ARM 에 의해 프로그램 된다. This register is programmed by the ARM via the FBUS. 블록도 참조할 것. Block refer to Figure.
    5.3 PCI VFB 로직 5.3 PCI logic VFB
    도 39는 VFB 블록도이고, 도 40은 VFB 레지스터이다. 39 is a block diagram VFB, 40 is a register VFB.
    5.3 PCI 코아 로직 5.3 PCI Core Logic
    MSP PCI 코아는 PCI 2.1 스펙을 완전히 만족한다. MSP PCI core is completely satisfied with the PCI 2.1 specification. 추가된 사항은 인터럽트와 소프트웨어 MSP 리셋을 위해 부가된 레지스터의 수이다. The additional information is the number of additional registers for interrupt and software MSP reset.
    ARM7에 있는 소스트웨어는 MSP 제어 레지스터의 MSP(bit〈3〉)으로부터 PCI 호스트 인터럽트 리퀘스트를 세팅함으로써 호스트 CPU를 인터럽트할 수 있다. Source software in ARM7 may interrupt the host CPU by setting the interrupt request from the PCI host MSP (bit <3>) of the MSP control register. 이는 PCI 버스(INTA#)에 있는 인터럽트 핀을 세팅함으로써 PCI 코아 로직이 호스트 CPU를 인터럽트하도록 한다. This is a PCI core logic to interrupt the host CPU by setting the interrupt pin in the PCI bus (INTA #). 이후, 호스트 CPU는 MSP 제어 레지스터에 있는 PCI 호스트 인터럽트 인지(bit〈4〉)를 통해 인터럽트를 인지한다. Then, the host CPU recognizes an interrupt via (bit <4>) that the PCI host interrupt in the control register MSP. 이는 인터럽트 라인이 인액티브 상태가 되도록 한다. This allows the interrupt line is in the active state.
    MSP PCI 코아는 또한 기본적으로 ARM7에 대한 인터럽트인 호스트 CPU로부터의 인터럽트를 억셉트할 수 있다. MSP PCI core can also septeu billion interrupts from interrupt to the host CPU ARM7 by default. PCI 스펙이 임의의 인터럽트 입력 핀을 지원하지 않으므로, MSP 제어 레지스터에 있는 호스트로부터의 MSP 인터럽트 리퀘스트(bit〈2〉)가 이 기능을 제공하는데 사용된다. PCI specification does not support any of the interrupt input pin, an interrupt request MSP (bit <2>) from a host in the MSP control register is used to provide this functionality. 호스트 CPU는 ARM7에 대한 인터럽트를 나타내기 위하여 이 비트를 설정할 수 있다. The host CPU may set a bit to indicate that an interrupt on ARM7. 다음, 일단 호스트 인터럽트를 인지하면, ARM7은 이 레지스터를 클리어시킨다. When recognizing the next, once the host interrupts, the ARM7 clears this register. 도 41에 있는 블록도를 참조할 것. Will reference to the block diagram in Figure 41.
    도 41에 대하여, PCI 공간이 아닌 MSP 영역으로 매핑된 3개의 레지스터가 필요하다. With respect to FIG. 41, it is necessary that the three registers map to the region MSP non-PCI space.
    실질적인 PCI 코아에 대한 세부적인 정보를 위해서는 PCI 2.1 스펙을 참조할 것. For detailed information on the actual PCI cores will see the PCI 2.1 specification.
    제6장 메모리 콘트롤러 Chapter 6. Memory controller
    6.1 6.1
    이 장은 하드웨어와 소프트웨어 디자이너 측면에서 메모리 콘트롤러의 스펙을 설명한 것이다. This chapter sets forth the specifications of the memory controller in terms of hardware and software designers.
    6.2 개요 6.2 Overview
    MSP 메모리 콘트롤러는 여러 가지 특징을 가지며, 비용과 성능에 대한 트레이드-오프를 위한 프로그램 가능성 레벨을 가진다. MSP memory controller has a number of features, for cost and performance trade-has a level of programmability for off. 메모리 콘트롤러는 80MHz로 동작하는 메인 시스템 버스 FBUS와 DRAM 칩과 인터페이스한다. The memory controller interfaces with the main system bus and the DRAM chip FBUS operating at 80MHz. 80MHz 클럭 주파수를 실현하기 위하여, 초기의 설계 단계에서 동기 DRAM이 사용된다. In order to achieve the 80MHz clock frequency, a synchronous DRAM is used in the initial design stage.
    결국, 메모리 서브시스템은 표준 고속 페이지 DRAM, 확장된 데이터 출력(EDO) DRAM 과 동기 DRAM을 지원한다. After all, the memory sub-system supports the standard fast page DRAM, extended data output (EDO) DRAM and synchronous DRAM. 메모리 뱅크 사이즈는 인터리빙 가능한 2개의 외부 뱅크로 제한된다. Memory bank size is limited to two interleaved banks outside possible.
    초기의 동기 DRAM 메모리 콘트폴러는 DRAM을 동작시키는데 필요한 최소한의 특징을 가진다. Synchronous DRAM memory contrail Poller early has the features of at least required to operate the DRAM. 다음은 기본적인 제1패스 메모리 콘트롤러 특징을 나타낸다. The following sets forth the basic first path memory controller features.
    * 삼성의 동기 DRAM 지원 * Samsung synchronous DRAM support
    * 두개의 SDRAM 칩을 사용한 하나의 메모리 뱅크(1M*16) * One memory bank with two SDRAM chips (1M * 16)
    * Cas-Before-Ras(CBR) 리프레쉬 지원 * Cas-Before-Ras (CBR) refresh support
    * 독출-수정-기입(Read-Modify_Write) 동작을 초기화하는 부분적인 기입 지원 * Read-modify-write portion of the write support for initializing (Read-Modify_Write) operation
    * 내부의 뱅크 인터리브 지원(MA[11]을 통한 핑퐁) * (Ping-pong with MA [11]) of the inner support bank interleaving
    * 80MHz 메로리와 프로세서 버스(1:1) 주파수 매치 * 80MHz merori to the processor bus (1: 1) to match the frequency
    * 프로그래머블 리프레쉬율 * Programmable refresh rate
    * 시스템 버스를 효율적으로 사용하기 위한 어드레스와 데이터 큐잉 * The address and data queued for the efficient use of the system bus
    * 매뉴얼 두개 뱅크 프리챠지 지원 * Manual two bank precharge Support
    MSP 메모리 콘트롤러는 두개의 메인 서브 구성요소:데이터 콘트롤러와 어드레스 콘트롤러를 가진다. MSP memory controller includes two main sub-components: the controller has a data and an address controller. 데이터 콘트롤러는 DRAM으로부터 독출된 데이터를 저장하고, 프로세서 버스로부터 데이터를 기입하기 위한 독출 및 기입 데이터 큐를 가진다. The data controller stores the data read out from the DRAM, and has a read and a write data queue for writing data from the processor bus. 데이터 콘트롤러는 또한 바이트 기입을 위한 RMW 로직을 포함한다. Data controller further includes a RMW logic for byte write. 데이터 콘트롤러에 대한 모든 제어는 어드레스 콘트롤러로부터 발생한다. All the control data for the controller is generated from the address controller.
    어드레스 콘트롤러는 리퀘스트 큐, 응신 ID 큐, 메모리 억세스 디코딩 로직, 레이지 비교기 로직, RAS/CAS 상테 머쉰, 리프레쉬 상태 머쉰과, 데이터 콘트롤러에 의해 사용되는 필요한 모든 제어신호들을 가진다. Address controller has all the control signals required to be used by the request queues, acknowledgment queue ID, memory access decoding logic, comparator logic RAGE, RAS / CAS synthe machine, the refresh state machine, a data controller.
    SDRAM 메모리 클럭은 시스템 클럭과 동일하다. SDRAM Memory clock is the same as the system clock. SDRAM은 상기 한벌의 각 제어신호를 수신한다. SDRAM receives a respective control signal of the one.
    6.2.1 메모리 콘트롤러 블록도는 도 42에 도시된 바와 같다. 6.2.1 Memory controller block diagram is shown in Figure 42.
    6.2.2 메모리 콘트롤러 플로우는 도 43에 도시된 바와 같다. 6.2.2 Memory flow controller is shown in Figure 43.
    6.3 어드레스 콘트롤러(AC) 6.3 the address controller (AC)
    메모리 콘트롤러에서 어드레스 콘트롤러 섹션은 데이터 콘트롤러를 관리하는 것 뿐만 아니라 모든 DRAM 제어를 발생시키는 역할을 한다. Address controller section of the memory controller, as well as the management of data controller serves to generate all the DRAM control. MSP 메모리 콘트롤러의 이 섹션은 또한 FBUS 인터페이스의 어드레스와 제어 경로를 담당한다. This section of the MSP memory controller is also in charge of address and control path to the FBUS interface. 다음의 블록도는 어드레스 콘트롤러 유니트의 여러개의 서브-섹션을 나타낸다. The following is a block diagram of a number of sub-address of the controller unit - shows a section.
    6.3.1 어드레스 콘트롤러 블록도는 도 44에 도시된 바와 같다. 6.3.1 address controller block diagram is shown in Figure 44.
    6.3.2 메모리 콘트롤러 리퀘스트 FIFO 6.3.2 FIFO memory controller request
    MSP 메모리 콘트롤러는 실질적인 메모리 콘트롤러 상태 머쉰으로의 디스패치(dispatch)를 위한 FBUS 어드레스와 제어 정보를 저장하는 4개의 딥 리퀘스트 FIFO를 가진다. MSP memory controller has four deep FIFO to store the FBUS request address and control information to the dispatch (dispatch) of a substantial memory controller state machine. 리퀘스트 FIFO의 각각의 엔트리는 특정 엔트리의 유효함을 나타내는 "유효" 비트를 가진다. Each entry in the request FIFO has a "valid" bit to indicate that the particular entry is valid. 메모리 콘트롤러 상태 머쉰은 항상 ENTRY_0인 FIFO에 있는 최하위 엔트리를 지원한다. The memory controller state machine will always support the least significant entries in the ENTRY_0 the FIFO. 일단 리퀘스트가 제공되고, 열 어드레스 스트로브(CAS)가 액티브되면 메모리 콘트롤러는 이 엔트리를 클리어시키기 위해 클리어 신호를 표시한다. Once the request is provided, and when the column address strobe (CAS) is activated memory controller displays a clear signal to clear the entry. FIFO FULL/EMPTY 스테이터스에 다라서, 배럴 쉬프트가 유효한 내용을 엔트리 0으로 쉬프트시키기 위핸 초기화된다. It is the FIFO FULL / EMPTY status because, is initialized to the barrel shift wihaen shifting the valid information in the entry 0.
    MSP 메모리 콘트롤러 리퀘스트 FIFO 포맷은 도 45에 도시된 바와 같다. MSP memory controller FIFO request format is as shown in Figure 45.
    6.3.3 메모리 콘트롤러 어드레스 디코드/맵 6.3.3 memory controller address decode / Map
    어드레스 디코딩 로직은 주로 11 비트의 SDRAM 행 어드레스 MA[10:0]와 8 비트의 열 어드레스 MA[7:0]을 발생시키는 역할을 한다. Address decoding logic is mainly SDRAM row address MA of 11 bits serves to generate: [7: 0] [10 0] and column address MA of 8 bits. 이들 어드레스 라인은 SDRAM 어드레스 입력[11:0]으로 직접 구동된다. These address lines are SDRAM address input [11: 0] is driven directly. 메모리 어드레스 비트[11]은 성능을 위해 내부 SDRAM 뱅크와 개선된 메모리 버스 사용 사이를 토클하는데 사용된다. Memory address bits [11] is used to toggle between internal SDRAM banks and improved memory bus used for performance.
    이 메모리 어드레스는 다음을 나타내는 레지스터를 통해 주어지는 프로그래머블 멀티플렉서를 사용하여 발생된다. The memory address is generated using a programmable multiplexer is given by the register indicates the following:
    - 현재 시스템 캐쉬 라인 사이즈 - The current system cache line size
    - 내부 뱅크의 수 - number of internal bank
    - 내부 뱅크 인터리빙 - internal bank interleaving
    시스템 캐쉬 라인 오프셋은 32 바이트 캐쉬 라인에 대하여 5 비트이다. System cache line offset is 5 bits for 32-byte cache lines. 도 46은 16 MB DRAM을 위한 FBUS 시스템 어드레스로부터 발생되는 제안된 메모리 어드레스 포맷을 보여준다. Figure 46 shows the proposed memory address format generated from the FBUS address system for the 16 MB DRAM.
    이 다중화된 메모리 어드레스는 메모리 콘트롤러 상태 머쉰에 의해 지시되는 RAS와 CAS 스트로브를 가진 하나의 사이클에 대하여 유효하다. The multiplexed memory address is valid for one cycle with the RAS and CAS strobe is indicated by the memory controller state machine.
    MCU는 독출-수정-지입 동작을 지시함이 벗이 8바이트 기입을 수행할 수 있다. The MCU reads out - can be performed off the 8-byte write is also a jiip operation instruction-modification. 그러나, FBUS 어드레스의 bit[2]는 항상 어드레스만을 스타팅하기 위하여 제로이다. However, bit [2] in the FBUS address is always zero in order to only the starting address. 이 비트는 다음과 같이 스타팅 어드레스를 나타내는 3개 비트 중 하나인 SDRAM 어드레스의 bit[0]으로 매핑된다. This bit is mapped to a bit [0] of the SDRAM address, one of the three bits that indicates a starting address, as follows:
    Faddr[4:2] 기입 시퀀스(WRAP=8) Faddr [4: 2] write sequence (WRAP = 8)
    000 0-1-2-3-4-5-6-7 000 0-1-2-3-4-5-6-7
    010 2-3-4-5-6-7-0-1 010 2-3-4-5-6-7-0-1
    100 4-5-6-7-0-1-2-3 100 4-5-6-7-0-1-2-3
    110 6-7-0-1-2-3-4-5 110 6-7-0-1-2-3-4-5
    이들은 모두 우수의 스타팅 어드레스이며, MCU에 의해 지원되는 시퀀스이다. These are all of the starting address of a solid, a sequence that is supported by the MCU.
    모든 독출 동작은 32 바이트를 가정하고, 스타팅 어드레스는 (000)=rna[2:0]=Faddr[4:2]이다. All read operations is 32-bytes and the home, the starting address is (000) = rna [2: 0] = Faddr [4: 2] is.
    6.3.4 메모리 콘트롤러 상태 머쉰 6.3.4 memory controller state machine
    MSP 메모리 콘트롤러는 하나의 마스터 콘트롤러 상태 머쉰을 가진다. MSP memory controller has a single master controller state machine. 이 상태 머쉰은 SDRAM 제어신호를 위한 모든 타이밍(RAS/CAS/WE/CS/DQM)을 발생시키는 역할을 한다. The state machine is responsible for generating all the timing (RAS / CAS / WE / CS / DQM) to the SDRAM control signals. 상태 머쉰은 항상 엔트리 0에 있는 유효 엔트리를 위해 리퀘스트 FIFO를 모니터한다. State machine should always monitor the FIFO request for a valid entry in the entry 0. 일단 유효 비트가 검출되면, 상태 머쉰은 SDRAM 시퀀스 개시를 시작한다. Once the valid bit is detected, the state machine begins a start sequence SDRAM. 또한, RAS 프리챠지가 필요한지를 판단하기 위하여 페이지 비교기로부터 페이지_히트 신호를 모니터한다. In addition, the monitor _ page hit signal from comparator page in order to determine RAS precharge is required.
    RAS 프리챠지는 현재의 액티브/개방 뱅크상에서 수행된다. RAS precharge is performed on the current active / open banks. 매뉴얼 프리챠지 시퀀스는 제로인 상태를 액티브시키기 위하여 CS, RAS, WE와 MA[10]을 표시하는 것을 포함한다. The manual pre-charging sequence is included to show the CS, RAS, WE, and MA [10] In order to activate the zero state. 내부 뱅크 선택 비트 MA[11]는 프리챠지하기 위한 뱅크를 선택하는데 사용된다. Internal bank select bits MA [11] is used to select the bank to precharge. 독출의 경우:프리챠지 커맨드는 데이터 충돌을 피하기 위하여 데이터 SDRAM으로부터 수신된 이후 표시된다. For read: pre-charge command is received from the data appears after the SDRAM in order to avoid data collision. 기입의 경우, 프리챠지는 마지막 비트의 데이터가 메모리에 기입된 이후 발행된다. For writing, the precharge is issued after the last bit of data is written to memory. 일단 프리챠지 커맨드가 완료되면, 특정 뱅크는 다음의 메모리 동작을 위해 아이들(idle) 상태가 된다. Once the pre-charge command has been completed, a certain bank is in an idle (idle) state for the next memory operation. SDRAM 스펙에 따르면, 프리챠지 커맨드는 tRAS(min)(여기서는 60ns)이 만족된 후 언제든지 발생될 수 있다. According to the SDRAM specification, a precharge command may be generated at any time tRAS (min) after the (here 60ns) is satisfied. 그러나, 현재 4인 랩(wrap) 길이로 인하여 메모리 콘트롤러 상태 머쉰은 데이터가 메모리에 독출/기입된 후 프리챠지 커멘드를 발생시킨다. However, the current of 4 wraps (wrap) due to the length of the memory controller state machine generates a precharge command and the data is read / written in the memory.
    다음은 MSP 메모리 콘트롤러와 같이 사용되는 SDRAM 파라미터를 나타낸다. The following shows an SDRAM memory controller parameters to be used with the MSP.
    [테이블 17] [Table 17]
    SDRAM 파라미터 SDRAM parameters
    * tRAS는 동기 DRAM의 60ns 열 억세스 타임을 실현시키기 위해 5 사이클로 사용될 수 있다. * TRAS 5 cycles may be used to realize the column 60ns access time of the synchronous DRAM. 메모리 콘트롤러 타이밍도를 참조할 것. It will refer to the memory controller timing diagram.
    6.3.4.1 상태 머쉰 다이아그램 6.3.4.1 state machine diagram
    도 47은 SDRAM 메모리 콘트롤러 RAS/CAS 상태 머쉰 다이아그램을 나타낸다. Figure 47 shows the SDRAM memory controller RAS / CAS state machine diagram.
    6.4 메모리 콘트롤러 리프레쉬 6.4 refresh memory controller
    동기 DRAM은 각각의 저장 셀에 있는 데이터를 유지하기 위하여 매 32ms(15.6ns)마다 리프레쉬될 필요가 있다. Synchronous DRAM needs to be refreshed every 32ms (15.6ns) to keep the data in the respective storage cells. 동기 DRAM은 또한 두개 모드의 리프레쉬:자동 리프레쉬와 셀프 리프레쉬를 지원한다. Synchronous DRAM is also refreshed in two modes: supports automatic refresh and self refresh.
    6.4.1 SDRAM 자동 리프레쉬 6.4.1 SDRAM auto refresh
    표준의 자동 리프레쉬를 사용하며, 두 개의 내부 뱅크가 내부 카운터에 의해 교번적으로 리프레쉬된다. Using automatic refresh of the standard, there are two internal banks are refreshed alternately by the internal counter. 행(row)의 수가 4096이기 때문에 자동 리프레쉬는 DRAM 전체를 리프레쉬하기 위하여 2048 자동 리프레쉬 사이클을 필요로 한다. Auto refresh because the number 4096 of the line (row) requires a 2048 auto refresh cycles in order to refresh the entire DRAM.
    자동 리프레쉬 커맨드는 CKE와 WE가 하이이고, CS, RAS CAS가 로우임을 표시하는 것에 의해 발생된다. Automatic refresh command is generated by indicating that the CKE is high and WE, CS, RAS CAS is low. 이 커맨드는 두개의 뱅크가 아이들 상태에 있을 경우에만 표시된다. This command has two of the bank is displayed only when it is in idle state.
    자동 리프레쉬를 종료하는데 필요한 시간은 The time required to exit the auto refresh is
    tRC(min)/사이클 시간=100ns(spec)/12.5ns=8사이클(80MHz) tRC (min) / cycle time = 100ns (spec) /12.5ns=8 ​​cycle (80MHz)
    6.4.2 SDRAM 셀프 리프레쉬 6.4.2 SDRAM self-refresh
    셀프 리프레쉬는 삼성의 SDRAM에 사용되는 또 다른 모드이다. Self-refresh is a further mode used to Samsung SDRAM. 이는 일반적으로 데이터 유지 및 저전력 동작을 위해 바람직한 리프레쉬 모드이다. It is generally preferred refresh mode for holding data, and low-power operation. 여기서, SDRAM은 내부 클럭과 CKE를 제외한 모든 입력 버퍼를 디스에이블시킨다. Here, SDRAM is disables all input buffers other than an internal clock and CKE.
    CS, RAS, CAS와 CKE가 로우이고, WE가 하이인 경우 셀프 리프레쉬 모드로 들어간다. And the CS, RAS, CAS and CKE is low, if the WE is high enters the self refresh mode. 셀프 리프레쉬 모드는 SDRAM 클럭의 슈팅과 CKE 신호를 사용한 재시도를 요구하기 때문에 MSP 메모리 콘트롤러는 이 리프레쉬 모드를 사용하지 않는다. Self-refresh mode is because it requires a retry with a shot and CKE signal of the SDRAM clock signal CK MSP memory controller does not use the refresh mode.
    6.4.3 매뉴얼 리프레쉬 6.4.3 Manual Refresh
    이 리프레쉬 모드는 상태 머쉰/카운터 설계를 요구한다. The refresh mode requires a state machine / counter design. 카운터는 매 15.6us 마다 타임아웃되고, 메모리 콘트롤러 로직으로 리프레쉬 스트로브를 표시한다. The counter and the timeout every 15.6us, and displays the refresh strobe to the memory controller logic.
    다음, 메모리 콘트롤러는 현재의 리프레쉬를 종료하고, 즉시 SDRAM 리프레쉬 사이클을 초기화한다. Next, the memory controller will end the active regeneration of, and immediately reset the SDRAM refresh cycle. 이 사이클은 아이들 상태에서의 제한을 가지지 않는다면 정확히 자동 리프레쉬 사이클과 유사하다. This cycle is similar to the auto-refresh cycle does not have an exact limit in the idle state.
    6.5 데이터 콘트롤러(DC) 6.5 Data controller (DC)
    메모리 콘트롤러에서 데이터 콘트롤러 섹션은 주로 프로세서로부터 데이터를 기입하거나, SDRAM으로부터 데이터를 독출하기 위한 데이터 큐로 제공된다. Data from the controller section, the memory controller is provided mainly writes data from the processor, or queue data for reading data from the SDRAM. 이 콘트롤러는 또한 모든 부분적인 기입시(바이크 기입)를 위한 기입 병합 로직을 가진다. The controller also has a write merge logic for all when the partial writing (write-bike). 부분적인 기입은 먼저 DRAM 독출을 시작한 다음, 데이터를 병합하고, 마지막으로 완전히 수정된 워드를 메모리로 다시 기입한다. A partial write is first written back to the next merge, the DRAM read data start, and the last fully modified word to the memory. 그러므로, 부분적인 기입 시퀀스 다음의 임의의 리프레쉬는 성능 히트를 취해야만 한다. Therefore, any of the refreshing of the partial sequence, and then is written must be taken to performance hit.
    6.5.1 데이터 콘트롤러 블록도는 도 48에 도시된 바와 같다. 6.5.1 Data controller block diagram is shown in Figure 48.
    6.6 핀 서명 6.6 Signature Pin
    이 콘트롤러는 다음의 팩키지 핀들을 제공한다. This controller offers the following package pins.
    * RAS_I:출력 핀(액티브 로우). * RAS_I: output pin (active low). 이는 MA[11:0]으로부터의 행 어드레스를 선택된 DRAM 뱅크의 내부 행 어드레스 버퍼로 래치하기 위한 행 어드레스 스트로브 이다. This MA [11: 0] is the row address strobe for latching to the internal row address buffer of the DRAM banks selected row addresses from.
    * CAS_I:출력 핀(액티브 로우). * CAS_I: output pin (active low). 이는 MA[11:0]으로부터의 열 어드레스를 선택된 DRAM 뱅크의 내부 열 어드레스 버퍼로 래치하기 위한 열 어드레스 스트로브이다. This MA [11: 0] is the column address strobe for latching into the column address buffer in the DRAM bank the column address is selected from a.
    * WE_I:출력 핀(기입시 액티브 로우). * WE_I: output pins (insert when active low). DRAM의 기입 인에이블 입력 핀을 구동하기 위한 것이다. For driving the write-enable input pin of the DRAM.
    * MA[11:0]:출력 핀들. * MA [11: 0]: the output pins. DRAM에 대한 다중화된 행 및 열어드레스 신호. The multiplexed row and open dress signals for DRAM.
    * DQM:출력 핀. * DQM: output pin. 클럭 이후 SDRAM 출력을 하이 임피던스로 두고, 출력을 마스크하라.(이 핀은 동기 DRAM 인터페이스에 대해서만 사용한다.) With the SDRAM after the clock output into a high impedance, the output Do mask (the pin is only used for synchronous DRAM interface).
    * CS_I:출력 핀(액티브 로우). * CS_I: output pin (active low). 선택된 SDRAM 동작을 위해 디스에이블 또는 인에이블된다.(이 핀은 동기 DRAM 인터페이스에 대해서만 사용한다.) It is disabled or enabled for the selected SDRAM operation (the pin is only used for synchronous DRAM interface).
    * CLK:출력 핀. CLK *: output pin. 이는 동기 DRAM에 대한 클럭 출력 핀으로서, SDRAM에서만 사용되고 MSP의 시스템 클럭과 동일한 위상을 가진다. This is a clock output pin to a synchronous DRAM, SDRAM has been used only in the same phase as the system clock of the MSP.
    6.7 메모리 콘트롤러 타이밍도는 도 49 내지 51에 도시된 바와 같다. 6.7 a memory controller timing diagram is shown in FIG. 49 to 51. 도 49에 관련된 사항은 다음과 같다. Details relating to 49 are as follows.
    - 삼성의 SDRAM으로 가정. Home to the Samsung SDRAM.
    - 80MHz로 동작하는 메모리와 시스템. - memory and system operating at 80MHz.
    - 하나 또는 두개의 외부 SDRAM(1M*16). - one or two external SDRAM (1M * 16).
    - 메모리로부터 라인을 페치하기 위한 4/8 프로그래머블 랩 길이. - 8.4 programmable lap length to fetch the line from memory.
    - tRCD=3. - tRCD = 3.
    - tCAS=3. - tCAS = 3.
    - 내부 딜레이=2 클럭. - an internal clock delay = 2.
    - 메모리 레이턴시=8사이클(8*12.5=100ns). - memory latency = 8 cycles (8 * 12.5 = 100ns).
    - 메모리로부터의 시스템 데이터는 중재(독출 데이타)를 위해 2개 사이클 만큼 지연된다. System data from the memory is delayed by two cycles for arbitration (reads data).
    6.8 프로그래머블 모델 6.8 Programmable models
    프로그래머 측면에 메모리 콘트롤러에 관련된 제어 레지스터는 다음과 같다. Control registers related to the memory controller on the programmer side is as follows.
    6.8.1 SDRAM 리셋 레지스터(R/W) 6.8.1 SDRAM reset register (R / W)
    이 레지스터는 각각의 시스템 리셋 이후 리셋된다. This register is reset after each system reset. 이는 SDRAM 파워 온 시퀀스를 시작하는 reset_sdram 신호를 전달하는 1 비트 레지스터이다. This is a one-bit registers to pass reset_sdram signal to start the SDRAM power-on sequence. 시스템 리세시 이 레지스터는 1로 설정된다. When the system is recessed this register is set to one. SDRAM을 동작시키기 위해 소프트웨어에 의해 이 레지스터를 클리어시켜야 한다. In order to operate the SDRAM must clear this register by software.
    bit 0은 시스템 리셋으로 설정되고, SDRAM을 동작시키기 위해 클리어된다. bit 0 is set to the system reset, it is clear to operate the SDRAM.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b1011 Faddr [3: 0] = 4'b1011
    6.8.2 SDARM 버스트 타입 레지스터(R./W) 6.8.2 SDARM burst type register (R./W)
    이 레지스터는 SDRAM 버스트 타입을 프로그램한다. This register is to program the SDRAM burst type. 이는 순차적인 버스트 타입에 대해 제로로 프로그램되는 1 비트 레지스터이다. This is a one-bit register is programmed to zero for the sequence of burst type.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b1010 Faddr [3: 0] = 4'b1010
    bit 0은 시스템 리셋으로 설정되고, SDRAM을 동작시키기 위해 클리어된다. bit 0 is set to the system reset, it is clear to operate the SDRAM.
    6.8.3 SDRAM 리프레쉬 레지스터(R/W) 6.8.3 SDRAM refresh register (R / W)
    이 레지스터는 SDRAM 리프레쉬 값을 프로그램한다. This register is to program the SDRAM refresh value. 이는 FBUS를 통해 프로그램되는 12 비트 레지스터이다. This is a 12-bit register is programmed via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b1001 Faddr [3: 0] = 4'b1001
    bit 11-0은 시스템 리셋으로 설정되고, 4E0으로 리프레쉬 값으로 프로그램된다. bit 11-0 is set to the system reset, the program in the refreshing value as 4E0.
    6.8.4 SDRAM RAS 프리퍄지(tRP) 레지스터(R/W) 6.8.4 SDRAM RAS-free pyaji (tRP) register (R / W)
    이 레지스터는 SDRAM RAS 프리챠지 값을 프로그램한다. This register is to program the SDRAM RAS precharge value. 이는 FBUS를 통해 프로그램되는 3 비트 레지스터이다. This is a 3-bit register is programmed via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b1000 Faddr [3: 0] = 4'b1000
    bit 2-0은 시스템 리셋으로 설정되고, 1 또는 2 또는 3으로 프로그램된다. bit 2-0 is set to a system reset, the program is a 1 or 2 or 3;
    6.8.5 SDRAM CAS 레이턴시(tCAC) 레지스터(R/W) 6.8.5 SDRAM CAS latency (tCAC) register (R / W)
    이 레지스터는 SDRAM CAS 레이턴시를 프로그램한다. This register is to program the SDRAM CAS latency. 이는 FBUS를 통해 프로르램되는 3 비트 레지스터이다. This is a three-bit register which is Pro reuraem via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b0011 Faddr [3: 0] = 4'b0011
    bit 2-0은 시스템 리셋으로 설정되고, 1 또는 2 또는 3으로 프로그램된다. bit 2-0 is set to a system reset, the program is a 1 or 2 or 3;
    6.8.6 SDRAM RAS CAS 레이턴시(tRCD) 레지스터(R/W) 6.8.6 SDRAM RAS CAS latency (tRCD) register (R / W)
    이 레지스터는 SDRAM RCD 레이턴시를 프로그램한다. This register is to program the SDRAM RCD latency. 이는 FBUS를 통해 프로그램되는 3 비트 레지스터이다. This is a 3-bit register is programmed via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b0010 Faddr [3: 0] = 4'b0010
    bit 2-0은 시스템 리셋으로 설정되고, 1 또는 2 또는 3으로 프로그램된다. bit 2-0 is set to a system reset, the program is a 1 or 2 or 3;
    6.8.7 SDRAM WRAP LENGTH 레지스터(R/W) 6.8.7 SDRAM WRAP LENGTH register (R / W)
    이 레지스터는 데이터에 대한 SDRAM의 랩 길이를 프로그램한다. This register is programmed wrap length of SDRAM for data. 이는 FBUS를 통해 프로그램되는 3 비트 레지스터이다. This is a 3-bit register is programmed via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b0001 Faddr [3: 0] = 4'b0001
    bit 2-0은 시스템 리셋으로 설정되고, 1 또는 2 또는 4 또는 8로 프로그램된다. bit 2-0 is set to a system reset, the program in 1 or 2 or 4 or 8.
    6.8.8 SDRAM NOP TIME 레지스터(R/W) 6.8.8 SDRAM NOP TIME register (R / W)
    이 레지스터는 파워 온 시퀀스를 위한 SDRAM의 NOP 시간을 프로그램한다. This register is to program the time of NOP SDRAM for a power-on sequence. 이는 FBUS를 통해 프로그램되는 16 비트 레지스터이다. This is a 16-bit register is programmed via the FBUS.
    프로그래밍 어드레스: Programming address:
    Faddr[31:20]=12'h010 Faddr [31:20] = 12'h010
    Faddr[3:0]=4'b0000 Faddr [3: 0] = 4'b0000
    bit 15-0은 시스템 리셋으로 설정되고, 클럭 주파수에 따라서 200us로 프로그램된다. bit 15-0 is set to the system reset, the program in accordance with the clock frequency 200us.
    제7장 ASIC 인터페이스 Chapter 7 ASIC interface
    이 장은 ASIC 인터페이스 유니트의 스펙을 설명한 것이다. This chapter sets forth the specifications of the ASIC interface unit.
    7.1 개요 7.1 Overview
    ASIC 인터페이스 유니트(도 52 참조)는 하나의 프로그래머블 32 비트 DMA, (See Fig. 52) ASIC interface unit is a programmable 32-bit DMA,
    여러개의 FIFO와 제어 블록을 가진다. Have a number of FIFO and control blocks. ASIC 인터페이스 블록은 80MHz로 동작하는 메인 시스템 버스(FBUS)와, MSP, AD1843(오디오, 전화), KS0122(비디오 캡쳐), KS0119와 VGA를 인터페이스하는 CODEC 인터페이스 블럭을 인터페이스한다. ASIC interface block interface a main system bus (FBUS) and, MSP, AD1843 (audio, phone), KS0122 CODEC interface block for the interface (video capture), KS0119 and VGA operating at 80MHz. 현재의 가정은 임의의 동기화 문제를 피하기 위하여 모든 CODEC 인터페이스와 DMA 콘트롤러를 완전한 FBUS 속도로 동작시키는 거이다. The current assumption is going to operate all of the CODEC interface and DMA controller to avoid any synchronization issues with FBUS full speed.
    커스터머 ASIC 블록은 3개의 주요 섹션:FBUS 마스터/슬레이브 인터페이스, MSP 8-채널 DMA 콘트롤러와 실제의 CODEC을 가진다. Keoseuteomeo ASIC block comprises three main sections: FBUS has a master / slave interface, MSP 8- channel DMA controller and the actual CODEC. 데이터는 FBUS로부터 CODEC으로 전달되거나, CODEC으로부터 FBUS로 전달된다. Data may be transmitted to the CODEC from the FBUS, it is transmitted to the FBUS from the CODEC. 그러나, 어드레스는 오로지 DMA 콘트롤러로부터 발생된다. However, the address is only generated from the DMA controller. 그러면, 이 어드레스는 FBUS 인터페이스 유니트로 매핑된 FBUS 일 수 있다. Then, the address may be mapped to the FBUS FBUS interface unit. 다른 FBUS 노드로부터의 모든 기입은 오로지 CODEC 섹션에 있는 레지스터만 프로그램한다. All writing to a different FBUS node is only the program that registers in the CODEC section. 다른 모든 트래픽에서는 사이즈 및 ID 정보를 가진 응신을 독출해야 한다. All other traffic should read the acknowledgment with the size and ID information. FBUS 스펙을 참조할 것. FBUS Refer to specifications.
    다음은 ASIC 인터페이스 유니트에 대한 특징이다. The following is a feature of the ASIC interface unit.
    * 32 비트 기본 DMA 기능을 지원(8개의 채널--각 CODEC에 대하여 하나씩). * 32-bit DMA support basic functions (eight channels - one for each CODEC).
    * 2개의 4딥 * 64 비트 데이터 FIFO. * 2 4 * 64-bit deep data FIFO.
    * 1개의 1딥 * 52 비트 리퀘스트 FIFO. * 1 * 1 52-bit deep FIFO request.
    * 1개의 2딥 * 52 비트 응신 FIFO. 1 * 2 * 52 bits deep acknowledgment FIFO.
    * FBUS와 CODEC 인터페이스 블록을 위한 마스터/슬레이브를 지원. * Support for master / slave for FBUS and CODEC interface block.
    * 동작 주파수:80MHz까지. * Operating frequency: up to 80MHz.
    * 메모리에 대한 IO, IO에 대한 메모리 간의 억세스 지원. * Access support between memory on IO, IO to memory.
    * KS0119용으로 사용되는 채널 0을 위한 최상위 우선순위 지원. * Top-priority support for channel 0 is used for KS0119.
    * KS0119에 대하여 고성능을 실현하기 위해 특수 어드레스 버스 지원. Special address bus support in order to realize high performance with respect to * KS0119.
    이 커스터머 인터페이스 로직은 3개의 서로 다른 CODEC을 지원한다. The keoseuteomeo interface logic supports three different CODEC.
    * 오디오 및 전화 CODEC(AD18/43). - audio and telephone CODEC (AD18 / 43). 이 CODEC은 DMA 콘트롤러와 통신하는 양방향 64 비트 데이터 버스를 가진다. The CODEC has a bidirectional 64-bit data bus to communicate with the DMA controller. (채널 4→DAC1, 채널 5→DAC2, 채널 6→ADC 레프트, 채널 7→ADC 라이트) (Channel 4 → DAC1, DAC2 → channel 5, channel 6 → left ADC, ADC channel 7 → light)
    * 비디오 캡쳐 CODEC(KS0122). * Capture Video CODEC (KS0122). 이 CODEC은 양방향 64 비트 데이터 버스를 가지며, DMA(채널 2)에 대하여 M→IO, IO→M 리퀘스트를 초기화할 수 있다. The CODEC has a bidirectional 64-bit data bus, it is possible to initialize the M → IO, IO → M request with respect to the DMA (channel 2).
    * 비디오 벡엔드(backend) CODEC(KS0119). * Video backend (backend) CODEC (KS0119). 이 CODEC은 메모리 콘트롤러로부터 데이터를 직접 수신한다.(채널 0) The CODEC receives data directly from the memory controller (channel 0)
    ASIC 인터페이스 블록 ASIC interface block
    7.2 직접 메모리 억세스(DMA) 콘트롤러 7.2 Direct Memory Access (DMA) controller
    DMA 콘트롤러는 어드레스 발생 및 해석을 위해 사용되는 레지스터들을 가진다. DMA controller has the registers used for address generation and interpretation. 이 DMA 콘트롤러는 8개의 독립적인 채널을 가진다. The DMA controller has eight independent channels. 각 채널은 현재 어드레스 레지스터와 정지 어드레스 레지스터를 가진다. Each channel has a current address register and a stop address register. 시작 및 정지 어드레스 레지스터는 배치 블록을 통해 미리 프로그램된다. Start and stop address register is pre-programmed with the block arrangement. 현재 어드레스 레지스터는 8개의 CODEC 중 하나로부터 DMA 리퀘스트가 발생할 때마다 로드된다. The current address register is loaded each time a DMA request occurs from one of the eight CODEC. 일단 FBUS가 억세스를 승인하면, 이 DMA 어드레스는 현재 어드레스가 정지 어드레스 레지스터와 매치될때까지 매 사이클마다 증가한다. Once FBUS accepts the access, and the DMA address is incremented every cycle until the current address and the stop address register when the match. 그 시점에서 DMA 콘트롤러가 신호 EOP(End Of Process)를 발생한다. At that point, and it generates a DMA controller a signal (End Of Process) EOP. 이 신호는 프로세스로 인터럽트를 유발한다. This signal causes an interrupt to the process. 8개의 모든 DMA 채널은 멀티플렉서와 어레스 비교 블록을 제어하는 공통의 중재 유니트를 가진다. All eight DMA channel has a common arbitration unit for controlling the multiplexer and the control response is compared to the block.
    이 DMA 콘트롤러는 IO와 메모리, 메모리와 IO, 메모리와 메모리 사이의 억세스를 지원한다. The DMA controller supports access between memory and IO, memory and IO, memory and a memory. CODEC이 DMA와 통신하고자 할때마다 CODEC은 DMA_REQ 신호를 표시하고, DMA로부터 DMA 인지신호인 DACK를 기다린다. Each time CODEC want to communicate with the DMA CODEC displays DMA_REQ signal, waits for the DMA that the signal DACK from the DMA. 일단 인지되면, CODEC은 M-IO 신호와 데이터를 구동한다. Once recognized, CODEC drives the M-IO signal and the data. DMA 콘트롤러는 승인된 "DACK"에 따라서 적절한 채널을 선택한다. DMA controller selects the appropriate channel according to the acknowledgment "DACK". 블록도 참조할 것. Block refer to Figure.
    7.3 DMA 레지스터 설명 7.3 DMA Register Description
    7.3.1 현재 어드레스 레지스터 7.3.1 the current address register
    각 채널은 모든 어드레스가 8 바이트로 배열될 것을 요구하는 29 비트 현재 어드레스 레지스터(bits〈31:3〉)를 가진다. Each channel current 29 bit requesting that all addresses be arranged in an 8-byte address register: has the (bits <31 3>). 사실상, 이 레지스터는 29 비트 카운터이다. In effect, the register is a 29 bit counter. 이 레지스터는 ARM7에 의해 독출되며, 초기값은 FBUS를 통해 ARM7로부터 로드된다. This register is read by the ARM7, the initial value is loaded from the ARM7 through the FBUS. 이 어드레스는 데이터 전송 사이즈에 근거하여 증가된다. The address is incremented based on the data transfer size. 현재 어드레스 레지스터에 있는 어드레스는 멀티플렉서를 통해 FBUS상의 어드레스를 로드하기 위하여 어드레스 발생 블록으로 전송된다. Address in the current address register is transferred to the address generation block to load the address on the FBUS via a multiplexer. 현재 어드레스 레지스터는 아이들 상태에서는 어드레스 값을 홀드시킨다. The current address register is then holds the address value in the idle state.
    7.3.2 정지 어드레스 레지스터 7.3.2 stop address register
    각 채널은 모든 어드레스가 8 바이트로 배열될 것을 요구하는 29 비트 정지 어드레스 레지스터(bits〈31:3〉)를 가진다. Each channel is all of the address is 29-bit address registers still required to be arranged in an eight-byte: has the (bits <31 3>). 이 레지스터에는 FBUS를 통해 ARM7에 의해 기입된다. This register is written by the ARM7 through the FBUS. 이 값들은 비교 블록에서 현재 어드레스와 비교하는데 사용된다. These values ​​are used to compare to the current address in the comparison block.
    만약 현재 어드레스가 정지 어드레스와 일치하면, DMA 콘트롤러는 각 채널에 대해 EOP 신호를 발생시킨다. If the current address matches a stop address, DMA controller to generate an EOP signal for each channel.
    7.3.3 스테이터스 레지스터 7.3.3 Status Register
    이 레지스터는 각 채널이 정지 어드레스에 도달하였는지 여부를 나타내는 정보를 저장한다. The register stores information indicating whether or not each channel reaches the stop address. Bits〈7:0〉은 어느 채널이 정지 어드레스에 도달하였는지를 규정하고, ARM7이 CCU를 통해 현재 어드레스 레지스터를 초기화하였을때 리셋된다. Bits <7: 0> is reset when any channel has reached a specified hayeoteul the stop address, and, the ARM7 initialize the current address register through the CCU.
    이 레지스터는 ARM7에 의해 독출되며, ARM7은 이 레지스터를 기입할 수 없다. This register is read by the ARM7, ARM7 can not write this register.
    7.3.4 제어 레지스터 7.3.4 Control Register
    이 레지스터는 DMA 콘트폴러의 동작에 대한 정보를 저장한다. This register stores information about the operation of the DMA contrail Poller. Bits〈7:0〉는 어느 DMA 채널이 동작을 위해 인에이블되었는지를 규정한다. Bits <7: 0> defines whether a certain DMA channel is enabled for operation. 이 비트들은 해당하는 채널이 정지 어드레스에 도달할때마다 리셋되고, ARM7은 동작을 재개시하기 위해서 이 비트들을 설정한다. The bits are reset each time the corresponding channel reaches the stop address, ARM7 shall set these bits to re-initiate operation. 임의의 채널 인에이블 비트가 0인 경우, DMA는 비록 CODEC이 DMA로 DMA로 DMA_REQ를 보내더라도 해당 CODEC으로 DMA_ACK를 보내지 않는다. If any channel enable bit is a 0, the DMA even if the CODEC send DMA_REQ by DMA to the DMA may not send a DMA_ACK to the CODEC. Bits〈19:16〉은 DMA 채널 중 어느 쌍이 더블-버퍼로서 동작하기 위하여 같이 연결되어 있는지를 규정한다. Define a connection, such that it is to operate as a buffer - Bits <19:16> is any of the DMA channel pair is double. 예를들어, 채널 0과 채널 1이 더블-버퍼로 연결되어 있는 경우, 채널 0의 현재 어드레스가 정지 어드레스에 도달한 경우 DMA 콘트롤러는 자동적으로 채널 1을 절환하고, 채널 1의 현재 어드레스가 정지 어드레스에 도달한 경우 DMA 콘트롤러는 자동적으로 채널 0을 절환한다. For example, the channel 0 and channel 1 is double-case which is connected to the buffer, if the current address of the channel 0 reaches a stop address DMA controller automatically and to switch the channel 1 and the stop address are the address of the channel 1 If it has reached the DMA controller automatically switches the channel to zero. Bit〈28:21〉은 각 채널의 독출/기입 모드에 관련된 정보를 저장한다. Bit <28:21> stores information related to the read / write mode of the respective channels. 만약 이들 비트 중 임의의 비트가 ARM7에 의해 1로 설정되면, 해당 채널은 독출 동작을 위해 사용되고, 나머지 채널들은 기입 동작을 위해 사용된다. If these bits of the random bit is set to 1 by the ARM7, the channel is used for a read operation, and the remaining channels are used for the address operation. Bir〈31〉은 DMA가 EOP 신호를 인터럽트 콘트롤러로 보내었는지 여부를 규정한다. Bir <31> defines whether the DMA whether to send a signal to the EOP interrupt controller. 만약 이 비트가 "0"이면, DMA는 임의의 채널이 정지 어드레스에 도달하더라도 EOP를 보내지 않는다. If this bit is "0", DMA, even if any of the channel reaches a stop address does not send the EOP.
    7.3.5 마스크 레지스터 7.3.5 Mask register
    제어 레지스터에 있는 각 비트는 마스크 레지스터에 있는 마스트 비트와 연결되어 있다. Each bit in the control register is connected to the mast and the bits in the mask register. 마스트 비트가 "0"이면, 제어 레지스터에 있는 해당 비트가 업데이트되는 것을 방지한다. If the mast bit is "0", thereby preventing the corresponding bit in the control register is updated. 초기에는 이 레지스터〈31:0〉은 FFFFFFFF(hex)로 설정된다. Initially, the registers <31: 0> is set to FFFFFFFF (hex).
    7.3.6 프로그래밍 7.3.6 Programming
    시작 및 정지 어드레스는 FBUS를 통해 ARM7에 의해 프로그램된다. Start and stop addresses are programmed by the ARM7 via the FBUS.
    FBUS 매핑값은 다음과 같다. FBUS mapping values ​​are as follows:
    CCU → 0040_0000-007F_FFFF, CCU → 0040_0000-007F_FFFF,
    MCU → 0080_0000-047F_FFFF, MCU → 0080_0000-047F_FFFF,
    PCI → 0840_0000-FFFF_FFFF. PCI → 0840_0000-FFFF_FFFF.
    어드레스 프로그래밍에 있어서, Address[26:0]은 테이블 18에 근거하여 설정된다. In the address programming, Address [26: 0] is set on the basis of the table 18.
    [테이블 18] [Table 18]
    DMA 레지스터 어드레스 맵 DMA Register Address Map
    [테이블 19] [Table 19]
    스테이터스 레지스터의 엔코딩 Encoding of status register
    [테이블 20] [Table 20]
    제어 레지스터의 엔코딩 Encoding of the control register
    7.4 CODEC 초기화 7.4 CODEC initialization
    커스터머 ASIC 유니트는 각 CODEC의 초기화를 지원한다. Keoseuteomeo ASIC unit supports initialization of each CODEC. 실질적으로는, ARM7이 커스터머 ASIC 유니트를 통한 CODEC 초기화를 담당한다. Substantially, the ARM7 is responsible for initialization via the CODEC keoseuteomeo ASIC unit.
    커스터머 ASIC 유니트의 각 CODEC에 대한 리퀘스트 신호를 발생시키기 위한 어드레스 디코더를 가지고 있다. It has an address decoder for generating a request signal for each of the CODEC keoseuteomeo ASIC unit. 커스터머 ASIC 유니트는 임의의 CODEC과 통신하고자 할때마다, CODEC으로 리퀘스트 신호를 보내고 CODEC으로부터 인지신호를 기다린다. Keoseuteomeo ASIC unit every time you want to communicate with any of the CODEC, the CODEC send the request signal wait for the signal or from the CODEC. 인지 신호를 수신한 후, 커스터머 ASIC 유니트는 데이터와 어드레스를 CODEC으로 보낸다. After receiving the recognition signal, keoseuteomeo ASIC unit sends the data to the address in CODEC.
    ARM7이 CCU를 통해 임의의 CODEC에 있는 배치 데이터를 읽고자 하는 경우, 커스터머 ASIC 유니트는 어드레스를 CODEC으로 보낸다. If the ARM7 to read the data placed in any CODEC through the CCU, keoseuteomeo ASIC unit sends the address to the CODEC. 커스터머 ASIC 유니트는 CODEC으로부터 데이터를 수신하면 트랜잭션 Ⅸ)를 CCU를 반송한다. Keoseuteomeo ASIC unit receives the data from the CODEC and returns the transactional Ⅸ) CCU. 이 시점에서, 배치 데이터가 CCU를 통해 ARM7로 전송된다. At this point, the batch data is transferred to the ARM7 through the CCU.
    (테이블 21) (Table 21)
    CODEC 배치 레지스터 FBUS 어드레스 맵 CODEC configuration registers FBUS address map
    도 53은 커스터머 ASIC 회로망을 나타낸 것이다. Figure 53 shows the keoseuteomeo ASIC circuitry.
    4. I/O 핀 정의 4. I / O pin definitions
    (테이블 22) (Table 22)
    커스터머 ASIC 유니트에 대한 I/O 핀 정의 I / O pin definitions for the ASIC unit keoseuteomeo
    제 8 장 AD1843 CODEC 인터페이스 Chapter 8 AD1843 CODEC interface
    8.1 8.1
    이 장은 AD1843 CODEC 인터페이스에 대하여 설명한 것이다. This chapter will be described for the AD1843 CODEC interface.
    8.2 개요 8.2 Overview
    AD1843 CODEC 인터페이스 블록은 AD8143 시리얼 버스와 MSP DMA 모듈 사이의 인터페이스를 위한 것이다. AD1843 CODEC interface block is to the interface between the serial bus and the AD8143 MSP DMA module. AD1843은 시리얼 포트를 통하여 데이터 및 제어/스테이터스 정보를 송신 및 수신한다. AD1843 transmits and receives data and control / status information through the serial port. AD1843은 시리얼 인터페이스를 담당하는 4개의 핀 : SDI, SDO, SCLK, SDFS를 가진다. AD1843 is a four-pin carrying the serial interface has a SDI, SDO, SCLK, SDFS. SDI 핀은 AD1843에 대한 시리얼 데이터 입력을 위한 것이고, SDO 핀은 AD1843로부터의 시리얼 데이터 출력을 위한 것이다. SDI pin is for serial data input for the AD1843, SDO pin is for serial data output from the AD1843. SCLK 핀은 시리얼 인터페이스 클럭을 위한 것이다. SCLK pin is for serial interface clock.
    AD1843 내부와 외부의 통신에서 데이터 비트는 SCLK의 상승에지 이후 전송되고, SCLK의 하강 에지에서 샘플링될 것을 요구한다. AD1843 in internal and external communication data bits are transmitted after the rising edge of SCLK, it requires that sampled on the falling edge of SCLK. SDFS 핀은 시리얼 인터페이스 프레임 동기를 위한 것이다. SDFS pin is for serial interface frame synchronization. AD1843 CODEC 인터페이스는 마스터 모드에 기초한 것으로서, 이는 SCLK와 SDFS 신호가 AD1843에 의해 발생되어짐을 의미한다. AD1843 CODEC interface, as based on the master mode, this means that the doeeojim SDFS SCLK and the signal generated by the AD1843. 디폴트 SCLK 주파수는 12.288MHz이고, 하나의 프레임 사이클은 48KHz이다. The default SCLK frequency is 12.288MHz, a single frame cycle is 48KHz.
    CODEC 인터페이스의 기본 구조는 DMA에 기초를 둔 것이다. The basic structure of the CODEC interface is based on the DMA. AD1843 인터페이스는 4개의 서로 다른 DMA 채널 : DAC1에 대한 채널 4, DAC2에 대한 채널 5, ADC 레프트에 대한 채널 6, ADC 라이트에 대한 채널 7을 지정한다. It specifies a channel for a four DAC1, DAC2 of the channel 5, the channel on the left ADC 6, ADC channel 7 for light: AD1843 interface four different DMA channel. DMA로부터 또는 DMA로의 채널 전송의 사이즈는 1회에 64비트이다. Size of the channel DMA transfer to or from the DMA is a 64-bit at a time. 그러므로, DMA 채널 4와 채널 5는 2개의 서로 다른 32비트 데이터(레프트를 위한 16비트와 라이트를 위한 16비트)를 전송한다. Therefore, DMA Channel 4 and Channel 5 transfers two different 32-bit data (16 bits for 16-bit and the light for the left). 한편, DMA 채널 6과 채널 7은 1회에 4개의 서로 다른 16비트 데이터를 CODEC 인터페이스로부터 SDRAM으로 보낸다. On the other hand, DMA Channel 6 and Channel 7 is sent to four different 16-bit data at a time from the CODEC to the SDRAM interface.
    DAC1과 DAC2 인터페이스는 각 채널의 플래그 비트가 설정되었을 때 데이터가 유효하다는 것을 인식한다. DAC1 and DAC2 interface is configured to recognize that the data is valid when the flag bit of each channel is set. DAC1과 DAC2 인터페이스는 플래그 비트를 체킹한 다음 DMA를 요청한다. DAC1 and DAC2 interface by checking the flag bit and then requests the DMA. 플래그 비트가 리셋되면, DAC1과 DAC2 인터페이스 DMA 리퀘스트를 발생시키지 않는다. If the flag bit is reset, it does not generate a DAC1 and DAC2 interface DMA request. 플래그 비트의 실제 동작은 DMA 클럭에 의해 제어된다. The actual operation of the flag bit is controlled by the DMA clock. DMA 블록은 플래그 비트가 리셋되면 DMA 인지신호를 발생시키지 않는다. DMA block does not generate a signal that the DMA when the flag bit is reset. ADC 레프트 및 라이트의 FIFO가 차 있지 않으면, DMA 리퀘스트는 발생되지 않는다. If the ADC FIFO is no difference between the left and light, DMA request is not generated. 소프트웨어는 ADC 플래그 레지스터를 체크하여, 데이터 버스를 통해 남아있는 데이터를 독출해야 한다. The software checks the ADC flag register, you must read the remaining data over the data bus. 데이터 버스를 통해 이들 데이터를 독출한 다음, FIFO는 비게 되고, FIFO가 차게 되면 DMA 리퀘스트를 발생시킨다. Next, FIFO exported poison these data through the data bus is empty, when the FIFO is full and generates a DMA request.
    AD1843 제어 레지스터는 제어 워드 입력에 있는 제어 레지스터 어드레스와 함께 독출/기입 리퀘스트를 전송함으로써 독출 및 기입된다. AD1843 control register is read out and written by transmitting a read / write request with the address control register in the control word input. 독출이 요청되면, 어드레싱된 제어 레지스터의 내용은 다음 프레임 동안 전송되고, 기입이 요청되면, 기입되어질 데이터는 AD1843 슬롯 1로 전송되어야 한다. When the read request, the contents of the addressed control register may be sent in the next frame, when the write request, data to be written is to be transmitted to the AD1843 slot. MSP의 성능을 향상시키기 위하여, 프로그래머는 CODEC에 있는 제어 레지스터를 독출 또는 기입하기 이전에 제어 플래그 레지스터를 체크해야 한다. In order to improve the performance of the MSP, the programmer must check the control flag register prior to reading or writing to a control register in the CODEC. 제어 플래그 레지스터의 플래그 비트가 설정되면, CODEC 레지스터의 독출 및 기입 동작이 가능하다. If the flag bit is set in the flag register control, it is possible to read and write operations of the CODEC register.
    8.3 DMA 채널 지정 8.3 Specify the DMA channel
    DMA 채널 4 DAC1 레프트, 라이트 DMA Channel 4 DAC1 left, light
    DMA 채널 5 DAC2 레프트, 라이트 DMA Channel 5 DAC2 left, light
    DMA 채널 6 DAC 레프트 DMA channel 6 DAC left
    DMA 채널 7 DAC 레프트 DMA channel 7 DAC left
    8.4 DMA에 대한 데이터 포맷 Data format for the 8.4 DMA
    데이터 사이즈는 64비트이며, 다음과 같이 구성된다. The data size is 64 bits, and is configured as follows.
    8.5 기본 어드레스 8.5 the base address
    04CO_4000 DAC1 BASE 04CO_4000 DAC1 BASE
    04CO_5000 DAC2 BASE 04CO_5000 DAC2 BASE
    04CO_6000 ADCL BASE (레프트 채널) 04CO_6000 ADCL BASE (left channel)
    04CO_7000 ADCR BASE (라이트 채널) 04CO_7000 ADCR BASE (light channel)
    8.6 레지스터 맵 8.6 Register Map
    8.7 레지스터 정의 8.7 Register Definition
    8.7.1 제어 레지스터 기입 데이터 입력 8.7.1 Control Register write data input
    최상위비트(MSB)는 전송되어진 최초 데이터 입력 비트이다. The most significant bit (MSB) is the first type data bits been sent.
    8.7.2 제어 워드 입력 8.7.2 Control input word
    r/w 독출/기입 리퀘스트. r / w read / write request. 제어 레지스터로부터의 독출 또는 제어 레지스터로의 기입이 매 프레임마다 발생한다. This occurs each time writing of each frame to the read or control registers from the control register. "1"로 설정한 것은 제어 레지스터 독출을 나타내는 반면, 이 비트를 "0"으로 리셋시키는 것은 제어 레지스터 기입을 나타낸다. While it is set to "1" indicating the control register read out, it is resetting the bit to "0" indicates a control register write.
    ia4:0 독출 또는 기입을 위한 제어 어드레스 레지스터 ia4: 0 read or controlling the address register for writing
    8.7.3 제어 레지스터 데이터 출력 8.7.3 Control Register Data output
    이전 프레임에서 어드레싱된 제어 레지스터의 내용 The contents of the control register addressed in the previous frame
    8.7.4 ADC 플래그 레지스터 8.7.4 ADC flag register
    r4v-rlv 유효 ADC 라이트 데이터가 버퍼에 있다. r4v-rlv effective light ADC data is in the buffer. 버퍼에 있는 어느 데이터가 유효한지를 지시한다. It indicates whether any data in the buffer is valid.
    r4v-1lv 유효 ADC 레프트 데이터가 버퍼에 있다. r4v-1lv valid ADC data is left in the buffer. 버퍼에 있는 어느 데이터가 유효한지를 지시한다. It indicates whether any data in the buffer is valid.
    8.7.5 ADC 레프트 첫 번째 데이터 8.7.5 ADC Left First Data
    버퍼에 있는 ADC 레프트 첫 번째 데이터 ADC left in the first data buffer
    8.7.6 ADC 레프트 두 번째 데이터 8.7.6 ADC left second data
    버퍼에 있는 ADC 레프트 두 번째 데이터 Left ADC second data in the buffer
    8.7.7 ADC 레프트 세 번째 데이터 8.7.7 ADC left third data
    버퍼에 있는 ADC 레프트 세 번째 데이터 ADC left third data in the buffer
    8.7.8 ADC 레프트 네 번째 데이터 8.7.8 ADC Left fourth data
    버퍼에 있는 ADC 레프트 네 번째 데이터 ADC Left fourth data in the buffer
    8.7.9 제어 플래그 레지스터 8.7.9 the control flag register
    wfl 제어 레지스터 기입 플래그. Flag writing wfl control register. 설정되면 CODEC은 제어 레지스터 데이터를 수신할 준비를 한다. If set CODEC shall be prepared to receive the control data register.
    rfl 제어 레지스터 독출 플래그. rfl control register read flag. 설정되면 CODEC은 제어 레지스터 데이터를 전송할 준비를 한다. If set CODEC is ready to transmit data control register.
    제 9 장 비디오 코덱 Chapter 9 video codec
    9.1 개요 9.1 Overview
    비디오 코덱 로직은 평가(evaluation) 보드 상의 KS0119와 KS0122 칩에 대해 인터페이스하고, MSP 칩에 있는 DMA 모듈에 대해 인터페이스한다. Video codec logic evaluation (evaluation) interface for KS0119 and KS0122 chips on the board, and the interface to the DMA module in the MSP chip. KS0119 코덱은 또한 스크린 리프레쉬 동작을 제공한다. KS0119 codec also provides a screen refresh operation. 이 동작을 위해 MCU 모듈에 대한 직접적인 데이터 경로가 도 54와 같이 구현된다. For this behavior is a direct data path to the MCU module is implemented as shown in Figure 54.
    9.2 상위 모듈 정의 9.2 Top Module Definition
    상위 모듈은 도 55에서와 같은 3개의 서브 모듈을 가진다. The upper module has three sub-modules as in Figure 55.
    - KS0119 스크린 리프레쉬 모듈 - KS0119 screen refresh module
    - KS0122 비디오 데이터 캡쳐 모듈 - KS0122 video data capture module
    - KS0119 및 KS0122 칩 배치 레지스터를 억세스하는 3-와이어 시리얼 호스트 인터페이스 모듈 - KS0119 and KS0122 3- wire serial host interface module for accessing the chip configuration registers
    9.3 DMA 채널 지정 9.3 Specify the DMA channel
    DMA CH0 KS0119 코덱 DMA CH0 KS0119 codec
    DMA CH1 예약 DMA CH1 Reservations
    DMA CH2 KS0122 코덱 DMA CH2 KS0122 codec
    DMA CH3 예약 DMA CH3 Reservations
    DMA CH4 AD1843 오디오 코덱 DMA CH4 AD1843 audio codec
    DMA CH5 AD1843 오디오 코덱 DMA CH5 AD1843 audio codec
    DMA CH6 AD1843 오디오 코덱 DMA CH6 AD1843 audio codec
    DMA CH7 AD1843 오디오 코덱 DMA CH7 AD1843 audio codec
    DMA CH8 예약 DMA CH8 Reservations
    DMA CH9 예약 DMA CH9 Reservations
    9.4 3-와이어 호스트 인터페이스 모듈 9.4 3-Wire host interface module
    이 모듈은 칩 내부의 모든 레지스터가 시리얼 인터페이스를 통해 억세스되는 KS0119와 KS0122 칩에 대하여 인터페이스한다. The module interface to KS0119 and KS0122 chip, all internal registers of the chip to be accessed through a serial interface. 3 와이어 시리얼 인터페이스 모듈은 이 칩들에 통신 프로토콜의 기능을 지원하며, KS0119와 KS0122 인터페이스 로직을 위한 레지스터를 포함한다. 3 wire serial interface module supports the function of the communication protocol on the chips, and includes a register for the KS0119 and KS0122 interface logic. 도 3을 참조할 것. Refer to Figure 3.
    9.5 EPROM 인터페이스 9.5 EPROM interface
    KS0119 IO 핀들은 시스템이 리셋된 후 바로 프로그램 데이터를 로드하는데 사용되며 MSP-1EX 부트 초기화의 일부인 외부 EPROM에 대한 인터페이스로 사용된다. KS0119 IO pins are used to directly load the program data after the system reset is used as an interface to the external part of the MSP-1EX EPROM boot initialization. 좀 더 상세한 것은 핀 지정을 참조할 것. The more detailed you can see the pin assignment.
    EPROM은 C0 000H에서 DF FFFH까지의 어드레스로 매핑된 메모리이다. EPROM is a memory-mapped to an address in the C0 000H to FFFH DF.
    9.6 KS0119 레지스터 설명 9.6 KS0119 Register Description
    KS019는 04B0 0000과 동일한 기본 어드레스 CODEC_REQO를 가지며, 이는 04DBF FFFF까지 확장된다. KS019 have the same base address CODEC_REQO and 04B0 0000, which extends to 04DBF FFFF.
    9.6.1 KS0119 레지스터 어드레스 맵 9.6.1 KS0119 register address map
    KS0119 레지스터 어드레스 맵 KS0119 register address map
    9.6.2 프레임 사이즈 레지스터 9.6.2 Frame Size Register
    이 레지스터는 도 57에 도시된 바와 같이, CODEC 칩으로 전송되는 프레임 사이즈를 제어하며, 최소 프레임 길이는 3바이트이다. This register is as shown in Figure 57, controls the frame size that is transferred to the CODEC chip, a minimum frame length of 3 bytes.
    9.6.3 칩 ID 레지스터 9.6.3 chip ID register
    이 레지스터는 CODEC 칩 ID 값을 저장하는데, KS0119 기입에 대해서는 03H, KS0119 독출을 위해서는 83H를 저장한다. This register stores in order to 83H 03H, KS0119 read out for, KS0119 written to store ID CODEC chip value.
    9.6.4 제어/데이타 레지스터 9.6.4 Control / Data Register
    이 레지스터는 다음번 전송되는 바이트가 레지스터 인덱스 또는 데이터 바이타라는 사실을 CODEC 칩 KS0119에 전해준다. This register allows the former to the fact that the next byte transfer of data or index registers bayita the CODEC chip KS0119. KS0119에 대하여, 08H는 다음번 바이트가 인덱스임을, 09H는 다음번 바이트가 데이터임을 나타낸다. About KS0119, 08H is that the next byte is an index, 09H indicates that the next byte of data.
    9.6.5 인덱스/데이타 0 레지스터 9.6.5 Index / Data register 0
    이 레지스터는 이전 바이트로 전송된 값에 따라서, CODEC 칩 배치 레지스터에 대한 인덱스 값 또는 데이타 0 바이트를 저장한다. This register, store the index value or a zero-byte data to the CODEC chip configuration registers according to the value sent by the previous byte. 프로그래밍 참조부의 통신 프로토콜 참조할 것. I can see the communication protocol unit programming reference.
    9.6.6 데이터 1 레지스터 9.6.6 Data register 1
    이 레지스터는 CODEC 레지스터 Index+1에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 1.
    9.6.7 데이터 2 레지스터 9.6.7 Data Register 2
    이 레지스터는 CODEC 레지스터 Index+2에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 2.
    9.6.8 데이터 3 레지스터 9.6.8 Data Register 3
    이 레지스터는 CODEC 레지스터 Index+3에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 3.
    9.6.9 KS0119 로직 제어 레지스터 9.6.9 KS0119 logic control registers
    KS0119 제어 레지스터에 대한 비트 지정은 도 58에 도시된 바와 같다. KS0119 bit assignment for the control register is as shown in Figure 58.
    9.6.10 HS 및 VS 극성 9.6.10 HS and VS polarity
    이 레지스터는 수평 동기와 수직 동기신호의 극성을 정의한다. This register defines the polarity of the horizontal sync and vertical sync signals. 0 값은 액티브 로우로 정의되는 반면, 1 값은 액티브 하이로 정의된다. A value of zero, while the definition in active low, a value of 1 is defined as active high. 비트 지정은 다음과 같다. Bit designation is as follows.
    Bit 0 : VS 극성 Bit 0: VS polarity
    Bit 1 : HS 극성 Bit 1: HS polarity
    9.6.11 HS 오프셋 9.6.11 HS offset
    액티브 신호는 이 오프셋 값 이후 발생되며, 이 오프셋 값은 00H로 정의된다. The activating signal is generated since the offset value, the offset value is defined as 00H.
    9.6.12 VS 오프셋 9.6.12 VS offset
    액티브 신호는 이 오프셋 값 이후 발생되며, 이 오프셋 값은 00H로 정의된다. The activating signal is generated since the offset value, the offset value is defined as 00H.
    9.6.13 스테이터스 레지스터는 도 59에 도시된 바와 같다. 9.6.13 Status Register is shown in Figure 59.
    9.6.14 독출 데이터 시리얼 인터페이스 레지스터 9.6.14 read data serial interface registers
    이 레지스터는 독출 플래그가 비지(busy) 상태에서 준비(reasdy) 상태로 천이를 나타낸 다음, 시리얼 포트로부터의 유효 데이터를 저장한다. This register is a read flag is stored in the valid data from the next, Serial showing the transitions to the ready (reasdy) in the busy state (busy) state.
    9.6.15 독출 PROM 데이터 레지스터 9.6.15 PROM read data register
    이 레지스터는 PROM 플래그가 준비 상태인 경우 유효 데이터를 저장한다. This register stores the valid data flag if the PROM is ready.
    9.6.16 프로그래밍 레퍼런스 9.6.16 Programming Reference
    9.6.16.1 배치 및 초기화 9.6.16.1 deployment and initialization
    비디오 디스플레이 하드웨어는 두 가지 모드 즉, VGA 오버레이 모드와 VGA 에뮬레이션 모드로 동작하도록 제어된다. Video display hardware is controlled to operate in two modes, i.e., VGA overlay mode and the VGA emulation mode.
    이 모드 동작은 로직 제어 레지스터에 있는 비트를 설정하는 것에 의해 제어된다. In this mode, operation is controlled by setting a logic bit in the control register.
    MSSEL : VGA 오버레이 모드인 경우 0, MSSEL: If the VGA overlay mode 0,
    VGA 에뮬레이션 모드인 경우 1. If one VGA emulation mode.
    VGA 오버레이 모드에서는 PC 시스템상에 VGA 카드가 존재할 것이 요구된다. The VGA overlay mode, the VGA card is required to reside on the PC.
    - 모니터 케이블은 MSP 카드에 연결된다. - monitor cable is connected to the MSP card.
    - 지원되는 VGA 해상도는 800 * 600 까지이다. - VGA resolution supported is 800 to 600 *.
    디스플레이 버퍼는 VGA 세팅에서와 같은 사이즈일 것이 요구된다. Display buffer is required to be the same size as the setting in the VGA.
    소프트웨어에 의해 VGA 프레임 버퍼에서 칼라 키 사각 영역이 채워지는 비디오 윈도우를 설정하기 위하여, 비디오 데이터는 MSP SDRAM에서 VGA 프레임 버퍼에 있는 사각영역과 동일한 사이즈와 위치의 사각 영역에 기입되어져야 한다. In order to set the color key the dead angle area is filled video window on the VGA frame buffer by the software, the video data has to be written in the square region having the same size and location as the rectangular area to the VGA frame buffer in the SDRAM MSP. 도 60 참조할 것. Will see 60.
    KS0119 칩은 칼라 키를 인식하고, VGA 입력 포트를 비디오 입력 포트로 절환한다. KS0119 chip recognizes the color key, and switches the VGA input port to the video input port. 소프트웨어에 의해 DMA 채널 0 시작 어드레스를 SDRAM 비디오 출력 버퍼의 상위 왼쪽에 설정하고, DMA 레코드 길이는 VGA 카드에 설정된 해상도와 비디오 데이터에서 사용된 화소당 비트(4:2:2=화소당 16비트)에 따라 설정된다. By the software sets the DMA channel 0, the start address in the upper left of the SDRAM video output buffer and, DMA record length is bits per pixel used by the resolution and the video data is set in the VGA card (4: 2: 2 = 16 bits per pixel) It is set according to.
    9.6.16.2 KS0119에 대한 시리얼 프로토콜 3-와이어 인터페이스 3-wire serial protocol interface on 9.6.16.2 KS0119
    KS0119 칩에 있는 배치 레지스터를 설정할 경우, 프로토콜은 다음과 같다. If you set the KS0119 configuration registers in the chip, the protocol is as follows.
    - 주변 칩으로 전송되기 위해서는 최소 두 개의 프레임이 필요하다. - at least two frames is required to be transmitted around the chip.
    - 첫 번째 프레임은 배치 레지스터의 인덱스를 설정하기 위한 것이다. - The first frame is set to the index of the configuration registers.
    - 두 번째 프레임은 데이터(레지스터의 내용)의 독출 또는 기입을 위한 것이다. - the second frame is for reading or writing of data (the contents of the register).
    소프트웨어에 의해 프레임 사이즈 레지스터를 적절한 길이로 설정하고, 시리얼 억세스 비트를 1로 설정한다. Set the frame size of the register by software, to an appropriate length, and sets the serial access bits to 1. 그러면, 프레임 사이즈 레지스터를 변경하기 전에 프레임에 필요한 모든 바이트를 소프트웨어에 의해 로드하고, CODEC 인터페이스 로직은 프레임의 시리얼화가 개시되기 전에 모든 바이트가 로드될 때까지 기다린다. Then, prior to changing the frame size register is loaded by all the bytes required for the frame to software, CODEC interface logic will wait until all the bytes loaded before the start of serial frame painter.
    첫 번째 전송되는 프레임은 인덱스를 설정하기 위한 것이고, 프레임 사이즈는 3이다. Is for the first transfer frame which has an index set, a frame size is 3. 도 61을 참조할 것. Refer to FIG. 61.
    두 번째 프레임은 레지스터를 설정하기 위한 것이고, 프레임 사이즈는 3이다. The second frame is intended for setting the register, the frame size is 3.
    각 데이터 바이트 이후, 칩은 인덱스를 1씩 자동으로 증가시키고, 이는 복수 바이트의 데이터를 4개 데이터 바이트까지 지원하는 CODEC 인터페이스 로직으로 전송함으로써 연속적인 레지스터들을 설정하는 것을 가능하도록 한다. After each data byte, the chip increments the index by one and automatically, which enables to set to a series of registers, by sending a CODEC interface logic to support data of a plurality of bytes to four bytes of data.
    독출 또는 기입 동작이 수행된 경우, 소프트웨어에 의해 독출 동작시 유효 데이터를 위한 스테이터스 레지스터의 독출 및 기이 플래그를 체크하거나, 다음 프레임을 전송하기 전에 기입 플래그=준비(ready) 인지를 체크한다. If a read or write operation is performed, it is checked whether the read of the status register for the valid data read operation by software and Kii = ready check a flag or flag written before sending the next frame (ready).
    다음 예는 KS0119 데이터 쉬트를 설정하는 단계를 보여준다. The following example shows the steps to set the KS0119 data sheet.
    두 개의 레지스터가 연속적인 인덱스를 가지기 때문에, 이 두 바이트는 단일 프레임으로 로드될 수 있다. Since the two resistors are gajigi consecutive indexes, the two bytes can be loaded in a single frame. 우선, 인덱스는 다음과 같이 설정되어야 한다. First, the index should be set as follows:
    - 83H 값(프레임 사이즈=3, 시리얼 억세스 비트 설정)을 가지는 로드 프레임 사이즈 레지스터(Address=04B0_0000H) - 83H value with the load frame size (frame size = 3, serial access bit is set), the register (Address = 04B0_0000H)
    -03H 값을 가지는 로드 ID 레지스터 (Address=04B0_0001H) Load ID register having a value -03H (Address = 04B0_0001H)
    - 로드 데이터/제어 바이트 : KS0119로 다음번 바이트가 인덱스임을 알려주는 08H 값(Address=04B0_0002H) - Load data / control byte: KS0119 to inform that the next byte, the index value is 08H (Address = 04B0_0002H)
    - 6AH 값을 가지는 로드 인덱스 레지스터(Address=04B0_0003H) - loading the index register (Address = 04B0_0003H) having a value 6AH
    시리얼 인터페이스는 프레임 사이즈 레지스터에 있는 내용의 일치 여부를 검출하여 프레임 전송을 개시하고, 스테이터스 레지스터에 있는 기입 플래그는 비지(busy) 상태로 설정된다. Serial interface detects a match of information, the start-frame transmission, the write flag in the status register in the register frame size is set to busy (busy) state. 다음번 프레임을 전송하기 전에 소프트웨어에 의해 스테이터스 레지스터에 있는 플래그를 체크한다. Before sending the next frame checks the flag in the status register by software. 플래그가 준비상태에 있으며, 소프트웨어에 의해 다음번 프레임을 위한 값을 로드할 수 있다. Flag is located in a ready state, it is possible to load the value for the next frame by the software.
    9.7 KS0122 레지스터 설명 9.7 KS0122 Register Description
    KS0122는 04C0 2000에 해당하는 기본 어드레스를 가지며, 이는 0420 2FFF까지 확장된다. KS0122 has a base address corresponding to the 04C0 2000, which extends to 0420 2FFF.
    9.7.1 KS0122 레지스터 어드레스 맵 9.7.1 KS0122 register address map
    9.7.2 프레임 사이즈 레지스터 9.7.2 Frame Size Register
    이 레지스터는 도 62에 정의한 바와 같이, CODEC 칩으로 전송되는 프레임 사이즈를 제어하며, 최소 프레임 길이는 3바이트이다. This register is as defined in Figure 62, controls the frame size that is transferred to the CODEC chip, a minimum frame length of 3 bytes.
    9.7.3 칩 ID 레지스터 9.7.3 chip ID register
    이 레지스터는 CODEC 칩 ID 값을 저장하는데, KS0122 기입에 대해서는 04H, KS0122 독출을 위해서는 84H를 저장한다. This register stores in order to 84H 04H, KS0122 read out for, KS0122 written to store ID CODEC chip value.
    9.7.4 제어/데이타 레지스터 9.7.4 Control / Data Register
    이 레지스터는 다음번 전송되는 바이트가 레지스터 인덱스 또는 데이터 바이타라는 사실을 CODEC 칩 KS0122로 전해준다. This register allows the former to the fact that the next byte transfer of data or index registers bayita to CODEC chip KS0122. KS0122에 대하여, 00H는 다음번 바이트가 인덱스임을, 01H는 다음번 바이트가 데이터임을 나타낸다. About KS0122, 00H is that the next byte is an index, 01H indicates that the next byte of data.
    9.7.5 인덱스/데이타 0 레지스터 9.7.5 Index / Data register 0
    이 레지스터는 이전 바이트로 전송된 값에 따라서, CODEC 칩 배치 레지스터에 대한 인덱스 값 또는 데이타 0 바이트를 저장한다. This register, store the index value or a zero-byte data to the CODEC chip configuration registers according to the value sent by the previous byte. 프로그래밍 참조부의 통신프로토콜 참조할 것. I can see the communication protocol unit programming reference.
    9.7.6 데이터 1 레지스터 9.7.6 Data register 1
    이 레지스터는 CODEC 레지스터 Index+1에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 1.
    9.7.7 데이터 2 레지스터 9.7.7 Data Register 2
    이 레지스터는 CODEC 레지스터 Index+2에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 2.
    9.7.8 데이터 3 레지스터 9.7.8 Data Register 3
    이 레지스터는 CODEC 레지스터 Index+3에 기입되는 데이터를 저장한다. This register stores the data to be written to the CODEC register Index + 3.
    9.7.9 KS0122 로직 제어 레지스터 9.7.9 KS0122 logic control registers
    KS0122 제어 레지스터에 대한 비트 지정은 다음과 같다. KS0122 bit assignment for the control register is as follows.
    bits 〈1:0〉 bits <1: 0>
    00 4:2:2 포맷 00 4: 2: 2 format
    01 4:1:1 포맷 01 4: 1: 1 format,
    10 CCIR656 포맷 10 CCIR656 format
    9.7.10 스테이터스 레지스터 9.7.10 Status Register
    bits 〈1〉 : 필드 스테이터스 bits <1>: The status field
    0 : 우수 필드 0: excellent field
    1 : 기수 필드 1: the odd field
    bits 〈0〉 : VS 스테이터스 bits <0>: VS status
    0 : 1에서 0까지의 VS 0: 1 to 0 VS
    1 : 0에서 1까지의 VS 1: 0 to 1 VS
    9.7.11 독출 데이터 시리얼 인터페이스 레지스터 9.7.11 read data serial interface registers
    이 레지스터는 독출 플래그가 비지(busy) 상태에서 준비(reasdy) 상태로 천이를 나타낸 다음, 시리얼 포트로 부터의 유효 데이터를 저장한다. This register is a flag showing the transitions to the ready (reasdy) in the busy state (busy) state, and then reads and stores the valid data from the serial port.
    9.7.12 KS0122에 대한 시리얼 프로토콜 3-와이어 인터페이스 3-wire serial protocol interface on 9.7.12 KS0122
    KS0122 칩에 대한 배치 레지스터를 설정할 경우, 프로토콜은 다음과 같다. If you set the configuration registers for the KS0122 chips, protocol is as follows.
    - 주변 칩으로 전송되기 위해서는 최소 두 개의 프레임이 필요하다. - at least two frames is required to be transmitted around the chip.
    - 첫 번째 프레임은 배치 레지스터의 인덱스를 설정하기 위한 것이다. - The first frame is set to the index of the configuration registers.
    - 두 번째 프레임은 데이터(레지스터의 내용)의 독출 또는 기입을 위한 것이다. - the second frame is for reading or writing of data (the contents of the register).
    소프트웨어에 의해 프레임 사이즈 레지스터를 적절한 길이로 설정하고, 시리얼 억세스 비트를 1로 설정한다. Set the frame size of the register by software, to an appropriate length, and sets the serial access bits to 1. 그러면, 프레임 사이즈 레지스터를 변경하기 전에 프레임에 필요한 모든 바이트를 소프트웨어에 의해 로드하고, CODEC 인터페이스 로직은 프레임의 시리얼화가 개시되기 전에 모든 바이트가 로드될 때까지 기다린다. Then, prior to changing the frame size register is loaded by all the bytes required for the frame to software, CODEC interface logic will wait until all the bytes loaded before the start of serial frame painter.
    첫 번째 전송되는 프레임은 인덱스를 설정하기 위한 것이고, 프레임 사이즈는 3이다. Is for the first transfer frame which has an index set, a frame size is 3. 도 63을 참조할 것. Refer to FIG. 63.
    두 번째 프레임은 레지스터를 설정하기 위한 것이고, 프레임 사이즈는 3이다. The second frame is intended for setting the register, the frame size is 3.
    각 데이터 바이트 이후, 칩은 인덱스를 1씩 자동으로 증가시키고, 이는 복수 바이트의 데이터를 4개 데이터 바이트까지 지원하는 CODEC 인터페이스 로직으로 전송함으로써 연속적인 레지스터들을 설정하는 것을 가능하도록 한다. After each data byte, the chip increments the index by one and automatically, which enables to set to a series of registers, by sending a CODEC interface logic to support data of a plurality of bytes to four bytes of data.
    독출 또는 기입 동작이 수행된 경우, 소프트웨어에 의해 독출 동작시 유효 데이터를 위한 스테이터스 레지스터의 독출 및 기입 플래그를 체크하거나, 다음 프레임을 전송하기 전에 기입 플래그=준비(ready) 인지를 체크한다. If a read or write operation is performed, and checks the read and write flags of the status register for valid data during a read operation by the software, to check whether the next = Ready flag written before sending the frame (ready).
    다음 예는 KS0122 데이터 쉬트를 설정하는 단계를 보여준다. The following example shows the steps to set the KS0122 data sheet.
    크로마 키 바이트 0와 바이트 1에 대한 값을 설정하기 위하여, 이 레지스터를 위한 인덱스는 바이트 0에 대해 6AH, 바이트 1에 대해 6BH이다. In order to set the value of the chroma-key byte 0 and byte 1, the index for the register is a 6BH for 6AH, 1 byte for byte zero. KS0122 데이터 쉬트 참조할 것. KS0122 will see data sheet.
    두 개의 레지스터가 연속적인 인덱스를 가지기 때문에, 이 두 바이트는 단일 프레임으로 로드될 수 있다. Since the two resistors are gajigi consecutive indexes, the two bytes can be loaded in a single frame. 우선, 인덱스는 다음과 같이 설정되어야 한다. First, the index should be set as follows:
    - 83H 값(프레임 사이즈=3, 시리얼 억세스 비트 설정)을 가지는 로드 프레임 사이즈 레지스터(Address = 04B0_0000H) - 83H value with the load frame size (frame size = 3, serial access bit is set), the register (Address = 04B0_0000H)
    - 03H 값을 가지는 로드 ID 레지스터(Address=04B0_0001H) - load ID register (Address = 04B0_0001H) having a value 03H
    - 로드 데이터/제어 바이트 : KS0122로 다음번 바이트가 인덱스임을 알려주는 08H 값(Address=04B0_0002H) - Load data / control byte: KS0122 to inform that the next byte, the index value is 08H (Address = 04B0_0002H)
    - 6AH 값을 가는 로드 인덱스 레지스터 (Address=04B0_0003H) On-going load index 6AH value register (Address = 04B0_0003H)
    시리얼 인터페이스는 프레임 사이즈 레지스터에 있는 내용의 일치 여부를 검출하여 프레임 전송을 개시하고, 스테이터스 레지스터에 있는 기입 플래그는 비지(busy) 상태로 설정된다. Serial interface detects a match of information, the start-frame transmission, the write flag in the status register in the register frame size is set to busy (busy) state. 다음번 프레임을 전송하기 전에 소프트웨어에 의해 스테이터스 레지스터에 있는 플래그를 체크한다. Before sending the next frame checks the flag in the status register by software. 플래그가 준비상태에 있으면, 소프트웨어에 의해 다음번 프레임을 위한 값을 로드할 수 있다. Flag is in the ready state, it is possible to load the value for the next frame by the software.
    제 10 장비트스트림 처리기 Chapter 10, bit stream processor
    10.1 10.1
    이 장은 비디오 데이터 압축 및 신장 응용을 위한 주요 MSP 처리 엔진 중의 하나인 비트스트림 처리기(BP)를 설계하기 위한 기능적인 요구조건을 설명한다. This section describes the functional requirements for the design of the bit stream processor (BP) of the leading one MSP processing engine for video data compression and expansion applications.
    10.2 약어 10.2 Acronyms
    A/V 오디오 및 비디오 A / V Audio and Video
    BP 비트스트림 처리기(MSP 블록) BP a bit stream processor (MSP block)
    CCU 캐쉬 제어 유니트(MSP 블록) CCU cache control unit (MSP block)
    CIF 29.97Hz에서 352 * 288의 휘도 샘플 해상도를 갖는 공통 중간 포맷 Common intermediate format having a luminance-sample resolution of 352 * 288 in CIF 29.97Hz
    DCT 이산 여현 변환 DCT DCT
    DMA 직접 메모리 엑세스 DMA Direct Memory Access
    DSM 디지탈 저장 미디아 DSM digital storage media
    FBUS 빠른 버스(MSP 내부 데이타 버스) FBUS fast bus (MSP internal data bus)
    GOB 블록 그룹 Block group GOB
    GSTN 일반 스위치 텔레폰 네트워크(이미 공지된 PSTN) GSTN general switch telephone network (PSTN already known)
    HDD 하드 디스크 드라이버 HDD Hard Disk Drive
    I/F 인터페이스 I / F interface,
    IOBUS 입출력 버스(MSP 내부 주변 버스) Output bus IOBUS (MSP inner peripheral bus)
    ITU-T-601 29.97Hz에서 720x480과 25Hz에서 720x576 각각의 샘플 해상도를 가지는 칼라 텔레비젼 신호의 디지탈 코딩용 테이블준(이전에는 CCIR 601 이라 함.)도 그러나, 디스플레이 해상도는 720X480 또는 704X480이 될 수 있다. (Referred to as formerly CCIR 601.) ITU-T-601 29.97Hz from the digital coding standard table for the 720x576 color television signal, each with a sample resolution of 720x480 at 25Hz and also, however, display resolution may be a 720X480 or 704X480 .
    LSB 최소 비트 The minimum bit LSB
    LUT 룩-업 테이블 LUT look-up table
    MPEG 움직임 영상 익스퍼트 그룹 MPEG motion picture expert group
    MSB 최대 시그니피선트 비트 MSB Maximum signature elected heartbeat
    MSP 삼성 멀티미디어 신호 처리기 Samsung multimedia signal processor MSP
    QCIF 29.97Hz에서(176x144의 휘도 해상도를 갖는 Quarter_CIF In QCIF 29.97Hz (Quarter_CIF having a brightness resolution of 176x144
    RLC 런_길이 레벨 코드 RLC-level run length code _
    SDRAM 동기 다이나믹 랜덤 엑세스 메모리 SDRAM synchronous dynamic random access memory
    SIFNTSC 용 29.97Hz에서 352x240 및 PAL 용 25Hz에서 352x288의 휘도해상도를 갖는 MPEG-1 비디오 테이블준용 정보 입력 및 포멧 MPEG-1 video data input and format complying table in 29.97Hz for SIFNTSC at 352x240 for PAL and 25Hz with a resolution of 352x288 luminance
    TSD 정의될 것임 TSD will be defined
    VLC 가변길이 코드 VLC variable length code
    VP 벡터 프로세서(MSP블록) VP vector processor (MSP block)
    10.3 주요 특징 10.3 Key Features
    MPEG-1, MPEG-2, H.261 및 H.263의 엔코딩 및 디코딩 응용과 슬라이스(또는 GOB)층을 이루고 해석하는 신텍스를 지원함. MPEG-1, MPEG-2, encoding and decoding applications and slices of H.261 and H.263 (or GOB) supports the syntax for interpreting forms a layer.
    * 실시간으로 RLC처리를 수행 * Real-time to perform RLC processing
    * MPEG-1, MPEG-2, H.261 및 H.263 비디오 표준에 있는 모든 호프만 테이블을 이용하여 실시간으로 호프만 코드 처리를 수행. * MPEG-1, perform the Huffman encoding process in real time using all the Huffman tables in the MPEG-2, H.261 and H.263 video standard.
    * 2개의 순방향/역방향 지그-재그 스캔 변환 법칙을 지원 Support zag scan conversion law - * the two forward / backward jig
    * 731.4Mbits/sec(32-bit @ 40MHz)의 최대전송 레이트로 인터페이스 하는 IOBUS * 731.4Mbits / sec (32-bit @ 40MHz) IOBUS to interface with a maximum transfer rate of
    * 최대 동작 클럭 주파수는 40MHz * The maximum operating clock frequency is 40MHz
    * 호프만 코텍 룩-업 테이블을 위한 9.2Kbit ROM을 포함 * Hoffman codec look-up table containing the 9.2Kbit ROM for
    * 320 byte내부 SRAM을 포함 * Byte 320 includes an internal SRAM
    * 선점 및 협력문맥 스위칭 모드를 지원 * Support for preemption and context cooperative mode switching
    * 제어 경로를 위한 목적게이트 계산은 6Kgates 더하기 RAM 및 ROM * For calculation purposes the gate control path 6Kgates plus RAM and ROM
    10.4 개요 10.4 Overview
    비트 스트림 처리기(BP)는 4개의 MSP 내부 주변 장치중 하나이다. A bit stream processor (BP) is one of the four inner peripheral MSP. 이것은 비디오 압축 및 복원 상태의 여러 비트 스트림을 지원하기 위해 하드웨어 조직 블록이다. This is a hardware block organization to support multiple bit streams of the video compression and decompression status.
    이런 장치는 특히, MSP 내부의 VP 및 ARM7이 이러한 비트 조작에 맞게 충분한 구조를 가지고 있지 않기 때문에 비트_레젤 처리를 위해서 설계되었다. This device is designed for handling bit _ rejel because in particular, the internal MSP VP ARM7 and does not have a sufficient structure to fit these bit manipulation.
    이러한 BP는 731.4Mbits/sec의 최대 전송 속도를 갖는 IOBUS라고 불리는 32비트 버스를 통해서 데이타를 송수신한다. The BP will send and receive data via a 32-bit bus called the IOBUS having a maximum transmission rate of 731.4Mbits / sec.
    그리고 BP는 독립적인 처리장치로서 동작하고, ARM7 또는 VP의 소프트웨어에 의해 제어된다. And BP will operate as an independent processing unit and is controlled by the software of the ARM7 or VP.
    더욱 특히, BP는 슬라이드 또는 GOB 및 그 이하에 포함되어 있는 모든 정보를 엔코딩 및 디코딩하고, 그리고 CCU로부터/로 데이타를 송수신한다. More particularly, BP is encoding and decoding all of the information contained in the slide or GOB and below, and, and transmits and receives data to and from CCU /. 상기 BP는 또한, 순방향 및 역방향 지그_재그 변환을 수행하고, 차분 DC계수를 엔코딩 및 디코딩한다. The BP will also perform a forward and reverse jig _ zag transform, and encoding and decoding the differential DC coefficient.
    더욱이, 이러한 BP는 디코딩에서 차분 움직임 벡터를 사용하여 움직임 벡터를 복원하고, 2개의 특수한 모든 즉, MPEG-2 엔코딩에서 듀얼_프라임 모드와 H.263 엔코딩 및 디코딩에서 예측모드를 제외하고 엔코딩에서는 반대동작을 수행한다. Moreover, such BP is the opposite with the difference motion vector in a decoding and restoring a motion vector, two special all That is, the dual _ except the prime mode and a prediction mode in H.263 encoding and decoding and encoding in the MPEG-2 encoding It performs an operation.
    만약, BP가 단순한 모드에서 동작한다고 가정하면, BP는 일단 슬라이드 또는 GOB를 처리하면서 시작하고, BP는 슬라이스 또는 GOB 처리가 완료된 후에 인터럽트 된다. If, assuming that BP is operating in the simple mode, BP is one starts by processing the slide or GOB, and, BP is interrupted after the slice or GOB processing is completed. 이러한 동작은 전이중 모드가 슬라이스 또는 GOB를 인터리브에 의해 엔코딩 및 디코딩 함으로써 이루어진다. This operation is carried out by full duplex mode, the encoding and decoding by interleaving the slice or GOB.
    만약 ARM7이 BP를 다른 작업으로 순간적으로 스위칭 시키길 원한다면, BP는 현재의 슬라이스 또는 GOB가 완료되기 전에 BP과정을 완료하는 선점 컨텍트 스위칭 모드를 지지하게 될 것이다. If you want ARM7 sikigil momentarily switching to another task for BP, BP will support the preemption keontekteu switching mode to complete the BP process before the current slice or GOB is complete.
    도 3은 BP의 블럭 다이어그램을 도시한 것이다. Figure 3 illustrates a block diagram of a BP.
    도 3에 도시된 바와 같이, BP는 다섯개의 블럭 IOBUS인터페이스 장치, VLC FIFO 장치, VLC LUT ROM, 제어상태머신 및 BP코어장치를 포함한다. As shown in Figure 3, BP includes five blocks IOBUS interface device, VLC FIFO device, VLC LUT ROM, the control state machine and the core BP device. 입출력 데이타는 16x32비트 램을 포함하는 IOBUS 인터페이스 장치에 의해 동작된다. Input and output data is operated on by the IOBUS interface device including a 16x32-bit RAM. 이것은 모든 데이타 이동 및 인터럽 요구를 지원한다. It supports all of the data movement and interrupt request. VLC FIFO 장치는 데이터 디코딩 동작을 위해 다음 데이타 워드를 준비하고, 그리고 데이타 엔코딩 동작을 위해 출력 데이타 패킹을 수행한다. VLC FIFO apparatus performs output data packing for subsequent preparing the data word, and data encoding and decoding operations for data operations.
    VLC 룩업 테이블 롬은 모든 호프만 코드 처리를 위해 모든 필요한 정보를 저장하는 768x12bit 크기를 가진다. VLC look-up table ROM has a 768x12bit size to store all of the necessary information for all the Huffman encoding process. 제어상태 머신을 설계시 모든 엔코딩 및 디코딩을 제어한다. It controls all encoding and decoding when designing the control state machine. BP 코어장치는 가산기, 비교기, 배럴시프터, 레지스터 파일 및 128x16비트 RAM을 포함하는 작은 프로세서이다. BP core device is a small processor, including an adder, a comparator, a barrel shifter, a register file and a 128x16-bit RAM. 비트조작은 상기 코어에 유용하다. Bit operation is useful for the core.
    10.5 신호 정의 10.5 signal definition
    BP 외부 인터페이스에 요구되는 신호는 테이블 23에 나타나 있다. Signal required for the BP external interfaces are shown in table 23.
    문자 "1"의 끝에 있는 신호는 엑티브_로우를 나타낸다. Signals the end of the character "1" indicates the active _ low.
    테이블1의 "방향" 컬럼에서, "B", "I" 및 "O"는 양방향 신호로서 입력신호 및 출력신호를 각각 의미한다. In the "direction" column of Table 1, "B", "I" and "O" are each meant the input signal and the output signal as a two-way signals.
    (테이블 23) (Table 23)
    BP 신호 정의 Definition signal BP
    10.6 엔코딩/디코딩용 데이타 흐름도 10.6 encoding / decoding the data flow diagram for the
    여기서 예를 들면, 대표적인 비디오 엔코딩 및 디코딩 응용의 데이타 흐름을 포함한다. Here, for example, it includes a data flow of an exemplary video encoding and decoding applications. 여기서는 오디오 데이타 흐름에 대해서는 상세하게 기술하지 않는다. Here, not described in detail for the audio data stream.
    10.6.1 엔코딩 경우 10.6.1 If the encoding
    단계E1 : 로(RAW/ A/V 데이타 입력) Step E1: to (RAW / A / V data input)
    보통 입력 비디오 및 오디오 신호가 샘플링 되고, 외부 코덱에 위해 디지탈화 되고 그리고 사용자 ASIC에 공급된다. The normal input video and audio signals are sampled, digitized, and to the external codec and is supplied to the user ASIC. 그러나 멀티미디어 PC환경에서, 어떤 VGA 제어 보드는 또한 프레임(grabber)와 사운드 캡쳐를 포함한다. However, in a multimedia PC environment, any VGA control board also comprises a capturing frame (grabber) and sound. 그러므로, 로(RAW)A/V 데이타는 사용자 ASIC 또는 PCI 버스 인터페이스 중 어느 하나로 부터 전달된다. Therefore, in (RAW) A / V data it is transmitted from any one of user ASIC or PCI bus interface. 커스텀 ASIC 또는 PCI 버스는 32BYTES의 적은 버퍼를 포함한다. Custom ASIC or a PCI bus and a low buffer in 32BYTES. 이 버퍼에 있는 데이타는 DMA조작을 이용한 FBUS를 통해서 외부 SDRAM에 전달된다. Data in the buffer is transferred to the external SDRAM via the FBUS using a DMA operation. 이러한 데이타의 이동은 전원이 리셋된 후 ARM7에 의해 초기화 된다. Movement of the data is initiated by the ARM7 after power is reset.
    단계E2 : VP에 의한 프리 필터링 Pre-filtered by VP: Step E2
    먼저, VP는 VP데이타 개시(일반적으로 스크라치 패드 영역)의 SDRAM에 저장된 이미지 데이타를 페치한다. First, VP fetches the image data stored in the SDRAM of the VP data starts (generally seukeurachi pad area). 그리고, VP는 이러한 화소를 일시적으로 필터링하고 공간을 스케일링한다. And, VP temporarily filtered, and scale the area of ​​these pixels. 프리 필터링을 한 후, 영상의 해상도는 정상적으로 ITU_T_601사이즈에서 CIF로 또는 QCIF사이즈로 변환된다. After the pre-filter, the resolution of the image is converted from normal ITU_T_601 size in a QCIF or CIF size. 이 VP는 외부 SDRAM에 대한 프리 필터된 결과를 기록한다. The VP records the pre-filter result for the external SDRAM.
    단계E3 : VP에 의한 데이타 압축 Step E3: data compression by the VP
    VP는 이에 대응되는 표준에 제시된 법칙에 따라 압축이 수행되도록 다시 VP 데이타 캐쉬 안으로 SDRAM의 프리 필터된 데이타를 페치한다. VP fetches the compressed again so that the VP data cache in a pre-filter SDRAM performs data according to the rules set forth in a standard corresponding thereto. 정상적으로, VP는 순방향 DCT/순방향 적응 양자화, 움직임예측, 매크로블록 타입 결정 등을 수행한다. Normally, VP performs a forward DCT / forward-adaptive quantization, motion prediction, the macroblock type decisions and the like.
    이러한 과정을 수행한 후, VP는 다시 VP데이타 캐시안으로 적당한 헤드정보를 갖는 결과를 기록해야 한다. After performing this procedure, VP shall record the results with the appropriate information, head back into the VP data cache. 실제적으로, 이 VP데이타 캐시 영역은 BP입력버퍼로서 이용된다. In practice, the VP data cache area is used as an input buffer BP. 버퍼 상태를 검사하기 위해, 플래그 신호가 이용된다. To check the state of this buffer, the flag signal is used.
    단계E4 : ARM7에 의한 BP 초기화 Step E4: BP initialized by the ARM7
    실제적으로 BP가 동작되기 전에, ARM7은 BP의 초기 레지스터를 초기화 해야 한다. In practice before the BP operation, ARM7 shall initiate the initial register of the BP.
    이러한 초기화는 파워온 리셋신호가 인가된 후 128 사이클 동안에는 수행되지 않는다. This initialization is not performed during the cycle 128 after the power-on reset signal is applied. 특히, ARM7은 입출력 버퍼 어드레스 및 BP명령 레지스터를 초기화 시켜야 되고, 슬라이스 또는 GOB 내에서 부호화된 매크로 블록의 수를 지정해야 한다. In particular, ARM7 is need to initialize the input-output buffer and BP an address command register, and to specify the number of macroblock coded in the slice or GOB.
    이러한 레지스터를 초기화 한 후, ARM7은 BP과정을 수행하도록 BP인에이블 플레그를 세트해야 된다. After initializing these registers, it will be set the ARM7 BP enable flag to perform the BP process.
    단계E5 : BP에 의한 비트스트림 과정 Bitstream process by BP: Step E5
    만약 입력 2개의 버퍼중 어느 1개가 풀(full)인 경우, BP는 IOE JS를 통해서 데이타의 읽기를 시작한다. If any one of the inputs of two buffers dog pool (full), BP will start the reading of the data via the IOE JS. 즉 BP는 버퍼가 풀인 경우에만 데이타를 읽을 수 있다. That BP can read the data only if the buffer pool. 그리고, BP는 지그_재그 포맷에서 8x8블록 데이타를 변환시킨다. And, BP converts the 8x8 block data in the jig _ zag format. 그리고 그 결과는 직접적으로 RLC 및 호프만 부호화 된다. And the result is directly encoded in the RLC and Hoffman.
    이러한 호프만 부호화된 결과는 ARM7데이타 캐쉬 또는 SDRAM 중의 어느 하나로 전송될 수 있다. The Huffman coded result may be transmitted by any of the ARM7 data cache or SDRAM. BP는 상기 버퍼가 오버플로우 되지 않도록 비워있는 경우에만 출력 버퍼에 라이트 해야 한다. BP is only to be written in the output buffer if the buffer is not empty, so that the overflow. 이 과정의 마지막 예를 들면, 처리된 매크로블록의 수가 ARM7에 의해 지정된 매크로블록의 수와 같은 경우, BP는 마지막 데이타의 바이트 및 위치에서 ARM7과 인터럽트 하게 되고 현재 슬라이스 또는 GOB 과정을 종료한다. If, for example, the end of the process, the number of process macroblocks, such as the number of the macroblock designated by the ARM7, BP will be interrupted and in ARM7 byte and position of the end data and ends the current slice or GOB process.
    단계E6 : ARM7에 의해 비트스트림 형성과 A/V 멀티플렉싱 Step E6: by the ARM7 a bitstream formed with A / V multiplex
    ARM7은 호프만 부호화된 데이터 및 신텍스 변수를 결합하여 마지막 비트 스트림을 만들고, 그 과정을 반복한다. ARM7 is created and the final bit-stream by combining the Huffman-encoded data and syntax variables and repeats the process.
    그리고 ARM7은 또한 슬라이스 또는 GOB 멀티플렉스 오디오 및 비디오 비트 스트림의 상부층과 조작할 수 있다. ARM7 and can also operate as an upper layer of the slice or GOB multiplexed audio and video bitstreams. 이 결과는 ARM7에 의해 SDRAM에 쓰여진다. The result is written to the SDRAM by the ARM7.
    단계E7 : VP에 의한 네트워크 인터페이스(비디오 회의용 선택) Step E7: a network interface according to the VP (video conference selection)
    비디오 전화 또는 비디오 화상회의 응용을 위해서 상기 단계6까지는 VP가 H.324 GSTN 비디오 전화용 V.34 모뎀 또는 H.320 ISDN 비디오 회의단말용 1400 계열 인터페이스와 같은, 네트워크 인터페이스가 기능을 수행하였다. For video phone or video-conferencing applications that VP by the step 6 was carried out to the network interface 1400, such as a series interface for the V.34 modem, ISDN or H.320 video conference terminal for the H.324 GSTN video phone functions.
    단계E8 : 마지막 비트 스트림 출력 Step E8: final output bitstream
    SDRAM에 저장된 마지막 비트스트림은 커스팀 ASIC 또는 PCI 버스중 어느 하나에 전송된다. The last bit stream stored in the SDRAM is transferred to any one of the coarse side ASIC or PCI bus. 정상적으로 사용자 ASIC 블록은 네트워크 인터페이스에 사용되고, 그리고 PCI 버스 인터페이스는 기록장치(예를들면, HDD) 데이타 저장을 위해 이용된다. Users normally ASIC block is used for the network interface, and a PCI bus interface is used for a recording apparatus (e.g., HDD) to store data.
    이 데이타가 이동시에는 ARM7에 의해 초기화된 DMA 데이타 전송을 이용한다. This data is used, the movement of the DMA data transfer initiated by the ARM7.
    10.6.2 디코딩 경우 10.6.2 If decoding
    단계 D1 : 비트스트림 페치 Step D1: bitstream fetch
    멀티미디어 환경에서, 압축된 비트스트림은 CD-ROM 드라이버, HDD 및 네트워크 인터페이스 중 어느 하나로부터 공급된다. In multimedia environments, the compressed bit stream is fed from any one of the CD-ROM drive, HDD, and a network interface.
    그러므로, 이 비트스트림은 커스텀 ASIC 또는 PCI 버스중 어느 하나가 된다. Therefore, the bit stream is the one of a custom ASIC, or PCI bus. 커스텀 ASIC 또는 PCI 버스의 32byte 버퍼에 저장된 데이타는 DMA를 이용한 SDRAM에 전송된다. Custom ASIC or 32byte data stored in the buffer of the PCI bus is transferred to SDRAM using the DMA.
    단계 D2 : VP에 의한 네트워크 인터페이스(비디오 회의용 선택) Step D2: a network interface according to the VP (video conference selection)
    비디오 회의에서, 데이타는 먼저, VP에 의해 V.34 또는 1400계열 네트워크 인터페이스 루틴이 수행된다. In video conferencing, data is first, is performed by the VP V.34 or 1400 Series network interface routines. VP는 SDRAM에 대한 결과를 라이트한다. VP Wright is the result of the SDRAM.
    단계 D3 : ARM7에 의해 A/V 디멀티플렉싱 및 헤더 분석 Step D3: ARM7 by the A / V demultiplexing and header analysis
    ARM7은 SDRAM 내에서 있는 데이타를 ARM7 데이타 캐시로 이동시키고, A/V 비트스트림 디멀티플렉싱을 수행한다. ARM7 moves the data in the cache and the data in the SDRAM to the ARM7, perform A / V bitstream de-multiplexing. 비디오 비트스트림을 위해, ARM7은 또한, 모든 시작코드를 검색하고 그리고 슬라이스 GOB가 검출될 때까지 헤더를 분석한다. For the video bit stream, ARM7 also retrieve all of the start code and the header and analyzes the detected until the slice GOB. ARM7은 복호화된 비트스트림 신텍스 변수를 ARM7에 의해 SDRAM의 특별영역에 저장시킨다. ARM7 is then stored in a special area of ​​the SDRAM by the decoded bitstream syntax variable in ARM7. 디멀티플렉싱된 오디오 및 비디오 비트스트림은 SDRAM에 있는 레이트 버퍼 각각에 전송된다. De-multiplexing the audio and video bit stream is transmitted to the rate buffer in each SDRAM. 각 동작을 위해 레이트 버퍼의 사이즈를 다르게 해도 된다. For each operation may be different from the size of the rate buffer. 예를들면, 비디오 속도 버퍼 사이즈를 위해 MPEG-1은 370Kbits로 MPEG-2 SMS 1.835Mbits로 권고한다. For example, MPEG-1, for video rate buffer size is recommended to as MPEG-2 SMS 1.835Mbits 370Kbits.
    단계 D4 : ARM7에 의한 BP 초기화 Step D4: BP initialized by the ARM7
    이 단계의 수행은 단지, 부호화된 매크로 블록의 수에 대해 레지스터를 초기화하도록 요구하지 않는 것을 제외하고는, 이전의 서브섹션에 있는 단계 E4와 같다. Performance of this step, only, is equal to the step E4 at the previous sub-section, except for the number of the coded macroblock is not required to reset the registers. 다시 말해, 초기화는 파워온 리셋 신호가 인가된 후 128 사이클 동안 수행되어서는 안된다. In other words, the initialization is not to be carried out for 128 cycles after the power-on reset signal is applied.
    단계 D5 : BP에 의한 비트스트림 과정 Bitstream process by BP: Step D5
    특별한 슬라이스 또는 GOB를 위해 BP를 초기화 시킨 후, 복원된 데이타는 2개의 버퍼에 전송한다. After initializing the BP for a particular slice or GOB, the restored data is sent to the two buffers.
    BP는 풀 플러그의 상태를 검사하는 IOBUS를 통해서 데이타를 읽는다. BP reads the data through the IOBUS to check the status of a full plug. BP는 만약, 입력 데이타가 헤드워드를 포함하고 있다. BP has If the input data is a head word. 신텍스 변수를 분석한다. It analyzes the syntax variables.
    만약 BP가 계속되는 다음 비트를 호프만 코드로 인식하면, 각 호프만 코드용 최상 4사이클 이내에 호프만 디코딩을 수행한다. If BP recognizes the following successive bit Huffman code, it performs Huffman decoding within the top four cycles for each Huffman code. 만약, 호프만 디코드가 DCT AC 계수이면, 호프만 디코드된 결과는 64 화소 성분을 나타내는 디코드된 RLC가 된다. If, when Huffman decoding the DCT AC coefficients, the Huffman decoding result is decoded RLC showing a 64 pixel elements.
    재현 화소는 이와 반대로, 지그_재그로 변환되고, 그리고 마지막으로 VP가 순방향 양자화를 수행하도록 2개의 출력버퍼에 전송된다. Reproduce the pixel is on the other hand, the jig _ material and conversion thereof, and is finally transmitted to the two output buffers to perform the VP is the forward quantization. BP는 슬라이스 또는 GOB가 아닌 초기코드를 검출한 후 이러한 과정을 계속 수행한다. BP will continue this process after detecting the initial code is not a slice or GOB. 만약, 이것이 검출되지 않는다면, BP는 마지막에 사용된 데이타에 대해 바이트 및 비트 위치정보를 갖는 ARM7을 인터럽트 시킨다. If this is not detected, BP is thereby interrupt the ARM7 a byte and bit position information for the data used in the last. 그러면, ARM7은 다음 슬라이스 또는 GOB시작 코드를 검색하고 이러한 과정을 반복한다. Then, ARM7 will search for the next slice or GOB start code and repeat the process.
    단계 D6 : VP의 데이타 복원 Data restore the VP: Step D6
    단계 D5의 결과를 사용하여, VP는 역양자화, 역 DCT 및 움직임 버퍼를 이용한 영상재현을 수행한다. Using the result in the step D5, VP performs image reproduction by the inverse quantization, inverse DCT and motion buffer. 부호화 과정을 완료한 후, VP는 SDRAM 안에 그 결과를 저장한다. After completion of the encoding process, VP and stores the result in the SDRAM.
    단계 D7 : VP의 이후 과정 Step D7: After the VP process
    비디오 및 오디오 데이타가 디지털/아날로그 변환기로 전송되기 전에, 화소는 VP가 바람직한 출력 해상도 및 이미지를 얻도록 위의 과정을 수행한다. Before the video and audio data are transmitted to a digital / analog converter, the pixel performs the above steps to obtain the desired output resolution and image VP.
    이러한 결과는 다시, SDRAM에 저장될 것이다. These results again, it will be stored in the SDRAM.
    단계 D8 : (RAW)A/V 데이타 출력 Step D8: (RAW) A / V data output
    마지막으로, SDRAM 내부의 재현오디오 및 비디오 데이타는 DMA를 이용해 출력된다. Finally, the reproduction of the internal SDRAM audio and video data is output using the DMA. 다시, 이러한 데이타의 이동은 ARM7에 의해 초기화 된다. Again, movement of the data is initiated by the ARM7. 현재의 비디오 오버레이 기술은 PCI버스가 비디오 소스에 데이타를 전송할 수 있게 하고, 마지막으로 데이타는 커스텀 ASIC 또는 PCI 버스중 어느 하나에 전송될 것이다. The current video overlay technology enables PCI bus can transfer data to a video source, and finally the data will be transferred to one of the custom ASIC, or a PCI bus.
    10.7 프로그래밍 모델 10.7 Programming Model
    10.7.1 BP베이스 장치 어드레스 10.7.1 BP base device address
    BP는 다음의 32비트 기본 장치 어드레스를 가지고 있다. BP has the following 32-bit base address of the device.
    〈MSP_BASE〉〈BP_BASE〉〈Address_Offset〉 <MSP_BASE> <BP_BASE> <Address_Offset>
    여기서, 〈MSP_BASE〉는 MSP 베이스 PCI 장치 어드레스에 의해 규정된 5비트이고, 〈BP_BASE〉는 7'b 1111100과 같은 7비트이며, 〈Address_Offset〉은 BP내부 레지스터에 할당된 20비트이다. Here, <MSP_BASE> is a 5-bit address specified by the MSP database PCI device, <BP_BASE> is 7 bits, such as 7'b 1111100, <Address_Offset> is a 20-bit is assigned to the BP internal registers.
    그러므로, 전체 MSP I/O 장치 어드레스 맵에서 BP에 할당된 어드레스 범위는 27'h 7C0_0000에서 27'h 7CF_FFFF이다. Therefore, the full MSP I / O device, the address range assigned to BP in the address map is 27'h 7CF_FFFF in 27'h 7C0_0000.
    10.7.2 내부레지스터 사양 10.7.2 Internal register specification
    내부레지스터 세트는 테이블 24에 나타나 있으며, 테이블 2에 나타난 모든 레지스터는 ARM7 또는 VP에 의해 쓰여지거나 읽혀질 수 있다. Internal register set are shown in Table 24, all of the registers shown in Table 2 may be written to and read by the ARM7 or VP.
    (테이블 24) (Table 24)
    BP 내부 레지스터 BP internal registers
    * BP-MODE[31:0](리드온리, 디폴트값 없음)-이 레지스터는 비디오 표준 타입과 다양한 화상레벨 정보를 정의하고, 상세한 것은 서브섹션 10.8.1에서 볼 수 있다. * BP-MODE [31: 0] (no read-only, the default value) - This register is defined video standard type and a variety of image-level information, and detailed can be found in the sub-section 10.8.1.
    * BP_CONTROL[31:0](리드/라이트, 디폴트 값은 32 'h 0000_0000)-이 레지스터는 BP 동작을 위해 다양한 제어 변수를 포함한다. * BP_CONTROL [31: 0] (read / write, the default value is 32 'h 0000_0000) - This register contains a number of control variables for the BP operation. ARM7 또는 VP는 이 레지스터에 있는 각 플레그를 세트할 것이고, 어떤 플레그는 BP에 의해 리셋된다. ARM7 or VP will be set to each flag in the register, a flag which is reset by the BP. 비트사양은 서브섹션 10.8.2에서 볼 수 있다. Bit specifications can be found in sub-section 10.8.2.
    * IBUF0_START[31:0](리드/라이트, 디폴트값 없음)-이 레지스터는 BP입력 양방향 버퍼의 입력 버퍼 0이 되도록 초기 어드레스를 ARM7에 의해 정의하여 초기화 한다. * IBUF0_START [31: 0] (read / write, no default value) - This register is initialized to the initial address defined by the ARM7 0 so that the input buffer of the two-way type BP buffer. IBUF0_START용 초기화값은 항상 IBUFO_END 보다 작으며, IBUFO_START[3:0] 4'b0000과 같다. Initialization values ​​for IBUF0_START were always less than IBUFO_END, IBUFO_START [3: 0] as 4'b0000.
    * IBUF0_END[31:0](리드온리, 디폴트값 없음)-이 레지스터는 BP 입력 양방향 버퍼의 입력버퍼 0으로 마지막 어드레스를 정의하고 있으며, 이런 내용은 섹션 10.11에 기술되어 있다. * IBUF0_END [31: 0] (no read-only, the default value) - This register is defined and the last address in the input buffer 0 of the two-way type BP buffer, this information is described in section 10.11.
    * IBUF1_START[31:0](리드/라이트, 디폴트값 없음)-이 레지스터는 BP입력 더블버퍼의 입력버퍼가 1이 되도록 ARM7의 시작어드레스를 초기화시킨다. * IBUF1_START [31: 0] (read / write, no default value) - This register initializes the start address of the ARM7 such that the input buffer of the double buffer input BP 1.
    * IBUF1_START의 초기화 값은 항상 IBUF1_END 보다 작으며, IBUF1_START[3:0]은 4'b0000과 같게 된다. * Were the initial value of IBUF1_START is always less than IBUF1_END, IBUF1_START [3: 0] is equal to 4'b0000. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    IBUF1_END[31:0](리드온리, 디폴트값 없음)-이 레지스터는 BP입력더블버퍼의 입력버퍼가 1이 되도록 마지막 어드레스를 정의한다. IBUF1_END [31: 0] (no read-only, the default value) This register defines the last address such that the input buffer of the double buffer input BP 1. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    * OBUF0_START[31:0](리드/라이트, 디폴트값 없음)-이 레지스터는 BP 출력 더블버퍼의 출력버퍼가 0이 되도록 ARM7의 시작 어드레스를 초기화 시킨다. * OBUF0_START [31: 0] (read / write, no default value) - This register initializes the start address of the output buffer of the ARM7 BP double output buffer is zero.
    OBUF0_START의 초기화 값은 OBUFO_END 보다 항상 작으며 OBUFO_START[3:0]은 4'b0000과 같다. The initial value of OBUF0_START were always less than OBUFO_END OBUFO_START [3: 0] is the same as 4'b0000. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    * OBUF0_END[31:0](리드온리, 디폴트값 없음)-이 레지스터 BP출력더블버퍼의 출력버퍼가 0이 되도록 마지막 어드레스를 정의한다. * OBUF0_END [31: 0] (no read-only, the default value) and defines the end address register BP output buffer of the double buffer is output to zero. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    * OBUF1_START[31:0](리드/라이트, 디폴트값 없음)-이 레지스터는 ARM7에 의해 BP출력더블버퍼의 출력버퍼 1이 되도록 ARM7의 시작어드레스를 초기화한다. * OBUF1_START [31: 0] (read / write, no default value) - This register is initialized to the start address of the ARM7 by the ARM7 so that the output buffer of the first double buffer output BP.
    OBUF1_START의 초기화 값은 OBUF1_END 보다 항상 작고, OBUF1_START[3:0]은 4'b0000과 같다. The initial value of OBUF1_START is always smaller than OBUF1_END, OBUF1_START [3: 0] is equal to 4'b0000. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    * OBUF1_END[31:0](리드온리, 디폴트값 없음)-이 레지스터는 BP출력더블 버퍼의 출력버퍼 1이 되도록 마지막 어드레스를 정의한다. * OBUF1_END [31: 0] (read-only, no default value) This register defines the last address to the output buffer of the first double buffer output BP. 이런 내용은 섹션 10.11에 기술되어 있다. These details are described in section 10.11.
    *SAVE_ADR[31:0](리드온리, 디폴트값 없음)-이 레지스터는 선점 컨텍트 스위칭모드가 요구될 경우, BP내부 컨텍트를 저정하도록 SDRAM의 초기 어드레스로 정의한다. * SAVE_ADR [31: 0] (no read-only, the default value) This register defines the initial address of the SDRAM to be parked if the seminal keontekteu mode switching request, BP internal keontekteu. 관련자료는 서브섹션 10.12.1을 참조바람. Resources refer to subsection 10.12.1 wind.
    * VALID_BYTE_ADR[31:0](리드/라이트, 디폴트값 없음)-이 레지스터는 디코딩에서 입력더블버퍼 또는 엔코딩에서 출력더블버퍼의 마지막 유효 데이타 바이트 위치를 나타낸다. * VALID_BYTE_ADR [31: 0] (read / write, no default value) - This register indicates the last valid data byte positions of the double buffer output from the input double buffer in the decoding or encoding. 이 레지스터의 목적은 ARM7 및 BP 사이에서 핸드 세이킹 하기 위한 것이다. The purpose of this register is to handshaking between the ARM7 and BP. 일반적으로, 유효바이트 데이타의 유효비트 위치를 위해 추가적인 정보가 또한, 요구되는데, 이런 것은 BP_CONTROL[31:0] 레지스터내에 포함되어 있다. In general, additional information is also available for the bit position of the effective byte data, are required, this is BP_CONTROL: is contained in the [31: 0] registers. 상세 내용은 섹션 10.13에 있음. Details are available in Section 10.13.
    * BP_STATUS[31:0](리드/라이트, 디폴트값은 32 'h0000_0000)- 이 레지스터는 BP의 다양한 내부의 상태를 나타낸다. * BP_STATUS [31: 0] (read / write, the default value is 32 'h0000_0000) - This register indicates the various internal state of the BP. 최하 2바이트(예를들면, BP_STATUS[15:0])의 모든 비트 위치는 ARM7_IRQ를 1로 세트할 수 있는 인터럽트 조건이다. The lowest two bytes (e.g., BP_STATUS [15: 0]) of all bit positions is the interrupt conditions to the ARM7_IRQ set to one. 이 레지스터는 두가지 방법으로 접근될 수 있다. This register can be accessed in two ways. ARM7 또는 VP는 어드레스 27'h7CO_0050을 사용하는 풀 32-비트 레지스터를 리드 또는 라이트 할 수 있다. ARM7 or VP may be read or write a full 32-bit register used to address 27'h7CO_0050. 일반적으로 그러나, ARM7 및 VP는 비트 단위로 BP_STATUS 레지스터의 내용을 라이트(또는 리세트)하는 것이 바람직하다. In general, however, ARM7 and VP is preferably light (or reset), the contents of BP_STATUS register bit by bit. BP는 또한, BP_STATUS의 각 비트당 27'h7CO_0030에서 27'h7CO_004F 범위의 어드레스를 할당함으로써 특징적인 내용을 지원한다. BP is further supported the characteristic information by assigning an address of each bit in the 27'h7CO_004F range from 27'h7CO_0030 BP_STATUS. 이러한 비트 내용은 서브섹션 10.8.3에 기술되어 있다. This bit information is described in subsection 10.8.3.
    *BP_INT_MASK[15:0](리드온리, 디폴트값은 16hFFFF)이 레지스터의 각 비트는 상기 BP_STATUS[15:0]에 의한 인터럽트 조건에 대응되고, BP_STATUS[15:0] 내부에서 코딩되기 전의 조건을 갖는 논리적인(and-ed)이다. * BP_INT_MASK a condition prior to coding within the [15: 0] [15: 0] (read-only, the default 16hFFFF), each bit in the register is the BP_STATUS [15 0] corresponds to the interrupt condition caused by, BP_STATUS a logical (and-ed) with. 만약 하나의 마스크 비트가 0으로 세트되면, 대응 인터럽트 조건은 무조건적으로 0(예를들면, 디스에이블 됨)으로 세트한다. If a mask bit is set to 0, the corresponding interrupt condition will unconditionally to zero (e. G., Disk search enable) is set to. 이러한 인터럽트에 대한 한세한 내용은 섹션 10.9에 기술되어 있다. A century information about these interrupts are described in section 10.9.
    *V_MB_SIZE[7:0](리드온리, 디폴트값 없음)-이 레지스터는 부호화 또는 복호화되는 화상의 수직사이즈를 나타낸다. * V_MB_SIZE [7: 0] (no read-only, the default value) - This register is a vertical size of an image to be coded or decoded. 여기서 이 값은 매크로블록의 수를 의미한다. Here the value is the number of macroblocks. 예를들면, 만약 수직사이즈가 288펠이면, V_MB_SIZE[7:0]=288/16=8이 된다. For example, if the vertical size is 288 pel, V_MB_SIZE [7: 0] are a = 288/16 = 8. ARM7은 BP 엔코딩 및 디코딩 동작을 매번 시작 되기전에 설정해야 한다. ARM7 should be set before the start of each BP encoding and decoding operations.
    *H_MB_SIZE[7:0](리드온리, 디폴트값 없음)-이 레지스터는 부호화 또는 복호화되는 화상의 수평사이즈를 나타낸다. * H_MB_SIZE [7: 0] (no read-only, the default value) - This register represents the horizontal size of the image to be coded or decoded. 여기서 이 값은 매크로블록의 수를 의미한다. Here the value is the number of macroblocks. 예를 들면, 만약 수직사이즈가 352펠이면, H_MB_SIZE[7:0]=352/16=2된다. For example, if the vertical size is 352 pel, H_MB_SIZE [7: 0] = 352/16 = 2 are. ARM7은 BP 엔코딩 및 디코딩 동작을 매번 시작 되기전에 설정해야 한다. ARM7 should be set before the start of each BP encoding and decoding operations.
    *ARM7_IRQ[0](라이트온리, 디폴트값은 "0")-이 레지스터는 ARM7에 인터럽트를 요구하기 위한 1비트 플레그이고, ARM7_IRQ 출력포트에 직접 연결되어 있다. * ARM7_IRQ [0] (light only, the default value is "0") This register is a 1-bit flag to request an interrupt to the ARM7, is directly connected to the output port ARM7_IRQ. 이 플레그는 만약 BP_STATUS[15:0]의 임의 비트가 "1"로 세트되면, 세트된다. If this flag is BP_STATUS [15: 0] if any of the bits set to "1", it is set. 그리고 ARM7은 이 플레그를 리세트 시킨다. ARM7 and is thereby resetting the flag.
    10.8 BP I/0 데이타워드 포맷 10.8 BP I / 0 data word format
    이 섹션에서는 BP 입출력용 명령어 데이타 및 매크로블록 데이타 워드포멧을 포함한다. This section comprises a command data and macroblock data word formats for the input and output BP.
    10.8.1 BP_MODE 레지스터 포멧 10.8.1 BP_MODE register format
    27'h7C0_0000 어드레스의 32비트 BP_MODE 레지스터는 테이블 25에 주어진 다음의 포멧을 가지고 있다. The 32-bit address 27'h7C0_0000 BP_MODE register has the following format given in table 25. 즉, BP_MODE[31]=PARAM_SET2[7]과 BP_MODE[0]=SF[0]을 나타낸다. That is, BP_MODE shows a [31] = PARAM_SET2 [7] and BP_MODE [0] = SF [0].
    [테이블 25] [Table 25]
    BP_MODE 레지스터 포멧 BP_MODE register format
    *standard_format[SF]_사용되는 비디오 표준은 테이블 26에 정의되어 있다. * Standard_format [SF] _ video standards used are defined in table 26. 상기 SF는 항상 BP가 모든 비디오 엔코딩 및 디코딩 응용에 인에이블 되기전에 ARM7에 의해 정의 되어야 한다. The SF has to be always defined by the ARM7 before the BP to enable all video encoding and decoding applications.
    [테이블 26] [Table 26]
    SF의 정의 Definition of SF
    *picture_type(PT)-영상 코딩 타입은 테이블 27에 정의되어 있다. * Picture_type (PT) - video coding type is defined in Table 27.
    PT용 값 00은 MPEG-1, MPEG-2 및 H 263 응용을 위한 특수한 경우이다. For PT 00 is a special case for MPEG-1, MPEG-2 and H 263 application. 특히, D_영상은 비록 MPEG-2에 사용되지 않더라도 MPEG-2용 영상타입으로 할당된다. Particularly, D_ even if the image is not used in MPEG-2 is assigned to the picture type for MPEG-2. 왜냐하면 MPEG-1 비트스트림이 MPEG-2 비트스트림의 서브세트이기 때문이다. Because the MPEG-1 bitstream is because the subset of the MPEG-2 bitstream.
    [테이블 27] [Table 27]
    PT의 정의 Definition of PT
    *picture_structure(PS)-영상구조 정보는 테이블 28에 정의되어 있다. * Picture_structure (PS) - picture structure information is defined in Table 28. 다시, PS용 값 00은 비논리적이어서 에러를 가져온다. Again, the value 00 is followed by spurious results in an error for PS.
    [테이블 28] [Table 28]
    PS의 정의 The definition of PS
    *parameter_set 0,1 및 2(PARAM_SET 0, PARAM_SET 1, PARAM_SET 2)-이러한 3바이트는 MPEG-1, MPEG-2 및 H.263에 사용되는 다양한 변수로 정의된다. * Parameter_set 0,1 and 2 (PARAM_SET 0, PARAM_SET 1, PARAM_SET 2) - these 3 bytes are defined by a number of variables used in the MPEG-1, MPEG-2 and H.263. 각 변수 세트용 정의는 테이블 29 및 30에 기술되어 있다. Defined for each set of parameters are described in Tables 29 and 30.
    [테이블 29] [Table 29]
    PARAM_SET0의 정의 The definition of PARAM_SET0
    *intra_dc_precision(IDP)-MPEG-2에 정의된 2비트 인트라 dc Precision변수는 MPEG-1 응용에서 00으로 세트되어야 한다. * Intra_dc_precision (IDP) a 2-bit intra dc Precision variable defined in -MPEG-2 is to be set to 00 in the MPEG-1 applications.
    *top_field_first(TFF)-움직임 벡터 엔코딩 및 디코딩에 사용되는 MPEG-2용 플레그이다. * Top_field_first (TFF) - a flag for MPEG-2 that is used for motion vector encoding and decoding.
    *frame_pred_frame_dct(FPFD)-MPEG-2용 플레그는 프레임_DCT 및 플레임 예측이 사용되는 것을 나타낸다. * Frame_pred_frame_dct (FPFD) flag for -MPEG-2 indicates that the frame _DCT and flame prediction is used.
    *cancealment _ motion _ vectors(CMV) 또는 advamced _ prediction _ mode(AP)-MPEG-2에서, 이 플레그는 움직임 벡터가 영상간 매크로블록에 사용되는 것을 나타낸다. * In cancealment _ _ motion vectors (CMV) or advamced _ prediction _ mode (AP) -MPEG-2, the flag indicates that the motion vectors used for inter picture macroblock. H.263에서, 이 플레그는 만약, 어드밴드이드 예측모드가 ON이면, 1로 세트된다. If in H.263, this flag is if, band adjuster Id prediction mode is ON, it is set to 1. 그렇지 않은 경우에는 0으로 세트된다. If not, it is set to zero. 다른 표준을 위해서 이 플레그는 0으로 세트되어야 한다. For other standard flags should be set to zero.
    *intra_vlc_format(IVF)-MPEG-2용 플레그는 영상간 매크로블록을 위한 VLC 테이블 형태를 결정한다. * Intra_vlc_format (IVF) -MPEG-2 flag is for determining the VLC table form for the macroblock to-image.
    *altermate-scan(AS)-MPEG-2용 플레그는 부호화 및 복호화되는 계수의 차수를 결정한다. * Altermate-scan (AS) flag for -MPEG-2 determines the degree of the coefficient to be coded and decoded.
    *vertical_size_flag(VSF) 또는 continuous_presence_multipoint(CPM)-MPEG-1 및 MPEG-2에서, 이 플레그의 영상의 수직크기가 2800 라인을 넘으면 1로 세트되고, 그렇지 않으면 0으로 세트되어야 한다. * In vertical_size_flag (VSF) or continuous_presence_multipoint (CPM) -MPEG-1 and MPEG-2, the vertical dimension of the image of the flag is set longer than the line 2800 to one, otherwise shall be set to zero. H.263에서, 이 플레그는 연속적으로 현재 멀티포인트 모드가 사용되면 1로 세트되고 그렇지 않으면 0으로 세트된다. In H.263, this flag is, if when the current is continuously multipoint mode is set to 1, or is set to zero.
    [테이블 30] [Table 30]
    PARAM_SET1 및 PARAM_SET2의 정의 The definition of PARAM_SET1 and PARAM_SET2
    10.8.2 BP_CONTROL 레지스터 포멧 10.8.2 BP_CONTROL register format
    BP_CONTROL[31:0] 레지스터(어드레스 27'h7C0_0004)를 위한 비트 사양은 테이블 31에 나타나 있다. BP_CONTROL [31: 0] bit specifications for the register (address 27'h7C0_0004) is shown in table 31.
    [테이블 31] [Table 31]
    BP_CONTROL 레지스터 포멧 BP_CONTROL register format
    *BP_enable(BP-EN)-이 플레그가 ARM7 또는 VP에 의해 1로 세트될때, BP는 과정을 수행한다. * BP_enable (BP-EN) - When this flag is set to 1 by the ARM7 or VP, BP performs a process. 그러므로, 모든 다른 레지스터 구조는 이 플레그가 세트되기 전에 완료된다. Therefore, all of the other register structure is completed before the flag is set. 만약 BP가 과정을 마쳤다면, 이 플러그는 BP에 의해 클리어된다. If BP is finished the procedure, the plug is cleared by the BP.
    *software_reset(SOFT_RESET)-플레그가 ARM7 또는 VP에 의해 세트될 때, BP는 현재의 과정을 중단하여 디폴트 상태에서 모든 초기 레지스터로 리턴하여, 아이들 상태가 된다. * Software_reset (SOFT_RESET) - when the flag is to be set by the ARM7 or VP, BP is returned to the default state to interrupt the current process to all the initial register it is in an idle state. ARM7은 BP-EN 플레그를 세팅하여 BP 과정을 다시 시작할 수 있다. ARM7 can restart the BP process by setting the BP-EN flag. BP 하드웨어 리세트 신호는 엑티브로우이다. BP hardware reset signal is active low.
    *pause(PAUSE)-플레그가 ARM7 또는 VP에 의해 1로 세트될때, BP는 현재의 과정동작을 중지한다. * Pause (PAUSE) - when the flag is set to 1 by the ARM7 or VP, BP will stop the current operation of the process. 사용자는 BP_EN 플레그를 설정함으로서 중지 동작이 실행된다. The user is running to stop the operation by setting the flag BP_EN.
    *detect_start_code(DETECT_START_CODE)-플레그가 ARM7 또는 VP에 의해 1로 세트시, BP는 IBUFO에 있는 데이타 가운데서 다음 시작코드를 찾는다. * Detect_start_code (DETECT_START_CODE) - a flag when set to 1 by the ARM7 or VP, BP looks for the next start code from among data in the IBUFO. 그러므로, 사용자가 IBUFO_START 및 IBUFO_END를 위한 바람직한 어드레스를 세트해야한다. Therefore, the user must set the preferred address for IBUFO_START and IBUFO_END. 이러한 명령어는, 만약 BP가 아이들 상태이면, 적절하게 동작할 것이다. These instructions, and if the BP is in an idle state, it will operate properly. 그러므로, ARM7은 만약 BP가 아이들이 아닌 경우 이 명령을 외부로 보내기 전에 소프트웨어 리세트 명령은 우선적으로 BP로 보내야 한다. Therefore, ARM7 is a software reset command before if BP is not a children Send this command to the outside should be sent to primarily BP.
    *seep(STEP)-이 플레그가 ARM7 또는 VP에 의해 1로 세트되면, BP는 현재 동작과정의 한 상태를 수행한다. * Seep (STEP) - If this flag is set to 1 by the ARM7 or VP, BP performs a current state of the operation process. 이것은 디버깅하는데 매우 필요한 특징이다. This is a much needed feature for debugging. ARM7은 이 단계동작이 인에이블하도록 중지 명령을 우선적으로 보내야 한다. ARM7 should send a stop command to the first to the enable this operation step.
    *context_switching_mode(CTX_MODE)-플레그가 1로 CTX_SWITCH를 세팅하여 ARM7 또는 VP에 의해 1로 세트시, BP는 선점 스위칭모드를 수행한다. * Context_switching_mode (CTX_MODE) - When set to 1 by the flag to set the CTX_SWITCH 1 in ARM7 or VP, BP performs switching preemption mode. 만약 이것은 CTX_SWITCH가 1로 세팅됨에 따라 0으로 세트되면, BP는 협력 컨텍트 스위칭 모드를 수행한다. If this is when the CTX_SWITCH as set in the first set to 0, BP performs cooperation keontekteu switching mode. 1로 CTX_SWITCH를 세팅하지 않고, CTX_MODE를 세팅하는 것은 BP과정에 영향을 미치지 않는다. Without setting the CTX_SWITCH by 1 to 5, wherein setting the CTX_MODE it does not affect the BP process. 컨텍트 스위칭의 상세한 내용은 섹션 10.2를 참조. Details of keontekteu switching, see Section 10.2.
    *context_reload_request(CTX_RELOAD)-플레그가 ARM7 또는 VP에 의해 "1"로 세트시, BP는 SDRAM에 이미 저장된 컨텍트를 다시 로드한다. * Context_reload_request (CTX_RELOAD) - when the flag set to "1" by the ARM7 or VP, BP will reload the previously stored keontekteu the SDRAM. 그러면 BP는 어드레스 SAVE_ADR[31:0]로부터 저장된 컨텍트를 읽는다. The BP is the address SAVE_ADR [31: 0] read from keontekteu stored. 컨텍트 스위칭에 대한 상세한 내용은 섹션 10.12를 참조. Trafic keontekteu switching, see Section 10.12.
    *error_handle_mode(ERR_HANDLE_MODE)-이 플레그는 전송된 압축비트 스트림에서 에라가 발생시 BP에 에러복구 과정을 수행하는데 이용된다. * Error_handle_mode (ERR_HANDLE_MODE) - This flag is used to Era performs the error recovery process in the event of BP in the transmitted compressed bit stream.
    입력비트 스트림이 무효 데이타일 경우, BP는 ARM7을 인터럽트시키고 이 플레그의 내용을 체크한다. If the input bit stream is invalid data, BP is interrupted and checking the contents of the flag the ARM7. 이 플레그가 "1"로 세트시, BP는 자동적으로 다음 시작 코드를 찾는다. When this flag is set to "1", BP will automatically look for the next start code. 만약, 시작코드가 슬라이스 또는 GOB라면, BP는 이 과정을 다시 수행한다. If, if the start code of the slice or GOB, BP must perform this procedure again. 이 플레그가 "0"으로 세트시, BP는 다음 시작코드를 찾지않고 아이들 상태로 동작한다. When this flag is set to "0", BP will not find the following code to start and operate in an idle state. BP와 ARM7 사이의 핸드세이킹은 섹션 10.13에 기술되어 있따. Handshaking between BP and the ARM7 ittta described in section 10.13.
    *number_of_macroblocks_to_be_encoded(NO_MBS[15:0])-이 레지스터는 슬라이스 또는 GOB에서 부호화된 메크로 블록의 수를 나타내는 16비트를 포함한다. * Number_of_macroblocks_to_be_encoded (NO_MBS [15: 0]) - This register contains a 16-bit, which is the number of the macro block coded in the slice or GOB. 이러한 65535까지의 비트 분해능을 사용하여, 메크로블록은 슬라이스 또는 GOB에서 엔코딩된다. Using the bit resolution of up to 65535 of these, macro blocks are encoded in a slice or GOB. 여기서, "0"의 값은 메크로블록의 수로서 허용되지 않는다. Here, the value of "0" are not acceptable as the number of macro blocks.
    10.8.3 BP_STATUS 레지스터 포맷 10.8.3 BP_STATUS register format
    BP_STATUS[31:0] 레지스터(어드레스 27'h 7CO_0050)은 테이블 32에 나타나 있다. BP_STATUS [31: 0] register (address 27'h 7CO_0050) is shown in table 32.
    [테이블 32] [Table 32]
    BP_STATUS 레지스트 포멧 BP_STATUS resist format
    *input_buffer_0_done(IBUF0_DONE)-플레그는 입력버퍼 0에 있는 데이타를 상기 BP에 의해 모두 사용된다. * Input_buffer_0_done (IBUF0_DONE) - flag is used by all the data in the input buffer 0 in the BP. 이 플레그는 BP에 의해 세트되고, ARM7 또는 VP에 의해 클리어된다. This flag is set by the BP, it is ARM7 or cleared by the VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *input_buffer_1_done(IBUF1_DONE)-이 플레그는 입력버퍼 1에 있는 데이타가 상기 BP에 의해 모두 사용된 것을 나타낸다. * Input_buffer_1_done (IBUF1_DONE) - this flag indicates that the data in the input buffer 1 both by the BP. 이 플레그는 BP에 의해 세트되고, ARM7 또는 VP에 의해 클리어된다. This flag is set by the BP, it is ARM7 or cleared by the VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *output_buffer_0_full(OBUF0_FULL)-이 플레그는 BP에 의해 출력 버퍼 0이 채워진 다는 것을 나타낸다. * Output_buffer_0_full (OBUF0_FULL) - this flag indicates that the BP by the output buffer 0 is filled. 상기 플레그는 BP에 의해 세트되고 그리고 ARM7 또는 VP에 의해 클리어된다. The flag is cleared by being set by the BP and the ARM7 or VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *output_buffer_1_full(OBUF1_FULL)-이 플레그는 BP에 의해서 출력 버퍼 1이 채워진다는 것을 나타낸다. * Output_buffer_1_full (OBUF1_FULL) - this flag indicates that the output buffer 1 is filled by the BP. 상기 플레그는 BP에 의해 세트되고 그리고 ARM7 또는 VP에 의해 클리어된다. The flag is cleared by being set by the BP and the ARM7 or VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *BP_processing_done(BP_DONE)-이 플레그는 상기 BP가 슬라이스 또는 GOB를 엔코딩하거나 또는 디코딩시 슬라이스 또는 GOB가 아닌 시작 모드를 검출한 것을 나타낸다. * BP_processing_done (BP_DONE) - this flag indicates that the BP detected by the starting mode, not encoding the slice or GOB or slice or GOB decode. 이 플레그는 BP에 의해 세트되고 그리고 ARM7 또는 VP에 의해 클리어된다. The flag is cleared by being set by the BP and the ARM7 or VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *context_switching-done(CTX_SW_DONE)-이 플레그는 BP가 컨텍트 스위칭 모드에서 다른 작업으로 전환될려고 하는 것을 나타낸다. * Context_switching-done (CTX_SW_DONE) - this flag indicates that the transition from BP doelryeogo keontekteu switching mode to a different operation. 이 플레그는 BP에 의해 세트되고 그리고 ARM7 또는 VP에 의해 클리어된다. The flag is cleared by being set by the BP and the ARM7 or VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *context_reload_done(CTX_RELOAD_DONE)-이 플레그는 BP가 어드레스 SAVE_ADR[31:0]로부터 저장된 컨텍트를 위해 재로드 동작이 완료되었다는 것을 나타낸다. * Context_reload_done (CTX_RELOAD_DONE) - this flag is the address BP SAVE_ADR [31: 0] indicates that the re-loading operation is completed for keontekteu saved from. 이 플레그는 BP에 의해 세트되고 그리고 ARM7 또는 VP에 의해 클리어된다. The flag is cleared by being set by the BP and the ARM7 or VP. 이러한 플레그는 인터럽트 상태를 나타낸다. This flag represents the interrupt status.
    *BP_error_flag(BP_ERR)-이 플레그는 에러가 데이타를 처리하는 동안에 BP에서 일어난다는 것을 나타낸다. * BP_error_flag (BP_ERR) - this flag indicates that the error takes place in BP during the processing of the data. 이 플레그는 BP_ERR_CODE[7:]0(=BP_ STATUS) [31:24]이 제로가 아닐 경우 세트된다. This flag is BP_ERR_CODE [7:] is set if 0 (= BP_ STATUS) [31:24] is not zero. 상세한 내용은 서브세트 10.9.2에서 찾을 수 있다. Detailed information can be found in a subset 02/09/10
    *input_buffer-0_full(IBUF0_FULL)-이 플레그는 입력버퍼 0에 있는 데이타가 ARM7 또는 VP에 의해 채워진다는 것을 나타낸다. * Input_buffer-0_full (IBUF0_FULL) - this flag indicates that the data in the input buffer is filled by the zero ARM7 or VP. 이 플레그는 ARM7 또는 VP에 의해 세트되고, BP에 의해 클리어된다. This flag is set by the ARM7 or VP, it is cleared by the BP.
    *input_buffer-1_full(IBUF1_FULL)-이 플레그는 입력버퍼 1에 있는 데이타가 ARM7 또는 VP에 의해 채워진다는 것을 나타낸다. * Input_buffer-1_full (IBUF1_FULL) - this flag indicates that the data in the input buffer 1 is filled by the ARM7 or VP. 이 플레그는 ARM7 또는 VP에 의해 세트되고 BP에 의해 클리어된다. This flag is set by the ARM7 or VP is cleared by the BP.
    *output_buffer-0_done(OBUF0-DONE)-이 플레그는 출력버퍼 0에 있는 데이타가 ARM7 또는 VP에 의해 모두 사용되었다는 것을 나타낸다. * Output_buffer-0_done (OBUF0-DONE) - this flag indicates that the data in the output buffer 0 has been used both by the ARM7 or VP. 이 플레그는 ARM7 또는 VP에 의해 세트되고 BP에 의해 클리어된다. This flag is set by the ARM7 or VP is cleared by the BP.
    *output_buffer-1_done(OBUF1_DONE)-이 플레그는 출력버퍼 1에 있는 데이타가 ARM7 또는 VP에 의해 모두 사용되었다는 것을 나타낸다. * Output_buffer-1_done (OBUF1_DONE) - this flag indicates that the data in the output buffer 1 has been used both by the ARM7 or VP. 이 플레그는 ARM7 또는 VP에 의해 세트되고 BP에 의해 클리어된다. This flag is set by the ARM7 or VP is cleared by the BP.
    *valid_bit_position(VALID_BIT_POS[2:0])-다음과정을 위해 VALID_BYTE_ADR[31:0]에 저장되어 있는 3비티 정보는 데이타 바이트 가운데 유효한 비트 위치를 나타낸다. * Valid_bit_position (VALID_BIT_POS [2: 0]) - VALID_BYTE_ADR [31: 0] to the following procedure three Bt information stored in the valid bit indicates a position of the data byte. 비디오 엔코딩에서, BP는 값을 설정해야 되고, ARM7은 이 비트 위치로부터 다음 과정을 수행해야 한다. In video encoding, BP is to set the value, ARM7 should proceed as follows: from the bit position. 비디오 디코딩에서, ARM7은 값을 설정해야하고, BP는 이러한 비트 위치로부터 과정을 수행해야 한다. In the video decoding, the ARM7 and set values, BP has to perform the process from these bit positions.
    *BP_error_code(BP-ERR_CODE[7:0])-8비트 정보는 BP에서 어떤 에러가 발생하였는지를 나타낸다. * BP_error_code (BP-ERR_CODE [7: 0]) - 8-bit information indicates whether any error has occurred in the BP. 제로 값은 어떤 에러도 발생하지 않았음을 나타낸다. Zero value indicates that it has not caused any error. 상세한 내용은 서브섹션 10.9.2에 있다. For details, in the sub-section 10.9.2.
    10.8.4 디코딩하기 위한 입력데이타 포멧과 엔코딩하기 위한 출력데이타 포멧 8.4.10 input data format and output data format for encoding for decoding
    이러한 경우에, 데이타는 실질적으로 압축된 비트 스트링으로 되어 있다. In this case, the data is in a substantially compressed in the bit string. 이러한 데이타는 초기 코드, 헤더 변수 및 이에 대응되는 표준에 따라 압축된 데이타를 포함해야 한다. This data must include the compressed data according to an initial code, a header and a variable standard corresponding thereto. 이러한 비트 스트림은 바이트 단위별로 패킷되지만, 그러나 어떤 동작에서는 바이트를 할당할 필요가 없다. The bitstream packet, but byte-by-byte basis, but in some operations it is not necessary to assign the byte. 이러한 비트 스트림은 여러가지의 슬라이스 또는 GOB를 위한 데이타를 포함한다. The bitstream includes the data for the various slices or the GOB.
    10.8.5 엔코딩하기 위한 입력 데이타 포멧과 디코딩을 위한 출력 데이타 포멧 10.8.5 output data formats for input data format for encoding and decoding
    이런 경우에, 데이타는 실질적으로 메크로블록 헤더 정보, 움직임 데이타 및 화소 계수 데이타로 이루어져 있다. In this case, the data is substantially consists of the macro-block header information and the motion data and the pixel coefficient data. 이러한 종류의 데이타용 포멧은 다음에 정의된다. This type of format for data is defined below.
    10.8.5.1 매크로블록 헤더 워드 10.8.5.1 macro-block header word
    매크로블록 헤더는 항상 6바이트로 이루어져 있으며, 테이블 33에 주어진 다음의 데이타 포멧을 가지고 있다. Macro-block header is always composed of 6 bytes, and has the following data formats given in table 33.
    [테이블 33] [Table 33]
    매크로블록 헤드 워드 포멧 Macroblock head word format
    여기서, 상기 테이블에 나타난 변수는 다음에 정의된다. Here, the variables shown in the table are defined below.
    *vertical_macroblock_address(VMA) 또는 group_number(GRN0)-이러한 바이트는 1에서 255까지의 값을 갖는 수직 매크로블록의 위치를 나타낸다. * Vertical_macroblock_address (VMA), or group_number (GRN0) - This byte indicates the position of the vertical macro blocks having a value of from 1 to 255. 제1수직 위치는 0이 아닌, 1로 기재되어 있다. The first vertical position is described as a first, non-zero. 예외적인 경우, H.261 엔코딩시, 이러한 필드는 블록 그룹의 위치를 나타내는 groupf_number 정보를 나타내는 것이다. In exceptional cases, when H.261 encoding, this field indicates the groupf_number information indicating the position of the block group.
    *horizontal_macroblock_address(HMA) 또는 macroblock_position(MBPS)-이러한 필드는 1에서 255까지의 값을 갖는 수평 매크로블록의 위치를 나타낸다. * Horizontal_macroblock_address (HMA) or macroblock_position (MBPS) - This field indicates the horizontal position of the macro block which has a value of from 1 to 255. 제1수평 위치는 0이 아닌, 1로서 기재되어 있다. A first horizontal position is described as a first, non-zero. 예외적인 경우, H.261 엔코딩시, 이러한 필드는 GOB중에서 매크로블록의 33 가능성있는 위치중에서 어느하나를 나타낸다. In exceptional cases, when H.261 encoding, this field indicates one of a possible 33 positions in the macroblock in a GOB.
    *macroblock_intra(I)-만약, 현재의 매크로블록이 영상간 부호화되면, 1로 세트되고, 그렇지 않은 경우는 0으로 세트된다. * Macroblock_intra (I) - if, when the current macroblock is coded between the image, is set to 1, and otherwise is set to zero.
    *macroblock_patterm(P)-만약, 현재의 매크로블록이 부호화된 블록을 포함하면, 1로 세트되고, 그렇지 않은 경우는 0으로 세트된다. * Macroblock_patterm (P) - If the inclusion of the current macro block is the coding block, is set to 1, and otherwise is set to zero.
    *macroblock_quant(Q)-만약, 현재의 매크로블록이 새로운 양자 척도 변수를 가지고 있으면, 1로 세트되고, 그렇지 않은 경우는 0으로 세트된다. * Macroblock_quant (Q) - if, if the current macroblock has a new quantum scale variable, being set to 1, and otherwise is set to zero.
    *macroblock_motion_forward(MF)-만약, 현재의 매크로블록이 순방향 예측이라면, 1로 세트되고, 그렇지 않은 경우는 0으로 세트된다. * Macroblock_motion_forward (MF) - If, If the current macroblock is forward prediction, is set to 1, and otherwise is set to zero.
    *macroblock_motion_backward(MB)-만약, 현재의 매크로블록이 역방향 예측 또는 H.263에서 B-blocks을 포함한다면, 1로 세트되고, 그렇지 안은 경우는 0으로 세트된다. * Macroblock_motion_backward (MB) - if, if the current macro-block comprises a B-blocks in a backward prediction, or H.263, is set to 1, or when the inside is set to zero.
    *dct_type(DT), loop_filter(LF) 또는 advanced_prediction(M4)-바이트2의 비트[5]는 각각의 동작에서 다른 의미를 가진다. * Dct_type (DT), loop_filter (LF) or advanced_prediction (M4) - bit [5] of byte 2 has a different meaning in each operation. MPEG-1에서는 이것이 사용되지 않는다. The MPEG-1 this is not used. MPEG-2에서는 dct_type을 의미한다. The MPEG-2 refers to dct_type. 만약, 매크로블록이 필드 DCT 코딩되었다면, 이 플레그는 1로 세트된다. If, if this macroblock field DCT coding, the flag is set to 1. 만약, 프레임 DCT 코딩되었다면, 0으로 세트되어야 한다. If, if the frame DCT coding, should be set to zero. H.261에서, 이 플레그는 만약, 루프 필터가 현재의 매크로블록에서 사용되었다면 세트된다. In H.261, this flag is set if If the loop filter is used in the macroblock of the current. 그렇지 않는다면, 0으로 세트된다. If not, it is set to zero. H.263에서, 만약 현재의 매크로블록이 어드밴스 예측 모드를 사용하였다면, 1로 세트되고, 그렇지 않다면 0으로 세트된다. In H.263, if If the current macroblock using the advanced prediction mode, is set to 1, otherwise, it is set to zero.
    *motion_type(MT)-2비트 필드는 테이블 34 및 35에서 의미하는 MPEG-2에서 사용된 frame_motion_type 또는 fieldmotion_type을 나타낸다. * Motion_type (MT) -2-bit field indicates a frame_motion_type or fieldmotion_type used in MPEG-2, which means the table 34 and 35.
    [테이블 34] [Table 34]
    frame_motion_type의 의미 Meaning of frame_motion_type
    [테이블 35] [Table 35]
    field_motion_type의 의미 Meaning of field_motion_type
    *quantizer_scale(Q_SCALE)-DCT 계수 레벨의 재현 레벨을 스케일링하도록 범위 1에서 31까지 표시되지 않은 정수이다. * Quantizer_scale (Q_SCALE) is unmarked integer in the range 1 to scale the reproduction level of the level coefficient -DCT to 31. 모든 매크로블록 헤더는, 비록 그 값이 이전 매크로블록(즉, macroblocks_quant는 제로이다)의 값과 같다고 하더라도, 이러한 변수에 맞는 적정한 값을 포함해야 한다. All the macroblock header, even if the value is equal to the value of the previous macroblock (i.e., macroblocks_quant is zero), must contain the proper values ​​for these variables. 엔코딩에서, 사용자는 이러한 필드에 적당한 값을 라이트시킬 책임이 있다. In the encoding, the user has the responsibility to write the appropriate values ​​in these fields. 디코딩시에, BP는 이 필드에 호프만 디코드된 quantizer scale값을 라이트해야 한다. Upon decoding, BP should be light Huffman decoded quantizer scale value in this field. 만약, 현재의 매크로블록이 이 필드에 호프만 코드를 포함하지 않는다. If the current macro-block does not include the Huffman code in this field. BP는 이전 매크로블록의 스케일 값을 써야한다. BP will write the scale value of the previous macroblock.
    *coded_block_pattern_0(CBP_0)-6비트 코드는 현재의 매크로블록에서 부호화된 블록을 나타낸다. * Coded_block_pattern_0 (CBP_0) -6-bit code represents the block coded in the current macroblock.
    여기서, here,
    CBP_0[5] ⇒ 휘도(Y) 0블록 CBP_0 [5] ⇒ luminance (Y) blocks 0
    CBP_0[4] ⇒ 휘도(Y) 1블록 CBP_0 [4] ⇒ luminance (Y) 1 block
    CBP_0[3] ⇒ 휘도(Y) 2블록 CBP_0 [3] ⇒ luminance (Y) 2 blocks
    CBP_0[2] ⇒ 휘도(Y) 3블록 CBP_0 [2] ⇒ luminance (Y) 3 block
    CBP_0[1] ⇒ 색상 블루(Cb)블록 CBP_0 [1] ⇒ color blue (Cb) blocks
    CBP_0[0] ⇒ 색상 레드(Cr) 블록 CBP_0 [0] ⇒ Color Red (Cr) blocks
    *coded_block_pattern_1(CBP_1)-H.263에서 BP 프레임의 B-blocks을 위한 추가적인 coded_blocks_pattern이다. * Coded_block_pattern_1 (CBP_1) an additional coded_blocks_pattern for B-blocks of BP frame from -H.263. 여기서, here,
    CBP_1[5] ⇒ 휘도(Y) 0블록 CBP_1 [5] ⇒ luminance (Y) blocks 0
    CBP_1[4] ⇒ 휘도(Y) 1블록 CBP_1 [4] ⇒ luminance (Y) 1 block
    CBP_1[3] ⇒ 휘도(Y) 2블록 CBP_1 [3] ⇒ luminance (Y) 2 blocks
    CBP_1[2] ⇒ 휘도(Y) 3블록 CBP_1 [2] ⇒ luminance (Y) 3 block
    CBP_1[1] ⇒ 색상 블루(Cb)블록 CBP_1 [1] ⇒ color blue (Cb) blocks
    CBP_1[0] ⇒ 색상 레드(Cr) 블록 CBP_1 [0] ⇒ Color Red (Cr) blocks
    *logical_channerl_indicator(LCI)-GOB 논리적 채널을 위한 2비트 정보는 단지 H.263에서 연속적인 현재 멀티 포인트에서만 사용된다. * Logical_channerl_indicator (LCI) -GOB 2-bit information for a logical channel is used only continuous current multipoint in H.263.
    *frame_id(FID)-H.263용 GOB 프레임 ID의 2비트 정보 * Frame_id (FID) 2-bit information of the GOB frame ID for -H.263
    *macroblock_address_indicator(MBA_INC)-현재의 매크로블록 어드레스가 증가하는 값을 나타내기 위해 2바이트 정보를 나타낸다. * Macroblock_address_indicator (MBA_INC) - denotes a two-byte information to indicate the value of the current macro block address increment. 이 정보는 항상 추가적인 정보로서 BP에 의해 제공되며, 사용자는 입력 포멧에 설정할 필요가 없다. This information is always provided by the BP as an additional information, the user does not need to be set for the input format. 그리고 입력 매크로블록 헤더 워드에서 규정한 어떤 값을 BP에 의해 무시될 것이다. And it will be a value specified in the input macro-block header word ignored by the BP.
    *previous_dc_luminance(PRE_DC_Y)-이전 매크로블록에서 휘도 블록의 dc값을 위한 2바이트정보이다. * Previous_dc_luminance (PRE_DC_Y) - a two-byte information to the dc values ​​of the luminance blocks in the previous macroblock. 만약, 매크로블록이 스킵되면, 리세트값이 전송된다. If, when the macro block is skipped, and the reset value is transmitted. 이 정보는 항상 추가적인 정보로서 BP에 의해 제공됨으로서, 사용자는 입력 포멧에 설정할 필요가 없다. This information by being always provided by the BP as an additional information, the user does not need to be set for the input format. 그리고 입력 매크로블록 헤더 워드에서 규정한 어떤 값은 BP에 의해 무시될 것이다. And any values ​​specified in the input macro-block header word will be ignored by the BP.
    *previous_dc_chrominance_blue(PRE_DC_Cb)-이전 매크로블록에서 블루 색채블록의 dc값을 위한 2바이트정보이다. * Previous_dc_chrominance_blue (PRE_DC_Cb) - a two-byte information to the dc values ​​of the blue color block in the previous macroblock. 만약 매크로블록이 스킵되면, 리세트 값이 전송된다. If a macroblock is skipped, and the reset value is transmitted. 이 정보는 항상 추가적인 정보로서 BP에 의해 제공됨으로써, 사용자는 입력 포멧을 설정할 필요가 없다. This information is always being supplied by the BP as an additional information, the user does not have to set the input format. 그리고 입력 매크로블록 헤더 워드에서 규정한 어떤 값은 BP에 의해 무시될 것이다. And any values ​​specified in the input macro-block header word will be ignored by the BP.
    *previous_dc_chrominance_red(PRE_DC-Cr)-이전 매크로블록에서 레드 색채블록의 dc값을 위한 2바이트정보이다. * Previous_dc_chrominance_red (PRE_DC-Cr) - a two-byte information to the dc values ​​of the red color block in the previous macroblock. 만약 매크로블록이 스킵되면, 리세트값이 전송된다. If a macroblock is skipped, and the reset value is transmitted. 이 정보는 항상 추가적인 정보로서 BP에 의해 제공됨으로서, 사용자는 입력 포켓을 설정할 필요가 없다. This information is by being always provided by BP as the additional information, the user does not need to set the input pocket. 그리고 입력 매크로블록 헤더 워드에서 규정한 어떤 값은 BP에 의해 무시될 것이다. And any values ​​specified in the input macro-block header word will be ignored by the BP.
    10.8.5.2 motion 데이타 워드 10.8.5.2 motion data word
    각 매크로블록 헤더는 만약, 매크로블록이 motion 벡터를 포함한다면, 추가적인 헤더 워드를 가져야 하면, 먼저 MPEG-1 및 MPEG-2의 경우를 고려한다. If each macroblock header, if the macroblock comprises a motion vector, when have the additional header word, first consider the case of MPEG-1 and MPEG-2. 이러한 표준은 다음 과정중에서 어느 하나가 일어날 때, motion 벡터를 위해 테이블 36에 도시된 추가적인 헤더 워드 포멧을 가지게 될 것이다. These standards will have an additional header word format as shown in any one of the following processes take place, the table 36 for the motion vector.
    조건 1) MF=1 또는 (I=1 및 CMV=1)일때, Condition 1) MF = 1 or (I = 1 and CMV = 1) when,
    조건 2) MB=1일 때 Condition 2) MB = 1 be when
    [테이블 36] [Table 36]
    MPEG-1 및 MPEG-2를 위한 일반적인 motion 벡터 데이타 포맷 General motion vector data format for MPEG-1 and MPEG-2
    테이블 36에서, 모든 요소의 값을 헬프-펠 정밀도가 된다. In Table 36, the values ​​of all elements help - is the Pell precision. 상기 FS0, FS1, FS2 및 FS3은 각 motion 벡터에서 필드선택을 확인하기 위한 1비트 플레그이다. The FS0, FS1, FS2 and FS3 is a one-bit flag for confirming the field selected in each motion vector. 만약, 어떤 필드도 선택되지 않는다면, 상기 플레그는 0으로 세트되야 한다. If, If any field is selected, the flag is set to zero should be. 왜냐하면 MPEG-1은 필드 선택 정보를 사용하지 않기 때문인데, 그러므로 이러한 플레그는 0으로 세트된다. Because is because MPEG-1 does not use the selection information field, therefore such a flag is set to zero.
    하나의 예외적인 경우가 듀얼 프라임 motion 벡터의 MPEG-2 엔코딩에서 발생한다. The one exception occurs in the case of MPEG-2 encoding of dual prime motion vector. 이러한 경우, 순방향 motion 벡터는 16바이트(실질적으로, 8바이트가 사용됨)로 구성되고, 포멧은 테이블 37에서와 같이 된다. In this case, the forward motion vector is composed of 16 bytes (actually used is, the 8-byte), format is as shown in table 37. 정상적으로, BP는 비디오 엔코딩 응용에서 움직임 벡터값을 차분값으로 변환할 것이다. Normally, BP will be converted to a motion vector value in the video encoding application to the difference value. 그러나, 테이블 37에 움직임 벡터성분은 호프만 엔코더에서 바로 그 입력이 되는 차분 값이다. However, the motion vector component in Table 37 is a difference value that is directly input from the Huffman encoder. 듀얼프라임움직임 벡터는 MPEG-2 디코딩 응용의 경우 BP에 의해 동작된다. Dual prime motion vector is operated by the BP if the MPEG-2 decoding application.
    [테이블 37] [Table 37]
    MPEG-2 엔코딩용 듀얼 프라임 모드에서 움직임 벡터 데이타 포멧 Motion vector data format in the dual prime mode for the MPEG-2 encoding
    상기 H.261 및 H.263은 다소의 다른 움직임 벡터 데이타 포멧을 가진다. The H.261 and H.263 have different motion vector data format of a bit. 대부분의 경우에, 한 바이트로 어떤 움직임 벡터 성분값을 충분히 나타낼 수 있다. In most cases, it is possible to sufficiently exhibit any motion vector component values ​​in one byte. MF 및 M4 플레그의 내용에 따라서, 대응되는 움직임 보상 매크로블록은 적어도 2개이며, 그리고 많은 경우 10개의 motion 벡터 성분을 가질 것이다. In accordance with the contents of the MF flag and M4, the corresponding motion-compensated macro-block is at least two, and in many cases will have a motion vector component 10. 상기 움직임 벡터 데이타의 데이타 포멧은 테이블 38에 나타나 있다. Data format of the motion vector data is shown in Table 38.
    [테이블 38] [Table 38]
    H.261 및 H.263을 위한 motion 벡터 데이타 포멧 motion vector data format for H.261 and H.263
    10.8.5.3 픽셀 계수 데이타 워드 10.8.5.3 pixel count data word
    4개의 비디오 압축 표준은 양자화 레벨을 위해 서로 다른 최대 픽셀비트 길이를 가진다. 4 video compression standard has a different maximum pixel bit length for the quantization levels. 이러한 비교는 테이블 39에 나타나 있다. This comparison is shown in Table 39.
    [테이블 39] [Table 39]
    입출력 픽셀 비트 분해능 Input and output pixel bit resolution
    그러므로, MPEG 및 비디오 화상회의 표준용 픽셀 데이타 포멧은 테이블 40에서 볼수있는 것과 같이, 차이가 있다. Therefore, MPEG and video conferencing for the pixel data format standard is a difference, as you can see from the table 40.
    [테이블 40] [Table 40]
    픽셀 계수 데이타 포멧 Pixel count data format
    10.9 인터럽트 조건 10.9 interrupt conditions
    BP는 만약에, 이 섹션에서 기술된 인터럽트 조건에서 적합하면, ARM7_IRQ 플레그를 확인하여 ARM7을 인터럽트한다. BP is if, if appropriate in the interrupt conditions described in this section, check the ARM7_IRQ flags and interrupt the ARM7. 상기 BP는 2개의 인터럽트 조건의 세트 즉, 디폴트 및 에러 조건을 가지고 있다. The BP has a second set of interrupts conditions i.e., default, and error conditions. 이러한 조건들은 BP_STATUS[15:0]에 저장되어 있다. These conditions BP_STATUS [15: 0] is stored in. 만약, 어느 하나의 비트가 BP에 의해 세트되면, ARM7_IRQ 신호를 엑티브시킬 것이다. If, when any of the bits are set by the BP, will the ARM7_IRQ signal active. 이러한 조건들은 BP_INT_MASK[15:0]레지스터의 대응되는 비트를 세팅시킴으로써 모두 마스크할 수 있다. These conditions BP_INT_MASK [15: 0] can be masked by setting all of the bit corresponding to the register.
    10.9.1 디폴트 인터럽트 조건 10.9.1 default interrupt conditions
    *Default condition 0(BP_STATUS[0])-입력버터 0의 처리가 끝났을때, 또한 상기 BP가 IBUF0-DONE 플레그를 또한 세팅시키는 ARM7_IRQ을 확인해야 한다. * Default condition 0 (BP_STATUS [0]) - When the processing of the input butter zero was over, also it has to check the ARM7_IRQ to which the BP also set the IBUF0-DONE flag.
    *Default condition 1(BP_STATUS[1])-입력버퍼 1의 처리가 끝났을때, 또한 상기 BP가 IBUF1_DONE 플레그를 세팅시키는 ARM7_IRQ을 확인행 한다. * Default condition 1 (BP_STATUS [1]) - When the processing of the input buffer 1 is finished, the line also confirmed to have the BP ARM7_IRQ IBUF1_DONE set the flag.
    *Default condition 2(BP_STATUS[2])-입력버퍼 0의 처리가 끝났을때, 또는 상기 BP가 OBUF0-DONE 플레그를 세팅시키는 ARM7_IRQ을 확인해야 한다. * Default condition 2 (BP_STATUS [2]) - When the processing of the input buffer 0 is over, or must confirm a ARM7_IRQ that the BP is set to OBUF0-DONE flag.
    *Default condition 3(BP_STSTUS[3])-입력버퍼 1의 처리가 끝났을때, 또한 상기 BP가 OBUF1_FULL 플레그를 세팅시키는 ARM7_IRQ를 확인해야 한다. * Default condition 3 (BP_STSTUS [3]) - When the processing of the input buffer 1 is over, also it has to check the ARM7_IRQ to which the BP OBUF1_FULL set the flag.
    *Default condition 4(BP_STATUS[4])-비디오 엔코딩의 경우, ARM7에 의해 설계된 슬라이스 또는 GOB를 마칠때나, 또는 비디오 디코딩의 경우 슬라이스 또는 GOB가 아닌 초기 코드에 도착하였을때, 또는 상기 BP는 BP_DONE 플레그를 세팅하는 ARM7_IRQ을 확인해야 한다. * Default condition 4 (BP_STATUS [4]) - In the case of video encoding, in the case of the end of the slice or GOB designed by the ARM7 or, or a video decoding time arrived early in the code other than the slice or GOB, or the BP is BP_DONE ARM7_IRQ should make sure to set the flag.
    *Default condition 5(BP_STATUS[5])-선점 컨텍트 스위칭모드에서 컨텍트 저장 동작을 마쳤을때, 또는 협력 컨텍트 스위칭모드에서 현재의 슬라이스 또는 GOB를 마쳤을때, 상기 BP는 CTX_SW_DONE 플레그를 세팅하는 ARM7_IRQ을 확인해야 한다. * Default condition 5 (BP_STATUS [5]) - in when it has completed keontekteu storage operation in preemption keontekteu switching mode, or cooperation keontekteu switching mode when it has completed the current slice or GOB's, the BP will be confirmed ARM7_IRQ setting a CTX_SW_DONE flag do.
    *Default condition 6(BP_STATUS[6])-컨텍트 로드가 다시 동작했을때, 상기 BP는 또한 CTX_RELOAD_DONE 플레그를 세팅하는 ARM7_IRQ을 확인해야 한다. * Default condition 6 (BP_STATUS [6]) - keontekteu when the load is operated again, the BP will also need to verify ARM7_IRQ CTX_RELOAD_DONE of setting the flag.
    *Default condition 7(BP_STATUS[7]_현재, BP_STATUS[7]이 유지된다. 그러므로, 이러한 비트는 0으로 세트되어야 한다. 정상적으로, 이러한 디폴트 인터럽트 조건은 BP_INT_MASK[7:0]를 사용하여 마스크되도록 권고하지는 않는다. 그러나, 어떤 동작에서는 사용자가 Default condition 1을 마스크하길 원할 수도 있다. . * Default condition 7 (BP_STATUS [7] _ current, BP_STATUS [7] is maintained Therefore, this bit shall be set to 0. Normally, these default interrupt condition BP_INT_MASK.: Recommended to mask using [70] you do not. However, in some operations the user may want to mask the Default condition 1.
    10.9.2 에러 인터럽트 조건 10.9.2 Error Interrupt Condition
    만약 에러가 BP에서 발생되면, 상기 BP는 ARM7 인터럽트 요구가 되도록 BP_ERR 플레그를 세트한다. If an error is generated in the BP, the BP is set so that the flag BP_ERR ARM7 interrupt request. 이와 동시에, 상기 BP는 상기 BP-STATUS 레지스터에 있는 BP_ERR_CODE 필드에서 제로가 아닌 값 중에서 적당한 데이타를 세트한다. At the same time, the BP is set to the proper data from the non-zero value in BP_ERR_CODE field in the BP-STATUS register. 이러한 8비트 BP_ERR_CODE는 다음의 의미를 가지고 있다. These 8-bit BP_ERR_CODE have the following meanings.
    *BP_CODE=8'b0000_0000;어떤 에러도 발생하지 않음 * BP_CODE = 8'b0000_0000; it does not cause any error
    *BP_ERR_CODE=8'b0000_0001;BP_MODE 레지스터에 부적당하게 세팅됨 * BP_ERR_CODE = 8'b0000_0001; improperly set in the search register BP_MODE
    *BP_ERR_CODE=8'b0000_0010;부적당하게 수평 매크로블록 위치가 세트됨 * BP_ERR_CODE = 8'b0000_0010; being improperly set, the horizontal macroblock position
    *BP_ERR_CODE=8'b0000_0011;부적당하게 수직 매크로블록 위치가 세트됨 * BP_ERR_CODE = 8'b0000_0011; being inappropriately set the vertical macroblock position
    *BP_ERR_CODE=8'b0000_0100;매크로블록 어드레스 증가에 대한 부적당한 VLC VLC inadequate for the macroblock address increment; * BP_ERR_CODE = 8'b0000_0100
    *BP_ERR_CODE=8'b0000_0101;매크로블록 타입에 대한 부적당한 VLC * BP_ERR_CODE = 8'b0000_0101; VLC inadequate for the macro-block type
    *BP_ERR_CODE=8'b0000_0110;매크로블록 motion 코드에 대한 부적당한 VLC VLC inadequate for the macroblock motion code; * BP_ERR_CODE = 8'b0000_0110
    *BP_ERR_CODE=8'b0000_0111;부적당한 취소 motion 벡터 마커 비트 * BP_ERR_CODE = 8'b0000_0111; inadequate cancel motion vector marker bit
    *BP_ERR_CODE=8'b0000_1000;부호화된 블록패턴에 대한 부적당한 VLC * BP_ERR_CODE = 8'b0000_1000; inappropriate for the VLC coded block pattern
    *BP_ERR_CODE=8'b0000_1001;블록 DCT dc 사이즈에 대한 부적당한 VLC * BP_ERR_CODE = 8'b0000_1001; inappropriate for the VLC block size DCT dc
    *BP_ERR_CODE=8'b0000_1010;부적당한 DCT dc 값 * BP_ERR_CODE = 8'b0000_1010; inadequate DCT dc value
    *BP_ERR_CODE=8'b0000_1011;블록 DCT ac 계수에 대한 부적당한 VLC * BP_ERR_CODE = 8'b0000_1011; inadequate VLC for block DCT ac coefficients
    *BP_ERR_CODE=8'b0000_1100;하나의 매크로블록에서 블록의 #이 64를 초과한다. * BP_ERR_CODE = 8'b0000_1100; exceeds the block of # 64 from one macro-block.
    *BP_ERR_CODE=8'b0000_1101;부적당한 f_CODE값(예를 들면, 값이 0이다) * BP_ERR_CODE = 8'b0000_1101; f_CODE improper values ​​(for example, a value of 0)
    *BP_ERR_CODE=8'b0000_1110;블록 DCT ac 계수에 대한 부적당한 VLC * BP_ERR_CODE = 8'b0000_1110; inadequate VLC for block DCT ac coefficients
    *BP_ERR_CODE=8'b0000_1111;부적당한 IBUF 및 OBUF 어드레스 설정 * BP_ERR_CODE = 8'b0000_1111; IBUF improper address setting, and OBUF
    *BP_ERR_CODE=8'b0000_0000;BP 입출력 버퍼용 시작 어드레스의 최하위 4비트는 제로가 아니다. * BP_ERR_CODE = 8'b0000_0000; BP least significant four bits of the starting address for the output buffer is not zero.
    다른 BP_ERR_CODE값은 저장된다. BP_ERR_CODE different values ​​are stored.
    10.10 상세한 기능성 요구 10.10 detailed functional requirements
    10.10.1 IOBUS 인터페이스 10.10.1 IOBUS interface
    BP와 CCU 사이에서의 모든 데이타 이동은 IOBUS를 통해서 이루어진다. All data movement between BP and the CCU is through the IOBUS. 상기 IOBUS는 다중화된 어드레스 및 데이타를 포함하는 32비트 @40MHz 동기 버스이다. The IOBUS is a 32 bit @ 40MHz synchronous bus comprising a multiplexed address and data. 적어도 7사이클은 상기 IOBUS를 통해서 16바이트 데이타를 전달하도록 요구되기 때문에, 상기 IOBUS의 최대 전달 속도는 91.4Mbytes/sec(=731.4Mbits/sec) Since at least seven cycles is required to transfer a 16-byte data via the IOBUS, the maximum transmission speed of the IOBUS is 91.4Mbytes / sec (= 731.4Mbits / sec)
    상기 BP는 모든 IOBUS 리드 및 라이트 전송을 위해 마스터 또는 슬레이브가 될 수 있다. The BP can be a master or slave for every IOBUS lead and write transfer. 상기 BP가 마스터로서 동작할 때, IOBUS 아비터에 리퀘스터 신호를 보내야 한다. When the BP is operating as a master, and send the signal to requestor IOBUS arbiter. 만약, 상기 IOBUS가 없다면, 상기 아비터는 상기 BP에게 주고, 그리고 디바이스 셀렉트 신호를 보낼 것이다. If there is no the IOBUS, the arbiter is to give the BP, and the device will send a select signal.
    상기 IOBUS를 통한 데이타의 경쟁은 다음의 3개의 카테고리중에서 어느 하나일 것 이다. Competition in the data through the IOBUS is that any one of the three categories below. 즉, 2 또는 4개의 픽셀요소를 포함하고 있는 32비트 픽셀 데이타와, 32비트 압축비트 스트림 워드와, 엔코딩 및 디코딩 동작을 위한 신텍스/제어 변수중 하나이다. That is, one of the syntax / control variable for 2 or 4 with a 32-bit pixel data, which includes a single pixel element, a 32-bit word and the compressed bit stream, encoding and decoding operations. IOBUS 인터페이스에 관한 타이밍도와 같은 정보에 추가하여 사용자는 상기 MSP IOBUS 사양을 검토하도록 권고된다. In addition to timing information, such as help for the IOBUS interface, the user is encouraged to review the MSP IOBUS specifications.
    10.10.2 블록 레이어 과정 10.10.2 block layer process
    10.10.2.1 지그-재그 스캔 규정 10.10.2.1 zig-zag scanning rules
    상기 BP는 MPEG 비디오 표준에서 제시된 두개의 지그-재그 스캔 변환 메트릭스를 지원한다. The BP is the two jigs set out in MPEG video standards - supports zag scan conversion matrix. VP 및 BP 사이에서 전송되는 이러한 8*8블록 데이타는 모두 64개의 성분을 포함하고 있다. The 8x8 block of data transmitted between the BP and VP are all contained 64 ingredients.
    10.10.2.2 RLC 코드 10.10.2.2 RLC code
    RLC 디코딩을 위해서, 상기 BP는 DCT ac 계수의 호프만 디코드 결과에 따라서 제로 및 레벨 데이타를 발생한다. For the RLC decoding, the BP is generated and the zero-level data according to the Huffman decoding result of the DCT ac coefficients. 만약, 데이타가 하나의 8*8 블록으로 생기기 전에 64개의 픽셀 end_of_block신호가 검출된다면, 상기 RLC 디코더는 나머지제로 데이타를 만들게 된다. If, if the data is 64 pixels end_of_block signal is detected before there in one 8x8 block of the RLC decoder it will make the rest of the zero-data. RLC 엔코딩을 위해서, 상기 BP는 모호한 제로 데이타를 카운트하고 다음의 NON-제로 데이타와 결합함으로써 런-길이 및 레벨 코드를 발생시킨다. For the RLC encoding, the BP is run by counting the zero ambiguous data and then in combination with the zero-data NON--length and to generate a level code. 만약, 남아있는 데이타 모두가 제로와 같다면, 남아있는 데이타를 위해 RLC을 발생하기 보다는 end-of-block을 발생시키면 된다. If, if all the remaining data is equal to zero, rather than generating the RLC for the remaining data is generated when the end-of-block. RLC 코드를 위한 동작 사이클은 이와같이 발생된 제로의 수만큼 진행된다. The operating cycle for the RLC code proceeds in this manner as many as the number of the generators.
    10.10.2.3 호프만 코드 10.10.2.3 Huffman code
    상기 BP 호프만 코드는 MPEG-1, MPEG-2, H.261 및 H.263 비디오 테이블준에 권고된 모든 호프만 테이블을 지원한다. BP said Huffman code supports all Hoffman table recommendations to the MPEG-1, MPEG-2, H.261 and H.263 video standard tables. 모든 롬 워드가 12비트인 경우, 모든 테이블은 룩-업 테이블에서 실행될 수 있을 것이다. If all ROM word is 12 bits, all of the tables the look-up table will be able to run on. 그러나, 단순하거나 또는 무척 복잡한 것을 갖는 어떤 호프만 테이블은 하드와이어드(hardwired) 로직을 사용하여 구현될 수 있다. However, any simple or Huffman table or having the extremely complex can be implemented using a hard-wired (hardwired) logic. 상기 룩-업-테이블 롬을 사용하여 구현하는 상기 디코더 테이블은 테이블 41에 요약되어 있다. The look-up-table for the decoder is implemented using a ROM table is summarized in Table 41.
    [테이블 41] [Table 41]
    호프만 디코더 룩업 테이블을 위해 요구되는 롬 사이즈 ROM size required for the Huffman decoder lookup table
    상기 엔코더 테이블은 상기 디코더 테이블보다 더 큰 롬 사이즈를 요구하는 내용이 테이블 42에 요약되어 있다. The encoder table is the contents which require a larger size than the ROM decoder table is summarized in Table 42.
    [테이블 42] [Table 42]
    호프만 엔코더 룩업 테이블을 위해 요구되는 롬 사이즈 ROM size required for the Huffman encoder lookup table
    테이블 41 및 42로부터, 호프만 엔코더 및 디코더를 위해 전체적으로 요구되는 롬의 사이즈는 768*12비트이다. From the tables 41 and 42, the size of the ROM is required for the whole decoder and a Huffman encoder is 768 * 12 bits. 상기 테이블은 스터핑 코드, escape_code, DCT계수의 사인 비트 및 스테이트 머신에 의해 조작되는 end_of_block 코드를 포함하고 있지 않다. The table does not contain end_of_block codes operated by the sign bit and the state machine of the stuffing code, escape_code, DCT coefficient.
    상기 각각의 호프만 코드를 위해 동작 사이클은 테이블 43에 정리되어 있다. Operation cycle for each of the Huffman code are outlined in table 43.
    [테이블 43] [Table 43]
    호프만 코드용 처리 사이클 Treatment cycle for Huffman code
    마지막으로, JPEG 코딩 테이블은 상기와 같은 과정을 수행한다면, 구현될 수 없다는 것을 나타낸다. Finally, JPEG coding table if you perform the same procedure as above, indicates that there may be implemented. 그러나, dc_coeff_next_0 테이블에서는 JPEG 엔코딩 응용이 사용될 수 있다. However, there is a table dc_coeff_next_0 JPEG encoding application can be used.
    10.10.2.4 차분 dc 값 10.10.2.4 difference value dc
    인트라 블록의 경우에, 상기 BP는 또한, 8*8 블록 데이타의 첫번째 요소의 차분 dc 계수를 계산하고 그리고 이미 전송된 차분 dc 계수를 가지고 dc 값을 재현한다. In the case of an intra block, the BP is further calculates a difference between dc coefficient of the first element in the 8x8 block, and data and already reproduce the dc value has a differential dc coefficient transmission.
    10.10.2.5 비 코드화된 블록 10.10.2.5 non-coded block
    상기 BP는 코드화되지 않은 블록을 지원하지 않는다. The BP does not support the non-coded block. 상기 VP 및 ARM7은 비부호화된 블록을 수행한다. The VP and the ARM7 performs a non-coding block. 상기 VP 및 ARM7이 이러한 종류의 블록을 처리하도록, 상기 BP는 매크로블록 헤더의 워드에 나타나 있는 coded_block_pattern에서 비 코드화된 블록을 나타낸다. To process the VP and ARM7 this type of block, the BP represents the non-coded blocks in the coded_block_pattern appears in the word of the macro-block header.
    10.10.2.6 블록전송의 순서 The order of block transfer 10.10.2.6
    엔코딩 및 디코딩을 위해 전송된 하나의 매크로블록에서 블록의 순서는 다음과 같다; The order of blocks in a single macro-block transmitted to the encoding and decoding are as follows; 휘도(Y) 블록 0,1,2 및 3, 색상 블루(Cb) 및 색상 red(Cr) 블록이다. Luminance (Y) blocks is 0, 1, 2 and 3, the color blue (Cb), and color red (Cr) block.
    10.10.3 매크로블록 레이어 과정 03.10.10 macroblock layer process
    10.10.3.1 차분 motion 백터 10.10.3.1 difference motion vector
    상기 BP는 상기 motion 추정 결과로부터 차분 motion 벡터를 계산하며, 다음의 경우를 제외하고 전송된 차분 motion 벡터를 가지고 motion 벡터를 재현한다. The BP is calculated and a difference motion vector from the motion estimation result, and then have a differential motion vector, except for the case of transmission and reproduction of a motion vector.
    *첫번째 경우는 MPEG-2 비디오 엔코딩에서 경우의 듀얼 프라임 모드이다. * If the first mode is a dual-prime in the case of MPEG-2 video encoding. 이 경우에서, 상기 BP에 전송된 움직임 벡터는 벡터'[0][0][1:0]이고, 벡터'[r][0][1:0)은 아니다(MPEG-2 비디오 표준의 7.6.3.6절 참조). In this case, the motion vector sent to the BP is a vector "[0] [0] [1: 0], and the vector" [r] [0] [1: 0) is not (MPEG-2 video standard 7.6 see section .3.6).
    *둘째의 경우는 H.263의 어드밴스이드 예측 모드이다. * For the second is advanced Id prediction modes of H.263. 이경우, 4개의 motion벡터 및 이러한 값이 차분 값으로서 상기 BP로부터/로 전송되어야 한다. In this case, the four motion vectors, and these values ​​should be transmitted as the difference value in from the BP /.
    10.10.3.2 스킵된 매크로블록 10.10.3.2 skipped macroblock
    상기 BP는 스킵된 매크로블록을 지원하지 않는다. The BP does not support the skipped macroblock. 상기 VP 및 ARM7은 이와같이 스킵된 매크로블록을 처리한다. The VP and the ARM7 is in this way handle skipped macroblock. 위와같이 스킵된 매크로블록을 처리하기 위한 상기 VP 및 ARM7에서, 상기 BP는 상기 매크로블록의 헤더 워드에 수평 및 수직 매크로블록 어드레스를 라이트한다. In the VP and ARM7 for processing a skipped macroblock as shown above, the BP will light the horizontal and vertical macro-block address in a header word of the macro block.
    10.10.3.3 매크로블록 스터핑 코드 10.10.3.3 macroblock stuffing code
    MPEG-1에서, 한 사이클에서 매크로블록 스터핑 코드가 만약, 생긴다면 상기 BP는 이것을 버려야 한다. In MPEG-1, a macroblock stuffing code if in one cycle, if the BP is caused to discard it. 그러나, MPEG-1 엔코딩에서, BP는 사용자가 매크로블록 레이어 헤더 내의 매크로블록 스터핑 코드를 포함되지 않도록 한다. However, in the MPEG-1 encoding, BP is a manner that the macro blocks includes a stuffing code in the macroblock layer header. 일반적으로, 이러한 스터핑 코드는 출력 비디오 레이트버퍼를 제어하는데 사용된다. In general, these stuffing code is used to control the output video rate buffer. 그러므로, 매크로블록 스터핑 코드를 삽입하는 대신에, 시작 코드들 사이에 제로 스터핑 비트를 삽입하도록 권고한다. Therefore, instead of inserting the macroblock stuffing code, it is recommended to insert a zero stuffing bits between the start code.
    MPEG-1 및 MPEG-2 응용을 위해서, 비트 스트림 출력은 슬라이스 레이어까지 바이트-얼라이먼트되어야 한다. For the MPEG-1 and MPEG-2 application, the bit stream is output to the byte sliced ​​layers - to be alignment. 비록 비트 스트림 출력이 픽쳐 레이어까지 바이트-얼라이먼트되더라도, H.263 응용을 위해서는 GOB 레이어까지 바이트-얼라이먼트시킨다. Although the bit stream outputted by the picture layer byte-alignment, even if, to the byte GOB layer to the H.263 application-alignment thereby. 그러나, H.261 엔코더의 출력은 바이트-얼라인먼트되지 않는다. However, the output of the H.261 encoder byte-alignment does not. 그러므로, ARM7에서 루틴을 형성하는 비트스트림은 이러한 차이를 고려하여 프로그램되어진다. Therefore, the bit stream forming the routine in ARM7 becomes the program accounts for this difference. IOBUS를 통한 마지막 데이터 전송을 위한 데이터의 양이 엔코딩의 경우 16비트 이하인 경우, BP는 슬라이스의 끝에 제로를 채우는 동작(zero-fill)을 자동적으로 수행한다. When the amount of data for the last data transmission on the IOBUS or less when the 16-bit encoding, BP will automatically perform the operation (zero-fill) to fill the zero at the end of the slice.
    10.10.4.2 엑스트라 슬라이스 정보 10.10.4.2 extra slice information
    디코딩에 있어서, BP는 MPEG-1 또는 MPEG-2 비트스트림의 슬라이스 헤드에 포함되는 임의의 엑스트라 슬라이스 정보를 버린다. In the decoding, BP discards any extra slice information included in the slice head of an MPEG-1 or MPEG-2 bitstream. 엔코딩에 있어서, BP는 사용자에 의해 요청된 임의의 엑스트라 슬라이스 정보를 삽입시키지 않는다. In the encoding, BP does not insert any extra slice information requested by the user. 만약 사용자가 여전히 MPEG-1 또는 MPEG-2 비트스트림에 이 정보를 포함시키고자 하는 경우에는 BP에 의해 미리 엔코딩된 비트스트림에 이 정보를 삽입하면 된다. If the user still you want to include this information in the MPEG-1 or MPEG-2 bitstream can insert this information in the pre-encoded bit stream by the BP.
    10.10.4.3 인트라 슬라이스 10.10.4.3 intra slice
    MPEG-2 슬라이스 레이어 비트스트림에 있어서, intra_slice라 하는 파라미터는 현재 슬라이스가 인트라 매크로블록으로만 구성되었음을 나타내는데 사용된다. In the MPEG-2 slice layer bit stream, the parameter referred to intra_slice is used to indicate that the current slice is configured only to an intra macroblock. 이 정보는 디코딩 과정에서는 사용되지 않고, 고속 전진 또는 고속 후진 기능을 수행할 경우 DSM 응용을 도와 주기 위한 것이다. This information is intended to help the DSM applications when not used in the decoding process, performing a fast forward or fast backward function. 그러므로, BP는 디코딩 응용일 경우 이 정보를 버리고, 엔코딩 응용일 경우 슬라이스 레이어 헤더에 있는 intra_slice에 0을 삽입한다. Therefore, BP inserts 0 in the intra_slice in the slice layer header when the discard information when the decoding application, the encoding application.
    10.10.4.4 슬라이스 또는 GOB 스타트 코드 10.10.4.4 slice or GOB start code
    MPEG-1, MPEG-2, H.261에 있어서, 픽쳐는 적어도 하나의 슬라이스 또는 GOB 스타트 코드를 가진다. In MPEG-1, MPEG-2, H.261, the picture has at least one slice or GOB start code. 그러나, H.263 픽쳐는 GOB 스타트 코드와 헤더 정보를 가지지 않는다. However, H.263 picture does not have the GOB start code and header information. 특히, 임의의 H.263 픽쳐에서 첫번째 GOB는 스타트 코드와 헤더 정보를 가지지 않는다. In particular, the first GOB has no start code and header information in any H.263 picture. 그러므로, 입력되는 비트스트림이 H.263을 위한 것일 경우, BP 상태 머쉰은 매크로블록 레이어를 바로 처리해야 한다. Therefore, if the bit stream input intended to H.263, BP state machine should immediately process the macroblock layer. 뿐만 아니라, 비트스트림이 디코딩되는 동안 GOB 스타트 코드가 발견되면, BP는 스타트 코드를 디코딩하고, ARM7을 인터럽트하지 않으면서 처리과정을 계속 수행한다. In addition, when the bitstream is GOB start code is found during the decoding, BP will continue the processing if the standing decodes the start code, not interrupt the ARM7.
    10.11 입력/출력 더블 버퍼 인터페이스 10.11 / O double buffer interface
    10.11.1 일반적인 설명 1/11/10 general description
    입력 및 출력 버퍼는 더블 버퍼로 구현된다. Input and output buffers are implemented as a double buffer. 그러므로 도 64와 도 65에 도시된 바와같이 IBUF0, IBUF1, OBUF0, OBUF1이라고 하는 4개의 메모리 버퍼를 사용하게 된다. Therefore is the use of four memory buffer called IBUF0, IBUF1, OBUF0, OBUF1 as shown in Figure 65 and Figure 64.
    도 64와 도 65에서와 같이, 각각의 버퍼는 시작 및 끝 어드레스와 충만 및 완료 플래그를 가진다. As in Figure 64 and Figure 65, each buffer has a start and end address and a full and complete flag. 각 버퍼 사이즈를 결정하기 위하여, 사용자는 각 버퍼에 대한 시작 및 종료 어드레스에 적절한 값을 기입해야 한다. In order to determine the size of each buffer, the user has to fill in the appropriate values ​​for the start and end addresses of each buffer.
    일반 버퍼용 소스 프로세서는 버퍼에 대한 기입을 완료하면, 충만 플래그를 설정하고, 다른 뱅크에 대한 기입을 개시한다. When the source processor for general buffer is completed, the writing to the buffer, the fullness setting a flag, and to start writing to the other bank. 뱅크용 싱크 프로세서는 억세스되는 뱅크가 다 채워져 있음을 알게 되면, 데이터를 독출한다. Bank sink for processor Knowing that filled all the banks being accessed, reads out the data. 뱅크가 비어 있으면, 싱크는 완료 플래그를 설정하고, 다른 뱅크의 충반 플래그를 체크한다. If the bank is empty, sink, set the completion flag, and checks chungban flag of another bank.
    4개의 시작 어드레스는 소절 10.7.02에 설명한 바와 같이 BP의해 업데이트된다. Four start address is updated by BP, as described in subsection 10.7.02. 시작 어드레스를 위한 각각의 레지스터는 BP가 입력 또는 출력 버퍼를 억세스할 때마다 BP에 의해 억세스되는 맨 마지막의 바이트 어드레스를 저장한다. Each of the registers for the start address and stores the last byte of the address to be accessed by the BP is BP each time access to the input or output buffer. 그러므로, ARM7은 IBUF0_DONE, IBUF1_DONE, OBUF0_FULL, OBUF1_FULL 플래그중 어느 하나가 설정되면 해당 시작 어드레스를 설정한다. Therefore, when any one of the ARM7 IBUF0_DONE, IBUF1_DONE, OBUF0_FULL, OBUF1_FULL flag is set and sets the start address.
    또한, 시작 어드레스의 마지막 4비트는 항상 ARM7에 의해 제로로 설정된다. In addition, the last 4 bits of the starting address is always set to zero by the ARM7. 그 이유는 FBUS, CCU와 IOBUS 사이의 내부 데이터 얼라인먼트 구조 때문이다. This is because the underlying data structure alignment between FBUS, CCU and IOBUS. 또한, 각 버퍼 사이즈의 전체 바이트 수가 16의 배수가 되도록 각각의 끝 어드레스를 설정해야 한다. In addition, the total number of bytes of each buffer size must be set to each of the end address to a multiple of 16. 뿐만 아니라, 최소 버퍼 사이즈는 MPEG-1과 MPEG-2에 대해 64바이트, H.261과 H.263에 대해 128바이트일 것이 권고된다. In addition, the minimum buffer size is recommended to be MPEG-1 and 128 bytes for the 64 bytes, H.261 and H.263 for MPEG-2. 이에 ARM7에 대한 BP의 빈번한 인터럽트로 인한 성능의 열화를 방지하기 위해서이다. This is to prevent deterioration of the performance due to the frequent interruption of the BP for ARM7.
    10.11.2 비정상적인 버퍼 스테이터스의 처리 10.11.2 treatment of abnormal buffer status
    두개의 출력 버퍼가 채워지면, BP는 처리를 중지시키고, 입력 더블 버퍼 스테이터스에 상관없이 아이들 상태로 떨어진다. When the two output buffer filling, BP will stop the process and, it falls into the idle state regardless of the input double buffer status. OBUF0_DONE 또는 OBUF1_DONE 플래그가 설정되면 BP는 자동적으로 이 아이들 상태로부터 빠져 나온다. When OBUF0_DONE or OBUF1_DONE flag is set, BP will automatically exit from the idle state.
    두개의 입력 버퍼가 비워지면, BP는 처리를 중지할 필요가 없고, 내부에 남아있는 데이터의 처리가 완료될 때까지 처리를 계속한다. When the blank has two input buffers, BP is not necessary to stop the process, and continues the processing until the processing of the data remaining in the interior to complete. 그러나, 두개의 입력 버퍼가 비워지면, BP는 바로 ARM7을 인터럽트한다. However, when the blank has two input buffers, BP will immediately interrupt the ARM7. 남아있는 데이터 처리의 종료 이후, 입력 버퍼들이 여전히 비워져 있으면, BP는 아이들 상태로 떨어진다. After completion of the remaining data processing, if the input buffers are still empty, BP drops to idle. IBUF0_FULL 또는 IBUF1_FULL 플래그가 설정되면, 다시 BP는 자동적으로 이 상태로 부터 빠져 나온다. When IBUF0_FULL or IBUF1_FULL flag is set, come back to the BP exit from this state automatically.
    이 소절에서 기술하는 아이들 상태는 이 사양서에서 기술한 다른 아이들 상태와 다르다. Children conditions described in this verse is different from the other children in the state of technical specifications. 왜냐 하면, 다른 아이들 상태로부터 빠져 나오기 위해서는 통상 ARM7의 제어 커맨드를 필요로 하기 때문이다. Waenya you, because in order to get out from the other children, the state requires the control commands of the conventional ARM7.
    10.11.3 I/O 버퍼의 물리적인 구현:예 The physical implementation of the 10.11.3 I / O Buffer: Yes
    대부분 BP 입력 및 출력 버퍼의 위치와 사이즈를 결정하는 것은 사용자의 몫이다. Most, determining the location and size of the BP input and output buffers of the user share. 사용자는 VP 데이터 캐쉬, ARM 7 데이터 캐쉬 또는 SDRAM의 스크래치 패드 영역에서 버퍼를 구현한다. The user implements a buffer in the scratch pad area of ​​the VP data cache, data cache ARM 7 or SDRAM. BP 입력 및 출력 더블 버퍼의 구현이 다소 제한적일지라도, 상기 버퍼를 구현하기 위한 효율적인 방법이 있다. BP is input and output implementation of a double buffer even somewhat limited, the efficient way to implement the buffers.
    여기서, 비디오 디코딩 응용에 있어서 레이트 버퍼의 구현에 대한 특수한 예를 들기로 한다. Here, it is to give an example of the specific implementation of the rate buffer in a video decoding application. 이 경우, 사용자는 BP 입력 버퍼를 순환 버퍼로 구현하고자 한다. In this case, a user wishing to implement BP input buffer in a circular buffer. 여기서, SDRAM을 사용하며, 완전한 레이트 버퍼는 도 66에 도시된 바와 같이 4개의 블록으로 분할되는 것으로 가정한다. Here, using the SDRAM, and full rate buffer is assumed to be divided into four blocks as shown in Figure 66.
    초기에, 사용자는 Rate_Buffer_Block_0과 Rate_Buffer_Block_1을 각각 IBUF0과 IBUF1으로 설정할 수 있다. Initially, the user can set the Rate_Buffer_Block_0 and Rate_Buffer_Block_1 each IBUF0 and IBUF1. 이는 다음과 같이 설정함으로써 가능하게 된다. This is made possible by the following entries:
    IBUF0_START=Rate_Buffer_Address_0; IBUF0_START = Rate_Buffer_Address_0;
    IBUF0_END=Rate_Buffer_Address_1; IBUF0_END = Rate_Buffer_Address_1;
    IBUF1_START=Rate_Buffer_Address_2; IBUF1_START = Rate_Buffer_Address_2;
    IBUF1_END=Rate_Buffer_Address_3 IBUF1_END = Rate_Buffer_Address_3
    IBUF0에 있는 데이터(즉, Rate_Buffer_Block_0에 있는 데이터)가 BP에 의해 모두 사용되면, BP는 ARM7을 인터럽트한다. When the data in the IBUF0 (that is, data in the Rate_Buffer_Block_0) is used both by the BP, BP will interrupt the ARM7. 그러면, ARM7은 다음과 같이 설정함으로써 Rate_Buffer_Blokc_2을 IBUF0을 설정한다. Then, ARM7 sets the IBUF0 the Rate_Buffer_Blokc_2 by the following entries:
    IBUF0_START=Rate_Buffer_Address_4; IBUF0_START = Rate_Buffer_Address_4;
    IBUF0_END=Rate_Buffer_Address_5. IBUF0_END = Rate_Buffer_Address_5.
    IBF1에 있는 데이터가 BP에 의해 모두 사용되면, BP는 ARM7을 인터럽트한다. When the data in the IBF1 is used both by the BP, BP will interrupt the ARM7. 그러면, ARM7은 다음과 같이 설정함으로서 Rate_Buffer_Block_3을 IBUF1로 설정한다. Then, ARM7 sets the Rate_Buffer_Block_3 by setting as follows with IBUF1.
    IBUF1_START=Rate_Buffer_Address_6; IBUF1_START = Rate_Buffer_Address_6;
    IBUF1_END=Rate_Buffer_Address_7. IBUF1_END = Rate_Buffer_Address_7.
    Rate_Buff_Block_2에 잇는 데이터가 BP에 의해 모두 사용되면, ARM7은 첫번째 단계에서와 마찬가지로 어드레스를 설정함으로써 Rate_Buffer_Block_0을 IBUF0으로 다시 설정한다. After the data connecting the Rate_Buff_Block_2 is used both by the BP, ARM7 is set back to the Rate_Buffer_Block_0 IBUF0 by setting the address as in the first step.
    그러므로, 순환 버퍼는 단순히 이러한 완전한 과정을 반복함으로서 구현될 수 있다. Hence, the circular buffer is simply by repeating this complete process can be implemented. 이 예는 BP 더블 버퍼의 사용이 사용자의 의도에 따라 매우 유연하다는 것을 보여준다. This example shows that the use of a double buffer BP is very flexible, depending on the user's intent.
    10.12 문맥 스위칭 10.12 Context Switching
    하나 이상의 응용이 MSP를 구동시킬 경우, ARM7 동작 시스템은 BP가 현재 작업을 종결시키고, 다른 작업으로 전환되도록 명령한다. If more than one application is to drive the MSP, ARM7 operating system instructs so that the BP is terminated and the current operation, switch to a different task. 이 과정은 통상 "문맥 스위칭"이라 한다. This process is usually referred to as "context switching". BP는 다음에 기술되는 두가지 종류의 문맥 스위칭 모드를 지원한다. BP supports two types of context switching modes are described below.
    10.12.1 강제배제형(preemptive)문맥 스위칭 12.01.10 forced exclusion type (preemptive) context switching
    강제배제형 문맥 스위칭은 BP가 현재 8*8 화소 블록 처리를 수행하고 나서 정상적인 처리를 종료하였음을 의미한다. Force exclusion type context switching means hayeoteum BP is terminated after performing normal processing for the current 8x8 pixel block processing. ARM7은 BP_CONTROL[6:5] 레지스터에 있는 CTX_SWITCH와 CTX_MODE 플래그를 11로 설정함으로써, 강제배제형 문맥 스위칭 모드를 명령한다. ARM7 is BP_CONTROL [6: 5] and by setting the CTX_SWITCH CTX_MODE flag in the register 11, the instruction to force the rule type context switching mode. 현재 블록 처리가 완료되면, BP는 나중의 처리를 위해 내부 문맥을 외부 SDRAM으로 보낸다. When it has finished processing the current block, BP sends a context inside the external SDRAM for processing later.
    BP는 문맥 저장을 완료하면, BP_STATUS[5]에 위치한 CTX_SW_DONE 플래그를 설정함으로써 ARM7을 인터럽트한다. BP is interrupted when a complete context save, by setting a flag in the CTX_SW_DONE BP_STATUS [5] ARM7. 그러면, ARM7은 BP의 입출력 버퍼의 모든 내용을 저장하고, 다른 작업을 위해 BP를 초기화시킨다. Then, ARM7 will then save all the contents of the input and output buffers in BP, and BP initialize for other tasks.
    이 모드는 BP가 ARM7의 문맥 스위칭 리퀘스트를 가능한한 빨리 응답하도록 한다. This mode allows BP to respond as quickly as possible to the context switching request of the ARM7. 최악의 경우, BP는 현재 블록 처리를 완료하기 위해 약 150사이클(=3.75usec)를 필요로 한다. In the worst case, BP needs to about 150 cycles (= 3.75usec) to complete the current block is processed. 그러나 정상적인 경우에는, 블록 처리를 완료하기 위해 수다스의 사이클을 필요로 한다고 간주하는 것이 바람직하다. However, the normal case, it is preferable to consider that can require dozens of cycles to complete the processing block.
    10.12.2 협조형(cooperative)문맥 스위칭 02/12/10 Type cooperation (cooperative) context switching
    협조형 문맥 스위칭에 의하면 BP에서 문맥 저장 과정을 없앨 수 있다. According to the cooperative-type context switching it can be eliminated in the context save process BP. 이는 모든 슬라이스 또는 G0B 레이어 처리시 BP 내부 상태를 모두 초기화시켜야 하는 사실에 기인한 것이다. This is due to the fact that the need to initialize all of the BP internal state when all slices or G0B layer processing. 이 모드에서, BP는 현재 슬라이드 또는 G0B의 정상적인 처리를 계속하고 나서 처리를 완결시킨다. In this mode, BP is thereby completed the process then continues with normal processing of the current slide or G0B.
    ARM7은 BP_CONTROL[6:5] 레지스터에 있는 CTX_SWITCH와 CTX_MODE 플래그를 "10"로 설정함으로써, 협조형 문맥 스위칭 모드를 명령한다. ARM7 is BP_CONTROL [6: 5] and by setting the CTX_SWITCH CTX_MODE flag in the register to "10", the command type to cooperate context switching mode. 현재 슬라이드 또는 G0B 처리가 완료되면, BP는 BP_STATUS[5]에 위치한 CTX_SW_DONE 플래그를 설정함으로써 ARM7을 인터럽트한다. If the current slide or G0B process is completed, BP is an ARM7 interrupt by setting a flag in the CTX_SW_DONE BP_STATUS [5]. 그러면, ARM7은 BP의 입출력 버퍼의 모든 내용을 저장하고, 다른 작업을 위해 BP를 초기화시킨다. Then, ARM7 will then save all the contents of the input and output buffers in BP, and BP initialize for other tasks.
    10.12.3 문맥 재로드 03/12/10 Context Reloading
    이전 작업을 절환하기 위하여, BP는 어드레스 SAVE_ADR[31:0]으로부터 SDRAM에 저장된 문맥을 재로드한다. Switching to the previous operation, BP is an address SAVE_ADR [31: 0] will be reloaded from the context stored in the SDRAM. 이 문맥 재로드를 요청하기 위하여, BP가 아이들 상태에 있을 필요가 있다. To request a reload this context, the BP need to be in the idle state. 이 리퀘스트를 위한 가능한 상황은 BP_DONE이 설정된 경우, CTX_DONE 또는 ARM7이 소프트웨어로 BP를 리셋시킨 경우이다. Possible conditions for this request is a case where if BP_DONE is set, the ARM7 or CTX_DONE BP reset by software. 그래서, ARM7이 BP_CONTROL[7]에 있는 CTX_RELOAD 플래그를 설정하면, BP는 아이들 상태에서 빠져나와 저장된 문맥을 독출하기 시작한다. So, if you set the ARM7 CTX_RELOAD flag in BP_CONTROL [7], BP should start reading out the stored context to get out of the idle state.
    BP는 문맥 재로드 동작을 완료하고 나서 CTX_RELOAD_DONE 플래그를 설정하여 ARM7을 인터럽트한다. BP will interrupt the ARM7 CTX_RELOAD_DONE by setting the flag after completion of the context reloading operation. 그러면, ARM7은 BP의 내부 레지스터를 초기화시키고, 이전 작업 처리를 위해 BP를 인에이블시킨다. Then, the ARM7 and initialize the internal registers of the BP, thereby enabling the BP for a previous operation process.
    10.13 작업 핸드쉐이킹 10.13 Working handshaking
    이 절은 BP가 처리를 마친 경우 작업 핸드쉐이크를 위한 세부적인 과정을 다룬다. This section deals with the treatment if BP has completed the detailed procedures for handshake job. 여기서, "마지막 데이터를 위한 포인터의 업테트"란 BP가 VALID_BYTE_ADR[31:0]와 VALID_BIT_POS[2:0]에 각각 적절한 값을 기입하였음을 의미한다. Here, the "Tet-up of the pointer for the last data" BP VALID_BYTE_ADR means that it has written to the respective appropriate values ​​[31: 0] and VALID_BIT_POS [0, 2].
    10.13.1 엔코딩의 경우 For encoding 10.13.1
    정상 상태에서, 엔코딩을 위한 입력 데이터는 VP로부터 공급된다. At steady state, the input data for encoding is supplied from the VP. 입력 더블 버퍼 중 하나가 VP에 의해 채워지면, BP는 IOBUS를 통해 데이터의 독출을 개시한다. When one of the input double buffer is filled by the VP, BP discloses the reading of data through IOBUS. 처리가 종료되는 시점(즉, 처리된 매크로블록의 수가 ARM7에 의해 지정된 매크로블록의 수와 동일한 경우)에서 BP는 BP_DONE 플래그를 설정하여 ARM7을 인터럽트하고 아이들 상태로 떨어진다. When the process is ended (that is, equal to the number of the specified number of macroblocks by the ARM7 of the treated macro-block) in the BP drops to state by setting the interrupt flag BP_DONE the ARM7 and children.
    유효 데이터를 위한 포인터는 슬라이스 또는 G0B에 대한 "압축된 비트 스트림의 끝"을 나타낸다. Pointers for the valid data indicates the "the end of the compressed bit stream" for slice or G0B. 또한, VALID_BYTE_ADR[31:0]은 출력 더블 버퍼 중 하나에서의 위치를 나타낸다. Also, VALID_BYTE_ADR [31: 0] indicates the position of the output from one of the double buffer.
    ARM7은 이 압축된 비트 스트림과 상위 레이어 헤더를 결합시켜 최종 비트 스트림을 형성하고, 처리과정을 반복한다. ARM7 is a combine the compressed bit stream and an upper layer headers are repeated, the process forms a final bit stream. 출력 더블 버퍼에 있는 데이터를 완전히 소진시키기 전에 ARM7이 BP를 재개시하고자 하는 경우에는, 적어도 하나의 출력 더블 버퍼를 소진시키고, BP가 재개시되었을 때 포인터는 BP에 의해 업데이트되기 때문에 마지막 데이터를 위한 포인터는 그대로 둠으로써 가능하다. If you want to resume the ARM7 a BP prior to completely exhaust the data in the output double buffer, and at least run out one output double buffer pointer when when BP is resumed for the final data, since updated by BP pointer is available as by placing.
    10.13.2 디코딩의 경우 For decoding 10.13.2
    먼저, ARM7은 슬라이스 또는 G0B 스타트 코드(존재시)를 탐색한다. First, ARM7 searches a slice start code or G0B (when present). 스타트 코드가 발견되면, ARM7은 BP를 초기화하고 인에이블시킨다. When the start code is detected, the ARM7 initializes the BP and the enable. BP에서 허프만 디코딩, RLC 디코딩 및 역 지그재그 스캔 변환을 수행한 다음, 데이터는 VP 처리를 위해 출력 버퍼로 전송된다. Performing a Huffman decoding, RLC decoding and inverse zig-zag scan conversion in the BP, then data is transmitted to the output buffer for the VP process. BP는 이 처리 루틴을 넌-슬라이드 또는 넌-G0B 스타트 코드가 검출될 때까지 계속한다. BP is the processing routine non-continues until the slide or the non -G0B be detected start code. 이들이 검출되면, BP는 "넌-슬라이드 또는 넌-G0B 스타트 코드의 엔드"에 사용되는 마지막 데이터를 위해 포인터를 설정하여 ARM7를 인터럽트한다. If they are detected, BP is - by setting a pointer to the last data to be used in "non-end of the slide or the non -G0B start code" to interrupt the ARM7. 다음, ARM7은 스타트 코드를 디코딩하여 다음번 슬라이드 또는 G0B 코드가 발견될 때까지 헤더 해석(parsing)을 수행한다. Next, ARM7 performs the header analysis (parsing) until it is found, the next slide or G0B code decodes the start code.
    10.13.3 압축된 비트 스트림에서 발견된 에러 10.13.3 the error found in the compressed bit stream
    실제의 데이터가 전화선 및 공중 스위칭망을 통해 전송되는 화상 전화 응용에 있어서, 몇 개의 무효 데이터가 입력되는 비트 스트림에 포함될 가능성이 매우 높다. In the videophone application of the actual data is transmitted over a telephone line and a public switched network, is very likely to be included in the bit stream number of invalid data has been entered. 이 경우, BP는 ARM7을 인터럽트하여 ERR_HANDLE_MODE 플래그를 체크해야 한다. In this case, BP should be checked ERR_HANDLE_MODE flag to interrupt the ARM7. 만약 BP가 특정의 응용을 위해 인에이블되기 전에 사용자가 에러 처리 모드를 결정할 경우에는 안전하다. If it is safe for the user to determine the BP error processing mode before being enabled for a particular application.
    ERR_HANDLE_MODE 플래그가 "1"로 설정되면, BP는 자동적으로 다음번 스타트 코드를 찾아낸다. ERR_HANDLE_MODE When the flag is set to "1", BP will automatically find the next start code. 스타트 코드가 슬라이스 또는 G0B를 위한 것일 경우, BP는 정상적인 처리를 계속한다. When the start code is intended to slice or G0B, BP continues normal processing. 이 모드는 매우 효율적인데, 그 이유는 BP가 ARM보다 더 신속하게 스타트 코드를 찾아낼 수 있고, BP가 다음번 스타트 코드를 찾는 동안 ARM7이 다른 처리 루틴을 수행할 수 있기 때문이다. This mode is a very effective, because ARM7 can perform other routine treatment for BP that can be found more quickly than the start code ARM, BP is looking for the next start code. 그러나, 슬라이스 또는 G0B 레이어와는 다른 스타트 코드가 발견되면, BP는 BP_DONE 플래그를 설정하여 ARM7을 다시 인터럽트하고, 아이들 상태로 떨어진다. However, if the slice or layer G0B and found another start code, BP has set the flag back BP_DONE interrupt the ARM7 and drops to idle. 이러한 경우, 마지막 데이터를 위해 사용된 포인터는 다음번 스타트 코드의 엔드를 지시해야 한다. In this case, the pointer used for the last data has to indicate the end of the next start code.
    ERR_HANDLE_MODE 플래그가 "0"으로 설정되면, BP는 다음번 스타트 코드를 찾지 않고 아이들 상태로 떨어진다. ERR_HANDLE_MODE When the flag is set to "0", BP is not looking for the next start code drops to idle. 이러한 경우, 마지막 데이터를 위해 사용된 포인터는 에러가 발견된 위치를 지시해야 한다. In this case, the pointer used for the last data has to indicate the location where the error was detected. 이 모드는 사용자가 ARM7 명령어를 이용하여 오염된 비트 스트림을 디버깅하고자 하는 경우 유용하다. This mode is useful when the user wants to debug the contaminated bitstream using ARM7 instruction.
    부록 B Appendix B
    MPC 비트스트림 처리기 MPC bit stream processor
    비트 스트림 처리기(BP)는 비디오 데이터 엔코딩 및 디코딩 응용에 중요한 MSP 처리 코아 중 하나이다. A bit stream processor (BP) is one of the major core MSP processing to the video data encoding and decoding applications. BP는 MPEG 슬라이스 계층 엔코딩 및 디코딩, 그리고 H.261/H.263 블록 그룹(G0B) 계층 엔코딩 및 디코딩을 처리한다. BP processes the MPEG slice-layer encoding and decoding, and H.261 / H.263 group of blocks (G0B) layer encoding and decoding. 디코딩 응용에 있어서, BP는 각 매크로블록에 포함된 전체 정보를 벡터 처리기 및 ARM-7 코아에 제공한다. In the decoding application, BP provides full information included in each macroblock to the vector processor and the ARM core-7.
    비트 스트림 처리기 하드웨어는 4개의 기능 블록으로 나누어진다. A bit stream processor hardware is divided into four functional blocks.
    * I/O 제어 및 디코딩 유니트를 포함하는 IOBUS 포트 인터페이스 * I / O control and IOBUS interface port including a decoding unit
    * BP 제어 스테이트 머쉰 * BP control state machine
    * BP 레지스터 멀티플렉서, 레지스터, 산술 논리 유니트(ALU) 및 멀티플렉서, FIFO 제어 유니트를 포함하는 코덱 코아 * BP register multiplexer, register, arithmetic logic unit (ALU) and a multiplexer, a core codec comprising a FIFO control unit
    * VLC FIFO 유니트 * VLC FIFO unit
    * 코덱 어드레스 발생기와 함께 룩업 ROM을 포함하는 VLC 코덱 * VLC codec including a ROM look-up address generator with a codec
    VLC LUT ROM(340; 도 3 참조)에 대한 설명은 다음과 같다. VLC LUT ROM; Description of the (340 see Fig. 3) is as follows.
    1.0 방법론 1.0 Methodology
    룩업 테이블 유니트는 허프만 엔코딩 및 디코딩의 핵심이다. A look-up table unit is the core of the Huffman encoding and decoding. 이 유니트는 MPEG-1, MPEG-2, H.261 및 H.263 사양에 포함된 모든 VLC 테이블들을 지원하고, 삼성 MSP에 의해 지원된다. This unit supports all of the VLC table included in the MPEG-1, MPEG-2, H.261 and H.263 specifications, and is supported by Samsung MSP. 이들 테이블의 대부분은 12비트 폭을 갖는 ROM으로 구현된다. Many of these tables are implemented in a ROM with a 12-bit width. 그러나 룩업 처리가 너무 단순하거나, ROM 테이블의 사이즈에 맞지 않을 경우, 특수한 엔코딩 및 디코딩이 적용될 것이다. However, the look-up process is very simple and may not correspond to the size of the ROM table, will be subject to a special encoding and decoding. 이 계층에 있는 4가지 사양 모두는 많은 가변길이 코드를 17비트까지 포함한다. All four in this specification layer includes a number of variable-length codes to 17 bits. 엔코딩 값 또는 디코딩값 이외에, 코드 사이즈 및 유효 코드 지시자가 엔코딩 및 디코딩을 위해 제공되어 처리가 정확하게 처리되도록 한다. In addition to encoding or decoding value value, the code size and the available code indicator provided for encoding and decoding process such that the process correctly. VLC 테이블을 엔코딩 또는 디코딩하기 위해 종래의 방법을 사용할 경우, ROM 테이블 및 어드레스 발생기가 매우 커지게 될 것이다. When the VLC table to be used for a conventional method for encoding or decoding, ROM table and the address generator will become very large.
    1.1 구현 방법은 다음과 같다: 1.1 Implementation method is as follows:
    * 만약 어드레스 발생기를 설계하는 것이 어렵지 않다면, ROM 테이블을 가능한한 많이 공유한다. * If not, it is difficult to design an address generator, and share the ROM table as much as possible.
    * 엔코딩 또는 디코딩에 근거하여 VLC 테이블을 재배열한다. * Rearranges the VLC table based on the encoding or decoding.
    * 허프만 코드에 기초하여, '0' 카운트와 '1' 카운트를 먼저 디코딩한다. * On the basis of the Huffman code, and decodes the "0" count and the "1" count first.
    * 부호 또는 우수/기수와 같은 1비트 플래그를 사용하여 테이블 사이즈를 줄인다. * Using a one-bit flag, such as a sign or a solid / rider to reduce the table size.
    * 가능하다면 하나의 ROM 위치를 '상위'와 '하위'로 분리한다. * Then, if possible, to remove the single ROM position to its "parent" and "child".
    * ROM 테이블 어드레스를 발생시키기 위해 VLC의 최하위 비트들(LSBs)를 사용하여 어드레스 발생기를 간소화한다. * ROM simplifies the address generator using the least significant bits (LSBs) of a VLC table in order to generate an address.
    이 방법은 매우 효율적이다. This method is very efficient. 최종 ROM 테이블 사이즈는 768*12 비트로 문제를 수반하기에는 훨씬 작다. The final table ROM size is much small to accompany the 768 * 12 bits problems. 록업은 ROM 테이블 어드레스 발생기와 ROM테이블 록업 처리에 의해 수행된다. Lock-up is performed by a ROM table and the ROM table address generator lock-up process. 어드레스 발생기는 테이블 종류, 모드 및 VLC값과 같은 입력신호를 디코딩하여 ROM테이블의 어드레스를 발생시킨다. Address generator decodes the input signal, such as a table type, mode and the VLC value to generate an address of the ROM table. 이후, ROM 테이블값 및 다른 정보로부터 엔코딩 또는 디코딩 데이타가 얻어진다. Since, ROM table values, and the encoding or decoding data is obtained from the other information. 디코딩 테이블은 두가지 포맷을 가지는데, 하나는 VLC 코드당 하나의 ROM 위치를 갖는 DCT 계수에 적용되고, 다른 하나는 각각의 ROM 위치가 상위 6비트와 하위 6비트로 분할되어 있는 다른 테이블에 적용된다. Decoding table I of the two formats, one of the VLC is applied to the DCT coefficient having a ROM location per code, while the other is applied to the other tables in each ROM location is divided low-order 6 bits and upper six bits. 따라서, 각 위치는 두가지 VLC 코드를 가진다. Therefore, each location has two VLC codes. 엔코딩 테이블은 두가지 포맷을 가지는데, 하나는 H. 263의 TCOEF에 대한 것이고, 다른 하나는 다른 테이블에 대한 것이다. Encoding table I of the two formats, one for TCOEF of H. 263, and one for the other tables. 각 ROM 위치는 엔코딩 응용을 위해 하나의 허프만 코드를 포함한다. Each ROM location comprises one of the Huffman code for the encoding application. ROM 테이블의 사이즈는 768*12 비트이다. The size of the ROM table is 768 * 12 bits. 테이블은 다음과 같이 나타낼 수 있다. Table can be expressed as:
    [테이블 1] [Table 1]
    VLC 디코딩 ROM 테이블 맵 VLC decoding ROM table map
    [테이블 2] [Table 2]
    VLC 엔코딩 ROM 테이블 맵 VLC encoding ROM table map
    1.2 디코딩 1.2 Decoding
    디코딩에 대한 모든 테이블은 '0' 또는 '1' 카운트에 근거하여 재배열된다. All of the decoding table are rearranged on the basis of '0' or '1' count. VLC 코드의 MSB가 '0이면 '0' 카운트가 인가되고, '0'이 아니면 '1' 카운트가 사용된다. A '0' is the MSB of the VLC code 0 'is applied to the count, "" or "0 1" count is used. 예를 들어, 코드 '00001xxx'의 경우 4개의 '0'을 가지며, 코드 '1110xxx'의 경우 3개의 '1' 카운트를 가진다. For example, for a code "00001xxx" has four "0", if code "1110xxx 'has three" 1 "count. 디코딩 과정은 먼저 '0'/'1' 카운트를 디코딩하여, VLC 코드의 '0'/'1' 카운트를 ROM 테이블 어드레스 발생기로 출력한다. Decoding process by decoding the first '0' / '1' count, and outputs a '0' / '1' count of VLC code tables in ROM address generator.
    이후, 어드레스 발생기는 코드의 나머지를 디코딩하여 어드레스를 발생시킨다. Then, the address generator generates an address by decoding the rest of the code. 어드레스는 두개 부분으로 이루어지는데, 하나는 오프셋이고, 다른 하나는 소위 마스크된 어드레스로서 VLC 테이블로 부터 얻어진다. Address makin composed of two parts, one for the offset, and the other is obtained from the VLC table as a so-called mask address. 어드레스는 두개 부분에 대한 논리합(OR)으로 부터 얻어진다. Address is obtained from the logical sum (OR) of the two parts. 어드레스 발생기에 의해 제공되는 다른 정보는 다음과 같이 나타낼 수 있다. Other information provided by the address generator may be expressed as:
    * VLC code size * VLC code size
    * Special Flag:2 비트 플래그는 H.261에서 'ESCAPE', 'END OF BLOCK', 'STUFFING', 또는 'START CODE'에 대한 디코딩 스테이트 머쉰을 나타낸다. * Special Flag: 2-bit flag represents the decoding state machine for the 'ESCAPE', 'END OF BLOCK', 'STUFFING', or 'START CODE' in H.261.
    * High data extract enable:유효 데이타는 상위 6비트이다. * High data extract enable: Valid data is a top-six bits.
    * Sign/even enable:이 플래그는 디코딩이 VLC의 LSB를 테이블에 근거한 부호 또는 우수 비트로 추출해야 함을 지시한다. * Sign / even enable: This flag indicates that the need to decode the extracted sign bit, or excellent, based on the LSB of the VLC table.
    * Valid VLC * Valid VLC
    * Mask shift bits 및 mask:이 두 신호는 마스크된 어드레스를 발생시키기 위해 인가된다. * Mask bits and shift mask: the two signals are applied to generate a mask address.
    ROM 테이블에 대하여, MPSG-2의 테이블 14, 15과 H. 263의 테이블 12를 제외하고는 각각의 위치에 상위와 하위 비트 포맷으로 형성된 데이타가 저장된다. With respect to the ROM table, with the exception of the table 14, table 12, 15 and H. 263 of MPSG-2 stores the data formed in the upper and lower bit format for each position.
    1.2.1 테이블 12/MPEG-2 1.2.1 Table 12 / MPEG-2
    이 테이블은 테이블 2-B. 2-B is a table for a table. 5c/MPEG-1 및 테이블 5/H. 5c / MPEG-1 and Table 5 / H. 261과 동일하다. It is equal to 261.
    ROM 테이블 포맷:비트 10∼6:런; ROM table format: Bit 10-6: run; 비트 5∼0:레벨 Bit 5-0: Level
    1.2.2 테이블 15/MPEG-2 1.2.2 Table 15 / MPEG-2
    테이블 14/MPEG-2와 동일한 런, 레벨 및 VLC 코드를 가지기 때문에 이 테이블의 대부분은 테이블 14/ MPEG-2와 공유한다. Many of these tables are shared with the table 14 / MPEG-2 because they have the same run, level and the VLC table and the code 14 / MPEG-2.
    ROM 테이블 포맷:비트 10∼6:런; ROM table format: Bit 10-6: run; 비트 5∼0:레벨 Bit 5-0: Level
    1.2.3 테이블 12/H. 1.2.3 Table 12 / H. 263 263
    이 테이블은 MPEG-2의 테이블 14, 15와 비교할 때 한개 이상의 출력값 'LAST'를 가진다. This table has a one or more output values ​​'LAST' as compared with the table 14, 15 of the MPEG-2.
    ROM 테이블 포캣:비트 11:LAST; ROM pokaet table: Bit 11: LAST; 비트 10∼4:런; Bit 10-4: run; 비트 3∼0:레벨 Bit 3-0: Level
    1.2.4 움직임 코드/매크로블록 증가분 1.2.4 motion code / macro block increment
    이 절은 테이블 1/MPEG-2, 테이블 10/MPEG-2, 테이블 2-B.1/MPEG-1, 테이블 2-B.4/MPEG-1, 테이블 1/H.261, 테이블 3/H.261 및 테이블 10/H. This section is a table for 1 / MPEG-2, the table 10 / MPEG-2, Table 2-B.1 / MPEG-1, Table 2-B.4 / MPEG-1, Table 1 / H.261, table 3 / H 0.261 and table 10 / H. 263을 다른다. The other 263.
    움직임 코드에 대하여, VLC=1인 경우를 제외하고는 LSB가 부호비트이다. And LSB is the sign bit, except for the case of motion with respect to the code, VLC = 1. 매크로블록 증가분에 대하여 LSB는 VLC=1인 경우를 제외하고는 우수값 플래그이다. To the macro-block increment is LSB and is excellent value flag except when the VLC = 1. 따라서, 테이블을 반만 디코딩한다. Thus, only half the decoding table. 타일(tile)부호/우수 비트를 무시할 경우, 테이블 10/H. Ignoring tile (tile) code / superior bit, table 10 / H. 263의 상위 부분을 제외하고는 두가지 종류의 테이블은 동일한 VLC값과 디코딩값을 가진다. Except for the top portion of 263 and the two kinds of VLC tables have the same value and the decoded value. 디코딩된 값은 6비트까지 발갱하고, 이는 두개의 테이블값을 하나의 위치에 둘 수 있음을 의미한다. The decoded values ​​are balgaeng to 6 bits, which means that both the two values ​​of the table to one position. 비록, 테이블 10/H.263의 하위 부분의 디코딩값이 다른 것들과 다를지라도, 타일 이진값은 고정점 때문에 동일하다. Although, even if the decoded values ​​of the lower portion of the table 10 / H.263 different from the others, the tile binary values ​​are the same because of the fixed point. 즉, 이 모든 테이블을 다루기 위해 고정점으로 16 1/2개의 위치를 사용한다. That is, to address all the table uses a 16 1/2 positions as anchor points. ROM 어드레스를 발생시키기 위해 하나의 간단한 FSM을 사용한다. To generate a ROM address uses a simple FSM. 응용에 있어서, 움직임 코드가 디코딩되는 경우, ROM 테이블은 절대값을 제공한다. When in the application, the motion code has been decoded, ROM table provides an absolute value. 한편, 어드레스발생기가 부호 비트를 인에이블시키면 디코더는 LSB를 추출하는데, 케이스 '1'은 -, '0'은 +를 의미한다. On the other hand, if the address generator is enabled the sign bit decoder for extracting the LSB, case '1' -, '0' it means a +. 이 알고리즘은 다음과 같이 나타낼 수 있다. The algorithm can be expressed as:
    if (sign_enable==1) if (sign_enable == 1)
    increment-value=sign*ROM_table-value; increment-value = sign * ROM_table-value;
    else else
    increment_value=ROM_table_value; increment_value = ROM_table_value;
    만약 매크로블록 어드레스 증가 테이블이 디코딩된다면, 그 결과는 ROM테이블값과 우수 플래그로부터 얻어진다. If the macro-block address increment table is decoded, the result is obtained from the ROM table values ​​and excellent flag. 예를 들어, ROM 테이블은 '5'의 값을 제공 한다. For example, ROM table provides a value of "5". 우수 플래그가 '하이'이면 '10'의 결과를 얻고, 우수 플래그가 '로우'이면 '11'의 값을 얻는다. If the solid flag is 'high' to obtain the result of "10", a solid flag is "low" to obtain a value of '11'. 이 알고리즘은 다음과 같이 나타낼 수 있다. The algorithm can be expressed as:
    if(even_enable==1) if (even_enable == 1)
    increment_value=(ROM_table_value1) increment_value = (ROM_table_value1)
    | | (∼even_bit); (~even_bit);
    | |
    else else
    increment_value=ROM_table_value; increment_value = ROM_table_value;
    ROM 테이블 포맷:비트 11∼6:상위 데이타; ROM table format: Bit 11-6: top data; 비트 5∼0:하위 데이타 Bit 5-0: lower data
    1.2.5 매크로블록 패턴 1.2.5 macroblock pattern
    이 절은 테이블 9/MPEG-2, 테이블 2-B.3/MPEG-1, 테이블 4/ H.261(CBP)를 다룬다. This section deals with the table 9 / MPEG-2, Table 2-B.3 / MPEG-1, table 4 / H.261 (CBP).
    디코딩된 값은 6비트까지 발생하는데, 이는 한개의 위치에 두개의 데이타를 둘 수 있음을 의미한다. The decoded values ​​to generate up to 6 bits, which means that both the two data in one of the positions. 즉, 이들 테이블을 모두 다루기 위해서는 32개의 위치가 사용된다. That is, the 32-position are used to deal with all of these tables.
    ROM 테이블 포맷:비트 11∼6:상위 데이타; ROM table format: Bit 11-6: top data; 비트 5∼0:하위 데이타 Bit 5-0: lower data
    1.2.6 매크로블록 타입 1.2.6 macroblock type
    이 절은 테이블 2,3,4/MPEG-2, 테이블 2-B.2/MPEG-1, 테이블 2/H.261(MTYPE) 및 테이블 3,4/H.263(MCBPC)를 다룬다. This section deals with the tables 2,3,4 / MPEG-2, Table 2-B.2 / MPEG-1, Table 2 / H.261 (MTYPE) and Table 3,4 / H.263 (MCBPC).
    디코딩된 값은 5비트까지 발생한다. The decoded value is caused to 5 bits. 여기서도 상위/하위 데이타 개념을 사용한다. Again, use the parent / child data concepts. ROM 어드레스를 발생시키기 위하여 한개의 간단한 FSM이 사용된다. It is one of a simple FSM is used to generate a ROM address.
    ROM테이블 포맷:비트 11∼6:상위 데이타; ROM table format: Bit 11-6: top data; 비트 5∼0:하위 데이타 Bit 5-0: lower data
    비록, 몇개의 비트들이 각 사양에 따라 서로 다른 의미를 가지지만, 매크로 블록 타입의 포맷은 MPEG에 근거하여 각 사양에 대해 세계적으로 정의되어 있다. Although, only a few of the bits have a different meaning depending on the specification, the format of the macro-block type is globally defined for each specification on the basis of the MPEG. H.263은 정보 요구에 근거하여 2단계 디코딩을 필요로 하는데, 이는 다음과 같다. H.263 is to require a 2-step decoding on the basis of the information request, which are as follows.
    * 3 비트 매크로블록 타입을 갖는 디코딩 MCBPC * Has a 3-bit decoding macroblock type MCBPC
    * 매크로블록 타입, PB 플래그 및 픽쳐 타입에 근거한 매크로블록 타입 록업 VLC 테이블에서 매크로블록 타입의 포맷은 다음과 같다. - a macro-block type, PB flag and the macro-block type lock-up format of the macro-block type in the VLC table based on the picture types include:
    [테이블 3] [Table 3]
    MPEG의 매크로블록 타입 포맷 Macroblock type in MPEG format
    [테이블 4] [Table 4]
    H. 263의 MCBPC 포맷 MCBPC format of the H. 263
    [테이블 5] [Table 5]
    H. 261의 매크로블록 타입 포맷 Macro-block type format for H. 261
    테이블 4로부터, 3비트 매크로블록 타입 뿐만 아니라 2비트 크로마 패탄을 얻는다. From the table 4, three bits macro-block type as well as to obtain a two-bit chroma paetan. 여기서, 매크로블록 타입은 0∼4까지의 범위를 갖는 3비트 값이다. Here, the macro-block type is a three-bit value in the range of from zero to four. 상술한 바와 같이, 세부적인 매크로블록 타입 종류는 제2단계에서 디코딩된다. As described above, the details of the macro-block type kind is decoded in the second stage.
    디코딩 룩업 테이블은 다음과 같다. Decoding the look-up table is as follows.
    [테이블 6] [Table 6]
    H. 263의 매크로블록 타입 디코딩 룩업 테이블 Macro-block type decoding lookup table for H. 263
    1.2.7 DCT DC 사이즈 1.2.7 DCT DC Size
    이 절은 테이블 12,13/MPEG-2, 테이블 2-B.5/MPEG-1을 다룬다. This section covers the tables 12,13 / MPEG-2, Table 2-B.5 / MPEG-1. VLC 구조로 인하여 '1'카운트는 여기서 '0' 카운트 대신 사용된다. Due to the VLC structure "1" count is used instead, where "0" count.
    ROM테이블 포맷:비트 10∼6:상위 데이타:크로마; ROM table format: Bit 10-6: Top Data: chroma; 비트 5∼0:하위 데이타:휘도. Bits 5-0: lower data: brightness. 비트 11과 비트 5는 예약되어 있다. Bit and 11-bit 5 is reserved.
    1.2.8 CBPY 1.2.8 CBPY
    이 절은 테이블 9/H.263을 다른다. This section is a different table 9 / H.263. 이 테이블은 두 세트의 데이를 포함하는데, 하나는 인터픽쳐에 대한 것이고, 다른 하나는 인트라픽쳐에 대한 것이다. This table includes the data of the two sets, one for the inter-picture, the other is for an intra picture. 한 세트의 값은 다른 세트의 값을 반전시킨 것으로서, ROM에 한 세트의 데이타를 저장할 수 있도록 한다. The value of a is set as the inverse of the value of the other set, and to store the data of one set in the ROM. 여기서, 인트라 데이타가 ROM에 위치한다 하나의 4비트 값이 CBPY값을 나타내는데 사용된다. Here, the intra-data is located in the ROM is a 4-bit value is used to indicate the CBPY value.
    ROM 테이블 포맷:비트 9∼6:상위 데이타; ROM table format: Bit 9-6: upper data; 비트 3∼0:하위 데이타. Bit 3-0: lower data. 비 11∼10과 비트 5∼4는 예약되어 있다. Non-11-10 and bits 5-4 are reserved.
    1.2.9 듀얼 프라임(dual prime) 및 모드 1.2.9 Dual Prime (dual prime) and mode
    이 절은 테이블 11/MPEG-2 및 테이블 7/H.263을 다룬다. This section covers the table 11 / MPEG-2 and Table 7 / H.263.
    이 두개의 테이블은 매우 간단하고 작아서 직접 디코딩될 수 있다. The two tables can be very simple and small, direct decoding.
    1.3 엔코딩 1.3 Encoding
    디코딩 절과 마찬가지로, 엔코딩 과정은 '0'/'1'카운트 개념을 사용한다. Like the decoding section, the encoding process uses a "0" / "1" count concept. ROM 테이블은 '0'/'1' 카운트, '0' 또는 '1' 카운트에 대해 첫번째 1에 뒤따라는 코드의 크기 및 첫번째/마지막 '1'에 따르는 VLC 코드에 대한 정보를 포함한다. The ROM table contains information about the VLC code according to '0' / '1' count, '0' or '1' count the first one followed by a code size and the first / last "1" to about. 이 포맷에 따르면, ROM 테이블의 사이즈는 테이블 12/H. According to this format, the size of the ROM table, table 12 / H. 263에서 특수 엔코딩으로 해결되는 4가지를 제외하고는 12비트로 제한될 수 있다. And it may be limited to 12 bits, excluding the four that are fixed at 263 with a special encoding. 포맷은 다음과 같다. The format is as follows:
    [테이블 7] [Table 7]
    일반적인 엔코딩 포맷 Common encoding formats
    [테이블 8] [Table 8]
    테이블 12/H. Table 12 / H. 263 엔코딩 포맷 263 encoding formats
    상기 테이블에서, VLC 코드 사이즈는 첫번째/마지막 '1'을 뒤따르는 VLC 코드의 사이즈이다. In the above table, VLC code size is the size of the VLC code following the first / last "1". VLC 코드는 첫번째/마지막 '1'을 뒤따르는 VLC 코드이다. VLC code is VLC code followed by the first / last "1". '0' 카운트의 경우, 첫번째 '1'을 뒤따르는 VLC 코드가 추출되고, 그렇지 않은 경우 VLC 코드는 마지막 '1'을 뒤따르는 비트들로 부터 취출되어져야 한다. For a "0" count, the VLC code following the first "1" is extracted, or VLC code if it has to be taken out from the bit following the last "1". 엔코딩에서 '1' 카운트의 적용은 디코딩에서와 다르다. Application of a '1' count in encoding is different from the decoding. '1' 카운트는 '1 카운트 플래그가 어드레스 발생기에 의해 인에이블되는 경우에만 적용된다. '1' count 'is applied only when the first count flag is enabled by the address generator. 그러므로, VLC의 MSB가 1이지만, '1' 카운트 플래그가 로우인 경우, ROM 테이블의 '0'/'1' 카운트 부분은 0이 될 것이며, 이는 '0' 카운트가 적용되는 것을 의미한다. Therefore, if the MSB of the first VLC, but the "1" count flag is low, the "0" / "1" count of ROM table will be zero, which means that the "0" count applies.
    다음 예는 엔코딩에 대한 모든 가능한 경우를 다룬다. The following example covers all possible cases for encoding.
    예 1:VLC=0000011001, one_count_enable=0 Example 1: VLC = 0000011001, one_count_enable = 0
    일반적인 경우에 대한 결과:0101 100 01001 Results for the general case: 0101 100 01001
    테이블 12/H.263에 대한 결과:101 100 001001 12 Table / Results for H.263: 101 100 001001
    예 2:VLC=11001, one_count_enable=0 Example 2: VLC = 11001, one_count_enable = 0
    일반적인 경우에 대한 결과:0000 100 0101 Results for the general case: 0000 100 0101
    테이블 12/H.263에 대한 결과:000 100 001001 12 Table / Results for H.263: 000 100 001001
    예 3:VLC=11001, one_count_enable=1 Example 3: VLC = 11001, one_count_enable = 1
    일반적인 경우에 대한 결과:0010 011 00001 Results for the general case: 0010 011 00001
    테이블 12/H.263에 대한 결과 Results for Table 12 / H.263
    일반적인 어드레스는 옵셋과 입력 값의 가산으로서 발생된다. Common addresses are generated as the sum of the offset and the input value.
    1.3.1 테이블 14/MPEG-2 1.3.1 Table 14 / MPEG-2
    이 테이블은 테이블 2-B.5c/MPEG-1 및 테이블 5/H.261과 동일하다. This table is the same as Table 2-B.5c / MPEG-1 and Table 5 / H.261. 이 엔코딩은 'RUN', 'FIRST DC', 'ESCAPE', 'END OF BLOCK' 입력을 처리한다. The encoding processes the input 'RUN', 'FIRST DC', 'ESCAPE', 'END OF BLOCK'.
    엔코딩 결과:어드레스를 발생하기 위하여 레벨 또는 런과 함께 가산되도록 인가되는 옵셋 어드레스 Encoding results: offset to be applied to the addition or with the level of the run in order to generate an address address
    1.3.2 테이블 15/MPEG-2 1.3.2 Table 15 / MPEG-2
    두 테이블이 동일한 런, 레벨 및 VLC 코드를 가지기 때문에, 이 테이블의 대부분은 테이블 14/MPEG-2를 공유한다. Because the two tables has the same run, level, and VLC code, most of the tables share a table 14 / MPEG-2. 몇가지 특수한 경우에 있어서 '1' 카운트가 적용된다. Some special cases, the "1" count is applied in. 이 엔코딩은 'RUN', 'LEVEL', 'FIRST DC', 'ESCAPE', 'END OF BLOCK' 입력을 처리한다. The encoding processes the input 'RUN', 'LEVEL', 'FIRST DC', 'ESCAPE', 'END OF BLOCK'.
    엔코딩 결과:옵셋 어드레스 및 '1' 카운트 지시자 Encoding results: offset address and a '1' count indicator
    1.3.3. 1.3.3. 테이블 12/ H.263 Table 12 / H.263
    상술한 바와 같이, 이 테이블은 매우 특수하다. As described above, the table is very special. 이를 다루기 위하여 다른 포맷을 사용한다. Use a different format to deal with it. 불행히도, VLC코드를 나타내는데 12비트를 사용할 수 없는 몇가지 예외가 있다. Unfortunately, there are some exceptions that can be used to represent a 12-bit VLC code. 그 예외는 테이블 9에 나타낸 바와 같다. The exceptions are as shown in Table 9. 이들 예외는 ROM 테이블을 사용하지 않은 특수하게 엔코딩될 수 있다. These exceptions may be specially encoded did not use a ROM table.
    [테이블 9] [Table 9]
    12/H.263에서 엔코딩의 예외 Exception of encoding in 12 / H.263
    엔코딩은 'RUN' 및 'ESCAPE' 입력을 처리한다. Encoding processes the input 'RUN' and 'ESCAPE'.
    엔코딩 결과:어드레스를 발생하기 위하여 레벨 또는 런과 함께 가산되도록 인가되는 옵셋 어드레스 Encoding results: offset to be applied to the addition or with the level of the run in order to generate an address address
    1.3.4 움직임 코드/매크로블록 증가분 1.3.4 motion code / macro block increment
    이 절은 테이블 1/MPEG-2, 테이블 10/MPEG-2, 테이블 2-B. This section is a table for 1 / MPEG-2, the table 10 / MPEG-2, Table 2-B. 1/MPEG-1, 테이블 2-B.4/MPEG-1, 테이블 1/H.261, 테이블 3/H.261 및 테이블 10/H.263을 다룬다. 1 / MPEG-1, Table 2-B.4 / MPEG-1, deals with the table 1 / H.261, table 3 / H.261 and Table 10 / H.263.
    디코딩 부분에서 설명한 바와 같이, 이 모든 테이블에 대하여 하나의 ROM 테이블과 하나의 FSM을 공유할 수 있다. As explained in the decoding section, it is possible to share a ROM table and a FSM respect to all of the tables. ROM테이블로 부터 얻어지는 VLC 코드는 완전한 VLC 코드를 만들기 위하여 부호/우수 비트와 결합해야 한다. ROM VLC code obtained from the table should be combined with codes / Best bits to make a complete VLC code. 그러므로, 이 엔코딩 FSM에서 처리하는 입력값들은 그 LSB가 프랙션 비트(fraction bit)인 움직임 코드에 대한 절대값과 1비트 오른쪽으로 쉬프트된 매크로블록 어드레스 증가분이다. Therefore, the input to the encoding processing in the FSM are shifted by an absolute value and 1-bit-right macro block address increment to the motion code is the LSB bit fraction (fraction bit).
    엔코딩은 'STUFFING' 및 'ESCAPE'를 처리한다. Encoding processes the 'STUFFING' and 'ESCAPE'.
    1.3.5 매크로블록 패턴 1.3.5 macroblock pattern
    이 절은 테이블 9/MPEG-2, 테이블 2-B.3/MPEG-1을 이룬다. This section forms a table 9 / MPEG-2, Table 2-B.3 / MPEG-1.
    어드레스는 옵셋과 패턴 값을 가산한 값이다. Address is a value obtained by adding the offset value and pattern.
    1.3.6 매크로블록 타입 1.3.6 macroblock type
    이 절은 테이블 2,3,4/MPEG-2, 테이블 2-B.2/MPEG-1을 다룬다. This section covers the tables 2,3,4 / MPEG-2, Table 2-B.2 / MPEG-1.
    1.3.7 테이블 3.4/H.263(MCBPC) Table 1.3.7 3.4 / H.263 (MCBPC)
    픽쳐 타입, 매크로블록 타입 및 스터핑(stuffing) 플래그에 대한 정보가 ROM 테이블 어드레스 옵셋을 발생시키기 위해 제공된다. Information about the picture type, a macroblock type and a stuffing (stuffing) flag is provided to generate a ROM table address offset. 어드레스는 옵셋 어드레스와 CBPC의 합이다. Address is the sum of the offset address and the CBPC.
    1.3.8 테이블 2/H.261(MTYPE) 1.3.8 Table 2 / H.261 (MTYPE)
    어드레스 발생기가 매우 복잡하여 구현에 대해 생각할 가치가 없다. The address generator is very complex, it is not worth thinking about implementation.
    1.3.9 CBPY 1.3.9 CBPY
    디코딩 부분에 논의한 바와 같이, 인트라 픽쳐 데이타만을 엔코딩한다. As it discussed in the decoding portion, only the intra-picture encoded data. 픽쳐 타입이 인터 픽쳐인 경우 데이타는 먼저 반전되어야 한다. If the picture type is the inter-picture data must first be reversed.
    어드레스는 옵셋과 CBPY값을 가산한 값이다. Address is a value obtained by adding the offset value and CBPY.
    1.3.10 DCT DC 사이즈 1.3.10 DCT DC Size
    이 절은 테이블 12,13/MPEG-2, 2-B.5/MPEG-1을 다룬다. This section covers the tables 12,13 / MPEG-2, 2-B.5 / MPEG-1.
    휘도 및 크로마에 대한 몇개의 VLC 코드가 동일하기 때문에 이들에 대하여 몇개의 ROM 테이블을 공유한다. Since the same one of VLC codes for luminance and chroma share some of the ROM table for these. 옵셋 어드레스를 발생시키기 위하여 크로마 플래그 및 몇개 비트의 값이 사용된다. The value of the chroma flag and some bits are used to generate an offset address. 옵색과 실제 값을 가산함으로써 ROM 어드레스를 얻을 수 있다. By adding opsaek the actual value can be obtained ROM address.
    1.3.11 듀얼 프라임(dual prime) 및 모드 1.3.11 Dual Prime (dual prime) and mode
    이 절은 테이블 11/MPEG-2 및 테이블 7/H.263을 다룬다. This section covers the table 11 / MPEG-2 and Table 7 / H.263.
    이 두개의 테이블은 매우 간단하고 작아서 직접 엔코딩될 수 있다. The two tables can be very simple and small, direct encoding.
    2.0 하드웨어 설명 2.0 Hardware Description
    VLC 엔코딩/디코딩에 대한 하드웨어는 'VLC' 블럭에 포함된다. Hardware for the VLC encoding / decoding is included in a 'VLC' block. 이 블록은 세개의 서브 블록들을 포함한다. This block includes three sub-blocks. 이들 블록들은 ROM테이블 어드레스 또는 디코딩/엔코딩 데이타를 발생시키기 위하여 적용된다. These blocks are applied to generate a ROM table address or decoded / encoded data. 'VLC_DEC'는 VLC를 디코딩하여 ROM 테이블 어드레스를 발생시키기 위해 사용된다. 'VLC_DEC' is used to generate the address ROM table to decode the VLC. 'VLC_ENC'는 VLC를 엔코딩하기 위한 블록으로서, ROM 테이블 어드레스 또는 H. 263의 TCOEF 테이블을 위한 특수 엔코딩을 발생시킨다. 'VLC_ENC' is a block for encoding a VLC, to generate a special encoding for TCOEF table of the ROM table address, or H. 263. 'LOOKUP'은 ROM 테이블 값 또는 특수 엔코딩된 값에 근거하여 VLC 데이타를 출력한다. 'LOOKUP' is based on the value of the ROM table or a specially encoded values ​​and outputs the VLC data.
    2.1 VLC 디코딩 어드레스 발생기 2.1 VLC decoding address generator
    VLC_DEC의 핵심은 디코딩 FSM이다. The core of VLC_DEC is decoded FSM. 이 FSM은 입력 정보를 디코딩하여 어드레스 발생을 제어한다. This FSM has to decode the input information and controls the address generation. FSM의 입력 및 정의는 다음과 같다. The definition of input and FSM are as follows:
    * ZERO/ONE Count(15비트):0/1 카운트 값을 제공한다. * ZERO / ONE Count (15-bit): provides a 0/1 count.
    * ZERO ONE Count(4비트):0/1 카운트 값을 제공한다. * ONE ZERO Count (4-bit): provides a 0/1 count. 두가지 다른 비트-카운트 신호를 사용하는 목적은 입력 데이타 공유로 인해 게이트 주문자(gate customer)들을 감소시키기 위해서이다. Two other bit - The purpose of the count signals is to reduce the gate or client (customer gate) because of the shared input data. 대부분의 경우, 15비트가 사용된다. In most cases, the 15 bits are used.
    * ONE Count enable(1 비트):'1' 카운트 시작 * ONE Count enable (bit 1): "1" start count
    * 테이블 타입(6비트):테이블 타입 * Table Type (6 bits): Table Type
    [테이블 10] [Table 10]
    VLC_DEC FSM 테이블 타입 포맷 VLC_DEC FSM table type format
    *모드(9비트):동작 모드 * Mode (9-bit) mode of operation
    [테이블 11] [Table 11]
    VLC_DEC FSM 모드 포맷 VLC_DEC FSM mode format
    사양 및 픽쳐 타입에 대한 정의는 핀 정의에서 설명하기로 한다. Definition of the specifications, and the picture types will be described in the pin definition.
    하드웨어를 간소화하고 ROM 억세스 시간을 보증하기 위하여 특수한 알고리즘이 ROM 테이블 어드레스를 발생시키기 위해 사용된다. A special algorithm to simplify the hardware and ensure the ROM access time is used to generate the ROM table address. 그 과정은 다음과 같다. The process is as follows.
    단계 1:옵셋 어드레스(OFFSET)를 발생시킨다. Step 1: generate the offset address (OFFSET).
    단계 2:4비트 쉬프트 양(MASK_SHFT)을 발생시키고, 이 양과 함께 라이트 쉬프트 16 비트 FIFO_DATA를 발생시킨다. Step 2: 4 to generate a bit shift amount (MASK_SHFT), thereby the amount and generates a 16-bit shift light FIFO_DATA together. 이후, 4개의 최하위 비트들(FOL_DATA)을 추출한다. Thereafter, the extracted four least significant bits (FOL_DATA).
    단계 3:단계 2에서 얻어지는 4개 비트들을 반전시킨다. Step 3: inverts the four bits obtained in step 2.
    단계 4:단계 3에서 얻어지는 데이타(MASK)를 마스크하기 위하여 4비트 마스크 신호를 발생시킨다. Step 4: In order to mask data (MASK) is obtained in step 3 to generate the 4-bit mask signal.
    단계 5:단계 4의 결과를 옵셋 어드레스와 논리합시킨다. Step 5: the result of the logical OR thus step 4 and the offset address. 그 결과는 ROM 테이블 어드레스이다. The result is a ROM table address.
    이들 단계를 결합시키면 다음과 같다. When you combine these stages are as follows:
    Address=OFFSET|(BITREVERSE(Bit(3∼0) of (FIFO_DATA〉〉MASK_SHFT) & (MASK) Address = OFFSET | (BITREVERSE (Bit (3~0) of (FIFO_DATA >> MASK_SHFT) & (MASK)
    FSM의 출력은 다음과 같다. The output of the FSM are as follows:
    * MASK(4비트):마스크 데이타 * MASK (4-bit) mask data
    * OFFSET(9비트):ROM 테이블 옵셋 어드레스 * OFFSET (9 bits): offset address ROM table
    * MASK_SHFT(4비트):쉬프트 양 * MASK_SHFT (4 bit) shift amount
    * SIZE(5비트):VLC사이즈 * SIZE (5 bits): VLC Size
    *SPECIAL_FLAG(3비트):디코딩을 위한 여분의 정보 * SPECIAL_FLAG (3 bits): redundant information for decoding
    [테이블 12] [Table 12]
    VLC_DEC의 특수 플래그의 정의 Definition of special flag of VLC_DEC
    *VALID_VLC(1비트):유효 VLC 코드 플래그 * VALID_VLC (1 bit): valid VLC code flags
    *HIGH_DATA_INDICATOR(1비트):ROM데이타 중 상위 6비트를 출력한다. * HIGH_DATA_INDICATOR (1 bit): ROM and outputs the upper 6 bits of data.
    입력 핀들: Input pins:
    * FOL_DATA(4비트):쉬프트된 FIFO_DATA(상술한 단계 2 참조) * FOL_DATA (4 bit): (see above-described step 2) the shift FIFO_DATA
    * CNT(4비트):0/1 카운트 * CNT (4 bits): 0/1 count
    *ONE_CNT_EN(1비트):'1' 카운트 지시자 * ONE_CNT_EN (1 bit) "1" count indicator
    *MODE(14비트):테이블 타입 및 다른 정보 MODE * (14 bits): Table Type and Other Information
    정의는 다음과 같다. Defined as follows.
    [테이블 13] [Table 13]
    VLC_DEC에서 MODE 포맷 MODE format in VLC_DEC
    사양:00=MPEG-1; Specifications: 00 = MPEG-1; 01-MPEG-2; 01-MPEG-2; 10=H.261; 10 = H.261; 11=H.263; 11 = H.263;
    픽쳐타입:00=예약; Picture Type: 00 = Reserved; 01=인트라; 01 = intra; 10=예측; 10 = prediction; 11=양방향; 11 = two-way;
    *FIFO_DATA(16비트); * FIFO_DATA (16 bits); 데이타는 VLC를 포함한다. Data includes VLC.
    출력 핀들: Output pins:
    * ROM_ADR(10비트):ROM테이블 어드레스 * ROM_ADR (10 bits): ROM table address
    * MASK_SHFT(4비트):FIFO_DATA에 대한 쉬프트양(상술한 단계 2 참조) * MASK_SHFT (4 bits): the shift amount of the FIFO_DATA (See step 2 above)
    * SIZE(5비트):VLC 사이즈 * SIZE (5 bits): VLC Size
    * SPECIAL_0(3비트):특수 플래그(FSM 출력 참조) * SPECIAL_0 (3 bits): a special flag (see FSM output)
    * VALID_VLC(1비트):유효 VLC 플래그 * VALID_VLC (1 bit): valid flag VLC
    *HIGH_DATA(1비트):우스 플래그의 부호로 VLC의 LSB를 추출하라는 지시자 * HIGH_DATA (1 bit) in the sign of the mouse flag indicator asked to extract the LSB of VLC
    *FULL_DATA(1비트):DCT 계수 디코딩시 하이인 완전한 12비트 데이타 구조 * FULL_DATA (1 bit): DCT coefficients decoded during the high of the complete 12-bit data structure,
    *TABLE(6비트):FSM 입력에 정의됨 * TABLE (6 bits): Defined in FSM input
    *T_MODE(9비트):FSM 입력에 MODE로 정의됨 * T_MODE (9 bits): defined by the MODE input to the FSM
    2.2. 2.2. VLC_ENC VLC_ENC
    VLC 엔코딩 코아 부분에서와 같이, VLC_ENC는 가변길이 코드를 엔코딩한다. As in the VLC encoding the core portion, VLC_ENC will encode the variable length code. 이 부분의 출력은 ROM 테이블 어드레스 또는 VLC의 특수 엔코딩이다. The output of this part is a special encoding of the ROM table address or VLC. 1.0절에 설명한 바와 같이, 엔코딩 데이타 구조는 H.263에서 TCOEF의 몇가지 특수한 경우를 제외하고는 12비트 데이타 포맷을 따른다. As it explained in Section 1.0, and encoded data structure follows the 12-bit data format except for some special cases TCOEF in H.263. 비록 10비트 가산기가 ROM 테이블 어드레스를 발생시키기 위해 사용되지만, 하드웨어 관점에서 볼때에는 VLC_DEC부분보다 훨씬 더 간단하다. Although the 10-bit adder is used to generate the ROM table address, but, judging, it is much simpler than VLC_DEC part of the hardware point of view.
    VLC_DEC와 마찬가지로, 이 부분의 핵심은 VLC_ENC라 하는 FSM이다. Like VLC_DEC, the FSM, it called the core of this part VLC_ENC. 다른 FSM, ENC_SP는 특수 엔코딩을 위해 사용된다. Other FSM, ENC_SP is used for special encoding.
    FSM VLC_ENC의 입력신호는 이 부분의 입력 핀들과 동일하다. FSM VLC_ENC input signals is equal to the input pins of the part.
    * LAST(1비트):H.263의 TCOEF에 대한 LAST의 값 * LAST (1 bit): the value of LAST for the H.263 TCOEF
    * RUN/VALUE(6비트):DCT 계수 테이블이 엔코딩되는 중이면, 이 입력은 RUN을 의미하고, 그렇지 않은 경우 일반적인 값, 즉 패턴을 의미한다. * RUN / VALUE (6 bits): If you are encoding the DCT coefficient table, the input means RUN, and right mean the common value, that is, if it is pattern.
    * LEVEL(6비트):DCT 계수 레벨 LEVEL * (6 bits): DCT coefficient level
    *SPECIAL_FLAG(2비트):VLC_DEC 부분에서 정의된 특수 플래그 * SPECIAL_FLAG (2-bit): The flags are defined in a special section VLC_DEC
    * TABLE(6비트):VLC_DEC와 동일 * TABLE (6 bits): the same VLC_DEC
    *MODE(9비트):VLC_DEC와 동일 * MODE (bit 9): Same as VLC_DEC
    ROM 어드레스 발생은 매우 간단하다. ROM address generation is very simple. FSM은 어드레스를 발생시키기 위하여 값(런) 또는 레벨 또는 0에 더해지는 옵셋 어드레스를 제공한다. The FSM in order to generate an address and provides the offset address is added to the value (run) or the level or zero. 이들 VLC들이 동일 한 사이즈와 '0' 카운트를 가지기 때문에 특수 엔코딩을 위해서는, 출력은 코드로 복원되는 2개의 최하위비트들이다. These are to a special VLC encoding because they have the same size and the "0" count, and the output are the two least significant bits are restored to the code.
    출력 핀들은 다음과 같다. Output pins is as follows:
    * ONE_CNT_FLG(1비트):VLC 구조가 '1' 카운트를 사용함을 알린다. * ONE_CNT_FLG (1 bit): VLC structure informs the use of the "1" count.
    * SIGN_EN_BIT:VLC구조가 부호/우수 비트를 VLC LSB로 둠을 알린다. * SIGN_EN_BIT: VLC structure Announces Doom code / Best bit VLC LSB.
    * SPECIAL_ENCODE(1비트):특수 엔코딩 플래그 * SPECIAL_ENCODE (1 bit): special encoding flags
    * VLC(2비트):특수 엔코딩된 VLC 코드 LSB들 * VLC (2 bits): the special encoded VLC code LSB
    * ADR_A(16비트):옵셋 어드레스, 상위 6비트는 0이다. * ADR_A (16 bits): offset address, the upper six bits is zero.
    * ADR_B(16비트):어드레스의 또 다른 부분. * ADR_B (16 bit): The other part of the address. 상위 10비트는 항상 0이다. High-order 10 bits is always zero.
    2.3 룩업 2.3 lookup
    이 절은 VLC 데이타의 엔코딩/디코딩을 제공한다. This section provides the encoding / decoding of the VLC data. 이 블록은 다음과 같은 상황을 처리한다. This block handles the following situations:
    * 규칙적인 12비트 엔코딩/디코딩 ROM 테이블 값 출력 * Regular 12-bit encoding / decoding ROM table output value
    * 비트 상위/하위 디코딩 데이타 출력 * Bit top / bottom decoded data output
    * 특수 엔코딩 데이타 복원 * Restore the special encoding data
    요구한 바와 같이, 출력 데이타는 0으로 메워진다. As required, the output data is padded to zero.
    입력 핀들: Input pins:
    * D_ADR(10비트):ROM 어드레스를 디코딩한다. * D_ADR (10 bits): decodes the ROM address.
    * E_ADR(10비트):ROM 어드레스를 엔코딩한다. * E_ADR (10 bits) and encodes the ROM address.
    * ENCODE(1비트):1:엔코딩; * ENCODE (1 bit): 1: encoding; 0:디코딩 0: decoding
    * HIGH(1비트):상위 6비트 플래그를 추출한다. * HIGH (1 bit): thereby extracting the higher-order six-bit flag.
    * ENABLE(1비트):완전한 12비트 데이타 플래그 * ENABLE (1 bit): Complete 12-bit data flag
    * VLC(2비트):특수 엔코딩 코드 * VLC (2 bits): special encoded code
    * SPECIAL_ENCODE(1비트):특수 엔코딩 코드 * SPECIAL_ENCODE (1 bit): special encoded code
    출력 핀들: Output pins:
    LOOKUP(16비트):VLC 코드 〈/CLAIM〉〈/SDOCL〉 LOOKUP (16-bit): VLC code </ CLAIM> </ SDOCL>
KR19970034995A 1996-08-19 1997-07-25 Method and apparatus for processing video data KR100262453B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US69930396 true 1996-08-19 1996-08-19
US8/699,303 1996-08-19
US08699382 US6192073B1 (en) 1996-08-19 1996-08-19 Methods and apparatus for processing video data
US8/699,382 1996-08-19

Publications (2)

Publication Number Publication Date
KR19980018215A true KR19980018215A (en) 1998-06-05
KR100262453B1 true KR100262453B1 (en) 2000-08-01

Family

ID=27106388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR19970034995A KR100262453B1 (en) 1996-08-19 1997-07-25 Method and apparatus for processing video data

Country Status (4)

Country Link
JP (1) JP4290775B2 (en)
KR (1) KR100262453B1 (en)
CN (2) CN1523895A (en)
DE (1) DE19735880A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899258B1 (en) * 2006-04-12 2009-05-27 야마하 가부시키가이샤 Digital signal processing device
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
KR101270925B1 (en) 2005-05-20 2013-06-07 소니 주식회사 Signal processor
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111753B2 (en) 2003-02-06 2012-02-07 Samsung Electronics Co., Ltd. Video encoding method and video encoder for improving performance
US8107744B2 (en) * 2002-11-06 2012-01-31 Nokia Corporation Picture buffering for prediction references and display
US20040252761A1 (en) * 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
KR101160640B1 (en) * 2003-12-30 2012-06-28 삼성전자주식회사 Data processing system and data processing method
EP1812928A4 (en) * 2004-11-15 2010-03-31 Nvidia Corp Video processing
KR100858244B1 (en) * 2005-01-14 2008-09-12 주식회사 휴맥스 Device and Method for encoding/decoding video data
KR100688092B1 (en) * 2005-04-13 2007-03-02 부산대학교 산학협력단 Run_before decoding method, appartus and recording medium based on FSM for H.264/AVC
KR100720684B1 (en) * 2005-05-09 2007-05-21 이화여자대학교 산학협력단 Method and Apparatus for Huffman Decoding by Using Balanced Binary Search Tree
US20060256854A1 (en) 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
KR100765267B1 (en) * 2005-06-29 2007-10-09 삼성전자주식회사 Electronic Apparatus, Control Method Thereof And Electronic Control System Comprising The Same
KR100732418B1 (en) * 2006-02-16 2007-06-20 삼성전자주식회사 Multimedia record/play device and play method threrof
US8155454B2 (en) 2006-07-20 2012-04-10 Qualcomm Incorporated Method and apparatus for encoder assisted post-processing
US8253752B2 (en) 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
CN101090504B (en) 2007-07-20 2010-06-23 清华大学 Coding decoding apparatus for video standard application
CN101093474B (en) 2007-08-13 2010-04-07 北京天碁科技有限公司 Method for implementing matrix transpose by using vector processor, and processing system
US8665996B2 (en) 2008-04-01 2014-03-04 Qualcomm Incorporated Efficient parallel sub-packet decoding using multiple decoders
KR101641683B1 (en) * 2008-05-14 2016-07-21 삼성전자주식회사 Method and apparatus for data transferring for time-slicing mode, and method and apparatus for data receiving by time-slicing mode
JP5332369B2 (en) 2008-07-18 2013-11-06 ソニー株式会社 Image processing apparatus and image processing method, and computer program
US8194977B2 (en) * 2008-12-09 2012-06-05 Microsoft Corporation Remote desktop protocol compression acceleration using single instruction, multiple dispatch instructions
CN103914426B (en) * 2013-01-06 2016-12-28 中兴通讯股份有限公司 A multi-threaded processing method of a baseband signal and means
CN103957437A (en) * 2014-04-26 2014-07-30 吉安英佳电子科技有限公司 Wireless servo portable high-integration digital multimedia all-in-one machine
CN105786224A (en) * 2016-03-29 2016-07-20 电子科技大学 Universal laser pointer and computer operation method

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8493396B2 (en) 2004-11-15 2013-07-23 Nvidia Corporation Multidimensional datapath processing in a video processor
US8416251B2 (en) 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US8424012B1 (en) 2004-11-15 2013-04-16 Nvidia Corporation Context switching on a video processor having a scalar execution unit and a vector execution unit
US8493397B1 (en) 2004-11-15 2013-07-23 Nvidia Corporation State machine control for a pipelined L2 cache to implement memory transfers for a video processor
KR101270925B1 (en) 2005-05-20 2013-06-07 소니 주식회사 Signal processor
KR100899258B1 (en) * 2006-04-12 2009-05-27 야마하 가부시키가이샤 Digital signal processing device
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism

Also Published As

Publication number Publication date Type
DE19735880A1 (en) 1998-05-14 application
JPH1093961A (en) 1998-04-10 application
CN1523895A (en) 2004-08-25 application
CN1189058A (en) 1998-07-29 application
JP4290775B2 (en) 2009-07-08 grant
CN1145362C (en) 2004-04-07 grant

Similar Documents

Publication Publication Date Title
US5675331A (en) Decoding device for decoding a variety of code signals
US5446491A (en) Multi-point video conference system wherein each terminal comprises a shared frame memory to store information from other terminals
US6310921B1 (en) Media processing apparatus which operates at high efficiency
US6263396B1 (en) Programmable interrupt controller with interrupt set/reset register and dynamically alterable interrupt mask for a single interrupt processor
US6359656B1 (en) In-band synchronization of data streams with audio/video streams
US5815206A (en) Method for partitioning hardware and firmware tasks in digital audio/video decoding
US6490324B1 (en) System, method and apparatus for a variable output video decoder
US6714826B1 (en) Facility for simultaneously outputting both a mixed digital audio signal and an unmixed digital audio signal multiple concurrently received streams of digital audio data
US6108584A (en) Multichannel digital audio decoding method and apparatus
US5706290A (en) Method and apparatus including system architecture for multimedia communication
US5835792A (en) Token-based adaptive video processing arrangement
US5990958A (en) Apparatus and method for MPEG video decompression
US6917652B2 (en) Device and method for decoding video signal
US6119213A (en) Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
US6748020B1 (en) Transcoder-multiplexer (transmux) software architecture
EP0673171A2 (en) Video decoder
US5577191A (en) System and method for digital video editing and publishing, using intraframe-only video data in intermediate steps
US20050123057A1 (en) Video decoding system supporting multiple standards
US5646693A (en) Memory utilization for video decoding and display with 3:2 pull-down
US6320600B1 (en) Web-based video-editing method and system using a high-performance multimedia software library
US5379351A (en) Video compression/decompression processing and processors
US6441842B1 (en) Video compression/decompression processing and processors
US6263023B1 (en) High definition television decoder
US6389171B1 (en) Method and apparatus for a digital video cassette (DVC) decode system
US6507293B2 (en) Processing circuit and method for variable-length coding and decoding

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: 20120430

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee