KR20050076246A - Data processing system and memory arbitral method - Google Patents

Data processing system and memory arbitral method Download PDF

Info

Publication number
KR20050076246A
KR20050076246A KR1020040004151A KR20040004151A KR20050076246A KR 20050076246 A KR20050076246 A KR 20050076246A KR 1020040004151 A KR1020040004151 A KR 1020040004151A KR 20040004151 A KR20040004151 A KR 20040004151A KR 20050076246 A KR20050076246 A KR 20050076246A
Authority
KR
South Korea
Prior art keywords
memory
mau
write
area
data
Prior art date
Application number
KR1020040004151A
Other languages
Korean (ko)
Inventor
이진혁
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020040004151A priority Critical patent/KR20050076246A/en
Publication of KR20050076246A publication Critical patent/KR20050076246A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 연산 메모리와 데이터 버퍼용 메모리를 단일 메모리로 구성한 공유 메모리(Unified Memory)를 갖는 데이터 처리 시스템에서 디버깅 효율을 높여주는 메모리 중재 방법에 관한 것이다. 특히 본 발명은 상기 공유 메모리 내의 특정 메모리 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 메모리 영역에 쓰기 사이클을 발생하면 메모리 중재기는 이를 금지시킴으로써, 상기 특정 메모리 영역을 보호한다. 또한, 본 발명은 특정 메모리 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 메모리 영역에 쓰기 사이클을 발생하면 호스트 CPU로 인터럽트를 구동하여 쓰기 금지된 특정 메모리 영역에 쓰기 사이클을 발생시킨 MAU를 알려준다. The present invention relates to a memory arbitration method for improving debugging efficiency in a data processing system having a unified memory composed of a single memory including an operation memory and a data buffer memory. In particular, the present invention protects the specific memory area by prohibiting the memory arbiter from generating a write cycle to the specific memory area when an MAU without a write right to the specific memory area in the shared memory generates. In addition, the present invention informs the MAU that caused the write cycle to the write-protected specific memory area by driving an interrupt to the host CPU when the MAU having no write permission for the specific memory area generates a write cycle to the specific memory area.

Description

데이터 처리 시스템 및 메모리 중재 방법{Data processing system and memory arbitral method}Data processing system and memory arbitral method

본 발명은 연산 메모리와 데이터 버퍼용 메모리를 단일 메모리로 구성한 공유 메모리(Unified Memory)를 갖는 데이터 처리 시스템에서 디버깅(Debugging) 효율을 높여주는 메모리 중재 방법에 관한 것이다. The present invention relates to a memory arbitration method for improving debugging efficiency in a data processing system having a unified memory including an operation memory and a data buffer memory as a single memory.

요즘은 디지털 비디오 처리기(Digital Video Processor ; DSP)와 같은 메모리 억세스 장치(Memory Access Unit ; MAU)가 다수개 구성된 데이터 처리 시스템(Data Processing System)을 ASIC으로 구현하는 것이 보통이다.Nowadays, it is common to implement a Data Processing System (ASIC) composed of a plurality of Memory Access Units (MAUs) such as a digital video processor (DSP).

그리고, 데이터 처리 시스템 기능을 가지는 칩에는 데이터 버터용 메모리를 연결하여 사용하고, 외부 CPU에는 연산 메모리를 연결하여 사용하여 왔다.In addition, a data butter memory is connected to a chip having a data processing system function, and an operation memory is connected to an external CPU.

그런데, 최근에 개발되는 데이터 처리 시스템은 SOC(System On Chip) 형태로 개발되고 있는 것이 추세이다. 즉, 기존의 데이터 처리 시스템 기능과 외부 CPU 및 주변 기능 등을 하나의 칩으로 통합하여 구현하는 것이다. However, recently developed data processing systems are being developed in the form of SOC (System On Chip). In other words, it integrates existing data processing system functions with external CPU and peripheral functions into one chip.

따라서, 과거에는 데이터 처리 시스템 칩에 데이터 버퍼용 메모리를 사용하고, 외부 CPU에 연산 메모리를 사용하였으나, 최근의 SOC 형태의 데이터 처리 시스템 칩은 연산 메모리와 데이터 버퍼용 메모리를 하나의 메모리로 사용하는 공유 메모리(Unified Memory) 구조를 가진다.Therefore, in the past, data buffer memory was used for a data processing system chip and arithmetic memory was used for an external CPU. However, a recent SOC type data processing system chip uses a memory for a memory and a data buffer as one memory. It has a shared memory structure.

도 1은 이러한 공유 메모리 구조를 갖는 SOC 형태의 데이터 처리 시스템의 구성 블록도로서, 디지털 TV 수신기에 적용된 예를 보이고 있다. FIG. 1 is a block diagram illustrating an SOC data processing system having such a shared memory structure, and shows an example applied to a digital TV receiver.

도 1을 보면, 다수개의 MAU들(131~135)이 병렬로 메모리 중재기(memory arbitor)(120)를 통해 공유 메모리(110)에 연결된다. Referring to FIG. 1, a plurality of MAUs 131 ˜ 135 are connected to the shared memory 110 through a memory arbiter 120 in parallel.

상기 메모리 중재기(120)는 공유 메모리(110)를 억세스하기 위해 메모리 데이터 버스 중재에 참가한 다수의 MAU들(131~135) 중에서 단지 하나의 MAU에게 버스의 사용권을 허가한다.The memory arbiter 120 grants the use of the bus to only one of the MAUs 131-135 participating in the memory data bus arbitration to access the shared memory 110.

즉, 상기 다수개의 MAU(131~135) 중 임의의 MAU는 상기 공유 메모리(110)에 데이터를 쓰거나 또는 공유 메모리(110)에 저장된 데이터를 읽어오려고 할 때 먼저 메모리 중재기(120)에게 공유 메모리(110)를 억세스하고자 한다는 요청(Request)을 한다. 이때 상기 공유 메모리(110)를 억세스하겠다고 요청한 MAU가 하나이면 상기 메모리 중재기(120)는 그 MAU에게 메모리(110)를 억세스할 수 있도록 메모리 데이터 버스의 사용권을 허가한다. 하지만 적어도 2개 이상의 MAU에서 동시에 메모리 억세스 요청을 한다면 억세스 순서를 정해야 한다. 즉, 상기 메모리 중재기(120)는 각 MAU에서 들어온 요청을 확인한 후 어떤 MAU에서 들어온 요청을 먼저 처리해줄 것인가를 결정한다. 그리고 결정된 MAU에게 공유 메모리(110)를 억세스할 수 있도록 메모리 데이터 버스의 사용권을 허가한다.That is, any MAU of the plurality of MAUs 131 ˜ 135 may first share the shared memory 110 with the memory arbiter 120 when writing data to the shared memory 110 or reading data stored in the shared memory 110. A request is made to access 110. At this time, if there is one MAU requesting to access the shared memory 110, the memory arbiter 120 grants the MAU the right to use the memory data bus to access the memory 110. However, if at least two MAUs simultaneously request memory accesses, the access order must be determined. That is, the memory arbiter 120 checks the request from each MAU and then determines which MAU request to process first. The MAU is granted a right to use the memory data bus so that the shared memory 110 can be accessed.

