JP2017102524A - Semiconductor device, data processing system, and control method for semiconductor device - Google Patents

Semiconductor device, data processing system, and control method for semiconductor device Download PDF

Info

Publication number
JP2017102524A
JP2017102524A JP2015232944A JP2015232944A JP2017102524A JP 2017102524 A JP2017102524 A JP 2017102524A JP 2015232944 A JP2015232944 A JP 2015232944A JP 2015232944 A JP2015232944 A JP 2015232944A JP 2017102524 A JP2017102524 A JP 2017102524A
Authority
JP
Japan
Prior art keywords
data
memory
unit
semiconductor device
arithmetic
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2015232944A
Other languages
Japanese (ja)
Other versions
JP6679290B2 (en
Inventor
勝重 松原
Katsushige Matsubara
勝重 松原
誠二 望月
Seiji Mochizuki
誠二 望月
亮司 橋本
Ryoji Hashimoto
亮司 橋本
俊之 加谷
Toshiyuki Kaya
俊之 加谷
公彦 中澤
Kimihiko Nakazawa
公彦 中澤
入田 隆宏
Takahiro Irita
隆宏 入田
哲治 津田
Tetsuji Tsuda
哲治 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2015232944A priority Critical patent/JP6679290B2/en
Priority to CN201610959313.9A priority patent/CN106980465B/en
Priority to EP16199111.2A priority patent/EP3174294A1/en
Priority to US15/355,322 priority patent/US10459646B2/en
Priority to KR1020160158509A priority patent/KR20170063384A/en
Publication of JP2017102524A publication Critical patent/JP2017102524A/en
Application granted granted Critical
Publication of JP6679290B2 publication Critical patent/JP6679290B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/544Indexing scheme relating to group G06F7/544

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a semiconductor device capable of more appropriately performing compression and expansion.SOLUTION: A semiconductor device 100 includes an arithmetic module 110 and a memory control module 120. The arithmetic module 110 includes: an arithmetic unit 111 that executes arithmetic processing; and a compression circuit 11 that compresses data of an arithmetic processing result. The memory control module 120 includes: an access circuit 121 that writes compressed data to a memory and reads the written data from the memory; and an expansion circuit 21 that expands the data read from the memory and outputs the expanded data to the arithmetic module 110.SELECTED DRAWING: Figure 5

Description

本発明は、半導体装置、データ処理システム及び半導体装置の制御方法に関し、例えば、演算処理を行う半導体装置、データ処理システム及び半導体装置の制御方法に関する。   The present invention relates to a semiconductor device, a data processing system, and a semiconductor device control method, and more particularly, to a semiconductor device that performs arithmetic processing, a data processing system, and a semiconductor device control method.

近年、画像処理などの様々な演算処理を行う半導体装置が広く利用されている。このような半導体装置では、画像などのデータをメモリへ書き込み及びメモリから読み出しを行う際に、所定の標準規格による符号化及び復号化や、圧縮及び伸張等を行っている。   In recent years, semiconductor devices that perform various arithmetic processes such as image processing have been widely used. In such a semiconductor device, when data such as an image is written into and read from a memory, encoding and decoding according to a predetermined standard, compression and expansion, and the like are performed.

圧縮及び伸張に関連する技術として、例えば特許文献1が知られている。特許文献1では、バスを介して演算器と記憶装置が接続されたデータ処理システムにおいて、バスと演算器の間に圧縮回路及び伸張回路を備えている。圧縮回路は演算器の処理結果のデータを圧縮し、圧縮されたデータを記憶装置に格納する。伸張回路は記憶装置から読み出した圧縮データを伸張し、伸張されたデータを演算器で処理する。   As a technique related to compression and expansion, for example, Patent Document 1 is known. In Patent Document 1, in a data processing system in which an arithmetic unit and a storage device are connected via a bus, a compression circuit and an expansion circuit are provided between the bus and the arithmetic unit. The compression circuit compresses the processing result data of the computing unit and stores the compressed data in the storage device. The decompression circuit decompresses the compressed data read from the storage device, and processes the decompressed data with an arithmetic unit.

特開平10−27127号公報JP-A-10-27127

様々な演算処理を行う半導体装置では、演算処理に対応して最適な構成で圧縮及び伸張を行うことが望まれる。このため、一実施の形態では、より適切に圧縮及び伸張を行うことを一つの課題とする。   In a semiconductor device that performs various arithmetic processes, it is desired to perform compression and expansion with an optimum configuration corresponding to the arithmetic processes. For this reason, in one embodiment, it is an object to perform compression and expansion more appropriately.

その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   Other problems and novel features will become apparent from the description of the specification and the accompanying drawings.

一実施の形態によれば、半導体装置は、演算モジュールとメモリ制御モジュールとを備えている。演算モジュールは、演算処理部と圧縮部を備え、メモリ制御モジュールは、アクセス部と伸張部を備えている。演算モジュールでは、演算処理部が演算処理を実行し、圧縮部が演算処理結果のデータを圧縮する。メモリ制御モジュールでは、アクセス部が圧縮されたデータをメモリに書き込み、書き込まれたデータを前記メモリから読み出し、伸張部がメモリから読み出されたデータを伸張し、伸張されたデータを前記演算モジュールへ出力する。   According to one embodiment, the semiconductor device includes an arithmetic module and a memory control module. The arithmetic module includes an arithmetic processing unit and a compression unit, and the memory control module includes an access unit and an expansion unit. In the arithmetic module, the arithmetic processing unit executes the arithmetic processing, and the compression unit compresses the data of the arithmetic processing result. In the memory control module, the access unit writes the compressed data to the memory, the written data is read from the memory, the decompression unit decompresses the data read from the memory, and the decompressed data is sent to the arithmetic module. Output.

前記一実施の形態によれば、より適切に圧縮及び伸張を行うことが可能となる。   According to the one embodiment, it is possible to perform compression and expansion more appropriately.

基本例1に係るデータ処理システムの構成例を示す構成図である。1 is a configuration diagram illustrating a configuration example of a data processing system according to a basic example 1. FIG. 基本例2に係るデータ処理システムの構成例を示す構成図である。It is a block diagram which shows the structural example of the data processing system which concerns on the basic example 2. FIG. 基本例3に係るデータ処理システムの構成例を示す構成図である。10 is a configuration diagram illustrating a configuration example of a data processing system according to a basic example 3. FIG. 実施の形態1に係るデータ処理システムの概要構成を示す構成図である。1 is a configuration diagram illustrating a schematic configuration of a data processing system according to a first embodiment. 実施の形態1に係るデータ処理システムの概要構成を示す構成図である。1 is a configuration diagram illustrating a schematic configuration of a data processing system according to a first embodiment. 実施の形態1に係るデータ処理システムの構成例を示す構成図である。1 is a configuration diagram illustrating a configuration example of a data processing system according to a first embodiment. 実施の形態1に係る演算器の出力データを説明するための図である。FIG. 4 is a diagram for explaining output data of a computing unit according to the first embodiment. 実施の形態1に係る演算器の出力データを説明するための図である。FIG. 4 is a diagram for explaining output data of a computing unit according to the first embodiment. 実施の形態1に係るバッファの構成例を示す構成図である。4 is a configuration diagram illustrating a configuration example of a buffer according to Embodiment 1. FIG. 実施の形態1に係るバッファの入出力動作を説明するための図である。7 is a diagram for explaining an input / output operation of a buffer according to Embodiment 1. FIG. 実施の形態1に係るバッファの入出力動作を説明するための図である。7 is a diagram for explaining an input / output operation of a buffer according to Embodiment 1. FIG. 実施の形態1に係るバッファの入出力動作を説明するための図である。7 is a diagram for explaining an input / output operation of a buffer according to Embodiment 1. FIG. 実施の形態1に係るバッファの入出力動作を説明するための図である。7 is a diagram for explaining an input / output operation of a buffer according to Embodiment 1. FIG. 実施の形態1に係るバッファの入出力動作を説明するための図である。7 is a diagram for explaining an input / output operation of a buffer according to Embodiment 1. FIG. データ長とメモリアクセス効率との関係を示すグラフである。It is a graph which shows the relationship between data length and memory access efficiency. 実施の形態2に係る圧縮データを説明するための図である。10 is a diagram for explaining compressed data according to Embodiment 2. FIG. 実施の形態3に係るメモリ制御モジュールの構成例を示す構成図である。FIG. 10 is a configuration diagram illustrating a configuration example of a memory control module according to a third embodiment. 実施の形態3に係るメモリアクセス動作を説明するため図である。FIG. 10 is a diagram for explaining a memory access operation according to the third embodiment. 実施の形態4に係る圧縮データを説明するため図である。FIG. 10 is a diagram for explaining compressed data according to a fourth embodiment. 実施の形態4に係るメモリアクセス動作を説明するため図である。FIG. 10 is a diagram for explaining a memory access operation according to the fourth embodiment.

説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。   For clarity of explanation, the following description and drawings are omitted and simplified as appropriate. Each element described in the drawings as a functional block for performing various processes can be configured by a CPU, a memory, and other circuits in terms of hardware, and a program loaded in the memory in terms of software. Etc. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one. Note that, in each drawing, the same element is denoted by the same reference numeral, and redundant description is omitted as necessary.

(基本例1〜3)
まず、実施の形態の基本となる基本例1〜3について説明する。図1〜3は、それぞれ基本例1〜3に係るデータ処理システムの構成を示している。
(Basic examples 1 to 3)
First, basic examples 1 to 3 serving as the basis of the embodiment will be described. 1 to 3 show the configurations of data processing systems according to basic examples 1 to 3, respectively.

図1〜3に示すように、基本例1〜3に係るデータ処理システム91〜93は、それぞれ半導体装置(LSI)901〜903と半導体装置のデータを記憶するSDRAM200を備えている。各半導体装置901〜903は、複数の演算モジュール110(例えば110_A〜110_C)とメモリ制御モジュール120を備えている。演算モジュール110とメモリ制御モジュール120は、例えばデータバス130を介して接続されている。   As shown in FIGS. 1 to 3, data processing systems 91 to 93 according to basic examples 1 to 3 each include a semiconductor device (LSI) 901 to 903 and an SDRAM 200 that stores data of the semiconductor device. Each of the semiconductor devices 901 to 903 includes a plurality of arithmetic modules 110 (for example, 110_A to 110_C) and a memory control module 120. The arithmetic module 110 and the memory control module 120 are connected via a data bus 130, for example.

複数の演算モジュール110は、演算処理を行う演算部であり、その機能を実現するためそれぞれ演算器111(111_A〜111_C)を備えている。メモリ制御モジュール120は、演算モジュール110からの要求にしたがってSDRAM200の書き込み/読み出しを制御する制御部であり、その機能を実現するためアクセス回路121を備えている。複数の演算器111は、データバス130及びメモリ制御モジュール120を介して、SDRAM200へデータを格納し、SDRAM200からデータを読み出したりする。なお、SDRAM200は、半導体装置のデータを記憶するメモリの一例であり、その他の記憶装置であってもよい。   The plurality of arithmetic modules 110 are arithmetic units that perform arithmetic processing, and are each provided with arithmetic units 111 (111_A to 111_C) in order to realize their functions. The memory control module 120 is a control unit that controls writing / reading of the SDRAM 200 in accordance with a request from the arithmetic module 110, and includes an access circuit 121 for realizing its function. The plurality of arithmetic units 111 store data in the SDRAM 200 and read data from the SDRAM 200 via the data bus 130 and the memory control module 120. The SDRAM 200 is an example of a memory that stores data of a semiconductor device, and may be another storage device.

半導体装置901〜903は、さらに、演算結果のデータを圧縮する圧縮回路11、圧縮されたデータを伸張する伸張回路21を備えている。半導体装置901〜903は、この圧縮回路11と伸張回路21の配置が異なる例である。   The semiconductor devices 901 to 903 further include a compression circuit 11 that compresses the data of the operation result, and a decompression circuit 21 that decompresses the compressed data. The semiconductor devices 901 to 903 are examples in which the arrangement of the compression circuit 11 and the expansion circuit 21 is different.

図1に示すように、基本例1の半導体装置901では、圧縮回路11及び伸張回路21が演算モジュール110とデータバス130との間に設けられており、圧縮回路11及び伸張回路21とデータバス130とが1対1の関係にある。図2に示すように、基本例2の半導体装置902では、圧縮回路11及び伸張回路21がメモリ制御モジュール120の内部に設けられており、圧縮回路11及び伸張回路21とメモリ制御モジュール120とが1対1の関係にある。   As shown in FIG. 1, in the semiconductor device 901 of the basic example 1, the compression circuit 11 and the expansion circuit 21 are provided between the arithmetic module 110 and the data bus 130, and the compression circuit 11 and the expansion circuit 21 and the data bus are provided. 130 has a one-to-one relationship. As shown in FIG. 2, in the semiconductor device 902 of the basic example 2, the compression circuit 11 and the expansion circuit 21 are provided in the memory control module 120, and the compression circuit 11, the expansion circuit 21, and the memory control module 120 are provided. There is a one-to-one relationship.

各演算器111からは、その演算処理の特性に応じた出力データが出力される。つまり演算器毎に、出力データの転送開始のアドレス位置や、転送長、データのフォーマット(連続するのか、離散するのか)が異なる。基本例1や基本例2のように、圧縮回路11及び伸張回路21が、データバス130やメモリ制御モジュール120と1対1の関係にある場合、圧縮回路11はすべての演算器111の出力を圧縮する必要がある。そうすると、圧縮効率を高くすることができない。すなわち、演算器毎に出力の特性が異なるにもかかわらず同じ圧縮回路で圧縮するため、圧縮に適したデータ構造で圧縮することができず、圧縮効率が低くなるという問題がある。   Each arithmetic unit 111 outputs output data corresponding to the characteristics of the arithmetic processing. In other words, the output data transfer start address position, the transfer length, and the data format (continuous or discrete) differ for each computing unit. When the compression circuit 11 and the expansion circuit 21 have a one-to-one relationship with the data bus 130 and the memory control module 120 as in the basic example 1 and the basic example 2, the compression circuit 11 outputs the outputs of all the arithmetic units 111. It needs to be compressed. If it does so, compression efficiency cannot be made high. In other words, since compression is performed by the same compression circuit regardless of the output characteristics of each computing unit, there is a problem that compression cannot be performed with a data structure suitable for compression, and compression efficiency is lowered.

また、図3に示すように、基本例3の半導体装置903では、圧縮回路11及び伸張回路21が各演算モジュール110の内部に設けられており、圧縮回路11及び伸張回路21と演算器111とが1対1の関係にある。基本例3のように、圧縮回路11及び伸張回路21が各演算器111と1対1にある場合でも、圧縮効率を高くすることができない。なぜならば、演算結果のデータを他の演算器で使用する場合、データを他の演算器で伸張できるようにするには、共通のデータ構造で圧縮する必要がある。そうすると、演算器毎の出力に合わせて圧縮することができないため、上記と同様の問題が発生する。   As shown in FIG. 3, in the semiconductor device 903 of Basic Example 3, the compression circuit 11 and the expansion circuit 21 are provided in each arithmetic module 110, and the compression circuit 11 and the expansion circuit 21, the arithmetic unit 111, Are in a one-to-one relationship. Even when the compression circuit 11 and the decompression circuit 21 are in one-to-one correspondence with each computing unit 111 as in the basic example 3, the compression efficiency cannot be increased. This is because when the data of the operation result is used in another arithmetic unit, the data must be compressed with a common data structure in order to be able to be decompressed by the other arithmetic unit. Then, since it cannot compress according to the output for every arithmetic unit, the same problem as the above occurs.

また、基本例3の構成では、圧縮を適用しない演算器111_Cも、他の演算器111で圧縮されたデータを読み込むためには、伸張回路21_Cが必要になる。このため、全ての演算器に伸張回路が必要となるため、回路面積が大きくなるという問題がある。   In the configuration of Basic Example 3, the arithmetic unit 111_C to which compression is not applied also requires the decompression circuit 21_C in order to read the data compressed by the other arithmetic units 111. For this reason, since an expansion circuit is required for all the arithmetic units, there is a problem that the circuit area increases.

さらにまた、記憶装置としてSDRAM等が考えられるが、演算器111で発生したデータの特性によっては、連続するデータ構造とならないため、SDRAMの転送効率を高くすることが困難であるという問題もある。   Further, although an SDRAM or the like can be considered as a storage device, there is a problem that it is difficult to increase the transfer efficiency of the SDRAM because a continuous data structure is not obtained depending on the characteristics of data generated by the arithmetic unit 111.

(実施の形態1)
以下、図面を参照して実施の形態1について説明する。
(Embodiment 1)
The first embodiment will be described below with reference to the drawings.

<実施の形態1の概要>
図4は、本実施の形態に係るデータ処理システムの概要構成を示している。図4に示すように、本実施の形態に係るデータ処理システム1は、半導体装置100とSDRAM200を備えている。本実施の形態に係る半導体装置100は、基本例1〜3と同様に、複数の演算モジュール110(例えば110_A−110_C)とメモリ制御モジュール120を備えている。演算モジュール110は、演算器111(111_A〜111_C)を備えている。さらに、いくつかの演算モジュール110は、圧縮回路11(例えば11_A、11_B)を備えている。メモリ制御モジュール120は、アクセス回路121を備えており、さらに、伸張回路21を備えている。なお、本実施の形態に係る半導体装置100、図5のように、少なくとも図4の構成のうちの演算モジュール110とメモリ制御モジュール120を備えていてもよい。すなわち、少なくとも演算モジュール110は、演算処理を実行する演算器(演算処理部)111、演算処理結果のデータを圧縮する圧縮回路(圧縮部)11を備え、メモリ制御モジュール120は、圧縮されたデータをSRDAM(メモリ)200に書き込み、書き込まれたデータをSDRAM200から読み出すアクセス回路(アクセス部)121、SDRAM200から読み出されたデータを伸張し、伸張されたデータを演算モジュール110へ出力する伸張回路(伸張部)21を備えている。
<Outline of Embodiment 1>
FIG. 4 shows a schematic configuration of the data processing system according to the present embodiment. As shown in FIG. 4, the data processing system 1 according to the present embodiment includes a semiconductor device 100 and an SDRAM 200. The semiconductor device 100 according to the present embodiment includes a plurality of arithmetic modules 110 (for example, 110_A-110_C) and a memory control module 120 as in the first to third examples. The arithmetic module 110 includes an arithmetic unit 111 (111_A to 111_C). Further, some arithmetic modules 110 include a compression circuit 11 (for example, 11_A and 11_B). The memory control module 120 includes an access circuit 121, and further includes a decompression circuit 21. Note that, as shown in FIG. 5, the semiconductor device 100 according to the present embodiment may include at least the arithmetic module 110 and the memory control module 120 in the configuration of FIG. That is, at least the arithmetic module 110 includes an arithmetic unit (arithmetic processing unit) 111 that performs arithmetic processing, and a compression circuit (compressing unit) 11 that compresses data of the arithmetic processing result, and the memory control module 120 includes compressed data Is read into the SRDAM (memory) 200, the written data is read from the SDRAM 200, an access circuit (access unit) 121, the data read from the SDRAM 200 is decompressed, and the decompression circuit (output unit) outputs the decompressed data to the arithmetic module 110. (Extension part) 21 is provided.

このように、本実施の形態では、演算部(演算モジュール)とメモリ制御部(メモリ制御モジュール)から構成されるデータ処理システムにおいて、演算部は、データ出力時に圧縮を行う圧縮回路を有し、メモリ制御部は、メモリからリードされたデータを伸張する(データが圧縮データの場合に伸張する)伸張回路を有することを一つの特徴としている。演算部に圧縮回路を備えることで、演算器のデータに合わせて圧縮を行うことができる。メモリ制御部の伸張回路により、圧縮データを伸張してから各演算部に送信するため、全ての演算部がメモリに格納される圧縮データと非圧縮データの両方を利用することが可能となる。全ての演算部に伸張回路を備える必要がないため、回路面積の増大を抑えることができる。   As described above, in the present embodiment, in the data processing system including the calculation unit (calculation module) and the memory control unit (memory control module), the calculation unit includes a compression circuit that performs compression at the time of data output, One feature of the memory control unit is that it has a decompression circuit that decompresses data read from the memory (expands when the data is compressed data). By providing the calculation unit with a compression circuit, compression can be performed in accordance with the data of the calculator. Since the decompression circuit of the memory control unit decompresses the compressed data and transmits the decompressed data to each computation unit, all computation units can use both compressed data and uncompressed data stored in the memory. Since it is not necessary to provide a decompression circuit in every arithmetic unit, an increase in circuit area can be suppressed.

<実施の形態1の構成>
図6は、本実施の形態に係るデータ処理システムのより具体的な構成例を示している。図6に示すように、本実施の形態に係る半導体装置100は、図4の概要構成に加えてさらに、いくつかの演算モジュール110にバッファ112を備えている。
<Configuration of Embodiment 1>
FIG. 6 shows a more specific configuration example of the data processing system according to the present embodiment. As shown in FIG. 6, the semiconductor device 100 according to the present embodiment further includes buffers 112 in some arithmetic modules 110 in addition to the schematic configuration of FIG. 4.

半導体装置100は、各演算モジュール110側に、演算器111、バッファ112、圧縮回路11を備えている。バッファ112は、演算処理結果のデータを圧縮処理単位のデータに変換する変換部であり、演算器111からの演算結果である出力データを圧縮に適した圧縮データ構造となるように保持し、保持した圧縮データ構造のデータを圧縮回路11へ転送する。圧縮回路11は、入力されたデータを圧縮し、データバス130を通じて、メモリ制御モジュール120へ転送する。メモリ制御モジュール120は、転送された圧縮データ201を外部のSDRAM200へ保存する。メモリ制御モジュール120に伸張回路21が配置され、SDRAM200からリードされたデータが、圧縮データ201のときは伸張してから、データバス130へ送付する。リード要求元の演算モジュール110から、データが圧縮されているか、圧縮されていなかを示す制御信号が、メモリ制御モジュール120へ送付される。   The semiconductor device 100 includes an arithmetic unit 111, a buffer 112, and a compression circuit 11 on each arithmetic module 110 side. The buffer 112 is a conversion unit that converts the data of the arithmetic processing result into data of a compression processing unit, and holds the output data that is the arithmetic result from the arithmetic unit 111 so as to have a compressed data structure suitable for compression. The compressed data structure data is transferred to the compression circuit 11. The compression circuit 11 compresses the input data and transfers it to the memory control module 120 through the data bus 130. The memory control module 120 stores the transferred compressed data 201 in the external SDRAM 200. The decompression circuit 21 is arranged in the memory control module 120, and when the data read from the SDRAM 200 is the compressed data 201, the decompression circuit 21 is decompressed and sent to the data bus 130. A control signal indicating whether the data is compressed or not is sent from the calculation module 110 that is the read request source to the memory control module 120.

図6の例では、半導体装置100は、演算モジュール110_A〜110_Dを備えている。例えば、演算モジュール110_A及び110_Bは、それぞれ演算器111_A及び111B、バッファ112_A及び112_B、圧縮回路11_A及び11Bを備え、演算モジュール110_C及び110_Dは、それぞれ演算器111_C及び111Dを備えている。   In the example of FIG. 6, the semiconductor device 100 includes arithmetic modules 110_A to 110_D. For example, the arithmetic modules 110_A and 110_B include arithmetic units 111_A and 111B, buffers 112_A and 112_B, and compression circuits 11_A and 11B, respectively, and the arithmetic modules 110_C and 110_D include arithmetic units 111_C and 111D, respectively.

例えば、演算モジュール110_A(演算器111_A)は、画像データ(映像データ)をデコードするデコーダである。演算モジュール110_Aは、デコードを行った後、デコードしたデータを圧縮し、圧縮データ201としてSDRAM200に格納する。   For example, the arithmetic module 110_A (arithmetic unit 111_A) is a decoder that decodes image data (video data). The arithmetic module 110_A, after decoding, compresses the decoded data and stores it as compressed data 201 in the SDRAM 200.

演算モジュール110_B(演算器111_B)は、演算モジュール110_Aがデコードした画像データに対し拡大/縮小などの画像処理(映像処理)を行う画像処理装置(GPU)である。演算モジュール110_Bは、SDRAM200からデコード後の圧縮データ201を伸張回路21を介して取得し、画像処理を行った後、画像処理を行ったデータを圧縮し、圧縮データ201としてSDRAM200に格納する。   The arithmetic module 110_B (arithmetic unit 111_B) is an image processing device (GPU) that performs image processing (video processing) such as enlargement / reduction on the image data decoded by the arithmetic module 110_A. The arithmetic module 110_B acquires the compressed data 201 after decoding from the SDRAM 200 via the decompression circuit 21, performs image processing, compresses the data subjected to image processing, and stores the compressed data 201 in the SDRAM 200.

演算モジュール110_C(演算器111_C)は、演算モジュール110_Bが画像処理を行ったデータを用いて、メニューなどGUIを追加し、表示画面データを生成する。演算モジュール110_Cは、SDRAM200から画像処理後の圧縮データ201を伸張回路21を介して取得し、表示画面データを生成した後、非圧縮データ202としてSDRAM200に格納する。   The arithmetic module 110_C (calculator 111_C) adds a GUI such as a menu using the data that the arithmetic module 110_B has performed image processing, and generates display screen data. The arithmetic module 110_C acquires the compressed data 201 after image processing from the SDRAM 200 via the decompression circuit 21, generates display screen data, and stores the display screen data in the SDRAM 200 as uncompressed data 202.

演算モジュール110_D(演算器111_D)は、演算モジュール110_A〜110_Cの動作制御や、演算結果を利用して、アプリケーション処理を実行するCPUである。演算モジュール110_Cは、SDRAM200から表示画面データなどの非圧縮データ202を取得し、アプリケーション処理を実行した後、非圧縮データ202としてSDRAM200に格納する。   The arithmetic module 110_D (arithmetic unit 111_D) is a CPU that executes application processing using the operation control of the arithmetic modules 110_A to 110_C and the calculation result. The arithmetic module 110_C acquires uncompressed data 202 such as display screen data from the SDRAM 200, executes application processing, and stores the uncompressed data 202 in the SDRAM 200 as uncompressed data 202.

<実施の形態1の動作>
まず、本実施の形態に係る演算モジュール110(例えば演算モジュール110_A)の動作について説明する。
<Operation of Embodiment 1>
First, the operation of the arithmetic module 110 (for example, the arithmetic module 110_A) according to this embodiment will be described.

圧縮回路11は、データが持つ冗長性を利用してデータを圧縮し、データ量を削減している。例えば、画像データの圧縮では、対象画素と参照画素との差分を用いて圧縮を行うことから、近傍の画素群は差分が小さく圧縮率が高くなる傾向にある。そのため、圧縮によりデータ量を効率よく削減するためには、一定の長さの連続するデータ(アドレスが連続するデータ、ブロックデータ)単位で圧縮を実行することが望ましい。   The compression circuit 11 compresses data by using the redundancy of the data and reduces the data amount. For example, in the compression of image data, since the compression is performed using the difference between the target pixel and the reference pixel, the neighboring pixel group tends to have a small difference and a high compression rate. Therefore, in order to efficiently reduce the amount of data by compression, it is desirable to execute compression in units of continuous data (data having continuous addresses, block data) having a certain length.

しかし、演算器111から出力されるデータは、必ずしもデータ圧縮に適した構造になっているとは限らない。つまり、演算器111の処理の都合やデータの特性によって、演算器111から出力されるデータの順番がSDRAM200におけるバッファのアドレス順と一致しない場合がある。この場合、アドレスが不連続になる箇所でデータが細分化されてしまうため、効率よく圧縮することができない。そこで、本実施の形態では、演算器111の出力を直接圧縮するのではなく、一度バッファ112へ格納し、バッファ112において圧縮に適した構造(一定長でアドレスが連続する構造)に変換してから、圧縮回路11で圧縮を行う。   However, the data output from the computing unit 111 does not necessarily have a structure suitable for data compression. In other words, the order of data output from the computing unit 111 may not match the address order of the buffers in the SDRAM 200 depending on the processing convenience of the computing unit 111 and data characteristics. In this case, since the data is fragmented at locations where the addresses are discontinuous, it cannot be efficiently compressed. Therefore, in this embodiment, the output of the arithmetic unit 111 is not directly compressed, but once stored in the buffer 112 and converted into a structure suitable for compression (a structure in which addresses are continuous with a fixed length). The compression circuit 11 performs compression.

以下の例では、演算器111(例えば演算器111_A)を、動画像圧縮規格であるH.265で採用されているデブロックフィルタを有するデコーダとし、このデコーダの出力を、水平64画素×垂直4ラインの連続する256バイトデータの圧縮データ構造に変換する例を説明する。   In the following example, the computing unit 111 (for example, the computing unit 111_A) is connected to an H.264 which is a moving image compression standard. An example will be described in which a decoder having a deblocking filter adopted in H.265 is used, and the output of this decoder is converted into a compressed data structure of continuous 256-byte data of horizontal 64 pixels × vertical 4 lines.

動画像圧縮規格のH.265では、動画像は各画像(ピクチャ)単位に圧縮される。圧縮されたピクチャには、大別してI/P/Bの3種類が規定されている。   H. of the video compression standard. In H.265, the moving image is compressed in units of each image (picture). There are three types of compressed pictures: I / P / B.

Iピクチャは、そのピクチャ自身のデータのみで圧縮されており、そのピクチャ単体で復号(デコード)できる。P/Bピクチャは、そのピクチャと、それ以前にデコードした結果(デコード画像)の差分を取って、そのピクチャを圧縮する。そのため、P/Bピクチャは、Iピクチャに比べて圧縮後のデータサイズを小さくすることができる。P/Bピクチャにおいて差分データを生成するとき、参照するデコード画像から任意の位置のデータを選択することができる。たとえば、圧縮後のデータ量が最小になるような位置のデータが選択される。   An I picture is compressed only with the data of the picture itself, and can be decoded (decoded) by itself. The P / B picture is compressed by taking the difference between the picture and the result of decoding before that (decoded image). For this reason, the data size after compression of the P / B picture can be made smaller than that of the I picture. When generating difference data in a P / B picture, data at an arbitrary position can be selected from a decoded image to be referenced. For example, data at a position that minimizes the amount of data after compression is selected.

H.265規格では、動画像の圧縮効率や主観的な動画像品質の向上のため、デブロックフィルタが採用されており、演算器111は、このデブロックフィルタDFを備えている。デブロックフィルタ(デブロッキングフィルタ)DFは、画像復号時に生じるブロック歪みを低減するためのフィルタである。   H. In the H.265 standard, a deblocking filter is employed in order to improve the compression efficiency of a moving image and subjective moving image quality, and the computing unit 111 includes the deblocking filter DF. The deblocking filter (deblocking filter) DF is a filter for reducing block distortion that occurs during image decoding.

例えば、演算器111は、エントロピー復号化、逆量子化・逆変換によりデコードを行い、ループ内フィルタとしてデブロックフィルタDFがデコードの最後に使用される。このため、演算器111から出力されるH.265のデコード画像はデブロックフィルタ処理後のデータとなる。つまり、デブロックフィルタ処理の終わったデータから順に、SDARM上のバッファに格納可能となる。デブロックフィルタDFが処理する画像上の位置の順番はH.265規格で定められており、その結果、演算器111がデータを出力する順番は、画像内の処理する位置に依存して変化する。   For example, the computing unit 111 performs decoding by entropy decoding, inverse quantization / inverse transformation, and the deblock filter DF is used at the end of decoding as an in-loop filter. For this reason, the H.D. The decoded image 265 becomes data after the deblocking filter processing. That is, the data can be stored in the buffer on the SDARM in order from the data after the deblocking filter processing. The order of positions on the image processed by the deblocking filter DF is H.264. As a result, the order in which the calculator 111 outputs data changes depending on the processing position in the image.

H.265では、CTB(Coding Tree Block)と呼ばれる正方画素ブロックの単位で、符号化処理及び復号化処理が行われる。CTBのサイズは選択可能であり、16×16、32×32、64×64画素の場合がある。以下ではCTBのサイズが64×64画素の場合を例に説明する。   H. In H.265, encoding processing and decoding processing are performed in units of square pixel blocks called CTB (Coding Tree Block). The CTB size can be selected and may be 16 × 16, 32 × 32, or 64 × 64 pixels. Hereinafter, a case where the CTB size is 64 × 64 pixels will be described as an example.

図7は、CTBのサイズが64×64画素のときの輝度データの出力順序を示しており、図8は図7の一部を拡大した拡大図である。図7に示すように、演算器111は、水平方向16×1画素のデータを一単位として、処理する画像の位置に依存して、垂直方向に8/12/16画素の連続でデータを出力する。つまり、16×8画素、16×12画素、16×16顔の出力ブロックOBの単位で、図7及び図8の矢印の順に出力される。   FIG. 7 shows the output order of luminance data when the CTB size is 64 × 64 pixels, and FIG. 8 is an enlarged view of a part of FIG. As shown in FIG. 7, the arithmetic unit 111 outputs the data continuously in the vertical direction of 8/12/16 pixels depending on the position of the image to be processed, with the data of 16 × 1 pixels in the horizontal direction as one unit. To do. That is, 16 × 8 pixels, 16 × 12 pixels, and 16 × 16 face output blocks OB are output in the order of the arrows in FIGS.

H.265では、CTBをさらに階層的にブロック分割して符号化処理及び復号化処理が行われる。例えば、CTBを複数のCB(Coding Block)に分割し、さらにCBを複数のPB(Prediction Block)やTB(Transform Block)に分割する。CBは、イントラ・インター予測、変換・量子化処理/逆量子化・逆変換処理、エントロピー符号化/復号化処理などの一連の符号化/復号化を行う単位である。PBは、イントラ・インター予測処理を行う単位であり、TBは、変換・量子化処理/逆量子化・逆変換処理を行う単位である。デブロックフィルタDFは、PBやTB単位でフィルタ処理を行う。出力ブロックOBは、デブロックフィルタDFの処理単位のブロックであり、例えばPBやTBである。   H. In 265, the CTB is further divided into blocks, and the encoding process and the decoding process are performed. For example, the CTB is divided into a plurality of CBs (Coding Blocks), and the CB is further divided into a plurality of PBs (Prediction Blocks) and TBs (Transform Blocks). The CB is a unit for performing a series of encoding / decoding such as intra / inter prediction, transformation / quantization processing / inverse quantization / inverse transformation processing, entropy encoding / decoding processing, and the like. PB is a unit for performing intra / inter prediction processing, and TB is a unit for performing transform / quantization processing / inverse quantization / inverse transform processing. The deblocking filter DF performs a filtering process in units of PB and TB. The output block OB is a processing unit block of the deblocking filter DF, and is, for example, PB or TB.

デブロックフィルタDFは、ブロックに隣接する境界の画素を参照してフィルタ処理を行うため、隣接する次のブロック(水平方向または垂直方向に隣接するブロック)のフィルタ処理が完了した後でなければ、データを出力することができない。このため、CTBのサイズ単位ではなく、CTBよりずれた単位でデータが出力される。   Since the deblocking filter DF performs the filtering process with reference to the boundary pixels adjacent to the block, the filtering process of the next adjacent block (the block adjacent in the horizontal direction or the vertical direction) is not completed, Data cannot be output. For this reason, data is output not in the CTB size unit but in a unit shifted from the CTB.

図7の例では、演算器111から出力されるデータは、画像の64×64画素単位の位置からは、水平方向には左に16画素、垂直方向には上に4画素ずれている。すなわち、CTBの処理単位と同じではなく、水平方向には左端は48画素、中間は64画素、右端は80画素で、垂直方向には上端は60画素、中間は64画素、下端は68画素で、データが出力されることになる。   In the example of FIG. 7, the data output from the computing unit 111 is shifted 16 pixels to the left in the horizontal direction and 4 pixels upward in the vertical direction from the position of the 64 × 64 pixel unit of the image. That is, it is not the same as the CTB processing unit, and the left end is 48 pixels in the horizontal direction, the middle is 64 pixels, the right end is 80 pixels, the upper end is 60 pixels in the vertical direction, the middle is 64 pixels, and the lower end is 68 pixels. Data will be output.

つまり、まず、48×60画素の出力ブロック群OBU1が出力され、次に水平方向に連続して64×60画素の出力ブロック群OBU2が出力された後、水平方向の最後に80×60画素の出力ブロック群OBU3が出力される。次の水平方向のデータは、48×64画素の出力ブロック群、64×64画素の出力ブロック群・・・80×64画素の出力ブロック群OBU6が順に出力される。出力ブロック群OBU4〜OBU6が垂直方向に続けて出力された後、垂直方向の最後に48×68画素の出力ブロック群OBU7が出力され、次に水平方向に連続して64×68画素の出力ブロック群OBU8が出力された後、水平方向の最後に80×68画素の出力ブロック群OBU9が出力される。   That is, first, the output block group OBU1 of 48 × 60 pixels is output, and then the output block group OBU2 of 64 × 60 pixels is output continuously in the horizontal direction, and then the output block group OBU of 80 × 60 pixels is finally output in the horizontal direction. The output block group OBU3 is output. As the next horizontal data, an output block group of 48 × 64 pixels, an output block group of 64 × 64 pixels,..., An output block group OBU6 of 80 × 64 pixels are sequentially output. After the output block groups OBU4 to OBU6 are output in succession in the vertical direction, the output block group OBU7 of 48 × 68 pixels is output at the end in the vertical direction, and then the output block of 64 × 68 pixels continuously in the horizontal direction. After the group OBU8 is output, the output block group OBU9 of 80 × 68 pixels is output at the end in the horizontal direction.

出力ブロック群OBU内の出力順の例を見ると、例えば図8に示すように、最初の出力ブロック群OBU1では、(出力ブロック)OB1、その下のOB11、その右上のOB2、その右のOB3、その左下のOB12、その右のOB13・・・の順に出力され、次の出力ブロック群OBU2では、(出力ブロック)OB4、その右のOB5、その左下のOB14、その右のOB15・・・の順に出力される。   Looking at an example of the output order in the output block group OBU, for example, as shown in FIG. 8, in the first output block group OBU1, (output block) OB1, OB11 below it, OB2 on the upper right, OB3 on the right Are output in the order of the lower left OB12, the right OB13, and so on. In the next output block group OBU2, the (output block) OB4, the right OB5, the lower left OB14, the right OB15,. Output in order.

このように、演算器111からは、図7及び図8の矢印のような順番でデータが出力されるため、そのままの順番では、本来の画像の位置関係と相違してしまう。つまり、図8のように、本来の画像では、水平方向に(出力ブロック)OB1、OB2、OB3、OB4・・・と連続した画像であるが、出力されたデータは、矢印の順で(出力ブロック)OB1、OB11、OB2、OB3・・・となり不連続なデータとなる。   As described above, since the data is output from the arithmetic unit 111 in the order as shown by the arrows in FIGS. 7 and 8, the original image positional relationship is different in the order as it is. That is, as shown in FIG. 8, the original image is an image that is continuous with OB1, OB2, OB3, OB4,... In the horizontal direction (output block). Block) OB1, OB11, OB2, OB3.

