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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/544—Indexing 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
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.
様々な演算処理を行う半導体装置では、演算処理に対応して最適な構成で圧縮及び伸張を行うことが望まれる。このため、一実施の形態では、より適切に圧縮及び伸張を行うことを一つの課題とする。 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.
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、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,
複数の演算モジュール110は、演算処理を行う演算部であり、その機能を実現するためそれぞれ演算器111(111_A〜111_C)を備えている。メモリ制御モジュール120は、演算モジュール110からの要求にしたがってSDRAM200の書き込み/読み出しを制御する制御部であり、その機能を実現するためアクセス回路121を備えている。複数の演算器111は、データバス130及びメモリ制御モジュール120を介して、SDRAM200へデータを格納し、SDRAM200からデータを読み出したりする。なお、SDRAM200は、半導体装置のデータを記憶するメモリの一例であり、その他の記憶装置であってもよい。
The plurality of
半導体装置901〜903は、さらに、演算結果のデータを圧縮する圧縮回路11、圧縮されたデータを伸張する伸張回路21を備えている。半導体装置901〜903は、この圧縮回路11と伸張回路21の配置が異なる例である。
The
図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
各演算器111からは、その演算処理の特性に応じた出力データが出力される。つまり演算器毎に、出力データの転送開始のアドレス位置や、転送長、データのフォーマット(連続するのか、離散するのか)が異なる。基本例1や基本例2のように、圧縮回路11及び伸張回路21が、データバス130やメモリ制御モジュール120と1対1の関係にある場合、圧縮回路11はすべての演算器111の出力を圧縮する必要がある。そうすると、圧縮効率を高くすることができない。すなわち、演算器毎に出力の特性が異なるにもかかわらず同じ圧縮回路で圧縮するため、圧縮に適したデータ構造で圧縮することができず、圧縮効率が低くなるという問題がある。
Each
また、図3に示すように、基本例3の半導体装置903では、圧縮回路11及び伸張回路21が各演算モジュール110の内部に設けられており、圧縮回路11及び伸張回路21と演算器111とが1対1の関係にある。基本例3のように、圧縮回路11及び伸張回路21が各演算器111と1対1にある場合でも、圧縮効率を高くすることができない。なぜならば、演算結果のデータを他の演算器で使用する場合、データを他の演算器で伸張できるようにするには、共通のデータ構造で圧縮する必要がある。そうすると、演算器毎の出力に合わせて圧縮することができないため、上記と同様の問題が発生する。
As shown in FIG. 3, in the
また、基本例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
さらにまた、記憶装置として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
(実施の形態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
このように、本実施の形態では、演算部(演算モジュール)とメモリ制御部(メモリ制御モジュール)から構成されるデータ処理システムにおいて、演算部は、データ出力時に圧縮を行う圧縮回路を有し、メモリ制御部は、メモリからリードされたデータを伸張する(データが圧縮データの場合に伸張する)伸張回路を有することを一つの特徴としている。演算部に圧縮回路を備えることで、演算器のデータに合わせて圧縮を行うことができる。メモリ制御部の伸張回路により、圧縮データを伸張してから各演算部に送信するため、全ての演算部がメモリに格納される圧縮データと非圧縮データの両方を利用することが可能となる。全ての演算部に伸張回路を備える必要がないため、回路面積の増大を抑えることができる。 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
半導体装置100は、各演算モジュール110側に、演算器111、バッファ112、圧縮回路11を備えている。バッファ112は、演算処理結果のデータを圧縮処理単位のデータに変換する変換部であり、演算器111からの演算結果である出力データを圧縮に適した圧縮データ構造となるように保持し、保持した圧縮データ構造のデータを圧縮回路11へ転送する。圧縮回路11は、入力されたデータを圧縮し、データバス130を通じて、メモリ制御モジュール120へ転送する。メモリ制御モジュール120は、転送された圧縮データ201を外部のSDRAM200へ保存する。メモリ制御モジュール120に伸張回路21が配置され、SDRAM200からリードされたデータが、圧縮データ201のときは伸張してから、データバス130へ送付する。リード要求元の演算モジュール110から、データが圧縮されているか、圧縮されていなかを示す制御信号が、メモリ制御モジュール120へ送付される。
The
図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
例えば、演算モジュール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
演算モジュール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
演算モジュール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
演算モジュール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
<実施の形態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
しかし、演算器111から出力されるデータは、必ずしもデータ圧縮に適した構造になっているとは限らない。つまり、演算器111の処理の都合やデータの特性によって、演算器111から出力されるデータの順番がSDRAM200におけるバッファのアドレス順と一致しない場合がある。この場合、アドレスが不連続になる箇所でデータが細分化されてしまうため、効率よく圧縮することができない。そこで、本実施の形態では、演算器111の出力を直接圧縮するのではなく、一度バッファ112へ格納し、バッファ112において圧縮に適した構造(一定長でアドレスが連続する構造)に変換してから、圧縮回路11で圧縮を行う。
However, the data output from the
以下の例では、演算器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
例えば、演算器111は、エントロピー復号化、逆量子化・逆変換によりデコードを行い、ループ内フィルタとしてデブロックフィルタDFがデコードの最後に使用される。このため、演算器111から出力されるH.265のデコード画像はデブロックフィルタ処理後のデータとなる。つまり、デブロックフィルタ処理の終わったデータから順に、SDARM上のバッファに格納可能となる。デブロックフィルタDFが処理する画像上の位置の順番はH.265規格で定められており、その結果、演算器111がデータを出力する順番は、画像内の処理する位置に依存して変化する。
For example, the
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
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
つまり、まず、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
本実施の形態では、図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
図9に示すように、バッファ112は、2バンクで構成されおり、バンクBK0とバンクBK1を備えている。バンクBK0及びBK1は、物理的に2つに分かれている必要はなく、1つの物理的なバッファの前半/後半それぞれをバンクBK0及びBK1として使用してもよい。バンクBK0及びBK1はそれぞれ同じサイズであり、バンクあたり最大で64×68画素のデータを格納できる。
As shown in FIG. 9, the
バンク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
まず、最初の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
次に、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
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
圧縮回路11は、バッファ112から受け取った連続データOLを圧縮する。圧縮回路11の圧縮は、伸張回路21で伸張可能であれば任意の方式でよい。例えば、DPCM(differential pulse code modulation)や、可逆圧縮、非可逆圧縮でもよい。圧縮回路11は、データ圧縮後、データバス130を経由し、メモリ制御モジュール120に圧縮データを送付する。メモリ制御モジュール120は,受け取った圧縮データをSDRAM200上のバッファへ格納する。
The
バンク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
なお、この例では、説明を簡易にするため、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
図6に示したように、メモリ制御モジュール120には、圧縮データを伸張する伸張回路21が配置される。リード要求元の演算モジュール110は、メモリ制御モジュール120へ、リードのコマンドの他に、今から読むデータが圧縮されているか否かを示すフラグも送付する。メモリ制御モジュール120(アクセス回路121)は、リードコマンドにしたがってSDRAM200からデータをリードし、コマンドのフラグを参照して、圧縮データではない場合、SDRAM200からのリードデータを、そのまま演算モジュール110に送付する。また、コマンドのフラグにより圧縮データである場合、メモリ制御モジュール120内の伸張回路21にリードデータを送り、伸張後のデータを演算モジュール110に送付する。演算モジュール110(演算器)がフラグを指定することで、演算モジュール110(演算器)の制御に応じて圧縮データ201または非圧縮データ202をリードすることができる。
As shown in FIG. 6, the
<実施の形態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
そこで、本実施の形態では、図16に示すように、圧縮回路11は、圧縮後のデータを、非圧縮(圧縮前)と同じ256バイトの先頭アドレスから格納する。つまり、圧縮データをSDRAM200に格納するとき、圧縮単位である256バイト単位の先頭アドレスは変更せずに、圧縮データ分のみ格納する。
Therefore, in the present embodiment, as shown in FIG. 16, the
このように、本実施の形態では、圧縮データの格納されるアドレスが、非圧縮時のアドレスと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
図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
本実施の形態では、圧縮データが格納された論理アドレス領域(領域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
図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
本実施の形態によれば、非圧縮データと圧縮データの切り替えを、リードするときのアドレス領域で指定できる。つまり、メモリからリードするときに,読み出すアドレス領域によって,圧縮データの伸張の有無を切り替えることができる。それにより演算モジュールから出力されるデータが圧縮されているか否かを示すフラグを削除できる。また、再マッピングする領域は複数持つことが可能で、領域毎に圧縮・非圧縮の切り替えの種別を変更することができる。 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
図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の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
201
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.
請求項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.
請求項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.
請求項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.
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)
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)
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)
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 |
-
2015
- 2015-11-30 JP JP2015232944A patent/JP6679290B2/en active Active
-
2016
- 2016-11-03 CN CN201610959313.9A patent/CN106980465B/en active Active
- 2016-11-16 EP EP16199111.2A patent/EP3174294A1/en not_active Withdrawn
- 2016-11-18 US US15/355,322 patent/US10459646B2/en active Active
- 2016-11-25 KR KR1020160158509A patent/KR20170063384A/en unknown
Cited By (2)
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 |