이때, 상기 메모리 중재기(120)는 각각의 MAU에서 들어온 요청을 우선 순위를 두어서 처리를 해 줄 수도 있고, 아니면 먼저 들어온 요청부터 처리할 수도 있으며, 두 가지 방법을 혼합해서 처리를 해 줄 수도 있다. In this case, the memory arbiter 120 may process a request from each MAU by prioritizing, or may process a request from a first incoming, or may mix and process two methods. have.

그리고, 상기 공유 메모리(110)가 디지털 TV에 적용되었다면 상기 MAU들(131~135)은 오디오/비디오 디코딩을 위한 비트 스트림의 쓰기와 읽기, 움직임 보상을 위하여 필요한 데이터의 읽기, 디코딩된 데이터의 쓰기, 및 디스플레이될 데이터의 포맷 변환을 위한 쓰기와 읽기 등을 위해 상기 공유 메모리(110)를 억세스한다.If the shared memory 110 is applied to a digital TV, the MAUs 131 to 135 may write and read a bit stream for audio / video decoding, read data necessary for motion compensation, and write decoded data. And the shared memory 110 for writing, reading, and the like for format conversion of data to be displayed.

이를 위해 상기 MAU들은 일 예로, 시스템 디코더(131), 비디오 디코더(132), 포맷 컨버터(133), 오디오 디코더(134), 및 호스트(CPU)(135)를 포함한다.To this end, the MAUs include, for example, a system decoder 131, a video decoder 132, a format converter 133, an audio decoder 134, and a host (CPU) 135.

상기 시스템 디코더(131)는 한 채널에 포함된 다수의 프로그램들 중 원하는 한 프로그램을 선택하여 패킷화되어 있는 오디오와 비디오 비트스트림을 분리한다. 그리고 분리된 비디오 비트 스트림은 중재기(120)와 공유 메모리(110)를 통해 비디오 디코더(132)로 출력하고, 분리된 오디오 비트 스트림은 중재기(120)와 공유 메모리(110)를 통해 오디오 디코더(134)로 출력한다.The system decoder 131 selects a desired program among a plurality of programs included in one channel to separate a packetized audio and video bitstream. The separated video bit stream is output to the video decoder 132 through the arbiter 120 and the shared memory 110, and the separated audio bit stream is output to the audio decoder through the arbiter 120 and the shared memory 110. Output to (134).

상기 비디오 디코더(132)는 입력되는 비디오 비트스트림에서 오버헤드(각종 헤더 정보, 스타트 코드등)를 제거한다. 그리고 나서, 순수한 데이터 정보를 가변 길이 디코딩(Variable Length Decoding ; VLD)한 후 역양자화 과정, 역 이산 코사인 변환(Inverted Discrete Cosine Transform ; IDCT) 과정, 및 움직임 벡터를 이용한 움직임 보상 과정을 거쳐 원래 화면의 픽셀 값을 복원한다. 이때 상기 비디오 디코더(132)는 비디오 디코딩을 위한 비트 스트림의 쓰기와 읽기, 움직임 보상을 위하여 필요한 데이터의 읽기, 디코딩된 데이터의 쓰기를 수행하기 위해 상기 메모리 중재기(120)를 통해 메모리(110)를 억세스한다.The video decoder 132 removes overhead (various header information, start codes, etc.) from the input video bitstream. Then, the variable length decoding (VLD) of pure data information is performed, followed by an inverse quantization process, an Inverted Discrete Cosine Transform (IDCT) process, and a motion compensation process using a motion vector. Restore the pixel value. At this time, the video decoder 132 writes and reads a bit stream for video decoding, reads data necessary for motion compensation, and writes decoded data to the memory 110 through the memory arbiter 120. Access.

상기 포맷 컨버터(133)는 상기 메모리(110)에 저장된 데이터를 메모리 중재기(120)와 메모리 데이터 버스를 통해 읽어 와 디스플레이 포맷에 맞게 변환한 후 다시 메모리 중재기(120)와 메모리 데이터 버스를 통해 공유 메모리(110)에 저장한다.The format converter 133 reads the data stored in the memory 110 through the memory arbiter 120 and the memory data bus, converts the data into a display format, and then uses the memory arbiter 120 and the memory data bus. Stored in the shared memory 110.

상기 오디오 디코더(134)는 MPEG 알고리즘 또는 오디오 코딩(AC)-3 알고리즘등을 이용하여 입력되는 오디오 비트스트림을 원래의 신호로 복원한다. 상기 오디오 디코더(134)도 비디오 디코더(132)와 마찬가지로 오디오 디코딩을 위한 비트 스트림의 쓰기와 읽기, 디코딩된 데이터의 쓰기를 수행하기 위해 상기 메모리 중재기(120)를 통해 메모리(110)를 억세스한다.The audio decoder 134 restores an input audio bitstream to an original signal using an MPEG algorithm or an audio coding (AC) -3 algorithm. Like the video decoder 132, the audio decoder 134 also accesses the memory 110 through the memory arbiter 120 to perform writing and reading of a bit stream for audio decoding and writing of decoded data. .

상기 CPU(135)는 디지털 TV 시스템의 전반적인 제어 예를 들면, 상기된 오디오/비디오 데이터 분리, 오디오/비디오 디코딩, 및 포맷 변환을 제어하기 위해 메모리 중재기(120)를 통해 공유 메모리(130)를 억세스한다.The CPU 135 controls the shared memory 130 through the memory arbiter 120 to control overall control of the digital TV system, e.g., the audio / video data separation, audio / video decoding, and format conversion described above. Access.

도 2는 이러한 디지털 TV 수신기에서 이용되는 공유 메모리(110)의 맵을 보인 실시예로서, 상기 다수의 MAU들이 각각 억세스할 수 있도록 다수개의 영역으로 할당된다. 즉, 상기 공유 메모리(110)에 할당된 영역에는 시스템 디코더(131)에서 오디오 비트스트림과 비디오 비트스트림을 분리할 때 억세스하는 시스템 디코더 영역, 분리된 비디오 비트 스트림, 오디오 스트림을 각각 저장하는 비디오, 오디오 버퍼 영역을 포함한다. 또한, 비디오 디코더(132)에서 비디오 디코딩 과정 중에 억세스하는 VDEC 영역, 포맷 변환부(133)에서 포맷 변환시 억세스하는 VDP(Video Display Processor) 영역을 포함한다. 그리고, 온 스크린 디스플레이(On Screen Display ; OSD) 처리시 OSD 문자를 저장하는 OSD 영역, 및 CPU(135)에서 억세스하는 CPU 영역을 포함한다. 상기 CPU 영역에는 연산 메모리 영역이 포함되어 있다. FIG. 2 shows an example of a map of the shared memory 110 used in such a digital TV receiver, and is allocated to a plurality of regions so that the plurality of MAUs can each access it. That is, in the region allocated to the shared memory 110, the system decoder region accessed when the system decoder 131 separates the audio bitstream and the video bitstream, the video storing the separated video bitstream, and the audio stream, respectively; It contains an audio buffer area. In addition, the video decoder 132 includes a VDEC area accessed during the video decoding process, and a VDP (Video Display Processor) area accessed by the format converter 133 during format conversion. In addition, the On Screen Display (OSD) includes an OSD area for storing OSD characters and an CPU area accessed by the CPU 135 during the On Screen Display (OSD) processing. The CPU area includes an operation memory area.