本実施の形態では、図7及び図8のような出力データを、バッファ112によって、画像の64×4単位の連続したデータ構造に変換する。図9は、このようなバッファ112を実現するための構成例を示している。なお、本実施の形態に係るバッファはこのようなデータ構造を有していればよいため、データの入出力についてはいずれの構成で行ってもよい。バッファ112内のバッファ制御部が、バッファ112のデータの入力順/出力順を制御してもよいし、演算器がバッファ112へのデータの入力順を制御し、圧縮回路がバッファ112からのデータの出力順を制御してもよい。   In this embodiment, the output data as shown in FIGS. 7 and 8 is converted into a continuous data structure of 64 × 4 units of the image by the buffer 112. FIG. 9 shows a configuration example for realizing such a buffer 112. Note that the buffer according to the present embodiment only needs to have such a data structure, and therefore, any configuration may be used for data input / output. The buffer control unit in the buffer 112 may control the input order / output order of the data in the buffer 112, the arithmetic unit controls the input order of the data to the buffer 112, and the compression circuit receives the data from the buffer 112. The output order may be controlled.

図9に示すように、バッファ112は、2バンクで構成されおり、バンクBK0とバンクBK1を備えている。バンクBK0及びBK1は、物理的に2つに分かれている必要はなく、1つの物理的なバッファの前半/後半それぞれをバンクBK0及びBK1として使用してもよい。バンクBK0及びBK1はそれぞれ同じサイズであり、バンクあたり最大で64×68画素のデータを格納できる。   As shown in FIG. 9, the buffer 112 includes two banks, and includes a bank BK0 and a bank BK1. The banks BK0 and BK1 do not need to be physically divided into two, and the first half / second half of one physical buffer may be used as the banks BK0 and BK1, respectively. The banks BK0 and BK1 have the same size, and can store data of up to 64 × 68 pixels per bank.

