JP4529600B2 - MEMORY AND PROCESSOR HAVING MEMORY - Google Patents

MEMORY AND PROCESSOR HAVING MEMORY Download PDF

Info

Publication number
JP4529600B2
JP4529600B2 JP2004261922A JP2004261922A JP4529600B2 JP 4529600 B2 JP4529600 B2 JP 4529600B2 JP 2004261922 A JP2004261922 A JP 2004261922A JP 2004261922 A JP2004261922 A JP 2004261922A JP 4529600 B2 JP4529600 B2 JP 4529600B2
Authority
JP
Japan
Prior art keywords
value
memory
function
binary number
bit
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.)
Active
Application number
JP2004261922A
Other languages
Japanese (ja)
Other versions
JP2006079310A (en
Inventor
修二 宮阪
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004261922A priority Critical patent/JP4529600B2/en
Publication of JP2006079310A publication Critical patent/JP2006079310A/en
Application granted granted Critical
Publication of JP4529600B2 publication Critical patent/JP4529600B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、オーディオのデジタル信号処理を行うために必要なデータを格納する為のメモリに関する。特にキャッシュメモリを介して当該データにアクセスする際に、アクセス範囲ができるだけ狭くなるようにデータが配置されているメモリに関する。また、そのようなメモリを備えたプロセッサに関する。   The present invention relates to a memory for storing data necessary for audio digital signal processing. In particular, the present invention relates to a memory in which data is arranged so that an access range becomes as narrow as possible when the data is accessed via a cache memory. The present invention also relates to a processor provided with such a memory.

近年MPEGオーディオ方式の符号化、復号化処理において、大規模なデータを用いる演算が行われている。例えば、MPEGオーディオAAC方式では、入力値xに対して、x^a(xのa乗:aは定数)の演算が必要であり、この処理を高速に行う為に、テーブルメモリが用いられる。すなわち、入力値xに対して、xをアドレスとした領域にx^aの値が格納されたテーブルメモリから値を取り出すことで所望の結果を得るということである。しかしながらこのような方法ではあまりにも大規模なメモリが必要であるので、メモリサイズを削減する為に工夫がなされている(例えば、特許文献1参照)。以下図3、図4、図5、図7を用いて従来の技術を説明する。下記において、Nは10である。   In recent years, calculations using large-scale data have been performed in MPEG audio encoding and decoding processes. For example, the MPEG audio AAC system requires an operation of x ^ a (x to the power of a: a is a constant) for the input value x, and a table memory is used to perform this processing at high speed. That is, for the input value x, a desired result is obtained by extracting the value from the table memory in which the value of x ^ a is stored in the area where x is an address. However, such a method requires an excessively large memory, and therefore, a device has been devised to reduce the memory size (see, for example, Patent Document 1). The prior art will be described below with reference to FIGS. 3, 4, 5, and 7. FIG. In the following, N is 10.

まず、図3は、N+1桁の2進数であるところの入力値zを表している。入力値zは、N+1桁の2進数の全変域を取りうるが、図3では、一例として、入力値zは4桁の値であるとする。つまり、上位側のビットは「0」であり(白の四角で表現)下から4桁目以降に値がある(色のついた四角で表現)。ここで、下から4桁目は、値が「1」であることに注意されたい。   First, FIG. 3 shows an input value z which is an N + 1 digit binary number. The input value z can take the entire N + 1-digit binary range, but in FIG. 3, as an example, the input value z is assumed to be a 4-digit value. That is, the upper bit is “0” (represented by a white square) and has a value after the fourth digit from the bottom (represented by a colored square). Note that the fourth digit from the bottom is “1”.

次に図4は、テーブルメモリを引く前準備の過程を示しており、入力値zを正規化している様子を示している。すなわち、入力値zの大きさに応じて、p桁シフトアップすることであり、入力値zの最も上位にある「1」、この場合下から4ビット目の「1」にあたるが、それが最上位ビットに来るようにシフトアップする。   Next, FIG. 4 shows a preparatory process for drawing the table memory, and shows how the input value z is normalized. In other words, the input value z is shifted up by p digits according to the magnitude of the input value z, which is “1” at the top of the input value z, in this case “1” at the fourth bit from the bottom. Shift up to come to the upper bits.

次に図5は、実際にテーブルメモリを引く為のアドレスを確定する過程を示している。すなわち、図4で生成されたビットパタンの中で、最上位ビットは値が必ず「1」であるので、削除しても情報は欠落しないので、テーブルメモリを引く為のアドレスとして削除している。   Next, FIG. 5 shows a process of determining an address for actually retrieving the table memory. That is, in the bit pattern generated in FIG. 4, since the value of the most significant bit is always “1”, no information is lost even if it is deleted, so it is deleted as an address for subtracting the table memory. .

このようにして生成されたビットパタンをアドレスとして、テーブルメモリを引くが、当該テーブルメモリは、図7に示すようなデータが格納されている。すなわち、アドレスがtである位置には、((1<<N)+t)^aが格納されている。ここで、(1<<N)をtに加えている理由は、アドレス値tは、前述のように、最上位ビットが削除されているので、それをおぎなっている訳である。このようなテーブルの持ち方をすることで、アドレスが1ビット減るので、テーブルメモリのサイズは1/2に削減できる。   The table memory is drawn using the bit pattern generated in this way as an address, and the table memory stores data as shown in FIG. That is, ((1 << N) + t) ^ a is stored at the position where the address is t. Here, the reason why (1 << N) is added to t is that the address value t has been deleted because the most significant bit has been deleted as described above. By holding such a table, the address is reduced by 1 bit, so that the size of the table memory can be reduced to ½.

さてここで、上記のようにテーブルメモリから取り出された値は、そもそもの入力値zを、2^pした値に対してa乗の処理を施した値であるので、以下の補正が必要である。すなわち、上記のようにテーブルメモリから取り出された値をTとした時、T*(2^(‐pa))の補正をした結果が、求める値となる。
米国特許第6304890号明細書
Now, since the value extracted from the table memory as described above is a value obtained by subjecting the original input value z to 2 ^ p and a power of a, the following correction is necessary. is there. That is, when the value extracted from the table memory as described above is T, the result obtained by correcting T * (2 ^ (-pa)) is the calculated value.
US Pat. No. 6,304,890

しかしながら、上記のような方法では、テーブルメモリにアクセスする際のアドレス値の上位ビット側に0でない値が配置される確率が高くなるので、当該テーブルメモリの全領域に渡って同じような頻度でアクセスが行われることになり、当該テーブルメモリがキャッシュメモリを介してアクセスされるような場合、キャッシュのミスヒットが頻繁に発生するという課題があった。   However, in the method as described above, since the probability that a non-zero value is arranged on the upper bit side of the address value when accessing the table memory is increased, the same frequency is used over the entire area of the table memory. When access is performed and the table memory is accessed via the cache memory, there is a problem that cache misses frequently occur.

上記と同じような課題が、三角関数を用いた信号処理においても生じる。例えばFFTの処理では、位相角θ=i*π/A(Aは2の冪乗数、iは0以上A未満の整数)において、Aが比較的小さな値である時のθに対する三角関数値(複素単位円e^(jθ))が高い頻度で用いられる。例えば、位相角が、0、π/2、π/4、2π/4、3π/4、のような場合の三角関数値が高い頻度で用いられる。ここでもしこのような三角関数値を位相角の小さい方から順番に(或いは大きい方から順番に)テーブルメモリに格納していたら、飛び飛びの領域を広くアクセスすることになるので、当該テーブルメモリがキャッシュメモリを介してアクセスされるような場合、キャッシュのミスヒットが頻繁に発生するという課題があった。   The same problem as described above also occurs in signal processing using trigonometric functions. For example, in the FFT processing, a trigonometric function value for θ when A is a relatively small value at a phase angle θ = i * π / A (A is a power of 2 and i is an integer not less than 0 and less than A) ( The complex unit circle e ^ (jθ)) is used with high frequency. For example, a trigonometric function value is used at a high frequency when the phase angle is 0, π / 2, π / 4, 2π / 4, 3π / 4, or the like. Here, if such trigonometric function values are stored in the table memory in order from the smallest phase angle (or in order from the largest), the jump area is accessed widely. When accessed via a cache memory, there has been a problem that cache misses frequently occur.

本発明は、このような従来の問題点に鑑みてなされたものであって、キャッシュメモリを介してアクセスされるメモリのアクセス範囲ができるだけ狭くなるようにデータが配置されているメモリ、或いは当該メモリを備えたプロセッサを提供することを目的とするものである。   The present invention has been made in view of such a conventional problem, and a memory in which data is arranged so that an access range of a memory accessed through a cache memory is as narrow as possible, or the memory It aims at providing the processor provided with.

上記の課題を解決するため、本願の請求項1記載の発明は、N桁の2進数であるところの値xに対し、関数F(x)の値を格納するメモリであって、前記値xの下位側のビットを上位側に配置することによって得られるN桁の2進数yをアドレスとする位置に、前記値xに対応する関数F(x)の値が格納されていることを特徴とするものである。   In order to solve the above problem, the invention according to claim 1 of the present application is a memory for storing a value of a function F (x) for a value x which is an N-digit binary number, and the value x The value of the function F (x) corresponding to the value x is stored at a position where the address is an N-digit binary number y obtained by placing the lower-order bits in the higher-order side. To do.

本願の請求項2記載の発明は、請求項1記載のメモリであって、前記値xは、N+1桁の2進数であるところの値zを正規化して得られる値z’から最上位ビットを削除して得られるN桁の2進数であり、前記関数F(x)は、x+(1<<N)の値に対し所定の処理を行うことを特徴とするものである。   The invention according to claim 2 of the present application is the memory according to claim 1, wherein the value x is obtained by normalizing the value z which is a binary number of N + 1 digits from the value z ′ obtained by normalizing the value z ′. It is an N-digit binary number obtained by deletion, and the function F (x) is characterized by performing a predetermined process on the value of x + (1 << N).

本願の請求項3記載の発明は、請求項1または請求項2記載のメモリであって、前記関数F(x)は、x+(1<<N)のa乗を与える関数であることを特徴とするものである。   Invention of Claim 3 of this application is the memory of Claim 1 or Claim 2, Comprising: The said function F (x) is a function which gives the a power of x + (1 << N), It is characterized by the above-mentioned. It is what.

本願の請求項4記載の発明は、請求項1記載のメモリであって、θを0以上π未満の変域を持つ位相角とした時、前記値xは前記θを表現する値であり、(1<<N)*θ/πの値をN桁の2進数で表現した値であることを特徴とするものである。   The invention according to claim 4 of the present application is the memory according to claim 1, wherein when θ is a phase angle having a domain of 0 or more and less than π, the value x is a value expressing the θ, The value of (1 << N) * θ / π is represented by an N-digit binary number.

本願の請求項5記載の発明は、請求項4記載のメモリであって、前記関数F(x)は、前記値xが表す前記θに対する三角関数を与える関数であることを特徴とするものである。   The invention according to claim 5 of the present application is the memory according to claim 4, wherein the function F (x) is a function that gives a trigonometric function for the θ represented by the value x. is there.

本願の請求項6記載の発明は、請求項4記載のメモリであって、前記関数F(x)は、前記値xが表す前記θに対する複素数e^(jθ)(jは虚数単位)を与える関数であることを特徴とするものである。   The invention according to claim 6 of the present application is the memory according to claim 4, wherein the function F (x) gives a complex number e ^ (jθ) (j is an imaginary number unit) for the θ represented by the value x. It is characterized by being a function.

本願の請求項7記載の発明は、請求項1から請求項6の何れかに記載のメモリであって、前記2進数yは、前記値xのビット位置逆順処理によって得られる値であることを特徴とするものである。   The invention according to claim 7 of the present application is the memory according to any one of claims 1 to 6, wherein the binary number y is a value obtained by bit position reverse order processing of the value x. It is a feature.

本願の請求項8記載の発明は、請求項1から請求項7の何れかに記載のメモリであって、キャッシュメモリを更に備え、前記キャッシュメモリを介してデータにアクセスすることを特徴とするものである。   The invention according to claim 8 of the present application is the memory according to any one of claims 1 to 7, further comprising a cache memory, wherein data is accessed via the cache memory. It is.

本願の請求項9記載の発明は、前記請求項1から請求項8の何れかに記載のメモリを備えたプロセッサであって、入力値xの下位側のビットを上位側に配置することによって得られるN桁2進数yを生成するビット入れ替え手段と、前記N桁2進数yをアドレスとして前記メモリからデータを取り出すデータ取り出し手段と、取り出されたデータを用いて所定の演算を行う演算手段とを有することを特徴とするものである。   The invention according to claim 9 of the present application is a processor including the memory according to any one of claims 1 to 8, which is obtained by arranging the lower-order bits of the input value x on the upper-order side. Bit exchanging means for generating an N-digit binary number y, data fetching means for fetching data from the memory using the N-digit binary number y as an address, and computing means for performing a predetermined computation using the fetched data It is characterized by having.

請求項1の発明によれば、xの下位側のビットが所定の値になる確率が高い場合、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the first aspect of the present invention, when there is a high probability that the lower-order bit of x will be a predetermined value, it is possible to narrow the frequently accessed area of the memory storing the value of the function F (x). .

請求項2の発明によれば、関数F(x)の値を格納するメモリのサイズを1/2にすることができ、しかも、アクセス頻度の高い領域を狭めることができることとなる。   According to the invention of claim 2, the size of the memory for storing the value of the function F (x) can be halved, and the area with high access frequency can be narrowed.

請求項3の発明によれば、関数F(x)が、冪乗を与える関数である場合に、関数F(x)の値を格納するメモリのサイズを1/2にすることができ、しかも、アクセス頻度の高い領域を狭めることができることとなる。   According to the invention of claim 3, when the function F (x) is a function that gives a power, the size of the memory for storing the value of the function F (x) can be halved. Therefore, it is possible to narrow the area with high access frequency.

請求項4の発明によれば、F(x)が、位相角を扱う関数である場合に、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the fourth aspect of the present invention, when F (x) is a function that handles the phase angle, it is possible to narrow a memory area that frequently stores the value of the function F (x).

請求項5の発明によれば、F(x)が、三角関数を扱う関数である場合に、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the fifth aspect of the present invention, when F (x) is a function that handles a trigonometric function, it is possible to narrow a frequently accessed area of the memory that stores the value of the function F (x).

請求項6の発明によれば、F(x)が、複素数e^(jθ)(jは虚数単位)を扱う関数である場合に、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the sixth aspect of the present invention, when F (x) is a function that handles a complex number e ^ (jθ) (j is an imaginary unit), the access frequency of the memory that stores the value of the function F (x) The high area can be narrowed.

請求項7の発明によれば、単純なビット位置逆順処理によって、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the seventh aspect of the present invention, it is possible to narrow a frequently accessed area of the memory storing the value of the function F (x) by simple bit position reverse order processing.

請求項8の発明によれば、キャッシュメモリのミスヒットの確率が減ることとなる。   According to the invention of claim 8, the probability of a miss hit in the cache memory is reduced.

請求項9の発明によれば、所定に信号処理を行うプロセッサにおいて、関数F(x)の値を格納するメモリのアクセス頻度の高い領域を狭めることができることとなる。   According to the ninth aspect of the present invention, in a processor that performs predetermined signal processing, it is possible to narrow a frequently accessed area of a memory that stores the value of the function F (x).

(実施の形態1)
以下本発明の実施の形態1におけるメモリ及び当該メモリを用いたプロセッサについて図面を参照しながら説明する。
(Embodiment 1)
Hereinafter, a memory and a processor using the memory according to the first embodiment of the present invention will be described with reference to the drawings.

図1は本実施の形態1におけるプロセッサの構成を示す図である。図1において、100は、N桁の2進数であるところの値xに対し、関数F(x)の値を格納するメモリ、101は、N+1桁の2進数で表現できる入力値zを、当該入力値zの大きさに応じて正規化する正規化手段、102は、前記正規化手段101によって正規化された値から最上位ビットを削除して、下位のNビットを切り出すことによって、N桁で表現できる値xを生成するビット切り出し手段、103は、前記N桁で表現できる値xの下位側のビットを上位側に配置することによってえられるN桁2進数yを生成するビット入れ替え手段、104は、前記N桁2進数yをアドレスとしてメモリからデータを取り出すデータ取り出し手段、105は、前記取り出されたデータを用いて所定の演算を行う演算手段である。   FIG. 1 is a diagram showing a configuration of a processor according to the first embodiment. In FIG. 1, 100 is a memory for storing the value of the function F (x) with respect to a value x that is an N-digit binary number, and 101 is an input value z that can be expressed by an N + 1-digit binary number. A normalizing unit that normalizes the input value z according to the magnitude of the input value z, deletes the most significant bit from the value normalized by the normalizing unit 101, and cuts out the lower N bits to obtain N digits. A bit cut-out means for generating a value x that can be expressed by the following: 103, a bit replacing means for generating an N-digit binary number y obtained by placing the lower-order bits of the value x that can be expressed by the N-digits on the higher-order side; Reference numeral 104 denotes data extraction means for extracting data from the memory using the N-digit binary number y as an address, and reference numeral 105 denotes calculation means for performing a predetermined calculation using the extracted data.

ここで、前記入力値zは、MPEG規格AAC方式による量子化値であり、本実施の形態1におけるプロセッサは、前記入力値zをa乗する処理を行うプロセッサである。   Here, the input value z is a quantized value according to the MPEG standard AAC method, and the processor according to the first embodiment is a processor that performs a process of raising the input value z to a power.

図2は、本実施の形態1におけるメモリの内容を示す図である。   FIG. 2 is a diagram showing the contents of the memory in the first embodiment.

図2に示されるメモリは前記メモリ100に対応し、N桁の2進数であるところの前記値xに対し、前記関数F(x)の値を格納するメモリであって、前記値xの下位側のビットを上位側に配置することによって得られるN桁2進数yをアドレスとする位置に、前記値xに対応する前記関数F(x)の値が格納されている。本実施の形態では、前記関数F(x)は、xに(1<<N)を足した値をa乗する関数であるものとする。   The memory shown in FIG. 2 corresponds to the memory 100, and stores the value of the function F (x) with respect to the value x, which is an N-digit binary number, and is a subordinate of the value x. The value of the function F (x) corresponding to the value x is stored at the position where the N-digit binary number y obtained by placing the bit on the higher side is the address. In the present embodiment, it is assumed that the function F (x) is a function that raises a value obtained by adding (1 << N) to x.

本実施の形態では1では、Nは10とするが、それ以外の値であってもよいことは言うまでもない。   In the present embodiment, N is 10 in 1, but it goes without saying that other values may be used.

図3は、前記N+1桁の2進数で表現できる入力値の一例を示している。図4は、前記正規化手段101の動作を示している。図5は、前記ビット切り出し手段102の動作を示している。図6は、前記ビット入れ替え手段103の動作を示している。   FIG. 3 shows an example of an input value that can be expressed by the N + 1 digit binary number. FIG. 4 shows the operation of the normalizing means 101. FIG. 5 shows the operation of the bit cutout means 102. FIG. 6 shows the operation of the bit exchanging means 103.

以上のように構成されたプロセッサの動作について以下説明する。   The operation of the processor configured as described above will be described below.

まず、図3は、N+1桁の2進数であるところの入力値zを表している。これは図1における、入力値zと対応している。当該入力値zは、N+1桁の2進数の全変域を取りうるが、図3では、一例として、入力値zは4桁の値であるとする。つまり、上位側のビットは「0」であり(白の四角で表現)下から4桁目以降に値がある(色のついた四角で表現)。ここで、下から4桁目は、値が「1」であることに注意されたい。   First, FIG. 3 shows an input value z which is an N + 1 digit binary number. This corresponds to the input value z in FIG. The input value z can take the entire N + 1-digit binary range, but in FIG. 3, as an example, the input value z is a 4-digit value. That is, the upper bit is “0” (represented by a white square) and has a value after the fourth digit from the bottom (represented by a colored square). Note that the fourth digit from the bottom is “1”.

次に図4は、前記正規化手段101の動作を示しており、前記メモリ100を引く前準備の過程を示している。すなわち、入力値zの大きさに応じて、p桁シフトアップすることであり、入力値zの最も上位にある「1」、この場合下から4ビット目の「1」にあたるが、それが最上位ビットに来るようにシフトアップする。   Next, FIG. 4 shows the operation of the normalizing means 101, and shows a preparation process before the memory 100 is pulled. In other words, the input value z is shifted up by p digits according to the magnitude of the input value z, which is “1” at the top of the input value z, in this case “1” at the fourth bit from the bottom. Shift up to come to the upper bits.

次に図5は、前記ビット切り出し手段102の動作を示している。すなわち、図4で生成されたビットパタンに中で、最上位ビットは値が必ず「1」であるので、削除しても情報は欠落しないので、前記メモリ100を引く為のアドレスとして削除している。   Next, FIG. 5 shows the operation of the bit cutout means 102. That is, in the bit pattern generated in FIG. 4, since the value of the most significant bit is always “1”, information is not lost even if it is deleted. Therefore, it is deleted as an address for subtracting the memory 100. Yes.

次に図6は、実際に前記メモリ100を引く為のアドレスを確定する過程を示している。本実施の形態1では、前記ビット切り出し手段102で切り出された値に対し、前記ビット位置逆順処理によって実際に前記メモリ100を引く為のアドレスを確定する。ここでビット位置逆順処理を行っている理由は、図6から明らかなように、上位側にビット位置にできるだけ「0」を移動させる為である。そもそも、前記ビット切り出し手段102で切り出された値は、前記正規化手段101で正規化された値なので、多くの場合、下位側のビット位置には、「0」が存在する確率が高い。なぜならば、もともとの入力値zは、AAC規格の量子化値であり、その値は小さな値である場合が多いからである。従って、前記ビット入れ替え手段103で、ビット位置逆順処理を行うことで、上位側にビット位置に「0」が集まる確率が高くなり、結果として、前記メモリ100に対するアクセス頻度が高い領域を狭くすることができる。   Next, FIG. 6 shows a process of determining an address for actually retrieving the memory 100. In the first embodiment, for the value cut out by the bit cutout means 102, an address for actually pulling the memory 100 is determined by the bit position reverse order processing. The reason why the bit position reverse order processing is performed here is to move “0” as far as possible to the bit position to the upper side, as is apparent from FIG. In the first place, since the value cut out by the bit cutout unit 102 is a value normalized by the normalization unit 101, in many cases, there is a high probability that “0” exists in the lower bit position. This is because the original input value z is a quantized value of the AAC standard, and the value is often a small value. Therefore, by performing the bit position reverse order processing in the bit replacement means 103, the probability that “0” is gathered at the upper bit position is increased, and as a result, the area where the access frequency to the memory 100 is high is narrowed. Can do.

このようにして生成されたビットパタンをアドレスとして、前記データ取り出し手段104によって前記メモリ100を引くが、当該メモリ100には、図2に示すようなデータが格納されている。   The memory 100 is pulled by the data extracting means 104 using the bit pattern thus generated as an address. The memory 100 stores data as shown in FIG.

すなわち、アドレスがtである位置には、sをtのビット位置逆順処理によって得られる値であるとすると、((1<<N)+s)^aが格納されている。   That is, ((1 << N) + s) ^ a is stored in the position where the address is t, where s is a value obtained by the bit position reverse order processing of t.

ここで、(1<<N)をtに加えている理由は、アドレス値tは、前述のように、最上位ビットが削除されているので、それをおぎなっている訳である。このようなデータの持ち方をすることで、アドレスが1ビット減るので、メモリのサイズは1/2に削減できる。   Here, the reason why (1 << N) is added to t is that the address value t has been deleted because the most significant bit has been deleted as described above. By having such data, the address is reduced by 1 bit, so that the memory size can be reduced to ½.

さてここで、上記のように前記メモリ100から取り出された値は、そもそもの入力値zを、2^pした値に対してa乗の処理を施した値であるので、以下の補正が必要である。すなわち、上記のように前記メモリ100から取り出された値をTとした時、T*(2^(‐pa))の補正をした結果が、求める値となる。   Here, the value extracted from the memory 100 as described above is a value obtained by subjecting the original input value z to 2 ^ p and a process of a-th power, so the following correction is necessary. It is. That is, when the value taken out from the memory 100 as described above is T, the result of correcting T * (2 ^ (-pa)) is the value to be obtained.

本実施の形態ではN=10としたが、勿論他のあたいでもよいことは言うまでもない。   In the present embodiment, N = 10, but it goes without saying that other hot spots may be used.

以上のように、本実施の形態1では、前記メモリ100を引くときのアドレスの上位側のビット位置の値が「0」になる確率が高くなるので、前記メモリ100のアクセス頻度の高い領域は、アドレス値の小さい領域に集中することになる。それによって、前記メモリ100が、キャッシュメモリを介してアクセスされるような構成の場合、ミスヒットの可能性がさがることとなる。   As described above, in the first embodiment, since the probability that the value of the upper bit position of the address when the memory 100 is pulled becomes “0” is high, the area with high access frequency of the memory 100 is Therefore, it concentrates on the area where the address value is small. Accordingly, when the memory 100 is accessed via a cache memory, the possibility of a miss hit is reduced.

(実施の形態2)
以下本発明の実施の形態2におけるメモリについて図面を参照しながら説明する。
(Embodiment 2)
Hereinafter, a memory according to Embodiment 2 of the present invention will be described with reference to the drawings.

図8は本実施の形態2におけるメモリの内容を示す図である。図8に示されるメモリは、N桁の2進数であるところの値xに対応した三角関数値を格納するメモリである。前記値xは、変域が0以上π未満の値である位相角θを表現する値であり、(1<<N)*θ/πの値をN桁の2進数で表現した値である。格納されている三角関数値は、前記値xが表現する前記θに対する三角関数値である。   FIG. 8 is a diagram showing the contents of the memory according to the second embodiment. The memory shown in FIG. 8 is a memory for storing a trigonometric function value corresponding to a value x which is an N-digit binary number. The value x is a value expressing the phase angle θ whose domain is a value of 0 or more and less than π, and is a value expressing the value of (1 << N) * θ / π in an N-digit binary number. . The stored trigonometric function value is a trigonometric function value for the θ expressed by the value x.

図8では、前記値xの下位側のビットと上位側のビットとを入れ替える処理、すなわちビット位置逆順処理によって得られるN桁2進数yをアドレスとする位置に、前記値xに対応する三角関数値が格納されている。   In FIG. 8, a trigonometric function corresponding to the value x at a position where the address is an N-digit binary number y obtained by the process of switching the lower bit and the higher bit of the value x, that is, the bit position reverse order process. A value is stored.

上記のような位置に三角関数値を配置することによって、以下のような効果が得られる。例えばFFT等の処理では、位相角θ=i*π/A(Aは2の冪乗数、iは0以上A未満の整数)において、Aが比較的小さな値である時のθに対する三角関数値或いは複素単位円(e^(jθ))が高い頻度で用いられる。例えば、位相角が、0、π/2、π/4、2π/4、3π/4、のような場合の三角関数値が高い頻度で用いられる。ここでもしこのような三角関数値を位相角の小さい方から順番に(或いは大きい方から順番に)メモリに格納していたら、飛び飛びの領域を広くアクセスすることになるので、当該メモリがキャッシュメモリを介してアクセスされるような場合、キャッシュのミスヒットが頻繁に発生することになる。ところが、図8のように配置しておけば、アドレス0の位置に位相角0に対する三角関数値が格納され、アドレス1の位置に位相角(π/2)に対する三角関数値が格納され、アドレス2の位置に位相角(π/4)に対する三角関数値が格納され、アドレス3の位置に位相角(3π/4)に対する三角関数値が格納され、アドレス4の位置に位相角(π/8)に対する三角関数値が格納されるなど、FFT処理においてアクセス頻度の高い三角関数値が、アドレス値の小さい領域に集中して格納され、キャッシュのミスヒット回数を削減することができる。   By arranging the trigonometric function values at the positions as described above, the following effects can be obtained. For example, in processing such as FFT, a trigonometric function value for θ when A is a relatively small value at a phase angle θ = i * π / A (A is a power of 2 and i is an integer not less than 0 and less than A). Alternatively, the complex unit circle (e ^ (jθ)) is used with high frequency. For example, a trigonometric function value is used at a high frequency when the phase angle is 0, π / 2, π / 4, 2π / 4, 3π / 4, or the like. Here, if such trigonometric function values are stored in the memory in order from the smallest phase angle (or in order from the largest), the skipped area is accessed widely, so that the memory is the cache memory. In such a case, cache misses frequently occur. However, if arranged as shown in FIG. 8, the trigonometric function value for the phase angle 0 is stored at the address 0 position, and the trigonometric function value for the phase angle (π / 2) is stored at the address 1 position. The trigonometric function value for the phase angle (π / 4) is stored at the position 2, the trigonometric function value for the phase angle (3π / 4) is stored at the address 3 position, and the phase angle (π / 8) is stored at the address 4 position. The trigonometric function values frequently accessed in the FFT processing are stored in a concentrated area with a small address value, and the number of cache misses can be reduced.

本実施の形態2では余弦関数値を格納するメモリを示したが、正弦関数値を格納するメモリも同様に構成できることは言うまでもない。また、余弦関数値と余弦関数値のペアで構成される複素数(複素単位円(e^(jθ))を格納するメモリも同様に構成できる。図9にその一例を示した。すなわち、余弦関数値と正弦関数値とを隣接するビットフィールドに格納したのである。   Although the memory for storing the cosine function value is shown in the second embodiment, it goes without saying that the memory for storing the sine function value can be configured similarly. In addition, a memory for storing a complex number (complex unit circle (e ^ (jθ))) composed of a pair of a cosine function value and a cosine function value can also be configured in the same manner, an example of which is shown in FIG. The value and the sine function value are stored in the adjacent bit field.

本実施の形態2では、Nは10としたが、それ以外の値であってもよいことは言うまでもない。   In the second embodiment, N is set to 10, but it goes without saying that other values may be used.

本発明にかかるメモリ、及びプロセッサは、オーディオのデジタル信号処理を行うために必要なデータを格納する為のメモリに関し、特にキャッシュメモリを介して当該データにアクセスする際に、アクセス範囲ができるだけ狭くなるようにデータが配置されるので、小型、省電力オーディオ機器に応用できる。   The memory and the processor according to the present invention relate to a memory for storing data necessary to perform audio digital signal processing, and in particular, when accessing the data via a cache memory, the access range becomes as narrow as possible. Since the data is arranged as described above, it can be applied to a small-sized, power-saving audio device.

本実施の形態1におけるプロセッサの構成を示す図The figure which shows the structure of the processor in this Embodiment 1. 本実施の形態1におけるメモリの内容を示す図The figure which shows the content of the memory in this Embodiment 1. 入力値の一例を示す図Diagram showing an example of input values 正規化手段の動作を示す図Diagram showing the operation of normalization means ビット切り出し手段の動作を示す図The figure which shows the operation of the bit extraction means ビット入れ替え手段の動作を示す図Diagram showing the operation of the bit swapping means 従来の技術によるメモリの内容を示す図The figure which shows the contents of the memory with conventional technology 本実施の形態2におけるメモリの内容(三角関数値)を示す図The figure which shows the content (trigonometric function value) of the memory in this Embodiment 2. 本実施の形態2におけるメモリの内容(複素数e^(jθ)(jは虚数単位))を示す図The figure which shows the content (complex number e ^ (j (theta)) (j is an imaginary unit)) in this Embodiment 2.

符号の説明Explanation of symbols

100 メモリ
101 正規化手段
102 ビット切り出し手段
103 ビット入れ替え手段
104 データ取り出し手段
105 演算手段
DESCRIPTION OF SYMBOLS 100 Memory 101 Normalization means 102 Bit extraction means 103 Bit replacement means 104 Data extraction means 105 Calculation means

Claims (9)

N桁の2進数であるところの値xに対し、関数F(x)の値を格納するメモリであって、前記値xの下位側のビットを上位側に配置することによって得られるN桁の2進数yをアドレスとする位置に、前記値xに対応する関数F(x)の値が格納されていることを特徴とするメモリ。 This is a memory for storing the value of the function F (x) for the value x which is an N-digit binary number, and is obtained by arranging the lower-order bits of the value x on the upper-order side. A memory in which a value of a function F (x) corresponding to the value x is stored at a position having a binary number y as an address. 前記値xは、N+1桁の2進数であるところの値zを正規化して得られる値z’から最上位ビットを削除して得られるN桁の2進数であり、
前記関数F(x)は、x+(1<<N)の値に対し所定の処理を行うことを特徴とする請求項1記載のメモリ。
The value x is an N-digit binary number obtained by deleting the most significant bit from a value z ′ obtained by normalizing the value z, which is an N + 1 digit binary number,
2. The memory according to claim 1, wherein the function F (x) performs a predetermined process on a value of x + (1 << N).
前記関数F(x)は、x+(1<<N)のa乗を与える関数であることを特徴とする請求項1または請求項2に記載のメモリ。 The memory according to claim 1, wherein the function F (x) is a function that gives x + (1 << N) to the power a. θを0以上π未満の変域を持つ位相角とした時、前記値xは前記θを表現する値であり、(1<<N)*θ/πの値をN桁の2進数で表現した値であることを特徴とする請求項1記載のメモリ。 When θ is a phase angle having a range of 0 or more and less than π, the value x is a value expressing the θ, and the value of (1 << N) * θ / π is expressed by an N-digit binary number. The memory according to claim 1, wherein the value is a calculated value. 前記関数F(x)は、前記値xが表す前記θに対する三角関数を与える関数であることを特徴とする請求項4記載のメモリ。 The memory according to claim 4, wherein the function F (x) is a function that gives a trigonometric function for the θ represented by the value x. 前記関数F(x)は、前記値xが表す前記θに対する複素数e^(jθ)(jは虚数単位)を与える関数であることを特徴とする請求項4記載のメモリ。 5. The memory according to claim 4, wherein the function F (x) is a function that gives a complex number e (jθ) (j is an imaginary unit) for the θ represented by the value x. 前記2進数yは、前記値xのビット位置逆順処理によって得られる値であることを特徴とする請求項1から請求項6の何れかに記載のメモリ。 The memory according to any one of claims 1 to 6, wherein the binary number y is a value obtained by a bit position reverse order process of the value x. キャッシュメモリを更に備え、前記キャッシュメモリを介してデータにアクセスすることを特徴とする請求項1から請求項7の何れかに記載のメモリ。 8. The memory according to claim 1, further comprising a cache memory, wherein data is accessed through the cache memory. 前記請求項1から請求項8の何れかに記載のメモリを備えたプロセッサであって、入力値xの下位側のビットを上位側に配置することによって得られるN桁2進数yを生成するビット入れ替え手段と、前記N桁2進数yをアドレスとして前記メモリからデータを取り出すデータ取り出し手段と、取り出されたデータを用いて所定の演算を行う演算手段とを有することを特徴とするプロセッサ。 A processor comprising the memory according to any one of claims 1 to 8, wherein the bit generates an N-digit binary number y obtained by placing a lower bit of an input value x on a higher side. A processor, comprising: replacement means; data fetching means for fetching data from the memory using the N-digit binary number y as an address; and computing means for performing a predetermined calculation using the fetched data.
JP2004261922A 2004-09-09 2004-09-09 MEMORY AND PROCESSOR HAVING MEMORY Active JP4529600B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004261922A JP4529600B2 (en) 2004-09-09 2004-09-09 MEMORY AND PROCESSOR HAVING MEMORY

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004261922A JP4529600B2 (en) 2004-09-09 2004-09-09 MEMORY AND PROCESSOR HAVING MEMORY

Publications (2)

Publication Number Publication Date
JP2006079310A JP2006079310A (en) 2006-03-23
JP4529600B2 true JP4529600B2 (en) 2010-08-25

Family

ID=36158723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004261922A Active JP4529600B2 (en) 2004-09-09 2004-09-09 MEMORY AND PROCESSOR HAVING MEMORY

Country Status (1)

Country Link
JP (1) JP4529600B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5853913B2 (en) 2012-09-12 2016-02-09 富士通株式会社 Address control device, transmission device, and address control method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318154A (en) * 1992-03-13 1994-11-15 Sun Microsyst Inc Method for minimizing necessity of arithmetic operation and resultant cache therefor
JPH10143353A (en) * 1996-11-14 1998-05-29 Pioneer Electron Corp Data conversion device
JPH10163886A (en) * 1996-11-28 1998-06-19 Fujitsu Ltd Arithmetic unit and semiconductor device using the unit, and receiver
JPH11288365A (en) * 1998-02-04 1999-10-19 Matsushita Electric Ind Co Ltd Power calculation device
JP2002229774A (en) * 2001-01-31 2002-08-16 Kenwood Corp Signal processing system, signal processing method, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318154A (en) * 1992-03-13 1994-11-15 Sun Microsyst Inc Method for minimizing necessity of arithmetic operation and resultant cache therefor
JPH10143353A (en) * 1996-11-14 1998-05-29 Pioneer Electron Corp Data conversion device
JPH10163886A (en) * 1996-11-28 1998-06-19 Fujitsu Ltd Arithmetic unit and semiconductor device using the unit, and receiver
JPH11288365A (en) * 1998-02-04 1999-10-19 Matsushita Electric Ind Co Ltd Power calculation device
JP2002229774A (en) * 2001-01-31 2002-08-16 Kenwood Corp Signal processing system, signal processing method, and program

Also Published As

Publication number Publication date
JP2006079310A (en) 2006-03-23

Similar Documents

Publication Publication Date Title
US10026150B2 (en) Graphics processing of a vertex buffer using a relative index buffer
US10528539B2 (en) Optimized selection of hash collision chains
US11762813B2 (en) Quality score compression apparatus and method for improving downstream accuracy
JP2006024218A5 (en)
JP5832980B2 (en) Handwriting input support device, method and program
US9275249B1 (en) Accelerated encrypted database operations
HK1155000A1 (en) Method and device for arithmetic encoding and decoding with use of multiple lookup tables
US8847797B1 (en) Byte-aligned dictionary-based compression and decompression
US10897270B2 (en) Dynamic dictionary-based data symbol encoding
CA2928836A1 (en) Methods and apparatuses of digital data processing
CN110879967B (en) Video content repetition judgment method and device
US11669553B2 (en) Context-dependent shared dictionaries
WO2021120713A8 (en) Data processing method, decoding circuit, and processor
CN107925421A (en) Improved compressed cache in virtual memory system
JP4529600B2 (en) MEMORY AND PROCESSOR HAVING MEMORY
JPWO2019204106A5 (en)
US20150039293A1 (en) System and method for detecting the occurences of irrelevant and/or low-score strings in community based or user generated content
Shahreza A new method for steganography in HTML files
US20170097981A1 (en) Apparatus and method for data compression
US20170316218A1 (en) Method of preventing pry for random access memory
Kang et al. Low‐complexity twiddle factor generation for FFT processor
US10650018B2 (en) Method for efficient derived data views using byte addressable persistent storage
JP2005004560A (en) Method for creating inverted file
JP2009129202A (en) Data processor, data processing method, and program
Kang et al. Low complexity twiddle factor multiplication with ROM partitioning in FFT processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070702

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070820

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20091120

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100531

R151 Written notification of patent or utility model registration

Ref document number: 4529600

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3