그런데, 상기 공유 메모리(Unified Memory) 구조에서는 CPU(135)가 사용하는 연산 메모리 영역과 같이 임의의 MAU들로부터 쓰기 금지(Write Protect)가 되어야 할 영역들이 있다. However, in the shared memory structure, there are areas to be write protected from arbitrary MAUs, such as an operation memory area used by the CPU 135.

그리고, 상기 쓰기 금지가 되어야 할 메모리 영역에 쓰기 권한이 없는 임의의 MAU에서 데이터를 쓰게 되면, 상기 메모리가 장착된 데이터 처리 시스템 예를 들면, 디지털 TV 수신 시스템이 다운되게 된다. 즉, CPU(135)가 잘못된 데이터로 인해 정상적인 동작을 하지 못하므로 CPU는 시스템이 다운된 원인을 밝힐 수 없게 된다. 상기 CPU가 원인을 밝힐 수 없게 되면 상기 시스템을 정상적으로 복구하기 위한 디버깅에 많은 애로 사항이 발생한다. When data is written in any MAU which does not have write permission in the memory area to be write-protected, the data-processing system equipped with the memory, for example, the digital TV receiving system, is brought down. That is, since the CPU 135 does not operate normally due to incorrect data, the CPU cannot reveal the cause of the system down. If the CPU is unable to determine the cause, a lot of trouble occurs in debugging to recover the system normally.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 쓰기 금지가 되어야 할 메모리 영역에 쓰기 권한이 없는 임의의 MAU가 데이터를 쓰려고 하면 이를 금지시킴으로서, 쓰기 금지가 되어야 할 메모리 영역을 보호하는 데이터 처리 시스템 및 메모리 중재 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to prohibit any MAU who does not have write permission to write data in a memory area to be write-protected, thereby prohibiting the write of the memory area. A data processing system and a memory arbitration method are provided.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 SOC 형태의 공유 메모리 구조를 갖는 데이터 처리 시스템 및 메모리 중재 방법은, 연산 메모리 데이터와 데이터 버퍼 메모리 데이터를 하나의 메모리에 저장하는 SOC 형태의 공유 메모리 구조에서 특정 메모리 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 메모리 영역에 쓰기 사이클을 발생하면 메모리 중재기는 이를 금지시켜 상기 특정 메모리 영역을 보호하는데 그 특징이 있다. A data processing system and a memory arbitration method having a SOC type shared memory structure according to the present invention for achieving the above object, SOC type shared memory structure for storing the operation memory data and data buffer memory data in one memory In MAU, when a MAU without a write right for a specific memory area generates a write cycle in the specific memory area, the memory arbiter prohibits it and protects the specific memory area.

또한, 본 발명은 특정 메모리 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 메모리 영역에 쓰기 사이클을 발생하면 호스트 CPU로 인터럽트를 구동하여 쓰기 금지된 특정 메모리 영역에 쓰기 사이클을 발생시킨 MAU를 알려주는데 그 특징이 있다. In addition, when an MAU without write permission for a specific memory area generates a write cycle in the specific memory area, the present invention drives an interrupt to the host CPU to notify the MAU that caused the write cycle in a write-protected specific memory area. There is a characteristic.

또한, 본 발명은 특정 메모리 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 메모리 영역에 쓰기 사이클을 발생하면 상기 특정 메모리 영역 이외의 영역에 상기 MAU에서 요청한 데이터를 쓰는데 그 특징이 있다. In addition, the present invention is characterized by writing data requested by the MAU in an area other than the specific memory area when an MAU without a write right in a specific memory area generates a write cycle in the specific memory area.

본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 실시예의 구성과 그 작용을 설명하며, 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.Hereinafter, with reference to the accompanying drawings illustrating the configuration and operation of the embodiment of the present invention, the configuration and operation of the present invention shown in the drawings and described by it will be described as at least one embodiment, By the technical spirit of the present invention described above and its core configuration and operation is not limited.

본 발명은 도 1과 같이 연산 메모리와 데이터 버퍼용 메모리를 단일 메모리로 구성하는 공유 메모리(110)와, 상기 공유 메모리(110)를 억세스하는 다수의 MAU들(131~135) 그리고, 상기 다수의 MAU들(131~135)의 공유 메모리(110) 억세스를 중재하는 메모리 중재기(120)로 구성된다.In the present invention, as shown in FIG. 1, a shared memory 110 constituting an operation memory and a data buffer memory as a single memory, a plurality of MAUs 131 to 135 accessing the shared memory 110, and a plurality of the plurality of MAUs 131 to 135. Memory arbiter 120 that mediates access to shared memory 110 of MAUs 131-135.

상기된 도 1에서 MCMD(Memory Command)는 임의의 MAU가 메모리(110)를 억세스하기 위해 메모리 중재기(120)에게 전송하는 정보이다. 그 정보는 예를 들면, 로우/컬럼 어드레스(row/column address), 읽기/쓰기 정보, 데이터 마스킹(data masking), 선택할 뱅크(bank), 억세스하는 뱅크의 수, 어드레싱 모드를 포함한다. 그리고, MWD는 공유된 쓰기 데이터 버스(shared write data bus)이고, MRD는 공유된 읽기 데이터 버스(shared read data bus)이다.In FIG. 1, MCMD (Memory Command) is information that an MAU sends to the memory arbiter 120 to access the memory 110. The information includes, for example, row / column address, read / write information, data masking, bank to select, number of banks to access, and addressing mode. MWD is a shared write data bus, and MRD is a shared read data bus.

그리고, 상기 공유 메모리(110)가 디지털 TV에 적용되었다면 상기 MAU들(131~135)은 오디오/비디오 디코딩을 위한 비트 스트림의 쓰기와 읽기, 움직임 보상을 위하여 필요한 데이터의 읽기, 디코딩된 데이터의 쓰기, 및 디스플레이될 데이터의 포맷 변환을 위한 쓰기와 읽기 등을 위해 상기 공유 메모리(120)를 억세스한다. 이를 위해 상기 MAU들은 일 예로, 시스템 디코더(131), 비디오 디코더(132), 포맷 컨버터(133), 오디오 디코더(134), 및 호스트(CPU)(135)를 포함한다. 상기 각 MAU들의 기능은 종래 기술에서 상세히 설명하였으므로 본 발명에서는 생략한다.If the shared memory 110 is applied to a digital TV, the MAUs 131 to 135 may write and read a bit stream for audio / video decoding, read data necessary for motion compensation, and write decoded data. And the shared memory 120 for writing and reading for format conversion of data to be displayed. To this end, the MAUs include, for example, a system decoder 131, a video decoder 132, a format converter 133, an audio decoder 134, and a host (CPU) 135. Since the functions of the respective MAUs have been described in detail in the related art, they are omitted in the present invention.