バンクBK0及びBK1は、水平方向に16画素の4つの領域を有し、垂直方向に32行の領域と36行の領域の2つの領域を有する。つまり、バンクBK0は、16×32画素用の領域AR01〜AR04、16×36画素用の領域AR05〜領域AR08を有し、バンクBK1は、16×32画素用の領域AR11〜AR14、16×36画素用の領域AR15〜領域AR18を有する。   The banks BK0 and BK1 have four regions of 16 pixels in the horizontal direction and two regions of 32 rows and 36 rows in the vertical direction. That is, the bank BK0 includes areas AR01 to AR04 for 16 × 32 pixels and areas AR05 to AR08 for 16 × 36 pixels, and the bank BK1 includes areas AR11 to AR14 and 16 × 36 for 16 × 32 pixels. It has pixel areas AR15 to AR18.

水平方向の領域の16画素は、各出力ブロックOBと同じサイズであり、バンクの水平方向の64画素は出力ブロック群OBU2、OBU5、OBU8(またはCTB)と同じサイズである。垂直方向の領域の32行及び36行は、出力ブロック群OBU7、OBU8、OBU9の上側の2ブロック及び下側の3ブロックと同じサイズである。   The 16 pixels in the horizontal region are the same size as each output block OB, and the 64 pixels in the bank in the horizontal direction are the same size as the output block groups OBU2, OBU5, OBU8 (or CTB). The 32 and 36 rows in the vertical region have the same size as the upper two blocks and the lower three blocks of the output block group OBU7, OBU8, and OBU9.