상기 공유 메모리(110)는 상기 다수의 MAU들(131~135)이 각각 억세스할 수 있도록 도 2와 같이 다수개의 영역으로 할당되며, 상기 각 MAU들(131~135)은 자신에게 할당된 영역에 데이터를 쓰거나 그 영역에 저장된 데이터를 읽어낸다. 이때, 각 영역은 고정적으로 할당할 수도 있고, 가변적으로 할당할 수도 있다. 그리고, 각 영역의 시작 어드레스와 종료 어드레스는 메모리 중재기(120)에서 저장하고 있다. 또한, 쓰기 금지가 되어야 할 메모리 영역의 시작 어드레스와 종료 어드레스도 메모리 중재기(120)에서 저장하고 있다.The shared memory 110 is allocated to a plurality of areas as shown in FIG. 2 so that each of the plurality of MAUs 131 to 135 can be accessed, and each of the MAUs 131 to 135 is assigned to an area allocated thereto. Write data or read data stored in the area. In this case, each area may be fixedly allocated or variably allocated. The start address and end address of each area are stored in the memory arbiter 120. In addition, the memory arbiter 120 stores the start address and the end address of the memory area to be write-protected.

따라서, 임의의 MAU가 쓰기 금지된 특정 메모리 영역에 데이터를 쓰려고 하는 경우, 메모리 중재기(120)는 이러한 메모리 쓰기 사이클(Write Cycle)을 중지시킴과 동시에 CPU(135)에게 어떤 MAU가 쓰기 금지된 메모리 영역에 쓰기 사이클을 발생시켰는지를 인터럽트로 알려준다. 따라서, CPU가 다운되는 것을 막을 수 있고 이로 인해 공유 메모리 구조를 가지는 데이터 처리 시스템에서 디버깅(Debugging) 효율을 높일 수 있다.Thus, if any MAU attempts to write data to a particular memory area that is write protected, the memory arbiter 120 stops this write cycle, and at the same time any MAU is write protected to the CPU 135. Interrupt indicates whether a write cycle occurred in the memory area. Therefore, the CPU can be prevented from being down, which can increase debugging efficiency in a data processing system having a shared memory structure.

본 발명에서는 쓰기 금지된 영역을 설명의 편의를 위해 도 2의 CPU 메모리 영역으로 한정하여 설명한다. 여기서, 쓰기 금지된 영역은 보다 넓고 다양하게 응용될 수 있으므로 상기 예로 제시한 것에 제한되지 않을 것이다. In the present invention, the write-protected area is limited to the CPU memory area of FIG. 2 for convenience of description. Here, the write-protected area may be applied to a wider variety of applications, and thus the present invention will not be limited to the example provided above.

도 3은 상기 CPU 메모리 영역의 정보를 저장하고 있는 레지스터로서, CPU 메모리 영역의 시작 어드레스(cpu_start_addr)과 종료 어드레스(cpu_end_addr)가 저장되어 있다. 이 레지스터는 메모리 중재기(120)에 포함될 수도 있고, 메모리 중재기(120)의 외부에 배치하고, 메모리 중재기(120)에서 상기 레지스터를 참조하여 CPU 영역의 시작 어드레스와 종료 어드레스를 확인할 수도 있다. 일 예로, 상기 시작과 종료 어드레스는 12비트가 할당되어 있으며, 시작 어드레스의 기본값(default)은 0x"0A5C", 종료 어드레스는 0x"0FFF"로 설정되어 있다고 가정한다. 또한, 상기 레지스터의 전체 사이즈는 4바이트라고 가정한다.3 is a register that stores information of the CPU memory area. The start address cpu_start_addr and the end address cpu_end_addr of the CPU memory area are stored. This register may be included in the memory arbiter 120 or may be disposed outside the memory arbiter 120 and the memory arbiter 120 may refer to the register to confirm the start address and the end address of the CPU region. . For example, it is assumed that 12 bits are allocated to the start and end addresses, and a default value of the start address is set to 0x "0A5C" and an end address is set to 0x "0FFF". It is also assumed that the total size of the register is 4 bytes.

도 4는 상기 CPU 메모리 영역에 쓰기 권한이 없는 MAU가 CPU 메모리 영역에 데이터를 쓰려고 할 때 상기 CPU 메모리 영역을 보호하기 위해서 CPU 메모리 영역 대신에 상기 MAU에서 요청한 쓰기 데이터를 저장할 로우의 어드레스(invalid_write_addr)를 지정하고 있는 레지스터이다. 일 예로, 상기 인밸리드 쓰기 어드레스(invalid_write_addr)를 저장한 레지스터의 전체 사이즈는 4바이트이고, 이 중 인밸리드 쓰기 어드레스(invalid_write_addr)는 12비트가 할당되어 있으며, 그 기본값(default)은 0x"0000"라고 가정한다. 상기 인밸리드 쓰기 어드레스(invalid_write_addr)는 상기 CPU에서 CPU 메모리 영역을 제외한 메모리 영역 중 하나의 영역을 지정할 수 있다. 이때, 상기 인밸리드 쓰기 어드레스(invalid_write_addr)에 상기 해당 MAU에서 데이터를 쓰게 되면 원래의 데이터는 잃어버리게 된다. 따라서, 상기 인밸리드 쓰기 어드레스(invalid_write_addr)는 시스템의 동작에 영향을 미치지 않는 영역의 어드레스로 할당해야 한다. 예를 들어, 상기 인밸리드 쓰기 어드레스(invalid_write_addr)는 비디오 신호가 저장되는 영역의 어드레스를 할당할 수도 있다. 왜냐하면 비디오 신호는 사용자의 눈을 속이기가 용이하기 때문이다.4 is an address of a row for storing write data requested by the MAU instead of a CPU memory area in order to protect the CPU memory area when an MAU without write permission in the CPU memory area attempts to write data to the CPU memory area (invalid_write_addr) Is a register specifying. For example, the total size of the register storing the invalidated write address (invalid_write_addr) is 4 bytes, of which 12 bits are allocated to the invalidated write address (invalid_write_addr), and the default value thereof is 0x ". 0000 ". The invalidated write address invalid_write_addr may designate one of the memory areas except the CPU memory area in the CPU. At this time, when data is written in the corresponding MAU to the invalidate write address (invalid_write_addr), the original data is lost. Therefore, the invalid write address (invalid_write_addr) should be assigned to an address of an area that does not affect the operation of the system. For example, the invalidated write address invalid_write_addr may allocate an address of an area in which a video signal is stored. This is because the video signal is easy to deceive the user's eyes.