以降、図10〜図14を用いて、演算器111が画像の左上からデータ出力を開始したときのバッファ112の格納動作について、詳細に説明する。   Hereinafter, the storing operation of the buffer 112 when the computing unit 111 starts data output from the upper left of the image will be described in detail with reference to FIGS.

まず、最初のCTBに対応する出力データ(OBU1)は48×60画素分となる。図10に示すように、バッファ112のバンクBK0に矢印の順に出力ブロック群OBU1のデータが格納される。出力ブロック群OBU1の各ブロックは図7及び8で示した順に出力されるため、バッファ112は、出力ブロックOB1、OB11の順に領域AR01に格納し、出力ブロックOB2を領域AR02に格納し、出力ブロックOB3を領域AR03に格納し、出力ブロックOB12を領域AR02のOB2の後に格納し、出力ブロックOB13を領域AR03のOB3の後に格納する。その後、領域AR05〜AR07の順にデータが格納され、出力ブロック群OBU1がバンクBK0に格納される。この段階では、バンクBK0の領域AR04及び領域AR08が空いており、まだ圧縮単位64×4のデータがそろっていないため、バッファからデータは出力されない。   First, the output data (OBU1) corresponding to the first CTB is 48 × 60 pixels. As shown in FIG. 10, the data of the output block group OBU1 is stored in the bank BK0 of the buffer 112 in the order of the arrows. Since the blocks of the output block group OBU1 are output in the order shown in FIGS. 7 and 8, the buffer 112 stores the output blocks OB1 and OB11 in the area AR01 in the order, and stores the output block OB2 in the area AR02. OB3 is stored in area AR03, output block OB12 is stored after OB2 in area AR02, and output block OB13 is stored after OB3 in area AR03. Thereafter, data is stored in the order of the areas AR05 to AR07, and the output block group OBU1 is stored in the bank BK0. At this stage, the area AR04 and the area AR08 of the bank BK0 are empty, and the data of the compression unit 64 × 4 is not yet ready, so no data is output from the buffer.