한편, 상기 CPU 메모리 영역에 쓰기 권한이 없는 MAU가 CPU 메모리 영역에 데이터를 쓰려고 할 때 상기 메모리 중재기(120)는 상기 MAU의 메모리 쓰기 사이클(Write Cycle)을 중지시킴과 동시에 CPU(135)에게 어떤 MAU가 쓰기 금지된 메모리 영역에 쓰기 사이클을 발생시켰는지를 인터럽트로 알려준다. On the other hand, when an MAU that does not have write permission in the CPU memory area attempts to write data in the CPU memory area, the memory arbiter 120 stops the memory write cycle of the MAU and simultaneously sends the CPU 135 to the CPU 135. Interrupts indicate which MAU caused a write cycle in a write-protected memory area.

도 5는 상기 메모리 중재기(120)에서 CPU(135)에게 인터럽트를 발생시키기 위해 각 MAU별로 에러 플래그를 할당한 본 발명의 레지스터의 예를 보이고 있다.5 shows an example of the register of the present invention in which the memory arbiter 120 assigns an error flag for each MAU to generate an interrupt to the CPU 135.

상기 레지스터는 전체 사이즈가 4바이트이며, 읽기만 되는(Read Only) 레지스터이고, 읽기 클리어(Read Clear) 특성을 가진다고 가정한다. 상기 CPU(135)에서는 각 에러 플래그를 보면 어떤 MAU에서 쓰기 금지된 메모리 영역에 쓰기 사이클을 발생시켰는지 알 수 있게 된다. It is assumed that the register has a total size of 4 bytes, is a read only register, and has a read clear characteristic. The CPU 135 may determine which MAU caused a write cycle in a memory area which is write-protected by looking at each error flag.

이때, 각 MAU별로 할당된 에러 플래그의 용어를 정리하면 다음과 같다.At this time, the terms of the error flag allocated to each MAU are summarized as follows.

. err_tp는 시스템 디코더(131)에서 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_tp is a flag indicating whether the system decoder 131 has a write cycle in the CPU memory area, and assumes a default value of '0'.

. err_vb는 비디오 버퍼가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_vb is a flag indicating whether the video buffer has caused a write cycle in the CPU memory area. It is assumed that the default value is '0'.

. err_fc는 포맷 변환부(133)가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_fc is a flag indicating whether the format conversion unit 133 has caused a write cycle in the CPU memory area, and assumes a default value of '0'.

. err_vdec는 비디오 디코더(132)가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_vdec is a flag indicating whether the video decoder 132 has written a write cycle in the CPU memory area. It is assumed that the default value is '0'.

. err_audio는 오디오 디코더(134)가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_audio is a flag indicating whether the audio decoder 134 has caused a write cycle in the CPU memory area, and assumes a default value of '0'.

. err_osd는 OSD용 MAU가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_osd is a flag indicating whether or not the OSD MAU has caused a write cycle in the CPU memory area. It is assumed that the default value is '0'.

. err_dma는 DMA용 MAU가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_dma is a flag indicating whether or not the MAU for DMA has caused a write cycle in the CPU memory area. It is assumed that the default value is '0'.

. err_gfx는 그래픽 엔진(GFX)용 MAU가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 플래그로서, 기본값은 '0'이라고 가정한다.. err_gfx is a flag indicating whether or not the MAU for the graphics engine (GFX) has caused a write cycle in the CPU memory area. It is assumed that the default value is '0'.

이때, 상기 에러 플래그 값이 '1'로 바뀌면 CPU는 해당 MAU에서 쓰기 금지된 메모리 영역에 쓰기 사이클을 발생시켰다고 판단한다. 예를 들어, err_vdec 플래그 값이 '1'로 바뀌면 CPU(135)는 비디오 디코더(132)에서 상기 CPU 메모리 영역에 쓰기 사이클을 발생시켰다고 판단한다.At this time, when the error flag value is changed to '1', the CPU determines that a write cycle is generated in a memory area which is write-protected in the corresponding MAU. For example, when the err_vdec flag value is changed to '1', the CPU 135 determines that the video decoder 132 has caused a write cycle in the CPU memory area.

여기서, 상기 에러 플래그의 수는 상기 메모리(110)를 억세스하는 MAU 수에 따라 달라지며, 상기 MAU들은 보다 넓고 다양하게 응용될 수 있으므로 상기 예로 제시한 것에 제한되지 않을 것이다. Here, the number of error flags depends on the number of MAUs accessing the memory 110, and the MAUs may be applied to a wider variety of applications.

도 6은 이러한 메모리 중재 과정의 일 예를 흐름도로 도시한 것으로서, 상기 공유 메모리(110) 영역 중 CPU 메모리 영역은 CPU(135)에서만 억세스할 수 있고, 다른 MAU들에서는 쓰기 금지가 되어 있다고 가정한다.FIG. 6 is a flowchart illustrating an example of such a memory arbitration process. It is assumed that a CPU memory area of the shared memory 110 area is accessible only by the CPU 135 and write-protected by other MAUs. .

즉, 다수의 MAU가 메모리(110)에 데이터를 읽기/쓰기 하기 위하여 메모리 중재기(120)에 메모리 사용권을 요청하면, 상기 메모리 중재기(120)는 각 MAU에서 들어온 요청을 확인한 후 정해진 중재 방법에 따라 어떤 MAU에서 들어온 요청을 먼저 처리해줄 것인가를 결정한다. 그리고 결정된 특정 MAU에게 공유 메모리(110)를 억세스할 수 있도록 메모리 버스에 대한 사용권을 부여한다(단계 601). 여기서, 중재 방법은 본 발명의 특징이 아니며, 공지된 기술을 이용할 수 있으므로 상세 설명을 하지 않는다. That is, when a plurality of MAUs request the memory arbiter 120 to use the memory arbiter 120 to read / write data in the memory 110, the memory arbiter 120 confirms a request from each MAU and then determines a arbitration method. It decides which MAU will process the request first. The specific MAU is given a right to use the memory bus to access the shared memory 110 (step 601). Here, the mediation method is not a feature of the present invention, and well-known techniques may be used and thus no detailed description will be given.

이때, 상기 메모리 데이터 버스 사용권을 획득한 MAU가 CPU(135)인지를 판별한다(단계 602). 만일 버스 사용권을 획득한 MAU가 CPU(135)라면 상기 메모리 중재기(120)는 CPU(135)가 지정한 메모리 영역의 로우 어드레스에 CPU(135)가 요청한 데이터를 쓰거나 또는, 상기 로우 어드레스에서 데이터를 읽어 와 CPU(135)로 전달한다(단계 607).At this time, it is determined whether the MAU that has obtained the right to use the memory data bus is the CPU 135 (step 602). If the MAU obtained the bus license is the CPU 135, the memory arbiter 120 writes data requested by the CPU 135 to a row address of a memory area designated by the CPU 135, or writes data at the row address. Read it and pass it to CPU 135 (step 607).