次に、2番目のCTBに対応する出力データ(OBU2)は64×60画素分となる。図11に示すように、バッファ112のバンクBK0及びBK1に矢印の順に出力ブロック群OBU2のデータが格納される。このとき、バンクBK0の領域AR01〜AR03、AR05〜AR07には出力ブロック群OBU1のデータが格納されているため、バンクBK0の空き領域(AR04及びAR08)とバンクBK1の領域を用いる。出力ブロック群OBU2の各ブロックは図7及び8で示した順に出力されるため、バッファ112は、出力ブロックOB4を領域AR04に格納し、出力ブロックOB5を領域AR11に格納し、出力ブロックOB14を領域AR04のOB4の後に格納し、出力ブロックOB15を領域AR11のOB5の後に格納される。その後、領域AR12〜AR14、AR08、AR15〜AR18の順にデータが格納される。   Next, the output data (OBU2) corresponding to the second CTB is 64 × 60 pixels. As shown in FIG. 11, the data of the output block group OBU2 is stored in the banks BK0 and BK1 of the buffer 112 in the order of the arrows. At this time, since the data of the output block group OBU1 is stored in the areas AR01 to AR03 and AR05 to AR07 of the bank BK0, the empty areas (AR04 and AR08) of the bank BK0 and the area of the bank BK1 are used. Since each block of the output block group OBU2 is output in the order shown in FIGS. 7 and 8, the buffer 112 stores the output block OB4 in the area AR04, stores the output block OB5 in the area AR11, and stores the output block OB14 in the area. The data is stored after OB4 of AR04, and the output block OB15 is stored after OB5 of area AR11. Thereafter, data is stored in the order of the areas AR12 to AR14, AR08, AR15 to AR18.

2番目のCTBに対応した出力データ(OBU2)がバッファ112に格納されると、図12に示すように、バンクBK0には多数の64×4単位(圧縮単位)の連続データOLがそろう。これらの連続データOLがバッファ112から読み出され、圧縮回路11に送付される。   When the output data (OBU2) corresponding to the second CTB is stored in the buffer 112, as shown in FIG. 12, a large number of 64 × 4 unit (compression unit) continuous data OL are arranged in the bank BK0. These continuous data OL are read from the buffer 112 and sent to the compression circuit 11.

圧縮回路11は、バッファ112から受け取った連続データOLを圧縮する。圧縮回路11の圧縮は、伸張回路21で伸張可能であれば任意の方式でよい。例えば、DPCM(differential pulse code modulation)や、可逆圧縮、非可逆圧縮でもよい。圧縮回路11は、データ圧縮後、データバス130を経由し、メモリ制御モジュール120に圧縮データを送付する。メモリ制御モジュール120は,受け取った圧縮データをSDRAM200上のバッファへ格納する。   The compression circuit 11 compresses the continuous data OL received from the buffer 112. The compression of the compression circuit 11 may be any method as long as it can be expanded by the expansion circuit 21. For example, DPCM (differential pulse code modulation), lossless compression, and lossy compression may be used. The compression circuit 11 sends the compressed data to the memory control module 120 via the data bus 130 after data compression. The memory control module 120 stores the received compressed data in a buffer on the SDRAM 200.

バンクBK0から64×4単位の連続データOLを読み出した後は,バンクBK0は図13のように空きとなるため、データを格納可能な状態となる。次に、図14のように、バンクBK1の空き領域(AR14及びAR18)と空いたバンクBK0を用いて、次のCTBに対応した出力データを格納する。その後、バンクBK0とバンクBK1を交互に用いて、演算器111からのデータ格納と、64×4単位の読み出しを繰り返す。   After the continuous data OL in units of 64 × 4 is read from the bank BK0, the bank BK0 becomes empty as shown in FIG. 13, so that data can be stored. Next, as shown in FIG. 14, the output data corresponding to the next CTB is stored using the empty areas (AR14 and AR18) of the bank BK1 and the empty bank BK0. Thereafter, the bank BK0 and the bank BK1 are alternately used to repeat the data storage from the arithmetic unit 111 and the reading of 64 × 4 units.

なお、この例では、説明を簡易にするため、CTBに対応する全てのデータが格納されてから、64×4単位のデータが読み出されるとしたが、実際はこれに限定されない。つまり、64×4単位のデータがそろった時点で、読み出すことができる。   In this example, in order to simplify the explanation, it is assumed that 64 × 4 units of data are read after all the data corresponding to the CTB is stored. However, the present invention is not limited to this. That is, it can be read out when 64 × 4 units of data are available.

次に、本実施の形態に係るメモリ制御モジュール120の動作を説明する。本実施の形態では、主にメモリのリード動作に特徴があるため、リード動作を説明する。   Next, the operation of the memory control module 120 according to this embodiment will be described. Since this embodiment is mainly characterized by a memory read operation, the read operation will be described.