상기 단계 602에서 버스 사용권을 획득한 MAU가 CPU(135)가 아니라고 판별되면 해당 MAU의 억세스가 쓰기 사이클인지를 판별한다(단계 603). 상기 단계 603에서 쓰기 사이클이 아니라고 판별되면 즉, 읽기 명령이라고 판별되면 상기 메모리 중재기(120)는 상기 MAU가 요구하는 메모리 영역의 로우 어드레스에서 데이터를 읽어 와 상기 MAU로 전달한다(단계 608).If it is determined in step 602 that the MAU having obtained the bus right is not the CPU 135, it is determined whether the access of the corresponding MAU is a write cycle (step 603). If it is determined in step 603 that it is not a write cycle, that is, a read command, the memory arbiter 120 reads data from a row address of a memory area requested by the MAU and transfers the data to the MAU (step 608).

상기 단계 603에서 쓰기 사이클이라고 판별되면 상기 MAU가 쓰기를 요구하는 로우 어드레스(Row_addr)가 도 3의 레지스터에 저장된 CPU 시작 어드레스(cpu_start_addr)보다 작거나 같은지 그리고, CPU 종료 어드레스(cpu_end_addr)보다 크거나 같은지를 확인한다(단계 604). 상기 단계 604에서 로우 어드레스(Row_addr)가 CPU 시작 어드레스(cpu_start_addr)보다 작거나 같고, CPU 종료 어드레스(cpu_end_addr)보다 크거나 같으면 상기 로우 어드레스는 CPU 메모리 영역의 어드레스가 아니다. 따라서, 상기 메모리 중재기(120)는 상기 MAU가 요구하는 메모리 영역의 로우 어드레스에 상기 MAU가 요청한 데이터를 쓰거나 또는, 상기 로우 어드레스에서 데이터를 읽어 와 해당 MAU로 전달한다(단계 609).If it is determined in step 603 that the write cycle is performed, the row address Row_addr that the MAU requests to write is less than or equal to the CPU start address cpu_start_addr stored in the register of FIG. 3, and is greater than or equal to the CPU end address cpu_end_addr. Confirm (step 604). If the row address Row_addr is less than or equal to the CPU start address cpu_start_addr and greater than or equal to the CPU end address cpu_end_addr in step 604, the row address is not an address of the CPU memory area. Accordingly, the memory arbiter 120 writes data requested by the MAU to a row address of a memory area requested by the MAU, or reads data from the row address and transmits the data to the corresponding MAU (step 609).

한편, 상기 단계 604에서 로우 어드레스(Row_addr)가 CPU 시작 어드레스(cpu_start_addr)보다 크고, CPU 종료 어드레스(cpu_end_addr)보다 작으면 즉, 상기 로우 어드레스(Row_addr)가 CPU 시작 어드레스(cpu_start_addr)와 CPU 종료 어드레스(cpu_end_addr) 사이에 있으면, 상기 로우 어드레스는 CPU 메모리 영역의 어드레스이다. 즉, 상기 CPU 메모리 영역에 쓰기 권한이 없는 MAU가 쓰기 금지된 CPU 메모리 영역에 쓰기 사이클을 발생시킨 경우이다. 따라서, 이때는 상기 도 5의 해당 MAU의 에러 플래그(err_xx)를 '1'로 설정하여 CPU(135)에 인터럽트를 구동한다(단계 605). 그러면 상기 CPU(135)는 쓰기 금지된 CPU 메모리 영역에 쓰기 권한이 없는 임의의 MAU가 쓰기 사이클을 발생시켰음을 알 수 있다. 예를 들어, 비디오 디코더(132)에서 상기 CPU 메모리 영역에 쓰기 사이클을 발생시켰다면 도 5의 err_vdec 플래그를 '1'로 설정하여 인터럽트를 구동한다.Meanwhile, if the row address Row_addr is larger than the CPU start address cpu_start_addr and smaller than the CPU end address cpu_end_addr in step 604, that is, the row address Row_addr is the CPU start address cpu_start_addr and the CPU end address cpu_end_addr), the row address is the address of the CPU memory area. That is, the MAU without write permission in the CPU memory area causes a write cycle in the write-protected CPU memory area. Therefore, in this case, the error flag err_xx of the corresponding MAU of FIG. 5 is set to '1' to drive an interrupt to the CPU 135 (step 605). The CPU 135 may then know that any MAU that does not have write permission in the write-protected CPU memory area has generated write cycles. For example, if the video decoder 132 generates a write cycle in the CPU memory area, the interrupt is driven by setting the err_vdec flag of FIG. 5 to '1'.

그리고 상기 도 4의 인밸리드 쓰기 어드레스 레지스터가 가리키는 로우 어드레스에 해당 MAU에서 요청한 데이터를 쓴다(단계 606). 상기 비디오 디코더(132)를 예로 들면, 상기 비디오 디코더(132)에서 CPU 메모리 영역에 발생시킨 쓰기 사이클의 데이터를 상기 인밸리드 쓰기 어드레스 레지스터가 가리키는 메모리(110)의 로우 어드레스에 쓴다. 이때, 상기 비디오 디코더(132)에서 CPU 메모리 영역에 발생시킨 쓰기 사이클의 데이터는 CPU 메모리 영역에 쓰여지지 않는다. 그리고 나서, 메모리(110)에 대한 읽기/쓰기 사이클을 종결한다. The data requested by the corresponding MAU is written to the row address indicated by the invalidated write address register of FIG. 4 (step 606). For example, the video decoder 132 writes data of write cycles generated in the CPU memory area to the row address of the memory 110 indicated by the invaluable write address register. At this time, data of write cycles generated in the CPU memory area by the video decoder 132 are not written to the CPU memory area. Then, the read / write cycle for the memory 110 is terminated.

한편, 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다. On the other hand, the terms used in the present invention (terminology) are terms defined in consideration of the functions in the present invention may vary according to the intention or practice of those skilled in the art, the definitions are the overall contents of the present invention It should be based on.

또한, 본 발명에서는 본 발명의 바람직한 실시예를 통해 본 발명을 설명했으므로 본 발명의 기술적인 난이도 측면을 고려할 때, 당분야에 통상적인 기술을 가진 사람이면 용이하게 본 발명에 대한 또 다른 실시예와 다른 변형을 가할 수 있다. 따라서 상술한 설명에서 사상을 인용한 실시예와 변형은 모두 본 발명의 청구 범위에 모두 귀속됨은 명백하다.In addition, since the present invention has been described through the preferred embodiment of the present invention, in view of the technical difficulty aspects of the present invention, those having ordinary skill in the art can easily and other embodiments of the present invention. Other variations can be made. Therefore, it is apparent that all of the embodiments and variations cited in the above description belong to the claims of the present invention.