図6に示したように、メモリ制御モジュール120には、圧縮データを伸張する伸張回路21が配置される。リード要求元の演算モジュール110は、メモリ制御モジュール120へ、リードのコマンドの他に、今から読むデータが圧縮されているか否かを示すフラグも送付する。メモリ制御モジュール120(アクセス回路121)は、リードコマンドにしたがってSDRAM200からデータをリードし、コマンドのフラグを参照して、圧縮データではない場合、SDRAM200からのリードデータを、そのまま演算モジュール110に送付する。また、コマンドのフラグにより圧縮データである場合、メモリ制御モジュール120内の伸張回路21にリードデータを送り、伸張後のデータを演算モジュール110に送付する。演算モジュール110(演算器)がフラグを指定することで、演算モジュール110(演算器)の制御に応じて圧縮データ201または非圧縮データ202をリードすることができる。   As shown in FIG. 6, the memory control module 120 is provided with a decompression circuit 21 that decompresses compressed data. In addition to the read command, the calculation module 110 that is the read request source also sends a flag indicating whether the data to be read from now on is compressed, in addition to the read command. The memory control module 120 (access circuit 121) reads data from the SDRAM 200 in accordance with the read command, refers to the flag of the command, and if not compressed data, sends the read data from the SDRAM 200 to the arithmetic module 110 as it is. . If the data is compressed data according to the command flag, the read data is sent to the decompression circuit 21 in the memory control module 120, and the decompressed data is sent to the arithmetic module 110. The arithmetic module 110 (arithmetic unit) designates the flag, so that the compressed data 201 or the uncompressed data 202 can be read according to the control of the arithmetic module 110 (arithmetic unit).

<実施の形態1の効果>
以上のように、本実施の形態では、演算モジュールに演算器の出力を受け付けるバッファを設置し、データをバッファリングした後に、圧縮処理を行う。これにより、圧縮に適したデータ構造に変換することができ、圧縮率を高くすることができる。
<Effect of Embodiment 1>
As described above, in this embodiment, a buffer that receives the output of the arithmetic unit is installed in the arithmetic module, and after the data is buffered, the compression process is performed. Thereby, it can convert into the data structure suitable for compression, and a compression rate can be made high.

また、圧縮前のデータ長を長くすることで、圧縮後でも半導体装置とSDRAMとの間で高い転送効率を実現可能な圧縮データ長とすることができる。図15のグラフは、一回のデータ転送長に対するSDRAMの転送効率(アクセス効率)を示している。   Further, by increasing the data length before compression, it is possible to obtain a compressed data length that can realize high transfer efficiency between the semiconductor device and the SDRAM even after compression. The graph of FIG. 15 shows the transfer efficiency (access efficiency) of the SDRAM for one data transfer length.

たとえば、圧縮前のデータ長が128バイトで、圧縮後が半分の64バイトになったとする。データ長が128バイトのときは100%近い転送効率だが、64バイトのときは約50%の効率となる。50%の効率では、2回に1回は転送できない期間が発生するため、実質128バイト転送をしていることと等価となる。つまり、半導体装置とSDRAM間の転送量は実質的に削減されないことになる。そのため、データ圧縮後も効率のよい転送を実現できるデータ長にすることが望ましい。例えば256バイトを128バイトに圧縮するなど、圧縮後のデータ長がデータ転送長(転送レート)の128バイトに近いことが好ましい。   For example, it is assumed that the data length before compression is 128 bytes and that after compression is half of 64 bytes. When the data length is 128 bytes, the transfer efficiency is nearly 100%, but when the data length is 64 bytes, the efficiency is about 50%. At an efficiency of 50%, there is a period during which data cannot be transferred once every two times, which is equivalent to a transfer of substantially 128 bytes. That is, the transfer amount between the semiconductor device and the SDRAM is not substantially reduced. Therefore, it is desirable to set the data length so that efficient transfer can be realized even after data compression. For example, the compressed data length is preferably close to the data transfer length (transfer rate) of 128 bytes, for example, 256 bytes are compressed to 128 bytes.

また、メモリ制御モジュールに伸張回路を備えることで、圧縮データを伸張してから各演算モジュールに送付できる。よって、演算モジュール側に伸張回路を持っていないモジュールでも、アクセスする対象が圧縮データであることを示すことで、SDRAMにある圧縮データと非圧縮データの両方を利用することができる。   Further, by providing a decompression circuit in the memory control module, the compressed data can be decompressed and sent to each arithmetic module. Therefore, even a module that does not have a decompression circuit on the arithmetic module side can use both compressed data and non-compressed data in the SDRAM by indicating that the object to be accessed is compressed data.

(実施の形態2)
以下、図面を参照して実施の形態2について説明する。本実施の形態は、基本例1〜3または実施の形態1に適用可能であり、基本例1〜3または実施の形態1と圧縮データの格納方法のみが異なる。
(Embodiment 2)
The second embodiment will be described below with reference to the drawings. This embodiment can be applied to the basic examples 1 to 3 or the first embodiment, and is different from the basic examples 1 to 3 or the first embodiment only in the compressed data storage method.

図16は、本実施の形態における圧縮データの格納イメージを示している。図1〜図6の圧縮回路11において、図16のようにデータを圧縮し、SDRAMに格納する。   FIG. 16 shows a storage image of compressed data in the present embodiment. 1 to 6, the data is compressed as shown in FIG. 16 and stored in the SDRAM.

例えば、圧縮回路11は、演算器111から出力されたデータを256バイト単位に圧縮する。圧縮されたデータは、データ長が短くなるため、この圧縮データを連続してSDRAMに格納すると、データのアドレスがずれることになる。この場合、アドレスがずれたデータに直接アクセスするためには、変更前と変更後のアドレスを関連付けて記憶しておく必要がある。   For example, the compression circuit 11 compresses the data output from the computing unit 111 in units of 256 bytes. Since the compressed data has a short data length, when the compressed data is continuously stored in the SDRAM, the data addresses are shifted. In this case, in order to directly access data whose addresses are shifted, it is necessary to store the addresses before and after the change in association with each other.

そこで、本実施の形態では、図16に示すように、圧縮回路11は、圧縮後のデータを、非圧縮(圧縮前)と同じ256バイトの先頭アドレスから格納する。つまり、圧縮データをSDRAM200に格納するとき、圧縮単位である256バイト単位の先頭アドレスは変更せずに、圧縮データ分のみ格納する。   Therefore, in the present embodiment, as shown in FIG. 16, the compression circuit 11 stores the compressed data from the same 256-byte head address as that of the uncompressed (before compression). That is, when the compressed data is stored in the SDRAM 200, only the compressed data is stored without changing the head address in 256-byte units, which is the compression unit.

このように、本実施の形態では、圧縮データの格納されるアドレスが、非圧縮時のアドレスと256バイト単位では同一となる。これにより、圧縮前のアドレス、たとえばバッファの先頭アドレスなどを保持する必要がなくなる。また、圧縮後の任意のデータに順不同でアクセス(ランダムアクセス)することも可能になる。   As described above, in the present embodiment, the address where the compressed data is stored is the same as the address at the time of non-compression in units of 256 bytes. This eliminates the need to hold an address before compression, for example, the head address of the buffer. It is also possible to access arbitrary data after compression in random order (random access).

(実施の形態3)
以下、図面を参照して実施の形態3について説明する。本実施の形態は、実施の形態1または2に適用可能であり、実施の形態1または2とメモリ制御モジュールの構成のみが異なる。
(Embodiment 3)
The third embodiment will be described below with reference to the drawings. This embodiment can be applied to the first or second embodiment, and is different from the first or second embodiment only in the configuration of the memory control module.

図17は、本実施の形態に係るメモリ制御モジュール120の構成例を示しており、図18は、本実施の形態におけるデータのリード動作例を示している。   FIG. 17 shows a configuration example of the memory control module 120 according to the present embodiment, and FIG. 18 shows an example of data read operation in the present embodiment.

図17に示すように、実施の形態1または2のメモリ制御モジュール120において、さらにアドレス変換器122、MMU(メモリ管理ユニット)123を備えている。アドレス変換器122は、演算モジュール110からコマンドで指定された論理アドレスを、(別の)変換後の論理アドレスに変換する。MMU123は、変換後の論理アドレスをSDRAM上の物理アドレスに変換する。アクセス回路121は、物理アドレスによってSDRAM200にアクセスする。また、アドレス変換器122(もしくは伸張回路21)は、変換後の論理アドレスによってデータの圧縮の有無を判断する。例えば、伸張回路21は、要求されたアドレスが第1のアドレス領域に含まれる場合にリードデータを伸張し、要求されたアドレスが第2のアドレス領域に含まれる場合にリードデータの伸張を行わない。例えば、第1のアドレス領域の変換後のアドレス領域と、第2のアドレス領域の変換後のアドレス領域を、SDRAM上の同じアドレス領域とすることで、メモリを有効活用することができる。   As shown in FIG. 17, the memory control module 120 of the first or second embodiment further includes an address converter 122 and an MMU (memory management unit) 123. The address converter 122 converts the logical address specified by the command from the arithmetic module 110 into a (different) converted logical address. The MMU 123 converts the converted logical address into a physical address on the SDRAM. The access circuit 121 accesses the SDRAM 200 with a physical address. Further, the address converter 122 (or the decompression circuit 21) determines whether data is compressed based on the converted logical address. For example, the decompression circuit 21 decompresses the read data when the requested address is included in the first address area, and does not decompress the read data when the requested address is included in the second address area. . For example, the memory can be effectively used by making the address area after conversion of the first address area and the address area after conversion of the second address area the same address area on the SDRAM.

本実施の形態では、圧縮データが格納された論理アドレス領域(領域A)は、別の論理アドレス領域(領域B)に再マッピングされており、領域Bにきたアクセスは、アドレス変換器122で領域Aの論理アドレスに変換される。例えば、アドレス変換器122は、変換前の論理アドレスと変換後の論理アドレス(及び圧縮の有無)をマッピングするマッピングテーブルを有する。すなわち、アドレス変換器122は、マッピングテーブルを参照することにより、アドレスの変換/逆変換を行い、また、圧縮データ/非圧縮データを判断する。   In the present embodiment, the logical address area (area A) in which the compressed data is stored is remapped to another logical address area (area B), and an access to the area B is performed by the address converter 122. A is converted to the logical address of A. For example, the address converter 122 has a mapping table that maps a logical address before conversion and a logical address after conversion (and presence / absence of compression). That is, the address converter 122 performs address conversion / inverse conversion by referring to the mapping table, and determines compressed data / uncompressed data.