이상에서와 같이 본 발명에 따른 데이터 처리 시스템 및 메모리 중재 방법에 의하면, 특정 메모리 영역에 대해 쓰기 권한이 없는 MAU에서 상기 특정 메모리 영역에 쓰기 사이클을 발생시키면 메모리 중재기는 상기 특정 메모리 영역에 상기 MAU의 쓰기 사이클의 데이터가 쓰여지는 것을 금지시킨다. 대신 인밸리드 쓰기 어드레스 레지스터에서 가리키는 메모리의 로우 어드레스에 상기 MAU에서 요청한 데이터를 쓴다. 동시에 해당 MAU의 에러 플래그를 '1'로 설정한 후 CPU로 인터럽트를 구동하여 쓰기 금지된 특정 메모리 영역에 쓰기 권한이 없는 임의의 MAU가 쓰기 사이클을 발생시켰다고 알린다. As described above, according to the data processing system and the memory arbitration method according to the present invention, if a write cycle occurs in the specific memory area in an MAU that does not have write permission for a specific memory area, the memory arbiter determines that the MAU is assigned to the specific memory area. Prevents write cycle data from being written. Instead, the data requested by the MAU is written to the row address of the memory indicated by the invalidate write address register. At the same time, the error flag of the corresponding MAU is set to '1', and then the interrupt is driven by the CPU to indicate that any MAU without write permission in a specific write-protected memory area has caused a write cycle.

이렇게 함으로써, 쓰기 금지된 특정 메모리 영역에 쓰기 권한이 없는 MAU에서 쓰기 사이클을 발생하는 경우 상기 쓰기 금지된 특정 메모리 영역을 보호할 수 있다. 이로 인해 SOC 형태의 데이터 처리 시스템이 다운되는 것을 방지할 수 있으므로 상기 데이터 처리 시스템의 구현시 디버깅을 용이하게 해주는 효과가 있다.By doing so, it is possible to protect the write-protected specific memory area when a write cycle occurs in the MAU in which write permission is not provided in the write-protected specific memory area. As a result, it is possible to prevent the SOC data processing system from going down, thereby facilitating debugging when the data processing system is implemented.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

도 1은 일반적인 SOC 형태의 데이터 처리 시스템의 일 예를 보인 구성 블록도1 is a block diagram showing an example of a data processing system of a general SOC type

도 2는 도 1의 공유 메모리 내의 영역 분할 예를 보인 도면FIG. 2 illustrates an example of region division in the shared memory of FIG. 1. FIG.

도 3은 본 발명에 따른 CPU 메모리 영역을 가변적으로 설정할 수 있는 CPU 메모리 영역의 시작 어드레스와 종료 어드레스를 저장하는 레지스터의 일 예를 보인 도면3 illustrates an example of a register for storing a start address and an end address of a CPU memory area in which a CPU memory area may be variably set according to the present invention.

도 4는 본 발명에 따른 CPU 메모리 영역에 대해서 쓰기 권한이 없는 MAU가 CPU 메모리 영역에 쓰기를 하려고 할 때, CPU 메모리 영역 대신에 요청한 데이터를 쓸 메모리의 로우 어드레스를 지정하는 레지스터의 일 예를 보인 도면4 illustrates an example of a register for designating a row address of a memory in which a requested data is to be written instead of the CPU memory area when an MAU without write permission to the CPU memory area attempts to write to the CPU memory area according to the present invention. drawing

도 5는 본 발명에 따른 CPU 이외의 MAU가 CPU 메모리 영역에 쓰기 사이클을 발생시켰는지 유무를 알려주는 MAU별 에러 플래그가 할당된 레지스터의 일 예를 보인 도면FIG. 5 is a diagram illustrating an example of a register to which an error flag for each MAU is allocated that indicates whether an MAU other than the CPU has caused a write cycle to a CPU memory area according to the present invention.

도 6은 본 발명에 따른 메모리 중재 방법의 일 예를 보인 흐름도6 is a flowchart showing an example of a memory arbitration method according to the present invention;

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

110 : 공유 메모리 120 : 메모리 중재기110: shared memory 120: memory arbiter

131~135 : MAU131 ~ 135: MAU

Claims (11)