図18のように、領域Aへのアクセスのリードデータは、アドレス変換器により領域Aからリードされる非圧縮データであると判断されるため、SDRAM200の領域Aのリードデータをそのまま演算モジュール110へ出力する。領域Bへのアクセスのリードデータは、アドレス変換器により領域Aからリードされる圧縮データであると判断されるため、SDRAM200の領域Aのリードデータを伸張回路21で伸張し、伸張したデータを領域Bのデータとして演算モジュール110へ出力する。   As shown in FIG. 18, since the read data for access to the area A is determined to be uncompressed data read from the area A by the address converter, the read data for the area A of the SDRAM 200 is directly sent to the arithmetic module 110. Output. Since the read data for access to the area B is determined to be compressed data read from the area A by the address converter, the read data of the area A of the SDRAM 200 is expanded by the expansion circuit 21, and the expanded data is expanded to the area. B data is output to the arithmetic module 110.

本実施の形態によれば、非圧縮データと圧縮データの切り替えを、リードするときのアドレス領域で指定できる。つまり、メモリからリードするときに,読み出すアドレス領域によって,圧縮データの伸張の有無を切り替えることができる。それにより演算モジュールから出力されるデータが圧縮されているか否かを示すフラグを削除できる。また、再マッピングする領域は複数持つことが可能で、領域毎に圧縮・非圧縮の切り替えの種別を変更することができる。   According to the present embodiment, switching between uncompressed data and compressed data can be specified in the address area when reading. That is, when reading from the memory, whether to decompress the compressed data can be switched depending on the address area to be read. Thereby, the flag indicating whether or not the data output from the arithmetic module is compressed can be deleted. Further, it is possible to have a plurality of areas to be remapped, and the type of switching between compression and non-compression can be changed for each area.

(実施の形態4)
以下、図面を参照して実施の形態4について説明する。本実施の形態は、実施の形態2または3に適用可能であり、実施の形態2または3と圧縮データのマッピングのみが異なる。
(Embodiment 4)
The fourth embodiment will be described below with reference to the drawings. This embodiment is applicable to the second or third embodiment, and differs from the second or third embodiment only in the mapping of compressed data.

図19は、本実施の形態における圧縮データの格納イメージを示しており、図20は、本実施の形態におけるデータのリード動作例を示している。   FIG. 19 shows an image of storing compressed data in the present embodiment, and FIG. 20 shows an example of data read operation in the present embodiment.

図19に示すように、実施の形態2における256バイトから128バイトへの固定長の圧縮手法を用いて、圧縮単位の256バイトの前半128バイトと後半128バイトで、異なるマッピング(領域)の圧縮データを格納する。実施の形態3では領域Aと領域Bを定義したが、本実施の形態では、さらに3つ目の再マッピングした領域Cを定義する。例えば、領域Bを256バイトの前半128バイトにマッピングし、領域Cを256バイトの後半128バイトにマッピングする。つまり、領域Bへのアクセスは256バイト中前半128バイトの圧縮データを伸張し、領域Cへのアクセスは後半128バイトの圧縮データを伸張する。なお、この例では、圧縮単位の256バイトの前半と後半に2つのデータを格納しているが、これに限らず複数のデータを格納してもよい。   As shown in FIG. 19, using the fixed-length compression method from 256 bytes to 128 bytes in the second embodiment, compression of different mappings (areas) in the first 128 bytes and the latter 128 bytes of 256 bytes of the compression unit. Store the data. In the third embodiment, the area A and the area B are defined, but in the present embodiment, a third remapped area C is further defined. For example, the area B is mapped to the first half 128 bytes of 256 bytes, and the area C is mapped to the second half 128 bytes of 256 bytes. That is, the access to the area B decompresses the compressed data of the first half 128 bytes of 256 bytes, and the access to the area C decompresses the compressed data of the second half 128 bytes. In this example, two pieces of data are stored in the first half and the second half of 256 bytes of the compression unit. However, the present invention is not limited to this, and a plurality of pieces of data may be stored.

図20のように、領域Aへのアクセスのリードデータは、領域Aからリードされる通過データ(非圧縮データのように伸張しないデータ)であると判断されるため、SDRAM200の領域Aのリードデータをそのまま演算モジュール110へ出力する。領域Bへのアクセスのリードデータは、領域Aにおける256バイトの前半128バイトからリードされる圧縮データであると判断されるため、SDRAM200の領域Aにおける256バイトの前半128バイトのリードデータ(0〜125、256〜384、512〜640、768〜896のデータ)を伸張回路21で伸張し、伸張したデータを領域Bのデータ(1024〜2048のデータ)として演算モジュール110へ出力する。領域Cへのアクセスのリードデータは、領域Aにおける256バイトの後半128バイトからリードされる圧縮データであると判断されるため、SDRAM200の領域Aにおける256バイトの後半128バイトのリードデータ(128〜256、384〜512、640〜768、896〜1024のデータ)を伸張回路21で伸張し、伸張したデータを領域Cのデータ(2048〜3072のデータ)として演算モジュール110へ出力する。   As shown in FIG. 20, since the read data for access to the area A is determined to be passing data read from the area A (data that does not expand like uncompressed data), the read data for the area A of the SDRAM 200 is read. Is output to the arithmetic module 110 as it is. Since the read data for access to the area B is determined to be compressed data read from the first 128 bytes of 256 bytes in the area A, the first 128 bytes of read data (0 to 256 bytes in the area A of the SDRAM 200). 125, 256 to 384, 512 to 640, and 768 to 896) are decompressed by the decompression circuit 21, and the decompressed data is output to the arithmetic module 110 as region B data (1024 to 2048 data). Since the read data for access to the area C is determined to be compressed data read from the latter 128 bytes of 256 bytes in the area A, the read data (128 to 256 bytes) of the latter 256 bytes in the area A of the SDRAM 200 is determined. 256, 384 to 512, 640 to 768, and 896 to 1024) are decompressed by the decompression circuit 21, and the decompressed data is output to the arithmetic module 110 as data in region C (data from 2048 to 3072).

本実施の形態によれば、複数の領域の圧縮データを、SDRAMの1つの領域に格納するため、伸張後のデータサイズでバッファサイズを2倍にすることができる。また、実施の形態2のようにランダムアクセスが可能であるとともに、実施の形態3のように演算モジュールから出力されるデータが圧縮されているか否かを示すフラグを削除することができる。   According to the present embodiment, since the compressed data of a plurality of areas is stored in one area of the SDRAM, the buffer size can be doubled with the data size after expansion. Further, the random access is possible as in the second embodiment, and the flag indicating whether the data output from the arithmetic module is compressed as in the third embodiment can be deleted.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the embodiments already described, and various modifications can be made without departing from the scope of the invention. It goes without saying that it is possible.

1 データ処理システム
11 圧縮回路
21 伸張回路
91〜93 データ処理システム
100 半導体装置
110 演算モジュール
111 演算器
112 バッファ
120 メモリ制御モジュール
121 アクセス回路
122 アドレス変換器
130 データバス
200 SDRAM
201 圧縮データ
202 非圧縮データ
901〜903 半導体装置
DF デブロックフィルタ
DESCRIPTION OF SYMBOLS 1 Data processing system 11 Compression circuit 21 Expansion circuit 91-93 Data processing system 100 Semiconductor device 110 Arithmetic module 111 Arithmetic unit 112 Buffer 120 Memory control module 121 Access circuit 122 Address converter 130 Data bus 200 SDRAM
201 Compressed data 202 Uncompressed data 901 to 903 Semiconductor device DF Deblock filter

Claims (15)