데이터의 읽기/쓰기가 가능하며, 다수의 영역으로 분할되어 할당된 메모리;A memory capable of reading / writing data, the memory being divided into a plurality of areas and allocated; 상기 메모리의 특정 영역에 데이터를 쓰거나 읽기 위해 메모리 버스의 사용권을 요청하는 CPU를 포함한 다수의 메모리 억세스 유닛(MAU); 그리고A plurality of memory access units (MAUs) including a CPU requesting usage rights of a memory bus to write or read data to a specific area of the memory; And 상기 메모리 버스의 사용권을 요청한 MAU들 중 기 설정된 중재 방법에 따라 특정 MAU에게 메모리 버스 사용권을 부여한 후, 메모리 버스 사용권을 부여한 MAU의 메모리 억세스가 쓰기 사이클이고, 요구하는 메모리 영역이 상기 MAU에게 쓰기 권한이 없는 메모리 영역이라면 상기 MAU에서 요청하는 쓰기 사이클의 데이터를 상기 메모리 영역에 쓰지 않도록 제어하는 메모리 중재기를 포함하여 구성되는 것을 특징으로 하는 데이터 처리 시스템.After granting a memory bus right to a specific MAU according to a predetermined arbitration method among the MAUs requesting the right to use the memory bus, the memory access of the MAU that has granted the memory bus right is a write cycle, and the requested memory area has a write right to the MAU. And a memory arbiter for controlling not to write data of write cycles requested by the MAU to the memory area. 제 1 항에 있어서, 상기 메모리는 The method of claim 1, wherein the memory is 연산 메모리와 데이터 버퍼용 메모리를 단일 메모리로 구성한 공유 메모리인 것을 특징으로 하는 데이터 처리 시스템.A data processing system, characterized in that it is a shared memory consisting of a single memory consisting of the operation memory and the data buffer memory. 제 1 항에 있어서, 상기 메모리 중재기는The apparatus of claim 1, wherein the memory arbiter 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 상기 CPU로 상기 MAU를 지시하는 정보와 함께 인터럽트를 구동하는 것을 특징으로 하는 데이터 처리 시스템.And an MAU having no write right in a specific area in the memory generates a write cycle in the specific area and drives an interrupt with information indicating the MAU to the CPU. 제 1 항에 있어서, 상기 메모리 중재기는The apparatus of claim 1, wherein the memory arbiter 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 상기 메모리의 특정 영역 이외의 영역에 상기 MAU에서 요청한 데이터를 쓰는 것을 특징으로 하는 데이터 처리 시스템.And a data request requested by the MAU in an area other than the specific area of the memory when a MAU having no write permission for the specific area in the memory generates a write cycle in the specific area. 제 1 항에 있어서, 상기 메모리 중재기는 The apparatus of claim 1, wherein the memory arbiter 쓰기 금지된 특정 메모리 영역의 시작 어드레스와 종료 어드레스를 저장하고 있는 레지스터와,A register that stores a start address and an end address of a specific write-protected memory area; 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 상기 MAU에서 요청한 데이터를 대신 쓸 상기 특정 메모리 영역 이외의 영역의 어드레스를 저장하고 있는 레지스터와,A register that stores an address of an area other than the specific memory area to write data requested by the MAU when an MAU without a write right for the specific area in the memory generates a write cycle in the specific area; 각 MAU에 대응한 에러 플래그들을 할당하고, 각 에러 플래그에 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생시켰는지 유무를 표시하고 있는 레지스터를 포함하는 것을 특징으로 하는 데이터 처리 시스템.Assigning error flags corresponding to each MAU, and including a register indicating whether or not each error flag has a write cycle for a specific area in which no MAU has a write permission for the specific area. Data processing system. 제 5 항에 있어서, 상기 메모리 중재기는6. The apparatus of claim 5, wherein the memory arbiter 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 이를 알리는 값으로 해당 MAU의 에러 플래그 값을 변경하는 것을 특징으로 하는 데이터 처리 시스템.And an error flag value of the corresponding MAU is changed to a value notifying when an MAU that does not have a write permission for a specific area in the memory generates a write cycle in the specific area. 다수의 영역으로 할당된 메모리와, 상기 메모리에 데이터를 쓰거나 읽기 위해 메모리 버스의 사용권을 요청하는 다수의 메모리 억세스 유닛(MAU)을 포함한 데이터 처리 시스템의 메모리 중재 방법에 있어서, A memory arbitration method of a data processing system including a memory allocated to a plurality of areas and a plurality of memory access units (MAUs) requesting a use of a memory bus to write or read data to the memory, (a) 상기 메모리 버스의 사용권을 요청한 MAU들 중 기 설정된 중재 방법에 따라 특정 MAU에게 메모리 버스 사용권을 부여하는 단계; 그리고(a) granting a memory bus license to a specific MAU according to a predetermined arbitration method among MAUs requesting the license of the memory bus; And (b) 상기 메모리 버스 사용권을 부여한 MAU의 메모리 억세스가 쓰기 사이클이고, 요구하는 메모리 영역이 상기 MAU에게 쓰기 권한이 없는 메모리 영역이라면 상기 MAU에서 요청하는 쓰기 사이클의 데이터를 상기 메모리 영역에 쓰지 않도록 제어하는 단계를 포함하여 이루어지는 것을 특징으로 하는 메모리 중재 방법.(b) if the memory access of the MAU granting the memory bus use is a write cycle, and the requested memory area is a memory area to which the MAU does not have write permission, control does not write data of a write cycle requested by the MAU to the memory area. Memory arbitration method comprising the steps of. 제 7 항에 있어서, 상기 (b) 단계는8. The method of claim 7, wherein step (b) 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 상기 MAU를 지시하는 정보와 함께 인터럽트를 구동하는 것을 특징으로 하는 메모리 중재 방법.And an MAU which does not have a write permission for a specific area in the memory generates an interrupt with the information indicating the MAU when a write cycle occurs in the specific area. 제 7 항에 있어서, 상기 (b) 단계는8. The method of claim 7, wherein step (b) 상기 메모리 내의 특정 영역에 대한 쓰기 권한이 없는 MAU가 상기 특정 영역에 쓰기 사이클을 발생하면 상기 메모리의 특정 영역 이외의 영역에 상기 MAU에서 요청한 데이터를 쓰는 것을 특징으로 하는 메모리 중재 방법.And writing a data requested by the MAU in an area other than the specific area of the memory when a MAU having no write permission for the specific area in the memory generates a write cycle in the specific area. 제 7 항에 있어서, 상기 (b) 단계는8. The method of claim 7, wherein step (b) 상기 메모리 버스 사용권을 부여한 MAU의 메모리 억세스가 읽기 사이클이라면 상기 MAU에서 요청하는 메모리 영역에 저장된 데이터를 읽어 와 상기 MAU로 전달하는 것을 특징으로 하는 메모리 중재 방법.And if the memory access of the MAU granting the memory bus use is a read cycle, reading data stored in a memory area requested by the MAU and transferring the read data to the MAU. 제 7 항에 있어서, 상기 (b) 단계는8. The method of claim 7, wherein step (b) 상기 메모리 버스 사용권을 부여한 MAU의 메모리 억세스가 쓰기 사이클이고, 요구하는 메모리 영역이 상기 MAU에게 쓰기 권한이 있는 메모리 영역이라면 상기 MAU에서 요청하는 메모리 영역에 상기 MAU에서 요청하는 쓰기 사이클의 데이터를 쓰는 것을 특징으로 하는 메모리 중재 방법.If the memory access of the MAU that has granted the memory bus usage is a write cycle, and the requesting memory area is a memory area in which the MAU has write permission, writing the data of the write cycle requested by the MAU to a memory area requested by the MAU. Characterized by a memory mediation method.
KR1020040004151A 2004-01-20 2004-01-20 Data processing system and memory arbitral method KR20050076246A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040004151A KR20050076246A (en) 2004-01-20 2004-01-20 Data processing system and memory arbitral method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040004151A KR20050076246A (en) 2004-01-20 2004-01-20 Data processing system and memory arbitral method

Publications (1)

Publication Number Publication Date
KR20050076246A true KR20050076246A (en) 2005-07-26

Family

ID=37264194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040004151A KR20050076246A (en) 2004-01-20 2004-01-20 Data processing system and memory arbitral method

Country Status (1)

Country Link
KR (1) KR20050076246A (en)

Similar Documents

Publication Publication Date Title
US8063907B2 (en) Apparatus and method for selectable hardware accelerators in a data driven architecture
US6104417A (en) Unified memory computer architecture with dynamic graphics memory allocation
JP4426099B2 (en) Multiprocessor device having shared memory
US7565462B2 (en) Memory access engine having multi-level command structure
US5857083A (en) Bus interfacing device for interfacing a secondary peripheral bus with a system having a host CPU and a primary peripheral bus
US5903283A (en) Video memory controller with dynamic bus arbitration
JP4210303B2 (en) Memory access bandwidth allocation and latency control in digital cameras
US5960464A (en) Memory sharing architecture for a decoding in a computer system
WO2010095416A1 (en) Multi-thread processor and digital tv system
JP4945053B2 (en) Semiconductor device, bus interface device, and computer system
US5740383A (en) Dynamic arbitration priority
KR100803114B1 (en) Method and system for arbitrating memory
US7246220B1 (en) Architecture for hardware-assisted context switching between register groups dedicated to time-critical or non-time critical tasks without saving state
JP5254710B2 (en) Data transfer device, data transfer method and processor
JPS6184755A (en) Data processing system
KR20050076246A (en) Data processing system and memory arbitral method
JP4335327B2 (en) Arbitration apparatus and method
US20060098730A1 (en) Video codec
JP2001243112A (en) Memory access device for image
CN100412831C (en) Data processing system and memory device arbitrating method
JP4983160B2 (en) Moving image processing device
US7812847B2 (en) Method and apparatus for providing bandwidth priority
KR20010050234A (en) Addressing of a memory
JP4409561B2 (en) Event notification method, information processing apparatus, and processor
KR20020080261A (en) Device for processing data by means of a plurality of processors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application