演算モジュールとメモリ制御モジュールとを備え、
前記演算モジュールは、
演算処理を実行する演算処理部と、
前記演算処理結果のデータを圧縮する圧縮部と、
を備え、
前記メモリ制御モジュールは、
前記圧縮されたデータをメモリに書き込み、前記書き込まれたデータを前記メモリから読み出すアクセス部と、
前記メモリから読み出されたデータを伸張し、前記伸張されたデータを前記演算モジュールへ出力する伸張部と、
を備える半導体装置。
Comprising an arithmetic module and a memory control module,
The arithmetic module is
An arithmetic processing unit for executing arithmetic processing;
A compression unit for compressing the data of the arithmetic processing result;
With
The memory control module is
An access unit for writing the compressed data to a memory and reading the written data from the memory;
A decompression unit for decompressing data read from the memory and outputting the decompressed data to the arithmetic module;
A semiconductor device comprising:
前記演算処理結果のデータを圧縮処理単位のデータに変換する変換部を備え、
前記圧縮部は、前記圧縮処理単位のデータを圧縮する、
請求項1に記載の半導体装置。
A conversion unit that converts the data of the arithmetic processing result into data of a compression processing unit;
The compression unit compresses the data of the compression processing unit;
The semiconductor device according to claim 1.
前記変換部は、前記演算処理結果のデータを所定の長さでアドレスが連続する構造のデータに変換する、
請求項2に記載の半導体装置。
The conversion unit converts the data of the operation processing result into data having a structure in which addresses are continuous with a predetermined length.
The semiconductor device according to claim 2.
前記変換部は、前記演算処理結果のデータを前記圧縮処理単位に格納するバッファである、
請求項2に記載の半導体装置。
The conversion unit is a buffer that stores data of the calculation processing result in the compression processing unit.
The semiconductor device according to claim 2.
前記演算処理部は、前記演算処理の処理単位順にアドレスが不連続のデータを出力し、
前記バッファは、前記出力されたデータのアドレスが連続するように前記データを格納する、
請求項4に記載の半導体装置。
The arithmetic processing unit outputs data with discontinuous addresses in the order of processing units of the arithmetic processing,
The buffer stores the data so that the addresses of the output data are continuous.
The semiconductor device according to claim 4.
前記伸張部は、前記メモリから読み出されたデータが圧縮されている場合、前記データを伸張する、
請求項1に記載の半導体装置。
The decompression unit decompresses the data when the data read from the memory is compressed;
The semiconductor device according to claim 1.
前記演算処理部は、前記メモリからデータを読み出す場合、メモリ読み出しコマンドとともにデータの圧縮または非圧縮を示すフラグを出力し、
前記伸張部は、前記メモリから読み出されたデータが圧縮されている場合、前記フラグに基づいて前記データを伸張する、
請求項6に記載の半導体装置。
The arithmetic processing unit, when reading data from the memory, outputs a flag indicating compression or non-compression of data together with a memory read command,
The decompression unit decompresses the data based on the flag when the data read from the memory is compressed;
The semiconductor device according to claim 6.
前記圧縮部は、データを所定の圧縮単位で圧縮し、前記圧縮単位の先頭アドレスを圧縮前と同じアドレスとして前記圧縮したデータを前記メモリへ書き込む、
請求項1に記載の半導体装置。
The compression unit compresses data in a predetermined compression unit, and writes the compressed data to the memory with the start address of the compression unit as the same address as before compression.
The semiconductor device according to claim 1.
前記メモリ制御モジュールは、前記演算モジュールから要求されたアドレスを変換するアドレス変換部を備え、
前記アクセス部は、前記変換されたアドレスで前記メモリへアクセスする、
請求項1に記載の半導体装置。
The memory control module includes an address conversion unit that converts an address requested from the arithmetic module;
The access unit accesses the memory with the converted address.
The semiconductor device according to claim 1.
前記伸張部は、前記要求されたアドレスが第1のアドレス領域に含まれる場合に前記データを伸張し、前記要求されたアドレスが第2のアドレス領域に含まれる場合に前記データの伸張を行わない、
請求項9に記載の半導体装置。
The decompression unit decompresses the data when the requested address is included in a first address area, and does not decompress the data when the requested address is included in a second address area. ,
The semiconductor device according to claim 9.
前記第1のアドレス領域の変換後のアドレス領域と、前記第2のアドレス領域の変換後のアドレス領域は、前記メモリ上の同じアドレス領域に含まれる、
請求項10に記載の半導体装置。
The converted address area of the first address area and the converted address area of the second address area are included in the same address area on the memory.
The semiconductor device according to claim 10.
前記圧縮部は、データを所定の圧縮単位で圧縮し、前記圧縮単位のデータを前記メモリへ書き込むよう要求し、
前記アドレス変換部は、複数の前記圧縮単位のデータが前記メモリ上の同じアドレス領域に含まれるように前記アドレスを変換する、
請求項9に記載の半導体装置。
The compression unit compresses data in a predetermined compression unit, requests to write the data in the compression unit to the memory,
The address conversion unit converts the address so that a plurality of data of the compression unit is included in the same address area on the memory.
The semiconductor device according to claim 9.
前記伸張部は、前記要求されたアドレスが第1のアドレス領域に含まれる場合に前記メモリ上のアドレス領域のうち第1のメモリ領域のデータを伸張し、前記要求されたアドレスが第2のアドレス領域に含まれる場合に前記メモリ上のアドレス領域のうち第2のメモリ領域のデータを伸張する、
請求項12に記載の半導体装置。
The decompression unit decompresses data in a first memory area in the address area on the memory when the requested address is included in a first address area, and the requested address is a second address. Decompressing data in the second memory area of the address area on the memory when included in the area;
The semiconductor device according to claim 12.
半導体装置と前記半導体装置のデータを記憶するメモリとを備えたデータ処理システムであって、
前記半導体装置は、演算モジュールとメモリ制御モジュールとを備え、
前記演算モジュールは、
演算処理を実行する演算処理部と、
前記演算処理結果のデータを圧縮する圧縮部と、
を備え、
前記メモリ制御モジュールは、
前記圧縮されたデータを前記メモリに書き込み、前記書き込まれたデータを前記メモリから読み出すアクセス部と、
前記メモリから読み出されたデータを伸張し、前記伸張されたデータを前記演算モジュールへ出力する伸張部と、
を備えるデータ処理システム。
A data processing system comprising a semiconductor device and a memory for storing data of the semiconductor device,
The semiconductor device includes an arithmetic module and a memory control module,
The arithmetic module is
An arithmetic processing unit for executing arithmetic processing;
A compression unit for compressing the data of the arithmetic processing result;
With
The memory control module is
An access unit for writing the compressed data to the memory and reading the written data from the memory;
A decompression unit for decompressing data read from the memory and outputting the decompressed data to the arithmetic module;
A data processing system comprising:
演算モジュールとメモリ制御モジュールとを備えた半導体装置の制御方法であって、
前記演算モジュールは、
演算処理を実行し、
前記演算処理結果のデータを圧縮し、
前記メモリ制御モジュールは、
前記圧縮されたデータをメモリに書き込み、前記書き込まれたデータを前記メモリから読み出し、
前記メモリから読み出されたデータを伸張し、前記伸張されたデータを前記演算モジュールへ出力する、
半導体装置の制御方法。
A method for controlling a semiconductor device comprising an arithmetic module and a memory control module,
The arithmetic module is
Execute arithmetic processing,
Compress the data of the arithmetic processing result,
The memory control module is
Writing the compressed data to a memory, reading the written data from the memory,
Decompressing the data read from the memory and outputting the decompressed data to the arithmetic module;
A method for controlling a semiconductor device.
JP2015232944A 2015-11-30 2015-11-30 Semiconductor device Active JP6679290B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015232944A JP6679290B2 (en) 2015-11-30 2015-11-30 Semiconductor device
CN201610959313.9A CN106980465B (en) 2015-11-30 2016-11-03 Semiconductor device, data processing system, and semiconductor device control method
EP16199111.2A EP3174294A1 (en) 2015-11-30 2016-11-16 Reference buffer compression
US15/355,322 US10459646B2 (en) 2015-11-30 2016-11-18 Semiconductor device, data processing system, and semiconductor device control method
KR1020160158509A KR20170063384A (en) 2015-11-30 2016-11-25 Semiconductor device, data processing system, and semiconductor device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015232944A JP6679290B2 (en) 2015-11-30 2015-11-30 Semiconductor device

Publications (2)

Publication Number Publication Date
JP2017102524A true JP2017102524A (en) 2017-06-08
JP6679290B2 JP6679290B2 (en) 2020-04-15

Family

ID=57754910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015232944A Active JP6679290B2 (en) 2015-11-30 2015-11-30 Semiconductor device

Country Status (5)

Country Link
US (1) US10459646B2 (en)
EP (1) EP3174294A1 (en)
JP (1) JP6679290B2 (en)
KR (1) KR20170063384A (en)
CN (1) CN106980465B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194491B2 (en) 2018-12-25 2021-12-07 Renesas Electronics Corporation Semiconductor device and a method for controlling accessing data

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324656B1 (en) * 2016-07-29 2019-06-18 EMC IP Holding Company LLC Application-aware control for data services
JP2019061631A (en) * 2017-09-28 2019-04-18 ルネサスエレクトロニクス株式会社 Semiconductor device and memory access method
JP7257772B2 (en) * 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 System using semiconductor device
CN114168085B (en) * 2021-12-16 2024-02-20 潍柴动力股份有限公司 Variable processing method, device, equipment and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3037144B2 (en) 1996-07-09 2000-04-24 神戸日本電気ソフトウェア株式会社 Data compression storage arithmetic unit
WO2004092960A2 (en) * 2003-04-16 2004-10-28 Koninklijke Philips Electronics N.V. Selectable procession / decompression for data stored in memory
US8001294B2 (en) 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
JP4384130B2 (en) * 2006-03-28 2009-12-16 株式会社東芝 Video decoding method and apparatus
US7801223B2 (en) * 2006-07-27 2010-09-21 Lsi Corporation Method for video decoder memory reduction
JP5194703B2 (en) 2007-10-16 2013-05-08 ソニー株式会社 Data processing apparatus and shared memory access method
WO2012039002A1 (en) * 2010-09-21 2012-03-29 Hitachi, Ltd. Semiconductor storage device and data control method thereof
US8781000B2 (en) 2010-12-30 2014-07-15 Vixs Systems, Inc. Dynamic video data compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11194491B2 (en) 2018-12-25 2021-12-07 Renesas Electronics Corporation Semiconductor device and a method for controlling accessing data
US11687261B2 (en) 2018-12-25 2023-06-27 Renesas Electronics Corporation Semiconductor device and a method for controlling accessing data

Also Published As

Publication number Publication date
KR20170063384A (en) 2017-06-08
US10459646B2 (en) 2019-10-29
EP3174294A1 (en) 2017-05-31
CN106980465A (en) 2017-07-25
JP6679290B2 (en) 2020-04-15
US20170153838A1 (en) 2017-06-01
CN106980465B (en) 2021-06-29

Similar Documents

Publication Publication Date Title
JP6679290B2 (en) Semiconductor device
JP5969914B2 (en) Video compression / decompression device
US8781000B2 (en) Dynamic video data compression
US9894371B2 (en) Video decoder memory bandwidth compression
US20140086309A1 (en) Method and device for encoding and decoding an image
JP6415016B2 (en) Image coding apparatus, image coding method, and program
TWI487380B (en) A data processing device, a video coding / decoding device and a data processing system
US20170365033A1 (en) Image processing device
JP2019080291A (en) Data processing apparatus and data processing method
JP5526641B2 (en) Memory controller
US20190095338A1 (en) Semiconductor device, data processing system, and semiconductor device control method
JP2009130599A (en) Moving picture decoder
JP5731816B2 (en) Image processing apparatus and image processing method
TWI565303B (en) Image processing system and image processing method
WO2010095181A1 (en) Variable-length decoding device
CN101754034A (en) Uncompressing system of discrete cosine transform compression diagram data with transparent attribute and method
JP2014045290A (en) Image output device, image processing apparatus, image output control method and image output control program
JP2015122584A (en) Image processing device and control method thereof
JP2006174429A (en) Video decoder and operation method
JP2003244725A (en) Image processing apparatus

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200318

R150 Certificate of patent or registration of utility model

Ref document number: 6679290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150